iOS - некоторые, но не все строки кажутся локализованными. - PullRequest
1 голос
/ 13 января 2012

Я успешно добавил французскую локализацию в свое приложение.В XCode 4 это был всего лишь случай выбора Localizable.strings и добавления новой (французской) локализации в File Inspector.Затем я скопировал / вставил французский перевод (из Word - unicode 16) в новый файл Localizable.strings (французский), который был сгенерирован.

Я изменил язык телефона (как устройства, так и симулятора) на французский и удалил установленное на данный момент приложение, очистил и собрал.

Привет, все - по-французски.За исключением того, что здесь и там есть несколько строк, которые остались на английском языке.Кажется, что в этих строках нет общего элемента - акценты, форматы или аргументы. Например:

title = [NSString stringWithFormat:NSLocalizedString(@"You've just met %@", @"New friend message title"), self.friend.name];

/* New friend message title */  
"You've just met %@" = "Vous venez de rencontrer %@";

По-прежнему отображается как «Вы только что встретились ...», а не на французском языке.Я не могу понять, почему эти несколько строк не переводятся, когда все остальное.Любая помощь высоко ценится!

Спасибо, Майкл.

Ответы [ 2 ]

1 голос
/ 13 января 2012

Microsoft Word не является простым текстовым редактором, и он будет изменять текст, заменяя определенные знаки препинания (апострофы, кавычки, тире) на «умные» версии, которые выглядят немного лучше, но могут содержать случайные кодовые точки Юникода.

Я предлагаю проверить, что апостроф в «Вы только что встретились» - это точно такой же символ в вашем строковом файле, как и в исходном файле кода. Может быть, скопируйте «Вы только что встретились» из файла строк непосредственно в оператор NSLocalizedString в своем коде и посмотрите, поможет ли это.

Я бы также рекомендовал не использовать Microsoft Word для создания машиночитаемых строк, если вам не нужно много головной боли!

1 голос
/ 13 января 2012

Вы не можете использовать символы высокого ascii в функции NSLocalizedString.
Чтобы исправить это, просто измените строку ключа:

title = [NSString stringWithFormat:NSLocalizedString(@"YouveJustMetStr", @"New friend message title"), self.friend.name];

"YouveJustMetStr" = "Vous venez de rencontrer %@";
...