Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members

language.cpp

Go to the documentation of this file.
00001 /* 00002 * wxChecksums 00003 * Copyright (C) 2003-2004 Julien Couot 00004 * 00005 * This program is free software; you can redistribute it and/or 00006 * modify it under the terms of the GNU General Public License 00007 * as published by the Free Software Foundation; either version 2 00008 * of the License, or (at your option) any later version. 00009 * 00010 * This program is distributed in the hope that it will be useful, 00011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00013 * GNU General Public License for more details. 00014 * 00015 * You should have received a copy of the GNU General Public License 00016 * along with this program; if not, write to the Free Software 00017 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 00018 */ 00019 00020 /** 00021 * \file language.cpp 00022 * Manages the languages that the application knows. 00023 */ 00024 00025 //--------------------------------------------------------------------------- 00026 // For compilers that support precompilation, includes "wx.h". 00027 #include <wx/wxprec.h> 00028 00029 #ifdef __BORLANDC__ 00030 #pragma hdrstop 00031 #endif 00032 00033 #ifndef WX_PRECOMP 00034 // Include your minimal set of headers here, or wx.h 00035 #include <wx/wx.h> 00036 #endif 00037 00038 #include <wx/config.h> 00039 #include <wx/fileconf.h> 00040 #include <wx/tokenzr.h> 00041 00042 #include "language.hpp" 00043 #include "appprefs.hpp" 00044 #include "comdefs.hpp" 00045 #include "osdep.hpp" 00046 00047 #include "compat.hpp" 00048 //--------------------------------------------------------------------------- 00049 00050 /// The C++ standard namespace. 00051 using namespace std; 00052 00053 00054 //########################################################################### 00055 // Languages::Language value members 00056 //########################################################################### 00057 00058 /** 00059 * Constructor. 00060 * 00061 * @param langName Name of the language. 00062 * @param langNameTranslated Name of the language (translated). 00063 * @param shortName Short name of the language. 00064 * @param id wxWidgets identifier of the language. 00065 * @param locName Name of the locale (dependant compiler). If empty, the 00066 * wxWidgets identifier will be used to set the locale, 00067 * else it is this locale name that will be used. 00068 * @param translatorLat Name of the translator (in latin-1 characters). 00069 * @param translatorLocale Name of the translator (in UTF-8 charset). 00070 */ 00071 Languages::Language::Language(const wxString& langName, 00072 const wxString& langNameTranslated, 00073 const wxString& shortName, 00074 const int id, const wxString& locName, 00075 const wxString& translatorLat, 00076 const wxString& translatorLocale) 00077 { 00078 name = langName; 00079 nameTranslated = langNameTranslated; 00080 shorts.Add(shortName); 00081 ids.Add(id); 00082 localeName = locName; 00083 translator = translatorLat; 00084 translatorLoc = translatorLocale; 00085 } 00086 //--------------------------------------------------------------------------- 00087 00088 00089 /** 00090 * Constructor. 00091 * 00092 * Caller must provide one or more short names and one or more language ids. 00093 * This is <b>not</b> verified by this constructor. 00094 * 00095 * @param langName Name of the language. 00096 * @param langNameTranslated Name of the language (translated). 00097 * @param shortNames Short names of the language. 00098 * @param id wxWidgets identifiers of the language. 00099 * @param locName Name of the locale (dependant compiler). If empty, the 00100 * wxWidgets identifier will be used to set the locale, 00101 * else it is this locale name that will be used. 00102 * @param translatorLat Name of the translator (in latin-1 characters). 00103 * @param translatorLocale Name of the translator (in UTF-8 charset). 00104 */ 00105 Languages::Language::Language(const wxString& langName, 00106 const wxString& langNameTranslated, 00107 const wxArrayString& shortNames, 00108 const wxArrayInt& id, 00109 const wxString& locName, 00110 const wxString& translatorLat, 00111 const wxString& translatorLocale) 00112 { 00113 name = langName; 00114 nameTranslated = langNameTranslated; 00115 shorts = shortNames; 00116 ids = id; 00117 localeName = locName; 00118 translator = translatorLat; 00119 translatorLoc = translatorLocale; 00120 } 00121 //--------------------------------------------------------------------------- 00122 00123 00124 /** 00125 * Changes the locale of the application with the given language. 00126 * 00127 * The locale is changed only if the given language id is present in this 00128 * language instance. 00129 * 00130 * @param loc The locale to change. 00131 * @param language Identifier of the language. 00132 * @return <CODE>true</CODE> if the locale has been changed, <CODE>false</CODE> 00133 * otherwise. 00134 */ 00135 bool Languages::Language::setLocale(wxLocale& loc, const int language) const 00136 { 00137 bool localeHasChanged = false; 00138 00139 if (ids.Index(language) != wxNOT_FOUND) 00140 { 00141 if (localeName.IsEmpty()) 00142 loc.Init(ids[0]); 00143 else 00144 loc.Init(name, shorts[0], localeName); 00145 00146 localeHasChanged = true; 00147 } 00148 00149 return localeHasChanged; 00150 } 00151 //--------------------------------------------------------------------------- 00152 00153 00154 /** 00155 * Changes the locale of the application with the given language. 00156 * 00157 * The locale is changed only if the given short name is present in this 00158 * language instance. 00159 * 00160 * @param loc The locale to change. 00161 * @param shortName Short name of the language. 00162 * @return <CODE>true</CODE> if the locale has been changed, <CODE>false</CODE> 00163 * otherwise. 00164 */ 00165 bool Languages::Language::setLocale(wxLocale& loc, const wxString& shortName) const 00166 { 00167 bool localeHasChanged = false; 00168 00169 if (shorts.Index(shortName, false) != wxNOT_FOUND) 00170 { 00171 if (localeName.IsEmpty()) 00172 loc.Init(ids[0]); 00173 else 00174 loc.Init(name, shorts[0], localeName); 00175 00176 localeHasChanged = true; 00177 } 00178 00179 return localeHasChanged; 00180 } 00181 //--------------------------------------------------------------------------- 00182 00183 00184 /** 00185 * Gets the name of the language. 00186 * 00187 * @return The name of the language. 00188 */ 00189 wxString Languages::Language::getName() const 00190 { 00191 return name; 00192 } 00193 //--------------------------------------------------------------------------- 00194 00195 00196 /** 00197 * Gets the translated name of the language. 00198 * 00199 * @return The translated name of the language. 00200 */ 00201 wxString Languages::Language::getTranslatedName() const 00202 { 00203 return nameTranslated; 00204 } 00205 //--------------------------------------------------------------------------- 00206 00207 00208 /** 00209 * Gets the language shorts names. 00210 * 00211 * @return The language shorts names. 00212 */ 00213 wxArrayString Languages::Language::getShortNames() const 00214 { 00215 return shorts; 00216 } 00217 //--------------------------------------------------------------------------- 00218 00219 00220 /** 00221 * Gets the main language short name. 00222 * 00223 * @return The main language short name. 00224 */ 00225 wxString Languages::Language::getShortName() const 00226 { 00227 return shorts[0]; 00228 } 00229 //--------------------------------------------------------------------------- 00230 00231 00232 /** 00233 * Gets the name of the translator (in latin-1 characters). 00234 * 00235 * @return The name of the translator (in latin-1 characters). 00236 */ 00237 wxString Languages::Language::getTranslatorName() const 00238 { 00239 return translator; 00240 } 00241 //--------------------------------------------------------------------------- 00242 00243 00244 /** 00245 * Gets the name of the translator in the language. 00246 * 00247 * @return The name of the translator in the language. 00248 */ 00249 wxString Languages::Language::getTranslatorNameInLocale() const 00250 { 00251 return translatorLoc; 00252 } 00253 //--------------------------------------------------------------------------- 00254 00255 00256 00257 00258 //########################################################################### 00259 // Misc functions declarations 00260 //########################################################################### 00261 00262 // Returns the wxWidgets language identifier from a language name. 00263 static int getLanguageIdentifier(const wxString langName); 00264 00265 00266 00267 00268 //########################################################################### 00269 // Languages value members 00270 //########################################################################### 00271 00272 00273 // Static attributes of the Languages class 00274 const int Languages::LANGUAGE_UNKNOW = -1; 00275 //--------------------------------------------------------------------------- 00276 00277 00278 00279 /** 00280 * Default constructor. 00281 * 00282 * For adding a language: 00283 * - Add the language in <CODE>cmplLangs[]</CODE>. 00284 * - Use the Add() method to add the language at the end of the method. 00285 */ 00286 Languages::Languages() 00287 { 00288 // For more information on the Borland C specifics, see the informations 00289 // at the end of language.cpp. 00290 #ifdef __BORLANDC__ 00291 CreateLanguagesDB(); 00292 #endif // __BORLANDC__ 00293 00294 if (!readLanguagesSettings(AppPrefs::getLanguagesPathName())) 00295 { 00296 #if defined(__BORLANDC__) 00297 const wxString cmplLang(wxT("english")); 00298 #else // Others compilers 00299 const wxString cmplLang; 00300 #endif // defined(__BORLANDC__) 00301 00302 languages.Add(new Language(wxT("English"), wxT("English"), wxT("en"), 00303 wxLANGUAGE_ENGLISH, cmplLang, wxT(APP_AUTHOR), wxT(APP_AUTHOR))); 00304 } 00305 } 00306 //--------------------------------------------------------------------------- 00307 00308 00309 /** 00310 * Destructor. 00311 */ 00312 Languages::~Languages() 00313 { 00314 WX_CLEAR_ARRAY(languages); 00315 00316 // For more information on the Borland C specifics, see the informations 00317 // at the end of language.cpp. 00318 #ifdef __BORLANDC__ 00319 DestroyLanguagesDB(); 00320 #endif // __BORLANDC__ 00321 } 00322 //--------------------------------------------------------------------------- 00323 00324 00325 /** 00326 * Changes the locale of the application. 00327 * 00328 * @param loc The locale to change. 00329 * @return <CODE>true</CODE> if the locale has been changed, <CODE>false</CODE> 00330 * otherwise. 00331 */ 00332 bool Languages::setLocale(wxLocale& loc) const 00333 { 00334 wxString locName = AppPrefs::get()->readString(prLANGUAGE_NAME); 00335 00336 bool localeHasChanged = false; 00337 00338 if (!locName.IsEmpty()) 00339 { 00340 size_t i = 0; 00341 size_t c = languages.GetCount(); 00342 while (!localeHasChanged && i < c) 00343 { 00344 localeHasChanged = languages[i]->setLocale(loc, locName); 00345 i++; 00346 } 00347 } 00348 00349 if (!localeHasChanged) 00350 localeHasChanged = setLocale(loc, wxLocale::GetSystemLanguage()); 00351 00352 return localeHasChanged; 00353 } 00354 //--------------------------------------------------------------------------- 00355 00356 00357 /** 00358 * Changes the locale of the application with the given language. 00359 * 00360 * @param loc The locale to change. 00361 * @param language Identifier of the language. 00362 * @return <CODE>true</CODE> if the locale has been changed, <CODE>false</CODE> 00363 * otherwise. 00364 */ 00365 bool Languages::setLocale(wxLocale& loc, const int language) const 00366 { 00367 bool localeHasChanged = false; 00368 00369 size_t i = 0; 00370 size_t c = languages.GetCount(); 00371 while (!localeHasChanged && i < c) 00372 { 00373 localeHasChanged = languages[i]->setLocale(loc, language); 00374 i++; 00375 } 00376 00377 return localeHasChanged; 00378 } 00379 //--------------------------------------------------------------------------- 00380 00381 00382 /** 00383 * Gets the number of available languages. 00384 * 00385 * @return The number of available languages. 00386 */ 00387 int Languages::getLanguagesCount() const 00388 { 00389 return static_cast<int>(languages.GetCount()); 00390 } 00391 //--------------------------------------------------------------------------- 00392 00393 00394 /** 00395 * Gets the language name at the given index. 00396 * 00397 * @param index The index of the wanted language's name. 00398 * @return The language name at the given index or an empty string if the 00399 * given index is invalid. 00400 */ 00401 wxString Languages::getLanguageName(int index) const 00402 { 00403 if (index < 0 || index >= getLanguagesCount()) 00404 return wxEmptyString; 00405 00406 return languages[index]->getName(); 00407 } 00408 //--------------------------------------------------------------------------- 00409 00410 00411 /** 00412 * Gets the language translated name at the given index. 00413 * 00414 * @param index The index of the wanted translated language's name. 00415 * @return The language translated name at the given index or an empty string 00416 * if the given index is invalid. 00417 */ 00418 wxString Languages::getLanguageTranslatedName(const int index) const 00419 { 00420 if (index < 0 || index >= getLanguagesCount()) 00421 return wxEmptyString; 00422 00423 return languages[index]->getTranslatedName(); 00424 } 00425 //--------------------------------------------------------------------------- 00426 00427 00428 /** 00429 * Gets the language short name at the given index. 00430 * 00431 * @param index The index of the wanted language's short name. 00432 * @return The language short name at the given index or an empty string if the 00433 * given index is invalid. 00434 */ 00435 wxString Languages::getLanguageShortName(const int index) const 00436 { 00437 if (index < 0 || index >= getLanguagesCount()) 00438 return wxEmptyString; 00439 00440 return languages[index]->getShortName(); 00441 } 00442 //--------------------------------------------------------------------------- 00443 00444 00445 /** 00446 * Gets the index of language with the given short name. 00447 * 00448 * @param shortName A short name of the wanted language's index. 00449 * @return The index of language with the given short name or 00450 * <CODE>Languages::LANGUAGE_UNKNOW</CODE> if the short name doesn't 00451 * correspond to a known language. 00452 */ 00453 int Languages::getLanguageIndexByShortName(const wxString& shortName) const 00454 { 00455 int idx = Languages::LANGUAGE_UNKNOW; 00456 size_t i = 0; 00457 size_t s = languages.GetCount(); 00458 wxArrayString shorts; 00459 size_t j; 00460 00461 while (idx == Languages::LANGUAGE_UNKNOW && i < s) 00462 { 00463 shorts = languages[i]->getShortNames(); 00464 j = shorts.Index(shortName, false); 00465 if (j != wxNOT_FOUND) 00466 idx = i; 00467 else 00468 i++; 00469 } 00470 00471 return idx; 00472 } 00473 //--------------------------------------------------------------------------- 00474 00475 00476 /** 00477 * Gets the name of the translator (in latin-1 characters) at the given index. 00478 * 00479 * @param index The index of the language of the wanted translator's name. 00480 * @return The name of the translator of the language at the given index or an 00481 * empty string if the given index is invalid. 00482 */ 00483 wxString Languages::getLanguageTranslatorName(const int index) const 00484 { 00485 if (index < 0 || index >= getLanguagesCount()) 00486 return wxEmptyString; 00487 00488 return languages[index]->getTranslatorName(); 00489 } 00490 //--------------------------------------------------------------------------- 00491 00492 00493 /** 00494 * Gets the name of the translator in the language at the given index. 00495 * 00496 * @param index The index of the language of the wanted translator's name. 00497 * @return The name of the translator of the language at the given index or an 00498 * empty string if the given index is invalid. 00499 */ 00500 wxString Languages::getLanguageTranslatorNameInLocale(const int index) const 00501 { 00502 if (index < 0 || index >= getLanguagesCount()) 00503 return wxEmptyString; 00504 00505 return languages[index]->getTranslatorNameInLocale(); 00506 } 00507 //--------------------------------------------------------------------------- 00508 00509 00510 /** 00511 * Reads languages settings from a configuration file. 00512 * 00513 * @param langFileIni Name of the the application's languages settings to use. 00514 * @return <CODE>true</CODE> if at least one language definition has been read, 00515 * <CODE>false</CODE> otherwise. 00516 */ 00517 bool Languages::readLanguagesSettings(const wxString& langFileIni) 00518 { 00519 wxFileConfig config(wxT(APP_NAME), wxT(APP_AUTHOR), langFileIni, 00520 wxEmptyString, wxCONFIG_USE_LOCAL_FILE); 00521 long idxGrp; 00522 wxString grpName; 00523 bool continueGrp; 00524 bool localeRead = false; 00525 00526 continueGrp = config.GetFirstGroup(grpName, idxGrp); 00527 while (continueGrp) 00528 { 00529 wxString name; // Name of the language 00530 wxString nameTranslated; // Name of the language (translated) 00531 wxArrayString shorts; // Short names that can be used for the language 00532 wxArrayInt ids; // Identifiers for the languages 00533 wxString localeName; // Name of the locale (compiler dependant) 00534 wxString translator; // Name of the translator (in latin-1 characters) 00535 wxString translatorLoc; // Name of the translator (in UTF-8 charset) 00536 wxString line; // temporary line of text. 00537 00538 // Name of the language 00539 name = ::UTF8toLocal(grpName.Strip(wxString::both)); 00540 00541 // Name of the language (translated) 00542 nameTranslated = ::UTF8toLocal(config.Read(grpName + wxT("/NameInLocale"), name).Strip(wxString::both)); 00543 00544 // Short names that can be used for the language 00545 if (config.Read(grpName + wxT("/ShortName"), &line)) 00546 shorts.Add(::UTF8toLocal(line.Strip(wxString::both))); 00547 if (config.Read(grpName + wxT("/AltShorts"), &line)) 00548 { 00549 wxStringTokenizer tkz(line, wxT(","), wxTOKEN_STRTOK); 00550 while (tkz.HasMoreTokens()) 00551 { 00552 wxString token = tkz.GetNextToken().Strip(wxString::both); 00553 if (shorts.Index(token, false) == wxNOT_FOUND) 00554 shorts.Add(token); 00555 } 00556 } 00557 00558 // Get the languages identifiers 00559 int id = ::getLanguageIdentifier(name); 00560 if (id != wxLANGUAGE_UNKNOWN) 00561 ids.Add(id); 00562 if (config.Read(grpName + wxT("/AltNames"), &line)) 00563 { 00564 wxStringTokenizer tkz(line, wxT(","), wxTOKEN_STRTOK); 00565 while (tkz.HasMoreTokens()) 00566 { 00567 id = ::getLanguageIdentifier(tkz.GetNextToken().Strip(wxString::both)); 00568 if (id != wxLANGUAGE_UNKNOWN) 00569 ids.Add(id); 00570 } 00571 } 00572 00573 // Name of the translator (in latin-1 characters) 00574 translator = ::UTF8toLocal(config.Read(grpName + wxT("/Translator"), _("Unknow")).Strip(wxString::both)); 00575 00576 // Name of the translator (in UTF-8 charset) 00577 translatorLoc = ::UTF8toLocal(config.Read(grpName + wxT("/TranslatorLocale"), translator).Strip(wxString::both)); 00578 00579 // Name of the locale (compiler dependant) 00580 #ifdef __BORLANDC__ 00581 localeName = config.Read(grpName + wxT("/BorlandC"), wxEmptyString); 00582 #else 00583 localeName.Empty(); 00584 #endif // __BORLANDC__ 00585 00586 if (!name.IsEmpty() && !shorts.IsEmpty() && !ids.IsEmpty()) 00587 { 00588 languages.Add(new Language(name, nameTranslated, shorts, ids, localeName, 00589 translator, translatorLoc)); 00590 localeRead = true; 00591 } 00592 00593 continueGrp = config.GetNextGroup(grpName, idxGrp); 00594 } 00595 00596 return localeRead; 00597 } 00598 //--------------------------------------------------------------------------- 00599 00600 00601 00602 //########################################################################### 00603 // Misc functions body 00604 //########################################################################### 00605 00606 /** 00607 * Returns the wxWidgets language identifier from a language name. 00608 * 00609 * @param langName Name of the language which the identifier must be returned. 00610 * @return The wxWidgets of the given language or 00611 * <CODE>wxLANGUAGE_UNKNOWN</CODE> if the language is unknown. 00612 */ 00613 static int getLanguageIdentifier(const wxString langName) 00614 { 00615 int res = wxLANGUAGE_UNKNOWN; 00616 00617 const wxLanguageInfo* li; 00618 bool found = false; 00619 int i = wxLANGUAGE_DEFAULT; 00620 00621 // Parse all languages predefined in wxWidgets 00622 while (!found && i < wxLANGUAGE_USER_DEFINED) 00623 { 00624 #ifdef __BORLANDC__ 00625 li = Languages::GetLanguageInfo(i); 00626 #else 00627 li = wxLocale::GetLanguageInfo(i); 00628 #endif // __BORLANDC__ 00629 if (li != NULL) 00630 if (langName.CmpNoCase(li->Description) == 0) 00631 { 00632 res = li->Language; 00633 found = true; 00634 } 00635 00636 i++; 00637 } 00638 00639 return res; 00640 } 00641 //--------------------------------------------------------------------------- 00642 00643 00644 00645 //########################################################################### 00646 // Borland C specific part of the Languages class 00647 //########################################################################### 00648 00649 #ifdef __BORLANDC__ 00650 00651 // Static attributes of the Languages class 00652 Languages::ArrayLanguageInfo Languages::lngInfos; 00653 00654 /** 00655 * Gets a pointer to <CODE>wxLanguageInfo</CODE> structure containing 00656 * information about the given language. 00657 * 00658 * Note that even if the returned pointer is valid, the caller should not 00659 * delete it. 00660 * 00661 * @param lang Identifier of the language on which the caller want information. 00662 * @return A pointer to <CODE>wxLanguageInfo</CODE> structure containing 00663 * information about the given language or </CODE>NULL</CODE> if this 00664 * language is unknown. 00665 */ 00666 const wxLanguageInfo* Languages::GetLanguageInfo(int lang) 00667 { 00668 size_t i = 0; 00669 size_t s = lngInfos.GetCount(); 00670 wxLanguageInfo* res = NULL; 00671 00672 while (res == NULL && i < s) 00673 if (lngInfos[i]->Language == lang) 00674 { 00675 res = lngInfos[i]; 00676 } 00677 else 00678 i++; 00679 00680 return res; 00681 } 00682 //--------------------------------------------------------------------------- 00683 00684 00685 // ---------------------------------------------------------------------------- 00686 // default languages table & initialization 00687 // ---------------------------------------------------------------------------- 00688 00689 // Code taken from intl.cpp from wxWidgets 2.4.2 00690 00691 00692 // --- --- --- generated code begins here --- --- --- 00693 00694 // This table is generated by misc/languages/genlang.py 00695 // When making changes, please put them into misc/languages/langtabl.txt 00696 00697 #if !defined(__WIN32__) || defined(__WXMICROWIN__) 00698 00699 #define SETWINLANG(info,lang,sublang) 00700 00701 #else 00702 00703 #define SETWINLANG(info,lang,sublang) \ 00704 info->WinLang = lang; info->WinSublang = sublang; 00705 00706 #ifndef LANG_AFRIKAANS 00707 #define LANG_AFRIKAANS (0) 00708 #endif 00709 #ifndef LANG_ALBANIAN 00710 #define LANG_ALBANIAN (0) 00711 #endif 00712 #ifndef LANG_ARABIC 00713 #define LANG_ARABIC (0) 00714 #endif 00715 #ifndef LANG_ARMENIAN 00716 #define LANG_ARMENIAN (0) 00717 #endif 00718 #ifndef LANG_ASSAMESE 00719 #define LANG_ASSAMESE (0) 00720 #endif 00721 #ifndef LANG_AZERI 00722 #define LANG_AZERI (0) 00723 #endif 00724 #ifndef LANG_BASQUE 00725 #define LANG_BASQUE (0) 00726 #endif 00727 #ifndef LANG_BELARUSIAN 00728 #define LANG_BELARUSIAN (0) 00729 #endif 00730 #ifndef LANG_BENGALI 00731 #define LANG_BENGALI (0) 00732 #endif 00733 #ifndef LANG_BULGARIAN 00734 #define LANG_BULGARIAN (0) 00735 #endif 00736 #ifndef LANG_CATALAN 00737 #define LANG_CATALAN (0) 00738 #endif 00739 #ifndef LANG_CHINESE 00740 #define LANG_CHINESE (0) 00741 #endif 00742 #ifndef LANG_CROATIAN 00743 #define LANG_CROATIAN (0) 00744 #endif 00745 #ifndef LANG_CZECH 00746 #define LANG_CZECH (0) 00747 #endif 00748 #ifndef LANG_DANISH 00749 #define LANG_DANISH (0) 00750 #endif 00751 #ifndef LANG_DUTCH 00752 #define LANG_DUTCH (0) 00753 #endif 00754 #ifndef LANG_ENGLISH 00755 #define LANG_ENGLISH (0) 00756 #endif 00757 #ifndef LANG_ESTONIAN 00758 #define LANG_ESTONIAN (0) 00759 #endif 00760 #ifndef LANG_FAEROESE 00761 #define LANG_FAEROESE (0) 00762 #endif 00763 #ifndef LANG_FARSI 00764 #define LANG_FARSI (0) 00765 #endif 00766 #ifndef LANG_FINNISH 00767 #define LANG_FINNISH (0) 00768 #endif 00769 #ifndef LANG_FRENCH 00770 #define LANG_FRENCH (0) 00771 #endif 00772 #ifndef LANG_GEORGIAN 00773 #define LANG_GEORGIAN (0) 00774 #endif 00775 #ifndef LANG_GERMAN 00776 #define LANG_GERMAN (0) 00777 #endif 00778 #ifndef LANG_GREEK 00779 #define LANG_GREEK (0) 00780 #endif 00781 #ifndef LANG_GUJARATI 00782 #define LANG_GUJARATI (0) 00783 #endif 00784 #ifndef LANG_HEBREW 00785 #define LANG_HEBREW (0) 00786 #endif 00787 #ifndef LANG_HINDI 00788 #define LANG_HINDI (0) 00789 #endif 00790 #ifndef LANG_HUNGARIAN 00791 #define LANG_HUNGARIAN (0) 00792 #endif 00793 #ifndef LANG_ICELANDIC 00794 #define LANG_ICELANDIC (0) 00795 #endif 00796 #ifndef LANG_INDONESIAN 00797 #define LANG_INDONESIAN (0) 00798 #endif 00799 #ifndef LANG_ITALIAN 00800 #define LANG_ITALIAN (0) 00801 #endif 00802 #ifndef LANG_JAPANESE 00803 #define LANG_JAPANESE (0) 00804 #endif 00805 #ifndef LANG_KANNADA 00806 #define LANG_KANNADA (0) 00807 #endif 00808 #ifndef LANG_KASHMIRI 00809 #define LANG_KASHMIRI (0) 00810 #endif 00811 #ifndef LANG_KAZAK 00812 #define LANG_KAZAK (0) 00813 #endif 00814 #ifndef LANG_KONKANI 00815 #define LANG_KONKANI (0) 00816 #endif 00817 #ifndef LANG_KOREAN 00818 #define LANG_KOREAN (0) 00819 #endif 00820 #ifndef LANG_LATVIAN 00821 #define LANG_LATVIAN (0) 00822 #endif 00823 #ifndef LANG_LITHUANIAN 00824 #define LANG_LITHUANIAN (0) 00825 #endif 00826 #ifndef LANG_MACEDONIAN 00827 #define LANG_MACEDONIAN (0) 00828 #endif 00829 #ifndef LANG_MALAY 00830 #define LANG_MALAY (0) 00831 #endif 00832 #ifndef LANG_MALAYALAM 00833 #define LANG_MALAYALAM (0) 00834 #endif 00835 #ifndef LANG_MANIPURI 00836 #define LANG_MANIPURI (0) 00837 #endif 00838 #ifndef LANG_MARATHI 00839 #define LANG_MARATHI (0) 00840 #endif 00841 #ifndef LANG_NEPALI 00842 #define LANG_NEPALI (0) 00843 #endif 00844 #ifndef LANG_NORWEGIAN 00845 #define LANG_NORWEGIAN (0) 00846 #endif 00847 #ifndef LANG_ORIYA 00848 #define LANG_ORIYA (0) 00849 #endif 00850 #ifndef LANG_POLISH 00851 #define LANG_POLISH (0) 00852 #endif 00853 #ifndef LANG_PORTUGUESE 00854 #define LANG_PORTUGUESE (0) 00855 #endif 00856 #ifndef LANG_PUNJABI 00857 #define LANG_PUNJABI (0) 00858 #endif 00859 #ifndef LANG_ROMANIAN 00860 #define LANG_ROMANIAN (0) 00861 #endif 00862 #ifndef LANG_RUSSIAN 00863 #define LANG_RUSSIAN (0) 00864 #endif 00865 #ifndef LANG_SANSKRIT 00866 #define LANG_SANSKRIT (0) 00867 #endif 00868 #ifndef LANG_SERBIAN 00869 #define LANG_SERBIAN (0) 00870 #endif 00871 #ifndef LANG_SINDHI 00872 #define LANG_SINDHI (0) 00873 #endif 00874 #ifndef LANG_SLOVAK 00875 #define LANG_SLOVAK (0) 00876 #endif 00877 #ifndef LANG_SLOVENIAN 00878 #define LANG_SLOVENIAN (0) 00879 #endif 00880 #ifndef LANG_SPANISH 00881 #define LANG_SPANISH (0) 00882 #endif 00883 #ifndef LANG_SWAHILI 00884 #define LANG_SWAHILI (0) 00885 #endif 00886 #ifndef LANG_SWEDISH 00887 #define LANG_SWEDISH (0) 00888 #endif 00889 #ifndef LANG_TAMIL 00890 #define LANG_TAMIL (0) 00891 #endif 00892 #ifndef LANG_TATAR 00893 #define LANG_TATAR (0) 00894 #endif 00895 #ifndef LANG_TELUGU 00896 #define LANG_TELUGU (0) 00897 #endif 00898 #ifndef LANG_THAI 00899 #define LANG_THAI (0) 00900 #endif 00901 #ifndef LANG_TURKISH 00902 #define LANG_TURKISH (0) 00903 #endif 00904 #ifndef LANG_UKRAINIAN 00905 #define LANG_UKRAINIAN (0) 00906 #endif 00907 #ifndef LANG_URDU 00908 #define LANG_URDU (0) 00909 #endif 00910 #ifndef LANG_UZBEK 00911 #define LANG_UZBEK (0) 00912 #endif 00913 #ifndef LANG_VIETNAMESE 00914 #define LANG_VIETNAMESE (0) 00915 #endif 00916 #ifndef SUBLANG_ARABIC_ALGERIA 00917 #define SUBLANG_ARABIC_ALGERIA SUBLANG_DEFAULT 00918 #endif 00919 #ifndef SUBLANG_ARABIC_BAHRAIN 00920 #define SUBLANG_ARABIC_BAHRAIN SUBLANG_DEFAULT 00921 #endif 00922 #ifndef SUBLANG_ARABIC_EGYPT 00923 #define SUBLANG_ARABIC_EGYPT SUBLANG_DEFAULT 00924 #endif 00925 #ifndef SUBLANG_ARABIC_IRAQ 00926 #define SUBLANG_ARABIC_IRAQ SUBLANG_DEFAULT 00927 #endif 00928 #ifndef SUBLANG_ARABIC_JORDAN 00929 #define SUBLANG_ARABIC_JORDAN SUBLANG_DEFAULT 00930 #endif 00931 #ifndef SUBLANG_ARABIC_KUWAIT 00932 #define SUBLANG_ARABIC_KUWAIT SUBLANG_DEFAULT 00933 #endif 00934 #ifndef SUBLANG_ARABIC_LEBANON 00935 #define SUBLANG_ARABIC_LEBANON SUBLANG_DEFAULT 00936 #endif 00937 #ifndef SUBLANG_ARABIC_LIBYA 00938 #define SUBLANG_ARABIC_LIBYA SUBLANG_DEFAULT 00939 #endif 00940 #ifndef SUBLANG_ARABIC_MOROCCO 00941 #define SUBLANG_ARABIC_MOROCCO SUBLANG_DEFAULT 00942 #endif 00943 #ifndef SUBLANG_ARABIC_OMAN 00944 #define SUBLANG_ARABIC_OMAN SUBLANG_DEFAULT 00945 #endif 00946 #ifndef SUBLANG_ARABIC_QATAR 00947 #define SUBLANG_ARABIC_QATAR SUBLANG_DEFAULT 00948 #endif 00949 #ifndef SUBLANG_ARABIC_SAUDI_ARABIA 00950 #define SUBLANG_ARABIC_SAUDI_ARABIA SUBLANG_DEFAULT 00951 #endif 00952 #ifndef SUBLANG_ARABIC_SYRIA 00953 #define SUBLANG_ARABIC_SYRIA SUBLANG_DEFAULT 00954 #endif 00955 #ifndef SUBLANG_ARABIC_TUNISIA 00956 #define SUBLANG_ARABIC_TUNISIA SUBLANG_DEFAULT 00957 #endif 00958 #ifndef SUBLANG_ARABIC_UAE 00959 #define SUBLANG_ARABIC_UAE SUBLANG_DEFAULT 00960 #endif 00961 #ifndef SUBLANG_ARABIC_YEMEN 00962 #define SUBLANG_ARABIC_YEMEN SUBLANG_DEFAULT 00963 #endif 00964 #ifndef SUBLANG_AZERI_CYRILLIC 00965 #define SUBLANG_AZERI_CYRILLIC SUBLANG_DEFAULT 00966 #endif 00967 #ifndef SUBLANG_AZERI_LATIN 00968 #define SUBLANG_AZERI_LATIN SUBLANG_DEFAULT 00969 #endif 00970 #ifndef SUBLANG_CHINESE_SIMPLIFIED 00971 #define SUBLANG_CHINESE_SIMPLIFIED SUBLANG_DEFAULT 00972 #endif 00973 #ifndef SUBLANG_CHINESE_TRADITIONAL 00974 #define SUBLANG_CHINESE_TRADITIONAL SUBLANG_DEFAULT 00975 #endif 00976 #ifndef SUBLANG_CHINESE_HONGKONG 00977 #define SUBLANG_CHINESE_HONGKONG SUBLANG_DEFAULT 00978 #endif 00979 #ifndef SUBLANG_CHINESE_MACAU 00980 #define SUBLANG_CHINESE_MACAU SUBLANG_DEFAULT 00981 #endif 00982 #ifndef SUBLANG_CHINESE_SINGAPORE 00983 #define SUBLANG_CHINESE_SINGAPORE SUBLANG_DEFAULT 00984 #endif 00985 #ifndef SUBLANG_DUTCH 00986 #define SUBLANG_DUTCH SUBLANG_DEFAULT 00987 #endif 00988 #ifndef SUBLANG_DUTCH_BELGIAN 00989 #define SUBLANG_DUTCH_BELGIAN SUBLANG_DEFAULT 00990 #endif 00991 #ifndef SUBLANG_ENGLISH_UK 00992 #define SUBLANG_ENGLISH_UK SUBLANG_DEFAULT 00993 #endif 00994 #ifndef SUBLANG_ENGLISH_US 00995 #define SUBLANG_ENGLISH_US SUBLANG_DEFAULT 00996 #endif 00997 #ifndef SUBLANG_ENGLISH_AUS 00998 #define SUBLANG_ENGLISH_AUS SUBLANG_DEFAULT 00999 #endif 01000 #ifndef SUBLANG_ENGLISH_BELIZE 01001 #define SUBLANG_ENGLISH_BELIZE SUBLANG_DEFAULT 01002 #endif 01003 #ifndef SUBLANG_ENGLISH_CAN 01004 #define SUBLANG_ENGLISH_CAN SUBLANG_DEFAULT 01005 #endif 01006 #ifndef SUBLANG_ENGLISH_CARIBBEAN 01007 #define SUBLANG_ENGLISH_CARIBBEAN SUBLANG_DEFAULT 01008 #endif 01009 #ifndef SUBLANG_ENGLISH_EIRE 01010 #define SUBLANG_ENGLISH_EIRE SUBLANG_DEFAULT 01011 #endif 01012 #ifndef SUBLANG_ENGLISH_JAMAICA 01013 #define SUBLANG_ENGLISH_JAMAICA SUBLANG_DEFAULT 01014 #endif 01015 #ifndef SUBLANG_ENGLISH_NZ 01016 #define SUBLANG_ENGLISH_NZ SUBLANG_DEFAULT 01017 #endif 01018 #ifndef SUBLANG_ENGLISH_PHILIPPINES 01019 #define SUBLANG_ENGLISH_PHILIPPINES SUBLANG_DEFAULT 01020 #endif 01021 #ifndef SUBLANG_ENGLISH_SOUTH_AFRICA 01022 #define SUBLANG_ENGLISH_SOUTH_AFRICA SUBLANG_DEFAULT 01023 #endif 01024 #ifndef SUBLANG_ENGLISH_TRINIDAD 01025 #define SUBLANG_ENGLISH_TRINIDAD SUBLANG_DEFAULT 01026 #endif 01027 #ifndef SUBLANG_ENGLISH_ZIMBABWE 01028 #define SUBLANG_ENGLISH_ZIMBABWE SUBLANG_DEFAULT 01029 #endif 01030 #ifndef SUBLANG_FRENCH 01031 #define SUBLANG_FRENCH SUBLANG_DEFAULT 01032 #endif 01033 #ifndef SUBLANG_FRENCH_BELGIAN 01034 #define SUBLANG_FRENCH_BELGIAN SUBLANG_DEFAULT 01035 #endif 01036 #ifndef SUBLANG_FRENCH_CANADIAN 01037 #define SUBLANG_FRENCH_CANADIAN SUBLANG_DEFAULT 01038 #endif 01039 #ifndef SUBLANG_FRENCH_LUXEMBOURG 01040 #define SUBLANG_FRENCH_LUXEMBOURG SUBLANG_DEFAULT 01041 #endif 01042 #ifndef SUBLANG_FRENCH_MONACO 01043 #define SUBLANG_FRENCH_MONACO SUBLANG_DEFAULT 01044 #endif 01045 #ifndef SUBLANG_FRENCH_SWISS 01046 #define SUBLANG_FRENCH_SWISS SUBLANG_DEFAULT 01047 #endif 01048 #ifndef SUBLANG_GERMAN 01049 #define SUBLANG_GERMAN SUBLANG_DEFAULT 01050 #endif 01051 #ifndef SUBLANG_GERMAN_AUSTRIAN 01052 #define SUBLANG_GERMAN_AUSTRIAN SUBLANG_DEFAULT 01053 #endif 01054 #ifndef SUBLANG_GERMAN_LIECHTENSTEIN 01055 #define SUBLANG_GERMAN_LIECHTENSTEIN SUBLANG_DEFAULT 01056 #endif 01057 #ifndef SUBLANG_GERMAN_LUXEMBOURG 01058 #define SUBLANG_GERMAN_LUXEMBOURG SUBLANG_DEFAULT 01059 #endif 01060 #ifndef SUBLANG_GERMAN_SWISS 01061 #define SUBLANG_GERMAN_SWISS SUBLANG_DEFAULT 01062 #endif 01063 #ifndef SUBLANG_ITALIAN 01064 #define SUBLANG_ITALIAN SUBLANG_DEFAULT 01065 #endif 01066 #ifndef SUBLANG_ITALIAN_SWISS 01067 #define SUBLANG_ITALIAN_SWISS SUBLANG_DEFAULT 01068 #endif 01069 #ifndef SUBLANG_KASHMIRI_INDIA 01070 #define SUBLANG_KASHMIRI_INDIA SUBLANG_DEFAULT 01071 #endif 01072 #ifndef SUBLANG_KOREAN 01073 #define SUBLANG_KOREAN SUBLANG_DEFAULT 01074 #endif 01075 #ifndef SUBLANG_LITHUANIAN 01076 #define SUBLANG_LITHUANIAN SUBLANG_DEFAULT 01077 #endif 01078 #ifndef SUBLANG_MALAY_BRUNEI_DARUSSALAM 01079 #define SUBLANG_MALAY_BRUNEI_DARUSSALAM SUBLANG_DEFAULT 01080 #endif 01081 #ifndef SUBLANG_MALAY_MALAYSIA 01082 #define SUBLANG_MALAY_MALAYSIA SUBLANG_DEFAULT 01083 #endif 01084 #ifndef SUBLANG_NEPALI_INDIA 01085 #define SUBLANG_NEPALI_INDIA SUBLANG_DEFAULT 01086 #endif 01087 #ifndef SUBLANG_NORWEGIAN_BOKMAL 01088 #define SUBLANG_NORWEGIAN_BOKMAL SUBLANG_DEFAULT 01089 #endif 01090 #ifndef SUBLANG_NORWEGIAN_NYNORSK 01091 #define SUBLANG_NORWEGIAN_NYNORSK SUBLANG_DEFAULT 01092 #endif 01093 #ifndef SUBLANG_PORTUGUESE 01094 #define SUBLANG_PORTUGUESE SUBLANG_DEFAULT 01095 #endif 01096 #ifndef SUBLANG_PORTUGUESE_BRAZILIAN 01097 #define SUBLANG_PORTUGUESE_BRAZILIAN SUBLANG_DEFAULT 01098 #endif 01099 #ifndef SUBLANG_SERBIAN_CYRILLIC 01100 #define SUBLANG_SERBIAN_CYRILLIC SUBLANG_DEFAULT 01101 #endif 01102 #ifndef SUBLANG_SERBIAN_LATIN 01103 #define SUBLANG_SERBIAN_LATIN SUBLANG_DEFAULT 01104 #endif 01105 #ifndef SUBLANG_SPANISH 01106 #define SUBLANG_SPANISH SUBLANG_DEFAULT 01107 #endif 01108 #ifndef SUBLANG_SPANISH_ARGENTINA 01109 #define SUBLANG_SPANISH_ARGENTINA SUBLANG_DEFAULT 01110 #endif 01111 #ifndef SUBLANG_SPANISH_BOLIVIA 01112 #define SUBLANG_SPANISH_BOLIVIA SUBLANG_DEFAULT 01113 #endif 01114 #ifndef SUBLANG_SPANISH_CHILE 01115 #define SUBLANG_SPANISH_CHILE SUBLANG_DEFAULT 01116 #endif 01117 #ifndef SUBLANG_SPANISH_COLOMBIA 01118 #define SUBLANG_SPANISH_COLOMBIA SUBLANG_DEFAULT 01119 #endif 01120 #ifndef SUBLANG_SPANISH_COSTA_RICA 01121 #define SUBLANG_SPANISH_COSTA_RICA SUBLANG_DEFAULT 01122 #endif 01123 #ifndef SUBLANG_SPANISH_DOMINICAN_REPUBLIC 01124 #define SUBLANG_SPANISH_DOMINICAN_REPUBLIC SUBLANG_DEFAULT 01125 #endif 01126 #ifndef SUBLANG_SPANISH_ECUADOR 01127 #define SUBLANG_SPANISH_ECUADOR SUBLANG_DEFAULT 01128 #endif 01129 #ifndef SUBLANG_SPANISH_EL_SALVADOR 01130 #define SUBLANG_SPANISH_EL_SALVADOR SUBLANG_DEFAULT 01131 #endif 01132 #ifndef SUBLANG_SPANISH_GUATEMALA 01133 #define SUBLANG_SPANISH_GUATEMALA SUBLANG_DEFAULT 01134 #endif 01135 #ifndef SUBLANG_SPANISH_HONDURAS 01136 #define SUBLANG_SPANISH_HONDURAS SUBLANG_DEFAULT 01137 #endif 01138 #ifndef SUBLANG_SPANISH_MEXICAN 01139 #define SUBLANG_SPANISH_MEXICAN SUBLANG_DEFAULT 01140 #endif 01141 #ifndef SUBLANG_SPANISH_MODERN 01142 #define SUBLANG_SPANISH_MODERN SUBLANG_DEFAULT 01143 #endif 01144 #ifndef SUBLANG_SPANISH_NICARAGUA 01145 #define SUBLANG_SPANISH_NICARAGUA SUBLANG_DEFAULT 01146 #endif 01147 #ifndef SUBLANG_SPANISH_PANAMA 01148 #define SUBLANG_SPANISH_PANAMA SUBLANG_DEFAULT 01149 #endif 01150 #ifndef SUBLANG_SPANISH_PARAGUAY 01151 #define SUBLANG_SPANISH_PARAGUAY SUBLANG_DEFAULT 01152 #endif 01153 #ifndef SUBLANG_SPANISH_PERU 01154 #define SUBLANG_SPANISH_PERU SUBLANG_DEFAULT 01155 #endif 01156 #ifndef SUBLANG_SPANISH_PUERTO_RICO 01157 #define SUBLANG_SPANISH_PUERTO_RICO SUBLANG_DEFAULT 01158 #endif 01159 #ifndef SUBLANG_SPANISH_URUGUAY 01160 #define SUBLANG_SPANISH_URUGUAY SUBLANG_DEFAULT 01161 #endif 01162 #ifndef SUBLANG_SPANISH_VENEZUELA 01163 #define SUBLANG_SPANISH_VENEZUELA SUBLANG_DEFAULT 01164 #endif 01165 #ifndef SUBLANG_SWEDISH 01166 #define SUBLANG_SWEDISH SUBLANG_DEFAULT 01167 #endif 01168 #ifndef SUBLANG_SWEDISH_FINLAND 01169 #define SUBLANG_SWEDISH_FINLAND SUBLANG_DEFAULT 01170 #endif 01171 #ifndef SUBLANG_URDU_INDIA 01172 #define SUBLANG_URDU_INDIA SUBLANG_DEFAULT 01173 #endif 01174 #ifndef SUBLANG_URDU_PAKISTAN 01175 #define SUBLANG_URDU_PAKISTAN SUBLANG_DEFAULT 01176 #endif 01177 #ifndef SUBLANG_UZBEK_CYRILLIC 01178 #define SUBLANG_UZBEK_CYRILLIC SUBLANG_DEFAULT 01179 #endif 01180 #ifndef SUBLANG_UZBEK_LATIN 01181 #define SUBLANG_UZBEK_LATIN SUBLANG_DEFAULT 01182 #endif 01183 01184 01185 #endif // __WIN32__ 01186 01187 #define LNG(wxlang, canonical, winlang, winsublang, desc) \ 01188 info = new wxLanguageInfo; \ 01189 info->Language = wxlang; \ 01190 info->CanonicalName = wxT(canonical); \ 01191 info->Description = wxT(desc); \ 01192 SETWINLANG(info, winlang, winsublang) \ 01193 lngInfos.Add(info); 01194 01195 01196 /** 01197 * Creates on new database of known languages. 01198 */ 01199 void Languages::CreateLanguagesDB() 01200 { 01201 wxLanguageInfo* info; 01202 01203 LNG(wxLANGUAGE_ABKHAZIAN, "ab" , 0 , 0 , "Abkhazian") 01204 LNG(wxLANGUAGE_AFAR, "aa" , 0 , 0 , "Afar") 01205 LNG(wxLANGUAGE_AFRIKAANS, "af_ZA", LANG_AFRIKAANS , SUBLANG_DEFAULT , "Afrikaans") 01206 LNG(wxLANGUAGE_ALBANIAN, "sq_AL", LANG_ALBANIAN , SUBLANG_DEFAULT , "Albanian") 01207 LNG(wxLANGUAGE_AMHARIC, "am" , 0 , 0 , "Amharic") 01208 LNG(wxLANGUAGE_ARABIC, "ar" , LANG_ARABIC , SUBLANG_DEFAULT , "Arabic") 01209 LNG(wxLANGUAGE_ARABIC_ALGERIA, "ar_DZ", LANG_ARABIC , SUBLANG_ARABIC_ALGERIA , "Arabic (Algeria)") 01210 LNG(wxLANGUAGE_ARABIC_BAHRAIN, "ar_BH", LANG_ARABIC , SUBLANG_ARABIC_BAHRAIN , "Arabic (Bahrain)") 01211 LNG(wxLANGUAGE_ARABIC_EGYPT, "ar_EG", LANG_ARABIC , SUBLANG_ARABIC_EGYPT , "Arabic (Egypt)") 01212 LNG(wxLANGUAGE_ARABIC_IRAQ, "ar_IQ", LANG_ARABIC , SUBLANG_ARABIC_IRAQ , "Arabic (Iraq)") 01213 LNG(wxLANGUAGE_ARABIC_JORDAN, "ar_JO", LANG_ARABIC , SUBLANG_ARABIC_JORDAN , "Arabic (Jordan)") 01214 LNG(wxLANGUAGE_ARABIC_KUWAIT, "ar_KW", LANG_ARABIC , SUBLANG_ARABIC_KUWAIT , "Arabic (Kuwait)") 01215 LNG(wxLANGUAGE_ARABIC_LEBANON, "ar_LB", LANG_ARABIC , SUBLANG_ARABIC_LEBANON , "Arabic (Lebanon)") 01216 LNG(wxLANGUAGE_ARABIC_LIBYA, "ar_LY", LANG_ARABIC , SUBLANG_ARABIC_LIBYA , "Arabic (Libya)") 01217 LNG(wxLANGUAGE_ARABIC_MOROCCO, "ar_MA", LANG_ARABIC , SUBLANG_ARABIC_MOROCCO , "Arabic (Morocco)") 01218 LNG(wxLANGUAGE_ARABIC_OMAN, "ar_OM", LANG_ARABIC , SUBLANG_ARABIC_OMAN , "Arabic (Oman)") 01219 LNG(wxLANGUAGE_ARABIC_QATAR, "ar_QA", LANG_ARABIC , SUBLANG_ARABIC_QATAR , "Arabic (Qatar)") 01220 LNG(wxLANGUAGE_ARABIC_SAUDI_ARABIA, "ar_SA", LANG_ARABIC , SUBLANG_ARABIC_SAUDI_ARABIA , "Arabic (Saudi Arabia)") 01221 LNG(wxLANGUAGE_ARABIC_SUDAN, "ar_SD", 0 , 0 , "Arabic (Sudan)") 01222 LNG(wxLANGUAGE_ARABIC_SYRIA, "ar_SY", LANG_ARABIC , SUBLANG_ARABIC_SYRIA , "Arabic (Syria)") 01223 LNG(wxLANGUAGE_ARABIC_TUNISIA, "ar_TN", LANG_ARABIC , SUBLANG_ARABIC_TUNISIA , "Arabic (Tunisia)") 01224 LNG(wxLANGUAGE_ARABIC_UAE, "ar_AE", LANG_ARABIC , SUBLANG_ARABIC_UAE , "Arabic (Uae)") 01225 LNG(wxLANGUAGE_ARABIC_YEMEN, "ar_YE", LANG_ARABIC , SUBLANG_ARABIC_YEMEN , "Arabic (Yemen)") 01226 LNG(wxLANGUAGE_ARMENIAN, "hy" , LANG_ARMENIAN , SUBLANG_DEFAULT , "Armenian") 01227 LNG(wxLANGUAGE_ASSAMESE, "as" , LANG_ASSAMESE , SUBLANG_DEFAULT , "Assamese") 01228 LNG(wxLANGUAGE_AYMARA, "ay" , 0 , 0 , "Aymara") 01229 LNG(wxLANGUAGE_AZERI, "az" , LANG_AZERI , SUBLANG_DEFAULT , "Azeri") 01230 LNG(wxLANGUAGE_AZERI_CYRILLIC, "az" , LANG_AZERI , SUBLANG_AZERI_CYRILLIC , "Azeri (Cyrillic)") 01231 LNG(wxLANGUAGE_AZERI_LATIN, "az" , LANG_AZERI , SUBLANG_AZERI_LATIN , "Azeri (Latin)") 01232 LNG(wxLANGUAGE_BASHKIR, "ba" , 0 , 0 , "Bashkir") 01233 LNG(wxLANGUAGE_BASQUE, "eu_ES", LANG_BASQUE , SUBLANG_DEFAULT , "Basque") 01234 LNG(wxLANGUAGE_BELARUSIAN, "be_BY", LANG_BELARUSIAN, SUBLANG_DEFAULT , "Belarusian") 01235 LNG(wxLANGUAGE_BENGALI, "bn" , LANG_BENGALI , SUBLANG_DEFAULT , "Bengali") 01236 LNG(wxLANGUAGE_BHUTANI, "dz" , 0 , 0 , "Bhutani") 01237 LNG(wxLANGUAGE_BIHARI, "bh" , 0 , 0 , "Bihari") 01238 LNG(wxLANGUAGE_BISLAMA, "bi" , 0 , 0 , "Bislama") 01239 LNG(wxLANGUAGE_BRETON, "br" , 0 , 0 , "Breton") 01240 LNG(wxLANGUAGE_BULGARIAN, "bg_BG", LANG_BULGARIAN , SUBLANG_DEFAULT , "Bulgarian") 01241 LNG(wxLANGUAGE_BURMESE, "my" , 0 , 0 , "Burmese") 01242 LNG(wxLANGUAGE_CAMBODIAN, "km" , 0 , 0 , "Cambodian") 01243 LNG(wxLANGUAGE_CATALAN, "ca_ES", LANG_CATALAN , SUBLANG_DEFAULT , "Catalan") 01244 LNG(wxLANGUAGE_CHINESE, "zh_CN", LANG_CHINESE , SUBLANG_DEFAULT , "Chinese") 01245 LNG(wxLANGUAGE_CHINESE_SIMPLIFIED, "zh_CN", LANG_CHINESE , SUBLANG_CHINESE_SIMPLIFIED , "Chinese (Simplified)") 01246 LNG(wxLANGUAGE_CHINESE_TRADITIONAL, "zh_TW", LANG_CHINESE , SUBLANG_CHINESE_TRADITIONAL , "Chinese (Traditional)") 01247 LNG(wxLANGUAGE_CHINESE_HONGKONG, "zh_HK", LANG_CHINESE , SUBLANG_CHINESE_HONGKONG , "Chinese (Hongkong)") 01248 LNG(wxLANGUAGE_CHINESE_MACAU, "zh_MO", LANG_CHINESE , SUBLANG_CHINESE_MACAU , "Chinese (Macau)") 01249 LNG(wxLANGUAGE_CHINESE_SINGAPORE, "zh_SG", LANG_CHINESE , SUBLANG_CHINESE_SINGAPORE , "Chinese (Singapore)") 01250 LNG(wxLANGUAGE_CHINESE_TAIWAN, "zh_TW", LANG_CHINESE , SUBLANG_CHINESE_TRADITIONAL , "Chinese (Taiwan)") 01251 LNG(wxLANGUAGE_CORSICAN, "co" , 0 , 0 , "Corsican") 01252 LNG(wxLANGUAGE_CROATIAN, "hr_HR", LANG_CROATIAN , SUBLANG_DEFAULT , "Croatian") 01253 LNG(wxLANGUAGE_CZECH, "cs_CZ", LANG_CZECH , SUBLANG_DEFAULT , "Czech") 01254 LNG(wxLANGUAGE_DANISH, "da_DK", LANG_DANISH , SUBLANG_DEFAULT , "Danish") 01255 LNG(wxLANGUAGE_DUTCH, "nl_NL", LANG_DUTCH , SUBLANG_DUTCH , "Dutch") 01256 LNG(wxLANGUAGE_DUTCH_BELGIAN, "nl_BE", LANG_DUTCH , SUBLANG_DUTCH_BELGIAN , "Dutch (Belgian)") 01257 LNG(wxLANGUAGE_ENGLISH, "en_GB", LANG_ENGLISH , SUBLANG_ENGLISH_UK , "English") 01258 LNG(wxLANGUAGE_ENGLISH_UK, "en_GB", LANG_ENGLISH , SUBLANG_ENGLISH_UK , "English (U.K.)") 01259 LNG(wxLANGUAGE_ENGLISH_US, "en_US", LANG_ENGLISH , SUBLANG_ENGLISH_US , "English (U.S.)") 01260 LNG(wxLANGUAGE_ENGLISH_AUSTRALIA, "en_AU", LANG_ENGLISH , SUBLANG_ENGLISH_AUS , "English (Australia)") 01261 LNG(wxLANGUAGE_ENGLISH_BELIZE, "en_BZ", LANG_ENGLISH , SUBLANG_ENGLISH_BELIZE , "English (Belize)") 01262 LNG(wxLANGUAGE_ENGLISH_BOTSWANA, "en_BW", 0 , 0 , "English (Botswana)") 01263 LNG(wxLANGUAGE_ENGLISH_CANADA, "en_CA", LANG_ENGLISH , SUBLANG_ENGLISH_CAN , "English (Canada)") 01264 LNG(wxLANGUAGE_ENGLISH_CARIBBEAN, "en_CB", LANG_ENGLISH , SUBLANG_ENGLISH_CARIBBEAN , "English (Caribbean)") 01265 LNG(wxLANGUAGE_ENGLISH_DENMARK, "en_DK", 0 , 0 , "English (Denmark)") 01266 LNG(wxLANGUAGE_ENGLISH_EIRE, "en_IE", LANG_ENGLISH , SUBLANG_ENGLISH_EIRE , "English (Eire)") 01267 LNG(wxLANGUAGE_ENGLISH_JAMAICA, "en_JM", LANG_ENGLISH , SUBLANG_ENGLISH_JAMAICA , "English (Jamaica)") 01268 LNG(wxLANGUAGE_ENGLISH_NEW_ZEALAND, "en_NZ", LANG_ENGLISH , SUBLANG_ENGLISH_NZ , "English (New Zealand)") 01269 LNG(wxLANGUAGE_ENGLISH_PHILIPPINES, "en_PH", LANG_ENGLISH , SUBLANG_ENGLISH_PHILIPPINES , "English (Philippines)") 01270 LNG(wxLANGUAGE_ENGLISH_SOUTH_AFRICA, "en_ZA", LANG_ENGLISH , SUBLANG_ENGLISH_SOUTH_AFRICA , "English (South Africa)") 01271 LNG(wxLANGUAGE_ENGLISH_TRINIDAD, "en_TT", LANG_ENGLISH , SUBLANG_ENGLISH_TRINIDAD , "English (Trinidad)") 01272 LNG(wxLANGUAGE_ENGLISH_ZIMBABWE, "en_ZW", LANG_ENGLISH , SUBLANG_ENGLISH_ZIMBABWE , "English (Zimbabwe)") 01273 LNG(wxLANGUAGE_ESPERANTO, "eo" , 0 , 0 , "Esperanto") 01274 LNG(wxLANGUAGE_ESTONIAN, "et_EE", LANG_ESTONIAN , SUBLANG_DEFAULT , "Estonian") 01275 LNG(wxLANGUAGE_FAEROESE, "fo_FO", LANG_FAEROESE , SUBLANG_DEFAULT , "Faeroese") 01276 LNG(wxLANGUAGE_FARSI, "fa_IR", LANG_FARSI , SUBLANG_DEFAULT , "Farsi") 01277 LNG(wxLANGUAGE_FIJI, "fj" , 0 , 0 , "Fiji") 01278 LNG(wxLANGUAGE_FINNISH, "fi_FI", LANG_FINNISH , SUBLANG_DEFAULT , "Finnish") 01279 LNG(wxLANGUAGE_FRENCH, "fr_FR", LANG_FRENCH , SUBLANG_FRENCH , "French") 01280 LNG(wxLANGUAGE_FRENCH_BELGIAN, "fr_BE", LANG_FRENCH , SUBLANG_FRENCH_BELGIAN , "French (Belgian)") 01281 LNG(wxLANGUAGE_FRENCH_CANADIAN, "fr_CA", LANG_FRENCH , SUBLANG_FRENCH_CANADIAN , "French (Canadian)") 01282 LNG(wxLANGUAGE_FRENCH_LUXEMBOURG, "fr_LU", LANG_FRENCH , SUBLANG_FRENCH_LUXEMBOURG , "French (Luxembourg)") 01283 LNG(wxLANGUAGE_FRENCH_MONACO, "fr_MC", LANG_FRENCH , SUBLANG_FRENCH_MONACO , "French (Monaco)") 01284 LNG(wxLANGUAGE_FRENCH_SWISS, "fr_CH", LANG_FRENCH , SUBLANG_FRENCH_SWISS , "French (Swiss)") 01285 LNG(wxLANGUAGE_FRISIAN, "fy" , 0 , 0 , "Frisian") 01286 LNG(wxLANGUAGE_GALICIAN, "gl_ES", 0 , 0 , "Galician") 01287 LNG(wxLANGUAGE_GEORGIAN, "ka" , LANG_GEORGIAN , SUBLANG_DEFAULT , "Georgian") 01288 LNG(wxLANGUAGE_GERMAN, "de_DE", LANG_GERMAN , SUBLANG_GERMAN , "German") 01289 LNG(wxLANGUAGE_GERMAN_AUSTRIAN, "de_AT", LANG_GERMAN , SUBLANG_GERMAN_AUSTRIAN , "German (Austrian)") 01290 LNG(wxLANGUAGE_GERMAN_BELGIUM, "de_BE", 0 , 0 , "German (Belgium)") 01291 LNG(wxLANGUAGE_GERMAN_LIECHTENSTEIN, "de_LI", LANG_GERMAN , SUBLANG_GERMAN_LIECHTENSTEIN , "German (Liechtenstein)") 01292 LNG(wxLANGUAGE_GERMAN_LUXEMBOURG, "de_LU", LANG_GERMAN , SUBLANG_GERMAN_LUXEMBOURG , "German (Luxembourg)") 01293 LNG(wxLANGUAGE_GERMAN_SWISS, "de_CH", LANG_GERMAN , SUBLANG_GERMAN_SWISS , "German (Swiss)") 01294 LNG(wxLANGUAGE_GREEK, "el_GR", LANG_GREEK , SUBLANG_DEFAULT , "Greek") 01295 LNG(wxLANGUAGE_GREENLANDIC, "kl_GL", 0 , 0 , "Greenlandic") 01296 LNG(wxLANGUAGE_GUARANI, "gn" , 0 , 0 , "Guarani") 01297 LNG(wxLANGUAGE_GUJARATI, "gu" , LANG_GUJARATI , SUBLANG_DEFAULT , "Gujarati") 01298 LNG(wxLANGUAGE_HAUSA, "ha" , 0 , 0 , "Hausa") 01299 LNG(wxLANGUAGE_HEBREW, "he_IL", LANG_HEBREW , SUBLANG_DEFAULT , "Hebrew") 01300 LNG(wxLANGUAGE_HINDI, "hi_IN", LANG_HINDI , SUBLANG_DEFAULT , "Hindi") 01301 LNG(wxLANGUAGE_HUNGARIAN, "hu_HU", LANG_HUNGARIAN , SUBLANG_DEFAULT , "Hungarian") 01302 LNG(wxLANGUAGE_ICELANDIC, "is_IS", LANG_ICELANDIC , SUBLANG_DEFAULT , "Icelandic") 01303 LNG(wxLANGUAGE_INDONESIAN, "id_ID", LANG_INDONESIAN, SUBLANG_DEFAULT , "Indonesian") 01304 LNG(wxLANGUAGE_INTERLINGUA, "ia" , 0 , 0 , "Interlingua") 01305 LNG(wxLANGUAGE_INTERLINGUE, "ie" , 0 , 0 , "Interlingue") 01306 LNG(wxLANGUAGE_INUKTITUT, "iu" , 0 , 0 , "Inuktitut") 01307 LNG(wxLANGUAGE_INUPIAK, "ik" , 0 , 0 , "Inupiak") 01308 LNG(wxLANGUAGE_IRISH, "ga_IE", 0 , 0 , "Irish") 01309 LNG(wxLANGUAGE_ITALIAN, "it_IT", LANG_ITALIAN , SUBLANG_ITALIAN , "Italian") 01310 LNG(wxLANGUAGE_ITALIAN_SWISS, "it_CH", LANG_ITALIAN , SUBLANG_ITALIAN_SWISS , "Italian (Swiss)") 01311 LNG(wxLANGUAGE_JAPANESE, "ja_JP", LANG_JAPANESE , SUBLANG_DEFAULT , "Japanese") 01312 LNG(wxLANGUAGE_JAVANESE, "jw" , 0 , 0 , "Javanese") 01313 LNG(wxLANGUAGE_KANNADA, "kn" , LANG_KANNADA , SUBLANG_DEFAULT , "Kannada") 01314 LNG(wxLANGUAGE_KASHMIRI, "ks" , LANG_KASHMIRI , SUBLANG_DEFAULT , "Kashmiri") 01315 LNG(wxLANGUAGE_KASHMIRI_INDIA, "ks_IN", LANG_KASHMIRI , SUBLANG_KASHMIRI_INDIA , "Kashmiri (India)") 01316 LNG(wxLANGUAGE_KAZAKH, "kk" , LANG_KAZAK , SUBLANG_DEFAULT , "Kazakh") 01317 LNG(wxLANGUAGE_KERNEWEK, "kw_GB", 0 , 0 , "Kernewek") 01318 LNG(wxLANGUAGE_KINYARWANDA, "rw" , 0 , 0 , "Kinyarwanda") 01319 LNG(wxLANGUAGE_KIRGHIZ, "ky" , 0 , 0 , "Kirghiz") 01320 LNG(wxLANGUAGE_KIRUNDI, "rn" , 0 , 0 , "Kirundi") 01321 LNG(wxLANGUAGE_KONKANI, "" , LANG_KONKANI , SUBLANG_DEFAULT , "Konkani") 01322 LNG(wxLANGUAGE_KOREAN, "ko_KR", LANG_KOREAN , SUBLANG_KOREAN , "Korean") 01323 LNG(wxLANGUAGE_KURDISH, "ku" , 0 , 0 , "Kurdish") 01324 LNG(wxLANGUAGE_LAOTHIAN, "lo" , 0 , 0 , "Laothian") 01325 LNG(wxLANGUAGE_LATIN, "la" , 0 , 0 , "Latin") 01326 LNG(wxLANGUAGE_LATVIAN, "lv_LV", LANG_LATVIAN , SUBLANG_DEFAULT , "Latvian") 01327 LNG(wxLANGUAGE_LINGALA, "ln" , 0 , 0 , "Lingala") 01328 LNG(wxLANGUAGE_LITHUANIAN, "lt_LT", LANG_LITHUANIAN, SUBLANG_LITHUANIAN , "Lithuanian") 01329 LNG(wxLANGUAGE_MACEDONIAN, "mk_MK", LANG_MACEDONIAN, SUBLANG_DEFAULT , "Macedonian") 01330 LNG(wxLANGUAGE_MALAGASY, "mg" , 0 , 0 , "Malagasy") 01331 LNG(wxLANGUAGE_MALAY, "ms_MY", LANG_MALAY , SUBLANG_DEFAULT , "Malay") 01332 LNG(wxLANGUAGE_MALAYALAM, "ml" , LANG_MALAYALAM , SUBLANG_DEFAULT , "Malayalam") 01333 LNG(wxLANGUAGE_MALAY_BRUNEI_DARUSSALAM, "ms_BN", LANG_MALAY , SUBLANG_MALAY_BRUNEI_DARUSSALAM , "Malay (Brunei Darussalam)") 01334 LNG(wxLANGUAGE_MALAY_MALAYSIA, "ms_MY", LANG_MALAY , SUBLANG_MALAY_MALAYSIA , "Malay (Malaysia)") 01335 LNG(wxLANGUAGE_MALTESE, "mt_MT", 0 , 0 , "Maltese") 01336 LNG(wxLANGUAGE_MANIPURI, "" , LANG_MANIPURI , SUBLANG_DEFAULT , "Manipuri") 01337 LNG(wxLANGUAGE_MAORI, "mi" , 0 , 0 , "Maori") 01338 LNG(wxLANGUAGE_MARATHI, "mr_IN", LANG_MARATHI , SUBLANG_DEFAULT , "Marathi") 01339 LNG(wxLANGUAGE_MOLDAVIAN, "mo" , 0 , 0 , "Moldavian") 01340 LNG(wxLANGUAGE_MONGOLIAN, "mn" , 0 , 0 , "Mongolian") 01341 LNG(wxLANGUAGE_NAURU, "na" , 0 , 0 , "Nauru") 01342 LNG(wxLANGUAGE_NEPALI, "ne" , LANG_NEPALI , SUBLANG_DEFAULT , "Nepali") 01343 LNG(wxLANGUAGE_NEPALI_INDIA, "ne_IN", LANG_NEPALI , SUBLANG_NEPALI_INDIA , "Nepali (India)") 01344 LNG(wxLANGUAGE_NORWEGIAN_BOKMAL, "nb_NO", LANG_NORWEGIAN , SUBLANG_NORWEGIAN_BOKMAL , "Norwegian (Bokmal)") 01345 LNG(wxLANGUAGE_NORWEGIAN_NYNORSK, "nn_NO", LANG_NORWEGIAN , SUBLANG_NORWEGIAN_NYNORSK , "Norwegian (Nynorsk)") 01346 LNG(wxLANGUAGE_OCCITAN, "oc" , 0 , 0 , "Occitan") 01347 LNG(wxLANGUAGE_ORIYA, "or" , LANG_ORIYA , SUBLANG_DEFAULT , "Oriya") 01348 LNG(wxLANGUAGE_OROMO, "om" , 0 , 0 , "(Afan) Oromo") 01349 LNG(wxLANGUAGE_PASHTO, "ps" , 0 , 0 , "Pashto, Pushto") 01350 LNG(wxLANGUAGE_POLISH, "pl_PL", LANG_POLISH , SUBLANG_DEFAULT , "Polish") 01351 LNG(wxLANGUAGE_PORTUGUESE, "pt_PT", LANG_PORTUGUESE, SUBLANG_PORTUGUESE , "Portuguese") 01352 LNG(wxLANGUAGE_PORTUGUESE_BRAZILIAN, "pt_BR", LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN , "Portuguese (Brazilian)") 01353 LNG(wxLANGUAGE_PUNJABI, "pa" , LANG_PUNJABI , SUBLANG_DEFAULT , "Punjabi") 01354 LNG(wxLANGUAGE_QUECHUA, "qu" , 0 , 0 , "Quechua") 01355 LNG(wxLANGUAGE_RHAETO_ROMANCE, "rm" , 0 , 0 , "Rhaeto-Romance") 01356 LNG(wxLANGUAGE_ROMANIAN, "ro_RO", LANG_ROMANIAN , SUBLANG_DEFAULT , "Romanian") 01357 LNG(wxLANGUAGE_RUSSIAN, "ru_RU", LANG_RUSSIAN , SUBLANG_DEFAULT , "Russian") 01358 LNG(wxLANGUAGE_RUSSIAN_UKRAINE, "ru_UA", 0 , 0 , "Russian (Ukraine)") 01359 LNG(wxLANGUAGE_SAMOAN, "sm" , 0 , 0 , "Samoan") 01360 LNG(wxLANGUAGE_SANGHO, "sg" , 0 , 0 , "Sangho") 01361 LNG(wxLANGUAGE_SANSKRIT, "sa" , LANG_SANSKRIT , SUBLANG_DEFAULT , "Sanskrit") 01362 LNG(wxLANGUAGE_SCOTS_GAELIC, "gd" , 0 , 0 , "Scots Gaelic") 01363 LNG(wxLANGUAGE_SERBIAN, "sr_YU", LANG_SERBIAN , SUBLANG_DEFAULT , "Serbian") 01364 LNG(wxLANGUAGE_SERBIAN_CYRILLIC, "sr_YU", LANG_SERBIAN , SUBLANG_SERBIAN_CYRILLIC , "Serbian (Cyrillic)") 01365 LNG(wxLANGUAGE_SERBIAN_LATIN, "sr_YU", LANG_SERBIAN , SUBLANG_SERBIAN_LATIN , "Serbian (Latin)") 01366 LNG(wxLANGUAGE_SERBO_CROATIAN, "sh" , 0 , 0 , "Serbo-Croatian") 01367 LNG(wxLANGUAGE_SESOTHO, "st" , 0 , 0 , "Sesotho") 01368 LNG(wxLANGUAGE_SETSWANA, "tn" , 0 , 0 , "Setswana") 01369 LNG(wxLANGUAGE_SHONA, "sn" , 0 , 0 , "Shona") 01370 LNG(wxLANGUAGE_SINDHI, "sd" , LANG_SINDHI , SUBLANG_DEFAULT , "Sindhi") 01371 LNG(wxLANGUAGE_SINHALESE, "si" , 0 , 0 , "Sinhalese") 01372 LNG(wxLANGUAGE_SISWATI, "ss" , 0 , 0 , "Siswati") 01373 LNG(wxLANGUAGE_SLOVAK, "sk_SK", LANG_SLOVAK , SUBLANG_DEFAULT , "Slovak") 01374 LNG(wxLANGUAGE_SLOVENIAN, "sl_SI", LANG_SLOVENIAN , SUBLANG_DEFAULT , "Slovenian") 01375 LNG(wxLANGUAGE_SOMALI, "so" , 0 , 0 , "Somali") 01376 LNG(wxLANGUAGE_SPANISH, "es_ES", LANG_SPANISH , SUBLANG_SPANISH , "Spanish") 01377 LNG(wxLANGUAGE_SPANISH_ARGENTINA, "es_AR", LANG_SPANISH , SUBLANG_SPANISH_ARGENTINA , "Spanish (Argentina)") 01378 LNG(wxLANGUAGE_SPANISH_BOLIVIA, "es_BO", LANG_SPANISH , SUBLANG_SPANISH_BOLIVIA , "Spanish (Bolivia)") 01379 LNG(wxLANGUAGE_SPANISH_CHILE, "es_CL", LANG_SPANISH , SUBLANG_SPANISH_CHILE , "Spanish (Chile)") 01380 LNG(wxLANGUAGE_SPANISH_COLOMBIA, "es_CO", LANG_SPANISH , SUBLANG_SPANISH_COLOMBIA , "Spanish (Colombia)") 01381 LNG(wxLANGUAGE_SPANISH_COSTA_RICA, "es_CR", LANG_SPANISH , SUBLANG_SPANISH_COSTA_RICA , "Spanish (Costa Rica)") 01382 LNG(wxLANGUAGE_SPANISH_DOMINICAN_REPUBLIC, "es_DO", LANG_SPANISH , SUBLANG_SPANISH_DOMINICAN_REPUBLIC, "Spanish (Dominican republic)") 01383 LNG(wxLANGUAGE_SPANISH_ECUADOR, "es_EC", LANG_SPANISH , SUBLANG_SPANISH_ECUADOR , "Spanish (Ecuador)") 01384 LNG(wxLANGUAGE_SPANISH_EL_SALVADOR, "es_SV", LANG_SPANISH , SUBLANG_SPANISH_EL_SALVADOR , "Spanish (El Salvador)") 01385 LNG(wxLANGUAGE_SPANISH_GUATEMALA, "es_GT", LANG_SPANISH , SUBLANG_SPANISH_GUATEMALA , "Spanish (Guatemala)") 01386 LNG(wxLANGUAGE_SPANISH_HONDURAS, "es_HN", LANG_SPANISH , SUBLANG_SPANISH_HONDURAS , "Spanish (Honduras)") 01387 LNG(wxLANGUAGE_SPANISH_MEXICAN, "es_MX", LANG_SPANISH , SUBLANG_SPANISH_MEXICAN , "Spanish (Mexican)") 01388 LNG(wxLANGUAGE_SPANISH_MODERN, "es_ES", LANG_SPANISH , SUBLANG_SPANISH_MODERN , "Spanish (Modern)") 01389 LNG(wxLANGUAGE_SPANISH_NICARAGUA, "es_NI", LANG_SPANISH , SUBLANG_SPANISH_NICARAGUA , "Spanish (Nicaragua)") 01390 LNG(wxLANGUAGE_SPANISH_PANAMA, "es_PA", LANG_SPANISH , SUBLANG_SPANISH_PANAMA , "Spanish (Panama)") 01391 LNG(wxLANGUAGE_SPANISH_PARAGUAY, "es_PY", LANG_SPANISH , SUBLANG_SPANISH_PARAGUAY , "Spanish (Paraguay)") 01392 LNG(wxLANGUAGE_SPANISH_PERU, "es_PE", LANG_SPANISH , SUBLANG_SPANISH_PERU , "Spanish (Peru)") 01393 LNG(wxLANGUAGE_SPANISH_PUERTO_RICO, "es_PR", LANG_SPANISH , SUBLANG_SPANISH_PUERTO_RICO , "Spanish (Puerto Rico)") 01394 LNG(wxLANGUAGE_SPANISH_URUGUAY, "es_UY", LANG_SPANISH , SUBLANG_SPANISH_URUGUAY , "Spanish (Uruguay)") 01395 LNG(wxLANGUAGE_SPANISH_US, "es_US", 0 , 0 , "Spanish (U.S.)") 01396 LNG(wxLANGUAGE_SPANISH_VENEZUELA, "es_VE", LANG_SPANISH , SUBLANG_SPANISH_VENEZUELA , "Spanish (Venezuela)") 01397 LNG(wxLANGUAGE_SUNDANESE, "su" , 0 , 0 , "Sundanese") 01398 LNG(wxLANGUAGE_SWAHILI, "sw_KE", LANG_SWAHILI , SUBLANG_DEFAULT , "Swahili") 01399 LNG(wxLANGUAGE_SWEDISH, "sv_SE", LANG_SWEDISH , SUBLANG_SWEDISH , "Swedish") 01400 LNG(wxLANGUAGE_SWEDISH_FINLAND, "sv_FI", LANG_SWEDISH , SUBLANG_SWEDISH_FINLAND , "Swedish (Finland)") 01401 LNG(wxLANGUAGE_TAGALOG, "tl" , 0 , 0 , "Tagalog") 01402 LNG(wxLANGUAGE_TAJIK, "tg" , 0 , 0 , "Tajik") 01403 LNG(wxLANGUAGE_TAMIL, "ta" , LANG_TAMIL , SUBLANG_DEFAULT , "Tamil") 01404 LNG(wxLANGUAGE_TATAR, "tt" , LANG_TATAR , SUBLANG_DEFAULT , "Tatar") 01405 LNG(wxLANGUAGE_TELUGU, "te" , LANG_TELUGU , SUBLANG_DEFAULT , "Telugu") 01406 LNG(wxLANGUAGE_THAI, "th_TH", LANG_THAI , SUBLANG_DEFAULT , "Thai") 01407 LNG(wxLANGUAGE_TIBETAN, "bo" , 0 , 0 , "Tibetan") 01408 LNG(wxLANGUAGE_TIGRINYA, "ti" , 0 , 0 , "Tigrinya") 01409 LNG(wxLANGUAGE_TONGA, "to" , 0 , 0 , "Tonga") 01410 LNG(wxLANGUAGE_TSONGA, "ts" , 0 , 0 , "Tsonga") 01411 LNG(wxLANGUAGE_TURKISH, "tr_TR", LANG_TURKISH , SUBLANG_DEFAULT , "Turkish") 01412 LNG(wxLANGUAGE_TURKMEN, "tk" , 0 , 0 , "Turkmen") 01413 LNG(wxLANGUAGE_TWI, "tw" , 0 , 0 , "Twi") 01414 LNG(wxLANGUAGE_UIGHUR, "ug" , 0 , 0 , "Uighur") 01415 LNG(wxLANGUAGE_UKRAINIAN, "uk_UA", LANG_UKRAINIAN , SUBLANG_DEFAULT , "Ukrainian") 01416 LNG(wxLANGUAGE_URDU, "ur" , LANG_URDU , SUBLANG_DEFAULT , "Urdu") 01417 LNG(wxLANGUAGE_URDU_INDIA, "ur_IN", LANG_URDU , SUBLANG_URDU_INDIA , "Urdu (India)") 01418 LNG(wxLANGUAGE_URDU_PAKISTAN, "ur_PK", LANG_URDU , SUBLANG_URDU_PAKISTAN , "Urdu (Pakistan)") 01419 LNG(wxLANGUAGE_UZBEK, "uz" , LANG_UZBEK , SUBLANG_DEFAULT , "Uzbek") 01420 LNG(wxLANGUAGE_UZBEK_CYRILLIC, "uz" , LANG_UZBEK , SUBLANG_UZBEK_CYRILLIC , "Uzbek (Cyrillic)") 01421 LNG(wxLANGUAGE_UZBEK_LATIN, "uz" , LANG_UZBEK , SUBLANG_UZBEK_LATIN , "Uzbek (Latin)") 01422 LNG(wxLANGUAGE_VIETNAMESE, "vi_VN", LANG_VIETNAMESE, SUBLANG_DEFAULT , "Vietnamese") 01423 LNG(wxLANGUAGE_VOLAPUK, "vo" , 0 , 0 , "Volapuk") 01424 LNG(wxLANGUAGE_WELSH, "cy" , 0 , 0 , "Welsh") 01425 LNG(wxLANGUAGE_WOLOF, "wo" , 0 , 0 , "Wolof") 01426 LNG(wxLANGUAGE_XHOSA, "xh" , 0 , 0 , "Xhosa") 01427 LNG(wxLANGUAGE_YIDDISH, "yi" , 0 , 0 , "Yiddish") 01428 LNG(wxLANGUAGE_YORUBA, "yo" , 0 , 0 , "Yoruba") 01429 LNG(wxLANGUAGE_ZHUANG, "za" , 0 , 0 , "Zhuang") 01430 LNG(wxLANGUAGE_ZULU, "zu" , 0 , 0 , "Zulu") 01431 01432 }; 01433 #undef LNG 01434 01435 // --- --- --- generated code ends here --- --- --- 01436 01437 01438 /** 01439 * Destroys the database of known languages. 01440 */ 01441 void Languages::DestroyLanguagesDB() 01442 { 01443 WX_CLEAR_ARRAY(lngInfos); 01444 lngInfos.Shrink(); 01445 } 01446 01447 01448 /* 01449 Borland C specifics. 01450 -------------------- 01451 01452 Up to wxWidgets 2.4.2 (and maybe more), the wxLocale::GetLanguageInfo static 01453 method doesn't works with Borland C++ (I'm using the 5.5.1 free command line 01454 compiler). 01455 01456 To resolve the bug(?), I've created a database of languages for Borland 01457 compilers. 01458 01459 Theses attributes and static methods are defined : 01460 * static ArrayLanguageInfo lngInfos; 01461 Array of languages information. 01462 01463 * static void CreateLanguagesDB(); 01464 Creates the languages database. 01465 01466 * static void DestroyLanguagesDB(); 01467 Destroys the languages database. 01468 01469 * static const wxLanguageInfo* GetLanguageInfo(int lang); 01470 Do the same as wxLocale::GetLanguageInfo. 01471 01472 The database is created in the Languages constructor and is destroyed in the 01473 Languages destructor. So don't use Languages::GetLanguageInfo when no 01474 Languages instance exists. 01475 Two instances of Languages at the same time shouldn't exists because the 01476 first destroyed will destroy the database without the second knows it. 01477 01478 The language database has been taken from wxWidgets 2.4.2. If you compile 01479 wxChecksums with another release of wxWidgets, please check in intl.cpp of 01480 wxWidgets if the database has changed. 01481 */ 01482 01483 #endif // __BORLANDC__ 01484

Generated on Sun May 30 13:37:45 2004 for wxChecksums by doxygen 1.3.7