Mercurial > hg > octave-nkf
changeset 18020:5d42ffc6850a stable
load translators before welcome wizard and take system language as default
* octave-gui.cc (octave_start_gui): install the translators before a possible
welcome wizard (and as a side effect: before settings are available)
* ressource-manager.cc (config_translators): take actual system language as
default and only try to load the language from the settings if available
author | Torsten <ttl@justmail.de> |
---|---|
date | Tue, 26 Nov 2013 20:08:02 +0100 |
parents | 0cd39f7f2409 |
children | a1210e318be7 |
files | libgui/src/octave-gui.cc libgui/src/resource-manager.cc |
diffstat | 2 files changed, 29 insertions(+), 30 deletions(-) [+] |
line wrap: on
line diff
--- a/libgui/src/octave-gui.cc +++ b/libgui/src/octave-gui.cc @@ -128,9 +128,19 @@ { QApplication application (argc, argv); - // Set the codec for all strings + // Set the codec for all strings (before wizard) QTextCodec::setCodecForCStrings (QTextCodec::codecForName ("UTF-8")); + // install translators for the gui and qt text (before wizard) + QTranslator gui_tr, qt_tr, qsci_tr; + + resource_manager::config_translators (&qt_tr, &qsci_tr, &gui_tr); + + application.installTranslator (&qt_tr); + application.installTranslator (&qsci_tr); + application.installTranslator (&gui_tr); + + // show wizard if this is the first run if (resource_manager::is_first_run ()) { welcome_wizard welcomeWizard; @@ -141,15 +151,6 @@ resource_manager::reload_settings (); - // install translators for the gui and qt text - QTranslator gui_tr, qt_tr, qsci_tr; - - resource_manager::config_translators (&qt_tr, &qsci_tr, &gui_tr); - - application.installTranslator (&qt_tr); - application.installTranslator (&qsci_tr); - application.installTranslator (&gui_tr); - // update network-settings resource_manager::update_network_settings ();
--- a/libgui/src/resource-manager.cc +++ b/libgui/src/resource-manager.cc @@ -100,35 +100,33 @@ QString qt_trans_dir = QLibraryInfo::location (QLibraryInfo::TranslationsPath); + QString language = "SYSTEM"; // take system language per default + QSettings *settings = resource_manager::get_settings (); if (settings) { - // get the locale from the settings - QString language = settings->value ("language","SYSTEM").toString (); - - if (language == "SYSTEM") - language = QLocale::system ().name (); // get system wide locale + // get the locale from the settings if already available + language = settings->value ("language","SYSTEM").toString (); + } - // load the translator file for qt strings - loaded = qt_tr->load ("qt_" + language, qt_trans_dir); + if (language == "SYSTEM") + language = QLocale::system ().name (); // get system wide locale - if (!loaded) // try lower case - qt_tr->load ("qt_" + language.toLower (), qt_trans_dir); + // load the translator file for qt strings + loaded = qt_tr->load ("qt_" + language, qt_trans_dir); - // load the translator file for qscintilla settings - loaded = qsci_tr->load ("qscintilla_" + language, qt_trans_dir); + if (!loaded) // try lower case + qt_tr->load ("qt_" + language.toLower (), qt_trans_dir); - if (!loaded) // try lower case - qsci_tr->load ("qscintilla_" + language.toLower (), qt_trans_dir); + // load the translator file for qscintilla settings + loaded = qsci_tr->load ("qscintilla_" + language, qt_trans_dir); - // load the translator file for gui strings - gui_tr->load (language, get_gui_translation_dir ()); - } - else - { - // FIXME: Is this an error? If so, what should we do? - } + if (!loaded) // try lower case + qsci_tr->load ("qscintilla_" + language.toLower (), qt_trans_dir); + + // load the translator file for gui strings + gui_tr->load (language, get_gui_translation_dir ()); } bool