Erannorth Chronicles

Erannorth Chronicles

Not enough ratings
Creating new Translations (Localization Mods) # Hands on Modding
By [ER] Raven
Hi folks,

In this guide I'll show you how you can create your own translation mods (or mods that simply change how the card rules display, enhance the codex entries etc). Let's get started!
   
Award
Favorite
Favorited
Unfavorite
Localization Files Structure
While in Erannorth Reborn, the localization was a single large json file, in Erannorth Chronicles the Localization is broken into multiple json files that each covers a separate section.

They are all located in C:\SteamLibrary\steamapps\common\Erannorth Chronicles\Erannorth Chronicles_Data\StreamingAssets\Content\Expansions\Erannorth Chronicles\Localization

Localization/English.json

This is the first file you need to copy, rename and edit to set the language to an English variant of your language.

So if I was to make a Greek translation I'd change the contents from

{
"Language": "English",
"Compatibility": "Erannorth Chronicles",
"HasUserModifications": "No"
}

to

{
"Language": "Greek",
"Compatibility": "Erannorth Chronicles",
"HasUserModifications": "No"
}

AND also rename this file to Greek.json

The actual translation strings

The actual translation strings are located in the following files:

  • English_Card Rules.json
  • English_Codex.json
  • English_Combat Log.json
  • English_Game Mode Rules.json
  • English_Status Effects.json
  • English_Tooltips.json
  • English_Tutorial.json
  • English_UI.json

I need to copy these files and then rename them from "English_blah.json" to "Greek_blah.json"

ie.

  • Greek_Card Rules.json
  • Greek_Codex.json
  • Greek_Combat Log.json
  • Greek_Game Mode Rules.json
  • Greek_Status Effects.json
  • Greek_Tooltips.json
  • Greek_Tutorial.json
  • Greek_UI.json

In these files you will find many entries in the following format:

"Key":"Translation"

ie.

"MainMenuContinue":"Load/Save Progress",

could be in Greek

"MainMenuContinue":"Επαναφορά/Σώσιμο Προόδου",

or in French (according to google translate)

"MainMenuContinue":"Charger / enregistrer la progression",

etc.

And repeat my way to all the files. Any HTML tags <TAG> or number placeholders {0},{1} etc. must be left intact.
Localization Mod Structure
Once all 9 json files are ready and translated, you can convert them into a Mod.

For example, in `/Mods/My Translation/`:

You should place all your files in `/Mods/My Translation/Localization/`.

Important: Do not include the {Language} descriptor in the mod name. Naming your mod something like 'Greek' or 'Greek Translation' could result in complications during file parsing.

Next, create a `ModLoaderUser.conf` file at `/Mods/My Translation/ModLoaderUser.conf` containing the following two lines:

>> Language
Greek

That's all there is to it. However, remember that merely restarting the Mod Manager will not suffice if you're changing a translation mod. You must fully restart the game.

To verify that everything is functioning as expected, aside from the apparent translation of various strings to your native language, head to the Player's Handbook and search for "Fallback".

If any cards are displayed there with fallback text, then there may be an issue with your mod. It's possible that a tag was replaced, or perhaps a numerical placeholder was removed.
If only that was enough...
By now you have most of the UI, Codex and Cards translated to your language. But this doesn't cover the perks, journal entries, all events in general etc.

Translating Perk descriptions

The perks descriptions are defined along with Perks. in /Perks/ ie. PerksDB.Core.tdb

This is how a Perk looks:

Master Assassin, 275, Anatomy Lessons II
→ Acid Affinity +2.<br>→ [All Actions] Damage +1.<br>→ [All Actions] Venom +2.<br>→ 'Envenomed' Enemies lose 3 HP before they act.
PerkTree:Assassin, ProficiencyAcid:2, ModifyEffectVenom:2, ModifyEffectDOTEnvenomed:3, ModifyEffectDamage:1

Τhe line "→ Acid Affinity +2.<br>→ [All Actions] Damage +1.<br>→ [All Actions] Venom +2.<br>→ 'Envenomed' Enemies lose 3 HP before they act." can be anything you like.

You then need to add your own translated perk definition file in your mod.

Translating Events, Class Descriptions, Game Mode Descriptions etc.

Events, Class & Race, Game Modes etc all these are on their own files, and as you can change anything in them you can also translate and override them in a similar fashion.

Recommended Order?

If I was to translate the game in Greek. I would start with the Localization file, then translate the Perk descriptions and finally the Events, Class Descriptions & Game Mode Descriptions.

