2009-05-30 15 views
8

मैं अपवाद संदेशों का जिक्र कर रहा हूं जो दिखाते हैं कि डेवलपर गलत तरीके से एपीआई का उपयोग कर रहा है। उदाहरण के लिए विधिवत गलत तरीके से गुजरना। तो अपवाद का प्रकार कि डेवलपर पहली बार अपना गलत कोड चलाएगा। अपवाद संदेश का प्रकार जिसे किसी सिस्टम के उपयोगकर्ता को कभी प्रदर्शित नहीं किया जाना चाहिए।डेवलपर को लक्षित अपवाद संदेशों को स्थानीयकृत किया जाना चाहिए?

यह इस सिद्धांत से संबंधित है कि प्रोग्रामिंग भाषा अंग्रेजी में है, इसलिए प्रोग्रामर को पहले से ही अंग्रेजी की समझ है। या कम से कम एक अपवाद संदेश समझने के लिए पर्याप्त है।

http://www.codinghorror.com/blog/archives/001248.html (कृपया इस सिद्धांत यहाँ का कोई चर्चा)

और हाँ मुझे लगता है कि .नेट फ्रेमवर्क "सब कुछ स्थानीय बनाना" दृष्टिकोण इस प्रकार है पता है।

+0

मुझे यकीन है कि अंग्रेज और अमेरिकियों के लिए संदेशों स्थानीय जाना चाहिए हूँ: Ь –

उत्तर

19

आपका प्रश्न फिर से लिखा जा सकता है "क्या सभी डेवलपर्स को एक ही त्रुटि संदेश मिलना चाहिए ताकि वे Google इसे प्राप्त कर सकें?" ;)

और इसका उत्तर हाँ है।

अनुवाद का मतलब है

  • कि संदेश नहीं रह गया है के रूप में जो कोई भी इरादा एपीआई लिखा ही है। यह वही अर्थ ले सकता है, या हो सकता है कि यह अनुवाद में कुछ खो गया हो। इसका बुरी तरह अनुवाद किया जा सकता है, और कुछ मामलों में यह कमजोर हो सकता है।
  • जो भी इसे पढ़ता है वह आसानी से Google में त्रुटि टाइप नहीं कर सकता है और यह देख सकता है कि यह त्रुटि किसने प्राप्त की है। क्योंकि हर किसी को एक अलग भाषा में एक ही त्रुटि मिलती है।

.NET के "सब कुछ स्थानीयकरण" दृष्टिकोण के बारे में, यह भयानक है। मैं अनगिनत बार इसे पार कर गया हूं, खासकर क्योंकि यदि यह स्थानीय संसाधन खोजने में असमर्थ है, तो आपको सादा अंग्रेजी संस्करण नहीं देता है। यह आपको वास्तविक त्रुटि जानकारी को प्रभावी ढंग से फेंकने के बजाय, "संसाधन का पता नहीं लगा सका" त्रुटि देता है।

+0

असल में जेल जो मैं पूछ रहा था वह नहीं है। मैं डेवलपर को यह समझने के लिए पूरी तरह से सोच रहा था कि उन्होंने क्या किया है। लेकिन यह एक बहुत अच्छा मुद्दा है जिसे मैंने नहीं माना था। +1 – Simon

+1

@jalf, मुझे लगता है कि यही कारण है कि प्रत्येक आईबीएम उत्पाद में संदेश संख्याएं होती हैं (उदा।, डीआरएल 0122 आई), भले ही त्रुटि टेक्स्ट को स्थानीयकृत किया जा सके। आप भाषा के बावजूद हमेशा संदेश संख्या पर खोज सकते हैं। – paxdiablo

+1

@ पैक्स: सच है, और एक अच्छा मुद्दा है। इससे आधा समस्या हल होती है (लोगों को इसे Google करने की इजाजत मिलती है), लेकिन वास्तव में पहली जगह में त्रुटि को समझने का हिस्सा नहीं है। जब तक मूल डेवलपर लक्ष्य भाषा में धाराप्रवाह न हो, तब तक आपका अनुवाद सही होने की संभावना नहीं है। – jalf

0

यह सब इस बात पर निर्भर करता है कि कोड को बनाए रखने के लिए कौन जा रहा है। यदि डेवलपर्स हमेशा अंग्रेजी होंगे, तो यह सब अंग्रेजी में रखने के लिए समझ में आता है।

