Ir para conteúdo

POWERED BY:

Arquivado

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

kania

Script para pegar o idioma do usuário

Recommended Posts

Olá pessoal.

 

Bom estou deixando aqui uma colaboração, não sei se o forúm já tem, mas não achei, então vai.

Este script server para retornar o idioma do visitante do site.

Para isso utilizo a função que volta qual o seu LCID (Locale ID - Identificação de Localidade) - a função GetLocale()

Muito bom quando temos sites em multi idiomas e queremos facilitar a vida do usuário já colocando o site dentro do idioma dele na hora que ele acessa ou retorna ao site.

Fica ai minha contribuição,caso alguém queira melhorá-la, fique a vontade.

 

<%
'=================================
' SCRIPT PARA APRESENTAR O IDIOMA
' DO VISITANTE DO SEU SITE
' CRIAÇÃO: JORGE KANIA
' DATA: 17/07/2010
' EMAIL JORGEKANIA@HOTMAIL.COM
'=================================

'pegamos o idioma através do GetLocale()
Idioma = GetLocale()

'montamos um selec case para verificar LCID
'uma vez com o LCID retornamos em "MostraIdioma" o idioma
Select Case Idioma
	Case "1078"
		MostraIdioma = "Afrikaans"
	Case "1052"
		MostraIdioma = "Albanian"
	Case "14337"
		MostraIdioma = "Arabic - U.A.E."
	Case "15361"
		MostraIdioma = "Arabic - Bahrain"
	Case "5121"
		MostraIdioma = "Arabic - Algeria"
	Case "3073"
		MostraIdioma = "Arabic - Egypt"
	Case "2049"
		MostraIdioma = "Arabic - Iraq"
	Case "11265"
		MostraIdioma = "Arabic - Jordan"
	Case "13313"
		MostraIdioma = "Arabic - Kuwait"
	Case "12289"
		MostraIdioma = "Arabic - Lebanon"
	Case "4097"
		MostraIdioma = "Arabic - Libya"
	Case "6145"
		MostraIdioma = "Arabic - Morocco"
	Case "8193"
		MostraIdioma = "Arabic - Oman"
	Case "16385"
		MostraIdioma = "Arabic - Qatar"
	Case "1025"
		MostraIdioma = "Arabic - Saudia Arabia"
	Case "10241"
		MostraIdioma = "Arabic - Syria"
	Case "7169"
		MostraIdioma = "Arabic - Tunisia"
	Case "9217"
		MostraIdioma = "Arabic - Yemen"
	Case "1069"
		MostraIdioma = "Basque"
	Case "1059"
		MostraIdioma = "Belarusian"
	Case "1026"
		MostraIdioma = "Bulgarian"
	Case "1027"
		MostraIdioma = "Catalan"
	Case "4"
		MostraIdioma = "Chinese"
	Case "2052"
		MostraIdioma = "Chinese - PRC"
	Case "3076"
		MostraIdioma = "Chinese - Hong Kong"
	Case "4100"
		MostraIdioma = "Chinese - Singapore"
	Case "1028"
		MostraIdioma = "Chinese - Taiwan"
	Case "1050"
		MostraIdioma = "Croatian"
	Case "1029"
		MostraIdioma = "Czech"
	Case "1030"
		MostraIdioma = "Danish"
	Case "1043"
		MostraIdioma = "Dutch"
	Case "2067"
		MostraIdioma = "Dutch - Belgium"
	Case "9"
		MostraIdioma = "English"
	Case "3081"
		MostraIdioma = "English - Australia"
	Case "10249"
		MostraIdioma = "English - Belize"
	Case "4105"
		MostraIdioma = "English - Canada"
	Case "6153"
		MostraIdioma = "English - Ireland"
	Case "8201"
		MostraIdioma = "English - Jamaica"
	Case "5129"
		MostraIdioma = "English - New Zealand"
	Case "7177"
		MostraIdioma = "English - South Africa"
	Case "11273"
		MostraIdioma = "English - Trinidad"
	Case "2057"
		MostraIdioma = "English - United Kingdom"
	Case "1033"
		MostraIdioma = "English - United States"
	Case "1061"
		MostraIdioma = "Estonian"
	Case "1065"
		MostraIdioma = "Farsi"
	Case "1035"
		MostraIdioma = "Finnish"
	Case "1080"
		MostraIdioma = "Faeroese"
	Case "1036"
		MostraIdioma = "French - Standard"
	Case "2060"
		MostraIdioma = "French - Belgium"
	Case "3084"
		MostraIdioma = "French - Canada"
	Case "5132"
		MostraIdioma = "French - Luxembourg"
	Case "4108"
		MostraIdioma = "French - Switzerland"
	Case "1084"
		MostraIdioma = "Gaelic - Scotland"
	Case "1031"
		MostraIdioma = "German - Standard"
	Case "3079"
		MostraIdioma = "German - Austrian"
	Case "5127"
		MostraIdioma = "German - Lichtenstein"
	Case "4103"
		MostraIdioma = "German - Luxembourg"
	Case "2055"
		MostraIdioma = "German - Switzerland"
	Case "1032"
		MostraIdioma = "Greek"
	Case "1037"
		MostraIdioma = "Hebrew"
	Case "1081"
		MostraIdioma = "Hindi"
	Case "1038"
		MostraIdioma = "Hungarian"
	Case "1039"
		MostraIdioma = "Icelandic"
	Case "1057"
		MostraIdioma = "Indonesian"
	Case "1040"
		MostraIdioma = "Italian - Standard"
	Case "2064"
		MostraIdioma = "Italian - Switzerland"
	Case "1041"
		MostraIdioma = "Japanese"
	Case "1042"
		MostraIdioma = "Korean"
	Case "1062"
		MostraIdioma = "Latvian"
	Case "1063"
		MostraIdioma = "Lithuanian"
	Case "1071"
		MostraIdioma = "Macedonian"
	Case "1086"
		MostraIdioma = "Malay - Malaysia"
	Case "1082"
		MostraIdioma = "Maltese"
	Case "1044"
		MostraIdioma = "Norwegian - Bokmål"
	Case "1045"
		MostraIdioma = "Polish"
	Case "2070"
		MostraIdioma = "Portuguese - Standard"
	Case "1046"
		MostraIdioma = "Portuguese - Brasil"
	Case "1047"
		MostraIdioma = "Raeto-Romance"
	Case "1048"
		MostraIdioma = "Romanian"
	Case "2072"
		MostraIdioma = "Romanian - Moldov "
	Case "1049"
		MostraIdioma = "Russian"
	Case "2073"
		MostraIdioma = "Russian - Moldova"
	Case "3098"
		MostraIdioma = "Serbian - Cyrillic"
	Case "1074"
		MostraIdioma = "Setsuana"
	Case "1060"
		MostraIdioma = "Slovenian"
	Case "1051"
		MostraIdioma = "Slovak"
	Case "1070"
		MostraIdioma = "Sorbian"
	Case "1034"
		MostraIdioma = "Spanish - Standard"
	Case "11274"
		MostraIdioma = "Spanish - Argentina"
	Case "16394"
		MostraIdioma = "Spanish - Bolivia"
	Case "13322"
		MostraIdioma = "Spanish - Chile"
	Case "9226"
		MostraIdioma = "Spanish - Columbia"
	Case "5130"
		MostraIdioma = "Spanish - Costa Rica"
	Case "7178"
		MostraIdioma = "Spanish - Dominican Republic"
	Case "12298"
		MostraIdioma = "Spanish - Ecuador"
	Case "4106"
		MostraIdioma = "Spanish - Guatemala"
	Case "18442"
		MostraIdioma = "Spanish - Honduras"
	Case "2058"
		MostraIdioma = "Spanish - Mexico"
	Case "19466"
		MostraIdioma = "Spanish - Nicaragua"
	Case "6154"
		MostraIdioma = "Spanish - Panama"
	Case "10250"
		MostraIdioma = "Spanish - Peru"
	Case "20490"
		MostraIdioma = "Spanish - Puerto Rico"
	Case "15370"
		MostraIdioma = "Spanish - Paraguay"
	Case "17418"
		MostraIdioma = "Spanish - El Salvador"
	Case "14346"
		MostraIdioma = "Spanish - Uruguay"
	Case "8202"
		MostraIdioma = "Spanish - Venezuela"
	Case "1072"
		MostraIdioma = "Sutu"
	Case "1053"
		MostraIdioma = "Swedish"
	Case "2077"
		MostraIdioma = "Swedish - Finland"
	Case "1054"
		MostraIdioma = "Thai"
	Case "1055"
		MostraIdioma = "Turkish"
	Case "1073"
		MostraIdioma = "Tsonga"
	Case "1058"
		MostraIdioma = "Ukranian"
	Case "1056"
		MostraIdioma = "Urdu - Pakistan"
	Case "1066"
		MostraIdioma = "Vietnamese"
	Case "1076"
		MostraIdioma = "Xhosa"
	Case "1085"
		MostraIdioma = "Yiddish "
	Case "1077"
		MostraIdioma = "Zulu"
