मेरी Silverlight 4 MVVM आवेदन में, मैं रनटाइम के दौरान भाषाओं स्विच कर सकते हैं: आदानों के लिएसिल्वरलाइट ValidatesOnException डिफ़ॉल्ट संदेश स्थानीयकरण
public void SetLanguage(string language)
{
var culture = new CultureInfo(language);
Thread.CurrentThread.CurrentUICulture = culture;
Thread.CurrentThread.CurrentCulture = culture;
// ...
}
, मैं सिर्फ कहा, "ValidatesOnException = सच" रूपांतरण समस्याओं के मामले में और यह करता है काम। लेकिन डिफ़ॉल्ट अपवाद संदेश मेरे ओएस की संस्कृति में है और मैन्युअल रूप से चुने गए में नहीं है।
इस धागे में exception message localization पर विचार वर्तमान संस्कृति और वर्तमान यूआईसील्चर को बदलना है, जो मैंने किया था। तो मैं फंस गया हूँ।
मैं क्या कर सकता हूं?
धन्यवाद :)
संपादित करें: मैं आदेश को उपयोगकर्ता के इनपुट को मान्य करने में convertback विधि में एक कस्टम अपवाद के साथ एक कस्टम कनवर्टर का उपयोग करने की कोशिश की। समस्या, कन्वर्टबैक विधि के भीतर एक अपवाद मान्यताओं द्वारा पकड़ा नहीं जाता है अपवाद, यह एप्लिकेशन को तोड़ देता है।
संपादित करें 2: स्पष्टीकरण के लिए -> यदि मेरे पास एक टेक्स्टबॉक्स से जुड़ी एक दशमलव संपत्ति है, और मैं इस टेक्स्टबॉक्स में "blabla" दर्ज करता हूं, तो मैं देखना चाहता हूं कि कोई समस्या है, और मैं संदेश में होना चाहता हूं रनटाइम लोकेल और ओएस लोकेल नहीं। मैं अपने प्रॉपर्टी सेटर में अपवाद नहीं उठा सकता क्योंकि मैं वहां कभी नहीं जाता, डिफ़ॉल्ट कनवर्टर इससे पहले अपना अपवाद उठाता है।
मुझे उम्मीद है कि यह स्पष्ट है। अगर मैं आपकी मदद करने में आपकी मदद कर सकता हूं, तो कृपया संकोच न करें :)
मैं कन्स्ट्रक्टर में भाषा सेट नहीं करना चाहता, मैं रनटाइम पर इसे बदलना चाहता हूं। यह लागू नहीं होता है, यह। भाषा निजी सेट है। –
सिर्फ इसलिए कि यह कन्स्ट्रक्टर में है इसका मतलब यह नहीं है कि यह रनटाइम पर नहीं हो सकता है।एक पैरामीटरयुक्त कन्स्ट्रक्टर का उपयोग करें और सेटरंगेज विधि के समान तर्क शामिल करें जिसका आपने उपयोग किया है –