Olá pessoal,
Estou tendo muitas dificuldades para implementar internacionalização (I18n) em um projeto o qual estou trabalhando. Diferente do material que encontrei na web, minha Action sobreescreve o método getLocale. Essa sobrecarga carrega do banco de dados a localização do usuário logado, e retorna um objeto Locale correspondente a lingua dele. O problema é que, no jsp, usando struts:text, a localidade usada é a que vem do browser. Daí passo a usar o struts:property com o getText chamando minha chave contida no meu arquivo.properties… porém ele não obedece o getLocale! Em outra tentativa, a chave vem localizada, mas não formata moeda e data!
E agora?
JSP:
Vindo do Browser:<br />
<s:text name="pais"></s:text><br />
<s:text name="format.date"><s:param value="data"/></s:text><br />
<br />
<br />
Forçado pelo getLocale x getText:<br />
<s:property value="getText('pais')" /><br />
<s:property value="getText('format.date',{data})" /><br />
Action:
public String execute() {
return SUCCESS;
}
public Locale getLocale() {
return new Locale("de_DE");
}
public Date getData() {
return new Date();
}
Cada properties localizado: (_de_DE, no caso)
pais=Alemanha
format.date = {0,date,dd.MM.yyyy}