Ir para conteúdo
Fórum Script Brasil
  • 0

Idioma do Navegador


Rafael Spilki

Pergunta

Bom dia a todos!

Estou desenvolvendo um site aqui que inicialmente terá dois idiomas, Inglês e Português, mas posteriormente terá outros idiomas também como Espanhol, Francês e etc...

O que eu estou tentando fazer é criar uma rotina para redirecionar automaticamente o visitante do site para a página inicial referente ao seu idioma... O problema é que sei que muitas vezes isso é meio falho, por isso estou estudando a melhor forma de fazer isso dar o mais certo possível.

Pergunto: Alguém já tentou fazer isso verificando o idioma do browser? Funcionou legal?

Conhecem alguma outra maneira?

Sei que os scripts abaixo me retornarão os idiomas do browser:

<!-- no IE
document.write(navigator.userLanguage)
//-->

<!-- no FF e Demais
document.write(navigator.language)
//-->

Pensei em fazer isso da seguinte forma:

1) verifico se o navegador é IE ou não, ou seja, se for IE vai pra rotina 1 se não for vai pra rotina 2;

2) nas rotinas, tanto 1 quanto a 2 faço uma condicional simples para verificar se é igual a pt-br (IE) ou pt-BR (FF...) e se true dou um redirect pra um página já se false dou um redirect pra outra página...

O problema que eu vejo é que muitos Brasileiros, por exemplo, podem estar utilizando o IE em Inglês... nesse caso seriam redirecionados para a página inicial em inglês... o que não é muito bom... O que vocês acham?

Por range de IP's, que foi a minha primeira ideia, acho que não dará certo de forma alguma... fiz alguns testes aqui e a coisa não rolou direito...

[]'s

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Tudo bem, Rafael ?

Não mexo muito com essa parte de vários idiomas, mas creio que seja possível configurar o navegador para modificar o idioma. Outra coisa: eu acho melhor utilizar linguagem server-side para configurações de idioma. Dessa forma é fácil salvar os dados em sessões, interagir com banco de dados, etc.

Link para o comentário
Compartilhar em outros sites

  • 0

Grande Jonathan...

Cara, tudo certinho por aqui, e com você?

Na verdade eu não quero modificar idioma nenhum, quero apenas verificar qual o idioma do usuário que está acessando o site para dar um redirect automático, ou seja, no fim será uma condicional simples em asp mesmo do tipo:

if idioma = "pt-br" then
response.redirect ("index.asp")
elseif idioma = "en" then
response.redirect ("index_en.asp")
'elseif...
'...
end if

Mas então, minha dificuldade é exatamente em descobrir o idioma do usuário... Usando variáveis do servidor isso não funciona como eu gostaria, por isso pensei em verificar o idioma pelo lado cliente e depois criar uma rotina em asp como o modelo acima.

O que eu queria mesmo era conseguir definir um range de ip's para conseguir descobrir o que é ip americano, o que é ip brasileiro e assim por diante... mas depois de algumas horas de estudos acredito que isso não seja possível, ou pelo menos, certamente também não é 100% isento de erros, apesar de que acredito que seria a melhor forma...

Enfim...

Continuo estudando por aqui e se rolar mais alguma dica sempre ajuda!

Editado por Rafael Spilki
Link para o comentário
Compartilhar em outros sites

  • 0

Então rapaz como você mesmo disse nenhuma das duas formas é segura tanto via Browser quanto via IP, porém se for para usar uma eu aconselho a usar a via Browser mesmo pois é mais simples, rápida e barata, um dos problemas da verifcação por IP é onde conseguir banco de dados confiaveis ou atualizados pois em geral as provedoras fazem rodízios de IP's anualmentes as vezes nem sempre o IP é realmente daquele região e por ai vai ...

O problema do Browser como você disse é falhar na verificação exata da língua pois as vezes ele não informa ou não informa direito, mas não há muito o que se fazer no seu caso (e meu quando uso) defino uma lingua padrão como Inglês e caso as verificações falhem a pessoa cai no Inglês ... como suporte eu coloco os botões de outras linguas ...

Com base nos meus teste desses últimos anos um script em ASP (eca! hehe) para você seria +/- assim:

<%
Dim LinguaBrowser

' -- Pega a Lingua do Browser
' -- Usa LCASE para não aver incompatibilidade

LinguaBrowser = LCase(Request.ServerVariables("HTTP_ACCEPT_LANGUAGE"))

' -- Busca a Lingua de Acordo com a Prioridade o IF
' -- Pois alguns browser são multi-linguas tipo: pt-br,pt;q=0.8,en-us;q=0.6,en;q=0.4

If (InStr(LinguaBrowser, "pt-br") OR InStr(LinguaBrowser, "pt-pt") OR InStr(LinguaBrowser, "pt")) Then

 ' -- Redireciona para a Página de Português "Genêrica"
 Response.Redirect("index_pt.asp")

Else If (InStr(LinguaBrowser, "es-es") OR InStr(LinguaBrowser, "es-ar") OR InStr(LinguaBrowser, "es-mx") OR InStr(LinguaBrowser, "es")) Then

 ' -- Redireciona para a Página de Espanhol "Genêrica"
 Response.Redirect("index_es.asp")

Else

 ' -- Se todas as outras Linguas falhar entra no Inglês como Padrão
 ' -- Até porque dificilmente o site terá todas as linguas do mundo
 ' -- Redireciona para a Página de Inglês "Genêrica"
 Response.Redirect("index_en.asp")

End If

Response.End()
%>

Boa Sorte!

Editado por SK15
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...