Интернационализация и локализация
Напоминание про locale.
«Адаптация культурных и языковых предпочтений»
Объекты ПО:
- Сообщения и тексты в составе ПО
- Размер и оформление интерфейсных элементов (RTL, например)
- Изображения: текст на них и культурная атрибуция
Управляющие клавиши (иероглифы, ага )
- Параметры, чувствительные к локали (LANG=ru_RU.KOI8-R LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT LC_IDENTIFICATION LC_ALL)
- Ссылки на внешние ресурсы (поддержка, издатель и пр.; телефоны, url и пр.)
- (в сложных случаях) Шрифты
Другие объекты продукта:
- Электронная документация
- Непрограммные данные (шаблоны документов и форм и т. п.)
- Бумажная документация и др. сопутствующие предметы
i18n + l10n
i18n:
- Универсализация кода
- См. список объектов
- Оборачивание в (пустые) вызовы локализующих библиотек
- Plural forms
- …
l10n: Перевод и создание объектов.
- Общие словари
- Translation memory: размеченные корпусы текстов vs. строки сообщений
Moving target
- Modern latin
- Знать Москву или знать русский?
=> координация переводов и распределение ответственности
- Неграмотная программа хотя бы не работает…
GNU Gettext
- Исходный текст как ID
- Числовые словоформы
- Неточный перевод (fuzzy) и работа с ним
*-format
- Комментарии и привязки
Пример
https://github.com/FrBrGeorge/PythonWinter2015-gettext
Полезные ссылки
Лекция Андрея Черепанова «Про локализацию свободного ПО» из курса 2007 года (почему она обмазана фотографиями FrBrGeorge? o_O — потому что FrBrGeorge весьма артистично стоял вокруг металлоконструкции в П-12, пока cas читал лекцию)
Windows: в MSDN есть раздел про интернационализацию. Из полезного можно отметить чеклист для обеспечения интернационализации. Также можно оценить удобство и технологичность реализации механизмов интернационализации в Windows на примерном проекте.
TODO