ASP .NET Core 2.0中的本地化 - 最佳实践

时间:2017-10-02 08:20:29

标签: localization asp.net-core-2.0

我正在使用ASP.NET Core 2.0,我希望能够在自定义类中使用字符串本地化,而不仅仅是在控制器中(使用bot框架 - 对话框本地化)。 ASP .Net Core 2.0中本地化和全球化的最佳实践是什么?我是否必须在每个控制器中使用IStringLocalizer?有没有全球性的方式呢?有没有人知道为什么在官方文档中建议不要使用默认的.resx文件,而是使用name.localization.resx,当使用默认的.resx时,不会像在.NET中那样在Visual Studio中自动创建文件?

2 个答案:

答案 0 :(得分:0)

关于本地化支持: ,我通过路由使用本地化,但是默认提供程序本身不支持传递两个字母(例如,en而不是en-UK),并且如果键位于url的开头或中间,则很难支持可选的语言传递(例如〜/ {lang} / api / ...)。
我用这个包裹为我减轻了负担:
https://www.nuget.org/packages/AspNetCore.RequestLocalizationPipeline

答案 1 :(得分:0)

资源是键和值之间的链接。每个键都链接到某个 html 文档。

在开始构建资源文件之前,您需要问自己这个问题。

您是否会在不同的视图中拥有具有相同键名的键(Dom 元素)?您是否希望它们具有不同或相等的值? (你会一直这样工作吗)。

如果答案是“不同”=> 在每个控制器中解析 IStringLocalizer,否则,创建一个共享资源

https://docs.microsoft.com/en-us/aspnet/core/fundamentals/localization?view=aspnetcore-3.1#implement-a-strategy-to-select-the-languageculture-for-each-request