

主な機能
- Excel(xlsx)またはLibreOffice Calc(ods)のファイルを参照し、各言語の文章に変換。
- 各言語のデータベースやプラグインパラメータを読み込んで切替。
- オプション画面に言語選択を追加。
- NRP_TextEditorMZ(MZ用テキスト編集エディタ)に連携して表示。
※なお、Microsoft Excelである必要はありません。LibreOffice Calcなど無料ソフトで十分です。
LibreOfficeでxlsxを開くと改行表示がおかしくなる問題に遭遇したので、その場合はods形式を使用したほうが安定するかもしれません。
目次
導入方法(Install)
更新履歴(History)
利用規約(SheetJS)
xlsxファイルの配置
翻訳の概要
xlsxによる置換方法
文字列置換(\lan[id])
名前欄で指定して本文置換(\lanm[id])
文字列前方置換(\lanc[id])
自動置換
スクリプト
別プロジェクトの参照
画像の自動切替
高速化用のjson作成
NRP_TextEditorMZとの連携
その他詳細
プラグインパラメータ(Plugin Parameters)
言語リスト(LanguageList)
言語変数(LanguageVariable)
シート名変数(SheetVariable)
初期設定の言語(DefaultLanguage)
オリジナル言語(OriginalLanguage)
オリジナル言語はxlsx未使用(SkipXlsxForOriginalLanguage)
高速化用のjson作成(MakeFastJson)
[Dev]機能を無効化(DisableFeature)
<オプション>(<Option>)
<データベース>(<Database>)
<自動置換>(<NameReplace>)
<画像の自動切替>(<AutoChangeImages>)
プラグインパラメータ(言語リスト)
言語番号(LangNo)
言語名(LangName)
言語コード(LangCode)
ロケール(Locale)
フォルダ名(FolderName)
言語プロジェクトのパス(LangProjectPath)
導入方法(Install)
以下のファイルをダウンロードし、[プロジェクト]\js\plugins に放り込みます。ツクールのプラグイン管理から機能をONにしてください。
※このプラグインはMZ専用です。
NRP_MultiLanguage.js ver1.06(2026/09/29)
※このプラグインはなるべく上に配置してください。
順序がこれより下のプラグインのみが翻訳対象となります。
SheetJS のセットアップ(xlsx読込に必要)
以下のファイルをダウンロードし、[プロジェクト]/js/libs に放り込んでください。プラグイン管理の設定は不要です。
xlsx.full.min.js(0.20.3)
SheetJS の利用規約については以下をご確認ください。
更新履歴(History)
2026/09/29(ver1.06)
- LibreOffice Calcのods形式に対応した。
※NRP_TextEditorMZでodsを使用するには、あちらをver1.09以降に更新する必要があります。
- テストプレイ時に高速化用のjsonを作成し、起動時に読み込むようにした。これにより、翻訳データが大量になっても大幅に起動を高速化できます。
- またこの機能は『ブラウザ用のリスト作成』の上位互換となるため、不要となった『ブラウザ用のリスト作成』を削除した。
2026/09/08(ver1.05)
- プラグインパラメータにブラウザ用のリスト作成を追加し、ブラウザ起動にも対応(詳細)できるようにした。
2026/08/25(ver1.04)
- オリジナル言語使用時はxlsxを読み込まない設定を追加した。
- 開発時に機能を無効化できるようにした。
- スクリプトの$lan(id, "既定値"); で既定値を読み込めるように改良。
- 選択肢を置換が自動置換ファイル以外にも影響してしまう不具合修正。
- MPP_ChoiceEX.jsの選択肢制御と共存できるように調整した。
※MPP_ChoiceEX.js側の条件設定は翻訳前にだけ記述すればOKです。
2026/08/17(ver1.03 -> 1.031)
- プラグインパラメータにオリジナル言語を追加した。現在の言語がオリジナル言語と一致する場合、画像切替使用時に言語別ファイルを参照しないようにした。
- 言語リストにロケールを設定できるようにした。
(名前の入力処理などに影響します。)
- 言語プロジェクト使用時にこのプラグイン自身のパラメータを上書きできていない不具合修正。(対象は言語設定の項目名のみです。)
- Excel内に不要な空欄データがあった場合、無視するように修正。
- 起動時のロード処理を一部並列化して高速化した。
- システム2のフォント関連設定も言語プロジェクトから読み込むようにした。(ver1.031)
2026/08/12(ver1.02)
- プラグインパラメータに削除用文字列を追加。言語プロジェクトのプラグインパラメータに[DEL]を設定すると、空欄で上書きできるようにした。
- 言語プロジェクトの通貨単位が反映されていない不具合修正。
2026/08/04(ver1.01)
- スクリプト『$lan(id)』から翻訳を取得できるようにした。
2026/07/23(ver1.00)
- 公開!
利用規約(SheetJS)
本プラグインは SheetJS Community Edition を使用しています。
ゲーム作品として配布・販売する場合は、クレジットあるいは同梱テキストに以下を記載してください。
SheetJS Community Edition -- https://sheetjs.com/
Copyright (C) 2012-present SheetJS LLC
Licensed under the Apache License, Version 2.0
http://www.apache.org/licenses/LICENSE-2.0
追記
Apache License公式によれば、記載するよりもライセンスファイルの作成を推奨しているようです。以下にSheetJS用のものを作成したので、どこか作品内の参照できる場所に配置しておけばOKです。
SheetJS-LICENSE.txt
xlsx/odsファイルの配置
[プロジェクト]/data/localize/ 以下にxlsx/odsファイルを配置してください。
※以降、EXCEL(xlsx)という記述を使いますが、LibreOffice Calcのods形式でも問題なく使用できます。
フォーマットは以下のサンプルを見れば、大体分かると思います。
試しにダウンロードして data/localize/ に配置してみてください。ファイル名は全く見ないので置くだけで機能します。
以下の制御文字を文章の表示の名前欄に記載してみてください。
\lanm[town01.001]
※名前がある場合、制御文字は末尾に記入してください。

