メインコンテンツにスキップ

PO to MO コンバーター

GNU gettext の .po 翻訳ソースファイルをバイナリ .mo ファイルにコンパイルします。PHP、Python、WordPress、または任意の gettext ベースのアプリケーションで使用できます。ブラウザ内で完全に実行されます。アップロードはありません。

入力

Drop a file or browse
One file · text

UTF-8 テキストとして読み込まれ、上のボックスに直接挿入されます。

出力

Your compiled .mo file will appear here to download.
役に立ちましたか?

ガイド

.po ファイルは GNU gettext 翻訳の人間が編集可能な部分です。プレーンテキストで、1つの msgid/msgstr ペアが1つの文字列に対応しています。しかし、実行時に実際に翻訳をロードするものは何もこれを直接読みません。PHP、Python、glibc、WordPress はすべて、通常はコマンドラインツール msgfmt で生成されるコンパイルされたバイナリ形式 .mo (Machine Object) を期待しています。このコンバーターはブラウザで同じコンパイル手順を実行するため、gettext をインストールしたり PHP/Python ツールチェーンを使用したりしなくても、.po から .mo に進むことができます。

使い方

.po ファイルの内容をテキストボックスに貼り付けるか、ファイルを直接アップロードしてください。どちらにしても、ファイルはブラウザを離れることはありません。MO にコンパイル をクリックして、生成された messages.mo をダウンロードしてください。

サポートされている機能

  • 複数行の文字列 — 複数の引用符で分割された msgid/msgstrmsgfmt と同じように結合されます。
  • 複数形msgid_plural とインデックス付き msgstr[0]msgstr[1]、... は gettext の NUL 結合バイナリ複数形エンコーディングにコンパイルされるため、ngettext()/_n() ルックアップは正しく機能します。
  • メッセージコンテキストmsgctxtpgettext()/_x() が期待するとおりにコンパイルされたキーに折り込まれます。
  • ファジーおよび未翻訳エントリはスキップされます。これは msgfmt のデフォルト動作と一致しています (--use-fuzzy なし)。#, fuzzy でフラグされた文字列は、翻訳者がまだ確認していない機械的な推測です。これを実際の翻訳として送信するのは、元のテキストにフォールバックするより悪いため、コンパイルされたカタログから除外されます。
  • 廃止されたエントリ (#~ プレフィックス、ソースから文字列が消えた時点で msgmerge が残すもの) は実際のコンパイルと同じように削除されます。

プライバシー

すべてはクライアント側で実行されます。.po テキストの解析とバイナリ .mo ファイルのアセンブリの両方がブラウザで実行されます。サーバーにアップロードされるものは何もありません。

翻訳された文字列が .mo ファイルに表示されないのはなぜですか?

.po ファイルで #, fuzzy でフラグされていないか確認してください。ファジー文字列は意図的にコンパイルされたカタログから除外されます (上記を参照)。翻訳が正しいことを確認した後、fuzzy フラグを削除してから再度コンパイルしてください。

コンパイルされたファイルは WordPress で機能しますか?

はい。WordPress (および他の PHP gettext/Gettext_PO コンシューマー) は標準的な .mo ファイルを読み取ります。コンパイルされたファイルをテーマまたはプラグインの languages/ フォルダーに、期待されるファイル名 <textdomain>-<locale>.mo で置いてください。

コンパイルされた .mo から編集可能な .po に戻りたい

これは別のデコンパイルステップです。MO to PO ツールは計画中です。それまでの間、ほとんどの gettext 対応エディター (Poedit、gettext 自体の msgunfmt) は .mo ファイルを直接開くことができます。

他の構造化された翻訳/設定形式を編集するには、Java Properties ファイルフォーマッター を参照してください。

gettextpo filemo filemsgfmttranslation filei18nl10nlocalizationwordpress translationcompile po

このツールを使う他の方法

REST API

curl -X POST https://api.iotools.cloud/v1/tool/po-to-mo \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "po": "#\nmsgid \"\"\nmsgstr \"\"\n\"Content-Type: text/plain; …"
  }'

ご自身のアカウントのキーに差し替えてください。ツールのフィールドがそのままリクエストボディになります——ラッパーはありません。

AIエージェントに依頼する

Use the IOTools `po-to-mo` tool (PO to MO Converter) on this input:

YOUR_INPUT_HERE

IOTools MCPサーバーに接続された任意のエージェントにこれを貼り付け、入力内容を追加してください。

埋め込みウィジェット

<iframe
  src="https://iotools.cloud/embed/po-to-mo/"
  width="100%" height="520" frameborder="0" scrolling="no" loading="lazy"
  title="PO to MO コンバーター — iotools.cloud"
  sandbox="allow-scripts allow-forms allow-same-origin allow-downloads allow-popups allow-popups-to-escape-sandbox"
  allow="clipboard-write"
  style="width:100%;border:1px solid #e5e7eb;border-radius:12px;overflow:hidden"></iframe>
<script src="https://iotools.cloud/embed.js" async></script>

ご自身のページに貼り付けるだけ——無料、キー不要、リンクを掲載するだけです。

1回あたりの費用5クレジットから

次の方法でも利用可能

ツールが気に入りましたか?広告をなくしましょう。

1回のお支払いでアカウントから広告が完全になくなります。サブスクリプションも追跡もありません。