iOS: локализация периодически нарушена - PullRequest
1 голос
/ 06 января 2012

У меня странная проблема с локализацией приложения.В предыдущей версии он работал нормально, но недавно он как-то перестал работать, без заметных изменений в файлах локализации (я добавил один язык, но это все).

Когда я устанавливаю сборку с использованиемXcode Organizer (Xcode 3.2.5), локализация работает только иногда.Изменение настроек языка в операционной системе, похоже, ничего не дает.Удаление из Xcode Organizer и последующая переустановка не помогают.

Кажется, что API локализации не могут найти мои ресурсы.Я добавил несколько операторов NSLog () в один из моих ViewControllers, чтобы распечатать строку, которая должна быть локализована, используя эту функцию:

NSLog(@"Value: %@", [[NSBundle mainBundle] localizedStringForKey:@"MY_KEY" value:@"none found" table:nil]);

Когда локализация работает, это выводит ожидаемый результат.Когда локализация не работает, выдается «ничего не найдено».Я проверил содержимое пакета, и все файлы .lproj есть.Чего мне не хватает?

Редактировать: Я обнаружил, что после сборки некоторые из результирующих файлов * .lproj / Localizable.strings для разных языков создаются неправильно - иногда.Я могу прикоснуться к немецкому файлу, и он будет сгенерирован правильно, но при следующем запуске сборки это не правильно.Кодировка для всех файлов Localizable.strings в настоящее время установлена ​​на UTF-16, и я безуспешно пытался перейти на UTF-8.Я не вижу никаких предупреждений или ошибок в журнале сборки, чтобы указать на проблему с файлами строк.

1 Ответ

3 голосов
/ 06 января 2012

Я уже видел это раньше из-за наличия более одного localizable.strings файла в вашем проекте. Это может легко произойти, если вы добавите в свое решение библиотеку с открытым исходным кодом (например, ShareKit, который поставляется с собственным файлом localizable.strings). См. Вопрос в Строки локализации не всегда работают с ShareKit в проекте , чтобы узнать больше об этой возможной причине вашей проблемы.

...