Я разрабатываю приложение для клиента в Европе. Я - англоговорящий в США. Наше приложение будет поддерживать несколько языков, но не английский. У меня есть все строки в нашем приложении в переведенных файлах Localized.strings, правильно настроены для разных языков, и все они отлично работают, когда устройство настроено на правильный язык (язык устройства - немецкий = приложение правильно локализовано для немецкого) ,Не-английский язык по умолчанию для приложения iOS?
Существует проблема, когда устройство не настроено на один из поддерживаемых нами языков, например, на моем телефоне, который установлен на английский. Мы хотим, чтобы телефон вернулся на немецкий язык в таких случаях, но этого не происходит. Мы видим, что телефон использует язык, который отображается в списке языков в разделе «Международный» в разделе «Настройки». Для моего телефона самый высокий неанглийский язык в списке - французский, поэтому, когда я запускаю приложение, он локализован для французского языка. Если я поменю свой телефон на немецкий, а затем вернусь на английский (который изменяет порядок в списке «Языки»), приложение затем локализуется на нем.
Как я могу гарантировать, что приложение по умолчанию использует немецкий язык для не поддерживаемых языков? Я использовал this tutorial для настройки локалей для проекта. Это включает удаление стандартного «английского» языка, созданного при первой локализации файла. В файле проекта, я добавил:
developmentRegion = de;
Кроме того, в Info.plist, у меня есть
<key>CFBundleDevelopmentRegion</key>
<string>de</string>
без успеха.
Любые идеи были бы оценены!
Pascal имеет правильный ответ: Приложение будет падать обратно к следующему наиболее разумной локализации; это по дизайну и способ работы всех приложений на iOS и Mac OS X. Ваше приложение не является особенным. –
Я все еще обдумываю этот ответ. Хотя это, очевидно, хорошо продуманный ответ, в конце концов, бизнес-требование по-прежнему заключается в том, что приложение должно вернуться на немецкий язык в случае, если соответствующая локализация не существует; это не подлежит обсуждению с клиентом. Что интересно, и о чем я упоминаю в названии моего вопроса, заключается в том, что если папка English.lproj хранится в проекте, она используется как спад, когда нет другой доступной локализации.Если я не смогу понять что-то еще, я просто оставлю эту папку и скопирую там активы «de». –
Нет, английский также не является системным значением по умолчанию. Это просто, ОС имеет список локализаций, как указано в настройках. При запуске приложения он ищет соответствующие папки * .lproj и использует первый, который соответствует языку из списка. Вот почему он использует английский, когда вокруг ничего нет. ;) Но я знаю еще один трюк, сформулирую новый ответ ... – Pascal