在我的源代码中,我有一些行,例如NSLocalizedStringFromTable(@"Info", @"en", @"Title of this view")
. 当我随后调用时genstrings -o en.lproj ./Classes/*.m
,我不会得到预期的文件,en.strings
但是Localized.strings
,虽然我在 genstrings-manpage 中读到它会从 NSLocalizedStringFromTable(a, table, c) 函数生成一个 table.strings 文件。我错了吗?那么我将如何创建一个 table.strings 文件?
问问题
3333 次
1 回答
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" );
于 2010-12-09T00:15:35.920 回答