Как локализовать строку внутри информации iOS.файл plist?



Как вы могли бы знать iOS 8 требует NSLocationWhenInUseUsageDescription ключ для использования местоположения пользователя. Я добавил этот ключ и некоторую общую информацию в свой информационный список.
enter image description here



Как я могу использовать строку перевода в файл plist ?



-- Update --



У меня уже есть локализуемых строк. Мне просто интересно, что я могу использовать что-то вроде
NSLocalizedString (MYSTRING,nil) внутри строки plist. Я знаю, что я могу создать несколько файлов информации.файлы для локализации, но мне было интересно, что там может быть более простой способ.

677   7  

7 ответов:

вы должны использовать InfoPlist.strings файл для локализации значений Info.plist. Для этого зайдите в File->New->File выберите Strings File под на iOS имя InfoPlist, и создавать. Откройте и вставьте Info.plist значения, которые вы хотите локализовать как:

"NSLocationWhenInUseUsageDescription" = "Description of this";

теперь вы можете локализовать InfoPlist.strings файл с переводами. Удачи Вам!

EDIT:

выберите Параметры локализации или включите локализацию, если это необходимо,

right side editor

вы должны быть в состоянии видеть файл также на левой стороне редактора.

left side editor

EDIT:

здесь - это официальная документация Info.plist ключи локализации.

все вышеперечисленное не сработало для меня (XCode 7.3), поэтому я прочитал ссылку Apple о том, как это сделать, и это намного проще, чем описано выше. Согласно Apple:

локализованные значения не сохраняются в информации.сам файл plist. Вместо этого вы сохраняете значения для определенной локализации в a строковый файл с именем InfoPlist.веревка. Вы помещаете этот файл в тот же каталог проекта для конкретного языка, который используется для хранения другие ресурсы для того же локализация.

соответственно, я создал строковый файл с именем InfoPlist.строки и поместил его в папку xx.lproj языка "xx" (и добавил его в проект с помощью File->Add Files to ...). Вот и все. Нет необходимости в ключе "локализованные ресурсы могут быть смешаны" = да, и нет необходимости в InfoPlist.строки в базе.lproj или en.lproj.

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

в частности, нет необходимости локализовать InfoPlist.строки (который создает версию файла в базе.lproj, en.lroj, и xx. lproj), и в моем случае идти таким путем не получилось.

Если что-то не работает, убедитесь, что Вы добавил:

"локализованные ресурсы могут быть смешаны" = да

в инфо.файл plist. В моем случае InfoPlist.файлы строк были просто проигнорированы.

Я настоятельно рекомендую прочитать руководства Apple и просмотреть ресурсы WWDC, перечисленные здесь: темы интернационализации и локализации

чтобы конкретно ответить на ваш вопрос, когда вы добавляете новый язык для вашего проектаenter image description here, вы получаете возможность выбрать, какие файлы InfoPlist включать (если у вас есть несколько целей, у вас будет несколько файлов Info plist). Все, что вам нужно сделать, чтобы получить следующий экран, это нажать + в разделе локализации и выбрать новый язык для добавления поддержки. enter image description here

после добавления он создаст необходимые строковые файлы в соответствующих каталогах lproj для данного языка.

-- EDIT--

чтобы быть ясным, iOS заменит строку для вашего файла Plist на основе текущего выбранного языка пользователя, используя ключ записи plist в качестве ключа в локализованном файле строк.

Как говорят RGML, вы можете создать InfoPlist.строки, локализовать его затем добавить свой ключ и значение, как это: "NSLocationWhenInUseUsageDescription" = " Помогите найти меня!";

Он добавит ключ к вашей информации.plist для указанного языка.

для тех, кто испытывает проблемы информация.plist не включается при попытке добавить локализации, как в Xcode 9.

вам нужно сделать инфо.plist localiazble, перейдя в него и нажав на кнопку локализовать в инспекторе файлов, как показано ниже.

информация.затем plist будет включен в файловые ресурсы, когда вы перейдете к добавлению новых локализаций.

enter image description here

в моем случае все было настроено правильно, но все-таки InfoPlist.файл строк не найден.

единственное, что действительно работало было, чтобы удалить и добавить InfoPlist.строки файлов снова в проект.

Comments

    Ничего не найдено.