gpt4 book ai didi

ios - 为什么 Locale.current.identifier 无效?

转载 作者:搜寻专家 更新时间:2023-10-31 22:25:59 28 4
gpt4 key购买 nike

当设置“语言和地区”(设置 => 通用 => 语言和地区)时出现问题,如下所示:

  • “iPhone 语言”到“英语(加拿大)”。
  • “地区”到“约旦”。

但是,(如提到的答案:How to get detailed language of device in swift 调用:

print(Locale.current.identifier)

日志:

en_JO

这是一个无效 local identifier (按理来说,约旦是一个中东国家,母语是阿拉伯语,不是英语)。

我还检查了 availableIdentifiers :

print(Locale.availableIdentifiers)

而且 - 显然 - 它包含“en_JO”。

另外,我试过:

if let regionCode = Locale.current.regionCode, let languageCode = Locale.current.languageCode {
print("\(languageCode)_\(regionCode)")
}

输出是一样的。

好像和标识符的有效性没有关系,但是怎么才能保证得到一个有效的标识符呢?例如,在我的例子中,预期结果应该是:

en_CA

那么我在这里缺少什么?

最佳答案

标识符 en_JO 没有任何无效内容。根据 Unicode 标准,该标识符作为约旦地区英语的标识符是完全有效的。

但是,这并不意味着该地区的数据必须可用。系统不需要为每种疯狂的语言和地区组合提供数据。

参见 Language Matching在 Unicode 标准中。如果请求的语言环境没有数据,则使用后备语言环境,在这种情况下可能是语言环境 en

关于ios - 为什么 Locale.current.identifier 无效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47495420/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com