之前实习的时候大概接触过字符串本地化。但是不太知道具体原理,只知道如何去使用。看完genstrings之后好像明白是怎么回事了。
字符串本地化的使用
如果有一个按钮,上面的文字在中文系统上显示为“点击”,在英文系统上显示为“Click”,我们可以这么做:
button.text = NSLocalizedString(@"click", nil);
这里的click其实相当于字典的key,然后我们维护两套字典,英文字典中有这么一行:
“click” = “Click”;
在中文字典中则是:
“click” = “点击”;
运行时,系统先判断当前的语言,然后根据这个key,到对应语言的字典中找到它的“翻译”。
先后顺序问题
按照之前我了解的思路,只要再到工程文件中创建两套字典就可以了。不过有一问题是,NSLocalizedString宏的第二个参数好像没有意义。其实这个参数是为了genstrings命令准备的。
genstrings作为“generate Localizable.strings”的简称,顾名思义,就是查找文件中的宏,然后自动生成Locali