Skip to content

How Translations work in GO

Van Nguyen edited this page Oct 13, 2025 · 2 revisions

GO/SRO is localized across 14 languages. This wiki seeks to explain how translations are structured in this project, as well as provide instructions towards several workflows.

Structure

Translation Types

GO has two main types of translations:

  • Manual Translations: Translations made by real humans
  • Game Translations: Translations extracted from the datamine, from in-game.

Translation Libs

Since GO is a mono-repo, it takes advantage of the libraries to separate each translation related modules into their own namespace.

  • common-localization libs/common/localization - Holds common translations shared between GO and SRO, as well the "master" translation files from POEditor, as well as some scripts to export the master files into their respective namespace libraries.
  • gi-localization libs/gi/localization - Holds all the manual translations for GO.
  • sr-localization libs/sr/localization - Holds all the manual translations for SRO.
  • gi-dm-localization libs/gi/dm-localization - Holds all the game translations for GO.
  • sr-dm-localization libs/sr/dm-localization - Holds all the game translations for SRO.
  • TODO: silly wisher translations?

Working with translations

Adding English Translations to the site

Since the main development for GO/SRO is English, only the english translations needs to be added.

  • Add to libs/gi/localization/assets/locales/en only

Uploading Translations to POEditor

Run nx gen-file common-localization will create a libs\common\localization\main_gen.json. This file is a combination of all the common/gi/sr namespaced translations, and can be uploaded directly to POEditor.

Updating Translations from POEditor

Create a branch on the repo called localization, then use the POEditor Github Integration to download non-english translations into /libs/common/localization/Translated, and run nx gen-file common-localization to propagate the translations into their respective namespaces.

  • Note: Selecting a language with 0% to export will cause a silent failure. Only export languages with > 0% completion.

Clone this wiki locally