Интернационализация
Главная ссылка по теме: лекция Андрея черепанова
I18n — адаптация ПО к использованию в национальном контексте:
- Перевод текстов в составе ПО (всё ли?)
- Планирование интерфейса (размер, LTR…)
- Звуки
- Изображения: текст на них и культурная атрибуция
Управляющие клавиши (иероглифы, ага )
- Шрифты (за пять лет стало лучше)
Локаль (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:
- Электронная документация
- Непрограммные данные (шаблоны документов и форм и т. п.)
- Бумажная документация и др. сопутствующие предметы
Процесс i18n
1 язык = 1 исходник — хуже только бинарные патчи (достоинства?)
=> +уровень косвенности (globalization + localization)
Что автоматизируется на уровне глобализации/использования локализующих библиотек?
- Словоформы (множественные и падежные)
- Размер и LTR (решается виждет-инструментариями)
- Выбор локализованных ресурсов (картинки, звуки, …)
Частично:
- Перевод новых версий (особенно сообщений)
i18n и переводчики
- Общие словари
- Translation memory: размеченные корпусы текстов vs. строки сообщений
Moving target
- Modern latin
- Знать Москву или знать русский?
=> координация переводов и распределение ответственности
- Неграмотная программа хотя бы не работает…
Gettext
Глобализация (автоматическоя часть) — замена "" на _("")
- Исходный текст как ID
- Числовые словоформы
- Неточный перевод (fuzzy) и работа с ним
*-format
- Комментарии и привязки
Другие системы
- Qt i18n
- Самопальные преобразования вида «отобразить ресурс такой-то» (mozilla / OOo)
- …
Инструменты
- QTLinquist / lokalize / gtranslator / ...
- Pootle (+amagama +virtaal +ttoolit) (mozilla, OOo) /
- poedit , po.vim, emacs PO mode
- просто текстовый редактор
- OmegaT
Д/З
Прощёлкать «Международные ягнята» пример с Хабра
Заставить старый добрый GNU hello говорить по-русски (он уже переведён):
$ … $ ./configure --localedir=$HOME/tmp/qq/share/locale $ make localedir=$HOME/tmp/qq/share/locale $ make install prefix=$HOME/tmp/qq $ ~/tmp/qq/bin/hello
- Поправить перевод. Что там с кодировками?
- Поправить исходник, получить новый нечёткий перевод и выправить его
Другая система локализации. Qt?