Изменить систему культуры - PullRequest
0 голосов
/ 16 августа 2010

Как я могу изменить системную культуру, которая влияет на все страницы (программно)?я видел эту тему.

, но я хочу изменить культуру на своей странице входа в систему с помощью этих кодов.

protected void btnChangeLanguage(object sender, EventArgs e)
{
    Thread.CurrentThread.CurrentCulture = new CultureInfo("es");
    Thread.CurrentThread.CurrentUICulture = new CultureInfo("es");
}

Thread.CurrentThread.CurrentUICulture = new CultureInfo("fa-IR")
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("fa-IR")

Моя культура изменена верхним кодомЯ проверил по этому коду.

MsgBox("Current Culture is " + CultureInfo.CurrentCulture.EnglishName)

но наш текст и надписи все еще на английском.(У меня есть ресурс на английском и персидском языках.)

Ответы [ 2 ]

4 голосов
/ 16 августа 2010

Список всех культур см. В документации по 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();
}
2 голосов
/ 16 августа 2010

Добавьте следующую строку в <system.web> раздел вашего web.config

<globalization culture="es" uiCulture="es"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...