diff options
author | Riccardo Spagni <ric@spagni.net> | 2017-06-24 12:40:15 +0200 |
---|---|---|
committer | Riccardo Spagni <ric@spagni.net> | 2017-06-24 12:40:15 +0200 |
commit | f09f18fc64db8c2d54ff58ec3fa451a067f1561f (patch) | |
tree | 7eba1a89a4e08df2835406718c3a7789f78653bd /README.i18n.md | |
parent | Merge pull request #1992 (diff) | |
parent | Converting README.i18n to Markdown (diff) | |
download | monero-f09f18fc64db8c2d54ff58ec3fa451a067f1561f.tar.xz |
Merge pull request #2069
11de4d59 Converting README.i18n to Markdown (Jonathan Cross)
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. |