Vidalia 0.2.10
|
00001 /* 00002 ** This file is part of Vidalia, and is subject to the license terms in the 00003 ** LICENSE file, found in the top level directory of this distribution. If you 00004 ** did not receive the LICENSE file with this file, you may obtain it from the 00005 ** Vidalia source package distributed by the Vidalia Project at 00006 ** http://www.vidalia-project.net/. No part of Vidalia, including this file, 00007 ** may be copied, modified, propagated, or distributed except according to the 00008 ** terms described in the LICENSE file. 00009 */ 00010 00011 /* 00012 ** \file LanguageSupport.cpp 00013 ** \version $Id: LanguageSupport.cpp 4266 2010-04-17 21:45:21Z edmanm $ 00014 ** \brief Contains languages supported by Vidalia 00015 */ 00016 00017 #include "LanguageSupport.h" 00018 #include "Vidalia.h" 00019 00020 #include <QLocale> 00021 00022 00023 /** Initializes the list of available languages. */ 00024 QMap<QString, QString> 00025 LanguageSupport::languages() 00026 { 00027 static QMap<QString, QString> languages; 00028 if (languages.isEmpty()) { 00029 languages.insert("en", "English"); 00030 languages.insert("ar", 00031 QString::fromUtf8("\330\247\331\204\330\271\330\261\330" 00032 "\250\331\212\330\251")); 00033 // languages.insert("bg", 00034 // QString::fromUtf8("\320\221\321\212\320\273\320\263\320" 00035 // "\260\321\200\321\201\320\272\320\270")); 00036 languages.insert("bms", "Burmese"); 00037 // languages.insert("cs", 00038 // QString::fromUtf8("\304\215e\305\241tina")); 00039 languages.insert("da", "dansk"); 00040 languages.insert("de", "Deutsch"); 00041 languages.insert("es", 00042 QString::fromUtf8("espa\303\261ol")); 00043 languages.insert("fa", 00044 QString::fromUtf8("\331\201\330\247\330\261\330\263\333\214")); 00045 languages.insert("fi", "suomi"); 00046 languages.insert("fr", 00047 QString::fromUtf8("fran\303\247ais")); 00048 // languages.insert("he", 00049 // QString::fromUtf8("\327\242\327\221\327\250\327\231\327\252")); 00050 languages.insert("hu", "magyar nyelv"); 00051 languages.insert("it", "Italiano"); 00052 languages.insert("ja", 00053 QString::fromUtf8("\346\227\245\346\234\254\350\252\236")); 00054 languages.insert("nb", 00055 QString::fromUtf8("Bokm\303\245l")); 00056 // languages.insert("nl", "Nederlands"); 00057 languages.insert("pl", "Polski"); 00058 languages.insert("pt", 00059 QString::fromUtf8("Portugu\303\252s")); 00060 languages.insert("pt", 00061 QString::fromUtf8("Portugu\303\252s brasileiro")); 00062 languages.insert("ro", 00063 QString::fromUtf8("rom\303\242n\304\203")); 00064 languages.insert("ru", 00065 QString::fromUtf8("\320\240\321\203\321\201\321\201\320\272\320\270\320\271")); 00066 // languages.insert("sq", "Shqip"); 00067 languages.insert("sv", "svenska"); 00068 languages.insert("th", "Thai"); 00069 languages.insert("tr", QString::fromUtf8("T\303\274rk\303\247e")); 00070 languages.insert("vi", 00071 QString::fromUtf8("ti\341\272\277ng Vi\341\273\207t")); 00072 languages.insert("zh_CN", 00073 QString::fromUtf8("\347\256\200\344\275\223\345\255\227")); 00074 languages.insert("zh_TW", 00075 QString::fromUtf8("\347\260\241\351\253\224\345\255\227")); 00076 } 00077 return languages; 00078 } 00079 00080 /** Returns the default language code for the system locale. */ 00081 QString 00082 LanguageSupport::defaultLanguageCode() 00083 { 00084 QString language = QLocale::system().name(); 00085 00086 if (language != "zh_CN" && language != "zh_TW") 00087 language = language.mid(0, language.indexOf("_")); 00088 if (!isValidLanguageCode(language)) 00089 language = "en"; 00090 00091 return language; 00092 } 00093 00094 /** Returns the language code for a given language name. */ 00095 QString 00096 LanguageSupport::languageCode(const QString &languageName) 00097 { 00098 return languages().key(languageName); 00099 } 00100 00101 /** Returns a list of all supported language codes. (e.g., "en"). */ 00102 QStringList 00103 LanguageSupport::languageCodes() 00104 { 00105 return languages().keys(); 00106 } 00107 00108 /** Returns the language name for a given language code. */ 00109 QString 00110 LanguageSupport::languageName(const QString &languageCode) 00111 { 00112 return languages().value(languageCode); 00113 } 00114 00115 /** Returns a list of all supported language names (e.g., "English"). */ 00116 QStringList 00117 LanguageSupport::languageNames() 00118 { 00119 return languages().values(); 00120 } 00121 00122 /** Returns true if we understand the given language code. */ 00123 bool 00124 LanguageSupport::isValidLanguageCode(const QString &languageCode) 00125 { 00126 return languageCodes().contains(languageCode); 00127 } 00128