О создании словарей DSL
Конечный пункт в направлении прикладываемых усилий при освоении DSL — это собственный электронный словарь. DSL позволяет создавать словари различной степени сложности в плане структуры и оформления. И если для создания словаря простого достаточно элементарных начальных сведений, то для создания словаря с расширенным оформлением помимо DSL могут понадобиться дополнительные знания и навыки.
Простой словарь DSL
Под словом «простой» в словаределании подразумевается словарь без форматирования (без применения тэгов) с элементарной структурой: заголовок → перевод / толкование (без дополнительных пояснений, как правило). Такими обычно бывают словари синонимов, антонимов и т.п. Среди словарей, входящих в комплект ABBYY Lingvo x5 и выше, примером простого словаря является HoverDictionary (представлен в разных языках). Сходной структурой также обладают пользовательские словари с ограниченным редактированием *.lud (подробнее см. в главе Виды словарей в Lingvo) и вспомогательные словари аббревиатур.
Пример простого словаря :: Вид в словарной карточке
Для создания простого словаря не требуются специальные знания и навыки. Достаточно выполнить следующие действия:
- Создать текстовый файл с расширением *.txt в кодировке ANSI или Unicode (UTF-16 LE).
- Заполнить первые три строчки следующим содержимым:
Пример первых трёх строчек простого словаря
#NAME "Словарь (En-Ru)" #INDEX_LANGUAGE "English" #CONTENTS_LANGUAGE "Russian"
Вместо «Словарь (En-Ru)» указать имя нового словаря и языковую пару в скобках, вместо «English» и «Russian» — английские наименования языка заголовков и языка переводов / толкований. Допускается использовать только языки, поддерживаемые в Lingvo. - Затем разместить словарные статьи, где каждый заголовок должен начинаться с новой строки, а относящийся к нему перевод / толкование со следующей новой строки со знаком пробела или табуляции в начале.
Пример содержимого простого словаря
door дверь; дверца; створка; дверка doorbell дверной звонок doorman швейцар
- Сохранить файл с расширением *.dsl.
- Откомпилировать полученный DSL словарь в формат LSD при помощи утилиты DSL Compiler, входящей в комплект программы ABBYY Lingvo. При этом проследить, чтобы в окне утилиты была отмечена галочка Create dictionary ready for indexing.
Созданный таким способом LSD словарь можно подключать к программе Lingvo, а исходный DSL — к программе GoldenDict, или любой другой, умеющей работать с DSL напрямую, без дополнительной конвертации.
Форматированный словарь DSL
Кроме простых словарей, DSL также позволяет создавать словари с развитой внутренней структурой и оформлением. К тексту такого словаря могут быть применены различные способы выделения: начертанием, цветом, отступами абзацев. Условные сокращения могут содержать интерактивные расшифровки своих значений. Словарные статьи могут быть поделены на различные зоны, влияющие на отображение элементов или на работу механизма поиска по содержимому. При помощи гиперссылок может быть организован быстрый переход между статьями одного или нескольких словарей, а также на внешние интернет-ресурсы. В состав словаря могут быть включены иллюстрации, аудио и видео материалы.
Эти и другие удобства достигаются путём применения к тексту форматирования — разметки текста при помощи тэгов. В общих чертах, доступные в DSL средства форматирования значительно улучшают восприятие и эффективность использования словарей. Жаль только, что не удовлетворяют всем основным потребностям словаределания: так, например, при помощи DSL невозможно отобразить таблицу.
Для создания форматированных словарей словаределателю может понадобиться следующий набор технических знаний и навыков:
- Знание всех существующих конструкций языка DSL — само собой разумеется.
- Знание языка регулярных выражений — необходимо для того, чтобы быть способным обрабатывать словари большого объёма.
- Навык или способность работы в профессиональных текстовых редакторах. Это программы, обладающие набором специализированных средств для лучшего восприятия текста и автоматизации рутинных задач при его обработке. Именно в таких программах быстрее и удобнее всего производится разметка тэгами. Их основные преимущества (актуальные для словаределания):
- обработка файлов большого объёма (в десятки и сотни мегабайт);
- одновременная обработка множества файлов;
- мощные инструменты поиска и замены текста;
- возможность визуального выделения (подсветки) тэгов при помощи цвета и начертания (функция, значительно облегчающая работу при редактировании и, особенно, вычитке словарей);
- автоподстановка фрагментов текста или конструкций тэгов;
- гибкая настройка вспомогательного инструментария (горячие клавиши, кнопки, переключатели и т.п.);
- средства сбора статистики по тексту.
- Знание или знакомство с написанием скриптов (сценариев на несложных языках программирования). Понадобится для решения задач нетривиальных, узкоспециализированных, когда стандартных возможностей текстовых редакторов не хватает. Нередко подобные задачи ограничиваются рамками одного конкретного словаря. Понимание основ скриптового программирования, пусть даже поверхностное, пригодится и для того, чтобы внятно сформулировать тех-задание, если придётся обратиться за помощью в написании к опытному программисту, произвести элементарные настройки в уже существующих скриптах, или просто разобраться в том, как скрипт работает и как обращаться с параметрами его запуска.
Добавим: перечисленные знания не являются сложными в освоении и, по факту, приобретаются достаточно быстро. К тому же, согласно известному афоризму, «дорогу осилит идущий».
Рекомендуемые инструменты
Задачи, с которыми сталкивается словаределатель при создании словаря, можно условно разделить на два направления: профильные и базовые. К профильным относятся те, что тесно связаны со структурой и синтаксисом DSL. К остальным — анализ, сравнение и обработка текстовых массивов, доступ к специфическим данным. Распределим рассматриваемые инструменты по перечисленным типам.
Первая группа — профильная:
nodereplacer.js
Богатый набор инструментов для нужд словаределания, написанный на JavaScript. Управление осуществляется из командной строки. Основное назначение: обработка DSL, анализ DSL, подготовка словарного материала для конвертации в DSL. Некоторые функции: обработка словарных статей (дубликаты, сортировка), обработка словарных заголовков (дубликаты, сортировка, раскрытие скобок), маркировка подвешенных ссылок, поиск/замена при помощи регулярных выражений с учётом специфики DSL, проверка синтаксиса DSL, исправление распространённых ошибок DSL.
Разработчик: andreyefgs, GitHub
Требования: Установленное окружение Node.js.
Преимущества: Специализированная направленность словаределание. Мощность. Высокая скорость обработки. Платформонезависимость.
Относительные недостатки: Не выявлены.Набор скриптов на Perl
Богатый набор инструментов для нужд словаределания, написанный на Perl. Управление осуществляется из командной строки. Основное назначение: обработка DSL, анализ DSL. Некоторые функции: обработка словарных статей и заголовков (дубликаты, сортировка), маркировка подвешенных ссылок, проверка нумерации разделов в карточке, расстановка ударений, замена тильды на заголовок, поиск/замена при помощи регулярных выражений с учётом специфики DSL, исправление некоторых распространённых ошибок DSL. Эта разработка — предшествующая nodereplacer.js.
Разработчик: andreyefgs, www.lingvoboard.ru/forum/
Требования: Установленное окружение Perl.
Преимущества: Специализированная направленность словаределание. Мощность. Высокая скорость обработки. Платформонезависимость.
Относительные недостатки: Существенные не выявлены. Статус разработки: deprecated. Автор более не оказывает поддержки и рекомендует пользоваться своей более новой разработкой nodereplacer.js.
Далее перечислим инструменты для решения задач базового круга. Группа профессиональных текстовых редакторов и обработчиков:
PowerGREP
Программный комплекс для пакетной (массовой) обработки текстовых файлов при помощи регулярных выражений. Справляется с файлами большого размера (в сотни мегабайт). Способен обрабатывать множество файлов одновременно. Предоставляет возможность употреблять регулярные выражения различных диалектов, а также комбинировать диалекты, что особенно удобно для тех, кто только осваивает язык регулярок и ещё путается в особенностях синтаксисов и формулировании своих задач. Варианты применения в словаределании: обработка множества html-файлов при конвертации словарей из сетевых источников.
Разработчик: Jan Goyvaerts, Just Great Software Co. Ltd., www.powergrep.com
Преимущества: Обработка множества файлов. Мощность. Высокая скорость обработки. Лучший (комбинированный) синтаксис регулярных выражений. Лучшее справочное руководство для изучения регулярных выражений (только на английском).
Относительные недостатки: Встроенный текстовый редактор нефункционален и неудобен. Программа не бесплатна. Только Windows.EditPad
Профессиональный текстовый редактор. Дополнение к PowerGREP от того же разработчика с теми же преимуществами (кроме пакетной обработки), сфокусированное на работе с одиночными файлами. Стараниями словаределателей создана дополнительная подсветка синтаксиса для DSL и организована интеграция с nodereplacer.js.
Разработчик: Jan Goyvaerts, Just Great Software Co. Ltd., www.editpadpro.com
Преимущества: Дополнительные расширения для работы с DSL. Мощность. Высокая скорость обработки. Лучший (комбинированный) синтаксис регулярных выражений. Лучшее справочное руководство для изучения регулярных выражений (только на английском).
Относительные недостатки: Программа не бесплатна. Только Windows.EmEditor
Профессиональный текстовый редактор. Из существующих самый, пожалуй, мощный и скоростной. Развитый механизм поиска/замены при помощи регулярных выражений (два движка: Boost.Regex и Onigmo). Редкие возможности поиска/замены (например, изменение регистра найденного совпадения или его части). Настраиваемая схема подсветки синтаксиса для наглядного отображения текста. Развитые средства автоматизации рутинных задач.
Разработчик: Emurasoft, Inc., www.emeditor.com
Преимущества: Мощность. Высокая скорость обработки.
Относительные недостатки: Ограниченные возможности настройки подсветки синтаксиса. Неповоротливость и медлительность при выполнении некоторых задач. Программа не бесплатна. Только Windows.AkelPad
Профессиональный текстовый редактор. Три независимых механизма поиска/замены при помощи регулярных выражений (свой собственный и на движке JScript). Гибкая и многоплановая настройка элементов рабочего окружения: кнопок, панелей, меню, клавиатурных сочетаний, цветовых схем, подсветок синтаксиса, функций автоподстановки текста и мн. др. Развитые средства автоматизации рутинных задач. Расширение возможностей автоматизации путём подключения дополнительных скриптов. Удобная среда для создания собственных скриптов разного уровня сложности. Стараниями словаределателей на основе AkelPad создана сборка AkelDSL, включающая: инструмент для работы над ошибками DSL, предпросмотр кода DSL, подсветку синтаксиса DSL, дополнительную панель кнопок для работы с DSL и другие инструменты.
Разработчик: Александр Шенгальц, akelpad.sf.net
Преимущества: Дополнительные расширения для работы с DSL. Лучшие возможности по организации рабочего пространства и расширению функциональности.
Относительные недостатки: Сложности с обработкой файлов большого размера. Только Windows.Notepad++
Профессиональный текстовый редактор. Развитый механизм поиска/замены при помощи регулярных выражений. Настройка подсветки синтаксиса для наглядного отображения текста. Развитые средства автоматизации рутинных задач. Стараниями словаределателей создана дополнительная панель кнопок для работы с DSL.
Разработчик: Don Ho, notepad-plus-plus.org
Преимущества и недостатки не выявлялись.
Следующая группа — инструменты для сравнения текста, поскольку при работе над словарями сравнивать текстовые файлы приходится довольно часто:
WinMerge
Один из лучших на сегодняшний день инструментов в данной области.
Разработчик: Dean P. Grimm, Takashi Sawanaka, winmerge.org или GitHub
Преимущества: OpenSource. Удобное представление текста. Широкая настраиваемость.
Относительные недостатки: Только Windows.Beyond Compare
Один из лучших на сегодняшний день инструментов в данной области.
Разработчик: Scooter Software, Inc., www.scootersoftware.com
Преимущества: Многоплатформенность.
Относительные недостатки: Программа не бесплатна.
Далее перечислим инструменты быстрого доступа к символам, недоступным с клавиатуры, т.н. карты символов:
BabelMap
Один из лучших инструментов в данной области. Поддержка новейшей версии Unicode, исчерпывающая информация о символах.
Разработчик: Andrew West, www.babelstone.co.uk
Преимущества: Freeware.
Относительные недостатки: Недостаточно комфортное представление карты символов. Несколько сложно для восприятия организован интерфейс окна программы. Только Windows.PopChar
Один из лучших инструментов в данной области. Наглядное представление карты символов, исчерпывающая информация о символах, развитая система поиска и определения символов.
Разработчик: Ergonis Software GmbH, www.ergonis.com
Относительные недостатки: Программа не бесплатна.
И, наконец, конвертер словарных форматов, среди которых DSL поддерживается и как формат целевой, и как исходный:
PyGlossary
Согласно комментарию разработчика, этот инструмент создан для того, чтобы мы могли использовать тексты наших словарей в любой понравившейся нам словарной OpenSource-программе и на любой современной операционной системе или устройстве.
Разработчик: Saeed Rasooli (aka ilius), GitHub.
Требования: Установленное окружение Python 3.9 и выше.
Преимущества: Freeware, многоплатформенность.
Относительные недостатки: Не выявлялись.
Рекомендуемая литература
- Джеффри Фридл. Регулярные выражения. Перевод с английского Е. Матвеева и А. Киселева. 3-е издание. СПб.: Символ-Плюс, 2008, 608 страниц, иллюстрации. Объективно лучшая на сегодняшний день книга о регулярных выражениях на русском языке.
- Jan Goyvaerts. Справочное руководство к программам PowerGREP, EditPad, RegexBuddy (входит в состав упомянутых программ). Лучшее на сегодняшний день руководство к изучению регулярных выражений на английском языке.
- niccolo + andreyefgs + ru-board. Руководство по конвертации бумажных словарей в Lingvo. Подробное, пошаговое руководство по созданию DSL словарей из печатных изданий + дополнительные сведения по словаределанию.