[FAST486]
[reactos.git] / include / host / nls.h
index d9f7913..076a444 100644 (file)
@@ -9,7 +9,7 @@
 #ifndef _HOST_NLS_H
 #define _HOST_NLS_H
 
-#include <host/typedefs.h>
+#include <typedefs.h>
 
 typedef DWORD LCID;
 
@@ -20,118 +20,393 @@ typedef DWORD LCID;
 
 #define CP_UTF8 65001
 
-#define LANG_AFRIKAANS       0x36
-#define LANG_ALBANIAN        0x1c
-#define LANG_ARABIC          0x01
-#define LANG_ARMENIAN        0x2b
-#define LANG_ASSAMESE        0x4d
-#define LANG_AZERI           0x2c
-#define LANG_BASQUE          0x2d
-#define LANG_BELARUSIAN      0x23
-#define LANG_BENGALI         0x45
-#define LANG_BULGARIAN       0x02
-#define LANG_CATALAN         0x03
-#define LANG_CHINESE         0x04
-#define LANG_CROATIAN        0x1a
-#define LANG_CZECH           0x05
-#define LANG_DANISH          0x06
-#define LANG_DIVEHI          0x65
-#define LANG_DUTCH           0x13
-#define LANG_ENGLISH         0x09
-#define LANG_ESTONIAN        0x25
-#define LANG_FAEROESE        0x38
-#define LANG_FARSI           0x29
-#define LANG_FINNISH         0x0b
-#define LANG_FRENCH          0x0c
-#define LANG_GALICIAN        0x56
-#define LANG_GEORGIAN        0x37
-#define LANG_GERMAN          0x07
-#define LANG_GREEK           0x08
-#define LANG_GUJARATI        0x47
-#define LANG_HEBREW          0x0d
-#define LANG_HINDI           0x39
-#define LANG_HUNGARIAN       0x0e
-#define LANG_ICELANDIC       0x0f
-#define LANG_INDONESIAN      0x21
-#define LANG_IRISH           0x3c
-#define LANG_ITALIAN         0x10
-#define LANG_JAPANESE        0x11
-#define LANG_KANNADA         0x4b
-#define LANG_KASHMIRI        0x60
-#define LANG_KAZAK           0x3f
-#define LANG_KONKANI         0x57
-#define LANG_KOREAN          0x12
-#define LANG_KYRGYZ          0x40
-#define LANG_LATVIAN         0x26
-#define LANG_LITHUANIAN      0x27
-#define LANG_MACEDONIAN      0x2f
-#define LANG_MANIPURI        0x58
-#define LANG_MALAY           0x3e
-#define LANG_MALAYALAM       0x4c
-#define LANG_MARATHI         0x4e
-#define LANG_MONGOLIAN       0x50
-#define LANG_NEPALI          0x61
-#define LANG_NEUTRAL         0x00
-#define LANG_NORWEGIAN       0x14
-#define LANG_ORIYA           0x48
-#define LANG_POLISH          0x15
-#define LANG_PORTUGUESE      0x16
-#define LANG_PUNJABI         0x46
-#define LANG_ROMANIAN        0x18
-#define LANG_ROMANSH         0x17
-#define LANG_RUSSIAN         0x19
-#define LANG_SAMI            0x3b
-#define LANG_SANSKRIT        0x4f
-#define LANG_SERBIAN         0x1a
-#define LANG_SINDHI          0x59
-#define LANG_SLOVAK          0x1b
-#define LANG_SLOVENIAN       0x24
-#define LANG_SPANISH         0x0a
-#define LANG_SWAHILI         0x41
-#define LANG_SWEDISH         0x1d
-#define LANG_SYRIAC          0x5a
-#define LANG_TAJIK           0x28
-#define LANG_TAMIL           0x49
-#define LANG_TATAR           0x44
-#define LANG_TELUGU          0x4a
-#define LANG_THAI            0x1e
-#define LANG_TURKISH         0x1f
-#define LANG_UKRAINIAN       0x22
-#define LANG_URDU            0x20
-#define LANG_UZBEK           0x43
-#define LANG_VIETNAMESE      0x2a
+#define LANG_NEUTRAL        0x00
+#define LANG_INVARIANT      0x7f
+
+#define LANG_AFRIKAANS      0x36
+#define LANG_ALBANIAN       0x1c
+#define LANG_ALSATIAN       0x84
+#define LANG_AMHARIC        0x5e
+#define LANG_ARABIC         0x01
+#define LANG_ARMENIAN       0x2b
+#define LANG_ASSAMESE       0x4d
+#define LANG_AZERI          0x2c
+#define LANG_BASHKIR        0x6d
+#define LANG_BASQUE         0x2d
+#define LANG_BELARUSIAN     0x23
+#define LANG_BENGALI        0x45
+#define LANG_BOSNIAN        0x1a
+#define LANG_BOSNIAN_NEUTRAL      0x781a
+#define LANG_BRETON         0x7e
+#define LANG_BULGARIAN      0x02
+#define LANG_CATALAN        0x03
+#define LANG_CHINESE        0x04
+#define LANG_CHINESE_SIMPLIFIED   0x0004
+#define LANG_CHINESE_TRADITIONAL  0x7c04
+#define LANG_CORSICAN       0x83
+#define LANG_CROATIAN       0x1a
+#define LANG_CZECH          0x05
+#define LANG_DANISH         0x06
+#define LANG_DARI           0x8c
+#define LANG_DIVEHI         0x65
+#define LANG_DUTCH          0x13
+#define LANG_ENGLISH        0x09
+#define LANG_ESTONIAN       0x25
+#define LANG_FAEROESE       0x38
+#define LANG_FARSI          LANG_PERSIAN
+#define LANG_FILIPINO       0x64
+#define LANG_FINNISH        0x0b
+#define LANG_FRENCH         0x0c
+#define LANG_FRISIAN        0x62
+#define LANG_GALICIAN       0x56
+#define LANG_GEORGIAN       0x37
+#define LANG_GERMAN         0x07
+#define LANG_GREEK          0x08
+#define LANG_GREENLANDIC    0x6f
+#define LANG_GUJARATI       0x47
+#define LANG_HAUSA          0x68
+#define LANG_HEBREW         0x0d
+#define LANG_HINDI          0x39
+#define LANG_HUNGARIAN      0x0e
+#define LANG_ICELANDIC      0x0f
+#define LANG_IGBO           0x70
+#define LANG_INDONESIAN     0x21
+#define LANG_INUKTITUT      0x5d
+#define LANG_IRISH          0x3c
+#define LANG_ITALIAN        0x10
+#define LANG_JAPANESE       0x11
+#define LANG_KANNADA        0x4b
+#define LANG_KASHMIRI       0x60
+#define LANG_KAZAK          0x3f
+#define LANG_KHMER          0x53
+#define LANG_KICHE          0x86
+#define LANG_KINYARWANDA    0x87
+#define LANG_KONKANI        0x57
+#define LANG_KOREAN         0x12
+#define LANG_KYRGYZ         0x40
+#define LANG_LAO            0x54
+#define LANG_LATVIAN        0x26
+#define LANG_LITHUANIAN     0x27
+#define LANG_LOWER_SORBIAN  0x2e
+#define LANG_LUXEMBOURGISH  0x6e
+#define LANG_MACEDONIAN     0x2f
+#define LANG_MALAY          0x3e
+#define LANG_MALAYALAM      0x4c
+#define LANG_MALTESE        0x3a
+#define LANG_MANIPURI       0x58
+#define LANG_MAORI          0x81
+#define LANG_MAPUDUNGUN     0x7a
+#define LANG_MARATHI        0x4e
+#define LANG_MOHAWK         0x7c
+#define LANG_MONGOLIAN      0x50
+#define LANG_NEPALI         0x61
+#define LANG_NORWEGIAN      0x14
+#define LANG_OCCITAN        0x82
+#define LANG_ORIYA          0x48
+#define LANG_PASHTO         0x63
+#define LANG_PERSIAN        0x29
+#define LANG_POLISH         0x15
+#define LANG_PORTUGUESE     0x16
+#define LANG_PUNJABI        0x46
+#define LANG_QUECHUA        0x6b
+#define LANG_ROMANIAN       0x18
+#define LANG_ROMANSH        0x17
+#define LANG_RUSSIAN        0x19
+#define LANG_SAMI           0x3b
+#define LANG_SANSKRIT       0x4f
+#define LANG_SERBIAN        0x1a
+#define LANG_SERBIAN_NEUTRAL      0x7c1a
+#define LANG_SINDHI         0x59
+#define LANG_SINHALESE      0x5b
+#define LANG_SLOVAK         0x1b
+#define LANG_SLOVENIAN      0x24
+#define LANG_SOTHO          0x6c
+#define LANG_SPANISH        0x0a
+#define LANG_SWAHILI        0x41
+#define LANG_SWEDISH        0x1d
+#define LANG_SYRIAC         0x5a
+#define LANG_TAJIK          0x28
+#define LANG_TAMAZIGHT      0x5f
+#define LANG_TAMIL          0x49
+#define LANG_TATAR          0x44
+#define LANG_TELUGU         0x4a
+#define LANG_THAI           0x1e
+#define LANG_TIBETAN        0x51
+#define LANG_TIGRIGNA       0x73
+#define LANG_TSWANA         0x32
+#define LANG_TURKISH        0x1f
+#define LANG_TURKMEN        0x42
+#define LANG_UIGHUR         0x80
+#define LANG_UKRAINIAN      0x22
+#define LANG_UPPER_SORBIAN  0x2e
+#define LANG_URDU           0x20
+#define LANG_UZBEK          0x43
+#define LANG_VIETNAMESE     0x2a
+#define LANG_WELSH          0x52
+#define LANG_WOLOF          0x88
+#define LANG_XHOSA          0x34
+#define LANG_YAKUT          0x85
+#define LANG_YI             0x78
+#define LANG_YORUBA         0x6a
+#define LANG_ZULU           0x35
+
+/* These are documented by the MSDN but are missing from the Windows header */
+#define LANG_MALAGASY       0x8d
+
+/* FIXME: these are not defined anywhere */
+#define LANG_SUTU           0x30
+#define LANG_TSONGA         0x31
+#define LANG_VENDA          0x33
 
 /* non standard; keep the number high enough (but < 0xff) */
