# Merging translations from CrowdIn

> 原文：[https://docs.gitlab.com/ee/development/i18n/merging_translations.html](https://docs.gitlab.com/ee/development/i18n/merging_translations.html)

*   [Validation](#validation)
*   [Merging translations](#merging-translations)
*   [Recreate the merge request](#recreate-the-merge-request)
*   [Recreate the GitLab integration in CrowdIn](#recreate-the-gitlab-integration-in-crowdin)

# Merging translations from CrowdIn[](#merging-translations-from-crowdin "Permalink")

CrowdIn 自动将`gitlab.pot`文件与 CrowdIn 服务同步，将新添加的外部化字符串呈现给翻译者社区.

[GitLab CrowdIn Bot](https://gitlab.com/gitlab-crowdin-bot)还会创建合并请求，以接受新批准的翻译提交并将其合并到`locale/<language>/gitlab.po`文件中. 检查[`gitlab-crowdin-bot`创建](https://gitlab.com/gitlab-org/gitlab/-/merge_requests?scope=all&utf8=✓&state=opened&author_username=gitlab-crowdin-bot)的[合并请求，](https://gitlab.com/gitlab-org/gitlab/-/merge_requests?scope=all&utf8=✓&state=opened&author_username=gitlab-crowdin-bot)以查看新的和合并的合并请求.

## Validation[](#validation "Permalink")

默认情况下，CrowdIn 使用提交消息中的`[skip ci]`提交翻译. 这样做是为了避免运行一堆管道. 在合并翻译之前，请确保触发管道以验证翻译，我们进行了静态分析，以验证 CrowdIn 不执行的操作. 为`master-i18n`分支在`https://gitlab.com/gitlab-org/gitlab/pipelines/new` （需要开发人员访问权限）处创建一个新管道.

如果存在验证错误，最简单的解决方案是拒绝 CrowdIn 中有问题的字符串，并在注释中注明解决该问题所需的内容. 有一个[问题](https://gitlab.com/gitlab-org/gitlab/-/issues/23256)提示自动完成这一过程. 拒登将排除无效翻译，合并请求将在几分钟内更新.

将 CrowdIn 端的集成暂停一会可能很方便，因此翻译不会持续进行. 这可以通过在[CrowdIn 集成设置页面](https://translate.gitlab.com/project/gitlab-ee/settings#integration)上单击" `Pause sync`来完成.

解决所有故障后，需要再次检查翻译，如[机密问题](../../user/project/issues/confidential_issues.html) `https://gitlab.com/gitlab-org/gitlab/-/issues/19485` .

## Merging translations[](#merging-translations "Permalink")

当发现所有翻译都很好并且流水线通过时，这些翻译可以合并到 master 分支中. 合并翻译时，请确保选中" **删除源分支"**复选框，以便 CrowdIn 在合并新翻译后从 master 重新创建`master-i18n` .

我们正在讨论使[整个过程自动化](https://gitlab.com/gitlab-org/gitlab/-/issues/19896) .

## Recreate the merge request[](#recreate-the-merge-request "Permalink")

一旦关闭或合并旧的 CrowdIn，它就会创建一个新的合并请求. 但是它不会每次都重新创建`master-i18n`分支. 要强制 CrowdIn 重新创建分支，请关闭所有[打开的合并请求](https://gitlab.com/gitlab-org/gitlab/-/merge_requests?scope=all&utf8=✓&state=opened&author_username=gitlab-crowdin-bot)并删除[`master-18n`](https://gitlab.com/gitlab-org/gitlab/-/branches/all?utf8=✓&search=master-i18n) .

当合并请求包含已在主服务器上修复的故障时，可能需要这样做.

## Recreate the GitLab integration in CrowdIn[](#recreate-the-gitlab-integration-in-crowdin "Permalink")

***注意：**这些说明仅适用于 GitLab 团队成员.

If for some reason the GitLab integration in CrowdIn does not exist, it can be recreated by the following steps:

1.  以`gitlab-crowdin-bot`身份登录到 GitLab（如果您是 GitLab 团队成员，请在 GitLab 共享的[1Password 帐户中](https://about.gitlab.com/handbook/security/#1password-for-teams)找到凭据
2.  使用 GitLab 集成登录 Crowdin
3.  导航到设置>集成> GitLab>设置集成
4.  Select `gitlab-org/gitlab` repository
5.  在" `Select Branches for Translation` ，选择" `master`
6.  确保`Service Branch Name`为`master-i18n`