Resource bundle com place holder

6 respostas
C

Boa noite pessoal,

Estou utilizando resource bundle na minha aplicação e tenho q alterar valores no controlador p/properties e não estou conseguindo.

public class Message {

    private static final String PATH_MENSAGENS = "/mensagens";

    private static ResourceBundle bundle;

	public static String getBundleMessage(String codigo) {
        if(bundle==null){
		    bundle = ResourceBundle
				.getBundle(PATH_MENSAGENS);
        }
		String message;
		message = bundle.getString(codigo);

		return message;
	}

Pego os valores dessa meneira! Mas preciso substituir uma entrada abaixo pelo nome do usuário

form.opcao.acao={0}, selecionou a opção {1} . /n Para....

Poderiam me dar uma dica por favor!? obrigado

6 Respostas

CristianPalmaSola10

Isso aqui que voce que amigo

Properties props = new Properties();          
        try {  
            props.load( new FileInputStream( file ) );  
        } catch (FileNotFoundException ex) {  
            ex.printStackTrace();  
        } catch (IOException ex) {  
            ex.printStackTrace();  
        }  
          
        enderecoBD= props.getProperty( "enderecoBD" );

?

Rodrigo_Sasaki

Você quer substituir os placeholders pelo valor específico da mensagem? Você está fazendo isso na mão?

Já tentou usar replaceAll ou replaceFirst? Expressões regulares caem como uma luva nessa situação.

C

Creio q replace não seria a melhor solução, já q a mesma msg no resourcebndle pode ter 1 ou + parametros para realizar o placeHolder!

P/pegar o resourcebundle com a mensagem, já esta funcionando perfeitamente! O problema é passar os parametros!!

Rodrigo_Sasaki

Ué… não entendi o por que não funcionaria. Você pega a String, um array de parâmetros, e substitui o índice pelo valor.

victormagno

Você pode usar o MessageFormat:

MessageFormat.format("{0}, selecionou a opção {1} .","Victor Magno","2"));
Rodrigo_Sasaki

victormagno:
Você pode usar o MessageFormat:

MessageFormat.format("{0}, selecionou a opção {1} .","Victor Magno","2"));


Uau hahahaa, nada como usara roda que já inventaram. Não sabia dessa não :slight_smile:

Criado 14 de dezembro de 2012
Ultima resposta 14 de dez. de 2012
Respostas 6
Participantes 4