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. */
23QMap<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. */
80QString
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. */
94QString
95LanguageSupport::languageCode(const QString &languageName)
96{
97 return languages().key(languageName);
98}
99
100/** Returns a list of all supported language codes. (e.g., "en"). */
101QStringList
103{
104 return languages().keys();
105}
106
107/** Returns the language name for a given language code. */
108QString
109LanguageSupport::languageName(const QString &languageCode)
110{
111 return languages().value(languageCode);
112}
113
114/** Returns a list of all supported language names (e.g., "English"). */
115QStringList
117{
118 return languages().values();
119}
120
121/** Returns true if we understand the given language code. */
122bool
123LanguageSupport::isValidLanguageCode(const QString &languageCode)
124{
125 return languageCodes().contains(languageCode);
126}
127
static QMap< QString, QString > languages()
static QString languageName(const QString &languageCode)
static bool isValidLanguageCode(const QString &languageCode)
static QStringList languageCodes()
static QString languageCode(const QString &languageName)
static QString defaultLanguageCode()
static QStringList languageNames()