エンジンガイドFAQPatreonDiscordダウンロード
ログイン
RuneTranslate · 日本語や30以上の言語のゲームをまるごと翻訳
エンジンガイド比較画像内テキストセーブエディターチートモードFAQダウンロード変更履歴TrustpilotPatreonDiscordYouTubeプライバシー利用規約お問い合わせ
すべてのエンジン

対応エンジン · Gettext (.po / .mo)

完全対応 — 再構築してプレイ確認済み

PO ファイル翻訳ツール — ゲームの gettext .po / .mo カタログを翻訳

gettext は、日本以外のインディーゲームの多くがローカライズに使う仕組みです。Python や pygame のゲーム、Solarus、SDL や GTK のゲーム、そして Poedit・Weblate・Crowdin を通したものすべてが該当します。テキストは locale フォルダーに .po ソースとコンパイル済み .mo カタログとして置かれています。RuneTranslate はプロジェクト作成時にそれらを検出し、すべての文字列を翻訳し、動作する .mo を書き戻します。実行中のゲームが読むのは、まさにそのファイルです。

このエンジンの用語集のヒント

gettext カタログの大半は UI です。メニュー項目、ボタンのラベル、ツールチップ、複数の画面で繰り返される状態表示など。名詞・アイテム名・主要な動詞を一度用語集に入れておけば、どこに出ても同じ訳語になります。会話文以上に重要です。ある画面で「保存」、別の画面で「セーブ」となっているメニューは、不具合のように見えてしまうからです。 用語集の基本 →

RuneTranslate を Windows 版でダウンロード

Gettext (.po / .mo) を翻訳する方法

  1. ステップ 1

    ゲームフォルダーを開く

    locale/ や lang/、i18n/ フォルダーを含むゲームのディレクトリを RuneTranslate に指定します。検出は拡張子ではなく実際のバイト列で判断するため、中身が 3D シーンの .mo は無視されます。単独の .po ファイルが並んだフォルダーでも構いません。

  2. ステップ 2

    検出結果を確認する

    新規プロジェクトのダイアログが、読み取れたカタログ数、コンパイル済み .mo とソース .po の内訳、ゲームが既に同梱している言語、そして文字列の総数を、プロジェクト作成前に表示します。

  3. ステップ 3

    言語と翻訳サービスを選ぶ

    目標言語と翻訳サービスを選びます。無料の Google または DeepL、あるいは自分の DeepL・OpenAI・Claude・DeepSeek のキーを使えます。書式プレースホルダー(%s、%d、%(player)s、{count})は翻訳前にマスクし、翻訳後に復元するため、サービス側が削除したり書き換えたりすることはありません。

  4. ステップ 4

    エディターで確認する

    文字列はカタログファイルごとにまとめられます。各エントリーは gettext のコンテキスト(msgctxt)を保持します。これは開発者がその文字列のためだけに書いた区別情報なので、同じ語が二度現れる理由が分かり、それぞれを正しく訳せます。

  5. ステップ 5

    プレイできるビルドを書き出す

    書き出しでは、正しい locale/<選んだ言語>/LC_MESSAGES/ カタログと、ゲームが元々読み込んでいたカタログの更新版の両方を含む、ゲームの完全なコピーを作成します。ゲームがどのように言語を選んでいても翻訳が表示されます。.po とコンパイル済み .mo の両方が書き出されます。

対応内容

  • コンパイル済み .mo カタログ — 読み書き対応、両方のバイト順に対応。実在する 43 個のカタログ・93,717 エントリーで検証済み
  • .po ソースファイル(複数形、msgctxt コンテキスト、フラグ、翻訳者コメントを含む)
  • 標準的な locale/<言語>/LC_MESSAGES/<ドメイン>.mo 構成に加え、lang/tr.po のようなフラットな構成
  • 複数形の数を目標言語に合わせて調整(英語 2 形 → ロシア語 3 形 → 日本語 1 形)し、ヘッダーも書き換え
  • printf と波括弧のプレースホルダー(%s、%d、%(player)s、{count}、{0})を翻訳中はマスクし、後で復元
  • 書き出しでは新しい言語のカタログと、ゲームが既に読み込んでいるカタログの上書きの両方を生成

制限事項

  • 書き出したゲームが起動し、正しく表示されることを確認してから使ってください
  • 翻訳されるのは、すでにカタログにあるテキストだけです — 開発者が gettext を通していない文字列は .po/.mo に存在せず、そこから見つけることはできません
  • msgid を原文として扱います(これが gettext の約束事です)。msgid が英語で本来の原語が msgstr にあるカタログは、英語から翻訳されます
  • 直接対応しているエンジンで作られたゲーム(Godot、Unity、Ren’Py など)はそのエンジンで処理されます。残りのテキストにも手が届くようにするためです
  • 未翻訳のエントリーは空にはならず、ゲームが元々備えていた訳文をそのまま保ちます

関連記事

Gettext (.po / .mo) 翻訳の完全ガイド
ガイドを読む →

関連記事

RuneTranslate vs Translator++
ガイドを読む →

その他の対応エンジン

RPG MakerRPG Maker XP/VX/AceRen'PyKirikiriWolf RPGTyranoBuilderElectron VNUnityBakinSRPG StudioNScripterGodotArtemisYU-RISAliceSoftUnrealLiveMaker