Привет, у меня есть вопрос о файле SharedResources. В этом учебном пособии рассмотрено следующее: https://docs.microsoft.com/en-us/aspnet/core/fundamentals/localization, и я не уверен, правильно ли я понял.
Я должен создать класс SharedResources.cs
, но куда его поместить, и должен ли он быть пустым или мне нужно заполнить его некоторыми данными?
То же самое касается файла ресурсов, должен ли я создать файл SharedResources.da.resx
и разместить все мои общие строки? Куда он должен идти?
И когда я использую IHtmlLocalizer<SharedResources>
, просто пишу @using
и указываю его на пространство имен, в котором находится SharedResources.cs
?
Я попытался положить SharedResources.cs
и SharedResources.da.resx
в папку "Ресурсы" и использовать его для изменения языка сайта на датский язык, но он не работает. Использование выделенного файла ресурсов, такого как Index.da.resx
и IViewLocalizer
, отлично работает, но IHtmlLocalizer<SharedResources>
, похоже, не работает.
Когда я посмотрел пример проекта, связанный в нижней части страницы, я не нашел места, где используется SharedResources, было бы здорово, если бы кто-то обновил его примером.
Вот как я пытался это сделать:
Views/Home/Index.cshtml:
@using Funkipedia.Resources
@using Microsoft.AspNetCore.Mvc.Localization
@inject IHtmlLocalizer<Shared> SharedLocalizer
...
<p>@SharedLocalizer["Hei"]</p>
...
В верхней части ConfigureServices в Startup.cs:
services.AddLocalization(options => options.ResourcesPath = "Resources");
services.AddMvc()
.AddViewLocalization(LanguageViewLocationExpanderFormat.Suffix)
.AddDataAnnotationsLocalization();
В верхней части Configure в Startup.cs:
var supportedCultures = new List<CultureInfo>
{
new CultureInfo("nb-NO"),
new CultureInfo("sv-SE"),
new CultureInfo("da-DK")
};
app.UseRequestLocalization(new RequestLocalizationOptions
{
DefaultRequestCulture = new RequestCulture("nb-NO"),
SupportedCultures = supportedCultures,
SupportedUICultures = supportedCultures
});
Папка ресурсов содержит пустой класс с именем Shared.cs
и Shared.da.resx
, который содержит общие строки. Возможно, мне нужно изменить его имя на SharedResources.cs
и SharedResources.da.resx
?