Re[2]: Локализация....
От: Туленцев Сергей Россия http://software.tulentsev.com
Дата: 11.09.04 12:38
Оценка:
Здравствуйте, 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 >>
--
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.