iOS 开发每天分享优质文章自鉴iOS小知识

info.plist 的国际化

2018-12-08  本文已影响62人  黑羽肃霜

遇到的问题

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

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

1 2.png

错误的做法

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

3

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

正确的做法

参考链接

也可以先在 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";
    },
 );
上一篇下一篇

猜你喜欢

热点阅读