04.11 Интернационализация и локализация
- Ещё раз, кротко:
Пример на подглядеть: GradeProject2021
- Поставить: babel достаточно
Задача_1: счётчик введенных слов (задача считается решённой после доделывания перевода в ходе последующих упражнений)
- напишите программу, которая в цикле:
- получает со стандартного ввода строку
подсчитывает количество слов в ней (слова разделены пробелами, достаточно использовать split())
выводит текст: "Entered <N> word(s)", где <N> - количество слов
Контрольная точка: никаких i18n пока
- напишите программу, которая в цикле:
l18n
обмазывание _() и gettext.install()
проверить, что работает
- Первичный перевод
- Создать шаблон перевода
- Создать пустой русский перевод-исходник
Перевести ("Введено <N> слов")
- Скомпилировать перевод
проверить, что работает
- Множественные формы и обновление перевода (чтобы было "1 слово", "2 слова", ..., "5 слов", ..., "14 слов", ... - по правилам русского языка):
добавить ngettext()
- обновить шаблон
- обновить старый перевод на основе нового шаблона
пронаблюдать «,fuzzy»
скомпилировать, проверить, что перевод "отвалился"
доперевести, убрать ,fuzzy, скомпилировать
проверить, что всё работает в двух локалях (ru, en)
Д/З
- Доделать Задачу_1 до состояния "работает в двух локалях"