1/* 2 * Copyright 1995 Martin von Loewis 3 * Copyright 1998 David Lee Lambert 4 * Copyright 2002 Alexandre Julliard for CodeWeavers 5 * 6 * This library is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU Lesser General Public 8 * License as published by the Free Software Foundation; either 9 * version 2.1 of the License, or (at your option) any later version. 10 * 11 * This library is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 * Lesser General Public License for more details. 15 * 16 * You should have received a copy of the GNU Lesser General Public 17 * License along with this library; if not, write to the Free Software 18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 19 */ 20 21#include "windef.h" 22#include "winbase.h" 23#include "winnls.h" 24 25#define LGRPID_RES_BASE 0x2000 26 27/* add languages in numerical order of main language (last two digits) 28 * it is much easier to find the missing holes that way */ 29 30#include "nls/ara.nls" /* 0x0401 LANG_ARABIC, SUBLANG_ARABIC_SAUDI_ARABIA */ 31#include "nls/ari.nls" /* 0x0801 LANG_ARABIC, SUBLANG_ARABIC_IRAQ */ 32#include "nls/are.nls" /* 0x0c01 LANG_ARABIC, SUBLANG_ARABIC_EGYPT */ 33#include "nls/arl.nls" /* 0x1001 LANG_ARABIC, SUBLANG_ARABIC_LIBYA */ 34#include "nls/arg.nls" /* 0x1401 LANG_ARABIC, SUBLANG_ARABIC_ALGERIA */ 35#include "nls/arm.nls" /* 0x1801 LANG_ARABIC, SUBLANG_ARABIC_MOROCCO */ 36#include "nls/art.nls" /* 0x1c01 LANG_ARABIC, SUBLANG_ARABIC_TUNISIA */ 37#include "nls/aro.nls" /* 0x2001 LANG_ARABIC, SUBLANG_ARABIC_OMAN */ 38#include "nls/ary.nls" /* 0x2401 LANG_ARABIC, SUBLANG_ARABIC_YEMEN */ 39#include "nls/ars.nls" /* 0x2801 LANG_ARABIC, SUBLANG_ARABIC_SYRIA */ 40#include "nls/arj.nls" /* 0x2c01 LANG_ARABIC, SUBLANG_ARABIC_JORDAN */ 41#include "nls/arb.nls" /* 0x3001 LANG_ARABIC, SUBLANG_ARABIC_LEBANON */ 42#include "nls/ark.nls" /* 0x3401 LANG_ARABIC, SUBLANG_ARABIC_KUWAIT */ 43#include "nls/aru.nls" /* 0x3801 LANG_ARABIC, SUBLANG_ARABIC_UAE */ 44#include "nls/arh.nls" /* 0x3c01 LANG_ARABIC, SUBLANG_ARABIC_BAHRAIN */ 45#include "nls/arq.nls" /* 0x4001 LANG_ARABIC, SUBLANG_ARABIC_QATAR */ 46 47#include "nls/bgr.nls" /* 0x0402 LANG_BULGARIAN, SUBLANG_DEFAULT */ 48 49#include "nls/cat.nls" /* 0x0403 LANG_CATALAN, SUBLANG_DEFAULT */ 50 51#include "nls/cht.nls" /* 0x0404 LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL */ 52#include "nls/chs.nls" /* 0x0804 LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED */ 53#include "nls/zhh.nls" /* 0x0c04 LANG_CHINESE, SUBLANG_CHINESE_HONGKONG */ 54#include "nls/zhi.nls" /* 0x1004 LANG_CHINESE, SUBLANG_CHINESE_SINGAPORE */ 55#include "nls/zhm.nls" /* 0x1404 LANG_CHINESE, SUBLANG_CHINESE_MACAU */ 56 57#include "nls/csy.nls" /* 0x0405 LANG_CZECH, SUBLANG_DEFAULT */ 58 59#include "nls/dan.nls" /* 0x0406 LANG_DANISH, SUBLANG_DEFAULT */ 60 61#include "nls/deu.nls" /* 0x0407 LANG_GERMAN, SUBLANG_GERMAN */ 62#include "nls/des.nls" /* 0x0807 LANG_GERMAN, SUBLANG_GERMAN_SWISS */ 63#include "nls/dea.nls" /* 0x0c07 LANG_GERMAN, SUBLANG_GERMAN_AUSTRIAN */ 64#include "nls/del.nls" /* 0x1007 LANG_GERMAN, SUBLANG_GERMAN_LUXEMBOURG */ 65#include "nls/dec.nls" /* 0x1407 LANG_GERMAN, SUBLANG_GERMAN_LIECHTENSTEIN */ 66 67#include "nls/ell.nls" /* 0x0408 LANG_GREEK, SUBLANG_DEFAULT */ 68 69#include "nls/enu.nls" /* 0x0409 LANG_ENGLISH, SUBLANG_ENGLISH_US */ 70#include "nls/eng.nls" /* 0x0809 LANG_ENGLISH, SUBLANG_ENGLISH_UK */ 71#include "nls/ena.nls" /* 0x0c09 LANG_ENGLISH, SUBLANG_ENGLISH_AUS */ 72#include "nls/enc.nls" /* 0x1009 LANG_ENGLISH, SUBLANG_ENGLISH_CAN */ 73#include "nls/enz.nls" /* 0x1409 LANG_ENGLISH, SUBLANG_ENGLISH_NZ */ 74#include "nls/eni.nls" /* 0x1809 LANG_ENGLISH, SUBLANG_ENGLISH_EIRE */ 75#include "nls/ens.nls" /* 0x1c09 LANG_ENGLISH, SUBLANG_ENGLISH_SOUTH_AFRICA */ 76#include "nls/enj.nls" /* 0x2009 LANG_ENGLISH, SUBLANG_ENGLISH_JAMAICA */ 77#include "nls/enb.nls" /* 0x2409 LANG_ENGLISH, SUBLANG_ENGLISH_CARIBBEAN */ 78#include "nls/enl.nls" /* 0x2809 LANG_ENGLISH, SUBLANG_ENGLISH_BELIZE */ 79#include "nls/ent.nls" /* 0x2c09 LANG_ENGLISH, SUBLANG_ENGLISH_TRINIDAD */ 80#include "nls/enw.nls" /* 0x3009 LANG_ENGLISH, SUBLANG_ENGLISH_ZIMBABWE */ 81#include "nls/enp.nls" /* 0x3409 LANG_ENGLISH, SUBLANG_ENGLISH_PHILIPPINES */ 82 83#include "nls/esp.nls" /* 0x040a LANG_SPANISH, SUBLANG_SPANISH */ 84#include "nls/esm.nls" /* 0x080a LANG_SPANISH, SUBLANG_SPANISH_MEXICAN */ 85#include "nls/esn.nls" /* 0x0c0a LANG_SPANISH, SUBLANG_SPANISH_MODERN */ 86#include "nls/esg.nls" /* 0x100a LANG_SPANISH, SUBLANG_SPANISH_GUATEMALA */ 87#include "nls/esc.nls" /* 0x140a LANG_SPANISH, SUBLANG_SPANISH_COSTA_RICA */ 88#include "nls/esa.nls" /* 0x180a LANG_SPANISH, SUBLANG_SPANISH_PANAMA */ 89#include "nls/esd.nls" /* 0x1c0a LANG_SPANISH, SUBLANG_SPANISH_DOMINICAN_REPUBLIC */ 90#include "nls/esv.nls" /* 0x200a LANG_SPANISH, SUBLANG_SPANISH_VENEZUELA */ 91#include "nls/eso.nls" /* 0x240a LANG_SPANISH, SUBLANG_SPANISH_COLOMBIA */ 92#include "nls/esr.nls" /* 0x280a LANG_SPANISH, SUBLANG_SPANISH_PERU */ 93#include "nls/ess.nls" /* 0x2c0a LANG_SPANISH, SUBLANG_SPANISH_ARGENTINA */ 94#include "nls/esf.nls" /* 0x300a LANG_SPANISH, SUBLANG_SPANISH_ECUADOR */ 95#include "nls/esl.nls" /* 0x340a LANG_SPANISH, SUBLANG_SPANISH_CHILE */ 96#include "nls/esy.nls" /* 0x380a LANG_SPANISH, SUBLANG_SPANISH_URUGUAY */ 97#include "nls/esz.nls" /* 0x3c0a LANG_SPANISH, SUBLANG_SPANISH_PARAGUAY */ 98#include "nls/esb.nls" /* 0x400a LANG_SPANISH, SUBLANG_SPANISH_BOLIVIA */ 99#include "nls/ese.nls" /* 0x440a LANG_SPANISH, SUBLANG_SPANISH_EL_SALVADOR */ 100#include "nls/esh.nls" /* 0x480a LANG_SPANISH, SUBLANG_SPANISH_HONDURAS */ 101#include "nls/esi.nls" /* 0x4c0a LANG_SPANISH, SUBLANG_SPANISH_NICARAGUA */ 102#include "nls/esu.nls" /* 0x500a LANG_SPANISH, SUBLANG_SPANISH_PUERTO_RICO */ 103 104#include "nls/fin.nls" /* 0x040b LANG_FINNISH, SUBLANG_DEFAULT */ 105 106#include "nls/fra.nls" /* 0x040c LANG_FRENCH, SUBLANG_FRENCH */ 107#include "nls/frb.nls" /* 0x080c LANG_FRENCH, SUBLANG_FRENCH_BELGIAN */ 108#include "nls/frc.nls" /* 0x0c0c LANG_FRENCH, SUBLANG_FRENCH_CANADIAN */ 109#include "nls/frs.nls" /* 0x100c LANG_FRENCH, SUBLANG_FRENCH_SWISS */ 110#include "nls/frl.nls" /* 0x140c LANG_FRENCH, SUBLANG_FRENCH_LUXEMBOURG */ 111#include "nls/frm.nls" /* 0x180c LANG_FRENCH, SUBLANG_FRENCH_MONACO */ 112 113#include "nls/heb.nls" /* 0x040d LANG_HEBREW, SUBLANG_DEFAULT */ 114 115#include "nls/hun.nls" /* 0x040e LANG_HUNGARIAN, SUBLANG_DEFAULT */ 116 117#include "nls/isl.nls" /* 0x040f LANG_ICELANDIC, SUBLANG_DEFAULT */ 118 119#include "nls/ita.nls" /* 0x0410 LANG_ITALIAN, SUBLANG_ITALIAN */ 120#include "nls/its.nls" /* 0x0810 LANG_ITALIAN, SUBLANG_ITALIAN_SWISS */ 121 122#include "nls/jpn.nls" /* 0x0411 LANG_JAPANESE, SUBLANG_DEFAULT */ 123 124#include "nls/kor.nls" /* 0x0412 LANG_KOREAN, SUBLANG_KOREAN */ 125 126#include "nls/nld.nls" /* 0x0413 LANG_DUTCH, SUBLANG_DUTCH */ 127#include "nls/nlb.nls" /* 0x0813 LANG_DUTCH, SUBLANG_DUTCH_BELGIAN */ 128 129#include "nls/nor.nls" /* 0x0414 LANG_NORWEGIAN, SUBLANG_NORWEGIAN_BOKMAL */ 130#include "nls/non.nls" /* 0x0814 LANG_NORWEGIAN, SUBLANG_NORWEGIAN_NYNORSK */ 131 132#include "nls/plk.nls" /* 0x0415 LANG_POLISH, SUBLANG_DEFAULT */ 133 134#include "nls/ptb.nls" /* 0x0416 LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN */ 135#include "nls/ptg.nls" /* 0x0816 LANG_PORTUGUESE, SUBLANG_PORTUGUESE */ 136 137#include "nls/rmc.nls" /* 0x0417 LANG_ROMANSH, SUBLANG_ROMANSH_SWITZERLAND */ 138 139#include "nls/rom.nls" /* 0x0418 LANG_ROMANIAN, SUBLANG_DEFAULT */ 140 141#include "nls/rus.nls" /* 0x0419 LANG_RUSSIAN, SUBLANG_DEFAULT */ 142 143#include "nls/hrv.nls" /* 0x041a LANG_SERBIAN, SUBLANG_DEFAULT */ 144#include "nls/srl.nls" /* 0x081a LANG_SERBIAN, SUBLANG_SERBIAN_LATIN */ 145#include "nls/srb.nls" /* 0x0c1a LANG_SERBIAN, SUBLANG_SERBIAN_CYRILLIC */ 146#include "nls/srm.nls" /* 0x241a LANG_SERBIAN, SUBLANG_SERBIAN_SERBIA_LATIN */ 147 148#include "nls/sky.nls" /* 0x041b LANG_SLOVAK, SUBLANG_DEFAULT */ 149 150#include "nls/sqi.nls" /* 0x041c LANG_ALBANIAN, SUBLANG_DEFAULT */ 151 152#include "nls/sve.nls" /* 0x041d LANG_SWEDISH, SUBLANG_SWEDISH */ 153#include "nls/svf.nls" /* 0x081d LANG_SWEDISH, SUBLANG_SWEDISH_FINLAND */ 154 155#include "nls/tha.nls" /* 0x041e LANG_THAI, SUBLANG_DEFAULT */ 156 157#include "nls/trk.nls" /* 0x041f LANG_TURKISH, SUBLANG_DEFAULT */ 158 159#include "nls/urd.nls" /* 0x0420 LANG_URDU, SUBLANG_URDU_PAKISTAN */ 160 161#include "nls/ind.nls" /* 0x0421 LANG_INDONESIAN, SUBLANG_DEFAULT */ 162 163#include "nls/ukr.nls" /* 0x0422 LANG_UKRAINIAN, SUBLANG_DEFAULT */ 164 165#include "nls/bel.nls" /* 0x0423 LANG_BELARUSIAN, SUBLANG_DEFAULT */ 166 167#include "nls/slv.nls" /* 0x0424 LANG_SLOVENIAN, SUBLANG_DEFAULT */ 168 169#include "nls/eti.nls" /* 0x0425 LANG_ESTONIAN, SUBLANG_DEFAULT */ 170 171#include "nls/lvi.nls" /* 0x0426 LANG_LATVIAN, SUBLANG_DEFAULT */ 172 173#include "nls/lth.nls" /* 0x0427 LANG_LITHUANIAN, SUBLANG_LITHUANIAN */ 174 175#include "nls/far.nls" /* 0x0429 LANG_FARSI, SUBLANG_DEFAULT */ 176 177#include "nls/vit.nls" /* 0x042a LANG_VIETNAMESE, SUBLANG_DEFAULT */ 178 179#include "nls/hye.nls" /* 0x042b LANG_ARMENIAN, SUBLANG_DEFAULT */ 180 181#include "nls/azl.nls" /* 0x042c LANG_AZERI, SUBLANG_AZERI_LATIN */ 182#include "nls/aze.nls" /* 0x082c LANG_AZERI, SUBLANG_AZERI_CYRILLIC */ 183 184#include "nls/euq.nls" /* 0x042d LANG_BASQUE, SUBLANG_DEFAULT */ 185 186#include "nls/mki.nls" /* 0x042f LANG_MACEDONIAN, SUBLANG_DEFAULT */ 187 188#include "nls/afk.nls" /* 0x0436 LANG_AFRIKAANS, SUBLANG_DEFAULT */ 189 190#include "nls/kat.nls" /* 0x0437 LANG_GEORGIAN, SUBLANG_DEFAULT */ 191 192#include "nls/fos.nls" /* 0x0438 LANG_FAEROESE, SUBLANG_DEFAULT */ 193 194#include "nls/hin.nls" /* 0x0439 LANG_HINDI, SUBLANG_DEFAULT */ 195 196#include "nls/gae.nls" /* 0x083c LANG_IRISH, SUBLANG_IRISH_IRELAND */ 197 198#include "nls/msl.nls" /* 0x043e LANG_MALAY, SUBLANG_MALAY_MALAYSIA */ 199#include "nls/msb.nls" /* 0x083e LANG_MALAY, SUBLANG_MALAY_BRUNEI_DARUSSALAM */ 200 201#include "nls/kkz.nls" /* 0x043f LANG_KAZAK, SUBLANG_DEFAULT */ 202 203#include "nls/kyr.nls" /* 0x0440 LANG_KYRGYZ, SUBLANG_DEFAULT */ 204 205#include "nls/swk.nls" /* 0x0441 LANG_SWAHILI, SUBLANG_DEFAULT */ 206 207#include "nls/uzl.nls" /* 0x0443 LANG_UZBEK, SUBLANG_UZBEK_LATIN */ 208#include "nls/uzb.nls" /* 0x0843 LANG_UZBEK, SUBLANG_UZBEK_CYRILLIC */ 209 210#include "nls/ttt.nls" /* 0x0444 LANG_TATAR, SUBLANG_DEFAULT */ 211 212#include "nls/ben.nls" /* 0x0445 LANG_BANGLA, SUBLANG_BANGLA_INDIA */ 213 214#include "nls/pan.nls" /* 0x0446 LANG_PUNJABI, SUBLANG_DEFAULT */ 215 216#include "nls/guj.nls" /* 0x0447 LANG_GUJARATI, SUBLANG_DEFAULT */ 217 218#include "nls/tam.nls" /* 0x0449 LANG_TAMIL, SUBLANG_DEFAULT */ 219 220#include "nls/tel.nls" /* 0x044a LANG_TELUGU, SUBLANG_DEFAULT */ 221 222#include "nls/kan.nls" /* 0x044b LANG_KANNADA, SUBLANG_DEFAULT */ 223 224#include "nls/mar.nls" /* 0x044e LANG_MARATHI, SUBLANG_DEFAULT */ 225 226#include "nls/san.nls" /* 0x044f LANG_SANSKRIT, SUBLANG_DEFAULT */ 227 228#include "nls/mon.nls" /* 0x0450 LANG_MONGOLIAN, SUBLANG_DEFAULT */ 229 230#include "nls/cym.nls" /* 0x0452 LANG_WELSH, SUBLANG_DEFAULT */ 231 232#include "nls/glc.nls" /* 0x0456 LANG_GALICIAN, SUBLANG_DEFAULT */ 233 234#include "nls/knk.nls" /* 0x0457 LANG_KONKANI, SUBLANG_DEFAULT */ 235 236#include "nls/syr.nls" /* 0x045a LANG_SYRIAC, SUBLANG_DEFAULT */ 237 238#include "nls/sin.nls" /* 0x045b LANG_SINHALESE, SUBLANG_SINHALESE_SRI_LANKA */ 239 240#include "nls/nep.nls" /* 0x0461 LANG_NEPALI, SUBLANG_NEPALI_NEPAL */ 241 242#include "nls/div.nls" /* 0x0465 LANG_DIVEHI, SUBLANG_DEFAULT */ 243 244#include "nls/brf.nls" /* 0x047e LANG_BRETON, SUBLANG_DEFAULT */ 245 246#include "nls/gdh.nls" /* 0x0491 LANG_SCOTTISH_GAELIC, SUBLANG_SCOTTISH_GAELIC */ 247 248/* Wine extensions */ 249 250#include "nls/nls.nls" /* 0x0c13 LANG_DUTCH, SUBLANG_DUTCH_SURINAM */ 251 252#include "nls/eox.nls" /* 0x048f LANG_ESPERANTO, SUBLANG_DEFAULT */ 253 254#include "nls/wal.nls" /* 0x0490 LANG_WALON, SUBLANG_DEFAULT */ 255 256#include "nls/cor.nls" /* 0x0492 LANG_CORNISH, SUBLANG_DEFAULT */ 257 258#include "nls/gdv.nls" /* 0x0494 LANG_MANX_GAELIC, SUBLANG_MANX_GAELIC */ 259 260#include "nls/ast.nls" /* 0x04a5 LANG_ASTURIAN, SUBLANG_DEFAULT */ 261 262#include "nls/ivl.nls" /* 0x047f LANG_INVARIANT, SUBLANG_NEUTRAL */ 263