-rw-r--r-- | library/qpeapplication.cpp | 68 |
1 files changed, 33 insertions, 35 deletions
diff --git a/library/qpeapplication.cpp b/library/qpeapplication.cpp index 0b6d56d..1117240 100644 --- a/library/qpeapplication.cpp +++ b/library/qpeapplication.cpp | |||
@@ -155,9 +155,8 @@ public: | |||
155 | int fontSize; | 155 | int fontSize; |
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 | { |
163 | QCopRec( const QCString &ch, const QCString &msg, | 162 | QCopRec( const QCString &ch, const QCString &msg, |
@@ -757,8 +756,31 @@ void QPEApplication::processQCopFile() | |||
757 | Note that messages received here may be processed by qpe application | 756 | Note that messages received here may be processed by qpe application |
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. |
764 | 786 | ||
@@ -844,34 +866,21 @@ QPEApplication::QPEApplication( int & argc, char **argv, Type t ) | |||
844 | setArgs( argc, argv ); | 866 | setArgs( argc, argv ); |
845 | 867 | ||
846 | #endif | 868 | #endif |
847 | #else | 869 | #else |
848 | initApp( argc, argv ); | 870 | initApp( argc, argv ); |
849 | #endif | 871 | #endif |
850 | #ifdef Q_WS_QWS | 872 | #ifdef Q_WS_QWS |
851 | /* load the font renderer factories */ | 873 | /* load the font renderer factories */ |
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(); |
877 | 886 | ||
@@ -902,8 +911,12 @@ void QPEApplication::initApp( int argc, char **argv ) | |||
902 | 911 | ||
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 |
909 | 922 | ||
@@ -933,12 +946,8 @@ void QPEApplication::initApp( int argc, char **argv ) | |||
933 | } | 946 | } |
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 | ||
944 | 953 | ||
@@ -2178,19 +2187,8 @@ void QPEApplication::tryQuit() | |||
2178 | 2187 | ||
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 |
2196 | User initiated quit. Makes the window 'Go Away'. If preloaded this means | 2194 | User initiated quit. Makes the window 'Go Away'. If preloaded this means |