
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
评价
排名
2
文章
657
粉丝
44
评论
93
docker中Sware集群与service
尘叶心繁 : 想学呀!我教你呀
一个bug让程序员走上法庭 索赔金额达400亿日元
叼着奶瓶逛酒吧 : 所以说做程序员也要懂点法律知识
.net core 塑形资源
剑轩 : 收藏收藏
映射AutoMapper
剑轩 :
好是好,这个对效率影响大不大哇,效率高不高
一个bug让程序员走上法庭 索赔金额达400亿日元
剑轩 : 有点可怕
ASP.NET Core 服务注册生命周期
剑轩 :
http://www.tnblog.net/aojiancc2/article/details/167
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:
50010702506256


欢迎加群交流技术