2009-01-23 16 views
10

मैं एक परियोजना पर काम कर रहा हूं और मैं बस आवेदन को वैश्वीकृत करने के लिए आवश्यक सभी काम करना शुरू कर रहा हूं। एक चीज जो अक्सर आती है वह यह है कि अपवाद संदेशों को वैश्वीकृत करना है, लेकिन यह सुनिश्चित करना है कि स्ट्रिंग। फोर्मेट CultureInfo.InvariantCulture की बजाय CultureInfo.CurrentCulture का उपयोग करता है। इसके अतिरिक्त इसका मतलब यह होगा कि अपवाद संदेश संसाधन फ़ाइलों में संग्रहीत किए जाएंगे जिन्हें संस्कृति-विशिष्ट के रूप में चिह्नित किया जा सकता है।अपवाद संदेशों को वैश्विककृत किया जाना चाहिए

तो सवाल यह है कि अपवाद संदेशों को वैश्वीकृत किया जाना चाहिए या इन्हें इनवेरिएंट कल्चर या लेखक के देश में छोड़ा जाना चाहिए; मेरे मामले में अमेरिका में।

उत्तर

32

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

यदि आप बहुत दूर जाते हैं, तो आप केवल समय और प्रयास बर्बाद नहीं कर सकते हैं (और i18n बहुत प्रयास के लिए ले सकता है) लेकिन आप भी अपना समर्थन जीवन कठिन बना देंगे। आप वास्तव में एक विदेशी भाषा में लिखी गई लॉग फ़ाइलों को पढ़ना नहीं चाहते हैं और उन्हें अपनी मातृभाषा में वापस अनुवाद करना चाहते हैं।

यह माइक्रोसॉफ्ट उनके अपवाद संदेशों अंतर्राष्ट्रीयकरण करने के लिए समझ में आता है, क्योंकि वे डेवलपर्स दुनिया भर से द्वारा पढ़ा जाएगा - लेकिन जब तक आप कई देशों में डेवलपर्स जो एक सामान्य हिस्सा नहीं है के साथ बहुराष्ट्रीय रहे भाषा, मैं संदेश का अनुवाद नहीं करता जो वास्तव में dev/support के लिए है।

+0

+1 मुझे लगता है कि अधिक व्यावहारिक दृष्टिकोण। –

+0

+1 लेकिन एक 'नियोक्ता' मैंने एक पूर्व नियोक्ता से सुना है कि एक ही अपवाद कई तरीकों से फेंक दिया जा सकता है। यदि वे कभी भी अपवाद के शब्द को बदलना चाहते हैं, तो उन्हें केवल एक स्थान पर संसाधन बंडल को संपादित करने की आवश्यकता है। मैंने सोचा था कि यह बेवकूफ था ... –

+0

@Outlaw: हाँ, यह बेवकूफ है - क्योंकि इसका मतलब है कि अगर आपको एक साइट के लिए शब्द बदलने की ज़रूरत है, लेकिन दूसरी नहीं (जो मुझे बहुत अधिक प्रतीत होती है) तो आपको और अधिक काम मिल गया है कर। –

0

यदि आप अपवादों से निपटने के लिए एक होने जा रहे हैं, तो या तो उन्हें उन भाषा में छोड़ दें जिन्हें आप समझ सकते हैं, या उन्हें कोड दे सकते हैं ताकि आप उन्हें अपनी मूल भाषा में देख सकें।

10

आम तौर पर, मैं नहीं करता हूं।

किसी उपयोगकर्ता द्वारा देखा जा सकता तारों को वैश्वीकृत करें, और आप अपने अपवाद संदेशों को UI पर प्रतिबिंबित नहीं करते हैं, है ना?

सही? :)

+0

+1 जॉन एस के समान कहने के लिए +1, लेकिन संक्षेप में – MarkJ

0

मैं वैश्वीकरण द्वारा मानता हूं, आपका मतलब है i18n अनुपालन जिसे आमतौर पर अंतर्राष्ट्रीयकरण कहा जाता है। हां, नैदानिक ​​संदेशों सहित जीयूआई के सभी दृश्य भागों को अंतर्राष्ट्रीयकृत करें। लॉग फ़ाइल, जहां डेवलपर्स को वास्तविक जानकारी जैसे स्टैक ट्रेस प्राप्त करने के लिए जाना चाहिए, को अंतर्राष्ट्रीयकृत नहीं किया जाना चाहिए।

+0

नेट में, नामस्थान को "वैश्वीकरण" कहा जाता है। हम जो भी शब्दकोष एमएस लगाता है उसके साथ अटक गए हैं। = / – StingyJack

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