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

Интернационализа́ция (англ. internationalization) — технологические приёмы разработки, упрощающие адаптацию продукта (такого как программное или аппаратное обеспечение) к языковым и культурным особенностям региона (регионов), отличного от того, в котором разрабатывался продукт.

Есть важное различие между интернационализацией и локализацией. Интернационализация — это адаптация продукта для потенциального использования практически в любом месте, в то время как локализация — это добавление специальных функций для использования в некотором определённом регионе. Интернационализация производится на начальных этапах разработки, в то время как локализация — для каждого целевого языка.

В английском языке для слова «internationalization» принято сокращение «i18n». При этом число 18 означает количество пропущенных между «i» и «n» букв. Для Локализации «Localization» применяют сокращение «L10n». Заглавная буква «L» используется чтобы не путать с «i» в «i18n», число 10 — количество букв между «L» и «n».[1]

Параметры

Параметры, важные для интернационализации и локализации, включают в себя:

Средства интернационализации

Упрощение перевода

Текстовые строки хранятся в отдельных файлах — языковых ресурсах. Интенсивно используется Unicode — даже 16-битный Unicode, имеющийся в WinAPI, позволяет писать на всех основных языках мира; в Linux применяется 32-битный Unicode.

Поскольку строки в процессе перевода могут удлиняться и укорачиваться, в диалоговых окнах применяют такие меры:

  • Окна специально компонуют «с запасом».
    • Плюс: простота.
    • Минус: на языках с короткими фразами окно будет выглядеть неряшливо, на языках с длинными фразами — нет гарантии, что текст поместится.
  • Либо в языковые ресурсы вносят компоновку диалоговых окон.
    • Плюс: универсальное решение, позволяет точно подогнать компоновку окон по длинам строк.
    • Минус: усложняется локализация; требуется поддержка со стороны оконной библиотеки, желательно — и со стороны языка (интроспекция); формат языковых ресурсов ограничивается возможностями оконной библиотеки (например, в Delphi — только в ресурсах EXE- или DLL-файла); локализаторам может потребоваться недешёвый редактор форм.
  • Либо диалоговые окна сами устанавливают свой размер в зависимости от длин строк (так, например, работают Qt, GTK+ и wxWidgets).
    • Плюс: локализация сводится к переводу строк; рутинная работа по подгонке окон будет выполнена автоматически.
    • Минус: требуется поддержка со стороны оконной библиотеки; затруднена или невозможна плотная компоновка окна.

Работа с двунаправленным письмом

Стараются использовать стандартные и проверенные оконные компоненты, избегая «самописных».

Поддержка стандартов

Делают конфигурируемыми все параметры, которые можно было бы изменять в другой стране. Для вывода на экран чисел, дат, времени и т. д. используют стандартные, а не «самописные» функции. Вырабатывается единый для всех версий формат связи — например, в OpenOffice.org дата и время независимо от страны хранится в формате ISO 8601 в виде 2008-12-31T15:16:17.

Локаль

Лока́ль — набор параметров, включая набор символов, язык пользователя, страну, часовой пояс, а также другие предустановки, которые пользователь ожидает видеть в пользовательском интерфейсе. Обычно идентификатор локали содержит, как минимум, обозначение языка и обозначение региона. На одном компьютере в рамках одной операционной системы могут сосуществовать (одновременно работать) приложения с различными локалями.

Открытое программное обеспечение и интернационализация

Открытое программное обеспечение, как правило, более интернационализуемо, чем проприетарное. Дело в том, что любой, желающий видеть программу на своём языке, имеет возможность внести необходимые изменения; любой, обнаруживший ошибку, может внести исправление.

Например: KDE переведён более чем на 100 языков, MediaWiki — более 300.

См. также

Примечания

  1. Glossary of W3C Jargon (англ.). World Wide Web Consortium. Дата обращения: 3 июня 2010. Архивировано 24 августа 2011 года.

Шаблон:Link FA