hxlang.h
上传用户:dangjiwu
上传日期:2013-07-19
资源大小:42019k
文件大小:21k
源码类别:

Symbian

开发平台:

Visual C++

  1. /* ***** BEGIN LICENSE BLOCK *****
  2.  * Source last modified: $Id: hxlang.h,v 1.3.36.1 2004/07/09 02:06:18 hubbe Exp $
  3.  * 
  4.  * Portions Copyright (c) 1995-2004 RealNetworks, Inc. All Rights Reserved.
  5.  * 
  6.  * The contents of this file, and the files included with this file,
  7.  * are subject to the current version of the RealNetworks Public
  8.  * Source License (the "RPSL") available at
  9.  * http://www.helixcommunity.org/content/rpsl unless you have licensed
  10.  * the file under the current version of the RealNetworks Community
  11.  * Source License (the "RCSL") available at
  12.  * http://www.helixcommunity.org/content/rcsl, in which case the RCSL
  13.  * will apply. You may also obtain the license terms directly from
  14.  * RealNetworks.  You may not use this file except in compliance with
  15.  * the RPSL or, if you have a valid RCSL with RealNetworks applicable
  16.  * to this file, the RCSL.  Please see the applicable RPSL or RCSL for
  17.  * the rights, obligations and limitations governing use of the
  18.  * contents of the file.
  19.  * 
  20.  * Alternatively, the contents of this file may be used under the
  21.  * terms of the GNU General Public License Version 2 or later (the
  22.  * "GPL") in which case the provisions of the GPL are applicable
  23.  * instead of those above. If you wish to allow use of your version of
  24.  * this file only under the terms of the GPL, and not to allow others
  25.  * to use your version of this file under the terms of either the RPSL
  26.  * or RCSL, indicate your decision by deleting the provisions above
  27.  * and replace them with the notice and other provisions required by
  28.  * the GPL. If you do not delete the provisions above, a recipient may
  29.  * use your version of this file under the terms of any one of the
  30.  * RPSL, the RCSL or the GPL.
  31.  * 
  32.  * This file is part of the Helix DNA Technology. RealNetworks is the
  33.  * developer of the Original Code and owns the copyrights in the
  34.  * portions it created.
  35.  * 
  36.  * This file, and the files included with this file, is distributed
  37.  * and made available on an 'AS IS' basis, WITHOUT WARRANTY OF ANY
  38.  * KIND, EITHER EXPRESS OR IMPLIED, AND REALNETWORKS HEREBY DISCLAIMS
  39.  * ALL SUCH WARRANTIES, INCLUDING WITHOUT LIMITATION, ANY WARRANTIES
  40.  * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, QUIET
  41.  * ENJOYMENT OR NON-INFRINGEMENT.
  42.  * 
  43.  * Technology Compatibility Kit Test Suite(s) Location:
  44.  *    http://www.helixcommunity.org/content/tck
  45.  * 
  46.  * Contributor(s):
  47.  * 
  48.  * ***** END LICENSE BLOCK ***** */
  49.  /***************************************************************************
  50.  
  51.  Abstraction:
  52.  Contains a listing of ISO-639 compliant langauge tags and their
  53.  equivalent LanguageID. Language & sub-language contants are defined
  54.  in "olenls.h", and this file maps langIDs to ISO-639 compliant tags.
  55.  THIS IS A STATIC LIBRARY, no need to instantiate objects from this
  56.  class.
  57.  This class defines a static array mapping ISO-639 language tags
  58.  language IDs. LangIDs are a 16bit number composing of a primary
  59.  langauge and a sub-language. For instance, the lang French-Canadian
  60.  would have a primary language of "French" and a sub-lang of
  61.  "Canadian". See "olenls.h" for more details on langIDs.
  62.  **************************************************************************
  63.  
  64.  To use this class, if you have a languageID and want to get it's
  65.  ISO-639 tag:
  66.      LANGID SomeLangID = MAKELANGID(LANG_FRENCH, SUBLANG_FRENCH_GIBBERISH)
  67.      UINT16 nIndex = CHXLang::FindClosest( SomeLangID )
  68.  Now, since "LANG_FRENCH/SUBLANG_FRENCH_GIBBERISH" doesn't exist,
  69.  the FindClosest() function will return the closest matching language, 
  70.  mainly, French (LANG_FRENCH, SUBLANG_NEUTRAL).
  71.  If French didn't exist, then the function returns -1 as the index. If
  72.  we used "FindExact()" in the above example, we'd get -1 returned
  73.  since "LANG_FRENCH/SUBLANG_FRENCH_GIBBERISH" doesn't exist.
  74.  GetCount() returns the # of languages in the database.
  75.  A langauge index goes from 0 to GetCount()-1.
  76.  Once we have the index, we can get the ISO-639 tag using:
  77.      const char* szISOtag = CHXLang::GetISO639( nIndex );
  78.  
  79.  NULL is returned if the index is out-of-range. You can iterate all
  80.  the langauges in the database with:
  81.      for(UINT16 nIdx=0; nIdx < CHXLang::GetCount(); nIdx++)
  82.      {
  83.          printf("%d = %s n", nIdx, CHXLang::GetISO639(nIdx);
  84.      }
  85.  */
  86. #ifndef _RPLANG_H_
  87. #define _RPLANG_H_
  88. #ifdef _WINDOWS
  89. #   include <windows.h>
  90. #endif
  91. #include "hxtypes.h"
  92. #ifndef LANG_ENGLISH
  93. #define LANG_ENGLISH                     0x09
  94. #endif
  95. #ifndef SUBLANG_ENGLISH_US
  96. #define SUBLANG_ENGLISH_US               0x01
  97. #endif
  98. //We need to define a MAKELCID and MAKELANGID for non windows systems.
  99. #ifndef MAKELCID
  100. #define MAKELCID(a) ((UINT32)(((UINT8)(a)) | (((UINT32)((UINT8)(0))) << 16)))
  101. #endif
  102. #ifndef MAKELANGID
  103. #define MAKELANGID(a, b) ((((UINT8)(b))<<10) | (UINT8)(a))
  104. #endif
  105. #ifndef LANG_ARMENIAN
  106. #define LANG_ARMENIAN                    0x2b
  107. #endif
  108. #ifndef LANG_ASSAMESE
  109. #define LANG_ASSAMESE                    0x4d
  110. #endif
  111. #ifndef LANG_AZERI
  112. #define LANG_AZERI                       0x2c
  113. #endif
  114. #ifndef SUBLANG_AZERI_LATIN
  115. #define SUBLANG_AZERI_LATIN              0x01    // Azeri (Latin)
  116. #endif
  117. #ifndef SUBLANG_AZERI_CYRILLIC
  118. #define SUBLANG_AZERI_CYRILLIC           0x02    // Azeri (Cyrillic)
  119. #endif
  120. #ifndef LANG_BASQUE
  121. #define LANG_BASQUE                      0x2d
  122. #endif
  123. #ifndef LANG_BELARUSIAN
  124. #define LANG_BELARUSIAN                  0x23
  125. #endif
  126. #ifndef LANG_BENGALI
  127. #define LANG_BENGALI                     0x45
  128. #endif
  129. #ifndef SUBLANG_CHINESE_MACAU
  130. #define SUBLANG_CHINESE_MACAU            0x05    // Chinese (Macau)
  131. #endif
  132. #ifndef SUBLANG_ENGLISH_PHILIPPINES
  133. #define SUBLANG_ENGLISH_PHILIPPINES      0x0d    // English (Philippines)
  134. #endif
  135. #ifndef SUBLANG_ENGLISH_ZIMBABWE
  136. #define SUBLANG_ENGLISH_ZIMBABWE         0x0c    // English (Zimbabwe)
  137. #endif
  138. #ifndef LANG_FARSI
  139. #define LANG_FARSI                       0x29
  140. #endif
  141. #ifndef SUBLANG_FRENCH_MONACO
  142. #define SUBLANG_FRENCH_MONACO            0x06    // French (Monaco)
  143. #endif
  144. #ifndef LANG_MACEDONIAN
  145. #define LANG_MACEDONIAN                  0x2f
  146. #endif
  147. #ifndef LANG_GEORGIAN
  148. #define LANG_GEORGIAN                    0x37
  149. #endif
  150. #ifndef LANG_GUJARATI
  151. #define LANG_GUJARATI                    0x47
  152. #endif
  153. #ifndef LANG_HINDI
  154. #define LANG_HINDI                       0x39
  155. #endif
  156. #ifndef LANG_KANNADA
  157. #define LANG_KANNADA                     0x4b
  158. #endif
  159. #ifndef LANG_KAZAK
  160. #define LANG_KAZAK                       0x3f
  161. #endif
  162. #ifndef LANG_MALAY
  163. #define LANG_MALAY                       0x3e
  164. #endif
  165. #ifndef LANG_MALAYALAM
  166. #define LANG_MALAYALAM                   0x4c
  167. #endif
  168. #ifndef SUBLANG_MALAY_MALAYSIA
  169. #define SUBLANG_MALAY_MALAYSIA           0x01    // Malay (Malaysia)
  170. #endif
  171. #ifndef SUBLANG_MALAY_BRUNEI_DARUSSALAM
  172. #define SUBLANG_MALAY_BRUNEI_DARUSSALAM  0x02    // Malay (Brunei Darussalam)
  173. #endif
  174. #ifndef LANG_MARATHI
  175. #define LANG_MARATHI                     0x4e
  176. #endif
  177. #ifndef LANG_NEPALI
  178. #define LANG_NEPALI                      0x61
  179. #endif
  180. #ifndef LANG_ORIYA
  181. #define LANG_ORIYA                       0x48
  182. #endif
  183. #ifndef LANG_PUNJABI
  184. #define LANG_PUNJABI                     0x46
  185. #endif
  186. #ifndef LANG_SANSKRIT
  187. #define LANG_SANSKRIT                    0x4f
  188. #endif
  189. #ifndef LANG_SWAHILI
  190. #define LANG_SWAHILI                     0x41
  191. #endif
  192. #ifndef LANG_TAMIL
  193. #define LANG_TAMIL                       0x49
  194. #endif
  195. #ifndef LANG_TATAR
  196. #define LANG_TATAR                       0x44
  197. #endif
  198. #ifndef LANG_TELUGU
  199. #define LANG_TELUGU                      0x4a
  200. #endif
  201. #ifndef LANG_UZBEK
  202. #define LANG_UZBEK                       0x43
  203. #endif
  204. #ifndef SUBLANG_UZBEK_LATIN
  205. #define SUBLANG_UZBEK_LATIN              0x01    // Uzbek (Latin)
  206. #endif
  207. #ifndef SUBLANG_UZBEK_CYRILLIC
  208. #define SUBLANG_UZBEK_CYRILLIC           0x02    // Uzbek (Cyrillic)
  209. #endif
  210. #ifndef SUBLANG_SERBO_CROATIAN_LATIN
  211. #define SUBLANG_SERBO_CROATIAN_LATIN     0x01    /* Croato-Serbian (Latin) */
  212. #endif
  213. #ifndef LANG_URDU
  214. #define LANG_URDU                        0x20
  215. #endif
  216. typedef struct _HXLangMapping
  217.             {
  218.                 const char* szISO639;
  219.                 UINT16      nLangID;
  220.             } HXLangMapping;
  221.         
  222. class CHXLang
  223. {
  224. public:
  225.     // Given a languageID (defined in olenls.h), this returns the
  226.     // index of the exact language, or -1 if not found.
  227.     static INT16    FindExact(UINT16 nLangID);
  228.     static INT16    FindExact(const char* szISO639);
  229.     // Given a languageID (defined in olenls.h), this returns the
  230.     // index of the closest matching language, or -1
  231.     static INT16    FindClosest(UINT16 nLangID);
  232.     // Given an index from 0 to GetCount()-1 ...
  233.     static const char*  GetISO639(INT16 nIndex);
  234.     static UINT16   GetLangID(INT16 nIndex);
  235.     // Returns the # of langauges in the static database
  236.     static INT16    GetCount();
  237.     static BOOL IsValidIndex(INT16 nIdx) { return(nIdx>=0 && nIdx<GetCount()); }
  238.     
  239. private:
  240.     static const HXLangMapping Languages[];
  241. };
  242. #endif
  243. /*
  244.  
  245. "Afrikaans",                MAKELANGID(LANG_AFRIKAANS,SUBLANG_NEUTRAL)
  246. "Albanian",                 MAKELANGID(LANG_ALBANIAN,SUBLANG_NEUTRAL)
  247. "Arabic",                   MAKELANGID(LANG_ARABIC,SUBLANG_NEUTRAL)
  248. "Arabic-Algeria",           MAKELANGID(LANG_ARABIC,SUBLANG_ARABIC_ALGERIA)
  249. "Arabic-Bahrain",           MAKELANGID(LANG_ARABIC,SUBLANG_ARABIC_BAHRAIN)
  250. "Arabic-Egypt",             MAKELANGID(LANG_ARABIC,SUBLANG_ARABIC_EGYPT)
  251. "Arabic-Iraq",              MAKELANGID(LANG_ARABIC,SUBLANG_ARABIC_IRAQ)
  252. "Arabic-Jordan",            MAKELANGID(LANG_ARABIC,SUBLANG_ARABIC_JORDAN)                
  253. "Arabic-Kuwait",            MAKELANGID(LANG_ARABIC,SUBLANG_ARABIC_KUWAIT)                
  254. "Arabic-Lebanon",           MAKELANGID(LANG_ARABIC,SUBLANG_ARABIC_LEBANON)               
  255. "Arabic-Libya",             MAKELANGID(LANG_ARABIC,SUBLANG_ARABIC_LIBYA)                 
  256. "Arabic-Morocco",           MAKELANGID(LANG_ARABIC,SUBLANG_ARABIC_MOROCCO)               
  257. "Arabic-Oman",              MAKELANGID(LANG_ARABIC,SUBLANG_ARABIC_OMAN)                  
  258. "Arabic-Qatar",             MAKELANGID(LANG_ARABIC,SUBLANG_ARABIC_QATAR)                 
  259. "Arabic-Saudi Arabia",      MAKELANGID(LANG_ARABIC,SUBLANG_ARABIC_SAUDI_ARABIA)
  260. "Arabic-Syria",             MAKELANGID(LANG_ARABIC,SUBLANG_ARABIC_SYRIA)                 
  261. "Arabic-Tunisia",           MAKELANGID(LANG_ARABIC,SUBLANG_ARABIC_TUNISIA)               
  262. "Arabic-UAE",               MAKELANGID(LANG_ARABIC,SUBLANG_ARABIC_UAE)                   
  263. "Arabic-Yemen",             MAKELANGID(LANG_ARABIC,SUBLANG_ARABIC_YEMEN)                 
  264. "Basque",                   MAKELANGID(LANG_BASQUE,SUBLANG_NEUTRAL)                      
  265. "Bulgarian",                MAKELANGID(LANG_BULGARIAN,SUBLANG_NEUTRAL)                   
  266. "Catalan",                  MAKELANGID(LANG_CATALAN,SUBLANG_NEUTRAL)
  267. "Chinese",                     MAKELANGID(LANG_CHINESE,SUBLANG_NEUTRAL)
  268. "Chinese-China",            MAKELANGID(LANG_CHINESE,SUBLANG_CHINESE_SIMPLIFIED)          
  269. "Chinese-Hong Kong",        MAKELANGID(LANG_CHINESE,SUBLANG_CHINESE_HONGKONG)  
  270. "Chinese-Singapore",        MAKELANGID(LANG_CHINESE,SUBLANG_CHINESE_SINGAPORE)           
  271. "Chinese-Taiwan",           MAKELANGID(LANG_CHINESE,SUBLANG_CHINESE_TRADITIONAL)         
  272. "Croatian",                    MAKELANGID(LANG_CROATIAN,SUBLANG_NEUTRAL)
  273. "Czech",                       MAKELANGID(LANG_CZECH,SUBLANG_NEUTRAL)
  274. "Danish",                      MAKELANGID(LANG_DANISH,SUBLANG_NEUTRAL)                      
  275. "Dutch",                       MAKELANGID(LANG_DUTCH,SUBLANG_NEUTRAL)                       
  276. "Dutch-Belgian",            MAKELANGID(LANG_DUTCH,SUBLANG_DUTCH_BELGIAN)                 
  277. "English",                     MAKELANGID(LANG_ENGLISH,SUBLANG_NEUTRAL)                     
  278. "English-Australia",        MAKELANGID(LANG_ENGLISH,SUBLANG_ENGLISH_AUS)                 
  279. "English-Belize",           MAKELANGID(LANG_ENGLISH,SUBLANG_ENGLISH_BELIZE)              
  280. "English-Canada",           MAKELANGID(LANG_ENGLISH,SUBLANG_ENGLISH_CAN)                 
  281. "English-Caribbean",        MAKELANGID(LANG_ENGLISH,SUBLANG_ENGLISH_CARIBBEAN)           
  282. "English-Irish",            MAKELANGID(LANG_ENGLISH,SUBLANG_ENGLISH_EIRE)                
  283. "English-Jamaica",          MAKELANGID(LANG_ENGLISH,SUBLANG_ENGLISH_JAMAICA)             
  284. "English-New Zealand",      MAKELANGID(LANG_ENGLISH,SUBLANG_ENGLISH_NZ)        
  285. "English-South Africa",     MAKELANGID(LANG_ENGLISH,SUBLANG_ENGLISH_SOUTH_AFRICA)
  286. "English-Trinidad",         MAKELANGID(LANG_ENGLISH,SUBLANG_ENGLISH_TRINIDAD)            
  287. "English-UK",               MAKELANGID(LANG_ENGLISH,SUBLANG_ENGLISH_UK)                  
  288. "English-US",               MAKELANGID(LANG_ENGLISH,SUBLANG_ENGLISH_US)                  
  289. "Estonian",                    MAKELANGID(LANG_ESTONIAN,SUBLANG_NEUTRAL)                    
  290. "Faroese",                     MAKELANGID(LANG_FAEROESE,SUBLANG_NEUTRAL)                    
  291. "Finnish",                     MAKELANGID(LANG_FINNISH,SUBLANG_NEUTRAL)                     
  292. "French",                  MAKELANGID(LANG_FRENCH,SUBLANG_NEUTRAL)                      
  293. "French-Belgian",           MAKELANGID(LANG_FRENCH,SUBLANG_FRENCH_BELGIAN)               
  294. "French-Canadian",          MAKELANGID(LANG_FRENCH,SUBLANG_FRENCH_CANADIAN)              
  295. "French-Luxembourg",    MAKELANGID(LANG_FRENCH,SUBLANG_FRENCH_LUXEMBOURG)            
  296. "French-Swiss",         MAKELANGID(LANG_FRENCH,SUBLANG_FRENCH_SWISS)                 
  297. "German",                  MAKELANGID(LANG_GERMAN,SUBLANG_NEUTRAL)                      
  298. "German-Austrian",      MAKELANGID(LANG_GERMAN,SUBLANG_GERMAN_AUSTRIAN)              
  299. "German-Liechtenstein", MAKELANGID(LANG_GERMAN,SUBLANG_GERMAN_LIECHTENSTEIN)         
  300. "German-Luxembourg",    MAKELANGID(LANG_GERMAN,SUBLANG_GERMAN_LUXEMBOURG)            
  301. "German-Swiss",         MAKELANGID(LANG_GERMAN,SUBLANG_GERMAN_SWISS)                 
  302. "Greek",                   MAKELANGID(LANG_GREEK,SUBLANG_NEUTRAL)                       
  303. "Hebrew",                  MAKELANGID(LANG_HEBREW,SUBLANG_NEUTRAL)                      
  304. "Hungarian",               MAKELANGID(LANG_HUNGARIAN,SUBLANG_NEUTRAL)                   
  305. "Icelandic",               MAKELANGID(LANG_ICELANDIC,SUBLANG_NEUTRAL)                   
  306. "Indonesian",              MAKELANGID(LANG_INDONESIAN,SUBLANG_NEUTRAL)                  
  307. "Italian",                 MAKELANGID(LANG_ITALIAN,SUBLANG_NEUTRAL)                     
  308. "Italian-Swiss",        MAKELANGID(LANG_ITALIAN,SUBLANG_ITALIAN_SWISS)               
  309. "Japanese",                MAKELANGID(LANG_JAPANESE,SUBLANG_NEUTRAL)                    
  310. "Korean",                  MAKELANGID(LANG_KOREAN,SUBLANG_NEUTRAL)                      
  311. "Korean-Johab",         MAKELANGID(LANG_KOREAN,SUBLANG_KOREAN_JOHAB)                 
  312. "Latvian",                 MAKELANGID(LANG_LATVIAN,SUBLANG_NEUTRAL)                     
  313. "Lithuanian",              MAKELANGID(LANG_LITHUANIAN,SUBLANG_NEUTRAL)                  
  314. "Norwegian",               MAKELANGID(LANG_NORWEGIAN,SUBLANG_NEUTRAL)                   
  315. "Polish",                  MAKELANGID(LANG_POLISH,SUBLANG_NEUTRAL)                      
  316. "Portuguese",              MAKELANGID(LANG_PORTUGUESE,SUBLANG_NEUTRAL)                  
  317. "Portuguese-Brazilian", MAKELANGID(LANG_PORTUGUESE,SUBLANG_PORTUGUESE_BRAZILIAN)     
  318. "Romanian",                MAKELANGID(LANG_ROMANIAN,SUBLANG_NEUTRAL)                    
  319. "Russian",                 MAKELANGID(LANG_RUSSIAN,SUBLANG_NEUTRAL)                     
  320. "Serbian",                 MAKELANGID(LANG_SERBIAN,SUBLANG_SERBIAN_CYRILLIC)                     
  321. "Slovak",                  MAKELANGID(LANG_SLOVAK,SUBLANG_NEUTRAL)                      
  322. "Slovenian",               MAKELANGID(LANG_SLOVENIAN,SUBLANG_NEUTRAL)                   
  323. "Spanish",                 MAKELANGID(LANG_SPANISH,SUBLANG_NEUTRAL)                     
  324. "Spanish-Argentina",    MAKELANGID(LANG_SPANISH,SUBLANG_SPANISH_ARGENTINA)                                                  
  325. "Spanish-Bolivia",      MAKELANGID(LANG_SPANISH,SUBLANG_SPANISH_BOLIVIA  )                                                  
  326. "Spanish-Chile",        MAKELANGID(LANG_SPANISH,SUBLANG_SPANISH_CHILE    )                                                  
  327. "Spanish-Colombia",     MAKELANGID(LANG_SPANISH,SUBLANG_SPANISH_COLOMBIA )                                                  
  328. "Spanish-Costa Rica",   MAKELANGID(LANG_SPANISH,SUBLANG_SPANISH_COSTA_RICA)
  329. "Spanish-Dominican Republic",MAKELANGID(LANG_SPANISH,SUBLANG_SPANISH_DOMINICAN_R)
  330. "Spanish-Ecuador",      MAKELANGID(LANG_SPANISH,SUBLANG_SPANISH_ECUADOR  )                                                  
  331. "Spanish-El Salvador",  MAKELANGID(LANG_SPANISH,SUBLANG_SPANISH_EL_SALVADOR)       
  332. "Spanish-Guatemala",    MAKELANGID(LANG_SPANISH,SUBLANG_SPANISH_GUATEMALA  )                                                  
  333. "Spanish-Honduras",     MAKELANGID(LANG_SPANISH,SUBLANG_SPANISH_HONDURAS )                                                  
  334. "Spanish-Mexican",      MAKELANGID(LANG_SPANISH,SUBLANG_SPANISH_MEXICAN    )                                                  
  335. "Spanish-Modern",       MAKELANGID(LANG_SPANISH,SUBLANG_SPANISH_MODERN     )                                                  
  336. "Spanish-Nicaragua",    MAKELANGID(LANG_SPANISH,SUBLANG_SPANISH_NICARAGUA)                                                  
  337. "Spanish-Panama",       MAKELANGID(LANG_SPANISH,SUBLANG_SPANISH_PANAMA     )                                                  
  338. "Spanish-Paraguay",     MAKELANGID(LANG_SPANISH,SUBLANG_SPANISH_PARAGUAY )                                                  
  339. "Spanish-Peru",         MAKELANGID(LANG_SPANISH,SUBLANG_SPANISH_PERU     )                                                  
  340. "Spanish-Puerto Rico",  MAKELANGID(LANG_SPANISH,SUBLANG_SPANISH_PUERTO_RICO)       
  341. "Spanish-Uruguay",      MAKELANGID(LANG_SPANISH,SUBLANG_SPANISH_URUGUAY  )                                                  
  342. "Spanish-Venezvela",    MAKELANGID(LANG_SPANISH,SUBLANG_SPANISH_VENEZUELA)                                                  
  343. "Swedish",                 MAKELANGID(LANG_SWEDISH,SUBLANG_NEUTRAL)                     
  344. "Swedish-Finland",      MAKELANGID(LANG_SWEDISH,SUBLANG_SWEDISH_FINLAND)
  345. "Thai",                    MAKELANGID(LANG_THAI,SUBLANG_NEUTRAL)                        
  346. "Turkish",                 MAKELANGID(LANG_TURKISH,SUBLANG_NEUTRAL)                     
  347. "Ukrainian",               MAKELANGID(LANG_UKRAINIAN,SUBLANG_NEUTRAL)                   
  348. "Vietnamese",              MAKELANGID(LANG_VIETNAMESE,SUBLANG_NEUTRAL)                  
  349. */
  350. // These are known languages that we don't have lang ID's for, so for now
  351. // they aren't included in our master list.
  352. // "mk","Macedonian",                                                        
  353. // "mg","Malagasy",                                                          
  354. // "ms","Malay",                                                             
  355. // "ml","Maltese",                                                           
  356. // "mi","Maori",                                                             
  357. // "mr","Marathi",                                                           
  358. // "mo","Moldavian",                                                         
  359. // "mn","Mongolian",                                                         
  360. // "na","Nauru",                                                             
  361. // "ne","Nepali",                                                            
  362. // "or","Oriya",                                                             
  363. // "om","Oromo",                                                             
  364. // "pa","Panjabi",                                                           
  365. // "fa","Persian",                                                           
  366. // "ps","Pushto",                                                            
  367. // "qu","Quechua",                                                           
  368. // "rn","Rundi",                                                             
  369. // "sm","Samoan",                                                            
  370. // "sg","Sango",                                                             
  371. // "sa","Sanskrit",                                                          
  372. // "sn","Shona",                                                             
  373. // "sd","Sindhi",                                                            
  374. // "si","Singhalese",                                                        
  375. // "ss","Siswant",                                                           
  376. // "so","Somali",                                                            
  377. // "st","Sotho, Southern",                                          
  378. // 
  379.