Mod Loader/Reference/Translation fields
A translation pack adds a language choice and supplies translated text tables. The translation starter ZIP 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. Check your translation in the menus and dialogue: long button labels may be cut off, and a line that fits in English may need shortening.
Before you share
Remove untranslated entries and files from the ZIP; the game supplies the English fallback. Include the files you translated and mod.json. For updates to the same translation, keep the pack ID and language code and increase version.