Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

xanburzum

[Resolvido] http_accept_language

Recommended Posts

Conhecendo as línguagens seleccionadas no navegador de nossos visitantes pode ser uma muito importante que possamos utilizar dados para redirecionar o usuário para uma página específica no idioma correspondente, ou para exibir informações específicas direcionadas para o usuário (como, por exemplo, o anúncio mais adequado) .

 

Request.ServerVariables("HTTP_ACCEPT_LANGUAGE")

 

Na tabela abaixo temos usar um script para identificar as languages selecionada em seu navegador.

 

<% 
Languages=split (Request.ServerVariables("HTTP_ACCEPT_LANGUAGE"),",")   
Numberoflanguages=ubound(Languages) 

response.write("Os idiomas selecionados em seu navegador:<BR>")  
for i=0 to Numberoflanguages 
 if Instr(Languages(i),";") then  
  Languages(i)=Mid(TheLanguages(i), 1,Instr(Languages(i),";")-1) 
  end if 
	WriteLanguage(Languages(i)) 
	response.write("<BR>")  
next 
%> 
  

<%  
Sub WriteLanguage(Languagetowrite) 

Select Case Languagetowrite  
Case "af" 
  Response.write("Afrikaans") 
Case "sq" 
  Response.write("Albanian") 
Case "eu" 
  Response.write("Basque") 
Case "bg" 
  Response.write("Bulgarian") 
Case "be" 
  Response.write("Byelorussian") 
Case "ca" 
  Response.write("Catalan") 
Case "zh" 
  Response.write("Chinese") 
Case "zh-cn" 
  Response.write("Chinese/China") 
Case "zh-tw" 
  Response.write("Chinese/Taiwan") 
Case "zh-hk" 
  Response.write("Chinese/Hong Kong") 
Case "zh-sg" 
  Response.write("Chinese/singapore") 
Case "hr" 
  Response.write("Croatian") 
Case "cs" 
  Response.write("Czech") 
Case "da" 
  Response.write("Danish") 
Case "nl" 
  Response.write("Dutch") 
Case "nl-be" 
  Response.write("Dutch/Belgium") 
Case "en" 
  Response.write("English") 
Case "en-gb" 
  Response.write("English/United Kingdom") 
Case "en-us" 
  Response.write("English/United Satates") 
Case "en-au" 
  Response.write("English/Australian") 
Case "en-ca" 
  Response.write("English/Canada") 
Case "en-nz" 
  Response.write("English/New Zealand") 
Case "en-ie" 
  Response.write("English/Ireland") 
Case "en-za" 
  Response.write("English/South Africa") 
Case "en-jm" 
  Response.write("English/Jamaica") 
Case "en-bz" 
  Response.write("English/Belize") 
Case "en-tt" 
  Response.write("English/Trinidad") 
Case "et" 
  Response.write("Estonian") 
Case "fo" 
  Response.write("Faeroese") 
Case "fa" 
  Response.write("Farsi") 
Case "fi" 
  Response.write("Finnish") 
Case "fr" 
  Response.write("French") 
Case "fr-be" 
  Response.write("French/Belgium") 
Case "fr-fr" 
  Response.write("French/France") 
Case "fr-ch" 
  Response.write("French/Switzerland") 
Case "fr-ca" 
  Response.write("French/Canada") 
Case "fr-lu" 
  Response.write("French/Luxembourg") 
Case "gd" 
  Response.write("Gaelic") 
Case "gl" 
  Response.write("Galician") 
Case "de" 
  Response.write("German") 
Case "de-at" 
  Response.write("German/Austria") 
Case "de-de" 
  Response.write("German/Germany") 
Case "de-ch" 
  Response.write("German/Switzerland") 
Case "de-lu" 
  Response.write("German/Luxembourg") 
Case "de-li" 
  Response.write("German/Liechtenstein") 
Case "el" 
  Response.write("Greek") 
Case "hi" 
  Response.write("Hindi") 
Case "hu" 
  Response.write("Hungarian") 
