PO to MO コンバーター
GNU gettext の .po 翻訳ソースファイルをバイナリ .mo ファイルにコンパイルします。PHP、Python、WordPress、または任意の gettext ベースのアプリケーションで使用できます。ブラウザ内で完全に実行されます。アップロードはありません。
入力
UTF-8 テキストとして読み込まれ、上のボックスに直接挿入されます。
出力
ガイド
.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/msgstrはmsgfmtと同じように結合されます。 - 複数形 —
msgid_pluralとインデックス付きmsgstr[0]、msgstr[1]、... は gettext の NUL 結合バイナリ複数形エンコーディングにコンパイルされるため、ngettext()/_n()ルックアップは正しく機能します。 - メッセージコンテキスト —
msgctxtはpgettext()/_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 ファイルフォーマッター を参照してください。
このツールを使う他の方法
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_HEREIOTools 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クレジットから |
|---|