Bei der Modellierung gibt es unterschiedliche Sprachen welche definiert werden können:
UI-Sprachen: Liste der Sprachen welche im UI unterstützt wird. Das betrifft als also Überschriften (Captions), Beschreibungen, Hinweise, Instruktionen und dergleichen.
Daten-Sprachen: Liste der Sprachen die bei Multi-Language Feldern (Multi-Language Properties) in der Datenbank unterstützt wird.
Normalerweise werden diese Sprachen im Code im Modell fix definiert. Dies ist aber in Projekten, wo je nach Installation unterschieden werden soll, welche Sprachen aktiv und als zwingend markiert werden sollen nicht genügend.
Definition über Konfiguration
Die UI-Sprachen und Daten-Sprachen können anstatt per Code auch über die Einstellungen extern konfiguriert werden. In diesem Fall sind beide Sprachlisten identisch.
Der Schlüssel für diesen Konfigurations-Eintrag ist Model:Cultures
. Dies kann entweder über das appsettings.json definiert werden oder direkt über die Environment Variablen Variable Model__Cultures
(z.B. auf Azure).
Die Syntax ist dabei wie folgtDa diese Einstellung beim Beginn des Modell-Aufbaus schon vorhanden sein muss, werden nur Konfigurationsmechanismen berücksichtigt, welche ohne Datenbankzugriff und Applikations-Modell auskommen.
Ein Beispiel für die Einstellung ist: “DE*, IT, FR
". Das heisst:
Eine Sprache welche als Suffix einen
*
hat ist , wird als required betrachtet. Alle anderen Sprachen sind optional. Wird eine Multi-Language-Property mit "IsNotNullable()
" gekennzeichnet so ist in diesem Beispiel nur die deutsche Sprache zwingend.Die erste angegebene Sprache ist die Fallback-Sprache welche deren Wert verwendet wird, wenn ein Feld einer anderen Sprache nicht ausgefüllt ist. Ansonsten definiert die Reihenfolge in der Definition die Reihenfolge in der Darstellung.
Wird bei einer Sprache keine “Region” angegeben so wird standardmässig “
CH
" verwendet.Es ist möglich im Code n Sprachen in der Konfiguration aber eine davon abweichende Anzahl von m Sprachen zu definieren. Dabei kann m sowohl grösser als auch kleiner als n sein.