我想用 play! 编写一个多语言应用程序。我以前从未这样做过,所以我首先寻求一些如何正确执行此操作的建议。
任务: 假设我有一个带有问题和答案的简单应用程序。把它想象成一项调查。用户根据语言选择问题并以正确的语言显示答案。 为了更好地理解模型将如下所示:
问题:id,问题字符串
答案:id、fk_questionId、answerString、isRightBool
如您所见,通常是 1:n 关系。但现在如何实现多语言支持呢?
- 一个想法是复制整个数据库...这个想法看起来很简单但丑陋,因为以后的更改会产生额外的开销...我想这将是一场噩梦。
- 其他字段,例如 QuestionStringGerman、questionStringEnglish。也不喜欢这个主意...
- 每个模型类的附加表,具有 1:n 关系。就像question_lang和answer_lang一样。列是语言。看起来更容易处理。
- 一张表可容纳所有翻译。列是语言。似乎最容易纠正,但很难处理。
哪种方法最适合动态翻译。也许我错过了什么。如果有人能告诉我解决这个问题的正确方法是什么,我会很高兴。
提前致谢!
最佳答案
我实际上已经做过一次了。
我的解决方案是使用三个表:
table1: QuestionId(qid,其他字段) 表2:问题(qqid、fk_qid、问题、语言集、其他字段) 表3:答案(id,fk_qqid,答案,其他字段)
这样,您就可以拥有任意多种语言。每个语言问题将被视为一个独立的记录。要获取同一问题的所有翻译,questionId 的 qid 将帮助您获取该集合。
关于java - 数据库模型国际化玩法框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9424117/