用正确的方式做正确的汉化

一段时间来经常看到发布有关iPhone的汉化帖子,其实基本的思路都是通过修改系统自带的英文字符串资源文件来实现的 。这里我推荐大家使用 苹果 OS X自身操作系统的方式来汉化,既不损坏系统文件,又达到汉化目的,而且是正宗的OS X Native支持多语言的方式 。

方法如下:

1、让系统默认为简体 中文 系统

现有iPhone都是默认英文系统的,语言缩写是en_US,系统对此会自动寻找English.lproj,en.lproj以及 en_US.lproj是否存在,如果存在就调用其中的字符串来替换需要显示的内容 。我们要让系统默认为中文系统,缩写是zh_CN,系统对此会自动到 zh_CN.lproj里面去寻找字符串资源,如果没找到,则自动切换成en 。

先到iPhone上找到这个文件:/ var /root/Library/Preferences/.GlobalPreferences.plist

注意是个隐藏文件,需要用 ls -a 才能显示出来 。然后用 Mac 的 Pro perty List Editor修改这个文件,找到下面内容:

AppleLanguages

en
jz
......
zh_CN
......
ko

AppleLocale
en_US

然后把...里面的zh_CN移到最前面,再把en_US改成zh_CN< /string>,改好后如下:

AppleLanguages

zh_CN
en
jz
......
ko

AppleLocale
zh_CN

把文件存盘,然后重新启动iPhone,系统就默认为简体中文环境了 。

为什么仍然显示英文?因为虽然系统默认为简体中文环境,但是iPhone并没有为每个应用程序配中文字符串资源,所以接下来我们就要自己加入中文字符串资源 。

汉化方法很简单,就是先把English.lproj所有的内容复制到另一个目录zh_CN.lproj,然后把zh_CN.lproj里面的.strings文件汉化就可以了 。比如说要汉化SpringBoard,先找到它的English.lproj目录在:

/System/Library/CoreServices/SpringBoard.app/English.lproj

我们建一个新目录:

/System/Library/CoreServices/SpringBoard.app/zh_CN.lproj

然后把English.lproj里面所有的文件都拷贝到这个zh_CN.lproj目录里面 。接下来把zh_CN.lproj里面的.strings文件汉化就可以了 。具体的汉化方法,已经有很多教程了,这里就不再赘述了 。

用这种方式,不会影响iPhone原有的系统 。对任何应用,只要复制一份English.lproj(有些应用用en_US.lproj或者 en.lproj,这几个都表示英文,都可以用来复制)到zh_CN.lproj,然后汉化zh_CN.lproj里面的.string文件就可以了 。

如果什么时候你需要回到英文环境,只要简单的把前面说的.GlobalPreferences.plist文件改回出厂时的样子(AppleLanguages中en在最前面,AppleLocale中用en_US),重启 后,系统立即回到英文方式,是不是很方便?

    推荐阅读