Я работаю над приложением ASP Net Core 2, которое использует Microsoft.Extensions.Localization.IStringLocalizer
и Microsoft.AspNetCore.Mvc.Localization
для предоставления трехъязычного контента.Файлы ресурсов (например, 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>
В остальной части приложения культура определяется заголовком браузера, как описано здесь .
Вопрос
Я создаю функцию, которая должна отображать контент на языке, указанном пользователем вформа, независимо от заголовка языка браузера. Примечание : Заголовок языка браузера по-прежнему обычно используется для определения языка, на котором отображается общее содержимое страницы, но этот конкретный контент предоставляется ViewComponent
и используется для создания печатной метки для предоставления пользователям. Поэтому я также не могу предоставить язык в параметре URL lang
, так как это повлияет на язык всей страницы.
Я хочу сделатьчто-то вроде следующего
<span style="font-weight: bold">@Localizer["Usage Instructions", "nl"]</span>
, но я не думаю, что это существует (пробовал). То есть, установите язык / культуру на основе строки.
КакКак видно из подсказки в Visual Studio (см. скриншот), arguments
может позволить мне установить язык, но я просто не могу найти много документации по нему, кроме общих руководств по локализации, таких как microsoft one .
Самое близкое, что я могу найти, это это документы , но я до сих пор не вижу подробностей params object[] arguments
Заранее спасибо за любые предложения!