wx Dictionary Search - приложение для поиска терминов в локальных словарях.
Приложение распространяется согласно условиям лицензии GNU GPL v3 или более новой.
Поддерживаются словари в формате обычных текстовых файлов (plain text).
Показать
[console][xxblx@localhost dictionaries]$ file Брокгауз_Ефрон
Брокгауз_Ефрон: UTF-8 Unicode text, with very long lines
[xxblx@localhost dictionaries]$ file БСЭ.txt
БСЭ.txt: UTF-8 Unicode text, with very long lines
[xxblx@localhost dictionaries]$ file Ефремова
Ефремова: UTF-8 Unicode text, with very long lines, with CRLF line terminators[/console]
Брокгауз_Ефрон - 5257 строк (терминов)
БСЭ.txt - 75484 строк (терминов)
Ефремова - 123227 строк (терминов)
Функционал:
- Добавление/удаление локальных словарей;
- Поиск по всем словарям, только по отмеченным или во всех кроме отмеченных;
- Игнорирование регистра;
- Поиск только слова целиком (если включено, по запросу "авто" найдет только "авто", если выключено, найдет "автоматизированный", "автомобиль" и т.д.);
- Конфиг приложения в ini файле, расположенном в ~/.config/wxdictionarysearch/conf.ini ($XDG_CONFIG_HOME/wxdictionarysearch/conf.ini). Подробности о XDG_CONFIG_HOME см. в спецификации XDG Base Directory.
Для работы приложения потребуются:
- Python 2
- wxPython
- gettext
Исходный код доступен в Git-репозитории на bitbucket.org: https://bitbucket.org/xxblx/wx-dictionary-search
Инструкция по ручной установке в GNU/Linux: https://bitbucket.org/xxblx/wx-dictionary-search/wiki/Ручная%20установка%20в%20Linux
Старая шапка с информацией о старом быдлокоде старой Lua-версии (wxLua Dictionary Search).
Показать
Идея навеяна топиком: Правка/поиск текста
Приложение для поиска по словарям. Поддерживает словари в формате текстовых файлов.
Показать
[console][xxblx@localhost dictionaries]$ file Брокгауз_Ефрон
Брокгауз_Ефрон: UTF-8 Unicode text, with very long lines
[xxblx@localhost dictionaries]$ file БСЭ.txt
БСЭ.txt: UTF-8 Unicode text, with very long lines
[xxblx@localhost dictionaries]$ file Ефремова
Ефремова: UTF-8 Unicode text, with very long lines, with CRLF line terminators[/console]
Брокгауз_Ефрон - 5257 строк
БСЭ.txt - 75484 строк
Ефремова - 123227 строк
Возможности:
- Добавление и удаление словарей через меню "Файл"
- Поиск по всем словарям
- Поиск только по выделенным словарям
- Поиск по всем словарям, кроме выделенных
- Игнорирование регистра (опционально)
- Поиск только "целого слова" (опционально, по запросу "арбуз" при вкл. найдет только "арбуз", при выкл. найдет "арбуз", "арбузный", "арбузов" и т.д.)
- Сохранение результатов поиска в файл
TODO:
- Поиск в описаниях (т.е. по запросу "арбуз" чтобы выдавало не только определения слова "арбуз", но и другие слова, в определениях которых упоминается арбуз)
Установка:
Показать
$ cd wxLua-Dictionary-Search
$ lua main.lua[/console]
или
[console]$ wget ht[span]tps://github.com/xxblx/wxLua-[/span]Dictionary-Search/archive/master.zip
$ unzip wxLua-Dictionary-Search-master.zip
$ cd wxLua-Dictionary-Search-master
$ lua main.lua[/console]
Зависимости:
При создании приложения использовалась wxLua 2.8.12.3, собранная с Lua 5.2, wxGTK 2.8.12.
Работоспособность приложения не проверялась с другими версиями wxWidgets (wxGTK) и wxLua + Lua 5.1 / LuaJIT.
---
Поскольку "из коробки" Lua не может изменять регистр у букв русского алфавита (string.upper и string.lower работают только с английскими буквами), для реализации смены регистра у строк, содержащих символы русского алфавита, используется сторонний самописный модуль Lua ru_str.
Ссылки:
- Исходный код wxLua Dictionary Search
https://yadi.sk/d/hNLWVFr4dyMFR - Исходный код Lua ru_str
https://github.com/xxblx/lua-ru_str
Лицензия: GNU GPL v3
Скриншоты:

Цель создания программы и ответ на вопрос "Почему wxLua?":
1. Потому что могу
2. Практика навыка
3. Нравится wxWidgets
UPD:
wxLua мало где есть в собранном виде в репозитории, по этому вот небольшая заметка по сборке
Показать
- cmake
- make
- gcc
- dev-пакет lua
liblua-dev / liblua-devel
liblua5.1-dev / liblua5.1-devel
liblua5.2-dev / liblua5.2-devel
и т.д.
В зависимости от того, с какой версией будете собирать - dev-пакет библиотеки wxwidgets (wxgtk)
libwxgtku2.8-devel
libwxwidgetsu2.9-devel
и т.д. - libncurses5-devel
[console]mkdir -p ~/wxLua
cd ~/wxLua
wget ht[span]tp://skylink.dl.sourceforge.net/project/wxlua/wxlua/2.8[/span].12.3/wxLua-2.8.12.3-src.tar.gz
tar xvfz wxLua-2.8.12.3-src.tar.gz
cd wxLua-2.8.12.3-src
cmake -DwxLua_LUA_LIBRARY_VERSION=5.2 .
make [/console]
У wxLua_LUA_LIBRARY_VERSION указываем ту версию, с которой хотим собрать wxLua.
wxLua_LUA_LIBRARY_VERSION=5.2 - если хотим собрать и использовать с Lua 5.2
wxLua_LUA_LIBRARY_VERSION=5.1 - если с 5.1 По окончанию сборки в ~/wxLua/wxLua-2.8.12.3-src/bin/lib/Debug появятся собранные библиотеки wxLua
[console][xxblx@localhost Debug]$ ls
libwxlua_bind-wx28gtk2ud-2.8.12.3.so* libwxlua-wx28gtk2ud-2.8.12.3.so*
libwxlua_debugger-wx28gtk2ud-2.8.12.3.so* libwx.so*
libwxlua_debug-wx28gtk2ud-2.8.12.3.so* libwxstedit-wx28gtk2ud-1.6.0.so*
libwxlua_lua52-wx28gtk2ud-2.8.12.3.so*[/console]
Сразу нужно переименовать в libwx.so в wx.so.
Дальше:
Вариант 1. Кладем библиотеки в каталог, определенный в package.cpath (например, для Lua 5.2 у меня это /usr/lib/lua/5.2/)
Открываем терминал
[console]lua
print(package.cpath)[/console]
И увидим в ответ что-то вроде
/usr/lib/lua/5.2/?.so;/usr/lib/lua/5.2/loadall.so;/usr/lib64/lua/5.2/?.so;/usr/lib64/lua/5.2/loadall.so;./?.soТут думаю все понятно, куда дальше класть. Кладем, запускаем программу (main.lua).
Вариант 2. Сначала проверим работоспособность библиотек.
Создаем каталог wx, складываем туда библиотеки, копируем каталог в папку с программой. Получится, например, так: ~/wxLua Dictionary Search/wx/и_тут_уже_сами_библиотеки.
Открываем ui.lua и перед строкой
local wx = require("wx")Добавляем строку
package.cpath = ";./wx/?.so;"И после запускаем файл main.lua.