数据(基础)i18n的首选是什么?

时间:2019-07-12 08:34:19

标签: scala playframework internationalization play-framework-2.7

我正在研究一个Scala Play 2.7项目,并且有一个用例来保存需要i18​​n的数据库数据。

我有两个设计选择:

  1. 使用以下语言将数据保存在数据库中: en作为密钥的一部分,并针对每种受支持的语言执行此操作。
  2. 保存映射到Play消息的数据库密钥,然后为每个密钥具有相应的受支持的翻译。

缺点是对于选择1,需要针对每种支持的新语言更新数据库;对于选择2的数据库查询,需要“修饰”以查找messages.x

中每个键的对应翻译

1 个答案:

答案 0 :(得分:1)

我会选择第三个选项,将翻译键与呈现消息所需的参数一起存储,这取决于您如何存储这些键,可以是数组或JSON。

每个消息仅更新数据库一次,添加新语言仅需要更新messages文件,并且对于呈现消息,您只需要执行一个查询即可,无论如何,它只是检索更多数据。