Sprachsteuerung in DaVinci
Sprachsteuerung
Inhalt
- 1 Sprachsteuerung
- 2 Inhalt
- 3 Einleitung
- 4 Wo definiert man Sprachen?
- 5 Wo kann man Sprachen hinterlegen?
- 6 Welche Sprache wird gezogen?
- 7 Abhängigkeit der Sprachen und Multisprachfelder von der Vorgangssprache
- 8 Übersteuerung der Sprache über Genesis
- 9 Technische Funktionsweise der Spracheinstellungen
- 10 Textmodule
Einleitung
Die Sprachen in DaVinci werden für den multilingualen Reportdruck genutzt. So können Texte auf verschiedenen Sprachen hinterlegt werden und später den zu druckenden Dokumenten in der gewünschten Sprache zugewiesen werden.
Wo definiert man Sprachen?
Sprachen definiert man über Basisdaten/Reisen -> Sprache -> Sprachen
Sprache: Kürzel der Sprache
Unicode:
Code CRS:
Name: Name des Landes
Ressource:
Standard: Standardsprache in DaVinci
Wo kann man Sprachen hinterlegen?
In DaVinci werden die Sprachen in den Stammdaten des Kunden oder der Agentur hinterlegt.
Beispiel Kunde
Beispiel Agentur
Welche Sprache wird gezogen?
Für die Entscheidung, welche Sprache beim Druck der Dokumente gezogen wird, kann man eine sogenannte Sprachpriorität erstellen.
Dies macht man über Systemeinstellung -> Kunden -> Kunden Anwendungsgrundlagen -> Allgemein -> Sprachpriorität
Zudem kann man über die Aktivierung des Flags „Agentursprache nutzten“ über -> Basisdaten/Reisen -> Sprache -> Spracheinstellungen festlegen, dass in jedem Fall die Sprache, die in der Agentur hinterlegt ist, gezogen werden soll (übersteuert die Sprachpriorität)
Abhängigkeit der Sprachen und Multisprachfelder von der Vorgangssprache
Die Vorgangssprache entscheidet, auf welcher Sprache die Reports bzw. Vorgangsdokumente gedruckt werden. Damit die Reports/Vorgangsdokumente auch einheitlich (vordefinierte + spezifische Felder in der selben Sprache) ausgegeben werden können, muss neben der multilingualität der Reports eine weitere Bedingungen erfüllt sein.
- Die Multilingualen Sprachfelder, welche auf den Dokumenten ausgegeben werden, müssen vom Kunden auf den gewünschten Sprachen hinterlegt worden sein
Sprachfelder
Über die Sprachfelder kann man die von DaVinci fest vordefinierten Felder eines Reports individuell anpassen.
Beispiel eines STDInvoice Reports:
Das Feld „Service Description“ wird von DaVinci standardmäßig als „Leistungsbeschreibung“ ausgegeben.
Jedoch kann jeder Kunden, wenn er möchte, dieses Feld umbenennen, sodass es als „Leistungen des Vorgangs“ ausgegeben wird.
Multilinguale Sprachfelder
Multilinguale Sprachfelder erkennt man an ihrem gelben Hintergrund und dem kleinen Flaggen Symbol, links neben der Dropdownbox. Diese Felder gibt es an den verschiedensten Orten in DaVinci, beispielsweise im Buchungscode dem Katalog oder im Kunden.
Beispiel eines Multisprachfeldes im Buchungscode:
Ein gutes Beispiel für ein Multilinguales Sprachfeld ist die Bezeichnung der Leistungsart innerhalb des Buchungscodes. Bei der Anlage sollte diese Bezeichnung in allen Sprachen hinterlegt werden, die für den Kunden relevant sein könnten.
Hinterlegt man diese Bezichnung auf mehreren Sprachen, so kann diese bei dem Druck eines Reports oder der Vorgangsdokumente in der gewünschten Sprache ausgegeben werden.
Ist die Bezeichnung nicht auf mehreren Sprachen hinterlegt, so wird die Informationen auf der einzig hinterlegten Sprache ausgegeben, auch wenn diese nicht mit der Sprache des Reports übereinstimmt.
Übersteuerung der Sprache über Genesis
Beispielhafter Ablauf:
Nach erfolgreicher Buchung wurde durch die Sprachpriorität, „deutsch“ als Vorgangssprache gewählt.
In diesem Fall werden auch alle Dokumente auf deutsch gedruckt.
Ablauf der Übersteuerung:
Wenn man die Vorgangssprache ändern möchte so kann man dies entweder direkt nach der BA machen, indem man in den Details zur Buchung die Sprache umstellt und dann bucht.
Hat man jedoch bereits gebucht und möchte die Sprache erst im nachhinein ändern, so kann man diese ebenfalls in den Details zur Buchung umstellen und danach den Vorgang umbuchen.
Nach eigentlicher Buchung wurde die Sprache auf englisch umgestellt und umgebucht.
Nach der Umbuchung auf eine englische Vorgangssprache, werden auch alle Reports/Vorgangsdokumente auf englisch ausgegeben.
Technische Funktionsweise der Spracheinstellungen
Textmodule
Sprachsteuerung in DaVinci
Ich fange noch mal ganz von vorne an um ein einheitliches Verständnis des Status Quo zu schaffen. Wir haben hinsichtlich der Sprachsteuerung derzeit 3 verschiedene Typen von Informationen.
Roter Kasten - TOMA-Meldungen: Diese sind in den Toma-DLL-Resourcen hardcodiert und grundsätzlich immer in Deutsch. Diese Meldungen konnten im CETS Umfeld aber nicht 1:1 verwendet werden, da die TOMA Meldungen a la „… bitte Aktion U verwenden“ in CETS keinen Sinn machen weil es dort keine Aktions-Codes gibt. Deshalb wurden die TOMA-Meldungen in die MSG_CETS.DLL ausgelagert und dort grundsätzlich immer auf Englisch übersetzt. So wird aus der TOMA-Meldung „Umbuchung möglich, bitte Aktion U verwenden“ in CETS „Rebooking possible“
Blauer Kasten – Multilinguale Felder aus den DaVinci Stammdaten: In dem Screenshot habe ich das Beispiel aus den Preistexten genommen da dies das offensichtlichste Beispiel ist, es gibt aber natürlich unzählige Multilinguale Felder in DaVinci.
Grüner Kasten – GenVAS Meldungen: Den grünen Kasten jetzt bitte nur exemplarisch verstehen da in diesem Bereich sowohl GenVAS-Systemmeldungen wie auch Multilinguale Texte aus den DaVinci Stammdaten angezeigt werden. Es gibt sehr viele Meldungen von GenVAS (z.B. „Die Disagio Leistung darf nicht geändert werden.“ Oder auch „Keine Veranstalter im Katalog hinterlegt.“ Usw. usw.) die entweder als Popup oder als Infotext angezeigt werden. Diese werden auf Deutsch und Englisch hard-codiert in den GenVAS-DLL-Resourcen hinterlegt.
Wie wird entschieden welche Sprache verwendet wird:
Roter Kasten - TOMA-Meldungen:
wie bereits oben beschrieben ist dieser Text immer deutsch für TOMA und Genesis respektive immer englisch für CETS
Blauer Kasten – Multilinguale Felder aus den DaVinci Stammdaten:
Schritt 1
wenn es sich um die Anzeige einer bereits gespeicherten Buchung handelt wird die relevante Sprache aus der Datenbank (VORGANGSKOPF.LANGUAGE_ID) ermittelt.
Wenn es eine neue Buchung ist wird das Sprachkennzeichen aus der Anfrage verwendet. Da in der Anfrage aber nur ein Sprachkennzeichen „de“ oder „en“ mitgesendet wird, muss dieses noch auf eine Sprachen-ID gemapped werden.
Handelt es sich um eine CETS Anfrage oder wenn das Setting „Mehrsprachige Preistexte“ gesetzt ist wird anhand des Sprachkennzeichens die korrekte Sprache, anhand des Codes, aus den Stammdaten von DaVinci ermittelt.
Konnte keine Sprache ermittelt werden so wird eine weitere Schleife gedreht. Nun wird geprüft ob anhand des Sprachkennzeichens aus der Anfrage ein Land ermittelt werden kann. Ist dies der Fall so wird geschaut ob im Feld „Sprache“ etwas definiert ist. Ist dies ebenfalls gesetzt so wird diese ID verwendet.
Schritt 2
Wurde in Schritt 1 eine gültige Sprachen-ID gefunden so wird diese verwendet
Wurde in Schritt 1 keine gültige Sprachen-ID gefunden so wird geprüft ob das Setting „Agentursprache nutzen“ gesetzt ist.
Ist das Setting „Agentursprache nutzen“ aktiviert so wird aus den Stammdaten der Agentur die Sprache nachgeladen (KUNDATTRIBUTE.KA_SPRACHE)
Ist das Setting „Agentursprache nutzen“ nicht aktiviert so wird aus den Stammdaten des Kunden die Sprache nachgeladen (KUNDATTRIBUTE.KA_SPRACHE)
Schritt 3
Wurde in Schritt 1 oder 2 eine gültige Sprachen-ID gefunden so wird versucht den entsprechenden Text zu übersetzen. Dies bedeutet das, sofern für den individuellen Text eine Übersetzung in der ermittelten Sprache vorliegt, diese Übersetzung auch verwendet wird. Gibt es keine Übersetzung in dieser Sprache, so ist der Fallback der Standard-Text, sprich der Text der nicht in dem Multilingualen-Dialog eingegeben wurden sondern direkt im jeweiligen Dialog-Feld.
Wurde in Schritt 1 und 2 keine gültige Sprachen-ID gefunden so werden die Texte nicht übersetzt.
Grüner Kasten – GenVAS Meldungen:
wenn das Setting „Agentursprache nutzen“ gesetzt ist wird geprüft welche Sprache im Rahmen der Schritte 1 und 2 für „Multilinguale Felder aus den DaVinci Stammdaten“ ermittelt wurde. Für diese Sprache wird dann in den Stammdaten der Sprache das Resource-Feld geprüft und sofern dort ein Wert hinterlegt ist wird diese Resourcen-ID verwendet. Alle hard-codierten GenVAS Meldungen werden in dieser Resourcen-Sprache angezeigt. Im Code CCommonTranslations::LoadResourceText
wenn das Setting „Agentursprache nutzen“ nicht gesetzt ist aber das Setting „Standardsprache“ aktiviert ist wird die Resourcen-ID aus dem AWGL-Setting verwendet. Alle hard-codierten GenVAS Meldungen werden in dieser Resourcen-Sprache angezeigt.
Wenn beide Settings nicht aktiviert sind werden alle hard-codierten GenVAS Meldungen in Deutsch zurückgeliefert
Conclusion: Eigentlich wollte ich an dieser Stelle eine Matrix aufbauen die zeigt welche Setting- und Parameter-Kombinationen zu welcher Sprachen-ID und Resourcen-ID führen. Allerdings sind die möglichen Varianten aus den Settings „Agentursprache nutzen“, „Standardsprache“, „Mehrsprachige Preistexte“ sowie der Anfragesprache, Agentur-/Kundensprache und der Sprache am Land zu viele um noch einen sinnvollen Überblick zu haben.
Erschwerend hinzu kommt das diese Settings und Kriterien für Inhouse Buchungen genauso gelten wie für TOMA und CETS Buchungen. Und die grundsätzliche Frage ist vor allem ob die gewünschte Sprache und Resource in beiden Fällen immer die gleiche sein kann. Wenn dies der Fall sein sollte und wir würden davon ausgehen das einfach alle GenVAS Meldungen englisch sein sollen, würde es ausreichen das Flag bei „Agentursprache nutzen“ nicht zu setzen und die „Standardsprache“ auf „en-US“ zu setzen. Sollten Inhouse ein anderes Verhalten gewünscht werden als über die CRS-Systeme bräuchten wir in jedem Fall neue Settings, allerdings scheint dies bisher bei allen anderen Veranstaltern die mit DaVinci arbeiten auch ohne eine Anpassung funktioniert zu haben.