Простая программа для изучения китайских слов 汉字
28 Sep 2022
Когда начал изучать китайский язык заметил, что китайские слова (иероглифы) запоминаются не так легко как хотелось бы. Тогда и начал применять программы для запоминания слов. В сети есть хорошие сервисы для изучения слов, которыми я пользуюсь, такие как trainchinese.com и quizlet.com. К сожалению, в бесплатной версии доступна только часть функционала. И бесплатного функционала для меня недостаточно чтобы хорошо запоминать слова. В прошлом я просто оплатил бы подписку, но сейчас платежи не ходят и зарубежные сервисы не оплатить. Так и появилась задумка написать собственную программу для запоминания слов. В последствии эту программу я применял в дополнение к другим методам запоминания слов.
У меня было мало свободного времени. Поэтому, я хотел написать максимально простую в реализации программу, которая помогла бы мне в запоминании слов. В ходе размышлений выбор пал на язык программирования Python. Чтобы упростить задачу, решил писать программу у которой нет графического интерфейса как такового, т.е. фактически консольное приложение.
Update: На сегодняшний день доступная новая, 3 версия программы.
Содержание.
- О том что должна уметь делать программа.
- Требования к системе.
- Содержимое папки с программой.
- Как работать с программой.
- Запуск выполнения программы с командной строки.
- Ссылка на скачивание программы.
О том что должна уметь делать программа.
Я хотел, чтобы программа умела делать 3 вещи:
- Строить тесты показывающие слова на китайском (т.е. иероглифы 汉字) и 4 варианта перевода (ответа), где только 1 из 4 вариантов ответа верный.
- Строить тесты показывающие слова на русском и 4 варианта перевода на китайский, где только 1 из 4 вариантов верный.
- Предлагать открытые вопросы, где требуется самому набрать иероглифами верный вариант перевода на китайский язык.
Требования к системе.
Для работы программы на компьютере обязательно должен быть установлен Python 3 версии (скачать можно отсюда: https://www.python.org/downloads/). Программа может работать как в операционной системе Windows так и в Linux. Работу программы проверял в операционных системах Windows 10 и Ubuntu 18. Возможность работы программы в операционной системе Mac OS не проверял.
Содержимое папки с программой.
Набор слов для работы программы хранится в текстовом файле words.txt, находящемся в папке с программой. Для корректной работы этот файл должен быть оформлен следующим образом:
- Кодировка файла UTF-8.
- В файле не должно быть пустых строк.
- Каждая строка в файле должна содержать два значения: слово на китайском 汉字 и перевод, разделенные знаком табуляции.
汉字 китайские символы (hànzì)
Файл с набором слов можно редактировать (добавлять и удалять слова), пока этот файл оформлен корректно программа будет работать. При необходимости слова можно экспортировать напрямую из 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 на компьютер программа не будет работать).
Программу писал, в первую очередь, для личного пользования. Надеюсь, для вас эта программа тоже окажется полезной. Удачи в изучении китайского языка.
再见。