我想添加一个功能来更改应用程序内的应用程序语言(独立于 iPhone 语言)。
为了显示可用的语言,而不是对它们进行硬编码,我想获取支持的本地化语言列表并使其动态化。然后每次我添加一种新的本地化语言时,它都会自动添加到可用语言列表中。
有没有办法做到这一点?
用:
let languageIds = Bundle.main.localizations
获取语言 ID 列表。然后,您可以使用以下命令将每个语言 ID 转换为本地化语言名称:
let loc = Locale(identifier: langId)
let name = loc.localizedString(forLanguageCode: langId) ?? "Unknown"
下面是一些代码,用于在您的应用程序包中构建可用语言字典。它以区域设置 ID(语言 ID)为键,每个值都是每个区域设置 ID 的本地化语言名称。
let langIds = Bundle.main.localizations
var languages = [String:String]()
for langId in langIds {
let loc = Locale(identifier: langId)
if let name = loc.localizedString(forLanguageCode: langId) {
languages[langId] = name
} else {
// this should never be reached
}
}
该Bundle
级还提供了preferredLocalizations
性能和一些其他相关的性能和功能。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句