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.

 


SETUP

 


GENERAL OPERATION

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.

 


CUSTOMER MIMarketingInfo

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:

PageTitle String
Add to basketApplication("PageTopperAddBasket")
ShippingApplication("PageTopperReviewBasket")
BillingApplication("PageTopperCheckout")
Refund Information (RMA equivalent of checkout)Application("PageTopperheckoutRefundBasket")
ReorderApplication("PageTopperReorder")
Order StatusApplication("PageTopperOrderStatus")
My ListApplication("PageTopperListingManager")
Adjusted Trade OfferApplication("PageTopperOffer")
My AccountApplication("PageTopperMyAccount")
Lost Password RecoveryApplication("PageTopperPasswordRecovery")
Order Receipt page (Thankyou page)Application("PageTopperEReceipt")
Edit or Delete ItemApplication("PageTopperEditBasketLine")
Customer Login pageApplication("PageTopperCustomerLogin")
Agreement / Information pageApplication("PageTopperAgreement")
Wish ListApplication("PageTopperWishList")
Gift ListApplication("PageTopperGiftList")

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).

  1. The function buildCartMLStrArray() is invoked in the SendSafe.Statecontrol.inc.asp file.
  2. buildCartMLStrArray() is passed the filename of the webpage as the recordlocator. The function cscHTMLPageContent() uses this string and matches it againsts the CSC type 15 HTML Content record (Key1).
  3. This record returned is tokenized using '~' as a delimiter.
  4. ics_MLStrArray[] is setup with these tokens.
  5. The various getCart***MLStr() functions described below are used to retrieve these tokens or a default launague string.

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 name
<a> ==> which is converted into the appropriate hyperlink.
These 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 ).

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.

In all cases, global JavaScript vars set via ASP to constant string values are used to pass the multilingual strings contants to JavaScript code.

 

Table of system level reserved string and buttons:

IndexDescription / Default configurationSystem Level Reserved string
0Top of page login messageYou are logged in as [CUSTNAME]. If you are not [CUSTNAME], then please click here.
1Top of page login messageYou are currently logged in. Click here to logout.
2Top of page login messageYou are not currently logged in. Please click here to login.

Cart & Customer Account Buttons
3Application("BBDeleteBasket")width=123 height=28 SRC="images/delBasket.graysteal.gif
4Application("BBApplyCoupon")width=123 height=28 SRC="images/ApplyCoupon.graysteal.gif
5Application("BBClearForm")width=123 height=28 SRC="images/ClearForm.graysteal.gif
6Application("BBDeleteItem")width=123 height=28 SRC="images/DeleteItem.graysteal.gif
7Application("BBPressComplete")width=202 height=28 SRC="images/PressToCompleteOrder.graysteal.gif
8Application("BBSubmitOrder")width=202 height=28 SRC="images/PressToCompleteOrder.graysteal.gif
9Application("BBReturnPrior")width=202 height=28 SRC="images/RetPrior.graysteal.gif
10Application("BBQuickBuy")width=168 height=28 SRC="images/QuickBuy.graysteal.gif
11Application("BBSave")width=123 height=28 SRC="images/SaveChanges.graysteal.gif
12Application("BBLogin")width=60 height=24 SRC="images/login.graysteal.gif
13Application("BBLogout")width=60 height=24 SRC="images/logout.graysteal.gif
14Application("BBcreateAccount")width=119 height=24 SRC="images/createaccount.graysteal.gif
15Application("BBPasswordRecovery")width=119 height=24 SRC="images/passwordRecovery.graysteal.gif
16Application("MAButtonLogout")width=90 height=16 SRC="images/MyAccount.Logout.gif
17Application("MAButtonReorder")width=90 height=16 SRC="images/MyAccount.Recordering.gif
18Application("MAButtonOrderStat")width=90 height=16 SRC="images/MyAccount.OrderStatus.gif
19Application("MAButtonWishList")width=90 height=16 SRC="images/MyAccount.Wishlist.gif
20Application("MAButtonListingManager")width=90 height=16 SRC="images/MyAccount.MyListings.gif

