Blazor Server-Size с локализованным ресурсом в другом проекте - PullRequest
0 голосов
/ 24 апреля 2020

Я пытаюсь использовать функцию локализации 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 тоже. Заранее благодарю за ответы, я впервые пришел сюда за помощью!

...