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