LibreOffice Module i18nlangtag (master) 1
lang.h
Go to the documentation of this file.
1/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2/*
3 * This file is part of the LibreOffice project.
4 *
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/.
8 *
9 * This file incorporates work covered by the following license notice:
10 *
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 .
18 */
19
20#ifndef INCLUDED_I18NLANGTAG_LANG_H
21#define INCLUDED_I18NLANGTAG_LANG_H
22
83#include <sal/types.h>
84#include <o3tl/strong_int.hxx>
85#include <ostream>
86
88inline std::ostream& operator<<(std::ostream& os, LanguageType const & lt) { os << sal_uInt16(lt); return os; }
89constexpr LanguageType primary(LanguageType lt) { return LanguageType(sal_uInt16(lt) & 0x03ff); }
90
91namespace o3tl
92{
93 // delete "sal_Int16" constructor via specialization: values > 0x7FFF are
94 // actually used, and unfortunately passed around in the API as signed
95 // "short", so use this to find all places where casts must be inserted
96 template<> template<> constexpr strong_int<unsigned short,LanguageTypeTag>::strong_int(short, std::enable_if<std::is_integral<short>::value, int>::type) = delete;
97}
98
99#define LANGUAGE_MASK_PRIMARY 0x03ff
100
101#define LANGUAGE_DONTKNOW LanguageType(0x03FF) /* yes, the mask */
102#define LANGUAGE_NONE LanguageType(0x00FF)
103#define LANGUAGE_HID_HUMAN_INTERFACE_DEVICE LanguageType(0x04FF)
104#define LANGUAGE_SYSTEM LanguageType(0x0000) /* OOo/SO definition */
105
106/* The Invariant Locale (Locale ID = 0x007f) is a locale that can be used by
107 * applications when a consistent and locale-independent result is required.
108 * The invariant locale can be used, for example, when comparing character
109 * strings using the CompareString() API and a consistent result regardless of
110 * the User Locale is expected.
111 * The settings of the Invariant Locale are similar to US-English international
112 * standards, but should not be used to display formatted data. */
113/* NOTE: this is taken from the MS documentation! Not supported by OOo/SO! */
114#define LANGUAGE_INVARIANT LanguageType(0x007F)
115
116/* Naming conventions:
117 * * ..._LSO suffix indicates a Language-Script-Only mapping, i.e. no country
118 * assignment in i18nlangtag/source/isolang/isolang.cxx.
119 * Used for backward compatibility or where MS assigned such values and they
120 * should be explicitly handled.
121 * * LANGUAGE_USER_... for our user-defined IDs.
122 * * LANGUAGE_OBSOLETE_USER_... for a user-defined ID that has been replaced by
123 * a value defined by MS.
124 */
125
126#define LANGUAGE_AFRIKAANS LanguageType(0x0436)
127#define LANGUAGE_ALBANIAN LanguageType(0x041C)
128#define LANGUAGE_ALSATIAN_FRANCE LanguageType(0x0484)
129#define LANGUAGE_AMHARIC_ETHIOPIA LanguageType(0x045E)
130#define LANGUAGE_ARABIC_ALGERIA LanguageType(0x1401)
131#define LANGUAGE_ARABIC_BAHRAIN LanguageType(0x3C01)
132#define LANGUAGE_ARABIC_EGYPT LanguageType(0x0C01)
133#define LANGUAGE_ARABIC_IRAQ LanguageType(0x0801)
134#define LANGUAGE_ARABIC_JORDAN LanguageType(0x2C01)
135#define LANGUAGE_ARABIC_KUWAIT LanguageType(0x3401)
136#define LANGUAGE_ARABIC_LEBANON LanguageType(0x3001)
137#define LANGUAGE_ARABIC_LIBYA LanguageType(0x1001)
138#define LANGUAGE_ARABIC_MOROCCO LanguageType(0x1801)
139#define LANGUAGE_ARABIC_OMAN LanguageType(0x2001)
140#define LANGUAGE_ARABIC_PRIMARY_ONLY LanguageType(0x0001) /* primary only, not a locale! */
141#define LANGUAGE_ARABIC_QATAR LanguageType(0x4001)
142#define LANGUAGE_ARABIC_SAUDI_ARABIA LanguageType(0x0401)
143#define LANGUAGE_ARABIC_SYRIA LanguageType(0x2801)
144#define LANGUAGE_ARABIC_TUNISIA LanguageType(0x1C01)
145#define LANGUAGE_ARABIC_UAE LanguageType(0x3801)
146#define LANGUAGE_ARABIC_YEMEN LanguageType(0x2401)
147#define LANGUAGE_ARMENIAN LanguageType(0x042B) /* Eastern Armenian */
148#define LANGUAGE_ASSAMESE LanguageType(0x044D)
149#define LANGUAGE_AZERI_CYRILLIC LanguageType(0x082C)
150#define LANGUAGE_AZERI_CYRILLIC_LSO LanguageType(0x742C)
151#define LANGUAGE_AZERI_LATIN LanguageType(0x042C)
152#define LANGUAGE_AZERI_LATIN_LSO LanguageType(0x782C)
153#define LANGUAGE_BASHKIR_RUSSIA LanguageType(0x046D)
154#define LANGUAGE_BASQUE LanguageType(0x042D)
155#define LANGUAGE_BELARUSIAN LanguageType(0x0423)
156#define LANGUAGE_BENGALI LanguageType(0x0445) /* in India */
157#define LANGUAGE_BENGALI_BANGLADESH LanguageType(0x0845)
158#define LANGUAGE_BOSNIAN_CYRILLIC_LSO LanguageType(0x641A)
159#define LANGUAGE_BOSNIAN_CYRILLIC_BOSNIA_HERZEGOVINA LanguageType(0x201A)
160#define LANGUAGE_BOSNIAN_LATIN_LSO LanguageType(0x681A)
161#define LANGUAGE_BOSNIAN_LSO LanguageType(0x781A)
162#define LANGUAGE_BOSNIAN_LATIN_BOSNIA_HERZEGOVINA LanguageType(0x141A)
163#define LANGUAGE_BOSNIAN_BOSNIA_HERZEGOVINA LANGUAGE_BOSNIAN_LATIN_BOSNIA_HERZEGOVINA /* TODO: remove, only for langtab.src & localize.sdf compatibility */
164#define LANGUAGE_BRETON_FRANCE LanguageType(0x047E) /* obsoletes LANGUAGE_USER_BRETON 0x0629 */
165#define LANGUAGE_BULGARIAN LanguageType(0x0402)
166#define LANGUAGE_BURMESE LanguageType(0x0455)
167#define LANGUAGE_CATALAN LanguageType(0x0403)
168#define LANGUAGE_CATALAN_VALENCIAN LanguageType(0x0803) /* obsoletes LANGUAGE_USER_CATALAN_VALENCIAN 0x8003 */
169#define LANGUAGE_CHEROKEE_UNITED_STATES LanguageType(0x045C)
170#define LANGUAGE_CHEROKEE_CHEROKEE_LSO LanguageType(0x7C5C)
171#define LANGUAGE_CHINESE_HONGKONG LanguageType(0x0C04)
172#define LANGUAGE_CHINESE_LSO LanguageType(0x7804)
173#define LANGUAGE_CHINESE_MACAU LanguageType(0x1404)
174#define LANGUAGE_CHINESE_SIMPLIFIED LanguageType(0x0804)
175#define LANGUAGE_CHINESE_SINGAPORE LanguageType(0x1004)
176#define LANGUAGE_CHINESE_TRADITIONAL LanguageType(0x0404)
177#define LANGUAGE_CHINESE_SIMPLIFIED_LEGACY LanguageType(0x0004) /* MS-.NET 'zh-CHS', primary only! but maps to 'zh-CN' */
178#define LANGUAGE_CHINESE_TRADITIONAL_LSO LanguageType(0x7C04) /* MS-.NET 'zh-CHT' but maps to 'zh-Hant' */
179#define LANGUAGE_CHINESE LANGUAGE_CHINESE_SIMPLIFIED /* most code uses LANGUAGE_CHINESE */
180#define LANGUAGE_CORSICAN_FRANCE LanguageType(0x0483)
181#define LANGUAGE_CROATIAN LanguageType(0x041A)
182#define LANGUAGE_CROATIAN_BOSNIA_HERZEGOVINA LanguageType(0x101A)
183#define LANGUAGE_CZECH LanguageType(0x0405)
184#define LANGUAGE_DANISH LanguageType(0x0406)
185#define LANGUAGE_DARI_AFGHANISTAN LanguageType(0x048C) /* AKA Zoroastrian Dari */
186#define LANGUAGE_DHIVEHI LanguageType(0x0465) /* AKA Divehi */
187#define LANGUAGE_DUTCH LanguageType(0x0413)
188#define LANGUAGE_DUTCH_BELGIAN LanguageType(0x0813)
189#define LANGUAGE_EDO LanguageType(0x0466)
190#define LANGUAGE_ENGLISH LanguageType(0x0009) /* primary only, not a locale! */
191#define LANGUAGE_ENGLISH_ARAB_EMIRATES LanguageType(0x4C09)
192#define LANGUAGE_ENGLISH_AUS LanguageType(0x0C09)
193#define LANGUAGE_ENGLISH_BAHRAIN LanguageType(0x5009)
194#define LANGUAGE_ENGLISH_BELIZE LanguageType(0x2809)
195#define LANGUAGE_ENGLISH_CAN LanguageType(0x1009)
196#define LANGUAGE_ENGLISH_CARIBBEAN LanguageType(0x2409) /* MS reserved since rev.15, "en-029" */
197#define LANGUAGE_ENGLISH_EGYPT LanguageType(0x5409)
198#define LANGUAGE_ENGLISH_EIRE LanguageType(0x1809)
199#define LANGUAGE_ENGLISH_HONG_KONG_SAR LanguageType(0x3C09)
200#define LANGUAGE_ENGLISH_INDIA LanguageType(0x4009)
201#define LANGUAGE_ENGLISH_INDONESIA LanguageType(0x3809)
202#define LANGUAGE_ENGLISH_JAMAICA LanguageType(0x2009)
203#define LANGUAGE_ENGLISH_JORDAN LanguageType(0x5809)
204#define LANGUAGE_ENGLISH_KUWAIT LanguageType(0x5C09)
205#define LANGUAGE_ENGLISH_MALAYSIA LanguageType(0x4409)
206#define LANGUAGE_ENGLISH_NZ LanguageType(0x1409)
207#define LANGUAGE_ENGLISH_PHILIPPINES LanguageType(0x3409)
208#define LANGUAGE_ENGLISH_SAFRICA LanguageType(0x1C09)
209#define LANGUAGE_ENGLISH_SINGAPORE LanguageType(0x4809)
210#define LANGUAGE_ENGLISH_TRINIDAD LanguageType(0x2C09)
211#define LANGUAGE_ENGLISH_TURKEY LanguageType(0x6009)
212#define LANGUAGE_ENGLISH_UK LanguageType(0x0809)
213#define LANGUAGE_ENGLISH_US LanguageType(0x0409)
214#define LANGUAGE_ENGLISH_YEMEN LanguageType(0x6409)
215#define LANGUAGE_ENGLISH_ZIMBABWE LanguageType(0x3009)
216#define LANGUAGE_ESTONIAN LanguageType(0x0425)
217#define LANGUAGE_FAEROESE LanguageType(0x0438)
218#define LANGUAGE_FARSI LanguageType(0x0429)
219#define LANGUAGE_FILIPINO LanguageType(0x0464)
220#define LANGUAGE_FINNISH LanguageType(0x040B)
221#define LANGUAGE_FRENCH LanguageType(0x040C)
222#define LANGUAGE_FRENCH_BELGIAN LanguageType(0x080C)
223#define LANGUAGE_FRENCH_CAMEROON LanguageType(0x2C0C)
224#define LANGUAGE_FRENCH_CANADIAN LanguageType(0x0C0C)
225#define LANGUAGE_FRENCH_COTE_D_IVOIRE LanguageType(0x300C)
226
227#define LANGUAGE_FRENCH_HAITI LanguageType(0x3C0C)
228#define LANGUAGE_FRENCH_LUXEMBOURG LanguageType(0x140C)
229#define LANGUAGE_FRENCH_MALI LanguageType(0x340C)
230#define LANGUAGE_FRENCH_MONACO LanguageType(0x180C)
231#define LANGUAGE_FRENCH_MOROCCO LanguageType(0x380C)
232#define LANGUAGE_FRENCH_NORTH_AFRICA LanguageType(0xE40C) /* MS reserved, "fr-015", "015"="Northern Africa" */
233#define LANGUAGE_FRENCH_REUNION LanguageType(0x200C)
234#define LANGUAGE_FRENCH_SENEGAL LanguageType(0x280C)
235#define LANGUAGE_FRENCH_SWISS LanguageType(0x100C)
236#define LANGUAGE_FRENCH_WEST_INDIES LanguageType(0x1C0C) /* MS-LCID.pdf in between said "Neither defined nor reserved" but since rev.15 it's "fr-029" */
237#define LANGUAGE_FRENCH_ZAIRE LanguageType(0x240C)
238#define LANGUAGE_FRISIAN_NETHERLANDS LanguageType(0x0462)
239#define LANGUAGE_FULFULDE_LATIN_LSO LanguageType(0x7C67)
240#define LANGUAGE_FULFULDE_NIGERIA LanguageType(0x0467)
241#define LANGUAGE_FULFULDE_SENEGAL LanguageType(0x0867)
242#define LANGUAGE_GAELIC_IRELAND LanguageType(0x083C)
243#define LANGUAGE_GAELIC_SCOTLAND LanguageType(0x0491) /* apparently it occurred to MS that those are different languages */
244#define LANGUAGE_GAELIC_SCOTLAND_LEGACY LanguageType(0x043C)
245#define LANGUAGE_GALICIAN LanguageType(0x0456)
246#define LANGUAGE_GEORGIAN LanguageType(0x0437)
247#define LANGUAGE_GERMAN LanguageType(0x0407)
248#define LANGUAGE_GERMAN_AUSTRIAN LanguageType(0x0C07)
249#define LANGUAGE_GERMAN_LIECHTENSTEIN LanguageType(0x1407)
250#define LANGUAGE_GERMAN_LUXEMBOURG LanguageType(0x1007)
251#define LANGUAGE_GERMAN_SWISS LanguageType(0x0807)
252#define LANGUAGE_GREEK LanguageType(0x0408)
253#define LANGUAGE_GUARANI_PARAGUAY LanguageType(0x0474)
254#define LANGUAGE_GUJARATI LanguageType(0x0447)
255#define LANGUAGE_HAUSA_LATIN_LSO LanguageType(0x7C68)
256#define LANGUAGE_HAUSA_NIGERIA LanguageType(0x0468)
257#define LANGUAGE_HAWAIIAN_UNITED_STATES LanguageType(0x0475)
258#define LANGUAGE_HEBREW LanguageType(0x040D)
259#define LANGUAGE_HINDI LanguageType(0x0439)
260#define LANGUAGE_HUNGARIAN LanguageType(0x040E)
261#define LANGUAGE_IBIBIO_NIGERIA LanguageType(0x0469)
262#define LANGUAGE_ICELANDIC LanguageType(0x040F)
263#define LANGUAGE_IGBO_NIGERIA LanguageType(0x0470)
264#define LANGUAGE_INDONESIAN LanguageType(0x0421)
265#define LANGUAGE_INUKTITUT_SYLLABICS_CANADA LanguageType(0x045D)
266#define LANGUAGE_INUKTITUT_SYLLABICS_LSO LanguageType(0x785D)
267#define LANGUAGE_INUKTITUT_LATIN_CANADA LanguageType(0x085D)
268#define LANGUAGE_INUKTITUT_LATIN_LSO LanguageType(0x7C5D)
269#define LANGUAGE_ITALIAN LanguageType(0x0410)
270#define LANGUAGE_ITALIAN_SWISS LanguageType(0x0810)
271#define LANGUAGE_JAPANESE LanguageType(0x0411)
272#define LANGUAGE_KALAALLISUT_GREENLAND LanguageType(0x046F) /* obsoletes LANGUAGE_USER_KALAALLISUT 0x062A */
273#define LANGUAGE_KANNADA LanguageType(0x044B)
274#define LANGUAGE_KANURI_NIGERIA LanguageType(0x0471)
275#define LANGUAGE_KASHMIRI LanguageType(0x0460)
276#define LANGUAGE_KASHMIRI_INDIA LanguageType(0x0860)
277#define LANGUAGE_KAZAKH LanguageType(0x043F)
278#define LANGUAGE_KAZAKH_LATIN LanguageType(0x083F)
279#define LANGUAGE_KAZAKH_CYRILLIC_LSO LanguageType(0x783F)
280#define LANGUAGE_KAZAKH_LATIN_LSO LanguageType(0x7C3F)
281#define LANGUAGE_KHMER LanguageType(0x0453)
282#define LANGUAGE_KICHE_GUATEMALA LanguageType(0x0486) /* AKA K'iche', West Central Quiche */
283#define LANGUAGE_KINYARWANDA_RWANDA LanguageType(0x0487) /* obsoletes LANGUAGE_USER_KINYARWANDA 0x0621 */
284#define LANGUAGE_KIRGHIZ LanguageType(0x0440) /* AKA Kyrgyz */
285#define LANGUAGE_KONKANI LanguageType(0x0457)
286#define LANGUAGE_KOREAN LanguageType(0x0412)
287#define LANGUAGE_KOREAN_JOHAB LanguageType(0x0812) /* not mentioned in MS-LCID.pdf, oh joy */
288#define LANGUAGE_KURDISH_ARABIC_IRAQ LanguageType(0x0492) /* obsoletes LANGUAGE_USER_KURDISH_IRAQ 0x0E26 */
289#define LANGUAGE_KURDISH_ARABIC_LSO LanguageType(0x7C92)
290#define LANGUAGE_LAO LanguageType(0x0454)
291#define LANGUAGE_LATIN LanguageType(0x0476) /* obsoletes LANGUAGE_USER_LATIN 0x0610 and LANGUAGE_USER_LATIN_VATICAN 0x8076 */
292#define LANGUAGE_LATVIAN LanguageType(0x0426)
293#define LANGUAGE_LITHUANIAN LanguageType(0x0427)
294#define LANGUAGE_LITHUANIAN_CLASSIC LanguageType(0x0827) /* MS in its MS-LCID.pdf now says "Neither defined nor reserved" */
295#define LANGUAGE_LU_CHINA LanguageType(0x0490)
296#define LANGUAGE_LUXEMBOURGISH_LUXEMBOURG LanguageType(0x046E) /* obsoletes LANGUAGE_USER_LUXEMBOURGISH 0x0630 */
297#define LANGUAGE_MACEDONIAN LanguageType(0x042F)
298#define LANGUAGE_MALAGASY_PLATEAU LanguageType(0x048D) /* obsoletes LANGUAGE_OBSOLETE_USER_MALAGASY_PLATEAU */
299#define LANGUAGE_MALAYALAM LanguageType(0x044C) /* in India */
300#define LANGUAGE_MALAY_BRUNEI_DARUSSALAM LanguageType(0x083E)
301#define LANGUAGE_MALAY_MALAYSIA LanguageType(0x043E)
302#define LANGUAGE_MALTESE LanguageType(0x043A)
303#define LANGUAGE_MANIPURI LanguageType(0x0458)
304#define LANGUAGE_MAORI_NEW_ZEALAND LanguageType(0x0481) /* obsoletes LANGUAGE_USER_MAORI 0x0620 */
305#define LANGUAGE_MAPUDUNGUN_CHILE LanguageType(0x047A) /* AKA Araucanian */
306#define LANGUAGE_MARATHI LanguageType(0x044E)
307#define LANGUAGE_MOHAWK_CANADA LanguageType(0x047C)
308#define LANGUAGE_MONGOLIAN_CYRILLIC_MONGOLIA LanguageType(0x0450)
309#define LANGUAGE_MONGOLIAN_CYRILLIC_LSO LanguageType(0x7850)
310#define LANGUAGE_MONGOLIAN_MONGOLIAN_MONGOLIA LanguageType(0x0C50)
311#define LANGUAGE_MONGOLIAN_MONGOLIAN_CHINA LanguageType(0x0850)
312#define LANGUAGE_MONGOLIAN_MONGOLIAN_LSO LanguageType(0x7C50)
313#define LANGUAGE_NEPALI LanguageType(0x0461)
314#define LANGUAGE_NEPALI_INDIA LanguageType(0x0861)
315#define LANGUAGE_NORWEGIAN LanguageType(0x0014) /* primary only, not a locale! */
316#define LANGUAGE_NORWEGIAN_BOKMAL LanguageType(0x0414)
317#define LANGUAGE_NORWEGIAN_BOKMAL_LSO LanguageType(0x7C14)
318#define LANGUAGE_NORWEGIAN_NYNORSK LanguageType(0x0814)
319#define LANGUAGE_NORWEGIAN_NYNORSK_LSO LanguageType(0x7814)
320#define LANGUAGE_OCCITAN_FRANCE LanguageType(0x0482) /* obsoletes LANGUAGE_USER_OCCITAN 0x0625 */
321#define LANGUAGE_ODIA LanguageType(0x0448)
322#define LANGUAGE_OROMO LanguageType(0x0472)
323#define LANGUAGE_PAPIAMENTU LanguageType(0x0479)
324#define LANGUAGE_PASHTO LanguageType(0x0463)
325#define LANGUAGE_POLISH LanguageType(0x0415)
326#define LANGUAGE_PORTUGUESE LanguageType(0x0816)
327#define LANGUAGE_PORTUGUESE_BRAZILIAN LanguageType(0x0416)
328#define LANGUAGE_PUNJABI LanguageType(0x0446)
329#define LANGUAGE_PUNJABI_ARABIC_LSO LanguageType(0x7C46)
330#define LANGUAGE_PUNJABI_PAKISTAN LanguageType(0x0846)
331#define LANGUAGE_QUECHUA_BOLIVIA LanguageType(0x046B)
332#define LANGUAGE_QUECHUA_COLOMBIA LanguageType(0x0493) /* different primary ID */
333#define LANGUAGE_QUECHUA_ECUADOR LanguageType(0x086B)
334#define LANGUAGE_QUECHUA_PERU LanguageType(0x0C6B)
335#define LANGUAGE_RHAETO_ROMAN LanguageType(0x0417)
336#define LANGUAGE_ROMANIAN LanguageType(0x0418)
337#define LANGUAGE_ROMANIAN_MOLDOVA LanguageType(0x0818)
338#define LANGUAGE_RUSSIAN LanguageType(0x0419)
339#define LANGUAGE_RUSSIAN_MOLDOVA LanguageType(0x0819)
340#define LANGUAGE_SAMI_NORTHERN_NORWAY LanguageType(0x043B)
341#define LANGUAGE_SAMI_LAPPISH LANGUAGE_SAMI_NORTHERN_NORWAY /* the old MS definition */
342#define LANGUAGE_SAMI_INARI LanguageType(0x243B)
343#define LANGUAGE_SAMI_INARI_LSO LanguageType(0x703B)
344#define LANGUAGE_SAMI_LULE_LSO LanguageType(0x7C3B)
345#define LANGUAGE_SAMI_LULE_NORWAY LanguageType(0x103B)
346#define LANGUAGE_SAMI_LULE_SWEDEN LanguageType(0x143B)
347#define LANGUAGE_SAMI_NORTHERN_FINLAND LanguageType(0x0C3B)
348#define LANGUAGE_SAMI_NORTHERN_SWEDEN LanguageType(0x083B)
349#define LANGUAGE_SAMI_SKOLT LanguageType(0x203B)
350#define LANGUAGE_SAMI_SKOLT_LSO LanguageType(0x743B)
351#define LANGUAGE_SAMI_SOUTHERN_LSO LanguageType(0x783B)
352#define LANGUAGE_SAMI_SOUTHERN_NORWAY LanguageType(0x183B)
353#define LANGUAGE_SAMI_SOUTHERN_SWEDEN LanguageType(0x1C3B)
354#define LANGUAGE_SANSKRIT LanguageType(0x044F)
355#define LANGUAGE_SEPEDI LanguageType(0x046C)
356#define LANGUAGE_NORTHERNSOTHO LANGUAGE_SEPEDI /* just an alias for the already existing localization */
357#define LANGUAGE_SERBIAN_CYRILLIC_LSO LanguageType(0x6C1A)
358#define LANGUAGE_SERBIAN_CYRILLIC_SAM LanguageType(0x0C1A) /* Serbia and Montenegro (former) */
359#define LANGUAGE_SERBIAN_CYRILLIC_BOSNIA_HERZEGOVINA LanguageType(0x1C1A)
360#define LANGUAGE_SERBIAN_CYRILLIC_MONTENEGRO LanguageType(0x301A)
361#define LANGUAGE_SERBIAN_CYRILLIC_SERBIA LanguageType(0x281A)
362#define LANGUAGE_SERBIAN_LATIN_LSO LanguageType(0x701A)
363#define LANGUAGE_SERBIAN_LATIN_SAM LanguageType(0x081A)
364#define LANGUAGE_SERBIAN_LATIN_BOSNIA_HERZEGOVINA LanguageType(0x181A)
365#define LANGUAGE_SERBIAN_LATIN_MONTENEGRO LanguageType(0x2C1A)
366#define LANGUAGE_SERBIAN_LATIN_NEUTRAL LanguageType(0x7C1A)
367#define LANGUAGE_SERBIAN_LATIN_SERBIA LanguageType(0x241A)
368#define LANGUAGE_SESOTHO LanguageType(0x0430) /* also called Sutu now by MS */
369#define LANGUAGE_SINDHI LanguageType(0x0459)
370#define LANGUAGE_SINDHI_ARABIC_LSO LanguageType(0x7C59)
371#define LANGUAGE_SINDHI_PAKISTAN LanguageType(0x0859)
372#define LANGUAGE_SINHALESE_SRI_LANKA LanguageType(0x045B)
373#define LANGUAGE_SLOVAK LanguageType(0x041B)
374#define LANGUAGE_SLOVENIAN LanguageType(0x0424)
375#define LANGUAGE_SOMALI LanguageType(0x0477)
376#define LANGUAGE_UPPER_SORBIAN_GERMANY LanguageType(0x042E) /* obsoletes LANGUAGE_USER_UPPER_SORBIAN 0x0623 */
377#define LANGUAGE_LOWER_SORBIAN_GERMANY LanguageType(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 */
378#define LANGUAGE_LOWER_SORBIAN_LSO LanguageType(0x7C2E)
379#define LANGUAGE_SORBIAN LANGUAGE_USER_UPPER_SORBIAN /* a strange MS definition */
380#define LANGUAGE_SPANISH_DATED LanguageType(0x040A) /* old collation, not supported, see #i94435# */
381#define LANGUAGE_SPANISH_ARGENTINA LanguageType(0x2C0A)
382#define LANGUAGE_SPANISH_BOLIVIA LanguageType(0x400A)
383#define LANGUAGE_SPANISH_CHILE LanguageType(0x340A)
384#define LANGUAGE_SPANISH_COLOMBIA LanguageType(0x240A)
385#define LANGUAGE_SPANISH_COSTARICA LanguageType(0x140A)
386#define LANGUAGE_SPANISH_CUBA LanguageType(0x5C0A)
387#define LANGUAGE_SPANISH_DOMINICAN_REPUBLIC LanguageType(0x1C0A)
388#define LANGUAGE_SPANISH_ECUADOR LanguageType(0x300A)
389#define LANGUAGE_SPANISH_EL_SALVADOR LanguageType(0x440A)
390#define LANGUAGE_SPANISH_GUATEMALA LanguageType(0x100A)
391#define LANGUAGE_SPANISH_HONDURAS LanguageType(0x480A)
392#define LANGUAGE_SPANISH_MEXICAN LanguageType(0x080A)
393#define LANGUAGE_SPANISH_MODERN LanguageType(0x0C0A)
394#define LANGUAGE_SPANISH_NICARAGUA LanguageType(0x4C0A)
395#define LANGUAGE_SPANISH_PANAMA LanguageType(0x180A)
396#define LANGUAGE_SPANISH_PARAGUAY LanguageType(0x3C0A)
397#define LANGUAGE_SPANISH_PERU LanguageType(0x280A)
398#define LANGUAGE_SPANISH_PUERTO_RICO LanguageType(0x500A)
399#define LANGUAGE_SPANISH_UNITED_STATES LanguageType(0x540A)
400#define LANGUAGE_SPANISH_URUGUAY LanguageType(0x380A)
401#define LANGUAGE_SPANISH_VENEZUELA LanguageType(0x200A)
402#define LANGUAGE_SPANISH LANGUAGE_SPANISH_MODERN /* modern collation, see #i94435# */
403#define LANGUAGE_SWAHILI LanguageType(0x0441) /* Kenya */
404#define LANGUAGE_SWEDISH LanguageType(0x041D)
405#define LANGUAGE_SWEDISH_FINLAND LanguageType(0x081D)
406#define LANGUAGE_SYRIAC LanguageType(0x045A)
407#define LANGUAGE_TAI_NUA_CHINA LanguageType(0x048F)
408#define LANGUAGE_TAJIK LanguageType(0x0428)
409#define LANGUAGE_TAJIK_LSO LanguageType(0x7C28)
410#define LANGUAGE_TAMAZIGHT_ARABIC_MOROCCO LanguageType(0x045F)
411#define LANGUAGE_TAMAZIGHT_LATIN_ALGERIA LanguageType(0x085F)
412#define LANGUAGE_TAMAZIGHT_LATIN_LSO LanguageType(0x7C5F)
413#define LANGUAGE_TAMAZIGHT_MOROCCO LanguageType(0x0C5F)
414#define LANGUAGE_TAMAZIGHT_TIFINAGH_MOROCCO LanguageType(0x105F)
415#define LANGUAGE_TAMAZIGHT_TIFINAGH_LSO LanguageType(0x785F)
416#define LANGUAGE_TAMIL LanguageType(0x0449)
417#define LANGUAGE_TAMIL_SRI_LANKA LanguageType(0x0849)
418#define LANGUAGE_TATAR LanguageType(0x0444)
419#define LANGUAGE_TELUGU LanguageType(0x044A)
420#define LANGUAGE_THAI LanguageType(0x041E)
421#define LANGUAGE_TIBETAN LanguageType(0x0451)
422#define LANGUAGE_TIBETAN_BHUTAN LanguageType(0x0851) /* was used as Dzongkha, a MS error, see #i53497# */
423#define LANGUAGE_DZONGKHA_BHUTAN LanguageType(0x0C51) /* they finally got it ... ([MS-LCID] rev. 7.0 2015-06-30) */
424#define LANGUAGE_TIGRIGNA_ERITREA LanguageType(0x0873)
425#define LANGUAGE_TIGRIGNA_ETHIOPIA LanguageType(0x0473)
426#define LANGUAGE_TSONGA LanguageType(0x0431)
427#define LANGUAGE_TSWANA LanguageType(0x0432) /* AKA Setsuana, for South Africa */
428#define LANGUAGE_TSWANA_BOTSWANA LanguageType(0x0832) /* obsoletes LANGUAGE_USER_TSWANA_BOTSWANA 0x8032 */
429#define LANGUAGE_TURKISH LanguageType(0x041F)
430#define LANGUAGE_TURKMEN LanguageType(0x0442)
431#define LANGUAGE_UIGHUR_CHINA LanguageType(0x0480)
432#define LANGUAGE_UKRAINIAN LanguageType(0x0422)
433#define LANGUAGE_URDU_INDIA LanguageType(0x0820)
434#define LANGUAGE_URDU_PAKISTAN LanguageType(0x0420)
435#define LANGUAGE_UZBEK_CYRILLIC LanguageType(0x0843)
436#define LANGUAGE_UZBEK_CYRILLIC_LSO LanguageType(0x7843)
437#define LANGUAGE_UZBEK_LATIN LanguageType(0x0443)
438#define LANGUAGE_UZBEK_LATIN_LSO LanguageType(0x7C43)
439#define LANGUAGE_VENDA LanguageType(0x0433)
440#define LANGUAGE_VIETNAMESE LanguageType(0x042A)
441#define LANGUAGE_WELSH LanguageType(0x0452)
442#define LANGUAGE_WOLOF_SENEGAL LanguageType(0x0488)
443#define LANGUAGE_XHOSA LanguageType(0x0434) /* AKA isiZhosa */
444#define LANGUAGE_YAKUT_RUSSIA LanguageType(0x0485)
445#define LANGUAGE_YI LanguageType(0x0478) /* Sichuan Yi */
446#define LANGUAGE_YIDDISH LanguageType(0x043D)
447#define LANGUAGE_YORUBA LanguageType(0x046A)
448#define LANGUAGE_YUE_CHINESE_HONGKONG LanguageType(0x048E)
449#define LANGUAGE_ZULU LanguageType(0x0435)
450
451#define LANGUAGE_qps_ploc LanguageType(0x0501) /* 'qps-ploc', qps is a reserved for local use code */
452#define LANGUAGE_qps_ploca LanguageType(0x05FE) /* 'qps-ploca', qps is a reserved for local use code */
453#define LANGUAGE_qps_plocm LanguageType(0x09FF) /* 'qps-plocm', qps is a reserved for local use code */
454
455#define LANGUAGE_ar_Ploc_SA_reserved LanguageType(0x4401) /* 'ar-Ploc-SA', 'Ploc'?? */
456#define LANGUAGE_ja_Ploc_JP_reserved LanguageType(0x0811) /* 'ja-Ploc-JP', 'Ploc'?? */
457#define LANGUAGE_pap_029_reserved LanguageType(0x0479) /* "pap-029", "029"="Caribbean" */
458#define LANGUAGE_ar_145_reserved LanguageType(0x4801) /* "ar-145", "145"="Western Asia" */
459#define LANGUAGE_es_419_reserved LanguageType(0x580A) /* MS reserved since rev.15, "es-419", "419"="Latin America and the Caribbean" */
460
461/* Seems these values were used or reserved at one point of time ... */
462#define LANGUAGE_Neither_defined_nor_reserved_0x007B LanguageType(0x007B)
463#define LANGUAGE_Neither_defined_nor_reserved_0x007D LanguageType(0x007D)
464#define LANGUAGE_Neither_defined_nor_reserved_0x0089 LanguageType(0x0089)
465#define LANGUAGE_Neither_defined_nor_reserved_0x008A LanguageType(0x008A)
466#define LANGUAGE_Neither_defined_nor_reserved_0x008B LanguageType(0x008B)
467#define LANGUAGE_Neither_defined_nor_reserved_0x008D LanguageType(0x008D)
468#define LANGUAGE_Neither_defined_nor_reserved_0x008E LanguageType(0x008E)
469#define LANGUAGE_Neither_defined_nor_reserved_0x008F LanguageType(0x008F)
470#define LANGUAGE_Neither_defined_nor_reserved_0x0090 LanguageType(0x0090)
471#define LANGUAGE_Neither_defined_nor_reserved_0x0827 LanguageType(0x0827)
472#define LANGUAGE_Neither_defined_nor_reserved_0x1C0C LanguageType(0x1C0C)
473#define LANGUAGE_Neither_defined_nor_reserved_0x2008 LanguageType(0x2008)
474
475/* MS defines these as reserved, whatever that might imply... */
476#define LANGUAGE_reserved_0xEEEE LanguageType(0xEEEE) /* primary 0x2ee, sub 0x3b */
477#define LANGUAGE_reserved_0xF2EE LanguageType(0xF2EE) /* primary 0x2ee, sub 0x3c */
478
481#define LANGUAGE_SYSTEM_DEFAULT LanguageType(0x0800)
482
485#define LANGUAGE_PROCESS_OR_USER_DEFAULT LanguageType(0x0400)
486
487/* Number format code modifier attribute for system time.
488 * Primary language 0x000, sublanguage 0x3D. */
489#define LANGUAGE_NF_SYSTEM_TIME LanguageType(0xF400)
490
491/* Number format code modifier attribute for system date.
492 * Primary language 0x000, sublanguage 0x3E. */
493#define LANGUAGE_NF_SYSTEM_DATE LanguageType(0xF800)
494
495
496/* And now the extensions we define,
497 * with primary language IDs from 0x200 to 0x3FF valid in blocks from
498 *
499 * 0x0610 to 0x07FF with sublanguage ID 0x01 (default)
500 * 0x0A00 to 0x0BFF with sublanguage ID 0x02
501 * ...
502 * 0x8200 to 0x83FF with sublanguage ID 0x20
503 * 0x8600 to 0x87FF with sublanguage ID 0x21
504 * ...
505 * 0xFA00 to 0xFBFF with sublanguage ID 0x3E
506 * 0xFE00 to 0xFFFF with sublanguage ID 0x3F
507 *
508 * Of which we define reserved blocks:
509 * All primary language IDs 0x3E0 to 0x3FE with any sublanguage ID, not to be
510 * assigned as user-defined IDs:
511 *
512 * 0x07E0 to 0x07FE with sublanguage ID 0x01, first on-the-fly block
513 * 0x0BE0 to 0x0BFE with sublanguage ID 0x02, second on-the-fly block
514 * ...
515 * 0x83E0 to 0x83FE with sublanguage ID 0x20
516 * 0x87E0 to 0x87FE with sublanguage ID 0x21
517 * ...
518 * 0xFBE0 to 0xFBFE with sublanguage ID 0x3E, last on-the-fly block
519 * 0xFFE0 to 0xFFFE with sublanguage ID 0x3F, 32 privateuse and specials
520 *
521 * This leaves room for 479 user-defined primary language IDs (instead of 512)
522 * with primary bitmask comparability, and 1922 on-the-fly IDs (instead of 0)
523 * with arbitrary assignment ((0x3E - 0x01 + 1) * (0x3FE - 0x3E0 + 1)).
524 *
525 * The primary ID 0x3FF is reserved and unassigned as it is the same as the
526 * LANGUAGE_MASK_PRIMARY and LANGUAGE_DONTKNOW value, so to not be mistaken as
527 * such.
528 *
529 * Obsolete OOo user defines now have other values assigned by MS, and
530 * different name. Mapping an obsolete value to ISO code should work provided
531 * that such a mapping exists in i18nlangtag/source/isolang/isolang.cxx, but
532 * mapping ISO back to LANGID will return the new value.
533 */
534#define LANGUAGE_OBSOLETE_USER_SPANISH_LATIN_AMERICA LanguageType(0xE40A) /* no locale possible, legacy for es-419, makeLangID( 0x39, getPrimaryLanguage( LANGUAGE_SPANISH)) */
535#define LANGUAGE_SPANISH_LATIN_AMERICA LANGUAGE_es_419_reserved
536#define LANGUAGE_OBSOLETE_USER_LATIN LanguageType(0x0610)
537#define LANGUAGE_USER_LATIN LANGUAGE_LATIN
538#define LANGUAGE_OBSOLETE_USER_LATIN_VATICAN LanguageType(0x8076) /* makeLangID( 0x20, getPrimaryLanguage( LANGUAGE_LATIN)) */
539#define LANGUAGE_USER_LATIN_VATICAN LANGUAGE_LATIN
540#define LANGUAGE_USER_ESPERANTO LanguageType(0x0611) /* no locale possible */
541#define LANGUAGE_USER_INTERLINGUA LanguageType(0x0612) /* no locale, but conventions */
542#define LANGUAGE_OBSOLETE_USER_MAORI LanguageType(0x0620)
543#define LANGUAGE_USER_MAORI LANGUAGE_MAORI_NEW_ZEALAND
544#define LANGUAGE_OBSOLETE_USER_KINYARWANDA LanguageType(0x0621)
545#define LANGUAGE_USER_KINYARWANDA LANGUAGE_KINYARWANDA_RWANDA
546/* was reserved for Northern Sotho but never used: 0x0622 */ /* obsoleted by LANGUAGE_SEPEDI */
547#define LANGUAGE_OBSOLETE_USER_UPPER_SORBIAN LanguageType(0x0623)
548#define LANGUAGE_USER_UPPER_SORBIAN LANGUAGE_UPPER_SORBIAN_GERMANY
549#define LANGUAGE_OBSOLETE_USER_LOWER_SORBIAN LanguageType(0x0624)
550#define LANGUAGE_USER_LOWER_SORBIAN LANGUAGE_LOWER_SORBIAN_GERMANY
551#define LANGUAGE_OBSOLETE_USER_OCCITAN LanguageType(0x0625)
552#define LANGUAGE_USER_OCCITAN LANGUAGE_OCCITAN_FRANCE /* reserved to languedocian */
553
554#define LANGUAGE_USER_KOREAN_NORTH LanguageType(0x8012) /* North Korean as opposed to South Korean, makeLangID( 0x20, getPrimaryLanguage( LANGUAGE_KOREAN)) */
555#define LANGUAGE_USER_KURDISH_TURKEY LanguageType(0x0626) /* sublang 0x01, Latin script */
556#define LANGUAGE_USER_KURDISH_SYRIA LanguageType(0x0A26) /* sublang 0x02, Latin script */
557#define LANGUAGE_OBSOLETE_USER_KURDISH_IRAQ LanguageType(0x0E26) /* sublang 0x03, Arabic script */
558#define LANGUAGE_USER_KURDISH_IRAQ LANGUAGE_KURDISH_ARABIC_IRAQ
559#define LANGUAGE_USER_KURDISH_IRAN LanguageType(0x1226) /* sublang 0x04, Arabic script */
560#define LANGUAGE_USER_KURDISH_SOUTHERN_IRAQ LanguageType(0x8092) /* makeLangID( 0x20, getPrimaryLanguage( LANGUAGE_KURDISH_ARABIC_LSO)) */
561#define LANGUAGE_USER_KURDISH_SOUTHERN_IRAN LanguageType(0x8492) /* makeLangID( 0x21, getPrimaryLanguage( LANGUAGE_KURDISH_ARABIC_LSO)) */
562#define LANGUAGE_USER_SARDINIAN LanguageType(0x0627)
563/* was reserved for Dzongkha but turned down with #i53497#: 0x0628 */ /* obsoleted by LANGUAGE_DZONGKHA_BHUTAN */
564#define LANGUAGE_USER_DZONGKHA_MAP_LONLY LanguageType(0xF851) /* to map "dz" only, because of the MS error, and preserve CTL information, sub 0x3e */
565#define LANGUAGE_USER_SWAHILI_TANZANIA LanguageType(0x8041) /* makeLangID( 0x20, getPrimaryLanguage( LANGUAGE_SWAHILI)) */
566#define LANGUAGE_OBSOLETE_USER_BRETON LanguageType(0x0629)
567#define LANGUAGE_USER_BRETON LANGUAGE_BRETON_FRANCE
568#define LANGUAGE_OBSOLETE_USER_KALAALLISUT LanguageType(0x062A)
569#define LANGUAGE_USER_KALAALLISUT LANGUAGE_KALAALLISUT_GREENLAND
570#define LANGUAGE_USER_SWAZI LanguageType(0x062B)
571#define LANGUAGE_USER_NDEBELE_SOUTH LanguageType(0x062C)
572#define LANGUAGE_OBSOLETE_USER_TSWANA_BOTSWANA LanguageType(0x8032) /* makeLangID( 0x20, getPrimaryLanguage( LANGUAGE_TSWANA)) */
573#define LANGUAGE_USER_TSWANA_BOTSWANA LANGUAGE_TSWANA_BOTSWANA
574#define LANGUAGE_USER_MOORE LanguageType(0x062D)
575#define LANGUAGE_USER_BAMBARA LanguageType(0x062E)
576#define LANGUAGE_USER_AKAN LanguageType(0x062F)
577#define LANGUAGE_OBSOLETE_USER_LUXEMBOURGISH LanguageType(0x0630)
578#define LANGUAGE_USER_LUXEMBOURGISH LANGUAGE_LUXEMBOURGISH_LUXEMBOURG
579#define LANGUAGE_USER_FRIULIAN LanguageType(0x0631)
580#define LANGUAGE_USER_FIJIAN LanguageType(0x0632)
581#define LANGUAGE_USER_AFRIKAANS_NAMIBIA LanguageType(0x8036) /* makeLangID( 0x20, getPrimaryLanguage( LANGUAGE_AFRIKAANS)) */
582#define LANGUAGE_USER_ENGLISH_NAMIBIA LanguageType(0x8009) /* makeLangID( 0x20, getPrimaryLanguage( LANGUAGE_ENGLISH_US)) */
583#define LANGUAGE_USER_WALLOON LanguageType(0x0633)
584#define LANGUAGE_USER_COPTIC LanguageType(0x0634)
585#define LANGUAGE_USER_CHUVASH LanguageType(0x0635)
586#define LANGUAGE_USER_GASCON LanguageType(0x0636) /* Gascon France */
587#define LANGUAGE_USER_GERMAN_BELGIUM LanguageType(0x8007) /* makeLangID( 0x20, getPrimaryLanguage( LANGUAGE_GERMAN)) */
588#define LANGUAGE_OBSOLETE_USER_CATALAN_VALENCIAN LanguageType(0x8003) /* makeLangID( 0x20, getPrimaryLanguage( LANGUAGE_CATALAN)) */
589#define LANGUAGE_USER_CATALAN_VALENCIAN LANGUAGE_CATALAN_VALENCIAN
590#define LANGUAGE_USER_HAUSA_GHANA LanguageType(0x8068) /* makeLangID( 0x20, getPrimaryLanguage( LANGUAGE_HAUSA_NIGERIA)) */
591#define LANGUAGE_USER_EWE_GHANA LanguageType(0x0637)
592#define LANGUAGE_USER_ENGLISH_GHANA LanguageType(0x8409) /* makeLangID( 0x21, getPrimaryLanguage( LANGUAGE_ENGLISH_US)) */
593#define LANGUAGE_USER_TAGALOG LanguageType(0x0638)
594#define LANGUAGE_USER_LINGALA_DRCONGO LanguageType(0x0639)
595#define LANGUAGE_USER_SANGO LanguageType(0x063A)
596#define LANGUAGE_USER_GANDA LanguageType(0x063B)
597#define LANGUAGE_USER_LOW_GERMAN LanguageType(0x063C)
598#define LANGUAGE_USER_HILIGAYNON LanguageType(0x063D)
599#define LANGUAGE_USER_NYANJA LanguageType(0x063E)
600#define LANGUAGE_USER_KASHUBIAN LanguageType(0x063F)
601#define LANGUAGE_OBSOLETE_USER_SPANISH_CUBA LanguageType(0x800A) /* makeLangID( 0x20, getPrimaryLanguage( LANGUAGE_SPANISH)) */
602#define LANGUAGE_USER_SPANISH_CUBA LANGUAGE_SPANISH_CUBA
603#define LANGUAGE_USER_TETUN LanguageType(0x0640)
604#define LANGUAGE_USER_QUECHUA_NORTH_BOLIVIA LanguageType(0x0641)
605#define LANGUAGE_USER_QUECHUA_SOUTH_BOLIVIA LanguageType(0x0642)
606#define LANGUAGE_OBSOLETE_USER_SERBIAN_CYRILLIC_SERBIA LanguageType(0x8C1A) /* makeLangID( 0x20+0x03, getPrimaryLanguage( LANGUAGE_SERBIAN_CYRILLIC_LSO)) */
607#define LANGUAGE_USER_SERBIAN_CYRILLIC_SERBIA LANGUAGE_SERBIAN_CYRILLIC_SERBIA
608#define LANGUAGE_OBSOLETE_USER_SERBIAN_LATIN_SERBIA LanguageType(0x881A) /* makeLangID( 0x20+0x02, getPrimaryLanguage( LANGUAGE_SERBIAN_LATIN_LSO)) */
609#define LANGUAGE_USER_SERBIAN_LATIN_SERBIA LANGUAGE_SERBIAN_LATIN_SERBIA
610#define LANGUAGE_OBSOLETE_USER_SERBIAN_CYRILLIC_MONTENEGRO LanguageType(0xCC1A) /* makeLangID( 0x20+0x13, getPrimaryLanguage( LANGUAGE_SERBIAN_CYRILLIC_LSO)) */
611#define LANGUAGE_USER_SERBIAN_CYRILLIC_MONTENEGRO LANGUAGE_SERBIAN_CYRILLIC_MONTENEGRO
612#define LANGUAGE_OBSOLETE_USER_SERBIAN_LATIN_MONTENEGRO LanguageType(0xC81A) /* makeLangID( 0x20+0x12, getPrimaryLanguage( LANGUAGE_SERBIAN_LATIN_LSO)) */
613#define LANGUAGE_USER_SERBIAN_LATIN_MONTENEGRO LANGUAGE_SERBIAN_LATIN_MONTENEGRO
614#define LANGUAGE_USER_SAMI_KILDIN_RUSSIA LanguageType(0x803B) /* makeLangID( 0x20, getPrimaryLanguage( LANGUAGE_SAMI_NORTHERN_NORWAY)) */
615#define LANGUAGE_USER_BODO_INDIA LanguageType(0x0643)
616#define LANGUAGE_USER_DOGRI_INDIA LanguageType(0x0644)
617#define LANGUAGE_USER_MAITHILI_INDIA LanguageType(0x0645)
618#define LANGUAGE_USER_SANTALI_INDIA LanguageType(0x0646)
619#define LANGUAGE_USER_TETUN_TIMOR_LESTE LanguageType(0x0A40) /* makeLangID( 0x20, getPrimaryLanguage( LANGUAGE_USER_TETUN)) */
620#define LANGUAGE_USER_TOK_PISIN LanguageType(0x0647)
621#define LANGUAGE_USER_SHUSWAP LanguageType(0x0648)
622#define LANGUAGE_USER_ARABIC_CHAD LanguageType(0x8001) /* makeLangID( 0x20, getPrimaryLanguage( LANGUAGE_ARABIC_SAUDI_ARABIA)) */
623#define LANGUAGE_USER_ARABIC_COMOROS LanguageType(0x8401) /* makeLangID( 0x21, getPrimaryLanguage( LANGUAGE_ARABIC_SAUDI_ARABIA)) */
624#define LANGUAGE_USER_ARABIC_DJIBOUTI LanguageType(0x8801) /* makeLangID( 0x22, getPrimaryLanguage( LANGUAGE_ARABIC_SAUDI_ARABIA)) */
625#define LANGUAGE_USER_ARABIC_ERITREA LanguageType(0x8C01) /* makeLangID( 0x23, getPrimaryLanguage( LANGUAGE_ARABIC_SAUDI_ARABIA)) */
626#define LANGUAGE_USER_ARABIC_ISRAEL LanguageType(0x9001) /* makeLangID( 0x24, getPrimaryLanguage( LANGUAGE_ARABIC_SAUDI_ARABIA)) */
627#define LANGUAGE_USER_ARABIC_MAURITANIA LanguageType(0x9401) /* makeLangID( 0x25, getPrimaryLanguage( LANGUAGE_ARABIC_SAUDI_ARABIA)) */
628#define LANGUAGE_USER_ARABIC_PALESTINE LanguageType(0x9801) /* makeLangID( 0x26, getPrimaryLanguage( LANGUAGE_ARABIC_SAUDI_ARABIA)) */
629#define LANGUAGE_USER_ARABIC_SOMALIA LanguageType(0x9C01) /* makeLangID( 0x27, getPrimaryLanguage( LANGUAGE_ARABIC_SAUDI_ARABIA)) */
630#define LANGUAGE_USER_ARABIC_SUDAN LanguageType(0xA001) /* makeLangID( 0x28, getPrimaryLanguage( LANGUAGE_ARABIC_SAUDI_ARABIA)) */
631#define LANGUAGE_USER_ANCIENT_GREEK LanguageType(0x0649)
632#define LANGUAGE_USER_ASTURIAN LanguageType(0x064A)
633#define LANGUAGE_USER_LATGALIAN LanguageType(0x064B)
634#define LANGUAGE_USER_MAORE LanguageType(0x064C)
635#define LANGUAGE_USER_BUSHI LanguageType(0x064D)
636#define LANGUAGE_USER_TAHITIAN LanguageType(0x064E)
637#define LANGUAGE_OBSOLETE_USER_MALAGASY_PLATEAU LanguageType(0x064F)
638#define LANGUAGE_USER_PAPIAMENTU_ARUBA LanguageType(0x8079) /* makeLangID( 0x20, getPrimaryLanguage( LANGUAGE_PAPIAMENTU)) */
639#define LANGUAGE_USER_SARDINIAN_CAMPIDANESE LanguageType(0x0650)
640#define LANGUAGE_USER_SARDINIAN_GALLURESE LanguageType(0x0651)
641#define LANGUAGE_USER_SARDINIAN_LOGUDORESE LanguageType(0x0652)
642#define LANGUAGE_USER_SARDINIAN_SASSARESE LanguageType(0x0653)
643#define LANGUAGE_USER_BAFIA LanguageType(0x0654)
644#define LANGUAGE_USER_GIKUYU LanguageType(0x0655)
645#define LANGUAGE_USER_RUSYN_UKRAINE LanguageType(0x0656)
646#define LANGUAGE_USER_RUSYN_SLOVAKIA LanguageType(0x8256) /* makeLangID( 0x20, getPrimaryLanguage( LANGUAGE_USER_RUSYN_UKRAINE)) */
647#define LANGUAGE_USER_YIDDISH_US LanguageType(0x803D) /* makeLangID( 0x20, getPrimaryLanguage( LANGUAGE_YIDDISH)) */
648#define LANGUAGE_USER_LIMBU LanguageType(0x0657)
649#define LANGUAGE_USER_LOJBAN LanguageType(0x0658) /* no locale */
650#define LANGUAGE_OBSOLETE_USER_KABYLE LanguageType(0x0659)
651#define LANGUAGE_USER_KABYLE LANGUAGE_TAMAZIGHT_LATIN_ALGERIA
652#define LANGUAGE_USER_HAITIAN LanguageType(0x065A)
653#define LANGUAGE_USER_BEEMBE LanguageType(0x065B)
654#define LANGUAGE_USER_BEKWEL LanguageType(0x065C)
655#define LANGUAGE_USER_KITUBA LanguageType(0x065D)
656#define LANGUAGE_USER_LARI LanguageType(0x065E)
657#define LANGUAGE_USER_MBOCHI LanguageType(0x065F)
658#define LANGUAGE_USER_TEKE_IBALI LanguageType(0x0660)
659#define LANGUAGE_USER_TEKE_TYEE LanguageType(0x0661)
660#define LANGUAGE_USER_VILI LanguageType(0x0662)
661#define LANGUAGE_USER_PORTUGUESE_ANGOLA LanguageType(0x8016) /* makeLangID( 0x20, getPrimaryLanguage( LANGUAGE_PORTUGUESE)) */
662#define LANGUAGE_USER_MANX LanguageType(0x0663)
663#define LANGUAGE_USER_TEKE_EBOO LanguageType(0x0664)
664#define LANGUAGE_USER_ARAGONESE LanguageType(0x0665)
665#define LANGUAGE_USER_KEYID LanguageType(0x0666) /* key id pseudolanguage */
666#define LANGUAGE_USER_PALI_LATIN LanguageType(0x0667)
667#define LANGUAGE_USER_KYRGYZ_CHINA LanguageType(0x0668) /* not derived from LANGUAGE_KIRGHIZ as these may be different scripts, see http://www.omniglot.com/writing/kirghiz.htm */
668#define LANGUAGE_USER_KOMI_ZYRIAN LanguageType(0x0669)
669#define LANGUAGE_USER_KOMI_PERMYAK LanguageType(0x066A)
670#define LANGUAGE_USER_PITJANTJATJARA LanguageType(0x066B)
671#define LANGUAGE_USER_ENGLISH_MALAWI LanguageType(0x8809) /* makeLangID( 0x22, getPrimaryLanguage( LANGUAGE_ENGLISH_UK)) */
672#define LANGUAGE_USER_ERZYA LanguageType(0x066C)
673#define LANGUAGE_USER_MARI_MEADOW LanguageType(0x066D)
674#define LANGUAGE_USER_KHANTY LanguageType(0x066E)
675#define LANGUAGE_USER_LIVONIAN LanguageType(0x066F)
676#define LANGUAGE_USER_MOKSHA LanguageType(0x0670)
677#define LANGUAGE_USER_MARI_HILL LanguageType(0x0671)
678#define LANGUAGE_USER_NGANASAN LanguageType(0x0672)
679#define LANGUAGE_USER_OLONETS LanguageType(0x0673)
680#define LANGUAGE_USER_VEPS LanguageType(0x0674)
681#define LANGUAGE_USER_VORO LanguageType(0x0675)
682#define LANGUAGE_USER_NENETS LanguageType(0x0676)
683#define LANGUAGE_USER_PAPIAMENTU_CURACAO LanguageType(0x8479) /* makeLangID( 0x21, getPrimaryLanguage( LANGUAGE_PAPIAMENTU)) */
684#define LANGUAGE_USER_PAPIAMENTU_BONAIRE LanguageType(0x8879) /* makeLangID( 0x22, getPrimaryLanguage( LANGUAGE_PAPIAMENTU)) */
685#define LANGUAGE_USER_AKA LanguageType(0x0677)
686#define LANGUAGE_USER_AKA_CONGO LanguageType(0x8277) /* makeLangID( 0x20, getPrimaryLanguage( LANGUAGE_USER_AKA)) */
687#define LANGUAGE_USER_DIBOLE LanguageType(0x0678)
688#define LANGUAGE_USER_DOONDO LanguageType(0x0679)
689#define LANGUAGE_USER_KAAMBA LanguageType(0x067A)
690#define LANGUAGE_USER_KOONGO LanguageType(0x067B)
691#define LANGUAGE_USER_KOONGO_CONGO LanguageType(0x827B) /* makeLangID( 0x20, getPrimaryLanguage( LANGUAGE_USER_KOONGO)) */
692#define LANGUAGE_USER_KUNYI LanguageType(0x067C)
693#define LANGUAGE_USER_NGUNGWEL LanguageType(0x067D)
694#define LANGUAGE_USER_NJYEM LanguageType(0x067E)
695#define LANGUAGE_USER_NJYEM_CONGO LanguageType(0x827E) /* makeLangID( 0x20, getPrimaryLanguage( LANGUAGE_USER_NJYEM)) */
696#define LANGUAGE_USER_PUNU LanguageType(0x067F)
697#define LANGUAGE_USER_PUNU_CONGO LanguageType(0x827F) /* makeLangID( 0x20, getPrimaryLanguage( LANGUAGE_USER_PUNU)) */
698#define LANGUAGE_USER_SUUNDI LanguageType(0x0680)
699#define LANGUAGE_USER_TEKE_KUKUYA LanguageType(0x0681)
700#define LANGUAGE_USER_TSAANGI LanguageType(0x0682)
701#define LANGUAGE_USER_YAKA LanguageType(0x0683)
702#define LANGUAGE_USER_YOMBE LanguageType(0x0684)
703#define LANGUAGE_USER_YOMBE_CONGO LanguageType(0x8284) /* makeLangID( 0x20, getPrimaryLanguage( LANGUAGE_USER_YOMBE)) */
704#define LANGUAGE_USER_SIDAMA LanguageType(0x0685)
705#define LANGUAGE_USER_NKO LanguageType(0x0686)
706#define LANGUAGE_USER_UDMURT LanguageType(0x0687)
707#define LANGUAGE_USER_TIBETAN_INDIA LanguageType(0x8051) /* makeLangID( 0x20, getPrimaryLanguage( LANGUAGE_TIBETAN)) */
708#define LANGUAGE_USER_CORNISH LanguageType(0x0688)
709#define LANGUAGE_USER_SAMI_PITE_SWEDEN LanguageType(0x843B) /* makeLangID( 0x21, getPrimaryLanguage( LANGUAGE_SAMI_NORTHERN_NORWAY)) */
710#define LANGUAGE_USER_NGAEBERE LanguageType(0x0689)
711#define LANGUAGE_USER_ENGLISH_UK_OED LanguageType(0x8C09) /* makeLangID( 0x23, getPrimaryLanguage( LANGUAGE_ENGLISH_UK)) */
712#define LANGUAGE_USER_KUMYK LanguageType(0x068A)
713#define LANGUAGE_USER_NOGAI LanguageType(0x068B)
714#define LANGUAGE_USER_KARAKALPAK_LATIN LanguageType(0x068C)
715#define LANGUAGE_USER_LADIN LanguageType(0x068D)
716#define LANGUAGE_USER_TIBETAN_BHUTAN LanguageType(0x8451) /* makeLangID( 0x21, getPrimaryLanguage( LANGUAGE_TIBETAN)) */
717#define LANGUAGE_USER_FRENCH_BURKINA_FASO LanguageType(0x800C) /* makeLangID( 0x20, getPrimaryLanguage( LANGUAGE_FRENCH)) */
718#define LANGUAGE_USER_PUINAVE LanguageType(0x068E)
719#define LANGUAGE_USER_MANINKAKAN_EASTERN_LATIN LanguageType(0x068F)
720#define LANGUAGE_USER_AVAR LanguageType(0x0690)
721#define LANGUAGE_USER_CREE_PLAINS_LATIN LanguageType(0x0691)
722#define LANGUAGE_USER_CREE_PLAINS_SYLLABICS LanguageType(0x8291) /* makeLangID( 0x20, getPrimaryLanguage( LANGUAGE_USER_CREE_PLAINS_LATIN)) */
723#define LANGUAGE_USER_LENGO LanguageType(0x0692)
724#define LANGUAGE_USER_FRENCH_BENIN LanguageType(0x840C) /* makeLangID( 0x21, getPrimaryLanguage( LANGUAGE_FRENCH)) */
725#define LANGUAGE_USER_FRENCH_NIGER LanguageType(0x880C) /* makeLangID( 0x22, getPrimaryLanguage( LANGUAGE_FRENCH)) */
726#define LANGUAGE_USER_FRENCH_TOGO LanguageType(0x8C0C) /* makeLangID( 0x23, getPrimaryLanguage( LANGUAGE_FRENCH)) */
727#define LANGUAGE_USER_KVEN_FINNISH LanguageType(0x0693)
728#define LANGUAGE_USER_CHURCH_SLAVIC LanguageType(0x0694)
729#define LANGUAGE_USER_VENETIAN LanguageType(0x0695)
730#define LANGUAGE_USER_ENGLISH_GAMBIA LanguageType(0x9009) /* makeLangID( 0x24, getPrimaryLanguage( LANGUAGE_ENGLISH_UK)) */
731#define LANGUAGE_USER_OCCITAN_ARANESE LanguageType(0x8082) /* makeLangID( 0x20, getPrimaryLanguage( LANGUAGE_OCCITAN_FRANCE)) */
732#define LANGUAGE_USER_ENGLISH_UK_OXENDICT LanguageType(0x9409) /* makeLangID( 0x25, getPrimaryLanguage( LANGUAGE_ENGLISH_UK)) */
733#define LANGUAGE_USER_ARPITAN_FRANCE LanguageType(0x0696)
734#define LANGUAGE_USER_ARPITAN_ITALY LanguageType(0x0A96) /* makeLangID( 0x02, getPrimaryLanguage( LANGUAGE_USER_ARPITAN_FRANCE)) */
735#define LANGUAGE_USER_ARPITAN_SWITZERLAND LanguageType(0x0E96) /* makeLangID( 0x03, getPrimaryLanguage( LANGUAGE_USER_ARPITAN_FRANCE)) */
736#define LANGUAGE_USER_ENGLISH_BOTSWANA LanguageType(0x9809) /* makeLangID( 0x26, getPrimaryLanguage( LANGUAGE_ENGLISH_UK)) */
737#define LANGUAGE_USER_INTERLINGUE LanguageType(0x0697) /* no locale */
738#define LANGUAGE_USER_APATANI LanguageType(0x0698)
739#define LANGUAGE_USER_ENGLISH_MAURITIUS LanguageType(0x9C09) /* makeLangID( 0x27, getPrimaryLanguage( LANGUAGE_ENGLISH_UK)) */
740#define LANGUAGE_USER_FRENCH_MAURITIUS LanguageType(0x900C) /* makeLangID( 0x24, getPrimaryLanguage( LANGUAGE_FRENCH)) */
741#define LANGUAGE_USER_SILESIAN LanguageType(0x0699)
742#define LANGUAGE_USER_HUNGARIAN_ROVAS LanguageType(0x800E) /* makeLangID( 0x20, getPrimaryLanguage( LANGUAGE_HUNGARIAN)) */
743#define LANGUAGE_USER_MANCHU LanguageType(0x069A)
744#define LANGUAGE_USER_XIBE LanguageType(0x069B)
745#define LANGUAGE_USER_KITUBA_DRCONGO LanguageType(0x069C)
746#define LANGUAGE_USER_FON LanguageType(0x069D)
747#define LANGUAGE_USER_PLAUTDIETSCH LanguageType(0x069E)
748#define LANGUAGE_USER_ARMENIAN_RUSSIA LanguageType(0x802B) /* makeLangID( 0x20, getPrimaryLanguage( LANGUAGE_ARMENIAN)) */
749#define LANGUAGE_USER_ARMENIAN_IRAN LanguageType(0x842B) /* makeLangID( 0x21, getPrimaryLanguage( LANGUAGE_ARMENIAN)) */
750#define LANGUAGE_USER_ARMENIAN_WESTERN LanguageType(0x069F)
751#define LANGUAGE_USER_ARMENIAN_CLASSICAL LanguageType(0x06A0)
752#define LANGUAGE_USER_MALAY_ARABIC_MALAYSIA LanguageType(0x803E) /* makeLangID( 0x20, getPrimaryLanguage( LANGUAGE_MALAY_MALAYSIA)) */
753#define LANGUAGE_USER_MALAY_ARABIC_BRUNEI LanguageType(0x843E) /* makeLangID( 0x21, getPrimaryLanguage( LANGUAGE_MALAY_BRUNEI_DARUSSALAM)) */
754#define LANGUAGE_USER_JUHOAN LanguageType(0x06A1)
755#define LANGUAGE_USER_NARO LanguageType(0x06A2)
756#define LANGUAGE_USER_ILOKO LanguageType(0x06A3)
757#define LANGUAGE_USER_ENGLISH_ZAMBIA LanguageType(0xA009) /* makeLangID( 0x28, getPrimaryLanguage( LANGUAGE_ENGLISH_UK)) */
758#define LANGUAGE_USER_ENGLISH_SRI_LANKA LanguageType(0xA409) /* makeLangID( 0x29, getPrimaryLanguage( LANGUAGE_ENGLISH_UK)) */
759#define LANGUAGE_USER_ENGLISH_NIGERIA LanguageType(0xA809) /* makeLangID( 0x2A, getPrimaryLanguage( LANGUAGE_ENGLISH_UK)) */
760#define LANGUAGE_USER_KABARDIAN LanguageType(0x06A4)
761#define LANGUAGE_USER_GUADELOUPEAN_CREOLE_FRENCH LanguageType(0x06A5)
762#define LANGUAGE_USER_LIGURIAN LanguageType(0x06A6)
763#define LANGUAGE_USER_MINANGKABAU LanguageType(0x06A7)
764#define LANGUAGE_USER_SUNDANESE LanguageType(0x06A8)
765#define LANGUAGE_USER_YAKA_DRCONGO LanguageType(0x06A9)
766#define LANGUAGE_USER_ENGLISH_KENYA LanguageType(0xAC09) /* makeLangID( 0x2B, getPrimaryLanguage( LANGUAGE_ENGLISH_UK)) */
767#define LANGUAGE_USER_PALI_THAI LanguageType(0x0A67) /* makeLangID( 0x02, getPrimaryLanguage( LANGUAGE_USER_PALI_LATIN)) */
768#define LANGUAGE_USER_CABECAR LanguageType(0x06AA)
769#define LANGUAGE_USER_BRIBRI LanguageType(0x06AB)
770#define LANGUAGE_USER_ENGLISH_DENMARK LanguageType(0xB009) /* makeLangID( 0x2C, getPrimaryLanguage( LANGUAGE_ENGLISH_UK)) */
771#define LANGUAGE_USER_SESOTHO_LESOTHO LanguageType(0x8030) /* makeLangID( 0x20, getPrimaryLanguage( LANGUAGE_SESOTHO)) */
772#define LANGUAGE_USER_YIDDISH_ISRAEL LanguageType(0x843D) /* makeLangID( 0x21, getPrimaryLanguage( LANGUAGE_YIDDISH)) */
773#define LANGUAGE_USER_KLINGON LanguageType(0x06AC)
774#define LANGUAGE_USER_ENGLISH_ISRAEL LanguageType(0xB409) /* makeLangID( 0x2D, getPrimaryLanguage( LANGUAGE_ENGLISH_US)) */
775#define LANGUAGE_USER_INTERSLAVIC_LATIN LanguageType(0x06AD)
776#define LANGUAGE_USER_INTERSLAVIC_CYRILLIC LanguageType(0x06AE)
777#define LANGUAGE_USER_PENNSYLVANIA_DUTCH LanguageType(0x06AF)
778#define LANGUAGE_USER_PORTUGUESE_MOZAMBIQUE LanguageType(0x8416) /* makeLangID( 0x21, getPrimaryLanguage( LANGUAGE_PORTUGUESE)) */
779#define LANGUAGE_USER_SPANISH_EQUATORIAL_GUINEA LanguageType(0x840A) /* makeLangID( 0x21, getPrimaryLanguage( LANGUAGE_SPANISH)) */
780#define LANGUAGE_USER_SPANISH_PHILIPPINES LanguageType(0x880A) /* makeLangID( 0x22, getPrimaryLanguage( LANGUAGE_SPANISH)) */
781#define LANGUAGE_USER_CATALAN_ANDORRA LanguageType(0x8403) /* makeLangID( 0x21, getPrimaryLanguage( LANGUAGE_CATALAN)) */
782#define LANGUAGE_USER_CATALAN_FRANCE LanguageType(0x8803) /* makeLangID( 0x22, getPrimaryLanguage( LANGUAGE_CATALAN)) */
783#define LANGUAGE_USER_CATALAN_ITALY LanguageType(0x8C03) /* makeLangID( 0x23, getPrimaryLanguage( LANGUAGE_CATALAN)) */
784#define LANGUAGE_USER_ENGLISH_ANTIGUA_BARBUDA LanguageType(0xB809) /* makeLangID( 0x2E, getPrimaryLanguage( LANGUAGE_ENGLISH_UK)) */
785#define LANGUAGE_USER_SARAIKI LanguageType(0x06B0)
786#define LANGUAGE_USER_ROHINGYA_HANIFI LanguageType(0x06B1)
787#define LANGUAGE_USER_MORISYEN LanguageType(0x06B2)
788
789
790/* XXX Add new user defined LCIDs ^^^ there.
791 * Note that we run out of IDs with sublanguage ID 0x01 after 0x07DF ... */
792
793
794/* Primary language ID range for on-the-fly assignment. */
795#define LANGUAGE_ON_THE_FLY_START LanguageType(0x03E0)
796#define LANGUAGE_ON_THE_FLY_END LanguageType(0x03FE)
797/* Sublanguage ID range for on-the-fly assignment. */
798#define LANGUAGE_ON_THE_FLY_SUB_START LanguageType(0x01)
799#define LANGUAGE_ON_THE_FLY_SUB_END LanguageType(0x3E)
800
801/* 0xFFE0 to 0xFFFF reserved for privateuse and specials. */
802#define LANGUAGE_USER_PRIV_NONE LanguageType(0xFFEA) /* privateuse "x-none", MS ill-escaped into the wild, primary 0x3ea, sub 0x3f */
803#define LANGUAGE_USER_PRIV_JOKER LanguageType(0xFFEB) /* privateuse "*" (sic! bad! nasty!), primary 0x3eb, sub 0x3f */
804#define LANGUAGE_USER_PRIV_COMMENT LanguageType(0xFFEC) /* privateuse "x-comment", primary 0x3ec, sub 0x3f */
805#define LANGUAGE_USER_PRIV_DEFAULT LanguageType(0xFFED) /* privateuse "x-default", primary 0x3ed, sub 0x3f */
806#define LANGUAGE_USER_PRIV_NOTRANSLATE LanguageType(0xFFEE) /* privateuse "x-no-translate" (sic!), primary 0x3ee, sub 0x3f */
807#define LANGUAGE_MULTIPLE LanguageType(0xFFEF) /* multiple languages, primary 0x3ef, sub 0x3f */
808#define LANGUAGE_UNDETERMINED LanguageType(0xFFF0) /* undetermined language, primary 0x3f0, sub 0x3f */
809#define LANGUAGE_USER_SYSTEM_CONFIG LanguageType(0xFFFE) /* not a locale, to be used only in configuration context to obtain system default, primary 0x3fe, sub 0x3f */
810
811
812#endif /* INCLUDED_I18NLANGTAG_LANG_H */
813
814/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
o3tl::strong_int< sal_uInt16, struct LanguageTypeTag > LanguageType
These are MS LANGIDs, the lower 10 bits (mask 0x03ff, values below 0x0400 aren't real locale IDs) rep...
Definition: lang.h:87
constexpr LanguageType primary(LanguageType lt)
Definition: lang.h:89
std::ostream & operator<<(std::ostream &os, LanguageType const &lt)
Definition: lang.h:88