Bagaimana saya bisa menginstal kamus baru di OS X untuk digunakan dengan screensaver "Word of the Day"?

25

Alasannya sepele: Saya penggemar screen saver "Word of the Day" dan saya ingin menambahkan kamus untuk bahasa selain bahasa Inggris dan Jepang (ini adalah dua yang dapat saya pilih sekarang dalam opsi screen saver).

Bagaimana saya bisa melakukannya?

scrrr
sumber
1
Keberuntungan? Tampaknya sama sekali tidak masuk akal bahwa hanya kamus bahasa Inggris dan Jepang yang dapat dipilih, tetapi saya tidak menemukan jalan keluar.
xji
1
Sepertinya proyek setengah matang / telur paskah ditinggalkan setelah OS X 10.8.
xji

Jawaban:

16

Pada utas komentar yang agak tidak jelas, seseorang menjelaskan di mana Anda mungkin menemukan daftar kata yang digunakan Apple untuk menyalakan screensaver. Itu di /System/Library/Graphics/Quartz\ Composer\ Plug-Ins/WOTD.plugin/Contents/Resources/NOAD_wotd_list.txt. File terlihat seperti ini:

m_en_us1282510  quinsy
m_en_us1273791  orbicular
m_en_us1220945  alimony
m_en_us1250517  genome

Ini adalah daftar entri yang dipisahkan oleh tab. Di sebelah kanan Anda memiliki kata, dan di sebelah kiri, apa yang tampak seperti ID. Tapi untuk apa ID itu, dan bagaimana Anda bisa menemukannya untuk kata lain yang belum ada dalam daftar?

Seperti yang Anda duga, ID merujuk pada entri dalam kamus default Apple, "New Oxford American Dictionary". (Itulah yang dimaksud "NOAD" dalam jalur daftar kata di atas.)

Bagaimana menemukan ID untuk kata lain ?

Seorang pria bernama Joseph Gentle, dalam serangkaian posting blog, menunjukkan cara mendapatkan data yang mendasari kamus Apple. Dalam tulisannya "Kamus Apple, bagian 2" , dia menunjuk ke kode yang membongkar file biner yang relevan (disimpan di /Library/Dictionaries) ke dalam XML. Menggunakan dedict.cdan strip.cfile yang ditemukan di sini , dan mengikuti contoh Gentle, saya menggunakan perintah bash berikut untuk mendapatkan XML milik NOAD (perintah ini dijalankan dari direktori tempat Anda mengunduh dedict.cdan strip.cfile):

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

Ketika saya headmembuka beberapa baris pertama dict.xmlfile, saya melihat sesuatu yang menjanjikan, dengan entri yang terlihat seperti ini:

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

Perhatikan bahwa idparam ... ini adalah pengidentifikasi yang persis sama dengan yang ada di daftar kata screensaver!

Saya menulis skrip Ruby berikut untuk mem-parsing XML, dan kemudian, menggunakan daftar kata saya sendiri, membuat file screensaver baru yang memetakan kata-kata saya sendiri ke ID mereka di kamus:

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

Ketika saya mengganti file screensaver asli dengan yang baru ini, itu berhasil. Sekarang Anda dapat memiliki screensaver "Word of the Day" yang memberikan definisi untuk kata-kata yang Anda pilih.

jsomers
sumber
9

Jika Anda memiliki 10.8, Anda dapat mengaktifkan kamus Prancis, Jerman, Cina Sederhana, dan Spanyol dari preferensi Dictionary.app:

Mereka tampaknya tidak ditampilkan sebagai pilihan untuk screensaver Word of the Day:

Saya juga mencoba memulai kembali setelah mengaktifkan kamus.

Lri
sumber
3
Ya mereka tidak muncul di screensaver, tepatnya.
scrrr
8
Tidak tahu mengapa posting ini mendapat begitu banyak upvotes- Tidak menyelesaikan pertanyaan sama sekali :(
xji
1

Jika ada yang masih tertarik dengan hal ini pada tahun 2018 dan menemukan ini ..

Saya baru saja memperbarui ke OS X Mojave, dan menemukan Word of the Day.saverfile di /System/Library/Screen Savers/. Dalam paket ini, buka Contents/Resources/WordLists/, dan Anda dapat menemukan 5 file .plist yang digunakan di Mojave WotD (mereka menambahkan tiga kamus Mandarin / Kanton Cina). Di sana Anda dapat menggunakan metode jsomers di atas.

Juga sudah lama sejak Apple menambahkan Perlindungan Integritas Sistem ke OS X, jadi Anda harus menonaktifkannya sebelum menulis ke file .plist.

Saya cukup senang bahwa Apple tidak menyerah pada WotD tua yang baik, dan memperbaruinya sedikit di Mojave. Semoga mereka dapat menyediakan lebih banyak pilihan kamus di masa mendatang.

Alan Zhu
sumber