我正在研究一个Scala Play 2.7项目,并且有一个用例来保存需要i18n的数据库数据。
我有两个设计选择:
en
作为密钥的一部分,并针对每种受支持的语言执行此操作。缺点是对于选择1,需要针对每种支持的新语言更新数据库;对于选择2的数据库查询,需要“修饰”以查找messages.x
答案 0 :(得分:1)
我会选择第三个选项,将翻译键与呈现消息所需的参数一起存储,这取决于您如何存储这些键,可以是数组或JSON。
每个消息仅更新数据库一次,添加新语言仅需要更新messages
文件,并且对于呈现消息,您只需要执行一个查询即可,无论如何,它只是检索更多数据。