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

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

——更新——

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


当前回答

对于更新的XCode 12 / 13 /…

1. 创建一个新的InfoPlist。项目中的字符串文件。

2. 选择您的文件,您应该会看到右边的边栏选项“本地化”

3.如果您想在项目的Info >>本地化中添加更多语言

它会自动创建一个“InfoPlist”的副本。字符串”为您添加的新语言。

其他回答

对于更新的XCode 12 / 13 /…

1. 创建一个新的InfoPlist。项目中的字符串文件。

2. 选择您的文件,您应该会看到右边的边栏选项“本地化”

3.如果您想在项目的Info >>本地化中添加更多语言

它会自动创建一个“InfoPlist”的副本。字符串”为您添加的新语言。

我强烈建议阅读苹果的指南,并查看以下列出的WWDC资源: 国际化与本土化主题

具体来说,当您向项目中添加一种新语言时,您有机会选择要包含哪些InfoPlist文件(如果您有多个目标,则会有多个Info plist文件)。你所需要做的就是点击本地化下的+,并选择一种新的语言来添加支持。

添加完成后,它将在适当的lproj目录中为给定语言创建必要的字符串文件。

——编辑

需要明确的是,iOS会根据用户当前选择的语言,将Plist条目的键作为本地化字符串文件中的键,为Plist文件替换字符串。

在我的例子中,所有的设置都是正确的,但仍然是InfoPlist。字符串文件未找到。

唯一真正起作用的是,删除并添加InfoPlist。将文件再次字符串到项目。

Tips

记住,iOS模拟器在默认情况下使用你的系统语言。请在iOS模拟器设置中更改语言(和地区),以便测试您的翻译。 本地化字符串(见苹果文档)应该是 NSLocationWhenInUseUsageDescription = "此描述"; 而不是(引用“…”) "NSLocationWhenInUseUsageDescription" = "此描述";

在我的情况下,本地化没有工作,原因是名称中的'-'符号。 例如:“aero-Info.plist” 和本地化文件:“aero-InfoPlist。字符串”和“aeroInfoPlist。字符串“没有工作。