rakhimov/scram

GUI: Present interface languages in sorted order

rakhimov opened this issue · 1 comments

The current order of the interface languages is hard-coded and coupled with internal language indices.
This makes addition of new languages a bit cumbersome:

  • CMake script with translations to compile (coupled w/ Crowdin)
  • The main() function deducing locale and available translations (coupled w/ CMake)
  • Preferences setting the language (coupled w/ the main())
  • UI form presenting the string representation of the interface languages (coupled w/ Preferences)

The new language addition process is simplified to a single step:
add the language ts file name into CMake script.
The available translations are discovered at runtime by the GUI.
This decouples translations from the GUI package
so that they can be distributed/installed separately (no compile time hard coding).