Làm cách nào tôi có thể cài đặt một từ điển mới trên OS X để sử dụng với trình bảo vệ màn hình của Word Word of the Day?


25

Lý do rất tầm thường: Tôi là một fan hâm mộ của trình bảo vệ màn hình "Word of the Day" và tôi muốn thêm từ điển cho các ngôn ngữ khác ngoài tiếng Anh và tiếng Nhật (đây là hai từ mà tôi có thể chọn bây giờ trong các tùy chọn bảo vệ màn hình).

Tôi làm nó như thế nào?


1
Bất kỳ may mắn? Dường như hoàn toàn không có ý nghĩa gì cả khi chỉ có thể chọn từ điển tiếng Anh và tiếng Nhật nhưng tôi không tìm thấy cách nào khác.
xji

1
Có vẻ như một dự án nửa quả trứng / trứng Phục sinh bị bỏ rơi sau OS X 10.8.
xji

Câu trả lời:


16

Trên một luồng nhận xét khá mơ hồ, ai đó đã giải thích nơi bạn có thể tìm thấy danh sách từ mà Apple sử dụng để cấp nguồn cho trình bảo vệ màn hình. Đó là tại /System/Library/Graphics/Quartz\ Composer\ Plug-Ins/WOTD.plugin/Contents/Resources/NOAD_wotd_list.txt. Các tập tin trông như thế này:

m_en_us1282510  quinsy
m_en_us1273791  orbicular
m_en_us1220945  alimony
m_en_us1250517  genome

Nó là một danh sách các mục được phân tách bằng tab. Ở bên phải bạn có từ và bên trái, trông giống như một ID. Nhưng ID đó dùng để làm gì và làm thế nào bạn có thể tìm thấy nó cho một từ khác chưa có trong danh sách?

Như bạn có thể mong đợi, ID đề cập đến một mục trong từ điển mặc định của Apple, "Từ điển Oxford Mỹ mới". (Đó là những gì "NOAD" đại diện cho đường dẫn danh sách từ ở trên.)

Làm thế nào để tìm ID cho các từ khác?

Một đồng nghiệp tên Joseph Gentle, trong một loạt các bài đăng trên blog, cho thấy cách lấy dữ liệu dựa trên từ điển của Apple. Trong bài đăng "Từ điển Apple, phần 2" của mình, ông chỉ ra mã giải nén tệp nhị phân có liên quan (được lưu trữ /Library/Dictionaries) thành XML. Sử dụng các tệp dedict.cstrip.ctệp được tìm thấy ở đây và theo ví dụ của Gentle, tôi đã sử dụng các lệnh bash sau để lấy XML của NOAD (các lệnh này được chạy từ thư mục nơi bạn đã tải xuống tệp dedict.cstrip.ctệp):

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

Khi tôi headđọc vài dòng đầu tiên của dict.xmltập tin, tôi thấy một cái gì đó đầy hứa hẹn, với các mục giống như thế này:

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

Lưu ý rằng idparam ... đó là một mã định danh trông giống hệt như trong danh sách từ của trình bảo vệ màn hình!

Tôi đã viết tập lệnh Ruby sau để phân tích cú pháp XML và sau đó, bằng cách sử dụng danh sách từ của riêng tôi, tạo một tệp bảo vệ màn hình mới ánh xạ các từ của riêng tôi sang ID của chúng trong từ điển:

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

Khi tôi thay thế tệp bảo vệ màn hình gốc bằng tệp mới này, nó đã hoạt động. Bây giờ bạn có thể có một trình bảo vệ màn hình "Word of the Day" cung cấp các định nghĩa cho các từ bạn chọn.


9

Nếu bạn có 10.8, bạn có thể bật từ điển tiếng Pháp, tiếng Đức, tiếng Trung giản thể và tiếng Tây Ban Nha từ các tùy chọn của Dictionary.app:

Chúng dường như không được hiển thị dưới dạng các lựa chọn cho trình bảo vệ màn hình Word of the Day:

Tôi cũng đã thử khởi động lại sau khi kích hoạt từ điển.


3
Có, họ không xuất hiện trong trình bảo vệ màn hình, chính xác.
Scrrr

8
Không biết tại sao bài đăng này lại có quá nhiều lượt ủng hộ- Không giải quyết được câu hỏi nào cả :(
xji

1

Trong trường hợp bất cứ ai vẫn quan tâm đến điều này trong năm 2018 và đi qua điều này ..

Tôi vừa cập nhật lên OS X Mojave, và tìm thấy một Word of the Day.savertập tin tại /System/Library/Screen Savers/. Trong gói này, đi đến Contents/Resources/WordLists/và bạn có thể tìm thấy 5 tệp .plist được sử dụng trong Mojave WotD (họ đã thêm ba từ điển tiếng Trung / tiếng Quảng Đông). Ở đó bạn có thể sử dụng phương pháp của jsomers ở trên.

Ngoài ra, đã được một thời gian kể từ khi Apple bổ sung Bảo vệ toàn vẹn hệ thống cho OS X, vì vậy bạn sẽ phải vô hiệu hóa nó trước khi ghi vào tệp .plist.

Tôi khá vui khi Apple không từ bỏ WotD cũ và đã cập nhật nó một chút trong Mojave. Hy vọng họ có thể cung cấp nhiều lựa chọn từ điển hơn trong tương lai.


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.