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

22

El motivo es trivial: soy un fanático del protector de pantalla "Word of the Day" y me gustaría agregar diccionarios para otros idiomas además del inglés y el japonés (estos son los dos que puedo seleccionar ahora en las opciones de protector de pantalla ).

¿Cómo puedo hacerlo?

    
pregunta scrrr 27.06.2013 - 10:39

4 respuestas

15

En un hilo de comentarios bastante oscuro, alguien explicó dónde podría encontrar la lista de palabras que Apple usa para impulsar el protector de pantalla. Está 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 tabuladores. A la derecha tiene la palabra, y a la izquierda, lo que parece una identificación. Pero, ¿para qué es una identificación y cómo podría encontrarla para otra palabra que no esté en la lista?

Como es de esperar, la ID se refiere a una entrada en el diccionario predeterminado de Apple, el "New Oxford American Dictionary". (Eso es lo que significa "NOAD" en la ruta de la lista de palabras de arriba).

¿Cómo encontrar los ID para otras palabras?

Un compañero llamado Joseph Gentle, en una serie de publicaciones del blog, muestra cómo obtener los datos subyacentes a los diccionarios de Apple. En su publicación de "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.c y strip.c encontrados aquí , y siguiendo el ejemplo de Gentle, usé los siguientes comandos de bash para obtener en el XML de NOAD (estos comandos se ejecutan desde el directorio donde descargó los archivos dedict.c y strip.c ):

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

Cuando head -ed las primeras líneas del archivo dict.xml , vi algo prometedor, con entradas que parecían a esto:

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

Observe que id param ... ¡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, cree un archivo de protector de pantalla nuevo 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 del protector de pantalla original con este nuevo, funcionó. Ahora puedes tener un protector de pantalla de "Palabra del día" que proporciona definiciones de las palabras que elijas.

    
respondido por el jsomers 21.06.2015 - 20:30
8

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

Sinembargo,noparecenmostrarsecomoopcionesparaelsalvapantallasdeWordoftheDay:

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

    
respondido por el user495470 27.06.2013 - 11:06
0

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 archivo Word of the Day.saver en /System/Library/Screen Savers/ . En este paquete, vaya a Contents/Resources/WordLists/ , y puede encontrar los 5 archivos .plist utilizados en Mojave WotD (agregaron tres diccionarios de chino mandarín / cantonés). Allí puedes usar el método de jsomers arriba.

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

Estoy muy contento de que Apple no haya abandonado 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.

    
respondido por el Alan Zhu 25.09.2018 - 09:22
-2

Esto debería resolver su problema: enlace

    
respondido por el b4d 27.06.2013 - 10:45

Lea otras preguntas en las etiquetas