0

我正在开发一个 Scala Play 2.7 项目,并且有一个用例用于保存需要 i18n 的数据库数据。

我有两种设计选择:

  1. 使用语言将数据保存在数据库中,例如en作为密钥的一部分,并且对每种支持的语言都这样做。
  2. 将映射到播放消息的数据库键保存在数据库中,然后为每个键提供相应的支持翻译。

缺点是例如选择#1,需要为每种支持的新语言更新数据库;对于选择 #2 对数据库的查询需要“修饰”查找每个键的相应翻译messages.x

4

1 回答 1

1

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

数据库每条消息只更新一次,添加新语言只需要更新messages文件,并且为了呈现消息,您只需要执行一个查询,无论如何您都会这样做,它只是检索更多数据。

于 2019-07-13T14:59:07.543 回答