जावा इंटर्नाइजेशन - रिसोर्सबंडल क्लास

रिसोर्सबंडल क्लास का उपयोग टेक्स्ट और ऑब्जेक्ट्स को स्टोर करने के लिए किया जाता है जो लोकल संवेदनशील होते हैं। आम तौर पर हम लोकेल विशिष्ट पाठ को संग्रहीत करने के लिए संपत्ति फ़ाइलों का उपयोग करते हैं और फिर रिसोर्सबंडल ऑब्जेक्ट का उपयोग करके उनका प्रतिनिधित्व करते हैं। एक जावा आधारित अनुप्रयोग में स्थानीय विशिष्ट गुण फ़ाइल का उपयोग करने के चरण निम्नलिखित हैं।

चरण 1: गुण फ़ाइलें बनाएँ।

मान लीजिए हमें अंग्रेजी लोकेल के लिए प्रॉपर्टी फाइल की जरूरत है। फिर एक गुण फ़ाइल नाम XXX_en_US.properties बनाएं जहां XXX फ़ाइल का नाम है और en_US अंग्रेजी (यूएस) के लिए स्थान का प्रतिनिधित्व करता है।

Messages_en_US.properties

message=Welcome to TutorialsPoint.COM!

चलिए अब फ्रेंच लोकेल के लिए गुण फ़ाइल बनाते हैं। फिर एक गुण फ़ाइल नाम XXX_fr_FR.properties बनाएं जहां XXX फ़ाइल का नाम है और fr_FR फ्रेंच (फ्रांस) के लिए स्थान का प्रतिनिधित्व करता है।

Messages_fr_FR.properties

message=Bienvenue sur TutorialsPoint.COM!

यहां आप यह पता लगा सकते हैं कि कुंजी समान है लेकिन दोनों गुणों फ़ाइल में मान विशिष्ट है।

चरण 2: संसाधनबंडल ऑब्जेक्ट बनाएँ

सिंटैक्स का उपयोग करके गुण फ़ाइल नाम और लोकेल के साथ रिसोर्सबंड ऑब्जेक्ट बनाएं।

ResourceBundle bundle = ResourceBundle.getBundle("Messages", Locale.US);

चरण 3: रिसोर्सबंडल ऑब्जेक्ट से मान प्राप्त करें।

कुंजी पास करके रिसोर्सबंडल ऑब्जेक्ट से मान प्राप्त करें।

String value = bundle.getString("message");

उदाहरण

उदाहरण के बाद संसाधन फ़ाइलों से स्थानीय विशिष्ट मान प्रदर्शित करने के लिए ResourceBundle ऑब्जेक्ट के उपयोग का वर्णन करें।

IOTester.java

import java.util.Locale;
import java.util.ResourceBundle;

public class I18NTester {
   public static void main(String[] args) {
      ResourceBundle bundle = ResourceBundle.getBundle("Messages", Locale.US);  
      System.out.println("Message in "+Locale.US +": "+bundle.getString("message"));  

      bundle = ResourceBundle.getBundle("Messages", Locale.FRANCE);  
      System.out.println("Message in "+Locale.FRANCE +": "+bundle.getString("message"));
   }
}

उत्पादन

यह निम्नलिखित परिणाम को प्रिंट करेगा।

Message in en_US: Welcome to TutorialsPoint.COM!
Message in fr_FR: Bienvenue sur TutorialsPoint.COM!

नामकरण सम्मेलनों के लिए नोट्स

निम्नलिखित गुण फ़ाइल के लिए नामकरण परंपराएँ हैं।

  • डिफ़ॉल्ट लोकेल में मैप की गई संपत्तियों के लिए, कोई भी उपसर्ग अनिवार्य नहीं है। message_en_US.properties message.properties के बराबर है।

  • लोकेल में मैप की गई प्रॉपर्टी के लिए, उपसर्ग को दो तरीकों से जोड़ा जा सकता है। message_fr.properties message_fr_FR.properties के बराबर है।

छाप