Asp.net 关于调查问卷中多语言内容系统设计方法的思考
ASP.Net中的多语言内容应用程序通常可以通过使用资源文件来克服。然而,当涉及到需要多语言的动态内容时。理想的系统设计是什么 例如,像使用调查问卷应用程序一样,每个问题文本和答案选项都需要翻译 使用资源密钥存储特定语言文本/内容是否好?通过使用问题文本或文本的主要英文版本作为关键是一个好主意Asp.net 关于调查问卷中多语言内容系统设计方法的思考,asp.net,content-management-system,multilingual,Asp.net,Content Management System,Multilingual,ASP.Net中的多语言内容应用程序通常可以通过使用资源文件来克服。然而,当涉及到需要多语言的动态内容时。理想的系统设计是什么 例如,像使用调查问卷应用程序一样,每个问题文本和答案选项都需要翻译 使用资源密钥存储特定语言文本/内容是否好?通过使用问题文本或文本的主要英文版本作为关键是一个好主意 因为每当我的系统以编程方式在页面上创建问题时,我都试图减少数据库调用。资源文件应该只包含键/引用,不应该在其中放入任何特定于语言的内容 您的所有特定翻译都应驻留在数据库中。 因此,每当您的系统动态创建问题
因为每当我的系统以编程方式在页面上创建问题时,我都试图减少数据库调用。资源文件应该只包含键/引用,不应该在其中放入任何特定于语言的内容 您的所有特定翻译都应驻留在数据库中。
因此,每当您的系统动态创建问题时,将有一个且只有一个DB调用…使用区域设置标识符,并将加载问题的适当语言版本。这在很大程度上取决于您的调查系统设计,您有几个选项 例如,如果您将每个单独的调查存储在一个xml文件中,并且所有的问题/答案都在该文件中编码,那么您可能不需要为每种语言生成一个新的xml文件。附加文件将仅包含翻译的问题/答案 因此,您可能需要调查IsASPAwesome.xml,并生成IsASPAweseome.enUS.xml、IsASPAwesome.frFR.xml等等。如果要使用单个文件,另一个选项是为所需的每种语言提供多个文本值,然后为该语言选择适当的文本值。类似这样的东西(请原谅糟糕的xml和更糟糕的法语)
这有多棒?
你觉得这是什么?
伟大的
不太好
太棒了!
梅德!
如果您将其存储在DB中,您应该能够处理相同数量的DB调用,因为您只需在select查询中添加一个附加条件(即select answerText,QUOTESTIONS ANSWERS中的值,其中QUOTESTID=2和lang=“frFR”)
对每种语言使用单独的调查可能会使处理结果更加困难,但它确实使编码多语言支持更容易一些。此外,它还使缓存更容易(如果您想限制DB调用,这是一个好主意,因为调查不会经常更改)
我在以前的一个项目中采用了“多XML文件”的方法,这已经足够了,而且还允许翻译人员同时工作,在一个案例中,出于文化原因,建议对问题进行更合适的排序
希望这有帮助 不过xml解决方案看起来不错——目前我正在为这个多语言问题实现DB端。我不能在数据库中有动态列,因为我的客户将添加新的语言,我不想在项目启动后改变结构。
<survey>
<question id=1>
<questionText lang="enUS">how great is this?</questionText>
<questionText lang="frFR">Comment est ce grand?</questionText>
<answer value="GOOD" lang="enUS" sortOrder="1">Great!</answer>
<answer value="BAD" lang="enUS" sortOrder="2">Not so great</answer>
<answer value="GOOD" lang="frFR" sortOrder="1">Grand!</answer>
<answer value="BAD" lang="frFR" sortOrder="2">Merde!</answer>
</question>
</survey>