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

Локализация iPhone Settings.bundle

По какой-то причине я не могу получить 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

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

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

Спасибо заранее!

4b9b3361

Ответ 1

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

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

Во-вторых, и, возможно, самое главное, основная проблема заключалась в том, что "ключ" в файле root.strings не соответствует полю "key" в Root.plist, он фактически соответствует "Title" поле.

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

Ответ 2

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

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

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

Ответ 3

Все, что вам нужно сделать, это сохранить (или Добавить, если это не так) "Строковое имя файла" в Root.plist, после ваших настроек.

Check the image with example

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

Ответ 4

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

Проблема

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

Решение:

  • щелкните правой кнопкой мыши файл Root.strings и выберите "Показать в Finder"
  • Элемент списка
  • переместите файл Root.strings в одну папку вверх, чтобы папка en.lproj была пуста, и Cmd-Drag файл Root.strings находится рядом с Root.plist.
  • удалить пустой пул en.lproj
  • вернитесь к Xcode, обратите внимание, что дерево будет отражать сделанные вами изменения.
  • cmd-перетащите файл в дерево за пределами набора параметров, чтобы он появился рядом с исходным кодом.
    • Не копируйте файл
  • появится диалоговое окно с вопросом о том, что делать с файлом.
    • НЕ установите флажок, чтобы скопировать файл (вам нужно, чтобы это было ссылкой)
    • НЕ выбирайте цель для включения файла строк (параметр settings.bundle уже назначен правильной цели)
  • в инспекторе файлов теперь вы можете выбрать локализацию файла и добавить языки к локализации. Файлы будут помещены правильно в settings.bundle, и дерево также автоматически отразит эти изменения.

Ответ 5

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

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

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

  • Теперь Открыть xcode, а новые файлы и папки должен быть там

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

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

Ответ 6

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