From b81e4410eaf429d1b33ee0c6ccdf7c9ab5fe5fc7 Mon Sep 17 00:00:00 2001 From: Lasse Liehu Date: Fri, 21 Dec 2012 03:47:50 +0200 Subject: [PATCH] Fix showing of translations in crash reporter --- CMakeLists.txt | 2 ++ src/CMakeLists.txt | 2 +- src/TomahawkApp.cpp | 42 +---------------------- src/TomahawkApp.h | 1 - src/breakpad/CrashReporter/CMakeLists.txt | 6 +++- src/breakpad/CrashReporter/main.cpp | 9 ++--- src/libtomahawk/utils/TomahawkUtils.cpp | 39 +++++++++++++++++++++ src/libtomahawk/utils/TomahawkUtils.h | 2 ++ 8 files changed, 53 insertions(+), 50 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9f0283ebf..a254e8fd2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -17,6 +17,8 @@ SET( TOMAHAWK_VERSION_PATCH 99 ) #SET( TOMAHAWK_VERSION_RC 0 ) +SET( TOMAHAWK_TRANSLATION_LANGUAGES ar bg ca de en es fi fr ja pl pt_BR ru sv tr zh_CN zh_TW ) + # enforce proper symbol exporting on all platforms add_definitions( "-fvisibility=hidden" ) # enforce using constBegin, constEnd for const-iterators diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index d8f9e03b1..2889ce63c 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -155,7 +155,7 @@ INCLUDE(GNUInstallDirs) # translations include( ${CMAKE_SOURCE_DIR}/lang/translations.cmake ) -add_tomahawk_translations(ar bg ca de en es fi fr ja pl pt_BR ru sv tr zh_CN zh_TW) +add_tomahawk_translations( ${TOMAHAWK_TRANSLATION_LANGUAGES} ) SET( final_src ${final_src} ${tomahawkMoc} ${tomahawkSources} ${trans_outfile}) diff --git a/src/TomahawkApp.cpp b/src/TomahawkApp.cpp index bcf50b32a..28c148602 100644 --- a/src/TomahawkApp.cpp +++ b/src/TomahawkApp.cpp @@ -146,47 +146,7 @@ TomahawkApp::TomahawkApp( int& argc, char *argv[] ) setApplicationVersion( QLatin1String( TOMAHAWK_VERSION ) ); registerMetaTypes(); - installTranslator(); -} - - -void -TomahawkApp::installTranslator() -{ -#if QT_VERSION >= 0x040800 - QString locale = QLocale::system().uiLanguages().first().replace( "-", "_" ); -#else - QString locale = QLocale::system().name(); -#endif - if ( locale == "C" ) - locale = "en"; - - // Tomahawk translations - QTranslator* translator = new QTranslator( this ); - if ( translator->load( QString( ":/lang/tomahawk_" ) + locale ) ) - { - tDebug( LOGVERBOSE ) << "Translation: Tomahawk: Using system locale:" << locale; - } - else - { - tDebug( LOGVERBOSE ) << "Translation: Tomahawk: Using default locale, system locale one not found:" << locale; - translator->load( QString( ":/lang/tomahawk_en" ) ); - } - - TOMAHAWK_APPLICATION::installTranslator( translator ); - - // Qt translations - translator = new QTranslator( this ); - if ( translator->load( QString( ":/lang/qt_" ) + locale ) ) - { - tDebug( LOGVERBOSE ) << "Translation: Qt: Using system locale:" << locale; - } - else - { - tDebug( LOGVERBOSE ) << "Translation: Qt: Using default locale, system locale one not found:" << locale; - } - - TOMAHAWK_APPLICATION::installTranslator( translator ); + TomahawkUtils::installTranslator(this); } diff --git a/src/TomahawkApp.h b/src/TomahawkApp.h index d4e09ac61..5eb342d29 100644 --- a/src/TomahawkApp.h +++ b/src/TomahawkApp.h @@ -115,7 +115,6 @@ private slots: void accountManagerReady(); private: - void installTranslator(); void registerMetaTypes(); void printHelp(); diff --git a/src/breakpad/CrashReporter/CMakeLists.txt b/src/breakpad/CrashReporter/CMakeLists.txt index 291557c29..439f19b9f 100644 --- a/src/breakpad/CrashReporter/CMakeLists.txt +++ b/src/breakpad/CrashReporter/CMakeLists.txt @@ -16,7 +16,11 @@ INCLUDE( ${QT_USE_FILE} ) INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_BINARY_DIR} ../../libtomahawk ) ADD_DEFINITIONS( ${QT_DEFINITIONS} ) -ADD_EXECUTABLE( tomahawk_crash_reporter WIN32 ${crashreporter_SOURCES} ${crashreporter_HEADERS_MOC} ${crashreporter_UI_HEADERS} ${crashreporter_RC_RCC} ) +# translations +include( ${CMAKE_SOURCE_DIR}/lang/translations.cmake ) +add_tomahawk_translations( ${TOMAHAWK_TRANSLATION_LANGUAGES} ) + +ADD_EXECUTABLE( tomahawk_crash_reporter WIN32 ${crashreporter_SOURCES} ${crashreporter_HEADERS_MOC} ${crashreporter_UI_HEADERS} ${crashreporter_RC_RCC} ${trans_outfile} ) TARGET_LINK_LIBRARIES( tomahawk_crash_reporter ${QT_LIBRARIES} tomahawklib ) set_target_properties( tomahawk_crash_reporter PROPERTIES AUTOMOC ON) install(TARGETS tomahawk_crash_reporter RUNTIME DESTINATION ${CMAKE_INSTALL_LIBEXECDIR}) diff --git a/src/breakpad/CrashReporter/main.cpp b/src/breakpad/CrashReporter/main.cpp index 9a3db4701..6b58515e3 100644 --- a/src/breakpad/CrashReporter/main.cpp +++ b/src/breakpad/CrashReporter/main.cpp @@ -18,6 +18,8 @@ #include "CrashReporter.h" +#include "utils/TomahawkUtils.h" + #include #include @@ -36,12 +38,7 @@ int main( int argc, char* argv[] ) QApplication app( argc, argv ); - QString langCode; - QTranslator translatorApp; - QTranslator translatorQt; - -/* app.installTranslator( &translatorApp ); - app.installTranslator( &translatorQt );*/ + TomahawkUtils::installTranslator(&app); if ( app.arguments().size() != 4 ) { diff --git a/src/libtomahawk/utils/TomahawkUtils.cpp b/src/libtomahawk/utils/TomahawkUtils.cpp index 77a0ccb82..5864ebe72 100644 --- a/src/libtomahawk/utils/TomahawkUtils.cpp +++ b/src/libtomahawk/utils/TomahawkUtils.cpp @@ -46,6 +46,7 @@ #include #include #include +#include #ifdef Q_OS_WIN #include @@ -773,6 +774,44 @@ crash() *a = 1; } +void +installTranslator(QObject* parent) +{ +#if QT_VERSION >= 0x040800 + QString locale = QLocale::system().uiLanguages().first().replace( "-", "_" ); +#else + QString locale = QLocale::system().name(); +#endif + if ( locale == "C" ) + locale = "en"; + + // Tomahawk translations + QTranslator* translator = new QTranslator( parent ); + if ( translator->load( QString( ":/lang/tomahawk_" ) + locale ) ) + { + tDebug( LOGVERBOSE ) << "Translation: Tomahawk: Using system locale:" << locale; + } + else + { + tDebug( LOGVERBOSE ) << "Translation: Tomahawk: Using default locale, system locale one not found:" << locale; + translator->load( QString( ":/lang/tomahawk_en" ) ); + } + + QCoreApplication::installTranslator( translator ); + + // Qt translations + translator = new QTranslator( parent ); + if ( translator->load( QString( ":/lang/qt_" ) + locale ) ) + { + tDebug( LOGVERBOSE ) << "Translation: Qt: Using system locale:" << locale; + } + else + { + tDebug( LOGVERBOSE ) << "Translation: Qt: Using default locale, system locale one not found:" << locale; + } + + QCoreApplication::installTranslator( translator ); +} bool verifyFile( const QString& filePath, const QString& signature ) diff --git a/src/libtomahawk/utils/TomahawkUtils.h b/src/libtomahawk/utils/TomahawkUtils.h index 8a40e3cac..8da42e4b5 100644 --- a/src/libtomahawk/utils/TomahawkUtils.h +++ b/src/libtomahawk/utils/TomahawkUtils.h @@ -212,6 +212,8 @@ namespace TomahawkUtils DLLEXPORT QList< Tomahawk::query_ptr > mergePlaylistChanges( const QList< Tomahawk::query_ptr >& orig, const QList< Tomahawk::query_ptr >& newTracks, bool& changed ); DLLEXPORT void crash(); + + DLLEXPORT void installTranslator(QObject *parent); } #endif // TOMAHAWKUTILS_H