Sto provando a localizzare le immagini in JSF e voglio che l'utente sia in grado di impostare le loro impostazioni internazionali sul mio sito. Questa che sto facendo da una chiamata alImmagine i18n in JSF2
FacesContext.getCurrentInstance().getViewRoot().setLocale(_locale);
che funziona alla grande, con una sola eccezione:
<h:graphicImage library="images" name="pic.gif" />
utilizza il Accept-Language
inviato nella richiesta del browser per stabilire quali impostazioni internazionali da utilizzare. Posso lavorare intorno a questo inserendo una stringa locale in ogni file .properties
e fa riferimento a immagini da
<h:graphicImage library="#{resource.locale}/images" name="pic.gif" />
ma poi non c'è ripiego per le singole immagini, in modo da avere una copia di ogni immagine, sia che si tratti è diverso o no, nella directory di ogni locale. Questo è piuttosto complicato, dato che io supporto 9 locali e probabilmente più in futuro. Qualsiasi consiglio sarebbe molto apprezzato.
Attualmente sto esaminando "decorare" ViewHandler per sovrascrivere il metodo [locale Calcolo locale (FacesContext locale)] utilizzando la classe ViewHandlerWrapper. Sembra una soluzione molto promettente, si aggiornerà quando l'ho fatto – theFunkyEngineer
Ignorare ViewHandler ha funzionato per ottenere le impostazioni internazionali dalla posizione corretta, tuttavia, il fallback delle immagini è ancora un problema - utilizzerà una libreria diversa per immagini non localizzate. Pubblicherà la configurazione completa al termine dell'implementazione. – theFunkyEngineer
Vedi la mia osservazione al BalusC di seguito. – rapt