Локализация настроек iPhone. - PullRequest
20 голосов
/ 24 июня 2010

По какой-то причине я не могу заставить Settings.bundle распознавать мои дополнительные языки. Должно быть, я упускаю что-то очевидное, но я просто не могу понять это. Вот что у меня есть:

Структура проекта в XCode:

XCode Screen Shot

Файл Root.plist:

Файл Root.plist http://img227.imageshack.us/img227/571/screenshot20100624at334.png

Французский файл Root.strings

Французский файл Root.strings http://img121.imageshack.us/img121/571/screenshot20100624at334.png

Из всего, что я прочитал, я считаю, что структура проекта правильная. StringsTable в Root.plist совпадает с именем отдельных файлов .strings, а ключ для каждого элемента в Root.plist также совпадает с файлами .strings.

Почему я не вижу французский текст в моих настройках, когда я меняю язык iPhone по умолчанию?

Заранее спасибо!

Ответы [ 6 ]

16 голосов
/ 23 августа 2013

Для меня проблема заключалась в том, чтобы оставить точку с запятой!

В localizable.strings вы получите ошибку времени выполнения, если опустите ";", но в Root.strings вы не получите никаких предупреждений, вы можете запустить его нормально, но он просто не будет работать!

Так что дважды проверьте, чтобы убедиться, что вы отмечаете каждую пару ключ: значение точкой с запятой!

13 голосов
/ 25 июня 2010

Я пойду дальше и отвечу на свой вопрос, поскольку сам решил проблему путем тестирования и неудачи.Надеюсь, это поможет кому-то еще в будущем.

Во-первых, я думаю, что мой Root.plist файл мог быть поврежден.Я не совсем уверен, почему, но я полностью удалил Settings.bundle и заново создал его, чтобы быть уверенным.

Вторым, и, возможно, самым важным, главным вопросом был «ключ» вФайл 1007 * не соответствует полю "key" в Root.plist, он фактически соответствует полю "Title".

Как только я внес эти изменения в файл Root.strings, все начало работать.

9 голосов
/ 13 мая 2012

Все, что вам нужно сделать, это сохранить (или добавить, если его там нет) «Strings Filename» в Root.plist после ваших настроек.

Check the image with example

Затем добавьте значение «Root» (или имя вашего файла и переводы), чтобы сделать созданные lang .lproj переводы функциональными.

4 голосов
/ 16 июня 2014

В Xcode 5 до сих пор нет очевидного способа локализации Settings.bundle.

Проблема

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

Решение:

  1. щелкните правой кнопкой мыши файл Root.strings и выберите «Показать в Finder»
  2. Элемент списка
  3. переместить Root.strings файл на одну папку вверх, поэтому папка en.lproj пуста, а файл Cmd-Drag the Root.strings находится рядом с Root.plist.
  4. Удалите пустой файл en.lproj
  5. вернитесь в Xcode, обратите внимание, что дерево будет отражать изменения, которые вы сейчас сделали.
  6. cmd - перетащите файл в дереве наружу за пределы пакета настроек, чтобы он отображался рядом с вашим исходным кодом.код.
    • Не копировать файл
  7. Появится диалоговое окно с вопросом, что делать с файлом.
    • НЕ устанавливайте флажок для копирования файла (это необходимо для справки)
    • НЕ выбирайте цель для включения строкового файла (пакет settings.bundle уже назначенправильная цель)
  8. в инспекторе файлов теперь вы можете выбрать локализацию файла и добавить языки в локализации.Файлы будут правильно размещены в файле settings.bundle, и дерево также автоматически отразит эти изменения.
2 голосов
/ 06 мая 2013

В моем случае это выглядело так, как будто "Strings Filename" было установлено на "Root" в представлении Список свойств из Root.plist, но при просмотре файла в Просмотр исходного кода на самом деле "StringsTable" указывает на "Root".Решение состоит в том, чтобы добавить еще одну запись, где "Strings Filename" указывает на "Root".(Я также попытался удалить предыдущую запись, но затем она перестает работать, поэтому вам нужны оба.)

2 голосов
/ 19 октября 2012

После нескольких повторных попыток активировать локализацию у меня сработали следующие шаги:

  1. Закрыть xcode
  2. Перетащите и продублируйте комплект настроек на рабочий стол (или куда-либо)
  3. Открыть содержимое пакета
  4. Перетащите Root.strings в папка en.lproj
  5. Дублируйте папку en.lproj и переименуйте в любой язык, который вы хотите (используя 2-буквенный код, например, fr.lproj)

  6. Заменить исходный комплект настроек новым ( без открытие xcode ).

  7. Сейчас Откройте xcode и новые файлы и папки должно быть там

Теперь удалите старое приложение и запустите xcode, отлично работает в симуляторе и на устройстве.

ПРИМЕЧАНИЕ : поможет закрытие xcode, обновление дублированного набора настроек вне xcode и замена только обновленного back.

...