跳到主内容
版本: 1.x

参与翻译

WCPOS 的翻译由 AI 完成,并受一套精心调校的规则指导,而它也在像你这样的用户帮助下不断完善。机器会在字符串变更后不久,为每一种受支持语言生成完整且一致的初始版本;人则负责捕捉机器容易忽略的细微差别、上下文和本地惯例。你不需要翻译整个应用,也不需要是开发者也能帮忙。本页说明它的工作方式,以及该去哪里提出修改建议。

WCPOS 翻译现在如何运作

所有可翻译字符串——收银端应用、桌面应用、WordPress 管理后台界面、插件的 PHP 字符串,以及这些文档——都通过同一条自动化流水线处理:

  1. 源字符串会自动从应用、插件和文档中提取到中心仓库 wcpos/translations(文档则进入这个 wcpos/docs 仓库)。
  2. AI 会将它们翻译成每一种受支持的语言环境,并遵循一套严格规则,保留占位符、代码、品牌名称和菜单路径,同时本地化可见文本。
  3. 每日完整性检查会扫描缺失或过时的字符串,并自动将其加入翻译队列,因此新增和变更的字符串不会长期处于未翻译状态。
  4. 每个批次都会进入 Pull Request 供人工审核,然后才会发布。通过审核的翻译会自动发布并交付——应用通过 CDN 获取,插件则通过内置的翻译更新器获取。

由于整个流程都是自动化的,作为贡献者,你的工作通常不是从空白文件开始翻译,而是改进一份已经存在的翻译。发现措辞别扭、应与你所在语言环境的 WooCommerce 保持一致的术语,或者在上下文中读起来不对的标签?提出修改建议,它就会推送给所有人。

我们不再使用 translate.wordpress.org

WCPOS 过去依赖 WordPress 翻译站点(GlotPress)来处理插件字符串。我们已经完全弃用了这套流程。 这种工作流既缓慢又过时,而且更重要的是,它不支持机器翻译,所以大多数语言始终没能完成。经过调优的 AI 流程可以覆盖更多语言,自动保持同步,并且在实践中能产出更好的结果。如果你以前在那里翻译过 WCPOS,谢谢你,但现在贡献不再提交到那里了。

贡献位置

根据你想改进的内容,只分两处:

应用与插件

POS 应用、桌面应用、WordPress 管理后台界面,以及插件本身中的所有内容——包括 JavaScript UI 字符串和 PHP 字符串。它们都在同一个仓库里:wcpos/translations熟悉 GitHub 会很有帮助。

这些文档

你现在正在阅读的文档站点。翻译后的 MDX 文件位于 wcpos/docs 仓库下 i18n/<locale>/熟悉 Markdown 会很有帮助。

改进应用和插件翻译

所有应用和插件的翻译都位于 wcpos/translations 仓库中。你会找到:

  • source/ — 提取出的英文字符串。不要编辑这些 — 它们由应用和插件自动生成。
  • translations/js/<locale>/<project>/<namespace>.json — 翻译后的 UI 字符串。这里是你需要编辑的内容,用于修复应用和管理后台界面。
  • translations/php/<locale>/ — 翻译后的插件字符串。编辑 .po 文件;其 .mo.l10n.php 旁边的文件都是生成的,所以请不要动它们。

JavaScript 字符串分为四个 <project> 文件夹:

项目涵盖内容
monorepo收银员使用的 POS 应用——按钮、购物车、结账、对话框、错误。
electron桌面版(Windows/macOS)应用外壳。
woocommerce-pos免费插件的 WP Admin React 界面——设置、模板、日志等。
woocommerce-pos-proPro 插件的 WP Admin React 界面——店铺编辑器、Pro 设置。

如需建议修复:

  1. 在你的语言和项目中找到该字符串——例如 translations/js/de_DE/monorepo/core.json 对应德语应用字符串,或 translations/php/de_DE/woocommerce-pos-de_DE.po 对应德语插件字符串。
  2. 编辑译文值。 保留 JSON 键、PHP msgid,以及任何 {{interpolation}}%s%d,或 <tag> 占位符保持原样。
  3. 提交拉取请求。 对于单行修复,可以在 GitHub 上使用铅笔图标,它会为你创建拉取请求。审阅者会检查更改并将其合并。