オプションで設定言語を切り替えた際に、対応した言語の文章が表示されれば成功です。
※設定言語がオリジナルの言語の場合は、元の文章がそのまま表示されます。

以下詳細です。
xlsx のフォーマット
- 1行目はヘッダ行となります。
- ID列が文章中から参照するためのキーとなります。
- 言語コード(ja / en 等)の列が各言語のテキスト列になります。
- 2行目以降:ID列にID(例:001)、各言語列に対応テキストを記入。
- 列の順序は自由です。話者などの参照情報を列として追加しても構いません。
シート名の指定
当プラグインは複数のxlsx/odsファイル、複数のシートに対応しています。
ただし、キーとするのはシート名だけです。
複数ファイルに同一のシート名を使用しても無効となります。
※シート名は大文字小文字を区別しません。
複数シートを使用する場合、先頭に『.』で区切って使用してください。
(例:シート名が『town001』、IDが『001』ならば、『town01.001』など)
また、現在のシート名を設定することで省略できるようになります。
現在のシート名の設定方法は以下2つの方法があります。
マップのメモ欄に指定
<LanguageSheet:sheetName>
どちらかというと、こちらの方法を推奨します。NRP_TextEditorMZからも参照できるので便利です。
例えば、上述のサンプルの場合はマップのメモ欄に以下を指定してみてください。
<LanguageSheet:town01>
文章の名前欄に『town01』を指定しなくとも使えるようになります。
\lanm[001]
なお、マップの設定を一括で変更したい場合はNRP_TextEditorMZのマップの設定一覧が便利です。
プラグインパラメータの『シート名変数』に文字列を設定
変数の操作のスクリプトを使用して代入を行います。
なお、全体でシートを一つしか使用しない場合は、シート名を省略できます。
翻訳の概要
当プラグインの多言語対応には様々な方法を用意しています。
最適な方法をご利用ください。
- 本文:\lanm
- 名前欄:\lanc、または別プロジェクト参照(TextScriptBase.js経由など)
- 選択肢:\lanc
- データベース:別プロジェクト参照
- プラグインパラメータ:別プロジェクト参照
というように使い分けるのがオススメです。
以下で詳細を説明します。
xlsxによる置換方法
文字列置換(\lan[id])
最も単純な方法です。xlsx/odsに指定された該当言語へと置き換えます。
本文、名前欄、DB項目、プラグインパラメータなどに使えます。

ただし、エディタ内の入力文を、制御文字だけにする必要があります。エディタで見た場合もコードしか分からなくなることに注意してください。

この設定の場合、オリジナル言語もEXCEL側に持たせる必要があります。この場合、日本語の列名を『ja』にすることで出力されるようになります。
名前欄で指定して本文置換(\lanm[id])
名前欄に記入すると本文をxlsxに指定された該当言語へと置き換えます。該当言語がない場合は元の文章をそのまま使います。
既に日本語作品として完成したプロジェクトを、なるべく変更せずに多言語対応したいような場合に有用です。

