我將模擬器的語言設置爲法語。要檢查語言代碼,我用了幾個解決方案:錯誤的語言代碼swift
let lang = NSLocale.autoupdatingCurrent.languageCode
print(lang)
let pre = Locale.preferredLanguages[0]
print(pre)
結果是:
Optional("en")
fr-US
我希望得到的是:
fr
我怎樣才能做到這一點?
我將模擬器的語言設置爲法語。要檢查語言代碼,我用了幾個解決方案:錯誤的語言代碼swift
let lang = NSLocale.autoupdatingCurrent.languageCode
print(lang)
let pre = Locale.preferredLanguages[0]
print(pre)
結果是:
Optional("en")
fr-US
我希望得到的是:
fr
我怎樣才能做到這一點?
嘗試下面的代碼,
let requiredString = pre.components(separatedBy: "-").first ?? pre //fr
/*if pre.contains("-"), then requiredString = before("-") else requiredString = pre*/
如果你想要的語言,而不是Language_Region,那麼我建議採取_字符串之前的子字符串忽略該地區。
(如果字符串不包含_再取整個字符串,因爲它不包含在它的區域)
print(Locale.components(fromIdentifier: Locale.preferredLanguages[0])["kCFLocaleLanguageCodeKey"]!)
這將打印僅限語言代碼。
你的問題是你越來越fr_US而不是fr? –
有無論如何得到只是'fr' –
你可以採取的子字符串之前_或者如果沒有_採取整個字符串 –