美文网首页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