[QGIS Commit] r10379 - docs/branches/1.0.0/german/user_guide

svn_qgis at osgeo.org svn_qgis at osgeo.org
Sat Mar 21 16:03:24 EDT 2009


Author: dassau
Date: 2009-03-21 16:03:24 -0400 (Sat, 21 Mar 2009)
New Revision: 10379

Modified:
   docs/branches/1.0.0/german/user_guide/Makefile
   docs/branches/1.0.0/german/user_guide/coding.tex
   docs/branches/1.0.0/german/user_guide/install.tex
   docs/branches/1.0.0/german/user_guide/plugins_writing_in_cpp.tex
   docs/branches/1.0.0/german/user_guide/plugins_writing_in_python.tex
Log:
translation into german


Modified: docs/branches/1.0.0/german/user_guide/Makefile
===================================================================
--- docs/branches/1.0.0/german/user_guide/Makefile	2009-03-21 19:49:11 UTC (rev 10378)
+++ docs/branches/1.0.0/german/user_guide/Makefile	2009-03-21 20:03:24 UTC (rev 10379)
@@ -16,8 +16,8 @@
 
 # Name of latex main file to compile
 # Für deutsche Übersetzung nur des Anwenderteils
-FILE=handbuch
-#FILE=user_guide
+#FILE=handbuch
+FILE=user_guide
 # Path to QGIS source plugin folder for 'make updateicon'
 QGISPLUGINSOURCE=/software/qgis_head/src/plugins
 

Modified: docs/branches/1.0.0/german/user_guide/coding.tex
===================================================================
--- docs/branches/1.0.0/german/user_guide/coding.tex	2009-03-21 19:49:11 UTC (rev 10378)
+++ docs/branches/1.0.0/german/user_guide/coding.tex	2009-03-21 20:03:24 UTC (rev 10379)
@@ -134,8 +134,8 @@
     } ;
 \end{verbatim}
 
-Do not use generic type names that will conflict with other types. e.g. use "UnkownUnit" rather 
-than "Unknown"
+Do not use generic type names that will conflict with other types. e.g. use
+'UnkownUnit' rather than 'Unknown'
 
 \subsection{Global Constants}
 Global constants should be written in upper case underscore separated e.g.:
@@ -212,11 +212,13 @@
 Prefer to put constants first in predicates. 
 
 \begin{verbatim}
-"0 == value" instead of "value == 0"
+'0 == value' instead of 'value == 0'
 \end{verbatim}
 
-This will help prevent programmers from accidentally using "=" when they meant to use "==", which can introduce very subtle 
-logic bugs.  The compiler will generate an error if you accidentally use "=" instead of "==" for comparisons since constants 
+This will help prevent programmers from accidentally using '=' when they
+meant to use '==', which can introduce very subtle 
+logic bugs.  The compiler will generate an error if you accidentally use '='
+instead of '==' for comparisons since constants 
 inherently cannot be assigned values.
 
 \subsubsection{Whitespace Can Be Your Friend}
@@ -378,7 +380,7 @@
 \begin{verbatim}
 svn copy https://svn.qgis.org/repos/qgis/trunk/qgis \
 https://svn.qgis.org/repos/qgis/branches/qgis_newfeature
-svn commit -m "New feature branch"
+svn commit -m 'New feature branch'
 \end{verbatim}
 
 \subsubsection{Merge regularly from trunk to branch}
@@ -412,7 +414,7 @@
 
 \begin{verbatim}
 svn merge -r 6495:6546 https://svn.qgis.org/repos/qgis/trunk/qgis
-svn commit -m "Merged upstream changes from trunk to my branch"
+svn commit -m 'Merged upstream changes from trunk to my branch'
 \end{verbatim}
 
 \subsection{Submitting Patches}
@@ -449,9 +451,11 @@
 
 \subsubsection{Getting your patch noticed}
 QGIS developers are busy folk. We do scan the incoming patches on bug reports but sometimes we miss things. 
-Don't be offended or alarmed. Try to identify a developer to help you - using the ["Project Organigram"] and 
+Don't be offended or alarmed. Try to identify a developer to help you - using
+the 'Project Organigram' and 
 contact them asking them if they can look at your patch. If you dont get any response, you can escalate your 
-query to one of the Project Steering Committee members (contact details also available on the ["Project Organigram"]).
+query to one of the Project Steering Committee members (contact details also
+available on the 'Project Organigram').
 
 \subsubsection{Due Diligence}
 QGIS is licensed under the GPL. You should make every effort to ensure you only submit patches which are 

Modified: docs/branches/1.0.0/german/user_guide/install.tex
===================================================================
--- docs/branches/1.0.0/german/user_guide/install.tex	2009-03-21 19:49:11 UTC (rev 10378)
+++ docs/branches/1.0.0/german/user_guide/install.tex	2009-03-21 20:03:24 UTC (rev 10379)
@@ -1,81 +1,84 @@
 % vim: set textwidth=78 autoindent:
 
-\section{Installation Guide}\label{label_install}
+\section{Installation aus dem Quellcode}\label{label_install}
 
 % when the revision of a section has been finalized,
 % comment out the following line:
 % \updatedisclaimer
 
-The following chapters provide build and installation information for QGIS
-Version \CURRENT. This document corresponds almost to a \LaTeX~ conversion of
-the INSTALL.t2t file coming with the QGIS sources from December, 16th 2008.
+Die folgenden Kapitel stellen Informationen zur Verfügung, wie man die QGIS
+Version \CURRENT aus dem Quellcode bauen und installieren kann. Dieses
+Dokument entspricht in etwa der \LaTeX~ Konvertierung der Datei INSTALL.t2t
+des QGIS Quellcodes vom 16. Dezember 2008.
 
