मैं जेएसएफ में छवियों को स्थानीयकृत करने की कोशिश कर रहा हूं, और मैं चाहता हूं कि उपयोगकर्ता मेरी साइट पर अपना लोकेल सेट कर सके। यह मैं एक अपवाद के साथछवि i18n JSF2
FacesContext.getCurrentInstance().getViewRoot().setLocale(_locale);
जो अच्छा काम करता है के लिए एक कॉल से कर रहा हूँ,:
<h:graphicImage library="images" name="pic.gif" />
Accept-Language
ब्राउज़र की अनुरोध में भेजा गया का उपयोग करता है निर्धारित करने के लिए उपयोग किए जाने वाले स्थान में। मैं
<h:graphicImage library="#{resource.locale}/images" name="pic.gif" />
द्वारा प्रत्येक .properties
फ़ाइल में एक स्थानीय वाक्य रखने और छवियों को संदर्भित इस पर काम कर सकते हैं, लेकिन फिर वहाँ अलग-अलग चित्र के लिए कोई फॉल-बैक है, इसलिए मैं हर छवि की एक प्रति है करने के लिए है कि क्या यह प्रत्येक लोकेल की निर्देशिका में अलग है या नहीं। यह काफी बोझिल है, यह देखते हुए कि मैं भविष्य में 9 लोकेशंस और शायद अधिक का समर्थन करता हूं। कोई भी सलाह काफी सराही जाएगी।
वर्तमान में मैं ViewHandlerWrapper क्लास का उपयोग करके [सार्वजनिक लोकेल गणना Locale (FacesContext संदर्भ)] विधि को ओवरराइड करने के लिए "सजावट" ViewHandler में देख रहा हूं। यह एक बहुत ही आशाजनक समाधान की तरह दिखता है, जब मैंने इसे किया है तो अपडेट होगा – theFunkyEngineer
ओवरहेडिंग व्यूहैंडलर लोकेल को सही जगह से प्राप्त करने के लिए काम करता है, हालांकि, छवि फ़ॉलबैक अभी भी एक मुद्दा है - गैर-स्थानीय छवियों के लिए एक अलग लाइब्रेरी का उपयोग करेगा। कार्यान्वयन समाप्त होने पर पूर्ण कॉन्फ़िगरेशन पोस्ट करेगा। – theFunkyEngineer
नीचे बलुससी को मेरी टिप्पणी देखें। – rapt