info.plist 的国际化

遇到的问题

关于国际化的文章有很多,大致是让我们在 Xcode 中去新建一个 .strings 文件,然后点击右侧的Localized,再在对应语言中去添加key - value达到多语言。这类的文章有很多,在此就不赘述了。

但是有一种情况,我们有一些权限的提示语,甚至是 App 的显示名称,这些都是在 info.plist中去添加的,那要怎么做呢?

1

2.png

错误的做法

可能你会单击当前工程的 info.plist,然后点击右侧的localized

3

这样做显然是不对的。哪怕你生成了一串 .strings 文件,也更改了 info.plist 的路径(而且会生成一个默认语言 .strings(Base)

正确的做法

参考链接

  • 新建一个 .strings文件,叫做InfoPlist.strings(文件名必须是这个)
  • 新建以后,点击右侧的 localized 才有意义。
  • 关键的步骤来了,这时候,点击我们的info.plist,右键选择open as source code 查看我们所要获取权限的原始 key
    4

也可以先在 info.plist 内部点击右键,查看权限本身的 key 名

5

可以看到右键打开的source code是一个 xml 文件,找到对应的key,复制。

6

需要注意的点

参考文档中有一条,我这里摘抄一下:

注意,层级要正确,如果在Info.plist里面是在最外边可以这么写,但是如果是在一个字典中,那么也需要把字典加进去,保持层级不变,不能只写想修改的那个key值。比如快捷菜单的层级在Info.plist里面是这样,如果想修改「查看密码」这个文字

<key>UIApplicationShortcutItems</key>
    <array>
        <dict>
            <key>UIApplicationShortcutItemIconType</key>
            <string>UIApplicationShortcutIconTypeLove</string>
            <key>UIApplicationShortcutItemTitle</key>
            <string>查看密码</string>
            <key>UIApplicationShortcutItemType</key>
            <string>all</string>
        </dict>
    </array>

那么你在多语言里面就要这么写

 "UIApplicationShortcutItems" = (
    {
        "UIApplicationShortcutItemType" = all;
        "UIApplicationShortcutItemTitle" = "View Password";
        "UIApplicationShortcutItemIconType" = "UIApplicationShortcutIconTypeLove";
    },
 );
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 见www.greatytc.com/p/59279b018217 Application can be killed...
    heatbeats阅读 3,103评论 0 0
  • 2018年09月07日添加localizedStringForKey:value:table:调用解析 1 添加要...
    Jacob_LJ阅读 6,661评论 10 20
  • 相关问题 国际化官网链接 Infoplist.strings为什么可以替换info.plist的名称?什么时机替换...
    wxkkkkk阅读 2,627评论 0 1
  • 奔驰的火车上拥挤不堪,也许是刚过完年的缘故,车厢内大都是出外打工的农民工。车厢内空气污浊,散发着汗臭的味道。行李架...
    敏子007阅读 268评论 0 0
  • 今天是什么日子 任务清单 周目标·完成进度 学习·信息·阅读 健康·饮食·锻炼 人际·家人·朋友 工作·思考 最美...
    smallsha阅读 139评论 0 0