-A current version is also available at the wiki, see:
+Eine aktuelle Version ist im QGIS WIki verfügbar unter:
 \htmladdnormallink{http://wiki.qgis.org/qgiswiki/BuildingFromSource}{http://wiki.qgis.org/qgiswiki/BuildingFromSource}
 
-\subsection{General Build Notes}
-At version 0.8.1 QGIS no longer uses the autotools for building. QGIS, like a
-number of major projects (eg. KDE 4.0), now uses cmake (\htmladdnormallink{http://www.cmake.org}{http://www.cmake.org})
-for building from source. The configure script in this directory simply checks
-for the existence of cmake and provides some clues to build QGIS.
+\subsection{Allgemeine Bemerkungen}
 
-For complete information, see the wiki at:
+Seit der Version 0.8.1 verwendet QGIS cmake zum Kompilieren des Quellcodes
+(\htmladdnormallink{http://www.cmake.org}{http://www.cmake.org}). Das
+'configure' Skript sucht nach cmake und bietet Möglichkeiten, um QGIS zu
+bauen.
+
+Komplette Informationen befinden sich im Wiki unter:
    \htmladdnormallink{http://wiki.qgis.org/qgiswiki/Building\_with\_CMake}{http://wiki.qgis.org/qgiswiki/Building\_with\_CMake}
 
-\subsection{An overview of the dependencies required for building}
+\subsection{Ein Überblick der notwendigen Dependencies}
 
-\textbf{Required build deps}:
+\textbf{Benötigte Kompilier-Dependencies}:
 
 \begin{itemize}
 \item CMake $>$= 2.4.3
 \item Flex, Bison
 \end{itemize}
 
-\textbf{Required runtime deps}:
+\textbf{Benötigte Laufzeit-Dependencies}:
 
 \begin{itemize}
 \item Qt $>$= 4.3.0
-\item Proj $>$= ? (known to work with 4.4.x)
-\item GEOS $>$= 2.2 (3.0 is supported, maybe 2.1.x works too)
-\item Sqlite3 $>$= ? (probably 3.0.0)
+\item Proj $>$= 4.4.x
+\item GEOS $>$= 2.2 (3.0 wird unterstützt, vielleicht geht auch 2.1.x)
+\item Sqlite3 $>$= ? (wahrscheinlich 3.0.0)
 \item GDAL/OGR $>$= 1.4.x
 \end{itemize}
 
-\textbf{Optional dependencies}:
+\textbf{Optionale Dependencies}:
 
 \begin{itemize}
-\item for GRASS plugin - GRASS $>$= 6.0.0
-\item for georeferencer - GSL $>$= ? (works with 1.8)
-\item for postgis support and SPIT plugin - PostgreSQL $>$= 8.0.x
-\item for gps plugin - expat $>$= ? (1.95 is OK)
-\item for mapserver export and PyQGIS - Python $>$= 2.3 (2.5+ preferred)
-\item for PyQGIS - SIP $>$= 4.5, PyQt $>$= must match Qt version
+\item für das GRASS Plugin - GRASS $>$= 6.0.0
+\item für den georeferencer - GSL $>$= ? (1.8)
+\item für PostGIS Support und das SPIT Plugin - PostgreSQL $>$= 8.0.x
+\item für GPS Plugin - expat $>$= ? (1.95 ist OK)
+\item für Mapserver Export und PyQGIS - Python $>$= 2.3 (2.5+ bevorzugt)
+\item für PyQGIS - SIP $>$= 4.5, PyQt $>$= muss zur Qt Version passen
 \end{itemize}
 
-\textbf{Recommended runtime deps}:
+\textbf{Empfohlene Laufzeit-Dependencies}:
 
 \begin{itemize}
-\item for gps plugin - gpsbabel
+\item für GPS Plugin - gpsbabel
 \end{itemize}
 
-\section{Building under windows using msys}\label{sec:install_windows}
-\textbf{Note:} For a detailed account of building all the dependencies yourself you 
-can visit Marco Pasetti's website here:
+\section{Kompilieren unter MS Windows mit MSYS}\label{sec:install_windows}
+\textbf{Note:} Für mehr Informationen besuchen Sie Marco Pasetti's Webseite:
 
 \htmladdnormallink{http://www.webalice.it/marco.pasetti/qgis+grass/BuildFromSource.html}{http://www.webalice.it/marco.pasetti/qgis+grass/BuildFromSource.html}
 
-Read on to use the simplified approach with pre-built libraries...
+Lesen Sie weiter für die vereinfachte Variante mit bereits kompilierten
+Bibliotheken...
 
 \subsection{MSYS:}
-MSYS provides a unix style build environment under windows. We have created a
-zip archive that contains just about all dependencies.
+MSYS bietet eine UNIX-ähnliche Kompilierumgebung unter Windows. Wir haben ein
+ZIP-File mit allen Dependencies erstellt:
 
-Get this: 
-
 \htmladdnormallink{http://download.osgeo.org/qgis/win32/msys.zip}{http://download.osgeo.org/qgis/win32/msys.zip}
 
-and unpack to c:$\backslash$msys
+entpacken Sie es unter C:$\backslash$msys
 
+Wenn Sie die MSYS selbst erstellen wollen, finden Sie Informationen dazu
+auch in diesem Dokument.
+
 If you wish to prepare your msys environment yourself rather than using 
 our pre-made one, detailed instructions are provided elsewhere in this
 document.
@@ -105,7 +108,7 @@
 C:$\backslash$Qt$\backslash$4.3.0$\backslash$bin$\backslash$qtvars.bat compile\_debug
 
 \textbf{Note:} there is a problem when compiling debug version of Qt 4.3, the script ends with
-this message  "mingw32-make: *** No rule to make target `debug'.  Stop.". To 
+this message  "mingw32-make: *** No rule to make target 'debug'.  Stop. To 
 compile the debug version you have to go out of src directory and execute the
 following command:
 
@@ -640,7 +643,7 @@
 of Ubuntu. This is not activated by default, so you need to activate it:
 
 1. Edit your /etc/apt/sources.list file.  
-2. Uncomment the all the lines starting with "deb"
+2. Uncomment the all the lines starting with 'deb'
 
 Also you will need to be running (K)Ubuntu 'edgy' or higher in order for 
 all dependencies to be met.

Modified: docs/branches/1.0.0/german/user_guide/plugins_writing_in_cpp.tex
===================================================================
--- docs/branches/1.0.0/german/user_guide/plugins_writing_in_cpp.tex	2009-03-21 19:49:11 UTC (rev 10378)
+++ docs/branches/1.0.0/german/user_guide/plugins_writing_in_cpp.tex	2009-03-21 20:03:24 UTC (rev 10379)
@@ -1,65 +1,70 @@
 % vim: set textwidth=78 autoindent:
 
-\section{Writing a QGIS Plugin in C++}\label{cpp_plugin}
+\section{Ein QGIS Plugin in C++ schreiben}\label{cpp_plugin}
 
 % when the revision of a section has been finalized, 
 % comment out the following line:
 % \updatedisclaimer
 
-In this section we provide a beginner's tutorial for writing a simple QGIS
-C++ plugin. It is based on a workshop held by Dr. Marco Hugentobler. 
+In diesem Kapitel wird ein Anfängertutorial vorgestellt, um ein einfaches
+QGIS Plugin in C++ zu schreiben. Es basiert auf einem Beispiel von Dr. Marco
+Hugentobler.
 
-QGIS C++ plugins are dynamically linked libraries (.so or .dll). They are
-linked to QGIS at runtime when requested in the plugin manager and extend the
-functionality of QGIS. They have access to the QGIS GUI and can be devided
-into core and external plugins.
+QGIS C++ Plugins sind dynamisch eingebundene Bibliotheken (.so oder .dll).
+Sie werden in QGIS zur Laufzeit eingebunden, wenn sie durch den Plugin
+Manager aktiviert werden und erweitern die QGIS Funktionalitäten. Die Plugins
+haben Zugriff auf die QGIS GUI und können in Kern- und externe Plugins
+unterteilt werden.
 
-Technically the QGIS plugin manager looks in the lib/qgis directory for all
-.so files and loads them when it is started. When it is closed they are
-unloaded again, except the ones with a checked box. For newly loaded plugins,
-the \method{classFactory} method creates an instance of the plugin class and
-the \method{initGui} method of the plugin is called to show the GUI elements
-in the plugin menu and toolbar. The \method{unload()} function of the plugin
-is used to remove the allocated GUI elements and the plugin class itself is
-removed using the class destructor. To list the plugins, each plugin must
-have a few external 'C' functions for description and of course the
-\method{classFactory} method.
+Technisch gesehen, schaut der QGIS Plugin Manager unter GNU/Linux im Order
+\filename{lib/qgis} nach allen .so Dateien und lädt diese, wenn der Plugin
+Manager gestartet wird. Wenn dieser beendet wird, werden auch die .so Dateien
+wieder entladen, ausser denen, die mit dem Kontrollkästchen aktiviert wurden.
+Bei neu geladenen Plugins erstellt die \method{classFactory} Methode eine
+Instanz der Plugin Klasse und die \method{initGui} Methode wird gestartet, um
+die GUI Elemente in der Menü- und Werkzeugleiste anzuzeigen. Die
+\method{unload()} Funktion des Plugins wird verwendet, um die GUI Elemente
+wieder zu löschen. Die Plugin Klasse wird mit Hilfe des 'class destructors'
+gelöscht. Um eine Liste der Plugins zu erstellen, muss jedes Plugin ein paar
+externe 'C' Funktionen für die Beschreibung und natürlich auch die
+\method{classFactory} Methode enthalten.
 
-\subsection{Why C++ and what about licensing}
+\subsection{Warum C++ und wie sieht es mit der Lizensierung aus}
 
-QGIS itself is written in C++, so it also makes sense to write plugins in C++
-as well. It is an object-oriented programming (OOP) language that is viewed
-by many developers as a prefered language for creating large-scale
-applications.
+QGIS ist in C++ geschrieben, daher macht es Sinn auch die Plugins in C++ zu
+schreiben. Es ist eine objektorientierte Sprache (OOP), die von vielen
+Entwicklern für die Programmierung umfangreicher Anwendungen bevorzugt wird. 
 
-QGIS C++ plugins use functionalities of libqgis*.so libraries. As they are
-licensed under GNU GPL, QGIS C++ plugins must be licenced under the GPL, too.
-This means you may use your plugins for any purpose and you are not forced to
-publish them. If you do publish them however, they must be published under
-the conditions of the GPL license. 
+QGIS C++ Plugins verwenden die Funktionalitäten der libqgis*.so Bibliotheken.
+Da diese unter der GNU GPL lizensiert sind, müssen QGIS C++ Plugins auch
+unter der GPL lizensiert werden. Das bedeutet, dass das Plugin für jeglichen
+Zweck verwendet werden kann und nicht publiziert werden muss. Wenn das Plugin
+jedoch veröffentlicht wird, dann muss es unter den Bedingungen der GPL Lizens
+stattfinden. 
 
-\subsection{Programming a QGIS C++ Plugin in four steps}
+\subsection{Ein QGIS C++ Plugin in vier Schritten programmieren}
 
-The example plugin is a point converter plugin and intentionally kept simple. 
-The plugin searches the active vector layer in QGIS, converts all vertices of
-the layer features to point features keeping the attributes and finally
-writes the point features into a delimited text file. The new layer can then
-be loaded into QGIS using the delimited text plugin (see Section
-\ref{label_dltext}).
+Das Beispielplugin dieser Übung konvertiert Punktdaten und ist einfach
+gehalten. Das Plugin sucht nach einem geladenen Vektorlayer in QGIS,
+konvertiert alle vorhandenen Stützpunkte der Vektorobjekte in Punkte
+inklusive der dazugehörigen Attribute und schreibt diese als ACSII-Tabelle in
+eine Datei. Der neue Layer kann dann in QGIS mit dem 'getrennter Text' Plugin
+geladen werden (siehe \ref{label_dltext}).
 
-\minisec{Step 1: Make the plugin manager recognise the plugin}
+\minisec{Schritt 1: Erkennen des neuen Plugins im Plugin Manager}
 
-As a first step we create the \filename{QgsPointConverter.h} and
-\filename{QgsPointConverter.cpp} files. Then we add virtual methods inherited
-from QgisPlugin (but leave them empty for now), create necessary external 'C'
-methods and a .pro file, which is a Qt mechanism to easily create Makefiles.
-Then we compile the sources, move the compiled library into the plugin folder
-and load it in the QGIS plugin manager.
+Zu Beginn werden die beiden Dateien \filename{QgsPointConverter.h} und
+\filename{QgsPointConverter.cpp} erstellt. Dann werden ein paar
+virtuelle Methoden, vererbt von QgisPlugin, ergänzt (erstmal aber offen
+gelassen), notwendige externe 'C' Methoden und eine .pro Datei, die ein Qt
+Mechanismus darstellen, um auf einfache Art Makefiles zu erstellen. Dann
+kompileren wir die Quellen, verschieben die kompilierte Bibliothek in den
+Pluginordner und laden es mit dem Plugin Manager.  
 
-\textbf{a) Create new pointconverter.pro file and add}:
+\textbf{a) Erstellen Sie die Datei pointconverter.pro und fügen hinzu}:
 
 \begin{verbatim}
-#base directory of the qgis installation
+#Basisordner der QGIS Installation
 QGIS_DIR = /home/marco/src/qgis
 
 TEMPLATE = lib
@@ -74,7 +79,7 @@
 DEFINES += GUI_EXPORT= CORE_EXPORT=
 \end{verbatim}
 
-\textbf{b) Create new qgspointconverterplugin.h file and add}:
+\textbf{b) Erstellen Sie die Datei qgspointconverterplugin.h und fügen hinzu}:
 
 \begin{verbatim}
 #ifndef QGSPOINTCONVERTERPLUGIN_H
@@ -82,8 +87,9 @@
 
 #include "qgisplugin.h"
 
-/**A plugin that converts vector layers to delimited text point files.
- The vertices of polygon/line type layers are converted to point features*/
+/**Ein Plugin, um Vertices eines Layers in eine ASCII-Tabelle zu schreiben.
+Die Vertices einer Vektorlinie oder -fläche werden in eine ASCII-Tabelle
+konvertiert.*/
 class QgsPointConverterPlugin: public QgisPlugin
 {
   public:
@@ -98,7 +104,8 @@
 #endif
 \end{verbatim}
 
-\textbf{c) Create new qgspointconverterplugin.cpp file and add}:
+\textbf{c) Erstellen Sie die Datei qgspointconverterplugin.cpp und fügen
+hinzu}:
 
 \begin{verbatim}
 #include "qgspointconverterplugin.h"
@@ -158,14 +165,15 @@
 }
 \end{verbatim}
 
-\minisec{Step 2: Create an icon, a button and a menu for the plugin}
+\minisec{Schritt 2: Ein Icon, Button und Menüeintrag für das Plugin erstellen}
 
-This step includes adding a pointer to the QgisInterface object in the plugin
-class. Then we create a QAction and a callback function (slot), add it to the
-QGIS GUI using QgisIface::addToolBarIcon() and QgisIface::addPluginToMenu()
-and finally remove the QAction in the \method{unload()} method.
+An dieser Stelle fügen Sie einen Pointer zum QgisInterface Objekt in der
+Plugin Klasse hinzu. Danach erstellen Sie eine QAction und eine 'callback'
+Funktion (slot), fügen es der QGIS GUI mit Hilfe von
+QgisIface::addToolBarIcon() anQgisInterfaced QgisIface::addPluginToMenu()
+hinzu und löschen QAction schließlich in der \method{unload()} Methode.
 
-\textbf{d) Open qgspointconverterplugin.h again and extend existing content to}:
+\textbf{d) Öffnen Sie qgspointconverterplugin.h wieder und ergänzen}:
 
 \begin{verbatim}
 #ifndef QGSPOINTCONVERTERPLUGIN_H
