[RESOLVIDO]vRaptor - i18n mudar messages.properties atraves do interceptor

Bem, não sei se o tópico foi especifico, mais é o seguinte, já possuo minha internacionalização funcionando, e hoje para mudar a linguagem estou utilizando o seguinte:

<c:if test="${not empty param.lingua}">
  <fmt:setLocale value="${param.lingua}" scope="session"/>
</c:if>

problema é que:
1 - está na view, eu nao gosto disso.
2 - não sei como delegar essa responsabilidade para uma classe com o vraptor

e queria saber se nessa mudança vai ficar aparecendo alguma coisa diferente na url do tipo ?lingua=en se sim, tem como remover?
por exemplo, quero que fique minhaUrl/home/index estando em pt_BR ou en_US

espero que eu tenha sido claro, obrigado.

bem pessoal, acabei criando um interceptor para fazer isso pra mim, mais nao está mudando. alguem tem alguma ideia do pq?

o idioma está chegando corretamente e tudo mais, mais nao modifica as keys, continuam iguais.

package br.com.rhunificado.interceptor;


import java.util.Locale;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.jsp.jstl.core.Config;

import br.com.caelum.vraptor.InterceptionException;
import br.com.caelum.vraptor.Intercepts;
import br.com.caelum.vraptor.Result;
import br.com.caelum.vraptor.core.InterceptorStack;
import br.com.caelum.vraptor.core.Localization;
import br.com.caelum.vraptor.interceptor.Interceptor;
import br.com.caelum.vraptor.ioc.RequestScoped;
import br.com.caelum.vraptor.resource.ResourceMethod;

@Intercepts
@RequestScoped
public class MudaIdioma implements Interceptor {

	private final HttpServletRequest request;
	private final Result result;
	private final Localization loc;
	
	public MudaIdioma(HttpServletRequest request, Result result, Localization loc) {
		this.request = request;
		this.result = result;
		this.loc = loc;
	}

	@Override
	public boolean accepts(ResourceMethod arg0) {
		// TODO Auto-generated method stub
		return true;
	}

	@Override
	public void intercept(InterceptorStack stack, ResourceMethod method,
			Object resourceInstance) throws InterceptionException {
		
		if(request.getParameter("idioma") != null) {
			String language = request.getParameter("idioma");
			//Locale locale = new Locale(language);
			Config.set(request.getSession(), Config.FMT_LOCALE, language); //setei diretamente o language ao invez do locale e funcionou.
			Config.set(request.getSession(), Config.FMT_FALLBACK_LOCALE, language);
		}
		System.out.println("Interceptando " + request.getRequestURI());

        stack.next(method, resourceInstance);
		
	}
}

bem pessoal, consegui.