Wie kann ich unter OS X ein neues Wörterbuch für den Bildschirmschoner „Word of the Day“ installieren?

25

Der Grund ist trivial: Ich bin ein Fan des Bildschirmschoners "Wort des Tages" und möchte Wörterbücher für andere Sprachen als Englisch und Japanisch hinzufügen (dies sind die beiden, die ich jetzt in den Bildschirmschoneroptionen auswählen kann).

Wie kann ich es tun?

scrrr
quelle
1
Etwas Glück? Es scheint überhaupt keinen Sinn zu machen, dass nur englische und japanische Wörterbücher ausgewählt werden können, aber ich habe keinen Ausweg gefunden.
XJI
1
Scheint wie ein halbherziges Projekt / Osterei, das nach OS X 10.8 aufgegeben wurde.
xji

Antworten:

16

In einem eher obskuren Kommentarthread erklärte jemand, wo sich möglicherweise die Wortliste befindet, mit der Apple den Bildschirmschoner ansteuert. Es ist bei /System/Library/Graphics/Quartz\ Composer\ Plug-Ins/WOTD.plugin/Contents/Resources/NOAD_wotd_list.txt. Die Datei sieht folgendermaßen aus:

m_en_us1282510  quinsy
m_en_us1273791  orbicular
m_en_us1220945  alimony
m_en_us1250517  genome

Es ist eine Liste von durch Tabulatoren getrennten Einträgen. Auf der rechten Seite steht das Wort und auf der linken Seite, was wie ein Ausweis aussieht. Aber wofür ist es eine ID und wie können Sie sie für ein anderes Wort finden, das noch nicht auf der Liste steht?

Wie zu erwarten, bezieht sich die ID auf einen Eintrag im Standardwörterbuch von Apple, dem "New Oxford American Dictionary". (Dafür steht "NOAD" im obigen Wortlistenpfad.)

Wie finde ich die IDs für andere Wörter?

Ein Kollege namens Joseph Gentle zeigt in einer Reihe von Blog-Posts, wie man an die Daten kommt, die Apples Wörterbüchern zugrunde liegen. In seinem Beitrag "Apple dictionarys, part 2" verweist er auf Code, der die relevante Binärdatei (gespeichert in /Library/Dictionaries) in XML entpackt . Unter Verwendung der hier gefundenen dedict.cund strip.c-Dateien und gemäß dem Beispiel von Gentle habe ich die folgenden Bash-Befehle verwendet, um auf das XML des NOAD zuzugreifen (diese Befehle werden aus dem Verzeichnis ausgeführt, in das Sie die und -Dateien heruntergeladen haben ):dedict.cstrip.c

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

Als ich headdie ersten Zeilen der dict.xmlDatei schrieb, sah ich etwas vielversprechendes mit Einträgen, die so aussahen:

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

Beachten Sie, dass idparam ... ein Bezeichner ist, der genau so aussieht wie der in der Bildschirmschoner-Wortliste!

Ich habe das folgende Ruby-Skript geschrieben, um das XML zu analysieren, und dann mithilfe meiner eigenen Wortliste eine neue Bildschirmschonerdatei erstellt, die meine eigenen Wörter ihren IDs im Wörterbuch zuordnet:

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

Als ich die ursprüngliche Bildschirmschonerdatei durch diese neue ersetzte, funktionierte es. Sie können jetzt einen Bildschirmschoner "Wort des Tages" erstellen, der Definitionen für die von Ihnen ausgewählten Wörter enthält.

jsomers
quelle
9

Wenn Sie über 10.8 verfügen, können Sie die Wörterbücher für Französisch, Deutsch, vereinfachtes Chinesisch und Spanisch in den Einstellungen von Dictionary.app aktivieren:

Sie scheinen jedoch nicht als Auswahl für den Word of the Day-Bildschirmschoner angezeigt zu werden:

Ich habe auch versucht, nach dem Aktivieren der Wörterbücher neu zu starten.

Lri
quelle
3
Ja, sie erscheinen nicht genau im Bildschirmschoner.
Scrrr
8
Keine Ahnung, warum dieser Beitrag so viele positive Stimmen bekam - Hat die Frage überhaupt nicht gelöst :(
xji
1

Falls sich noch jemand 2018 dafür interessiert und darauf stößt ..

Ich habe gerade ein Update auf OS X Mojave durchgeführt und eine Word of the Day.saverDatei unter gefunden /System/Library/Screen Savers/. In diesem Paket Contents/Resources/WordLists/finden Sie unter die 5 .plist-Dateien, die im Mojave WotD verwendet werden (drei Wörterbücher für Mandarin / Kantonesisch-Chinesisch wurden hinzugefügt). Dort können Sie die obige Methode von jsomers anwenden.

Es ist auch eine Weile her, dass Apple den Systemintegritätsschutz zu OS X hinzugefügt hat, sodass Sie ihn deaktivieren müssen, bevor Sie in die .plist-Datei schreiben.

Ich bin ziemlich froh, dass Apple das gute alte WotD nicht aufgegeben und es in Mojave ein wenig aktualisiert hat. Ich hoffe, sie können in Zukunft noch mehr Wörterbücher anbieten.

Alan Zhu
quelle