我在我的应用程序中成功实现了复数本地化。但是,如果我更改应用程序语言,localizedStringWithFormat仍会返回以前语言的复数形式。
如果我重新启动应用程序,复数将以正确的语言(我选择的语言)返回。
是否有可能明确本地化StringWithFormat,它应该以哪种语言返回复数?
示例代码,其中复数被称为:
let candiesEaten: Int = 38
let candyCounterString: String = String.localizedStringWithFormat(NSLocalizedString("TEXT_CANDY_COUNTER", comment: ""), arguments: candiesEaten)
应用程序中的语言是这样更改的,它可以与所有其他字符串一起使用:
private static func setLanguageAndSynchronize(_ lang: [String]) {
UserDefaults.standard.set(lang, forKey: Preferences.appleLanguagesKey)
UserDefaults.standard.synchronize()
}