Internacionalização

Bom Dia galera, tranquilo?

To com o seguinte problema, estou desenvolvendo uma aplicação com jsf + hibernate + primefaces, no meu formulário tenho um combo referente ao pais. Como eu posso internacionalizar ele?

Ou seja tem alguma maneira de aplicar internacionalização digamos “dinâmica”, ou teria que escrever o nome de cada pais no properties mesmo?

Agradeço a ajuda de todos

daria pra guardar no banco o nome dos países e usar o locale (ex: BR) como chave.
caso contrário terá que escrever nos properties mesmo

Muito Obrigado heatcold,

eu fiz da seguinte forma:

public List<Pais> getPaises() {
		
		UIViewRoot viewRoot = FacesContext.getCurrentInstance().getViewRoot();
		Locale currentLocale = viewRoot.getLocale();
		
		if(currentLocale.getLanguage().equals(new Locale("pt").getLanguage())){
			PaisRepository repository = new PaisRepository(entityManager);
			this.paises = repository.getPaises();
		}else if(currentLocale.getLanguage().equals(new Locale("en").getLanguage())){
			PaisRepository repository = new PaisRepository(entityManager);
			this.paises = repository.getPaisesEN();
		}else if(currentLocale.getLanguage().equals(new Locale("es").getLanguage())){
			PaisRepository repository = new PaisRepository(entityManager);
			this.paises = repository.getPaisesES();
		}
		
		return paises;
	}

Vlw!!

[quote=heatcold]daria pra guardar no banco o nome dos países e usar o locale (ex: BR) como chave.
caso contrário terá que escrever nos properties mesmo[/quote]

Achei interessante a proposta do banco mas uma dúvida como ele usaria o locale no banco para internacionalização, as
mensagens seriam alterada somente informando o locale, sem ter um properties ou repositorio com as mensagens?

Valeu.

Caso tenha interesse com properties:

http://thiagoprocaci.blogspot.com/2009/07/internacionalizacao-de-mensagens-com.html

Cara, eu faria o seguinte:
Criaria um .propertie para cada pais e um padrão para ser usado. (O qual a aplicação irá apontar)

Quando o cliente selecionar o País, você escreve no padrão os dados .propertie do país escolhido através de um stream.
Assim a aplicação irá utilizar as chaves do país escolhido, sacou?
Ao alterar o pais basta alterar o arquivo padrão para os dados do novo .properties selecionado.

Sacou?

Se achar uma idéia melhor, posta aew pra gente aprender também.
Abraços.

realmente o padrão é ter um properties para cada país… a utilização do banco nesse caso seria uma opção, apenas.

só um comentário, acredito que ficaria melhor assim:

PaisRepository repository = new PaisRepository(entityManager); // ex: languageCode = "BR" this.paises = repository.getPaises(languageCode);
caso contrário, você terá que modificar o código, sempre que o suporte a um país for adicionado.

PS:

Escrever em um .properties em runtime não é uma prática comum. Geralmente nos properties ficam informações estáticas.

Pois é, depois que escrevi o código, eu fui ver, que tava escrevendo d+ ^^’

eu estava pensando em acrescentar uma coluna no banco referente a linguagem saca.

Essa parte aqui:

[quote]Quando o cliente selecionar o País, você escreve no padrão os dados .propertie do país escolhido através de um stream.
Assim a aplicação irá utilizar as chaves do país escolhido, sacou?
Ao alterar o pais basta alterar o arquivo padrão para os dados do novo .properties selecionado.

Sacou? [/quote]

Eu até entendi, só que to meio voando como implementar ele ^^’