-#define LANG_ESPERANTO       0x8f
-#define LANG_WALON           0x90
-#define LANG_CORNISH         0x91
-#define LANG_WELSH           0x92
-#define LANG_BRETON          0x93
+#define LANG_ESPERANTO                  0x8f
+#define LANG_WALON                      0x90
+#define LANG_CORNISH                     0x92
+#define LANG_GAELIC                      0x94
+
+/* Sublanguage definitions */
+#define SUBLANG_NEUTRAL                  0x00    /* language neutral */
+#define SUBLANG_DEFAULT                  0x01    /* user default */
+#define SUBLANG_SYS_DEFAULT              0x02    /* system default */
+#define SUBLANG_CUSTOM_DEFAULT           0x03
+#define SUBLANG_CUSTOM_UNSPECIFIED       0x04
+#define SUBLANG_UI_CUSTOM_DEFAULT        0x05
+
+#define SUBLANG_AFRIKAANS_SOUTH_AFRICA     0x01
+#define SUBLANG_ALBANIAN_ALBANIA           0x01
+#define SUBLANG_ALSATIAN_FRANCE            0x01
+#define SUBLANG_AMHARIC_ETHIOPIA           0x01
+#define SUBLANG_ARABIC_SAUDI_ARABIA        0x01
+#define SUBLANG_ARABIC_IRAQ                0x02
+#define SUBLANG_ARABIC_EGYPT               0x03
+#define SUBLANG_ARABIC_LIBYA               0x04
+#define SUBLANG_ARABIC_ALGERIA             0x05
+#define SUBLANG_ARABIC_MOROCCO             0x06
+#define SUBLANG_ARABIC_TUNISIA             0x07
+#define SUBLANG_ARABIC_OMAN                0x08
+#define SUBLANG_ARABIC_YEMEN               0x09
+#define SUBLANG_ARABIC_SYRIA               0x0a
+#define SUBLANG_ARABIC_JORDAN              0x0b
+#define SUBLANG_ARABIC_LEBANON             0x0c
+#define SUBLANG_ARABIC_KUWAIT              0x0d
+#define SUBLANG_ARABIC_UAE                 0x0e
+#define SUBLANG_ARABIC_BAHRAIN             0x0f
+#define SUBLANG_ARABIC_QATAR               0x10
+#define SUBLANG_ARMENIAN_ARMENIA           0x01
+#define SUBLANG_ASSAMESE_INDIA             0x01
+#define SUBLANG_AZERI_LATIN                0x01
+#define SUBLANG_AZERI_CYRILLIC             0x02
+#define SUBLANG_BASHKIR_RUSSIA             0x01
+#define SUBLANG_BASQUE_BASQUE              0x01
+#define SUBLANG_BELARUSIAN_BELARUS         0x01
+#define SUBLANG_BENGALI_INDIA              0x01
+#define SUBLANG_BENGALI_BANGLADESH         0x02
+#define SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_LATIN 0x05
+#define SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_CYRILLIC 0x08
+#define SUBLANG_BRETON_FRANCE              0x01
+#define SUBLANG_BULGARIAN_BULGARIA         0x01
+#define SUBLANG_CATALAN_CATALAN            0x01
+#define SUBLANG_CHINESE_TRADITIONAL        0x01
+#define SUBLANG_CHINESE_SIMPLIFIED         0x02
+#define SUBLANG_CHINESE_HONGKONG           0x03
+#define SUBLANG_CHINESE_SINGAPORE          0x04
+#define SUBLANG_CHINESE_MACAU              0x05
+#define SUBLANG_CORSICAN_FRANCE            0x01
+#define SUBLANG_CROATIAN_CROATIA           0x01
+#define SUBLANG_CROATIAN_BOSNIA_HERZEGOVINA_LATIN 0x04
+#define SUBLANG_CZECH_CZECH_REPUBLIC       0x01
+#define SUBLANG_DANISH_DENMARK             0x01
+#define SUBLANG_DARI_AFGHANISTAN           0x01
+#define SUBLANG_DIVEHI_MALDIVES            0x01
+#define SUBLANG_DUTCH                      0x01
+#define SUBLANG_DUTCH_BELGIAN              0x02
+#define SUBLANG_ENGLISH_US                 0x01
+#define SUBLANG_ENGLISH_UK                 0x02
+#define SUBLANG_ENGLISH_AUS                0x03
+#define SUBLANG_ENGLISH_CAN                0x04
+#define SUBLANG_ENGLISH_NZ                 0x05
+#define SUBLANG_ENGLISH_EIRE               0x06
+#define SUBLANG_ENGLISH_SOUTH_AFRICA       0x07
+#define SUBLANG_ENGLISH_JAMAICA            0x08
+#define SUBLANG_ENGLISH_CARIBBEAN          0x09
+#define SUBLANG_ENGLISH_BELIZE             0x0a
+#define SUBLANG_ENGLISH_TRINIDAD           0x0b
+#define SUBLANG_ENGLISH_ZIMBABWE           0x0c
+#define SUBLANG_ENGLISH_PHILIPPINES        0x0d
+#define SUBLANG_ENGLISH_INDIA              0x10
+#define SUBLANG_ENGLISH_MALAYSIA           0x11
+#define SUBLANG_ENGLISH_SINGAPORE          0x12
+#define SUBLANG_ESTONIAN_ESTONIA           0x01
+#define SUBLANG_FAEROESE_FAROE_ISLANDS     0x01
+#define SUBLANG_FILIPINO_PHILIPPINES       0x01
+#define SUBLANG_FINNISH_FINLAND            0x01
+#define SUBLANG_FRENCH                     0x01
+#define SUBLANG_FRENCH_BELGIAN             0x02
+#define SUBLANG_FRENCH_CANADIAN            0x03
+#define SUBLANG_FRENCH_SWISS               0x04
+#define SUBLANG_FRENCH_LUXEMBOURG          0x05
+#define SUBLANG_FRENCH_MONACO              0x06
+#define SUBLANG_FRISIAN_NETHERLANDS        0x01
+#define SUBLANG_GALICIAN_GALICIAN          0x01
+#define SUBLANG_GEORGIAN_GEORGIA           0x01
+#define SUBLANG_GERMAN                     0x01
+#define SUBLANG_GERMAN_SWISS               0x02
+#define SUBLANG_GERMAN_AUSTRIAN            0x03
+#define SUBLANG_GERMAN_LUXEMBOURG          0x04
+#define SUBLANG_GERMAN_LIECHTENSTEIN       0x05
+#define SUBLANG_GREEK_GREECE               0x01
+#define SUBLANG_GREENLANDIC_GREENLAND      0x01
+#define SUBLANG_GUJARATI_INDIA             0x01
+#define SUBLANG_HAUSA_NIGERIA_LATIN        0x01
+#define SUBLANG_HEBREW_ISRAEL              0x01
+#define SUBLANG_HINDI_INDIA                0x01
+#define SUBLANG_HUNGARIAN_HUNGARY          0x01
+#define SUBLANG_ICELANDIC_ICELAND          0x01
+#define SUBLANG_IGBO_NIGERIA               0x01
+#define SUBLANG_INDONESIAN_INDONESIA       0x01
+#define SUBLANG_INUKTITUT_CANADA           0x01
+#define SUBLANG_INUKTITUT_CANADA_LATIN     0x02
+#define SUBLANG_IRISH_IRELAND              0x02
+#define SUBLANG_ITALIAN                    0x01
+#define SUBLANG_ITALIAN_SWISS              0x02
+#define SUBLANG_JAPANESE_JAPAN             0x01
+#define SUBLANG_KANNADA_INDIA              0x01
+#define SUBLANG_KASHMIRI_SASIA             0x02
+#define SUBLANG_KASHMIRI_INDIA             0x02
+#define SUBLANG_KAZAK_KAZAKHSTAN           0x01
+#define SUBLANG_KHMER_CAMBODIA             0x01
+#define SUBLANG_KICHE_GUATEMALA            0x01
+#define SUBLANG_KINYARWANDA_RWANDA         0X01
+#define SUBLANG_KONKANI_INDIA              0x01
+#define SUBLANG_KOREAN                     0x01
+#define SUBLANG_KYRGYZ_KYRGYZSTAN          0x01
+#define SUBLANG_LAO_LAO                    0x01
+#define SUBLANG_LATVIAN_LATVIA             0x01
+#define SUBLANG_LITHUANIAN_LITHUANIA       0x01
+#define SUBLANG_LOWER_SORBIAN_GERMANY      0x02
+#define SUBLANG_LUXEMBOURGISH_LUXEMBOURG   0x01
+#define SUBLANG_MACEDONIAN_MACEDONIA       0x01
+#define SUBLANG_MALAY_MALAYSIA             0x01
+#define SUBLANG_MALAY_BRUNEI_DARUSSALAM    0x02
+#define SUBLANG_MALAYALAM_INDIA            0x01
+#define SUBLANG_MALTESE_MALTA              0x01
+#define SUBLANG_MAORI_NEW_ZEALAND          0x01
+#define SUBLANG_MAPUDUNGUN_CHILE           0x01
+#define SUBLANG_MARATHI_INDIA              0x01
+#define SUBLANG_MOHAWK_MOHAWK              0x01
+#define SUBLANG_MONGOLIAN_CYRILLIC_MONGOLIA 0x01
+#define SUBLANG_MONGOLIAN_PRC              0x02
+#define SUBLANG_NEPALI_INDIA               0x02
+#define SUBLANG_NEPALI_NEPAL               0x01
+#define SUBLANG_NORWEGIAN_BOKMAL           0x01
+#define SUBLANG_NORWEGIAN_NYNORSK          0x02
+#define SUBLANG_OCCITAN_FRANCE             0x01
+#define SUBLANG_ORIYA_INDIA                0x01
+#define SUBLANG_PASHTO_AFGHANISTAN         0x01
+#define SUBLANG_PERSIAN_IRAN               0x01
+#define SUBLANG_POLISH_POLAND              0x01
+#define SUBLANG_PORTUGUESE                 0x02
+#define SUBLANG_PORTUGUESE_BRAZILIAN       0x01
+#define SUBLANG_PUNJABI_INDIA              0x01
+#define SUBLANG_QUECHUA_BOLIVIA            0x01
+#define SUBLANG_QUECHUA_ECUADOR            0x02
+#define SUBLANG_QUECHUA_PERU               0x03
+#define SUBLANG_ROMANIAN_ROMANIA           0x01
+#define SUBLANG_ROMANSH_SWITZERLAND        0x01
+#define SUBLANG_RUSSIAN_RUSSIA             0x01
+#define SUBLANG_SAMI_NORTHERN_NORWAY       0x01
+#define SUBLANG_SAMI_NORTHERN_SWEDEN       0x02
+#define SUBLANG_SAMI_NORTHERN_FINLAND      0x03
+#define SUBLANG_SAMI_LULE_NORWAY           0x04
+#define SUBLANG_SAMI_LULE_SWEDEN           0x05
+#define SUBLANG_SAMI_SOUTHERN_NORWAY       0x06
+#define SUBLANG_SAMI_SOUTHERN_SWEDEN       0x07
+#define SUBLANG_SAMI_SKOLT_FINLAND         0x08
+#define SUBLANG_SAMI_INARI_FINLAND         0x09
+#define SUBLANG_SANSKRIT_INDIA             0x01
+#define SUBLANG_SERBIAN_BOSNIA_HERZEGOVINA_LATIN 0x06
+#define SUBLANG_SERBIAN_BOSNIA_HERZEGOVINA_CYRILLIC 0x07
+#define SUBLANG_SERBIAN_CROATIA            0x01
+#define SUBLANG_SERBIAN_LATIN              0x02
+#define SUBLANG_SERBIAN_CYRILLIC           0x03
+#define SUBLANG_SINDHI_AFGHANISTAN         0x02
+#define SUBLANG_SINHALESE_SRI_LANKA        0x01
+#define SUBLANG_SLOVAK_SLOVAKIA            0x01
+#define SUBLANG_SLOVENIAN_SLOVENIA         0x01
+#define SUBLANG_SOTHO_NORTHERN_SOUTH_AFRICA 0x01
+#define SUBLANG_SPANISH                    0x01
+#define SUBLANG_SPANISH_MEXICAN            0x02
+#define SUBLANG_SPANISH_MODERN             0x03
+#define SUBLANG_SPANISH_GUATEMALA          0x04
+#define SUBLANG_SPANISH_COSTA_RICA         0x05
+#define SUBLANG_SPANISH_PANAMA             0x06
+#define SUBLANG_SPANISH_DOMINICAN_REPUBLIC 0x07
+#define SUBLANG_SPANISH_VENEZUELA          0x08
+#define SUBLANG_SPANISH_COLOMBIA           0x09
+#define SUBLANG_SPANISH_PERU               0x0a
+#define SUBLANG_SPANISH_ARGENTINA          0x0b
+#define SUBLANG_SPANISH_ECUADOR            0x0c
+#define SUBLANG_SPANISH_CHILE              0x0d
+#define SUBLANG_SPANISH_URUGUAY            0x0e
+#define SUBLANG_SPANISH_PARAGUAY           0x0f
+#define SUBLANG_SPANISH_BOLIVIA            0x10
+#define SUBLANG_SPANISH_EL_SALVADOR        0x11
+#define SUBLANG_SPANISH_HONDURAS           0x12
+#define SUBLANG_SPANISH_NICARAGUA          0x13
+#define SUBLANG_SPANISH_PUERTO_RICO        0x14
+#define SUBLANG_SPANISH_US                 0x15
+#define SUBLANG_SWAHILI_KENYA              0x01
+#define SUBLANG_SWEDISH                    0x01
+#define SUBLANG_SWEDISH_FINLAND            0x02
+#define SUBLANG_SYRIAC_SYRIA               0x01
+#define SUBLANG_TAJIK_TAJIKISTAN           0x01
+#define SUBLANG_TAMAZIGHT_ALGERIA_LATIN    0x02
+#define SUBLANG_TAMIL_INDIA                0x01
+#define SUBLANG_TATAR_RUSSIA               0x01
+#define SUBLANG_TELUGU_INDIA               0x01
+#define SUBLANG_THAI_THAILAND              0x01
+#define SUBLANG_TIBETAN_PRC                0x01
+#define SUBLANG_TIBETAN_BHUTAN             0x02
+#define SUBLANG_TIGRIGNA_ERITREA           0x02
+#define SUBLANG_TSWANA_SOUTH_AFRICA        0x01
+#define SUBLANG_TURKISH_TURKEY             0x01
+#define SUBLANG_TURKMEN_TURKMENISTAN       0x01
+#define SUBLANG_UIGHUR_PRC                 0x01
+#define SUBLANG_UKRAINIAN_UKRAINE          0x01
+#define SUBLANG_UPPER_SORBIAN_GERMANY      0x01
+#define SUBLANG_URDU_PAKISTAN              0x01
+#define SUBLANG_URDU_INDIA                 0x02
+#define SUBLANG_UZBEK_LATIN                0x01
+#define SUBLANG_UZBEK_CYRILLIC             0x02
+#define SUBLANG_VIETNAMESE_VIETNAM         0x01
+#define SUBLANG_WELSH_UNITED_KINGDOM       0x01
+#define SUBLANG_WOLOF_SENEGAL              0x01
+#define SUBLANG_XHOSA_SOUTH_AFRICA         0x01
+#define SUBLANG_YAKUT_RUSSIA               0x01
+#define SUBLANG_YI_PRC                     0x01
+#define SUBLANG_YORUBA_NIGERIA             0x01
+#define SUBLANG_ZULU_SOUTH_AFRICA          0x01
 
