ライセンス
RPG Maker MVプロジェクト(販売する商業ゲームを含む)で使用できます。ゲームのクレジット欄には、原作者のEropheniceへのクレジット記載が必須です。プラグイン自体(スタンドアロン製品としての.jsファイル)の再販売は厳禁です。プラグインのコードを改変し、それを自分の作品として再配布(リブランディング、クレジットの削除など)することも厳禁です。
単一ファイルのスタンドアロンプラグインで、外部依存関係はありません。Google翻訳を介してゲーム内のテキストを自動的に翻訳し、かつゲーム内に表示します。表示用の追加プラグインは不要です。
翻訳対象
ダイアログ、スクロールテキスト、選択肢、データベース(アイテム、スキル、武器、防具、クラス、ステート、敵、アクター)、マップ/イベント名、メニュー(アイテム/スキル/装備/ステータス/セーブ/オプション)、System.json。
最大10言語:フランス語、英語、日本語、韓国語、ロシア語、簡体字中国語、イタリア語、スペイン語、ポルトガル語、ドイツ語。
(注:このプラグインは合計10言語をサポートしています:フランス語、英語、ドイツ語、イタリア語、スペイン語、ポルトガル語、簡体字中国語、日本語、韓国語、およびその他の左から右へ読む言語です。アラビア語は右から左へ読むシステムのためサポートされていません。デフォルトのマネージャーに ‘AR’ 言語コードが含まれている場合は、必ず削除してください。)
インストール
1. js/plugins/ に追加し、RPG Makerでプラグインを有効にします。
2. パラメータを設定します(詳細は以下参照)。
3. プレイテスト → 「オプション」メニューに「言語」オプションが表示されます。
警告 — プラグインの順序:メッセージや選択肢の表示を修正する他のプラグインよりも後に「TraductionAuto」を配置してください。さもないと、変更が無視される可能性があります。
パラメータ
ソース言語:ゲームの元の言語(例:fr)。
ターゲット言語:生成する言語。カンマ区切り(例:fr,en,ja)。
保護言語:自動的に再翻訳されない言語(すでに手動で翻訳済み)ですが、ゲーム内では常に選択可能です。
プレイテストのみで有効:有効にすると、エクスポートされたゲーム(販売版)では生成処理が実行されません(すでに生成された翻訳の表示は常に有効のままです)。
オプション名:ゲーム内のオプションメニューに表示されるテキスト。
自動ワードラップ / 手動改行を保持:メッセージ内のテキストの扱い方。
初回生成:所要時間
平均的なサイズのゲーム:約20分。大規模なゲーム(テキスト量が多い、または複数の言語):2〜4時間。これは非常に最初の完全な生成(またはキャッシュを削除した後)のみ適用されます。その後は、新しいまたは変更されたテキストのみが再翻訳されるため、高速です。
待っている間、F8(またはバージョンによってはF12)を押してコンソールを開き、進行状況をリアルタイムで確認できます(どのデータタイプと言語が現在翻訳されているか)。見続ける必要はありません。コーヒーを飲みに行ったり、他のことをしたりしても構いません。プラグインはバックグラウンドで自動的に動作します。
エラー429(Googleのレート制限に到達)
一度に送信されるリクエストが多すぎると、Googleが一時的にリクエストをブロックします(大規模プロジェクト、複数の言語)。プラグインは自動的に再試行し、問題が持続する場合はログに記録し、次回起動時に再開します。ブロックが繰り返される場合:ゲームを閉じ、1〜2時間待ってから再起動してください。生成は中断された場所から再開され、データは失われません。
翻訳の品質
Google翻訳:ストーリーを追うには十分ですが、完璧ではありません。特定のテキストを手動で修正するには、「手動修正」セクションを参照してください。
グロッサリー(固有名詞の保護)
特定の名称(キャラクター、場所、家族など)を、どの言語でも決して翻訳されないようにするには:
1. 数秒間プレイテストを実行します:これにより、locales サブフォルダと、例を含む glossaire.txt ファイルが作成されます。プレイテストを閉じます。
2. glossaire.txt を開きます:例を削除し、保護したい名称を直接記載(1行に1つ)、保存します。
3. glossaire.txt(先ほど名称を記載したファイル)を除く、locales サブフォルダ内のすべてのファイルを削除します。
4. プレイテストを再起動します:プラグインがグロッサリーを尊重して最初からすべてを再翻訳します(上記の「初回生成:所要時間」を参照)。
仕組み(コードで確認済み):glossaire.txt の各名称は、ソーステキスト内の正規表現でマッチングされ、テキストがGoogle翻訳に送信される前にトークンに置き換えられます。翻訳結果が戻ってくると、プラグインはトークンの代わりに元の名称を復元します。Google翻訳は実際の名称を認識しないため、翻訳や変更を行うことができず、すべてのターゲット言語で同一の名称が出力されます。
手動修正
data/locales/edition/(言語).json を開き、修正したい行の “traduction” フィールドを編集し、保存してプレイテストを再起動します。最優先事項として、将来の自動翻訳によって上書きされることはありません。
仕組み(コードで確認済み):edition フォルダには、ターゲット言語ごとに1つのJSONファイル(例:en.json、ja.json)が含まれています。各ファイルには、その dataType/key ごとに翻訳可能な行がリストされており、「source」フィールド(元のテキスト)と「traduction」フィールド(現在の翻訳テキスト)が含まれています。このファイルは完全に手動で読み書き可能です。次回起動時、プラグインはすべての edition/(言語).json ファイルを再読み込みし、「traduction」フィールドに入力した値がキャッシュと異なる場合、その行のキャッシュをあなたのバージョンで上書きします。したがって、これはGoogle翻訳とは独立した、言語ごとに1つずつ実行される本格的な手動翻訳モードです。任意のターゲット言語の edition/(言語).json で任意の行を自分で書き換えることができ、プラグインはそれ以降、機械翻訳ではなくあなたのテキストを使用します。後で自動的に上書きされるリスクはありません。
コマンド
TraduireMaint_now:プレイテストを再起動せずに生成を再実行します。
SetLanguage (コード):表示言語を変更します。
スクリプト:$gameSystem.setLanguage(‘en’)、$gameSystem.getLanguage()。
翻訳完了後
ゲーム内のオプションメニューに移動し、「言語」行(またはパラメータで設定した名前)にカーソルを合わせ、プラグインマネージャの「ターゲット言語」で設定された言語の中から、左/右矢印キーでスクロールして希望の言語を選択します。変更は即時反映されます。
MVとの互換性
追加設定なしで両方のエンジンで動作します。ステータス画面でキャラクターのクラス/プロフィールが正しく翻訳されたか確認してください(エンジンによって再構成されています)。
コンソール(F8/F12):無害な「404」エラー
Actors_i18n.json、CommonEvents_i18n.json、Animations_i18n.json、Tilesets_i18n.json が見つからないという赤色のコンソールエラーが表示される場合があります:プラグインは起動ごとにこれらのファイルを検索しますが、まだ存在しない場合はリクエストは静かに失敗し、ゲームには影響しません。
Actors_i18n.json および CommonEvents_i18n.json:プロジェクト内に翻訳可能なテキスト(アクターのニックネーム/プロフィール、共通イベント内のダイアログなど)が含まれていると、すぐに生成されます。空またはテスト用のプロジェクトではこれらが生成されないため、エラーが発生します。これは正常な動作であり、該当コンテンツが存在すればエラーは消えます。
Animations_i18n.json および Tilesets_i18n.json:このバージョンのプラグインでは、プロジェクトの規模に関わらず生成されません(これらの2カテゴリは自動生成に対応していません)。この2つについてはエラーが永久に表示され続けますが、ゲーム内に影響はありません。