कहना चलें के लिए स्थान परिवर्तन आप दो संदेश फ़ाइलें
messages.properties
messages_de.properties
आवेदन स्थानीय सेटिंग
वहाँ स्थापित करने के तीन तरीके हैं निम्नलिखित है एप्लिकेशन लोकेल और मुझे लगता है कि आपको पहले पहले की आवश्यकता है।
1-आप ब्राउज़र को लोकेल चुनने दे सकते हैं।
डिफ़ॉल्ट और WEB-INF/faces-config.xml:
<faces-config>
<application>
<locale-config>
<default-locale>en</default-locale>
<supported-locale>de</supported-locale>
</locale-config>
</application>
</faces-config>
एक ब्राउज़र आपके आवेदन को जोड़ता है जब में समर्थित स्थान सेट करें, यह आमतौर पर HTTP शीर्ष लेख में एक स्वीकार करें-भाषा मूल्य शामिल
2-आप सेट कर सकते हैं स्थानीय रूप से लोकेल।
कॉल UIViewRoot वस्तु की setLocale विधि:
UIViewRoot viewRoot = FacesContext.getCurrentInstance().getViewRoot();
viewRoot.setLocale(new Locale("de"));
3-आपको व्यक्तिगत पेज
के लिए स्थान निर्धारित कर सकते हैं एक स्थान गुण-उदाहरण के लिए f:view
तत्व का उपयोग द्वारा:
<f:view locale="de">
स्थान गतिशील सेट किया जा सकता:
<f:view locale="#{user.locale}"/>
घोषणा संदेश बंडल
अब लोकेल आपको निम्न दो संदेश घोषित करने के तरीकों में से एक का उपयोग कर सकते सेट कर दिया जाता है कि
1-के माध्यम से सामना करना पड़ता है-config बंडल सबसे आसान तरीका है चेहरे-कॉन्फ़िगर नाम की एक फ़ाइल की आपूर्ति करें।अपने आवेदन के वेब INF निर्देशिका में एक्सएमएल, निम्नलिखित सामग्री के साथ:
<?xml version="1.0"?>
<faces-config xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
version="2.0">
<application>
<resource-bundle>
<base-name>com.corejsf.messages</base-name>
<var>msgs</var>
</resource-bundle>
</application>
</faces-config>
2-में प्रत्येक JSF पेज है कि यह उपयोग की जरूरत है।
<f:loadBundle basename="com.corejsf.messages" var="msgs"/>
या तो मामले में, बंडल में संदेशों हैं: प्रत्येक JSF पेज कि, बंडल लिए उपयोग की जरूरत इस तरह के loadBundle तत्व: इसके बजाय एक वैश्विक संसाधन बंडल घोषणा का उपयोग करने का , आप च जोड़ सकते हैं नाम संदेश के साथ एक नक्शा चर के माध्यम से सुलभ।
बटन पर उचित लेबल दिखा अब कहते हैं कि डिफ़ॉल्ट गुण फ़ाइल यानी अंग्रेज़ी संपत्ति
next=Next
है की सुविधा देता है और जर्मन equivallent यानी
next=Weiter
है और आप स्थान निर्धारित करने और mesg घोषणा की है बंडल आप इसे कमांड बटन पर लेबल रखने के लिए एक्सेस कर सकते हैं जैसे कि
<h:commandButton value="#{msgs.next}"/>
ऊपर उत्तर निकाला गया है और Hortsmen Core Java Server Faces book से संशोधित किया गया है।
मैं कुछ जोड़ना चाहता हूं: 3. और 2. बिंदु में। प्रत्येक जेएसएफ पेज के लिए इसे करने के बजाय, आप टेम्पलेट.एक्सएचटीएमएल में कर सकते हैं। – karlihnos