我将模拟器的语言设置为法语。为了检查语言代码,我使用了几个解决方案:
let lang = NSLocale.autoupdatingCurrent.languageCode
print(lang)
let pre = Locale.preferredLanguages[0]
print(pre)
结果是:
Optional("en")
fr-US
我期望获得的是:
fr
我怎样才能实现这一目标?
答案 0 :(得分:4)
尝试以下代码,
let requiredString = pre.components(separatedBy: "-").first ?? pre //fr
/*if pre.contains("-"), then requiredString = before("-") else requiredString = pre*/
答案 1 :(得分:1)
如果你想要Language而不是Language_Region,那么我建议在字符串_之前取一个子字符串来忽略Region。
(如果字符串不包含_则接受整个字符串,因为它不包含其中的区域)
答案 2 :(得分:1)
print(Locale.components(fromIdentifier: Locale.preferredLanguages[0])["kCFLocaleLanguageCodeKey"]!)
这将仅打印语言代码。