2012-05-18 9 views
8

मैं जर्मन (डी) और रूसी (ru) में मेरी ExportForm स्थानीय गए हैं के रूप में आप नीचे देख सकते हैं: .NET स्थानीयकरण - भाषा कैसे सेट करें?

अगर मेरे CultureInfo जर्मन है (ऑस्ट्रिया के-de-एटी) तो सब ठीक है, मैं देख रहा हूँ प्रारूप जर्मन में अनुवाद किया:

string specCult = "de-AT"; 
Thread.CurrentThread.CurrentUICulture = new CultureInfo(specCult); 

लेकिन मैं रूसी (आरयू आरयू) के साथ अंग्रेजी UI देखने CultureInfo

string specCult = "ru-RU"; 
Thread.CurrentThread.CurrentUICulture = new CultureInfo(specCult); 

हालांकि अगर मैं "आरयू" के बदले "आरयू आरयू" का उपयोग करने CultureInfo बनाएं यह काम करता है:

string specCult = "ru"; 
Thread.CurrentThread.CurrentUICulture = new CultureInfo(specCult); 

क्या आप कृपया मेरी मदद कर सकते हैं समस्या का आह्वान क्या हो सकता है? या कृपया समस्या की जांच करने के लिए मुझे एक दिशा बताएं।

+0

'ru-rU' के लिए खाली संसाधन फ़ाइल जोड़ने का प्रयास करें। इसमें पाए गए संसाधनों को 'ru' फ़ाइल में वापस नहीं आना चाहिए। – Oded

+0

बहुत अजीब, लेकिन अगर मैं आरयू-आरयू के लिए एक गैर-खाली संसाधन फ़ाइल जोड़ता हूं, तो भी मैं इसे थ्रेड द्वारा प्रदर्शित करने में असमर्थ हूं। कंटेंट थ्रेड। कंटेंट यूआईसील्चर = न्यू कल्चरइन्फो ("आरयू-आरयू") –

+0

मुझे यह बहुत अजीब लगता है कि आपको "डी-एटी" (और यह "आरयू" के लिए काम कर रहा है) के साथ ऐसी समस्या नहीं देख रही है। आपके डीबगर में आप यह देख सकते हैं कि थ्रेड। कंटेंट थ्रेड। कंटेंट यूआईसील्चर इसे नई संस्कृतिइन्फो ("आरयू-आरयू") सौंपने के बाद सेट है ... मुझे आश्चर्य है कि यह समस्या CultureInfo कन्स्ट्रक्टर में है या नहीं। – Clafou

उत्तर

0

आरयू रूसी संस्कृति के लिए तटस्थ नाम है, और आरयू-रु विशिष्ट रूसी (रूस) संस्कृति का नाम है।

This is taken from MSDN link

स्टार्टअप पर, उदाहरण के उन जिस पर डिफ़ॉल्ट सिस्टम संस्कृति पहले से ही रूस को छोड़कर सभी सिस्टम पर वर्तमान संस्कृति और रूसी (रूस) के लिए वर्तमान UI संस्कृति सेट (रूस)। यदि डिफ़ॉल्ट सिस्टम संस्कृति पहले से ही रूसी (रूस) है, तो कोड वर्तमान संस्कृति और वर्तमान यूआई संस्कृति अंग्रेजी (संयुक्त राज्य) को सेट करता है।

Here is other good explanation

एक विशिष्ट संस्कृति के लिए संसाधनों ऑपरेटिंग सिस्टम में उपलब्ध नहीं हैं, तो संबद्ध तटस्थ संस्कृति के लिए संसाधनों किया जाता है। यदि तटस्थ संस्कृति के संसाधन उपलब्ध नहीं हैं, तो मुख्य असेंबली में एम्बेडेड संसाधनों का उपयोग किया जाता है।

विंडोज एपीआई में लोकेशंस की सूची .NET Framework द्वारा समर्थित संस्कृतियों की सूची से थोड़ा अलग है। यदि Windows के साथ इंटरऑपरेबिलिटी आवश्यक है, उदाहरण के लिए, पी/इनवॉक तंत्र के माध्यम से, एप्लिकेशन को ऑपरेटिंग सिस्टम के लिए परिभाषित एक विशिष्ट संस्कृति का उपयोग करना चाहिए। विशिष्ट संस्कृति का उपयोग समतुल्य विंडोज लोकेल के साथ स्थिरता सुनिश्चित करता है, जिसे लोकल पहचानकर्ता के साथ पहचाना जाता है जो एलसीआईडी ​​जैसा ही है। आरयू आरयू मेरी मुख्य परियोजना विधानसभा सेटिंग में एक तटस्थ भाषा के रूप में चयनित किया गया था:

+0

आपको फ़ॉलबैक के बारे में पढ़ने की आवश्यकता है। यह इस मुद्दे को संबोधित नहीं करता है। – Oded

2

मैं इस समस्या निर्धारित किया है।

एमएसडीएन: तटस्थ स्रोत भाषाभाषा विशेषता उस भाषा के संसाधन प्रबंधक को सूचित करती है जिसका उपयोग असेंबली के लिए तटस्थ संस्कृति के संसाधनों को प्रदर्शित करने के लिए किया जाता था। जब यह तटस्थ संसाधन भाषा के समान संस्कृति में संसाधनों को देखता है, तो संसाधन प्रबंधक स्वचालित रूप से उन संसाधनों का उपयोग करता है जो मुख्य असेंबली में स्थित हैं।यह एक उपग्रह असेंबली की तलाश करने के बजाय ऐसा करता है जिसमें वर्तमान थ्रेड के लिए वर्तमान उपयोगकर्ता इंटरफ़ेस संस्कृति है। यह आपके द्वारा लोड किए जाने वाले पहले संसाधन के लिए लुकअप प्रदर्शन को बेहतर बनाता है और आपके कार्य सेट को कम कर सकता है।

http://msdn.microsoft.com/en-us/library/bb385967.aspx