@@ -176,8 +184,9 @@
 
 class QAction;
 
-/**A plugin that converts vector layers to delimited text point files.
- The vertices of polygon/line type layers are converted to point features*/
+/**Ein Plugin, um Vertices eines Layers in eine ASCII-Tabelle zu schreiben.
+Die Vertices einer Vektorlinie oder -fläche werden in eine ASCII-Tabelle
+konvertiert.*/
 class QgsPointConverterPlugin: public QObject, public QgisPlugin
 {
   Q_OBJECT
@@ -199,7 +208,7 @@
 #endif
 \end{verbatim}
 
-\textbf{e) Open qgspointconverterplugin.cpp again and extend existing content to}:
+\textbf{e) Öffnen Sie qgspointconverterplugin.cpp wieder und ergänzen}:
 
 \begin{verbatim}
 #include "qgspointconverterplugin.h"
@@ -277,15 +286,16 @@
 \end{verbatim}
 
 
-\minisec{Step 3: Read point features from the active layer and write to text file}
+\minisec{Schritt 3: Lese Punkte des aktiven Layers und schreibe sie in eine
+ASCII-Tabelle}
 
-To read the point features from the active layer we need to query the current
-layer and the location for the new text file. Then we iterate through all
-features of the current layer, convert the geometries (vertices) to points,
-open a new file and use QTextStream to write the x- and y-coordinates
-into it.
+Um die Vertices aus dem aktiven Layer zu lesen, muss der aktive Layer und der
+Ort für die zu erstellende ASCII-Tabelle abgefragt werden. Dann werden nach
+und nach alle Objekte des Vektorlayers durchsucht, die Vertices in Punkte
+umgewandelt, eine neue Datei geöffnet und mit Hilfe von QTextStream die X-
+und Y-Koordinaten hineingeschrieben. 
 
