Мы используем 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 добиться следующего?:
- Domain.com использует локализацию на основе запросов
- Domain.com / en использует Engli sh локализация
- Domain.com / nl использует Голландская локализация
- Подгруппы все еще работают (например: Domain.com/home и Domain.com/en/home)