Почему файл отображается локализованным в симуляторе iPhone, но не на самом устройстве?

StackOverflow https://stackoverflow.com/questions/1274485

Вопрос

У меня проблема с локализацией iPhone, которая ставит меня в тупик.Я локализовал свое приложение, и английский, а также упрощенный и традиционный китайский работали нормально.У меня есть два файла, Localizable.strings и sounds.plist, которые были локализованы.Строки в обоих файлах корректно отображались на устройстве и эмуляторе.

Теперь, вчера, я добавляю испанский, итальянский и немецкий языки.Когда я тестирую в эмуляторе, все отображается правильно.Но когда я развертываю на устройстве, строки, содержащиеся в Localizable.strings, отображаются правильно, но строки, содержащиеся в sounds.plist, всегда отображаются на английском языке.Даже китайские строки перестали отображаться корректно.

Я пробовал очищать сборки, копировать переведенный текст обратно в файлы sounds.plist и даже удалять файлы nuking, удалять папки lproj, удалять локализации и начинать все сначала.

Я установил точку останова в XCode, и похоже, что для этого файла он не обнаруживает папку loc.Код, который загружает строки из sounds.plist, является:

+ (NSDictionary*) getSounds
{
NSString *path = [[NSBundle mainBundle] pathForResource:@"sounds" ofType:@"plist"];
NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:path];
return dict;
}

Я проверил, что имя файла - sounds.plist, все в нижнем регистре.На данный момент я в растерянности.Кто-нибудь испытывал что-нибудь подобное?У кого-нибудь есть предложения по исправлению?

Спасибо!

Обновить: Я сравнил результаты следующей строки на симуляторе, а также на устройстве:

NSString *path = [[NSBundle mainBundle] pathForResource:@"sounds" ofType:@"plist"];

На симуляторе путь правильно отображается как /Пользователи/Стив/.../de.lproj/sounds.plist.На устройстве путь сообщается как /var/мобильный/.../sounds.plist. Обратите внимание, что de.lproj отсутствует в path. Таким образом, он загружает sounds.plist из корневого каталога, что объясняет, почему текст не отображается локализованным.Теперь мой вопрос в том, почему код не получает путь к файлу в локализованной папке?

Это было полезно?

Решение 2

Проблема была в том, что что-то было перепутано на устройстве.Я удалил приложение с устройства с помощью Органайзера, а затем повторно установил через XCode.Сейчас все работает отлично.

Другие советы

Есть ли флажок рядом с файлом sounds.plist в Xcode?Вы находитесь в режиме отладки или выпуска?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top