CurrentCulture
и CurrentUICulture
не изменяются автоматически в зависимости от того, что сообщает браузер. Вам нужно будет указать, что:
protected override void OnInit(EventArgs e)
{
try
{
System.Threading.Thread.CurrentThread.CurrentUICulture =
CultureInfo.GetCultureInfo(Request.UserLanguages[0]);
System.Threading.Thread.CurrentThread.CurrentCulture =
System.Threading.Thread.CurrentThread.CurrentUICulture;
}
catch (Exception ex)
{
// handle the exception
}
base.OnInit(e);
}
Следует отметить, что некоторые языки, которые вы можете выбрать (например, "en"), вызовут исключение при попытке назначить его на Thread.CurrentCulture
, так как он не допускает называется "нейтральными" культурами. Короче говоря, нейтральная культура - это культура, которая определяет только язык, но не географический регион. Вы можете прочитать больше об этом в документации для CultureInfo
класса .