遇到的問題
關(guān)于國際化的文章有很多,大致是讓我們在 Xcode 中去新建一個 .strings 文件,然后點擊右側(cè)的Localized,再在對應(yīng)語言中去添加key - value達到多語言。這類的文章有很多,在此就不贅述了。
但是有一種情況,我們有一些權(quán)限的提示語,甚至是 App 的顯示名稱,這些都是在 info.plist中去添加的,那要怎么做呢?

1

2.png
錯誤的做法
可能你會單擊當前工程的 info.plist,然后點擊右側(cè)的localized

3
這樣做顯然是不對的。哪怕你生成了一串 .strings 文件,也更改了 info.plist 的路徑(而且會生成一個默認語言 .strings(Base))
正確的做法
- 新建一個
.strings文件,叫做InfoPlist.strings(文件名必須是這個) - 新建以后,點擊右側(cè)的
localized才有意義。 - 關(guān)鍵的步驟來了,這時候,點擊我們的
info.plist,右鍵選擇open as source code查看我們所要獲取權(quán)限的原始key
4
也可以先在 info.plist 內(nèi)部點擊右鍵,查看權(quán)限本身的 key 名

5
可以看到右鍵打開的source code是一個 xml 文件,找到對應(yīng)的key,復(fù)制。

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";
},
);
