지원되는 파일 유형(Strings)

.PO - gettext files (Strings)

컨텐츠는 영어 텍스트를 Phrase Language AI를 이용해 기계 번역한 것입니다.

파일 확장명 

.po

API 확장 

gettext

가져오기 

내보내기 

복수형 지원 

설명 지원 

형식 옵션

파일이 업로드되거나 다운로드될 때 지정할 수 있는 옵션입니다. 업로드/다운로드 방법(API, CLI, Repo sync 등)에 따라, 업로드, 다운로드 또는 phrase.yml 구성 파일의 쿼리 매개변수로 지정할 수 있습니다.

  • msgid_as_default

  • is_bilingual_file

.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 파일

  • .POT 파일 

  • 기계 판독 가능한 .MO 파일

msgctxt는 키 접두사로 사용되며, msgid와 결합되어 ||로 구분됩니다. 

형식 옵션

식별자

msgid_as_default

유형

부울

업로드

true

다운로드

false

기본값

false

설명

번역 콘텐츠는 msgid 값에서 가져오고 msgstr에서 가져오지 않습니다.

식별자

is_bilingual_file

유형

부울

업로드

true

다운로드

false

기본값

false

설명

소스 및 대상 번역은 업로드된 파일에서 가져옵니다: 소스 콘텐츠는 msgid 값에서 가져오고, 대상은 msgstr의 값에서 가져옵니다.

코드 샘플

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 "내 소프트웨어 프로젝트"
도움이 되었습니까?

Sorry about that! In what way was it not helpful?

The article didn’t address my problem.
I couldn’t understand the article.
The feature doesn’t do what I need.
Other reason.

Note that feedback is provided anonymously so we aren't able to reply to questions.
If you'd like to ask a question, submit a request to our Support team.
Thank you for your feedback.