Translation Tool

It is very easy to use:
Click “:open_file_folder: Load first.json” button to load the file you want to edit. Change the values in the text boxes.
You can also click in the “:open_file_folder: Load second.json” to import a file where you already started translating.
When done, click “:floppy_disk: Save your.json”. The new file will be downloaded.

:bookmark_tabs: Next untranslated” button will jump to the next visible string needing to be translated.

You can hide portions of the json simple clicking on the arrows▼ at each section to collapse it. Collapsed sections will be ignored by the “Next untranslated” button.
You can collapse all sections at once that are already fully translated by clicking the button “:small_red_triangle: Collapse completed blocks”

Yellow colors means that field has untranslated strings. The yellow color will also flow up at each section, so you will know it has a string in it needing your attention.

You will have all your browser tools at your hand. “Ctrl+F” to search things in the page. Spell checking will add those red underlines at misspelled words, etc…

If you guys find errors or have suggestion, just tell me :blush:


Heyho - it is possible to add an option to compare two .json or .less files - because like i know the most difficult part for translators is after an update to find the changes (new lines, removed lines etc.).

something like this (for json) or (for less).

and before some asks the less files are for changes of the UI :wink: and im honest im using the programm beyond compare the compare my 24 files (but its with a price of 60$ not an option for the most of peoples)

load the first file in “en.json” and the second in “your.json”, done. Yellow means both sides are the same.

new lines will be yellow, cause if you don’t have it in your translation, it will not override the default from the first file (i.e. both are equal, yellow)
removed lines don’t matter. they are not there anymore so you don’t need to translate.

What exactly you need to change in the ui? If another mod needs to change it, like a kingdom trying to apply new colors or add a new button it will simple remove all your work.
If it is something important, report to the team so it gets in the default game.

Great work Bruno. I wonder how many speakers of a language there need to be, before translation become relevant? :slight_smile:

hi bruno - nope in the most translations you need to adjust the ui because not every language has the same size/grammar/symbols - for example german is very long so i need to make some uis wider.

and ok so it would need a new programm to add this functions - so i will recommend your website for translations and the named websites for comparing ^^ Thx :smiley:

The ui should auto stretch for longer words. Sometimes the change is easy and doesn’t even mess with other shorter languages, so the team can be warned to include it by default.

Yes, this is for json translation only. To compare other files you need those diff sites. They have function specific for that as some things can’t be used on both. For example in css the code order does matter so if someone flips one line with another the comparator should warn, while in json it does not, so it should not warn.

1 Like

yes i know of the autostretch but its not in all uis and sometimes its needed to be removed (for example citizen-screen) with normal settings it looks awfull ^^

here an example with and without changes:

in the end the first thing would be an font which supports all languages and thats very very very pricy - so lots of moders need to change fontsizes for their own fonts.

Added a compare mode.

You can now load two json and it will highlight only the different lines.

(Press Ctrl+f5 to refresh the site, else you will still see the old layout)


Fixed a critical and very easy to spot bug. It was not saving.
Considering I got no reports about it, I’m guessing no one was using it :sweat_smile:
That is ok. I build this because the other old tool in the forum was not enough for me, too slow and had two bugs where it did not recognize some strings (parts of the game gets no translation) and it also replaced some of your characters (in game it appears as strange symbols)

But I’m also interested in hearing other translators, if there is something needed in the tool that I haven’t saw the need for yet, maybe I’m missing something obvious? If it is something that can help me translate the game better, I’m all ears. So far, (I think) it has all I need.


im pointing some translators for you :wink: @He_Mo @dalabo @law @Estiva @Thijsjetang @Kiyoshi


I will be using this for my mods to easily add the Russian localization. I’m not at the point where I can add such content, though.

1 Like

ähmmm [MOD-849] Русификатор stonehearth Alpha 24 there is already an rus translation from @He_Mo

Currently I’m using notepad++ to compare new and old en.json, and using ATOM to modify my zh-TW.json according to the comparison result manually.

I’ll try the tool someday. :wink:

For my mods, the mods I release. That is, I include both a “en” and “ru-RU” localization inside my mod folder. I don’t want to push effort onto other people that I can do myself. I don’t see why He-Mo has to go through my mod and translate it, when I already can do the same thing.

1 Like

I’m going to check. I used notepad++ a lot in the past, but replaced it with sublime later. The ui and the text highlights was kinda outdated.

That is what I did with Archipelago, it has en and pt. But as I’m also helping with the pt translation mod, it does not matter much :stuck_out_tongue: But it is a nice thing, if every modder also included his own language in his mods.


I was also working on a translation tool but im stuck on JSON reading like how can i read all childs and how should i know how much childs the parent has…

1 Like

I just found out that it’s a good tool in translating new added strings, but not the modified strings.
Is it possible to upload 3 json files?

  1. New source json
  2. Old source json
  3. Translated json

So you can compare 1 & 2 to know the difference and mark it as untranslated in 3.

I know there’s a comparison mode, but after you compare 1 & 2, it’s not easy to locate the string in 3.

P.S. would be better if the removed strings are also considered :stuck_out_tongue_winking_eye:

I will try add an “advanced mode” where those things will be possible. But it will take some time, I’m currently reworking the templates sites.

(But I still do not understand why someone would need to know about removed strings. So far, if a string is removed, nothing will change, it does not matter if you still have a translation for it, the game will simple ignore.)


I just want to keep the whole structure the same as the official json, not more, not less.
And maybe I’m the only one being picky here. :joy:

1 Like

nope im too :wink: but like you now i use beyond compare for this (so i cant be picky xDDD)