如果你的语言还没有包含在内,请参阅添加新语言

改进这些文档

文档站点使用 Docusaurus 的标准 i18n 配置。英文源文件位于 versioned_docs/,AI 翻译副本位于wcpos/docsi18n/<locale>/docusaurus-plugin-content-docs/。每个英文页面在每个启用的语言版本中都有对应页面。

如需建议修复:

  1. 用你的语言打开页面,并点击底部的编辑此页面——这会直接带你前往 GitHub 上的已翻译 MDX 文件。
  2. 编辑译文。 保持 Markdown/MDX 语法、链接、行内代码和 frontmatter 键不变——翻译正文、标题和可见标签。
  3. 提交拉取请求。 不要编辑英文源文件下的 versioned_docs/ 来“修复”某个翻译——只修改位于 i18n/<locale>/.

对于较大的贡献——比如整个章节,或者从零开始新增一个语言——请先提交一个 issue,以便我们协调。

添加新语言

应用和插件已经提供了 50+ 种语言环境 的翻译(完整列表见 locales.json)。文档提供的语言集较小,列在下方。如果缺少你的语言,或者只覆盖了一部分,请在相关仓库中提交 issue,我们会把该语言环境接入。AI 流程可以很快补齐一种新语言,之后就需要社区来逐步打磨。

语言环境代码

这些文档当前发布为以下语言:

代码语言
ar阿拉伯语(从右向左)
de德语
es西班牙语
fr法语
hi-IN印地语(印度)
it意大利语
ja日语
ko韩语
nl荷兰语
pt-BR葡萄牙语(巴西)
zh-CN简体中文

关于 locale 代码格式的说明:应用和插件 (wcpos/translations) 对文件夹和文件名使用下划线格式——de_DEpt_BRzh_CN——并同时包含基础语言(defres)和地区变体(de_ATfr_CAes_MX)。文档和网页语言标签使用连字符格式——pt-BRhi-INzh-CN。请使用与你正在编辑的仓库一致的格式。

译者提示

这些内容与 AI 流水线遵循的规则一致,因此也是审阅者会检查的相同内容:

  • 保留占位符不变。 字符串中通常包含 {{variable}}%s%d,或 <strong> 标签——翻译周围文字,但请保持占位符原样不变。WCPOS 会在运行时将真实值替换到这些占位符中。
  • 保持品牌和产品名称完全一致。 WCPOSWCPOS ProWooCommerceWordPressStripeStripe TerminalSumUp 均保持不变。面向客户的文本中应使用 WCPOS,不要使用“WooCommerce POS”,后者只应出现在 slug 和 URL 等技术标识符中。
  • 本地化可见的 UI 标签。 菜单标签、设置标签和按钮文字应以你的语言自然呈现——请使用你所在语言环境的 WordPress 和 WooCommerce 现有译法,例如 WP Admin > 设置 > 支付 这样的面包屑应使用你本地化的 WordPress 菜单名称。
  • 保持现有语气。 WCPOS 文档和界面刻意采用务实、直接的表达,并使用正式/中性的语域。如果英文写的是 “Add Coupon”,请使用你的语言中在类似按钮上采用的动词形式,而不是直译成名词。
  • 不要翻译代码、URL 或技术 ID。 优惠码、网关 ID、区域代码、文件路径和短代码应保留英文。如果不确定,就保持不翻译——这比把系统依赖的内容改坏更安全。
  • 如果可以,请在上下文中测试。 将站点或应用切换到你的语言环境,并在实际界面上检查该字符串。某个短语在一个屏幕上合适,在另一个屏幕上可能会换行得很别扭。
  • 从右到左(RTL)语言——阿拉伯语、希伯来语、波斯语、乌尔都语——还需要将收据模板标记为 RTL。WCPOS 提供内置的 RTL 收据模板;请参阅自定义收据查看图库。

向哪里寻求帮助

  • WCPOS Discord——用于翻译讨论和提问(邀请)。
  • GitHub issues——应用和插件的问题请在wcpos/translations提交,文档问题请在wcpos/docs提交。