我在服务器上有一个数据库,其中包含我在应用程序中使用的所有语言关键字,这些语言可以随时更改。
在数据库的语言表中,有column
对应Language
(id , key, value, lang)
。
在Android应用程序中,我从设备读取语言,它返回例如en-GB
或en-US
。
但是在iOS应用程序中,我不能像上面的例子那样获取语言,它总是只返回语言(en , es, fr
)。
所以我不能查询到数据库,以获得语言指定的关键字在iOS应用程序。因为数据库上的语言是en-GB,en-US风格。
var langId: String? = NSLocale.preferredLanguages().first as? String
我如何获得更详细的语言?
6条答案
按热度按时间hivapdat1#
从
currentLocale()
开始,问一些关于它的问题。例如:或者,在更精细的粒度级别:
dojqjjoe2#
Swift 3没有
NSLocaleCountryCode
,替换为regionCodehttps://developer.apple.com/reference/foundation/nslocale.key/1417845-countrycode
Swift 5.7中:
另一个解决方案是
NSLocale.current.identifier
这将返回例如en_us
您可以将
_
替换为-
。它看起来像这样:NSLocale.current.identifier.replacingOccurrences(of: "_", with: "-")
gc0ot86w3#
不需要额外的努力,只需按照您的要求使用以下内容。
ev7lccsx4#
对于Swift 4,请改为:
5cg8jx4n5#
*Swift 5酒店
7rtdyuoh6#
只需使用这行代码就可以解决:
let identifier = Locale.current.identifier