14

में संसाधन फ़ाइलों को समझना मैं एमवीसी 6 में कई भाषाओं के लिए संसाधन फ़ाइलों को सर्वोत्तम तरीके से कार्यान्वित करने के तरीके के बारे में अपने सिर को लपेटने की कोशिश कर रहा हूं लेकिन प्रत्येक रिलीज के साथ परिवर्तनों के कारण मुझे थोड़ा उलझन में है कि वास्तव में उन्हें कैसे लागू किया जाए अच्छी तरह। क्या आवश्यक है और बाधाएं क्या हैं?एमवीसी 6 आरसी 1

https://damienbod.com/2015/10/21/asp-net-5-mvc-6-localization/

MVC 6 : how to use RESX files?

http://pratikvasani.github.io/archive/2015/12/25/MVC-6-localization-how-to/

मैं इतना है कि मैं अंग्रेजी और जर्मन के लिए उपलब्ध है संसाधन फ़ाइलों स्थापित करने के लिए कोशिश कर रहा हूँ:

कुछ लेख मैं देखा है मेरे उपयोगकर्ता, जो या तो ब्राउज़र सेटिंग्स या उनके खाते में व्यक्तिगत सेटिंग पर आधारित होंगे।

इसे प्राप्त करने का सबसे अच्छा तरीका क्या होगा?

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

संपादित करें:

तो लेख के अनुसार, मैं निम्नलिखित कोड Startup.cs में शामिल किया है:

 services.AddLocalization(options => 
       options.ResourcesPath = "Resources"); 
     services.AddMvc() 
       .AddViewLocalization(Microsoft.AspNet.Mvc.Razor.LanguageViewLocationExpanderFormat.Suffix) 
       .AddDataAnnotationsLocalization(); 

     var supportedCultures = new[] 
     { 
      new CultureInfo("de-DE"), 
      new CultureInfo("en-US") 
     }; 

     //Set Default Localization Culture 
     app.UseRequestLocalization(new RequestLocalizationOptions 
     { 
      SupportedCultures = supportedCultures, 
      SupportedUICultures = supportedCultures 
     }, new RequestCulture(new CultureInfo("en-US"))); 

फिर संसाधन फ़ोल्डर के भीतर मैं फ़ाइल नाम के साथ नए resx फ़ाइलें बनाई:

  • "Views.Shared._LocalizationTest.en-US.resx"

  • "Views.Shared._LocalizationTest.de-DE.resx"

और मेरे आंशिक दृश्य लगता है:

@using Microsoft.AspNet.Localization 
@using Microsoft.AspNet.Mvc.Localization 
@inject IViewLocalizer Localizer 

<div> 
    @Localizer["TestString"] 
</div> 

मैं अभी भी रूप में मैं "TestString" करने के लिए हो रही है कुछ कमी रह गई प्रतीत अंग्रेजी या "जर्मन: टेस्ट स्ट्रिंग" के लिए "टेस्ट स्ट्रिंग" के बजाय दिखाएं (मेरी संसाधन फ़ाइलों के अनुसार)।

कोई विचार?

+0

क्या आप कुछ समझ गए थे? मेरे पास भी इसी प्रकार की समस्या है, मेरा प्रश्न देखें: http://stackoverflow.com/questions/42712326/localizaion-using-resource-file-in-net-core-for- अलग- संस्कृति – Herin

+0

@RickAndMSFT लिंक है टूटा हुआ। – Marcel

+0

मेरा आलेख देखें https://docs.microsoft.com/aspnet/core/fundamentals/localization – RickAndMSFT

उत्तर

2

एएसपी.नेट कोर डिफ़ॉल्ट दृष्टिकोण में संसाधन फ़ाइल में आपकी डिफ़ॉल्ट भाषा स्ट्रिंग नहीं है, लेकिन बस उन्हें कोड में लपेटें। तो आप स्थानीयकरण में लिपटे अंग्रेजी तारों का उपयोग करके ऐप लिख सकते हैं, और एक जर्मन संसाधन फ़ाइल है। मेरा आलेख देखें https://docs.microsoft.com/aspnet/core/fundamentals/localization

+4

क्या यह वाकई इतना अच्छा विचार है? मेरा मतलब यह है कि जब आप एक छोटे से ऐप से शुरू करते हैं तो यह सुविधाजनक होता है, लेकिन मुझे लगता है कि बहुत गलती होती है। मेरा मतलब है, क्या होगा यदि आप अपनी डिफ़ॉल्ट भाषा में विराम चिह्न बदलते हैं, तो आपको अन्य सभी स्थानीयकरण फ़ाइलों में "कुंजी" को जाना और बदलना होगा क्योंकि अन्यथा आपका स्थानीयकृत चर अन्य स्थानीयकरण फ़ाइलों में नहीं मिलेगा? – Tseng

+0

वह लेख निश्चित रूप से मदद करता है लेकिन मेरे पास Tseng के समान विचार हैं। उदाहरण के लिए, अंग्रेजी मेरा मजबूत सूट हो सकता है, स्थानीयकरण दूरस्थ रूप से होता है, फिर भी साइट के लिए डिफ़ॉल्ट भाषा जर्मन होना चाहिए। – Reosoul

+0

मैं रीसोउल से सहमत हूं। अभी, मैं डिफ़ॉल्ट स्पेनिश के साथ एएसपीनेट कोर एमवीसी वेबसाइट बनाने और अंग्रेजी समर्थित करने की कोशिश कर रहा हूं। हालांकि, यह कोड में लिपटे तारों के साथ काम नहीं करता है। यह हमेशा अंग्रेजी.resx फ़ाइलों से तार दिखाता है। – SherleyDev

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