Чувашская республика
Официальный портал органов власти
ОФИЦИАЛЬНЫЙ САЙТ
Орфографическая ошибка в тексте

Послать сообщение об ошибке автору?
Ваш браузер останется на той же странице.

Комментарий для автора (необязательно):

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

Уважаемый пользователь.

Данный сайт обновлен и вы находитесь на устаревшей версии. Чтобы просмотреть актуальную информацию, перейдите на новую версию сайта http://www.cap.ru/. Данная версия будет закрыта в ближайшее время. 

Спасибо за понимание.

Публикации » Как научить Windows использовать чувашский алфавит

14 января 2006 г.

Как научить Windows использовать чувашский алфавит

Постоянный адрес в интернете

Полигон, культурные проекты Чувашии
Тел: (8352) 62-33-08

В декабре прошла научно-практическая конференция по локализации чувашских приложений windows, организванная аналитическим журналом Чувашии "HI-TECH" и лабораторией JAHAT из Татарстана.

«Чувашизация» компьютера складывается из установки шрифтов, локализации и установки драйвера клавиатуры. В зависимости от того, что установлено, а что нет, мы наблюдаем разную степень адаптации компьютера к чувашскому языку.

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

Ситуация осложняется тем, что разные системы поддерживают иностранные языки разными способами.

Чтобы лучше понимать проблему, сделаем небольшой экскурс в историю.
Появление UNICODE в системе Windows 3.1 и поддержка иностранных языков практически целиком определялась выбором шрифта.

Шрифт в стандарте ASCII является 8-битным и разделен на две половины. В первой половине содержатся символы с кодами от 0 до 127: латинские буквы, цифры, знаки препинания, скобки и другие значки, которые вы видите на клавиатуре. Эта часть неизменна для всех шрифтов и таковой останется всегда. Для поддержки национальных языков использовалась вторая половина, с кодами символов от 128 до 255. Эта часть различалась в шрифтах для разных языков. Одним шрифтом поддерживались практически все европейские языки - это западно-европейская кодовая страница.

Но для поддержки русского языка потребовался другой шрифт, в котором специальные символы европейских языков уже отсутствовали, поскольку на их месте стояли русские (кириллические) буквы. Тем самым была создана кириллическая кодовая страница.

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

Одним шрифтом нельзя было одновременно написать, к примеру, русские и французские слова.

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

В UNICODE-шрифте содержится не одна, а гораздо больше кодовых страниц, так как она является уже 16-битной и может вмещать в себя 65535 символов. Для каждого языка отведена своя кодовая область (набор символов), и слова на всех языках могут быть набраны одним шрифтом.

К сожалению, здесь нет чувашских букв. Проспали, засиделись на старте. Но пока еще можно застолбить коды для наших букв.

Теперь на представление каждой буквы в тексте отводится 2 байта. Например, русская буква "А" имеет код 1040, а не 192, как раньше. А под кодами меньше 256 оставлены символы западно-европейских языков.

Но поскольку ядро системы Windows 95 все еще работало с однобайтными буквами, возникла необходимость перевода однобайтных букв в двухбайтные, для правильного представления текстов на иностранных языках.

Так возникло понятие локализации (locale).

В новой ситуации для каждой буквы в тексте потребовалось задавать ее язык. Если язык был европейским, то символ 192 отображался как одна из букв европейских языков, а если текст был обозначен как русский, то происходило преобразование (маппинг) буквы 192 в символ 1040.

За это преобразование отвечает драйвер NLS (national language support).

Драйвер NLS указан для каждого языка в реестре - НKEY_LOCAL_MACHI-NE\SYSTEM\CurrentControlSet\Control\Nls\Codepage.
Вы можете открыть реестр программой Regedit и найти этот ключ. Вы увидите там строчки вида 1251=cp_1251.nls, 1252=cp_1252.nls. Числа 1251, 1252 и т.д. обозначают языки: 1252 - западно-европейские языки, 1251 – кириллицу.

Например, чтобы установить локализацию русского языка в Windows 95, нужно при установке системы указать поддержку русского языка и кириллицы.

Начиная с Windows 98, все системы автоматически поддерживают многоязычность и все NLS-драйвера устанавливаются автоматически.

Вы уже догадываетесь что произойдет, если будет выбрана в качестве поддержки локализации не кириллица. Символ 192 не сможет преобразоваться в русскую букву "А" с кодом 1040, а останется символом алфавита какого-то европейского языка. Типа буквы "А" с черточкой или еще какой-нибудь кракозябры. Эта картина знакома всем, кто открывал русский текст в нерусифицированной системе - сплошные буквы с «умлаутами» и черточками.

Иногда, впрочем, вместо текста появляются пустые квадратики или вертикальные черточки.

Это уже совершенно другая проблема.

В данном случае локализация настроена правильно, но используемый шрифт либо не содержит нужной кодовой страницы, либо не поддерживает UNICODE вообще.

