# 8.4. Bearbeiten eines Projekts

Nachem Sie ein Projekt mit dem KAppWizard erstellt haben, werden Soe normalerweise das Projekt erweitern, indem Sie Quelldateien, Klassen, Pixmaps, Bilder und was immer Ihr Projekt benötigt, hinzufügen. Nun, editieren eines Projektes bedeutet, daß Sie das Standardprojekt nach der Erstellung mit Hilfe von Menüs und Dialogen Ihren Anforderungen gemäß verändern können. Der nächste Abschnitt beschreibt deshalb, wie Sie bereits existierende Dateien und Klassen hinzufügen und wie Sie neue Dateien erstellen können. Dies ist notwendig um Ihr Projekt zu erstellen, wird aber nicht dem End-User beim Installieren helfen. Deshalb beschreibt der Abschnitt Setzen der Projekt Optionen, wie Sie die Dateieigenschaften, insbesondere für zusätzliche Dateien, die installiert werden sollen, setzen können. Dies betrifft z.B. Dokumentationen oder Pixmaps. Eine weitere Arbeit bei der Wartung Ihres Programms ist das Hinzufügen von Übersetzungen, die die Internationalisierung unterstützen. Dies wird in Übersetzung hinzufügen beschrieben.

Erweitern der Projekt Dokumentation behandelt Fragen, wie ein guter Satz an Dokumentationen für Online Hilfe erstellt werden kann, die dem Endbenutzer die Verwendung Ihres Produktes ermöglicht und Ihn in die Lage versetzt, sich bei Problemen selbst helfen zu können.

Schließlich wird im Abschnitt Projekt Hacking beschrieben, wie Sie das KDevelop Projektmanagment in bestimmten Fällen umgehen können.

## 8.4.1. Hinzufügen und Entfernen von Dateien und Klassen

Das Hinzufügen neuer Dateien wird oft benötigt, wenn Sie Ihre Klassenimplementationsdatei in mehrere Dateien aufteilen wollen. Dann ist es nötig eine neue Datei zu erzeugen, die den Teil der Implementation enthält, den Sie auslagern wollen. Sie können dies erreichen, indem Sie "Neu" aus dem Dateimenü wählen, wodurch der "Datei-Neu" Dialog aufgerufen wird. Dies gibt Ihnen die Möglichkeit, den Dateitypen, den Namen und Speicherort anzugeben. Während Sie den Dateinamen angeben, fügt KDevelop automatisch eine Erweiterung hinzu, Sie können diese Erweiterung jedoch auch noch Ihren Bedürfnissen anpassen. Außerdem können Sie die Vorlagendatei für Quelldateien einbinden, so daß Sie den Kopf nicht von Hand in Ihre Datei kopieren müssen. Des weiteren können Sie entscheiden, ob die Datei dem Projekt hinzugefügt werden soll oder nicht. Denken Sie daran, daß dies nichts mit der späteren Installation zu tun hat; diese Konfiguration erfolgt später innerhalb der Dateivoreinstellungen.

Nachdem die neue Datei erzeugt wurde, werden sowohl die Projektdatei, als auch die zugehörigen Makefile.am's aktualisiert. Zum Hinzufügen einer kompletten Klasse, können Sie mit Hilfe des Klassengenerators eine neue Klasse konstruieren. Dieser wird durch Wahl von "Neue Klasse" aus dem Projektmenü aufgerufen.

Im Falle, daß Sie ein existierendes Projekt haben und bestimmte Klassen hinzufügen wollen, die Sie in Ihrem Projekt wiederverwenden wollen, wählen Sie "Vorhandene Datei(en) hinzufügen..." aus dem Projektmenü. In dem erscheinenden Dialog können Sie wählen, welche Dateien Sie hinzufügen wollen und welches das Zielverzeichnis sein soll. Denken Sie daran, daß die Dateien in das Zielverzeichnis kopiert und dem Projekt hinzugefügt werden. Sie sollten nach dem Hinzufügen Make aufrufen, damit Ihre Dateien dem Erstellungsprozeß hinzugefügt werden. Für den Fall, daß Sie z.B. Pixmaps hinzufügen wollen, die später durch den Endbenutzer installiert werden sollen, sollten Sie die Dateieigenschaften anpassen und den Installationspfad angeben (siehe Setzen der Projekt Optionen).

