Список всех культур см. В документации по CultureInfo
классу
.
Что касается вашего другого вопроса, вы можете сохранить cookie с кодом языка в качестве значения и прочитать его в переопределенном InitializeCulture
следующим образом:
Установите cookie с кодом языка в качестве значения, как только пользователь нажмет кнопку:
protected void btnChangeLanguage_Click(object sender, EventArgs e)
{
Response.Cookies.Add(new HttpCookie("language") {
Value="es",
Expires=DateTime.Now.AddDays(30) /* A sample timestamp */
});
}
( Небольшое примечание : я добавил _Click
к имени обработчика, так как это может вызвать конфликт с именем кнопки в определении)
Считайте файл cookie, как только метод InitializeCulture
будет вызван на ранних этапах жизненного цикла страницы:
protected override void InitializeCulture()
{
var cookie = Request.Cookies["language"];
if (cookie != null)
{
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(cookie.Value);
Thread.CurrentThread.CurrentUICulture = new CultureInfo(cookie.Value);
}
base.InitializeCulture();
}