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)
, но я не думаю, что это будет так просто.
Кто-нибудь может дать мне подсказку, где я мог бы начать с чего-то подобного?
Спасибо!