【问题标题】:How to retrieve a value for NSLocale .scriptCode in Swift如何在 Swift 中检索 NSLocale .scriptCode 的值
【发布时间】:2017-04-22 01:58:53
【问题描述】:

我正在尝试从 NSLocale 打印一些基本信息,但我无法从 .scriptCode 属性中获取值。

目前,相关位是

let localeIdent = NSLocale.autoupdatingCurrent.identifier
let userLocale = NSLocale(localeIdentifier: localeIdent)
let languageScript = userLocale.scriptCode //not sure why this doesn't seem to return anything.
print("Language script code: \(languageScript)")

打印总是返回“nil”。

语言环境为我返回其余的信息集、地区和语言等,所以我不确定为什么不存储/返回。

【问题讨论】:

  • 仅供参考 - 在 Swift 3 中使用 Locale,而不是 NSLocale
  • 这有什么特别的原因吗?

标签: ios swift nslocale


【解决方案1】:

并非所有语言环境都有脚本代码。请参阅Internationalization and Localization GuideLanguage and Locale IDs 部分。

区域设置标识符可以包含多个部分,例如语言代码、脚本代码和区域代码。脚本和地区代码是可选的。

查看Locale scriptCode 的文档以获取示例:

例如,对于区域设置“zh-Hant-HK”,返回“Hant”。

en_USde_DE 等更简单的语言环境没有脚本代码。

【讨论】:

  • 感觉有点傻——我以为我已经尝试过了,但仍然得到 nil 响应,但现在再次尝试我得到了响应。谢谢!
猜你喜欢
  • 2019-08-09
  • 2019-04-15
  • 2011-09-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-23
  • 1970-01-01
相关资源
最近更新 更多