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

Localizable.strings не работает в iOS

У меня проблема с разумом.

Я создал файл Localizable.strings в XCode, а затем 2 языка в нем.

Я заполнил эти файлы языковыми переводами, сделал сборку/очистку, а затем новую сборку, но в моем проекте нет строк локализации. Если я попробую что-то вроде:

self.title = NSLocalizedString(@"HEAD", nil);

в симуляторе устройства отображается только "HEAD", а не перевод.

Это моя иерархия проектов:

project hierarchy

И это содержимое английского файла локализации: enter image description here

Любые идеи?

4b9b3361

Ответ 1

Я сам нашел ответ.

Помимо очистки и сборки проекта снова и все, что я описал выше. Вы также должны удалить приложение в симуляторе iPhone, а затем снова создать его! После этого он отлично работает.

Разговор о том, чтобы сделать его простым Apple...

Ответ 2

Убедитесь, что:

  • Файл называется: "Localizable.strings".
  • "Localizable.strings" принадлежит к цели, с которой вы имеете дело.

Ответ 3

Несколько проверок:

  • Убедитесь, что имя файла точно Localizable.strings и включено в целевой
  • Каждая строка заканчивается на ;
  • Каждая строка имеет двойную кавычку с "
  • Комментарии начинаются с // (NOT #)

Ответ 4

Убедитесь, что у вас есть Localizable.strings в разделе "Фазы сборки", "Ресурсы копирования".

Ответ 5

Проверьте имя файла, если первая буква содержит верхний регистр Localizable.strings

Ответ 6

Решение

@jbssm работает, но лучший способ (убедитесь, что ресурс будет постоянно обновляться без очистки и удаления каждый раз) будет добавлять пользовательскую фазу сборки script, которая изменяет время доступа для Localizable.bundle.

Как описано в fooobar.com/questions/186757/...

Ответ 7

Я нашел 1 ответ на себя.

Убедитесь, что все значения имеют конечную точку; В противном случае, это не работает.

Ответ 8

В моем случае мой файл Localizable.strings не был должным образом отформатирован из-за некоторого оставленного текста. Компилятор не жаловался, но все строки после незаконного раздела файла были проигнорированы. Мой файл выглядел примерно так:

"Key1" = "String1";

  • Строка

  • Строка

  • Строка

Строка ";

"Key2" = "String2";

Поэтому не забудьте вручную проверить любые файлы Localizable.strings, которые не обрабатываются должным образом. Вы не можете доверять компилятору, чтобы поймать все ошибки форматирования.

Ответ 9

Мои два цента по локализации. Я изменил файлы локализации, добавил и удалил их, и проект перешел под многие обновления Xcode. Позже обнаружите, что кроме английского языка ни одна локализация не работает.

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

введите описание изображения здесь

Ответ 10

  1. Заменить положение Localizable.strings
  2. Сделайте перекрестную проверку с помощью Localizable.strings, вырезанного и прошедшего в блокноте, чтобы мы могли легко идентифицировать скрытые символы и возвышенные тексты. решить это, следуйте нижеуказанным шагам.
  3. Убедитесь, что имя файла точно Localizable.strings и включено в цель
  4. Каждая строка заканчивается;
  5. Каждая строка в двойных кавычках
  6. Комментарии начинаются с//(НЕ #)

Также удалите приложение в симуляторе iPhone, а затем соберите его снова! После этого все работает отлично.

Ответ 11

Помимо всех советов, упомянутых в других разделах этой ветки, в некоторых случаях Localizable.strings также должен находиться в корневой папке проекта.

Ответ 12

Я также должен был установить кодировку данного файла .strings.

Для этого выберите файл в навигаторе проекта, а затем на правой панели выберите кодировку в разделе "Настройки текста". Я использовал Unicode (UTF-8).

enter image description here