मुझे उपयोगकर्ता की क्षेत्रीय सेटिंग्स के संबंध में विंडोज 8 मेट्रो ऐप्स (एक्सएएमएल & सी #) में कुछ समस्याएं आ रही हैं। ऐसा लगता है कि ऐप्स उपयोगकर्ता की क्षेत्रीय सेटिंग्स का सम्मान नहीं करेंगे, भले ही आपका विंडोज 8 फ़िनिश प्रारूप में दिनांक और समय प्रदर्शित करने के लिए सेट हो, फिर भी ऐप्स उन्हें यूएस-स्वरूपण का उपयोग करके प्रदर्शित करेंगे। लेकिन यह इतनी बड़ी समस्या है कि मुझे कुछ याद आना चाहिए?WinRT ऐप्स और क्षेत्रीय सेटिंग्स। उपयोगकर्ता की क्षेत्रीय सेटिंग्स के आधार पर तिथियों और संख्याओं को प्रारूपित करने का सही तरीका?
इसका परीक्षण करने के लिए मैंने WPF-application बनाकर शुरू किया।
private void Culture_Loaded_1(object sender, RoutedEventArgs e)
{
this.Culture.Text = System.Globalization.CultureInfo.CurrentCulture.DisplayName;
}
private void Date_Loaded_1(object sender, RoutedEventArgs e)
{
this.Date.Text = DateTime.Now.ToString();
}
यहाँ मेरी डिफ़ॉल्ट क्षेत्रीय सेटिंग है:: आवेदन सिर्फ CurrentCulture और स्वरूपित DateTime.Now बाहर प्रिंट
जब चलाने के लिए, एप्लिकेशन फिनिश प्रारूप में प्रदर्शित की गई तिथि:
फिर मैंने क्षेत्रीय सेटिंग्स को अमेरिका में बदल दिया:
और जब एप्लिकेशन फिर से चलाया गया था, संस्कृति और स्वरूपण बदल दिया है:
यह के रूप में मैं सब कुछ उम्मीद काम करने के लिए और यह भी कि कैसे मैं WinRT क्षुधा काम करने की उम्मीद है।
तो अगले चरण के रूप में, मैंने एक ही कोड के साथ एक WinRT (XAML & सी #) ऐप बनाया और क्षेत्रीय सेटिंग्स को वापस फिनिश में वापस कर दिया। समस्या:
यहां तक कि जब मैं क्षेत्रीय सेटिंग कि स्वरूपण "फिनिश" होना चाहिए के माध्यम से परिभाषित किया है, WinRT एप्लिकेशन अमेरिका-स्वरूपण के साथ दिनांक प्रदर्शित करता है। मैं फिर ऐप्स के परियोजना फ़ाइल को संशोधित और fi-fi डिफ़ॉल्ट भाषा बनाया:
अजीब:
यह परिवर्तन भी एप्लिकेशन की संस्कृति को संशोधित किया। मैंने डिफ़ॉल्ट भाषा को अपने डिफ़ॉल्ट मान में वापस बदल दिया और फ़ॉर्मेटिंग को यूएस में बहाल कर दिया गया। इसके बाद मैंने प्रोजेक्ट के अंदर फ़ोल्डर्स "स्ट्रिंग्स-फाई-एफआई" बनाया और परियोजना पर खाली "Resources.resw" जोड़ा। के रूप में मैं अब फिनिश स्वरूपण हो रही थी इस खाली फ़ाइल, पर्याप्त प्रतीत हो रहा है: जैसे ही मैं खाली संसाधन फ़ाइल को हटाने के रूप में
, formattings अमेरिका के लिए वापस reverts:
बहुत अजीब।
इससे कुछ प्रश्न होते हैं, लेकिन मुख्य बात यह है कि: क्या यह जानबूझकर है कि WinRT-Apps उपयोगकर्ता की क्षेत्रीय सेटिंग्स का पालन नहीं करते हैं जैसे डब्ल्यूपीएफ ऐप्स करते हैं?
तो, acutally कैसे प्राप्त/उपयोगकर्ता क्षेत्रीय स्वरूप सेटिंग का अनुपालन? मैंने परीक्षण उद्देश्य के लिए निम्न कॉन्फ़िगरेशन के साथ विंडोज फोन 8.1 एमुलेटर शुरू किया: यूआई भाषा: जर्मन, क्षेत्र: यूएस, प्रारूप सेटिंग्स: आयरिश मुझे जानकारी प्राप्त करने का कोई तरीका नहीं मिला है, कि उपयोगकर्ता ने अपनी प्रारूप सेटिंग्स सेट की है आयरिश के लिए। और मेरी एकमात्र इच्छा डेटटाइम को प्रारूपित करना है जैसे कि उपयोगकर्ता इसे देखना चाहता है। और क्षेत्रीय प्रारूप स्वचालित रूप से इसका क्षेत्र नहीं है, मैंने डिवाइस को या यूआई लैंगौज को चुना है। मेरे उपकरणों पर मैंने यूआई को अंग्रेजी में सेट किया है लेकिन जर्मन प्रारूप में सभी टाइमस्टैम्प और तिथियां देखना चाहते हैं ... – Kornelis
धन्यवाद, निम्नलिखित बहुत अच्छा था, क्योंकि मुझे आईएसओ 3166-1 अल्फा 2 https://en.wikipedia.org/ की आवश्यकता थी विकी/आईएसओ_3166-1_alpha-2 भौगोलिक क्षेत्र उपयोगकर्ता पंजीकरण = नया भौगोलिक क्षेत्र(); स्ट्रिंग क्षेत्र कोड = उपयोगकर्ता रीजन। कोड दोवेंटर; – Quincy
यह मेरे लिए काम करता है लेकिन अब मुझे बड़ी संख्या की आवश्यकता है और 'मुद्राफॉर्मेटर' दशमलव का समर्थन नहीं करता है इसलिए मुझे एक कामकाज की आवश्यकता है ... –