diff options
Diffstat (limited to 'README.i18n.md')
-rw-r--r-- | README.i18n.md | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/README.i18n.md b/README.i18n.md new file mode 100644 index 000000000..755c5cf38 --- /dev/null +++ b/README.i18n.md @@ -0,0 +1,45 @@ +The Monero command line tools can be translated in various languages. +In order to use the same translation workflow as the future GUI, they +use Qt Linguist translation files. However, to avoid the dependencies +on Qt this normally implies, they use a custom loader to read those +files at runtime. In order to update, or build translations files, you +do need to have Qt tools installed, however. For translating, you need +either the Qt Linguist GUI, or another tool that supports Qt ts files, +such as Transifex. To run, you do not need anything Qt. + +To update ts files after changing source code: + + ./utils/translations/update-translations.sh + +To add a new language, eg Spanish (ISO code es): + + cp translations/monero.ts translations/monero_es.ts + +To edit translations for Spanish: + + linguist translations/monero_es.ts + +To build translations after modifying them: + + ./utils/translations/build-translations.sh + +To test a translation: + + LANG=es ./build/release/bin/monero-wallet-cli + +To add new translatable sources in the source: + + Use the tr(string) function if possible. If the code is in a class, + and this class doesn't already have a tr() static function, add one, + which uses a context named after what lupdate uses for the context, + usually the fully qualified class name (eg, cryptonote::simple_wallet). + If you need to use tr in code that's not in a class, you can use the + fully qualified version (eg, simple_wallet::tr) of the one matching + the context you want. + Use QT_TRANSLATE_NOOP(string) if you want to specify a context manually. + +If you're getting messages of the form: + + Class 'cryptonote::simple_wallet' lacks Q_OBJECT macro + +all is fine, we don't actually need that here. |