Переключить тему.

Простая программа для изучения китайских слов 汉字

28 Sep 2022

Когда начал изучать китайский язык заметил, что китайские слова (иероглифы) запоминаются не так легко как хотелось бы. Тогда и начал применять программы для запоминания слов. В сети есть хорошие сервисы для изучения слов, которыми я пользуюсь, такие как trainchinese.com и quizlet.com. К сожалению, в бесплатной версии доступна только часть функционала. И бесплатного функционала для меня недостаточно чтобы хорошо запоминать слова. В прошлом я просто оплатил бы подписку, но сейчас платежи не ходят и зарубежные сервисы не оплатить. Так и появилась задумка написать собственную программу для запоминания слов. В последствии эту программу я применял в дополнение к другим методам запоминания слов.

У меня было мало свободного времени. Поэтому, я хотел написать максимально простую в реализации программу, которая помогла бы мне в запоминании слов. В ходе размышлений выбор пал на язык программирования Python. Чтобы упростить задачу, решил писать программу у которой нет графического интерфейса как такового, т.е. фактически консольное приложение.

Update: На сегодняшний день доступная новая, 3 версия программы.

Содержание.

О том что должна уметь делать программа.

Я хотел, чтобы программа умела делать 3 вещи:

  1. Строить тесты показывающие слова на китайском (т.е. иероглифы 汉字) и 4 варианта перевода (ответа), где только 1 из 4 вариантов ответа верный.
  2. Строить тесты показывающие слова на русском и 4 варианта перевода на китайский, где только 1 из 4 вариантов верный.
  3. Предлагать открытые вопросы, где требуется самому набрать иероглифами верный вариант перевода на китайский язык.

Требования к системе.

