Я только начинаю локализовать приложение ASP.NET MVC. Большая часть строк будет определена в файлах ресурсов и получена с помощью Matt Localization Helpers. Другие строки должны храниться в базе данных.
Мой вопрос: должен ли я установить CurrentUICulture
раннем этапе в конвейере запросов и использовать его во всем приложении, или напрямую использовать Request.UserLanguages[0]
при необходимости?
Прямо сейчас я думаю, что я должен установить CurrentUICulture
в Application_BeginRequest. Реализация будет выглядеть примерно так:
protected void Application_BeginRequest(object sender, EventArgs e)
{
var cultureName = HttpContext.Current.Request.UserLanguages[0];
Thread.CurrentThread.CurrentUICulture = new CultureInfo(cultureName);
}
Это лучшее место для установки CurrentUICulture
и Request.UserLanguages[0]
лучшее место для получения этой информации?
Обновить:
Пост Ариэля показывает, что это можно определить без кода, используя web.config
<system.web>
<!--If enableClientBasedCulture is true, ASP.NET can set the UI culture and culture for a Web page automatically, based on the values that are sent by a browser.-->
<globalization enableClientBasedCulture="true" culture="auto:en-US" uiCulture="auto:en"/>