Почему genstrings не преобразует записи NSLocalizedStringFromTable в table.strings? - PullRequest
1 голос
/ 15 июня 2010

В моем исходном коде у меня есть несколько строк вроде NSLocalizedStringFromTable(@"Info", @"en", @"Title of this view"). Когда я впоследствии вызову genstrings -o en.lproj ./Classes/*.m, я не получу ожидаемый файл en.strings, но Localized.strings, хотя я прочитал в genstrings-manpage, что он сгенерирует файл table.strings из NSLocalizedStringFromTable (a, table, c) функция. Я ошибся? Как мне тогда создать файл table.strings?

1 Ответ

7 голосов
/ 09 декабря 2010

Juan,

Убедитесь, что вы НЕ используете #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" );
...