Локализация, интернационализация, глобализация.

   Так уж сложилось, что языком разработчиков вычислительных машин был английский язык. ;-)

   По мере распространения компьютеров и (ПО) программного обеспечения для них по всему миру, постепенно стала нарастать потребность в обработке информации не только на английском, но и на других - немецком, японском, русском, 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 состоят из следующих компонентов :

  1. Набор библиотечных (libc) вызовов (locale API): setlocale(), isalpha(), toupper(), e.t.c.
  2. Переменные окружения, для управления средствами locale : LANG, LC_CTYPE. e.t.c.
  3. Утилита для получения информации о средствах locale : locale
  4. Исходные тексты описания locale : locale definitions, Character Set Definition File
  5. Утилита для изготовления (компиляции) объектов локализации : localedef
  6. Собственно объекты локализации (наборы данных 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.


    Дополнительная информация.




Banner.Novgorod.Ru