Asp.net mvc 5 MVC路由本地化难以重定向到正确的前缀
我正在使用库在我的网站上进行翻译,在不使用默认文化(英语)时遇到了一些困难 我的网站本地化为西班牙语,当我的浏览器语言设置为英语时,所有路由都能正常工作-我得到了英语中的无前缀路由和西班牙语中的前缀/es/routes 但是,当我将浏览器的区域性设置为西班牙语时,我会在不带前缀的路径上获得翻译后的页面,但我真正想要的前缀是(以我的“关于”页面为例): 接受语言:英语Asp.net mvc 5 MVC路由本地化难以重定向到正确的前缀,asp.net-mvc-5,routelocalization-mvc,Asp.net Mvc 5,Routelocalization Mvc,我正在使用库在我的网站上进行翻译,在不使用默认文化(英语)时遇到了一些困难 我的网站本地化为西班牙语,当我的浏览器语言设置为英语时,所有路由都能正常工作-我得到了英语中的无前缀路由和西班牙语中的前缀/es/routes 但是,当我将浏览器的区域性设置为西班牙语时,我会在不带前缀的路径上获得翻译后的页面,但我真正想要的前缀是(以我的“关于”页面为例): 接受语言:英语 /关于 /es/sobre nosotros 接受语言:西班牙语 /es/sobre nosotros /en/about(
- /关于
- /es/sobre nosotros
- /es/sobre nosotros
- /en/about(或如果可能的话只是/大约)
var config = new Configuration()
{
DefaultCulture = "en",
AcceptedCultures = new HashSet<string> { "en", "es" },
AddCultureAsRoutePrefix = true,
AddTranslationToSimiliarUrls = true,
AttributeRouteProcessing = AttributeRouteProcessing.AddAsNeutralRoute
};
// translations omitted
CultureSensitiveHttpModule.GetCultureFromHttpContextDelegate = Localization.DetectCultureFromBrowserUserLanguages(acceptedCultures, defaultCulture);
GlobalFilters.Filters.Add(new CultureSensitiveActionFilterAttribute());
var config=new Configuration()
{
DefaultCulture=“en”,
AcceptedCultures=新哈希集{“en”,“es”},
AddCultureAsRoutePrefix=true,
AddTranslationToSimialUrls=true,
AttributeRouteProcessing=AttributeRouteProcessing.AddAsNeutralRoute
};
//省略的翻译
CultureSensitiveHttpModule.GetCultureFromHttpContextDelegate=Localization.DetectCultureFromBrowserUserLanguages(acceptedCultures,defaultCulture);
GlobalFilters.Filters.Add(新的CultureSensitiveActionFilterAttribute());
任何帮助都将不胜感激 您需要的设置如下所示:
- 英语本地化路由(不带前缀)
- 西班牙语本地化路由(带前缀)
- 没有中立路线
attributeroutteprocessing.AddAsNeutralRoute
)
尝试将addCulturesRoutePrefix
设置为false
,attributeroutteProcessing
设置为AddAsDefaultCultureRoute
。然后调用TranslateInitialAttributeRoutes()
这将添加不带前缀的属性路由作为本地化英文路由。文档中的一些信息:
首先,您必须决定如何处理RouteLocalization拦截的初始属性路由。可以通过Configuration.attributeroutteprocessing属性选择一些可能性
例如,如果您的属性路由为英语,则可以定义每个属性路由都应添加为英语区域性的本地化路由。因此,您可以将DefaultCulture设置为“en”,将AttributeRootProcessing设置为AddAsDefaultCultureRoute
调用TranslateInitialAttributeRoutes
后,您可以将AddCultureAsRoutePrefix
设置回true
,然后开始翻译西班牙语路线