-
HINTERGRUND
DER ERFINDUNG
-
Die
vorliegende Erfindung bezieht sich auf die Vorbereitung von Zeicheninformationen
für die
Anzeige in einem Computersystem und insbesondere auf die dynamische
Auswahl eines Zeichensatzcodierungsschemas anhand der Zeichensatzverfügbarkeit.
-
Eine
Computeranwendung, die Zeichen für
die Anzeige erzeugt, stellt für
eine Zeichen-Zeichenroutine Informationen bereit, die das anzuzeigende
Zeichen und den Zeichensatz spezifizieren. Häufig wird der Zeichensatz im
Voraus gewählt.
Die Informationen, die das Zeichen spezifizieren, enthalten üblicherweise
einen Zahlenindex, der das Zeichen in Übereinstimmung mit einem besonderen
Zeichencodierungsschema identifiziert, das durch die momentanen
Regionsdaten spezifiziert ist. Zum Beispiel könnte 'A' als
65 repräsentiert sein,
könnte 'B' als 66 repräsentiert sein usw.
-
Der
Zeichensatz wird typisch durch einen Zeichensatznamen spezifiziert.
In einer X Window-Systemumgebung ist die Zeichensatzbenennung durch
die als XLFD bekannte X Logical Font Description-Konvention definiert.
"-adobe-symbol-medium-r-normal--0-0-0-0-p-0-adobe-fontspecific";
"-b&h-lucida-bold-r-normal-sans-0-0-0-0-m-0-iso8859-5"; und
"-bitstream-charter-bold-i-normal--0-0-0-0-p-0-iso8859-1 ".
-
Die
Suffixe "adobe-fontspecific", "iso8859-1" und "iso8859-5" spezifizieren ein
Zeichensatzcodierungsschema und einen Zeichenvorrat einer besonderen
Version des Zeichensatzes. Das Zeichensatzcodierungsschema ist die
Abbildung zwischen dem Zeichen und dem Zahlenindex für diesen
besonderen Zeichensatz. Wenn ein Zeichen angezeigt werden soll,
muss die Zeichen-Zeichenroutine den Zahlenindex, der das Zeichen
identifiziert, in den relevanten Zeichensatz-Glyphenindex umsetzen.
-
Die
Spezifikation der momentanen Regionsdaten bestimmt das Zeichencodierungsschema,
das dasselbe wie das Zeichensatzcodierungsschema ist. Es können lediglich
dementsprechend codierte Zeichensätze verwendet werden. Es entsteht
ein Problem, dass viele Zeichensätze
bei dem von den momentanen Regionsdaten geforderten Zeichensatzcodierungsschema
nicht verfügbar
sein können.
-
Zum
Beispiel wird das Betriebssystem SolarisTM betrachtet,
das von Sun MicrosystemsTM verfügbar ist und
mit einer Regionsdatenspezifikation der polnischen Sprache arbeitet.
Diese Regionsdaten spezifizieren das Zeichensatzcodierungsschema
ISO8859-2. Allerdings sind die meisten Zeichensätze der polnischen Sprache
möglicherweise
nicht in einer Version, die das Zeichensatzcodierungsschema ISO8859-2
enthält,
verfügbar.
Stattdessen sind die Zeichensätze
für andere
Plattformen entwickelt worden, die andere Codierungsschemata spezifizieren.
-
Ein ähnliches
Problem entsteht für
einen Anwender, der einen Microsoft-Windows-X11-Server-Emulator betreibt. Da das
X Window-System ein einzelnes Zeichensatzcodierungsschema pro Regionsdaten
erfordert, kann der Anwender nicht den vollen Bereich der unter
MS Windows verfügbaren
Zeichensätze
nutzen, falls die Zeichensätze
unter Verwendung verschiedener Codierungsschemata codiert sind.
-
MICROSOFT
CORPORATION: "Microsoft
Operating System/2 Programmer's
Reference, Bd. 2", 1989,
MICROSOFT PRESS, US XP002132501, S. 540, Abs. 2, – S. 541,
Abs. 1.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
In Übereinstimmung
mit der vorliegenden Erfindung kann die Übersetzung zwischen einem Zeichencodierungsschema,
das von einer Anwendung verwendet wird, und einem Zeichensatzcodierungsschema, das
von einer Zeichen-Zeichenroutine verwendet wird, dynamisch in der
Weise gesteuert werden, dass mehrere mögliche Zeichensatzcodierungsschemata
versorgen werden. Da für
gegebene Regionsdaten mehr als ein einzelnes Zeichensatzcodierungsschema
unterstützt
wird, wird der Bereich verwendbarer Zeichensätze dementsprechend stark erweitert.
Da irgendein Zeichensatzcodierungsschema unterstützt werden kann, wird der Prozess
des Kaufs und der Installation neuer Zeichensätze erheblich vereinfacht.
-
Insbesondere
besteht die Erfindung aus einem computerrealisierten Verfahren zum
Unterstützen
der Anzeige von Zeichensätzen
mit mehreren Zeichencodierungsschemata, wobei das computerrealisierte
Verfahren umfasst: Empfangen eines Zeichenindex, der ein anzuzeigendes
Zeichen in Übereinstimmung
mit einem Zeichencodierungsschema spezifiziert; Empfangen von Zeichensatzinformationen,
die einen Zeichensatz spezifizieren, in dem das Zeichen angezeigt
werden soll, wobei der Zeichensatz ein Zeichensatzcodierungsschema
nutzt; falls das Zeichencodierungsschema nicht mit dem Zeichensatzcodierungsschema
kompatibel ist, Identifizieren von Übersetzungsinformationen zum Übersetzen
des Zeichencodierungsschemas in das von dem Zeichensatz genutzte
Zeichensatzcodierungsschema; und Übersetzen des Zeichenindex
von dem Zeichencodierungsschema in das Zeichensatzcodierungsschema
in Übereinstimmung
mit den identifizierten Übersetzungsinformationen.
-
Außerdem besteht
die Erfindung aus einem Computerprogrammprodukt und aus einem Computersystem
zum Ausführen
des obigen Verfahrens.
-
In
einer auf das X Window-System zugeschnittenen Ausführungsform
werden die X-Bibliotheksfunktionsaufrufe
in der Weise geändert,
dass sie sowohl die Initialisierung von Zeichensätzen mit verschiedenen Zeichensatzcodierungsschemata
als auch die dynamisch gesteuerte Übersetzung zwischen der Zeichencodierung
und der Zeichensatzcodierung unterstützen. Die X-Regionsdatendefinitions-Datenbank
wird erweitert, um eine Abbildung zwischen Zeichensatzcodierungsschemata
und geforderten Übersetzungen
bereitzustellen. Diese Erweiterung zu dem X Window-System erhält die Rückwärtskompatibilität und beeinflusst
nicht den Betrieb vorhandener Anwendungen. Änderungen an externen APIs
(Anwendungsprogrammschnittstelle) sind nicht erforderlich.
-
Ein
weiteres Verständnis
des Wesens und der Vorteile der vorliegenden Erfindungen kann anhand
der verbleibenden Abschnitte der Beschreibung und der beigefügten Zeichnung
realisiert werden.
-
KURZBESCHREIBUNG
DER ZEICHNUNG
-
1A zeigt
einen Blockschaltplan eines Computersystems, das für die Realisierung
der vorliegenden Erfindung geeignet ist.
-
1B zeigt
eine Funktionsdarstellung des Betriebs eines X Window-Systems.
-
2 zeigt
einen Blockschaltplan, der die Zeichensatzübersetzung in Übereinstimmung
mit der vorliegenden Erfindung repräsentiert.
-
3 zeigt
eine Erweiterung zu einer X Window-Regionsdatendefinitions-Datenbank
zur Unterstützung
einer dynamischen Übersetzung
zwischen Zeichensatzcodierung und Zeichencodierung.
-
4 ist
ein Ablaufplan, der Schritte einer dynamisch steuernden Übersetzung
zwischen einem regionsdatenspezifischen Zeichencodierungsschema
und einem Zeichensatzcodierungsschema beschreibt.
-
BESCHREIBUNG
SPEZIFISCHER AUSFÜHRUNGSFORMEN
-
1A zeigt
einen Blockschaltplan eines Host-Computersystems 10, das
zur Realisierung der vorliegenden Erfindung geeignet ist. Das Host-Computersystem 10 enthält einen
Bus 12, der die Hauptteilsysteme wie etwa einen Zentralprozessor 14,
einen Systemspeicher 16 (üblicherweise einen RAM), einen
Eingabe/Ausgabe-Adapter
(E/A-Adapter) 18, eine externe Vorrichtung wie etwa einen
Anzeigebildschirm 24 über
einen Anzeigeadapter 26, eine Tastatur 32 und
eine Maus 34 über
einen E/A-Adapter 18, einen SCSI-Host-Adapter 36 und
ein Diskettenlaufwerk 38, das zur Aufnahme einer Diskette 40 betreibbar
ist, miteinander verbindet. Der SCSI-Host-Adapter 36 kann
als eine Speicherschnittstelle zu einem Festplattenlaufwerk 42 oder
zu einem CD-ROM-Laufwerk 44, das so betreibbar ist, dass
es eine CD-ROM 46 aufnimmt, wirken. Die Festplatte 44 kann
ein Teil des Host-Computersystems 10 sein oder kann getrennt
sein, wobei über
andere Schnittstellensysteme auf sie zugegriffen wird. Eine Netzschnittstelle 48 kann über eine
Telephonverbindung eine Direktverbindung zu einem fernen Server
oder über
einen POP (Übergabepunkt)
eine Direktverbindung zum Internet bereitstellen. Auf ähnliche
Weise können
viele weitere Vorrichtungen oder Teilsysteme (nicht gezeigt) verbunden
sein.
-
Außerdem ist
es zur Verwirklichung der wie im Folgenden diskutierten vorliegenden
Erfindung nicht notwendig, dass alle in 1A gezeigten
Vorrichtungen vorhanden sind. Die Vorrichtungen und Teilsysteme können auf
andere Weise als in 1A gezeigt miteinander verbunden
sein. Der Betrieb eines Computersystems wie etwa des in 1A gezeigten
ist im Gebiet leicht bekannt und wird in dieser Anmeldung nicht
ausführlich
diskutiert. Code zur Realisierung der vorliegenden Erfindung einschließlich Betriebssystemcode,
Code zur Realisierung einer Fenster-Anwenderschnittstelle und/oder Anwendungscode
können
in computerlesbaren Speichermedien wie etwa im Systemspeicher 16,
in der Festplatte 42, in der CD-ROM 46 oder in der Diskette 40 betriebsfähig angeordnet
oder gespeichert sein.
-
Das
Computersystem 10 kann von selbst ein X Window-System und
eine oder mehrere Anwendungen realisieren. Alternativ können sich
Elemente des X Window-Systems
in einem weiteren Teil des Netzes befinden. 1B zeigt
eine Funktionsdarstellung des Betriebs eines X Window-Systems. Auf
der untersten Funktionsebene steuert eine Vorrichtungsbibliothek 50 einen
Anzeigebildschirm 24 und eine Tastatur 32. Ein
X-Server 52 führt
durch Steuerung der Vorrichtungsbibliothek 50 niedere Eingabe-
und Ausgabefunktionen wie etwa die Erzeugung von Mehrzeichensatztext
und die Anzeige von Text innerhalb einer Hierarchie rechteckiger Fenster
aus. Der X-Server 52 selbst wird in Übereinstimmung mit einem asynchronen
Nachrichtenprotokoll, dem X-Protokoll, gesteuert. Um die Wechselwirkung
zwischen Anwendungen und dem X-Server 52 zu vereinfachen,
ist eine X-Bibliothek 54 höherer Eingabe- und Ausgabefunktionen
vorgesehen. Die X-Bibliothek 54 vereinfacht
die Aufgabe des Anwendungsprogrammierers, indem sie die Komplexität des asynchronen
Nachrichtenprotokolls des X-Serwers verbirgt. Ein X-Toolkit 56 stellt
noch höhere
Funktionen bereit und nutzt die Routinen der X-Bibliothek 54. Eine Anwendung 58 kann
entweder Routinen des X-Toolkit 56 oder der X-Bibliothek 54 nutzen.
-
1B zeigt
die Situation, in der die Funktionalität des X Window-Systems zwischen
zwei über
ein Netz verbundenen Computersystemen aufgeteilt ist. Das Computersystem 10 betreibt
nur den X-Server 52 und die Vorrichtungsbibliothek 50.
Die X-Bibliothek 54, das X-Toolkit 56 und die
Anwendung 58 werden alle auf einem fernen Computer 60 betrieben,
der einige oder alle der Komponenten des Computersystems 10 enthält. Der
ferne Computer 60 und das Computersystem 10 kommunizieren über ihre
jeweiligen Netzschnittstellen und über ein Netz 62, das
X-Protokoll-Nachrichten
zwischen dem X-Server 52 und der X-Bibliothek 54 überträgt. Zum Übertragen
der Nachrichten kann ein Transportprotokoll wie etwa TCP verwendet
werden. Alternativ kann das X Window-System auf einem Einzelcomputersystem
realisiert sein. Allerdings werden weitere Netzprotokolle verwendet,
um die X-Bibliothek 54 und den X-Server 52 zu
verbinden. Eine weitere Beschreibung des X Window-Systems ist zu
finden in Schiefler und Gettys, X Window System, 3-te Aufl., (Digital
Press 1992), dessen Inhalt hier für alle Zwecke explizit durch
Literaturhinweis eingefügt
ist. Obgleich sich die Diskussion als ein Beispiel hauptsächlich auf
die Zeichensatzcodierung in dem X Window-System konzentriert, ist
die vorliegende Erfindung nicht auf irgendeine besondere Umgebung
beschränkt.
-
Für typische
Rechenumgebungen bestimmen die momentanen Regionsdaten den Zeichenvorrat
und die Zeichencodierung, die Anwendungen nutzen müssen. Die
Regionsdaten werden hier als die internationale Umgebung betrachtet,
die zur Laufzeit das lokalisierte Verhalten definieren. Beispiele
möglicher
Regionsdaten enthalten US ENGLISH, POLISH usw.
-
Die
vorliegende Erfindung bezieht sich allgemein auf Zeichenvorräte und auf
die Zeichencodierung. Ein Zeichenvorrat wird hier als eine Menge
von Glyphen betrachtet, die für
die graphische Darstellung von Zeichen verwendet werden. Die Zeichencodierung
ist eine Zuordnung zwischen diesen Glyphen und ganzen Zahlen, die
die Glyphen repräsentieren.
Wenn eine Anwendung anfordert, dass ein Zeichen angezeigt wird,
spezifiziert sie das Zeichen unter Verwendung der ganzen Zahl, die
durch die Zeichencodierung der Regionsdaten bestimmt ist.
-
Die
Bibliotheks- oder Toolkit-Routine reagiert dadurch, dass sie das
Zeichen in dem ausgewählten
Zeichensatz anzeigt. Das Anzeigen von Zeichen wird hier in der Weise
betrachtet, dass es das Drucken einschließt. Der Zeichensatz bestimmt
das Aussehen des anzuzeigenden Zeichens. Die Aussehensinformationen sind
ebenfalls in Übereinstimmung
mit einer Zeichensatzcodierung für
den besonderen Zeichensatz durch die Glyphe indiziert. Somit ist
ein Teil des Prozesses des Zeichnens eines Zeichens das Übersetzen
zwischen einem durch die momentanen Regionsdaten definierten Zeichencodierungsschema
und einem Zeichensatzcodierungsschema des Zeichensatzes. Falls die
Codierungsschemata die gleichen sind, ist die Übersetzung trivial. Im Stand
der Technik bestimmen die Regionsdaten ein einzelnes Zeichensatzcodierungsschema.
Dementsprechend ist die Übersetzung
zwischen Zeichencodierung und Zeichensatzcodierung statisch definiert.
In dem X Window-System
findet diese statische Übersetzung
innerhalb der X-Bibliotheksroutinen, die zum Anzeigen von Zeichen
verwendet werden, z. B. XmbDrawString() oder XwcDrawString(), statt.
-
2 zeigt
einen Blockschaltplan, der die Übersetzung
zwischen Zeichencodierung und Zeichensatzcodierung in dem X Window-System
repräsentiert.
Eine Anwendung 202, die in einem Host ausgeführt wird, erzeugt
eine anzuzeigende Zeichenfolge. Die Anwendung 202 spezifiziert
in Übereinstimmung
mit den momentanen Regionsdaten eine Codierung E1 und einen Zeichenvorrat
S. Der Host weist über
einen XmbDrawString()-Bibliotheksaufruf an, dass die Zeichenfolge
angezeigt wird. Eine X-Bibliotheksroutine 204,
die die XmbDrawString()-Funktion realisiert, enthält ein Übersetzungsmodul 206,
das zwischen dem Zeichencodierungsschema E1 und einem von den Regionsdaten
benötigten
Zeichensatzcodierungsschema E2 übersetzt. Diese Übersetzung
ist festgesetzt und beschränkt
den Bereich zulässiger
Zeichensätze
auf jene, die das Zeichensatzcodierungsschema E2 enthalten. Die
anzuzeigende Zeichenfolge wird unter Nutzung des X-Protokolls codiert
in der E2-Codierung
an einen X11-Server 208 weitergeleitet. Der X11-Server 208 kann
entweder lokal oder fern zu den anderen Software-Komponenten sein.
Der X11-Server 208 enthält einen
Zeichensatz 210, der die Aussehensinformationen enthält, die
zur Anzeige der Zeichenfolge notwendig sind.
-
Die
vorliegende Erfindung schafft eine Unterstützung mehrerer Zeichensatzcodierungsschemata
und erweitert somit den Bereich der Zeichensätze, die in gegebenen Regionsdaten
verwendbar sind. Eine dynamische Übersetzung ersetzt die statische Übersetzung
des Standes der Technik. Die durch das Übersetzungsmodul 206 ausgeführte Übersetzung ändert sich
in Übereinstimmung
mit der Zeichensatzcodierung des gewünschten Zeichensatzes.
-
In
einer durch das X Window-System gelenkten Ausführungsform wird die dynamische Übersetzung durch Änderung
der Regionsdatendefinitions-Datenbank sowie des XmbDrawString()-
und des XwcDrawString()-Funktionsaufrufs erreicht. In einem X Window-System
enthält
die Regionsdatendefinitions-Datenbank Lokalisierungsdaten, die zur
Unterstützung
von Anwendungen und Bibliotheksroutinen notwendig sind. In Übereinstimmung
mit einem Aspekt der vorliegenden Erfindung wird diese Regionsdatendefinitions-Datenbank
in der Weise erweitert, dass sie Informationen enthält, die
zur Unterstützung
einer dynamischen Übersetzung
zwischen Zeichensatzcodierung und Zeichencodierung verwendet werden.
-
3 zeigt
eine Erweiterung zu einer X Window-Regionsdatendefinitions-Datenbank
zur Unterstützung
einer dynamischen Übersetzung
zwischen Zeichensatzcodierung und Zeichencodierung in Übereinstimmung
mit einer Ausführungsform
der vorliegenden Erfindung. Eine Datenstruktur 300 mit dem Titel
XLC FONTSET enthält
die Informationen zur Unterstützung
der dynamischen Übersetzung.
Die Datenstruktur 300 ist in zwei Teilstrukturen fs0 302 und fs1
304 aufgeteilt. Unter der Annahme eines 8-Bit-Zeichenindex gibt
die Teilstruktur fs0 302 Übersetzungsinformationen
für die
Indizes 0 bis 127, während
die Teilstruktur fs1 304 Übersetzungsinformationen
für die
Indizes 128 bis 255 gibt. Die Zeichenfolge, die rechts von dem Wort "charset" erscheint, gibt
in Form einer Zeichencodierungsinformations-Zeichenfolge die Zeichencodierungsinformationen
für die
Regionsdaten. Die Folge der Zeichenfolgen, die rechts von dem Wort "font" erscheinen, gibt
in Form von Zeichensatzcodierungsinformations-Zeichenfolgen Zeichensatzcodierungsinformationen
für verschiedene
Zeichensatzcodierungsschemata. Eine Standard-Zeichensatzcodierungsinformations-Zeichenfolge
erscheint zuerst in der Liste.
-
Das
folgende Pseudocode-Segment erläutert
die Syntax der in der Datenstruktur 300 dargestellten Codierungsinformationen:
-
Die
Codierungsinformations-Zeichenfolge enthält eine EncodingName-Zeichenfolgenvariable,
die einen Zeichenvorrat und eine Zeichenvorratscodierung identifiziert.
Darüber
hinaus enthält
die Codierungsinformations-Zeichenfolge optional eine EncodingSide-Zeichenfolgenvariable.
Die EncodingSide des Zeichens ist durch sein höchstwertiges Bit (MSB) bestimmt.
Zeichen mit MSB 0 werden "GL"-Zeichen genannt.
Zeichen mit MSB 1 werden "GR"-Zeichen genannt.
EncodingName und EncodingSide sind in der Codierungsinformations-Zeichenfolge
durch ":" begrenzt. Die Codierungsinformations-Zeichenfolge
kann ferner ein CodeSetSymbol, d. h. einen Zeiger auf einen für die Übersetzung
zwischen verschiedenen Zeichencodierungen verwendeten Codevorrat,
enthalten. Dem CodeSetSymbol ist ein "=" vorangestellt.
-
4 ist
ein Ablaufplan, der Schritte der dynamischen Steuerung der Übersetzung
zwischen einem Zeichencodierungsschema und einem Zeichensatzcodierungsschema
in Übereinstimmung
mit einer Ausführungsform
der vorliegenden Erfindung beschreibt. In Schritt 402 empfängt das Übersetzungsmodul 206 ein
anzuzeigendes Zeichen und einen Zeichensatznamen, der ein gewünschtes
Aussehen des Zeichens spezifiziert. Das Zeichen ist hinsichtlich
eines durch die Regionsdaten bestimmten Zeichencodierungsschemas
spezifiziert. In dem X Window-System ist der Zeichensatzname ein
XLFD-konformer Zeichensatzname. Beispiele XLFD-konformer Zeichensatznamen
enthalten:
"-adobe-symbol-medium-r-normal--0-0-0-0-p-0-adobe-fontspecific";
"-b&h-lucida-bold-r-normal-sans-0-0-0-0-m-0-iso8859-5"; und
"-bitstream-charter-bold-i-normal--0-0-0-0-p-0-iso8859-1 ".
-
Die
Suffixe "adobe-fontspecific", "iso8859-1" und "iso8859-5" spezifizieren ein
Zeichensatzcodierungsschema und einen Zeichenvorrat einer besonderen
Version des Zeichensatzes. In Schritt 404 entnimmt das Übersetzungsmodul 206 das
Suffix, um das Codierungsschema zu identifizieren. In Schritt 406 durchsucht das Übersetzungsmodul 206 die
Datenstruktur 300 nach einer Zeichensatzcodierungsinformations-Zeichenfolge,
die das Zeichensatznamensuffix als einen EncodingName enthält. Falls
es mehr als eine solche Zeichenfolge gibt, wählt der Schritt 406 diejenige
Zeichenfolge aus, die die gleiche EncodingSide wie das Zeichen enthält. Insbesondere
werden diejenigen Abschnitte der Datenstruktur 300, die
auf das Wort "font" folgen, durchsucht.
Die Suche verläuft
von oben nach unten und von links nach rechts. Wenn die Standard-Zeichensatzcodierungsinformations-Zeichenfolge
für die
Regionsdaten übereinstimmt,
wird somit diese ausgewählt.
In Schritt 408 prüft
das Übersetzungsmodul 206,
ob es in der ausgewählten
Zeichenfolge ein Zeichen "=" gibt, das angibt,
dass die Codierungsinformations-Zeichenfolge ferner ein CodeSetSymbol
enthält,
das auf einen Codevorrat für
die Übersetzung
zeigt.
-
Falls
kein Codevorrat für
die Übersetzung
spezifiziert ist, ist keine Umsetzung notwendig, wobei das Übersetzungsmodul 206 das
Zeichen in Schritt 410 zur Anzeige an den X11-Server weiterleitet.
Falls ein Codevorrat spezifiziert ist, vergleicht das Übersetzungsmodul 206 in
Schritt 412 das CodeSetSymbol, das durch die Zeichensatzcodierungsinformations-Zeichenfolge
spezifiziert ist, mit dem CodeSetSymbol, das durch die Codierungsinformations-Zeichenfolge
spezifiziert ist, die den Regionsdaten und der EncodingSide für das anzuzeigende
Zeichen entspricht. Es wird daran erinnert, dass die Codierungsinformations-Zeichenfolge
für die Regionsdaten
in 3 nach dem Wort "charset" gegeben ist und getrennt für die Zeichen
GL und GR angegeben ist. Falls die CodeSetSymbols die gleichen sind,
ist wieder keine Umsetzung notwendig, wobei das Zeichen in Schritt 410 angezeigt
wird.
-
Falls
die CodeSetSymbols nicht die gleichen sind, führt das Übersetzungsmodul 206 eine
Umsetzung aus. Dies kann in Schritt 414 auf einer Vielzahl
von Wegen erfolgen. Ein Weg ist der Aufruf des gut bekannten iconv(3)-Umsetzungsmechanismus.
Die Eingabe in den iconv(3)-Umsetzungsmechanismus ist der durch
die Anwendung gelieferte Zeichenindex, der Name der Codierung, der
durch das CodeSetSymbol der Zeichensatzcodierungsinformations-Zeichenfolge
definiert ist, und der Name der Codierung, der durch das CodeSetSymbol
der Regionsdatencodierungsinformations-Zeichenfolge definiert ist. Die CodeSetSymbols
identifizieren logisch die für
die Übersetzung
verwendeten Codierungstabellen. Die Ausgabe des iconv(3)-Umsetzungsmechanismus
ist der umgesetzte Zeichenindex, der in Schritt 414 angezeigt
wird.
-
Es
ist zu sehen, dass die Prozedur aus 4 zunächst die
zum Umsetzen des Zeichenindex in das Zeichensatzcodierungsschema
des Anzeigezeichensatzes benötigten Übersetzungsinformationen
identifiziert und daraufhin die Übersetzung
ausführt.
Ein Paar Beispiele klärt
diese Prozedur. Es wird angenommen, dass in dem Zeichensatz, der
durch den XLFD-konformen Zeichensatznamen "b&h-lucida-bold-r-normal-sans-0-0-0-0-m-0-koi-8" spezifiziert ist,
das kyrillische Zeichen "TE" (das das gleiche
Aussehen wie das lateinische Zeichen "T" hat)
angezeigt werden soll und dass die momentanen Regionsdaten RUSSIAN
sind. Ferner wird angenommen, dass die Regionsdatendefinitions-Datenbank
die in 3 gezeigte Beispielerweiterung enthält. In Schritt 402 empfängt das Übersetzungsmodul 206 den
Zeichensatznamen und den Index für "TE", 194, wie er für die Regionsdaten
RUSSIAN bestimmt ist. In Schritt 404 entnimmt das Übersetzungsmodul 206 aus
dem Zeichensatznamen das Suffix "koi-8", das das Zeichensatzcodierungsschema
und den Zeichenvorrat für
den Anzeigezeichensatz bestimmt. In Schritt 406 durchsucht
das Übersetzungsmodul 206 die
Datenstruktur 300 nach einer Zeichensatzcodierungsinformations-Zeichenfolge,
die den EncodingName "koi-8" enthält. Da der
Zeichenindex 194 einem GR-Zeichen entspricht (das MSB 1 ist), ist
die Suche des Schritts 406 auf Zeichensatzcodierungsinformations-Zeichenfolgen,
die die EncodingSide "GR" spezifizieren, begrenzt. Die
Suche identifiziert die Zeichensatzcodierungsinformations-Zeichenfolge "KOI-8:GR=koi8". In Schritt 408 stellt
das Übersetzungsmodul 206 fest,
dass es in der Zeichensatzcodierungsinformations-Zeichenfolge ein "=" gibt. Das CodeSetSymbol dieser Zeichensatzinformations-Zeichenfolge
ist "koi8".
-
Die
Regionsdaten-Zeichencodierungsinformations-Zeichenfolge für die EncodingSide "GR" ist "ISO8859-5:GR=isolatcyr". Somit ist das CodeSetSymbol
für diese
Regionsdaten und EncodingSide "isolatcyr". In Schritt 412 stellt
das Übersetzungsmodul 206 fest,
dass die CodeSetSymbols "isolatcyr" und "koi-8" tatsächlich verschieden
sind und dass somit eine Übersetzung
erforderlich ist. Somit ruft das Übersetzungsmodul 206 in
Schritt 414 den iconv(3) Mechanismus auf, wobei es die
CodeSetSymbols und den Zeichenindex 194 als Eingabe bereitstellt.
Der iconv(3)-Mechanismus gibt den Index 244 zurück. Der Index 244 wird daraufhin
zur Anzeige an den X11-Server weitergeleitet.
-
Eine
eingehende Untersuchung von 3 zeigt,
dass die Übersetzung
in dem gezeigten Beispiel für die
EncodingSide "GL" nie notwendig ist.
Dies ist typisch wahr, da sich die Codierungsschemata für die ersten 128
Glyphen nicht voneinander unterscheiden. Es wird ein Regionsdatenbeispiel
RUSSIAN betrachtet, bei dem das lateinische Zeichen "T" in dem Zeichensatz angezeigt werden
soll, der durch den XLFD-konformen Zeichensatznamen "b&h-lucida-bold-r-normal-sans-0-0-0-0-m-0-koi-8" spezifiziert ist.
In Schritt 404 wird das Suffix "koi-8" entnommen. In Schritt 406 wird
die Zeichensatzcodierungsinformations-Zeichenfolge "KOI-8:GL" identifiziert. In
Schritt 408 gibt es nach der EncodingSide kein Zeichen "=", so dass die Verarbeitung zu Schritt 410 übergeht,
wo der Zeichencode 84 ohne Übersetzung
angezeigt wird.
-
In
der X Window-Umgebung können
die Schritte aus 4 als Änderung an der XmbDrawString()- und
an der XwcDrawString()-Routine in der X-Bibliothek realisiert werden.
Vorzugsweise sollte die XCreateFontSet()-Routine der X-Bibliothek
ebenfalls geändert
werden. Die XCreateFontSet()-Routine wird üblicherweise zum Laden von
Zeichensätzen
aufgerufen. Realisierungen des Standes der Technik von XCreateFontSet()
ermöglichten
lediglich das Laden von Zeichensätzen,
die das einzige Zeichensatzcodierungsschema haben, das von den Regionsdaten
gefordert wird. Zur Versorgung der dynamischen Zeichensatzcodierungsübersetzung,
die durch die vorliegende Erfindung geschaffen wird, wird XCreateFontSet()
vorzugsweise so geändert,
dass es das Laden von Zeichensätzen
mit Zeichensatzcodierungsschemata zulässt, für die Übersetzungsinformationen verfügbar sind.
Dies wird leicht bei Untersuchung der anhand von 3 beschriebenen Regionsdatendefinitions-Datenbankerweiterung
bestimmt.
-
In
der vorstehenden Beschreibung ist die Erfindung mit Bezug auf spezifische
beispielhafte Ausführungsformen
davon beschrieben worden. Allerdings können daran offensichtlich verschiedene
Abwandlungen und Änderungen
vorgenommen werden, ohne von dem umfassenderen Erfindungsgedanken
und Umfang der Erfindung, wie sie in den beigefügten Ansprüchen dargelegt sind, abzuweichen.
-
Obgleich
sich einige der Einzelheiten der oben beschriebenen Realisierung
auf das X Window-System beziehen, ist z. B. das X Window-System
lediglich repräsentativ
für die
Umgebungen, in denen die vorliegende Erfindung Anwendung findet.
-
Darüber hinaus
sind die hier beschriebenen Ablaufpläne lediglich veranschaulichend
für den
umfassenden logischen Ablauf von Schritten, um ein Verfahren der
vorliegenden Erfindung zu erreichen, wobei Schritte zu dem Ablaufplan
hinzugefügt
oder von ihm entnommen werden können,
ohne von dem Umfang der Erfindung abzuweichen. Ferner kann die Reihenfolge
der Ausführung
der Schritte in den Ablaufplänen
geändert
werden, ohne von dem Umfang der Erfindung abzuweichen.
-
Zusätzliche
Betrachtungen bei der Realisierung des durch den Ablaufplan beschriebenen
Verfahrens können Änderungen
in der Auswahl und Reihenfolge der Schritte vorschreiben.
-
Im
Allgemeinen enthalten die Ablaufpläne in dieser Beschreibung einen
oder mehrere Schritte, die durch Software-Routinen ausgeführt werden,
die in einem Computersystem ausgeführt werden. Die Routinen können mit
irgendwelchen Mitteln realisiert werden, wie sie im Gebiet bekannt
sind. Zum Beispiel kann irgendeine Anzahl von Computerprogrammiersprachen
wie etwa Java, "C", Pascal, FORTRAN,
Assemblersprache usw. verwendet werden. Ferner können verschiedene Programmierzugänge wie
etwa prozedurorientierte Techniken, objektorientierte Techniken
oder Techniken künstlicher
Intelligenz genutzt werden.
-
Viele
solche Änderungen
oder Abwandlungen sind für
den Durchschnittsfachmann auf dem Gebiet leicht sichtbar. Dementsprechend
sind die Beschreibung und die Zeichnung eher in veranschaulichendem
als in beschränkendem
Sinn zu verstehen, wobei die Erfindung nur durch die beigefügten Ansprüche und
ihren vollen Umfang von Entsprechungen beschränkt ist.