Short: German translator.lib, FUNNY! (german docs only!) Author: j.schmitz@rheinland.sky.oopsnet.de (Juergen Schmitz) Uploader: s_supp iracvl ira uka de Type: util/cli Architecture: m68k-amigaos Lange hat es gedauert, aber nun gibt es sie! Das deutsche Gegenstück zur TRANSLATOR.LIBRARY - die UEBERSETZER.LIBRARY!!!!!!!!!!!!!!!!!!!!!! Die uebersetzer.library basiert auf Speechd, P. Kittel 11.10.89 und dem AmigaBASIC-Programm SagDatei5, P. Kittel 15.8.90. Da diese Programme allerdings mehr zur Ausgabe von Textdateien gedacht waren, mußten für die ubersetzer.library die Routinen entsprechend abgeändert werden. Ergebnis ist eine Library, die der TRANSLATOR.LIBRARY ähnelt. Installieren: Irgendwie habe ich keine große Lust, für eine zu kopierende Datei ein Installer-Script zu schreiben... :-) Also, die Datei "uebersetzer.library" muß ins LIBS: Verzeichnis kopiert werden. Die C-Include-Datei soll jeder dahier kopieren, wo es es für richtig hält, am besten in sein C-Includes Verzeichnis. Benötigt: Die Library sollte schon unter Kick 1.3 laufen, das Beispiel-Programm läuft erst ab OS2.0. Außerdem wird das "narrator.device" benötigt, das bis einschließlich OS2.0 zum System gehörte. Wer OS2.1 oder höher hat, sollte sich das "narrator.device" von seinen alten OS1.3 oder OS2.0 System-Disketten kopieren. Zur Library: Alle nötigen C-Include-Dateien liegen (hofentlich) bei. Im Prinzip können aber auch die Include-Dateien der TRANSLATOR.LIBRARY verwendet werden. Einzige Funktion der uebersetzer.library ist die Funktion Translate(). Die Parameter entsprechen der der TRANSLATOR.LIBRARY: LONG Translate(Text, Länge, Ziel, Zielgröße) a0 d0 a1 d1 Aber nun konnt der Unterschied: Da die Original-Programme (Speechd, SagDatei5) nunmal Dateien vorlesen, ist der Parameter Länge zur Zeit ohne Bedeutung. Der Text wird grundsätzlich bis zu einem NULL-Byte übersetzt. Um jedoch mit späteren Versionen kompatiebel zu bleiben, sollte man den Länge-Parameter richtig initialisieren! Ebenfalls kann der Rückgabe-Parameter nicht 100%ig ernst genommen werden. Wenn alles glatt lief ist der zwar NULL, im Fehlerfall (z.B. bei zu kleinem Ziel-Puffer) jedoch irgendein Wert von NULL verschieden. Naja, er soll zwar mit der Position übereinstimmen, bis zu der übersetzt werden konnte - aber die original Programme machen das nicht gerade leicht. Da intern ein Puffer von 300 Zeichen verwendet wird, kann 1. der Ziel-Puffer nicht größer sein und 2. der Quell-Text auch nicht. Um Problemen mit zu kleinem Ziel-Puffer aus dem Weg zu gehen, sollte der Text nicht länger als 90-100 Zeichen lang sein und der Zielpuffer möglichst 3mal so groß, wie der Quell-Text. Noch eine letzter Sache. Sollte der Quelltext am Ende kein Satzzeichen haben, wird immer ein Punkt gesetzt! Das Beispielprogramm: Das Beispiel-Programm kann nur vom CLI aus gestartet werden. Als Parameter erwartet es den zu sagenden Text. Die Parameter des NARRATOR.DEVICE können nicht geändert werden. Es soll ja auch nur zum ersten Testen der uebersetzer.library dienen. Die Library und das Beispielprogramm wurden in C geschreiben. Da ich erst kürzlich von Pascal gewechselt habe, möge man mir den vielleicht etwas eigenwilligen Style nachsehen. Diese Library darf frei kopiert werden - egal wohin, ob Mailbox, PD-Diskette oder CD-Rom oder sonstwo - nur muß der Autor bei PD-Disketten und CD-Roms informiert werden (eine PD-Diskette als Dankeschön wäre auch nett :). Anschriften: Post: Jürgen Schmitz Bergstr. 82 56859 Bullay/Mosel Deutschland FidoNet: Juergen Schmitz, 2:2454/550.3 AmigaNet: Juergen Schmitz, 39:176/401.2 Internet (innerh. Deutschland): j.schmitz@rheinland.sky.oopsnet.de Und wer wirklich gute Programme sucht, sollte mal bei der Rheinland-Box (2:2454/550) ins File-Echo 39 gucken! Da gibt es u.a. BARNEY, ein Filelisten Request Utility der Extraklasse.