簡體   English   中英

無法本地化 info.plist 字符串

[英]Can't localize info.plist strings

我需要本地化 info.plist 的兩個鍵: NSLocationUsageDescriptionNSCameraUsageDescription 因此,我嘗試創建一個名為 InfoPlist.strings 的新文件,然后將其本地化,但應用程序始終顯示存儲在 info.plist 文件中的字符串。 怎么了?

來自Information Property List Key Reference 的官方文檔

本地化的值不存儲在 Info.plist 文件本身中。 相反,您將特定本地化的值存儲在名為 InfoPlist.strings 的字符串文件中。 您將此文件放在用於存儲相同本地化的其他資源的相同語言特定項目目錄中。 InfoPlist.strings 文件的內容是您想要本地化的各個鍵和適當翻譯的值。 在 Info.plist 文件中查找鍵值的例程將用戶的語言首選項考慮在內,並在存在時返回鍵的本地化版本(來自相應的 InfoPlist.strings 文件)。 如果密鑰的本地化版本不存在,則例程將返回存儲在 Info.plist 文件中的值。

我的 InfoPlist.strings 文件:

NSCameraUsageDescription = "hello";
NSLocationUsageDescription = "hello hello";

請檢查生成的應用程序包,文件是否真的存儲在那里並放置到正確的位置。 通常這是缺少的步驟。

只需進入項目設置,打開“Build Phases”,查看“Copy Bundle Resources”中是否可以找到該文件

對於您的應用程序支持的每種語言,您的 plist 文件可以有多個版本。 在 Utilities \\ File Inspector(右側)中,單擊“Localize”:

在此處輸入圖片說明

然后選擇您想要擁有自己版本的語言:

在此處輸入圖片說明

之后,您將能夠輸入每個 plist 文件並根據需要對其進行編輯。

InfoPlist.strings不考慮你的方案的應用區域,而是在設備中設置的區域! 在您的設備上: Settings -> General -> Language & Region ,檢查 iPhone 語言是否是您喜歡的語言。

從 iOS 10 開始,您需要將隱私密鑰添加到您的 Info.plist。

<key>NSPhotoLibraryUsageDescription</key>
<string>Please allow access to the photo library.</string>

當然,您仍然需要本地化這些鍵(並且您不能本地化應用程序的 Info.plist)。 因此,您還可以將這些隱私密鑰添加到 InfoPlist.strings 中,而后者又是本地化的。

"NSPhotoLibraryUsageDescription" = "Please allow access to the photo library.";

事實上,我的問題是我拼錯了 NSLocationWhenInUseUsageDescription 常量,所以當然沒有考慮到它。

有時候,你必須做出一個干凈第一,點擊菜單 - >產品 - >清潔。

有時您必須先進行清潔

在我的情況下,沒有從另一個構建目標等InfoPlist.strings文件有沖突。

該文件需要在里面目錄的指示語言,例如en.lproj

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM