以编程方式在iOS

时间:2018-03-14 08:52:53

标签: ios objective-c swift

我在iOS上遇到特定翻译问题。 我目前正在处理的应用程序获取它从Web服务显示的所有文本。我已经能够在任何地方实现这一点,只有一个例外:

我还没有找到一种方法来以编程方式改变来自info.plist的文本,这些文本在我无法控制的代码中从系统中使用。我需要处理的是“隐私 - 相机使用说明”。到目前为止,我发现的任何文档都告诉我为info.plist添加本地化文本版本 - 但在这种特殊情况下,这对我没有帮助,因为不同的客户可能会为同一种语言指定不同的文本,我有时甚至都不知道文本是什么语言,所以我不能仅仅依靠应用程序中的静态数据来选择正确的文本版本。

有没有办法以编程方式设置这样的文本,或者如果无法捕获显示它的警报并将其替换为我自己的文件?

2 个答案:

答案 0 :(得分:1)

不,这是不可能的,我们无法更改Info.plist运行时。但如果我代替你在那里,我会做一件事作为解决方案。 使用api中的指定文字显示自定义提醒视图。哪会问“我们会用你的相机”。如果用户说“Ok”,则显示系统的alertview以获取具有静态本地化字符串的权限。它需要2次交互,但它可以彻底引导用户。

答案 1 :(得分:0)

您可以本地化info.plist文件本身。 从项目中,转到您的info.plist文件并打开“工具”选项卡,然后点击“本地化”。 对于不同的本地化,请在指定的键上使用不同的字符串。

注意

我哈文自己尝试过,只是检查一下它是否可以本地化。还有一件事,使用这种方式,应用程序将使用设备的本地化(你不能使用库来调整你的应用程序使用的字符串表)