-/* FIXME: these are not in the Windows header */
-#define LANG_GAELIC          0x94
-#define LANG_MALTESE         0x3a
-#define LANG_RHAETO_ROMANCE  0x17
-#define LANG_SAAMI           0x3b
-#define LANG_SORBIAN         0x2e
-#define LANG_LOWER_SORBIAN   0x2e
-#define LANG_UPPER_SORBIAN   0x2e
-#define LANG_SUTU            0x30
-#define LANG_TSONGA          0x31
-#define LANG_TSWANA          0x32
-#define LANG_VENDA           0x33
-#define LANG_XHOSA           0x34
-#define LANG_ZULU            0x35
+/* These are documented by the MSDN but are missing from the Windows header */
+#define SUBLANG_ENGLISH_IRELAND            SUBLANG_ENGLISH_EIRE
+#define SUBLANG_HAUSA_NIGERIA              SUBLANG_HAUSA_NIGERIA_LATIN
+#define SUBLANG_LAO_LAO_PDR                SUBLANG_LAO_LAO
+#define SUBLANG_LITHUANIAN                 SUBLANG_LITHUANIAN_LITHUANIA
+#define SUBLANG_PORTUGUESE_PORTUGAL        SUBLANG_PORTUGUESE
+#define SUBLANG_SWAHILI                    SUBLANG_SWAHILI_KENYA
+#define SUBLANG_SWEDISH_SWEDEN             SUBLANG_SWEDISH
+#define SUBLANG_SYRIAC                     SUBLANG_SYRIAC_SYRIA
 