Translating Card or Perk Names

It's possible, but wouldn't recommend it. You'd have to use an editor that works with projects like Visual Studio, and then make sure that the Name you replace is also replaced wherever else it's referenced. i.e Archetypes or other cards, which can mess up things if you aren't careful.
Conclusion
As you can see, it's a pretty huge undertaking, but:

If your language characters aren't supported, you come at dead ends, or need help, further instructions etc. Let me know to help! You can also use the forum or discord to create groups and break down the various translatable things to different projects. ;)
35 Comments
[ER] Raven  [author] 21 Aug, 2023 @ 2:37am 
You can make a unified translation, and simply list all DLCs as dependencies on the Steam Workshop page after uploading your mod. This will inform users that the absence of a specific DLC might lead to unpredictable issues.

--

Regardless of the initial mod issue, it's on the game side. Specifically, the problem arises when naming the local mod in the same manner as the language files. For instance, you can name your local mod folder anything you like, but avoid names containing 'Ukraine', such as "My Translation". For the time being, I'll update the guide accordingly, until I modify the game code to address this situation.

You should then place your files in the following locations:

Mods/My Translation/Localization/Ukraine.json
Mods/My Translation/Localization/Ukraine_UI.json
...
etc.
Mods/My Translation/ModLoaderUser.conf

This won't pose a problem with the Steam Workshop since folders are assigned a random ID for their names.
LOKot555 21 Aug, 2023 @ 2:02am 
I'm afraid that my translation, which includes content from all dlc, may break the game for users who have not purchased all dlc or want to try only the base game without add-ons.
I have an option to make a separate translation for each dlc, but this will slow down the translation quite a bit because I will have to separate all the content, support six projects and mods instead of one.
Now I already have 100 out of 177 ink files translated. After I finish, I want to publish the translation, and based on the results of the feedback, if any, I will continue to translate additional information (races of perks, etc.) and throw a lot of questions at you )))
[ER] Raven  [author] 21 Aug, 2023 @ 1:50am 
The game already has a function for modders to enable or disable specific parts of their content to avoid conflicts. At the Steam level, you can verify if the DLC has been purchased and installed, which can then enable certain perks or backgrounds with specific requirements. For example, the Overlord background has a requirement because it needs allies from certain expansions.

However, enforcing this check to prevent unauthorized access to my DLCs offers no real advantage. Those who wish to pirate them can easily find ways on Google.
LOKot555 21 Aug, 2023 @ 1:36am 
Don't you want to implement this check at the code level?
[ER] Raven  [author] 21 Aug, 2023 @ 1:11am 
True, If all elements of the DLC (cards, enemies, perks, etc.) are included in the translation, players can access and use the DLCs for free. However, if any element is omitted, they might experience various bugs. Events can reward cards, spawn enemies, etc.

The Steam workshop does provide an option to label content as incompatible if the required DLCs are not present. And while this doesn't stop those without the DLCs from subscribing, it does help minimize potential issues.

I genuinely hope anyone using the translated content would choose to support the original work by purchasing the DLCs. I cannot prevent every possible unauthorized method of accessing the DLC content, but translations have my blessings. I do trust in our community's integrity.
LOKot555 21 Aug, 2023 @ 12:27am 
Hi. I have another question. When will I include content from paid dlc in the translation. For example, from Untold Tales and Legends - Inklets, Actions and so on. Will this not allow people who have not purchased these dlc to play?
[ER] Raven  [author] 20 Aug, 2023 @ 4:44am 
The only way to fully localize the game, is to override every single file in the Expansions/ folder.
[ER] Raven  [author] 20 Aug, 2023 @ 4:41am 
The condition parts for temporary ripple effects can be anything, and can't be generated automatically. They are defined manually in the ExtraRule:text field of each card's entry. That can only be translated by editing the cards themselves.
LOKot555 20 Aug, 2023 @ 4:31am 
And same text not add in English_Card Rules.json

Sample card The Art of Elemental Magic, Legendary
Whenever an Enemy leaves play this turn; Draw 1
LOKot555 20 Aug, 2023 @ 3:54am 
I found that localization works if you put the files
Ukraine.json
Ukraine_Card Rules.json
Ukraine_Codex.json
Ukraine_Combat Log.json
Ukraine_Game Mode Rules.json
Ukraine_Status Effects.json
Ukraine_Tooltips.json
Ukraine_Tutorial.json
Ukraine_UI.json

in the folder

Expansions\Erannorth Chronicles\Localization and enable the mod