Тэги словарной структуры

Тэг [p]…[/p]

Тэг [t]…[/t]

Тэг [*]…[/*]

Команда @

Тэг [p]…[/p]

Назначение: Выделение помет. Пометы — это краткие обозначения, ссылающиеся на более развёрнутые пояснения. В DSL словарях к этой категории причисляются: условные сокращения, аббревиатуры, указатели на характерные признаки слова или его употребления.

Этимология: p — возможно сокращение от англ. phrase (выражение, как синоним англ. expression — сокращение).

Использование: В теле словарных статей и заголовках.

В заголовках необходимо скрывать дескрипторы при помощи команды несортируемой части {…}, иначе они отобразятся как обычный текст в списке найденных слов. Скрывают также и всю область пометы, поскольку её отображение в списке зачастую неуместно.

Отображение в карточках: Щелчок по помете или наведение на неё курсора мыши вызывают всплывающую подсказку с поясняющим текстом — это основная функция пометы. Помимо этого визуально помета выделяется начертанием и цветом. По умолчанию начертание — наклонное, а цвет — зелёный [green]. Цвет можно поменять в диалоге настроек программы: ToolsOptions…Entry Window ViewColours: 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]

Пример использования тэга помет :: Вид в словарной карточке

Пример (Ru-Ru)
Слово о полку Игореве
выдающийся памятник др.-рус. лит. конца XII в. В основе сюжета — неудачный половецкий поход Игоря Святославича (1185).
См. тж. Игорь Святославич

Тэг [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 (95: 0020–007E); Latin-1 Supplement (96: 00A0–00FF); Latin Extended-A (113/128: 0100–017E) Latin Extended-B (53/208: 0181–022B); IPA extensions (89/96: 0250–02A8); Spacing Modifier Letters (37/80: 02B0–02E9); Combining Diacritical Marks (112: 0300–036F); General Punctuation (45/111: 200E–2044); Box Drawing (40/128: 2500–256C); Alphabetic Presentation Forms (46/58: FB00–FB4F); а также одиночные символы из диапазонов: Greek and Coptic (5/135); Cyrillic (3/256); Latin Extended Additional (10/256); Superscripts and Subscripts (19/42); Currency Symbols (2/33); Letterlike Symbols (3/80); Number Forms (13/60); Arrows (7/112); Mathematical Operators (18/256); Miscellaneous Technical (4/256); Block Elements (8/32); Geometric Shapes (11/96); Miscellaneous Symbols (12/256).

Символы, размещённые в зоне действия [t] [/t], но не входящие в перечисленные диапазоны, будут отображены шрифтом текста карточек (назначенным в настройках), иными словами, визуально не будут отличаться от окружающего текста.

Особенности: Размещение других тэгов в зоне действия [t] [/t] не разрешается: к примеру, запись [t][c]'erə[/c][/t] вызовет ошибку при компилировании.

Транскрипция :: Запись в DSL

decentralization
	[m1]\[[t]diːˌsentr(ə)laɪ'zeɪʃ(ə)n[/t]\][/m]
	[m1]децентрализация[/m]

Транскрипция :: Вид в словарной карточке

Пример (En-Ru)
decentralization
[diːˌsentr(ə)laɪ'zeɪʃ(ə)n]
децентрализация

Тэг [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 Ђ 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
0x00AB « t 0x0409 Љ ʒ 0x0453 ѓ 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]

Дочерние статьи :: Вид в словарной карточке

Пример (En-Ru)
little
1) маленький
- little one
2) немного, мало
3) пустяк, мелочь
- little by little

Особенности: К заголовкам дочерних статей применимы правила синтаксиса заголовков обыкновенных статей, кроме одного: обыкновенные заголовки располагаются в самом начале строки, а дочерние — после пробела или табуляции. В дочерних заголовках действуют команды альтернативной (…) и несортируемой {…} части.

Если блок подстатей размещается в зоне действия тэгов отступа [m] и/или вспомогательного текста [*], то необходимо соблюдать следующее правило. Закрывающий дескриптор @ должен располагаться обособленно, на отдельной строке, а закрывающие дескрипторы обрамляющих тэгов должны быть перемещены на следующую за ним строку. К примеру, запись @[/m] является неправильной и приведёт к ошибке во время компилирования, дескриптор [/m] в данном случае нужно переместить на строку ниже.

Замечания: В системных словарях Lingvo блоки дочерних статей принято помещать в зону вспомогательного текста.

Чтобы предотвратить специальную обработку символа эт @ и литерально отобразить его в словарной карточке, нужно его экранировать: \@.

История: Команда, по-видимому, употребляется в Lingvo начиная с самых первых версий. Первое упоминание о ней встречается в демонстрационном, пользовательском словарике к Lingvo 4.