我正在尝试本地化应用程序的 info.plist 文件中定义的NSPhotoLibraryUsageDescription键(在此处参考)。
当应用程序首次要求访问您的相机胶卷时,此键可让您提供自定义消息。我正在使用 ALAssetsLibrary 枚举资产组(这会触发访问请求消息弹出)。
到目前为止,我的谷歌搜索并没有回答我如何实现这一目标。
我想避免本地化整个 info.plist 文件,因为它包含更多非语言环境相关的内容。
任何人已经解决了这个问题或有提示如何继续?
我正在尝试本地化应用程序的 info.plist 文件中定义的NSPhotoLibraryUsageDescription键(在此处参考)。
当应用程序首次要求访问您的相机胶卷时,此键可让您提供自定义消息。我正在使用 ALAssetsLibrary 枚举资产组(这会触发访问请求消息弹出)。
到目前为止,我的谷歌搜索并没有回答我如何实现这一目标。
我想避免本地化整个 info.plist 文件,因为它包含更多非语言环境相关的内容。
任何人已经解决了这个问题或有提示如何继续?
您可以创建一个名为InfoPlist.strings
. 该文件的使用和本地化与该文件非常相似Localizable.strings
。
在其中,您将拥有并输入以下内容:
NSPhotoLibraryUsageDescription = "Test of new Photos warnings";
请注意,键周围没有引号
我认为只要键包含在 中,如果它可用于该语言info.plist
,它将使用值进行本地化。InfoPlist.string
否则它将使用 info.plist 中定义的任何内容。
我在这里有我的笔记https://github.com/onmyway133/notes/issues/290,否则你会得到
缺少 Info.plist 键 - 此应用程序尝试在没有使用说明的情况下访问隐私敏感数据。应用的 Info.plist 必须包含一个 NSPhotoLibraryUsageDescription 键和一个字符串值,向用户解释应用如何使用这些数据。更正这些问题后,您可以重新交付更正后的二进制文件。
确保
"NSPhotoLibraryUsageDescription" = "Test of new Photos warnings";
,你可以使用NSPhotoLibraryUsageDescription = "Test of new Photos warnings";
使这项工作对我有用的唯一方法是在 Xcode 中:
1) 前往Project target -> Info-> Localization-> Add localization
在那里添加了语言。此操作创建了<projectName>/<LanguageInitials>.lproj
文件夹。
2)我在文件夹中创建了文件 InfoPlist.strings <projectName>/<LanguageInitials>.lproj
;
3)我添加了文字:
NSPhotoLibraryUsageDescription = "<Add your translated text here>";
在那个InfoPlist.strings
文件里面。
4)然后我将该文件夹添加到项目中File -> add new files to the project
或拖放。
注意:为了测试这个我:
清理缓存,将模拟器上的语言设置为新语言,将方案中的语言编辑为在模拟器上运行的新语言并重新启动模拟器。