[转]IOS5添加全局英汉字典教程,ibooks,safari内可用

http://bbs.weiphone.com/read-htm-tid-3926290.html

 

似乎ipad2区还没有一个关于如何增加英汉全局字典的教程,在其他区找了好久,终于弄好了,在此整理一下教程,主要还都是前人的经验(感谢Lucky_gjy的研究和萧十五的教程),希望对还没弄过的FY有所帮助。。
另外,weiphone源有21世纪英汉等词典的deb安装,但是,那个需要占用系统盘空间(具体见第三步的说明),而且我对词库并不满意,但是如果不是要求很高或者嫌麻烦的可以直接去weiphone源安装。

本教材操作存在一定的危险性,请谨慎操作。。

首先,IOS5程序内置了翻译软件,选中英文单词就会有定义选项,但默认的字典只有英英和日语等,对于大多数FY需要的英汉字典则没有,于是就需要我们自己动手丰衣足食。

系统自带效果,因为没有保留修改前的截图,所以,图片来自网络。。

这是增加英汉字典后的效果。。


好吧,现在开始,当然,前提是你的ipad得越狱喔,亲:

1、我们需要下载字典,网上字典很多,这个帖子是我找到的比较丰富的一个。
http://bbs.weiphone.com/read.php?tid=1201733&page=1
帖子内附教程,不过只是针对ibook的,在其他程序内无法使用。
个人推荐这个字典:
http://115.com/file/e6tgi87a
词库丰富,翻译精简,最主要的是能自动识别变形词,比如查"went",其他字典只会显示"go的过去式",而本词典会同时显示go,going,gone,went原型和三种变型的翻译。


2、然后,下载下来的字典需要修改info.plist文件,在<key>DCSDictionaryManufacturerName</key>之前,增加如下内容:
<key>DCSDictionaryLanguages</key>
<array>
<dict>
<key>DCSDictionaryDescriptionLanguage</key>
<string>zh</string>
<key>DCSDictionaryIndexLanguage</key>
<string>en</string>
</dict>
</array>
这段的功能是声明字典是英汉字典。

同时要找到这一句:
  <key>CFBundleIdentifier</key>
它下面会跟着一句:
<string>com.apple.dictionary.XXXX</string>
XXXX的内容根据字典不同也有所不同,记下,稍后要用到。



3、将修改后的字典导入ipad中
放的路径是/private/var/mobile/Library/Dictionaries目录,如果没有这个目录可自行建立或放在其他目录也可以,只要记住路径就好。
然后可以做一个link到/Library/Dictionaries目录下,做link的方法是:
在ifile中选择字典文件,按右下角的复制\链接,在/Library/Dictionaries目录下选择创建链接。

(原理讲解:字典文件的默认路径是/Library/Dictionaries,但这在IOS的系统盘中,IOS系统盘越狱完就剩200+MB,字典文件一个都100+MB,放不下,所以我们在用户盘中建一个文件夹放字典,采用link的方法将字典引入系统盘。)

4、修改ibooks字典索引
使用iFile进入到var/mobile/Applications里面,找到iBooks的文件夹,进入iBooks.app文件夹,找到一个叫BKDictionaryManager_LanguageToOrder.plist的文件。
(这里有个技巧,要对ifile设置一下:如下图,把那个“应用程序名称”的选项打开,否则每个应用程序文件夹的名称都有如一串密码。打开这个选项后我们就很容易找到ibook的文件夹啦。)

在文件中找到:
<dict>
  <key>en</key>
  <array>
    <string>com.apple.dictionary.NOAD</string>
    <string>com.apple.dictionary.OAWT</string>
    <string>com.apple.dictionary.AppleDictionary</string>
  </array>
在  <array>下面增加:
<string>com.apple.dictionary.XXXX</string>
XXXX就是第二步中记下的内容。



