如何通过代码从应用程序更新 localizable.strings?

Posted

技术标签:

【中文标题】如何通过代码从应用程序更新 localizable.strings?【英文标题】:How to update localizable.strings from app by code? 【发布时间】:2010-12-14 15:51:00 【问题描述】:

我希望能够通过应用程序中的代码更新本地化字符串。我真正想做的是更改服务器上的本地化,然后让 iPhone 应用程序从服务器获取更新的本地化字符串,然后将它们保存到 localizable.strings 文件中。

【问题讨论】:

【参考方案1】:

你不能!这些文件是捆绑包的一部分,无法更新。您必须自己设置整个翻译框架(这不是很多工作)并使用核心数据或序列化字典(我想每种语言都有一个)实现缓存。

【讨论】:

【参考方案2】:

您将无法修改 app bundle 中的 Localizable.strings 文件,因为 app bundle 在 ios 设备上是只读的。要从应用程序库目录中的字符串文件中获取本地化字符串,您可以以编程方式在该位置创建一个包,将 Localizable.strings 文件放入其中,然后使用 NSLocalizedStringFromTableInBundle() 获取本地化字符串。 (我还没有尝试过,但它应该可以工作。)

【讨论】:

【参考方案3】:

有服务 (Get Localization) 允许您将这些 .strings 文件上传到服务器并通过 API 获取它们。然而,还没有 iPhone 的客户端,但它会很简单。你可以贡献一个,或者等待有官方可用。

【讨论】:

以上是关于如何通过代码从应用程序更新 localizable.strings?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Xcode 4 中更改 Localizable.strings 文件的文本编码?

如何使用存储在 CocoaTouch 框架中的 Localizable.strings?

应用程序扩展是不是应该有自己的 Localizable.strings?

将 localizable.strings 导入 XIB

一个 iOS 应用程序中的多个 Localizable.strings 文件

xcode 使用 Localizable.strings 而不是 InfoPlist.strings