2010/05/08

iPad + словари от ABBYY Lingvo =?

Все владельцы iPad, наверное, знают об интересном функционале — контекстный словарь в программах iBooks (прекрасная «читалка» от Apple) и Pages.



Но пользы от него (я уверен, что для многих пользователей iPad) фактически никакой нет, т.к. iPad имеет в своём арсенале ограниченный набор словарей (английский толковый, английский тезаурус и три японских). Управлять и расширять этот функционал нельзя — для сторонних разработчиков это запретная зона.

В статье я расскажу, как прикрутить словари от ABBYY Lingvo к iPad (с поддержкой словоформ — морфологии).
Чтобы были вот такие вкусные пельмени:







Я не буду здесь выкладывать какие-либо готовые словари, так что статья сама по себе вполне легальна.

Предыстория…

В системе Mac OS X 10.5 компания Apple открыла спецификацию словарей для Apple Dictionary и дала возможность разработчикам делать свои собственные словари, а пользователям добавлять их в программу.

Два-три года назад я сделал программу DSLConverter, которая переводила словари из формата DSL в формат Apple Dictionary. Эта программа корректно сохраняла форматирование статей и добавляла поддержку словоформ (морфологии) для нескольких европейских языков (в т.ч. русского и английского) прямо внутрь словаря.

Некоторые пользователи сразу сконвертировали многие словари от ABBYY Lingvo с помощью этой программы, маленькие и большие сборники словарей осели в торрент сетях. И теперь на каждом третьем (шучу) русском Mac'е можно встретить эти словари, интегрированные в Apple Dictionary. Есть даже словари с сохранённым оригинальным озвучиванием из ABBYY Lingvo.

К чему я веду… в iPad используется фактически тот же формат словарей, что и в Apple Dictionary. Нужно лишь немного поработать «напильником».

В iPad программы работают со словарями выборочно. В системе нет менеджера словарей, как в Mac OS X. Для iBooks, например, первичный словарь — New Oxford American Dictionary. Вот этим мы и воспользуемся. Прикинемся New Oxford American Dictionary — подставим заместо него любой необходимый словарь от ABBYY Lingvo. Я использовал один из самых популярных Lingvo Universal (En-Ru).dictionary. 

По шагам:

  1. Берём любой необходимый словарь (англо-русский, немецко-русский и пр.) в формате Apple Dictionary.
  2. Переименовываем его в «New Oxford American Dictionary.dictionary».
  3. Открываем информационный файл Info.plist внутри него.
  4. Заменяем содержимое после первого открывающего тега до ключа IDXDictionaryIndexes на:

      <key>CFBundleDevelopmentRegionkey>
      <string>Englishstring>
      <key>CFBundleDisplayNamekey>
      <string>New Oxford American Dictionarystring>
      <key>CFBundleIdentifierkey>
      <string>com.apple.dictionary.NOADstring>
      <key>CFBundleInfoDictionaryVersionkey>
      <string>6.0string>
      <key>CFBundleNamekey>
      <string>Dictionarystring>
      <key>CFBundleShortVersionStringkey>
      <string>2.1string>
      <key>DCSBuildToolVersionkey>
      <integer>2integer>
      <key>DCSDictionaryCSSkey>
      <string>DefaultStyle.cssstring>
      <key>DCSDictionaryCopyrightkey>
      <string>New Oxford American Dictionary 2nd edition © 2005 by Oxford University Press, Inc.string>
      <key>DCSDictionaryFrontMatterReferenceIDkey>
      <string>fbm_indexstring>
      <key>DCSDictionaryManufacturerNamekey>
      <string>Oxfordstring>


    * This source code was highlighted with Source Code Highlighter.

  5. Всё, наш словарь готов.
  6. Копируем готовый словарь в папку на iPad /Library/Dictionaries и наслаждаемся. Как я написал ранее, доступ к этой папке можно получить только после jailbreak.

Приятного чтения на иностранном языке!

Обновление:
Внутри пекеджей iBooks и Pages лежит файл DefaultDictionaries.plist. Например, .../Pages.app/XX.lproj/DefaultDictionaries.plist. Там для каждой программы можно прописать, какие словари используются в программе, приоритеты и словарь по умолчанию. Т.е., как ещё один вариант, можно поместить необходимые словари (без модификаций) в /Library/Dictionaries и прописать их в DefaultDictionaries.plist.



http://habrahabr.ru/blogs/iTablet/92918/



No comments:

Post a Comment

World time