खोज…


टिप्पणियों

ASP.NET पृष्ठ के लिए स्मार्ट अंतर्राष्ट्रीयकरण

इस दृष्टिकोण का लाभ यह है कि आपको .resx फ़ाइलों से मान देखने के लिए कंट्रोलर और कोड के साथ अन्य वर्गों को अव्यवस्थित नहीं करना पड़ता है। आप बस [[[ट्रिपल ब्रैकेट्स।]]] में पाठ को घेरते हैं (सीमांकक विन्यास योग्य है।) सीमांकित पाठ को बदलने के लिए HttpModule आपके .po फ़ाइल में अनुवाद के लिए दिखता है। यदि अनुवाद पाया जाता है, तो HttpModule अनुवाद को प्रतिस्थापित करता है। यदि कोई अनुवाद नहीं मिलता है, तो यह ट्रिपल कोष्ठक को हटाता है और मूल अनारक्षित पाठ के साथ पृष्ठ को प्रस्तुत करता है।

.po फाइलें अनुप्रयोगों के लिए अनुवाद की आपूर्ति के लिए एक मानक प्रारूप हैं, इसलिए उन्हें संपादित करने के लिए कई अनुप्रयोग उपलब्ध हैं। गैर-तकनीकी उपयोगकर्ता को .po फ़ाइल भेजना आसान है ताकि वे अनुवाद जोड़ सकें।

मूल विन्यास और सेटअप

  1. अपने MVC प्रोजेक्ट में I18N नगेट पैकेज जोड़ें।
  2. Web.config में, अपने <httpModules> या <modules> अनुभाग में i18n.LocalizingModule जोड़ें।
<!-- IIS 6 -->
<httpModules>
  <add name="i18n.LocalizingModule" type="i18n.LocalizingModule, i18n" />
</httpModules>

<!-- IIS 7 -->
<system.webServer> 
  <modules>
    <add name="i18n.LocalizingModule" type="i18n.LocalizingModule, i18n" />
  </modules>
</system.webServer>
  1. अपनी साइट के मूल में "लोकेल" नामक एक फ़ोल्डर जोड़ें। प्रत्येक संस्कृति के लिए एक सबफ़ोल्डर बनाएँ जिसे आप समर्थन करना चाहते हैं। उदाहरण के लिए, /locale/fr/
  2. प्रत्येक संस्कृति विशिष्ट फ़ोल्डर में, नाम के एक पाठ फ़ाइल बनाने messages.po
  3. परीक्षण के प्रयोजनों के लिए, अपने messages.po फ़ाइल में पाठ की निम्न पंक्तियाँ दर्ज करें:
#: Translation test
msgid "Hello, world!"
msgstr "Bonjour le monde!"
  1. अपनी परियोजना में एक नियंत्रक जोड़ें जो अनुवाद करने के लिए कुछ पाठ लौटाता है।
using System.Web.Mvc;

namespace I18nDemo.Controllers
{
    public class DefaultController : Controller
    {
        public ActionResult Index()
        {
            // Text inside [[[triple brackets]]] must precisely match
            // the msgid in your .po file.
            return Content("[[[Hello, world!]]]");
        }
    }
}
  1. अपना MVC एप्लिकेशन चलाएं और अपने कंट्रोलर एक्शन के अनुरूप रूट पर ब्राउज़ करें, जैसे http: // localhost: [yourportnumber] / default
    मान लें कि URL आपकी डिफ़ॉल्ट संस्कृति को दर्शाने के लिए बदल दिया गया है, जैसे कि
    http: // localhost: [yourportnumber] / en / default
  2. URL में /en/ साथ /fr/ (या आपके द्वारा चुनी गई कोई भी संस्कृति।) पृष्ठ को अब आपके पाठ के अनुवादित संस्करण को प्रदर्शित करना चाहिए।
  3. अपनी वैकल्पिक संस्कृति को पसंद करने और फिर से /default से ब्राउज़ करने के लिए अपने ब्राउज़र की भाषा सेटिंग बदलें। निरीक्षण करें कि URL आपकी वैकल्पिक संस्कृति को दर्शाने के लिए बदला गया है और अनुवादित पाठ दिखाई देता है।
  4. Web.config में, हैंडलर जोड़ें ताकि उपयोगकर्ता आपके locale फ़ोल्डर में ब्राउज़ न कर सकें।
<!-- IIS 6 -->
<system.web>
  <httpHandlers>
    <add path="*" verb="*" type="System.Web.HttpNotFoundHandler"/>
  </httpHandlers>
</system.web>

<!-- IIS 7 -->
<system.webServer>
  <handlers>
    <remove name="BlockViewHandler"/>
   <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler"/>
  </handlers>
</system.webServer>


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow