JSF Internacionalização

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.

Falouuu.
:?: :arrow: :idea:

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

valeu kra funcionou!!!

:thumbup:

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. :slight_smile:

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. :frowning:

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

en pt es de

Falou

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.

Será que alguém poderia ajudar-me? :oops:

a tag f:view tem um parametro locale, tu pode usar ele para alterar o locale da página

urubatan, essa tag que vc citou acima é de JSTL? :roll:

NOPS, é a tag raiz de qualquer página JSF

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”);

Agradeço.