【发布时间】:2019-08-02 22:15:45
【问题描述】:
我正在开发一个使用Microsoft.Extensions.Localization.IStringLocalizer 和Microsoft.AspNetCore.Mvc.Localization 提供三语内容的ASP Net Core 2 应用程序。资源文件(例如 Controllers.HomeController.fr.resx 和 Controllers.HomeController.nl.resx 工作正常,以下是典型的 Razor 页面视图:
@using Microsoft.Extensions.Localization
@using Microsoft.AspNetCore.Mvc.Localization
@using System.Globalization;
@inject IStringLocalizer<HomeController> Localizer
@inject IHtmlLocalizer<HomeController> HtmlLocalizer
...
<span style="font-weight: bold">@Localizer["My string 1"]</span>
...
<li>@HtmlLocalizer["My string 2 <span style=\"font-weight: bold;\">with bold</span>."]</li>
在应用程序的其余部分中,文化由浏览器标头确定,如 here 所述。
问题
我正在构建一项功能,该功能必须以用户指定的语言在表单中显示内容,而不管浏览器语言标题如何。 注意:浏览器语言标头通常仍用于确定显示整体页面内容的语言,但此特定内容由ViewComponent 提供,用于创建可打印标签给予用户。因此我也无法在 URL lang 参数中提供语言,因为这会影响整个页面的语言。
我想做如下的事情
<span style="font-weight: bold">@Localizer["Usage Instructions", "nl"]</span>
但我认为这不存在(尝试过)。即,在特定字符串的基础上设置语言/文化。
但是,从 Visual Studio 中的提示(见屏幕截图)看来,arguments 可能允许我设置语言,除了microsoft one 等一般本地化教程之外,我找不到太多关于它的文档.
我能找到的最接近的是this docs,但我仍然看不到params object[] arguments 的详细信息
提前感谢您的任何建议!
【问题讨论】:
标签: c# asp.net-core asp.net-core-mvc