NSLocationWhenInUseUsageDescription使用.strings文件无法正常工作

我已经使用Base Localization将我的应用程序翻译成土耳其语。 但是,我还需要在Info.plist文件中翻译NSLocationWhenInUseUsageDescription键。 我完成了我为其他一切做的事情:

去文件检查员并检查土耳其语:

在此处输入图像描述

然后我转到新的字符串资源并通过将此密钥添加到本地化文件来完成我的翻译:

在此处输入图像描述

"NSLocationWhenInUseUsageDescription" = "[my Turkish description of location permissions]";

从设备保存,编译甚至删除应用程序并重建,但无济于事。 当我的应用程序要求位置权限时,下面的解释仍然是英文版本(我已经尝试将英文翻译包括在Base翻译文件下,但它没有改变任何内容)。

其他一切都是土耳其语,翻译得很好。 这只是不翻译的位置许可。 我还看过如何在iOS info.plist文件中本地化一个字符串? 并添加了"Localized resources can be mixed" = YES键(当然,作为CFBundleAllowMixedLocalizations ,而不是字面上的那句话)到我的原始plist但是也没有改变任何东西。

我该如何解决这个问题?

以下是Xcode 7.1最终为我工作的内容。

首先,转到项目目录并手动创建两个InfoPlist.strings文件,第一个位于en.lproj文件夹中,第二个位于fr.lproj文件夹中。

这两个文件都应包含以下内容:

 NSLocationWhenInUseUsageDescription = "YOUR TEXT HERE"; 

由于文件不会在Xcode中自动显示,您必须手动将两者都添加到项目包中,这可以通过右键单击Xco​​de中的项目名称并选择Add files to X选项,然后选择文件来实现。刚刚创建。


此外,如果您想测试结果并确保工作正常,则在Edit Scheme > Run > Options更改Application Language是不够的。

您需要通过Settings > General > Language & Region > iPhone Language更改模拟器设备 Settings > General > Language & Region > iPhone Language

我已经开始了。 删除了翻译,清理了项目,然后再次尝试。 有效。 我不知道为什么它最初没有。

我的问题似乎区分大小写:

我的InfoPlist.strings在finder和Xcode(infoPlist)中有一个较低的“i”,但需要更高。

我在源Xcode项目中更改了文件名和引用,它可以工作(或删除并使用正确的名称重新创建)。