官方推荐方法是为了本地化XIB/Storyboard,需要在每个你想要支持的本地化中创建.xib和.storyboard文件,放在xx.lproj文件夹中(其中xx是两个字母的语言ID)。
这样会产生一个问题,因为你有多个文件,在很多情况下共享相同的UI,并且容易更改。如果你想要重新设计一个视图的UI,你将不得不多次进行操作(如果你在xib本身中输入了本地化字符串值,则更糟)。这违反了DRY原则。
似乎更有效的方法是在需要时调用NSLocalizedString()
,并只使用一个XIB或Storyboard作为基础本地化。
那么,我为什么应该(或不应该)创建本地化的XIB/Storyboard文件呢?