Я считаю, что язык - это просто язык, но локаль подразумевает гораздо больше (например, вычисления календаря / даты, валюта, форматирование чисел и т. Д.). Руководство по программированию локалей - краткое чтение, отличное место для начала.
В частности, +preferredLocalizations
, являющийся ресурсом пакета, является компонентом самого приложения, настраиваемым во время разработки приложения, тогда как +preferredLanguages
, исходя из NSLocale
(кстати, это метод класса, а не метод объекта) представляет системные настройки пользователя.
Следовательно, +preferredLocalizations
предоставляет язык, на котором фактически выполняется приложение, тогда как +preferredLanguages
предоставляет язык, на котором пользователь предпочитает запускать свои приложения (даже если приложения еще не поддерживают его).