2012-02-29 9 views

उत्तर

128

Culture संस्कृति-निर्भर डेटा (तिथियां, मुद्राएं, संख्याएं और इसी तरह) को कैसे प्रभावित करता है, इस पर प्रभाव डालता है। यहाँ कुछ उदाहरण हैं:

var date = new DateTime(2000, 1, 2); 
var number = 12345.6789; 

Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE"); 
Console.WriteLine(date); // 02.01.2000 00:00:00 
Console.WriteLine(number.ToString("C")); // 12.345,68 € 

Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-CA"); 
Console.WriteLine(date); // 2000-01-02 00:00:00 
Console.WriteLine(number.ToString("C")); // 12 345,68 $ 

Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US"); 
Console.WriteLine(date); // 1/2/2000 12:00:00 AM 
Console.WriteLine(number.ToString("C")); // $12,345.68 

संस्कृति भी प्रभावित करता है उसी तरह से उपयोगकर्ता इनपुट को पार्स:

const string numberString = "12.345,68"; 
decimal money; 

Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE"); 
money = decimal.Parse(numberString); // OK! 

Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US"); 
money = decimal.Parse(numberString); // FormatException is thrown, TryParse would return false 

मामलों में जहां पार्स सफल होता है से सावधान रहें, लेकिन परिणाम आप क्या उम्मीद करेंगे नहीं है यह होना था।

const string numberString = "12.345"; 
decimal money; 

Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE"); 
money = decimal.Parse(numberString); // 12345 

Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US"); 
money = decimal.Parse(numberString); // 12.345, where the . is a decimal point 

UICulture को प्रभावित करता है जो संसाधन फ़ाइल (संसाधन। लैंग .resx) अपने आवेदन के द्वारा करने के लिए लोड किया जा रहा है।

इसलिए जर्मन संसाधनों को लोड करने के लिए (संभावित रूप से स्थानीयकृत टेक्स्ट) आप जर्मन संस्कृति में UICulture सेट करेंगे और जर्मन स्वरूपण प्रदर्शित करेंगे (संसाधनों को लोड किए जाने वाले किसी भी प्रभाव के बिना) आप Culture सेट करेंगे।

+36

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

+1

के साथ चल रहा है इसके प्रभावों पर जोर देने के लिए: यहां तक ​​कि यदि आप किसी उपयोगकर्ता की भाषा का समर्थन नहीं करते हैं, तो सुनिश्चित करें कि आप स्वरूपण के लिए अपनी संस्कृति का समर्थन करते हैं! मैंने गलतियों को देखा है जहां एक ऐप संस्कृति और भाषा दोनों के लिए "एन-यूएस" पर वापस आ जाता है, जब इसे केवल भाषा के लिए फॉलबैक की आवश्यकता होती है। – ToolmakerSteve

+0

एक संपूर्ण 'संस्कृतिइन्फो' ऑब्जेक्ट का उपयोग केवल संसाधन फ़ाइल को निर्धारित करने के लिए क्या है जहां 'स्ट्रिंग' पर्याप्त होगा? (उदा। 'फ्रेमवर्क एलिमेंट' की 'भाषा' संपत्ति) – Wouter

-4

यूआईसील्चर संपत्ति प्रत्येक वेब ब्राउज़र के लिए बदल सकती है, जबकि संस्कृति स्थिर रहता है।

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

0

@ वाचे के अद्भुत स्पष्टीकरण के अलावा विचार करने के लिए बस एक छोटा सा मामला: आप यूआईसील्चर और संस्कृति दोनों (पेज स्तर और एप्लिकेशन स्तर) पर सेट कर सकते हैं।

उन्हें आवेदन के स्तर पर सेट करने के लिए, बस web.config

उदा में भूमंडलीकरण सत्र जोड़ने <globalization uiCulture="es" culture="es-MX" />

और उनमें पेज स्तर है, जो एक विशिष्ट (व्यक्तिगत) पृष्ठ पर जोड़ने के लिए अच्छा है पर स्थापित करने के लिए, सेट संस्कृति और UICulture @ पेज निर्देश

उदा में विशेषताएं <%@ Page UICulture="es" Culture="es-MX" %>

1

Culture and UICulture

मान दो अक्षर का तार के जोड़े हैं, पहली भाषा और क्षेत्र को परिभाषित करने के लिए दूसरे को परिभाषित करने के लिए है। उदाहरण:

यहाँ en-GBen का प्रतिनिधित्व करता है English और GB यहाँ Great Briton

en-US का प्रतिनिधित्व करता है enEnglish प्रतिनिधित्व करता है और US तिथि, समय की तरह संस्कृति निर्भर कार्यों के लिए United States

उपयोग Culture प्रतिनिधित्व करता है। और UICulture सही संसाधन फ़ाइल लोडिंग के लिए है।

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