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에서
새로운 파이프라인을 생성하세요 (개발자 역할이 필요합니다).

파이프라인 작업은 PoLinter 클래스로 번역을 검증합니다.
만약 린터가 오류를 발견하면, 그것이 작업 로그에 나타납니다.
실패한 파이프라인의 예는 이 오류 메시지를 참고하세요.

검증 오류가 발생하면, Crowdin에서 문제가 있는 문자열을 수동으로 승인 취소하고
오류를 수정하는 방법에 대한 댓글을 남겨야 합니다:

  1. gitlab-crowdin-bot 계정으로 Crowdin에 로그인합니다.
  2. 문제가 있는 문자열을 찾습니다.
  3. 특정 대상 언어에 대한 번역을 승인 취소하기 위해 현재 번역이 잘못됨을 선택합니다.
  4. 작업 로그의 오류 메시지를 댓글로 포함합니다.

무효한 번역은 제외되며, 병합 요청이 업데이트됩니다.
이 프로세스를 자동화하는 것이 이슈 23256에서 제안되었습니다.

번역이 각진 괄호(< 또는 >)로 인해 검증에 실패한 경우,
Crowdin에서 승인 취소해야 합니다. 우리의 문자열은 대신
변수를 사용해야 합니다.

잠시 동안 Crowdin 측에서 통합을 일시 중지하는 것이 유용할 수 있습니다.
이렇게 하면 번역이 계속 나오지 않습니다.
크라우딘 통합 설정 페이지에서 동기화 일시 중지를 선택하여 수행할 수 있습니다.

번역 병합

모든 번역이 적절하다고 판단되고 파이프라인이 통과하면,
기본 브랜치에 번역을 병합할 수 있습니다.
번역을 병합할 때는 소스 브랜치 제거 체크박스를 선택하는 것을 잊지 마세요.
이렇게 하면 Crowdin이 새로운 번역을 병합한 후
기본 브랜치에서 master-i18n 브랜치를 다시 생성합니다.

우리는 이 전체 프로세스를 자동화하는 것에 대해 논의하고 있습니다.

병합 요청 재생성

Crowdin은 기존의 병합 요청이 닫히거나 병합되면
새로운 병합 요청을 생성합니다. 하지만 매번 master-i18n 브랜치를
재생성하지는 않습니다. Crowdin이 브랜치를 재생성하도록 강제하려면,
모든 열린 병합 요청을 닫고
master-i18n 브랜치를 삭제해야 합니다.

이것은 병합 요청에 기본 브랜치에서 수정된 실패가 포함된 경우 필요할 수 있습니다.

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에서 하드 코딩된 번역 수준을 업데이트합니다.