Здравствуйте, StepanM, Вы писали:
SM>Локализация формы в C# делается следующим образом:
SM>1. Найти свойство формы Localizable. По умолчанию его значение false, сделать его true.
SM>2. Найти свойство формы Language. В качестве значения выбрать язык, который нужен.
SM>3. Теперь все надписи на элементах управлений (кнопках, пунктах меню и т.д.) переписать на нужном языке.
SM>4. В конструктор формы не забыть добавить инструкцию.
SM>SM>System.Threading.Thread.CurrentThread.CurrentUICulture
SM> = System.Threading.Thread.CurrentThread.CurrentCulture;
SM>
SM>И все.
Все сделал так, как написано. Но мне хочется менять язык приложения "на лету".
Как я пытаюсь это сделать?
Есть у меня два пункта меню, для русского и английского.
Для английского код выглядит так:
private void langEnglish_Click(object sender, System.EventArgs e)
{
//System.Threading.Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US", false);
Application.CurrentCulture = new CultureInfo("en-US", true);
System.Threading.Thread.CurrentThread.CurrentUICulture
= System.Threading.Thread.CurrentThread.CurrentCulture;
MessageBox.Show("Current UI Culture: " + CultureInfo.CurrentUICulture.Name);
langEnglish.Checked = true;
langRussian.Checked = false;
}
MessageBox показывает, что культура изменилась правильно, а вот интерфейс не меняется.
В MSDN сказано, что при установке CurrentThread.CurrentUICulture ResourceManager загружает данные для указанной культуры.
Что я делаю не так?
... << Rsdn@Home 1.1.4 beta 1 >>