C # Тестирование локализации Windows Forms - PullRequest
1 голос
/ 02 февраля 2011

Я настроил проект 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), но все равно отображает все на английском языке.Так в чем же разница между тем, что происходит во время отладки и во время реального времени выполнения?И как я могу это исправить?!?

Ответы [ 2 ]

4 голосов
/ 02 февраля 2011

Убедитесь, что ваши локализованные ресурсы Dll установлены правильно.

Ваш установщик должен поместить файлы ресурсов в подпапки, такие как

ж- СНТ \ AssemblyName.resources.dll

2 голосов
/ 02 февраля 2011

Похоже, что по умолчанию используется английский по умолчанию, что говорит о том, что ресурсы, которые вы настроили для китайского, не включены в сборку.Дважды проверьте свои ресурсы и убедитесь, что они включены в ваше развертывание.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...