目前launch image还是没有成功,但是其他view controller是可以的。
查stack overflow有人建议自己做一个launch screen ,实际上也是一个用户的view controller,然后在这个controller里面做定制化的操作。我暂时没有这样处理,只是把开机画面的文字写成英文。
关于InfoPlist.strings,很多资料都是要手工新建一个资源文件,命名成这样,然后在里面定义一个常量:
CFBundleDisplayName = "app的名字";
我实际上也这样做,只是觉得有点浪费,因为其他字符串内容并没有放在这里面,而是放在另外一个文件,也需要自己建立:Localizable.strings
这里面随便定义自己想要的字符串,格式是“key name” = “string utf8 format”,也就是说,左边是键值,以后所有语言都用这个值来调用,右边就是各种语言的翻译内容
比如:
"about" = "关于";
那么怎么访问这个文件,从而获取到对应的语言呢?
答案是
NSString *NSLocalizedString(NSString *key, NSString *comment)
具体用法是:
_listtitle.text = NSLocalizedString(@"about", @"");
这样,就可以自动根据系统的当前语言去指定的文件里找到对应的翻译好的字符串了。
当然,前面说少了一步,就是新建了一个strings文件还不够,还要同时把它变成支持多种语言,这样文件就会变成一个文件夹,里面有多种语言,本来应该截几个图来说明比较好。
不过有一个链接说得很好:http://ios.jobbole.com/86262/,在此引用一下吧。里面已经有对应的截图。
关于把图片资源多语言化的问题,如果图片没有放在assets.xcassets里面,而是放在其他目录,直接选中图片,然后在文件检视器(file inspector)里面,localization那里选中对应的语言,就会生成响应的目录。但我很多png文件都在assets.xcassets里的,无法找到localization的按钮,只好换了一种办法,就是把图片里面的文字改为空白,也就是使用统一的图片文件,至于文字则通过label控件来做,这样label响应的text可以在main.storyboard文件夹下面的main.strings里面找到,每一种语言对应一个文件,修改响应的字符串就行了。