2017-06-21 4 views
1

Ich habe eine Liste von Physik-Parameter (wie Druck, Spannung und etc.) für alle Benutzer von allen Mandanten (Multi-Tenant-Anwendung). Jetzt brauche ich eine Möglichkeit, um verschiedenen Benutzern die passende Sprache anzuzeigen.Lokalisierung in DDD

Parameter ist ein Aggregat root:

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

Ich muss einen Weg des Namens und der Beschreibung zu lokalisieren. Mein erster Ansatz war dies:

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

aber ich fühle irgendwie, dass dies nicht korrekt ist.

Auch Administratoren möchten verschiedene Übersetzungen in der Benutzeroberfläche schreiben. Benutzer möchten jedoch nur ausgewählte Übersetzungen sehen (bei Bedarf umschaltbar).

Wie soll ich dieses Problem lösen? Sollte ich es vollständig aus der Domain entfernen? Kann meine Anwendungsebene über Methoden verfügen, um geeignete Übersetzungen zu schreiben (Administratoren zu erleichtern)? Sollte ich das aktuelle Gebietsschema aus dem Kontext auflösen oder sollte ich erwarten, dass es beim Treffen von Endpunkten an URI/DTO übergeben wird? Alle weiteren Informationen zur Lokalisierung in DDD sind willkommen.

Antwort

2

Lokalisierung sollte in einem anderen bounded context, wahrscheinlich mit einer CRUD-Architektur implementiert werden, da es keine Geschäftsregeln/Invarianten gibt, die geschützt werden müssen. Dann werden in dem mit Übersetzungsmethoden, die auf bounded context zugreifen, Namen des parameters dem Benutzer entsprechend ihrer Gebietsschema und/oder Verwaltungseinstellungen angezeigt.

Anders gesagt, scheint die Lokalisierung keine Rolle in Ihrer Kerndomäne zu spielen, sie beteiligen sich nicht am Schutz der Domäneninvarianten.