Пользовательский интерфейс словаря и разметка
В этой главе описываются пользовательский интерфейс для Dictionary Services и определяет элементы и атрибуты, которые Вы используете для повышения в цене содержания словаря. Схема словаря приспосабливает RELAX определению NG (http://www .relaxng.org/). Вы определяете структуру словаря путем повышения содержания с помощью тегов XHTML и тегов, определяющихся Dictionary Services.
Пользовательский интерфейс словаря
Словари являются полезными ссылками, служащими многим целям. Самым типичным является для пользователей к поиску значение слова на определенном языке. Однако, можно создать содержание для тезауруса, двуязычные словари (такой столь же англо-японский), внутренние глоссарии и профессиональные словари (такой как законный, медицинский, и технический). OS X включает приложение Словаря для обеспечения пользователей цифровым доступом к содержанию, связывающемуся согласно инструкциям, предоставленным в этой книге.
Рисунок 1-1 показывает, что запись из словаря MyDictionary для слова делает. Словарь MyDictionary создавался с помощью Комплекта разработчика Словаря. Поскольку Вы читаете остальную часть этой главы, Вы будете видеть, как к тексту разметки с помощью XHTML для создания записи, произношения, определений, примеров использования, фраз, и т.д. которые появляются в этом числе.
Словарная статья не ограничивается текстом. Можно включать другие ресурсы, такие как изображения (см. рисунок 1-2), фильмы, звуки и гиперссылки к веб-страницам.
Можно структурировать словарь для уважения пользовательских настроек родительского контроля. (Родительский контроль установлен в Установках системы пользователями администратора для ограниченных пользователей.) При помощи надлежащего тега, как Вы будете видеть далее в этой главе, можно подавить записи или определенные части записи. Рисунок 1-3 показывает ту же запись, показанную на рисунке 1-1, но, как видится пользователь, которому включили родительский контроль. Часть фраз записи отмечена с тегом родительского контроля, подавляющим его дисплей.
Вы можете также записи разметки с тегами приоритета для управления глубиной информации, которую это показано. Рисунок 1-4 показывает ту же запись как рисунок 1-1, но на сей раз оба родительского контроля и приоритетные настройки подавляют содержание. Предложения использования, показанные на рисунке 1-1, тегируются с приоритетом, устанавливающим, который заставляет их не быть выведенными на экран на рисунке 1-4.
В дополнение к использованию приложения Словаря пользователи могут получить доступ к словарным статьям из приложения щелкающим по управлению выделенным текстом. Затем в контекстном меню, появляющемся, пользователь может выбрать Look Up in Dictionary, как показано на рисунке 1-5.
Окно Dictionary открывается для показа результатов поиска выделенного текста в активных словарях. Посмотрите рисунок 1-6.
Разметка словаря
Вы определяете структуру словаря путем повышения его содержания с элементами разметки XHTML and Dictionary Services (элементы, атрибуты, обработки инструкций, комментариев, и т.д).
XHTML. Можно использовать любую разметку XHTML за исключением определенных в модуле Структуры. Можно найти DTD для модулей XHTML на этом веб-сайте:
http://www .w3.org/TR/xhtml-modularization/dtd_module_defs.html#a_dtd_module_defs
Dictionary Services. Некоторая разметка определяет структуру словаря. Другая разметка присоединяет определенную функциональность или семантику к элементам XHTML. Посмотрите Разметку Dictionary Services.
Разметка служб словаря
Этот раздел определяет элементы разметки, которые являются определенными для Dictionary Services. Пространство имен по умолчанию относится к XHTML. Префикс пространства имен d
идентифицирует элементы и атрибуты, которые являются определенными для Dictionary Services.
Содержание словаря
%dic.content
определяет элемент, который может использоваться в различных местах.
Это %Flow.mix;
поскольку XHTML делает. Flow.mix
тег включает все текстовое содержание, блок и встроенные элементы.
<!ENTITY % dic.content |
"( #PCDATA | %Flow.mix; )*" |
> |
<!-- %Flow.mix; includes all text content, block and inline --> |
<!ENTITY % Flow.mix |
"%Heading.class; |
| %List.class; |
| %Block.class; |
| %Inline.class; |
%Misc.class;" |
> |
Корневой элемент словаря
d:dictionary
определяет корневой элемент словаря, содержащего одну или более записей.
<!ELEMENT d:dictionary ( d:entry+ ) > |
Запись
d:entry
содержит один или несколько индексов и часть тела, и создает логическую структуру словарной статьи.
<!ELEMENT d:entry ( d:index+, %dic.content;) > |
<!ATTLIST d:entry |
id ID #REQUIRED |
d:title NMTOKEN #REQUIRED |
d:parental-control ( 1 ) #IMPLIED |
> |
Атрибуты:
id
ID записи. Значение должно быть уникальным в словаре.d:title
Заголовок является текстом, представляющим запись. Это должно представлять запись или быть канонической формой записи. Можно использовать этот текст в качестве заголовка окна, выводящего на экран запись. Можно также использовать его для заполнения поля искомого текста приложения Словаря.d:parental-control
Уровень родительского контроля указывает ограниченную часть записи. Значение этого атрибута должно быть «1». Когда функция родительского контроля активна, записи, имеющие этот атрибут, не ищутся и не появляются в списке результата поиска.
Индекс
d:index
определяет информацию, чтобы извлечь из записи и использовать для создания индекса. Индексный элемент должен появиться до других элементов в записи.
<!ELEMENT d:index EMPTY > |
<!ATTLIST d:index |
d:value NMTOKEN #REQUIRED |
d:title NMTOKEN #REQUIRED |
d:parental-control NMTOKEN #IMPLIED |
d:anchor NMTOKEN #IMPLIED |
d:yomi NMTOKEN #IMPLIED |
> |
Атрибуты:
d:value
Текст ключа поиска для записи.d:title
Текст, выведенный на экран в списке результата поиска. Это может использоваться в качестве заголовка окна, выводящего на экран запись.d:parental-control
Удаляет заголовок из списка результата поиска. Посмотрите Родительский контроль и Приоритет.d:anchor
Выделяет определенную часть в записи, такой как объяснение идиоматической фразы.d:yomi
Используемый только для японских словарей.
Например, следующие записи для «делают», указывает, что поиск с помощью или делает, делает, или составленный возврат завещания делает в результате.
<d:index d:value="make" d:title="make"/> |
<d:index d:value="makes" d:title="makes"/> |
<d:index d:value="made" d:title="made"/> |
<d:index d:value="make it" d:title="make it" d:parental-control="1" d:anchor="xpointer(//*[@id='make_it'])"/> |
Gaiji
d:gi
определяет символы, которые не доступны в Unicode или для которого платформа не имеет данных глифа. Можно также использовать этот элемент для указания шрифта, содержащего специальные символы. Используйте gi
элемент как встроенный элемент.
<!ENTITY % inline.extra "| d:gi"> |
<!ELEMENT d:gi (#PCDATA) > |
<!ATTLIST d:gi |
d:set NMTOKEN #IMPLIED |
d:name NMTOKEN #IMPLIED |
d:ps-font-name NMTOKEN #IMPLIED |
> |
Атрибуты:
d:set
Глиф определил имя. Только один поддерживается, «AdobeJapan1».d:name
Число CID (Символьный Идентификатор)d:ps-font-name
Имя шрифта PostScript.
Например:
<d:gi d:set="AdobeJapan1" d:name="6930">邉</d:gi> # One of the character variants |
<d:gi d:ps-font-name="Webdings"></d:gi> # Airplane symbol |
Выделение
Можно выделить часть записи с помощью d:anchor
атрибут d:index
тег. Значение d:anchor
должно быть выражение XPath, указывающее блок в записи в выделение. id
то, что Вы предоставляете, должно быть уникальным.
Например, d:anchor
атрибут в следующем:
<d:entry id="make_1" d:title="make"> |
... |
<d:index d:value="make it" d:parental-control="1" d:anchor="xpointer(//*[@id='make_it'])"/> |
заставляет эту часть записи быть выделенной:
<div id="make_it"><b>make it</b> : succeed in something; survive.</div> |
Родительский контроль и приоритет
d:parental-control
идентифицирует содержание, которое не должно быть показано для пользователей, которым включили родительский контроль. (Родительский контроль включен в Установках системы.)
<!ATTLIST div d:parental-control NUMBER #IMPLIED > |
<!ATTLIST span d:parental-control NUMBER #IMPLIED > |
<!ATTLIST entry d:parental-control NUMBER #IMPLIED > |
<!ATTLIST d:index d:parental-control NUMBER #IMPLIED > |
Значение всегда 1
.
d:entry
тег может иметь этот атрибут. Записи, имеющие этот атрибут, не появляются в списке результата поиска.
d:priority
скрывает часть содержания для обеспечения более краткого содержания. Это обычно используется для результатов, выведенных на экран в окне Dictionary.
<!ATTLIST div d:priority NUMBER #IMPLIED > |
<!ATTLIST span d:priority NUMBER #IMPLIED > |
Значение может быть в диапазоне 0
к 9
, включительно. Содержание, имеющее приоритетное значение, больше, чем 1
не выведен на экран в окне Dictionary. Поведение определяется только для 0
и 2
. Все другие значения резервируются для будущего использования.
Dictionary Services применяет соблюдающие правила к содержанию с d:parental-control
и d:priority
теги. (Обратите внимание на то, что эти правила являются частью RELAX определение NG.)
Если Вы не указываете родительский контроль или тег приоритета для элемента, значение, как предполагается,
0
.Элемент, не имеющий родительского контроля или тега приоритета, наследовал значение своего родительского элемента.
Дочерний элемент может иметь родительский контроль или тег приоритета, значение которого равно или больше, чем значение того из его родителя. Если дочерний элемент имеет родительский контроль или тег приоритета, значение которого меньше, чем его родитель, значение родителя применяется. Другими словами, если родительский элемент не показан, ни один не дочерний элемент. Но если родительский элемент показан, можно скрыть дочерний элемент.
Произношение
pr
отмечает произношение записи. Вы не предоставляете a value
припишите, потому что все значения приемлемы.
<!ATTLIST div d:priority NMTOKEN #IMPLIED > |
<!ATTLIST span d:priority NMTOKEN #IMPLIED > |
Например:
<h1>make</h1> |
<span class="syntax"><span d:pr="1">| māk |</span></span> |
Можно использовать этот тег для переключения нотации произношения согласно специфичным для словаря предпочтениям.
Ссылка
Можно реализовать гипертекстовую ссылку следующим образом:
<h3>PHRASES</h3> |
... |
<h4><a href="x-dictionary:r:make_up_ones_mind"><b>make up one's mind</b></a></h4> |
Когда пользователь щелкает по ссылке, она переходит к следующей словарной статье, ID которой make_up_ones_mind
:
<d:entry id="make_up_ones_mind" d:title="make up one's mind" d:parental-control="1"> |
<d:index d:value="make up one's mind"/> |
<h1>make up one's mind</h1> |
<ul> |
<li> |
make a decision. |
</li> |
</ul> |
</d:entry> |
Для других изменений см. Схему URI.
Схема URI
x-dictionary:
схема URI, описывающая перекрестные ссылки между записями в словарях. Это используется в теге такой как <a href="x-dictionary:r:another_id">
.
x-dictionary:
URI содержит три элемента, разделенные двоеточиями, поскольку общая форма — предназначается для селектора, целевого текста, и словарь связывает ID. Целевой селектор должен быть также d
(для определения) или r
(для ссылки). Использовать d
если Вы хотите искать определения следующего ключевого текста. Использовать r
если Вы хотите обратиться к записи, указанной ссылочным ID, который должен быть уникален для каждого словаря.
x-dictionary:d:key_text:dict_bundle_id |
x-dictionary:r:reference_id:dict_bundle_id |
Пакет словаря ID может быть опущен в обеих формах, как показано в следующих строках. Если это опущено, Dictionary Services ищет целевой текст во всех активных словарях.
x-dictionary:d:key_text |
x-dictionary:r:reference_id |
Yomi
d:yomi
припишите отмечает японский Yomi.
Для получения дополнительной информации на Yomi и маркировке содержание Yomi в японском словаре, посмотрите Создание японского Словаря.