添加本地化语言的方式:
如下图:
先看关于应用本身信息
的本地化:
先修改*-Info.plist
文件,加入Application has localized display name
为YES
。然后在InfoPlist.strings
的对应语言下设置CFBundleDisplayName="应用名称";
即可。
再看关于应用内容
本地化:
目前根据工程是否使用storyboard
分为两种本地化1、有storyboard
本地化和2、无storyboard
本地化。
1、有storyboard
本地化
经过添加本地化语言后,storyboard
会如下图:
文件*.strings(语言)
的内容为"控件ID" = "显示内容"
,控件ID
是添加控件是自动生成的,查看方式:在storyboard
中选中指定控件,显示出右侧的Utilities
窗口,选中下方的Show the identity inspector
,Object ID
就是了。如下图:
将需要做本地化的控件的ID配置在指定的*.strings
文件中即可。 这种方式适合支持SDK6.0以上的应用。因为storyboard
的base
是仅支持iOS6.0以上的。
2、无storyboard
本地化
步骤:
1. 新建Localizable.strings
文件;
2. 选中Localizable.strings
,在Utilities
窗口下的Show the file inspector
窗口中,点击Localization
中的Localize...
按钮;
3. 选择需要做本地化的语言。
此时内容本地化文件已准备好,设置内容如"Alert Title"="Alert";
。一定注意最后要加;
。
代码中调用:NSLocalizedString(@"Alert Title", nil)
。
多个target的本地化
公司的APP要为多家公司做定制,定制的内容涉及到icon、启动图及应用名称。
我暂时以多个target应对。
定制icon及启动图只需要复制原来的target(右击,选择Duplicate
),然后在Build Phases
的Copy Bundle Resources
中删掉原来的icon及启动图,加入新的icon及启动图(与原来的同名)即可。
定制应用名称需要在Build Phases
的Copy Bundle Resources
中删掉原来的InfoPlist.strings
,然后新建一个strings
文件,名字为InfoPlist.strings
,然后如2、无storyboard
本地化一样加入多语言支持。然后加入CFBundleDisplayName="应用名称";
即可。
转载:http://www.apblog.cn/blog/2014/07/21/ios-localizable/