Jump to content

Mod Loader/Reference/Translation fields

From WikiName

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

  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. 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.

Back to the Mod Loader guide