[태그:] 한국어화

Weblate에 새 프로젝트 생성

프로젝트 생성

화면 상단의 ‘+’아이콘 -> 새로운 번역 프로젝트 추가를 누르면 프로젝트 생성 창이 뜹니다.

와 같이 작성하면, 프로젝트 정보란에 아래와 같이 표시됩니다.

파일 추가

Weblate는 A 언어->B 언어로 번역하는 데 도움을 주는 도구가 아니라 A-> B, C, D, E 등 불특정 ‘다수’의 언어로 번역하는 데 사용하는 도구이기에

  • A 언어가 담긴 파일
  • B, C, D, E, … 등 언어를 번역할 때 쓰일 최초의 파일

이 필요하고, 파일의 이름이든, 폴더의 이름이든 파일의 경로에서 각 언어을 구분할 수 있어야 합니다.

폴더 별 언어 구분

파일별 구분

그리고, Weblate에서는 번역 파일을 파일 단위로 관리하지 않고 ‘구성요소'(컴포넌트) 단위로 관리합니다. 이는 아래 단계들에서 다시 살펴볼 예정입니다.

본격적으로 번역할 파일을 추가하기 전에 용어집을 먼저 추가하는 것이 좋습니다.

경우에 따라 자동으로 만들어진 용어집을 사용할 수 있지만, 직접 만들어주면 버전관리할 때 큰 도움이 됩니다.

용어집 추가

‘구성 요소’ -> ‘새로운 번역 구성 요소 추가’를 누르고 ‘처음부터 시작’ 탭을 누릅니다.

내용은

  • 구성 요소 이름: 프로젝트 이름 그대로 쓰는 것을 추천
  • URL 슬러그: ‘glossary’를 추천
  • ‘Use as a glossary’: 체크
  • 프로젝트: 그대로
  • 원본 언어: 번역하고자 하는 원문의 언어
  • 파일 유형: TermBase eXchange file 추천 (다른 파일 형식은 Weblate의 단어집 기능을 온전하게 쓰지 못합니다)

로 작성하고 ‘계속’을 누릅니다.

‘구성 요소 업데이트 중’에서 넘어가지 않으면

‘이전의 구성 요소로 돌아가기’를 두번 누르면 방금 만든 용어집을 볼 수 있습니다.

이 이후로는

번역할 파일 개수가 적다면

  • 문서 번역
  • 처음부터 시작

번역할 파일 개수가 많다면

  • 번역 파일 올리기
  • 버전 관리

를 선택해서 파일을 추가하면 됩니다.

구성 요소 생성

프로젝트 페이지 -> 구성 요소 탭 -> 새로운 번역 구성 요소 추가로 구성 요소를 추가할 수 있습니다.

버전 관리를 제외하고 나머지 3가지 방법은 한 언어에 번역할 파일이 10개 있으면 아래의 작업을 번역할 파일별로 10번 반복해야합니다.

처음부터 시작

(작성중 4순위)

문서 번역

(작성중 3순위)

번역 파일 올리기(ZIP)

같은 내용을 담은 원문과 번역문 파일을 압축합니다. 위에서 설명한 대로 번역 파일은 (폴더 이름으로 구분 하던, 파일 이름으로 구분하던) 경로명에 언어 코드가 있어야 합니다.

  • ui.zip
    • de
      • ui.json
    • en
      • ui.json
    • fr
      • ui.json
    • ko
      • ui.json

만약 원문만 있는 경우

  • ui.zip
    • en
      • ui.json

과 같이 압축하시면 됩니다.

그리고 이 파일을 업로드 하면 ‘구성 요소 이름’과 ‘URL 슬러그’가 자동으로 ZIP 파일 이름으로 변경되는데 그대로 두셔도 좋고, 바꾸셔도 좋습니다.

원본 언어는 다른 언어 번역은 다 없에도 남아 있을 마지막 언어를 지정하시면 됩니다. 기본적으로 원문(또는 영어)로 선택하시면 됩니다.

