Sebep önemsiz: "Günün Sözü" ekran koruyucusunun hayranıyım ve İngilizce ve Japonca dışındaki diller için sözlükler eklemek istiyorum (bunlar şimdi ekran koruyucu seçeneklerinde seçebileceğim ikisidir).
Nasıl yapabilirim?
Sebep önemsiz: "Günün Sözü" ekran koruyucusunun hayranıyım ve İngilizce ve Japonca dışındaki diller için sözlükler eklemek istiyorum (bunlar şimdi ekran koruyucu seçeneklerinde seçebileceğim ikisidir).
Nasıl yapabilirim?
Yanıtlar:
Oldukça belirsiz bir yorum dizisinde, birileri Apple'ın ekran koruyucuyu güçlendirmek için kullandığı kelime listesini nerede bulabileceğinizi açıkladı. Öyle /System/Library/Graphics/Quartz\ Composer\ Plug-Ins/WOTD.plugin/Contents/Resources/NOAD_wotd_list.txt
. Dosya şöyle görünür:
m_en_us1282510 quinsy
m_en_us1273791 orbicular
m_en_us1220945 alimony
m_en_us1250517 genome
Sekmeyle ayrılmış girişlerin bir listesidir. Sağda kelimeniz var ve solda bir kimlik numarası gibi görünüyor. Peki bunun için bir kimlik numarası ve listede olmayan başka bir kelime için nasıl bulabilirsin?
Bekleyebileceğiniz gibi, kimlik, Apple'ın varsayılan sözlüğündeki "New Oxford American Dictionary" adlı bir girişi ifade eder. (Yukarıdaki “NOAD” kelimesi yukarıdaki kelime listesi yolunda bunun anlamıdır).
Diğer kelimelerin kimlikleri nasıl bulunur ?
Bir dizi blog yazısında Joseph Gentle adlı bir adam, Apple'ın sözlüklerinin altında yatan verilere nasıl ulaşılacağını gösterir. Onun içinde "Apple sözlükleri, bölüm 2" sonrası, o kodun işaret ettiğinden (saklanan Unpacks ilgili ikili dosya /Library/Dictionaries
XML). Kullanılması dedict.c
ve strip.c
dosya bulundu burada (indirdiğiniz nerede bu komutlar dizinden çalıştırılır yumuşaktır Örneğin aşağıdaki ve ben NOAD en XML ulaşmak için aşağıdaki bash komutları kullanılır dedict.c
ve strip.c
dosyaları):
clang dedict.c -Wall -lz -o dedict
clang strip.c -Wall -lz -o strip
./dedict "New Oxford American Dictionary" | ./strip > dict.xml
Ne zaman head
ilk birkaç satırını -ed dict.xml
dosyası, ben böyle görünüyordu girişleriyle, umut verici bir şey gördüm:
<d:entry xmlns:d="http://www.apple.com/DTDs/DictionaryService-1.0.rng" id="m_en_us1219333" d:title="abode" class="entry">
Bu id
paramın ... ekran koruyucu kelime listesinde göründüğü gibi görünen bir tanımlayıcı olduğuna dikkat edin !
XML'i ayrıştırmak için aşağıdaki Ruby komut dosyasını yazdım ve sonra kendi sözcük listemi kullanarak kendi sözcüklerimi sözlükteki kimlikleriyle eşleştiren yeni bir ekran koruyucu dosyası oluşturdum:
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
Orijinal ekran koruyucu dosyasını yenisiyle değiştirdiğimde işe yaradı. Artık seçtiğiniz kelimelerin tanımlarını veren bir "Günün Sözü" ekran koruyucusuna sahip olabilirsiniz.
10.8’niz varsa, Fransızca, Almanca, Basitleştirilmiş Çince ve İspanyolca sözlükleri Dictionary.app tercihlerinden etkinleştirebilirsiniz:
Yine de, Günün Sözü ekran koruyucu için seçenek olarak görünmüyorlar:
Ayrıca sözlükleri etkinleştirdikten sonra yeniden başlatmayı denedim.
2018’de hala bununla ilgilenen ve bununla karşılaşan biri ..
OS X Mojave’ye yeni geçtim ve Word of the Day.saver
adresinde bir dosya buldum /System/Library/Screen Savers/
. Bu pakette, gidin Contents/Resources/WordLists/
ve Mojave WotD'de kullanılan 5 .plist dosyasını bulabilirsiniz (üç Mandarin / Kantonca Çince sözlük eklediler). Orada yukarıdaki jsomer yöntemini kullanabilirsiniz.
Ayrıca bu kez bir sen zorunda kalacak, böylece Apple, OS X için Sistem Bütünlüğü Koruma eklendi beri süre devre dışı .plist dosyaya yazmadan önce.
Apple'ın eski WotD'den vazgeçmediğinden ve Mojave'de biraz güncellediğinden çok mutluyum. Umarım gelecekte daha fazla sözlük seçeneği sunabilirler.
Bu probleminizi çözmelidir: http://www.makeuseof.com/tag/easily-expanding-apple-dictionary-–-mac-only/