文字列前方置換(\lanc[id])
その入力欄の前方の文字列をxlsxに指定された該当言語へと置き換えます。
本文、名前欄、DB項目、プラグインパラメータなどに使えます。
該当言語がない場合は元の文章をそのまま使います。
こちらも既に日本語作品として完成したプロジェクトを、なるべく変更せずに多言語対応したいような場合に有用です。
名前欄や選択肢の置換にも使えます。
\lanm[id]と併用する場合は以下のような順番で設定してください。
アレックス\lanc[id]\lanm[id]
\lancは前方を消してしまうので、消したくないものより前に出してください。
自動置換
「自動置換ファイル」にxlsxファイルを指定すると、名前欄、選択肢が一致するテキストを自動的に置換します。
\v[]などで展開された後の文字列にも対応します(名前欄のみ)。
こちらはxlsxの『original』列をキーとします。
フォーマットは以下のサンプルをご覧ください。
同じく data/localize/ に配置してください。『original』列の値が一致する名前欄と選択肢を置き換えます。
※ちなみにシート名とID列を使用した通常通りの参照も可能です。使わない場合はID列はなくとも構いません。
スクリプト
スクリプトから参照したい場合は、以下の関数を使用できます。
※文字列としてIDを渡す必要があることに注意してください。
※シート名などのルールは他と同じです。
$lan(id)
例
$lan("town01.001")
また、該当がなかった場合の文字列を指定することもできます。
Excelにオリジナル言語の値を持たせたくない場合は特に便利です。
$lan(id, デフォルト値)
例
$lan("town01.001", "おはよう!")
別プロジェクトの参照
別言語用のプロジェクトを用意することで、言語切替時にそちらの文言を参照できるようにします。
対象はデータベースとプラグインパラメータです。
※マップデータや素材は参照しません。消してしまって大丈夫です。

別のプロジェクトとして、言語用プロジェクトを作成してください。
データベースは文章項目(メモ欄を含む)のみ、プラグインパラメータは全ての項目が対象です。
入力がある項目のみ上書きし、それ以外は無視します。

不要なプラグインや不要なプラグインパラメータは削除したほうが安全です。
データベースのメモ欄も不要な場合は消したほうが安全です。間違えて上書きしないように注意してください。
言語によって、レイアウト系のパラメータを調整するといったことも可能です。
また、システム2のフォント関連情報も上書きされます。フォントファイル自体はオリジナルプロジェクトのほうに配置するようにしてください。
プラグインパラメータの『言語リスト』に対象の『言語コード』や『フォルダ名』『言語プロジェクトのパス』を登録してください。
テストプレイ実行時に自動的に各JSONおよび、plugins.js(プラグインパラメータ)がコピーされます。
※『言語プロジェクトのパス』はテストプレイ用の項目ですが、製品版でもプラグインパラメータ自体は読み取れてしまいます。不要な個人情報を含まないように注意してください。
メモタグのマージ
メモ欄については、タグ毎に上書きするように設定を変更できます。
例えば、とある敵キャラのメモ欄に以下のような指定がされていたとします。
<Level:1>
<desc:何でもかじる大型のネズミ。>
この内、多言語対応する必要があるのは<desc:〜>だけです。
敵キャラの『メモタグのマージ』をオンにすれば、言語プロジェクト側には、<desc:〜>だけを記載すればよくなります。
逆に以下のような記法(参考:NRP_AdditionalCCScene.js)だと対応できません。この場合は『メモタグのマージ』をオフにして書き換えるなどの対応をする必要があります。
<ClassMessage>
武器と魔法を使いこなす魔法戦士。
相手を選ばず強さを発揮する。
</ClassMessage>
あるいは以下のような書き方も有効です。
<ClassMessage>
武器と魔法を使いこなす魔法戦士。
相手を選ばず強さを発揮する。
\\lanc[class.1]
</ClassMessage>
この場合は言語プロジェクト側のメモ欄を消してください。『\\lanc』というように\\を重ねる必要があります。
用語プラグイン
名前欄の置き換えに関しては、用語系プラグインを使う方法があります。
公式プラグインの『TextScriptBase.js』などが使えます。
画像の自動切替
現在の言語コードによって、画像を自動で切り替えられるようにできます。
対象とする画像は『画像リスト』および『パターンリスト』で指定できます。