Um Dateien dem Projekt hinzuzufügen, die sich bereits im Projektverzeichnis befinden, wechseln Sie in die RFV Ansicht, in der Sie zugehörige Dateien an Hand des Icons ausmachen können. Wählen Sie die hinzuzufügende Datei und betätigen Sie die rechte Maustaste um das Popup-Menü zu öffnen. Dann wählen Sie "Datei zum Projekt hinzufügen...".

Sie können auch Dateien vom Projekt entfernen. Dies wird dann nötig, wenn Sie nicht die vom KAppWizard vorgenerierten Dateien verwenden wollen. Beim Entfernen von Dateien haben Sie zusätzlich die Möglichkeit, die Datei komplett von der Festplatte zu entfernen. Zum Entfernen vom Projekt, wählen Sie die Datei im LFV oder im RFV, drücken die rechte Maustaste und wählen "Datei vom Projekt entfernen...". Zum Löschen der Datei wählen Sie "Datei von der Festplatte entfernen...".

## 8.4.2. Setzen der Projekt Optionen

Auf den Dateieigenschaftendialog kann über das Projektmenu oder innerhalb des LFV mit einem Klick der rechten Maustaste zugegriffen werden. Er zeigt die Projektdateien in Gruppen, so wie sie auch im LFV angeordnet sind und zeigt die Dateieigenschaften wie Größe, Dateityp, ob die Datei zum Projekt gehört sowie den Pfad, in den die Datei durch das make install Kommando des Endnutzers installiert wird. Es ist wichtig, diesen Pfad für Dokumentationsdateien und Pixmaps anzugeben, Sie müssen diese Pfade also hier einstellen. Für Standard KDE Pfad Makros sollten Sie in Ihrer Makefile.am nachsehen, wo diese Makros aufgeführt sind.

## 8.4.3. Übersetzung hinzufügen

Da KDE die Konfiguration Ihres Desktops und des Verhaltens Ihrer Anwendungen ermöglicht, haben Sie auch die Möglichkeit die Sprache, die Ihre Anwendung verwendet zu wählen. Dies betrifft die Verwendung der Online-Dokumentation genauso wie das gesamte Aussehen Ihrer Applikation. In Bezug auf die Dokummentationsdateien scheint dies ein triviales Unterfangen zu sein. Sie würden ein Unterverzeichnis mit dem Kürzel der jeweiligen Sprache im `docs` Verzeichnis Ihres Projektes anlegen, z.B ``de/ für Deutsch und die englische Dokumentation in dieses Verzeichnis kopieren. Dann würden Sie die Dokumentation erzeugen und alle Projekt Optionen bezüglich der Installationsverzeichnisse setzen. Dann könnten Sie damit beginnen die sgml Datei zu übersetzen und die Dokumentation neu zu erzeugen. Das ist alles. Für die Anwendung selber scheint dies ein wenig schwieriger zu sein. Wir wollen deshalb hier erklären, wie man die Internationalisierung unterstützt und wie man die Sprachen die man unterstützen möchte einbindet.

Zuerst müssen Sie alle in Ihrer Anwendung sichtbaren Zeichenketten, die also auf Balken oder in Menüs erscheinen, in einem `i18n()` Makro einschließen. Dieses Makro wird durch die Funktion `klocale->translate()` aus der KLocale Klasse ersetzt ist aber wesentlich einfacher zu verwenden. Da das Makro in der `kapp.h` Includedatei definiert ist, müssen Sie Ihrer Quelldatei ein `&#;include &<;kapp.h&>;` hinzufügen. Es sollte auch erwähnt werden, daß obwohl `i18n()` ein Makro ist und Sie deshalb denken, Sie könnten die Originalfunktion verwenden, dies nicht funktionieren wird. Das liegt daran, daß die Zeichenketten, die übersetzt werden sollen, aus den Quelldateien ausgelesen und in der Übersetzungsdatei der Anwendung gespeichert werden (&<;IhreApp&>;.pot im /po Unterverzeichnis). Dies wird vom xgettext Programm gemacht, welches mit `make messages` aus Ihrem Projektverzeichnis heraus aufgerufen wird. Da xgettext das `i18n()` Makro benötigt, wird Sie die Verwendung der Originalfunktion nicht zum Ziel führen.

