diff options
84 files changed, 10867 insertions, 1194 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index f9a12f118..d05c9a971 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -63,31 +63,30 @@ ELSE(DEFINED INCLUDEDIR) SET(INCLUDEDIR ${CMAKE_INSTALL_PREFIX}/include/${PROJECT_NAME}) ENDIF(DEFINED INCLUDEDIR) -OPTION(ENABLE_NCURSES "Enable Ncurses interface" ON) -OPTION(ENABLE_GTK "Enable GTK interface" OFF) -OPTION(ENABLE_NLS "Enable Native Language Support" ON) -OPTION(ENABLE_GCRYPT "Enable libgcrypt support" ON) -OPTION(ENABLE_GNUTLS "Enable SSLv3/TLS support" ON) -OPTION(ENABLE_LARGEFILE "Enable Large File Support" ON) -OPTION(ENABLE_ZLIB "Enable Zlib support" ON) -OPTION(ENABLE_ALIAS "Enable Alias plugin" ON) -OPTION(ENABLE_ASPELL "Enable Aspell plugin" ON) -OPTION(ENABLE_CHARSET "Enable Charset plugin" ON) -OPTION(ENABLE_DEMO "Enable Demo plugin" OFF) -OPTION(ENABLE_FIFO "Enable FIFO plugin" ON) -OPTION(ENABLE_IRC "Enable IRC plugin" ON) -OPTION(ENABLE_LOGGER "Enable Logger plugin" ON) -OPTION(ENABLE_RELAY "Enable Relay plugin" ON) -OPTION(ENABLE_RMODIFIER "Enable Rmodifier plugin" ON) -OPTION(ENABLE_SCRIPTS "Enable script plugins" ON) -OPTION(ENABLE_PERL "Enable Perl scripting language" ON) -OPTION(ENABLE_PYTHON "Enable Python scripting language" ON) -OPTION(ENABLE_RUBY "Enable Ruby scripting language" ON) -OPTION(ENABLE_LUA "Enable Lua scripting language" ON) -OPTION(ENABLE_TCL "Enable Tcl scripting language" ON) -OPTION(ENABLE_GUILE "Enable Scheme (guile) scripting language" ON) -OPTION(ENABLE_XFER "Enable Xfer plugin" ON) -OPTION(ENABLE_DOC "Enable Documentation" ON) +OPTION(ENABLE_NCURSES "Enable Ncurses interface" ON) +OPTION(ENABLE_GTK "Enable GTK interface" OFF) +OPTION(ENABLE_NLS "Enable Native Language Support" ON) +OPTION(ENABLE_GNUTLS "Enable SSLv3/TLS support" ON) +OPTION(ENABLE_LARGEFILE "Enable Large File Support" ON) +OPTION(ENABLE_ALIAS "Enable Alias plugin" ON) +OPTION(ENABLE_ASPELL "Enable Aspell plugin" ON) +OPTION(ENABLE_CHARSET "Enable Charset plugin" ON) +OPTION(ENABLE_DEMO "Enable Demo plugin" OFF) +OPTION(ENABLE_FIFO "Enable FIFO plugin" ON) +OPTION(ENABLE_IRC "Enable IRC plugin" ON) +OPTION(ENABLE_LOGGER "Enable Logger plugin" ON) +OPTION(ENABLE_RELAY "Enable Relay plugin" ON) +OPTION(ENABLE_RMODIFIER "Enable Rmodifier plugin" ON) +OPTION(ENABLE_SCRIPT "Enable Script plugin (scripts manager)" ON) +OPTION(ENABLE_SCRIPTS "Enable script plugins (perl, python, ...)" ON) +OPTION(ENABLE_PERL "Enable Perl scripting language" ON) +OPTION(ENABLE_PYTHON "Enable Python scripting language" ON) +OPTION(ENABLE_RUBY "Enable Ruby scripting language" ON) +OPTION(ENABLE_LUA "Enable Lua scripting language" ON) +OPTION(ENABLE_TCL "Enable Tcl scripting language" ON) +OPTION(ENABLE_GUILE "Enable Scheme (guile) scripting language" ON) +OPTION(ENABLE_XFER "Enable Xfer plugin" ON) +OPTION(ENABLE_DOC "Enable Documentation" ON) IF(NOT DEFINED WEECHAT_HOME OR "${WEECHAT_HOME}" STREQUAL "") SET(WEECHAT_HOME "~/.weechat") @@ -1,7 +1,7 @@ WeeChat ChangeLog ================= Sébastien Helleu <flashcode@flashtux.org> -v0.3.9-dev, 2012-08-08 +v0.3.9-dev, 2012-08-14 Version 0.3.9 (under dev!) @@ -73,6 +73,8 @@ Version 0.3.9 (under dev!) * relay: fix freeze when writing on relay socket (use non-blocking sockets in relay for irc and weechat protocols) (bug #36655) * ruby: detect ruby version 1.9.3 in cmake and autotools +* script: new plugin "script" (scripts manager, replacing scripts weeget.py and + script.pl) * scripts: add signals for scripts loaded/unloaded/installed/removed * scripts: add hdata with list of scripts for each language * scripts: fix deletion of configuration files when script is unloaded diff --git a/configure.in b/configure.in index feaaf99da..615d25d68 100644 --- a/configure.in +++ b/configure.in @@ -98,11 +98,9 @@ AC_CHECK_FUNCS([gethostbyname gethostname getsockname gettimeofday inet_ntoa mem AH_VERBATIM([PREFIX], [#undef PREFIX]) AH_VERBATIM([WEECHAT_LIBDIR], [#undef WEECHAT_LIBDIR]) AH_VERBATIM([WEECHAT_SHAREDIR], [#undef WEECHAT_SHAREDIR]) -AH_VERBATIM([HAVE_GCRYPT], [#undef HAVE_GCRYPT]) AH_VERBATIM([HAVE_GNUTLS], [#undef HAVE_GNUTLS]) AH_VERBATIM([HAVE_FLOCK], [#undef HAVE_FLOCK]) AH_VERBATIM([HAVE_EAT_NEWLINE_GLITCH], [#undef HAVE_EAT_NEWLINE_GLITCH]) -AH_VERBATIM([HAVE_ZLIB], [#undef HAVE_ZLIB]) AH_VERBATIM([PLUGIN_ALIAS], [#undef PLUGIN_ALIAS]) AH_VERBATIM([PLUGIN_ASPELL], [#undef PLUGIN_ASPELL]) AH_VERBATIM([PLUGIN_CHARSET], [#undef PLUGIN_CHARSET]) @@ -112,6 +110,7 @@ AH_VERBATIM([PLUGIN_IRC], [#undef PLUGIN_IRC]) AH_VERBATIM([PLUGIN_LOGGER], [#undef PLUGIN_LOGGER]) AH_VERBATIM([PLUGIN_RELAY], [#undef PLUGIN_RELAY]) AH_VERBATIM([PLUGIN_RMODIFIER], [#undef PLUGIN_RMODIFIER]) +AH_VERBATIM([PLUGIN_SCRIPT], [#undef PLUGIN_SCRIPT]) AH_VERBATIM([PLUGIN_PERL], [#undef PLUGIN_PERL]) AH_VERBATIM([PLUGIN_PYTHON], [#undef PLUGIN_PYTHON]) AH_VERBATIM([PLUGIN_RUBY], [#undef PLUGIN_RUBY]) @@ -126,9 +125,7 @@ AH_VERBATIM([WEECHAT_HOME], [#define WEECHAT_HOME "~/.weechat"]) AC_ARG_ENABLE(ncurses, [ --disable-ncurses turn off ncurses interface (default=compiled if found)],enable_ncurses=$enableval,enable_ncurses=yes) AC_ARG_ENABLE(gtk, [ --enable-gtk turn on Gtk interface (default=off)],enable_gtk=$enableval,enable_gtk=no) -AC_ARG_ENABLE(gcrypt, [ --disable-gcrypt turn off gcrypt support (default=compiled if found)],enable_gcrypt=$enableval,enable_gcrypt=yes) AC_ARG_ENABLE(gnutls, [ --disable-gnutls turn off gnutls support (default=compiled if found)],enable_gnutls=$enableval,enable_gnutls=yes) -AC_ARG_ENABLE(zlib, [ --disable-zlib turn off zlib support (default=compiled if found)],enable_zlib=$enableval,enable_zlib=yes) AC_ARG_ENABLE(largefile, [ --disable-largefile turn off Large File Support (default=on)],enable_largefile=$enableval,enable_largefile=yes) AC_ARG_ENABLE(alias, [ --disable-alias turn off Alias plugin (default=compiled)],enable_alias=$enableval,enable_alias=yes) AC_ARG_ENABLE(aspell, [ --disable-aspell turn off Aspell plugin (default=compiled)],enable_aspell=$enableval,enable_aspell=yes) @@ -139,7 +136,8 @@ AC_ARG_ENABLE(irc, [ --disable-irc turn off IRC plugin (defa AC_ARG_ENABLE(logger, [ --disable-logger turn off Logger plugin (default=compiled)],enable_logger=$enableval,enable_logger=yes) AC_ARG_ENABLE(relay, [ --disable-relay turn off Relay plugin (default=compiled)],enable_relay=$enableval,enable_relay=yes) AC_ARG_ENABLE(rmodifier, [ --disable-rmodifier turn off Rmodifier plugin (default=compiled)],enable_rmodifier=$enableval,enable_rmodifier=yes) -AC_ARG_ENABLE(scripts, [ --disable-scripts turn off script plugins (default=compiled if found)],enable_scripts=$enableval,enable_scripts=yes) +AC_ARG_ENABLE(script, [ --disable-script turn off Script plugin (default=compiled)],enable_script=$enableval,enable_script=yes) +AC_ARG_ENABLE(scripts, [ --disable-scripts turn off script plugins (perl, python, ...) (default=compiled if found)],enable_scripts=$enableval,enable_scripts=yes) AC_ARG_ENABLE(perl, [ --disable-perl turn off Perl script plugin (default=compiled if found)],enable_perl=$enableval,enable_perl=yes) AC_ARG_ENABLE(python, [ --disable-python turn off Python script plugin (default=compiled if found)],enable_python=$enableval,enable_python=yes) AC_ARG_ENABLE(ruby, [ --disable-ruby turn off Ruby script plugin (default=compiled if found)],enable_ruby=$enableval,enable_ruby=yes) @@ -400,6 +398,14 @@ else not_asked="$not_asked rmodifier" fi +# --------------------------------- script ------------------------------------- + +if test "x$enable_script" = "xyes" ; then + AC_DEFINE(PLUGIN_SCRIPT) +else + not_asked="$not_asked script" +fi + # ---------------------------------- perl -------------------------------------- PERL_VERSION= @@ -777,30 +783,21 @@ fi # gcrypt # ------------------------------------------------------------------------------ -if test "x$enable_gcrypt" = "xyes" ; then - AC_CHECK_HEADER(gcrypt.h,ac_found_gcrypt_header="yes",ac_found_gcrypt_header="no") - AC_CHECK_LIB(gcrypt,gcry_check_version,ac_found_gcrypt_lib="yes",ac_found_gcrypt_lib="no") +AC_CHECK_HEADER(gcrypt.h,ac_found_gcrypt_header="yes",ac_found_gcrypt_header="no") +AC_CHECK_LIB(gcrypt,gcry_check_version,ac_found_gcrypt_lib="yes",ac_found_gcrypt_lib="no") - AC_MSG_CHECKING(for gcrypt headers and librairies) - if test "x$ac_found_gcrypt_header" = "xno" -o "x$ac_found_gcrypt_lib" = "xno" ; then - AC_MSG_RESULT(no) - AC_MSG_WARN([ +AC_MSG_CHECKING(for gcrypt headers and librairies) +if test "x$ac_found_gcrypt_header" = "xno" -o "x$ac_found_gcrypt_lib" = "xno" ; then + AC_MSG_RESULT(no) + AC_MSG_ERROR([ *** libgcrypt was not found. You may want to get it from ftp://ftp.gnupg.org/gcrypt/libgcrypt/ -*** WeeChat will be built without gcrypt support. -*** Some features like SASL authentication with IRC server using mechanism DH-BLOWFISH will be disabled.]) - enable_gcrypt="no" - not_found="$not_found gcrypt" - else - AC_MSG_RESULT(yes) - GCRYPT_CFLAGS=`libgcrypt-config --cflags` - GCRYPT_LFLAGS=`libgcrypt-config --libs` - AC_SUBST(GCRYPT_CFLAGS) - AC_SUBST(GCRYPT_LFLAGS) - AC_DEFINE(HAVE_GCRYPT) - CFLAGS="$CFLAGS -DHAVE_GCRYPT" - fi +*** or try to install libgcrypt-dev with your software package manager.]) else - not_asked="$not_asked gcrypt" + AC_MSG_RESULT(yes) + GCRYPT_CFLAGS=`libgcrypt-config --cflags` + GCRYPT_LFLAGS=`libgcrypt-config --libs` + AC_SUBST(GCRYPT_CFLAGS) + AC_SUBST(GCRYPT_LFLAGS) fi # ------------------------------------------------------------------------------ @@ -903,30 +900,21 @@ fi # zlib # ------------------------------------------------------------------------------ -if test "x$enable_zlib" = "xyes" ; then - AC_CHECK_HEADER(zlib.h,ac_found_zlib_header="yes",ac_found_zlib_header="no") - AC_CHECK_LIB(z,compress2,ac_found_zlib_lib="yes",ac_found_zlib_lib="no") +AC_CHECK_HEADER(zlib.h,ac_found_zlib_header="yes",ac_found_zlib_header="no") +AC_CHECK_LIB(z,compress2,ac_found_zlib_lib="yes",ac_found_zlib_lib="no") - AC_MSG_CHECKING(for zlib headers and librairies) - if test "x$ac_found_zlib_header" = "xno" -o "x$ac_found_zlib_lib" = "xno" ; then - AC_MSG_RESULT(no) - AC_MSG_WARN([ +AC_MSG_CHECKING(for zlib headers and librairies) +if test "x$ac_found_zlib_header" = "xno" -o "x$ac_found_zlib_lib" = "xno" ; then + AC_MSG_RESULT(no) + AC_MSG_ERROR([ *** zlib was not found. You may want to get it from http://zlib.net/ -*** WeeChat will be built without zlib support. -*** Compression of packets in Relay plugin will be disabled (for WeeChat protocol).]) - enable_zlib="no" - not_found="$not_found zlib" - else - AC_MSG_RESULT(yes) - ZLIB_CFLAGS=`pkg-config zlib --cflags` - ZLIB_LFLAGS=`pkg-config zlib --libs` - AC_SUBST(ZLIB_CFLAGS) - AC_SUBST(ZLIB_LFLAGS) - AC_DEFINE(HAVE_ZLIB) - CFLAGS="$CFLAGS -DHAVE_ZLIB" - fi +*** or try to install libcurl-dev with your software package manager.]) else - not_asked="$not_asked zlib" + AC_MSG_RESULT(yes) + ZLIB_CFLAGS=`pkg-config zlib --cflags` + ZLIB_LFLAGS=`pkg-config zlib --libs` + AC_SUBST(ZLIB_CFLAGS) + AC_SUBST(ZLIB_LFLAGS) fi # ------------------------------------------------------------------------------ @@ -1061,8 +1049,6 @@ CFLAGS="$CFLAGS -DWEECHAT_VERSION=\\\"$VERSION\\\" -DWEECHAT_LICENSE=\\\"$LICENS # output Makefiles # ------------------------------------------------------------------------------ -AM_CONDITIONAL(HAVE_GCRYPT, test "$enable_gcrypt" = "yes") -AM_CONDITIONAL(HAVE_ZLIB, test "$enable_zlib" = "yes") AM_CONDITIONAL(HAVE_GNUTLS, test "$enable_gnutls" = "yes") AM_CONDITIONAL(HAVE_FLOCK, test "$enable_flock" = "yes") AM_CONDITIONAL(HAVE_EAT_NEWLINE_GLITCH, test "$enable_eatnewlineglitch" = "yes") @@ -1077,6 +1063,7 @@ AM_CONDITIONAL(PLUGIN_IRC, test "$enable_irc" = "yes") AM_CONDITIONAL(PLUGIN_LOGGER, test "$enable_logger" = "yes") AM_CONDITIONAL(PLUGIN_RELAY, test "$enable_relay" = "yes") AM_CONDITIONAL(PLUGIN_RMODIFIER, test "$enable_rmodifier" = "yes") +AM_CONDITIONAL(PLUGIN_SCRIPT, test "$enable_script" = "yes") AM_CONDITIONAL(PLUGIN_PERL, test "$enable_perl" = "yes") AM_CONDITIONAL(PLUGIN_PYTHON, test "$enable_python" = "yes") AM_CONDITIONAL(PLUGIN_RUBY, test "$enable_ruby" = "yes") @@ -1108,6 +1095,7 @@ AC_OUTPUT([Makefile src/plugins/logger/Makefile src/plugins/relay/Makefile src/plugins/rmodifier/Makefile + src/plugins/script/Makefile src/plugins/perl/Makefile src/plugins/python/Makefile src/plugins/ruby/Makefile @@ -1167,6 +1155,9 @@ fi if test "x$enable_rmodifier" = "xyes"; then listplugins="$listplugins rmodifier" fi +if test "x$enable_script" = "xyes"; then + listplugins="$listplugins script" +fi if test "x$enable_perl" = "xyes"; then listplugins="$listplugins perl($PERL_VERSION)" fi @@ -1190,12 +1181,6 @@ if test "x$enable_xfer" = "xyes"; then fi listoptional="" -if test "x$enable_gcrypt" = "xyes"; then - listoptional="$listoptional gcrypt" -fi -if test "x$enable_zlib" = "xyes"; then - listoptional="$listoptional zlib" -fi if test "x$enable_gnutls" = "xyes"; then listoptional="$listoptional gnutls" fi diff --git a/doc/de/autogen/plugin_api/completions.txt b/doc/de/autogen/plugin_api/completions.txt index 82d606fda..0ce582e14 100644 --- a/doc/de/autogen/plugin_api/completions.txt +++ b/doc/de/autogen/plugin_api/completions.txt @@ -56,6 +56,12 @@ | ruby | ruby_script | Liste der Skripten +| script | script_files | files in script directories + +| script | script_scripts | list of scripts in repository + +| script | script_scripts_installed | list of scripts installed (from repository) + | tcl | tcl_script | Liste der Skripten | weechat | bars_names | Namen der Infobars diff --git a/doc/de/autogen/plugin_api/hdata.txt b/doc/de/autogen/plugin_api/hdata.txt index 73e63df00..7a639fae7 100644 --- a/doc/de/autogen/plugin_api/hdata.txt +++ b/doc/de/autogen/plugin_api/hdata.txt @@ -257,6 +257,33 @@ 'last_script' + 'scripts' +| script | script_script | scripts from repository | + 'name' (string) + + 'name_with_extension' (string) + + 'language' (integer) + + 'author' (string) + + 'mail' (string) + + 'version' (string) + + 'license' (string) + + 'description' (string) + + 'tags' (string) + + 'requirements' (string) + + 'min_weechat' (string) + + 'max_weechat' (string) + + 'md5sum' (string) + + 'url' (string) + + 'popularity' (integer) + + 'date_added' (time) + + 'date_updated' (time) + + 'status' (integer) + + 'version_loaded' (string) + + 'displayed' (integer) + + 'install_order' (integer) + + 'prev_script' (pointer, hdata: 'script_script') + + 'next_script' (pointer, hdata: 'script_script') | + 'last_repo_script' + + 'repo_scripts' + | tcl | tcl_script | Liste der Skripten | 'filename' (string) + 'interpreter' (pointer) + diff --git a/doc/de/autogen/plugin_api/infolists.txt b/doc/de/autogen/plugin_api/infolists.txt index 703f82751..9e9d76de0 100644 --- a/doc/de/autogen/plugin_api/infolists.txt +++ b/doc/de/autogen/plugin_api/infolists.txt @@ -30,6 +30,8 @@ | ruby | ruby_script | Liste der Skripten | Skript Pointer (optional) | Name des Skriptes (darf mit einem "*" als Platzhalter beginnen oder enden) (optional) +| script | script_script | Liste der Skripten | Skript Pointer (optional) | script name with extension (can start or end with "*" as wildcard) (optional) + | tcl | tcl_script | Liste der Skripten | Skript Pointer (optional) | Name des Skriptes (darf mit einem "*" als Platzhalter beginnen oder enden) (optional) | weechat | bar | Auflistung der Bars | Bar Pointer (optional) | Bar Name (darf mit einem "*" als Platzhalter beginnen oder enden) (optional) diff --git a/doc/de/autogen/user/script_commands.txt b/doc/de/autogen/user/script_commands.txt new file mode 100644 index 000000000..ab430e4bd --- /dev/null +++ b/doc/de/autogen/user/script_commands.txt @@ -0,0 +1,47 @@ +[[command_script_script]] +[command]*`script`* WeeChat scripts manager:: +........................................ +/script list + show <script> + load|unload <script> [<script>...] + install|remove|hold <script> [<script>...] + upgrade + update + + list: list loaded scripts (all languages) + show: show detailed info about a script + load: load script(s) + unload: unload script(s) + install: install/upgrade script(s) + remove: remove script(s) + hold: hold/unhold script(s) (a script held will not be upgraded any more and cannot be removed) + upgrade: upgrade all installed scripts which are obsolete (new version available) + update: update local scripts cache + +Without argument, this command opens a buffer with list of scripts. + +On script buffer, the possible status for each script are: + * i H r N + | | | | | + | | | | obsolete (new version available) + | | | running (loaded) + | | held + | installed + popular script + +Keys on script buffer: + alt+i install script + alt+r remove script + alt+l load script + alt+u unload script + alt+h (un)hold script + +Input allowed on script buffer: + q close buffer + r refresh buffer + s:x,y sort buffer using keys x and y (see /help script.look.sort) + s: reset sort (use default sort) + word(s) filter scripts: search word(s) in scripts (description, tags, ...) + * remove filter +........................................ + diff --git a/doc/de/autogen/user/script_options.txt b/doc/de/autogen/user/script_options.txt new file mode 100644 index 000000000..7ff881ce1 --- /dev/null +++ b/doc/de/autogen/user/script_options.txt @@ -0,0 +1,155 @@ +* [[option_script.color.status_held]] *script.color.status_held* +** Beschreibung: `color for status "held" ("H")` +** Typ: Farbe +** Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "_" für unterstrichen (Standardwert: `white`) + +* [[option_script.color.status_installed]] *script.color.status_installed* +** Beschreibung: `color for status "installed" ("i")` +** Typ: Farbe +** Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "_" für unterstrichen (Standardwert: `lightcyan`) + +* [[option_script.color.status_obsolete]] *script.color.status_obsolete* +** Beschreibung: `color for status "obsolete" ("N")` +** Typ: Farbe +** Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "_" für unterstrichen (Standardwert: `lightmagenta`) + +* [[option_script.color.status_popular]] *script.color.status_popular* +** Beschreibung: `color for status "popular" ("*")` +** Typ: Farbe +** Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "_" für unterstrichen (Standardwert: `yellow`) + +* [[option_script.color.status_running]] *script.color.status_running* +** Beschreibung: `color for status "running" ("r")` +** Typ: Farbe +** Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "_" für unterstrichen (Standardwert: `lightgreen`) + +* [[option_script.color.status_unknown]] *script.color.status_unknown* +** Beschreibung: `color for status "unknown" ("?")` +** Typ: Farbe +** Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "_" für unterstrichen (Standardwert: `lightred`) + +* [[option_script.color.text]] *script.color.text* +** Beschreibung: `text color in script buffer` +** Typ: Farbe +** Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "_" für unterstrichen (Standardwert: `default`) + +* [[option_script.color.text_bg]] *script.color.text_bg* +** Beschreibung: `background color in script buffer` +** Typ: Farbe +** Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "_" für unterstrichen (Standardwert: `default`) + +* [[option_script.color.text_bg_selected]] *script.color.text_bg_selected* +** Beschreibung: `background color for selected line in script buffer` +** Typ: Farbe +** Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "_" für unterstrichen (Standardwert: `red`) + +* [[option_script.color.text_date]] *script.color.text_date* +** Beschreibung: `text color of dates in script buffer` +** Typ: Farbe +** Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "_" für unterstrichen (Standardwert: `default`) + +* [[option_script.color.text_date_selected]] *script.color.text_date_selected* +** Beschreibung: `text color of dates for selected line in script buffer` +** Typ: Farbe +** Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "_" für unterstrichen (Standardwert: `white`) + +* [[option_script.color.text_delimiters]] *script.color.text_delimiters* +** Beschreibung: `text color of delimiters in script buffer` +** Typ: Farbe +** Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "_" für unterstrichen (Standardwert: `darkgray`) + +* [[option_script.color.text_description]] *script.color.text_description* +** Beschreibung: `text color of description in script buffer` +** Typ: Farbe +** Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "_" für unterstrichen (Standardwert: `default`) + +* [[option_script.color.text_description_selected]] *script.color.text_description_selected* +** Beschreibung: `text color of description for selected line in script buffer` +** Typ: Farbe +** Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "_" für unterstrichen (Standardwert: `white`) + +* [[option_script.color.text_extension]] *script.color.text_extension* +** Beschreibung: `text color of extension in script buffer` +** Typ: Farbe +** Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "_" für unterstrichen (Standardwert: `default`) + +* [[option_script.color.text_extension_selected]] *script.color.text_extension_selected* +** Beschreibung: `text color of extension for selected line in script buffer` +** Typ: Farbe +** Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "_" für unterstrichen (Standardwert: `white`) + +* [[option_script.color.text_name]] *script.color.text_name* +** Beschreibung: `text color of script name in script buffer` +** Typ: Farbe +** Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "_" für unterstrichen (Standardwert: `cyan`) + +* [[option_script.color.text_name_selected]] *script.color.text_name_selected* +** Beschreibung: `text color of script name for selected line in script buffer` +** Typ: Farbe +** Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "_" für unterstrichen (Standardwert: `lightcyan`) + +* [[option_script.color.text_selected]] *script.color.text_selected* +** Beschreibung: `text color for selected line in script buffer` +** Typ: Farbe +** Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "_" für unterstrichen (Standardwert: `white`) + +* [[option_script.color.text_tags]] *script.color.text_tags* +** Beschreibung: `text color of tags in script buffer` +** Typ: Farbe +** Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "_" für unterstrichen (Standardwert: `brown`) + +* [[option_script.color.text_tags_selected]] *script.color.text_tags_selected* +** Beschreibung: `text color of tags for selected line in script buffer` +** Typ: Farbe +** Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "_" für unterstrichen (Standardwert: `yellow`) + +* [[option_script.color.text_version]] *script.color.text_version* +** Beschreibung: `text color of version in script buffer` +** Typ: Farbe +** Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "_" für unterstrichen (Standardwert: `magenta`) + +* [[option_script.color.text_version_loaded]] *script.color.text_version_loaded* +** Beschreibung: `text color of version loaded in script buffer` +** Typ: Farbe +** Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "_" für unterstrichen (Standardwert: `default`) + +* [[option_script.color.text_version_loaded_selected]] *script.color.text_version_loaded_selected* +** Beschreibung: `text color of version loaded for selected line in script buffer` +** Typ: Farbe +** Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "_" für unterstrichen (Standardwert: `white`) + +* [[option_script.color.text_version_selected]] *script.color.text_version_selected* +** Beschreibung: `text color of version for selected line in script buffer` +** Typ: Farbe +** Werte: ein Farbname für WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), eine Terminal-Farbnummer oder ein Alias; Attribute können vor eine Farbe gesetzt werden (gilt ausschließlich für die Textfarbe und nicht für den Hintergrund): "*" für fett, "!" für invertiert, "_" für unterstrichen (Standardwert: `lightmagenta`) + +* [[option_script.look.columns]] *script.look.columns* +** Beschreibung: `format of columns displayed in script buffer: following column identifiers are replaced by their value: %a=author, %d=description, %D=date added, %e=extension, %l=language, %L=license, %n=name with extension, %N=name, %r=requirements, %s=status, %t=tags, %u=date updated, %v=version, %V=version loaded, %w=min_weechat, %W=max_weechat)` +** Typ: Zeichenkette +** Werte: beliebige Zeichenkette (Standardwert: `"%s %n %V %v %u | %d | %t"`) + +* [[option_script.look.sort]] *script.look.sort* +** Beschreibung: `default sort keys for scripts: comma-separated list of identifiers: a=author, d=date added, e=extension, i=installed, l=language, n=name, o=obsolete, p=popularity, r=running, u=date updated; char "-" can be used before identifier to reverse order; example: "i,u": installed scripts first, sorted by update date` +** Typ: Zeichenkette +** Werte: beliebige Zeichenkette (Standardwert: `"p,n"`) + +* [[option_script.scripts.cache_expire]] *script.scripts.cache_expire* +** Beschreibung: `local cache expiration time, in minutes (-1 = never expires, 0 = always expire)` +** Typ: integer +** Werte: -1 .. 525600 (Standardwert: `60`) + +* [[option_script.scripts.dir]] *script.scripts.dir* +** Beschreibung: `local cache directory for scripts` +** Typ: Zeichenkette +** Werte: beliebige Zeichenkette (Standardwert: `"%h/script"`) + +* [[option_script.scripts.hold]] *script.scripts.hold* +** Beschreibung: `scripts to "hold": comma-separated list of scripts which will never been upgraded and can not be removed, for example: "buffers.pl,iset.pl"` +** Typ: Zeichenkette +** Werte: beliebige Zeichenkette (Standardwert: `""`) + +* [[option_script.scripts.url]] *script.scripts.url* +** Beschreibung: `URL for file with list of scripts` +** Typ: Zeichenkette +** Werte: beliebige Zeichenkette (Standardwert: `"http://www.weechat.org/files/plugins.xml.gz"`) + diff --git a/doc/de/weechat_quickstart.de.txt b/doc/de/weechat_quickstart.de.txt index c1cba2ef1..bde3077ea 100644 --- a/doc/de/weechat_quickstart.de.txt +++ b/doc/de/weechat_quickstart.de.txt @@ -241,21 +241,12 @@ erhältlich (z.B. weechat-plugins). Erweiterungen werden -sofern welche gefunden worden sind- automatisch geladen (Bitte beachte die Dokumentation zum Laden/Entladen von Erweiterungen oder Skripten). -Einige Erweiterungen ermöglichen die Verwendung von Skripten in WeeChat (unterstützte -Sprachen sind Perl, Python, Ruby, Lua und TCL). Diese Erweiterungen müssen mit dem -Befehl `/plugin` geladen werden und verfügen ihrerseits über Befehle wie z.B. -`/perl` um Perl-Skripten zu laden. +Viele externe Skripten (der Mitarbeitenden) sind für WeeChat verfügbar, siehe: +http://www.weechat.org/scripts -Viele externe Erweiterungen/Skripten (der Mitarbeitenden) sind für WeeChat verfügbar, -siehe: http://www.weechat.org/scripts - -Der einfachste Weg um Skripten zu installieren ist die Verwendung von 'weeget.py': - -. `mkdir -p ~/.weechat/python/autoload` -. `cd ~/.weechat/python/autoload` -. `wget http://weechat.org/files/scripts/weeget.py` -. laden des Skript: `/python autoload` -. Liste der Skripten: `/weeget list` (Hilfe mit: `/help weeget`) +// TRANSLATION MISSING +You can manage scripts in WeeChat with command `/script` (see `/help script` +for more info). [[more_doc]] diff --git a/doc/de/weechat_user.de.txt b/doc/de/weechat_user.de.txt index 4ff15c746..4f94586ea 100644 --- a/doc/de/weechat_user.de.txt +++ b/doc/de/weechat_user.de.txt @@ -91,13 +91,14 @@ welche Pakete optional genutzt werden können. | cmake | | *ja* | zum kompilieren (autotools ist möglich. cmake wird aber empfohlen) | libncursesw5-dev ^(2)^ | | *ja* | ncurses Oberfläche | libcurl4-gnutls-dev | | *ja* | URL Transfer -| gettext | | | Internationalisierung (Übersetzung der Mitteilungen; Hauptsprache ist englisch) -| libgcrypt11-dev | | | SASL Authentifikation am IRC Server mittels DH-BLOWFISH Methode +// TRANSLATION MISSING +| zlib1g-dev | | *ja* | compression of packets in relay plugin (weechat protocol), script plugin +// TRANSLATION MISSING +| libgcrypt11-dev | | *ja* | SASL Authentifikation am IRC Server mittels DH-BLOWFISH Methode, script plugin // TRANSLATION MISSING | libgnutls-dev | ≥ 2.2.0 | | SSL Verbindung zu einem IRC Server, support of SSL in relay plugin +| gettext | | | Internationalisierung (Übersetzung der Mitteilungen; Hauptsprache ist englisch) | ca-certificates | | | Zertifikate für SSL Verbindungen -// TRANSLATION MISSING -| zlib1g-dev | | | compression of packets in relay plugin (weechat protocol) | libaspell-dev | | | aspell Erweiterung | python-dev | ≥ 2.5 ^(3)^ | | python Erweiterung | libperl-dev | | | perl Erweiterung @@ -776,29 +777,32 @@ Tasten für "mouse"-Kontext Diese Tasten werden im Kontext "mouse" verwendet, wenn eine Mausfunktion genutzt worden ist. +// TRANSLATION MISSING [width="100%",cols="^.^3,^.^3,^.^3,.^10,.^8l",options="header"] |======================================== -| Maustaste | Mausgeste | Bereich | Beschreibung | Befehl -| ◾◽◽ | - | Chat | wechselt zum Fenster | /window ${_window_number} -| ◾◽◽ | links | Chat | zum vorherigen Buffer springen | /window ${_window_number};/buffer +1 -| ◾◽◽ | rechts | Chat | zum nächsten Buffer springen | /window ${_window_number};/buffer +1 -| ◾◽◽ | links(lang) | Chat | Switch to first buffer | /window ${_window_number};/buffer 1 -| ◾◽◽ | rechts(lang) | Chat | wechselt zum letzten Buffer | /window ${_window_number};/input jump_last_buffer -| Mausrad ⇑ | - | Chat | einige Zeilen im Verlaufsspeicher des Buffer nach oben blättern | /window scroll_up -window ${_window_number} -| Mausrad ⇓ | - | Chat | einige Zeilen im Verlaufsspeicher des Buffer nach unten blättern | /window scroll_down -window ${_window_number} -| ◾◽◽ | hoch | Nickliste | Nickliste um eine Seite nach oben blättern | /bar scroll nicklist ${_window_number} -100% -| ◾◽◽ | runter | Nickliste | Nickliste um eine Seite nach unten blättern | /bar scroll nicklist ${_window_number} +100% -| ◾◽◽ | hoch(lang) | Nickliste | springt zum Anfang der Nickliste | /bar scroll nicklist ${_window_number} b -| ◾◽◽ | runter(lang) | Nickliste | springt zum Ende der Nickliste | /bar scroll nicklist ${_window_number} e -| ◾◽◽ | - | Nickliste | öffnet privaten Chat mit Nick | /window ${_window_number};/query ${nick} -| ◽◽◾ | - | Nickliste | führt einen whois für Nick aus | /window ${_window_number};/whois ${nick} -| ◾◽◽ | links | Nickliste | kickt Nick | /window ${_window_number};/kick ${nick} -| ◾◽◽ | links(lang) | Nickliste | kickt und verbannt Nick | /window ${_window_number};/kickban ${nick} -| ◽◽◾ | links | Nickliste | verbannt Nick | /window ${_window_number};/ban ${nick} -| ◽◽◾ | - | Input | fängt ein Mausereignis und fügt dieses in die Befehlszeile ein | /input grab_mouse_area -| Mausrad ⇑ | - | jede Bar | blättert Bar um 10% nach oben | /bar scroll ${_bar_name} ${_window_number} -20% -| Mausrad ⇓ | - | jede Bar | blättert Bar um 10% nach unten | /bar scroll ${_bar_name} ${_window_number} +20% -| ◽◾◽ | - | überall | aktiviert den Cursor-Modus an dieser Position | /cursor go ${_x},${_y} +| Maustaste | Mausgeste | Bereich | Beschreibung | Befehl +| ◾◽◽ | - | Chat | wechselt zum Fenster | /window ${_window_number} +| ◾◽◽ | links | Chat | zum vorherigen Buffer springen | /window ${_window_number};/buffer +1 +| ◾◽◽ | rechts | Chat | zum nächsten Buffer springen | /window ${_window_number};/buffer +1 +| ◾◽◽ | links(lang) | Chat | Switch to first buffer | /window ${_window_number};/buffer 1 +| ◾◽◽ | rechts(lang) | Chat | wechselt zum letzten Buffer | /window ${_window_number};/input jump_last_buffer +| Mausrad ⇑ | - | Chat | einige Zeilen im Verlaufsspeicher des Buffer nach oben blättern | /window scroll_up -window ${_window_number} +| Mausrad ⇓ | - | Chat | einige Zeilen im Verlaufsspeicher des Buffer nach unten blättern | /window scroll_down -window ${_window_number} +| Mausrad ⇑ | - | chat (script buffer) | Move 5 lines up in script buffer | /script up 5 +| Mausrad ⇓ | - | chat (script buffer) | Move 5 lines down in script buffer | /script down 5 +| ◾◽◽ | hoch | Nickliste | Nickliste um eine Seite nach oben blättern | /bar scroll nicklist ${_window_number} -100% +| ◾◽◽ | runter | Nickliste | Nickliste um eine Seite nach unten blättern | /bar scroll nicklist ${_window_number} +100% +| ◾◽◽ | hoch(lang) | Nickliste | springt zum Anfang der Nickliste | /bar scroll nicklist ${_window_number} b +| ◾◽◽ | runter(lang) | Nickliste | springt zum Ende der Nickliste | /bar scroll nicklist ${_window_number} e +| ◾◽◽ | - | Nickliste | öffnet privaten Chat mit Nick | /window ${_window_number};/query ${nick} +| ◽◽◾ | - | Nickliste | führt einen whois für Nick aus | /window ${_window_number};/whois ${nick} +| ◾◽◽ | links | Nickliste | kickt Nick | /window ${_window_number};/kick ${nick} +| ◾◽◽ | links(lang) | Nickliste | kickt und verbannt Nick | /window ${_window_number};/kickban ${nick} +| ◽◽◾ | links | Nickliste | verbannt Nick | /window ${_window_number};/ban ${nick} +| ◽◽◾ | - | Input | fängt ein Mausereignis und fügt dieses in die Befehlszeile ein | /input grab_mouse_area +| Mausrad ⇑ | - | jede Bar | blättert Bar um 10% nach oben | /bar scroll ${_bar_name} ${_window_number} -20% +| Mausrad ⇓ | - | jede Bar | blättert Bar um 10% nach unten | /bar scroll ${_bar_name} ${_window_number} +20% +| ◽◾◽ | - | überall | aktiviert den Cursor-Modus an dieser Position | /cursor go ${_x},${_y} |======================================== [[mouse]] @@ -2200,10 +2204,26 @@ WeeChat unterstützt sechs Skript-Erweiterungen: Python, Perl, Ruby, Lua, Tcl un Diese Erweiterungen können für die jeweilige Sprache die Skripten laden, ausführen und entfernen. +// TRANSLATION MISSING +Another plugin called "script" is a scripts manager and is used to load/unload +scripts of any language, and install/remove scripts of WeeChat scripts +repository, which are visible at this URL: http://www.weechat.org/scripts + Sollten Sie Interesse daran haben wie man Skripten für WeeChat erstellt dann lesen Sie bitte die 'WeeChat Scripting Guide'. -Skripten für WeeChat finden Sie auf: http://www.weechat.org/scripts +// TRANSLATION MISSING +[[script_options]] +Script options (script.conf) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +include::autogen/user/script_options.txt[] + +[[script_commands]] +Script Befehle +^^^^^^^^^^^^^^ + +include::autogen/user/script_commands.txt[] [[python_commands]] Python Befehle diff --git a/doc/docgen.py b/doc/docgen.py index d46990387..43a4365ab 100644 --- a/doc/docgen.py +++ b/doc/docgen.py @@ -88,6 +88,7 @@ plugin_list = { 'weechat' : 'co', 'logger' : 'co', 'relay' : 'co', 'rmodifier': 'co', + 'script' : 'co', 'perl' : '', 'python' : '', 'ruby' : '', diff --git a/doc/en/autogen/plugin_api/completions.txt b/doc/en/autogen/plugin_api/completions.txt index bec6757fb..e0a545eb5 100644 --- a/doc/en/autogen/plugin_api/completions.txt +++ b/doc/en/autogen/plugin_api/completions.txt @@ -56,6 +56,12 @@ | ruby | ruby_script | list of scripts +| script | script_files | files in script directories + +| script | script_scripts | list of scripts in repository + +| script | script_scripts_installed | list of scripts installed (from repository) + | tcl | tcl_script | list of scripts | weechat | bars_names | names of bars diff --git a/doc/en/autogen/plugin_api/hdata.txt b/doc/en/autogen/plugin_api/hdata.txt index ee775c2dc..4c1276f56 100644 --- a/doc/en/autogen/plugin_api/hdata.txt +++ b/doc/en/autogen/plugin_api/hdata.txt @@ -257,6 +257,33 @@ 'last_script' + 'scripts' +| script | script_script | scripts from repository | + 'name' (string) + + 'name_with_extension' (string) + + 'language' (integer) + + 'author' (string) + + 'mail' (string) + + 'version' (string) + + 'license' (string) + + 'description' (string) + + 'tags' (string) + + 'requirements' (string) + + 'min_weechat' (string) + + 'max_weechat' (string) + + 'md5sum' (string) + + 'url' (string) + + 'popularity' (integer) + + 'date_added' (time) + + 'date_updated' (time) + + 'status' (integer) + + 'version_loaded' (string) + + 'displayed' (integer) + + 'install_order' (integer) + + 'prev_script' (pointer, hdata: 'script_script') + + 'next_script' (pointer, hdata: 'script_script') | + 'last_repo_script' + + 'repo_scripts' + | tcl | tcl_script | list of scripts | 'filename' (string) + 'interpreter' (pointer) + diff --git a/doc/en/autogen/plugin_api/infolists.txt b/doc/en/autogen/plugin_api/infolists.txt index 9b6b937fd..ba4720c4f 100644 --- a/doc/en/autogen/plugin_api/infolists.txt +++ b/doc/en/autogen/plugin_api/infolists.txt @@ -30,6 +30,8 @@ | ruby | ruby_script | list of scripts | script pointer (optional) | script name (can start or end with "*" as wildcard) (optional) +| script | script_script | list of scripts | script pointer (optional) | script name with extension (can start or end with "*" as wildcard) (optional) + | tcl | tcl_script | list of scripts | script pointer (optional) | script name (can start or end with "*" as wildcard) (optional) | weechat | bar | list of bars | bar pointer (optional) | bar name (can start or end with "*" as wildcard) (optional) diff --git a/doc/en/autogen/user/script_commands.txt b/doc/en/autogen/user/script_commands.txt new file mode 100644 index 000000000..ab430e4bd --- /dev/null +++ b/doc/en/autogen/user/script_commands.txt @@ -0,0 +1,47 @@ +[[command_script_script]] +[command]*`script`* WeeChat scripts manager:: +........................................ +/script list + show <script> + load|unload <script> [<script>...] + install|remove|hold <script> [<script>...] + upgrade + update + + list: list loaded scripts (all languages) + show: show detailed info about a script + load: load script(s) + unload: unload script(s) + install: install/upgrade script(s) + remove: remove script(s) + hold: hold/unhold script(s) (a script held will not be upgraded any more and cannot be removed) + upgrade: upgrade all installed scripts which are obsolete (new version available) + update: update local scripts cache + +Without argument, this command opens a buffer with list of scripts. + +On script buffer, the possible status for each script are: + * i H r N + | | | | | + | | | | obsolete (new version available) + | | | running (loaded) + | | held + | installed + popular script + +Keys on script buffer: + alt+i install script + alt+r remove script + alt+l load script + alt+u unload script + alt+h (un)hold script + +Input allowed on script buffer: + q close buffer + r refresh buffer + s:x,y sort buffer using keys x and y (see /help script.look.sort) + s: reset sort (use default sort) + word(s) filter scripts: search word(s) in scripts (description, tags, ...) + * remove filter +........................................ + diff --git a/doc/en/autogen/user/script_options.txt b/doc/en/autogen/user/script_options.txt new file mode 100644 index 000000000..bf858a874 --- /dev/null +++ b/doc/en/autogen/user/script_options.txt @@ -0,0 +1,155 @@ +* [[option_script.color.status_held]] *script.color.status_held* +** description: `color for status "held" ("H")` +** type: color +** values: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "_" for underline (default value: `white`) + +* [[option_script.color.status_installed]] *script.color.status_installed* +** description: `color for status "installed" ("i")` +** type: color +** values: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "_" for underline (default value: `lightcyan`) + +* [[option_script.color.status_obsolete]] *script.color.status_obsolete* +** description: `color for status "obsolete" ("N")` +** type: color +** values: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "_" for underline (default value: `lightmagenta`) + +* [[option_script.color.status_popular]] *script.color.status_popular* +** description: `color for status "popular" ("*")` +** type: color +** values: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "_" for underline (default value: `yellow`) + +* [[option_script.color.status_running]] *script.color.status_running* +** description: `color for status "running" ("r")` +** type: color +** values: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "_" for underline (default value: `lightgreen`) + +* [[option_script.color.status_unknown]] *script.color.status_unknown* +** description: `color for status "unknown" ("?")` +** type: color +** values: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "_" for underline (default value: `lightred`) + +* [[option_script.color.text]] *script.color.text* +** description: `text color in script buffer` +** type: color +** values: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "_" for underline (default value: `default`) + +* [[option_script.color.text_bg]] *script.color.text_bg* +** description: `background color in script buffer` +** type: color +** values: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "_" for underline (default value: `default`) + +* [[option_script.color.text_bg_selected]] *script.color.text_bg_selected* +** description: `background color for selected line in script buffer` +** type: color +** values: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "_" for underline (default value: `red`) + +* [[option_script.color.text_date]] *script.color.text_date* +** description: `text color of dates in script buffer` +** type: color +** values: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "_" for underline (default value: `default`) + +* [[option_script.color.text_date_selected]] *script.color.text_date_selected* +** description: `text color of dates for selected line in script buffer` +** type: color +** values: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "_" for underline (default value: `white`) + +* [[option_script.color.text_delimiters]] *script.color.text_delimiters* +** description: `text color of delimiters in script buffer` +** type: color +** values: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "_" for underline (default value: `darkgray`) + +* [[option_script.color.text_description]] *script.color.text_description* +** description: `text color of description in script buffer` +** type: color +** values: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "_" for underline (default value: `default`) + +* [[option_script.color.text_description_selected]] *script.color.text_description_selected* +** description: `text color of description for selected line in script buffer` +** type: color +** values: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "_" for underline (default value: `white`) + +* [[option_script.color.text_extension]] *script.color.text_extension* +** description: `text color of extension in script buffer` +** type: color +** values: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "_" for underline (default value: `default`) + +* [[option_script.color.text_extension_selected]] *script.color.text_extension_selected* +** description: `text color of extension for selected line in script buffer` +** type: color +** values: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "_" for underline (default value: `white`) + +* [[option_script.color.text_name]] *script.color.text_name* +** description: `text color of script name in script buffer` +** type: color +** values: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "_" for underline (default value: `cyan`) + +* [[option_script.color.text_name_selected]] *script.color.text_name_selected* +** description: `text color of script name for selected line in script buffer` +** type: color +** values: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "_" for underline (default value: `lightcyan`) + +* [[option_script.color.text_selected]] *script.color.text_selected* +** description: `text color for selected line in script buffer` +** type: color +** values: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "_" for underline (default value: `white`) + +* [[option_script.color.text_tags]] *script.color.text_tags* +** description: `text color of tags in script buffer` +** type: color +** values: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "_" for underline (default value: `brown`) + +* [[option_script.color.text_tags_selected]] *script.color.text_tags_selected* +** description: `text color of tags for selected line in script buffer` +** type: color +** values: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "_" for underline (default value: `yellow`) + +* [[option_script.color.text_version]] *script.color.text_version* +** description: `text color of version in script buffer` +** type: color +** values: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "_" for underline (default value: `magenta`) + +* [[option_script.color.text_version_loaded]] *script.color.text_version_loaded* +** description: `text color of version loaded in script buffer` +** type: color +** values: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "_" for underline (default value: `default`) + +* [[option_script.color.text_version_loaded_selected]] *script.color.text_version_loaded_selected* +** description: `text color of version loaded for selected line in script buffer` +** type: color +** values: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "_" for underline (default value: `white`) + +* [[option_script.color.text_version_selected]] *script.color.text_version_selected* +** description: `text color of version for selected line in script buffer` +** type: color +** values: a WeeChat color name (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), a terminal color number or an alias; attributes are allowed before color (for text color only, not background): "*" for bold, "!" for reverse, "_" for underline (default value: `lightmagenta`) + +* [[option_script.look.columns]] *script.look.columns* +** description: `format of columns displayed in script buffer: following column identifiers are replaced by their value: %a=author, %d=description, %D=date added, %e=extension, %l=language, %L=license, %n=name with extension, %N=name, %r=requirements, %s=status, %t=tags, %u=date updated, %v=version, %V=version loaded, %w=min_weechat, %W=max_weechat)` +** type: string +** values: any string (default value: `"%s %n %V %v %u | %d | %t"`) + +* [[option_script.look.sort]] *script.look.sort* +** description: `default sort keys for scripts: comma-separated list of identifiers: a=author, d=date added, e=extension, i=installed, l=language, n=name, o=obsolete, p=popularity, r=running, u=date updated; char "-" can be used before identifier to reverse order; example: "i,u": installed scripts first, sorted by update date` +** type: string +** values: any string (default value: `"p,n"`) + +* [[option_script.scripts.cache_expire]] *script.scripts.cache_expire* +** description: `local cache expiration time, in minutes (-1 = never expires, 0 = always expire)` +** type: integer +** values: -1 .. 525600 (default value: `60`) + +* [[option_script.scripts.dir]] *script.scripts.dir* +** description: `local cache directory for scripts` +** type: string +** values: any string (default value: `"%h/script"`) + +* [[option_script.scripts.hold]] *script.scripts.hold* +** description: `scripts to "hold": comma-separated list of scripts which will never been upgraded and can not be removed, for example: "buffers.pl,iset.pl"` +** type: string +** values: any string (default value: `""`) + +* [[option_script.scripts.url]] *script.scripts.url* +** description: `URL for file with list of scripts` +** type: string +** values: any string (default value: `"http://www.weechat.org/files/plugins.xml.gz"`) + diff --git a/doc/en/weechat_quickstart.en.txt b/doc/en/weechat_quickstart.en.txt index 7b6973a3d..a7b7a13b5 100644 --- a/doc/en/weechat_quickstart.en.txt +++ b/doc/en/weechat_quickstart.en.txt @@ -222,20 +222,11 @@ On some distros like Debian, plugins are available via a separate package Plugins are automatically loaded when found (please look at the WeeChat documentation to load/unload plugins or scripts). -Some plugins let you use scripts in WeeChat (in many languages like Perl, -Python, Ruby, Lua and Tcl). These plugins must be loaded with the `/plugin` -command and they provide commands like `/perl`, used to load scripts. +Many external scripts (from contributors) are available for WeeChat: +http://www.weechat.org/scripts -Many external plugins/scripts (from contributors) are available for -WeeChat: http://www.weechat.org/scripts - -Easiest way to install scripts is to use script 'weeget.py': - -. `mkdir -p ~/.weechat/python/autoload` -. `cd ~/.weechat/python/autoload` -. `wget http://weechat.org/files/scripts/weeget.py` -. load script: `/python autoload` -. scripts list: `/weeget list` (for help: `/help weeget`) +You can manage scripts in WeeChat with command `/script` (see `/help script` +for more info). [[more_doc]] diff --git a/doc/en/weechat_user.en.txt b/doc/en/weechat_user.en.txt index 890b5bd2c..d95995c74 100644 --- a/doc/en/weechat_user.en.txt +++ b/doc/en/weechat_user.en.txt @@ -91,11 +91,11 @@ compile WeeChat. | cmake | | *yes* | build (autotools still possible, but cmake is recommended) | libncursesw5-dev ^(2)^ | | *yes* | ncurses interface | libcurl4-gnutls-dev | | *yes* | URL transfer -| gettext | | | internationalization (translation of messages; base language is english) -| libgcrypt11-dev | | | SASL authentication with IRC server using DH-BLOWFISH mechanism +| zlib1g-dev | | *yes* | compression of packets in relay plugin (weechat protocol), script plugin +| libgcrypt11-dev | | *yes* | SASL authentication with IRC server using DH-BLOWFISH mechanism, script plugin | libgnutls-dev | ≥ 2.2.0 | | SSL connection to IRC server, support of SSL in relay plugin +| gettext | | | internationalization (translation of messages; base language is english) | ca-certificates | | | certificates for SSL connections -| zlib1g-dev | | | compression of packets in relay plugin (weechat protocol) | libaspell-dev | | | aspell plugin | python-dev | ≥ 2.5 ^(3)^ | | python plugin | libperl-dev | | | perl plugin @@ -770,27 +770,29 @@ These keys are used in context "mouse", namely when a mouse event occurs. [width="100%",cols="^.^3,^.^3,^.^3,.^10,.^8l",options="header"] |======================================== -| Button | Gesture | Area | Description | Command -| ◾◽◽ | - | chat | Switch to window | /window ${_window_number} -| ◾◽◽ | left | chat | Switch to previous buffer | /window ${_window_number};/buffer +1 -| ◾◽◽ | right | chat | Switch to next buffer | /window ${_window_number};/buffer +1 -| ◾◽◽ | left (long) | chat | Switch to first buffer | /window ${_window_number};/buffer 1 -| ◾◽◽ | right (long) | chat | Switch to last buffer | /window ${_window_number};/input jump_last_buffer -| wheel ⇑ | - | chat | Scroll up a few lines in buffer history | /window scroll_up -window ${_window_number} -| wheel ⇓ | - | chat | Scroll down a few lines in buffer history | /window scroll_down -window ${_window_number} -| ◾◽◽ | up | nicklist | Scroll up one page in nicklist | /bar scroll nicklist ${_window_number} -100% -| ◾◽◽ | down | nicklist | Scroll down one page in nicklist | /bar scroll nicklist ${_window_number} +100% -| ◾◽◽ | up (long) | nicklist | Go to the beginning of nicklist | /bar scroll nicklist ${_window_number} b -| ◾◽◽ | down (long) | nicklist | Go to the end of nicklist | /bar scroll nicklist ${_window_number} e -| ◾◽◽ | - | nicklist | Open query with nick | /window ${_window_number};/query ${nick} -| ◽◽◾ | - | nicklist | Do a whois on nick | /window ${_window_number};/whois ${nick} -| ◾◽◽ | left | nicklist | Kick nick | /window ${_window_number};/kick ${nick} -| ◾◽◽ | left (long) | nicklist | Kick and ban nick | /window ${_window_number};/kickban ${nick} -| ◽◽◾ | left | nicklist | Ban nick | /window ${_window_number};/ban ${nick} -| ◽◽◾ | - | input | Grab a mouse event and insert its code in command line | /input grab_mouse_area -| wheel ⇑ | - | any bar | Scroll bar by -10% | /bar scroll ${_bar_name} ${_window_number} -20% -| wheel ⇓ | - | any bar | Scroll bar by +10% | /bar scroll ${_bar_name} ${_window_number} +20% -| ◽◾◽ | - | anywhere | Start cursor mode at this point | /cursor go ${_x},${_y} +| Button | Gesture | Area | Description | Command +| ◾◽◽ | - | chat | Switch to window | /window ${_window_number} +| ◾◽◽ | left | chat | Switch to previous buffer | /window ${_window_number};/buffer +1 +| ◾◽◽ | right | chat | Switch to next buffer | /window ${_window_number};/buffer +1 +| ◾◽◽ | left (long) | chat | Switch to first buffer | /window ${_window_number};/buffer 1 +| ◾◽◽ | right (long) | chat | Switch to last buffer | /window ${_window_number};/input jump_last_buffer +| wheel ⇑ | - | chat | Scroll up a few lines in buffer history | /window scroll_up -window ${_window_number} +| wheel ⇓ | - | chat | Scroll down a few lines in buffer history | /window scroll_down -window ${_window_number} +| wheel ⇑ | - | chat (script buffer) | Move 5 lines up in script buffer | /script up 5 +| wheel ⇓ | - | chat (script buffer) | Move 5 lines down in script buffer | /script down 5 +| ◾◽◽ | up | nicklist | Scroll up one page in nicklist | /bar scroll nicklist ${_window_number} -100% +| ◾◽◽ | down | nicklist | Scroll down one page in nicklist | /bar scroll nicklist ${_window_number} +100% +| ◾◽◽ | up (long) | nicklist | Go to the beginning of nicklist | /bar scroll nicklist ${_window_number} b +| ◾◽◽ | down (long) | nicklist | Go to the end of nicklist | /bar scroll nicklist ${_window_number} e +| ◾◽◽ | - | nicklist | Open query with nick | /window ${_window_number};/query ${nick} +| ◽◽◾ | - | nicklist | Do a whois on nick | /window ${_window_number};/whois ${nick} +| ◾◽◽ | left | nicklist | Kick nick | /window ${_window_number};/kick ${nick} +| ◾◽◽ | left (long) | nicklist | Kick and ban nick | /window ${_window_number};/kickban ${nick} +| ◽◽◾ | left | nicklist | Ban nick | /window ${_window_number};/ban ${nick} +| ◽◽◾ | - | input | Grab a mouse event and insert its code in command line | /input grab_mouse_area +| wheel ⇑ | - | any bar | Scroll bar by -10% | /bar scroll ${_bar_name} ${_window_number} -20% +| wheel ⇓ | - | any bar | Scroll bar by +10% | /bar scroll ${_bar_name} ${_window_number} +20% +| ◽◾◽ | - | anywhere | Start cursor mode at this point | /cursor go ${_x},${_y} |======================================== [[mouse]] @@ -2158,10 +2160,24 @@ WeeChat provides 6 scripting plugins: Python, Perl, Ruby, Lua, Tcl and Guile (scheme). These plugins can load, execute and unload scripts for these languages. +Another plugin called "script" is a scripts manager and is used to load/unload +scripts of any language, and install/remove scripts of WeeChat scripts +repository, which are visible at this URL: http://www.weechat.org/scripts + For more information about how to write scripts, or WeeChat API for scripts, please read 'WeeChat Scripting Guide'. -You can find some scripts for WeeChat here: http://www.weechat.org/scripts +[[script_options]] +Script options (script.conf) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +include::autogen/user/script_options.txt[] + +[[script_commands]] +Script commands +^^^^^^^^^^^^^^^ + +include::autogen/user/script_commands.txt[] [[python_commands]] Python commands diff --git a/doc/es/weechat_quickstart.es.txt b/doc/es/weechat_quickstart.es.txt index 464ddfb1a..ae24da390 100644 --- a/doc/es/weechat_quickstart.es.txt +++ b/doc/es/weechat_quickstart.es.txt @@ -240,22 +240,12 @@ Los plugins se cargan de manera automática cuando son encontrados por WeeChat (por favor, refierase a la documentación de WeeChat para ver como cargar/descargar plugins y scripts). -Algunos plugins, permiten usar scripts en WeeChat (en muchos lenguajes -como Perl, Python, Ruby, Lua y Tcl). Estos plugins deben ser cargados con -el comando `/plugin` los mismos proveen comandos como `/perl`, usados -para cargar scripts en este lenguaje. - -Muchos plugins/scripts externos (de contribuidores) están disponibles -para WeeChat en: http://www.weechat.org/scripts - -Una manera fácil de instalar scripts es usar un script llamado -'weeget.py' - -. `mkdir -p ~/.weechat/python/autoload` -. `cd ~/.weechat/python/autoload` -. `wget http://weechat.org/files/scripts/weeget.py` -. carga script: `/python autoload` -. lista los scripts: `/weeget list` (ayuda: `/help weeget`) +Muchos scripts externos (de contribuidores) están disponibles para WeeChat en: +http://www.weechat.org/scripts + +// TRANSLATION MISSING +You can manage scripts in WeeChat with command `/script` (see `/help script` +for more info). [[more_doc]] diff --git a/doc/fr/autogen/plugin_api/completions.txt b/doc/fr/autogen/plugin_api/completions.txt index 370e0b52d..3d6eb8292 100644 --- a/doc/fr/autogen/plugin_api/completions.txt +++ b/doc/fr/autogen/plugin_api/completions.txt @@ -56,6 +56,12 @@ | ruby | ruby_script | liste des scripts +| script | script_files | fichiers dans les répertoires de script + +| script | script_scripts | liste des scripts du repository + +| script | script_scripts_installed | liste des scripts installés (du repository) + | tcl | tcl_script | liste des scripts | weechat | bars_names | noms des barres diff --git a/doc/fr/autogen/plugin_api/hdata.txt b/doc/fr/autogen/plugin_api/hdata.txt index dcda5c998..c1b91fbf7 100644 --- a/doc/fr/autogen/plugin_api/hdata.txt +++ b/doc/fr/autogen/plugin_api/hdata.txt @@ -257,6 +257,33 @@ 'last_script' + 'scripts' +| script | script_script | scripts du repository | + 'name' (string) + + 'name_with_extension' (string) + + 'language' (integer) + + 'author' (string) + + 'mail' (string) + + 'version' (string) + + 'license' (string) + + 'description' (string) + + 'tags' (string) + + 'requirements' (string) + + 'min_weechat' (string) + + 'max_weechat' (string) + + 'md5sum' (string) + + 'url' (string) + + 'popularity' (integer) + + 'date_added' (time) + + 'date_updated' (time) + + 'status' (integer) + + 'version_loaded' (string) + + 'displayed' (integer) + + 'install_order' (integer) + + 'prev_script' (pointer, hdata: 'script_script') + + 'next_script' (pointer, hdata: 'script_script') | + 'last_repo_script' + + 'repo_scripts' + | tcl | tcl_script | liste des scripts | 'filename' (string) + 'interpreter' (pointer) + diff --git a/doc/fr/autogen/plugin_api/infolists.txt b/doc/fr/autogen/plugin_api/infolists.txt index a1d372e57..14015d5f5 100644 --- a/doc/fr/autogen/plugin_api/infolists.txt +++ b/doc/fr/autogen/plugin_api/infolists.txt @@ -30,6 +30,8 @@ | ruby | ruby_script | liste des scripts | pointeur vers le script (optionnel) | nom de script (peut démarrer ou se terminer par "*" comme joker) (optionnel) +| script | script_script | liste des scripts | pointeur vers le script (optionnel) | nom du script avec extension (peut démarrer ou se terminer par "*" comme joker) (optionnel) + | tcl | tcl_script | liste des scripts | pointeur vers le script (optionnel) | nom de script (peut démarrer ou se terminer par "*" comme joker) (optionnel) | weechat | bar | liste des barres | pointeur vers la barre (optionnel) | nom de barre (peut démarrer ou se terminer par "*" comme joker) (optionnel) diff --git a/doc/fr/autogen/user/script_commands.txt b/doc/fr/autogen/user/script_commands.txt new file mode 100644 index 000000000..ba77af871 --- /dev/null +++ b/doc/fr/autogen/user/script_commands.txt @@ -0,0 +1,47 @@ +[[command_script_script]] +[command]*`script`* Gestionnaire de scripts WeeChat:: +........................................ +/script list + show <script> + load|unload <script> [<script>...] + install|remove|hold <script> [<script>...] + upgrade + update + + list: lister les scripts chargés (tous les langages) + show: afficher des infos détaillées sur le script + load: charger un ou plusieurs scripts + unload: décharger un ou plusieurs scripts + install: installer/mettre à jour un ou plusieurs scripts + remove: supprimer un ou plusieurs scripts + hold: figer/défiger un ou plusieurs scripts (un script figé ne sera plus mis à jour et ne peut pas être supprimé) + upgrade: mettre à jour les scripts obsolètes (avec nouvelle version disponible) + update: mettre à jour le cache local des scripts + +Sans paramètre, cette commande ouvre un tampon avec la liste des scripts. + +Sur le tampon des scripts, les statuts pour chaque script sont : + * i H r N + | | | | | + | | | | obsolète (nouvelle version disponible) + | | | chargé + | | figé + | installé + script populaire + +Les touches sur le tampon des scripts : + alt+i installer le script + alt+r supprimer le script + alt+l charger le script + alt+u décharger le script + alt+h (dé)figer le script + +Entrée autorisée sur le tampon des scripts : + q fermer le tampon + r rafraîchir le tampon + s:x,y trier le tampon en utilisant les clés x et y (voir /help script.look.sort) + s: réinitialiser le tri (utiliser le tri par défaut) + word(s) filtrer les scripts: recherche du/des mot(s) dans les scripts (description, étiquettes, ...) + * supprimer le filtre +........................................ + diff --git a/doc/fr/autogen/user/script_options.txt b/doc/fr/autogen/user/script_options.txt new file mode 100644 index 000000000..b3e5a0060 --- /dev/null +++ b/doc/fr/autogen/user/script_options.txt @@ -0,0 +1,155 @@ +* [[option_script.color.status_held]] *script.color.status_held* +** description: `couleur du statut "figé" ("H")` +** type: couleur +** valeurs: un nom de couleur WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un numéro de couleur du terminal ou un alias; des attributs sont autorisés avant la couleur (seulement pour la couleur du texte, pas le fond) : "*" pour du gras, "!" pour la vidéo inverse, "_" pour du souligné (valeur par défaut: `white`) + +* [[option_script.color.status_installed]] *script.color.status_installed* +** description: `couleur du statut "installé" ("i")` +** type: couleur +** valeurs: un nom de couleur WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un numéro de couleur du terminal ou un alias; des attributs sont autorisés avant la couleur (seulement pour la couleur du texte, pas le fond) : "*" pour du gras, "!" pour la vidéo inverse, "_" pour du souligné (valeur par défaut: `lightcyan`) + +* [[option_script.color.status_obsolete]] *script.color.status_obsolete* +** description: `couleur du statut "obsolète" ("N")` +** type: couleur +** valeurs: un nom de couleur WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un numéro de couleur du terminal ou un alias; des attributs sont autorisés avant la couleur (seulement pour la couleur du texte, pas le fond) : "*" pour du gras, "!" pour la vidéo inverse, "_" pour du souligné (valeur par défaut: `lightmagenta`) + +* [[option_script.color.status_popular]] *script.color.status_popular* +** description: `couleur du statut "populaire" ("*")` +** type: couleur +** valeurs: un nom de couleur WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un numéro de couleur du terminal ou un alias; des attributs sont autorisés avant la couleur (seulement pour la couleur du texte, pas le fond) : "*" pour du gras, "!" pour la vidéo inverse, "_" pour du souligné (valeur par défaut: `yellow`) + +* [[option_script.color.status_running]] *script.color.status_running* +** description: `couleur du statut "chargé" ("r")` +** type: couleur +** valeurs: un nom de couleur WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un numéro de couleur du terminal ou un alias; des attributs sont autorisés avant la couleur (seulement pour la couleur du texte, pas le fond) : "*" pour du gras, "!" pour la vidéo inverse, "_" pour du souligné (valeur par défaut: `lightgreen`) + +* [[option_script.color.status_unknown]] *script.color.status_unknown* +** description: `couleur du statut "inconnu" ("?")` +** type: couleur +** valeurs: un nom de couleur WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un numéro de couleur du terminal ou un alias; des attributs sont autorisés avant la couleur (seulement pour la couleur du texte, pas le fond) : "*" pour du gras, "!" pour la vidéo inverse, "_" pour du souligné (valeur par défaut: `lightred`) + +* [[option_script.color.text]] *script.color.text* +** description: `couleur du texte dans le tampon script` +** type: couleur +** valeurs: un nom de couleur WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un numéro de couleur du terminal ou un alias; des attributs sont autorisés avant la couleur (seulement pour la couleur du texte, pas le fond) : "*" pour du gras, "!" pour la vidéo inverse, "_" pour du souligné (valeur par défaut: `default`) + +* [[option_script.color.text_bg]] *script.color.text_bg* +** description: `couleur du fond dans le tampon script` +** type: couleur +** valeurs: un nom de couleur WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un numéro de couleur du terminal ou un alias; des attributs sont autorisés avant la couleur (seulement pour la couleur du texte, pas le fond) : "*" pour du gras, "!" pour la vidéo inverse, "_" pour du souligné (valeur par défaut: `default`) + +* [[option_script.color.text_bg_selected]] *script.color.text_bg_selected* +** description: `couleur du fond pour la ligne sélectionnée dans le tampon script` +** type: couleur +** valeurs: un nom de couleur WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un numéro de couleur du terminal ou un alias; des attributs sont autorisés avant la couleur (seulement pour la couleur du texte, pas le fond) : "*" pour du gras, "!" pour la vidéo inverse, "_" pour du souligné (valeur par défaut: `red`) + +* [[option_script.color.text_date]] *script.color.text_date* +** description: `couleur du texte pour les dates dans le tampon script` +** type: couleur +** valeurs: un nom de couleur WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un numéro de couleur du terminal ou un alias; des attributs sont autorisés avant la couleur (seulement pour la couleur du texte, pas le fond) : "*" pour du gras, "!" pour la vidéo inverse, "_" pour du souligné (valeur par défaut: `default`) + +* [[option_script.color.text_date_selected]] *script.color.text_date_selected* +** description: `couleur du texte pour les dates de la ligne sélectionnée dans le tampon script` +** type: couleur +** valeurs: un nom de couleur WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un numéro de couleur du terminal ou un alias; des attributs sont autorisés avant la couleur (seulement pour la couleur du texte, pas le fond) : "*" pour du gras, "!" pour la vidéo inverse, "_" pour du souligné (valeur par défaut: `white`) + +* [[option_script.color.text_delimiters]] *script.color.text_delimiters* +** description: `couleur du texte pour les délimiteurs dans le tampon script` +** type: couleur +** valeurs: un nom de couleur WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un numéro de couleur du terminal ou un alias; des attributs sont autorisés avant la couleur (seulement pour la couleur du texte, pas le fond) : "*" pour du gras, "!" pour la vidéo inverse, "_" pour du souligné (valeur par défaut: `darkgray`) + +* [[option_script.color.text_description]] *script.color.text_description* +** description: `couleur du texte pour la description dans le tampon script` +** type: couleur +** valeurs: un nom de couleur WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un numéro de couleur du terminal ou un alias; des attributs sont autorisés avant la couleur (seulement pour la couleur du texte, pas le fond) : "*" pour du gras, "!" pour la vidéo inverse, "_" pour du souligné (valeur par défaut: `default`) + +* [[option_script.color.text_description_selected]] *script.color.text_description_selected* +** description: `couleur du texte pour la description de la ligne sélectionnée dans le tampon script` +** type: couleur +** valeurs: un nom de couleur WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un numéro de couleur du terminal ou un alias; des attributs sont autorisés avant la couleur (seulement pour la couleur du texte, pas le fond) : "*" pour du gras, "!" pour la vidéo inverse, "_" pour du souligné (valeur par défaut: `white`) + +* [[option_script.color.text_extension]] *script.color.text_extension* +** description: `couleur du texte pour l'extension dans le tampon script` +** type: couleur +** valeurs: un nom de couleur WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un numéro de couleur du terminal ou un alias; des attributs sont autorisés avant la couleur (seulement pour la couleur du texte, pas le fond) : "*" pour du gras, "!" pour la vidéo inverse, "_" pour du souligné (valeur par défaut: `default`) + +* [[option_script.color.text_extension_selected]] *script.color.text_extension_selected* +** description: `couleur du texte pour l'extension de la ligne sélectionnée dans le tampon script` +** type: couleur +** valeurs: un nom de couleur WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un numéro de couleur du terminal ou un alias; des attributs sont autorisés avant la couleur (seulement pour la couleur du texte, pas le fond) : "*" pour du gras, "!" pour la vidéo inverse, "_" pour du souligné (valeur par défaut: `white`) + +* [[option_script.color.text_name]] *script.color.text_name* +** description: `couleur du texte pour le nom du script dans le tampon script` +** type: couleur +** valeurs: un nom de couleur WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un numéro de couleur du terminal ou un alias; des attributs sont autorisés avant la couleur (seulement pour la couleur du texte, pas le fond) : "*" pour du gras, "!" pour la vidéo inverse, "_" pour du souligné (valeur par défaut: `cyan`) + +* [[option_script.color.text_name_selected]] *script.color.text_name_selected* +** description: `couleur du texte pour le nom du script de la ligne sélectionnée dans le tampon script` +** type: couleur +** valeurs: un nom de couleur WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un numéro de couleur du terminal ou un alias; des attributs sont autorisés avant la couleur (seulement pour la couleur du texte, pas le fond) : "*" pour du gras, "!" pour la vidéo inverse, "_" pour du souligné (valeur par défaut: `lightcyan`) + +* [[option_script.color.text_selected]] *script.color.text_selected* +** description: `couleur du texte pour la ligne sélectionnée dans le tampon script` +** type: couleur +** valeurs: un nom de couleur WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un numéro de couleur du terminal ou un alias; des attributs sont autorisés avant la couleur (seulement pour la couleur du texte, pas le fond) : "*" pour du gras, "!" pour la vidéo inverse, "_" pour du souligné (valeur par défaut: `white`) + +* [[option_script.color.text_tags]] *script.color.text_tags* +** description: `couleur du texte pour les étiquettes dans le tampon script` +** type: couleur +** valeurs: un nom de couleur WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un numéro de couleur du terminal ou un alias; des attributs sont autorisés avant la couleur (seulement pour la couleur du texte, pas le fond) : "*" pour du gras, "!" pour la vidéo inverse, "_" pour du souligné (valeur par défaut: `brown`) + +* [[option_script.color.text_tags_selected]] *script.color.text_tags_selected* +** description: `couleur du texte pour les étiquettes de la ligne sélectionnée dans le tampon script` +** type: couleur +** valeurs: un nom de couleur WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un numéro de couleur du terminal ou un alias; des attributs sont autorisés avant la couleur (seulement pour la couleur du texte, pas le fond) : "*" pour du gras, "!" pour la vidéo inverse, "_" pour du souligné (valeur par défaut: `yellow`) + +* [[option_script.color.text_version]] *script.color.text_version* +** description: `couleur du texte pour la version dans le tampon script` +** type: couleur +** valeurs: un nom de couleur WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un numéro de couleur du terminal ou un alias; des attributs sont autorisés avant la couleur (seulement pour la couleur du texte, pas le fond) : "*" pour du gras, "!" pour la vidéo inverse, "_" pour du souligné (valeur par défaut: `magenta`) + +* [[option_script.color.text_version_loaded]] *script.color.text_version_loaded* +** description: `couleur du texte pour la version chargée dans le tampon script` +** type: couleur +** valeurs: un nom de couleur WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un numéro de couleur du terminal ou un alias; des attributs sont autorisés avant la couleur (seulement pour la couleur du texte, pas le fond) : "*" pour du gras, "!" pour la vidéo inverse, "_" pour du souligné (valeur par défaut: `default`) + +* [[option_script.color.text_version_loaded_selected]] *script.color.text_version_loaded_selected* +** description: `couleur du texte pour la version chargée de la ligne sélectionnée dans le tampon script` +** type: couleur +** valeurs: un nom de couleur WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un numéro de couleur du terminal ou un alias; des attributs sont autorisés avant la couleur (seulement pour la couleur du texte, pas le fond) : "*" pour du gras, "!" pour la vidéo inverse, "_" pour du souligné (valeur par défaut: `white`) + +* [[option_script.color.text_version_selected]] *script.color.text_version_selected* +** description: `couleur du texte pour la version de la ligne sélectionnée dans le tampon script` +** type: couleur +** valeurs: un nom de couleur WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un numéro de couleur du terminal ou un alias; des attributs sont autorisés avant la couleur (seulement pour la couleur du texte, pas le fond) : "*" pour du gras, "!" pour la vidéo inverse, "_" pour du souligné (valeur par défaut: `lightmagenta`) + +* [[option_script.look.columns]] *script.look.columns* +** description: `format des colonnes affichées dans le tampon des scripts: les identifiants de colonne suivants sont remplacés par leur valeur: %a=auteur, %d=description, %D=date d'ajout, %e=extension, %l=langage, %L=licence, %n=nom avec extension, %N=nom, %r=dépendances, %s=statuts, %t=étiquettes, %u=date de mise à jour, %v=version, %V=version chargée, %w=min_weechat, %W=max_weechat` +** type: chaîne +** valeurs: toute chaîne (valeur par défaut: `"%s %n %V %v %u | %d | %t"`) + +* [[option_script.look.sort]] *script.look.sort* +** description: `tri par défaut des scripts: liste d'identifiants séparés par des virgules: a=auteur, d=date d'ajour, e=extension, i=installé, l=langage, n=nom, o=obsolète, p=populaire, r=chargé, u=date de mise à jour; le caractère "-" peut être utilisé avant l'identifiant pour inverser l'ordre; exemple: "i,u": scripts installés en premier, triés par date de mise à jour` +** type: chaîne +** valeurs: toute chaîne (valeur par défaut: `"p,n"`) + +* [[option_script.scripts.cache_expire]] *script.scripts.cache_expire* +** description: `temps d'expiration du cache local, en minutes (-1 = n'expire jamais, 0 = expire toujours)` +** type: entier +** valeurs: -1 .. 525600 (valeur par défaut: `60`) + +* [[option_script.scripts.dir]] *script.scripts.dir* +** description: `répertoire du cache local pour les scripts` +** type: chaîne +** valeurs: toute chaîne (valeur par défaut: `"%h/script"`) + +* [[option_script.scripts.hold]] *script.scripts.hold* +** description: `scripts à "figer": liste de scripts séparés par des virgules qui ne seront jamais mis à jour et ne peuvent pas être supprimés, par exemple: "buffers.pl,iset.pl"` +** type: chaîne +** valeurs: toute chaîne (valeur par défaut: `""`) + +* [[option_script.scripts.url]] *script.scripts.url* +** description: `URL pour le fichier avec la liste des scripts` +** type: chaîne +** valeurs: toute chaîne (valeur par défaut: `"http://www.weechat.org/files/plugins.xml.gz"`) + diff --git a/doc/fr/weechat_quickstart.fr.txt b/doc/fr/weechat_quickstart.fr.txt index f4aca2e2c..1fca41c84 100644 --- a/doc/fr/weechat_quickstart.fr.txt +++ b/doc/fr/weechat_quickstart.fr.txt @@ -234,22 +234,11 @@ Les extensions sont automatiquement chargées lorsqu'elles sont trouvées (merci de regarder la documentation WeeChat pour charger/décharger des extensions ou des scripts). -Des extensions permettent d'utiliser des scripts dans WeeChat (dans -différent langages comme Perl, Python, Ruby, Lua et Tcl). Ces extensions -doivent être chargées avec la commande `/plugin` et elles fournissent des -commandes telles que `/perl`, utilisées pour charger les scripts. - -Plusieurs extensions/scripts (de contributeurs) sont disponibles pour -WeeChat : http://www.weechat.org/scripts - -La manière la plus simple pour installer des scripts consiste à utiliser le -script 'weeget.py' : - -. `mkdir -p ~/.weechat/python/autoload` -. `cd ~/.weechat/python/autoload` -. `wget http://weechat.org/files/scripts/weeget.py` -. chargez le script : `/python autoload` -. liste des scripts : `/weeget list` (pour l'aide: `/help weeget`) +De nombreux scripts externes (de contributeurs) sont disponibles pour WeeChat : +http://www.weechat.org/scripts + +Vous pouvez gérer les scripts dans WeeChat avec la commande `/script` (voir +`/help script` pour plus d'info). [[more_doc]] diff --git a/doc/fr/weechat_user.fr.txt b/doc/fr/weechat_user.fr.txt index 31250f39d..e26bf00b3 100644 --- a/doc/fr/weechat_user.fr.txt +++ b/doc/fr/weechat_user.fr.txt @@ -93,12 +93,11 @@ compiler WeeChat. | cmake | | *oui* | construction (autotools toujours possible, mais cmake est recommandé) | libncursesw5-dev ^(2)^ | | *oui* | interface ncurses | libcurl4-gnutls-dev | | *oui* | transfert d'URL -| gettext | | | internationalisation (traduction des messages; la langue de base est l'anglais) -| libgcrypt11-dev | | | authentification SASL avec le serveur IRC, en utilisant le mécanisme DH-BLOWFISH +| zlib1g-dev | | *oui* | compression des paquets dans l'extension relay (protocole weechat), extension script +| libgcrypt11-dev | | *oui* | authentification SASL avec le serveur IRC, en utilisant le mécanisme DH-BLOWFISH, extension script | libgnutls-dev | ≥ 2.2.0 | | connexion SSL au serveur IRC, support SSL dans l'extension relay +| gettext | | | internationalisation (traduction des messages; la langue de base est l'anglais) | ca-certificates | | | certificats pour les connexions SSL -// TRANSLATION MISSING -| zlib1g-dev | | | compression des paquets dans l'extension relay (protocole weechat) | libaspell-dev | | | extension aspell | python-dev | ≥ 2.5 ^(3)^ | | extension python | libperl-dev | | | extension perl @@ -786,27 +785,29 @@ Ces touches sont utilisées dans le contexte "mouse", c'est-à-dire lorsqu'un [width="100%",cols="^.^3,^.^3,^.^3,.^10,.^8l",options="header"] |======================================== -| Bouton | Geste | Zone | Description | Commande -| ◾◽◽ | - | chat | Aller à la fenêtre | /window ${_window_number} -| ◾◽◽ | left | chat | Aller au tampon précédent | /window ${_window_number};/buffer +1 -| ◾◽◽ | right | chat | Aller au tampon suivant | /window ${_window_number};/buffer +1 -| ◾◽◽ | left (long) | chat | Aller au premier tampon | /window ${_window_number};/buffer 1 -| ◾◽◽ | right (long) | chat | Aller au dernier tampon | /window ${_window_number};/input jump_last_buffer -| roulette ⇑ | - | chat | Monter de quelques lignes dans l'historique du tampon | /window scroll_up -window ${_window_number} -| roulette ⇓ | - | chat | Descendre de quelques lignes dans l'historique du tampon | /window scroll_down -window ${_window_number} -| ◾◽◽ | up | liste des pseudos | Monter d'une page dans la liste des pseudos | /bar scroll nicklist ${_window_number} -100% -| ◾◽◽ | down | liste des pseudos | Descendre d'une page dans la liste des pseudos | /bar scroll nicklist ${_window_number} +100% -| ◾◽◽ | up (long) | liste des pseudos | Aller au début de la liste des pseudos | /bar scroll nicklist ${_window_number} b -| ◾◽◽ | down (long) | liste des pseudos | Aller à la fin de la liste des pseudos | /bar scroll nicklist ${_window_number} e -| ◾◽◽ | - | liste des pseudos | Ouvrir une discussion avec le pseudo | /window ${_window_number};/query ${nick} -| ◽◽◾ | - | liste des pseudos | Effectuer un whois sur le pseudo | /window ${_window_number};/whois ${nick} -| ◾◽◽ | left | liste des pseudos | Retirer par la force le pseudo | /window ${_window_number};/kick ${nick} -| ◾◽◽ | left (long) | liste des pseudos | Retirer par la force et bannir le pseudo | /window ${_window_number};/kickban ${nick} -| ◽◽◾ | left | liste des pseudos | Bannir le pseudo | /window ${_window_number};/ban ${nick} -| ◽◽◾ | - | ligne de commande | Capturer un évènement de la souris et insérer son code sur la ligne de commande | /input grab_mouse_area -| roulette ⇑ | - | toute barre | Faire défiler la barre de -10% | /bar scroll ${_bar_name} ${_window_number} -20% -| roulette ⇓ | - | toute barre | Faire défiler la barre de +10% | /bar scroll ${_bar_name} ${_window_number} +20% -| ◽◾◽ | - | n'importe où | Démarrer le mode curseur ("cursor") à ce point | /cursor go ${_x},${_y} +| Bouton | Geste | Zone | Description | Commande +| ◾◽◽ | - | chat | Aller à la fenêtre | /window ${_window_number} +| ◾◽◽ | left | chat | Aller au tampon précédent | /window ${_window_number};/buffer +1 +| ◾◽◽ | right | chat | Aller au tampon suivant | /window ${_window_number};/buffer +1 +| ◾◽◽ | left (long) | chat | Aller au premier tampon | /window ${_window_number};/buffer 1 +| ◾◽◽ | right (long) | chat | Aller au dernier tampon | /window ${_window_number};/input jump_last_buffer +| roulette ⇑ | - | chat | Monter de quelques lignes dans l'historique du tampon | /window scroll_up -window ${_window_number} +| roulette ⇓ | - | chat | Descendre de quelques lignes dans l'historique du tampon | /window scroll_down -window ${_window_number} +| roulette ⇑ | - | chat (tampon script) | Monter de 5 lignes dans le tampon script | /script up 5 +| roulette ⇓ | - | chat (tampon script) | Descendre de 5 lignes dans le tampon script | /script down 5 +| ◾◽◽ | up | liste des pseudos | Monter d'une page dans la liste des pseudos | /bar scroll nicklist ${_window_number} -100% +| ◾◽◽ | down | liste des pseudos | Descendre d'une page dans la liste des pseudos | /bar scroll nicklist ${_window_number} +100% +| ◾◽◽ | up (long) | liste des pseudos | Aller au début de la liste des pseudos | /bar scroll nicklist ${_window_number} b +| ◾◽◽ | down (long) | liste des pseudos | Aller à la fin de la liste des pseudos | /bar scroll nicklist ${_window_number} e +| ◾◽◽ | - | liste des pseudos | Ouvrir une discussion avec le pseudo | /window ${_window_number};/query ${nick} +| ◽◽◾ | - | liste des pseudos | Effectuer un whois sur le pseudo | /window ${_window_number};/whois ${nick} +| ◾◽◽ | left | liste des pseudos | Retirer par la force le pseudo | /window ${_window_number};/kick ${nick} +| ◾◽◽ | left (long) | liste des pseudos | Retirer par la force et bannir le pseudo | /window ${_window_number};/kickban ${nick} +| ◽◽◾ | left | liste des pseudos | Bannir le pseudo | /window ${_window_number};/ban ${nick} +| ◽◽◾ | - | ligne de commande | Capturer un évènement de la souris et insérer son code sur la ligne de commande | /input grab_mouse_area +| roulette ⇑ | - | toute barre | Faire défiler la barre de -10% | /bar scroll ${_bar_name} ${_window_number} -20% +| roulette ⇓ | - | toute barre | Faire défiler la barre de +10% | /bar scroll ${_bar_name} ${_window_number} +20% +| ◽◾◽ | - | n'importe où | Démarrer le mode curseur ("cursor") à ce point | /cursor go ${_x},${_y} |======================================== [[mouse]] @@ -2222,11 +2223,25 @@ Guile (scheme). Ces extensions peuvent charger, exécuter et décharger des scripts pour ces langages. +Une autre extension appelée "script" est un gestionnaire de scripts et est +utilisé pour charger/décharger des scripts pour n'importe quel langage, et +installer/supprimer des scripts du repository WeeChat, qui sont visibles à cette +URL: http://www.weechat.org/scripts + Pour plus d'informations sur comment écrire des scripts, ou sur l'API WeeChat pour les scripts, merci de lire le 'Le Guide pour Scripts WeeChat'. -Vous pouvez trouver des scripts pour WeeChat ici : -http://www.weechat.org/scripts +[[script_options]] +Options Script (script.conf) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +include::autogen/user/script_options.txt[] + +[[script_commands]] +Commandes Script +^^^^^^^^^^^^^^^^ + +include::autogen/user/script_commands.txt[] [[python_commands]] Commandes Python diff --git a/doc/it/autogen/plugin_api/completions.txt b/doc/it/autogen/plugin_api/completions.txt index 3d8b2a5cc..506f2a811 100644 --- a/doc/it/autogen/plugin_api/completions.txt +++ b/doc/it/autogen/plugin_api/completions.txt @@ -56,6 +56,12 @@ | ruby | ruby_script | elenco degli script +| script | script_files | files in script directories + +| script | script_scripts | list of scripts in repository + +| script | script_scripts_installed | list of scripts installed (from repository) + | tcl | tcl_script | elenco degli script | weechat | bars_names | nomi delle barre diff --git a/doc/it/autogen/plugin_api/hdata.txt b/doc/it/autogen/plugin_api/hdata.txt index 1a5b3e22c..20b6d9f90 100644 --- a/doc/it/autogen/plugin_api/hdata.txt +++ b/doc/it/autogen/plugin_api/hdata.txt @@ -257,6 +257,33 @@ 'last_script' + 'scripts' +| script | script_script | scripts from repository | + 'name' (string) + + 'name_with_extension' (string) + + 'language' (integer) + + 'author' (string) + + 'mail' (string) + + 'version' (string) + + 'license' (string) + + 'description' (string) + + 'tags' (string) + + 'requirements' (string) + + 'min_weechat' (string) + + 'max_weechat' (string) + + 'md5sum' (string) + + 'url' (string) + + 'popularity' (integer) + + 'date_added' (time) + + 'date_updated' (time) + + 'status' (integer) + + 'version_loaded' (string) + + 'displayed' (integer) + + 'install_order' (integer) + + 'prev_script' (pointer, hdata: 'script_script') + + 'next_script' (pointer, hdata: 'script_script') | + 'last_repo_script' + + 'repo_scripts' + | tcl | tcl_script | elenco degli script | 'filename' (string) + 'interpreter' (pointer) + diff --git a/doc/it/autogen/plugin_api/infolists.txt b/doc/it/autogen/plugin_api/infolists.txt index c618f577c..d94316c29 100644 --- a/doc/it/autogen/plugin_api/infolists.txt +++ b/doc/it/autogen/plugin_api/infolists.txt @@ -30,6 +30,8 @@ | ruby | ruby_script | elenco degli script | puntatore allo script (opzionale) | nome script (può iniziare o terminare con "*" come carattere jolly) (opzionale) +| script | script_script | elenco degli script | puntatore allo script (opzionale) | script name with extension (can start or end with "*" as wildcard) (optional) + | tcl | tcl_script | elenco degli script | puntatore allo script (opzionale) | nome script (può iniziare o terminare con "*" come carattere jolly) (opzionale) | weechat | bar | elenco delle barre | puntatore alla barra (opzionale) | nome barra (può iniziare o terminare con "*" come carattere jolly (opzionale) diff --git a/doc/it/autogen/user/script_commands.txt b/doc/it/autogen/user/script_commands.txt new file mode 100644 index 000000000..ab430e4bd --- /dev/null +++ b/doc/it/autogen/user/script_commands.txt @@ -0,0 +1,47 @@ +[[command_script_script]] +[command]*`script`* WeeChat scripts manager:: +........................................ +/script list + show <script> + load|unload <script> [<script>...] + install|remove|hold <script> [<script>...] + upgrade + update + + list: list loaded scripts (all languages) + show: show detailed info about a script + load: load script(s) + unload: unload script(s) + install: install/upgrade script(s) + remove: remove script(s) + hold: hold/unhold script(s) (a script held will not be upgraded any more and cannot be removed) + upgrade: upgrade all installed scripts which are obsolete (new version available) + update: update local scripts cache + +Without argument, this command opens a buffer with list of scripts. + +On script buffer, the possible status for each script are: + * i H r N + | | | | | + | | | | obsolete (new version available) + | | | running (loaded) + | | held + | installed + popular script + +Keys on script buffer: + alt+i install script + alt+r remove script + alt+l load script + alt+u unload script + alt+h (un)hold script + +Input allowed on script buffer: + q close buffer + r refresh buffer + s:x,y sort buffer using keys x and y (see /help script.look.sort) + s: reset sort (use default sort) + word(s) filter scripts: search word(s) in scripts (description, tags, ...) + * remove filter +........................................ + diff --git a/doc/it/autogen/user/script_options.txt b/doc/it/autogen/user/script_options.txt new file mode 100644 index 000000000..2db7cf2d8 --- /dev/null +++ b/doc/it/autogen/user/script_options.txt @@ -0,0 +1,155 @@ +* [[option_script.color.status_held]] *script.color.status_held* +** descrizione: `color for status "held" ("H")` +** tipo: colore +** valori: un nome colore di WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un numero colore del terminale o un alias; attributi consentiti prima del colore (solo per il colore del testo, non lo sfondo): "*" per il grassetto, "!" per l'inverso, "_" per la sottolineatura (valore predefinito: `white`) + +* [[option_script.color.status_installed]] *script.color.status_installed* +** descrizione: `color for status "installed" ("i")` +** tipo: colore +** valori: un nome colore di WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un numero colore del terminale o un alias; attributi consentiti prima del colore (solo per il colore del testo, non lo sfondo): "*" per il grassetto, "!" per l'inverso, "_" per la sottolineatura (valore predefinito: `lightcyan`) + +* [[option_script.color.status_obsolete]] *script.color.status_obsolete* +** descrizione: `color for status "obsolete" ("N")` +** tipo: colore +** valori: un nome colore di WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un numero colore del terminale o un alias; attributi consentiti prima del colore (solo per il colore del testo, non lo sfondo): "*" per il grassetto, "!" per l'inverso, "_" per la sottolineatura (valore predefinito: `lightmagenta`) + +* [[option_script.color.status_popular]] *script.color.status_popular* +** descrizione: `color for status "popular" ("*")` +** tipo: colore +** valori: un nome colore di WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un numero colore del terminale o un alias; attributi consentiti prima del colore (solo per il colore del testo, non lo sfondo): "*" per il grassetto, "!" per l'inverso, "_" per la sottolineatura (valore predefinito: `yellow`) + +* [[option_script.color.status_running]] *script.color.status_running* +** descrizione: `color for status "running" ("r")` +** tipo: colore +** valori: un nome colore di WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un numero colore del terminale o un alias; attributi consentiti prima del colore (solo per il colore del testo, non lo sfondo): "*" per il grassetto, "!" per l'inverso, "_" per la sottolineatura (valore predefinito: `lightgreen`) + +* [[option_script.color.status_unknown]] *script.color.status_unknown* +** descrizione: `color for status "unknown" ("?")` +** tipo: colore +** valori: un nome colore di WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un numero colore del terminale o un alias; attributi consentiti prima del colore (solo per il colore del testo, non lo sfondo): "*" per il grassetto, "!" per l'inverso, "_" per la sottolineatura (valore predefinito: `lightred`) + +* [[option_script.color.text]] *script.color.text* +** descrizione: `text color in script buffer` +** tipo: colore +** valori: un nome colore di WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un numero colore del terminale o un alias; attributi consentiti prima del colore (solo per il colore del testo, non lo sfondo): "*" per il grassetto, "!" per l'inverso, "_" per la sottolineatura (valore predefinito: `default`) + +* [[option_script.color.text_bg]] *script.color.text_bg* +** descrizione: `background color in script buffer` +** tipo: colore +** valori: un nome colore di WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un numero colore del terminale o un alias; attributi consentiti prima del colore (solo per il colore del testo, non lo sfondo): "*" per il grassetto, "!" per l'inverso, "_" per la sottolineatura (valore predefinito: `default`) + +* [[option_script.color.text_bg_selected]] *script.color.text_bg_selected* +** descrizione: `background color for selected line in script buffer` +** tipo: colore +** valori: un nome colore di WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un numero colore del terminale o un alias; attributi consentiti prima del colore (solo per il colore del testo, non lo sfondo): "*" per il grassetto, "!" per l'inverso, "_" per la sottolineatura (valore predefinito: `red`) + +* [[option_script.color.text_date]] *script.color.text_date* +** descrizione: `text color of dates in script buffer` +** tipo: colore +** valori: un nome colore di WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un numero colore del terminale o un alias; attributi consentiti prima del colore (solo per il colore del testo, non lo sfondo): "*" per il grassetto, "!" per l'inverso, "_" per la sottolineatura (valore predefinito: `default`) + +* [[option_script.color.text_date_selected]] *script.color.text_date_selected* +** descrizione: `text color of dates for selected line in script buffer` +** tipo: colore +** valori: un nome colore di WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un numero colore del terminale o un alias; attributi consentiti prima del colore (solo per il colore del testo, non lo sfondo): "*" per il grassetto, "!" per l'inverso, "_" per la sottolineatura (valore predefinito: `white`) + +* [[option_script.color.text_delimiters]] *script.color.text_delimiters* +** descrizione: `text color of delimiters in script buffer` +** tipo: colore +** valori: un nome colore di WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un numero colore del terminale o un alias; attributi consentiti prima del colore (solo per il colore del testo, non lo sfondo): "*" per il grassetto, "!" per l'inverso, "_" per la sottolineatura (valore predefinito: `darkgray`) + +* [[option_script.color.text_description]] *script.color.text_description* +** descrizione: `text color of description in script buffer` +** tipo: colore +** valori: un nome colore di WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un numero colore del terminale o un alias; attributi consentiti prima del colore (solo per il colore del testo, non lo sfondo): "*" per il grassetto, "!" per l'inverso, "_" per la sottolineatura (valore predefinito: `default`) + +* [[option_script.color.text_description_selected]] *script.color.text_description_selected* +** descrizione: `text color of description for selected line in script buffer` +** tipo: colore +** valori: un nome colore di WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un numero colore del terminale o un alias; attributi consentiti prima del colore (solo per il colore del testo, non lo sfondo): "*" per il grassetto, "!" per l'inverso, "_" per la sottolineatura (valore predefinito: `white`) + +* [[option_script.color.text_extension]] *script.color.text_extension* +** descrizione: `text color of extension in script buffer` +** tipo: colore +** valori: un nome colore di WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un numero colore del terminale o un alias; attributi consentiti prima del colore (solo per il colore del testo, non lo sfondo): "*" per il grassetto, "!" per l'inverso, "_" per la sottolineatura (valore predefinito: `default`) + +* [[option_script.color.text_extension_selected]] *script.color.text_extension_selected* +** descrizione: `text color of extension for selected line in script buffer` +** tipo: colore +** valori: un nome colore di WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un numero colore del terminale o un alias; attributi consentiti prima del colore (solo per il colore del testo, non lo sfondo): "*" per il grassetto, "!" per l'inverso, "_" per la sottolineatura (valore predefinito: `white`) + +* [[option_script.color.text_name]] *script.color.text_name* +** descrizione: `text color of script name in script buffer` +** tipo: colore +** valori: un nome colore di WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un numero colore del terminale o un alias; attributi consentiti prima del colore (solo per il colore del testo, non lo sfondo): "*" per il grassetto, "!" per l'inverso, "_" per la sottolineatura (valore predefinito: `cyan`) + +* [[option_script.color.text_name_selected]] *script.color.text_name_selected* +** descrizione: `text color of script name for selected line in script buffer` +** tipo: colore +** valori: un nome colore di WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un numero colore del terminale o un alias; attributi consentiti prima del colore (solo per il colore del testo, non lo sfondo): "*" per il grassetto, "!" per l'inverso, "_" per la sottolineatura (valore predefinito: `lightcyan`) + +* [[option_script.color.text_selected]] *script.color.text_selected* +** descrizione: `text color for selected line in script buffer` +** tipo: colore +** valori: un nome colore di WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un numero colore del terminale o un alias; attributi consentiti prima del colore (solo per il colore del testo, non lo sfondo): "*" per il grassetto, "!" per l'inverso, "_" per la sottolineatura (valore predefinito: `white`) + +* [[option_script.color.text_tags]] *script.color.text_tags* +** descrizione: `text color of tags in script buffer` +** tipo: colore +** valori: un nome colore di WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un numero colore del terminale o un alias; attributi consentiti prima del colore (solo per il colore del testo, non lo sfondo): "*" per il grassetto, "!" per l'inverso, "_" per la sottolineatura (valore predefinito: `brown`) + +* [[option_script.color.text_tags_selected]] *script.color.text_tags_selected* +** descrizione: `text color of tags for selected line in script buffer` +** tipo: colore +** valori: un nome colore di WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un numero colore del terminale o un alias; attributi consentiti prima del colore (solo per il colore del testo, non lo sfondo): "*" per il grassetto, "!" per l'inverso, "_" per la sottolineatura (valore predefinito: `yellow`) + +* [[option_script.color.text_version]] *script.color.text_version* +** descrizione: `text color of version in script buffer` +** tipo: colore +** valori: un nome colore di WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un numero colore del terminale o un alias; attributi consentiti prima del colore (solo per il colore del testo, non lo sfondo): "*" per il grassetto, "!" per l'inverso, "_" per la sottolineatura (valore predefinito: `magenta`) + +* [[option_script.color.text_version_loaded]] *script.color.text_version_loaded* +** descrizione: `text color of version loaded in script buffer` +** tipo: colore +** valori: un nome colore di WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un numero colore del terminale o un alias; attributi consentiti prima del colore (solo per il colore del testo, non lo sfondo): "*" per il grassetto, "!" per l'inverso, "_" per la sottolineatura (valore predefinito: `default`) + +* [[option_script.color.text_version_loaded_selected]] *script.color.text_version_loaded_selected* +** descrizione: `text color of version loaded for selected line in script buffer` +** tipo: colore +** valori: un nome colore di WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un numero colore del terminale o un alias; attributi consentiti prima del colore (solo per il colore del testo, non lo sfondo): "*" per il grassetto, "!" per l'inverso, "_" per la sottolineatura (valore predefinito: `white`) + +* [[option_script.color.text_version_selected]] *script.color.text_version_selected* +** descrizione: `text color of version for selected line in script buffer` +** tipo: colore +** valori: un nome colore di WeeChat (default, black, (dark)gray, white, (light)red, (light)green, brown, yellow, (light)blue, (light)magenta, (light)cyan), un numero colore del terminale o un alias; attributi consentiti prima del colore (solo per il colore del testo, non lo sfondo): "*" per il grassetto, "!" per l'inverso, "_" per la sottolineatura (valore predefinito: `lightmagenta`) + +* [[option_script.look.columns]] *script.look.columns* +** descrizione: `format of columns displayed in script buffer: following column identifiers are replaced by their value: %a=author, %d=description, %D=date added, %e=extension, %l=language, %L=license, %n=name with extension, %N=name, %r=requirements, %s=status, %t=tags, %u=date updated, %v=version, %V=version loaded, %w=min_weechat, %W=max_weechat)` +** tipo: stringa +** valori: qualsiasi stringa (valore predefinito: `"%s %n %V %v %u | %d | %t"`) + +* [[option_script.look.sort]] *script.look.sort* +** descrizione: `default sort keys for scripts: comma-separated list of identifiers: a=author, d=date added, e=extension, i=installed, l=language, n=name, o=obsolete, p=popularity, r=running, u=date updated; char "-" can be used before identifier to reverse order; example: "i,u": installed scripts first, sorted by update date` +** tipo: stringa +** valori: qualsiasi stringa (valore predefinito: `"p,n"`) + +* [[option_script.scripts.cache_expire]] *script.scripts.cache_expire* +** descrizione: `local cache expiration time, in minutes (-1 = never expires, 0 = always expire)` +** tipo: intero +** valori: -1 .. 525600 (valore predefinito: `60`) + +* [[option_script.scripts.dir]] *script.scripts.dir* +** descrizione: `local cache directory for scripts` +** tipo: stringa +** valori: qualsiasi stringa (valore predefinito: `"%h/script"`) + +* [[option_script.scripts.hold]] *script.scripts.hold* +** descrizione: `scripts to "hold": comma-separated list of scripts which will never been upgraded and can not be removed, for example: "buffers.pl,iset.pl"` +** tipo: stringa +** valori: qualsiasi stringa (valore predefinito: `""`) + +* [[option_script.scripts.url]] *script.scripts.url* +** descrizione: `URL for file with list of scripts` +** tipo: stringa +** valori: qualsiasi stringa (valore predefinito: `"http://www.weechat.org/files/plugins.xml.gz"`) + diff --git a/doc/it/weechat_quickstart.it.txt b/doc/it/weechat_quickstart.it.txt index abbf4e863..ee77785f4 100644 --- a/doc/it/weechat_quickstart.it.txt +++ b/doc/it/weechat_quickstart.it.txt @@ -236,21 +236,12 @@ I plugin vengono caricati automaticamente quando trovati (per favore consultare la documentazione per caricare/scaricare plugin o script). -Alcuni plugin consentono di usare gli script in WeeChat (in molti linguaggi -come Perl, Python, Ruby, Lua e Tcl). Questi plugin devono essere -caricati con il comando `/plugin` e forniscono comandi come `/perl`, -utilizzati per caricare gli script. +Sono disponibili molti script esterni (dai contributori) per WeeChat: +http://www.weechat.org/scripts -Sono disponibili molti plugin/script esterni (dai contributori) per -WeeChat: http://www.weechat.org/scripts - -Il modo più facile per installare gli script è utilizzare 'weeget.py': - -. `mkdir -p ~/.weechat/python/autoload` -. `cd ~/.weechat/python/autoload` -. `wget http://weechat.org/files/scripts/weeget.py` -. caricare lo script: `/python autoload` -. elenco degli script: `/weeget list` (per aiuto: `/help weeget`) +// TRANSLATION MISSING +You can manage scripts in WeeChat with command `/script` (see `/help script` +for more info). [[more_doc]] diff --git a/doc/it/weechat_user.it.txt b/doc/it/weechat_user.it.txt index fda3f7b64..c8782f720 100644 --- a/doc/it/weechat_user.it.txt +++ b/doc/it/weechat_user.it.txt @@ -95,13 +95,14 @@ compilare WeeChat. | cmake | | *sì* | compilazione (ancora possibile con autotools, ma si raccomanda cmake) | libncursesw5-dev ^(2)^ | | *sì* | interfaccia ncurses | libcurl4-gnutls-dev | | *sì* | trasferimento URL -| gettext | | | internazionalizzazione (traduzione dei messaggi; la lingua base è l'inglese) -| libgcrypt11-dev | | | autenticazione SASL per i server IRC che utilizzano il meccanismo DH-BLOWFISH +// TRANSLATION MISSING +| zlib1g-dev | | *sì* | compression of packets in relay plugin (weechat protocol), script plugin +// TRANSLATION MISSING +| libgcrypt11-dev | | *sì* | autenticazione SASL per i server IRC che utilizzano il meccanismo DH-BLOWFISH, script plugin // TRANSLATION MISSING | libgnutls-dev | ≥ 2.2.0 | | connessione SSL al server IRC, support of SSL in relay plugin +| gettext | | | internazionalizzazione (traduzione dei messaggi; la lingua base è l'inglese) | ca-certificates | | | certificati per le connessioni SSL -// TRANSLATION MISSING -| zlib1g-dev | | | compression of packets in relay plugin (weechat protocol) | libaspell-dev | | | plugin aspell | python-dev | ≥ 2.5 ^(3)^ | | plugin python | libperl-dev | | | plugin perl @@ -785,29 +786,32 @@ Tasti per il contesto "mouse" Questi tasti sono usati nel contesto "mouse", ovvero quando si verifica un evento del mouse. +// TRANSLATION MISSING [width="100%",cols="^.^3,^.^3,^.^3,.^10,.^8l",options="header"] |======================================== -| Tasto | Azione | Zona | Descrizione | Comando -| ◾◽◽ | - | chat | Passa alla finestra | /window ${_window_number} -| ◾◽◽ | sinistra | chat | Passa al buffer precedente | /window ${_window_number};/buffer +1 -| ◾◽◽ | destra | chat | Passa al buffer successivo | /window ${_window_number};/buffer +1 -| ◾◽◽ | sinistra (lungo) | chat | Switch to first buffer | /window ${_window_number};/buffer 1 -| ◾◽◽ | destra (lungo) | chat | Passa all'ultimo buffer | /window ${_window_number};/input jump_last_buffer -| rotella ⇑ | - | chat | Scorre di qualche riga in alto nella cronologia del buffer | /window scroll_up -window ${_window_number} -| rotella ⇓ | - | chat | Scorre di qualche riga in basso nella cronologia del buffer | /window scroll_down -window ${_window_number} -| ◾◽◽ | su | lista nick | Scorre di una pagina in alto nella lista nick | /bar scroll nicklist ${_window_number} -100% -| ◾◽◽ | giù | lista nick | Scorre di una pagina in basso nella lista nick | /bar scroll nicklist ${_window_number} +100% -| ◾◽◽ | up (lungo) | lista nick | Sposta all'inizio della lista nick | /bar scroll nicklist ${_window_number} b -| ◾◽◽ | giù (lungo) | lista nick | Sposta alla fine della lista nick | /bar scroll nicklist ${_window_number} e -| ◾◽◽ | - | lista nick | Apre una query con un nick | /window ${_window_number};/query ${nick} -| ◽◽◾ | - | lista nick | Effettua un whois su un nick | /window ${_window_number};/whois ${nick} -| ◾◽◽ | sinistra | lista nick | Kick di un nick | /window ${_window_number};/kick ${nick} -| ◾◽◽ | sinistra (lungo) | lista nick | Kick e ban di un nick | /window ${_window_number};/kickban ${nick} -| ◽◽◾ | sinistra | lista nick | Ban di un nick | /window ${_window_number};/ban ${nick} -| ◽◽◾ | - | input | Cattura un evento del mouse e inserisce il codice nella riga di comando | /input grab_mouse_area -| rotella ⇑ | - | ogni barra | Scorre la barra del -10% | /bar scroll ${_bar_name} ${_window_number} -20% -| rotella ⇓ | - | ogni barra | Scorre la barra del +10% | /bar scroll ${_bar_name} ${_window_number} +20% -| ◽◾◽ | - | ovunque | Avvia la modalità cursore in questo punto | /cursor go ${_x},${_y} +| Tasto | Azione | Zona | Descrizione | Comando +| ◾◽◽ | - | chat | Passa alla finestra | /window ${_window_number} +| ◾◽◽ | sinistra | chat | Passa al buffer precedente | /window ${_window_number};/buffer +1 +| ◾◽◽ | destra | chat | Passa al buffer successivo | /window ${_window_number};/buffer +1 +| ◾◽◽ | sinistra (lungo) | chat | Switch to first buffer | /window ${_window_number};/buffer 1 +| ◾◽◽ | destra (lungo) | chat | Passa all'ultimo buffer | /window ${_window_number};/input jump_last_buffer +| rotella ⇑ | - | chat | Scorre di qualche riga in alto nella cronologia del buffer | /window scroll_up -window ${_window_number} +| rotella ⇓ | - | chat | Scorre di qualche riga in basso nella cronologia del buffer | /window scroll_down -window ${_window_number} +| rotella ⇑ | - | chat (script buffer) | Move 5 lines up in script buffer | /script up 5 +| rotella ⇓ | - | chat (script buffer) | Move 5 lines down in script buffer | /script down 5 +| ◾◽◽ | su | lista nick | Scorre di una pagina in alto nella lista nick | /bar scroll nicklist ${_window_number} -100% +| ◾◽◽ | giù | lista nick | Scorre di una pagina in basso nella lista nick | /bar scroll nicklist ${_window_number} +100% +| ◾◽◽ | up (lungo) | lista nick | Sposta all'inizio della lista nick | /bar scroll nicklist ${_window_number} b +| ◾◽◽ | giù (lungo) | lista nick | Sposta alla fine della lista nick | /bar scroll nicklist ${_window_number} e +| ◾◽◽ | - | lista nick | Apre una query con un nick | /window ${_window_number};/query ${nick} +| ◽◽◾ | - | lista nick | Effettua un whois su un nick | /window ${_window_number};/whois ${nick} +| ◾◽◽ | sinistra | lista nick | Kick di un nick | /window ${_window_number};/kick ${nick} +| ◾◽◽ | sinistra (lungo) | lista nick | Kick e ban di un nick | /window ${_window_number};/kickban ${nick} +| ◽◽◾ | sinistra | lista nick | Ban di un nick | /window ${_window_number};/ban ${nick} +| ◽◽◾ | - | input | Cattura un evento del mouse e inserisce il codice nella riga di comando | /input grab_mouse_area +| rotella ⇑ | - | ogni barra | Scorre la barra del -10% | /bar scroll ${_bar_name} ${_window_number} -20% +| rotella ⇓ | - | ogni barra | Scorre la barra del +10% | /bar scroll ${_bar_name} ${_window_number} +20% +| ◽◾◽ | - | ovunque | Avvia la modalità cursore in questo punto | /cursor go ${_x},${_y} |======================================== [[mouse]] @@ -2210,10 +2214,26 @@ WeeChat fornisce 6 plugin per lo scripting: Python, Perl, Ruby, Lua, Tcl, Guile Questi plugin possono caricare, eseguire e scaricare gli script per questi linguaggi. +// TRANSLATION MISSING +Another plugin called "script" is a scripts manager and is used to load/unload +scripts of any language, and install/remove scripts of WeeChat scripts +repository, which are visible at this URL: http://www.weechat.org/scripts + Per maggiori informazioni su come scrivere gli script, o le API WeeChat per gli script, consultare la 'Guida allo Scripting di WeeChat'. -È possibile trovare alcuni script qui: http://www.weechat.org/scripts +// TRANSLATION MISSING +[[script_options]] +Script options (script.conf) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +include::autogen/user/script_options.txt[] + +[[script_commands]] +Comandi Script +^^^^^^^^^^^^^^ + +include::autogen/user/script_commands.txt[] [[python_commands]] Comandi Python diff --git a/doc/ja/autogen/plugin_api/completions.txt b/doc/ja/autogen/plugin_api/completions.txt index 267dd785a..a0154064f 100644 --- a/doc/ja/autogen/plugin_api/completions.txt +++ b/doc/ja/autogen/plugin_api/completions.txt @@ -56,6 +56,12 @@ | ruby | ruby_script | スクリプトのリスト +| script | script_files | files in script directories + +| script | script_scripts | list of scripts in repository + +| script | script_scripts_installed | list of scripts installed (from repository) + | tcl | tcl_script | スクリプトのリスト | weechat | bars_names | バーの名前 diff --git a/doc/ja/autogen/plugin_api/hdata.txt b/doc/ja/autogen/plugin_api/hdata.txt index 94230a7c9..1920d25ef 100644 --- a/doc/ja/autogen/plugin_api/hdata.txt +++ b/doc/ja/autogen/plugin_api/hdata.txt @@ -257,6 +257,33 @@ 'last_script' + 'scripts' +| script | script_script | scripts from repository | + 'name' (string) + + 'name_with_extension' (string) + + 'language' (integer) + + 'author' (string) + + 'mail' (string) + + 'version' (string) + + 'license' (string) + + 'description' (string) + + 'tags' (string) + + 'requirements' (string) + + 'min_weechat' (string) + + 'max_weechat' (string) + + 'md5sum' (string) + + 'url' (string) + + 'popularity' (integer) + + 'date_added' (time) + + 'date_updated' (time) + + 'status' (integer) + + 'version_loaded' (string) + + 'displayed' (integer) + + 'install_order' (integer) + + 'prev_script' (pointer, hdata: 'script_script') + + 'next_script' (pointer, hdata: 'script_script') | + 'last_repo_script' + + 'repo_scripts' + | tcl | tcl_script | スクリプトのリスト | 'filename' (string) + 'interpreter' (pointer) + diff --git a/doc/ja/autogen/plugin_api/infolists.txt b/doc/ja/autogen/plugin_api/infolists.txt index 0130ea948..182c79e9a 100644 --- a/doc/ja/autogen/plugin_api/infolists.txt +++ b/doc/ja/autogen/plugin_api/infolists.txt @@ -30,6 +30,8 @@ | ruby | ruby_script | スクリプトのリスト | スクリプトポインタ (オプション) | スクリプト名 (ワイルドカードとして "*" で始めるか終われる) (オプション) +| script | script_script | スクリプトのリスト | スクリプトポインタ (オプション) | script name with extension (can start or end with "*" as wildcard) (optional) + | tcl | tcl_script | スクリプトのリスト | スクリプトポインタ (オプション) | スクリプト名 (ワイルドカードとして "*" で始めるか終われる) (オプション) | weechat | bar | バーのリスト | バーポインタ (オプション) | バー名 (ワイルドカードとして "*" で始めるか終われる) (オプション) diff --git a/doc/ja/autogen/user/script_commands.txt b/doc/ja/autogen/user/script_commands.txt new file mode 100644 index 000000000..ab430e4bd --- /dev/null +++ b/doc/ja/autogen/user/script_commands.txt @@ -0,0 +1,47 @@ +[[command_script_script]] +[command]*`script`* WeeChat scripts manager:: +........................................ +/script list + show <script> + load|unload <script> [<script>...] + install|remove|hold <script> [<script>...] + upgrade + update + + list: list loaded scripts (all languages) + show: show detailed info about a script + load: load script(s) + unload: unload script(s) + install: install/upgrade script(s) + remove: remove script(s) + hold: hold/unhold script(s) (a script held will not be upgraded any more and cannot be removed) + upgrade: upgrade all installed scripts which are obsolete (new version available) + update: update local scripts cache + +Without argument, this command opens a buffer with list of scripts. + +On script buffer, the possible status for each script are: + * i H r N + | | | | | + | | | | obsolete (new version available) + | | | running (loaded) + | | held + | installed + popular script + +Keys on script buffer: + alt+i install script + alt+r remove script + alt+l load script + alt+u unload script + alt+h (un)hold script + +Input allowed on script buffer: + q close buffer + r refresh buffer + s:x,y sort buffer using keys x and y (see /help script.look.sort) + s: reset sort (use default sort) + word(s) filter scripts: search word(s) in scripts (description, tags, ...) + * remove filter +........................................ + diff --git a/doc/ja/autogen/user/script_options.txt b/doc/ja/autogen/user/script_options.txt new file mode 100644 index 000000000..33804e1cf --- /dev/null +++ b/doc/ja/autogen/user/script_options.txt @@ -0,0 +1,155 @@ +* [[option_script.color.status_held]] *script.color.status_held* +** 説明: `color for status "held" ("H")` +** タイプ: 色 +** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、下線は "_"。 (デフォルト値: `white`) + +* [[option_script.color.status_installed]] *script.color.status_installed* +** 説明: `color for status "installed" ("i")` +** タイプ: 色 +** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、下線は "_"。 (デフォルト値: `lightcyan`) + +* [[option_script.color.status_obsolete]] *script.color.status_obsolete* +** 説明: `color for status "obsolete" ("N")` +** タイプ: 色 +** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、下線は "_"。 (デフォルト値: `lightmagenta`) + +* [[option_script.color.status_popular]] *script.color.status_popular* +** 説明: `color for status "popular" ("*")` +** タイプ: 色 +** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、下線は "_"。 (デフォルト値: `yellow`) + +* [[option_script.color.status_running]] *script.color.status_running* +** 説明: `color for status "running" ("r")` +** タイプ: 色 +** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、下線は "_"。 (デフォルト値: `lightgreen`) + +* [[option_script.color.status_unknown]] *script.color.status_unknown* +** 説明: `color for status "unknown" ("?")` +** タイプ: 色 +** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、下線は "_"。 (デフォルト値: `lightred`) + +* [[option_script.color.text]] *script.color.text* +** 説明: `text color in script buffer` +** タイプ: 色 +** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、下線は "_"。 (デフォルト値: `default`) + +* [[option_script.color.text_bg]] *script.color.text_bg* +** 説明: `background color in script buffer` +** タイプ: 色 +** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、下線は "_"。 (デフォルト値: `default`) + +* [[option_script.color.text_bg_selected]] *script.color.text_bg_selected* +** 説明: `background color for selected line in script buffer` +** タイプ: 色 +** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、下線は "_"。 (デフォルト値: `red`) + +* [[option_script.color.text_date]] *script.color.text_date* +** 説明: `text color of dates in script buffer` +** タイプ: 色 +** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、下線は "_"。 (デフォルト値: `default`) + +* [[option_script.color.text_date_selected]] *script.color.text_date_selected* +** 説明: `text color of dates for selected line in script buffer` +** タイプ: 色 +** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、下線は "_"。 (デフォルト値: `white`) + +* [[option_script.color.text_delimiters]] *script.color.text_delimiters* +** 説明: `text color of delimiters in script buffer` +** タイプ: 色 +** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、下線は "_"。 (デフォルト値: `darkgray`) + +* [[option_script.color.text_description]] *script.color.text_description* +** 説明: `text color of description in script buffer` +** タイプ: 色 +** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、下線は "_"。 (デフォルト値: `default`) + +* [[option_script.color.text_description_selected]] *script.color.text_description_selected* +** 説明: `text color of description for selected line in script buffer` +** タイプ: 色 +** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、下線は "_"。 (デフォルト値: `white`) + +* [[option_script.color.text_extension]] *script.color.text_extension* +** 説明: `text color of extension in script buffer` +** タイプ: 色 +** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、下線は "_"。 (デフォルト値: `default`) + +* [[option_script.color.text_extension_selected]] *script.color.text_extension_selected* +** 説明: `text color of extension for selected line in script buffer` +** タイプ: 色 +** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、下線は "_"。 (デフォルト値: `white`) + +* [[option_script.color.text_name]] *script.color.text_name* +** 説明: `text color of script name in script buffer` +** タイプ: 色 +** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、下線は "_"。 (デフォルト値: `cyan`) + +* [[option_script.color.text_name_selected]] *script.color.text_name_selected* +** 説明: `text color of script name for selected line in script buffer` +** タイプ: 色 +** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、下線は "_"。 (デフォルト値: `lightcyan`) + +* [[option_script.color.text_selected]] *script.color.text_selected* +** 説明: `text color for selected line in script buffer` +** タイプ: 色 +** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、下線は "_"。 (デフォルト値: `white`) + +* [[option_script.color.text_tags]] *script.color.text_tags* +** 説明: `text color of tags in script buffer` +** タイプ: 色 +** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、下線は "_"。 (デフォルト値: `brown`) + +* [[option_script.color.text_tags_selected]] *script.color.text_tags_selected* +** 説明: `text color of tags for selected line in script buffer` +** タイプ: 色 +** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、下線は "_"。 (デフォルト値: `yellow`) + +* [[option_script.color.text_version]] *script.color.text_version* +** 説明: `text color of version in script buffer` +** タイプ: 色 +** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、下線は "_"。 (デフォルト値: `magenta`) + +* [[option_script.color.text_version_loaded]] *script.color.text_version_loaded* +** 説明: `text color of version loaded in script buffer` +** タイプ: 色 +** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、下線は "_"。 (デフォルト値: `default`) + +* [[option_script.color.text_version_loaded_selected]] *script.color.text_version_loaded_selected* +** 説明: `text color of version loaded for selected line in script buffer` +** タイプ: 色 +** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、下線は "_"。 (デフォルト値: `white`) + +* [[option_script.color.text_version_selected]] *script.color.text_version_selected* +** 説明: `text color of version for selected line in script buffer` +** タイプ: 色 +** 値: WeeChat の色名 (default、black、(dark)gray、white、(light)red、(light)green、brown、yellow、(light)blue、(light)magenta、(light)cyan) 、ターミナル色番号またはその別名; 色の前に属性を置くことができます (テキスト前景色のみ、背景色は出来ません): 太字は "*"、反転は "!"、下線は "_"。 (デフォルト値: `lightmagenta`) + +* [[option_script.look.columns]] *script.look.columns* +** 説明: `format of columns displayed in script buffer: following column identifiers are replaced by their value: %a=author, %d=description, %D=date added, %e=extension, %l=language, %L=license, %n=name with extension, %N=name, %r=requirements, %s=status, %t=tags, %u=date updated, %v=version, %V=version loaded, %w=min_weechat, %W=max_weechat)` +** タイプ: 文字列 +** 値: 未制約文字列 (デフォルト値: `"%s %n %V %v %u | %d | %t"`) + +* [[option_script.look.sort]] *script.look.sort* +** 説明: `default sort keys for scripts: comma-separated list of identifiers: a=author, d=date added, e=extension, i=installed, l=language, n=name, o=obsolete, p=popularity, r=running, u=date updated; char "-" can be used before identifier to reverse order; example: "i,u": installed scripts first, sorted by update date` +** タイプ: 文字列 +** 値: 未制約文字列 (デフォルト値: `"p,n"`) + +* [[option_script.scripts.cache_expire]] *script.scripts.cache_expire* +** 説明: `local cache expiration time, in minutes (-1 = never expires, 0 = always expire)` +** タイプ: 整数 +** 値: -1 .. 525600 (デフォルト値: `60`) + +* [[option_script.scripts.dir]] *script.scripts.dir* +** 説明: `local cache directory for scripts` +** タイプ: 文字列 +** 値: 未制約文字列 (デフォルト値: `"%h/script"`) + +* [[option_script.scripts.hold]] *script.scripts.hold* +** 説明: `scripts to "hold": comma-separated list of scripts which will never been upgraded and can not be removed, for example: "buffers.pl,iset.pl"` +** タイプ: 文字列 +** 値: 未制約文字列 (デフォルト値: `""`) + +* [[option_script.scripts.url]] *script.scripts.url* +** 説明: `URL for file with list of scripts` +** タイプ: 文字列 +** 値: 未制約文字列 (デフォルト値: `"http://www.weechat.org/files/plugins.xml.gz"`) + diff --git a/doc/ja/weechat_quickstart.ja.txt b/doc/ja/weechat_quickstart.ja.txt index 1e7988112..d0c14cbe2 100644 --- a/doc/ja/weechat_quickstart.ja.txt +++ b/doc/ja/weechat_quickstart.ja.txt @@ -218,20 +218,13 @@ Debianのようにいくつかのディストリビューションでは、プ 見つかったプラグインは自動的に読み込まれます(プラグイン/スクリプトの読み込み 有効/無効はWeeChatのドキュメントを参照してください)。 -いくつかのプラグインによって、WeeChatでスクリプト(Perl、Python、Ruby、Lua、Tclなど多くの -言語)を使うことができるようになります。これらのプラグインは `/plugin` -コマンドで読み込む必要があり、 `/perl` のようなコマンドが提供されます。 +// TRANSLATION MISSING +Many external scripts (from contributors) are available for WeeChat: +http://www.weechat.org/scripts -WeeChatには(ユーザから提供された)多くの外部プラグイン/スクリプトが用意 -されています: http://www.weechat.org/scripts - -スクリプト 'weeget.py' をインストールする簡単な方法: - -. `mkdir -p ~/.weechat/python/autoload` -. `cd ~/.weechat/python/autoload` -. `wget http://weechat.org/files/scripts/weeget.py` -. スクリプトを読み込む: `/python autoload` -. 一覧機能を使う: `/weeget list` (ヘルプ: `/help weeget`) +// TRANSLATION MISSING +You can manage scripts in WeeChat with command `/script` (see `/help script` +for more info). [[more_doc]] diff --git a/doc/ja/weechat_user.ja.txt b/doc/ja/weechat_user.ja.txt index fe694a4d4..368dada67 100644 --- a/doc/ja/weechat_user.ja.txt +++ b/doc/ja/weechat_user.ja.txt @@ -83,11 +83,13 @@ WeeChat は cmake または autotools を使ってコンパイルできます (c | cmake | | *yes* | ビルド (autotools でも可能ですが、cmake を推奨します) | libncursesw5-dev ^(2)^ | | *yes* | ncurses インターフェイス | libcurl4-gnutls-dev | | *yes* | URL 転送 -| gettext | | | 国際化 (メッセージの翻訳; ベース言語は英語です) -| libgcrypt11-dev | | | DH-BLOWFISH メカニズムを用いた IRC サーバ用の SASL 認証 +// TRANSLATION MISSING +| zlib1g-dev | | *yes* | relay プラグインでパケットを圧縮 (weechat プロトコル), script plugin +// TRANSLATION MISSING +| libgcrypt11-dev | | *yes* | DH-BLOWFISH メカニズムを用いた IRC サーバ用の SASL 認証, script plugin | libgnutls-dev | ≥ 2.2.0 | | IRC サーバへの SSL 接続 +| gettext | | | 国際化 (メッセージの翻訳; ベース言語は英語です) | ca-certificates | | | SSL 接続に必要な証明書、relay プラグインで SSL サポート -| zlib1g-dev | | | relay プラグインでパケットを圧縮 (weechat プロトコル) | libaspell-dev | | | aspell プラグイン | python-dev | ≥ 2.5 ^(3)^ | | python プラグイン | libperl-dev | | | perl プラグイン @@ -741,29 +743,32 @@ irc サーバ "freenode" に含まれる全てのバッファに対して設定 以下のキーは "マウス" モード (マウスイベントが発生したとき) でのみ有効です。 +// TRANSLATION MISSING [width="100%",cols="^.^3,^.^3,^.^3,.^10,.^8l",options="header"] |======================================== -| ボタン | ジェスチャー | エリア | 説明 | コマンド -| ◾◽◽ | - | チャット | ウィンドウに移動 | /window ${_window_number} -| ◾◽◽ | 左 | チャット | 前のバッファに移動 | /window ${_window_number};/buffer +1 -| ◾◽◽ | 右 | チャット | 次のバッファに移動 | /window ${_window_number};/buffer +1 -| ◾◽◽ | 左 (長く) | チャット | 最初のバッファに移動 | /window ${_window_number};/buffer 1 -| ◾◽◽ | 右 (長く) | チャット | 最後のバッファに移動 | /window ${_window_number};/input jump_last_buffer -| ホイール ⇑ | - | チャット | バッファ履歴を上方向にスクロール | /window scroll_up -window ${_window_number} -| ホイール ⇓ | - | チャット | バッファ履歴を下方向にスクロール | /window scroll_down -window ${_window_number} -| ◾◽◽ | 上 | ニックネームリスト | ニックネームリストを 1 ページ分上方向にスクロール | /bar scroll nicklist ${_window_number} -100% -| ◾◽◽ | 下 | ニックネームリスト | ニックネームリストを 1 ページ分下方向にスクロール | /bar scroll nicklist ${_window_number} +100% -| ◾◽◽ | 上 (長く) | ニックネームリスト | ニックネームリストの最初に移動 | /bar scroll nicklist ${_window_number} b -| ◾◽◽ | 下 (長く) | ニックネームリスト | ニックネームリストの最後に移動 | /bar scroll nicklist ${_window_number} e -| ◾◽◽ | - | ニックネームリスト | ニックネームに対するクエリを開く | /window ${_window_number};/query ${nick} -| ◽◽◾ | - | ニックネームリスト | ニックネームに対する whois を行う | /window ${_window_number};/whois ${nick} -| ◾◽◽ | 左 | ニックネームリスト | ニックネームをキックする | /window ${_window_number};/kick ${nick} -| ◾◽◽ | 左 (長く) | ニックネームリスト | ニックネームをキックとバンする | /window ${_window_number};/kickban ${nick} -| ◽◽◾ | 左 | ニックネームリスト | ニックネームをバンする | /window ${_window_number};/ban ${nick} -| ◽◽◾ | - | 入力 | マウスイベントを奪ってコマンドラインにコードを入力 | /input grab_mouse_area -| ホイール ⇑ | - | 任意のバー | バーを -10% スクロール | /bar scroll ${_bar_name} ${_window_number} -20% -| ホイール ⇓ | - | 任意のバー | バーを +10% スクロール | /bar scroll ${_bar_name} ${_window_number} +20% -| ◽◾◽ | - | 任意の場所 | この場所でカーソルモードを開始 | /cursor go ${_x},${_y} +| ボタン | ジェスチャー | エリア | 説明 | コマンド +| ◾◽◽ | - | チャット | ウィンドウに移動 | /window ${_window_number} +| ◾◽◽ | 左 | チャット | 前のバッファに移動 | /window ${_window_number};/buffer +1 +| ◾◽◽ | 右 | チャット | 次のバッファに移動 | /window ${_window_number};/buffer +1 +| ◾◽◽ | 左 (長く) | チャット | 最初のバッファに移動 | /window ${_window_number};/buffer 1 +| ◾◽◽ | 右 (長く) | チャット | 最後のバッファに移動 | /window ${_window_number};/input jump_last_buffer +| ホイール ⇑ | - | チャット | バッファ履歴を上方向にスクロール | /window scroll_up -window ${_window_number} +| ホイール ⇓ | - | チャット | バッファ履歴を下方向にスクロール | /window scroll_down -window ${_window_number} +| ホイール ⇑ | - | chat (script buffer) | Move 5 lines up in script buffer | /script up 5 +| ホイール ⇓ | - | chat (script buffer) | Move 5 lines down in script buffer | /script down 5 +| ◾◽◽ | 上 | ニックネームリスト | ニックネームリストを 1 ページ分上方向にスクロール | /bar scroll nicklist ${_window_number} -100% +| ◾◽◽ | 下 | ニックネームリスト | ニックネームリストを 1 ページ分下方向にスクロール | /bar scroll nicklist ${_window_number} +100% +| ◾◽◽ | 上 (長く) | ニックネームリスト | ニックネームリストの最初に移動 | /bar scroll nicklist ${_window_number} b +| ◾◽◽ | 下 (長く) | ニックネームリスト | ニックネームリストの最後に移動 | /bar scroll nicklist ${_window_number} e +| ◾◽◽ | - | ニックネームリスト | ニックネームに対するクエリを開く | /window ${_window_number};/query ${nick} +| ◽◽◾ | - | ニックネームリスト | ニックネームに対する whois を行う | /window ${_window_number};/whois ${nick} +| ◾◽◽ | 左 | ニックネームリスト | ニックネームをキックする | /window ${_window_number};/kick ${nick} +| ◾◽◽ | 左 (長く) | ニックネームリスト | ニックネームをキックとバンする | /window ${_window_number};/kickban ${nick} +| ◽◽◾ | 左 | ニックネームリスト | ニックネームをバンする | /window ${_window_number};/ban ${nick} +| ◽◽◾ | - | 入力 | マウスイベントを奪ってコマンドラインにコードを入力 | /input grab_mouse_area +| ホイール ⇑ | - | 任意のバー | バーを -10% スクロール | /bar scroll ${_bar_name} ${_window_number} -20% +| ホイール ⇓ | - | 任意のバー | バーを +10% スクロール | /bar scroll ${_bar_name} ${_window_number} +20% +| ◽◾◽ | - | 任意の場所 | この場所でカーソルモードを開始 | /cursor go ${_x},${_y} |======================================== [[mouse]] @@ -2074,10 +2079,25 @@ WeeChat は 6 種類のスクリプトプラグインを備えています: Pyth (scheme)。 これらのプラグインでそれぞれの言語で書かれたスクリプトのロード、実行、アンロードができます。 +// TRANSLATION MISSING +Another plugin called "script" is a scripts manager and is used to load/unload +scripts of any language, and install/remove scripts of WeeChat scripts +repository, which are visible at this URL: http://www.weechat.org/scripts + スクリプトの書き方やスクリプト用の WeeChat API についての詳しい情報は、 'WeeChat スクリプト製作ガイド' を参照してください。 -WeeChat 用のスクリプトは以下のページから入手できます: http://www.weechat.org/scripts +// TRANSLATION MISSING +[[script_options]] +Script options (script.conf) +^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +include::autogen/user/script_options.txt[] + +[[script_commands]] +==== Script コマンド ==== + +include::autogen/user/script_commands.txt[] [[python_commands]] ==== Python コマンド ==== diff --git a/doc/pl/weechat_quickstart.pl.txt b/doc/pl/weechat_quickstart.pl.txt index b9dd630dd..9c853d599 100644 --- a/doc/pl/weechat_quickstart.pl.txt +++ b/doc/pl/weechat_quickstart.pl.txt @@ -222,20 +222,12 @@ Wtyczki są automatycznie ładowane, kiedy zostaną wykryte (proszę spojrzeć d dokumentacji WeeChat, aby się dowiedzieć jak ładować/wyładowywać wtyczki lub skrypty). -Niektóre wtyczki pozwalają na używanie skryptów w WeeChat (w wielu językach jak Perl, -Python, Ruby, Lua oraz Tcl). Te wtyczki muszą być załadowane za pomocą komendy -`/plugin`, dostarczają one komendy jak `/perl`, używane do ładowania skryptów. +Wiele zewnętrznych skryptów (od społeczności) jest dostępnych dla WeeChat: +http://www.weechat.org/scripts -Wiele zewnętrznych wtyczek/skryptów (od społeczności) jest dostępnych dla -WeeChat: http://www.weechat.org/scripts - -Najprostszym sposobem na instalowanie skryptów jest użycie skryptu 'weeget.py': - -. `mkdir -p ~/.weechat/python/autoload` -. `cd ~/.weechat/python/autoload` -. `wget http://weechat.org/files/scripts/weeget.py` -. załaduj skrypt: `/python autoload` -. lista skryptów: `/weeget list` (dla pomocy: `/help weeget`) +// TRANSLATION MISSING +You can manage scripts in WeeChat with command `/script` (see `/help script` +for more info). [[more_doc]] diff --git a/doc/ru/weechat_quickstart.ru.txt b/doc/ru/weechat_quickstart.ru.txt index 7ff0e24f0..ffef4ca76 100644 --- a/doc/ru/weechat_quickstart.ru.txt +++ b/doc/ru/weechat_quickstart.ru.txt @@ -221,20 +221,12 @@ WeeChat использует стандартные значения для вс Плагины автоматические загружаются если они найдены (пожалуйста, посмотрите документацию о load/unload плагинов или скиптов) -Некоторые плагины, позволяют использовать скрипты на других языках -(Perl, Python, Lua, Ruby, Tcl). Эти плагины должны быть загружены командой -`/plugin`. Они добавляют такие команды как `/perl` для загрузки скриптов. +Много пользовательских плагинов доступно для WeeChat: +http://www.weechat.org/scripts -Много пользовательских скриптов/плагинов доступно для -WeeChat: http://www.weechat.org/scripts - -Простейший путь для установки скриптов - исползовать скрипт 'weeget.py': - -. `mkdir -p ~/.weechat/python/autoload` -. `cd ~/.weechat/python/autoload` -. `wget http://weechat.org/files/scripts/weeget.py` -. подгрузить скрипт в Weechat: `/python autoload` -. скачайте список скриптов: `/weeget list` (for help: `/help weeget`) +// TRANSLATION MISSING +You can manage scripts in WeeChat with command `/script` (see `/help script` +for more info). [[more_doc]] diff --git a/po/POTFILES.in b/po/POTFILES.in index 683b5e77d..98bb99d93 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -111,6 +111,10 @@ ./src/plugins/fifo/fifo.h ./src/plugins/fifo/fifo-info.c ./src/plugins/fifo/fifo-info.h +./src/plugins/guile/weechat-guile-api.c +./src/plugins/guile/weechat-guile-api.h +./src/plugins/guile/weechat-guile.c +./src/plugins/guile/weechat-guile.h ./src/plugins/irc/irc-bar-item.c ./src/plugins/irc/irc-bar-item.h ./src/plugins/irc/irc-buffer.c @@ -169,6 +173,10 @@ ./src/plugins/logger/logger-info.h ./src/plugins/logger/logger-tail.c ./src/plugins/logger/logger-tail.h +./src/plugins/lua/weechat-lua-api.c +./src/plugins/lua/weechat-lua-api.h +./src/plugins/lua/weechat-lua.c +./src/plugins/lua/weechat-lua.h ./src/plugins/plugin-api.c ./src/plugins/plugin-api.h ./src/plugins/plugin.c @@ -217,18 +225,16 @@ ./src/plugins/rmodifier/rmodifier.h ./src/plugins/rmodifier/rmodifier-info.c ./src/plugins/rmodifier/rmodifier-info.h -./src/plugins/guile/weechat-guile-api.c -./src/plugins/guile/weechat-guile-api.h -./src/plugins/guile/weechat-guile.c -./src/plugins/guile/weechat-guile.h -./src/plugins/lua/weechat-lua-api.c -./src/plugins/lua/weechat-lua-api.h -./src/plugins/lua/weechat-lua.c -./src/plugins/lua/weechat-lua.h ./src/plugins/perl/weechat-perl-api.c ./src/plugins/perl/weechat-perl-api.h ./src/plugins/perl/weechat-perl.c ./src/plugins/perl/weechat-perl.h +./src/plugins/plugin-script.c +./src/plugins/plugin-script.h +./src/plugins/plugin-script-api.c +./src/plugins/plugin-script-api.h +./src/plugins/plugin-script-callback.c +./src/plugins/plugin-script-callback.h ./src/plugins/python/weechat-python-api.c ./src/plugins/python/weechat-python-api.h ./src/plugins/python/weechat-python.c @@ -237,12 +243,22 @@ ./src/plugins/ruby/weechat-ruby-api.h ./src/plugins/ruby/weechat-ruby.c ./src/plugins/ruby/weechat-ruby.h -./src/plugins/plugin-script-api.c -./src/plugins/plugin-script-api.h -./src/plugins/plugin-script.c -./src/plugins/plugin-script-callback.c -./src/plugins/plugin-script-callback.h -./src/plugins/plugin-script.h +./src/plugins/script/script.c +./src/plugins/script/script.h +./src/plugins/script/script-action.c +./src/plugins/script/script-action.h +./src/plugins/script/script-buffer.c +./src/plugins/script/script-buffer.h +./src/plugins/script/script-command.c +./src/plugins/script/script-command.h +./src/plugins/script/script-completion.c +./src/plugins/script/script-completion.h +./src/plugins/script/script-config.c +./src/plugins/script/script-config.h +./src/plugins/script/script-info.c +./src/plugins/script/script-info.h +./src/plugins/script/script-repo.c +./src/plugins/script/script-repo.h ./src/plugins/tcl/weechat-tcl-api.c ./src/plugins/tcl/weechat-tcl-api.h ./src/plugins/tcl/weechat-tcl.c @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.9-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2012-08-02 22:48+0200\n" +"POT-Creation-Date: 2012-08-14 18:26+0200\n" "PO-Revision-Date: 2012-06-03 09:49+0200\n" "Last-Translator: Jiri Golembiovsky <golemj@gmail.com>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -6299,14 +6299,6 @@ msgid "%s%s: client capability, enabled: %s" msgstr "%s%s: schopnost klienta, povoleno: %s" #, c-format -msgid "" -"%s%s: cannot authenticate with SASL and mechanism DH-BLOWFISH because " -"WeeChat was not built with libgcrypt support" -msgstr "" -"%s%s: nemohu se autentizovat pomocí SASL a mechanismu DH-BLOWFISH, protže " -"WeeChat nebyl sestaven s podporou libcrypt" - -#, c-format msgid "%s%s: client capability, refused: %s" msgstr "%s%s: vlastnost klienta, odepřena: %s" @@ -8020,65 +8012,6 @@ msgstr "%s%s: neznámá chyba při načítání souboru \"%s\"" msgid "%s%s: unable to initialize %s" msgstr "%s%s: nemohu inicializovat %s" -#, fuzzy -msgid "Support of python scripts" -msgstr "seznam skriptů" - -#, c-format -msgid "%s%s: unable to initialize WeeChat module" -msgstr "%s%s: nemohu inicialiyovat modul WeeChat" - -#, c-format -msgid "%s%s: unable to redirect stdout" -msgstr "%s%s: nemůžu přesměrovat stdout" - -#, c-format -msgid "%s%s: unable to redirect stderr" -msgstr "%s%s: nemohu přesměrovat stderr" - -msgid "path to python 2.x interpreter" -msgstr "cesta k interpretru python 2.x" - -#, c-format -msgid "%s%s: unable to launch global interpreter" -msgstr "%s%s: nemohu spustit globální interpreter" - -#, c-format -msgid "%s%s: unable to get current interpreter state" -msgstr "%s%s: nemohu získat aktuální status interpretru" - -#, c-format -msgid "%s%s: unable to free interpreter" -msgstr "%s%s: nemohu uvolnit interpreter" - -#, fuzzy -msgid "Support of ruby scripts" -msgstr "seznam skriptů" - -#, c-format -msgid "%s%s: stdout/stderr: %s%s" -msgstr "%s%s: stdout/stderr: %s%s" - -#, c-format -msgid "%s%s: unable to read file \"%s\"" -msgstr "%s%s: nemůžu číst soubor \"%s\"" - -#, c-format -msgid "%s%s: error while loading file \"%s\"" -msgstr "%s%s: chyba při načítání souboru \"%s\"" - -#, c-format -msgid "%s%s: function \"weechat_init\" is missing in file \"%s\"" -msgstr "%s%s: funkce \"weechat_init\" chybí v souboru \"%s\"" - -#, c-format -msgid "%s%s: unable to eval function \"weechat_init\" in file \"%s\"" -msgstr "%s%s: nemůžu vyhodnotit funkci \"weechat_init\" v souboru \"%s\"" - -#, c-format -msgid "%s%s: unable to eval WeeChat ruby internal code" -msgstr "%s%s: nemohu vyhodnotit interní kód WeeChat ruby" - msgid "list/load/unload scripts" msgstr "seznam/načíst/odebrat skirpty" @@ -8194,6 +8127,408 @@ msgid "%s%s: wrong arguments for function \"%s\" (script: %s)" msgstr "%s%s: špatné parametry pro funkci \"%s\" (skript: %s)" #, fuzzy +msgid "Support of python scripts" +msgstr "seznam skriptů" + +#, c-format +msgid "%s%s: unable to initialize WeeChat module" +msgstr "%s%s: nemohu inicialiyovat modul WeeChat" + +#, c-format +msgid "%s%s: unable to redirect stdout" +msgstr "%s%s: nemůžu přesměrovat stdout" + +#, c-format +msgid "%s%s: unable to redirect stderr" +msgstr "%s%s: nemohu přesměrovat stderr" + +msgid "path to python 2.x interpreter" +msgstr "cesta k interpretru python 2.x" + +#, c-format +msgid "%s%s: unable to launch global interpreter" +msgstr "%s%s: nemohu spustit globální interpreter" + +#, c-format +msgid "%s%s: unable to get current interpreter state" +msgstr "%s%s: nemohu získat aktuální status interpretru" + +#, c-format +msgid "%s%s: unable to free interpreter" +msgstr "%s%s: nemohu uvolnit interpreter" + +#, fuzzy +msgid "Support of ruby scripts" +msgstr "seznam skriptů" + +#, c-format +msgid "%s%s: stdout/stderr: %s%s" +msgstr "%s%s: stdout/stderr: %s%s" + +#, c-format +msgid "%s%s: unable to read file \"%s\"" +msgstr "%s%s: nemůžu číst soubor \"%s\"" + +#, c-format +msgid "%s%s: error while loading file \"%s\"" +msgstr "%s%s: chyba při načítání souboru \"%s\"" + +#, c-format +msgid "%s%s: function \"weechat_init\" is missing in file \"%s\"" +msgstr "%s%s: funkce \"weechat_init\" chybí v souboru \"%s\"" + +#, c-format +msgid "%s%s: unable to eval function \"weechat_init\" in file \"%s\"" +msgstr "%s%s: nemůžu vyhodnotit funkci \"weechat_init\" v souboru \"%s\"" + +#, c-format +msgid "%s%s: unable to eval WeeChat ruby internal code" +msgstr "%s%s: nemohu vyhodnotit interní kód WeeChat ruby" + +msgid "Scripts manager" +msgstr "" + +#, fuzzy +msgid "Scripts loaded:" +msgstr "načteny %s skripty:" + +#, fuzzy, c-format +msgid "%s: unknown language for script \"%s\"" +msgstr "%s: odebírám skript \"%s\"" + +#, fuzzy, c-format +msgid "%s%s: error downloading script \"%s\": %s" +msgstr "%s: odebírám skript \"%s\"" + +#, fuzzy, c-format +msgid "%s: downloading script \"%s\"..." +msgstr "%s: odebírám skript \"%s\"" + +#, fuzzy, c-format +msgid "%s: script \"%s\" is not installed" +msgstr "%s%s: skript \"%s\" nenačten" + +#, fuzzy, c-format +msgid "%s: script \"%s\" is held" +msgstr "%s: skript \"%s\" odebrán" + +#, fuzzy, c-format +msgid "%s: script \"%s\" not found" +msgstr "%s%s: skript \"%s\" nenalezen" + +#, fuzzy, c-format +msgid "%s: script \"%s\" not held any more" +msgstr "%s%s: skript \"%s\" nenačten" + +#, fuzzy, c-format +msgid "%s: script \"%s\" held" +msgstr "%s: skript \"%s\" odebrán" + +#, fuzzy, c-format +msgid "%s: script \"%s\" is already installed and up-to-date" +msgstr "%s%s: server \"%s\" již existuje, nemohu jej vytvořít!" + +#, fuzzy, c-format +msgid "%s: all scripts are up-to-date" +msgstr "%s: skripty odebrány" + +msgid "Script" +msgstr "" + +msgid "Version" +msgstr "" + +msgid "Author" +msgstr "" + +msgid "License" +msgstr "" + +msgid "Description" +msgstr "Popis" + +msgid "Tags" +msgstr "" + +msgid "Status" +msgstr "" + +msgid "Date added" +msgstr "" + +#, fuzzy +msgid "Date updated" +msgstr "Pole \"%s\" zaktualizováno" + +msgid "URL" +msgstr "" + +msgid "MD5" +msgstr "" + +msgid "Requires" +msgstr "" + +#, fuzzy +msgid "Min WeeChat" +msgstr "ukončit WeeChat" + +#, fuzzy +msgid "Max WeeChat" +msgstr "ukončit WeeChat" + +msgid "popular" +msgstr "" + +msgid "installed" +msgstr "" + +msgid "held" +msgstr "" + +msgid "running" +msgstr "" + +msgid "obsolete" +msgstr "" + +#, c-format +msgid "alt+d=back to list" +msgstr "" + +#, c-format +msgid "" +"%d/%d scripts (filter: %s) | Sort: %s | alt+i=install r=remove l=load " +"u=unload h=(un)hold d=show detail | Input: 'q'=close 'r'=refresh 's:x," +"y'=sort 'words'=filter '*'=reset filter" +msgstr "" + +msgid "Scripts" +msgstr "" + +#, fuzzy +msgid "WeeChat scripts manager" +msgstr "stránka WeeChat" + +msgid "" +"list || show <script> || load|unload <script> [<script>...] || install|" +"remove|hold <script> [<script>...] || upgrade || update" +msgstr "" + +msgid "" +" list: list loaded scripts (all languages)\n" +" show: show detailed info about a script\n" +" load: load script(s)\n" +" unload: unload script(s)\n" +" install: install/upgrade script(s)\n" +" remove: remove script(s)\n" +" hold: hold/unhold script(s) (a script held will not be upgraded any more " +"and cannot be removed)\n" +" upgrade: upgrade all installed scripts which are obsolete (new version " +"available)\n" +" update: update local scripts cache\n" +"\n" +"Without argument, this command opens a buffer with list of scripts.\n" +"\n" +"On script buffer, the possible status for each script are:\n" +" * i H r N\n" +" | | | | |\n" +" | | | | obsolete (new version available)\n" +" | | | running (loaded)\n" +" | | held\n" +" | installed\n" +" popular script\n" +"\n" +"Keys on script buffer:\n" +" alt+i install script\n" +" alt+r remove script\n" +" alt+l load script\n" +" alt+u unload script\n" +" alt+h (un)hold script\n" +"\n" +"Input allowed on script buffer:\n" +" q close buffer\n" +" r refresh buffer\n" +" s:x,y sort buffer using keys x and y (see /help script.look.sort)\n" +" s: reset sort (use default sort)\n" +" word(s) filter scripts: search word(s) in scripts (description, " +"tags, ...)\n" +" * remove filter" +msgstr "" + +#, fuzzy +msgid "list of scripts in repository" +msgstr "seznam skriptů" + +msgid "list of scripts installed (from repository)" +msgstr "" + +msgid "files in script directories" +msgstr "" + +msgid "" +"format of columns displayed in script buffer: following column identifiers " +"are replaced by their value: %a=author, %d=description, %D=date added, " +"%e=extension, %l=language, %L=license, %n=name with extension, %N=name, " +"%r=requirements, %s=status, %t=tags, %u=date updated, %v=version, %V=version " +"loaded, %w=min_weechat, %W=max_weechat)" +msgstr "" + +msgid "" +"default sort keys for scripts: comma-separated list of identifiers: " +"a=author, d=date added, e=extension, i=installed, l=language, n=name, " +"o=obsolete, p=popularity, r=running, u=date updated; char \"-\" can be used " +"before identifier to reverse order; example: \"i,u\": installed scripts " +"first, sorted by update date" +msgstr "" + +#, fuzzy +msgid "color for status \"popular\" (\"*\")" +msgstr "barva textu pro čas (stavový řádek)" + +msgid "color for status \"installed\" (\"i\")" +msgstr "" + +msgid "color for status \"held\" (\"H\")" +msgstr "" + +msgid "color for status \"running\" (\"r\")" +msgstr "" + +msgid "color for status \"obsolete\" (\"N\")" +msgstr "" + +msgid "color for status \"unknown\" (\"?\")" +msgstr "" + +#, fuzzy +msgid "text color in script buffer" +msgstr "barva textu pro jeméno bufferu" + +#, fuzzy +msgid "text color of dates in script buffer" +msgstr "barva textu pro jiné přezdívky v soukromém bufferu" + +#, fuzzy +msgid "text color of delimiters in script buffer" +msgstr "barva textu řádku vybraného klienta" + +#, fuzzy +msgid "text color of description in script buffer" +msgstr "barva textu řádku vybraného klienta" + +#, fuzzy +msgid "text color of extension in script buffer" +msgstr "barva textu řádku vybraného klienta" + +#, fuzzy +msgid "text color of script name in script buffer" +msgstr "barva textu řádku vybraného klienta" + +#, fuzzy +msgid "text color of tags in script buffer" +msgstr "barva textu pro jeméno bufferu" + +#, fuzzy +msgid "text color of version in script buffer" +msgstr "barva textu pro jiné přezdívky v soukromém bufferu" + +#, fuzzy +msgid "text color of version loaded in script buffer" +msgstr "barva textu pro jiné přezdívky v soukromém bufferu" + +#, fuzzy +msgid "background color in script buffer" +msgstr "barva pozadí pro rozhovor" + +#, fuzzy +msgid "text color for selected line in script buffer" +msgstr "barva textu řádku vybraného klienta" + +#, fuzzy +msgid "text color of dates for selected line in script buffer" +msgstr "barva textu řádku vybraného klienta" + +#, fuzzy +msgid "text color of description for selected line in script buffer" +msgstr "barva textu řádku vybraného klienta" + +#, fuzzy +msgid "text color of extension for selected line in script buffer" +msgstr "barva textu řádku vybraného klienta" + +#, fuzzy +msgid "text color of script name for selected line in script buffer" +msgstr "barva textu řádku vybraného klienta" + +#, fuzzy +msgid "text color of tags for selected line in script buffer" +msgstr "barva textu řádku vybraného klienta" + +#, fuzzy +msgid "text color of version for selected line in script buffer" +msgstr "barva textu řádku vybraného klienta" + +#, fuzzy +msgid "text color of version loaded for selected line in script buffer" +msgstr "barva textu řádku vybraného klienta" + +#, fuzzy +msgid "background color for selected line in script buffer" +msgstr "barva textu řádku vybraného klienta" + +msgid "" +"local cache expiration time, in minutes (-1 = never expires, 0 = always " +"expire)" +msgstr "" + +msgid "local cache directory for scripts" +msgstr "" + +msgid "" +"scripts to \"hold\": comma-separated list of scripts which will never been " +"upgraded and can not be removed, for example: \"buffers.pl,iset.pl\"" +msgstr "" + +#, fuzzy +msgid "URL for file with list of scripts" +msgstr "seznam skriptů" + +#, fuzzy +msgid "" +"script name with extension (can start or end with \"*\" as wildcard) " +"(optional)" +msgstr "" +"jméno skriptu (může začínat nebo končit \"*\" jako zástupným znakem) " +"(volitelné)" + +#, fuzzy +msgid "scripts from repository" +msgstr "seznam skriptů" + +#, fuzzy, c-format +msgid "%s%s: error reading list of scripts" +msgstr "%s%s: chyba při zasílání dat na klienta: %s" + +#, fuzzy, c-format +msgid "%s: %d scripts for WeeChat %s" +msgstr "%s: skript odebrána: %s" + +#, c-format +msgid "" +"%s%s: list of scripts is empty (repository file is broken, or download has " +"failed)" +msgstr "" + +#, fuzzy, c-format +msgid "%s%s: error downloading list of scripts: %s" +msgstr "%s%s: chyba při zasílání dat na klienta: %s" + +#, fuzzy, c-format +msgid "%s: downloading list of scripts..." +msgstr "%s: odebírám skript \"%s\"" + +#, fuzzy msgid "Support of tcl scripts" msgstr "seznam skriptů" @@ -8582,9 +8917,6 @@ msgstr "Plugin" msgid "Name" msgstr "Jméno" -msgid "Description" -msgstr "Popis" - msgid "Arguments" msgstr "Argumenty" @@ -8614,6 +8946,17 @@ msgid "Constants" msgstr "" #, fuzzy +#~ msgid "%s: downloading \"%s\"..." +#~ msgstr "%s: odebírám skript \"%s\"" + +#~ msgid "" +#~ "%s%s: cannot authenticate with SASL and mechanism DH-BLOWFISH because " +#~ "WeeChat was not built with libgcrypt support" +#~ msgstr "" +#~ "%s%s: nemohu se autentizovat pomocí SASL a mechanismu DH-BLOWFISH, protže " +#~ "WeeChat nebyl sestaven s podporou libcrypt" + +#, fuzzy #~ msgid "Regex modifier" #~ msgstr "Výchozí rmodifikátory:" @@ -8646,9 +8989,6 @@ msgstr "" #~ msgid "%s%s: sending data to client error %d: %d %s" #~ msgstr "%s%s: chyba při zasílání dat na klienta %s" -#~ msgid "%s%s: error sending data to client: %s" -#~ msgstr "%s%s: chyba při zasílání dat na klienta: %s" - #~ msgid "display channel modes in \"buffer_name\" bar item" #~ msgstr "zobrazit módy kanálu v položce pole \"buffer_name\"" @@ -23,7 +23,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.7-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2012-08-03 10:02+0200\n" +"POT-Creation-Date: 2012-08-14 18:26+0200\n" "PO-Revision-Date: 2012-08-03 09:46+0100\n" "Last-Translator: Nils Görs <weechatter@arcor.de>\n" "Language-Team: German <weechatter@arcor.de>\n" @@ -6827,14 +6827,6 @@ msgid "%s%s: client capability, enabled: %s" msgstr "%s%s: Client Fähigkeit, aktiviert: %s" #, c-format -msgid "" -"%s%s: cannot authenticate with SASL and mechanism DH-BLOWFISH because " -"WeeChat was not built with libgcrypt support" -msgstr "" -"%s%s Authentifizierung mittels SASL und DH-BLOWFISH Mechanismus nicht " -"möglich, da WeeChat nicht mit libgcrypt Unterstützung erstellt wurde" - -#, c-format msgid "%s%s: client capability, refused: %s" msgstr "%s%s: Client Fähigkeit, abgewiesen: %s" @@ -8586,64 +8578,6 @@ msgstr "%s%s: unbekannter Fehler beim Laden der Datei \"%s\"" msgid "%s%s: unable to initialize %s" msgstr "%s%s: %s kann nicht initialisiert werden" -msgid "Support of python scripts" -msgstr "Unterstützung von Python-Skripten" - -#, c-format -msgid "%s%s: unable to initialize WeeChat module" -msgstr "%s%s: Initialisierung des WeeChat Moduls nicht möglich" - -#, c-format -msgid "%s%s: unable to redirect stdout" -msgstr "%s%s: Standardausgabe (stdout) kann nicht umlenkt werden" - -#, c-format -msgid "%s%s: unable to redirect stderr" -msgstr "%s%s: Standardfehlerausgabe (stderr) kann nicht umlenkt werden" - -msgid "path to python 2.x interpreter" -msgstr "Pfad für Python 2.x Interpreter" - -#, c-format -msgid "%s%s: unable to launch global interpreter" -msgstr "%s%s: globaler Interpreter kann nicht gestartet werden" - -#, c-format -msgid "%s%s: unable to get current interpreter state" -msgstr "%s%s: aktueller Status des Interpreters kann nicht feststellt werden" - -#, c-format -msgid "%s%s: unable to free interpreter" -msgstr "%s%s: Interpreter kann nicht freigeben werden" - -msgid "Support of ruby scripts" -msgstr "Unterstützung von Ruby-Skripten" - -#, c-format -msgid "%s%s: stdout/stderr: %s%s" -msgstr "%s%s: stdout/stderr: %s%s" - -#, c-format -msgid "%s%s: unable to read file \"%s\"" -msgstr "%s%s: Datei \"%s\" kann nicht gelesen werden" - -#, c-format -msgid "%s%s: error while loading file \"%s\"" -msgstr "%s%s: Fehler beim Laden der Datei \"%s\"" - -#, c-format -msgid "%s%s: function \"weechat_init\" is missing in file \"%s\"" -msgstr "%s%s: Funktion \"weechat_init\" fehlt in der Datei \"%s\"" - -#, c-format -msgid "%s%s: unable to eval function \"weechat_init\" in file \"%s\"" -msgstr "" -"%s%s: Evaluation der Funktion \"weechat_init\" in Datei \"%s\" nicht möglich" - -#, c-format -msgid "%s%s: unable to eval WeeChat ruby internal code" -msgstr "%s%s: Evaluation des internen WeeChat Ruby Codes nicht möglich" - msgid "list/load/unload scripts" msgstr "auflisten/installieren/deinstallieren von Skripten" @@ -8765,6 +8699,409 @@ msgstr "" msgid "%s%s: wrong arguments for function \"%s\" (script: %s)" msgstr "%s%s: Fehlerhafte Argumente für die Funktion \"%s\" (Skript: %s)" +msgid "Support of python scripts" +msgstr "Unterstützung von Python-Skripten" + +#, c-format +msgid "%s%s: unable to initialize WeeChat module" +msgstr "%s%s: Initialisierung des WeeChat Moduls nicht möglich" + +#, c-format +msgid "%s%s: unable to redirect stdout" +msgstr "%s%s: Standardausgabe (stdout) kann nicht umlenkt werden" + +#, c-format +msgid "%s%s: unable to redirect stderr" +msgstr "%s%s: Standardfehlerausgabe (stderr) kann nicht umlenkt werden" + +msgid "path to python 2.x interpreter" +msgstr "Pfad für Python 2.x Interpreter" + +#, c-format +msgid "%s%s: unable to launch global interpreter" +msgstr "%s%s: globaler Interpreter kann nicht gestartet werden" + +#, c-format +msgid "%s%s: unable to get current interpreter state" +msgstr "%s%s: aktueller Status des Interpreters kann nicht feststellt werden" + +#, c-format +msgid "%s%s: unable to free interpreter" +msgstr "%s%s: Interpreter kann nicht freigeben werden" + +msgid "Support of ruby scripts" +msgstr "Unterstützung von Ruby-Skripten" + +#, c-format +msgid "%s%s: stdout/stderr: %s%s" +msgstr "%s%s: stdout/stderr: %s%s" + +#, c-format +msgid "%s%s: unable to read file \"%s\"" +msgstr "%s%s: Datei \"%s\" kann nicht gelesen werden" + +#, c-format +msgid "%s%s: error while loading file \"%s\"" +msgstr "%s%s: Fehler beim Laden der Datei \"%s\"" + +#, c-format +msgid "%s%s: function \"weechat_init\" is missing in file \"%s\"" +msgstr "%s%s: Funktion \"weechat_init\" fehlt in der Datei \"%s\"" + +#, c-format +msgid "%s%s: unable to eval function \"weechat_init\" in file \"%s\"" +msgstr "" +"%s%s: Evaluation der Funktion \"weechat_init\" in Datei \"%s\" nicht möglich" + +#, c-format +msgid "%s%s: unable to eval WeeChat ruby internal code" +msgstr "%s%s: Evaluation des internen WeeChat Ruby Codes nicht möglich" + +msgid "Scripts manager" +msgstr "" + +#, fuzzy +msgid "Scripts loaded:" +msgstr "Installierte \"%s\" Skripten:" + +#, fuzzy, c-format +msgid "%s: unknown language for script \"%s\"" +msgstr "%s: Deinstalliere das Skript \"%s\"" + +#, fuzzy, c-format +msgid "%s%s: error downloading script \"%s\": %s" +msgstr "%s: Deinstalliere das Skript \"%s\"" + +#, fuzzy, c-format +msgid "%s: downloading script \"%s\"..." +msgstr "%s: Deinstalliere das Skript \"%s\"" + +#, fuzzy, c-format +msgid "%s: script \"%s\" is not installed" +msgstr "%s%s: Das Skript \"%s\" wurde nicht installiert" + +#, fuzzy, c-format +msgid "%s: script \"%s\" is held" +msgstr "%s: Das Skript \"%s\" wurde deinstalliert" + +#, fuzzy, c-format +msgid "%s: script \"%s\" not found" +msgstr "%s%s: Skript \"%s\" wurde nicht gefunden" + +#, fuzzy, c-format +msgid "%s: script \"%s\" not held any more" +msgstr "%s%s: Das Skript \"%s\" wurde nicht installiert" + +#, fuzzy, c-format +msgid "%s: script \"%s\" held" +msgstr "%s: Das Skript \"%s\" wurde deinstalliert" + +#, fuzzy, c-format +msgid "%s: script \"%s\" is already installed and up-to-date" +msgstr "" +"%s%s: Das Skript \"%s\" ist schon registriert (eine zweite Registrierung " +"wurde deshalb abgelehnt)" + +#, fuzzy, c-format +msgid "%s: all scripts are up-to-date" +msgstr "%s: Skripten deinstalliert" + +msgid "Script" +msgstr "" + +msgid "Version" +msgstr "" + +msgid "Author" +msgstr "" + +msgid "License" +msgstr "" + +msgid "Description" +msgstr "Beschreibung" + +msgid "Tags" +msgstr "" + +msgid "Status" +msgstr "" + +msgid "Date added" +msgstr "" + +#, fuzzy +msgid "Date updated" +msgstr "Infobar \"%s\" aktualisiert" + +msgid "URL" +msgstr "" + +msgid "MD5" +msgstr "" + +msgid "Requires" +msgstr "" + +#, fuzzy +msgid "Min WeeChat" +msgstr "WeeChat beenden" + +#, fuzzy +msgid "Max WeeChat" +msgstr "WeeChat beenden" + +msgid "popular" +msgstr "" + +msgid "installed" +msgstr "" + +msgid "held" +msgstr "" + +msgid "running" +msgstr "" + +msgid "obsolete" +msgstr "" + +#, c-format +msgid "alt+d=back to list" +msgstr "" + +#, c-format +msgid "" +"%d/%d scripts (filter: %s) | Sort: %s | alt+i=install r=remove l=load " +"u=unload h=(un)hold d=show detail | Input: 'q'=close 'r'=refresh 's:x," +"y'=sort 'words'=filter '*'=reset filter" +msgstr "" + +msgid "Scripts" +msgstr "" + +#, fuzzy +msgid "WeeChat scripts manager" +msgstr "WeeChat Seite" + +msgid "" +"list || show <script> || load|unload <script> [<script>...] || install|" +"remove|hold <script> [<script>...] || upgrade || update" +msgstr "" + +msgid "" +" list: list loaded scripts (all languages)\n" +" show: show detailed info about a script\n" +" load: load script(s)\n" +" unload: unload script(s)\n" +" install: install/upgrade script(s)\n" +" remove: remove script(s)\n" +" hold: hold/unhold script(s) (a script held will not be upgraded any more " +"and cannot be removed)\n" +" upgrade: upgrade all installed scripts which are obsolete (new version " +"available)\n" +" update: update local scripts cache\n" +"\n" +"Without argument, this command opens a buffer with list of scripts.\n" +"\n" +"On script buffer, the possible status for each script are:\n" +" * i H r N\n" +" | | | | |\n" +" | | | | obsolete (new version available)\n" +" | | | running (loaded)\n" +" | | held\n" +" | installed\n" +" popular script\n" +"\n" +"Keys on script buffer:\n" +" alt+i install script\n" +" alt+r remove script\n" +" alt+l load script\n" +" alt+u unload script\n" +" alt+h (un)hold script\n" +"\n" +"Input allowed on script buffer:\n" +" q close buffer\n" +" r refresh buffer\n" +" s:x,y sort buffer using keys x and y (see /help script.look.sort)\n" +" s: reset sort (use default sort)\n" +" word(s) filter scripts: search word(s) in scripts (description, " +"tags, ...)\n" +" * remove filter" +msgstr "" + +#, fuzzy +msgid "list of scripts in repository" +msgstr "Liste der Skripten" + +msgid "list of scripts installed (from repository)" +msgstr "" + +msgid "files in script directories" +msgstr "" + +msgid "" +"format of columns displayed in script buffer: following column identifiers " +"are replaced by their value: %a=author, %d=description, %D=date added, " +"%e=extension, %l=language, %L=license, %n=name with extension, %N=name, " +"%r=requirements, %s=status, %t=tags, %u=date updated, %v=version, %V=version " +"loaded, %w=min_weechat, %W=max_weechat)" +msgstr "" + +msgid "" +"default sort keys for scripts: comma-separated list of identifiers: " +"a=author, d=date added, e=extension, i=installed, l=language, n=name, " +"o=obsolete, p=popularity, r=running, u=date updated; char \"-\" can be used " +"before identifier to reverse order; example: \"i,u\": installed scripts " +"first, sorted by update date" +msgstr "" + +#, fuzzy +msgid "color for status \"popular\" (\"*\")" +msgstr "Textfarbe für die Uhrzeit (Statusbar)" + +msgid "color for status \"installed\" (\"i\")" +msgstr "" + +msgid "color for status \"held\" (\"H\")" +msgstr "" + +msgid "color for status \"running\" (\"r\")" +msgstr "" + +msgid "color for status \"obsolete\" (\"N\")" +msgstr "" + +msgid "color for status \"unknown\" (\"?\")" +msgstr "" + +#, fuzzy +msgid "text color in script buffer" +msgstr "Textfarbe in xfer Buffer" + +#, fuzzy +msgid "text color of dates in script buffer" +msgstr "Farbe des anderen Nicknamens in einem privaten Buffer" + +#, fuzzy +msgid "text color of delimiters in script buffer" +msgstr "Textfarbe für selektierte Zeile in xfer Buffer" + +#, fuzzy +msgid "text color of description in script buffer" +msgstr "Textfarbe für selektierte Zeile in xfer Buffer" + +#, fuzzy +msgid "text color of extension in script buffer" +msgstr "Textfarbe für selektierte Zeile in xfer Buffer" + +#, fuzzy +msgid "text color of script name in script buffer" +msgstr "Textfarbe für selektierte Zeile in xfer Buffer" + +#, fuzzy +msgid "text color of tags in script buffer" +msgstr "Textfarbe in xfer Buffer" + +#, fuzzy +msgid "text color of version in script buffer" +msgstr "Farbe des anderen Nicknamens in einem privaten Buffer" + +#, fuzzy +msgid "text color of version loaded in script buffer" +msgstr "Farbe des anderen Nicknamens in einem privaten Buffer" + +#, fuzzy +msgid "background color in script buffer" +msgstr "Hintergrundfarbe des xfer Buffer" + +#, fuzzy +msgid "text color for selected line in script buffer" +msgstr "Textfarbe für selektierte Zeile in xfer Buffer" + +#, fuzzy +msgid "text color of dates for selected line in script buffer" +msgstr "Textfarbe für selektierte Zeile in xfer Buffer" + +#, fuzzy +msgid "text color of description for selected line in script buffer" +msgstr "Textfarbe für selektierte Zeile in xfer Buffer" + +#, fuzzy +msgid "text color of extension for selected line in script buffer" +msgstr "Textfarbe für selektierte Zeile in xfer Buffer" + +#, fuzzy +msgid "text color of script name for selected line in script buffer" +msgstr "Textfarbe für selektierte Zeile in xfer Buffer" + +#, fuzzy +msgid "text color of tags for selected line in script buffer" +msgstr "Textfarbe für selektierte Zeile in xfer Buffer" + +#, fuzzy +msgid "text color of version for selected line in script buffer" +msgstr "Textfarbe für selektierte Zeile in xfer Buffer" + +#, fuzzy +msgid "text color of version loaded for selected line in script buffer" +msgstr "Textfarbe für selektierte Zeile in xfer Buffer" + +#, fuzzy +msgid "background color for selected line in script buffer" +msgstr "Textfarbe für selektierte Zeile in xfer Buffer" + +msgid "" +"local cache expiration time, in minutes (-1 = never expires, 0 = always " +"expire)" +msgstr "" + +msgid "local cache directory for scripts" +msgstr "" + +msgid "" +"scripts to \"hold\": comma-separated list of scripts which will never been " +"upgraded and can not be removed, for example: \"buffers.pl,iset.pl\"" +msgstr "" + +#, fuzzy +msgid "URL for file with list of scripts" +msgstr "Liste der Skripten" + +#, fuzzy +msgid "" +"script name with extension (can start or end with \"*\" as wildcard) " +"(optional)" +msgstr "" +"Name des Skriptes (darf mit einem \"*\" als Platzhalter beginnen oder enden) " +"(optional)" + +#, fuzzy +msgid "scripts from repository" +msgstr "Liste der Skripten" + +#, fuzzy, c-format +msgid "%s%s: error reading list of scripts" +msgstr "%s%s: Fehler beim Senden von Daten an den Client: %s" + +#, fuzzy, c-format +msgid "%s: %d scripts for WeeChat %s" +msgstr "%s: Skript entfernt: %s" + +#, c-format +msgid "" +"%s%s: list of scripts is empty (repository file is broken, or download has " +"failed)" +msgstr "" + +#, fuzzy, c-format +msgid "%s%s: error downloading list of scripts: %s" +msgstr "%s%s: Fehler beim Senden von Daten an den Client: %s" + +#, fuzzy, c-format +msgid "%s: downloading list of scripts..." +msgstr "%s: Deinstalliere das Skript \"%s\"" + msgid "Support of tcl scripts" msgstr "Unterstützung von tcl-Skripten" @@ -9164,9 +9501,6 @@ msgstr "Erweiterung" msgid "Name" msgstr "Name" -msgid "Description" -msgstr "Beschreibung" - msgid "Arguments" msgstr "Argumente" @@ -9194,6 +9528,17 @@ msgstr "Type" msgid "Constants" msgstr "Konstanten" +#, fuzzy +#~ msgid "%s: downloading \"%s\"..." +#~ msgstr "%s: Deinstalliere das Skript \"%s\"" + +#~ msgid "" +#~ "%s%s: cannot authenticate with SASL and mechanism DH-BLOWFISH because " +#~ "WeeChat was not built with libgcrypt support" +#~ msgstr "" +#~ "%s%s Authentifizierung mittels SASL und DH-BLOWFISH Mechanismus nicht " +#~ "möglich, da WeeChat nicht mit libgcrypt Unterstützung erstellt wurde" + #~ msgid "smart completion for nicks (completes first with last speakers)" #~ msgstr "" #~ "intelligente Vervollständigung von Nicknamen (vervollständigt zuerst den " @@ -9220,9 +9565,6 @@ msgstr "Konstanten" #~ msgid "display message when (un)marking as away" #~ msgstr "bei Abwesenheit und Rückkehr eine Nachricht anzeigen" -#~ msgid "%s%s: error sending data to client: %s" -#~ msgstr "%s%s: Fehler beim Senden von Daten an den Client: %s" - #~ msgid "%s%s: error sending data to client %d (%s)" #~ msgstr "%s%s: Fehler beim Senden von Daten an den Client %d (%s)" @@ -22,7 +22,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.9-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2012-08-02 22:48+0200\n" +"POT-Creation-Date: 2012-08-14 18:26+0200\n" "PO-Revision-Date: 2012-07-27 12:16+0200\n" "Last-Translator: Elián Hanisch <lambdae2@gmail.com>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -6560,14 +6560,6 @@ msgid "%s%s: client capability, enabled: %s" msgstr "%s%s: capabilidad del cliente, habilitado: %s" #, c-format -msgid "" -"%s%s: cannot authenticate with SASL and mechanism DH-BLOWFISH because " -"WeeChat was not built with libgcrypt support" -msgstr "" -"%s%s: no es posible autenticarse con SASL y el mecanismo DH-BLOWFISH debido " -"a que WeeChat no fue compilado con soporte libgcrypt" - -#, c-format msgid "%s%s: client capability, refused: %s" msgstr "%s%s: capabilidad del cliente, rechazada: %s" @@ -8288,66 +8280,6 @@ msgstr "%s%s: error desconocido mientras se cargaba el archivo \"%s\"" msgid "%s%s: unable to initialize %s" msgstr "%s%s: no ha sido posible inicializar %s" -#, fuzzy -msgid "Support of python scripts" -msgstr "lista de scripts" - -#, c-format -msgid "%s%s: unable to initialize WeeChat module" -msgstr "%s%s: no es posible inicializar el módulo de WeeChat" - -#, c-format -msgid "%s%s: unable to redirect stdout" -msgstr "%s%s: no es posible redirigir la salida stdout" - -#, c-format -msgid "%s%s: unable to redirect stderr" -msgstr "%s%s: no es posible redirigir la salida stderr" - -msgid "path to python 2.x interpreter" -msgstr "ruta al interprete de python 2.x" - -#, c-format -msgid "%s%s: unable to launch global interpreter" -msgstr "%s%s: no es posible iniciar el intérprete global" - -#, c-format -msgid "%s%s: unable to get current interpreter state" -msgstr "%s%s: no es posible obtener el estado del interprete actual" - -#, c-format -msgid "%s%s: unable to free interpreter" -msgstr "%s%s: no es posible liberar el interprete" - -#, fuzzy -msgid "Support of ruby scripts" -msgstr "lista de scripts" - -#, c-format -msgid "%s%s: stdout/stderr: %s%s" -msgstr "%s%s: stdout/stderr: %s%s" - -#, c-format -msgid "%s%s: unable to read file \"%s\"" -msgstr "%s%s: no es posible leer el archivo \"%s\"" - -#, c-format -msgid "%s%s: error while loading file \"%s\"" -msgstr "%s%s: error mientras se cargaba el archivo \"%s\"" - -#, c-format -msgid "%s%s: function \"weechat_init\" is missing in file \"%s\"" -msgstr "%s%s: la función \"weechat_init\" no se encuentra en el archivo \"%s\"" - -#, c-format -msgid "%s%s: unable to eval function \"weechat_init\" in file \"%s\"" -msgstr "" -"%s%s: no es posible evaluar la función \"weechat_init\" en el archivo \"%s\"" - -#, c-format -msgid "%s%s: unable to eval WeeChat ruby internal code" -msgstr "%s%s: no es posible evaluar el código ruby interno de WeeChat" - msgid "list/load/unload scripts" msgstr "listar/cargar/descargar scripts" @@ -8467,6 +8399,409 @@ msgid "%s%s: wrong arguments for function \"%s\" (script: %s)" msgstr "%s%s: argumentos incorrectos para la función \"%s\" (script: %s)" #, fuzzy +msgid "Support of python scripts" +msgstr "lista de scripts" + +#, c-format +msgid "%s%s: unable to initialize WeeChat module" +msgstr "%s%s: no es posible inicializar el módulo de WeeChat" + +#, c-format +msgid "%s%s: unable to redirect stdout" +msgstr "%s%s: no es posible redirigir la salida stdout" + +#, c-format +msgid "%s%s: unable to redirect stderr" +msgstr "%s%s: no es posible redirigir la salida stderr" + +msgid "path to python 2.x interpreter" +msgstr "ruta al interprete de python 2.x" + +#, c-format +msgid "%s%s: unable to launch global interpreter" +msgstr "%s%s: no es posible iniciar el intérprete global" + +#, c-format +msgid "%s%s: unable to get current interpreter state" +msgstr "%s%s: no es posible obtener el estado del interprete actual" + +#, c-format +msgid "%s%s: unable to free interpreter" +msgstr "%s%s: no es posible liberar el interprete" + +#, fuzzy +msgid "Support of ruby scripts" +msgstr "lista de scripts" + +#, c-format +msgid "%s%s: stdout/stderr: %s%s" +msgstr "%s%s: stdout/stderr: %s%s" + +#, c-format +msgid "%s%s: unable to read file \"%s\"" +msgstr "%s%s: no es posible leer el archivo \"%s\"" + +#, c-format +msgid "%s%s: error while loading file \"%s\"" +msgstr "%s%s: error mientras se cargaba el archivo \"%s\"" + +#, c-format +msgid "%s%s: function \"weechat_init\" is missing in file \"%s\"" +msgstr "%s%s: la función \"weechat_init\" no se encuentra en el archivo \"%s\"" + +#, c-format +msgid "%s%s: unable to eval function \"weechat_init\" in file \"%s\"" +msgstr "" +"%s%s: no es posible evaluar la función \"weechat_init\" en el archivo \"%s\"" + +#, c-format +msgid "%s%s: unable to eval WeeChat ruby internal code" +msgstr "%s%s: no es posible evaluar el código ruby interno de WeeChat" + +msgid "Scripts manager" +msgstr "" + +#, fuzzy +msgid "Scripts loaded:" +msgstr "scripts en %s cargados:" + +#, fuzzy, c-format +msgid "%s: unknown language for script \"%s\"" +msgstr "%s: descargando el script \"%s\"" + +#, fuzzy, c-format +msgid "%s%s: error downloading script \"%s\": %s" +msgstr "%s: descargando el script \"%s\"" + +#, fuzzy, c-format +msgid "%s: downloading script \"%s\"..." +msgstr "%s: descargando el script \"%s\"" + +#, fuzzy, c-format +msgid "%s: script \"%s\" is not installed" +msgstr "%s%s: el script \"%s\" no está cargado" + +#, fuzzy, c-format +msgid "%s: script \"%s\" is held" +msgstr "%s: script \"%s\" descargado" + +#, fuzzy, c-format +msgid "%s: script \"%s\" not found" +msgstr "%s%s: script \"%s\" no encontrado" + +#, fuzzy, c-format +msgid "%s: script \"%s\" not held any more" +msgstr "%s%s: el script \"%s\" no está cargado" + +#, fuzzy, c-format +msgid "%s: script \"%s\" held" +msgstr "%s: script \"%s\" descargado" + +#, fuzzy, c-format +msgid "%s: script \"%s\" is already installed and up-to-date" +msgstr "%s%s: el servidor \"%s\" ya existe, ¡no se puede crear!" + +#, fuzzy, c-format +msgid "%s: all scripts are up-to-date" +msgstr "%s: scripts descargados" + +msgid "Script" +msgstr "" + +msgid "Version" +msgstr "" + +msgid "Author" +msgstr "" + +msgid "License" +msgstr "" + +msgid "Description" +msgstr "Descripción" + +msgid "Tags" +msgstr "" + +msgid "Status" +msgstr "" + +msgid "Date added" +msgstr "" + +#, fuzzy +msgid "Date updated" +msgstr "Barra \"%s\" actualizada" + +msgid "URL" +msgstr "" + +msgid "MD5" +msgstr "" + +msgid "Requires" +msgstr "" + +#, fuzzy +msgid "Min WeeChat" +msgstr "cerrar WeeChat" + +#, fuzzy +msgid "Max WeeChat" +msgstr "cerrar WeeChat" + +msgid "popular" +msgstr "" + +msgid "installed" +msgstr "" + +msgid "held" +msgstr "" + +msgid "running" +msgstr "" + +msgid "obsolete" +msgstr "" + +#, c-format +msgid "alt+d=back to list" +msgstr "" + +#, c-format +msgid "" +"%d/%d scripts (filter: %s) | Sort: %s | alt+i=install r=remove l=load " +"u=unload h=(un)hold d=show detail | Input: 'q'=close 'r'=refresh 's:x," +"y'=sort 'words'=filter '*'=reset filter" +msgstr "" + +msgid "Scripts" +msgstr "" + +#, fuzzy +msgid "WeeChat scripts manager" +msgstr "sitio web de WeeChat" + +msgid "" +"list || show <script> || load|unload <script> [<script>...] || install|" +"remove|hold <script> [<script>...] || upgrade || update" +msgstr "" + +msgid "" +" list: list loaded scripts (all languages)\n" +" show: show detailed info about a script\n" +" load: load script(s)\n" +" unload: unload script(s)\n" +" install: install/upgrade script(s)\n" +" remove: remove script(s)\n" +" hold: hold/unhold script(s) (a script held will not be upgraded any more " +"and cannot be removed)\n" +" upgrade: upgrade all installed scripts which are obsolete (new version " +"available)\n" +" update: update local scripts cache\n" +"\n" +"Without argument, this command opens a buffer with list of scripts.\n" +"\n" +"On script buffer, the possible status for each script are:\n" +" * i H r N\n" +" | | | | |\n" +" | | | | obsolete (new version available)\n" +" | | | running (loaded)\n" +" | | held\n" +" | installed\n" +" popular script\n" +"\n" +"Keys on script buffer:\n" +" alt+i install script\n" +" alt+r remove script\n" +" alt+l load script\n" +" alt+u unload script\n" +" alt+h (un)hold script\n" +"\n" +"Input allowed on script buffer:\n" +" q close buffer\n" +" r refresh buffer\n" +" s:x,y sort buffer using keys x and y (see /help script.look.sort)\n" +" s: reset sort (use default sort)\n" +" word(s) filter scripts: search word(s) in scripts (description, " +"tags, ...)\n" +" * remove filter" +msgstr "" + +#, fuzzy +msgid "list of scripts in repository" +msgstr "lista de scripts" + +msgid "list of scripts installed (from repository)" +msgstr "" + +msgid "files in script directories" +msgstr "" + +msgid "" +"format of columns displayed in script buffer: following column identifiers " +"are replaced by their value: %a=author, %d=description, %D=date added, " +"%e=extension, %l=language, %L=license, %n=name with extension, %N=name, " +"%r=requirements, %s=status, %t=tags, %u=date updated, %v=version, %V=version " +"loaded, %w=min_weechat, %W=max_weechat)" +msgstr "" + +msgid "" +"default sort keys for scripts: comma-separated list of identifiers: " +"a=author, d=date added, e=extension, i=installed, l=language, n=name, " +"o=obsolete, p=popularity, r=running, u=date updated; char \"-\" can be used " +"before identifier to reverse order; example: \"i,u\": installed scripts " +"first, sorted by update date" +msgstr "" + +#, fuzzy +msgid "color for status \"popular\" (\"*\")" +msgstr "color para el texto de la hora (en la barra de estado)" + +msgid "color for status \"installed\" (\"i\")" +msgstr "" + +msgid "color for status \"held\" (\"H\")" +msgstr "" + +msgid "color for status \"running\" (\"r\")" +msgstr "" + +msgid "color for status \"obsolete\" (\"N\")" +msgstr "" + +msgid "color for status \"unknown\" (\"?\")" +msgstr "" + +#, fuzzy +msgid "text color in script buffer" +msgstr "color para los nombres de los buffers" + +#, fuzzy +msgid "text color of dates in script buffer" +msgstr "color para el otro apodo en una conversación privada" + +#, fuzzy +msgid "text color of delimiters in script buffer" +msgstr "color para el cliente seleccionado" + +#, fuzzy +msgid "text color of description in script buffer" +msgstr "color para el cliente seleccionado" + +#, fuzzy +msgid "text color of extension in script buffer" +msgstr "color para el cliente seleccionado" + +#, fuzzy +msgid "text color of script name in script buffer" +msgstr "color para el cliente seleccionado" + +#, fuzzy +msgid "text color of tags in script buffer" +msgstr "color para los nombres de los buffers" + +#, fuzzy +msgid "text color of version in script buffer" +msgstr "color para el otro apodo en una conversación privada" + +#, fuzzy +msgid "text color of version loaded in script buffer" +msgstr "color para el otro apodo en una conversación privada" + +#, fuzzy +msgid "background color in script buffer" +msgstr "color de fondo para el área de conversación" + +#, fuzzy +msgid "text color for selected line in script buffer" +msgstr "color para el cliente seleccionado" + +#, fuzzy +msgid "text color of dates for selected line in script buffer" +msgstr "color para el cliente seleccionado" + +#, fuzzy +msgid "text color of description for selected line in script buffer" +msgstr "color para el cliente seleccionado" + +#, fuzzy +msgid "text color of extension for selected line in script buffer" +msgstr "color para el cliente seleccionado" + +#, fuzzy +msgid "text color of script name for selected line in script buffer" +msgstr "color para el cliente seleccionado" + +#, fuzzy +msgid "text color of tags for selected line in script buffer" +msgstr "color para el cliente seleccionado" + +#, fuzzy +msgid "text color of version for selected line in script buffer" +msgstr "color para el cliente seleccionado" + +#, fuzzy +msgid "text color of version loaded for selected line in script buffer" +msgstr "color para el cliente seleccionado" + +#, fuzzy +msgid "background color for selected line in script buffer" +msgstr "color para el cliente seleccionado" + +msgid "" +"local cache expiration time, in minutes (-1 = never expires, 0 = always " +"expire)" +msgstr "" + +msgid "local cache directory for scripts" +msgstr "" + +msgid "" +"scripts to \"hold\": comma-separated list of scripts which will never been " +"upgraded and can not be removed, for example: \"buffers.pl,iset.pl\"" +msgstr "" + +#, fuzzy +msgid "URL for file with list of scripts" +msgstr "lista de scripts" + +#, fuzzy +msgid "" +"script name with extension (can start or end with \"*\" as wildcard) " +"(optional)" +msgstr "" +"nombre del script (puede empezar o terminar con \"*\" como comodín) " +"(opcional)" + +#, fuzzy +msgid "scripts from repository" +msgstr "lista de scripts" + +#, fuzzy, c-format +msgid "%s%s: error reading list of scripts" +msgstr "%s%s: error al enviar datos al cliente: %s" + +#, fuzzy, c-format +msgid "%s: %d scripts for WeeChat %s" +msgstr "%s: script removido: %s" + +#, c-format +msgid "" +"%s%s: list of scripts is empty (repository file is broken, or download has " +"failed)" +msgstr "" + +#, fuzzy, c-format +msgid "%s%s: error downloading list of scripts: %s" +msgstr "%s%s: error al enviar datos al cliente: %s" + +#, fuzzy, c-format +msgid "%s: downloading list of scripts..." +msgstr "%s: descargando el script \"%s\"" + +#, fuzzy msgid "Support of tcl scripts" msgstr "lista de scripts" @@ -8866,9 +9201,6 @@ msgstr "Plugin" msgid "Name" msgstr "Nombre" -msgid "Description" -msgstr "Descripción" - msgid "Arguments" msgstr "Argumentos" @@ -8897,6 +9229,17 @@ msgid "Constants" msgstr "Constantes" #, fuzzy +#~ msgid "%s: downloading \"%s\"..." +#~ msgstr "%s: descargando el script \"%s\"" + +#~ msgid "" +#~ "%s%s: cannot authenticate with SASL and mechanism DH-BLOWFISH because " +#~ "WeeChat was not built with libgcrypt support" +#~ msgstr "" +#~ "%s%s: no es posible autenticarse con SASL y el mecanismo DH-BLOWFISH " +#~ "debido a que WeeChat no fue compilado con soporte libgcrypt" + +#, fuzzy #~ msgid "Regex modifier" #~ msgstr "Modificadores regulares predeterminados" @@ -8933,9 +9276,6 @@ msgstr "Constantes" #~ msgid "%s%s: sending data to client error %d: %d %s" #~ msgstr "%s%s: error al enviar datos al cliente %d (%s)" -#~ msgid "%s%s: error sending data to client: %s" -#~ msgstr "%s%s: error al enviar datos al cliente: %s" - #~ msgid "display channel modes in \"buffer_name\" bar item" #~ msgstr "mostrar los modos del canal en el elemento de barra \"buffer_name\"" @@ -21,8 +21,8 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.9-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2012-08-02 22:48+0200\n" -"PO-Revision-Date: 2012-08-02 22:50+0200\n" +"POT-Creation-Date: 2012-08-14 18:26+0200\n" +"PO-Revision-Date: 2012-08-14 18:26+0200\n" "Last-Translator: Sebastien Helleu <flashcode@flashtux.org>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" "Language: French\n" @@ -6629,14 +6629,6 @@ msgid "%s%s: client capability, enabled: %s" msgstr "%s%s: client capability, activé: %s" #, c-format -msgid "" -"%s%s: cannot authenticate with SASL and mechanism DH-BLOWFISH because " -"WeeChat was not built with libgcrypt support" -msgstr "" -"%s%s: impossible de s'authentifier avec SASL et le mécanisme DH-BLOWFISH car " -"WeeChat n'a pas été construit avec le support libgcrypt" - -#, c-format msgid "%s%s: client capability, refused: %s" msgstr "%s%s: client capability, refusé: %s" @@ -8365,66 +8357,6 @@ msgstr "%s%s: erreur inconnue en chargement du fichier \"%s\"" msgid "%s%s: unable to initialize %s" msgstr "%s%s: impossible d'initialiser %s" -msgid "Support of python scripts" -msgstr "Support des scripts python" - -#, c-format -msgid "%s%s: unable to initialize WeeChat module" -msgstr "%s%s: impossible d'initialiser le module WeeChat" - -#, c-format -msgid "%s%s: unable to redirect stdout" -msgstr "%s%s: impossible de rediriger stdout" - -#, c-format -msgid "%s%s: unable to redirect stderr" -msgstr "%s%s: impossible de rediriger stderr" - -msgid "path to python 2.x interpreter" -msgstr "chemin vers l'interpréteur python 2.x" - -#, c-format -msgid "%s%s: unable to launch global interpreter" -msgstr "%s%s: impossible de lancer l'interpréteur global" - -#, c-format -msgid "%s%s: unable to get current interpreter state" -msgstr "%s%s: impossible de lire l'état courant de l'interpréteur" - -#, c-format -msgid "%s%s: unable to free interpreter" -msgstr "%s%s: impossible de libérer l'interpréteur" - -msgid "Support of ruby scripts" -msgstr "Support des scripts ruby" - -#, c-format -msgid "%s%s: stdout/stderr: %s%s" -msgstr "%s%s: stdout/stderr: %s%s" - -#, c-format -msgid "%s%s: unable to read file \"%s\"" -msgstr "%s%s: impossible de lire le fichier \"%s\"" - -#, c-format -msgid "%s%s: error while loading file \"%s\"" -msgstr "%s%s: erreur en chargement du fichier \"%s\"" - -#, c-format -msgid "%s%s: function \"weechat_init\" is missing in file \"%s\"" -msgstr "" -"%s%s: la fonction \"weechat_init\" est manquante dans le fichier \"%s\"" - -#, c-format -msgid "%s%s: unable to eval function \"weechat_init\" in file \"%s\"" -msgstr "" -"%s%s: impossible d'évaluer la fonction \"weechat_init\" dans le fichier \"%s" -"\"" - -#, c-format -msgid "%s%s: unable to eval WeeChat ruby internal code" -msgstr "%s%s: impossible d'évaluer le code ruby interne WeeChat" - msgid "list/load/unload scripts" msgstr "lister/charger/décharger des scripts" @@ -8544,6 +8476,456 @@ msgstr "" msgid "%s%s: wrong arguments for function \"%s\" (script: %s)" msgstr "%s%s: paramètres invalides pour la fonction \"%s\" (script: %s)" +msgid "Support of python scripts" +msgstr "Support des scripts python" + +#, c-format +msgid "%s%s: unable to initialize WeeChat module" +msgstr "%s%s: impossible d'initialiser le module WeeChat" + +#, c-format +msgid "%s%s: unable to redirect stdout" +msgstr "%s%s: impossible de rediriger stdout" + +#, c-format +msgid "%s%s: unable to redirect stderr" +msgstr "%s%s: impossible de rediriger stderr" + +msgid "path to python 2.x interpreter" +msgstr "chemin vers l'interpréteur python 2.x" + +#, c-format +msgid "%s%s: unable to launch global interpreter" +msgstr "%s%s: impossible de lancer l'interpréteur global" + +#, c-format +msgid "%s%s: unable to get current interpreter state" +msgstr "%s%s: impossible de lire l'état courant de l'interpréteur" + +#, c-format +msgid "%s%s: unable to free interpreter" +msgstr "%s%s: impossible de libérer l'interpréteur" + +msgid "Support of ruby scripts" +msgstr "Support des scripts ruby" + +#, c-format +msgid "%s%s: stdout/stderr: %s%s" +msgstr "%s%s: stdout/stderr: %s%s" + +#, c-format +msgid "%s%s: unable to read file \"%s\"" +msgstr "%s%s: impossible de lire le fichier \"%s\"" + +#, c-format +msgid "%s%s: error while loading file \"%s\"" +msgstr "%s%s: erreur en chargement du fichier \"%s\"" + +#, c-format +msgid "%s%s: function \"weechat_init\" is missing in file \"%s\"" +msgstr "" +"%s%s: la fonction \"weechat_init\" est manquante dans le fichier \"%s\"" + +#, c-format +msgid "%s%s: unable to eval function \"weechat_init\" in file \"%s\"" +msgstr "" +"%s%s: impossible d'évaluer la fonction \"weechat_init\" dans le fichier \"%s" +"\"" + +#, c-format +msgid "%s%s: unable to eval WeeChat ruby internal code" +msgstr "%s%s: impossible d'évaluer le code ruby interne WeeChat" + +msgid "Scripts manager" +msgstr "Gestionnaire de scripts" + +msgid "Scripts loaded:" +msgstr "Scripts chargés:" + +#, c-format +msgid "%s: unknown language for script \"%s\"" +msgstr "%s: langage inconnu pour le script \"%s\"" + +#, c-format +msgid "%s%s: error downloading script \"%s\": %s" +msgstr "%s%s: erreur de téléchargement du script \"%s\": %s" + +#, c-format +msgid "%s: downloading script \"%s\"..." +msgstr "%s: téléchargement du script \"%s\"..." + +#, c-format +msgid "%s: script \"%s\" is not installed" +msgstr "%s: le script \"%s\" n'est pas installé" + +#, c-format +msgid "%s: script \"%s\" is held" +msgstr "%s: le script \"%s\" est figé" + +#, c-format +msgid "%s: script \"%s\" not found" +msgstr "%s: script \"%s\" non trouvé" + +#, c-format +msgid "%s: script \"%s\" not held any more" +msgstr "%s: le script \"%s\" n'est plus figé" + +#, c-format +msgid "%s: script \"%s\" held" +msgstr "%s: script \"%s\" figé" + +#, c-format +msgid "%s: script \"%s\" is already installed and up-to-date" +msgstr "%s: le script \"%s\" est déjà installé et à jour" + +#, c-format +msgid "%s: all scripts are up-to-date" +msgstr "%s: tous les scripts sont à jour" + +msgid "Script" +msgstr "Script" + +msgid "Version" +msgstr "Version" + +msgid "Author" +msgstr "Auteur" + +msgid "License" +msgstr "Licence" + +msgid "Description" +msgstr "Description" + +msgid "Tags" +msgstr "Etiquettes" + +msgid "Status" +msgstr "Statut" + +msgid "Date added" +msgstr "Date d'ajout" + +msgid "Date updated" +msgstr "Date de mise à jour" + +msgid "URL" +msgstr "URL" + +msgid "MD5" +msgstr "MD5" + +msgid "Requires" +msgstr "Requiert" + +msgid "Min WeeChat" +msgstr "WeeChat mini" + +msgid "Max WeeChat" +msgstr "WeeChat maxi" + +msgid "popular" +msgstr "populaire" + +msgid "installed" +msgstr "installé" + +msgid "held" +msgstr "figé" + +msgid "running" +msgstr "chargé" + +msgid "obsolete" +msgstr "obsolète" + +#, c-format +msgid "alt+d=back to list" +msgstr "alt+d=retour à la liste" + +#, c-format +msgid "" +"%d/%d scripts (filter: %s) | Sort: %s | alt+i=install r=remove l=load " +"u=unload h=(un)hold d=show detail | Input: 'q'=close 'r'=refresh 's:x," +"y'=sort 'words'=filter '*'=reset filter" +msgstr "" +"%d/%d scripts (filtre: %s) | Tri: %s | alt+i=installer r=supprimer l=charger " +"u=décharger h=(dé)figer d=afficher détail | Entrée: 'q'=fermer " +"'r'=rafraîchir 's:x,y'=trier 'words'=filtrer '*'=réinit filtre" + +msgid "Scripts" +msgstr "Scripts" + +msgid "WeeChat scripts manager" +msgstr "Gestionnaire de scripts WeeChat" + +msgid "" +"list || show <script> || load|unload <script> [<script>...] || install|" +"remove|hold <script> [<script>...] || upgrade || update" +msgstr "" +"list || show <script> || load|unload <script> [<script>...] || install|" +"remove|hold <script> [<script>...] || upgrade || update" + +msgid "" +" list: list loaded scripts (all languages)\n" +" show: show detailed info about a script\n" +" load: load script(s)\n" +" unload: unload script(s)\n" +" install: install/upgrade script(s)\n" +" remove: remove script(s)\n" +" hold: hold/unhold script(s) (a script held will not be upgraded any more " +"and cannot be removed)\n" +" upgrade: upgrade all installed scripts which are obsolete (new version " +"available)\n" +" update: update local scripts cache\n" +"\n" +"Without argument, this command opens a buffer with list of scripts.\n" +"\n" +"On script buffer, the possible status for each script are:\n" +" * i H r N\n" +" | | | | |\n" +" | | | | obsolete (new version available)\n" +" | | | running (loaded)\n" +" | | held\n" +" | installed\n" +" popular script\n" +"\n" +"Keys on script buffer:\n" +" alt+i install script\n" +" alt+r remove script\n" +" alt+l load script\n" +" alt+u unload script\n" +" alt+h (un)hold script\n" +"\n" +"Input allowed on script buffer:\n" +" q close buffer\n" +" r refresh buffer\n" +" s:x,y sort buffer using keys x and y (see /help script.look.sort)\n" +" s: reset sort (use default sort)\n" +" word(s) filter scripts: search word(s) in scripts (description, " +"tags, ...)\n" +" * remove filter" +msgstr "" +" list: lister les scripts chargés (tous les langages)\n" +" show: afficher des infos détaillées sur le script\n" +" load: charger un ou plusieurs scripts\n" +" unload: décharger un ou plusieurs scripts\n" +" install: installer/mettre à jour un ou plusieurs scripts\n" +" remove: supprimer un ou plusieurs scripts\n" +" hold: figer/défiger un ou plusieurs scripts (un script figé ne sera plus " +"mis à jour et ne peut pas être supprimé)\n" +" upgrade: mettre à jour les scripts obsolètes (avec nouvelle version " +"disponible)\n" +" update: mettre à jour le cache local des scripts\n" +"\n" +"Sans paramètre, cette commande ouvre un tampon avec la liste des scripts.\n" +"\n" +"Sur le tampon des scripts, les statuts pour chaque script sont :\n" +" * i H r N\n" +" | | | | |\n" +" | | | | obsolète (nouvelle version disponible)\n" +" | | | chargé\n" +" | | figé\n" +" | installé\n" +" script populaire\n" +"\n" +"Les touches sur le tampon des scripts :\n" +" alt+i installer le script\n" +" alt+r supprimer le script\n" +" alt+l charger le script\n" +" alt+u décharger le script\n" +" alt+h (dé)figer le script\n" +"\n" +"Entrée autorisée sur le tampon des scripts :\n" +" q fermer le tampon\n" +" r rafraîchir le tampon\n" +" s:x,y trier le tampon en utilisant les clés x et y (voir /help script." +"look.sort)\n" +" s: réinitialiser le tri (utiliser le tri par défaut)\n" +" word(s) filtrer les scripts: recherche du/des mot(s) dans les scripts " +"(description, étiquettes, ...)\n" +" * supprimer le filtre" + +msgid "list of scripts in repository" +msgstr "liste des scripts du repository" + +msgid "list of scripts installed (from repository)" +msgstr "liste des scripts installés (du repository)" + +msgid "files in script directories" +msgstr "fichiers dans les répertoires de script" + +msgid "" +"format of columns displayed in script buffer: following column identifiers " +"are replaced by their value: %a=author, %d=description, %D=date added, " +"%e=extension, %l=language, %L=license, %n=name with extension, %N=name, " +"%r=requirements, %s=status, %t=tags, %u=date updated, %v=version, %V=version " +"loaded, %w=min_weechat, %W=max_weechat)" +msgstr "" +"format des colonnes affichées dans le tampon des scripts: les identifiants " +"de colonne suivants sont remplacés par leur valeur: %a=auteur, " +"%d=description, %D=date d'ajout, %e=extension, %l=langage, %L=licence, " +"%n=nom avec extension, %N=nom, %r=dépendances, %s=statuts, %t=étiquettes, " +"%u=date de mise à jour, %v=version, %V=version chargée, %w=min_weechat, " +"%W=max_weechat" + +msgid "" +"default sort keys for scripts: comma-separated list of identifiers: " +"a=author, d=date added, e=extension, i=installed, l=language, n=name, " +"o=obsolete, p=popularity, r=running, u=date updated; char \"-\" can be used " +"before identifier to reverse order; example: \"i,u\": installed scripts " +"first, sorted by update date" +msgstr "" +"tri par défaut des scripts: liste d'identifiants séparés par des virgules: " +"a=auteur, d=date d'ajour, e=extension, i=installé, l=langage, n=nom, " +"o=obsolète, p=populaire, r=chargé, u=date de mise à jour; le caractère \"-\" " +"peut être utilisé avant l'identifiant pour inverser l'ordre; exemple: \"i,u" +"\": scripts installés en premier, triés par date de mise à jour" + +msgid "color for status \"popular\" (\"*\")" +msgstr "couleur du statut \"populaire\" (\"*\")" + +msgid "color for status \"installed\" (\"i\")" +msgstr "couleur du statut \"installé\" (\"i\")" + +msgid "color for status \"held\" (\"H\")" +msgstr "couleur du statut \"figé\" (\"H\")" + +msgid "color for status \"running\" (\"r\")" +msgstr "couleur du statut \"chargé\" (\"r\")" + +msgid "color for status \"obsolete\" (\"N\")" +msgstr "couleur du statut \"obsolète\" (\"N\")" + +msgid "color for status \"unknown\" (\"?\")" +msgstr "couleur du statut \"inconnu\" (\"?\")" + +msgid "text color in script buffer" +msgstr "couleur du texte dans le tampon script" + +msgid "text color of dates in script buffer" +msgstr "couleur du texte pour les dates dans le tampon script" + +msgid "text color of delimiters in script buffer" +msgstr "couleur du texte pour les délimiteurs dans le tampon script" + +msgid "text color of description in script buffer" +msgstr "couleur du texte pour la description dans le tampon script" + +msgid "text color of extension in script buffer" +msgstr "couleur du texte pour l'extension dans le tampon script" + +msgid "text color of script name in script buffer" +msgstr "couleur du texte pour le nom du script dans le tampon script" + +msgid "text color of tags in script buffer" +msgstr "couleur du texte pour les étiquettes dans le tampon script" + +msgid "text color of version in script buffer" +msgstr "couleur du texte pour la version dans le tampon script" + +msgid "text color of version loaded in script buffer" +msgstr "couleur du texte pour la version chargée dans le tampon script" + +msgid "background color in script buffer" +msgstr "couleur du fond dans le tampon script" + +msgid "text color for selected line in script buffer" +msgstr "couleur du texte pour la ligne sélectionnée dans le tampon script" + +msgid "text color of dates for selected line in script buffer" +msgstr "" +"couleur du texte pour les dates de la ligne sélectionnée dans le tampon " +"script" + +msgid "text color of description for selected line in script buffer" +msgstr "" +"couleur du texte pour la description de la ligne sélectionnée dans le tampon " +"script" + +msgid "text color of extension for selected line in script buffer" +msgstr "" +"couleur du texte pour l'extension de la ligne sélectionnée dans le tampon " +"script" + +msgid "text color of script name for selected line in script buffer" +msgstr "" +"couleur du texte pour le nom du script de la ligne sélectionnée dans le " +"tampon script" + +msgid "text color of tags for selected line in script buffer" +msgstr "" +"couleur du texte pour les étiquettes de la ligne sélectionnée dans le tampon " +"script" + +msgid "text color of version for selected line in script buffer" +msgstr "" +"couleur du texte pour la version de la ligne sélectionnée dans le tampon " +"script" + +msgid "text color of version loaded for selected line in script buffer" +msgstr "" +"couleur du texte pour la version chargée de la ligne sélectionnée dans le " +"tampon script" + +msgid "background color for selected line in script buffer" +msgstr "couleur du fond pour la ligne sélectionnée dans le tampon script" + +msgid "" +"local cache expiration time, in minutes (-1 = never expires, 0 = always " +"expire)" +msgstr "" +"temps d'expiration du cache local, en minutes (-1 = n'expire jamais, 0 = " +"expire toujours)" + +msgid "local cache directory for scripts" +msgstr "répertoire du cache local pour les scripts" + +msgid "" +"scripts to \"hold\": comma-separated list of scripts which will never been " +"upgraded and can not be removed, for example: \"buffers.pl,iset.pl\"" +msgstr "" +"scripts à \"figer\": liste de scripts séparés par des virgules qui ne seront " +"jamais mis à jour et ne peuvent pas être supprimés, par exemple: \"buffers." +"pl,iset.pl\"" + +msgid "URL for file with list of scripts" +msgstr "URL pour le fichier avec la liste des scripts" + +msgid "" +"script name with extension (can start or end with \"*\" as wildcard) " +"(optional)" +msgstr "" +"nom du script avec extension (peut démarrer ou se terminer par \"*\" comme " +"joker) (optionnel)" + +msgid "scripts from repository" +msgstr "scripts du repository" + +#, c-format +msgid "%s%s: error reading list of scripts" +msgstr "%s%s: erreur de lecture de la liste des scripts" + +#, c-format +msgid "%s: %d scripts for WeeChat %s" +msgstr "%s: %d scripts pour WeeChat %s" + +#, c-format +msgid "" +"%s%s: list of scripts is empty (repository file is broken, or download has " +"failed)" +msgstr "" +"%s%s: la liste des scripts est vide (le fichier du repository est cassé, ou " +"bien le téléchargement a échoué)" + +#, c-format +msgid "%s%s: error downloading list of scripts: %s" +msgstr "%s%s: erreur de téléchargement de la liste des scripts: %s" + +#, c-format +msgid "%s: downloading list of scripts..." +msgstr "%s: téléchargement de la liste des scripts..." + msgid "Support of tcl scripts" msgstr "Support des scripts tcl" @@ -8940,9 +9322,6 @@ msgstr "Extension" msgid "Name" msgstr "Nom" -msgid "Description" -msgstr "Description" - msgid "Arguments" msgstr "Paramètres" @@ -8969,6 +9348,3 @@ msgstr "Type" msgid "Constants" msgstr "Constantes" - -#~ msgid "Regex modifier" -#~ msgstr "Modifieur avec expressions régulières" @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.9-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2012-08-02 22:48+0200\n" +"POT-Creation-Date: 2012-08-14 18:26+0200\n" "PO-Revision-Date: 2012-06-03 09:49+0200\n" "Last-Translator: Andras Voroskoi <voroskoi@frugalware.org>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -5866,14 +5866,6 @@ msgid "%s%s: client capability, enabled: %s" msgstr "" #, fuzzy, c-format -msgid "" -"%s%s: cannot authenticate with SASL and mechanism DH-BLOWFISH because " -"WeeChat was not built with libgcrypt support" -msgstr "" -"%s nem sikerült SSL használattal kapcsolódni, mert a WeeChat GNUtls " -"támogatás nélkül lett fordítva\n" - -#, fuzzy, c-format msgid "%s%s: client capability, refused: %s" msgstr "Nem sikerült a(z) \"%s\" naplófájlt írni\n" @@ -7503,65 +7495,6 @@ msgid "%s%s: unable to initialize %s" msgstr "%s nem sikerült a modult betölteni \"%s\"\n" #, fuzzy -msgid "Support of python scripts" -msgstr "Aliaszok listája:\n" - -#, fuzzy, c-format -msgid "%s%s: unable to initialize WeeChat module" -msgstr "%s nem sikerült a modult betölteni \"%s\"\n" - -#, fuzzy, c-format -msgid "%s%s: unable to redirect stdout" -msgstr "Nem sikerült a(z) \"%s\" naplófájlt írni\n" - -#, fuzzy, c-format -msgid "%s%s: unable to redirect stderr" -msgstr "%s nem sikerült a szervert létrehozni\n" - -msgid "path to python 2.x interpreter" -msgstr "" - -#, fuzzy, c-format -msgid "%s%s: unable to launch global interpreter" -msgstr "%s nem sikerült a szervert létrehozni\n" - -#, fuzzy, c-format -msgid "%s%s: unable to get current interpreter state" -msgstr "%s nem sikerült a szervert létrehozni\n" - -#, fuzzy, c-format -msgid "%s%s: unable to free interpreter" -msgstr "%s nem sikerült a szervert létrehozni\n" - -#, fuzzy -msgid "Support of ruby scripts" -msgstr "Aliaszok listája:\n" - -#, fuzzy, c-format -msgid "%s%s: stdout/stderr: %s%s" -msgstr "%sSzerver: %s%s\n" - -#, fuzzy, c-format -msgid "%s%s: unable to read file \"%s\"" -msgstr "Nem sikerült a(z) \"%s\" naplófájlt írni\n" - -#, fuzzy, c-format -msgid "%s%s: error while loading file \"%s\"" -msgstr "Nem sikerült a(z) \"%s\" naplófájlt írni\n" - -#, fuzzy, c-format -msgid "%s%s: function \"weechat_init\" is missing in file \"%s\"" -msgstr "Nem sikerült a(z) \"%s\" naplófájlt írni\n" - -#, fuzzy, c-format -msgid "%s%s: unable to eval function \"weechat_init\" in file \"%s\"" -msgstr "Nem sikerült a(z) \"%s\" naplófájlt írni\n" - -#, fuzzy, c-format -msgid "%s%s: unable to eval WeeChat ruby internal code" -msgstr "%s nem sikerült a szervert létrehozni\n" - -#, fuzzy msgid "list/load/unload scripts" msgstr "modulok listázása/betöltése/eltávolítása" @@ -7674,6 +7607,406 @@ msgid "%s%s: wrong arguments for function \"%s\" (script: %s)" msgstr "%s rossz argumentum a \"%s\" parancsnak\n" #, fuzzy +msgid "Support of python scripts" +msgstr "Aliaszok listája:\n" + +#, fuzzy, c-format +msgid "%s%s: unable to initialize WeeChat module" +msgstr "%s nem sikerült a modult betölteni \"%s\"\n" + +#, fuzzy, c-format +msgid "%s%s: unable to redirect stdout" +msgstr "Nem sikerült a(z) \"%s\" naplófájlt írni\n" + +#, fuzzy, c-format +msgid "%s%s: unable to redirect stderr" +msgstr "%s nem sikerült a szervert létrehozni\n" + +msgid "path to python 2.x interpreter" +msgstr "" + +#, fuzzy, c-format +msgid "%s%s: unable to launch global interpreter" +msgstr "%s nem sikerült a szervert létrehozni\n" + +#, fuzzy, c-format +msgid "%s%s: unable to get current interpreter state" +msgstr "%s nem sikerült a szervert létrehozni\n" + +#, fuzzy, c-format +msgid "%s%s: unable to free interpreter" +msgstr "%s nem sikerült a szervert létrehozni\n" + +#, fuzzy +msgid "Support of ruby scripts" +msgstr "Aliaszok listája:\n" + +#, fuzzy, c-format +msgid "%s%s: stdout/stderr: %s%s" +msgstr "%sSzerver: %s%s\n" + +#, fuzzy, c-format +msgid "%s%s: unable to read file \"%s\"" +msgstr "Nem sikerült a(z) \"%s\" naplófájlt írni\n" + +#, fuzzy, c-format +msgid "%s%s: error while loading file \"%s\"" +msgstr "Nem sikerült a(z) \"%s\" naplófájlt írni\n" + +#, fuzzy, c-format +msgid "%s%s: function \"weechat_init\" is missing in file \"%s\"" +msgstr "Nem sikerült a(z) \"%s\" naplófájlt írni\n" + +#, fuzzy, c-format +msgid "%s%s: unable to eval function \"weechat_init\" in file \"%s\"" +msgstr "Nem sikerült a(z) \"%s\" naplófájlt írni\n" + +#, fuzzy, c-format +msgid "%s%s: unable to eval WeeChat ruby internal code" +msgstr "%s nem sikerült a szervert létrehozni\n" + +msgid "Scripts manager" +msgstr "" + +#, fuzzy +msgid "Scripts loaded:" +msgstr "FIFO cső bezárva\n" + +#, fuzzy, c-format +msgid "%s: unknown language for script \"%s\"" +msgstr "folyamat: \"%s\" szerver betöltése\n" + +#, fuzzy, c-format +msgid "%s%s: error downloading script \"%s\": %s" +msgstr "folyamat: \"%s\" szerver betöltése\n" + +#, fuzzy, c-format +msgid "%s: downloading script \"%s\"..." +msgstr "folyamat: \"%s\" szerver betöltése\n" + +#, fuzzy, c-format +msgid "%s: script \"%s\" is not installed" +msgstr "%s a \"%s\" szerver nem található\n" + +#, fuzzy, c-format +msgid "%s: script \"%s\" is held" +msgstr "A \"%s\" modul eltávolítva.\n" + +#, fuzzy, c-format +msgid "%s: script \"%s\" not found" +msgstr "%s a \"%s\" szerver nem található\n" + +#, fuzzy, c-format +msgid "%s: script \"%s\" not held any more" +msgstr "%s a \"%s\" szerver nem található\n" + +#, fuzzy, c-format +msgid "%s: script \"%s\" held" +msgstr "A \"%s\" modul eltávolítva.\n" + +#, fuzzy, c-format +msgid "%s: script \"%s\" is already installed and up-to-date" +msgstr "%s a \"%s\" szerver már létezik, nem hozhatja létre!\n" + +#, fuzzy, c-format +msgid "%s: all scripts are up-to-date" +msgstr "A \"%s\" modul eltávolítva.\n" + +msgid "Script" +msgstr "" + +msgid "Version" +msgstr "" + +msgid "Author" +msgstr "" + +msgid "License" +msgstr "" + +#, fuzzy +msgid "Description" +msgstr " . leírás : %s\n" + +msgid "Tags" +msgstr "" + +msgid "Status" +msgstr "" + +msgid "Date added" +msgstr "" + +#, fuzzy +msgid "Date updated" +msgstr "A \"%s\" => \"%s\" aliasz elkészült\n" + +msgid "URL" +msgstr "" + +msgid "MD5" +msgstr "" + +msgid "Requires" +msgstr "" + +#, fuzzy +msgid "Min WeeChat" +msgstr "WeeChat szlogen" + +#, fuzzy +msgid "Max WeeChat" +msgstr "WeeChat szlogen" + +msgid "popular" +msgstr "" + +msgid "installed" +msgstr "" + +msgid "held" +msgstr "" + +msgid "running" +msgstr "" + +msgid "obsolete" +msgstr "" + +#, c-format +msgid "alt+d=back to list" +msgstr "" + +#, c-format +msgid "" +"%d/%d scripts (filter: %s) | Sort: %s | alt+i=install r=remove l=load " +"u=unload h=(un)hold d=show detail | Input: 'q'=close 'r'=refresh 's:x," +"y'=sort 'words'=filter '*'=reset filter" +msgstr "" + +msgid "Scripts" +msgstr "" + +#, fuzzy +msgid "WeeChat scripts manager" +msgstr "WeeChat szlogen" + +msgid "" +"list || show <script> || load|unload <script> [<script>...] || install|" +"remove|hold <script> [<script>...] || upgrade || update" +msgstr "" + +msgid "" +" list: list loaded scripts (all languages)\n" +" show: show detailed info about a script\n" +" load: load script(s)\n" +" unload: unload script(s)\n" +" install: install/upgrade script(s)\n" +" remove: remove script(s)\n" +" hold: hold/unhold script(s) (a script held will not be upgraded any more " +"and cannot be removed)\n" +" upgrade: upgrade all installed scripts which are obsolete (new version " +"available)\n" +" update: update local scripts cache\n" +"\n" +"Without argument, this command opens a buffer with list of scripts.\n" +"\n" +"On script buffer, the possible status for each script are:\n" +" * i H r N\n" +" | | | | |\n" +" | | | | obsolete (new version available)\n" +" | | | running (loaded)\n" +" | | held\n" +" | installed\n" +" popular script\n" +"\n" +"Keys on script buffer:\n" +" alt+i install script\n" +" alt+r remove script\n" +" alt+l load script\n" +" alt+u unload script\n" +" alt+h (un)hold script\n" +"\n" +"Input allowed on script buffer:\n" +" q close buffer\n" +" r refresh buffer\n" +" s:x,y sort buffer using keys x and y (see /help script.look.sort)\n" +" s: reset sort (use default sort)\n" +" word(s) filter scripts: search word(s) in scripts (description, " +"tags, ...)\n" +" * remove filter" +msgstr "" + +#, fuzzy +msgid "list of scripts in repository" +msgstr "Aliaszok listája:\n" + +msgid "list of scripts installed (from repository)" +msgstr "" + +msgid "files in script directories" +msgstr "" + +msgid "" +"format of columns displayed in script buffer: following column identifiers " +"are replaced by their value: %a=author, %d=description, %D=date added, " +"%e=extension, %l=language, %L=license, %n=name with extension, %N=name, " +"%r=requirements, %s=status, %t=tags, %u=date updated, %v=version, %V=version " +"loaded, %w=min_weechat, %W=max_weechat)" +msgstr "" + +msgid "" +"default sort keys for scripts: comma-separated list of identifiers: " +"a=author, d=date added, e=extension, i=installed, l=language, n=name, " +"o=obsolete, p=popularity, r=running, u=date updated; char \"-\" can be used " +"before identifier to reverse order; example: \"i,u\": installed scripts " +"first, sorted by update date" +msgstr "" + +#, fuzzy +msgid "color for status \"popular\" (\"*\")" +msgstr "státuszsor színe" + +msgid "color for status \"installed\" (\"i\")" +msgstr "" + +msgid "color for status \"held\" (\"H\")" +msgstr "" + +msgid "color for status \"running\" (\"r\")" +msgstr "" + +msgid "color for status \"obsolete\" (\"N\")" +msgstr "" + +msgid "color for status \"unknown\" (\"?\")" +msgstr "" + +#, fuzzy +msgid "text color in script buffer" +msgstr "szerver nevének színe" + +#, fuzzy +msgid "text color of dates in script buffer" +msgstr "másik fél nevének színe privát beszélgetésben" + +#, fuzzy +msgid "text color of delimiters in script buffer" +msgstr "szerver nevének színe" + +#, fuzzy +msgid "text color of description in script buffer" +msgstr "szerver nevének színe" + +#, fuzzy +msgid "text color of extension in script buffer" +msgstr "szerver nevének színe" + +#, fuzzy +msgid "text color of script name in script buffer" +msgstr "szerver nevének színe" + +#, fuzzy +msgid "text color of tags in script buffer" +msgstr "szerver nevének színe" + +#, fuzzy +msgid "text color of version in script buffer" +msgstr "másik fél nevének színe privát beszélgetésben" + +#, fuzzy +msgid "text color of version loaded in script buffer" +msgstr "másik fél nevének színe privát beszélgetésben" + +#, fuzzy +msgid "background color in script buffer" +msgstr "nevek háttere" + +#, fuzzy +msgid "text color for selected line in script buffer" +msgstr "szerver nevének színe" + +#, fuzzy +msgid "text color of dates for selected line in script buffer" +msgstr "szerver nevének színe" + +#, fuzzy +msgid "text color of description for selected line in script buffer" +msgstr "szerver nevének színe" + +#, fuzzy +msgid "text color of extension for selected line in script buffer" +msgstr "szerver nevének színe" + +#, fuzzy +msgid "text color of script name for selected line in script buffer" +msgstr "szerver nevének színe" + +#, fuzzy +msgid "text color of tags for selected line in script buffer" +msgstr "szerver nevének színe" + +#, fuzzy +msgid "text color of version for selected line in script buffer" +msgstr "szerver nevének színe" + +#, fuzzy +msgid "text color of version loaded for selected line in script buffer" +msgstr "szerver nevének színe" + +#, fuzzy +msgid "background color for selected line in script buffer" +msgstr "szerver nevének színe" + +msgid "" +"local cache expiration time, in minutes (-1 = never expires, 0 = always " +"expire)" +msgstr "" + +msgid "local cache directory for scripts" +msgstr "" + +msgid "" +"scripts to \"hold\": comma-separated list of scripts which will never been " +"upgraded and can not be removed, for example: \"buffers.pl,iset.pl\"" +msgstr "" + +#, fuzzy +msgid "URL for file with list of scripts" +msgstr "Aliaszok listája:\n" + +msgid "" +"script name with extension (can start or end with \"*\" as wildcard) " +"(optional)" +msgstr "" + +#, fuzzy +msgid "scripts from repository" +msgstr "Aliaszok listája:\n" + +#, fuzzy, c-format +msgid "%s%s: error reading list of scripts" +msgstr "%s adatküldési hiba az IRC szerveren\n" + +#, fuzzy, c-format +msgid "%s: %d scripts for WeeChat %s" +msgstr "nincs a szobában" + +#, c-format +msgid "" +"%s%s: list of scripts is empty (repository file is broken, or download has " +"failed)" +msgstr "" + +#, fuzzy, c-format +msgid "%s%s: error downloading list of scripts: %s" +msgstr "%s adatküldési hiba az IRC szerveren\n" + +#, fuzzy, c-format +msgid "%s: downloading list of scripts..." +msgstr "folyamat: \"%s\" szerver betöltése\n" + +#, fuzzy msgid "Support of tcl scripts" msgstr "Aliaszok listája:\n" @@ -8080,10 +8413,6 @@ msgid "Name" msgstr "" #, fuzzy -msgid "Description" -msgstr " . leírás : %s\n" - -#, fuzzy msgid "Arguments" msgstr "fogadó típusa [paraméterek]" @@ -8114,6 +8443,18 @@ msgid "Constants" msgstr "" #, fuzzy +#~ msgid "%s: downloading \"%s\"..." +#~ msgstr "folyamat: \"%s\" szerver betöltése\n" + +#, fuzzy +#~ msgid "" +#~ "%s%s: cannot authenticate with SASL and mechanism DH-BLOWFISH because " +#~ "WeeChat was not built with libgcrypt support" +#~ msgstr "" +#~ "%s nem sikerült SSL használattal kapcsolódni, mert a WeeChat GNUtls " +#~ "támogatás nélkül lett fordítva\n" + +#, fuzzy #~ msgid "Regex modifier" #~ msgstr "Alapértelmezett billentyűparancsok visszaállítva\n" @@ -8145,10 +8486,6 @@ msgstr "" #~ msgstr "%s adatküldési hiba az IRC szerveren\n" #, fuzzy -#~ msgid "%s%s: error sending data to client: %s" -#~ msgstr "%s adatküldési hiba az IRC szerveren\n" - -#, fuzzy #~ msgid "%sError: name can not start with \"#\"" #~ msgstr "%s nem sikerült a \"%s\" fájlt létrehozni\n" @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.9-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2012-08-02 22:48+0200\n" +"POT-Creation-Date: 2012-08-14 18:26+0200\n" "PO-Revision-Date: 2012-07-30 15:38+0200\n" "Last-Translator: Marco Paolone <marcopaolone@gmail.com>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -6554,14 +6554,6 @@ msgid "%s%s: client capability, enabled: %s" msgstr "%s%s: capacità del client, abilitata: %s" #, c-format -msgid "" -"%s%s: cannot authenticate with SASL and mechanism DH-BLOWFISH because " -"WeeChat was not built with libgcrypt support" -msgstr "" -"%s%s: impossibile effettuare l'autenticazione con SASL ed il meccanismo DH-" -"BLOWFISH perché WeeChat non è stato compilato con il suppporto a libgcrypt" - -#, c-format msgid "%s%s: client capability, refused: %s" msgstr "%s%s: capacità del client, rifiutata: %s" @@ -8275,66 +8267,6 @@ msgstr "%s%s: errore sconosciuto durante la lettura del file \"%s\"" msgid "%s%s: unable to initialize %s" msgstr "%s%s: impossibile inizializzare %s" -#, fuzzy -msgid "Support of python scripts" -msgstr "elenco degli script" - -#, c-format -msgid "%s%s: unable to initialize WeeChat module" -msgstr "%s%s: impossibile inizializzare il modulo WeeChat" - -#, c-format -msgid "%s%s: unable to redirect stdout" -msgstr "%s%s: impossibile reindirizzare stdout" - -#, c-format -msgid "%s%s: unable to redirect stderr" -msgstr "%s%s: impossibile reindirizzare stderr" - -msgid "path to python 2.x interpreter" -msgstr "path per l'interprete python 2.x" - -#, c-format -msgid "%s%s: unable to launch global interpreter" -msgstr "%s%s: impossibile avviare l'interprete globale" - -#, c-format -msgid "%s%s: unable to get current interpreter state" -msgstr "%s%s: impossibile ricevere lo stato attuale dell'interprete" - -#, c-format -msgid "%s%s: unable to free interpreter" -msgstr "%s%s: impossibile liberare l'interprete" - -#, fuzzy -msgid "Support of ruby scripts" -msgstr "elenco degli script" - -#, c-format -msgid "%s%s: stdout/stderr: %s%s" -msgstr "%s%s: stdout/stderr: %s%s" - -#, c-format -msgid "%s%s: unable to read file \"%s\"" -msgstr "%s%s: impossibile leggere il file \"%s\"" - -#, c-format -msgid "%s%s: error while loading file \"%s\"" -msgstr "%s%s: errore durante il caricamento del file \"%s\"" - -#, c-format -msgid "%s%s: function \"weechat_init\" is missing in file \"%s\"" -msgstr "%s%s: funzione \"weechat_init\" mancante nel file \"%s\"" - -#, c-format -msgid "%s%s: unable to eval function \"weechat_init\" in file \"%s\"" -msgstr "" -"%s%s: impossibile analizzare la funzione \"weechat_init\" nel file \"%s\"" - -#, c-format -msgid "%s%s: unable to eval WeeChat ruby internal code" -msgstr "%s%s: impossibile analizzare il codice interno ruby di WeeChat" - msgid "list/load/unload scripts" msgstr "elenca/carica/scarica script" @@ -8457,6 +8389,409 @@ msgid "%s%s: wrong arguments for function \"%s\" (script: %s)" msgstr "%s%s: argomenti errati per la funzione \"%s\" (script: %s)" #, fuzzy +msgid "Support of python scripts" +msgstr "elenco degli script" + +#, c-format +msgid "%s%s: unable to initialize WeeChat module" +msgstr "%s%s: impossibile inizializzare il modulo WeeChat" + +#, c-format +msgid "%s%s: unable to redirect stdout" +msgstr "%s%s: impossibile reindirizzare stdout" + +#, c-format +msgid "%s%s: unable to redirect stderr" +msgstr "%s%s: impossibile reindirizzare stderr" + +msgid "path to python 2.x interpreter" +msgstr "path per l'interprete python 2.x" + +#, c-format +msgid "%s%s: unable to launch global interpreter" +msgstr "%s%s: impossibile avviare l'interprete globale" + +#, c-format +msgid "%s%s: unable to get current interpreter state" +msgstr "%s%s: impossibile ricevere lo stato attuale dell'interprete" + +#, c-format +msgid "%s%s: unable to free interpreter" +msgstr "%s%s: impossibile liberare l'interprete" + +#, fuzzy +msgid "Support of ruby scripts" +msgstr "elenco degli script" + +#, c-format +msgid "%s%s: stdout/stderr: %s%s" +msgstr "%s%s: stdout/stderr: %s%s" + +#, c-format +msgid "%s%s: unable to read file \"%s\"" +msgstr "%s%s: impossibile leggere il file \"%s\"" + +#, c-format +msgid "%s%s: error while loading file \"%s\"" +msgstr "%s%s: errore durante il caricamento del file \"%s\"" + +#, c-format +msgid "%s%s: function \"weechat_init\" is missing in file \"%s\"" +msgstr "%s%s: funzione \"weechat_init\" mancante nel file \"%s\"" + +#, c-format +msgid "%s%s: unable to eval function \"weechat_init\" in file \"%s\"" +msgstr "" +"%s%s: impossibile analizzare la funzione \"weechat_init\" nel file \"%s\"" + +#, c-format +msgid "%s%s: unable to eval WeeChat ruby internal code" +msgstr "%s%s: impossibile analizzare il codice interno ruby di WeeChat" + +msgid "Scripts manager" +msgstr "" + +#, fuzzy +msgid "Scripts loaded:" +msgstr "script %s caricati:" + +#, fuzzy, c-format +msgid "%s: unknown language for script \"%s\"" +msgstr "%s: scaricamento dello script \"%s\"" + +#, fuzzy, c-format +msgid "%s%s: error downloading script \"%s\": %s" +msgstr "%s: scaricamento dello script \"%s\"" + +#, fuzzy, c-format +msgid "%s: downloading script \"%s\"..." +msgstr "%s: scaricamento dello script \"%s\"" + +#, fuzzy, c-format +msgid "%s: script \"%s\" is not installed" +msgstr "%s%s: script \"%s\" non caricato" + +#, fuzzy, c-format +msgid "%s: script \"%s\" is held" +msgstr "%s: script \"%s\" scaricato" + +#, fuzzy, c-format +msgid "%s: script \"%s\" not found" +msgstr "%s%s: script \"%s\" non trovato" + +#, fuzzy, c-format +msgid "%s: script \"%s\" not held any more" +msgstr "%s%s: script \"%s\" non caricato" + +#, fuzzy, c-format +msgid "%s: script \"%s\" held" +msgstr "%s: script \"%s\" scaricato" + +#, fuzzy, c-format +msgid "%s: script \"%s\" is already installed and up-to-date" +msgstr "%s%s: script \"%s\" già registrato (funzione register ignorata)" + +#, fuzzy, c-format +msgid "%s: all scripts are up-to-date" +msgstr "%s: script scaricati" + +msgid "Script" +msgstr "" + +msgid "Version" +msgstr "" + +msgid "Author" +msgstr "" + +msgid "License" +msgstr "" + +msgid "Description" +msgstr "Descrizione" + +msgid "Tags" +msgstr "" + +msgid "Status" +msgstr "" + +msgid "Date added" +msgstr "" + +#, fuzzy +msgid "Date updated" +msgstr "Barra \"%s\" aggiornata" + +msgid "URL" +msgstr "" + +msgid "MD5" +msgstr "" + +msgid "Requires" +msgstr "" + +#, fuzzy +msgid "Min WeeChat" +msgstr "esce da WeeChat" + +#, fuzzy +msgid "Max WeeChat" +msgstr "esce da WeeChat" + +msgid "popular" +msgstr "" + +msgid "installed" +msgstr "" + +msgid "held" +msgstr "" + +msgid "running" +msgstr "" + +msgid "obsolete" +msgstr "" + +#, c-format +msgid "alt+d=back to list" +msgstr "" + +#, c-format +msgid "" +"%d/%d scripts (filter: %s) | Sort: %s | alt+i=install r=remove l=load " +"u=unload h=(un)hold d=show detail | Input: 'q'=close 'r'=refresh 's:x," +"y'=sort 'words'=filter '*'=reset filter" +msgstr "" + +msgid "Scripts" +msgstr "" + +#, fuzzy +msgid "WeeChat scripts manager" +msgstr "sito di WeeChat" + +msgid "" +"list || show <script> || load|unload <script> [<script>...] || install|" +"remove|hold <script> [<script>...] || upgrade || update" +msgstr "" + +msgid "" +" list: list loaded scripts (all languages)\n" +" show: show detailed info about a script\n" +" load: load script(s)\n" +" unload: unload script(s)\n" +" install: install/upgrade script(s)\n" +" remove: remove script(s)\n" +" hold: hold/unhold script(s) (a script held will not be upgraded any more " +"and cannot be removed)\n" +" upgrade: upgrade all installed scripts which are obsolete (new version " +"available)\n" +" update: update local scripts cache\n" +"\n" +"Without argument, this command opens a buffer with list of scripts.\n" +"\n" +"On script buffer, the possible status for each script are:\n" +" * i H r N\n" +" | | | | |\n" +" | | | | obsolete (new version available)\n" +" | | | running (loaded)\n" +" | | held\n" +" | installed\n" +" popular script\n" +"\n" +"Keys on script buffer:\n" +" alt+i install script\n" +" alt+r remove script\n" +" alt+l load script\n" +" alt+u unload script\n" +" alt+h (un)hold script\n" +"\n" +"Input allowed on script buffer:\n" +" q close buffer\n" +" r refresh buffer\n" +" s:x,y sort buffer using keys x and y (see /help script.look.sort)\n" +" s: reset sort (use default sort)\n" +" word(s) filter scripts: search word(s) in scripts (description, " +"tags, ...)\n" +" * remove filter" +msgstr "" + +#, fuzzy +msgid "list of scripts in repository" +msgstr "elenco degli script" + +msgid "list of scripts installed (from repository)" +msgstr "" + +msgid "files in script directories" +msgstr "" + +msgid "" +"format of columns displayed in script buffer: following column identifiers " +"are replaced by their value: %a=author, %d=description, %D=date added, " +"%e=extension, %l=language, %L=license, %n=name with extension, %N=name, " +"%r=requirements, %s=status, %t=tags, %u=date updated, %v=version, %V=version " +"loaded, %w=min_weechat, %W=max_weechat)" +msgstr "" + +msgid "" +"default sort keys for scripts: comma-separated list of identifiers: " +"a=author, d=date added, e=extension, i=installed, l=language, n=name, " +"o=obsolete, p=popularity, r=running, u=date updated; char \"-\" can be used " +"before identifier to reverse order; example: \"i,u\": installed scripts " +"first, sorted by update date" +msgstr "" + +#, fuzzy +msgid "color for status \"popular\" (\"*\")" +msgstr "colore del testo per l'ora (barra di stato)" + +msgid "color for status \"installed\" (\"i\")" +msgstr "" + +msgid "color for status \"held\" (\"H\")" +msgstr "" + +msgid "color for status \"running\" (\"r\")" +msgstr "" + +msgid "color for status \"obsolete\" (\"N\")" +msgstr "" + +msgid "color for status \"unknown\" (\"?\")" +msgstr "" + +#, fuzzy +msgid "text color in script buffer" +msgstr "colore del testo nel buffer xfer" + +#, fuzzy +msgid "text color of dates in script buffer" +msgstr "colore del testo per gli altri nick nel buffer privato" + +#, fuzzy +msgid "text color of delimiters in script buffer" +msgstr "colore della riga selezionata nel buffer xfer" + +#, fuzzy +msgid "text color of description in script buffer" +msgstr "colore della riga selezionata nel buffer xfer" + +#, fuzzy +msgid "text color of extension in script buffer" +msgstr "colore della riga selezionata nel buffer xfer" + +#, fuzzy +msgid "text color of script name in script buffer" +msgstr "colore della riga selezionata nel buffer xfer" + +#, fuzzy +msgid "text color of tags in script buffer" +msgstr "colore del testo nel buffer xfer" + +#, fuzzy +msgid "text color of version in script buffer" +msgstr "colore del testo per gli altri nick nel buffer privato" + +#, fuzzy +msgid "text color of version loaded in script buffer" +msgstr "colore del testo per gli altri nick nel buffer privato" + +#, fuzzy +msgid "background color in script buffer" +msgstr "colore di sfondo del buffer xfer" + +#, fuzzy +msgid "text color for selected line in script buffer" +msgstr "colore della riga selezionata nel buffer xfer" + +#, fuzzy +msgid "text color of dates for selected line in script buffer" +msgstr "colore della riga selezionata nel buffer xfer" + +#, fuzzy +msgid "text color of description for selected line in script buffer" +msgstr "colore della riga selezionata nel buffer xfer" + +#, fuzzy +msgid "text color of extension for selected line in script buffer" +msgstr "colore della riga selezionata nel buffer xfer" + +#, fuzzy +msgid "text color of script name for selected line in script buffer" +msgstr "colore della riga selezionata nel buffer xfer" + +#, fuzzy +msgid "text color of tags for selected line in script buffer" +msgstr "colore della riga selezionata nel buffer xfer" + +#, fuzzy +msgid "text color of version for selected line in script buffer" +msgstr "colore della riga selezionata nel buffer xfer" + +#, fuzzy +msgid "text color of version loaded for selected line in script buffer" +msgstr "colore della riga selezionata nel buffer xfer" + +#, fuzzy +msgid "background color for selected line in script buffer" +msgstr "colore della riga selezionata nel buffer xfer" + +msgid "" +"local cache expiration time, in minutes (-1 = never expires, 0 = always " +"expire)" +msgstr "" + +msgid "local cache directory for scripts" +msgstr "" + +msgid "" +"scripts to \"hold\": comma-separated list of scripts which will never been " +"upgraded and can not be removed, for example: \"buffers.pl,iset.pl\"" +msgstr "" + +#, fuzzy +msgid "URL for file with list of scripts" +msgstr "elenco degli script" + +#, fuzzy +msgid "" +"script name with extension (can start or end with \"*\" as wildcard) " +"(optional)" +msgstr "" +"nome script (può iniziare o terminare con \"*\" come carattere jolly) " +"(opzionale)" + +#, fuzzy +msgid "scripts from repository" +msgstr "elenco degli script" + +#, fuzzy, c-format +msgid "%s%s: error reading list of scripts" +msgstr "%s%s: errore durante l'invio dei dati al client: %s" + +#, fuzzy, c-format +msgid "%s: %d scripts for WeeChat %s" +msgstr "%s: script eliminato: %s" + +#, c-format +msgid "" +"%s%s: list of scripts is empty (repository file is broken, or download has " +"failed)" +msgstr "" + +#, fuzzy, c-format +msgid "%s%s: error downloading list of scripts: %s" +msgstr "%s%s: errore durante l'invio dei dati al client: %s" + +#, fuzzy, c-format +msgid "%s: downloading list of scripts..." +msgstr "%s: scaricamento dello script \"%s\"" + +#, fuzzy msgid "Support of tcl scripts" msgstr "elenco degli script" @@ -8843,9 +9178,6 @@ msgstr "Plugin" msgid "Name" msgstr "Nome" -msgid "Description" -msgstr "Descrizione" - msgid "Arguments" msgstr "Argomenti" @@ -8874,6 +9206,18 @@ msgid "Constants" msgstr "Costanti" #, fuzzy +#~ msgid "%s: downloading \"%s\"..." +#~ msgstr "%s: scaricamento dello script \"%s\"" + +#~ msgid "" +#~ "%s%s: cannot authenticate with SASL and mechanism DH-BLOWFISH because " +#~ "WeeChat was not built with libgcrypt support" +#~ msgstr "" +#~ "%s%s: impossibile effettuare l'autenticazione con SASL ed il meccanismo " +#~ "DH-BLOWFISH perché WeeChat non è stato compilato con il suppporto a " +#~ "libgcrypt" + +#, fuzzy #~ msgid "Regex modifier" #~ msgstr "Rmodifier predefiniti:" @@ -8907,9 +9251,6 @@ msgstr "Costanti" #~ msgid "%s%s: sending data to client error %d: %d %s" #~ msgstr "%s%s: errore nell'invio dei dati al client %d (%s)" -#~ msgid "%s%s: error sending data to client: %s" -#~ msgstr "%s%s: errore durante l'invio dei dati al client: %s" - #~ msgid "display channel modes in \"buffer_name\" bar item" #~ msgstr "visualizza le modalità canale nell'elemento barra \"buffer_name\"" @@ -20,7 +20,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.9-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2012-08-02 22:48+0200\n" +"POT-Creation-Date: 2012-08-14 18:26+0200\n" "PO-Revision-Date: 2012-07-27 12:16+0200\n" "Last-Translator: AYANOKOUZI, Ryuunosuke <i38w7i3@yahoo.co.jp>\n" "Language-Team: Japanese <https://github.com/l/WeeChat>\n" @@ -6383,14 +6383,6 @@ msgid "%s%s: client capability, enabled: %s" msgstr "%s%s: クライアント能力、有効化: %s" #, c-format -msgid "" -"%s%s: cannot authenticate with SASL and mechanism DH-BLOWFISH because " -"WeeChat was not built with libgcrypt support" -msgstr "" -"%s%s: WeeChat が libgcrypt をサポートしてビルドされていないので、SASL と DH-" -"BLOWFISH メカニズムの組み合わせでは認証出来ません" - -#, c-format msgid "%s%s: client capability, refused: %s" msgstr "%s%s: クライアント能力、拒否されました: %s" @@ -8074,65 +8066,6 @@ msgstr "%s%s: ファイル \"%s\" のロード中の未定義のエラー" msgid "%s%s: unable to initialize %s" msgstr "%s%s: %s の初期化に失敗" -#, fuzzy -msgid "Support of python scripts" -msgstr "スクリプトのリスト" - -#, c-format -msgid "%s%s: unable to initialize WeeChat module" -msgstr "%s%s: WeeChat モジュールを初期化に失敗" - -#, c-format -msgid "%s%s: unable to redirect stdout" -msgstr "%s%s: 標準入力のリダイレクトに失敗" - -#, c-format -msgid "%s%s: unable to redirect stderr" -msgstr "%s%s: 標準エラーのリダイレクトに失敗" - -msgid "path to python 2.x interpreter" -msgstr "python 2.x インタプリタへのパス" - -#, c-format -msgid "%s%s: unable to launch global interpreter" -msgstr "%s%s: グローバルインタプリタの起動に失敗" - -#, c-format -msgid "%s%s: unable to get current interpreter state" -msgstr "%s%s: 現在のインタプリタの状態の取得に失敗" - -#, c-format -msgid "%s%s: unable to free interpreter" -msgstr "%s%s: インタプリタの開放に失敗" - -#, fuzzy -msgid "Support of ruby scripts" -msgstr "スクリプトのリスト" - -#, c-format -msgid "%s%s: stdout/stderr: %s%s" -msgstr "%s%s: 標準入力/標準エラー: %s%s" - -#, c-format -msgid "%s%s: unable to read file \"%s\"" -msgstr "%s%s: ファイル \"%s\" を読み込めません" - -#, c-format -msgid "%s%s: error while loading file \"%s\"" -msgstr "%s%s: ファイル \"%s\" の読み込み中にエラー" - -#, c-format -msgid "%s%s: function \"weechat_init\" is missing in file \"%s\"" -msgstr "%s%s: 関数 \"weechat_init\" がファイル \"%s\" の中に見つかりません" - -#, c-format -msgid "%s%s: unable to eval function \"weechat_init\" in file \"%s\"" -msgstr "%s%s: ファイル \"%s\" 内の関数 \"weechat_init\" を評価できません" - -#, c-format -msgid "%s%s: unable to eval WeeChat ruby internal code" -msgstr "%s%s: WeeChat ruby 内部コードを評価できません" - msgid "list/load/unload scripts" msgstr "スクリプトをリストアップ/ロード/アンロード" @@ -8250,6 +8183,407 @@ msgid "%s%s: wrong arguments for function \"%s\" (script: %s)" msgstr "%s%s: 関数 \"%s\" の不正な引数 (スクリプト: %s)" #, fuzzy +msgid "Support of python scripts" +msgstr "スクリプトのリスト" + +#, c-format +msgid "%s%s: unable to initialize WeeChat module" +msgstr "%s%s: WeeChat モジュールを初期化に失敗" + +#, c-format +msgid "%s%s: unable to redirect stdout" +msgstr "%s%s: 標準入力のリダイレクトに失敗" + +#, c-format +msgid "%s%s: unable to redirect stderr" +msgstr "%s%s: 標準エラーのリダイレクトに失敗" + +msgid "path to python 2.x interpreter" +msgstr "python 2.x インタプリタへのパス" + +#, c-format +msgid "%s%s: unable to launch global interpreter" +msgstr "%s%s: グローバルインタプリタの起動に失敗" + +#, c-format +msgid "%s%s: unable to get current interpreter state" +msgstr "%s%s: 現在のインタプリタの状態の取得に失敗" + +#, c-format +msgid "%s%s: unable to free interpreter" +msgstr "%s%s: インタプリタの開放に失敗" + +#, fuzzy +msgid "Support of ruby scripts" +msgstr "スクリプトのリスト" + +#, c-format +msgid "%s%s: stdout/stderr: %s%s" +msgstr "%s%s: 標準入力/標準エラー: %s%s" + +#, c-format +msgid "%s%s: unable to read file \"%s\"" +msgstr "%s%s: ファイル \"%s\" を読み込めません" + +#, c-format +msgid "%s%s: error while loading file \"%s\"" +msgstr "%s%s: ファイル \"%s\" の読み込み中にエラー" + +#, c-format +msgid "%s%s: function \"weechat_init\" is missing in file \"%s\"" +msgstr "%s%s: 関数 \"weechat_init\" がファイル \"%s\" の中に見つかりません" + +#, c-format +msgid "%s%s: unable to eval function \"weechat_init\" in file \"%s\"" +msgstr "%s%s: ファイル \"%s\" 内の関数 \"weechat_init\" を評価できません" + +#, c-format +msgid "%s%s: unable to eval WeeChat ruby internal code" +msgstr "%s%s: WeeChat ruby 内部コードを評価できません" + +msgid "Scripts manager" +msgstr "" + +#, fuzzy +msgid "Scripts loaded:" +msgstr "ロードされた %s スクリプト:" + +#, fuzzy, c-format +msgid "%s: unknown language for script \"%s\"" +msgstr "%s: スクリプト \"%s\" のアンロード中" + +#, fuzzy, c-format +msgid "%s%s: error downloading script \"%s\": %s" +msgstr "%s: スクリプト \"%s\" のアンロード中" + +#, fuzzy, c-format +msgid "%s: downloading script \"%s\"..." +msgstr "%s: スクリプト \"%s\" のアンロード中" + +#, fuzzy, c-format +msgid "%s: script \"%s\" is not installed" +msgstr "%s%s: スクリプト \"%s\" はロードされていません" + +#, fuzzy, c-format +msgid "%s: script \"%s\" is held" +msgstr "%s: スクリプト \"%s\" がアンロードされました" + +#, fuzzy, c-format +msgid "%s: script \"%s\" not found" +msgstr "%s%s: スクリプト \"%s\" が見つかりません" + +#, fuzzy, c-format +msgid "%s: script \"%s\" not held any more" +msgstr "%s%s: スクリプト \"%s\" はロードされていません" + +#, fuzzy, c-format +msgid "%s: script \"%s\" held" +msgstr "%s: スクリプト \"%s\" がアンロードされました" + +#, fuzzy, c-format +msgid "%s: script \"%s\" is already installed and up-to-date" +msgstr "%s%s: サーバ \"%s\" は既に存在しており、作成できません" + +#, fuzzy, c-format +msgid "%s: all scripts are up-to-date" +msgstr "%s: スクリプトがロードされました" + +msgid "Script" +msgstr "" + +msgid "Version" +msgstr "" + +msgid "Author" +msgstr "" + +msgid "License" +msgstr "" + +msgid "Description" +msgstr "説明" + +msgid "Tags" +msgstr "" + +msgid "Status" +msgstr "" + +msgid "Date added" +msgstr "" + +#, fuzzy +msgid "Date updated" +msgstr "バー \"%s\" がアップデートされました" + +msgid "URL" +msgstr "" + +msgid "MD5" +msgstr "" + +msgid "Requires" +msgstr "" + +#, fuzzy +msgid "Min WeeChat" +msgstr "WeeChat を終了" + +#, fuzzy +msgid "Max WeeChat" +msgstr "WeeChat を終了" + +msgid "popular" +msgstr "" + +msgid "installed" +msgstr "" + +msgid "held" +msgstr "" + +msgid "running" +msgstr "" + +msgid "obsolete" +msgstr "" + +#, c-format +msgid "alt+d=back to list" +msgstr "" + +#, c-format +msgid "" +"%d/%d scripts (filter: %s) | Sort: %s | alt+i=install r=remove l=load " +"u=unload h=(un)hold d=show detail | Input: 'q'=close 'r'=refresh 's:x," +"y'=sort 'words'=filter '*'=reset filter" +msgstr "" + +msgid "Scripts" +msgstr "" + +#, fuzzy +msgid "WeeChat scripts manager" +msgstr "WeeChat サイト" + +msgid "" +"list || show <script> || load|unload <script> [<script>...] || install|" +"remove|hold <script> [<script>...] || upgrade || update" +msgstr "" + +msgid "" +" list: list loaded scripts (all languages)\n" +" show: show detailed info about a script\n" +" load: load script(s)\n" +" unload: unload script(s)\n" +" install: install/upgrade script(s)\n" +" remove: remove script(s)\n" +" hold: hold/unhold script(s) (a script held will not be upgraded any more " +"and cannot be removed)\n" +" upgrade: upgrade all installed scripts which are obsolete (new version " +"available)\n" +" update: update local scripts cache\n" +"\n" +"Without argument, this command opens a buffer with list of scripts.\n" +"\n" +"On script buffer, the possible status for each script are:\n" +" * i H r N\n" +" | | | | |\n" +" | | | | obsolete (new version available)\n" +" | | | running (loaded)\n" +" | | held\n" +" | installed\n" +" popular script\n" +"\n" +"Keys on script buffer:\n" +" alt+i install script\n" +" alt+r remove script\n" +" alt+l load script\n" +" alt+u unload script\n" +" alt+h (un)hold script\n" +"\n" +"Input allowed on script buffer:\n" +" q close buffer\n" +" r refresh buffer\n" +" s:x,y sort buffer using keys x and y (see /help script.look.sort)\n" +" s: reset sort (use default sort)\n" +" word(s) filter scripts: search word(s) in scripts (description, " +"tags, ...)\n" +" * remove filter" +msgstr "" + +#, fuzzy +msgid "list of scripts in repository" +msgstr "スクリプトのリスト" + +msgid "list of scripts installed (from repository)" +msgstr "" + +msgid "files in script directories" +msgstr "" + +msgid "" +"format of columns displayed in script buffer: following column identifiers " +"are replaced by their value: %a=author, %d=description, %D=date added, " +"%e=extension, %l=language, %L=license, %n=name with extension, %N=name, " +"%r=requirements, %s=status, %t=tags, %u=date updated, %v=version, %V=version " +"loaded, %w=min_weechat, %W=max_weechat)" +msgstr "" + +msgid "" +"default sort keys for scripts: comma-separated list of identifiers: " +"a=author, d=date added, e=extension, i=installed, l=language, n=name, " +"o=obsolete, p=popularity, r=running, u=date updated; char \"-\" can be used " +"before identifier to reverse order; example: \"i,u\": installed scripts " +"first, sorted by update date" +msgstr "" + +#, fuzzy +msgid "color for status \"popular\" (\"*\")" +msgstr "時間のテキスト色 (ステータスバー)" + +msgid "color for status \"installed\" (\"i\")" +msgstr "" + +msgid "color for status \"held\" (\"H\")" +msgstr "" + +msgid "color for status \"running\" (\"r\")" +msgstr "" + +msgid "color for status \"obsolete\" (\"N\")" +msgstr "" + +msgid "color for status \"unknown\" (\"?\")" +msgstr "" + +#, fuzzy +msgid "text color in script buffer" +msgstr "バッファ名のテキスト色" + +#, fuzzy +msgid "text color of dates in script buffer" +msgstr "プライベートバッファ内の他のニックネームのテキスト色" + +#, fuzzy +msgid "text color of delimiters in script buffer" +msgstr "選択されたクライアント行のテキスト色" + +#, fuzzy +msgid "text color of description in script buffer" +msgstr "選択されたクライアント行のテキスト色" + +#, fuzzy +msgid "text color of extension in script buffer" +msgstr "選択されたクライアント行のテキスト色" + +#, fuzzy +msgid "text color of script name in script buffer" +msgstr "選択されたクライアント行のテキスト色" + +#, fuzzy +msgid "text color of tags in script buffer" +msgstr "バッファ名のテキスト色" + +#, fuzzy +msgid "text color of version in script buffer" +msgstr "プライベートバッファ内の他のニックネームのテキスト色" + +#, fuzzy +msgid "text color of version loaded in script buffer" +msgstr "プライベートバッファ内の他のニックネームのテキスト色" + +#, fuzzy +msgid "background color in script buffer" +msgstr "チャットの背景色" + +#, fuzzy +msgid "text color for selected line in script buffer" +msgstr "選択されたクライアント行のテキスト色" + +#, fuzzy +msgid "text color of dates for selected line in script buffer" +msgstr "選択されたクライアント行のテキスト色" + +#, fuzzy +msgid "text color of description for selected line in script buffer" +msgstr "選択されたクライアント行のテキスト色" + +#, fuzzy +msgid "text color of extension for selected line in script buffer" +msgstr "選択されたクライアント行のテキスト色" + +#, fuzzy +msgid "text color of script name for selected line in script buffer" +msgstr "選択されたクライアント行のテキスト色" + +#, fuzzy +msgid "text color of tags for selected line in script buffer" +msgstr "選択されたクライアント行のテキスト色" + +#, fuzzy +msgid "text color of version for selected line in script buffer" +msgstr "選択されたクライアント行のテキスト色" + +#, fuzzy +msgid "text color of version loaded for selected line in script buffer" +msgstr "選択されたクライアント行のテキスト色" + +#, fuzzy +msgid "background color for selected line in script buffer" +msgstr "選択されたクライアント行のテキスト色" + +msgid "" +"local cache expiration time, in minutes (-1 = never expires, 0 = always " +"expire)" +msgstr "" + +msgid "local cache directory for scripts" +msgstr "" + +msgid "" +"scripts to \"hold\": comma-separated list of scripts which will never been " +"upgraded and can not be removed, for example: \"buffers.pl,iset.pl\"" +msgstr "" + +#, fuzzy +msgid "URL for file with list of scripts" +msgstr "スクリプトのリスト" + +#, fuzzy +msgid "" +"script name with extension (can start or end with \"*\" as wildcard) " +"(optional)" +msgstr "" +"スクリプト名 (ワイルドカードとして \"*\" で始めるか終われる) (オプション)" + +#, fuzzy +msgid "scripts from repository" +msgstr "スクリプトのリスト" + +#, fuzzy, c-format +msgid "%s%s: error reading list of scripts" +msgstr "%s%s: クライアントへのデータ送信中にエラー: %s" + +#, fuzzy, c-format +msgid "%s: %d scripts for WeeChat %s" +msgstr "%s: スクリプトが削除されました: %s" + +#, c-format +msgid "" +"%s%s: list of scripts is empty (repository file is broken, or download has " +"failed)" +msgstr "" + +#, fuzzy, c-format +msgid "%s%s: error downloading list of scripts: %s" +msgstr "%s%s: クライアントへのデータ送信中にエラー: %s" + +#, fuzzy, c-format +msgid "%s: downloading list of scripts..." +msgstr "%s: スクリプト \"%s\" のアンロード中" + +#, fuzzy msgid "Support of tcl scripts" msgstr "スクリプトのリスト" @@ -8637,9 +8971,6 @@ msgstr "プラグイン" msgid "Name" msgstr "名前" -msgid "Description" -msgstr "説明" - msgid "Arguments" msgstr "引数" @@ -8668,6 +8999,17 @@ msgid "Constants" msgstr "定数" #, fuzzy +#~ msgid "%s: downloading \"%s\"..." +#~ msgstr "%s: スクリプト \"%s\" のアンロード中" + +#~ msgid "" +#~ "%s%s: cannot authenticate with SASL and mechanism DH-BLOWFISH because " +#~ "WeeChat was not built with libgcrypt support" +#~ msgstr "" +#~ "%s%s: WeeChat が libgcrypt をサポートしてビルドされていないので、SASL と " +#~ "DH-BLOWFISH メカニズムの組み合わせでは認証出来ません" + +#, fuzzy #~ msgid "Regex modifier" #~ msgstr "デフォルトの rmodifier:" @@ -8700,9 +9042,6 @@ msgstr "定数" #~ msgid "%s%s: sending data to client error %d: %d %s" #~ msgstr "%s%s: クライアント %d (%s) へのデータ送信中にエラー" -#~ msgid "%s%s: error sending data to client: %s" -#~ msgstr "%s%s: クライアントへのデータ送信中にエラー: %s" - #~ msgid "display channel modes in \"buffer_name\" bar item" #~ msgstr "\"buffer_name\" バーアイテムにチャンネルモードを表示" @@ -21,7 +21,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.9-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2012-08-02 22:48+0200\n" +"POT-Creation-Date: 2012-08-14 18:26+0200\n" "PO-Revision-Date: 2012-07-27 12:16+0200\n" "Last-Translator: Krzysztof Korościk <soltys@szluug.org>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -6517,14 +6517,6 @@ msgid "%s%s: client capability, enabled: %s" msgstr "%s%s: możliwości klienta, włączone: %s" #, c-format -msgid "" -"%s%s: cannot authenticate with SASL and mechanism DH-BLOWFISH because " -"WeeChat was not built with libgcrypt support" -msgstr "" -"%s%s: nie można uwierzytelnić za pomocą SASL oraz mechanizmu DH-BLOWFISH, " -"ponieważ WeeChat został skompilowany bez wsparcia dla libgcrypt" - -#, c-format msgid "%s%s: client capability, refused: %s" msgstr "%s%s: możliwości klienta, odrzucone: %s" @@ -8214,65 +8206,6 @@ msgstr "%s%s: nieznany błąd podczas ładowania pliku \"%s\"" msgid "%s%s: unable to initialize %s" msgstr "%s%s: nie można zainicjować %s" -#, fuzzy -msgid "Support of python scripts" -msgstr "lista skryptów" - -#, c-format -msgid "%s%s: unable to initialize WeeChat module" -msgstr "%s%s: nie można zainicjować modułu WeeChat" - -#, c-format -msgid "%s%s: unable to redirect stdout" -msgstr "%s%s: nie można przekierować wyjścia" - -#, c-format -msgid "%s%s: unable to redirect stderr" -msgstr "%s%s: nie można przekierować wyjścia błędu" - -msgid "path to python 2.x interpreter" -msgstr "ścieżka do interpretera pythona 2.x" - -#, c-format -msgid "%s%s: unable to launch global interpreter" -msgstr "%s%s: nie można uruchomić globalnego interpretera" - -#, c-format -msgid "%s%s: unable to get current interpreter state" -msgstr "%s%s: nie można pobrać obecnego stanu interpretera" - -#, c-format -msgid "%s%s: unable to free interpreter" -msgstr "%s%s: nie można zwolnić interpretera" - -#, fuzzy -msgid "Support of ruby scripts" -msgstr "lista skryptów" - -#, c-format -msgid "%s%s: stdout/stderr: %s%s" -msgstr "%s%s: stdout/stderr: %s%s" - -#, c-format -msgid "%s%s: unable to read file \"%s\"" -msgstr "%s%s: nie można odczytać pliku \"%s\"" - -#, c-format -msgid "%s%s: error while loading file \"%s\"" -msgstr "%s%s: błąd podczas ładowania pliku \"%s\"" - -#, c-format -msgid "%s%s: function \"weechat_init\" is missing in file \"%s\"" -msgstr "%s%s: funkcja \"weechat_init\" nie znaleziona w pliku \"%s\"" - -#, c-format -msgid "%s%s: unable to eval function \"weechat_init\" in file \"%s\"" -msgstr "%s%s: nie można dokonać oceny funkcji \"weechat_init\" w pliku \"%s\"" - -#, c-format -msgid "%s%s: unable to eval WeeChat ruby internal code" -msgstr "%s%s: nie można ocenić wewnętrznego kodu ruby w WeeChat" - msgid "list/load/unload scripts" msgstr "list/load/unload skrypt" @@ -8390,6 +8323,406 @@ msgid "%s%s: wrong arguments for function \"%s\" (script: %s)" msgstr "%s%s: nieprawidłowe argumenty dla funkcji \"%s\" (skrypt: %s)" #, fuzzy +msgid "Support of python scripts" +msgstr "lista skryptów" + +#, c-format +msgid "%s%s: unable to initialize WeeChat module" +msgstr "%s%s: nie można zainicjować modułu WeeChat" + +#, c-format +msgid "%s%s: unable to redirect stdout" +msgstr "%s%s: nie można przekierować wyjścia" + +#, c-format +msgid "%s%s: unable to redirect stderr" +msgstr "%s%s: nie można przekierować wyjścia błędu" + +msgid "path to python 2.x interpreter" +msgstr "ścieżka do interpretera pythona 2.x" + +#, c-format +msgid "%s%s: unable to launch global interpreter" +msgstr "%s%s: nie można uruchomić globalnego interpretera" + +#, c-format +msgid "%s%s: unable to get current interpreter state" +msgstr "%s%s: nie można pobrać obecnego stanu interpretera" + +#, c-format +msgid "%s%s: unable to free interpreter" +msgstr "%s%s: nie można zwolnić interpretera" + +#, fuzzy +msgid "Support of ruby scripts" +msgstr "lista skryptów" + +#, c-format +msgid "%s%s: stdout/stderr: %s%s" +msgstr "%s%s: stdout/stderr: %s%s" + +#, c-format +msgid "%s%s: unable to read file \"%s\"" +msgstr "%s%s: nie można odczytać pliku \"%s\"" + +#, c-format +msgid "%s%s: error while loading file \"%s\"" +msgstr "%s%s: błąd podczas ładowania pliku \"%s\"" + +#, c-format +msgid "%s%s: function \"weechat_init\" is missing in file \"%s\"" +msgstr "%s%s: funkcja \"weechat_init\" nie znaleziona w pliku \"%s\"" + +#, c-format +msgid "%s%s: unable to eval function \"weechat_init\" in file \"%s\"" +msgstr "%s%s: nie można dokonać oceny funkcji \"weechat_init\" w pliku \"%s\"" + +#, c-format +msgid "%s%s: unable to eval WeeChat ruby internal code" +msgstr "%s%s: nie można ocenić wewnętrznego kodu ruby w WeeChat" + +msgid "Scripts manager" +msgstr "" + +#, fuzzy +msgid "Scripts loaded:" +msgstr "załadowano skrypt %s:" + +#, fuzzy, c-format +msgid "%s: unknown language for script \"%s\"" +msgstr "%s: wyładowuję skrypt \"%s\"" + +#, fuzzy, c-format +msgid "%s%s: error downloading script \"%s\": %s" +msgstr "%s: wyładowuję skrypt \"%s\"" + +#, fuzzy, c-format +msgid "%s: downloading script \"%s\"..." +msgstr "%s: wyładowuję skrypt \"%s\"" + +#, fuzzy, c-format +msgid "%s: script \"%s\" is not installed" +msgstr "%s%s: skrypt \"%s\" nie załadowany" + +#, fuzzy, c-format +msgid "%s: script \"%s\" is held" +msgstr "%s: skrypt \"%s\" wyładowano" + +#, fuzzy, c-format +msgid "%s: script \"%s\" not found" +msgstr "%s%s: nie znaleziono skryptu \"%s\"" + +#, fuzzy, c-format +msgid "%s: script \"%s\" not held any more" +msgstr "%s%s: skrypt \"%s\" nie załadowany" + +#, fuzzy, c-format +msgid "%s: script \"%s\" held" +msgstr "%s: skrypt \"%s\" wyładowano" + +#, fuzzy, c-format +msgid "%s: script \"%s\" is already installed and up-to-date" +msgstr "%s%s: serwer \"%s\" już istnieje, nie mogę go utworzyć!" + +#, fuzzy, c-format +msgid "%s: all scripts are up-to-date" +msgstr "%s: skryptów wyładowano" + +msgid "Script" +msgstr "" + +msgid "Version" +msgstr "" + +msgid "Author" +msgstr "" + +msgid "License" +msgstr "" + +msgid "Description" +msgstr "Opis" + +msgid "Tags" +msgstr "" + +msgid "Status" +msgstr "" + +msgid "Date added" +msgstr "" + +#, fuzzy +msgid "Date updated" +msgstr "Uaktualniono pasek \"%s\"" + +msgid "URL" +msgstr "" + +msgid "MD5" +msgstr "" + +msgid "Requires" +msgstr "" + +#, fuzzy +msgid "Min WeeChat" +msgstr "zakończ WeeChat" + +#, fuzzy +msgid "Max WeeChat" +msgstr "zakończ WeeChat" + +msgid "popular" +msgstr "" + +msgid "installed" +msgstr "" + +msgid "held" +msgstr "" + +msgid "running" +msgstr "" + +msgid "obsolete" +msgstr "" + +#, c-format +msgid "alt+d=back to list" +msgstr "" + +#, c-format +msgid "" +"%d/%d scripts (filter: %s) | Sort: %s | alt+i=install r=remove l=load " +"u=unload h=(un)hold d=show detail | Input: 'q'=close 'r'=refresh 's:x," +"y'=sort 'words'=filter '*'=reset filter" +msgstr "" + +msgid "Scripts" +msgstr "" + +#, fuzzy +msgid "WeeChat scripts manager" +msgstr "Strona WeeChat" + +msgid "" +"list || show <script> || load|unload <script> [<script>...] || install|" +"remove|hold <script> [<script>...] || upgrade || update" +msgstr "" + +msgid "" +" list: list loaded scripts (all languages)\n" +" show: show detailed info about a script\n" +" load: load script(s)\n" +" unload: unload script(s)\n" +" install: install/upgrade script(s)\n" +" remove: remove script(s)\n" +" hold: hold/unhold script(s) (a script held will not be upgraded any more " +"and cannot be removed)\n" +" upgrade: upgrade all installed scripts which are obsolete (new version " +"available)\n" +" update: update local scripts cache\n" +"\n" +"Without argument, this command opens a buffer with list of scripts.\n" +"\n" +"On script buffer, the possible status for each script are:\n" +" * i H r N\n" +" | | | | |\n" +" | | | | obsolete (new version available)\n" +" | | | running (loaded)\n" +" | | held\n" +" | installed\n" +" popular script\n" +"\n" +"Keys on script buffer:\n" +" alt+i install script\n" +" alt+r remove script\n" +" alt+l load script\n" +" alt+u unload script\n" +" alt+h (un)hold script\n" +"\n" +"Input allowed on script buffer:\n" +" q close buffer\n" +" r refresh buffer\n" +" s:x,y sort buffer using keys x and y (see /help script.look.sort)\n" +" s: reset sort (use default sort)\n" +" word(s) filter scripts: search word(s) in scripts (description, " +"tags, ...)\n" +" * remove filter" +msgstr "" + +#, fuzzy +msgid "list of scripts in repository" +msgstr "lista skryptów" + +msgid "list of scripts installed (from repository)" +msgstr "" + +msgid "files in script directories" +msgstr "" + +msgid "" +"format of columns displayed in script buffer: following column identifiers " +"are replaced by their value: %a=author, %d=description, %D=date added, " +"%e=extension, %l=language, %L=license, %n=name with extension, %N=name, " +"%r=requirements, %s=status, %t=tags, %u=date updated, %v=version, %V=version " +"loaded, %w=min_weechat, %W=max_weechat)" +msgstr "" + +msgid "" +"default sort keys for scripts: comma-separated list of identifiers: " +"a=author, d=date added, e=extension, i=installed, l=language, n=name, " +"o=obsolete, p=popularity, r=running, u=date updated; char \"-\" can be used " +"before identifier to reverse order; example: \"i,u\": installed scripts " +"first, sorted by update date" +msgstr "" + +#, fuzzy +msgid "color for status \"popular\" (\"*\")" +msgstr "kolor czasu (pasek statusu)" + +msgid "color for status \"installed\" (\"i\")" +msgstr "" + +msgid "color for status \"held\" (\"H\")" +msgstr "" + +msgid "color for status \"running\" (\"r\")" +msgstr "" + +msgid "color for status \"obsolete\" (\"N\")" +msgstr "" + +msgid "color for status \"unknown\" (\"?\")" +msgstr "" + +#, fuzzy +msgid "text color in script buffer" +msgstr "kolor nazw buforów" + +#, fuzzy +msgid "text color of dates in script buffer" +msgstr "kolor innego nicka w prywatnym buforze" + +#, fuzzy +msgid "text color of delimiters in script buffer" +msgstr "kolor tekstu zaznaczonej linii klienta" + +#, fuzzy +msgid "text color of description in script buffer" +msgstr "kolor tekstu zaznaczonej linii klienta" + +#, fuzzy +msgid "text color of extension in script buffer" +msgstr "kolor tekstu zaznaczonej linii klienta" + +#, fuzzy +msgid "text color of script name in script buffer" +msgstr "kolor tekstu zaznaczonej linii klienta" + +#, fuzzy +msgid "text color of tags in script buffer" +msgstr "kolor nazw buforów" + +#, fuzzy +msgid "text color of version in script buffer" +msgstr "kolor innego nicka w prywatnym buforze" + +#, fuzzy +msgid "text color of version loaded in script buffer" +msgstr "kolor innego nicka w prywatnym buforze" + +#, fuzzy +msgid "background color in script buffer" +msgstr "kolor tła czatu" + +#, fuzzy +msgid "text color for selected line in script buffer" +msgstr "kolor tekstu zaznaczonej linii klienta" + +#, fuzzy +msgid "text color of dates for selected line in script buffer" +msgstr "kolor tekstu zaznaczonej linii klienta" + +#, fuzzy +msgid "text color of description for selected line in script buffer" +msgstr "kolor tekstu zaznaczonej linii klienta" + +#, fuzzy +msgid "text color of extension for selected line in script buffer" +msgstr "kolor tekstu zaznaczonej linii klienta" + +#, fuzzy +msgid "text color of script name for selected line in script buffer" +msgstr "kolor tekstu zaznaczonej linii klienta" + +#, fuzzy +msgid "text color of tags for selected line in script buffer" +msgstr "kolor tekstu zaznaczonej linii klienta" + +#, fuzzy +msgid "text color of version for selected line in script buffer" +msgstr "kolor tekstu zaznaczonej linii klienta" + +#, fuzzy +msgid "text color of version loaded for selected line in script buffer" +msgstr "kolor tekstu zaznaczonej linii klienta" + +#, fuzzy +msgid "background color for selected line in script buffer" +msgstr "kolor tekstu zaznaczonej linii klienta" + +msgid "" +"local cache expiration time, in minutes (-1 = never expires, 0 = always " +"expire)" +msgstr "" + +msgid "local cache directory for scripts" +msgstr "" + +msgid "" +"scripts to \"hold\": comma-separated list of scripts which will never been " +"upgraded and can not be removed, for example: \"buffers.pl,iset.pl\"" +msgstr "" + +#, fuzzy +msgid "URL for file with list of scripts" +msgstr "lista skryptów" + +#, fuzzy +msgid "" +"script name with extension (can start or end with \"*\" as wildcard) " +"(optional)" +msgstr "nazwa skryptu (może się zaczynać lub kończyć \"*\") (opcjonalne)" + +#, fuzzy +msgid "scripts from repository" +msgstr "lista skryptów" + +#, fuzzy, c-format +msgid "%s%s: error reading list of scripts" +msgstr "%s%s: błąd podczas wysyłania danych do klienta: %s" + +#, fuzzy, c-format +msgid "%s: %d scripts for WeeChat %s" +msgstr "%s: usunięto skrypt: %s" + +#, c-format +msgid "" +"%s%s: list of scripts is empty (repository file is broken, or download has " +"failed)" +msgstr "" + +#, fuzzy, c-format +msgid "%s%s: error downloading list of scripts: %s" +msgstr "%s%s: błąd podczas wysyłania danych do klienta: %s" + +#, fuzzy, c-format +msgid "%s: downloading list of scripts..." +msgstr "%s: wyładowuję skrypt \"%s\"" + +#, fuzzy msgid "Support of tcl scripts" msgstr "lista skryptów" @@ -8777,9 +9110,6 @@ msgstr "Wtyczka" msgid "Name" msgstr "Nazwa" -msgid "Description" -msgstr "Opis" - msgid "Arguments" msgstr "Argumenty" @@ -8808,6 +9138,17 @@ msgid "Constants" msgstr "Stałe" #, fuzzy +#~ msgid "%s: downloading \"%s\"..." +#~ msgstr "%s: wyładowuję skrypt \"%s\"" + +#~ msgid "" +#~ "%s%s: cannot authenticate with SASL and mechanism DH-BLOWFISH because " +#~ "WeeChat was not built with libgcrypt support" +#~ msgstr "" +#~ "%s%s: nie można uwierzytelnić za pomocą SASL oraz mechanizmu DH-BLOWFISH, " +#~ "ponieważ WeeChat został skompilowany bez wsparcia dla libgcrypt" + +#, fuzzy #~ msgid "Regex modifier" #~ msgstr "Domyślne rmodifiery:" @@ -8841,9 +9182,6 @@ msgstr "Stałe" #~ msgid "%s%s: sending data to client error %d: %d %s" #~ msgstr "%s%s: błąd podczas wysyłania danych do klienta %d (%s)" -#~ msgid "%s%s: error sending data to client: %s" -#~ msgstr "%s%s: błąd podczas wysyłania danych do klienta: %s" - #~ msgid "display channel modes in \"buffer_name\" bar item" #~ msgstr "wyświetl atrybuty kanału w elemencie paska \"buffer_name\"" diff --git a/po/pt_BR.po b/po/pt_BR.po index b72203d66..9ccef91cd 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -21,7 +21,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.9-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2012-08-02 22:48+0200\n" +"POT-Creation-Date: 2012-08-14 18:26+0200\n" "PO-Revision-Date: 2012-06-03 09:49+0200\n" "Last-Translator: Sergio Durigan Junior <sergiosdj@gmail.com>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -6013,12 +6013,6 @@ msgid "%s%s: client capability, enabled: %s" msgstr "" #, c-format -msgid "" -"%s%s: cannot authenticate with SASL and mechanism DH-BLOWFISH because " -"WeeChat was not built with libgcrypt support" -msgstr "" - -#, c-format msgid "%s%s: client capability, refused: %s" msgstr "" @@ -7646,66 +7640,6 @@ msgstr "%s%s: erro desconhecido ao carregar arquivo \"%s\"" msgid "%s%s: unable to initialize %s" msgstr "%s%s: não foi possível inicializar %s" -#, fuzzy -msgid "Support of python scripts" -msgstr "list de scripts" - -#, c-format -msgid "%s%s: unable to initialize WeeChat module" -msgstr "%s%s: não foi possível inicializar módulo do WeeChat" - -#, c-format -msgid "%s%s: unable to redirect stdout" -msgstr "%s%s: não foi possível redirecionar saída padrão (stdout)" - -#, c-format -msgid "%s%s: unable to redirect stderr" -msgstr "%s%s: não foi possível redirecionar saída de erro (stderr)" - -msgid "path to python 2.x interpreter" -msgstr "diretório do interpretador python 2.x" - -#, c-format -msgid "%s%s: unable to launch global interpreter" -msgstr "%s%s: não foi possível executar interpretador global" - -#, c-format -msgid "%s%s: unable to get current interpreter state" -msgstr "%s%s: não foi possível obter estado do interpretador atual" - -#, c-format -msgid "%s%s: unable to free interpreter" -msgstr "%s%s: não foi possível liberar interpretador" - -#, fuzzy -msgid "Support of ruby scripts" -msgstr "list de scripts" - -#, c-format -msgid "%s%s: stdout/stderr: %s%s" -msgstr "%s%s: stdout/stderr: %s%s" - -#, c-format -msgid "%s%s: unable to read file \"%s\"" -msgstr "%s%s: não foi possível ler arquivo \"%s\"" - -#, c-format -msgid "%s%s: error while loading file \"%s\"" -msgstr "%s%s: erro na leitura do arquivo \"%s\"" - -#, c-format -msgid "%s%s: function \"weechat_init\" is missing in file \"%s\"" -msgstr "%s%s: função \"weechat_init\" está faltando no arquivo \"%s\"" - -#, c-format -msgid "%s%s: unable to eval function \"weechat_init\" in file \"%s\"" -msgstr "" -"%s%s: não foi possível avaliar função \"weechat_init\" no arquivo \"%s\"" - -#, c-format -msgid "%s%s: unable to eval WeeChat ruby internal code" -msgstr "%s%s: não foi possível avaliar código interno Ruby do WeeChat" - msgid "list/load/unload scripts" msgstr "listar/carregar/descarregar scripts" @@ -7823,6 +7757,409 @@ msgid "%s%s: wrong arguments for function \"%s\" (script: %s)" msgstr "%s%s: argumentos inválidos para a função \"%s\" (script: %s)" #, fuzzy +msgid "Support of python scripts" +msgstr "list de scripts" + +#, c-format +msgid "%s%s: unable to initialize WeeChat module" +msgstr "%s%s: não foi possível inicializar módulo do WeeChat" + +#, c-format +msgid "%s%s: unable to redirect stdout" +msgstr "%s%s: não foi possível redirecionar saída padrão (stdout)" + +#, c-format +msgid "%s%s: unable to redirect stderr" +msgstr "%s%s: não foi possível redirecionar saída de erro (stderr)" + +msgid "path to python 2.x interpreter" +msgstr "diretório do interpretador python 2.x" + +#, c-format +msgid "%s%s: unable to launch global interpreter" +msgstr "%s%s: não foi possível executar interpretador global" + +#, c-format +msgid "%s%s: unable to get current interpreter state" +msgstr "%s%s: não foi possível obter estado do interpretador atual" + +#, c-format +msgid "%s%s: unable to free interpreter" +msgstr "%s%s: não foi possível liberar interpretador" + +#, fuzzy +msgid "Support of ruby scripts" +msgstr "list de scripts" + +#, c-format +msgid "%s%s: stdout/stderr: %s%s" +msgstr "%s%s: stdout/stderr: %s%s" + +#, c-format +msgid "%s%s: unable to read file \"%s\"" +msgstr "%s%s: não foi possível ler arquivo \"%s\"" + +#, c-format +msgid "%s%s: error while loading file \"%s\"" +msgstr "%s%s: erro na leitura do arquivo \"%s\"" + +#, c-format +msgid "%s%s: function \"weechat_init\" is missing in file \"%s\"" +msgstr "%s%s: função \"weechat_init\" está faltando no arquivo \"%s\"" + +#, c-format +msgid "%s%s: unable to eval function \"weechat_init\" in file \"%s\"" +msgstr "" +"%s%s: não foi possível avaliar função \"weechat_init\" no arquivo \"%s\"" + +#, c-format +msgid "%s%s: unable to eval WeeChat ruby internal code" +msgstr "%s%s: não foi possível avaliar código interno Ruby do WeeChat" + +msgid "Scripts manager" +msgstr "" + +#, fuzzy +msgid "Scripts loaded:" +msgstr "scripts %s carregados:" + +#, fuzzy, c-format +msgid "%s: unknown language for script \"%s\"" +msgstr "%s: descarregando script \"%s\"" + +#, fuzzy, c-format +msgid "%s%s: error downloading script \"%s\": %s" +msgstr "%s: descarregando script \"%s\"" + +#, fuzzy, c-format +msgid "%s: downloading script \"%s\"..." +msgstr "%s: descarregando script \"%s\"" + +#, fuzzy, c-format +msgid "%s: script \"%s\" is not installed" +msgstr "%s%s: script \"%s\" não carregado" + +#, fuzzy, c-format +msgid "%s: script \"%s\" is held" +msgstr "%s: script \"%s\" descarregado" + +#, fuzzy, c-format +msgid "%s: script \"%s\" not found" +msgstr "%s%s: script \"%s\" não encontrado" + +#, fuzzy, c-format +msgid "%s: script \"%s\" not held any more" +msgstr "%s%s: script \"%s\" não carregado" + +#, fuzzy, c-format +msgid "%s: script \"%s\" held" +msgstr "%s: script \"%s\" descarregado" + +#, c-format +msgid "%s: script \"%s\" is already installed and up-to-date" +msgstr "" + +#, fuzzy, c-format +msgid "%s: all scripts are up-to-date" +msgstr "%s: scripts descarregados" + +msgid "Script" +msgstr "" + +msgid "Version" +msgstr "" + +msgid "Author" +msgstr "" + +msgid "License" +msgstr "" + +msgid "Description" +msgstr "Descrição" + +msgid "Tags" +msgstr "" + +msgid "Status" +msgstr "" + +msgid "Date added" +msgstr "" + +#, fuzzy +msgid "Date updated" +msgstr "Barra \"%s\" atualizada" + +msgid "URL" +msgstr "" + +msgid "MD5" +msgstr "" + +msgid "Requires" +msgstr "" + +#, fuzzy +msgid "Min WeeChat" +msgstr "quit WeeChat" + +#, fuzzy +msgid "Max WeeChat" +msgstr "quit WeeChat" + +msgid "popular" +msgstr "" + +msgid "installed" +msgstr "" + +msgid "held" +msgstr "" + +msgid "running" +msgstr "" + +msgid "obsolete" +msgstr "" + +#, c-format +msgid "alt+d=back to list" +msgstr "" + +#, c-format +msgid "" +"%d/%d scripts (filter: %s) | Sort: %s | alt+i=install r=remove l=load " +"u=unload h=(un)hold d=show detail | Input: 'q'=close 'r'=refresh 's:x," +"y'=sort 'words'=filter '*'=reset filter" +msgstr "" + +msgid "Scripts" +msgstr "" + +#, fuzzy +msgid "WeeChat scripts manager" +msgstr "site do WeeChat" + +msgid "" +"list || show <script> || load|unload <script> [<script>...] || install|" +"remove|hold <script> [<script>...] || upgrade || update" +msgstr "" + +msgid "" +" list: list loaded scripts (all languages)\n" +" show: show detailed info about a script\n" +" load: load script(s)\n" +" unload: unload script(s)\n" +" install: install/upgrade script(s)\n" +" remove: remove script(s)\n" +" hold: hold/unhold script(s) (a script held will not be upgraded any more " +"and cannot be removed)\n" +" upgrade: upgrade all installed scripts which are obsolete (new version " +"available)\n" +" update: update local scripts cache\n" +"\n" +"Without argument, this command opens a buffer with list of scripts.\n" +"\n" +"On script buffer, the possible status for each script are:\n" +" * i H r N\n" +" | | | | |\n" +" | | | | obsolete (new version available)\n" +" | | | running (loaded)\n" +" | | held\n" +" | installed\n" +" popular script\n" +"\n" +"Keys on script buffer:\n" +" alt+i install script\n" +" alt+r remove script\n" +" alt+l load script\n" +" alt+u unload script\n" +" alt+h (un)hold script\n" +"\n" +"Input allowed on script buffer:\n" +" q close buffer\n" +" r refresh buffer\n" +" s:x,y sort buffer using keys x and y (see /help script.look.sort)\n" +" s: reset sort (use default sort)\n" +" word(s) filter scripts: search word(s) in scripts (description, " +"tags, ...)\n" +" * remove filter" +msgstr "" + +#, fuzzy +msgid "list of scripts in repository" +msgstr "list de scripts" + +msgid "list of scripts installed (from repository)" +msgstr "" + +msgid "files in script directories" +msgstr "" + +msgid "" +"format of columns displayed in script buffer: following column identifiers " +"are replaced by their value: %a=author, %d=description, %D=date added, " +"%e=extension, %l=language, %L=license, %n=name with extension, %N=name, " +"%r=requirements, %s=status, %t=tags, %u=date updated, %v=version, %V=version " +"loaded, %w=min_weechat, %W=max_weechat)" +msgstr "" + +msgid "" +"default sort keys for scripts: comma-separated list of identifiers: " +"a=author, d=date added, e=extension, i=installed, l=language, n=name, " +"o=obsolete, p=popularity, r=running, u=date updated; char \"-\" can be used " +"before identifier to reverse order; example: \"i,u\": installed scripts " +"first, sorted by update date" +msgstr "" + +#, fuzzy +msgid "color for status \"popular\" (\"*\")" +msgstr "cor de texto para o tempo (barra de status)" + +msgid "color for status \"installed\" (\"i\")" +msgstr "" + +msgid "color for status \"held\" (\"H\")" +msgstr "" + +msgid "color for status \"running\" (\"r\")" +msgstr "" + +msgid "color for status \"obsolete\" (\"N\")" +msgstr "" + +msgid "color for status \"unknown\" (\"?\")" +msgstr "" + +#, fuzzy +msgid "text color in script buffer" +msgstr "cor do texto para nomes de buffer" + +#, fuzzy +msgid "text color of dates in script buffer" +msgstr "cor de texto para outros apelidos em buffers privados" + +#, fuzzy +msgid "text color of delimiters in script buffer" +msgstr "cor do texto da linha do cliente selecionada" + +#, fuzzy +msgid "text color of description in script buffer" +msgstr "cor do texto da linha do cliente selecionada" + +#, fuzzy +msgid "text color of extension in script buffer" +msgstr "cor do texto da linha do cliente selecionada" + +#, fuzzy +msgid "text color of script name in script buffer" +msgstr "cor do texto da linha do cliente selecionada" + +#, fuzzy +msgid "text color of tags in script buffer" +msgstr "cor do texto para nomes de buffer" + +#, fuzzy +msgid "text color of version in script buffer" +msgstr "cor de texto para outros apelidos em buffers privados" + +#, fuzzy +msgid "text color of version loaded in script buffer" +msgstr "cor de texto para outros apelidos em buffers privados" + +#, fuzzy +msgid "background color in script buffer" +msgstr "cor de fundo para conversa" + +#, fuzzy +msgid "text color for selected line in script buffer" +msgstr "cor do texto da linha do cliente selecionada" + +#, fuzzy +msgid "text color of dates for selected line in script buffer" +msgstr "cor do texto da linha do cliente selecionada" + +#, fuzzy +msgid "text color of description for selected line in script buffer" +msgstr "cor do texto da linha do cliente selecionada" + +#, fuzzy +msgid "text color of extension for selected line in script buffer" +msgstr "cor do texto da linha do cliente selecionada" + +#, fuzzy +msgid "text color of script name for selected line in script buffer" +msgstr "cor do texto da linha do cliente selecionada" + +#, fuzzy +msgid "text color of tags for selected line in script buffer" +msgstr "cor do texto da linha do cliente selecionada" + +#, fuzzy +msgid "text color of version for selected line in script buffer" +msgstr "cor do texto da linha do cliente selecionada" + +#, fuzzy +msgid "text color of version loaded for selected line in script buffer" +msgstr "cor do texto da linha do cliente selecionada" + +#, fuzzy +msgid "background color for selected line in script buffer" +msgstr "cor do texto da linha do cliente selecionada" + +msgid "" +"local cache expiration time, in minutes (-1 = never expires, 0 = always " +"expire)" +msgstr "" + +msgid "local cache directory for scripts" +msgstr "" + +msgid "" +"scripts to \"hold\": comma-separated list of scripts which will never been " +"upgraded and can not be removed, for example: \"buffers.pl,iset.pl\"" +msgstr "" + +#, fuzzy +msgid "URL for file with list of scripts" +msgstr "list de scripts" + +#, fuzzy +msgid "" +"script name with extension (can start or end with \"*\" as wildcard) " +"(optional)" +msgstr "" +"nome do script (pode começar ou terminar com \"*\" como um coringa) " +"(opcional)" + +#, fuzzy +msgid "scripts from repository" +msgstr "list de scripts" + +#, fuzzy, c-format +msgid "%s%s: error reading list of scripts" +msgstr "%s%s: erro ao criar transferência" + +#, fuzzy, c-format +msgid "%s: %d scripts for WeeChat %s" +msgstr "%s: script removido: %s" + +#, c-format +msgid "" +"%s%s: list of scripts is empty (repository file is broken, or download has " +"failed)" +msgstr "" + +#, fuzzy, c-format +msgid "%s%s: error downloading list of scripts: %s" +msgstr "%s%s: erro na leitura do arquivo \"%s\"" + +#, fuzzy, c-format +msgid "%s: downloading list of scripts..." +msgstr "%s: descarregando script \"%s\"" + +#, fuzzy msgid "Support of tcl scripts" msgstr "list de scripts" @@ -8218,9 +8555,6 @@ msgstr "Plugin" msgid "Name" msgstr "Nome" -msgid "Description" -msgstr "Descrição" - msgid "Arguments" msgstr "Argumentos" @@ -8250,6 +8584,10 @@ msgid "Constants" msgstr "" #, fuzzy +#~ msgid "%s: downloading \"%s\"..." +#~ msgstr "%s: descarregando script \"%s\"" + +#, fuzzy #~ msgid "Regex modifier" #~ msgstr "Rmodifiers padrões:" @@ -21,7 +21,7 @@ msgid "" msgstr "" "Project-Id-Version: WeeChat 0.3.9-dev\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2012-08-02 22:48+0200\n" +"POT-Creation-Date: 2012-08-14 18:26+0200\n" "PO-Revision-Date: 2012-06-03 09:49+0200\n" "Last-Translator: Aleksey V Zapparov AKA ixti <ixti@member.fsf.org>\n" "Language-Team: weechat-dev <weechat-dev@nongnu.org>\n" @@ -5890,14 +5890,6 @@ msgid "%s%s: client capability, enabled: %s" msgstr "" #, fuzzy, c-format -msgid "" -"%s%s: cannot authenticate with SASL and mechanism DH-BLOWFISH because " -"WeeChat was not built with libgcrypt support" -msgstr "" -"%s невозможно соединиться с использованием SSL, так как WeeChat собран без " -"поддержки GNUtls\n" - -#, fuzzy, c-format msgid "%s%s: client capability, refused: %s" msgstr "Не могу записать лог-файл \"%s\"\n" @@ -7526,65 +7518,6 @@ msgid "%s%s: unable to initialize %s" msgstr "%s не могу инициализировать plugin \"%s\"\n" #, fuzzy -msgid "Support of python scripts" -msgstr "Список сокращений:\n" - -#, fuzzy, c-format -msgid "%s%s: unable to initialize WeeChat module" -msgstr "%s не могу инициализировать plugin \"%s\"\n" - -#, fuzzy, c-format -msgid "%s%s: unable to redirect stdout" -msgstr "Не могу записать лог-файл \"%s\"\n" - -#, fuzzy, c-format -msgid "%s%s: unable to redirect stderr" -msgstr "%s не могу создать сервер\n" - -msgid "path to python 2.x interpreter" -msgstr "" - -#, fuzzy, c-format -msgid "%s%s: unable to launch global interpreter" -msgstr "%s не могу создать сервер\n" - -#, fuzzy, c-format -msgid "%s%s: unable to get current interpreter state" -msgstr "%s не могу создать сервер\n" - -#, fuzzy, c-format -msgid "%s%s: unable to free interpreter" -msgstr "%s не могу создать сервер\n" - -#, fuzzy -msgid "Support of ruby scripts" -msgstr "Список сокращений:\n" - -#, fuzzy, c-format -msgid "%s%s: stdout/stderr: %s%s" -msgstr "%sСервер: %s%s\n" - -#, fuzzy, c-format -msgid "%s%s: unable to read file \"%s\"" -msgstr "Не могу записать лог-файл \"%s\"\n" - -#, fuzzy, c-format -msgid "%s%s: error while loading file \"%s\"" -msgstr "Не могу записать лог-файл \"%s\"\n" - -#, fuzzy, c-format -msgid "%s%s: function \"weechat_init\" is missing in file \"%s\"" -msgstr "Не могу записать лог-файл \"%s\"\n" - -#, fuzzy, c-format -msgid "%s%s: unable to eval function \"weechat_init\" in file \"%s\"" -msgstr "Не могу записать лог-файл \"%s\"\n" - -#, fuzzy, c-format -msgid "%s%s: unable to eval WeeChat ruby internal code" -msgstr "%s не могу создать сервер\n" - -#, fuzzy msgid "list/load/unload scripts" msgstr "перечислить/загрузить/выгрузить plugin'ы" @@ -7697,6 +7630,406 @@ msgid "%s%s: wrong arguments for function \"%s\" (script: %s)" msgstr "%s некорректные аргументы команды \"%s\"\n" #, fuzzy +msgid "Support of python scripts" +msgstr "Список сокращений:\n" + +#, fuzzy, c-format +msgid "%s%s: unable to initialize WeeChat module" +msgstr "%s не могу инициализировать plugin \"%s\"\n" + +#, fuzzy, c-format +msgid "%s%s: unable to redirect stdout" +msgstr "Не могу записать лог-файл \"%s\"\n" + +#, fuzzy, c-format +msgid "%s%s: unable to redirect stderr" +msgstr "%s не могу создать сервер\n" + +msgid "path to python 2.x interpreter" +msgstr "" + +#, fuzzy, c-format +msgid "%s%s: unable to launch global interpreter" +msgstr "%s не могу создать сервер\n" + +#, fuzzy, c-format +msgid "%s%s: unable to get current interpreter state" +msgstr "%s не могу создать сервер\n" + +#, fuzzy, c-format +msgid "%s%s: unable to free interpreter" +msgstr "%s не могу создать сервер\n" + +#, fuzzy +msgid "Support of ruby scripts" +msgstr "Список сокращений:\n" + +#, fuzzy, c-format +msgid "%s%s: stdout/stderr: %s%s" +msgstr "%sСервер: %s%s\n" + +#, fuzzy, c-format +msgid "%s%s: unable to read file \"%s\"" +msgstr "Не могу записать лог-файл \"%s\"\n" + +#, fuzzy, c-format +msgid "%s%s: error while loading file \"%s\"" +msgstr "Не могу записать лог-файл \"%s\"\n" + +#, fuzzy, c-format +msgid "%s%s: function \"weechat_init\" is missing in file \"%s\"" +msgstr "Не могу записать лог-файл \"%s\"\n" + +#, fuzzy, c-format +msgid "%s%s: unable to eval function \"weechat_init\" in file \"%s\"" +msgstr "Не могу записать лог-файл \"%s\"\n" + +#, fuzzy, c-format +msgid "%s%s: unable to eval WeeChat ruby internal code" +msgstr "%s не могу создать сервер\n" + +msgid "Scripts manager" +msgstr "" + +#, fuzzy +msgid "Scripts loaded:" +msgstr "FIFO pipe закрыт\n" + +#, fuzzy, c-format +msgid "%s: unknown language for script \"%s\"" +msgstr "сессия: загружаю сервер \"%s\"\n" + +#, fuzzy, c-format +msgid "%s%s: error downloading script \"%s\": %s" +msgstr "сессия: загружаю сервер \"%s\"\n" + +#, fuzzy, c-format +msgid "%s: downloading script \"%s\"..." +msgstr "сессия: загружаю сервер \"%s\"\n" + +#, fuzzy, c-format +msgid "%s: script \"%s\" is not installed" +msgstr "%s сервер \"%s\" не найден\n" + +#, fuzzy, c-format +msgid "%s: script \"%s\" is held" +msgstr "Plugin \"%s\" выгружен.\n" + +#, fuzzy, c-format +msgid "%s: script \"%s\" not found" +msgstr "%s сервер \"%s\" не найден\n" + +#, fuzzy, c-format +msgid "%s: script \"%s\" not held any more" +msgstr "%s сервер \"%s\" не найден\n" + +#, fuzzy, c-format +msgid "%s: script \"%s\" held" +msgstr "Plugin \"%s\" выгружен.\n" + +#, fuzzy, c-format +msgid "%s: script \"%s\" is already installed and up-to-date" +msgstr "%s сервер \"%s\" уже существует, не могу создать его!\n" + +#, fuzzy, c-format +msgid "%s: all scripts are up-to-date" +msgstr "Plugin \"%s\" выгружен.\n" + +msgid "Script" +msgstr "" + +msgid "Version" +msgstr "" + +msgid "Author" +msgstr "" + +msgid "License" +msgstr "" + +#, fuzzy +msgid "Description" +msgstr " . описание: %s\n" + +msgid "Tags" +msgstr "" + +msgid "Status" +msgstr "" + +msgid "Date added" +msgstr "" + +#, fuzzy +msgid "Date updated" +msgstr "Сокращение \"%s\" => \"%s\" создано\n" + +msgid "URL" +msgstr "" + +msgid "MD5" +msgstr "" + +msgid "Requires" +msgstr "" + +#, fuzzy +msgid "Min WeeChat" +msgstr "слоган WeeChat" + +#, fuzzy +msgid "Max WeeChat" +msgstr "слоган WeeChat" + +msgid "popular" +msgstr "" + +msgid "installed" +msgstr "" + +msgid "held" +msgstr "" + +msgid "running" +msgstr "" + +msgid "obsolete" +msgstr "" + +#, c-format +msgid "alt+d=back to list" +msgstr "" + +#, c-format +msgid "" +"%d/%d scripts (filter: %s) | Sort: %s | alt+i=install r=remove l=load " +"u=unload h=(un)hold d=show detail | Input: 'q'=close 'r'=refresh 's:x," +"y'=sort 'words'=filter '*'=reset filter" +msgstr "" + +msgid "Scripts" +msgstr "" + +#, fuzzy +msgid "WeeChat scripts manager" +msgstr "слоган WeeChat" + +msgid "" +"list || show <script> || load|unload <script> [<script>...] || install|" +"remove|hold <script> [<script>...] || upgrade || update" +msgstr "" + +msgid "" +" list: list loaded scripts (all languages)\n" +" show: show detailed info about a script\n" +" load: load script(s)\n" +" unload: unload script(s)\n" +" install: install/upgrade script(s)\n" +" remove: remove script(s)\n" +" hold: hold/unhold script(s) (a script held will not be upgraded any more " +"and cannot be removed)\n" +" upgrade: upgrade all installed scripts which are obsolete (new version " +"available)\n" +" update: update local scripts cache\n" +"\n" +"Without argument, this command opens a buffer with list of scripts.\n" +"\n" +"On script buffer, the possible status for each script are:\n" +" * i H r N\n" +" | | | | |\n" +" | | | | obsolete (new version available)\n" +" | | | running (loaded)\n" +" | | held\n" +" | installed\n" +" popular script\n" +"\n" +"Keys on script buffer:\n" +" alt+i install script\n" +" alt+r remove script\n" +" alt+l load script\n" +" alt+u unload script\n" +" alt+h (un)hold script\n" +"\n" +"Input allowed on script buffer:\n" +" q close buffer\n" +" r refresh buffer\n" +" s:x,y sort buffer using keys x and y (see /help script.look.sort)\n" +" s: reset sort (use default sort)\n" +" word(s) filter scripts: search word(s) in scripts (description, " +"tags, ...)\n" +" * remove filter" +msgstr "" + +#, fuzzy +msgid "list of scripts in repository" +msgstr "Список сокращений:\n" + +msgid "list of scripts installed (from repository)" +msgstr "" + +msgid "files in script directories" +msgstr "" + +msgid "" +"format of columns displayed in script buffer: following column identifiers " +"are replaced by their value: %a=author, %d=description, %D=date added, " +"%e=extension, %l=language, %L=license, %n=name with extension, %N=name, " +"%r=requirements, %s=status, %t=tags, %u=date updated, %v=version, %V=version " +"loaded, %w=min_weechat, %W=max_weechat)" +msgstr "" + +msgid "" +"default sort keys for scripts: comma-separated list of identifiers: " +"a=author, d=date added, e=extension, i=installed, l=language, n=name, " +"o=obsolete, p=popularity, r=running, u=date updated; char \"-\" can be used " +"before identifier to reverse order; example: \"i,u\": installed scripts " +"first, sorted by update date" +msgstr "" + +#, fuzzy +msgid "color for status \"popular\" (\"*\")" +msgstr "цвет строки состояния" + +msgid "color for status \"installed\" (\"i\")" +msgstr "" + +msgid "color for status \"held\" (\"H\")" +msgstr "" + +msgid "color for status \"running\" (\"r\")" +msgstr "" + +msgid "color for status \"obsolete\" (\"N\")" +msgstr "" + +msgid "color for status \"unknown\" (\"?\")" +msgstr "" + +#, fuzzy +msgid "text color in script buffer" +msgstr "цвет названия сервера" + +#, fuzzy +msgid "text color of dates in script buffer" +msgstr "цвет ника собеседника в окне привата" + +#, fuzzy +msgid "text color of delimiters in script buffer" +msgstr "цвет названия сервера" + +#, fuzzy +msgid "text color of description in script buffer" +msgstr "цвет названия сервера" + +#, fuzzy +msgid "text color of extension in script buffer" +msgstr "цвет названия сервера" + +#, fuzzy +msgid "text color of script name in script buffer" +msgstr "цвет названия сервера" + +#, fuzzy +msgid "text color of tags in script buffer" +msgstr "цвет названия сервера" + +#, fuzzy +msgid "text color of version in script buffer" +msgstr "цвет ника собеседника в окне привата" + +#, fuzzy +msgid "text color of version loaded in script buffer" +msgstr "цвет ника собеседника в окне привата" + +#, fuzzy +msgid "background color in script buffer" +msgstr "фон ников" + +#, fuzzy +msgid "text color for selected line in script buffer" +msgstr "цвет названия сервера" + +#, fuzzy +msgid "text color of dates for selected line in script buffer" +msgstr "цвет названия сервера" + +#, fuzzy +msgid "text color of description for selected line in script buffer" +msgstr "цвет названия сервера" + +#, fuzzy +msgid "text color of extension for selected line in script buffer" +msgstr "цвет названия сервера" + +#, fuzzy +msgid "text color of script name for selected line in script buffer" +msgstr "цвет названия сервера" + +#, fuzzy +msgid "text color of tags for selected line in script buffer" +msgstr "цвет названия сервера" + +#, fuzzy +msgid "text color of version for selected line in script buffer" +msgstr "цвет названия сервера" + +#, fuzzy +msgid "text color of version loaded for selected line in script buffer" +msgstr "цвет названия сервера" + +#, fuzzy +msgid "background color for selected line in script buffer" +msgstr "цвет названия сервера" + +msgid "" +"local cache expiration time, in minutes (-1 = never expires, 0 = always " +"expire)" +msgstr "" + +msgid "local cache directory for scripts" +msgstr "" + +msgid "" +"scripts to \"hold\": comma-separated list of scripts which will never been " +"upgraded and can not be removed, for example: \"buffers.pl,iset.pl\"" +msgstr "" + +#, fuzzy +msgid "URL for file with list of scripts" +msgstr "Список сокращений:\n" + +msgid "" +"script name with extension (can start or end with \"*\" as wildcard) " +"(optional)" +msgstr "" + +#, fuzzy +msgid "scripts from repository" +msgstr "Список сокращений:\n" + +#, fuzzy, c-format +msgid "%s%s: error reading list of scripts" +msgstr "%s ошибка при отправке данных IRC серверу\n" + +#, fuzzy, c-format +msgid "%s: %d scripts for WeeChat %s" +msgstr "не на канале" + +#, c-format +msgid "" +"%s%s: list of scripts is empty (repository file is broken, or download has " +"failed)" +msgstr "" + +#, fuzzy, c-format +msgid "%s%s: error downloading list of scripts: %s" +msgstr "%s ошибка при отправке данных IRC серверу\n" + +#, fuzzy, c-format +msgid "%s: downloading list of scripts..." +msgstr "сессия: загружаю сервер \"%s\"\n" + +#, fuzzy msgid "Support of tcl scripts" msgstr "Список сокращений:\n" @@ -8099,10 +8432,6 @@ msgid "Name" msgstr "" #, fuzzy -msgid "Description" -msgstr " . описание: %s\n" - -#, fuzzy msgid "Arguments" msgstr "адресат тип [аргументы]" @@ -8133,6 +8462,18 @@ msgid "Constants" msgstr "" #, fuzzy +#~ msgid "%s: downloading \"%s\"..." +#~ msgstr "сессия: загружаю сервер \"%s\"\n" + +#, fuzzy +#~ msgid "" +#~ "%s%s: cannot authenticate with SASL and mechanism DH-BLOWFISH because " +#~ "WeeChat was not built with libgcrypt support" +#~ msgstr "" +#~ "%s невозможно соединиться с использованием SSL, так как WeeChat собран " +#~ "без поддержки GNUtls\n" + +#, fuzzy #~ msgid "Regex modifier" #~ msgstr "Комбинации клавиш по умолчанию восстановлены\n" @@ -8164,10 +8505,6 @@ msgstr "" #~ msgstr "%s ошибка при отправке данных IRC серверу\n" #, fuzzy -#~ msgid "%s%s: error sending data to client: %s" -#~ msgstr "%s ошибка при отправке данных IRC серверу\n" - -#, fuzzy #~ msgid "%sError: name can not start with \"#\"" #~ msgstr "%s не могу создать файл \"%s\"\n" diff --git a/po/srcfiles.cmake b/po/srcfiles.cmake index 19bf394f9..a2e05661a 100644 --- a/po/srcfiles.cmake +++ b/po/srcfiles.cmake @@ -230,6 +230,12 @@ SET(WEECHAT_SOURCES ./src/plugins/perl/weechat-perl-api.h ./src/plugins/perl/weechat-perl.c ./src/plugins/perl/weechat-perl.h +./src/plugins/plugin-script.c +./src/plugins/plugin-script.h +./src/plugins/plugin-script-api.c +./src/plugins/plugin-script-api.h +./src/plugins/plugin-script-callback.c +./src/plugins/plugin-script-callback.h ./src/plugins/python/weechat-python-api.c ./src/plugins/python/weechat-python-api.h ./src/plugins/python/weechat-python.c @@ -238,12 +244,22 @@ SET(WEECHAT_SOURCES ./src/plugins/ruby/weechat-ruby-api.h ./src/plugins/ruby/weechat-ruby.c ./src/plugins/ruby/weechat-ruby.h -./src/plugins/plugin-script-api.c -./src/plugins/plugin-script-api.h -./src/plugins/plugin-script.c -./src/plugins/plugin-script-callback.c -./src/plugins/plugin-script-callback.h -./src/plugins/plugin-script.h +./src/plugins/script/script.c +./src/plugins/script/script.h +./src/plugins/script/script-action.c +./src/plugins/script/script-action.h +./src/plugins/script/script-buffer.c +./src/plugins/script/script-buffer.h +./src/plugins/script/script-command.c +./src/plugins/script/script-command.h +./src/plugins/script/script-completion.c +./src/plugins/script/script-completion.h +./src/plugins/script/script-config.c +./src/plugins/script/script-config.h +./src/plugins/script/script-info.c +./src/plugins/script/script-info.h +./src/plugins/script/script-repo.c +./src/plugins/script/script-repo.h ./src/plugins/tcl/weechat-tcl-api.c ./src/plugins/tcl/weechat-tcl-api.h ./src/plugins/tcl/weechat-tcl.c diff --git a/po/weechat.pot b/po/weechat.pot index 5eb38173c..2dba5d6fa 100644 --- a/po/weechat.pot +++ b/po/weechat.pot @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: flashcode@flashtux.org\n" -"POT-Creation-Date: 2012-08-02 22:48+0200\n" +"POT-Creation-Date: 2012-08-14 18:26+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -5083,12 +5083,6 @@ msgid "%s%s: client capability, enabled: %s" msgstr "" #, c-format -msgid "" -"%s%s: cannot authenticate with SASL and mechanism DH-BLOWFISH because " -"WeeChat was not built with libgcrypt support" -msgstr "" - -#, c-format msgid "%s%s: client capability, refused: %s" msgstr "" @@ -6602,6 +6596,101 @@ msgstr "" msgid "%s%s: unable to initialize %s" msgstr "" +msgid "list/load/unload scripts" +msgstr "" + +msgid "" +"list|listfull [<name>] || load <filename> || autoload || reload|unload " +"[<name>]" +msgstr "" + +msgid "" +" list: list loaded scripts\n" +"listfull: list loaded scripts (verbose)\n" +" load: load a script\n" +"autoload: load all scripts in \"autoload\" directory\n" +" reload: reload a script (if no name given, unload all scripts, then load " +"all scripts in \"autoload\" directory)\n" +" unload: unload a script (if no name given, unload all scripts)\n" +"filename: script (file) to load\n" +" name: a script name (name used in call to \"register\" function)\n" +"\n" +"Without argument, this command lists all loaded scripts." +msgstr "" + +msgid "list of scripts" +msgstr "" + +msgid "script pointer (optional)" +msgstr "" + +msgid "script name (can start or end with \"*\" as wildcard) (optional)" +msgstr "" + +#, c-format +msgid "" +"%s%s: warning, invalid pointer (\"%s\") for function \"%s\" (script: %s)" +msgstr "" + +#, c-format +msgid "%s: error loading script \"%s\" (bad name, spaces are forbidden)" +msgstr "" + +#, c-format +msgid "" +"%s%s: warning, license \"%s\" for script \"%s\" differs from plugin license " +"(\"%s\")" +msgstr "" + +#, c-format +msgid "%s: error loading script \"%s\" (not enough memory)" +msgstr "" + +#, c-format +msgid "%s: script removed: %s" +msgstr "" + +#, c-format +msgid "%s%s: failed to remove script: %s (%s)" +msgstr "" + +#, c-format +msgid "%s: script \"%s\" not found, nothing was removed" +msgstr "" + +#, c-format +msgid "%s%s: failed to move script %s to %s (%s)" +msgstr "" + +#. TRANSLATORS: "%s" is language (for example "perl") +#, c-format +msgid "%s scripts loaded:" +msgstr "" + +#, c-format +msgid " file: %s" +msgstr "" + +#, c-format +msgid " written by \"%s\", license: %s" +msgstr "" + +msgid " (none)" +msgstr "" + +#, c-format +msgid "%s: scripts unloaded" +msgstr "" + +#, c-format +msgid "" +"%s%s: unable to call function \"%s\", script is not initialized (script: %s)" +msgstr "" + +#, c-format +msgid "%s%s: wrong arguments for function \"%s\" (script: %s)" +msgstr "" + msgid "Support of python scripts" msgstr "" @@ -6659,99 +6748,316 @@ msgstr "" msgid "%s%s: unable to eval WeeChat ruby internal code" msgstr "" -msgid "list/load/unload scripts" +msgid "Scripts manager" msgstr "" -msgid "" -"list|listfull [<name>] || load <filename> || autoload || reload|unload " -"[<name>]" +msgid "Scripts loaded:" msgstr "" -msgid "" -" list: list loaded scripts\n" -"listfull: list loaded scripts (verbose)\n" -" load: load a script\n" -"autoload: load all scripts in \"autoload\" directory\n" -" reload: reload a script (if no name given, unload all scripts, then load " -"all scripts in \"autoload\" directory)\n" -" unload: unload a script (if no name given, unload all scripts)\n" -"filename: script (file) to load\n" -" name: a script name (name used in call to \"register\" function)\n" -"\n" -"Without argument, this command lists all loaded scripts." +#, c-format +msgid "%s: unknown language for script \"%s\"" msgstr "" -msgid "list of scripts" +#, c-format +msgid "%s%s: error downloading script \"%s\": %s" msgstr "" -msgid "script pointer (optional)" +#, c-format +msgid "%s: downloading script \"%s\"..." msgstr "" -msgid "script name (can start or end with \"*\" as wildcard) (optional)" +#, c-format +msgid "%s: script \"%s\" is not installed" msgstr "" #, c-format -msgid "" -"%s%s: warning, invalid pointer (\"%s\") for function \"%s\" (script: %s)" +msgid "%s: script \"%s\" is held" msgstr "" #, c-format -msgid "%s: error loading script \"%s\" (bad name, spaces are forbidden)" +msgid "%s: script \"%s\" not found" msgstr "" #, c-format -msgid "" -"%s%s: warning, license \"%s\" for script \"%s\" differs from plugin license " -"(\"%s\")" +msgid "%s: script \"%s\" not held any more" msgstr "" #, c-format -msgid "%s: error loading script \"%s\" (not enough memory)" +msgid "%s: script \"%s\" held" msgstr "" #, c-format -msgid "%s: script removed: %s" +msgid "%s: script \"%s\" is already installed and up-to-date" msgstr "" #, c-format -msgid "%s%s: failed to remove script: %s (%s)" +msgid "%s: all scripts are up-to-date" msgstr "" -#, c-format -msgid "%s: script \"%s\" not found, nothing was removed" +msgid "Script" msgstr "" -#, c-format -msgid "%s%s: failed to move script %s to %s (%s)" +msgid "Version" msgstr "" -#. TRANSLATORS: "%s" is language (for example "perl") -#, c-format -msgid "%s scripts loaded:" +msgid "Author" +msgstr "" + +msgid "License" +msgstr "" + +msgid "Description" +msgstr "" + +msgid "Tags" +msgstr "" + +msgid "Status" +msgstr "" + +msgid "Date added" +msgstr "" + +msgid "Date updated" +msgstr "" + +msgid "URL" +msgstr "" + +msgid "MD5" +msgstr "" + +msgid "Requires" +msgstr "" + +msgid "Min WeeChat" +msgstr "" + +msgid "Max WeeChat" +msgstr "" + +msgid "popular" +msgstr "" + +msgid "installed" +msgstr "" + +msgid "held" +msgstr "" + +msgid "running" +msgstr "" + +msgid "obsolete" msgstr "" #, c-format -msgid " file: %s" +msgid "alt+d=back to list" msgstr "" #, c-format -msgid " written by \"%s\", license: %s" +msgid "" +"%d/%d scripts (filter: %s) | Sort: %s | alt+i=install r=remove l=load " +"u=unload h=(un)hold d=show detail | Input: 'q'=close 'r'=refresh 's:x," +"y'=sort 'words'=filter '*'=reset filter" msgstr "" -msgid " (none)" +msgid "Scripts" +msgstr "" + +msgid "WeeChat scripts manager" +msgstr "" + +msgid "" +"list || show <script> || load|unload <script> [<script>...] || install|" +"remove|hold <script> [<script>...] || upgrade || update" +msgstr "" + +msgid "" +" list: list loaded scripts (all languages)\n" +" show: show detailed info about a script\n" +" load: load script(s)\n" +" unload: unload script(s)\n" +" install: install/upgrade script(s)\n" +" remove: remove script(s)\n" +" hold: hold/unhold script(s) (a script held will not be upgraded any more " +"and cannot be removed)\n" +" upgrade: upgrade all installed scripts which are obsolete (new version " +"available)\n" +" update: update local scripts cache\n" +"\n" +"Without argument, this command opens a buffer with list of scripts.\n" +"\n" +"On script buffer, the possible status for each script are:\n" +" * i H r N\n" +" | | | | |\n" +" | | | | obsolete (new version available)\n" +" | | | running (loaded)\n" +" | | held\n" +" | installed\n" +" popular script\n" +"\n" +"Keys on script buffer:\n" +" alt+i install script\n" +" alt+r remove script\n" +" alt+l load script\n" +" alt+u unload script\n" +" alt+h (un)hold script\n" +"\n" +"Input allowed on script buffer:\n" +" q close buffer\n" +" r refresh buffer\n" +" s:x,y sort buffer using keys x and y (see /help script.look.sort)\n" +" s: reset sort (use default sort)\n" +" word(s) filter scripts: search word(s) in scripts (description, " +"tags, ...)\n" +" * remove filter" +msgstr "" + +msgid "list of scripts in repository" +msgstr "" + +msgid "list of scripts installed (from repository)" +msgstr "" + +msgid "files in script directories" +msgstr "" + +msgid "" +"format of columns displayed in script buffer: following column identifiers " +"are replaced by their value: %a=author, %d=description, %D=date added, " +"%e=extension, %l=language, %L=license, %n=name with extension, %N=name, " +"%r=requirements, %s=status, %t=tags, %u=date updated, %v=version, %V=version " +"loaded, %w=min_weechat, %W=max_weechat)" +msgstr "" + +msgid "" +"default sort keys for scripts: comma-separated list of identifiers: " +"a=author, d=date added, e=extension, i=installed, l=language, n=name, " +"o=obsolete, p=popularity, r=running, u=date updated; char \"-\" can be used " +"before identifier to reverse order; example: \"i,u\": installed scripts " +"first, sorted by update date" +msgstr "" + +msgid "color for status \"popular\" (\"*\")" +msgstr "" + +msgid "color for status \"installed\" (\"i\")" +msgstr "" + +msgid "color for status \"held\" (\"H\")" +msgstr "" + +msgid "color for status \"running\" (\"r\")" +msgstr "" + +msgid "color for status \"obsolete\" (\"N\")" +msgstr "" + +msgid "color for status \"unknown\" (\"?\")" +msgstr "" + +msgid "text color in script buffer" +msgstr "" + +msgid "text color of dates in script buffer" +msgstr "" + +msgid "text color of delimiters in script buffer" +msgstr "" + +msgid "text color of description in script buffer" +msgstr "" + +msgid "text color of extension in script buffer" +msgstr "" + +msgid "text color of script name in script buffer" +msgstr "" + +msgid "text color of tags in script buffer" +msgstr "" + +msgid "text color of version in script buffer" +msgstr "" + +msgid "text color of version loaded in script buffer" +msgstr "" + +msgid "background color in script buffer" +msgstr "" + +msgid "text color for selected line in script buffer" +msgstr "" + +msgid "text color of dates for selected line in script buffer" +msgstr "" + +msgid "text color of description for selected line in script buffer" +msgstr "" + +msgid "text color of extension for selected line in script buffer" +msgstr "" + +msgid "text color of script name for selected line in script buffer" +msgstr "" + +msgid "text color of tags for selected line in script buffer" +msgstr "" + +msgid "text color of version for selected line in script buffer" +msgstr "" + +msgid "text color of version loaded for selected line in script buffer" +msgstr "" + +msgid "background color for selected line in script buffer" +msgstr "" + +msgid "" +"local cache expiration time, in minutes (-1 = never expires, 0 = always " +"expire)" +msgstr "" + +msgid "local cache directory for scripts" +msgstr "" + +msgid "" +"scripts to \"hold\": comma-separated list of scripts which will never been " +"upgraded and can not be removed, for example: \"buffers.pl,iset.pl\"" +msgstr "" + +msgid "URL for file with list of scripts" +msgstr "" + +msgid "" +"script name with extension (can start or end with \"*\" as wildcard) " +"(optional)" +msgstr "" + +msgid "scripts from repository" msgstr "" #, c-format -msgid "%s: scripts unloaded" +msgid "%s%s: error reading list of scripts" +msgstr "" + +#, c-format +msgid "%s: %d scripts for WeeChat %s" msgstr "" #, c-format msgid "" -"%s%s: unable to call function \"%s\", script is not initialized (script: %s)" +"%s%s: list of scripts is empty (repository file is broken, or download has " +"failed)" msgstr "" #, c-format -msgid "%s%s: wrong arguments for function \"%s\" (script: %s)" +msgid "%s%s: error downloading list of scripts: %s" +msgstr "" + +#, c-format +msgid "%s: downloading list of scripts..." msgstr "" msgid "Support of tcl scripts" @@ -7103,9 +7409,6 @@ msgstr "" msgid "Name" msgstr "" -msgid "Description" -msgstr "" - msgid "Arguments" msgstr "" diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 503737b09..3e39cd328 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -90,13 +90,9 @@ IF(ENABLE_NLS) ENDIF(ENABLE_NLS) # Check for libgcrypt -IF(ENABLE_GCRYPT) - FIND_PACKAGE(Gcrypt) - IF(GCRYPT_FOUND) - ADD_DEFINITIONS(-DHAVE_GCRYPT) - LIST(APPEND EXTRA_LIBS "${GCRYPT_LDFLAGS}") - ENDIF(GCRYPT_FOUND) -ENDIF(ENABLE_GCRYPT) +FIND_PACKAGE(Gcrypt REQUIRED) +ADD_DEFINITIONS(-DHAVE_GCRYPT) +LIST(APPEND EXTRA_LIBS "${GCRYPT_LDFLAGS}") # Check for GnuTLS IF(ENABLE_GNUTLS) @@ -112,12 +108,8 @@ IF(ENABLE_GNUTLS) ENDIF(ENABLE_GNUTLS) # Check for zlib -IF(ENABLE_ZLIB) - FIND_PACKAGE(ZLIB) - IF(ZLIB_FOUND) - ADD_DEFINITIONS(-DHAVE_ZLIB) - ENDIF(ZLIB_FOUND) -ENDIF(ENABLE_ZLIB) +FIND_PACKAGE(ZLIB REQUIRED) +ADD_DEFINITIONS(-DHAVE_ZLIB) # Check for iconv FIND_PACKAGE(Iconv) diff --git a/src/core/wee-network.c b/src/core/wee-network.c index 97d2d5e23..6b2480243 100644 --- a/src/core/wee-network.c +++ b/src/core/wee-network.c @@ -37,15 +37,12 @@ #include <arpa/inet.h> #include <netdb.h> #include <errno.h> +#include <gcrypt.h> #ifdef HAVE_GNUTLS #include <gnutls/gnutls.h> #endif -#ifdef HAVE_GCRYPT -#include <gcrypt.h> -#endif - #include "weechat.h" #include "wee-network.h" #include "wee-hook.h" @@ -121,14 +118,12 @@ network_init () } #endif /* HAVE_GNUTLS */ -#ifdef HAVE_GCRYPT if (!weechat_no_gcrypt) { gcry_check_version (GCRYPT_VERSION); gcry_control (GCRYCTL_DISABLE_SECMEM, 0); gcry_control (GCRYCTL_INITIALIZATION_FINISHED, 0); } -#endif /* HAVE_GCRYPT */ network_init_ok = 1; } diff --git a/src/gui/curses/gui-curses-key.c b/src/gui/curses/gui-curses-key.c index 70591b160..31b91cb27 100644 --- a/src/gui/curses/gui-curses-key.c +++ b/src/gui/curses/gui-curses-key.c @@ -266,6 +266,8 @@ gui_key_default_bindings (int context) BIND("@chat:button1-gesture-right-long", "/window ${_window_number};/input jump_last_buffer"); BIND("@chat:wheelup", "/window scroll_up -window ${_window_number}"); BIND("@chat:wheeldown", "/window scroll_down -window ${_window_number}"); + BIND("@chat(script.scripts):wheelup", "/script up 5"); + BIND("@chat(script.scripts):wheeldown", "/script down 5"); /* mouse events on nicklist */ BIND("@bar(nicklist):button1-gesture-up", "/bar scroll nicklist ${_window_number} -100%"); BIND("@bar(nicklist):button1-gesture-down", "/bar scroll nicklist ${_window_number} +100%"); diff --git a/src/plugins/CMakeLists.txt b/src/plugins/CMakeLists.txt index 7e3b84bf4..cb5d705b0 100644 --- a/src/plugins/CMakeLists.txt +++ b/src/plugins/CMakeLists.txt @@ -82,6 +82,10 @@ IF(ENABLE_RMODIFIER) ADD_SUBDIRECTORY( rmodifier ) ENDIF(ENABLE_RMODIFIER) +IF(ENABLE_SCRIPT) + ADD_SUBDIRECTORY( script ) +ENDIF(ENABLE_SCRIPT) + IF(ENABLE_XFER) ADD_SUBDIRECTORY( xfer ) ENDIF(ENABLE_XFER) diff --git a/src/plugins/Makefile.am b/src/plugins/Makefile.am index 977b657e2..aa10d4aaa 100644 --- a/src/plugins/Makefile.am +++ b/src/plugins/Makefile.am @@ -75,6 +75,10 @@ if PLUGIN_RMODIFIER rmodifier_dir = rmodifier endif +if PLUGIN_SCRIPT +script_dir = script +endif + if PLUGIN_XFER xfer_dir = xfer endif @@ -104,7 +108,7 @@ guile_dir = guile endif SUBDIRS = . $(alias_dir) $(aspell_dir) $(charset_dir) $(demo_dir) $(fifo_dir) \ - $(irc_dir) $(logger_dir) $(relay_dir) $(rmodifier_dir) \ + $(irc_dir) $(logger_dir) $(relay_dir) $(rmodifier_dir) $(script_dir) \ $(xfer_dir) $(perl_dir) $(python_dir) $(ruby_dir) $(lua_dir) \ $(tcl_dir) $(guile_dir) diff --git a/src/plugins/irc/CMakeLists.txt b/src/plugins/irc/CMakeLists.txt index 0601cae7b..d38c14244 100644 --- a/src/plugins/irc/CMakeLists.txt +++ b/src/plugins/irc/CMakeLists.txt @@ -52,9 +52,7 @@ IF(GNUTLS_FOUND) LIST(APPEND LINK_LIBS ${GNUTLS_LIBRARY}) ENDIF(GNUTLS_FOUND) -IF(GCRYPT_FOUND) - LIST(APPEND LINK_LIBS gcrypt) -ENDIF(GCRYPT_FOUND) +LIST(APPEND LINK_LIBS gcrypt) TARGET_LINK_LIBRARIES(irc ${LINK_LIBS}) diff --git a/src/plugins/irc/irc-protocol.c b/src/plugins/irc/irc-protocol.c index e7c4d7f77..d8e156984 100644 --- a/src/plugins/irc/irc-protocol.c +++ b/src/plugins/irc/irc-protocol.c @@ -331,19 +331,8 @@ IRC_PROTOCOL_CALLBACK(cap) IRC_SERVER_OPTION_SASL_MECHANISM)) { case IRC_SASL_MECHANISM_DH_BLOWFISH: -#ifdef HAVE_GCRYPT irc_server_sendf (server, 0, NULL, "AUTHENTICATE DH-BLOWFISH"); -#else - weechat_printf (server->buffer, - _("%s%s: cannot authenticate with SASL " - "and mechanism DH-BLOWFISH because " - "WeeChat was not built with " - "libgcrypt support"), - weechat_prefix ("error"), - IRC_PLUGIN_NAME); - irc_server_sendf (server, 0, NULL, "CAP END"); -#endif break; case IRC_SASL_MECHANISM_EXTERNAL: irc_server_sendf (server, 0, NULL, diff --git a/src/plugins/irc/irc-sasl.c b/src/plugins/irc/irc-sasl.c index 0231183a6..7e5057ade 100644 --- a/src/plugins/irc/irc-sasl.c +++ b/src/plugins/irc/irc-sasl.c @@ -26,10 +26,7 @@ #include <stdio.h> #include <string.h> #include <arpa/inet.h> - -#ifdef HAVE_GCRYPT #include <gcrypt.h> -#endif #include "../weechat-plugin.h" #include "irc.h" @@ -91,7 +88,6 @@ irc_sasl_mechanism_dh_blowfish (const char *data_base64, const char *sasl_username, const char *sasl_password) { -#ifdef HAVE_GCRYPT char *data, *answer, *ptr_answer, *answer_base64; unsigned char *ptr_data, *secret_bin, *public_bin; unsigned char *password_clear, *password_crypted; @@ -245,12 +241,4 @@ end: gcry_mpi_release (secret_mpi); return answer_base64; -#else - /* make C compiler happy */ - (void) data_base64; - (void) sasl_username; - (void) sasl_password; - - return NULL; -#endif } diff --git a/src/plugins/relay/CMakeLists.txt b/src/plugins/relay/CMakeLists.txt index cf02a5e8e..bdd827632 100644 --- a/src/plugins/relay/CMakeLists.txt +++ b/src/plugins/relay/CMakeLists.txt @@ -37,9 +37,7 @@ SET_TARGET_PROPERTIES(relay PROPERTIES PREFIX "") SET (LINK_LIBS) -IF(ZLIB_FOUND) - LIST(APPEND LINK_LIBS ${ZLIB_LIBRARY}) -ENDIF(ZLIB_FOUND) +LIST(APPEND LINK_LIBS ${ZLIB_LIBRARY}) IF(GNUTLS_FOUND) INCLUDE_DIRECTORIES(${GNUTLS_INCLUDE_PATH}) diff --git a/src/plugins/relay/weechat/relay-weechat-msg.c b/src/plugins/relay/weechat/relay-weechat-msg.c index 2a5f785ea..91c05c30f 100644 --- a/src/plugins/relay/weechat/relay-weechat-msg.c +++ b/src/plugins/relay/weechat/relay-weechat-msg.c @@ -30,10 +30,7 @@ #include <sys/time.h> #include <errno.h> #include <arpa/inet.h> - -#ifdef HAVE_ZLIB #include <zlib.h> -#endif #include "../../weechat-plugin.h" #include "../relay.h" @@ -964,7 +961,6 @@ relay_weechat_msg_send (struct t_relay_client *client, { uint32_t size32; char compression; -#ifdef HAVE_ZLIB int rc; Bytef *dest; uLongf dest_size; @@ -1009,7 +1005,8 @@ relay_weechat_msg_send (struct t_relay_client *client, free (dest); } } -#endif + + /* compression with zlib failed (or not asked), send uncompressed message */ /* set size and compression flag */ size32 = htonl ((uint32_t)msg->data_size); diff --git a/src/plugins/relay/weechat/relay-weechat.c b/src/plugins/relay/weechat/relay-weechat.c index c82323ecf..5728b8055 100644 --- a/src/plugins/relay/weechat/relay-weechat.c +++ b/src/plugins/relay/weechat/relay-weechat.c @@ -201,11 +201,7 @@ relay_weechat_alloc (struct t_relay_client *client) if (client->protocol_data) { RELAY_WEECHAT_DATA(client, password_ok) = (password && password[0]) ? 0 : 1; -#ifdef HAVE_ZLIB RELAY_WEECHAT_DATA(client, compression) = 1; -#else - RELAY_WEECHAT_DATA(client, compression) = 0; -#endif RELAY_WEECHAT_DATA(client, buffers_sync) = weechat_hashtable_new (16, WEECHAT_HASHTABLE_STRING, diff --git a/src/plugins/script/CMakeLists.txt b/src/plugins/script/CMakeLists.txt new file mode 100644 index 000000000..e1d8b5570 --- /dev/null +++ b/src/plugins/script/CMakeLists.txt @@ -0,0 +1,43 @@ +# +# Copyright (C) 2003-2012 Sebastien Helleu <flashcode@flashtux.org> +# +# This file is part of WeeChat, the extensible chat client. +# +# WeeChat 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 3 of the License, or +# (at your option) any later version. +# +# WeeChat 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 WeeChat. If not, see <http://www.gnu.org/licenses/>. +# + +ADD_LIBRARY(script MODULE +script.c script.h +script-action.c script-action.h +script-buffer.c script-buffer.h +script-command.c script-command.h +script-completion.c script-completion.h +script-config.c script-config.h +script-info.c script-info.h +script-repo.c script-repo.h) +SET_TARGET_PROPERTIES(script PROPERTIES PREFIX "") + +SET (LINK_LIBS) + +IF(ZLIB_FOUND) + LIST(APPEND LINK_LIBS ${ZLIB_LIBRARY}) +ENDIF(ZLIB_FOUND) + +IF(GCRYPT_FOUND) + LIST(APPEND LINK_LIBS gcrypt) +ENDIF(GCRYPT_FOUND) + +TARGET_LINK_LIBRARIES(script ${LINK_LIBS}) + +INSTALL(TARGETS script LIBRARY DESTINATION ${LIBDIR}/plugins) diff --git a/src/plugins/script/Makefile.am b/src/plugins/script/Makefile.am new file mode 100644 index 000000000..0f07f3dfe --- /dev/null +++ b/src/plugins/script/Makefile.am @@ -0,0 +1,46 @@ +# +# Copyright (C) 2003-2012 Sebastien Helleu <flashcode@flashtux.org> +# +# This file is part of WeeChat, the extensible chat client. +# +# WeeChat 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 3 of the License, or +# (at your option) any later version. +# +# WeeChat 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 WeeChat. If not, see <http://www.gnu.org/licenses/>. +# + +INCLUDES = -DLOCALEDIR=\"$(datadir)/locale\" $(ZLIB_CFLAGS) $(GCRYPT_CFLAGS) + +libdir = ${weechat_libdir}/plugins + +lib_LTLIBRARIES = script.la + +script_la_SOURCES = script.c \ + script.h \ + script-action.c \ + script-action.h \ + script-buffer.c \ + script-buffer.h \ + script-command.c \ + script-command.h \ + script-completion.c \ + script-completion.h \ + script-config.c \ + script-config.h \ + script-info.c \ + script-info.h \ + script-repo.c \ + script-repo.h + +script_la_LDFLAGS = -module +script_la_LIBADD = $(SCRIPT_LFLAGS) $(ZLIB_LFLAGS) $(GCRYPT_LFLAGS) + +EXTRA_DIST = CMakeLists.txt diff --git a/src/plugins/script/script-action.c b/src/plugins/script/script-action.c new file mode 100644 index 000000000..aabb8e504 --- /dev/null +++ b/src/plugins/script/script-action.c @@ -0,0 +1,710 @@ +/* + * Copyright (C) 2003-2012 Sebastien Helleu <flashcode@flashtux.org> + * + * This file is part of WeeChat, the extensible chat client. + * + * WeeChat 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 3 of the License, or + * (at your option) any later version. + * + * WeeChat 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 WeeChat. If not, see <http://www.gnu.org/licenses/>. + */ + +/* + * script-action.c: actions on scripts (load/unload, install/remove, hold, ...) + */ + +#include <stdlib.h> +#include <string.h> +#include <stdio.h> +#include <libgen.h> + +#include "../weechat-plugin.h" +#include "script.h" +#include "script-action.h" +#include "script-buffer.h" +#include "script-config.h" +#include "script-repo.h" + + +char *script_actions = NULL; + + +void script_action_install (); + + +/* + * script_action_list: list loaded scripts (all languages) + */ + +void +script_action_list () +{ + int i, scripts_loaded; + char hdata_name[128]; + const char *ptr_name; + struct t_hdata *hdata; + void *ptr_script; + + weechat_printf (NULL, ""); + weechat_printf (NULL, _("Scripts loaded:")); + + scripts_loaded = 0; + + for (i = 0; script_language[i]; i++) + { + snprintf (hdata_name, sizeof (hdata_name), + "%s_script", script_language[i]); + hdata = weechat_hdata_get (hdata_name); + ptr_script = weechat_hdata_get_list (hdata, "scripts"); + while (ptr_script) + { + ptr_name = weechat_hdata_string (hdata, ptr_script, "name"); + weechat_printf (NULL, " %s %s%s%s.%s %s%s %s(%s%s%s)", + script_repo_get_status_for_display (script_repo_search_by_name (ptr_name), + "*?HN", 0), + weechat_color (weechat_config_string (script_config_color_text_name)), + ptr_name, + weechat_color (weechat_config_string (script_config_color_text_extension)), + script_extension[i], + weechat_color (weechat_config_string (script_config_color_text_version)), + weechat_hdata_string (hdata, ptr_script, "version"), + weechat_color ("chat_delimiters"), + weechat_color (weechat_config_string (script_config_color_text_description)), + weechat_hdata_string (hdata, ptr_script, "description"), + weechat_color ("chat_delimiters")); + scripts_loaded++; + ptr_script = weechat_hdata_move (hdata, ptr_script, 1); + } + } + + if (scripts_loaded == 0) + { + weechat_printf (NULL, _(" (none)")); + } +} + +/* + * script_action_load: load a script + */ + +void +script_action_load (const char *name) +{ + char *pos, str_command[1024]; + int language; + + language = -1; + pos = strrchr (name, '.'); + if (pos) + language = script_language_search_by_extension (pos + 1); + if (language < 0) + { + weechat_printf (NULL, + _("%s: unknown language for script \"%s\""), + SCRIPT_PLUGIN_NAME, name); + return; + } + + /* execute command (for example: "/perl load iset.pl") */ + snprintf (str_command, sizeof (str_command), + "/%s load %s", + script_language[language], + name); + weechat_command (NULL, str_command); +} + +/* + * script_action_unload: unload a script + */ + +void +script_action_unload (const char *name) +{ + char *pos, hdata_name[128], *filename, *ptr_base_name, str_command[1024]; + const char *ptr_filename, *ptr_registered_name; + int language, found, i; + struct t_hdata *hdata; + void *ptr_script; + + language = -1; + pos = strrchr (name, '.'); + if (pos) + { + /* unload script by using name + extension (example: "iset.pl") */ + language = script_language_search_by_extension (pos + 1); + if (language < 0) + { + weechat_printf (NULL, + _("%s: unknown language for script \"%s\""), + SCRIPT_PLUGIN_NAME, name); + return; + } + /* + * search registered name of script using name with extension, + * for example with "iset.pl" we should find "iset" + */ + snprintf (hdata_name, sizeof (hdata_name), + "%s_script", script_language[language]); + hdata = weechat_hdata_get (hdata_name); + ptr_script = weechat_hdata_get_list (hdata, "scripts"); + while (ptr_script) + { + found = 0; + ptr_filename = weechat_hdata_string (hdata, ptr_script, "filename"); + if (ptr_filename) + { + filename = strdup (ptr_filename); + if (filename) + { + ptr_base_name = basename (filename); + if (strcmp (ptr_base_name, name) == 0) + found = 1; + free (filename); + } + } + if (found) + { + ptr_registered_name = weechat_hdata_string (hdata, ptr_script, + "name"); + if (ptr_registered_name) + { + snprintf (str_command, sizeof (str_command), + "/%s unload %s", + script_language[language], + ptr_registered_name); + weechat_command (NULL, str_command); + } + return; + } + ptr_script = weechat_hdata_move (hdata, ptr_script, 1); + } + } + else + { + /* unload script by using name (example: "iset") */ + for (i = 0; script_language[i]; i++) + { + snprintf (hdata_name, sizeof (hdata_name), + "%s_script", script_language[i]); + hdata = weechat_hdata_get (hdata_name); + ptr_script = weechat_hdata_get_list (hdata, "scripts"); + while (ptr_script) + { + ptr_registered_name = weechat_hdata_string (hdata, ptr_script, + "name"); + if (strcmp (ptr_registered_name, name) == 0) + { + snprintf (str_command, sizeof (str_command), + "/%s unload %s", + script_language[i], + name); + weechat_command (NULL, str_command); + return; + } + ptr_script = weechat_hdata_move (hdata, ptr_script, 1); + } + } + } +} + +/* + * script_action_installnext_timer_cb: callback called to install next script + */ + +int +script_action_installnext_timer_cb (void *data, int remaining_calls) +{ + /* make C compiler happy */ + (void) data; + (void) remaining_calls; + + script_action_install (); + + return WEECHAT_RC_OK; +} + +/* + * script_action_install_process_cb: callback called when script is downloaded + */ + +int +script_action_install_process_cb (void *data, const char *command, + int return_code, const char *out, + const char *err) +{ + char *pos, *filename, str_signal[256]; + struct t_repo_script *ptr_script; + + /* make C compiler happy */ + (void) data; + + if (return_code >= 0) + { + pos = strrchr (command, '/'); + + if ((err && err[0]) || (out && (strncmp (out, "error:", 6) == 0))) + { + weechat_printf (NULL, + _("%s%s: error downloading script \"%s\": %s"), + weechat_prefix ("error"), + SCRIPT_PLUGIN_NAME, + (pos) ? pos + 1 : "?", + (err && err[0]) ? err : out + 6); + return WEECHAT_RC_OK; + } + + if (pos) + { + ptr_script = script_repo_search_by_name_ext (pos + 1); + if (ptr_script) + { + filename = script_config_get_script_download_filename (ptr_script); + if (filename) + { + snprintf (str_signal, sizeof (str_signal), + "%s_script_install", + script_language[ptr_script->language]); + weechat_hook_signal_send (str_signal, + WEECHAT_HOOK_SIGNAL_STRING, + filename); + free (filename); + } + + /* schedule install of next script */ + weechat_hook_timer (10, 0, 1, + &script_action_installnext_timer_cb, NULL); + } + } + } + + return WEECHAT_RC_OK; +} + +/* + * script_action_install: install script(s) marked for install + */ + +void +script_action_install () +{ + struct t_repo_script *ptr_script, *ptr_script_to_install; + char *filename, *url; + int length; + struct t_hashtable *options; + + ptr_script_to_install = NULL; + + for (ptr_script = repo_scripts; ptr_script; + ptr_script = ptr_script->next_script) + { + if (ptr_script->install_order > 0) + { + if (ptr_script->install_order == 1) + ptr_script_to_install = ptr_script; + ptr_script->install_order--; + } + } + + if (ptr_script_to_install) + { + filename = script_config_get_script_download_filename (ptr_script_to_install); + if (filename) + { + options = weechat_hashtable_new (8, + WEECHAT_HASHTABLE_STRING, + WEECHAT_HASHTABLE_STRING, + NULL, + NULL); + if (options) + { + length = 4 + strlen (ptr_script_to_install->url) + 1; + url = malloc (length); + if (url) + { + weechat_printf (NULL, + _("%s: downloading script \"%s\"..."), + SCRIPT_PLUGIN_NAME, + ptr_script_to_install->name_with_extension); + + snprintf (url, length, "url:%s", + ptr_script_to_install->url); + weechat_hashtable_set (options, "file_out", filename); + weechat_hook_process_hashtable (url, options, 30000, + &script_action_install_process_cb, + NULL); + free (url); + } + weechat_hashtable_free (options); + } + free (filename); + } + } +} + +/* + * script_action_remove: remove a script + */ + +void +script_action_remove (const char *name) +{ + struct t_repo_script *ptr_script; + char str_signal[256]; + + ptr_script = script_repo_search_by_name_ext (name); + if (ptr_script) + { + if (!(ptr_script->status & SCRIPT_STATUS_INSTALLED)) + { + weechat_printf (NULL, + _("%s: script \"%s\" is not installed"), + SCRIPT_PLUGIN_NAME, name); + } + else if (ptr_script->status & SCRIPT_STATUS_HELD) + { + weechat_printf (NULL, + _("%s: script \"%s\" is held"), + SCRIPT_PLUGIN_NAME, name); + } + else + { + snprintf (str_signal, sizeof (str_signal), + "%s_script_remove", + script_language[ptr_script->language]); + weechat_hook_signal_send (str_signal, + WEECHAT_HOOK_SIGNAL_STRING, + ptr_script->name_with_extension); + } + } + else + { + weechat_printf (NULL, + _("%s: script \"%s\" not found"), + SCRIPT_PLUGIN_NAME, name); + } +} + +/* + * script_action_hold: (un)hold a script + * return 1 if ok, 0 if error + */ + +int +script_action_hold (const char *name, int quiet) +{ + struct t_repo_script *ptr_script; + + ptr_script = script_repo_search_by_name_ext (name); + if (ptr_script) + { + if (ptr_script->status & SCRIPT_STATUS_HELD) + { + script_config_unhold (ptr_script->name_with_extension); + if (!quiet) + { + weechat_printf (NULL, + _("%s: script \"%s\" not " + "held any more"), + SCRIPT_PLUGIN_NAME, name); + } + } + else + { + script_config_hold (ptr_script->name_with_extension); + if (!quiet) + { + weechat_printf (NULL, + _("%s: script \"%s\" held"), + SCRIPT_PLUGIN_NAME, name); + } + } + script_repo_update_status (ptr_script); + return 1; + } + else + { + if (!quiet) + { + weechat_printf (NULL, + _("%s: script \"%s\" not found"), + SCRIPT_PLUGIN_NAME, name); + } + } + + return 0; +} + +/* + * script_action_show: show detailed info on a script + */ + +void +script_action_show (const char *name, int quiet) +{ + struct t_repo_script *ptr_script; + + if (name) + { + ptr_script = script_repo_search_by_name_ext (name); + if (ptr_script) + { + script_buffer_show_detail_script (ptr_script); + } + else + { + if (!quiet) + { + weechat_printf (NULL, + _("%s: script \"%s\" not found"), + SCRIPT_PLUGIN_NAME, name); + } + } + } + else + script_buffer_show_detail_script (NULL); +} + +/* + * script_action_run: run planned actions + * return 1 if an action was executed, otherwise 0 + */ + +int +script_action_run () +{ + char **actions, **argv, **argv_eol, *ptr_action; + int num_actions, argc, i, j, quiet, script_found; + struct t_repo_script *ptr_script; + + if (!script_actions) + return 0; + + actions = weechat_string_split (script_actions, "\n", 0, 0, &num_actions); + if (actions) + { + for (i = 0; i < num_actions; i++) + { + quiet = 0; + ptr_action = actions[i]; + if (ptr_action[0] == '-') + { + /* + * if action starts with options (like "-q"), + * read and skip them + */ + ptr_action++; + while (ptr_action[0] && (ptr_action[0] != ' ')) + { + switch (ptr_action[0]) + { + case 'q': /* quiet */ + quiet = 1; + break; + } + ptr_action++; + } + while (ptr_action[0] == ' ') + { + ptr_action++; + } + } + argv = weechat_string_split (ptr_action, " ", 0, 0, &argc); + argv_eol = weechat_string_split (ptr_action, " ", 1, 0, &argc); + if (argv && argv_eol) + { + if (weechat_strcasecmp (argv[0], "buffer") == 0) + { + /* open buffer with list of scripts */ + if (!script_buffer) + { + script_buffer_open (); + script_buffer_refresh (1); + } + weechat_buffer_set (script_buffer, "display", "1"); + } + else if (weechat_strcasecmp (argv[0], "list") == 0) + { + script_action_list (); + } + else if (weechat_strcasecmp (argv[0], "load") == 0) + { + for (j = 1; j < argc; j++) + { + script_action_load (argv[j]); + } + } + else if (weechat_strcasecmp (argv[0], "unload") == 0) + { + for (j = 1; j < argc; j++) + { + script_action_unload (argv[j]); + } + } + else if (weechat_strcasecmp (argv[0], "install") == 0) + { + script_found = 0; + for (j = 1; j < argc; j++) + { + ptr_script = script_repo_search_by_name_ext (argv[j]); + if (ptr_script) + { + if (ptr_script->status & SCRIPT_STATUS_HELD) + { + weechat_printf (NULL, + _("%s: script \"%s\" is held"), + SCRIPT_PLUGIN_NAME, argv[j]); + } + else if ((ptr_script->status & SCRIPT_STATUS_INSTALLED) + && !(ptr_script->status & SCRIPT_STATUS_NEW_VERSION)) + { + weechat_printf (NULL, + _("%s: script \"%s\" is already " + "installed and up-to-date"), + SCRIPT_PLUGIN_NAME, argv[j]); + } + else + { + script_found++; + ptr_script->install_order = script_found; + } + } + else + { + weechat_printf (NULL, + _("%s: script \"%s\" not found"), + SCRIPT_PLUGIN_NAME, argv[j]); + } + } + if (script_found) + script_action_install (); + } + else if (weechat_strcasecmp (argv[0], "remove") == 0) + { + for (j = 1; j < argc; j++) + { + script_action_remove (argv[j]); + } + } + else if (weechat_strcasecmp (argv[0], "hold") == 0) + { + script_found = 0; + for (j = 1; j < argc; j++) + { + if (script_action_hold (argv[j], quiet)) + script_found = 1; + } + if (script_found) + script_buffer_refresh (0); + } + else if (weechat_strcasecmp (argv[0], "show") == 0) + { + if (!script_buffer) + script_buffer_open (); + script_action_show ((argc >= 2) ? argv[1] : NULL, + quiet); + weechat_buffer_set (script_buffer, "display", "1"); + } + else if (weechat_strcasecmp (argv[0], "upgrade") == 0) + { + script_found = 0; + for (ptr_script = repo_scripts; ptr_script; + ptr_script = ptr_script->next_script) + { + /* + * if script is intalled, with new version available, + * and not held, then upgrade it + */ + if ((ptr_script->status & SCRIPT_STATUS_INSTALLED) + && (ptr_script->status & SCRIPT_STATUS_NEW_VERSION) + && !(ptr_script->status & SCRIPT_STATUS_HELD)) + { + script_found++; + ptr_script->install_order = script_found; + } + } + if (script_found) + script_action_install (); + else + { + weechat_printf (NULL, + _("%s: all scripts are up-to-date"), + SCRIPT_PLUGIN_NAME); + } + } + } + if (argv) + weechat_string_free_split (argv); + if (argv_eol) + weechat_string_free_split (argv_eol); + } + weechat_string_free_split (actions); + } + + free (script_actions); + script_actions = NULL; + + return 1; +} + + +/* + * script_action_add: add an action to list of actions + */ + +void +script_action_add (const char *action) +{ + char *new_actions; + + if (!action) + return; + + if (script_actions) + { + new_actions = realloc (script_actions, + strlen (script_actions) + 1 + strlen (action) + 1); + if (!new_actions) + return; + script_actions = new_actions; + strcat (script_actions, "\n"); + strcat (script_actions, action); + } + else + { + script_actions = strdup (action); + } +} + +/* + * script_action_schedule: schedule action + * if "need_repository" is 1, then the action will be + * executed only when the repository file is up-to-date + */ + +void +script_action_schedule (const char *action, int need_repository, int quiet) +{ + script_action_add (action); + + if (need_repository) + { + if (script_repo_file_is_uptodate ()) + { + if (!repo_scripts) + script_repo_file_read (quiet); + script_action_run (); + } + else + script_repo_file_update (quiet); + } + else + script_action_run (); +} diff --git a/src/plugins/script/script-action.h b/src/plugins/script/script-action.h new file mode 100644 index 000000000..42af8c639 --- /dev/null +++ b/src/plugins/script/script-action.h @@ -0,0 +1,29 @@ +/* + * Copyright (C) 2003-2012 Sebastien Helleu <flashcode@flashtux.org> + * + * This file is part of WeeChat, the extensible chat client. + * + * WeeChat 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 3 of the License, or + * (at your option) any later version. + * + * WeeChat 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 WeeChat. If not, see <http://www.gnu.org/licenses/>. + */ + +#ifndef __WEECHAT_SCRIPT_ACTION_H +#define __WEECHAT_SCRIPT_ACTION_H 1 + +extern char *script_actions; + +extern int script_action_run (); +extern void script_action_schedule (const char *action, int need_repository, + int quiet); + +#endif /* __WEECHAT_SCRIPT_ACTION_H */ diff --git a/src/plugins/script/script-buffer.c b/src/plugins/script/script-buffer.c new file mode 100644 index 000000000..bf040010d --- /dev/null +++ b/src/plugins/script/script-buffer.c @@ -0,0 +1,797 @@ +/* + * Copyright (C) 2003-2012 Sebastien Helleu <flashcode@flashtux.org> + * + * This file is part of WeeChat, the extensible chat client. + * + * WeeChat 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 3 of the License, or + * (at your option) any later version. + * + * WeeChat 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 WeeChat. If not, see <http://www.gnu.org/licenses/>. + */ + +/* + * script-buffer.c: display scripts on script buffer + */ + +#include <stdlib.h> +#include <stdio.h> +#include <string.h> +#include <time.h> + +#include "../weechat-plugin.h" +#include "script.h" +#include "script-buffer.h" +#include "script-config.h" +#include "script-repo.h" + + +struct t_gui_buffer *script_buffer = NULL; +int script_buffer_selected_line = 0; +struct t_repo_script *script_buffer_detail_script = NULL; + + +/* + * script_buffer_display_line_script: display a line with script + */ + +void +script_buffer_display_line_script (int line, struct t_repo_script *script) +{ + char str_line[16384], str_item[1024], str_color_name[256], str_color[32]; + char str_format[256], str_date[64], str_key[2], utf_char[16], *tags; + const char *columns, *ptr_col; + int char_size, *ptr_max_length, max_length, num_spaces, unknown; + struct tm *tm; + + snprintf (str_color_name, sizeof (str_color_name), + "%s,%s", + (line == script_buffer_selected_line) ? + weechat_config_string (script_config_color_text_selected) : + weechat_config_string (script_config_color_text), + (line == script_buffer_selected_line) ? + weechat_config_string (script_config_color_text_bg_selected) : + weechat_config_string (script_config_color_text_bg)); + snprintf (str_color, sizeof (str_color), + "%s", weechat_color (str_color_name)); + + columns = weechat_config_string (script_config_look_columns); + ptr_col = columns; + + str_line[0] = '\0'; + while (ptr_col[0]) + { + unknown = 0; + str_item[0] = '\0'; + num_spaces = 0; + char_size = weechat_utf8_char_size (ptr_col); + memcpy (utf_char, ptr_col, char_size); + utf_char[char_size] = '\0'; + if (utf_char[0] == '%') + { + ptr_col += char_size; + char_size = weechat_utf8_char_size (ptr_col); + memcpy (utf_char, ptr_col, char_size); + utf_char[char_size] = '\0'; + + str_key[0] = ptr_col[0]; + str_key[1] = '\0'; + ptr_max_length = weechat_hashtable_get (script_repo_max_length_field, + str_key); + max_length = (ptr_max_length) ? *ptr_max_length : 0; + num_spaces = max_length; + + switch (utf_char[0]) + { + case 'a': /* author */ + if (script->author) + { + num_spaces = max_length - weechat_utf8_strlen_screen (script->author); + snprintf (str_item, sizeof (str_item), + "%s", script->author); + } + break; + case 'd': /* description */ + if (script->description) + { + num_spaces = max_length - weechat_utf8_strlen_screen (script->description); + snprintf (str_item, sizeof (str_item), + "%s%s", + weechat_color ((line == script_buffer_selected_line) ? "white" : "249"), + script->description); + } + break; + case 'D': /* date added */ + if (script->date_added > 0) + { + tm = localtime (&script->date_added); + strftime (str_date, sizeof (str_date), + "%Y-%m-%d", tm); + snprintf (str_item, sizeof (str_item), + "%s%s", + weechat_color ( + weechat_config_string ( + (line == script_buffer_selected_line) ? + script_config_color_text_date_selected : + script_config_color_text_date)), + str_date); + } + else + num_spaces = 10; + break; + case 'e': /* file extension */ + if (script->language >= 0) + { + num_spaces = max_length - weechat_utf8_strlen_screen (script_extension[script->language]); + snprintf (str_item, sizeof (str_item), + "%s%s", + weechat_color ( + weechat_config_string ( + (line == script_buffer_selected_line) ? + script_config_color_text_extension_selected : + script_config_color_text_extension)), + script_extension[script->language]); + } + break; + case 'l': /* language */ + if (script->language >= 0) + { + num_spaces = max_length - weechat_utf8_strlen_screen (script_language[script->language]); + snprintf (str_item, sizeof (str_item), + "%s", script_language[script->language]); + } + break; + case 'L': /* license */ + if (script->license) + { + num_spaces = max_length - weechat_utf8_strlen_screen (script->license); + snprintf (str_item, sizeof (str_item), + "%s", script->license); + } + break; + case 'n': /* name + extension */ + if (script->name_with_extension) + { + num_spaces = max_length - weechat_utf8_strlen_screen (script->name_with_extension); + snprintf (str_item, sizeof (str_item), + "%s%s%s.%s", + weechat_color ( + weechat_config_string ( + (line == script_buffer_selected_line) ? + script_config_color_text_name_selected : + script_config_color_text_name)), + script->name, + weechat_color ( + weechat_config_string ( + (line == script_buffer_selected_line) ? + script_config_color_text_extension_selected : + script_config_color_text_extension)), + script_extension[script->language]); + } + break; + case 'N': /* name (without extension) */ + if (script->name) + { + num_spaces = max_length - weechat_utf8_strlen_screen (script->name); + snprintf (str_item, sizeof (str_item), + "%s%s", + weechat_color ( + weechat_config_string ( + (line == script_buffer_selected_line) ? + script_config_color_text_name_selected : + script_config_color_text_name)), + script->name); + } + break; + case 'r': /* requirements */ + if (script->requirements) + { + num_spaces = max_length - weechat_utf8_strlen_screen (script->requirements); + snprintf (str_item, sizeof (str_item), + "%s", script->requirements); + } + break; + case 's': /* status */ + snprintf (str_item, sizeof (str_item), + script_repo_get_status_for_display (script, + "*iHrN", 0)); + break; + case 't': /* tags */ + if (script->tags) + { + num_spaces = max_length - weechat_utf8_strlen_screen (script->tags); + tags = weechat_string_replace (script->tags, ",", " "); + if (tags) + { + snprintf (str_item, sizeof (str_item), + "%s%s", + weechat_color ( + weechat_config_string ( + (line == script_buffer_selected_line) ? + script_config_color_text_tags_selected : + script_config_color_text_tags)), + tags); + free (tags); + } + } + break; + case 'u': /* date updated */ + if (script->date_updated > 0) + { + tm = localtime (&script->date_updated); + strftime (str_date, sizeof (str_date), + "%Y-%m-%d", tm); + snprintf (str_item, sizeof (str_item), + "%s%s", + weechat_color ( + weechat_config_string ( + (line == script_buffer_selected_line) ? + script_config_color_text_date_selected : + script_config_color_text_date)), + str_date); + } + else + num_spaces = 10; + break; + case 'v': /* version */ + if (script->version) + { + num_spaces = max_length - weechat_utf8_strlen_screen (script->version); + snprintf (str_item, sizeof (str_item), + "%s%s", + weechat_color ( + weechat_config_string ( + (line == script_buffer_selected_line) ? + script_config_color_text_version_selected : + script_config_color_text_version)), + script->version); + } + break; + case 'V': /* version loaded */ + if (script->version_loaded) + { + num_spaces = max_length - weechat_utf8_strlen_screen (script->version_loaded); + snprintf (str_item, sizeof (str_item), + "%s%s", + weechat_color ( + weechat_config_string ( + (line == script_buffer_selected_line) ? + script_config_color_text_version_loaded_selected : + script_config_color_text_version_loaded)), + script->version_loaded); + } + break; + case 'w': /* min_weechat */ + if (script->min_weechat) + { + num_spaces = max_length - weechat_utf8_strlen_screen (script->min_weechat); + snprintf (str_item, sizeof (str_item), + "%s", script->min_weechat); + } + break; + case 'W': /* max_weechat */ + if (script->max_weechat) + { + num_spaces = max_length - weechat_utf8_strlen_screen (script->max_weechat); + snprintf (str_item, sizeof (str_item), + "%s", script->max_weechat); + } + break; + case '%': /* "%%" will display a single "%" */ + snprintf (str_item, sizeof (str_item), + "%s%%", + weechat_color (weechat_config_string (script_config_color_text_delimiters))); + break; + default: + unknown = 1; + break; + } + } + else + { + snprintf (str_item, sizeof (str_item), + "%s%s", + weechat_color (weechat_config_string (script_config_color_text_delimiters)), + utf_char); + } + if (!unknown) + { + if (str_item[0]) + { + strcat (str_line, str_color); + strcat (str_line, str_item); + } + if (num_spaces > 0) + { + snprintf (str_format, sizeof (str_format), + "%%-%ds", + num_spaces); + snprintf (str_item, sizeof (str_item), + str_format, " "); + strcat (str_line, str_item); + } + } + ptr_col += char_size; + } + + weechat_printf_y (script_buffer, line, "%s", str_line); +} + +/* + * script_buffer_detail_label: get header of a line for detail of script + * The returned string is aligned on the right + */ + +const char * +script_buffer_detail_label (const char *text, int max_length) +{ + char str_format[16]; + static char result[1024]; + int num_spaces; + + num_spaces = max_length - weechat_utf8_strlen_screen (text); + snprintf (str_format, sizeof (str_format), + "%%-%ds%%s", num_spaces); + snprintf (result, sizeof (result), + str_format, + (num_spaces > 0) ? " " : "", + text); + + return result; +} + +/* + * script_buffer_display_detail_script: display detail on a script + */ + +void +script_buffer_display_detail_script (struct t_repo_script *script) +{ + struct tm *tm; + char str_time[1024]; + char *labels[] = { N_("Script"), N_("Version"), N_("Author"), + N_("License"), N_("Description"), N_("Tags"), + N_("Status"), N_("Date added"), N_("Date updated"), + N_("URL"), N_("MD5"), N_("Requires"), N_("Min WeeChat"), + N_("Max WeeChat"), NULL }; + int i, length, max_length, line; + + max_length = 0; + for (i = 0; labels[i]; i++) + { + length = weechat_utf8_strlen_screen (_(labels[i])); + if (length > max_length) + max_length = length; + } + + line = 0; + + weechat_printf_y (script_buffer, line + 1, + "%s: %s%s%s.%s", + script_buffer_detail_label (_(labels[line]), max_length), + weechat_color (weechat_config_string (script_config_color_text_name)), + script->name, + weechat_color (weechat_config_string (script_config_color_text_extension)), + script_extension[script->language]); + line++; + weechat_printf_y (script_buffer, line + 1, "%s: %s", + script_buffer_detail_label (_(labels[line]), max_length), + script->version); + line++; + weechat_printf_y (script_buffer, line + 1, + "%s: %s <%s>", + script_buffer_detail_label (_(labels[line]), max_length), + script->author, + script->mail); + line++; + weechat_printf_y (script_buffer, line + 1, + "%s: %s", + script_buffer_detail_label (_(labels[line]), max_length), + script->license); + line++; + weechat_printf_y (script_buffer, line + 1, + "%s: %s", + script_buffer_detail_label (_(labels[line]), max_length), + script->description); + line++; + weechat_printf_y (script_buffer, line + 1, + "%s: %s", + script_buffer_detail_label (_(labels[line]), max_length), + script->tags); + line++; + if ((script->popularity == 0) && (script->status == 0)) + { + weechat_printf_y (script_buffer, line + 1, + "%s: -", + script_buffer_detail_label (_(labels[line]), max_length)); + } + else + { + weechat_printf_y (script_buffer, line + 1, + "%s: %s%s (%s%s%s%s%s%s%s%s%s%s )", + script_buffer_detail_label (_(labels[line]), max_length), + script_repo_get_status_for_display (script, "*iHrN", 1), + weechat_color ("chat"), + (script->popularity > 0) ? " " : "", + (script->popularity > 0) ? _("popular") : "", + (script->status & SCRIPT_STATUS_INSTALLED) ? " " : "", + (script->status & SCRIPT_STATUS_INSTALLED) ? _("installed") : "", + (script->status & SCRIPT_STATUS_HELD) ? " " : "", + (script->status & SCRIPT_STATUS_HELD) ? _("held") : "", + (script->status & SCRIPT_STATUS_RUNNING) ? " " : "", + (script->status & SCRIPT_STATUS_RUNNING) ? _("running") : "", + (script->status & SCRIPT_STATUS_NEW_VERSION) ? " " : "", + (script->status & SCRIPT_STATUS_NEW_VERSION) ? _("obsolete") : ""); + } + line++; + tm = localtime (&script->date_added); + strftime (str_time, sizeof (str_time), "%Y-%m-%d %H:%M:%S", tm); + weechat_printf_y (script_buffer, line + 1, + "%s: %s", + script_buffer_detail_label (_(labels[line]), max_length), + str_time); + line++; + tm = localtime (&script->date_updated); + strftime (str_time, sizeof (str_time), "%Y-%m-%d %H:%M:%S", tm); + weechat_printf_y (script_buffer, line + 1, + "%s: %s", + script_buffer_detail_label (_(labels[line]), max_length), + str_time); + line++; + weechat_printf_y (script_buffer, line + 1, + "%s: %s", + script_buffer_detail_label (_(labels[line]), max_length), + script->url); + line++; + weechat_printf_y (script_buffer, line + 1, + "%s: %s", + script_buffer_detail_label (_(labels[line]), max_length), + script->md5sum); + line++; + weechat_printf_y (script_buffer, line + 1, + "%s: %s", + script_buffer_detail_label (_(labels[line]), max_length), + (script->requirements) ? script->requirements : "-"); + line++; + weechat_printf_y (script_buffer, line + 1, + "%s: %s", + script_buffer_detail_label (_(labels[line]), max_length), + (script->min_weechat) ? script->min_weechat : "-"); + line++; + weechat_printf_y (script_buffer, line + 1, + "%s: %s", + script_buffer_detail_label (_(labels[line]), max_length), + (script->max_weechat) ? script->max_weechat : "-"); +} + +/* + * script_buffer_refresh: update list of scripts in script buffer + */ + +void +script_buffer_refresh (int clear) +{ + struct t_repo_script *ptr_script; + int line; + char str_title[1024]; + + if (!script_buffer) + return; + + if (clear) + { + weechat_buffer_clear (script_buffer); + script_buffer_selected_line = (script_repo_count_displayed > 0) ? 0 : -1; + } + + if (script_buffer_detail_script) + { + snprintf (str_title, sizeof (str_title), + _("alt+d=back to list")); + } + else + { + snprintf (str_title, sizeof (str_title), + _("%d/%d scripts (filter: %s) | Sort: %s | " + "alt+i=install r=remove l=load u=unload h=(un)hold " + "d=show detail | Input: 'q'=close 'r'=refresh 's:x,y'=sort " + "'words'=filter '*'=reset filter"), + script_repo_count_displayed, + script_repo_count, + (script_repo_filter) ? script_repo_filter : "*", + weechat_config_string (script_config_look_sort)); + } + weechat_buffer_set (script_buffer, "title", str_title); + + if (script_buffer_detail_script) + { + /* detail on a script */ + script_buffer_display_detail_script (script_buffer_detail_script); + } + else + { + /* list of scripts */ + line = 0; + for (ptr_script = repo_scripts; ptr_script; + ptr_script = ptr_script->next_script) + { + if (ptr_script->displayed) + { + script_buffer_display_line_script (line, ptr_script); + line++; + } + } + } +} + +/* + * script_buffer_set_current_line: set current selected line in script buffer + */ + +void +script_buffer_set_current_line (int line) +{ + int old_line; + + old_line = script_buffer_selected_line; + script_buffer_selected_line = line; + + script_buffer_display_line_script (old_line, + script_repo_search_displayed_by_number (old_line)); + script_buffer_display_line_script (script_buffer_selected_line, + script_repo_search_displayed_by_number (script_buffer_selected_line)); +} + +/* + * script_buffer_show_detail_script: show detailed info on a script + */ + +void +script_buffer_show_detail_script (struct t_repo_script *script) +{ + if (!script_buffer) + return; + + if (script_buffer_detail_script == script) + script_buffer_detail_script = NULL; + else + script_buffer_detail_script = script; + + weechat_buffer_clear (script_buffer); + script_buffer_refresh (0); + + if (!script_buffer_detail_script) + script_buffer_check_line_outside_window (); +} + +/* + * script_buffer_get_window_info: get infos about window + */ + +void +script_buffer_get_window_info (struct t_gui_window *window, + int *start_line_y, int *chat_height) +{ + struct t_hdata *hdata_window, *hdata_window_scroll, *hdata_line; + struct t_hdata *hdata_line_data; + void *window_scroll, *start_line, *line_data; + + hdata_window = weechat_hdata_get ("window"); + hdata_window_scroll = weechat_hdata_get ("window_scroll"); + hdata_line = weechat_hdata_get ("line"); + hdata_line_data = weechat_hdata_get ("line_data"); + *start_line_y = 0; + window_scroll = weechat_hdata_pointer (hdata_window, window, "scroll"); + if (window_scroll) + { + start_line = weechat_hdata_pointer (hdata_window_scroll, window_scroll, + "start_line"); + if (start_line) + { + line_data = weechat_hdata_pointer (hdata_line, start_line, "data"); + if (line_data) + { + *start_line_y = weechat_hdata_integer (hdata_line_data, + line_data, "y"); + } + } + } + *chat_height = weechat_hdata_integer (hdata_window, window, + "win_chat_height"); +} + +/* + * script_buffer_check_line_outside_window: check if current line is outside + * window + */ + +void +script_buffer_check_line_outside_window () +{ + struct t_gui_window *window; + int start_line_y, chat_height; + char str_command[256]; + + window = weechat_window_search_with_buffer (script_buffer); + if (!window) + return; + + script_buffer_get_window_info (window, &start_line_y, &chat_height); + if ((start_line_y > script_buffer_selected_line) + || (start_line_y <= script_buffer_selected_line - chat_height)) + { + snprintf (str_command, sizeof (str_command), + "/window scroll -window %d %s%d", + weechat_window_get_integer (window, "number"), + (start_line_y > script_buffer_selected_line) ? "-" : "+", + (start_line_y > script_buffer_selected_line) ? + start_line_y - script_buffer_selected_line : + script_buffer_selected_line - start_line_y - chat_height + 1); + weechat_command (script_buffer, str_command); + } +} + +/* + * script_buffer_window_scrolled_cb: called when signal "window_scrolled" is + * received + */ + +int +script_buffer_window_scrolled_cb (void *data, const char *signal, + const char *type_data, + void *signal_data) +{ + int start_line_y, chat_height, line; + + /* make C compiler happy */ + (void) data; + (void) signal; + (void) type_data; + + /* scrolled another window/buffer? then just ignore */ + if (weechat_window_get_pointer (signal_data, "buffer") != script_buffer) + return WEECHAT_RC_OK; + + /* ignore if detail of a script is displayed */ + if (script_buffer_detail_script) + return WEECHAT_RC_OK; + + script_buffer_get_window_info (signal_data, &start_line_y, &chat_height); + + line = script_buffer_selected_line; + while (line < start_line_y) + { + line += chat_height; + } + while (line >= start_line_y + chat_height) + { + line -= chat_height; + } + if (line < start_line_y) + line = start_line_y; + if (line >= script_repo_count_displayed) + line = script_repo_count_displayed - 1; + script_buffer_set_current_line (line); + + return WEECHAT_RC_OK; +} + +/* + * script_buffer_input_cb: callback called when user send data to script list + * buffer + */ + +int +script_buffer_input_cb (void *data, struct t_gui_buffer *buffer, + const char *input_data) +{ + /* make C compiler happy */ + (void) data; + (void) buffer; + + if (strcmp (input_data, "q") == 0) + { + weechat_buffer_close (buffer); + return WEECHAT_RC_OK; + } + + if (strncmp (input_data, "s:", 2) == 0) + { + if (input_data[2]) + weechat_config_option_set (script_config_look_sort, input_data + 2, 1); + else + weechat_config_option_reset (script_config_look_sort, 1); + return WEECHAT_RC_OK; + } + + if (strcmp (input_data, "r") == 0) + { + script_get_loaded_scripts (); + script_repo_remove_all (); + script_repo_file_read (1); + script_buffer_refresh (1); + return WEECHAT_RC_OK; + } + + script_repo_filter_scripts (input_data); + + return WEECHAT_RC_OK; +} + +/* + * script_buffer_close_cb: callback called when script buffer is closed + */ + +int +script_buffer_close_cb (void *data, struct t_gui_buffer *buffer) +{ + /* make C compiler happy */ + (void) data; + (void) buffer; + + script_buffer = NULL; + script_buffer_selected_line = 0; + script_buffer_detail_script = NULL; + + return WEECHAT_RC_OK; +} + +/* + * script_buffer_set_callbacks: restore buffers callbacks (input and close) for + * buffer created by script plugin + */ + +void +script_buffer_set_callbacks () +{ + struct t_gui_buffer *ptr_buffer; + + ptr_buffer = weechat_buffer_search (SCRIPT_PLUGIN_NAME, SCRIPT_BUFFER_NAME); + if (ptr_buffer) + { + script_buffer = ptr_buffer; + weechat_buffer_set_pointer (script_buffer, "close_callback", &script_buffer_close_cb); + weechat_buffer_set_pointer (script_buffer, "input_callback", &script_buffer_input_cb); + } +} + +/* + * script_buffer_open: open script buffer (to display list of scripts) + */ + +void +script_buffer_open () +{ + if (!script_buffer) + { + script_buffer = weechat_buffer_new (SCRIPT_BUFFER_NAME, + &script_buffer_input_cb, NULL, + &script_buffer_close_cb, NULL); + + /* failed to create buffer ? then exit */ + if (!script_buffer) + return; + + weechat_buffer_set (script_buffer, "type", "free"); + weechat_buffer_set (script_buffer, "title", _("Scripts")); + weechat_buffer_set (script_buffer, "key_bind_meta2-A", "/script up"); + weechat_buffer_set (script_buffer, "key_bind_meta2-B", "/script down"); + weechat_buffer_set (script_buffer, "key_bind_meta-l", "/script load"); + weechat_buffer_set (script_buffer, "key_bind_meta-u", "/script unload"); + weechat_buffer_set (script_buffer, "key_bind_meta-i", "/script install"); + weechat_buffer_set (script_buffer, "key_bind_meta-r", "/script remove"); + weechat_buffer_set (script_buffer, "key_bind_meta-h", "/script hold"); + weechat_buffer_set (script_buffer, "key_bind_meta-d", "/script show"); + weechat_buffer_set (script_buffer, "localvar_set_type", "script"); + + script_buffer_selected_line = 0; + script_buffer_detail_script = NULL; + } +} diff --git a/src/plugins/script/script-buffer.h b/src/plugins/script/script-buffer.h new file mode 100644 index 000000000..a9a29d326 --- /dev/null +++ b/src/plugins/script/script-buffer.h @@ -0,0 +1,44 @@ +/* + * Copyright (C) 2003-2012 Sebastien Helleu <flashcode@flashtux.org> + * + * This file is part of WeeChat, the extensible chat client. + * + * WeeChat 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 3 of the License, or + * (at your option) any later version. + * + * WeeChat 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 WeeChat. If not, see <http://www.gnu.org/licenses/>. + */ + +#ifndef __WEECHAT_SCRIPT_BUFFER_H +#define __WEECHAT_SCRIPT_BUFFER_H 1 + +#define SCRIPT_BUFFER_NAME "scripts" + +struct t_repo_script; + +extern struct t_gui_buffer *script_buffer; +extern int script_buffer_selected_line; +extern struct t_repo_script *script_buffer_detail_script; + +extern void script_buffer_refresh (int clear); +extern void script_buffer_set_current_line (int line); +extern void script_buffer_show_detail_script (struct t_repo_script *script); +extern void script_buffer_check_line_outside_window (); +extern int script_buffer_window_scrolled_cb (void *data, const char *signal, + const char *type_data, + void *signal_data); +extern int script_buffer_input_cb (void *data, struct t_gui_buffer *buffer, + const char *input_data); +extern int script_buffer_close_cb (void *data, struct t_gui_buffer *buffer); +extern void script_buffer_set_callbacks (); +extern void script_buffer_open (); + +#endif /* __WEECHAT_SCRIPT_BUFFER_H */ diff --git a/src/plugins/script/script-command.c b/src/plugins/script/script-command.c new file mode 100644 index 000000000..4ba65cb84 --- /dev/null +++ b/src/plugins/script/script-command.c @@ -0,0 +1,270 @@ +/* + * Copyright (C) 2003-2012 Sebastien Helleu <flashcode@flashtux.org> + * + * This file is part of WeeChat, the extensible chat client. + * + * WeeChat 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 3 of the License, or + * (at your option) any later version. + * + * WeeChat 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 WeeChat. If not, see <http://www.gnu.org/licenses/>. + */ + +/* + * script-command.c: script commands + */ + +#include <stdlib.h> +#include <string.h> +#include <stdio.h> + +#include "../weechat-plugin.h" +#include "script.h" +#include "script-command.h" +#include "script-action.h" +#include "script-buffer.h" +#include "script-config.h" +#include "script-repo.h" + + +/* + * script_command_action: run action + */ + +void +script_command_action (struct t_gui_buffer *buffer, const char *action, + const char *action_with_args, int need_repository) +{ + struct t_repo_script *ptr_script; + char str_action[4096]; + + if (action_with_args) + { + /* action with arguments on command line */ + script_action_schedule (action_with_args, need_repository, 0); + } + else if (script_buffer && (buffer == script_buffer)) + { + /* action on current line of script buffer */ + if ((weechat_strcasecmp (action, "show") == 0) + && script_buffer_detail_script) + { + /* if detail on script is displayed, back to list */ + snprintf (str_action, sizeof (str_action), + "-q %s", + action); + script_action_schedule (str_action, need_repository, 1); + } + else + { + /* if list is displayed, execute action on script */ + if (!script_buffer_detail_script) + { + ptr_script = script_repo_search_displayed_by_number (script_buffer_selected_line); + if (ptr_script) + { + snprintf (str_action, sizeof (str_action), + "-q %s %s", + action, + ptr_script->name_with_extension); + script_action_schedule (str_action, need_repository, 1); + } + } + } + } +} + +/* + * script_command_script: command to manage scripts + */ + +int +script_command_script (void *data, struct t_gui_buffer *buffer, int argc, + char **argv, char **argv_eol) +{ + char *error; + long value; + int line; + + /* make C compiler happy */ + (void) data; + + if (argc == 1) + { + script_action_schedule ("buffer", 1, 0); + return WEECHAT_RC_OK; + } + + if (weechat_strcasecmp (argv[1], "list") == 0) + { + script_action_schedule ("list", 1, 0); + return WEECHAT_RC_OK; + } + + if ((weechat_strcasecmp (argv[1], "load") == 0) + || (weechat_strcasecmp (argv[1], "unload") == 0)) + { + script_command_action (buffer, + argv[1], + (argc > 2) ? argv_eol[1] : NULL, + 0); + return WEECHAT_RC_OK; + } + + if ((weechat_strcasecmp (argv[1], "install") == 0) + || (weechat_strcasecmp (argv[1], "remove") == 0) + || (weechat_strcasecmp (argv[1], "hold") == 0) + || (weechat_strcasecmp (argv[1], "show") == 0)) + { + script_command_action (buffer, + argv[1], + (argc > 2) ? argv_eol[1] : NULL, + 1); + return WEECHAT_RC_OK; + } + + if (weechat_strcasecmp (argv[1], "upgrade") == 0) + { + script_action_schedule ("upgrade", 1, 0); + return WEECHAT_RC_OK; + } + + if (weechat_strcasecmp (argv[1], "update") == 0) + { + script_repo_file_update (0); + return WEECHAT_RC_OK; + } + + if (!script_buffer) + script_buffer_open (); + + if (script_buffer) + { + weechat_buffer_set (script_buffer, "display", "1"); + + if (argc > 1) + { + if (!script_buffer_detail_script + && (script_buffer_selected_line >= 0) + && (script_repo_count_displayed > 0)) + { + if (strcmp (argv[1], "up") == 0) + { + value = 1; + if (argc > 2) + { + error = NULL; + value = strtol (argv[2], &error, 10); + if (!error || error[0]) + value = 1; + } + line = script_buffer_selected_line - value; + if (line < 0) + line = 0; + if (line != script_buffer_selected_line) + { + script_buffer_set_current_line (line); + script_buffer_check_line_outside_window (); + } + return WEECHAT_RC_OK; + } + else if (strcmp (argv[1], "down") == 0) + { + value = 1; + if (argc > 2) + { + error = NULL; + value = strtol (argv[2], &error, 10); + if (!error || error[0]) + value = 1; + } + line = script_buffer_selected_line + value; + if (line >= script_repo_count_displayed) + line = script_repo_count_displayed - 1; + if (line != script_buffer_selected_line) + { + script_buffer_set_current_line (line); + script_buffer_check_line_outside_window (); + } + return WEECHAT_RC_OK; + } + } + } + } + + script_buffer_refresh (0); + + return WEECHAT_RC_OK; +} + +/* + * scrit_command_init: init script commands (create hooks) + */ + +void +script_command_init () +{ + weechat_hook_command ("script", + N_("WeeChat scripts manager"), + N_("list || show <script>" + " || load|unload <script> [<script>...]" + " || install|remove|hold <script> [<script>...]" + " || upgrade || update"), + N_(" list: list loaded scripts (all languages)\n" + " show: show detailed info about a script\n" + " load: load script(s)\n" + " unload: unload script(s)\n" + " install: install/upgrade script(s)\n" + " remove: remove script(s)\n" + " hold: hold/unhold script(s) (a script held " + "will not be upgraded any more and cannot be " + "removed)\n" + " upgrade: upgrade all installed scripts which " + "are obsolete (new version available)\n" + " update: update local scripts cache\n\n" + "Without argument, this command opens a buffer " + "with list of scripts.\n\n" + "On script buffer, the possible status for each " + "script are:\n" + " * i H r N\n" + " | | | | |\n" + " | | | | obsolete (new version available)\n" + " | | | running (loaded)\n" + " | | held\n" + " | installed\n" + " popular script\n\n" + "Keys on script buffer:\n" + " alt+i install script\n" + " alt+r remove script\n" + " alt+l load script\n" + " alt+u unload script\n" + " alt+h (un)hold script\n\n" + "Input allowed on script buffer:\n" + " q close buffer\n" + " r refresh buffer\n" + " s:x,y sort buffer using keys x and y (see /help " + "script.look.sort)\n" + " s: reset sort (use default sort)\n" + " word(s) filter scripts: search word(s) in " + "scripts (description, tags, ...)\n" + " * remove filter"), + "list" + " || show %(script_scripts)" + " || load %(script_files)" + " || unload %(python_script)|%(perl_script)|" + "%(ruby_script)|%(tcl_script)|%(lua_script)|" + "%(guile_script)" + " || install %(script_scripts)|%*" + " || remove %(script_scripts_installed)|%*" + " || hold %(script_scripts)" + " || update" + " || upgrade", + &script_command_script, NULL); +} diff --git a/src/plugins/script/script-command.h b/src/plugins/script/script-command.h new file mode 100644 index 000000000..0af7d2098 --- /dev/null +++ b/src/plugins/script/script-command.h @@ -0,0 +1,25 @@ +/* + * Copyright (C) 2003-2012 Sebastien Helleu <flashcode@flashtux.org> + * + * This file is part of WeeChat, the extensible chat client. + * + * WeeChat 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 3 of the License, or + * (at your option) any later version. + * + * WeeChat 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 WeeChat. If not, see <http://www.gnu.org/licenses/>. + */ + +#ifndef __WEECHAT_SCRIPT_COMMAND_H +#define __WEECHAT_SCRIPT_COMMAND_H 1 + +extern void script_command_init (); + +#endif /* __WEECHAT_SCRIPT_COMMAND_H */ diff --git a/src/plugins/script/script-completion.c b/src/plugins/script/script-completion.c new file mode 100644 index 000000000..e9d6fbc99 --- /dev/null +++ b/src/plugins/script/script-completion.c @@ -0,0 +1,192 @@ +/* + * Copyright (C) 2003-2012 Sebastien Helleu <flashcode@flashtux.org> + * + * This file is part of WeeChat, the extensible chat client. + * + * WeeChat 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 3 of the License, or + * (at your option) any later version. + * + * WeeChat 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 WeeChat. If not, see <http://www.gnu.org/licenses/>. + */ + +/* + * script-completion.c: completion for script commands + */ + +#include <stdlib.h> +#include <stdio.h> +#include <string.h> +#include <libgen.h> + +#include "../weechat-plugin.h" +#include "script.h" +#include "script-repo.h" + + +/* + * script_completion_scripts_cb: callback for completion with scripts in + * repository + */ + +int +script_completion_scripts_cb (void *data, const char *completion_item, + struct t_gui_buffer *buffer, + struct t_gui_completion *completion) +{ + struct t_repo_script *ptr_script; + + /* make C compiler happy */ + (void) data; + (void) completion_item; + (void) buffer; + + for (ptr_script = repo_scripts; ptr_script; + ptr_script = ptr_script->next_script) + { + weechat_hook_completion_list_add (completion, + ptr_script->name_with_extension, + 0, WEECHAT_LIST_POS_SORT); + } + + return WEECHAT_RC_OK; +} + +/* + * script_completion_scripts_installed_cb: callback for completion with scripts + * installed + */ + +int +script_completion_scripts_installed_cb (void *data, const char *completion_item, + struct t_gui_buffer *buffer, + struct t_gui_completion *completion) +{ + struct t_repo_script *ptr_script; + + /* make C compiler happy */ + (void) data; + (void) completion_item; + (void) buffer; + + for (ptr_script = repo_scripts; ptr_script; + ptr_script = ptr_script->next_script) + { + if (ptr_script->status & SCRIPT_STATUS_INSTALLED) + { + weechat_hook_completion_list_add (completion, + ptr_script->name_with_extension, + 0, WEECHAT_LIST_POS_SORT); + } + } + + return WEECHAT_RC_OK; +} + +/* + * script_completion_exec_file_cb: callback called for each file in script + * directories + */ + +void +script_completion_exec_file_cb (void *data, const char *filename) +{ + struct t_gui_completion *completion; + const char *extension; + char *pos, *filename2, *ptr_base_name; + + completion = (struct t_gui_completion *)(((void **)data)[0]); + extension = (const char *)(((void **)data)[1]); + + pos = strrchr (filename, '.'); + if (!pos) + return; + + /* ignore scripts that do not ends with expected extension */ + if (strcmp (pos + 1, extension) != 0) + return; + + filename2 = strdup (filename); + if (filename2) + { + ptr_base_name = basename (filename2); + weechat_hook_completion_list_add (completion, + ptr_base_name, + 0, WEECHAT_LIST_POS_SORT); + free (filename2); + } +} + +/* + * script_completion_scripts_files_cb: callback for completion with files in + * script directories + */ + +int +script_completion_scripts_files_cb (void *data, const char *completion_item, + struct t_gui_buffer *buffer, + struct t_gui_completion *completion) +{ + const char *weechat_home; + char *directory; + int length, i; + void *pointers[2]; + + /* make C compiler happy */ + (void) data; + (void) completion_item; + (void) buffer; + + weechat_home = weechat_info_get ("weechat_dir", NULL); + + length = strlen (weechat_home) + 128 + 1; + directory = malloc (length); + if (directory) + { + for (i = 0; script_language[i]; i++) + { + pointers[0] = completion; + pointers[1] = script_extension[i]; + + /* look for files in "~/.weechat/<language>/" */ + snprintf (directory, length, + "%s/%s", weechat_home, script_language[i]); + weechat_exec_on_files (directory, 0, + pointers, &script_completion_exec_file_cb); + + /* look for files in "~/.weechat/<language>/autoload/" */ + snprintf (directory, length, + "%s/%s/autoload", weechat_home, script_language[i]); + weechat_exec_on_files (directory, 0, + pointers, &script_completion_exec_file_cb); + } + free (directory); + } + + return WEECHAT_RC_OK; +} + +/* + * script_completion_init: init completion for script plugin + */ + +void +script_completion_init () +{ + weechat_hook_completion ("script_scripts", + N_("list of scripts in repository"), + &script_completion_scripts_cb, NULL); + weechat_hook_completion ("script_scripts_installed", + N_("list of scripts installed (from repository)"), + &script_completion_scripts_installed_cb, NULL); + weechat_hook_completion ("script_files", + N_("files in script directories"), + &script_completion_scripts_files_cb, NULL); +} diff --git a/src/plugins/script/script-completion.h b/src/plugins/script/script-completion.h new file mode 100644 index 000000000..a14e2a0ba --- /dev/null +++ b/src/plugins/script/script-completion.h @@ -0,0 +1,25 @@ +/* + * Copyright (C) 2003-2012 Sebastien Helleu <flashcode@flashtux.org> + * + * This file is part of WeeChat, the extensible chat client. + * + * WeeChat 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 3 of the License, or + * (at your option) any later version. + * + * WeeChat 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 WeeChat. If not, see <http://www.gnu.org/licenses/>. + */ + +#ifndef __WEECHAT_SCRIPT_COMPLETION_H +#define __WEECHAT_SCRIPT_COMPLETION_H 1 + +extern void script_completion_init (); + +#endif /* __WEECHAT_SCRIPT_COMPLETION_H */ diff --git a/src/plugins/script/script-config.c b/src/plugins/script/script-config.c new file mode 100644 index 000000000..0123b7c8c --- /dev/null +++ b/src/plugins/script/script-config.c @@ -0,0 +1,587 @@ +/* + * Copyright (C) 2003-2012 Sebastien Helleu <flashcode@flashtux.org> + * + * This file is part of WeeChat, the extensible chat client. + * + * WeeChat 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 3 of the License, or + * (at your option) any later version. + * + * WeeChat 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 WeeChat. If not, see <http://www.gnu.org/licenses/>. + */ + +/* + * script-config.c: script configuration options (file script.conf) + */ + +#include <stdlib.h> +#include <stdio.h> +#include <string.h> + +#include "../weechat-plugin.h" +#include "script.h" +#include "script-config.h" +#include "script-buffer.h" +#include "script-repo.h" + + +struct t_config_file *script_config_file = NULL; +struct t_config_section *script_config_section_look = NULL; +struct t_config_section *script_config_section_color = NULL; +struct t_config_section *script_config_section_scripts = NULL; + +/* script config, look section */ + +struct t_config_option *script_config_look_columns; +struct t_config_option *script_config_look_sort; + +/* script config, color section */ + +struct t_config_option *script_config_color_status_popular; +struct t_config_option *script_config_color_status_installed; +struct t_config_option *script_config_color_status_held; +struct t_config_option *script_config_color_status_running; +struct t_config_option *script_config_color_status_obsolete; +struct t_config_option *script_config_color_status_unknown; +struct t_config_option *script_config_color_text; +struct t_config_option *script_config_color_text_date; +struct t_config_option *script_config_color_text_delimiters; +struct t_config_option *script_config_color_text_description; +struct t_config_option *script_config_color_text_extension; +struct t_config_option *script_config_color_text_name; +struct t_config_option *script_config_color_text_tags; +struct t_config_option *script_config_color_text_version; +struct t_config_option *script_config_color_text_version_loaded; +struct t_config_option *script_config_color_text_bg; +struct t_config_option *script_config_color_text_selected; +struct t_config_option *script_config_color_text_date_selected; +struct t_config_option *script_config_color_text_description_selected; +struct t_config_option *script_config_color_text_extension_selected; +struct t_config_option *script_config_color_text_name_selected; +struct t_config_option *script_config_color_text_tags_selected; +struct t_config_option *script_config_color_text_version_selected; +struct t_config_option *script_config_color_text_version_loaded_selected; +struct t_config_option *script_config_color_text_bg_selected; + +/* script config, scripts section */ + +struct t_config_option *script_config_scripts_cache_expire; +struct t_config_option *script_config_scripts_dir; +struct t_config_option *script_config_scripts_hold; +struct t_config_option *script_config_scripts_url; + + +/* + * script_config_get_dir: get local directory for script + * Note: result must be freed after use + */ + +char * +script_config_get_dir () +{ + const char *weechat_home; + char *path, *path2; + + weechat_home = weechat_info_get ("weechat_dir", NULL); + + path = weechat_string_expand_home (weechat_config_string (script_config_scripts_dir)); + path2 = weechat_string_replace ((path) ? + path : weechat_config_string (script_config_scripts_dir), + "%h", weechat_home); + + if (path && path2) + { + free (path); + path = NULL; + } + + if (path2) + return path2; + if (path) + return path; + return strdup (weechat_config_string (script_config_scripts_dir)); +} + +/* + * script_config_get_xml_filename: get filename with scripts (by default + * "/home/xxx/.weechat/script/plugins.xml.gz") + * Note: result must be freed after use + */ + +char * +script_config_get_xml_filename () +{ + char *path, *filename; + int length; + + path = script_config_get_dir (); + length = strlen (path) + 64; + filename = malloc (length); + if (filename) + snprintf (filename, length, "%s/plugins.xml.gz", path); + free (path); + return filename; +} + +/* + * script_config_get_script_download_filename: get filename for a script to + * download, for eample: + * "/home/xxx/.weechat/script/iset.pl" + * Note: result must be freed after + * use + */ + +char * +script_config_get_script_download_filename (struct t_repo_script *script) +{ + char *path, *filename; + int length; + + path = script_config_get_dir (); + length = strlen (path) + 1 + strlen (script->name_with_extension) + 1; + filename = malloc (length); + if (filename) + snprintf (filename, length, "%s/%s", path, script->name_with_extension); + free (path); + return filename; +} + +/* + * script_config_refresh_cb: callback called when user changes xfer option that + * needs a refresh of script list + */ + +void +script_config_refresh_cb (void *data, struct t_config_option *option) +{ + /* make C compiler happy */ + (void) data; + (void) option; + + if (script_buffer) + script_buffer_refresh (0); +} + +/* + * script_config_change_sort_cb: callback called when default sort keys are + * changed + */ + +void +script_config_change_sort_cb (void *data, struct t_config_option *option) +{ + /* make C compiler happy */ + (void) data; + (void) option; + + if (repo_scripts) + { + script_repo_remove_all (); + script_repo_file_read (1); + script_buffer_refresh (1); + } +} + +/* + * script_config_change_hold_cb: callback called when list of scripts to "hold" + * is changed + */ + +void +script_config_change_hold_cb (void *data, struct t_config_option *option) +{ + /* make C compiler happy */ + (void) data; + (void) option; + + script_repo_update_status_all (); + if (script_buffer) + script_buffer_refresh (0); +} + +/* + * script_config_hold: hold a script + * Note: the option is changed, but the status "held" + * in script is NOT updated by this function + */ + +void +script_config_hold (const char *name_with_extension) +{ + char **items, *hold; + int num_items, i, length; + + length = strlen (weechat_config_string (script_config_scripts_hold)) + + 1 + strlen (name_with_extension) + 1; + hold = malloc (length); + if (hold) + { + hold[0] = '\0'; + items = weechat_string_split (weechat_config_string (script_config_scripts_hold), + ",", 0, 0, &num_items); + if (items) + { + for (i = 0; i < num_items; i++) + { + if (strcmp (items[i], name_with_extension) != 0) + { + if (hold[0]) + strcat (hold, ","); + strcat (hold, items[i]); + } + } + weechat_string_free_split (items); + } + if (hold[0]) + strcat (hold, ","); + strcat (hold, name_with_extension); + + weechat_config_option_set (script_config_scripts_hold, hold, 0); + + free (hold); + } +} + +/* + * script_config_unhold: unhold a script + * Note: the option is changed, but the status "held" + * in script is NOT updated by this function + */ + +void +script_config_unhold (const char *name_with_extension) +{ + char **items, *hold; + int num_items, i, length; + + length = strlen (weechat_config_string (script_config_scripts_hold)) + 1; + hold = malloc (length); + if (hold) + { + hold[0] = '\0'; + items = weechat_string_split (weechat_config_string (script_config_scripts_hold), + ",", 0, 0, &num_items); + if (items) + { + for (i = 0; i < num_items; i++) + { + if (strcmp (items[i], name_with_extension) != 0) + { + if (hold[0]) + strcat (hold, ","); + strcat (hold, items[i]); + } + } + weechat_string_free_split (items); + } + + weechat_config_option_set (script_config_scripts_hold, hold, 0); + + free (hold); + } +} + +/* + * script_config_reaload: reload script configuration file + */ + +int +script_config_reload (void *data, struct t_config_file *config_file) +{ + /* make C compiler happy */ + (void) data; + + return weechat_config_reload (config_file); +} + +/* + * script_config_init: init script configuration file + * return: 1 if ok, 0 if error + */ + +int +script_config_init () +{ + struct t_config_section *ptr_section; + + script_config_file = weechat_config_new (SCRIPT_CONFIG_NAME, + &script_config_reload, NULL); + if (!script_config_file) + return 0; + + /* look */ + ptr_section = weechat_config_new_section (script_config_file, "look", + 0, 0, + NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, + NULL, NULL); + if (!ptr_section) + { + weechat_config_free (script_config_file); + return 0; + } + + script_config_look_columns = weechat_config_new_option ( + script_config_file, ptr_section, + "columns", "string", + N_("format of columns displayed in script buffer: following column " + "identifiers are replaced by their value: %a=author, %d=description, " + "%D=date added, %e=extension, %l=language, %L=license, %n=name with " + "extension, %N=name, %r=requirements, %s=status, %t=tags, " + "%u=date updated, %v=version, %V=version loaded, %w=min_weechat, " + "%W=max_weechat)"), + NULL, 0, 0, "%s %n %V %v %u | %d | %t", NULL, 0, + NULL, NULL, &script_config_refresh_cb, NULL, NULL, NULL); + script_config_look_sort = weechat_config_new_option ( + script_config_file, ptr_section, + "sort", "string", + N_("default sort keys for scripts: comma-separated list of identifiers: " + "a=author, d=date added, e=extension, i=installed, l=language, " + "n=name, o=obsolete, p=popularity, r=running, u=date updated; char " + "\"-\" can be used before identifier to reverse order; example: " + "\"i,u\": installed scripts first, sorted by update date"), + NULL, 0, 0, "p,n", NULL, 0, + NULL, NULL, &script_config_change_sort_cb, NULL, NULL, NULL); + + /* color */ + ptr_section = weechat_config_new_section (script_config_file, "color", + 0, 0, + NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, + NULL, NULL); + if (!ptr_section) + { + weechat_config_free (script_config_file); + return 0; + } + + script_config_color_status_popular = weechat_config_new_option ( + script_config_file, ptr_section, + "status_popular", "color", + N_("color for status \"popular\" (\"*\")"), + NULL, 0, 0, "yellow", NULL, 0, + NULL, NULL, &script_config_refresh_cb, NULL, NULL, NULL); + script_config_color_status_installed = weechat_config_new_option ( + script_config_file, ptr_section, + "status_installed", "color", + N_("color for status \"installed\" (\"i\")"), + NULL, 0, 0, "lightcyan", NULL, 0, + NULL, NULL, &script_config_refresh_cb, NULL, NULL, NULL); + script_config_color_status_held = weechat_config_new_option ( + script_config_file, ptr_section, + "status_held", "color", + N_("color for status \"held\" (\"H\")"), + NULL, 0, 0, "white", NULL, 0, + NULL, NULL, &script_config_refresh_cb, NULL, NULL, NULL); + script_config_color_status_running = weechat_config_new_option ( + script_config_file, ptr_section, + "status_running", "color", + N_("color for status \"running\" (\"r\")"), + NULL, 0, 0, "lightgreen", NULL, 0, + NULL, NULL, &script_config_refresh_cb, NULL, NULL, NULL); + script_config_color_status_obsolete = weechat_config_new_option ( + script_config_file, ptr_section, + "status_obsolete", "color", + N_("color for status \"obsolete\" (\"N\")"), + NULL, 0, 0, "lightmagenta", NULL, 0, + NULL, NULL, &script_config_refresh_cb, NULL, NULL, NULL); + script_config_color_status_unknown = weechat_config_new_option ( + script_config_file, ptr_section, + "status_unknown", "color", + N_("color for status \"unknown\" (\"?\")"), + NULL, 0, 0, "lightred", NULL, 0, + NULL, NULL, &script_config_refresh_cb, NULL, NULL, NULL); + script_config_color_text = weechat_config_new_option ( + script_config_file, ptr_section, + "text", "color", + N_("text color in script buffer"), + NULL, 0, 0, "default", NULL, 0, + NULL, NULL, &script_config_refresh_cb, NULL, NULL, NULL); + script_config_color_text_date = weechat_config_new_option ( + script_config_file, ptr_section, + "text_date", "color", + N_("text color of dates in script buffer"), + NULL, 0, 0, "default", NULL, 0, + NULL, NULL, &script_config_refresh_cb, NULL, NULL, NULL); + script_config_color_text_delimiters = weechat_config_new_option ( + script_config_file, ptr_section, + "text_delimiters", "color", + N_("text color of delimiters in script buffer"), + NULL, 0, 0, "darkgray", NULL, 0, + NULL, NULL, &script_config_refresh_cb, NULL, NULL, NULL); + script_config_color_text_description = weechat_config_new_option ( + script_config_file, ptr_section, + "text_description", "color", + N_("text color of description in script buffer"), + NULL, 0, 0, "default", NULL, 0, + NULL, NULL, &script_config_refresh_cb, NULL, NULL, NULL); + script_config_color_text_extension = weechat_config_new_option ( + script_config_file, ptr_section, + "text_extension", "color", + N_("text color of extension in script buffer"), + NULL, 0, 0, "default", NULL, 0, + NULL, NULL, &script_config_refresh_cb, NULL, NULL, NULL); + script_config_color_text_name = weechat_config_new_option ( + script_config_file, ptr_section, + "text_name", "color", + N_("text color of script name in script buffer"), + NULL, 0, 0, "cyan", NULL, 0, + NULL, NULL, &script_config_refresh_cb, NULL, NULL, NULL); + script_config_color_text_tags = weechat_config_new_option ( + script_config_file, ptr_section, + "text_tags", "color", + N_("text color of tags in script buffer"), + NULL, 0, 0, "brown", NULL, 0, + NULL, NULL, &script_config_refresh_cb, NULL, NULL, NULL); + script_config_color_text_version = weechat_config_new_option ( + script_config_file, ptr_section, + "text_version", "color", + N_("text color of version in script buffer"), + NULL, 0, 0, "magenta", NULL, 0, + NULL, NULL, &script_config_refresh_cb, NULL, NULL, NULL); + script_config_color_text_version_loaded = weechat_config_new_option ( + script_config_file, ptr_section, + "text_version_loaded", "color", + N_("text color of version loaded in script buffer"), + NULL, 0, 0, "default", NULL, 0, + NULL, NULL, &script_config_refresh_cb, NULL, NULL, NULL); + script_config_color_text_bg = weechat_config_new_option ( + script_config_file, ptr_section, + "text_bg", "color", + N_("background color in script buffer"), + NULL, 0, 0, "default", NULL, 0, + NULL, NULL, &script_config_refresh_cb, NULL, NULL, NULL); + script_config_color_text_selected = weechat_config_new_option ( + script_config_file, ptr_section, + "text_selected", "color", + N_("text color for selected line in script buffer"), + NULL, 0, 0, "white", NULL, 0, + NULL, NULL, &script_config_refresh_cb, NULL, NULL, NULL); + script_config_color_text_date_selected = weechat_config_new_option ( + script_config_file, ptr_section, + "text_date_selected", "color", + N_("text color of dates for selected line in script buffer"), + NULL, 0, 0, "white", NULL, 0, + NULL, NULL, &script_config_refresh_cb, NULL, NULL, NULL); + script_config_color_text_description_selected = weechat_config_new_option ( + script_config_file, ptr_section, + "text_description_selected", "color", + N_("text color of description for selected line in script buffer"), + NULL, 0, 0, "white", NULL, 0, + NULL, NULL, &script_config_refresh_cb, NULL, NULL, NULL); + script_config_color_text_extension_selected = weechat_config_new_option ( + script_config_file, ptr_section, + "text_extension_selected", "color", + N_("text color of extension for selected line in script buffer"), + NULL, 0, 0, "white", NULL, 0, + NULL, NULL, &script_config_refresh_cb, NULL, NULL, NULL); + script_config_color_text_name_selected = weechat_config_new_option ( + script_config_file, ptr_section, + "text_name_selected", "color", + N_("text color of script name for selected line in script buffer"), + NULL, 0, 0, "lightcyan", NULL, 0, + NULL, NULL, &script_config_refresh_cb, NULL, NULL, NULL); + script_config_color_text_tags_selected = weechat_config_new_option ( + script_config_file, ptr_section, + "text_tags_selected", "color", + N_("text color of tags for selected line in script buffer"), + NULL, 0, 0, "yellow", NULL, 0, + NULL, NULL, &script_config_refresh_cb, NULL, NULL, NULL); + script_config_color_text_version_selected = weechat_config_new_option ( + script_config_file, ptr_section, + "text_version_selected", "color", + N_("text color of version for selected line in script buffer"), + NULL, 0, 0, "lightmagenta", NULL, 0, + NULL, NULL, &script_config_refresh_cb, NULL, NULL, NULL); + script_config_color_text_version_loaded_selected = weechat_config_new_option ( + script_config_file, ptr_section, + "text_version_loaded_selected", "color", + N_("text color of version loaded for selected line in script buffer"), + NULL, 0, 0, "white", NULL, 0, + NULL, NULL, &script_config_refresh_cb, NULL, NULL, NULL); + script_config_color_text_bg_selected = weechat_config_new_option ( + script_config_file, ptr_section, + "text_bg_selected", "color", + N_("background color for selected line in script buffer"), + NULL, 0, 0, "red", NULL, 0, + NULL, NULL, &script_config_refresh_cb, NULL, NULL, NULL); + + /* scripts */ + ptr_section = weechat_config_new_section (script_config_file, "scripts", + 0, 0, + NULL, NULL, NULL, NULL, + NULL, NULL, NULL, NULL, + NULL, NULL); + if (!ptr_section) + { + weechat_config_free (script_config_file); + return 0; + } + + script_config_scripts_cache_expire = weechat_config_new_option ( + script_config_file, ptr_section, + "cache_expire", "integer", + N_("local cache expiration time, in minutes (-1 = never expires, " + "0 = always expire)"), + NULL, -1, 525600, "60", NULL, 0, NULL, NULL, + NULL, NULL, NULL, NULL); + script_config_scripts_dir = weechat_config_new_option ( + script_config_file, ptr_section, + "dir", "string", + N_("local cache directory for scripts"), + NULL, 0, 0, "%h/script", NULL, 0, NULL, NULL, + NULL, NULL, NULL, NULL); + script_config_scripts_hold = weechat_config_new_option ( + script_config_file, ptr_section, + "hold", "string", + N_("scripts to \"hold\": comma-separated list of scripts which will " + "never been upgraded and can not be removed, for example: " + "\"buffers.pl,iset.pl\""), + NULL, 0, 0, "", NULL, 0, NULL, NULL, + &script_config_change_hold_cb, NULL, NULL, NULL); + script_config_scripts_url = weechat_config_new_option ( + script_config_file, ptr_section, + "url", "string", + N_("URL for file with list of scripts"), + NULL, 0, 0, "http://www.weechat.org/files/plugins.xml.gz", NULL, 0, NULL, NULL, + NULL, NULL, NULL, NULL); + + return 1; +} + +/* + * script_config_read: read script configuration file + */ + +int +script_config_read () +{ + return weechat_config_read (script_config_file); +} + +/* + * script_config_write: write script configuration file + */ + +int +script_config_write () +{ + return weechat_config_write (script_config_file); +} + +/* + * script_config_free: free script configuration file + */ + +void +script_config_free () +{ + weechat_config_free (script_config_file); +} diff --git a/src/plugins/script/script-config.h b/src/plugins/script/script-config.h new file mode 100644 index 000000000..31ec84bb5 --- /dev/null +++ b/src/plugins/script/script-config.h @@ -0,0 +1,71 @@ +/* + * Copyright (C) 2003-2012 Sebastien Helleu <flashcode@flashtux.org> + * + * This file is part of WeeChat, the extensible chat client. + * + * WeeChat 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 3 of the License, or + * (at your option) any later version. + * + * WeeChat 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 WeeChat. If not, see <http://www.gnu.org/licenses/>. + */ + +#ifndef __WEECHAT_SCRIPT_CONFIG_H +#define __WEECHAT_SCRIPT_CONFIG_H 1 + +#define SCRIPT_CONFIG_NAME "script" + +struct t_repo_script; + +extern struct t_config_option *script_config_look_columns; +extern struct t_config_option *script_config_look_sort; + +extern struct t_config_option *script_config_color_status_popular; +extern struct t_config_option *script_config_color_status_installed; +extern struct t_config_option *script_config_color_status_held; +extern struct t_config_option *script_config_color_status_running; +extern struct t_config_option *script_config_color_status_obsolete; +extern struct t_config_option *script_config_color_status_unknown; +extern struct t_config_option *script_config_color_text; +extern struct t_config_option *script_config_color_text_date; +extern struct t_config_option *script_config_color_text_delimiters; +extern struct t_config_option *script_config_color_text_description; +extern struct t_config_option *script_config_color_text_extension; +extern struct t_config_option *script_config_color_text_name; +extern struct t_config_option *script_config_color_text_tags; +extern struct t_config_option *script_config_color_text_version; +extern struct t_config_option *script_config_color_text_version_loaded; +extern struct t_config_option *script_config_color_text_bg; +extern struct t_config_option *script_config_color_text_selected; +extern struct t_config_option *script_config_color_text_date_selected; +extern struct t_config_option *script_config_color_text_description_selected; +extern struct t_config_option *script_config_color_text_extension_selected; +extern struct t_config_option *script_config_color_text_name_selected; +extern struct t_config_option *script_config_color_text_tags_selected; +extern struct t_config_option *script_config_color_text_version_selected; +extern struct t_config_option *script_config_color_text_version_loaded_selected; +extern struct t_config_option *script_config_color_text_bg_selected; + +extern struct t_config_option *script_config_scripts_cache_expire; +extern struct t_config_option *script_config_scripts_dir; +extern struct t_config_option *script_config_scripts_hold; +extern struct t_config_option *script_config_scripts_url; + +extern char *script_config_get_dir (); +extern char *script_config_get_xml_filename (); +extern char *script_config_get_script_download_filename (struct t_repo_script *script); +extern void script_config_hold (const char *name_with_extension); +extern void script_config_unhold (const char *name_with_extension); +extern int script_config_init (); +extern int script_config_read (); +extern int script_config_write (); +extern void script_config_free (); + +#endif /* __WEECHAT_SCRIPT_CONFIG_H */ diff --git a/src/plugins/script/script-info.c b/src/plugins/script/script-info.c new file mode 100644 index 000000000..c04959223 --- /dev/null +++ b/src/plugins/script/script-info.c @@ -0,0 +1,110 @@ +/* + * Copyright (C) 2003-2012 Sebastien Helleu <flashcode@flashtux.org> + * + * This file is part of WeeChat, the extensible chat client. + * + * WeeChat 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 3 of the License, or + * (at your option) any later version. + * + * WeeChat 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 WeeChat. If not, see <http://www.gnu.org/licenses/>. + */ + +/* + * script-info.c: info, infolist and hdata hooks for script plugin + */ + +#include <stdlib.h> +#include <stdio.h> +#include <string.h> + +#include "../weechat-plugin.h" +#include "script.h" +#include "script-repo.h" + + +/* + * script_info_get_infolist_cb: callback called when script infolist is asked + */ + +struct t_infolist * +script_info_get_infolist_cb (void *data, const char *infolist_name, + void *pointer, const char *arguments) +{ + struct t_infolist *ptr_infolist; + struct t_repo_script *ptr_script; + + /* make C compiler happy */ + (void) data; + + if (!infolist_name || !infolist_name[0]) + return NULL; + + if (weechat_strcasecmp (infolist_name, "script_script") == 0) + { + if (pointer && !script_repo_script_valid (pointer)) + return NULL; + + ptr_infolist = weechat_infolist_new (); + if (ptr_infolist) + { + if (pointer) + { + /* build list with only one script */ + if (!script_repo_add_to_infolist (ptr_infolist, pointer)) + { + weechat_infolist_free (ptr_infolist); + return NULL; + } + return ptr_infolist; + } + else + { + /* build list with all scripts matching arguments */ + for (ptr_script = repo_scripts; ptr_script; + ptr_script = ptr_script->next_script) + { + if (!arguments || !arguments[0] + || weechat_string_match (ptr_script->name_with_extension, + arguments, 0)) + { + if (!script_repo_add_to_infolist (ptr_infolist, ptr_script)) + { + weechat_infolist_free (ptr_infolist); + return NULL; + } + } + } + return ptr_infolist; + } + } + } + + return NULL; +} + +/* + * script_info_init: initialize info, infolist and hdata hooks for script plugin + */ + +void +script_info_init () +{ + /* infolist hooks */ + weechat_hook_infolist ("script_script", + N_("list of scripts"), + N_("script pointer (optional)"), + N_("script name with extension (can start or end with \"*\" as wildcard) (optional)"), + &script_info_get_infolist_cb, NULL); + + /* hdata hooks */ + weechat_hook_hdata ("script_script", N_("scripts from repository"), + &script_repo_hdata_script_cb, NULL); +} diff --git a/src/plugins/script/script-info.h b/src/plugins/script/script-info.h new file mode 100644 index 000000000..2e2811d90 --- /dev/null +++ b/src/plugins/script/script-info.h @@ -0,0 +1,25 @@ +/* + * Copyright (C) 2003-2012 Sebastien Helleu <flashcode@flashtux.org> + * + * This file is part of WeeChat, the extensible chat client. + * + * WeeChat 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 3 of the License, or + * (at your option) any later version. + * + * WeeChat 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 WeeChat. If not, see <http://www.gnu.org/licenses/>. + */ + +#ifndef __WEECHAT_SCRIPT_INFO_H +#define __WEECHAT_SCRIPT_INFO_H 1 + +extern void script_info_init (); + +#endif /* __WEECHAT_SCRIPT_INFO_H */ diff --git a/src/plugins/script/script-repo.c b/src/plugins/script/script-repo.c new file mode 100644 index 000000000..12a326c6e --- /dev/null +++ b/src/plugins/script/script-repo.c @@ -0,0 +1,1369 @@ +/* + * Copyright (C) 2003-2012 Sebastien Helleu <flashcode@flashtux.org> + * + * This file is part of WeeChat, the extensible chat client. + * + * WeeChat 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 3 of the License, or + * (at your option) any later version. + * + * WeeChat 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 WeeChat. If not, see <http://www.gnu.org/licenses/>. + */ + +/* + * script-repo.c: download and read repository file (plugins.xml.gz) + */ + +#ifndef _GNU_SOURCE +#define _GNU_SOURCE 1 +#endif + +#include <stdlib.h> +#include <unistd.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <string.h> +#include <stdio.h> +#include <time.h> +#include <zlib.h> +#include <gcrypt.h> + +#include "../weechat-plugin.h" +#include "script.h" +#include "script-repo.h" +#include "script-action.h" +#include "script-buffer.h" +#include "script-config.h" + + +struct t_repo_script *repo_scripts = NULL; +struct t_repo_script *last_repo_script = NULL; +int script_repo_count = 0; +int script_repo_count_displayed = 0; +struct t_hashtable *script_repo_max_length_field = NULL; +char *script_repo_filter = NULL; + + +/* + * script_repo_script_valid: check if a script pointer exists + * return 1 if script exists + * 0 if script is not found + */ + +int +script_repo_script_valid (struct t_repo_script *script) +{ + struct t_repo_script *ptr_script; + + if (!script) + return 0; + + for (ptr_script = repo_scripts; ptr_script; + ptr_script = ptr_script->next_script) + { + if (ptr_script == script) + return 1; + } + + /* script not found */ + return 0; +} + +/* + * script_repo_search_displayed_by_number: search a script displayed by number + * (first script displayed is 0) + */ + +struct t_repo_script * +script_repo_search_displayed_by_number (int number) +{ + struct t_repo_script *ptr_script; + int i; + + if (number < 0) + return NULL; + + i = 0; + for (ptr_script = repo_scripts; ptr_script; + ptr_script = ptr_script->next_script) + { + if (ptr_script->displayed) + { + if (i == number) + return ptr_script; + i++; + } + } + + /* script not found */ + return NULL; +} + +/* + * script_repo_search_by_name: search a script by name + * (example: "iset") + */ + +struct t_repo_script * +script_repo_search_by_name (const char *name) +{ + struct t_repo_script *ptr_script; + + for (ptr_script = repo_scripts; ptr_script; + ptr_script = ptr_script->next_script) + { + if (strcmp (ptr_script->name, name) == 0) + return ptr_script; + } + + /* script not found */ + return NULL; +} + +/* + * script_repo_search_by_name_ext: search a script by name/extension + * (example: "iset.pl") + */ + +struct t_repo_script * +script_repo_search_by_name_ext (const char *name_with_extension) +{ + struct t_repo_script *ptr_script; + + for (ptr_script = repo_scripts; ptr_script; + ptr_script = ptr_script->next_script) + { + if (strcmp (ptr_script->name_with_extension, name_with_extension) == 0) + return ptr_script; + } + + /* script not found */ + return NULL; +} + +/* + * script_repo_get_status_for_display: get status for display + * list is the codes of status to display + * (exemple: "*iHrN" for all status) + */ + +const char * +script_repo_get_status_for_display (struct t_repo_script *script, + const char *list, + int collapse) +{ + static char str_status[128]; + const char *ptr_list; + char str_space[2]; + + str_space[0] = (collapse) ? '\0' : ' '; + str_space[1] = '\0'; + + str_status[0] = '\0'; + + for (ptr_list = list; ptr_list[0]; ptr_list++) + { + switch (ptr_list[0]) + { + case '*': + strcat (str_status, weechat_color (weechat_config_string (script_config_color_status_popular))); + strcat (str_status, (script && (script->popularity > 0)) ? "*" : str_space); + break; + case 'i': + strcat (str_status, weechat_color (weechat_config_string (script_config_color_status_installed))); + strcat (str_status, (script && (script->status & SCRIPT_STATUS_INSTALLED)) ? "i" : str_space); + break; + case '?': + strcat (str_status, weechat_color (weechat_config_string (script_config_color_status_unknown))); + strcat (str_status, (script) ? str_space : "?"); + break; + case 'H': + strcat (str_status, weechat_color (weechat_config_string (script_config_color_status_held))); + strcat (str_status, (script && (script->status & SCRIPT_STATUS_HELD)) ? "H" : str_space); + break; + case 'r': + strcat (str_status, weechat_color (weechat_config_string (script_config_color_status_running))); + strcat (str_status, (script && (script->status & SCRIPT_STATUS_RUNNING)) ? "r" : str_space); + break; + case 'N': + strcat (str_status, weechat_color (weechat_config_string (script_config_color_status_obsolete))); + strcat (str_status, (script && (script->status & SCRIPT_STATUS_NEW_VERSION)) ? "N" : str_space); + break; + } + } + + return str_status; +} + +/* + * script_repo_alloc: allocate a script structure + */ + +struct t_repo_script * +script_repo_alloc () +{ + struct t_repo_script *new_script; + + new_script = malloc (sizeof (*new_script)); + if (new_script) + { + new_script->name = NULL; + new_script->name_with_extension = NULL; + new_script->language = -1; + new_script->author = NULL; + new_script->mail = NULL; + new_script->version = NULL; + new_script->license = NULL; + new_script->description = NULL; + new_script->tags = NULL; + new_script->requirements = NULL; + new_script->min_weechat = NULL; + new_script->max_weechat = NULL; + new_script->md5sum = NULL; + new_script->url = NULL; + new_script->popularity = 0; + new_script->date_added = 0; + new_script->date_updated = 0; + new_script->status = 0; + new_script->version_loaded = NULL; + new_script->displayed = 1; + new_script->install_order = 0; + new_script->prev_script = NULL; + new_script->next_script = NULL; + } + + return new_script; +} + +/* + * script_repo_compare_scripts: compare two scripts using sort key(s) + * (from option script.look.sort) + */ + +int +script_repo_compare_scripts (struct t_repo_script *script1, + struct t_repo_script *script2) +{ + const char *ptr_sort; + int cmp, reverse; + + reverse = 1; + ptr_sort = weechat_config_string (script_config_look_sort); + while (ptr_sort[0]) + { + cmp = 0; + switch (ptr_sort[0]) + { + case '-': /* reverse order */ + reverse = -1; + break; + case 'a': /* author */ + cmp = strcmp (script1->author, script2->author); + break; + case 'd': /* date added */ + if (script1->date_added > script2->date_added) + cmp = -1; + else if (script1->date_added < script2->date_added) + cmp = 1; + break; + case 'e': /* extension */ + cmp = strcmp (script_extension[script1->language], + script_extension[script2->language]); + break; + case 'i': /* status "installed" */ + if ((script1->status & SCRIPT_STATUS_INSTALLED) + && !(script2->status & SCRIPT_STATUS_INSTALLED)) + cmp = -1; + else if (!(script1->status & SCRIPT_STATUS_INSTALLED) + && (script2->status & SCRIPT_STATUS_INSTALLED)) + cmp = 1; + break; + case 'l': /* language */ + cmp = strcmp (script_language[script1->language], + script_language[script2->language]); + break; + case 'n': /* name */ + cmp = strcmp (script1->name, script2->name); + break; + case 'o': /* status "new version" (script obsolete) */ + if ((script1->status & SCRIPT_STATUS_NEW_VERSION) + && !(script2->status & SCRIPT_STATUS_NEW_VERSION)) + cmp = -1; + else if (!(script1->status & SCRIPT_STATUS_NEW_VERSION) + && (script2->status & SCRIPT_STATUS_NEW_VERSION)) + cmp = 1; + break; + case 'p': /* popularity */ + if (script1->popularity > script2->popularity) + cmp = -1; + else if (script1->popularity < script2->popularity) + cmp = 1; + break; + case 'r': /* status "running" */ + if ((script1->status & SCRIPT_STATUS_RUNNING) + && !(script2->status & SCRIPT_STATUS_RUNNING)) + cmp = -1; + else if (!(script1->status & SCRIPT_STATUS_RUNNING) + && (script2->status & SCRIPT_STATUS_RUNNING)) + cmp = 1; + break; + case 'u': /* date updated */ + if (script1->date_updated > script2->date_updated) + cmp = -1; + else if (script1->date_updated < script2->date_updated) + cmp = 1; + break; + default: + reverse = 1; + break; + } + if (cmp != 0) + return cmp * reverse; + ptr_sort++; + } + + return 0; +} + +/* + * script_repo_find_pos: find position for script in list + */ + +struct t_repo_script * +script_repo_find_pos (struct t_repo_script *script) +{ + struct t_repo_script *ptr_script; + + for (ptr_script = repo_scripts; ptr_script; + ptr_script = ptr_script->next_script) + { + if (script_repo_compare_scripts (ptr_script, script) > 0) + return ptr_script; + } + + /* position not found, add to the end */ + return NULL; +} + +/* + * script_repo_set_max_length_field: set max length for a field in hashtable + * "script_repo_max_length_field" + */ + +void +script_repo_set_max_length_field (const char *field, int length) +{ + int *value; + + value = weechat_hashtable_get (script_repo_max_length_field, field); + if (!value || (length > *value)) + weechat_hashtable_set (script_repo_max_length_field, field, &length); +} + +/* + * script_repo_add: add script to list of scripts + */ + +void +script_repo_add (struct t_repo_script *script) +{ + struct t_repo_script *ptr_script; + + ptr_script = script_repo_find_pos (script); + if (ptr_script) + { + /* insert script before script found */ + script->prev_script = ptr_script->prev_script; + script->next_script = ptr_script; + if (ptr_script->prev_script) + (ptr_script->prev_script)->next_script = script; + else + repo_scripts = script; + ptr_script->prev_script = script; + } + else + { + /* add script to the end */ + script->prev_script = last_repo_script; + script->next_script = NULL; + if (repo_scripts) + last_repo_script->next_script = script; + else + repo_scripts = script; + last_repo_script = script; + } + + /* set max length for fields */ + if (script->name) + script_repo_set_max_length_field ("N", weechat_utf8_strlen_screen (script->name)); + if (script->name_with_extension) + script_repo_set_max_length_field ("n", weechat_utf8_strlen_screen (script->name_with_extension)); + if (script->language >= 0) + { + script_repo_set_max_length_field ("l", weechat_utf8_strlen_screen (script_language[script->language])); + script_repo_set_max_length_field ("e", weechat_utf8_strlen_screen (script_extension[script->language])); + } + if (script->author) + script_repo_set_max_length_field ("a", weechat_utf8_strlen_screen (script->author)); + if (script->version) + script_repo_set_max_length_field ("v", weechat_utf8_strlen_screen (script->version)); + if (script->version_loaded) + script_repo_set_max_length_field ("V", weechat_utf8_strlen_screen (script->version_loaded)); + if (script->license) + script_repo_set_max_length_field ("L", weechat_utf8_strlen_screen (script->license)); + if (script->description) + script_repo_set_max_length_field ("d", weechat_utf8_strlen_screen (script->description)); + if (script->tags) + script_repo_set_max_length_field ("t", weechat_utf8_strlen_screen (script->tags)); + if (script->requirements) + script_repo_set_max_length_field ("r", weechat_utf8_strlen_screen (script->requirements)); + if (script->min_weechat) + script_repo_set_max_length_field ("w", weechat_utf8_strlen_screen (script->min_weechat)); + if (script->max_weechat) + script_repo_set_max_length_field ("W", weechat_utf8_strlen_screen (script->max_weechat)); + + script_repo_count++; + if (script->displayed) + script_repo_count_displayed++; +} + +/* + * script_repo_free: free data in script + */ + +void +script_repo_free (struct t_repo_script *script) +{ + if (script->name) + free (script->name); + if (script->name_with_extension) + free (script->name_with_extension); + if (script->author) + free (script->author); + if (script->mail) + free (script->mail); + if (script->version) + free (script->version); + if (script->license) + free (script->license); + if (script->description) + free (script->description); + if (script->tags) + free (script->tags); + if (script->requirements) + free (script->requirements); + if (script->min_weechat) + free (script->min_weechat); + if (script->max_weechat) + free (script->max_weechat); + if (script->md5sum) + free (script->md5sum); + if (script->url) + free (script->url); + if (script->version_loaded) + free (script->version_loaded); + + free (script); + } + +/* + * script_repo_remove: remove a script from list + */ + +void +script_repo_remove (struct t_repo_script *script) +{ + struct t_repo_script *new_repo_scripts; + + /* remove script from list */ + if (last_repo_script == script) + last_repo_script = script->prev_script; + if (script->prev_script) + { + (script->prev_script)->next_script = script->next_script; + new_repo_scripts = repo_scripts; + } + else + new_repo_scripts = script->next_script; + if (script->next_script) + (script->next_script)->prev_script = script->prev_script; + + /* free data */ + if (script->displayed) + script_repo_count_displayed--; + script_repo_free (script); + + repo_scripts = new_repo_scripts; + + script_repo_count--; + + if (script_buffer_selected_line >= script_repo_count_displayed) + { + script_buffer_selected_line = (script_repo_count_displayed == 0) ? + 0 : script_repo_count_displayed - 1; + } +} + +/* + * script_repo_remove_all: remove all scripts from list + */ + +void +script_repo_remove_all () +{ + while (repo_scripts) + { + script_repo_remove (repo_scripts); + } + if (script_repo_max_length_field) + { + weechat_hashtable_free (script_repo_max_length_field); + script_repo_max_length_field = NULL; + } +} + +/* + * script_repo_script_is_held: return 1 if script is held, 0 otherwise + */ + +int +script_repo_script_is_held (struct t_repo_script *script) +{ + const char *hold; + char *pos; + int length; + + hold = weechat_config_string (script_config_scripts_hold); + length = strlen (script->name_with_extension); + pos = strstr (hold, script->name_with_extension); + while (pos) + { + if (((pos == hold) || (*(pos - 1) == ',')) + && ((pos[length] == ',') || !pos[length])) + { + /* script held */ + return 1; + } + pos = strstr (pos + 1, script->name_with_extension); + } + + /* script not held */ + return 0; +} + +/* + * script_repo_md5sum_file: return MD5 checksum for content of a file + * Note: result has to be free() after use + */ + +char * +script_repo_md5sum_file (const char *filename) +{ + struct stat st; + FILE *file; + char md5sum[512]; + const char *hexa = "0123456789abcdef"; + unsigned char *data, *result; + gcry_md_hd_t hd; + int mdlen, i; + + md5sum[0] = '\0'; + + if (stat (filename, &st) == -1) + return NULL; + + data = malloc (st.st_size); + if (!data) + return NULL; + + file = fopen (filename, "r"); + if ((int)fread (data, 1, st.st_size, file) < st.st_size) + { + free (data); + return NULL; + } + fclose (file); + + gcry_md_open (&hd, GCRY_MD_MD5, 0); + mdlen = gcry_md_get_algo_dlen (GCRY_MD_MD5); + gcry_md_write (hd, data, st.st_size); + result = gcry_md_read (hd, GCRY_MD_MD5); + for (i = 0; i < mdlen; i++) + { + md5sum[i * 2] = hexa[(result[i] & 0xFF) / 16]; + md5sum[(i * 2) + 1] = hexa[(result[i] & 0xFF) % 16]; + } + md5sum[((mdlen - 1) * 2) + 2] = '\0'; + gcry_md_close (hd); + + free (data); + + return strdup (md5sum); +} + +/* + * script_repo_update_status: update status of a script, which are: + * - script installed? + * - script running? + * - new version available? + */ + +void +script_repo_update_status (struct t_repo_script *script) +{ + const char *weechat_home, *version; + char *filename, *md5sum; + struct stat st; + int length; + struct t_repo_script *ptr_script; + + script->status = 0; + md5sum = NULL; + + /* check if script is installed (file found on disk) */ + weechat_home = weechat_info_get ("weechat_dir", NULL); + length = strlen (weechat_home) + strlen (script->name_with_extension) + 64; + filename = malloc (length); + if (filename) + { + snprintf (filename, length, "%s/%s/autoload/%s", + weechat_home, + script_language[script->language], + script->name_with_extension); + if (stat (filename, &st) == 0) + { + script->status |= SCRIPT_STATUS_INSTALLED; + md5sum = script_repo_md5sum_file (filename); + } + else + { + snprintf (filename, length, "%s/%s/%s", + weechat_home, + script_language[script->language], + script->name_with_extension); + if (stat (filename, &st) == 0) + { + script->status |= SCRIPT_STATUS_INSTALLED; + md5sum = script_repo_md5sum_file (filename); + } + } + free (filename); + } + + /* check if script is held */ + if (script_repo_script_is_held (script)) + script->status |= SCRIPT_STATUS_HELD; + + /* check if script is running (loaded) */ + version = weechat_hashtable_get (script_loaded, script->name_with_extension); + if (version) + { + script->status |= SCRIPT_STATUS_RUNNING; + if (script->version_loaded) + free (script->version_loaded); + script->version_loaded = strdup (version); + } + else + { + if (script->version_loaded) + { + free (script->version_loaded); + script->version_loaded = NULL; + } + } + + /* check if script has new version (script is obsolete) */ + if (md5sum && script->md5sum && (strcmp (script->md5sum, md5sum) != 0)) + script->status |= SCRIPT_STATUS_NEW_VERSION; + + /* recompute max length for version loaded (for display) */ + if (script_repo_max_length_field) + { + length = 0; + weechat_hashtable_set (script_repo_max_length_field, "V", &length); + for (ptr_script = repo_scripts; ptr_script; + ptr_script = ptr_script->next_script) + { + if (ptr_script->version_loaded) + script_repo_set_max_length_field ("V", weechat_utf8_strlen_screen (ptr_script->version_loaded)); + } + } + + if (md5sum) + free (md5sum); +} + +/* + * script_repo_update_status_all: update status of all scripts + */ + +void +script_repo_update_status_all () +{ + struct t_repo_script *ptr_script; + + for (ptr_script = repo_scripts; ptr_script; + ptr_script = ptr_script->next_script) + { + script_repo_update_status (ptr_script); + } +} + +/* + * script_repo_file_exists: return 1 if repository file (plugins.xml.gz) exists + * otherwise 0 + */ + +int +script_repo_file_exists () +{ + char *filename; + int rc; + struct stat st; + + filename = script_config_get_xml_filename(); + if (!filename) + return 0; + + rc = 0; + if (stat (filename, &st) == 0) + rc = 1; + + free (filename); + + return rc; +} + +/* + * script_repo_file_is_uptodate: return 1 if repository file (plugins.xml.gz) + * is up-to-date (file exists and is not outdated) + * otherwise 0 (file has to be downloaded) + */ + +int +script_repo_file_is_uptodate () +{ + char *filename; + struct stat st; + int cache_expire; + time_t current_time; + + cache_expire = weechat_config_integer (script_config_scripts_cache_expire); + + /* cache always expires? => NOT up-to-date */ + if (cache_expire == 0) + return 0; + + filename = script_config_get_xml_filename (); + + /* filename not found? => NOT up-to-date */ + if (!filename) + return 0; + + /* file does not exist? => NOT up-to-date */ + if (stat (filename, &st) == -1) + { + free (filename); + return 0; + } + + /* cache never expires? => OK, up-to-date! */ + if (cache_expire < 0) + { + free (filename); + return 1; + } + + current_time = time (NULL); + + /* cache has expired? => NOT up-to-date */ + if (current_time > st.st_mtime + (cache_expire * 60)) + { + free (filename); + return 0; + } + + /* OK, up-to-date! */ + free (filename); + return 1; +} + +/* + * script_repo_file_read: read scripts in repository file (plugins.xml.gz) + * return 1 if ok, 0 if error + */ + +int +script_repo_file_read (int quiet) +{ + char *filename, *ptr_line, line[4096], *pos, *pos2, *pos3; + char *name, *value1, *value2, *value3, *value, *error; + const char *version; + gzFile file; + struct t_repo_script *script; + int version_number, version_ok, script_ok, length; + struct tm tm_script; + + script_get_loaded_scripts (); + + script_repo_remove_all (); + + if (!script_repo_max_length_field) + { + script_repo_max_length_field = weechat_hashtable_new (16, + WEECHAT_HASHTABLE_STRING, + WEECHAT_HASHTABLE_INTEGER, + NULL, + NULL); + } + else + weechat_hashtable_remove_all (script_repo_max_length_field); + + if (script_repo_filter) + { + free (script_repo_filter); + script_repo_filter = NULL; + } + + version = weechat_info_get ("version", NULL); + version_number = weechat_util_version_number (version); + + filename = script_config_get_xml_filename (); + if (!filename) + { + weechat_printf (NULL, _("%s%s: error reading list of scripts"), + weechat_prefix ("error"), + SCRIPT_PLUGIN_NAME); + return 0; + } + + script = NULL; + file = gzopen (filename, "r"); + free (filename); + if (!file) + { + weechat_printf (NULL, _("%s%s: error reading list of scripts"), + weechat_prefix ("error"), + SCRIPT_PLUGIN_NAME); + return 0; + } + + while (!gzeof (file)) + { + ptr_line = gzgets (file, line, sizeof (line) - 1); + if (ptr_line) + { + if (strstr (ptr_line, "<plugin id=")) + { + script = script_repo_alloc (); + } + else if (strstr (ptr_line, "</plugin>")) + { + if (script) + { + script_ok = 0; + if (script->name && (script->language >= 0)) + { + version_ok = 1; + if (script->min_weechat) + { + if (weechat_util_version_number (script->min_weechat) > version_number) + version_ok = 0; + } + if (version_ok && script->max_weechat) + { + if (weechat_util_version_number (script->max_weechat) < version_number) + version_ok = 0; + } + if (version_ok) + { + length = strlen (script->name) + 1 + + strlen (script_extension[script->language]) + 1; + script->name_with_extension = malloc (length); + if (script->name_with_extension) + { + snprintf (script->name_with_extension, + length, + "%s.%s", + script->name, + script_extension[script->language]); + } + script_repo_update_status (script); + script_repo_add (script); + script_ok = 1; + } + } + if (!script_ok) + { + script_repo_free (script); + } + script = NULL; + } + } + else if (script) + { + pos = strchr (ptr_line, '<'); + if (pos) + { + pos2 = strchr (pos + 1, '>'); + if (pos2 && (pos2 > pos + 1)) + { + pos3 = strstr (pos2 + 1, "</"); + if (pos3 && (pos3 > pos2 + 1)) + { + name = weechat_strndup (pos + 1, pos2 - pos - 1); + value1 = weechat_strndup (pos2 + 1, pos3 - pos2 - 1); + value2 = weechat_string_replace (value1, "&", "&"); + value3 = weechat_string_replace (value2, ">", ">"); + value = weechat_string_replace (value3, "<", "<"); + if (name && value) + { + if (strcmp (name, "name") == 0) + script->name = strdup (value); + else if (strcmp (name, "language") == 0) + script->language = script_language_search (value); + else if (strcmp (name, "author") == 0) + script->author = strdup (value); + else if (strcmp (name, "mail") == 0) + script->mail = strdup (value); + else if (strcmp (name, "version") == 0) + script->version = strdup (value); + else if (strcmp (name, "license") == 0) + script->license = strdup (value); + else if (strcmp (name, "desc_en") == 0) + script->description = strdup (value); + else if (strcmp (name, "tags") == 0) + script->tags = strdup (value); + else if (strcmp (name, "requirements") == 0) + script->requirements = strdup (value); + else if (strcmp (name, "min_weechat") == 0) + script->min_weechat = strdup (value); + else if (strcmp (name, "max_weechat") == 0) + script->max_weechat = strdup (value); + else if (strcmp (name, "md5sum") == 0) + script->md5sum = strdup (value); + else if (strcmp (name, "url") == 0) + script->url = strdup (value); + else if (strcmp (name, "popularity") == 0) + { + error = NULL; + script->popularity = (int)strtol (value, + &error, + 10); + if (!error || error[0]) + script->popularity = 0; + } + else if (strcmp (name, "added") == 0) + { + /* + * initialize structure, because strptime + * does not do it + */ + memset (&tm_script, 0, sizeof (tm_script)); + error = strptime (value, + "%Y-%m-%d %H:%M:%S", + &tm_script); + if (error && !error[0]) + script->date_added = mktime (&tm_script); + } + else if (strcmp (name, "updated") == 0) + { + /* + * initialize structure, because strptime + * does not do it + */ + memset (&tm_script, 0, sizeof (tm_script)); + error = strptime (value, + "%Y-%m-%d %H:%M:%S", + &tm_script); + if (error && !error[0]) + script->date_updated = mktime (&tm_script); + } + } + if (name) + free (name); + if (value1) + free (value1); + if (value2) + free (value2); + if (value3) + free (value3); + if (value) + free (value); + } + } + } + } + } + } + + gzclose (file); + + if (repo_scripts && !quiet) + { + weechat_printf (NULL, + _("%s: %d scripts for WeeChat %s"), + SCRIPT_PLUGIN_NAME, script_repo_count, + weechat_info_get ("version", NULL)); + } + + if (!repo_scripts) + { + weechat_printf (NULL, + _("%s%s: list of scripts is empty (repository file " + "is broken, or download has failed)"), + weechat_prefix ("error"), + SCRIPT_PLUGIN_NAME); + } + + return 1; +} + +/* + * script_repo_file_update_process_cb: callback called when list of scripts is + * downloaded + */ + +int +script_repo_file_update_process_cb (void *data, const char *command, + int return_code, const char *out, + const char *err) +{ + int quiet; + + /* make C compiler happy */ + (void) command; + + quiet = (data == 0) ? 0 : 1; + + if (return_code >= 0) + { + if ((err && err[0]) || (out && (strncmp (out, "error:", 6) == 0))) + { + weechat_printf (NULL, + _("%s%s: error downloading list of scripts: %s"), + weechat_prefix ("error"), + SCRIPT_PLUGIN_NAME, + (err && err[0]) ? err : out + 6); + return WEECHAT_RC_OK; + } + + if (script_repo_file_read (quiet) && repo_scripts) + { + if (!script_action_run ()) + script_buffer_refresh (1); + } + else + script_buffer_refresh (1); + } + + return WEECHAT_RC_OK; +} + +/* + * script_repo_file_update: update repository file, and read it + */ + +void +script_repo_file_update (int quiet) +{ + char *filename, *url; + int length; + struct t_hashtable *options; + + script_repo_remove_all (); + + filename = script_config_get_xml_filename (); + if (!filename) + return; + + options = weechat_hashtable_new (8, + WEECHAT_HASHTABLE_STRING, + WEECHAT_HASHTABLE_STRING, + NULL, + NULL); + if (options) + { + length = 4 + strlen (weechat_config_string (script_config_scripts_url)) + 1; + url = malloc (length); + if (url) + { + if (!quiet) + { + weechat_printf (NULL, + _("%s: downloading list of scripts..."), + SCRIPT_PLUGIN_NAME); + } + + snprintf (url, length, "url:%s", + weechat_config_string (script_config_scripts_url)); + weechat_hashtable_set (options, "file_out", filename); + weechat_hook_process_hashtable (url, options, 30000, + &script_repo_file_update_process_cb, + (quiet) ? (void *)1 : (void *)0); + free (url); + } + weechat_hashtable_free (options); + } + + free (filename); +} + +/* + * script_repo_match_search: return 1 if script is matching search string, + * otherwise 0 + */ + +int +script_repo_match_search (struct t_repo_script *script, const char *search) +{ + char **words, **tags; + int num_words, num_tags, has_tag, match, i, j; + + if (strcmp (search, "*") == 0) + return 1; + + words = weechat_string_split (search, " ", 0, 0, &num_words); + tags = weechat_string_split ((script->tags) ? script->tags : "", ",", 0, 0, + &num_tags); + if (words) + { + for (i = 0; i < num_words; i++) + { + has_tag = 0; + if (tags) + { + for (j = 0; j < num_tags; j++) + { + if (weechat_strcasecmp (tags[j], words[i]) == 0) + { + has_tag = 1; + break; + } + } + } + if (!has_tag) + { + match = 0; + if (script->name_with_extension + && weechat_strcasestr (script->name_with_extension, words[i])) + match = 1; + + if (!match && script->description + && weechat_strcasestr (script->description, words[i])) + match = 1; + + if (!match && script->license + && weechat_strcasestr (script->license, words[i])) + match = 1; + + if (!match && script->author + && weechat_strcasestr (script->author, words[i])) + match = 1; + + if (!match) + { + weechat_string_free_split (words); + weechat_string_free_split (tags); + return 0; + } + } + } + } + + if (words) + weechat_string_free_split (words); + if (tags) + weechat_string_free_split (tags); + + return 1; +} + +/* + * script_repo_filter_scripts: filter scripts (search string in + * name/description/tags) and mark scripts found as + * "displayed" (0 in displayed for non-matching + * scripts) + */ + +void +script_repo_filter_scripts (const char *search) +{ + struct t_repo_script *ptr_script; + + if (script_repo_filter) + free (script_repo_filter); + script_repo_filter = strdup (search); + + script_repo_count_displayed = 0; + + for (ptr_script = repo_scripts; ptr_script; + ptr_script = ptr_script->next_script) + { + ptr_script->displayed = (script_repo_match_search (ptr_script, search)); + if (ptr_script->displayed) + script_repo_count_displayed++; + } + + script_buffer_refresh (1); +} + +/* + * script_repo_hdata_script_cb: return hdata for script + */ + +struct t_hdata * +script_repo_hdata_script_cb (void *data, const char *hdata_name) +{ + struct t_hdata *hdata; + + /* make C compiler happy */ + (void) data; + + hdata = weechat_hdata_new (hdata_name, "prev_script", "next_script"); + if (hdata) + { + WEECHAT_HDATA_VAR(struct t_repo_script, name, STRING, NULL, NULL); + WEECHAT_HDATA_VAR(struct t_repo_script, name_with_extension, STRING, NULL, NULL); + WEECHAT_HDATA_VAR(struct t_repo_script, language, INTEGER, NULL, NULL); + WEECHAT_HDATA_VAR(struct t_repo_script, author, STRING, NULL, NULL); + WEECHAT_HDATA_VAR(struct t_repo_script, mail, STRING, NULL, NULL); + WEECHAT_HDATA_VAR(struct t_repo_script, version, STRING, NULL, NULL); + WEECHAT_HDATA_VAR(struct t_repo_script, license, STRING, NULL, NULL); + WEECHAT_HDATA_VAR(struct t_repo_script, description, STRING, NULL, NULL); + WEECHAT_HDATA_VAR(struct t_repo_script, tags, STRING, NULL, NULL); + WEECHAT_HDATA_VAR(struct t_repo_script, requirements, STRING, NULL, NULL); + WEECHAT_HDATA_VAR(struct t_repo_script, min_weechat, STRING, NULL, NULL); + WEECHAT_HDATA_VAR(struct t_repo_script, max_weechat, STRING, NULL, NULL); + WEECHAT_HDATA_VAR(struct t_repo_script, md5sum, STRING, NULL, NULL); + WEECHAT_HDATA_VAR(struct t_repo_script, url, STRING, NULL, NULL); + WEECHAT_HDATA_VAR(struct t_repo_script, popularity, INTEGER, NULL, NULL); + WEECHAT_HDATA_VAR(struct t_repo_script, date_added, TIME, NULL, NULL); + WEECHAT_HDATA_VAR(struct t_repo_script, date_updated, TIME, NULL, NULL); + WEECHAT_HDATA_VAR(struct t_repo_script, status, INTEGER, NULL, NULL); + WEECHAT_HDATA_VAR(struct t_repo_script, version_loaded, STRING, NULL, NULL); + WEECHAT_HDATA_VAR(struct t_repo_script, displayed, INTEGER, NULL, NULL); + WEECHAT_HDATA_VAR(struct t_repo_script, install_order, INTEGER, NULL, NULL); + WEECHAT_HDATA_VAR(struct t_repo_script, prev_script, POINTER, NULL, hdata_name); + WEECHAT_HDATA_VAR(struct t_repo_script, next_script, POINTER, NULL, hdata_name); + WEECHAT_HDATA_LIST(repo_scripts); + WEECHAT_HDATA_LIST(last_repo_script); + } + return hdata; +} + +/* + * script_repo_add_to_infolist: add a script in an infolist + * return 1 if ok, 0 if error + */ + +int +script_repo_add_to_infolist (struct t_infolist *infolist, + struct t_repo_script *script) +{ + struct t_infolist_item *ptr_item; + + if (!infolist || !script) + return 0; + + ptr_item = weechat_infolist_new_item (infolist); + if (!ptr_item) + return 0; + + if (!weechat_infolist_new_var_string (ptr_item, "name", script->name)) + return 0; + if (!weechat_infolist_new_var_string (ptr_item, "name_with_extension", script->name_with_extension)) + return 0; + if (!weechat_infolist_new_var_integer (ptr_item, "language", script->language)) + return 0; + if (!weechat_infolist_new_var_string (ptr_item, "author", script->author)) + return 0; + if (!weechat_infolist_new_var_string (ptr_item, "mail", script->mail)) + return 0; + if (!weechat_infolist_new_var_string (ptr_item, "version", script->version)) + return 0; + if (!weechat_infolist_new_var_string (ptr_item, "license", script->license)) + return 0; + if (!weechat_infolist_new_var_string (ptr_item, "description", script->description)) + return 0; + if (!weechat_infolist_new_var_string (ptr_item, "tags", script->tags)) + return 0; + if (!weechat_infolist_new_var_string (ptr_item, "requirements", script->requirements)) + return 0; + if (!weechat_infolist_new_var_string (ptr_item, "min_weechat", script->min_weechat)) + return 0; + if (!weechat_infolist_new_var_string (ptr_item, "max_weechat", script->max_weechat)) + return 0; + if (!weechat_infolist_new_var_string (ptr_item, "md5sum", script->md5sum)) + return 0; + if (!weechat_infolist_new_var_string (ptr_item, "url", script->url)) + return 0; + if (!weechat_infolist_new_var_integer (ptr_item, "popularity", script->popularity)) + return 0; + if (!weechat_infolist_new_var_time (ptr_item, "date_added", script->date_added)) + return 0; + if (!weechat_infolist_new_var_time (ptr_item, "date_updated", script->date_updated)) + return 0; + if (!weechat_infolist_new_var_integer (ptr_item, "status", script->status)) + return 0; + if (!weechat_infolist_new_var_string (ptr_item, "version_loaded", script->version_loaded)) + return 0; + if (!weechat_infolist_new_var_integer (ptr_item, "displayed", script->displayed)) + return 0; + if (!weechat_infolist_new_var_integer (ptr_item, "install_order", script->install_order)) + return 0; + + return 1; +} + +/* + * script_repo_print_log: print script infos in log (usually for crash dump) + */ + +void +script_repo_print_log () +{ + struct t_repo_script *ptr_script; + + for (ptr_script = repo_scripts; ptr_script; + ptr_script = ptr_script->next_script) + { + weechat_log_printf (""); + weechat_log_printf ("[script (addr:0x%lx)]", ptr_script); + weechat_log_printf (" name. . . . . . . . . : '%s'", ptr_script->name); + weechat_log_printf (" name_with_extension . : '%s'", ptr_script->name_with_extension); + weechat_log_printf (" language. . . . . . . : %d", ptr_script->language); + weechat_log_printf (" author. . . . . . . . : '%s'", ptr_script->author); + weechat_log_printf (" mail. . . . . . . . . : '%s'", ptr_script->mail); + weechat_log_printf (" version . . . . . . . : '%s'", ptr_script->version); + weechat_log_printf (" license . . . . . . . : '%s'", ptr_script->license); + weechat_log_printf (" description . . . . . : '%s'", ptr_script->description); + weechat_log_printf (" tags. . . . . . . . . : '%s'", ptr_script->tags); + weechat_log_printf (" requirements. . . . . : '%s'", ptr_script->requirements); + weechat_log_printf (" min_weechat . . . . . : '%s'", ptr_script->min_weechat); + weechat_log_printf (" max_weechat . . . . . : '%s'", ptr_script->max_weechat); + weechat_log_printf (" md5sum. . . . . . . . : '%s'", ptr_script->md5sum); + weechat_log_printf (" url . . . . . . . . . : '%s'", ptr_script->url); + weechat_log_printf (" popularity. . . . . . : %d", ptr_script->popularity); + weechat_log_printf (" date_added. . . . . . : %ld", ptr_script->date_added); + weechat_log_printf (" date_updated. . . . . : %ld", ptr_script->date_updated); + weechat_log_printf (" status. . . . . . . . : %d (%s%s%s%s )", + ptr_script->status, + (ptr_script->status & SCRIPT_STATUS_INSTALLED) ? " installed": "", + (ptr_script->status & SCRIPT_STATUS_HELD) ? " held": "", + (ptr_script->status & SCRIPT_STATUS_RUNNING) ? " running": "", + (ptr_script->status & SCRIPT_STATUS_NEW_VERSION) ? " new_version": ""); + weechat_log_printf (" version_loaded. . . . : '%s'", ptr_script->version_loaded); + weechat_log_printf (" displayed . . . . . . : %d", ptr_script->displayed); + weechat_log_printf (" install_order . . . . : %d", ptr_script->install_order); + weechat_log_printf (" prev_script . . . . . : 0x%lx", ptr_script->prev_script); + weechat_log_printf (" next_script . . . . . : 0x%lx", ptr_script->next_script); + } +} diff --git a/src/plugins/script/script-repo.h b/src/plugins/script/script-repo.h new file mode 100644 index 000000000..9bd05e6c7 --- /dev/null +++ b/src/plugins/script/script-repo.h @@ -0,0 +1,83 @@ +/* + * Copyright (C) 2003-2012 Sebastien Helleu <flashcode@flashtux.org> + * + * This file is part of WeeChat, the extensible chat client. + * + * WeeChat 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 3 of the License, or + * (at your option) any later version. + * + * WeeChat 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 WeeChat. If not, see <http://www.gnu.org/licenses/>. + */ + +#ifndef __WEECHAT_SCRIPT_REPO_H +#define __WEECHAT_SCRIPT_REPO_H 1 + +/* status for script */ +#define SCRIPT_STATUS_INSTALLED 1 +#define SCRIPT_STATUS_HELD 2 +#define SCRIPT_STATUS_RUNNING 4 +#define SCRIPT_STATUS_NEW_VERSION 8 + +struct t_repo_script +{ + char *name; /* script name */ + char *name_with_extension; /* script name with extension */ + int language; /* language index */ + char *author; /* author */ + char *mail; /* author's mail */ + char *version; /* plugin version */ + char *license; /* license */ + char *description; /* description */ + char *tags; /* comma-separated list of tags */ + char *requirements; /* requirements */ + char *min_weechat; /* min WeeChat version */ + char *max_weechat; /* max WeeChat version */ + char *md5sum; /* md5sum of script content */ + char *url; /* URL to download script */ + int popularity; /* >0 for popular scripts only */ + time_t date_added; /* date added */ + time_t date_updated; /* date updated */ + int status; /* installed/running/new version */ + char *version_loaded; /* version of script loaded */ + int displayed; /* script displayed? */ + int install_order; /* order for install script (if >0)*/ + struct t_repo_script *prev_script; /* link to previous script */ + struct t_repo_script *next_script; /* link to next script */ +}; + +extern struct t_repo_script *repo_scripts; +extern struct t_repo_script *last_repo_script; +extern int script_repo_count, script_repo_count_displayed; +struct t_hashtable *script_repo_max_length_field; +extern char *script_repo_filter; + +extern int script_repo_script_valid (struct t_repo_script *script); +extern struct t_repo_script *script_repo_search_displayed_by_number (int number); +extern struct t_repo_script *script_repo_search_by_name (const char *name); +extern struct t_repo_script *script_repo_search_by_name_ext (const char *name_with_extension); +extern const char *script_repo_get_status_for_display (struct t_repo_script *script, + const char *list, + int collapse); +extern void script_repo_remove_all (); +extern void script_repo_update_status (struct t_repo_script *script); +extern void script_repo_update_status_all (); +extern int script_repo_file_exists (); +extern int script_repo_file_is_uptodate (); +extern int script_repo_file_read (int quiet); +extern void script_repo_file_update (int quiet); +extern void script_repo_filter_scripts (const char *search); +extern struct t_hdata *script_repo_hdata_script_cb (void *data, + const char *hdata_name); +extern int script_repo_add_to_infolist (struct t_infolist *infolist, + struct t_repo_script *script); +extern void script_repo_print_log (); + +#endif /* __WEECHAT_SCRIPT_REPO_H */ diff --git a/src/plugins/script/script.c b/src/plugins/script/script.c new file mode 100644 index 000000000..a52f9d670 --- /dev/null +++ b/src/plugins/script/script.c @@ -0,0 +1,292 @@ +/* + * Copyright (C) 2003-2012 Sebastien Helleu <flashcode@flashtux.org> + * + * This file is part of WeeChat, the extensible chat client. + * + * WeeChat 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 3 of the License, or + * (at your option) any later version. + * + * WeeChat 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 WeeChat. If not, see <http://www.gnu.org/licenses/>. + */ + +/* + * script.c: scripts manager for WeeChat + */ + +#include <stdlib.h> +#include <stdio.h> +#include <string.h> +#include <time.h> +#include <libgen.h> + +#include "../weechat-plugin.h" +#include "script.h" +#include "script-buffer.h" +#include "script-command.h" +#include "script-completion.h" +#include "script-config.h" +#include "script-info.h" +#include "script-repo.h" + + +WEECHAT_PLUGIN_NAME(SCRIPT_PLUGIN_NAME); +WEECHAT_PLUGIN_DESCRIPTION(N_("Scripts manager")); +WEECHAT_PLUGIN_AUTHOR("Sebastien Helleu <flashcode@flashtux.org>"); +WEECHAT_PLUGIN_VERSION(WEECHAT_VERSION); +WEECHAT_PLUGIN_LICENSE(WEECHAT_LICENSE); + +struct t_weechat_plugin *weechat_script_plugin = NULL; + +char *script_language[] = { "guile", "lua", "perl", "python", "ruby", "tcl", NULL }; +char *script_extension[] = { "scm", "lua", "pl", "py", "rb", "tcl", NULL }; + +struct t_hashtable *script_loaded = NULL; +struct t_hook *script_timer_refresh = NULL; + + +/* + * script_language_search: search language and return index + * return -1 if not found + */ + +int +script_language_search (const char *language) +{ + int i; + + for (i = 0; script_language[i]; i++) + { + if (strcmp (script_language[i], language) == 0) + return i; + } + + /* language not found */ + return -1; +} + +/* + * script_language_search_by_extension: search language by extension and return + * index + * return -1 if not found + */ + +int +script_language_search_by_extension (const char *extension) +{ + int i; + + for (i = 0; script_extension[i]; i++) + { + if (strcmp (script_extension[i], extension) == 0) + return i; + } + + /* extension not found */ + return -1; +} + +/* + * script_get_loaded_scripts: get loaded scripts (in hashtable) + */ + +void +script_get_loaded_scripts () +{ + int i; + char hdata_name[128], *filename, *ptr_base_name; + const char *ptr_filename; + struct t_hdata *hdata; + void *ptr_script; + + if (!script_loaded) + { + script_loaded = weechat_hashtable_new (16, + WEECHAT_HASHTABLE_STRING, + WEECHAT_HASHTABLE_STRING, + NULL, + NULL); + } + else + weechat_hashtable_remove_all (script_loaded); + + for (i = 0; script_language[i]; i++) + { + snprintf (hdata_name, sizeof (hdata_name), + "%s_script", script_language[i]); + hdata = weechat_hdata_get (hdata_name); + ptr_script = weechat_hdata_get_list (hdata, "scripts"); + while (ptr_script) + { + ptr_filename = weechat_hdata_string (hdata, ptr_script, "filename"); + if (ptr_filename) + { + filename = strdup (ptr_filename); + if (filename) + { + ptr_base_name = basename (filename); + weechat_hashtable_set (script_loaded, + ptr_base_name, + weechat_hdata_string (hdata, ptr_script, + "version")); + free (filename); + } + } + ptr_script = weechat_hdata_move (hdata, ptr_script, 1); + } + } +} + +/* + * script_debug_dump_cb: callback for "debug_dump" signal + */ + +int +script_debug_dump_cb (void *data, const char *signal, const char *type_data, + void *signal_data) +{ + /* make C compiler happy */ + (void) data; + (void) signal; + (void) type_data; + + if (!signal_data + || (weechat_strcasecmp ((char *)signal_data, SCRIPT_PLUGIN_NAME) == 0)) + { + weechat_log_printf (""); + weechat_log_printf ("***** \"%s\" plugin dump *****", + weechat_plugin->name); + + script_repo_print_log (); + + weechat_log_printf (""); + weechat_log_printf ("***** End of \"%s\" plugin dump *****", + weechat_plugin->name); + } + + return WEECHAT_RC_OK; +} + +/* + * script_timer_refresh_cb: callback for timer used to refresh list of scripts + */ + +int +script_timer_refresh_cb (void *data, int remaining_calls) +{ + /* make C compiler happy */ + (void) data; + + script_get_loaded_scripts (); + script_repo_update_status_all (); + script_buffer_refresh (0); + + if (remaining_calls == 0) + script_timer_refresh = NULL; + + return WEECHAT_RC_OK; +} + +/* + * script_signal_script_cb: callback for signals "xxx_script_yyy" + * (example: "python_script_loaded") + */ + +int +script_signal_script_cb (void *data, const char *signal, const char *type_data, + void *signal_data) +{ + /* make C compiler happy */ + (void) data; + (void) signal; + (void) type_data; + (void) signal_data; + + if (weechat_script_plugin->debug >= 2) + weechat_printf (NULL, "signal: %s, data: %s", signal, (char *)signal_data); + + if (!script_timer_refresh) + { + script_timer_refresh = weechat_hook_timer (50, 0, 1, + &script_timer_refresh_cb, NULL); + } + + return WEECHAT_RC_OK; +} + +/* + * weechat_plugin_init: initialize script plugin + */ + +int +weechat_plugin_init (struct t_weechat_plugin *plugin, int argc, char *argv[]) +{ + /* make C compiler happy */ + (void) argc; + (void) argv; + + weechat_plugin = plugin; + + script_buffer_set_callbacks (); + + if (!script_config_init ()) + return WEECHAT_RC_ERROR; + + if (script_config_read () < 0) + return WEECHAT_RC_ERROR; + + weechat_mkdir_home (SCRIPT_PLUGIN_NAME, 0755); + + script_command_init (); + script_completion_init (); + script_info_init (); + + weechat_hook_signal ("debug_dump", &script_debug_dump_cb, NULL); + weechat_hook_signal ("window_scrolled", &script_buffer_window_scrolled_cb, NULL); + weechat_hook_signal ("*_script_*", &script_signal_script_cb, NULL); + + if (script_repo_file_exists ()) + { + if (!script_repo_file_is_uptodate ()) + script_repo_file_update (0); + else + script_repo_file_read (0); + } + + if (script_buffer) + script_buffer_refresh (1); + + return WEECHAT_RC_OK; +} + +/* + * weechat_plugin_end: end script plugin + */ + +int +weechat_plugin_end (struct t_weechat_plugin *plugin) +{ + /* make C compiler happy */ + (void) plugin; + + script_config_write (); + + script_repo_remove_all (); + + if (script_repo_filter) + free (script_repo_filter); + + if (script_loaded) + weechat_hashtable_free (script_loaded); + + script_config_free (); + + return WEECHAT_RC_OK; +} diff --git a/src/plugins/script/script.h b/src/plugins/script/script.h new file mode 100644 index 000000000..e922c3011 --- /dev/null +++ b/src/plugins/script/script.h @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2003-2012 Sebastien Helleu <flashcode@flashtux.org> + * + * This file is part of WeeChat, the extensible chat client. + * + * WeeChat 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 3 of the License, or + * (at your option) any later version. + * + * WeeChat 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 WeeChat. If not, see <http://www.gnu.org/licenses/>. + */ + +#ifndef __WEECHAT_SCRIPT_H +#define __WEECHAT_SCRIPT_H 1 + +#define weechat_plugin weechat_script_plugin +#define SCRIPT_PLUGIN_NAME "script" + +extern struct t_weechat_plugin *weechat_script_plugin; + +extern char *script_language[]; +extern char *script_extension[]; +extern struct t_hashtable *script_loaded; + +extern int script_language_search (const char *language); +extern int script_language_search_by_extension (const char *extension); +extern void script_actions_add (const char *action); +extern void script_get_loaded_scripts (); + +#endif /* __WEECHAT_SCRIPT_H */ |