无法本地化info.plist字符串

时间:2014-02-12 18:05:02

标签: ios cocoa-touch info.plist

我需要本地化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";

8 个答案:

答案 0 :(得分:8)

请检查生成的应用程序包,文件是否确实存储在那里并将其放在正确的位置。通常这是缺少的一步。

进入项目设置,打开"构建阶段"看看是否  该文件可以在"复制捆绑资源"

中找到

答案 1 :(得分:4)

您的plist文件可以为您的应用程序支持的每种语言提供多个版本。 在Utilities \ File Inspector(右侧)中,单击“Localize”:

enter image description here

然后选择您想拥有自己版本的语言:

enter image description here

之后,您将能够输入每个plist文件并根据需要进行编辑。

答案 2 :(得分:1)

有时您必须首先进行清洁,点击菜单 - >产品 - >干净。

Sometimes you have to make a Clean first

答案 3 :(得分:0)

事实上,我的问题是我拼错了NSLocationWhenInUseUsageDescription常量,所以当然没有考虑到它。

答案 4 :(得分:0)

自iOS 10起,您需要将隐私密钥添加到Info.plist。

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

当然,您仍然需要对这些密钥进行本地化(并且您无法本地化应用程序的Info.plist)。因此,您还要将这些隐私密钥添加到InfoPlist.strings中,而InfoPlist.strings又是本地化的。

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

答案 5 :(得分:0)

InfoPlist.strings不考虑方案的“应用程序区域”,而是设备中设置的区域!在您的设备上:Settings -> General -> Language & Region,检查您是否喜欢使用iPhone语言。< / p>

答案 6 :(得分:0)

就我而言,与另一个构建目标的其他 InfoPlist.strings 文件存在冲突。

答案 7 :(得分:-1)

该文件需要位于指示语言的目录内,例如en.lproj