1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
3 * This file is part of the LibreOffice project.
5 * This Source Code Form is subject to the terms of the Mozilla Public
6 * License, v. 2.0. If a copy of the MPL was not distributed with this
7 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
9 * This file incorporates work covered by the following license notice:
11 * Licensed to the Apache Software Foundation (ASF) under one or more
12 * contributor license agreements. See the NOTICE file distributed
13 * with this work for additional information regarding copyright
14 * ownership. The ASF licenses this file to you under the Apache
15 * License, Version 2.0 (the "License"); you may not use this file
16 * except in compliance with the License. You may obtain a copy of
17 * the License at http://www.apache.org/licenses/LICENSE-2.0 .
20 #ifndef INCLUDED_I18NLANGTAG_LANG_H
21 #define INCLUDED_I18NLANGTAG_LANG_H
24 These are MS LANGIDs, the lower 10 bits (mask 0x03ff, values below 0x0400
25 aren't real locale IDs) represent the primary language ID, the upper 6 bits
26 represent the sublanguage ID, which in most cases together with the primary
27 language simply designates a country. A LANGID is constructed by
28 UINT16 nLangID = ((((UINT16)(SubLangId)) << 10) | (UINT16)(PriLangId));
30 A user-defined primary language ID is a value in the range 0x0200 to 0x03ff.
31 All other values are reserved for Windows system use.
33 A user-defined sublanguage identifier is a value in the range 0x20 to 0x3f.
34 All other values are reserved for Windows system use.
35 If there is no sublanguage ID for a primary language ID, use SUBLANG_DEFAULT
36 (0x01, which shifted to the left by 10 bits results in the frequently seen
37 0x0400). OR'ed with a 0x0200 primary results in 0x0600.
39 Values added as of 2006-04-18, a helper script: ../../source/isolang/lcid.awk
40 Utility to compare MS-LANGID definitions with those defined in this file.
42 For further information about MS-LANGIDs please see include/winnt.h of a
43 recent MSDEV version and the following web pages.
46 The once complete list, not necessarily supported by Windows:
47 List of Locale ID (LCID) Values as Assigned by Microsoft
48 http://www.microsoft.com/globaldev/reference/lcid-all.mspx
50 As a complete list is never complete, some more that came with WinXP SP2:
51 Windows XP/Server 2003 - List of Locale IDs, Input Locale, and Language Collection
52 http://www.microsoft.com/globaldev/reference/winxp/xp-lcid.mspx
54 And of course 2 lists aren't enough, so Windows Vista needs an extra one.
55 Which at least seems to include values of other versions of Windows.
56 Language Identifier Constants and Strings
57 http://msdn.microsoft.com/en-us/library/ms776294.aspx
59 ! Hey, yet another list, maybe this one will not move around? It seems to be
61 ! Language Identifier Constants and Strings (Windows)
62 ! http://msdn.microsoft.com/en-us/library/dd318693.aspx
64 ! Use THAT ^^^ as of 2013-09-17 it includes also Windows 8
66 ! BUT, you can download a PDF document from
67 ! http://msdn.microsoft.com/library/cc233965.aspx
68 ! that has YET MORE definitions, sigh.. didn't cross-check if any are missing
69 ! from that.. however, it also contains a few MS-reserved definitions that use
70 ! ISO 639-3 codes reserved for local use, such as 'qps-ploc' and 'qps-ploca'
71 ! (sic!), or strange things like 'ar-Ploc-SA' and 'ja-Ploc-JP' ('Ploc'??).
73 ! Use THAT ^^^ as the ultimate reference source (haha?) as of 2013-10-17 it
74 ! inludes also Windows 8.1 (Release: Monday, July 22, 2013; well, its table
75 ! says 08/08/2013 Revision 6.0, but hey, who cares ...)
77 For completeness, you can never have enough lists:
78 List of supported locale identifiers in Word
79 Applies to Microsoft Word 2000 and 2002
80 http://support.microsoft.com/default.aspx?scid=KB;en-us;q221435
84 /* It must be safe to include this file in plain C code, so only C style
85 * comments are used. Do NOT use // C++ style comments. */
87 /* disable typedef for usage in svtools/source/misc/langtab.src */
88 #ifndef RSC_RESOURCE_USAGE
89 typedef unsigned short LanguageType
;
92 #define LANGUAGE_MASK_PRIMARY 0x03ff
95 /* Please use the methods provided in mslangid.hxx for type-safety! */
97 #define MSLANGID_MAKELANGID( nSubLangId, nPriLangId ) \
98 (((nSubLangId) << 10) | (nPriLangId))
99 #define MSLANGID_GETPRIMARYLANGUAGE( nLangID ) \
100 ((nLangID) & LANGUAGE_MASK_PRIMARY)
101 #define MSLANGID_GETSUBLANGUAGE( nLangID ) \
102 (((nLangID) & ~LANGUAGE_MASK_PRIMARY) >> 10)
106 #define LANGUAGE_DONTKNOW 0x03FF /* yes, the mask */
107 #define LANGUAGE_NONE 0x00FF
108 #define LANGUAGE_HID_HUMAN_INTERFACE_DEVICE 0x04FF
109 #define LANGUAGE_SYSTEM 0x0000 /* OOo/SO definition */
111 /* The Invariant Locale (Locale ID = 0x007f) is a locale that can be used by
112 * applications when a consistent and locale-independent result is required.
113 * The invariant locale can be used, for example, when comparing character
114 * strings using the CompareString() API and a consistent result regardless of
115 * the User Locale is expected.
116 * The settings of the Invariant Locale are similar to US-English international
117 * standards, but should not be used to display formatted data. */
118 /* NOTE: this is taken from the MS documentation! Not supported by OOo/SO! */
119 #define LANGUAGE_INVARIANT 0x007F
121 #define LANGUAGE_AFRIKAANS 0x0436
122 #define LANGUAGE_ALBANIAN 0x041C
123 #define LANGUAGE_ALSATIAN_FRANCE 0x0484
124 #define LANGUAGE_AMHARIC_ETHIOPIA 0x045E
125 #define LANGUAGE_ARABIC_ALGERIA 0x1401
126 #define LANGUAGE_ARABIC_BAHRAIN 0x3C01
127 #define LANGUAGE_ARABIC_EGYPT 0x0C01
128 #define LANGUAGE_ARABIC_IRAQ 0x0801
129 #define LANGUAGE_ARABIC_JORDAN 0x2C01
130 #define LANGUAGE_ARABIC_KUWAIT 0x3401
131 #define LANGUAGE_ARABIC_LEBANON 0x3001
132 #define LANGUAGE_ARABIC_LIBYA 0x1001
133 #define LANGUAGE_ARABIC_MOROCCO 0x1801
134 #define LANGUAGE_ARABIC_OMAN 0x2001
135 #define LANGUAGE_ARABIC_PRIMARY_ONLY 0x0001 /* primary only, not a locale! */
136 #define LANGUAGE_ARABIC_QATAR 0x4001
137 #define LANGUAGE_ARABIC_SAUDI_ARABIA 0x0401
138 #define LANGUAGE_ARABIC_SYRIA 0x2801
139 #define LANGUAGE_ARABIC_TUNISIA 0x1C01
140 #define LANGUAGE_ARABIC_UAE 0x3801
141 #define LANGUAGE_ARABIC_YEMEN 0x2401
142 #define LANGUAGE_ARMENIAN 0x042B
143 #define LANGUAGE_ASSAMESE 0x044D
144 #define LANGUAGE_AZERI_CYRILLIC 0x082C
145 #define LANGUAGE_AZERI_CYRILLIC_LSO 0x742C
146 #define LANGUAGE_AZERI_LATIN 0x042C
147 #define LANGUAGE_AZERI_LATIN_LSO 0x782C
148 #define LANGUAGE_BASHKIR_RUSSIA 0x046D
149 #define LANGUAGE_BASQUE 0x042D
150 #define LANGUAGE_BELARUSIAN 0x0423
151 #define LANGUAGE_BENGALI 0x0445 /* in India */
152 #define LANGUAGE_BENGALI_BANGLADESH 0x0845
153 #define LANGUAGE_BOSNIAN_CYRILLIC_LSO 0x641A
154 #define LANGUAGE_BOSNIAN_CYRILLIC_BOSNIA_HERZEGOVINA 0x201A
155 #define LANGUAGE_BOSNIAN_LATIN_LSO 0x681A
156 #define LANGUAGE_BOSNIAN_LSO 0x781A
157 #define LANGUAGE_BOSNIAN_LATIN_BOSNIA_HERZEGOVINA 0x141A
158 #define LANGUAGE_BOSNIAN_BOSNIA_HERZEGOVINA LANGUAGE_BOSNIAN_LATIN_BOSNIA_HERZEGOVINA /* TODO: remove, only for langtab.src & localize.sdf compatibility */
159 #define LANGUAGE_BRETON_FRANCE 0x047E /* obsoletes LANGUAGE_USER_BRETON 0x0629 */
160 #define LANGUAGE_BULGARIAN 0x0402
161 #define LANGUAGE_BURMESE 0x0455
162 #define LANGUAGE_CATALAN 0x0403
163 #define LANGUAGE_CATALAN_VALENCIAN 0x0803 /* obsoletes LANGUAGE_USER_CATALAN_VALENCIAN 0x8003 */
164 #define LANGUAGE_CHEROKEE_UNITED_STATES 0x045C
165 #define LANGUAGE_CHEROKEE_CHEROKEE_LSO 0x7C5C
166 #define LANGUAGE_CHINESE_HONGKONG 0x0C04
167 #define LANGUAGE_CHINESE_LSO 0x7804
168 #define LANGUAGE_CHINESE_MACAU 0x1404
169 #define LANGUAGE_CHINESE_SIMPLIFIED 0x0804
170 #define LANGUAGE_CHINESE_SINGAPORE 0x1004
171 #define LANGUAGE_CHINESE_TRADITIONAL 0x0404
172 #define LANGUAGE_CHINESE_SIMPLIFIED_LEGACY 0x0004 /* MS-.NET 'zh-CHS', primary only! but maps to 'zh-CN' */
173 #define LANGUAGE_CHINESE_TRADITIONAL_LSO 0x7C04 /* MS-.NET 'zh-CHT' but maps to 'zh-Hant' */
174 #define LANGUAGE_CHINESE LANGUAGE_CHINESE_SIMPLIFIED /* most code uses LANGUAGE_CHINESE */
175 #define LANGUAGE_CORSICAN_FRANCE 0x0483
176 #define LANGUAGE_CROATIAN 0x041A
177 #define LANGUAGE_CROATIAN_BOSNIA_HERZEGOVINA 0x101A
178 #define LANGUAGE_CZECH 0x0405
179 #define LANGUAGE_DANISH 0x0406
180 #define LANGUAGE_DARI_AFGHANISTAN 0x048C /* AKA Zoroastrian Dari */
181 #define LANGUAGE_DHIVEHI 0x0465 /* AKA Divehi */
182 #define LANGUAGE_DUTCH 0x0413
183 #define LANGUAGE_DUTCH_BELGIAN 0x0813
184 #define LANGUAGE_EDO 0x0466
185 #define LANGUAGE_ENGLISH 0x0009 /* primary only, not a locale! */
186 #define LANGUAGE_ENGLISH_ARAB_EMIRATES 0x4C09
187 #define LANGUAGE_ENGLISH_AUS 0x0C09
188 #define LANGUAGE_ENGLISH_BAHRAIN 0x5009
189 #define LANGUAGE_ENGLISH_BELIZE 0x2809
190 #define LANGUAGE_ENGLISH_CAN 0x1009
191 #define LANGUAGE_ENGLISH_CARRIBEAN 0x2409
192 #define LANGUAGE_ENGLISH_EGYPT 0x5409
193 #define LANGUAGE_ENGLISH_EIRE 0x1809
194 #define LANGUAGE_ENGLISH_HONG_KONG_SAR 0x3C09
195 #define LANGUAGE_ENGLISH_INDIA 0x4009
196 #define LANGUAGE_ENGLISH_INDONESIA 0x3809
197 #define LANGUAGE_ENGLISH_JAMAICA 0x2009
198 #define LANGUAGE_ENGLISH_JORDAN 0x5809
199 #define LANGUAGE_ENGLISH_KUWAIT 0x5C09
200 #define LANGUAGE_ENGLISH_MALAYSIA 0x4409
201 #define LANGUAGE_ENGLISH_NZ 0x1409
202 #define LANGUAGE_ENGLISH_PHILIPPINES 0x3409
203 #define LANGUAGE_ENGLISH_SAFRICA 0x1C09
204 #define LANGUAGE_ENGLISH_SINGAPORE 0x4809
205 #define LANGUAGE_ENGLISH_TRINIDAD 0x2C09
206 #define LANGUAGE_ENGLISH_TURKEY 0x6009
207 #define LANGUAGE_ENGLISH_UK 0x0809
208 #define LANGUAGE_ENGLISH_US 0x0409
209 #define LANGUAGE_ENGLISH_YEMEN 0x6409
210 #define LANGUAGE_ENGLISH_ZIMBABWE 0x3009
211 #define LANGUAGE_ESTONIAN 0x0425
212 #define LANGUAGE_FAEROESE 0x0438
213 #define LANGUAGE_FARSI 0x0429
214 #define LANGUAGE_FILIPINO 0x0464
215 #define LANGUAGE_FINNISH 0x040B
216 #define LANGUAGE_FRENCH 0x040C
217 #define LANGUAGE_FRENCH_BELGIAN 0x080C
218 #define LANGUAGE_FRENCH_CAMEROON 0x2C0C
219 #define LANGUAGE_FRENCH_CANADIAN 0x0C0C
220 #define LANGUAGE_FRENCH_COTE_D_IVOIRE 0x300C
222 #define LANGUAGE_FRENCH_HAITI 0x3C0C
223 #define LANGUAGE_FRENCH_LUXEMBOURG 0x140C
224 #define LANGUAGE_FRENCH_MALI 0x340C
225 #define LANGUAGE_FRENCH_MONACO 0x180C
226 #define LANGUAGE_FRENCH_MOROCCO 0x380C
227 #define LANGUAGE_FRENCH_NORTH_AFRICA 0xE40C
228 #define LANGUAGE_FRENCH_REUNION 0x200C
229 #define LANGUAGE_FRENCH_SENEGAL 0x280C
230 #define LANGUAGE_FRENCH_SWISS 0x100C
231 #define LANGUAGE_FRENCH_WEST_INDIES 0x1C0C /* MS in its MS-LCID.pdf now says "Neither defined nor reserved" */
232 #define LANGUAGE_FRENCH_ZAIRE 0x240C
233 #define LANGUAGE_FRISIAN_NETHERLANDS 0x0462
234 #define LANGUAGE_FULFULDE_LATIN_LSO 0x7C67
235 #define LANGUAGE_FULFULDE_NIGERIA 0x0467
236 #define LANGUAGE_FULFULDE_SENEGAL 0x0867
237 #define LANGUAGE_GAELIC_IRELAND 0x083C
238 #define LANGUAGE_GAELIC_SCOTLAND 0x0491 /* apparently it occurred to MS that those are different languages */
239 #define LANGUAGE_GAELIC_SCOTLAND_LEGACY 0x043C
240 #define LANGUAGE_GALICIAN 0x0456
241 #define LANGUAGE_GEORGIAN 0x0437
242 #define LANGUAGE_GERMAN 0x0407
243 #define LANGUAGE_GERMAN_AUSTRIAN 0x0C07
244 #define LANGUAGE_GERMAN_LIECHTENSTEIN 0x1407
245 #define LANGUAGE_GERMAN_LUXEMBOURG 0x1007
246 #define LANGUAGE_GERMAN_SWISS 0x0807
247 #define LANGUAGE_GREEK 0x0408
248 #define LANGUAGE_GUARANI_PARAGUAY 0x0474
249 #define LANGUAGE_GUJARATI 0x0447
250 #define LANGUAGE_HAUSA_LATIN_LSO 0x7C68
251 #define LANGUAGE_HAUSA_NIGERIA 0x0468
252 #define LANGUAGE_HAWAIIAN_UNITED_STATES 0x0475
253 #define LANGUAGE_HEBREW 0x040D
254 #define LANGUAGE_HINDI 0x0439
255 #define LANGUAGE_HUNGARIAN 0x040E
256 #define LANGUAGE_IBIBIO_NIGERIA 0x0469
257 #define LANGUAGE_ICELANDIC 0x040F
258 #define LANGUAGE_IGBO_NIGERIA 0x0470
259 #define LANGUAGE_INDONESIAN 0x0421
260 #define LANGUAGE_INUKTITUT_SYLLABICS_CANADA 0x045D
261 #define LANGUAGE_INUKTITUT_SYLLABICS_LSO 0x785D
262 #define LANGUAGE_INUKTITUT_LATIN_CANADA 0x085D
263 #define LANGUAGE_INUKTITUT_LATIN_LSO 0x7C5D
264 #define LANGUAGE_ITALIAN 0x0410
265 #define LANGUAGE_ITALIAN_SWISS 0x0810
266 #define LANGUAGE_JAPANESE 0x0411
267 #define LANGUAGE_KALAALLISUT_GREENLAND 0x046F /* obsoletes LANGUAGE_USER_KALAALLISUT 0x062A */
268 #define LANGUAGE_KANNADA 0x044B
269 #define LANGUAGE_KANURI_NIGERIA 0x0471
270 #define LANGUAGE_KASHMIRI 0x0460
271 #define LANGUAGE_KASHMIRI_INDIA 0x0860
272 #define LANGUAGE_KAZAKH 0x043F
273 #define LANGUAGE_KHMER 0x0453
274 #define LANGUAGE_KICHE_GUATEMALA 0x0486 /* AKA K'iche', West Central Quiche, */
275 #define LANGUAGE_KINYARWANDA_RWANDA 0x0487 /* obsoletes LANGUAGE_USER_KINYARWANDA 0x0621 */
276 #define LANGUAGE_KIRGHIZ 0x0440 /* AKA Kyrgyz */
277 #define LANGUAGE_KONKANI 0x0457
278 #define LANGUAGE_KOREAN 0x0412
279 #define LANGUAGE_KOREAN_JOHAB 0x0812 /* not mentioned in MS-LCID.pdf, oh joy */
280 #define LANGUAGE_KURDISH_ARABIC_IRAQ 0x0492 /* obsoletes LANGUAGE_USER_KURDISH_IRAQ 0x0E26 */
281 #define LANGUAGE_KURDISH_ARABIC_LSO 0x7C92
282 #define LANGUAGE_LAO 0x0454
283 #define LANGUAGE_LATIN_LSO 0x0476 /* obsoletes LANGUAGE_USER_LATIN 0x0610 */
284 #define LANGUAGE_LATVIAN 0x0426
285 #define LANGUAGE_LITHUANIAN 0x0427
286 #define LANGUAGE_LITHUANIAN_CLASSIC 0x0827 /* MS in its MS-LCID.pdf now says "Neither defined nor reserved" */
287 #define LANGUAGE_LU_CHINA 0x0490
288 #define LANGUAGE_LUXEMBOURGISH_LUXEMBOURG 0x046E /* obsoletes LANGUAGE_USER_LUXEMBOURGISH 0x0630 */
289 #define LANGUAGE_MACEDONIAN 0x042F
290 #define LANGUAGE_MALAGASY_PLATEAU 0x048D /* obsoletes LANGUAGE_USER_MALAGASY_PLATEAU 0x064F */
291 #define LANGUAGE_MALAYALAM 0x044C /* in India */
292 #define LANGUAGE_MALAY_BRUNEI_DARUSSALAM 0x083E
293 #define LANGUAGE_MALAY_MALAYSIA 0x043E
294 #define LANGUAGE_MALTESE 0x043A
295 #define LANGUAGE_MANIPURI 0x0458
296 #define LANGUAGE_MAORI_NEW_ZEALAND 0x0481 /* obsoletes LANGUAGE_USER_MAORI 0x0620 */
297 #define LANGUAGE_MAPUDUNGUN_CHILE 0x047A /* AKA Araucanian */
298 #define LANGUAGE_MARATHI 0x044E
299 #define LANGUAGE_MOHAWK_CANADA 0x047C
300 #define LANGUAGE_MONGOLIAN_CYRILLIC_MONGOLIA 0x0450
301 #define LANGUAGE_MONGOLIAN_CYRILLIC_LSO 0x7850
302 #define LANGUAGE_MONGOLIAN_MONGOLIAN_MONGOLIA 0x0C50
303 #define LANGUAGE_MONGOLIAN_MONGOLIAN_CHINA 0x0850
304 #define LANGUAGE_MONGOLIAN_MONGOLIAN_LSO 0x7C50
305 #define LANGUAGE_NEPALI 0x0461
306 #define LANGUAGE_NEPALI_INDIA 0x0861
307 #define LANGUAGE_NORWEGIAN 0x0014 /* primary only, not a locale! */
308 #define LANGUAGE_NORWEGIAN_BOKMAL 0x0414
309 #define LANGUAGE_NORWEGIAN_BOKMAL_LSO 0x7C14
310 #define LANGUAGE_NORWEGIAN_NYNORSK 0x0814
311 #define LANGUAGE_NORWEGIAN_NYNORSK_LSO 0x7814
312 #define LANGUAGE_OCCITAN_FRANCE 0x0482 /* obsoletes LANGUAGE_USER_OCCITAN 0x0625 */
313 #define LANGUAGE_ODIA 0x0448
314 #define LANGUAGE_OROMO 0x0472
315 #define LANGUAGE_PAPIAMENTU 0x0479
316 #define LANGUAGE_PASHTO 0x0463
317 #define LANGUAGE_POLISH 0x0415
318 #define LANGUAGE_PORTUGUESE 0x0816
319 #define LANGUAGE_PORTUGUESE_BRAZILIAN 0x0416
320 #define LANGUAGE_PUNJABI 0x0446
321 #define LANGUAGE_PUNJABI_ARABIC_LSO 0x7C46
322 #define LANGUAGE_PUNJABI_PAKISTAN 0x0846
323 #define LANGUAGE_QUECHUA_BOLIVIA 0x046B
324 #define LANGUAGE_QUECHUA_COLOMBIA 0x0493 /* different primary ID */
325 #define LANGUAGE_QUECHUA_ECUADOR 0x086B
326 #define LANGUAGE_QUECHUA_PERU 0x0C6B
327 #define LANGUAGE_RHAETO_ROMAN 0x0417
328 #define LANGUAGE_ROMANIAN 0x0418
329 #define LANGUAGE_ROMANIAN_MOLDOVA 0x0818
330 #define LANGUAGE_RUSSIAN 0x0419
331 #define LANGUAGE_RUSSIAN_MOLDOVA 0x0819
332 #define LANGUAGE_SAMI_NORTHERN_NORWAY 0x043B
333 #define LANGUAGE_SAMI_LAPPISH LANGUAGE_SAMI_NORTHERN_NORWAY /* the old MS definition */
334 #define LANGUAGE_SAMI_INARI 0x243B
335 #define LANGUAGE_SAMI_INARI_LSO 0x703B
336 #define LANGUAGE_SAMI_LULE_LSO 0x7C3B
337 #define LANGUAGE_SAMI_LULE_NORWAY 0x103B
338 #define LANGUAGE_SAMI_LULE_SWEDEN 0x143B
339 #define LANGUAGE_SAMI_NORTHERN_FINLAND 0x0C3B
340 #define LANGUAGE_SAMI_NORTHERN_SWEDEN 0x083B
341 #define LANGUAGE_SAMI_SKOLT 0x203B
342 #define LANGUAGE_SAMI_SKOLT_LSO 0x743B
343 #define LANGUAGE_SAMI_SOUTHERN_LSO 0x783B
344 #define LANGUAGE_SAMI_SOUTHERN_NORWAY 0x183B
345 #define LANGUAGE_SAMI_SOUTHERN_SWEDEN 0x1C3B
346 #define LANGUAGE_SANSKRIT 0x044F
347 #define LANGUAGE_SEPEDI 0x046C
348 #define LANGUAGE_NORTHERNSOTHO LANGUAGE_SEPEDI /* just an alias for the already existing localization */
349 #define LANGUAGE_SERBIAN_CYRILLIC_LSO 0x6C1A
350 #define LANGUAGE_SERBIAN_CYRILLIC_SAM 0x0C1A /* Serbia and Montenegro (former) */
351 #define LANGUAGE_SERBIAN_CYRILLIC_BOSNIA_HERZEGOVINA 0x1C1A
352 #define LANGUAGE_SERBIAN_CYRILLIC_MONTENEGRO 0x301A
353 #define LANGUAGE_SERBIAN_CYRILLIC_SERBIA 0x281A
354 #define LANGUAGE_SERBIAN_LATIN_LSO 0x701A
355 #define LANGUAGE_SERBIAN_LATIN_SAM 0x081A
356 #define LANGUAGE_SERBIAN_LATIN_BOSNIA_HERZEGOVINA 0x181A
357 #define LANGUAGE_SERBIAN_LATIN_MONTENEGRO 0x2C1A
358 #define LANGUAGE_SERBIAN_LATIN_NEUTRAL 0x7C1A
359 #define LANGUAGE_SERBIAN_LATIN_SERBIA 0x241A
360 #define LANGUAGE_SESOTHO 0x0430 /* also called Sutu now by MS */
361 #define LANGUAGE_SINDHI 0x0459
362 #define LANGUAGE_SINDHI_ARABIC_LSO 0x7C59
363 #define LANGUAGE_SINDHI_PAKISTAN 0x0859
364 #define LANGUAGE_SINHALESE_SRI_LANKA 0x045B
365 #define LANGUAGE_SLOVAK 0x041B
366 #define LANGUAGE_SLOVENIAN 0x0424
367 #define LANGUAGE_SOMALI 0x0477
368 #define LANGUAGE_UPPER_SORBIAN_GERMANY 0x042E /* obsoletes LANGUAGE_USER_UPPER_SORBIAN 0x0623 */
369 #define LANGUAGE_LOWER_SORBIAN_GERMANY 0x082E /* obsoletes LANGUAGE_USER_LOWER_SORBIAN 0x0624. NOTE: the primary ID is identical to Upper Sorbian, which is not quite correct because they're distinct languages */
370 #define LANGUAGE_LOWER_SORBIAN_LSO 0x7C2E
371 #define LANGUAGE_SORBIAN LANGUAGE_USER_UPPER_SORBIAN /* a strange MS definition */
372 #define LANGUAGE_SPANISH_DATED 0x040A /* old collation, not supported, see #i94435# */
373 #define LANGUAGE_SPANISH_ARGENTINA 0x2C0A
374 #define LANGUAGE_SPANISH_BOLIVIA 0x400A
375 #define LANGUAGE_SPANISH_CHILE 0x340A
376 #define LANGUAGE_SPANISH_COLOMBIA 0x240A
377 #define LANGUAGE_SPANISH_COSTARICA 0x140A
378 #define LANGUAGE_SPANISH_DOMINICAN_REPUBLIC 0x1C0A
379 #define LANGUAGE_SPANISH_ECUADOR 0x300A
380 #define LANGUAGE_SPANISH_EL_SALVADOR 0x440A
381 #define LANGUAGE_SPANISH_GUATEMALA 0x100A
382 #define LANGUAGE_SPANISH_HONDURAS 0x480A
383 #define LANGUAGE_SPANISH_LATIN_AMERICA 0xE40A /* no locale possible */
384 #define LANGUAGE_SPANISH_MEXICAN 0x080A
385 #define LANGUAGE_SPANISH_MODERN 0x0C0A
386 #define LANGUAGE_SPANISH_NICARAGUA 0x4C0A
387 #define LANGUAGE_SPANISH_PANAMA 0x180A
388 #define LANGUAGE_SPANISH_PARAGUAY 0x3C0A
389 #define LANGUAGE_SPANISH_PERU 0x280A
390 #define LANGUAGE_SPANISH_PUERTO_RICO 0x500A
391 #define LANGUAGE_SPANISH_UNITED_STATES 0x540A
392 #define LANGUAGE_SPANISH_URUGUAY 0x380A
393 #define LANGUAGE_SPANISH_VENEZUELA 0x200A
394 #define LANGUAGE_SPANISH LANGUAGE_SPANISH_MODERN /* modern collation, see #i94435# */
395 #define LANGUAGE_SWAHILI 0x0441 /* Kenya */
396 #define LANGUAGE_SWEDISH 0x041D
397 #define LANGUAGE_SWEDISH_FINLAND 0x081D
398 #define LANGUAGE_SYRIAC 0x045A
399 #define LANGUAGE_TAI_NUA_CHINA 0x048F
400 #define LANGUAGE_TAJIK 0x0428
401 #define LANGUAGE_TAJIK_LSO 0x7C28
402 #define LANGUAGE_TAMAZIGHT_ARABIC_MOROCCO 0x045F
403 #define LANGUAGE_TAMAZIGHT_LATIN_ALGERIA 0x085F
404 #define LANGUAGE_TAMAZIGHT_LATIN_LSO 0x7C5F
405 #define LANGUAGE_TAMAZIGHT_MOROCCO 0x0C5F
406 #define LANGUAGE_TAMAZIGHT_TIFINAGH_MOROCCO 0x105F
407 #define LANGUAGE_TAMAZIGHT_TIFINAGH_LSO 0x785F
408 #define LANGUAGE_TAMIL 0x0449
409 #define LANGUAGE_TAMIL_SRI_LANKA 0x0849
410 #define LANGUAGE_TATAR 0x0444
411 #define LANGUAGE_TELUGU 0x044A
412 #define LANGUAGE_THAI 0x041E
413 #define LANGUAGE_TIBETAN 0x0451
414 #define LANGUAGE_DZONGKHA 0x0851
415 #define LANGUAGE_TIBETAN_BHUTAN LANGUAGE_DZONGKHA /* a MS error, see #i53497# */
416 #define LANGUAGE_TIGRIGNA_ERITREA 0x0873
417 #define LANGUAGE_TIGRIGNA_ETHIOPIA 0x0473
418 #define LANGUAGE_TSONGA 0x0431
419 #define LANGUAGE_TSWANA 0x0432 /* AKA Setsuana, for South Africa */
420 #define LANGUAGE_TSWANA_BOTSWANA 0x0832 /* obsoletes LANGUAGE_USER_TSWANA_BOTSWANA 0x8032 */
421 #define LANGUAGE_TURKISH 0x041F
422 #define LANGUAGE_TURKMEN 0x0442
423 #define LANGUAGE_UIGHUR_CHINA 0x0480
424 #define LANGUAGE_UKRAINIAN 0x0422
425 #define LANGUAGE_URDU_INDIA 0x0820
426 #define LANGUAGE_URDU_PAKISTAN 0x0420
427 #define LANGUAGE_UZBEK_CYRILLIC 0x0843
428 #define LANGUAGE_UZBEK_CYRILLIC_LSO 0x7843
429 #define LANGUAGE_UZBEK_LATIN 0x0443
430 #define LANGUAGE_UZBEK_LATIN_LSO 0x7C43
431 #define LANGUAGE_VENDA 0x0433
432 #define LANGUAGE_VIETNAMESE 0x042A
433 #define LANGUAGE_WELSH 0x0452
434 #define LANGUAGE_WOLOF_SENEGAL 0x0488
435 #define LANGUAGE_XHOSA 0x0434 /* AKA isiZhosa */
436 #define LANGUAGE_YAKUT_RUSSIA 0x0485
437 #define LANGUAGE_YI 0x0478 /* Sichuan Yi */
438 #define LANGUAGE_YIDDISH 0x043D
439 #define LANGUAGE_YORUBA 0x046A
440 #define LANGUAGE_YUE_CHINESE_HONGKONG 0x048E
441 #define LANGUAGE_ZULU 0x0435
443 #define LANGUAGE_qps_ploc 0x0501 /* 'qps-ploc', qps is a reserved for local use code */
444 #define LANGUAGE_qps_ploca 0x05FE /* 'qps-ploca', qps is a reserved for local use code */
445 #define LANGUAGE_qps_plocm 0x09FF /* 'qps-plocm', qps is a reserved for local use code */
447 #define LANGUAGE_ar_Ploc_SA__reserved 0x4401 /* 'ar-Ploc-SA', 'Ploc'?? */
448 #define LANGUAGE_ja_Ploc_JP__reserved 0x0811 /* 'ja-Ploc-JP', 'Ploc'?? */
449 #define LANGUAGE_pap_029__reserved 0x0479 /* 'pap-029' */
450 #define LANGUAGE_ar_145__reserved 0x4801 /* 'ar-145' */
451 #define LANGUAGE_es_419 0x580A /* 'es-419', not reserved, used? */
453 /* Seems these values were used or reserved at one point of time ... */
454 #define LANGUAGE_Neither_defined_nor_reserved_0x007B 0x007B
455 #define LANGUAGE_Neither_defined_nor_reserved_0x007D 0x007D
456 #define LANGUAGE_Neither_defined_nor_reserved_0x0089 0x0089
457 #define LANGUAGE_Neither_defined_nor_reserved_0x008A 0x008A
458 #define LANGUAGE_Neither_defined_nor_reserved_0x008B 0x008B
459 #define LANGUAGE_Neither_defined_nor_reserved_0x008D 0x008D
460 #define LANGUAGE_Neither_defined_nor_reserved_0x008E 0x008E
461 #define LANGUAGE_Neither_defined_nor_reserved_0x008F 0x008F
462 #define LANGUAGE_Neither_defined_nor_reserved_0x0090 0x0090
463 #define LANGUAGE_Neither_defined_nor_reserved_0x0827 0x0827
464 #define LANGUAGE_Neither_defined_nor_reserved_0x1C0C 0x1C0C
465 #define LANGUAGE_Neither_defined_nor_reserved_0x2008 0x2008
467 /*! use only for import/export of MS documents, number formatter maps it to
468 *! LANGUAGE_SYSTEM and then to effective system language */
469 #define LANGUAGE_SYSTEM_DEFAULT 0x0800
471 /*! use only for import/export of MS documents, number formatter maps it to
472 *! LANGUAGE_SYSTEM and then to effective system language */
473 #define LANGUAGE_PROCESS_OR_USER_DEFAULT 0x0400
476 /* And now the extensions we define,
477 * with primary language IDs from 0x200 to 0x3FF valid in blocks from
479 * 0x0610 to 0x07FF with sublanguage ID 0x01 (default)
480 * 0x0A00 to 0x0BFF with sublanguage ID 0x02
482 * 0x8200 to 0x83FF with sublanguage ID 0x20
483 * 0x8600 to 0x87FF with sublanguage ID 0x21
485 * 0xFA00 to 0xFBFF with sublanguage ID 0x3E
486 * 0xFE00 to 0xFFFF with sublanguage ID 0x3F
488 * Of which we define reserved blocks:
489 * All primary language IDs 0x3E0 to 0x3FE with any sublanguage ID, not to be
490 * assigned as user-defined IDs:
492 * 0x07E0 to 0x07FE with sublanguage ID 0x01, first on-the-fly block
493 * 0x0BE0 to 0x0BFE with sublanguage ID 0x02, second on-the-fly block
495 * 0x83E0 to 0x83FE with sublanguage ID 0x20
496 * 0x87E0 to 0x87FE with sublanguage ID 0x21
498 * 0xFBE0 to 0xFBFE with sublanguage ID 0x3E, last on-the-fly block
499 * 0xFFE0 to 0xFFFE with sublanguage ID 0x3F, 32 privateuse and specials
501 * This leaves room for 479 user-defined primary language IDs (instead of 512)
502 * with primary bitmask comparability, and 1922 on-the-fly IDs (instead of 0)
503 * with arbitrary assignment ((0x3E - 0x01 + 1) * (0x3FE - 0x3E0 + 1)).
505 * The primary ID 0x3FF is reserved and unassigned as it is the same as the
506 * LANGUAGE_MASK_PRIMARY and LANGUAGE_DONTKNOW value, so to not be mistaken as
509 * Obsolete OOo user defines now have other values assigned by MS, and
510 * different name. Mapping an obsolete value to ISO code should work provided
511 * that such a mapping exists in i18nlangtag/source/isolang/isolang.cxx, but
512 * mapping ISO back to LANGID will return the new value.
514 #define LANGUAGE_OBSOLETE_USER_LATIN 0x0610
515 #define LANGUAGE_USER_LATIN LANGUAGE_LATIN_LSO
516 #define LANGUAGE_USER_LATIN_VATICAN 0x8076 /* makeLangID( 0x20, getPrimaryLanguage( LANGUAGE_LATIN_LSO)) */
517 #define LANGUAGE_USER_ESPERANTO 0x0611 /* no locale possible */
518 #define LANGUAGE_USER_INTERLINGUA 0x0612 /* no locale, but conventions */
519 #define LANGUAGE_OBSOLETE_USER_MAORI 0x0620
520 #define LANGUAGE_USER_MAORI LANGUAGE_MAORI_NEW_ZEALAND
521 #define LANGUAGE_OBSOLETE_USER_KINYARWANDA 0x0621
522 #define LANGUAGE_USER_KINYARWANDA LANGUAGE_KINYARWANDA_RWANDA
523 /* was reserved for Northern Sotho but never used: 0x0622 */ /* obsoleted by LANGUAGE_SEPEDI */
524 #define LANGUAGE_OBSOLETE_USER_UPPER_SORBIAN 0x0623
525 #define LANGUAGE_USER_UPPER_SORBIAN LANGUAGE_UPPER_SORBIAN_GERMANY
526 #define LANGUAGE_OBSOLETE_USER_LOWER_SORBIAN 0x0624
527 #define LANGUAGE_USER_LOWER_SORBIAN LANGUAGE_LOWER_SORBIAN_GERMANY
528 #define LANGUAGE_OBSOLETE_USER_OCCITAN 0x0625
529 #define LANGUAGE_USER_OCCITAN LANGUAGE_OCCITAN_FRANCE /* reserved to languedocian */
531 #define LANGUAGE_USER_KOREAN_NORTH 0x8012 /* North Korean as opposed to South Korean, makeLangID( 0x20, getPrimaryLanguage( LANGUAGE_KOREAN)) */
532 #define LANGUAGE_USER_KURDISH_TURKEY 0x0626 /* sublang 0x01, Latin script */
533 #define LANGUAGE_USER_KURDISH_SYRIA 0x0A26 /* sublang 0x02, Latin script */
534 #define LANGUAGE_OBSOLETE_USER_KURDISH_IRAQ 0x0E26 /* sublang 0x03, Arabic script */
535 #define LANGUAGE_USER_KURDISH_IRAQ LANGUAGE_KURDISH_ARABIC_IRAQ
536 #define LANGUAGE_USER_KURDISH_IRAN 0x1226 /* sublang 0x04, Arabic script */
537 #define LANGUAGE_USER_KURDISH_SOUTHERN_IRAQ 0x8092 /* makeLangID( 0x20, getPrimaryLanguage( LANGUAGE_KURDISH_ARABIC_LSO)) */
538 #define LANGUAGE_USER_KURDISH_SOUTHERN_IRAN 0x8492 /* makeLangID( 0x21, getPrimaryLanguage( LANGUAGE_KURDISH_ARABIC_LSO)) */
539 #define LANGUAGE_USER_SARDINIAN 0x0627
540 /* was reserved for Dzongkha but turned down with #i53497#: 0x0628 */ /* obsoleted by LANGUAGE_DZONGKHA */
541 #define LANGUAGE_USER_DZONGKHA_MAP_LONLY 0xF851 /* to map "dz" only, because of the MS error, and preserve CTL information, sub 0x3e */
542 #define LANGUAGE_USER_SWAHILI_TANZANIA 0x8041 /* makeLangID( 0x20, getPrimaryLanguage( LANGUAGE_SWAHILI)) */
543 #define LANGUAGE_OBSOLETE_USER_BRETON 0x0629
544 #define LANGUAGE_USER_BRETON LANGUAGE_BRETON_FRANCE
545 #define LANGUAGE_OBSOLETE_USER_KALAALLISUT 0x062A
546 #define LANGUAGE_USER_KALAALLISUT LANGUAGE_KALAALLISUT_GREENLAND
547 #define LANGUAGE_USER_SWAZI 0x062B
548 #define LANGUAGE_USER_NDEBELE_SOUTH 0x062C
549 #define LANGUAGE_OBSOLETE_USER_TSWANA_BOTSWANA 0x8032 /* makeLangID( 0x20, getPrimaryLanguage( LANGUAGE_TSWANA)) */
550 #define LANGUAGE_USER_TSWANA_BOTSWANA LANGUAGE_TSWANA_BOTSWANA
551 #define LANGUAGE_USER_MOORE 0x062D
552 #define LANGUAGE_USER_BAMBARA 0x062E
553 #define LANGUAGE_USER_AKAN 0x062F
554 #define LANGUAGE_OBSOLETE_USER_LUXEMBOURGISH 0x0630
555 #define LANGUAGE_USER_LUXEMBOURGISH LANGUAGE_LUXEMBOURGISH_LUXEMBOURG
556 #define LANGUAGE_USER_FRIULIAN 0x0631
557 #define LANGUAGE_USER_FIJIAN 0x0632
558 #define LANGUAGE_USER_AFRIKAANS_NAMIBIA 0x8036 /* makeLangID( 0x20, getPrimaryLanguage( LANGUAGE_AFRIKAANS)) */
559 #define LANGUAGE_USER_ENGLISH_NAMIBIA 0x8009 /* makeLangID( 0x20, getPrimaryLanguage( LANGUAGE_ENGLISH_US)) */
560 #define LANGUAGE_USER_WALLOON 0x0633
561 #define LANGUAGE_USER_COPTIC 0x0634
562 #define LANGUAGE_USER_CHUVASH 0x0635
563 #define LANGUAGE_USER_GASCON 0x0636 /* Gascon France */
564 #define LANGUAGE_USER_GERMAN_BELGIUM 0x8007 /* makeLangID( 0x20, getPrimaryLanguage( LANGUAGE_GERMAN)) */
565 #define LANGUAGE_OBSOLETE_USER_CATALAN_VALENCIAN 0x8003 /* makeLangID( 0x20, getPrimaryLanguage( LANGUAGE_CATALAN)) */
566 #define LANGUAGE_USER_CATALAN_VALENCIAN LANGUAGE_CATALAN_VALENCIAN
567 #define LANGUAGE_USER_HAUSA_GHANA 0x8068 /* makeLangID( 0x20, getPrimaryLanguage( LANGUAGE_HAUSA_NIGERIA)) */
568 #define LANGUAGE_USER_EWE_GHANA 0x0637
569 #define LANGUAGE_USER_ENGLISH_GHANA 0x8409 /* makeLangID( 0x21, getPrimaryLanguage( LANGUAGE_ENGLISH_US)) */
570 #define LANGUAGE_USER_TAGALOG 0x0638
571 #define LANGUAGE_USER_LINGALA_DRCONGO 0x0639
572 #define LANGUAGE_USER_SANGO 0x063A
573 #define LANGUAGE_USER_GANDA 0x063B
574 #define LANGUAGE_USER_LOW_GERMAN 0x063C
575 #define LANGUAGE_USER_HILIGAYNON 0x063D
576 #define LANGUAGE_USER_NYANJA 0x063E
577 #define LANGUAGE_USER_KASHUBIAN 0x063F
578 #define LANGUAGE_USER_SPANISH_CUBA 0x800A /* makeLangID( 0x20, getPrimaryLanguage( LANGUAGE_SPANISH)) */
579 #define LANGUAGE_USER_TETUN 0x0640
580 #define LANGUAGE_USER_QUECHUA_NORTH_BOLIVIA 0x0641
581 #define LANGUAGE_USER_QUECHUA_SOUTH_BOLIVIA 0x0642
582 #define LANGUAGE_OBSOLETE_USER_SERBIAN_CYRILLIC_SERBIA 0x8C1A /* makeLangID( 0x20+0x03, getPrimaryLanguage( LANGUAGE_SERBIAN_CYRILLIC_LSO)) */
583 #define LANGUAGE_USER_SERBIAN_CYRILLIC_SERBIA LANGUAGE_SERBIAN_CYRILLIC_SERBIA
584 #define LANGUAGE_OBSOLETE_USER_SERBIAN_LATIN_SERBIA 0x881A /* makeLangID( 0x20+0x02, getPrimaryLanguage( LANGUAGE_SERBIAN_LATIN_LSO)) */
585 #define LANGUAGE_USER_SERBIAN_LATIN_SERBIA LANGUAGE_SERBIAN_LATIN_SERBIA
586 #define LANGUAGE_OBSOLETE_USER_SERBIAN_CYRILLIC_MONTENEGRO 0xCC1A /* makeLangID( 0x20+0x13, getPrimaryLanguage( LANGUAGE_SERBIAN_CYRILLIC_LSO)) */
587 #define LANGUAGE_USER_SERBIAN_CYRILLIC_MONTENEGRO LANGUAGE_SERBIAN_CYRILLIC_MONTENEGRO
588 #define LANGUAGE_OBSOLETE_USER_SERBIAN_LATIN_MONTENEGRO 0xC81A /* makeLangID( 0x20+0x12, getPrimaryLanguage( LANGUAGE_SERBIAN_LATIN_LSO)) */
589 #define LANGUAGE_USER_SERBIAN_LATIN_MONTENEGRO LANGUAGE_SERBIAN_LATIN_MONTENEGRO
590 #define LANGUAGE_USER_SAMI_KILDIN_RUSSIA 0x803B /* makeLangID( 0x20, getPrimaryLanguage( LANGUAGE_SAMI_NORTHERN_NORWAY)) */
591 #define LANGUAGE_USER_BODO_INDIA 0x0643
592 #define LANGUAGE_USER_DOGRI_INDIA 0x0644
593 #define LANGUAGE_USER_MAITHILI_INDIA 0x0645
594 #define LANGUAGE_USER_SANTALI_INDIA 0x0646
595 #define LANGUAGE_USER_TETUN_TIMOR_LESTE 0x0A40 /* makeLangID( 0x20, getPrimaryLanguage( LANGUAGE_USER_TETUN)) */
596 #define LANGUAGE_USER_TOK_PISIN 0x0647
597 #define LANGUAGE_USER_SHUSWAP 0x0648
598 #define LANGUAGE_USER_ARABIC_CHAD 0x8001 /* makeLangID( 0x20, getPrimaryLanguage( LANGUAGE_ARABIC_SAUDI_ARABIA)) */
599 #define LANGUAGE_USER_ARABIC_COMOROS 0x8401 /* makeLangID( 0x21, getPrimaryLanguage( LANGUAGE_ARABIC_SAUDI_ARABIA)) */
600 #define LANGUAGE_USER_ARABIC_DJIBOUTI 0x8801 /* makeLangID( 0x22, getPrimaryLanguage( LANGUAGE_ARABIC_SAUDI_ARABIA)) */
601 #define LANGUAGE_USER_ARABIC_ERITREA 0x8C01 /* makeLangID( 0x23, getPrimaryLanguage( LANGUAGE_ARABIC_SAUDI_ARABIA)) */
602 #define LANGUAGE_USER_ARABIC_ISRAEL 0x9001 /* makeLangID( 0x24, getPrimaryLanguage( LANGUAGE_ARABIC_SAUDI_ARABIA)) */
603 #define LANGUAGE_USER_ARABIC_MAURITANIA 0x9401 /* makeLangID( 0x25, getPrimaryLanguage( LANGUAGE_ARABIC_SAUDI_ARABIA)) */
604 #define LANGUAGE_USER_ARABIC_PALESTINE 0x9801 /* makeLangID( 0x26, getPrimaryLanguage( LANGUAGE_ARABIC_SAUDI_ARABIA)) */
605 #define LANGUAGE_USER_ARABIC_SOMALIA 0x9C01 /* makeLangID( 0x27, getPrimaryLanguage( LANGUAGE_ARABIC_SAUDI_ARABIA)) */
606 #define LANGUAGE_USER_ARABIC_SUDAN 0xA001 /* makeLangID( 0x28, getPrimaryLanguage( LANGUAGE_ARABIC_SAUDI_ARABIA)) */
607 #define LANGUAGE_USER_ANCIENT_GREEK 0x0649
608 #define LANGUAGE_USER_ASTURIAN 0x064A
609 #define LANGUAGE_USER_LATGALIAN 0x064B
610 #define LANGUAGE_USER_MAORE 0x064C
611 #define LANGUAGE_USER_BUSHI 0x064D
612 #define LANGUAGE_USER_TAHITIAN 0x064E
613 #define LANGUAGE_OBSOLETE_USER_MALAGASY_PLATEAU 0x064F
614 #define LANGUAGE_USER_MALAGASY_PLATEAU LANGUAGE_MALAGASY_PLATEAU
615 #define LANGUAGE_USER_PAPIAMENTU_ARUBA 0x8079 /* makeLangID( 0x20, getPrimaryLanguage( LANGUAGE_PAPIAMENTU)) */
616 #define LANGUAGE_USER_SARDINIAN_CAMPIDANESE 0x0650
617 #define LANGUAGE_USER_SARDINIAN_GALLURESE 0x0651
618 #define LANGUAGE_USER_SARDINIAN_LOGUDORESE 0x0652
619 #define LANGUAGE_USER_SARDINIAN_SASSARESE 0x0653
620 #define LANGUAGE_USER_BAFIA 0x0654
621 #define LANGUAGE_USER_GIKUYU 0x0655
622 #define LANGUAGE_USER_RUSYN_UKRAINE 0x0656
623 #define LANGUAGE_USER_RUSYN_SLOVAKIA 0x8256 /* makeLangID( 0x20, getPrimaryLanguage( LANGUAGE_USER_RUSYN_UKRAINE)) */
624 #define LANGUAGE_USER_YIDDISH_US 0x803D /* makeLangID( 0x20, getPrimaryLanguage( LANGUAGE_YIDDISH)) */
625 #define LANGUAGE_USER_LIMBU 0x0657
626 #define LANGUAGE_USER_LOJBAN 0x0658 /* no locale */
627 #define LANGUAGE_OBSOLETE_USER_KABYLE 0x0659
628 #define LANGUAGE_USER_KABYLE LANGUAGE_TAMAZIGHT_LATIN_ALGERIA
629 #define LANGUAGE_USER_HAITIAN 0x065A
630 #define LANGUAGE_USER_BEEMBE 0x065B
631 #define LANGUAGE_USER_BEKWEL 0x065C
632 #define LANGUAGE_USER_KITUBA 0x065D
633 #define LANGUAGE_USER_LARI 0x065E
634 #define LANGUAGE_USER_MBOCHI 0x065F
635 #define LANGUAGE_USER_TEKE_IBALI 0x0660
636 #define LANGUAGE_USER_TEKE_TYEE 0x0661
637 #define LANGUAGE_USER_VILI 0x0662
638 #define LANGUAGE_USER_PORTUGUESE_ANGOLA 0x8016 /* makeLangID( 0x20, getPrimaryLanguage( LANGUAGE_PORTUGUESE)) */
639 #define LANGUAGE_USER_MANX 0x0663
640 #define LANGUAGE_USER_TEKE_EBOO 0x0664
641 #define LANGUAGE_USER_ARAGONESE 0x0665
642 #define LANGUAGE_USER_KEYID 0x0666 /* key id pseudolanguage */
643 #define LANGUAGE_USER_PALI_LATIN 0x0667
644 #define LANGUAGE_USER_KYRGYZ_CHINA 0x0668 /* not derived from LANGUAGE_KIRGHIZ as these may be different scripts, see http://www.omniglot.com/writing/kirghiz.htm */
645 #define LANGUAGE_USER_KOMI_ZYRIAN 0x0669
646 #define LANGUAGE_USER_KOMI_PERMYAK 0x066A
647 #define LANGUAGE_USER_PITJANTJATJARA 0x066B
648 #define LANGUAGE_USER_ENGLISH_MALAWI 0x8809 /* makeLangID( 0x22, getPrimaryLanguage( LANGUAGE_ENGLISH_UK)) */
649 #define LANGUAGE_USER_ERZYA 0x066C
650 #define LANGUAGE_USER_MARI_MEADOW 0x066D
651 #define LANGUAGE_USER_KHANTY 0x066E
652 #define LANGUAGE_USER_LIVONIAN 0x066F
653 #define LANGUAGE_USER_MOKSHA 0x0670
654 #define LANGUAGE_USER_MARI_HILL 0x0671
655 #define LANGUAGE_USER_NGANASAN 0x0672
656 #define LANGUAGE_USER_OLONETS 0x0673
657 #define LANGUAGE_USER_VEPS 0x0674
658 #define LANGUAGE_USER_VORO 0x0675
659 #define LANGUAGE_USER_NENETS 0x0676
660 #define LANGUAGE_USER_PAPIAMENTU_CURACAO 0x8479 /* makeLangID( 0x21, getPrimaryLanguage( LANGUAGE_PAPIAMENTU)) */
661 #define LANGUAGE_USER_PAPIAMENTU_BONAIRE 0x8879 /* makeLangID( 0x22, getPrimaryLanguage( LANGUAGE_PAPIAMENTU)) */
662 #define LANGUAGE_USER_AKA 0x0677
663 #define LANGUAGE_USER_AKA_CONGO 0x8277 /* makeLangID( 0x20, getPrimaryLanguage( LANGUAGE_USER_AKA)) */
664 #define LANGUAGE_USER_DIBOLE 0x0678
665 #define LANGUAGE_USER_DOONDO 0x0679
666 #define LANGUAGE_USER_KAAMBA 0x067A
667 #define LANGUAGE_USER_KOONGO 0x067B
668 #define LANGUAGE_USER_KOONGO_CONGO 0x827B /* makeLangID( 0x20, getPrimaryLanguage( LANGUAGE_USER_KOONGO)) */
669 #define LANGUAGE_USER_KUNYI 0x067C
670 #define LANGUAGE_USER_NGUNGWEL 0x067D
671 #define LANGUAGE_USER_NJYEM 0x067E
672 #define LANGUAGE_USER_NJYEM_CONGO 0x827E /* makeLangID( 0x20, getPrimaryLanguage( LANGUAGE_USER_NJYEM)) */
673 #define LANGUAGE_USER_PUNU 0x067F
674 #define LANGUAGE_USER_PUNU_CONGO 0x827F /* makeLangID( 0x20, getPrimaryLanguage( LANGUAGE_USER_PUNU)) */
675 #define LANGUAGE_USER_SUUNDI 0x0680
676 #define LANGUAGE_USER_TEKE_KUKUYA 0x0681
677 #define LANGUAGE_USER_TSAANGI 0x0682
678 #define LANGUAGE_USER_YAKA 0x0683
679 #define LANGUAGE_USER_YOMBE 0x0684
680 #define LANGUAGE_USER_YOMBE_CONGO 0x8284 /* makeLangID( 0x20, getPrimaryLanguage( LANGUAGE_USER_YOMBE)) */
681 #define LANGUAGE_USER_SIDAMA 0x0685
682 #define LANGUAGE_USER_NKO 0x0686
683 #define LANGUAGE_USER_UDMURT 0x0687
684 #define LANGUAGE_USER_TIBETAN_INDIA 0x8051 /* makeLangID( 0x20, getPrimaryLanguage( LANGUAGE_TIBETAN)) */
685 #define LANGUAGE_USER_CORNISH 0x0688
686 #define LANGUAGE_USER_SAMI_PITE_SWEDEN 0x843B /* makeLangID( 0x21, getPrimaryLanguage( LANGUAGE_SAMI_NORTHERN_NORWAY)) */
687 #define LANGUAGE_USER_NGAEBERE 0x0689
688 #define LANGUAGE_USER_ENGLISH_UK_OED 0x8C09 /* makeLangID( 0x23, getPrimaryLanguage( LANGUAGE_ENGLISH_UK)) */
689 #define LANGUAGE_USER_KUMYK 0x068A
690 #define LANGUAGE_USER_NOGAI 0x068B
691 #define LANGUAGE_USER_KARAKALPAK_LATIN 0x068C
692 #define LANGUAGE_USER_LADIN 0x068D
693 #define LANGUAGE_USER_TIBETAN_BHUTAN 0x8451 /* makeLangID( 0x21, getPrimaryLanguage( LANGUAGE_TIBETAN)) */
694 #define LANGUAGE_USER_FRENCH_BURKINA_FASO 0x800C /* makeLangID( 0x20, getPrimaryLanguage( LANGUAGE_FRENCH)) */
695 #define LANGUAGE_USER_PUINAVE 0x068E
696 #define LANGUAGE_USER_MANINKAKAN_EASTERN_LATIN 0x068F
697 #define LANGUAGE_USER_AVAR 0x0690
698 #define LANGUAGE_USER_CREE_PLAINS_LATIN 0x0691
699 #define LANGUAGE_USER_CREE_PLAINS_SYLLABICS 0x8291 /* makeLangID( 0x20, getPrimaryLanguage( LANGUAGE_USER_CREE_PLAINS_LATIN)) */
700 #define LANGUAGE_USER_LENGO 0x0692
701 #define LANGUAGE_USER_FRENCH_BENIN 0x840C /* makeLangID( 0x21, getPrimaryLanguage( LANGUAGE_FRENCH)) */
702 #define LANGUAGE_USER_FRENCH_NIGER 0x880C /* makeLangID( 0x22, getPrimaryLanguage( LANGUAGE_FRENCH)) */
703 #define LANGUAGE_USER_FRENCH_TOGO 0x8C0C /* makeLangID( 0x23, getPrimaryLanguage( LANGUAGE_FRENCH)) */
704 #define LANGUAGE_USER_KVEN_FINNISH 0x0693
705 #define LANGUAGE_USER_CHURCH_SLAVIC 0x0694
706 #define LANGUAGE_USER_VENETIAN 0x0695
709 /* Primary language ID range for on-the-fly assignment. */
710 #define LANGUAGE_ON_THE_FLY_START 0x03E0
711 #define LANGUAGE_ON_THE_FLY_END 0x03FE
712 /* Sublanguage ID range for on-the-fly assignment. */
713 #define LANGUAGE_ON_THE_FLY_SUB_START 0x01
714 #define LANGUAGE_ON_THE_FLY_SUB_END 0x3E
716 /* 0xFFE0 to 0xFFFF reserved for privateuse and specials. */
717 #define LANGUAGE_USER_PRIV_JOKER 0xFFEB /* privateuse "*" (sic! bad! nasty!), primary 0x3eb, sub 0x3f */
718 #define LANGUAGE_USER_PRIV_COMMENT 0xFFEC /* privateuse "x-comment", primary 0x3ec, sub 0x3f */
719 #define LANGUAGE_USER_PRIV_DEFAULT 0xFFED /* privateuse "x-default", primary 0x3ed, sub 0x3f */
720 #define LANGUAGE_USER_PRIV_NOTRANSLATE 0xFFEE /* privateuse "x-no-translate" (sic!), primary 0x3ee, sub 0x3f */
721 #define LANGUAGE_MULTIPLE 0xFFEF /* multiple languages, primary 0x3ef, sub 0x3f */
722 #define LANGUAGE_UNDETERMINED 0xFFF0 /* undetermined language, primary 0x3f0, sub 0x3f */
723 #define LANGUAGE_USER_SYSTEM_CONFIG 0xFFFE /* not a locale, to be used only in configuration context to obtain system default, primary 0x3fe, sub 0x3f */
725 #endif /* INCLUDED_I18NLANGTAG_LANG_H */
727 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */