00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #include <QTranslator>
00029 #include <QLocale>
00030
00031 #include "languagesupport.h"
00032
00033
00034
00035 QMap<QString, QString>
00036 LanguageSupport::languages()
00037 {
00038 static QMap<QString, QString> languages;
00039 if (languages.isEmpty()) {
00040 languages.insert("en", "English");
00041 languages.insert("bg",
00042 QString::fromUtf8("\320\221\321\212\320\273\320\263\320"
00043 "\260\321\200\321\201\320\272\320\270"));
00044 languages.insert("de", "Deutsch");
00045 languages.insert("fi", "suomi");
00046 languages.insert("fr",
00047 QString::fromUtf8("fran\303\247ais"));
00048 languages.insert("hu", "magyar nyelv");
00049 languages.insert("it", "Italiano");
00050 languages.insert("nl", "Nederlands");
00051 languages.insert("pl", "Polski");
00052 languages.insert("ru",
00053 QString::fromUtf8("\320\240\321\203\321\201\321\201\320\272\320\270\320\271"));
00054 languages.insert("zh-cn",
00055 QString::fromUtf8("\347\256\200\344\275\223\345\255\227"));
00056 }
00057 return languages;
00058 }
00059
00060
00061 QString
00062 LanguageSupport::defaultLanguageCode()
00063 {
00064 QString localeName = QLocale::system().name();
00065 QString language = localeName.mid(0, localeName.indexOf("_"));
00066 if (language == "zh") {
00067 language += "-" + localeName.mid(localeName.indexOf("_")+1).toLower();
00068 }
00069 if (!isValidLanguageCode(language)) {
00070 language = "en";
00071 }
00072 return language;
00073 }
00074
00075
00076 QString
00077 LanguageSupport::languageCode(QString languageName)
00078 {
00079 return languages().key(languageName);
00080 }
00081
00082
00083 QStringList
00084 LanguageSupport::languageCodes()
00085 {
00086 return languages().keys();
00087 }
00088
00089
00090 QString
00091 LanguageSupport::languageName(QString languageCode)
00092 {
00093 return languages().value(languageCode);
00094 }
00095
00096
00097 QStringList
00098 LanguageSupport::languageNames()
00099 {
00100 return languages().values();
00101 }
00102
00103
00104 bool
00105 LanguageSupport::isValidLanguageCode(QString code)
00106 {
00107 return languageCodes().contains(code.toLower());
00108 }
00109
00110
00111 bool
00112 LanguageSupport::translate(QString langCode)
00113 {
00114 if (isValidLanguageCode(langCode)) {
00115 QTranslator *translator = new QTranslator();
00116 if (translator->load(QString(":/lang/") + langCode.toLower())) {
00117 QApplication::installTranslator(translator);
00118 return true;
00119 }
00120 delete translator;
00121 }
00122 return false;
00123 }
00124