如何用ASP.NET Core MVC实现网站中英文版本的无缝切换功能?

2026-04-01 12:061阅读0评论SEO资讯
  • 内容介绍
  • 相关推荐

本文共计670个文字,预计阅读时间需要3分钟。

如何用ASP.NET Core MVC实现网站中英文版本的无缝切换功能?

哈喽,大家好!很久没有更新了,今天就来分享一个最近应用到的一项功能,那就是中英文切换。实际上,这并不算是高大上的技术,先简单介绍一下原理。

在.NET Core框架中,给我们提供了全局化的类,叫做Loc。这个类允许我们进行国际化操作,包括本地化字符串等。下面简单介绍一下它的用法。

  哈喽..大家好 很久没有更新了,今天就来一篇最近开发用到的功能,那就是中英文切换,这个实际上也不是高大上,先说一下原理,在.NET Core框架中给我们提供了全球化的类,叫做Localization,其官方的文档地址传送门。

  在我的项目中,我是这样操作的,你想用别的方式,也可以看文档自己去搞。这个已经不是什么新鲜的东西了,只是网上的实现有些问题,不容易明白。

  我们无需任何Nuget包,因为它是在Microsoft.AspNetCore.Mvc.Localization中,那么我们直接在.NET Core 框架中添加 Localization 服务。

public void ConfigureServices(IServiceCollection services) { services.AddLocalization(options => options.ResourcesPath = "Resources"); services.AddMvc() .AddViewLocalization(LanguageViewLocationExpanderFormat.Suffix); services.Configure<RequestLocalizationOptions>(opts => { var supportedCultures = new List<CultureInfo>{ new CultureInfo("en-US"), new CultureInfo("zh-CN")}; opts.SupportedCultures = supportedCultures; opts.SupportedUICultures = supportedCultures; opts.RequestCultureProviders = new List<IRequestCultureProvider>{ new X_DOVERequestCultureProvider() }; }); services.AddControllersWithViews(); }

  嗯,这个代码是.NET Core 3.1 的 应该不会有太大区别吧?那个X_DOVERequestCultureProvider是我们自定义实现的,写入了一些规则,我们看一下。

public class X_DOVERequestCultureProvider : RequestCultureProvider { public override Task<ProviderCultureResult> DetermineProviderCultureResult(HttpContext github.com/zaranetCore/amusinghoS" rel="external nofollow" > | GitHub</a></section>

  你肯定知道该怎么办了,对的你可以去修改Cookies来操作当前httpContext中的合约,但尽管如何,我们只是重写了cookies的,还没有重写url的,

<script> $(function () { $("#language").change(function (e) { var opt = $("#language").val(); if (opt == 1) { document.cookie = 'CULTURE=zh-CN'; location.reload(); } else if(opt == 2) { document.cookie = 'CULTURE=en-US'; location.reload(); } }); }); </script>

  好吧,欢迎各位同学把重写url的方法写写出来,回复在本篇文章中..我们看一下效果,好的就这样吧..

到此这篇关于ASP.NET Core MVC 中实现中英文切换的示例代码的文章就介绍到这了,更多相关ASP.NET Core MVC 中英文切换内容请搜索易盾网络以前的文章或继续浏览下面的相关文章希望大家以后多多支持易盾网络!

如何用ASP.NET Core MVC实现网站中英文版本的无缝切换功能?

本文共计670个文字,预计阅读时间需要3分钟。

如何用ASP.NET Core MVC实现网站中英文版本的无缝切换功能?

哈喽,大家好!很久没有更新了,今天就来分享一个最近应用到的一项功能,那就是中英文切换。实际上,这并不算是高大上的技术,先简单介绍一下原理。

在.NET Core框架中,给我们提供了全局化的类,叫做Loc。这个类允许我们进行国际化操作,包括本地化字符串等。下面简单介绍一下它的用法。

  哈喽..大家好 很久没有更新了,今天就来一篇最近开发用到的功能,那就是中英文切换,这个实际上也不是高大上,先说一下原理,在.NET Core框架中给我们提供了全球化的类,叫做Localization,其官方的文档地址传送门。

  在我的项目中,我是这样操作的,你想用别的方式,也可以看文档自己去搞。这个已经不是什么新鲜的东西了,只是网上的实现有些问题,不容易明白。

  我们无需任何Nuget包,因为它是在Microsoft.AspNetCore.Mvc.Localization中,那么我们直接在.NET Core 框架中添加 Localization 服务。

public void ConfigureServices(IServiceCollection services) { services.AddLocalization(options => options.ResourcesPath = "Resources"); services.AddMvc() .AddViewLocalization(LanguageViewLocationExpanderFormat.Suffix); services.Configure<RequestLocalizationOptions>(opts => { var supportedCultures = new List<CultureInfo>{ new CultureInfo("en-US"), new CultureInfo("zh-CN")}; opts.SupportedCultures = supportedCultures; opts.SupportedUICultures = supportedCultures; opts.RequestCultureProviders = new List<IRequestCultureProvider>{ new X_DOVERequestCultureProvider() }; }); services.AddControllersWithViews(); }

  嗯,这个代码是.NET Core 3.1 的 应该不会有太大区别吧?那个X_DOVERequestCultureProvider是我们自定义实现的,写入了一些规则,我们看一下。

public class X_DOVERequestCultureProvider : RequestCultureProvider { public override Task<ProviderCultureResult> DetermineProviderCultureResult(HttpContext github.com/zaranetCore/amusinghoS" rel="external nofollow" > | GitHub</a></section>

  你肯定知道该怎么办了,对的你可以去修改Cookies来操作当前httpContext中的合约,但尽管如何,我们只是重写了cookies的,还没有重写url的,

<script> $(function () { $("#language").change(function (e) { var opt = $("#language").val(); if (opt == 1) { document.cookie = 'CULTURE=zh-CN'; location.reload(); } else if(opt == 2) { document.cookie = 'CULTURE=en-US'; location.reload(); } }); }); </script>

  好吧,欢迎各位同学把重写url的方法写写出来,回复在本篇文章中..我们看一下效果,好的就这样吧..

到此这篇关于ASP.NET Core MVC 中实现中英文切换的示例代码的文章就介绍到这了,更多相关ASP.NET Core MVC 中英文切换内容请搜索易盾网络以前的文章或继续浏览下面的相关文章希望大家以后多多支持易盾网络!

如何用ASP.NET Core MVC实现网站中英文版本的无缝切换功能?