Различия между версиями 3 и 4
Версия 3 от 2021-04-18 20:50:28
Размер: 2386
Редактор: FrBrGeorge
Комментарий:
Версия 4 от 2021-04-18 23:52:36
Размер: 2621
Редактор: hbd
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 13: Строка 13:
 * <!> Задача_1: скопипастить из !GradeProject2021 или написать самому:
  * простейшее GUI-приложение, в котором есть кнопка «Нажато» и счётчик «N раз». При каждом нажатии на кнопку счётчик увеличивается
 * <!> Задача_1: счётчик нажатий кнопки
  * напишите простейшее GUI-приложение, в котором есть:
   * кнопка "Press me"
   * текстовая метка-счётчик нажатий "<N> time(s)", где <N> - число нажатий на кнопку; N изначально равно 0, и увеличивается на 1 при каждом нажатии на кнопку
Строка 25: Строка 27:
 * Множественные формы и обновление перевода:  * Множественные формы и обновление перевода (чтобы было "1 раз", "2 раза", ..., "5 раз", ... - по правилам русского языка):

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

  • Ещё раз, кротко:
    • Процесс
      1. i18n — обмазывание gettext-ом

      2. l10n — перевод и иже с ним

    • Инструменты
      • locale — работа с локалью

      • gettext — собственно подстановка перевода

      • ßαъεl — инструменты подготовки перевода

        • Весть остальной babel — ещё что-то
  • Пример на подглядеть: GradeProject2021

  • Поставить: babel достаточно (?)
  • <!> Задача_1: счётчик нажатий кнопки

    • напишите простейшее GUI-приложение, в котором есть:
      • кнопка "Press me"
      • текстовая метка-счётчик нажатий "<N> time(s)", где <N> - число нажатий на кнопку; N изначально равно 0, и увеличивается на 1 при каждом нажатии на кнопку

    • {i} Контрольная точка: никаких i18n пока

  • {i} l18n

    • обмазывание _() и gettext.install()

      • {i} проверить, что работает

  • Первичный перевод
    • Создать шаблон перевода
    • Создать пустой русский перевод-исходник
    • Перевести
    • Скомпилировать перевод
    • {i} проверить, что работает

  • Множественные формы и обновление перевода (чтобы было "1 раз", "2 раза", ..., "5 раз", ... - по правилам русского языка):
    • добавить ngettext()

    • обновить шаблон
    • обновить старый перевод на основе нового шаблона
    • пронаблюдать «,fuzzy»

    • {i} скомпилировать, проверить, что кнопка переведена, а надпись отвалилась

    • доперевести, убрать ,fuzzy, скомпилировать

    • {i} проверить, что всё работает в двух локалях

  • <!> Задача_2

    • TODO

Д/З

  • Доделать обе задачи до состояния «всё работает в двух локалях»

LecturesCMC/PythonDevelopment2021/Prac/09_I18n (последним исправлял пользователь hbd 2021-04-18 23:52:36)