Problemas com VRaptor + Internacionalização [RESOLVIDO]

Boa Noite

Estou desenvolvendo uma aplicação onde estou usando a JSTL para gerenciar a parte de internacionalização, nas páginas jsp utilizando a tag fmt da JSTL a internacionalização esta funcionando normalmente, agora no sistema apareceu a necessidade de alguns textos que não podem ser exibidos através da fmt sejam internacionalizados, pois são oriundos de requisições ajax e retornados através de objetos JSON.

Estou setando a escolha do idioma da seguinte forma:

Config.set(session, Config.FMT_LOCALE, locale);  
Config.set(session, Config.FMT_FALLBACK_LOCALE, locale);  

Tentei utilizar a Interface do VRaptor Localization com o método getMessage(), para recuperar a mensagem antes do processo de serialização em JSON, mas não estou conseguindo, o método sempre retorna ???chave.properties???, que de acordo com o javadoc significa que não encontrou nada para aquela chave de acesso.

Alguém saberia como corrigir tal problema ?

Obrigado.

a chave existe no arquivo message.properties? ou o correspondente do locale?

Solucionei o problema, acontecia que o Locale não esta sendo setado na chamada do método, então o arquivo .properties não era carregado e a chave correspondente não era encontrada.

Passos realizados para solução do problema:

1º) No web.xml adicionei os parâmetros de contexto para carregar os .properties e inicializar o idioma default como PT:

 <context-param>
    <param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
    <param-value>messages/messages</param-value>
  </context-param>
  <context-param>  
    <param-name>javax.servlet.jsp.jstl.fmt.locale</param-name>  
    <param-value>pt_PT</param-value>  
  </context-param>

2º) Para setar o idioma e carregar o .properties desejado, no controller fiz um método com a seguinte lógica:

Config.set(session, Config.FMT_LOCALE, TypesMessageLocale.getLocaleAutenticacao(idioma));  
Config.set(session, Config.FMT_FALLBACK_LOCALE, TypesMessageLocale.getLocaleAutenticacao(idioma));  

3º) Para as mensagens estáticas do sistema utilizei a biblioteca fmt da JSTL para recuperar as chaves do .properties, e dentro dos controllers utilizei a interface Localization do VRaptor.

Valeu.

1 curtida