Dictionary.app
最近利用空閒時間研究了一下 Dictionary.app ,希望能製作英漢/漢英字典。我已經厭倦每次查字典都要上網路了:雖然有 Atomix Dojam 可以用,但總覺得效能挺差的。 Dictionary.app 核心使用 Carbon API 的 Dictionary Manager,字典檔放在 /Library/Dictionaries 下。字典的格式是 XML,但最重要的 index (dictionary_1)不知道怎麼做。剛開始我想要去修改 Dictionary.app 使得可以吃別種格式的字典檔。但 Dictionary.app 的 debugging symbol 已經被拔掉了,且 gdb 只認得 debugging symbol ,不認得 obj-c 的 symbol,這增加了逆向的難度。我打算放棄 patching,因為這樣子和自己重新寫一個字典軟體沒什麼兩樣,又要隨著系統升級,太麻煩。 於是接下來應該做的是,想辦法拆穿 Dictionary Manager 背後做的事,以設計出和 Apple 官方格式相容的字典檔。其中有兩個困難點:
- 技術層面:Apple 的技術員工曾經回應我, Sorry, currently there is no public information to create dictionaries usable by Dictionary.app. It is considered being published in the future system release. 而且因為目前系統內建的字典檔權限(非檔案系統的權限,字典本身有權限的欄位)設定關係,沒有辦法從內建的字典檔修改(
DCMDeriveNewDictionary
)而得到新的字典檔。我希望 Dictionary.app 真的只有使用 Dictionary Manager 所公開的 API 而已。若真如此,只要想辦法追蹤這些 API 在幹嘛,就有機會了解 Apple 內建的字典檔格式。而我已經確認 Dictionary.app 在查詢單字時,的確會呼叫DCMFindRecords
,所以這個假設仍然有希望,有空的話我會嘗試反組譯 Dictionary Manager ,如果有 source code 的話更好!Apple 不是有 open source 嗎?怎麼不順便把 Carbon 也順便 open 哩。或者是其實有只是我太遜沒發現,希望有強者指點一下。 - 內容層面:如果格式研究出來了,要去哪裡找字典的內容?當然可以去別人的網站上偷資料,可是被告誰負責?這個也頗頭痛… 看過一些免費的字典,都覺得品質不是很好。
如果有人也在做這方面的研究,請和我連絡:,我們可以彼此交換資訊。如果沒有人給我協助,提供資訊,這事只好暫擱一旁:反正接下來要接手開發兩三個軟體系統,應該也不會太有空。要是哪一天 Apple 在新系統加入了這個功能不就做白工了,呵呵。
“提示一,請參考日文輸入法裡面的辭庫工具。
---digdog. 3/12, 2006提示二,請參考 Language Analysis SDK。”