当我试图本地化一个字符串时,它返回上一个值。我在this post中发现,实际上必须使缓存失效。
或多或少这是我试过的代码。在localizableStringsPath
中,该文件实际上显示了我从inet下载的翻译,但是bundle返回上一个值。我必须关闭应用程序,然后bundle从localizableStringsPath
返回上一个值。
func translateFromInet(key: String) -> String {
let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first ?? ""
let localizableStringsPath = documentsPath + "/Localizable.strings" // This file is downloaded from the inet with custom translations
let bundle = Bundle(path: documentsPath)
return bundle!.localizedString(forKey: key, value: nil, table: nil)
}
最佳答案
将可本地化文件另存为Localizable.nocache.strings
,而不是Localizable.strings
。
您可以在apple文档中找到更多详细信息:
developer.apple.com - Resource Programming Guide - String Resources
您可以将下载的文件重命名为Localizable.nocache.strings
,然后按以下方式对代码进行编辑:
func translateFromInet(key: String) -> String {
let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true).first ?? ""
let localizableStringsPath = documentsPath + "/Localizable.nocache.strings" // This file is downloaded from the inet with custom translations
let bundle = Bundle(path: documentsPath)
return bundle!.localizedString(forKey: key, value: nil, table: nil)
}