Имя Пароль
Зарегистрироваться


* При перепечатке материалов ссылка на www.SeoLiga.ru обязательна! RSS



Получение и установка текущей культуры пользовательского интерфейса
8 февраля 2009

Культура, назначенная пользовательскому интерфейсу, также представлена экзем-
пляром класса Culturefnfo, и может отличаться от культуры, заданной свойством
Culturefnfo.CurrentCulture. Свойство CurrentCulture определяет правила форматиро-
вания данных, а свойства CurrentVICulture — версию ресурсов, загружаемых в лока-
лизованные формы в период выполнения. Получить значение свойства CurrentUICuhure
можно так:
Visual Basic .NET
' Этот пример предполагает наличие оператора Imports System.Globalization
Dim myCurrentCiJlture As Culturelnfo
myCurrentCulture = Culturelnfo.CurrentUICulture
Visual C#
// Этот поимер предполагает наличие оператора using System.Globalization
Culturelnfo myCurreritCulture;
nyCurrentCuIture = Culturelnfo.CurrentUICulture;
Пользовательскому интерфейсу назначают текущую культуру так же, как и при-
ложению, — через объект Thread, представляющий текущий поток. Например,
именно так можно назначить интерфейсу Тайскую культуру:
Visual Basic .NET
System.Threading.Thread.CurrentThread.CurrentUICulture - New
System.Globalization.CultureInfo("th-TH")
Visual C#
System.Threading.Thread.CurrentThread.CurrentUICulture - new
System. Globalization.CultureInfo("th-TH");
После установки текущей культуры ОС загружает соответствующие ресурсы, а
если они недоступны — загружаются ресурсы для культуры по умолчанию.
Примечание Назначать культуру пользовательскому интерфейсу следует до загруз-
ки формы, отображающей локализованные ресурсы. Чтобы сделать это програм-
мно, надо установить культуру в конструкторе главной формы или методе Main при-
ложения по крайней мере до отображения ключевых элементов пользовательского
интерфейса.
Создание локализованных форм
.NET Framework позволяет создавать локализованные формы с затратой минималь-
ных усилий. Все формы поддерживают свойство Localizable, которое определяет,
является ли форма локализуемой. Установив это свойство в true, вы сделаете форму
локализуемой.
Если свойство Localizahle установлено в true, Visual Studio .NET автоматически
создает для нее соответствующие файлы ресурсов. Установив это свойство в (Defa
и/г), вы зададите культуру по умолчанию для отображения интерфейса формы и ее
элементов управления. Чтобы создать локализованную версию формы, назначьте
свойству Language любое значение, отличное от (Default), — Visual Studio .NET ав-
томатически создаст новый файл ресурсов для заданного языка и сохранит и, нем
все значения, заданные для пользовательского интерфейса.
Примечание Обычно локализуют строковые свойства элементов пользовательского
интерфейса, но в принципе это можно сделать для любого свойства. Например, за-
ставить кнопку изменять ее размер в зависимости от длины надписи на ней (для
разных культур она отличается), а графическое окно — его вид в зависимости от
текущей культуры.
Чтобы просмотреть файл ресурсов формы, щелкните в окне Solution Explorer
кнопку Show All Files и раскройте узел рядом с формой. Под формой отобразится
список файлов ресурсов для всех языков, для которых имеются локализованные
версии формы.
> Создание локализованной формы
1. Установите свойство Localizable формы в true.
2. Создайте пользовательский интерфейс формы и переведите строковые и другие
свойства его элементов на язык, для которого предоставляется локализация.
3. Создайте ресурсы интерфейса для культуры по умолчанию — они применяются,
если культура не указана.
4. Задайте для свойства Language формы значение, определяющее соответствую-
щую культуру.
5. Добавьте к вашей форме локализованное содержимое интерфейса.
6. Повторяйте пункты 4 и 5 для каждого языка, для которого планируется предос-
тавить локализацию.
7. Выполните сборку приложения.
Если свойство CurrentUfCulture определяет культуру, для которой есть локализа-
ция, приложение загрузит нужную версию формы, прочитав соответствующие фай-
лы ресурсов. Если для указанной культуры файлов ресурсов не существует, интер-
фейсу назначается культура по умолчанию.
Проверка информации, вводимой на разных языках
Приложению может потребоваться механизм для проверки данных, вводимых на
разных языках. Реализация в приложении, поддерживающем несколько языков,
проверки вводимой с клавиатуры информации может оказаться нетривиальной за-
дачей. Разработчик не всегда знает, какие символы используются в каждом языке,
поддерживаемом приложением. А значит не сумеет корректно определить катего-
рию символа, вводимого нажатием некоторых клавиш.
Методы, поддерживаемые структурой Char, позволяют проверять данные, вве-
денные на любом языке, так же, как это делается для языков, использующих латин-
ский алфавит. Методы Char.hDigit, Char.IsLetter и ряд других возвращают коррект-
ные значения независимо от использованного при вводе набора символов, что обес-
печивает корректность работы кода, основанного на применении этих методов, не
требуя его адаптации для каждого из поддерживаемых языков.

Теги: .NET

Статьи по теме:

Анти-паттерны в действии или Самые популярные ошибки программистов
Команды для манипулирования данными
Автоматизация разработки
Применение трассировочных переключателей
Принципы разработки пользовательского интерфейса
Создание перегруженных методов
Реализация свойств
Локализация формы
Стандартная система типов CTS
Пошаговое исполнение кода
Towards Cleaner Code, A C# Asynchronous Helper
Генерация исключений
Реализация полиморфизма через наследование
Отображение сообщений об ошибках
Параметризованные свойства
| .NET | Pavel |
 


Пн Вт Ср Чт Пт Сб Вс
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31


     



Rambler's Top100

Данный сайт или домен продается ICQ: 403-353-727

© 2009 Seoliga.ru | .NET | Получение и установка текущей культуры пользовательского интерфейса. Регион сайта: Москва и Санкт-Петербург