-/* Sublanguages */
-#define SUBLANG_AZERI_CYRILLIC      0x02
-#define SUBLANG_CHINESE_SINGAPORE   0x04
-#define SUBLANG_CHINESE_SIMPLIFIED  0x02
-#define SUBLANG_DEFAULT             0x01
-#define SUBLANG_NEUTRAL             0x00
-#define SUBLANG_NORWEGIAN_NYNORSK   0x02
-#define SUBLANG_SERBIAN_CYRILLIC    0x03
-#define SUBLANG_UZBEK_CYRILLIC      0x02
-#define SUBLANG_ENGLISH_US   0x01
+/* FIXME: these are not defined anywhere */
+#define SUBLANG_DUTCH_SURINAM              0x03
+#define SUBLANG_ROMANIAN                   SUBLANG_ROMANIAN_ROMANIA
+#define SUBLANG_ROMANIAN_MOLDAVIA          0x02
+#define SUBLANG_RUSSIAN                    SUBLANG_RUSSIAN_RUSSIA
+#define SUBLANG_RUSSIAN_MOLDAVIA           0x02
+#define SUBLANG_CROATIAN                   SUBLANG_CROATIAN_CROATIA
+#define SUBLANG_LITHUANIAN_CLASSIC         0x02
+#define SUBLANG_GAELIC                     0x01
+#define SUBLANG_GAELIC_SCOTTISH            0x02
+#define SUBLANG_GAELIC_MANX                0x03
 
 #endif