ios - How to get full display name for locale
问题描述
I want to show "繁體中文", "简体中文" in a view.
I use Locale.displayname to get displayname and my parameter is "zh-Hant" and "zh-Hans", the value will return "中文(繁體)"and "中文(简体)".
Here is parts of my code:
let loacleName = locale.displayName(forKey: NSLocale.Key.identifier, value: "zh-Hant")
Is anyone know how can I get "繁體中文", "简体中文" from iOS function?
解决方案
这是使用 native 的解决方案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
推荐阅读
- angular - 动态表 tr angular 5 的表单验证
- r - 在 shinyApp 中使用 R text2vec 包和 LDAvis 的 LDA 主题模型
- c++ - 当 RAII 不可能时,如何在 C++ 中“尝试/最终”?
- c# - 如何以编程方式选择所有符合条件的 DataGrid 行
- c++ - How to read a text file with number intervals? C++
- python - How to compare a database foreign key value with form foreign key value in Django?
- junit - 模拟单元测试需要但未调用:
- excel - 组合 Excel 函数:匹配和偏移
- ios - 带有日英词典的 UIReferenceLibraryViewController 导致应用程序冻结某些单词
- python - Python RRDTool 更新错误函数 update_pdp_prep,案例 DST_GAUGE - 无法将“”转换为浮点数