aboutsummaryrefslogtreecommitdiff
path: root/README.i18n
diff options
context:
space:
mode:
authormoneromooo-monero <moneromooo-monero@users.noreply.github.com>2015-07-14 20:28:25 +0100
committermoneromooo-monero <moneromooo-monero@users.noreply.github.com>2015-07-14 20:28:25 +0100
commit78b2eabc8753056fd363db6fc449bbcddec9fcb8 (patch)
tree9ef2ef5de473cda7f0fbe794ef972d1cd0d0489f /README.i18n
parentMerge pull request #331 (diff)
downloadmonero-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 'README.i18n')
-rw-r--r--README.i18n45
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.