Я лично не имел дела с файлами ресурсов в. NET Core, но похоже, что они все еще поддерживаются. Я нашел эту статью: Глобализация и локализация в ASP. NET Core , который ссылается на образец проекта .
Это может показаться сложным, но в итоге Надеюсь, это будет иметь смысл, если мы его разберем. Если вы посмотрите на этот код, важные вещи:
В startup.cs они добавляют поддержку локализации:
...
services.AddLocalization(options => options.ResourcesPath = "Resources");
services.AddMvc()
.AddViewLocalization(LanguageViewLocationExpanderFormat.Suffix)
.AddDataAnnotationsLocalization();
...
services.Configure<RequestLocalizationOptions>(options =>
{
var supportedCultures = new [] { "en-US", "fr" };
options.SetDefaultCulture(supportedCultures[0])
.AddSupportedCultures(supportedCultures)
.AddSupportedUICultures(supportedCultures);
});
В контроллере они получают сервис через внедрение зависимостей (например, HomeController.cs ):
private readonly IStringLocalizer<HomeController> _localizer;
public HomeController(IStringLocalizer<HomeController> localizer)
{
_localizer = localizer;
}
Оттуда они используют его в действии:
public IActionResult About()
{
ViewData["Message"] = _localizer["Your application description page."];
return View();
}
Или в Просмотр :
@using Microsoft.AspNetCore.Mvc.Localization
@inject IViewLocalizer Localizer
@{
ViewData["Title"] = Localizer["About"];
}
(использование его из представления, вероятно, намного лучший способ сделать это).
Фактические файлы локализации хранятся в ресурсах папка , как указано в конфигурации Startup.cs. Вы можете видеть, что они организованы по контроллеру / представлению.
В файле Startup.cs
есть еще код, связанный с локализацией, но не совсем ясно, какие именно вам понадобятся. Я бы скопировал весь код, связанный с локализацией, из них в ваше приложение и выяснил, какие из них действительно нужны, удалив разделы после , чтобы он заработал.