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里面是这样,如果想修改「查看密码」这个文字

UIApplicationShortcutItems
    
        
            UIApplicationShortcutItemIconType
            UIApplicationShortcutIconTypeLove
            UIApplicationShortcutItemTitle
            查看密码
            UIApplicationShortcutItemType
            all
        
    

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

 "UIApplicationShortcutItems" = (
    {
        "UIApplicationShortcutItemType" = all;
        "UIApplicationShortcutItemTitle" = "View Password";
        "UIApplicationShortcutItemIconType" = "UIApplicationShortcutIconTypeLove";
    },
 );

你可能感兴趣的:(info.plist 的国际化)