Paginacion junto con i18n

Muy buenas a todos resulta que estoy aplicandole paginacion a una web y tengo implementada la i18n y al cambiar de pagina me vuelve a poner el idioma por defecto, voy mostrar los codigos a ver si alguien me puede ayudar gracias

index.jsp

<div id="header">

                        <div id="header-wrapper">

                                <div id="header-left"></div>

                                <div id="header-right">

                                        <h:form id="search">

                                                <h:commandLink id="register" value="Registrarse"
                                                        action="registrar" />
                                                <h:commandLink id="sesionInic" value="Iniciar Sesion"
                                                        action="iniciar" />
                                                <br />
                                                <br />

                                                <h:inputHidden value="#{filtroBean.filtro }"></h:inputHidden>
                                                <h:inputText id="box" value="#{filtroBean.texto}" />
                                                <h:commandButton id="button" image="/icos/buscar.png"
                                                        style="height: 26px; width: 31px;" />
                                                <h:selectOneMenu id="idioma" value="#{idiomaBean.idioma}"
                                                        onchange="submit();"
                                                        valueChangeListener="#{idiomaAction.cambiarIdioma}">
                                                        <f:selectItems value="#{idiomaAction.idiomas}" />
                                                </h:selectOneMenu>
                                        </h:form>

                                </div>

                        </div>

                </div>

                <div id="content">
                        <c:set var="productos" value="${productoAction.productosPagination}" />
                        <c:forEach var="producto" items="${productos }">

                                <div class="entry">
                                        <h2>${producto.marca.nombre }</h2>

                                        <h:outputText value="#{producto.marca.nombre }" />
                                        <img class="photo" src="fotos/${producto.id}.jpg" />
                                        <c:forEach var="descripcion" items="${producto.descripcionRegion}">
                                                <p>${fn:replace(descripcion.texto, saltoLinea, '<br />')}</p>

                                        </c:forEach>

                                        <h2>${producto.precio }</h2>

                                </div>
                        </c:forEach>
                        <c:if test="${not empty productos}">
                                <div id="pagination">

                                        <c:if test="${pagination.currentPage > 1}">
                                                <a href="?pagina=1"><img src="img/first.png" /></a>
                                                <a href="?pagina=${pagination.currentPage - 1}"><img
                                                        src="img/previous.png" /></a>
                                        </c:if>

                                        <c:forTokens var="p" items="${pagination.pageList}" delims=",">
                                                <c:choose>
                                                        <c:when test="${p eq pagination.currentPage}">
                                                                <span>${p}</span>
                                                        </c:when>
                                                        <c:otherwise>
                                                                <a href="?pagina=${p}">${p}</a>
                                                        </c:otherwise>
                                                </c:choose>
                                        </c:forTokens>

                                        <c:if test="${pagination.currentPage < pagination.numberOfPages}">
                                                <a href="?pagina=${pagination.currentPage + 1}"><img
                                                        src="img/next.png" /></a>
                                                <a href="?pagina=${pagination.numberOfPages}"><img
                                                        src="img/last.png" /></a>
                                        </c:if>

                                </div>
                        </c:if>
                        <c:if test="${empty productos}">
                                <br />
                                <h3>No hay productos.</h3>
                        </c:if>
                </div>

ProductoAction

public List<Producto> getProductosPagination() throws TiendaException{
                FacesContext context = FacesContext.getCurrentInstance();
                HttpServletRequest request = (HttpServletRequest)context.getExternalContext().getRequest();
                HttpSession session = request.getSession();
               
                Pagination paginacion;
               
                if (session.getAttribute("pagination") != null)
                        paginacion = (Pagination)session.getAttribute("pagination");
                else
                        paginacion = new Pagination();
               
                if (request.getParameter("pagina") != null) {
               
                        int pagina = Integer.parseInt(request.getParameter("pagina"));
                        paginacion.setCurrentPage(pagina);
                }
               
                FiltroBean filtroBean = (FiltroBean)session.getAttribute("filtroBean");
                String texto = null;
               
                if (filtroBean != null) {
               
                        String filtro = filtroBean.getFiltro();
                        texto = filtroBean.getTexto();
               
                        if (filtro != null && !filtro.equals(texto))
                                paginacion.setCurrentPage(1);
                       
                        filtroBean.setFiltro(texto);
                }
               
                ProductoDAO dao = DAOFactory.getProductoDAO();
                List<Producto> productos = dao.buscar(texto, paginacion);
               
                session.setAttribute("pagination", paginacion);
                request.setAttribute("saltoLinea", "\n");

               
                return productos;
        }

ProductoDAOImpl

