Vidalia
0.2.17
|
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("ca", "Catalan"); 00039 languages.insert("da", "dansk"); 00040 languages.insert("de", "Deutsch"); 00041 languages.insert("es", 00042 QString::fromUtf8("espa\303\261ol")); 00043 languages.insert("el", "Greek"); 00044 // languages.insert("eo", "Esperanto"); 00045 languages.insert("fa", 00046 QString::fromUtf8("\331\201\330\247\330\261\330\263\333\214")); 00047 languages.insert("fi", "suomi"); 00048 languages.insert("fr", 00049 QString::fromUtf8("fran\303\247ais")); 00050 languages.insert("he", 00051 QString::fromUtf8("\327\242\327\221\327\250\327\231\327\252")); 00052 languages.insert("hu", "magyar nyelv"); 00053 languages.insert("it", "Italiano"); 00054 languages.insert("id", "Indonesian"); 00055 // languages.insert("ja", 00056 // QString::fromUtf8("\346\227\245\346\234\254\350\252\236")); 00057 languages.insert("ko", "Korean"); 00058 languages.insert("nb", 00059 QString::fromUtf8("Bokm\303\245l")); 00060 languages.insert("nl", "Nederlands"); 00061 languages.insert("pl", "Polski"); 00062 languages.insert("pt", 00063 QString::fromUtf8("Portugu\303\252s")); 00064 languages.insert("pt_BR", 00065 QString::fromUtf8("Portugu\303\252s brasileiro")); 00066 languages.insert("ro", 00067 QString::fromUtf8("rom\303\242n\304\203")); 00068 languages.insert("ru", 00069 QString::fromUtf8("\320\240\321\203\321\201\321\201\320\272\320\270\320\271")); 00070 // languages.insert("sq", "Shqip"); 00071 languages.insert("sv", "svenska"); 00072 // languages.insert("sk", "Slovak"); 00073 // languages.insert("sr", "Servian"); 00074 // languages.insert("th", "Thai"); 00075 languages.insert("tr", QString::fromUtf8("T\303\274rk\303\247e")); 00076 // languages.insert("vi", 00077 // QString::fromUtf8("ti\341\272\277ng Vi\341\273\207t")); 00078 languages.insert("zh_CN", 00079 QString::fromUtf8("\347\256\200\344\275\223\345\255\227")); 00080 // languages.insert("zh_TW", 00081 // QString::fromUtf8("\347\260\241\351\253\224\345\255\227")); 00082 } 00083 return languages; 00084 } 00085 00086 /** Returns the default language code for the system locale. */ 00087 QString 00088 LanguageSupport::defaultLanguageCode() 00089 { 00090 QString language = QLocale::system().name(); 00091 00092 if (language != "zh_CN" && language != "zh_TW") 00093 language = language.mid(0, language.indexOf("_")); 00094 if (!isValidLanguageCode(language)) 00095 language = "en"; 00096 00097 return language; 00098 } 00099 00100 /** Returns the language code for a given language name. */ 00101 QString 00102 LanguageSupport::languageCode(const QString &languageName) 00103 { 00104 return languages().key(languageName); 00105 } 00106 00107 /** Returns a list of all supported language codes. (e.g., "en"). */ 00108 QStringList 00109 LanguageSupport::languageCodes() 00110 { 00111 return languages().keys(); 00112 } 00113 00114 /** Returns the language name for a given language code. */ 00115 QString 00116 LanguageSupport::languageName(const QString &languageCode) 00117 { 00118 return languages().value(languageCode); 00119 } 00120 00121 /** Returns a list of all supported language names (e.g., "English"). */ 00122 QStringList 00123 LanguageSupport::languageNames() 00124 { 00125 return languages().values(); 00126 } 00127 00128 /** Returns true if we understand the given language code. */ 00129 bool 00130 LanguageSupport::isValidLanguageCode(const QString &languageCode) 00131 { 00132 return languageCodes().contains(languageCode); 00133 } 00134