docs/docs/cn/get-started/translations.md
NocoBase 的默认语言是英语。目前,主应用程序支持英语、意大利语、荷兰语、简体中文和日语。我们诚挚邀请您为其他语言贡献翻译,让全球用户都能享受更便捷的 NocoBase 体验。
仅适用于 NocoBase 系统界面和插件的本地化,不包括其他自定义内容(如数据表或 Markdown 区块)。
NocoBase 使用 Git 管理本地化内容。主要仓库为: https://github.com/nocobase/nocobase/tree/main/locales
每种语言由一个以语言代码命名的 JSON 文件表示(例如 de-DE.json、fr-FR.json)。文件结构按插件模块组织,使用键值对存储翻译。例如:
{
// 客户端插件
"@nocobase/client": {
"(Fields only)": "(Fields only)",
"12 hour": "12 hour",
"24 hour": "24 hour"
// ...其他键值对
},
"@nocobase/plugin-acl": {
// 此插件的键值对
}
// ...其他插件模块
}
翻译时,请逐步将其转换为类似以下的结构:
{
// 客户端插件
"@nocobase/client": {
"(Fields only)": "(仅字段 - 已翻译)",
"12 hour": "12 小时",
"24 hour": "24 小时"
// ...其他键值对
},
"@nocobase/plugin-acl": {
// 此插件的键值对
}
// ...其他插件模块
}
完成翻译后,请测试并验证所有文本是否正确显示。
我们还发布了一个翻译验证插件 - 在插件市场中搜索 Locale tester。
安装后,从 git 仓库中的相应本地化文件复制 JSON 内容,粘贴到里面,然后点击确定以验证翻译内容是否生效。
提交后,系统脚本将自动将本地化内容同步到代码仓库。
<!-- TODO: 添加 2.0 本地化插件差异的详细信息 -->注意: 此部分正在开发中。NocoBase 2.0 的本地化插件与 1.x 版本有一些差异。详细信息将在后续更新中提供。
NocoBase 2.0 的文档采用新的结构管理。文档源文件位于 NocoBase 主仓库中:
https://github.com/nocobase/nocobase/tree/next/docs
文档使用 Rspress 作为静态站点生成器,支持 22 种语言。结构组织如下:
docs/
├── docs/
│ ├── en/ # 英语(源语言)
│ ├── cn/ # 简体中文
│ ├── ja/ # 日语
│ ├── ko/ # 韩语
│ ├── de/ # 德语
│ ├── fr/ # 法语
│ ├── es/ # 西班牙语
│ ├── pt/ # 葡萄牙语
│ ├── ru/ # 俄语
│ ├── it/ # 意大利语
│ ├── tr/ # 土耳其语
│ ├── uk/ # 乌克兰语
│ ├── vi/ # 越南语
│ ├── id/ # 印度尼西亚语
│ ├── th/ # 泰语
│ ├── pl/ # 波兰语
│ ├── nl/ # 荷兰语
│ ├── cs/ # 捷克语
│ ├── ar/ # 阿拉伯语
│ ├── he/ # 希伯来语
│ ├── hi/ # 印地语
│ ├── sv/ # 瑞典语
│ └── public/ # 共享资源(图片等)
├── theme/ # 自定义主题
├── rspress.config.ts # Rspress 配置
└── package.json
与英文源同步:所有翻译应基于英文文档(docs/en/)。当英文文档更新时,翻译应相应更新。
分支策略:
develop 或 next 分支作为最新英文内容的参考文件结构:每个语言目录应镜像英文目录结构。例如:
docs/en/get-started/index.md → docs/ja/get-started/index.md
docs/en/api/acl/acl.md → docs/ja/api/acl/acl.md
develop 或 next 分支docs/docs/ 目录ja/)cd docs
yarn install
yarn dev
docs/public/ 的相同图片路径 - 图片在所有语言之间共享每种语言的导航结构在每个语言目录中的 _nav.json 和 _meta.json 文件中定义。添加新页面或章节时,请确保更新这些配置文件。
官网页面和所有内容存储在: https://github.com/nocobase/website
添加新语言时,请参考现有的语言页面:
全局样式修改位于:
官网的全局组件本地化位于: https://github.com/nocobase/website/tree/main/src/components
我们采用混合内容管理方法。英语、中文和日语的内容和资源会定期从 CMS 系统同步并覆盖,而其他语言可以直接在本地文件中编辑。本地内容存储在 content 目录中,组织如下:
/content
/articles # 博客文章
/article-slug
index.md # 英语内容(默认)
index.cn.md # 中文内容
index.ja.md # 日语内容
metadata.json # 元数据和其他本地化属性
/tutorials # 教程
/releases # 发布信息
/pages # 一些静态页面
/categories # 分类信息
/article-categories.json # 文章分类列表
/category-slug # 单个分类详情
/category.json
/tags # 标签信息
/article-tags.json # 文章标签列表
/release-tags.json # 发布标签列表
/tag-slug # 单个标签详情
/tag.json
/help-center # 帮助中心内容
/help-center-tree.json # 帮助中心导航结构
....
index.md 到 index.fr.md){
"id": 123,
"title": "English Title", // 英语标题(默认)
"title_cn": "中文标题", // 中文标题
"title_ja": "日本語タイトル", // 日语标题
"description": "English description",
"description_cn": "中文描述",
"description_ja": "日本語の説明",
"slug": "article-slug", // URL 路径(通常不翻译)
"status": "published",
"publishedAt": "2025-03-19T12:00:00Z"
}
翻译注意事项:
字段命名约定:翻译字段通常使用 {原字段}_{语言代码} 格式
添加新语言时:
CMS 同步机制:
要添加对新语言的支持,需要修改 src/utils/index.ts 文件中的 SUPPORTED_LANGUAGES 配置:
export const SUPPORTED_LANGUAGES = {
en: {
code: 'en',
locale: 'en-US',
name: 'English',
default: true
},
cn: {
code: 'cn',
locale: 'zh-CN',
name: 'Chinese'
},
ja: {
code: 'ja',
locale: 'ja-JP',
name: 'Japanese'
},
// 添加新语言示例:
fr: {
code: 'fr',
locale: 'fr-FR',
name: 'French'
}
};
每种语言需要相应的布局文件:
src/layouts/BaseFR.astro)BaseEN.astro)并翻译它为新语言创建独立的页面目录:
src 目录中创建一个以语言代码命名的文件夹(例如 src/fr/)src/en/).layout: '@/layouts/BaseFR.astro')一些通用组件也需要翻译:
src/components/ 目录中的组件{Astro.url.pathname.startsWith('/en') && <p>English content</p>}
{Astro.url.pathname.startsWith('/cn') && <p>中文内容</p>}
{Astro.url.pathname.startsWith('/fr') && <p>Contenu français</p>}
完成翻译后,进行全面测试:
yarn dev)如果您想为 NocoBase 贡献新语言翻译,请按照以下步骤操作:
| 组件 | 仓库 | 分支 | 备注 |
|---|---|---|---|
| 系统界面 | https://github.com/nocobase/nocobase/tree/main/locales | main | JSON 本地化文件 |
| 文档(2.0) | https://github.com/nocobase/nocobase | develop / next | docs/docs/<lang>/ 目录 |
| 官网 | https://github.com/nocobase/website | main | 参见第三节 |
完成翻译后,请向 NocoBase 提交 Pull Request。新语言将出现在系统配置中,允许您选择要显示的语言。
关于 NocoBase 1.x 的翻译指南,请参考: