Сборка файла словарной базы настраивается через sproj файл, в общем случае содержащий:
<SlovoEd_Project>
<DictID>5555</DictID>
<HASH>DEAD</HASH>
<EngineVersion>116</EngineVersion>
<DatabaseType>Dictionary</DatabaseType>
<IsInApp>YES</IsInApp>
<SortFile Language="russ">Russian.ucmp</SortFile>
<SortFile Language="germ">German.ucmp</SortFile>
<SortFile Language="arab">Arabic.ucmp</SortFile>
<SortFile Language="engl">English.ucmp</SortFile>
<SortFile Language="span">Spanish.ucmp</SortFile>
<SortFile Language="fren">French.ucmp</SortFile>
<SortFile Language="ital">Italian.ucmp</SortFile>
<SortFile Language="japa">Japanese.ucmp</SortFile>
<SecondarySortFile Language="japa">Japanese_corrections.ucmp</SecondarySortFile>
<LanguageCodeFrom>engl</LanguageCodeFrom>
<LanguageCodeTo>germ</LanguageCodeTo>
<DictionaryFeatures>
<SkeletalMode>1</SkeletalMode>
<Taboo>0</Taboo>
<Stress>0</Stress>
</DictionaryFeatures>
<MarketingTotalWordsCount>100000</MarketingTotalWordsCount>
<MorphoBase Language="germ">400A.sdc</MorphoBase>
<ImageSourceType>Database</ImageSourceType>
<SoundSourceType>InternetServer</SoundSourceType>
<Strings Language="0000">
<ProductName>New Unabridged English-Russian Dictionary by A.U. Thor</ProductName>
<DictionaryName>New Unabridged English-Russian Dictionary</DictionaryName>
<DictionaryNameShort>New En-Ru Dictionary</DictionaryNameShort>
<DictionaryClass>Dictionary</DictionaryClass>
<DictionaryLanguagePair>English-Russian</DictionaryLanguagePair>
<DictionaryLanguagePairShort>En-Ru</DictionaryLanguagePairShort>
<DictionaryLanguagePairReverse>Russian-English</DictionaryLanguagePairReverse>
<DictionaryLanguagePairShortReverse>Ru-En</DictionaryLanguagePairShortReverse>
<LanguageNameFrom>English</LanguageNameFrom>
<LanguageNameTo>Russian</LanguageNameTo>
<AuthorName>A.U.Thor</AuthorName>
<AuthorWeb>https://someAuthorWeb.com</AuthorWeb>
</Strings>
<Strings Language="russ">
<ProductName>Новый полный англо-русский словарь</ProductName>
<DictionaryName>Полный англо-русский словарь</DictionaryName>
<DictionaryNameShort>Англо-русский словарь</DictionaryNameShort>
<DictionaryClass>Словарь</DictionaryClass>
<DictionaryLanguagePair>Англо-русское</DictionaryLanguagePair>
<DictionaryLanguagePairShort></DictionaryLanguagePairShort>
<DictionaryLanguagePairReverse>Русско-английское</DictionaryLanguagePairReverse>
<DictionaryLanguagePairShortReverse></DictionaryLanguagePairShortReverse>
<LanguageNameFrom>Английский</LanguageNameFrom>
<LanguageNameTo>Русский</LanguageNameTo>
<AuthorName>А.В. Тор</AuthorName>
<AuthorWeb>https://someAuthorWeb.com</AuthorWeb>
</Strings>
<Articles>
<!-- ... -->
</Articles>
<List id="dictionary">
<!-- ... -->
</List>
<Style>
<!-- ... -->
</Style>
<IsMultiLanguageBase>YES</IsMultiLanguageBase>
<LanguageSymbols />
<SymbolsDelimiters />
</SlovoEd_Project>
- DictID – уникальный идентификатор sdc-контейнера, представляющий собой 4-символьный hex-код. Начинается с цифры “5”, выдается централизовано при начале разработки sdc-базы. При этом разные редакции одного и того же словаря могут иметь как одинаковый DictID (если новая версия должна стать обновлением существующего продукта), так и разные (если новая версия должна продаваться самостоятельно)
- HASH – уникальный hash, используемый при сжатии данных словаря
- EngineVersion – deprecated. Может встречаться в старых базах – отвечает на минимальную версию словарного ядра, которая требуется для работы с данным словарем
- DatabaseType – тематика словарной базы (словарь, разговорник и т.д.). Полный список типов словарных баз есть в этой статье. Важно учесть, что значение поля по умолчанию – “Phrasebook” и для словарей его нужно прописывать явно
- IsInApp – флаг того, является ли база демо-версией
- SortFile – набор тегов, содержащих имя таблицы сортировки, которая должна использоваться для конкретного языка. Обязательно указывается для каждого кода языка, используемого в словаре, кроме кодов языков локализаций. То есть таблиц может быть как одна или две (в случае стандартных толковых и двуязычных баз), так и большее количество (если база мультиязычная и содержит перевод заголовков на несколько языков) – привязка файла таблицы к коду языка осуществляется через атрибут “Language”
- SecondarySortFile – вспомогательная таблица сортировки, содержащая уточнения по использованию символов. В первую очередь используются в китайском и языках с заимствованиями из него (японском, корейском, вьетнамском), также могут применяться для корректирования поведения отдельных символов для конкретного продукта. По аналогии с основными таблицами, связь “код языка – таблица сортировки” задается атрибутом “Language”
- LanguageCodeFrom – код языка, с которого осуществляется перевод. В двунаправленных базах выбирается на усмотрение автора словаря (обычно по более полно представленному языку); в мультиязычных базах выбирается один из языков также на усмотрение автора
- LanguageCodeTo – код языка, на который осуществляется перевод. В двунаправленных базах выбирается на усмотрение автора словаря (обычно по менее представленному языку); в мультиязычных базах выбирается один из языков также на усмотрение автора
- DictionaryFeatures – набор флагов, указывающих на наличие определенных фич словаря (обычно это фичи, требующие от приложения дополнительной UI проработки, экрана настроек и т.п.). Подробное описание – в разделе ESldFeatures статьи о настройках словаря
- MarketingTotalWordsCount – числовое значение, указывающее количество слов в собираемой базе (при его отсутствии количество слов будет автоматически посчитано на основе отображаемых списков слов), используется в приложении при отображении информации о продукте. Указывается в случаях, когда нужно прописать определенное количество слов (т.к. способ подсчета на стороне издательства отличается от автоподсчета по заголовкам в списке)
- MorphoBase – позволяет добавить в контейнер с основной базой морфологическую, id которой указан в данном теге. При этом допускается подключение морфологий для разных языков. За привязку указанной базы к конкретному языку словаря отвечает атрибут “Language” – он хранит код языка, для которого предназначается морфология
- ImageSourceType – описывает тип источника изображений базы, обычно это либо сама база, либо внешний web-сервис. Детали можно посмотреть в описании EMediaSourceTypeEnum здесь.
- SoundSourceType – описывает тип источника звука базы, обычно это либо сама база, либо внешний web-сервис. Детали можно посмотреть в описании EMediaSourceTypeEnum здесь.
- Strings – назначение и способ использования строк аналогичен строкам списка: отображение в разных местах UI с адаптацией под текущую локаль устройства. Например, при формировании страницы с информацией о приложенииProductName – самая полная версия названия словаря, например “New Unabridged English-Russian Dictionary by A.U. Thor”
- DictionaryName – стандартная версия названия, “Unabridged English-Russian Dictionary”
- DictionaryNameShort – сокращенная версия названия, “New En-Ru Dictionary”
- DictionaryClass – описание тематики словаря. Например, это может быть “Grammar” или “Thesaurus”
- DictionaryLanguagePair – локализованная языковая пара, например “Anglais/Français” во французской локализации французско-английского словаря
- DictionaryLanguagePairShort – сокращенная языковая пара, “An/Fr”
- DictionaryLanguagePairReverse – локализованная обратная языковая пара, “Français/Anglais”
- DictionaryLanguagePairShortReverse – сокращенная обратная языковая пара, “Fr/An”
- LanguageNameFrom – название языка From словаря (например, “Русский” для русской локали и “Russian” – для английской)
- LanguageNameTo – название языка To словаря
- AuthorName – название издательства
- AuthorWeb – адрес сайт издательства
- Articles – подробно разбирается в разделе “Словарные статьи“
- List – подробно разбираются в разделе “Списки слов в словарных базах“
- Style – подробно разбираются в разделе “Стили текста в словарных базах“
- IsMultiLanguageBase – флаг, указывающий, является ли база мультиязычной (содержит списки слов и переводы более, чем для двух языков)
- LanguageSymbols – deprecated. Может встречаться в старых базах – использовался для модификации списка символов алфавита используемой таблицы сортировки. Сейчас за набор символов отвечают только SortFile/SecondarySortFile
- SymbolsDelimiters – deprecated. Может встречаться в старых базах – использовался для модификации списка символов-разделителей используемой таблицы сортировки. Сейчас за набор символов отвечают только SortFile/SecondarySortFile