add all windows locales as a workaround for #407

This commit is contained in:
Thomas Fussell 2019-09-05 15:37:55 -04:00
parent 5791ca80bf
commit df0626579b
2 changed files with 826 additions and 99 deletions

View File

@ -34,34 +34,438 @@ namespace {
const std::unordered_map<int, std::string> known_locales()
{
static const std::unordered_map<int, std::string> *all = new std::unordered_map<int, std::string>(
{{0x401, "Arabic - Saudi Arabia"}, {0x402, "Bulgarian"}, {0x403, "Catalan"}, {0x404, "Chinese - Taiwan"},
{0x405, "Czech"}, {0x406, "Danish"}, {0x407, "German - Germany"}, {0x408, "Greek"},
{0x409, "English - United States"}, {0x410, "Italian - Italy"}, {0x411, "Japanese"}, {0x412, "Korean"},
{0x413, "Dutch - Netherlands"}, {0x414, "Norwegian - Bokml"}, {0x415, "Polish"},
{0x416, "Portuguese - Brazil"}, {0x417, "Raeto-Romance"}, {0x418, "Romanian - Romania"}, {0x419, "Russian"},
{0x420, "Urdu"}, {0x421, "Indonesian"}, {0x422, "Ukrainian"}, {0x423, "Belarusian"}, {0x424, "Slovenian"},
{0x425, "Estonian"}, {0x426, "Latvian"}, {0x427, "Lithuanian"}, {0x428, "Tajik"},
{0x429, "Farsi - Persian"}, {0x430, "Sesotho (Sutu)"}, {0x431, "Tsonga"}, {0x432, "Setsuana"},
{0x433, "Venda"}, {0x434, "Xhosa"}, {0x435, "Zulu"}, {0x436, "Afrikaans"}, {0x437, "Georgian"},
{0x438, "Faroese"}, {0x439, "Hindi"}, {0x440, "Kyrgyz - Cyrillic"}, {0x441, "Swahili"}, {0x442, "Turkmen"},
{0x443, "Uzbek - Latin"}, {0x444, "Tatar"}, {0x445, "Bengali - India"}, {0x446, "Punjabi"},
{0x447, "Gujarati"}, {0x448, "Oriya"}, {0x449, "Tamil"}, {0x450, "Mongolian"}, {0x451, "Tibetan"},
{0x452, "Welsh"}, {0x453, "Khmer"}, {0x454, "Lao"}, {0x455, "Burmese"}, {0x456, "Galician"},
{0x457, "Konkani"}, {0x458, "Manipuri"}, {0x459, "Sindhi"}, {0x460, "Kashmiri"}, {0x461, "Nepali"},
{0x462, "Frisian - Netherlands"}, {0x464, "Filipino"}, {0x465, "Divehi; Dhivehi; Maldivian"},
{0x466, "Edo"}, {0x470, "Igbo - Nigeria"}, {0x474, "Guarani - Paraguay"}, {0x476, "Latin"},
{0x477, "Somali"}, {0x481, "Maori"}, {0x801, "Arabic - Iraq"}, {0x804, "Chinese - China"},
{0x807, "German - Switzerland"}, {0x809, "English - Great Britain"}, {0x810, "Italian - Switzerland"},
{0x813, "Dutch - Belgium"}, {0x814, "Norwegian - Nynorsk"}, {0x816, "Portuguese - Portugal"},
{0x818, "Romanian - Moldova"}, {0x819, "Russian - Moldova"}, {0x843, "Uzbek - Cyrillic"},
{0x845, "Bengali - Bangladesh"}, {0x850, "Mongolian"}, {0x1001, "Arabic - Libya"},
{0x1004, "Chinese - Singapore"}, {0x1007, "German - Luxembourg"}, {0x1009, "English - Canada"},
{0x1401, "Arabic - Algeria"}, {0x1404, "Chinese - Macau SAR"}, {0x1407, "German - Liechtenstein"},
{0x1409, "English - New Zealand"}, {0x1801, "Arabic - Morocco"}, {0x1809, "English - Ireland"},
{0x2001, "Arabic - Oman"}, {0x2009, "English - Jamaica"}, {0x2401, "Arabic - Yemen"},
{0x2409, "English - Caribbean"}, {0x2801, "Arabic - Syria"}, {0x2809, "English - Belize"},
{0x3001, "Arabic - Lebanon"}, {0x3009, "English - Zimbabwe"}, {0x3401, "Arabic - Kuwait"},
{0x3409, "English - Phillippines"}, {0x3801, "Arabic - United Arab Emirates"}, {0x4001, "Arabic - Qatar"}});
{
{0x1, "Arabic"},
{0x2, "Bulgarian"},
{0x3, "Catalan"},
{0x4, "Chinese (Simplified)"},
{0x4, "Chinese (Simplified) Legacy"},
{0x5, "Czech"},
{0x6, "Danish"},
{0x7, "German"},
{0x8, "Greek"},
{0x9, "English"},
{0xA, "Spanish"},
{0xB, "Finnish"},
{0xC, "French"},
{0xD, "Hebrew"},
{0xE, "Hungarian"},
{0xF, "Icelandic"},
{0x10, "Italian"},
{0x11, "Japanese"},
{0x12, "Korean"},
{0x13, "Dutch"},
{0x14, "Norwegian"},
{0x15, "Polish"},
{0x16, "Portuguese"},
{0x17, "Romansh"},
{0x18, "Romanian"},
{0x19, "Russian"},
{0x1A, "Croatian"},
{0x1B, "Slovak"},
{0x1C, "Albanian"},
{0x1D, "Swedish"},
{0x1E, "Thai"},
{0x1F, "Turkish"},
{0x20, "Urdu"},
{0x21, "Indonesian"},
{0x22, "Ukrainian"},
{0x23, "Belarusian"},
{0x24, "Slovenian"},
{0x25, "Estonian"},
{0x26, "Latvian"},
{0x27, "Lithuanian"},
{0x28, "Tajik"},
{0x29, "Persian"},
{0x2A, "Vietnamese"},
{0x2B, "Armenian"},
{0x2C, "Azerbaijani"},
{0x2D, "Basque"},
{0x2E, "Upper Sorbian"},
{0x2F, "Macedonian (FYROM)"},
{0x30, "Southern Sotho"},
{0x31, "Tsonga"},
{0x32, "Setswana"},
{0x33, "Venda"},
{0x34, "isiXhosa"},
{0x35, "isiZulu"},
{0x36, "Afrikaans"},
{0x37, "Georgian"},
{0x38, "Faroese"},
{0x39, "Hindi"},
{0x3A, "Maltese"},
{0x3B, "Sami (Northern)"},
{0x3C, "Irish"},
{0x3D, "Yiddish"},
{0x3E, "Malay"},
{0x3F, "Kazakh"},
{0x40, "Kyrgyz"},
{0x41, "Kiswahili"},
{0x42, "Turkmen"},
{0x43, "Uzbek"},
{0x44, "Tatar"},
{0x45, "Bangla"},
{0x46, "Punjabi"},
{0x47, "Gujarati"},
{0x48, "Odia"},
{0x49, "Tamil"},
{0x4A, "Telugu"},
{0x4B, "Kannada"},
{0x4C, "Malayalam"},
{0x4D, "Assamese"},
{0x4E, "Marathi"},
{0x4F, "Sanskrit"},
{0x50, "Mongolian"},
{0x51, "Tibetan"},
{0x52, "Welsh"},
{0x53, "Khmer"},
{0x54, "Lao"},
{0x55, "Burmese"},
{0x56, "Galician"},
{0x57, "Konkani"},
{0x58, "Manipuri"},
{0x59, "Sindhi"},
{0x5A, "Syriac"},
{0x5B, "Sinhala"},
{0x5C, "Cherokee"},
{0x5D, "Inuktitut"},
{0x5E, "Amharic"},
{0x5F, "Tamazight"},
{0x60, "Kashmiri"},
{0x61, "Nepali"},
{0x62, "Frisian"},
{0x63, "Pashto"},
{0x64, "Filipino"},
{0x65, "Divehi"},
{0x66, "Edo"},
{0x67, "Fulah"},
{0x68, "Hausa"},
{0x69, "Ibibio"},
{0x6A, "Yoruba"},
{0x6B, "Quechua"},
{0x6C, "Sesotho sa Leboa"},
{0x6D, "Bashkir"},
{0x6E, "Luxembourgish"},
{0x6F, "Greenlandic"},
{0x70, "Igbo"},
{0x71, "Kanuri"},
{0x72, "Oromo"},
{0x73, "Tigrinya"},
{0x74, "Guarani"},
{0x75, "Hawaiian"},
{0x76, "Latin"},
{0x77, "Somali"},
{0x78, "Yi"},
{0x79, "Papiamento"},
{0x7A, "Mapudungun"},
{0x7C, "Mohawk"},
{0x7E, "Breton"},
{0x7F, "Invariant Language (Invariant Country)"},
{0x80, "Uyghur"},
{0x81, "Maori"},
{0x82, "Occitan"},
{0x83, "Corsican"},
{0x84, "Alsatian"},
{0x85, "Sakha"},
{0x86, "Kiche"},
{0x87, "Kinyarwanda"},
{0x88, "Wolof"},
{0x8C, "Dari"},
{0x91, "Scottish Gaelic"},
{0x92, "Central Kurdish"},
{0x401, "Arabic (Saudi Arabia)"},
{0x402, "Bulgarian (Bulgaria)"},
{0x403, "Catalan (Catalan)"},
{0x404, "Chinese (Traditional, Taiwan)"},
{0x405, "Czech (Czech Republic)"},
{0x406, "Danish (Denmark)"},
{0x407, "German (Germany)"},
{0x408, "Greek (Greece)"},
{0x409, "English (United States)"},
{0x40B, "Finnish (Finland)"},
{0x40C, "French (France)"},
{0x40D, "Hebrew (Israel)"},
{0x40E, "Hungarian (Hungary)"},
{0x40F, "Icelandic (Iceland)"},
{0x410, "Italian (Italy)"},
{0x411, "Japanese (Japan)"},
{0x412, "Korean (Korea)"},
{0x413, "Dutch (Netherlands)"},
{0x414, "Norwegian, Bokmål (Norway)"},
{0x415, "Polish (Poland)"},
{0x416, "Portuguese (Brazil)"},
{0x417, "Romansh (Switzerland)"},
{0x418, "Romanian (Romania)"},
{0x419, "Russian (Russia)"},
{0x41A, "Croatian (Croatia)"},
{0x41B, "Slovak (Slovakia)"},
{0x41C, "Albanian (Albania)"},
{0x41D, "Swedish (Sweden)"},
{0x41E, "Thai (Thailand)"},
{0x41F, "Turkish (Turkey)"},
{0x420, "Urdu (Islamic Republic of Pakistan)"},
{0x421, "Indonesian (Indonesia)"},
{0x422, "Ukrainian (Ukraine)"},
{0x423, "Belarusian (Belarus)"},
{0x424, "Slovenian (Slovenia)"},
{0x425, "Estonian (Estonia)"},
{0x426, "Latvian (Latvia)"},
{0x427, "Lithuanian (Lithuania)"},
{0x428, "Tajik (Cyrillic, Tajikistan)"},
{0x429, "Persian (Iran)"},
{0x42A, "Vietnamese (Vietnam)"},
{0x42B, "Armenian (Armenia)"},
{0x42C, "Azerbaijani (Latin, Azerbaijan)"},
{0x42D, "Basque (Basque)"},
{0x42E, "Upper Sorbian (Germany)"},
{0x42F, "Macedonian (Former Yugoslav Republic of Macedonia)"},
{0x430, "Southern Sotho (South Africa)"},
{0x431, "Tsonga (South Africa)"},
{0x432, "Setswana (South Africa)"},
{0x433, "Venda (South Africa)"},
{0x434, "isiXhosa (South Africa)"},
{0x435, "isiZulu (South Africa)"},
{0x436, "Afrikaans (South Africa)"},
{0x437, "Georgian (Georgia)"},
{0x438, "Faroese (Faroe Islands)"},
{0x439, "Hindi (India)"},
{0x43A, "Maltese (Malta)"},
{0x43B, "Sami, Northern (Norway)"},
{0x43D, "Yiddish (World)"},
{0x43E, "Malay (Malaysia)"},
{0x43F, "Kazakh (Kazakhstan)"},
{0x440, "Kyrgyz (Kyrgyzstan)"},
{0x441, "Kiswahili (Kenya)"},
{0x442, "Turkmen (Turkmenistan)"},
{0x443, "Uzbek (Latin, Uzbekistan)"},
{0x444, "Tatar (Russia)"},
{0x445, "Bangla (India)"},
{0x446, "Punjabi (India)"},
{0x447, "Gujarati (India)"},
{0x448, "Odia (India)"},
{0x449, "Tamil (India)"},
{0x44A, "Telugu (India)"},
{0x44B, "Kannada (India)"},
{0x44C, "Malayalam (India)"},
{0x44D, "Assamese (India)"},
{0x44E, "Marathi (India)"},
{0x44F, "Sanskrit (India)"},
{0x450, "Mongolian (Cyrillic, Mongolia)"},
{0x451, "Tibetan (PRC)"},
{0x452, "Welsh (United Kingdom)"},
{0x453, "Khmer (Cambodia)"},
{0x454, "Lao (Lao P.D.R.)"},
{0x455, "Burmese (Myanmar)"},
{0x456, "Galician (Galician)"},
{0x457, "Konkani (India)"},
{0x458, "Manipuri (India)"},
{0x459, "Sindhi (Devanagari, India)"},
{0x45A, "Syriac (Syria)"},
{0x45B, "Sinhala (Sri Lanka)"},
{0x45C, "Cherokee (Cherokee)"},
{0x45D, "Inuktitut (Syllabics, Canada)"},
{0x45E, "Amharic (Ethiopia)"},
{0x45F, "Central Atlas Tamazight (Arabic, Morocco)"},
{0x460, "Kashmiri (Perso-Arabic)"},
{0x461, "Nepali (Nepal)"},
{0x462, "Frisian (Netherlands)"},
{0x463, "Pashto (Afghanistan)"},
{0x464, "Filipino (Philippines)"},
{0x465, "Divehi (Maldives)"},
{0x466, "Edo (Nigeria)"},
{0x467, "Fulah (Nigeria)"},
{0x468, "Hausa (Latin, Nigeria)"},
{0x469, "Ibibio (Nigeria)"},
{0x46A, "Yoruba (Nigeria)"},
{0x46B, "Quechua (Bolivia)"},
{0x46C, "Sesotho sa Leboa (South Africa)"},
{0x46D, "Bashkir (Russia)"},
{0x46E, "Luxembourgish (Luxembourg)"},
{0x46F, "Greenlandic (Greenland)"},
{0x470, "Igbo (Nigeria)"},
{0x471, "Kanuri (Nigeria)"},
{0x472, "Oromo (Ethiopia)"},
{0x473, "Tigrinya (Ethiopia)"},
{0x474, "Guarani (Paraguay)"},
{0x475, "Hawaiian (United States)"},
{0x476, "Latin (World)"},
{0x477, "Somali (Somalia)"},
{0x478, "Yi (PRC)"},
{0x479, "Papiamento (Caribbean)"},
{0x47A, "Mapudungun (Chile)"},
{0x47C, "Mohawk (Mohawk)"},
{0x47E, "Breton (France)"},
{0x480, "Uyghur (PRC)"},
{0x481, "Maori (New Zealand)"},
{0x482, "Occitan (France)"},
{0x483, "Corsican (France)"},
{0x484, "Alsatian (France)"},
{0x485, "Sakha (Russia)"},
{0x486, "Kiche (Guatemala)"},
{0x487, "Kinyarwanda (Rwanda)"},
{0x488, "Wolof (Senegal)"},
{0x48C, "Dari (Afghanistan)"},
{0x491, "Scottish Gaelic (United Kingdom)"},
{0x492, "Central Kurdish (Iraq)"},
{0x801, "Arabic (Iraq)"},
{0x803, "Valencian (Spain)"},
{0x804, "Chinese (Simplified, PRC)"},
{0x807, "German (Switzerland)"},
{0x809, "English (United Kingdom)"},
{0x80A, "Spanish (Mexico)"},
{0x80C, "French (Belgium)"},
{0x810, "Italian (Switzerland)"},
{0x813, "Dutch (Belgium)"},
{0x814, "Norwegian, Nynorsk (Norway)"},
{0x816, "Portuguese (Portugal)"},
{0x818, "Romanian (Moldova)"},
{0x819, "Russian (Moldova)"},
{0x81D, "Swedish (Finland)"},
{0x820, "Urdu (India)"},
{0x82C, "Azerbaijani (Cyrillic, Azerbaijan)"},
{0x82E, "Lower Sorbian (Germany)"},
{0x832, "Setswana (Botswana)"},
{0x83B, "Sami, Northern (Sweden)"},
{0x83C, "Irish (Ireland)"},
{0x83E, "Malay (Brunei Darussalam)"},
{0x843, "Uzbek (Cyrillic, Uzbekistan)"},
{0x845, "Bangla (Bangladesh)"},
{0x846, "Punjabi (Islamic Republic of Pakistan)"},
{0x849, "Tamil (Sri Lanka)"},
{0x850, "Mongolian (Traditional Mongolian, PRC)"},
{0x859, "Sindhi (Islamic Republic of Pakistan)"},
{0x85D, "Inuktitut (Latin, Canada)"},
{0x85F, "Tamazight (Latin, Algeria)"},
{0x860, "Kashmiri (Devanagari, India)"},
{0x861, "Nepali (India)"},
{0x867, "Fulah (Latin, Senegal)"},
{0x86B, "Quechua (Ecuador)"},
{0x873, "Tigrinya (Eritrea)"},
{0xC01, "Arabic (Egypt)"},
{0xC04, "Chinese (Traditional, Hong Kong S.A.R.)"},
{0xC07, "German (Austria)"},
{0xC09, "English (Australia)"},
{0xC0A, "Spanish (Spain)"},
{0xC0C, "French (Canada)"},
{0xC3B, "Sami, Northern (Finland)"},
{0xC50, "Mongolian (Traditional Mongolian, Mongolia)"},
{0xC51, "Dzongkha (Bhutan)"},
{0xC6B, "Quechua (Peru)"},
{0x1001, "Arabic (Libya)"},
{0x1004, "Chinese (Simplified, Singapore)"},
{0x1007, "German (Luxembourg)"},
{0x1009, "English (Canada)"},
{0x100A, "Spanish (Guatemala)"},
{0x100C, "French (Switzerland)"},
{0x101A, "Croatian (Latin, Bosnia and Herzegovina)"},
{0x103B, "Sami, Lule (Norway)"},
{0x105F, "Central Atlas Tamazight (Tifinagh, Morocco)"},
{0x1401, "Arabic (Algeria)"},
{0x1404, "Chinese (Traditional, Macao S.A.R.)"},
{0x1407, "German (Liechtenstein)"},
{0x1409, "English (New Zealand)"},
{0x140A, "Spanish (Costa Rica)"},
{0x140C, "French (Luxembourg)"},
{0x141A, "Bosnian (Latin, Bosnia and Herzegovina)"},
{0x143B, "Sami, Lule (Sweden)"},
{0x1801, "Arabic (Morocco)"},
{0x1809, "English (Ireland)"},
{0x180A, "Spanish (Panama)"},
{0x180C, "French (Monaco)"},
{0x181A, "Serbian (Latin, Bosnia and Herzegovina)"},
{0x183B, "Sami, Southern (Norway)"},
{0x1C01, "Arabic (Tunisia)"},
{0x1C09, "English (South Africa)"},
{0x1C0A, "Spanish (Dominican Republic)"},
{0x1C0C, "French (Caribbean)"},
{0x1C1A, "Serbian (Cyrillic, Bosnia and Herzegovina)"},
{0x1C3B, "Sami, Southern (Sweden)"},
{0x2001, "Arabic (Oman)"},
{0x2009, "English (Jamaica)"},
{0x200A, "Spanish (Venezuela)"},
{0x200C, "French (Reunion)"},
{0x201A, "Bosnian (Cyrillic, Bosnia and Herzegovina)"},
{0x203B, "Sami, Skolt (Finland)"},
{0x2401, "Arabic (Yemen)"},
{0x2409, "English (Caribbean)"},
{0x240A, "Spanish (Colombia)"},
{0x240C, "French (Congo DRC)"},
{0x241A, "Serbian (Latin, Serbia)"},
{0x243B, "Sami, Inari (Finland)"},
{0x2801, "Arabic (Syria)"},
{0x2809, "English (Belize)"},
{0x280A, "Spanish (Peru)"},
{0x280C, "French (Senegal)"},
{0x281A, "Serbian (Cyrillic, Serbia)"},
{0x2C01, "Arabic (Jordan)"},
{0x2C09, "English (Trinidad and Tobago)"},
{0x2C0A, "Spanish (Argentina)"},
{0x2C0C, "French (Cameroon)"},
{0x2C1A, "Serbian (Latin, Montenegro)"},
{0x3001, "Arabic (Lebanon)"},
{0x3009, "English (Zimbabwe)"},
{0x300A, "Spanish (Ecuador)"},
{0x300C, "French (Côte dIvoire)"},
{0x301A, "Serbian (Cyrillic, Montenegro)"},
{0x3401, "Arabic (Kuwait)"},
{0x3409, "English (Philippines)"},
{0x340A, "Spanish (Chile)"},
{0x340C, "French (Mali)"},
{0x3801, "Arabic (U.A.E.)"},
{0x3809, "English (Indonesia)"},
{0x380A, "Spanish (Uruguay)"},
{0x380C, "French (Morocco)"},
{0x3C01, "Arabic (Bahrain)"},
{0x3C09, "English (Hong Kong SAR)"},
{0x3C0A, "Spanish (Paraguay)"},
{0x3C0C, "French (Haiti)"},
{0x4001, "Arabic (Qatar)"},
{0x4009, "English (India)"},
{0x400A, "Spanish (Bolivia)"},
{0x4409, "English (Malaysia)"},
{0x440A, "Spanish (El Salvador)"},
{0x4809, "English (Singapore)"},
{0x480A, "Spanish (Honduras)"},
{0x4C0A, "Spanish (Nicaragua)"},
{0x500A, "Spanish (Puerto Rico)"},
{0x540A, "Spanish (United States)"},
{0x580A, "Spanish (Latin America)"},
{0x5C0A, "Spanish (Cuba)"},
{0x641A, "Bosnian (Cyrillic)"},
{0x681A, "Bosnian (Latin)"},
{0x6C1A, "Serbian (Cyrillic)"},
{0x701A, "Serbian (Latin)"},
{0x703B, "Sami (Inari)"},
{0x742C, "Azerbaijani (Cyrillic)"},
{0x743B, "Sami (Skolt)"},
{0x7804, "Chinese"},
{0x7814, "Norwegian (Nynorsk)"},
{0x781A, "Bosnian"},
{0x782C, "Azerbaijani (Latin)"},
{0x783B, "Sami (Southern)"},
{0x7843, "Uzbek (Cyrillic)"},
{0x7850, "Mongolian (Cyrillic)"},
{0x785D, "Inuktitut (Syllabics)"},
{0x785F, "Tamazight (Tifinagh)"},
{0x7C04, "Chinese (Traditional)"},
{0x7C04, "Chinese (Traditional) Legacy"},
{0x7C14, "Norwegian (Bokmål)"},
{0x7C1A, "Serbian"},
{0x7C28, "Tajik (Cyrillic)"},
{0x7C2E, "Lower Sorbian"},
{0x7C3B, "Sami (Lule)"},
{0x7C43, "Uzbek (Latin)"},
{0x7C46, "Punjabi (Arabic)"},
{0x7C50, "Mongolian (Traditional Mongolian)"},
{0x7C59, "Sindhi (Arabic)"},
{0x7C5C, "Cherokee (Cherokee)"},
{0x7C5D, "Inuktitut (Latin)"},
{0x7C5F, "Tamazight (Latin)"},
{0x7C67, "Fulah (Latin)"},
{0x7C68, "Hausa (Latin)"},
{0x7C86, "Kiche"},
{0x7C92, "Central Kurdish (Arabic)"},
});
return *all;
}

