Jump to content

Mod Loader/Reference/Translation fields

From Threadbox

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

  1. Change the author, pack ID, and language code and name in mod.json.
  2. Set each kept file's locale to the same language code.
  3. Translate the value fields. Keep IDs, keys, table names, and placeholders intact.
  4. Remove entries or whole files that you are not translating yet.
  5. 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.

Back to the Mod Loader guide