가져올 번역 파일 선택에서 파일 유형 ‘~’, 파일 마스크 ‘~’ 가 자동으로 지정된 경우도 있으면 제대로 되었는지 확인하고 아니라면 ‘수동으로 구성 지정’을 선택합니다.

중요한 옵션

  • 파일 유형: 업로드한 원문 파일의 형식. 확장자를 보고 선택하시면 됩니다.
  • 파일 마스크: 경로명(폴더 이름+파일명)에서 어디가 언어 코드인지를 Weblate에 알려줍니다.
    이것 때문에 번역할 원문 파일이 1개 (한 언어) 뿐이라도 경로명에 언어코드가 들어가야 합니다.
  • 새 번역 템플릿: 번역할 언어를 추가할 때 어떤 파일을 복사해서 사용할 것인지 정하는 곳입니다.

업로드한 번역 파일(ZIP)이

  • ui.zip
    • de
      • ui.json
    • en
      • ui.json
    • fr
      • ui.json
    • ko
      • ui.json

이면

일본어를 추가할 때

  • de
    • ui.json
  • en
    • ui.json
  • fr
    • ui.json
  • ko
    • ui.json
  • ja
    • ui.json

과 같이 만들텐데 ‘ja/ui.json’ 파일을 만들 때 어느 파일을 복사할 것인지 정하는 곳입니다.

보통 영어 원문을 지정(이 경우 en/ui.json)합니다.

파일 형식이 GetText(*.po)인 경우 po는 원문 정의, pot가 번역문 정의이기에 pot 파일을 지정하시면 됩니다.

위 3개를 지정하고, 저장을 누르면 아래와 같이 새로운 ‘구성 요소’가 만들어집니다.

버전 관리

대량의 파일을 추가한다면, 위의 3개 방법으로는 파일 별로 반복해서 작업해야합니다.

버전 관리를 통해 원문을 관리하면 대량의 파일을 한번에 추가하고, 새로운 원문 파일이 생겼을 때 ‘구성 요소’를 자동으로 추가해줍니다.

GitHub 계정 연동

프로젝트 -> 관리 -> API 접근에서

SSH 키를 전체 복사하여

GitHub 계정 아이콘 클릭 -> Settings의

SSH and GPG keys -> New SSH Key를 클릭합니다

Weblate에서 복사한 SSH 키를 여기에 붙여넣고 Title을 채운 뒤 ‘Add SSH Key’를 누릅니다.

이렇게 하면 개인 계정의 비공개 레포지토리나 레포지토리에 번역한 파일 반양 등의 작업을 할 수 있습니다.

용어집을 만들 때 저장소 활용하기

추가 기능은 프로젝트 단위가 아닌 컴포넌트 단위로 적용되고, 저장소에서 자동으로 번역할 파일을 불러오는 ‘구성 요소 발견’ 추가 기능을 사용할 때 추가 기능을 등록할 컴포넌트에서 사용하는 저장소를 기준으로 합니다.

따라서, 용어집을 만들 때 GitHub를 활용하여 만들어야합니다. 기존에 이미 만들어 둔 저장소가 있으면 지우고 계속하세요.

