Я настроил проект Windows Form для использования локализации, чтобы он поддерживал китайский и английский языки.Я построил способ заставить язык к тому или иному, когда форма загружается.Перед вызовом InitializeComponent () у меня есть немного кода, который делает это ...
switch (Properties.Settings.Default.SelectedLanguage)
{
case "":
break;
case "English":
Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
break;
case "Chinese":
try
{
Thread.CurrentThread.CurrentUICulture = new CultureInfo("zh-CHT");
Thread.CurrentThread.CurrentCulture = new CultureInfo("zh-CHT");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
break;
}
Итак, когда свойство SelectedLanguage установлено на "Chinese", программа должна использовать право китайской локализации?Я проверял это во время отладки, и он работал точно так, как ожидалось.То есть когда SelectedLanguage == "Китайский" при запуске программы все кнопки и метки отображаются в китайском тексте, который я ввел.Когда SelectedLangugage == "English" все отображается в английском тексте, который я ввел.
Проблема в том, что когда я устанавливаю и запускаю эту программу (не отлаживая), она не работает.Даже на моей машине развития.Независимо от того, что для SelectedLanguage установлено, программа всегда отображает английскую локализацию.Я даже вставил окно с сообщением в начале программы, которое отображает «Application.CurrentCulture.Name» и показывает название китайской культуры (zh-CHT), но все равно отображает все на английском языке.Так в чем же разница между тем, что происходит во время отладки и во время реального времени выполнения?И как я могу это исправить?!?