diff options
author | moneromooo-monero <moneromooo-monero@users.noreply.github.com> | 2015-07-14 20:28:25 +0100 |
---|---|---|
committer | moneromooo-monero <moneromooo-monero@users.noreply.github.com> | 2015-07-14 20:28:25 +0100 |
commit | 78b2eabc8753056fd363db6fc449bbcddec9fcb8 (patch) | |
tree | 9ef2ef5de473cda7f0fbe794ef972d1cd0d0489f /README.i18n | |
parent | Merge pull request #331 (diff) | |
download | monero-78b2eabc8753056fd363db6fc449bbcddec9fcb8.tar.xz |
Translatable strings for simplewallet
The system is mostly the Qt system, but we don't use Qt to avoid
the dependencies.
See README.i18n for details.
Diffstat (limited to '')
-rw-r--r-- | README.i18n | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/README.i18n b/README.i18n new file mode 100644 index 000000000..2b913f7d8 --- /dev/null +++ b/README.i18n @@ -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 transations/monero.ts transations/monero_es.ts + +To edit translations for Spanish: + + linguist translations/monero_es.ts + +To build translations after modiying them: + + ./utils/translations/build-translations.sh + +To test a translation: + + LANG=es ./build/release/bin/simplewallet + +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. |