# HG changeset patch # User Torsten # Date 1385492882 -3600 # Node ID 5d42ffc6850aa5155428d9422ab78665a565a4ea # Parent 0cd39f7f2409e2101d422b531897c65719a73cad 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 diff -r 0cd39f7f2409 -r 5d42ffc6850a libgui/src/octave-gui.cc --- a/libgui/src/octave-gui.cc Tue Nov 26 02:04:10 2013 -0500 +++ b/libgui/src/octave-gui.cc Tue Nov 26 20:08:02 2013 +0100 @@ -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 (); diff -r 0cd39f7f2409 -r 5d42ffc6850a libgui/src/resource-manager.cc --- a/libgui/src/resource-manager.cc Tue Nov 26 02:04:10 2013 -0500 +++ b/libgui/src/resource-manager.cc Tue Nov 26 20:08:02 2013 +0100 @@ -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