This is an automated email from the ASF dual-hosted git repository.
chaokunyang pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/fury-site.git
The following commit(s) were added to refs/heads/main by this push:
new b2aa2fd [New Feature]Added internationalization configuration to
Fury. (#141)
b2aa2fd is described below
commit b2aa2fd1344e27cff317dc8e8e9607617bb1cd43
Author: LofiSu <[email protected]>
AuthorDate: Sat Aug 3 20:36:38 2024 +0800
[New Feature]Added internationalization configuration to Fury. (#141)
"Added internationalized routing configuration and internationalization
framework setup to Fury, and included a Simplified Chinese version."


---
docusaurus.config.ts | 20 +-
i18n/en/code.json | 277 ++++++++++++++++++
.../en/docusaurus-plugin-content-blog/options.json | 14 +
.../en/docusaurus-plugin-content-docs/current.json | 6 +
i18n/en/docusaurus-theme-classic/footer.json | 54 ++++
i18n/en/docusaurus-theme-classic/navbar.json | 70 +++++
i18n/zh-CN/code.json | 317 +++++++++++++++++++++
.../docusaurus-plugin-content-blog/options.json | 14 +
.../docusaurus-plugin-content-docs/current.json | 6 +
i18n/zh-CN/docusaurus-theme-classic/footer.json | 54 ++++
i18n/zh-CN/docusaurus-theme-classic/navbar.json | 70 +++++
src/components/HomepageFeatures/index.tsx | 73 +++--
src/pages/index.tsx | 56 ++--
tsconfig.json | 1 +
14 files changed, 991 insertions(+), 41 deletions(-)
diff --git a/docusaurus.config.ts b/docusaurus.config.ts
index 97fa57d..75f736d 100644
--- a/docusaurus.config.ts
+++ b/docusaurus.config.ts
@@ -6,7 +6,7 @@ const config: Config = {
title: 'Apache Fury (incubating)',
tagline: 'A blazing-fast cross-language serialization framework powered by
just-in-time compilation and zero-copy',
favicon: 'img/favicon.ico',
-
+
// Set the production url of your site here
url: 'https://fury.apache.org/',
// Set the /<baseUrl>/ pathname under which your site is served
@@ -18,12 +18,16 @@ const config: Config = {
// Even if you don't use internationalization, you can use this field to set
// useful metadata like html lang. For example, if your site is Chinese, you
- // may want to replace "en" with "zh-Hans".
- i18n: {
+ // may want to replace "en" with "zh-CN".
+ i18n: {
defaultLocale: 'en',
- locales: ['en'],
+ locales: ['en', 'zh-CN'],
+ localeConfigs: {
+ 'zh-CN': {
+ htmlLang: 'zh-CN',
+ },
+ },
},
-
presets: [
[
'classic',
@@ -141,6 +145,10 @@ const config: Config = {
className: 'header-github-link',
'aria-label': 'GitHub repository',
},
+ {
+ type: 'localeDropdown',
+ position: 'right',
+ },
],
},
footer: {
@@ -217,3 +225,5 @@ const config: Config = {
};
export default config;
+
+
diff --git a/i18n/en/code.json b/i18n/en/code.json
new file mode 100644
index 0000000..8775393
--- /dev/null
+++ b/i18n/en/code.json
@@ -0,0 +1,277 @@
+{
+ "theme.BackToTopButton.buttonAriaLabel": {
+ "message": "Scroll back to top",
+ "description": "The ARIA label for the back to top button"
+ },
+ "theme.blog.paginator.navAriaLabel": {
+ "message": "Blog list page navigation",
+ "description": "The ARIA label for the blog pagination"
+ },
+ "theme.blog.paginator.newerEntries": {
+ "message": "Newer Entries",
+ "description": "The label used to navigate to the newer blog posts page
(previous page)"
+ },
+ "theme.blog.paginator.olderEntries": {
+ "message": "Older Entries",
+ "description": "The label used to navigate to the older blog posts page
(next page)"
+ },
+ "theme.blog.post.paginator.navAriaLabel": {
+ "message": "Blog post page navigation",
+ "description": "The ARIA label for the blog posts pagination"
+ },
+ "theme.blog.post.paginator.newerPost": {
+ "message": "Newer Post",
+ "description": "The blog post button label to navigate to the
newer/previous post"
+ },
+ "theme.blog.post.paginator.olderPost": {
+ "message": "Older Post",
+ "description": "The blog post button label to navigate to the older/next
post"
+ },
+ "theme.blog.post.plurals": {
+ "message": "One post|{count} posts",
+ "description": "Pluralized label for \"{count} posts\". Use as much plural
forms (separated by \"|\") as your language support (see
https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)"
+ },
+ "theme.blog.tagTitle": {
+ "message": "{nPosts} tagged with \"{tagName}\"",
+ "description": "The title of the page for a blog tag"
+ },
+ "theme.tags.tagsPageLink": {
+ "message": "View All Tags",
+ "description": "The label of the link targeting the tag list page"
+ },
+ "theme.colorToggle.ariaLabel": {
+ "message": "Switch between dark and light mode (currently {mode})",
+ "description": "The ARIA label for the navbar color mode toggle"
+ },
+ "theme.colorToggle.ariaLabel.mode.dark": {
+ "message": "dark mode",
+ "description": "The name for the dark color mode"
+ },
+ "theme.colorToggle.ariaLabel.mode.light": {
+ "message": "light mode",
+ "description": "The name for the light color mode"
+ },
+ "theme.docs.breadcrumbs.navAriaLabel": {
+ "message": "Breadcrumbs",
+ "description": "The ARIA label for the breadcrumbs"
+ },
+ "theme.docs.DocCard.categoryDescription": {
+ "message": "{count} items",
+ "description": "The default description for a category card in the
generated index about how many items this category includes"
+ },
+ "theme.docs.paginator.navAriaLabel": {
+ "message": "Docs pages",
+ "description": "The ARIA label for the docs pagination"
+ },
+ "theme.docs.paginator.previous": {
+ "message": "Previous",
+ "description": "The label used to navigate to the previous doc"
+ },
+ "theme.docs.paginator.next": {
+ "message": "Next",
+ "description": "The label used to navigate to the next doc"
+ },
+ "theme.docs.tagDocListPageTitle.nDocsTagged": {
+ "message": "One doc tagged|{count} docs tagged",
+ "description": "Pluralized label for \"{count} docs tagged\". Use as much
plural forms (separated by \"|\") as your language support (see
https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)"
+ },
+ "theme.docs.tagDocListPageTitle": {
+ "message": "{nDocsTagged} with \"{tagName}\"",
+ "description": "The title of the page for a docs tag"
+ },
+ "theme.docs.versionBadge.label": {
+ "message": "Version: {versionLabel}"
+ },
+ "theme.docs.versions.unreleasedVersionLabel": {
+ "message": "This is unreleased documentation for {siteTitle}
{versionLabel} version.",
+ "description": "The label used to tell the user that he's browsing an
unreleased doc version"
+ },
+ "theme.docs.versions.unmaintainedVersionLabel": {
+ "message": "This is documentation for {siteTitle} {versionLabel}, which is
no longer actively maintained.",
+ "description": "The label used to tell the user that he's browsing an
unmaintained doc version"
+ },
+ "theme.docs.versions.latestVersionSuggestionLabel": {
+ "message": "For up-to-date documentation, see the {latestVersionLink}
({versionLabel}).",
+ "description": "The label used to tell the user to check the latest
version"
+ },
+ "theme.docs.versions.latestVersionLinkLabel": {
+ "message": "latest version",
+ "description": "The label used for the latest version suggestion link
label"
+ },
+ "theme.common.editThisPage": {
+ "message": "Edit this page",
+ "description": "The link label to edit the current page"
+ },
+ "theme.common.headingLinkTitle": {
+ "message": "Direct link to {heading}",
+ "description": "Title for link to heading"
+ },
+ "theme.lastUpdated.atDate": {
+ "message": " on {date}",
+ "description": "The words used to describe on which date a page has been
last updated"
+ },
+ "theme.lastUpdated.byUser": {
+ "message": " by {user}",
+ "description": "The words used to describe by who the page has been last
updated"
+ },
+ "theme.lastUpdated.lastUpdatedAtBy": {
+ "message": "Last updated{atDate}{byUser}",
+ "description": "The sentence used to display when a page has been last
updated, and by who"
+ },
+ "theme.navbar.mobileVersionsDropdown.label": {
+ "message": "Versions",
+ "description": "The label for the navbar versions dropdown on mobile view"
+ },
+ "theme.NotFound.title": {
+ "message": "Page Not Found",
+ "description": "The title of the 404 page"
+ },
+ "theme.tags.tagsListLabel": {
+ "message": "Tags:",
+ "description": "The label alongside a tag list"
+ },
+ "theme.admonition.caution": {
+ "message": "caution",
+ "description": "The default label used for the Caution admonition
(:::caution)"
+ },
+ "theme.admonition.danger": {
+ "message": "danger",
+ "description": "The default label used for the Danger admonition
(:::danger)"
+ },
+ "theme.admonition.info": {
+ "message": "info",
+ "description": "The default label used for the Info admonition (:::info)"
+ },
+ "theme.admonition.note": {
+ "message": "note",
+ "description": "The default label used for the Note admonition (:::note)"
+ },
+ "theme.admonition.tip": {
+ "message": "tip",
+ "description": "The default label used for the Tip admonition (:::tip)"
+ },
+ "theme.admonition.warning": {
+ "message": "warning",
+ "description": "The default label used for the Warning admonition
(:::warning)"
+ },
+ "theme.AnnouncementBar.closeButtonAriaLabel": {
+ "message": "Close",
+ "description": "The ARIA label for close button of announcement bar"
+ },
+ "theme.blog.sidebar.navAriaLabel": {
+ "message": "Blog recent posts navigation",
+ "description": "The ARIA label for recent posts in the blog sidebar"
+ },
+ "theme.CodeBlock.copied": {
+ "message": "Copied",
+ "description": "The copied button label on code blocks"
+ },
+ "theme.CodeBlock.copyButtonAriaLabel": {
+ "message": "Copy code to clipboard",
+ "description": "The ARIA label for copy code blocks button"
+ },
+ "theme.CodeBlock.copy": {
+ "message": "Copy",
+ "description": "The copy button label on code blocks"
+ },
+ "theme.CodeBlock.wordWrapToggle": {
+ "message": "Toggle word wrap",
+ "description": "The title attribute for toggle word wrapping button of
code block lines"
+ },
+ "theme.DocSidebarItem.expandCategoryAriaLabel": {
+ "message": "Expand sidebar category '{label}'",
+ "description": "The ARIA label to expand the sidebar category"
+ },
+ "theme.DocSidebarItem.collapseCategoryAriaLabel": {
+ "message": "Collapse sidebar category '{label}'",
+ "description": "The ARIA label to collapse the sidebar category"
+ },
+ "theme.navbar.mobileLanguageDropdown.label": {
+ "message": "Languages",
+ "description": "The label for the mobile language switcher dropdown"
+ },
+ "theme.NotFound.p1": {
+ "message": "We could not find what you were looking for.",
+ "description": "The first paragraph of the 404 page"
+ },
+ "theme.NotFound.p2": {
+ "message": "Please contact the owner of the site that linked you to the
original URL and let them know their link is broken.",
+ "description": "The 2nd paragraph of the 404 page"
+ },
+ "theme.NavBar.navAriaLabel": {
+ "message": "Main",
+ "description": "The ARIA label for the main navigation"
+ },
+ "theme.TOCCollapsible.toggleButtonLabel": {
+ "message": "On this page",
+ "description": "The label used by the button on the collapsible TOC
component"
+ },
+ "theme.blog.post.readingTime.plurals": {
+ "message": "One min read|{readingTime} min read",
+ "description": "Pluralized label for \"{readingTime} min read\". Use as
much plural forms (separated by \"|\") as your language support (see
https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)"
+ },
+ "theme.blog.post.readMore": {
+ "message": "Read More",
+ "description": "The label used in blog post item excerpts to link to full
blog posts"
+ },
+ "theme.blog.post.readMoreLabel": {
+ "message": "Read more about {title}",
+ "description": "The ARIA label for the link to full blog posts from
excerpts"
+ },
+ "theme.docs.breadcrumbs.home": {
+ "message": "Home page",
+ "description": "The ARIA label for the home page in the breadcrumbs"
+ },
+ "theme.docs.sidebar.collapseButtonTitle": {
+ "message": "Collapse sidebar",
+ "description": "The title attribute for collapse button of doc sidebar"
+ },
+ "theme.docs.sidebar.collapseButtonAriaLabel": {
+ "message": "Collapse sidebar",
+ "description": "The title attribute for collapse button of doc sidebar"
+ },
+ "theme.docs.sidebar.navAriaLabel": {
+ "message": "Docs sidebar",
+ "description": "The ARIA label for the sidebar navigation"
+ },
+ "theme.docs.sidebar.closeSidebarButtonAriaLabel": {
+ "message": "Close navigation bar",
+ "description": "The ARIA label for close button of mobile sidebar"
+ },
+ "theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel": {
+ "message": "← Back to main menu",
+ "description": "The label of the back button to return to main menu,
inside the mobile navbar sidebar secondary menu (notably used to display the
docs sidebar)"
+ },
+ "theme.docs.sidebar.toggleSidebarButtonAriaLabel": {
+ "message": "Toggle navigation bar",
+ "description": "The ARIA label for hamburger menu button of mobile
navigation"
+ },
+ "theme.docs.sidebar.expandButtonTitle": {
+ "message": "Expand sidebar",
+ "description": "The ARIA label and title attribute for expand button of
doc sidebar"
+ },
+ "theme.docs.sidebar.expandButtonAriaLabel": {
+ "message": "Expand sidebar",
+ "description": "The ARIA label and title attribute for expand button of
doc sidebar"
+ },
+ "theme.ErrorPageContent.tryAgain": {
+ "message": "Try again",
+ "description": "The label of the button to try again rendering when the
React error boundary captures an error"
+ },
+ "theme.common.skipToMainContent": {
+ "message": "Skip to main content",
+ "description": "The skip to content label used for accessibility, allowing
to rapidly navigate to main content with keyboard tab/enter navigation"
+ },
+ "theme.tags.tagsPageTitle": {
+ "message": "Tags",
+ "description": "The title of the tag list page"
+ },
+ "theme.unlistedContent.title": {
+ "message": "Unlisted page",
+ "description": "The unlisted content banner title"
+ },
+ "theme.unlistedContent.message": {
+ "message": "This page is unlisted. Search engines will not index it, and
only users having a direct link can access it.",
+ "description": "The unlisted content banner message"
+ }
+}
diff --git a/i18n/en/docusaurus-plugin-content-blog/options.json
b/i18n/en/docusaurus-plugin-content-blog/options.json
new file mode 100644
index 0000000..e19dda4
--- /dev/null
+++ b/i18n/en/docusaurus-plugin-content-blog/options.json
@@ -0,0 +1,14 @@
+{
+ "title": {
+ "message": "Blog",
+ "description": "The title for the blog used in SEO"
+ },
+ "description": {
+ "message": "Blog",
+ "description": "The description for the blog used in SEO"
+ },
+ "sidebar.title": {
+ "message": "All our posts",
+ "description": "The label for the left sidebar"
+ }
+}
diff --git a/i18n/en/docusaurus-plugin-content-docs/current.json
b/i18n/en/docusaurus-plugin-content-docs/current.json
new file mode 100644
index 0000000..dd30528
--- /dev/null
+++ b/i18n/en/docusaurus-plugin-content-docs/current.json
@@ -0,0 +1,6 @@
+{
+ "version.label": {
+ "message": "Next",
+ "description": "The label for version current"
+ }
+}
diff --git a/i18n/en/docusaurus-theme-classic/footer.json
b/i18n/en/docusaurus-theme-classic/footer.json
new file mode 100644
index 0000000..14bccdc
--- /dev/null
+++ b/i18n/en/docusaurus-theme-classic/footer.json
@@ -0,0 +1,54 @@
+{
+ "link.title.Community": {
+ "message": "Community",
+ "description": "The title of the footer links column with title=Community
in the footer"
+ },
+ "link.title.Docs": {
+ "message": "Docs",
+ "description": "The title of the footer links column with title=Docs in
the footer"
+ },
+ "link.title.Repositories": {
+ "message": "Repositories",
+ "description": "The title of the footer links column with
title=Repositories in the footer"
+ },
+ "link.item.label.Mailing list": {
+ "message": "Mailing list",
+ "description": "The label of footer link with label=Mailing list linking
to https://lists.apache.org/[email protected]"
+ },
+ "link.item.label.Slack": {
+ "message": "Slack",
+ "description": "The label of footer link with label=Slack linking to
https://join.slack.com/t/fury-project/shared_invite/zt-1u8soj4qc-ieYEu7ciHOqA2mo47llS8A"
+ },
+ "link.item.label.Twitter": {
+ "message": "Twitter",
+ "description": "The label of footer link with label=Twitter linking to
https://twitter.com/ApacheFury"
+ },
+ "link.item.label.Install": {
+ "message": "Install",
+ "description": "The label of footer link with label=Install linking to
/docs/start/install"
+ },
+ "link.item.label.Usage": {
+ "message": "Usage",
+ "description": "The label of footer link with label=Usage linking to
/docs/start/usage"
+ },
+ "link.item.label.Benchmark": {
+ "message": "Benchmark",
+ "description": "The label of footer link with label=Benchmark linking to
/docs/introduction/benchmark"
+ },
+ "link.item.label.Fury": {
+ "message": "Fury",
+ "description": "The label of footer link with label=Fury linking to
https://github.com/apache/fury"
+ },
+ "link.item.label.Website": {
+ "message": "Website",
+ "description": "The label of footer link with label=Website linking to
https://github.com/apache/fury-site"
+ },
+ "copyright": {
+ "message": "<div>\n <p> Apache Fury is an effort undergoing
incubation at The Apache Software Foundation (ASF), sponsored by the Apache
Incubator. Incubation is required of all newly accepted projects until a
further review indicates that the infrastructure, communications, and decision
making process have stabilized in a manner consistent with other successful ASF
projects. While incubation status is not necessarily a reflection of the
completeness or stability of the code, it [...]
+ "description": "The footer copyright"
+ },
+ "logo.alt": {
+ "message": "Apache Incubator logo",
+ "description": "The alt text of footer logo"
+ }
+}
diff --git a/i18n/en/docusaurus-theme-classic/navbar.json
b/i18n/en/docusaurus-theme-classic/navbar.json
new file mode 100644
index 0000000..d038b1c
--- /dev/null
+++ b/i18n/en/docusaurus-theme-classic/navbar.json
@@ -0,0 +1,70 @@
+{
+ "logo.alt": {
+ "message": "Fury Logo",
+ "description": "The alt text of navbar logo"
+ },
+ "item.label.Start": {
+ "message": "Start",
+ "description": "Navbar item with label Start"
+ },
+ "item.label.Introduction": {
+ "message": "Introduction",
+ "description": "Navbar item with label Introduction"
+ },
+ "item.label.Guide": {
+ "message": "Guide",
+ "description": "Navbar item with label Guide"
+ },
+ "item.label.Specification": {
+ "message": "Specification",
+ "description": "Navbar item with label Specification"
+ },
+ "item.label.Community": {
+ "message": "Community",
+ "description": "Navbar item with label Community"
+ },
+ "item.label.Download": {
+ "message": "Download",
+ "description": "Navbar item with label Download"
+ },
+ "item.label.Blog": {
+ "message": "Blog",
+ "description": "Navbar item with label Blog"
+ },
+ "item.label.ASF": {
+ "message": "ASF",
+ "description": "Navbar item with label ASF"
+ },
+ "item.label.Foundation": {
+ "message": "Foundation",
+ "description": "Navbar item with label Foundation"
+ },
+ "item.label.License": {
+ "message": "License",
+ "description": "Navbar item with label License"
+ },
+ "item.label.Events": {
+ "message": "Events",
+ "description": "Navbar item with label Events"
+ },
+ "item.label.Privacy": {
+ "message": "Privacy",
+ "description": "Navbar item with label Privacy"
+ },
+ "item.label.Security": {
+ "message": "Security",
+ "description": "Navbar item with label Security"
+ },
+ "item.label.Sponsorship": {
+ "message": "Sponsorship",
+ "description": "Navbar item with label Sponsorship"
+ },
+ "item.label.Thanks": {
+ "message": "Thanks",
+ "description": "Navbar item with label Thanks"
+ },
+ "item.label.Code of Conduct": {
+ "message": "Code of Conduct",
+ "description": "Navbar item with label Code of Conduct"
+ }
+}
diff --git a/i18n/zh-CN/code.json b/i18n/zh-CN/code.json
new file mode 100644
index 0000000..a4cc7ed
--- /dev/null
+++ b/i18n/zh-CN/code.json
@@ -0,0 +1,317 @@
+{
+ "theme.BackToTopButton.buttonAriaLabel": {
+ "message": "回到顶部",
+ "description": "The ARIA label for the back to top button"
+ },
+ "theme.blog.paginator.navAriaLabel": {
+ "message": "博文列表分页导航",
+ "description": "The ARIA label for the blog pagination"
+ },
+ "theme.blog.paginator.newerEntries": {
+ "message": "下一篇博文",
+ "description": "The label used to navigate to the newer blog posts page
(previous page)"
+ },
+ "theme.blog.paginator.olderEntries": {
+ "message": "上一篇博文",
+ "description": "The label used to navigate to the older blog posts page
(next page)"
+ },
+ "theme.blog.post.paginator.navAriaLabel": {
+ "message": "博文分页导航",
+ "description": "The ARIA label for the blog posts pagination"
+ },
+ "theme.blog.post.paginator.newerPost": {
+ "message": "下一篇",
+ "description": "The blog post button label to navigate to the
newer/previous post"
+ },
+ "theme.blog.post.paginator.olderPost": {
+ "message": "上一篇",
+ "description": "The blog post button label to navigate to the older/next
post"
+ },
+ "theme.blog.post.plurals": {
+ "message": "{count} 篇博文",
+ "description": "Pluralized label for \"{count} posts\". Use as much plural
forms (separated by \"|\") as your language support (see
https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)"
+ },
+ "theme.blog.tagTitle": {
+ "message": "{nPosts} 含有标签「{tagName}」",
+ "description": "The title of the page for a blog tag"
+ },
+ "theme.tags.tagsPageLink": {
+ "message": "查看所有标签",
+ "description": "The label of the link targeting the tag list page"
+ },
+ "theme.colorToggle.ariaLabel": {
+ "message": "切换浅色/暗黑模式(当前为{mode})",
+ "description": "The ARIA label for the navbar color mode toggle"
+ },
+ "theme.colorToggle.ariaLabel.mode.dark": {
+ "message": "暗黑模式",
+ "description": "The name for the dark color mode"
+ },
+ "theme.colorToggle.ariaLabel.mode.light": {
+ "message": "浅色模式",
+ "description": "The name for the light color mode"
+ },
+ "theme.docs.breadcrumbs.navAriaLabel": {
+ "message": "页面路径",
+ "description": "The ARIA label for the breadcrumbs"
+ },
+ "theme.docs.DocCard.categoryDescription": {
+ "message": "{count} 个项目",
+ "description": "The default description for a category card in the
generated index about how many items this category includes"
+ },
+ "theme.docs.paginator.navAriaLabel": {
+ "message": "文件选项卡",
+ "description": "The ARIA label for the docs pagination"
+ },
+ "theme.docs.paginator.previous": {
+ "message": "上一页",
+ "description": "The label used to navigate to the previous doc"
+ },
+ "theme.docs.paginator.next": {
+ "message": "下一页",
+ "description": "The label used to navigate to the next doc"
+ },
+ "theme.docs.tagDocListPageTitle.nDocsTagged": {
+ "message": "{count} 篇文档带有标签",
+ "description": "Pluralized label for \"{count} docs tagged\". Use as much
plural forms (separated by \"|\") as your language support (see
https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)"
+ },
+ "theme.docs.tagDocListPageTitle": {
+ "message": "{nDocsTagged}「{tagName}」",
+ "description": "The title of the page for a docs tag"
+ },
+ "theme.docs.versionBadge.label": {
+ "message": "版本:{versionLabel}"
+ },
+ "theme.docs.versions.unreleasedVersionLabel": {
+ "message": "此为 {siteTitle} {versionLabel} 版尚未发行的文档。",
+ "description": "The label used to tell the user that he's browsing an
unreleased doc version"
+ },
+ "theme.docs.versions.unmaintainedVersionLabel": {
+ "message": "此为 {siteTitle} {versionLabel} 版的文档,现已不再积极维护。",
+ "description": "The label used to tell the user that he's browsing an
unmaintained doc version"
+ },
+ "theme.docs.versions.latestVersionSuggestionLabel": {
+ "message": "最新的文档请参阅 {latestVersionLink} ({versionLabel})。",
+ "description": "The label used to tell the user to check the latest
version"
+ },
+ "theme.docs.versions.latestVersionLinkLabel": {
+ "message": "最新版本",
+ "description": "The label used for the latest version suggestion link
label"
+ },
+ "theme.common.editThisPage": {
+ "message": "编辑此页",
+ "description": "The link label to edit the current page"
+ },
+ "theme.common.headingLinkTitle": {
+ "message": "{heading}的直接链接",
+ "description": "Title for link to heading"
+ },
+ "theme.lastUpdated.atDate": {
+ "message": "于 {date} ",
+ "description": "The words used to describe on which date a page has been
last updated"
+ },
+ "theme.lastUpdated.byUser": {
+ "message": "由 {user} ",
+ "description": "The words used to describe by who the page has been last
updated"
+ },
+ "theme.lastUpdated.lastUpdatedAtBy": {
+ "message": "最后{byUser}{atDate}更新",
+ "description": "The sentence used to display when a page has been last
updated, and by who"
+ },
+ "theme.navbar.mobileVersionsDropdown.label": {
+ "message": "选择版本",
+ "description": "The label for the navbar versions dropdown on mobile view"
+ },
+ "theme.NotFound.title": {
+ "message": "找不到页面",
+ "description": "The title of the 404 page"
+ },
+ "theme.tags.tagsListLabel": {
+ "message": "标签:",
+ "description": "The label alongside a tag list"
+ },
+ "theme.admonition.caution": {
+ "message": "警告",
+ "description": "The default label used for the Caution admonition
(:::caution)"
+ },
+ "theme.admonition.danger": {
+ "message": "危险",
+ "description": "The default label used for the Danger admonition
(:::danger)"
+ },
+ "theme.admonition.info": {
+ "message": "信息",
+ "description": "The default label used for the Info admonition (:::info)"
+ },
+ "theme.admonition.note": {
+ "message": "备注",
+ "description": "The default label used for the Note admonition (:::note)"
+ },
+ "theme.admonition.tip": {
+ "message": "提示",
+ "description": "The default label used for the Tip admonition (:::tip)"
+ },
+ "theme.admonition.warning": {
+ "message": "注意",
+ "description": "The default label used for the Warning admonition
(:::warning)"
+ },
+ "theme.AnnouncementBar.closeButtonAriaLabel": {
+ "message": "关闭",
+ "description": "The ARIA label for close button of announcement bar"
+ },
+ "theme.blog.sidebar.navAriaLabel": {
+ "message": "最近博文导航",
+ "description": "The ARIA label for recent posts in the blog sidebar"
+ },
+ "theme.CodeBlock.copied": {
+ "message": "复制成功",
+ "description": "The copied button label on code blocks"
+ },
+ "theme.CodeBlock.copyButtonAriaLabel": {
+ "message": "复制代码到剪贴板",
+ "description": "The ARIA label for copy code blocks button"
+ },
+ "theme.CodeBlock.copy": {
+ "message": "复制",
+ "description": "The copy button label on code blocks"
+ },
+ "theme.CodeBlock.wordWrapToggle": {
+ "message": "切换自动换行",
+ "description": "The title attribute for toggle word wrapping button of
code block lines"
+ },
+ "theme.DocSidebarItem.expandCategoryAriaLabel": {
+ "message": "展开侧边栏分类 '{label}'",
+ "description": "The ARIA label to expand the sidebar category"
+ },
+ "theme.DocSidebarItem.collapseCategoryAriaLabel": {
+ "message": "折叠侧边栏分类 '{label}'",
+ "description": "The ARIA label to collapse the sidebar category"
+ },
+ "theme.NavBar.navAriaLabel": {
+ "message": "主导航",
+ "description": "The ARIA label for the main navigation"
+ },
+ "theme.navbar.mobileLanguageDropdown.label": {
+ "message": "选择语言",
+ "description": "The label for the mobile language switcher dropdown"
+ },
+ "theme.NotFound.p1": {
+ "message": "我们找不到您要找的页面。",
+ "description": "The first paragraph of the 404 page"
+ },
+ "theme.NotFound.p2": {
+ "message": "请联系原始链接来源网站的所有者,并告知他们链接已损坏。",
+ "description": "The 2nd paragraph of the 404 page"
+ },
+ "theme.TOCCollapsible.toggleButtonLabel": {
+ "message": "本页总览",
+ "description": "The label used by the button on the collapsible TOC
component"
+ },
+ "theme.blog.post.readMore": {
+ "message": "阅读更多",
+ "description": "The label used in blog post item excerpts to link to full
blog posts"
+ },
+ "theme.blog.post.readMoreLabel": {
+ "message": "阅读 {title} 的全文",
+ "description": "The ARIA label for the link to full blog posts from
excerpts"
+ },
+ "theme.blog.post.readingTime.plurals": {
+ "message": "阅读需 {readingTime} 分钟",
+ "description": "Pluralized label for \"{readingTime} min read\". Use as
much plural forms (separated by \"|\") as your language support (see
https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)"
+ },
+ "theme.docs.breadcrumbs.home": {
+ "message": "主页面",
+ "description": "The ARIA label for the home page in the breadcrumbs"
+ },
+ "theme.docs.sidebar.collapseButtonTitle": {
+ "message": "收起侧边栏",
+ "description": "The title attribute for collapse button of doc sidebar"
+ },
+ "theme.docs.sidebar.collapseButtonAriaLabel": {
+ "message": "收起侧边栏",
+ "description": "The title attribute for collapse button of doc sidebar"
+ },
+ "theme.docs.sidebar.navAriaLabel": {
+ "message": "文档侧边栏",
+ "description": "The ARIA label for the sidebar navigation"
+ },
+ "theme.docs.sidebar.closeSidebarButtonAriaLabel": {
+ "message": "关闭导航栏",
+ "description": "The ARIA label for close button of mobile sidebar"
+ },
+ "theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel": {
+ "message": "← 回到主菜单",
+ "description": "The label of the back button to return to main menu,
inside the mobile navbar sidebar secondary menu (notably used to display the
docs sidebar)"
+ },
+ "theme.docs.sidebar.toggleSidebarButtonAriaLabel": {
+ "message": "切换导航栏",
+ "description": "The ARIA label for hamburger menu button of mobile
navigation"
+ },
+ "theme.docs.sidebar.expandButtonTitle": {
+ "message": "展开侧边栏",
+ "description": "The ARIA label and title attribute for expand button of
doc sidebar"
+ },
+ "theme.docs.sidebar.expandButtonAriaLabel": {
+ "message": "展开侧边栏",
+ "description": "The ARIA label and title attribute for expand button of
doc sidebar"
+ },
+ "theme.ErrorPageContent.tryAgain": {
+ "message": "重试",
+ "description": "The label of the button to try again rendering when the
React error boundary captures an error"
+ },
+ "theme.common.skipToMainContent": {
+ "message": "跳到主要内容",
+ "description": "The skip to content label used for accessibility, allowing
to rapidly navigate to main content with keyboard tab/enter navigation"
+ },
+ "theme.tags.tagsPageTitle": {
+ "message": "标签",
+ "description": "The title of the tag list page"
+ },
+ "theme.unlistedContent.title": {
+ "message": "未列出页",
+ "description": "The unlisted content banner title"
+ },
+ "theme.unlistedContent.message": {
+ "message": "此页面未列出。搜索引擎不会对其索引,只有拥有直接链接的用户才能访问。",
+ "description": "The unlisted content banner message"
+ },
+ "homepage.hero.title": {
+ "message": "Apache Fury(孵化中)",
+ "description": "The title displayed in the homepage hero section"
+ },
+ "homepage.hero.subtitle": {
+ "message": "一个通过即时编译和零拷贝技术提供极速跨语言序列化的框架",
+ "description": "The subtitle displayed in the homepage hero section"
+ },
+ "homepage.githubButton": {
+ "message": "GitHub",
+ "description": "The GitHub button label on the homepage"
+ },
+ "homepage.getStartedButton": {
+ "message": "Get Started",
+ "description": "The Get Started button label on the homepage"
+ },
+ "feature.highPerformance.title": {
+ "message": "高性能",
+ "description": "The title for the high performance feature"
+ },
+ "feature.highPerformance.description": {
+ "message": "与其他序列化框架相比,速度提高了20~170倍。",
+ "description": "Description for the high performance feature"
+ },
+ "feature.easyToUse.title": {
+ "message": "易于使用",
+ "description": "The title for the easy to use feature"
+ },
+ "feature.easyToUse.description": {
+ "message": "无需DSL,您可以凭直觉有效地使用Fury。",
+ "description": "Description for the easy to use feature"
+ },
+ "feature.multiLanguages.title": {
+ "message": "多语言",
+ "description": "The title for the multi-languages feature"
+ },
+ "feature.multiLanguages.description": {
+ "message": "支持Java、Python、C++、Golang、Javascript、Rust等流行的编程语言,未来将增加更多。",
+ "description": "Description for the multi-languages feature"
+ }
+}
diff --git a/i18n/zh-CN/docusaurus-plugin-content-blog/options.json
b/i18n/zh-CN/docusaurus-plugin-content-blog/options.json
new file mode 100644
index 0000000..737d7dd
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-blog/options.json
@@ -0,0 +1,14 @@
+{
+ "title": {
+ "message": "博客",
+ "description": "The title for the blog used in SEO"
+ },
+ "description": {
+ "message": "博客",
+ "description": "The description for the blog used in SEO"
+ },
+ "sidebar.title": {
+ "message": "所有文章",
+ "description": "The label for the left sidebar"
+ }
+}
diff --git a/i18n/zh-CN/docusaurus-plugin-content-docs/current.json
b/i18n/zh-CN/docusaurus-plugin-content-docs/current.json
new file mode 100644
index 0000000..fcdc27d
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-plugin-content-docs/current.json
@@ -0,0 +1,6 @@
+{
+ "version.label": {
+ "message": "下一步",
+ "description": "The label for version current"
+ }
+}
diff --git a/i18n/zh-CN/docusaurus-theme-classic/footer.json
b/i18n/zh-CN/docusaurus-theme-classic/footer.json
new file mode 100644
index 0000000..2013029
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-theme-classic/footer.json
@@ -0,0 +1,54 @@
+{
+ "link.title.Community": {
+ "message": "社区",
+ "description": "The title of the footer links column with title=Community
in the footer"
+ },
+ "link.title.Docs": {
+ "message": "文档",
+ "description": "The title of the footer links column with title=Docs in
the footer"
+ },
+ "link.title.Repositories": {
+ "message": "代码库",
+ "description": "The title of the footer links column with
title=Repositories in the footer"
+ },
+ "link.item.label.Mailing list": {
+ "message": "邮件列表",
+ "description": "The label of footer link with label=Mailing list linking
to https://lists.apache.org/[email protected]"
+ },
+ "link.item.label.Slack": {
+ "message": "Slack",
+ "description": "The label of footer link with label=Slack linking to
https://join.slack.com/t/fury-project/shared_invite/zt-1u8soj4qc-ieYEu7ciHOqA2mo47llS8A"
+ },
+ "link.item.label.Twitter": {
+ "message": "Twitter",
+ "description": "The label of footer link with label=Twitter linking to
https://twitter.com/ApacheFury"
+ },
+ "link.item.label.Install": {
+ "message": "安装",
+ "description": "The label of footer link with label=Install linking to
/docs/start/install"
+ },
+ "link.item.label.Usage": {
+ "message": "使用",
+ "description": "The label of footer link with label=Usage linking to
/docs/start/usage"
+ },
+ "link.item.label.Benchmark": {
+ "message": "基准测试",
+ "description": "The label of footer link with label=Benchmark linking to
/docs/introduction/benchmark"
+ },
+ "link.item.label.Fury": {
+ "message": "Fury",
+ "description": "The label of footer link with label=Fury linking to
https://github.com/apache/fury"
+ },
+ "link.item.label.Website": {
+ "message": "网站",
+ "description": "The label of footer link with label=Website linking to
https://github.com/apache/fury-site"
+ },
+ "copyright": {
+ "message": "<div>\n <p> Apache Fury 是 Apache 软件基金会(ASF)孵化过程中的一个项目,由
Apache Incubator 赞助。孵化是所有新接受项目所需的,直到进一步审查表明基础设施、通信和决策过程已经稳定到与其他成功的 ASF
项目一致的程度。虽然孵化状态不一定反映代码的完整性或稳定性,但它确实表明该项目尚未完全获得 ASF 的认可。 </p>\n <p>\n
版权所有 © 2024 The Apache Software Foundation,许可证:Apache License, Version 2.0。
<br/>\n Apache、Apache 项目的名称以及羽毛标志是 Apache 软件基金会在美国和/或其他国家的注册商标或商标。\n
</p>\n </div>",
+ "description": "The footer copyright"
+ },
+ "logo.alt": {
+ "message": "Apache Incubator 标志",
+ "description": "The alt text of footer logo"
+ }
+}
diff --git a/i18n/zh-CN/docusaurus-theme-classic/navbar.json
b/i18n/zh-CN/docusaurus-theme-classic/navbar.json
new file mode 100644
index 0000000..bd48e98
--- /dev/null
+++ b/i18n/zh-CN/docusaurus-theme-classic/navbar.json
@@ -0,0 +1,70 @@
+{
+ "logo.alt": {
+ "message": "Fury Logo",
+ "description": "The alt text of navbar logo"
+ },
+ "item.label.Start": {
+ "message": "开始",
+ "description": "Navbar item with label Start"
+ },
+ "item.label.Introduction": {
+ "message": "介绍",
+ "description": "Navbar item with label Introduction"
+ },
+ "item.label.Guide": {
+ "message": "指南",
+ "description": "Navbar item with label Guide"
+ },
+ "item.label.Specification": {
+ "message": "规范",
+ "description": "Navbar item with label Specification"
+ },
+ "item.label.Community": {
+ "message": "社区",
+ "description": "Navbar item with label Community"
+ },
+ "item.label.Download": {
+ "message": "下载",
+ "description": "Navbar item with label Download"
+ },
+ "item.label.Blog": {
+ "message": "博客",
+ "description": "Navbar item with label Blog"
+ },
+ "item.label.ASF": {
+ "message": "ASF",
+ "description": "Navbar item with label ASF"
+ },
+ "item.label.Foundation": {
+ "message": "基金会",
+ "description": "Navbar item with label Foundation"
+ },
+ "item.label.License": {
+ "message": "许可证",
+ "description": "Navbar item with label License"
+ },
+ "item.label.Events": {
+ "message": "事件",
+ "description": "Navbar item with label Events"
+ },
+ "item.label.Privacy": {
+ "message": "隐私",
+ "description": "Navbar item with label Privacy"
+ },
+ "item.label.Security": {
+ "message": "安全",
+ "description": "Navbar item with label Security"
+ },
+ "item.label.Sponsorship": {
+ "message": "赞助",
+ "description": "Navbar item with label Sponsorship"
+ },
+ "item.label.Thanks": {
+ "message": "感谢",
+ "description": "Navbar item with label Thanks"
+ },
+ "item.label.Code of Conduct": {
+ "message": "行为准则",
+ "description": "Navbar item with label Code of Conduct"
+ }
+}
diff --git a/src/components/HomepageFeatures/index.tsx
b/src/components/HomepageFeatures/index.tsx
index ce818d4..699321a 100644
--- a/src/components/HomepageFeatures/index.tsx
+++ b/src/components/HomepageFeatures/index.tsx
@@ -1,46 +1,79 @@
-import clsx from 'clsx';
-import Heading from '@theme/Heading';
-import styles from './styles.module.css';
+import clsx from "clsx";
+import Heading from "@theme/Heading";
+import styles from "./styles.module.css";
+import Translate, { translate } from "@docusaurus/Translate";
+import React from "react";
type FeatureItem = {
- title: string;
- Svg: React.ComponentType<React.ComponentProps<'svg'>>;
+ title: string | JSX.Element;
+ Svg: React.ComponentType<React.ComponentProps<"svg">>;
description: JSX.Element;
};
const FeatureList: FeatureItem[] = [
{
- title: 'High performance',
- Svg: require('@site/static/img/performance.svg').default,
+ title: (
+ <Translate
+ id="feature.highPerformance.title"
+ description="The title for the high performance feature"
+ >
+ High performance
+ </Translate>
+ ),
+ Svg: require("@site/static/img/performance.svg").default,
description: (
- <>
+ <Translate
+ id="feature.highPerformance.description"
+ description="Description for the high performance feature"
+ >
Compared to other serialization frameworks, there is a 20~170x speed
up.
- </>
+ </Translate>
),
},
{
- title: 'Easy to use',
- Svg: require('@site/static/img/happy.svg').default,
+ title: (
+ <Translate
+ id="feature.easyToUse.title"
+ description="The title for the easy to use feature"
+ >
+ Easy to use
+ </Translate>
+ ),
+ Svg: require("@site/static/img/happy.svg").default,
description: (
- <>
+ <Translate
+ id="feature.easyToUse.description"
+ description="Description for the easy to use feature"
+ >
No need for DSL, you can use Fury effectively with your intuition.
- </>
+ </Translate>
),
},
{
- title: 'Multi-languages',
- Svg: require('@site/static/img/multi.svg').default,
+ title: (
+ <Translate
+ id="feature.multiLanguages.title"
+ description="The title for the multi-languages feature"
+ >
+ Multi-languages
+ </Translate>
+ ),
+ Svg: require("@site/static/img/multi.svg").default,
description: (
- <>
- Supports popular programming languages such as Java, Python, C++,
Golang, Javascript, Rust, and more will be added in the future.
- </>
+ <Translate
+ id="feature.multiLanguages.description"
+ description="Description for the multi-languages feature"
+ >
+ Supports popular programming languages such as Java, Python, C++,
+ Golang, Javascript, Rust, and more will be added in the future.
+ </Translate>
),
},
];
-function Feature({title, Svg, description}: FeatureItem) {
+function Feature({ title, Svg, description }: FeatureItem) {
return (
- <div className={clsx('col col--4')}>
+ <div className={clsx("col col--4")}>
<div className="text--center">
<Svg className={styles.featureSvg} role="img" />
</div>
diff --git a/src/pages/index.tsx b/src/pages/index.tsx
index b77de06..6703890 100644
--- a/src/pages/index.tsx
+++ b/src/pages/index.tsx
@@ -1,29 +1,48 @@
-import clsx from 'clsx';
-import Link from '@docusaurus/Link';
-import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
-import Layout from '@theme/Layout';
-import HomepageFeatures from '@site/src/components/HomepageFeatures';
-import Heading from '@theme/Heading';
-
-import styles from './index.module.css';
+import clsx from "clsx";
+import Link from "@docusaurus/Link";
+import useDocusaurusContext from "@docusaurus/useDocusaurusContext";
+import Layout from "@theme/Layout";
+import HomepageFeatures from "@site/src/components/HomepageFeatures";
+import Heading from "@theme/Heading";
+import styles from "./index.module.css";
+import Translate, { translate } from "@docusaurus/Translate";
+import React from "react";
function HomepageHeader() {
const { siteConfig } = useDocusaurusContext();
return (
- <header className={clsx('hero hero--primary', styles.heroBanner)}>
+ <header className={clsx("hero hero--primary", styles.heroBanner)}>
<div className="container">
<Heading as="h1" className="hero__title">
- {siteConfig.title}
+ <Translate id="homepage.hero.title">{siteConfig.title}</Translate>
</Heading>
- <p className="hero__subtitle">{siteConfig.tagline}</p>
+ <p className="hero__subtitle">
+ <Translate id="homepage.hero.subtitle">
+ {siteConfig.tagline}
+ </Translate>
+ </p>
<div className={styles.buttons}>
<Link
className="button button--secondary button--lg"
- to="https://github.com/apache/fury">
- GitHub
+ to="https://github.com/apache/fury"
+ >
+ <Translate
+ id="homepage.githubButton"
+ description="The GitHub button label on the homepage"
+ >
+ GitHub
+ </Translate>
</Link>
- <Link className="button button--secondary button--lg"
to="/docs/start/install">
- Get Started
+ <Link
+ className="button button--secondary button--lg"
+ to="/docs/start/install"
+ >
+ <Translate
+ id="homepage.getStartedButton"
+ description="The Get Started button label on the homepage"
+ >
+ Get Started
+ </Translate>
</Link>
</div>
</div>
@@ -37,7 +56,12 @@ export default function Home(): JSX.Element {
<>
<Layout
title={`${siteConfig.title}`}
- description="@{siteConfig.tagline}">
+ description={translate({
+ id: "homepage.metaDescription",
+ message: siteConfig.tagline,
+ description: "The meta description of the homepage",
+ })}
+ >
<HomepageHeader />
<main>
<HomepageFeatures />
diff --git a/tsconfig.json b/tsconfig.json
index 314eab8..7dc3bde 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -2,6 +2,7 @@
// This file is not used in compilation. It is here just for a nice editor
experience.
"extends": "@docusaurus/tsconfig",
"compilerOptions": {
+ "jsx": "react",
"baseUrl": "."
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]