例えば、
img\pictures\Test.png
を指定した場合、言語が英語なら
img\pictures\en\Test.png
が自動で表示されます。
サブフォルダを使用した場合も有効です。
img\pictures\Help\Test.png
↓
img\pictures\en\Help\Test.png
のように切り替えられます。
複数のファイルの指定には『パターンリスト』が便利です。
"pictures\Help"以下のファイルが対象
pictures\Help\*
さらに下のサブフォルダまで対象
pictures\Help\**
対象の画像が存在しない場合は、元の画像を使用します。
その際は画像の表示がわずかに遅延するため注意です。
(ファイルの存在確認を行うため)
高速化用のjson作成
オンの場合、テストプレイ時にdata/localize/json/に言語別のjson(例:LANG_en.json)とキャッシュ用のjsonを生成します。
初回生成時や翻訳データの変更時は、xlsx/odsの解析時間がかかりますが、これによって、本番ではロード時間を大幅に短縮できるようになります。
また、この機能を使うことでブラウザ起動にも対応できるようになります。ブラウザ起動時はこの機能を必ずオンにしてください。
仕様上、各翻訳データ(xlsx/ods)を変更した後、一度もテスト起動せず、本番ファイルをアップロードすると正常に変更が反映されません。
※まずありえないと思いますが……。
NRP_TextEditorMZとの連携
NRP_TextEditorMZ(MZ用テキスト編集エディタ)と連携すれば、翻訳作業が非常に快適になります。
使用するには、NRP_TextEditorMZの「設定>プロジェクト設定」でNRP_MultiLanguage.jsとの連携をオンにしてください。
これにより画面に翻訳を表示することができます。
さらに名前欄末尾の『\lanm[言語ID]』の記述を言語ID列に分離して表示&編集できるようになります。
(選択肢の場合は末尾の『\lanc[言語ID]』が対象になります。)
これによって、スピーディな翻訳管理が可能となります。

