Skip to content

How Translations work in GO

frzyc edited this page Jul 27, 2024 · 1 revision

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

Use the POEditor Github integrations 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.