इसके अलावा, मुझे यकीन नहीं है कि .NET Framework अपने त्रुटि संदेशों को स्थानीय तरीके से फेंकता है या नहीं। मैंने हमेशा सोचा कि उन त्रुटि संदेश हमेशा अंग्रेजी में रहते हैं, इसलिए आपके आंतरिक त्रुटि संदेशों को अंग्रेजी में भी रखना समझदारी होगी।

+2

NullReferenceException के निर्माता से सार्वजनिक NullReferenceException(): आधार (Environment.GetResourceString ("Arg_NullReferenceException")) और यहाँ किसी को कैसे पूछ रहा है चालू करने के लिए अपवादों के लिए स्थानीयकरण बंद करें http://stackoverflow.com/questions/721337/forcing-english-language-exceptions-in-net-framework – Simon

4

नहीं, मुझे नहीं लगता कि वे होना चाहिए (या कम से कम हम इसे नहीं करते हैं, और हम बहुत बड़े हैं :-)। डेवलपर्स के बारे में चिंता किए बिना उपयोगकर्ता द्वारा देखी जाने वाली सभी सामग्री को स्थानीयकृत करने में पर्याप्त प्रयास शामिल हैं।

कोई मुख्यधारा की भाषा नहीं है जो विदेशी भाषा के कीवर्ड और मानक पुस्तकालयों का समर्थन करती है, इसलिए अंग्रेजी भाषा का एक प्राथमिक कमांड डेवलपर्स के लिए पहले से ही एक पूर्व-आवश्यकता है।

बेशक, यदि डेवलपर्स अपनी खुद की पुस्तकालय (या भाषा) विकसित करते हैं, तो वे स्थानीय भाषा को स्थानीयकृत या चुनने की स्वतंत्रता में हैं।

2

हमारी फर्म में हम अपवाद/त्रुटि संदेशों को हमारे कंपाइलर/आईडीई के लिए अनुवादित करने की अनुमति देते हैं और इन अपवादों/त्रुटि संदेशों का अनुवाद करने के लिए ढांचे की आपूर्ति करते हैं, हालांकि हम स्वयं अनुवाद नहीं करते हैं। फिर यह ग्राहक के लिए अनुवाद करना है अगर वह चाहता है।ऐसे कई देश हैं जहां अंग्रेजी लोकप्रिय नहीं है और जहां अपनी भाषा को बढ़ावा दिया जाता है। इसलिए अनुवादित त्रुटि संदेशों की अनुमति देने के लिए यह समझ में आता है।

+3

एक एरो संदेश एक अपवाद संदेश के समान नहीं है। अपवाद संदेश डेवलपर्स के लिए हैं। त्रुटि संदेश उपयोगकर्ताओं के लिए हैं। त्रुटि संदेशों का अनुवाद किया जाना चाहिए। अपवाद संदेशों का अनुवाद नहीं किया जाना चाहिए। मुझे परवाह नहीं है कि प्रबंधन क्या कहता है। –

+0

लगभग हमेशा त्रुटियां संदेश पूर्व हैं। संदेश इसलिए वे एक ही चीज़ हैं। –

0

यदि आप अपने अपवाद संदेशों का अनुवाद करते हैं, तो आपको उन सभी ग्रंथों का भी अनुवाद करना चाहिए जहां अपवाद संदेश होते हैं। इसमें आपके पास कोई ज्ञान आधार या बगट्रैकिंग सिस्टम शामिल है, क्योंकि उपयोगकर्ता और प्रोग्रामर उन्हें स्क्रीन पर दिखाई देने वाले अपवाद संदेश के लिए खोजना चाहते हैं।

+1

उपयोगकर्ता अपवाद संदेशों को खोजना नहीं चाहते हैं। उपयोगकर्ताओं को संभवतः यह समझने की उम्मीद नहीं की जा सकती है कि "ऑब्जेक्ट संदर्भ किसी ऑब्जेक्ट के उदाहरण पर सेट नहीं है।" इसका मतलब है, यहां तक ​​कि अपनी मूल भाषा में भी। वास्तव में यह एक गैर प्रोग्रामिंग परिप्रेक्ष्य से देखा जब थोड़ा मूर्खतापूर्ण लगता है। –

संबंधित मुद्दे