ios - 使用 .strings 文件进行 NSLocationWhenInUseUsageDescription 本地化不起作用

标签 ios xcode localization info.plist

我已使用基本本地化完成将我的应用程序翻译为土耳其语。但是,我还需要翻译 Info.plist 文件中的 NSLocationWhenInUseUsageDescription 键。我所做的与我对其他所有事情所做的完全一样:

前往文件检查器并检查土耳其语:

enter image description here

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

enter image description here

"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 中,因此您必须手动将它们添加到项目 bundle 中,这可以通过在 Xcode 中右键单击项目名称并选择 Add files to X 选项,然后选择您刚刚创建的文件。

<小时/>

此外,如果您想测试结果并确保一切正常,仅在编辑方案>运行>选项中更改应用程序语言是不够的。

您需要通过设置 > 常规 > 语言和区域 > iPhone 语言更改模拟器设备语言

关于ios - 使用 .strings 文件进行 NSLocationWhenInUseUsageDescription 本地化不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48333242/

相关文章:

objective-c - 不旋转标签栏 View Controller 中的仅一个 View

ios - UIAutomation 不适用于 IPA 的分发类型

asp.net-mvc - MVC - 使用数据库中的错误消息验证属性

html - 在保加利亚语中使用蒙特塞拉特时西里尔字符显示错误

php - iOS 使用 Post 通过 php 将文件上传到 Web 服务器,如何获取状态?

ios - 通过 UUID 查找 HKObject

swift - xcode 版本 8.0 (8A218a) 的旧版 swift 使用什么版本的 swift?

iphone - 如何在 main.h 中设置 iPhone 应用程序语言和区域覆盖设置值

iphone - 如何获取tableView :(UITableView *)tableView heightForRowAtIndexPath function?中的cell对象

ios - 将 Swift 转换为 Objective-C