IOS开发技巧之国际化设置

以UIAlertView使用为例,在不使用国际化的时候,咱们的代码多是这样写的,以下,网络

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示" message:@"网络链接失败" delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"肯定", nil];
[alert show];

这样的代码有什么问题吗?其实没有问题,只是这样将汉字内容直接写在代码里面,老是有点不规范的感受。固然一个明显的问题就是,这段话在中、英文的语言环境中都是显示同样的内容,因此我有必要作一下国际化来优化这边的代码。优化

给项目添加国际化的步骤以下,spa

一、新建->Resource->Strings File,新建Strings File文件,文件命名为Localizable,以下图,.net

这里须要注意的是为了国际化新建的Strings File必须命名为Localizable,由于Xcode寻找国际化的内容就是根据Localizable文件来查找的,若是你随便命名或者命名书写错误,那么就没有下面的效果。code

二、将新建的Localizable.strings文件国际化,以下图所示,orm

先选中Localizable.strings文件,
ci

而后点击右侧面板中的Localize..按钮字符串

上面的步骤就是容许对Localizable.strings文件进行国际化,我不知道这么说对不对,反正就是按照这个步骤,我是这么理解的,大神看了不要见笑。
get

三、添加多国语言,好比简体中文、英文,以下图,string

选择项目配置文件->Project->Info,下面有Localizations国际化配置信息,点击"+"号,添加多国语言,以下图,所示,

这里我选择了Simpled Chinese,表示添加了简体中文国际化,English英语国际化是默认添加的,点击之后出现下图,

这里只勾选Localizable.strings前面的复选框,表示只对Localizable.strings文件添加国际化,点击Finish。这时候咱们发现成功添加了Localizable.strings国际化文件,看它分别对应有简体中文版和英文版的文件,以下图,

四、添加须要的不一样语言字符串,

实现国际化,咱们在对应的简体中文和英文的Localizable.strings中分别填写不一样的内容,以下代码所示,

简体中文Localizable.strings文件,

"REMIND"="提示";
"OK"="肯定";
"CANCEL"="取消";
"NetworkConnectError"="网络链接失败";

英文版Localizable.strings文件,

"REMIND"="Remind";
"OK"="OK";
"CANCEL"="Cancel";
"NetworkConnectError"="Cannot Connect Network";

以"OK"举例来讲,若是在中文状态下,那么它表示“肯定”;若是在英文状态下,它表示"OK"。须要注意的是,不要遗漏结尾的分号“;”。

五、使用国际化文件,

使用文件中的内容,只须要使用NSLocalizedString(..,..)就能够了,仍是以UIAlertView举例来讲,以下代码所示,

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"REMIND", nil) message:NSLocalizedString(@"NetworkConnectError", nil) delegate:self cancelButtonTitle:NSLocalizedString(@"CANCEL", nil) otherButtonTitles:NSLocalizedString(@"OK", nil), nil];
[alert show];

这样,代码里面没有生硬的参杂中文,看起来简洁多了,最重要的是若是将手机在中文和英文之间切换,那么显示的内容也分别对应中文和英文的状态,以下图所示,

中文状况下,显示中文,

英文状态下显示英文内容,

相关文章
相关标签/搜索