2017-08-02 55 views
1

我將模擬器的語言設置爲法語。要檢查語言代碼,我用了幾個解決方案:錯誤的語言代碼swift

let lang = NSLocale.autoupdatingCurrent.languageCode 
print(lang) 

let pre = Locale.preferredLanguages[0] 
print(pre) 

結果是:

Optional("en") 
fr-US 

我希望得到的是:

fr 

我怎樣才能做到這一點?

+0

你的問題是你越來越fr_US而不是fr? –

+0

有無論如何得到只是'fr' –

+0

你可以採取的子字符串之前_或者如果沒有_採取整個字符串 –

回答

3

嘗試下面的代碼,

let requiredString = pre.components(separatedBy: "-").first ?? pre //fr 
/*if pre.contains("-"), then requiredString = before("-") else requiredString = pre*/ 
1

如果你想要的語言,而不是Language_Region,那麼我建議採取_字符串之前的子字符串忽略該地區。

(如果字符串不包含_再取整個字符串,因爲它不包含在它的區域)

1
print(Locale.components(fromIdentifier: Locale.preferredLanguages[0])["kCFLocaleLanguageCodeKey"]!) 

這將打印僅限語言代碼。