Локализация работает для других языков, кроме английского, довольно хорошо. Каждый раз, когда я компилирую свое приложение, я вижу имя ключа вместо локализованной строки. Пример:
NSLocalizedString(@"WelcomeKey", @"")
В Localizable.strings у меня есть соответствующая запись:
"WelcomeKey" = "Welcome";
В симуляторе я всегда получаю имя ключа WelcomeKey
вместо Welcome
. На устройстве это работает отлично. В симуляторе нет!
Я также узнал, что мой файл EN Localizable.strings был полон "???????" символы. Поэтому я вставил старые значения и сохранил их в Xcode. Я также добавил запись вручную вместо использования genstrings
. В симуляторе второй язык тоже отлично работает. Кажется, только английский создает проблему. Возможно, я удалил English.lproj и создал папку EN.lproj?
Я пытался:
- Пустой кэш
- Очистить все цели
- Удалить папку «Пользователь / xxx / Библиотека / Поддержка приложений / iPhone Simulator / Пользователь»
- Перезагрузите Mac
- Конвертировать в UTF-16
- Созданы новые Localizable.strings для EN
- Удалить папку EN.lproj и файлы. Сделана локализация совершенно новой.
Что мне не хватает? Я думаю, что симулятор ненавидит английский ...
Edit:
Итак, я попытался скомпилировать это приложение на другом Mac. Там все работает без проблем в симуляторе! Так что это либо настройка в Xcode, либо проблема с кешем .