Special - китайские иероглифы в строке

Я делаю языковой перевод в коде.

self.title.text = [NSString stringWithFormat:NSLocalizedString(@"Q%ld", nil), (long)quizNumber];

Я добавил локализацию, которая отлично работает на французском языке, но на китайском языке на экране появляется «%ld».

Если я поставлю китайскую строку вместо английской строки, я получу ошибку «аргумент данных не используется строкой формата».

Любые указатели? Должен ли я использовать какую-то кодировку?


person Astha Gupta    schedule 03.03.2017    source источник
comment
Я думаю, что вы делаете это неправильно. Вы хотите self.title.text = NSLocalizedString([NSString stringWithFormat:@"Q%ld", (long)quizNumber], nil);   -  person Larme    schedule 03.03.2017
comment
@Larme Ваше заявление не компилируется!   -  person Astha Gupta    schedule 03.03.2017
comment
Пытался. Не работает. На самом деле это дает английскую строку, потому что %ld заменяется перед локализацией   -  person Astha Gupta    schedule 03.03.2017
comment
Однако, если %ld находится в начале строки, то она идеально переводится на китайский язык.   -  person Astha Gupta    schedule 03.03.2017
comment
Не могли бы вы показать, какие у вас Localizable.strings?   -  person Larme    schedule 03.03.2017


Ответы (1)


Я также сделал локализацию в своем приложении на китайский язык, пока без проблем, но я использую в основном %d, а не %ld.

Можете ли вы попробовать вместо этого использовать %d?

self.title.text = [NSString stringWithFormat:NSLocalizedString(@"Q%d", nil), (int)quizNumber];

Взгляните на https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/Strings/Articles/formatSpecifiers.html

person JackyW    schedule 06.03.2017
comment
Спасибо! :D Сейчас я поменяю все струны! - person Astha Gupta; 06.03.2017