翻译贡献
NocoBase 的默认语言是英语。目前,主应用程序支持英语、意大利语、荷兰语、简体中文和日语。我们诚挚邀请您为其他语言贡献翻译,让全球用户都能享受更便捷的 NocoBase 体验。
一、系统本地化
1. 系统界面和插件翻译
1.1 翻译范围
仅适用于 NocoBase 系统界面和插件的本地化,不包括其他自定义内容(如数据表或 Markdown 区块)。


1.2 本地化内容概述
NocoBase 使用 Git 管理本地化内容。主要仓库为: https://github.com/nocobase/nocobase/tree/main/locales
每种语言由一个以语言代码命名的 JSON 文件表示(例如 de-DE.json、fr-FR.json)。文件结构按插件模块组织,使用键值对存储翻译。例如:
翻译时,请逐步将其转换为类似以下的结构:
1.3 翻译测试和同步
-
完成翻译后,请测试并验证所有文本是否正确显示。 我们还发布了一个翻译验证插件 - 在插件市场中搜索
Locale tester。
安装后,从 git 仓库中的相应本地化文件复制 JSON 内容,粘贴到里面,然后点击确定以验证翻译内容是否生效。

-
提交后,系统脚本将自动将本地化内容同步到代码仓库。
1.4 NocoBase 2.0 本地化插件
注意: 此部分正在开发中。NocoBase 2.0 的本地化插件与 1.x 版本有一些差异。详细信息将在后续更新中提供。
二、文档本地化(NocoBase 2.0)
NocoBase 2.0 的文档采用新的结构管理。文档源文件位于 NocoBase 主仓库中:
https://github.com/nocobase/nocobase/tree/next/docs
2.1 文档结构
文档使用 Rspress 作为静态站点生成器,支持 8 种语言。结构组织如下:
2.2 翻译工作流
-
与英文源同步:所有翻译应基于英文文档(
docs/en/)。当英文文档更新时,翻译应相应更新。 -
分支策略:
- 使用
develop或next分支作为最新英文内容的参考 - 从目标分支创建您的翻译分支
- 使用
-
文件结构:每个语言目录应镜像英文目录结构。例如:
2.3 贡献翻译
- Fork 仓库:https://github.com/nocobase/nocobase
- 克隆您的 fork 并检出
develop或next分支 - 导航到
docs/docs/目录 - 找到您想贡献的语言目录(例如,日语为
ja/) - 翻译 markdown 文件,保持与英文版本相同的文件结构
- 在本地测试您的更改:
- 向主仓库提交 Pull Request
2.4 翻译指南
- 保持格式一致:保持与源文件相同的 markdown 结构、标题、代码块和链接
- 保留 frontmatter:保持文件顶部的任何 YAML frontmatter 不变,除非它包含可翻译的内容
- 图片引用:使用来自
docs/public/的相同图片路径 - 图片在所有语言之间共享 - 内部链接:更新内部链接以指向正确的语言路径
- 代码示例:通常,代码示例不应翻译,但代码中的注释可以翻译
2.5 导航配置
每种语言的导航结构在每个语言目录中的 _nav.json 和 _meta.json 文件中定义。添加新页面或章节时,请确保更新这些配置文件。
三、官网本地化
官网页面和所有内容存储在: https://github.com/nocobase/website
3.1 入门和参考资源
添加新语言时,请参考现有的语言页面:
- 英语:https://github.com/nocobase/website/tree/main/src/pages/en
- 中文:https://github.com/nocobase/website/tree/main/src/pages/cn
- 日语:https://github.com/nocobase/website/tree/main/src/pages/ja

全局样式修改位于:
- 英语:https://github.com/nocobase/website/blob/main/src/layouts/BaseEN.astro
- 中文:https://github.com/nocobase/website/blob/main/src/layouts/BaseCN.astro
- 日语:https://github.com/nocobase/website/blob/main/src/layouts/BaseJA.astro

官网的全局组件本地化位于: https://github.com/nocobase/website/tree/main/src/components

3.2 内容结构和本地化方法
我们采用混合内容管理方法。英语、中文和日语的内容和资源会定期从 CMS 系统同步并覆盖,而其他语言可以直接在本地文件中编辑。本地内容存储在 content 目录中,组织如下:
3.3 内容翻译指南
- 关于 Markdown 内容翻译
- 基于默认文件创建新的语言文件(例如,
index.md到index.fr.md) - 在 JSON 文件的相应字段中添加本地化属性
- 保持文件结构、链接和图片引用的一致性
- JSON 内容翻译 许多内容元数据存储在 JSON 文件中,通常包含多语言字段:
翻译注意事项:
-
字段命名约定:翻译字段通常使用
{原字段}_{语言代码}格式- 例如:title_fr(法语标题)、description_de(德语描述)
-
添加新语言时:
- 为每个需要翻译的字段添加相应的语言后缀版本
- 不要修改原字段值(如 title、description 等),因为它们作为默认语言(英语)内容
-
CMS 同步机制:
- CMS 系统定期更新英语、中文和日语内容
- 系统只会更新/覆盖这三种语言的内容(JSON 中的某些属性),不会删除其他贡献者添加的语言字段
- 例如:如果您添加了法语翻译(title_fr),CMS 同步不会影响此字段
3.4 配置新语言支持
要添加对新语言的支持,需要修改 src/utils/index.ts 文件中的 SUPPORTED_LANGUAGES 配置:
3.5 布局文件和样式
每种语言需要相应的布局文件:
- 创建新的布局文件(例如,对于法语,创建
src/layouts/BaseFR.astro) - 您可以复制现有的布局文件(如
BaseEN.astro)并翻译它 - 布局文件包含导航菜单、页脚等全局元素的翻译
- 确保更新语言切换器配置以正确切换到新添加的语言
3.6 创建语言页面目录
为新语言创建独立的页面目录:
- 在
src目录中创建一个以语言代码命名的文件夹(例如src/fr/) - 从其他语言目录复制页面结构(例如
src/en/) - 更新页面内容,将标题、描述和文本翻译成目标语言
- 确保页面使用正确的布局组件(例如
.layout: '@/layouts/BaseFR.astro')
3.7 组件本地化
一些通用组件也需要翻译:
- 检查
src/components/目录中 的组件 - 特别注意带有固定文本的组件(如导航栏、页脚等)
- 组件可能使用条件渲染来显示不同语言的内容:
3.8 测试和验证
完成翻译后,进行全面测试:
- 在本地运行网站(通常使用
yarn dev) - 检查所有页面在新语言中的显示效果
- 验证语言切换功能是否正常工作
- 确保所有链接指向正确的语言版本页面
- 检查响应式布局,确保翻译文本不会破坏页面设计
四、如何开始翻译
如果您想为 NocoBase 贡献新语言翻译,请按照以下步骤操作:
完成翻译后,请向 NocoBase 提交 Pull Request。新语言将出现在系统配置中,允许您选择要显示的语言。

NocoBase 1.x 文档
关于 NocoBase 1.x 的翻译指南,请参考:

