随着社会发展,各种app应运而生,有些app需要面向国际,这样就要求不仅在界面设计以及用户体验上有很大的优势,最基本的就是app要素的国际化,即app名称、关键字、图片等,有些app要求在应用内部就可以切换语言环境。
1、app名称国际化
只需要手动创建一个 InfoPlist.strings 文件,在不同语言的文件下写上对应的
CFBundleDisplayName = "中文app";
CFBundleDisplayName = "Application-English";
2、关键字
创建 Localizable.strings文件,选中文件,在右边属性栏的 反正是勾选你需要国际化的语言,没有的话可以在project->info下的localizations添加需要的语言环境,同上,在不同语言文件下写上对应的关键字,例如:
"paste" = "paste"; (English)
"paste" = "粘贴"; (中文)
在使用的时候,NSLocalizedString(@"paste", @“paste”); 其中第一个参数为关键字,第二个参数为关键字的描述。
3、图片(有两种方式)
a、将需要的图片(scan.png)添加到项目本地,不是添加到assets中,选中图片,打开右侧边栏,选中Localize...,如图
选择需要的语言,然后在左侧边栏右击该图片,showinfinder之后你会看到多个语言环境的文件中包括该图片,然后将不同环境下的scan.png一一对应放进去即可。
b、和Localizable.strings类似,图片资源存放在Images.xcassets里,使用时将不同语言的图片资源在Localizable.strings里一一对应设置,如下所示:
Localizable.strings (English)
"imageName" = "pic-en";
Localizable.strings (Chinese(Simplified))
"imageName" = "pic-cn";
4、说到内部切换语言,类似微信、支付宝的多语言功能
在网上找到参考项目:
https://github.com/maximbilan/ios_language_manager/blob/master/README.md