Не получает файл локализации ASP.NET.C#

Место общения программистов C#
Anonymous
Не получает файл локализации ASP.NET.

Сообщение Anonymous »

Я работаю над проектом ASP.NET, и мне нужно реализовать локализацию сообщений на серверной стороне. Я хочу использовать два файла ресурсов (один для английского и один для русского), которые будут общими для всех классов в решении, а также использовать локализатор в своих контроллерах следующим образом: localizer["message"]. Я настроил Startup.cs:

Код: Выделить всё

public void ConfigureServices(IServiceCollection services)
...
// Localization
services.AddControllers().AddDataAnnotationsLocalization();

services.AddLocalization(options => options.ResourcesPath = "Resources");

services.Configure(options =>
{
var supportedCultures = new[] { "ru", "en" };

options.SetDefaultCulture(supportedCultures[0])
.AddSupportedCultures(supportedCultures);
});
...
Примитивная структура:

Код: Выделить всё

Solution
│
├── Web
│   ├── Startup.cs
│   ├── Program.cs
│   ├── SharedResource.cs
│   │   Controllers
│   │   └── ...
│   ├── Resources
│   │   ├── SharedResource.en.resx
│   │   ├── SharedResource.ru.resx
│   └── ...
└── Other projects
Я также создал отдельный класс SharedResource, соответственно в контроллере он выглядит так, как этот локализатор IStringLocalizer. У меня есть два файла SharedResources.ru.resx и SharedResource.en.resx, которые расположены в папке «Ресурсы».
И Вся проблема в том, что когда я отправляю запрос к API, он возвращает не сообщение, а ключ, указанный в localizer["message"], т. е. message. Насколько я понимаю, это происходит тогда, когда файл ресурсов не найден.
И я не понимаю, почему это происходит. Заранее спасибо!
Создайте локализацию в своем проекте, чтобы локализованные сообщения приходили из бэкенда, а вы получали только ключ.

Подробнее здесь: https://stackoverflow.com/questions/788 ... ation-file

Вернуться в «C#»