Mod Loader/Reference/Translation fields
A translation pack adds a language choice and supplies translated text tables. The starter copies the game's English text into four files. You can keep only the files and entries you have translated; missing text falls back to English.
Pack manifest
The translation starter's mod.json registers its language:
{
"id": "example.translation-starter",
"name": "Translation Starter",
"localizations": [
{
"code": "en-XA",
"name": "English (Translation Template)",
"folder": "lang"
}
],
"author": "Yuuma",
"version": "1.0.0"
}
| Field | Meaning |
|---|---|
id
|
Stable pack ID. |
name
|
Pack name shown in Mod Manager. |
localizations
|
List of languages this pack adds. |
localizations[].code
|
Language code. Use the same value in every translation file's locale.
|
localizations[].name
|
Language name shown in the game's Language menu. |
localizations[].folder
|
Folder inside the pack that contains this language's lang-*.json files.
|
author, version
|
Pack author and version. Increase the version when sharing an update. |
Language files
The starter's lang folder contains these files:
| File | Text |
|---|---|
lang-ui.json
|
Menus and interface. |
lang-tutorial.json
|
Tutorial text. |
lang-dialogue.json
|
Character and story dialogue. |
lang-content.json
|
Items and other game content. |
Use the game's filenames for the tables you translate. Keep locale the same in every file, and keep the pack's language code stable after release.
Translation file fields
Each file contains a format number, language metadata, and one or more text tables. The starter's UI file begins like this:
{
"format": 1,
"locale": "en-XA",
"language": "English (Translation Template)",
"tables": [
{
"name": "UI",
"guid": "92ede2bf-327b-3d2e-2846-b1b2aa99b799",
"entries": [
{
"id": 56515267379200,
"key": "Language",
"value": "Language",
"smart": false
}
]
}
]
}
| Field | Keep or translate? | Purpose |
|---|---|---|
format
|
Keep | File format version. The starter uses 1.
|
locale
|
Set once, then keep the same | Must match localizations[].code.
|
language
|
Set to the displayed language name | Language label carried by the text file. |
tables[].name
|
Keep | Native table name, such as UI.
|
tables[].guid
|
Keep | Identifies the native text table. |
entries[].id
|
Keep | Identifies a native text entry. |
entries[].key
|
Keep | Internal text key. |
entries[].value
|
Translate | Text shown to the player. |
entries[].smart
|
Keep | Native text-processing setting. |
Make a translation
- Change the author, pack ID, and language code and name in
mod.json. - Set each kept file's
localeto the same language code. - Translate the
valuefields. Keep IDs, keys, table names, and placeholders intact. - Remove entries or whole files that you are not translating yet.
- Install the pack, start Dressmaker, then select the language from the Language menu.
Dressmaker uses English for missing lines. Test menus, tutorials, dialogue, and content text in game; valid JSON alone does not show whether a string fits its screen.
Before you share
The starter includes copies of the game's English text. Check that you can redistribute that text before uploading a full copy. A translation-only pack can omit untranslated entries and files. Keep the pack ID and language code stable, and raise version for each update.