【问题标题】:How to Localize NSPhotoLibraryUsageDescription key (ALAssets)如何本地化 NSPhotoLibraryUsageDescription 键(ALAssets)
【发布时间】:2013-03-30 16:17:11
【问题描述】:

我正在尝试本地化应用程序的 info.plist 文件 (reference here) 中定义的 NSPhotoLibraryUsageDescription 键。
当应用程序首次请求访问您的相机胶卷时,此键可让您提供自定义消息。 我正在使用 ALAssetsLibrary 枚举资产组(触发访问请求消息弹出)。

到目前为止,我的谷歌搜索并没有回答我如何实现这一目标。

我想避免对整个 info.plist 文件进行本地化,因为它包含更多不依赖于语言环境的内容。

任何人已经解决了这个问题或有提示如何继续?

【问题讨论】:

  • “到目前为止,我的谷歌搜索并没有回答我如何实现这一目标。”现在我的谷歌搜索把我带到了这里,谢谢你问这个!

标签: iphone xcode ios6 alassetslibrary


【解决方案1】:

为我完成这项工作的唯一方法是在 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 或拖放将该文件夹添加到项目中。

注意:为了测试这个我:

清理缓存,将模拟器上的语言设置为新的,将scheme中的语言编辑为模拟器上运行时的新语言并重新启动模拟器。

【讨论】:

    【解决方案2】:

    您可以创建一个名为InfoPlist.strings 的文件(可能会在您创建项目时为您创建)。这个文件的使用和本地化很像文件Localizable.strings

    在其中您将拥有并输入如下内容:

    NSPhotoLibraryUsageDescription = "Test of new Photos warnings";
    

    请注意,键周围没有引号

    我认为只要密钥包含在info.plist 中,如果该语言可用,它将使用InfoPlist.string 中的值进行本地化。否则它将使用 info.plist 中定义的任何内容。

    【讨论】:

    • 谢谢乔! :) 完美的工作。一旦我得到关键字“InfoPlist”,我在 Apple 文档中找到了this。希望这对其他人也有帮助!注册。
    • FWIW 在我将 NSPhotoLibraryUsageDescription 也用双引号括起来之前,它对我不起作用。
    • 如果本地化,plist 文件中的键值应该包含什么?
    • @lulian,本地化键的值包含文本字符串,翻译成您本地化的任何语言。
    • 要明确:上面的行 "NSPhotoLibraryUsageDescription" = "...";需要在主“Info.plist”文件以及本地化的“InfoPlist.string”文件中。
    【解决方案3】:

    我有我的笔记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";

    【讨论】:

    • 我并不完全清楚You declare the keys in Info.plist 的含义。这是否意味着,只需将<key>NSCameraUsageDescription</key> 部分放在没有下面的<string>This app requires access to the camera</string> 部分?
    • 看起来 declare 意味着在两个地方冗余地给出键和值。至少对于您的“主要”语言而言。
    猜你喜欢
    • 2017-05-27
    • 1970-01-01
    • 2017-02-26
    • 2021-03-16
    • 2018-06-16
    • 2011-06-14
    • 1970-01-01
    • 1970-01-01
    • 2011-07-22
    相关资源
    最近更新 更多