介绍
本篇文章给大家分享的是有关怎么在ASP。网络核心MVC中实现中英文切换,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
public void ConfigureServices (IServiceCollection 服务) ,,,{ ,,,,,services.AddLocalization (options =祝辞,options.ResourcesPath =,“Resources"); ,,,,,services.AddMvc () ,,,,,,,.AddViewLocalization (LanguageViewLocationExpanderFormat.Suffix); ,,,,,services.Configure(opts =比; ,,,,,,,{ ,,,,,,,,,var supportedCultures =, new List { ,,,,,,,,,,,new CultureInfo (“en-US"), ,,,,,,,,,,,new CultureInfo (“zh-CN")}; ,,,,,,,,,,,opts.SupportedCultures =, supportedCultures; ,,,,,,,,,,,opts.SupportedUICultures =, supportedCultures;, ,,,,,,,,,,,opts.RequestCultureProviders =, new List { ,,,,,,,,,,,,,new X_DOVERequestCultureProvider () ,,,,,,,,,,,}; ,,,,,,,}); ,,,,,services.AddControllersWithViews (); ,,,}
嗯,这个代码是。3.1网络核心的应该不会有太大区别吧?那个X_DOVERequestCultureProvider是我们自定义实现的,写入了一些规则,我们看一下。
public class X_DOVERequestCultureProvider : RequestCultureProvider {才能 ,,,public override Task, DetermineProviderCultureResult (HttpContext httpContext) ,,,{ ,,,,,var CULTURE_String =,“CULTURE"; ,,,,,var CultureCookie =, httpContext.Request.Cookies [CULTURE_String] ? .ToString (), ? ?,““ ,,,,,if (string.IsNullOrWhiteSpace (CultureCookie)) ,,,,,{ ,,,,,,,CultureCookie =,“zh-CN"; ,,,,,,,httpContext.Response.Cookies.Append(关键:CULTURE_String,,值:,CultureCookie,,选择:,new CookieOptions (), {, Expires =, DateTime.Now.AddYears (1),}); ,,,,,} ,,,,,return Task.FromResult (new ProviderCultureResult (CultureCookie)); ,,,} 以前,,}> 首先我们应该知道RequestCultureProvider,它是一个在框架自身包括的。net核心提供的,我们继承它重写了它的抽象类,在其中获取了httpContext的cookie值,然后进行判断,如果没有咱们就不给它进行一个输出了,否则它还是我们的应用就是中文。
对,别忘记了要在配置中使用中间价
, app.UseRequestLocalization ( ,,,,,,选择:app.ApplicationServices ,,,,,,,.GetService在()value); 随后我们应该定义我们的配置文件,创建一个文件夹,放进去,它应当和上面启动中的文件夹相同,随后创建对应的视图位置,一个英文一个中文,一定要注意后面对应的en - us和应用要相同哦。
就现在我们在视图中最上面导入包,然后对应字典就可以了。
@using Microsoft.AspNetCore.Mvc.Localization @inject IViewLocalizer 定位器 & lt; section 类=癱opyright"祝辞,@Localizer (“section1"), & lt; a https://www.yisu.com/zixun/href=" https://github.com/zaranetCore/amusinghoS " rel="外部nofollow”> | GitHub > 节>你肯定知道该怎么办了,对的你可以去修改饼干来操作当前httpContext中的合约,但尽管如何,我们只是重写了饼干的,还没有重写url的
& lt; script> 美元才能(function (), { ,,,(“# language") .change(美元function (e), { ,,,,,var opt =, (“# language")美元.val (); ,,,,,if (==opt 1), { ,,,,,,,document.cookie =, & # 39;文化=应用# 39;; ,,,,,,,location.reload (); ,,,,,},else 如果(==opt 2), { ,,,,,,,document.cookie =, & # 39;文化=en - us # 39;; null null null null null怎么在ASP。网络核心MVC中实现中英文切换