|
ファイル拡張子 |
.po |
|
API拡張 |
gettext |
|
インポート |
はい |
|
エクスポート |
はい |
|
複数形のサポート |
はい |
|
説明のサポート |
はい |
|
フォーマットオプション ファイルがアップロードまたはダウンロードされるときに指定できるオプションです。アップロード/ダウンロード方法(API、CLI、リポジトリ同期など)に応じて、クエリパラメータ |
|
.PO(ポータブルオブジェクト)は、GNU gettext を使用したローカリゼーションの標準ファイル形式です。これは、ローカリゼーションプロセスを簡素化するために設計されたオープンソースのGNUライブラリです。GNU gettextを使用すると、ローカライズ可能な文字列がソースコードからPOファイルに抽出され、翻訳のために使用されます。.POファイルは、一連のキーと値のペアです。キー msgid はソース文字列が配置される場所であり、値 msgstr は翻訳が入る場所です。
gettextは、ソースコードから文字列を抽出して.POT(ポータブルオブジェクトテンプレート)にします。定義されたロケールに基づいて、gettextは.POTファイルをロケール固有の.POファイルに変換し、翻訳のためにCATツールにアップロードします。翻訳後、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 "" "言語: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 "My Translation"
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ファイルのコメントは、インポート中にキーの説明として追加されます:
# これは私の説明です msgid "app_title" msgstr "私のソフトウェアプロジェクト"
コンテキスト
gettextは、同じmsgidの異なるコンテキストを区別するためにmsgctxt表記を使用します。すべてのキー名は一意でなければならないため、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は翻訳のための複数形をサポートしています:
msgid "new_messages"
msgid_plural ""
msgstr[0] "あなたには新しいメッセージがあります"
msgstr[1] "あなたには %{count} 件の新しいメッセージがあります"
あいまい一致
fuzzyキーワードは翻訳の検証に使用されます。あいまい一致はPhrase内で自動的に未検証プロセスを呼び出します。
#, あいまい一致 msgid "app_title" msgstr "私のソフトウェアプロジェクト"