Возможный использовать переменные и/или параметры с NSLocalizedString?

Я попытался использовать переменную в качестве входного параметра к NSLocalizedString, но все, что я возвращаю, является входным параметром. Что я делаю неправильно? Действительно ли возможно использовать значение переменной строки в качестве индекса для строки NSLocalized?

Например, у меня есть некоторые строки, что я хочу, чтобы локализованные версии были отображены. Однако я хотел бы использовать переменную в качестве параметра для NSLocalizedString вместо постоянной строки. Аналогично, я хотел бы включать элементы форматирования в параметр для NSLocalizedString, таким образом, я смогу к полученному локализованная версия строки с теми же параметрами форматирования. Могу я делать следующее:

Случай 1: переменный NSLocalizedstring:

NSString *varStr = @"Index1";
NSString *string1 = NSLocalizedString(varStr,@"");

Случай 2: отформатированный NSLocalizedString:

NSString *string1 = [NSString stringWithFormat:NSLocalizedString(@"This is an %@",@""),@"Apple"];

(Обратите внимание на то, что переменная может содержать что-либо, не только фиксированный набор строк.)

Спасибо!

60
задан futureelite7 10 August 2010 в 04:25
поделиться

2 ответа

Если вы хотите вернуть локализованную версию «Это Apple / Orange / что угодно», вам нужно:

NSString *localizedVersion = NSLocalizedString(([NSString stringWithFormat:@"This is an %@", @"Apple"]), nil);

(т.е. вложенность NSLocalizedString () и [NSString stringWithFormat:] меняются местами.)

Если вы хотите локализовать формат , но не подставляемое значение, выполните это:

NSString *finalString = [NSString stringWithFormat:NSLocalizedString(@"SomeFormat", nil), @"Apple"];

И в вашем Localizable.strings :

SomeFormat = "This is an %@";
120
ответ дан 24 November 2019 в 17:34
поделиться

Ваши идеи должны работать. Но если вы возвращаете входной параметр, это означает, что входной параметр не был найден в качестве ключа в вашем файле Localizable.strings. Проверьте синтаксис и расположение этого файла.

0
ответ дан 24 November 2019 в 17:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: