Iphone 如何在应用程序中提供多语言常见问题解答?
我想在“设置”页面上附带内置的常见问题解答。常见问题解答很简单: 1) 我们有一个表格视图,其中列出了所有问题。每个单元一个 2) 当用户点击其中一个问题时,我们将滑向详图视图控制器,该控制器以粗体字母显示问题,然后显示答案。很简单 难点:向表视图和细节视图控制器提供字符串的最佳方式是什么 坏主意(在我看来):Iphone 如何在应用程序中提供多语言常见问题解答?,iphone,ios,ipad,Iphone,Ios,Ipad,我想在“设置”页面上附带内置的常见问题解答。常见问题解答很简单: 1) 我们有一个表格视图,其中列出了所有问题。每个单元一个 2) 当用户点击其中一个问题时,我们将滑向详图视图控制器,该控制器以粗体字母显示问题,然后显示答案。很简单 难点:向表视图和细节视图控制器提供字符串的最佳方式是什么 坏主意(在我看来): 硬编码所有字符串并使用巨人if或switch怪物 依靠NSLocalizedString()获取答案的本地化版本。那些字符串文件看起来不像是用于非常大的字符串。每行只写几个句子或单词。
- 硬编码所有字符串并使用巨人
或if
怪物switch
- 依靠
获取答案的本地化版本。那些字符串文件看起来不像是用于非常大的字符串。每行只写几个句子或单词。有了成吨的FAQ文本,这些字符串文件将变得可怕NSLocalizedString()
- 创建一个JSON文件,其中实体有三个字段:ID、问题和答案。ID将帮助我们跟踪用户点击单元格后必须加载的答案
- 本地化JSON文件
- 加载表视图时,将其读入内存并进行解析,只需读出问题和ID(是的,不太理想,对吧?)
- 当用户点击一个单元格时,或者传递ID只是为了再次获取整个内容,或者更好:将ID、问题和答案字符串传递给details view控制器
使用已经存在的东西,或者使用不同的方法。建议?通常,您将本地化
LocalizedString
-文件,以便在运行NSLocalizedString
时可以对其进行翻译。您可能不知道的是,这基本上适用于所有类型的文件,因此plist
s:
plist
-文件[NSArray arrayWithContentsOfFile:[[NSBundle mainBundle]pathForResource:@“faq”类型:@“plist”]]请求它(从应用程序中)代码>
UITableView
中实现它。(-(NSInteger)numberOf…
=>返回[faq计数];
)哦,我使用了一个
plist
-文件,而不是JSON或XML,因为苹果使用它,因为它很容易实现(NSArray-arrayWithContentsOfFile
内置),而且你可以很容易地在Xcode中维护它。为什么是XML?使用。一旦开始使用JSON over XML,您就会意识到解析xmlGood point浪费了多少时间。谢谢你提到这一点。这是一种有趣的方式!谢谢所以在plist文件中,我们只有两列:答案和问题。是这样吗?或者我们是否有一个由plist中的行表示的“隐式ID”?我建议创建一个数组
根项,其中包含NSDictionary
-对象,具有两个键=>'question'和'answer'以及两个对应的值;)!