ファイル拡張子 |
.po |
API拡張 |
gettext |
インポート |
はい |
エクスポート |
はい |
複数形のサポート |
はい |
説明のサポート |
はい |
フォーマットオプション |
|
.PO(Portable Object)は、GNU gettextを使用した ローカライゼーション の標準ファイル形式です。これは、ローカライゼーションプロセスを簡素化するために設計されたオープンソースの GNU ライブラリです。GNU gettext を使用すると、Localizable Strings が原文コードから翻訳用の PO ファイルに抽出されます。.POファイルは、一連のキーと値のペアです。キーの msgid
は原文の文字列の配置先、値の msgstr
は翻訳の行き先です。
gettextは原文コードからStrings列をa .POT(ポータブルテンプレート)に抽出します。定義されたロケールに基づいて、gettextは.POTファイルをロケール固有の.POファイルに変換し、翻訳用に CATツール にアップロードします。翻訳後、gettextは翻訳された.POファイルを、最終的にローカライゼーションに使用される.MOファイル(マシンオブジェクトファイル)に変換します。
.POファイルは.POTファイルと同じですが、.POTファイルは一般的にgettextでロケール固有の.POファイルの生成に使用されます。.POT ファイルを直接翻訳し、後で意図したロケールに従って名前を変更しても、問題は発生しません。phrase support of the translation:
-
.POファイル
-
バイリンガル.POファイル
-
機械可読.MOファイル
msgctxt
は、msgid
と組み合わせて ||
で区切られたキー プレフィクスとして使用されます。
ファイル形式オプション
識別子 |
msgid_as_default |
タイプ |
ブール |
アップロード |
true |
ダウンロード |
false |
デフォルト |
false |
概要 |
翻訳コンテンツを |
識別子 |
is_bilingual_file |
タイプ |
ブール |
アップロード |
true |
ダウンロード |
false |
デフォルト |
false |
概要 |
原文と訳文の翻訳はアップロードされたファイルからインポートされます。原文コンテンツは |
コードサンプル
msgid "" msgstr "" "Language: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-ジェネレーター: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 「このキーはさらに深くネストされています。」 msgid "nested.key" msgstr 「このキーは名前空間内でネストされています。」 msgid "null_translation" msgstr "" msgid "pluralized_key" msgid_plural "" msgstr[0] "Only one pluralization found." msgstr[1] "Wow, you have %s pluralizations!" msgid "sample_collection" msgstr "---\n- first item\n- second item\n- third item\n" msgid "simple_key" msgstr "シンプルなキー、シンプルなメッセージ、とてもシンプルです。"2 #、あいまい一致 msgid "unverified_key" msgstr「検証が必要です。検証してください!(一部のフォーマットでは、このステータスにも対応しています)
一般的なgettextエントリー:
#概要(オプション) msgid "key-name" msgstr 「自分の翻訳」
gettext ヘッダー
gettext ファイルのヘッダーには、インポート時に抽出される複数形のロケール名とデータが含まれる場合があります。
msgid "" msgstr "" "Language: 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-ジェネレーター:PhraseApp (phraseapp.com)\n"
説明
gettext ファイルのコメントは、インポート時にキー説明として追加されます。
# これが私の説明です msgid "app_title" msgstr「マイソフトウェアプロジェクト」
Context
gettext では、msgctxt
表記を使用して、同じ msgid
に対する異なるコンテキストを区別します。すべてのキー名は一意である必要があるため、msgctxt
がキー名の最初の部分として 2 つのパイプ記号 ||
で区切られて追加されます。
msgctxt "menu" msgid "Open" msgstr "I'am a translation" msgctxt "forum" msgid "Open" msgstr 「私は他の翻訳です」
新しいキーに msgctxt
を追加するには、キー名の前に追加します。
my_context||my_key_name
gettext 出力結果:
... msgctxt "my_context" msgid "my_key_name" ...
複数形
gettext は、1 つの翻訳に複数形をサポートします。
msgid "new_messages" msgid_plural "" msgstr[0] 「新しいメッセージがあります」 msgstr[1]「%{count}件の新規メッセージがあります」
あいまい一致
翻訳者検証には あいまい一致 キーワードが使用されます。あいまい一致 は、アプリ内の検証解除プロセスを自動的に呼び出します。
#、あいまい一致 msgid "app_title" msgstr「マイソフトウェアプロジェクト」