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에서 문제가 있는 문자열을 수동으로 승인 취소하고
오류를 수정하는 방법에 대한 댓글을 남겨야 합니다:
-
gitlab-crowdin-bot
계정으로 Crowdin에 로그인합니다. - 문제가 있는 문자열을 찾습니다.
- 특정 대상 언어에 대한 번역을 승인 취소하기 위해 현재 번역이 잘못됨을 선택합니다.
- 작업 로그의 오류 메시지를 댓글로 포함합니다.
무효한 번역은 제외되며, 병합 요청이 업데이트됩니다.
이 프로세스를 자동화하는 것이 이슈 23256에서 제안되었습니다.
번역이 각진 괄호(<
또는 >
)로 인해 검증에 실패한 경우,
Crowdin에서 승인 취소해야 합니다. 우리의 문자열은 대신
변수를 사용해야 합니다.
잠시 동안 Crowdin 측에서 통합을 일시 중지하는 것이 유용할 수 있습니다.
이렇게 하면 번역이 계속 나오지 않습니다.
크라우딘 통합 설정 페이지에서 동기화 일시 중지를 선택하여 수행할 수 있습니다.
번역 병합
모든 번역이 적절하다고 판단되고 파이프라인이 통과하면,
기본 브랜치에 번역을 병합할 수 있습니다.
번역을 병합할 때는 소스 브랜치 제거 체크박스를 선택하는 것을 잊지 마세요.
이렇게 하면 Crowdin이 새로운 번역을 병합한 후
기본 브랜치에서 master-i18n
브랜치를 다시 생성합니다.
우리는 이 전체 프로세스를 자동화하는 것에 대해 논의하고 있습니다.
병합 요청 재생성
Crowdin은 기존의 병합 요청이 닫히거나 병합되면
새로운 병합 요청을 생성합니다. 하지만 매번 master-i18n
브랜치를
재생성하지는 않습니다. Crowdin이 브랜치를 재생성하도록 강제하려면,
모든 열린 병합 요청을 닫고
master-i18n
브랜치를 삭제해야 합니다.
이것은 병합 요청에 기본 브랜치에서 수정된 실패가 포함된 경우 필요할 수 있습니다.
Crowdin에서 GitLab 통합 재생성하기
참고:
이 지침은 GitLab 팀 구성원에게만 해당됩니다.
어떤 이유로 Crowdin의 GitLab 통합이 존재하지 않는 경우, 다음 단계를 통해 재생성할 수 있습니다:
-
gitlab-crowdin-bot
으로 GitLab에 로그인합니다. (GitLab 팀 구성원인 경우, GitLab 공유 1Password 계정에서 자격 증명을 찾으세요.) -
GitLab 통합으로 Crowdin에 로그인합니다.
-
Settings > Integrations > GitLab > Set Up Integration으로 이동합니다.
-
gitlab-org/gitlab
리포지토리를 선택합니다. -
Select Branches for Translation에서
master
를 선택합니다. -
Service Branch Name이
master-i18n
인지 확인합니다.
번역 수준 수동 업데이트
Crowdin에서 번역 수준을 가져와 언어 선택 드롭다운 목록에 이 정보를 표시하는 자동화된 방법은 없습니다. 따라서 번역 수준은 i18n.rb
파일의 TRANSLATION_LEVELS
상수에 하드 코딩되어 있으며 정기적으로 업데이트해야 합니다.
번역 수준을 업데이트하려면: