AspNetCore Blazor Маршрутная локализация - PullRequest
2 голосов
/ 20 января 2020

Мы используем AspNetCore 3.1 Blazor (на стороне сервера) в моем новом проекте, но мы не можем заставить работать локализацию на основе маршрутов. (например: domain.com/en или domain.com/nl)

Мы получили локализацию на основе запросов, используя следующие файлы Startup.cs:

    public void ConfigureServices(IServiceCollection services)
    {
        services.AddRazorPages();

        services.AddServerSideBlazor();

        services.AddLocalization(options => options.ResourcesPath = "Resources/Localization");
        var supportedCultures = new List<CultureInfo>{
            new CultureInfo("en-US"),
            new CultureInfo("nl")
        };

        services.Configure<RequestLocalizationOptions>(options =>
        {
            options.DefaultRequestCulture = new Microsoft.AspNetCore.Localization.RequestCulture("en-US");
            options.SupportedUICultures = supportedCultures;
            options.SupportedUICultures = supportedCultures;
        });
    }

    // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        app.UseStaticFiles();

        app.UseRouting();

        app.UseRequestLocalization();

        if (env.IsDevelopment())
            app.UseDeveloperExceptionPage();
        else
            app.UseExceptionHandler("/Error");

        app.UseEndpoints(endpoints =>
        {
            endpoints.MapBlazorHub();
            endpoints.MapFallbackToPage("/_Host");
        });
    }

Есть ли способ в Blazor добиться следующего?:

  1. Domain.com использует локализацию на основе запросов
  2. Domain.com / en использует Engli sh локализация
  3. Domain.com / nl использует Голландская локализация
  4. Подгруппы все еще работают (например: Domain.com/home и Domain.com/en/home)
...