LOCALIZATION AND MULTILINGUAL
Sections:
Setup
General Operation
CSC Database Driven HTML Content
Customer MIMarketingInfo Records
Subcomponentpage Localization
Shopping Cart and Site Multilingual Strings
List of ISO 3166 country codes
List of ISO 639 language codes
Decimal Language Codes
This information is only applicable to sites that are using the SendSafe E-Business framework.
The automated settings for the browser are picked up in SendSafe.Locationization.inc.asp and set in SendSafe.StateControl.inc.asp.
Language selection is made by URL parameter (i.e. ?LANG=ES) or by browser language preference detection. The language selection is save in a cookie defined by svnSelLang = "_SelLang". Detectio, selection, and customer preferences are all managed inside SendSafe.statecontro.inc.asp.
The reserved CSC Record type=type 15 Key=CUSTOMERMMI will load language specific FFP information for customer questionnaires. See CSC type 15 records for more information.
The Customer FFP data records are used to setup complete unique questionnaires in any number of languages.
SHOPPING CART AND SITE PAGE MULTILINGUAL STRINGS
Every shopipng cart page contains a number of text strings (other than product descriptions and the like). This system provides a cpu optimized way to handle language specific replacement strings for all text strings. One of the main uses is for display of language specific entry field labels. These functions are also used on other site pages to manage strings of content.
On a multilingual site this CSC record is loaded and tokenized for every page on the site. Not all pages will use this tokenized array. Not all pages will have or need a matching CSC record.
The following is a list of shopping cart and account related pages which are supported by this functionality:
This tool works by performing a single DB query on the CSC table for each webpage. The query loads a set of strings for the page into an array from which they are retrieved. This improves effeciency by miniumizing DB queries. A function call is used to select a string from the array.
In the CSC DB record, each string is delimited by a tilda "~" at the end of each string; therefore no text string can contain a tilda.
General Notes:
Architecture / Initialization:
buildCartMLStrArray( recordLocator )
This function will create an array of field (labels) for this page. This array is then passed in as a parameter to each call to renderCartField(). The language code, and hence the CSC record retrieved, is handled internally to this function. The parameter recordLocator can actually be anything string. The automatically created array for each page uses the filename of the HTML page being rendered.For all pages in a multilingual website the function buildCartMLStrArray( recordLocator ) is invoked with recordLocator = thisFileName (i.e. the filename for the webpage).
General Use Strings:
The system supports the display of strings which are unique for each page.
getCartMLStr( englishStr, index, array )
This function will return a specific string for the currently selected language. If the array has a UBOUND() dimension of zero then the EnglishStr (parameter) is used for each label; otherwise the zero normalized index (array indice) will be used to select a string.Example: getCartMLStr( Application("AgreementStatementAddendum2"), 2, ics_MLStrArray )getCartMLHyperStr( englishStr, index, hyperlinkStr, mslArray )
This function works the same as getCartMLStr() but also handles a hyperstring. Any open <a> tag will be replaced with the tag defined by hyperlinkStr.Example: getCartMLHyperStr( "Multi-Address Mode: click to <a>split up</a> any new entires into separate line items.", 21, "<a href=""#"" onClick=""return(multiAddrClicked())"">", ics_MLStrArray )
Site Specific Common Strings:
This system has support for defining a block of strings which are common to all pages but unique for each site.
Applications include: common naviation, left columns, right columns, or other items which are common to all pages on the
site and are better handled by this rendering tool than the page subcomponent content rendering engine.
To use this functionality, you will need a CSC (type 15) record for every affected page; which will typically be every page in the site. An example of adding one line to the addBasket.inc.asp CSC record is show below (the added line is shown in red). The line "Bottom of basket message.~" is the last line of the system reserved strings and "Edit~" is the first of the general use strings.
No items are in your basket. Go shopping!~
Bottom of basket message.~
This is an added line~
Edit~
Recipient~
Qty~
Setup and notes:
getCartSiteCommonCartMLStr( englishStr, index, array )
This function will return a site specific common string for the currently selected language. If the array has a UBOUND() dimension of zero then the EnglishStr (parameter) is used for each label; otherwise the zero normalized index (array indice) will be used to select a string.Example: getCartSiteCommonCartMLStr( Application("AgreementStatementAddendum2"), 2, ics_MLStrArray )getCartSiteCommonCartMLHyperStr( englishStr, index, hyperlinkStr, mslArray )
This function works the same as getCartMLStr() but also handles a hyperstring. Any open <a> tag will be replaced with the tag defined by hyperlinkStr.Example: getCartSiteCommonCartMLHyperStr( "Multi-Address Mode: click to <a>split up</a> any new entires into separate line items.", 21, "<a href=""#"" onClick=""return(multiAddrClicked())"">", ics_MLStrArray )
System Level Reserved Strings:
For all SendSafe storefront pages, the first three of the reservered string are for the login message at the top of the page (0,1,2).
The remaining strings define labels, page titles, buttons, strings, and etc. which are used on the cart pages; see the table (below) for
a complete list of System Level Reserved Strings.
rawGetCartMLStr( englishStr, index, array )
This function will return a system level reserved string for the currently selected language. If the array has a UBOUND() dimension of zero then the EnglishStr (parameter) is used for each label; otherwise the zero normalized index (array indice) will be used to select a string.Example: rawGetCartMLStr( Application("CustomBottomOfBasketMessage"), 51, ics_MLStrArray )
The login message strings MUST include two special keywords (variables) which are replaced and/or handled by the display function. These two strings are:
[CUSTNAME] ==> which is replaced with the actual customer's nameThese three reserved login message strings are used by by the function: writeOutYALIPrompt( trailerStr ) to assemble and display these login status messages using the function rawGetCartMLStr( englishStr, index, array ).
<a> ==> which is converted into the appropriate hyperlink.
Note: These system level reserved strings are hidden from access by getCartMLStr() which uses a zero normalized index to access the first string after the reserved strings.
Handling Strings used by JavaScript Pop-ups:
The system includes special tools which are used to handle strings which are used by JavaScript.
Table of system level reserved string and buttons:
| Index | Description / Default configuration | System Level Reserved string |
| 0 | Top of page login message | You are logged in as [CUSTNAME]. If you are not [CUSTNAME], then please click here. |
| 1 | Top of page login message | You are currently logged in. Click here to logout. |
| 2 | Top of page login message | You are not currently logged in. Please click here to login. |
Cart & Customer Account Buttons | ||
| 3 | Application("BBDeleteBasket") | width=123 height=28 SRC="images/delBasket.graysteal.gif |
| 4 | Application("BBApplyCoupon") | width=123 height=28 SRC="images/ApplyCoupon.graysteal.gif |
| 5 | Application("BBClearForm") | width=123 height=28 SRC="images/ClearForm.graysteal.gif |
| 6 | Application("BBDeleteItem") | width=123 height=28 SRC="images/DeleteItem.graysteal.gif |
| 7 | Application("BBPressComplete") | width=202 height=28 SRC="images/PressToCompleteOrder.graysteal.gif |
| 8 | Application("BBSubmitOrder") | width=202 height=28 SRC="images/PressToCompleteOrder.graysteal.gif |
| 9 | Application("BBReturnPrior") | width=202 height=28 SRC="images/RetPrior.graysteal.gif |
| 10 | Application("BBQuickBuy") | width=168 height=28 SRC="images/QuickBuy.graysteal.gif |
| 11 | Application("BBSave") | width=123 height=28 SRC="images/SaveChanges.graysteal.gif |
| 12 | Application("BBLogin") | width=60 height=24 SRC="images/login.graysteal.gif |
| 13 | Application("BBLogout") | width=60 height=24 SRC="images/logout.graysteal.gif |
| 14 | Application("BBcreateAccount") | width=119 height=24 SRC="images/createaccount.graysteal.gif |
| 15 | Application("BBPasswordRecovery") | width=119 height=24 SRC="images/passwordRecovery.graysteal.gif |
| 16 | Application("MAButtonLogout") | width=90 height=16 SRC="images/MyAccount.Logout.gif |
| 17 | Application("MAButtonReorder") | width=90 height=16 SRC="images/MyAccount.Recordering.gif |
| 18 | Application("MAButtonOrderStat") | width=90 height=16 SRC="images/MyAccount.OrderStatus.gif |
| 19 | Application("MAButtonWishList") | width=90 height=16 SRC="images/MyAccount.Wishlist.gif |
| 20 | Application("MAButtonListingManager") | width=90 height=16 SRC="images/MyAccount.MyListings.gif |
Page Title | ||
| 21 | Page title (see above) | <table width="100%" border=0 cellpadding=2 cellspacing=0><tr style="vertical-align: top"><td width="100%" align="left" valign="top" class="headerPane"><span class="mainHeader">Basket</span></td></tr></table> |
QuickBuy | ||
| 22 | QuickBuy Basket: line#1 | <b>To use Instant Checkout</b>, select one of the credit cards that you have previously used with its corresponding shipping information; then press the <b>"Instant Checkout"</b> button.~ |
| 23 | QuickBuy Shipping (single address mode): line#1 | <b>To use Instant Checkout</b>, select one of the credit cards that you have previously used with its corresponding shipping information; then press the <b>"Instant Checkout"</b> button.~ |
| 24 | QuickBuy Shipping (mutli-address mode): line#1 for credit card checkout | <b>To use Instant Checkout</b>, select one of the credit cards that you have previously used; then press the <b>"Instant Checkout"</b> button.~ |
| 25 | QuickBuy Billing: line#1 for credit card checkout | <b>To use Instant Checkout</b>, select one of the credit cards that you have previously used; then press the <b>"Instant Checkout"</b> button.~ |
| 26 | QuickBuy Basket: Bottom help line | <b>To enter new shipping or billing information, press the "Continue Checkout" button.</b>~ |
| 27 | QuickBuy Shipping (single address mode): Bottom help line | <b>To enter new shipping information, fill out form below and press ""Continue Checkout"" button.</b>~ |
| 28 | QuickBuy Shipping (mutli-address mode): Bottom help line | <b>To enter new Billing information press ""Continue Checkout"" button.</b>~ |
| 29 | QuickBuy Billing: Bottom help line | <b>To enter new billing information, fill out form below and press "Continue Checkout or Process Order" button.</b>~ |
| 30 | QuickBuy Basket: Popup submission warning line#1 | You are completing this purchase with shipping and billing information from a previous purchase.~ |
| 31 | QuickBuy Shipping (single address mode): Popup submission warning line#1 | You are completing this purchase with shipping and billing information from a previous purchase (NOT USING INFORMATION YOU MAY HAVE CHANGED IN THE FORM).~ |
| 32 | QuickBuy Shipping (mutli-address mode): Popup submission warning line#1 | You are completing this purchase with the shipping changes you may have made. Billing information will be the credit card you have selected combined with the current billing address on-file.~ |
| 33 | QuickBuy Basket: Popup submission warning line#1 | You are completing this purchase with any shipping changes you may have made on the previously displayed Shipping Information page. Billing information will be the credit card you have selected combined with the current billing address on-file. Any changes you made on this billing address page will not be used. The current billing address that will be used was displayed when this page initially loaded and is the currently displayed address if you have not made any changes to it during this session.~ |
| 34 | QuickBuy Basket: Popup Help string | Any entered e-coupon number will be applied to this order.\n\nTo use different information, press the [ CANCEL ] button below; then use Continue Checkout button and fill out forms with changes.~ |
| 35 | QuickBuy Shipping: Popup Help string | To keep all the information you have entered, continue on to the next checkout step and press the [ Instant Purchase ] button on that page.\n\nAny entered e-coupon number will be applied to this order.\n\nTo use different information, press the [ CANCEL ] button below; then fill out forms with changes and use Continue Checkout button. |
| 36 | QuickBuy Billing: Popup Help string | Any entered e-coupon number will be applied to this order.\n\nTo use different information, press the [ CANCEL ] button below; then fill out form with changes and use Continue Checkout or Process Order button. |
| 37 | QuickBuy label | Order will be shipped to:~ |
| 38 | QuickBuy label | Zip:~ |
| 39 | QuickBuy label | E-Coupon applied to Instant Checkout:~ |
| 40 | QuickBuy label | Prior Order:~ |
| 41 | QuickBuy label | Order Date:~ |
| 42 | QuickBuy label | Order Number:~ |
| 43 | QuickBuy label | Credit Card:~ |
| 44 | QuickBuy label | Ship to Name:~ |
| 45 | QuickBuy label | Ship to zip:~ |
| 46 | QuickBuy submission help | Pressing the [ OK ] will instantly complete your order now.~ |
| 47 | QuickBuy error #1 | Sorry... Instant purchasing does not have enough information on file to complete this order using Instant Purchasing.\nPlease use the order standard forms to complete this order.~ |
| 48 | QuickBuy error #2 | The selected credit card has expired.\n\nPlease select a different card or complete this order by entering a new credit card on the Billing Information page.~ |
| 49 | QuickBuy coupon dropdown | Select E-Coupon from list or enter by hand~ |
| 50 | Nothing in cart message | No items are in your basket. <a>Go shopping</a>!~ |
| 51 | Application("CustomBottomOfBasketMessage") | Custom line of text which appears at the bottom the basket.~ |
Examples of the ContextSensitiveContent.Content DB Records:
Here are examples of the ContextSensitiveContent.Content DB field for a CSC Record for the cart.
In these examples the first 50 strings are reserved strings for buttons, page titles, and quickbuy (see above).
In the first Store.addBasket.asp example the first non-reserved string ("Edit") would be embedded using the following code: getCartMLStr( "Edit", 0, ics_MLStrArray )
To setup multi-lingual support, at a minimum you will need to copy these records into your DB and change the strings to match the language you want to display.
Store.addBasket.asp page:
Store.reviewBasket.asp page:
Store.editbasketline.asp page:
Store.agreement.asp page:
Store.checkout.asp page:
Store.myaccount.asp page:
Store.customerlogin.asp page:
Store.lostpswd.asp page:
Store.ereceipt.asp page:
Store.PEReceipt.asp page:
CSC DATABASE DRIVEN HTML CONTENT
The CSC database driven HTML Content selects different records for different lanuage codes. The file CLDRCSC.asp loads this content and displays. This content MAY ALSO be displayed as HTML snippets inside a larger page. Every CSC record (type 13) must contain a language code when in multilingual mode.
SUBCOMPONENT PAGE LOCALIZATION
The subcomponent content rendering engine supports multiple languages and automatically preforms localization (some customization required and by default multilingual support is disable). The site is organized into collections of subcomponent files where each set is located in its own language specific subdirectory (i.e. /en/ for English or /de/ for German or /es/ for Spanish. The rendering engine will automatcially select the correct subdirectory based on the language preference of the browser.
ISO 3166 Country Codes
Below is a list of the international standard ISO 3166 Country Codes. You will find these codes embedded in the
URL strings which have been captured except for the USA (which often has no country code appended).
All these codes are applied by the search engine. The exact format will vary from one search engine to the next.
AFGHANISTAN AF ÅLAND ISLANDS AX ALBANIA AL ALGERIA DZ AMERICAN SAMOA AS ANDORRA AD ANGOLA AO ANGUILLA AI ANTARCTICA AQ ANTIGUA AND BARBUDA AG ARGENTINA AR ARMENIA AM ARUBA AW AUSTRALIA AU AUSTRIA AT AZERBAIJAN AZ BAHAMAS BS BAHRAIN BH BANGLADESH BD BARBADOS BB BELARUS BY BELGIUM BE BELIZE BZ BENIN BJ BERMUDA BM BHUTAN BT BOLIVIA BO BOSNIA AND HERZEGOVINA BA BOTSWANA BW BOUVET ISLAND BV BRAZIL BR BRITISH INDIAN OCEAN TERRITORY IO BRUNEI DARUSSALAM BN BULGARIA BG BURKINA FASO BF BURUNDI BI CAMBODIA KH CAMEROON CM CANADA CA CAPE VERDE CV CAYMAN ISLANDS KY CENTRAL AFRICAN REPUBLIC CF CHAD TD CHILE CL CHINA CN CHRISTMAS ISLAND CX COCOS (KEELING) ISLANDS CC COLOMBIA CO COMOROS KM CONGO CG CONGO, THE DEMOCRATIC REPUBLIC OF THE CD COOK ISLANDS CK COSTA RICA CR CÔTE D'IVOIRE CI CROATIA HR CUBA CU CYPRUS CY CZECH REPUBLIC CZ DENMARK DK DJIBOUTI DJ DOMINICA DM DOMINICAN REPUBLIC DO ECUADOR EC EGYPT EG EL SALVADOR SV EQUATORIAL GUINEA GQ ERITREA ER ESTONIA EE ETHIOPIA ET FALKLAND ISLANDS (MALVINAS) FK FAROE ISLANDS FO FIJI FJ FINLAND FI FRANCE FR FRENCH GUIANA GF FRENCH POLYNESIA PF FRENCH SOUTHERN TERRITORIES TF GABON GA GAMBIA GM GEORGIA GE GERMANY DE GHANA GH GIBRALTAR GI GREECE GR GREENLAND GL GRENADA GD GUADELOUPE GP GUAM GU GUATEMALA GT GUINEA GN GUINEA-BISSAU GW GUYANA GY HAITI HT HEARD ISLAND AND MCDONALD ISLANDS HM HOLY SEE (VATICAN CITY STATE) VA HONDURAS HN HONG KONG HK HUNGARY HU ICELAND IS INDIA IN INDONESIA ID IRAN, ISLAMIC REPUBLIC OF IR IRAQ IQ IRELAND IE ISRAEL IL ITALY IT JAMAICA JM JAPAN JP JORDAN JO KAZAKHSTAN KZ KENYA KE KIRIBATI KI KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF KP KOREA, REPUBLIC OF KR KUWAIT KW KYRGYZSTAN KG LAO PEOPLE'S DEMOCRATIC REPUBLIC LA LATVIA LV LEBANON LB LESOTHO LS LIBERIA LR LIBYAN ARAB JAMAHIRIYA LY LIECHTENSTEIN LI LITHUANIA LT LUXEMBOURG LU MACAO MO MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF MK MADAGASCAR MG MALAWI MW MALAYSIA MY MALDIVES MV MALI ML MALTA MT MARSHALL ISLANDS MH MARTINIQUE MQ MAURITANIA MR MAURITIUS MU MAYOTTE YT MEXICO MX MICRONESIA, FEDERATED STATES OF FM MOLDOVA, REPUBLIC OF MD MONACO MC MONGOLIA MN MONTSERRAT MS MOROCCO MA MOZAMBIQUE MZ MYANMAR MM NAMIBIA NA NAURU NR NEPAL NP NETHERLANDS NL NETHERLANDS ANTILLES AN NEW CALEDONIA NC NEW ZEALAND NZ NICARAGUA NI NIGER NE NIGERIA NG NIUE NU NORFOLK ISLAND NF NORTHERN MARIANA ISLANDS MP NORWAY NO OMAN OM PAKISTAN PK PALAU PW PALESTINIAN TERRITORY, OCCUPIED PS PANAMA PA PAPUA NEW GUINEA PG PARAGUAY PY PERU PE PHILIPPINES PH PITCAIRN PN POLAND PL PORTUGAL PT PUERTO RICO PR QATAR QA RÉUNION RE ROMANIA RO RUSSIAN FEDERATION RU RWANDA RW SAINT HELENA SH SAINT KITTS AND NEVIS KN SAINT LUCIA LC SAINT PIERRE AND MIQUELON PM SAINT VINCENT AND THE GRENADINES VC SAMOA WS SAN MARINO SM SAO TOME AND PRINCIPE ST SAUDI ARABIA SA SENEGAL SN SERBIA AND MONTENEGRO CS SEYCHELLES SC SIERRA LEONE SL SINGAPORE SG SLOVAKIA SK SLOVENIA SI SOLOMON ISLANDS SB SOMALIA SO SOUTH AFRICA ZA SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS GS SPAIN ES SRI LANKA LK SUDAN SD SURINAME SR SVALBARD AND JAN MAYEN SJ SWAZILAND SZ SWEDEN SE SWITZERLAND CH SYRIAN ARAB REPUBLIC SY TAIWAN, PROVINCE OF CHINA TW TAJIKISTAN TJ TANZANIA, UNITED REPUBLIC OF TZ THAILAND TH TIMOR-LESTE TL TOGO TG TOKELAU TK TONGA TO TRINIDAD AND TOBAGO TT TUNISIA TN TURKEY TR TURKMENISTAN TM TURKS AND CAICOS ISLANDS TC TUVALU TV UGANDA UG UKRAINE UA UNITED ARAB EMIRATES AE UNITED KINGDOM GB UNITED STATES US UNITED STATES MINOR OUTLYING ISLANDS UM URUGUAY UY UZBEKISTAN UZ VANUATU VU Vatican City State see HOLY SEE VENEZUELA VE VIET NAM VN VIRGIN ISLANDS, BRITISH VG VIRGIN ISLANDS, U.S. VI WALLIS AND FUTUNA WF WESTERN SAHARA EH YEMEN YE Zaire see CONGO, THE DEMOCRATIC REPUBLIC OF THE ZAMBIA ZM ZIMBABWE ZW
ISO 639 Language Codes
Below are two lists of the international standard ISO 639 Language Codes. You will sometimes find these codes embedded in the
URL strings which have been captured. Often the two letter codes are used but sometimes you will find the
three letter codes. All these codes are applied by the search engine. The exact format will vary from
one search engine to the next.
AA "Afar" AB "Abkhazian" AF "Afrikaans" AM "Amharic" AR "Arabic" AS "Assamese" AY "Aymara" AZ "Azerbaijani" BA "Bashkir" BE "Byelorussian" BG "Bulgarian" BH "Bihari" BI "Bislama" BN "Bengali" "Bangla" BO "Tibetan" BR "Breton" CA "Catalan" CO "Corsican" CS "Czech" CY "Welsh" DA "Danish" DE "German" DZ "Bhutani" EL "Greek" EN "English" "American" EO "Esperanto" ES "Spanish" ET "Estonian" EU "Basque" FA "Persian" FI "Finnish" FJ "Fiji" FO "Faeroese" FR "French" FY "Frisian" GA "Irish" GD "Gaelic" "Scots Gaelic" GL "Galician" GN "Guarani" GU "Gujarati" HA "Hausa" HI "Hindi" HR "Croatian" HU "Hungarian" HY "Armenian" IA "Interlingua" IE "Interlingue" IK "Inupiak" IN "Indonesian" IS "Icelandic" IT "Italian" IW "Hebrew" JA "Japanese" JI "Yiddish" JW "Javanese" KA "Georgian" KK "Kazakh" KL "Greenlandic" KM "Cambodian" KN "Kannada" KO "Korean" KS "Kashmiri" KU "Kurdish" KY "Kirghiz" LA "Latin" LN "Lingala" LO "Laothian" LT "Lithuanian" LV "Latvian" "Lettish" MG "Malagasy" MI "Maori" MK "Macedonian" ML "Malayalam" MN "Mongolian" MO "Moldavian" MR "Marathi" MS "Malay" MT "Maltese" MY "Burmese" NA "Nauru" NE "Nepali" NL "Dutch" NO "Norwegian" OC "Occitan" OM "Oromo" "Afan" OR "Oriya" PA "Punjabi" PL "Polish" PS "Pashto" "Pushto" PT "Portuguese" QU "Quechua" RM "Rhaeto-Romance" RN "Kirundi" RO "Romanian" RU "Russian" RW "Kinyarwanda" SA "Sanskrit" SD "Sindhi" SG "Sangro" SH "Serbo-Croatian" SI "Singhalese" SK "Slovak" SL "Slovenian" SM "Samoan" SN "Shona" SO "Somali" SQ "Albanian" SR "Serbian" SS "Siswati" ST "Sesotho" SU "Sudanese" SV "Swedish" SW "Swahili" TA "Tamil" TE "Tegulu" TG "Tajik" TH "Thai" TI "Tigrinya" TK "Turkmen" TL "Tagalog" TN "Setswana" TO "Tonga" TR "Turkish" TS "Tsonga" TT "Tatar" TW "Twi" UK "Ukrainian" UR "Urdu" UZ "Uzbek" VI "Vietnamese" VO "Volapuk" WO "Wolof" XH "Xhosa" YO "Yoruba" ZH "Chinese" ZU "Zulu"
abk ab Abkhazian
ace Achinese
ach Acoli
ada Adangme
aar aa Afar
afh Afrihili
afr af Afrikaans
afa Afro-Asiatic (Other)
aka Akan
akk Akkadian
alb/sqi sq Albanian
ale Aleut
alg Algonquian languages
tut Altaic (Other)
amh am Amharic
apa Apache languages
ara ar Arabic
arc Aramaic
arp Arapaho
arn Araucanian
arw Arawak
arm/hye hy Armenian
art Artificial (Other)
asm as Assamese
ath Athapascan languages
map Austronesian (Other)
ava Avaric
ave Avestan
awa Awadhi
aym ay Aymara
aze az Azerbaijani
nah Aztec
ban Balinese
bat Baltic (Other)
bal Baluchi
bam Bambara
bai Bamileke languages
bad Banda
bnt Bantu (Other)
bas Basa
bak ba Bashkir
baq/eus eu Basque
bej Beja
bem Bemba
ben bn Bengali
ber Berber (Other)
bho Bhojpuri
bih bh Bihari
bik Bikol
bin Bini
bis bi Bislama
bra Braj
bre be Breton
bug Buginese
bul bg Bulgarian
bua Buriat
bur/mya my Burmese
bel be Byelorussian
cad Caddo
car Carib
cat ca Catalan
cau Caucasian (Other)
ceb Cebuano
cel Celtic (Other)
cai Central American Indian (Other)
chg Chagatai
cha Chamorro
che Chechen
chr Cherokee
chy Cheyenne
chb Chibcha
chi/zho zh Chinese
chn Chinook jargon
cho Choctaw
chu Church Slavic
chv Chuvash
cop Coptic
cor Cornish
cos co Corsican
cre Cree
mus Creek
crp Creoles and Pidgins (Other)
cpe Creoles and Pidgins, English-based (Other)
cpf Creoles and Pidgins, French-based (Other)
cpp Creoles and Pidgins, Portuguese-based (Other)
cus Cushitic (Other)
hr Croatian
ces/cze cs Czech
dak Dakota
dan da Danish
del Delaware
din Dinka
div Divehi
doi Dogri
dra Dravidian (Other)
dua Duala
dut/nla nl Dutch
dum Dutch, Middle (ca. 1050-1350)
dyu Dyula
dzo dz Dzongkha
efi Efik
egy Egyptian (Ancient)
eka Ekajuk
elx Elamite
eng en English
enm English, Middle (ca. 1100-1500)
ang English, Old (ca. 450-1100)
esk Eskimo (Other)
epo eo Esperanto
est et Estonian
ewe Ewe
ewo Ewondo
fan Fang
fat Fanti
fao fo Faroese
fij fj Fijian
fin fi Finnish
fiu Finno-Ugrian (Other)
fon Fon
fra/fre fr French
frm French, Middle (ca. 1400-1600)
fro French, Old (842- ca. 1400)
fry fy Frisian
ful Fulah
gaa Ga
gae/gdh Gaelic (Scots)
glg gl Gallegan
lug Ganda
gay Gayo
gez Geez
geo/kat ka Georgian
deu/ger de German
gmh German, Middle High (ca. 1050-1500)
goh German, Old High (ca. 750-1050)
gem Germanic (Other)
gil Gilbertese
gon Gondi
got Gothic
grb Grebo
grc Greek, Ancient (to 1453)
ell/gre el Greek, Modern (1453-)
kal kl Greenlandic
grn gn Guarani
guj gu Gujarati
hai Haida
hau ha Hausa
haw Hawaiian
heb he Hebrew
her Herero
hil Hiligaynon
him Himachali
hin hi Hindi
hmo Hiri Motu
hun hu Hungarian
hup Hupa
iba Iban
ice/isl is Icelandic
ibo Igbo
ijo Ijo
ilo Iloko
inc Indic (Other)
ine Indo-European (Other)
ind id Indonesian
ina ia Interlingua (International Auxiliary language Association)
ine - Interlingue
iku iu Inuktitut
ipk ik Inupiak
ira Iranian (Other)
gai/iri ga Irish
sga Irish, Old (to 900)
mga Irish, Middle (900 - 1200)
iro Iroquoian languages
ita it Italian
jpn ja Japanese
jav/jaw jv/jw Javanese
jrb Judeo-Arabic
jpr Judeo-Persian
kab Kabyle
kac Kachin
kam Kamba
kan kn Kannada
kau Kanuri
kaa Kara-Kalpak
kar Karen
kas ks Kashmiri
kaw Kawi
kaz kk Kazakh
kha Khasi
khm km Khmer
khi Khoisan (Other)
kho Khotanese
kik Kikuyu
kin rw Kinyarwanda
kir ky Kirghiz
kom Komi
kon Kongo
kok Konkani
kor ko Korean
kpe Kpelle
kro Kru
kua Kuanyama
kum Kumyk
kur ku Kurdish
kru Kurukh
kus Kusaie
kut Kutenai
lad Ladino
lah Lahnda
lam Lamba
oci oc Langue d'Oc (post 1500)
lao lo Lao
lat la Latin
lav lv Latvian
ltz Letzeburgesch
lez Lezghian
lin ln Lingala
lit lt Lithuanian
loz Lozi
lub Luba-Katanga
lui Luiseno
lun Lunda
luo Luo (Kenya and Tanzania)
mac/mak mk Macedonian
mad Madurese
mag Magahi
mai Maithili
mak Makasar
mlg mg Malagasy
may/msa ms Malay
mal Malayalam
mlt ml Maltese
man Mandingo
mni Manipuri
mno Manobo languages
max Manx
mao/mri mi Maori
mar mr Marathi
chm Mari
mah Marshall
mwr Marwari
mas Masai
myn Mayan languages
men Mende
mic Micmac
min Minangkabau
mis Miscellaneous (Other)
moh Mohawk
mol mo Moldavian
mkh Mon-Kmer (Other)
lol Mongo
mon mn Mongolian
mos Mossi
mul Multiple languages
mun Munda languages
nau na Nauru
nav Navajo
nde Ndebele, North
nbl Ndebele, South
ndo Ndongo
nep ne Nepali
new Newari
nic Niger-Kordofanian (Other)
ssa Nilo-Saharan (Other)
niu Niuean
non Norse, Old
nai North American Indian (Other)
nor no Norwegian
nno Norwegian (Nynorsk)
nub Nubian languages
nym Nyamwezi
nya Nyanja
nyn Nyankole
nyo Nyoro
nzi Nzima
oji Ojibwa
ori or Oriya
orm om Oromo
osa Osage
oss Ossetic
oto Otomian languages
pal Pahlavi
pau Palauan
pli Pali
pam Pampanga
pag Pangasinan
pan pa Panjabi
pap Papiamento
paa Papuan-Australian (Other)
fas/per fa Persian
peo Persian, Old (ca 600 - 400 B.C.)
phn Phoenician
pol pl Polish
pon Ponape
por pt Portuguese
pra Prakrit languages
pro Provencal, Old (to 1500)
pus ps Pushto
que qu Quechua
roh rm Rhaeto-Romance
raj Rajasthani
rar Rarotongan
roa Romance (Other)
ron/rum ro Romanian
rom Romany
run rn Rundi
rus ru Russian
sal Salishan languages
sam Samaritan Aramaic
smi Sami languages
smo sm Samoan
sad Sandawe
sag sg Sango
san sa Sanskrit
srd Sardinian
sco Scots
sel Selkup
sem Semitic (Other)
sr Serbian
scr sh Serbo-Croatian
srr Serer
shn Shan
sna sn Shona
sid Sidamo
bla Siksika
snd sd Sindhi
sin si Singhalese
sit - Sino-Tibetan (Other)
sio Siouan languages
sla Slavic (Other)
ssw ss Siswant
slk/slo sk Slovak
slv sl Slovenian
sog Sogdian
som so Somali
son Songhai
wen Sorbian languages
nso Sotho, Northern
sot st Sotho, Southern
sai South American Indian (Other)
esl/spa es Spanish
suk Sukuma
sux Sumerian
sun su Sudanese
sus Susu
swa sw Swahili
ssw Swazi
sve/swe sv Swedish
syr Syriac
tgl tl Tagalog
tah Tahitian
tgk tg Tajik
tmh Tamashek
tam ta Tamil
tat tt Tatar
tel te Telugu
ter Tereno
tha th Thai
bod/tib bo Tibetan
tig Tigre
tir ti Tigrinya
tem Timne
tiv Tivi
tli Tlingit
tog to Tonga (Nyasa)
ton Tonga (Tonga Islands)
tru Truk
tsi Tsimshian
tso ts Tsonga
tsn tn Tswana
tum Tumbuka
tur tr Turkish
ota Turkish, Ottoman (1500 - 1928)
tuk tk Turkmen
tyv Tuvinian
twi tw Twi
uga Ugaritic
uig ug Uighur
ukr uk Ukrainian
umb Umbundu
und Undetermined
urd ur Urdu
uzb uz Uzbek
vai Vai
ven Venda
vie vi Vietnamese
vol vo Volapük
vot Votic
wak Wakashan languages
wal Walamo
war Waray
was Washo
cym/wel cy Welsh
wol wo Wolof
xho xh Xhosa
sah Yakut
yao Yao
yap Yap
yid yi Yiddish
yor yo Yoruba
zap Zapotec
zen Zenaga
zha za Zhuang
zul zu Zulu
zun Zuni
| Language (Locale) | LCID Decimal |
LCID Hex |
Codepage | Country |
| None | 0 | 0 | ||
| French (Cameroon) | 11276 | 02c0c | ||
| Arabic (Saudi Arabia) | 1025 | 0401 | 1256 | SAU |
| Bulgarian | 1026 | 0402 | 1251 | BGR |
| Catalan | 1027 | 0403 | 1252 | ESP |
| Chinese (Taiwan) | 1028 | 0404 | 950 | TWN |
| Czech | 1029 | 0405 | 1250 | CZE |
| Danish | 1030 | 0406 | 1252 | DNK |
| German (Germany) | 1031 | 0407 | 1252 | DEU |
| Greek | 1032 | 0408 | 1253 | GRC |
| English (United States) | 1033 | 0409 | 1252 | USA |
| Spanish (Traditional Sort) | 1034 | 040a | 1252 | ESP |
| Finnish | 1035 | 040b | 1252 | FIN |
| French (France) | 1036 | 040c | 1252 | FRA |
| Hebrew | 1037 | 040d | 1255 | ISR |
| Hungarian | 1038 | 040e | 1250 | HUN |
| Icelandic | 1039 | 040f | 1252 | ISL |
| Italian (Italy) | 1040 | 0410 | 1252 | ITA |
| Japanese | 1041 | 0411 | 932 | JPN |
| Korean | 1042 | 0412 | 949 | KOR |
| Dutch (Netherlands) | 1043 | 0413 | 1252 | NLD |
| Norwegian (Bokmal) | 1044 | 0414 | 1252 | NOR |
| Polish | 1045 | 0415 | 1250 | POL |
| Portuguese (Brazil) | 1046 | 0416 | 1252 | BRA |
| Rhaeto-Romanic | 1047 | 0417 | ||
| Romanian | 1048 | 0418 | 1250 | ROM |
| Russian | 1049 | 0419 | 1251 | RUS |
| Croatian | 1050 | 041a | 1250 | HRV |
| Slovak | 1051 | 041b | 1250 | SVK |
| Albanian | 1052 | 041c | 1250 | ALB |
| Swedish | 1053 | 041d | 1252 | SWE |
| Thai | 1054 | 041e | 874 | THA |
| Turkish | 1055 | 041f | 1254 | TUR |
| Urdu | 1056 | 0420 | 1256 | PAK |
| Indonesian | 1057 | 0421 | 1252 | IDN |
| Ukrainian | 1058 | 0422 | 1251 | UKR |
| Belarusian | 1059 | 0423 | 1251 | BLR |
| Slovenian | 1060 | 0424 | 1250 | SVN |
| Estonian | 1061 | 0425 | 1257 | EST |
| Latvian | 1062 | 0426 | 1257 | LVA |
| Lithuanian | 1063 | 0427 | 1257 | LTU |
| Tajik | 1064 | 0428 | ||
| Farsi | 1065 | 0429 | 1256 | IRN |
| Vietnamese | 1066 | 042a | 1258 | VNM |
| Sorbian | 1070 | 042a | ||
| Armenian | 1067 | 042b | 0 | ARM |
| Azeri (Latin) | 1068 | 042c | 1254 | AZE |
| Basque | 1069 | 042d | 1252 | ESP |
| FYRO Macedonian | 1071 | 042f | 1251 | MKD |
| Sesotho | 1072 | 0430 | ||
| Sutu | 1072 | 0430 | ||
| Tsonga | 1073 | 0431 | ||
| Tswana | 1074 | 0432 | ||
| Venda | 1075 | 0433 | ||
| Xhosa | 1076 | 0434 | ||
| Zulu | 1077 | 0435 | ||
| Afrikaans | 1078 | 0436 | 1252 | ZAF |
| Georgian | 1079 | 0437 | 0 | GEO |
| Faroese | 1080 | 0438 | 1252 | FRO |
| Hindi | 1081 | 0439 | 0 | IND |
| Maltese | 1082 | 043a | ||
| Sami Lappish | 1083 | 043b | ||
| Gaelic Scotland | 1084 | 043c | ||
| Yiddish | 1085 | 043d | ||
| Malay (Malaysia) | 1086 | 043e | 1252 | MYS |
| Kazakh | 1087 | 043f | 1251 | KAZ |
| Kyrgyz (Cyrillic) | 1088 | 0440 | 1251 | KGZ |
| Swahili | 1089 | 0441 | 1252 | KEN |
| Turkmen | 1090 | 0442 | ||
| Uzbek (Latin) | 1091 | 0443 | 1254 | UZB |
| Tatar | 1092 | 0444 | 1251 | RUS |
| Bengali (India) | 1093 | 0445 | ||
| Punjabi | 1094 | 0446 | 0 | IND |
| Gujarati | 1095 | 0447 | 0 | IND |
| Oriya | 1096 | 0448 | ||
| Tamil | 1097 | 0449 | 0 | IND |
| Telugu | 1098 | 044a | 0 | IND |
| Kannada | 1099 | 044b | 0 | IND |
| Malayalam | 1100 | 044c | ||
| Assamese | 1101 | 044d | ||
| Marathi | 1102 | 044e | 0 | IND |
| Sanskrit | 1103 | 044f | 0 | IND |
| Mongolian (Cyrillic) | 1104 | 0450 | 1251 | MNG |
| Tibetan | 1105 | 0451 | ||
| Welsh | 1106 | 0452 | ||
| Khmer | 1107 | 0453 | ||
| Lao | 1108 | 0454 | ||
| Burmese | 1109 | 0455 | ||
| Galician | 1110 | 0456 | 1252 | ESP |
| Konkani | 1111 | 0457 | 0 | IND |
| Manipuri | 1112 | 0458 | ||
| Sindhi | 1113 | 0459 | ||
| Syriac | 1114 | 045a | 0 | SYR |
| Sinhalese (Sri Lanka) | 1115 | 045b | ||
| Amharic (Ethiopia) | 1118 | 045e | ETH | |
| Kashmiri | 1120 | 0460 | ||
| Nepali | 1121 | 0461 | ||
| Frisian (Netherlands) | 1122 | 0462 | ||
| Filipino | 1124 | 0464 | ||
| Divehi | 1125 | 0465 | 0 | MDV |
| Edo | 1126 | 0466 | ||
| Igbo (Nigeria) | 1136 | 0470 | ||
| Guarani (Paraguay) | 1140 | 0474 | ||
| Latin | 1142 | 0476 | ||
| Somali | 1143 | 0477 | ||
| Maori (New Zealand) | 1153 | 0481 | ||
| HID (Human Interface Device) | 1279 | 04ff | ||
| Arabic (Iraq) | 2049 | 0801 | 1256 | IRQ |
| Chinese (PRC) | 2052 | 0804 | 936 | CHN |
| German (Switzerland) | 2055 | 0807 | 1252 | CHE |
| English (United Kingdom) | 2057 | 0809 | 1252 | GBR |
| Spanish (Mexico) | 2058 | 080a | 1252 | MEX |
| French (Belgium) | 2060 | 080c | 1252 | BEL |
| Italian (Switzerland) | 2064 | 0810 | 1252 | CHE |
| Dutch (Belgium) | 2067 | 0813 | 1252 | BEL |
| Norwegian (Nynorsk) | 2068 | 0814 | 1252 | NOR |
| Portuguese (Portugal) | 2070 | 0816 | 1252 | PRT |
| Romanian (Moldova) | 2072 | 0818 | ||
| Russian (Moldova) | 2073 | 0819 | ||
| Serbian (Latin) | 2074 | 081a | 1250 | SPB |
| Swedish (Finland) | 2077 | 081d | 1252 | FIN |
| Azeri (Cyrillic) | 2092 | 082c | 1251 | AZE |
| Gaelic Ireland | 2108 | 083c | ||
| Malay (Brunei Darussalam) | 2110 | 083e | 1252 | BRN |
| Uzbek (Cyrillic) | 2115 | 0843 | 1251 | UZB |
| Bengali (Bangladesh) | 2117 | 0845 | BGD | |
| Mongolian (Mongolia) | 2128 | 0850 | MNG | |
| Arabic (Egypt) | 3073 | 0c01 | 1256 | EGY |
| Chinese (Hong Kong S.A.R.) | 3076 | 0c04 | 950 | HKG |
| German (Austria) | 3079 | 0c07 | 1252 | AUT |
| English (Australia) | 3081 | 0c09 | 1252 | AUS |
| Spanish (International Sort) | 3082 | 0c0a | 1252 | ESP |
| French (Canada) | 3084 | 0c0c | 1252 | CAN |
| Serbian (Cyrillic) | 3098 | 0c1a | 1251 | SPB |
| Arabic (Libya) | 4097 | 1001 | 1256 | LBY |
| Chinese (Singapore) | 4100 | 1004 | 936 | SGP |
| German (Luxembourg) | 4103 | 1007 | 1252 | LUX |
| English (Canada) | 4105 | 1009 | 1252 | CAN |
| Spanish (Guatemala) | 4106 | 100a | 1252 | GTM |
| French (Switzerland) | 4108 | 100c | 1252 | CHE |
| Croatian (Bosnia/Herzegovina) | 4122 | 101a | BIH | |
| Arabic (Algeria) | 5121 | 1401 | 1256 | DZA |
| Chinese (Macau S.A.R.) | 5124 | 1404 | 950 | MCO |
| German (Liechtenstein) | 5127 | 1407 | 1252 | LIE |
| English (New Zealand) | 5129 | 1409 | 1252 | NZL |
| Spanish (Costa Rica) | 5130 | 140a | 1252 | CRI |
| French (Luxembourg) | 5132 | 140c | 1252 | LUX |
| Bosnian (Bosnia/Herzegovina) | 5146 | 141A | BIH | |
| Arabic (Morocco) | 6145 | 1801 | 1256 | MAR |
| English (Ireland) | 6153 | 1809 | 1252 | IRL |
| Spanish (Panama) | 6154 | 180a | 1252 | PAN |
| French (Monaco) | 6156 | 180c | 1252 | MCO |
| Arabic (Tunisia) | 7169 | 1c01 | 1256 | TUN |
| English (South Africa) | 7177 | 1c09 | 1252 | ZAF |
| Spanish (Dominican Republic) | 7178 | 1c0a | 1252 | DOM |
| French (West Indies) | 7180 | 1c0c | ||
| Arabic (Oman) | 8193 | 2001 | 1256 | OMN |
| English (Jamaica) | 8201 | 2009 | 1252 | JAM |
| Spanish (Venezuela) | 8202 | 200a | 1252 | VEN |
| Arabic (Yemen) | 9217 | 2401 | 1256 | YEM |
| English (Caribbean) | 9225 | 2409 | 1252 | CAR |
| Spanish (Colombia) | 9226 | 240a | 1252 | COL |
| French (Congo, DRC) | 9228 | 240c | ||
| Arabic (Syria) | 10241 | 2801 | 1256 | SYR |
| English (Belize) | 10249 | 2809 | 1252 | BLZ |
| Spanish (Peru) | 10250 | 280a | 1252 | PER |
| French (Senegal) | 10252 | 280c | ||
| Arabic (Jordan) | 11265 | 2c01 | 1256 | JOR |
| English (Trinidad) | 11273 | 2c09 | 1252 | TTO |
| Spanish (Argentina) | 11274 | 2c0a | 1252 | ARG |
| Arabic (Lebanon) | 12289 | 3001 | 1256 | LBN |
| English (Zimbabwe) | 12297 | 3009 | 1252 | ZWE |
| Spanish (Ecuador) | 12298 | 300a | 1252 | ECU |
| French (Cote d'Ivoire) | 12300 | 300c | ||
| Arabic (Kuwait) | 13313 | 3401 | 1256 | KWT |
| English (Philippines) | 13321 | 3409 | 1252 | PHL |
| Spanish (Chile) | 13322 | 340a | 1252 | CHL |
| French (Mali) | 13324 | 340c | ||
| Arabic (U.A.E.) | 14337 | 3801 | 1256 | ARE |
| Spanish (Uruguay) | 14346 | 380a | 1252 | URY |
| French (Morocco) | 14348 | 380c | ||
| Arabic (Bahrain) | 15361 | 3c01 | 1256 | BHR |
| Spanish (Paraguay) | 15370 | 3c0a | 1252 | PRY |
| Arabic (Qatar) | 16385 | 4001 | 1256 | QAT |
| English (India) | 16393 | 4009 | ||
| Spanish (Bolivia) | 16394 | 400a | 1252 | BOL |
| Spanish (El Salvador) | 17418 | 440a | 1252 | SLV |
| Spanish (Honduras) | 18442 | 480a | 1252 | HND |
| Spanish (Nicaragua) | 19466 | 4c0a | 1252 | NIC |
| Spanish (Puerto Rico) | 20490 | 500a | 1252 | PRI |