summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorSebastien Helleu <flashcode@flashtux.org>2006-04-30 12:35:58 +0000
committerSebastien Helleu <flashcode@flashtux.org>2006-04-30 12:35:58 +0000
commitb314ee0f43e6cdd29e601fd6d06a5bcd7a4f5550 (patch)
tree2083ac4f490e5a5455f3511c39cdcbb85b5866d9 /doc
parent758f7f01032633a5b6a6fb5899cc92eaed5c3b9e (diff)
downloadweechat-b314ee0f43e6cdd29e601fd6d06a5bcd7a4f5550.zip
Added german doc
Diffstat (limited to 'doc')
-rw-r--r--doc/Makefile.am2
-rwxr-xr-xdoc/buildxml.pl9
-rw-r--r--doc/de/Makefile.am59
-rw-r--r--doc/de/config.xml1246
-rw-r--r--doc/de/irc_commands.xml443
-rw-r--r--doc/de/key_functions.xml187
-rw-r--r--doc/de/weechat.de.xml5790
-rw-r--r--doc/de/weechat_commands.xml235
-rw-r--r--doc/en/weechat.en.xml6
-rw-r--r--doc/fr/weechat.fr.xml6
10 files changed, 7980 insertions, 3 deletions
diff --git a/doc/Makefile.am b/doc/Makefile.am
index 66ab6651e..951b85181 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -15,7 +15,7 @@
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
#
-SUBDIRS = fr en
+SUBDIRS = en fr de
man_MANS = weechat-curses.1
diff --git a/doc/buildxml.pl b/doc/buildxml.pl
index 9afebb1f8..ba59edfd4 100755
--- a/doc/buildxml.pl
+++ b/doc/buildxml.pl
@@ -22,20 +22,25 @@
# with weechat-curses command
#
-@all_lang = ("fr_FR", "en_US");
+@all_lang = ("fr_FR", "en_US", "de_DE");
%all_encodings = ("fr_FR" => "iso-8859-1",
- "en_US" => "iso-8859-1");
+ "en_US" => "iso-8859-1",
+ "de_DE" => "iso-8859-1");
%all_types = ("fr_FR" => "type",
"en_US" => "type",
+ "de_DE" => "Typ",
"es_ES" => "tipo");
%all_values = ("fr_FR" => "valeurs",
"en_US" => "values",
+ "de_DE" => "Werte",
"es_ES" => "valores");
%all_default = ("fr_FR" => "valeur par défaut",
"en_US" => "default value",
+ "de_DE" => "Standardwert",
"es_ES" => "valor por defecto");
%all_desc = ("fr_FR" => "description",
"en_US" => "description",
+ "de_DE" => "Beschreibung",
"es_ES" => "descripción");
$warning_do_not_edit = "\n<!-- ********* WARNING! *********\n\n"
." This file is automatically built with a Perl script. DO NOT EDIT!\n"
diff --git a/doc/de/Makefile.am b/doc/de/Makefile.am
new file mode 100644
index 000000000..dc9469fc0
--- /dev/null
+++ b/doc/de/Makefile.am
@@ -0,0 +1,59 @@
+# Copyright (c) 2003-2006 FlashCode <flashcode@flashtux.org>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#
+
+LANGCODE = de
+BOOK = weechat.$(LANGCODE)
+BOOK_INCLUDE = weechat_commands.xml irc_commands.xml key_functions.xml config.xml
+
+EXTRA_DIST = $(BOOK).xml $(BOOK_INCLUDE)
+
+docdir = $(datadir)/doc/$(PACKAGE)
+
+all-local: html-stamp
+
+# HTML output with chunks (many pages)
+
+html: html-stamp
+
+html-stamp: $(BOOK).xml $(BOOK_INCLUDE) ../weechat-html.xsl ../weechat-doc.css
+ mkdir -p html/
+ xsltproc -o html/ ../weechat-html.xsl $(BOOK).xml || true
+ cp ../weechat-doc.css html/
+ touch html-stamp
+
+# HTML output, all in one page
+
+html1: html1-stamp
+
+html1-stamp: $(BOOK).xml $(BOOK_INCLUDE) ../weechat-html-one.xsl ../weechat-doc.css
+ mkdir -p html1/
+ xsltproc -o html1/$(BOOK).html ../weechat-html-one.xsl $(BOOK).xml || true
+ cp ../weechat-doc.css html1/
+ touch html1-stamp
+
+# install docs
+
+install-data-hook:
+ $(mkinstalldirs) $(DESTDIR)$(docdir)/html/$(LANGCODE)/
+ $(INSTALL_DATA) html/* $(DESTDIR)$(docdir)/html/$(LANGCODE)/
+
+# clean
+
+clean-local:
+ -rm -f *.html *.pdf *.txt
+ -rm -rf html/ html1/
+ -rm -f html-stamp html1-stamp
diff --git a/doc/de/config.xml b/doc/de/config.xml
new file mode 100644
index 000000000..77ed4689a
--- /dev/null
+++ b/doc/de/config.xml
@@ -0,0 +1,1246 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+
+<!-- ********* WARNING! *********
+
+ This file is automatically built with a Perl script. DO NOT EDIT!
+-->
+
+<row>
+ <entry><option>look_set_title</option></entry>
+ <entry>Boolean</entry>
+ <entry></entry>
+ <entry>'on'</entry>
+ <entry>Fenstertitel setzen (oder Terminaltitel im Curses-GUI) mit Name und Version</entry>
+</row>
+<row>
+ <entry><option>look_startup_logo</option></entry>
+ <entry>Boolean</entry>
+ <entry></entry>
+ <entry>'on'</entry>
+ <entry>WeeChat-Logo beim Start anzeigen</entry>
+</row>
+<row>
+ <entry><option>look_startup_version</option></entry>
+ <entry>Boolean</entry>
+ <entry></entry>
+ <entry>'on'</entry>
+ <entry>WeeChat-Version beim Start anzeigen</entry>
+</row>
+<row>
+ <entry><option>look_weechat_slogan</option></entry>
+ <entry>Zeichenfolge</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>'the geekest IRC client!'</entry>
+ <entry>WeeChat-Slogan (wenn leer, wird keiner benutzt)</entry>
+</row>
+<row>
+ <entry><option>look_charset_decode_iso</option></entry>
+ <entry>Zeichenfolge</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>'ISO-8859-1'</entry>
+ <entry>ISO-Zeichensatz zum Dekodieren von Nachrichten vom Server (wird nur benutzt, wenn UTF-8 als Locale eingestellt ist; wenn nichts angegeben wird und die Locale UTF-8 ist, findet keine Konvertierung statt)</entry>
+</row>
+<row>
+ <entry><option>look_charset_decode_utf</option></entry>
+ <entry>Zeichenfolge</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>'UTF-8'</entry>
+ <entry>UTF-Zeichensatz zum Dekodieren von Nachrichten vom Server (wird nur benutzt, wenn die Locale nicht UTF-8 ist; wenn nichts angegeben wird und die Locale nicht UTF-8 ist, findet keine Konvertierung statt)</entry>
+</row>
+<row>
+ <entry><option>look_charset_encode</option></entry>
+ <entry>Zeichenfolge</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>''</entry>
+ <entry>Zeichensatz zum Enkodieren von Nachrichten zum Server, wie zum Beispiel: UTF-8, ISO-8859-1 (wenn nichts angegeben wird, findet keine Konversion statt)</entry>
+</row>
+<row>
+ <entry><option>look_charset_internal</option></entry>
+ <entry>Zeichenfolge</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>''</entry>
+ <entry>Erzwingt internen WeeChat-Zeichensatz (sollte normalerweise leer sein, dadurch wird der erkannte Zeichensatz benutzt)</entry>
+</row>
+<row>
+ <entry><option>look_one_server_buffer</option></entry>
+ <entry>Boolean</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>'off'</entry>
+ <entry>Benutze den gleichen Puffer für alle Server</entry>
+</row>
+<row>
+ <entry><option>look_open_near_server</option></entry>
+ <entry>Boolean</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>'off'</entry>
+ <entry>öffne neue Channels oder private Nachrichten neben dem Server-Puffer</entry>
+</row>
+<row>
+ <entry><option>look_scroll_amount</option></entry>
+ <entry>Ganzzahl</entry>
+ <entry>zwischen 1 und 2147483647</entry>
+ <entry>3</entry>
+ <entry>Anzahl der zu scrollenden Zeilen bei Bild-Hoch- und Bild-Runter-Taste</entry>
+</row>
+<row>
+ <entry><option>look_buffer_timestamp</option></entry>
+ <entry>Zeichenfolge</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>'[%H:%M:%S]'</entry>
+ <entry>Timestamp für Puffer</entry>
+</row>
+<row>
+ <entry><option>look_color_nicks_number</option></entry>
+ <entry>Ganzzahl</entry>
+ <entry>zwischen 1 und 10</entry>
+ <entry>10</entry>
+ <entry>Anzahl der für Nicknames zu benutzenden Farben</entry>
+</row>
+<row>
+ <entry><option>look_color_actions</option></entry>
+ <entry>Boolean</entry>
+ <entry>zwischen 1 und 10</entry>
+ <entry>'on'</entry>
+ <entry>Actions mit verschiedenen Farbe anzeigen</entry>
+</row>
+<row>
+ <entry><option>look_nicklist</option></entry>
+ <entry>Boolean</entry>
+ <entry>zwischen 1 und 10</entry>
+ <entry>'on'</entry>
+ <entry>Nicklisten-Fenster in Channelfenstern anzeigen</entry>
+</row>
+<row>
+ <entry><option>look_nicklist_position</option></entry>
+ <entry>Zeichenfolge</entry>
+ <entry>'left', 'right', 'top', 'bottom'</entry>
+ <entry>'right'</entry>
+ <entry>Nicklisten-Position (top, left, right (Standard), bottom)</entry>
+</row>
+<row>
+ <entry><option>look_nicklist_min_size</option></entry>
+ <entry>Ganzzahl</entry>
+ <entry>zwischen 0 und 100</entry>
+ <entry>0</entry>
+ <entry>Minimale Größe der Nicklist (Breite oder Höhe, je nach look_nicklist_position (0: kein Minimum)</entry>
+</row>
+<row>
+ <entry><option>look_nicklist_max_size</option></entry>
+ <entry>Ganzzahl</entry>
+ <entry>zwischen 0 und 100</entry>
+ <entry>0</entry>
+ <entry>Maximale Größe der Nicklist (Breite oder Höhe, je nach look_nicklist_position (0: kein Maximum); Wenn min == max &gt; 0, ist die Größe fest.</entry>
+</row>
+<row>
+ <entry><option>look_no_nickname</option></entry>
+ <entry>Zeichenfolge</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>'-cmd-'</entry>
+ <entry>Text, der statt Nickname erscheinen soll, wenn keine Verbindung besteht</entry>
+</row>
+<row>
+ <entry><option>look_nickmode</option></entry>
+ <entry>Boolean</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>'on'</entry>
+ <entry>Nickmode (@%+) vorm Nickname anzeigen</entry>
+</row>
+<row>
+ <entry><option>look_nickmode_empty</option></entry>
+ <entry>Boolean</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>'off'</entry>
+ <entry>Leerzeichen anzeigen wenn Nickmode nicht @%+ ist</entry>
+</row>
+<row>
+ <entry><option>look_nick_prefix</option></entry>
+ <entry>Zeichenfolge</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>''</entry>
+ <entry>Text, der im Chatfenster vor dem Nickname erscheinen soll</entry>
+</row>
+<row>
+ <entry><option>look_nick_suffix</option></entry>
+ <entry>Zeichenfolge</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>' |'</entry>
+ <entry>Text, der im Chatfenster nach dem Nickname erscheinen soll</entry>
+</row>
+<row>
+ <entry><option>look_align_nick</option></entry>
+ <entry>Zeichenfolge</entry>
+ <entry>'none', 'left', 'right'</entry>
+ <entry>'right'</entry>
+ <entry>Ausrichtung des Nicknamens (feste Größe bei Nicks im Chatfenster (none, left, right))</entry>
+</row>
+<row>
+ <entry><option>look_align_other</option></entry>
+ <entry>Boolean</entry>
+ <entry>'none', 'left', 'right'</entry>
+ <entry>'on'</entry>
+ <entry>Ausrichtung für andere Nachrichten, die nicht mit einem Nicknamen beginnen</entry>
+</row>
+<row>
+ <entry><option>look_align_size</option></entry>
+ <entry>Ganzzahl</entry>
+ <entry>zwischen 8 und 64</entry>
+ <entry>14</entry>
+ <entry>Größe zum Ausrichten von Nicknamen und anderen Nachrichten</entry>
+</row>
+<row>
+ <entry><option>look_align_size_max</option></entry>
+ <entry>Ganzzahl</entry>
+ <entry>zwischen 8 und 64</entry>
+ <entry>20</entry>
+ <entry>Max size for aligning nick and other messages (should be &gt;= to look_align_size)</entry>
+</row>
+<row>
+ <entry><option>look_nick_completor</option></entry>
+ <entry>Zeichenfolge</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>':'</entry>
+ <entry>Nach Nickvervollständigung anzufügende Zeichenfolge</entry>
+</row>
+<row>
+ <entry><option>look_nick_completion_ignore</option></entry>
+ <entry>Zeichenfolge</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>'[]-^'</entry>
+ <entry>Zeichen, die bei der Nickvervollständigung ignoriert werden</entry>
+</row>
+<row>
+ <entry><option>look_nick_complete_first</option></entry>
+ <entry>Boolean</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>'off'</entry>
+ <entry>Nur mit dem ersten, passenden Nicknamen vervollständigen</entry>
+</row>
+<row>
+ <entry><option>look_infobar</option></entry>
+ <entry>Boolean</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>'on'</entry>
+ <entry>Infoleiste aktivieren</entry>
+</row>
+<row>
+ <entry><option>look_infobar_timestamp</option></entry>
+ <entry>Zeichenfolge</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>'%B, %A %d %Y'</entry>
+ <entry>Timestamp in der Infobar</entry>
+</row>
+<row>
+ <entry><option>look_infobar_seconds</option></entry>
+ <entry>Boolean</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>'on'</entry>
+ <entry>Sekunden in der Infobar-Zeit anzeigen</entry>
+</row>
+<row>
+ <entry><option>look_infobar_delay_highlight</option></entry>
+ <entry>Ganzzahl</entry>
+ <entry>zwischen 0 und 2147483647</entry>
+ <entry>7</entry>
+ <entry>Anzeigezeit in Sekunden für Highlight-Messages in der Infobar (0: gar nicht erst anzeigen)</entry>
+</row>
+<row>
+ <entry><option>look_hotlist_names_count</option></entry>
+ <entry>Ganzzahl</entry>
+ <entry>zwischen 0 und 32</entry>
+ <entry>3</entry>
+ <entry>Maximale Anzahl an Namen in der Hotlist (0 = keine Namen, nur Puffernummern)</entry>
+</row>
+<row>
+ <entry><option>look_hotlist_names_level</option></entry>
+ <entry>Ganzzahl</entry>
+ <entry>zwischen 1 und 15</entry>
+ <entry>12</entry>
+ <entry>Level für Namensanzeige in der Hotlist (Kombination von: 1=join/part, 2=Nachricht, 4=Query, 8=Highlight, z.B. 12=Query+Highlight)</entry>
+</row>
+<row>
+ <entry><option>look_hotlist_names_length</option></entry>
+ <entry>Ganzzahl</entry>
+ <entry>zwischen 0 und 32</entry>
+ <entry>0</entry>
+ <entry>Maximale Länge der Namen in der Hotlist (0: kein Limit)</entry>
+</row>
+<row>
+ <entry><option>look_day_change</option></entry>
+ <entry>Boolean</entry>
+ <entry>zwischen 0 und 32</entry>
+ <entry>'on'</entry>
+ <entry>Spezielle Nachricht anzeigen, wenn ein neuer Tag beginnt</entry>
+</row>
+<row>
+ <entry><option>look_day_change_timestamp</option></entry>
+ <entry>Zeichenfolge</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>'%a, %d %b %Y'</entry>
+ <entry>Zeitstempel für das Datum, das beim Tageswechsel angezeigt wird</entry>
+</row>
+<row>
+ <entry><option>look_read_marker</option></entry>
+ <entry>Zeichenfolge</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>' '</entry>
+ <entry>Markiere die erste, ungelesene Zeile bei Server- und Channel-Puffern</entry>
+</row>
+<row>
+ <entry><option>look_input_format</option></entry>
+ <entry>Zeichenfolge</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>'[%n(%m)] '</entry>
+ <entry>Format der Eingabezeile ('%c' wird durch den Channel- oder Servernamen ersetzt, '%n' durch den Nicknamen und '%m' durch die Nick-Modi)</entry>
+</row>
+<row>
+ <entry><option>col_real_white</option></entry>
+ <entry>Boolean</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>'off'</entry>
+ <entry>Wenn gesetzt, benutze echtes Weiß, als Voreinstellung jedoch für Terminals mit weißem Hintergrund deaktiviert (solltest du niemals einen weißen Hintergrund benutzen, solltest du diese Option aktivieren um ein echtes Weiß anstelle der voreingestellten Terminal Vordergrundfarbe zu bekommen)</entry>
+</row>
+<row>
+ <entry><option>col_separator</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'blue'</entry>
+ <entry>Farbe der Fenster-Separatoren im Chatfenster (bei geteiltem Bildschirm)</entry>
+</row>
+<row>
+ <entry><option>col_title</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'default'</entry>
+ <entry>Textfarbe der Titelleiste</entry>
+</row>
+<row>
+ <entry><option>col_title_bg</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'blue'</entry>
+ <entry>Hintergrundfarbe der Titelleiste</entry>
+</row>
+<row>
+ <entry><option>col_chat</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'default'</entry>
+ <entry>Farbe vom Chat-Text</entry>
+</row>
+<row>
+ <entry><option>col_chat_time</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'default'</entry>
+ <entry>Farbe der Zeit im Chatfenster</entry>
+</row>
+<row>
+ <entry><option>col_chat_time_sep</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'brown'</entry>
+ <entry>Farbe für den Zeit-Separator im Chatfenster</entry>
+</row>
+<row>
+ <entry><option>col_chat_prefix1</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'lightcyan'</entry>
+ <entry>Farbe des 1. und 3. Präfixzeichens</entry>
+</row>
+<row>
+ <entry><option>col_chat_prefix2</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'white'</entry>
+ <entry>Farbe des 2. Präfixzeichens</entry>
+</row>
+<row>
+ <entry><option>col_chat_server</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'brown'</entry>
+ <entry>Farbe des Servernamens</entry>
+</row>
+<row>
+ <entry><option>col_chat_join</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'lightgreen'</entry>
+ <entry>Farbe des join-Pfeiles (Präfix)</entry>
+</row>
+<row>
+ <entry><option>col_chat_part</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'lightred'</entry>
+ <entry>Farbe des quit-Pfeiles (Präfix)</entry>
+</row>
+<row>
+ <entry><option>col_chat_nick</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'lightcyan'</entry>
+ <entry>Farbe der Nicknames in ACTIONs im Chatfenster</entry>
+</row>
+<row>
+ <entry><option>col_chat_host</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'cyan'</entry>
+ <entry>Farbe der Hostnames im Chatfenster</entry>
+</row>
+<row>
+ <entry><option>col_chat_channel</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'white'</entry>
+ <entry>Farbe der Channelnamen in ACTIONs im Chatfenster</entry>
+</row>
+<row>
+ <entry><option>col_chat_dark</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'green'</entry>
+ <entry>Farbe der dunklen Separatoren im Chatfenster</entry>
+</row>
+<row>
+ <entry><option>col_chat_highlight</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'yellow'</entry>
+ <entry>Farbe der hervorgehobenen Nicknames im Chatfenster</entry>
+</row>
+<row>
+ <entry><option>col_chat_bg</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'default'</entry>
+ <entry>Hintergrund des Chatfensters</entry>
+</row>
+<row>
+ <entry><option>col_chat_read_marker</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'yellow'</entry>
+ <entry>Farbe der Ungelesenenmarkierung</entry>
+</row>
+<row>
+ <entry><option>col_chat_read_marker_bg</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'magenta'</entry>
+ <entry>Hintergrundfarbe der Ungelesenenmarkierung</entry>
+</row>
+<row>
+ <entry><option>col_status</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'default'</entry>
+ <entry>Farbe der Statuszeile</entry>
+</row>
+<row>
+ <entry><option>col_status_delimiters</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'cyan'</entry>
+ <entry>Farbe der Statuszeilen-Separatoren</entry>
+</row>
+<row>
+ <entry><option>col_status_channel</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'white'</entry>
+ <entry>Farbe des aktuellen Channels in der Statuszeile</entry>
+</row>
+<row>
+ <entry><option>col_status_data_msg</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'yellow'</entry>
+ <entry>Farbe eines Fensters mit neuen Messages in der Statuszeile</entry>
+</row>
+<row>
+ <entry><option>col_status_private</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'lightmagenta'</entry>
+ <entry>Farbe eines Fensters mit Privatnachrichten in der Statuszeile</entry>
+</row>
+<row>
+ <entry><option>col_status_highlight</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'lightred'</entry>
+ <entry>Farbe eines Fensters mit Highlights in der Statuszeile</entry>
+</row>
+<row>
+ <entry><option>col_status_data_other</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'default'</entry>
+ <entry>Farbe eines Fensters mit neuen Daten (nicht Nachrichten in der Statuszeile)</entry>
+</row>
+<row>
+ <entry><option>col_status_more</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'white'</entry>
+ <entry>Farbe eines Fensters mit neuen Daten in der Statuszeile</entry>
+</row>
+<row>
+ <entry><option>col_status_bg</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'blue'</entry>
+ <entry>Hintergrund des Statusfensters</entry>
+</row>
+<row>
+ <entry><option>col_infobar</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'black'</entry>
+ <entry>Farbe des Infobar-Textes</entry>
+</row>
+<row>
+ <entry><option>col_infobar_delimiters</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'blue'</entry>
+ <entry>Farbe der Infobar-Trennzeichen</entry>
+</row>
+<row>
+ <entry><option>col_infobar_highlight</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'white'</entry>
+ <entry>Farbe der Infobar-Highlight-Notifikation</entry>
+</row>
+<row>
+ <entry><option>col_infobar_bg</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'cyan'</entry>
+ <entry>Hintergrund des Infobar-Fensters</entry>
+</row>
+<row>
+ <entry><option>col_input</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'default'</entry>
+ <entry>Farbe der Eingabezeile</entry>
+</row>
+<row>
+ <entry><option>col_input_server</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'brown'</entry>
+ <entry>Farbe des Eingabetextes (Servername)</entry>
+</row>
+<row>
+ <entry><option>col_input_channel</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'white'</entry>
+ <entry>Farbe des Channelnamens in der Eingabezeile</entry>
+</row>
+<row>
+ <entry><option>col_input_nick</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'lightcyan'</entry>
+ <entry>Farbe des Nicknames in der Eingabezeile</entry>
+</row>
+<row>
+ <entry><option>col_input_delimiters</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'cyan'</entry>
+ <entry>Farbe des Trennzeichens in der Eingabezeile</entry>
+</row>
+<row>
+ <entry><option>col_input_bg</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'default'</entry>
+ <entry>Hintergrundfarbe der Eingabezeile</entry>
+</row>
+<row>
+ <entry><option>col_nick</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'default'</entry>
+ <entry>Farbe von Nicknames</entry>
+</row>
+<row>
+ <entry><option>col_nick_away</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'cyan'</entry>
+ <entry>Farbe von abwesenden Nicknames</entry>
+</row>
+<row>
+ <entry><option>col_nick_chanowner</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'lightgreen'</entry>
+ <entry>Farbe des Channel-Owner-Symbols von unrealircd</entry>
+</row>
+<row>
+ <entry><option>col_nick_chanadmin</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'lightgreen'</entry>
+ <entry>Farbe des Channel-Admin-Symbols von unrealircd</entry>
+</row>
+<row>
+ <entry><option>col_nick_op</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'lightgreen'</entry>
+ <entry>Farbe des Operator-Symbols</entry>
+</row>
+<row>
+ <entry><option>col_nick_halfop</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'lightmagenta'</entry>
+ <entry>Farbe des Halb-Operator-Symbols</entry>
+</row>
+<row>
+ <entry><option>col_nick_voice</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'yellow'</entry>
+ <entry>Farbe des Voice-Symbols</entry>
+</row>
+<row>
+ <entry><option>col_nick_more</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'lightmagenta'</entry>
+ <entry>Farbe des '+' beim Scrolling von Nicknames</entry>
+</row>
+<row>
+ <entry><option>col_nick_sep</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'blue'</entry>
+ <entry>Farbe der Nicknamefenster-Trennlinie</entry>
+</row>
+<row>
+ <entry><option>col_nick_self</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'white'</entry>
+ <entry>Farbe des eigenen Nicknames</entry>
+</row>
+<row>
+ <entry><option>col_nick_color1</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'cyan'</entry>
+ <entry>Farbe von Nicknames</entry>
+</row>
+<row>
+ <entry><option>col_nick_color2</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'magenta'</entry>
+ <entry>Farbe von Nicknames</entry>
+</row>
+<row>
+ <entry><option>col_nick_color3</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'green'</entry>
+ <entry>Farbe von Nicknames</entry>
+</row>
+<row>
+ <entry><option>col_nick_color4</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'brown'</entry>
+ <entry>Farbe von Nicknames</entry>
+</row>
+<row>
+ <entry><option>col_nick_color5</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'lightblue'</entry>
+ <entry>Farbe von Nicknames</entry>
+</row>
+<row>
+ <entry><option>col_nick_color6</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'default'</entry>
+ <entry>Farbe von Nicknames</entry>
+</row>
+<row>
+ <entry><option>col_nick_color7</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'lightcyan'</entry>
+ <entry>Farbe von Nicknames</entry>
+</row>
+<row>
+ <entry><option>col_nick_color8</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'lightmagenta'</entry>
+ <entry>Farbe von Nicknames</entry>
+</row>
+<row>
+ <entry><option>col_nick_color9</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'lightgreen'</entry>
+ <entry>Farbe von Nicknames</entry>
+</row>
+<row>
+ <entry><option>col_nick_color10</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'blue'</entry>
+ <entry>Farbe von Nicknames</entry>
+</row>
+<row>
+ <entry><option>col_nick_private</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'default'</entry>
+ <entry>Farbe des anderen Nicknames in Query-Fenstern</entry>
+</row>
+<row>
+ <entry><option>col_nick_bg</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'default'</entry>
+ <entry>Hintergrundfarbe der Nicknames</entry>
+</row>
+<row>
+ <entry><option>col_chat_dcc_selected</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'white'</entry>
+ <entry>Farbe des ausgewählten DCCs im Chatfenster</entry>
+</row>
+<row>
+ <entry><option>col_dcc_waiting</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'lightcyan'</entry>
+ <entry>Farbe des DCC-Status 'warten'</entry>
+</row>
+<row>
+ <entry><option>col_dcc_connecting</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'yellow'</entry>
+ <entry>Farbe des DCC-Status 'verbinden'</entry>
+</row>
+<row>
+ <entry><option>col_dcc_active</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'lightblue'</entry>
+ <entry>Farbe des DCC-Status 'aktiv'</entry>
+</row>
+<row>
+ <entry><option>col_dcc_done</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'lightgreen'</entry>
+ <entry>Farbe des DCC-Status 'fertig'</entry>
+</row>
+<row>
+ <entry><option>col_dcc_failed</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'lightred'</entry>
+ <entry>Farbe des DCC-Status 'fehlgeschlagen'</entry>
+</row>
+<row>
+ <entry><option>col_dcc_aborted</option></entry>
+ <entry>Farbe</entry>
+ <entry>Curses- oder Gtk-Farben</entry>
+ <entry>'lightred'</entry>
+ <entry>Farbe des DCC-Status 'abgebrochen'</entry>
+</row>
+<row>
+ <entry><option>history_max_lines</option></entry>
+ <entry>Ganzzahl</entry>
+ <entry>zwischen 0 und 2147483647</entry>
+ <entry>4096</entry>
+ <entry>Maximale Anzahl der Zeilen im Verlauf eines Server-, Channel- oder Queryfensters (0: kein Limit)</entry>
+</row>
+<row>
+ <entry><option>history_max_commands</option></entry>
+ <entry>Ganzzahl</entry>
+ <entry>zwischen 0 und 2147483647</entry>
+ <entry>100</entry>
+ <entry>Maximale Anzahl an Befehlen im Verlauf (0: kein Limit)</entry>
+</row>
+<row>
+ <entry><option>history_display_default</option></entry>
+ <entry>Ganzzahl</entry>
+ <entry>zwischen 0 und 2147483647</entry>
+ <entry>5</entry>
+ <entry>Maximale Anzahl der angezeigten Befehle im Verlauf (0: unbegrenzt)</entry>
+</row>
+<row>
+ <entry><option>log_auto_server</option></entry>
+ <entry>Boolean</entry>
+ <entry>zwischen 0 und 2147483647</entry>
+ <entry>'off'</entry>
+ <entry>Automatisches Logging von Servermessages</entry>
+</row>
+<row>
+ <entry><option>log_auto_channel</option></entry>
+ <entry>Boolean</entry>
+ <entry>zwischen 0 und 2147483647</entry>
+ <entry>'off'</entry>
+ <entry>Automatisches Logging von Channels</entry>
+</row>
+<row>
+ <entry><option>log_auto_private</option></entry>
+ <entry>Boolean</entry>
+ <entry>zwischen 0 und 2147483647</entry>
+ <entry>'off'</entry>
+ <entry>Automatisches Logging von Queries</entry>
+</row>
+<row>
+ <entry><option>log_plugin_msg</option></entry>
+ <entry>Boolean</entry>
+ <entry>zwischen 0 und 2147483647</entry>
+ <entry>'off'</entry>
+ <entry>Nachrichten von Skripten loggen</entry>
+</row>
+<row>
+ <entry><option>log_path</option></entry>
+ <entry>Zeichenfolge</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>'%h/logs/'</entry>
+ <entry>Pfad für die WeeChat-Log-Dateien ('%h' wird durch WeeChat-Basisverzeichnis ersetztz, Voreinstellung ist ~/.weechat)</entry>
+</row>
+<row>
+ <entry><option>log_timestamp</option></entry>
+ <entry>Zeichenfolge</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>'%Y %b %d %H:%M:%S'</entry>
+ <entry>Timestamp der Logdateien (siehe man strftime für die Syntax der Datum/Uhrzeit-Angaben)</entry>
+</row>
+<row>
+ <entry><option>log_hide_nickserv_pwd</option></entry>
+ <entry>Boolean</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>'on'</entry>
+ <entry>Von NickServ angezeigte Passwörter verstecken</entry>
+</row>
+<row>
+ <entry><option>irc_display_away</option></entry>
+ <entry>Zeichenfolge</entry>
+ <entry>'off', 'local', 'channel'</entry>
+ <entry>'off'</entry>
+ <entry>Bei Abwesenheit und Rückkehr eine Nachricht anzeigen</entry>
+</row>
+<row>
+ <entry><option>irc_show_away_once</option></entry>
+ <entry>Boolean</entry>
+ <entry>'off', 'local', 'channel'</entry>
+ <entry>'on'</entry>
+ <entry>In privaten Unterhaltungen nur einmalig eine Abwesenheitsnachricht anzeigen</entry>
+</row>
+<row>
+ <entry><option>irc_default_msg_part</option></entry>
+ <entry>Zeichenfolge</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>'WeeChat %v'</entry>
+ <entry>Standardnachricht beim Verlasseb eines Channels ('%v' wird durch die WeeChat-Version ersetzt)</entry>
+</row>
+<row>
+ <entry><option>irc_default_msg_quit</option></entry>
+ <entry>Zeichenfolge</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>'WeeChat %v'</entry>
+ <entry>Standardnachricht beim Beenden ('%v' wird durch die WeeChat-Version ersetzt)</entry>
+</row>
+<row>
+ <entry><option>irc_notice_as_pv</option></entry>
+ <entry>Boolean</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>'off'</entry>
+ <entry>NOTICEs als Queries anzeigen</entry>
+</row>
+<row>
+ <entry><option>irc_away_check</option></entry>
+ <entry>Ganzzahl</entry>
+ <entry>zwischen 0 und 2147483647</entry>
+ <entry>0</entry>
+ <entry>Intervall zwischen zwei Away-Checks (in Minuten, 0 = nie überprüfen)</entry>
+</row>
+<row>
+ <entry><option>irc_away_check_max_nicks</option></entry>
+ <entry>Ganzzahl</entry>
+ <entry>zwischen 0 und 2147483647</entry>
+ <entry>0</entry>
+ <entry>überprüfe Abwesenheitsnachrichten nur in Channels mit maximal dieser Anzahl an Nicknamen (0 = unbegrenzt)</entry>
+</row>
+<row>
+ <entry><option>irc_lag_check</option></entry>
+ <entry>Ganzzahl</entry>
+ <entry>zwischen 30 und 2147483647</entry>
+ <entry>60</entry>
+ <entry>Intervall zwischen zwei Lag-Messungen in Sekunden</entry>
+</row>
+<row>
+ <entry><option>irc_lag_min_show</option></entry>
+ <entry>Ganzzahl</entry>
+ <entry>zwischen 0 und 2147483647</entry>
+ <entry>1</entry>
+ <entry>Mindest-Lag, der angezeigt werden soll, in Sekunden</entry>
+</row>
+<row>
+ <entry><option>irc_lag_disconnect</option></entry>
+ <entry>Ganzzahl</entry>
+ <entry>zwischen 0 und 2147483647</entry>
+ <entry>5</entry>
+ <entry>Maximal-Lag bis zum Trennen der Verbindung (in Minuten - 0: nie trennen)</entry>
+</row>
+<row>
+ <entry><option>irc_fifo_pipe</option></entry>
+ <entry>Boolean</entry>
+ <entry>zwischen 0 und 2147483647</entry>
+ <entry>'off'</entry>
+ <entry>Einen FIFO zur Fernsteuerung des Clients von anderen Prozessen öffnen</entry>
+</row>
+<row>
+ <entry><option>irc_highlight</option></entry>
+ <entry>Zeichenfolge</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>''</entry>
+ <entry>Durch Kommata getrennte Liste der hervorzuhebenden Wörter (Groß-/Kleinschreibung wird nicht beachtet, die Wörter können mit "*" als Joker beginnen oder enden)</entry>
+</row>
+<row>
+ <entry><option>irc_colors_receive</option></entry>
+ <entry>Boolean</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>'on'</entry>
+ <entry>Wenn der Schalter deaktiviert ist, werden die Farben von eingehenden Nachrichten entfernt</entry>
+</row>
+<row>
+ <entry><option>irc_colors_send</option></entry>
+ <entry>Boolean</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>'on'</entry>
+ <entry>Erlaube Benutzern, spezielle Codes zu versenden (%B=fett, %Cxx,yy=Farbe, %U=unterstrichen, %R=reverse/umgekehrt)</entry>
+</row>
+<row>
+ <entry><option>dcc_auto_accept_files</option></entry>
+ <entry>Boolean</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>'off'</entry>
+ <entry>DCC-Dateiübertragungen automatisch annehmen</entry>
+</row>
+<row>
+ <entry><option>dcc_auto_accept_chats</option></entry>
+ <entry>Boolean</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>'off'</entry>
+ <entry>DCC-CHats automatisch annehmen (Vorsicht!)</entry>
+</row>
+<row>
+ <entry><option>dcc_timeout</option></entry>
+ <entry>Ganzzahl</entry>
+ <entry>zwischen 1 und 2147483647</entry>
+ <entry>300</entry>
+ <entry>DCC-Timeout in Sekunden</entry>
+</row>
+<row>
+ <entry><option>dcc_blocksize</option></entry>
+ <entry>Ganzzahl</entry>
+ <entry>zwischen 1024 und 102400</entry>
+ <entry>65536</entry>
+ <entry>Blockgröße für DCCs</entry>
+</row>
+<row>
+ <entry><option>dcc_port_range</option></entry>
+ <entry>Zeichenfolge</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>''</entry>
+ <entry>Beschränkt ausgehenden DCC auf die ausschließliche Benutzung von Ports in einem vorgegebenen Bereich (hilfreich bei NAT) (Syntax: ein einzelner Port, z.B. 5000, oder eine Port-Bereich, z.B. 5000-5015,wenn kein Bereich angegeben ist, ist jeder Port möglich)</entry>
+</row>
+<row>
+ <entry><option>dcc_own_ip</option></entry>
+ <entry>Zeichenfolge</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>''</entry>
+ <entry>IP- oder DNS-Adresse für ausgehenden DCC (wenn kein Wert angegeben wird, wird die IP des lokalen Interfaces benutzt)</entry>
+</row>
+<row>
+ <entry><option>dcc_download_path</option></entry>
+ <entry>Zeichenfolge</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>'%h/dcc'</entry>
+ <entry>Pfad für per DCC eingehende Dateien (Standardwert: Homeverzeichnis)</entry>
+</row>
+<row>
+ <entry><option>dcc_upload_path</option></entry>
+ <entry>Zeichenfolge</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>'~'</entry>
+ <entry>Pfad, aus dem Dateien standardmäßig gelesen werden, wenn keine explizite Angabe vorliegt</entry>
+</row>
+<row>
+ <entry><option>dcc_convert_spaces</option></entry>
+ <entry>Boolean</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>'on'</entry>
+ <entry>Leerzeichen in Unterstriche umwandeln beim Veschicken von Dateien</entry>
+</row>
+<row>
+ <entry><option>dcc_auto_rename</option></entry>
+ <entry>Boolean</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>'on'</entry>
+ <entry>Eingehende Dateien automatisch umbenennen, falls nötig, um Überschreiben zu vermeiden (durch Hinzufügen von '.1', '.2', ...)</entry>
+</row>
+<row>
+ <entry><option>dcc_auto_resume</option></entry>
+ <entry>Boolean</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>'on'</entry>
+ <entry>Abgebrochene Übertragungen automatisch fortsetzen, wenn die Verbindung abgebrochen ist</entry>
+</row>
+<row>
+ <entry><option>proxy_use</option></entry>
+ <entry>Boolean</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>'off'</entry>
+ <entry>Einen Proxyserver verwenden, um die Verbindung zum IRC-Server aufzubauen</entry>
+</row>
+<row>
+ <entry><option>proxy_type</option></entry>
+ <entry>Zeichenfolge</entry>
+ <entry>'http', 'socks4', 'socks5'</entry>
+ <entry>'http'</entry>
+ <entry>Proxytyp (http (Standard), socks4, socks5)</entry>
+</row>
+<row>
+ <entry><option>proxy_ipv6</option></entry>
+ <entry>Boolean</entry>
+ <entry>'http', 'socks4', 'socks5'</entry>
+ <entry>'off'</entry>
+ <entry>Verbindung zum Proxy über IPv6 aufbauen</entry>
+</row>
+<row>
+ <entry><option>proxy_address</option></entry>
+ <entry>Zeichenfolge</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>''</entry>
+ <entry>Adresse des Proxyservers (IP oder Hostname)</entry>
+</row>
+<row>
+ <entry><option>proxy_port</option></entry>
+ <entry>Ganzzahl</entry>
+ <entry>zwischen 0 und 65535</entry>
+ <entry>3128</entry>
+ <entry>Port, auf dem der Proxyserver läuft</entry>
+</row>
+<row>
+ <entry><option>proxy_username</option></entry>
+ <entry>Zeichenfolge</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>''</entry>
+ <entry>Benutzername für die Proxyverbindung</entry>
+</row>
+<row>
+ <entry><option>proxy_password</option></entry>
+ <entry>Zeichenfolge</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>''</entry>
+ <entry>Passwort für die Proxyverbindung</entry>
+</row>
+<row>
+ <entry><option>plugins_path</option></entry>
+ <entry>Zeichenfolge</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>'%h/plugins'</entry>
+ <entry>Suchpfad für WeeChat-Plugins ('%h' wird durch das WeeChat-Basisiverzeichnis ersetzt, voreingestellt ist ~/.weechat)</entry>
+</row>
+<row>
+ <entry><option>plugins_autoload</option></entry>
+ <entry>Zeichenfolge</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>'*'</entry>
+ <entry>Kommagetrennte Liste der Plugins, die beim Start automatisch geladen werden sollen, "*" lädt alle gefundenen Plugins (es können auch Teile des Namens angegeben werden, "perl" lädt z.B. auch "libperl.so")</entry>
+</row>
+<row>
+ <entry><option>plugins_extension</option></entry>
+ <entry>Zeichenfolge</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>'.so'</entry>
+ <entry>Standard-Dateinamenserweiterung für Plugins, wird für das automatische Laden verwendet (wenn kein Wert angegeben ist und der Wert für das automatische Laden "*" ist, werden alle Dateien geladen)</entry>
+</row>
+<row>
+ <entry><option>server_name</option></entry>
+ <entry>Zeichenfolge</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>''</entry>
+ <entry>Mit dem IRC-Server assoziierter eindeutiger Name (nur zur Anzeige)</entry>
+</row>
+<row>
+ <entry><option>server_autoconnect</option></entry>
+ <entry>Boolean</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>'on'</entry>
+ <entry>Automatisch mit dem Server verbinden, wenn WeeChat gestartet wird</entry>
+</row>
+<row>
+ <entry><option>server_autoreconnect</option></entry>
+ <entry>Boolean</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>'on'</entry>
+ <entry>Die Verbindung nach Trennung automatisch wiederherstellen</entry>
+</row>
+<row>
+ <entry><option>server_autoreconnect_delay</option></entry>
+ <entry>Ganzzahl</entry>
+ <entry>zwischen 0 und 65535</entry>
+ <entry>30</entry>
+ <entry>Zeit in Sekunden, die gewartet wird, bevor ein Verbindungsneuaufbau versucht wird</entry>
+</row>
+<row>
+ <entry><option>server_address</option></entry>
+ <entry>Zeichenfolge</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>''</entry>
+ <entry>IP-Adresse oder Hostname des IRC-Servers</entry>
+</row>
+<row>
+ <entry><option>server_port</option></entry>
+ <entry>Ganzzahl</entry>
+ <entry>zwischen 0 und 65535</entry>
+ <entry>6667</entry>
+ <entry>Port, auf dem der IRC-Server läuft</entry>
+</row>
+<row>
+ <entry><option>server_ipv6</option></entry>
+ <entry>Boolean</entry>
+ <entry>zwischen 0 und 65535</entry>
+ <entry>'off'</entry>
+ <entry>Server über IPv6 ansprechen</entry>
+</row>
+<row>
+ <entry><option>server_ssl</option></entry>
+ <entry>Boolean</entry>
+ <entry>zwischen 0 und 65535</entry>
+ <entry>'off'</entry>
+ <entry>Server über SSL ansprechen</entry>
+</row>
+<row>
+ <entry><option>server_password</option></entry>
+ <entry>Zeichenfolge</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>''</entry>
+ <entry>Passwort für den IRC-Server</entry>
+</row>
+<row>
+ <entry><option>server_nick1</option></entry>
+ <entry>Zeichenfolge</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>''</entry>
+ <entry>Eigener Nickname, der auf dem IRC-Server benutzt werden soll</entry>
+</row>
+<row>
+ <entry><option>server_nick2</option></entry>
+ <entry>Zeichenfolge</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>''</entry>
+ <entry>Alternativer Nickname, der auf dem IRC-Server benutzt werden soll, wenn der erste Kandidat bereits benutzt wird</entry>
+</row>
+<row>
+ <entry><option>server_nick3</option></entry>
+ <entry>Zeichenfolge</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>''</entry>
+ <entry>2. alternativer Nickname, der auf dem IRC-Server benutzt werden soll, wenn der erste alternative Nickname bereits benutzt wird</entry>
+</row>
+<row>
+ <entry><option>server_username</option></entry>
+ <entry>Zeichenfolge</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>''</entry>
+ <entry>Benutzername, der an den Server übermittelt werden soll</entry>
+</row>
+<row>
+ <entry><option>server_realname</option></entry>
+ <entry>Zeichenfolge</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>''</entry>
+ <entry>Voller Name, der an den Server übermittelt werden soll</entry>
+</row>
+<row>
+ <entry><option>server_hostname</option></entry>
+ <entry>Zeichenfolge</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>''</entry>
+ <entry>Angepasster Hostname oder angepasste IP-Adresse für den Server (wenn nichts eingetragen ist, wird der lokale Hostname verwendet)</entry>
+</row>
+<row>
+ <entry><option>server_command</option></entry>
+ <entry>Zeichenfolge</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>''</entry>
+ <entry>Befehle, die nach der Verbindung zum Server ausgeführt werden sollen (mehrere Befehle müssen mit einem Semikolon getrennt werden, um ein Semikolon zu schreiben, muss man '\;' verwenden)</entry>
+</row>
+<row>
+ <entry><option>server_command_delay</option></entry>
+ <entry>Ganzzahl</entry>
+ <entry>zwischen 0 und 5</entry>
+ <entry>0</entry>
+ <entry>Wartezeit in Sekunden nach Ausführung des Befehls, um z.B. eine Authentifizierung zu ermöglichen</entry>
+</row>
+<row>
+ <entry><option>server_autojoin</option></entry>
+ <entry>Zeichenfolge</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>''</entry>
+ <entry>Durch Kommata getrennte Liste der Channels, die beim Verbinden zum Server betreten werden sollen (Beispiel: "#chan1,#chan2,#chan3 key1,key2")</entry>
+</row>
+<row>
+ <entry><option>server_autorejoin</option></entry>
+ <entry>Boolean</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>'on'</entry>
+ <entry>Channels nach Kick automatisch wieder betreten, falls möglich</entry>
+</row>
+<row>
+ <entry><option>server_notify_levels</option></entry>
+ <entry>Zeichenfolge</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>''</entry>
+ <entry>Durch Kommata getrennte Liste der Notify-Levels für die Channels auf diesem Server (Format: #channel:1,...)</entry>
+</row>
+<row>
+ <entry><option>server_charset_decode_iso</option></entry>
+ <entry>Zeichenfolge</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>''</entry>
+ <entry>Durch Kommata getrennte Liste der Zeichensätze für den Server und die Channels, um ISO-Nachrichten zu dekodieren (Format: Server:Zeichensatz,#Channel:Zeichensatz)</entry>
+</row>
+<row>
+ <entry><option>server_charset_decode_utf</option></entry>
+ <entry>Zeichenfolge</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>''</entry>
+ <entry>Durch Kommata getrennte Liste der Zeichensätze für Server und Channels, um UTF zu dekodieren (Format: Server:Zeichensatz,#Channel:Zeichensatz,..)</entry>
+</row>
+<row>
+ <entry><option>server_charset_encode</option></entry>
+ <entry>Zeichenfolge</entry>
+ <entry>eine beliebige Zeichenfolge</entry>
+ <entry>''</entry>
+ <entry>Durch Kommata getrennte Liste der Zeichensätze, um Nachrichten vom Server und aus Channels zu dekodieren (Format: Server:Zeichensatz,#Channel:Zeichensatz,..)</entry>
+</row>
diff --git a/doc/de/irc_commands.xml b/doc/de/irc_commands.xml
new file mode 100644
index 000000000..1a7884001
--- /dev/null
+++ b/doc/de/irc_commands.xml
@@ -0,0 +1,443 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+
+<!-- ********* WARNING! *********
+
+ This file is automatically built with a Perl script. DO NOT EDIT!
+-->
+
+<command>admin [Ziel]</command>
+<programlisting>
+Information über den Server-Administrator abfragen
+
+Ziel: Server
+
+</programlisting>
+<command>ame Nachricht</command>
+<programlisting>
+Nachricht an alle Channels aller verbundenen Server schicken
+
+zu sendende Nachricht
+
+</programlisting>
+<command>amsg Text</command>
+<programlisting>
+Nachricht an alle Channels aller verbundener Server schicken
+
+Text: zu sendender Text
+
+</programlisting>
+<command>away [-all] [Nachricht]</command>
+<programlisting>
+Abwesenheitsnachricht ein/ausschalten
+
+ -all: Abwesenheitszustand auf allen Servern ändern
+Nachricht: Abwesenheitsnachricht (bzw. keine, um den Abwesenheitszustand zu deaktivieren)
+
+</programlisting>
+<command>ban [Channel] [Nickname [Nickname ...]]</command>
+<programlisting>
+Nicknames oder Hosts sperren/verbannen
+
+ Channel: Channel für die Sperre
+Nickname: zu sperrender User oder Host
+
+</programlisting>
+<command>ctcp Nickname Typ [Argumente]</command>
+<programlisting>
+CTCP-Nachricht verschicken
+
+ Nickname: User, an den die CTCP-Nachricht geschickt werden soll
+ Typ: Typ der CTCP-Nachricht (z.B. "version", "ping", ...)
+Argumente: Argumente für CTCP
+
+</programlisting>
+<command>cycle [Channel[,Channel]] [Abschiedsnachricht]</command>
+<programlisting>
+einen Channel verlassen und wieder betreten
+
+ Channel: zu verlassender Channel
+Abschiedsnachricht: Abschiedsnachricht (die den anderen Usern angezeigt wird)
+
+</programlisting>
+<command>dehalfop Nickname [Nickname]</command>
+<programlisting>
+Halb-Operatorstatus aberkennen
+
+</programlisting>
+<command>deop Nickname [Nickname]</command>
+<programlisting>
+Operatorstatus aberkennen
+
+</programlisting>
+<command>devoice Nickname [Nickname]</command>
+<programlisting>
+Voice wegnehmen
+
+</programlisting>
+<command>die</command>
+<programlisting>
+Server herunterfahren
+
+</programlisting>
+<command>halfop Nickname [Nickname]</command>
+<programlisting>
+Halb-Operatorstatus verleihen
+
+</programlisting>
+<command>info [Ziel]</command>
+<programlisting>
+Information über den Server abfragen
+
+Ziel: Servername
+
+</programlisting>
+<command>invite Nickname Channel</command>
+<programlisting>
+jemanden in einen Channel einladen
+
+Nickname: Chatname des Einzuladenden
+Channel: Channel, in den er eingeladen werden soll
+
+</programlisting>
+<command>ison Nickname [Nickname ...]</command>
+<programlisting>
+überprüfen, ob jemand zur Zeit im IRC ist
+
+Nickname: Nickname
+
+</programlisting>
+<command>join Channel[,Channel] [Passwort[,Passwort]]</command>
+<programlisting>
+einen Channel betreten
+
+Channel: zu betretender Channel
+ Passwort: Channelpasswort (+k-Mode)
+
+</programlisting>
+<command>kick [Channel] Nickname [Kommentar]</command>
+<programlisting>
+einen User aus einem Channel herauskicken
+
+Channel: Channel des Benutzers
+Nickname: Nickname des Benutzers
+Kommentar: Begründung für den Kick
+
+</programlisting>
+<command>kickban [Channel] Nickname [Kommentar]</command>
+<programlisting>
+kickt und verbannt jemanden von einem Channel
+
+Channel: Channel des Benutzers
+Nickname: Nickname des Benutzers
+Kommentar: Begründung für den Kickban
+
+</programlisting>
+<command>kill Nickname Kommentar</command>
+<programlisting>
+Jemanden vom Server werfen
+
+Nickname: Chatname
+Kommentar: Begründung
+
+</programlisting>
+<command>links [[Server] Servermaske]</command>
+<programlisting>
+Alle dem antwortenden Server bekannten Servernamen auflisten
+
+ Server: dieser Server soll die Anfrage beantworten
+Servermaske: die aufzulistenden Server sollen diesem Muster entsprechen
+
+</programlisting>
+<command>list [Channel[,Channel] [Server]]</command>
+<programlisting>
+Channels mit ihren Topics auflisten
+
+Channel: aufzulistender Channel (reguläre Ausdrücke sind möglich)
+Server: Servername
+
+</programlisting>
+<command>lusers [Maske [Ziel]]</command>
+<programlisting>
+Statistik über die Größe dieses IRC-Netzwerks abfragen
+
+ Maske: Nur Server, die diesem Muster entsprechen
+Ziel: Server, der die Anfrage weiterleiten soll
+
+</programlisting>
+<command>me Nachricht</command>
+<programlisting>
+eine CTCP ACTION an den aktuellen Channel senden
+
+zu sendende Nachricht
+
+</programlisting>
+<command>mode { Channel {[+|-]|o|p|s|i|t|n|b|v} [Limit] [User] [Bannmaske] } | {Nickname {[+|-]|i|w|s|o} }</command>
+<programlisting>
+Channel- oder Usermode ändern
+
+Channelmodi:
+ Channel: zu ändernder Channel
+ o: gib/nimm Operatorstatus
+ p: privater Channel
+ s: geheimer Channel
+ i: geschlossener Channel (Zutritt nur mit Einladung)
+ t: nur Operatoren dürfen das Topic setzen
+ n: keine Channelnachrichten von außerhalb des Channels
+ m: moderierter Channel (schreiben nur mit Voice)
+ l: maximale Anzahl an Usern im Channel festlegen
+ b: Bannmaske für zu sperrende User (in nick!ident@host-Form)
+ e: lege Ausnahmemaske fest
+ v: gib/nimm Voice (d.h. Schreibrecht bei moderierten Channels)
+ k: Channelkey/Channelpasswort festlegen
+Usermodi:
+ Nickname: zu ändernder Nickname
+ i: User als unsichtbar kennzeichnen
+ s: User empfängt Server-Nachrichten
+ w: User empfängt WALLOPS
+ o: User ist Channeloperator
+
+</programlisting>
+<command>motd [Ziel]</command>
+<programlisting>
+die "Nachricht von heute" abfragen
+
+Ziel: Servername
+
+</programlisting>
+<command>msg Empfänger[,Empfänger] Text</command>
+<programlisting>
+Nachricht an Nick/Channel verschicken
+
+Empfänger: Nick/Channel (darf eine Maske sein, '*' = aktueller Channel)
+Text: zu sendender Text
+
+</programlisting>
+<command>names [Channel[,Channel]]</command>
+<programlisting>
+Nicknames in Channels auflisten
+
+Channel: Channelname
+
+</programlisting>
+<command>nick [-all] Nickname</command>
+<programlisting>
+aktuellen Nickname wechseln
+
+ -all: Nickname auf allen verbundenen Servern ändern
+Nickname: neuer Nickname
+
+</programlisting>
+<command>notice Nickname Text</command>
+<programlisting>
+NOTICE an einen User verschicken
+
+Nickname: Empfänger der Nachricht
+ Text: zu sendender Text
+
+</programlisting>
+<command>op Nickname [Nickname]</command>
+<programlisting>
+Channeloperatorstatus verleihen
+
+</programlisting>
+<command>oper Benutzername Passwort</command>
+<programlisting>
+Serveroperatorprivilegien anfordern
+
+Benutzername/Passwort: Account im IRC-Server
+
+</programlisting>
+<command>part [Channel[,Channel]] [Abschiedsnachricht]</command>
+<programlisting>
+einen Channel verlassen
+
+ Channel: zu verlassender Channel
+Abschiedsnachricht: Abschiedsnachricht, die den anderen Usern angezeigt wird
+
+</programlisting>
+<command>ping Server1 [Server2]</command>
+<programlisting>
+Server anpingen
+
+Server1: Anzupingender Server
+Server2: Ping an diesen Server weiterleiten
+
+</programlisting>
+<command>pong Daemon [Daemon2]</command>
+<programlisting>
+auf Ping antworten
+
+ Daemon: Daemon, der auf die Ping-Nachricht geantwortet hat
+Daemon2: Nachricht an diesen Daemon weiterleiten
+
+</programlisting>
+<command>query Nickname [Text]</command>
+<programlisting>
+private Nachricht an jemanden schicken
+
+Nickname: Nickname für privaten Chat
+ Text: zu sendender Text
+
+</programlisting>
+<command>quit [Abschiedsnachricht]</command>
+<programlisting>
+alle Verbindungen trennen und Programm beenden
+
+Abschiednachricht: anderen Usern zu zeigende Nachricht
+
+</programlisting>
+<command>quote Daten</command>
+<programlisting>
+Daten direkt an Server senden (siehe RFC 2812)
+
+Daten: zu sendende Rohdaten
+
+</programlisting>
+<command>rehash</command>
+<programlisting>
+den Server dazu bringen, seine Konfigurationsdatei neu zu laden
+
+</programlisting>
+<command>restart</command>
+<programlisting>
+den Server dazu bringen, sich selbst neu zu starten
+
+</programlisting>
+<command>service Nickname reserviert Distribution Typ reserviert Info</command>
+<programlisting>
+einen neuen Service eintragen
+
+Distribution: Sichtbarkeit des Services
+ Typ: für spätere Verwendung reserviert
+
+</programlisting>
+<command>servlist [Maske [Typ]]</command>
+<programlisting>
+zur Zeit verbundene Services auflisten
+
+Maske: nur zutreffende Services auflisten
+Typ: nur Services von diesem Typ auflisten
+
+</programlisting>
+<command>squery Service Text</command>
+<programlisting>
+Nachricht an einen Service senden
+
+Service: Name des Service
+Text: zu sendender Text
+
+</programlisting>
+<command>squit Server Kommentar</command>
+<programlisting>
+Serververbindungen trennen
+
+Server: Servername
+Kommentar: Trennungsgrund
+
+</programlisting>
+<command>stats [Anfrage [Server]]</command>
+<programlisting>
+Serverstatistik abfragen
+
+ Anfrage: c/h/i/k/l/m/o/y/u (siehe RFC1459)
+Server: zu befragender Server
+
+</programlisting>
+<command>summon User [Ziel [Channel]]</command>
+<programlisting>
+Nutzer, die auf dem IRC-Server arbeiten, darum bitten, auf den IRC-Server zu kommen
+
+ User: Benutzername
+Ziel: Servername
+Channel: Channelname
+
+</programlisting>
+<command>time [Ziel]</command>
+<programlisting>
+Ortszeit des Servers abfragen
+
+Ziel: der zu fragende Server
+
+</programlisting>
+<command>topic [Channel] [Topic]</command>
+<programlisting>
+Channeltopic abfragen/setzen
+
+Channel: Channelname
+Topic: neues Topic (oder "-delete" zum Entfernen des Topics)
+
+</programlisting>
+<command>trace [Ziel]</command>
+<programlisting>
+Route zum angegebenen Server ermitteln
+
+Ziel: Server
+
+</programlisting>
+<command>unban [Channel] nickname [nickname ...]</command>
+<programlisting>
+Bann aufheben
+
+ Channel: Channel, in dem der Bann aufzuheben ist
+Nickname: User, für den der Bann aufzuheben ist
+
+</programlisting>
+<command>userhost Nickname [Nickname ...]</command>
+<programlisting>
+liste von Nickname-Informationen ermitteln
+
+Nickname: Nickname
+
+</programlisting>
+<command>users [Ziel]</command>
+<programlisting>
+auf dem Server eingeloggte User auflisten
+
+Ziel: Server
+
+</programlisting>
+<command>version [Server | Nickname]</command>
+<programlisting>
+Versionsinformationen von Nickname oder Server ermitteln
+
+ Server: Servername
+Nickname: Nickname
+
+</programlisting>
+<command>voice Nickname [Nickname]</command>
+<programlisting>
+Voice vergeben
+
+</programlisting>
+<command>wallops Text</command>
+<programlisting>
+Nachricht an alle User schicken, die den 'w'-Mode gesetzt haben
+
+zu sendender Text
+
+</programlisting>
+<command>who [Maske ["o"]]</command>
+<programlisting>
+erweiterte Nicknameliste
+
+Maske: nur Information über betreffende Nicknames abfragen
+ o: nur Operatoren ausgeben, die dem Filter entsprechen
+
+</programlisting>
+<command>whois [Server] Nickname[,Nickname]</command>
+<programlisting>
+Information über User abfragen
+
+ Server: Servername
+Nickname: Nickname (oder eine Maske)
+
+</programlisting>
+<command>whowas Nickname [,Nickname [,Nickname ...]] [Anzahl [Ziel]]</command>
+<programlisting>
+Information über die Vergangenheit eines Nicknames erfragen
+
+Nickname: abzufragende Nicknames
+ Anzahl: maximale Anzahl an Antworten (negative Zahl für eine vollständige Liste)
+ Ziel: zu suchende Hostmaske
+
+</programlisting>
diff --git a/doc/de/key_functions.xml b/doc/de/key_functions.xml
new file mode 100644
index 000000000..62172b7ed
--- /dev/null
+++ b/doc/de/key_functions.xml
@@ -0,0 +1,187 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+
+<!-- ********* WARNING! *********
+
+ This file is automatically built with a Perl script. DO NOT EDIT!
+-->
+
+<row>
+ <entry><literal>return</literal></entry>
+ <entry>Zeile terminieren</entry>
+</row>
+<row>
+ <entry><literal>tab</literal></entry>
+ <entry>Wort vervollständigen</entry>
+</row>
+<row>
+ <entry><literal>backspace</literal></entry>
+ <entry>vorheriges Zeichen löschen</entry>
+</row>
+<row>
+ <entry><literal>delete</literal></entry>
+ <entry>nächstes Zeichen löschen</entry>
+</row>
+<row>
+ <entry><literal>delete_end_line</literal></entry>
+ <entry>bis zum Zeilenende löschen</entry>
+</row>
+<row>
+ <entry><literal>delete_beginning_line</literal></entry>
+ <entry>bis zum Zeilenanfang löschen</entry>
+</row>
+<row>
+ <entry><literal>delete_line</literal></entry>
+ <entry>ganze Zeile löschen</entry>
+</row>
+<row>
+ <entry><literal>delete_previous_word</literal></entry>
+ <entry>vorheriges Wort löschen</entry>
+</row>
+<row>
+ <entry><literal>delete_next_word</literal></entry>
+ <entry>nächstes Wort löschen</entry>
+</row>
+<row>
+ <entry><literal>clipboard_paste</literal></entry>
+ <entry>einfügen</entry>
+</row>
+<row>
+ <entry><literal>transpose_chars</literal></entry>
+ <entry>Zeichen vertauschen</entry>
+</row>
+<row>
+ <entry><literal>home</literal></entry>
+ <entry>zum Zeilenanfang gehen</entry>
+</row>
+<row>
+ <entry><literal>end</literal></entry>
+ <entry>zum Zeilenende gehen</entry>
+</row>
+<row>
+ <entry><literal>left</literal></entry>
+ <entry>ein Zeichen nach links gehen</entry>
+</row>
+<row>
+ <entry><literal>previous_word</literal></entry>
+ <entry>ein Wort nach links gehen</entry>
+</row>
+<row>
+ <entry><literal>right</literal></entry>
+ <entry>ein Zeichen nach rechts gehen</entry>
+</row>
+<row>
+ <entry><literal>next_word</literal></entry>
+ <entry>ein Wort nach rechts gehen</entry>
+</row>
+<row>
+ <entry><literal>up</literal></entry>
+ <entry>vorherigen Befehl aus dem Verlauf abfragen</entry>
+</row>
+<row>
+ <entry><literal>up_global</literal></entry>
+ <entry>vorherigen Befehl aus dem globalen Verlauf abfragen</entry>
+</row>
+<row>
+ <entry><literal>down</literal></entry>
+ <entry>nächsten Befehl aus dem Verlauf abfragen</entry>
+</row>
+<row>
+ <entry><literal>down_global</literal></entry>
+ <entry>nächsten Befehl aus dem globalen Verlauf abfragen</entry>
+</row>
+<row>
+ <entry><literal>page_up</literal></entry>
+ <entry>eine Seite hochscrollen</entry>
+</row>
+<row>
+ <entry><literal>page_down</literal></entry>
+ <entry>eine Seite herunterscrollen</entry>
+</row>
+<row>
+ <entry><literal>scroll_up</literal></entry>
+ <entry>einige Zeilen hochscrollen</entry>
+</row>
+<row>
+ <entry><literal>scroll_down</literal></entry>
+ <entry>einige Zeilen herunterscrollen</entry>
+</row>
+<row>
+ <entry><literal>scroll_top</literal></entry>
+ <entry>nach ganz oben scrollen</entry>
+</row>
+<row>
+ <entry><literal>scroll_bottom</literal></entry>
+ <entry>nach ganz unten scrollen</entry>
+</row>
+<row>
+ <entry><literal>nick_beginning</literal></entry>
+ <entry>zum Anfang der Nicklist gehen</entry>
+</row>
+<row>
+ <entry><literal>nick_end</literal></entry>
+ <entry>zum Ende der Nicklist gehen</entry>
+</row>
+<row>
+ <entry><literal>nick_page_up</literal></entry>
+ <entry>Nickliste eine Seite hochscrollen</entry>
+</row>
+<row>
+ <entry><literal>nick_page_down</literal></entry>
+ <entry>Nickliste eine Seite herunterscrollen</entry>
+</row>
+<row>
+ <entry><literal>jump_smart</literal></entry>
+ <entry>zu nächstem aktiven Puffer springen</entry>
+</row>
+<row>
+ <entry><literal>jump_dcc</literal></entry>
+ <entry>zum DCC-Puffer springen</entry>
+</row>
+<row>
+ <entry><literal>jump_raw_data</literal></entry>
+ <entry>gehe zum IRC-Rohdaten-Puffer</entry>
+</row>
+<row>
+ <entry><literal>jump_last_buffer</literal></entry>
+ <entry>zum letzten Puffer springen</entry>
+</row>
+<row>
+ <entry><literal>jump_server</literal></entry>
+ <entry>zum Serverpuffer springen</entry>
+</row>
+<row>
+ <entry><literal>jump_next_server</literal></entry>
+ <entry>zum nächsten Server springen</entry>
+</row>
+<row>
+ <entry><literal>switch_server</literal></entry>
+ <entry>wechsel den aktiven Server im Server-Puffer</entry>
+</row>
+<row>
+ <entry><literal>scroll_previous_highlight</literal></entry>
+ <entry>scrolle zur vorherigen hervorhebung im Puffer</entry>
+</row>
+<row>
+ <entry><literal>scroll_next_highlight</literal></entry>
+ <entry>scrolle zur nächsten Hervorhebung im Puffer</entry>
+</row>
+<row>
+ <entry><literal>scroll_unread</literal></entry>
+ <entry>scrolle zur ersten, ungelesenen Zeile im Puffer</entry>
+</row>
+<row>
+ <entry><literal>hotlist_clear</literal></entry>
+ <entry>Hotlist leeren</entry>
+</row>
+<row>
+ <entry><literal>infobar_clear</literal></entry>
+ <entry>Infobar leeren</entry>
+</row>
+<row>
+ <entry><literal>refresh</literal></entry>
+ <entry>Bild neu aufbauen</entry>
+</row>
+<row>
+ <entry><literal>grab_key</literal></entry>
+ <entry>Tastencode ermitteln und einfügen</entry>
+</row>
diff --git a/doc/de/weechat.de.xml b/doc/de/weechat.de.xml
new file mode 100644
index 000000000..38b11a8d2
--- /dev/null
+++ b/doc/de/weechat.de.xml
@@ -0,0 +1,5790 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+
+<!--
+
+WeeChat documentation (german version)
+
+Copyright (c) 2003-2006 by FlashCode <flashcode@flashtux.org>
+
+This manual is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+This manual is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+-->
+
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+"file:///usr/share/xml/docbook/schema/dtd/4.2/docbookx.dtd"
+[
+ <!ENTITY config.xml SYSTEM "config.xml">
+ <!ENTITY weechat_commands.xml SYSTEM "weechat_commands.xml">
+ <!ENTITY irc_commands.xml SYSTEM "irc_commands.xml">
+ <!ENTITY key_functions.xml SYSTEM "key_functions.xml">
+]>
+
+<book lang="de">
+
+ <bookinfo>
+
+ <title>WeeChat 0.1.9-cvs - User guide</title>
+ <subtitle>Schneller, leichter und erweiterbarer IRC Client</subtitle>
+
+ <author>
+ <firstname>Sébastien</firstname>
+ <surname>Helleu</surname>
+ <email>flashcode AT flashtux.org</email>
+ </author>
+
+ <copyright>
+ <year>2006</year>
+ <holder>Sébastien Helleu</holder>
+ </copyright>
+
+ <legalnotice>
+ <para>
+ Dieses Programm ist freie Software. Sie können es unter
+ den Bedingungen der GNU General Public License,
+ wie von der Free Software Foundation veröffentlicht,
+ weitergeben und/oder modifizieren, entweder gemäß Version 2
+ der Lizenz oder (nach Ihrer Option) jeder späteren Version.
+ </para>
+ <para>
+ Die Veröffentlichung dieses Programms erfolgt in der
+ Hoffnung, daß es Ihnen von Nutzen sein wird, aber OHNE
+ IRGENDEINE GARANTIE, sogar ohne die implizite Garantie der
+ MARKTREIFE oder der VERWENDBARKEIT FÜR EINEN BESTIMMTEN ZWECK.
+ Details finden Sie in der GNU General Public License.
+ </para>
+ <para>
+ Sie sollten ein Exemplar der GNU General Public License
+ zusammen mit diesem Programm erhalten haben. Falls nicht,
+ schreiben Sie an die Free Software Foundation, Inc.,
+ 51 Franklin St, Fifth Floor, Boston, MA 02110, USA.
+ </para>
+ </legalnotice>
+
+ <abstract>
+ <para>
+ Dieses Dokument beschreibt den WeeChat IRC client, es ist ein Teil von WeeChat.
+ </para>
+ <para>
+ Deutsche version: Frank Zacharias
+ </para>
+ <para>
+ Die aktuellste Version ist auf dieser Seite zu finden:
+ <ulink url="http://weechat.flashtux.org/doc.php">
+ http://weechat.flashtux.org/doc.php
+ </ulink>
+ </para>
+ </abstract>
+
+ </bookinfo>
+
+ <!-- =========================== Introduction =========================== -->
+
+ <chapter id="chapIntroduction">
+ <title> Einführung </title>
+
+ <para>
+ Dieses Kapitel beschreibt WeeChat und die Vorraussetzungen für die Installation.
+ </para>
+
+ <section id="secDescription">
+ <title> Beschreibung </title>
+
+ <para>
+ WeeChat (Wee Enhanced Environment for Chat) ist ein freier
+ <acronym>IRC</acronym> Client, schnell und klein, entwickelt für viele
+ Betriebssysteme.
+ </para>
+
+ <para>
+ Hauptmerkmale:
+ <itemizedlist>
+ <listitem>
+ <para>
+ Mehrere Server gleichzeitig nutzbar (mit SSL, IPv6, Proxy)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ viele unterschiedliche User-Interfaces: Curses, wxWidgets, Gtk und Qt
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ klein, schnell and leichtgewichtig
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ änderbar und erweiterbar mit Plugins und Skripten
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ entsprechend den folgenden <acronym>RFC</acronym>s
+ <ulink url="http://www.ietf.org/rfc/rfc1459.txt">1459</ulink>,
+ <ulink url="http://www.ietf.org/rfc/rfc2810.txt">2810</ulink>,
+ <ulink url="http://www.ietf.org/rfc/rfc2811.txt">2811</ulink>,
+ <ulink url="http://www.ietf.org/rfc/rfc2812.txt">2812</ulink> und
+ <ulink url="http://www.ietf.org/rfc/rfc2813.txt">2813</ulink>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Viele Plattformen (GNU/Linux, *BSD, MacOS X, Windows and other)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ 100% GPL, freie Software
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+
+ <para>
+ WeeChat Homepage:
+ <ulink url="http://weechat.flashtux.org">
+ http://weechat.flashtux.org
+ </ulink>
+ </para>
+
+ </section>
+
+ <section id="secPreRequis">
+ <title> Vorraussetzungen </title>
+
+ <para>
+ Um WeeChat zu installieren, werden <emphasis> gebraucht </emphasis>:
+ <itemizedlist>
+ <listitem>
+ <para>
+ ein laufendes GNU/Linux (Compiler für Quellcode-Pakete)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ root-Rechte für die Installation
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ je nach zu verwendeten User-Interface, eine der folgenden Bibliotheken:
+ <itemizedlist>
+ <listitem>
+ <para>
+ Curses: ncurses Bibliothek
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Gtk: <emphasis>*** noch nicht implementiert ***</emphasis>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ WxWidgets: <emphasis>*** noch nicht implementiert ***</emphasis>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Qt: <emphasis>*** noch nicht implementiert ***</emphasis>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+
+ </section>
+ </chapter>
+
+ <!-- =========================== Installation =========================== -->
+
+ <chapter id="chapInstallation">
+ <title>Installation</title>
+
+ <para>
+ Dieses Kapitel erklärt die Installation von WeeChat.
+ </para>
+
+ <section id="secBinaryPackages">
+ <title> Binäre Pakete </title>
+
+ <para>
+ Binäre Pakete sind für die folgenden Distributionen verfügbar:
+ <itemizedlist>
+ <listitem>
+ <para>
+ Debian (oder Debian-kompatible):
+ <userinput>apt-get install weechat</userinput>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Mandriva/RedHat (oder jede RPM-kompatible Distribution):
+ <userinput>
+ rpm -i /chemin/weechat-x.y.z-1.i386.rpm
+ </userinput>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Gentoo:
+ <userinput>emerge weechat</userinput>
+ </para>
+ </listitem>
+ </itemizedlist>
+ FÜr andere Distributionen: sehen sie in die Dokumentation
+ für Installationsanweisungen.
+ </para>
+
+ </section>
+
+ <section id="secSourcePackage">
+ <title> Quellcode-Pakete </title>
+
+ <para>
+ Alles was sie tun müssen, ist in einer Konsole oder einem Terminal aufzurufen:
+<screen><prompt>$ </prompt><userinput>./configure</userinput>
+<prompt>$ </prompt><userinput>make</userinput></screen>
+ </para>
+ <para>
+ Dann root werden und WeeChat installieren:
+<screen><prompt>$ </prompt><userinput>su</userinput>
+(root-Passwort eingeben)
+<prompt># </prompt><userinput>make install</userinput></screen>
+ </para>
+
+ </section>
+
+ <section id="secCVSSources">
+ <title>CVS Quellen</title>
+
+ <para>
+ Warnung: CVS Quellen sind für fortgeschrittene Anwender, das Übersetzen könnte
+ fehlschlagen oder das Ergebnis nicht stabil sein. Sie wurden gewarnt!
+ </para>
+
+ <para>
+ Um die CVS Quellen zu bekommen, sind folgende Kommandos nötig:
+<screen><prompt>$ </prompt><userinput>cvs -z3 -d:pserver:anonymous@cvs.savannah.nongnu.org:/sources/weechat co weechat</userinput></screen>
+ </para>
+
+ <para>
+ Ausführen des folgenden Skripts:
+ <userinput>./autogen.sh</userinput>
+ </para>
+
+ <para>
+ Dann folgen sie den Anweisungen zu den Quellpaketen
+ (siehe <xref linkend="secSourcePackage" />)
+ </para>
+
+ </section>
+
+ </chapter>
+
+ <!-- ============================== Usage =============================== -->
+
+ <chapter id="chapUsage">
+ <title> Nutzung </title>
+
+ <para>
+ Dieses Kapitel erklärt, wie Weechat zu starten ist, die zu verwendenden
+ Tastenkombinationen, interne und IRC-Kommandos, die Konfigurationsdatei
+ und die FIFO für die remote-Bedienung.
+ </para>
+
+ <section id="secRunningWeeChat">
+ <title>Starten von WeeChat</title>
+
+ <para>
+ Argumente der Kommandozeile:
+ <informaltable colsep="0" frame="none">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Parameter</entry>
+ <entry>Beschreibung</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry><literal>-a, --no-connect</literal></entry>
+ <entry>
+ Schaltet das auto-connect ab
+ </entry>
+ </row>
+ <row>
+ <entry><literal>-c, --config</literal></entry>
+ <entry>
+ Zeigt eine Hilfe zu den Konfigurationsmöglichkeiten (Liste der Optionen)
+ </entry>
+ </row>
+ <row>
+ <entry><literal>-d, --dir &lt;path&gt;</literal></entry>
+ <entry>
+ Setzt den Pfad für das Verzeichnis, dass Weechat benutzen soll
+ (relevant für die Konfigurationsdateien, Logs, Plugins und Skripte).
+ Der Standardwert "<literal>~/.weechat</literal>".
+ Bitte beachten Sie: dieses Verzeichnis wird automatisch erzeugt, wenn es noch nicht
+ exitiert.
+ </entry>
+ </row>
+ <row>
+ <entry><literal>-f, --key-functions</literal></entry>
+ <entry>
+ Zeigt die intern verwendeten Funktionen von WeeChat für bestimmte Tastenkombinationen an
+ </entry>
+ </row>
+ <row>
+ <entry><literal>-h, --help</literal></entry>
+ <entry>
+ Zeigt eine zusammenfassende Hilfe an.
+ </entry>
+ </row>
+ <row>
+ <entry><literal>-i, --irc-commands</literal></entry>
+ <entry>
+ Zeigt die IRC-Kommandos an
+ </entry>
+ </row>
+ <row>
+ <entry><literal>-k, --keys</literal></entry>
+ <entry>
+ Zeigt die Standard-Tastenkombinationen an
+ </entry>
+ </row>
+ <row>
+ <entry><literal>-l, --license</literal></entry>
+ <entry>
+ Zeigt die Lizenz an
+ </entry>
+ </row>
+ <row>
+ <entry><literal>-p, --no-plugin</literal></entry>
+ <entry>
+ Schaltet das automatische Laden der Plugins ab
+ </entry>
+ </row>
+ <row>
+ <entry><literal>-v, --version</literal></entry>
+ <entry>
+ Zeigt die Programmversion an
+ </entry>
+ </row>
+ <row>
+ <entry><literal>-w, --weechat-commands</literal></entry>
+ <entry>
+ Zeigt die Weechat-eigenen Kommandos an
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+
+ <para>
+ Es ist auch möglich URLs für einen oder mehrere IRC-Server anzugeben, so wie:
+ <screen>irc[6][s]://[nick[:passwort]@]irc.example.org[:port][/channel][,channel[...]</screen>
+ Beispiel um die Channels #weechat and #toto zu betreten
+ "<literal>irc.freenode.net</literal>" server, default port (6667),
+ mit dem Nicknamen "nono":
+ <screen><prompt>$ </prompt><userinput>weechat-curses irc://nono@irc.freenode.net/#weechat,#toto</userinput></screen>
+ </para>
+
+ <para>
+ Um WeeChat zu starten, ist eins der folgenden Kommandos abzusetzen:
+ <itemizedlist>
+ <listitem>
+ <para>
+ für Curses GUI: <userinput>weechat-curses</userinput>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ für Gtk GUI: <userinput>weechat-gtk</userinput>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ für wxWidgets GUI: <userinput>weechat-wxwidgets</userinput>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ für Qt GUI: <userinput>weechat-qt</userinput>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+
+ <para>
+ Wenn sie Weechat zum ersten Mal starten, wird eine Standard-Konfigurationsdatei
+ erzeugt, deren Optionen besitzen Standardwerte. Diese Datei ist:
+ "<literal>~/.weechat/weechat.rc</literal>"
+ </para>
+
+ <para>
+ Sie können diese Datei entsprechend ihren Bedürfnissen editieren,
+ um Weechat anzupassen (NUR wenn Weechat nicht läuft) oder Parameter
+ zu beeinflussen mit
+ "<literal>/set</literal>" Kommando in WeeChat
+ (siehe <xref linkend="secWeeChatCommands" />)
+ </para>
+
+ </section>
+
+ <section id="secKeyboardShortcuts">
+ <title> Tastenkombinationen </title>
+
+ <para>
+ <informaltable colsep="0" frame="none">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry> Tastenkombination </entry>
+ <entry> Wirkung </entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>Linkspfeil</entry>
+ <entry>
+ Gehe zum vorherigen Zeichen in der Kommandozeile
+ </entry>
+ </row>
+ <row>
+ <entry>Rechtspfeil</entry>
+ <entry>
+ Gehe zum nächsten Zeichen in der Kommandozeile
+ </entry>
+ </row>
+ <row>
+ <entry>Strg + Linkspfeil</entry>
+ <entry>
+ Gehe zum vorherigen Wort in der Kommandozeile
+ </entry>
+ </row>
+ <row>
+ <entry>Strg + Rechtspfeil</entry>
+ <entry>
+ Gehe zum nächsten Wort in der Kommandozeile
+ </entry>
+ </row>
+ <row>
+ <entry>Pos1 / Strg + A</entry>
+ <entry>
+ Gehe zum Anfang der Kommandozeile
+ </entry>
+ </row>
+ <row>
+ <entry>Ende / Strg + E</entry>
+ <entry>
+ Gehe zum Ende der Kommandozeile
+ </entry>
+ </row>
+ <row>
+ <entry>Strg + K</entry>
+ <entry>
+ Lösche vom Cursor bis zum Ende der Kommandozeile
+ </entry>
+ </row>
+ <row>
+ <entry>Strg + L</entry>
+ <entry>
+ Fenster neu aufbauen
+ </entry>
+ </row>
+ <row>
+ <entry>Strg + U</entry>
+ <entry>
+ Lösche vom Cursor bis zum Aanfang der Kommandozeile
+ </entry>
+ </row>
+ <row>
+ <entry>Strg + W</entry>
+ <entry>
+ Lösche das vorhergehende Wort in der Kommandozeile
+ </entry>
+ </row>
+ <row>
+ <entry> Rückschritt </entry>
+ <entry>
+ Lösche das vorhergehende Zeichen in der Kommandozeile
+ </entry>
+ </row>
+ <row>
+ <entry> Entfernen </entry>
+ <entry>
+ Lösche das nächste Zeichen in der Kommandozeile
+ </entry>
+ </row>
+ <row>
+ <entry> Tabulator </entry>
+ <entry>
+ Vervollständige ein Kommando oder Nick
+ (wiederhole: finde nächste Vervollständigung)
+ </entry>
+ </row>
+ <row>
+ <entry>Jedes Zeichen</entry>
+ <entry>
+ Setze das Zeichen beim Cursor in die Kommandozeile ein
+ </entry>
+ </row>
+ <row>
+ <entry>Eingabe</entry>
+ <entry>
+ Führe ein Kommando aus oder sende eine Nachricht
+ </entry>
+ </row>
+ <row>
+ <entry>Hochpfeil / Abwärtspfeil</entry>
+ <entry>
+ Rufe das letzte Kommando/die letzte Nachricht wieder auf
+ </entry>
+ </row>
+ <row>
+ <entry>Strg + Hoch / Strg + Runter</entry>
+ <entry>
+ Rufe das letzte Kommando/die letzte Nachricht des globalen Buffers
+ wieder auf (für alle Buffer)
+ </entry>
+ </row>
+ <row>
+ <entry>Seite hoch / Seite runter</entry>
+ <entry>
+ Eine Seite hoch / runter im Verlauf des Buffers
+ </entry>
+ </row>
+ <row>
+ <entry>Alt + Seite hoch / Alt + Seite runter </entry>
+ <entry>
+ Ein paar Zeilen hoch / runter im Verlauf des Buffers
+ </entry>
+ </row>
+ <row>
+ <entry> Alt + Pos1 / Alt + Ende </entry>
+ <entry>
+ Gehe zum Anfang / Ende des Puffers
+ </entry>
+ </row>
+ <row>
+ <entry> F5 / Alt + Links </entry>
+ <entry>
+ Gehe zum vorherigen Puffer
+ </entry>
+ </row>
+ <row>
+ <entry> F6 / Alt + Rechts </entry>
+ <entry>
+ Gehe zum nächsten Puffer
+ </entry>
+ </row>
+ <row>
+ <entry>F7</entry>
+ <entry>
+ Schalte in das vorherige Fenster
+ </entry>
+ </row>
+ <row>
+ <entry>F8</entry>
+ <entry>
+ Schalte in das nächste Fenster
+ </entry>
+ </row>
+ <row>
+ <entry>F10</entry>
+ <entry>
+ Entferne den letzten Hinweis in der Infobar
+ </entry>
+ </row>
+ <row>
+ <entry>F11 / F12</entry>
+ <entry>
+ Blättere in der Nicklist
+ </entry>
+ </row>
+ <row>
+ <entry>Alt + F11 / Alt + F12</entry>
+ <entry>
+ Gehe zum Anfang / Ende der Nicklist
+ </entry>
+ </row>
+ <row>
+ <entry>Alt + A</entry>
+ <entry>
+ Schalte in den nächsten Puffer mit Aktivität
+ (mit der Priorität: highlight, message, other)
+ </entry>
+ </row>
+ <row>
+ <entry>Alt + B</entry>
+ <entry>
+ Gehe zum vorherigen Wort in der Kommandozeile
+ </entry>
+ </row>
+ <row>
+ <entry>Alt + D</entry>
+ <entry>
+ Lösche das nächste Wort in der Kommandozeile
+ </entry>
+ </row>
+ <row>
+ <entry>Alt + F</entry>
+ <entry>
+ Gehe zum nächsten Wort in der Kommandozeile
+ </entry>
+ </row>
+ <row>
+ <entry>Alt + H</entry>
+ <entry>
+ Lösche den Inhalt der Hotlist
+ (Aktivitätsanzeige für andere Puffer)
+ </entry>
+ </row>
+ <row>
+ <entry>Alt + J dann Alt + D</entry>
+ <entry>
+ Zeige den DCC-Puffer
+ </entry>
+ </row>
+ <row>
+ <entry>Alt + J dann Alt + L</entry>
+ <entry>
+ Schalte zum letzten Puffer
+ </entry>
+ </row>
+ <row>
+ <entry>Alt + J dann Alt + R</entry>
+ <entry>
+ Schalte in den reinen IRC-Daten Puffer
+ </entry>
+ </row>
+ <row>
+ <entry>Alt + J dann Alt + S</entry>
+ <entry>
+ Schalte in den Server-Puffer
+ </entry>
+ </row>
+ <row>
+ <entry>Alt + J dann Alt + X</entry>
+ <entry>
+ Schalte in den ersten Channel des nächsten Puffers
+ (oder in den Server-Puffer wenn keine Channel offen ist)
+ </entry>
+ </row>
+ <row>
+ <entry>Alt + Zahl (0-9)</entry>
+ <entry>
+ Schalte in den Puffer mit der Nummer (0 = 10)
+ </entry>
+ </row>
+ <row>
+ <entry>Alt + J dann eine Zahl (01-99)</entry>
+ <entry>
+ Schalte in den Puffer mit der Nummer
+ </entry>
+ </row>
+ <row>
+ <entry>Alt + K</entry>
+ <entry>
+ Setze den Keycode der nächsten Taste in der Kommandozeile
+ ein
+ </entry>
+ </row>
+ <row>
+ <entry>Alt + N</entry>
+ <entry>
+ Blättere zum nächsten Highlight
+ </entry>
+ </row>
+ <row>
+ <entry>Alt + P</entry>
+ <entry>
+ Blättere zum vorigen Highlight
+ </entry>
+ </row>
+ <row>
+ <entry>Alt + R</entry>
+ <entry>
+ Lösche die komplette Kommandozeile
+ </entry>
+ </row>
+ <row>
+ <entry>Alt + S</entry>
+ <entry>
+ Schalte zwischen den Servern im Server-Puffer hin und her
+ (wenn "look_one_server_buffer" angeschaltet ist)
+ </entry>
+ </row>
+ <row>
+ <entry>Alt + U</entry>
+ <entry>
+ Blättere zur ersten ungelesenen Zeile im Puffer
+ </entry>
+ </row>
+ <row>
+ <entry>Alt + W dann Alt + Pfeil</entry>
+ <entry>
+ Schalte zum Fenster in der entsprechenden Richtung
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+
+ </section>
+
+ <section id="secCommandLine">
+ <title> Kommandozeile </title>
+
+ <para>
+ Die WeeChat Kommandozeile (am Ende des Fensters) lässt sie Nachrichten an einen
+ Channel senden oder WeeChat- bzw. IRC-Kommandos ausführen
+ (siehe <xref linkend="secWeeChatIRCCommands" />).
+ </para>
+
+ <para>
+ Kommandos beginnen mit einem "/", gefolgt vom Namen des Kommandos.
+ Um zum Beispiel einen privaten Chat mit "<literal>toto</literal>" zu beginnen:
+ <screen><userinput>/query toto</userinput></screen>
+ </para>
+
+ <para>
+ Nachrichten an einen Channel sind jeder Text, der nicht mit einem "/" begint.
+ Um zum Beispiel den Text "<literal>hello</literal>" an den gegenwärtigen Channel
+ zu senden:
+ <screen><userinput>hello</userinput></screen>
+ </para>
+
+ <para>
+ Dennoch ist es möglich, eine Nachricht auch mit einem "/" zu beginnen, einfach
+ ein weiteres "/" voranstellen. Um zum Beispiel den Text "<literal>/query toto</literal>"
+ an den gegenwärtigen Channel zu senden:
+ <screen><userinput>//query toto</userinput></screen>
+ </para>
+
+ <para>
+ Wenn die Option IRC-Farben ("<literal>irc_colors_send</literal>") senden
+ angeschaltet ist, können sie Farbcodierung und Attribute wiefolgt verwenden:
+ <informaltable colsep="0" frame="none">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Code</entry>
+ <entry>Beschreibung</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>%B</entry>
+ <entry>
+ Fett (bold)
+ </entry>
+ </row>
+ <row>
+ <entry>%Cxx</entry>
+ <entry>
+ Textfarbe "<literal>xx</literal>" (color)
+ (siehe Farbtabelle)
+ </entry>
+ </row>
+ <row>
+ <entry>%Cxx,yy</entry>
+ <entry>
+ Textfarbe "<literal>xx</literal>"
+ und Hintergrund "<literal>yy</literal>"
+ (siehe Farbtabelle)
+ </entry>
+ </row>
+ <row>
+ <entry>%O</entry>
+ <entry>
+ Schalte Farben und Attribute ab
+ </entry>
+ </row>
+ <row>
+ <entry>%R</entry>
+ <entry>
+ umgedrehte Farben (tausche Textfarbe mit Hintergrundfarbe)
+ </entry>
+ </row>
+ <row>
+ <entry>%U</entry>
+ <entry>
+ Unterstreiche Text
+ </entry>
+ </row>
+ <row>
+ <entry>%%</entry>
+ <entry>
+ Schreibe ein einzelnes "<literal>%</literal>"
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ Hinweis: Der gleiche Farbcode (ohne die Nummer) kann zum Ausschalten
+ des Attributes verwendet werden.
+ </para>
+
+ <para>
+ Farbcodes für %C:
+ <informaltable colsep="0" frame="none">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Code</entry>
+ <entry>Farbe</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>00</entry>
+ <entry>weiss</entry>
+ </row>
+ <row>
+ <entry>01</entry>
+ <entry>schwarz</entry>
+ </row>
+ <row>
+ <entry>02</entry>
+ <entry>dunkles Blau</entry>
+ </row>
+ <row>
+ <entry>03</entry>
+ <entry>dunkles Grün </entry>
+ </row>
+ <row>
+ <entry>04</entry>
+ <entry>helles Rot </entry>
+ </row>
+ <row>
+ <entry>05</entry>
+ <entry>dunkles Rot</entry>
+ </row>
+ <row>
+ <entry>06</entry>
+ <entry> Magenta </entry>
+ </row>
+ <row>
+ <entry>07</entry>
+ <entry> Orange </entry>
+ </row>
+ <row>
+ <entry>08</entry>
+ <entry> Gelb </entry>
+ </row>
+ <row>
+ <entry>09</entry>
+ <entry> helles Grün</entry>
+ </row>
+ <row>
+ <entry>10</entry>
+ <entry> Cyan </entry>
+ </row>
+ <row>
+ <entry>11</entry>
+ <entry> helles Cyan</entry>
+ </row>
+ <row>
+ <entry>12</entry>
+ <entry> helles Blau </entry>
+ </row>
+ <row>
+ <entry>13</entry>
+ <entry> helles Magenta </entry>
+ </row>
+ <row>
+ <entry>14</entry>
+ <entry> Grau </entry>
+ </row>
+ <row>
+ <entry>15</entry>
+ <entry> helles Grau (Weiss)</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+
+ <para>
+ Beispiel: Anzeige von "<literal>hello everybody!</literal>" mit
+ "<literal>hello</literal>" fett in hellem Blau, und
+ "<literal>everybody</literal>" unterstrichen in hellem Rot:
+<screen><userinput>%C12%Bhello%B%C04%U everybody%U%C!</userinput></screen>
+ </para>
+
+ </section>
+
+ <section id="secWeeChatIRCCommands">
+ <title>WeeChat / IRC Kommandos </title>
+
+ <para>
+ Dieses Kapitel listet alle WeeChat- und IRC-Kommandos auf.
+ </para>
+
+ <section id="secWeeChatCommands">
+ <title> WeeChat Kommandos </title>
+
+ <para>
+ &weechat_commands.xml;
+ </para>
+
+ </section>
+
+ <section id="secKeyFunctions">
+ <title> Funktionen </title>
+
+ <para>
+ <informaltable colsep="0" frame="none">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry> Funktion </entry>
+ <entry> Beschreibung </entry>
+ </row>
+ </thead>
+ <tbody>
+
+ &key_functions.xml;
+
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+
+ </section>
+
+ <section id="secIRCCommands">
+ <title> IRC Kommandos </title>
+
+ <para>
+ &irc_commands.xml;
+ </para>
+
+ </section>
+
+ </section>
+
+ <section id="secConfigurationFile">
+ <title> Konfigurationsdatei </title>
+
+ <para>
+ Liste der Optionen für die Konfigurationsdatei:
+ <informaltable colsep="0" frame="none">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry> Option </entry>
+ <entry> Typ </entry>
+ <entry> Wert </entry>
+ <entry> Default </entry>
+ <entry> Beschreibung </entry>
+ </row>
+ </thead>
+ <tbody>
+
+ &config.xml;
+
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+
+ <para>
+ Farben für die Curses GUI:
+ <informaltable colsep="0" frame="none">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry> Schlüsselwort </entry>
+ <entry> Farbe </entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry><literal>default</literal></entry>
+ <entry>default Farbe (Transparent für den Hintergrund)</entry>
+ </row>
+ <row>
+ <entry><literal>black</literal></entry>
+ <entry> Schwarz </entry>
+ </row>
+ <row>
+ <entry><literal>red</literal></entry>
+ <entry> dunkles Rot </entry>
+ </row>
+ <row>
+ <entry><literal>lightred</literal></entry>
+ <entry> helles Rot </entry>
+ </row>
+ <row>
+ <entry><literal>green</literal></entry>
+ <entry> dunkles Grün </entry>
+ </row>
+ <row>
+ <entry><literal>lightgreen</literal></entry>
+ <entry> helles Grün </entry>
+ </row>
+ <row>
+ <entry><literal>brown</literal></entry>
+ <entry> Braun </entry>
+ </row>
+ <row>
+ <entry><literal>yellow</literal></entry>
+ <entry> Gelb </entry>
+ </row>
+ <row>
+ <entry><literal>blue</literal></entry>
+ <entry> dunkles Blau </entry>
+ </row>
+ <row>
+ <entry><literal>lightblue</literal></entry>
+ <entry> helles Blau </entry>
+ </row>
+ <row>
+ <entry><literal>magenta</literal></entry>
+ <entry> dunkles Magenta </entry>
+ </row>
+ <row>
+ <entry><literal>lightmagenta</literal></entry>
+ <entry> helles Magenta </entry>
+ </row>
+ <row>
+ <entry><literal>cyan</literal></entry>
+ <entry> dunkles Cyan </entry>
+ </row>
+ <row>
+ <entry><literal>lightcyan</literal></entry>
+ <entry> helles Cyan </entry>
+ </row>
+ <row>
+ <entry><literal>white</literal></entry>
+ <entry> Weiss </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+
+ </section>
+
+ <section id="secFIFOpipe">
+ <title> Remote-Schnittstelle (FIFO pipe) </title>
+
+ <para>
+ Sie können WeeChat auch extern steuern, indem sie Kommandos oder Text
+ an eine sogen. pipe übergeben (sie müssen die Option "irc_fifo_pipe"
+ anschalten, die normalerweise abgeschaltet ist).
+ </para>
+
+ <para>
+ Diese pipe liegt in "<literal>~/.weechat/</literal>" und hat den Namen
+ "weechat_fifo_xxxxx" (das xxxxx ist die Prozess-ID (PID) eines laufenden WeeChat).
+ Wenn mehrere Instanzen von WeeChat laufen, sind mehrere pipes vorhanden, eine
+ für jede Instanz.
+ </para>
+
+ <para>
+ Der Syntax für ein pipe-Kommando ist:
+ <screen>server,channel *Text oder Kommando</screen>
+ wobei Server und Channel optional sind, aber wenn der Channel angegeben ist,
+ muss der Server auch angegeben werden.
+ </para>
+
+ <para>
+ Einige Beispiele:
+ <itemizedlist>
+ <listitem>
+ <para>
+ Ändern des Nicks auf freenode in "mynick|out" :
+ <screen><prompt>$ </prompt><userinput>echo "freenode */nick mynick|out" &gt;~/.weechat/weechat_fifo_12345</userinput></screen>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Senden einer Nachricht an #weechat:
+ <screen><prompt>$ </prompt><userinput>echo "freenode,#weechat *hello everybody!" >~/.weechat/weechat_fifo_12345</userinput></screen>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Senden einer Nachricht an den gegenwärtigen Channel (Puffer, der in WeeChat angezeigt wird):
+ <screen><prompt>$ </prompt><userinput>echo "*hello!" >~/.weechat/weechat_fifo_12345</userinput></screen>
+ <emphasis>Warnung:</emphasis> Das ist gefährlich und sie sollten das nicht tun, ausgenommen sie wissen was sie tun!
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Sende zwei Kommandos um (alle) Perl-Skripte abzuschalten/neu zu laden (getrennt durch ein "\n"):
+ <screen><prompt>$ </prompt><userinput>echo -e "freenode */perl unload\nfreenode */perl autoload" >~/.weechat/weechat_fifo_12345</userinput></screen>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+
+ <para>
+ Sie können ein Skript schreiben, um ein Kommando an alle laufenden WeeChat-Instanzen zu senden,
+ zum Beispiel:
+<screen>
+#!/bin/sh
+if [ $# -eq 1 ]; then
+ for fifo in $(/bin/ls ~/.weechat/weechat_fifo_* 2>/dev/null); do
+ echo -e "$1" >$fifo
+ done
+fi
+</screen>
+ Wenn das Skript "auto_weechat_command" heisst, können sie es folgendermassen aufrufen:
+ <screen><prompt>$ </prompt><userinput>./auto_weechat_command "freenode,#weechat *hello"</userinput></screen>
+ </para>
+
+ </section>
+
+ </chapter>
+
+ <!-- ============================ Extensions ============================ -->
+
+ <chapter id="chapPlugins">
+ <title>Plugins</title>
+
+ <para>
+ Dieses Kapitel beschreibt das Plugin-Interface (API) in WeeChat und die
+ Standard-Skriptplugins (Perl, Python, Ruby, Lua), die zu WeeChat gehören.
+ </para>
+
+ <section id="secPluginsInWeeChat">
+ <title>Plugins in WeeChat</title>
+
+ <para>
+ Ein Plugin ist ein C-Programm, dass WeeChat-Funktionen aufrufen kann,
+ die in einem Interface definiert sind.
+ </para>
+
+ <para>
+ Dieses C-Programm braucht nicht den Quellcode von WeeChat (aber die
+ API-Beschreibung) und kann dynamisch mit dem folgenden Kommando in
+ WeeChat geladen werden
+ <command>/plugin</command>.
+ </para>
+
+ <para>
+ Das Plugin muss in Form einer dynamischen Bibliothek vorliegen,
+ damit es das Betriebssystem dynamisch laden kann.
+ Unter GNU/Linux besitzt die Datei die Endung ".so", unter
+ Windows ".dll".
+ </para>
+
+ </section>
+
+ <section id="secWriteAPlugin">
+ <title> Ein Plugin schreiben </title>
+
+ <para>
+ Das Plugin muss die Datei "weechat-plugin.h" einbinden (verfügbar
+ im WeeChat-Quellcode).
+ Diese Datei definiert die Strukturen und Typen um mit WeeChat
+ zu kommunizieren.
+ </para>
+
+ <para>
+ Das Plugin muss einige Variablen und Funktionen besitzen
+ (nötig, sonst kann das Plugin nicht geladen werden):
+ <informaltable colsep="0" frame="none">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Variable</entry>
+ <entry> Beschreibung </entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry><literal>char plugin_name[]</literal></entry>
+ <entry>Plugin Name</entry>
+ </row>
+ <row>
+ <entry><literal>char plugin_version[]</literal></entry>
+ <entry>Plugin Version</entry>
+ </row>
+ <row>
+ <entry><literal>char plugin_description[]</literal></entry>
+ <entry>kurze Beschreibung des Plugins</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <informaltable colsep="0" frame="none">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Funktion</entry>
+ <entry>Beschreibung</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry><literal>int weechat_plugin_init (t_weechat_plugin *plugin)</literal></entry>
+ <entry>
+ Die Funktion wird aufgerufen, wenn das Plugin geladen wird.
+ Sie muss bei Erfolg PLUGIN_RC_OK, bei Fehlschlag PLUGIN_RC_KO
+ zurückgeben. (Bei einem Fehler wird das Plugin nicht geladen)
+ </entry>
+ </row>
+ <row>
+ <entry><literal>void weechat_plugin_end (t_weechat_plugin *plugin)</literal></entry>
+ <entry>Funktion wird beim Abschalten aufgerufen</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+
+ <section id="secAPIFunctions">
+ <title>API Funktionen</title>
+
+ <section id="secAPI_ascii_strcasecmp">
+ <title>ascii_strcasecmp</title>
+
+ <para>
+ Prototyp:
+ <command>
+ int ascii_strcasecmp (t_weechat_plugin *plugin,
+ char *string1, char *string2)
+ </command>
+ </para>
+ <para>
+ Vergleich von Zeichenketten unabhängig von Sprache und Schreibweise (gross/klein).
+ </para>
+ <para>
+ Argumente:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <option>plugin</option>: Zeiger auf Plugin-Struktur
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>string1</option>: erste Zeichenkette des Vergleichs
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>string2</option>: zweite Zeichenkette des Vergleichs
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ Rückgabewert: Unterschied zwischen den zwei Zeichenketten: kleiner Null wenn
+ string1 &lt; string2, Null wenn string1 == string2, grösser Null wenn string1 &gt; string2
+ </para>
+ <para>
+ Beispiel:
+ <screen>if (plugin->ascii_strcasecmp (plugin, "abc", "def") != 0) ...</screen>
+ </para>
+ </section>
+
+ <section id="secAPI_ascii_strncasecmp">
+ <title>ascii_strncasecmp</title>
+
+ <para>
+ Prototyp:
+ <command>
+ int ascii_strncasecmp (t_weechat_plugin *plugin,
+ char *string1, char *string2, int max)
+ </command>
+ </para>
+ <para>
+ Vergleich von Zeichenketten unabhängig von Sprache und Schreibweise (gross/klein) für höchstens "max" Zeichen.
+ </para>
+ <para>
+ Argumente:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <option>plugin</option>: Zeiger auf Plugin-Struktur
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>string1</option>: erste Zeichenkette des Vergleichs
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>string2</option>: zweite Zeichenkette des Vergleichs
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>max</option>: maximale Zahl an Zeichen für den Vergleich
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ Rückgabewert: Unterschied zwischen den zwei Zeichenketten: kleiner Null wenn
+ string1 &lt; string2, Null wenn string1 == string2, grösser Null wenn string1 &gt; string2
+ </para>
+ <para>
+ Beispiel:
+ <screen>if (plugin->ascii_strncasecmp (plugin, "abc", "def", 2) != 0) ...</screen>
+ </para>
+ </section>
+
+ <section id="secAPI_explode_string">
+ <title>explode_string</title>
+
+ <para>
+ Prototyp:
+ <command>
+ char **explode_string (t_weechat_plugin *plugin, char *string,
+ char *separators, int num_items_max, int *num_items)
+ </command>
+ </para>
+ <para>
+ Zerlege eine Zeichenkette entsprechend eines oder mehrerer Trennzeichen(s).
+ </para>
+ <para>
+ Argumente:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <option>plugin</option>: Zeiger auf eine Plugin-Struktur
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>string</option>: zu zerlegende Zeichenkette
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>separators</option>: zu verwendende(s) Trennzeichen
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>num_items_max</option>: maximale Anzahl an zu erzeugenden Teilen (0 = keine Grenze)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>num_items</option>: Zeiger auf eine int-Variable, die die Anzahl der erzeugten
+ Teile enthält
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ Rückgabewert: ein Array von Zeichenketten, NULL bei Fehlern.
+ </para>
+ <para>
+ Hinweis: Das zurückgegebene Array muss nach der Benutzung mittels
+ "free_exloded_string" explizit freigegeben werden.
+ </para>
+ <para>
+ Beispiel:
+<screen>
+char **argv;
+int argc;
+argv = plugin->explode_string (plugin, string, " ", 0, &amp;argc);
+...
+if (argv != NULL)
+ plugin->free_exploded_string (plugin, argv);
+</screen>
+ </para>
+ </section>
+
+ <section id="secAPI_free_exploded_string">
+ <title>free_exploded_string</title>
+
+ <para>
+ Prototyp:
+ <command>
+ char **free_exploded_string (t_weechat_plugin *plugin,
+ char **string)
+ </command>
+ </para>
+ <para>
+ Gib ein Array frei, dass infolge der Zerlegung eines Strings reserviert wurde.
+ </para>
+ <para>
+ Argumente:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <option>plugin</option>: Zeiger auf eine Plugin-Struktur
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>string</option>: ein Array von Strings
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ Rückgabewert: keiner (?).
+ </para>
+ <para>
+ Beispiel:
+<screen>
+char *argv;
+int argc;
+argv = plugin->explode_string (plugin, string, " ", 0, &amp;argc);
+...
+if (argv != NULL)
+ plugin->free_exploded_string (plugin, argv);
+</screen>
+ </para>
+ </section>
+
+ <section id="secAPI_exec_on_files">
+ <title>exec_on_files</title>
+
+ <para>
+ Prototyp:
+ <command>
+ void exec_on_files (t_weechat_plugin *plugin, char *repertoire,
+ int (*callback)(t_weechat_plugin *, char *))
+ </command>
+ </para>
+ <para>
+ Führe eine Funktion auf allen Dateien eines Verzeichnisses aus.
+ </para>
+ <para>
+ Argumente:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <option>plugin</option>: Zeiger auf eine Plugin-Struktur
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>directory</option>: Verzeichnis der zu verwendenden Dateien
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>callback</option>: die anzuwendende Funktion
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ Rückgabewert: keiner.
+ </para>
+ <para>
+ Beispiel:
+<screen>
+int callback (t_weechat_plugin *plugin, char *file)
+{
+ plugin->print_server (plugin, "file: %s", file);
+ return 1;
+}
+...
+plugin->exec_on_files (plugin, "/tmp", &amp;callback);
+</screen>
+ </para>
+ </section>
+
+ <section id="secAPI_print">
+ <title>print</title>
+
+ <para>
+ Prototyp:
+ <command>
+ void print (t_weechat_plugin *plugin,
+ char *server, char *channel, char *message, ...)
+ </command>
+ </para>
+ <para>
+ Sende eine Nachricht an einen WeeChat-Puffer, bezeichnet durch server
+ und channel (beide können NULL sein, dann wird der aktuelle Puffer verwendet).
+ </para>
+ <para>
+ Argumente:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <option>plugin</option>: Zeiger auf Plugin-Struktur
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>server</option>: interner Name des Servers, zu welchem der Puffer gehört, in dem die Nachricht
+ angezeigt werden soll (kann NULL sein)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>channel</option>: Name des Channels, in dem die Nachricht angezeigt werden soll (kann NULL sein)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>message</option>: Nachricht
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ Rückgabewert: keiner.
+ </para>
+ <para>
+ Beispiele:
+<screen>
+plugin->print (plugin, NULL, NULL, "hello");
+plugin->print (plugin, NULL, "#weechat", "hello");
+plugin->print (plugin, "freenode", "#weechat", "hello");
+</screen>
+ </para>
+ </section>
+
+ <section id="secAPI_print_server">
+ <title>print_server</title>
+
+ <para>
+ Prototyp:
+ <command>
+ void print_server (t_weechat_plugin *plugin,
+ char *message, ...)
+ </command>
+ </para>
+ <para>
+ Zeige eine Nachricht im aktuellen Server-Puffer.
+ </para>
+ <para>
+ Argumente:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <option>plugin</option>: Zeiger auf eine Plugin-Struktur
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>message</option>: Nachricht
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ Rückgabewert: keiner.
+ </para>
+ <para>
+ Beispiel: <screen>plugin->print_server (plugin, "hello");</screen>
+ </para>
+ </section>
+
+ <section id="secAPI_print_infobar">
+ <title>print_infobar</title>
+
+ <para>
+ Prototyp:
+ <command>
+ void print_infobar (t_weechat_plugin *plugin,
+ int time, char *message, ...)
+ </command>
+ </para>
+ <para>
+ Zeige eine Nachricht in der Infobar für eine bestimmte Zeit
+ </para>
+ <para>
+ Argumente:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <option>plugin</option>: Zeiger auf eine Plugin-Struktur
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>time</option>: Zeitspanne für die Anzeige (in Sekunden, 0 = ständige Anzeige)
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ Rückgabewert: keiner.
+ </para>
+ <para>
+ Beispiel:
+<screen>
+plugin->print_infobar (plugin, 5, "hello");
+</screen>
+ </para>
+ </section>
+
+ <section id="secAPI_infobar_remove">
+ <title>infobar_remove</title>
+
+ <para>
+ Prototyp:
+ <command>
+ void infobar_remove (t_weechat_plugin *plugin, int count)
+ </command>
+ </para>
+ <para>
+ Entferne eine oder mehr Nachrichten aus der Infobar.
+ </para>
+ <para>
+ Argumente:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <option>plugin</option>: Zeiger auf eine Plugin-Struktur
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>count</option>: Anzahl der Nachrichten (wenn das Argument kleiner als Null ist, werden alle Nachrichten entfernt)
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ Rückgabewert: keiner.
+ </para>
+ <para>
+ Beispiel: <screen>plugin->infobar_remove (1);</screen>
+ </para>
+ </section>
+
+ <section id="secAPI_log">
+ <title>log</title>
+
+ <para>
+ Prototyp:
+ <command>
+ void log (t_weechat_plugin *plugin,
+ char *server, char *channel, char *message, ...)
+ </command>
+ </para>
+ <para>
+ Schreibe eine Nachricht in die Log-Datei (für den entsprechenden Server/Channel).
+ </para>
+ <para>
+ Argumente:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <option>plugin</option>: Zeiger auf eine Plugin-Struktur
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>server</option>: interner Name des Servers, zu welchem der Log-Puffer gehört (kann NULL sein)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>channel</option>: Name des Channels, zu welchem der Log-Puffer gehört (kann NULL sein)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>message</option>: Nachricht
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ Rückgabewert: keiner.
+ </para>
+ <para>
+ Beispiel:
+<screen>
+plugin->log (plugin, "freenode", "#weechat", "test");
+</screen>
+ </para>
+ </section>
+
+ <section id="secAPI_msg_handler_add">
+ <title>msg_handler_add</title>
+
+ <para>
+ Prototyp:
+ <command>
+ t_plugin_handler *msg_handler_add (t_weechat_plugin
+ *plugin, char *message, t_plugin_handler_func *function,
+ char *handler_args, void *handler_pointer)
+ </command>
+ </para>
+ <para>
+ Erzeuge einen IRC-Message-Handler, der aufgerufen wird, wenn
+ eine Nachricht empfangen wird.
+ </para>
+ <para>
+ Argumente:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <option>plugin</option>: Zeiger auf eine Plugin-Struktur
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>message</option>: Name (Typ) der IRC-Nachricht.
+ Eine Liste der bekannten IRC-Nachrichten ist in den
+ <acronym>RFC</acronym>s
+ <ulink url="http://www.ietf.org/rfc/rfc1459.txt">1459</ulink> und
+ <ulink url="http://www.ietf.org/rfc/rfc2812.txt">2812</ulink> zu finden.
+ Weiterhin können sie einen speziellen Namen verwenden, der mit "weechat_" beginnt,
+ um spezielle Ereignisse zu bearbeiten, wie in der folgenden Tabelle aufgeführt:
+ <informaltable colsep="0" frame="none">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Name</entry>
+ <entry>Beschreibung</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry><literal>weechat_pv</literal></entry>
+ <entry>private Nachricht empfangen</entry>
+ </row>
+ <row>
+ <entry><literal>weechat_highlight</literal></entry>
+ <entry>
+ hervorgehobene Nachricht (in einem Channel oder privatem Chat)
+ </entry>
+ </row>
+ <row>
+ <entry><literal>weechat_ctcp</literal></entry>
+ <entry>
+ CTCP-Nachricht empfangen (VERSION, PING, ...)
+ </entry>
+ </row>
+ <row>
+ <entry><literal>weechat_dcc</literal></entry>
+ <entry>
+ DCC-Nachricht empfangen (Chat oder Datei)
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>function</option>: Funktion, die aufgerufen wird, wenn eine Nachricht empfangen wurde
+ </para>
+ <para>
+ Sie verwendet den folgenden Prototyp:
+ <command>
+ int my_function (t_weechat_plugin *plugin,
+ int argc, char **argv,
+ char *handler_args, void *handler_pointer)
+ </command>
+ </para>
+ <para>
+ Argument argc ist auf 3 gesetzt, die folgenden Werte sind im argv-Array:
+ <itemizedlist>
+ <listitem>
+ <para>argv[0] = Server Name</para>
+ </listitem>
+ <listitem>
+ <para>argv[1] = IRC Nachricht</para>
+ </listitem>
+ <listitem>
+ <para>argv[2] = Kommando Argumente</para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>handler_args</option>: Argumente, die beim Aufruf an die Funktion übergeben werden
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>handler_pointer</option>: pointer given to function when called
+ <option>handler_pointer</option>: Zeiger, der an die Funktion übergeben wird
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ Rückgabewert: Zeiger auf den neuen Handler
+ </para>
+ <para>
+ Hinweis: die Funktion, die aufgerufen wird wenn eine Nachricht empfangen wurde,
+ muss einen der folgenden Werte zurückgeben:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <literal>PLUGIN_RC_KO</literal>: Funktion ist fehlgschlagen
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <literal>PLUGIN_RC_OK</literal>: Funktion war erfolgreich
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <literal>PLUGIN_RC_OK_IGNORE_WEECHAT</literal>: Die Nachricht wird nicht an WeeChat übergeben
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <literal>PLUGIN_RC_OK_IGNORE_PLUGINS</literal>: Die Nachricht wird nicht an andere Plugins weitergegeben
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <literal>PLUGIN_RC_OK_IGNORE_ALL</literal>: Die Nachricht wird weder an WeeChat noch an andere
+ Plugins weitergegeben
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ Beispiel:
+<screen>
+int msg_kick (t_weechat_plugin *plugin, char *server, char *command,
+ char *arguments, char *handler_args, void *handler_pointer)
+{
+ plugin->print (plugin, server, NULL, "KICK received");
+ return PLUGIN_RC_OK;
+}
+...
+plugin->msg_handler_add (plugin, "KICK", &amp;msg_kick, NULL, NULL);
+</screen>
+ </para>
+ </section>
+
+ <section id="secAPI_cmd_handler_add">
+ <title>cmd_handler_add</title>
+
+ <para>
+ Prototyp:
+ <command>
+ t_plugin_handler *cmd_handler_add (t_weechat_plugin
+ *plugin, char *command, char *description, char *arguments,
+ char *arguments_description, char *completion_template,
+ t_plugin_handler_func *fonction, char *handler_args,
+ void *handler_pointer)
+ </command>
+ </para>
+ <para>
+ Erzeugt einen Handler für ein WeeChat-Kommando, der aufgerufen wird, wenn
+ der Anwender das Kommando ausführt (Beispiel: /command).
+ </para>
+ <para>
+ Argumente:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <option>plugin</option>: Zeiger auf eine Plugin-Struktur
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>command</option>: Name des neuen Kommandos, der auch Name eines bereits existierenden Kommandos
+ sein kann (mit Bedacht zu verwenden, das ersetzte Kommando ist nicht verfügbar, bis das Plugin entfernt
+ wurde)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>description</option>: kurze Beschreibung des Kommandos (angezeigt beim Ausführen von /help command)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>arguments</option>: kurze Beschreibung der Argumente des Kommandos (angezeigt beim Ausführen von /help command)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>arguments_description</option>: lange Beschreibung der Argumente des Kommandos (angezeigt beim Ausführen von /help command)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>completion_template</option>: Vorlage für die Vervollständigung; zum Beispiel
+ bedeutet "<literal>abc|%w def|%i</literal>", dass das erste Argument "abc" oder ein
+ WeeChat-Kommando sein kann und das zweite Argument "def" oder ein IRC-Kommando.
+ Eine leere Zeichenkette bedeutet, dass WeeChat für jedes Argument einen Nicknamen
+ des gegenwärtigen Channels einsetzt, ein NULL schaltet die Vervollständigung für alle
+ Argumente ab.
+ </para>
+ <para>
+ Die folgenden Ersetzungen können verwendet werden:
+ <informaltable colsep="0" frame="none">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Code</entry>
+ <entry>Beschreibung</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry><literal>%-</literal></entry>
+ <entry>keine Vervollständigung für das Argument</entry>
+ </row>
+ <row>
+ <entry><literal>%a</literal></entry>
+ <entry>Alias</entry>
+ </row>
+ <row>
+ <entry><literal>%A</literal></entry>
+ <entry>
+ Aliase und Kommandos (WeeChat, IRC und Plugins)
+ </entry>
+ </row>
+ <row>
+ <entry><literal>%c</literal></entry>
+ <entry>gegenwärtiger Channel</entry>
+ </row>
+ <row>
+ <entry><literal>%C</literal></entry>
+ <entry>Channels des gegenwärtigen Servers</entry>
+ </row>
+ <!-- <row>
+ <entry><literal>%f</literal></entry>
+ <entry>file name</entry>
+ </row> -->
+ <row>
+ <entry><literal>%h</literal></entry>
+ <entry>Plugin Kommandos</entry>
+ </row>
+ <row>
+ <entry><literal>%i</literal></entry>
+ <entry>IRC Kommandos (senden)</entry>
+ </row>
+ <row>
+ <entry><literal>%I</literal></entry>
+ <entry>IRC Kommandos (empfangen)</entry>
+ </row>
+ <row>
+ <entry><literal>%k</literal></entry>
+ <entry>Grundfunktionen</entry>
+ </row>
+ <row>
+ <entry><literal>%n</literal></entry>
+ <entry>Nicknamen des gegenwärtigen Channels</entry>
+ </row>
+ <row>
+ <entry><literal>%N</literal></entry>
+ <entry>Nicknamen und Hostnamen des gegenwärtigen Channels</entry>
+ </row>
+ <row>
+ <entry><literal>%o</literal></entry>
+ <entry>Konfigurationseinstellungen</entry>
+ </row>
+ <row>
+ <entry><literal>%O</literal></entry>
+ <entry>Plugin Optionen</entry>
+ </row>
+ <row>
+ <entry><literal>%p</literal></entry>
+ <entry>Standard "part" Nachricht</entry>
+ </row>
+ <row>
+ <entry><literal>%q</literal></entry>
+ <entry>Standard "quit" Nachricht</entry>
+ </row>
+ <row>
+ <entry><literal>%s</literal></entry>
+ <entry>Name des gegenwärtigen Servers</entry>
+ </row>
+ <row>
+ <entry><literal>%S</literal></entry>
+ <entry>Namen aller definierten Server</entry>
+ </row>
+ <row>
+ <entry><literal>%t</literal></entry>
+ <entry>Topic des gegenwärtigen Channels</entry>
+ </row>
+ <row>
+ <entry><literal>%v</literal></entry>
+ <entry>Wert einer Konfigurationseinstellung</entry>
+ </row>
+ <row>
+ <entry><literal>%V</literal></entry>
+ <entry>Wert einer Plugin-Option</entry>
+ </row>
+ <row>
+ <entry><literal>%w</literal></entry>
+ <entry>WeeChat Kommandos</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>function</option>: Funktion, die aufgerufen wird, wenn das Kommando ausgeführt wird
+ </para>
+ <para>
+ Sie verwendet den folgenden Prototypen:
+ <command>
+ int my_function (t_weechat_plugin *plugin,
+ int argc, char **argv,
+ char *handler_args, void *handler_pointer)
+ </command>
+ </para>
+ <para>
+ Das Argument argc ist auf 3 gesetzt, das Array argv enthält die folgenden Werte:
+ <itemizedlist>
+ <listitem>
+ <para>argv[0] = Server Name</para>
+ </listitem>
+ <listitem>
+ <para>argv[1] = Kommando</para>
+ </listitem>
+ <listitem>
+ <para>argv[2] = Kommando-Argumente</para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>handler_args</option>: Argumente, die an die Funktion übergeben werden
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>handler_pointer</option>: Zeiger, der an die Funktion übergeben wird
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ Rückgabewert: Zeiger auf den neuen Kommando-Handler.
+ </para>
+ <para>
+ Hinweis: die Funktion, die aufgerufen wird, wenn das Kommando ausgeführt wird,
+ muss einen der folgende Werte zurückgeben:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <literal>PLUGIN_RC_KO</literal>: Funktion ist fehlgeschlagen
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <literal>PLUGIN_RC_OK</literal>: Funktion war erfolgreich
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ Beispiel:
+<screen>
+int cmd_test (t_weechat_plugin *plugin, char *server,
+ char *command, char *arguments, char *handler_args,
+ void *handler_pointer)
+{
+ plugin->print (plugin, server, NULL,
+ "test command, nick: %s",
+ (arguments) ? arguments : "none");
+ return PLUGIN_RC_OK;
+}
+...
+plugin->cmd_handler_add (plugin, "test", "Test command",
+ "[nick]", "nick: nick of channel",
+ "%n", &amp;cmd_test, NULL, NULL);
+</screen>
+ </para>
+ </section>
+
+ <section id="secAPI_timer_handler_add">
+ <title>timer_handler_add</title>
+
+ <para>
+ Prototyp:
+ <command>
+ t_plugin_handler *timer_handler_add (t_weechat_plugin
+ *plugin, int interval, t_plugin_handler_func *function,
+ char *handler_args, void *handler_pointer)
+ </command>
+ </para>
+ <para>
+ Erzeuge einen zeitgesteuerten Handler, der periodisch
+ eine Funktion aufruft.
+ </para>
+ <para>
+ Argumente:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <option>plugin</option>: Zeiger auf eine Plugin-Struktur
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>interval</option>: Intervall (in Secunden) zwischen zwei Aufrufen der Funktion
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>function</option>: Funktion, die aufgerufen wird
+ </para>
+ <para>
+ Sie verwendet den folgenden Prototypen:
+ <command>
+ int my_function (t_weechat_plugin *plugin,
+ int argc, char **argv,
+ char *handler_args, void *handler_pointer)
+ </command>
+ </para>
+ <para>
+ Das Argument argc ist auf 0 gesetzt und argv ist auf NULL gesetzt.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>handler_args</option>: Argumente der aufgerufenen Funktion
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>handler_pointer</option>: Zeiger, der an die Funktion übergeben wird
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ Rückgabewert: Zeiger auf den neuen timer-Handler.
+ </para>
+ <para>
+ Hinweis: die Funktion, die aufgerufen wird, muss einen der folgende Werte zurückgeben:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <literal>PLUGIN_RC_KO</literal>: Funktion ist fehlgeschlagen
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <literal>PLUGIN_RC_OK</literal>: Funktion war erfolgreich
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ Beispiel:
+<screen>
+int my_timer (t_weechat_plugin *plugin, char *server, char *command,
+ char *arguments, char *handler_args, void *handler_pointer)
+{
+ plugin->print (plugin, NULL, NULL, "my timer");
+ return PLUGIN_RC_OK;
+}
+...
+plugin->timer_handler_add (plugin, 60, &amp;my_timer);
+</screen>
+ </para>
+ </section>
+
+ <section id="secAPI_keyboard_handler_add">
+ <title>keyboard_handler_add</title>
+
+ <para>
+ Prototyp:
+ <command>
+ t_plugin_handler *keyboard_handler_add (t_weechat_plugin
+ *plugin, t_plugin_handler_func *function,
+ char *handler_args, void *handler_pointer)
+ </command>
+ </para>
+ <para>
+ Erzeugt einen Keyboard-Handler, der nach dem Drücken einer Taste aufgerufen wird.
+ </para>
+ <para>
+ Argumente:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <option>plugin</option>: Zeiger auf eine Plugin-Struktur
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>function</option>: Die Funktion, die aufgerufen wird
+ </para>
+ <para>
+ Sie verwendet den folgenden Prototypen:
+ <command>
+ int my_function (t_weechat_plugin *plugin,
+ int argc, char **argv,
+ char *handler_args, void *handler_pointer)
+ </command>
+ </para>
+ <para>
+ Das Argument argc ist auf 3 gesetzt, argv enthält die folgenden Werte:
+ <itemizedlist>
+ <listitem>
+ <para>
+ argv[0] = Taste, die gedrückt wurde
+ (Name der internen Funktion oder '*' gefolgt von einem Tastaturcode)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ argv[1] = Kommandozeile vor dem Tastendruck
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ argv[2] = Kommandozeile nach dem Tastendruck
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>handler_args</option>: Argumente, die bei Aufruf der Funktion übergeben
+ werden
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>handler_pointer</option>: Zeiger auf die Funktion, der bei Aufruf übergeben
+ wird
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ Rückgabewert: Zeiger auf den Handler.
+ </para>
+ <para>
+ Hinweis: Die aufgerufene Funktion muss einen der folgenden Werte zurückgeben:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <literal>PLUGIN_RC_KO</literal>: Funktion ist fehlgeschlagen
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <literal>PLUGIN_RC_OK</literal>: Funktion war erfolgreich
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ Beispiel:
+<screen>
+int keyb_handler (t_weechat_plugin *plugin, int argc, char **argv,
+ char *handler_args, void *handler_pointer)
+{
+ if (argc == 2)
+ {
+ plugin->print (plugin, NULL, NULL, "key pressed: %s", argv[0]);
+ if (argv[1] &amp;&amp; (argv[1][0] == '1'))
+ plugin->print (plugin, NULL, NULL, "input text changed");
+ else
+ plugin->print (plugin, NULL, NULL, "input text not changed");
+ }
+ return PLUGIN_RC_OK;
+}
+...
+plugin->keyboard_handler_add (plugin, &amp;keyb_handler);
+</screen>
+ </para>
+ </section>
+
+ <section id="secAPI_handler_remove">
+ <title>handler_remove</title>
+
+ <para>
+ Prototyp:
+ <command>
+ void handler_remove (t_weechat_plugin *plugin,
+ t_plugin_handler *handler)
+ </command>
+ </para>
+ <para>
+ Entfernt einen Nachrichten- oder Kommando-Handler.
+ </para>
+ <para>
+ Argumente:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <option>plugin</option>: Zeiger auf eine Plugin-Struktur
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>handler</option>: Handler, der entfernt werden soll
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ Rückgabewert: keiner
+ </para>
+ <para>
+ Beispiel:
+ <screen>plugin->handler_remove (plugin, my_handler);</screen>
+ </para>
+ </section>
+
+ <section id="secAPI_handler_remove_all">
+ <title>handler_remove_all</title>
+
+ <para>
+ Prototyp:
+ <command>
+ void handler_remove_all (t_weechat_plugin *plugin)
+ </command>
+ </para>
+ <para>
+ Entfernt alle Handler eines Plugins.
+ </para>
+ <para>
+ Argumente:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <option>plugin</option>: Zeiger auf eine Plugin-Struktur
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ Rückgabewert: keiner
+ </para>
+ <para>
+ Beispiel:
+ <screen>plugin->handler_remove_all (plugin);</screen>
+ </para>
+ </section>
+
+ <section id="secAPI_exec_command">
+ <title>exec_command</title>
+
+ <para>
+ Prototyp:
+ <command>
+ void exec_command (t_weechat_plugin
+ *plugin, char *server, char *channel, char *command)
+ </command>
+ </para>
+ <para>
+ Führe ein WeeChat-Kommando aus (oder sende eine Nachricht an einen Channel).
+ </para>
+ <para>
+ Argumente:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <option>plugin</option>: Zeiger auf eine Plugin-Struktur
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>server</option>: interner Name des Servers, auf den das Kommando angewendet werden soll (kann NULL sein)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>channel</option>: Name des Channels, auf den das Kommando angewendet werden soll (kann NULL sein)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>command</option>: Kommando
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ Rückgabewert: keiner
+ </para>
+ <para>
+ Beispiel:
+<screen>
+plugin->exec_command (plugin, NULL, NULL, "/help nick");
+plugin->exec_command (plugin, "freenode", "#weechat", "hello");
+</screen>
+ </para>
+ </section>
+
+ <section id="secAPI_get_info">
+ <title>get_info</title>
+
+ <para>
+ Prototyp:
+ <command>
+ char *get_info (t_weechat_plugin *plugin,
+ char *info, char *server)
+ </command>
+ </para>
+ <para>
+ Gib eine Information über WeeChat oder einen Channel zurück.
+ </para>
+ <para>
+ Argumente:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <option>plugin</option>: Zeiger auf eine Plugin-Struktur
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>info</option> : Name (Typ) der Information:
+ <informaltable colsep="0" frame="none">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Info</entry>
+ <entry>Beschreibung</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry><literal>version</literal></entry>
+ <entry>WeeChats Version</entry>
+ </row>
+ <row>
+ <entry><literal>nick</literal></entry>
+ <entry>Nickname</entry>
+ </row>
+ <row>
+ <entry><literal>channel</literal></entry>
+ <entry>
+ Name des Channels (NULL bei einem Server oder Privatchat)
+ </entry>
+ </row>
+ <row>
+ <entry><literal>server</literal></entry>
+ <entry>Name des Servers</entry>
+ </row>
+ <row>
+ <entry><literal>away</literal></entry>
+ <entry>Status des "away"-Flags</entry>
+ </row>
+ <row>
+ <entry><literal>inactivity</literal></entry>
+ <entry>
+ Anzahl der Sekunden seit der letzten Tastenbetätigung
+ </entry>
+ </row>
+ <row>
+ <entry><literal>input</literal></entry>
+ <entry>
+ Inhalt der Kommandozeile im gegenwärtigen Fenster
+ </entry>
+ </row>
+ <row>
+ <entry><literal>input_mask</literal></entry>
+ <entry>
+ Inhalt der Farbmaske für die Kommandozeile
+ </entry>
+ </row>
+ <row>
+ <entry><literal>input_pos</literal></entry>
+ <entry>
+ Position des Cursors in der Kommandozeile
+ </entry>
+ </row>
+ <row>
+ <entry><literal>weechat_dir</literal></entry>
+ <entry>
+ WeeChat-Verzeichnis (Standard: ~/.weechat/)
+ </entry>
+ </row>
+ <row>
+ <entry><literal>weechat_libdir</literal></entry>
+ <entry>WeeChat-Systemverzeichnis (Bibliotheken) </entry>
+ </row>
+ <row>
+ <entry><literal>weechat_sharedir</literal></entry>
+ <entry>WeeChat-Systemverzeichnis (gemeinsame Dateien)</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>server</option>: interner Name des Servers um Informationen zu lesen (wenn benötigt)
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ Rückgabewert: angeforderte Information oder NULL
+ </para>
+ <para>
+ Hinweis: das Ergebnis muss nach Nutzung mit "free" wieder freigegeben werden.
+ </para>
+ <para>
+ Beispiele:
+<screen>
+char *version = plugin->get_info (plugin, "version", NULL);
+char *nick = plugin->get_info (plugin, "nick", "freenode");
+char *inactivity = plugin->get_info (plugin, "inactivity", NULL);
+
+plugin->print (plugin, NULL, NULL,
+ "WeeChat version %s, you are %s on freenode "
+ "(inactive for %s seconds)",
+ version, nick, inactivity);
+
+if (version)
+ free (version);
+if (nick)
+ free (nick);
+if (inactivity)
+ free (inactivity);
+</screen>
+ </para>
+ </section>
+
+ <section id="secAPI_get_dcc_info">
+ <title>get_dcc_info</title>
+
+ <para>
+ Prototyp:
+ <command>
+ t_plugin_info_dcc *get_dcc_info (t_weechat_plugin *plugin)
+ </command>
+ </para>
+ <para>
+ Gib eine Liste der aktiven oder beendeten DCCs zurück.
+ </para>
+ <para>
+ Argumente:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <option>plugin</option>: Zeiger auf eine Plugin-Struktur
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ Rückgabewert: verkettete Liste von DCCs.
+ <informaltable colsep="0" frame="none">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Typ</entry>
+ <entry>Feld</entry>
+ <entry>Beschreibung</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>char *</entry>
+ <entry><literal>server</literal></entry>
+ <entry>IRC Server</entry>
+ </row>
+ <row>
+ <entry>char *</entry>
+ <entry><literal>channel</literal></entry>
+ <entry>IRC Channel</entry>
+ </row>
+ <row>
+ <entry>int</entry>
+ <entry><literal>type</literal></entry>
+ <entry>
+ DCC Typ:
+ 0 = Chatanfrage empfangen,
+ 1 = Chatanfrage gesendet,
+ 2 = Datei empfangen,
+ 3 = Datei gesendet
+ </entry>
+ </row>
+ <row>
+ <entry>int*</entry>
+ <entry><literal>status</literal></entry>
+ <entry>
+ DCC Status:
+ 0 = wartend,
+ 1 = verbindend,
+ 2 = aktiv,
+ 3 = beendet,
+ 4 = fehlgeschlagen,
+ 5 = unterbrochen durch Anwender
+ </entry>
+ </row>
+ <row>
+ <entry>time_t</entry>
+ <entry><literal>start_time</literal></entry>
+ <entry>Datum/Zeit der Erzeugung der DCC</entry>
+ </row>
+ <row>
+ <entry>time_t</entry>
+ <entry><literal>start_transfer</literal></entry>
+ <entry>Datum/Zeit des Beginns der Übertragung der DCC</entry>
+ </row>
+ <row>
+ <entry>unsigned long</entry>
+ <entry><literal>addr</literal></entry>
+ <entry>IP-Adresse des Partners</entry>
+ </row>
+ <row>
+ <entry>int</entry>
+ <entry><literal>port</literal></entry>
+ <entry>Port der DCC</entry>
+ </row>
+ <row>
+ <entry>char *</entry>
+ <entry><literal>nick</literal></entry>
+ <entry>Nickname des Partners</entry>
+ </row>
+ <row>
+ <entry>char *</entry>
+ <entry><literal>filename</literal></entry>
+ <entry>Dateiname</entry>
+ </row>
+ <row>
+ <entry>char *</entry>
+ <entry><literal>local_filename</literal></entry>
+ <entry>lokaler Dateiname</entry>
+ </row>
+ <row>
+ <entry>int</entry>
+ <entry><literal>filename_suffix</literal></entry>
+ <entry>Suffix wenn die Datei umbenannt wird</entry>
+ </row>
+ <row>
+ <entry>unsigned long</entry>
+ <entry><literal>size</literal></entry>
+ <entry>Dateigrösse</entry>
+ </row>
+ <row>
+ <entry>unsigned long</entry>
+ <entry><literal>pos</literal></entry>
+ <entry>Position in Datei</entry>
+ </row>
+ <row>
+ <entry>unsigned long</entry>
+ <entry><literal>start_resume</literal></entry>
+ <entry>Startposition nach einer Unterbrechung</entry>
+ </row>
+ <row>
+ <entry>unsigned long</entry>
+ <entry><literal>bytes_per_sec</literal></entry>
+ <entry>
+ Übertragungsrate (Bytes/s) seit Beginn der Übertragung
+ </entry>
+ </row>
+ <row>
+ <entry>t_plugin_dcc_info *</entry>
+ <entry><literal>prev_dcc</literal></entry>
+ <entry>
+ Zeiger auf voheriges DCC-Info
+ </entry>
+ </row>
+ <row>
+ <entry>t_plugin_dcc_info *</entry>
+ <entry><literal>next_dcc</literal></entry>
+ <entry>
+ Zeiger auf nächstes DCC-Info
+ </entry>
+ </row>
+
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+ <para>
+ Hinweis: Das Ergebnis muss nach der Benutzung mittels "free_dcc_info" wieder freigegeben werden.
+ </para>
+ <para>
+ Beispiele:
+<screen>
+t_plugin_dcc_info *dcc_info = plugin->get_dcc_info (plugin);
+for (ptr_dcc = dcc_info; ptr_dcc; ptr_dcc = ptr_dcc->next_dcc)
+{
+ plugin->print_server (plugin, "DCC type=%d, with: %s",
+ ptr_dcc->type, ptr_dcc->nick);
+}
+if (dcc_info)
+ plugin->free_dcc_info (plugin, dcc_info);
+</screen>
+ </para>
+ </section>
+
+ <section id="secAPI_free_dcc_info">
+ <title>free_dcc_info</title>
+
+ <para>
+ Prototyp:
+ <command>
+ void free_dcc_info (t_weechat_plugin *plugin,
+ t_plugin_dcc_info *dcc_info)
+ </command>
+ </para>
+ <para>
+ Gibt den Speicher einer Liste von DCC-Infos wieder frei.
+ </para>
+ <para>
+ Argumente:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <option>plugin</option>: Zeiger auf eine Plugin-Struktur
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>dcc_info</option>: Zeiger auf eine Liste mit DCC-Infos, die
+ mit "get_dcc_info" angelegt wurde
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ Rückgabewert: keiner.
+ </para>
+ <para>
+ Beispiel:
+ <screen>plugin->free_dcc_info (plugin, dcc_info);</screen>
+ </para>
+ </section>
+
+ <section id="secAPI_get_server_info">
+ <title>get_server_info</title>
+
+ <para>
+ Prototyp:
+ <command>
+ t_plugin_server_info *get_server_info (t_weechat_plugin *plugin)
+ </command>
+ </para>
+ <para>
+ Gibt die Liste von IRC-Servern zurück (verbunden oder nicht)
+ </para>
+ <para>
+ Argumente:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <option>plugin</option>: Zeiger auf eine Plugin-Struktur
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ Rückgabewert: Liste von IRC-Servern.
+ <informaltable colsep="0" frame="none">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Typ</entry>
+ <entry>Feld</entry>
+ <entry>Beschreibung</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>char *</entry>
+ <entry><literal>name</literal></entry>
+ <entry>interner Servername</entry>
+ </row>
+ <row>
+ <entry>int</entry>
+ <entry><literal>autoconnect</literal></entry>
+ <entry>1 wenn Autoconnect gesetzt ist, 0 sonst</entry>
+ </row>
+ <row>
+ <entry>int</entry>
+ <entry><literal>autoreconnect</literal></entry>
+ <entry>
+ 1 wenn autoreconnect gesetzt ist,
+ 0 sonst
+ </entry>
+ </row>
+ <row>
+ <entry>int</entry>
+ <entry><literal>autoreconnect_delay</literal></entry>
+ <entry>Wartezeit vor erneutem Verbindungsversuch</entry>
+ </row>
+ <row>
+ <entry>int</entry>
+ <entry><literal>command_line</literal></entry>
+ <entry>
+ 1 wenn der Servername auf der Kommandozeile angegeben wurde (ist somit temporär)
+ 0 sonst
+ </entry>
+ </row>
+ <row>
+ <entry>char *</entry>
+ <entry><literal>address</literal></entry>
+ <entry>Serveradresse (Name oder IP)</entry>
+ </row>
+ <row>
+ <entry>int</entry>
+ <entry><literal>port</literal></entry>
+ <entry>Port</entry>
+ </row>
+ <row>
+ <entry>int</entry>
+ <entry><literal>ipv6</literal></entry>
+ <entry>IPv6-Verbindung</entry>
+ </row>
+ <row>
+ <entry>int</entry>
+ <entry><literal>ssl</literal></entry>
+ <entry>SSL-Verbindung</entry>
+ </row>
+ <row>
+ <entry>char *</entry>
+ <entry><literal>password</literal></entry>
+ <entry>Passwort</entry>
+ </row>
+ <row>
+ <entry>char *</entry>
+ <entry><literal>nick1</literal></entry>
+ <entry>primärer Nickname</entry>
+ </row>
+ <row>
+ <entry>char *</entry>
+ <entry><literal>nick2</literal></entry>
+ <entry>alternativer Nickname</entry>
+ </row>
+ <row>
+ <entry>char *</entry>
+ <entry><literal>nick3</literal></entry>
+ <entry>zweiter, alternativer Nickname</entry>
+ </row>
+ <row>
+ <entry>char *</entry>
+ <entry><literal>username</literal></entry>
+ <entry>Username</entry>
+ </row>
+ <row>
+ <entry>char *</entry>
+ <entry><literal>real name</literal></entry>
+ <entry>tatsächlicher Name</entry>
+ </row>
+ <row>
+ <entry>char *</entry>
+ <entry><literal>command</literal></entry>
+ <entry>Kommando, dass bei erfolgreicher Verbindung ausgeführt wurde</entry>
+ </row>
+ <row>
+ <entry>int</entry>
+ <entry><literal>command_delay</literal></entry>
+ <entry>Verzögerung nach Ausführung des Kommandos</entry>
+ </row>
+ <row>
+ <entry>char *</entry>
+ <entry><literal>autojoin</literal></entry>
+ <entry>Channels, die automatisch betreten werden sollen</entry>
+ </row>
+ <row>
+ <entry>int</entry>
+ <entry><literal>autorejoin</literal></entry>
+ <entry>
+ 1 wenn Channels wieder betreten werden sollen, nachdem man gekickt wurde
+ 0 sonst
+ </entry>
+ </row>
+ <row>
+ <entry>char *</entry>
+ <entry><literal>notify_levels</literal></entry>
+ <entry>Benachrichtigungs-Level von Channels</entry>
+ </row>
+ <row>
+ <entry>char *</entry>
+ <entry><literal>charset_decode_iso</literal></entry>
+ <entry>Zeichensatz zum Dekodieren von ISO</entry>
+ </row>
+ <row>
+ <entry>char *</entry>
+ <entry><literal>charset_decode_utf</literal></entry>
+ <entry>Zeichensatz zum Dekodieren von UTF</entry>
+ </row>
+ <row>
+ <entry>char *</entry>
+ <entry><literal>charset_encode</literal></entry>
+ <entry>Zeichensatz der Channels zum Kodieren von Nachrichten</entry>
+ </row>
+ <row>
+ <entry>int</entry>
+ <entry><literal>is_connected</literal></entry>
+ <entry>1 wenn verbunden mit einem Server, 0 otherwise</entry>
+ </row>
+ <row>
+ <entry>int</entry>
+ <entry><literal>ssl_connected</literal></entry>
+ <entry>1 wenn verbunden über SSL, 0 sonst</entry>
+ </row>
+ <row>
+ <entry>char *</entry>
+ <entry><literal>nick</literal></entry>
+ <entry>gegenwärtiger Nickname</entry>
+ </row>
+ <row>
+ <entry>int</entry>
+ <entry><literal>is_away</literal></entry>
+ <entry>1 wenn away-flag gesetzt ist, 0 sonst</entry>
+ </row>
+ <row>
+ <entry>time_t</entry>
+ <entry><literal>away_time</literal></entry>
+ <entry>Zeitspanne seit away-flag gesetzt ist</entry>
+ </row>
+ <row>
+ <entry>int</entry>
+ <entry><literal>lag</literal></entry>
+ <entry>Lag (in Millisekunden)</entry>
+ </row>
+ <row>
+ <entry>t_plugin_server_info *</entry>
+ <entry><literal>prev_server</literal></entry>
+ <entry>Zeiger auf vorherigen Knoten der Liste</entry>
+ </row>
+ <row>
+ <entry>t_plugin_server_info *</entry>
+ <entry><literal>next_server</literal></entry>
+ <entry>Zeiger auf nächsten Knoten der Liste</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+ <para>
+ Hinweis: das Ergebnis muss nach der Benutzung mit "free_server_info" wieder
+ freigegeben werden.
+ </para>
+ <para>
+ Beispiel:
+<screen>
+t_plugin_server_info *server_info, *ptr_server_info;
+server_info = plugin->get_server_info (plugin);
+if (server_info)
+{
+ for (ptr_server_info = server_info; ptr_server_info;
+ ptr_server_info = ptr_server_info->next_server)
+ {
+ plugin->print (plugin, NULL, NULL,
+ "server: %s, address: %s, port: %d %s",
+ ptr_server_info->name,
+ ptr_server_info->address,
+ ptr_server_info->port,
+ (ptr_server_info->is_connected) ? "(connected)" : "");
+ }
+ plugin->free_server_info (plugin, server_info);
+}
+</screen>
+ </para>
+ </section>
+
+ <section id="secAPI_free_server_info">
+ <title>free_server_info</title>
+
+ <para>
+ Prototyp:
+ <command>
+ void free_server_info (t_weechat_plugin *plugin,
+ t_plugin_server_info *server_info)
+ </command>
+ </para>
+ <para>
+ Gib den Speicher einer Liste "server info" frei
+ </para>
+ <para>
+ Argumente:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <option>plugin</option>: Zeiger auf eine Plugin-Struktur
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>server_info</option>: Zeiger auf eine Server-Liste, der von der Funktion "get_server_info"
+ zurückgegeben wurde.
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ Rückgabewert: keiner.
+ </para>
+ <para>
+ Beispiel:
+ <screen>plugin->free_server_info (plugin, server_info);</screen>
+ </para>
+ </section>
+
+ <section id="secAPI_get_channel_info">
+ <title>get_channel_info</title>
+
+ <para>
+ Prototyp:
+ <command>
+ t_plugin_channel_info *get_channel_info (t_weechat_plugin *plugin,
+ char *server)
+ </command>
+ </para>
+ <para>
+ Gib eine Liste der Channels für einen Server zurück.
+ </para>
+ <para>
+ Argumente:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <option>plugin</option>: Zeiger auf eine Plugin-Struktur
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>server</option>: interner Name des Server
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ Rückgabewert: verkettete Liste von Channels für einen Server.
+ <informaltable colsep="0" frame="none">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Typ</entry>
+ <entry>Feld</entry>
+ <entry>Beschreibung</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>int</entry>
+ <entry><literal>type</literal></entry>
+ <entry>0 für einen normalen Channel, 1 für einen Privaten</entry>
+ </row>
+ <row>
+ <entry>char *</entry>
+ <entry><literal>name</literal></entry>
+ <entry>Name des Channels</entry>
+ </row>
+ <row>
+ <entry>char *</entry>
+ <entry><literal>topic</literal></entry>
+ <entry>Topic des Channels</entry>
+ </row>
+ <row>
+ <entry>char *</entry>
+ <entry><literal>modes</literal></entry>
+ <entry>Channelmodus (Flags)</entry>
+ </row>
+ <row>
+ <entry>int</entry>
+ <entry><literal>limit</literal></entry>
+ <entry>Anzahl der erlaubten User</entry>
+ </row>
+ <row>
+ <entry>char *</entry>
+ <entry><literal>key</literal></entry>
+ <entry>Schlüssel des Channels</entry>
+ </row>
+ <row>
+ <entry>int</entry>
+ <entry><literal>nicks_count</literal></entry>
+ <entry>Anzahl der Nicknamen des Channels</entry>
+ </row>
+ <row>
+ <entry>t_plugin_channel_info *</entry>
+ <entry><literal>prev_channel</literal></entry>
+ <entry>Zeiger auf vorherigem Knoten der Liste</entry>
+ </row>
+ <row>
+ <entry>t_plugin_channel_info *</entry>
+ <entry><literal>next_channel</literal></entry>
+ <entry>Zeiger auf nächsten Knoten der Liste</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+ <para>
+ Hinweis: Das Ergebnis muss nach der Benutzung mit "free_channel_info" wieder freigegeben werden.
+ </para>
+ <para>
+ Beispiel:
+<screen>
+t_plugin_channel_info *channel_info, *ptr_chan_info;
+channel_info = plugin->get_channel_info (plugin, "freenode");
+if (channel_info)
+{
+ for (ptr_chan_info = channel_info; ptr_chan_info;
+ ptr_chan_info = ptr_chan_info->next_channel)
+ {
+ plugin->print (plugin, NULL, NULL,
+ " %s (type %d)",
+ ptr_chan_info->name,
+ ptr_chan_info->type);
+ }
+ plugin->free_channel_info (plugin, channel_info);
+}
+</screen>
+ </para>
+ </section>
+
+ <section id="secAPI_free_channel_info">
+ <title>free_channel_info</title>
+
+ <para>
+ Prototyp:
+ <command>
+ void free_channel_info (t_weechat_plugin *plugin,
+ t_plugin_channel_info *channel_info)
+ </command>
+ </para>
+ <para>
+ Gibt den Speicher einer Liste "channel info" wieder frei.
+ </para>
+ <para>
+ Argumente:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <option>plugin</option>: Zeiger auf eine Plugin-Struktur
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>channel_info</option>: Zeiger auf eine Liste "channel info", der von "get_channel_info"
+ zurückgegeben wurde
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ Rückgabewert: keiner.
+ </para>
+ <para>
+ Beispiel:
+ <screen>plugin->free_channel_info (plugin, channel_info);</screen>
+ </para>
+ </section>
+
+ <section id="secAPI_get_nick_info">
+ <title>get_nick_info</title>
+
+ <para>
+ Prototyp:
+ <command>
+ t_plugin_nick_info *get_nick_info (t_weechat_plugin *plugin,
+ char *server, char *channel)
+ </command>
+ </para>
+ <para>
+ Gib eine Liste der Nicknamen für einen Channel zurück.
+ </para>
+ <para>
+ Argumente:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <option>plugin</option>: Zeiger auf eine Plugin-Struktur
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>server</option>: interner Name des Servers
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>channel</option>: Name des Channels
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ Rückgabewert: verkettete Liste von Nicknamen eines Channels.
+ <informaltable colsep="0" frame="none">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Typ</entry>
+ <entry>Feld</entry>
+ <entry>Beschreibung</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>char *</entry>
+ <entry><literal>nick</literal></entry>
+ <entry>Nickname</entry>
+ </row>
+ <row>
+ <entry>char *</entry>
+ <entry><literal>host</literal></entry>
+ <entry>Hostname</entry>
+ </row>
+ <row>
+ <entry>int</entry>
+ <entry><literal>Flags</literal></entry>
+ <entry>
+ Flags, die für einen Nicknamen gesetzt sind:
+ Zweierpotenzen "oder" Zwischenwerte
+ (1 = channel owner,
+ 2 = channel admin,
+ 4 = op,
+ 8 = halfop,
+ 16 = voice,
+ 32 = away)
+ </entry>
+ </row>
+ <row>
+ <entry>t_plugin_nick_info *</entry>
+ <entry><literal>prev_nick</literal></entry>
+ <entry>Zeiger auf vorherigen Knoten der Liste</entry>
+ </row>
+ <row>
+ <entry>t_plugin_nick_info *</entry>
+ <entry><literal>next_nick</literal></entry>
+ <entry>Zeiger auf nächsten Knoten der Liste</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </para>
+ <para>
+ Hinweis: Das Ergebnis muss nach der Benutzung mit "free_nick_info" wieder freigegeben werden.
+ </para>
+ <para>
+ Beispiel:
+<screen>
+t_plugin_nick_info *nick_info, *ptr_nick_info;
+nick_info = plugin->get_nick_info (plugin, "freenode", "#weechat");
+if (nick_info)
+{
+ for (ptr_nick_info = nick_info; ptr_nick_info;
+ ptr_nick_info = ptr_nick_info->next_nick)
+ {
+ plugin->print (plugin, NULL, NULL,
+ " %s (flags: %d)",
+ ptr_nick_info->nick,
+ ptr_nick_info->flags);
+ }
+ plugin->free_nick_info (plugin, nick_info);
+}
+</screen>
+ </para>
+ </section>
+
+ <section id="secAPI_free_nick_info">
+ <title>free_nick_info</title>
+
+ <para>
+ Prototyp:
+ <command>
+ void free_nick_info (t_weechat_plugin *plugin,
+ t_plugin_nick_info *nick_info)
+ </command>
+ </para>
+ <para>
+ Gibt den Speicher einer Liste "nick info" frei.
+ </para>
+ <para>
+ Argumente:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <option>plugin</option>: Zeiger auf eine Plugin-Struktur
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>nick_info</option>: Zeiger auf eine Liste "nick info", der von "get_nick_info"
+ zurückgegeben wurde
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ Rückgabewert: keiner.
+ </para>
+ <para>
+ Beispiel:
+ <screen>plugin->free_nick_info (plugin, nick_info);</screen>
+ </para>
+ </section>
+
+ <section id="secAPI_get_config">
+ <title>get_config</title>
+
+ <para>
+ Prototyp:
+ <command>
+ char *get_config (t_weechat_plugin *plugin, char *option)
+ </command>
+ </para>
+ <para>
+ Gibt den Wert einer Option der WeeChat-Konfiguration zurück.
+ </para>
+ <para>
+ Argumente:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <option>plugin</option>: Zeiger auf eine Plugin-Struktur
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>option</option>: Name der Option
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ Rückgabewert: Wert der Option, oder NULL, wenn nichts gefunden wurde.
+ </para>
+ <para>
+ Hinweis: Das Ergebnis muss nach der Benutzung mit "free" wieder freigegeben werden.
+ </para>
+ <para>
+ Beispiel:
+<screen>
+char *value1 = plugin->get_config (plugin, "look_set_title");
+char *value2 = plugin->get_config (plugin, "freenode.server_autojoin");
+</screen>
+ </para>
+ </section>
+
+ <section id="secAPI_set_config">
+ <title>set_config</title>
+
+ <para>
+ Prototyp:
+ <command>
+ int set_config (t_weechat_plugin *plugin,
+ char *option, char *value)
+ </command>
+ </para>
+ <para>
+ Setze den Wert einer Option der WeeChat-Konfiguration.
+ </para>
+ <para>
+ Argumente:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <option>plugin</option>: Zeiger auf eine Plugin-Struktur
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>option</option>: Name der Option
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>value</option>: der neue Wert der Option
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ Rückgabewert: 1 wenn der Wert der Option gesetzt werden konnte, 0 bei Auftreten eines Fehlers.
+ </para>
+ <para>
+ Beispiel:
+<screen>
+plugin->set_config (plugin, "look_nicklist", "off");
+</screen>
+ </para>
+ </section>
+
+ <section id="secAPI_get_plugin_config">
+ <title>get_plugin_config</title>
+
+ <para>
+ Prototyp:
+ <command>
+ char *get_plugin_config (t_weechat_plugin *plugin, char *option)
+ </command>
+ </para>
+ <para>
+ Gibt den Wert einer Option eines Plugins zurück.
+ Die Option wird aus "<literal>~/.weechat/plugins.rc</literal>" gelesen
+ und sieht so aus: "<literal>plugin.option=value</literal>"
+ (Hinweis: der Name des Plugins wird automatisch gesetzt).
+
+ </para>
+ <para>
+ Argumente:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <option>plugin</option>: Zeiger auf eine Plugin-Struktur
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>option</option>: Name der Option
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ Rückgabewert: Wert der Option, NULL wenn nichts gefunden wurde.
+ </para>
+ <para>
+ Hinweis: Das Ergebnis muss nach der Benutzung mit "free" wieder freigegeben werden.
+ </para>
+ <para>
+ Beispiel:
+<screen>
+char *value = plugin->get_plugin_config (plugin, "my_var");
+</screen>
+ </para>
+ </section>
+
+ <section id="secAPI_set_plugin_config">
+ <title>set_plugin_config</title>
+
+ <para>
+ Prototyp:
+ <command>
+ int set_plugin_config (t_weechat_plugin *plugin,
+ char *option, char *value)
+ </command>
+ </para>
+ <para>
+ Setzt den Wert einer Option eines Plugins.
+ Die Option wird in die Datei "<literal>~/.weechat/plugins.rc</literal>" geschrieben
+ und sieht so aus: "<literal>plugin.option=value</literal>"
+ (Hinweis: der Name des Plugins wird automatisch gesetzt)
+ </para>
+ <para>
+ Argumente:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <option>plugin</option>: Zeiger auf eine Plugin-Struktur
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>option</option>: Name der Option, die gesetzt werden soll
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>value</option>: Wert der zu setzenden Option
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ Rückgabewert: 1 wenn die Option gesetzt werden konnte, 0 wenn ein Fehler aufgetreten ist.
+ </para>
+ <para>
+ Beispiel:
+<screen>
+plugin->set_plugin_config (plugin, "my_var", "value");
+</screen>
+ </para>
+ </section>
+
+ </section>
+
+ <section id="secCompilePlugin">
+ <title>Übersetzen eines Plugins</title>
+
+ <para>
+ Das Übersetzen braucht keine WeeChat-Quellen, aber die Datei "<literal>weechat-plugin.h</literal>".
+ </para>
+
+ <para>
+ Um ein Plugin zu übersetzen, das aus einer Datei "toto.c" besteht (unter GNU/Linux):
+<screen>
+<prompt>$ </prompt><userinput>gcc -fPIC -Wall -c toto.c</userinput>
+<prompt>$ </prompt><userinput>gcc -shared -fPIC -o libtoto.so toto.o</userinput>
+</screen>
+ </para>
+
+ </section>
+
+ <section id="secLoadPlugin">
+ <title>Laden des Plugins in WeeChat</title>
+
+ <para>
+ Kopiere die Datei "libtoto.so" in das Plugin-Verzeichnis der systemweiten Dateien WeeChats
+ (zum Beispiel: "<literal>/usr/local/lib/weechat/plugins</literal>") oder in das Plugin-Verzeichnis
+ des Users (zum Beispiel: "<literal>/home/xxxxx/.weechat/plugins</literal>").
+ </para>
+
+ <para>
+ In WeeChat:
+ <screen><userinput>/plugin load toto</userinput></screen>
+ </para>
+
+ </section>
+
+ <section id="secPluginExample">
+ <title>Plugin Beispiel</title>
+
+ <para>
+ Vollständiges Beispiel eines Plugins, welches das Kommando /double implementiert, dass
+ seine Argumente im gegenwärtigen Channel doppelt ausgibt (ok, das ist weniger nützlich,
+ aber auch nur ein Beispiel!):
+<screen>
+#include &lt;stdlib.h&gt;
+
+#include "weechat-plugin.h"
+
+char plugin_name[] = "Double";
+char plugin_version[] = "0.1";
+char plugin_description[] = "Test plugin for WeeChat";
+
+/* "/double" command manager */
+
+int double_cmd (t_weechat_plugin *plugin, char *server,
+ char *command, char *arguments,
+ char *handler_args, void *handler_pointer)
+{
+ if (arguments &amp;&amp; arguments[0] &amp;&amp; (arguments[0] != '/'))
+ {
+ plugin->exec_command (plugin, NULL, NULL, arguments);
+ plugin->exec_command (plugin, NULL, NULL, arguments);
+ }
+ return PLUGIN_RC_OK;
+}
+
+int weechat_plugin_init (t_weechat_plugin *plugin)
+{
+ plugin->cmd_handler_add (plugin, "double",
+ "Display two times a message",
+ "msg",
+ "msg: message to display two times",
+ NULL,
+ &amp;double_cmd,
+ NULL, NULL);
+ return PLUGIN_RC_OK;
+}
+
+void weechat_plugin_end (t_weechat_plugin *plugin)
+{
+ /* nothing done here */
+}
+</screen>
+ </para>
+
+ </section>
+
+ </section>
+
+ <section id="secScriptsPlugins">
+ <title>Skript-Plugins</title>
+
+ <para>
+ Vier Plugins werden von WeeChat angeboten um Skriptsprachen zu nutzen:
+ Perl, Python, Ruby und Lua.
+ </para>
+
+ <section id="secLoadUnloadScripts">
+ <title>Laden / Entfernen von Skripten</title>
+
+ <para>
+ Scripts are loaded and unloaded with <command>/perl</command>,
+ <command>/python</command>, <command>/ruby</command> and
+ <command>/lua</command> commands
+ (type <command>/help</command> in WeeChat for help about commands).
+
+ Skripte werden mit den Kommandos <command>/perl</command>, <command>/python</command>,
+ <command>/ruby</command> und <command>/lua</command> geladen oder entfernt.
+ (Benutze <command>/help</command> in WeeChat für Hilfe zu den Kommandos).
+ </para>
+
+ <para>
+ Beispiele:
+ <itemizedlist>
+ <listitem>
+ <para>
+ Laden eines Perl-Skripts:
+ <command><userinput>/perl load /tmp/test.pl</userinput></command>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Liste alle geladenen Perl-Skripte auf:
+ <command><userinput>/perl</userinput></command>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Laden eines Python-Skripts:
+ <command><userinput>/python load /tmp/test.py</userinput></command>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Liste alle geladenen Python-Skripte auf:
+ <command><userinput>/python</userinput></command>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Laden eines Ruby-Skripts:
+ <command><userinput>/ruby load /tmp/test.rb</userinput></command>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Liste alle geladenen Ruby-Skripte auf:
+ <command><userinput>/ruby</userinput></command>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Laden eines Lua-Skripts:
+ <command><userinput>/lua load /tmp/test.lua</userinput></command>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Liste alle geladenen Lua-Skripte auf:
+ <command><userinput>/lua</userinput></command>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+
+ </section>
+
+ <section id="secSyntaxByLanguage">
+ <title>Syntax in den Skriptsprachen</title>
+
+ <section>
+ <title>Perl</title>
+
+ <para>
+ In einem WeeChat-PerlSkript ist allen API-Funktionen und Variablen ein
+ "<literal>weechat::</literal>" vorangestellt.
+ Beispiel:
+<screen>weechat::register("test", "1.0", "end_test", "WeeChat perl script");</screen>
+ </para>
+
+ </section>
+
+ <section>
+ <title>Python</title>
+
+ <para>
+ Ein WeeChat-Pythonskript muss mit einer Importdirektive für WeeChat beginnen:
+ <screen>import weechat</screen>
+ </para>
+
+ <para>
+ Allen API-Funktionen und Variablen ist ein "<literal>weechat.</literal>" vorangestellt.
+ Beispiel:
+<screen>weechat.register("test", "1.0", "end_test", "WeeChat python script")</screen>
+ </para>
+
+ </section>
+
+ <section>
+ <title>Ruby</title>
+
+ <para>
+ In einem WeeChat-Rubyskript muss der gesamte Code innerhalb von
+ Funktionen stehen. Für den Hauptteil ist die Funktion "<literal>weechat_init</literal>"
+ zu definieren, die automatisch aufgerufen wird, wenn das Skript in WeeChat geladen wird.
+ Beispiel:
+<screen>
+def weechat_init
+ Weechat.register("test", "1.0", "end_test", "WeeChat ruby script")
+ Weechat.add_command_handler("command", "my_command")
+ return Weechat::PLUGIN_RC_OK
+end
+
+def my_command(server, args)
+ Weechat.print("my command")
+ return Weechat::PLUGIN_RC_OK
+end
+</screen>
+ </para>
+
+ <para>
+ Allen API-Funktionen ist "<literal>Weechat.</literal>"
+ und Variablen "<literal>Weechat::</literal>" vorangestellt.
+ </para>
+
+ </section>
+
+ <section>
+ <title>Lua</title>
+
+ <para>
+ In a WeeChat Lua script, all API functions are prefixed by
+ In einem WeeChat-Luaskript ist allen Funktionen ein "<literal>weechat.</literal>"
+ vorangestellt. Variablen beginnen mit "<literal>weechat.</literal>" und
+ enden mit "<literal>()</literal>".
+ Beispiel:
+<screen>
+function message_handler(server, args)
+ weechat.print("I am a message handler")
+ return weechat.PLUGIN_RC_OK()
+end
+</screen>
+ </para>
+
+ </section>
+
+ </section>
+
+ <section id="secWeeChatScriptsAPI">
+ <title>WeeChat / Skript-API</title>
+
+ <section>
+ <title>register</title>
+
+ <para>
+ Perl-Prototyp:
+ <command>
+ weechat::register(name, version, end_function, description);
+ </command>
+ </para>
+ <para>
+ Python-Prototyp:
+ <command>
+ weechat.register(name, version, end_function, description)
+ </command>
+ </para>
+ <para>
+ Ruby-Prototyp:
+ <command>
+ Weechat.register(name, version, end_function, description)
+ </command>
+ </para>
+ <para>
+ Lua-Prototyp:
+ <command>
+ weechat.register(name, version, end_function, description)
+ </command>
+ </para>
+ <para>
+ Das ist die erste Funktion, die in einem Skript aufgerufen wird.
+ Alle WeeChat-Skripte müssen diese Funktion aufrufen.
+ </para>
+ <para>
+ Argumente:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <option>name</option>: eindeutiger Name des Skripts
+ (jedes Skript muss einen eindeutigen Namen besitzen)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>version</option>: Version des Skripts
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>end_function</option>: Funktion, die aufgerufen wird, wenn
+ das Skript entfernt werden soll (optional; ein leerer String bedeutet,
+ dass nichts aufgerufen wird)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>description</option>: eine kurze Beschreibung des Skripts
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ Rückgabewert: 1 wenn das Skript registriert werden konnte, 0 wenn ein Fehler aufgetaucht ist.
+ </para>
+ <para>
+ Beispiele:
+<screen>
+# perl
+weechat::register("test", "1.0", "end_test", "Test script!");
+
+# python
+weechat.register("test", "1.0", "end_test", "Test script!")
+
+# ruby
+Weechat.register("test", "1.0", "end_test", "Test script!")
+
+-- lua
+weechat.register("test", "1.0", "end_test", "Test script!")
+</screen>
+ </para>
+ </section>
+
+ <section>
+ <title>print</title>
+
+ <para>
+ Perl-Prototyp:
+ <command>
+ weechat::print(message, [channel, [server]])
+ </command>
+ </para>
+ <para>
+ Python-Prototyp:
+ <command>
+ weechat.prnt(message, [channel, [server]])
+ </command>
+ </para>
+ <para>
+ Ruby-Prototyp:
+ <command>
+ Weechat.print(message, [channel, [server]])
+ </command>
+ </para>
+ <para>
+ Lua-Prototyp:
+ <command>
+ weechat.print(message, [channel, [server]])
+ </command>
+ </para>
+ <para>
+ Sende eine Nachricht an einen WeeChat-Puffer, identifiziert durch Server
+ und Channel.
+ </para>
+ <para>
+ Argumente:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <option>message</option>: Nachricht
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>channel</option>: Name des Channels, zu welchem der Puffer gehört, in dem die
+ Nachricht angezeigt werden soll
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>server</option>: interner Name des Servers, zu welchem der Puffer gehört, in dem
+ die Nachricht angezeigt werden soll
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ Rückgabewert: 1 bei Erfolg, 0 wenn ein Fehler aufgetreten ist
+ </para>
+ <para>
+ Beispiele:
+<screen>
+# perl
+weechat::print("message");
+weechat::print("message", "#weechat");
+weechat::print("message", "#weechat", "freenode");
+
+# python
+weechat.prnt("message")
+weechat.prnt("message", "#weechat")
+weechat.prnt("message", "#weechat", "freenode")
+
+# ruby
+Weechat.print("message")
+Weechat.print("message", "#weechat")
+Weechat.print("message", "#weechat", "freenode")
+
+-- lua
+weechat.print("message")
+weechat.print("message", "#weechat")
+weechat.print("message", "#weechat", "freenode")
+</screen>
+ </para>
+ </section>
+
+ <section>
+ <title>print_infobar</title>
+
+ <para>
+ Perl-Prototyp:
+ <command>
+ weechat::print_infobar(time, message);
+ </command>
+ </para>
+ <para>
+ Python-Prototyp:
+ <command>
+ weechat.print_infobar(time, message)
+ </command>
+ </para>
+ <para>
+ Ruby-Prototyp:
+ <command>
+ Weechat.print_infobar(time, message)
+ </command>
+ </para>
+ <para>
+ Lua-Prototyp:
+ <command>
+ weechat.print_infobar(time, message)
+ </command>
+ </para>
+ <para>
+ Zeige eine Nachricht für einen festen Zeitraum in der Infobar.
+ </para>
+ <para>
+ Argumente:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <option>time</option>: Zeit (in sekunden) der Anzeige (0 = permanent)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>message</option>: Nachricht
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ Rückgabewert: 1 bei Erfolg, 0 wenn ein Fehler aufgetreten ist
+ </para>
+ <para>
+ Beispiele:
+<screen>
+# perl
+weechat::print_infobar(5, "message");
+
+# python
+weechat.print_infobar(5, "message")
+
+# ruby
+Weechat.print_infobar(5, "message")
+
+-- lua
+weechat.print_infobar(5, "message")
+</screen>
+ </para>
+ </section>
+
+ <section>
+ <title>remove_infobar</title>
+
+ <para>
+ Perl-Prototyp:
+ <command>
+ weechat::remove_infobar([count]);
+ </command>
+ </para>
+ <para>
+ Python-Prototyp:
+ <command>
+ weechat.remove_infobar([count])
+ </command>
+ </para>
+ <para>
+ Ruby-Prototyp:
+ <command>
+ Weechat.remove_infobar([count])
+ </command>
+ </para>
+ <para>
+ Lua-Prototyp:
+ <command>
+ weechat.remove_infobar([count])
+ </command>
+ </para>
+ <para>
+ Entfernt eine oder mehrere Nachrichten aus dem Infobar-Speicher.
+ </para>
+ <para>
+ Argumente:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <option>count</option>: Anzahl der Nachrichten, die entfernt werden sollen
+ (Ist kein Argument angegeben oder &lt;= 0 werden alle Nachrichten entfernt)
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ Rückgabewert: 1 bei Erfolg, 0 bei Auftreten eines Fehlers
+ </para>
+ <para>
+ Beispiele:
+<screen>
+# perl
+weechat::remove_infobar(1);
+
+# python
+weechat.remove_infobar(1)
+
+# ruby
+Weechat.remove_infobar(1)
+
+-- lua
+weechat.remove_infobar(1)
+</screen>
+ </para>
+ </section>
+
+ <section>
+ <title>log</title>
+
+ <para>
+ Perl-Prototyp:
+ <command>
+ weechat::log(message, [channel, [server]]);
+ </command>
+ </para>
+ <para>
+ Python-Prototyp:
+ <command>
+ weechat.log(message, [channel, [server]])
+ </command>
+ </para>
+ <para>
+ Ruby-Prototyp:
+ <command>
+ Weechat.log(message, [channel, [server]])
+ </command>
+ </para>
+ <para>
+ Lua-Prototyp:
+ <command>
+ weechat.log(message, [channel, [server]])
+ </command>
+ </para>
+ <para>
+ Schreibe eine Nachricht in die Logdatei eines Servers oder Channels.
+ </para>
+ <para>
+ Argumente:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <option>message</option>: Nachricht
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>channel</option>: Name des Channels, zu welchem der Puffer der Logdatei gehört
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>server</option>: interner Name des Servers, zu welchem der Puffer der Logdatei gehört
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ Rückgabewert: 1 bei Erfolg, 0 wenn ein Fehler aufgetreten ist.
+ </para>
+ <para>
+ Beispiel:
+<screen>
+# perl
+weechat::log("message", "#weechat", "freenode");
+
+# python
+weechat.log("message", "#weechat", "freenode")
+
+# ruby
+Weechat.log("message", "#weechat", "freenode")
+
+-- lua
+weechat.log("message", "#weechat", "freenode")
+</screen>
+ </para>
+ </section>
+
+ <section>
+ <title>add_message_handler</title>
+
+ <para>
+ Perl-Prototyp:
+ <command>
+ weechat::add_message_handler(message, function);
+ </command>
+ </para>
+ <para>
+ Python-Prototyp:
+ <command>
+ weechat.add_message_handler(message, function)
+ </command>
+ </para>
+ <para>
+ Ruby-Prototyp:
+ <command>
+ Weechat.add_message_handler(message, function)
+ </command>
+ </para>
+ <para>
+ Lua-Prototyp:
+ <command>
+ weechat.add_message_handler(message, function)
+ </command>
+ </para>
+ <para>
+ Erzeuge einen Nachrichten-Handler, der bei Empfang einer IRC-Nachricht aufgerufen wird.
+ </para>
+ <para>
+ Argumente:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <option>message</option>: Name (Typ) der IRC-Nachricht. Für eine Liste
+ der bekannten Typen von IRC-Nachrichten konsultieren sie bitte die
+ <acronym>RFC</acronym>s
+ <ulink url="http://www.ietf.org/rfc/rfc1459.txt">1459</ulink> und
+ <ulink url="http://www.ietf.org/rfc/rfc2812.txt">2812</ulink>.
+ Mehr noch, sie können spezielle Ereignisse abfangen, indem sie einen speziellen Namen verwenden, der mit
+ "weechat_" beginnt (siehe <xref linkend="secAPI_msg_handler_add" />).
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>function</option>: Funktion, die bei Empfang einer Nachricht aufgerufen werden soll
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ Rückgabewert: 1 bei Erfolg, 0 wenn ein Fehler aufgetreten ist.
+ </para>
+ <para>
+ Beispiele:
+<screen>
+# perl
+weechat::add_message_handler ("privmsg", "my_function");
+sub my_function
+{
+ weechat::print("server=$_[0]");
+ ($null, $channel, $message) = split ":",$_[1],3;
+ ($mask, $null, $channel) = split " ", $channel;
+ weechat::print("mask=$mask, channel=$channel, msg=$message");
+ return weechat::PLUGIN_RC_OK;
+}
+
+# python
+weechat.add_message_handler ("privmsg", "my_function")
+def my_function(server, args):
+ weechat.prnt("server="+server)
+ null, channel, message = string.split(args, ":", 2)
+ masque, null, channel = string.split(string.strip(channel), " ", 2)
+ weechat.prnt("mask="+mask+", canal="+channel+", message="+message)
+ return weechat.PLUGIN_RC_OK
+
+# ruby
+Weechat.add_message_handler("privmsg", "my_function")
+def my_function(server, args)
+ Weechat.print("server=#{server}, args=#{args}")
+ return Weechat::PLUGIN_RC_OK
+end
+
+-- lua
+weechat.add_message_handler ("privmsg", "my_function")
+function my_function(server, args)
+ weechat.print("server=" .. server .. ", args=" .. args)
+ return weechat.PLUGIN_RC_OK()
+end
+</screen>
+ </para>
+ <para>
+ Hinweis: die Funktion, die aufgerufen wird wenn eine Nachricht
+ empfangen wurde, muss einen der folgenden Werte zurückgeben:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <literal>PLUGIN_RC_KO</literal>: Funktion fehlgeschlagen
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <literal>PLUGIN_RC_OK</literal>: Funktion war erfolgreich
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <literal>PLUGIN_RC_OK_IGNORE_WEECHAT</literal>: Die Nachricht wird nicht an WeeChat übergeben
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <literal>PLUGIN_RC_OK_IGNORE_PLUGINS</literal>: Die Nachricht wird nicht an andere Plugins
+ weitergegeben
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <literal>PLUGIN_RC_OK_IGNORE_ALL</literal>: Die Nachricht wird weder
+ an WeeChat noch an andere Plugins übergeben
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </section>
+
+ <section>
+ <title>add_command_handler</title>
+
+ <para>
+ Perl-Prototyp:
+ <command>
+ weechat::add_command_handler(command, function,
+ [description, arguments, arguments_description,
+ completion_template]);
+ </command>
+ </para>
+ <para>
+ Python-Prototyp:
+ <command>
+ weechat.add_command_handler(command, function,
+ [description, arguments, arguments_description,
+ completion_template])
+ </command>
+ </para>
+ <para>
+ Ruby-Prototyp:
+ <command>
+ Weechat.add_command_handler(command, function,
+ [description, arguments, arguments_description,
+ completion_template])
+ </command>
+ </para>
+ <para>
+ Lua-Prototyp:
+ <command>
+ weechat.add_command_handler(command, function,
+ [description, arguments, arguments_description,
+ completion_template])
+ </command>
+ </para>
+ <para>
+ Erzeugt einen Kommando-Handler, der aufgerufen wird, wenn der Anwender
+ das Kommando benutzt (Beispiel: /command).
+ </para>
+ <para>
+ Argumente:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <option>command</option>:
+ Name des neuen Kommandos, der auch Name eines bereits
+ existierenden Kommandos sein kann (mit Bedacht zu verwenden,
+ das ersetzte Kommando ist nicht verfügbar, bis das Plugin entfernt wurde)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>function</option>: Funktion, die aufgerufen wird, wenn
+ das Kommando ausgeführt wird
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>arguments</option>: eine kurze Beschreibung der Argumente des Kommandos
+ (werden angezeigt bei /help command)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>arguments_description</option>: eine ausführliche Beschreibung der Argumente
+ des Kommandos (werden angezeigt bei /help command)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>completion_template</option>:
+ Vorlage für die Vervollständigung; zum Beispiel bedeutet
+ "<code class="literal">abc|%w def|%i</code>", dass das
+ erste Argument "abc" oder ein WeeChat-Kommando sein kann
+ und das zweite Argument "def" oder ein IRC-Kommando.
+ (siehe <xref linkend="secAPI_cmd_handler_add" />)
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ Rückgabewert: 1 bei Erfolg, 0 wenn ein Fehler aufgetreten ist
+ </para>
+ <para>
+ Beispiele:
+<screen>
+# perl
+weechat::add_command_handler("command", "my_command");
+sub my_command
+{
+ weechat::print("server= $_[0], args: $_[1]");
+ return weechat::PLUGIN_RC_OK;
+}
+
+# python
+weechat.add_command_handler("command", "my_command")
+def my_command(server, args):
+ weechat.prnt("server="+server+", args="+args)
+ return weechat.PLUGIN_RC_OK
+
+# ruby
+Weechat.add_command_handler("command", "my_command")
+def my_command(server, args)
+ Weechat.print("server=#{server}, args=#{args}")
+ return Weechat::PLUGIN_RC_OK
+end
+
+-- lua
+weechat.add_command_handler("command", "my_command")
+def my_command(server, args)
+ weechat.print("server="..server..", args="..args)
+ return weechat.PLUGIN_RC_OK()
+end
+</screen>
+ </para>
+ <para>
+ Hinweis: die Funktion, die aufgerufen wird wenn eine Nachricht
+ empfangen wurde, muss einen der folgenden Werte zurückgeben:
+
+ <itemizedlist>
+ <listitem>
+ <para>
+ <literal>PLUGIN_RC_KO</literal> : Funktion ist fehlgeschlagen
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <literal>PLUGIN_RC_OK</literal> : Funktion war erfolgreich
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </section>
+
+ <section>
+ <title>add_timer_handler</title>
+
+ <para>
+ Perl-Prototyp:
+ <command>
+ weechat::add_timer_handler(message, function);
+ </command>
+ </para>
+ <para>
+ Python-Prototyp:
+ <command>
+ weechat.add_timer_handler(message, function)
+ </command>
+ </para>
+ <para>
+ Ruby-Prototyp:
+ <command>
+ Weechat.add_timer_handler(message, function)
+ </command>
+ </para>
+ <para>
+ Lua-Prototyp:
+ <command>
+ weechat.add_timer_handler(message, function)
+ </command>
+ </para>
+ <para>
+ Erzeugt einen zeitgesteuerten Handler, der periodisch eine Funktion aufruft.
+ </para>
+ <para>
+ Argumente:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <option>interval</option>: Interval (in Sekunden) zwischen
+ zwei Aufrufen der Funktion.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>function</option>: Funktion, die aufgerufen wird
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ Rückgabewert: 1 bei Erfolg, 0 wenn ein Fehler aufgetreten ist
+ </para>
+ <para>
+ Beispiele:
+<screen>
+# perl
+weechat::add_timer_handler(60, "my_timer");
+sub my_timer
+{
+ weechat::print("this is timer handler");
+ return weechat::PLUGIN_RC_OK;
+}
+
+# python
+weechat.add_timer_handler(60, "my_timer")
+def my_timer():
+ weechat.prnt("this is timer handler")
+ return weechat.PLUGIN_RC_OK
+
+# ruby
+Weechat.add_timer_handler(60, "my_timer")
+def my_timer()
+ Weechat.print("this is timer handler")
+ return Weechat::PLUGIN_RC_OK
+end
+
+-- lua
+weechat.add_timer_handler(60, "my_timer")
+function my_timer()
+ weechat.print("this is timer handler)
+ return weechat.PLUGIN_RC_OK()
+end
+</screen>
+ </para>
+ <para>
+ Note: function called has to return one of following values:
+ Hinweis: die Funktion, die aufgerufen wird, muss
+ einen der folgenden Werte zurückgeben:
+
+ <itemizedlist>
+ <listitem>
+ <para>
+ <literal>PLUGIN_RC_KO</literal>: Funktion ist fehlgeschlagen
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <literal>PLUGIN_RC_OK</literal>: Funktion war erfolgreich
+ completed
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </section>
+
+ <section>
+ <title>add_keyboard_handler</title>
+
+ <para>
+ Perl-Prototyp:
+ <command>
+ weechat::add_keyboard_handler(message, function);
+ </command>
+ </para>
+ <para>
+ Python-Prototyp:
+ <command>
+ weechat.add_keyboard_handler(message, function)
+ </command>
+ </para>
+ <para>
+ Ruby-Prototyp:
+ <command>
+ Weechat.add_keyboard_handler(message, function)
+ </command>
+ </para>
+ <para>
+ Lua-Prototyp:
+ <command>
+ weechat.add_keyboard_handler(message, function)
+ </command>
+ </para>
+ <para>
+ Erzeugt einen Keyboard-Handler, der für jeden Tastendruck aufgerufen wird.
+ </para>
+ <para>
+ Argumente:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <option>function</option>: Funktion, die aufgerufen wird
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ Rückgabewert: 1 bei Erfolg, 0 wenn ein Fehler aufgetreten ist
+ </para>
+ <para>
+ Beispiele:
+<screen>
+# perl
+weechat::add_keyboard_handler("my_keyboard");
+sub my_keyboard
+{
+ my $key = shift;
+ my $input_before = shift;
+ my $input_after = shift;
+ weechat::print("keyboard handler: key = '$key', "
+ ."input before = '$input_before' "
+ ."after = '$input_after'");
+ return weechat::PLUGIN_RC_OK;
+}
+
+# python
+weechat.add_keyboard_handler("my_keyboard")
+def my_keyboard(key, input_before, input_after):
+ weechat.prnt("keyboard handler: key = '%s', " \
+ "input before = '%s' after = '%s'"
+ %(key, input_before, input_after))
+ return weechat.PLUGIN_RC_OK
+
+# ruby
+Weechat.add_keyboard_handler("my_keyboard")
+def my_keyboard(server, input_before, input_after)
+ Weechat.print("keyboard handler: key = '#{key}', " \
+ "input before = '#{input_before}' " \
+ "after = '#{input_after}'")
+ return Weechat::PLUGIN_RC_OK
+end
+
+-- lua
+weechat.add_keyboard_handler("my_keyboard")
+function my_keyboard(server, input_before, input_after)
+ weechat.print("keyboard handler: key = '"..key..
+ "', input before = '"..input_before..
+ "' after = '"..input_after.."'")
+ return weechat.PLUGIN_RC_OK()
+end
+</screen>
+ </para>
+ <para>
+ Hinweis: Die aufgerufene Funktion muss einen der folgenden Werte zurückgeben:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <literal>PLUGIN_RC_KO</literal>: Funktion ist fehlgeschlagen
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <literal>PLUGIN_RC_OK</literal>: Funktion war erfolgreich
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </section>
+
+ <section>
+ <title>remove_handler</title>
+
+ <para>
+ Perl-Prototyp:
+ <command>
+ weechat::remove_handler(name, function);
+ </command>
+ </para>
+ <para>
+ Python-Prototyp:
+ <command>
+ weechat.remove_handler(name, function)
+ </command>
+ </para>
+ <para>
+ Ruby-Prototyp:
+ <command>
+ Weechat.remove_handler(name, function)
+ </command>
+ </para>
+ <para>
+ Lua-Prototyp:
+ <command>
+ weechat.remove_handler(name, function)
+ </command>
+ </para>
+ <para>
+ Entfernt einen Nachrichten- oder Kommando-Handler.
+ </para>
+ <para>
+ Argumente:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <option>name</option>: Name der IRC-Message oder Kommando
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>function</option>: Funktion
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ Rückgabewert: 1 bei Erfolg, 0 bei Auftreten eines Fehlers
+ </para>
+ <para>
+ Beispiele:
+<screen>
+# perl
+weechat::remove_handler("command", "my_command");
+
+# python
+weechat.remove_handler("command", "my_command")
+
+# ruby
+Weechat.remove_handler("command", "my_command")
+
+-- lua
+weechat.remove_handler("command", "my_command")
+</screen>
+ </para>
+ </section>
+
+ <section>
+ <title>remove_timer_handler</title>
+
+ <para>
+ Perl-Prototyp:
+ <command>
+ weechat::remove_timer_handler(function);
+ </command>
+ </para>
+ <para>
+ Python-Prototyp:
+ <command>
+ weechat.remove_timer_handler(function)
+ </command>
+ </para>
+ <para>
+ Ruby-Prototyp:
+ <command>
+ Weechat.remove_timer_handler(function)
+ </command>
+ </para>
+ <para>
+ Lua-Prototyp:
+ <command>
+ weechat.remove_timer_handler(function)
+ </command>
+ </para>
+ <para>
+ Entfernt einen zeitgesteuerten Handler.
+ </para>
+ <para>
+ Argumente:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <option>function</option>: Funktion
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ Rückgabewert: 1 bei Erfolg, 0 wenn ein Fehler aufgetreten ist
+ </para>
+ <para>
+ Beispiele:
+<screen>
+# perl
+weechat::remove_timer_handler("my_timer");
+
+# python
+weechat.remove_timer_handler("my_timer")
+
+# ruby
+Weechat.remove_timer_handler("my_timer")
+
+-- lua
+weechat.remove_timer_handler("my_timer")
+</screen>
+ </para>
+ </section>
+
+ <section>
+ <title>remove_keyboard_handler</title>
+
+ <para>
+ Perl-Prototyp:
+ <command>
+ weechat::remove_keyboard_handler(function);
+ </command>
+ </para>
+ <para>
+ Python-Prototyp:
+ <command>
+ weechat.remove_keyboard_handler(function)
+ </command>
+ </para>
+ <para>
+ Ruby-Prototyp:
+ <command>
+ Weechat.remove_keyboard_handler(function)
+ </command>
+ </para>
+ <para>
+ Lua-Prototyp:
+ <command>
+ weechat.remove_keyboard_handler(function)
+ </command>
+ </para>
+ <para>
+ Entfernt einen Keyboard-Handler.
+ </para>
+ <para>
+ Argumente:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <option>function</option>: Funktion
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ Rückgabewert: 1 bei Erfolg, 0 wenn ein Fehler aufgetreten ist.
+ </para>
+ <para>
+ Beispiele:
+<screen>
+# perl
+weechat::remove_keyboard_handler("my_keyboard");
+
+# python
+weechat.remove_keyboard_handler("my_keyboard")
+
+# ruby
+Weechat.remove_keyboard_handler("my_keyboard")
+
+-- lua
+weechat.remove_keyboard_handler("my_keyboard")
+</screen>
+ </para>
+ </section>
+
+ <section>
+ <title>command</title>
+
+ <para>
+ Perl-Prototyp:
+ <command>
+ weechat::command(command, [channel, [server]]);
+ </command>
+ </para>
+ <para>
+ Python-Prototyp:
+ <command>
+ weechat.command(command, [channel, [server]])
+ </command>
+ </para>
+ <para>
+ Ruby-Prototyp:
+ <command>
+ Weechat.command(command, [channel, [server]])
+ </command>
+ </para>
+ <para>
+ Lua-Prototyp:
+ <command>
+ weechat.command(command, [channel, [server]])
+ </command>
+ </para>
+ <para>
+ Führt ein WeeChat-Kommando aus (oder sendet eine Nachricht an einen Channel).
+ </para>
+ <para>
+ Argumente:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <option>command</option>: Kommando
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>channel</option>: Name des Channels, für den das Kommando
+ ausgeführt werden soll
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>server</option>: interner Name des Servers, für den das
+ Kommando ausgeführt werden soll
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ Rückgabewert: 1 bei Erfolg, 0 wenn ein Fehler aufgetreten ist
+ </para>
+ <para>
+ Beispiele:
+<screen>
+# perl
+weechat::command("hello everybody!");
+weechat::command("/kick toto please leave this channel", "#weechat");
+weechat::command("/nick newnick", "", "freenode");
+
+# python
+weechat.command("hello everybody!")
+weechat.command("/kick toto please leave this channel", "#weechat")
+weechat.command("/nick newnick", "", "freenode")
+
+# ruby
+Weechat.command("hello everybody!")
+Weechat.command("/kick toto please leave this channel", "#weechat")
+Weechat.command("/nick newnick", "", "freenode")
+
+-- lua
+weechat.command("hello everybody!")
+weechat.command("/kick toto please leave this channel", "#weechat")
+weechat.command("/nick newnick", "", "freenode")
+</screen>
+ </para>
+ </section>
+
+ <section>
+ <title>get_info</title>
+
+ <para>
+ Perl-Prototyp:
+ <command>
+ weechat::get_info(name, [server]);
+ </command>
+ </para>
+ <para>
+ Python-Prototyp:
+ <command>
+ weechat.get_info(name, [server])
+ </command>
+ </para>
+ <para>
+ Ruby-Prototyp:
+ <command>
+ Weechat.get_info(name, [server])
+ </command>
+ </para>
+ <para>
+ Lua-Prototyp:
+ <command>
+ weechat.get_info(name, [server])
+ </command>
+ </para>
+ <para>
+ Gibt ein Info über WweeChat oder einen Channel zurück.
+ </para>
+ <para>
+ Argumente:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <option>name</option>: Name (Typ) des Infos, das gelesen werden soll
+ (siehe <xref linkend="secAPI_get_info" />)
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>server</option>: interner Name des Servers
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ Rückgabewert: angefragte Infos, oder leerer String, wenn ein Fehler aufgetreten ist.
+ </para>
+ <para>
+ Beispiele:
+<screen>
+# perl
+$version = get_info("version");
+$nick = get_info("nick", "freenode");
+
+# python
+version = weechat.get_info("version")
+nick = weechat.get_info("nick", "freenode")
+
+# ruby
+version = Weechat.get_info("version")
+nick = Weechat.get_info("nick", "freenode")
+
+-- lua
+version = weechat.get_info("version")
+nick = weechat.get_info("nick", "freenode")
+</screen>
+ </para>
+ </section>
+
+ <section>
+ <title>get_dcc_info</title>
+
+ <para>
+ Perl-Prototyp:
+ <command>
+ weechat::get_dcc_info();
+ </command>
+ </para>
+ <para>
+ Python-Prototyp:
+ <command>
+ weechat.get_dcc_info()
+ </command>
+ </para>
+ <para>
+ Ruby-Prototyp:
+ <command>
+ Weechat.get_dcc_info()
+ </command>
+ </para>
+ <para>
+ Lua-Prototyp:
+ <command>
+ weechat.get_dcc_info()
+ </command>
+ </para>
+ <para>
+ Gibt eine Liste der gegenwärtig aktiven oder beendeten DCCs zurück.
+ </para>
+ <para>
+ Rückgabewert: Liste der DCCS
+ (siehe <xref linkend="secAPI_get_dcc_info" />).
+ </para>
+ <para>
+ Beispiele:
+<screen>
+# perl
+my @dccs = weechat::get_dcc_info();
+if (@dccs)
+{
+ foreach my $dcc (@dccs)
+ {
+ while (my ($key, $value) = each %$dcc)
+ {
+ weechat::print("$key = '$value'");
+ }
+ }
+}
+else
+{
+ weechat::print("no DCC");
+}
+
+# python
+dccs = weechat.get_dcc_info()
+if dccs != None:
+ if dccs == []:
+ weechat.prnt("no DCC")
+ else:
+ for d in dccs:
+ for b in d.keys():
+ weechat.prnt("%s = '%s'" %(b, d[b]))
+else:
+ weechat.prnt("error while getting DCC")
+
+# ruby
+dccs = Weechat.get_dcc_info()
+if dccs != nil
+ if dccs == []
+ Weechat.print("no DCC")
+ else
+ dccs.each do |m|
+ m.each do |key, value|
+ Weechat.print("#{key} = '#{value}'")
+ end
+ end
+ end
+else
+ Weechat.print("error while getting DCC")
+end
+
+-- lua
+dccs = weechat.get_dcc_info()
+if dccs ~= nil then
+ if dccs then
+ dcc, dccinfos = next (dccs, nil)
+ while (dcc) do
+ key, value = next (dccinfos, nil)
+ while (key) do
+ weechat.print(key.." = '"..value.."'")
+ key, value = next (dccinfos, key)
+ end
+ dcc, dccinfos = next (dccs, dcc)
+ end
+ else
+ weechat.print("no DCC")
+ end
+else
+ weechat.print("error while getting DCC")
+end
+</screen>
+ </para>
+ </section>
+
+ <section>
+ <title>get_server_info</title>
+
+ <para>
+ Perl-Prototyp:
+ <command>
+ weechat::get_server_info();
+ </command>
+ </para>
+ <para>
+ Python-Prototyp:
+ <command>
+ weechat.get_server_info()
+ </command>
+ </para>
+ <para>
+ Ruby-Prototyp:
+ <command>
+ Weechat.get_server_info()
+ </command>
+ </para>
+ <para>
+ Lua-Prototyp:
+ <command>
+ weechat.get_server_info()
+ </command>
+ </para>
+ <para>
+ Gibt eine Liste der IRC-Server zurück (verbunden oder nicht).
+ </para>
+ <para>
+ Rückgabewert: Liste der Server
+ (siehe <xref linkend="secAPI_get_server_info" />).
+ </para>
+ <para>
+ Beispiele:
+<screen>
+# perl
+my $servers = weechat::get_server_info();
+if ($servers)
+{
+ while (my ($srvname, $srvinfos) = each %$servers)
+ {
+ while ( my ($key, $value) = each %$srvinfos)
+ {
+ weechat::print("$srvname -> $key = '$value'");
+ }
+ }
+}
+else
+{
+ weechat::print("no server");
+}
+
+# python
+servers = weechat.get_server_info()
+if servers != None:
+ if servers == {}:
+ weechat.prnt("no server")
+ else:
+ for s in servers:
+ for i in servers[s]:
+ weechat.prnt("%s -> %s = '%s'" % (s, i, str(servers[s][i])))
+else:
+ weechat.prnt("error while getting servers")
+
+# ruby
+servers = Weechat.get_server_info()
+if servers != nil
+ if servers == []
+ Weechat.print("no server")
+ else
+ servers.each do |n, s|
+ s.each do |key, value|
+ Weechat.print("#{n} -> #{key} = '#{value}'")
+ end
+ end
+ end
+else
+ Weechat.print("error while getting servers")
+end
+
+-- lua
+servers = weechat.get_server_info()
+if servers ~= nil then
+ if servers then
+ srv, srvinfos = next (servers, nil)
+ while (srv) do
+ key, value = next (srvinfos, nil)
+ while (key) do
+ weechat.print(srv.." -> "..key.." = '"..value.."'")
+ key, value = next (srvinfos, key)
+ end
+ srv, srvinfos = next (servers, srv)
+ end
+ else
+ weechat.print("no server")
+ end
+else
+ weechat.print("error while getting servers")
+end
+</screen>
+ </para>
+ </section>
+
+ <section>
+ <title>get_channel_info</title>
+
+ <para>
+ Perl-Prototyp:
+ <command>
+ weechat::get_channel_info(server);
+ </command>
+ </para>
+ <para>
+ Python-Prototyp:
+ <command>
+ weechat.get_channel_info(server)
+ </command>
+ </para>
+ <para>
+ Ruby-Prototyp:
+ <command>
+ Weechat.get_channel_info(server)
+ </command>
+ </para>
+ <para>
+ Lua-Prototyp:
+ <command>
+ weechat.get_channel_info(server)
+ </command>
+ </para>
+ <para>
+ Gibt eine Liste der Channels für einen Server zurück.
+ </para>
+ <para>
+ Rückgabewert: Liste der Channel für einen Server
+ (siehe <xref linkend="secAPI_get_channel_info" />).
+ </para>
+ <para>
+ Beispiele:
+<screen>
+# perl
+my $channels = weechat::get_channel_info(weechat::get_info("server"));
+if ($channels)
+{
+ while (my ($channame, $chaninfos) = each %$channels)
+ {
+ while (my ($key, $value) = each %$chaninfos)
+ {
+ weechat::print("$channame -> $key = '$value'");
+ }
+ }
+}
+else
+{
+ weechat::print("no channel");
+}
+
+# python
+chans = weechat.get_channel_info(weechat.get_info("server"))
+if chans != None:
+ if chans == {}:
+ weechat.prnt("no channel")
+ else:
+ for s in chans:
+ for i in chans[s]:
+ weechat.prnt("%s -> %s = '%s'" % (s, i, str(chans[s][i])))
+else:
+ weechat.prnt("error while getting channels")
+
+# ruby
+channels = Weechat.get_channel_info(Weechat.get_info("server"))
+if channels != nil
+ if channels == {}
+ Weechat.print("no channel")
+ else
+ channels.each do |n, c|
+ c.each do |key, value|
+ Weechat.print("#{n} -> #{key} = '#{value}'")
+ end
+ end
+ end
+else
+ Weechat.print("error while getting channels")
+end
+
+-- lua
+chans = weechat.get_channel_info(weechat.get_info("server"))
+if chans ~= nil then
+ if chans then
+ chan, chaninfos = next (chans, nil)
+ while (chan) do
+ key, value = next (chaninfos, nil)
+ while (key) do
+ weechat.print(chan.." -> "..key.." = '"..value.."'")
+ key, value = next (chaninfos, key)
+ end
+ chan, chaninfos = next (chans, chan)
+ end
+ else
+ weechat.print("no channel")
+ end
+else
+ weechat.print("error while getting channels")
+end
+</screen>
+ </para>
+ </section>
+
+ <section>
+ <title>get_nick_info</title>
+
+ <para>
+ Perl-Prototyp:
+ <command>
+ weechat::get_nick_info(server, channel);
+ </command>
+ </para>
+ <para>
+ Python-Prototyp:
+ <command>
+ weechat.get_nick_info(server, channel)
+ </command>
+ </para>
+ <para>
+ Ruby-Prototyp:
+ <command>
+ Weechat.get_nick_info(server, channel)
+ </command>
+ </para>
+ <para>
+ Lua-Prototyp:
+ <command>
+ weechat.get_nick_info(server, channel)
+ </command>
+ </para>
+ <para>
+ Gibt eine Liste der Nicknamen für einen Channel zurück.
+ </para>
+ <para>
+ Rückgabewert: Liste der Nicknamen eines Channels
+ (siehe <xref linkend="secAPI_get_nick_info" />).
+ </para>
+ <para>
+ Beispiele:
+<screen>
+# perl
+my $nicks = weechat::get_nick_info("freenode", "#weechat");
+if ($nicks)
+{
+ while (my ($nickname, $nickinfos) = each %$nicks)
+ {
+ while ( my ($key, $value) = each %$nickinfos)
+ {
+ weechat::print("$nickname -> $key = '$value'");
+ }
+ }
+}
+else
+{
+ weechat::print("no nick");
+}
+
+# python
+nicks = weechat.get_nick_info("freenode", "#weechat")
+if nicks != None:
+ if nicks == {}:
+ weechat.prnt("no nick")
+ else:
+ for n in nicks:
+ for f in nicks[n]:
+ weechat.prnt("%s -> %s = '%s'" % (n, f, str(nicks[n][f])))
+else:
+ weechat.prnt("error while getting nicks")
+
+# ruby
+nicks = Weechat.get_nick_info("freenode", "#weechat")
+if nicks != nil
+ if nicks == {}
+ Weechat.print("no nick")
+ else
+ nicks.each do |nk, nattr|
+ nattr.each do |key, value|
+ Weechat.print("#{nk} -> #{key} = '#{value}'")
+ end
+ end
+ end
+else
+ Weechat.print("error while getting nicks")
+end
+
+-- lua
+nicks = weechat.get_nick_info("freenode", "#weechat")
+if nicks ~= nil then
+ if nicks then
+ nick, nickinfos = next (nicks, nil)
+ while (nick) do
+ key, value = next (nickinfos, nil)
+ while (key) do
+ weechat.print(nick.." -> "..key.." = '"..value.."'")
+ key, value = next (nickinfos, key)
+ end
+ nick, nickinfos = next (nicks, nick)
+ end
+ else
+ weechat.print("no nick")
+ end
+else
+ weechat.print("error while getting nicks")
+end
+</screen>
+ </para>
+ </section>
+
+ <section>
+ <title>get_config</title>
+
+ <para>
+ Perl-Prototyp:
+ <command>
+ weechat::get_config(option);
+ </command>
+ </para>
+ <para>
+ Python-Prototyp:
+ <command>
+ weechat.get_config(option)
+ </command>
+ </para>
+ <para>
+ Ruby-Prototyp:
+ <command>
+ Weechat.get_config(option)
+ </command>
+ </para>
+ <para>
+ Lua-Prototyp:
+ <command>
+ weechat.get_config(option)
+ </command>
+ </para>
+ <para>
+ Gibt den Wert einer Option der WeeChat-Konfiguration zurück.
+ </para>
+ <para>
+ Argumente:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <option>option</option>: Name der Option
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ Rückgabewert: Wert der Option, leerer String wenn nichts gefunden wurde.
+ </para>
+ <para>
+ Beispiele:
+<screen>
+# perl
+$value1 = weechat::get_config("look_nicklist");
+$value2 = weechat::get_config("freenode.server_autojoin");
+
+# python
+value1 = weechat.get_config("look_nicklist")
+value2 = weechat.get_config("freenode.server_autojoin")
+
+# ruby
+value1 = Weechat.get_config("look_nicklist")
+value2 = Weechat.get_config("freenode.server_autojoin")
+
+-- lua
+value1 = weechat.get_config("look_nicklist")
+value2 = weechat.get_config("freenode.server_autojoin")
+</screen>
+ </para>
+ </section>
+
+ <section>
+ <title>set_config</title>
+
+ <para>
+ Perl-Prototyp:
+ <command>
+ weechat::set_config(option, value);
+ </command>
+ </para>
+ <para>
+ Python-Prototyp:
+ <command>
+ weechat.set_config(option, value)
+ </command>
+ </para>
+ <para>
+ Ruby-Prototyp:
+ <command>
+ Weechat.set_config(option, value)
+ </command>
+ </para>
+ <para>
+ Lua-Prototyp:
+ <command>
+ weechat.set_config(option, value)
+ </command>
+ </para>
+ <para>
+ Setze den Wert einer Option der WeeChat-Konfiguration.
+ </para>
+ <para>
+ Argumente:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <option>option</option>: Name der Option, die gesetzt werden soll
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>value</option>: neuer Wert der Option
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ Rückgabewert: 1 wenn der Wert gesetzt wurde, 0 wenn ein Fehler aufgetreten ist.
+ </para>
+ <para>
+ Beispiele:
+<screen>
+# perl
+weechat::set_config("look_nicklist", "off");
+weechat::set_config("freenode.server_autojoin, "#weechat");
+
+# python
+weechat.set_config("look_nicklist", "off")
+weechat.set_config("freenode.server_autojoin, "#weechat")
+
+# ruby
+Weechat.set_config("look_nicklist", "off")
+Weechat.set_config("freenode.server_autojoin, "#weechat")
+
+-- lua
+weechat.set_config("look_nicklist", "off")
+weechat.set_config("freenode.server_autojoin, "#weechat")
+</screen>
+ </para>
+ </section>
+
+ <section>
+ <title>get_plugin_config</title>
+
+ <para>
+ Perl-Prototyp:
+ <command>
+ weechat::get_plugin_config(option);
+ </command>
+ </para>
+ <para>
+ Python-Prototyp:
+ <command>
+ weechat.get_plugin_config(option)
+ </command>
+ </para>
+ <para>
+ Ruby-Prototyp:
+ <command>
+ Weechat.get_plugin_config(option)
+ </command>
+ </para>
+ <para>
+ Lua-Prototyp:
+ <command>
+ weechat.get_plugin_config(option)
+ </command>
+ </para>
+ <para>
+ Gibt den Wert einer Option eines Plugins zurück. Die Option wird aus
+ der Datei "<literal>~/.weechat/plugins.rc</literal>" gelesen und
+ sieht so aus: "<literal>plugin.option=value</literal>"
+ (Hinweis: Der Name des Plugins wird automatisch gesetzt).
+ </para>
+ <para>
+ Argumente:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <option>option</option>: Name der zu lesenden Option
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ Rückgabewert: Wert der Option, leerer String wenn die Option nicht
+ gefunden wurde.
+ </para>
+ <para>
+ Beispiele:
+<screen>
+# perl
+$value = weechat::get_plugin_config("my_var");
+
+# python
+value = weechat.get_plugin_config("my_var")
+
+# ruby
+value = Weechat.get_plugin_config("my_var")
+
+-- lua
+value = weechat.get_plugin_config("my_var")
+</screen>
+ </para>
+ </section>
+
+ <section>
+ <title>set_plugin_config</title>
+
+ <para>
+ Perl-Prototyp:
+ <command>
+ weechat::set_plugin_config(option, value);
+ </command>
+ </para>
+ <para>
+ Python-Prototyp:
+ <command>
+ weechat.set_plugin_config(option, value)
+ </command>
+ </para>
+ <para>
+ Ruby-Prototyp:
+ <command>
+ Weechat.set_plugin_config(option, value)
+ </command>
+ </para>
+ <para>
+ Lua-Prototyp:
+ <command>
+ weechat.set_plugin_config(option, value)
+ </command>
+ </para>
+ <para>
+ Update value of a plugin option. Option is written in file
+ Setzt den Wert einer Option eines Plugins. Die Option bzw. ihr Wert
+ wird in "<literal>~/.weechat/plugins.rc</literal>" geschrieben und
+ sieht so aus: "<literal>plugin.option=value</literal>"
+ (Hinweis: der Name des Plugins wird automatisch gesetzt).
+ </para>
+ <para>
+ Argumente:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <option>option</option>: Name der Option, die gesetzt werden soll
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <option>value</option>: Der neue Wert der Option
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ <para>
+ Rückgabewert: 1 wenn die Option gesetzt wurde, 0 wenn ein Fehler aufgetreten ist.
+ </para>
+ <para>
+ Beispiele:
+<screen>
+# perl
+weechat::set_plugin_config("my_var", "value");
+
+# python
+weechat.set_plugin_config("my_var", "value")
+
+# ruby
+Weechat.set_plugin_config("my_var", "value")
+
+-- lua
+weechat.set_plugin_config("my_var", "value")
+</screen>
+ </para>
+ </section>
+
+ </section>
+
+ </section>
+
+ </chapter>
+
+ <!-- ======================== Auteurs / Support ========================= -->
+
+ <chapter id="chapAuthorsSupport">
+ <title>Autoren / Support</title>
+
+ <para>
+ Dieses Kapitel listet Autoren und Beitragende für WeeChat auf, und
+ zeigt die Möglichkeiten um Support zu bekommen.
+ </para>
+
+ <section id="secAuthors">
+ <title>Autoren</title>
+
+ <para>
+ WeeChat wird entwickelt von:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis>FlashCode (Sébastien Helleu)</emphasis>
+ <email>flashcode AT flashtux.org</email> -
+ Hauptentwickler
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>Kolter</emphasis>
+ <email>kolter AT free.fr</email> -
+ Entwickler
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>Ptitlouis</emphasis>
+ <email>ptitlouis AT sysif.net</email> -
+ erzeugt Debian-Pakete
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+
+ </section>
+
+ <section id="secContributors">
+ <title>Beitragende</title>
+
+ <para>
+ Die folgenden Personen trugen zur Entwicklung von WeeChat bei:
+ <itemizedlist>
+ <listitem>
+ <para>
+ <emphasis>Jiri Golembiovsky</emphasis> -
+ Tschechische Übersetzung, Patches
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>Rudolf Polzer</emphasis> -
+ Patches
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>Jim Ramsay</emphasis> -
+ Patches
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>Odin</emphasis> -
+ SuSE RPM
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>Pistos</emphasis> -
+ Patches
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>Gwenn</emphasis> -
+ Patches
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>voroskoi</emphasis> -
+ Ungarische Übersetzung
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <emphasis>Frank Zacharias</emphasis> -
+ Deutsch Übersetzung
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+
+ </section>
+
+ <section id="secSupport">
+ <title>Support bekommen</title>
+
+ <para>
+ Bevor Sie nach Support fragen, sollten Sie die Dokumentation und die FAQ
+ gelesen haben, die bei WeeChat angeboten wird. (Die Dokumentation
+ ist dieses Dokument, wenn Sie sie nicht bis zu dieser Zeile gelesen
+ haben, sollten Sie sie noch Mal lesen!)
+ </para>
+
+ <para>
+ <itemizedlist>
+ <listitem>
+ <para>
+ IRC: Server "<literal>irc.freenode.net</literal>",
+ Channel "<literal>#weechat</literal>"
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ WeeChat Forum:
+ <ulink url="http://forums.flashtux.org">
+ http://forums.flashtux.org
+ </ulink>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Mailingliste:
+ <itemizedlist>
+ <listitem>
+ <para>
+ Zum abonnieren:
+ <ulink url="http://mail.nongnu.org/mailman/listinfo/weechat-support">
+ http://mail.nongnu.org/mailman/listinfo/weechat-support
+ </ulink>
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ Um eine Mail an die Liste zu senden:
+ <email>weechat-support@nongnu.org</email>
+ </para>
+ </listitem>
+ </itemizedlist>
+ Das Archiv der Mailingliste ist hier:
+ <ulink url="http://mail.nongnu.org/archive/html/weechat-support">
+ http://mail.nongnu.org/archive/html/weechat-support
+ </ulink>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+
+ </section>
+
+ </chapter>
+
+</book>
diff --git a/doc/de/weechat_commands.xml b/doc/de/weechat_commands.xml
new file mode 100644
index 000000000..0a65f18c0
--- /dev/null
+++ b/doc/de/weechat_commands.xml
@@ -0,0 +1,235 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+
+<!-- ********* WARNING! *********
+
+ This file is automatically built with a Perl script. DO NOT EDIT!
+-->
+
+<command>alias [Aliasname [Befehl [Argumente]]</command>
+<programlisting>
+einen Alias für einen Befehl anlegen
+
+Aliasname: Name des Alias
+ Befehl: Befehlsname (WeeChat- oder IRC-Befehl ohne führenden '/')
+Argumente: Argumente für den Befehl
+
+</programlisting>
+<command>buffer [Aktion [Argumente] | Nummer | [[Server] [Channel]]]</command>
+<programlisting>
+Puffer verwalten
+
+ Aktion: Pufferaktion:
+ move: Puffer in der Liste bewegen (kann auch relativ sein, wie -1)
+ close: Puffer schließen (und Channel ohne Meldung verlassen)
+ list: alle offenen Puffer auflisten (Standardaktion)
+ notify: Notify-Level für Puffer festlegen (0=nie, 1=highlighten, 2=1+Nachricht, 3=2+join/part)
+Server
+Channel: gehe zum Puffer mit Servernamen oder Channelnamen
+ Nummer: gehe zu Puffer mit dieser Nummer
+
+</programlisting>
+<command>builtin Befehl</command>
+<programlisting>
+starte eingebauten WeeChat/IRC-Befehl (ohne Plugin-Handler oder Aliase)
+
+Befehl: auszuführender Befehl (falls nicht vorhanden wird automatisch ein '/' vorangestellt)
+
+
+</programlisting>
+<command>charset [(decode_iso | decode_utf | encode) Zeichensatz]</command>
+<programlisting>
+ändere Zeichensatz für den Server oder Channel
+
+decode_iso: Zeichensatz um ISO zu decoden
+decode_utf: Zeichensatz um UTF zu decoden
+ encode: der zum encoden benutzte Zeichensatz
+ Zeichensatz: Zeichensatz, der benutzt werden soll (zum Beispiel: ISO-8859-15, UTF-8,..)
+
+</programlisting>
+<command>clear [-all]</command>
+<programlisting>
+Fenster leeren
+
+-all: alle Fenster leeren
+
+</programlisting>
+<command>connect [Servername]</command>
+<programlisting>
+mit einem Server verbinden
+
+Servername: Zielserver
+
+</programlisting>
+<command>disconnect [Servername]</command>
+<programlisting>
+Serververbindung trennen
+
+Servername: Name des zu trennenden Servers
+
+</programlisting>
+<command>dcc Aktion [Nickname [Datei]]</command>
+<programlisting>
+DCC (Filetransfer oder Chat) starten oder Chat beenden
+
+ Aktion: 'send' (Datei) oder 'chat' oder 'close' (Chat)
+Nickname: Empfänger der Datei bzw. Chatpartner
+ Datei: zu versendende (lokal vorliegende) Datei
+
+</programlisting>
+<command>debug dump | windows</command>
+<programlisting>
+Debugging-Nachricht ausgeben
+
+dump: Speicherabbild im WeeChat-Logfile ablegen (wie nach einem Programmabsturz)
+windows: zeigt Fensterdaten an
+
+</programlisting>
+<command>help [Befehl]</command>
+<programlisting>
+Hilfe zu Befehlen abfragen
+
+Befehl: Name eines WeeChat- oder IRC-Befehls
+
+</programlisting>
+<command>history [clear | Anzahl]</command>
+<programlisting>
+zeigt Befehlsverlauf des Puffers
+
+clear: Löscht Verlauf
+Anzahl: zeigt die gewünschte Anzahl an Verlaufseinträgen
+
+</programlisting>
+<command>ignore [Maske [[Typ | Befehl] [Channel [Server]]]]</command>
+<programlisting>
+IRC-Nachrichten und/oder Hosts ignorieren
+
+ Nummer: Nummer des zu entfernenden Eintrags (siehe Liste)
+ Maske: Nickname oder Hostmaske, die ignoriert werden soll
+ Typ: Typ der Nachrichten, die ignoriert werden sollen (action, ctcp, dcc, pv)
+Befehl: IRC-Befehl
+ Channel: Channel, in dem ignoriert werden soll
+ Server: Server, auf dem ignoriert werden soll
+
+Bei jedem Argument steht '*' für 'alle'.
+Ohne Argumente listet /ignore alle definierten /ignore-Regeln auf.
+
+</programlisting>
+<command>key [Taste Funktion/Befehl] [unbind Taste] [functions] [reset -yes]</command>
+<programlisting>
+belegen/freigeben von Tasten
+
+ Taste: diese Taste mit einer internen Funktion oder einem Befehl, beginnend mit "/", belegen
+ unbind: Tastenbelegung aufheben
+functions: interne Funktionen für Tastenbelegungen auflisten
+ reset: Standardbelegung wiederherstellen und entferne alle eigenen Belegungen (Vorsicht!)
+
+</programlisting>
+<command>plugin [load Dateiname] | [autoload] | [reload] | [unload]</command>
+<programlisting>
+auflisten/laden/entladen von Plugins
+
+Dateiname: zu ladendes Plugin
+
+Ohne Argumente werden alle geladenen Plugins aufgelistet.
+
+</programlisting>
+<command>server [Servername] | [Servername Hostname Port [-auto | -noauto] [-ipv6] [-ssl] [-pwd Passwort] [-nicks Nick1 Nick2 Nick3] [-username Benutzername] [-realname Name] [-command Befehl] [-autojoin Channel[,Channel]] ] | [del Servername]</command>
+<programlisting>
+Auflisten, Hinzufügen oder Entfernen von Servern
+
+Servername: anzuzeigender Servername
+ Hostname: Name oder IP-Adresse des Servers
+ Port: Port des Servers
+ ipv6: IPv6 benutzen
+ ssl: SSL benutzen
+ Passwort: Serverpasswort
+ Nick1: erster Nickname
+ Nick2: zweiter Nickname
+ Nick3: dritter Nicname
+ Benutzername: Benutzername
+ Realname: voller Name des Benutzers
+
+</programlisting>
+<command>save [Datei]</command>
+<programlisting>
+Konfiguration abspeichern
+
+Datei: Name der zu speichernden Konfigurationsdatei
+
+</programlisting>
+<command>set [Option [ = Wert]]</command>
+<programlisting>
+Konfigurationsparameter setzen
+
+Option: Name einer Option (wenn der Name vorhanden ist, aber kein Wert, dann wird eine Hilfe zur Option ausgegeben
+ Wert: Wert der Option
+
+Option kann Servername.server_xxx lauten, wobei "Servername" der interne Servername ist und "xxx" eine Option für diesen Server.
+
+</programlisting>
+<command>setp [Option [ = Wert]]</command>
+<programlisting>
+Konfigurationsparameter für Plugin setzen
+
+Option: Name einer Plugin-Option
+ Wert: Wert für Option
+
+Option wird wie folgt formatiert: Plugin.Option, z.B. perl.myscript.item1
+
+</programlisting>
+<command>unalias Aliasname</command>
+<programlisting>
+einen Alias entfernen
+
+Aliasname: Name des zu löschenden Aliases
+
+</programlisting>
+<command>unignore [Nummer | [Maske [[Typ | Befehl] [Channel [Server]]]]</command>
+<programlisting>
+/ignore-Regel entfernen
+
+ Nummer: Nummer des zu entfernenden Eintrags (siehe Liste)
+ Maske: Nickname oder Hostmaske, die ignoriert werden soll
+ Typ: Typ der Nachrichten, die ignoriert werden sollen (action, ctcp, dcc, pv)
+Befehl: IRC-Befehl
+ Channel: Channel, in dem ignoriert werden soll
+ Server: Server, auf dem ignoriert werden soll
+
+Bei jedem Argument steht '*' für 'alle'.
+Ohne Argumente listet /unignore alle definierten /ignore-Regeln auf.
+
+</programlisting>
+<command>upgrade</command>
+<programlisting>
+aktualisiert WeeChat ohne die Verbindung zum Server zu trennen
+
+Dieser Befehl wird auf dem Weechat-Binary ausgeführt, daher sollte dieses kompiliert oder mit einem Paketmanager installiert sein, bevor der Befehl ausgeführt wird.
+
+</programlisting>
+<command>uptime [-o]</command>
+<programlisting>
+zeigt die Uptime von Weechat an
+
+-o: sendet die Weechat-Uptime als IRC-Nachricht in den aktuellen Channel
+
+</programlisting>
+<command>window [list | -1 | +1 | b# | up | down | left | right | splith [pct] | splitv [pct] | resize pct | merge [all]]</command>
+<programlisting>
+Fenster verwalten
+
+ list: listet die geöffneten Fenster (Default, kann auch weggelassen werden)
+ -1: springt zum vorherigen Fenster
+ +1: springt zum nächsten Fenster
+ b#: springt zum nächsten Fenster, dass Puffer Nummer # anzeigt
+ up: wechselt zum Fenster über dem aktuellen
+ down: wechselt zum Fenster unter dem aktuellen
+ left: wechselt zum linken Fenster
+ right: wechselt zum rechten Fenster
+splith: teilt das aktuelle Fenster horizontal
+splitv: teilt das aktuelle Fenster vertikal
+resize: verändert die Größe des aktuellen Fensters, die neue Größe wird in Prozent des Elternfensters angegeben
+ merge: vereinigt Fenster miteinander (all = alle Fenster vereinigen)
+
+Bei splith und splitv gibt pct die neue Größe des Fensters im verhältnis zur aktuellen Größe an. Zum Beispiel würde 25 bedeuten, dass das neue Fenster nur noch ein Viertel der Größe des alten Fensters hätte.
+
+</programlisting>
diff --git a/doc/en/weechat.en.xml b/doc/en/weechat.en.xml
index 047d8afc7..1f7a15b63 100644
--- a/doc/en/weechat.en.xml
+++ b/doc/en/weechat.en.xml
@@ -5756,6 +5756,12 @@ weechat.set_plugin_config("my_var", "value")
hungarian translation
</para>
</listitem>
+ <listitem>
+ <para>
+ <emphasis>Frank Zacharias</emphasis> -
+ german translation
+ </para>
+ </listitem>
</itemizedlist>
</para>
diff --git a/doc/fr/weechat.fr.xml b/doc/fr/weechat.fr.xml
index a5dc09018..da1c7ce0e 100644
--- a/doc/fr/weechat.fr.xml
+++ b/doc/fr/weechat.fr.xml
@@ -5858,6 +5858,12 @@ weechat.set_plugin_config("ma_variable", "valeur")
traduction en hongrois
</para>
</listitem>
+ <listitem>
+ <para>
+ <emphasis>Frank Zacharias</emphasis> -
+ traduction en allemand
+ </para>
+ </listitem>
</itemizedlist>
</para>