NLS-драйвер преобразует символ 192 в символ 1040, где должна лежать русская буква "А", а там - пусто. Вот он и рисует пустой квадратик или вертикальную черточку.

Поэтому проблема правильного отображения чувашских текстов должна решаться на двух уровнях.

Нужно иметь 1) шрифты с поддержкой UNICODE и 2) правильно настроенную локализацию. Или придется перейти на латиницу.

Самый дотошный читатель может возразить - я, мол, у себя в Windows 95 просто устанавливал чувашский шрифт, и он работал.

Такое, действительно, возможно.

Но все это дело находится на кириллической клавиатуре, и 5 чувашских шрифтов - это курам на смех. Притом они вообще не соответствуют таблице стандартных кодировок, которая так необходима. Ведь каждый символ должен иметь свое определенное место.

Эти шрифты были не в стандарте UNICODE, и во второй половине кодовой таблицы (символы 128-255) некоторые символы были заменены чувашскими буквами.

Речи об NLS-драйвере не идет. В Windows NT поддержка UNICODE осуществляется на уровне ядра системы, и такой фокус не проходит. Все строки в Windows NT представлены двух-байтными буквами, и русская буква "А" изначально имеет код 1040 и будет правильно показываться только при наличии UNICODE-шрифта.

Вы спросите, а зачем тогда вообще нужен NLS-драйвер в Windows NT для чувашских шрифтов? Ведь все буквы изначально представлены двухбайтными кодами и никаких преобразований не требуется.

Вот тут мы и подходим ко второй части трансляции системы - чувашизации клавиатуры!
Со шрифтами разобрались - мы или предоставляем NLS-драйвер для перевода букв в нужную кодовую страницу (Windows 95-98), или же просто храним все буквы в расширенной двухбайтном формате (Windows NT, 2000).

А как быть с клавиатурой?

Ведь когда мы набираем текст, клавиатура выдает те же самые символы из второй половины кодовой таблицы, где в UNICODE-шрифте находятся символы европейских языков! А значит, нам опять нужен NLS-драйвер, чтобы превращать символы в чувашские буквы, как для русских с кодами 1040...1072. А чтобы система знала NLS-драйвер какого языка использовать, нужно установить в систему соответствующую раскладку клавиатуры.

Для ввода чувашского текста нам понадобится (сюрприз! сюрприз!!) чувашская раскладка клавиатуры, устанавливаемая в диалоге Control Panel -> Keyboard -> Input Locales.

В разговоре о шрифтах мы упустили один важный момент.

В системе Windows есть два вида шрифтов. Один - масштабируемые (TTF), другие (FON) - системные шрифты, которые используются в элементах интерфейсов программ (меню, диалоги и т.д.).

Поэтому если вы используете программы с чувашским (эх! как я загнул! мечтать не вредно) интерфейсом, вам необходимы чувашские системные шрифты.
Например, в Windows 95-98 русские системные шрифты устанавливаются, если при инсталляции указать, что основной язык будет русский.

В Windows NT и 2000 русские системные шрифты можно установить в любое время через диалог Control Panel -> Regional Options. Нужно просто выбрать там русский язык и пометить галочкой опцию "Use as default ...".

В Windows 2000 нужно выбрать Cyrillic в списке языков и нажать на кнопку "Set Default".

В общем, идея понятна: нужно сделать чувашский основным языком системы.

Итак, чтобы система поддерживала чувашский язык полностью, нужно иметь:
1. чувашские системные шрифты;

2. TTF шрифты с поддержкой UNICODE;

3. настроенные NLS-драйвера;
4. чувашскую раскладку клавиатуры.

Еще для полного счастья не хватает, чтобы фирма Mайкрософт добавила в Юникод таблицу чувашские буквы и в список поддерживаемых языков чувашский язык.

Но это несбыточная мечта.

Майкрософт больше не намерен поддерживать 8-битные кодовые страницы, а большинство программ, где присутствует чувашский язык, не поддерживают Юникод (например Page Maker).

Пришлось пожертвовать некоторыми буквами из кириллической кодовой страницы, которые не используются в наших краях (может быть, даже в России).
Лаборатория Jahat сейчас разработала чувашскую локализацию компьютерных приложений, чувашскую клавиатуру и модернизировала чувашские шрифты. Сейчас их около 40. Возможности этой программы широки. Например, пользователи программы могут отсылать друг-другу электронные письма на чувашском языке. Раньше такой возможности не было. Чуваши, живущие на территории Татарстана, уже пользуются этой программой. Среди них – сотрудники 5 чувашских газет, и около полусотни чувашских школ.

Обьем проделанной работы вы можете представить по выше изложенному материалу.

Владимир Кожевников, Чувашия,

Радик Валиев (Республика Татарстан, лаборатория JAHAT)

 

Мой МирВКонтактеОдноклассники
Система управления контентом
TopList Сводная статистика портала Яндекс.Метрика