Alguem poderia me ajudar no processo de internacionalização com jsf…
Criei um arquivo com as linguagens que minha aplicação ira usar, mas quando eu altero o idioma no browser a aplicação não esta mudando o idioma… Alguem sabe por que.
----> Exemplo meu idioma padrão é o pt_BR(portugues Brasil) e quando mudo para en(ingles) os textos que deverião mudar para o idioma selecionado no browser continua com o meu padrao(pt_BR).
Se eu estiver fazendo algo errado alguem pode me passar o processo
correto de Internacionalização com JSF.
Não necessariamente vc precisa mudar o idioma do SO para mudar o idioma da sua aplicação. Você pode fazer requisições da sua JSP ao Servlet, enviando como parâmetro o resource boundle (pt_BR, en_US…) que informará o idioma a ser modificado em sua aplicação.
Nunca trabalhei com esse framework, mas creio que não há muita diferença nesse caso. :oops:
[quote=vskuroda]Para fazer os teste de internacionalização vc deve ir no sistema do seu SO e em Opções regionais na aba geral vc deve mudar a localidade…
blz
Caso tiver alguma duvida eh so falar…
atenciosamente Valter[/quote]
vskuroda, eu tenho uma dúvida: É possível uma aplicação web (JSP) reconhecer o idioma do cliente utilizando as tags de JSTL ? Porque até hoje só trabalhei a internacionalização a partir da escolha do usuário na própria página.
Olá pessoal,
bom a minha experiência com internacionalização em JSF é o seguinte, eu criei os arquivos de propriedades, Messages.properties, que é o arquivo base e os arquivos Messages_pt.properties e Messages_es.properties, para portugues e espanhol. Também pode ser colocado o código do país Messages_pt_BR.properties.
Depois de feito isso é necessário disponibilizar os arquivos para a aplicação JSF, o que pode ser feito de duas maneiras, uma delas é carregando na página JSP com a tag
<f:loadBundle basename=“Messages” var=“msgs”/>,
então para utilizá-lo basta referenciar msgs nos componentes:
<h:outputText value="#{msgs.welcome}"/>, onde welcome é uma chave definida nos arquivos de propriedades.
A outra maneira de fazer é registrando o Bundle no arquivo de configurações faces-config.xml. Isso é necessário para a internacionalização de mensagens de erro de conversores e validadores, mas até agora não consegui fazer isso funcionar, se alguém puder me ajudar agradeço.
Para testar basta mudar a opção de idioma no browser, mas é necessário fechar o browser e abrir denovo para aparece o novo idioma.
Além disso as locales suportadas devem estar definidas no arquivo de configuração
eneiascs, ainda não utilizei o JSF. Essas tags que vc apresentou acima são próprias desse framework?
Existem tags JSTL para fazer internacionalização mas ainda não consegui utilizá-las. As mesmas são definidas pela URI “http://java.sun.com/jstl-el/fmt” com o prefixo “fmt”. Listo abaixo:
<fmt:setLocale value="string_da_localidade" scope="escopo" variant="string_variant" />
<fmt:bundle basename="nome_básico_do_resource_bundle" prefix="prefixo da chave da mensagem">
conteúdo do corpo
</fmt:bundle>
<fmt:setBundle basename="nome_básico_do_resource_bundle" var="" scope="" />
<fmt:message key="chave_da_mensagem" bundle="" var="" scope="" />
<fmt:message bundle="" var="" scope="">
chave_da_mensagem
ações_fmt:param_aninhadas
</fmt:message>
<fmt:param name="">
valor_do_parâmetro
</fmt:param>
Gostaria de saber se com essas tags é possível reconhecer o idioma do cliente.
Pessoal, bom dia!
Eu fiz a internacionalização em um projeto Java e programei uma funcionalidade para trocar o Locale por meio de um Managed Bean de sessão.
Esta funcionando, porém quando eu troco de página a mesma vem no idioma padrão.
Ou seja, na pagina anterior eu troquei para inglês e na seguinte o idioma vem em português.
Alguém sabe como alterar o idioma permanentemente?
Estou usando JSF 2.
Comando no managed bean
FacesContext.getCurrentInstance().getViewRoot().setLocale(“en”, “US”);