¿Cómo puedo instalar un nuevo diccionario en OS X para usarlo con el protector de pantalla "Palabra del día"?

La razón es trivial: soy fanático del protector de pantalla "Palabra del día" y me gustaría agregar diccionarios para idiomas distintos del inglés y el japonés (estos son los dos que puedo seleccionar ahora en las opciones del protector de pantalla).

¿Cómo puedo hacerlo?

¿Alguna suerte? Parece que no tiene absolutamente ningún sentido que solo se puedan seleccionar diccionarios de inglés y japonés, pero no he encontrado ninguna forma de evitarlo.
Parece un proyecto a medias/huevos de Pascua abandonados después de OS X 10.8.

Respuestas (4)

En un hilo de comentarios bastante oscuro, alguien explicó dónde puede encontrar la lista de palabras que Apple usa para impulsar el protector de pantalla. es en /System/Library/Graphics/Quartz\ Composer\ Plug-Ins/WOTD.plugin/Contents/Resources/NOAD_wotd_list.txt. El archivo se ve así:

m_en_us1282510  quinsy
m_en_us1273791  orbicular
m_en_us1220945  alimony
m_en_us1250517  genome

Es una lista de entradas separadas por tabulaciones. A la derecha tienes la palabra, y a la izquierda, lo que parece una identificación. Pero, ¿para qué sirve una identificación y cómo podría encontrarla para otra palabra que no esté ya en la lista?

Como era de esperar, la identificación se refiere a una entrada en el diccionario predeterminado de Apple, el "Diccionario americano de New Oxford". (Eso es lo que significa "NOAD" en la ruta de la lista de palabras anterior).

¿Cómo encontrar los ID de otras palabras?

Un tipo llamado Joseph Gentle, en una serie de publicaciones de blog, muestra cómo acceder a los datos subyacentes de los diccionarios de Apple. En su publicación "Diccionarios de Apple, parte 2" , señala el código que desempaqueta el archivo binario relevante (almacenado en /Library/Dictionaries) en XML. Usando los archivos dedict.cand que se encuentran aquí , y siguiendo el ejemplo de Gentle, usé los siguientes comandos bash para acceder al XML de NOAD (estos comandos se ejecutan desde el directorio donde descargó los archivos y ):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

Cuando headedité las primeras líneas del dict.xmlarchivo, vi algo prometedor, con entradas que se veían así:

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

Observe que idparam... ¡es un identificador que se ve exactamente como el de la lista de palabras del protector de pantalla!

Escribí el siguiente script de Ruby para analizar el XML y luego, usando mi propia lista de palabras, creé un nuevo archivo de protector de pantalla que asigna mis propias palabras a sus ID en el diccionario:

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

Cuando reemplacé el archivo de protector de pantalla original con este nuevo, funcionó. Ahora puede tener un protector de pantalla de "Palabra del día" que brinda definiciones para las palabras que elija.

Si tiene 10.8, puede habilitar los diccionarios de francés, alemán, chino simplificado y español desde las preferencias de Dictionary.app:

Sin embargo, no parecen mostrarse como opciones para el salvapantallas de la palabra del día:

También intenté reiniciar después de habilitar los diccionarios.

Sí, no aparecen en el salvapantallas, exactamente.
No tengo idea de por qué esta publicación recibió tantos votos positivos. No resolvió la pregunta en absoluto :(

En caso de que alguien todavía esté interesado en esto en 2018 y se encuentre con esto ...

Acabo de actualizar a OS X Mojave y encontré un Word of the Day.saverarchivo en /System/Library/Screen Savers/. En este paquete, vaya a Contents/Resources/WordLists/y podrá encontrar los 5 archivos .plist utilizados en Mojave WotD (agregaron tres diccionarios de chino mandarín/cantonés). Allí puede usar el método de jsomers anterior.

También ha pasado un tiempo desde que Apple agregó la Protección de integridad del sistema al OS X, por lo que deberá desactivarla antes de escribir en el archivo .plist.

Estoy muy contento de que Apple no se haya dado por vencido con el viejo WotD y lo haya actualizado un poco en Mojave. Espero que puedan proporcionar aún más opciones de diccionario en el futuro.

Esto debería resolver su problema: http://www.makeuseof.com/tag/easily-expanding-apple-dictionary-–-mac-only/

Ver el comentario de Lauri. No funciona con el salvapantallas.