Case "is" 
  Response.write("Icelandic") 
Case "id" 
  Response.write("Indonesian") 
Case "in" 
  Response.write("Indonesian") 
Case "ga" 
  Response.write("Irish") 
Case "it" 
  Response.write("Italian") 
Case "it-ch" 
  Response.write("Italian/ Switzerland") 
Case "ja" 
  Response.write("Japanese") 
Case "ko" 
  Response.write("Korean") 
Case "lv" 
  Response.write("Latvian") 
Case "lt" 
  Response.write("Lithuanian") 
Case "mk" 
  Response.write("Macedonian") 
Case "ms" 
  Response.write("Malaysian") 
Case "mt" 
  Response.write("Maltese") 
Case "no" 
  Response.write("Norwegian") 
Case "pl" 
  Response.write("Polish") 
Case "pt" 
  Response.write("Portuguese") 
Case "pt-br" 
  Response.write("Portuguese/Brazil") 
Case "rm" 
  Response.write("Rhaeto-Romanic") 
Case "ro" 
  Response.write("Romanian") 
Case "ro-mo" 
  Response.write("Romanian/Moldavia") 
Case "ru" 
  Response.write("Russian") 
Case "ru-mo" 
  Response.write("Russian /Moldavia") 
Case "gd" 
  Response.write("Scots Gaelic") 
Case "sr" 
  Response.write("Serbian") 
Case "sk" 
  Response.write("Slovack") 
Case "sl" 
  Response.write("Slovenian") 
Case "sb" 
  Response.write("Sorbian") 
Case "es" 
  Response.write("Spanish") 
Case "es-do" 
  Response.write("Spanish") 
Case "es-ar" 
  Response.write("Spanish/Argentina") 
Case "es-co" 
  Response.write("Spanish/Colombia") 
Case "es-mx" 
  Response.write("Spanish/Mexico") 
Case "es-es" 
  Response.write("Spanish/Spain") 
Case "es-gt" 
  Response.write("Spanish/Guatemala") 
Case "es-cr" 
  Response.write("Spanish/Costa Rica") 
Case "es-pa" 
  Response.write("Spanish/Panama") 
Case "es-ve" 
  Response.write("Spanish/Venezuela") 
Case "es-pe" 
  Response.write("Spanish/Peru") 
Case "es-ec" 
  Response.write("Spanish/Ecuador") 
Case "es-cl" 
  Response.write("Spanish/Chile") 
Case "es-uy" 
  Response.write("Spanish/Uruguay") 
Case "es-py" 
  Response.write("Spanish/Paraguay") 
Case "es-bo" 
  Response.write("Spanish/Bolivia") 
Case "es-sv" 
  Response.write("Spanish/El salvador") 
Case "es-hn" 
  Response.write("Spanish/Honduras") 
Case "es-ni" 
  Response.write("Spanish/Nicaragua") 
Case "es-pr" 
  Response.write("Spanish/Puerto Rico") 
Case "sx" 
  Response.write("Sutu") 
Case "sv" 
  Response.write("Swedish") 
Case "sv-fi" 
  Response.write("Swedish/Findland") 
Case "ts" 
  Response.write("Thai") 
Case "tn" 
  Response.write("Tswana") 
Case "tr" 
  Response.write("Turkish") 
Case "uk" 
  Response.write("Ukrainian") 
Case "ur" 
  Response.write("Urdu") 
Case "vi" 
  Response.write("Vietnamese") 
Case "xh" 
  Response.write("Xshosa") 
Case "ji" 
  Response.write("Yiddish") 
Case "zu" 
  Response.write("Zulu") 
Case Else  
  Response.write (Languagetowrite & ": Language não identificada") 
End Select 

End Sub 
%>

 

Na tabela abaixo são apresentados os diferentes valores para Request.ServerVariables ( "HTTP_ACCEPT_LANGUAGE"), obtido a partir de visitantes para a minha home page.

 

Valres para Request.ServerVariables("HTTP_ACCEPT_LANGUAGE")

