为什么genstrings不将NSLocalizedStringFromTable条目转换为table.strings?

时间:2010-06-15 09:20:56

标签: iphone xcode genstrings

在我的源代码中,我有一些像NSLocalizedStringFromTable(@"Info", @"en", @"Title of this view")这样的行。当我随后调用genstrings -o en.lproj ./Classes/*.m时,我不会得到预期的文件en.strings而是Localized.strings,尽管我在genstrings-manpage中读到它会从NSLocalizedStringFromTable生成一个table.strings文件( a,表,c)功能。我错了吗?那我怎么创建table.strings文件呢?

1 个答案:

答案 0 :(得分:7)

涓,

确保您没有为表名使用#define或常量。请记住,genstrings不会查看已编译的代码,它只会解析源文件。此外,所有NSLocalizedStrings方法实际上只是在NSBundle.h中定义的宏:

#define NSLocalizedStringFromTable(key, tbl, comment) \
        [[NSBundle mainBundle] localizedStringForKey:(key) value:@"" table:(tbl)]

确保您没有做类似的事情:

#define ENSTRINGS @"en"
...
NSString *info = NSLocalizedStringFromTable( @"Info", ENSTRINGS, @"Title of this view" );

相反,您必须指定表名:

NSString *info = NSLocalizedStringFromTable( @"Info", @"en", @"Title of this view" );