用于XIB文件的iOS Localizable.strings文件?

Jav*_*wag 12 localization objective-c ipad localizable.strings ios

我正在将iOS项目翻译成葡萄牙语,我已经创建了一个pt.lproj/Localizable.strings文件,并且我已经在源代码中添加了NSLocalizedString().一切正常!有一个小问题 - XIB文件中的字符串不会被翻译...我知道这是设计的.

我已经看到ibtool命令可用于从名为x的XIB文件中删除字符串并将其放入名为x.strings的文件中......但我的问题是,有没有办法从所有xib中提取字符串文件并将它们全部放入一个.strings文件中(例如Localizable.strings?或者甚至另一个名为XIBs.strings的文件会好吗?)

mja*_*mja 10

如何翻译xib文件有两种选择.一种是将UI元素连接到出口,并使用NSLocalizedString宏在viewDidLoad方法中设置字符串.

第二个选项是为您的应用支持的每种语言提供单独的xib.您不必手动创建它们,您可以使用该ibtool命令(我假设您的源语言是英语,目标是葡萄牙语):

ibtool --strings-file pt.lproj/Example.strings en.lproj/Example.xib –write pt.lproj/Example.xib
Run Code Online (Sandbox Code Playgroud)

要收集项目中找到的字符串,您可以使用genstrings命令 - 但我建议使用此python脚本来收集所有字符串 - 当您需要向应用程序添加/删除字符串时,它可以很好地处理这种情况,而无需翻译和/或手动合并所有以前的字符串

编辑

哦,我发现了这篇文章,我从中学到了这个技巧