X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=pv%2Fapplication.cpp;h=8252f27fb0c1e87ffbf97a2cf24b269b8ecfa6b7;hb=516b0c4163547a969da7686702c043e7e0335419;hp=67e0444f435b53fa8c67ae3f51a6058db0ba7e37;hpb=380f4ee6f9e2995084afd395698b7eafc7012942;p=pulseview.git diff --git a/pv/application.cpp b/pv/application.cpp index 67e0444f..8252f27f 100644 --- a/pv/application.cpp +++ b/pv/application.cpp @@ -22,6 +22,7 @@ #include #include +#include #include #include @@ -64,7 +65,7 @@ Application::Application(int &argc, char* argv[]) : setOrganizationDomain("sigrok.org"); } -QStringList Application::get_languages() +const QStringList Application::get_languages() const { QStringList files = QDir(":/l10n/").entryList(QStringList("*.qm"), QDir::Files); @@ -72,7 +73,7 @@ QStringList Application::get_languages() result << "en"; // Add default language to the set // Remove file extensions - for (QString file : files) + for (const QString& file : files) result << file.split(".").front(); result.sort(Qt::CaseInsensitive); @@ -80,10 +81,19 @@ QStringList Application::get_languages() return result; } +const QString Application::get_language_editors(const QString& language) const +{ + if (language == "de") return "Sören Apel, Uwe Hermann"; + if (language == "es_mx") return "Carlos Diaz"; + + return QString(); +} + void Application::switch_language(const QString& language) { removeTranslator(&app_translator_); removeTranslator(&qt_translator_); + removeTranslator(&qtbase_translator_); if ((language != "C") && (language != "en")) { // Application translations @@ -94,11 +104,20 @@ void Application::switch_language(const QString& language) qWarning() << "Translation resource" << resource << "not found"; // Qt translations - resource = ":/l10n/qtbase_" + language +".qm"; - if (qt_translator_.load(resource)) + QString tr_path(QLibraryInfo::location(QLibraryInfo::TranslationsPath)); + + if (qt_translator_.load("qt_" + language, tr_path)) installTranslator(&qt_translator_); else - qWarning() << "Translation resource" << resource << "not found"; + qWarning() << "QT translations for" << language << "not found at" << + tr_path << ", Qt translations package is probably missing"; + + // Qt base translations + if (qtbase_translator_.load("qtbase_" + language, tr_path)) + installTranslator(&qtbase_translator_); + else + qWarning() << "QT base translations for" << language << "not found at" << + tr_path << ", Qt translations package is probably missing"; } if (!topLevelWidgets().empty()) {