답변:
다소 모호한 주석 스레드에서 누군가 화면 보호기를 강화하기 위해 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 얻을 명령을 사용 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을 ... 정확히 화면 보호기 단어 목록에서 하나처럼 보이는 식별자입니다!
XML을 구문 분석하기 위해 다음 Ruby 스크립트를 작성한 다음 내 자신의 단어 목록을 사용하여 내 자신 의 단어를 사전의 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
원래 스크린 세이버 파일을이 새 파일로 교체했을 때 효과가있었습니다. 이제 선택한 단어에 대한 정의를 제공하는 "오늘의 단어"화면 보호기를 사용할 수 있습니다.
10.8 인 경우 Dictionary.app의 환경 설정에서 프랑스어, 독일어, 중국어 간체 및 스페인어 사전을 사용할 수 있습니다.
그들은 오늘의 말씀 스크린 세이버에 대한 선택으로 보이지 않는 것 같습니다 :
사전을 활성화 한 후 다시 시작해 보았습니다.
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에 추가 한 지 얼마되지 않아서 .plist 파일에 쓰기 전에 비활성화해야 합니다.
나는 애플이 좋은 오래된 WotD를 포기하지 않고 Mojave에서 조금 업데이트 한 것이 매우 기쁩니다. 앞으로 더 많은 사전을 선택할 수 있기를 바랍니다.
이렇게하면 문제가 해결 될 것입니다 : http://www.makeuseof.com/tag/easily-expanding-apple-dictionary-–-mac-only/