サポートするファイル形式(Strings)

.PO - 取得テキストファイル (Strings)

本コンテンツはPhrase Language AIの機械翻訳により、英語から翻訳されています。

ファイル拡張子

.po

API拡張

gettext

インポート

はい

エクスポート

はい

複数形のサポート

はい

説明のサポート

はい

.PO(Portable Object)は、ローカライゼーションプロセスを簡素化するために設計されたオープンソースのGNUライブラリであるGNU gettextを使用した ローカライゼーション の標準ファイル形式です。GNU gettextを使用すると、ローカライズ可能なStringsが原文コードからPOファイルに抽出されて翻訳されます。.POファイルは、一連のキーと値のペアです。キー msgid は原文文字列の位置、値 msgstr は translation の位置です。

gettextは原文コードからa .POT(ポータブルテンプレート)にStrings列を抽出します。定義されたロケールに基づいて、gettextは.POTファイルをロケール固有の.POファイルに変換し、 CATツール にアップロードして翻訳します。翻訳後、gettextは翻訳された.POファイルを最終的にローカライゼーションに使用される.MOファイル(機械オブジェクトファイル)に変換します。

.POファイルは.POTファイルと同じですが、.POTファイルはロケール固有の.POファイルを生成するためにgettextで一般的に使用されます。.POTファイルを直接翻訳し、後で意図したロケールに従って名前を変更しても、問題は発生しません。Phraseは以下の翻訳に対応しています。

  • .POファイル

    • Msgid as default translation オプションが有効になっていることを確認します。

      有効でない場合、キー名(msgid)はインポートされますが、原文(msgstr)は空欄です。

  • バイリンガル.POファイル

    Stringsユーザー インターフェイス経由でファイルをアップロードする際にバイリンガル.POファイルをインポートを選択し、インポートオプションを有効にします。

    • msgidは デフォルトの原文翻訳 および キー名です

    • msgstrは デフォルトの訳文翻訳です

    • msgctxtmsgidに||で追加されています

  • .POTファイル

  • 機械読み取り可能な.MOファイル

コードサンプル

msgid ""
msgstr ""
"Language:English\n"
"MIME-Version:1.0\n"
"コンテンツ-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] "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エントリー:

# description(オプション)
msgid "key-name"
msgstr "My Translation"

gettext ヘッダー

gettext ファイルのヘッダーには、ロケール名とインポート時に抽出される複数形のデータを含めることができます。

msgid ""
msgstr ""
"Language: en\n"
"MIME-Version:1.0\n"
"コンテンツ-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は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「マイソフトウェアプロジェクト」
この記事は役に立ちましたか?

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.