Razor Pages: получить все ресурсы локализации для другого маршрута / страницы - PullRequest
0 голосов
/ 03 апреля 2020

ASP. NET Базовая версия: 3.1

tl; dr

Проект Razor Pages: я в настоящее время на /foo, и я хотел бы получить все локализованные строки в текущей культуре от /bar; возможно ли это и как мне подойти к нему?

Подробный вопрос

У меня есть проекты бритвенных страниц, которые используют превосходную поддержку локализации в ASP. NET ядро. Строки локализации для каждой страницы загружаются из соответствующего файла * .resx. Все работает прекрасно, я могу переключать языки, и загружается правильная строка ресурса, соответствующая выбранному в настоящее время языку.

Проект также содержит некоторые javascript веб-компоненты. Я хочу, чтобы все ресурсы локализации находились в одном месте (т. Е. В файлах * .resx), поэтому на данный момент я помещаю объект JS, содержащий все ресурсы локализации для текущей страницы, а также общие ресурсы локализации, на объект глобального окна, например:

<script>
    window.translations = @Localization_string_serialized_to_json;
</script>

В моих веб-компонентах я могу получить доступ к этому объекту и использовать локализованные строки в моем коде javascript. Это работает, но я должен разместить этот код на каждой странице, где должны быть указаны веб-компоненты c. Я бы предпочел поместить приведенный выше код на страницу макета, прочитать текущий запрашиваемый маршрут из HttpContext и создать там объект локализации.

Чтобы это работало, я должен иметь возможность запросить ресурс локализации для другой страницы / маршрута, но мне не удалось найти правильную точку расширения. Я предполагаю реализовать перегрузку на IViewLocalizer, аля: GetAllStrings(this IViewLocalizer viewLocalizer, string route|page|etc), но я не думаю, что это будет так просто.

Кто-нибудь может дать мне подсказку, где я мог бы начать с чего-то подобного?

Спасибо!

...