3G iPhone香港发售会直击 易购数码★iPhone移动电源 北京苹果iPhone维修中心 破解iPhone 2.0 图文详细教程 来电视频铃声火热下载中
新手、菜鸟者,请进!!! iPhone技术大全 iPhone问题解答 刷机相关名词解释 iPlus2.0教程和下载
高清iPhone电影下载 iPhone PC Suite(v1.0.7.2) iPhone1.1.4自制固件 iPhone免费破解游戏下载 iPhone视频转换套件+注册机
 31 1234
发新话题
打印

[教程] 【教程】将语言从英文切换到中文

【教程】将语言从英文切换到中文

更新:现在安装LanguagePack(也叫iLang)就可以切换了,见第三方软件列表贴。
更新:这是早期的手工DIY切换方法。

更新:新版1.1.1可以直接支持多国语言切换,不需要用这里的方法了。

这是我写的一个老贴了,发布在其他论坛,原帖发布时间是2007-8-4 21:03,原贴名:用正确的方式作正确的汉化。因看到有人问语言切换的问题,就复制过来放在这里,内容略有删改。

标题定的不是太好,实际上这里介绍的方法可以将默认语言改为任何一个系统支持的语言。

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

写在前面:
按照这里的方法操作,你需要一些预备知识,比如怎样从iPhone上下载文件、怎样将文件上传到iPhone、怎样修改plist文件。我自己是在iPhone上安装了SSH系统,用SFTP传文件的,而对plist文件,我是在Mac上用开发工具包里面的Property List Editor进行修改的。


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的Property List Editor修改这个文件,找到下面内容:
引用:
<key>AppleLanguages</key>
<array>
   <string>en</string>
   <string>jz</string>
   ......(省略)
   <string>zh_CN</string>
   ......(省略)
   <string>ko</string>
</array>
<key>AppleLocale</key>
<string>en_US</string>
<string></string>的顺序决定了系统搜索资源的顺序,可以看到最先出现的是:
引用:
<string>en</string>
说明是最先搜索英文的。要改变默认语言环境,我们把<string>zh_CN</string>移到最前面,再把后面的<string>en_US</string>改成<string>zh_CN</string>,改好后如下:
引用:
<key>AppleLanguages</key>
<array>
   <string>zh_CN</string>
   <string>en</string>
   <string>jz</string>
   ......(省略)
   <string>ko</string>
</array>
<key>AppleLocale</key>
<string>zh_CN</string>
把文件存盘,然后重新启动iPhone,系统就默认为简体中文环境了。

2、添加资源文件

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

汉化方法很简单,就是先把English.lproj所有的内容复制到另一个目录zh_CN.lproj,然后把zh_CN.lproj里面的.strings文件汉化就可以了。比如说要汉化SpringBoard,先在iPhone上找到它的English.lproj目录在:
引用:
/System/Library/CoreServices/SpringBoard.app/English.lproj
我们在iPhone上建一个新目录:
引用:
/System/Library/CoreServices/SpringBoard.app/zh_CN.lproj
然后把English.lproj里面的.strings文件汉化后传到iPhone上的zh_CN.lproj目录里面就可以了。具体的汉化方法,已经有很多教程了,这里就不再赘述了。

3、汉化后对系统的影响

由于本方法仅修改了strings字符串资源文件,没有动plist文件(.GlobalPreferences.plist例外),只增加了一个zh_CN.lproj的语言资源目录,因此不会对iPhone原有的系统有任何副作用。

如果什么时候你需要回到英文环境,只要简单的把前面说的.GlobalPreferences.plist文件改回出厂时的样子(AppleLanguages中en在最前面,AppleLocale中用en_US),重启后,系统立即回到英文方式,是不是很方便?我自己就写了个简单的脚本放在iPhone上,用来切换语言的,如下:

将语言切换到中文的脚本/usr/bin/chinese.sh:
引用:
#!/bin/sh
cd /var/root/Library/Preferences
cp -f Chinese.plist .GlobalPreferences.plist
echo -n "Switching to Chinese, please stand by ..."
/usr/sbin/reboot
将语言切换到英文的脚本/usr/bin/english.sh
引用:
#!/bin/sh
cd /var/root/Library/Preferences
cp -f English.plist .GlobalPreferences.plist
echo -n "Switching to English, please stand by ..."
/usr/sbin/reboot
其中Chinese.plist和English.plist是对应于中文和英文的.GlobalPreferences.plist,改了个名字而已,都放在/var/root/Library/Preferences目录里面。/usr/sbin/reboot是从iPhone的升级文件中提取出来的。

我在iPhone上装了Term(仿真终端),要切换中文,就在Term里面输入:chinese.sh,切换英文就输入:english.sh。

[ 本帖最后由 n000b 于 2007-10-26 07:11 编辑 ]
本帖最近评分记录
  • gavin 威望 +10 技术贴 一定要支持 2007-9-25 15:07
  • gavin 金币 +10 技术贴 一定要支持 2007-9-25 15:07
不回复短信 | 开贴提问前先看置顶FAQ | My Personal BLOG

TOP

飘过

[ 本帖最后由 claudio 于 2007-9-26 23:28 编辑 ]
人活着不一定有意义,但是只要活下去,肯定会有有趣的事。
  楼上的飘的有点过了吧
佛曰:我用前世五百次的回眸换来的今生与你擦肩而过……我不要与你擦肩而过,要与你携手百年!
水的太严重拉。..这里可是技术讨论区....斑竹不能带这个坏头!!!!
谁能帮我刷机,请和我联系,谢谢!!
看看是什么全中文吗
可不可以把盖好的plist文件传上来?  没有mac机器,没法改

TOP

安装iBrickr后再装LanguagePack吧,自动切换,不需要这么麻烦手工DIY。
不回复短信 | 开贴提问前先看置顶FAQ | My Personal BLOG

顶下

能不能直接把文件上传来?

TOP

引用:
原帖由 82362181 于 2007-10-5 16:22 发表
能不能直接把文件上传来?
安装iBrickr后再装LanguagePack吧,自动切换,不需要这么麻烦手工DIY。
不回复短信 | 开贴提问前先看置顶FAQ | My Personal BLOG

TOP

 31 1234
发新话题
版块跳转