Vidalia  0.3.1
LanguageSupport.cpp
Go to the documentation of this file.
1 /*
2 ** This file is part of Vidalia, and is subject to the license terms in the
3 ** LICENSE file, found in the top level directory of this distribution. If you
4 ** did not receive the LICENSE file with this file, you may obtain it from the
5 ** Vidalia source package distributed by the Vidalia Project at
6 ** http://www.torproject.org/projects/vidalia.html. No part of Vidalia,
7 ** including this file, may be copied, modified, propagated, or distributed
8 ** except according to the terms described in the LICENSE file.
9 */
10 
11 /*
12 ** \file LanguageSupport.cpp
13 ** \brief Contains languages supported by Vidalia
14 */
15 
16 #include "LanguageSupport.h"
17 #include "Vidalia.h"
18 
19 #include <QLocale>
20 
21 
22 /** Initializes the list of available languages. */
23 QMap<QString, QString>
25 {
26  static QMap<QString, QString> languages;
27  if (languages.isEmpty()) {
28  languages.insert("en", "English");
29  languages.insert("ar",
30  QString::fromUtf8("\330\247\331\204\330\271\330\261\330"
31  "\250\331\212\330\251"));
32 // languages.insert("bg",
33 // QString::fromUtf8("\320\221\321\212\320\273\320\263\320"
34 // "\260\321\200\321\201\320\272\320\270"));
35  languages.insert("my", "Burmese");
36 // languages.insert("cs",
37 // QString::fromUtf8("\304\215e\305\241tina"));
38  languages.insert("da", "dansk");
39  languages.insert("de", "Deutsch");
40  languages.insert("es",
41  QString::fromUtf8("espa\303\261ol"));
42  languages.insert("fa",
43  QString::fromUtf8("\331\201\330\247\330\261\330\263\333\214"));
44  languages.insert("fi", "suomi");
45  languages.insert("fr",
46  QString::fromUtf8("fran\303\247ais"));
47 // languages.insert("he",
48 // QString::fromUtf8("\327\242\327\221\327\250\327\231\327\252"));
49  languages.insert("hu", "magyar nyelv");
50  languages.insert("it", "Italiano");
51  languages.insert("ja",
52  QString::fromUtf8("\346\227\245\346\234\254\350\252\236"));
53  languages.insert("nb",
54  QString::fromUtf8("Bokm\303\245l"));
55 // languages.insert("nl", "Nederlands");
56  languages.insert("pl", "Polski");
57  languages.insert("pt",
58  QString::fromUtf8("Portugu\303\252s"));
59  languages.insert("pt",
60  QString::fromUtf8("Portugu\303\252s brasileiro"));
61  languages.insert("ro",
62  QString::fromUtf8("rom\303\242n\304\203"));
63  languages.insert("ru",
64  QString::fromUtf8("\320\240\321\203\321\201\321\201\320\272\320\270\320\271"));
65 // languages.insert("sq", "Shqip");
66  languages.insert("sv", "svenska");
67  languages.insert("th", "Thai");
68  languages.insert("tr", QString::fromUtf8("T\303\274rk\303\247e"));
69  languages.insert("vi",
70  QString::fromUtf8("ti\341\272\277ng Vi\341\273\207t"));
71  languages.insert("zh_CN",
72  QString::fromUtf8("\347\256\200\344\275\223\345\255\227"));
73  languages.insert("zh_TW",
74  QString::fromUtf8("\347\260\241\351\253\224\345\255\227"));
75  }
76  return languages;
77 }
78 
79 /** Returns the default language code for the system locale. */
80 QString
82 {
83  QString language = QLocale::system().name();
84 
85  if (language != "zh_CN" && language != "zh_TW")
86  language = language.mid(0, language.indexOf("_"));
87  if (!isValidLanguageCode(language))
88  language = "en";
89 
90  return language;
91 }
92 
93 /** Returns the language code for a given language name. */
94 QString
96 {
97  return languages().key(languageName);
98 }
99 
100 /** Returns a list of all supported language codes. (e.g., "en"). */
101 QStringList
103 {
104  return languages().keys();
105 }
106 
107 /** Returns the language name for a given language code. */
108 QString
110 {
111  return languages().value(languageCode);
112 }
113 
114 /** Returns a list of all supported language names (e.g., "English"). */
115 QStringList
117 {
118  return languages().values();
119 }
120 
121 /** Returns true if we understand the given language code. */
122 bool
124 {
125  return languageCodes().contains(languageCode);
126 }
127 
static QStringList languageCodes()
static bool isValidLanguageCode(const QString &languageCode)
static QString defaultLanguageCode()
static QString languageName(const QString &languageCode)
static QString languageCode(const QString &languageName)
static QStringList languageNames()
static QMap< QString, QString > languages()