当我使用多种语言时,调用Locale.preferredLanguages
有时有时会首先返回en
,请参见下图。
您可以在左侧看到我的订单是西班牙语,然后是英语,但是数组Locale.preferredLanguages
返回English, Spanish
。
有人知道为什么会这样吗?
答案 0 :(得分:0)
Locale.preferredLanguages的文档没有说明所返回语言的顺序。听起来很荒谬,但确实如此。
看起来像Bundle
类的preferredLocalizations(from:forPreferences:)
函数确实按照用户偏好顺序排列其响应⁽¹⁾,所以听起来您可能需要传递一个您的应用支持捆绑软件的所有语言环境的数组,并以用户偏好的顺序为您提供结果。
⁽¹⁾引用文档:“返回值:根据用户喜好排序的语言环境标识符数组。”