Я пытаюсь локализовать свое приложение.Первоначально я написал его на английском языке с (стандартной) или (по умолчанию) локализацией (моя Visual Studio на немецком языке, поэтому я не уверен, как она называется на английском).
Кажется, локализация Visual Studio по умолчанию en-US
, и я использовал de
, чтобы снова написать все на немецком языке.
У меня есть две кнопки для смены языка, обе с событием щелчка.Обработчики событий выглядят так:
private void EnglishButton_Click(object sender, EventArgs e)
{
if(Thread.CurrentThread.CurrentUICulture != CultureInfo.GetCultureInfo("en-US"))
{
Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("en-US");
this.Controls.Clear();
InitializeComponent();
Application.OpenForms[0].Activate();
this.Activate();
}
}
Для de
Я сделал то же самое, просто с de
вместо en-US
.
Работает нормально, заморозка исправлена.Однако есть одна вещь, которая мне не нравится: как вы можете видеть выше, мне нужно убрать фокус с окна и вернуть ему фокус, иначе я не могу взаимодействовать с окном после переключения языка.
Лично для меня это нормально, но я боюсь, что это может вызвать раздражающее мерцание для зрячих людей.Как вы думаете?Это нормально, как сейчас?Или есть лучший способ?