Так как Openmoko - это полноценный линукс, можно было бы просто перекомпилировать StarDict под него, и получить всю функциональность. Однако, я решил написать свою реализацию, потому что:
- GUI приложения для телефона или коммуникатора должен быть другим, чем для десктопа. Например, pdf-ридером под Openmoko не очень удобно пользоваться, т.к. это десктопное приложение, просто перекомпилированное под ARM, GUI не рассчитан на маленький экран.
- Словарь для мобильного устройства должно быть быстрым и легковесным - быстро включаться и выключаться, например, если вы пользуетесь им в заграничной поездке. Интерфейсы на основе GTK+ (оригинальный StarDict), на мой взгляд, получаются тяжеловатыми, хочется сделать пошустрее. Для GUI я решил использовать свой любимый FLTK2.
- Хочу добавить в словарик специальные функции для обучения языкам: как минимум - списки слов для запоминания, как максимум - база текстов, записей произношения, картинок, ассоциированных со словами и фразами, напоминалки, возможность выстроить программу обучения. Фунции обучения будет удобно использовать между делом, например в транспорте, просто достав телефон из кармана.
- Есть цель повысить собственный девелоперский уровень, освоить новые инструменты. =)
Я уже реализовал следующие вещи:
- Архитектурный скелет приложения
- Прикрутил парсер словарей, взятый из StarDict
- GUI - основные панельки, элементы управления, мелкий тюнинг специально под мобильные девайсы.
- Рабочую сборка под Openmoko (включая FLTK, Boost)
То есть уже можно запустить словарик на телефоне, скормить ему словари StarDict, попробовать перевести слово (вывод перевода - пока в виде простого текста).
Интерфейс - основан на экранах, разбитых по функциям. Переключаться можно кнопками снизу.
Пока это выглядит так:

Первый экран - список слов (поиск по первым буквам или fuzzy query).
Второй, он же главный - перевод слова. Окошко скроллируется пальцем.
Третий - букмарки (списки слов).
Четвертый - читалка текста (пока существование под вопросом).
Пятый - настройки. На скриншоте - список загруженных словарей, можно менять порядок, включать/отключать словари.
Кнопки сделаны под размер пальцев, все списки скроллируются. Боковую панель в списках (в букмарках и настройках) можно скрыть. Кнопка 'T' по середине - перевод слова, т.е. того, которое выделенно в букмарках и списках слов, или введено в поле на второй панели.
Cписок фич, которые планируется сделать:
- Словарики формата StarDict, авто-сканирование директории со словарями
- Поиск по началу слова, fuzzy query
- Захват слова из буфера обмена (выделил - переключился в словарик - получил перевод)
- Произношение из звуковых файлов (вероятно, в первую версию не войдёт)
- Списки слов для запоминания
- Читалка простых текстов, с поиском слов по ним, тегами/заметками
- Подробная конфигурация через GUI: размер шрифтов, порядок использования словариков, etc
Реализация: C++, Boost, FLTK2 (с патчами), немного кода из StarDict (требует glib и zlib).
Выкладывать пакеты и исходники буду когда проект достигнет более-менее рабочей стадии, предположительно к началу июля. Думаю, буду собирать opkg-пакеты для доступных StarDict-словариков.
Интересно мнение будущих пользователей:
- Нужен ли вам словарик под Openmoko?
- Интересуют ли функции обучения, или ещё какие-то дополнительные функции словарика?
- Есть ли предложения по интерфейсу?
Пишите!
6 комментариев:
Думаю словарь должен просто переводить, без всяких фич. Что касается дизайна то без скриншота сказать пока ничего нельзя. Единственно хотелось бы чтобы удобно было пользоваться при повороте экрана.
Добавил скрин, + краткий коммент по GUI
Неплохо. мне понравилось. А почему текст черный на сером фоне?
Пока об окончательной цветовой гамме не думал, сейчас главное - закончить функционал.
А вообще, ИМХО, чёрный на сером(или тёмно-зелёном) лучше для глаз, для себя всегда ставлю такие цвета.
А мона попросить тестовую версию сборки? Я пока тоже сижу выбираю гуи какой применитью
Попросить можно.
Тебе бинарник под ARM? Исходники я ещё никуда не выкладывал.
Вообще для Openmoko больше на EFL/ETK пишут, возможно на нём лучше будет.
А FLTK2 всё ещё в разработке (и будет неопределённое время), однако я уже привык его тюнить под свои нужды.
Отправить комментарий