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

22

Il motivo è banale: sono un fan del salvaschermo "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 di screen saver ).

Come posso farlo?

    
posta scrrr 27.06.2013 - 10:39
fonte

4 risposte

15

In una discussione di commento piuttosto oscura, 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 ha il seguente aspetto:

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 c'è la parola, e sulla sinistra, quello che sembra un ID. Ma di che si tratta di un ID e in che modo riusciresti a trovarlo per un'altra parola non già presente nell'elenco?

Come ci si potrebbe aspettare, l'ID fa riferimento a una voce nel dizionario predefinito di Apple, il "Nuovo dizionario di Oxford americano". (Questo è il significato di "NOAD" nel percorso word-list 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 sottostanti i dizionari Apple. Nel suo post "Apple dizionari, parte 2" , indica un codice che decomprime il file binario pertinente (memorizzato in /Library/Dictionaries ) in XML. Utilizzando i file dedict.c e strip.c trovati qui , e seguendo l'esempio di Gentle, ho usato i seguenti comandi bash per ottenere all'XAD di NOAD (questi comandi vengono eseguiti dalla directory in cui sono stati scaricati i file dedict.c e 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 I head -ed le prime righe del file dict.xml , ho visto qualcosa di promettente, con voci che assomigliavano a questo:

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

Tieni presente che id param ... è un identificatore che assomiglia esattamente a quello nell'elenco di parole salvaschermo!

Ho scritto il seguente script di Ruby per analizzare l'XML, e poi, usando il mio elenco di parole, creare un file di nuovo screensaver 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 salvaschermo originale con questo nuovo, ha funzionato. Ora puoi avere uno screensaver "Parola del giorno" che fornisce le definizioni per le parole che scegli.

    
risposta data 21.06.2015 - 20:30
fonte
8

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

TuttavianonsembranoesserevisualizzaticomescelteperloscreensaverdiWordoftheDay:

Ho anche provato a riavviarlo dopo aver abilitato i dizionari.

    
risposta data 27.06.2013 - 11:06
fonte
0

Nel caso in cui qualcuno fosse ancora interessato a questo nel 2018 e si imbattesse in questo ..

Mi sono appena aggiornato a OS X Mojave e ho trovato un file Word of the Day.saver in /System/Library/Screen Savers/ . In questo pacchetto, vai a Contents/Resources/WordLists/ , e puoi trovare i 5 file .plist usati nel Mojave WotD (hanno aggiunto tre dizionari cinesi mandarino / cantonese). Qui puoi utilizzare 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 'a Mojave. Spero che possano fornire ancora più scelte di dizionario in futuro.

    
risposta data 25.09.2018 - 09:22
fonte
-2

Questo dovrebbe risolvere il tuo problema: link

    
risposta data 27.06.2013 - 10:45
fonte

Leggi altre domande sui tag