USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  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>
 


CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página