#c# #blazor #blazor-server-side
Вопрос:
Могу ли я использовать директиву @page blazor с IStringLocalizer?, что-то вроде этого:
@page @Localizer["myComponent"]
Я знаю, что мы не можем использовать два @ друг за другом, но может ли кто-нибудь дать мне представление, как я могу это сделать?
Спасибо
Комментарии:
1. Почему ты хочешь сделать это именно так ?
Ответ №1:
Простой ответ: вы не можете этого сделать.
@page
Директива генерирует a RouteAttribute
в классе, созданном в C# для страницы Blazor. Вы можете увидеть это в сгенерированном коде в /obj
:
[Microsoft.AspNetCore.Components.RouteAttribute("/")]
public partial class Index : Microsoft.AspNetCore.Components.ComponentBase
{
Это означает, что маршрут определяется во время компиляции.
Localize
Функция использует языковые настройки браузера во время выполнения для определения языка и перевода ресурса.
Так как же это можно было сделать? Маршруты для страниц Blazor должны быть исправлены, но вы бы добавили набор локализованных маршрутов для каждого языка: это означало бы наличие «карты перевода» локализованного маршрута в «фактический маршрут».
напр. "/fr/indice" => "/index"
Это было бы скорее ASP.NET Основная проблема маршрутизации конечных точек, чем проблема Blazor. Вы должны найти несколько статей о маршрутизации в этом отношении.
Комментарии:
1. Спасибо @Quango, это дало мне несколько ключевых слов для продолжения.