Создание словарей
До создавания словаря необходимо создать исходный файл словаря, подготовить таблицу стилей, отредактировать файл списка свойств и добавить любые ресурсы, необходимые словарю. Эта глава объясняет, как выполнить эти задачи, обеспечивает инструкции для создавания Вашего словаря и показывает несколько простых примеров. Вы также узнаете, как создать японский словарь, установить предпочтения и добавить переднюю сторону и аппарат.
Подготовка исходных данных и создавание словаря
Прежде чем Вы начнете подготавливать свои исходные данные, скопируете project_template
папка от комплекта разработчика до каталога, который Вы используете для разработки кода. Затем следуйте инструкциям, описанным в следующих разделах:
Подготовка содержания словаря
Смотрите на MyDictionary.xml
файл обеспечил в шаблоне проекта. Ваш словарь должен следовать за этой формой, с помощью кодирования UTF-8. Можно изменить имя файла на что-то другое, чем MyDictionary
, но если Вы изменяете имя, необходимо отредактировать DICT_SRC_PATH
переменная в make-файле.
Пользовательский интерфейс словаря и Разметка), описывает XML-схему, которую необходимо использовать для разработки словаря. Схема использует RELAX язык схемы NG, описанный на этом веб-сайте:
Необходимо проверить источник словаря до создавания нового словаря, можно использовать RELAX программы блоков проверки допустимости NG, которые доступны от этого веб-сайта:
http://www .relaxng.org/#validators
Можно также проверить XML, использующий jing следующим образом:
$ java -jar <path to jing.jar> <schema definition> <XML to validate> |
От project_template папки, с jing, расположенным в../jing/, командная строка следующие:
$ java -jar ../jing/bin/jing.jar ../documents/DictionarySchema/AppleDictionarySchema.rng MyDictionary.xml |
Для получения дополнительной информации о jing см.:
Подготовка таблицы стилей
Можно подготовить таблицу стилей для использования для содержания словаря путем редактирования MyDictionary.css
файл обеспечил шаблоном проекта. Если Вы изменяете имя этого css файла, необходимо отредактировать CSS_PATH
переменная в make-файле.
Необходимо минимально отредактировать таблицу стилей. Приложение Словаря и управление окном Dictionary используют их собственные определения стилей, чтобы гарантировать, чтобы содержание соответствовало дисплею. Для лучших результатов не указывайте абсолютный шрифт или размер шрифта.
Редактирование файла списка свойств
Файл списка свойств для словаря является текстовым файлом XML. Шаблон проекта содержит файл в качестве примера —MyInfo.plist
— чье содержание показано в Перечислении 2-1. Можно отредактировать этот файл так, чтобы он содержал записи, подходящие для словаря. Таблица 2-1 объясняет значения, что необходимо предусмотреть словарь.
Перечисление 2-1 пример файла списка свойств для словаря
<key>CFBundleDevelopmentRegion</key> |
<string>English</string> |
<key>CFBundleDisplayName</key> |
<string>My Dictionary</string> |
<key>CFBundleIdentifier</key> |
<string>com.apple.dictionary.MySample</string> |
<key>CFBundleName</key> |
<string>MyDictionary</string> |
<key>CFBundleShortVersionString</key> |
<string>1.0</string> |
<key>DCSDictionaryCopyright</key> |
<string>Copyright (c) Apple Computer, Inc.</string> |
<key>DCSDictionaryManufacturerName</key> |
<string>Apple Computer, Inc.</string> |
Если Вы изменяете имя файла списка свойств, необходимо отредактировать PLIST_PATH
переменная в make-файле.
Ключ | Значение |
---|---|
| Область |
| Полное имя дисплея словаря. Значение по умолчанию должно использовать имя файловой системы. |
| Идентификатор пакета словаря; укажите уникальный идентификатор. |
| Короткое имя дисплея словаря. |
| Версия словаря. |
| Уведомление об авторском праве словаря. |
| Имя производителя словаря. |
Добавление необходимых ресурсов словарем
Необходимо поместить любые ресурсы (например, изображения), в котором словарь нужен в папке OtherResources в project_template
папка. Когда Вы создаете словарь, ресурсы копируются в созданный словарь.
Например, если Ваш словарь использует имя файла образа test.png
, необходимо поместить его в следующее расположение:
project_template/OtherResources/Images/test.png
Папка изображений копируется в словарь. Когда для словаря нужно изображение, он использует для относительного пути —Images/test.png
— который записан в XML-файл во время процесса сборки.
Подготовка make-файла
Назовите свой словарь и затем отредактируйте DICT_NAME
переменная в make-файле. Это имя используется в качестве имени папки для словаря. Например, когда DICT_NAME = “My Dictionary”
, созданный словарь My Dictionary.dictionary
.
Если Вы изменяете местоположение Комплекта разработчика Словаря от /Developer/Extras/Dictionary Development Kit
, необходимо изменить DICT_BUILD_TOOL_DIR
переменная в make-файле для отражения изменения.
Создавание словаря
Для создавания словаря выполните эти шаги:
Запустите Терминальное приложение.
Используйте
cd
команда для изменения на надлежащее расположение:/Developer/Extras/Dictionary Development Kit
Войти
make
.После того, как сделать процесс заканчивается успешно, тип делают установку для копирования нового словаря в:
~/Library/Dictionaries/
После выполнения make install
команда, можно удалить все промежуточные файлы в папке объектов. В Окне терминала войдите, делают чистыми для удаления папки объектов.
Теперь можно запустить приложение Словаря и протестировать новый словарь.
Как Вы видите от рассмотрения make-файла, процесс здания использует сценарий build_dict.sh
, расположенный в /Developer/Extras/Dictionary Development Kit/bin
. Этот сценарий берет 4 параметра —dictionary_name
, dictionary_source_path
, StyleSheet_path
, и InfoPlist_path
. Это создает новый каталог в /objects
папка.
One-Word Dictionary Example
Yomi показывает простой пример словаря, содержащего запись для слова, делают. Это похоже на рисунок 1-1, открыто с помощью приложения Словаря.
Перечисление 2-2 словарь с одним словом
<?xml version="1.0" encoding="UTF-8"?> |
<d:dictionary xmlns="http://www.w3.org/1999/xhtml" xmlns:d="http://www.apple.com/DTDs/DictionaryService-1.0.rng"> |
<d:entry id="make_1"> |
<d:index d:value="make" d:title="make"/> |
<d:index d:value="makes" d:title="makes (make)"/> |
<d:index d:value="made" d:title="made (make)"/> |
<d:index d:value="making" d:title="making (make)"/> |
<h1>make</h1><span class="syntax">| māk |</span> |
<div> |
<ol> |
<li> |
Form by putting parts together or combining substances; construct; create; produce |
<span d:priority="2"> : <i>Mother made her a beautiful dress</i> |
</span> |
. |
</li> |
<li> |
Cause to be or become |
<span d:priority="2"> : <i>The news made me happy</i> |
</span> |
. |
</li> |
</ol> |
</div> |
<div d:parental-control="1" d:priority="2"> |
<h3>PHRASES</h3> |
<div id="make_it"><b>make it</b> : succeed in something; survive.</div> |
<h4><a href="x-dictionary:r:make_up_ones_mind"><b>make up one's mind</b></a></h4> |
</div> |
</d:entry> |
</d:dictionary> |
Пример словаря акронима
Перечисление 2-3 показывает, как тегировать следующее содержание для создания словаря акронима.
LDAP, облегченный протокол доступа к каталогам
MIDI, цифровой интерфейс музыкальных инструментов
XML, расширяемый язык разметки
Перечисление 2-3 словарь акронима
<?xml version="1.0" encoding="UTF-8"?> |
<d:dictionary xmlns="http://www.w3.org/1999/xhtml" xmlns:d="http://www.apple.com/DTDs/DictionaryService-1.0.rng"> |
<d:entry id="ldap"> |
<d:index d:value="LDAP" d:title="LDAP"/> |
<h1>LDAP</h1> |
<p>Lightweight Directory Access Protocol</p> |
</d:entry> |
<d:entry id="midi"> |
<d:index d:value="MIDI" d:title="MIDI"/> |
<h1>MIDI</h1> |
<p>Musical Instrument Digital Interface</p> |
</d:entry> |
<d:entry id="xml"> |
<d:index d:value="XML" d:title="XML"/> |
<h1>XML</h1> |
<p>Extensible Markup Language</p> |
</d:entry> |
</d:dictionary> |
Добавление передней стороны и аппарата к словарю
Можно добавить переднюю сторону и аппарат к словарю путем выполнения этих шагов:
Можно просмотреть переднюю сторону и аппарат для словаря с помощью приложения Словаря. В меню Go выберите Front/Back Matter.
Подготовьте запись к передней стороне и аппарату
В XML-файле для словаря необходимо указать запись переднего аппарата с помощью id
припишите, чье значение установлено в front_back_matter
как показано в следующем простом примере:
<d:entry id="front_back_matter" d:title="Front/Back Matter"> |
<h1><b>My Dictionary</b></h1> |
<h2>Front/Back Matter</h2> |
<p> |
This is a front matter page of the sample dictionary.<br/> |
</p> |
... |
</d:entry> |
Измените файл Info.plist
Необходимо изменить список свойств для словаря путем добавления DCSDictionaryFrontMatterReferenceID
ключ к Info.plist
файл. Присваиваемое значение является строкой, указывающей id
оцените Вас используемый в XML-файле. Следующее показывает, что строка, используемая в, Подготавливает Запись к Передней стороне и Аппарату.
<key>DCSDictionaryFrontMatterReferenceID</key> |
<string>front_back_matter</string> |
Добавьте элемент индекса (Необязательно)
Этот пример не использует a <d:index>
элемент, что означает, что страница не обнаружится в поиске. Если Вы хотите, чтобы передняя сторона и аппарат показали в поиске, добавьте<d:index>
элемент. Иначе, пользователи могут просмотреть переднюю сторону и аппараты путем выбора Go> Front/Back Matter из приложения Словаря.
Установка предпочтений словаря
У Вас есть опция установить предпочтения словаря. Пользователи получают доступ к предпочтительным настройкам из приложения Словаря путем выбора Dictionary> Preferences. Например, Новый Оксфордский американский Словарь, предоставленный OS X v10.5, позволяет пользователям выбирать из числа трех фонетических транскрипций — (Диакритический) английский язык США, английский язык США (IPA) или британский вариант английского языка (IPA).
Этот раздел показывает, как можно установить предпочтения словаря. Можно счесть файлы связанными с этим примером в Комплекте разработчика Словаря расположенный в:
/Developer/Extras/Dictionary Development Kit/samples/
Для реализации специфичных для словаря предпочтений выполните эти шаги:
Измените содержание словаря соответственно
Необходимо изменить содержание для поддержки предпочтений, которые Вы устанавливаете. Например, если Вы хотите позволить пользователю выбирать из числа трех фонетических транскрипций, необходимо обеспечить эти три фонетических транскрипции для каждой записи в нашем словаре. Следующий пример показывает три фонетических транскрипции для слова make
.
<d:entry id="make_1" d:title="make"> |
... |
<h1>make</h1> |
<span class="syntax"> |
<span d:pr="US">| māk |</span> |
<span d:pr="US_IPA">| meɪk |</span> |
<span d:pr="UK_IPA">| meɪk |</span> |
</span> |
... |
</d:entry> |
Обратите внимание на то, что XML не указывает который фонетическая транскрипция показать. Вы сделаете это в следующем разделе путем создания файла XSLT.
Подготовьте файл XSLT для применения к словарным статьям
Файлы XSLT содержат инструкции, что Dictionary Services применяется к каждой записи прежде, чем вывести на экран это. В этом примере необходимо обеспечить инструкции для удаления неиспользованной фонетической транскрипции. Для этого используйте $pronunciation
переменная, которая является предоставлением глобальной переменной приложением Словаря, как показано в следующем примере.
<xsl:template match="*[@d:pr='US']"> |
<xsl:if test="$pronunciation = '0'"> |
<xsl:copy> |
<xsl:apply-templates select="@*|node()" /> |
</xsl:copy> |
</xsl:if> |
</xsl:template> |
<xsl:template match="*[@d:pr='IPA']"> |
<xsl:if test="$pronunciation = '1'"> |
<xsl:copy> |
<xsl:apply-templates select="@*|node()" /> |
</xsl:copy> |
</xsl:if> |
<xsl:if test="$pronunciation = '2'"> |
<xsl:copy> |
<xsl:apply-templates select="@*|node()" /> |
</xsl:copy> |
</xsl:if> |
</xsl:template> |
<xsl:template match="*[@d:pr='US_IPA']"> |
<xsl:if test="$pronunciation = '1'"> |
<xsl:copy> |
<xsl:apply-templates select="@*|node()" /> |
</xsl:copy> |
</xsl:if> |
</xsl:template> |
<xsl:template match="*[@d:pr='UK_IPA']"> |
<xsl:if test="$pronunciation = '2'"> |
<xsl:copy> |
<xsl:apply-templates select="@*|node()" /> |
</xsl:copy> |
</xsl:if> |
</xsl:template> |
Реализуйте Предпочтительный Пользовательский интерфейс
Необходимо обеспечить файл XHTML, указывающий пользовательский интерфейс для представления в окне Dictionary Preferences в приложении Словаря. Следующий пример показывает, как установить предпочтения фонетической транскрипции. Пользователь рассмотрит три выбора, выведенный на экран как переключатели. После делания выбора Dictionary Services сохраняет это и передает выбор инструкциям XSLT. Инструкции тогда применяются к словарным статьям.
<html xmlns="http://www.w3.org/1999/xhtml"> |
<head> |
<meta http-equiv="content-type" content="text/html; charset=UTF-8" /> |
</head> |
<body> |
<div id="copyright"></div> |
<hr /> |
<div class="query"> |
<input type="hidden" name="version" value="1" /> |
</div> |
<div class="query"> |
Pronunciation:<br /> |
<input type="radio" name="pronunciation" value="0">US English (Diacritical)</input><br /> |
<input type="radio" name="pronunciation" value="1">US English (IPA)</input><br /> |
<input type="radio" name="pronunciation" value="2">British English (IPA)</input><br /> |
</div> |
</body> |
</html> |
Измените файл Info.plist
Необходимо добавить ключи к Info.plist
файл к индикации, что словарь имеет свои собственные предпочтения. Значения для этого примера показаны в следующей записи списка свойств. Необходимо изменить значения на, которые являются подходящими для словаря. Значения, ожидаемые для каждого из ключей, показаны в Таблице 2-2.
<key>DCSDictionaryDefaultPrefs</key> |
<dict> |
<key>pronunciation</key> |
<string>0</string> |
<key>version</key> |
<string>1</string> |
</dict> |
<key>DCSDictionaryPrefsHTML</key> |
<string>MyDictionary_prefs.html</string> |
<key>DCSDictionaryXSL</key> |
<string>MyDictionary.xsl</string> |
Ключ | Значение |
---|---|
| Ни один. Этот ключ указывает, что следуют пары ключ/значение для значений по умолчанию. |
| Имя файла XHTML |
| Имя файла XSLT |
Создание японского словаря
Японский язык имеет многократные классы символов — Hiragana, Katakana и Кандзи. Из-за этого японские слова часто имеют многократные представления. Кандзи использует идеографические символы; Hiragana и Katakana используют фонограммы. (Иностранные слова часто представляются с помощью Katakana. Также используются римские символы.) Слово Кандзи имеет свой Yomi, представляющий его чтение. Hiragana или Katakana обычно описывают Yomi.
Записи во многих японских словарях слова сортируются Yomi. В таких словарях пользователь вводит Yomi для поиска слов. Используя Yomi для Hiragana и Katakana не проблема, потому что это фонограммы, и нет многих из них. Но для Кандзи, это - проблема, потому что тот же Yomi может представлять различное Кандзи. Например, Yomi «かい» представляет много слов: 会, 界, 貝, 解, 階, 回, 介... 下位, 甲斐...
Пользователь, ищущий «かい», получает эти результаты:
かい 【会】
かい 【界】
かい 【貝】
かい 【解】
かい 【階】
かい 【回】
かい 【介】
...
かい 【下位】
かい 【甲斐】
...
Пользователь может выбрать надлежащую запись с помощью дополнительной части Кандзи.
Если поисковое слово является «くふう», результаты:
くふう 【工夫】
くふう 【句風】
Вот результаты поиска для “工夫". Yomi くふう и こうふ добавляются для выбора надлежащей записи.
工夫 【くふう】
工夫 【こうふ】
Необходимо отметить содержание Yomi в японском словаре с помощью d:yomi
атрибут. Отображения приложения Словаря d:title
и d:yomi
в надлежащем порядке в списке результатов поиска. Когда пользователь ищет использование Hiragana, Yomi появляется перед Кандзи. Когда пользователь ищет Кандзи использования, Yomi добавляется.
Для слов в японском словаре, имеющих многократные представления, значение, связанное с d:title
элемент может отличаться от значения, связанного с d:value
элемент. Чтобы гарантировать, что пользователи могут найти то, что они ищут, используйте d:yomi
атрибут с d:index
элемент.
В японском словаре запись Кандзи имеет и Kanji и Yomi как d:value
атрибут d:index
элемент. d:title
разметка в ее обычной форме:
<d:entry ... d:title="工夫"> |
<d:index d:value="くふう" d:title="工夫"/> |
<d:index d:value="工夫" d:title="工夫"/> |
... |
</d:entry> |
Можно добавить Yomi с помощью d:yomi
атрибут как показано:
<d:entry ... d:title="工夫"> |
<d:index d:value="くふう" d:title="工夫" d:yomi="くふう"/> |
<d:index d:value="工夫" d:title="工夫" d:yomi="くふう"/> |
... |
</d:entry> |
<d:entry ... d:title="工夫"> |
<d:index d:value="こうふ" d:title="工夫" d:yomi="こうふ"/> |
<d:index d:value="工夫" d:title="工夫" d:yomi="こうふ"/> |
... |
</d:entry> |
Использование приложения Словаря d:yomi
и d:title
добавить дополнительную информацию или для поиска Yomi или для поиска Кандзи. Можно опустить d:title
когда это имеет то же значение как d:value
.
Комплект разработчика Словаря содержит источник для демонстрационного японского словаря (см. /Developer/Extras/Dictionary Development Kit/samples/
). Словарь содержит записи для различных случаев, включая следующее:
Слово, записанное с помощью многократных, смешанных классов символов.
Иностранное слово, имеющее и Katakana и римские представления.