我想在 View 中显示“繁体中文”、“简体中文”。
我使用Locale.displayname获取displayname,我的参数是“zh-Hant”和“zh-Hans”,返回值会返回“中文(繁体)”和“中文(简体)”。
这是我的部分代码:
let loacleName = locale.displayName(forKey: NSLocale.Key.identifier, value: "zh-Hant")
有谁知道如何从 iOS 函数中获取“繁体中文”、“简体中文”?
最佳答案
这是一个使用原生 Locale
的解决方案。对于标识符 zh-Hant
和 zh-Hans
它使用正则表达式删除了不需要的字符(请注意这些字符不是括号和空格字符)并交换两对。
extension Locale {
var localizedFullDisplayName : String? {
if self.identifier.hasPrefix("zh-Han") {
guard let trimmed = self.localizedString(forIdentifier: self.identifier)?.replacingOccurrences(of: "[()]", with: "", options: .regularExpression) else { return nil }
return String(trimmed.suffix(2) + trimmed.prefix(2))
} else {
return self.localizedString(forIdentifier: locale.identifier)
}
}
}
let locale = Locale(identifier: "zh-Hans")
locale.localizedFullDisplayName
关于ios - 如何获取语言环境的完整显示名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57758990/