回答:
かなりあいまいなコメントスレッドで、Appleがスクリーンセーバーを強化するために使用する単語リストがどこにあるかを説明してくれました。にあり/System/Library/Graphics/Quartz\ Composer\ Plug-Ins/WOTD.plugin/Contents/Resources/NOAD_wotd_list.txt
ます。ファイルは次のようになります。
m_en_us1282510 quinsy
m_en_us1273791 orbicular
m_en_us1220945 alimony
m_en_us1250517 genome
タブで区切られたエントリのリストです。右側には単語があり、左側にはIDのように見えるものがあります。しかし、それは何のためのIDであり、まだリストにない別の単語のためにそれをどのように見つけることができますか?
ご想像のとおり、IDはAppleのデフォルト辞書である「New Oxford American Dictionary」のエントリを参照します。(これが、上記の単語リストパスで「NOAD」の略です。)
他の単語のIDを見つける方法は?
一連のブログ投稿で、Joseph Gentleという名前の仲間が、Appleの辞書の基礎となるデータにアクセスする方法を示しています。彼には「アップル辞書、パート2」ポスト、彼は(に保存され、関連するバイナリファイルを解凍し、コードを指し示す/Library/Dictionaries
XMLへ)。使用するdedict.c
とstrip.c
、ファイルは見つかっここでは、とジェントルの例以下は、私は(これらのコマンドは、あなたがダウンロードしたディレクトリから実行されているNOADのXMLで取得するには、次のbashコマンドを使用dedict.c
してstrip.c
ファイル):
clang dedict.c -Wall -lz -o dedict
clang strip.c -Wall -lz -o strip
./dedict "New Oxford American Dictionary" | ./strip > dict.xml
ファイルのhead
最初の数行を-edしたとき、次のdict.xml
ようなエントリで有望なものを見ました。
<d:entry xmlns:d="http://www.apple.com/DTDs/DictionaryService-1.0.rng" id="m_en_us1219333" d:title="abode" class="entry">
ことに注意してくださいid
PARAM ...それはまさにスクリーンセーバー単語リスト内の1つのように見えるその識別子です!
次のRubyスクリプトを記述してXMLを解析し、独自の単語リストを使用して、独自の単語を辞書のIDにマッピングする新しいスクリーンセーバーファイルを作成します。
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
元のスクリーンセーバーファイルをこの新しいファイルで置き換えたところ、うまくいきました。これで、選択した単語の定義を提供する「今日の単語」スクリーンセーバーを使用できます。
誰かが2018年にまだこれに興味があり、これに遭遇した場合..
OS X Mojaveにアップデートしたところ、でWord of the Day.saver
ファイルを見つけました/System/Library/Screen Savers/
。このパッケージでは、に移動してContents/Resources/WordLists/
、Mojave WotDで使用されている5つの.plistファイルを見つけることができます(3つの標準中国語/広東語辞書が追加されています)。そこで、上記のjsomersのメソッドを使用できます。
また、AppleがOS XにSystem Integrity Protectionを追加してからしばらく経ちました。そのため、.plistファイルに書き込む前に無効にする必要があります。
Appleが古き良きWotDをあきらめず、Mojaveで少し更新したことは非常にうれしいです。将来、さらに多くの辞書を選択できることを願っています。