【发布时间】:2016-10-06 11:39:58
【问题描述】:
将我的 Mac 更新到 OSX Sierra 后,我注意到 NSLocale.preferredLanguages() 数组现在采用不同的格式(请参阅快速说明 here)
另外,我想 IOS9 也会发生同样的事情。
所以,简而言之,以前我们有语言格式“en”、“fr”、“ru”、e.t.c
现在,我们有“en-US”、“en-RU”、“fr-US”等格式
在我的应用程序中,一些控件的坐标与语言环境相关。现在,由于格式不同,它们都是错误的。我正在考虑解决此问题并继续支持旧版本的最佳方法。
所以,我的问题是:
有没有什么方法可以只接收没有地区代码的语言代码?快速而肮脏的解决方案是从此字符串中读取前两个符号。还有更优雅的吗?
附:有人可以向我解释苹果的逻辑吗?我的意思是,为什么他们决定,最好的选择是更改现有的对象格式(破坏向后兼容性)而不是向 NSLocale 添加额外的字段?
【问题讨论】:
标签: ios objective-c swift macos localization