|
파일 확장명 |
.PO |
|
API 확장 |
gettext |
|
가져오기 |
예 |
|
내보내기 |
예 |
|
복수형 지원 |
예 |
|
설명 지원 |
예 |
|
형식 옵션 파일을 업로드 및/또는 다운로드할 때 지정할 수 있는 옵션입니다. 업로드/다운로드 방식(API, CLI, Repo 동기화 등)에 따라 |
|
.PO(Portable Object)는 현지화 프로세스를 간소화하기 위해 설계된 오픈 소스 GNU 라이브러리인 GNU gettext를 사용한 현지화의 표준 파일 형식입니다. GNU gettext를 사용하면 현지화 가능한 Strings가 소스 코드에서 추출되어 번역을 위한 PO 파일로 저장됩니다. .PO 파일은 일련의 키-값 쌍입니다. 키 msgid는 소스 문자열이 배치되는 곳이며, 값 msgstr은 번역이 들어가는 곳입니다.
gettext는 소스 코드에서 Strings를 추출하여 .POT(portable object 템플릿)로 만듭니다. 정의된 로캘을 기반으로 gettext는 .POT 파일을 번역을 위해 CAT 도구로 업로드할 로캘별 .PO 파일로 변환합니다. 번역 후 gettext는 번역된 .PO 파일을 현지화에 최종적으로 사용되는 .MO 파일(기계 객체 파일)로 변환합니다.
.PO 파일은 .POT 파일과 동일하지만, .POT 파일은 일반적으로 gettext가 로캘별 .PO 파일을 생성하는 데 사용됩니다. .POT 파일을 직접 번역하고 나중에 의도한 로캘에 따라 이름을 바꾸어도 문제가 발생하지 않습니다. Phrase는 다음의 번역을 지원합니다:
-
.PO 파일
-
이중 언어 .PO 파일
-
기계 판독 가능한 .MO 파일
msgctxt는 키 접두사로 사용되며, msgid와 결합되고 ||로 구분됩니다.
형식 옵션
|
식별자 |
is_bilingual_file |
|
유형 |
부울 |
|
업로드 |
true |
|
다운로드 |
false |
|
기본값 |
false |
|
설명 |
소스 및 대상 번역 모두 업로드된 파일에서 가져옵니다. 소스 콘텐츠는 |
코드 샘플
msgid "" msgstr "" "Language: Korean\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 "이 번역에는\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 "확인이 필요합니다, 저를 확인해 주세요!"}}-end-of-output-copy-paste-block- (일부 형식에서는 이 상태도 내보냅니다.)"
일반적인 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 "나의 소프트웨어 프로젝트"
문맥
gettext는 동일한 msgid에 대해 서로 다른 문맥을 구분하기 위해 msgctxt 표기법을 사용합니다. 모든 키 이름은 고유해야 하므로 msgctxt이(가) 키 이름의 첫 번째 부분으로 추가되며, 두 개의 파이프 기호 ||(으)로 구분됩니다:
msgctxt "menu" msgid \"열기\" msgstr "I'am a translation" msgctxt "forum" msgid \"열기\" 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 "나의 소프트웨어 프로젝트"