我有一个物理参数列表(如压力,电压等),可供所有租户(多租户应用程序)的所有用户访问。现在,我需要一种向不同用户显示适当语言的方法。
参数是聚合根:
class Parameter
{
public string Name { get; }
public string Description { get; }
}
我需要一种方法来本地化名称和描述。我的第一个方法是:
class Parameter
{
public IDictionary<Locale, NameAndDescription> Info { get; }
}
但我觉得这不正确。
此外,管理员还希望在UI中编写不同的翻译。但是用户只希望看到选定的翻译(如果需要可以切换)。
我该如何解决这个问题?我应该从域中完全删除它吗?我的应用层可以使用方法编写适当的翻译(方便管理员)吗?我应该从上下文中解析当前的语言环境,还是应该在命中端点时将其传递给URI / DTO?有关DDD本地化的任何其他信息将不胜感激。
答案 0 :(得分:3)
本地化应该在另一个bounded context
中,可能使用CRUD架构实现,因为没有需要保护的业务规则/不变量。然后,在UI
中,使用访问bounded context
的翻译方法,根据用户的区域设置和/或管理设置向用户显示parameters
的名称。
换句话说,本地化似乎在您的核心域中没有任何作用,他们不参与保护域不变量。