iOS之国际化

互联网中是没有国界的,既然没有国界,那App就要实现多个版本,今天就说下国际化的方法。

在国际化之前,你可以在iphone中的”设置->通用->多语言环境->语言”中来查看你的iphone支持哪些语言,当然也可以写一段代码测试一下你的iphone都支持哪些语言.测试代码如下:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];  //取得用户人默认信息
NSArray *languages = [defaults objectForKey:@"AppleLanguages"]; 
NSLog(@"%@", languages);

准备工作

  • 在info.plist文件中添加Bundle display name,Value为App名称。
  • 新建String File类文件(other中/Xcode 8 在Resource中),命名为InfoPlist,注意大小写
  • 选中InfoPlist.strings,点击右侧面板的Localize...
  • 添加语言
  • 选中工程,对应PROJECT-InfoLocalizations选项下的Language,点击+,添加你需要的语言。下文中的例子皆以 Chinese(Simplified)为例。

下面就开始进行国际化了。

App名称

展开InfoPlist.strings文件,在对应的语言的文件中写入相应键值,如在中文的文件中写入"CFBundleDisplayName" = "中文应用";//key都是一样的,value是相应语言的App名称。

Stroyboard & xib

  • 选择Storyboard/xib文件,同样点击右侧面板的Localize...
  • Xcode会自动为你生成对应的Key-Value,修改相应语言文件的value值即可
  • .m文件
  • 在需要国际化的字段写入NSLocalizedString(<#key#>, <#comment#>方法中,第一个参数是key值,第二个是对第一个参数的注释,一般写为nil。eg:label.text = NSLocalizedString(@"hello",nil);
  • 新建一个String File类文件,命名为Localizable,注意大小写
  • 展开Localizable文件,在对应语言的文件中写入键值对,键为NSLocalizedString中的key,value为需要国际化的语言,eg:"hello" = "你好";
  • 一般键值对会比较多,一个一个写很麻烦,这时我们可以用终端命令来帮我们自动生成键值对(终端命令: gensstrings +App文件路径值得注意的是,这个命令只能自动编译一个.m文件,自己可以写一个循环来将所有的.m文件都编译一遍。编译好的文件会生成在终端所在的路径下,编译的文件名是Localizable.strings,你再复制到你的Localizable文件中进行相应语言的修改即可)

导入导出文件的方式

  • 在Xcode中选中你的项目文件,即.xcodeproj文件,在导航栏中依次选择Editor-Export For Localizations...选择相应的路径保存,即可导出需要国际化的编译文件。
  • 打开导出的文件进行修改,将value值修改成相应的语言。
  • 在Xcode中选中你的项目文件,即.xcodeproj文件,在导航栏中依次选择Editor-Import Localizations...选择刚才导出的文件,即可导入你修改好的编译文件。

OK~到这里国际化就完成了,App会显示系统设置中语言的类型,国际化成功。。。

版权声明:本文为 Crazy Steven 原创出品,欢迎转载,转载时请注明出处!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容