Oi,
Estou tentando fazer a internacionalização e primeiramente a linguagem escolhida (pt/en) ele pega da linguagem do browser, mas tenho que deixar na página home a opção para o usuário mudar a linguagem desejada.
O nome dos meus arquivos são:
MessageResources_en_US.properties
MessageResources_pt_BR.properties
Configuração no struts config:
<message-resources key="i18n_pt" parameter="MessageResources_pt_BR" />
<message-resources key="i18n_en" parameter="MessageResources_en_US" />
<message-resources parameter="MessageResources" />
Link da página do Home para o usuário escolher o idioma:
a href "mudaIdioma.action?idioma=pt_BR"PT
/a
a href="mudaIdioma.action?idioma=en_US"EN
/a
(coloquei sem os"<>" porque não estava aparecendo do jeito que queria
Peguei da apostila da Caelum o seguinte código:
public class MudaIdiomaAction extends Action {
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request,
javax.servlet.http.HttpServletResponse response) throws Exception {
String idioma = request.getParameter("idioma");
Locale locale = new Locale(idioma);
System.out.println("Mudando o locale para " + idioma);
setLocale(request, locale);
return mapping.findForward("ok");
}
}
Esses códigos fazem exatamente o que preciso, só que tem um problema quando uso a classe descrita a cima o idioma vem certinho "en_US", mas quando ele é setado no locale fica tudo minúsculo "en_us" e meu arquivo chama-se: "MessageResources_en_US".
O mesmo me retorna: WARN org.apache.struts.util.PropertyMessageResources - Resource MessageResources_en_us.properties Not Found.
tentei colocar os arquivos de MessageResources tudo minúsculo, mas como esse é o padrão o mesmo me retorna o erro de que a key não foi encontrada em pt_BR.
Alguem tem uma idéia de como posso resolver isso?
Grata,
Viviane