एएसपी.नेट एमवीसी आवेदन में एकाधिक भाषाओं?

एएसपी.नेट एमवीसी अनुप्रयोग में इंटरफ़ेस के लिए एकाधिक भाषाओं का समर्थन करने का सबसे अच्छा तरीका क्या है? मैंने लोगों को अन्य अनुप्रयोगों के लिए संसाधन फ़ाइलों का उपयोग देखा है। क्या यह अभी भी सबसे अच्छा तरीका है?

0
ro fr bn
जोड़ा लेखक Marijn, स्रोत
बाहर गुजरने वाले पैरामीटर के साथ बहु भाषा वेबसाइट, यह जांचें एमवीसी 4 सी # में बहु भाषा वेबसाइट
जोड़ा लेखक Sender, स्रोत

6 उत्तर

हां संसाधन अभी भी .NET पर्यावरण में एकाधिक भाषाओं का समर्थन करने का सबसे अच्छा तरीका हैं। क्योंकि वे संदर्भित करना आसान हैं और नई भाषाओं को जोड़ने में भी आसान हैं।

Site.resx
Site.en.resx
Site.en-US.resx
Site.fr.resx
etc...

तो आप अभी भी संसाधन फ़ाइलों का उपयोग कर रहे हैं।

0
जोड़ा
इसे काम करने के लिए इन्हें कैसे रखा जाना चाहिए?
जोड़ा लेखक Mathias Lykkegaard Lorenzen, स्रोत

उत्तर के रूप में वर्णित कुछ अन्य समाधान एमवीसी के जारी संस्करण (वे अल्फा / बीटा के पिछले संस्करणों के साथ काम करते हैं) के लिए काम नहीं करते हैं।

स्थानीयकरण को लागू करने के तरीके का वर्णन करने वाला एक अच्छा आलेख यहां दिया गया है जो दृढ़ता से टाइप किया जाएगा और नियंत्रकों और विचारों के यूनिट परीक्षण को तोड़ नहीं देगा: एमवीसी v1 के लिए स्थानीयकरण मार्गदर्शिका

0
जोड़ा

ऑर्चर्ड प्रोजेक्ट सभी इन-पेज स्ट्रिंग अनुवाद करने के लिए "टी" नामक एक शॉर्टकट विधि का उपयोग करता है। तो आप एक @ टी ("अनुवाद करने के लिए एक स्ट्रिंग") के साथ टैग देखेंगे।

मैं यह देखने का इरादा रखता हूं कि यह दृश्यों के पीछे कैसे लागू किया गया है और संभावित रूप से भविष्य की परियोजनाओं में इसका उपयोग कैसे किया जाता है। संक्षिप्त नाम कोड क्लीनर रखता है क्योंकि इसका उपयोग बहुत किया जाएगा।

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

अधिक जानकारी के लिए http://orchardproject.net देखें।

0
जोड़ा
ऐसे मामले हैं जहां बिल्कुल समान स्रोत स्ट्रिंग "अनुवाद करने के लिए एक स्ट्रिंग" को आसपास के संदर्भ के आधार पर अलग-अलग अनुवादित करना होगा। यह विशेष रूप से एकल-शब्द तारों के साथ होता है।
जोड़ा लेखक springy76, स्रोत

मैंने यह संसाधन पाया बहुत उपयोगी

यह HttpContext.Current.GetGlobalResourceString और HttpContext.Current.GetLocalResourceString के चारों ओर एक रैपर है जो आपको इस तरह के संसाधनों को कॉल करने की अनुमति देता है ...

// default global resource
Html.Resource("GlobalResource, ResourceName")

// global resource with optional arguments for formatting
Html.Resource("GlobalResource, ResourceName", "foo", "bar")

// default local resource
Html.Resource("ResourceName")

// local resource with optional arguments for formatting
Html.Resource("ResourceName", "foo", "bar")

मुझे मिली एकमात्र समस्या यह है कि नियंत्रकों को स्थानीय resouce तारों तक पहुंच नहीं है।

0
जोड़ा

यदि आप डिफ़ॉल्ट दृश्य इंजन का उपयोग कर रहे हैं, तो स्थानीय संसाधन विचारों में काम करते हैं। हालांकि, अगर आपको नियंत्रक कार्रवाई के भीतर संसाधन तारों को पकड़ने की आवश्यकता है, तो आपको स्थानीय संसाधन नहीं मिल सकते हैं, और वैश्विक संसाधनों का उपयोग करना होगा।

जब आप इसके बारे में सोचते हैं तो यह समझ में आता है क्योंकि स्थानीय संसाधन एएसपीएक्स पेज के लिए स्थानीय हैं और नियंत्रक में, आपने अपना विचार भी नहीं चुना है।

0
जोड़ा
@ हैकड, हाय, हमारे पास एएसपी एमवीसी में एक शॉपिंग वेबसाइट है, इसलिए जब उपयोगकर्ता अरबी भाषा का चयन करता है, तो हम पूरी साइट अरबी बनाना चाहते हैं, क्या हम माइक्रोसॉफ्ट बिंग अनुवादक या माइक्रोसॉफ्ट अनुवादक एपीआई या क्या मुझे यह तेजी से प्राप्त करने के लिए localize.js खरीदना चाहिए?
जोड़ा लेखक stom, स्रोत
क्या यह रेजर व्यू इंजन में भी काम करेगा?
जोड़ा लेखक Anwar Chandra, स्रोत
हां यह नियंत्रकों के लिए समझ में आता है। लेकिन दृश्य मॉडल के बारे में क्या? वे दृश्य के लिए विशिष्ट (अक्सर) होते हैं और दृश्य मॉडल कोड में दृश्य विशिष्ट संसाधनों को संदर्भित करने के लिए यह समझदारी होगी। मुझे आश्चर्य है कि एक संसाधन फ़ाइल स्थानीय देखने के लिए एक तंत्र है और इसके दृश्य मॉडल ...
जोड़ा लेखक Andy McCluggage, स्रोत

यह एक और विकल्प है, और आपके पास नियंत्रक में CurrentUICulture तक पहुंच होगी:

Check MVC3-multi-language

0
जोड़ा