먼저 GitHub에 원문/기존에 번역되어있는 번역문을 올려둡니다. 예제에서는 아래의 구조를 가지는 저장소를 만들어두었습니다. (https://github.com/dmc31a42/Weblate-New-Project-Tutorial)

  • de
    • equipment.json
    • localization.json
    • tooltip.json
  • en
    • equipment.json
    • localization.json
    • tooltip.json
  • fr
    • equipment.json
    • localization.json
    • tooltip.json

저장소에서 Code -> Clone -> SSH 주소를 복사합니다.

용어집 구성 요소를 만들때 위에서 소개한 방법과 거의 비슷하지만 ‘처음부터 시작’ 탭이 아닌 ‘버전 관리에서’ 탭에서 필요한 내용을 채우고 ‘소스 코드 저장소’ 에 방금 복사한 주소를 넣어줍니다.

계속을 누른 뒤 나오는 ‘새로운 번역 구성 요소 추가’ 창에서

  • 파일 유형: TermBase eXchange file 선택
  • 파일 마스크: ‘*.tbx’ 입력

한 뒤 저장을 누릅니다.

‘커뮤니티 현지화 점검표’가 나오면 정상적으로 용어집이 만들어졌습니다. ‘이전의 구성 요소로 돌아가기’를 누르면 방금 만든 용어집 구성 요소 화면이 나옵니다.

프로젝트에서 저장소 불러오기

방금 만든 용어집 구성 요소에서 ‘관리 -> 추가 기능’ 을 누릅니다.

추가 기능 화면에서 ‘구성 요소 발견’의 ‘설치’를 누릅니다.

구성 요소 발견 추가 기능 설정창에서 아래의 것을 채워야합니다.

번역 파일과 일치하는 정규 표현식

저장소에 업로드된 파일 경로를 기준으로 언어와 컴포넌트 명을 추출하는 정규 표현식을 작성해야합니다.

예시로는

전체 파일 경로가

en/locaization.json

이고, 정규 표현식을 아래와 같이 작성한다면

(?P<language>[^/.]*)/(?P<component>[^/]*)\.json

‘?P<language>’에 해당하는 부분은 en

‘?P<component>’에 해당하는 부분은 localization이 됩니다.

파일 유형

원문, 번역문의 파일 유형을 선택합니다. 보통 확장자로 구분할 수 있습니다.

구성 요소 이름을 커스터마이즈하기

‘번역 파일과 일치하는 정규 표현식’에서

(?P<component>[^/]*)

구문으로 경로명에서 추출한 컴포넌트 이름에 무언가 덧댈 것이 있으면 덧대줍니다. 파일명을 그대로 컴포넌트 이름으로 쓴다면

{{ component }}

로 쓰면 됩니다. 예시로는

  • equipment
  • localization
  • tooltip

가 구성 요소의 이름이 됩니다.

새 번역을 위한 기본 파일 정의하기

‘번역 파일 올리기(ZIP)’에서 설명했던 대로 새로운 언어를 추가할 때 어떤 언어의 파일을 복사해서 추가할 언어에서 사용할 파일로 쓸지 지정해야합니다. 보통 영어 파일을 복사해서 사용합니다.

예시에선

en/{{ component }}.json

와 같이 영문 원문 파일을 지정했습니다. 그러면 localization 구성 요소에서 한국어 (‘ko’)를 추가하면 ‘en/localization.json’ 파일을 복사해서 ‘ko/localization.json’ 파일을 만들고 이 파일을 수정하여 번역하게 됩니다.

보통 원문과 번역문의 파일 확장자가 같으나 GetText (*.po/*.pot) 의 경우 .pot 파일을 지정해야합니다. (.po 파일은 원문만 있을 뿐 번역문은 없는 파일이기 때문)

위의 내용들을 작성하고 저장을 누릅니다. 만약 잘못 작성한 경우 저장을 누른 후 예상되는 결과를 미리 보여주니 결과를 보고 입력했던 값들을 수정하여 원하는 결과를 얻을 수 있습니다.

만약 잘못 작성했다면, 일치하는 구성 요소가 없다고 안내해줍니다.

구성 요소/언어 별로 잘 구분된 것을 확인했으면 ‘나는 위의 일치 항목이 올바른지 확인합니다’를 체크하고 다시 저장을 누릅니다.

‘구성 요소 발견’ 추가 기능이 잘 설정되었다면 설치된 추가 기능에 구성요소 발견을 확인할 수 있습니다.

프로젝트 화면의 구성 요소 탭으로 가면 추가 기능 설정창에서 미리 보았던 구성 요소들이 정상적으로 불러와진 것을 확인할 수 있습니다.

광고