This article is also available in English.
Erst sehr spät hat Acorn bei Einführung der Toolbox ein Konzept für die Mehrsprachen-Fähigkeit von Applikationen eingeführt - aber eines nur für Anwendungen, die auf Basis der Toolbox programmiert wurden. ResFind mit dem zugehörigen Konzept für mehrsprachige Anwendungen gibt es seit 1992. Viele Programmierer verwenden jedoch die Toolbox nicht - sei es, weil ihnen Acorns Entwicklungsumgebung zu teuer war oder der Aufwand für das Umstellen der Programme oder das Umlernen auf die Toolbox-Techniken zu hoch ist.
Auch ist die Toolbox-Lösung für mehrsprachige Anwendungen nicht besonders flexibel aus Sicht des Anwenders, da dieser keinen Einfluß auf die gewählte Sprache nehmen kann. Mit !ResConf hingegen hat der Anwender sehr große Freiheiten bei den Spracheneinstellungen.
Mittels ResConf kann der Anwender einige Einstellungen vornehmen und so z.B. angeben, welche Sprache ihm lieber als die ist, auf die sein Rechner konfiguriert ist und vor allem, was ihm mehr liegt, als englisch. Auch kann man mit !ResConf für einzelne Anwendungen die Sprache explizit vorgeben.
Nehmen wir als Beispiel einen Anwender aus der französischen Schweiz. Sein Rechner ist auf das Land Schweiz (Switzerland) eingestellt, aber eigentlich mag er am liebsten französische Anwendungen und deutsche sind ihm noch immer lieber, als englische. Diese Wünsche kann er mittels !ResConf leicht im System hinterlegen und ResFind nutzende Anwendungen beachten dann automatisch seine Wünsche.
| Hier werden mittels !ResConf die Sprachenvorlieben eingestellt: Die Sprache Französisch bekommt den Vorzug vor der konfigurierten Sprache des Landes Schweiz sowie Deutsch den Vorzug vor der Standardsprache Englisch |
|
Wenn ich ein Programm einsetze, daß es zwar in meiner Landessprache gibt, die Übersetzung mir aber überhaupt nicht gefällt, so kann ich mit ResConf diese Anwendung fest auf eine andere Sprache einstellen (sofern die Anwendung diese auch bietet und ResFind nutzt).
| Hier wird mittels ResConf eine Anwendung (es ist die CD-Brennsoftware CD-Burn) auf eine bestimmte Sprache eingestellt. Sie bietet die beiden Sprachen Deutsch (Germany) und Englisch (UK), gewählt wurde Deutsch |
|
| Dieses Bild zeigt den Aufbau einer Applikation, die ResFind nutzt. Bitte die Sprachenverzeichnisse in den Ressouceen beachten. (Bei dieser Anwendung liegen die Templates nicht im Sprachenverzeichnis, da die Texte in diesen aus den Messages geholt werden, d.h. die Templates bedürfen keiner Übersetzung.) |
|
ResFind setzt eine Pfadvariable, die dem Programm sagt, wo es die Ressourcen finden kann, die es benutzen soll. Dabei sucht es nach dem passenden Sprachverzeichnis innerhalb der Anwendung. Standardmäßig ist das die Sprache, auf die der Rechner konfiguriert ist, da diese Einstellung am ehesten die Vorliebe des Benutzers widerspiegelt - oder widerspiegeln sollte. Hat der Anwender per !ResConf erweiterte Vorgaben für die Sprachenwahl gemacht, werden diese natürlich von ResFind beachtet. Ist keine passende Sprache vorhanden, wird UK für englisch gewählt. Daraus folgt, daß ein Programm immer mindestens die Sprache "UK" anbieten muß.
In der !Run-Datei der Anwendung (nennen wir sie mal !Appl) ruft man ResFind auf, damit es die passenden Sprachenressourcen findet:
Set Appl$Dir <Obey$Dir>
IconSprites <Appl$Dir>.!Sprites
<Appl$Dir>.Resources.ResFind Appl
/<Appl$Dir>.!RunImage
ResFind setzt die Systemvariable ApplRes$Path so, daß sie auf das Sprachenverzeichnis und das Applikationsverzeichnis von !Appl zeigt. Das Laden der Templates erfolgt nun nicht in der Form:
SYS "Wimp_OpenTemplate",,"<Appl$Dir>.Templates"
SYS "Wimp_OpenTemplate",,"ApplRes:Templates"
Beim Laden anderer Ressourcen wird natürlich ebenso der Ressourcen-Pfad verwendet. Auch in C ist die Benutzung entsprechend. Einige C-Libraries benutzen intern einen Präfix zum Laden von Programm-Ressourcen. So genügt es bei der DeskLib
strcpy(resource_pathname, "ApplRes:");
Für die Hilfe sollte dieselbe Technik eingesetzt werden, indem man im Sprachenverzeichnis die jeweilige Hilfeinformation ablegt und !Help in der Applikation als Obey-Datei mit folgendem Inhalt ablegt:
Set Appl$Dir <Obey$Dir>
<Appl$Dir>.Resources.ResFind Appl
Filer_Run ApplRes:Help
Ein Hinweis ist vielleicht noch wichtig: die Texte der Menüeinträge dürfen natürlich nicht im Programm fest kodiert werden, sondern sollten aus den Messages geladen werden, damit man auch diese übersetzen kann.
Aktuell sind die Versionen ResFind 2.01b, ResError 1.01 and ResConf 0.30.
ResFind-Homepage: http://www.gag.de/software/ResFind.
"GAG" steht übrigens für "German Archimedes Group", einen deutschsprachigen Club für RISC OS-User; wir geben auch DIE deutsche RISC OS-Zeitschrift GAG-News heraus. Näheres unter http://www.gag.de/ und in der Club Database auf dieser CD.