「Word of the Day」スクリーンセーバーで使用するために、OS Xに新しい辞書をインストールする方法を教えてください。


25

理由は簡単です。私は「今日の言葉」スクリーンセーバーのファンであり、英語と日本語以外の言語の辞書を追加したいと思います(これらはスクリーンセーバーオプションで選択できる2つです)。

どうすればいいですか?


1
運が良ければ?英語と日本語の辞書しか選択できないということは全く意味をなさないようですが、私はそれを回避する方法を見つけませんでした。
xji

1
OS X 10.8の後に放棄された半ば嫌なプロジェクト/イースターエッグのようです。
xji

回答:


16

かなりあいまいなコメントスレッドで、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/DictionariesXMLへ)。使用するdedict.cstrip.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">

ことに注意してくださいidPARAM ...それはまさにスクリーンセーバー単語リスト内の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

元のスクリーンセーバーファイルをこの新しいファイルで置き換えたところ、うまくいきました。これで、選択した単語の定義を提供する「今日の単語」スクリーンセーバーを使用できます。


9

10.8をお持ちの場合、Dictionary.appの設定からフランス語、ドイツ語、簡体字中国語、スペイン語の辞書を有効にできます。

ただし、Word of the Dayスクリーンセーバーの選択肢としては表示されないようです。

辞書を有効にした後、再起動も試みました。


3
はい、正確にスクリーンセーバーに表示されません。
scrrr

8
この投稿がなぜこれほど多くの賛成票を獲得したのか分かりません。質問をまったく解決しませんでした:(
xji

1

誰かが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で少し更新したことは非常にうれしいです。将来、さらに多くの辞書を選択できることを願っています。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.