贡献翻译
WCPOS 目前提供 10 种语言的翻译,还有很大的扩展空间。非常欢迎大家贡献翻译——不需要翻译全部内容,也不需要具备开发经验。本页面介绍了翻译的内容和位置。
翻译所在的四个位置
WCPOS 的可翻译字符串分布在四个仓库中,每个仓库都有各自的贡献流程。您可以独立地为其中任何一个贡献翻译。
WordPress 插件(PHP 字符串)
管理后台通知、设置页面标签、错误消息和 WP Admin 界面。通过 translate.wordpress.org 使用 GlotPress 进行翻译——这是 WordPress 的标准翻译流程。无需编程知识。
POS 应用(React/i18next)
收银员在收银台看到的所有内容——按钮、对话框、错误消息、购物车和结账界面。翻译文件位于 wcpos/monorepo 仓库中;通过 Pull Request 提交贡献。需要基本的 GitHub 使用经验。
WP Admin React 页面
较新的基于 React 的设置、店铺编辑器、模板、扩展和日志页面。翻译以 JSON 文件形式存放在 wcpos/woocommerce-pos(Pro 页面存放在 woocommerce-pos-pro)中。需要基本的 GitHub 使用经验。
本文档(Docusaurus)
您正在阅读的就是本文档站点。翻译后的 MDX 文件位于 wcpos/docs 仓库的 i18n/<locale>/目录下。贡献方式为提交拉取请求。了解 Markdown 会有所帮助。
WordPress 插件字符串(最容易上手的部分)
如果您之前从未翻译过 WordPress 插件,这是最简单的入门方式:
- 在 translate.wordpress.org/projects/wp-plugins/woocommerce-pos/ 查找您的语言——WordPress 支持的每个语言区域都有一个子项目。
- 使用您的 WordPress.org 账户登录(即您在支持论坛中发表评论时使用的账户)。如果没有账户,可以免费创建一个。
- 选择一个子项目——通常您会看到:
- Stable(最新发布版)——当前公开版本中包含的字符串。此处的翻译会在每个更新插件的站点上生效。
- Development(开发版)——下一版本中的字符串。翻译这些内容可以在新版本发布前做好准备。
- Stable Readme / Development Readme——显示在 WordPress.org 上的插件描述。
- 通过 GlotPress 界面逐条提交翻译。翻译提交后状态为建议,需等待项目翻译编辑(PTE)审核通过。
- 成为 PTE——在积累少量已批准的翻译后,在 WordPress polyglots Slack 上提出申请即可。PTE 可以直接批准翻译,无需等待审核。
翻译获得批准后,会自动推送给所在语言区域的每位 WCPOS 用户——无需更改代码,无需提交 PR。
POS 应用翻译(React UI)
面向收银员的界面是一个 React 应用,使用 i18next 进行翻译管理,在 v1.8.8 中重新构建。翻译文件以 JSON 格式存放在 wcpos/monorepo 仓库中(跨平台 POS 核心)。
该设置有两个实用特性:
- 按需加载 — 运行时仅获取当前活动语言区域的翻译文件(通过 jsDelivr CDN),因此添加新语言不会增加其他用户的下载体积。
- 区域回退 — i18next JSON 文件名使用下划线:
pt_BR回退到pt,es_MX回退到es,以此类推。文档和 Web 语言标签则使用连字符,如pt-BR或es-MX。翻译 JSON 文件请使用下划线形式,需要语言标签的地方请使用连字符形式。
参与贡献:
- 找到 en 源文件,位于
wcpos/monorepo的翻译包目录下(具体路径可能有所不同——最简单的方式是在仓库中提交 issue,询问应复制哪个文件来开始新的翻译)。 - 复制
en.json到<your-locale>.json,遵循 i18next JSON 语言区域命名规范(fr.json,de.json,pt_BR.json等;区域文件名请使用下划线)。 - 翻译值内容,保持键名和所有
{{interpolation}}占位符不变。 - 提交 pull request 到 monorepo。CI 会验证 JSON 结构。
如需对现有翻译进行小幅修改,可以直接在 GitHub 上通过铅笔图标编辑 JSON 文件——GitHub 会自动为您创建一个 PR。
WP Admin React 界面
WordPress 管理设置、店铺编辑器、模板页面、扩展目录和日志都使用与 POS 应用相同的翻译模式,但位于两个独立的仓库中:
- 免费版管理界面 ——
wcpos/woocommerce-pos仓库,位于packages/settings/src/translations/locales/<locale>/wp-admin-settings.json(其他管理包的路径类似;区域语言文件夹请使用下划线,如pt_BR用于区域 JSON 语言文件)。 - Pro 管理界面 ——
wcpos/woocommerce-pos-pro仓库,使用相同的模式(例如packages/store-edit/src/translations/locales/<locale>/wp-admin-store-edit.json,区域文件夹使用下划线命名,如pt_BR)。
贡献流程与 POS 应用相同:复制 en.json 到 <your-locale>.json,翻译后提交 PR。
文档(本站页面)
文档站点使用 Docusaurus 的标准 i18n 配置。翻译后的 MDX 文件位于 wcpos/docs 仓库的 i18n/<locale>/docusaurus-plugin-content-docs/current/ 下。每个英文页面在 versioned_docs/version-1.x/ 中都有对应的翻译版本。
站点已配备自动化翻译工具——pnpm translate 脚本可使用 OpenAI / Anthropic API 从英文生成翻译草稿,随后由人工审校润色。因此,典型的贡献流程为:
- 选择一个页面,该页面需要翻译或改进。网站页脚的语言选择器会显示当前已启用的语言。
- 编辑对应的 MDX 文件,位于
i18n/<locale>/...直接在 GitHub 上通过每个页面底部的编辑此页面链接进行编辑。 - **提交拉取请求。**审核人员将检查翻译的准确性并合并。
如需进行较大规模的贡献(例如翻译整个章节或启动新的语言区域),请先创建一个 issue 以便与团队协调。
WCPOS 使用的区域代码
WCPOS 目前提供以下 10 个区域设置。文档表格中对区域性语言使用连字符形式的语言标签;在 i18next JSON 文件中请使用等效的下划线形式,例如 pt_BR 对应 pt-BR,zh_CN 对应 zh-CN。
| 代码 | 语言 |
|---|---|
ar | 阿拉伯语(从右到左) |
de | 德语 |
es | 西班牙语 |
fr | 法语 |
hi-IN | 印地语(印度) |
it | 意大利语 |
ja | 日语 |
ko | 韩语 |
pt-BR | 葡萄牙语(巴西) |
zh-CN | 简体中文 |
如果您的语言不在列表中,请在您想要开始的仓库中提交一个 issue,我们会配置好该语言环境。
翻译提示
- **保持占位符不变。**字符串中通常包含
{{variable}},%s,%d,或<strong>标签——翻译周围的文本,但保持占位符完全不变。WCPOS 会在运行时将实际值替换到这些占位符中。 - 保持现有语气。 WCPOS 的文档和界面风格务实、直接。如果英文是 "Add Coupon",翻译应使用您所在语言环境中类似按钮上使用的动词形式——而非名词。
- 尽可能在实际环境中测试。 将 WordPress 站点设置为您的语言环境,安装插件,并验证字符串在实际界面上是否显示正确。上下文很重要——在一个页面上合适的字符串在另一个页面上可能会出现不自然的换行。
- 不要翻译代码、URL 或技术标识符。 优惠券代码、网关 ID、语言代码、文件路径和短代码保持英文。如果不确定,请保留不翻译——这比破坏系统依赖的内容更安全。
- 从右到左(RTL)语言——阿拉伯语、希伯来语、波斯语、乌尔都语——还需要将收据模板标记为 RTL。WCPOS 内置了 RTL 收据模板;请参阅自定义收据了解模板库。
在哪里寻求帮助
- WordPress.org polyglots Slack ——用于 Glotpress 相关问题
- WCPOS Discord ——用于 WCPOS 相关的翻译讨论(邀请链接)
- GitHub issues ——针对相关仓库(
woocommerce-pos、woocommerce-pos-pro、monorepo或docs)提交特定仓库的问题