diff options
Diffstat (limited to 'qt-gui.cpp')
-rw-r--r-- | qt-gui.cpp | 42 |
1 files changed, 17 insertions, 25 deletions
diff --git a/qt-gui.cpp b/qt-gui.cpp index 08eb9d538..5127b7ba8 100644 --- a/qt-gui.cpp +++ b/qt-gui.cpp @@ -36,6 +36,7 @@ #include <QNetworkProxy> #include <QDateTime> #include <QRegExp> +#include <QLibraryInfo> #include <gettextfromc.h> #define tr(arg) gettextFromC::instance()->tr(arg) @@ -45,31 +46,6 @@ const char *default_dive_computer_product; const char *default_dive_computer_device; DiveComputerList dcList; -#if 0 -class Translator: public QTranslator -{ - Q_OBJECT - -public: - Translator(QObject *parent = 0); - ~Translator() {} - - virtual QString translate(const char *context, const char *sourceText, - const char *disambiguation = NULL) const; -}; - -Translator::Translator(QObject *parent): - QTranslator(parent) -{ -} - -QString Translator::translate(const char *context, const char *sourceText, - const char *disambiguation) const -{ - return gettext(sourceText); -} -#endif - static QApplication *application = NULL; static MainWindow *window = NULL; @@ -108,6 +84,22 @@ void init_ui(int *argcp, char ***argvp) QCoreApplication::setApplicationName("Subsurface"); xslt_path = strdup(getSubsurfaceDataPath("xslt").toAscii().data()); + QLocale loc; + if (loc.uiLanguages().first() != "en-US") { + qtTranslator = new QTranslator; + if (qtTranslator->load(loc,"qt", "_", QLibraryInfo::location(QLibraryInfo::TranslationsPath))) { + application->installTranslator(qtTranslator); + } else { + qDebug() << "can't find Qt localization for locale" << loc.uiLanguages().first(); + } + ssrfTranslator = new QTranslator; + if (ssrfTranslator->load(loc,"subsurface", "_")) { + application->installTranslator(ssrfTranslator); + } else { + qDebug() << "can't find Subsurface localization for locale" << loc.uiLanguages().first(); + } + } + QSettings s; s.beginGroup("GeneralSettings"); prefs.default_filename = getSetting(s, "default_filename"); |