Problemas no MessageResources. Internacionalização

Olá,

Preciso de ajuda para compreender o porque parou de funcionar o meu resource quando usado com parametros.

Segue o código:

public static ActionMessages adicionarMensagem(String msgKey,
			String bundleName, String[] paramKeys, String bundleNameParams,
			ActionMessages msgs, HttpServletRequest request) {
		MessageResources mr = null;
		if (bundleNameParams != null) {
			ServletContext application = request.getSession()
					.getServletContext();
			mr = Resources.getMessageResources(application, request,
					bundleNameParams);
		} else {
			mr = Resources.getMessageResources(request);
		}

		if (paramKeys != null) {
			String[] params = paramKeys;
			if (bundleNameParams != null) {
				params = new String[paramKeys.length];
				for (int i = 0; i < paramKeys.length; i++) {
					if (mr.isPresent(paramKeys[i])) {
						params[i] = mr.getMessage(paramKeys[i]);
					} else {
						params[i] = paramKeys[i];
					}
				}
			}
			msgs.add(ActionMessages.GLOBAL_MESSAGE, new MensagemAction(msgKey,
					params, bundleName));
		} else {
			msgs.add(ActionMessages.GLOBAL_MESSAGE, new MensagemAction(msgKey,
					bundleName));
		}

		return msgs;
	}

Parou de funcionar apenas quando eu enviou uma mensagem com parametros. Apenas o parametro que nao encontra.

No codigo “mr.isPresent(paramKeys[i])” não encontra no resource a palavra passada, mais ao debugar eu vejo que o MessageResources carregado esta correto e a chave que esta sendo procurada esta dentro desse resource.

Alguém sabe?

Att,

Alguém já passou por isso?

To no aguardo… Obrigado.

Descobri que o problema esta no LOCALE.

Agora preciso fazer com que o defaultLocale do MessageResources que esta “d:\bhaiyh\projetos\kbcada\visualizacao\webpt_BR” mude para “pt_BR”.

Estou tentando setar o locale… mais não estou conseguindo… a variavel do struts 1.3 que altera isso é

session.setAttribute(Globals.LOCALE_KEY, locale);

Certo?

Att,

Caso alguem tenha o mesmo problema que o meu. Achei onde estava o problema da internacionalização.

Ao declarar o message no meu web.xml ate o struts 1.2.x eu sempre utilizei assim:

 <message-resources parameter="application"/>

Agora com o struts 1.3 só funcionou se eu colocar o nome completo, assim:

<message-resources parameter="application_pt_BR"/>
<message-resources parameter="application_en_US"/>

O problema agora que não descobri como alterar na aplicacao de pt para en, já tentei todas as maneiras possiveis.

setLocale()

<html:html lang=“true”></html:html>

session.setAttribute(Globals.LOCALE_KEY, new Locale(country, language));

setLocale(request, locale);

Entre outras alternativas.

Alguem sabe?

Att,