मैं अपने ऐप को जापानी और साथ ही डिफ़ॉल्ट अंग्रेजी में स्थानांतरित करने के लिए एक मृत-सरल तरीका ढूंढ रहा हूं। एकमात्र आवश्यकता यह है कि हम इसे एक निर्दिष्ट भाषा में लॉन्च करने में सक्षम हैं। हम LocBaml सामान का उपयोग कर रहे थे जो घबराहट, जटिल, त्रुटि-प्रवण है, और हमारी निर्माण प्रक्रिया को बहुत मुश्किल बनाता है।क्या WPF को स्थानीयकरण के लिए मानक resx + स्थिर बाध्यकारी का उपयोग करने का कोई कारण नहीं है?
मैं सब कुछ संसाधन फ़ाइलों (Strings.resx, Strings.ja.resx) करने के लिए वापस जाने और सिर्फ स्थिर बंधन कर रही है, इस तरह पर विचार कर रहा हूँ: क्या भाषा जानने
लांच समय में<TextBlock Text="{x:Static resx:MyWindow.MessageText}" />
तब वे चाहते हैं और स्विचिंग जो संसाधन यह से तार खींचती है:
public static void Main(string[] args)
{
if (args[0] == "-lang")
{
Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo(args[i + 1]);
}
App app = new App();
app.InitializeComponent();
app.Run();
}
यह आसान है और यह केवल सच दोष यह लगता है कि हम क्रम है, जो कुछ हम कभी भी करना चाहते हैं जाएगा नहीं है पर स्विच नहीं कर सकते है। मैं इस तरह के कुछ स्थानीयकरण एक्सटेंशन देखा है:
http://wpflocalization.codeplex.com/
http://www.wpftutorial.net/LocalizeMarkupExtension.html
वे क्लीनर Xaml प्रदान करते हैं और डिजाइन समय में एक सा अच्छे लग रहे हैं, लेकिन मैं आपको अनुमति देता है के अलावा किसी कार्यात्मक अंतर नहीं देख सकते हैं रनटाइम पर भाषाओं को बदलने के लिए। क्या मुझे यहां कुछ याद आ रही है, या क्या हमें बस आसान और अंतर्निहित मार्ग के लिए जाना चाहिए? कुल योग में हमारे पास केवल ~ 100 तार हैं जिन्हें स्थानीयकृत करने की आवश्यकता है। मुझे लगता है कि सबसे आसान मार्ग यहां सबसे अच्छा है, विशेष रूप से हमारे ऐप की सापेक्ष सादगी पर विचार करना।
धन्यवाद! मेरा विश्वास करो, आपको बहुत खुशी होनी चाहिए कि आपको कभी भी पूर्ण बिल्ड प्रोजेक्ट पर लोकबाम का उपयोग नहीं करना पड़ेगा। क्या आपको पता है कि छवियों को resx के साथ स्थानीयकृत किया जा सकता है? मुझे नहीं लगता कि हमें उन्हें कभी भी स्थानीयकृत करने की आवश्यकता होगी, लेकिन केवल परेशान करें ... – Stevoman
@ बेकनचेस - मैं यूआरएल को रेक्स में जोड़ दूंगा, फिर उरी ऑब्जेक्ट का उपयोग यूआरएल होगा, उरी को उस संपत्ति के रूप में उजागर करें एक ViewModel और एक छवि इसके साथ बांध है। –
बढ़िया, धन्यवाद! – Stevoman