जवाबों:
वे एक चेतावनी पर चुप्पी साधते हैं कि ग्रहण तब निकलता है जब यह स्ट्रिंग शाब्दिक सामना करता है (और शिकायत करने के लिए कॉन्फ़िगर किया गया है)।
विचार यह है कि यूआई संदेशों को स्ट्रिंग शाब्दिक के रूप में एम्बेड नहीं किया जाना चाहिए, बल्कि एक संसाधन फ़ाइल से सॉर्ट किया जाना चाहिए (ताकि उन्हें अनुवादित, प्रूफ किया जा सके, आदि)। नतीजतन, ग्रहण को स्ट्रिंग शाब्दिक का पता लगाने के लिए कॉन्फ़िगर किया जा सकता है, ताकि आप गलती से कोड में अनएक्सटर्नेटेड यूआई तार न छोड़ें; हालाँकि, ऐसे तार हैं, जिन्हें बाह्यीकृत नहीं किया जाना चाहिए (जैसे रेगेक्स) और इसलिए, // $ NON-NLS-1 $ आपको संकलक को उस तथ्य को संप्रेषित करने का एक तरीका देता है।
NON-NLS
इसका मतलब है गैर - एन एटियल एल एनगेज एस यूपोर्ट ।
विकिपीडिया भी गैर - एन एटिव एल एनगेज एस यूटेक (एनएलएस) का प्रस्ताव करता है, लेकिन यह अंतिम उपयोग नहीं किया जाता है।
एनएलएस आपके आवेदन का अंतर्राष्ट्रीयकरण करने के बारे में है। ग्रहण आपके कोड में हार्ड-कोडिंग स्ट्रिंग्स का पता लगाने में मदद करता है। इंगित करने के लिए एक स्ट्रिंग अंतर्राष्ट्रीयकरण का हिस्सा नहीं है, टिप्पणी को जोड़ दें //$NON-NLS-x$
जहां x स्ट्रिंग की स्थिति है। निम्नलिखित उदाहरण पर दोनों "!"
कठिन-कोडित तार हैं जो अंतर्राष्ट्रीयकरण का हिस्सा नहीं हैं:
public String foo(String key) {
return "!" + key + "!"; //$NON-NLS-1$ //$NON-NLS-2$
}
टिप्पणियाँ:
//
हर बार अग्रणी आवश्यक है$NON-NLS$
एक ही पंक्ति में कई स्ट्रिंग्स के लिए कोई वैश्विक नहीं //$NON-NLS-x$
)पुस्तक EMF: एक्लिप्स मॉडलिंग फ्रेमवर्क 250 पृष्ठ पर कहती है:
नॉन-एनएलएस मार्कर- एक्लिप्स के जावा कंपाइलर में नेशनल लैंग्वेज सपोर्ट (एनएलएस) को सक्षम बनाने के लिए गैर-बाहरी तारों को एक चेतावनी या त्रुटि के रूप में चिह्नित करने की क्षमता है। ईएमएफ-जनरेट कोड उन संदेशों के लिए कठोर कोडिंग स्ट्रिंग्स का उपयोग नहीं करता है जो उपयोगकर्ता देखेंगे; हालाँकि, स्ट्रिंग शाब्दिक अक्सर दिखाई देते हैं, उदाहरण के लिए, एक संपत्ति फ़ाइल में बाहरी स्ट्रिंग्स की तलाश के लिए कुंजी। यह गुण नियंत्रित करता है कि क्या उन टिप्पणियों को शामिल करना है जो उन शाब्दिकों को गैर-अनुवाद योग्य के रूप में चिह्नित करते हैं, ताकि संकलक उन्हें ध्वजांकित न करें।
अधिक जानकारी के लिए , जेनरेटर जीयूआई और अपने ग्रहण प्लग-इन का अंतर्राष्ट्रीयकरण कैसे करें , यह भी देखें ।
आप इस सुविधा को सक्षम / अक्षम कर सकते हैं। ग्रहण नियॉन पर जाएं
Project > Properties > Java Compiler > Errors/Warnings
और क्षेत्र का चयन करें
Non-externalized strings (missing/unused $NON-NLS$ tag)
अगर आप Android डेवलपर हैं। आपके द्वारा देखे जा सकने वाले सभी स्ट्रिंग को संसाधन फ़ाइल /res/values/strings.xml में होना चाहिए ताकि आप R.string उपयोग करने वाले कोड में strings.xml फ़ाइल पढ़ सकें .. टैग जोड़कर // $ NON-NLS- $ आप हैं यह देखते हुए कि स्ट्रिंग उपयोगकर्ताओं द्वारा नहीं देखी जाएगी।
ग्रहण हेलियोस में चेतावनी को चालू किया जा सकता है Window -> preferences -> java -> Compiler -> code style -> "Non-externalized Strings (missing/unused &NON-NLS$ tag)
।
यदि आप अपनी गतिविधि को बहु-भाषा बनाने की योजना बना रहे हैं, तो इसे चालू करने की सिफारिश की जाएगी। और फिर उन स्ट्रिंग को & NON-NLS $ टैग को जोड़ना जो आपके लिए आंतरिक हैं। यदि आप चेतावनी या त्रुटि पर राइट क्लिक करते हैं, तो एक्लिप्स में एक्लिप्स $ NON- एनएलएस $ टैग जोड़ देगा।
इसका उपयोग ग्रहण द्वारा यह इंगित करने के लिए किया जाता है कि किसी स्ट्रिंग का अनुवाद करने की आवश्यकता नहीं है, शायद इसलिए कि यह एप्लिकेशन के उपयोगकर्ताओं द्वारा नहीं देखा जाएगा।
यह संकलक को गैर-बाहरी स्ट्रिंग के बारे में शिकायत नहीं करने के लिए कहता है, और इसे स्थानीयकरण की आवश्यकता नहीं है।