# 参与翻译

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

## WCPOS 翻译现在如何运作[​](#how-wcpos-translations-work-now "直接链接到 WCPOS 翻译现在如何运作")

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

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

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

我们不再使用 translate.wordpress.org

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

## 贡献位置[​](#where-to-contribute "直接链接到 贡献位置")

根据你想改进的内容，只分两处：

#### 应用与插件

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

#### 这些文档

你现在正在阅读的文档站点。翻译后的 MDX 文件位于 **[wcpos/docs](https://github.com/wcpos/docs)** 仓库下 `i18n/<locale>/`。*熟悉 Markdown 会很有帮助。*

## 改进应用和插件翻译[​](#improving-app-and-plugin-translations "直接链接到 改进应用和插件翻译")

所有应用和插件的翻译都位于 [`wcpos/translations`](https://github.com/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-pro` | Pro 插件的 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 上使用铅笔图标，它会为你创建拉取请求。审阅者会检查更改并将其合并。

如果你的语言还没有包含在内，请参阅[添加新语言](#adding-a-new-language)。

## 改进这些文档[​](#improving-these-docs "直接链接到 改进这些文档")

文档站点使用 Docusaurus 的标准 i18n 配置。英文源文件位于 `versioned_docs/`，AI 翻译副本位于[`wcpos/docs`](https://github.com/wcpos/docs)下 `i18n/<locale>/docusaurus-plugin-content-docs/`。每个英文页面在每个启用的语言版本中都有对应页面。

**如需建议修复：**

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

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

## 添加新语言[​](#adding-a-new-language "直接链接到 添加新语言")

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

## 语言环境代码[​](#locale-codes "直接链接到 语言环境代码")

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

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

关于 locale 代码格式的说明：应用和插件 (`wcpos/translations`) 对文件夹和文件名使用**下划线**格式——`de_DE`、`pt_BR`、`zh_CN`——并同时包含基础语言（`de`、`fr`、`es`）和地区变体（`de_AT`、`fr_CA`、`es_MX`）。文档和网页语言标签使用**连字符**格式——`pt-BR`、`hi-IN`、`zh-CN`。请使用与你正在编辑的仓库一致的格式。

## 译者提示[​](#translator-tips "直接链接到 译者提示")

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

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

## 向哪里寻求帮助[​](#where-to-ask-for-help "直接链接到 向哪里寻求帮助")

* **WCPOS Discord**——用于翻译讨论和提问（[邀请](https://wcpos.com/discord)）。
* **GitHub issues**——应用和插件的问题请在[`wcpos/translations`](https://github.com/wcpos/translations/issues)提交，文档问题请在[`wcpos/docs`](https://github.com/wcpos/docs/issues)提交。
