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

Как я могу использовать строку перевода в файл plist ?
-- Update --
У меня уже есть локализуемых строк. Мне просто интересно, что я могу использовать что-то вроде
NSLocalizedString (MYSTRING,nil) внутри строки plist. Я знаю, что я могу создать несколько файлов информации.файлы для локализации, но мне было интересно, что там может быть более простой способ.
7 ответов:
вы должны использовать
InfoPlist.stringsфайл для локализации значенийInfo.plist. Для этого зайдите вFile->New->FileвыберитеStrings Fileпод наiOSимяInfoPlist, и создавать. Откройте и вставьтеInfo.plistзначения, которые вы хотите локализовать как:"NSLocationWhenInUseUsageDescription" = "Description of this";теперь вы можете локализовать
InfoPlist.stringsфайл с переводами. Удачи Вам!EDIT:
выберите Параметры локализации или включите локализацию, если это необходимо,
вы должны быть в состоянии видеть файл также на левой стороне редактора.
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, перечисленные здесь: темы интернационализации и локализации
чтобы конкретно ответить на ваш вопрос, когда вы добавляете новый язык для вашего проекта
, вы получаете возможность выбрать, какие файлы InfoPlist включать (если у вас есть несколько целей, у вас будет несколько файлов Info plist). Все, что вам нужно сделать, чтобы получить следующий экран, это нажать + в разделе локализации и выбрать новый язык для добавления поддержки.
после добавления он создаст необходимые строковые файлы в соответствующих каталогах lproj для данного языка.
-- EDIT--
чтобы быть ясным, iOS заменит строку для вашего файла Plist на основе текущего выбранного языка пользователя, используя ключ записи plist в качестве ключа в локализованном файле строк.
Как говорят RGML, вы можете создать InfoPlist.строки, локализовать его затем добавить свой ключ и значение, как это: "NSLocationWhenInUseUsageDescription" = " Помогите найти меня!";
Он добавит ключ к вашей информации.plist для указанного языка.
для тех, кто испытывает проблемы информация.plist не включается при попытке добавить локализации, как в Xcode 9.
вам нужно сделать инфо.plist localiazble, перейдя в него и нажав на кнопку локализовать в инспекторе файлов, как показано ниже.
информация.затем plist будет включен в файловые ресурсы, когда вы перейдете к добавлению новых локализаций.
в моем случае все было настроено правильно, но все-таки InfoPlist.файл строк не найден.
единственное, что действительно работало было, чтобы удалить и добавить InfoPlist.строки файлов снова в проект.


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


Comments