IOS 8 NSLocationAlwaysUsageDescription的自定义翻译为:永久定位使用说明。

6

我了解到,我可以使用标准的iOS本地化机制来获得本地化的NSLocationAlwaysUsageDescription文本。 由于我们正在使用自定义动态本地化机制,我想知道是否有另一种方法来翻译该字符串。 我考虑在应用程序启动时编辑应用程序info.plist文件,但它似乎是只读的。

我能否从应用程序内部更改此值?


尝试将info.plist文件复制到不同的“.lprj”文件夹中...并相应更改消息。 - TonyMkenu
3个回答

13

有一种方法。添加一个名为“InfoPlist”的新字符串文件。然后在属性检查器中使用本地化按钮进行本地化,并向InfoPlist的键添加本地化。要本地化CLLocation权限的描述,在每个版本中添加适当的键和本地化值。

//English file
"NSLocationAlwaysUsageDescription" = "English description";

_

//Polish file
"NSLocationAlwaysUsageDescription" = "Polski opis";

1
这正是我不想做的 - 我不想使用标准的本地化机制。 - Misha
这是正确的,但只是一个重复,Kyle Howells已经提供了正确的答案。 - albertodebortoli
@Misha 如果你不想使用标准的方法,可以在构建时覆盖 info.plist 的内容,但这需要为每个国家/语言设置多个目标,我真的希望你没有这样做。 - albertodebortoli

11

使用info.plist字符串无法使用自定义本地化系统。

您的应用程序必须使用iOS默认的本地化机制。

以下是如何使用iOS内置的字符串文件本地化系统来本地化位置请求描述的方法。

// English.strings file
"NSLocationAlwaysUsageDescription" = "English description";

// AnotherLanguage.strings
"NSLocationAlwaysUsageDescription" = "ajbdknfuied wibnrf";

编辑: 对于所有给我点踩的人。这个问题是关于使用自定义的"本地化系统"。他们明确表示不想使用内置的本地化系统,而是使用他们自己定制的。这就是为什么我说这是不可能的。

本地化NSLocationAlwaysUsageDescription是完全可以做到的。但如果要使用你自己的本地化系统去实现它就不行。


实际上有的。请查看我的答案。 - Kubba
有时候,查看官方文档会更容易。请参考“本地化属性列表值”一节:https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/AboutInformationPropertyListFiles.html - albertodebortoli

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接