Библиотека сайта rus-linux.net
Локализация, интернационализация, глобализация.
Так уж сложилось, что языком разработчиков вычислительных машин был английский язык. ;-)
По мере распространения компьютеров и (ПО) программного обеспечения для них по всему миру, постепенно стала нарастать потребность в обработке информации не только на английском, но и на других - немецком, японском, русском, e.t.c. -- национальных языках.
Потребность в такой многоязыковой поддержке ощущали как пользователи программного обеспечения - для решения своих конкретных задач, так и производители ПО - для расширения рынков сбыта.
Таким образом сложилась идея инернационализации ( internationalization, или сокращенно i18n ) программных продуктов.
Термин интернационализация ( i18n ) подразумевает под собой такой способ проектирования ( дизайн ) ПО, при котором возможность многоязыковой поддержки закладывается с самого начала.
Самым желательным вариантом реализации многоязыковой поддержки является такой, при котором нацонально-зависимая часть приложения хранится отдельно от приложений в виде набора данных : объектов локализации. При этом возможность гибкого и простого изменения языкового окружения под конкретные требования происходит без перекомпиляции этих приложений.
Таким образом, локализация ( localization, или сокращенно l10n ) - это процесс адаптации ПО под конкретные национальные требования . А технически, локализация - это изготовление отдельных объектов локализации в соответствии c требованиями конкретного языка.
POSIX locale
В стандарте POSIX
(Portable Operating System) были определены средства
локализации, названные locale
(к сожалению, не существует адекватного русского
перевода этого термина). Locale (англ.) - местные
особенности.
Locale - это такое системное средство (фича ;-) позволяющее настроить систему на работу с данными в конкретном национальном (местном) представлении. Отдаленно напоминает средство CodePage в MS-DOS или OS/2.
Средства POSIX locale охватывает немого больший круг понятий, чем просто работа с национальными символами.
Зачем ? Дело в том, что кроме собственно языка общения и алфавита, в разных странах различаются такие обычаи, как представление даты, времени, финансовых величин и т.д. Эти "культурные правила" уже закреплены традицией и национальными стандартами, иногда довольно давно, поэтому при "локализации" программных продуктов существует необходимость в настройке их еще и на эти "культурные правила". В стандарте POSIX культурные правила объединены в группы - категории локализации.
* ПРИМЕЧАНИЕ : В принципе, каких "культурных нюансов" можно найти много. См. например статью : Colors, Buttons, Words and Culture: Designing Software for the Global Community (копия здесь) или Internationalization. Но в большинстве случаев, для машинной обработки информации вполне хватает понятий POSIX locale.
Структурно, средства POSIX locale состоят из следующих компонентов :
- Набор библиотечных (libc) вызовов (locale API): setlocale(), isalpha(), toupper(), e.t.c.
- Переменные окружения, для управления средствами locale : LANG, LC_CTYPE. e.t.c.
- Утилита для получения информации о средствах locale : locale
- Исходные тексты описания locale : locale definitions, Character Set Definition File
- Утилита для изготовления (компиляции) объектов локализации : localedef
- Собственно объекты локализации (наборы данных locale) : /usr/share/locale/*
* * *
Существующая также "система управления сообщениями на национальном языке" : NLS (Native Language Support) формально не входит в POSIX locale, хотя во многом дополняет функции locale.
Также довольно тесно пересекаются с locale такие механизмы POSIX как поддержка многобайтных (multibyte) и "широких" (wide-char) символов. Эта связь не очень заметна для европейских языков, но в для поддержки алфавитов с большим числом знаков (японский ~2000, китайский ~8000, UNICODE ~25000) это становится жизненно необходимо.
* ПРИМЕЧАНИЕ : POSIX locale HЕ ИМЕЕТ накакого отношения к физическому вводу/выводу в UNIX и к проблемам работы терминала, клавиатуры и печатающих устройств с национальными символами.
Локализация от Microsoft.
Фирма Microsoft уделяет значительное внимание локализации продуктов и захвате национальных рынков программного обеспечения. Первый европейский офис был открыт в 1982 г. В мае 1983 г. была выпущена операционная система MS-DOS 2.1 с поддержкой японского языка для компьютеров IBM 5550 и NEC PC-9801.
Стоит также сказать, что ожидаемая операционная система Windows 2000 (Windows NT 5.0) будет иметь полную поддержку UNICODE, от файловой системы до шрифтов и Notepad. Кроме того, она будет содержать классическую схему локализации : будет разделен исполняемый код и национально-зависимые части. Вся информация, имеющая отношение к "национальной специфике" будет вынесена в "объекты локализации". Таким образом, национальные версии будут отличаться только небольшим числом файлов.
Наиболее полное описание модели локализации от Microsoft можно найти в книге Nadine Kano : "Developing International Software for Windows 95 and Windows NT". Эта книга есть на MSDN.