このツールは、Minecraft
- Mod本体
- FTBQuests、BetterQuestingによるModPackのクエスト
- Patchouliによるガイドブック
を日本語に翻訳するためのものです。
ソフト名: MinecraftModsLocalizer
このソフトウェアは、ChatGPTを使用して、MinecraftのMod本体、BetterQuestingまたはftbquestsのQuest、Patchouliを日本語に翻訳する機能を提供します。
ModPackなどの一括翻訳などにご利用ください
動作環境:
- Windows
- Mac
- Linux
テスト済み環境:
- Windows
テスト済みModPack:
- DawnCraft (Forge)
- ATM9 (Forge)
- Create Astral (Fabric)
- RLCraft (Forge)
- OpenAIのAPI_KEYが必要です。
実行ファイル(例: minecraft-mods-localizer-windows.exe)は、Minecraftのメインディレクトリ内、mods
、resourcepacks
、config
、logs
フォルダが存在する場所に配置してください。
以下にWindows環境のディレクトリツリーの例を示します。
構成ファイル/
│
├── minecraft-mods-localizer-windows.exe
├── config/
├── kubejs/
├── resources/
├── mods/
└── logs/
└── localizer/
└── {日付}/
├── resourcepacks/
- OpenAIのAPI KEYを取得し、ソフトウェアに提供します(ググると取得方法はいっぱい出ると思います)。
- ソフトウェアを起動し、指示に従って翻訳を開始します。
超巨大なModPack(ATM9のような)で全てを翻訳しても0.5ドル以下で翻訳できると思います。本当に安くなった。
特定のmod(.jar)やquestファイル(.snbt)のみを翻訳したい場合は、それらのファイルを取り除いてください。
- modは
mods
フォルダ内にあります。 - questsは
kubejs/assets/kubejs/lang/
またはconfig/ftbquests/quests/chapters
(両方ある場合はlangの方が翻訳元になります)の中にあります。
- Translate Target: 翻訳対象を選択します。
- OpenAI API KEY: OpenAIのAPI_KEYを入力してください。
- Chunk Size ファイルを分割して翻訳するため、一つあたりの行数を指定します。下げると翻訳速度が低下しますが精度が上昇します。また、下げると翻訳失敗時に翻訳されなかった部分が減ります。単体mod翻訳やクエストのみの翻訳では1、ModPackで大量のModを一括で翻訳するときは100くらいまで上げることをお勧めします(翻訳時間がすごいことになります)
- Model 弄らないことをお勧めします。OpenAIからより良いモデルが出たときは変更してもよいかもしれません。
- Prompt 知識のある方はプロンプトを弄るとさらなる精度向上が見込めるかもしれません。特にどうしても一部翻訳が正常に成功しないことがあり、成功しなかった場合はチャンクを丸ごと翻訳しないことになります。
- mod本体の翻訳は、リソースパックとして出力され、
resourcepacks/japanese
に保存されます。 - questsの翻訳は、
kubejs/assets/kubejs/lang/en_us.json
が存在するか調べます(BetterQuestingの場合recourses/betterquesting/lang
) - 存在する場合
kubejs/assets/kubejs/lang/ja_jp.json
とkubejs/assets/ftbquests/lang/ja_jp.json
を作成し、そこに翻訳を追加します。 - 存在しない場合直接
config/ftbquests/quests/chapters/ファイル(.snbt)
を書き換え翻訳します。 - Patchouliは各Modのjarファイルを解析し、Patchouliのjsonファイルが確認できた場合に翻訳を行います。翻訳後のファイルは
{mod.jar}}/assets/{mod_name}/patchouli_books/{guide_name}/ja_jp
に保存されます。
- 実行ログは
logs/localizer/{日付}
内に保存されます。これには、コンソールログと翻訳前ファイルのバックアップが含まれます。
- Chunk Sizeは単体mod翻訳やクエストのみの翻訳では1、ModPackで大量のModを一括で翻訳するときは100くらいまで上げることをお勧めします(翻訳時間がすごいことになります)
- OpenAIのAPI_KEYの取り扱いには十分注意してください。
- GPT4o miniにモデルを変更したことによってAPI料金は気にしなくてもいいレベルで安くなりましたが、代償として翻訳が超遅くなりました。気長に待ってください
- Mod本体の翻訳に関して、リソースパックのpack.mcmetaがインデントが崩れている場合、正常に読み込まれない可能性があります。リソースパックに候補が出てこない場合は、pack.mcmetaを確認してください。
- どうしても翻訳が失敗してしまうことがあるので、気になる方は
- Mod:
logs/localizer/error
から手動でjsonを編集し、resourcepacks/japanese/lang/ja_jp.json
に追記してください - Quest:
logs/localizer/error
から手動でjsonを編集し、/kubejs/assets/kubejs/lang/ja_jp.json
に追記してください - ※なお、Questの場合snbtファイルに直書き形式であった場合errorディレクトリに記録が残りません。Patchouliのログも残りません。
- mod本体翻訳: modファイル(.jar)から
assets/{mod名}/lang/ja_jp.json
またはassets/{mod名}/lang/en_us.json
を抽出し、その中で日本語の値を持たないものを翻訳し、リソースパックを作成します。 - リソースパックのpack.mcmetaは最初に見つけたjarファイルのものを使用します。descriptionなどはお好みで変更してください。
- quests翻訳:
kubejs/assets/kubejs/lang/en_us.json
が存在するか調べます - 存在する場合
kubejs/assets/kubejs/lang/en_us.json
を読み込み翻訳を行います - 存在しない場合直接
config/ftbquests/quests/chapters/ファイル(.snbt)
を書き換え翻訳します。 - また、
kubejs/assets/kubejs/lang/en_us.json
に本来jsonとして無効なコメントが含まれている場合、改行コード(\n)がクエスト内容に存在する場合消し飛ばします(Create Astralで確認)。扱いめんどくさかった。許して❤ - 翻訳前と後の行数が異なる場合最大5回までもう一度翻訳を試みます。それでもダメな場合はそのチャンクは翻訳されません。
- コード綺麗にしました。forkなども大歓迎です。init.pyを弄ればだいたいのパラメーターは弄れます。プロンプトが気に入らないときはどうぞ
- Github Issuesにバグ報告や機能要望を投稿していただけると幸いです。