Интернационализация и локализация

Интернационализация и локализация [Вперед] [Вверх] [Назад] [Содержание]
Дальше: Что такое локализация Вверх: Интернационализация Назад: Интернационализация

Интернационализация и локализация

Чтобы избежать путаницы в дальнейшем, в самом начале дадим два определения. Интернационализацией в частном случае называется механизм, с помощью которого программа поддерживает взаимодействие с пользователем (т.е. организует символьно-строчный ввод-вывод) на более чем одном языке. В более общем же определении сюда включаются, кроме языка, способы организации ввода/вывода чисел, являющихся датами, денежными суммами, временем и т.д., использование системы мер (метрической либо английской), а также, может быть, и куда более экзотические вещи (вспомните, например, о языках, в которых писать принято справа налево !). Под локализацией же понимается приспособление программы, в которую уже встроены механзмы интернационализации, к конкретным потребностям пользователя -- установка языка для взаимодействия или форматов ввода/вывода числовых величин. Из этих определений следует, что интернационализация программы есть задача программиста, а локализация -- пользователя, которому для ее решения надо будет приобрести лишь незначительные добавочные знания. (В дальнейшем рассмотрении, если не оговорено противное, под интернационализацией будем понимать только механизм, обеспечивающий переключение между языками, а под локализацией -- выбор нужного языка. Предполагается также, что языком программирования является C или C++). Кроме того, в задачах интернационализации и локализации часто встречается человек, который не участвует в разработке программы, а только ``учит'' ее взаимодействовать с пользователем на каком-либо языке, используя механизмы, созданные программистом. Такого человека будем называть переводчиком.

В настоящее время как коммерческие производители UNIX-систем, так и разработчики свободно распространяемого программного обеспечения стараются, чтобы их продукты соответствовали некоторым общепринятым стандартам. Одним из наиболее известных является стандарт POSIX -- Portable Operating System Interface. В этом стандарте механизм локализации, т.е. в сущности действия пользователя, определены -- пользователь может влияет на поведение программы посредством установки переменных окружения. (Интерактивные программы, конечно, могут и должны допускать изменение поведения в процессе работы). Однако механизмы интернационализации, т.е. то, каким образом должна быть устроена программа, допускающая локализацию, в этот стандарт не входит. Поэтому механизмов интернационализации существует достаточно много, но более-менее широко используются (по крайней мере, в мире UNIX) два. Один из них изобретен фирмой Sun Microsystems и впервые начал использоваться в операционных системах этой фирмы. Другой же появился в стандартах X/Open и создавался исходя из требований, возникающих при создании и поддержке больших коммерческих проектов. Оба метода базируются на одной и той же основной идее о том, что все данные, относящиеся к локализации, должны быть вынесены из собственно исходного текста программы. Это, естественно, делается в первую очередь для того, чтобы без изменения исходных текстов программ изменять эти данные. Следовательно, сразу возникают вопросы с размещением этих данных, их организацией, поиском в них и т.п.

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



Dmitry A. Antipov
1999-05-26