|
Программирование >> Автоматически обновляемые приложения
Листинг 14.1. Вывод локализованных названий месяцев и недель using System. Globalizations-private void FillListBox() { string culture = cboCulture.Selectedltem.ToString() ; Culturelnfo ci = new Culturelnfo(culture); DateTimeFormatlnfo dtfi = new DateTimeFormatlnfo(); dtfi = ci.DateTimeFormat; DateTime dt; IstMonth.Items.Clear() ; for (mt i = 1; i <= 12; i++) { dt = new DateTime(1900, i, 1); IstMonth.Items.Add(dt.ToString( MMMM , ci)); IstWeek.Items.Clear(); for (DayOfWeek i = DayOfWeek.Sunday; i <= DayOfWeek.Saturday; i++) { IstWeek.Items.Add(dtfi.GetDayName(i) ) ; продолжить выбирать различные языки, и содержимое списков будет меняться. А теперь внимание. Я не знаю, как пишутся эти названия на немецком, английском, финском, украинском или французском языках. Более того, если посмотрите исходный код программы, который приведен в листинге 14.1, то не увидите этих названий в коде. То есть все эти названия уже прошиты в .NET Framework! С такой же легкостью я могу добавить в этот список эстонский, шведский, итальянский или арабский язык. Если ваша программа использует в работе дни недели и месяцев, то, используя эту возможность, вы можете в автоматическом режиме подстраиваться под родной язык пользователя на уровне операционной системы. Иными словами, вы можете воспользоваться возможностями глобализации, предоставляемыми .NET Framework. private void Forml Load(object sender, EventArgs e) cboCulture.Items.Add( ru-RU ) cboCulture.Items.Add( en-US ) CboCulture.Items.Add( de-DE ) CboCulture.Items.Add( fr-FR ) CboCulture.Items.Add( uk-UA ) CboCulture.Items.Add( fi-FI ) CboCulture.Selectedlndex = 0; Примечание Пример работы с названиями месяцев и недель находится в папке Culture-Info на прилагаемом диске. Общая информация о локализации Вторая тема, которая тесно связана с глобализацией, - это локализация приложений. Становление современной компьютерной индустрии начиналось в США, поэтому неудивительно, что родным языком компьютеров стал английский язык. Операционные системы, интерфейс программ, конструкции языков программирования- все было на английском. Пока использование компьютеров было уделом специалистов, это не составляло проблемы. Но когда компьютерами и компьютерными технологиями (в первую очередь Интернетом) стали пользоваться широкие слои населения во всем мире, то возникла проблема локализации программ. Несмотря на все уверения опытных пользователей, что изучить несколько английских слов совсем не сложно, обычные пользователи (домохозяйки, школьники, бухгалтеры) не собирались следовать этим советам. Некоторые разработчики программ поняли, что локализация программ поможет им расширить рынок сбыта платных версий утилит. Сама компания Microsoft тоже стала выпускать локализованные версии своих продуктов, в том числе Windows и Office. Таюке появились и программисты-энтузиасты, которые самостоятельно переводили английский интерфейс программ на свой родной язык. Применительно к нашей стране это private void cboCulture SelectedValueChanged(object sender, EventArgs e) { FillListBoxO ; Локализующие идентификаторы До появления .NET Framework в Windows использовалось понятие локализующий идентификатор (locale identifier, LCID), который активно использовался в соответствующих функциях Windows API для получения информации об используемом пользователем региональном стандарте. Сам идентификатор LCID является 32-битным беззнаковым целым числом. Это число можно разбить на четыре части. Первые две части определяют язык и его подмножество, а последние две части задают порядок сортировки текстовых строк. В Windows используется LCID-идентификатор по умолчанию, который выбирается системой при установке. В дальнейшем данный идентификатор наследуется каждым пользователем системы и его действие распространяется на все потоки, создаваемые пользователем. Пользователь может в любой момент сменить LCID-идентификатор, используемый по умолчанию, через апплет Язык и Региональные стандарты в Панели управления, а разработчик может это сделать программным путем через вызов специальных функций Windows API. С появлением .NET Framework LCID-идентификаторы были включены в библиотеку классов и являются частью пространства имен, связанных с культурой. Под термином культура в .NET Framework подразумевается язык и местонахождение пользователя. направление получило название русификации программы. Русифицированные программы (официальные и программы-самоделки) стали пользоваться спросом у пользователей. Люди стали целенаправленно искать именно русифицированные версии любимых программ. Появились отдельные сайты, посвященные этой тематике. Требования пользователей к интерфейсу программ можно считать оправданными. Вряд ли бы вам понравилось иметь автомобиль, видеомагнитофон и холодильник, если на их панелях и в руководствах по эксплуатации использовался бы японский язык, только потому, что эта техника была собрана в Японии. До поры до времени проблеме локализации не уделялось должного внимания. Каждый разработчик придумывал свои решения в этой области. С появлением .NET Framework разработка многоязыковых приложений стала проще и удобнее. Пока не все программисты знакомы с этой замечательной возможностью. Давайте поближе познакомимся с процессом создания локализованных приложений.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |