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

时间:2018-02-19 07:27:14

标签: 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不会退出。只需重新加载根视图控制器

我面临的问题是,当我更改这样的应用程序语言时,隐私提醒,例如“..使用位置的请求权限”,“......会像使用相册”等一样,不会显示在选定内容中语言。我已经为英语和阿拉伯语创建了InfoPlist.string文件,并添加了像

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

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

知道为什么会这样吗?

1 个答案:

答案 0 :(得分:1)

更改using System; using System.Threading.Tasks; namespace Testificate { public class Program { public static void Main(string[] args) { Task.Run(() => Alert()).Wait(); } private static void Alert() { Console.WriteLine("Test"); } } } 密钥需要重新启动应用,以便应用新的本地化,您可以尝试将AppleLanguages与tableName一起使用或更改您读取的当前捆绑包,但系统本地化将不会更改,直到应用重启