View File

@ -102,111 +102,434 @@ enum class format_color
enum class format_locale
{
arabic = 0x1,
bulgarian = 0x2,
catalan = 0x3,
chinese_simplified = 0x4,
chinese_simplified_legacy = 0x4,
czech = 0x5,
danish = 0x6,
german = 0x7,
greek = 0x8,
english = 0x9,
spanish = 0xA,
finnish = 0xB,
french = 0xC,
hebrew = 0xD,
hungarian = 0xE,
icelandic = 0xF,
italian = 0x10,
japanese = 0x11,
korean = 0x12,
dutch = 0x13,
norwegian = 0x14,
polish = 0x15,
portuguese = 0x16,
romansh = 0x17,
romanian = 0x18,
russian = 0x19,
croatian = 0x1A,
slovak = 0x1B,
albanian = 0x1C,
swedish = 0x1D,
thai = 0x1E,
turkish = 0x1F,
urdu = 0x20,
indonesian = 0x21,
ukrainian = 0x22,
belarusian = 0x23,
slovenian = 0x24,
estonian = 0x25,
latvian = 0x26,
lithuanian = 0x27,
tajik = 0x28,
persian = 0x29,
vietnamese = 0x2A,
armenian = 0x2B,
azerbaijani = 0x2C,
basque = 0x2D,
upper_sorbian = 0x2E,
macedonian_fyrom = 0x2F,
southern_sotho = 0x30,
tsonga = 0x31,
setswana = 0x32,
venda = 0x33,
isixhosa = 0x34,
isizulu = 0x35,
afrikaans = 0x36,
georgian = 0x37,
faroese = 0x38,
hindi = 0x39,
maltese = 0x3A,
sami_northern = 0x3B,
irish = 0x3C,
yiddish = 0x3D,
malay = 0x3E,
kazakh = 0x3F,
kyrgyz = 0x40,
kiswahili = 0x41,
turkmen = 0x42,
uzbek = 0x43,
tatar = 0x44,
bangla = 0x45,
punjabi = 0x46,
gujarati = 0x47,
odia = 0x48,
tamil = 0x49,
telugu = 0x4A,
kannada = 0x4B,
malayalam = 0x4C,
assamese = 0x4D,
marathi = 0x4E,
sanskrit = 0x4F,
mongolian = 0x50,
tibetan = 0x51,
welsh = 0x52,
khmer = 0x53,
lao = 0x54,
burmese = 0x55,
galician = 0x56,
konkani = 0x57,
manipuri = 0x58,
sindhi = 0x59,
syriac = 0x5A,
sinhala = 0x5B,
cherokee = 0x5C,
inuktitut = 0x5D,
amharic = 0x5E,
tamazight = 0x5F,
kashmiri = 0x60,
nepali = 0x61,
frisian = 0x62,
pashto = 0x63,
filipino = 0x64,
divehi = 0x65,
edo = 0x66,
fulah = 0x67,
hausa = 0x68,
ibibio = 0x69,
yoruba = 0x6A,
quechua = 0x6B,
sesotho_sa_leboa = 0x6C,
bashkir = 0x6D,
luxembourgish = 0x6E,
greenlandic = 0x6F,
igbo = 0x70,
kanuri = 0x71,
oromo = 0x72,
tigrinya = 0x73,
guarani = 0x74,
hawaiian = 0x75,
latin = 0x76,
somali = 0x77,
yi = 0x78,
papiamento = 0x79,
mapudungun = 0x7A,
mohawk = 0x7C,
breton = 0x7E,
invariant_language_invariant_country = 0x7F,
uyghur = 0x80,
maori = 0x81,
occitan = 0x82,
corsican = 0x83,
alsatian = 0x84,
sakha = 0x85,
kiche = 0x86,
kinyarwanda = 0x87,
wolof = 0x88,
dari = 0x8C,
scottish_gaelic = 0x91,
central_kurdish = 0x92,
arabic_saudi_arabia = 0x401,
bulgarian = 0x402,
catalan = 0x403,
chinese_taiwan = 0x404,
czech = 0x405,
danish = 0x406,
bulgarian_bulgaria = 0x402,
catalan_catalan = 0x403,
chinese_traditional_taiwan = 0x404,
czech_czech_republic = 0x405,
danish_denmark = 0x406,
german_germany = 0x407,
greek = 0x408,
greek_greece = 0x408,
english_united_states = 0x409,
finnish_finland = 0x40B,
french_france = 0x40C,
hebrew_israel = 0x40D,
hungarian_hungary = 0x40E,
icelandic_iceland = 0x40F,
italian_italy = 0x410,
japanese = 0x411,
korean = 0x412,
japanese_japan = 0x411,
korean_korea = 0x412,
dutch_netherlands = 0x413,
norwegian_bokml = 0x414,
polish = 0x415,
norwegian_bokml_norway = 0x414,
polish_poland = 0x415,
portuguese_brazil = 0x416,
raeto_romance = 0x417,
romansh_switzerland = 0x417,
romanian_romania = 0x418,
russian = 0x419,
urdu = 0x420,
indonesian = 0x421,
ukrainian = 0x422,
belarusian = 0x423,
slovenian = 0x424,
estonian = 0x425,
latvian = 0x426,
lithuanian = 0x427,
tajik = 0x428,
farsi_persian = 0x429,
sesotho_sutu = 0x430,
tsonga = 0x431,
setsuana = 0x432,
venda = 0x433,
xhosa = 0x434,
zulu = 0x435,
afrikaans = 0x436,
georgian = 0x437,
faroese = 0x438,
hindi = 0x439,
kyrgyz_cyrillic = 0x440,
swahili = 0x441,
turkmen = 0x442,
uzbek_latin = 0x443,
tatar = 0x444,
bengali_india = 0x445,
punjabi = 0x446,
gujarati = 0x447,
oriya = 0x448,
tamil = 0x449,
mongolian = 0x450,
tibetan = 0x451,
welsh = 0x452,
khmer = 0x453,
lao = 0x454,
burmese = 0x455,
galician = 0x456,
konkani = 0x457,
manipuri = 0x458,
sindhi = 0x459,
kashmiri = 0x460,
nepali = 0x461,
russian_russia = 0x419,
croatian_croatia = 0x41A,
slovak_slovakia = 0x41B,
albanian_albania = 0x41C,
swedish_sweden = 0x41D,
thai_thailand = 0x41E,
turkish_turkey = 0x41F,
urdu_islamic_republic_of_pakistan = 0x420,
indonesian_indonesia = 0x421,
ukrainian_ukraine = 0x422,
belarusian_belarus = 0x423,
slovenian_slovenia = 0x424,
estonian_estonia = 0x425,
latvian_latvia = 0x426,
lithuanian_lithuania = 0x427,
tajik_cyrillic_tajikistan = 0x428,
persian_iran = 0x429,
vietnamese_vietnam = 0x42A,
armenian_armenia = 0x42B,
azerbaijani_latin_azerbaijan = 0x42C,
basque_basque = 0x42D,
upper_sorbian_germany = 0x42E,
macedonian_former_yugoslav_republic_of_macedonia = 0x42F,
southern_sotho_south_africa = 0x430,
tsonga_south_africa = 0x431,
setswana_south_africa = 0x432,
venda_south_africa = 0x433,
isixhosa_south_africa = 0x434,
isizulu_south_africa = 0x435,
afrikaans_south_africa = 0x436,
georgian_georgia = 0x437,
faroese_faroe_islands = 0x438,
hindi_india = 0x439,
maltese_malta = 0x43A,
sami_northern_norway = 0x43B,
yiddish_world = 0x43D,
malay_malaysia = 0x43E,
kazakh_kazakhstan = 0x43F,
kyrgyz_kyrgyzstan = 0x440,
kiswahili_kenya = 0x441,
turkmen_turkmenistan = 0x442,
uzbek_latin_uzbekistan = 0x443,
tatar_russia = 0x444,
bangla_india = 0x445,
punjabi_india = 0x446,
gujarati_india = 0x447,
odia_india = 0x448,
tamil_india = 0x449,
telugu_india = 0x44A,
kannada_india = 0x44B,
malayalam_india = 0x44C,
assamese_india = 0x44D,
marathi_india = 0x44E,
sanskrit_india = 0x44F,
mongolian_cyrillic_mongolia = 0x450,
tibetan_prc = 0x451,
welsh_united_kingdom = 0x452,
khmer_cambodia = 0x453,
lao_lao_p_d_r = 0x454,
burmese_myanmar = 0x455,
galician_galician = 0x456,
konkani_india = 0x457,
manipuri_india = 0x458,
sindhi_devanagari_india = 0x459,
syriac_syria = 0x45A,
sinhala_sri_lanka = 0x45B,
cherokee_cherokee = 0x45C,
inuktitut_syllabics_canada = 0x45D,
amharic_ethiopia = 0x45E,
central_atlas_tamazight_arabic_morocco = 0x45F,
kashmiri_perso_arabic = 0x460,
nepali_nepal = 0x461,
frisian_netherlands = 0x462,
filipino = 0x464,
divehi_dhivehi_maldivian = 0x465,
edo = 0x466,
pashto_afghanistan = 0x463,
filipino_philippines = 0x464,
divehi_maldives = 0x465,
edo_nigeria = 0x466,
fulah_nigeria = 0x467,
hausa_latin_nigeria = 0x468,
ibibio_nigeria = 0x469,
yoruba_nigeria = 0x46A,
quechua_bolivia = 0x46B,
sesotho_sa_leboa_south_africa = 0x46C,
bashkir_russia = 0x46D,
luxembourgish_luxembourg = 0x46E,
greenlandic_greenland = 0x46F,
igbo_nigeria = 0x470,
kanuri_nigeria = 0x471,
oromo_ethiopia = 0x472,
tigrinya_ethiopia = 0x473,
guarani_paraguay = 0x474,
latin = 0x476,
somali = 0x477,
maori = 0x481,
hawaiian_united_states = 0x475,
latin_world = 0x476,
somali_somalia = 0x477,
yi_prc = 0x478,
papiamento_caribbean = 0x479,
mapudungun_chile = 0x47A,
mohawk_mohawk = 0x47C,
breton_france = 0x47E,
uyghur_prc = 0x480,
maori_new_zealand = 0x481,
occitan_france = 0x482,
corsican_france = 0x483,
alsatian_france = 0x484,
sakha_russia = 0x485,
kiche_guatemala = 0x486,
kinyarwanda_rwanda = 0x487,
wolof_senegal = 0x488,
dari_afghanistan = 0x48C,
scottish_gaelic_united_kingdom = 0x491,
central_kurdish_iraq = 0x492,
arabic_iraq = 0x801,
chinese_china = 0x804,
valencian_spain = 0x803,
chinese_simplified_prc = 0x804,
german_switzerland = 0x807,
english_great_britain = 0x809,
english_united_kingdom = 0x809,
spanish_mexico = 0x80A,
french_belgium = 0x80C,
italian_switzerland = 0x810,
dutch_belgium = 0x813,
norwegian_nynorsk = 0x814,
norwegian_nynorsk_norway = 0x814,
portuguese_portugal = 0x816,
romanian_moldova = 0x818,
russian_moldova = 0x819,
uzbek_cyrillic = 0x843,
bengali_bangladesh = 0x845,
mongolian2 = 0x850,
swedish_finland = 0x81D,
urdu_india = 0x820,
azerbaijani_cyrillic_azerbaijan = 0x82C,
lower_sorbian_germany = 0x82E,
setswana_botswana = 0x832,
sami_northern_sweden = 0x83B,
irish_ireland = 0x83C,
malay_brunei_darussalam = 0x83E,
uzbek_cyrillic_uzbekistan = 0x843,
bangla_bangladesh = 0x845,
punjabi_islamic_republic_of_pakistan = 0x846,
tamil_sri_lanka = 0x849,
mongolian_traditional_mongolian_prc = 0x850,
sindhi_islamic_republic_of_pakistan = 0x859,
inuktitut_latin_canada = 0x85D,
tamazight_latin_algeria = 0x85F,
kashmiri_devanagari_india = 0x860,
nepali_india = 0x861,
fulah_latin_senegal = 0x867,
quechua_ecuador = 0x86B,
tigrinya_eritrea = 0x873,
arabic_egypt = 0xC01,
chinese_traditional_hong_kong_s_a_r = 0xC04,
german_austria = 0xC07,
english_australia = 0xC09,
spanish_spain = 0xC0A,
french_canada = 0xC0C,
sami_northern_finland = 0xC3B,
mongolian_traditional_mongolian_mongolia = 0xC50,
dzongkha_bhutan = 0xC51,
quechua_peru = 0xC6B,
arabic_libya = 0x1001,
chinese_singapore = 0x1004,
chinese_simplified_singapore = 0x1004,
german_luxembourg = 0x1007,
english_canada = 0x1009,
spanish_guatemala = 0x100A,
french_switzerland = 0x100C,
croatian_latin_bosnia_and_herzegovina = 0x101A,
sami_lule_norway = 0x103B,
central_atlas_tamazight_tifinagh_morocco = 0x105F,
arabic_algeria = 0x1401,
chinese_macau_sar = 0x1404,
chinese_traditional_macao_s_a_r = 0x1404,
german_liechtenstein = 0x1407,
english_new_zealand = 0x1409,
spanish_costa_rica = 0x140A,
french_luxembourg = 0x140C,
bosnian_latin_bosnia_and_herzegovina = 0x141A,
sami_lule_sweden = 0x143B,
arabic_morocco = 0x1801,
english_ireland = 0x1809,
spanish_panama = 0x180A,
french_monaco = 0x180C,
serbian_latin_bosnia_and_herzegovina = 0x181A,
sami_southern_norway = 0x183B,
arabic_tunisia = 0x1C01,
english_south_africa = 0x1C09,
spanish_dominican_republic = 0x1C0A,
french_caribbean = 0x1C0C,
serbian_cyrillic_bosnia_and_herzegovina = 0x1C1A,
sami_southern_sweden = 0x1C3B,
arabic_oman = 0x2001,
english_jamaica = 0x2009,
spanish_venezuela = 0x200A,
french_reunion = 0x200C,
bosnian_cyrillic_bosnia_and_herzegovina = 0x201A,
sami_skolt_finland = 0x203B,
arabic_yemen = 0x2401,
english_caribbean = 0x2409,
spanish_colombia = 0x240A,
french_congo_drc = 0x240C,
serbian_latin_serbia = 0x241A,
sami_inari_finland = 0x243B,
arabic_syria = 0x2801,
english_belize = 0x2809,
spanish_peru = 0x280A,
french_senegal = 0x280C,
serbian_cyrillic_serbia = 0x281A,
arabic_jordan = 0x2C01,
english_trinidad_and_tobago = 0x2C09,
spanish_argentina = 0x2C0A,
french_cameroon = 0x2C0C,
serbian_latin_montenegro = 0x2C1A,
arabic_lebanon = 0x3001,
english_zimbabwe = 0x3009,
spanish_ecuador = 0x300A,
french_cote_divoire = 0x300C,
serbian_cyrillic_montenegro = 0x301A,
arabic_kuwait = 0x3401,
english_phillippines = 0x3409,
arabic_united_arab_emirates = 0x3801,
arabic_qatar = 0x4001
english_philippines = 0x3409,
spanish_chile = 0x340A,
french_mali = 0x340C,
arabic_u_a_e = 0x3801,
english_indonesia = 0x3809,
spanish_uruguay = 0x380A,
french_morocco = 0x380C,
arabic_bahrain = 0x3C01,
english_hong_kong_sar = 0x3C09,
spanish_paraguay = 0x3C0A,
french_haiti = 0x3C0C,
arabic_qatar = 0x4001,
english_india = 0x4009,
spanish_bolivia = 0x400A,
english_malaysia = 0x4409,
spanish_el_salvador = 0x440A,
english_singapore = 0x4809,
spanish_honduras = 0x480A,
spanish_nicaragua = 0x4C0A,
spanish_puerto_rico = 0x500A,
spanish_united_states = 0x540A,
spanish_latin_america = 0x580A,
spanish_cuba = 0x5C0A,
bosnian_cyrillic = 0x641A,
bosnian_latin = 0x681A,
serbian_cyrillic = 0x6C1A,
serbian_latin = 0x701A,
sami_inari = 0x703B,
azerbaijani_cyrillic = 0x742C,
sami_skolt = 0x743B,
chinese = 0x7804,
norwegian_nynorsk = 0x7814,
bosnian = 0x781A,
azerbaijani_latin = 0x782C,
sami_southern = 0x783B,
uzbek_cyrillic = 0x7843,
mongolian_cyrillic = 0x7850,
inuktitut_syllabics = 0x785D,
tamazight_tifinagh = 0x785F,
chinese_traditional = 0x7C04,
chinese_traditional_legacy = 0x7C04,
norwegian_bokml = 0x7C14,
serbian = 0x7C1A,
tajik_cyrillic = 0x7C28,
lower_sorbian = 0x7C2E,
sami_lule = 0x7C3B,
uzbek_latin = 0x7C43,
punjabi_arabic = 0x7C46,
mongolian_traditional_mongolian = 0x7C50,
sindhi_arabic = 0x7C59,
inuktitut_latin = 0x7C5D,
tamazight_latin = 0x7C5F,
fulah_latin = 0x7C67,
hausa_latin = 0x7C68,
central_kurdish_arabic = 0x7C92
};
// TODO this really shouldn't be exported...