Übersetzungen
Übersetzungen können in Documents mit der Schreibweise "de:Deutscher Anzeigewert;en:English label" angegeben werden. Alternativ können sogenannte properties-Dateien verwendet werden. Bei der Verwendung der properties-Dateien wird lediglich ein Text im Format "pf:TechnischerWert" angegeben. Der Anzeigewert wird aus einer properties-Datei ermittelt. Für jede Sprache existiert eine Datei mit demselben Namens-Aufbau - wie zum Beispiel "DEXPRO_%lang%.properties", wobei das "%lang%" jeweils durch die gültigen Sprach-Abkürzungen ("de", "en") ersetzt wird.
Der Vorteil bei der Verwendung der properties besteht darin, dass neue Sprachen relativ einfach hinzugefügt werden können. Die bestehenden Anzeigewerte müssen nicht mühselig gesammelt werden, sondern befinden sich bereits gesammelt in einer Datei. Sobald Werte hinzukommen muss jedoch pro Sprache eine Datei angepasst werden. Wenn nicht extrem sorgfältig gearbeitet wird, dann entsteht schnell ein Schiefstand zwischen den Dateien. Zudem bleibt der große Nachteil bei projektspezifischen Anpassungen für den Kunden. Nach einem Update müssen die projektspezifischen Anpassungen mit sehr hohem Aufwand manuell wieder hergestellt werden.
Die WEB-Konfiguration für die Übersetzungen bietet eine Lösung für die genannten Problemstellungen. Die Übersetzungen werden nebeneinander angezeigt und müssen nicht aufwändig zusammen gesucht werden. Projektspezifische Anpassungen können durch einen Klick als solche markiert werden und werden bei einem Update nicht überschrieben.
Die Einträge aus den properties-Dateien werden hierzu in Datenbank-Tabellen geschrieben. Der technische Name steht in der Spalte "Name" und jede Übersetzung wird in einer separaten Spalte angezeigt. Durch eine gesetzte Checkbox "Projektspezifische Anpassung" werden die gesetzten Einträge beim Import nicht überschrieben. Hinzu kommen die Spalten "Applikation", "Typ" und "Unterkategorie".
Applikation
In der Spalte "Applikation" kann zwischen den einzelnen Software-Komponenten unterschieden werden. Der Großteil der properties-Dateien wird für die Documents-Oberflächen benötigt und werden durch den Eintrag "Documents" gekennzeichnet. Weitere properties-Dateien werden für die Konfigurations-Seiten selber verwendet. Die Konfigurationen wurden mit dem Framework Vue.js erstellt und die zugehörigen properties-Dateien wurden der Applikation "Vue" zugeordnet.
Typ
Für unterschiedliche Bereiche wurden zur Abgrenzung unterschiedliche properties-Dateien erstellt. Jedem properties-Aufbau wird ein Typ zugeordnet. In dem Unterordner "Properties" können die einzelnen Zuordnungen der properties-Dateien eingesehen werden. Jeder Typ muss einer Applikation zugeordnet sein und jeder Typ enthält einen technischen Namen als eindeutige ID.
Der Dateipfad kann entweder komplett als String oder durch vorgegebene Abkürzungen angegeben werden. Kombinationen sind nicht möglich! Folgende Abkürzungen sind definiert und verweisen auf folgende Pfade innerhalb der Documents-Installation:
%DocumentsLocale% ...\server\locale\
%DexproLocale% ...\DEXPRO\Locale\
%GentablePath% ...\DEXPRO\Gentable\
Vorhandene Einträge können über das Stift-Icon bearbeitet werden. Über die Mülltonne können bestehende Einträge gelöscht werden. Durch einen Doppelklick auf einen Eintrag öffnet sich die Ansicht mit den bereits gefilterten properties-Einträgen. Über den Eintrag in der Kopfleiste kann wieder zurück in die ursprüngliche Ansicht gesprungen werden.
Die von Documents ausgelieferten properties-Dateien eignen sich nicht für die Verwendung mit dieser WEB-Konfiguration. Das liegt zum einen daran, dass in den Dateien immer wieder Sonderfälle wie Zeilenumbrüche und ähnliche Sonderfälle zu berücksichtigen sind und zum anderen liegt es daran, dass die hier verwendete Logik Unterkategorien unterstützt.
Unterkategorie
Die properties-Einträge können in Unterkategorien gruppiert werden, was bei der Suche nach spezifischen Einträgen eine enorme Hilfe darstellt. Die Unterkategorien werden beim Export in die properties-Dateien als Kommentar geschrieben.
Aus den properties-Dateien in die Datenbank schreiben
Bei der Installation oder bei einem Produkt-Update werden gegebenenfalls aktualisierte properties-Dateien ausgeliefert. Um eine properties-Datei aus dem Dateipfad in die Datenbank einzulesen kann der Button mit der Wolke und dem Pfeil nach unten verwendet werden. Beim Einlesen wird nach Dateien mit passendem Dateiaufbau gesucht. Befindet man sich im Sub-Ordner "Properties" in einer spezifischen Ansicht, dann werden auch nur die passenden properties-Dateien ausgelesen. Wenn man sich in der globalen Ansicht befindet werden in jedem Fall alle properties ausgelesen (auch wenn Such-Filter gesetzt wurden!).
Die Verarbeitung prüft zunächst für jeden technischen Wert, ob bereits ein Eintrag besteht. Wenn noch kein Eintrag besteht wird ein Insert ausgeführt. Wenn bereits ein Eintrag besteht wird geprüft, ob der Haken "Projektspezifische Anpassung" gesetzt wurde. Wenn der Haken gesetzt wurde wird nur ein Update ausgeführt, wenn der Wert in der Datenbank leer oder NULL ist. Somit werden die projektspezifischen Anpassungen in der Datenbank nicht überschrieben und alle Datenbank-Einträge die nicht in den properties-Dateien vorkommen bleiben ebenfalls bestehen. Nach einem Export aus der Datenbank heraus enthalten die neu erstellten properties-Dateien alle neuen Einträge samt aller projektspezifischer Anpassungen!
Nach der Verarbeitung wird ein eine Rückmeldung in Form eines HTML-Pop-Ups ausgegeben.
Aus der Datenbank in die properties-Dateien schreiben
Anpassungen sollten immer über die WEB-Oberfläche vorgenommen werden und Anpassungen sollten immer mit der Checkbox "Projektspezifische Anpassung" versehen werden, damit die Änderungen nicht überschrieben werden. Beim Schreiben der properties-Dateien wird die bestehende Datei mit einem Zeitstempel versehen und in einen Backup-Ordner im selben Pfad verschoben. Die Werte werden nach der Unterkategorie und nach technischem Namen sortiert in die properties geschrieben. Die Unterkategorien werden als Kommentare festgehalten.
Damit nicht immer alle properties-Dateien neu erstellt werden bietet es sich an die Anpassung über den Unter-Ordner "Properties" in der spezifischen Ansicht vorzunehmen, denn hier werden beim Export nur die zum spezifisch ausgewählten propertie neu geschrieben.
Am Ende der Verarbeitung wird ein "context.reloadCurrentPrincipal(true)" ausgeführt, um die properties direkt zu laden. Zudem wird eine Rückmeldung in Form eines HTML-Pop-Ups ausgegeben. Je nachdem wo der angepasst Wert angezeigt wird wirkt sich die Anpassung entweder direkt oder erst nach einer Neu-Anmeldung oder erst nach einem Neustart von Documents samt Tomcat aus.
No Comments