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 Street, 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#pragma code_page(1256) 31#include "nls/ara.nls" /* 0x0401 LANG_ARABIC, SUBLANG_ARABIC_SAUDI_ARABIA */ 32#pragma code_page(1256) 33#include "nls/ari.nls" /* 0x0801 LANG_ARABIC, SUBLANG_ARABIC_IRAQ */ 34#pragma code_page(1256) 35#include "nls/are.nls" /* 0x0c01 LANG_ARABIC, SUBLANG_ARABIC_EGYPT */ 36#pragma code_page(1256) 37#include "nls/arl.nls" /* 0x1001 LANG_ARABIC, SUBLANG_ARABIC_LIBYA */ 38#pragma code_page(1256) 39#include "nls/arg.nls" /* 0x1401 LANG_ARABIC, SUBLANG_ARABIC_ALGERIA */ 40#pragma code_page(1256) 41#include "nls/arm.nls" /* 0x1801 LANG_ARABIC, SUBLANG_ARABIC_MOROCCO */ 42#pragma code_page(1256) 43#include "nls/art.nls" /* 0x1c01 LANG_ARABIC, SUBLANG_ARABIC_TUNISIA */ 44#pragma code_page(1256) 45#include "nls/aro.nls" /* 0x2001 LANG_ARABIC, SUBLANG_ARABIC_OMAN */ 46#pragma code_page(1256) 47#include "nls/ary.nls" /* 0x2401 LANG_ARABIC, SUBLANG_ARABIC_YEMEN */ 48#pragma code_page(1256) 49#include "nls/ars.nls" /* 0x2801 LANG_ARABIC, SUBLANG_ARABIC_SYRIA */ 50#pragma code_page(1256) 51#include "nls/arj.nls" /* 0x2c01 LANG_ARABIC, SUBLANG_ARABIC_JORDAN */ 52#pragma code_page(1256) 53#include "nls/arb.nls" /* 0x3001 LANG_ARABIC, SUBLANG_ARABIC_LEBANON */ 54#pragma code_page(1256) 55#include "nls/ark.nls" /* 0x3401 LANG_ARABIC, SUBLANG_ARABIC_KUWAIT */ 56#pragma code_page(1256) 57#include "nls/aru.nls" /* 0x3801 LANG_ARABIC, SUBLANG_ARABIC_UAE */ 58#pragma code_page(1256) 59#include "nls/arh.nls" /* 0x3c01 LANG_ARABIC, SUBLANG_ARABIC_BAHRAIN */ 60#pragma code_page(1256) 61#include "nls/arq.nls" /* 0x4001 LANG_ARABIC, SUBLANG_ARABIC_QATAR */ 62 63#pragma code_page(1251) 64#include "nls/bgr.nls" /* 0x0402 LANG_BULGARIAN, SUBLANG_DEFAULT */ 65 66#pragma code_page(1252) 67#include "nls/cat.nls" /* 0x0403 LANG_CATALAN, SUBLANG_DEFAULT */ 68 69#pragma code_page(950) 70#include "nls/cht.nls" /* 0x0404 LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL */ 71#pragma code_page(936) 72#include "nls/chs.nls" /* 0x0804 LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED */ 73#pragma code_page(950) 74#include "nls/zhh.nls" /* 0x0c04 LANG_CHINESE, SUBLANG_CHINESE_HONGKONG */ 75#pragma code_page(936) 76#include "nls/zhi.nls" /* 0x1004 LANG_CHINESE, SUBLANG_CHINESE_SINGAPORE */ 77#pragma code_page(950) 78#include "nls/zhm.nls" /* 0x1404 LANG_CHINESE, SUBLANG_CHINESE_MACAU */ 79 80#pragma code_page(1250) 81#include "nls/csy.nls" /* 0x0405 LANG_CZECH, SUBLANG_DEFAULT */ 82 83#pragma code_page(1252) 84#include "nls/dan.nls" /* 0x0406 LANG_DANISH, SUBLANG_DEFAULT */ 85 86#pragma code_page(1252) 87#include "nls/deu.nls" /* 0x0407 LANG_GERMAN, SUBLANG_GERMAN */ 88#pragma code_page(1252) 89#include "nls/des.nls" /* 0x0807 LANG_GERMAN, SUBLANG_GERMAN_SWISS */ 90#pragma code_page(1252) 91#include "nls/dea.nls" /* 0x0c07 LANG_GERMAN, SUBLANG_GERMAN_AUSTRIAN */ 92#pragma code_page(1252) 93#include "nls/del.nls" /* 0x1007 LANG_GERMAN, SUBLANG_GERMAN_LUXEMBOURG */ 94#pragma code_page(1252) 95#include "nls/dec.nls" /* 0x1407 LANG_GERMAN, SUBLANG_GERMAN_LIECHTENSTEIN */ 96 97#pragma code_page(1253) 98#include "nls/ell.nls" /* 0x0408 LANG_GREEK, SUBLANG_DEFAULT */ 99 100#pragma code_page(1252) 101#include "nls/enu.nls" /* 0x0409 LANG_ENGLISH, SUBLANG_ENGLISH_US */ 102#pragma code_page(1252) 103#include "nls/eng.nls" /* 0x0809 LANG_ENGLISH, SUBLANG_ENGLISH_UK */ 104#pragma code_page(1252) 105#include "nls/ena.nls" /* 0x0c09 LANG_ENGLISH, SUBLANG_ENGLISH_AUS */ 106#pragma code_page(1252) 107#include "nls/enc.nls" /* 0x1009 LANG_ENGLISH, SUBLANG_ENGLISH_CAN */ 108#pragma code_page(1252) 109#include "nls/enz.nls" /* 0x1409 LANG_ENGLISH, SUBLANG_ENGLISH_NZ */ 110#pragma code_page(1252) 111#include "nls/eni.nls" /* 0x1809 LANG_ENGLISH, SUBLANG_ENGLISH_EIRE */ 112#pragma code_page(1252) 113#include "nls/ens.nls" /* 0x1c09 LANG_ENGLISH, SUBLANG_ENGLISH_SOUTH_AFRICA */ 114#pragma code_page(1252) 115#include "nls/enj.nls" /* 0x2009 LANG_ENGLISH, SUBLANG_ENGLISH_JAMAICA */ 116#pragma code_page(1252) 117#include "nls/enb.nls" /* 0x2409 LANG_ENGLISH, SUBLANG_ENGLISH_CARIBBEAN */ 118#pragma code_page(1252) 119#include "nls/enl.nls" /* 0x2809 LANG_ENGLISH, SUBLANG_ENGLISH_BELIZE */ 120#pragma code_page(1252) 121#include "nls/ent.nls" /* 0x2c09 LANG_ENGLISH, SUBLANG_ENGLISH_TRINIDAD */ 122#pragma code_page(1252) 123#include "nls/enw.nls" /* 0x3009 LANG_ENGLISH, SUBLANG_ENGLISH_ZIMBABWE */ 124#pragma code_page(1252) 125#include "nls/enp.nls" /* 0x3409 LANG_ENGLISH, SUBLANG_ENGLISH_PHILIPPINES */ 126 127#pragma code_page(1252) 128#include "nls/eoa.nls" /* 0x048F LANG_ESPERANTO, SUBLANG_ESPERANTO */ 129 130#pragma code_page(1252) 131#include "nls/esp.nls" /* 0x040a LANG_SPANISH, SUBLANG_SPANISH */ 132#pragma code_page(1252) 133#include "nls/esm.nls" /* 0x080a LANG_SPANISH, SUBLANG_SPANISH_MEXICAN */ 134#pragma code_page(1252) 135#include "nls/esn.nls" /* 0x0c0a LANG_SPANISH, SUBLANG_SPANISH_MODERN */ 136#pragma code_page(1252) 137#include "nls/esg.nls" /* 0x100a LANG_SPANISH, SUBLANG_SPANISH_GUATEMALA */ 138#pragma code_page(1252) 139#include "nls/esc.nls" /* 0x140a LANG_SPANISH, SUBLANG_SPANISH_COSTA_RICA */ 140#pragma code_page(1252) 141#include "nls/esa.nls" /* 0x180a LANG_SPANISH, SUBLANG_SPANISH_PANAMA */ 142#pragma code_page(1252) 143#include "nls/esd.nls" /* 0x1c0a LANG_SPANISH, SUBLANG_SPANISH_DOMINICAN_REPUBLIC */ 144#pragma code_page(1252) 145#include "nls/esv.nls" /* 0x200a LANG_SPANISH, SUBLANG_SPANISH_VENEZUELA */ 146#pragma code_page(1252) 147#include "nls/eso.nls" /* 0x240a LANG_SPANISH, SUBLANG_SPANISH_COLOMBIA */ 148#pragma code_page(1252) 149#include "nls/esr.nls" /* 0x280a LANG_SPANISH, SUBLANG_SPANISH_PERU */ 150#pragma code_page(1252) 151#include "nls/ess.nls" /* 0x2c0a LANG_SPANISH, SUBLANG_SPANISH_ARGENTINA */ 152#pragma code_page(1252) 153#include "nls/esf.nls" /* 0x300a LANG_SPANISH, SUBLANG_SPANISH_ECUADOR */ 154#pragma code_page(1252) 155#include "nls/esl.nls" /* 0x340a LANG_SPANISH, SUBLANG_SPANISH_CHILE */ 156#pragma code_page(1252) 157#include "nls/esy.nls" /* 0x380a LANG_SPANISH, SUBLANG_SPANISH_URUGUAY */ 158#pragma code_page(1252) 159#include "nls/esz.nls" /* 0x3c0a LANG_SPANISH, SUBLANG_SPANISH_PARAGUAY */ 160#pragma code_page(1252) 161#include "nls/esb.nls" /* 0x400a LANG_SPANISH, SUBLANG_SPANISH_BOLIVIA */ 162#pragma code_page(1252) 163#include "nls/ese.nls" /* 0x440a LANG_SPANISH, SUBLANG_SPANISH_EL_SALVADOR */ 164#pragma code_page(1252) 165#include "nls/esh.nls" /* 0x480a LANG_SPANISH, SUBLANG_SPANISH_HONDURAS */ 166#pragma code_page(1252) 167#include "nls/esi.nls" /* 0x4c0a LANG_SPANISH, SUBLANG_SPANISH_NICARAGUA */ 168#pragma code_page(1252) 169#include "nls/esu.nls" /* 0x500a LANG_SPANISH, SUBLANG_SPANISH_PUERTO_RICO */ 170 171#pragma code_page(1252) 172#include "nls/fin.nls" /* 0x040b LANG_FINNISH, SUBLANG_DEFAULT */ 173 174#pragma code_page(1252) 175#include "nls/fra.nls" /* 0x040c LANG_FRENCH, SUBLANG_FRENCH */ 176#pragma code_page(1252) 177#include "nls/frb.nls" /* 0x080c LANG_FRENCH, SUBLANG_FRENCH_BELGIAN */ 178#pragma code_page(1252) 179#include "nls/frc.nls" /* 0x0c0c LANG_FRENCH, SUBLANG_FRENCH_CANADIAN */ 180#pragma code_page(1252) 181#include "nls/frs.nls" /* 0x100c LANG_FRENCH, SUBLANG_FRENCH_SWISS */ 182#pragma code_page(1252) 183#include "nls/frl.nls" /* 0x140c LANG_FRENCH, SUBLANG_FRENCH_LUXEMBOURG */ 184#pragma code_page(1252) 185#include "nls/frm.nls" /* 0x180c LANG_FRENCH, SUBLANG_FRENCH_MONACO */ 186 187#pragma code_page(1255) 188#include "nls/heb.nls" /* 0x040d LANG_HEBREW, SUBLANG_DEFAULT */ 189 190#pragma code_page(1250) 191#include "nls/hun.nls" /* 0x040e LANG_HUNGARIAN, SUBLANG_DEFAULT */ 192 193#pragma code_page(1252) 194#include "nls/isl.nls" /* 0x040f LANG_ICELANDIC, SUBLANG_DEFAULT */ 195 196#pragma code_page(1252) 197#include "nls/ita.nls" /* 0x0410 LANG_ITALIAN, SUBLANG_ITALIAN */ 198#pragma code_page(1252) 199#include "nls/its.nls" /* 0x0810 LANG_ITALIAN, SUBLANG_ITALIAN_SWISS */ 200 201#pragma code_page(932) 202#include "nls/jpn.nls" /* 0x0411 LANG_JAPANESE, SUBLANG_DEFAULT */ 203 204#pragma code_page(949) 205#include "nls/kor.nls" /* 0x0412 LANG_KOREAN, SUBLANG_KOREAN */ 206 207#pragma code_page(1252) 208#include "nls/nld.nls" /* 0x0413 LANG_DUTCH, SUBLANG_DUTCH */ 209#pragma code_page(1252) 210#include "nls/nlb.nls" /* 0x0813 LANG_DUTCH, SUBLANG_DUTCH_BELGIAN */ 211 212#pragma code_page(1252) 213#include "nls/nor.nls" /* 0x0414 LANG_NORWEGIAN, SUBLANG_NORWEGIAN_BOKMAL */ 214#pragma code_page(1252) 215#include "nls/non.nls" /* 0x0814 LANG_NORWEGIAN, SUBLANG_NORWEGIAN_NYNORSK */ 216 217#pragma code_page(1250) 218#include "nls/plk.nls" /* 0x0415 LANG_POLISH, SUBLANG_DEFAULT */ 219 220#pragma code_page(1252) 221#include "nls/ptb.nls" /* 0x0416 LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN */ 222#pragma code_page(1252) 223#include "nls/ptg.nls" /* 0x0816 LANG_PORTUGUESE, SUBLANG_PORTUGUESE */ 224 225//#pragma code_page(1252) 226//#include "nls/rmc.nls" /* 0x0417 LANG_ROMANSH, SUBLANG_ROMANSH_SWITZERLAND */ 227 228#pragma code_page(65001) 229#include "nls/rom.nls" /* 0x0418 LANG_ROMANIAN, SUBLANG_DEFAULT */ 230 231#pragma code_page(65001) 232#include "nls/rus.nls" /* 0x0419 LANG_RUSSIAN, SUBLANG_DEFAULT */ 233 234#pragma code_page(1250) 235#include "nls/hrv.nls" /* 0x041a LANG_SERBIAN, SUBLANG_DEFAULT */ 236#pragma code_page(1250) 237#include "nls/srl.nls" /* 0x081a LANG_SERBIAN, SUBLANG_SERBIAN_LATIN */ 238#pragma code_page(1251) 239#include "nls/srb.nls" /* 0x0c1a LANG_SERBIAN, SUBLANG_SERBIAN_CYRILLIC */ 240 241#pragma code_page(1250) 242#include "nls/sky.nls" /* 0x041b LANG_SLOVAK, SUBLANG_DEFAULT */ 243 244#pragma code_page(1250) 245#include "nls/sqi.nls" /* 0x041c LANG_ALBANIAN, SUBLANG_DEFAULT */ 246 247#pragma code_page(1252) 248#include "nls/sve.nls" /* 0x041d LANG_SWEDISH, SUBLANG_SWEDISH */ 249#pragma code_page(1252) 250#include "nls/svf.nls" /* 0x081d LANG_SWEDISH, SUBLANG_SWEDISH_FINLAND */ 251 252#pragma code_page(874) 253#include "nls/tha.nls" /* 0x041e LANG_THAI, SUBLANG_DEFAULT */ 254 255#pragma code_page(1254) 256#include "nls/trk.nls" /* 0x041f LANG_TURKISH, SUBLANG_DEFAULT */ 257 258#pragma code_page(1256) 259#include "nls/urd.nls" /* 0x0420 LANG_URDU, SUBLANG_URDU_PAKISTAN */ 260 261#pragma code_page(1252) 262#include "nls/ind.nls" /* 0x0421 LANG_INDONESIAN, SUBLANG_DEFAULT */ 263 264#pragma code_page(1251) 265#include "nls/ukr.nls" /* 0x0422 LANG_UKRAINIAN, SUBLANG_DEFAULT */ 266 267#pragma code_page(1251) 268#include "nls/bel.nls" /* 0x0423 LANG_BELARUSIAN, SUBLANG_DEFAULT */ 269 270#pragma code_page(1250) 271#include "nls/slv.nls" /* 0x0424 LANG_SLOVENIAN, SUBLANG_DEFAULT */ 272 273#pragma code_page(1257) 274#include "nls/eti.nls" /* 0x0425 LANG_ESTONIAN, SUBLANG_DEFAULT */ 275 276#pragma code_page(1257) 277#include "nls/lvi.nls" /* 0x0426 LANG_LATVIAN, SUBLANG_DEFAULT */ 278 279#pragma code_page(65001) 280#include "nls/lth.nls" /* 0x0427 LANG_LITHUANIAN, SUBLANG_LITHUANIAN */ 281 282#pragma code_page(1256) 283#include "nls/far.nls" /* 0x0429 LANG_FARSI, SUBLANG_DEFAULT */ 284 285#pragma code_page(1258) 286#include "nls/vit.nls" /* 0x042a LANG_VIETNAMESE, SUBLANG_DEFAULT */ 287 288#pragma code_page(65001) 289#include "nls/hye.nls" /* 0x042b LANG_ARMENIAN, SUBLANG_DEFAULT */ 290 291#pragma code_page(1254) 292#include "nls/azl.nls" /* 0x042c LANG_AZERI, SUBLANG_AZERI_LATIN */ 293#pragma code_page(1251) 294#include "nls/aze.nls" /* 0x082c LANG_AZERI, SUBLANG_AZERI_CYRILLIC */ 295 296#pragma code_page(1252) 297#include "nls/euq.nls" /* 0x042d LANG_BASQUE, SUBLANG_DEFAULT */ 298 299#pragma code_page(1251) 300#include "nls/mki.nls" /* 0x042f LANG_MACEDONIAN, SUBLANG_DEFAULT */ 301 302#pragma code_page(1252) 303#include "nls/afk.nls" /* 0x0436 LANG_AFRIKAANS, SUBLANG_DEFAULT */ 304 305#pragma code_page(65001) 306#include "nls/kat.nls" /* 0x0437 LANG_GEORGIAN, SUBLANG_DEFAULT */ 307 308#pragma code_page(1252) 309#include "nls/fos.nls" /* 0x0438 LANG_FAEROESE, SUBLANG_DEFAULT */ 310 311#pragma code_page(65001) 312#include "nls/hin.nls" /* 0x0439 LANG_HINDI, SUBLANG_DEFAULT */ 313 314#pragma code_page(1252) 315#include "nls/msl.nls" /* 0x043e LANG_MALAY, SUBLANG_MALAY_MALAYSIA */ 316#pragma code_page(1252) 317#include "nls/msb.nls" /* 0x083e LANG_MALAY, SUBLANG_MALAY_BRUNEI_DARUSSALAM */ 318 319#pragma code_page(1251) 320#include "nls/kkz.nls" /* 0x043f LANG_KAZAK, SUBLANG_DEFAULT */ 321 322#pragma code_page(1251) 323#include "nls/kyr.nls" /* 0x0440 LANG_KYRGYZ, SUBLANG_DEFAULT */ 324 325#pragma code_page(1252) 326#include "nls/swk.nls" /* 0x0441 LANG_SWAHILI, SUBLANG_DEFAULT */ 327 328#pragma code_page(1254) 329#include "nls/uzl.nls" /* 0x0443 LANG_UZBEK, SUBLANG_UZBEK_LATIN */ 330#pragma code_page(1251) 331#include "nls/uzb.nls" /* 0x0843 LANG_UZBEK, SUBLANG_UZBEK_CYRILLIC */ 332 333#pragma code_page(1251) 334#include "nls/ttt.nls" /* 0x0444 LANG_TATAR, SUBLANG_DEFAULT */ 335 336#pragma code_page(65001) 337#include "nls/pan.nls" /* 0x0446 LANG_PUNJABI, SUBLANG_DEFAULT */ 338 339#pragma code_page(65001) 340#include "nls/guj.nls" /* 0x0447 LANG_GUJARATI, SUBLANG_DEFAULT */ 341 342#pragma code_page(65001) 343#include "nls/tam.nls" /* 0x0449 LANG_TAMIL, SUBLANG_DEFAULT */ 344 345#pragma code_page(65001) 346#include "nls/tel.nls" /* 0x044a LANG_TELUGU, SUBLANG_DEFAULT */ 347 348#pragma code_page(65001) 349#include "nls/kan.nls" /* 0x044b LANG_KANNADA, SUBLANG_DEFAULT */ 350 351#pragma code_page(65001) 352#include "nls/mar.nls" /* 0x044e LANG_MARATHI, SUBLANG_DEFAULT */ 353 354#pragma code_page(65001) 355#include "nls/san.nls" /* 0x044f LANG_SANSKRIT, SUBLANG_DEFAULT */ 356 357#pragma code_page(1251) 358#include "nls/mon.nls" /* 0x0450 LANG_MONGOLIAN, SUBLANG_DEFAULT */ 359 360//#pragma code_page(28604) 361//#include "nls/cym.nls" /* 0x0452 LANG_WELSH, SUBLANG_DEFAULT */ 362 363#pragma code_page(1252) 364#include "nls/glc.nls" /* 0x0456 LANG_GALICIAN, SUBLANG_DEFAULT */ 365 366#pragma code_page(65001) 367#include "nls/knk.nls" /* 0x0457 LANG_KONKANI, SUBLANG_DEFAULT */ 368 369#pragma code_page(65001) 370#include "nls/syr.nls" /* 0x045a LANG_SYRIAC, SUBLANG_DEFAULT */ 371 372#pragma code_page(65001) 373#include "nls/div.nls" /* 0x0465 LANG_DIVEHI, SUBLANG_DEFAULT */ 374 375//#pragma code_page(1252) 376//#include "nls/brf.nls" /* 0x0493 LANG_BRETON, SUBLANG_DEFAULT */ 377 378 379/* Wine extensions */ 380 381//#include "nls/nls.nls" /* 0x0c13 LANG_DUTCH, SUBLANG_DUTCH_SURINAM */ 382 383//#include "nls/eox.nls" /* 0x048f LANG_ESPERANTO, SUBLANG_DEFAULT */ 384 385//#include "nls/wal.nls" /* 0x0490 LANG_WALON, SUBLANG_DEFAULT */ 386 387//#include "nls/cor.nls" /* 0x0492 LANG_CORNISH, SUBLANG_DEFAULT */ 388 389//#include "nls/gae.nls" /* 0x0494 LANG_GAELIC, SUBLANG_GAELIC */ 390//#include "nls/gdh.nls" /* 0x0894 LANG_GAELIC, SUBLANG_GAELIC_SCOTTISH */ 391//#include "nls/gdv.nls" /* 0x0c94 LANG_GAELIC, SUBLANG_GAELIC_MANX */ 392