आमतौर पर, कई प्लेटफार्मों पर, मैं अपने स्ट्रिंग संसाधनों को .resx या .xml फ़ाइल में लिख रहा हूं, और फिर मैं उन्हें कुछ प्लेटफ़ॉर्म-निर्भर दृष्टिकोण का उपयोग करके प्राप्त कर रहा हूं।
यही है, आईओएस पर, मैं उन्हें एंड्रॉइड पर NSBundle.MainBundle
उपयोग करके और प्राप्त कर रहा हूं Context.Resources
।
इस दृष्टिकोण के क्या फायदे हैं, और कोड में सीधे पहुंच योग्य क्यों नहीं है, इसलिए, उदाहरण के लिए:
क्रॉस-प्लेटफ़ॉर्म प्रोजेक्ट में, कोई भी प्लेटफ़ॉर्म सीधे इसे एक्सेस कर सकता है, जिसमें कोई एकीकरण नहीं है।
निर्माण के दौरान कोई चिंता नहीं है कि संसाधनों का निर्माण अच्छी तरह से किया गया है या नहीं।
- कोडर फंक्शंस का उपयोग कर सकता है जैसे कि बहुभाषी हैंडलिंग
लंबी कहानी छोटी: क्या कारण है कि स्ट्रिंग संसाधनों को उस तरह से संरचित किया जाता है?
[संपादित करें]
मान लीजिए कि मेरी फ़ाइल अन्य प्रोजेक्ट के बीच साझा की गई "कोर" परियोजना का हिस्सा है। (पीसीएल, क्रॉस-प्लेटफ़ॉर्म प्रोजेक्ट फ़ाइल संरचना के बारे में सोचें।)
और मान लीजिए कि मेरी फ़ाइल एक .resx / .xml फ़ाइल की तरह ही है, इस तरह लग रही है (मैं xml में एक समर्थक नहीं हूँ, माफ करना!): पैरामीटर Paramètres!
तो, यह मूल रूप से एक कस्टम xml है, जहां आप उचित स्ट्रिंग प्राप्त करने के लिए कुंजी / भाषा को इंगित करते हैं।
फ़ाइल एप्लिकेशन का ही हिस्सा होगी, जैसे आप किसी ऐप के अंदर कोई एक्सेसिबल फ़ाइल जोड़ते हैं, और स्ट्रिंग संसाधनों का उपयोग करने के लिए सिस्टम, 4L का उपयोग करके कोडित किया जाता है। क्या यह अनुप्रयोगों में एक ओवरहेड जोड़ देगा?