Як я можу встановити новий словник на OS X для використання із заставкою «Слово дня»?


25

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

Як я можу це зробити?


1
Будь-яка удача? Здається, зовсім не має сенсу, що можна вибирати лише англійські та японські словники, але я не знайшов способу обійти це.
xji

1
Схоже, проект, напівзіксований / пасхальне яйце, покинуте після ОС X 10.8.
xji

Відповіді:


16

У досить незрозумілій темі коментарів хтось пояснив, де ви можете знайти список слів, який 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 за замовчуванням, "Новий американський словник Оксфорда". (Ось що означає "NOAD" у шляху списку слів вище.)

Як знайти ідентифікатори для інших слів?

У ряді публікацій в блозі співробітник на ім'я Джозеф Джентльент показує, як отримати дані, що лежать в основі словників Apple. У своїй публікації "Словники Apple, частина 2" він вказує на код, який розпаковує відповідний бінарний файл (зберігається в /Library/Dictionaries) у XML. Використовуючи файли dedict.cта strip.cфайли, знайдені тут , та наслідуючи приклад Джентльмена, я використовував наступні команди bash, щоб потрапити на XML NOAD (ці команди виконуються з каталогу, куди ви завантажили файли dedict.cта strip.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

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


9

Якщо у вас є 10,8, ви можете ввімкнути французькі, німецькі, спрощені китайські та іспанські словники з налаштувань Dictionary.app:

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

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


3
Так, вони точно не з'являються у заставці.
scrrr

8
Не маю уявлення, чому ця публікація отримала так багато відгуків - взагалі не вирішила питання :(
xji

1

На випадок, якщо хтось все-таки зацікавиться цим у 2018 році і натрапить на це ..

Я щойно оновив ОС X Mojave і знайшов Word of the Day.saverфайл у /System/Library/Screen Savers/. У цьому пакеті перейдіть до Contents/Resources/WordLists/, і ви зможете знайти 5 .plist файлів, які використовуються в Mojave WotD (вони додали три словники Mandarin / Cantonese китайською мовою). Там ви можете використовувати метод jsomers вище.

Крім того, минуло певний час, коли Apple додала захист цілісності системи до ОС X, тому вам доведеться відключити її перед тим, як писати у файл .plist.

Я дуже щасливий, що Apple не відмовилася від старого хорошого WotD і трохи оновила його в Mojave. Сподіваємось, вони зможуть запропонувати ще більше варіантів словника у майбутньому.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.