calibre - en to de translation catalogue (43 entries)

en: Writing your own plugins to extend calibre's functionality
de: Schreibe Deine eigenen Erweiterungen zur Anpassung von Calibres Funktionalität

en: calibre has a very modular design. Almost all functionality in calibre comes in the form of plugins. Plugins are used for conversion, for downloading news (though these are called recipes), for various components of the user interface, to connect to different devices, to process files when adding them to calibre and so on. You can get a complete list of all the built-in plugins in calibre by going to :guilabel:`Preferences->Advanced->Plugins`.
de: Calibre ist Modular aufgebaut. Fast alle Funktionen in Calibre sind mit Plugin's erstellt. Sie werden zum Umwandeln, zum herunterladen von Newsfeeds (dann nennen wir sie Rezepte - recipes), als Teil der Benutzeroberfläche, zum Verbinden zwischen verschiedenen Komponenten, zum Bearbeiten von Dateien beim Import und so weiter genutzt. Eine komplette Liste aller eingebauten Plugin's sehen Sie unter: guilabel:`Preferences->Advanced->Plugins`.

en: Here, we will teach you how to create your own plugins to add new features to calibre.
de: Hier werden Sie lernen, wie Sie ihre eigene Erweiterung erstellen, um neue Funktionen zu |app| hinzuzufügen.

en: Contents
de: Inhalte

en: This only applies to calibre releases >= 0.8.60
de: Dies gilt nur für Calibre Versionen >= 0.8.60

en: Anatomy of a calibre plugin
de: Aufbau einer Calibre-Erweiterung

en: A calibre plugin is very simple, it's just a ZIP file that contains some Python code and any other resources like image files needed by the plugin. Without further ado, let's see a basic example.
de: Ein Calibre Plugin ist sehr einfach. Es besteht aus einer Zip-Datei, die eine Python - (vgl. Programmiersprache) Datei und weiteren Teilen die dafür notwendig sind - wie Bilder - enthält.
    Am besten Sie sehen sich ein Beispiel an.

en: Suppose you have an installation of calibre that you are using to self publish various e-documents in EPUB and MOBI formats. You would like all files generated by calibre to have their publisher set as "Hello world", here's how to do it. Create a file named :file:`__init__.py` (this is a special name and must always be used for the main file of your plugin) and enter the following Python code into it:
de: Angenommen Sie haben eine Installation von Calibre die Sie dafür nutzen eigene e-Dokumente im EPUB und MOBI format zu publizieren. Für alle Ihre Dateien soll Calibre den 'publisher' -Metatag auf 'Hello world' setzen. Unten sehen Sie wie das gemacht wird. 
    Erstellen Sie eine (Text-) Datei mit dem Namen file:`__init__.py`  (Diese Bezeichnung muß jedem Plugin als Dateiname gegeben werden) öffnen Sie die Datei in einem Editor und schreiben Sie folgenden Programmcode hinein:

en: That's all. To add this code to calibre as a plugin, simply run the following in the folder in which you created :file:`__init__.py`::
de: Das war es schon. Um dieses kleine Programm nun als Plugin zu Calibre hinzuzufügen, wechseln Sie in den Ordner Ihrer kleinen Datei und führen Sie folgenden Befehl (auf der Komandozeile) aus.:

en: On macOS, the command line tools are inside the calibre bundle, for example, if you installed calibre in :file:`/Applications` the command line tools are in :file:`/Applications/calibre.app/Contents/MacOS/`.
de: Für macOS sind die Komandozeilentools in Calibre integriert. Sollte Calibre z.B. in  :file:`/Applications` installiert sein, dann finden Sie die Tools unter :file:`/Applications/calibre.app/Contents/MacOS/`.

en: Every time you use calibre to convert a book, the plugin's :meth:`run` method will be called and the converted book will have its publisher set to "Hello World". This is a trivial plugin, lets move on to a more complex example that actually adds a component to the user interface.
de: Jedes Mal wenn Sie nun mit Calibre ein Buch konvertieren, wird die Methode :meth:`run` des Plugin's ausgeführt und damit der 'publisher' Metatag auf "Hello World" geändert. Das ist ein einfaches Plugin, machen Sie sich an ein etwas komplexeres mit dem Sie ein Element zur Benutzeroberfläche hinzufügen.

