From 40546f9a93c2515f84b22e96b1e49ca3d48177c2 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Mon, 20 Apr 2009 16:41:06 +0200 Subject: [PATCH] load translations --- src/app/main.cpp | 26 +++++++++++++++++++++++ src/plugins/designer/formeditorplugin.cpp | 11 ++++++++++ src/plugins/help/helpplugin.cpp | 10 +++++++++ 3 files changed, 47 insertions(+) diff --git a/src/app/main.cpp b/src/app/main.cpp index 69c7aff13d2..eb403eebdf2 100644 --- a/src/app/main.cpp +++ b/src/app/main.cpp @@ -38,6 +38,9 @@ #include #include #include +#include +#include +#include #include #include @@ -197,6 +200,12 @@ static inline QStringList getPluginPaths() return rc; } +#ifdef Q_OS_MAC +# define SHARE_PATH "/../Resources" +#else +# define SHARE_PATH "/../share/qtcreator" +#endif + int main(int argc, char **argv) { #ifdef Q_OS_DARWIN @@ -208,6 +217,23 @@ int main(int argc, char **argv) #endif SharedTools::QtSingleApplication app((QLatin1String(appNameC)), argc, argv); + + QTranslator translator; + QTranslator qtTranslator; + const QString &locale = QLocale::system().name(); + if (translator.load(QLatin1String("qtcreator_") + locale, + QCoreApplication::applicationDirPath() + + QLatin1String(SHARE_PATH "/translations"))) { + if (qtTranslator.load(QLatin1String("qt_") + locale, + QLibraryInfo::location(QLibraryInfo::TranslationsPath))) { + app.installTranslator(&translator); + app.installTranslator(&qtTranslator); + app.setProperty("qtc_locale", locale); + } else { + translator.load(QString()); // unload() + } + } + // Load ExtensionSystem::PluginManager pluginManager; pluginManager.setFileExtension(QLatin1String("pluginspec")); diff --git a/src/plugins/designer/formeditorplugin.cpp b/src/plugins/designer/formeditorplugin.cpp index d77c4af23b9..39b1e17775b 100644 --- a/src/plugins/designer/formeditorplugin.cpp +++ b/src/plugins/designer/formeditorplugin.cpp @@ -44,9 +44,12 @@ #include #include +#include #include #include #include +#include +#include #ifdef CPP_ENABLED # include @@ -115,6 +118,14 @@ bool FormEditorPlugin::initialize(const QStringList &arguments, QString *error) FormEditorW::ensureInitStage(FormEditorW::RegisterPlugins); } + QString locale = qApp->property("qtc_locale").toString(); + if (!locale.isEmpty()) { + QTranslator *qtr = new QTranslator(this); + qtr->load(QLatin1String("designer_") + locale, + QLibraryInfo::location(QLibraryInfo::TranslationsPath)); + qApp->installTranslator(qtr); + } + error->clear(); return true; } diff --git a/src/plugins/help/helpplugin.cpp b/src/plugins/help/helpplugin.cpp index e9d833de344..093eacdf442 100644 --- a/src/plugins/help/helpplugin.cpp +++ b/src/plugins/help/helpplugin.cpp @@ -58,6 +58,8 @@ #include #include #include +#include +#include #include #include #include @@ -129,6 +131,14 @@ bool HelpPlugin::initialize(const QStringList &arguments, QString *error) QList modecontext; modecontext << m_core->uniqueIDManager()->uniqueIdentifier(Constants::C_MODE_HELP); + QString locale = qApp->property("qtc_locale").toString(); + if (!locale.isEmpty()) { + QTranslator *qtr = new QTranslator(this); + qtr->load(QLatin1String("assistant_") + locale, + QLibraryInfo::location(QLibraryInfo::TranslationsPath)); + qApp->installTranslator(qtr); + } + // FIXME shouldn't the help engine create the directory if it doesn't exist? QFileInfo fi(m_core->settings()->fileName()); QDir directory(fi.absolutePath()+"/qtcreator");