Многоязычный MessageBox в C # - PullRequest
       16

Многоязычный MessageBox в C #

1 голос
/ 23 февраля 2010

Мне нужно сделать многоязычное настольное приложение на C # 3.5. Я знаю, как добавить многоязычный текст для ярлыков во время разработки.

Но я не могу найти, как сделать диалоги Messagebox и Confirm многоязычными? Нужно ли добавлять условия if / else в код для проверки выбранного языка?

Спасибо в ожидании!

Ответы [ 3 ]

2 голосов
/ 23 февраля 2010

Вам необходимо переместить строки заголовка и сообщения в ресурсы, а затем получить к ним доступ через автоматически сгенерированные свойства класса Properties.Resources для вашей сборки.

Основной файл ресурсов для проекта можно создать, просмотрев свойства проекта и щелкнув вкладку Ресурсы. Если у вас еще нет ресурса Resources.resx для вашего проекта, на этой вкладке будет ссылка для его создания. Как только он будет создан, вы можете добавить ресурсы области проекта, такие как изображения и строки.

1 голос
/ 23 февраля 2010

В конструкторе в родительской форме или элементе управления есть свойство с именем Localizable, установите его в значение true, затем вы можете изменить его свойство Language и изменить метки / элементы управления перемещением, чтобы макет соответствовал для этой локализации.

При этом будут соответственно созданы файлы ресурсов.

1 голос
/ 23 февраля 2010

Вы должны использовать ресурсы. (Можно найти в разделе «Проект» -> «Свойства» -> «Ресурсы»)

Если вы используете вкладку Ресурсы, VisualStudio создаст файл Resources.resx в папке Properties для вас, где вы можете хранить различные типы ресурсов. (например, изображения, аудио и строки) Вы можете добавить туда любые локализуемые строки и использовать их позже как Properties.Resources.MyMessageBoxTitle.

Позже, когда вы захотите добавить поддержку другого языка, вы можете скопировать этот файл Resources.resx и переименовать его в что-то вроде Resources.it-it.resx (или Resources.fr.resx). Затем менеджер ресурсов автоматически загрузит строку из соответствующего файла ресурсов. (на основе Thread.CurrentUICulture)

...