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 一起使用或更改您从中读取的当前包,但系统本地化不会更改直到应用重新启动