Интернационализация: в локализаторе отображается только имя ключа вместо локализованной строки - PullRequest
5 голосов
/ 24 сентября 2010

Локализация работает для других языков, кроме английского, довольно хорошо. Каждый раз, когда я компилирую свое приложение, я вижу имя ключа вместо локализованной строки. Пример:

NSLocalizedString(@"WelcomeKey", @"")

В Localizable.strings у меня есть соответствующая запись:

"WelcomeKey" = "Welcome";

В симуляторе я всегда получаю имя ключа WelcomeKey вместо Welcome. На устройстве это работает отлично. В симуляторе нет!

Я также узнал, что мой файл EN Localizable.strings был полон "???????" символы. Поэтому я вставил старые значения и сохранил их в Xcode. Я также добавил запись вручную вместо использования genstrings. В симуляторе второй язык тоже отлично работает. Кажется, только английский создает проблему. Возможно, я удалил English.lproj и создал папку EN.lproj?

Я пытался:

  1. Пустой кэш
  2. Очистить все цели
  3. Удалить папку «Пользователь / xxx / Библиотека / Поддержка приложений / iPhone Simulator / Пользователь»
  4. Перезагрузите Mac
  5. Конвертировать в UTF-16
  6. Созданы новые Localizable.strings для EN
  7. Удалить папку EN.lproj и файлы. Сделана локализация совершенно новой.

Что мне не хватает? Я думаю, что симулятор ненавидит английский ...

Edit:

Итак, я попытался скомпилировать это приложение на другом Mac. Там все работает без проблем в симуляторе! Так что это либо настройка в Xcode, либо проблема с кешем .

Ответы [ 5 ]

2 голосов
/ 24 сентября 2010

Итак, сначала вы должны удалить приложение из симулятора iPhone / iPhone.

Нажмите и удерживайте мышь на приложении в симуляторе, пока оно не начнет покачиваться. Затем нажмите X. Это удалит. Затем нажмите кнопку «Домой», чтобы кнопки перестали шевелиться.

0 голосов
/ 30 апреля 2013

1 - попробуйте удалить и перестроить проект.

ИЛИ

2 - Перейти к инспектору файлов Localizable.strings и снять отметку с целевого членства. Выполните сборку с использованием этих настроек один раз, а затем удалите эту сборку. Теперь вернитесь в меню инспектора файлов Localizable.string и добавьте целевое членство.

OR

3 - в вашем проекте может быть несколько localizable.strings (например, sharekit). Попробуйте снять отметку с целевого членства для других localizable.strings.

0 голосов
/ 26 августа 2012

Единственная опция, с которой мне удалось поработать - это сбросить содержимое и настройки симулятора в меню симулятора iOS.

0 голосов
/ 13 октября 2010

У меня также был полный набор Localizable.strings, это помогло сохранить файл как UTF-8.

0 голосов
/ 24 сентября 2010

Убедитесь, что кодировкой Localizable.strings является UTF-16.

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