For Translators - TheMysticSword/Localyssation GitHub Wiki
This guide assumes you are using r2modman or Thunderstore Mod Manager.
- Install the required mods:
- 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
- Go to your mod manager's settings, then select Browse profile folder, go to
BepInEx\plugins\
, create a new folder calledTheMysticSword-Localyssation
and unzip everything from TheMysticSword-Localyssation.zip into that new folder
- Launch the game
- Go to mod settings (Settings > Mods > Localyssation)
- Enable
Translator Mode
and apply the settings - Restart the game
- Go to mod settings again, and make sure that Translator Mode is on, and that new options have appeared
- Close the game
- Go to the
TheMysticSword-Localyssation
folder you created during installation. You should see a new folder calleddefaultLanguage
inside of it. Copy it into theplugins
folder, and rename it to anything you want. - Open the folder you just renamed. This will be your language's folder.
- 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 totrue
only if you want the mod to attempt to automatically shrink text if it overflows. Experimental feature, not guaranteed to help all the time.
-
- 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.
- The values under the
- Open the game
- Go to Settings > Mods > Localyssation and select your new language
- 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 theBepInEx
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 intoslime Diva
- Example:
-
<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 intoSlime diva
- Example:
-
<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
- Example:
-
- Some strings support optional variants for translation flexibility, formatted as
<key>_VARIANT_<variant name>
:- Player classes'
NAME
string can have anOF
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
andTAB_MENU_CELL_SKILLS_CLASS_HEADER = Skillbook {0}
will produce "Skillbook of a fighter" instead of "Fighter Skillbook"
- Example usage:
- Creeps'
NAME
string can have an optionalMANY
variant, used whenever an enemy's name must be in plural- Example usage:
CREEP_SLIME_DIVA_NAME_VARIANT_MANY = Slime Divas
andFORMAT_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 aVARIANT_MANY
one. If neither exist, the default singular creep name will be used.
- The mod will first look for a
- Example usage:
- Creeps'
NAME
string can have an optionalQUEST_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
andFORMAT_QUEST_PROGRESS_CREEPS_KILLED = Murders {0}
will produce "Murders of Slime Divas" - If used with
MANY
and<number>
variants, theQUEST_KILLED
part must be after the plural part, e.g.CREEP_SLIME_DIVA_NAME_VARIANT_5_VARIANT_QUEST_KILLED
- Example usage:
-
FORMAT_QUEST_PROGRESS_CREEPS_KILLED
can haveMANY
and<number>
variants that function similarly to creep names'MANY
and<number>
- Player classes'