|
|
|
|
|
|
|
|
|
Es gibt verschiedene Möglichkeiten, eine Delphi-Anwendung mit einer mehrsprachigen
Oberfläche zu versehen. Auch die Original-Entwicklungsumgebung bringt hierfür Werkzeuge
mit. Bei der Benutzung zeigen sich diese aber etwas schwerfällig in der Anwendung.
Ich habe daher alle meine mehrsprachigen Programme auf das als OpenSource bereitgestellte
System GNU Gettext for Delphi
von Lars B. Dybdahl umgestellt. Nach kurzer Eingewöhnung kann man damit sehr effizient
arbeiten. Außerdem bietet es den großen Vorteil, dass für die Erstellung einer Übersetzung
keine Delphi-Entwicklungsumgebung bereitstehen muss. Es genügt ein einfacher Texteditor oder
besser eines der folgenden speziell dafür entwickelten Editor-Programme:
Basís ist immer eine vorzugsweise in englisch geschriebene Delphi-Anwendung. Weitere Informationen findet man unter Personal Backup - Übersetzungen.
Die Übersetzung wird immer in zwei Schritten erstellt:
Bereits übersetzte Teile werden dadurch bei Programmaktualisierungen immer automatisch
übernommen, so dass der Aufwand für die Aktualisierung der Übersetzung klein bleibt.
Die beiden erforderlichen Programme werden im Windows-Explorer über das Kontext-Menü
aufgerufen:
1. Rechtsklick auf ein Verzeichnis
|
2. Rechtsklick auf eine po-Datei.
|
|
| erzeugt die Schablone (po-Datei). | führt Schablone und Übersetzung zusammen und startet PoEdit für die Nachbearbeitung. |
Das Programm für die Schablonenerstellung (ggdxgettext.exe) habe ich etwas erweitert, um den Namen
der Textdomäne direkt frei wählen zu können (Standardname: default). Außerdem
wurde ein Fehler beseitigt, den ich erstmals unter Windows 7 festgestellt habe:
Die Po-Datei wurde nicht in das per Rechtsklick ausgewählte Verzeichnis geschreiben,
sondern eine Ebene höher.
Auch für das Programm zur Zusammenführung von vorhandener Übersetzung mit der aktualisierten
Schablone (ggmerge.exe) und die Übersetzungen der Kontextmenüs gibt es kleine
Ergänzungen.
Zum sporadischen Bearbeiten einzelner Übersetzungen ist die Integration in Form der Kontext-Menüs sicher ganz praktisch. Beim Erstellen eines mehrprachigen Programms (z.B. in englisch und deutsch), wobei die Texte noch laufend angepasst werden müssen, wird die Bedienung auf diese Weise allerdings doch etwas mühsam. Man muss ständig die Verzeichnisse wechseln und erreicht sein Ziel erst nach diversen Mausklicks. Abhilfe schafft hier mein Programm GgtTranslate, das alle Schritte unter einer Bedieneroberfläche zusammenfasst. Es benutzt dabei die gleichen Einstellungen (dxgettext.ini) wie die Originalprogramme, erlaubt es aber, alle Schritte unmittelbar nacheinander auszuführen:
Das Program und alle oben beschrieben Erweiterungen sind als installierbares Updatepaket verfügbar:
Zur Verwendung muss zunächst das Komplettpaket für GNU gettext for Delphi installiert werden. Das Update kann anschließend einfach darüber installiert werden.
Um dem Anwender die Installation eines neuen Programms möglichst einfach zu machen, wird dies am Besten mit allen seinen Komponenten in ein platzsparendes Archiv gepackt. Dadurch wird ein schnelles Download gewährleistet. Um auch die Installation komfortabel zu gestalten, sollte dieses Archiv selbstextrahierend sein, damit kein Zusatzprogramm zum Entpacken nötig ist. Wichtig ist auch, dass während der Installation individuelle Einstellungen (wie. z.B. das Programmverzeichnis oder Einträge im Startmenü oder auf dem Desktop) vom Benutzer vorgenommen werden können.
Neben kommerziellen Programmen wie z.B. InstallShield oder Wyse hat sich hierfür das Freeware-Programm Inno-Setup bewährt. Durch eine sehr leistungsfähige Skript-Sprache können hiermit fast alle Anforderungen erfüllt werden.
Bei Programmen, die sich noch in der Weiterentwicklung befinden, ist es nützlich, aus dem Dateinamen der Installationsdatei die Versionsnummer zu erkennen. Mit einiger Kenntnis der in InnoSetup verwendeten Scriptsprache kann man das in das Installationsskript integrieren. Wem das zu kompliziert ist, der kann auf das nachfolgend beschriebene kleine Delphi-Befehlszeilenprogramm zurückgreifen. Es lässt sich sehr einfach in eine Batch-Datei integrieren.
Batch-Datei zur Erzeugung des Installationsarchivs:
Das Programm AddVersionToName benötigt folgende Angaben in der Befehlszeile:
AddVersionToName <ExeFile> <InstallFile> [<Level>]Es liest dann aus der Exe-Datei die Versionsnummer aus (siehe z.B. Projekt-Eigenschaften bei Delphi) und benennt die Installations-Datei entsprechend um.
Ein zweites Programm CopyVersionFile kopiert zusätzlich zur Umbenennung die Datei in ein oder mehrere Verzeichnisse für die Softwareverteilung.
Download der Programme (Quelltexte und Exe-Dateien) (57,2 kB)
Eine Weiterentwicklung dieser beiden kleinen Programm wird im nächsten Abschnitt beschrieben.
Die Erstellung und Verteilung von Softwarepaketen erfordert immer wieder die gleiche Abfolge von Operationen, so dass sich eine Automatisierung anbietet:
Beispiel einer Batch-Datei für einen automatisischen Ablauf der Schritte 1 - 3:
Die Schritte 3 - 5 werden dabei von dem Programm VersionCopy ausgeführt.
Die Funktionen im Überblick:
Zunächst werden im interaktiven Modus mit dem Program geeignete Aufträge
erstellt und gespeichert.
Mit der Schaltfläche "Testen" kann die Funktionsweise geprüft werden, ohne dass
irgendwelche Daten tatsächlich verändert oder kopiert werden. Der Ablauf wird
im Status-Fenster angezeigt und gleichzeitig auch in eine Protokolldatei
geschrieben ("VersionCopy.log" im Verzeichnis "Anwendungsdaten").
Wenn alles richtig aussieht, kann durch Klick auf die Taste "Starte Kopieren"
der Auftrag real ausgeführt werden.
Aufruf über die Befehlszeile:
Der Kopiervorgang kann auch direkt über die Befehlszeile gestartet werden (siehe
auch die Batch-Datei weiter oben):
<Pfad>\VersionCopy.exe <Auftrag> /force
Download des Programme als Zip-Datei (822 kB)
Exe-Datei mit Versionsinfo:
Dies kann eine mit einer beliebigen Programmentwicklungsumgebung erstellte Datei
sein. Sie muss die üblichen Versionsinformationen in ihrern Ressourcen enthalten
(unter Delphi wird das über die Projektoptionen eingestellt).
Setup-Datei:
Dies ist das mit einem Installer (z.B. Inno-Setup) erstellte Installationspaket,
das zum Download bereitgestellt werden soll.
Benutzte Versionsebene:
Hier wird eingestellt, wie die Versionsinformation weiter gegeben werden soll.
Es sind maximal 4 Stufen möglich:
Setup-1, Setup-1.2, Setup1.2.03 oder Setup-1.2.0304
Vorversion behalten:
Hier wird eingestellt, welche im Downloadbereich befindlichen älteren Versionen
gelöscht werden sollen. Wird z.B. Ebene 1 gewählt, werden Setup-Dateien nur
dann erhalten wenn sich die erste Versionstufe ändert (setup-1... auf setup-2..).
Projekt-Präfix:
Hier wird die Projektkennzeichnung für die Bearbeitung der HTML-Vorlagen
eingestellt (siehe).
Hier werden die Zugangsdaten für die verwendeten FTP-Server eingestellt.
Versionsinfo-Datei:
Name der Datei, die die Informationen zur aktuellen Version bereitstellt (siehe unten)
Setup-Datei:
Setup mit Versionsnummer (wird vom Programm erzeugt)
Erstelle Datei mit MD5-Checksumme:
Auswählen, wenn der MD5-Wert in eine Datei "<Setupname>.txt" geschrieben werden soll
Zusätzliche Dateien:
Hier können beliebige Dateien, z.B. mit Update-Informationen ausgewählt werden,
die zum Downlaod bereitgestellt werden sollen. Auf Wunsch kann den Dateien
automatisch das Projekt-Präfix vorangestellt werden.
Verzeichnisse:
Hier können beliebige Verzeichnisse im Windows-Dateisystem ausgewählt werden,
in die die oben genannten Dateien und das Setup kopiert werden sollen. Die
Versionsinformation wird nur in die markierten Verzeichnisse kopiert.
Ziele auf FTP-Server
Hier können beliebige Verzeichnisse auf den oben festgelegten FTP-Servern
ausgewählt werden, in die die Dateien und das Setup kopiert werden sollen. Die
Versionsinformation wird nur in die markierten Verzeichnisse kopiert.
Es werden die weiter unten beschrieben HTML-Vorlagen ausgewählt, die vom vom Programm aktualisiert und per FTP in die ausgewählten Verzeichnisse kopiert werden.
Dabei handelt es sich um eine kleine Textdatei mit 3 Zeilen:
Fest vorgeben muss man nur die 2. Zeile mit dem Downloadpfad, die anderen beiden
Zeilen werden vom Programm eingefügt.
Beispiel:
Es handelt sich dabei um eine gewöhnliche HTML-Seite mit einigen speziellen
Erweiterungen und Platzhaltern. Diese werden benötigt, damit das Programm
VersionCopy an den gewünschten Stellen die aktuellen Informationen einsetzen kann.
Formateinstellungen:
| format-date | = <mode> | 0 - internationales Datumsformat 1 - deutsches Datumsformat 2 - englisches Datumsformat |
||
| decimal-sep | = <char> | Standardmäßig wird als Dezimaltrenner für die Größenangabe (s.u.) der Punkt verwendet. Mit <char> = , wird das auf das Komma umgestellt. |
| pf | Projekt-Präfix (2 Buchstaben, in Versioncopy einstellbar) | |
| name |
= version = date = setup = size = md5 |
Versionsnummer (z.B. 5.1.3) Datum der zur Bereitstellung (z.B. 12.10.2010) Name der Download-Datei (z.B. program-5.1.3.exe) Größe der Download-Datei (z.B. 4,71 MB) MD5-Wert der Download-Datei (z.B. 4981dd3...) |
Der HTML-Datei wird ein Header vorangestellt, der die Informationen für alle Platzhalter enthält:
VersionCopy passt die Werte im Header, die zu dem Projekt-Präfix passen, automatisch an und ersetzt anschließend die Platzhalter im Text durch die aktuellen Werte.
Beispiel:Zur Beschriftung der Buttons und Menüs in Delphi benötigt man kleine Symbolbildchen (Glyphs)
in einer Größe von meisten 16x16. Einige werden mit Delphi zusammen ausgeliefert, andere
findet man im Internet. Es ist aber auch nicht schwer sich selbst solche Bildchen
neu zu erstellen oder aus vorhanden abzuleiten. Mit der Zeit wird die Sammlung immer
größer und unübersichtlicher.
Das Programm GlyphViewer hilft, hier die Übersicht zu behalten. Es stellt alle Bilder
innerhalb eines Verzeichnisses als Buttons dar. Man kann dabei die Effekte (Disabled oder
gedrückt) prüfen und das benötigte Bild über die Zwischenablage in die Delphi-Entwicklungsumgebung
kopieren.
MC-51 ist eine unter Windows laufende Entwicklungsumgebung für Mikrocontroller der 8051-Familie (Siemens, Philips, Atmel, etc.). Die aktuelle Version 5.2 enthält
Das Programm steht in den Sprachen deutsch und englisch zur Verfügung und kann unter Windows 2000/XP, Windows Vista und Windows 7 (32- und 64-Bit) verwendet werden.
Weitere Informationen, Programmbeispiele und Anleitungen für den Aufbaue eines Experimentierboard mit dem Atmel-Controller AT89S8253 findet man auf einer Seite des Instituts für Experimentelle und Angewandte Physik der Uni-Kiel.
Der Atmel-T89C51xx-Controller kann mit diesem Programm über die integr. CAN-Schnittstelle programmiert werden. Es werden folgende CAN-Interfaces mit dem Controller-IC 82C200/SJA1000 unterstützt:
Schaltplan
SMD-Layout
Eagle-Dateien
Mit dem Programm CAN-TERM Vers. 1.23 kann der Datenverkehr auf einem CAN-Bus überwacht werden. Zum Testen können auch Daten gesendet werden. Es werden folgende CAN-Interfaces mit dem Controller-IC 82C200/SJA1000 unterstützt: