Подтвердить что ты не робот

XCode 5/iOS 7 - локализация не работает в симуляторе

Я следил за одним из уроков Ray Wenderlich по локализации, но я не могу заставить его работать.

Я установил свой проект для локализации на английском и французском языках, и у меня есть файл locasiable.strings для каждого:

enter image description here

Французский файл имеет правильное значение (что касается Google translate) Французские версии моей строки:

enter image description here

Я устанавливаю строки, вызывая правильный ключ из файла localizable.strings:

 NSString* strTitle = [NSString stringWithFormat:NSLocalizedString(@"Title", Nil)];

И у меня есть симулятор, установленный на французский (BTW: всякий раз, когда я меняю язык, сбой симулятора).

Но он не вытягивается из правильного файла localizable.strings. Его по-прежнему отображаются на английском языке:

enter image description here

Я что-то делаю неправильно?

4b9b3361

Ответ 1

Возможно, вы запустили приложение в тот момент, когда файл Localizable.strings уже существовал, но еще не был локализован. Если это так, этот нелокализованный файл все еще находится в папке ресурсов в наборе приложений в симуляторе (при создании прогона новой версии вашего приложения в симуляторе или на устройстве неиспользуемые файлы не будут удалены). Это может привести к проблемам.

Попробуйте полностью удалить приложение из симулятора и снова запустите прогон.

Ответ 2

Если вы используете xcode 6.1.1 и iOS sdk 8.1, попробуйте это обходное решение.

Кажется, что локализация не работает с симулятором xCode 6.1 и 8.1. Временное решение: Перейдите к "схемам редактирования" → "Запуск" (боковая панель) → вкладка "Параметры" → "Язык приложения" Выберите язык, на котором вы хотите запустить приложение на симуляторе. Я получил это решение из Обходное решение natanavra  Благодаря ему.

Однако я прочитал на developer forum, что он работает в 6.2 бета-версии Xcode. Надеюсь, он это сделает.

Ответ 3

У меня возникли аналогичные проблемы (локализация IB в моем случае) на устройстве. Таким образом, общий ответ будет

Устройство. Удалите приложение и очистите проект с помощью Shift + CMD + K

Симулятор - Идите iOS simulator > Reset Содержимое и настройки и очистите проект с помощью Shift + CMD + K

Эти проблемы действительно раздражают. Наряду с плохой способностью обновлять локализованные строки является локализация одним из самых больших недостатков разработки iOS.

Ответ 4

Еще одна проблема, которая может вызвать локализацию, не является кодировкой файла строк. Кодировка Localizable.strings должна быть UTF-16. По умолчанию кодировка текстового файла в xcode - UTF-8, что заставляет меня провести целый день, чтобы проверить, почему локализация не работает.

Ответ 5

В Xcode 6.0 и более поздних версиях локализация не работает, не изменяя язык в Simulator.

Вам нужно изменить схему перед запуском приложения.

Перейдите в меню "Редактировать схему" → "Выполнить" - "Параметры", здесь измените язык.

Теперь запустите приложение. Он будет работать.

Подробнее см. в этом ответе: Смена языка на симуляторе iOS 8.1 не работает

Ответ 6

Моя проблема для этого была неправильно закодированным символом в файле локализации.