じ☆ve冰风 发表于 2026-7-24 08:06:49

ToshA_Localization

ToshA_Localization — Runtime i18n (CSV/JSON) for RPG Maker MZ
by ToshaAngel​



What is it?
Runtime localization system that auto-captures UI/messages/database strings into CSV/JSON and replaces them on the fly.
Includes hotkeys for export/reload, language switching, and optional language UI on Title/Options.

Engine: RPG Maker MZ
File: ToshA_Localization.js (see attachment below)



Preview video

https://www.youtube.com/embed/oTkKdMzbUMM



Features

[*] Auto-extract from Database (names/descriptions), System Terms, Event text (Show Text / Show Choices).
[*] On-screen UI capture via drawText / Bitmap.drawText (menus, window headers, button labels, plugin UI, etc.).
[*] Optional full map scan on boot (reads MapXXX.json in NW.js desktop/test).
[*] Stores to CSV (default, ; delimiter) or JSON; optional split by category (DB/Events/UI/Terms).
[*] Stable keys from source text and DB paths (e.g. Database.Items.1.name).
[*] Runtime replacement for DB and $dataSystem.terms; auto-refreshes the current scene.
[*] Hotkeys: F6 export, F7 reload, F8 next language.
[*] Optional language switch in Options/Title + title language icon with flags.



Installation

[*] Copy ToshA_Localization.js into js/plugins/ and enable it.
[*] (Recommended) CSV output to data/i18n — configurable in plugin params.
[*] Run your game in NW.js (desktop/test). The plugin collects strings into CSV/JSON on the fly.
[*] Edit translations and press F7 to reload; use F8 to switch language.




Plugin Commands

[*]setLanguage — set current language (code=en).
[*]exportNow — write CSV/JSON immediately.
[*]reload — reload translations from disk and reapply.
[*]setFreezeCapture — stop/start capturing new strings (value=true/false).

Examples — Script calls
                Code:       
// Set language
PluginManager.callCommand(this,"ToshA_Localization","setLanguage",{ code:"en" });

// Export CSV/JSON now
PluginManager.callCommand(this,"ToshA_Localization","exportNow",{});

// Reload from disk and reapply
PluginManager.callCommand(this,"ToshA_Localization","reload",{});

// Temporarily freeze capturing
PluginManager.callCommand(this,"ToshA_Localization","setFreezeCapture",{ value:true });


CSV / JSON format
                Code:       
// CSV (default, ; delimiter) header example:
command;original;originalLang;en;ru;...

// JSON example:
{
"meta": {...},
"languages": ["en","ru"],
"strings": {
    "Database.Items.1.name": { "source": "Potion", "en":"Potion", "ru":"Зелье" }
}
}




Notes & Tips

[*] Writing CSV/JSON works only in NW.js (desktop). In browser builds, writing is disabled; the game still runs with existing translations.
[*] UI capture (drawn text) may pick dynamic/noisy strings — enable only if needed and use filters.



License & Credits
Please credit ToshaAngel.
Do not redistribute or re-sell the plugin file.

Download: see the attached ToshA_Localization.js below.



Note: It does not allow uploading the editor here (.exe or .rar/.zip).
You can download it on my page Itch.io: https://toshaangel.itch.io/tosha-localization


本贴来自国际rpgmaker官方论坛作者:ToshaAngel处,因国际论坛即将永久关站,为了存档多年珍贵资料,署名转载到本论坛存档,由于官方帖子为英文原帖,需要中文翻译请点击论坛顶部切换语言为中文就可以将帖子翻译成中文浏览,方便大家随时查看,原文地址:https://forums.rpgmakerweb.com/threads/tosha_localization.179635/
页: [1]
查看完整版本: ToshA_Localization