Как я могу установить новый словарь на OS X для использования с заставкой «Слово дня»?

Причина тривиальна: я являюсь поклонником заставки «Слово дня» и хотел бы добавить словари для языков, отличных от английского и японского (это два, которые я теперь могу выбрать в параметрах заставки).

Как мне это сделать?

При удаче? Кажется, что нет абсолютно никакого смысла в том, что можно выбрать только английские и японские словари, но я не нашел обходного пути.
Похоже на недоработанный проект/пасхальное яйцо, заброшенное после OS X 10.8.

Ответы (4)

В довольно малоизвестной ветке комментариев кто-то объяснил, где можно найти список слов, который Apple использует для включения заставки. Это в /System/Library/Graphics/Quartz\ Composer\ Plug-Ins/WOTD.plugin/Contents/Resources/NOAD_wotd_list.txt. Файл выглядит так:

m_en_us1282510  quinsy
m_en_us1273791  orbicular
m_en_us1220945  alimony
m_en_us1250517  genome

Это список записей, разделенных табуляцией. Справа у вас есть слово, а слева что-то похожее на удостоверение личности. Но что это за идентификатор и как найти его для другого слова, которого еще нет в списке?

Как и следовало ожидать, идентификатор относится к статье в стандартном словаре Apple, New Oxford American Dictionary. (Это то, что означает «NOAD» в приведенном выше пути к списку слов.)

Как найти идентификаторы для других слов?

Парень по имени Джозеф Джентл в серии сообщений в блоге показывает, как получить данные, лежащие в основе словарей Apple. В своем посте «Словари Apple, часть 2» он указывает на код, который распаковывает соответствующий двоичный файл (хранящийся в /Library/Dictionaries) в XML. Используя файлы dedict.cи , найденные здесь , и следуя примеру Джентла, я использовал следующие команды bash, чтобы получить XML NOAD (эти команды запускаются из каталога, в который вы скачали файлы и ):strip.cdedict.cstrip.c

clang dedict.c -Wall -lz -o dedict
clang strip.c -Wall -lz -o strip
./dedict "New Oxford American Dictionary" | ./strip > dict.xml

Когда я headотредактировал первые несколько строк dict.xmlфайла, я увидел нечто многообещающее с записями, которые выглядели так:

<d:entry xmlns:d="http://www.apple.com/DTDs/DictionaryService-1.0.rng" id="m_en_us1219333" d:title="abode" class="entry">

Обратите внимание, что idпараметр... это идентификатор, который выглядит точно так же, как в списке слов заставки!

Я написал следующий скрипт Ruby для анализа XML, а затем, используя свой собственный список слов, создал новый файл заставки, который сопоставляет мои собственные слова с их идентификаторами в словаре:

raw = File.open("./dict.xml").read
my_words = File.open("./word_list.csv").readlines.map { |line| line.split(',')[1] }

word_id_map = {}

raw.scan(/<d:entry .*? id="(.*?)" d:title="(.*?)" class="entry">/).each do |entry|
   word_id_map[entry[1]] = entry[0]
end

my_words.each do |word|
  if id = word_id_map[word]
    puts [id, word].join('  ')
  end
end

Когда я заменил исходный файл скринсейвера на новый, все заработало. Теперь у вас может быть заставка «Слово дня», которая дает определения для выбранных вами слов.

Если у вас 10.8, вы можете включить французский, немецкий, упрощенный китайский и испанский словари в настройках Dictionary.app:

Однако они, похоже, не отображаются в качестве вариантов для заставки «Слово дня»:

Я также попытался перезапустить после включения словарей.

Да, в заставке их точно нет.
Понятия не имею, почему этот пост получил так много голосов - вообще не решил вопрос :(

В случае, если кто-то все еще заинтересован в этом в 2018 году и наткнулся на это ..

Я только что обновился до OS X Mojave и нашел Word of the Day.saverфайл по адресу /System/Library/Screen Savers/. В этом пакете перейдите к Contents/Resources/WordLists/, и вы можете найти 5 файлов .plist, используемых в Mojave WotD (они добавили три словаря мандаринского/кантонского диалекта китайского). Там вы можете использовать метод jsomers выше.

Кроме того, прошло некоторое время с тех пор, как Apple добавила защиту целостности системы в OS X, поэтому вам придется отключить ее перед записью в файл .plist.

Я очень рад, что Apple не отказалась от старого доброго WotD и немного обновила его в Мохаве. Надеюсь, что в будущем они смогут предоставить еще больше вариантов словарей.

Это должно решить вашу проблему: http://www.makeuseof.com/tag/easily-expanding-apple-dictionary---mac-only/

См. комментарий Лаури. Не работает с заставкой.