5、修改全局字典索引
找到文件\System\Library\PrivateFrameworks\DictionaryServices.framework\**.lproj\DefaultDictionaries.plist
这里的**指对应的语言文件夹,比如说你的ios使用的是简体中文为语言,则**就是zh_CN,英文是English,繁体中文则是zh_TW。
在文件中找到  
<key>DCSDefaultActiveDictionariesForiOS</key>
<array>
在下面增加字典文件完整路径:
<string>/private/var/mobile/Library/Dictionaries/****.dictionary</string>

更新内容:部分FY反映,更改zh_CN文件夹下文件后,部分英文软件下依然是英英词典,解决办法是将English文件夹下的对应文件也进行更改就可以了。。

6、 最后一步了,用ifile、ifunbox、itools或者其他什么工具中搜索ipad中所有 com.apple.DictionaryServices ,把这些文件夹中的DictionaryCache.plist都删了,这些是缓存,有以前字典设置,大胆删,系统会自动产生新的,旧的不去,新的不来。 然后重启ipad(其实Respring也可以的),搞定。
有人反映,使用ifile删除导致系统崩溃,首先建议不要用ifile进行此操作,因为ifile的搜索系统似乎有bug,如果删除搜索结果,可能删除的并不是你想删除的东西。
更新,首先说一下第六步的原理,每个程序运行时会产生一个记录字典信息的缓存文件,如果我们不删除这个缓存文件的话,下次程序运行时就会调用之前缓存文件中的字典信息,我们对字典的更改就不会生效。
每个程序的字典缓存存放在这两个目录下:
/private/var/mobile/Library/Caches/*/com.apple.DictionaryServices(系统自带软件)
/private/var/mobile/Applications/*/Caches/com.apple.DictionaryServices(安装的ipa软件)
文件名叫DictionaryCache.plist
比如safari的缓存文件地址是
/private/var/mobile/Library/Caches/com.apple.mobilesafari/com.apple.DictionaryServices/DictionaryCache.plist
如果大家只是想在safari中使用,就把这个文件删掉,重启safari软件。
这也可以作为一种快捷试验方法,当safari使用正常后,再推广到其他需要的应用程序。

异常情况处理:异常情况主要出现在第六步,大多数人在ibooks里已经能够正常使用词典了,但在safari里依然无效。
如果在safari里选中单词后没有"定义"选项,解决办法是在设置-通用-还原-还原所有设置,个人感觉此法有一定危险性,可能引起一些插件错误吧,虽然我使用此方法后没有发现异常,不过请大家谨慎操作。
如 果有"定义"选项说明词典导入正常,需要重新进行第六步,可以只删除safari的缓存文件,重启safari,打开缓存文件,看看你的字典信息有没有进 入文件中,如果没有,请检查/Library/Dictionaries目录下的link是否正常(第三步),如果字典信息出现在缓存文件中,请检 查\System\Library\PrivateFrameworks\DictionaryServices.framework\**.lproj \DefaultDictionaries.plist的修改是否正常(第五步)。


整理一下各个步骤之间的依赖关系:
对 于ibooks,打开时会读取/Library/Dictionaries(第三步)中所有词典(包括link),按照var/mobile /Applications/*/iBooks.app/BKDictionaryManager_LanguageToOrder.plist文件(第 四步)中的顺序查找词典,显示第一个找到的结果。所以的设置都是改变后重启软件既生效,所以实现比较容易。

对于其他软件,打开时会读取 DictionaryCache.plist文件(第六步)里的字典信息,如果没有DictionaryCache.plist文件(第六步),则会读取 /Library/Dictionaries(第三步)中所有词典(包括link),生成DictionaryCache.plist文件。然后根 据\System\Library\PrivateFrameworks\DictionaryServices.framework\**.lproj \DefaultDictionaries.plist文件(第五步)里的顺序查找字典,显示第一个找到的结果。


最后上效果图:
iBooks中:

safari中:

mail中:

note中:
 

posted @ 2012-06-17 23:08  InfantSorrow  阅读(3115)  评论(0编辑  收藏  举报