O motivo é trivial: sou fã do protetor de tela "Word of the Day" e gostaria de adicionar dicionários para idiomas que não sejam inglês e japonês (esses são os dois que posso selecionar agora nas opções de proteção de tela).
Como eu posso fazer isso?
O motivo é trivial: sou fã do protetor de tela "Word of the Day" e gostaria de adicionar dicionários para idiomas que não sejam inglês e japonês (esses são os dois que posso selecionar agora nas opções de proteção de tela).
Como eu posso fazer isso?
Respostas:
Em um tópico de comentário bastante obscuro, alguém explicou onde você pode encontrar a lista de palavras que a Apple usa para ativar o protetor de tela. É às /System/Library/Graphics/Quartz\ Composer\ Plug-Ins/WOTD.plugin/Contents/Resources/NOAD_wotd_list.txt. O arquivo fica assim:
m_en_us1282510 quinsy
m_en_us1273791 orbicular
m_en_us1220945 alimony
m_en_us1250517 genome
É uma lista de entradas separadas por tabulação. À direita, você tem a palavra e, à esquerda, o que parece um ID. Mas para que serve um ID e como você poderia encontrá-lo para outra palavra que ainda não está na lista?
Como você pode esperar, o ID refere-se a uma entrada no dicionário padrão da Apple, o "New Oxford American Dictionary". (É isso que "NOAD" significa no caminho da lista de palavras acima.)
Como encontrar os IDs para outras palavras?
Um colega chamado Joseph Gentle, em uma série de postagens no blog, mostra como obter os dados subjacentes aos dicionários da Apple. Em sua postagem "Apple dicionários, parte 2" , ele aponta para o código que descompacta o arquivo binário relevante (armazenado em /Library/Dictionaries) no XML. Usando os arquivos dedict.ce strip.cencontrados aqui , e seguindo o exemplo de Gentle, usei os seguintes comandos bash para obter o XML do NOAD (esses comandos são executados no diretório em que você baixou os arquivos dedict.ce strip.c):
clang dedict.c -Wall -lz -o dedict
clang strip.c -Wall -lz -o strip
./dedict "New Oxford American Dictionary" | ./strip > dict.xml
Quando headeditei as primeiras linhas do dict.xmlarquivo, vi algo promissor, com entradas parecidas com esta:
<d:entry xmlns:d="http://www.apple.com/DTDs/DictionaryService-1.0.rng" id="m_en_us1219333" d:title="abode" class="entry">
Observe que idparam ... é um identificador que se parece exatamente com o da lista de palavras do protetor de tela!
Escrevi o seguinte script Ruby para analisar o XML e, usando minha própria lista de palavras, crie um novo arquivo de proteção de tela que mapeie minhas próprias palavras para seus IDs no dicionário:
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
Quando substituí o arquivo original do protetor de tela por um novo, ele funcionou. Agora você pode ter um protetor de tela "Palavra do dia" que fornece definições para as palavras que você escolhe.
Se você possui o 10.8, pode ativar os dicionários francês, alemão, chinês simplificado e espanhol nas preferências do Dictionary.app:

Eles não parecem ser mostrados como opções para o protetor de tela Palavra do Dia:

Eu também tentei reiniciar depois de ativar os dicionários.
Caso alguém ainda esteja interessado nisso em 2018 e se depare com isso ..
Acabei de atualizar para o OS X Mojave e encontrei um Word of the Day.saverarquivo em /System/Library/Screen Savers/. Neste pacote, vá para Contents/Resources/WordLists/e você pode encontrar os 5 arquivos .plist usados no Mojave WotD (eles adicionaram três dicionários de chinês mandarim / cantonês). Lá você pode usar o método de jsomers acima.
Também já faz um tempo desde que a Apple adicionou a Proteção de Integridade do Sistema ao OS X, então você precisará desativá-la antes de gravar no arquivo .plist.
Estou muito feliz que a Apple não tenha desistido do bom e velho WotD e o tenha atualizado um pouco no Mojave. Espero que eles possam fornecer ainda mais opções de dicionário no futuro.
Isso deve resolver seu problema: http://www.makeuseof.com/tag/easily-expanding-apple-dictionary-–-mac-only/