以前做加菲狗的时候因为面向的是国际市场,所以运营对APP的一些国际化要求比较高。涉及了八国语言,但是因为推广力度的加强,一些未做国际化的语言国家也进行了推广,这样一来,app与AppStore中的默认语言的设置就成了中文,于是程序再次被运营吊打······
其实上面的解决办法是自己工程里面设置好默认语言为英文,上传AppStore中的时候也设置成英文就行了。 好了,言归正传,下面我们一步一步的让我们的项目走向国际化。
1.让我们建立一个多语言文件
给我们的国际化文件命名为Localization,这个随意哈~
2.让我们建立一个多语言文件
注意哦,这里苹果给了我们一点点小惊喜,这个多语言文件的命名必需是“Localizable”这样才能被Xcode识别。
注意哦,这里有个小坑!下面,我们可以看一下我们国际化后的工程目录。 请点击那个红框标注的按钮哦,原因在下面
3.为我们的多语言文件添加新的语言
注意咯,如果不按照第二部操作的话你可能会遇见一个问题,那就是你无法为你的多语言文件添加新的语言!为毛?那是因为找不到多语言文件了,原谅我没有深究下去吧~
点击”+“后里面后很多语言的选择,这里不好截图我就不贴出来了。下面有两种情况:
(1).不按照第二步点击的,会找不到多语言文件,无法为其添加语言:
(2).正常的是为所需要的多语言文件添加语言
4.多语言的使用
iOS会根据你的系统语言自己判别使用哪种语言,例如你使用简体中文,并且多语言文件夹里有简体中文的文件自己进行相应的替换。使用的API就是
NSLocalizedString(<#key#>, <#comment#>)
”key“就是多语言文件对应关键字,comment就是内容,可以写备注,也可以不写,iOS就是由这个key根据系统的语言寻找对应语言文本的关键字进行替换的。不过建议关键字的选取要尊重原文,不要图简单,因为后面内容多了,你图简单省事,缩写少写,你就会发现,全乱套了~
大家做两个文件一个中文繁体,一个英文切换系统语言试试看~~~
5.图片国际化
这些东西说穿了一文不值。
```
+ (NSString *) getLanPicNameWithPicName:(NSString *)picName
{
if ([SYSTEM_LANG hasPrefix:@"zh-Hans"])
{
return [NSString stringWithFormat:@"%@_hans",picName];
}
return [NSString stringWithFormat:@"%@_en",picName];
}
```
这个是我封装的一个方法,将图片的名字输入,来”自动“进行图片国际化。其实就是将图片的名字进行却分开而已,通过判别系统语言,再给imageNmae换个名字而已。看了我图片的命名方式你就明白了。