本将要国际化的内容是:
- 图片国际化
- storyboard/xib国际化
(一)图片的国际化
方式一:
对于同一张图片,每种语言设置一张,这种设置方式适用于图片上内容只有会哪种语言的人才知道什么意思

代码方式就是像字符串本地化一样
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(80, 300, width - 160, 200)];
imageView.image = [UIImage imageNamed:NSLocalizedString(@"imageName", nil)];
[self.view addSubview:imageView];
方式二:
首先需要添加需要本地化的语言,由于之前添加过了,所以就不需要在设置了。具体步骤如下:
1、将图片拖入工程中,然后选中图片.展开Xcode右侧的file Inspection,点击Localize,设置语言,如下图:

2、贴出代码:
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(80, 300, width - 160, 200)];
NSString *imageName = NSLocalizedString(@"icon.jpeg", nil);
imageView.image = [UIImage imageNamed:imageName];
[self.view addSubview:imageView];
(二)多人开发情况下的字符串本地化
多人开发为了避免冲突,需要修改你的strings文件名字不是Localizable,那么你可以使用NSLocalizedStringFromTable这个宏来读取本地化字符串。NSLocalizedStringFromTable(<#key#>, <#tbl#>, <#comment#>)
1、key:系统根据key取字符串
2、tbl:自定义strings文件的名字
3、comment:可以不传
附上效果图 及代码:

UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
btn.frame = CGRectMake(50, 380, width - 100, 30);
NSString *title = NSLocalizedStringFromTable(@"title", @"zMj", nil);
[btn setTitle:title forState:UIControlStateNormal];
[btn setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
[self.view addSubview:btn];
(三)国际化语言的切换
原理:应用启动时,首先会读取NSUserDefaults中的key为AppleLanguages对应的value,该value是一个String数组
网友评论