Skip to content

How to help out with translations

N. Kelly edited this page Oct 17, 2025 · 7 revisions

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.

Disclaimer

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.

Getting Started

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.

Fluent format

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/

Special Markup

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

Metatranslation

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 at landing.cljs and tr-element-with-embedded-content in translations.cljs if you want a little more context/insight into how this works.

Correctness vs. Site Fit

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:

correct

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.

Use the helper userscript

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.

highlight

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.

Clone this wiki locally