wx Dictionary Search - приложение для поиска терминов в локальных словарях.
Приложение распространяется согласно условиям лицензии GNU GPL v3 или более новой.
Поддерживаются словари в формате обычных текстовых файлов (plain text).
Например:
Брокгауз_Ефрон: 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
Брокгауз_Ефрон - 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-dictiona … 0в%20Linux
Старая шапка с информацией о старом быдлокоде старой Lua-версии (wxLua Dictionary Search).
wxLua Dictionary Search
Идея навеяна топиком: Правка/поиск текста
Приложение для поиска по словарям. Поддерживает словари в формате текстовых файлов.
Например:
Брокгауз_Ефрон: 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
Брокгауз_Ефрон - 5257 строк
БСЭ.txt - 75484 строк
Ефремова - 123227 строк
Возможности:
Добавление и удаление словарей через меню "Файл"
Поиск по всем словарям
Поиск только по выделенным словарям
Поиск по всем словарям, кроме выделенных
Игнорирование регистра (опционально)
Поиск только "целого слова" (опционально, по запросу "арбуз" при вкл. найдет только "арбуз", при выкл. найдет "арбуз", "арбузный", "арбузов" и т.д.)
Сохранение результатов поиска в файл
TODO:
Поиск в описаниях (т.е. по запросу "арбуз" чтобы выдавало не только определения слова "арбуз", но и другие слова, в определениях которых упоминается арбуз)
Установка:
$ cd wxLua-Dictionary-Search
$ lua main.lua
или
$ unzip wxLua-Dictionary-Search-master.zip
$ cd wxLua-Dictionary-Search-master
$ lua main.lua
Зависимости:
При создании приложения использовалась 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
cd ~/wxLua
wget http://skylink.dl.sourceforge.net/project/wxlua/wxlua/2.8.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
У 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
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*
Сразу нужно переименовать в libwx.so в wx.so.
Дальше:
Вариант 1. Кладем библиотеки в каталог, определенный в package.cpath (например, для Lua 5.2 у меня это /usr/lib/lua/5.2/)
Открываем терминал
print(package.cpath)
И увидим в ответ что-то вроде
/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.