Come posso installare un nuovo dizionario su OS X da utilizzare con lo screensaver "Parola del giorno"?


25

Il motivo è banale: sono un fan dello screen saver "Parola del giorno" e vorrei aggiungere dizionari per lingue diverse dall'inglese e dal giapponese (questi sono i due che posso selezionare ora nelle opzioni dello screen saver).

Come posso farlo?


1
Qualche fortuna? Non ha assolutamente senso che possano essere selezionati solo dizionari inglesi e giapponesi, ma non ho trovato alcun modo per aggirarlo.
xji,

1
Sembra un progetto a metà culo / uovo di Pasqua abbandonato dopo OS X 10.8.
xji,

Risposte:


16

Su un thread di commento piuttosto oscuro, qualcuno ha spiegato dove potresti trovare l'elenco di parole che Apple utilizza per alimentare lo screensaver. È a /System/Library/Graphics/Quartz\ Composer\ Plug-Ins/WOTD.plugin/Contents/Resources/NOAD_wotd_list.txt. Il file è simile al seguente:

m_en_us1282510  quinsy
m_en_us1273791  orbicular
m_en_us1220945  alimony
m_en_us1250517  genome

È un elenco di voci separate da tabulazioni. Sulla destra hai la parola e sulla sinistra quello che sembra un ID. Ma a cosa serve un ID e come potresti trovarlo per un'altra parola non già presente nell'elenco?

Come prevedibile, l'ID si riferisce a una voce nel dizionario predefinito di Apple, il "New Oxford American Dictionary". (Ecco cosa significa "NOAD" nel percorso dell'elenco di parole sopra.)

Come trovare gli ID per altre parole?

Un collega di nome Joseph Gentle, in una serie di post sul blog, mostra come ottenere i dati alla base dei dizionari Apple. Nel suo post "dizionari Apple, parte 2" , punta al codice che decomprime il file binario pertinente (archiviato in /Library/Dictionaries) in XML. Usando i file dedict.ce strip.ctrovati qui , e seguendo l'esempio di Gentle, ho usato i seguenti comandi bash per accedere all'XML del NOAD (questi comandi vengono eseguiti dalla directory in cui sono stati scaricati i file dedict.ce strip.c):

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

Quando ho headscritto le prime righe del dict.xmlfile, ho visto qualcosa di promettente, con voci simili a queste:

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

Nota che idparam ... è un identificatore che assomiglia esattamente a quello nell'elenco delle parole dello screensaver!

Ho scritto il seguente script Ruby per analizzare l'XML e quindi, usando il mio elenco di parole, ho creato un nuovo file salvaschermo che associa le mie parole ai loro ID nel dizionario:

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

Quando ho sostituito il file originale dello screensaver con questo nuovo, ha funzionato. Ora puoi avere uno screensaver "Parola del giorno" che fornisce le definizioni per le parole che scegli.


9

Se hai 10.8, puoi abilitare i dizionari francese, tedesco, cinese semplificato e spagnolo dalle preferenze di Dictionary.app:

Tuttavia non sembrano essere mostrati come scelte per lo screensaver della Parola del giorno:

Ho anche provato a riavviare dopo aver abilitato i dizionari.


3
Sì, non compaiono esattamente nello screensaver.
scrrr,

8
Non ho idea del perché questo post abbia ricevuto così tanti voti positivi - Non ho risolto affatto la domanda :(
xji

1

Nel caso in cui qualcuno fosse ancora interessato a questo nel 2018 e ti imbatti in questo ...

Ho appena aggiornato OS X Mojave e ho trovato un Word of the Day.saverfile su /System/Library/Screen Savers/. In questo pacchetto, vai a Contents/Resources/WordLists/, e puoi trovare i 5 file .plist usati nel WotD Mojave (hanno aggiunto tre dizionari di cinese mandarino / cantonese). Lì puoi usare il metodo di jsomers sopra.

Inoltre è passato un po 'di tempo da quando Apple ha aggiunto System Integrity Protection a OS X, quindi dovrai disabilitarlo prima di scrivere nel file .plist.

Sono abbastanza felice che Apple non abbia rinunciato al buon vecchio WotD e l'abbia aggiornato un po 'in Mojave. Spero che possano fornire ancora più opzioni di dizionario in futuro.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.