iOS国际化详解
对于iOS国际化,一般包括:
1. 工程项目名称国际化
2. 工程内控件内容国际化
3. 工程内图片的国际化
4. 工程中其它文件的国际化
首先我们对于第一种情况 工程项目名称国际化进行说明:(我使用的是iOS 8.4系统 Xcode 版本是6.4)
1.1 首先创建一个Single View Application模板项目, 并命名为LocalizationDemo。
1.2 点击工程PROJECT 在Info列表下的Localizations下点击加号 添加国际化语言。这里为了演示方便只添加了Chinese(Simplified)
1.3 然后在Supporting Files 文件夹下 只发现了两个文件 一个Info.plist 一个main.m文件,如果要进行工程名称国际化需要有一个InfoPlist。strings文件(Xcode6之前有) 这里我们创建一个就行了, 然后选中该文件在右侧的inspector下点击Localizetion添加需要的语言即可。
然后在InfoPlist.strings(Englist)添加代码:
CFBundleDisplayName ="China";
在InforPlist.strings(Chinese Simplifified)添加代码:
CFBundleDisplayName ="中国";
然后运行项目 即可, 当改变手机中的语言环境的时候工程的名称就会出现不同的中英文。
2.1 对于工程内的控件,这里我们需要为工程添加一个UILabel 一个UIImageView 控件,并命名为nameLabel与myImageView, 然后同InfoPlist.strings类似 创建一个Localizable.strings并在Localizable.strings(English)添加代码:
image="qsmyEn.png";```
###在Localizable.strings(Chinese Simplified)中添加代码:
```name ="名字";
image="qsmyCh.png";```
##2.2 然后使用的时候 只需使用NSLocalizedString即可:
```self.nameLabel.text = NSLocalizedString(@"name", nil);
self.myImageView.image= [UIImage imageNamed:NSLocalizedString(@"image", nil)];```
####如果你的Location文件是自己自定义的,而且名称不是Localizable是其它的,那么你需要使用这样的代码:
```self.nameLabel.text = NSLocalizedStringFromTable(@"name",@"你的Localization名称", nil);
self.myImageView.image= [UIImage imageNamed:NSLocalizedStringFromTable(@"image",@"你的Localization名称", nil)];```
####然后运行即可。
##3.1 对于图片的国际化 一种是上面提到的 使用Localizable文件进行使用,通过NSLocalizedString来获取图片名称,另一种方法就比较正规化了,点中你要本地化的图片,如“icon.png”, 然后在右侧的**inspector下点击Localization选中需要国际化得语言即可。**
##**4.1 对于其他文件的国际化,同图片进行国际化的第二种方法即可。**
####**最后运行结果:**
****
![](http://upload-images.jianshu.io/upload_images/3718166-c62e6774cf4e1e49.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![](http://upload-images.jianshu.io/upload_images/3718166-143474e04a15f312.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)