objective-c - XIB 文件的 iOS Localizable.strings 文件?

标签 objective-c ios ipad localization localizable.strings

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

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

最佳答案

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

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

ibtool --strings-file pt.lproj/Example.strings en.lproj/Example.xib –write pt.lproj/Example.xib

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

编辑

哦,我找到了 article我从中学到了这个技巧

关于objective-c - XIB 文件的 iOS Localizable.strings 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8343313/

相关文章:

objective-c - 在方法参数中指定协议(protocol)名称的 Objective C 语法

ios - 如何选择要在 Nativescript 中使用的 Swift 编译器版本?

swift - 在 Swift 中使用 Objective-C 结构时出错(无法在范围内找到类型 'XXX')

ios - 仅将 UIImageview 添加到 uitableview 中的某些自定义单元格

objective-c - 如何以编程方式强制在 UISearchBar 中进行搜索?

安卓/iOS : schedule task while app is in background/off

ios - 如何获取 iOS 用户代理字符串

iphone - 如何水平重复 Sprite ?

iphone - 搜索栏与搜索栏和搜索显示 Controller 有什么区别?

iphone -- 在游戏中心沙箱和生产环境之间切换