Введение Всем привет! Годы идут, а мы по-прежнему пишем читалку со словарями.
Пришло время очередной статьи о том, что у нас нового.
Для лучшего погружения в контекст советую прочитать две предыдущие статьи или хотя бы последнюю:
- Как выучить Android за 3 года, или история одного приложения
- Изучение иностранных языков с помощью программ чтения
Ни для кого не секрет, что наш основной «книжный» движок от знаменитого CoolReader. Этот движок существует с 2000 года, переживал затишье, затем всплеск (примерно 2020-2021 годы) и сейчас развивается в основном в составе читалки.
КОчитатель ).
А вот словарная часть и практически полностью переработанный (андроидный) интерфейс - наши.
Напомню базовую «парадигму» использования словарей в читалках: выделить (в книге) слово или фразу:
Выделенное слово/фраза переведите выделение:
Перевод выделенного слова Но так не должно быть, подумали мы и сделали кнопку вызова диалога словаря прямо с главного экрана, откуда вас переводят в «агрегатор словарей»:
Агрегатор словарей Что вы можете сделать здесь? Вот что: вводим язык «от» и язык «на» (можно сохранить в настройках «быстрые языковые пары»), вводим слово и выбираем в какой словарь будем переводить.
Некоторые программы (например, Википедия) также могут отправлять «намерение перевода» в словарную программу.
Мы тоже можем это сделать:
Перевод из сторонних программ Если вернуться к словарям, то с момента последней публикации произошло много изменений.
Оставлю самое интересное напоследок.
Давай начнем.
Словарные классификации
У нас много словарей, вы можете перевести в любом из них.Чтобы было проще ориентироваться, расскажу, как я классифицирую словари:
- Первая «глобальная» подклассификация словарей: В сети И не в сети словари.
Из контекста понятно, что некоторые люди могут работать только с Интернетом, а другие могут обходиться без него.
Но механика другая;
- Вторая «глобальная» подклассификация: умение переводить слова/устоявшиеся фразы или произвольный текст;
- Третья и основная классификация основана на методе интегрирования:
- Словари приложений;
- Онлайн-словари без API;
- Онлайн-словари с API;
- Встроенные (оффлайн) словари.
Словарные приложения
Суть здесь в следующем: читалка отправляет текст во внешнюю программу, а дальше она все делает. Есть как онлайн, так и оффлайн.Плюсы:
- Простое взаимодействие;
- Стабильность работы.
- Все внешние программы имеют свой интерфейс, свои нюансы, что не всегда удобно;
- Нет возможности руководить личный словарь (здесь есть один нюанс – внизу);
- Если мы тоже находимся в этом же режиме (а это часто бывает), то возможны ненужные перерисовки экрана.
- GoldenDict — старый, хороший, функциональный.
Платно (но есть обходные пути), переводит слова, офлайн.
Есть «модернизирующие» моды, есть наш мод .
Он может многое, даже морфологию, если вы его настроите.
Он очень давно не обновлялся, исходников нет. Но он хотя бы работает;
- Aard2 - бесплатно, переводит слова, оффлайн.
Простой и в то же время хороший словарь со своим очень эффективным форматом.
неряха , который легко справляется с огромными словарями.
В качестве словарей можно скачать полные дампы Википедии (на разных языках, регулярно обновляются).
И вот у нас есть новости.
Во-первых, у программы есть исходники.
Во-вторых, мы его немного улучшили: немного улучшили «связность» интерфейса, добавили второй тип поиска и, самое главное, научили отправлять текст перевода обратно в КР, тем самым обеспечив работу личного словаря — тот же нюанс из пункта выше.
Вы можете взять модифицированную для нас версию aard2 в нашей теме .
Пиар в основном репозитории выдан.
Мы очень надеемся, что автор захочет включить его в будущие версии.
Недостатки — не очень вписывается в интерфейс eink, мало словарей (по сути, есть только Википедия).
Но! Я нашел замечательную программу в Интернете PyГлоссарий , который может (и делает это хорошо) конвертировать словари из/в различные форматы, включая неряха .
Работает как на Windows, так и на Linux. Конечно, конвертация — это дополнительный шаг, но он делается только один раз;
- Abbyy Lingvo - переводит слова, оффлайн.
Хорошо, платно, словари тоже платные;
- Переводчики Яндекс/Гугл - бесплатно, онлайн (можно, по-моему, заранее скачать словари для офлайна), переводят текст. Кстати, очень качественный;
- Reverso Context - один из читателей очень похвалил.
Ну, на самом деле это хорошо;
- И много других разных, которые мы больше описывать не будем (например, Mdict, с преимущественно китайскими словарями и т.п.
).
Если вы знаете интересные и хорошие, будем рады прочитать о них в комментариях к статье (также можно написать в личном сообщении, а также на Форум ).
Aard2 и кнопка «вернуть текст перевода обратно в КР» В КР в списке словарей приложения есть ряд старых, которых может уже давно нет в живых (мы не проверяли).
Позже мы планируем здесь немного навести порядок, чтобы в список попадали только актуальные.
Небольшое, но важное замечание — помимо ряда «преднастроенных» словарных приложений, КР может использовать в качестве словаря любое приложение, способное принимать текст.
Онлайн-словари без API
Идея здесь проста — мы отправляем текст на перевод на «веб-страницу» словаря, он нам выдаёт html, который мы должны разобрать и показать пользователю перевод и сопутствующие артефакты (примеры и т.п.).
Минусы очевидны – если изменить формат (структуру) веб-страницы, то все сломается.
Есть и плюсы – это бесплатно.
Здесь нам нужно немного рассказать о том, как настроить направление перевода, поскольку в онлайн-словарях это необходимо.
Мы связываем языковую пару «язык с» и «язык на» с книгой, т. е.
вы должны указать это один раз для каждой книги.
Для удобства вы можете указать в настройках часто используемые пары, чтобы потом быстро выбирать их.
Выбор языковой пары для книги Указать языковую пару для книги можно в нескольких местах – настройках, панели выбора, редактировании информации о книге, а также непосредственно перед первым переводом.
В эту категорию входят:
- Linguee - очень качественный, красивый, хороший.
Дает хорошую структуру словарной карточки (перевод, примеры).
Немного жадный – если переводить часто, он начинает капризничать и перестает давать перевод;
- Glosbe — абсолютно мощный проект: куча языков (более 6000, включая самые редкие), карта еще и со структурой;
- Dict.cc тоже неплох.
Мы представляем здесь по советам читателей (мы ценим вас);
- Туренг - для изучения турецкого языка (тоже по просьбе читателя).
Но однажды во время поездки в Турцию я сам им воспользовался;
- Грамота.
ру чисто «для развлечения», но пусть будет так;
- Городской дикт — этот, наверное, больше подходит для современных текстов, чем для книг.
Это как народный толковый словарь, но любопытно.
Попробуйте, например, перевести на него «ковидиот».
Перевод на Глосбе
Грамота.
ру
Городской диктат
Лингее
Онлайн-словари с API
Здесь все становится серьезнее.Взаимодействие через API гораздо стабильнее, но не лишено недостатков.
Давайте посмотрим на это:
- Abbyy Lingvo переводит слова.
Оно так же хорошо, как и приложение (есть даже файлы транскрипции и аудиопроизношения, которые мы пока не добавили), но есть существенные недостатки — для нормальной работы нужно зарегистрировать «своё» приложение и получить токен.
Токен сохраняется в настройках КР и используется.
Существует квота на количество переводов.
Этот доступ, насколько я понимаю, называется «тестовым» доступом (то есть его можно закрыть в любой момент, но долгое время все очень стабильно);
- Яндекс переводчик переводит тексты.
Здесь с переводами все хорошо, но, во-первых, это платно, а, во-вторых, процедура регистрации еще сложнее - нужно зарегистрироваться в облаке Яндекса, ввести туда данные своей карты, получить токен и т. д. Мы описал все это - попробуй это.
Одним из преимуществ является отсутствие абонентской платы, это относительно дешево.
На заре формирования этого облака мне позвонил вежливый Яндекс и поинтересовался моими впечатлениями.
Я пытался объяснить, что было бы неплохо сделать упрощенную систему регистрации для таких случаев (когда перевод осуществляется в ридере, но читатель сам хочет за него платить), но они честно признались, что такого нет. .
Вообще в облаке Яндекса есть много интересного, например, качественная озвучка текста.
И одно время мы даже думали приделать его к движку чтения книг, но ценник там, на мой взгляд, не гуманный - я подсчитал (хотя уже забыл), что озвучка Сервантеса "Дон Кихота" будет стоить либо 400, либо 1000 руб.
Подозреваю, что Яндекс реализует (или уже?) эту функцию в своей читалке;
- Google. Ну и где бы мы были без него? Все примерно так же, как в Яндексе, но дороже и с абонентской платой.
Поэтому мы не пошли по этому пути.
Однако мы обнаружили какую-то лазейку, позволяющую переводить бесплатно (замечено на KOReader).
Не знаю, насколько это официально, но это работает;
- Deepl.com — интересный игрок, раньше я о нем не знал.
От тех же ребят, которые делают лингве, но это для перевода текстов.
Заявляют очень качественный перевод, но больших отличий от Яндекса я не увидел.
Может я плохо выгляжу? Доступ есть как платный, так и бесплатный, но необходимо указывать карту, а не российскую.
Санкции не имеют к этому никакого отношения; у них сразу не было России в списке стран, хотя язык поддерживается.
Как вариант, попросите зарегистрироваться своих друзей, живущих в Европе.
Небольшое примечание.
Идея, которая пришла в голову во время путешествия на «ласточке» из Адлера в Анапу (интернет там был достаточно нестабильным, и только на вокзалах, поэтому вызвать онлайн-словари половину времени не представлялось возможным, а смотреть на ошибку сетевого подключения стало немного скучновато) - настройка соответствия между оффлайн и онлайн словарями.
Теперь можно перевести, например, в Яндекс онлайн, а когда нет Интернета - скажем, в GoldenDict, причем без дополнительной перенастройки, это абсолютно прозрачно.
Оффлайн словари
Вот мы и добрались до самого интересного и нового.Интернет, онлайн — это хорошо.
Но это не совсем надежно и работает не везде.
Между тем в Интернете можно найти большое разнообразие словарей.
Популярные форматы: StarDict и Lingvo DSL. Мы поддерживаем оба (в кодировке utf8).
То, что должно быть сделано:
- Сохраняем словари в папку диски папки приложений (KnownReader).
Словарь, как правило, состоит из нескольких файлов, поэтому размещается «в своей подпапке»;
- Заходим в настройки «Словари/оффлайн словари», а там:
- Ставим галочку, чтобы использовать этот словарь, сортируем словари так, как нам хочется;
- Нажмите «конвертировать» для каждого словаря, дождитесь конвертации (это разовая операция);
- Вы можете использовать его.
Настройки автономного словаря Перевод в автономном словаре выглядит примерно так:
Оникс Букс
Поговорим немного об Onyx Boox. Дело в том, что адаптация ридера к устройствам Onyx — для нас приоритетная задача.Оникс имеет встроенное приложение для словарей .
И, что самое интересное, у него есть API, и к нему можно подключиться, что мы и сделали.
Он работает так же, как «обычный» онлайн-словарь.
В будущем - (вероятно) сделаем и отображение в виде html. Кстати, мы адаптировали ридер под современные читалки Onyx, в том числе и цветные, которые были представлены совсем недавно (Onyx Boox Poke, Nova (Air(C)) и другие): https://onyx-boox.ru/boox_novaairc , а также не забывайте про более «классические модели» (например на Android 4, такие как Livingstone).
В любом случае, если у вас есть читалка Onyx и есть вопросы по использованию читалки на ней, обращайтесь напрямую к нам.
OPDS (Открытая система распространения публикаций)
Напоследок поговорим немного не о словарях, а об онлайн-каталогах книг (ОПД).Мне захотелось (в академических целях) поднять сетевой каталог книг внутри сети моего домашнего роутера (таким образом, разделив его на всю семью, а если есть открытые пробрасываемые порты, то и за ее пределами).
Тем более, что в Интернете сравнительно легко найти дампы сетевых библиотек: травма, флиб и т.п.
Ну вы поняли.
Решение следующее:
- Была найдена программа freelib ( https://github.com/petrovvlad/freeLib , автор Влад Петров);
- КР доработан с учетом некоторых нюансов программы;
- Freelib может предоставить библиотеку в виде каталога opds, но для запуска программы, к сожалению, нужна графика (мы говорим о Linux).
Однако после обращения к автору проблема была решена — он согласился ее доработать, и программа научилась запускаться в консоли;
- Дальше дело техники — используем одну плату (OrangePI, RaspberryPI) и внешний (USB) жесткий диск для нее;
- Запускаем, все работает (кто хочет, но не может настроить, приходите).
Заключение
К сожалению, к выводу мы не пришли – не успели.Как того требует традиция (раз вы уже дочитали), то по законам жанра кот Николай здоровается со всеми.
Продолжаем работать – 148 открытых заявок, 430 закрытых.
Оставайтесь с нами, приходите к нам ;) Теги: #Android #Разработка Android #Разработка мобильных приложений #с открытым исходным кодом #I PR #KnownReader #FOSS #CoolReader
-
Покупка Ноутбука С Функциями
19 Oct, 24 -
Вакансии После Курса Sap
19 Oct, 24