파일 확장자 |
.po |
API 확장 |
gettext |
수입 |
예 |
수출 |
예 |
복수형 지원 |
예 |
설명 지원 |
예 |
. PO(Portable Object)는 현지화 프로세스를 단순화하도록 설계된 오픈 소스 GNU 라이브러리인 GNU gettext를 사용한 현지화를 위한 표준 파일 형식입니다. GNU gettext를 사용하면 현지화 가능한 문자열을 소스 코드에서 PO 파일로 추출하여 번역할 수 있습니다. A . PO 파일은 일련의 키-값 쌍입니다. 키 msgstr
은 소스 문자열이 배치되는 위치이고 msgstr
값은 변환이 진행되는 위치입니다.
gettext는 소스 코드에서 문자열을 . POT(이식 가능한 개체 템플릿). 정의된 로케일에 따라 gettext는 . POT 파일을 로케일별 . 번역을 위해 CAT 툴에 업로드하기 위한 PO 파일입니다. 번역 후 gettext는 번역된 . PO 파일을 . MO 파일(머신 오브젝트 파일)은 최종적으로 지역화에 사용됩니다.
. PO 파일은 . 를 제외한 POT 파일 POT 파일은 일반적으로 gettext에서 로케일별 . PO 파일. 번역 . POT 파일을 직접 만들고 나중에 의도한 로케일에 따라 이름을 바꾸면 문제가 발생하지 않습니다. Phrase는 다음 번역을 지원합니다.
-
. PO 파일
-
사용할 수 있는지 확인합니다.
활성화되지 않은 경우 키 이름(
msgid
)을 가져오지만 소스(msgstr
)는 비어 있습니다.
-
-
국어. PO 파일
문자열 사용자 인터페이스를 통해 파일을 업로드할 때 를 선택하여 관련 가져오기 옵션을 활성화합니다.
-
msgstr는
기본 소스 변환 및 키 이름입니다. -
msgstr
은 기본 대상 변환입니다. -
msgctxt
는 ||
-
-
기계가 읽을 수 있습니다. MO 파일
코드 샘플
msgid "" msgstr "" "언어: English\n" "MIME 버전 : 1.0\n" "Content-Type: text/plain; 문자 집합=UTF-8\n" "콘텐츠 전송 인코딩: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-제너레이터: 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 ." msgid "nested.deeply.key" msgstr "와우, 이 키는 더 깊숙이 중첩되어 있습니다." msgid "nested.key" msgstr "이 키는 이름공간 안에 중첩되어 있습니다." msgid "null_translation" msgstr "" msgid "pluralized_key" msgid_plural "" msgstr[0] "복수형이 하나만 발견되었습니다." msgstr[1] "와우, %s 개의 복수형이 있군요!" msgid "sample_collection" msgstr "---\n- 첫 번째 항목\n- 두 번째 항목\n- 세 번째 항목\n" msgid "simple_key" msgstr "간단한 키, 간단한 메시지, 매우 간단합니다.2" #, 퍼지 msgid "unverified_key" msgstr "인증이 필요합니다. (일부 형식에서는 이 상태도 내보냅니다.)"
일반적인 gettext 항목 :
# description (선택 사항) msgid "key-name" msgstr "내 번역"
gettext 헤더
gettext 파일의 헤더에는 가져오는 동안 추출되는 복수형의 로케일 이름과 데이터가 포함될 수 있습니다.
msgid "" msgstr "" "언어: en\n" "MIME 버전 : 1.0\n" "Content-Type: text/plain; 문자 집합=UTF-8\n" "콘텐츠 전송 인코딩: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-제너레이터: PhraseApp (phraseapp.com)\n"
설명
gettext 파일의 주석은 가져오는 동안 키 설명으로 추가됩니다.
# 이것은 내 설명입니다. msgid "app_title" msgstr "내 소프트웨어 프로젝트"
문맥
gettext는 msgctxt
표기법을 사용하여 동일한 msgid
에 대해 다른 컨텍스트를 구별합니다. 모든 키 이름은 고유해야 하므로 msgctxt
는 두 개의 파이프 기호로 구분된 키 이름의 첫 번째 부분으로 추가됩니다.
msgctxt "menu" msgstr "열기" msgstr "저는 번역자입니다" msgctxt "forum" msgstr "열기" 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}개 있습니다."
퍼지
fuzzy 키워드는 번역자 확인에 사용됩니다. Fuzzy는 앱 내에서 확인 취소 프로세스를 자동으로 호출합니다.
#, 퍼지 msgid "app_title" msgstr "내 소프트웨어 프로젝트"