Skip Navigation Links
Novas Tecnologias
Ferramentas Adicionais
Ferramentas Adicionais


Dica No :
133
Assunto : ASP
Titulo: Desvie os usuários para a página da lingua correta usando Accept language

Gostou do texto ? Vote e dê sua opinião! Pontuação atual :

Translate this page now :






Adicione aos Favoritos!
BlogBlogs Rec6 Linkk Ueba Technorati Delicious DiggIt! StumbleUpon



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>


Nome :
E-mail:
Comentarios :
 
 
Os Últimos Comentários
data: 1/31/2017 12:22:00 PM
nome: DRliWZJRXI
email: derby451@hotmail.com
comentário:
YOszoJ http://www.y7YwKx7Pm6OnyJvolbcwrWdoEnRF29pb.com

data: 1/29/2017 10:00:00 AM
nome: ZeNEOUWeETLK
email: derby451@hotmail.com
comentário:
WOElWt http://www.y7YwKx7Pm6OnyJvolbcwrWdoEnRF29pb.com

data: 1/29/2017 9:58:00 AM
nome: FFtTaeBReaK
email: jogcbfn@hotmail.com
comentário:
oVhLpb http://www.y7YwKx7Pm6OnyJvolbcwrWdoEnRF29pb.com

data: 1/5/2017 5:52:00 AM
nome: UEdbruJOklicEJap
email: jfvynms4281rt@hotmail.com
comentário:
OK7hTi http://www.FyLitCl7Pf7ojQdDUOLQOuaxTXbj5iNG.com

data: 1/1/2017 11:00:00 PM
nome: dCzgqzMIIMdXpgwJli
email: jfvynms4281rt@hotmail.com
comentário:
TFejNZ http://www.FyLitCl7Pf7ojQdDUOLQOuaxTXbj5iNG.com

 1  
Dicas
Dica do Dia
Receba Dicas Por Email
E-mail :  
 


 (help)
Aceito receber informativos do devASPNet, informações de eventos e treinamentos

Veja Quais Informativos Você Receberá

Pesquisar Dicas
Pesquisar Artigos, Dicas e Noticias

Banco de Dados
Algumas Entrevistas
Links Importantes

Búfalo Informática, Treinamento e Consultoria
R. Alvaro Alvim, 37/920 Centro - Cinelândia - Rio de Janeiro Cep: 20031-010
Tel : (21) 2262-1368 (21) 9240-5134 E-mail : Contato@bufaloinfo.com.br