DDD中的本地化

时间:2017-06-21 12:02:22

标签: localization domain-driven-design

我有一个物理参数列表(如压力,电压等),可供所有租户(多租户应用程序)的所有用户访问。现在,我需要一种向不同用户显示适当语言的方法。

参数是聚合根:

class Parameter
{
    public string Name { get; }
    public string Description { get; }
}

我需要一种方法来本地化名称和描述。我的第一个方法是:

class Parameter
{
    public IDictionary<Locale, NameAndDescription> Info { get; }
}

但我觉得这不正确。

此外,管理员还希望在UI中编写不同的翻译。但是用户只希望看到选定的翻译(如果需要可以切换)。

我该如何解决这个问题?我应该从域中完全删除它吗?我的应用层可以使用方法编写适当的翻译(方便管理员)吗?我应该从上下文中解析当前的语言环境,还是应该在命中端点时将其传递给URI / DTO?有关DDD本地化的任何其他信息将不胜感激。

1 个答案:

答案 0 :(得分:3)

本地化应该在另一个bounded context中,可能使用CRUD架构实现,因为没有需要保护的业务规则/不变量。然后,在UI中,使用访问bounded context的翻译方法,根据用户的区域设置和/或管理设置向用户显示parameters的名称。

换句话说,本地化似乎在您的核心域中没有任何作用,他们不参与保护域不变量。