我刚开始接触原生iOS开发,并尝试对Storyboard进行本地化。
我一直在通过更新Storyboard对应的Main.strings
文件来本地化UILabel
和UIButton
对象的文本:
// UIButton:
"cEx-Yi-RY8.normalTitle" = "Done";
// UILabel:
"1l2-H9-hRc.text" = "Safety information!";
我该如何对 UITabBarItem
进行相同的操作?我尝试了:
//UITabBarItem:
"oSH-y1-hFoB.title" = "Scan";
但它不起作用 :(
我不明白为什么... 我可以看到在UITabBarController中手动更新文本是可能的:
- (void)viewDidLoad
{
//...
item.title = NSLocalizedString(@"scan", nil);
}
但是我必须将这些翻译放在单独的Localizable.strings
文件中,这似乎很不好。
另一方面,至少Localizable.strings
中的翻译有点可读性,例如"scan" = "Scan";
而不是"oSH-y1-hFoB.title" = "Scan";
...
尽管如此...我还是不明白为什么有些东西可以在Interface Builder中工作,而其他东西则不能,必须手动完成。
我讨厌添加所有这些样板代码来执行诸如本地化UI中的文本之类的重复性任务,因为框架应该只需能够为我完成它。(如果它可以为UIButton做到这一点,那为什么不能为UITabBarItem做到呢......)
或者我是不是忽略了什么?