Support for translation prototype
|Reported by:||jvprat||Owned by:||sev-|
I've been doing a prototype for messages translation based on the proposal written to -devel. I've separated it in 3 files just for readability. All three patches have to be applied in order to get it working.
translation-infrastructure.patch: It's what does the work.
translation-marked-messages.patch: It marks several strings from the source code for translation
translation-example-po.patch: It contains example translation files for catalan and spanish (just to test, not complete at all)
It's currently aiming at having a different font for each character set. If later there's a rework on the GUI to support unicode font rendering, the only change needed here would be to convert the po files to the desired character set.
As I said it's just a prototype to let you cast your opinions and rants about it. Here's the current status:
- can be disabled (no extra charge for small devices)
- uses po2c to build a cpp file that contains the translations
- no extra runtime dependencies
- po files have to be coded in the character set of the GUI font
- optional support for detecting locale language at runtime
- optional support for converting messages to terminal character set (which can be different than the GUI one)
- add a GUI option to select the language in the misc tab
- get a list of supported languages
- change font when selecting a language (one can get the translation character set)
- use configuration to use previously selected language ("" uses the system default)
- mark all the translatable strings
- change size of some GUI labels to let translations longer than the original
- which strings should be translated? All? Just the user-visible (excluding debugging and internal error ones)?
- there are LOTS of debugging/internal error ones that will never be seen by the end user and will confuse translators
Please, let me know your opinions, both constructive and destructive ;) (if you prefer another approach)
Ticket imported from: #1739965. Ticket imported from: patches/800.