-rw-r--r-- | library/qpeapplication.cpp | 66 |
1 files changed, 32 insertions, 34 deletions
diff --git a/library/qpeapplication.cpp b/library/qpeapplication.cpp index 0b6d56d..1117240 100644 --- a/library/qpeapplication.cpp +++ b/library/qpeapplication.cpp | |||
@@ -156,7 +156,6 @@ public: | |||
156 | int smallIconSize; | 156 | int smallIconSize; |
157 | int bigIconSize; | 157 | int bigIconSize; |
158 | 158 | ||
159 | QStringList langs; | ||
160 | QString appName; | 159 | QString appName; |
161 | struct QCopRec | 160 | struct QCopRec |
162 | { | 161 | { |
@@ -758,6 +757,29 @@ void QPEApplication::processQCopFile() | |||
758 | and emitted as signals, such as flush() and reload(). | 757 | and emitted as signals, such as flush() and reload(). |
759 | */ | 758 | */ |
760 | 759 | ||
760 | #ifndef QT_NO_TRANSLATION | ||
761 | static void qtopia_loadTranslations( const QStringList& qms ) | ||
762 | { | ||
763 | QStringList langs = Global::languageList(); | ||
764 | |||
765 | for (QStringList::ConstIterator it = langs.begin(); it!=langs.end(); ++it) { | ||
766 | QString lang = *it; | ||
767 | |||
768 | QTranslator * trans; | ||
769 | QString tfn; | ||
770 | |||
771 | for (QStringList::ConstIterator qmit = qms.begin(); qmit!=qms.end(); ++qmit) { | ||
772 | trans = new QTranslator(qApp); | ||
773 | tfn = QPEApplication::qpeDir() + "i18n/" + lang + "/" + *qmit + ".qm"; | ||
774 | if ( trans->load( tfn )) | ||
775 | qApp->installTranslator( trans ); | ||
776 | else | ||
777 | delete trans; | ||
778 | } | ||
779 | } | ||
780 | } | ||
781 | #endif | ||
782 | |||
761 | /*! | 783 | /*! |
762 | Constructs a QPEApplication just as you would construct | 784 | Constructs a QPEApplication just as you would construct |
763 | a QApplication, passing \a argc, \a argv, and \a t. | 785 | a QApplication, passing \a argc, \a argv, and \a t. |
@@ -852,25 +874,12 @@ QPEApplication::QPEApplication( int & argc, char **argv, Type t ) | |||
852 | FontDatabase::loadRenderers(); | 874 | FontDatabase::loadRenderers(); |
853 | #endif | 875 | #endif |
854 | #ifndef QT_NO_TRANSLATION | 876 | #ifndef QT_NO_TRANSLATION |
877 | QStringList qms; | ||
878 | qms << "libqpe"; | ||
879 | qms << "libopie"; | ||
880 | qms << d->appName; | ||
855 | 881 | ||
856 | d->langs = Global::languageList(); | 882 | qtopia_loadTranslations(qms); |
857 | for ( QStringList::ConstIterator it = d->langs.begin(); it != d->langs.end(); ++it ) { | ||
858 | QString lang = *it; | ||
859 | |||
860 | installTranslation( lang + "/libopie.qm"); | ||
861 | installTranslation( lang + "/libqpe.qm" ); | ||
862 | installTranslation( lang + "/" + d->appName + ".qm" ); | ||
863 | |||
864 | |||
865 | //###language/font hack; should look it up somewhere | ||
866 | #ifdef QWS | ||
867 | |||
868 | if ( lang == "ja" || lang == "zh_CN" || lang == "zh_TW" || lang == "ko" ) { | ||
869 | QFont fn = FontManager::unicodeFont( FontManager::Proportional ); | ||
870 | setFont( fn ); | ||
871 | } | ||
872 | #endif | ||
873 | } | ||
874 | #endif | 883 | #endif |
875 | 884 | ||
876 | applyStyle(); | 885 | applyStyle(); |
@@ -903,6 +912,10 @@ void QPEApplication::initApp( int argc, char **argv ) | |||
903 | channel.replace(QRegExp(".*/"),""); | 912 | channel.replace(QRegExp(".*/"),""); |
904 | d->appName = channel; | 913 | d->appName = channel; |
905 | 914 | ||
915 | #ifndef QT_NO_TRANSLATION | ||
916 | qtopia_loadTranslations( QStringList()<<channel ); | ||
917 | #endif | ||
918 | |||
906 | #if QT_VERSION > 235 | 919 | #if QT_VERSION > 235 |
907 | qt_fbdpy->setIdentity( channel ); // In Qt/E 2.3.6 | 920 | qt_fbdpy->setIdentity( channel ); // In Qt/E 2.3.6 |
908 | #endif | 921 | #endif |
@@ -934,10 +947,6 @@ void QPEApplication::initApp( int argc, char **argv ) | |||
934 | 947 | ||
935 | /* overide stored arguments */ | 948 | /* overide stored arguments */ |
936 | setArgs(argc, argv); | 949 | setArgs(argc, argv); |
937 | |||
938 | /* install translation here */ | ||
939 | for ( QStringList::ConstIterator it = d->langs.begin(); it != d->langs.end(); ++it ) | ||
940 | installTranslation( (*it) + "/" + d->appName + ".qm" ); | ||
941 | } | 950 | } |
942 | #endif | 951 | #endif |
943 | 952 | ||
@@ -2179,17 +2188,6 @@ void QPEApplication::tryQuit() | |||
2179 | quit(); | 2188 | quit(); |
2180 | } | 2189 | } |
2181 | 2190 | ||
2182 | /*! | ||
2183 | \internal | ||
2184 | */ | ||
2185 | void QPEApplication::installTranslation( const QString& baseName ) { | ||
2186 | QTranslator* trans = new QTranslator(this); | ||
2187 | QString tfn = qpeDir() + "/i18n/"+baseName; | ||
2188 | if ( trans->load( tfn ) ) | ||
2189 | installTranslator( trans ); | ||
2190 | else | ||
2191 | delete trans; | ||
2192 | } | ||
2193 | 2191 | ||
2194 | /*! | 2192 | /*! |
2195 | \internal | 2193 | \internal |