-
Notifications
You must be signed in to change notification settings - Fork 403
How to help out with translations
We don't (currently) have any specifically streamlined tools for translations, so most of this will have to be done manually. You should have a strong command of both english, and the language you want to translate to, and a slightly higher than basic level of technical proficiency.
Both Netrunner itself, and Jinteki.net are constantly evolving. Sometimes translations will get out of date, ui elements will change (facilitating the need to update a few translations), or new features will be added. We don't expect you to treat this like a job, or to perpetually keep it up to date. Have fun, do what you like, and try not to stress about it.
You will need to set up a local instance of jinteki. You can do this by following the instructions on the front page.
Once you've done this, the next step is to look at the following files:
resources/public/i18n/en.ftl
resources/public/i18n/[language-im-proficient-in].ftl
Currently, we have support for the following languages:
Language | File |
---|---|
Catalan | ca.ftl |
German | de.ftl |
English | en.ftl |
Spanish | es.ftl |
French | fr.ftl |
Italian | it.ftl |
Japanse | ja.ftl |
Korean | ko.ftl |
Pig Latin | la-pig.ftl |
Polish | pl.ftl |
Portuguese | pt.ftl |
Russian | ru.ftl |
Simplified Chinese | zh-simp.ftl |
Traditional Chinese | zh-trad.ftl |
If you want a language added, have a chat and we can probably do that.
https://projectfluent.org/fluent/guide/index.html
Have a read through this: https://projectfluent.org/fluent/guide/index.html Have a play around with the fluent playground here: https://projectfluent.org/play/
In some instances, we need to render icons in text, including translated text. These are usually things like the credit or click symbols, but can include faction logos, all the game icons, etc. 99% of the time, if you need to do this, the english translation for that blob will have that already, so you can just copy it from there.
A few examples:
-
[Credits]
-> credit -
[Click]
-> click -
[Adam]
-> Adam's logo -
[Criminal]
-> Criminal logo
In some special cases (ie, when a url gets mixed into a sentence), we need to go a little bit beyond plain Fluent.
- In these cases, hiccup is passed in to be composited after the translation is done
- Placeholders within the translation will get replaced
- The placeholders will be in square brackets, like
[email]
or[link]
. These are distinct from the substitutions fluent itself uses, and fluent does not know they exist. - See the landing page for examples of where this is used. Look at keys
landing_jinteki-is-free
,landing_report-here
for usage, and optionally look atlanding.cljs
andtr-element-with-embedded-content
intranslations.cljs
if you want a little more context/insight into how this works.
Note that in some cases, even if a translation is technically correct, it will not fit within the UI. If possible, test out your translations and check that they fit before submitting them. This can be either manually, editing the nodes via your web-browser, or by adjusting the ftl files and checking on a local instance.
Here's an example:

This translation is correct (I think), but it does not fit within the UI. It's possible that the french could just get away with "Deck Corpo", or instead drop the word "deck" and get something that fits nicely.
- In some cases, you may opt to change our css or layout rules if that works nicer. If you have the aptitude to do that, and believe it's a better change, then feel free to do so.
- You may also pick things that are different, but have the same spirit and will be understood in the same way - ie "create corp deck" instead of "new corp deck" if that text happened to fit better.
I've designed a userscript to help out with translating. You can install it here (it wont work until the patch around the end of October, 2025): https://greasyfork.org/en/scripts/552721-translation-helper
If you install this script, then (while it is active) it will highlight all text which does not have a translation for the target language.
See here for an example.

Then, if you alt+click on one of these, it will open up ftl playground with the translation key, any relevant parameters loaded, and the english reference for you to work off.
You can play around here and make sure you have something with valid syntax.
Then, either manually edit the dom node or paste what you have into your working ftl file and ensure that it looks good/doesn't break any formatting.