2012-01-09 18 views
6

पर सभी स्थानीयकरण संसाधन लोड करें मुझे कुछ समान विषय मिल गए हैं, लेकिन मुझे वह जवाब नहीं मिला जो मैं ढूंढ रहा हूं।स्टार्टअप

मैं "अधिक गंभीर" (WinForms) प्रोजेक्ट शुरू करने से पहले अंतर्राष्ट्रीयकरण की कोशिश कर रहा हूं। इसलिए, वर्तमान में मेरे छोटे परीक्षण आवेदन में, मैंने सैटेलाइट असेंबली (भाषा डीएलएल फाइलों) का उपयोग करके स्थानीयकरण को हल किया, और मैं संसाधनों के टेक्स्ट फ़ील्ड को संसाधन प्रबंधक के साथ भरता हूं, और भाषा परिवर्तन Thread.CurrentThread.CurrentCulture & Thread.CurrentThread द्वारा हल किया जाता है। CurrentUICulture विधियों।

CultureInfo ci = new CultureInfo(lang); 
Thread.CurrentThread.CurrentCulture = ci; 
Thread.CurrentThread.CurrentUICulture = ci; 

this.button1.Text = Resources.LocTest.String1; 

मैं, न केवल मुख्य रूप लेकिन उन सभी को कार्यक्रम प्रारंभिक स्टार्टअप पर संसाधनों से सभी ग्रंथों लोड करने के लिए (भी उन रूपों पर, कि instantiated नहीं अभी तक) चाहते हैं! मैं इसे कैसे कार्यान्वित कर सकता हूं? क्या यह प्रक्रिया बिल्कुल व्यवहार्य है?

मुझे कुछ सलाह मिली है कि मुझे "स्थानीयकरण योग्य" संपत्ति को सत्य में सेट करके और अनुवादों को पूरा करके संपूर्ण स्थानीयकरण प्रक्रिया को सरल बनाना चाहिए। और अधिकांश ट्यूटोरियल इस तरह से पालन करते हैं।

क्या किसी के पास कोई विचार है, मुझे किस विधि का उपयोग करना चाहिए?

अग्रिम धन्यवाद!

मैं बहुत स्थानीयकरण के साथ भ्रमित हूँ ...

+1

मूल रूप से, आप हमेशा सर्वोत्तम प्रथाओं का पालन करना चाहिए और पहिया (कैसे उबाऊ) को बदलने की कोशिश मत करो।इसलिए मानक दृष्टिकोण का उपयोग करना एक अच्छा विचार है, जो स्थानीय स्तर पर स्विच करने योग्य है और विजुअल स्टूडियो को संसाधन प्रबंधक और अन्य सामान बनाने की देखभाल करने देता है। आपको ** ** थ्रेड संस्कृतियों को असाइन नहीं करना चाहिए, जिसे स्वचालित रूप से असाइन किया जाना चाहिए, अन्यथा अंतर्निहित फॉल-बैक तंत्र काम नहीं करेगा। –

+1

संसाधन लोड करने के लिए, कोशिश करने वालों के लिए सबकुछ संभव है। एकमात्र सवाल यह है कि दुनिया में आप ऐसा क्यों करना चाहते हैं? –

+0

आपके उत्तर के लिए धन्यवाद! मैंने समझा कि आपने लिखा है ("पहिया को फिर से शुरू करने की कोशिश न करें")! मैं सर्वोत्तम प्रथाओं का पालन करने की कोशिश करता हूं। असल में, एकमात्र कारण मैं इस संसाधन डीएलएल संस्करण का उपयोग करना चाहता था, उस भाषा को बदलने के दौरान उपयोगकर्ता को एप्लिकेशन को पुनरारंभ करना होगा ... –

उत्तर

2

दूसरी विधि आप उल्लेख किया है का उपयोग करें।

मुझे कुछ सलाह मिली है कि मुझे "स्थानीयकरण योग्य" संपत्ति को सही करने और अनुवाद करने के लिए पूरी स्थानीयकरण प्रक्रिया को सरल बनाना चाहिए। और अधिकांश ट्यूटोरियल इस तरह का पालन करते हैं।

क्योंकि यह माइक्रोसॉफ्ट को स्थानीयकरण को Winforms ऐप में कैसे किया जाना चाहिए इसका एकमात्र तरीका है। http://msdn.microsoft.com/en-us/library/y99d1cd3%28v=vs.90%29.aspx

एक समस्या यह आपकी पहली समाधान के साथ: आप कैसे का कहना है कि किसी अन्य भाषा में एक पाठ सही ढंग से प्रदर्शित किया जाएगा करते हैं?
यह उन समस्याओं में से एक है, माइक्रोसॉफ्ट को पता है। एसडीके में पाए गए एक छोटे से टूल के साथ: WINRES.exe आप डिज़ाइन किए गए फॉर्म देख सकते हैं और उनके लिए अनुवाद लिख सकते हैं। http://msdn.microsoft.com/en-us/library/8bxdx003%28v=vs.90%29.aspx

आप क्रम पर भाषा बदल सकते हैं और सभी रूपों इस लेख अपडेट करना चाहते हैं हो सकता है आप के लिए एक संकेत:

Dim crm As ComponentResourceManager 
crm = New ComponentResourceManager(GetType(Main)) 
crm.ApplyResources(cmdAddCustomer, cmdAddCustomer.Name) 
crm.ApplyResources(mnuFile, mnuFile.Name) 
crm.ApplyResources(mnuFileAddCustomer, mnuFileAddCustomer.Name) 

पिछले: http://msdn.microsoft.com/en-us/magazine/cc163609.aspx#S9
निम्नलिखित लाइनों एक howto अद्यतन आप यूआई समझाने देता है इस कोड की 3 पंक्तियां डिज़ाइनर फ़ाइल में प्रत्येक प्रपत्र (localizable = true) में पाई जा सकती हैं।
तो आप एक अद्यतन विधि के लिए एक इंटरफ़ेस निर्दिष्ट कर सकते हैं, जिसे प्रत्येक फॉर्म को कार्यान्वित करना चाहिए, इंटरफ़ेस को कार्यान्वित करना और भाषा परिवर्तन के बाद सभी रूपों के माध्यम से पुनरावृत्त करना और इन विधि को कॉल करना।

आशा यह आप मदद कर सकता है ...

संबंधित मुद्दे