注:本文隶属于《理解ASP.NET Core》系列文章,请查看置顶博客或点击此处查看全文目录概述
区域代码查询:https://www.venea.net/web/culture_code实现本地化
这些文件默认为“嵌入的资源”
如果你的本地化果并不是预期的,并且当前区域文化没问题的情况下,可以通过SearchedLocation查看资源搜索位置(如 _localizer["HelloWord"].SearchedLocation),检查资源放置位置是否有误。在模型验证中使用本地化
上面我们已经通过AddViewLocalization将IViewLocalizer服务注册到容器中了。
ASP.NET Core 也支持 PO 文件,如果有兴趣,请自行了解。只需要将AddLocalization替换为AddJsonLocalization即可:
鉴于涉及到的源码较多,所以为了控制文章长度,下面只列举核心代码。IStringLocalizerFactory & IStringLocalizer
如果你现在就想要验证一下 HomeController 中的 Localizer 是否是相同的,你会发现通过构造函数直接注入的 IStringLocalizer._localizer 才是真正干活,你可以参考这段代码来获取它:typeof(Microsoft.Extensions.Localization.StringLocalizer).GetField("_localizer", BindingFlags.NonPublic | BindingFlags.GetField | BindingFlags.Instance).GetValue(mySharedLocalizer)接着看ResourceManagerStringLocalizer的实现细节:
欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/) | Powered by Discuz! X3.4 |