Page Title
21Page 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
22QuickBuy 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.~
23QuickBuy 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.~
24QuickBuy 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.~
25QuickBuy 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.~
26QuickBuy Basket: Bottom help line<b>To enter new shipping or billing information, press the "Continue Checkout" button.</b>~
27QuickBuy Shipping (single address mode): Bottom help line<b>To enter new shipping information, fill out form below and press ""Continue Checkout"" button.</b>~
28QuickBuy Shipping (mutli-address mode): Bottom help line<b>To enter new Billing information press ""Continue Checkout"" button.</b>~
29QuickBuy Billing: Bottom help line<b>To enter new billing information, fill out form below and press "Continue Checkout or Process Order" button.</b>~
30QuickBuy Basket: Popup submission warning line#1You are completing this purchase with shipping and billing information from a previous purchase.~
31QuickBuy Shipping (single address mode): Popup submission warning line#1You are completing this purchase with shipping and billing information from a previous purchase (NOT USING INFORMATION YOU MAY HAVE CHANGED IN THE FORM).~
32QuickBuy Shipping (mutli-address mode): Popup submission warning line#1You 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.~
33QuickBuy Basket: Popup submission warning line#1You 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.~
34QuickBuy Basket: Popup Help stringAny 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.~
35QuickBuy Shipping: Popup Help stringTo 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.
36QuickBuy Billing: Popup Help stringAny 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.
37QuickBuy labelOrder will be shipped to:~
38QuickBuy labelZip:~
39QuickBuy labelE-Coupon applied to Instant Checkout:~
40QuickBuy labelPrior Order:~
41QuickBuy labelOrder Date:~
42QuickBuy labelOrder Number:~
43QuickBuy labelCredit Card:~
44QuickBuy labelShip to Name:~
45QuickBuy labelShip to zip:~
46QuickBuy submission helpPressing the [ OK ] will instantly complete your order now.~
47QuickBuy error #1Sorry... 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.~
48QuickBuy error #2The 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.~
49QuickBuy coupon dropdownSelect E-Coupon from list or enter by hand~
50Nothing in cart messageNo items are in your basket. <a>Go shopping</a>!~
51Application("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.

ISO 639: 2-letter codes

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"

ISO 639: 3-letter codes

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

 


Decimal Language Codes

Language (Locale) LCID
Decimal
LCID
Hex
Codepage Country
None00
French (Cameroon)1127602c0c
Arabic (Saudi Arabia)102504011256SAU
Bulgarian102604021251BGR
Catalan102704031252ESP
Chinese (Taiwan)10280404950TWN
Czech102904051250CZE
Danish103004061252DNK
German (Germany)103104071252DEU
Greek103204081253GRC
English (United States)103304091252USA
Spanish (Traditional Sort)1034040a1252ESP
Finnish1035040b1252FIN
French (France)1036040c1252FRA
Hebrew1037040d1255ISR
Hungarian1038040e1250HUN
Icelandic1039040f1252ISL
Italian (Italy)104004101252ITA
Japanese10410411932JPN
Korean10420412949KOR
Dutch (Netherlands)104304131252NLD
Norwegian (Bokmal)104404141252NOR
Polish104504151250POL
Portuguese (Brazil)104604161252BRA
Rhaeto-Romanic10470417
Romanian104804181250ROM
Russian104904191251RUS
Croatian1050041a1250HRV
Slovak1051041b1250SVK
Albanian1052041c1250ALB
Swedish1053041d1252SWE
Thai1054041e874THA
Turkish1055041f1254TUR
Urdu105604201256PAK
Indonesian105704211252IDN
Ukrainian105804221251UKR
Belarusian105904231251BLR
Slovenian106004241250SVN
Estonian106104251257EST
Latvian106204261257LVA
Lithuanian106304271257LTU
Tajik10640428
Farsi106504291256IRN
Vietnamese1066042a1258VNM
Sorbian1070042a
Armenian1067042b0ARM
Azeri (Latin)1068042c1254AZE
Basque1069042d1252ESP
FYRO Macedonian1071042f1251MKD
Sesotho10720430
Sutu10720430
Tsonga10730431
Tswana10740432
Venda10750433
Xhosa10760434
Zulu10770435
Afrikaans107804361252ZAF
Georgian107904370GEO
Faroese108004381252FRO
Hindi108104390IND
Maltese1082043a
Sami Lappish1083043b
Gaelic Scotland1084043c
Yiddish1085043d
Malay (Malaysia)1086043e1252MYS
Kazakh1087043f1251KAZ
Kyrgyz (Cyrillic)108804401251KGZ
Swahili108904411252KEN
Turkmen10900442
Uzbek (Latin)109104431254UZB
Tatar109204441251RUS
Bengali (India)10930445
Punjabi109404460IND
Gujarati109504470IND
Oriya10960448
Tamil109704490IND
Telugu1098044a0IND
Kannada1099044b0IND
Malayalam1100044c
Assamese1101044d
Marathi1102044e0IND
Sanskrit1103044f0IND
Mongolian (Cyrillic)110404501251MNG
Tibetan11050451
Welsh11060452
Khmer11070453
Lao11080454
Burmese11090455
Galician111004561252ESP
Konkani111104570IND
Manipuri11120458
Sindhi11130459
Syriac1114045a0SYR
Sinhalese (Sri Lanka)1115045b
Amharic (Ethiopia)1118045eETH
Kashmiri11200460
Nepali11210461
Frisian (Netherlands)11220462
Filipino11240464
Divehi112504650MDV
Edo11260466
Igbo (Nigeria)11360470
Guarani (Paraguay)11400474
Latin11420476
Somali11430477
Maori (New Zealand)11530481
HID (Human Interface Device)127904ff
Arabic (Iraq)204908011256IRQ
Chinese (PRC)20520804936CHN
German (Switzerland)205508071252CHE
English (United Kingdom)205708091252GBR
Spanish (Mexico)2058080a1252MEX
French (Belgium)2060080c1252BEL
Italian (Switzerland)206408101252CHE
Dutch (Belgium)206708131252BEL
Norwegian (Nynorsk)206808141252NOR
Portuguese (Portugal)207008161252PRT
Romanian (Moldova)20720818
Russian (Moldova)20730819
Serbian (Latin)2074081a1250SPB
Swedish (Finland)2077081d1252FIN
Azeri (Cyrillic)2092082c1251AZE
Gaelic Ireland2108083c
Malay (Brunei Darussalam)2110083e1252BRN
Uzbek (Cyrillic)211508431251UZB
Bengali (Bangladesh)21170845BGD
Mongolian (Mongolia)21280850MNG
Arabic (Egypt)30730c011256EGY
Chinese (Hong Kong S.A.R.)30760c04950HKG
German (Austria)30790c071252AUT
English (Australia)30810c091252AUS
Spanish (International Sort)30820c0a1252ESP
French (Canada)30840c0c1252CAN
Serbian (Cyrillic)30980c1a1251SPB
Arabic (Libya)409710011256LBY
Chinese (Singapore)41001004936SGP
German (Luxembourg)410310071252LUX
English (Canada)410510091252CAN
Spanish (Guatemala)4106100a1252GTM
French (Switzerland)4108100c1252CHE
Croatian (Bosnia/Herzegovina)4122101aBIH
Arabic (Algeria)512114011256DZA
Chinese (Macau S.A.R.)51241404950MCO
German (Liechtenstein)512714071252LIE
English (New Zealand)512914091252NZL
Spanish (Costa Rica)5130140a1252CRI
French (Luxembourg)5132140c1252LUX
Bosnian (Bosnia/Herzegovina)5146141ABIH
Arabic (Morocco)614518011256MAR
English (Ireland)615318091252IRL
Spanish (Panama)6154180a1252PAN
French (Monaco)6156180c1252MCO
Arabic (Tunisia)71691c011256TUN
English (South Africa)71771c09 1252ZAF
Spanish (Dominican Republic)71781c0a1252DOM
French (West Indies)71801c0c
Arabic (Oman)819320011256OMN
English (Jamaica)820120091252JAM
Spanish (Venezuela)8202200a1252VEN
Arabic (Yemen)921724011256YEM
English (Caribbean)922524091252CAR
Spanish (Colombia)9226240a1252COL
French (Congo, DRC)9228240c
Arabic (Syria)1024128011256SYR
English (Belize)1024928091252BLZ
Spanish (Peru)10250280a1252PER
French (Senegal)10252280c
Arabic (Jordan)112652c011256JOR
English (Trinidad)112732c091252TTO
Spanish (Argentina)112742c0a1252ARG
Arabic (Lebanon)1228930011256LBN
English (Zimbabwe)1229730091252ZWE
Spanish (Ecuador)12298300a1252ECU
French (Cote d'Ivoire)12300300c
Arabic (Kuwait)1331334011256KWT
English (Philippines)1332134091252PHL
Spanish (Chile)13322340a 1252CHL
French (Mali)13324340c
Arabic (U.A.E.)1433738011256ARE
Spanish (Uruguay)14346380a1252URY
French (Morocco)14348380c
Arabic (Bahrain)153613c011256BHR
Spanish (Paraguay)153703c0a1252PRY
Arabic (Qatar)1638540011256QAT
English (India)163934009
Spanish (Bolivia)16394400a1252BOL
Spanish (El Salvador)17418440a1252SLV
Spanish (Honduras)18442480a1252HND
Spanish (Nicaragua)194664c0a1252NIC
Spanish (Puerto Rico)20490500a1252PRI