|
|
|

|

|
Dicas
|

|
ASP - Active Server Page (Miscelâneas)
|
|
 |
Título da Dica: Desvie os usuários para a página da lingua correta usando Accept language
|
 |
|
|
Postada em 1/10/2003 por ~Ð@®£@Ñ
O servidor possui informações sobre a linguagem aceita pelo usuário. Esta linguagem é configurada no browser do usuário (Tools->Internet Options->Languages, no caso do IE).
O ASP pode identificar a linguagem aceita pelo usuário e entregar para o usuário o site com a linguagem adequada.
Para isso você deverá ter uma versão do site para cada linguagem e guarda-las em diretórios diferentes. O diretório de cada versão deverá ter as duas letras iniciais do código de linguagem. Veja :
de = German, c:\inetpub\wwwroot\de es = Spanish, c:\inetpub\wwwroot\es fr = French, c:\inetpub\wwwroot\fr ru = Russian, c:\inetpub\wwwroot\ru
Vamos criar um arquivo chamado langrdr.asp que será o responsável pelo redirecionamento. O código principal do redirecionamento será o seguinte :
<% Dim strURL,strACCEPT strACCEPT = GetAcceptLanguage()
' change the language code below to customize the default If strACCEPT <> "en-us" Then strURL = "http://" & Request.ServerVariables("HTTP_HOST") strURL = strURL & "/" & strACCEPT & "/" Response.Redirect strURL End If
Basicamente, pega-se a identificação de linguagem. Se for diferente da linguagem deixada como default monta-se a url com o diretório destino da linguagem e faz-se o redirect.
Como vocês podem observar está sendo usada no exemplo acima uma função chamada GetAcceptLanguage(). Veja o código da função :
' this function returns the first accept-language Function GetAcceptLanguage() Dim strHTTP, strLANG, strTEMP, intTEMP strHTTP = LCase(Request.ServerVariables("ALL_RAW")) If InStr(strHTTP,"accept-language:") Then strHTTP = Trim(Mid(strHTTP,16+InStr(strHTTP,"accept-language:"))) For intTEMP = 1 to Len(strHTTP) strTEMP = Mid(strHTTP,intTEMP,1) If IsAlpha(strTEMP) Or strTEMP = "-" Then strLANG = strLANG & strTEMP Else GetAcceptLanguage = strLANG Exit Function End If Next End If End Function
' determine if the character passed is a letter Function IsAlpha(strCHAR) If (Asc(strCHAR)>=65 And Asc(strCHAR)<=90) Or _ (Asc(strCHAR)>=97 And Asc(strCHAR)<=122) Then IsAlpha = -1 Else IsAlpha = 0 End If End Function %>
A função está extraindo do cabeçalho HTTP a linguagem aceita pelo usuário. Utiliza uma outra função durante a extração, a função IsAlpha que verifica se um determinado caracter é uma letra.
Assim sendo, fazendo o include deste arquivo no seu default.asp sempre que o usuário entrar será redirecionado para a página com a linguagem adequada. Veja :
<%@LANGUAGE="VBSCRIPT"%> <!--#include virtual="/langrdr.asp"--> <html> <head><title>Welcome</title></head> <body> <h1>Welcome to my page!</h1> </body> </html>
|
|
|
|

|