diff --git a/doc/development/i18n/merging_translations.md b/doc/development/i18n/merging_translations.md index 575d0de076c219d29161f23eaf442cf40e2d2201..fa0fa70d73a0b55878e1ba75d1929fae2ecbf603 100644 --- a/doc/development/i18n/merging_translations.md +++ b/doc/development/i18n/merging_translations.md @@ -23,13 +23,20 @@ translations. Static analysis validates things Crowdin doesn't do. Create a new pipeline at [`https://gitlab.com/gitlab-org/gitlab/pipelines/new`](https://gitlab.com/gitlab-org/gitlab/pipelines/new) (requires the Developer role) for the `master-i18n` branch. -If there are validation errors, the easiest solution is to disapprove -the offending string in Crowdin, leaving a comment with what is -required to fix the errors. There's an -[issue](https://gitlab.com/gitlab-org/gitlab/-/issues/23256) -that suggests automating this process. Disapproving excludes the -invalid translation. The merge request is then updated within a few -minutes. +The pipeline job validates translations with the [`PoLinter` class](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/i18n/po_linter.rb). +If the linter finds any errors, they appear in the job log. +For an example of a failed pipeline, see [these error messages](https://gitlab.com/gitlab-org/gitlab/-/jobs/6771832489#L873). + +If validation errors occur, you must manually disapprove the offending string +in Crowdin and leave a comment about how to fix the errors: + +1. Sign in to Crowdin with the `gitlab-crowdin-bot` account. +1. Find the offending string. +1. Select **Current translation is wrong** to disapprove the translation for the specific target language. +1. Include the error message from the job log as a comment. + +The invalid translation is then excluded, and the merge request is updated. +Automating this process is proposed in [issue 23256](https://gitlab.com/gitlab-org/gitlab/-/issues/23256). If the translation fails validation due to angle brackets (`<` or `>`), it should be disapproved in Crowdin. Our strings must use [variables](externalization.md#html)