Так уж сложилось, что языком разработчиков вычислительных машин был английский язык. ;-)
По мере распространения компьютеров и (ПО) программного обеспечения для них по всему миру, постепенно стала нарастать потребность в обработке информации не только на английском, но и на других - немецком, японском, русском, e.t.c. -- национальных языках.
Потребность в такой многоязыковой поддержке ощущали как пользователи программного обеспечения - для решения своих конкретных задач, так и производители ПО - для расширения рынков сбыта.
Таким образом сложилась идея инернационализации ( internationalization, или сокращенно i18n ) программных продуктов.
Термин интернационализация ( i18n ) подразумевает под собой такой способ проектирования ( дизайн ) ПО, при котором возможность многоязыковой поддержки закладывается с самого начала.
Самым желательным вариантом реализации многоязыковой поддержки является такой, при котором нацонально-зависимая часть приложения хранится отдельно от приложений в виде набора данных : объектов локализации. При этом возможность гибкого и простого изменения языкового окружения под конкретные требования происходит без перекомпиляции этих приложений.
Таким образом, локализация ( localization, или сокращенно l10n ) - это процесс адаптации ПО под конкретные национальные требования . А технически, локализация - это изготовление отдельных объектов локализации в соответствии c требованиями конкретного языка.
В стандарте POSIX
(Portable Operating System) были определены средства
локализации, названные locale
(к сожалению, не существует адекватного русского
перевода этого термина). Locale (англ.) - местные
особенности.
ПРИМЕЧАНИЕ: К сожалению, пока еще не устоялось русское произношение термина locale . Но постепенно, под действием "живого великорусского" слово locale начинает все чаще употребляться в виде кальки "локаль" то есть женского рода. Ближайшим аналогом может быть слово morale, которое довольно устойчиво переволится русским словом "мораль" того же женского рода. Таким образом, допустимы выражения "Какая у тебя локаль ?", "Я установил русскую локаль и все перестало работать !" ;-)
Формально говоря, 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 состоят из следующих компонентов :
* * *
Существующая также "система управления сообщениями на национальном языке" : NLS (Native Language Support) формально не входит в POSIX locale, хотя во многом дополняет функции locale.
Также довольно тесно пересекаются с locale такие механизмы POSIX как поддержка многобайтных (multibyte) и "широких" (wide-char) символов. Эта связь не очень заметна для европейских языков, но в для поддержки алфавитов с большим числом знаков (японский ~2000, китайский ~8000, UNICODE ~25000) это становится жизненно необходимо.
* ПРИМЕЧАНИЕ : POSIX locale HЕ ИМЕЕТ накакого отношения к физическому вводу/выводу в UNIX и к проблемам работы терминала, клавиатуры и печатающих устройств с национальными символами.
Фирма Microsoft уделяет значительное внимание локализации продуктов и захвате национальных рынков программного обеспечения. Первый европейский офис был открыт в 1982 г. В мае 1983 г. была выпущена операционная система MS-DOS 2.1 с поддержкой японского языка для компьютеров IBM 5550 и NEC PC-9801.
В операционных системах от Microsoft применяются совершенно другие понятия и схема организации локализации чем в системах POSIX, хотя они имеют некоторые общие идеи.
Стоит также сказать, что операционная система Windows 2000 (Windows NT 5.0) имеет полную поддержку UNICODE, от файловой системы до шрифтов и Notepad. Кроме того, она содержит классическую схему локализации : то есть разделен исполняемый код и национально-зависимые части. Вся информация, имеющая отношение к "национальной специфике" вынесена в "объекты локализации". Таким образом, национальные версии отличаются только небольшим числом файлов.
Наиболее полное описание модели локализации от Microsoft можно найти в книге Nadine Kano : "Developing International Software for Windows 95 and Windows NT". Эта книга есть на MSDN.
Содержание "Locale AS IT IS"