Кнопки MessageBox - заданный язык?
Когда вы используете MessageBox.Show()
вас есть выбор MessageBoxButtons на выбор. Доступные кнопки представляют собой перечисление и дают вам такие опции, как "Да Нет", "OK Отмена" и т.д.
Когда я использую, например, норвежский текст сообщения, пользователь по-прежнему получает английский "Да Нет".
Есть ли способ изменить текст кнопок (в С#), чтобы язык был правильным? Могу ли я переопределить текст или установить текущую локаль каким-либо образом, чтобы я мог иметь "Ja Nei" вместо "Да Нет"?
Я не хочу полагаться на установку языкового пакета .NET на моем клиенте.
Ответы
Ответ 1
В .NET нет встроенной поддержки .NET(насколько я знаю, в любом случае, пожалуйста, поправьте меня, если я ошибаюсь, кто-либо). Я столкнулся с этой статьей CodeProject, которая, похоже, делает трюк с некоторым подключением сообщений и P/Invoke:
http://www.codeproject.com/KB/miscctrl/Localizing_MessageBox.aspx
Ответ 2
Обычно кнопки сообщений (как и все Windows) соответствуют установленному в настоящее время языку пользовательского интерфейса для Windows. Поэтому, если у вас установлена английская версия и вы не можете менять языки (версии MUI или Ultimate для Vista/7), вам не повезло.
Вы могли бы реализовать окно сообщений самостоятельно, но я прошу вас не делать этого. Простые вещи, такие как обычные горячие клавиши для кнопок, имеющие возможность использовать Ctrl + Ins для копирования содержимого и т.д., - это те, которые я пропускаю больше всего, когда люди начинают изобретать квадратные колеса.
Ответ 3
Я не думаю, что это возможно, но обратитесь к статье MSDN MessageBox.Show Method. Вы можете получить некоторые идеи. Вы можете изменить текст в окне сообщения. Как создать собственное окно сообщений (новая форма) и отобразить их?