Несоответствие локализации iOS - PullRequest
3 голосов
/ 10 марта 2011

Я впервые локализую приложение для iPhone. Я поместил все свои строки в файл Localizable.strings, получив к ним доступ через NSLocalizedString из своего кода. Работает отлично. Затем у меня есть файл с именем info.html, который содержит мякоть UIWebView, который я использую в качестве поля «О программе». Я поместил его в языковые папки (en.lproj и de.lproj) и добавил их в мои ресурсы в Xcode. Теперь в Simulator и строки, и html-файл отображаются на соответствующем языке. Однако на устройстве строки отображаются локализованно, а HTML-файл остается непереведенным.

Это странное несоответствие между симулятором и устройством! Кто-нибудь знает об обходном пути? (... кроме игнорирования системы локализации и использования NSLocalizedString для вызова de_info.html, en_info.html и т. д. вручную.)

Ответы [ 2 ]

7 голосов
/ 11 марта 2011

Попробуйте сначала удалить приложение.

Когда вы используете Xcode для развертывания на устройстве (или симуляторе), ресурсы только добавляются, но не удаляются.
Скорее всего, теперь у вас есть три html-файла.Один в папке de, один в папке en и один в корневой папке.

И если она есть, iOS предпочитает тот, который находится в корневой папке.

Как правило: когда вы удаляете (или, как в этом случае, перемещаете их) ресурсы из своего проекта, вы должныудалить приложение с устройства или симулятора.

4 голосов
/ 03 августа 2011

Еще одно дополнение: мне также нужно было удалить приложение из моего текущего каталога сборки, чтобы оно заработало (в противном случае удаленное приложение на устройстве затем снова заменили на неправильную версию).

В XCode вы можете нажать клавишу «alt» в меню «Build», а затем у вас есть возможность очистить весь каталог сборки.

Это наконец решило проблему для меня.Вздох ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...