protected void Application_BeginRequest() { var lang = ""; var userLanguages = Request.UserLanguages;
if (userLanguages != null && userLanguages.Length > 0)
{
lang = userLanguages[0].ToLowerInvariant();
}
switch (lang)
{
case "zh-cn":
Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("zh-CN");
Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("zh-CN");
break;
case "zh-tw":
Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("zh-TW");
Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("zh-TW");
break;
default:
Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
Thread.CurrentThread.CurrentUICulture = CultureInfo.InvariantCulture;
break;
}
}
public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapMvcAttributeRoutes();
routes.MapRoute(
name: "Default",
url: "{language}/{controller}/{action}/{id}",
defaults: new { language = "zh-cn", controller = "Home", action = "Index", id = UrlParameter.Optional },
constraints: new { language = "(en|zh-cn|zh-tw)" }
);
routes.MapRoute(
name: "Default_en",
url: "en/{controller}/{action}/{id}",
defaults: new { language = "en", controller = "Home", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "Default_cn",
url: "zh-cn/{controller}/{action}/{id}",
defaults: new { language = "zh-cn", controller = "Home", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "Default_tw",
url: "zh-tw/{controller}/{action}/{id}",
defaults: new { language = "zh-tw", controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}