IOS本地化步骤摘要
1. 添加项目支持的语言
在project navigator窗口(CMD+1)选中工程 -> 中间窗口选中project -> 选中Info标签 -> 点击Localizations窗口下方的加号,添加一种语言。zh-Hans就是简体中文
选中需要本地化处理的strings和xib:(这一步可以不选择,在后续步骤中操作)
这一步的操作将自动添加 zh-Hans.lproj或其他语言对应的文件夹
2. 对已经存在的,添加需要本地化处理的语言。(必须是第一步中已经加入的工程支持的语言):
选中需要添加本地化支持的文件(xib或图片、strings等)-> 进入utilities窗口的File Inspector标签页(option+cmd+1) -> Locailzation项应该是下面两种状态
或
如果是第一种,点击Localize...按钮并选取支持的语言,将进入第二种的状态-> 选中需要支持语言的复选框,将自动在对应语言的.lproj文件夹下创建副本。最后,在单独的文件夹中修改接口,载入资源时将自动载入对应语言的版本
3. app在主屏上,根据不同语言显示不同的名字
在对应语言的infoPlist.string(如果只有一个,按第二步的方式创建副本)中,添加一行CFBundleDisplayName = "Hello World"; 中文对应的可以添加为CFBundleDisplayName = "你好世界";
4.程序中字符串本地化
在程序中遇到需要本地化处理的字符串时,先这样写
self.title = @"New Test View";
改写为
self.title = NSLocalizedString(@"New Test View", @"test view's title");
第二部分的字符串用于生成本地化字符串表时自动生成注释。可以为nil
接下来,在终端中,进入工程所在目录,输入命令genstrings ./HelloWorld/*.m (签名的命令如法遍历子文件夹,可能需要这个 find ./ -name *.m -print0 | xargs -0 genstrings -o en.lproj ])
(这里需要注意当前文件夹和源代码所在的文件夹路径。不清楚的话需要了解一下shell命令基本知识了)
操作过后,会生成一个Localizable.strings文件。它的内容是这样的
/* test view's title */
"New Test View" = "New Test View";
(如果找不到,检查两点:A 当前路径和操作的.m文件路径是否正确 B 工程中使用NSLocalizedString了吗)
将Localizable.strings添加到工程中,使用第二步的方法生成多语言副本,可以把中文版本改为
"New Test View" = "新测试视图";
重新编译后,应该可以在程序中看到对应语言下的样子了。