संस्कृति और UICulture के बीच अंतर क्या है?


126

किसी ने मुझे बीच के अंतर पर कुछ और जानकारी दे सकता है Cultureऔर UICultureनेट ढांचे के भीतर? वे क्या करते हैं और कब उपयोग करते हैं?

जवाबों:


148

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प्रभावित करता है कि कौन सी संसाधन फ़ाइल (संसाधन। lang .resx) आपके एप्लिकेशन द्वारा लोड की जाने वाली है।

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


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

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

1
CultureInfoकेवल संसाधन फ़ाइल को निर्धारित करने के लिए एक संपूर्ण ऑब्जेक्ट का उपयोग करने में क्या बिंदु है जहां stringपर्याप्त होगा? (उदा। की Languageसंपत्ति FrameworkElement)
राउटर

2

Culture and UICulture

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

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

en-USयहाँ enप्रतिनिधित्व करता है Englishऔर USप्रतिनिधित्व करता हैUnited States

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


0

@ वेच की भयानक व्याख्या के अलावा विचार करने के लिए बस एक छोटा सा मामला: आप UICulture और Culture (पृष्ठ स्तर और अनुप्रयोग स्तर) दोनों पर सेट कर सकते हैं।

उन्हें एप्लिकेशन स्तर पर सेट करने के लिए, web.config में वैश्वीकरण सत्र जोड़ें

जैसे <globalization uiCulture="es" culture="es-MX" />

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

जैसे <%@ Page UICulture="es" Culture="es-MX" %>


-4

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

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.