- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想发布我的应用程序,并在设置页面上提供内置常见问题解答。常见问题很简单:
1) 我们有一个表格 View ,其中列出了所有问题。每个细胞一个。
2) 当用户点击其中一个问题时,我们会滑到详细 View Controller ,该 Controller 以粗体显示问题,然后显示答案。非常简单。
困难的部分:向 TableView 和详细 View Controller 提供字符串的最佳方式是什么?
坏主意(从我的角度来看):
硬编码所有字符串并使用巨大的 if
或 switch
怪物。
依靠 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
也是如此:
plist
文件。[NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"faq"ofType:@"plist"]];
UITableView
中实现它。 (- (NSInteger)numberOf...
=> return [faq count];
).哦,我使用 plist
文件而不是 JSON 或 XML,因为 Apple 使用它,因为它真的很容易实现(NSArray - arrayWithContentsOfFile
是内置的)您可以在 Xcode 中非常轻松地维护它。
关于iphone - 如何在应用程序中提供多语言常见问题解答?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7043721/
至少在某些 ML 系列语言中,您可以定义可以执行模式匹配的记录,例如http://learnyouahaskell.com/making-our-own-types-and-typeclasses -
这可能是其他人已经看到的一个问题,但我正在尝试寻找一种专为(或支持)并发编程而设计的语言,该语言可以在 .net 平台上运行。 我一直在 erlang 中进行辅助开发,以了解该语言,并且喜欢建立一个稳
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be
我正在寻找一种进程间通信工具,可以在相同或不同系统上运行的语言和/或环境之间使用。例如,它应该允许在 Java、C# 和/或 C++ 组件之间发送信号,并且还应该支持某种排队机制。唯一明显与环境和语言
我有一些以不同语言返回的文本。现在,客户端返回的文本格式为(en-us,又名美国英语): Stuff here to keep. -- Delete Here -- all of this below
问题:我希望在 R 中找到类似 findInterval 的函数,它为输入提供一个标量和一个表示区间起点的向量,并返回标量落入的区间的索引。例如在 R 中: findInterval(x = 2.6,
我是安卓新手。我正在尝试进行简单的登录 Activity ,但当我单击“登录”按钮时出现运行时错误。我认为我没有正确获取数据。我已经检查过,SQLite 中有一个与该 PK 相对应的数据。 日志猫。
大家好,感谢您帮助我。 我用 C# 制作了这个计算器,但遇到了一个问题。 当我添加像 5+5+5 这样的东西时,它给了我正确的结果,但是当我想减去两个以上的数字并且还想除或乘以两个以上的数字时,我没有
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 4 年前。 Improve th
这就是我所拥有的 #include #include void print(int a[], int size); void sort (int a[], int size); v
你好,我正在寻找我哪里做错了? #include #include int main(int argc, char *argv[]) { int account_on_the_ban
嘿,当我开始向数组输入数据时,我的代码崩溃了。该程序应该将数字读入数组,然后将新数字插入数组中,最后按升序排列所有内容。我不确定它出了什么问题。有人有建议吗? 这是我的代码 #include #in
我已经盯着这个问题好几个星期了,但我一无所获!它不起作用,我知道那么多,但我不知道为什么或出了什么问题。我确实知道开发人员针对我突出显示的行吐出了“错误:预期表达式”,但这实际上只是冰山一角。如果有人
我正在编写一个点对点聊天程序。在此程序中,客户端和服务器功能写入一个唯一的文件中。首先我想问一下我程序中的机制是否正确? I fork() two processes, one for client
基本上我需要找到一种方法来发现段落是否以句点 (.) 结束。 此时我已经可以计算给定文本的段落数,但我没有想出任何东西来检查它是否在句点内结束。 任何帮助都会帮助我,谢谢 char ch; FI
我的函数 save_words 接收 Armazena 和大小。 Armazena 是一个包含段落的动态数组,size 是数组的大小。在这个函数中,我想将单词放入其他称为单词的动态数组中。当我运行它时
我有一个结构 struct Human { char *name; struct location *location; int
我正在尝试缩进以下代码的字符串输出,但由于某种原因,我的变量不断从文件中提取,并且具有不同长度的噪声或空间(我不确定)。 这是我的代码: #include #include int main (v
我想让用户选择一个选项。所以我声明了一个名为 Choice 的变量,我希望它输入一个只能是 'M' 的 char 、'C'、'O' 或 'P'。 这是我的代码: char Choice; printf
我正在寻找一种解决方案,将定义和变量的值连接到数组中。我已经尝试过像这样使用 memcpy 但它不起作用: #define ADDRESS {0x00, 0x00, 0x00, 0x00, 0x0
我是一名优秀的程序员,十分优秀!