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

У меня действительно эта проблема с умом.

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

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

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

только "ГОЛОВА" вместо перевода отображается в симуляторе устройства.

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

project hierarchy

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

Есть идеи?

 jbssm25 июн. 2012 г., 20:59
@ Андреас Я уже нашел ответ, спасибо.
 jbssm25 июн. 2012 г., 20:27
@BrianDriscoll Спасибо, но это не помогло.
 CodaFi25 июн. 2012 г., 20:32
Могу ли я увидеть содержимое файла localizable.strings?
 Brian Driscoll25 июн. 2012 г., 20:17
этоanswer Подобный вопрос может помочь вам.
 jbssm25 июн. 2012 г., 20:37
@ CodaFi Конечно, это идет.

Ответы на вопрос(10)

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

 04 авг. 2015 г., 11:01
Ваш проект не будет скомпилирован, если есть & apos ;; & apos; отсутствует
 11 июн. 2016 г., 13:29
Этот ответ верен для тех, кто использует раскадровки локализаций. Если у вас есть пропавший; в локализации раскадровки проект будет компилироваться нормально, но не будет загружать локализации во время выполнения. Однако, если вы используете localizable.strings, он выдаст ошибку, если отсутствует;

The file is called: "Localizable.strings". "Localizable.strings" belongs to the target you are dealing with.
 24 дек. 2015 г., 14:54
Спасибо :) Это решило мою проблему. Имел файл с именем Lozalizable.strings. Не заметит это без твоего поста!
 06 дек. 2018 г., 08:24
В моем случае, Localizable.strings не назначен для цели, спасибо!
 16 мар. 2017 г., 21:31
Я LOL "d в" Lozalizable "
 07 июн. 2017 г., 10:56
Да, убедитесь, что имя вашего файла НЕ является & quot; Localization.string & quot ;, у меня возникла та же проблема, и после того, как я изменил его на & quot; Localizable.string & quot; все работало нормально :)
Replace the position of Localizable.strings Have a cross verification with Localizable.strings cut and past in note pad so that we can easily identify the hidden characters and sublime texts. resolve it the follow the bellow steps. Make sure the filename is exactly Localizable.strings and is included in the target Every string is ended with ; Every string is double quoted with " Comments begins with // (NOT #)

а затем соберите его снова! После этого все работает отлично.

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

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

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

enter image description here

что у вас есть Localizable.strings в разделе «Фазы сборки», «Копировать ресурсы комплекта».

 16 июн. 2016 г., 02:49
На самом деле я скучал по этому, спасибо! это должно быть проголосовано
Решение Вопроса

Помимо уборки и сборки проекта снова и всего того, что я описал выше.You must also delete the app in the iPhone simulator and then build it again! После этого все работает отлично.

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

 11 дек. 2013 г., 15:40
я был слишком близко, чтобы сойти с ума, спасибо :)
 21 авг. 2013 г., 12:41
Спасибо за это. Удаление приложения, очистка и переустановка его работали для меня.
 04 мая 2013 г., 20:51
Это проблема только для симулятора, или пользователям в App Store также придется удалить приложение, чтобы заставить работать новый язык? Благодарю.
 jbssm05 мая 2013 г., 21:34
@geekinit Я не тестировал приложение на физическом устройстве, поэтому не знаю ответа на этот вопрос. Я хотел бы знать ответ, если вы получите это сложно.
 10 июл. 2017 г., 21:50
В моем случае все остальные случаи не работали вообще. И complier не показывает никаких предупреждений / ошибок в файле Localizable.strings. Затем я начал форматировать значение ключа как & quot; ключ & quot; = & quot; значение & quot ;; И я обнаружил свою глупую ошибку в формате «ключ»; = & quot; значение & quot ;; Примечание: после ключа была добавлена точка с запятой (*). После того как я удалил локализацию работает как брелок. Очень простой способ поймать ваш формат. Просто закомментируйте целые пары ключ-значение файла. Затем просто введите значение ключа и запустите код. Я думаю, вы узнаете, что является актуальной проблемой. Спасибо, парни.

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

Как описано вhttps://stackoverflow.com/a/19274844/414037

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

& Quot; Клавиша1 & Quot; = & quot; String1 & quot ;;

A string

A string

A string

Строка & quot ;;

& Quot; Клавиша2 & Quot; = & quot; String2 & quot ;;

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

 25 авг. 2017 г., 16:45
Получил ту же ошибку. Используйте следующую команду в терминале, чтобы найти строку: plutil -lint & lt; file & gt;
 27 авг. 2017 г., 02:45
Отличный трюк, спасибо @Kusan!

Make sure the filename is exactly Localizable.strings and is included in the target Every string is ended with ; Every string is double quoted with " Comments begins with // (NOT #)
 06 июн. 2017 г., 19:25
Спасибо за все проверки

Ваш ответ на вопрос