ios - 在 iOS 中未显示隐私警报的本地化文本

标签 ios swift xcode localization plist

我正在开发一个支持英语和阿拉伯语的 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就不会退出了。只需重新加载 Root View Controller

我面临的问题是,当我像这样更改应用程序语言时,“..requesting permission for using Location”、“... would ,like to use Photo album”等隐私警报不会显示在所选中语言。我已经为英语和阿拉伯语创建了 InfoPlist.string 文件并添加了

NSCameraUsageDescription = "....想要访问相机"; NSLocationAlwaysAndWhenInUseUsageDescription = "....想要使用您当前的位置以获得更好的可用性";

仍然没有显示。我还尝试删除、清理应用程序、删除派生数据。

知道为什么会这样吗?

最佳答案

更改 AppleLanguages 键需要重新启动应用程序以便应用新的本地化,您可以尝试将 NSLocalizedString 与 tableName 一起使用或更改您从中读取的当前包,但系统本地化获胜在应用程序重新启动之前不会更改

关于ios - 在 iOS 中未显示隐私警报的本地化文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48861302/

相关文章:

ios - 出现键盘时向上移动 TextField/View,但前提是隐藏了 Text Field

iphone - uidatepicker 变得扭曲,需要帮助

ios - imageView 下的空白区域

ios - NSURLSession 中的 "Type of expression is ambiguous without more context"

ios - 在 UICollectionViewController 中显示单元格

ios - SpriteKit 和 UIViewController

ios - iOS 中使用 NSUInteger 和 NSMutableDictionary 的值转换问题

ios - 在 Swift 1.2 中使用 assetForURL

ios - XCode 6 中的存档菜单不可点击

Swift 错误处理最佳实践