Для работы программы на компьютере обязательно должен быть установлен Python 3 версии (скачать можно отсюда: https://www.python.org/downloads/). Программа может работать как в операционной системе Windows так и в Linux. Работу программы проверял в операционных системах Windows 10 и Ubuntu 18. Возможность работы программы в операционной системе Mac OS не проверял.

Содержимое папки с программой.

Набор слов для работы программы хранится в текстовом файле words.txt, находящемся в папке с программой. Для корректной работы этот файл должен быть оформлен следующим образом:

  1. Кодировка файла UTF-8.
  2. В файле не должно быть пустых строк.
  3. Каждая строка в файле должна содержать два значения: слово на китайском 汉字 и перевод, разделенные знаком табуляции.

Файл с набором слов можно редактировать (добавлять и удалять слова), пока этот файл оформлен корректно программа будет работать. При необходимости слова можно экспортировать напрямую из quizlet.com (сразу в правильном формате) и добавлять в файл со словами (или просто заменить содержимое файла новым словами).

Снимок с экрана компьютера.

Снимок с экрана компьютера.

Сама программа это файл learn.py написанный на языке программирования Python 3.

В папке с программой так же находятся два небольших скрипта командной строки. Одна для операционной системы Windows (run.bat), вторая для операционной системы Linux (run_linux.sh). Скрипт говорит интерпретатору Python запустить выполнение программы (файл learn.py) и перезапускает программу, если работа программы была завершена. Эти скрипты добавлены только для удобства, можно и напрямую запускать выполнение программы (файла learn.py).

Как работать с программой.

В операционной системе (ос) Windows программу можно запустить дважды кликнув левой кнопкой мышки по файлу run.bat. В операционной системе Linux программу можно запустить дважды кликнув мышкой по файлу run_linux.sh. Программу можно так же запустить из командной строки (о том как это сделать будет написано ниже).

Далее идет объяснение, как работать с программой на примере ос Windows, в ос Linux действия будут аналогичными.

Снимок с экрана компьютера.

Сразу после запуска программа предлагает три опции на выбор. Нужно набрать в консоли номер опции (1 - 3) и нажать Enter.

Снимок с экрана компьютера.

Допустим вы выбрали опцию 1 (тест слово перевод CNY - > RUS) и нажали Enter.

Программа будет отображать слово написанное иероглифами и предлагать 4 варианта перевода, где только 1 из 4 вариантов ответа верный. Нужно набрать номер варианта (1 - 4) и нажать Enter. Если ответ неверный программа повторно отобразит тот же самый тест, если ответ верный программа отобразит следующий иероглиф с 4 вариантами перевода. И так, пока не будут просмотрены все слова. Порядок отображения иероглифов является случайным и меняется каждый раз при перезапуске программы. Все слова для работы программы хранятся в файле words.txt находящемся в папке с программой (подробнее об этом было написано выше).

Снимок с экрана компьютера.

После того, как все слова были просмотрены, программа сообщит об этом, далее нажатие кнопки Enter приведет к завершению работы программы. Для повторного изучения, требуется снова перезапустить программу.

Снимок с экрана компьютера.

Теперь, предположим, что вы перезапустили программу и выбрали опцию 2 (тест слово перевод RUS -> CNY).

Снимок с экрана компьютера.

В этом случае программа будет показывать текст и предлагать 4 варианта перевода слова на китайский язык, только 1 из 4 вариантов ответа является верным. В остальном опция 2 работает аналогично опции 1.

Снимок с экрана компьютера.

Теперь, предположим, что вы перезапустили программу и выбрали опцию 3 (ввести ответ 汉字).

Снимок с экрана компьютера.

В этом случае программа будет показывать слово (текст) и нужно будет самому ввести иероглифами правильный перевод (на китайский) в консоли и нажать Enter. Если ответ неверный, то программа заново отобразит то же самое слово, если ответ верный то программа покажет следующее слово и так пока все слова не будут просмотрены.

Снимок с экрана компьютера.

Последнюю опцию (опцию номер 3) можно хорошо сочетать с применением рукописного ввода встроенного Windows 10 (о том как включить рукописный ввод в Windows 10 написал здесь).

Снимок с экрана компьютера.

О том откуда взялись лишние пробелы между буквами в русских словах.

Встроенный терминал Windows не поддерживает UTF-8. Поэтому в операционной системе Windows для отображения иероглифов, программа меняет кодовую страницу консоли на китайскую иначе вместо иероглифов будут отображаться пустые квадратики. Проблема в том, что при этом русские надписи начинают отображаться с лишними пробелами между буквами. Это доставляет определенные неудобства в пользовании программой, хоть на работу самой программы и не влияет.

Для решения этой проблемы в Windows можно установить альтернативный терминал командной строки, с поддержкой UTF-8, например Tabby (скачать можно отсюда https://tabby.sh). И запускать программу в альтернативном терминале. Пример работы программы в альтернативном терминале:

Снимок с экрана компьютера.

В операционной системе Linux такая проблема отсутствует. Ниже пример того как программа выглядит в операционной системе Ubuntu 18.

Снимок с экрана компьютера.

Запуск выполнения программы с командной строки.

Запустить программу непосредственно из командной строки (терминала, консоли) можно следующим способом:

1) Нажать в папке с программой сочетание клавиш Shift + Правая кнопка мышки и в открывшемся контекстном меню выбрать пункт соответствующий названию терминала (консоли).

2) В консоли набрать одну из следующих команд , в зависимости от операционной системы: .\run.bat в ос Windows или .\run_linux.sh в ос Linux и нажать Enter. Или для запуска программы напрямую набрать python .\learn.py или python3 .\learn.py и нажать Enter.

Установка альтернативного терминала в Windows.

Для решения проблемы с кривым отображением русских слов в ос Winsows можно поставить альтернативный терминал командной строки Tabby (скачать можно отсюда https://tabby.sh) и в его настройках включить “Интеграцию в систему”:

Снимок с экрана компьютера.

Далее, для запуска программы, кликнуть правой кнопкой мыши (в пустом месте) в папке с программой и в появившемся меню выбрать пункт “Open Tabby here”.

Снимок с экрана компьютера.

Затем, в окне консоли набрать команду .\run.bat и нажать Enter для того, чтобы запустить выполнение программы в этом терминале.

Снимок с экрана компьютера.

Скачать программу.

Для тех, кто хотел бы посмотреть, как устроена программа и возможно переписать программу под себя. Исходный код программы полностью открытый. По сути, вся программа- это просто текстовый файл с кодом написанным на языке программирования Python 3 (и без уставки Python на компьютер программа не будет работать).

Программу писал, в первую очередь, для личного пользования. Надеюсь, для вас эта программа тоже окажется полезной. Удачи в изучении китайского языка.

再见。

На верх!
Закрыть. Открыть изображение в новой вкладке.