Allgemein

Internationalisierte Attribute wirken sich auf all diejenigen Stellen in Nuclos aus, an denen eine Kommunikation mit der Aussenwelt stattfindet, konkret sind dies Formulare, Reports und Schnittstellen. Schnittstellen bedürfen in der Regel einer gesonderten Implementierung, bei der internationalisierte Attribute fallbezogen zu berücksichtigen sind, und werden im folgenden nicht weiter betrachtet.

Der typische Anwendungsfall für die Mehrsprachigkeit von Dateninhalten ist die Kommunikation mit Kunden im Ausland, z.B. die Generierung von Auftragsbestätigungen oder Rechnungen, die eben entsprechend in der jeweiligen Kundensprache auszugeben sind. Dazu sind folgende Aspekte zu betrachten:

  1. Datums- und Zahlformatierung im Formular oder Report

  2. Datenquellen, die dem Formular oder Report die Inhalte (Abfrageergebnisse) lieferen

  3. Attribute, die die Sprachwahl der Datenquelle, des Formulars und des Reports steuern

Ermittlung der Ausgabesprache

Zur Ermittlung der heranzuziehenden Datensprache für einen bestimmten Datensatz wurde die Möglichkeit geschaffen, je Entität einen Suchpfad, der den Weg zur Ermittlung der Ausgabesprache aufzeigt, zu hinterlegen. Ist kein Suchpfad hinterlegt, liefert der Mechanismus zur Ermittlung der Ausgabesprache immer die Primärsprache zurück.

Ein Beispiel für einen Suchpfad einer Entität „Auftrag“ könnte für eine in der Entität „Kunde“ hinterlegten Kundensprache z.B. sein: >kunde>kundensprache. Aufgrund der Notwendigkeit der Eindeutigkeit der Ermittlung kann der Suchpfad entlang von Referenzfeldern naturgemäss nur nach „oben“ in der Hierarchie, d.h. von N zu 1 in 1:N-Relationen, zeigen. Desweiteren muss der letzte Schritt des Suchpfades (z.B. kundensprache) immer ein Referenzfeld auf die Systementität für die Datensprache sein.

Die Ermittlung der Datensprache für Formulare und Reports im Überblick:

  • Druck eines Formulars durch User:      anhand Suchpfad für zu druckendes Objekt

  • Druck eines Formulars durch Regel:    anhand Suchpfad für zu druckendes Objekt

  • Druck eines Reports durch User:         (Oberflächen)Sprache des angemeldeten Users

  • Druck eines Reports durch Regel:       Sprache im PrintoutProvider explizit mitgeben

Diese Steuerung kann grundsätzlich übersteuert werden durch eine explizite Festlegung einer Sprache im Ausgabeformat des Druckprofils oder durch explizite Übergabe einer Sprache im PrintoutProvider.

Der Suchpfad wird durch Nuclos auch herangezogen, um die Datensprache an Datenbankfunkitonen für berechnete Attribute (CA_*) durchzureichen. Dazu wird die Signatur von Datenbankfunktionen für berechnete Attribute um die Datensprache ergänzt, die bisherige Signatur wird aus Gründen der Abwärtskompatibilität weiterhin unterstützt. Auch in Fällen, in denen die Datensprache im berechneten Attribut nicht benötigt wird (weil z.B. nur Zahlen berechnet werden), kann die bisherige Signatur weiter genutzt werden.

Datenquellen

In Datenquellen steht der Parameter $locale zur Verfügung. Dieser liefert die bei der Anmeldung ausgewählte Datensprache. Wurden keine Datensprachen konfiguriert, wird der Parameter in Report/Formular-Datenquellen durch die dort konfigurierte Sprache ersetzt.
Ab Nuclos 4.35.0: Ansonsten wird der Parameter durch die vom Nutzer bei der Anmeldung ausgewählte Sprache ersetzt. Sollte diese in der aktuellen Session nicht zur Verfügung stehen, wird der Parameter durch null ersetzt. Im Fall der Datensprache liefert der Parameter das vollständige Locale, bspw de_DE. Aktuell wird für die Systemsprache nur die Sprache zurückgegeben, bspw de. In zukünftigen Nuclos-Versionen sollten immer vollständige Locales verwendet werden.
Vorher: Ansonsten wird der Parameter nicht ersetzt.

  • Keine Stichwörter