2016-06-29 55 views
0

当我使用displayNameForKey时,对于某些语言,返回的字符串太长,与iOS设置应用中的本机语言设置不同。例如:如何从语言和地区代码中获取短显示名称?

let locale = NSLocale(localeIdentifier: "zh-Hant") 
let key = NSLocaleIdentifier 
print(locale.displayNameForKey(key, value: "zh-Hans")!, locale.displayNameForKey(key, value: "zh-Hant-HK")!) 
// return 中文(簡體)and 中文(繁體,中華人民共和國香港特別行政區) 
// but what I want is like the native language settings: 簡體中文 and 繁體中文(香港) 

如何获取简短的语言名称?

回答

0

在iOS10中,现在您可以使用NSLocale的localizedString(forLanguageCode :)方法来获取简短的语言名称。

在斯威夫特3

let langName = NSLocale.preferredLanguages[0] 
    let locale = NSLocale(localeIdentifier: "zh-Hant") 
    let fullName = locale.localizedString(forLanguageCode: lang)! 
+0

但结果仍然是不够的。对于“zh-Hans”和“zh-Hant-HK”,只需返回“中文”(中文)。 – zgjie

相关问题