一般来说,我知道如何进行iOS应用的本地化,唯一的办法是在可用的方式之间进行选择并以正确的方式进行。所以我想问你关于你的项目的l10n方法。
以下是我的意见:
我认为我可以采取两种方式:
选项A:通过使XIB可以本地化并添加语言版本来本地化每个nib文件:
选项B:在代码中进行本地化,将所有需要的出口连接到属性并正确设置其标签/标题:
我会选择第二个选项,因为我看不到它的缺点,它可以允许在每个视图控制器中控制一个地方的所有内容,但我想知道你的选择是什么?哪种方式更适合你?
编辑:我知道ibtool
可以简化计划A中的流程,但我仍然不相信它。
答案 0 :(得分:3)
我在所有项目中使用选项B,因为这也使我很容易将字符串文件分发到本地化程序。之后需要进行测试以确保琴弦适合放置。另外一些项目不使用XIB文件,因此无论是否使用XIB文件,该过程始终都是相同的。 根据我的经验,该选项根本没有内存问题。
答案 1 :(得分:1)
嗯,我期待来自SO用户的更多反馈,但这很好,因为经过一些研究后我已经决定放弃选项B并选择A的修改版本。
我大量使用了来自Compile-time approach by Philippe Casgrain的想法。通常,它使用ibtool
在构建时自动本地化笔尖。菲利普的方法使合理的维护现在合理。我在代码中使用的所有其他字符串都是使用NSLocalizedString
方法处理的,这在我的案例中很容易实现(只使用genstrings
工具)。未来可能遇到的唯一问题是添加具有不同/修改的UI布局的新目标。
很难说它是否是最佳选择。时间会证明,所以有一天我会更新问题,并与您分享决定如何为我做出决定。也许有人会在功能中受益;)