美文网首页iOS开发iOS学习笔记iOS Developer
iOS10系统弹框语言国际化问题

iOS10系统弹框语言国际化问题

作者: seasonZhu | 来源:发表于2017-01-18 21:10 被阅读620次

iOS10的很多新特性,想必大家都被各种坑过,笔者最近接手了一个问题,就是iOS10系统中使用系统的打开相机\相册框的时候提示语国际化的问题.

使用iOS 10的都知道,在Info.plist文件中一定要添加对于隐私的相关key,这样在点击使用相机或者相册这些功能的时候,才不至于崩掉,而且可以在对应的key中添加对于的提示语言,这样会使得界面更加友好.

笔者遇到的问题就是,app需要支持中英俄三种语言,而Info.plist文件中对于的key只能设置一种语言的提示,一线的战斗民族已经开挂发飙要我们马上解决掉这个问题,匆匆忙忙中在网上找到了解决方法,不过都不算细致,于是想自己写一篇用来记录,也让有需求的兄弟们能迎刃而解这个问题,当然大神级别的请直接绕过.

这里的Demo只国际化了打开相册的中文和英文,其他的大家自己就可以举一反三啦.

解决问题的代码很少,主要上截图.

添加对应的隐私类键值对
点击鼠标右键 然后点击Show Raw Keys/Value
获取真正意义上的Privacy - Photo Library Usage Description的key->NSPhotoLibraryUsageDescription,记住它

下面是非常关键的一步,创建Info.plist文件对应的国际化文件

文件名称一定要是InfoPlist!

文件名称一定要是InfoPlist!

文件名称一定要是InfoPlist!

重要的事情说三遍,不然显示是不会成功的!!!

新建资源文件
设置需要国际化的语言
点击右边的按钮进行设置

勾上当前App需要支持的语言,如下图,那么左侧的InfoPlist.strings文件就可以展开了,对应支持的语言


一般情况下Base语言资源可以去掉,这是时候xcode会问你是将文件移动到其他语言目录下还是回收站,放入回收站即可


设置英文资源的键值对 设置中文资源的键值对

好了,这个时候在中文和英文的.strings文件中将之前的NSPhotoLibraryUsageDescription附上不同的值就可以啦


开跑

iOS系统语言为英文的时候

显示的英文资源

当iOS系统语言为中文的时候

显示的中文资源

这个的应用面还有很多啦,比如在iOS语言为英文系统下和中文系统下app的应用名称不同,都可以通过将InfoPlist.strings资源国际化来实现.这里就不一一列举了.

如果你觉得这个文章对你有帮助,请点个赞,感谢!


相关文章

网友评论

  • 欧德尔丶胡:你好! 我按你设置的 系统提示语,国际化 不行喔!
  • 盲神:假如是拨打电话这种....有办法解决吗??
    seasonZhu:@Dream晗晗 拨打电话调用的是系统方法吧,都是系统提示,应该不用国际化吧,我自己试了一下,没有问题
    class func callUp() {
    let urlString = "telprompt://你的手机号"
    if let url = URL(string: urlString) {
    //根据iOS系统版本,分别处理
    if #available(iOS 10, *) {
    UIApplication.shared.open(url, options: [:],
    completionHandler: {
    (success) in
    })
    } else {
    UIApplication.shared.openURL(url)
    }
    }
    }
  • Areslee:太感谢了!!!!!!!!
  • 心亦逸风:感谢🙏
  • 灵台无计:大神快带我!

本文标题:iOS10系统弹框语言国际化问题

本文链接:https://www.haomeiwen.com/subject/zdebbttx.html