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中自动显示,您必须手动将两者都添加到项目包中,这可以通过右键单击Xcode中的项目名称并选择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项目中更改了文件名和引用,它可以工作(或删除并使用正确的名称重新创建)。