<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <title>Vidalia: LanguageSupport.cpp Source File</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body> <!-- Generated by Doxygen 1.6.3 --> <div class="navigation" id="top"> <div class="tabs"> <ul> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li><a href="annotated.html"><span>Classes</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> <li><a href="dirs.html"><span>Directories</span></a></li> </ul> </div> <div class="tabs"> <ul> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>File Members</span></a></li> </ul> </div> <div class="navpath"><a class="el" href="dir_b47abd1aad201a152869566145babb61.html">src</a> » <a class="el" href="dir_695ba8f8357372e02d38c40b3c6dbe81.html">vidalia</a> </div> </div> <div class="contents"> <h1>LanguageSupport.cpp</h1><a href="_language_support_8cpp.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span> <a name="l00002"></a>00002 <span class="comment">** This file is part of Vidalia, and is subject to the license terms in the</span> <a name="l00003"></a>00003 <span class="comment">** LICENSE file, found in the top level directory of this distribution. If you</span> <a name="l00004"></a>00004 <span class="comment">** did not receive the LICENSE file with this file, you may obtain it from the</span> <a name="l00005"></a>00005 <span class="comment">** Vidalia source package distributed by the Vidalia Project at</span> <a name="l00006"></a>00006 <span class="comment">** http://www.vidalia-project.net/. No part of Vidalia, including this file,</span> <a name="l00007"></a>00007 <span class="comment">** may be copied, modified, propagated, or distributed except according to the</span> <a name="l00008"></a>00008 <span class="comment">** terms described in the LICENSE file.</span> <a name="l00009"></a>00009 <span class="comment">*/</span> <a name="l00010"></a>00010 <a name="l00011"></a>00011 <span class="comment">/*</span> <a name="l00012"></a>00012 <span class="comment">** \file LanguageSupport.cpp</span> <a name="l00013"></a>00013 <span class="comment">** \version $Id: LanguageSupport.cpp 4266 2010-04-17 21:45:21Z edmanm $</span> <a name="l00014"></a>00014 <span class="comment">** \brief Contains languages supported by Vidalia</span> <a name="l00015"></a>00015 <span class="comment">*/</span> <a name="l00016"></a>00016 <a name="l00017"></a>00017 <span class="preprocessor">#include "<a class="code" href="_language_support_8h.html">LanguageSupport.h</a>"</span> <a name="l00018"></a>00018 <span class="preprocessor">#include "<a class="code" href="_vidalia_8h.html">Vidalia.h</a>"</span> <a name="l00019"></a>00019 <a name="l00020"></a>00020 <span class="preprocessor">#include <QLocale></span> <a name="l00021"></a>00021 <a name="l00022"></a>00022 <span class="comment"></span> <a name="l00023"></a>00023 <span class="comment">/** Initializes the list of available languages. */</span> <a name="l00024"></a>00024 QMap<QString, QString> <a name="l00025"></a><a class="code" href="class_language_support.html#a16641ef30f47ea47e4ef44bd0ca86fe1">00025</a> <a class="code" href="class_language_support.html#a16641ef30f47ea47e4ef44bd0ca86fe1">LanguageSupport::languages</a>() <a name="l00026"></a>00026 { <a name="l00027"></a>00027 <span class="keyword">static</span> QMap<QString, QString> <a class="code" href="class_language_support.html#a16641ef30f47ea47e4ef44bd0ca86fe1">languages</a>; <a name="l00028"></a>00028 <span class="keywordflow">if</span> (languages.isEmpty()) { <a name="l00029"></a>00029 languages.insert(<span class="stringliteral">"en"</span>, <span class="stringliteral">"English"</span>); <a name="l00030"></a>00030 languages.insert(<span class="stringliteral">"ar"</span>, <a name="l00031"></a>00031 QString::fromUtf8(<span class="stringliteral">"\330\247\331\204\330\271\330\261\330"</span> <a name="l00032"></a>00032 <span class="stringliteral">"\250\331\212\330\251"</span>)); <a name="l00033"></a>00033 <span class="comment">// languages.insert("bg",</span> <a name="l00034"></a>00034 <span class="comment">// QString::fromUtf8("\320\221\321\212\320\273\320\263\320"</span> <a name="l00035"></a>00035 <span class="comment">// "\260\321\200\321\201\320\272\320\270"));</span> <a name="l00036"></a>00036 languages.insert(<span class="stringliteral">"bms"</span>, <span class="stringliteral">"Burmese"</span>); <a name="l00037"></a>00037 <span class="comment">// languages.insert("cs", </span> <a name="l00038"></a>00038 <span class="comment">// QString::fromUtf8("\304\215e\305\241tina"));</span> <a name="l00039"></a>00039 languages.insert(<span class="stringliteral">"da"</span>, <span class="stringliteral">"dansk"</span>); <a name="l00040"></a>00040 languages.insert(<span class="stringliteral">"de"</span>, <span class="stringliteral">"Deutsch"</span>); <a name="l00041"></a>00041 languages.insert(<span class="stringliteral">"es"</span>, <a name="l00042"></a>00042 QString::fromUtf8(<span class="stringliteral">"espa\303\261ol"</span>)); <a name="l00043"></a>00043 languages.insert(<span class="stringliteral">"fa"</span>, <a name="l00044"></a>00044 QString::fromUtf8(<span class="stringliteral">"\331\201\330\247\330\261\330\263\333\214"</span>)); <a name="l00045"></a>00045 languages.insert(<span class="stringliteral">"fi"</span>, <span class="stringliteral">"suomi"</span>); <a name="l00046"></a>00046 languages.insert(<span class="stringliteral">"fr"</span>, <a name="l00047"></a>00047 QString::fromUtf8(<span class="stringliteral">"fran\303\247ais"</span>)); <a name="l00048"></a>00048 <span class="comment">// languages.insert("he",</span> <a name="l00049"></a>00049 <span class="comment">// QString::fromUtf8("\327\242\327\221\327\250\327\231\327\252"));</span> <a name="l00050"></a>00050 languages.insert(<span class="stringliteral">"hu"</span>, <span class="stringliteral">"magyar nyelv"</span>); <a name="l00051"></a>00051 languages.insert(<span class="stringliteral">"it"</span>, <span class="stringliteral">"Italiano"</span>); <a name="l00052"></a>00052 languages.insert(<span class="stringliteral">"ja"</span>, <a name="l00053"></a>00053 QString::fromUtf8(<span class="stringliteral">"\346\227\245\346\234\254\350\252\236"</span>)); <a name="l00054"></a>00054 languages.insert(<span class="stringliteral">"nb"</span>, <a name="l00055"></a>00055 QString::fromUtf8(<span class="stringliteral">"Bokm\303\245l"</span>)); <a name="l00056"></a>00056 <span class="comment">// languages.insert("nl", "Nederlands");</span> <a name="l00057"></a>00057 languages.insert(<span class="stringliteral">"pl"</span>, <span class="stringliteral">"Polski"</span>); <a name="l00058"></a>00058 languages.insert(<span class="stringliteral">"pt"</span>, <a name="l00059"></a>00059 QString::fromUtf8(<span class="stringliteral">"Portugu\303\252s"</span>)); <a name="l00060"></a>00060 languages.insert(<span class="stringliteral">"pt"</span>, <a name="l00061"></a>00061 QString::fromUtf8(<span class="stringliteral">"Portugu\303\252s brasileiro"</span>)); <a name="l00062"></a>00062 languages.insert(<span class="stringliteral">"ro"</span>, <a name="l00063"></a>00063 QString::fromUtf8(<span class="stringliteral">"rom\303\242n\304\203"</span>)); <a name="l00064"></a>00064 languages.insert(<span class="stringliteral">"ru"</span>, <a name="l00065"></a>00065 QString::fromUtf8(<span class="stringliteral">"\320\240\321\203\321\201\321\201\320\272\320\270\320\271"</span>)); <a name="l00066"></a>00066 <span class="comment">// languages.insert("sq", "Shqip");</span> <a name="l00067"></a>00067 languages.insert(<span class="stringliteral">"sv"</span>, <span class="stringliteral">"svenska"</span>); <a name="l00068"></a>00068 languages.insert(<span class="stringliteral">"th"</span>, <span class="stringliteral">"Thai"</span>); <a name="l00069"></a>00069 languages.insert(<span class="stringliteral">"tr"</span>, QString::fromUtf8(<span class="stringliteral">"T\303\274rk\303\247e"</span>)); <a name="l00070"></a>00070 languages.insert(<span class="stringliteral">"vi"</span>, <a name="l00071"></a>00071 QString::fromUtf8(<span class="stringliteral">"ti\341\272\277ng Vi\341\273\207t"</span>)); <a name="l00072"></a>00072 languages.insert(<span class="stringliteral">"zh_CN"</span>, <a name="l00073"></a>00073 QString::fromUtf8(<span class="stringliteral">"\347\256\200\344\275\223\345\255\227"</span>)); <a name="l00074"></a>00074 languages.insert(<span class="stringliteral">"zh_TW"</span>, <a name="l00075"></a>00075 QString::fromUtf8(<span class="stringliteral">"\347\260\241\351\253\224\345\255\227"</span>)); <a name="l00076"></a>00076 } <a name="l00077"></a>00077 <span class="keywordflow">return</span> languages; <a name="l00078"></a>00078 } <a name="l00079"></a>00079 <span class="comment"></span> <a name="l00080"></a>00080 <span class="comment">/** Returns the default language code for the system locale. */</span> <a name="l00081"></a>00081 QString <a name="l00082"></a><a class="code" href="class_language_support.html#ad4fa14ea335cea0d57f0fb08bb06ff2c">00082</a> <a class="code" href="class_language_support.html#ad4fa14ea335cea0d57f0fb08bb06ff2c">LanguageSupport::defaultLanguageCode</a>() <a name="l00083"></a>00083 { <a name="l00084"></a>00084 QString language = QLocale::system().name(); <a name="l00085"></a>00085 <a name="l00086"></a>00086 <span class="keywordflow">if</span> (language != <span class="stringliteral">"zh_CN"</span> && language != <span class="stringliteral">"zh_TW"</span>) <a name="l00087"></a>00087 language = language.mid(0, language.indexOf(<span class="stringliteral">"_"</span>)); <a name="l00088"></a>00088 <span class="keywordflow">if</span> (!<a class="code" href="class_language_support.html#a3a3ece255117b25abf6f33ed7b4ccc77">isValidLanguageCode</a>(language)) <a name="l00089"></a>00089 language = <span class="stringliteral">"en"</span>; <a name="l00090"></a>00090 <a name="l00091"></a>00091 <span class="keywordflow">return</span> language; <a name="l00092"></a>00092 } <a name="l00093"></a>00093 <span class="comment"></span> <a name="l00094"></a>00094 <span class="comment">/** Returns the language code for a given language name. */</span> <a name="l00095"></a>00095 QString <a name="l00096"></a><a class="code" href="class_language_support.html#ad4421adfdd52de33b8ac3e9caede36e2">00096</a> <a class="code" href="class_language_support.html#ad4421adfdd52de33b8ac3e9caede36e2">LanguageSupport::languageCode</a>(<span class="keyword">const</span> QString &languageName) <a name="l00097"></a>00097 { <a name="l00098"></a>00098 <span class="keywordflow">return</span> <a class="code" href="class_language_support.html#a16641ef30f47ea47e4ef44bd0ca86fe1">languages</a>().key(languageName); <a name="l00099"></a>00099 } <a name="l00100"></a>00100 <span class="comment"></span> <a name="l00101"></a>00101 <span class="comment">/** Returns a list of all supported language codes. (e.g., "en"). */</span> <a name="l00102"></a>00102 QStringList <a name="l00103"></a><a class="code" href="class_language_support.html#aafbd03d2949aa3cf77148c59253bd439">00103</a> <a class="code" href="class_language_support.html#aafbd03d2949aa3cf77148c59253bd439">LanguageSupport::languageCodes</a>() <a name="l00104"></a>00104 { <a name="l00105"></a>00105 <span class="keywordflow">return</span> <a class="code" href="class_language_support.html#a16641ef30f47ea47e4ef44bd0ca86fe1">languages</a>().keys(); <a name="l00106"></a>00106 } <a name="l00107"></a>00107 <span class="comment"></span> <a name="l00108"></a>00108 <span class="comment">/** Returns the language name for a given language code. */</span> <a name="l00109"></a>00109 QString <a name="l00110"></a><a class="code" href="class_language_support.html#a2257fb68837d5d2602f121cca8c59d52">00110</a> <a class="code" href="class_language_support.html#a2257fb68837d5d2602f121cca8c59d52">LanguageSupport::languageName</a>(<span class="keyword">const</span> QString &languageCode) <a name="l00111"></a>00111 { <a name="l00112"></a>00112 <span class="keywordflow">return</span> <a class="code" href="class_language_support.html#a16641ef30f47ea47e4ef44bd0ca86fe1">languages</a>().value(languageCode); <a name="l00113"></a>00113 } <a name="l00114"></a>00114 <span class="comment"></span> <a name="l00115"></a>00115 <span class="comment">/** Returns a list of all supported language names (e.g., "English"). */</span> <a name="l00116"></a>00116 QStringList <a name="l00117"></a><a class="code" href="class_language_support.html#ad88d0a506701b6debd26d4fcb051a748">00117</a> <a class="code" href="class_language_support.html#ad88d0a506701b6debd26d4fcb051a748">LanguageSupport::languageNames</a>() <a name="l00118"></a>00118 { <a name="l00119"></a>00119 <span class="keywordflow">return</span> <a class="code" href="class_language_support.html#a16641ef30f47ea47e4ef44bd0ca86fe1">languages</a>().values(); <a name="l00120"></a>00120 } <a name="l00121"></a>00121 <span class="comment"></span> <a name="l00122"></a>00122 <span class="comment">/** Returns true if we understand the given language code. */</span> <a name="l00123"></a>00123 <span class="keywordtype">bool</span> <a name="l00124"></a><a class="code" href="class_language_support.html#a3a3ece255117b25abf6f33ed7b4ccc77">00124</a> <a class="code" href="class_language_support.html#a3a3ece255117b25abf6f33ed7b4ccc77">LanguageSupport::isValidLanguageCode</a>(<span class="keyword">const</span> QString &languageCode) <a name="l00125"></a>00125 { <a name="l00126"></a>00126 <span class="keywordflow">return</span> <a class="code" href="class_language_support.html#aafbd03d2949aa3cf77148c59253bd439">languageCodes</a>().contains(languageCode); <a name="l00127"></a>00127 } <a name="l00128"></a>00128 </pre></div></div> <hr class="footer"/><address style="text-align: right;"><small>Generated on Mon Aug 30 22:58:54 2010 for Vidalia by <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.3 </small></address> </body> </html>