preferredLocalization和preferredLanguage有什么区别?

时间:2012-03-01 00:28:05

标签: objective-c ios cocoa-touch cocoa

根据文件定义[NSLocale preferredLanguages]

  

用户的语言首选项顺序为NSString对象数组,每个对象都是一个规范化的IETF BCP 47语言标识符。

[[NSBundle mainBundle] preferredLocalizations]的定义:

  

NSString对象数组,每个对象都标识接收器包中的本地化。语言按首选顺序排列。

我真的不知道差异是什么。应该使用哪一个?

1 个答案:

答案 0 :(得分:4)

我认为语言只是语言,但语言环境意味着更多(例如日历/日期计算,货币,数字格式等)。 Locales Programming Guide是一个简短的阅读,一个很好的起点。

更具体地说,作为捆绑资源的+preferredLocalizations是应用程序本身的一个组件,可以在应用程序设计期间配置,而+preferredLanguages来自NSLocale(顺便说一句,它是一个类方法) ,而不是对象方法)表示用户的系统级首选项。

因此,+preferredLocalizations提供应用实际运行的语言,而+preferredLanguages提供用户更喜欢其应用运行的语言(即使应用尚不支持)。< / p>