|
ファイル拡張子 |
.po |
|
API拡張 |
gettext |
|
インポート |
はい |
|
エクスポート |
はい |
|
複数形のサポート |
はい |
|
説明のサポート |
はい |
|
フォーマットオプション これらは、ファイルがアップロードおよび/またはダウンロードされる際に指定できるオプションです。アップロード/ダウンロード方法(API、CLI、Repo sync など)に応じて、クエリパラメータ |
|
.PO (Portable Object) は、ローカライズプロセスを簡素化するために設計されたオープンソースの GNU ライブラリである GNU gettext を使用したローカライズの標準ファイル形式です。GNU gettext を使用すると、ローカライズ可能な Strings がソースコードから翻訳用の PO ファイルに抽出されます。.PO ファイルは、キーと値のペアの集まりです。キー msgid には原文の文字列が配置され、値 msgstr には訳文が配置されます。
gettext はソースコードから文字列を .POT (portable object テンプレート) に抽出します。定義されたロケールに基づいて、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 "" "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-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 "このキーはさらに深くネストされています。" msgid "nested.key" msgstr "このキーは名前空間の中にネストされています。" msgid "null_translation" msgstr "" msgid "pluralized_key" msgid_plural "" msgstr[0] "エントリーが1つだけ見つかりました。" msgstr[1] "わあ、%s個の複数形があります!" 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 "私の翻訳",translation_3:
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-Generator: PhraseApp (phraseapp.com)\n"
キー説明
gettextファイルのコメントは、インポート中にキー説明として追加されます:
# This is my description msgid "app_title" msgstr \"My Software Project\"
コンテキスト
gettextは、同じmsgidに対して異なるコンテキストを区別するためにmsgctxt表記を使用します。すべてのキー名は一意である必要があるため、msgctxtがキー名の最初の部分として追加され、2つのパイプ記号||で区切られます:
msgctxt "menu" msgid "Open" msgstr \"I'am a translation\" msgctxt "forum" msgid "Open" msgstr \"I'am some other translation\"
新しいキーにmsgctxtを追加するには、キー名の先頭にそれを付加します:
my_context||my_key_name
結果のgettext出力:
... msgctxt "my_context" msgid "my_key_name" ...
複数形
gettextは翻訳の複数形をサポートしています:
msgid "new_messages"
msgid_plural ""
msgstr[0] \"You have a new message\"
msgstr[1] \"You have %{count} new messages\"
あいまい一致
あいまい一致キーワードは、翻訳の検証に使用されます。あいまい一致は、Phrase内で自動的に未検証プロセスを呼び出します。
#, あいまい一致 msgid "app_title" msgstr \"My Software Project\"