Ryu*_*oPL 15 asp.net routes asp.net-core
我正在使用ASP.NET Core 2开发一个在线商店,我正在努力实现如何实现路由本地化,例如.取决于用户所在的国家/地区,我希望他看到/ en/products或/ pl/produkty.
我设法将文化作为网址的一部分来实现,例如/ en/....,用户也可以通过点击网站上的按钮来更改默认语言.但是,我不知道如何本地化整个网址.我不想在Startup.cs(MapRoute)中放入数百个URL.我需要一个更好的解决方案,它在幕后自动运行.
如果有人直接更改网址(例如en/products)并将pl替换为en,我希望他/她自动重定向到pl/produkty.
我希望你能帮帮我!
这里有一个非常好的资源: Asp.Net core Localization deep div
这正是您要寻找的:
IList<CultureInfo> supportedCultures = new List<CultureInfo>
{
new CultureInfo("en-US"),
new CultureInfo("fi-FI"),
};
var localizationOptions = new RequestLocalizationOptions
{
DefaultRequestCulture = new RequestCulture("en-US"),
SupportedCultures = supportedCultures,
SupportedUICultures = supportedCultures
};
var requestProvider = new RouteDataRequestCultureProvider();
localizationOptions.RequestCultureProviders.Insert(0, requestProvider);
app.UseRouter(routes =>
{
routes.MapMiddlewareRoute("{culture=en-US}/{*mvcRoute}", subApp =>
{
subApp.UseRequestLocalization(localizationOptions);
subApp.UseMvc(mvcRoutes =>
{
mvcRoutes.MapRoute(
name: "default",
template: "{culture=en-US}/{controller=Home}/{action=Index}/{id?}");
});
});
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3771 次 |
| 最近记录: |