Comment puis-je installer un nouveau dictionnaire sur OS X à utiliser avec l'économiseur d'écran «Word of the Day»?

25

La raison est banale: je suis un fan de l'économiseur d'écran "Word of the Day" et je voudrais ajouter des dictionnaires pour des langues autres que l'anglais et le japonais (ce sont les deux que je peux sélectionner maintenant dans les options d'économiseur d'écran).

Comment puis-je le faire?

scrrr
la source
1
Tu as de la chance? Il semble que cela n'a absolument aucun sens que seuls les dictionnaires anglais et japonais puissent être sélectionnés, mais je n'ai trouvé aucun moyen de le contourner.
xji
1
On dirait un projet à demi-cul / un œuf de Pâques abandonné après OS X 10.8.
xji

Réponses:

16

Sur un fil de commentaires plutôt obscur, quelqu'un a expliqué où vous pourriez trouver la liste de mots qu'Apple utilise pour alimenter l'économiseur d'écran. C'est à /System/Library/Graphics/Quartz\ Composer\ Plug-Ins/WOTD.plugin/Contents/Resources/NOAD_wotd_list.txt. Le fichier ressemble à ceci:

m_en_us1282510  quinsy
m_en_us1273791  orbicular
m_en_us1220945  alimony
m_en_us1250517  genome

Il s'agit d'une liste d'entrées séparées par des tabulations. À droite, vous avez le mot, et à gauche, ce qui ressemble à une pièce d'identité. Mais à quoi sert un identifiant et comment pourriez-vous le trouver pour un autre mot qui ne figure pas déjà sur la liste?

Comme vous vous en doutez, l'ID fait référence à une entrée du dictionnaire par défaut d'Apple, le "New Oxford American Dictionary". (C'est ce que "NOAD" signifie dans le chemin de la liste de mots ci-dessus.)

Comment trouver les identifiants pour d' autres mots?

Un collègue du nom de Joseph Gentle, dans une série de billets de blog, montre comment accéder aux données sous-jacentes aux dictionnaires d'Apple. Dans son article "Apple dictionaries, part 2" , il pointe du code qui décompresse le fichier binaire pertinent (stocké dans /Library/Dictionaries) en XML. En utilisant les fichiers dedict.cet strip.ctrouvés ici , et en suivant l'exemple de Gentle, j'ai utilisé les commandes bash suivantes pour obtenir le XML du NOAD (ces commandes sont exécutées à partir du répertoire où vous avez téléchargé les fichiers dedict.cet strip.c):

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

Lorsque j'ai headmodifié les premières lignes du dict.xmlfichier, j'ai vu quelque chose de prometteur, avec des entrées qui ressemblaient à ceci:

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

Notez que idparam ... c'est un identifiant qui ressemble exactement à celui de la liste de mots de l'économiseur d'écran!

J'ai écrit le script Ruby suivant pour analyser le XML, puis, en utilisant ma propre liste de mots, j'ai créé un nouveau fichier d'économiseur d'écran qui mappe mes propres mots à leurs ID dans le dictionnaire:

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

Lorsque j'ai remplacé le fichier d'économiseur d'écran d'origine par ce nouveau, cela a fonctionné. Vous pouvez maintenant avoir un économiseur d'écran "Mot du jour" qui donne des définitions pour les mots que vous choisissez.

jsomers
la source
9

Si vous disposez de la version 10.8, vous pouvez activer les dictionnaires français, allemand, chinois simplifié et espagnol à partir des préférences de Dictionary.app:

Cependant, ils ne semblent pas être des choix pour l'économiseur d'écran Word of the Day:

J'ai également essayé de redémarrer après avoir activé les dictionnaires.

Lri
la source
3
Oui, ils n'apparaissent pas exactement dans l'économiseur d'écran.
scrrr
8
Aucune idée de la raison pour laquelle ce message a reçu autant de votes positifs - N'a pas du tout résolu la question :(
xji
1

Au cas où quelqu'un serait toujours intéressé par cela en 2018 et tomberait sur cela ..

Je viens de passer à OS X Mojave et j'ai trouvé un Word of the Day.saverfichier sur /System/Library/Screen Savers/. Dans ce package, accédez à Contents/Resources/WordLists/et vous pouvez trouver les 5 fichiers .plist utilisés dans le Mojave WotD (ils ont ajouté trois dictionnaires chinois mandarin / cantonais). Là, vous pouvez utiliser la méthode de jsomers ci-dessus.

De plus, Apple a ajouté la protection de l'intégrité du système à OS X depuis un certain temps, vous devrez donc la désactiver avant d'écrire dans le fichier .plist.

Je suis assez heureux qu'Apple n'ait pas abandonné le bon vieux WotD et l'ait un peu mis à jour à Mojave. J'espère qu'ils pourront proposer encore plus de dictionnaires à l'avenir.

Alan Zhu
la source