当サイトの運営者です。ゲーム制作とプラグイン開発が好きで、コミュニティに貢献したいと考えています。
RPGツクールMZでゲームを制作中です。
※プログラマ・エンジニアではありません。
多言語文字列変換 - ConvertI18NTexts.js
シェア用テキスト:
▼多言語文字列変換(nz_prism様作) - ConvertI18NTexts.js
https://plugin-mz.fungamemake.com/archives/6874
ゲーム中に使用されるあらゆる文字列を専用制御文字に変換し、元の文字列をJSONファイルとして出力します。
ふりがな:たげんごもじれつへんかん
機能概要: ゲーム中に使用されるあらゆる文字列を専用制御文字に変換し、元の文字列をJSONファイルとして出力します。
利用規約(ライセンス): MITライセンス
作者:nz_prism
作者サイト:https://note.com/nz_prism
解説ページ:https://github.com/nz-prism/RPG-Maker-MZ/tree/master/I1…
ダウンロードページ:https://raw.githubusercontent.com/nz-prism/RPG-Maker-MZ…
ファイル名:ConvertI18NTexts.js
プラグインのヘルプ:
/*:ja
* @target MZ
* @plugindesc ゲーム中に使用されるあらゆる文字列を専用制御文字に変換し、元の文字列をJSONファイルとして出力します。
* @author nz_prism
* @url https://github.com/nz-prism/RPG-Maker-MZ/blob/master/I18NTexts/js/plugins/ConvertI18NTexts.js
*
* @help ConvertI18NTexts.js
* ver. 1.1.0
*
* [バージョン履歴]
* 2023/06/04 1.0.0 リリース
* 2023/06/04 1.0.1 ロケール名を修正 (ja-JP=>ja_JP, en-US=>en_US, ru-RU=>ru_RU)
* 2023/06/05 1.1.0 二重変換防止機能を追加
*
* ゲーム中に使用されるあらゆる文字列を専用制御文字に変換し、元の文字列をJSON
* ファイルとして出力します。本プラグインはデータベースの文字列を直接変更しま
* す。ご使用前に必ずバックアップをお取りください。本プラグインを使用したこと
* で生じたあらゆる不具合や損失について、作者は一切責任を負いません。
*
* 本プラグインを有効にした状態でテストプレイを起動すると文字列自動変換が始ま
* り、完了するとそのままテストプレイが終了します。その後ツクールで「プロジェ
* クトデータが外部で変更されました」というダイアログが表示されたら「はい」を
* 選択してください(「いいえ」を選択した場合はツクールを再起動してください)。
* これによって文字列の変更がツクールに反映されます。実際に文字列を変換すると
* き以外は本プラグインを無効にしてください。なお有効にしたままデプロイメント
* してしまったとしても、本プラグインはテストプレイ時にしか機能しませんので問
* 題ありません。
* 変換が完了するとデータベースやイベントのあらゆる変換対象文字列が、対応する
* 文字列に変換されます。また初回起動時、「I18NTexts.json」ファイルがdataフォ
* ルダ内に生成されます。二回目以降の起動の場合、同ファイルが更新されます。こ
* のファイルには変換前、データベースに入力されていた全ての文字列が出力されま
* す。別プラグインである「DisplayI18NTexts.js」を使用することで、オプション
* で選択されている言語に応じた文字列を表示することが可能です。
*
* 起動前に必ず以下のプラグインパラメータの設定を確認してください。
* ・「ソース言語」には、現在データベースに実際に入力されているテキストの言語
* (例:日本語)を指定します。これは変換完了後、JSONファイルに書き込まれる
* 文字列の言語の指定になります。
* ・「ターゲット言語」には、置換先言語を指定します。初回起動時は必ず「制御文
* 字」を選択してください。データベース等の文字列は変換完了後、ここで選択し
* た言語に対応する文字列に置き換わります。「制御文字」の場合は専用の数字が
* 割り振られた制御文字「I18N[n]」に置換されます。それ以外の言語の場合、
* I18NTexts.jsonにターゲット言語が含まれていれば対応する文字列に置き換わ
* ります。含まれていない場合、新しくその言語のデータ枠が用意されます。
* ・「翻訳候補言語リスト」には、現在使用されている言語も含めて翻訳を検討して
* いる全ての言語を指定してください。初回起動時、ここで設定した全ての言語が
* I18NTexts.jsonのキーとして設定されます。ソース言語以外の言語の値には
* 「temp[n]」という仮文字列が入力されます。
* ・ゲームタイトルも変換対象にしたい場合「ゲームタイトルの変換」をオンにして
* ください。ただしタイトルバーに表示されるタイトルは翻訳されないので、この
* パラメータをオンにすることは推奨されません。
* ・「未使用文字列の変換」をオンにすると、敵グループの名前やアニメーションの
* 名前、イベントの名前といったツクール標準ではゲーム中表示されることのない
* 文字列(メモ・注釈以外)も変換対象になります。
* ・「メモの変換」をオンにすると、データベースの各種「メモ」およびイベントの
* 「注釈」も変換対象になります。
* ・「プラグインパラメータ」にプラグイン名およびそのプラグインのプラグインパ
* ラメータ名を指定することで、プラグインパラメータに入力されている文字列も
* 変換対象になります。ただし変換できるのは通常の文字列(string)のみであり、
* 文字列のリスト(string[])や構造体(struct)の中の文字列は変換できません
* のでご注意ください。なおDisplayI18NTexts.jsの前提プラグインであるOptionEx
* の各種オプション項目名のプラグインパラメータ名は、あらかじめ指定されていま
* す。
*
* 変換が完了すると、本プラグインは自動的に無効化されます。また、「ソース言語」
* と「ターゲット言語」が入れ替わります。誤って本プラグインを二重に実行すると
* データベースやJSONファイルがおかしくなってしまうため、これを防ぐために用意
* された機能です。
*
* 本プラグインを一度実行した後、次回以降の起動では「変換対象文字列」以下のパ
* ラメータを変更しないでください。また、データベース項目やイベント(イベント
* 中のイベントコマンドも含む)を追加することは問題ありませんが、削除したり順
* 番を変更したりしないでください。IDがずれて正常に変換できなくなってしまいま
* す。なお空の文字列は変換対象になりません。元は空文字列だったデータに文字列
* を入力する、あるいはその反対の編集を行うとやはりIDがずれてしまいます。そう
* した変更を加える必要がある場合は、dataフォルダ内のI18NTexts.jsonを削除して
* ください。これにより初期化されます。
*
* 本プラグインは以下の手順にて使用することを推奨します(ゲーム中の文字列とし
* て日本語と英語の2ヶ国語を使用する場合の例です)。
* 1. プロジェクトフォルダのバックアップを取る
* 2. プラグインパラメータ「翻訳候補言語リスト」に「日本語」と「英語」を指定
* する
* 3. プラグインパラメータ「ソース言語」に「日本語」を選択する
* 4. プラグインパラメータ「ターゲット言語」に「制御文字」を選択する
* 5. 「変換対象文字列」以下のプラグインパラメータ設定をよく確認する
* 6. ConvertI18NTexts.jsを有効にする
* 7. テストプレイを実行する
* 8. 全ての変換対象の文字列が制御文字に変換されていることを確認する
* 9. dataフォルダ内にI18NTexts.jsonが生成されていることを確認する
* 10. I18NTexts.jsonを開き、「ja_JP」というキーの値にツクール上に入力されてい
* た文字列が、「en_US」というキーの値に「temp[n]」という仮文字列が設定さ
* れていることを確認する
* 11. ConvertI18NTexts.jsを無効にする
* 12. DisplayI18NTexts.jsのプラグインパラメータ「使用言語」に「日本語」と「英
* 語」を指定する
* 13. DisplayI18NTexts.jsを有効にする
* 14. I18NTexts.json内の任意のデータの「en_US」キーの値に、「ja_JP」キーの値
* の文字列を翻訳した文字列を入力する(オプション画面にて表示される文字列
* 推奨)
* 15. テストプレイを実行し、オプション画面を開く
* 16. 「言語」にて日本語と英語を切り替え、14で入力した文字列が正常に翻訳され
* ていることを確認する
* 17. 全ての文字列の翻訳が完了するまで14〜16を繰り返す
*
* 仮文字列(temp[n])は正式に翻訳するまでの間はそのままにしてください。
* 削除して空文字列にしてしまうと不具合が生じます。
*
* なおデータベース等の文字列を制御文字から元の言語の文字列に戻すこともできま
* す。その場合「ソース言語」に「制御文字」を、「ターゲット言語」に制御文字以
* 外の言語を指定してテストプレイを実行してください。その後、データベースやイ
* ベントの文字列が正常に変換されていることを確認してください。
* また、I18NTexts.jsonの内容を更新することもできます。例えばデータベース文字
* 列が日本語であるとします。データベース上で何らかの文字列に変更を加えたとし
* ても、I18NTexts.jsonのそれに対応する文字列はまだ古いままです。「ソース言語」
* と「ターゲット言語」の両方に「日本語」を指定してテストプレイを実行すると、
* I18NTexts.jsonに変更が反映されます。
*
* I18NTexts.jsonの言語別キー一覧
* 日本語: ja_JP
* 英語: en_US
* 中国語(簡体字): zh_CN
* 中国語(繁体字): zh_TW
* 韓国語: ko_KR
* フランス語: fr_FR
* イタリア語: it_IT
* ドイツ語: de_DE
* スペイン語: es_ES
* ポルトガル語: pt_BR
* ロシア語: ru_RU
*
*
* このプラグインはMITライセンスにてリリースされています。
* https://opensource.org/licenses/mit-license.php
*
*
* @param sourceLanguage
* @text ソース言語
* @desc 現在データベースやイベントに入力されている文字列の言語を選択してください。
* @default ja_JP
* @type select
* @option 制御文字(I18N[n])
* @value escape
* @option 日本語
* @value ja_JP
* @option 英語
* @value en_US
* @option 中国語(簡体字)
* @value zh_CN
* @option 中国語(繁体字)
* @value zh_TW
* @option 韓国語
* @value ko_KR
* @option フランス語
* @value fr_FR
* @option イタリア語
* @value it_IT
* @option ドイツ語
* @value de_DE
* @option スペイン語
* @value es_ES
* @option ポルトガル語
* @value pt_BR
* @option ロシア語
* @value ru_RU
*
* @param targetLanguage
* @text ターゲット言語
* @desc テストプレイ起動後に変換する、データベースやイベントの文字列の言語を選択してください。
* @default escape
* @type select
* @option 制御文字(I18N[n])
* @value escape
* @option 日本語
* @value ja_JP
* @option 英語
* @value en_US
* @option 中国語(簡体字)
* @value zh_CN
* @option 中国語(繁体字)
* @value zh_TW
* @option 韓国語
* @value ko_KR
* @option フランス語
* @value fr_FR
* @option イタリア語
* @value it_IT
* @option ドイツ語
* @value de_DE
* @option スペイン語
* @value es_ES
* @option ポルトガル語
* @value pt_BR
* @option ロシア語
* @value ru_RU
*
* @param languagesToBeSupported
* @text 翻訳候補言語リスト
* @desc すべての翻訳候補言語を設定してください。ここで指定した言語がI18NTexts.jsonのキーとして追加されます。
* @default [”ja_JP”,”en_US”]
* @type select[]
* @option 日本語
* @value ja_JP
* @option 英語
* @value en_US
* @option 中国語(簡体字)
* @value zh_CN
* @option 中国語(繁体字)
* @value zh_TW
* @option 韓国語
* @value ko_KR
* @option フランス語
* @value fr_FR
* @option イタリア語
* @value it_IT
* @option ドイツ語
* @value de_DE
* @option スペイン語
* @value es_ES
* @option ポルトガル語
* @value pt_BR
* @option ロシア語
* @value ru_RU
*
* @param targetText
* @text 変換対象文字列
* @desc 特定の文字列を変換対象にするかどうかの設定です。
*
* @param convertGameTitle
* @text ゲームタイトルの変換
* @desc オンにするとゲームタイトルも変換対象になります。タイトルバーに表示されるタイトルがおかしくなるため、非推奨です。
* @parent targetText
* @default false
* @type boolean
*
* @param convertUnusedTexts
* @text 未使用文字列の変換
* @desc オンにすると敵グループやアニメーションの名前など、ゲーム中に表示されない文字列も変換対象になります。
* @parent targetText
* @default false
* @type boolean
*
* @param convertNotes
* @text メモの変換
* @desc オンにするとデータベース項目の「メモ」、イベントコマンド「注釈」も変換対象になります。
* @parent targetText
* @default false
* @type boolean
*
* @param pluginParameters
* @text プラグインパラメータ
* @desc 各種プラグインのプラグインパラメータを変換対象に指定します(複数設定可能)。
* @parent targetText
* @default [”{”pluginName”:”OptionEx”,”parameterNames”:”[\”switchABButtonsName\”,\”fastMessageName\”,\”dashSpeedName\”,\”windowskinName\”,\”windowToneRedName\”,\”windowToneGreenName\”,\”windowToneBlueName\”,\”windowOpacityName\”,\”defaultCommandName\”]”}”]
* @type struct<pluginParameter>[]
*
*/