2012-11-13 56 views
35

के लिए डिफ़ॉल्ट संस्कृति जानकारी कैसे सेट करें मैं उस कक्षा के लिए या संपूर्ण एप्लिकेशन के लिए डिफ़ॉल्ट संस्कृति जानकारी सेट करना चाहता हूं।संपूर्ण सी # अनुप्रयोग

तुर्की 3,2 में उदाहरण के लिए = अंग्रेज़ी 3.2

में तो आवेदन अपने स्थानीय का उपयोग करता है, लेकिन मैं यह डिफ़ॉल्ट के रूप में उपयोग करना चाहते हैं

System.Globalization.CultureInfo.InvariantCulture 

कैसे मैं उस के लिए डिफ़ॉल्ट के रूप में है कि करने के लिए सेट कर सकते हैं विशिष्ट वर्ग या पूरे आवेदन के लिए

+1

मुझे यह जोड़ना है कि के गैर-परिवर्तनीय संस्करणों को जोड़ना है। टॉस्ट्रिंग() बहुत धीमे हैं, और "थ्रेड। कंटेंट थ्रेड.कुरेंटकल्चर" कोई फर्क नहीं पड़ता है। – gatopeich

+0

संभावित डुप्लिकेट [क्या पूरे एप्लिकेशन के लिए संस्कृति स्थापित करने का कोई तरीका है? सभी मौजूदा धागे और नए धागे?] (Http://stackoverflow.com/questions/468791/is-there-a-way-of-setting-culture-for-a-whole-plication-all-current-threads-a) –

उत्तर

31

संपूर्ण एप्लिकेशन या विशेष कक्षा के लिए नहीं।

वर्तमान यूआईसील्चर और करंटकल्चर प्रति थ्रेड सेटटेबल हैं जैसा कि Is there a way of setting culture for a whole application? All current threads and new threads? पर चर्चा की गई है। आप InvariantCulture को बिल्कुल भी नहीं बदल सकते हैं।

नमूना कोड वर्तमान थ्रेड के लिए संस्कृतियों को बदलने के लिए:

CultureInfo ci = new CultureInfo(theCultureString); 
Thread.CurrentThread.CurrentCulture = ci; 
Thread.CurrentThread.CurrentUICulture = ci; 

वर्ग आप सेट/महत्वपूर्ण तरीकों अंदर संस्कृति बहाल कर सकते हैं के लिए, लेकिन यह काफी सबसे स्वरूपण संबंधित तरीकों कि संस्कृति ले लिए उपयुक्त ओवरराइड उपयोग करने के लिए सुरक्षित होगा तर्कों में से एक के रूप में:

(3.3).ToString(new CultureInfo("fr-FR")) 
+0

तो मैं इसे उस फॉर्म विंडो के लिए कैसे सेट करूं जिस पर मैं काम कर रहा हूं। यह – MonsterMMORPG

+0

धागे को पहचान नहीं रहा है, मैं वास्तव में प्रत्येक संक्रमण के लिए परिभाषित करने में रूचि नहीं रखता हूं। फॉर्म थ्रेड के लिए इसे सेट करना संभव नहीं है। आप जानते हैं कि जब आप एक नई विंडो फॉर्म प्रोजेक्ट बनाते हैं? – MonsterMMORPG

+0

@MonsterMMORPG, थ्रेड को पहचानने वाला/कहां नहीं है? –

37

4.0 के साथ, आपको एलेक्सी के वर्णन के रूप में प्रत्येक थ्रेड के लिए संस्कृति स्थापित करके इसे स्वयं प्रबंधित करने की आवश्यकता होगी। लेकिन 4.5 के साथ, आप एपडोमेन के लिए एक संस्कृति को परिभाषित कर सकते हैं और यह इसे संभालने का पसंदीदा तरीका है। प्रासंगिक एपीआई CultureInfo.DefaultThreadCurrentCulture और CultureInfo.DefaultThreadCurrentUICulture हैं।

+0

धन्यवाद सब, लेकिन 4.0 CurrentThread ... संस्करण मेरे लिए काम नहीं करता है। – gatopeich