【问题标题】:What's the preferred choice for data(base) i18n?数据(基础)i18n 的首选是什么?
【发布时间】:2019-07-12 08:34:19
【问题描述】:

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

我有两种设计选择:

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

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

【问题讨论】:

  • 你会假装在未来添加很多语言吗?如果是,则设计 2,否则设计 1

标签: scala playframework internationalization play-framework-2.7


【解决方案1】:

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

每条消息只更新一次数据库,添加新语言只需要更新messages 文件,并且为了呈现消息,您只需要执行一个您本来会执行的查询,它只检索一个更多数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-11
    • 2014-10-15
    相关资源
    最近更新 更多