分类:
.net后台框架
1.Demo主体结构
主要用到以下四个类进行:
HomeController.cs
Startup.cs
Views.Home.Index.zh.resx
Index.cshtml
如下图所示:

2.实战演练
Startup.cs:
...
//在 ConfigureServices 方法里面添加下列两句代码
//配置本地化服务 将本地化服务添加到服务容器。 上面的代码还可将资源路径设置为“资源”。
services.AddLocalization(x => x.ResourcesPath = "Resources");
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2)
//下面也是配置本地化服务 添加对本地化视图文件的支持。 在此示例视图中,本地化基于视图文件后缀。 例 如,Index.fr.cshtml 文件中的“fr”。
.AddViewLocalization(Microsoft.AspNetCore.Mvc.Razor.LanguageViewLocationExpanderFormat.Suffix);
...
//在 Configure 方法里面添加下列几句代码
//语言 开始
var supportedCultures = new[] {
new CultureInfo("en-GB"),
new CultureInfo("zh-CN")
};
app.UseRequestLocalization(new RequestLocalizationOptions()
{
DefaultRequestCulture = new Microsoft.AspNetCore.Localization.RequestCulture("en-GB"),
//格式化数字,dates,etc.
SupportedCultures = supportedCultures,
//UI 字符串,我们需要本地化
SupportedUICultures = supportedCultures
});
app.UseAuthentication();可以看到 AddLocalization() 的 ResourcesPath 可以设置资源路径
supportedCultures 可以设置语言有哪几种类型
资源命名规范: 视图文件夹.控制器名称.方法名称.语言名称(当不区分-后缀可只写前缀).resx
Views.Home.Index.zh.resx:

HomeController.cs:
public class HomeController : Controller
{
private readonly IHtmlLocalizer _localizer;
public HomeController(IHtmlLocalizer<HomeController> localizer)
{
_localizer = localizer;
}
public IActionResult Index()
{
return View();
}
public IActionResult Setting(string type)
{
Response.Cookies.Append(
CookieRequestCultureProvider.DefaultCookieName,
CookieRequestCultureProvider.MakeCookieValue(new RequestCulture(type)),
new CookieOptions
{
Expires = DateTimeOffset.UtcNow.AddYears(1),
IsEssential = true,
Path = "/"
}
);
return RedirectToAction("Index");
}
}Index.cshtml:
@using Microsoft.AspNetCore.Mvc.Localization;
@* inject:提供本地化字符串 *@
@inject IViewLocalizer localizer
@{
ViewData["Title"] = localizer["Home"];
}
<h2>@localizer["Home"]</h2>
<p>@localizer["hi"]</p>
<a asp-action="Setting" asp-controller="Home" asp-route-type="en-GB">@localizer["set language"]</a>Result:

than:

欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739
评价
排名
6
文章
6
粉丝
16
评论
8
{{item.articleTitle}}
{{item.blogName}} : {{item.content}}
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:
50010702506256
50010702506256
欢迎加群交流技术