criei um projeto web e adicionei internacionalização, no meu notebook o texto do meu site aparece em pt br, se eu acesso do servidor aparece em inglês (idioma do servidor).
O meu problema é que eu quero que o texto apareça de acordo com o pc do usuário, na verdade eu programei para que isso acontecesse, mas não está.
Não precisa do “.getDefault()” após o “.getLocale()”
Verifique se os browsers testados realmente estão usando o locale que acha que estão.
Boa sorte.
Abraços.
ccefetpb
Obrigado por responder. Eu já tentei assim. Do jeito que vc disse, fica sempre em inglês.
jyoshiriro
Já depurou somente a parte request.getLocale() para ver se aparece o locale real do cliente?
ccefetpb
Sim, se eu uso getLocale o idioma que aparece no debug é US (inglês). se eu uso getDefault o idioma que aparece é BR (PORTUGUÊS).
ccefetpb
O problema é que mesmo usando getDefault o texto no servidor só aparece em inglÊs.
:\
jyoshiriro
Então… você não tem como testar o que acontece no teu servidor?
E o “.getLocale()” é o correto. O “.getDefault()” busca não o locale que o cliente está de fato usando e sim o locale padrão do mesmo. Por exemplo: Se instalou o FF em português brasileiro mas foi lá nas configurações e pediu para as solicitações serem enviadas em ‘en’. O '.getLocale()" vai retornar ‘en’ mas o ‘.getDefault()’ retornará ‘pt_BR’.
E não está faltando nenhum arquivo de texto na aplicação no servidor que está dando esse “bug”?
ccefetpb
Não tenho como testar o que está acontecendo no servidor :.
mas se o getDefault na minha máquina exibe em pt br e o getLocale exibe em inglÊs eu esperaria o mesmo comportamento no servidor.
Só que o getDefault continua exibindo em inglês.
Não está faltando nenhum arquivo no properties, pois se fosse esse o caso nem renderizava a página.
jyoshiriro
Se quando você testa localmente o “getLocale()” tá retornando inglês é porque seu navegador está enviando a solicitação “em inglês”. Sebes como ver/configurar isso no navegador que está usando para testes?
ccefetpb
Não, não sei, mas vê só o que eu quero capturar é o idioma do navegador do cliente. Imagino, que 99% das pessoas não configura o idioma das requisições, mas seleciona o idioma do navegador de acordo com seu próprio.
Há outra forma de capturar essa informação?
jyoshiriro
Então, amigo.
Vai ver que, por algum motivo, o navegador que você está usando está configurado para enviar a requisição usando “en”, entendeu?
Tentou fazer o teste com outros navegadores pra ver se para todos mostra em inglês? Pediu pra pessoas de outros micros testarem?
A forma de capturar essa informação é somente essa. A “outra” é “POG”: passar uma parâmetro de requisição dizendo seu próprio idioma.
ccefetpb
Já cara, já pedi para muitos amigos testarem, em diferentes pcs, diferentes navegadores, diferentes SOs. Sinceramente, eu acho que está certo, mas não está funcionando…
jyoshiriro
Olá.
Amigo, criei um Servlet simples e joguei num servidor linux em inglês.