Я использую Visual Studio 2008 и ASP.NET для создания веб-приложения.Большинство моих веб-страниц основаны на одной главной странице.Эта главная страница содержит три ссылки кнопок, которые действуют как переключатели языка;обработчики событий Click
выглядят так:
protected void lbuLangEN_Click(object sender, EventArgs e)
{
this.SwitchLanguage(string.Empty);
}
protected void lbuLangES_Click(object sender, EventArgs e)
{
this.SwitchLanguage("es");
}
Тогда у меня есть свой закрытый метод SwitchLanguage
:
private void SwitchLanguage(string culture)
{
Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo(culture);
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(culture);
}
Насколько я понимаю, этого должно быть достаточно, чтобыстраницы, основанные на моей главной странице, имеют локализованное поведение, то есть получают ресурсы из соответствующего локального файла resx
в соответствии с культурой.Тем не менее, это не работает.Они всегда отображаются на испанском языке, который является языком по умолчанию для моего браузера.Я установил несколько сообщений трассировки в точках входа и выхода SwitchLanguage
, и, очевидно, текущий поток не меняет информацию о культуре: каждый раз, когда вызывается SwitchLanguage
, культура текущего потока - "es-ES", независимо отчто мой код только что установил.
Есть ли проблемы с моим кодом или с подходом, который я использую?Спасибо.