注。。这是件略蛋疼的事情,如果无特殊需求建议还是使用xcode本身进行文件本地化操作。
过程:
1) 扫描工程文件,找到需要本地化处理的文件(一般是plist或者html)
1) 建立en/zh-Hant/zh-Hans目录(假设需要支持英/繁体/简体), 并把文件拷贝到目录下
2) 修改工程目录,为本地化文件建立关联
第1,2步就不细说了, 普通的文件操作. 重点介绍一下第3步
以"about.html"为例, 假设需要支持英/繁体/简体:
首先,随便找一个编辑器打开工程文件(.xcodeproj), 选中projet.pbxproj文件.
可以看到一个庞大且恶心的xml文件充满屏幕.. [没错就是要改它_(:з」∠)_
进行本地化操作需要做两件事情:
1). 对新建的en/zh-Hant/zh-Hans下的资源进行关联(相当于在工程里add资源)
2). 把about.html和它所有的本地化版本关联在一起
以下是需要添加的代码( 红色和蓝色b随后进行说明 ):
/* Begin PBXFileReference section */ // 最好将以下内容添加到此注释之后
E284C1981398864F10DB807A /* en */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "en"; path = "en.lproj/about.html"; sourceTree = "<group>"; };
E284C1981398864F60DB807A /* zh-Hant */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "zh-Hant"; path = "zh-Hant.lproj/about.html"; sourceTree = "<group>"; };
E284C1981398864F40DB807A /* zh-Hans */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "zh-Hans"; path = "zh-Hans.lproj/about.html"; sourceTree = "<group>"; };
/* Begin PBXVariantGroup section*/ // 最好将以下内容添加到此注释之后
E284C1981398864F00DB807A /* bout.html */ = {
isa = PBXVariantGroup;
children = (
E284C1981398864F10DB807A /* en */,
E284C1981398864F40DB807A /* zh-Hans */,
E284C1981398864F60DB807A /* zh-Hant */,
);
name = about.html;
sourceTree = "<group>";
};
E284C1981398864F00DB807A : 这是标识 about.html 资源的ID
获取方法: 搜索"about.html", 找到:
E284C1991398864F00DB807A /* qq_about.html in Resources */ = {isa = PBXBuildFile; fileRef = E284C1981398864F00DB807A /* qq_about.html */; };
其中 "fileRef = " 之后的24位即是需要的ID. 注意同一个文件的各种ID长得很像...
E284C1981398864F60DB807A 等标红的ID用来关联新建的本地化文件夹下的资源, 这些ID是需要自己YY出来的.
通过观察其它工程发现, 这些ID跟上述蓝色ID长得很像, 但中间有几位不同. 这里我挑了一位(第16位)顺眼一点的改掉...貌似没什么问题, 可以work.
ok, 大功告成, 打开工程看看效果.