Тэги словарной структуры
Тэг [p]…[/p]
Назначение: Выделение помет. Пометы — это краткие обозначения, ссылающиеся на более развёрнутые пояснения. В DSL словарях к этой категории причисляются: условные сокращения, аббревиатуры, указатели на характерные признаки слова или его употребления.
Этимология: p — возможно сокращение от англ. phrase (выражение, как синоним англ. expression — сокращение).
Использование: В теле словарных статей и заголовках.
В заголовках необходимо скрывать дескрипторы при помощи команды несортируемой части {…}, иначе они отобразятся как обычный текст в списке найденных слов. Скрывают также и всю область пометы, поскольку её отображение в списке зачастую неуместно.
Отображение в карточках: Щелчок по помете или наведение на неё курсора мыши вызывают всплывающую подсказку с поясняющим текстом — это основная функция пометы. Помимо этого визуально помета выделяется начертанием и цветом. По умолчанию начертание — наклонное, а цвет — зелёный [green]. Цвет можно поменять в диалоге настроек программы: Tools → Options… → Entry Window View → Colours: Labels (вызывается также клавишами Ctrl+O).
Особенности: Текст помет автоматически исключается из индексации.
Поясняющий текст для отображения во всплывающей подсказке программа считывает из локального файла аббревиатур, т.е. из того, что входит в комплект файлов текущего словаря. Если таковой отсутствует, то пояснение ищется в глобальном файле аббревиатур, располагающемся в каталоге c:\Program Files\ABBYY Lingvo ??\, где ?? = номер версии Lingvo. Подробнее об этом см. в главе Файл аббревиатур.
Пример использования тэга помет :: Запись в DSL
Слово о полку Игореве [m1]выдающийся памятник [p]др.-рус.[/p] [p]лит.[/p] конца XII [p]в.[/p] В основе сюжета — неудачный половецкий поход Игоря Святославича (1185).[/m] [m2][p]См. тж.[/p] [ref]Игорь Святославич[/ref][/m]
Пример использования тэга помет :: Вид в словарной карточке
Тэг [p] не подчиняется действию тэгов форматирования цветом и начертанием, когда находится в зоне их действия: к примеру, в записи [c red][b][p]разг.[/p][/b][/c] применение тэгов красного цвета и полужирного начертания бесполезно, будет проигнорировано, а сокращение разг. будет отображено зелёным курсивом (или цветом, назначенным в настройках).
История: Использование тэга наблюдается в словарях Lingvo 6.0. Первое упоминание о нём в официальной документации появляется в Lingvo 6.5. До 9.0 включительно пометы по умолчанию не выделяются цветом и курсивом — для этого в системных словарях используются дополнительные тэги: [c][i][p]…[/p][/i][/c]. Начиная с версии 10 этот обычай возводится в правило, и подобная маркировка становится избыточной: в современном DSL она безболезненно может быть сокращена до [p]…[/p].
Тэг [t]…[/t]
Назначение: Выделение текста транскрипции.
Этимология: t — сокращение от англ. transcription (транскрипция).
Использование: В теле словарных статей. Также допускается использование в заголовках.
В заголовках необходимо скрывать дескрипторы при помощи команды несортируемой части {…}, иначе они отобразятся как обычный текст в списке найденных слов. Скрывают также и всю область транскрипции, поскольку её отображение в списке зачастую неуместно.
Отображение в карточках: Особым шрифтом, входящим в состав дистрибутива Lingvo. Начиная с версии x3, это NewtonPhonetABBYY.ttf — антиква (с засечками) производства компании ParaType. В более ранних версиях шрифт был другой (см. Историю).
Шрифт NewtonPhonetABBYY.ttf включает символы из диапазонов Unicode: Basic Latin
Символы, размещённые в зоне действия [t] [/t], но не входящие в перечисленные диапазоны, будут отображены шрифтом текста карточек (назначенным в настройках), иными словами, визуально не будут отличаться от окружающего текста.
Особенности: Размещение других тэгов в зоне действия [t] [/t] не разрешается: к примеру, запись [t][c]'erə[/c][/t] вызовет ошибку при компилировании.
Транскрипция :: Запись в DSL
decentralization [m1]\[[t]diːˌsentr(ə)laɪ'zeɪʃ(ə)n[/t]\][/m] [m1]децентрализация[/m]
Транскрипция :: Вид в словарной карточке
Тэг [t] подчиняется действию тэгов форматирования цветом и начертанием, когда находится в зоне их действия. Например, при записи вида [c firebrick][b][t]rait[/t][/b][/c] транскрипция будет отображена полужирным начертанием и кирпичным цветом.
Программа GoldenDict подвергает текст транскрипции дополнительным преобразованиям, вследствие которых в нём заменяются некоторые символы. Например, так в GoldenDict будет выглядеть слово транскрипция, помещённое в зону действия [t] [/t]:
В истории тэга (см. ниже по тексту) объясняются причины этого явления, а также приведена таблица, где перечислены все символы, подвергающиеся замене.
История: Использование тэга наблюдается в словарях Lingvo 5. Начиная с Lingvo 8 мы видим его активное использование в декомпилированных DSL системных словарей: при этом в DSL x3–x6 содержимое тэга читается без затруднений, а в DSL 8–12 его составляют «кракозябры». Причина: для отображения транскрипции в Lingvo используется особый шрифт, в связи с чем историю тэга можно условно разделить на 3 этапа.
Этап 1й: Lingvo 5–7. Программа работает с 8-битной кодировкой ANSI. Дистрибутивы укомплектованы шрифтами LingvoSansSerif и LingvoOEM: 1й для отображения карточек, 2й — транскрипции. При их сравнении видно: некоторые ячейки LingvoOEM вместо стандартных для кодировки Windows 1251 символов заполнены другими, фонетическими (в частности весь диапазон C0–FF, отведённый в ANSI под кириллицу). На их местах мы и видим «кракозябры», когда просматриваем такой текст без LingvoOEM. Шрифт т.о. имеет свою уникальную кодировку, условно называемую ANSI DSL (это наименование встречается, однако неизвестно, откуда оно взялось). Но помимо шрифта с особой кодировкой Lingvo, по-видимому, производит над текстом транскрипции ещё дополнительные преобразования (алгоритм которых неизвестен, однако это явствует из смещения кодов символов относительно кодов их адресатов в шрифте).
Этап 2й: Lingvo 8–12. Программа переходит на работу с Unicode, однако для отображения транскрипции по-прежнему используется шрифт с особой кодировкой. Дистрибутивы этих версий укомплектованы только LingvoOEM, который постепенно эволюционирует — к версии 12 в нём появляются дополнительные фонетические символы взамен стандартных. Кодировка декомпилированных DSL может быть как Unicode, так и ANSI, а кодировка текста транскрипции в них уникальна — ANSI DSL — и без использования особого шрифта выглядит «кракозябрами».
Этап 3й: Lingvo x3–x6. Программа полностью переходит на работу с Unicode. Особый LingvoOEM сменяется особым юникодным NewtonPhonetABBYY.ttf. Впрочем, его «особость» уже не та, что у предшественника: никаких уникальных кодировок он не использует, а отличается лишь начертанием. Этот шрифт — версия известной гарнитуры Newton от Paratype, по заказу ABBYY урезанная до диапазонов, необходимых для отображения транскрипции. Важно: во всех системных словарях x3 текст транскрипции перекодирован из уникальной ANSI DSL в стандартный Unicode, т.о. для его корректного отображения уже ничего дополнительно не требуется.
За время активности Lingvo декомпилированные DSL словари успели широко разойтись по сети, и на руках у пользователей осели две их разновидности: с транскрипцией в ANSI DSL («кракозябровой») и в Unicode. Последствием этого стало то, что теперь каждый новый разработчик, берущийся за поддержку DSL, ставится перед выбором: какую ветку тэга [t] ему поддерживать.
Автор GoldenDict, к примеру, выбрал поддержку ветки 1го и 2го этапов развития («кракозябровой»), и создал механизм конвертации текста транскрипции в ANSI DSL (см. его исходный код), в ходе которой символы из колонки серого цвета заменяются на парные им из голубой:
0x0027 | ' | ˈ | 0x00AC | ¬ | d | 0x040A | Њ | ŋ | 0x0455 | ѕ | ǐ |
0x0030 | 0 | β | 0x00AD | | n | 0x040B | Ћ | Ө | 0x0456 | і | j |
0x0031 | 1 | ẽ | 0x00AE | ® | l | 0x040C | Ќ | u | 0x0457 | ї | ɥ |
0x0032 | 2 | ɜ | 0x00B0 | ° | k | 0x040E | Ў | i | 0x0458 | ј | œ |
0x0033 | 3 | ĩ | 0x00B1 | ± | g | 0x040F | Џ | ʃ | 0x045E | ў | e |
0x0034 | 4 | õ | 0x00B5 | µ | a | 0x0428 | Ш | a | 0x0490 | Ґ | m |
0x0036 | 6 | ʎ | 0x00B6 | ¶ | ʊ | 0x0441 | с | ɲ | 0x0491 | ґ | ɛ |
0x0037 | 7 | ɣ | 0x00B7 | · | ã | 0x0442 | т | ɔ̃ | 0x2018 | ‘ | ɑ |
0x0038 | 8 | ǝ | 0x0402 | Ђ | iː | 0x0443 | у | ø | 0x201A | ‚ | ɔ |
0x003A | : | ː | 0x0403 | Ѓ | ɑː | 0x0445 | х | ɛ̃ | 0x201E | „ | ə |
0x00A0 | ʧ | 0x0404 | Є | z | 0x0446 | ц | ç | 0x2020 | † | ə | |
0x00A4 | ¤ | b | 0x0405 | Ѕ | œ̃ | 0x044C | ь | ɑ̃ | 0x2021 | ‡ | æ |
0x00A6 | ¦ | w | 0x0406 | І | h | 0x044D | э | ɪ | 0x2026 | … | ʌ |
0x00A7 | § | f | 0x0407 | Ї | r | 0x044F | я | ɒ | 0x2030 | ‰ | ð |
0x00A9 | © | s | 0x0408 | Ј | p | 0x0452 | ђ | v | 0x2039 | ‹ | dʒ |
0x00AB | « | t | 0x0409 | Љ | ʒ | 0x0453 | ѓ | uː | 0x20AC | € | ɔ |
Создателям новых DSL-словарей подобает учитывать этот факт, и если их детище ориентировано на подключение к GoldenDict, необходимо позаботиться о том, чтобы в зону действия тэга [t] [/t] не попали символы, находящиеся под прицелом ANSI DSL.
Тэг [*]…[/*]
Назначение: Выделение текcта вспомогательного значения. Согласно официальной терминологии Lingvo: «текст вторичного отображения». Вспомогательным считается текст, содержащий информацию факультативную, второстепенную по отношению к основному переводу или толкованию. Программными средствами такой текст может быть скрыт или отображён по требованию пользователя.
Использование: В теле словарных статей. Также допускается использование в заголовках.
В заголовках необходимо скрывать дескрипторы при помощи команды несортируемой части {…}, иначе они отобразятся как обычный текст в списке найденных слов. Скрывают также и всю область тэга, чтобы не перегружать список вторичной информацией.
Отображение в карточках: Переключение отображения вспомогательного текста [*] осуществляется специальной кнопкой, а также комбинацией клавиш Ctrl+*. Начальное отображение при открытии карточки определяется соответствующей опцией в диалоге настроек Lingvo.
В текущей версии Lingvo (x6) вспомогательный текст дополнительно выделяется цветом, по умолчанию серым [gray]. Цвет можно поменять в диалоге настроек Lingvo, однако здесь может возникнуть недоумение из-за того, что отвечающая за это настройка названа Examples:
Термин Examples адресует нас к тэгу [ex], а не к [*]. Однако [ex] принадлежит к группе тэгов поисковой обработки, которые цветом не выделяются. Кроме того, в ранних версиях Lingvo (от 5 до 11) данная настройка именовалась Optional Text, что явно свидетельствует о её принадлежности к вспомогательному тексту. Вероятно, в названии Examples отразился принятый в системных словарях Lingvo обычай употреблять [ex] в паре с [*]. Не исключается также, что в Lingvo 12 при переименовании настройки была допущена ошибка.
Употребление вспомогательного текста :: Запись в DSL
мелкий [m1]1) ([i]малых размеров[/i]) small[/m] [m3][*]мелкие яблоки — small apples[/*][/m] [m3][*]мелкие черты лица — small features[/*][/m] [m1]2) ([i]состоящий из малых частиц[/i]) fine[/m] [m3][*]мелкий песок — fine sand[/*][/m] [m1]3) ([i]незначительный[/i]) small[/m] [m3][*]мелкие расходы — incidental / petty expenses, incidentals[/*][/m] [m3][*]мелкая кража — petty theft; [p]юр.[/p] petty larseny[/*][/m]
Анимация демонстрирует вид статьи выше в карточке при выключенном, а затем при включенном отображении вспомогательного текста.
Особенности: Тэг цвета [c] не срабатывает при взаимодействии с [*] где бы он ни располагался, внутри или снаружи, т.е. в случаях [*][c] [/c][/*] и [c][*] [/*][/c] применение [c] будет проигнорировано, а содержимое отобразится цветом серым, а не зелёным, как того требует [c].
С тэгом [*] хорошо взаимодействуют тэги начертания [b], [i] и [u]. Они могут располагаться как внутри зоны действия тэга, так и снаружи, и в обоих случаях срабатывают.
Часть заголовка, заключенная в [*] [/*], также будет скрываться и показываться при переключении отображения вспомогательного текста (упомянутой кнопкой или сочетанием клавиш).
DSL Compiler при компилировании словаря автоматически добавляет пробел перед открывающим дескриптором [*]. Этот факт следует учитывать при составлении словарей, чтобы избежать нечаянного появления лишних пробелов.
Замечания: В системных словарях Lingvo к вспомогательному тексту принято причислять конструкции дочерних статей @.
В пользовательских словарях данный тэг часто используется в сочетании с [ex] и [i] для оформления примеров: [*][i][ex] [/ex][/i][/*].
История: Использование тэга наблюдается в словарях Lingvo 5. Первое упоминание о нём в официальной документации появляется в Lingvo 6.
Команда @
Назначение: Создание блока дочерних статей. Согласно официальной терминологии Lingvo: «вложенная (под)карточка». Дочерней называется статья, располагающаяся внутри другой, родительской статьи.
Использование: Только в теле словарных статей.
Общая информация: В тело словарной статьи могут быть помещены другие статьи, одна или несколько. Такие статьи могут быть названы дочерними, вложенными или подстатьями (подкарточками). Обычно они содержат употребительные выражения или словосочетания, в которых используется заглавное слово родительской (корневой) статьи. Подобно обыкновенной статье, дочерняя также имеет свой заголовок и тело. При выводе на экран карточки родительской статьи в ней отображается только заголовок дочерней подстатьи. Он выделяется цветом, назначенным в настройках программы для ссылок. По щелчку на таком заголовке в новом окошке (или вкладке) открывается карточка с содержимым подстатьи вместе с её заголовком.
Заголовок подстатьи отображается также в списке заглавных слов основного окна программы. На примере ниже в списке заголовков первый, выделенный заголовок little принадлежит родительской статье, а остальные — дочерним.
При обращении к заголовку подстатьи через данный список (или переводе соответствующего словосочетания через буфер обмена) на экран выводится карточка с заголовком и телом подстатьи.
Синтаксис: Команда употребляется только в сочетании с предшествующим пробелом или табуляцией, и может располагаться только в начале строки (на первой позиции строки). Другие варианты употребления символа эт @ (если только он не экранирован) приведут к ошибке компилятора Prohibited sub-entry symbol "@".
Будучи частью тела родительской статьи, все строки дочерних подстатей должны начинаться с символов табуляции или пробела (одного или нескольких).
Для создания заголовка подстатьи необходимо поставить символ эт @. Затем к нему, через пробел или без пробела, примыкает заголовочное слово(сочетание).
Тело подстатьи начинается со следующей, после эт-заголовка, строки и оформляется аналогично строкам обыкновенных статей. Заголовок и тело следующей подстатьи оформляются по той же схеме, в той же последовательности.
Для завершения всего блока подстатей необходимо поставить закрывающий дескриптор: символ эт @, стоящий обособленно на отдельной строке (разумеется с предшествующим пробелом или табуляцией).
Дочерние статьи :: Запись в DSL
little [m1]1) маленький[/m] [m3][*] @ little one малыш @ [/*][/m] [m1]2) немного, мало[/m] [m1]3) пустяк, мелочь[/m] [m3][*] @ little by little мало-помалу, постепенно @ [/*][/m]
Дочерние статьи :: Вид в словарной карточке
3) пустяк, мелочь
Особенности: К заголовкам дочерних статей применимы правила синтаксиса заголовков обыкновенных статей, кроме одного: обыкновенные заголовки располагаются в самом начале строки, а дочерние — после пробела или табуляции. В дочерних заголовках действуют команды альтернативной (…) и несортируемой {…} части.
Если блок подстатей размещается в зоне действия тэгов отступа [m] и/или вспомогательного текста [*], то необходимо соблюдать следующее правило. Закрывающий дескриптор @ должен располагаться обособленно, на отдельной строке, а закрывающие дескрипторы обрамляющих тэгов должны быть перемещены на следующую за ним строку. К примеру, запись @[/m] является неправильной и приведёт к ошибке во время компилирования, дескриптор [/m] в данном случае нужно переместить на строку ниже.
Замечания: В системных словарях Lingvo блоки дочерних статей принято помещать в зону вспомогательного текста.
Чтобы предотвратить специальную обработку символа эт @ и литерально отобразить его в словарной карточке, нужно его экранировать: \@.
История: Команда, по-видимому, употребляется в Lingvo начиная с самых первых версий. Первое упоминание о ней встречается в демонстрационном, пользовательском словарике к Lingvo 4.