[ Страница назад | Страница вперед | Содержание | Индекс | Библиотека | Юридическая информация | Поиск ]

Программирование: Разработка и отладка программ


Глава 16. Поддержка национальных языков

Поддержка национальных языков (NLS) - это набор команд и библиотечных функций, предназначенных для работы в универсальной среде. В международной системе отсутствует какая-либо зависимость от языковых особенностей или национальных стандартов, таких, как:


Возможности NLS

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

Вся перечисленная информация должна определяться на этапе выполнения. NLS предоставляет средства для получения этой информации и добавления поддержки языков и кодовых наборов. Это позволяет создавать программы, которые могут работать в различных языковых средах и локалях. Поддержка национальных языков определяется стандартами POSIX.1 и POSIX.2, стандартом языка программирования ANSI/ISO C и спецификацией X/Open XPG.

Локали и национальные стандарты

Приложение, поддерживающее любые языки, должно обрабатывать информацию в соответствии с различными национальными стандартами. (Например, в Англии и США применяются разные правила форматирования времени и даты. Кроме того, в этих странах применяются разные разделители порядка и символы денежной единицы). Такие параметры языка и национальные стандарты определяются локалью . Дополнительная информация о локалях приведена в разделе Локаль - Информация для программистов.

Пользовательские сообщения на национальных языках

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

Поддержка кодовых наборов

Символом называется любой знак, применяемый для представления или структуризации данных, либо управления данными. Совокупность таких знаков, применяемых в конкретном языке, представляет собой набор символов. Кодовый набор содержит коды, соответствующие набору символов. Эти коды применяются для взаимодействия системы с устройствами ввода-вывода.

Первым

был разработан кодовый набор для английского алфавита. Для него оказалось достаточно 7-разрядных кодов, так как число букв в английском алфавите невелико. В языке C был определен тип данных char, обозначающий 7-разрядный символ. Так как минимальный адресуемый элемент памяти - это 8-разрядный байт, именно он применялся для хранения данных типа char. Восьмой разряд обычно применялся для контроля четности.

Для поддержки алфавитов с большим числом символов (например, китайского, японского и корейского) были созданы дополнительные кодовые наборы с многобайтовыми кодами. Из-за появления многобайтовых кодировок типа данных char стало недостаточно для хранения символов. В стандарте языка C тип данных char по-прежнему означает 7-разрядный символ. Однако на самом деле тип char соответствует значению размером в 1 байт, со знаком или без знака.

Программа, поддерживающая любой язык, должна правильно интерпретировать и обрабатывать данные, представленные в разных кодовых наборах. Функция nl_langinfo(CODESET)

позволяет процессу получить значение кодового набора. Она возвращает указатель на значение типа char, представляющее собой имя текущего кодового набора. Так как стандарт на имена кодовых наборов отсутствует, программы не должны зависеть от значений, возвращаемых этой функцией. Информация о текущем кодовом наборе может применяться при преобразовании из одного кодового набора в другой. NLS поддерживает перекодировщики, которые преобразуют коды символов из одного кодового набора в другой. Более подробная информация приведена в разделе Функции преобразования - Информация для программистов.

Поддержка методов ввода

В языках с большими кодовыми наборами ввод символов становится непростой задачей. Например, для таких языков, как китайский, корейский и японский, невозможно создать однозначное преобразование нажатий клавиш в символы. В таких случаях применяются особые методы ввода, позволяющие указывать фонетические символы и иероглифы с их последующим преобразованием в символы национального языка. Раскладки клавиатур устанавливают соответствие между последовательностями нажатий клавиш и кодами символов. Более подробная информация приведена в разделе Методы ввода - Обзор.


Содержание главы

В этой главе, посвященной NLS, приведена следующая информация:

Связанная информация

Подробная информация о кодовых наборах приведена в разделе Кодовые наборы - Обзор книги AIX 5L Version 5.1 Kernel Extensions and Device Support Programming Concepts.

Дополнительная информация по работе в многоязычной среде приведена в разделе Управление поддержкой национальных языков - Обзор.

Character Set Description (charmap) Source File Format, Locale Definition Source File Format.

Функция setlocale.


[ Страница назад | Страница вперед | Содержание | Индекс | Библиотека | Юридическая информация | Поиск ]