en: A User Interface plugin
de: Ein Benutzeroberflächen-Plugin

en: This plugin will be spread over a few files (to keep the code clean). It will show you how to get resources (images or data files) from the plugin ZIP file, allow users to configure your plugin, how to create elements in the calibre user interface and how to access and query the books database in calibre.
de: Diese Plugin wir auf ein paar Dateien verteilt (damit die einzelnen Teile überschaubar bleiben). Sie erkennen daran wie Sie auf, in der Plugin-Datei enthaltene, Resourcen (Bilder oder Daten) zugreifen, Nutzern erlauben Ihr Plugin zu konfigurieren, wie Sie Elemente der Benutzeroberfläche erstellen und wie Sie die Datenbank der Bücher in Calibre ansprechen und darin suchen.

en: The first thing to note is that this ZIP file has a lot more files in it, explained below, pay particular attention to ``plugin-import-name-interface_demo.txt``.
de: Wichtig ist das die ZIP-Datei, die Ihr Plugin ist, nicht ganz wenige Dateien enthält. Unten sehen Sie eine Beschreibung achten Sie besonders auf ``plugin-import-name-interface_demo.txt``.

en: An empty text file used to enable the multi-file plugin magic. This file must be present in all plugins that use more than one .py file. It should be empty and its filename must be of the form: ``plugin-import-name-**some_name**.txt``. The presence of this file allows you to import code from the .py files present inside the ZIP file, using a statement like::
de: Um in einem Plugin mehrere (Programm-) Dateien zu nutzen (Module nennt man das in Python) müssen diese einem genauen Namensschema entsprechen. Die Datei an sich hat keinen Inhalt. Die Form des Dateinamens ist : ``plugin-import-name-**some_name**.txt``. 
    Immer wenn in der ZIP-Datei eine solche Datei existiert können Sie innerhalb des Plugins Programmcode aus allen anderen enthaltenen .py Dateien auf folgende Art nutzen:

en: The prefix ``calibre_plugins`` must always be present. ``some_name`` comes from the filename of the empty text file. ``some_module`` refers to  :file:`some_module.py` file inside the ZIP file. Note that this importing is just as powerful as regular Python imports. You can create packages and subpackages of .py modules inside the ZIP file, just like you would normally (by defining __init__.py in each sub-folder), and everything should "just work".
de: Der Präfix ``calibre_plugins`` muss immer in der Datei stehen. ``some_name`` wird mit dme Namen der oben beschriebenen leeren Datei ersetzt.  ``some_module`` ist der Name einer weiteren Datei :file:`some_module.py`  innerhalb der ZIP-Datei. Beachten Sie das das genau so nützlich und nutzbar ist wie Importe in der Programmiersprache Python selbst. Sie können 
    'packages' und 'subpackages' von .py Modulen innerhalb der ZIP-Datei erstellen wie Sie das mit Python auch tun würden. Das Funktioniert genau so wie die Nutzung von  __init__.py Dateien. (vgl. python.org)

en: The name you use for ``some_name`` enters a global namespace shared by all plugins, **so make it as unique as possible**. But remember that it must be a valid Python identifier (only alphabets, numbers and the underscore).
de: Der Name den Sie für eine Datei bei ``some_name`` wählen, ist in allen Plugins verfügbar und damit global!  Er sollte natürlich nicht schon vorhanden sein, da Sie ansonsten die schon vorhandenen Funktionen ersetzen. Wählen Sie also den Name möglichst eindeutig und "beschreibend" aus. Zusätzlich muss der Name den Python vorschriften entsprechen: Nur Buchstaben, Nummern und der Unterstrich sind erlaubt.

en: As before, the file that defines the plugin class
de: Wie schon zuvor ist das eine Datei, die eine Plugin Klasse definiert

en: This file contains the actual code that does something useful
de: Diese Datei enthält den eigentlichen Code, der etwas nützliches tut

en: This file defines the interface part of the plugin
de: Diese Datei definiert das Benutzer Interface des Plugin's

en: The icon for this plugin
de: Das Symbol für diese Erweiterung

en: A text file with information about the plugin
de: Eine Textdatei mit einer Beschreibung des Plugin

