Локализация динамического NSString

Просматривая ряд примеров, касающихся NSLocalizedString, я обнаружил, что нам нужно предварительно определить всю строку в файле Localized.string для любого языка, который вы хотите локализовать. Но можно ли локализовать динамическую строку. Моя идея заключалась в том, что я показываю несколько текстов в UILabel, которые я получаю после веб-запроса. Это означает, что строка теперь является динамической по своей природе.


person Black Tiger    schedule 21.01.2013    source источник
comment
Вы пробовали погуглить язык, переводящий частный API ..?   -  person Nitin Gohel    schedule 21.01.2013


Ответы (4)


Объявить в Localizable.strings

"SAMPLE_LOCALIZE_STRING" = "This is sample dynamic localize string for %@.";

Используйте это так

NSString *dynamicStr = @"Test";
label.Text = [NSString stringWithFormat:NSLocalizedString(@"SAMPLE_LOCALIZE_STRING", nil), dynamicStr];
person Amit Battan    schedule 21.01.2013

Если эти строки являются фиксированными (я имею в виду ограниченное количество опций), то предварительно сохраните их в локализованном строковом файле.

Если нет, я бы предложил добавить в ваш запрос параметр, указывающий язык, и тогда сервер вернет строку на этом языке.

person Akshay Shah    schedule 21.01.2013
comment
Обычно я сохраняю строку после ее получения. Итак, дело в том, что мне нужно сделать это в автономном режиме (локально). - person Black Tiger; 21.01.2013
comment
Даже если вы сохраните его после получения, это не будет иметь значения. Либо он должен быть в plist, чтобы автоматически получить локализованную строку. В противном случае вам нужно будет получить локализованную строку с сервера, поскольку даже если вы сохраните строку, она будет где-то еще, а не в файле локализованной строки. - person Akshay Shah; 21.01.2013

Я обработал эту ситуацию следующим образом,

Включите язык в запрос. Например: http://yourIp/language/notesandcondition

Веб-сервис должен быть разработан для работы с разными языками.

person KingofBliss    schedule 21.01.2013

person    schedule
comment
Обычно я сохраняю строку после ее получения. Итак, дело в том, что мне нужно сделать это в автономном режиме (локально). - person Black Tiger; 21.01.2013
comment
Вы можете добавить локализованную строку в показанном выше формате в автономном режиме, и это будет динамически работать, как только мы получим данные. - person Madhu; 21.01.2013