Für die Übersetzungen selbst, müssen Sie zunächst die message Datei erzeugen, die alle vom `i18n()` Makro eingeschlossenen Zeichenketten aus Ihrem Quellcode enthält. Dies wird durch Auswahl von "Meldungen erstellen und verbinden" aus dem Projektmenü erreicht. Dann müssen die Sprachen, die Ihr Projekt unterstützen soll, hinzugefügt werden. Dazu wählen Sie "Neue Übersetzung hinzufügen..." aus dem Projektmenü. Dies öffnet den Sprachauswahldialog. Wählen Sie eine Sprache und bestätigen Sie mit OK. Es wird eine ASCII Datei erzeugt, die Einträge für den Dateinamen und die Zeilennummer des Vorkommens der Zeichenkette enthält. Sie sehen dann jeweils eine `msgid` Zeile, die die zu übersetzende Zeichenkette enthält, gefolg von einer `msgstr` Zeile. Die `msgstr` Zeile ist leer, bis auf Einträge, die bereits von den KDE Bibliotheken bereitgestellt werden. Die leeren Zeilen müssen von Ihnen mit der entsprechenden Übersetzung ausgefüllt werden.

Sie könnten die Übersetzungen von Hand schreiben. Das KDE-SDK bietet jedoch auch das Programm KTranslator, welches die Dateien bereits auf Ihrem System installierter Programme liest, so daß Sie bereits übersetzte Zeichenketten wiederverwenden können.

Um auf KTranslator zuzugreifen, wählen Sie am einfachsten eine &<;Sprache&>;.po Datei aus dem /po Verzeichnis entweder in LFV oder RFV. Dies öffnet KTranslator und ermöglicht es, auf einfache die Übersetzung durchzuführen. Denken Sie daran das Sie KTranslator konfigurieren müssen, damit der Autorenname, sowie Sprache und Zieldatei korrekt gesetzt sind. Standardmäßig öffnet KTranslator nur die Übersetzungsdatei.

Für alle Übersetzungen verwendet `make` das Programm `msgfmt` für die Formatierungen Ihrer in der ausführbaren Datei verwendeten Meldungen, Sie brauchen sich darüber aber keine Gedanken zu machen; dies wird alles von KDevelop automatisch gemacht.

Weitere Informationen zur Unterstützung der Internationalisierung finden Sie auf http://www.kde.org; eine Menge Leute machen Übersetzungen für Sie. Sie finden dort auch eine Liste mit EMail Adressen der Übersetzer, denen Sie schreiben könnten und die Ihnen dabei helfen können. Lesen Sie auch Der Dialogeditor und The KDevelop Programming Handbook wo Fragen der Internationalisierung auch wieder behandelt werden.

## 8.4.4. Erweitern der Projekt Dokumentation

Alle mit KDevelop erstellten Projekte enthalten eine vorkonfigurierte Dokumentation, die bereits Standardkapitel zu Installation, Projektname und Version, sowie Autorname und Emailadresse beinhaltet. Da KDevelop SGML Schablonen verwendet, ist es sehr einfach die Dokumentation zu einem kompletten Hilfesystem zu erweitern. Alles was Sie dazu tun müssen, ist die sgml Datei, die sich in docs/en unter dem Namen index.sgml befindet, zu editieren. Die Referenz Dokumentation Ihres sgml-tools Paketes kann dem Hilfebrowser hinzugefügt werden, erlaubt direkten Zugriff auf spezielle Tags und enthält eine kurze Beschreibung, wie die Dokumentation zu erweitern ist. SGML hat eine Reihe von Vorteilen und KDE macht häufig Gebrauch von diesem Dokumentationstyp zusammen mit dem ksgml2html Programm. Dieses Werkzeug erzeugt die typische Dokumentation im KDE Stil und sorgt dafür, daß sie schöner aussieht. Trotzdem sind auch die sgmtools alleine schon ausreichend, die html Ausgabe zu erzeugen, die Ihre Applikation beinhaltet. Wenn Sie die Dokumentation mit ksgml2html erzeugen wollen, installieren Sie dieses Programm und rufen "Benutzerhandbuch erstellen" aus dem Projektmenü auf. Der Dokumentationsbrowser ermöglicht die sofortige Kontrolle der Ausgabe, indem Sie entweder "Benutzerhandbuch des Projekts" aus dem Hilfemenü oder das entsprechende Icon aus der DOC Baumansicht wählen. Dadurch können Sie direkt in KDevelop durch die Dokumentation browsen und haben so eine bessere Übersicht über die Fehler, die durch fehlende Tags entstehen.

