/** * FreeRDP: A Remote Desktop Protocol Client * XKB-based Keyboard Mapping to Microsoft Keyboard System * * Copyright 2009 Marc-Andre Moreau * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /* Detection of plausible keyboard layout id based on current locale (LANG) setting. */ /* * Refer to "Windows XP/Server 2003 - List of Locale IDs, Input Locale, and Language Collection": * http://www.microsoft.com/globaldev/reference/winxp/xp-lcid.mspx */ #ifndef __LOCALES_H #define __LOCALES_H #include #include #define AFRIKAANS 0x0436 #define ALBANIAN 0x041c #define ALSATIAN 0x0484 #define AMHARIC 0x045E #define ARABIC_SAUDI_ARABIA 0x0401 #define ARABIC_IRAQ 0x0801 #define ARABIC_EGYPT 0x0c01 #define ARABIC_LIBYA 0x1001 #define ARABIC_ALGERIA 0x1401 #define ARABIC_MOROCCO 0x1801 #define ARABIC_TUNISIA 0x1c01 #define ARABIC_OMAN 0x2001 #define ARABIC_YEMEN 0x2401 #define ARABIC_SYRIA 0x2801 #define ARABIC_JORDAN 0x2c01 #define ARABIC_LEBANON 0x3001 #define ARABIC_KUWAIT 0x3401 #define ARABIC_UAE 0x3801 #define ARABIC_BAHRAIN 0x3c01 #define ARABIC_QATAR 0x4001 #define ARMENIAN 0x042b #define ASSAMESE 0x044D #define AZERI_LATIN 0x042c #define AZERI_CYRILLIC 0x082c #define BASHKIR 0x046D #define BASQUE 0x042d #define BELARUSIAN 0x0423 #define BENGALI_INDIA 0x0445 #define BOSNIAN_LATIN 0x141A #define BRETON 0x047E #define BULGARIAN 0x0402 #define CATALAN 0x0403 #define CHINESE_TAIWAN 0x0404 #define CHINESE_PRC 0x0804 #define CHINESE_HONG_KONG 0x0c04 #define CHINESE_SINGAPORE 0x1004 #define CHINESE_MACAU 0x1404 #define CROATIAN 0x041a #define CROATIAN_BOSNIA_HERZEGOVINA 0x101A #define CZECH 0x0405 #define DANISH 0x0406 #define DARI 0x048C #define DIVEHI 0x0465 #define DUTCH_STANDARD 0x0413 #define DUTCH_BELGIAN 0x0813 #define ENGLISH_UNITED_STATES 0x0409 #define ENGLISH_UNITED_KINGDOM 0x0809 #define ENGLISH_AUSTRALIAN 0x0c09 #define ENGLISH_CANADIAN 0x1009 #define ENGLISH_NEW_ZEALAND 0x1409 #define ENGLISH_INDIA 0x4009 #define ENGLISH_IRELAND 0x1809 #define ENGLISH_MALAYSIA 0x4409 #define ENGLISH_SOUTH_AFRICA 0x1c09 #define ENGLISH_JAMAICA 0x2009 #define ENGLISH_CARIBBEAN 0x2409 #define ENGLISH_BELIZE 0x2809 #define ENGLISH_TRINIDAD 0x2c09 #define ENGLISH_ZIMBABWE 0x3009 #define ENGLISH_PHILIPPINES 0x3409 #define ENGLISH_SINGAPORE 0x4809 #define ESTONIAN 0x0425 #define FAEROESE 0x0438 #define FARSI 0x0429 #define FILIPINO 0x0464 #define FINNISH 0x040b #define FRENCH_STANDARD 0x040c #define FRENCH_BELGIAN 0x080c #define FRENCH_CANADIAN 0x0c0c #define FRENCH_SWISS 0x100c #define FRENCH_LUXEMBOURG 0x140c #define FRENCH_MONACO 0x180c #define FRISIAN 0x0462 #define GEORGIAN 0x0437 #define GALICIAN 0x0456 #define GERMAN_STANDARD 0x0407 #define GERMAN_SWISS 0x0807 #define GERMAN_AUSTRIAN 0x0c07 #define GERMAN_LUXEMBOURG 0x1007 #define GERMAN_LIECHTENSTEIN 0x1407 #define GREEK 0x0408 #define GREENLANDIC 0x046F #define GUJARATI 0x0447 #define HEBREW 0x040d #define HINDI 0x0439 #define HUNGARIAN 0x040e #define ICELANDIC 0x040f #define IGBO 0x0470 #define INDONESIAN 0x0421 #define IRISH 0x083C #define ITALIAN_STANDARD 0x0410 #define ITALIAN_SWISS 0x0810 #define JAPANESE 0x0411 #define KANNADA 0x044b #define KAZAKH 0x043f #define KHMER 0x0453 #define KICHE 0x0486 #define KINYARWANDA 0x0487 #define KONKANI 0x0457 #define KOREAN 0x0412 #define KYRGYZ 0x0440 #define LAO 0x0454 #define LATVIAN 0x0426 #define LITHUANIAN 0x0427 #define LOWER_SORBIAN 0x082E #define LUXEMBOURGISH 0x046E #define MACEDONIAN 0x042f #define MALAY_MALAYSIA 0x043e #define MALAY_BRUNEI_DARUSSALAM 0x083e #define MALAYALAM 0x044c #define MALTESE 0x043a #define MAPUDUNGUN 0x047A #define MAORI 0x0481 #define MARATHI 0x044e #define MOHAWK 0x047C #define MONGOLIAN 0x0450 #define NEPALI 0x0461 #define NORWEGIAN_BOKMAL 0x0414 #define NORWEGIAN_NYNORSK 0x0814 #define OCCITAN 0x0482 #define ORIYA 0x0448 #define PASHTO 0x0463 #define POLISH 0x0415 #define PORTUGUESE_BRAZILIAN 0x0416 #define PORTUGUESE_STANDARD 0x0816 #define PUNJABI 0x0446 #define QUECHUA_BOLIVIA 0x046b #define QUECHUA_ECUADOR 0x086b #define QUECHUA_PERU 0x0c6b #define ROMANIAN 0x0418 #define ROMANSH 0x0417 #define RUSSIAN 0x0419 #define SAMI_INARI 0x243b #define SAMI_LULE_NORWAY 0x103b #define SAMI_LULE_SWEDEN 0x143b #define SAMI_NORTHERN_FINLAND 0x0c3b #define SAMI_NORTHERN_NORWAY 0x043b #define SAMI_NORTHERN_SWEDEN 0x083b #define SAMI_SKOLT 0x203b #define SAMI_SOUTHERN_NORWAY 0x183b #define SAMI_SOUTHERN_SWEDEN 0x1c3b #define SANSKRIT 0x044f #define SERBIAN_LATIN 0x081a #define SERBIAN_LATIN_BOSNIA_HERZEGOVINA 0x181a #define SERBIAN_CYRILLIC 0x0c1a #define SERBIAN_CYRILLIC_BOSNIA_HERZEGOVINA 0x1c1a #define SESOTHO_SA_LEBOA 0x046C #define SINHALA 0x045B #define SLOVAK 0x041b #define SLOVENIAN 0x0424 #define SPANISH_TRADITIONAL_SORT 0x040a #define SPANISH_MEXICAN 0x080a #define SPANISH_MODERN_SORT 0x0c0a #define SPANISH_GUATEMALA 0x100a #define SPANISH_COSTA_RICA 0x140a #define SPANISH_PANAMA 0x180a #define SPANISH_DOMINICAN_REPUBLIC 0x1c0a #define SPANISH_VENEZUELA 0x200a #define SPANISH_COLOMBIA 0x240a #define SPANISH_PERU 0x280a #define SPANISH_ARGENTINA 0x2c0a #define SPANISH_ECUADOR 0x300a #define SPANISH_CHILE 0x340a #define SPANISH_UNITED_STATES 0x540A #define SPANISH_URUGUAY 0x380a #define SPANISH_PARAGUAY 0x3c0a #define SPANISH_BOLIVIA 0x400a #define SPANISH_EL_SALVADOR 0x440a #define SPANISH_HONDURAS 0x480a #define SPANISH_NICARAGUA 0x4c0a #define SPANISH_PUERTO_RICO 0x500a #define SWAHILI 0x0441 #define SWEDISH 0x041d #define SWEDISH_FINLAND 0x081d #define SYRIAC 0x045a #define TAMIL 0x0449 #define TATAR 0x0444 #define TELUGU 0x044a #define THAI 0x041e #define TIBETAN_BHUTAN 0x0851 #define TIBETAN_PRC 0x0451 #define TSWANA 0x0432 #define UKRAINIAN 0x0422 #define TURKISH 0x041f #define TURKMEN 0x0442 #define UIGHUR 0x0480 #define UPPER_SORBIAN 0x042E #define URDU 0x0420 #define URDU_INDIA 0x0820 #define UZBEK_LATIN 0x0443 #define UZBEK_CYRILLIC 0x0843 #define VIETNAMESE 0x042a #define WELSH 0x0452 #define WOLOF 0x0488 #define XHOSA 0x0434 #define YAKUT 0x0485 #define YI 0x0478 #define YORUBA 0x046A #define ZULU 0x0435 /* Time zones, taken from Windows Server 2008 (GMT -12:00) International Date Line West (GMT -11:00) Midway Island, Samoa (GMT -10:00) Hawaii (GMT -09:00) Alaska (GMT -08:00) Pacific Time (US & Canada) (GMT -08:00) Tijuana, Baja California (GMT -07:00) Arizona (GMT -07:00) Chihuahua, La Paz, Mazatlan (GMT -07:00) Mountain Time (US & Canada) (GMT -06:00) Central America (GMT -06:00) Central Time (US & Canada) (GMT -06:00) Guadalajara, Mexico City, Monterrey (GMT -06:00) Saskatchewan (GMT -05:00) Bogota, Lima, Quito, Rio Branco (GMT -05:00) Eastern Time (US & Canada) (GMT -05:00) Indiana (East) (GMT -04:30) Caracas (GMT -04:00) Atlantic Time (Canada) (GMT -04:00) La Paz (GMT -04:00) Manaus (GMT -04:00) Santiago (GMT -03:30) Newfoundland (GMT -03:00) Brasilia (GMT -03:00) Buenos Aires (GMT -03:00) Georgetown (GMT -03:00) Greenland (GMT -03:00) Montevideo (GMT -02:00) Mid-Atlantic (GMT -01:00) Azores (GMT -01:00) Cape Verde Is. (GMT +00:00) Casablanca (GMT +00:00) Greenwich Mean Time: Dublin, Edinburgh, Lisbon, London (GMT +00:00) Monrovia, Reykjavik (GMT +01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna (GMT +01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague (GMT +01:00) Brussels, Copenhagen, Madrid, Paris (GMT +01:00) Sarajevo, Skopje, Warsaw, Zagreb (GMT +01:00) West Central Africa (GMT +02:00) Amman (GMT +02:00) Athens, Bucharest, Istanbul (GMT +02:00) Beirut (GMT +02:00) Cairo (GMT +02:00) Harare, Pretoria (GMT +02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius (GMT +02:00) Jerusalem (GMT +02:00) Minsk (GMT +02:00) Windhoek (GMT +03:00) Baghdad (GMT +03:00) Kuwait, Riyadh (GMT +03:00) Moscow, St. Petersburg, Volgograd (GMT +03:00) Nairobi (GMT +03:00) Tbilisi (GMT +03:30) Tehran (GMT +04:00) Abu Dhabi, Muscat (GMT +04:00) Baku (GMT +04:00) Port Louis (GMT +04:00) Yerevan (GMT +04:30) Kabul (GMT +05:00) Ekaterinburg (GMT +05:00) Islamabad, Karachi (GMT +05:00) Tashkent (GMT +05:30) Chennai, Kolkata, Mumbai, New Delhi (GMT +05:30) Sri Jayawardenepura (GMT +05:45) Kathmandu (GMT +06:00) Almaty, Novosibirsk (GMT +06:00) Astana, Dhaka (GMT +06:30) Yangon (Rangoon) (GMT +07:00) Bangkok, Hanoi, Jakarta (GMT +07:00) Krasnoyarsk (GMT +08:00) Beijing, Chongqing, Hong Kong, Urumqi (GMT +08:00) Irkutsk, Ulaan Bataar (GMT +08:00) Kuala Lumpur, Singapore (GMT +08:00) Perth (GMT +08:00) Taipei (GMT +09:00) Osaka, Sapporo, Tokyo (GMT +09:00) Seoul (GMT +09:00) Yakutsk (GMT +09:30) Adelaide (GMT +09:30) Darwin (GMT +10:00) Brisbane (GMT +10:00) Canberra, Melbourne, Sydney (GMT +10:00) Guam, Port Moresby (GMT +10:00) Hobart, Vladivostok (GMT +11:00) Magadan, Solomon Is., New Caledonia (GMT +12:00) Auckland, Wellington (GMT +12:00) Fiji, Kamchatka, Marshall Is. (GMT +13:00) Nuku'alofa */ FREERDP_API uint32 detect_keyboard_layout_from_locale(); #endif /* __LOCALES_H */