For Translators - TheMysticSword/Localyssation GitHub Wiki

This guide assumes you are using r2modman or Thunderstore Mod Manager.

Setup

  1. Install the required mods:
  2. Download the latest version zip from the Releases page: https://github.com/TheMysticSword/Localyssation/releases
    • Make sure to download TheMysticSword-Localyssation.zip and NOT the source code
  3. Go to your mod manager's settings, then select Browse profile folder, go to BepInEx\plugins\, create a new folder called TheMysticSword-Localyssation and unzip everything from TheMysticSword-Localyssation.zip into that new folder

Creating a new language

  1. Launch the game
  2. Go to mod settings (Settings > Mods > Localyssation)
  3. Enable Translator Mode and apply the settings
  4. Restart the game
  5. Go to mod settings again, and make sure that Translator Mode is on, and that new options have appeared
  6. Close the game
  7. Go to the TheMysticSword-Localyssation folder you created during installation. You should see a new folder called defaultLanguage inside of it. Copy it into the plugins folder, and rename it to anything you want.
  8. Open the folder you just renamed. This will be your language's folder.
  9. Open localyssationLanguage.json with any text editor and change the following values in such ways:
    • code - every language must have a unique code. A good format to follow is the IETF language tag standard (en-US, en-GB, es-419, ru-RU, etc.)
    • name - the name of the language that will be displayed inside the game
    • autoShrinkOverflowingText - set to true only if you want the mod to attempt to automatically shrink text if it overflows. Experimental feature, not guaranteed to help all the time.
  10. Open strings.tsv in a table editor, or in any text editor:
    • The values under the key column should NOT be changed
    • The values under the value are the translated strings of text that will show up in the game when your language is selected. You can change those.
  11. Open the game
  12. Go to Settings > Mods > Localyssation and select your new language

Tips

  • Use the Translator Mode options to make the process of creating a translation more convenient:
    • Create Default Language Files On Load can be turned off after you've created the default language files once. When this option is on, it will create the files on every game load, which slows down the loading times.
    • Reload Language Keybind allows you to reload your language files inside the game, without having to relaunch it. Use it to test your translation changes instantly! (This might not work properly on certain text, such as dialogue lines, popup text notifications, chat messages, etc.)
    • Add Missing Keys to Current Language finds every default language string that is missing in your current language, and saves it to your language's file. You can use this to easily add new strings that got added after a mod update.
    • Log Untranslated Strings will print every string that is not changed from its original value in the BepInEx log console and the LogOutput.log file (can be found in the BepInEx folder; click "Browse profile folder" in r2modman settings to find it)
  • You can wrap your translated text in special tags to achieve certain things:
    • <firstupper> - the first letter of the string inside this tag will be changed to the uppercase variant
      • Example: slime <firstupper>diva</firstupper> will be changed into slime Diva
    • <firstlower> - the first letter of the string inside this tag will be changed to the lowercase variant
      • Example: Slime <firstlower>Diva</firstlower> will be changed into Slime diva
    • <scale=1.0> - text in this tag will have its scale multiplied by the amount provided in the argument
      • Example: Slime <scale=0.8>Diva</scale> will resize the word "Diva" to 80% of its original size
      • This is particularly useful for shrinking text that otherwise wouldn't fit in the UI
  • Some strings support optional variants for translation flexibility, formatted as <key>_VARIANT_<variant name>:
    • Player classes' NAME string can have an OF variant, currently used for the Skills tab menu for class-specific skill tabs and skillbooks
      • Example usage: PLAYER_CLASS_FIGHTER_NAME_VARIANT_OF = of a fighter and TAB_MENU_CELL_SKILLS_CLASS_HEADER = Skillbook {0} will produce "Skillbook of a fighter" instead of "Fighter Skillbook"
    • Creeps' NAME string can have an optional MANY variant, used whenever an enemy's name must be in plural
      • Example usage: CREEP_SLIME_DIVA_NAME_VARIANT_MANY = Slime Divas and FORMAT_QUEST_PROGRESS_CREEPS_KILLED = {0} slain will produce "Slime Divas slain"
      • You can also add your own <number> variants if plural names are different on your language at specific numbers, e.g. CREEP_SLIME_DIVA_NAME_VARIANT_4
        • The mod will first look for a VARIANT_<number> string. If not found, it will try to look for a VARIANT_MANY one. If neither exist, the default singular creep name will be used.
    • Creeps' NAME string can have an optional QUEST_KILLED variant, used for creep names written specifically for quest enemy kill requirements
      • Example usage: CREEP_SLIME_DIVA_NAME_VARIANT_QUEST_KILLED = of Slime Divas and FORMAT_QUEST_PROGRESS_CREEPS_KILLED = Murders {0} will produce "Murders of Slime Divas"
      • If used with MANY and <number> variants, the QUEST_KILLED part must be after the plural part, e.g. CREEP_SLIME_DIVA_NAME_VARIANT_5_VARIANT_QUEST_KILLED
    • FORMAT_QUEST_PROGRESS_CREEPS_KILLED can have MANY and <number> variants that function similarly to creep names' MANY and <number>
⚠️ **GitHub.com Fallback** ⚠️