en: A folder containing .mo files with the translations of the user interface of your plugin into different languages. See below for details.
de: Ein Ordner, der .mo-Dateien mit Übersetzungen der Benutzeroberfläche Ihrer Erweiterung in verschiedenen Sprachen enthält. Details nachfolgend.

en: Now let's look at the code.
de: Nun ein Blick auf den Code.

en: First, the obligatory ``__init__.py`` to define the plugin metadata:
de: Zuerst die obligatorische ``__init__.py`, in dieser werden plugin metadaten gesetzt.

en: The only noteworthy feature is the field :attr:`actual_plugin`. Since calibre has both command line and GUI interfaces, GUI plugins like this one should not load any GUI libraries in __init__.py. The actual_plugin field does this for you, by telling calibre that the actual plugin is to be found in another file inside your ZIP archive, which will only be loaded in a GUI context.
de: Das einzig erwähnenswerte Datum hier ist das Datenfeld :attr:`actual_plugin`. Da Calibre sowohl ein Komandozeilen- als auch ein grafisches Interface hat, sollte nicht gleich in der ersten Datei schon eine grafische Schnittstelle geladen werden.  Das Feld "actual_plugin" weist darauf hin das sich eben dort ein User Interface befindet. Dieses wird eben nur dann ausgeführt, wenn das Plugin innerhalb der grafischen Oberfläche gestartet wird.

en: Remember that for this to work, you must have a plugin-import-name-some_name.txt file in your plugin ZIP file, as discussed above.
de: Denke daran, damit das funktionieren kann, muß in der Plugin - ZIP- Datei eine Datei mit dem Namen wie:  plugin-import-name-some_name.txt file enthalten sein, wie weiter oben gezeigt.

en: Also there are a couple of methods for enabling user configuration of the plugin. These are discussed below.
de: Zudem gibt es ein paar Methoden die das Konfigurieren des Plugin durch die Nutzer ermöglichen. Wie das geht erfahren Sie weiter unten.

en: Now let's look at ui.py which defines the actual GUI plugin. The source code is heavily commented and should be self explanatory:
de: Schauen Sie nun die Datei ui.py an. In dieser definieren Sie wie eine grafische Benutzeroberfläche Ihres Plugin aussehen wird. Der Sourcecode (Quellcode) ist sehr gut kommentiert und sollte selbsterklärend sein:

en: The actual logic to implement the Interface Plugin Demo dialog.
de: Die aktuelle Logik um das Benutzerinterface für einen Plugin Demo Dialog zu implementieren.

en: Getting resources from the plugin ZIP file
de: Ressourcen aus der Plugin ZIP-Datei nutzen

en: calibre's plugin loading system defines a couple of built-in functions that allow you to conveniently get files from the plugin ZIP file.
de: Calibres Plugin 'loading system' stellt eine Reihe von eingebauten Funktionen bereit, mit denen man Dateien und Inhalte aus der Plugin ZIP-Datei bekommt.

en: Enabling user configuration of your plugin
de: Benutzer-Einstellungen des Plug-Ins aktivieren

en: The ``prefs`` object is now available throughout the plugin code by a simple::
de: Das ``prefs``-Objekt ist nun überall im gesamten Erweiterungs-Code verfügbar über ein einfaches::

en: Edit book plugins
de: Buch-Plug-In bearbeiten

en: Adding translations to your plugin
de: Hinzufügen von Übersetzungen zu Ihrer Erweiterung

en: Put the .mo files into the ``translations`` folder in your plugin.
de: Verschieben Sie die .mo-Dateien in den ``translations``-Ordner Ihrer Erweiterung.

en: Replace ``de`` with the language code of the language you want to test.
de: "de" mit dem Sprachcode der zu testenden Sprache ersetzen.

en: The plugin API
de: Die Erweiterungs-API

en: Debugging plugins
de: Fehlerdiagnose bei Erweiterungen

en: This will shutdown a running calibre, wait for the shutdown to complete, then update your plugin in calibre and relaunch calibre.
de: Damit wird das laufende Calibre Programm beendet. Warten Sie, bis sich Calibre vollständig beendet hat. Dann aktualisieren Sie Ihre Erweiterung und starten Calibre neu.

en: More plugin examples
de: Weitere Erweiterungs-Beispiele

en: Sharing your plugins with others
de: Teilen Ihrer Erweiterungen mit anderen
