Где я должен установить язык (CurrentThread.CurrentCulture)? - PullRequest
5 голосов
/ 08 февраля 2011

В старых asp.net - проектах, которые мы использовали для установки языка обычно в Application_BeginRequest - обработчике (Global.asax), примерно так:

System.Threading.Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(cookie.Lang)

Теперь я переключаюсь на MVC 2 и решил сохранить язык в качестве маршрута исправления в URL. URL выглядит так: {lang}/{controller}/{action}

Как и где я должен прочитать язык с URL-адреса и установить CurrentCulture? Как лучше всего сделать MVC - способ?

Спасибо за любые чаевые!

1 Ответ

5 голосов
/ 08 февраля 2011

Что-то подобное в global.asax должно работать

protected void Application_AcquireRequestState(object sender, EventArgs e)
{
    MvcHandler handler = Context.Handler as MvcHandler;
    if (handler == null)
        return;

    string lang = handler.RequestContext.RouteData.Values["lang"] as string;

    CultureInfo culture = CultureInfo.GetCultureInfo(lang);

    Thread.CurrentThread.CurrentUICulture = culture;
    Thread.CurrentThread.CurrentCulture = culture;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...