Datenlokalisierung

Die Übersetzung von Dateninhalten ist Paketabhängig. Pro Paket kann definiert werden, welcher Service für die Datenlokalisierung zuständig ist. Dieser Service muß in der Konfiguration eingetragen sein. Die Serviceklasse muß das Interface DLEDataLocalizationServiceIfc implementieren.
Das Interface definiert drei Methoden, die implementiert werden müssen:

public interface DLEDataLocalizationServiceIfc extends DLEServiceIfc
{
public String translate(
String dataObjectName,
String attributeName,
DLEObjectIdentifier objectIdentifier,
String originalData);
public String translate(
String dataObjectName,
String attributeName,
DLEObjectIdentifier objectIdentifier,
String originalData,
Locale locale);
public void setName(String localizationServiceName);
}

Zur weiteren Beschreibung der zu implementierenden Schnittstelle sei auf die JAVADOC Dokumentation des Interfaces verwiesen.
Im Standard verwendet die DLE die Klasse DLELocalDataLocalizationService, eine Implementierung die die Übersetzung mit Hilfe des DLELocalLocalizationService übernimmt.
Zur Konfiguration wird ein Servicename zuerst in den Metadaten der Paketdefinition angegeben:

<MetaDataObjects
defaultConnector=“defaultConnector“
defaultAutoNumber=“True“
defaultDataLocalization=“DLEDataLocalization“>

In der DLE Konfiguration wird dieser Service eingetragen, mit der zu verwendenden Implementierungsklasse:

<Service name=“DLEDataLocalization“ class=“at.visionflow.dle.engine.metadata.DLELocalDataLocalizationService“/>

Wie bereits erwähnt verwendet der DLELocalDataLocalizationService zur Übersetzung von Dateninhalten den DLELocalLocalizationService, der wie oben beschrieben Java ResourceBundles zur Übersetzung verwendet.
Der identifier, der in den Bundles verwendet wird, setzt sich aus folgenden Informationen zusammen:

  1. Konstante Data
  2. Datenobjektname
  3. Attributname
  4. Originalinhalt

Die einzelnen Teile sind dabei durch Unterstriche getrennt. Sind zum Beispiel in einem Datenobjekt mit dem Namen Color in einem Attribut mit dem Namen Name die Werte red, green und blue gespeichert, kann die Übersetzung in dem Paket zugehörigen ResourceBundle (hier zum Beispiel einer Java Properties Datei DEMO_de.properties) mit folgenden Schlüsseln erfolgen:

Data_Color_Name_red=Rot
Data_Color_Name_green=Grün
Data_Color_Name_blue=Blau

Um die Lokalisierung von Daten für ein Attribut einzuschalten, muß das Attribut in den Metadaten entsprechend markiert werden:

<MetaAttribute name=“Name“>
<DataType dataType=“String“ localizable=“true“/>
</MetaAttribute>