Вместо этого используйте NSString *locString = NSLocalizedStringFromTable(@"key", @"Japanese", @"comment for key");
;)
Объяснение:
Если вы посмотрите на определение макроса NSLocalizedString
, вы обнаружите, что оно фактически вызывает метод -[NSBundle localizedStringForKey:value:table:]
, в котором последний параметр имеет значениефайл локализации (то есть: Localizable.strings).Вы можете получить доступные локализации с помощью метода -[NSBundle localizations];
.
Это означает, что вы можете использовать его для прямого доступа к файлу локализации, например так:
// This gets the localized string found in Japanese.strings for the key @"key"
NSString *locString = [thisBundle localizedStringForKey:@"key"
value:@"No translation"
table:@"Japanese"];
Или использовать макрос (который почтиэквивалент)
NSString *locString = NSLocalizedStringFromTable(@"key", @"Japanese", @"comment for key");
Разница в том, что происходит, когда данный ключ недоступен:
- первый возвращает
@"No translation"
- последний возвращает значение по умолчаниюлокализация для
@"key"
Пожалуйста, смотрите Ссылка на класс NSBundle для более подробной информации
Надеюсь, это поможет