obtido a partir de visitantes para a home page:

 

84 en-us  
9 en-gb 
9 de 
7 nl 
5 en-us,zh;q=0.5 
4 es 
4 en 
3 nl-be 
3 it 
3 eu,en,es 
3 en-za 
3 en-us,el;q=0.5 
3 en-ie 
2 pt-br 
2 fr-ca 
2 es-mx 
2 en-us,hi;q=0.5 
1 zu;q=0.3 
1 th 
1 sv 
1 sl 
1 ro 
1 pl 
1 in 
1 he 
1 fr-ch 
1 fr 
1 en-ca 
1 en-au 
1 en;q=0.7, 
1 en,fr-CA 
1 de-ch 
1 bg

 

Redirecionando visitantes a páginas específicas

 

Vamos supor que temos as nossas informações em Inglês e Espanhol, e vamos também supor espanhol não é a língua mais utilizada pelos nossos visitantes (o nosso idioma padrão será o Inglês)

 

Ao utilizar Request.ServerVariables ( "HTTP_ACCEPT_LANGUAGE"), poderemos saber se o espanhol é um dos idiomas selecionados no navegador do nosso visitante. Se assim for, poderemos considerar a situações:

 

O espanhol é a primeira língua - Request.ServerVariables("HTTP_ACCEPT_LANGUAGE") value is "es,en")

O espanhol não é a primeira língua (Request.ServerVariables("HTTP_ACCEPT_LANGUAGE") value is "en,es")

 

Podemos considerar também outras duas situações:

Se espanhol está na lista, o usuário sabe espanhol

O usuário sabe espanhol somente quando o espanhol é o primeiro na lista Langauge

Opção 1 (Espanhol Se estiver na lista, irá redirecionar o usuário para a página em espanhol)

 

defauldpage.asp

 

<% if Instr(1,Request.ServerVariables("HTTP_ACCEPT_LANGUAGE"), "es",1)>0 then

response.redirect("spanishpage.asp")

end if %>

<html>

<title>Página em Inglês, língua default</title>

<body>

 

Página em Inglês, língua default

 

</body>

</html>

 

 

Na linha 1, vamos verificar se substring "es" está incluído no valor para Request.ServerVariables( "HTTP_ACCEPT_LANGUAGE"). A nossa comparação será iniciada em caráter número 1 da string.

 

Se a comparação for verdade, o usuário será redirecionado para a página em espanhol (linha 2). Quando redirecionamento é realizado, o resto das informações na página não é transferido para o navegador. Se a comparação for falsa, a informação na página envia para o cliente.

 

Opção 2 (espanhol está na lista, mas o usuário só sabe quando essa língua espanhola é o primeiro na lista. Se for assim , vamos redirecionar o usuário para a página em espanhol)

 

 

defauldpage.asp

 

<% if Mid(Request.ServerVariables("HTTP_ACCEPT_LANGUAGE"), 1,2)="es" then 
response.redirect("spanishpage.asp") 
end if %> 
<html>  
<title>Página em Inglês, língua default</title>  
<body>  

 Página em Inglês, língua default

 </body>  
 </html>

 

Na linha 1, vamos obter as duas primeiras posições para Request.ServerVariables ( "HTTP_ACCEPT_LANGUAGE") e vamos verificar se o seu valor é o "es".

 

Neste exemplo,vamos supor que, caso espanhol esteja na lista de Language selecionada no navegador , então exibiremos um anúncio de texto em espanhol. No script abaixo vamos mostrar anúncios:

 

languagespecificada.asp

<html>  
<title></title>  
<body>  
<% if Instr(1,Request.ServerVariables("HTTP_ACCEPT_LANGUAGE"), "es",1)>0 then %> 

<a href=http://www.link1.com><img scr=spanishad.gif></a> 

<% else %> 

<a href=http://www.link2.com><img scr=englishad.gif></a> 

<% end if %> 
Sua pagina
 </body>  
 </html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.