diff --git a/www/docusaurus.config.ts b/www/docusaurus.config.ts index a806910..cc9b44a 100644 --- a/www/docusaurus.config.ts +++ b/www/docusaurus.config.ts @@ -32,7 +32,7 @@ const config: Config = { // may want to replace "en" with "zh-Hans". i18n: { defaultLocale: 'en', - locales: ['en','es','ru'], + locales: ['en','es','ru','zh-Hans'], }, presets: [ diff --git a/www/i18n/zh-Hans/code.json b/www/i18n/zh-Hans/code.json new file mode 100644 index 0000000..b5cf15b --- /dev/null +++ b/www/i18n/zh-Hans/code.json @@ -0,0 +1,374 @@ +{ + "home.title": { + "message": "介绍 Butter Box" + }, + "home.subtitle1": { + "message": "让没有互联网的生活更顺畅。" + }, + "home.subtitle2": { + "message": "获取有用的工具。" + }, + "home.whatisbutterbox": { + "message": "应用商店、加密聊天等更多功能,均可通过离线树莓派的 WiFi 访问。" + }, + "home.section1.title": { + "message": "它是如何工作的?" + }, + "home.section1.description": { + "message": "Butter Box 会广播自己的 WiFi 网络。加入后,您可以安装 Butter、获取应用、加入公共聊天室,或创建自己的私人聊天室与朋友分享。即使在没有互联网的情况下,Butter Box 也能正常工作。只需到盒子附近下载更多应用或查看您的聊天室。所有内容都直接存储在 Butter Box 上。" + }, + "home.learnmore": { + "message": "了解更多" + }, + "home.getbutter.title": { + "message": "获取您自己的 Butter Box" + }, + "home.getbutter.description": { + "message": "我们帮助制作 Butter Box 并运送到世界各地的合作伙伴。如果您服务的社区可以从中受益,请联系我们。" + }, + "home.getintouch": { + "message": "联系我们" + }, + "home.makebutter.title": { + "message": "制作您自己的 Butter Box" + }, + "home.makebutter.description": { + "message": "您可以通过在树莓派甚至旧电脑上安装预制映像来制作自己的 Butter Box。只需下载映像,然后使用您安装其他发行版时常用的 RPi 或 Disk Imager 将其烧录到 MicroSD 卡或 USB 驱动器即可。" + }, + "home.learnhow": { + "message": "了解如何操作!" + }, + "home.getcode.title": { + "message": "或者,按照我们开源仓库中的说明自定义您的 Butter Box。" + }, + "home.getsource.button": { + "message": "源码与文档" + }, + "theme.ErrorPageContent.title": { + "message": "页面已崩溃。", + "description": "The title of the fallback page when the page crashed" + }, + "theme.BackToTopButton.buttonAriaLabel": { + "message": "回到顶部", + "description": "The ARIA label for the back to top button" + }, + "theme.blog.archive.title": { + "message": "历史博文", + "description": "The page & hero title of the blog archive page" + }, + "theme.blog.archive.description": { + "message": "历史博文", + "description": "The page & hero description of the blog archive page" + }, + "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.tags.tagsPageLink": { + "message": "查看所有标签", + "description": "The label of the link targeting the tag list page" + }, + "theme.colorToggle.ariaLabel.mode.system": { + "message": "系统模式", + "description": "The name for the system color mode" + }, + "theme.colorToggle.ariaLabel.mode.light": { + "message": "浅色模式", + "description": "The name for the light color mode" + }, + "theme.colorToggle.ariaLabel.mode.dark": { + "message": "暗黑模式", + "description": "The name for the dark color mode" + }, + "theme.colorToggle.ariaLabel": { + "message": "切换浅色/暗黑模式(当前为{mode})", + "description": "The ARIA label for the color mode toggle" + }, + "theme.docs.breadcrumbs.navAriaLabel": { + "message": "页面路径", + "description": "The ARIA label for the breadcrumbs" + }, + "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.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.IconExternalLink.ariaLabel": { + "message": "(在新标签页中打开)", + "description": "The ARIA label for the external link icon" + }, + "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.CodeBlock.copy": { + "message": "复制", + "description": "The copy button label on code blocks" + }, + "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.wordWrapToggle": { + "message": "切换自动换行", + "description": "The title attribute for toggle word wrapping button of code block lines" + }, + "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.navbar.mobileDropdown.collapseButton.expandAriaLabel": { + "message": "展开下拉菜单", + "description": "The ARIA label of the button to expand the mobile dropdown navbar item" + }, + "theme.navbar.mobileDropdown.collapseButton.collapseAriaLabel": { + "message": "收起下拉菜单", + "description": "The ARIA label of the button to collapse the mobile dropdown navbar item" + }, + "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.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.blog.author.pageTitle": { + "message": "{authorName} - {nPosts}", + "description": "The title of the page for a blog author" + }, + "theme.blog.authorsList.pageTitle": { + "message": "作者", + "description": "The title of the authors page" + }, + "theme.blog.authorsList.viewAll": { + "message": "查看所有作者", + "description": "The label of the link targeting the blog authors page" + }, + "theme.blog.author.noPosts": { + "message": "该作者尚未撰写任何文章。", + "description": "The text for authors with 0 blog post" + }, + "theme.contentVisibility.unlistedBanner.title": { + "message": "未列出页", + "description": "The unlisted content banner title" + }, + "theme.contentVisibility.unlistedBanner.message": { + "message": "此页面未列出。搜索引擎不会对其索引,只有拥有直接链接的用户才能访问。", + "description": "The unlisted content banner message" + }, + "theme.contentVisibility.draftBanner.title": { + "message": "草稿页", + "description": "The draft content banner title" + }, + "theme.contentVisibility.draftBanner.message": { + "message": "此页面是草稿,仅在开发环境中可见,不会包含在正式版本中。", + "description": "The draft content banner message" + }, + "theme.docs.DocCard.categoryDescription.plurals": { + "message": "{count} 个项目", + "description": "The default description for a category card in the generated index about how many items this category includes" + }, + "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" + } +} diff --git a/www/i18n/zh-Hans/docusaurus-plugin-content-blog/options.json b/www/i18n/zh-Hans/docusaurus-plugin-content-blog/options.json new file mode 100644 index 0000000..d1d4308 --- /dev/null +++ b/www/i18n/zh-Hans/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/www/i18n/zh-Hans/docusaurus-plugin-content-docs/current.json b/www/i18n/zh-Hans/docusaurus-plugin-content-docs/current.json new file mode 100644 index 0000000..bc1518c --- /dev/null +++ b/www/i18n/zh-Hans/docusaurus-plugin-content-docs/current.json @@ -0,0 +1,30 @@ +{ + "version.label": { + "message": "下一版", + "description": "The label for version current" + }, + "sidebar.tutorialSidebar.category.Build A Box": { + "message": "搭建盒子", + "description": "The label for category 'Build A Box' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.Raspberry Pi": { + "message": "树莓派", + "description": "The label for category 'Raspberry Pi' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.Services": { + "message": "服务", + "description": "The label for category 'Services' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.Content Packs": { + "message": "内容包", + "description": "The label for category 'Content Packs' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.Apps": { + "message": "应用", + "description": "The label for category 'Apps' in sidebar 'tutorialSidebar'" + }, + "sidebar.tutorialSidebar.category.FAQ": { + "message": "常见问题", + "description": "The label for category 'FAQ' in sidebar 'tutorialSidebar'" + } +} diff --git a/www/i18n/zh-Hans/docusaurus-theme-classic/footer.json b/www/i18n/zh-Hans/docusaurus-theme-classic/footer.json new file mode 100644 index 0000000..ed76f20 --- /dev/null +++ b/www/i18n/zh-Hans/docusaurus-theme-classic/footer.json @@ -0,0 +1,46 @@ +{ + "link.title.Docs": { + "message": "文档", + "description": "The title of the footer links column with title=Docs in the footer" + }, + "link.title.Community": { + "message": "社区", + "description": "The title of the footer links column with title=Community in the footer" + }, + "link.title.More": { + "message": "更多", + "description": "The title of the footer links column with title=More in the footer" + }, + "link.item.label.Get Started": { + "message": "开始使用", + "description": "The label of footer link with label=Get Started linking to /docs/" + }, + "link.item.label.Guardian Project": { + "message": "Guardian Project", + "description": "The label of footer link with label=Guardian Project linking to https://guardianproject.info" + }, + "link.item.label.SR2": { + "message": "SR2", + "description": "The label of footer link with label=SR2 linking to https://sr2.uk" + }, + "link.item.label.Okthanks": { + "message": "Okthanks", + "description": "The label of footer link with label=Okthanks linking to https://okthanks.com" + }, + "link.item.label.F-Droid": { + "message": "F-Droid", + "description": "The label of footer link with label=F-Droid linking to https://f-droid.org" + }, + "link.item.label.Blog": { + "message": "博客", + "description": "The label of footer link with label=Blog linking to /blog" + }, + "link.item.label.GP Repo": { + "message": "GP 仓库", + "description": "The label of footer link with label=GP Repo linking to https://guardianproject.dev/butter" + }, + "copyright": { + "message": "版权所有 © 2026 Guardian Project。使用 Docusaurus 构建。", + "description": "The footer copyright" + } +} diff --git a/www/i18n/zh-Hans/docusaurus-theme-classic/navbar.json b/www/i18n/zh-Hans/docusaurus-theme-classic/navbar.json new file mode 100644 index 0000000..881557c --- /dev/null +++ b/www/i18n/zh-Hans/docusaurus-theme-classic/navbar.json @@ -0,0 +1,26 @@ +{ + "title": { + "message": "Butter", + "description": "The title in the navbar" + }, + "logo.alt": { + "message": "Butter 应用标志", + "description": "The alt text of navbar logo" + }, + "item.label.Get Started": { + "message": "开始使用", + "description": "Navbar item with label Get Started" + }, + "item.label.Get In Touch": { + "message": "联系我们", + "description": "Navbar item with label Get In Touch" + }, + "item.label.Latest News": { + "message": "最新消息", + "description": "Navbar item with label Latest News" + }, + "item.label.Content Packs": { + "message": "内容包", + "description": "Navbar item with label Content Packs" + } +}