这周在公司一直在搞APP 国际化,这个看似简单的事情却让我走了不少弯路,网上的教程我已不想吐槽,fuck!首先最可能的原因是我们的项目工程太大,1.8G,对此我也不想吐槽,毕竟项目至少被5个人蹂躏过,不废话步入正题:
```首先我先介绍一下国际化过程中可能会遇到的问题和简便的方法`
1.如果运行报错,首先检查一下你的国际化string文件,看看有没有少引文分号或者是等号;
2.如果你发现系统语言和代码写的都正确,但是有的内容国际化了有的却没有国际化,首先看一下你的国际化string文件是不是行数太多;
3.如果你工程的需要国际化的内容较多,建议你把国际化分为模块化,也就是你在创建String文件的时候,文件名跟你要国际化的文件夹名字一样,这样看起来比较清晰
4.你最好把工程里面的国际化内容先按文件夹整理好,然后用翻译工具一下子翻译出来,再整理好它的格式就ok了,这样做你会省下不少时间。
下面上步骤图
第一步:command+n创建一个String File 如下图:

第二步:如果你工程需要国际化的内容较多,那么红色框框里面的文件名可以以你的类文件夹命名。

这是我以CC名字命名的:

第三步来到这里:

第四步点击加号选择你要国际化的语言:

第五步来到CC.String这里,点击红色区域按钮

第六步来选择上一步弹出来的框框,选择一个语言

第七步来到工程代码里面:

```大家可以看到我是这样写的NSLocalizedStringFromTable(@"国际化", @"CC", nil)```
我现在解释一下为什么用它NSLocalizedStringFromTable,其实看字面意思就知道了,来自哪个表,第一个参数@"国际化",就是你要国际化的内容,第二个参数@"CC",就是我第二步创建的String文件已CC命名的,所以这里用它来取,第三个参数可以写nil,也可以写@""```
```与NSLocalizedStringFromTable功能差不多的并且常用的还有一个叫NSLocalizedString,如果你用NSLocalizedString那么前提是你的String文件名要以Localization命名,记住必须是它,而且你在代码中要这样写NSLocalizedString(@"国际化", nil)或者NSLocalizedString(@"国际化", @"")这样写```
```以上内容都是工程内容的国际化,下面介绍APP名字的国际化,这个就比较简单了```
```找到你的info.plist文件,在右边选择你的国际化语言,之后你会发现你的info.plist文件可以折叠展开了。```

最后一步在展开之后的文件夹里面对应写上CFBundleDisplayName = "你的APP名字";
比如我在英文文件里面这样写CFBundleDisplayName = "Your APP name";
xib和SB的国际化步骤,和内容国际化差不多,首先点击你的xib文件


在对应的文件里面自己更改内容就ok了

切换模拟器语言,验证你的内容是否国际化了


最后见证奇迹的时刻,command+R
网友评论