danicoin/i18n.md
Klaus-Uwe Mitterer 76a39d127b Move i18n readme
2018-01-24 16:58:06 +01:00

1.9 KiB

Danicoin daemon internationalization

The Danicoin command line tools can be translated in various languages.

Tools for translators

In order to create, update or build translations files, you need to have Qt tools installed. For translating, you need either the Qt Linguist GUI (part of QT Creator or a 3rd-party standalone version), or another tool that supports Qt ts files, such as Transifex. The files are XML, so they can be edited in any plain text editor if needed.

Creating / modifying translations

You do not need anything from Qt in order to use the final translations.

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 strings in the source code:

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.