2012-02-01 36 views
27

मुझे अपने एप्लिकेशन की संस्कृति को ऐप.कॉन्फिग फ़ाइल के माध्यम से सेट करने की आवश्यकता है, ताकि प्रत्येक ऑपरेशन के लिए संस्कृति को मैन्युअल रूप से सूचित करने की आवश्यकता के बिना पार्सिंग तिथियों के लिए "pt-BR" स्वचालित रूप से उपयोग किया जा सके।मैं एक App.Config फ़ाइल से CultureInfo.CurrentCulture कैसे सेट करूं?

जहाँ तक मुझे पता है, globalization अनुभाग है जिसे वेब पर system.web अनुभाग के अंदर परिभाषित किया जा सकता है। फ़ाइल कॉन्फ़िगर करें, लेकिन मैं एक कंसोल एप्लिकेशन चला रहा हूं और मैं इसे समझ नहीं सकता।

कोई विचार?

उत्तर

22

मैं App.config से यह स्थापित करने के लिए निर्मित एक तरह से पता नहीं है, लेकिन आप सिर्फ इतना है कि मूल्य को पढ़ने के इस

<configuration> 
    <appSettings> 
     <add key="DefaultCulture" value="pt-BR" /> 
    </appSettings> 
</configuration> 

की तरह अपने App.config में एक महत्वपूर्ण परिभाषित करने और अपने आवेदन में कर सकता है और संस्कृति सेट करें

CultureInfo culture = new CultureInfo(ConfigurationManager.AppSettings["DefaultCulture"]); 
Thread.CurrentThread.CurrentCulture = culture; 
Thread.CurrentThread.CurrentUICulture = culture; 
+1

पर इस लाइन का उपयोग करता हूं जो किसी तृतीय पक्ष प्रोग्राम के लिए काम नहीं करता है। –

+1

मुझे लगता है कि यदि आप एप्लिकेशन में सिस्टम संस्कृति को ओवरराइड करना चाहते हैं तो यह वह दृष्टिकोण है जिसे आप लेना चाहिए। आम तौर पर संस्कृति को स्वचालित रूप से ऑपरेटिंग सिस्टम सेटिंग्स से उठाया जाना चाहिए। सामान्य रूप से इस तरह की संस्कृति को कड़ी मेहनत करने के बजाय मैं अपने क्षेत्र और भाषा को सही ढंग से सेट करने वाले क्लाइंट कंप्यूटर पर भरोसा करता हूं। – Mick

1

ऐसा स्वयं मत करो, लेकिन स्पष्ट रूप से। के रूप में जल्दी ही यह UICulture है आप InitialiseComponent से पहले यानी कर सकते हैं, यह सिर्फ है

Thread.CurrentThread.CurrentCulture = new CultureInfo("pt-BR") 

और या

Thread.CurrentThread.CurrentUICulture = new CultureInfo("pt-BR") 

कुछ भी आप

व्यक्तिगत रूप से उपयोग InvariantCulture के लिए वर्तमान संस्कृति का उपयोग नहीं करना चाहते हैं , मैं अकेले वर्तमान संस्कृति छोड़ दूंगा। सभी वैश्वीकरण के लिए InvariantCulture का उपयोग करें, I भिन्न नहीं होना चाहते हैं। फिर परियोजना गुणों में तटस्थ संस्कृति सेट करें।

मुझे हमेशा लगता है कि वर्तमान संस्कृति को ठीक करना ताकि कोड काम करता है, भले ही उपयोगकर्ता की निजी पसंद किसी प्रकार का बुरा पुलिस हो।

+0

आपके "व्यक्तिगत रूप से" बिंदु के बारे में - क्या होगा यदि आप किसी ग्राहक की साइट में यूके सिस्टम को तैनात कर रहे हैं और वे सोने की छवि डिफ़ॉल्ट यूएसए संस्कृति हैं? यह ब्रिटेन में हर समय होता है, फिर हमें शिकायतें मिलती हैं जब '{0: सी}' डॉलर के संकेत दिखाती है! – tommed

+2

यदि वे अमेरिकी संस्कृति चाहते हैं और £ कुछ हुप्प कूदना आवश्यक है तो क्या यह नहीं है? सोचो कि मैं इसे उस बिंदु पर एक बहु-मुद्रा ऐप के रूप में मानता हूं, यानी प्रत्येक मौद्रिक मूल्य में मुद्रा विशेषता होगी, और मुद्रा को डिफ़ॉल्ट रूप से छोड़ने से पहले संस्कृति को छोड़ दें। –

+0

मैं असहमत नहीं हूं, यह सिर्फ एक शर्म की बात है कि एएसपी.नेट आपको यह सामान मुफ्त में देता है, शर्म वैश्वीकरण system.web का हिस्सा है – tommed

-2

सिस्टम का उपयोग कर। थ्रेडिंग;

थ्रेड। कंटेंट थ्रेड। कंटेंटकल्चर = नई प्रणाली। ग्लोबलाइजेशन। कल्चरइन्फो ("बीएन-बीडी");

// बांग्लादेश के लिए। मैं प्रत्येक पृष्ठ फॉर्म लोड इवेंट