Help us learn about your current experience with the documentation. Take the survey.

从 Crowdin 合并翻译

Crowdin 会自动将 gitlab.pot 文件与 Crowdin 服务同步,将新添加的外部化字符串呈现给翻译社区。

GitLab Crowdin Bot 也会创建合并请求,将新批准的翻译提交合并到 locale/<language>/gitlab.po 文件中。查看 gitlab-crowdin-bot 创建的合并请求 以了解新的和已合并的合并请求。

验证

默认情况下,Crowdin 在提交消息中包含 [skip ci] 来提交翻译。这样可以避免运行过多的流水线。在合并翻译之前,请确保触发一个流水线来验证翻译。静态分析验证的是 Crowdin 不做的事情。为 master-i18n 分支在 https://gitlab.com/gitlab-org/gitlab/pipelines/new 创建一个新的流水线(需要 Developer 角色)。

流水线作业使用 PoLinter 验证翻译。如果 linter 发现任何错误,它们会出现在作业日志中。有关失败流水线的示例,请参阅 这些错误消息

如果出现验证错误,您必须在 Crowdin 中手动拒绝有问题的字符串,并留下关于如何修复错误的评论:

  1. 使用 gitlab-crowdin-bot 账号登录 Crowdin。
  2. 找到有问题的字符串。
  3. 选择 Current translation is wrong 来拒绝针对特定目标语言的翻译。
  4. 将作业日志中的错误消息作为评论包含在内。

然后无效的翻译将被排除,合并请求也会更新。在 issue 23256 中提出了自动化此过程的建议。

如果翻译由于尖括号(<>)而无法通过验证,应该在 Crowdin 中拒绝。我们的字符串必须使用 variables 来处理 HTML。

暂停 Crowdin 端的集成一段时间可能很有用,这样翻译就不会不断涌来。您可以通过在 Crowdin 集成设置页面 上选择 Pause sync 来实现这一点。

合并翻译

在确定所有翻译都合适且流水线通过后,您可以将翻译合并到默认分支。合并翻译时,务必选择 Remove source branch 复选框。这会导致 Crowdin 在合并新翻译后从默认分支重新创建 master-i18n 分支。

我们正在讨论 自动化整个流程

重新创建合并请求

Crowdin 在旧合并请求被关闭或合并后会立即创建一个新的合并请求。但它不会每次都重新创建 master-i18n 分支。要强制 Crowdin 重新创建分支,请关闭任何 打开的合并请求 并删除 master-18n 分支。

当合并请求包含已在默认分支上修复的失败时,可能需要这样做。

在 Crowdin 中重新创建 GitLab 集成

这些说明仅适用于 GitLab 团队成员。

如果由于某种原因 Crowdin 中的 GitLab 集成不存在,您可以按照以下步骤重新创建:

  1. gitlab-crowdin-bot 身份登录 GitLab。(如果您是 GitLab 团队成员,请在 GitLab 共享的 1Password 账户 中查找凭据。)
  2. 使用 GitLab 集成登录 Crowdin。
  3. 转到 Settings > Integrations > GitLab > Set Up Integration
  4. 选择 gitlab-org/gitlab 仓库。
  5. Select Branches for Translation 中,选择 master
  6. 确保 Service Branch Namemaster-i18n

手动更新翻译级别

没有自动化的方法可以从 Crowdin 拉取翻译级别,以便在语言选择下拉列表中显示此信息。因此,翻译级别被硬编码在 i18n.rb 中的 TRANSLATION_LEVELS 常量中,并且必须定期更新。

要更新翻译级别:

  1. Crowdin 获取翻译级别(批准单词的百分比)。

  2. i18n.rb 中更新硬编码的翻译级别。