Sprachsteuerung
Inhalt
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.
Setup der benötigten Sprachen
Sprachen definiert man über Basisdaten/Reisen -> Sprache -> Sprachen
Sprache: Kürzel der Sprache
Unicode: Sonderzeichen werden zugelassen
Code CRS: Falls abweichend
Name: Name des Landes
Ressource: muss zur technischen Bestimmung der Sprache im Quellcode ausgewählt werden (s. Kapitel 7)
Standard: Standardsprache in DaVinci
Zuweisung von Sprachen
In DaVinci werden die Sprachen in den Stammdaten des Kunden oder der Agentur hinterlegt.
Beispiel Kunde
Beispiel Agentur
Sprachpriorität
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, genutzt werden soll (übersteuert die Sprachpriorität)
Abhängigkeit der Sprachen und Multisprachfelder von der Vorgangssprache
Die Vorgangssprache entscheidet, in welcher Sprache die Reports bzw. Vorgangsdokumente gedruckt werden. Damit die Reports/Vorgangsdokumente auch einheitlich (vordefinierte + spezifische Felder in derselben Sprache) ausgegeben werden können, muss neben der Multilingualität der Reports weitere Bedingungen erfüllt sein.
- Die multilingualen Sprachfelder, welche auf den Dokumenten ausgegeben werden, müssen 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 man 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 relevant sein könnten.
Hinterlegt man diese Bezeichnung 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
Beispiel:
Nach erfolgreicher Buchung wurde durch die Sprachpriorität, „deutsch“ als Vorgangssprache gewählt.
In diesem Fall werden auch alle Dokumente auf Deutsch gedruckt.
Ü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 später ändern, so kann man diese in den Details zur Buchung umstellen und danach den Vorgang umbuchen.
Nach 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
Quellen der Sprachsteuerung in DaVinci
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 in CETS teilweise 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 sieht man den Text aus den Preistexten, da dies das offensichtlichste Beispiel ist. Es gibt aber natürlich unzählige multilinguale Felder in DaVinci.
Grüner Kasten – GenVAS Meldungen: In diesem Bereich werden sowohl GenVAS-Systemmeldungen als auch Multilinguale Texte aus den DaVinci Stammdaten angezeigt. Es gibt sehr viele Meldungen von GenVAS (z.B. „Die Disagio Leistung darf nicht geändert werden“ oder auch „Keine Veranstalter im Katalog hinterlegt.“ etc.) die entweder als Popup oder als Infotext angezeigt werden. Diese werden auf Deutsch und Englisch hardcodiert in den GenVAS-DLL-Resourcen hinterlegt.
Bedingung 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. 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, also 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 Ressourcen-ID verwendet. Alle hard-codierten GenVAS Meldungen werden in dieser Ressourcen-Sprache angezeigt. Im Code CCommonTranslations::LoadResourceText
wenn das Setting „Agentursprache nutzen“ nicht gesetzt ist aber das Setting „Standardsprache“ aktiviert ist wird die Ressourcen-ID aus dem AWGL-Setting verwendet.
Alle hard-codierten GenVAS Meldungen werden in dieser Ressourcen-Sprache angezeigt.
Wenn beide Settings nicht aktiviert sind werden alle hard-codierten GenVAS Meldungen in Deutsch zurückgeliefert
Fazit
Eigentlich wollte man an dieser Stelle eine Matrix aufbauen, die zeigt welche Setting- und Parameter-Kombinationen zu welcher Sprachen-ID und Ressourcen-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 Ressource 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, müsste man in jedem Fall neue Settings entwickeln.