gpt4 book ai didi

iphone - 如何在应用程序中提供多语言常见问题解答?

转载 作者:行者123 更新时间:2023-11-29 11:21:12 24 4
gpt4 key购买 nike

我想发布我的应用程序,并在设置页面上提供内置常见问题解答。常见问题很简单:

1) 我们有一个表格 View ,其中列出了所有问题。每个细胞一个。

2) 当用户点击其中一个问题时,我们会滑到详细 View Controller ,该 Controller 以粗体显示问题,然后显示答案。非常简单。

困难的部分:向 TableView 和详细 View Controller 提供字符串的最佳方式是什么?

坏主意(从我的角度来看):

  • 硬编码所有字符串并使用巨大的 ifswitch 怪物。

  • 依靠 NSLocalizedString() 获取答案的本地化版本。这些字符串文件看起来不像是为非常大的字符串而设计的。每行只需几个句子或单词。如果有大量的 FAQ 文本,这些字符串文件会变得很可怕。

这就是我尝试这样做的方式,但您可能会建议更好的方法:

解决方案 1)

  • 创建一个 JSON 文件,其中的实体具有三个字段:ID、问题和答案。 ID 将帮助我们追踪在用户点击单元格后我们必须加载哪个答案。

  • 本地化该 JSON 文件。

  • 加载 TableView 时,将其读入内存并解析它,只是为了读出问题和 ID(是的,不太理想,对吧?)

  • 当用户点击一个单元格时,要么传递 ID 以再次重新获取整个内容,要么更好:将 ID、问题和答案字符串传递给详细信息 View Controller 。

解决方案 2)

与 1 类似,但改用 Core Data。可能在内存和性能方面更好,但可能更难维护(必须弄乱 SQLite3 文件来构建 FAQ,至少需要一个好的 IDE 来做到这一点才不会发疯)。警告:不能轻易将其传递给翻译人员。大量的手动工作只是为了创建那个 SQLite3 文件。在本地化文件夹中本地化的文件。

解决方案 4)

两个拆分的 JSON 文件:一个包含所有 ID 和问题。另一个包含所有 ID 和答案。在本地化文件夹中本地化的文件。

解决方案 5)

包含所有 ID 和问题的 JSON 文件。对于每个 ID,都有一个匹配的答案文本文件。因此,我们最终不会将大量数据加载到内存中,只是为了提取其中的一小部分。

解决方案 6)

使用已经存在的东西,或者不同的方法。有什么建议吗?

最佳答案

通常,您会本地化一个 localizedStrings 文件,以便在您运行 NSLocalizedString 时可以翻译它们。您可能不知道的是,这基本上适用于所有类型的文件,因此 plist 也是如此:

  1. 创建本地化的常见问题解答 plist 文件。
  2. 使用 [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"faq"ofType:@"plist"]];
  3. (从应用程序中)请求它
  4. 在您的 UITableView 中实现它。 (- (NSInteger)numberOf... => return [faq count];).

哦,我使用 plist 文件而不是 JSON 或 XML,因为 Apple 使用它,因为它真的很容易实现(NSArray - arrayWithContentsOfFile 是内置的)您可以在 Xcode 中非常轻松地维护它。

关于iphone - 如何在应用程序中提供多语言常见问题解答?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7043721/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com