कुछ समय पहले मैं 'Re-using Strings in Scripted Content' पर डब्ल्यू 3 सी लेख पढ़ रहा था, जिसमें अंतर्राष्ट्रीयकरण पर कुछ उपयोगी सलाह है, लेकिन जो मुझे DRY (खुद को दोहराएं) सिद्धांत के बावजूद मुझे मारता है दोहराव कोड को खत्म करने के लिए।अपने आप को अंतर्राष्ट्रीयकरण बनाम दोहराएं
उनके उदाहरण लेते हैं, हम इस तरह कुछ कोड हो सकता है ...
print "The printer is ";
if (printer.working) {
print "on.\n";
} else {
print "off.\n";
}
print "The stapler is ";
if (stapler.working) {
print "on.\n";
} else {
print "off.\n";
}
मेरे वृत्ति मोटे तौर पर इस प्रकार पुनरावृत्ति को खत्म करने की होगी ...
report-state(printer, "printer");
report-state(stapler, "stapler");
function report-state(name, object) {
print "The "+name+" is ";
if (object.working) {
print "on\n";
} else {
print "off\n";
}
}
... लेकिन ऐसा करने से हमें कोड में कठिनाई होगी यदि हमें इसे स्पेनिश में स्थानांतरित करने की आवश्यकता है क्योंकि 'ऑन' शब्द उन दो मामलों में स्पष्ट रूप से अलग है।
तो, मुझे लगता है कि मेरा सवाल यह है कि, अन्य डेवलपर्स ने अपने कोड के अंतर्राष्ट्रीयकरण के साथ डीआरवाई सिद्धांत को संतुलित करने के लिए कैसे संपर्क किया है?
मेरा हिस्सा यह तर्क देना चाहता है कि अंतर्राष्ट्रीयकरण उन अत्यधिक प्रोग्रामिंग "you arent gonna need it" स्थितियों में से एक है। फ्लिप पक्ष पर, हालांकि, डीआरवाई सिद्धांत के साथ दोबारा प्रतिक्रिया करना इसे कार्यक्षमता को कार्यान्वित करना आसान बनाता है, क्योंकि यह आवश्यक है, जैसा कि यह यहां कठिन नहीं है।
देखें [i18next] का उपयोग करके (http://i18next.com/pages/doc_features.html#nesting) के घोंसले कार्यक्षमता मैं एक शब्दकोष का पुन: उपयोग करने का प्रयास करें, उदाहरण: '$ टी (प्रिंटर) चालू है इसलिए मेरे पास प्रिंटर शब्द एक ही स्थान पर है। – jamuhl