【问题标题】:Localization in ASP .NET Core 2.0 - Best practiceASP .NET Core 2.0 中的本地化 - 最佳实践
【发布时间】:2017-10-02 08:20:29
【问题描述】:

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

【问题讨论】:

  • 您指的是什么文档,建议“不要使用默认的 .resx 文件”? (注:BotBuilder 目前不支持 ASP.NET Core 2.0)
  • 我在 docs.microsoft.com/en-us/aspnet/core/fundamentals/localization 的标题下用 Visual Studio 生成资源文件找到了这个。什么是最佳实践?我目前正在使用带有自动生成类的默认 .resx 文件。 Bot 框架和 ASP.NET Core 2.0 怎么样?有谁知道什么时候上市?
  • 社区已经在这个 PR 中提交了核心支持:github.com/Microsoft/BotBuilder/pull/3472 不知道什么时候会合并,并包含在 SDK 中。我也不确定有关资源文件的其他问题。对不起。

标签: localization asp.net-core-2.0


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    资源是键和值之间的链接。每个键都链接到一些 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-11
      • 2015-12-10
      • 2011-04-07
      • 2018-04-27
      • 1970-01-01
      • 2010-12-17
      • 2016-03-31
      • 1970-01-01
      相关资源
      最近更新 更多