-\textbf{f) Open qgspointconverterplugin.h again and extend existing content to}
+\textbf{f) Öffnen Sie qgspointconverterplugin.h wieder und ergänzen}
 
 \begin{verbatim}
 class QgsGeometry;
@@ -307,7 +317,7 @@
 		  QTextStream& stream) const;
 \end{verbatim}
 
-\textbf{g) Open qgspointconverterplugin.cpp again and extend existing content to}:
+\textbf{g) Öffnen Sie qgspointconverterplugin.cpp wieder und ergänzen}:
 
 \begin{verbatim}
 #include "qgsgeometry.h"
@@ -508,16 +518,16 @@
 }
 \end{verbatim}
 
-\minisec{Step 4: Copy the feature attributes to the text file}
+\minisec{Step 4: Kopieren der Objektattribute in die ASCII-Tabelle}
 
-At the end we extract the attributes from the active layer using
-QgsVectorDataProvider::fieldNameMap(). For each feature we extract the field
-values using QgsFeature::attributeMap() and add the contents comma separated
-behind the x- and y-coordinates for each new point feature. For this step
-there is no need for any furter change in \filename{qgspointconverterplugin.h} 
+Zum Schluss extrahieren Sie die Attribute aus dem aktiven Layer mit
+QgsVectorDataProvider::fieldNameMap(). Für jedes Objekt werden die Werte
+mit QgsFeature::attributeMap() extrahiert und der Inhalt Komma-separiert
+hinter die X- und Y-Koordinaten geschrieben. Für diesen Schritt ist es nicht
+notwendig, weitere Veränderungen in \filename{qgspointconverterplugin.h}
+vorzunehmen.
 
