Translate the App (i18n)
This ticket will track the effort to add internationalization (i18n) to the BusKill app such that things like the "arm" button, tooltips, labels in the navigation drawer, settings/options names/descriptions are automatically changed to the system's locale or whatever language is defined in the BusKill settings.
IMHO, it's not so important to provide translations to our documentation, which can trivially be translated by the user with tools like Google Translate. The text in the app, however, can't just be copied & pasted into a translator. So i18n of the app takes priority over i18n of the docs.
After English, I think the most-common langauge of our users is German. I welcome translations to any language that users want to contribute, but here's a list of languages in-order of mother tongue of most of our users to less of our users:
- English
- German
- Dutch
- Spanish
- French
- Japanese
- Czech
- Arabic
- Russian
- Chinese (Mandarin?)
- Portuguese
- Finnish
- Swedish
- Norwegian
- Korean
- Romanian
- Turkish
- Thai
- Greek
- Italian
- Polish
- Hungarian
- Indonesian
- Slovak
- Serbian
- Croatian
- Mongolian
- Lithuanian
Therefore, I think
- The first deliverable of this ticket would be to modify the app to actually support i18n through some sort of abstraction (using
.pofiles or whatever is the "pythonic" approach here) to only English and German. After that, I think - The next deliverable is to setup some sort of automated machine translation to all the other languages above (they can be refined later by a human, but machine translation is better than nothing). Ideally this would just be some script that takes the English strings and a set of destination languages and spits-out new translated strings for the given destination languages.
I'm actually wondering if it makes more sense to just automate translations at CI time
TODO: look into using apertium (or similar) for offline translations at build-time