마이그레이션을 수행하기 전에 꼭 해야할 일이 있습니다. 바로 성공의 기준점을 정하는 것입니다.
저희가 수행할 마이그레이션은 플랫폼을 전하는 것입니다. 그러므로 각 언어별 Zanata의 번역된 양과 Weblate의 번역된 양이 같아야 합니다.
지금부터 Zanata, Weblate가 가지고 있는 번역 지표를 분석해보고 어떤 것을 기준점으로 “마이그레이션 성공”을 정의할지 설명해보겠습니다.
마이그레이션 성공 지표 설계하기
크게 프로젝트와 컴포넌트 단위로 성공 지표를 설계할 수 있습니다.
- 프로젝트 단위 - 마이그레이션이 성공적인가?
- 컴포넌트 단위 - 마이그레이션이 성공적인가?
- 번역된 파일이 잘 이전되었는가?
- 리뷰 승인된 파일이 잘 이전되었는가?
Weblate 또한 리뷰 기능이 존재합니다.
Zanata 통계 지표
Document에서는 크게 Word, Messages를 기준으로 통계 지표를 제공해줍니다.
기본적으로 Zanata는 UI 상에서 Word의 통계 지표를 보여줍니다.
Project
프로젝트 기준으로 UI 상에서는 words만 보여줍니다.
그러나 아래의 api를 사용하면 메세지 단위의 개수와 approved 된 문자열 개수를 확인할 수 있습니다.
curl -X GET \
-H "X-Auth-User: Username" \
-H "X-Auth-Token: Token" \
-H "Accept: application/json" \
https://translate.openstack.org/rest/stats/proj/horizon/iter/master | jq
{
"id": "master",
"refs": [
{
"href": "/projects/p/horizon/iterations/i/master",
"rel": "statSource",
"type": "PROJ_ITER"
}
],
"stats": [
{
"total": 8645,
"untranslated": 4692,
"needReview": 33,
"translated": 3920,
"approved": 617,
"rejected": 0,
"fuzzy": 33,
"unit": "MESSAGE",
"locale": "fr",
"lastTranslated": "09/02/24 15:03 by cylopez",
"translatedOnly": 3303
},
}
Document
Document의 경우 UI 를 통해 Words, Messages의 통계 지표를 확인할 수 있습니다.

Weblate 통계 지표
Weblate 에서는 크게 Strings, Words, Characters를 기준으로 통계 지표를 제공해줍니다.
- Strings: 번역의 단위로, 하나의 String 단위로 작업을 수행하게 됩니다.
- Words: 문자열 안에 포함된 단어의 수를 의미합니다.
- Characters: 문자열 내 글자 수를 의미하며, 번역의 분량이나 길이를 파악하기 위해 사용됩니다.
프로젝트
프로젝트 Overview를 통해 Strings, Words, Characters 지표를 확인할 수 있습니다.
컴포넌트
기본적으로 컴포넌트 목록에서는 Strings의 통계 지표를 보여줍니다.
반면 Component에 접속해서 Translation Status를 확인하시면, 비율이 다른것을 확인할 수 있습니다. 이는 translated 이외에도 unfinished, failing check 등 다양한 지표가 복합적으로 적용된 것으로 보입니다. [1]
기준점 선정
Weblate의 용어를 기준으로 설명합니다.
동일한 프로젝트를 비교한 결과 Word의 개수는 특별한 규칙 없이 상이했지만Weblate Strings == Zanata Messages동일했습니다.
개념적으로만 접근해도 Strings(Messages)는 POT의 메세지 개수이므로 서로 달라서는 안됩니다. 그러므로 프로젝트, 컴포넌트 모두 메세지의 개수로 정확성을 판단할 계획입니다. 즉, Zanata의 Message를 기준으로 Weblate의 strings 값을 비교할 것입니다.
- 컴포넌트 단위 - 마이그레이션이 성공적인가?
- 전체 번역 파일이 잘 이전되었는가? ← 전체 Weblate Strings, Zanata Messages 값 비교
- 번역된 파일이 잘 이전되었는가? ← 번역된 Weblate Strings, Zanata Messages 값 비교
- 리뷰 승인된 파일이 잘 이전되었는가? ← ??
- 프로젝트 단위 - 마이그레이션이 성공적인가? ← 프로젝트 Weblate Strings, Zanata Messages 값 비교
컴포넌트를 생성할때 번역 파일만 업로드하므로, 번역 여부만 파악할 수 있지 승인 여부는 알 수 없습니다.
리뷰 승인 마이그레이션 방안
리뷰 승인을 마이그레이션 하기 위해서는 메세지를 일리리 확인하는 작업이 필요합니다.
구체적으로는 Zanata에서 메세지 승인 여부를 전부 파싱한 후에 Weblate에 메세지를 검색해서 approved 상태로 변환해야 합니다.
GET /projects/p/{projectSlug}/iterations/i/{iterationSlug}/resource/translations/{locale}
GET /api/translations/(string: project)/(string: component)/(string: language)/units/
PATCH /api/units/(int: id)/