@SuppressWarnings("unchecked")
        @Override
        public List<Producto> buscar(String texto, Pagination paginacion)
                        throws TiendaException {
                List<Producto> productos = null;

                try {

                        DetachedCriteria dc = DetachedCriteria.forClass(Producto.class);
                        Criteria criteria = dc.getExecutableCriteria(getSession());

                        if (texto != null) {
                               
                                Criterion lhs = Restrictions.ilike("codigo", texto,
                                                MatchMode.ANYWHERE);
                                Criterion rhs = Restrictions.ilike("referencia", texto,
                                                MatchMode.ANYWHERE);
                                criteria.add(Restrictions.or(lhs, rhs));
                        }
                        if (paginacion != null) {

                                int paginas = (int) (Math.ceil((float) (criteria.list().size())
                                                / paginacion.getMaxResults()));
                                paginacion.setNumberOfPages(paginas);
                                criteria.setFirstResult(paginacion.getFirstResult());
                                criteria.setMaxResults(paginacion.getMaxResults());
                        }

                        //criteria.addOrder(Order.asc("id"));

                        productos = criteria.list();
                       
                } catch (Exception e) {
                        /*throw new TiendaException("Error al obtener entradas: "
                                        + e.getMessage());*/

                        e.printStackTrace();

                }
                return productos;
        }

FacesConfig.xml

<application>
                <locale-config>
                        <default-locale>es</default-locale>
                        <supported-locale>en</supported-locale>
                </locale-config>
        </application>

        <managed-bean>
                <managed-bean-name>tablaListaBean</managed-bean-name>
                <managed-bean-class>beans.datos.TablaListaBean</managed-bean-class>
                <managed-bean-scope>request</managed-bean-scope>
        </managed-bean>

        <managed-bean>
                <managed-bean-name>idiomaAction</managed-bean-name>
                <managed-bean-class>beans.logica.IdiomaAction</managed-bean-class>
                <managed-bean-scope>request</managed-bean-scope>
        </managed-bean>

        <managed-bean>
                <managed-bean-name>idiomaBean</managed-bean-name>
                <managed-bean-class>beans.datos.IdiomaBean</managed-bean-class>
                <managed-bean-scope>request</managed-bean-scope>
        </managed-bean>

        <managed-bean>
                <managed-bean-name>descripcionBean</managed-bean-name>
                <managed-bean-class>beans.datos.DescripcionBean</managed-bean-class>
                <managed-bean-scope>request</managed-bean-scope>
        </managed-bean>

        <managed-bean>
                <managed-bean-name>usersBean</managed-bean-name>
                <managed-bean-class>beans.datos.UsersBean</managed-bean-class>
                <managed-bean-scope>request</managed-bean-scope>
        </managed-bean>

        <managed-bean>
                <managed-bean-name>marcaAction</managed-bean-name>
                <managed-bean-class>beans.logica.MarcaAction</managed-bean-class>
                <managed-bean-scope>request</managed-bean-scope>
        </managed-bean>

        <managed-bean>
                <managed-bean-name>marcaBean</managed-bean-name>
                <managed-bean-class>beans.datos.MarcaBean</managed-bean-class>
                <managed-bean-scope>request</managed-bean-scope>
        </managed-bean>

        <managed-bean>
                <managed-bean-name>productoAction</managed-bean-name>
                <managed-bean-class>beans.logica.ProductoAction</managed-bean-class>
                <managed-bean-scope>request</managed-bean-scope>
        </managed-bean>

        <managed-bean>
                <managed-bean-name>productoBean</managed-bean-name>
                <managed-bean-class>beans.datos.ProductoBean</managed-bean-class>
                <managed-bean-scope>request</managed-bean-scope>
        </managed-bean>

        <managed-bean>
                <managed-bean-name>categoriaAction</managed-bean-name>
                <managed-bean-class>beans.logica.CategoriaAction</managed-bean-class>
                <managed-bean-scope>request</managed-bean-scope>
        </managed-bean>

        <managed-bean>
                <managed-bean-name>filtroBean</managed-bean-name>
                <managed-bean-class>beans.datos.FiltroBean</managed-bean-class>
                <managed-bean-scope>session</managed-bean-scope>
        </managed-bean>
       
        <managed-bean>
                <managed-bean-name>categoriaBean</managed-bean-name>
                <managed-bean-class>beans.datos.CategoriaBean</managed-bean-class>
                <managed-bean-scope>request</managed-bean-scope>
        </managed-bean>

        <managed-bean>
                <managed-bean-name>clienteAction</managed-bean-name>
                <managed-bean-class>beans.logica.ClienteAction</managed-bean-class>
                <managed-bean-scope>request</managed-bean-scope>
        </managed-bean>

        <managed-bean>
                <managed-bean-name>clienteBean</managed-bean-name>
                <managed-bean-class>beans.datos.ClienteBean</managed-bean-class>
                <managed-bean-scope>request</managed-bean-scope>
        </managed-bean>

No se si alguien sabra donde tengo el fallo si alguien me lo dijera se lo agradeceria mucho