End Select

'imprimimos o idioma na tela
'também é possivel inseri-lo e banco de dados ou
'fazer um cookie para usar depois, fica a critéio de cada um
Response.Write(MostraIdioma)
%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

pegava com Request.ServerVariables("HTTP_ACCEPT_LANGUAGE")

 

se o seu funcionar em todos os casos vai ser PERFEITO, muito melhor HTTP_ACCEPT_LANGUAGE

 

 

 

 

ja fez testes em quais casos?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Legal, só vou redirecionar ao local correto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

<P>o Session.LCID não é setado no server?

</P><P>se meu padrão for Session.LCID = (1046), nao vai retornar sempre pt-br mesmo se o visitante for de outro local?</P>

Compartilhar este post


Link para o post
Compartilhar em outros sites

desito, o GetLocale() é setado no servidor, mas é interessante de vermos porque neste caso ele pode não trazer a informação incorreta, vou verificar.

 

veja:

 

Função: GetLocale ( )

 

Devolve o valor do ID Local

Este Local é a referência à linguagem do servidor country/region.O Locale determina coisas como o keyboard layout, alphabetic sort order, assim como o date, time, number, e o formato currency.

http://www.supertrafego.com.br/asp_GetLocale.asp

 

desisto, o problema que verifiquei do HTTP_ACCEPT_LANGUAGE é que ele traz somente os idiomas aceitos pelo navegador, e não de onde ele esta efetuando o acesso, na verdade nem no escript que eu criei vai dar para pegar o idioma de onde o cara esta acessando, só seria possível se tivéssemos um banco com todos os países e pudéssemos referenciá-los aos ips de conexão, ai é certeza que funciona, porque pego o IP do cara comparo com o banco e vejo o idioma dele, sei que tem um banco ai na net que diz ter todos estes ips referenciados ao seus países, mas não sei se funciona, ande testando e não me pareceu muito confiável.

 

Moro em Curitiba e tentei disse que eu estava cessando de Ponta Grossa, uma cidade a 120Km de Curitiba.

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.