Suh*_*til 7 localization objective-c ios swift
我的应用程序有 2 个语言支持 1) 英语 - en 2) 德语 - de
我已经完成了所有本地化程序,唯一的问题是每当我将语言从“en”更改为“de”,反之亦然,然后在系统文本没有更改为最新的语言之后,但它会在我杀死应用程序时反映出来并重新打开它。
例如:
popover Copy-LookUp-Share 不本地化为 German Lang。但是 .string 文件中的其他内容已正确处理。
我的更改语言代码:
func setLanguage(languageCode:String) {
var appleLanguages = UserDefaults.standard.object(forKey: "AppleLanguages") as! [String]
appleLanguages.remove(at: 0)
appleLanguages.insert(languageCode, at: 0)
UserDefaults.standard.set(appleLanguages, forKey: "AppleLanguages")
UserDefaults.standard.synchronize()
if let languageDirectoryPath = Bundle.main.path(forResource: languageCode, ofType: "lproj") {
bundle = Bundle.init(path: languageDirectoryPath)
} else {
resetLocalization()
}
}
func resetLocalization() {
bundle = Bundle.main
}
Run Code Online (Sandbox Code Playgroud)
仅供参考:类似的事情发生在“微信”iOS 应用程序中。
这些是 UIKit SDK 私有菜单项,您无法控制它们,可能它们只是创建一次然后保留缓存。
您唯一可以尝试的就是在语言更改时强制更新,例如
UIMenuController.shared.update()
Run Code Online (Sandbox Code Playgroud)
注意:实际上没有记录为此目的使用“AppleLanguages”键,因此它有点笨拙。L10N 是系统设置起源的功能,经过设计。
| 归档时间: |
|
| 查看次数: |
212 次 |
| 最近记录: |