![]()
![]()
![]()
Benutzung in eigenen Programmen ******************************* Wie der Quelltext benutzt wird, hängt natürlich vom erzeugten Quelltext und damit von den jeweiligen Quelltextbeschreibungen ab. Siehe mitgelieferten Quelltextbeschreibungsdateien eingegangen werden. Alle diese Dateien sind so aufgebaut, daß das fertige Programm auf jeden Fall auch ohne die locale.library arbeitet. Allerdings muß es eine globale Variable LocaleBase (d.h. _LocaleBase für Assembler-Programmierer) geben und diese muß mit NULL oder durch einen Aufruf von Exec.OpenLibrary initialisiert sein. Im ersten Fall werden natürlich nur die eingebauten Strings aus der Katalogbeschreibung verwendet. Eine Ausnahme stellt die Quelltextbeschreibung C_c_V20.sd dar, die auch unter der Workbench 2.0 Lokalisierung ermöglicht, indem sie evtl. die locale.library durch die Programmierer benötigen Sie keinerlie Kenntnisse dieser Libraries, außer Sie wollen eigene Quelltextbeschreibungen erzeugen. Es gibt lediglich 3 Funktionen, die aufzurufen recht simpel ist: - : OpenCatalog (locale, language ) Diese Funktion versucht, einen Katalog zu eröffnen. Das Argument locale ist ein Zeiger auf eine Locale-Struktur, language ein Zeiger auf einen String, der den Namen der gewünschten Sprache enthält. Beide Argumente werden an die Locale-Funktion OpenCatalog übergeben und sollten normalerweise immer NULL (bzw. NIL) sein, da andernfalls die Voreinstellungen des Benutzers überschrieben werden. Näheres ist in den AutoDocs nachzulesen. Hat der Benutzer als Vorgabesprachen etwa Deutsch und Français eingestellt und der Basisname des Programms ist XXX, so wird nacheinander nach folgenden Dateien gesucht: PROGDIR:Catalogs/Deutsch/XXX.catalog LOCALE:Catalogs/Deutsch/XXX.catalog PROGDIR:Catalogs/Français/XXX.catalog LOCALE:Catalogs/Français/XXX.catalog Dabei ist PROGDIR: das aktuelle Directory des Programms. Die Reihenfolge von PROGDIR: und LOCALE: kann evtl. vertauscht werden, falls dadurch ein Requester wie Insert volume YYY unterdrückt werden kann. OpenCatalog ist vom Typ void (für Modula2-Programmierer: Eine Prozedur), liefert also kein Ergebnis. - : GetString (ID ) Diese Funktion liefert einen Zeiger auf den Katalogstring mit der angegebenen Nummer. Die ID wird in der Katalogbeschreibung definiert. Es versteht sich von selbst, daß die Strings Eigentum der locale.library sind und deshalb nicht verändert werden dürfen. Ein Beispiel ist vielleicht nützlich. Im Beispiel aus der Katalogbeschreibung wird der String msgHello definiert. Die Quelltextbeschreibungen deklarieren nun eine Konstante msgHello, der die ID repräsentiert. Damit könnte der String in C so ausgegeben werden: printf("%s\n", GetString(msgHello)); - : CloseCatalog (void ) Mit dieser Funktion wird der Katalog (das heißt das belegte RAM) vor dem Programmende wieder freigegeben. Die Funktion kann gefahrlos zu jeder Zeit aufgerufen werden, sogar wenn OpenCatalog gar nicht aufgerufen wurde. C FlexCat-Quelltext in C-Programmen C++ FlexCat-Quelltext in C++-Programmen Oberon FlexCat-Quelltext in Oberon-Programmen Assembler FlexCat-Quelltext in Assembler-Programmen E FlexCat-Quelltext in E-Programmen