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



Форматирование, зависимое от культуры
8 февраля 2009

Для адаптации приложения к нуждам заказчика разработчику достаточно модифи-
цировать некоторые члены класса Culturelnfo. Предположим, что необходимо на-
писать приложение для клиента, сотрудничающего с партнерами из Японии, одна-
ко денежные суммы в этом приложении должны исчисляться в американских дол-
ларах. Стало быть, приложение будет использовать для большинства элементов
форматирование, принятое в японской культуре, но денежные суммы в нем всегда
отображаются со знаком доллара.
Три члена класса Culturelnfo определяют форматирование, применяемое при гло-
бализации приложений (таблица 8-3). Модифицируя эти члены, можно создавать
различные комбинации форматов, отсутствующие в стандартных культурах.
Таблица 8-3. Члены класса Culturelnfo, определяющие форматирование
Член Описание
DateTimeFormat Содержит сведения о формате даты и времени, в том числе
сокращенные названия дней недели, а также данные, определяющее
отображение названий месяцев и времени в 12-часовом формате.
Определяет форматы календаря, дней недели, дат и времени,
применяемые при форматировании
NumberFormat Содержит сведения о форматах чисел и денежных единиц, включая
описания разделителей десятичных дробей и разрядов тысяч,
применяемых для форматирования этих значений. Определяет символ,
применяемый для отображения денежных единиц, и форматирование
процентных значений
Textlnfo Содержит сведения о форматировании текста, включая кодовую
страницу и символ, используемый в качестве разделителя элементов
списков
Свойства этих членов разрешается модифицировать для создания пользователь-
ских наборов форматов, отсутствующих в стандартных культурах. Вернемся к при-
веденному выше примеру: чтобы получить нестандартную культуру, состоящую в
основном из параметров форматирования, принятых в Японии (за исключением
денежных единиц, которые должны отображаться со знаком доллара), следует со-
здать новый объект Culturelnfo и соответствующим образом модифицировать его.
Следующий пример демонстрирует создание нового класса Culturelnfo на основе
параметров японской культуры и замену символа японской валюты знаком доллара:
Visual Basic .NET
Этот пример предполагает наличие операторов Imports System.Globalization
и Imports System.Threading
Dim modJPCulture As New CultureInfo{"jp-JN")
modJPCulture.NumberFormat.CurrencySymbol = "$"
Thread.CurrentThread.CurrentCulture = modJPCulture
Visual C#
// Этот пример предполагает наличие операторов using System.Globalization
// и using System.Threading
Culturelnfo modJPCulture = new CultureInfof"jp-JNTT);
modJPCulture.NumberFormat.CurrencySyrnbol - "$";
Thread.CurrentThread.CurrentCulture = modJPCulture;
Отображение текста справа налево
В некоторых языках пишут и читают справа налево, а не наоборот, как принято в
большинстве языков, использующих латинский алфавит. Стандартные элементы
управления Windows Forms поддерживают свойство KightToLeft, которое позволяет
реализовать отображение текста пользовательского интерфейса приложения спра-
ва налево.
Свойство RightToLeft принимает одно из следующих трех значений — Yes, No и
Inherit. По умолчанию свойство RightToLeft установлено в Inherit, при этом его ре-
альное значение наследуется от родительского элемента управления.
Если установить свойство RightToLeft в Yes, вид элемента управления изменит-
ся, причем количество изменений зависит от типа элемента управления. Во-пер-
вых, по-другому выравнивается текст: обычно он выравнивается по левому краю,
теперь — по правому. Во-вторых, заголовок элемента управления также выравни-
вается по правому краю. Вертикальная полоса прокрутки отображается слева, а при
инициализации горизонтальных полос прокрутки ползунок позиционируется спра-
ва. Значение свойства CheckAlign для флажков изменится на противоположное, яр-
лычки вкладок располагаются другой стороны окна, выравнивание элементов с пис-
ков также изменится. Короче говоря с точки зрения форматирования все элементы
управления станут зеркальными отражениями самих себя.
Однако, несмотря на все эти изменения, содержимое элементов управления по-
прежнему отображается слева направо.
Хотя выравнивание текста, отображаемого в поле, изменилось, сам текст по-пре-
жнему отображается так же, как читается, — слева направо. Поэтому при локализа-
ции ресурсов для культур, в которых принято читать справа налево, придется от-
форматировать строки вручную.
Если установить свойство RightToLefl формы в Yes, то все размешенные на ней
элементы управления, у которых RightToLeft = Inherit, будут выровнены по правому
краю. Возможно, вам придется еще потрудиться и создать форму с зеркальным рас-
положением элементов управления для культур, в которых принято читать и писать
справа налево.
Для этого надо создать локализованную форму и вручную расположить на ней
элементы управления — для каждого из них значения свойств, определяющие по-
ложение элемента управления на форме, будут записаны в файл ресурсов локали-
зованной формы.

Теги: .NET

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

Применение объекта DataReader
Создание формируемых элементов управления
Создание классов
Создание и настройка объекта DataAdapter
Проверка на уровне поля
Создание плана блочного тестирования
Применение отладочных инструментов
Обработка ошибок при обновлении базы данных
Члены типов CTS
Доступ к общим членам
Применение встроенной функциональности типов данных
Связывание, просмотр и фильтрация данных
Параметры
Вызов методов
Towards Cleaner Code II, a C# GUI Invoke/Async 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 | Форматирование, зависимое от культуры. Регион сайта: Москва и Санкт-Петербург