PO/Gettext翻訳
ターゲット言語: zh-Hans-CN (Chinese, Simplified Chinese, China)
ターゲット言語のコード。例: ja, ja-JP, fil, zh-Hans-CN。検索するには入力してください。
メタデータを翻訳する:
翻訳者コメントやヘッダーフィールドなどのPOファイルメタデータを、メッセージ文字列と一緒に翻訳するかどうかを指定します。このオプションを無効にすると、翻訳後の出力でメタデータが変更されないことが保証されます。
短縮形を使用:
文法的な短縮形を使用するかどうかを示します。短縮形を使用すると、翻訳があまり形式的でなくなります。
短縮を使用:
翻訳がソーステキストよりも長い場合に短縮形を使用するかどうかを示します。
用語:
POソースコンテンツ:
AIがコンテンツを処理するため、翻訳には時間がかかります(最大5分)。このPO翻訳ページはリアルタイムで翻訳を行い、サーバーにコンテンツを保存しません。大規模なPOファイルの場合は、より信頼性の高い配信のためにI18Nファイル翻訳ページの使用をお勧めします。翻訳が完了するまで、このページから離れないでください。

PO/Gettextファイルをオンラインで翻訳する方法

当社のAIを活用したサービスを使用すると、PO(Portable Object)ファイルを迅速かつ正確に翻訳できます。以下の手順に従って、PO形式の構造を維持しながらgettextローカライズコンテンツを翻訳してください。

  1. POコンテンツを貼り付け: 「POソースコンテンツ」セクションに、POまたはPOTファイルの内容を貼り付けます。当社のサービスは、msgid、msgstr、コメント、複数形、コンテキストエントリを含む標準的なPO形式を認識します。
  2. ターゲット言語を設定: 翻訳先の言語コード(例: フランス語なら「fr-FR」、ドイツ語なら「de-DE」)を入力します。
  3. 翻訳を開始: 「翻訳」ボタンをクリックして開始します。AIがPO構造を処理し、msgidエントリ、コメント、フォーマットプレースホルダーを維持しながらmsgstr値を翻訳します。
  4. コピーまたは保存: 翻訳が完了したら、翻訳されたPOコンテンツをクリップボードにコピーするか、プロジェクトですぐに使用できる.poファイルとして保存します。

POファイルとPOTファイルとは?

PO(Portable Object)ファイルは、GNU gettext国際化システムによって作成された広く使用されているローカライズ形式です。これらは、msgid(元のテキスト)とmsgstr(翻訳されたテキスト)エントリを使用して、翻訳可能な文字列をキーと値のペアとして保存します。

POファイルは、WordPress、PHPアプリケーション、Python(Django、Flask)、Ruby on Rails、C/C++プログラム、GTKやGNOMEで構築されたデスクトップアプリケーションなど、多くのオープンソースプロジェクトやフレームワークの標準ローカライズ形式です。

POファイルの構造

POファイルは、以下の主要要素を持つエントリで構成されています:

# Translation file for MyApp
#: src/components/header.js:12
msgid "Welcome to our application"
msgstr ""

#: src/components/login.js:8
msgid "Sign in to your account"
msgstr ""