-\textbf{h) Open qgspointconverterplugin.cpp again and extend existing content
-to}:
+\textbf{h) Öffnen Sie qgspointconverterplugin.cpp wieder und ergänzen}:
 
 \begin{verbatim} 
 #include "qgspointconverterplugin.h"
@@ -816,19 +826,20 @@
 
 \end{verbatim}
 
-\subsection{Further information}
+\subsection{Weiterführende Informationen}
 
-As you can see, you need information from different sources to write QGIS C++
-plugins. Plugin writers need to know C++, the QGIS plugin interface as
-well as Qt4 classes and tools. At the beginning it is best to learn from
-examples and copy the mechanism of existing plugins. 
+Wie zu sehen, brauchen Sie verschiedene Informationen aus unterschiedlichen
+Quellen, um ein QGIS Plugin zu schreiben. Programmierer müssen C++ kennen,
+die QGIS Programmierschnittstelle sowie die QT4 Klassen und Werkzeuge. Zu
+Beginn ist es am einfachsten, von vorhandenen Beispielen zu lernen und
+existierende Mechanismen von bereits existierenden Plugins zu kopieren. 
 
-There is a a collection of online documentation that may be usefull for
-QGIS C++ programers:
+Es gibt eine Vielzahl von Online Dokumentationen, die nützlich für QGIS C++
+Programmierer sind:
 
 \begin{itemize}
 \item QGIS Plugin Debugging: \url{http://wiki.qgis.org/qgiswiki/DebuggingPlugins}
-\item QGIS API Documentation: \url{http://svn.qgis.org/api_doc/html/}
-\item Qt documentation: \url{http://doc.trolltech.com/4.3/index.html}
+\item QGIS API Dokumentation: \url{http://svn.qgis.org/api_doc/html/}
+\item Qt Dokumentation: \url{http://doc.trolltech.com/4.3/index.html}
 \end{itemize}
 

Modified: docs/branches/1.0.0/german/user_guide/plugins_writing_in_python.tex
===================================================================
--- docs/branches/1.0.0/german/user_guide/plugins_writing_in_python.tex	2009-03-21 19:49:11 UTC (rev 10378)
+++ docs/branches/1.0.0/german/user_guide/plugins_writing_in_python.tex	2009-03-21 20:03:24 UTC (rev 10379)
@@ -1,117 +1,124 @@
 % vim: set textwidth=78 autoindent:
 
-\section{Writing a QGIS Plugin in Python}
+\section{Ein QGIS Plugin in Python schreiben}
 
 % when the revision of a section has been finalized,
 % comment out the following line:
 % \updatedisclaimer
 
-In this section you find a beginner's tutorial for writing a QGIS Python
-plugins. It is based on the workshop "Extending the Functionality of QGIS
-with Python Plugins" held at FOSS4G 2008 by Dr. Marco Hugentobler, Dr. Horst
-D\"uster and Tim Sutton. 
+In diesem Kapitel wird beispielhaft vorgestellt, wie man ein Python Plugin in
+QGIS schreibt. Das Beispiel basiert auf einem Workshop von der FOSS4G 2008
+und wurde von Dr. Marco Hugentobler, Dr. Horst Düster und Tim Sutton erstellt.
 
-Apart from writing a QGIS Python plugin, it is also possible to use PyQGIS
-from a python command line console which is mainly interesting for debugging
-or to write standalone applications in Python with their own user interfaces
-using the functionality of the QGIS core library.
+Abgesehen von der Möglichkeit, QGIS Python Plugins zu schreiben, kann PyQGIS
+auch in der Kommandozeile verwendet werden, was überwiegend interessant für
+Debugging oder das Erstellen eigenständiger Applikationen in Python zu
+erstellen ist und darin die Funktionalitäten der QGIS Kernbibliotheken zu
+nutzen. 
 
-\subsection{Why Python and what about licensing}
+\subsection{Warum Python und wie sieht es mit der Lizensierung aus}
 
-Python is a scripting language which was designed with the goal of being easy
-to program. It has a mechanism that automatically releases memory that is no
-longer used (garbagge collector). A further advantage is that many programs
-that are written in C++ or Java offer the possibility to write extensions in
-Python, e.g. OpenOffice or Gimp. Therefore it is a good investment of time to
-learn the Python language.
+Python ist eine Skriptsprache, die einfach zu programmieren ist. Es besitzt
+einen Mechanismus, der automatisch nicht mehr benötigten Speicher freigibt
+(garbage collector). Ein weiterer Vorteil besteht darin, dass viele
+Programme, die in C++ oder Java geschrieben sind, die Möglichkeit bieten,
+Erweiterungen in Python zu schreiben, z.B. OpenOffice or Gimp. Daher ist es
+eine gute Investition, Python zu lernen. 
 
-PyQGIS plugins use functionality of libqgis\_core.so and libqgis\_gui.so. As
-both are licensed under GNU GPL, QGIS Python plugins must be licenced under the
-GPL, too. This means you may use your plugins for any purpose and you are not
-forced to publish them. If you do publish them however, they must be
-published under the conditions of the GPL license. 
+PyQGIS Plugins nutzen die Funktionalitäten der libqgis\_core.so und
+libqgis\_gui.so Bibliotheken. Da beide unter der GNU GPL lizensiert sind,
+müssen auch Python Plugins unter der GPL lizensiert werden, wenn sie auf
+diese Bibliotheken zugreifen. Das bedeutet, Sie können die Plugins für jeden
+Zweck verwenden und sind nicht dazu verpflichtet sie zu veröffentlichen.
+Falls Sie sie aber veröffentlichen wollen, dann nur unter den
+Lizensbedingungen der GNU GPL.
 
-\subsection{What needs to be installed to get started}
+\subsection{Welche Software muss vor dem Start installiert werden}
 
-On the lab computers, everything for the workshop is already installed. If
-you program Python plugins at home, you will need the following libraries and
-programs:
+Wenn Sie ein Python Plugin programmieren möchten, muss folgende Software auf
+ihrem Rechner installiert sein:
 
 \begin{itemize}
 \item QGIS
-\item Python
+\item Python >= 2.5
 \item Qt
-\item PyQT
+\item PyQt
 \item PyQt development tools
 \end{itemize}
 
-If you use Linux, there are binary packages for all major distributions. For
-Windows, the PyQt installer already contains Qt, PyQt and the PyQt
-development tools.
+Unter GNU/Linux gibt es Binärpakete für fast jede Distribution. Unter MS
+Windows enthält der PyQt Installer bereits QT, PyQt und die PyQt development
+tools.
 
-\subsection{Programming a simple PyQGIS Plugin in four steps}\label{subsec:pyfoursteps}
+\subsection{Ein einfaches PyQGIS Plugin in vier Schritten schreiben}\label{subsec:pyfoursteps}
 
-The example plugin is intentionally kept simple. It adds a button to the menu
-bar of QGIS. If the button is clicked, a file dialog appears where the user
-may load a shape file.
+Das Beispiel ist einfach gehalten. Es fügt einen Eintrag in die Menüleiste von
+QGIS ein und ein Icon in die Werkzeugleiste. Wenn das Icon angeklickt wird,
+öffnet sich ein Dialog, über den man ein Shapefile laden kann.  
 
-For each python plugin, a dedicated folder that contains the plugin files
-needs to be created. By default, QGIS looks for plugins in
-two locations: \$QGIS\_DIR/share/qgis/python/plugins and \$HOME/.qgis/python/plugins.
-Note that plugins installed in the latter location are only visible for one user.
+Für jedes Python Plugin wird ein eigener Ordner erstellt. Standardmäßig sucht
+QGIS unter GNU/Linux an den Orten \$QGIS\_DIR/share/qgis/python/plugins und
+\$HOME/.qgis/python/plugins. Beachten Sie, dass Plugins im Homeverzeichnis
+nur von dem jeweiligen Benutzer sichtbar sind.
 
-\minisec{Step 1: Make the plugin manager recognise the plugin}
+\minisec{Schritt 1: Erkennen des neuen Plugins im Plugin Manager}
 
-Each Python plugin is contained in its own directory. When QGIS starts up it
-will scan each OS specific subdirectory and initialize any plugins it finds. 
+Jedes Python Plugin liegt in einem eigenen Ordner. Wenn QGIS gestartet wird,
+werden die entsprechenden Ordner durchsucht und alle darin enthaltenen
+Plugins initialisiert.
 
 \begin{itemize}
-\item \nix{Linux and other unices}:\\
+\item \nix{GNU/Linux und andere Unices}:\\
 ./share/qgis/python/plugins \\
 /home/\$USERNAME/.qgis/python/plugins
 \item \osx{Mac OS X}:\\
 ./Contents/MacOS/share/qgis/python/plugins \\
 /Users/\$USERNAME/.qgis/python/plugins
-\item \win{Windows}:\\
+\item \win{MS Windows}:\\
 C:\textbackslash Program Files\textbackslash QGIS\textbackslash python\textbackslash plugins \\
 C:\textbackslash Documents and Settings\textbackslash\$USERNAME\textbackslash .qgis\textbackslash python\textbackslash plugins
-
 \end{itemize}
 
-Once that's done, the plugin will show up in the
-\dropmenuopttwo{mActionShowPluginManager}{Plugin Manager...}
+Danach wird das Plugin im \dropmenuopttwo{mActionShowPluginManager}{Plugin
+Manager} angezeigt.
 
-\begin{Tip}\caption{\textsc{Two QGIS Python Plugin folders}}
-\qgistip{There are two directories containing the python plugins. \$QGIS\_DIR/share/qgis/python/plugins
-is designed mainly for the core plugins while \$HOME/.qgis/python/plugins for easy installation of the external plugins. Plugins in the home location are only visible for one user but also mask the core plugins with the same name, what can be used to provide main plugin updates
+\begin{Tip}\caption{\textsc{Zwei QGIS Python Plugin Ordner}}
+\qgistip{Es gibt zwei Ordner, die Python Plugins enthalten können:
+\$QGIS\_DIR/share/qgis/python/plugins ist überwiegend für Kernplugins
+vorgesehen, während \$HOME/.qgis/python/plugins für die Installation externer
+Plugins verwendet wird. Plugins im Homeverzeichnis sind nur für den
+jeweiligen Benutzer sichtbar und maskieren Kernplugins mit demselben Namen.
+Dies kann verwendet werden, um Kernplugins upzudaten.
 }
 \end{Tip}
 
-To provide the neccessary information for QGIS, the plugin needs to implement
-the methods \method{name()}, \method{description()}, \method{version()},
-\method{qgisMinimumVersion()} and \method{authorName()} which return descriptive strings.
-The \method{qgisMinimumVersion()} should return a simple form, for example ``1.0``. A plugin also needs a method
-\method{classFactory(QgisInterface)} which is called by the plugin manager to create
-an instance of the plugin. The argument of type QGisInterface is used by the
-plugin to access functions of the QGIS instance. We are going to work with
-this object in step 2.  
+Um die notwendigen Informationen für QGIS bereitzustellen, müssen im Plugin
+folgende Methoden integriert werden, die dann entsprechende, beschreibende
+Texte zurückgeben: \method{name()}, \method{description()},
+\method{version()}, \method{qgisMinimumVersion()} and \method{authorName()}.
+Ein Plugin benötigt auch die Methode \method{classFactory(QgisInterface)},
+welche durch den Plugin Manager aufgerufen wird, um eine Instanz des Plugins
+zu starten. Das Argument des Typs QGisInterface wird verwendet, um auf
+Funktionalitäten zuzugreifen. Es wird in Schritt 2 integriert. 
 
-Note that, in contrast to other programing languages, indention is very
-important. The Python interpreter throws an error if it is not correct.
+Beachten Sie, dass im Gegensatz zu anderen Programmiersprachen, das Einrücken
+ist sehr wichtig. Der Python Interpreter zeigt eine Fehlermeldung, wenn es
+nicht korrekt ist. 
 
-For our plugin we create the plugin folder 'foss4g\_plugin' in
-\filename{\$HOME/.qgis/python/plugins}. Then we add two new textfiles into this
-folder, \filename{foss4gplugin.py} and \filename{\_\_init\_\_.py}.
+Für das Beispielplugin soll ein Ordner \filename{foss4g\_plugin} im
+Verzeichnis \filename{\$HOME/.qgis/python/plugins} erstellt werden. Danach
+werden darin zwei neue Dateien \filename{foss4gplugin.py} und
+\filename{\_\_init\_\_.py} ergänzt.
 
-The file \filename{foss4gplugin.py} contains the plugin class:
+Die Datei \filename{foss4gplugin.py} enthält die Plugin Klasse:
 
 \begin{verbatim}
 # -*- coding: utf-8 -*-
-# Import the PyQt and QGIS libraries
+# Importiere die PyQt und QGIS Bibliotheken
 from PyQt4.QtCore import *
 from PyQt4.QtGui import *
 from qgis.core import *
-# Initialize Qt resources from file resources.py
+# Initialisiere Qt Ressourcen aus der Datei resources.py
 import resources
 
 class FOSS4GPlugin:
@@ -127,11 +134,11 @@
   print 'Unloading plugin'
 \end{verbatim}
 
-The file \filename{\_\_init\_\_.py} contains the methods \method{name()},
-\method{description()}, \method{version()}, \method{qgisMinimumVersion()}
-and \method{authorName()} and \method{classFactory}. As
-we are creating a new instance of the plugin class, we need to import the
-code of this class:
+Die Datei \filename{\_\_init\_\_.py} enthält die Methoden  \method{name()},
+\method{description()}, \method{version()}, \method{qgisMinimumVersion()},
+\method{authorName()} und \method{classFactory}. Da eine neue Instanz der
+Plugin Klasse erstellt wird, muss der Quelltext dieser Klasse importiert
+werden.
 
 \begin{verbatim}
 # -*- coding: utf-8 -*-
@@ -150,32 +157,35 @@
   return FOSS4GPlugin(iface)
 \end{verbatim}
 
-At this point the plugin already the neccessary infrastructure to appear in
-the QGIS \dropmenuopttwo{mActionShowPluginManager}{Plugin Manager...} to be
-loaded or unloaded. 
+An dieser Stelle hat das Plugin bereits alles, um im
+\dropmenuopttwo{mActionShowPluginManager}{Plugin Manager} geladen und
+entladen zu werden.
 
-\minisec{Step 2: Create an Icon for the plugin}
+\minisec{Schritt 2: Ein Icon für das Plugin erstellen}
 
-To make the icon graphic available for our program, we need a so-called
-resource file. In the resource file, the graphic is contained in hexadecimal
-notation. Fortunately, we don't need to care about its representation because
-we use the pyrcc compiler, a tool that reads the file
-\filename{resources.qrc} and creates a resource file. 
+Um das Icon verfügbar zu machen, muss eine sogenannte resource Datei erstellt
+werden. In der \filename{resource} Datei wird die Grafik als hexadezimal
+Angabe abgelegt. Um die Darstellung kümmert sich der pyrcc Compiler, der die
+Datei \filename{resources.qrc} ausliest und die resource Datei erstellt.
 
-The file \filename{foss4g.png} and the \filename{resources.qrc} we use in
-this little workshop can be downloaded from
-\url{http://karlinapp.ethz.ch/python\_foss4g}. Move these 2 files into the
-directory of the example plugin
-\filename{\$HOME/.qgis/python/plugins/foss4g\_plugin} and enter there: pyrcc4 -o
-resources.py resources.qrc.
+Die Datei \filename{foss4g.png} und die \filename{resources.qrc} Datei können
+von der URL \url{http://karlinapp.ethz.ch/python\_foss4g} heruntergeladen
+werden. Verschieben Sie die Dateien in den Ordner
+\filename{\$HOME/.qgis/python/plugins/foss4g\_plugin} und geben Sie den
+Befehl ein: 
 
-\minisec{Step 3: Add a button and a menu}
+\begin{verbatim}
+pyrcc4 -o resources.py resources.qrc
+\end{verbatim}
 
-In this section, we implement the content of the methods \method{initGui()} and
-\method{unload()}. We need an instance of the class \classname{QAction} that executes the
-\method{run()} method of the plugin. With the action object, we are then able to
-generate the menu entry and the button:
+\minisec{Schritt 3: Ein neues Icon und einen Menüeintrag hinzufügen}
 
+In diesem Abschnitt fügen wir den Inhalt der Methoden \method{initGui()} und
+\method{unload()} ein. Wir benötigen eine Instanz der Klasse
+\classname{QAction}, welche die \method{run()} Methode des Plugins startet.
+Mit dem action Objekt ist es möglich, den Menüeintrag und das Icon zu
+erstellen: 
+
 \begin{verbatim}
 import resources
 
@@ -196,17 +206,18 @@
     self.iface.removeToolBarIcon(self.action)
 \end{verbatim}
 
-\minisec{Step 4: Load a layer from a shape file}
+\minisec{Schritt 4: Das Laden eines Shapefiles}
 
-In this step we implement the real functionality of the plugin in the
-\method{run()} method. The Qt4 method \method{QFileDialog::getOpenFileName}
-opens a file dialog and returns the path to the chosen file. If the user
-cancels the dialog, the path is a null object, which we test for. We then
-call the method \method{addVectorLayer} of the interface object which loads
-the layer. The method only needs three arguments: the file path, the name of
-the layer that will be shown in the legend and the data provider name. For
-shapefiles, this is 'ogr' because QGIS internally uses the OGR library to
-access shapefiles:
+An dieser Stelle bauen wir die eigentliche Funktionalität des Plugins in die
+\method{run()} Methode ein. Die Qt4 Methode
+\method{QFileDialog::getOpenFileName} öffnet einen Dateidialog und gibt den
+Pfad zur ausgewählten Datei zurück. Wenn der Benutzer den Dialog abbricht,
+ist der Pfad ein Null-Objekt, auf das getestet wird. Danach wird die Methode
+\method{addVectorLayer} aufgerufen, welche den Vektorlayer lädt. Die Methode
+benötigt nur drei Argumente: den Dateipfad, den Namen des Layers der in der
+Legende angezeigt werden soll und den 'Dataprovider' Namen. Für Shapefiles
+ist es 'ogr', da QGIS intern die OGR-Bibliothek verwendet, um auf Shapefiles
+zuzugreifen.
 
 \begin{verbatim}
     def run(self):
@@ -218,46 +229,51 @@
       vlayer = self.iface.addVectorLayer(fileName, "myLayer", "ogr")
 \end{verbatim}
 
+\subsection{Das Plugin in ein Repository committen}
 
-\subsection{Committing the plugin to repository}
+Wenn Sie ein Plugin geschrieben haben, das ihrer Meinung nach nützlich für
+andere Anwender ist, können Sie es zum QGIS User-Contributed Repository
+hinzufügen.  
 
-If you have written a plugin you consider to be useful and you want to share with
-other users you're welcome to upload it to the QGIS User-Contributed Repository.
 \begin{itemize}
-\item Prepare a plugin directory containing only necessary files (ensure that there
-is no compiled .pyc files, Subversion .svn directories etc).
-\item Make a zip archive of it, including the directory. Be sure the zip file
-name is exactly the same as the directory inside (except the .zip extension of course).
-In other case the Plugin Installer won't be able to relate the available plugin with its
-locally installed instance.
-\item Upload it to the repository: \url{http://pyqgis.org/admin/contributed} (you
-will need to register at first time). Please pay attention when filling the form.
-Especially the Version Number field is often filled wrongly what confuses the Plugin
-Installer and causes false notifications of available updates.
+\item Bereiten Sie einen Plugin Ordner nur mit den notwendigen Dateien vor.
+(Stellen Sie sicher, dass keine vorkompilierte .pyc, Subversion .svn oder
+ähnliche Dateien dabei sind.)
+\item Erstellen Sie daraus einen ZIP-File mit dem Ordner. Stellen Sie sicher,
+dass der ZIP-File denselben Namen trägt, wie der Ordner darin (ohne die .zip
+Endung). Ansonsten ist der Plugin Installer nicht in der Lage, das Plugin mit
+seiner lokal installierten Instanz zu verbinden.
+\item Laden Sie das Plugin in das Repository:
+\url{http://pyqgis.org/admin/contributed} (Sie müssen sich zuerst
+registrieren). Achten Sie bitte darauf, wenn Sie das Anmeldeformular
+ausfüllen. Besonders ds Feld 'Version Number' ist oft falsch ausgefüllt,
+verwirrt dann den Plugin Installer und führt zu fehlerhaften Anmerkungen über
+vorhandene Updates.
 \end{itemize}
 
-\subsection{Further information}
+\subsection{Weiterführende Informationen}
 
-As you can see, you need information from different sources to write PyQGIS
-plugins. Plugin writers need to know Python and the QGIS plugin interface as
-well as the Qt4 classes and tools. At the beginning it is best to learn from
-examples and copy the mechanism of existing plugins. Using the QGIS plugin
-installer, which itself is a Python plugin, it is possible to download a lot
-of existing Python plugins and to study their behaviour.
+Man benötigt eine Reihe von Informationen aus unterschiedlichen Quellen, um
+ein PyQGIS Plugin zu schreiben. Man muss python kennen und das QGIS Plugin
+Interface, sowie die Qt4 Klassen und Werkzeuge. Am Anfang ist es am besten,
+wenn man von Beispielen lernt. Mit Hilfe des Plugin Installer, der selbst
+auch ein Python Plugin ist, kann man eine Vielzahl von Plugins herunterladen
+und studieren.
 
-There is a a collection of online documentation that may be usefull for
-PyQGIS programers:
+Als Online Dokumentation sind für PyQGIS Programmierer folgende Links
+nützlich: 
  
 \begin{itemize}
 \item QGIS wiki: \url{http://wiki.qgis.org/qgiswiki/PythonBindings}
-\item QGIS API documentation: \url{http://doc.qgis.org/index.html}
-\item Qt documentation: \url{http://doc.trolltech.com/4.3/index.html}
+\item QGIS API Dokumentation: \url{http://doc.qgis.org/index.html}
+\item Qt Dokumentation: \url{http://doc.trolltech.com/4.3/index.html}
 \item PyQt: \url{http://www.riverbankcomputing.co.uk/pyqt/}
-\item Python tutorial: \url{http://docs.python.org/}
-\item A book about desktop GIS and QGIS. It contains a chapter about PyQGIS
-plugin programing: \url{http://www.pragprog.com/titles/gsdgis/desktop-gis} 
+\item Python Tutorial: \url{http://docs.python.org/}
+\item Ein Buch über Desktop GIS und QGIS. Es enthält ein Kapitel über PyQGIS
+Plugin Programmierung: \url{http://www.pragprog.com/titles/gsdgis/desktop-gis} 
 \end{itemize}
 
-You can also write plugins for QGIS in C++. See Section \ref{cpp_plugin} for
-more information about that.
+Sie können Plugins auch in C++ schreiben. Weitere Informationen dazu finden
+Sie in Kapitel~\ref{cpp_plugin}.
 
+



More information about the QGIS-commit mailing list