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

标签 ios xcode localization info.plist

我已使用 Base Localization 将我的应用程序翻译成土耳其语。但是,我还需要翻译 Info.plist 文件中的 NSLocationWhenInUseUsageDescription 键。我对其他所有事情都做了同样的事情:

转到文件检查器并检查土耳其语:

enter image description here

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

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


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

您需要通过设置 > 通用 > 语言和地区 > iPhone 语言 更改模拟器设备 语言

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

相关文章:

iOS:关于不复制 MVC 模型中的 View 层次结构

xcode - 为什么不能在swift中导入MediaPlayer?

ios - 为方便起见,不能使用#define

ios - 需要一个 UINavigationController 的解决方案,带有应用程序的后退按钮

ios - 由嵌入在 UITabBarController 中的 UINavigationController 呈现的 View 不会调整 View 大小以考虑 View 底部的 tabBar

ios - 如何对 NSURLConnection 委托(delegate)进行单元测试?

iphone - 翻译小应用程序: who and how much?

macos - 如何在 Mac 上从 .resx 生成 *.Designer.cs 文件?

ios - 在同一个 Xcode 项目中拥有 iOS 和 macOS 应用程序

c# - WPF MVVM 本地化 C#、运行时