|
파일 확장명 |
.po |
|
API 확장 |
gettext |
|
가져오기 |
예 |
|
내보내기 |
예 |
|
복수형 지원 |
예 |
|
설명 지원 |
예 |
|
형식 옵션 파일이 업로드되거나 다운로드될 때 지정할 수 있는 옵션입니다. 업로드/다운로드 방법(API, CLI, Repo sync 등)에 따라, |
|
.PO(Portable Object)는 GNU gettext와 함께 지역화의 표준 파일 형식으로, 지역화 프로세스를 단순화하기 위해 설계된 오픈 소스 GNU 라이브러리입니다. GNU gettext를 사용하면 지역화 가능한 문자열이 소스 코드에서 PO 파일로 추출되어 번역됩니다. .PO 파일은 일련의 키-값 쌍입니다. 키 msgid는 소스 문자열이 위치하는 곳이며, 값 msgstr은 번역이 들어가는 곳입니다.
gettext는 소스 코드에서 문자열을 추출하여 .POT(Portable Object Template)로 변환합니다. 정의된 로캘에 따라 gettext는 .POT 파일을 업로드를 위한 CAT 도구에 번역할 로캘별 .PO 파일로 변환합니다. 번역 후, gettext는 번역된 .PO 파일을 지역화에 사용되는 .MO 파일(기계 객체 파일)로 변환합니다.
.PO 파일은 .POT 파일과 동일하지만, .POT 파일은 일반적으로 gettext가 로캘별 .PO 파일을 생성하는 데 사용됩니다. .POT 파일을 직접 번역하고 나중에 의도된 로캘에 따라 이름을 바꾸는 것은 문제를 발생시키지 않습니다. Phrase는 다음의 번역을 지원합니다:
-
.PO 파일
-
이중 언어 .PO 파일
-
기계 판독 가능한 .MO 파일
msgctxt는 키 접두사로 사용되며, msgid와 결합되어 ||로 구분됩니다.
형식 옵션
|
식별자 |
msgid_as_default |
|
유형 |
부울 |
|
업로드 |
true |
|
다운로드 |
false |
|
기본값 |
false |
|
설명 |
번역 콘텐츠는 |
|
식별자 |
is_bilingual_file |
|
유형 |
부울 |
|
업로드 |
true |
|
다운로드 |
false |
|
기본값 |
false |
|
설명 |
소스 및 대상 번역은 업로드된 파일에서 가져옵니다: 소스 콘텐츠는 |
코드 샘플
msgid "" msgstr "" "언어:" English\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding:" 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: PhraseApp (phraseapp.com)\n" msgid "boolean_key" msgstr "--- true\n" msgid "empty_string_translation" msgstr "" # 이 키에 대한 놀라운 설명입니다! msgid "key_with_description" msgstr "확인해 보세요!" 이 키에는 설명이 있습니다! (최소 일부 형식으로)" msgid "key_with_line-break" msgstr "This translations contains\na line-break." msgid "nested.deeply.key" msgstr "Wow, 이 키 더 깊게 중첩되어 있습니다." msgid "nested.key" msgstr "이 키는 네임스페이스 내에 중첩되어 있습니다." msgid "null_translation" msgstr "" msgid "pluralized_key" msgid_plural "" msgstr[0] "오직 하나의 복수화가 발견되었습니다." msgstr[1] "Wow, 당신은 %s 복수화를 가지고 있습니다!" msgid "sample_collection" msgstr "---\n- 첫 번째 항목\n- 두 번째 항목\n- 세 번째 항목\n" msgid "simple_key" msgstr "간단한 키, 간단한 메시지, 정말 간단합니다.2" #, 퍼지 msgid "unverified_key" msgstr "확인이 필요합니다, 저를 확인해 주세요!" (일부 형식에서는 이 상태도 내보냅니다.)"
전형적인 gettext 항목:
# 설명 (선택 사항) msgid "key-name" msgstr "내 번역"
gettext Header
gettext 파일의 헤더에는 로캘 이름과 가져오는 동안 추출되는 복수형 데이터가 포함될 수 있습니다:
msgid "" msgstr "" "언어: en\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding:" 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: PhraseApp (phraseapp.com)\n"
설명
gettext 파일의 주석은 가져오는 동안 키 설명으로 추가됩니다:
# 이것은 내 설명입니다 msgid "app_title" msgstr "내 소프트웨어 프로젝트"
Context
gettext는 동일한 msgid에 대한 서로 다른 컨텍스트를 구분하기 위해 msgctxt 표기법을 사용합니다. 모든 키 이름은 고유해야 하므로 msgctxt가 키 이름의 첫 번째 부분으로 추가되며, 두 개의 파이프 기호 ||로 구분됩니다:
msgctxt "menu" msgid "Open" msgstr "나는 번역입니다" msgctxt "forum" msgid "Open" msgstr "나는 다른 번역입니다"
새 키에 msgctxt를 추가하려면 키 이름 앞에 붙입니다:
my_context||my_key_name
결과적인 gettext 아웃풋:
... msgctxt "my_context" msgid "my_key_name" ...
복수 형태
gettext는 번역을 위한 복수형을 지원합니다:
msgid "new_messages"
msgid_plural ""
msgstr[0] "새 메시지가 있습니다"
msgstr[1] "새 메시지가 %{count}개 있습니다"
퍼지
퍼지 키워드는 번역 검증에 사용됩니다. 퍼지는 자동으로 Phrase 내에서 검증되지 않은 프로세스를 호출합니다.
#, 퍼지 msgid "app_title" msgstr "내 소프트웨어 프로젝트"