你可能知道iOS 8需要NSLocationWhenInUseUsageDescription键来使用用户的位置。我已经添加了这个键和一些一般信息到我的信息plist。

如何在plist文件中使用翻译字符串?

——更新——

我已经有一个Localizable字符串。我只是想知道我能不能用一些 NSLocalizedString(MYSTRING,nil)在plist字符串内。我知道我可以创建多个文件的信息。plist的本地化,但我想知道是否有一个更简单的方法。


当前回答

使用InfoPlist时。字符串文件(在XCode中,它应该放在信息旁边。Plist文件-真实的文件位置可能在项目中的任何地方

)小心使用键的短名称进行翻译。

我试图使用隐私-相机使用描述,但工作密钥是NSCameraUsageDescription

其他回答

使用InfoPlist时。字符串文件(在XCode中,它应该放在信息旁边。Plist文件-真实的文件位置可能在项目中的任何地方

)小心使用键的短名称进行翻译。

我试图使用隐私-相机使用描述,但工作密钥是NSCameraUsageDescription

以上所有的都不适合我(XCode 7.3),所以我阅读了苹果的参考资料,它比上面描述的要简单得多。苹果公司表示:

本地化值不存储在信息中。Plist文件本身。 方法中存储特定本地化的值 InfoPlist.strings文件。你把这个文件放进去 与用于存储的特定于语言的项目目录相同 相同本地化的其他资源。

因此,我创建了一个名为InfoPlist的字符串文件。字符串,并将其放在xx中。xx语言的lproj文件夹(并使用File->Add Files to…将其添加到项目中)。就是这样。不需要“本地化资源可以混合”键= YES,也不需要InfoPlist。基音字符串。Lproj或en.lproj。

应用程序使用Info。如果在特定语言的文件中找不到键,则Plist key-value作为默认值。因此,我把我的英语价值放在信息。Plist文件和翻译的语言特定文件,测试和一切工作。

特别是,不需要对InfoPlist进行本地化。字符串(它在基类中创建文件的一个版本。lproj, en。Lroj和xx.lproj),在我的情况下,这样做是行不通的。

正如RGML所说,您可以创建一个InfoPlist。字符串,本地化它,然后添加你的键和值,像这样: "NSLocationWhenInUseUsageDescription" = "Help To locate me!";

它将添加到您的信息的关键。Plist指定的语言。

对于任何遇到信息问题的人。当尝试添加本地化时,plist不被包括,比如在Xcode 9中。

你需要制作信息。Plist localiazble通过进入它并单击文件检查器中的本地化按钮,如下所示。

info。当你添加新的本地化时,plist将被包含在文件资源中。

你应该使用InfoPlist。字符串文件(保留I和P大写)来本地化Info.plist的值。进入“File->New->File”,在iOS的“Resource”页签下选择“Strings File”,命名为InfoPlist,进行创建。打开并插入信息。你想本地化的Plist值:

NSLocationWhenInUseUsageDescription = "Description of this";

现在可以本地化InfoPlist了。带有翻译的字符串文件。

选择本地化选项,或根据需要启用本地化,

您应该能够在左侧编辑器中看到该文件。

注意:在模拟器上测试本地化时。你需要改变模拟器本身的语言而不仅仅是Xcode目标中的语言。(约翰·韦伯致谢)

这是信息的官方文档。Plist键本地化。

感谢马可,感谢你在这个回答中包含的照片!