GOCHESTER.COM
Search:
 
 
Membership
 
  Member Login
Become a Member
Reset Password
 
     

 
Site Links
 
  Index
News Articles
View Articles By Category
 
     

 
How to set the ASP Locale ID per the browser's language settings
Category: Scripting goods
By: Chester Zhang - March 22nd, 2010
This article has been read: 125 times.

from Microsoft Article published on April 29, 2005




The following subroutine dynamically sets the Locale ID for the ASP application (Session.LCID) according to the Language settings supplied by the user's browser:


<br /> <SCRIPT Runat=Server Language=VBScript><br /> Sub SetLCID()<br /> Dim strAcceptLanguage<br /> Dim strLCID<br /> Dim strPos<br /> <br /> strAcceptLanguage = Request.ServerVariables("HTTP_ACCEPT_LANGUAGE")<br /> <br /> strPos = InStr(1, strAcceptLanguage, ",")<br /> If strPos > 0 Then<br /> strAcceptLanguage = Left(strAcceptLanguage, strPos - 1)<br /> End If<br /> <br /> Select Case LCase(strAcceptLanguage)<br /> Case "af"<br /> strLCID = 1078 ' Afrikaans <br /> Case "sq"<br /> strLCID = 1052 ' Albanian <br /> Case "ar-sa"<br /> strLCID = 1025 ' Arabic(Saudi Arabia) <br /> Case "ar-iq"<br /> strLCID = 2049 ' Arabic(Iraq) <br /> Case "ar-eg"<br /> strLCID = 3073 ' Arabic(Egypt) <br /> Case "ar-ly"<br /> strLCID = 4097 ' Arabic(Libya) <br /> Case "ar-dz"<br /> strLCID = 5121 ' Arabic(Algeria) <br /> Case "ar-ma"<br /> strLCID = 6145 ' Arabic(Morocco) <br /> Case "ar-tn"<br /> strLCID = 7169 ' Arabic(Tunisia) <br /> Case "ar-om"<br /> strLCID = 8193 ' Arabic(Oman) <br /> Case "ar-ye"<br /> strLCID = 9217 ' Arabic(Yemen) <br /> Case "ar-sy"<br /> strLCID = 10241 ' Arabic(Syria) <br /> Case "ar-jo"<br /> strLCID = 11265 ' Arabic(Jordan) <br /> Case "ar-lb"<br /> strLCID = 12289 ' Arabic(Lebanon) <br /> Case "ar-kw"<br /> strLCID = 13313 ' Arabic(Kuwait) <br /> Case "ar-ae"<br /> strLCID = 14337 ' Arabic(U.A.E.) <br /> Case "ar-bh"<br /> strLCID = 15361 ' Arabic(Bahrain) <br /> Case "ar-qa"<br /> strLCID = 16385 ' Arabic(Qatar) <br /> Case "eu"<br /> strLCID = 1069 ' Basque <br /> Case "bg"<br /> strLCID = 1026 ' Bulgarian <br /> Case "be"<br /> strLCID = 1059 ' Belarusian <br /> Case "ca"<br /> strLCID = 1027 ' Catalan <br /> Case "zh-tw"<br /> strLCID = 1028 ' Chinese(Taiwan) <br /> Case "zh-cn"<br /> strLCID = 2052 ' Chinese(PRC) <br /> Case "zh-hk"<br /> strLCID = 3076 ' Chinese(Hong Kong) <br /> Case "zh-sg"<br /> strLCID = 4100 ' Chinese(Singapore) <br /> Case "hr"<br /> strLCID = 1050 ' Croatian <br /> Case "cs"<br /> strLCID = 1029 ' Czech <br /> Case "da"<br /> strLCID = 1030 ' Danish <br /> Case "nl"<br /> strLCID = 1043 ' Dutch(Standard) <br /> Case "nl-be"<br /> strLCID = 2067 ' Dutch(Belgian) <br /> Case "en"<br /> strLCID = 9 ' English <br /> Case "en-us"<br /> strLCID = 1033 ' English(United States) <br /> Case "en-gb"<br /> strLCID = 2057 ' English(British) <br /> Case "en-au"<br /> strLCID = 3081 ' English(Australian) <br /> Case "en-ca"<br /> strLCID = 4105 ' English(Canadian) <br /> Case "en-nz"<br /> strLCID = 5129 ' English(New Zealand) <br /> Case "en-ie"<br /> strLCID = 6153 ' English(Ireland) <br /> Case "en-za"<br /> strLCID = 7177 ' English(South Africa) <br /> Case "en-jm"<br /> strLCID = 8201 ' English(Jamaica) <br /> Case "en-ca"<br /> strLCID = 9225 ' English(Caribbean)"<br /> Case "en-bz"<br /> strLCID = 10249 ' English(Belize) <br /> Case "en-tt"<br /> strLCID = 11273 ' English(Trinidad) <br /> Case "et"<br /> strLCID = 1061 ' Estonian <br /> Case "fo"<br /> strLCID = 1080 ' Faeroese <br /> Case "fa"<br /> strLCID = 1065 ' Farsi <br /> Case "fi"<br /> strLCID = 1035 ' Finnish <br /> Case "fr"<br /> strLCID = 1036 ' French(Standard) <br /> Case "fr-be"<br /> strLCID = 2060 ' French(Belgian) <br /> Case "fr-ca"<br /> strLCID = 3084 ' French(Canadian) <br /> Case "fr-ch"<br /> strLCID = 4108 ' French(Swiss) <br /> Case "fr-lu"<br /> strLCID = 5132 ' French(Luxembourg) <br /> Case "mk"<br /> strLCID = 1071 ' Macedonian (FYROM) <br /> Case "gd"<br /> strLCID = 1084 ' Gaelic(Scots) <br /> Case "de"<br /> strLCID = 1031 ' German(Standard) <br /> Case "de-ch"<br /> strLCID = 2055 ' German(Swiss) <br /> Case "de-at"<br /> strLCID = 3079 ' German(Austrian) <br /> Case "de-lu"<br /> strLCID = 4103 ' German(Luxembourg) <br /> Case "de-li"<br /> strLCID = 5127 ' German(Liechtenstein) <br /> Case "el"<br /> strLCID = 1032 ' Greek <br /> Case "he"<br /> strLCID = 1037 ' Hebrew <br /> Case "hi"<br /> strLCID = 1081 ' Hindi <br /> Case "hu"<br /> strLCID = 1038 ' Hungarian <br /> Case "is"<br /> strLCID = 1039 ' Icelandic <br /> Case "in"<br /> strLCID = 1057 ' Indonesian <br /> Case "it"<br /> strLCID = 1040 ' Italian(Standard) <br /> Case "it-ch"<br /> strLCID = 2064 ' Italian(Swiss) <br /> Case "ja"<br /> strLCID = 1041 ' Japanese <br /> Case "ko"<br /> strLCID = 1042 ' Korean <br /> Case "ko"<br /> strLCID = 2066 ' Korean(Johab) <br /> Case "lv"<br /> strLCID = 1062 ' Latvian <br /> Case "lt"<br /> strLCID = 1063 ' Lithuanian <br /> Case "ms"<br /> strLCID = 1086 ' Malaysian <br /> Case "mt"<br /> strLCID = 1082 ' Maltese <br /> Case "no"<br /> strLCID = 1044 ' Norwegian(Bokmal) <br /> Case "no"<br /> strLCID = 2068 ' Norwegian(Nynorsk) <br /> Case "pl"<br /> strLCID = 1045 ' Polish <br /> Case "pt-br"<br /> strLCID = 1046 ' Portuguese(Brazil) <br /> Case "pt"<br /> strLCID = 2070 ' Portuguese(Portugal) <br /> Case "rm"<br /> strLCID = 1047 ' Rhaeto-Romanic <br /> Case "ro"<br /> strLCID = 1048 ' Romanian <br /> Case "ro-mo"<br /> strLCID = 2072 ' Romanian(Moldavia) <br /> Case "ru"<br /> strLCID = 1049 ' Russian <br /> Case "ru-mo"<br /> strLCID = 2073 ' Russian(Moldavia) <br /> Case "sz"<br /> strLCID = 1083 ' Sami(Lappish) <br /> Case "sr"<br /> strLCID = 3098 ' Serbian(Cyrillic) <br /> Case "sr"<br /> strLCID = 2074 ' Serbian(Latin) <br /> Case "sk"<br /> strLCID = 1051 ' Slovak <br /> Case "sl"<br /> strLCID = 1060 ' Slovenian <br /> Case "sb"<br /> strLCID = 1070 ' Sorbian <br /> Case "es"<br /> strLCID = 1034 ' Spanish(Spain - Traditional Sort) <br /> Case "es-mx"<br /> strLCID = 2058 ' Spanish(Mexican) <br /> Case "es-gt"<br /> strLCID = 4106 ' Spanish(Guatemala) <br /> Case "es-cr"<br /> strLCID = 5130 ' Spanish(Costa Rica) <br /> Case "es-pa"<br /> strLCID = 6154 ' Spanish(Panama) <br /> Case "es-do"<br /> strLCID = 7178 ' Spanish(Dominican Republic) <br /> Case "es-ve"<br /> strLCID = 8202 ' Spanish(Venezuela) <br /> Case "es-co"<br /> strLCID = 9226 ' Spanish(Colombia) <br /> Case "es-pe"<br /> strLCID = 10250 ' Spanish(Peru) <br /> Case "es-ar"<br /> strLCID = 11274 ' Spanish(Argentina) <br /> Case "es-ec"<br /> strLCID = 12298 ' Spanish(Ecuador) <br /> Case "es-c"<br /> strLCID = 13322 ' Spanish(Chile) <br /> Case "es-uy"<br /> strLCID = 14346 ' Spanish(Uruguay) <br /> Case "es-py"<br /> strLCID = 15370 ' Spanish(Paraguay) <br /> Case "es-bo"<br /> strLCID = 16394 ' Spanish(Bolivia) <br /> Case "es-sv"<br /> strLCID = 17418 ' Spanish(El Salvador) <br /> Case "es-hn"<br /> strLCID = 18442 ' Spanish(Honduras) <br /> Case "es-ni"<br /> strLCID = 19466 ' Spanish(Nicaragua) <br /> Case "es-pr"<br /> strLCID = 20490 ' Spanish(Puerto Rico) <br /> Case "sx"<br /> strLCID = 1072 ' Sutu <br /> Case "sv"<br /> strLCID = 1053 ' Swedish <br /> Case "sv-fi"<br /> strLCID = 2077 ' Swedish(Finland) <br /> Case "th"<br /> strLCID = 1054 ' Thai <br /> Case "ts"<br /> strLCID = 1073 ' Tsonga <br /> Case "tn"<br /> strLCID = 1074 ' Tswana <br /> Case "tr"<br /> strLCID = 1055 ' Turkish <br /> Case "uk"<br /> strLCID = 1058 ' Ukrainian <br /> Case "ur"<br /> strLCID = 1056 ' Urdu <br /> Case "ve"<br /> strLCID = 1075 ' Venda <br /> Case "vi"<br /> strLCID = 1066 ' Vietnamese <br /> Case "xh"<br /> strLCID = 1076 ' Xhosa <br /> Case "ji"<br /> strLCID = 1085 ' Yiddish <br /> Case "zu"<br /> strLCID = 1077 ' Zulu <br /> Case Else<br /> strLCID = 2048 ' default<br /> End Select <br /> <br /> Session.LCID = strLCID<br /> End Sub<br /> </SCRIPT><br />
Sample ASP Page


The following sample code may be used to demonstrate the Locale changes. To demonstrate the changes, create an ASP page with the following code and view it in the browser. In the Internet Options (or Preferences) section, modify your Languages settings and refresh the ASP page.



NOTE: The SetLCID() code sample was placed in an include file called setlcid.inc.


<br /> <%@ Language=VBScript %><br /> <HTML><br /> <BODY><br /> <br /> <!--#include file=setlcid.inc --><br /> <br /> <%<br /> SetLCID 'Set the Locale ID per the browser<br /> <br /> Response.Write "Date/Time Formats"<br /> Response.Write "<p>Date = " & Date()<br /> Response.Write "<br>Month = " & Month(Date())<br /> Response.Write "<br>Day = " & Day(Date())<br /> Response.Write "<br>Year = " & Year(Date())<br /> Response.Write "<br>Time = " & Time()<br /> <br /> Response.Write "<p>Currency Formats"<br /> Response.Write "<p>" & FormatCurrency(1.05, 2)<br /> Response.Write "<br>" & FormatNumber(1000000,2)<br /> Response.Write "<br>" & FormatNumber(-1000000,2)<br /> <br /> %><br /> </BODY><br /> </HTML><br />









Back to News Articles
View Articles From Scripting goods Category