Я пытаюсь использовать функцию локализации ASP. Net Core в моем приложении Blazor. Я хочу использовать IStringLocalizer, чтобы автоматически определять язык браузера для адаптации к языку пользователя. Мое решение состоит из нескольких проектов, и для чистоты я хотел собрать файлы ресурсов в одном и том же проекте (app.core) для всех других моих проектов. Вы можете увидеть пример моей архитектуры:
solution app
|-- app.project1
|-- app.project2
|-- app.core
| |-- Resources
| |-- Localization
| |-- project1
| |-- project2
| |-- web
| |-- Pages
| |-- Index.en.resx
| |-- Index.fr.resx
|-- app.web
|-- Pages
|-- Index.razor
Ресурсы, связанные с веб-проектом, находятся в основном проекте в папке Resources> Localization> web.
Я посмотрел несколько существующие вопросы, прежде чем сориентироваться, но я не нашел решения своей проблемы (или, может быть, я плохой, смеется):
Когда я помещаю свои ресурсы в один и тот же проект, он работает, так что я просто не могу понять, как это сделать, когда он в другом проекте.
Что я пробовал: В моем веб-проекте в Configureservice
у меня есть .AddLocalization()
и .Configure<RequestLocalizationOptions>(opt => ...)
, а в Configure
у меня app.UseRequestLocalization()
. В своем основном проекте я создал AssemblyInfo.cs
с [assembly: ResourceLocation("Resources/Localization/web")]
и [assembly: RootNamespace("app")]
(и другими именами, такими как app.web
или app.core
), но, похоже, он не работает.
Я не знаю Мне не нравится решение делать фиктивные .cs для каждого .resx, я не люблю иметь бесполезные классы.
Я надеюсь, что моя проблема понятна, и мой Engli sh тоже. Заранее благодарю за ответы, я впервые пришел сюда за помощью!