怎么在ASP。网络核心MVC中实现中英文切换

  介绍

本篇文章给大家分享的是有关怎么在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和应用要相同哦。

怎么在ASP。净核心MVC中实现中英文切换

就现在我们在视图中最上面导入包,然后对应字典就可以了。

@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中实现中英文切换