1

私のソースコードには、のような行がいくつかありますNSLocalizedStringFromTable(@"Info", @"en", @"Title of this view")。その後呼び出すgenstrings -o en.lproj ./Classes/*.mと、期待されるファイルは取得されませんがen.stringsLocalized.stringsgenstrings-manpageで、NSLocalizedStringFromTable(a、table、c)関数からtable.stringsファイルが生成されることを確認しました。私が間違っている?次に、table.stringsファイルを作成するにはどうすればよいですか?

4

1 に答える 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 に答える