xlsxで使用しているものと同じ『言語ID』を該当列に入力すると、翻訳列に内容が表示されるようになります。
文章のハミダシ線の設定などもできるので参考にしてください。
EXCEL出力&AI翻訳
EXCEL出力 → AIで翻訳&言語IDを設定 → NRP_TextEditorMZに貼付
という手順で一気に翻訳ができます。『子マップも表示』の機能を使うと便利です。
以下は実際に作者がChatGPTに指示したサンプルです。翻訳には、名前欄やイベントページなどの情報も活用できます。
ゲーム内文章の翻訳をしています。
このxlsxの日本語を英訳してen列に出力してください。
・名前欄の翻訳は不要です。
・イベントIDやページが切り替わった場合は別のシーンになります。
・\n[1]などの表記は実際のゲーム内では該当の人物名に変換されます。
・名前欄が空白の人物はいわゆるモブキャラです。
・一行は50文字以内に収めてください。\n[〜]は6文字として扱ってください。
・元のセリフより行数を増やしても構いませんが、一つのセリフは4行までしか表示されないことに注意してください。
・改行コードの問題でxlsxの出力にはopenpyxlを使用してください。
実際には人物資料集などの設定情報をまとめて、主要人物や用語の英語名を早めに決めておいたほうがよいかと思います。
openpyxlについては、自分の環境だとxlsxの改行表示がおかしくなったので調整のために指定しました。
NRP_TextEditorMZについての詳細はこちらをご覧ください。
https://newrpg.seesaa.net/article/521148077.html
その他詳細
言語コードの保存先
現在の言語コードはゲーム起動時に以下の場所から読み込みます。
- ローカル環境:save/nrp_language.ini
- ブラウザ環境:localStorage の "nrp_language" キー
config.rmmzsave とは独立して管理されます。
言語切り替え時の動作
タイトル画面のオプションで言語を切り替えてオプションを閉じると、言語コードを保存後にゲームを再起動します。
言語設定項目はタイトル画面以外ではグレーアウトされ変更できません。
言語変数
言語変数はニューゲーム時・ロード時に自動で再設定されます。
プラグインパラメータ(Plugin Parameters)
言語リスト(LanguageList)
使用する言語の一覧です。
言語変数(LanguageVariable)
現在の言語番号を格納する変数です。
値は言語リストの言語番号に対応します。
シート名変数(SheetVariable)
現在のシート名を格納する変数です。
\lan[001]のように省略記法を使う際に参照されます。
デフォルトシート名(DefaultSheetName)
シート名の既定値です。空欄も有効です。
xlsxのシートが1つの場合の自動選択より優先されます。
初期設定の言語(DefaultLanguage)
OS の言語設定が言語リストに一致しない場合の初期言語です。
初回起動時にのみ使用されます。
作品の翻訳元となる『オリジナルの言語』とは、また別の概念なので注意してください。
一般的には『英語』を指定する想定です。
オリジナル言語(OriginalLanguage)
このプロジェクトのオリジナル言語(作品の翻訳元となる言語)です。
現在選択されている言語と一致する場合、画像の自動切替を行いません。
※現状は画像の自動切替にしか使用していません。
オリジナル言語はxlsx未使用(SkipXlsxForOriginalLanguage)
現在の言語がオリジナル言語ならば、SheetJSとxlsxを読み込まないようにします。これにより、オリジナル言語を使用している時は、不要なデータを読み込まないようにします。
※オリジナル言語の内容までxlsxに定義していた場合は、当然表示されなくなるので注意してください。
高速化用のjson作成(MakeFastJson)
テストプレイ時に言語別JSONを生成し、起動時は設定言語のJSONのみ読み込みます。公開時は生成したJSONも同梱してください。
ブラウザ公開する場合は必ずオンにしてください。
[Dev]機能を無効化(DisableFeature)
本プラグインの機能を無効化します。
オプション画面の言語設定を非表示にして、各種翻訳機能を無効化します。言語設定は強制的にオリジナル言語を選択した状態になります。
開発途中など「翻訳をまだリリースできる段階にないが、不具合修正などで作品を更新する必要がある」という状況で使用することを想定しています。
※プラグイン自体をオフにすると、\lan[〜]などの表示がゴミとして残ってしまうのでこちらを使用してください。
<オプション>(<Option>)
言語設定の項目名(OptionLabel)
オプション画面に表示する言語設定の項目名です。
挿入位置(InsertPosition)
言語設定を挿入するオプション項目の位置です。
0を先頭として設定してください。
<データベース>(<Database>)
言語プロジェクトを使用(UseLanguageProject)
ONにすると言語フォルダのJSONファイルやplugins.jsを参照します。
言語データを自動コピー(AutoCopy)
テストプレイ起動時に言語プロジェクトから自動コピーします。
「言語プロジェクトを使用」がOFFなら無効です。
削除用文字列(DelString)
言語プロジェクト側でプラグインパラメータを空欄で上書きしたい場合に設定する文字列です。
初期値は[DEL]です。
※言語プロジェクト側のプラグインパラメータは空欄を設定すると無視される仕様です。そのため、あえて空欄で上書きしたい場合に使用するための仕組みです。
<メモタグのマージ>(<NoteTagMerge>)
ONの場合、メモ欄にあるタグ毎に元データへ反映します。
OFFの場合は、メモ欄全体を上書きします。
以下のメモ欄がある項目が対象です。
『アクター』『職業』『スキル』『アイテム』『武器』『防具』『敵キャラ』『ステート』
<自動置換>(<NameReplace>)
自動置換ファイル(NameAutoReplaceFile)
自動置換に使用するxlsxファイル名です。
data/localize/ 以下に配置してください。
(例:name.xlsx)
名前欄を置換(ReplaceNameBox)
ONにすると名前欄のテキストを自動置換します。
選択肢を置換(ReplaceChoices)
ONにすると選択肢のテキストを自動置換します。
<画像の自動切替>(<AutoChangeImages>)
画像リスト(AutoChangeImageList)
登録した画像について、自動切替の対象にします。
パターンリスト(AutoChangePatternList)
登録した画像ファイルのパターンについて、自動切替の対象にします。
img以下を指定してください。
例: pictures\Test\*
プラグインパラメータ(言語リスト)
言語番号(LangNo)
この言語を選択したとき言語変数に格納される値です。
言語名(LangName)
オプション画面に表示する言語の名前です。
(例:日本語、English)
言語コード(LangCode)
この言語に対応する言語コードです。
現在の言語判定に使用します。
ロケール(Locale)
言語プロジェクト使用時に$dataSystem.localeへ設定する値です。
例:ja_JP、en_US
この値は名前の入力処理などに影響します。例えば、値が「ja〜」以外ならば、入力候補に日本語は表示されなくなります。
フォルダ名(FolderName)
この言語用のフォルダ名です(data/ 以下に作成)。
例:data_en → [Project]/data/data_en/ に配置。
言語プロジェクトのパス(LangProjectPath)
言語用プロジェクトフォルダのパスです。
テストプレイ開始時に、このフォルダからファイルを自動コピーします。
>RPGツクールMZ&MV目次に戻る

















