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

Лекция и видео 2015 года

... TODO копипаста плана лекции

TODO babel

Пример

Попробуем перевести пример из документации TkInter

Первичный перевод

Обновление перевода

Про память переводов

Очень важно соблюдать единообразие при переводе одинаковых надписей. Для этого все переводы по проекту можно сложить в т. н. compendium (но же translation memory, она же память переводов) — большой .po-файл, получаемый утилитой msgcat из всех имеющихся

Множественные формы

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

Описание того, какие числа какой множественной форме соответствуют содержится в заголовке ru.po (который нам сгенерировал msginit). Это описание компилируется в некоторый код .mo-файла, который gettext интерпретирует (замечание vslutov@, спасибо).

Взаимодействие с git

В репозитории нужно хранить только сам перевод и, возможно, память переводов, а .pot и .mo файлы — не надо (о чём сказано в .gitignore

Дополнительно в .gitignore добавлен шаблон *~ — это резервные файлы vim и msgmerge.

Д/З

LecturesCMC/PythonDevelopment2019/10_I10n (последним исправлял пользователь FrBrGeorge 2019-05-16 13:13:21)