Технические вопросы и ответы QA1828

Как iOS Определяет Язык Для Вашего Приложения

Q: Как iOS определяет язык для моего приложения?

A: Для определения языка для приложения iOS рассматривает не только порядок пользовательских предпочтений языка (в General > International > Language из Settings приложение), но также и локализации, Ваше приложение объявляет его, поддерживает. Вот подробный процесс:

  1. iOS сначала ищет самый предпочтительный язык Вашего пользователя, который является первой записью в их предпочтениях языка.

  2. Это продолжается, чтобы проверить, поддерживается ли тот язык Вашим приложением. iOS ищет Ваш комплект приложений .lproj папка, соответствующая предпочтительный язык. Если папка существует, iOS выводит, что Ваше приложение было локализовано для того языка и выбирает его для Вашего приложения. Иначе, iOS выбирает следующий язык в пользовательских предпочтениях языка, затем повторяет вышеупомянутую проверку.

    Поддержка диалекта в iOS может немного изменить вышеупомянутое поведение. Если предпочтительный язык Вашего пользователя будет региональным вариантом, не поддерживающимся Вашим приложением, то iOS попытается отступить к более универсальному языку перед отказом. Например, если предпочтительный язык Вашего пользователя является британским вариантом английского языка, и Ваш комплект приложений не содержит en-GB.lproj или en_GB.lproj папка, iOS тогда ищет Ваш пакет en.lproj если папка существует, папка и выбирает English для Вашего приложения.

  3. Если ни один из предпочтительных языков пользователя не поддерживается Вашим приложением, iOS выбирает язык, соответствующий область разработки Вашего приложения (CFBundleDevelopmentRegion).

Как только система выбрала язык для Вашего приложения, соответствия .lproj папка используется для определения местоположения локализованных ресурсов. Если UI Вашего приложения или предоставленные системой компоненты UI (такие как меню редактирования текста, UIDatePicker, UIImagePickerController и UILocalizedIndexedCollation) выведены на экран на неправильном языке, удостоверьтесь, что Ваше приложение содержит все свои поддерживаемые языки .lproj папки и что правильно называют эти папки.

Если Ваше приложение управляет локализованными ресурсами, не используя никого .lproj папки, убедиться указать поддерживаемые языки с CFBundleLocalizations.

Если Ваше приложение не использует .lproj папки для управления локализованными ресурсами удостоверьтесь приложение CFBundleLocalizations указывает все Ваши поддерживаемые языки.



История версии документа


ДатаПримечания
10.09.2014

Новый документ, описывающий, как iOS определяет язык для Вашего приложения.