我在我的网站上使用RouteLocalization.Mvc库进行翻译,并且在不使用默认文化(英语)时遇到了一些困难。
我的网站本地化为西班牙语,当我的浏览器语言设置为英语时,所有路由都可以正常工作 - 我得到了英语的无前缀路由和西班牙语前缀的 /es/ 路由。
但是,当我将浏览器的文化设置为西班牙语时,我会在不带前缀的路由上获得翻译后的页面,但我真正想要的前缀是(以我的 about 页面为例):
接受语言:英语
- /关于
- /es/sobre-nosotros
接受语言:西班牙语
- /es/sobre-nosotros
- /en/about (或者如果可能的话只是 /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());
任何帮助都感激不尽!!!