Главная страница  |  Веб-блог ЯРКСИ  |  E-mail  |  JISHOP

Технические детали реализации


ЯРКСИ 8.0 построен в Delphi 10.2 Tokyo от компании Embarcadero Technologies, на компонентной базе FireMonkey. Используется базa данных в формате SQLite. Размещенный в Интернете дистрибутив включает в себя следующие файлы:

    yarxi.exe  —  основной исполнимый файл словаря;
    yarxi.db  —  база данных;
    sqlite3.dll  —  библиотека базы данных;
    spravka/  —  папка с файлами справки;
    samples.kdg  —  файл тематических учебных групп;
    JLPT.kdg  —  файл учебных групп по уровням JLPT (Japanese Language Proficiency Test).

В предыдущих версиях файл тематических учебных групп назывался samples-r.kdg; если он остался на вашем компьютере, его можно безболезненно удалить. При установке он не удаляется автоматически по той причине, что в нем могут оставаться пользовательские правки и дополнения.

Все прочие файлы создаются в ходе работы программы и сохраняются в папке Yarxi — в месте, отведенном для пользовательских данных операционной системой. Где именно — можно узнать, щелкнув по кнопке «Открыть папку с данными» (вкладка «Опции», раздел «Общее»). Подробнее об этих файлах:

  1. Файл пользовательских настроек YarxiSettings.txt появляется после первого запуска и хранит информацию об установках, сделанных пользователем. При его отсутствии или повреждении устанавливаются параметры, принятые по умолчанию.
  2. Файл NewNames.txt хранит кастомизированные имена иероглифов и/или радикалов. Он создается лишь тогда, когда пользователь переименовал какой-нибудь иероглиф или радикал.
  3. Файл KanaDEMarks.txt хранит пометки о трудных/легких значках хираганы и катаканы, сделанных пользователем при работе с дриллом для каны. Если таких пометок не делалось, файл не создается.
  4. Там же находится папка Groups, где по умолчанию хранятся файлы учебных групп — как входящие в дистрибутив samples.kdg и JLPT.kdg, так и все создаваемые пользователем.
  5. Папка SOD создается при скачивании архива диаграмм начертания и содержит 10897 файлов.

Обновления базы данных теперь обычно бывают приурочены к выпуску новых версий программы. Но на всякий случай сохраняется техническая возможность скачать обновленную базу отдельно, в виде текстовых файлов (в общем случае их четыре: jr_kan.txt, jr_tan.txt, jr_ele.txt, jr_str.txt). Когда файлы скачаны, базу нужно перестроить при помощи специальной процедуры, доступной на вкладке «Опции» левой панели (раздел «Общее»).

ЯРКСИ содержит две функции, связанные с регулярным обновлением базы. Во-первых, это автоматическая проверка наличия обновлений на сайте ЯРКСИ, по умолчанию выполняющаяся при каждом запуске программы (при наличии работающего интернет-соединения). Такую проверку можно производить и в ручном режиме (вкладка «Опции», раздел «Общее»), а автоматическую проверку отключить. Во-вторых, это вывод новых словарных данных — то есть, получение развернутого списка всех иероглифов, статьи для которых были впервые отредактированы при данном обновлении базы. Эта функция также доступна на вкладке «Опции» (раздел «Новые данные»).

Шрифты, которыми в ЯРКСИ отображаются иероглифы и кана, могут быть как векторными (TrueType), так и растровыми (bitmap) — последние зашиты в исполнимый файл в трех вариантах (16x16, 24x24 и 48x48 пикселей). Размер растрового шрифта нельзя поменять, можно поменять лишь его цвет. При работе под Windows 10 по умолчанию везде используется векторный шрифт. Под более ранними версиями Windows растровым шрифтом 24x24 выводятся результаты поиска, иероглифы, по которым ведется поиск составных слов, и иероглифы в учебных группах; для всего остального предусмотрены векторные шрифты. Эти установки можно изменить в разделе «Растр или вектор» на вкладке «Опции».

Формат вывода словарных данных в ЯРКСИ — растровое изображение (битмэп) с нанесенным на него текстом. Это улучшает визуальную подачу материала, но, с другой стороны, затрудняет программную реализацию некоторых полезных функций. Поэтому в ЯРКСИ поддерживается специальный формат «текстового вывода», на который указывает иконка . Он позволяет пользователю выделять фрагменты данных и заносить их в буфер.