国际化Localization

以UIAlertView使用为例,在不使用国际化的时候,我们的代码可能是这样写的,如下,

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

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

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

1、新建->Resource->Strings File,新建Strings File文件,文件命名为Localizable,如下图,

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

2、将新建的Localizable.strings文件国际化,如下图所示,

先选中Localizable.strings文件,

然后点击右侧面板中的Localize..按钮

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

3、添加多国语言,比如简体中文、英文,如下图,

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

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

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

4、添加需要的不同语言字符串,

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

简体中文Localizable.strings文件,

?
1
2
3
4
"REMIND" = "提示" ;
"OK" = "确定" ;
"CANCEL" = "取消" ;
"NetworkConnectError" = "网络连接失败" ;

英文版Localizable.strings文件,

?
1
2
3
4
"REMIND" = "Remind" ;
"OK" = "OK" ;
"CANCEL" = "Cancel" ;
"NetworkConnectError" = "Cannot Connect Network" ;

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

5、使用国际化文件,

使用文件中的内容,只需要使用NSLocalizedString(..,..)就可以了,还是以UIAlertView举例来说,如下代码所示,

?
1
2
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];

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

中文情况下,显示中文,

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值