我已使用 Base Localization 将我的应用程序翻译成土耳其语。但是,我还需要翻译 Info.plist 文件中的 NSLocationWhenInUseUsageDescription
键。我对其他所有事情都做了同样的事情:
转到文件检查器并检查土耳其语:
然后我转到新的字符串资源并通过将此键添加到本地化文件来完成我的翻译:
"NSLocationWhenInUseUsageDescription"= "[位置权限的土耳其语描述]";
保存、编译,甚至从设备中删除应用程序并重建,但无济于事。当我的应用程序请求位置权限时,下面的解释仍然是英文的(我已经尝试在基本翻译文件下包括英文翻译,但它没有改变任何东西)。
其他一切都是土耳其语,翻译得很好。这只是不翻译的位置权限。我也看过 How to localise a string inside the iOS info.plist file?并将 "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
是不够的。
您需要通过设置 > 通用 > 语言和地区 > iPhone 语言
更改模拟器 或设备 语言
关于ios - 使用 .strings 文件的 NSLocationWhenInUseUsageDescription 本地化不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30454382/