Bidirektionale Sprachen (BIDI) wie Arabisch und Hebräisch sind Sprachen,
bei denen der Text für den Benutzer von rechts nach links angezeigt wird. Zahlen innerhalb des Textes und alphabetische Zeichenfolgen mit lateinischen
Buchstaben werden jedoch von links nach rechts angezeigt. Außerdem kann die Reihenfolge von Zeichen in Programmvariablen variieren. In COBOL-Umgebungen ist der Text in Programmvariablen normalerweise
in visueller Reihenfolge angegeben, also in derselben Reihenfolge, in der der Text in der Benutzerschnittstelle angezeigt wird. In Java™-Umgebungen wird der Text für gewöhnlich
in logischer Reihenfolge gespeichert, also in der Reihenfolge, in der die Zeichen im Eingabefeld eingegeben werden.
Diese Unterschiede beim Sortierungsschema, bei der Textausrichtung und bei anderen Merkmalen des bidirektionalen Formats machen es erforderlich, dass das Programm bidirektionale Textzeichenfolgen aus einem Format in ein anderes Format konvertiert:
- Um das Format von bidirektionalen Textzeichenfolgen in Feldern von Formulargruppen (formGroup) zu steuern,
verwenden Sie eine bidirektionale Laufzeitdatei.
- Um das Format von bidirektionalen Textzeichenfolgen zwischen einem Server und einem Client zu steuern, verwenden Sie
eine bidirektionale Konvertierungstabelle.
Anmerkung: Bei der Migration von bidirektionalen Literalzeichenfolgen aus einer anderen Programmiersprache in EGL müssen
die Zeichenfolgen vor der Migration in der logischen Reihenfolge (also der Eingabereihenfolge) angeordnet sein.
Bidirektionale Laufzeitdatei
Die Builddeskriptoroption
bidiRuntime gibt eine bidirektionale Laufzeitdatei an. Diese Datei im XML-Format enthält eine Gruppe von Optionen, mit denen das bidirektionale Verhalten für die Felder in den
Formulargruppen gesteuert werden, die einer Anwendung zugeordnet sind.
Einige dieser Optionen entsprechen bestehenden BIDI-Eigenschaften:
Bevor EGL durch die bidirektionale Laufzeitdatei ergänzt wurde (also vor Version 7.5), wurde dieses Verhalten durch einzelne Eigenschaften gesteuert.
Diese Eigenschaften sind auch weiterhin Bestandteil von EGL. Falls Ihr Code diese einzelnen Eigenschaften einer Formulargruppe zuordnet, bewirkt eine Änderung der Laufzeitdatei, dass EGL die Werte der einzelnen Eigenschaften entsprechend ändert.
Falls Sie die einzelnen Eigenschaften ändern, verwendet EGL die neuen Werte, nimmt jedoch keine Aktualisierung der Laufzeitdatei vor.
Informationen zur Konfiguration der bidirektionalen Laufzeitdatei finden
Sie unter Bidirektionale Laufzeitdatei erstellen.
BIDI-Konvertierungstabelle
EGL verwendet eine Konvertierungstabelle für bidirektionalen Text (BIDI-Konvertierungstabelle), um Konvertierungen zwischen den Formaten von Servern und Clients auszuführen. Die Datei hat das XML-Format und die Dateierweiterung '.bct'. Sie können mit einem EGL-Assistenten mehrere BIDI-Konvertierungstabellen erstellen, um Konvertierungen für verschiedene BIDI-Formate zu unterstützen. Das Programm gibt durch einen Verweis auf den Namen der Konvertierungstabelle an, wie die Attributkonvertierung
ausgeführt werden soll.
In allen Fällen wird der Verweis auf die BIDI-Konvertierungstabelle in Form des aus einem bis vier Zeichen bestehenden Dateinamens mit der Erweiterung '.bct' angegeben. Falls Sie beispielsweise eine BIDI-Konvertierungstabelle namens
hct1.bct erstellt haben, können Sie den
Wert von
formConversionTable in einem Programm festlegen, indem Sie die folgende Anweisung am Anfang des Programms hinzufügen:
sysVar.formConversionTable = "hct1.bct" ;
Zur Verwendung einer BIDI-Konvertierungstabelle müssen Sie Folgendes ausführen:
- Erstellen Sie BIDI-Konvertierungstabellen, in denen die gewünschten Umsetzungen angegeben sind. Bitte beachten Sie, dass für die Konvertierung von Daten, die zwischen einem
Java-Client und einem
COBOL-Host übertragen werden, und für die Konvertierung von Daten, die in
einer Java-Umgebung in einem Text- oder Druckformular angezeigt werden, verschiedene Tabelle benötigt werden.
Zur Erstellung der BIDI-Konvertierungstabelle verwenden Sie den Assistenten für BIDI-Konvertierungstabellen. Weitere Information finden Sie in Konvertierungstabelle für bidirektionalen Text erstellen.
- Geben Sie die BIDI-Konvertierungstabelle an, die bei der Generierung verwendet werden soll. Auf welche Weise Sie die BIDI-Konvertierungstabelle angeben, richtet sich nach dem Code, den Sie generieren:
- Führen Sie bei der Generierung für eine COBOL-Umgebung Folgendes aus:
- Geben Sie für die Builddeskriptoroption bidiConversionTable den Namen der BIDI-Konvertierungstabelle an, die Sie für die COBOL-Generierung erstellt haben. Die BIDI-Konvertierungstabelle steuert neben anderen Formatierungsumsetzungen, die in der Tabelle angefordert werden, die Umsetzung von Literaltext aus der logischen in die visuelle Reihenfolge für die COBOL-Umgebung.
- Legen Sie die Builddeskriptoroptionen clientCodeSet und serverCodeSet fest, um die Konvertierung der Codepage aus ASCII in EBCDIC wie in der folgenden Tabelle gezeigt zu steuern.
Tabelle 1. Werte für Builddeskriptoroptionen clientCodeSet und serverCodeSet| Sprache |
clientCodeSet |
serverCodeSet |
| Arabisch |
IBM-864 |
IBM-420 |
| Hebräisch |
IBM-1255 |
IBM-424 |
- Wenn Sie ein Java-Programm generieren, das ein fernes COBOL-Programm aufruft, passen Sie den Verbindungsoptionsabschnitt so an, dass sich die Eigenschaft
conversionTable im Element callLink für das aufgerufene Programm befindet. Verwenden Sie hierzu eine der folgenden Optionen:
- Geben Sie eine BIDI-Konvertierungstabelle als Wert dieser Eigenschaft an (z. B. conversionTable="hct.bct").
- Geben Sie für die Eigenschaft die Einstellung PROGRAMCONTROLLED an. Dies bedeutet, dass das aufrufende Programm die BIDI-Konvertierungstabelle angibt, bevor das andere Programm aufgerufen wird. Das aufrufende Programm gibt die Tabelle an, indem der Systemvariablen sysVar.callConversionTable der Name der BIDI-Konvertierungstabelle zugeordnet wird. Weitere Informationen zur Systemvariablen sysVar.callConversionTable können Sie dem Abschnitt
'callConversionTable' in der Veröffentlichung EGL-Sprachreferenz entnehmen.
- Wenn Sie für einen Service in einer EGL-Implementierungsdeskriptordatei (.egldd) EGL-Bindungen angeben, geben Sie bei einem anderen Protokoll als dem lokalen Protokoll den Namen der Datei '.bct' für die Eigenschaft conversionTable an (z. B. conversionTable="hct1.bct").
- Wenn Sie ein Programm entwickeln, das Sie für Java generieren wollen, und dieses Programm Text- oder Druckformulare mit Text in bidirektionaler Sprache verwendet, fügen Sie eine Anweisung zu dem Programm hinzu, die
vor dem Anzeigen des Formulars der Systemfunktion sysVar.formConversionTable den Namen der Konvertierungstabelle zuordnet.