Localizable.strings не работает в iOS
У меня проблема с разумом.
Я создал файл Localizable.strings в XCode, а затем 2 языка в нем.
Я заполнил эти файлы языковыми переводами, сделал сборку/очистку, а затем новую сборку, но в моем проекте нет строк локализации. Если я попробую что-то вроде:
self.title = NSLocalizedString(@"HEAD", nil);
в симуляторе устройства отображается только "HEAD", а не перевод.
Это моя иерархия проектов:
![project hierarchy]()
И это содержимое английского файла локализации:
![enter image description here]()
Любые идеи?
Ответы
Ответ 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
- Заменить положение Localizable.strings
- Сделайте перекрестную проверку с помощью Localizable.strings, вырезанного и прошедшего в блокноте, чтобы мы могли легко идентифицировать скрытые символы и возвышенные тексты. решить это, следуйте нижеуказанным шагам.
- Убедитесь, что имя файла точно Localizable.strings и включено в цель
- Каждая строка заканчивается;
- Каждая строка в двойных кавычках
- Комментарии начинаются с//(НЕ #)
Также удалите приложение в симуляторе iPhone, а затем соберите его снова! После этого все работает отлично.
Ответ 11
Помимо всех советов, упомянутых в других разделах этой ветки, в некоторых случаях Localizable.strings
также должен находиться в корневой папке проекта.
Ответ 12
Я также должен был установить кодировку данного файла .strings.
Для этого выберите файл в навигаторе проекта, а затем на правой панели выберите кодировку в разделе "Настройки текста". Я использовал Unicode (UTF-8).
![enter image description here]()