美文网首页IOS 菜鸟进阶
使用genstring和NSLocalizedString实现A

使用genstring和NSLocalizedString实现A

作者: 学呀学呀总得学会了吧 | 来源:发表于2018-11-23 17:41 被阅读52次

字符串本地化的使用

【情景】如果有一个按钮,上面的文字在中文系统上显示为“点击”,在英文系统上显示为“Click”,我们可以这么做:

button.text = NSLocalizedString(@"click", nil);

这里的click其实相当于字典的key,然后我们维护两套字典,英文字典中有这么一行:

“click” = “Click”;

在中文字典中则是:

“click” = “点击”;

运行时,系统先判断当前的语言,然后根据这个key,到对应语言的字典中找到它的“翻译”。


NSLocalizedString:

NSLocalizedString是一个定义在NSBundle.h中的宏,气用途是寻找当前系统语言对应的Localizable.strings文件中的某个key的值。

第一个参数是key的名字,第二个参数是对这个“键值对”的注释,在用genstrings工具生成Loclizable.strings文件时会自动加上去。

genstrings

genstrings命令支持8种宏,分别是CFCopyLocalizedString、CFCopyLocalizedStringFromTable、CFCopyLocalizedStringFromTableInBundle、CFCopyLocalizedStringWithDefaultValue、NSLocalizedString、NSLocalizedStringFromTable、NSLocalizedStringFromTableInBundle、NSLocalizedStringWithDefaultValue,仔细观察发现它们是两两相对的四组,只要记NSLocalizedString系列即可,CFCopy是它们的C语言版本。

总结:

1.在代码里用NSLocalizedString获取要本地化的字符串

2.用genstrings扫描代码文件,生成Localizable.strings,然后加到工程中

了解更多

相关文章

网友评论

    本文标题:使用genstring和NSLocalizedString实现A

    本文链接:https://www.haomeiwen.com/subject/axtsqqtx.html