2008-09-15 17 views
6

मैं विजुअल स्टूडियो (2005 और ऊपर) का उपयोग कर रहा हूं। मैं एक ऐसा एप्लिकेशन बनाने की कोशिश कर रहा हूं जहां उपयोगकर्ता सभी मेन्यू, इनपुट प्रारूपों और इस तरह के भाषा के लिए भाषा बदल सकता है। मैं ऐसा करने पर कैसे जाउंगा, जैसा कि मुझे लगता है कि नेट के भीतर कुछ पूर्ण सुविधा है जो मुझे इससे मदद कर सकती है?मैं एक संपूर्ण ऐप को कई अलग-अलग भाषाओं में कैसे स्थानांतरित कर सकता हूं?

मैं (

  • इनपुट डेटा इन बातों का लेने के लिए (और मुझे में भर मैं कुछ स्पष्ट सामान को याद करता है, तो)

    • स्ट्रिंग्स (menues, ग्रंथों) तैरता, दिनांक, आदि पार्स करने की जरूरत है ..)
    • अन्य भाषा
  • उत्तर

    1

    तार के लिए आप बस अपने कोड से अपने तार को अलग करना चाहिए (एक XML/DLL कि असली तार करने के लिए स्ट्रिंग आईडी बदलना होगा होने के लिए समर्थन जोड़ने के लिए आसान होना चाहिए एक तरह से जाने के लिए है) । हालांकि आपको यह सुनिश्चित करने की आवश्यकता है कि आप कुछ भाषाओं के लिए डबल बाइट वर्णों का समर्थन कर रहे हैं (यदि आप सी/सी ++ का उपयोग करते हैं तो यह प्रासंगिक है)।

    इनपुट डेटा के लिए जो आप चाहते हैं वह अलग-अलग लोकेल होना है। जावा में यह अपेक्षाकृत आसान है, और यदि आप सी # का उपयोग करते हैं तो यह शायद काफी आसान है। सी/सी ++ में मुझे वास्तव में पता नहीं है। मूल विचार यह है कि उस समय चयनित लोकेल के आधार पर इनपुट पार्सर्स अलग होना चाहिए। इसलिए प्रत्येक फ़ील्ड (टेक्स्टफील्ड, टेक्स्टबॉक्स, इत्यादि) में एक अमूर्त पार्सर होना चाहिए जिसे तब लोकेल (दाएं से बाएं, डबल बाइट इत्यादि) के आधार पर एक अलग वर्ग द्वारा कार्यान्वित किया जाता है।

    जावा कार्यान्वयन की जांच के विवरण के लिए जावा कार्यान्वयन की जांच करें। यह काफी कार्यात्मक है।

    3

    मैं किसी भी माध्यम से .NET के साथ एक विशेषज्ञ नहीं हूं लेकिन स्थानीयकरण कभी भी "स्ट्रिंग मानों को स्वैपिंग" या "बदलते दिनांक प्रारूप" के रूप में उतना आसान नहीं है। लेआउट, उचित टेक्स्ट प्लेसमेंट जैसे विचार करने के लिए बहुत कुछ है।

    उदाहरण के लिए चीनी लें। जिस तरह से आप पढ़ते हैं वह ऊपर से नीचे दाएं से दाएं नहीं है। यदि ऐप को सही ढंग से स्थानीयकृत किया गया है तो उसे ध्यान में रखना चाहिए।

    http://msdn.microsoft.com/en-us/library/y99d1cd3(VS.80).aspx एक अच्छी शुरुआत प्रतीत होता है हालांकि यदि आप विंडोज फॉर्म से निपट रहे हैं।

    +0

    आह, धन्यवाद। लिंक बहुत उपयोगी हैं। – Statement

    3

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

    1

    आप निश्चित रूप से .NET संसाधन प्रबंधक और resx फ़ाइल xml प्रारूप का उपयोग करने की आवश्यकता है, हालांकि इसका उपयोग करने के लिए कई दृष्टिकोण हैं।

    यह वास्तव में उस चीज़ पर निर्भर करता है जिसे आप प्राप्त करना चाहते हैं। मेरे लिए मैं एक एकल एक्सएमएल संसाधन फ़ाइल चाहता था (प्रत्येक समर्थित भाषा के लिए) जिसे किसी के द्वारा संशोधित किया जा सकता है। मैंने एक सहायक वर्ग बनाया जिसने संसाधन संसाधन प्रबंधक (केवल एक बार) में वैश्विक संसाधन फ़ाइल लोड की और मेरे पास एक सहायक कार्य था जो मुझे किसी दिए गए नाम के लिए आवश्यक संसाधन देता है। इस दृष्टिकोण में एकमात्र नुकसान यह था कि मैं संपत्तियों के संसाधनों के गतिशील बाध्यकारी का लाभ नहीं उठा सकता था।

    मुझे हर फ़ॉर्म के लिए एकाधिक या एम्बेडेड संसाधन फ़ाइलों की तुलना में प्रबंधित करना बेहतर और आसान लगता है। इसके अतिरिक्त एक ही दृष्टिकोण एक एएसपी.NET अनुप्रयोग में उपयोग किया जा सकता है। मुझे यह दृष्टिकोण भी मिला है कि ग्राहकों को संसाधनों और शिपिंग भाषा पैक के आउटसोर्सिंग का अनुवाद अधिक प्रबंधनीय है।

    1

    माइक्रोसॉफ्ट की अनुशंसित दृष्टिकोण सैटेलाइट असेंबली का उपयोग करना है, जैसा कि Packaging and Deploying Resources में वर्णित है। यदि आप संसाधन लोड करने के लिए संसाधन प्रबंधक का उपयोग कर रहे हैं, तो .NET CurrentUICulture के लिए सही संसाधन लोड करेगा। यह विंडोज़ में उपयोगकर्ता की वर्तमान यूआई भाषा सेटिंग में चूक जाता है।

    विजुअल स्टूडियो या बाहरी उपकरण, WinRes.exe के माध्यम से या तो विंडोज फॉर्म को स्थानांतरित करना संभव है। This article WinRes का वर्णन करता है और फ़ॉर्म को स्थानीयकृत करने के लिए विजुअल स्टूडियो का उपयोग कैसे करें।

    +0

    बहुत दिलचस्प है। जैसे ही मुझे युद्ध से समय मिलता है, इन लिंक को देखेंगे। – Statement

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

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