ASP.NET: Изменение культуры сайта программно

я пытаюсь установить культуру своего веб-сайта программно, поэтому когда пользователь нажимает кнопку, они могут изменить текст на странице с английского языка испанскому языку. вот мой код:

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

<asp:Label ID="lblDisplay" runat="server" meta:ResourceKey="lblDisplay" />

<asp:Button ID="btnChangeLanguage" runat="server" Text="Change Language"
        OnClick="btnChangeLanguage_Click" />

у меня есть файл Default.aspx.resx с ключом/значением: lblDisplay.text/English и файл Default.aspx.es.resx с ключом/значением: lblDisplay.text/Espanol

я не могу заставить текст своей Маркировки изменяться с "английского языка" на "испанский язык". кто-либо видит то, что я делаю неправильно?

5
задан 400_the_cat 9 July 2010 в 00:47
поделиться

1 ответ

Потоки ASP.Net используются в течение жизни одного запроса, а не всей сессии пользователя. Хуже того, иногда фреймворк повторно использует один и тот же поток для обработки дополнительных запросов вместо того, чтобы вернуть его в пул и получить новый (это не так уж важно, поскольку следующий запрос снова инициализирует культуру, но все же).

Вместо этого вам нужно переопределить метод InitializeCulture() для вашей страницы. Смотрите эту ссылку для более подробной информации:
http://msdn.microsoft.com/en-us/library/bz9tc508.aspx

12
ответ дан 18 December 2019 в 07:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: