Expressão de internacionalização dentro de .properties
1 resposta
AUser
Ola,
Bom, eu tenho o seguinte arquivo properties:
user.not.exists=Usuário não existe
user.deactivated=Usuário desativado
com.project.businessexception=Exceção de negócio
O problema, é que precisava dentro do properties, ter acesso a expressão internacionalizada. Basicamente estou usando spring webmvc pra conseguir cuidar dos erros de forma mais elegante possível, o grande problema é que eu não sei como faria pra internacionlizar dentro de uma expressão do properties, sem ser por YAML. O que eu queria era algo mais ou menos assim na última linha:
com.project.businessexception=Exceção de negócio: {&0}
, aonde 0 seria a message da exception... Alguém sabe se isso funcionaria?
publicclassResourceBundleMensagens{privatestaticLocaleptBR=newLocale("pt","BR");publicstaticResourceBundlebundle=ResourceBundle.getBundle("seuproperties",ptBR);/**Retorna a mensagem relacionada a chave passada como parâmetro. * @param <b>chave</b> - chave que consta no "mensagens.properties" * */publicstaticStringgetString(Stringchave){Stringvalue=null;try{value=bundle.getString(chave);}catch(Exceptione){logger.error(e.getMessage());}returnvalue;}/**Retorna a mensagem relacionada a chave passada como parâmetro adicionando parametros na mensagem. * @param <b>chave</b> - chave que consta no "mensagens.properties" * @param <b>paraemtros</b> - lista de parametros para substituição na mensagem. * */publicstaticStringgetString(Stringchave,String...parametros){Stringvalue=null;try{value=java.text.MessageFormat.format(bundle.getString(chave),(Object[])parametros);}catch(Exceptione){logger.error(e.getMessage());}returnvalue;}}