#: src/components/dashboard.js:15
msgid "You have %d new messages"
msgid_plural "You have %d new messages"
msgstr[0] ""
msgstr[1] ""
  • msgid — 未翻訳の元の文字列(ソーステキスト)。これは翻訳を検索するためのキーとして機能します。
  • msgstr — ターゲット言語の翻訳済み文字列。msgstr値が空の場合は、未翻訳の文字列であることを示します。
  • コメント (#) — 翻訳者にコンテキストを提供します。#:はソースファイルの参照、#.は抽出されたコメント、#,fuzzyなどのフラグを保持します。
  • 複数形 (msgid_plural, msgstr[N]) — 言語固有の複数形ルールを処理します。言語によって複数形の数は異なります(例: 英語は2つ、ポーランド語は3つ、アラビア語は6つ)。
  • コンテキスト (msgctxt) — 文脈によって翻訳が異なる同一のソース文字列を区別します(例: 動詞としての「Open」と形容詞としての「Open」)。

POファイルとPOTファイルの違い

POT(Portable Object Template)ファイルは、POファイルを作成するためのテンプレートです。これには、msgstr値が空のすべてのソース文字列が含まれています。新しい翻訳を開始するときは、POTファイルをコピーし、ターゲット言語に合わせて名前を変更(例: fr.po)してから、翻訳を入力します。

当社のサービスはPOとPOTの両方のコンテンツを受け付けます。どちらかの形式を貼り付けるだけで、AIがすべてのmsgstrエントリの翻訳を生成します。

POTファイルの例

ヘッダーと翻訳可能な文字列を含む典型的なPOTテンプレートファイルは次のとおりです:

# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2025-01-01 00:00+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \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"

#: src/app.py:42
msgid "Hello, World!"
msgstr ""

当社のPO翻訳サービスを使用する理由

  • AIによるコンテキスト翻訳: 当社の高度なAIはPOファイルの構造を理解し、gettext形式のプレースホルダー(%s%d%(name)sなど)を処理し、ターゲット言語の文化的ニュアンスに合わせて翻訳を調整します。
  • 完全なgettext形式サポート: ヘッダー、コメント、コンテキストエントリ(msgctxt)、複数形、フォーマットフラグなど、PO形式のすべての機能を処理します。翻訳中もPO構造は完全に保持されます。
  • 複数形の処理: ターゲット言語のルールに基づいて、複数形の翻訳を正しく生成します。ターゲット言語の複数形が2つ、3つ、6つであっても、AIが適切なmsgstr[N]エントリを生成します。
  • ロケール固有の調整: 翻訳された文字列内の数値、日付、その他のロケール依存コンテンツを、ターゲット言語の慣習に合わせて自動的に調整します。
  • エラー処理: AI翻訳エラーを検出して修正し、一貫して高品質なPOファイルの出力を保証します。
  • 費用対効果: 毎月30,000文字まで無料で、手頃な価格でご利用いただけます。価格を見る
  • 大規模POファイル向けに最適化: 大規模なPOファイルを管理しやすいチャンクに分割して効率的に処理し、すべてのエントリで用語とコンテキストの一貫性を保ちます。

POファイル翻訳の一般的なユースケース

POファイルは、幅広いプラットフォームやフレームワークの標準ローカライズ形式です:

  • WordPress: WordPressのテーマやプラグインは、国際化にPO/POTファイルを使用します。gettextシステムは、WordPressコンテンツを200以上の言語で翻訳可能にする標準的な方法です。
  • PHPアプリケーション: PHPのgettext拡張機能はPOファイルをネイティブに使用します。Laravel、Symfony、CakePHPなどのフレームワークは、多言語アプリケーション向けにPOベースのローカライズをサポートしています。
  • Python (Django, Flask): Djangoは、標準のローカライズメカニズムとしてgettextとPOファイルを使用します。makemessagesコマンドは翻訳可能な文字列をPOTファイルに抽出し、compilemessagesはPOファイルをバイナリMOファイルにコンパイルします。
  • Ruby on Rails: RailsはデフォルトでYAMLを使用しますが、多くのRubyプロジェクトでは、特に既存のgettextベースの翻訳ワークフローと統合する場合に、POファイルとgettext gemが使用されます。
  • C/C++プログラム: GNU gettextはもともとCプログラム用に設計されました。多くのシステムユーティリティ、コマンドラインツール、デスクトップアプリケーションが、ユーザーインターフェースの翻訳にPOファイルを使用しています。
  • JavaScript/TypeScript (Lingui): Linguiは、React、Next.jsなどのJavaScriptフレームワーク向けの最新のi18nライブラリで、PO/POTファイルを主要な翻訳形式として使用します。@lingui/cliツールは翻訳可能な文字列をPOカタログに抽出し、Linguiのランタイムはビルド時にコンパイルされた翻訳を読み込んでパフォーマンスを最適化します。
  • デスクトップアプリケーション (GTK/GNOME/KDE): Linuxデスクトップ環境やGTK/QtアプリケーションはPOファイルに依存しています。GNOMEやKDEプロジェクトでは、数十の言語にわたる数千のPOファイルを管理しています。

PO翻訳と他のローカライズ形式の比較

POファイルは、オープンソースコミュニティで30年以上の歴史を持つ、最も確立されたローカライズ形式の1つです。JSONやYAMLベースの形式とは異なり、POファイルには複数形、翻訳者のコメント、ソース参照、コンテキストの曖昧さ回避のサポートが組み込まれています。

最新のフレームワークではJSON(i18next、React Intl)やYAML(Rails)がよく使われますが、WordPressプラグイン、PHPアプリケーション、Python Djangoプロジェクト、Linuxデスクトップソフトウェアでは依然としてPOが推奨される形式です。当社のサービスは両方の世界をつなぎます。ここでPOコンテンツを翻訳するか、当社の「I18Nファイル翻訳」ページを使用してあらゆる形式をバッチ処理してください。

当社のAI翻訳は、ヘッダー(Project-Id-Version、Content-Type、Plural-Forms)、翻訳者のコメント、ソースファイルの参照、フォーマットフラグを含む完全なPOファイル構造を保持し、翻訳されたPOファイルがmsgfmtなどのgettextツールですぐに使用できるようにします。