Nun, während Sie die Dokumentation erweitern, ergibt es sich zwangsläufig, daß zusätzliche Dateien erzeugt werden, die zum Projekt hinzugefügt werden müssen, da jeder `sect` Tag eine neue HTML Datei erzeugt. Die Ausgabe des KAppWizard gehört bereits zum Projekt, so daß Sie sich um die Installationspfade keine Gedanken machen müssen. Worauf Sie achten müssen, sind index-xx.html Dateien bei denen xx größer als 6 ist (die ersten sechs Dateien gehören bereits zum Projekt). Nachdem Sie die Dokumentation erzeugt haben, wechseln Sie zum RFV und kontrollieren Ihr Dokumentationsverzeichnis. Drücken Sie die rechte Maustaste über den Dateien und wählen Sie "hinzufügen". Des weiteren fügt ksgm2html dem Dokumentationsverzeichnis das KDE Logo hinzu. Diese Datei, `logotp3.gif`, müssen Sie ebenfalls dem Projekt hinzufügen. Dann müssen Sie "Dateieigenschaften" entweder aus dem Projektmenü oder mit Hilfe des Popup Menüs in den Ansichten wählen. Der einfachste Weg den Installationspfad zu setzen, ist eine bereits zur Installation vorgesehene Dokumentationsdatei zu wählen, wie `index.html`. Sie sehen, daß "Installieren" angekreuzt ist und "Installationsverzeichnis und Dateiname" bereits ein Ziel enthält. Markieren Sie diesen Eintrag und geben Sie STRG+C ein um den Eintrag in's Clipboard zu kopieren. Dann wählen Sie die Datei die Sie als zu installieren spezifizieren wollen. Markieren Sie "Installieren", dies wird das "Installationsverzeichnis und Dateiname" Feld aktivieren, welches dann schon den Dateinamen enthält. Plazieren Sie den Cursor vor dem Dateinamen und geben Sie STRG+V zum Einfügen des Clipboardinhalts ein. Dies ist die schnellste Methode, den Installationspfad einzugeben. Weitere Informationen zur Angabe von Installationszielen finden Sie im KDevelop Programming Handbook.

## 8.4.5. Projekt Hacking

Wenn Sie mit einem Projekt arbeiten, sollten Sie nie die Projektdatei von Hand bearbeiten. Das würde es KDevelop unter bestimmten Umständen unmöglich machen, das Projekt korrekt zu laden und Änderungen würden eventuell nicht richtig in die Makedateien eingetragen. Zum Ändern irgendwelcher Projekt-Einstellungen, müssen Sie immer die vorhandenen Menüeinträge benutzen, z.B. zum Hinzufügen von Dateien oder das Setzen von Dateieigenschaften. Experten, die nicht zufrieden mit bestimmten Optionen sind, z.B. Linkeroptionen oder zusätzliche Möglichkeiten zur Projektkonfiguration benötigen, können sich in die Makefile.am Makros einarbeiten und alle Änderungen in die Makefile.am, hinter dem mit "KDevelop write area" gekennzeichneten Bereich, eintragen. Da die GNU Werkzeuge diese Kommandos verwenden, können Sie damit die KDevelop Einstellungen überschreiben. Denken Sie daran, daß dies die Verwendung von KDevelop für Änderungen an der Projektkonfiguration verhindert.