LanguageSupport.cpp

Go to the documentation of this file.
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 3735 2009-04-28 20:28:01Z 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("cs",    
00037 //      QString::fromUtf8("\304\215e\305\241tina"));
00038     languages.insert("de",    "Deutsch");
00039     languages.insert("es",    
00040       QString::fromUtf8("espa\303\261ol"));
00041     languages.insert("fa",
00042       QString::fromUtf8("\331\201\330\247\330\261\330\263\333\214"));
00043     languages.insert("fi",    "suomi");
00044     languages.insert("fr",    
00045       QString::fromUtf8("fran\303\247ais"));
00046 //    languages.insert("he",
00047 //      QString::fromUtf8("\327\242\327\221\327\250\327\231\327\252"));
00048     languages.insert("hu",    "magyar nyelv");
00049     languages.insert("it",    "Italiano");
00050     languages.insert("ja",
00051       QString::fromUtf8("\346\227\245\346\234\254\350\252\236"));
00052     languages.insert("nb",    
00053       QString::fromUtf8("Bokm\303\245l"));
00054 //    languages.insert("nl",    "Nederlands");
00055     languages.insert("pl",    "Polski");
00056     languages.insert("pt",    
00057       QString::fromUtf8("Portugu\303\252s"));
00058     languages.insert("ro",
00059       QString::fromUtf8("rom\303\242n\304\203"));
00060     languages.insert("ru",
00061       QString::fromUtf8("\320\240\321\203\321\201\321\201\320\272\320\270\320\271"));
00062 //    languages.insert("sq",    "Shqip");
00063     languages.insert("sv",    "svenska");
00064     languages.insert("tr",    QString::fromUtf8("T\303\274rk\303\247e"));
00065     languages.insert("zh_CN", 
00066       QString::fromUtf8("\347\256\200\344\275\223\345\255\227"));
00067     languages.insert("zh_TW", 
00068       QString::fromUtf8("\347\260\241\351\253\224\345\255\227"));
00069   }
00070   return languages;
00071 }
00072 
00073 /** Returns the default language code for the system locale. */
00074 QString
00075 LanguageSupport::defaultLanguageCode()
00076 {
00077   QString language = QLocale::system().name();
00078 
00079   if (language != "zh_CN" && language != "zh_TW")
00080     language = language.mid(0, language.indexOf("_"));
00081   if (!isValidLanguageCode(language))
00082     language = "en";
00083   
00084   return language;
00085 }
00086 
00087 /** Returns the language code for a given language name. */
00088 QString
00089 LanguageSupport::languageCode(const QString &languageName)
00090 {
00091   return languages().key(languageName);
00092 }
00093 
00094 /** Returns a list of all supported language codes. (e.g., "en"). */
00095 QStringList
00096 LanguageSupport::languageCodes()
00097 {
00098   return languages().keys();
00099 }
00100 
00101 /** Returns the language name for a given language code. */
00102 QString
00103 LanguageSupport::languageName(const QString &languageCode)
00104 {
00105   return languages().value(languageCode);
00106 }
00107 
00108 /** Returns a list of all supported language names (e.g., "English"). */
00109 QStringList
00110 LanguageSupport::languageNames()
00111 {
00112   return languages().values();
00113 }
00114 
00115 /** Returns true if we understand the given language code. */
00116 bool
00117 LanguageSupport::isValidLanguageCode(const QString &languageCode)
00118 {
00119   return languageCodes().contains(languageCode);
00120 }
00121 

Generated on 31 Mar 2010 for Vidalia by  doxygen 1.6.1