zoukankan      html  css  js  c++  java
  • [转]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中:
     

  • 相关阅读:
    C语言集锦(一) C代码生成图片:BMP、PNG和JPEG
    Win32 OpenGL标准例子
    Tcc学习笔记(一) 开篇
    C语言集锦(二) 图像显示 Windows和Linux
    矢量图和Word:EPS,PDF,EMF和SVG
    firefox浏览器无法显示bootstrap图标问题总结
    现代字体栈
    jquery 插件大全
    meta 详解,html5 meta 标签日常设置
    工厂方法模式Factory Method(Java实现)
  • 原文地址:https://www.cnblogs.com/CCBB/p/2552977.html
Copyright © 2011-2022 走看看