Allow setting UI language from commandline (implements #678)

This commit is contained in:
Wladimir J. van der Laan 2012-02-17 18:44:39 +01:00
parent a3f3e54eee
commit 72075edafb
2 changed files with 7 additions and 2 deletions

View file

@ -197,6 +197,9 @@ bool AppInit2(int argc, char* argv[])
" -connect=<ip> \t\t " + _("Connect only to the specified node") + "\n" + " -connect=<ip> \t\t " + _("Connect only to the specified node") + "\n" +
" -irc \t " + _("Find peers using internet relay chat (default: 0)") + "\n" + " -irc \t " + _("Find peers using internet relay chat (default: 0)") + "\n" +
" -listen \t " + _("Accept connections from outside (default: 1)") + "\n" + " -listen \t " + _("Accept connections from outside (default: 1)") + "\n" +
#ifdef QT_GUI
" -lang=<lang> \t\t " + _("Set language, for example \"de_DE\" (default: system locale)") + "\n" +
#endif
" -dnsseed \t " + _("Find peers using DNS lookup (default: 1)") + "\n" + " -dnsseed \t " + _("Find peers using DNS lookup (default: 1)") + "\n" +
" -banscore=<n> \t " + _("Threshold for disconnecting misbehaving peers (default: 100)") + "\n" + " -banscore=<n> \t " + _("Threshold for disconnecting misbehaving peers (default: 100)") + "\n" +
" -bantime=<n> \t " + _("Number of seconds to keep misbehaving peers from reconnecting (default: 86400)") + "\n" + " -bantime=<n> \t " + _("Number of seconds to keep misbehaving peers from reconnecting (default: 86400)") + "\n" +

View file

@ -162,11 +162,13 @@ int main(int argc, char *argv[])
ParseParameters(argc, argv); ParseParameters(argc, argv);
// Load language files for system locale: // Get desired locale ("en_US") from command line or system locale
QString lang_territory = QString::fromStdString(GetArg("-lang", QLocale::system().name().toStdString()));
// Load language files for configured locale:
// - First load the translator for the base language, without territory // - First load the translator for the base language, without territory
// - Then load the more specific locale translator // - Then load the more specific locale translator
QString lang_territory = QLocale::system().name(); // "en_US"
QString lang = lang_territory; QString lang = lang_territory;
lang.truncate(lang_territory.lastIndexOf('_')); // "en" lang.truncate(lang_territory.lastIndexOf('_')); // "en"
QTranslator qtTranslatorBase, qtTranslator, translatorBase, translator; QTranslator qtTranslatorBase, qtTranslator, translatorBase, translator;