iOS 中未显示隐私警报的本地化文本
Localized text not showing for Privacy alert in iOS
我正在开发 iOS 支持英语和阿拉伯语的应用程序。用户可以从应用程序内部更改应用程序语言。
当用户更改我设置的语言时,
//change app language
UserDefaults.standard.set([language], forKey: "AppleLanguages")
currentLanguage = language
UserDefaults.standard.synchronize()
//current language updating
var currentLanguage : String{
get{
if let selectedLanguage = UserDefaults.standard.string(forKey: "selectedLanguage"){
return selectedLanguage
}else{
let language = Locale.preferredLanguages[0]
if language.hasPrefix("ar"){
return SupportedLanguage.ar.rawValue
}else{
return SupportedLanguage.en.rawValue
}
}
}
set{
UserDefaults.standard.setValue(newValue, forKey: "selectedLanguage")
}
}
这样App就不会退出了。只是重新加载根视图控制器
我面临的问题是,当我像这样更改应用程序语言时,诸如“..requesting permission for using Location”、“... would ,like to use Photo album”等隐私警报没有显示在所选语言。我已经为英语和阿拉伯语创建了 InfoPlist.string 个文件并添加了
NSCameraUsageDescription = "....想要访问相机";
NSLocationAlwaysAndWhenInUseUsageDescription = "....想要使用您的当前位置以获得更好的可用性";
仍然没有显示。我也试过删除、清理应用程序、删除派生数据。
知道为什么会这样吗?
更改 AppleLanguages
键需要重新启动应用程序以便应用新的本地化,您可以尝试将 NSLocalizedString
与 tableName 一起使用或更改您从中读取的当前包,但系统本地化不会更改直到应用重新启动
我正在开发 iOS 支持英语和阿拉伯语的应用程序。用户可以从应用程序内部更改应用程序语言。 当用户更改我设置的语言时,
//change app language
UserDefaults.standard.set([language], forKey: "AppleLanguages")
currentLanguage = language
UserDefaults.standard.synchronize()
//current language updating
var currentLanguage : String{
get{
if let selectedLanguage = UserDefaults.standard.string(forKey: "selectedLanguage"){
return selectedLanguage
}else{
let language = Locale.preferredLanguages[0]
if language.hasPrefix("ar"){
return SupportedLanguage.ar.rawValue
}else{
return SupportedLanguage.en.rawValue
}
}
}
set{
UserDefaults.standard.setValue(newValue, forKey: "selectedLanguage")
}
}
这样App就不会退出了。只是重新加载根视图控制器
我面临的问题是,当我像这样更改应用程序语言时,诸如“..requesting permission for using Location”、“... would ,like to use Photo album”等隐私警报没有显示在所选语言。我已经为英语和阿拉伯语创建了 InfoPlist.string 个文件并添加了
NSCameraUsageDescription = "....想要访问相机"; NSLocationAlwaysAndWhenInUseUsageDescription = "....想要使用您的当前位置以获得更好的可用性";
仍然没有显示。我也试过删除、清理应用程序、删除派生数据。
知道为什么会这样吗?
更改 AppleLanguages
键需要重新启动应用程序以便应用新的本地化,您可以尝试将 NSLocalizedString
与 tableName 一起使用或更改您从中读取的当前包,但系统本地化不会更改直到应用重新启动