Многоязычное приложение на C# Windows Forms - часть 1

06:02:2013 Рі.

 В этом руководстве из трех частей описано как создать приложение на C# Windows Forms, которое было бы многоязычным. И вместе с поддержкой нескольких языков было бы достаточно гибким для того, чтобы в последствии было просто добавить или удалить новый язык.  

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

Часть 1 - настраиваем форму

Сначала нужно настроить нашу форму для возможности поддержки многоязычности.

Установите в свойствах формы параметр:

Localizable - true

 

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

Когда форма поддерживает локализацию, при изменении свойства Language можно устанавливать различные языки/культуры при которых содержимое формы будет применяться только для этого языка. Тем не менее, нельзя рисовать форму сразу с установленным каким-либо языком. 

Важно! Нужно рисовать форму и все ее элементы с установкой Language по умолчанию.

Сама идея локализации предусматривает то, что ваше приложение работает одинаково и его логика не меняется для различных языков. Поэтому саму форму мы рисуем в языке по умолчанию. Когда форма готова - приступаем к локализации.

 Установив свойство Language в необходимый нам язык мы меняем текстовые свойства на нашей форме на необходимый язык вручную. Т.е. локализируем нашу форму и делаем ее такой, какой она будет выглядеть для пользователя, использующего выбранный язык в программе. Выше отображена форма с установленным английским языком, применяемым в США (забегая вперед, это может быть выражено в классе CultureInfo("en-US").

Соответственно, добавляя новый язык, мы меняем свойство Language на новый язык, который мы хотим добавить, и устанавливаем нужный нам текст на желаемом языке на элементах формы. Ниже изображена русская форма для того же приложения:

Что же происходит при установке нового языка и где храняться настройки?

После того как были добавлены эти 2 языковых варианта реализации одной формы можно открыть Обозреватель решений и увидеть:

 

 Как видно на картинке, Visual Studio создает для нас по новому файлу ресурсов для каждой локализации, которую мы добавляем для приложения.

Если мы откроем какую-то из локализаций - мы увидим следующее: 

 Как видно, для каждого свойства элемента управления в ресурсе хранится строковое значение на том значении языка, которое установлено.

Продолжение о том, как использовать созданные сейчас локализированные ресурсы читайте во второй части.

 

Добавить комментарий



Обновить

« Мультиязычное приложение на C# Windows Forms - Часть 2
← Раньше

Фотоальбом

fotic.jpg

Облако Тегов