簡體   English   中英

如何本地化 NSPhotoLibraryUsageDescription 鍵 (ALAssets)

[英]How to Localize NSPhotoLibraryUsageDescription key (ALAssets)

我正在嘗試本地化應用程序的 info.plist 文件( 參考此處)中定義的NSPhotoLibraryUsageDescription鍵。
當應用程序首次要求訪問您的相機膠卷時,此鍵可讓您提供自定義消息。 我正在使用 ALAssetsLibrary 枚舉資產組(這會觸發訪問請求消息彈出)。

到目前為止,我的谷歌搜索沒有回答我如何實現這一目標。

我想避免本地化整個 info.plist 文件,因為它包含更多非語言環境相關的內容。

任何人已經解決了這個問題或有如何進行的提示?

您可以創建一個名為InfoPlist.strings的文件(可能會在您創建項目時為您創建)。 該文件的使用和本地化與文件Localizable.strings非常相似。

在其中,您將擁有並輸入以下內容:

NSPhotoLibraryUsageDescription = "Test of new Photos warnings";

注意key周圍沒有引號

我認為只要該鍵包含在info.plist ,它就會使用InfoPlist.string的值進行InfoPlist.string如果它適用於該語言)。 否則它將使用 info.plist 中定義的任何內容。

我在這里有我的筆記https://github.com/onmyway133/notes/issues/290 ,否則你會得到

缺少 Info.plist 鍵 - 此應用程序嘗試訪問隱私敏感數據而沒有使用說明。 應用程序的 Info.plist 必須包含一個 NSPhotoLibraryUsageDescription 鍵和一個字符串值,向用戶解釋應用程序如何使用這些數據。 更正這些問題后,您就可以重新交付更正后的二進制文件。

確保

  • 您在 Info.plist 中聲明密鑰
  • 您在 InfoPlist.strings 中對其進行本地化
  • 你不需要雙引號,比如"NSPhotoLibraryUsageDescription" = "Test of new Photos warnings"; , 你可以只使用NSPhotoLibraryUsageDescription = "Test of new Photos warnings";

使這項工作對我有用的唯一方法是在 Xcode 中:

1) 轉到Project target -> Info-> Localization-> Add localization

在那里添加了語言。 此操作創建了<projectName>/<LanguageInitials>.lproj文件夾。

在此處輸入圖片說明

2)我在文件夾<projectName>/<LanguageInitials>.lproj內創建了文件 InfoPlist.strings ;

3)我添加了文字:

NSPhotoLibraryUsageDescription = "<Add your translated text here>";

在那個InfoPlist.strings文件中。

4) 然后我使用File -> add new files to the project或拖放將該文件夾File -> add new files to the project

注意:為了測試這個,我:

清理緩存,將模擬器上的語言設置為新的,在模擬器上運行時將scheme中的語言編輯為新的並重新啟動模擬器。

在此處輸入圖片說明

暫無
暫無

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

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