Boa noite galera, :-o
Gostaria de saber se existe algum metodo em JSF que eu consiga pegar todas as linguagens(arquivos de propriedade) que minha aplicação tem, e quando eu adcionar uma nova marca no faces-config ela ja apareça neste metodo.
Desde já, Obrigado.
Tem como vc detalhar mais ??? 
Eu consegui galera !!
Mas vou explicar melhor, quero uma aplicação que me mostre todas os idiomas que ela tem, que para isso eu apenas crie um arquivo de propriedade e depois mepei no faces-config, sem que eu n mecha em nada da pagina JSF.
Bem, eu fiz assim:
Pagina JSF …
<h:form>
<h:selectOneMenu value="#{aplicacaoMB.langCode}">
<f:selectItems value="#{aplicacaoMB.langCodes}"/>
</h:selectOneMenu>
</h:form>
Bean Gerenciado, metodo que capitura todas os idiomas …
[code]/*
- To change this template, choose Tools | Templates
- and open the template in the editor.
*/
package beans;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import javax.faces.application.Application;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.context.FacesContext;
import javax.faces.model.SelectItem;
import javax.faces.validator.ValidatorException;
/**
*
-
@author Lucas
*/
@ManagedBean
@RequestScoped
public class AplicacaoMB {
private String langCode;
public AplicacaoMB() {
}
public void testar() throws ValidatorException{
FacesContext context = FacesContext.getCurrentInstance();
String textoMensagem = carregarMensagemDeArquivo(“SUCESSO”);
context.addMessage(“form:campo1”, new FacesMessage(FacesMessage.SEVERITY_ERROR, null, textoMensagem));
}
public void alterar() throws ValidatorException{
FacesContext context = FacesContext.getCurrentInstance();
String textoMensagem = carregarMensagemDeArquivo(“ALTERADO”);
context.addMessage(“form:campo1”, new FacesMessage(FacesMessage.SEVERITY_ERROR, null, textoMensagem));
}
public String carregarMensagemDeArquivo(String chave) {
//código pra carregar e retornar texto da chave do arquivo Mensagens
FacesContext context = FacesContext.getCurrentInstance();
Locale myLocale = context.getViewRoot().getLocale();
String text = LocaleHelper.getLocaleString(context.getApplication().getMessageBundle(), chave , null, myLocale);
return text;
}
public String getLangCode() {
return langCode;
}
public void setLangCode(String langCode) {
this.langCode = langCode;
}
public List getLangCodes() {
List items = new ArrayList();
Application app = FacesContext.getCurrentInstance().getApplication();
Locale locale = app.getDefaultLocale();
items.add(new SelectItem(locale.toString()));
Iterator iter = app.getSupportedLocales();
while (iter.hasNext()) {
locale = iter.next();
items.add(new SelectItem(locale.toString()));
}
return items;
}
public String mudarIdioma(Locale locale) {
FacesContext fc = FacesContext.getCurrentInstance();
fc.getViewRoot().setLocale(locale);
return “”;
}
public String espanhol() {
Locale locale = new Locale(“es”, “ES”);
mudarIdioma(locale);
return null;
}
public String portugues() {
Locale locale = new Locale(“pt”, “BR”);
mudarIdioma(locale);
return null;
}
public String italiano() {
Locale locale = new Locale(“it”, “IT”);
mudarIdioma(locale);
return null;
}
public String frances() {
Locale locale = new Locale(“fr”, “FR”);
mudarIdioma(locale);
return null;
}
}
[/code]
:roll:
Abraços e desculpe ai se não soube explicar bem, mas fica ai para quem quiser.

Esqueci de comentar que o metodo que pega os idiomas é o “getLangCodes”
Gostaria de saber de ond importa a classe LocaleHelper, que faz a chamada estática ao método getLocaleString(…)
Obrigado!
[code]/*
- To change this template, choose Tools | Templates
- and open the template in the editor.
*/
package beans;
import java.text.MessageFormat;
import java.util.Locale;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
/**
*
-
@author Convidado
*/
public class LocaleHelper {
protected static ClassLoader getClassLoader(Object defaultObject){
ClassLoader loader = Thread.currentThread().getContextClassLoader();
if(loader == null){
loader = defaultObject.getClass().getClassLoader();
}
return loader;
}
public static String getLocaleString(String bundle,String key,Object parameters[],Locale locale){
String text = null;
ResourceBundle resourceBundle = ResourceBundle.getBundle(bundle, locale, getClassLoader(parameters));
try{
text = resourceBundle.getString(key);
} catch(MissingResourceException e){
text = “Erro”;
}
if(parameters != null){
StringBuffer stringBuffer = new StringBuffer();
MessageFormat messageFormat = new MessageFormat(text, locale);
text = messageFormat.format(parameters, stringBuffer , null).toString();
}
return text;
}
}
[/code]
Cara vc cria essa classe aqui resolve, muito dos seus problemas, mas so nun me peça para lhe explicar :roll:
Meu professor me disse o seguinte: “Funciona? Então tá blz”
Flws