2011-01-12 12 views
6

Desidero impostare la proprietà "dir" della mia tabella dal gruppo di risorse in base alla locale.JSTL fmt: pacchetto di messaggi e risorse

Qui è frammento:

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

Quando la pagina rende ottengo questo:

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

Ho due pacchetti di risorse per l'inglese e l'arabo.

registration.direction = ltr -> Inglese

registration.direction = RTL -> arabo

informi che cosa sto facendo male? La directory dovrebbe avere "ltr" o "rtl" a seconda della locale.

Grazie

BR SC

risposta

6

due cose

1) vorrei aggiungere una variabile per memorizzare il risultato messaggio nella

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

poi

2) I farebbe quanto segue con il tuo codice

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

Ora per quanto i vostri pacchetti di risorse, di solito si dovrebbe avere la seguente struttura per i vostri pacchetti di risorse

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

Se il pacchetto non è strutturato in questo modo che potrebbe essere un po 'del vostro problema.

Assicurarsi che tutti i tasti che dovrebbero essere disponibili siano definiti in MyResourceBundle con valori predefiniti ragionevoli.

Sto modificando questa risposta in quanto non sono sicuro che il mio commento si sia perso in una funzione Nascondi.

Con il fatto che si utilizza Struts 2, ho l'impressione che si stia utilizzando l'intercettore i18n. L'intercettore memorizzerà le impostazioni locali correnti nella variabile sesion denominata WW_TRANS_I18N_LOCALE. Come tale si dovrebbe essere in grado di arrivare ad essa e impostare il locale per i tag JSTL utilizzando il seguente:

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

Speranza che funziona per voi.

+0

Grazie ha funzionato. BR. SC. – SmoothCriminel

+0

Felice di dare una mano –

+1

Ciao Dave, sono tornato! Il problema è quando cambio le impostazioni internazionali il valore di "dir" non cambia. Logicamente dovrebbe come tutti gli altri valori stanno cambiando. Come posso eseguirne il debug? Sto usando Struts2 I18N. BR. SC. – SmoothCriminel

Problemi correlati