2011-01-12 12 views
6

Quiero establecer la propiedad "dir" de mi tabla del paquete de recursos según la configuración regional.JSTL fmt: mensaje y paquete de recursos

Aquí se fragmento:

 <fmt:setBundle basename="class.path.to.resource.bundle"/> 
     <table align=center class="" dir=<fmt:message key="registration.direction"/>> 

Cuando la página se representa me sale esto:

<table align=center dir=???registration.direction???> 

Tengo dos paquetes de recursos para Inglés y árabe.

registration.direction = ltr -> Inglés

registration.direction = RTL -> Árabe

Por favor, diga lo que estoy haciendo mal? El directorio debe tener "ltr" o "rtl" dependiendo de la configuración regional.

Gracias

BR SC

Respuesta

6

dos cosas

1) Me gustaría añadir una variable para almacenar el resultado mensaje en

<fmt:message key="registration.direction" var="direction" /> 

continuación

2) I haría lo siguiente con su código

<fmt:setBundle basename="class.path.to.resource.bundle"/> 
    <fmt:message key="registration.direction" var="direction" /> 
    <table align=center class="" dir="${direction}"> 

Ahora por lo que sus paquetes de recursos, por lo general usted debe tener la siguiente estructura para sus paquetes de recursos

/foo/bar/MyResourceBundle.properties 
/foo/bar/MyResourceBundle_en.properties 
/foo/bar/MyResourceBundle_en_US.properties 
/foo/bar/MyResourceBundle_<lang>[_COUNTRY[_VAR]].properties 

Si el paquete no está estructurado de esta manera que podrían ser algunos de su problema.

Asegúrese de que todas las claves que se espera que estén disponibles se definen en MyResourceBundle con valores predeterminados razonables.

Estoy modificando esta respuesta, no estoy seguro de si mi comentario se perdió en una función de ocultar.

Con el hecho de que está utilizando Struts 2, tengo la impresión de que está utilizando el interceptor i18n. El interceptor almacenará la configuración regional actual en la variable de sesion llamada WW_TRANS_I18N_LOCALE. Como tal, debe ser capaz de llegar a ella y establecer la configuración regional para las etiquetas JSTL utilizando la siguiente:

<fmt:setLocale scope="session" value="${sessionScope.WW_TRANS_I18N_LOCALE}" /> 

la esperanza de que funcione para usted.

+0

Gracias funcionó. BR. CAROLINA DEL SUR. – SmoothCriminel

+0

Me alegro de ayudar –

+1

Hola Dave, estoy de vuelta! El problema es que cuando cambio la configuración regional, el valor de "dir" no cambia. Lógicamente debería hacerlo ya que todos los demás valores están cambiando. ¿Cómo puedo depurarlo? Estoy usando Struts2 I18N. BR. CAROLINA DEL SUR. – SmoothCriminel

Cuestiones relacionadas