在我的Django应用程序中,用户通过一系列Web表单进行交互,并生成日志。例如,日志可能如下所示:
问题是该日志也应该以其他语言显示。如果添加了新语言,以前的日志消息也必须自动以新语言显示。
正如您所看到的,有多种类型的消息(没有参数的事件,具有参数的事件,攻击事件,建筑事件等)
存储这些数据的最佳数据结构是什么,以便基于简单模板可以轻松翻译?
我最初的想法是为每个事件建立一个单独的模型。例如,类AttackEvent(models.Model)具有字段攻击者,法术,结果。但是这些必须回顾一些战斗,以便查询所有这些并且对它们进行排序也很容易。他们是否可以使用具有相同related_name的ForeignKey参考该战斗?可能不是。
另一种选择是拥有一个庞大的GenericLogEvent类,它具有疯狂的参数数量,其中大部分为空白= True,null = True。然后我们根据eventType进行切换。
这里最好的方法是什么?
答案 0 :(得分:3)
我会在你的日志消息模型中存储消息和参数(看看django-picklefield),并使用内置translation stuff的Django将消息翻译成其他语言。