Понедельник, 29.04.2024, 22:39
Приветствую Вас Гость | RSS

Мой сайт

Главная » 2014 » Февраль » 14 » Piece Of Dictionary
18:14
 

Piece Of Dictionary

Piece Of Dictionary
Версия: 0.0.1
Последнее обновление программы/игры в шапке: 13.07.2013

Когда мне понадобился небольшой оффлайн англо-русский словарь под рукой, первым мидлетом, на который я наткнулся, оказался MobileLexicon. Этот словарь отличает ужасный интерфейс и сравнительно неплохая словарная база: часто требуется прикладывать дополнительные усилия для того чтобы выудить слово из него. Не стану особенно вдаваться в минусы этой программы, достаточно только сказать, что она меня не удовлетворяет.
Поэтому написал конвертер MobileLexicon-словарных баз в собственный бинарный формат, представляющий словарь как ориентированный граф и научил читать этот формат свой мидлет.
Нарекаю связку конвертер-мидлет PieceOfDictionary.
Именно "кусок словаря", это не ошибка.

Возможности:
  • Вводить английские слова с помощью виртуальной qwerty-клавиатуры на телефонах с тачскрином (должно работать и с хардварным qwerty).
  • Переключать языки интерфейса в "Опциях" и менять полноэкранный и нормальный режимы долгим тапом до опупения.
  • Пользоваться предиктивным вводом текста на телефонах с цифровой клавиатурой.
  • Просматривать историю введённых слов, нажимая Вправо-Влево или делая соответствующие жесты пальцем на экране.


Словари — лучшие кандидаты на реализацию предиктивного ввода разработчиком программы; странно, что я такого не видел в чужих программах. Если по поводу нанесения английских букв на цифровые клавиши есть какая-то всеобщая договорённость, то русские часто (например, на "телефонах Fly") размещены с отклонениями от чаще встречающегося "абвг|деёжз|ийкл|мноп|рсту|фхцч|шщъы|ьэюя", поэтому в настройках программы предиктивный ввод текста отлично настраивается.

Прикрепленное изображение
Скриншот немного прокрученной вниз выдачи по запросу "235".

Меню выбора направления перевода просто нет – как видите, слова из различных направлений расположились вперемешку. Оно, в самом деле, не нужно: только запустив программу можно сразу нажимать на кнопочки и ждать (все минусы предиктивного ввода присутствуют), пока (не) появится желаемое слово.

Прикрепленное изображение
Скриншот начала выдачи по запросу "bel" с виртуальной клавиатуры.

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

Словарные статьи сортируются в следующем порядке:
  • Количество непробельных символов в ключах к статьям.
  • ISO 639-2 тэги языков ключей ("eng", "rus") – по алфавиту.
  • Ключи – по алфавиту.

Параметры, с которыми PieceOfDictionary запускается в первый раз, задаются в файле "parameters.xml". Изначально предусматривалось, что программа может иметь любое количество любых словарей. В XML-файлах хранятся и переводы на различные языки. Для мобильных устройств XML, возможно, не оптимальный вариант хранения информации, но альтернативы вроде INI-подобного формата показались мне неприятными. Для работы с XML я использовал kXML.
В MIDP 2.0 не входят средства для чтения из файла подлинного UTF-8, ни в одном из классов не реализована функция seek как таковая и это не говоря уже о том, что максимальный размер читаемого файла во многих JVM ограничен. Поэтому было написано семейство классов со странным названием "EasyReadingFile", которые позволяют работать с этим подвидом Unicode и даже делать seek по "колонии" файлов, составляющих один большой "файл", который не каждый телефон смог бы прочесть.
В дальнейшем можно было бы создать сайт, скрипты которого добавляли бы в JAR-архив нужные файлы и редактировали бы "parameters.xml" в соответствии с пожеланиями пользователей.

Прикрепленное изображение
Возможный интерфейс загрузки PieceOfDictionary-сборки с сайта.

Если расширится ассортимент словарей, то действительно в программе начнёт иметь смысл возможность если не выбора направления перевода, то, наверное, отключения временно ненужных словарей до востребования.

Рекомендую обладателям телефонов с цифровыми клавишами, поскольку реализован предиктивный ввод текста (что-то вроде T9 или iTAP исключительно по словам, имеющимся в словаре).

Прикрепленное изображение

Скачать:
PieceOfDictionary 0.0.1: Прикрепленный файлPieceOfDictionary.jar ( 1.36 МБ )


Исходники словаря: Прикрепленный файлPieceOfDictionary.zip ( 1.36 МБ )

Смотрите, пользуйтесь, изменяйте, но просто обозначьте где-то, пожалуйста, моё изначальное авторство.

Тему эту я поднял из моей пропащей статьи в песочнице Хабра.

Спойлер (+/-) (Минусы)


Минусы концепции вообще
  • У оффлайн словарей не может быть серьёзного применения. Достаточно солидную словарную базу телефон хранить не может (проблема, скорее, на настоящий момент в том, чтобы её на телефон доставить), а может брать её из Интернета. Я от этого отказался: не всегда у меня есть денежки на счету (а готовые решения, между прочим, есть).
  • Платформа находится в непонятном состоянии: с одной стороны некоторые экземпляры уже поддерживают свежий MIDP 3.0 (например), покупатели уже давно покупают новенькие дешёвые телефончики с тачскринами, а с другой эти телефоны всё чаще имеют операционную систему, в которой место Java у ведра.

Минусы реализации (почему 0.0.1)
Вообще:
  • На данный момент формат неоптимален – всё знаем, но лень одолевает.

Конвертера:
  • Конвертер писался достаточно небрежно и, в частности, загружает в ОЗУ всю словарную базу перед записью её на диск.

Мидлета:
  • Дергается и скачет всё при прокрутке пальцем.
  • Единственный альтернативный перевод программы – английский просто ужасен (как и, наверное, все идентификаторы и английские строковые константы в исходниках) по вине моей настырности и нежелания иметь дела с иностранным языком.
  • Ввод русских слов виртуальной клавиатурой невозможен. Вводятся только буквы с 'т' по 'я' включительно. Что за песня? (JVM — Esmertec Jbed 20081013.2.1)



Сообщение отредактировал viRUS_966 - 12.07.2013, 22:14
Просмотров: 416 | Добавил: hation | Рейтинг: 0.0/0
Всего комментариев: 0
Меню сайта
Мини-чат
Наш опрос
Оцените мой сайт
Всего ответов: 6
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа
Поиск
Календарь
«  Февраль 2014  »
ПнВтСрЧтПтСбВс
     12
3456789
10111213141516
17181920212223
2425262728