【发布时间】:2012-09-15 04:38:27
【问题描述】:
我的项目的 i18n 有一个 Localizable.strings 文件,一个库使用 KYLocalizable.strings。
我曾考虑将Localizable.strings 设为KYLocalizable.strings 的“子类”,但据我所知,它不能。因此,我想定义一个函数宏,就像 SDK 所做的那样:
#define NSLocalizedString(key, comment) \
[[NSBundle mainBundle] localizedStringForKey:(key) value:@"" table:nil]
#define NSLocalizedStringFromTable(key, tbl, comment) \
[[NSBundle mainBundle] localizedStringForKey:(key) value:@"" table:(tbl)]
伪代码:
#define CustomLocalizedString(key, comment) \
// if key exists in Localizable.strings
// use it
[[NSBundle mainBundle] localizedStringForKey:(key) value:@"" table:nil]
// else
// search it in KYLocalizable.strings
[[NSBundle mainBundle] localizedStringForKey:(key) value:@"" table:@"KYLocalizable"]
所以我可以在我的项目中使用CustomLocalizedString(<key>, <comment>)。
但是如何检查Localizable.strings中是否存在key呢?
提前致谢!!
【问题讨论】:
标签: objective-c ios cocoa-touch localization macros