From: Zygo Blaxell Date: Mon, 2 Mar 2009 05:43:41 +0000 (-0500) Subject: ftp://ftp.krokus.ru/pub/OpenBSD/distfiles/xscreensaver-5.01.tar.gz X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?p=xscreensaver;a=commitdiff_plain;h=07faf451b99879183ed7e909e43a0e065be1ee7f ftp://ftp.krokus.ru/pub/OpenBSD/distfiles/xscreensaver-5.01.tar.gz -rw-r--r-- 1 zblaxell zblaxell 5270954 Nov 7 2006 xscreensaver-5.01.tar.gz c371241c54f4c4cc2dd670852e39f212da3ca991 xscreensaver-5.01.tar.gz --- diff --git a/Makefile.in b/Makefile.in index 12ab264a..c9ec0db3 100644 --- a/Makefile.in +++ b/Makefile.in @@ -334,7 +334,7 @@ www:: else \ set -x ; \ fi ; \ -true cvs add -kb $$BNAME $$BNAME2 ; \ + cvs add -kb $$BNAME $$BNAME2 ; \ cat $$TMP > download.html ; \ rm -f $$TMP ; \ \ diff --git a/OSX/SaverTester.plist b/OSX/SaverTester.plist index c3de714f..1feabb21 100644 --- a/OSX/SaverTester.plist +++ b/OSX/SaverTester.plist @@ -15,11 +15,11 @@ CFBundlePackageType APPL CFBundleShortVersionString - 5.00 + 5.01 CFBundleSignature ???? CFBundleVersion - 5.00 + 5.01 LSMinimumSystemVersion 10.4.0 NSMainNibFile diff --git a/OSX/XScreenSaver.plist b/OSX/XScreenSaver.plist index 2fa609ae..a3e6b63a 100644 --- a/OSX/XScreenSaver.plist +++ b/OSX/XScreenSaver.plist @@ -15,11 +15,11 @@ CFBundlePackageType BNDL CFBundleShortVersionString - 5.00 + 5.01 CFBundleSignature ???? CFBundleVersion - 5.00 + 5.01 LSMinimumSystemVersion 10.4.0 NSMainNibFile diff --git a/OSX/bindist.rtf b/OSX/bindist.rtf index 98292809..66f2d2c7 100644 --- a/OSX/bindist.rtf +++ b/OSX/bindist.rtf @@ -15,7 +15,7 @@ XScreenSaver \f1\b0 \ by Jamie Zawinski \uc0\u8232 and many others\ \ -version 5.00 \uc0\u8232 23-May-2006\ +version 5.01 \uc0\u8232 18-Sep-2006\ \ {\field{\*\fldinst{HYPERLINK "http://www.jwz.org/xscreensaver/"}}{\fldrslt \cf2 \ul \ulc2 http://www.jwz.org/xscreensaver/}}\ \pard\pardeftab720\li720 diff --git a/README b/README index 64011bb3..1d6d93cb 100644 --- a/README +++ b/README @@ -38,6 +38,16 @@ XScreenSaver has an extensive manual -- please read it! =============================================================================== +Changes since 5.00: * Backed out recent locale-related changes, since they + broke far more things than they fixed. + * Fail gracefully with ridiculously small window sizes. + * `xflame' and `flag' ignore bitmap option on MacOS. + * `speedmine' prefs work on MacOS. + * Better explosions in `boxed'. + * More dynamic motion in `sproingies'. + * More options in `flipflop'. + * Minor updates to `topblock'. + * Various other minor fixes. Changes since 4.24: * Ported to MacOS X! (10.4.0 or newer) * API change: instead of providing a single screenhack() function that does not return, screen savers using the diff --git a/config.h.in b/config.h.in index 54e872c9..72be58ac 100644 --- a/config.h.in +++ b/config.h.in @@ -12,6 +12,9 @@ */ +/* Define this to allow the root password to unlock the screen. */ +#undef ALLOW_ROOT_PASSWD + /* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP systems. This function is required for `alloca.c' support on those systems. */ @@ -212,6 +215,10 @@ lock/unlock the screen, instead of standard /etc/passwd authentication. */ #undef HAVE_PAM +/* Define this if you have pam_fail_delay function. see driver/passwd-pam.c. + */ +#undef HAVE_PAM_FAIL_DELAY + /* Define this if you have a Linux-like /proc/interrupts file which can be examined to determine when keyboard activity has occurred. */ #undef HAVE_PROC_INTERRUPTS diff --git a/configure b/configure index e774dadf..bbfafcef 100755 --- a/configure +++ b/configure @@ -309,7 +309,7 @@ ac_includes_default="\ # include #endif" -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA SET_MAKE EGREP PERL X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS INTLTOOL_DESKTOP_RULE INTLTOOL_DIRECTORY_RULE INTLTOOL_KEYS_RULE INTLTOOL_OAF_RULE INTLTOOL_PONG_RULE INTLTOOL_SERVER_RULE INTLTOOL_SHEET_RULE INTLTOOL_SOUNDLIST_RULE INTLTOOL_UI_RULE INTLTOOL_XML_RULE INTLTOOL_CAVES_RULE INTLTOOL_EXTRACT INTLTOOL_MERGE INTLTOOL_UPDATE INTLTOOL_PERL GETTEXT_PACKAGE RANLIB ac_ct_RANLIB ALLOCA USE_NLS MSGFMT GMSGFMT XGETTEXT CATALOGS CATOBJEXT DATADIRNAME GMOFILES INSTOBJEXT INTLDEPS INTLLIBS INTLOBJS POFILES POSUB MKINSTALLDIRS login_manager_tmp pkg_config gnome_open_program gnome_url_show_program INCLUDES PREFERRED_DEMO_PROGRAM ALL_DEMO_PROGRAMS SAVER_LIBS MOTIF_LIBS GTK_LIBS XML_LIBS JPEG_LIBS HACK_LIBS XPM_LIBS PTY_LIBS GL_LIBS GLE_LIBS XDPMS_LIBS XINERAMA_LIBS PASSWD_LIBS INSTALL_SETUID SETUID_HACKS INSTALL_DIRS NEED_SETUID INSTALL_PAM NEW_LOGIN_COMMAND NEW_LOGIN_COMMAND_P DEFAULT_IMAGES_P DEFAULT_IMAGE_DIRECTORY DEFAULT_TEXT_FILE OBJCC EXES_OSX SCRIPTS_OSX MEN_OSX PASSWD_SRCS PASSWD_OBJS XMU_SRCS XMU_OBJS XMU_LIBS SAVER_GL_SRCS SAVER_GL_OBJS SAVER_GL_LIBS LOCK_SRCS LOCK_OBJS JPEG_EXES GL_EXES GL_UTIL_EXES GL_MEN GL_KLUDGE GLE_EXES GLE_KLUDGE GNOME24 GNOME22 NOGNOME HACKDIR HACKDIR_FULL GTK_DATADIR PO_DATADIR HACK_CONF_DIR GTK_EXTRA_OBJS APPDEFAULTS DEPEND DEPEND_FLAGS DEPEND_DEFINES LIBOBJS LTLIBOBJS' +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA SET_MAKE EGREP PERL X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS INTLTOOL_DESKTOP_RULE INTLTOOL_DIRECTORY_RULE INTLTOOL_KEYS_RULE INTLTOOL_OAF_RULE INTLTOOL_PONG_RULE INTLTOOL_SERVER_RULE INTLTOOL_SHEET_RULE INTLTOOL_SOUNDLIST_RULE INTLTOOL_UI_RULE INTLTOOL_XML_RULE INTLTOOL_CAVES_RULE INTLTOOL_EXTRACT INTLTOOL_MERGE INTLTOOL_UPDATE INTLTOOL_PERL GETTEXT_PACKAGE RANLIB ac_ct_RANLIB ALLOCA USE_NLS MSGFMT GMSGFMT XGETTEXT CATALOGS CATOBJEXT DATADIRNAME GMOFILES INSTOBJEXT INTLDEPS INTLLIBS INTLOBJS POFILES POSUB MKINSTALLDIRS login_manager_tmp pkg_config gnome_open_program gnome_url_show_program INCLUDES PREFERRED_DEMO_PROGRAM ALL_DEMO_PROGRAMS SAVER_LIBS MOTIF_LIBS GTK_LIBS XML_LIBS JPEG_LIBS HACK_LIBS XPM_LIBS PTY_LIBS GL_LIBS GLE_LIBS XDPMS_LIBS XINERAMA_LIBS PASSWD_LIBS INSTALL_SETUID SETUID_HACKS INSTALL_DIRS NEED_SETUID INSTALL_PAM HAVE_PAM_FAIL_DELAY NEW_LOGIN_COMMAND NEW_LOGIN_COMMAND_P DEFAULT_IMAGES_P DEFAULT_IMAGE_DIRECTORY DEFAULT_TEXT_FILE WITH_BROWSER OBJCC EXES_OSX SCRIPTS_OSX MEN_OSX PASSWD_SRCS PASSWD_OBJS XMU_SRCS XMU_OBJS XMU_LIBS SAVER_GL_SRCS SAVER_GL_OBJS SAVER_GL_LIBS LOCK_SRCS LOCK_OBJS JPEG_EXES GL_EXES GL_UTIL_EXES GL_MEN GL_KLUDGE GLE_EXES GLE_KLUDGE GNOME24 GNOME22 NOGNOME HACKDIR HACKDIR_FULL GTK_DATADIR PO_DATADIR HACK_CONF_DIR GTK_EXTRA_OBJS APPDEFAULTS DEPEND DEPEND_FLAGS DEPEND_DEFINES LIBOBJS LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. @@ -851,6 +851,9 @@ Screen locking options: --enable-locking Compile in support for locking the display. --disable-locking Do not allow locking at all. + --enable-root-passwd Allow root passwd to unlock screen. + --disable-root-passwd Do not allow that. + Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) @@ -922,6 +925,7 @@ Graphics options: --with-image-directory=DIR By default, some demos may display random images from this directory. --with-text-file=FILE By default, some demos may display this file. + --with-browser=BROWSER Specify the browser to show help URL. --with-setuid-hacks Allow some demos to be installed `setuid root' (which is needed in order to ping other hosts.) @@ -1536,6 +1540,12 @@ echo "command line was: $0 $@" + + + + + + @@ -12352,6 +12362,29 @@ _ACEOF fi +############################################################################### +# +# Whether to allow root password to unblank. +# +############################################################################### +# Check whether --enable-root-passwd or --disable-root-passwd was given. +if test "${enable_root_passwd+set}" = set; then + enableval="$enable_root_passwd" + enable_root_passwd="$enableval" +else + enable_root_passwd=yes +fi; +if test "$enable_root_passwd" = yes; then + cat >>confdefs.h <<\_ACEOF +#define ALLOW_ROOT_PASSWD 1 +_ACEOF + + true +elif test "$enable_root_passwd" != no; then + echo "error: something wrong with root-passwd option. Check configure.in ." + exit 1 +fi + ############################################################################### # # Check for PAM. @@ -12840,6 +12873,80 @@ echo "${ECHO_T}two arguments" >&6 echo "$as_me:$LINENO: result: unknown" >&5 echo "${ECHO_T}unknown" >&6 fi + +# Check pam_fail_delay + echo "$as_me:$LINENO: checking pam_fail_delay in -lpam" >&5 +echo $ECHO_N "checking pam_fail_delay in -lpam... $ECHO_C" >&6 + if test "${ac_cv_pam_fail_delay+set}" = set; then + echo $ECHO_N "(cached) $ECHO_C" >&6 +else + ac_save_LDFLAGS="$LDFLAGS" + LDFLAGS="-lpam" + cat >conftest.$ac_ext <<_ACEOF +/* confdefs.h. */ +_ACEOF +cat confdefs.h >>conftest.$ac_ext +cat >>conftest.$ac_ext <<_ACEOF +/* end confdefs.h. */ +#include +int +main () +{ +pam_handle_t *pamh = 0; + unsigned int usec = 1; + int status = pam_fail_delay (pamh, usec); + ; + return 0; +} +_ACEOF +rm -f conftest.$ac_objext conftest$ac_exeext +if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 + (eval $ac_link) 2>conftest.er1 + ac_status=$? + grep -v '^ *+' conftest.er1 >conftest.err + rm -f conftest.er1 + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } && + { ac_try='test -z "$ac_c_werror_flag" + || test ! -s conftest.err' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; } && + { ac_try='test -s conftest$ac_exeext' + { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 + (eval $ac_try) 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); }; }; then + ac_pam_fail_delay=yes +else + echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +ac_pam_fail_delay=no +fi +rm -f conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + ac_cv_pam_fail_delay=$ac_pam_fail_delay, + LD_FLAGS=$ac_save_LDFLAGS +fi + + + if test "$ac_pam_fail_delay" = yes ; then + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 + cat >>confdefs.h <<\_ACEOF +#define HAVE_PAM_FAIL_DELAY 1 +_ACEOF + + else + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 + fi + fi fi @@ -14828,6 +14935,7 @@ fi # Check for the various Gnome help and URL loading programs. # +WITH_BROWSER=gnome-open if test "$have_gtk" = yes; then for ac_prog in gnome-open do @@ -16213,7 +16321,7 @@ if test "${ac_cv_mesagl_version_string+set}" = set; then echo $ECHO_N "(cached) $ECHO_C" >&6 else cat > conftest.$ac_ext < #ifndef MESA_MAJOR_VERSION @@ -19569,6 +19677,52 @@ ac_cv_textfile="$with_textfile" DEFAULT_TEXT_FILE="$ac_cv_textfile" +############################################################################### +# +# Check the browser to see help URL +# +############################################################################### + +have_browser=no +with_browser_req=unspecified + + +# Check whether --with-browser or --without-browser was given. +if test "${with_browser+set}" = set; then + withval="$with_browser" + with_browser="$withval"; with_browser_req="$withval" +else + with_browser=no +fi; +# no HANDLE_X_PATH_ARG for this one + +case "$with_browser" in + no ) + ;; + * ) + WITH_BROWSER=$with_browser + gnome_open_program=$with_browser + echo "$as_me:$LINENO: checking for browser $with_browser" >&5 +echo $ECHO_N "checking for browser $with_browser... $ECHO_C" >&6 + with_browser_fullpath=`which $with_browser 2>/dev/null` + case $with_browser_fullpath in + /* ) + echo "$as_me:$LINENO: result: yes" >&5 +echo "${ECHO_T}yes" >&6 + have_browser=yes + ;; + * ) + echo "$as_me:$LINENO: result: no" >&5 +echo "${ECHO_T}no" >&6 +# Only warning: we don't want to install all packages for the +# dependency of the browser in building stage... + echo "WARNING: browser not found: --with-browser=$with_browser" + ;; + esac + ;; +esac +ac_cv_browser="$with_browser" + ############################################################################### # # Check whether it's ok to install some hacks as setuid (e.g., "sonar") @@ -19869,6 +20023,8 @@ INCLUDES=`echo "$INCLUDES" | sed 's@ -I${prefix}/include@@g;'` + + @@ -20604,11 +20760,13 @@ s,@SETUID_HACKS@,$SETUID_HACKS,;t t s,@INSTALL_DIRS@,$INSTALL_DIRS,;t t s,@NEED_SETUID@,$NEED_SETUID,;t t s,@INSTALL_PAM@,$INSTALL_PAM,;t t +s,@HAVE_PAM_FAIL_DELAY@,$HAVE_PAM_FAIL_DELAY,;t t s,@NEW_LOGIN_COMMAND@,$NEW_LOGIN_COMMAND,;t t s,@NEW_LOGIN_COMMAND_P@,$NEW_LOGIN_COMMAND_P,;t t s,@DEFAULT_IMAGES_P@,$DEFAULT_IMAGES_P,;t t s,@DEFAULT_IMAGE_DIRECTORY@,$DEFAULT_IMAGE_DIRECTORY,;t t s,@DEFAULT_TEXT_FILE@,$DEFAULT_TEXT_FILE,;t t +s,@WITH_BROWSER@,$WITH_BROWSER,;t t s,@OBJCC@,$OBJCC,;t t s,@EXES_OSX@,$EXES_OSX,;t t s,@SCRIPTS_OSX@,$SCRIPTS_OSX,;t t diff --git a/configure.in b/configure.in index 03e1a7d2..8793c578 100644 --- a/configure.in +++ b/configure.in @@ -191,6 +191,9 @@ AH_TEMPLATE([PASSWD_HELPER_PROGRAM], AH_TEMPLATE([NO_LOCKING], [Define this to remove the option of locking the screen at all.]) +AH_TEMPLATE([ALLOW_ROOT_PASSWD], + [Define this to allow the root password to unlock the screen.]) + AH_TEMPLATE([HAVE_KERBEROS], [Define this if you want to use Kerberos authentication to lock/unlock the screen instead of your local password. This @@ -221,6 +224,10 @@ AH_TEMPLATE([PAM_SERVICE_NAME], configured for xlock, so setting this to "xlock" would also work in that case.]) +AH_TEMPLATE([HAVE_PAM_FAIL_DELAY], + [Define this if you have pam_fail_delay function. + see driver/passwd-pam.c.]) + AH_TEMPLATE([PAM_STRERROR_TWO_ARGS], [Define if you have PAM and pam_strerror() requires two arguments.]) @@ -1791,6 +1798,23 @@ if test "$ac_macosx" = yes; then fi +############################################################################### +# +# Whether to allow root password to unblank. +# +############################################################################### +AC_ARG_ENABLE(root-passwd, [ + --enable-root-passwd Allow root passwd to unlock screen. + --disable-root-passwd Do not allow that.], + [enable_root_passwd="$enableval"],[enable_root_passwd=yes]) +if test "$enable_root_passwd" = yes; then + AC_DEFINE(ALLOW_ROOT_PASSWD) + true +elif test "$enable_root_passwd" != no; then + echo "error: something wrong with root-passwd option. Check configure.in ." + exit 1 +fi + ############################################################################### # # Check for PAM. @@ -1872,6 +1896,28 @@ if test "$enable_locking" = yes -a "$with_pam" = yes; then else AC_MSG_RESULT(unknown) fi + +# Check pam_fail_delay + AC_MSG_CHECKING(pam_fail_delay in -lpam) + AC_CACHE_VAL(ac_cv_pam_fail_delay, + [ac_save_LDFLAGS="$LDFLAGS" + LDFLAGS="-lpam" + AC_TRY_LINK([#include ], + [pam_handle_t *pamh = 0; + unsigned int usec = 1; + int status = pam_fail_delay (pamh, usec);], + [ac_pam_fail_delay=yes], + [ac_pam_fail_delay=no]) + ac_cv_pam_fail_delay=$ac_pam_fail_delay, + LD_FLAGS=$ac_save_LDFLAGS]) + + if test "$ac_pam_fail_delay" = yes ; then + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_PAM_FAIL_DELAY) + else + AC_MSG_RESULT(no) + fi + fi fi @@ -2430,6 +2476,7 @@ fi # Check for the various Gnome help and URL loading programs. # +WITH_BROWSER=gnome-open if test "$have_gtk" = yes; then AC_CHECK_PROGS(gnome_open_program, gnome-open) AC_CHECK_PROGS(gnome_url_show_program, gnome-url-show) @@ -3357,6 +3404,45 @@ ac_cv_textfile="$with_textfile" DEFAULT_TEXT_FILE="$ac_cv_textfile" +############################################################################### +# +# Check the browser to see help URL +# +############################################################################### + +have_browser=no +with_browser_req=unspecified + +AC_ARG_WITH(browser, +[ --with-browser=BROWSER Specify the browser to show help URL.], + [with_browser="$withval"; with_browser_req="$withval"], + [with_browser=no ]) +# no HANDLE_X_PATH_ARG for this one + +case "$with_browser" in + no ) + ;; + * ) + WITH_BROWSER=$with_browser + gnome_open_program=$with_browser + AC_MSG_CHECKING([for browser $with_browser]) + with_browser_fullpath=`which $with_browser 2>/dev/null` + case $with_browser_fullpath in + /* ) + AC_MSG_RESULT(yes) + have_browser=yes + ;; + * ) + AC_MSG_RESULT(no) +# Only warning: we don't want to install all packages for the +# dependency of the browser in building stage... + echo "WARNING: browser not found: --with-browser=$with_browser" + ;; + esac + ;; +esac +ac_cv_browser="$with_browser" + ############################################################################### # # Check whether it's ok to install some hacks as setuid (e.g., "sonar") @@ -3574,11 +3660,13 @@ AC_SUBST(SETUID_HACKS) AC_SUBST(INSTALL_DIRS) AC_SUBST(NEED_SETUID) AC_SUBST(INSTALL_PAM) +AC_SUBST(HAVE_PAM_FAIL_DELAY) AC_SUBST(NEW_LOGIN_COMMAND) AC_SUBST(NEW_LOGIN_COMMAND_P) AC_SUBST(DEFAULT_IMAGES_P) AC_SUBST(DEFAULT_IMAGE_DIRECTORY) AC_SUBST(DEFAULT_TEXT_FILE) +AC_SUBST(WITH_BROWSER) AC_SUBST(OBJCC) AC_SUBST(EXES_OSX) diff --git a/driver/Makefile.in b/driver/Makefile.in index 3c0f7966..e7a07d9c 100644 --- a/driver/Makefile.in +++ b/driver/Makefile.in @@ -472,7 +472,9 @@ install-pam: echo rm -f $$src ; \ rm -f $$src ; \ fi ; \ - if ! ( grep $$dest $$conf >/dev/null ); then \ + if ( grep $$dest $$conf >/dev/null ); then \ + echo ; \ + else \ e=echo ; \ $$e "" ;\ $$e " ####################################################################";\ diff --git a/driver/XScreenSaver.ad.in b/driver/XScreenSaver.ad.in index eb590662..840252df 100644 --- a/driver/XScreenSaver.ad.in +++ b/driver/XScreenSaver.ad.in @@ -4,8 +4,8 @@ ! a screen saver and locker for the X window system ! by Jamie Zawinski ! -! version 5.00b2b2 -! 23-May-2006 +! version 5.01b2 +! 18-Sep-2006 ! ! See "man xscreensaver" for more info. The latest version is always ! available at http://www.jwz.org/xscreensaver/ @@ -93,7 +93,7 @@ GetViewPortIsFullOfLies: False ! ! Gnome 2.4, 2.6: (yelp can't display man pages, as of 2.6.3) ! -@GNOME24@*loadURL: gnome-open '%s' +@GNOME24@*loadURL: @WITH_BROWSER@ '%s' @GNOME24@*manualCommand: gnome-terminal --title '%s manual' \ @GNOME24@ --command '/bin/sh -c "man %s; read foo"' ! diff --git a/driver/passwd-pam.c b/driver/passwd-pam.c index 5c4f74f2..a4b13212 100644 --- a/driver/passwd-pam.c +++ b/driver/passwd-pam.c @@ -288,6 +288,7 @@ pam_passwd_valid_p (const char *typed_passwd, Bool verbose_p) goto DONE; } +#ifdef ALLOW_ROOT_PASSWD /* If that didn't work, set the user to root, and try to authenticate again. */ if (user) free (user); @@ -310,6 +311,8 @@ pam_passwd_valid_p (const char *typed_passwd, Bool verbose_p) fprintf (stderr, "%s: pam_authenticate (...) ==> %d (%s)\n", blurb(), status, PAM_STRERROR(pamh, status)); +#endif /* ALLOW_ROOT_PASSWD */ + DONE: if (user) free (user); if (pamh) diff --git a/driver/subprocs.c b/driver/subprocs.c index 604825cb..0bbe4a87 100644 --- a/driver/subprocs.c +++ b/driver/subprocs.c @@ -1140,14 +1140,17 @@ hack_subproc_environment (saver_screen_info *ssi) const char *odpy = DisplayString (si->dpy); char *ndpy = (char *) malloc (strlen(odpy) + 20); char *nssw = (char *) malloc (40); - char *s; + char *s, *c; strcpy (ndpy, "DISPLAY="); s = ndpy + strlen(ndpy); strcpy (s, odpy); - while (*s && *s != ':') s++; /* skip to colon */ - while (*s == ':') s++; /* skip over colons */ + /* We have to find the last colon since it is the boundary between + hostname & screen - IPv6 numeric format addresses may have many + colons before that point, and DECnet addresses always have two colons */ + c = strrchr(s,':'); /* skip to last colon */ + if (c != NULL) s = c+1; while (isdigit(*s)) s++; /* skip over dpy number */ while (*s == '.') s++; /* skip over dot */ if (s[-1] != '.') *s++ = '.'; /* put on a dot */ diff --git a/driver/xscreensaver-getimage.c b/driver/xscreensaver-getimage.c index 6790ee10..68637a7b 100644 --- a/driver/xscreensaver-getimage.c +++ b/driver/xscreensaver-getimage.c @@ -1442,6 +1442,19 @@ display_desktop (Screen *screen, Window window, Drawable drawable, } +/* Whether the given Drawable is unreasonably small. + */ +static Bool +drawable_miniscule_p (Display *dpy, Drawable drawable) +{ + Window root; + int xx, yy; + unsigned int bw, d, w = 0, h = 0; + XGetGeometry (dpy, drawable, &root, &xx, &yy, &w, &h, &bw, &d); + return (w < 32 || h < 32); +} + + /* Grabs an image (from a file, video, or the desktop) and renders it on the Drawable. If `file' is specified, always use that file. Otherwise, select randomly, based on the other arguments. @@ -1525,6 +1538,15 @@ get_image (Screen *screen, image_p = False; } + /* If the target drawable is really small, no good can come of that. + Always do colorbars in that case. + */ + if (drawable_miniscule_p (dpy, drawable)) + { + desk_p = False; + video_p = False; + image_p = False; + } # ifndef _VROOT_H_ # error Error! This file definitely needs vroot.h! diff --git a/driver/xscreensaver-text b/driver/xscreensaver-text index 2586a89d..e6a00226 100755 --- a/driver/xscreensaver-text +++ b/driver/xscreensaver-text @@ -29,7 +29,7 @@ use Text::Wrap qw(wrap); use bytes; my $progname = $0; $progname =~ s@.*/@@g; -my $version = q{ $Revision: 1.13 $ }; $version =~ s/^[^0-9]+([0-9.]+).*$/$1/; +my $version = q{ $Revision: 1.14 $ }; $version =~ s/^[^0-9]+([0-9.]+).*$/$1/; my $verbose = 0; my $http_proxy = undef; @@ -374,6 +374,10 @@ sub output() { system ("cat", "/etc/redhat-release"); } + if (-f "/etc/release") { # "Solaris 10 3/05 s10_74L2a X86" + safe_system ("head", "-1", "/etc/release"); + } + if (-f "/usr/sbin/system_profiler") { # "Mac OS X 10.4.5 (8H14)" my $sp = # "iMac G5" `/usr/sbin/system_profiler SPSoftwareDataType SPHardwareDataType`; diff --git a/hacks/Makefile.in b/hacks/Makefile.in index d5d0b5be..22afca50 100644 --- a/hacks/Makefile.in +++ b/hacks/Makefile.in @@ -185,8 +185,7 @@ XDBE_OBJS = $(UTILS_BIN)/xdbe.o HDRS = screenhack.h screenhackI.h xlockmore.h xlockmoreI.h \ automata.h bubbles.h bumps.h xpm-pixmap.h apple2.h \ - analogtv.h pacman.h pacman_ai.h pacman_level.h \ - change_locale.h + analogtv.h pacman.h pacman_ai.h pacman_level.h MEN = anemone.man apollonian.man attraction.man \ blaster.man blitspin.man bouboule.man braid.man bsod.man \ bubbles.man bumps.man ccurve.man compass.man coral.man \ @@ -1442,7 +1441,6 @@ rotor.o: $(srcdir)/xlockmore.h rotzoomer.o: ../config.h rotzoomer.o: $(srcdir)/screenhackI.h rotzoomer.o: $(srcdir)/screenhack.h -screenhack.o: $(srcdir)/change_locale.h screenhack.o: ../config.h screenhack.o: $(srcdir)/screenhackI.h shadebobs.o: ../config.h diff --git a/hacks/apple2-main.c b/hacks/apple2-main.c index 28fef9aa..175ecb88 100644 --- a/hacks/apple2-main.c +++ b/hacks/apple2-main.c @@ -27,6 +27,7 @@ #ifndef HAVE_COCOA # define XK_MISCELLANY # include +# include # include # include #endif diff --git a/hacks/attraction.c b/hacks/attraction.c index 0f0e5e73..8e25d244 100644 --- a/hacks/attraction.c +++ b/hacks/attraction.c @@ -729,12 +729,17 @@ attraction_draw (Display *dpy, Window window, void *closure) if(st->cbounce_p) /* with correct bouncing */ { /* so long as it's out of range, keep bouncing */ + /* limit the maximum number to bounce to 4.*/ + int bounce_allowed = 4; - while( (st->balls[i].x >= (st->xlim - st->balls[i].size)) || + while( bounce_allowed && ( + (st->balls[i].x >= (st->xlim - st->balls[i].size)) || (st->balls[i].y >= (st->ylim - st->balls[i].size)) || (st->balls[i].x <= 0) || (st->balls[i].y <= 0) ) + ) { + bounce_allowed--; if (st->balls[i].x >= (st->xlim - st->balls[i].size)) { st->balls[i].x = (2*(st->xlim - st->balls[i].size) - st->balls[i].x); diff --git a/hacks/bumps.c b/hacks/bumps.c index c9f00bb4..2f510f5a 100644 --- a/hacks/bumps.c +++ b/hacks/bumps.c @@ -346,7 +346,7 @@ static void InitBumpMap_2(Display *dpy, SBumps *pBumps) while( nSoften-- ) softenMultiplier *= 1.0f + ( 1.0f / 3.0f ); /* Softening takes the max height down, so scale up to compensate. */ maxHeight = pBumps->SpotLight.nLightRadius * softenMultiplier; - nAverager = ( 3 * 0xFFFF ) / maxHeight; + nAverager = maxHeight ? ( 3 * 0xFFFF ) / maxHeight : 0; pBump = pBumps->aBumpMap; if( bInvert ) /* Funny, it's actually the 'else' that inverts the bump map... */ @@ -361,7 +361,7 @@ static void InitBumpMap_2(Display *dpy, SBumps *pBumps) pColor = pBumps->xColors; for( iWidth=pBumps->iWinWidth; iWidth; --iWidth, ++pColor, ++pBump ) - *pBump = ( ( pColor->red + pColor->green + pColor->blue ) / nAverager ); + *pBump = ( nAverager ? ( pColor->red + pColor->green + pColor->blue ) / nAverager : 0 ); } } else @@ -376,7 +376,7 @@ static void InitBumpMap_2(Display *dpy, SBumps *pBumps) pColor = pBumps->xColors; for( iWidth=pBumps->iWinWidth; iWidth; --iWidth, ++pColor, ++pBump ) - *pBump = ( maxHeight - ( ( pColor->red + pColor->green + pColor->blue ) / nAverager ) ); + *pBump = ( maxHeight - ( nAverager ? ( pColor->red + pColor->green + pColor->blue ) / nAverager : 0 ) ); } } diff --git a/hacks/change_locale.h b/hacks/change_locale.h deleted file mode 100644 index 94e7eb12..00000000 --- a/hacks/change_locale.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef _CHANGE_LOCALE_H -#define _CHANGE_LOCALE_H - -/* The xscreensaver hacks deal badly with these locales, since the - existing code by and large can't handle multi-byte characters. - So, if the current locale is set to one beginning with any of - these prefixes, we set the locale to "C" instead. - */ - -static const char * const change_locale[] = { - "ja_JP", - "ko", - "zh", - NULL -}; - -#endif diff --git a/hacks/config/README b/hacks/config/README index 982f8357..77597ca2 100644 --- a/hacks/config/README +++ b/hacks/config/README @@ -4,8 +4,8 @@ a screen saver and locker for the X window system by Jamie Zawinski - version 5.00b2b2 - 23-May-2006 + version 5.01b2 + 18-Sep-2006 http://www.jwz.org/xscreensaver/ diff --git a/hacks/config/bouboule.xml b/hacks/config/bouboule.xml index b580c17c..8a1ded1f 100644 --- a/hacks/config/bouboule.xml +++ b/hacks/config/bouboule.xml @@ -17,7 +17,7 @@ _label="Number of Colors" _low-label="Two" _high-label="Many" low="1" high="255" default="64"/> - + <_description> This draws what looks like a spinning, deforming balloon with diff --git a/hacks/config/boxed.xml b/hacks/config/boxed.xml index 6e4a8885..480348d9 100644 --- a/hacks/config/boxed.xml +++ b/hacks/config/boxed.xml @@ -23,7 +23,11 @@ + low="1.0" high="50.0" default="15.0"/> + +
diff --git a/hacks/config/flipflop.xml b/hacks/config/flipflop.xml index 0a5cdeee..150d0cb1 100644 --- a/hacks/config/flipflop.xml +++ b/hacks/config/flipflop.xml @@ -4,17 +4,31 @@ + + + + + + <_description> Draws a grid of 3D colored tiles that change positions with each other. -Written by Kevin Ogden; 2003. +Written by Kevin Ogden and Sergio Gutierrez; 2003. diff --git a/hacks/config/goop.xml b/hacks/config/goop.xml index a6fbfa13..ab87fa93 100644 --- a/hacks/config/goop.xml +++ b/hacks/config/goop.xml @@ -42,7 +42,7 @@ change shape as they wander around the screen, and they are translucent, so you can see the lower blobs through the higher ones, and when one passes over another, their colors merge. I got the idea for this from a cool mouse pad I have, which achieves the same kind of effect in real -life by having several layers plastic with colored oil between them. +life by having several layers of plastic with colored oil between them. Written by Jamie Zawinski; 1997. diff --git a/hacks/config/imsmap.xml b/hacks/config/imsmap.xml index 9fd6a402..85142e12 100644 --- a/hacks/config/imsmap.xml +++ b/hacks/config/imsmap.xml @@ -16,7 +16,7 @@ low="1" high="7" default="7"/> diff --git a/hacks/config/rd-bomb.xml b/hacks/config/rd-bomb.xml index 4484a95b..746da2bc 100644 --- a/hacks/config/rd-bomb.xml +++ b/hacks/config/rd-bomb.xml @@ -26,7 +26,7 @@
+ _label="Reaction/Diffusion" low="-1" high="2" default="-1"/>
diff --git a/hacks/config/rdbomb.xml b/hacks/config/rdbomb.xml index 4484a95b..746da2bc 100644 --- a/hacks/config/rdbomb.xml +++ b/hacks/config/rdbomb.xml @@ -26,7 +26,7 @@
+ _label="Reaction/Diffusion" low="-1" high="2" default="-1"/>
diff --git a/hacks/config/rocks.xml b/hacks/config/rocks.xml index b34b7399..3b222912 100644 --- a/hacks/config/rocks.xml +++ b/hacks/config/rocks.xml @@ -20,7 +20,7 @@
- + + low="0" high="2000000" default="1000000"/> This program throws some random bits on the screen, then sucks them through a jet engine and spews them out the other side. To avoid -turning the image completely to mush, every now and then it will and -then it interjects some splashes of color into the scene, or go into -a spin cycle, or stretch the image like taffy. +turning the image completely to mush, every now and then it will it +interject some splashes of color into the scene, or go into a spin +cycle, or stretch the image like taffy. Written by Scott Draves and Jamie Zawinski; 1997. diff --git a/hacks/config/speedmine.xml b/hacks/config/speedmine.xml index a89f3447..a3f03fd2 100644 --- a/hacks/config/speedmine.xml +++ b/hacks/config/speedmine.xml @@ -42,7 +42,6 @@ - <_description> Simulates speeding down a rocky mineshaft, or a funky dancing worm. diff --git a/hacks/config/sproingies.xml b/hacks/config/sproingies.xml index 14fa289d..2e4c92fd 100644 --- a/hacks/config/sproingies.xml +++ b/hacks/config/sproingies.xml @@ -6,14 +6,15 @@ + low="1" high="30" default="8"/>
+
diff --git a/hacks/config/xaos.xml b/hacks/config/xaos.xml index 4ccd491a..f1ce9896 100644 --- a/hacks/config/xaos.xml +++ b/hacks/config/xaos.xml @@ -17,7 +17,7 @@ XaoS generates fast fly-through animations of the Mandelbrot and other fractal sets. This is not included with the XScreenSaver package, but if you don't have it already, you can find it at -<http://xaos.theory.org/>. +<http://wmi.math.u-szeged.hu/~kovzol/xaos/doku.php>. Written by Thomas Marsh and Jan Hubicka. diff --git a/hacks/coral.c b/hacks/coral.c index b69f4361..9603455e 100644 --- a/hacks/coral.c +++ b/hacks/coral.c @@ -100,12 +100,15 @@ init_coral(struct state *st) st->colorsloth = st->nwalkers*2/st->ncolors; XSetForeground(st->dpy, st->draw_gc, st->colors[st->colorindex].pixel); + if ((st->width <= 2) || (st->height <= 2)) return; + for( i = 0; i < seeds; i++ ) { int x, y; + int max_repeat = 10; do { x = 1 + random() % (st->width - 2); y = 1 + random() % (st->height - 2); - } while( getdot(x, y) ); + } while( getdot(x, y) && max_repeat--); setdot((x-1), (y-1)); setdot(x, (y-1)); setdot((x+1), (y-1)); setdot((x-1), y ); setdot(x, y ); setdot((x+1), y ); @@ -169,7 +172,8 @@ coral(struct state *st) st->nwalkers--; st->walkers[i].x = st->walkers[st->nwalkers].x; st->walkers[i].y = st->walkers[st->nwalkers].y; - if( 0 == (st->nwalkers%st->colorsloth) ) { + if( 0 == + ((st->colorsloth ? st->nwalkers%st->colorsloth : 0)) ) { color = True; } diff --git a/hacks/critical.c b/hacks/critical.c index 5669304b..f151925c 100644 --- a/hacks/critical.c +++ b/hacks/critical.c @@ -289,7 +289,8 @@ critical_init (Display *dpy, Window window) screens. */ model_w = 80; st->settings.cell_size = st->wattr.width / model_w; - model_h = st->wattr.height / st->settings.cell_size; + model_h = st->settings.cell_size ? + st->wattr.height / st->settings.cell_size : 0; /* Construct the initial model state. */ diff --git a/hacks/crystal.c b/hacks/crystal.c index be090c2e..5ceb91f6 100644 --- a/hacks/crystal.c +++ b/hacks/crystal.c @@ -92,6 +92,9 @@ static const char sccsid[] = "@(#)crystal.c 4.12 98/09/10 xlockmore"; #define DEF_MAXSIZE "False" #define DEF_CYCLE "True" +#undef NRAND +#define NRAND(n) ( (n) ? (int) (LRAND() % (n)) : 0) + #define min(a,b) ((a) <= (b) ? (a) : (b)) static int nx, ny; @@ -980,9 +983,12 @@ init_crystal(ModeInfo * mi) cryst->offset_w = (int) (cryst->b * 0.5); } } else { + int max_repeat = 10; cryst->offset_w = -1; - while (cryst->offset_w < 4 || (int) (cryst->offset_w - cryst->b * - sin((cryst->gamma - 90) * PI_RAD)) < 4) { + while (max_repeat-- && + (cryst->offset_w < 4 || (int) (cryst->offset_w - cryst->b * + sin((cryst->gamma - 90) * PI_RAD)) < 4) + ) { cryst->b = NRAND((int) (cryst->win_height / (cos((cryst->gamma - 90) * PI_RAD))) - cell_min) + cell_min; if (cryst->planegroup > 8) diff --git a/hacks/decayscreen.c b/hacks/decayscreen.c index 855d80a5..775e6292 100644 --- a/hacks/decayscreen.c +++ b/hacks/decayscreen.c @@ -186,7 +186,7 @@ decayscreen_draw (Display *dpy, Window window, void *closure) default: abort(); } -#define nrnd(x) (random() % (x)) +#define nrnd(x) ((x) ? random() % (x) : x) if (st->mode == MELT || st->mode == STRETCH) { left = nrnd(st->sizex/2); diff --git a/hacks/eruption.c b/hacks/eruption.c index 2084cbf2..14809b9f 100644 --- a/hacks/eruption.c +++ b/hacks/eruption.c @@ -116,6 +116,7 @@ static void Execute( struct state *st ) else if (st->particles[i].xpos >= st->iWinWidth - 2) { st->particles[i].xpos = st->iWinWidth - 2; + if (st->particles[i].xpos < 1) st->particles[i].xpos = 1; st->particles[i].xdir = -st->particles[i].xdir + 4; st->particles[i].colorindex = st->iColorCount; } @@ -129,9 +130,11 @@ static void Execute( struct state *st ) else if (st->particles[i].ypos >= st->iWinHeight - 3) { st->particles[i].ypos = st->iWinHeight- 3; + if (st->particles[i].ypos < 1) st->particles[i].ypos = 1; st->particles[i].ydir = (-st->particles[i].ydir >> 2) - (random() % 2); st->particles[i].colorindex = st->iColorCount; } + /* st->gravity kicks in */ st->particles[i].ydir += st->gravity; @@ -140,6 +143,7 @@ static void Execute( struct state *st ) st->particles[i].colorindex--; /* draw particle */ + if (st->iWinHeight <= 2 || st->iWinWidth <= 2) continue; st->fire[st->particles[i].ypos][st->particles[i].xpos] = st->particles[i].colorindex; st->fire[st->particles[i].ypos][st->particles[i].xpos - 1] = st->particles[i].colorindex; st->fire[st->particles[i].ypos + 1][st->particles[i].xpos] = st->particles[i].colorindex; diff --git a/hacks/fireworkx.c b/hacks/fireworkx.c index 3271212b..33f37178 100644 --- a/hacks/fireworkx.c +++ b/hacks/fireworkx.c @@ -42,7 +42,7 @@ void mmx_blur(char *a, int b, int c, int d); void mmx_glow(char *a, int b, int c, int d, char *e); #endif -#define rnd(x) ((int)(random() % (x))) +#define rnd(x) ((x) ? (int)(random() % (x)) : 0) typedef struct { unsigned int burn; @@ -161,6 +161,7 @@ static void glow(struct state *st) unsigned int w = st->width; unsigned int h = st->height; unsigned char *pa, *pb, *pm, *po; + if (!st->xim) return; pm = st->palaka1; po = st->palaka2; for(n=0;npalaka2 = NULL; st->xim = XCreateImage(st->dpy, xwa.visual, xwa.depth, ZPixmap, 0, 0, st->width, st->height, 8, 0); + if (!st->xim) return; st->palaka1 = (unsigned char *) calloc(st->xim->height+1,st->xim->width*4) + 8; if(st->flash_on|st->glow_on) st->palaka2 = (unsigned char *) calloc(st->xim->height+1,st->xim->width*4) + 8; @@ -286,6 +288,7 @@ static void put_image(struct state *st) { int x,y,i,j; unsigned char r, g, b; + if (!st->xim) return; i = 0; j = 0; if (st->depth==16) { diff --git a/hacks/flag.c b/hacks/flag.c index 885fa898..c74e921d 100644 --- a/hacks/flag.c +++ b/hacks/flag.c @@ -192,6 +192,10 @@ make_flag_bits(ModeInfo *mi) char *bitmap_name = get_string_resource (dpy, "bitmap", "Bitmap"); char *text = get_string_resource (dpy, "text", "Text"); +#ifdef HAVE_COCOA + bitmap_name = 0; /* #### always use default */ +#endif + /* If neither a bitmap nor text are specified, randomly select either the builtin bitmap or builtin text. */ if ((!bitmap_name || !*bitmap_name) && (!text || !*text)) diff --git a/hacks/glx/Makefile.in b/hacks/glx/Makefile.in index efa3af35..19198509 100644 --- a/hacks/glx/Makefile.in +++ b/hacks/glx/Makefile.in @@ -1064,6 +1064,7 @@ toaster_slots.o: $(srcdir)/gllist.h toaster_wing.o: $(srcdir)/gllist.h toast.o: $(srcdir)/gllist.h topblock.o: ../../config.h +topblock.o: $(srcdir)/gltrackball.h topblock.o: $(srcdir)/sphere.h topblock.o: $(srcdir)/topblock.h trackball.o: ../../config.h diff --git a/hacks/glx/boxed.c b/hacks/glx/boxed.c index 2bff1ec0..ef7e051f 100644 --- a/hacks/glx/boxed.c +++ b/hacks/glx/boxed.c @@ -53,7 +53,8 @@ static const char sccsid[] = "@(#)boxed.c 0.9 01/09/26 xlockmore"; # define DEF_SPEED "0.5" # define DEF_BALLS "25" # define DEF_BALLSIZE "2.0" -# define DEF_EXPLOSION "25.0f" +# define DEF_EXPLOSION "15.0" +# define DEF_DECAY "0.1" #undef countof #define countof(x) (int)(sizeof((x))/sizeof((*x))) @@ -64,6 +65,7 @@ static GLfloat speed; /* jwz -- overall speed factor applied to all motion */ static int cfg_balls; static GLfloat cfg_ballsize; static GLfloat cfg_explosion; +static GLfloat cfg_decay; static XrmOptionDescRec opts[] = { @@ -71,13 +73,15 @@ static XrmOptionDescRec opts[] = { {"-balls", ".boxed.balls", XrmoptionSepArg, 0}, {"-ballsize", ".boxed.ballsize", XrmoptionSepArg, 0}, {"-explosion", ".boxed.explosion", XrmoptionSepArg, 0}, + {"-decay", ".boxed.decay", XrmoptionSepArg, 0}, }; static argtype vars[] = { {&speed, "speed", "Speed", DEF_SPEED, t_Float}, {&cfg_balls, "balls", "Balls", DEF_BALLS, t_Int}, {&cfg_ballsize, "ballsize", "Ball Size", DEF_BALLSIZE, t_Float}, - {&cfg_explosion, "explosion", "Exlosion", DEF_BALLSIZE, t_Float}, + {&cfg_explosion, "explosion", "Explosion", DEF_EXPLOSION, t_Float}, + {&cfg_decay, "decay", "Explosion Decay", DEF_DECAY, t_Float}, }; ENTRYPOINT ModeSpecOpt boxed_opts = {countof(opts), opts, countof(vars), vars, NULL}; @@ -140,6 +144,7 @@ typedef struct { vectorf loc; vectorf dir; BOOL far; + BOOL gone; } tri; typedef struct { @@ -147,6 +152,7 @@ typedef struct { int lifetime; float scalefac; float explosion; + float decay; vectorf color; tri *tris; GLint *indices; @@ -158,6 +164,7 @@ typedef struct { int numballs; float ballsize; float explosion; + float decay; BOOL textures; BOOL transparent; float camspeed; @@ -482,6 +489,7 @@ static void createtrisfromball(triman* tman, vectorf *spherev, GLint *spherei, i for (i=0; i<(tman->num_tri); i++) { tman->tris[i].far = FALSE; + tman->tris[i].gone = FALSE; pos = i * 3; /* kopieer elke poly apart naar een tri structure */ copyvector(&tman->vertices[pos+0],&spherev[spherei[pos+0]]); @@ -543,6 +551,8 @@ static void updatetris(triman *t) GLfloat xd,zd; for (b=0;bnum_tri;b++) { + /* the exploded triangles disappear over time */ + if (rnd() < t->decay) { t->tris[b].gone = TRUE; } /* apply gravity */ t->tris[b].dir.y -= (0.1f * speed); /* apply movement */ @@ -632,10 +642,13 @@ static void setdefaultconfig(boxed_config *config) cfg_balls = MAX(3,MIN(40,cfg_balls)); cfg_ballsize = MAX(1.0f,MIN(5.0f,cfg_ballsize)); cfg_explosion = MAX(0.0f,MIN(50.0f,cfg_explosion)); + cfg_decay = MAX(0.0f,MIN(1.0f,cfg_decay)); + config->numballs = cfg_balls; config->textures = TRUE; config->transparent = FALSE; config->explosion = cfg_explosion; + config->decay = cfg_decay; config->ballsize = cfg_ballsize; config->camspeed = 35.0f; } @@ -815,6 +828,7 @@ static void drawtriman(triman *t, int wire) glMaterialfv(GL_FRONT, GL_EMISSION,col); for (i=0; inum_tri; i++) { + if (t->tris[i].gone == TRUE) { continue; } pos = i*3; glPushMatrix(); glTranslatef(t->tris[i].loc.x,t->tris[i].loc.y,t->tris[i].loc.z); @@ -1081,6 +1095,7 @@ pinit(ModeInfo * mi) for(i=0;inum_balls;i++) { gp->tman[i].explosion = (float) (((int)gp->config.explosion) / 15.0f ); + gp->tman[i].decay = gp->config.decay; gp->tman[i].vertices = NULL; gp->tman[i].normals = NULL; gp->tman[i].tris = NULL; diff --git a/hacks/glx/carousel.c b/hacks/glx/carousel.c index 4fd1b2fc..bc9dfb65 100644 --- a/hacks/glx/carousel.c +++ b/hacks/glx/carousel.c @@ -218,11 +218,15 @@ load_image (ModeInfo *mi, image_frame *frame) if (wire) image_loaded_cb (0, 0, 0, 0, 0, 0, frame); else - load_texture_async (mi->xgwa.screen, mi->window, *ss->glx_context, - (MI_WIDTH(mi) / 2) - 1, - (MI_HEIGHT(mi) / 2) - 1, - mipmap_p, frame->loading.texid, - image_loaded_cb, frame); + { + int w = (MI_WIDTH(mi) / 2) - 1; + int h = (MI_HEIGHT(mi) / 2) - 1; + if (w <= 10) w = 10; + if (h <= 10) h = 10; + load_texture_async (mi->xgwa.screen, mi->window, *ss->glx_context, w, h, + mipmap_p, frame->loading.texid, + image_loaded_cb, frame); + } } diff --git a/hacks/glx/flipflop.c b/hacks/glx/flipflop.c index bb21b960..f38385e4 100644 --- a/hacks/glx/flipflop.c +++ b/hacks/glx/flipflop.c @@ -1,4 +1,5 @@ /* flipflop, Copyright (c) 2003 Kevin Ogden + * (c) 2006 Sergio Gutiérrez "Sergut" * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -7,23 +8,42 @@ * documentation. No representations are made about the suitability of this * software for any purpose. It is provided "as is" without express or * implied warranty. + * + * + * 2003 Kevin Odgen First version + * 2006 Sergio Gutiérrez "Sergut" Made several parameters dynamic and selectable + * from the command line: size of the board, + * rotation speed and number of free squares; also + * added the "sticks" mode. + * */ -#define BOARDSIZE 9 -#define NUMSQUARES 76 -#define HALFTHICK 0.04 +#define DEF_FLIPFLOP_MODE "tiles" /* Default mode (options: "tiles", "sticks") */ +#define DEF_BOARD_X_SIZE "9" /* Default width of the board */ +#define DEF_BOARD_Y_SIZE "9" /* Default length of the board */ + +#define DEF_BOARD_SIZE "0" /* "0" means "no value selected by user". It is changed */ +#define DEF_NUMSQUARES "0" /* in function init_flipflop() to its correct value (that */ +#define DEF_FREESQUARES "0" /* is a function of the size of the board and the mode)*/ + +#define DEF_SPIN "0.1" /* Default angular velocity: PI/10 rads/s */ + +#define DEF_STICK_THICK 54 /* Thickness for the sticks mode (over 100) */ +#define DEF_STICK_RATIO 80 /* Ratio of sticks/total squares (over 100) */ +#define DEF_TILE_THICK 4 /* Thickness for the tiles mode (over 100) */ +#define DEF_TILE_RATIO 95 /* Ratio of tiles/total squares (over 100) */ #ifdef STANDALONE -#define DEFAULTS "*delay: 20000 \n" \ - "*showFPS: False \n" \ - "*wireframe: False \n" +#define DEFAULTS "*delay: 20000 \n" \ + "*showFPS: False \n" \ + "*wireframe: False \n" # define refresh_flipflop 0 # include "xlockmore.h" #else # include "xlock.h" -#endif +#endif /* STANDALONE */ #ifdef USE_GL @@ -33,70 +53,87 @@ #define countof(x) (sizeof((x))/sizeof((*x))) static XrmOptionDescRec opts[] = { - {"+rotate", ".flipflop.rotate", XrmoptionNoArg, "false" }, - {"-rotate", ".flipflop.rotate", XrmoptionNoArg, "true" }, + {"-sticks", ".mode", XrmoptionNoArg, "sticks"}, + {"-tiles", ".mode", XrmoptionNoArg, "tiles" }, + {"-mode", ".mode", XrmoptionSepArg, 0 }, + {"-size", ".size", XrmoptionSepArg, 0 }, + {"-size-x", ".size_x", XrmoptionSepArg, 0 }, + {"-size-y", ".size_y", XrmoptionSepArg, 0 }, + {"-count", ".numsquares", XrmoptionSepArg, 0 }, + {"-free", ".freesquares", XrmoptionSepArg, 0 }, + {"-spin", ".spin", XrmoptionSepArg, 0 }, }; - - -static int rotate, wire, clearbits; +static int wire, clearbits; +static int board_x_size, board_y_size, board_avg_size; +static int numsquares, freesquares; +static float half_thick; +static float spin; +static char* flipflopmode_str="tiles"; static argtype vars[] = { - { &rotate, "rotate", "Rotate", "True", t_Bool}, + { &flipflopmode_str, "mode", "Mode", DEF_FLIPFLOP_MODE, t_String}, + { &board_avg_size, "size", "Integer", DEF_BOARD_SIZE, t_Int}, + { &board_x_size, "size_x", "Integer", DEF_BOARD_X_SIZE, t_Int}, + { &board_y_size, "size_y", "Integer", DEF_BOARD_Y_SIZE, t_Int}, + { &numsquares, "numsquares", "Integer", DEF_NUMSQUARES, t_Int}, + { &freesquares, "freesquares", "Integer", DEF_NUMSQUARES, t_Int}, + { &spin, "spin", "Float", DEF_SPIN, t_Float}, }; ENTRYPOINT ModeSpecOpt flipflop_opts = {countof(opts), opts, countof(vars), vars, NULL}; #ifdef USE_MODULES ModStruct flipflop_description = -{"flipflop", "init_flipflop", "draw_flipflop", "release_flipflop", - "draw_flipflop", "init_flipflop", NULL, &flipflop_opts, - 1000, 1, 2, 1, 4, 1.0, "", - "Flipflop", 0, NULL}; - -#endif - -typedef struct{ - /* 2D array specifying which squares are where (to avoid collisions) */ - /* -1 means empty otherwise integer represents square index 0 - n-1 */ - int occupied[ BOARDSIZE ][ BOARDSIZE ]; - /* an array of xpositions of the squares */ - int xpos[ NUMSQUARES ]; - /* array of y positions of the squares */ - int ypos[ NUMSQUARES ]; - /* integer representing the direction of movement of a square */ - int direction[ NUMSQUARES ]; /* 0 not, 1 x+, 2 y+, 3 x-, 4 y-*/ - /* angle of moving square (during a flip) */ - float angle[ NUMSQUARES ]; - /* array of colors for a square. rgb */ - /* eg. color[ 4 ][ 0 ] is the red component of square 4 */ - /* eg. color[ 5 ][ 2 ] is the blue component of square 5 */ - float color[ NUMSQUARES ][ 3 ]; - /* n is the number of square */ -} randsheet; + {"flipflop", "init_flipflop", "draw_flipflop", "release_flipflop", + "draw_flipflop", "init_flipflop", NULL, &flipflop_opts, + 1000, 1, 2, 1, 4, 1.0, "", + "Flipflop", 0, NULL}; +#endif /* USE_MODULES */ typedef struct { - GLXContext *glx_context; - Window window; - trackball_state *trackball; - Bool button_down_p; + /* array specifying which squares are where (to avoid collisions) */ + /* -1 means empty otherwise integer represents square index 0 - n-1 */ + /* occupied[x*board_y_size+y] is the tile [x][y] (i.e. that starts at column x and row y)*/ + int *occupied; /* size: size_x * size_y */ + /* an array of xpositions of the squares */ + int *xpos; /* size: numsquares */ + /* array of y positions of the squares */ + int *ypos; /* size: numsquares */ + /* integer representing the direction of movement of a square */ + int *direction; /* 0 not, 1 x+, 2 y+, 3 x-, 4 y-*/ /* size: numsquares */ + /* angle of moving square (during a flip) */ + float *angle; /* size: numsquares */ + /* array of colors for a square (RGB) */ + /* eg. color[ 3*3 + 0 ] is the red component of square 3 */ + /* eg. color[ 4*3 + 1 ] is the green component of square 4 */ + /* eg. color[ 5*3 + 2 ] is the blue component of square 5 */ + /* ^-- n is the number of square */ + float *color; /* size: numsquares * 3 */ +} randsheet; - randsheet sheet; +typedef struct { + GLXContext *glx_context; + Window window; + trackball_state *trackball; + Bool button_down_p; + + randsheet *sheet; - double theta; - float flipspeed; /* amount of flip. 1 is a entire flip */ - float reldist; /* relative distace of camera from center */ - float energy; /* likelehood a square will attempt a move */ + float theta; /* angle of rotation of the board */ + float flipspeed; /* amount of flip; 1 is a entire flip */ + float reldist; /* relative distace of camera from center */ + float energy; /* likelyhood that a square will attempt to move */ } Flipflopcreen; static Flipflopcreen *qs = NULL; - +static void randsheet_create( randsheet *rs ); static void randsheet_initialize( randsheet *rs ); -static int randsheet_new_move( randsheet* rs ); -static int randsheet_new_move( randsheet* rs ); +static void randsheet_free( randsheet *rs ); +static int randsheet_new_move( randsheet* rs ); static void randsheet_move( randsheet *rs, float rot ); static void randsheet_draw( randsheet *rs ); static void setup_lights(void); @@ -109,172 +146,216 @@ static void draw_sheet(void); static void setup_lights(void) { -/* GLfloat position0[] = { BOARDSIZE*0.5, BOARDSIZE*0.1, BOARDSIZE*0.5, 1.0 }; */ + /* GLfloat position0[] = { board_avg_size*0.5, board_avg_size*0.1, board_avg_size*0.5, 1.0 }; */ -/* GLfloat position0[] = { -BOARDSIZE*0.5, 0.2*BOARDSIZE, -BOARDSIZE*0.5, 1.0 }; */ - GLfloat position0[] = { 0, BOARDSIZE*0.3, 0, 1.0 }; + /* GLfloat position0[] = { -board_avg_size*0.5, 0.2*board_avg_size, -board_avg_size*0.5, 1.0 }; */ + GLfloat position0[4]; + position0[0] = 0; + position0[1] = board_avg_size*0.3; + position0[2] = 0; + position0[3] = 1; - if (wire) return; + if (wire) return; - glEnable(GL_LIGHTING); - glLightfv(GL_LIGHT0, GL_POSITION, position0); - glEnable(GL_LIGHT0); - } + glEnable(GL_LIGHTING); + glLightfv(GL_LIGHT0, GL_POSITION, position0); + glEnable(GL_LIGHT0); +} ENTRYPOINT Bool flipflop_handle_event (ModeInfo *mi, XEvent *event) { - Flipflopcreen *c = &qs[MI_SCREEN(mi)]; - - if (event->xany.type == ButtonPress && - event->xbutton.button == Button1) - { - c->button_down_p = True; - gltrackball_start (c->trackball, - event->xbutton.x, event->xbutton.y, - MI_WIDTH (mi), MI_HEIGHT (mi)); - return True; - } - else if (event->xany.type == ButtonRelease && - event->xbutton.button == Button1) - { - c->button_down_p = False; - return True; - } - else if (event->xany.type == ButtonPress && - (event->xbutton.button == Button4 || - event->xbutton.button == Button5)) - { - gltrackball_mousewheel (c->trackball, event->xbutton.button, 5, - !event->xbutton.state); - return True; - } - else if (event->xany.type == MotionNotify && - c->button_down_p) - { - gltrackball_track (c->trackball, - event->xmotion.x, event->xmotion.y, - MI_WIDTH (mi), MI_HEIGHT (mi)); - return True; - } - - return False; + Flipflopcreen *c = &qs[MI_SCREEN(mi)]; + + if (event->xany.type == ButtonPress && + event->xbutton.button == Button1) + { + c->button_down_p = True; + gltrackball_start (c->trackball, + event->xbutton.x, event->xbutton.y, + MI_WIDTH (mi), MI_HEIGHT (mi)); + return True; + } + else if (event->xany.type == ButtonRelease && + event->xbutton.button == Button1) + { + c->button_down_p = False; + return True; + } + else if (event->xany.type == ButtonPress && + (event->xbutton.button == Button4 || + event->xbutton.button == Button5)) + { + gltrackball_mousewheel (c->trackball, event->xbutton.button, 5, + !event->xbutton.state); + return True; + } + else if (event->xany.type == MotionNotify && + c->button_down_p) + { + gltrackball_track (c->trackball, + event->xmotion.x, event->xmotion.y, + MI_WIDTH (mi), MI_HEIGHT (mi)); + return True; + } + + return False; } /* draw board */ static void drawBoard(Flipflopcreen *c) { - int i; - for( i=0; i < (c->energy) ; i++ ) - randsheet_new_move( &c->sheet ); - randsheet_move( &c->sheet, c->flipspeed * 3.14159 ); - randsheet_draw( &c->sheet ); + int i; + for( i=0; i < (c->energy) ; i++ ) { + randsheet_new_move( c->sheet ); + } + randsheet_move( c->sheet, c->flipspeed * 3.14159 ); + randsheet_draw( c->sheet ); } static void display(Flipflopcreen *c) { - GLfloat amb[] = { 0.8, 0.8, 0.8, 1.0 }; + GLfloat amb[] = { 0.8, 0.8, 0.8, 1.0 }; - glClear(clearbits); - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); + glClear(clearbits); + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); - glLightf(GL_LIGHT0, GL_CONSTANT_ATTENUATION, 1.2); - glLightf(GL_LIGHT0, GL_LINEAR_ATTENUATION, 0.15/BOARDSIZE ); - glLightf(GL_LIGHT0, GL_QUADRATIC_ATTENUATION, 0.15/BOARDSIZE ); - glLightfv(GL_LIGHT0, GL_AMBIENT, amb); + glLightf(GL_LIGHT0, GL_CONSTANT_ATTENUATION, 1.2); + glLightf(GL_LIGHT0, GL_LINEAR_ATTENUATION, 0.15/board_avg_size ); + glLightf(GL_LIGHT0, GL_QUADRATIC_ATTENUATION, 0.15/board_avg_size ); + glLightfv(GL_LIGHT0, GL_AMBIENT, amb); - /** setup perspectif */ - glTranslatef(0.0, 0.0, -c->reldist*BOARDSIZE); - glRotatef(22.5, 1.0, 0.0, 0.0); - gltrackball_rotate (c->trackball); - glRotatef(c->theta*100, 0.0, 1.0, 0.0); - glTranslatef(-0.5*BOARDSIZE, 0.0, -0.5*BOARDSIZE); + /** setup perspectif */ + glTranslatef(0.0, 0.0, -c->reldist*board_avg_size); + glRotatef(22.5, 1.0, 0.0, 0.0); + gltrackball_rotate (c->trackball); + glRotatef(c->theta*100, 0.0, 1.0, 0.0); + glTranslatef(-0.5*board_x_size, 0.0, -0.5*board_y_size); /* Center the board */ - drawBoard(c); + drawBoard(c); - if (!c->button_down_p) - c->theta += .001; + if (!c->button_down_p) { + c->theta += .01 * spin; + } } ENTRYPOINT void reshape_flipflop(ModeInfo *mi, int width, int height) { - GLfloat h = (GLfloat) height / (GLfloat) width; - glViewport(0,0, width, height); - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - gluPerspective(45, 1/h, 1.0, 300.0); - glMatrixMode(GL_MODELVIEW); + GLfloat h = (GLfloat) height / (GLfloat) width; + glViewport(0,0, width, height); + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + gluPerspective(45, 1/h, 1.0, 300.0); + glMatrixMode(GL_MODELVIEW); } ENTRYPOINT void init_flipflop(ModeInfo *mi) { - int screen = MI_SCREEN(mi); - Flipflopcreen *c; - wire = MI_IS_WIREFRAME(mi); + int screen; + Flipflopcreen *c; + + /* Set all constants to their correct values */ + if (board_avg_size != 0) { /* general size specified by user */ + board_x_size = board_avg_size; + board_y_size = board_avg_size; + } else { + board_avg_size = (board_x_size + board_y_size) / 2; + } + if ((numsquares == 0) && (freesquares != 0)) { + numsquares = board_x_size * board_y_size - freesquares; + } + if (strcmp(flipflopmode_str, "tiles")) { + half_thick = 1.0 * DEF_STICK_THICK / 100.0; + if (numsquares == 0) { /* No value defined by user */ + numsquares = board_x_size * board_y_size * DEF_STICK_RATIO / 100; + } + } else { + half_thick = 1.0 * DEF_TILE_THICK / 100.0; + if (numsquares == 0) { /* No value defined by user */ + numsquares = board_x_size * board_y_size * DEF_TILE_RATIO/ 100;; + } + } + if (board_avg_size < 2) { + fprintf (stderr,"%s: the board must be at least 2x2.\n", progname); + exit(1); + } + if ((board_x_size < 1) || (board_y_size < 1) || (numsquares < 1)) { + fprintf (stderr,"%s: the number of elements ('-count') and the dimensions of the board ('-size-x', '-size-y') must be positive integers.\n", progname); + exit(1); + } + if (board_x_size * board_y_size <= numsquares) { + fprintf (stderr,"%s: the number of elements ('-count') that you specified is too big \n for the dimensions of the board ('-size-x', '-size-y'). Nothing will move.\n", progname); + } - if(!qs && - !(qs = (Flipflopcreen *) calloc(MI_NUM_SCREENS(mi), sizeof(Flipflopcreen)))) - return; + screen = MI_SCREEN(mi); + wire = MI_IS_WIREFRAME(mi); - c = &qs[screen]; - c->window = MI_WINDOW(mi); - c->trackball = gltrackball_init (); + if(!qs && + !(qs = (Flipflopcreen *) calloc(MI_NUM_SCREENS(mi), sizeof(Flipflopcreen)))) + return; - c->flipspeed = 0.03; - c->reldist = 1; - c->energy = 40; + c = &qs[screen]; + c->window = MI_WINDOW(mi); + c->trackball = gltrackball_init (); - if((c->glx_context = init_GL(mi))) - reshape_flipflop(mi, MI_WIDTH(mi), MI_HEIGHT(mi)); - else - MI_CLEARWINDOW(mi); + c->flipspeed = 0.03; + c->reldist = 1; + c->energy = 40; - glClearColor(0.0, 0.0, 0.0, 0.0); + if((c->glx_context = init_GL(mi))) + reshape_flipflop(mi, MI_WIDTH(mi), MI_HEIGHT(mi)); + else + MI_CLEARWINDOW(mi); - clearbits = GL_COLOR_BUFFER_BIT; + /* At this point, all the constants have already been set, */ + /* so we can create the board */ + c->sheet = (randsheet*) malloc(sizeof(randsheet)); + randsheet_create( c->sheet ); - glColorMaterial(GL_FRONT, GL_AMBIENT_AND_DIFFUSE); - glEnable(GL_COLOR_MATERIAL); - setup_lights(); + glClearColor(0.0, 0.0, 0.0, 0.0); - glEnable(GL_DEPTH_TEST); - clearbits |= GL_DEPTH_BUFFER_BIT; - glEnable(GL_CULL_FACE); - glCullFace(GL_BACK); - randsheet_initialize( &c->sheet ); + clearbits = GL_COLOR_BUFFER_BIT; + glColorMaterial(GL_FRONT, GL_AMBIENT_AND_DIFFUSE); + glEnable(GL_COLOR_MATERIAL); + setup_lights(); + glEnable(GL_DEPTH_TEST); + clearbits |= GL_DEPTH_BUFFER_BIT; + glEnable(GL_CULL_FACE); + glCullFace(GL_BACK); + randsheet_initialize( c->sheet ); } ENTRYPOINT void draw_flipflop(ModeInfo *mi) { - Flipflopcreen *c = &qs[MI_SCREEN(mi)]; - Window w = MI_WINDOW(mi); - Display *disp = MI_DISPLAY(mi); + Flipflopcreen *c = &qs[MI_SCREEN(mi)]; + Window w = MI_WINDOW(mi); + Display *disp = MI_DISPLAY(mi); - if(!c->glx_context) - return; + if(!c->glx_context) + return; - glXMakeCurrent(disp, w, *(c->glx_context)); + glXMakeCurrent(disp, w, *(c->glx_context)); - display(c); + display(c); - if(mi->fps_p){ - do_fps(mi); - } + if(mi->fps_p){ + do_fps(mi); + } - glFinish(); - glXSwapBuffers(disp, w); + glFinish(); + glXSwapBuffers(disp, w); } @@ -282,9 +363,23 @@ draw_flipflop(ModeInfo *mi) ENTRYPOINT void release_flipflop(ModeInfo *mi) { - if(qs) - free((void *) qs); - qs = 0; + if(qs) { + int screen; + + for (screen = 0; screen < MI_NUM_SCREENS(mi); screen++) + { + Flipflopcreen *c = &qs[MI_SCREEN(mi)]; + if (c->glx_context) + c->glx_context = 0; + if (c->sheet) { + randsheet_free(c->sheet); + free (c->sheet); + c->sheet = 0; + } + } + free(qs); + qs = 0; + } FreeAllGL(mi); } @@ -294,84 +389,108 @@ release_flipflop(ModeInfo *mi) static void draw_sheet(void) { - glBegin( wire ? GL_LINE_LOOP : GL_QUADS ); - - glNormal3f( 0, -1, 0 ); - glVertex3f( HALFTHICK, -HALFTHICK, HALFTHICK ); - glVertex3f( 1-HALFTHICK, -HALFTHICK, HALFTHICK ); - glVertex3f( 1-HALFTHICK, -HALFTHICK, 1-HALFTHICK); - glVertex3f( HALFTHICK, -HALFTHICK, 1-HALFTHICK ); - - if (wire) { glEnd(); glBegin (GL_LINE_LOOP); } - - /* back */ - glNormal3f( 0, 1, 0 ); - glVertex3f( HALFTHICK, HALFTHICK, 1-HALFTHICK ); - glVertex3f( 1-HALFTHICK, HALFTHICK, 1-HALFTHICK); - glVertex3f( 1-HALFTHICK, HALFTHICK, HALFTHICK ); - glVertex3f( HALFTHICK, HALFTHICK, HALFTHICK ); - - if (wire) { glEnd(); return; } - - /* 4 edges!!! weee.... */ - glNormal3f( 0, 0, -1 ); - glVertex3f( HALFTHICK, HALFTHICK, HALFTHICK ); - glVertex3f( 1-HALFTHICK, HALFTHICK, HALFTHICK ); - glVertex3f( 1-HALFTHICK, -HALFTHICK, HALFTHICK ); - glVertex3f( HALFTHICK, -HALFTHICK, HALFTHICK ); - glNormal3f( 0, 0, 1 ); - glVertex3f( HALFTHICK, HALFTHICK, 1-HALFTHICK ); - glVertex3f( HALFTHICK, -HALFTHICK, 1-HALFTHICK ); - glVertex3f( 1-HALFTHICK, -HALFTHICK, 1-HALFTHICK ); - glVertex3f( 1-HALFTHICK, HALFTHICK, 1-HALFTHICK ); - glNormal3f( 1, 0, 0 ); - glVertex3f( 1-HALFTHICK, HALFTHICK, 1-HALFTHICK ); - glVertex3f( 1-HALFTHICK, -HALFTHICK, 1-HALFTHICK ); - glVertex3f( 1-HALFTHICK, -HALFTHICK, HALFTHICK ); - glVertex3f( 1-HALFTHICK, HALFTHICK, HALFTHICK ); - glNormal3f( -1, 0, 0 ); - glVertex3f( HALFTHICK, HALFTHICK, 1-HALFTHICK ); - glVertex3f( HALFTHICK, HALFTHICK, HALFTHICK ); - glVertex3f( HALFTHICK, -HALFTHICK, HALFTHICK ); - glVertex3f( HALFTHICK, -HALFTHICK, 1-HALFTHICK ); - glEnd(); + glBegin( wire ? GL_LINE_LOOP : GL_QUADS ); + + glNormal3f( 0, -1, 0 ); + glVertex3f( half_thick, -half_thick, half_thick ); + glVertex3f( 1-half_thick, -half_thick, half_thick ); + glVertex3f( 1-half_thick, -half_thick, 1-half_thick); + glVertex3f( half_thick, -half_thick, 1-half_thick ); + + if (wire) { glEnd(); glBegin (GL_LINE_LOOP); } + + /* back */ + glNormal3f( 0, 1, 0 ); + glVertex3f( half_thick, half_thick, 1-half_thick ); + glVertex3f( 1-half_thick, half_thick, 1-half_thick); + glVertex3f( 1-half_thick, half_thick, half_thick ); + glVertex3f( half_thick, half_thick, half_thick ); + + if (wire) { glEnd(); return; } + + /* 4 edges!!! weee.... */ + glNormal3f( 0, 0, -1 ); + glVertex3f( half_thick, half_thick, half_thick ); + glVertex3f( 1-half_thick, half_thick, half_thick ); + glVertex3f( 1-half_thick, -half_thick, half_thick ); + glVertex3f( half_thick, -half_thick, half_thick ); + glNormal3f( 0, 0, 1 ); + glVertex3f( half_thick, half_thick, 1-half_thick ); + glVertex3f( half_thick, -half_thick, 1-half_thick ); + glVertex3f( 1-half_thick, -half_thick, 1-half_thick ); + glVertex3f( 1-half_thick, half_thick, 1-half_thick ); + glNormal3f( 1, 0, 0 ); + glVertex3f( 1-half_thick, half_thick, 1-half_thick ); + glVertex3f( 1-half_thick, -half_thick, 1-half_thick ); + glVertex3f( 1-half_thick, -half_thick, half_thick ); + glVertex3f( 1-half_thick, half_thick, half_thick ); + glNormal3f( -1, 0, 0 ); + glVertex3f( half_thick, half_thick, 1-half_thick ); + glVertex3f( half_thick, half_thick, half_thick ); + glVertex3f( half_thick, -half_thick, half_thick ); + glVertex3f( half_thick, -half_thick, 1-half_thick ); + glEnd(); +} + +/* Reserve memory for the randsheet */ +static void +randsheet_create( randsheet *rs ) +{ + rs -> occupied = (int*) malloc(board_x_size*board_y_size * sizeof(int)); + rs -> xpos = (int*) malloc(numsquares * sizeof(int)); + rs -> ypos = (int*) malloc(numsquares * sizeof(int)); + rs -> direction = (int*) malloc(numsquares * sizeof(int)); + rs -> angle = (float*) malloc(numsquares * sizeof(float)); + rs -> color = (float*) malloc(numsquares*3 * sizeof(float)); +} + +/* Free reserved memory for the randsheet */ +static void +randsheet_free( randsheet *rs ) +{ + free(rs->occupied); + free(rs->xpos); + free(rs->ypos); + free(rs->direction); + free(rs->angle); + free(rs->color); } static void randsheet_initialize( randsheet *rs ) { - int i, j, index; - index = 0; - /* put the moving sheets on the board */ - for( i = 0; i < BOARDSIZE; i++ ) - { - for( j = 0; j < BOARDSIZE; j++ ) - { - /* initially fill up a corner with the moving squares */ - if( index < NUMSQUARES ) - { - rs->occupied[ i ][ j ] = index; - rs->xpos[ index ] = i; - rs->ypos[ index ] = j; - /* have the square colors start out as a pattern */ - rs->color[ index ][ 0 ] = ((i+j)%3 == 0)||((i+j+1)%3 == 0); - rs->color[ index ][ 1 ] = ((i+j+1)%3 == 0); - rs->color[ index ][ 2 ] = ((i+j+2)%3 == 0); - ++index; - } - /* leave everything else empty*/ - else - { - rs->occupied[ i ][ j ] = -1; - } - } - } - /* initially everything is at rest */ - for( i=0; idirection[ i ] = 0; - rs->angle[ i ] = 0; - } + int i, j, index; + index = 0; + /* put the moving sheets on the board */ + for( i = 0; i < board_x_size; i++ ) + { + for( j = 0; j < board_y_size; j++ ) + { + /* initially fill up a corner with the moving squares */ + if( index < numsquares ) + { + rs->occupied[ i * board_y_size + j ] = index; + rs->xpos[ index ] = i; + rs->ypos[ index ] = j; + /* have the square colors start out as a pattern */ + rs->color[ index*3 + 0 ] = ((i+j)%3 == 0)||((i+j+1)%3 == 0); + rs->color[ index*3 + 1 ] = ((i+j+1)%3 == 0); + rs->color[ index*3 + 2 ] = ((i+j+2)%3 == 0); + index++; + } + /* leave everything else empty*/ + else + { + rs->occupied[ i * board_y_size + j ] = -1; + } + } + } + /* initially everything is at rest */ + for( i=0; idirection[ i ] = 0; + rs->angle[ i ] = 0; + } } /* Pick and random square and direction and try to move it. */ @@ -383,80 +502,80 @@ randsheet_initialize( randsheet *rs ) static int randsheet_new_move( randsheet* rs ) { - int i, j; - int num, dir; - /* pick a random square */ - num = random( ) % NUMSQUARES; - i = rs->xpos[ num ]; - j = rs->ypos[ num ]; - /* pick a random direction */ - dir = ( random( )% 4 ) + 1; - - if( rs->direction[ num ] == 0 ) - { - switch( dir ) - { - case 1: - /* move up in x */ - if( ( i + 1 ) < BOARDSIZE ) - { - if( rs->occupied[ i + 1 ][ j ] == -1 ) - { - rs->direction[ num ] = dir; - rs->occupied[ i + 1 ][ j ] = num; - rs->occupied[ i ][ j ] = -1; - return 1; - } - } - return 0; - break; - case 2: - /* move up in y */ - if( ( j + 1 ) < BOARDSIZE ) - { - if( rs->occupied[ i ][ j + 1 ] == -1 ) - { - rs->direction[ num ] = dir; - rs->occupied[ i ][ j + 1 ] = num; - rs->occupied[ i ][ j ] = -1; - return 1; - } - } - return 0; - break; - case 3: - /* move down in x */ - if( ( i - 1 ) >= 0 ) - { - if( rs->occupied[ i - 1][ j ] == -1 ) - { - rs->direction[ num ] = dir; - rs->occupied[ i - 1][ j ] = num; - rs->occupied[ i ][ j ] = -1; - return 1; - } - } - return 0; - break; - case 4: - /* move down in y */ - if( ( j - 1 ) >= 0 ) - { - if( rs->occupied[ i ][ j - 1 ] == -1 ) - { - rs->direction[ num ] = dir; - rs->occupied[ i ][ j - 1 ] = num; - rs->occupied[ i ][ j ] = -1; - return 1; - } - } - return 0; - break; - default: - break; - } - } - return 0; + int i, j; + int num, dir; + /* pick a random square */ + num = random( ) % numsquares; + i = rs->xpos[ num ]; + j = rs->ypos[ num ]; + /* pick a random direction */ + dir = ( random( )% 4 ) + 1; + + if( rs->direction[ num ] == 0 ) + { + switch( dir ) + { + case 1: + /* move up in x */ + if( ( i + 1 ) < board_x_size ) + { + if( rs->occupied[ (i + 1) * board_y_size + j ] == -1 ) + { + rs->direction[ num ] = dir; + rs->occupied[ (i + 1) * board_y_size + j ] = num; + rs->occupied[ i * board_y_size + j ] = -1; + return 1; + } + } + return 0; + break; + case 2: + /* move up in y */ + if( ( j + 1 ) < board_y_size ) + { + if( rs->occupied[ i * board_y_size + (j + 1) ] == -1 ) + { + rs->direction[ num ] = dir; + rs->occupied[ i * board_y_size + (j + 1) ] = num; + rs->occupied[ i * board_y_size + j ] = -1; + return 1; + } + } + return 0; + break; + case 3: + /* move down in x */ + if( ( i - 1 ) >= 0 ) + { + if( rs->occupied[ (i - 1) * board_y_size + j ] == -1 ) + { + rs->direction[ num ] = dir; + rs->occupied[ (i - 1) * board_y_size + j ] = num; + rs->occupied[ i * board_y_size + j ] = -1; + return 1; + } + } + return 0; + break; + case 4: + /* move down in y */ + if( ( j - 1 ) >= 0 ) + { + if( rs->occupied[ i * board_y_size + (j - 1) ] == -1 ) + { + rs->direction[ num ] = dir; + rs->occupied[ i * board_y_size + (j - 1) ] = num; + rs->occupied[ i * board_y_size + j ] = -1; + return 1; + } + } + return 0; + break; + default: + break; + } + } + return 0; } /* move a single frame. */ @@ -464,121 +583,121 @@ randsheet_new_move( randsheet* rs ) static void randsheet_move( randsheet *rs, float rot ) { - int i, j, index; - for( index = 0 ; index < NUMSQUARES; index++ ) - { - i = rs->xpos[ index ]; - j = rs->ypos[ index ]; - switch( rs->direction[ index ] ) - { - case 0: - /* not moving */ - break; - case 1: - /* move up in x */ - rs->angle[ index ] += rot; - /* check to see if we have finished moving */ - if( rs->angle[ index ] >= M_PI ) - { - rs->xpos[ index ] += 1; - rs->direction[ index ] = 0; - rs->angle[ index ] = 0; - } - break; - case 2: - /* move up in y */ - rs->angle[ index ] += rot; - /* check to see if we have finished moving */ - if( rs->angle[ index ] >= M_PI ) - { - rs->ypos[ index ] += 1; - rs->direction[ index ] = 0; - rs->angle[ index ] = 0; - } - break; - case 3: - /* down in x */ - rs->angle[ index ] += rot; - /* check to see if we have finished moving */ - if( rs->angle[ index ] >= M_PI ) - { - rs->xpos[ index ] -= 1; - rs->direction[ index ] = 0; - rs->angle[ index ] = 0; - } - break; - case 4: - /* up in x */ - rs->angle[ index ] += rot; - /* check to see if we have finished moving */ - if( rs->angle[ index ] >= M_PI ) - { - rs->ypos[ index ] -= 1; - rs->direction[ index ] = 0; - rs->angle[ index ] = 0; - } - break; - default: - break; - } - } + int i, j, index; + for( index = 0 ; index < numsquares; index++ ) + { + i = rs->xpos[ index ]; + j = rs->ypos[ index ]; + switch( rs->direction[ index ] ) + { + case 0: + /* not moving */ + break; + case 1: + /* move up in x */ + rs->angle[ index ] += rot; + /* check to see if we have finished moving */ + if( rs->angle[ index ] >= M_PI ) + { + rs->xpos[ index ] += 1; + rs->direction[ index ] = 0; + rs->angle[ index ] = 0; + } + break; + case 2: + /* move up in y */ + rs->angle[ index ] += rot; + /* check to see if we have finished moving */ + if( rs->angle[ index ] >= M_PI ) + { + rs->ypos[ index ] += 1; + rs->direction[ index ] = 0; + rs->angle[ index ] = 0; + } + break; + case 3: + /* down in x */ + rs->angle[ index ] += rot; + /* check to see if we have finished moving */ + if( rs->angle[ index ] >= M_PI ) + { + rs->xpos[ index ] -= 1; + rs->direction[ index ] = 0; + rs->angle[ index ] = 0; + } + break; + case 4: + /* up in x */ + rs->angle[ index ] += rot; + /* check to see if we have finished moving */ + if( rs->angle[ index ] >= M_PI ) + { + rs->ypos[ index ] -= 1; + rs->direction[ index ] = 0; + rs->angle[ index ] = 0; + } + break; + default: + break; + } + } } - /* draw all the moving squares */ +/* draw all the moving squares */ static void randsheet_draw( randsheet *rs ) { - int i, j; - int index; - /* for all moving squares ... */ - for( index = 0; index < NUMSQUARES; index++ ) - { - /* set color */ - glColor3f( rs->color[ index ][ 0 ], - rs->color[ index ][ 1 ], - rs->color[ index ][ 2 ] ); - /* find x and y position */ - i = rs->xpos[ index ]; - j = rs->ypos[ index ]; - glPushMatrix(); - switch( rs->direction[ index ] ) - { - case 0: - - /* not moving */ - /* front */ - glTranslatef( i, 0, j ); - break; - case 1: - glTranslatef( i+1, 0, j ); - glRotatef( 180 - rs->angle[ index ]*180/M_PI, 0, 0, 1 ); - - break; - case 2: - glTranslatef( i, 0, j+1 ); - glRotatef( 180 - rs->angle[ index ]*180/M_PI, -1, 0, 0 ); - - break; - case 3: - glTranslatef( i, 0, j ); - glRotatef( rs->angle[ index ]*180/M_PI, 0, 0, 1 ); - break; - case 4: - glTranslatef( i, 0, j ); - glRotatef( rs->angle[ index ]*180/M_PI, -1, 0, 0 ); - break; - default: - break; - } - draw_sheet(); - glPopMatrix(); - - } + int i, j; + int index; + /* for all moving squares ... */ + for( index = 0; index < numsquares; index++ ) + { + /* set color */ + glColor3f( rs->color[ index*3 + 0 ], + rs->color[ index*3 + 1 ], + rs->color[ index*3 + 2 ] ); + /* find x and y position */ + i = rs->xpos[ index ]; + j = rs->ypos[ index ]; + glPushMatrix(); + switch( rs->direction[ index ] ) + { + case 0: + + /* not moving */ + /* front */ + glTranslatef( i, 0, j ); + break; + case 1: + glTranslatef( i+1, 0, j ); + glRotatef( 180 - rs->angle[ index ]*180/M_PI, 0, 0, 1 ); + + break; + case 2: + glTranslatef( i, 0, j+1 ); + glRotatef( 180 - rs->angle[ index ]*180/M_PI, -1, 0, 0 ); + + break; + case 3: + glTranslatef( i, 0, j ); + glRotatef( rs->angle[ index ]*180/M_PI, 0, 0, 1 ); + break; + case 4: + glTranslatef( i, 0, j ); + glRotatef( rs->angle[ index ]*180/M_PI, -1, 0, 0 ); + break; + default: + break; + } + draw_sheet(); + glPopMatrix(); + + } } -/**** END RANDSHEET FUNCTIONS ***/ +/**** END RANDSHEET_BAK FUNCTIONS ***/ XSCREENSAVER_MODULE ("Flipflop", flipflop) -#endif +#endif /* USE_GL */ diff --git a/hacks/glx/flipflop.man b/hacks/glx/flipflop.man index 1ba6f5c0..e3b1d2a0 100644 --- a/hacks/glx/flipflop.man +++ b/hacks/glx/flipflop.man @@ -6,12 +6,13 @@ flipflop - draws a grid of 3D squares that change positions [\-display \fIhost:display.screen\fP] [\-visual \fIvisual\fP] [\-window] -[\-root] +[\-count \fInumber\fP | \-free \fInumber\fP] +[\-size \fInumber\fP] +[\-size-x \fInumber\fP] +[\-size-y \fInumber\fP] +[\-spin \fInumber\fP] +[\-mode sticks | tiles] [\-delay \fInumber\fP] -[\-holdtime \fInumber\fP] -[\-changetime \fInumber\fP] -[\-no-texture] -[\-no-fog] [\-wireframe] [\-fps] .SH DESCRIPTION @@ -29,14 +30,42 @@ Draw on a newly-created window. This is the default. .B \-root Draw on the root window. .TP 8 +.B \-count \fInumber\fP +Number of tiles on the board. A value of "0" means "default". The +default number of tiles depends on the size of the board and the mode: +95% of total tiles for "tiles" mode and 80% of total sticks for +"sticks" mode (e.g. 76 tiles or 64 sticks for a 9x9 board). +.TP 8 +.B \-free \fInumber\fP +Number of tiles missing from the board. See -count. +.TP 8 +.B \-size \fInumber\fP +Number of tiles on each side of the board. Takes precedence over +-size-x and -size-y. Default: 9. +.TP 8 +.B \-size-x \fInumber\fP +Width (in tiles) of the board. Default: 9. +.TP 8 +.B \-size-y \fInumber\fP +Length (in tiles) of the board. Default: 9. +.TP 8 +.B \-spin \fInumber\fP +Angular velocity for the rotation of the board. +.TP 8 +.B \-mode sticks +Draw hopping sticks instead of flipping tiles. +.TP 8 +.B \-mode tiles +Draw flipping tiles. This is the default. +.TP 8 .B \-delay \fInumber\fP Per-frame delay, in microseconds. Default: 20000 (0.02 seconds.). .TP 8 -.B \-wireframe -Only draw outlines. -.TP 8 .B \-fps | \-no-fps Whether to show a frames-per-second display at the bottom of the screen. +.TP 8 +.B \-wireframe +Only draw outlines. .SH ENVIRONMENT .PP .TP 8 @@ -58,4 +87,5 @@ appear in supporting documentation. No representations are made about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty. .SH AUTHOR -Kevin Ogden +Kevin Ogden . Some additional code by Sergio +Gutierrez . diff --git a/hacks/glx/gltext.c b/hacks/glx/gltext.c index 71e379ad..a24eefa3 100644 --- a/hacks/glx/gltext.c +++ b/hacks/glx/gltext.c @@ -35,10 +35,6 @@ #include -#ifdef HAVE_LOCALE_H -# include -#endif /* HAVE_LOCALE_H */ - #ifdef USE_GL /* whole file */ #ifdef HAVE_COCOA @@ -330,15 +326,6 @@ init_text (ModeInfo *mi) text_configuration *tp; int i; - /* setlocale (LC_TIME, "") only refers to environment: - not needed - */ -#if 0 -# ifdef HAVE_SETLOCALE - setlocale (LC_TIME, ""); /* for strftime() calls */ -# endif -#endif - if (!tps) { tps = (text_configuration *) calloc (MI_NUM_SCREENS(mi), sizeof (text_configuration)); diff --git a/hacks/glx/pipes.c b/hacks/glx/pipes.c index 3defa33f..e47361ea 100644 --- a/hacks/glx/pipes.c +++ b/hacks/glx/pipes.c @@ -475,21 +475,6 @@ MakeShape(ModeInfo * mi, int newdir) } } -ENTRYPOINT void -reshape_pipes(ModeInfo * mi, int width, int height) -{ - pipesstruct *pp = &pipes[MI_SCREEN(mi)]; - - glViewport(0, 0, pp->WindW = (GLint) width, pp->WindH = (GLint) height); - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - /*glFrustum(-1.0, 1.0, -1.0, 1.0, 5.0, 15.0); */ - gluPerspective(65.0, (GLfloat) width / (GLfloat) height, 0.1, 20.0); - glMatrixMode(GL_MODELVIEW); - - glClear(GL_COLOR_BUFFER_BIT); -} - static void pinit(ModeInfo * mi, int zera) { @@ -609,6 +594,22 @@ pinit(ModeInfo * mi, int zera) pp->nowdir = SelectNeighbor(mi); } +ENTRYPOINT void +reshape_pipes(ModeInfo * mi, int width, int height) +{ + pipesstruct *pp = &pipes[MI_SCREEN(mi)]; + pinit(mi, 1); + + glViewport(0, 0, pp->WindW = (GLint) width, pp->WindH = (GLint) height); + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + /*glFrustum(-1.0, 1.0, -1.0, 1.0, 5.0, 15.0); */ + gluPerspective(65.0, (GLfloat) width / (GLfloat) height, 0.1, 20.0); + glMatrixMode(GL_MODELVIEW); + + glClear(GL_COLOR_BUFFER_BIT); +} + ENTRYPOINT void init_pipes (ModeInfo * mi) { diff --git a/hacks/glx/pipes.man b/hacks/glx/pipes.man index 97d089ee..22a13aa2 100644 --- a/hacks/glx/pipes.man +++ b/hacks/glx/pipes.man @@ -18,7 +18,7 @@ pipes - fill the screen with a plumbing system. [-db] [-fps] .SH DESCRIPTION -If you've ever been in the same room with a Windows NT machine, you've +If you've ever been in the same room as a Windows NT machine, you've probably seen this GL hack. It fills the screen with a plumbing system. .SH OPTIONS .TP 8 diff --git a/hacks/glx/sproingies.c b/hacks/glx/sproingies.c index b85bfca3..e5446f70 100644 --- a/hacks/glx/sproingies.c +++ b/hacks/glx/sproingies.c @@ -45,13 +45,30 @@ static const char sccsid[] = "@(#)sproingies.c 4.04 97/07/28 xlockmore"; #include "gllist.h" #include "sproingies.h" -#define MAXSPROING 100 -#define T_COUNT 40 -#define BOOM_FRAME 50 - -struct sPosColor { - int x, y, z, frame, life; - GLfloat r, g, b; +#define MAXSPROING 100 +#define TARGET_COUNT 40 +#define BOOM_FRAME 50 +#define NO_FRAME (-10) +#define RESET_SPROINGIE_LIFE (-30 + myrand(28)) +#define NEW_SPROINGIE_LIFE (40 + myrand(200)) +#define JUMP_LEFT 0 +#define JUMP_RIGHT 1 + +#define FIRST_FRAME 0 +#define LAST_FRAME 5 +/*- + * The sproingies have six "real" frames, (s1_1 to s1_6) that show a + * sproingie jumping off a block, headed down and to the right. + * The frames are numbered from 0 (FIRST_FRAME) to 5 (LAST_FRAME). + * + * There are other frame numbers for special cases (e.g. BOOM_FRAME). + */ +struct sPosColor { /* Position and color of the sproingie */ + int x, y, z; /* Position */ + int frame; /* Current frame (0-5) */ + int life; /* Life points */ + GLfloat r, g, b; /* Color RGB */ + int direction; /* Direction of next hop (left or right) */ }; typedef struct { @@ -81,6 +98,8 @@ myrand(int range) return ((int) (((float) range) * LRAND() / (MAXRAND))); } +static int smart_sproingies = 0; + static GLuint build_TopsSides(int wireframe) { @@ -241,8 +260,6 @@ LayGround(int sx, int sy, int sz, int width, int height, sp_instance * si) } } -#define RESET_SPROINGIE (-30 + myrand(28)) - static void AdvanceSproingie(int t, sp_instance * si) { @@ -251,7 +268,7 @@ AdvanceSproingie(int t, sp_instance * si) struct sPosColor *S2 = &(si->positions[0]); if (thisSproingie->life > 0) { - if ((++(thisSproingie->frame)) > 11) { + if ((++(thisSproingie->frame)) > LAST_FRAME) { if (thisSproingie->frame >= BOOM_FRAME) { if ((thisSproingie->r -= 0.08) < 0.0) thisSproingie->r = 0.0; @@ -260,19 +277,17 @@ AdvanceSproingie(int t, sp_instance * si) if ((thisSproingie->b -= 0.08) < 0.0) thisSproingie->b = 0.0; if ((--(thisSproingie->life)) < 1) { - thisSproingie->life = RESET_SPROINGIE; + thisSproingie->life = RESET_SPROINGIE_LIFE; } return; } - thisSproingie->x += 1; - thisSproingie->y -= 2; - thisSproingie->z += 1; - thisSproingie->frame = 0; + thisSproingie->frame = FIRST_FRAME; + /* Check for collisions */ for (t2 = 0; t2 < si->maxsproingies; ++t2) { if ((t2 != t) && (thisSproingie->x == S2->x) && (thisSproingie->y == S2->y) && (thisSproingie->z == S2->z) && - (S2->life > 10) && (S2->frame < 6)) { + (S2->life > 10) && (S2->frame < LAST_FRAME + 1)) { #if 0 if (thisSproingie->life > S2->life) { S2->life = 10; @@ -295,17 +310,18 @@ AdvanceSproingie(int t, sp_instance * si) ++S2; } } + /* Time to disappear... */ if (!((thisSproingie->life == 10) && - (thisSproingie->frame > 0) && + (thisSproingie->frame > FIRST_FRAME) && (thisSproingie->frame < BOOM_FRAME))) { if ((--(thisSproingie->life)) < 1) { - thisSproingie->life = RESET_SPROINGIE; + thisSproingie->life = RESET_SPROINGIE_LIFE; } else if (thisSproingie->life < 9) { thisSproingie->frame -= 2; - } - } /* else wait here for frame 0 to come about. */ + } + } /* ... else wait here for frame FIRST_FRAME to come about. */ } else if (++(thisSproingie->life) >= 0) { - if (t > 1) { + if (1 || t > 1) { g_higher = -3 + myrand(5); g_back = -2 + myrand(5); } else if (t == 1) { @@ -316,20 +332,20 @@ AdvanceSproingie(int t, sp_instance * si) g_back = 0; } - thisSproingie->x = (-g_higher - g_back); - thisSproingie->y = (g_higher << 1); - thisSproingie->z = (g_back - g_higher); - thisSproingie->life = 40 + myrand(200); - thisSproingie->frame = -10; - thisSproingie->r = (GLfloat) (40 + myrand(200)) / 255.0; - thisSproingie->g = (GLfloat) (40 + myrand(200)) / 255.0; - thisSproingie->b = (GLfloat) (40 + myrand(200)) / 255.0; + thisSproingie->x = (-g_higher - g_back); + thisSproingie->y = (g_higher << 1); + thisSproingie->z = (g_back - g_higher); + thisSproingie->life = NEW_SPROINGIE_LIFE; + thisSproingie->frame = NO_FRAME; + thisSproingie->r = (GLfloat) (40 + myrand(200)) / 255.0; + thisSproingie->g = (GLfloat) (40 + myrand(200)) / 255.0; + thisSproingie->b = (GLfloat) (40 + myrand(200)) / 255.0; for (t2 = 0; t2 < si->maxsproingies; ++t2) { if ((t2 != t) && (thisSproingie->x == S2->x) && (thisSproingie->y == S2->y) && (thisSproingie->z == S2->z) && - (S2->life > 10) && (S2->frame < 0)) { - /* If one is already being born, just wait. */ + (S2->life > 10) && (S2->frame < FIRST_FRAME)) { + /* If another is already on this place, wait. */ thisSproingie->life = -1; } ++S2; @@ -344,8 +360,11 @@ NextSproingie(int screen) int ddx, t; struct sPosColor *thisSproingie = &(si->positions[0]); + /* Although the sproingies cycle has six frames, the blocks cycle */ + /* has twelve. After a full cycle (12 frames), re-center positions */ + /* of sproingies */ if (++si->sframe > 11) { - si->sframe = 0; + si->sframe = FIRST_FRAME; for (t = 0; t < si->maxsproingies; ++t) { thisSproingie->x -= 1; thisSproingie->y += 2; @@ -353,6 +372,7 @@ NextSproingie(int screen) ++thisSproingie; } } + for (t = 0; t < si->maxsproingies; ++t) { AdvanceSproingie(t, si); } @@ -378,7 +398,7 @@ NextSproingie(int screen) if ((si->target_rx == si->rotx) && (si->target_ry == si->roty) && (si->target_dist == si->dist)) { - si->target_count = T_COUNT; + si->target_count = TARGET_COUNT; if (si->target_dist <= 32) si->target_count >>= 2; } @@ -417,7 +437,7 @@ ResetEm(void) positions[t].y = 0; positions[t].z = 0; positions[t].life = -2; - positions[t].frame = 0; + positions[t].frame = FIRST_FRAME; } } @@ -483,7 +503,7 @@ rotyBSubtract(void) roty = (roty - 45) % 360; } -#endif +#endif /* __AUXFUNCS__ */ static void RenderSproingie(int t, sp_instance * si) @@ -509,7 +529,8 @@ RenderSproingie(int t, sp_instance * si) glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, mat_color); } } - if (thisSproingie->frame < 0) { + + if (thisSproingie->frame < FIRST_FRAME) { glEnable(GL_CLIP_PLANE0); glTranslatef((GLfloat) (thisSproingie->x), (GLfloat) (thisSproingie->y) + @@ -544,17 +565,62 @@ RenderSproingie(int t, sp_instance * si) if (!si->wireframe) { glEnable(GL_LIGHTING); } - } else if (thisSproingie->frame > 5) { - glTranslatef((GLfloat) (thisSproingie->x + 1), - (GLfloat) (thisSproingie->y - 1), (GLfloat) (thisSproingie->z - 1)); - glRotatef((GLfloat) - 90.0, 0.0, 1.0, 0.0); -/** glCallList(si->sproingies[thisSproingie->frame - 6]);*/ -/**/ renderList(si->sproingies[thisSproingie->frame - 6], si->wireframe); } else { - glTranslatef((GLfloat) (thisSproingie->x), (GLfloat) (thisSproingie->y), - (GLfloat) (thisSproingie->z)); + if (thisSproingie->direction == JUMP_LEFT) { + /* When the sproingie jumps to the left, the frames must be */ + /* rotated and translated */ + glTranslatef((GLfloat) (thisSproingie->x ), + (GLfloat) (thisSproingie->y ), + (GLfloat) (thisSproingie->z - 1)); + glRotatef((GLfloat) - 90.0, 0.0, 1.0, 0.0); + if (thisSproingie->frame == LAST_FRAME) { + thisSproingie->x -= 0; + thisSproingie->y -= 1; + thisSproingie->z += 1; + } + } else { + glTranslatef((GLfloat) (thisSproingie->x), + (GLfloat) (thisSproingie->y), + (GLfloat) (thisSproingie->z)); + glRotatef((GLfloat) - 0.0, 0.0, 1.0, 0.0); + if (thisSproingie->frame == LAST_FRAME) { + thisSproingie->x += 1; + thisSproingie->y -= 1; + thisSproingie->z -= 0; + } + } +/* } */ /** glCallList(si->sproingies[thisSproingie->frame]);*/ /**/ renderList(si->sproingies[thisSproingie->frame], si->wireframe); + + /* Every 6 frame cycle... */ + if (thisSproingie->frame == LAST_FRAME) { + /* ...check if the sproingies have gone out of the bricks */ + if (((thisSproingie->x - thisSproingie->z == 6) && + (2*thisSproingie->x + thisSproingie->y == 6)) || + ((thisSproingie->z - thisSproingie->x == 5) && + (2*thisSproingie->x + thisSproingie->y == -5))) { + /* If they have, then they die */ + if (thisSproingie->life > 0 && thisSproingie->frame < BOOM_FRAME && thisSproingie->frame > FIRST_FRAME) { + thisSproingie->frame = BOOM_FRAME; + } + } else { + /* If not, they choose a direction for the next hop */ + if (smart_sproingies) { + if ((thisSproingie->x - thisSproingie->z == 5) && + (2*thisSproingie->x + thisSproingie->y == 5)) { + thisSproingie->direction = JUMP_LEFT; + } else if ((thisSproingie->z - thisSproingie->x == 4) && + (2*thisSproingie->x + thisSproingie->y == -4)) { + thisSproingie->direction = JUMP_RIGHT; + } else { + thisSproingie->direction = myrand(2); + } + } else { + thisSproingie->direction = myrand(2); + } + } + } } glPopMatrix(); @@ -716,8 +782,8 @@ CleanupSproingies(int screen) } void -InitSproingies(int wfmode, int grnd, int mspr, int screen, int numscreens, - int mono) +InitSproingies(int wfmode, int grnd, int mspr, int smrtspr, + int screen, int numscreens, int mono) { GLfloat ambient[] = {0.2, 0.2, 0.2, 1.0}; @@ -748,6 +814,8 @@ InitSproingies(int wfmode, int grnd, int mspr, int screen, int numscreens, if (mspr >= MAXSPROING) mspr = MAXSPROING - 1; + smart_sproingies = smrtspr; + si->rotx = 0; si->roty = -45; si->dist = (16 << 2); @@ -777,7 +845,8 @@ InitSproingies(int wfmode, int grnd, int mspr, int screen, int numscreens, si->positions[t].y = 0; si->positions[t].z = 0; si->positions[t].life = (-t * ((si->maxsproingies > 19) ? 1 : 4)) - 2; - si->positions[t].frame = 0; + si->positions[t].frame = FIRST_FRAME; + si->positions[t].direction = myrand(2); } #if 0 /* Test boom */ @@ -848,6 +917,7 @@ InitSproingies(int wfmode, int grnd, int mspr, int screen, int numscreens, } } -#endif +#endif /* USE_GL */ /* End of sproingies.c */ + diff --git a/hacks/glx/sproingies.h b/hacks/glx/sproingies.h index 4824111f..81c6cb7e 100644 --- a/hacks/glx/sproingies.h +++ b/hacks/glx/sproingies.h @@ -21,5 +21,5 @@ extern void DisplaySproingies(int screen,int pause); extern void NextSproingieDisplay(int screen,int pause); extern void ReshapeSproingies(int w, int h); extern void CleanupSproingies(int screen); -extern void InitSproingies(int wfmode, int grnd, int mspr, int screen, - int numscreens, int mono); +extern void InitSproingies(int wfmode, int grnd, int mspr, int smrtspr, + int screen, int numscreens, int mono); diff --git a/hacks/glx/sproingies.man b/hacks/glx/sproingies.man index 5a45f384..d00c93b8 100644 --- a/hacks/glx/sproingies.man +++ b/hacks/glx/sproingies.man @@ -10,6 +10,7 @@ sproingies - Q-Bert meets Marble Madness! [\-count \fInumber\fP] [\-delay \fInumber\fP] [\-size \fInumber\fP] +[\-no\-fall] [\-wireframe] [\-fps] .SH DESCRIPTION @@ -35,6 +36,9 @@ Per-frame delay, in microseconds. Default: 25000 (0.03 seconds.). .B \-size \fInumber\fP How much to scale the image down. Default 0 (full screen.) .TP 8 +.B \-no\-fall +Make sproingies "smart", so they do not fall down the edge. +.TP 8 .B \-wireframe Render in wireframe instead of solid. .TP 8 @@ -61,4 +65,4 @@ appear in supporting documentation. No representations are made about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty. .SH AUTHOR -Ed Mackey. +Ed Mackey. Some aditional code by Sergio Gutiérrez "Sergut". diff --git a/hacks/glx/sproingiewrap.c b/hacks/glx/sproingiewrap.c index f247c97e..b16c87da 100644 --- a/hacks/glx/sproingiewrap.c +++ b/hacks/glx/sproingiewrap.c @@ -22,14 +22,19 @@ static const char sccsid[] = "@(#)sproingiewrap.c 4.07 97/11/24 xlockmore"; * * Programming: Ed Mackey, http://www.netaxs.com/~emackey/ * Gordon Wrigley, gdw33@student.canterbury.ac.nz + * Sergio Gutiérrez "Sergut", sergut@gmail.com * Sproingie 3D objects modeled by: Al Mackey, al@iam.com * (using MetaNURBS in NewTek's Lightwave 3D v5). * * Revision History: + * 01-Sep-06: Make the sproingies select a new direction after each hop + * (6 frames); if they fall towards the edge, they explode. + * (TODO: let them fall for a time before they explode or + * disappear) [sergut] * 13-Dec-02: Changed triangle normals into vertex normals to give a smooth - apperance and moved the sproingies from Display Lists to - Vertex Arrays, still need to do this for the TopsSides. - (gordon) + * apperance and moved the sproingies from Display Lists to + * Vertex Arrays, still need to do this for the TopsSides. + * [gordon] * 26-Apr-97: Added glPointSize() calls around explosions, plus other fixes. * 28-Mar-97: Added size support. * 22-Mar-97: Updated to use glX interface instead of xmesa one. @@ -40,31 +45,14 @@ static const char sccsid[] = "@(#)sproingiewrap.c 4.07 97/11/24 xlockmore"; * 09-Dec-96: Written. */ -/*- - * The sproingies have six "real" frames, (s1_1 to s1_6) that show a - * sproingie jumping off a block, headed down and to the right. But - * the program thinks of sproingies as having twelve "virtual" frames, - * with the latter six being copies of the first, only lowered and - * rotated by 90 degrees (jumping to the left). So after going - * through 12 frames, a sproingie has gone down two rows but not - * moved horizontally. - * - * To have the sproingies randomly choose left/right jumps at each - * block, the program should go back to thinking of only 6 frames, - * and jumping down only one row when it is done. Then it can pick a - * direction for the next row. - * - * (Falling off the end might not be so bad either. :) ) - */ - #ifdef STANDALONE -# define DEFAULTS "*delay: 25000 \n" \ - "*count: 5 \n" \ - "*cycles: 0 \n" \ +# define DEFAULTS "*delay: 30000 \n" \ + "*count: 8 \n" \ "*size: 0 \n" \ "*showFPS: False \n" \ "*fpsTop: True \n" \ "*wireframe: False \n" + # define refresh_sproingies 0 # define sproingies_handle_event 0 # include "xlockmore.h" /* from the xscreensaver distribution */ @@ -74,10 +62,26 @@ static const char sccsid[] = "@(#)sproingiewrap.c 4.07 97/11/24 xlockmore"; #ifdef USE_GL +#define DEF_SMART_SPROINGIES "True" /* Smart sproingies do not fall down the edge */ + #include "sproingies.h" +#undef countof +#define countof(x) (sizeof((x))/sizeof((*x))) + +static XrmOptionDescRec opts[] = { + {"-fall", ".smartSproingies", XrmoptionNoArg, "False"}, + {"-no-fall", ".smartSproingies", XrmoptionNoArg, "True"}, +}; + +static int smrt_spr; + +static argtype vars[] = { + {&smrt_spr, "smartSproingies", "Boolean", DEF_SMART_SPROINGIES, t_Bool}, +}; + ENTRYPOINT ModeSpecOpt sproingies_opts = -{0, NULL, 0, NULL, NULL}; +{countof(opts), opts, countof(vars), vars, NULL}; #ifdef USE_MODULES ModStruct sproingies_description = @@ -97,7 +101,8 @@ void NextSproingieDisplay(int screen,int pause); void DisplaySproingies(int screen,int pause); void ReshapeSproingies(int w, int h); void CleanupSproingies(int screen); -void InitSproingies(int wfmode, int grnd, int mspr, int screen, int numscreens, int mono); +void InitSproingies(int wfmode, int grnd, int mspr, int smrtspr, + int screen, int numscreens, int mono); typedef struct { GLfloat view_rotx, view_roty, view_rotz; @@ -112,18 +117,18 @@ typedef struct { static sproingiesstruct *sproingies = NULL; + ENTRYPOINT void init_sproingies (ModeInfo * mi) { Window window = MI_WINDOW(mi); int screen = MI_SCREEN(mi); - int cycles = MI_CYCLES(mi); int count = MI_COUNT(mi); int size = MI_SIZE(mi); sproingiesstruct *sp; - int wfmode = 0, grnd, mspr, w, h; + int wfmode = 0, grnd = 0, mspr, w, h; if (sproingies == NULL) { if ((sproingies = (sproingiesstruct *) calloc(MI_NUM_SCREENS(mi), @@ -136,9 +141,9 @@ init_sproingies (ModeInfo * mi) sp->window = window; if ((sp->glx_context = init_GL(mi)) != NULL) { - if ((cycles & 1) || MI_IS_WIREFRAME(mi)) + if (MI_IS_WIREFRAME(mi)) wfmode = 1; - grnd = (cycles >> 1); + if (grnd > 2) grnd = 2; @@ -147,7 +152,7 @@ init_sproingies (ModeInfo * mi) mspr = 100; /* wireframe, ground, maxsproingies */ - InitSproingies(wfmode, grnd, mspr, MI_SCREEN(mi), MI_NUM_SCREENS(mi), sp->mono); + InitSproingies(wfmode, grnd, mspr, smrt_spr, MI_SCREEN(mi), MI_NUM_SCREENS(mi), sp->mono); /* Viewport is specified size if size >= MINSIZE && size < screensize */ if (size == 0) { @@ -239,6 +244,6 @@ release_sproingies (ModeInfo * mi) XSCREENSAVER_MODULE ("Sproingies", sproingies) -#endif +#endif /* USE_GL */ /* End of sproingiewrap.c */ diff --git a/hacks/glx/topblock.c b/hacks/glx/topblock.c index 43770697..f2161e43 100644 --- a/hacks/glx/topblock.c +++ b/hacks/glx/topblock.c @@ -1,835 +1,870 @@ -/* topblock, Copyright (c) 2006 rednuht - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation. No representations are made about the suitability of this - * software for any purpose. It is provided "as is" without express or - * implied warranty. - * - * - * - -topBlock - a simple openGL 3D hack of falling blocks -based on jwz's dangerball hack - -The proporations of the blocks and their features is not even close to the commercial building block products offered by a variety companies. - -information on this hack might be found at -http://www.jumpstation.co.uk/xscreensaver/topblock/ - -History -25/02/2006 v1.0 release -29/04/2006 v1.11 updated to better fit with xscreensaver v5 - colors defaults to 7 (no black) -*/ - -#include - -# define refresh_topBlock 0 - -#define DEFAULTS "*delay: 10000 \n" \ - "*count: 30 \n" \ - "*showFPS: False \n" \ - "*wireframe: False \n" \ - -#undef countof -#define countof(x) (sizeof((x))/sizeof((*x))) - -#include "xlockmore.h" -#include "topblock.h" -#include "sphere.h" -#include - -#ifdef USE_GL /* whole file */ - -#ifdef HAVE_COCOA -# include -#else -# include -#endif - -typedef struct -{ - GLXContext *glx_context; - int numFallingBlocks; - GLfloat highest,highestFalling; - GLfloat eyeLine,eyeX,eyeY,eyeZ; - int carpetWidth, carpetLength; - int followMode; - GLfloat followRadius,followAngle; - int plusheight; - GLuint carpet; - GLuint block; - NODE *blockNodeRoot; - NODE *blockNodeFollow; - GLfloat rotation; -} topBlockSTATE; - -/* parameter vars */ -Bool override; -Bool rotate; -Bool follow; -Bool drawCarpet; -Bool drawBlob; -Bool drawNipples; -GLfloat rotateSpeed; -GLfloat camX; -GLfloat camY; -GLfloat camZ; -GLfloat dropSpeed; -int maxFalling; -int maxColors; -int size; -int spawn; -int resolution; - -static XrmOptionDescRec opts[] = { - { "-size", ".size", XrmoptionSepArg, 0 }, - { "-spawn", ".spawn", XrmoptionSepArg, 0 }, - { "-camX", ".camX", XrmoptionSepArg, 0 }, - { "-camY", ".camY", XrmoptionSepArg, 0 }, - { "-camZ", ".camZ", XrmoptionSepArg, 0 }, - { "+rotate", ".rotate", XrmoptionNoArg, "False" }, - { "-rotate", ".rotate", XrmoptionNoArg, "True" }, - { "+carpet", ".carpet", XrmoptionNoArg, "False" }, - { "+nipples", ".nipples", XrmoptionNoArg, "False" }, - { "-blob", ".blob", XrmoptionNoArg, "True" }, - { "-rotateSpeed", ".rotateSpeed", XrmoptionSepArg, 0 }, - { "-follow", ".follow", XrmoptionNoArg, "True" }, - { "-maxFalling", ".maxFalling", XrmoptionSepArg, 0 }, - { "-resolution", ".resolution", XrmoptionSepArg, 0 }, - { "-maxColors", ".maxColors", XrmoptionSepArg, 0 }, - { "-dropSpeed", ".dropSpeed", XrmoptionSepArg, 0 }, - { "-override", ".override", XrmoptionNoArg, "True" }, -}; - -#define DEF_override "False" -#define DEF_rotate "True" -#define DEF_follow "False" -#define DEF_drawCarpet "True" -#define DEF_drawBlob "False" -#define DEF_drawNipples "True" -#define DEF_rotateSpeed "10" -#define DEF_maxFalling "500" -#define DEF_maxColors "7" -#define DEF_size "2" -#define DEF_spawn "50" -#define DEF_resolution "4" -#define DEF_camX "1" -#define DEF_camY "20" -#define DEF_camZ "25" -#define DEF_dropSpeed "4" - -static argtype vars[] = { - {&override, "override", "Override", DEF_override, t_Bool}, - {&rotate, "rotate", "Rotate", DEF_rotate, t_Bool}, - {&drawCarpet, "carpet", "Carpet", DEF_drawCarpet, t_Bool}, - {&drawNipples, "nipples", "Nipples", DEF_drawNipples, t_Bool}, - {&drawBlob, "blob", "Blob", DEF_drawBlob, t_Bool}, - {&rotateSpeed, "rotateSpeed", "RotateSpeed", DEF_rotateSpeed, t_Float}, - {&follow, "follow", "Follow", DEF_follow, t_Bool}, - {&camX, "camX", "camX", DEF_camX, t_Float}, - {&camY, "camY", "camY", DEF_camY, t_Float}, - {&camZ, "camZ", "camZ", DEF_camZ, t_Float}, - {&size, "size", "size", DEF_size, t_Int}, - {&spawn, "spawn", "spawn", DEF_spawn, t_Int}, - {&maxFalling, "maxFalling", "maxFalling", DEF_maxFalling, t_Int}, - {&resolution, "resolution", "resolution", DEF_resolution, t_Int}, - {&maxColors, "maxColors", "maxColors", DEF_maxColors, t_Int}, - {&dropSpeed, "dropSpeed", "DropSpeed", DEF_dropSpeed, t_Float}, -}; - -static topBlockSTATE *tbs = NULL; - -ModeSpecOpt topBlock_opts = {countof(opts), opts, countof(vars), vars, NULL}; - -/* Window management, etc */ -ENTRYPOINT void -reshape_topBlock (ModeInfo *mi, int width, int height) { - GLfloat h = (GLfloat) height / (GLfloat) width; - glViewport (0, 0, (GLint) width, (GLint) height); - glMatrixMode(GL_PROJECTION); - glLoadIdentity(); - gluPerspective (60.0, 1/h, 1.0, 1000.0); - glMatrixMode(GL_MODELVIEW); - glLoadIdentity(); - glClear(GL_COLOR_BUFFER_BIT); -} - -/* clean up on exit, not required ... */ -ENTRYPOINT void - release_topBlock(ModeInfo *mi) { - topBlockSTATE *tb = &tbs[MI_SCREEN(mi)]; - NODE *llCurrent, *llOld; - llCurrent = tb->blockNodeRoot; - while (llCurrent != NULL) { - llOld = llCurrent; - llCurrent = llCurrent->next; - free(llOld); - } -} - -/* setup */ -ENTRYPOINT void -init_topBlock (ModeInfo *mi) -{ - topBlockSTATE *tb; - int wire = MI_IS_WIREFRAME(mi); - - if (!tbs) { - tbs = (topBlockSTATE *) - calloc (MI_NUM_SCREENS(mi), sizeof (topBlockSTATE)); - if (!tbs) { - fprintf(stderr, "%s: out of memory\n", progname); - exit(1); - } - } - - tb = &tbs[MI_SCREEN(mi)]; - - tb->glx_context = init_GL(mi); - - reshape_topBlock (mi, MI_WIDTH(mi), MI_HEIGHT(mi)); - - if (wire) { drawNipples=False; } - tb->numFallingBlocks=0; - - if (size>10) { size = 10; } - if (size<1) { size = 2; } - tb->carpetWidth = 8 * size; - tb->carpetLength = tb->carpetWidth; - - maxFalling=maxFalling*size; - - if (spawn<4) { spawn=4; } - if (spawn>1000) { spawn=1000; } - - if (rotateSpeed<1) {rotateSpeed=1; } - if (rotateSpeed>1000) {rotateSpeed=1000;} - rotateSpeed = rotateSpeed / 100; - - if (resolution<4) {resolution=4;} - if (resolution>20) {resolution=20;} - resolution=resolution*2; - - if (maxColors<1) {maxColors=1;} - if (maxColors>8) {maxColors=8;} - - if (dropSpeed<1) {dropSpeed=1;} - if (dropSpeed>9) {dropSpeed=9;} /* 10+ produces blocks that can pass through each other */ - - dropSpeed = 80/dropSpeed; - dropSpeed = (blockHeight/dropSpeed); - - tb->glx_context = init_GL(mi); - - reshape_topBlock (mi, MI_WIDTH(mi), MI_HEIGHT(mi)); - if (0==1) { - glClearColor(1.0f, 1.0f, 1.0f, 0.5f); - } else { - glClearColor(0.0f, 0.0f, 0.0f, 0.5f); - } - glClearDepth(1.0f); - if (!wire) { - GLfloat pos[4] = {10.0, 10.0, 1.0, 0.0}; - GLfloat amb[4] = {0.1, 0.1, 0.1, 1.0}; - GLfloat dif[4] = {1.0, 1.0, 1.0, 1.0}; - GLfloat spc[4] = {0.0, 1.0, 1.0, 1.0}; - - glEnable(GL_LIGHTING); - glEnable(GL_LIGHT0); - glLightfv(GL_LIGHT0, GL_POSITION, pos); - glLightfv(GL_LIGHT0, GL_AMBIENT, amb); - glLightfv(GL_LIGHT0, GL_DIFFUSE, dif); - glLightfv(GL_LIGHT0, GL_SPECULAR, spc); - } - glDepthFunc(GL_LEQUAL); - glEnable(GL_DEPTH_TEST); - glDisable(GL_CULL_FACE); /* all objects exhibit a reverse side */ - glCullFace(GL_BACK); - - if (drawBlob) { - buildBlobBlock(mi); - } else { - buildBlock(mi); /* build the display list holding the simple block */ - } - buildCarpet(mi); /* build the base */ - tb->highest=0; - tb->highestFalling=0; - tb->eyeLine=tb->highest; - tb->eyeX=0; - tb->eyeY=0; - tb->eyeZ=0; - tb->followMode=0; - if (follow) { - tb->plusheight=100; - camZ=camZ-60; - } else { - tb->rotation=random() % 360; - tb->eyeY=10; - tb->plusheight=30; - } - tb->followRadius=0; - /* override camera settings */ - if (override) { - tb->plusheight=100; - drawCarpet=False; - camX=0; - camY=1; - camZ=0; - tb->eyeX=-1; - tb->eyeY=20; - tb->eyeZ=0; - } -} - -/* provides the per frame entertainment */ -ENTRYPOINT void -draw_topBlock (ModeInfo *mi) { - Display *dpy = MI_DISPLAY(mi); - Window window = MI_WINDOW(mi); - NODE *llCurrent; - NODE *llNode; - topBlockSTATE *tb = &tbs[MI_SCREEN(mi)]; - GLfloat spcN1x,spcN1y,spcN2x,spcN2y; - GLfloat spcC1x,spcC1y,spcC2x,spcC2y; - int wire = MI_IS_WIREFRAME(mi); - GLfloat color[4]; - - if (!tb->glx_context) - return; - glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(tb->glx_context)); - - generateNewBlock(mi); - - if (rotate) { tb->rotation += rotateSpeed; } - if (tb->rotation>=360) { tb->rotation=tb->rotation-360; } - - glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); /* clear current */ - glLoadIdentity(); /* resets directions, do it every time ! */ - - if (!follow) { - if (tb->highest>tb->eyeLine) { tb->eyeLine=tb->eyeLine + ((tb->highest-tb->eyeLine)/100); } /* creates a smooth camera transition */ - gluLookAt(camX, camY+tb->eyeLine, camZ, tb->eyeX, tb->eyeY+tb->eyeLine, tb->eyeZ, 0.0, 1.0, 0.0); /* setup viewer, xyz cam, xyz looking at and where is up normaly 0,1,0 */ - glRotatef(90, 1.0, 0.0, 0.0); /* x axis */ - } else { - glRotatef(90, 0.0, 0.0, 1.0); /* z axis */ - followBlock(mi); - } - /* rotate the world */ - glRotatef(tb->rotation, 0.0, 0.0, 1.0); - - llCurrent = tb->blockNodeRoot; - if (drawCarpet) { - /* center carpet */ - glTranslatef(0.0-(tb->carpetWidth/2),0.0-(tb->carpetLength/2),0.0); - glCallList(tb->carpet); - glTranslatef(0.0+(tb->carpetWidth/2),0.0+(tb->carpetLength/2),0.0); - glTranslatef(0.0,0.0,-0.55); - } - tb->highestFalling=0; - while (llCurrent != NULL) { /* for each block */ - glPushMatrix(); /* save state */ - /* set color */ - switch (llCurrent->color) { - case 0: - color[0] = 1.0f; - color[1] = 0.0f; - color[2] = 0.0f; - color[3] = 1.0f; - break; - case 1: - color[0] = 0.0f; - color[1] = 1.0f; - color[2] = 0.0f; - color[3] = 1.0f; - break; - case 2: - color[0] = 0.0f; - color[1] = 0.0f; - color[2] = 1.0f; - color[3] = 1.0f; - break; - case 3: - color[0] = 0.95f; - color[1] = 0.95f; - color[2] = 0.95f; - color[3] = 1.0f; - break; - case 4: - color[0] = 1.0f; - color[1] = 0.5f; - color[2] = 0.0f; - color[3] = 1.0f; - break; - case 5: - color[0] = 1.0f; - color[1] = 1.0f; - color[2] = 0.0f; - color[3] = 1.0f; - break; - case 6: - color[0] = 0.5f; - color[1] = 0.5f; - color[2] = 0.5f; - color[3] = 1.0f; - break; - case 7: - color[0] = 0.05f; - color[1] = 0.05f; - color[2] = 0.05f; - color[3] = 1.0f; - break; - } - if (wire) { glColor3fv(color); } - else { glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, color); } - - if (llCurrent->falling==1) { - spcC2x = 0; - spcC2y = 0; - spcN2x = 0; - spcN2y = 0; - if (llCurrent->height>tb->highestFalling) {tb->highestFalling=llCurrent->height;} - /* all blocks fall at the same rate to avoid mid air collisions */ - llCurrent->height=llCurrent->height-dropSpeed; - if (llCurrent->height<=0) { - llCurrent->falling=0; - if (tb->highest==0) { - tb->highest=tb->highest+blockHeight; - } - } - if ( (llCurrent->height<=tb->highest+1) && (llCurrent->falling==1) ) { - /* check for collision */ - llNode = tb->blockNodeRoot; - spcC1x = llCurrent->x; - spcC1y = llCurrent->y; - switch(llCurrent->rotation) { - case getOrientation(0): - spcC2x = spcC1x; - spcC2y = spcC1y-2; - break; - case getOrientation(1): - spcC2x = spcC1x+2; - spcC2y = spcC1y; - break; - case getOrientation(2): - spcC2x = spcC1x; - spcC2y = spcC1y+2; - break; - case getOrientation(3): - spcC2x = spcC1x-2; - spcC2y = spcC1y; - break; - } - while (llNode != NULL) { - if ( (llNode->falling==0) && (llCurrent->falling==1) ) { - spcN1x = llNode->x; - spcN1y = llNode->y; - switch(llNode->rotation) { - case getOrientation(0): - spcN2x = spcN1x; - spcN2y = spcN1y-2; - break; - case getOrientation(1): - spcN2x = spcN1x+2; - spcN2y = spcN1y; - break; - case getOrientation(2): - spcN2x = spcN1x; - spcN2y = spcN1y+2; - break; - case getOrientation(3): - spcN2x = spcN1x-2; - spcN2y = spcN1y; - break; - } - if ( - ( (spcC1x==spcN1x) && (spcC1y==spcN1y) ) || - ( (spcC1x==spcN2x) && (spcC1y==spcN2y) ) || - ( (spcC2x==spcN2x) && (spcC2y==spcN2y) ) || - ( (spcC2x==spcN1x) && (spcC2y==spcN1y) ) - ){ - if ( (llCurrent->height<=llNode->height+blockHeight+TOLLERANCE) && (llCurrent->height>=llNode->height+blockHeight-TOLLERANCE) ) { - llCurrent->falling=0; - llCurrent->height=llNode->height+blockHeight; /* if this is missing then small errors build up until the model fails */ - if ( (llCurrent->height<=tb->highest+TOLLERANCE) && (llCurrent->height>=tb->highest-TOLLERANCE) ) { - tb->highest=tb->highest+blockHeight; - } - } - } - } - llNode=llNode->next; - } - } - } - /* set location in space */ - glTranslatef(llCurrent->x,llCurrent->y,-llCurrent->height); - /* rotate */ - glRotatef(llCurrent->rotation, 0.0f, 0.0f, 1.0f); - if ((tb->followMode==0) && (llCurrent->next==NULL)) { - tb->blockNodeFollow = llCurrent; - tb->followMode=1; - } - llCurrent = llCurrent->next; - /* draw */ - glCallList(tb->block); - glPopMatrix(); /* restore state */ - } - if (mi->fps_p) do_fps (mi); - glFinish(); - - if (tb->highest>(5*maxFalling)) { drawCarpet=False; } - glXSwapBuffers(dpy, window); -} - - - -/* camera is in follow mode, work out where we should be looking */ -static void followBlock(ModeInfo *mi) { - GLfloat xLen,yLen,cx,cy,rangle,xTarget,yTarget; - topBlockSTATE *tb = &tbs[MI_SCREEN(mi)]; - cx=0;cy=0; - if ((tb->blockNodeFollow!=NULL) && (tb->followMode==1)){ - - if (tb->highest>tb->eyeLine) { tb->eyeLine=tb->eyeLine + ((tb->highest-tb->eyeLine)/100); } - /*tb->blockNodeFollow->color=1; only noticable if you set the colors to 1 */ - - if (tb->blockNodeFollow->height > tb->eyeZ) { tb->eyeZ=tb->eyeZ + ((tb->blockNodeFollow->height - tb->eyeZ)/100); } - if (tb->blockNodeFollow->height < tb->eyeZ) { tb->eyeZ=tb->eyeZ - ((tb->eyeZ - tb->blockNodeFollow->height)/100); } - - - /* when the scene is rotated we need to know where the block is in the 2 dimensional coordinates of the carpet area - (see http://www.jumpstation.co.uk/rotation/) - */ - - if (tb->followRadius==0) { - xLen = tb->blockNodeFollow->x-cx; - yLen = tb->blockNodeFollow->y-cy; - tb->followRadius=sqrt( (xLen*xLen) + (yLen*yLen) ); - tb->followAngle = (180/M_PI) * asin(xLen/tb->followRadius); - tb->followAngle = quadrantCorrection(tb->followAngle,(int)cx,(int)cy,(int)tb->blockNodeFollow->x,(int)tb->blockNodeFollow->y); - } - rangle = (tb->followAngle+tb->rotation) * M_PI /180; - xTarget = cos(rangle) * tb->followRadius + cx; - yTarget = sin(rangle) * tb->followRadius + cy; - if (tb->followAngle>360) { tb->followAngle=tb->followAngle-360; } - - if (xTarget < tb->eyeX) { tb->eyeX=tb->eyeX - ((tb->eyeX - xTarget)/100); } - if (xTarget > tb->eyeX) { tb->eyeX=tb->eyeX + ((xTarget - tb->eyeX)/100); } - - if (yTarget < tb->eyeY) { tb->eyeY=tb->eyeY - ((tb->eyeY - yTarget)/100); } - if (yTarget > tb->eyeY) { tb->eyeY=tb->eyeY + ((yTarget - tb->eyeY)/100); } - /* - tb->eyeX = xTarget; - tb->eyeY = yTarget; -*************************************************************************** -*/ - if (!tb->blockNodeFollow->falling) { - tb->followMode=0; - /*tb->blockNodeFollow->color=2; only noticable if you set the colors to 1 */ - tb->followRadius=0; - } - } - gluLookAt(camX, camY, camZ-tb->eyeLine, tb->eyeX, tb->eyeY, -tb->eyeZ,-1.0,0.0,0.0); -} - -/* each quater of the circle has to be adjusted for */ -static double quadrantCorrection(double angle,int cx,int cy,int x,int y) { - if ((x>=cx) && (y>=cy)) { - angle = angle + (90-(angle-90) * 2); - } else if ((x>=cx) && (y<=cy)) { - angle = angle + 90; - } else if ((x<=cx) && (y<=cy)) { - angle = angle + 90; - } else if ((x<=cx) && (y>=cy)) { - angle = angle + (90-(angle-90) * 2); - } - return(angle-180); -} - -/* if random chance then create a new falling block */ -static void generateNewBlock(ModeInfo *mi) { - NODE *llCurrent, *llTail; - GLfloat startOffx, startOffy; - int endOffx, endOffy; - topBlockSTATE *tb = &tbs[MI_SCREEN(mi)]; - if ( ((random() % spawn) == 1) && (tb->highestFallingplusheight-blockHeight)+tb->highest)) ) { - startOffx=0; - endOffx=0; - startOffy=0; - endOffy=0; - tb->numFallingBlocks++; - llTail = tb->blockNodeRoot; - if (llTail == NULL) { - if ((llCurrent = ((NODE*) malloc(sizeof(NODE)))) == NULL) { fprintf(stderr, "%s: out of memory.\n", progname); } - llTail = llCurrent; - tb->blockNodeRoot = llCurrent; - } else { - if (tb->numFallingBlocks>=maxFalling) { - /* recycle */ - llCurrent=llTail->next; - tb->blockNodeRoot=llCurrent->next; - } else { - if ((llCurrent = ((NODE*) malloc(sizeof(NODE)))) == NULL) { fprintf(stderr, "%s: out of memory..\n", progname); } - } - while (llTail->next != NULL) { llTail = llTail->next; } /* find last item in list */ - } - llCurrent->falling=1; - llCurrent->rotation=getOrientation(random() % 4); - if (llCurrent->rotation==getOrientation(0)) { - startOffx=1.0; - endOffx=0; - startOffy=3.0; - endOffy=-1; - } else if (llCurrent->rotation==getOrientation(1)) { - startOffx=1.0; - endOffx=-1; - startOffy=1.0; - endOffy=0; - } else if (llCurrent->rotation==getOrientation(2)) { - startOffx=1.0; - endOffx=0; - startOffy=3.0; - endOffy=-1; - } else if (llCurrent->rotation==getOrientation(3)) { - startOffx=5.0; - endOffx=-1; - startOffy=1.0; - endOffy=0; - } - - llCurrent->x=(startOffx-(tb->carpetLength/2)) + getLocation(random() % ((tb->carpetLength/2)+endOffx) ); - llCurrent->y=(startOffy-(tb->carpetLength/2)) + getLocation(random() % ((tb->carpetLength/2)+endOffy) ); - llCurrent->color=(random() % maxColors); - llCurrent->height=getHeight(tb->plusheight+tb->highest); - if (tb->numFallingBlocks>=maxFalling) { - tb->numFallingBlocks--; - tb->numFallingBlocks--; - } - llTail->next = llCurrent; - llTail = llCurrent; - llTail->next = NULL; - - } -} - -/* called at init this creates the 'carpet' display list item */ -static void buildCarpet(ModeInfo *mi) { - int i,c,x,y; - GLfloat color[4]; - int wire = MI_IS_WIREFRAME(mi); - topBlockSTATE *tb = &tbs[MI_SCREEN(mi)]; - GLUquadricObj *quadratic; - color[0] = 0.0f; - color[1] = 1.0f; - color[2] = 0.0f; - color[3] = 1.0f; - tb->carpet=glGenLists(1); /* only one */ - glNewList(tb->carpet,GL_COMPILE); - glPushMatrix(); /* save state */ - x=tb->carpetWidth; - y=tb->carpetLength; - if (wire) { glColor3fv(color); } - else { glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, color); } - /* draw carpet plane */ - glBegin( wire ? GL_LINE_LOOP : GL_QUADS ); - /* draw top */ - glNormal3f( 0, 0, -1 ); - glVertex3f(0.0,0.0,0.0); - glVertex3f(x,0.0,0.0); - glVertex3f(x,y,0.0); - glVertex3f(0.0,y,0.0); - if (wire) { glEnd(); } - else { - /* add edge pieces */ - /* side 1 */ - glNormal3f( 0, -1, 0 ); - glVertex3f(0.0,0.0,0.0); - glVertex3f(x,0.0,0.0); - glVertex3f(x,0,singleThick); - glVertex3f(0.0,0,singleThick); - /* side 2 */ - glNormal3f( -1, 0, 0 ); - glVertex3f(0.0,0.0,0.0); - glVertex3f(0,y,0.0); - glVertex3f(0,y,singleThick); - glVertex3f(0.0,0,singleThick); - /* side 3 */ - glNormal3f( 1, 0, 0 ); - glVertex3f(x,0.0,0.0); - glVertex3f(x,y,0.0); - glVertex3f(x,y,singleThick); - glVertex3f(x,0,singleThick); - /* side 4 */ - glNormal3f( 0, 1, 0 ); - glVertex3f(0,y,0.0); - glVertex3f(x,y,0.0); - glVertex3f(x,y,singleThick); - glVertex3f(0,y,singleThick); - } - glEnd(); - /* nipples */ - if (drawNipples) { - quadratic=gluNewQuadric(); /* Create A Pointer To The Quadric Object */ - gluQuadricNormals(quadratic, GLU_SMOOTH); /* Create Smooth Normals */ - gluQuadricTexture(quadratic, GL_TRUE); /* Create Texture Coords */ - glTranslatef(0.5f,0.5f,-.25); /* move to the cylinder center */ - for (c=0;cblock=glGenLists(1); /* only one */ - glNewList(tb->block,GL_COMPILE); - glPushMatrix(); /* save state */ - glRotatef(90, 0.0f, 1.0f, 0.0f); - /* base */ - polygonPlane(wire, 0,3,2,1,0); - polygonPlane(wire, 2,3,7,6,1); - polygonPlane(wire, 1,2,6,5,2); - polygonPlane(wire, 4,5,6,7,3); - polygonPlane(wire, 0,1,5,4,4); - if (drawNipples) { - /* nipples */ - /* draw 8 cylinders each with a disk cap */ - quadratic=gluNewQuadric(); /* Create A Pointer To The Quadric Object */ - gluQuadricNormals(quadratic, GLU_SMOOTH); /* Create Smooth Normals */ - glRotatef(90, 0.0f, 1.0f, 0.0f); /* 'aim' the pointer ready for the cylinder */ - glTranslatef(0.5f,0.5f,0.99f); /* move to the cylinder center */ - for (c=0;c<2;c++) { - for (i=0;i<4;i++) { - gluCylinder(quadratic, cylSize, cylSize, 0.25f, resolution, resolution); /* quad, radius(bottom, radius(top), height, subdivisions (around Z), subdevisions (along Z) */ - glTranslatef(0.0f,0.0f,0.25f); /* move to the cylinder cap */ - gluDisk(quadratic, 0.0f, cylSize, resolution, resolution ); /* inner size (cd hole), outer size (radius), subdivisions radial, subdivisions circular */ - glTranslatef(0.0f,0.0f,-0.25f); /* move back from the cylinder cap */ - if (c==0) { - glTranslatef(0.0f,-1.0f,0.0f); /* move to the next cylinder center (forward) */ - } else { - glTranslatef(0.0f,1.0f,0.0f); /* move to the next cylinder center (backward) */ - } - } - glTranslatef(-1.0f,1.0f,0.0f); /* move to the cylinder center */ - } - /* udders */ - /* 3 cylinders on the underside */ - glTranslatef(1.5f,-2.5f,-1.5f); /* move to the center, under the top of the brick */ - for (c=0;c<3;c++) { - gluCylinder(quadratic, uddSize, uddSize, 1.5f, resolution, resolution); /* quad, radius(bottom, radius(top), height, subdivisions (around Z), subdevisions (along Z) */ - glTranslatef(0.0f,-1.0f,0.0f); /* move to the center */ - } - } - glPopMatrix(); /* restore state */ - glEndList(); -} - -/* - rip off of the builBlock() function creating the GL compilied pointer "block" but only creates two spheres. - spheres are created with unit_sphere from spheres.h to allow wire frame -*/ -static void buildBlobBlock(ModeInfo *mi) { - int wire = MI_IS_WIREFRAME(mi); - topBlockSTATE *tb = &tbs[MI_SCREEN(mi)]; - tb->block=glGenLists(1); /* only one */ - glNewList(tb->block,GL_COMPILE); - glPushMatrix(); - glScalef(1.4,1.4,1.4); - unit_sphere (resolution/2,resolution, wire); - glPopMatrix(); - glTranslatef(0.0f,-2.0f,0.0f); - glScalef(1.4,1.4,1.4); - unit_sphere (resolution/2,resolution, wire); - glEndList(); -} - - -/* handle input events or not if daemon running the show */ -ENTRYPOINT Bool -topBlock_handle_event (ModeInfo *mi, XEvent *event) { - topBlockSTATE *tb = &tbs[MI_SCREEN(mi)]; - if (event->xany.type == KeyPress) { - KeySym keysym; - char c = 0; - XLookupString (&event->xkey, &c, 1, &keysym, 0); - if (c == 'a') { - tb->eyeX=tb->eyeX+1; - return True; - } else if (c == 'z') { - tb->eyeX=tb->eyeX-1; - return True; - } else if (c == 's') { - tb->eyeY=tb->eyeY+1; - return True; - } else if (c == 'x') { - tb->eyeY=tb->eyeY-1; - return True; - } else if (c == 'd') { - tb->eyeZ=tb->eyeZ+1; - return True; - } else if (c == 'c') { - tb->eyeZ=tb->eyeZ-1; - return True; - } else if (c == 'f') { - camX=camX+1; - return True; - } else if (c == 'v') { - camX=camX-1; - return True; - } else if (c == 'g') { - camY=camY+1; - return True; - } else if (c == 'b') { - camY=camY-1; - return True; - } else if (c == 'h') { - camZ=camZ+1; - return True; - } else if (c == 'n') { - camZ=camZ-1; - return True; - } else if (c == 'r') { - tb->rotation += 1; - return True; - } - } - return False; -} - -/* this is tha main change for v5 compatability and acompanying ENTRYPOINTS */ -XSCREENSAVER_MODULE_2 ("topBlock", topblock, topBlock) - -#endif /* USE_GL */ +/* topblock, Copyright (c) 2006 rednuht + * + * Permission to use, copy, modify, distribute, and sell this software and its + * documentation for any purpose is hereby granted without fee, provided that + * the above copyright notice appear in all copies and that both that + * copyright notice and this permission notice appear in supporting + * documentation. No representations are made about the suitability of this + * software for any purpose. It is provided "as is" without express or + * implied warranty. + * + * + * + +topBlock - a simple openGL 3D hack of falling blocks +based on jwz's dangerball hack + +The proporations of the blocks and their features is not even close to the commercial building block products offered by a variety companies. + +information on this hack might be found at +http://www.jumpstation.co.uk/xscreensaver/topblock/ + +History +25/02/2006 v1.0 release +29/04/2006 v1.11 updated to better fit with xscreensaver v5 + colors defaults to 7 (no black) +19/06/2006 v1.2 fixed dropSpeed = 7 bug, added gltrackball support and some code neatening, thanks to Valdis Kletnieks and JWZ for their input. +*/ + +#include + +# define refresh_topBlock 0 + +#define DEFAULTS "*delay: 10000 \n" \ + "*count: 30 \n" \ + "*showFPS: False \n" \ + "*wireframe: False \n" \ + +#undef countof +#define countof(x) (sizeof((x))/sizeof((*x))) + +#include "xlockmore.h" +#include "topblock.h" +#include "sphere.h" +#include "gltrackball.h" +#include + +#ifdef USE_GL /* whole file */ + +#ifdef HAVE_COCOA +# include +#else +# include +#endif + +typedef struct +{ + GLXContext *glx_context; + trackball_state *trackball; + Bool button_down_p; + int numFallingBlocks; + GLfloat highest,highestFalling; + GLfloat eyeLine,eyeX,eyeY,eyeZ; + int carpetWidth, carpetLength; + int followMode; + GLfloat followRadius,followAngle; + int plusheight; + GLuint carpet; + GLuint block; + NODE *blockNodeRoot; + NODE *blockNodeFollow; + GLfloat rotation; +} topBlockSTATE; + +/* parameter vars */ +Bool override; +Bool rotate; +Bool follow; +Bool drawCarpet; +Bool drawBlob; +Bool drawNipples; +GLfloat rotateSpeed; +GLfloat camX; +GLfloat camY; +GLfloat camZ; +GLfloat dropSpeed; +int maxFalling; +int maxColors; +int size; +int spawn; +int resolution; + +static XrmOptionDescRec opts[] = { + { "-size", ".size", XrmoptionSepArg, 0 }, + { "-spawn", ".spawn", XrmoptionSepArg, 0 }, + { "-camX", ".camX", XrmoptionSepArg, 0 }, + { "-camY", ".camY", XrmoptionSepArg, 0 }, + { "-camZ", ".camZ", XrmoptionSepArg, 0 }, + { "+rotate", ".rotate", XrmoptionNoArg, "False" }, + { "-rotate", ".rotate", XrmoptionNoArg, "True" }, + { "+carpet", ".carpet", XrmoptionNoArg, "False" }, + { "+nipples", ".nipples", XrmoptionNoArg, "False" }, + { "-blob", ".blob", XrmoptionNoArg, "True" }, + { "-rotateSpeed", ".rotateSpeed", XrmoptionSepArg, 0 }, + { "-follow", ".follow", XrmoptionNoArg, "True" }, + { "-maxFalling", ".maxFalling", XrmoptionSepArg, 0 }, + { "-resolution", ".resolution", XrmoptionSepArg, 0 }, + { "-maxColors", ".maxColors", XrmoptionSepArg, 0 }, + { "-dropSpeed", ".dropSpeed", XrmoptionSepArg, 0 }, + { "-override", ".override", XrmoptionNoArg, "True" }, +}; + +#define DEF_override "False" +#define DEF_rotate "True" +#define DEF_follow "False" +#define DEF_drawCarpet "True" +#define DEF_drawBlob "False" +#define DEF_drawNipples "True" +#define DEF_rotateSpeed "10" +#define DEF_maxFalling "500" +#define DEF_maxColors "7" +#define DEF_size "2" +#define DEF_spawn "50" +#define DEF_resolution "4" +#define DEF_camX "1" +#define DEF_camY "20" +#define DEF_camZ "25" +#define DEF_dropSpeed "4" + +static argtype vars[] = { + {&override, "override", "Override", DEF_override, t_Bool}, + {&rotate, "rotate", "Rotate", DEF_rotate, t_Bool}, + {&drawCarpet, "carpet", "Carpet", DEF_drawCarpet, t_Bool}, + {&drawNipples, "nipples", "Nipples", DEF_drawNipples, t_Bool}, + {&drawBlob, "blob", "Blob", DEF_drawBlob, t_Bool}, + {&rotateSpeed, "rotateSpeed", "RotateSpeed", DEF_rotateSpeed, t_Float}, + {&follow, "follow", "Follow", DEF_follow, t_Bool}, + {&camX, "camX", "camX", DEF_camX, t_Float}, + {&camY, "camY", "camY", DEF_camY, t_Float}, + {&camZ, "camZ", "camZ", DEF_camZ, t_Float}, + {&size, "size", "size", DEF_size, t_Int}, + {&spawn, "spawn", "spawn", DEF_spawn, t_Int}, + {&maxFalling, "maxFalling", "maxFalling", DEF_maxFalling, t_Int}, + {&resolution, "resolution", "resolution", DEF_resolution, t_Int}, + {&maxColors, "maxColors", "maxColors", DEF_maxColors, t_Int}, + {&dropSpeed, "dropSpeed", "DropSpeed", DEF_dropSpeed, t_Float}, +}; + +static topBlockSTATE *tbs = NULL; + +ModeSpecOpt topBlock_opts = {countof(opts), opts, countof(vars), vars, NULL}; + +/* Window management, etc */ +ENTRYPOINT void +reshape_topBlock (ModeInfo *mi, int width, int height) { + GLfloat h = (GLfloat) height / (GLfloat) width; + glViewport (0, 0, (GLint) width, (GLint) height); + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + gluPerspective (60.0, 1/h, 1.0, 1000.0); + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + glClear(GL_COLOR_BUFFER_BIT); +} + +/* clean up on exit, not required ... */ +ENTRYPOINT void + release_topBlock(ModeInfo *mi) { + topBlockSTATE *tb = &tbs[MI_SCREEN(mi)]; + NODE *llCurrent, *llOld; + llCurrent = tb->blockNodeRoot; + while (llCurrent != NULL) { + llOld = llCurrent; + llCurrent = llCurrent->next; + free(llOld); + } +} + +/* setup */ +ENTRYPOINT void +init_topBlock (ModeInfo *mi) +{ + topBlockSTATE *tb; + int wire = MI_IS_WIREFRAME(mi); + + if (!tbs) { + tbs = (topBlockSTATE *) + calloc (MI_NUM_SCREENS(mi), sizeof (topBlockSTATE)); + if (!tbs) { + fprintf(stderr, "%s: out of memory\n", progname); + exit(1); + } + } + + tb = &tbs[MI_SCREEN(mi)]; + + tb->glx_context = init_GL(mi); + + reshape_topBlock (mi, MI_WIDTH(mi), MI_HEIGHT(mi)); + + if (wire) { drawNipples=False; } + tb->numFallingBlocks=0; + + if (size>10) { size = 10; } + if (size<1) { size = 2; } + tb->carpetWidth = 8 * size; + tb->carpetLength = tb->carpetWidth; + + maxFalling*=size; + + if (spawn<4) { spawn=4; } + if (spawn>1000) { spawn=1000; } + + if (rotateSpeed<1) {rotateSpeed=1; } + if (rotateSpeed>1000) {rotateSpeed=1000;} + rotateSpeed /= 100; + + if (resolution<4) {resolution=4;} + if (resolution>20) {resolution=20;} + resolution*=2; + + if (maxColors<1) {maxColors=1;} + if (maxColors>8) {maxColors=8;} + + if (dropSpeed<1) {dropSpeed=1;} + if (dropSpeed>9) {dropSpeed=9;} /* 10+ produces blocks that can pass through each other */ + + dropSpeed = 80/dropSpeed; + dropSpeed = (blockHeight/dropSpeed); + + tb->glx_context = init_GL(mi); + + reshape_topBlock (mi, MI_WIDTH(mi), MI_HEIGHT(mi)); + if (0==1) { + glClearColor(1.0f, 1.0f, 1.0f, 0.5f); + } else { + glClearColor(0.0f, 0.0f, 0.0f, 0.5f); + } + glClearDepth(1.0f); + if (!wire) { + GLfloat pos[4] = {10.0, 10.0, 1.0, 0.0}; + GLfloat amb[4] = {0.1, 0.1, 0.1, 1.0}; + GLfloat dif[4] = {1.0, 1.0, 1.0, 1.0}; + GLfloat spc[4] = {0.0, 1.0, 1.0, 1.0}; + + glEnable(GL_LIGHTING); + glEnable(GL_LIGHT0); + glLightfv(GL_LIGHT0, GL_POSITION, pos); + glLightfv(GL_LIGHT0, GL_AMBIENT, amb); + glLightfv(GL_LIGHT0, GL_DIFFUSE, dif); + glLightfv(GL_LIGHT0, GL_SPECULAR, spc); + } + glDepthFunc(GL_LEQUAL); + glEnable(GL_DEPTH_TEST); + glDisable(GL_CULL_FACE); /* all objects exhibit a reverse side */ + glCullFace(GL_BACK); + + if (drawBlob) { + buildBlobBlock(mi); + } else { + buildBlock(mi); /* build the display list holding the simple block */ + } + buildCarpet(mi); /* build the base */ + tb->highest=0; + tb->highestFalling=0; + tb->eyeLine=tb->highest; + tb->eyeX=0; + tb->eyeY=0; + tb->eyeZ=0; + tb->followMode=0; + if (follow) { + tb->plusheight=100; + camZ=camZ-60; + } else { + tb->rotation=random() % 360; + tb->eyeY=10; + tb->plusheight=30; + } + tb->followRadius=0; + /* override camera settings */ + if (override) { + tb->plusheight=100; + drawCarpet=False; + camX=0; + camY=1; + camZ=0; + tb->eyeX=-1; + tb->eyeY=20; + tb->eyeZ=0; + } + tb->trackball = gltrackball_init (); +} + +/* provides the per frame entertainment */ +ENTRYPOINT void +draw_topBlock (ModeInfo *mi) { + Display *dpy = MI_DISPLAY(mi); + Window window = MI_WINDOW(mi); + NODE *llCurrent; + NODE *llNode; + topBlockSTATE *tb = &tbs[MI_SCREEN(mi)]; + GLfloat spcN1x,spcN1y,spcN2x,spcN2y; + GLfloat spcC1x,spcC1y,spcC2x,spcC2y; + int wire = MI_IS_WIREFRAME(mi); + GLfloat color[4]; + + if (!tb->glx_context) + return; + glXMakeCurrent(MI_DISPLAY(mi), MI_WINDOW(mi), *(tb->glx_context)); + + generateNewBlock(mi); + + if (rotate && (!tb->button_down_p)) { tb->rotation += rotateSpeed; } + if (tb->rotation>=360) { tb->rotation=tb->rotation-360; } + + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); /* clear current */ + glLoadIdentity(); /* resets directions, do it every time ! */ + if (!follow) { + if (tb->highest>tb->eyeLine) { tb->eyeLine+=((tb->highest-tb->eyeLine)/100); } /* creates a smooth camera transition */ + gluLookAt(camX, camY+tb->eyeLine, camZ, tb->eyeX, tb->eyeY+tb->eyeLine, tb->eyeZ, 0.0, 1.0, 0.0); /* setup viewer, xyz cam, xyz looking at and where is up normaly 0,1,0 */ + glRotatef(90, 1.0, 0.0, 0.0); /* x axis */ + } else { + glRotatef(90, 0.0, 0.0, 1.0); /* z axis */ + followBlock(mi); + } + glRotatef(-90, 1.0, 0.0, 0.0); + gltrackball_rotate (tb->trackball); + glRotatef(90, 1.0, 0.0, 0.0); + + /* rotate the world */ + glRotatef(tb->rotation, 0.0, 0.0, 1.0); + + llCurrent = tb->blockNodeRoot; + if (drawCarpet) { + /* center carpet */ + glTranslatef(0.0-(tb->carpetWidth/2),0.0-(tb->carpetLength/2),0.0); + glCallList(tb->carpet); + glTranslatef(0.0+(tb->carpetWidth/2),0.0+(tb->carpetLength/2),0.0); + glTranslatef(0.0,0.0,-0.55); + } + tb->highestFalling=0; + while (llCurrent != NULL) { /* for each block */ + glPushMatrix(); /* save state */ + /* set color */ + switch (llCurrent->color) { + case 0: + color[0] = 1.0f; + color[1] = 0.0f; + color[2] = 0.0f; + color[3] = 1.0f; + break; + case 1: + color[0] = 0.0f; + color[1] = 1.0f; + color[2] = 0.0f; + color[3] = 1.0f; + break; + case 2: + color[0] = 0.0f; + color[1] = 0.0f; + color[2] = 1.0f; + color[3] = 1.0f; + break; + case 3: + color[0] = 0.95f; + color[1] = 0.95f; + color[2] = 0.95f; + color[3] = 1.0f; + break; + case 4: + color[0] = 1.0f; + color[1] = 0.5f; + color[2] = 0.0f; + color[3] = 1.0f; + break; + case 5: + color[0] = 1.0f; + color[1] = 1.0f; + color[2] = 0.0f; + color[3] = 1.0f; + break; + case 6: + color[0] = 0.5f; + color[1] = 0.5f; + color[2] = 0.5f; + color[3] = 1.0f; + break; + case 7: + color[0] = 0.05f; + color[1] = 0.05f; + color[2] = 0.05f; + color[3] = 1.0f; + break; + } + if (wire) { glColor3fv(color); } + else { glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, color); } + + if (llCurrent->falling==1) { + spcC2x = 0; + spcC2y = 0; + spcN2x = 0; + spcN2y = 0; + if (llCurrent->height>tb->highestFalling) {tb->highestFalling=llCurrent->height;} + /* all blocks fall at the same rate to avoid mid air collisions */ + llCurrent->height-=dropSpeed; + if (llCurrent->height<=0) { + llCurrent->falling=0; + if (tb->highest==0) { + tb->highest+=blockHeight; + } + } + if ( (llCurrent->height<=tb->highest+1) && (llCurrent->falling==1) ) { + /* check for collision */ + llNode = tb->blockNodeRoot; + spcC1x = llCurrent->x; + spcC1y = llCurrent->y; + switch(llCurrent->rotation) { + case getOrientation(0): + spcC2x = spcC1x; + spcC2y = spcC1y-2; + break; + case getOrientation(1): + spcC2x = spcC1x+2; + spcC2y = spcC1y; + break; + case getOrientation(2): + spcC2x = spcC1x; + spcC2y = spcC1y+2; + break; + case getOrientation(3): + spcC2x = spcC1x-2; + spcC2y = spcC1y; + break; + } + while (llNode != NULL) { + if ( (llNode->falling==0) && (llCurrent->falling==1) ) { + spcN1x = llNode->x; + spcN1y = llNode->y; + switch(llNode->rotation) { + case getOrientation(0): + spcN2x = spcN1x; + spcN2y = spcN1y-2; + break; + case getOrientation(1): + spcN2x = spcN1x+2; + spcN2y = spcN1y; + break; + case getOrientation(2): + spcN2x = spcN1x; + spcN2y = spcN1y+2; + break; + case getOrientation(3): + spcN2x = spcN1x-2; + spcN2y = spcN1y; + break; + } + if ( + ( (spcC1x==spcN1x) && (spcC1y==spcN1y) ) || + ( (spcC1x==spcN2x) && (spcC1y==spcN2y) ) || + ( (spcC2x==spcN2x) && (spcC2y==spcN2y) ) || + ( (spcC2x==spcN1x) && (spcC2y==spcN1y) ) + ){ + if ( fabs(llCurrent->height-(llNode->height+blockHeight)) <= TOLERANCE) { + + llCurrent->falling=0; + llCurrent->height=llNode->height+blockHeight; /* if this is missing then small errors build up until the model fails */ + if ( fabs(llCurrent->height-tb->highest) <= TOLERANCE+blockHeight ) { + tb->highest+=blockHeight; + } + } + } + } + llNode=llNode->next; + } + } + } + /* set location in space */ + glTranslatef(llCurrent->x,llCurrent->y,-llCurrent->height); + /* rotate */ + glRotatef(llCurrent->rotation, 0.0f, 0.0f, 1.0f); + if ((tb->followMode==0) && (llCurrent->next==NULL)) { + tb->blockNodeFollow = llCurrent; + tb->followMode=1; + } + llCurrent = llCurrent->next; + /* draw */ + glCallList(tb->block); + glPopMatrix(); /* restore state */ + } + if (mi->fps_p) do_fps (mi); + glFinish(); + + if (tb->highest>(5*maxFalling)) { drawCarpet=False; } + glXSwapBuffers(dpy, window); +} + + + +/* camera is in follow mode, work out where we should be looking */ +static void followBlock(ModeInfo *mi) { + GLfloat xLen,yLen,cx,cy,rangle,xTarget,yTarget; + topBlockSTATE *tb = &tbs[MI_SCREEN(mi)]; + cx=0;cy=0; + if ((tb->blockNodeFollow!=NULL) && (tb->followMode==1)){ + + if (tb->highest>tb->eyeLine) { tb->eyeLine+= ((tb->highest-tb->eyeLine)/100); } + /*tb->blockNodeFollow->color=1; only noticable if you set the colors to 1 */ + + if (tb->blockNodeFollow->height > tb->eyeZ) { tb->eyeZ+= ((tb->blockNodeFollow->height - tb->eyeZ)/100); } + if (tb->blockNodeFollow->height < tb->eyeZ) { tb->eyeZ-= ((tb->eyeZ - tb->blockNodeFollow->height)/100); } + + + /* when the scene is rotated we need to know where the block is in the 2 dimensional coordinates of the carpet area + (see http://www.jumpstation.co.uk/rotation/) + */ + + if (tb->followRadius==0) { + xLen = tb->blockNodeFollow->x-cx; + yLen = tb->blockNodeFollow->y-cy; + tb->followRadius=sqrt( (xLen*xLen) + (yLen*yLen) ); + tb->followAngle = (180/M_PI) * asin(xLen/tb->followRadius); + tb->followAngle = quadrantCorrection(tb->followAngle,(int)cx,(int)cy,(int)tb->blockNodeFollow->x,(int)tb->blockNodeFollow->y); + } + rangle = (tb->followAngle+tb->rotation) * M_PI /180; + xTarget = cos(rangle) * tb->followRadius + cx; + yTarget = sin(rangle) * tb->followRadius + cy; + if (tb->followAngle>360) { tb->followAngle=tb->followAngle-360; } + + if (xTarget < tb->eyeX) { tb->eyeX-= ((tb->eyeX - xTarget)/100); } + if (xTarget > tb->eyeX) { tb->eyeX+= ((xTarget - tb->eyeX)/100); } + + if (yTarget < tb->eyeY) { tb->eyeY-= ((tb->eyeY - yTarget)/100); } + if (yTarget > tb->eyeY) { tb->eyeY+= ((yTarget - tb->eyeY)/100); } + if (!tb->blockNodeFollow->falling) { + tb->followMode=0; + /*tb->blockNodeFollow->color=2; only noticable if you set the colors to 1 */ + tb->followRadius=0; + } + } + gluLookAt(camX, camY, camZ-tb->eyeLine, tb->eyeX, tb->eyeY, -tb->eyeZ,-1.0,0.0,0.0); +} + +/* each quater of the circle has to be adjusted for */ +static double quadrantCorrection(double angle,int cx,int cy,int x,int y) { + if ((x>=cx) && (y>=cy)) { + angle += (90-(angle-90) * 2); + } else if ((x>=cx) && (y<=cy)) { + angle += 90; + } else if ((x<=cx) && (y<=cy)) { + angle += 90; + } else if ((x<=cx) && (y>=cy)) { + angle += (90-(angle-90) * 2); + } + return(angle-180); +} + +/* if random chance then create a new falling block */ +static void generateNewBlock(ModeInfo *mi) { + NODE *llCurrent, *llTail; + GLfloat startOffx, startOffy; + int endOffx, endOffy; + topBlockSTATE *tb = &tbs[MI_SCREEN(mi)]; + if ( ((random() % spawn) == 1) && (tb->highestFallingplusheight-blockHeight)+tb->highest)) ) { + startOffx=0; + endOffx=0; + startOffy=0; + endOffy=0; + tb->numFallingBlocks++; + llTail = tb->blockNodeRoot; + if (llTail == NULL) { + if ((llCurrent = ((NODE*) malloc(sizeof(NODE)))) == NULL) { fprintf(stderr, "%s: out of memory.\n", progname); } + llTail = llCurrent; + tb->blockNodeRoot = llCurrent; + } else { + if (tb->numFallingBlocks>=maxFalling) { + /* recycle */ + llCurrent=llTail->next; + tb->blockNodeRoot=llCurrent->next; + } else { + if ((llCurrent = ((NODE*) malloc(sizeof(NODE)))) == NULL) { fprintf(stderr, "%s: out of memory..\n", progname); } + } + while (llTail->next != NULL) { llTail = llTail->next; } /* find last item in list */ + } + llCurrent->falling=1; + llCurrent->rotation=getOrientation(random() % 4); + if (llCurrent->rotation==getOrientation(0)) { + startOffx=1.0; + endOffx=0; + startOffy=3.0; + endOffy=-1; + } else if (llCurrent->rotation==getOrientation(1)) { + startOffx=1.0; + endOffx=-1; + startOffy=1.0; + endOffy=0; + } else if (llCurrent->rotation==getOrientation(2)) { + startOffx=1.0; + endOffx=0; + startOffy=3.0; + endOffy=-1; + } else if (llCurrent->rotation==getOrientation(3)) { + startOffx=5.0; + endOffx=-1; + startOffy=1.0; + endOffy=0; + } + + llCurrent->x=(startOffx-(tb->carpetLength/2)) + getLocation(random() % ((tb->carpetLength/2)+endOffx) ); + llCurrent->y=(startOffy-(tb->carpetLength/2)) + getLocation(random() % ((tb->carpetLength/2)+endOffy) ); + llCurrent->color=(random() % maxColors); + llCurrent->height=getHeight(tb->plusheight+tb->highest); + if (tb->numFallingBlocks>=maxFalling) { + tb->numFallingBlocks--; + tb->numFallingBlocks--; + } + llTail->next = llCurrent; + llTail = llCurrent; + llTail->next = NULL; + + } +} + +/* called at init this creates the 'carpet' display list item */ +static void buildCarpet(ModeInfo *mi) { + int i,c,x,y; + GLfloat color[4]; + int wire = MI_IS_WIREFRAME(mi); + topBlockSTATE *tb = &tbs[MI_SCREEN(mi)]; + GLUquadricObj *quadratic; + color[0] = 0.0f; + color[1] = 1.0f; + color[2] = 0.0f; + color[3] = 1.0f; + tb->carpet=glGenLists(1); /* only one */ + glNewList(tb->carpet,GL_COMPILE); + glPushMatrix(); /* save state */ + x=tb->carpetWidth; + y=tb->carpetLength; + if (wire) { glColor3fv(color); } + else { glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, color); } + /* draw carpet plane */ + glBegin( wire ? GL_LINE_LOOP : GL_QUADS ); + /* draw top */ + glNormal3f( 0, 0, -1 ); + glVertex3f(0.0,0.0,0.0); + glVertex3f(x,0.0,0.0); + glVertex3f(x,y,0.0); + glVertex3f(0.0,y,0.0); + if (wire) { glEnd(); } + else { + /* add edge pieces */ + /* side 1 */ + glNormal3f( 0, -1, 0 ); + glVertex3f(0.0,0.0,0.0); + glVertex3f(x,0.0,0.0); + glVertex3f(x,0,singleThick); + glVertex3f(0.0,0,singleThick); + /* side 2 */ + glNormal3f( -1, 0, 0 ); + glVertex3f(0.0,0.0,0.0); + glVertex3f(0,y,0.0); + glVertex3f(0,y,singleThick); + glVertex3f(0.0,0,singleThick); + /* side 3 */ + glNormal3f( 1, 0, 0 ); + glVertex3f(x,0.0,0.0); + glVertex3f(x,y,0.0); + glVertex3f(x,y,singleThick); + glVertex3f(x,0,singleThick); + /* side 4 */ + glNormal3f( 0, 1, 0 ); + glVertex3f(0,y,0.0); + glVertex3f(x,y,0.0); + glVertex3f(x,y,singleThick); + glVertex3f(0,y,singleThick); + } + glEnd(); + /* nipples */ + if (drawNipples) { + quadratic=gluNewQuadric(); /* Create A Pointer To The Quadric Object */ + gluQuadricNormals(quadratic, GLU_SMOOTH); /* Create Smooth Normals */ + gluQuadricTexture(quadratic, GL_TRUE); /* Create Texture Coords */ + glTranslatef(0.5f,0.5f,-.25); /* move to the cylinder center */ + for (c=0;cblock=glGenLists(1); /* only one */ + glNewList(tb->block,GL_COMPILE); + glPushMatrix(); /* save state */ + glRotatef(90, 0.0f, 1.0f, 0.0f); + /* base */ + polygonPlane(wire, 0,3,2,1,0); + polygonPlane(wire, 2,3,7,6,1); + polygonPlane(wire, 1,2,6,5,2); + polygonPlane(wire, 4,5,6,7,3); + polygonPlane(wire, 0,1,5,4,4); + if (drawNipples) { + /* nipples */ + /* draw 8 cylinders each with a disk cap */ + quadratic=gluNewQuadric(); /* Create A Pointer To The Quadric Object */ + gluQuadricNormals(quadratic, GLU_SMOOTH); /* Create Smooth Normals */ + glRotatef(90, 0.0f, 1.0f, 0.0f); /* 'aim' the pointer ready for the cylinder */ + glTranslatef(0.5f,0.5f,0.99f); /* move to the cylinder center */ + for (c=0;c<2;c++) { + for (i=0;i<4;i++) { + gluCylinder(quadratic, cylSize, cylSize, 0.25f, resolution, resolution); /* quad, radius(bottom, radius(top), height, subdivisions (around Z), subdevisions (along Z) */ + glTranslatef(0.0f,0.0f,0.25f); /* move to the cylinder cap */ + gluDisk(quadratic, 0.0f, cylSize, resolution, resolution ); /* inner size (cd hole), outer size (radius), subdivisions radial, subdivisions circular */ + glTranslatef(0.0f,0.0f,-0.25f); /* move back from the cylinder cap */ + if (c==0) { + glTranslatef(0.0f,-1.0f,0.0f); /* move to the next cylinder center (forward) */ + } else { + glTranslatef(0.0f,1.0f,0.0f); /* move to the next cylinder center (backward) */ + } + } + glTranslatef(-1.0f,1.0f,0.0f); /* move to the cylinder center */ + } + /* udders */ + /* 3 cylinders on the underside */ + glTranslatef(1.5f,-2.5f,-1.5f); /* move to the center, under the top of the brick */ + for (c=0;c<3;c++) { + gluCylinder(quadratic, uddSize, uddSize, 1.5f, resolution, resolution); /* quad, radius(bottom, radius(top), height, subdivisions (around Z), subdevisions (along Z) */ + glTranslatef(0.0f,-1.0f,0.0f); /* move to the center */ + } + } + glPopMatrix(); /* restore state */ + glEndList(); +} + +/* + rip off of the builBlock() function creating the GL compilied pointer "block" but only creates two spheres. + spheres are created with unit_sphere from spheres.h to allow wire frame +*/ +static void buildBlobBlock(ModeInfo *mi) { + int wire = MI_IS_WIREFRAME(mi); + topBlockSTATE *tb = &tbs[MI_SCREEN(mi)]; + tb->block=glGenLists(1); /* only one */ + glNewList(tb->block,GL_COMPILE); + glPushMatrix(); + glScalef(1.4,1.4,1.4); + unit_sphere (resolution/2,resolution, wire); + glPopMatrix(); + glTranslatef(0.0f,-2.0f,0.0f); + glScalef(1.4,1.4,1.4); + unit_sphere (resolution/2,resolution, wire); + glEndList(); +} + + +/* handle input events or not if daemon running the show */ +ENTRYPOINT Bool +topBlock_handle_event (ModeInfo *mi, XEvent *event) { + topBlockSTATE *tb = &tbs[MI_SCREEN(mi)]; + if (event->xany.type == KeyPress) { + KeySym keysym; + char c = 0; + XLookupString (&event->xkey, &c, 1, &keysym, 0); + if (c == 'a') { + tb->eyeX++; + return True; + } else if (c == 'z') { + tb->eyeX--; + return True; + } else if (c == 's') { + tb->eyeY--; + return True; + } else if (c == 'x') { + tb->eyeY++; + return True; + } else if (c == 'd') { + tb->eyeZ++; + return True; + } else if (c == 'c') { + tb->eyeZ--; + return True; + } else if (c == 'f') { + camX++; + return True; + } else if (c == 'v') { + camX--; + return True; + } else if (c == 'g') { + camY++; + return True; + } else if (c == 'b') { + camY--; + return True; + } else if (c == 'h') { + camZ++; + return True; + } else if (c == 'n') { + camZ--; + return True; + } else if (c == 'r') { + tb->rotation++; + return True; + } + } + if (event->xany.type == ButtonPress && + event->xbutton.button == Button1) + { + tb->button_down_p = True; + gltrackball_start (tb->trackball, + event->xbutton.x, event->xbutton.y, + MI_WIDTH (mi), MI_HEIGHT (mi)); + return True; + } + else if (event->xany.type == ButtonRelease && + event->xbutton.button == Button1) + { + tb->button_down_p = False; + return True; + } + else if (event->xany.type == ButtonPress && + (event->xbutton.button == Button4 || + event->xbutton.button == Button5)) + { + gltrackball_mousewheel (tb->trackball, event->xbutton.button, 10, + !!event->xbutton.state); + return True; + } + else if (event->xany.type == MotionNotify && + tb->button_down_p) + { + gltrackball_track (tb->trackball, + event->xmotion.x, event->xmotion.y, + MI_WIDTH (mi), MI_HEIGHT (mi)); + return True; + } + return False; +} + +/* this is tha main change for v5 compatability and acompanying ENTRYPOINTS */ +XSCREENSAVER_MODULE_2 ("topBlock", topblock, topBlock) + +#endif /* USE_GL */ diff --git a/hacks/glx/topblock.h b/hacks/glx/topblock.h index 51b3d442..1a66c5d2 100644 --- a/hacks/glx/topblock.h +++ b/hacks/glx/topblock.h @@ -1,45 +1,45 @@ -/* topblock - openGL based hack */ - -static void buildCarpet(ModeInfo *); -static void polygonPlane(int, int, int, int, int ,int); -static void buildBlock(ModeInfo *); -static void generateNewBlock(ModeInfo *); -static void followBlock(ModeInfo *); -static void buildBlobBlock(ModeInfo *); -static double quadrantCorrection(double,int,int,int,int); - -/* this structure holds all the attributes about a block */ -typedef struct blockNode { - int color; /* indexed */ - int rotation; /* indexed: 0=S-N, 1=W-E, 2=N-S, 3=E-W */ - GLfloat height; - GLfloat x; - GLfloat y; - int falling; - struct blockNode *next; -} NODE; - - -/* some handy macros and definitions */ -#define blockHeight 1.49f -#define getHeight(a) (a * blockHeight) - -#define getOrientation(a) (a * 90) - -#define blockWidth 2.0f -#define getLocation(a) (a * blockWidth) - -#define TOLLERANCE 0.1 - -#define cylSize 0.333334f -#define uddSize 0.4f -#define singleThick 0.29 /* defines the thickness of the carpet */ - - - - - - - - - +/* topblock - openGL based hack */ + +static void buildCarpet(ModeInfo *); +static void polygonPlane(int, int, int, int, int ,int); +static void buildBlock(ModeInfo *); +static void generateNewBlock(ModeInfo *); +static void followBlock(ModeInfo *); +static void buildBlobBlock(ModeInfo *); +static double quadrantCorrection(double,int,int,int,int); + +/* this structure holds all the attributes about a block */ +typedef struct blockNode { + int color; /* indexed */ + int rotation; /* indexed: 0=S-N, 1=W-E, 2=N-S, 3=E-W */ + GLfloat height; + GLfloat x; + GLfloat y; + int falling; + struct blockNode *next; +} NODE; + + +/* some handy macros and definitions */ +#define blockHeight 1.49f +#define getHeight(a) (a * blockHeight) + +#define getOrientation(a) (a * 90) + +#define blockWidth 2.0f +#define getLocation(a) (a * blockWidth) + +#define TOLERANCE 0.1f + +#define cylSize 0.333334f +#define uddSize 0.4f +#define singleThick 0.29 /* defines the thickness of the carpet */ + + + + + + + + + diff --git a/hacks/goop.c b/hacks/goop.c index 4241950c..b7670e7c 100644 --- a/hacks/goop.c +++ b/hacks/goop.c @@ -258,9 +258,11 @@ make_layer (Display *dpy, Window window, int width, int height, int nblobs) blob_max = (width < height ? width : height) / 2; blob_min = (blob_max * 2) / 3; - for (i = 0; i < layer->nblobs; i++) + for (i = 0; i < layer->nblobs; i++){ + int j = blob_max - blob_min; layer->blobs[i] = make_blob (dpy, width, height, - (random() % (blob_max-blob_min)) + blob_min); + (j ? random() % j : 0) + blob_min); + } layer->pixmap = XCreatePixmap (dpy, window, width, height, 1); layer->gc = XCreateGC (dpy, layer->pixmap, 0, &gcv); diff --git a/hacks/imsmap.man b/hacks/imsmap.man index 4c29db86..efedb516 100644 --- a/hacks/imsmap.man +++ b/hacks/imsmap.man @@ -3,7 +3,7 @@ imsmap - generate fractal maps .SH SYNOPSIS .B imsmap -[\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install] [\-visual \fIvisual\fP] [\-ncolors \fIint\fP] [\-delay \fIseconds\fP] [\-iterations \fIint\fP] [\-mode h|s|v|random] +[\-display \fIhost:display.screen\fP] [\-foreground \fIcolor\fP] [\-background \fIcolor\fP] [\-window] [\-root] [\-mono] [\-install] [\-visual \fIvisual\fP] [\-ncolors \fIint\fP] [\-delay \fIseconds\fP] [\-delay2 \fImicroseconds\fP] [\-iterations \fIint\fP] [\-mode h|s|v|random] .SH DESCRIPTION The \fIimsmap\fP program generates map or cloud-like patterns. It looks quite different in monochrome and color. @@ -33,6 +33,9 @@ How many colors to use. Default 50. .B \-delay \fIinteger\fP How long to delay between images. Default 10 seconds. .TP 8 +.B \-delay2 \fIinteger\fP +How long to delay between bitmaps. Default 200000 (0.2 seconds). +.TP 8 .B \-iterations \fIinteger\fP A measure of the resolution of the resultant image, from 0 to 7. Default 7. .TP 8 diff --git a/hacks/interaggregate.c b/hacks/interaggregate.c index 441bd846..cd063f75 100644 --- a/hacks/interaggregate.c +++ b/hacks/interaggregate.c @@ -352,11 +352,11 @@ static inline void drawPoint(int x, int y, unsigned long color, double intensity { unsigned long c; - if ( x >= f->width ) x -= f->width; - else if ( x < 0 ) x += f->width; + while ( x >= f->width ) x -= f->width; + while ( x < 0 ) x += f->width; - if ( y >= f->height ) y -= f->height; - else if ( y < 0 ) y += f->height; + while ( y >= f->height ) y -= f->height; + while ( y < 0 ) y += f->height; /* if ( in_bounds(f, x, y) ) ... */ @@ -566,7 +566,7 @@ static void build_field(Display *dpy, Window window, XWindowAttributes xgwa, GC { if (i < base_orbits ) { - if ( f->base_on_center ) + if ( f->base_on_center ) circle->center = &f->center_of_universe; else { @@ -719,7 +719,9 @@ static void drawIntersections(Display *dpy, Window window, GC fgc, struct field double d, dsqr, dx, dy; Circle *c2 = f->circles + j; +#ifdef TIME_ME ++f->possible_intersections; +#endif dx = c2->x - c1->x; dy = c2->y - c1->y; @@ -745,7 +747,9 @@ static void drawIntersections(Display *dpy, Window window, GC fgc, struct field * intersection */ +#ifdef TIME_ME ++f->intersection_count; +#endif /* unit vector in direction of c1 to c2 */ bx = dx / d; diff --git a/hacks/jigsaw.c b/hacks/jigsaw.c index dce647bc..aad5710d 100644 --- a/hacks/jigsaw.c +++ b/hacks/jigsaw.c @@ -225,7 +225,7 @@ make_puzzle_pixmap_pair (Display *dpy, Drawable d, int size, int bw, int *x_ret, int *y_ret, Pixmap *mask_ret, Pixmap *outline_ret) { - int w = size * 3; + int w = (size ? size * 3 : 2); int h = w; int x = size; int y = size; @@ -404,8 +404,8 @@ jigsaw_init_1 (struct state *st) make_puzzle_pixmaps (st); cmap = xgwa.colormap; - st->width = xgwa.width / st->piece_width; - st->height = xgwa.height / st->piece_height; + st->width = (st->piece_width ? xgwa.width / st->piece_width : 0); + st->height = (st->piece_height ? xgwa.height / st->piece_height : 0); st->x_border = (xgwa.width - (st->width * st->piece_width)) / 2; st->y_border = (xgwa.height - (st->height * st->piece_width)) / 2; diff --git a/hacks/julia.c b/hacks/julia.c index 6a7323de..8e12cd8c 100644 --- a/hacks/julia.c +++ b/hacks/julia.c @@ -20,6 +20,7 @@ static const char sccsid[] = "@(#)julia.c 4.03 97/04/10 xlockmore"; * other special, indirect and consequential damages. * * Revision History: + * 10-Jun-06: j.grahl@ucl.ac.uk: tweaked functions for parameter of Julia set * 28-May-97: jwz@jwz.org: added interactive frobbing with the mouse. * 10-May-97: jwz@jwz.org: turned into a standalone program. * 02-Dec-95: snagged boilerplate from hop.c @@ -159,6 +160,7 @@ incr(ModeInfo * mi, juliastruct * jp) else { NOTRACK: +#if 0 jp->cr = 1.5 * (sin(M_PI * (jp->inc / 300.0)) * sin(jp->inc * M_PI / 200.0)); jp->ci = 1.5 * (cos(M_PI * (jp->inc / 300.0)) * @@ -166,6 +168,15 @@ incr(ModeInfo * mi, juliastruct * jp) jp->cr += 0.5 * cos(M_PI * jp->inc / 400.0); jp->ci += 0.5 * sin(M_PI * jp->inc / 400.0); +#else + jp->cr = 1.5 * (sin(M_PI * (jp->inc / 290.0)) * + sin(jp->inc * M_PI / 210.0)); + jp->ci = 1.5 * (cos(M_PI * (jp->inc / 310.0)) * + cos(jp->inc * M_PI / 190.0)); + + jp->cr += 0.5 * cos(M_PI * jp->inc / 395.0); + jp->ci += 0.5 * sin(M_PI * jp->inc / 410.0); +#endif } } diff --git a/hacks/kaleidescope.c b/hacks/kaleidescope.c index 8c727317..c2b11ec1 100644 --- a/hacks/kaleidescope.c +++ b/hacks/kaleidescope.c @@ -228,10 +228,10 @@ init_ksegment (GLOBAL *g, OBJECT *obj) { /* Give the segment some random values */ - ((Ksegment *)obj->cur)->x1 = random() % g->xoff; - ((Ksegment *)obj->cur)->y1 = random() % g->yoff; - ((Ksegment *)obj->cur)->x2 = random() % g->xoff; - ((Ksegment *)obj->cur)->y2 = random() % g->yoff; + ((Ksegment *)obj->cur)->x1 = (g->xoff ? random() % g->xoff : 0); + ((Ksegment *)obj->cur)->y1 = (g->yoff ? random() % g->yoff : 0); + ((Ksegment *)obj->cur)->x2 = (g->xoff ? random() % g->xoff : 0); + ((Ksegment *)obj->cur)->y2 = (g->yoff ? random() % g->yoff : 0); } diff --git a/hacks/noseguy.c b/hacks/noseguy.c index f6502bef..0db99601 100644 --- a/hacks/noseguy.c +++ b/hacks/noseguy.c @@ -196,6 +196,17 @@ move (struct state *st) st->move_length = st->Width / 100 + random() % 90, tries = 8; else tries--; + /* There maybe the case that we won't be able to exit from + this routine (especially when the geometry is too small)!! + + Ensure that we can exit from this routine. + */ +#if 1 + if (!tries && (st->move_length <= 1)) { + st->move_length = 1; + break; + } +#endif switch (random() % 8) { case 0: @@ -239,7 +250,8 @@ move (struct state *st) } } while (!st->move_dir); } - walk(st, st->move_dir); + if (st->move_dir) + walk(st, st->move_dir); --st->move_length; st->next_fn = move; } diff --git a/hacks/petri.c b/hacks/petri.c index 84722bbf..275fb42c 100644 --- a/hacks/petri.c +++ b/hacks/petri.c @@ -121,8 +121,8 @@ struct state { }; -#define cell_x(c) (((c) - st->arr) % st->arr_width) -#define cell_y(c) (((c) - st->arr) / st->arr_width) +#define cell_x(c) (st->arr_width ? ((c) - st->arr) % st->arr_width : 0) +#define cell_y(c) (st->arr_width ? ((c) - st->arr) / st->arr_width : 0) static int random_life_value (struct state *st) @@ -437,8 +437,8 @@ setup_display (struct state *st) } } - st->xSize = st->windowWidth / st->arr_width; - st->ySize = st->windowHeight / st->arr_height; + st->xSize = st->arr_width ? st->windowWidth / st->arr_width : 0; + st->ySize = st->arr_height ? st->windowHeight / st->arr_height : 0; if (st->xSize > st->ySize) { st->xSize = st->ySize; @@ -482,6 +482,9 @@ static void setup_arr (struct state *st) XFillRectangle (st->dpy, st->window, st->coloredGCs[0], 0, 0, st->windowWidth, st->windowHeight); + + if (!st->arr_width) st->arr_width = 1; + if (!st->arr_height) st->arr_height = 1; st->arr = (cell *) calloc (sizeof(cell), st->arr_width * st->arr_height); if (!st->arr) @@ -494,7 +497,7 @@ static void setup_arr (struct state *st) for (y = 0; y < st->arr_height; y++) { int row = y * st->arr_width; - for (x = 0; x < st->arr_width; x++) + for (x = 0; x < st->arr_width; x++) { st->arr[row+x].speed = 0.0; st->arr[row+x].growth = 0.0; @@ -586,8 +589,8 @@ static void randblip (struct state *st, int doit) while (n--) { - int x = random () % st->arr_width; - int y = random () % st->arr_height; + int x = st->arr_width ? random () % st->arr_width : 0; + int y = st->arr_height ? random () % st->arr_height : 0; int c; FLOAT s; if (b) @@ -597,7 +600,7 @@ static void randblip (struct state *st, int doit) } else { - c = (random () % (st->count-1)) + 1; + c = ((st->count - 1) ? random () % (st->count-1) : 0) + 1; s = RAND_FLOAT * (st->maxlifespeed - st->minlifespeed) + st->minlifespeed; } newcell (st, &st->arr[y * st->arr_width + x], c, s); @@ -637,7 +640,7 @@ static void update (struct state *st) int x = cell_x(a) + coords->x; int y = cell_y(a) + coords->y; coords++; - + if (x < 0) x = st->arr_width - 1; else if (x >= st->arr_width) x = 0; @@ -650,9 +653,9 @@ static void update (struct state *st) if (a->growth >= st->diaglim) killcell (st, a); } - + randblip (st, (st->head->next) == st->tail); - + for (a = st->head->next; a != st->tail; a = a->next) { if (a->isnext) diff --git a/hacks/piecewise.c b/hacks/piecewise.c index 09fc4b62..0053eff2 100644 --- a/hacks/piecewise.c +++ b/hacks/piecewise.c @@ -358,7 +358,7 @@ static circle *init_circles(struct state *st, int n, int w, int h) dr = floor(maxradius * h) - r0 + 1; for (i=0;i 0) ? random() % dr : 0); c[i].x = c[i].r + frand(w - 1 - 2 * c[i].r); c[i].y = c[i].r + frand(h - 1 - 2 * c[i].r); c[i].visible = random() & 1; diff --git a/hacks/popsquares.c b/hacks/popsquares.c index 6c26165f..0bea52ef 100644 --- a/hacks/popsquares.c +++ b/hacks/popsquares.c @@ -83,8 +83,8 @@ popsquares_init (Display *dpy, Window window) st->sw = st->xgwa.width / st->subdivision; st->sh = st->xgwa.height / st->subdivision; - st->gw = st->xgwa.width / st->sw; - st->gh = st->xgwa.height / st->sh; + st->gw = st->sw ? st->xgwa.width / st->sw : 0; + st->gh = st->sh ? st->xgwa.height / st->sh : 0; st->nsquares = st->gw * st->gh; gcv.foreground = fg.pixel; diff --git a/hacks/ripples.c b/hacks/ripples.c index 1fd3831f..153f620e 100644 --- a/hacks/ripples.c +++ b/hacks/ripples.c @@ -757,10 +757,13 @@ add_drop(struct state *st, ripple_mode mode, int drop) case ripple_blob: { double power; + int tmp_i, tmp_j; power = drop_dist[random() % (sizeof(drop_dist)/sizeof(drop_dist[0]))]; /* clumsy */ dheight = (int)(drop * (power + 0.01)); - newx = radius + border + (random() % (int)(st->width - 2*border - 2*radius*power)); - newy = radius + border + (random() % (int)(st->height - 2*border - 2*radius*power)); + tmp_i = (int)(st->width - 2*border - 2*radius*power); + tmp_j = (int)(st->height - 2*border - 2*radius*power); + newx = radius + border + ((tmp_i > 0) ? random() % tmp_i : 0); + newy = radius + border + ((tmp_j > 0) ? random() % tmp_j : 0); add_circle_drop(st, newx, newy, radius, dheight); } break; @@ -770,12 +773,15 @@ add_drop(struct state *st, ripple_mode mode, int drop) int x; int cx, cy; short *buf = (random()&1) ? st->bufferA : st->bufferB; + int tmp_i, tmp_j; radius = (1 + (random() % 5)) * (1 + (random() % 5)); dheight = drop / 128; if (random() & 1) dheight = -dheight; - newx = radius + border + (random() % (st->width - 2*border - 2*radius)); - newy = radius + border + (random() % (st->height - 2*border - 2*radius)); + tmp_i = st->width - 2*border - 2*radius; + tmp_j = st->height - 2*border - 2*radius; + newx = radius + border + ((tmp_i > 0) ? random() % tmp_i : 0); + newy = radius + border + ((tmp_j > 0) ? random() % tmp_j : 0); x = newy * st->width + newx; for (cy = -radius; cy <= radius; cy++) for (cx = -radius; cx <= radius; cx++) diff --git a/hacks/rotzoomer.c b/hacks/rotzoomer.c index 52b382f6..29a56627 100644 --- a/hacks/rotzoomer.c +++ b/hacks/rotzoomer.c @@ -176,8 +176,8 @@ reset_zoom (struct state *st, struct zoom_area *za) za->ww = st->width - za->w; za->hh = st->height - za->h; - za->x = (random() % za->ww); - za->y = (random() % za->hh); + za->x = (za->ww ? random() % za->ww : 0); + za->y = (za->hh ? random() % za->hh : 0); za->dx = ((2 * (random() & 1)) - 1) * (100 + random() % 300); za->dy = ((2 * (random() & 1)) - 1) * (100 + random() % 300); @@ -269,8 +269,9 @@ init_hack (struct state *st) st->zoom_box[i] = create_zoom (st); } - memcpy (st->buffer_map->data, st->orig_map->data, - st->height * st->buffer_map->bytes_per_line); + if (st->height && st->orig_map->data) + memcpy (st->buffer_map->data, st->orig_map->data, + st->height * st->buffer_map->bytes_per_line); DisplayImage(st, 0, 0, st->width, st->height); } diff --git a/hacks/screenhack.c b/hacks/screenhack.c index f4db428a..8ea025d0 100644 --- a/hacks/screenhack.c +++ b/hacks/screenhack.c @@ -105,10 +105,6 @@ #include "screenhackI.h" #include "version.h" #include "vroot.h" -#include "change_locale.h" -#if HAVE_SETLOCALE -#include -#endif #ifndef _XSCREENSAVER_VROOT_H_ # error Error! You have an old version of vroot.h! Check -I args. @@ -162,27 +158,6 @@ static XrmOptionDescRec *merged_options; static int merged_options_size; static char **merged_defaults; -static void -reset_locale (void) -{ -#ifdef HAVE_SETLOCALE - const char *current_locale = setlocale(LC_ALL, ""); - const char *cmp_locale; - int j = 0; - - while ((cmp_locale = change_locale[j])) - { - if (!strncmp(current_locale, cmp_locale, strlen(cmp_locale))) - { - setlocale(LC_ALL, "C"); - break; - } - j++; - } -#endif /* HAVE_SETLOCALE */ -} - - static void merge_options (void) { @@ -738,7 +713,6 @@ main (int argc, char **argv) char version[255]; fix_fds(); - reset_locale(); progname = argv[0]; /* reset later */ progclass = ft->progclass; diff --git a/hacks/slidescreen.c b/hacks/slidescreen.c index fe4d24ae..42d3fefc 100644 --- a/hacks/slidescreen.c +++ b/hacks/slidescreen.c @@ -326,7 +326,8 @@ slidescreen_draw (Display *dpy, Window window, void *closure) /* alternate between horizontal and vertical slides */ /* note that draw_dir specifies the direction the _hole_ moves, not the tiles */ if (st->draw_last == VERTICAL) { - if ((st->draw_rnd = random () % (st->grid_w - 1)) < st->hole_x) { + if (((st->grid_w > 1) ? st->draw_rnd = random () % (st->grid_w - 1) : 0) + < st->hole_x) { st->draw_dx = -1; st->draw_dir = LEFT; st->hole_x -= st->draw_rnd; } else { st->draw_dx = 1; st->draw_dir = RIGHT; st->draw_rnd -= st->hole_x; @@ -334,7 +335,8 @@ slidescreen_draw (Display *dpy, Window window, void *closure) st->draw_dy = 0; st->draw_w = st->draw_size = st->draw_rnd + 1; st->draw_h = 1; st->draw_last = HORIZONTAL; } else { - if ((st->draw_rnd = random () % (st->grid_h - 1)) < st->hole_y) { + if (((st->grid_h > 1) ? st->draw_rnd = random () % (st->grid_h - 1) : 0) + < st->hole_y) { st->draw_dy = -1; st->draw_dir = UP; st->hole_y -= st->draw_rnd; } else { st->draw_dy = 1; st->draw_dir = DOWN; st->draw_rnd -= st->hole_y; diff --git a/hacks/squiral.c b/hacks/squiral.c index dbde586f..3e13116e 100644 --- a/hacks/squiral.c +++ b/hacks/squiral.c @@ -198,10 +198,12 @@ squiral_draw (Display *dpy, Window window, void *closure) memset(&st->fill[(st->height-st->inclear-1)*st->width], 0, sizeof(int)*st->width); st->inclear++; XDrawLine(st->dpy, st->window, st->erase_gc, 0, st->inclear, st->width-1, st->inclear); - memset(&st->fill[st->inclear*st->width], 0, sizeof(int)*st->width); + if (st->inclear < st->height) + memset(&st->fill[st->inclear*st->width], 0, sizeof(int)*st->width); XDrawLine(st->dpy, st->window, st->erase_gc, 0, st->height-st->inclear-1, st->width-1, st->height-st->inclear-1); - memset(&st->fill[(st->height-st->inclear-1)*st->width], 0, sizeof(int)*st->width); + if (st->height - st->inclear >= 1) + memset(&st->fill[(st->height-st->inclear-1)*st->width], 0, sizeof(int)*st->width); st->inclear++; if(st->inclear>st->height/2) st->inclear=st->height; } diff --git a/hacks/starfish.c b/hacks/starfish.c index f013482b..4390b2da 100644 --- a/hacks/starfish.c +++ b/hacks/starfish.c @@ -345,6 +345,8 @@ reset_starfish (struct state *st) if (st->colors) free (st->colors); st->colors = 0; + XFreeGC (st->dpy, st->gc); + st->gc = 0; } st->ncolors = get_integer_resource (st->dpy, "colors", "Colors"); @@ -479,6 +481,8 @@ starfish_draw (Display *dpy, Window window, void *closure) s = reset_starfish (st); else s = make_window_starfish (st); + + st->starfish = s; } } diff --git a/hacks/twang.c b/hacks/twang.c index ce22944f..79bbd8f7 100644 --- a/hacks/twang.c +++ b/hacks/twang.c @@ -554,8 +554,8 @@ static void setupModel (struct state *st) st->tileSize = st->windowHeight / 2; } - st->columns = st->windowWidth / st->tileSize; - st->rows = st->windowHeight / st->tileSize; + st->columns = st->tileSize ? st->windowWidth / st->tileSize : 0; + st->rows = st->tileSize ? st->windowHeight / st->tileSize : 0; if ((st->maxColumns != 0) && (st->columns > st->maxColumns)) { diff --git a/hacks/vidwhacker b/hacks/vidwhacker index aa7deb38..14964951 100755 --- a/hacks/vidwhacker +++ b/hacks/vidwhacker @@ -1,5 +1,5 @@ #!/usr/bin/perl -w -# vidwhacker, for xscreensaver. Copyright (c) 1998-2005 Jamie Zawinski. +# vidwhacker, for xscreensaver. Copyright (c) 1998-2006 Jamie Zawinski. # # Permission to use, copy, modify, distribute, and sell this software and its # documentation for any purpose is hereby granted without fee, provided that @@ -21,7 +21,7 @@ use diagnostics; use strict; my $progname = $0; $progname =~ s@.*/@@g; -my $version = q{ $Revision: 1.28 $ }; $version =~ s/^[^0-9]+([0-9.]+).*$/$1/; +my $version = q{ $Revision: 1.29 $ }; $version =~ s/^[^0-9]+([0-9.]+).*$/$1/; my $verbose = 0; my $use_stdin = 0; @@ -479,6 +479,12 @@ sub main() { read_config; + # sanity checking - is pbm installed? + # (this is a non-exhaustive but representative list) + foreach ("ppmtopgm", "pgmenhance", "pnminvert", "pnmarith", "pnmdepth") { + which ($_) || error "$_ not found on \$PATH."; + } + if (!$use_stdout) { $_ = `xdpyinfo 2>&-`; ($screen_width) =~ m/ dimensions: +(\d+)x(\d+) pixels/; diff --git a/hacks/xflame.c b/hacks/xflame.c index 717689ba..04b82c1a 100644 --- a/hacks/xflame.c +++ b/hacks/xflame.c @@ -607,6 +607,10 @@ loadBitmap(struct state *st, int *w, int *h) { char *bitmap_name = get_string_resource (st->dpy, "bitmap", "Bitmap"); +#ifdef HAVE_COCOA + bitmap_name = "(default)"; /* #### always use builtin */ +#endif /* HAVE_COCOA */ + if (!bitmap_name || !*bitmap_name || !strcmp(bitmap_name, "none")) diff --git a/hacks/xlockmore.c b/hacks/xlockmore.c index 2fadd794..60184692 100644 --- a/hacks/xlockmore.c +++ b/hacks/xlockmore.c @@ -441,7 +441,7 @@ xlockmore_init (Display *dpy, Window window, mi->size = get_integer_resource (dpy, "size", "Int"); mi->threed = get_boolean_resource (dpy, "use3d", "Boolean"); - mi->threed_delta = get_float_resource (dpy, "delta3d", "Boolean"); + mi->threed_delta = get_float_resource (dpy, "delta3d", "Float"); mi->threed_right_color = get_pixel_resource (dpy, mi->xgwa.colormap, "right3d", "Color"); mi->threed_left_color = get_pixel_resource (dpy, diff --git a/intltool-update.in b/intltool-update.in index 43edc021..2eae87b4 100644 --- a/intltool-update.in +++ b/intltool-update.in @@ -415,6 +415,10 @@ sub generate_headers if (/\.($xml_extension|$ini_extension)$/ || /^\[/){ $_ =~ s/^\[[^\[].*]\s*//; my $filename = "../$_"; + my $srcdir = $ENV{'top_srcdir'}; + if ($srcdir){ + $filename="$srcdir/$_" ; + }; if ($VERBOSE){ system($EXTRACT, "--update", "--type=$gettext_type", $filename); @@ -435,6 +439,12 @@ sub generate_po_template move ("POTFILES.in", "POTFILES.in.old"); + my $srcdir = $ENV{'top_srcdir'}; + my $adddirectory = "--directory=." ; + if ($srcdir){ + $adddirectory = "--directory=$srcdir"; + } + open INFILE, "POTFILES.in"; while () { @@ -447,6 +457,7 @@ sub generate_po_template system ("xgettext", "--default-domain\=$MODULE", "--directory\=\.\.", + "$adddirectory" , "--add-comments", "--keyword\=\_", "--keyword\=N\_", diff --git a/po/Makefile.in.in b/po/Makefile.in.in index e03fd79f..c2e15de5 100644 --- a/po/Makefile.in.in +++ b/po/Makefile.in.in @@ -192,8 +192,8 @@ all-no: $(srcdir)/$(GETTEXT_PACKAGE).pot: $(POTFILES) @INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) ; \ export INTLTOOL_EXTRACT ; \ - echo $(GENPOT) ; \ - $(GENPOT) + echo top_srcdir=$(top_srcdir) $(GENPOT) ; \ + top_srcdir=$(top_srcdir) $(GENPOT) install-strip: install @@ -292,7 +292,7 @@ generate_potfiles_in: @tmp=po.$$$$ ; \ file=POTFILES.in ; \ ( cd $(top_srcdir); \ - echo "# Auto-generated: `date`" ; \ + echo "# Auto-generated: `LANG=C date`" ; \ ( grep -l '_("' driver/*.[ch] ; \ ls driver/*.glade2 \ driver/*.desktop.in \ @@ -320,6 +320,9 @@ update-po: Makefile for cat in $$catalogs; do \ cat=`basename $$cat`; \ lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \ + if [ ! -f $$lang.po ] ; then \ + cp $(srcdir)/$$lang.po . ; \ + fi ; \ cp $$lang.po $$lang.old.po; \ echo $(MSGMERGE) $$lang; \ if $(MSGMERGE) $$lang >/dev/null 2>&1; then \ diff --git a/po/POTFILES.in b/po/POTFILES.in index 5ed45090..7d432989 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -1,4 +1,4 @@ -# Auto-generated: Tue May 23 16:01:41 PDT 2006 +# Auto-generated: Mon Sep 18 19:36:43 PDT 2006 driver/demo-Gtk-conf.c driver/demo-Gtk-support.c driver/demo-Gtk-widgets.c diff --git a/po/ca.po b/po/ca.po index 3aaedbb5..7fc5724f 100644 --- a/po/ca.po +++ b/po/ca.po @@ -2145,7 +2145,7 @@ msgid "Bouboule" msgstr "" #: hacks/config/bouboule.xml.h:2 hacks/config/rocks.xml.h:3 -msgid "Do Red/Blue 3D seperation" +msgid "Do Red/Blue 3D separation" msgstr "" #: hacks/config/bouboule.xml.h:7 @@ -6034,27 +6034,27 @@ msgid "Fertility" msgstr "" #: hacks/config/petri.xml.h:12 -msgid "Maxium Lifespan" +msgid "Maximum Lifespan" msgstr "" #: hacks/config/petri.xml.h:13 -msgid "Maxium Rate of Death" +msgid "Maximum Rate of Death" msgstr "" #: hacks/config/petri.xml.h:14 -msgid "Maxium Rate of Growth" +msgid "Maximum Rate of Growth" msgstr "" #: hacks/config/petri.xml.h:15 -msgid "Minium Lifespan" +msgid "Minimum Lifespan" msgstr "" #: hacks/config/petri.xml.h:16 -msgid "Minium Rate of Death" +msgid "Minimum Rate of Death" msgstr "" #: hacks/config/petri.xml.h:17 -msgid "Minium Rate of Growth" +msgid "Minimum Rate of Growth" msgstr "" #: hacks/config/petri.xml.h:18 @@ -7088,7 +7088,7 @@ msgid "RD-Bomb" msgstr "" #: hacks/config/rd-bomb.xml.h:15 -msgid "Reaction/Difusion" +msgid "Reaction/Diffusion" msgstr "" #: hacks/config/rd-bomb.xml.h:16 diff --git a/po/da.po b/po/da.po index c07a09a3..1466d37f 100644 --- a/po/da.po +++ b/po/da.po @@ -2347,7 +2347,7 @@ msgid "Bouboule" msgstr "Bouboule" #: hacks/config/bouboule.xml.h:2 hacks/config/rocks.xml.h:3 -msgid "Do Red/Blue 3D seperation" +msgid "Do Red/Blue 3D separation" msgstr "Brug rød/blÃ¥ 3d-separation" #: hacks/config/bouboule.xml.h:7 @@ -6692,27 +6692,27 @@ msgid "Fertility" msgstr "Fertilitet" #: hacks/config/petri.xml.h:12 -msgid "Maxium Lifespan" +msgid "Maximum Lifespan" msgstr "Maksimal levetid" #: hacks/config/petri.xml.h:13 -msgid "Maxium Rate of Death" +msgid "Maximum Rate of Death" msgstr "Maksimal dødelighed" #: hacks/config/petri.xml.h:14 -msgid "Maxium Rate of Growth" +msgid "Maximum Rate of Growth" msgstr "Maksimal reproduktion" #: hacks/config/petri.xml.h:15 -msgid "Minium Lifespan" +msgid "Minimum Lifespan" msgstr "Minimal levetid" #: hacks/config/petri.xml.h:16 -msgid "Minium Rate of Death" +msgid "Minimum Rate of Death" msgstr "Minimal dødelighed" #: hacks/config/petri.xml.h:17 -msgid "Minium Rate of Growth" +msgid "Minimum Rate of Growth" msgstr "Minimal reproduktion" #: hacks/config/petri.xml.h:18 @@ -7800,7 +7800,7 @@ msgid "RD-Bomb" msgstr "Reaktionsdiffusionsbombe" #: hacks/config/rd-bomb.xml.h:15 -msgid "Reaction/Difusion" +msgid "Reaction/Diffusion" msgstr "Reaktion/diffusion" #: hacks/config/rd-bomb.xml.h:16 diff --git a/po/de.po b/po/de.po index dbc2cd34..ba9f9a9e 100644 --- a/po/de.po +++ b/po/de.po @@ -2302,7 +2302,7 @@ msgid "Bouboule" msgstr "Bouboule" #: hacks/config/bouboule.xml.h:2 hacks/config/rocks.xml.h:3 -msgid "Do Red/Blue 3D seperation" +msgid "Do Red/Blue 3D separation" msgstr "Rot/Blat 3D-Trennung vornehmen" #: hacks/config/bouboule.xml.h:7 @@ -6468,27 +6468,27 @@ msgid "Fertility" msgstr "Fruchtbarkeit" #: hacks/config/petri.xml.h:12 -msgid "Maxium Lifespan" +msgid "Maximum Lifespan" msgstr "Maximale Lebenserwartung" #: hacks/config/petri.xml.h:13 -msgid "Maxium Rate of Death" +msgid "Maximum Rate of Death" msgstr "Maximale Todesrate" #: hacks/config/petri.xml.h:14 -msgid "Maxium Rate of Growth" +msgid "Maximum Rate of Growth" msgstr "Maximale Wachstumsrate" #: hacks/config/petri.xml.h:15 -msgid "Minium Lifespan" +msgid "Minimum Lifespan" msgstr "Minimale Lebenserwartung" #: hacks/config/petri.xml.h:16 -msgid "Minium Rate of Death" +msgid "Minimum Rate of Death" msgstr "Minimale Todesrate" #: hacks/config/petri.xml.h:17 -msgid "Minium Rate of Growth" +msgid "Minimum Rate of Growth" msgstr "Maximale Wachstumsrate" #: hacks/config/petri.xml.h:18 @@ -7577,7 +7577,7 @@ msgid "RD-Bomb" msgstr "RD-Bombe" #: hacks/config/rd-bomb.xml.h:15 -msgid "Reaction/Difusion" +msgid "Reaction/Diffusion" msgstr "Reaktion / Diffusion" #: hacks/config/rd-bomb.xml.h:16 diff --git a/po/et.po b/po/et.po index 52762535..b769928c 100644 --- a/po/et.po +++ b/po/et.po @@ -2162,7 +2162,7 @@ msgid "Bouboule" msgstr "" #: hacks/config/bouboule.xml.h:2 hacks/config/rocks.xml.h:3 -msgid "Do Red/Blue 3D seperation" +msgid "Do Red/Blue 3D separation" msgstr "" #: hacks/config/bouboule.xml.h:7 @@ -6097,27 +6097,27 @@ msgid "Fertility" msgstr "" #: hacks/config/petri.xml.h:12 -msgid "Maxium Lifespan" +msgid "Maximum Lifespan" msgstr "" #: hacks/config/petri.xml.h:13 -msgid "Maxium Rate of Death" +msgid "Maximum Rate of Death" msgstr "" #: hacks/config/petri.xml.h:14 -msgid "Maxium Rate of Growth" +msgid "Maximum Rate of Growth" msgstr "" #: hacks/config/petri.xml.h:15 -msgid "Minium Lifespan" +msgid "Minimum Lifespan" msgstr "" #: hacks/config/petri.xml.h:16 -msgid "Minium Rate of Death" +msgid "Minimum Rate of Death" msgstr "" #: hacks/config/petri.xml.h:17 -msgid "Minium Rate of Growth" +msgid "Minimum Rate of Growth" msgstr "" #: hacks/config/petri.xml.h:18 @@ -7156,7 +7156,7 @@ msgid "RD-Bomb" msgstr "" #: hacks/config/rd-bomb.xml.h:15 -msgid "Reaction/Difusion" +msgid "Reaction/Diffusion" msgstr "" #: hacks/config/rd-bomb.xml.h:16 diff --git a/po/fi.po b/po/fi.po index b81aef50..7bb4e10b 100644 --- a/po/fi.po +++ b/po/fi.po @@ -2168,7 +2168,7 @@ msgid "Bouboule" msgstr "" #: hacks/config/bouboule.xml.h:2 hacks/config/rocks.xml.h:3 -msgid "Do Red/Blue 3D seperation" +msgid "Do Red/Blue 3D separation" msgstr "" #: hacks/config/bouboule.xml.h:7 @@ -6061,27 +6061,27 @@ msgid "Fertility" msgstr "" #: hacks/config/petri.xml.h:12 -msgid "Maxium Lifespan" +msgid "Maximum Lifespan" msgstr "" #: hacks/config/petri.xml.h:13 -msgid "Maxium Rate of Death" +msgid "Maximum Rate of Death" msgstr "" #: hacks/config/petri.xml.h:14 -msgid "Maxium Rate of Growth" +msgid "Maximum Rate of Growth" msgstr "" #: hacks/config/petri.xml.h:15 -msgid "Minium Lifespan" +msgid "Minimum Lifespan" msgstr "" #: hacks/config/petri.xml.h:16 -msgid "Minium Rate of Death" +msgid "Minimum Rate of Death" msgstr "" #: hacks/config/petri.xml.h:17 -msgid "Minium Rate of Growth" +msgid "Minimum Rate of Growth" msgstr "" #: hacks/config/petri.xml.h:18 @@ -7116,7 +7116,7 @@ msgid "RD-Bomb" msgstr "" #: hacks/config/rd-bomb.xml.h:15 -msgid "Reaction/Difusion" +msgid "Reaction/Diffusion" msgstr "" #: hacks/config/rd-bomb.xml.h:16 diff --git a/po/fr.po b/po/fr.po index 43d830fd..dfca6a10 100644 --- a/po/fr.po +++ b/po/fr.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: xscreensaver 5.00\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2006-02-13 12:26+0100\n" +"POT-Creation-Date: 2006-05-24 12:23+0200\n" "PO-Revision-Date: 2006-02-13 16:18+0100\n" "Last-Translator: Eric Lassauge \n" "Language-Team: GNOME French Team \n" @@ -14,11 +14,11 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: driver/demo-Gtk-conf.c:818 +#: driver/demo-Gtk-conf.c:839 msgid "Browse..." msgstr "Parcourir... " -#: driver/demo-Gtk-conf.c:1110 +#: driver/demo-Gtk-conf.c:1131 msgid "Select file." msgstr "Sélectionnez un fichier." @@ -151,7 +151,7 @@ msgid "" "return.)" msgstr "" "Démo de l'économiseur d'écran sélectionné en mode plein-écran (cliquer avec " -"la souris pour en sortir.)" +"la souris pour en sortir)." #: driver/demo-Gtk-widgets.c:492 msgid "Settings..." @@ -279,7 +279,7 @@ msgid "" "Whether the screen should slowly fade to black when the screen saver " "activates." msgstr "" -"L'écran doit-il fondre lentement au noir quand l'économiseur d'écran s'active" +"L'écran doit-il fondre lentement au noir quand l'économiseur d'écran s'active." #: driver/demo-Gtk-widgets.c:867 msgid "Fade To Black When Blanking" @@ -291,7 +291,7 @@ msgid "" "deactivates." msgstr "" "L'écran doit-il fondre lentement depuis le noir quand l'économiseur d'écran " -"se désactive" +"se désactive." #: driver/demo-Gtk-widgets.c:884 msgid "Fade From Black When Unblanking" @@ -510,7 +510,7 @@ msgstr "Valider" msgid "Cancel" msgstr "Annuler" -#: driver/demo-Gtk.c:692 driver/demo-Gtk.c:4282 +#: driver/demo-Gtk.c:692 driver/demo-Gtk.c:4286 #, c-format msgid "" "Warning:\n" @@ -526,7 +526,7 @@ msgstr "" #: driver/demo-Gtk.c:740 msgid "For updates, check http://www.jwz.org/xscreensaver/" msgstr "" -"Traduction © 2005, Eric Lassauge http://lassauge.free.fr/xscreensaver/\n" +"Traduction © 2006, Eric Lassauge http://lassauge.free.fr/xscreensaver/\n" "\n" "Pour les mises à jour, vérifier sur http://www.jwz.org/xscreensaver/" @@ -702,7 +702,7 @@ msgstr "Non" msgid "Installed" msgstr "installé" -#: driver/demo-Gtk.c:4292 +#: driver/demo-Gtk.c:4296 #, c-format msgid "" "Warning:\n" @@ -735,7 +735,7 @@ msgstr "" "\n" "Relancer le démon xscreensaver maintenant ?\n" -#: driver/demo-Gtk.c:4317 +#: driver/demo-Gtk.c:4321 #, c-format msgid "" "Warning:\n" @@ -762,7 +762,7 @@ msgstr "" "\n" "Relancer le démon sur «%s» en tant que «%s» maintenant ?\n" -#: driver/demo-Gtk.c:4339 +#: driver/demo-Gtk.c:4343 #, c-format msgid "" "Warning:\n" @@ -781,12 +781,12 @@ msgstr "" "\n" "Relancer le démon xscreensaver maintenant ?\n" -#: driver/demo-Gtk.c:4800 +#: driver/demo-Gtk.c:4804 #, c-format msgid "%s: unknown option: %s\n" msgstr "%s : option inconnue : %s\n" -#: driver/demo-Gtk.c:4865 +#: driver/demo-Gtk.c:4869 msgid "Screensaver Preferences" msgstr "Préférences économiseur d'écran" @@ -820,7 +820,7 @@ msgstr "Fondu au noir lors du _verrouillage" #: driver/xscreensaver-demo.glade2.h:17 msgid "Fading and Colormaps" -msgstr "Flétrissement des couleurs" +msgstr "Fondu et palette de couleurs" #: driver/xscreensaver-demo.glade2.h:19 msgid "Grab Desktop _Images" @@ -828,7 +828,7 @@ msgstr "Capturer des _images du bureau" #: driver/xscreensaver-demo.glade2.h:20 msgid "Grab _Video Frames" -msgstr "Captures des trames _vidéo" +msgstr "Capturer des trames _vidéo" #: driver/xscreensaver-demo.glade2.h:23 msgid "How long after the screen blanks until a password will be required." @@ -845,7 +845,7 @@ msgid "" "mode.)" msgstr "" "Combien de temps avant l'activation d'un autre économiseur d'écran (en mode " -"aléatoire)" +"aléatoire)." #: driver/xscreensaver-demo.glade2.h:27 msgid "How long until the monitor goes completely black." @@ -931,7 +931,7 @@ msgstr "" #: driver/xscreensaver-demo.glade2.h:59 msgid "When idle or locked, blacken the screen only." -msgstr "En attente ou blocage, seuelment effacer l'écran." +msgstr "En attente ou blocage, seulement effacer l'écran." #: driver/xscreensaver-demo.glade2.h:60 msgid "" @@ -1092,71 +1092,73 @@ msgstr "Bras" #: hacks/config/anemone.xml.h:3 hacks/config/anemotaxis.xml.h:5 #: hacks/config/ant.xml.h:6 hacks/config/antinspect.xml.h:4 #: hacks/config/antmaze.xml.h:3 hacks/config/antspotlight.xml.h:3 -#: hacks/config/apollonian.xml.h:5 hacks/config/atlantis.xml.h:4 +#: hacks/config/apollonian.xml.h:5 hacks/config/atlantis.xml.h:5 #: hacks/config/attraction.xml.h:8 hacks/config/atunnel.xml.h:3 -#: hacks/config/barcode.xml.h:4 hacks/config/blaster.xml.h:3 +#: hacks/config/barcode.xml.h:6 hacks/config/blaster.xml.h:3 #: hacks/config/blinkbox.xml.h:5 hacks/config/blitspin.xml.h:4 -#: hacks/config/blocktube.xml.h:4 hacks/config/boing.xml.h:2 -#: hacks/config/bouboule.xml.h:3 hacks/config/bouncingcow.xml.h:6 +#: hacks/config/blocktube.xml.h:5 hacks/config/boing.xml.h:2 +#: hacks/config/bouboule.xml.h:3 hacks/config/bouncingcow.xml.h:5 #: hacks/config/boxed.xml.h:6 hacks/config/boxfit.xml.h:8 #: hacks/config/braid.xml.h:4 hacks/config/bubble3d.xml.h:4 #: hacks/config/bubbles.xml.h:8 hacks/config/bumps.xml.h:3 #: hacks/config/cage.xml.h:2 hacks/config/carousel.xml.h:5 #: hacks/config/ccurve.xml.h:7 hacks/config/celtic.xml.h:3 #: hacks/config/circuit.xml.h:4 hacks/config/cloudlife.xml.h:3 -#: hacks/config/compass.xml.h:3 hacks/config/coral.xml.h:7 +#: hacks/config/compass.xml.h:3 hacks/config/coral.xml.h:6 #: hacks/config/critical.xml.h:3 hacks/config/crystal.xml.h:6 -#: hacks/config/cube21.xml.h:6 hacks/config/cubenetic.xml.h:8 -#: hacks/config/cubestorm.xml.h:4 hacks/config/cynosure.xml.h:4 +#: hacks/config/cube21.xml.h:6 hacks/config/cubenetic.xml.h:5 +#: hacks/config/cubestorm.xml.h:4 hacks/config/cynosure.xml.h:3 #: hacks/config/dangerball.xml.h:3 hacks/config/decayscreen.xml.h:2 -#: hacks/config/deluxe.xml.h:4 hacks/config/demon.xml.h:4 +#: hacks/config/deluxe.xml.h:5 hacks/config/demon.xml.h:4 #: hacks/config/discrete.xml.h:2 hacks/config/distort.xml.h:4 -#: hacks/config/drift.xml.h:3 hacks/config/endgame.xml.h:3 +#: hacks/config/drift.xml.h:4 hacks/config/endgame.xml.h:3 #: hacks/config/engine.xml.h:8 hacks/config/epicycle.xml.h:5 #: hacks/config/eruption.xml.h:5 hacks/config/euler2d.xml.h:3 #: hacks/config/extrusion.xml.h:3 hacks/config/fadeplot.xml.h:4 -#: hacks/config/fireworkx.xml.h:3 hacks/config/flag.xml.h:2 -#: hacks/config/flame.xml.h:6 hacks/config/flipflop.xml.h:1 +#: hacks/config/fireworkx.xml.h:4 hacks/config/flag.xml.h:2 +#: hacks/config/flame.xml.h:5 hacks/config/flipflop.xml.h:2 #: hacks/config/flipscreen3d.xml.h:1 hacks/config/fliptext.xml.h:3 -#: hacks/config/flow.xml.h:2 hacks/config/fluidballs.xml.h:5 +#: hacks/config/flow.xml.h:4 hacks/config/fluidballs.xml.h:5 #: hacks/config/flyingtoasters.xml.h:5 hacks/config/fontglide.xml.h:4 #: hacks/config/forest.xml.h:1 hacks/config/fuzzyflakes.xml.h:7 #: hacks/config/galaxy.xml.h:3 hacks/config/gears.xml.h:2 #: hacks/config/gflux.xml.h:6 hacks/config/glblur.xml.h:4 #: hacks/config/glforestfire.xml.h:4 hacks/config/glhanoi.xml.h:3 -#: hacks/config/glknots.xml.h:3 hacks/config/glmatrix.xml.h:8 -#: hacks/config/glplanet.xml.h:2 hacks/config/glsnake.xml.h:6 -#: hacks/config/gltext.xml.h:4 hacks/config/goop.xml.h:4 -#: hacks/config/grav.xml.h:2 hacks/config/greynetic.xml.h:1 -#: hacks/config/halo.xml.h:2 hacks/config/hopalong.xml.h:9 +#: hacks/config/glknots.xml.h:3 hacks/config/glmatrix.xml.h:5 +#: hacks/config/glplanet.xml.h:2 hacks/config/glschool.xml.h:5 +#: hacks/config/glsnake.xml.h:6 hacks/config/gltext.xml.h:4 +#: hacks/config/goop.xml.h:4 hacks/config/grav.xml.h:2 +#: hacks/config/greynetic.xml.h:2 hacks/config/halftone.xml.h:5 +#: hacks/config/halo.xml.h:3 hacks/config/hopalong.xml.h:9 #: hacks/config/hyperball.xml.h:2 hacks/config/hypercube.xml.h:2 -#: hacks/config/hypertorus.xml.h:6 hacks/config/ifs.xml.h:4 -#: hacks/config/interaggregate.xml.h:1 hacks/config/interference.xml.h:7 -#: hacks/config/intermomentary.xml.h:1 hacks/config/jigglypuff.xml.h:6 -#: hacks/config/jigsaw.xml.h:3 hacks/config/juggle.xml.h:2 -#: hacks/config/juggler3d.xml.h:2 hacks/config/julia.xml.h:2 -#: hacks/config/kaleidescope.xml.h:2 hacks/config/klein.xml.h:2 -#: hacks/config/kumppa.xml.h:3 hacks/config/lament.xml.h:2 -#: hacks/config/laser.xml.h:3 hacks/config/lavalite.xml.h:10 -#: hacks/config/lightning.xml.h:1 hacks/config/lisa.xml.h:2 -#: hacks/config/lissie.xml.h:3 hacks/config/lmorph.xml.h:3 -#: hacks/config/loop.xml.h:1 hacks/config/maze.xml.h:4 -#: hacks/config/memscroller.xml.h:5 hacks/config/menger.xml.h:3 -#: hacks/config/metaballs.xml.h:4 hacks/config/mirrorblob.xml.h:11 -#: hacks/config/mismunch.xml.h:2 hacks/config/moebius.xml.h:3 -#: hacks/config/moire2.xml.h:2 hacks/config/molecule.xml.h:11 -#: hacks/config/morph3d.xml.h:3 hacks/config/mountain.xml.h:2 -#: hacks/config/munch.xml.h:3 hacks/config/nerverot.xml.h:9 -#: hacks/config/noof.xml.h:2 hacks/config/pacman.xml.h:1 -#: hacks/config/penetrate.xml.h:3 hacks/config/penrose.xml.h:3 -#: hacks/config/petri.xml.h:5 hacks/config/phosphor.xml.h:4 -#: hacks/config/piecewise.xml.h:4 hacks/config/pinion.xml.h:5 -#: hacks/config/pipes.xml.h:5 hacks/config/polyhedra.xml.h:17 -#: hacks/config/polyominoes.xml.h:2 hacks/config/polytopes.xml.h:11 -#: hacks/config/pong.xml.h:1 hacks/config/popsquares.xml.h:3 -#: hacks/config/providence.xml.h:2 hacks/config/pulsar.xml.h:11 -#: hacks/config/pyro.xml.h:4 hacks/config/qix.xml.h:7 -#: hacks/config/queens.xml.h:1 hacks/config/rd-bomb.xml.h:9 +#: hacks/config/hypertorus.xml.h:5 hacks/config/ifs.xml.h:3 +#: hacks/config/imsmap.xml.h:6 hacks/config/interaggregate.xml.h:2 +#: hacks/config/interference.xml.h:7 hacks/config/intermomentary.xml.h:4 +#: hacks/config/jigglypuff.xml.h:6 hacks/config/jigsaw.xml.h:3 +#: hacks/config/juggle.xml.h:5 hacks/config/juggler3d.xml.h:2 +#: hacks/config/julia.xml.h:3 hacks/config/kaleidescope.xml.h:4 +#: hacks/config/klein.xml.h:2 hacks/config/kumppa.xml.h:3 +#: hacks/config/lament.xml.h:2 hacks/config/laser.xml.h:3 +#: hacks/config/lavalite.xml.h:9 hacks/config/lightning.xml.h:2 +#: hacks/config/lisa.xml.h:2 hacks/config/lissie.xml.h:2 +#: hacks/config/lmorph.xml.h:3 hacks/config/loop.xml.h:1 +#: hacks/config/maze.xml.h:4 hacks/config/memscroller.xml.h:5 +#: hacks/config/menger.xml.h:3 hacks/config/metaballs.xml.h:4 +#: hacks/config/mirrorblob.xml.h:11 hacks/config/mismunch.xml.h:2 +#: hacks/config/moebius.xml.h:2 hacks/config/moire2.xml.h:1 +#: hacks/config/molecule.xml.h:11 hacks/config/morph3d.xml.h:3 +#: hacks/config/mountain.xml.h:1 hacks/config/munch.xml.h:3 +#: hacks/config/nerverot.xml.h:9 hacks/config/noof.xml.h:2 +#: hacks/config/pacman.xml.h:1 hacks/config/penetrate.xml.h:3 +#: hacks/config/penrose.xml.h:3 hacks/config/petri.xml.h:5 +#: hacks/config/phosphor.xml.h:3 hacks/config/piecewise.xml.h:4 +#: hacks/config/pinion.xml.h:5 hacks/config/pipes.xml.h:7 +#: hacks/config/polyhedra.xml.h:17 hacks/config/polyominoes.xml.h:2 +#: hacks/config/polytopes.xml.h:11 hacks/config/pong.xml.h:1 +#: hacks/config/popsquares.xml.h:3 hacks/config/providence.xml.h:2 +#: hacks/config/pulsar.xml.h:10 hacks/config/pyro.xml.h:4 +#: hacks/config/qix.xml.h:8 hacks/config/queens.xml.h:1 +#: hacks/config/rd-bomb.xml.h:9 hacks/config/rdbomb.xml.h:9 #: hacks/config/ripples.xml.h:4 hacks/config/rocks.xml.h:4 #: hacks/config/rotor.xml.h:3 hacks/config/rubik.xml.h:3 #: hacks/config/sballs.xml.h:4 hacks/config/shadebobs.xml.h:3 @@ -1164,108 +1166,108 @@ msgstr "Bras" #: hacks/config/slidescreen.xml.h:2 hacks/config/slip.xml.h:2 #: hacks/config/speedmine.xml.h:3 hacks/config/sphere.xml.h:2 #: hacks/config/spheremonics.xml.h:5 hacks/config/spiral.xml.h:3 -#: hacks/config/spotlight.xml.h:2 hacks/config/sproingies.xml.h:2 -#: hacks/config/squiral.xml.h:4 hacks/config/stairs.xml.h:1 +#: hacks/config/spotlight.xml.h:2 hacks/config/sproingies.xml.h:1 +#: hacks/config/squiral.xml.h:4 hacks/config/stairs.xml.h:2 #: hacks/config/starfish.xml.h:3 hacks/config/starwars.xml.h:6 #: hacks/config/strange.xml.h:1 hacks/config/substrate.xml.h:7 #: hacks/config/superquadrics.xml.h:4 hacks/config/swirl.xml.h:2 -#: hacks/config/t3d.xml.h:6 hacks/config/tangram.xml.h:2 -#: hacks/config/thornbird.xml.h:2 hacks/config/triangle.xml.h:1 -#: hacks/config/truchet.xml.h:1 hacks/config/twang.xml.h:3 -#: hacks/config/vines.xml.h:1 hacks/config/worm.xml.h:3 -#: hacks/config/wormhole.xml.h:2 hacks/config/xearth.xml.h:7 -#: hacks/config/xfishtank.xml.h:3 hacks/config/xflame.xml.h:4 -#: hacks/config/xjack.xml.h:1 hacks/config/xmatrix.xml.h:5 -#: hacks/config/xmountains.xml.h:13 hacks/config/xplanet.xml.h:8 -#: hacks/config/xrayswarm.xml.h:2 hacks/config/zoom.xml.h:2 +#: hacks/config/t3d.xml.h:7 hacks/config/tangram.xml.h:1 +#: hacks/config/thornbird.xml.h:2 hacks/config/topblock.xml.h:7 +#: hacks/config/triangle.xml.h:1 hacks/config/truchet.xml.h:1 +#: hacks/config/twang.xml.h:3 hacks/config/vines.xml.h:1 +#: hacks/config/worm.xml.h:3 hacks/config/wormhole.xml.h:2 +#: hacks/config/xflame.xml.h:4 hacks/config/xjack.xml.h:1 +#: hacks/config/xmatrix.xml.h:5 hacks/config/xmountains.xml.h:13 +#: hacks/config/xplanet.xml.h:8 hacks/config/xrayswarm.xml.h:2 +#: hacks/config/zoom.xml.h:2 msgid "Fast" msgstr "Rapide" #: hacks/config/anemone.xml.h:4 hacks/config/anemotaxis.xml.h:6 #: hacks/config/blaster.xml.h:4 hacks/config/bouboule.xml.h:4 -#: hacks/config/boxed.xml.h:7 hacks/config/coral.xml.h:8 -#: hacks/config/cubenetic.xml.h:9 hacks/config/eruption.xml.h:6 +#: hacks/config/boxed.xml.h:7 hacks/config/coral.xml.h:7 +#: hacks/config/cubenetic.xml.h:6 hacks/config/eruption.xml.h:6 #: hacks/config/euler2d.xml.h:4 hacks/config/fiberlamp.xml.h:2 -#: hacks/config/flame.xml.h:7 hacks/config/fluidballs.xml.h:6 -#: hacks/config/fuzzyflakes.xml.h:8 hacks/config/kaleidescope.xml.h:3 +#: hacks/config/flame.xml.h:6 hacks/config/fluidballs.xml.h:6 +#: hacks/config/fuzzyflakes.xml.h:8 hacks/config/glschool.xml.h:6 +#: hacks/config/julia.xml.h:4 hacks/config/kaleidescope.xml.h:5 #: hacks/config/lisa.xml.h:3 hacks/config/pedal.xml.h:4 -#: hacks/config/petri.xml.h:7 hacks/config/qix.xml.h:8 -#: hacks/config/substrate.xml.h:8 hacks/config/thornbird.xml.h:3 -#: hacks/config/whirlwindwarp.xml.h:1 hacks/config/wormhole.xml.h:3 -#: hacks/config/xfishtank.xml.h:4 +#: hacks/config/petri.xml.h:7 hacks/config/piecewise.xml.h:5 +#: hacks/config/qix.xml.h:9 hacks/config/substrate.xml.h:8 +#: hacks/config/thornbird.xml.h:3 hacks/config/whirlwindwarp.xml.h:1 +#: hacks/config/wormhole.xml.h:3 msgid "Few" msgstr "Peu" #: hacks/config/anemone.xml.h:5 hacks/config/anemotaxis.xml.h:7 #: hacks/config/ant.xml.h:9 hacks/config/apollonian.xml.h:7 -#: hacks/config/attraction.xml.h:18 hacks/config/blaster.xml.h:6 +#: hacks/config/attraction.xml.h:17 hacks/config/blaster.xml.h:6 #: hacks/config/bouboule.xml.h:5 hacks/config/braid.xml.h:7 #: hacks/config/coral.xml.h:9 hacks/config/critical.xml.h:4 -#: hacks/config/crystal.xml.h:8 hacks/config/cubenetic.xml.h:13 -#: hacks/config/cynosure.xml.h:6 hacks/config/deco.xml.h:5 -#: hacks/config/deluxe.xml.h:6 hacks/config/demon.xml.h:6 -#: hacks/config/discrete.xml.h:4 hacks/config/drift.xml.h:9 +#: hacks/config/crystal.xml.h:8 hacks/config/cubenetic.xml.h:10 +#: hacks/config/cynosure.xml.h:5 hacks/config/deco.xml.h:5 +#: hacks/config/deluxe.xml.h:7 hacks/config/demon.xml.h:6 +#: hacks/config/discrete.xml.h:4 hacks/config/drift.xml.h:6 #: hacks/config/epicycle.xml.h:8 hacks/config/eruption.xml.h:12 #: hacks/config/euler2d.xml.h:8 hacks/config/fadeplot.xml.h:6 #: hacks/config/fiberlamp.xml.h:6 hacks/config/flag.xml.h:5 -#: hacks/config/flame.xml.h:11 hacks/config/flow.xml.h:7 -#: hacks/config/fluidballs.xml.h:13 hacks/config/forest.xml.h:3 +#: hacks/config/flame.xml.h:11 hacks/config/flow.xml.h:9 +#: hacks/config/fluidballs.xml.h:13 hacks/config/forest.xml.h:4 #: hacks/config/fuzzyflakes.xml.h:12 hacks/config/galaxy.xml.h:6 -#: hacks/config/grav.xml.h:4 hacks/config/halo.xml.h:4 -#: hacks/config/hopalong.xml.h:15 hacks/config/ifs.xml.h:8 -#: hacks/config/imsmap.xml.h:9 hacks/config/interference.xml.h:14 -#: hacks/config/julia.xml.h:6 hacks/config/kaleidescope.xml.h:5 -#: hacks/config/laser.xml.h:6 hacks/config/lightning.xml.h:3 -#: hacks/config/lisa.xml.h:5 hacks/config/lissie.xml.h:6 -#: hacks/config/loop.xml.h:4 hacks/config/metaballs.xml.h:6 +#: hacks/config/grav.xml.h:4 hacks/config/halo.xml.h:5 +#: hacks/config/hopalong.xml.h:15 hacks/config/ifs.xml.h:7 +#: hacks/config/imsmap.xml.h:10 hacks/config/interference.xml.h:14 +#: hacks/config/julia.xml.h:9 hacks/config/kaleidescope.xml.h:7 +#: hacks/config/laser.xml.h:6 hacks/config/lightning.xml.h:4 +#: hacks/config/lisa.xml.h:6 hacks/config/lissie.xml.h:5 +#: hacks/config/loop.xml.h:5 hacks/config/metaballs.xml.h:6 #: hacks/config/mismunch.xml.h:4 hacks/config/moire.xml.h:5 #: hacks/config/moire2.xml.h:3 hacks/config/mountain.xml.h:4 #: hacks/config/nerverot.xml.h:15 hacks/config/pedal.xml.h:6 -#: hacks/config/penrose.xml.h:4 hacks/config/petri.xml.h:11 -#: hacks/config/polyominoes.xml.h:5 hacks/config/qix.xml.h:14 -#: hacks/config/rd-bomb.xml.h:12 hacks/config/ripples.xml.h:8 +#: hacks/config/penrose.xml.h:5 hacks/config/petri.xml.h:11 +#: hacks/config/piecewise.xml.h:7 hacks/config/polyominoes.xml.h:5 +#: hacks/config/qix.xml.h:15 hacks/config/rd-bomb.xml.h:12 +#: hacks/config/rdbomb.xml.h:12 hacks/config/ripples.xml.h:8 #: hacks/config/rocks.xml.h:5 hacks/config/rotor.xml.h:6 #: hacks/config/shadebobs.xml.h:5 hacks/config/sierpinski.xml.h:4 #: hacks/config/slip.xml.h:4 hacks/config/sphere.xml.h:3 #: hacks/config/spiral.xml.h:6 hacks/config/squiral.xml.h:9 #: hacks/config/starfish.xml.h:5 hacks/config/strange.xml.h:2 -#: hacks/config/swirl.xml.h:3 hacks/config/thornbird.xml.h:4 -#: hacks/config/triangle.xml.h:3 hacks/config/vines.xml.h:2 +#: hacks/config/swirl.xml.h:4 hacks/config/thornbird.xml.h:4 +#: hacks/config/triangle.xml.h:3 hacks/config/vines.xml.h:3 #: hacks/config/whirlwindwarp.xml.h:4 hacks/config/worm.xml.h:4 -#: hacks/config/xearth.xml.h:12 hacks/config/xfishtank.xml.h:8 msgid "Many" msgstr "Beaucoup" #: hacks/config/anemone.xml.h:6 hacks/config/ant.xml.h:11 -#: hacks/config/apollonian.xml.h:8 hacks/config/attraction.xml.h:19 +#: hacks/config/apollonian.xml.h:8 hacks/config/attraction.xml.h:18 #: hacks/config/bouboule.xml.h:6 hacks/config/braid.xml.h:9 #: hacks/config/critical.xml.h:5 hacks/config/crystal.xml.h:10 -#: hacks/config/cynosure.xml.h:7 hacks/config/deco.xml.h:8 -#: hacks/config/deluxe.xml.h:7 hacks/config/demon.xml.h:7 -#: hacks/config/discrete.xml.h:6 hacks/config/drift.xml.h:10 +#: hacks/config/cynosure.xml.h:6 hacks/config/deco.xml.h:8 +#: hacks/config/deluxe.xml.h:8 hacks/config/demon.xml.h:7 +#: hacks/config/discrete.xml.h:6 hacks/config/drift.xml.h:7 #: hacks/config/epicycle.xml.h:9 hacks/config/eruption.xml.h:14 #: hacks/config/euler2d.xml.h:9 hacks/config/fadeplot.xml.h:7 #: hacks/config/flag.xml.h:6 hacks/config/flame.xml.h:12 -#: hacks/config/flow.xml.h:8 hacks/config/forest.xml.h:4 +#: hacks/config/flow.xml.h:10 hacks/config/forest.xml.h:5 #: hacks/config/galaxy.xml.h:7 hacks/config/grav.xml.h:5 -#: hacks/config/halo.xml.h:6 hacks/config/hopalong.xml.h:17 -#: hacks/config/imsmap.xml.h:10 hacks/config/interference.xml.h:15 -#: hacks/config/julia.xml.h:7 hacks/config/laser.xml.h:8 -#: hacks/config/lightning.xml.h:4 hacks/config/lisa.xml.h:6 -#: hacks/config/lissie.xml.h:7 hacks/config/loop.xml.h:5 +#: hacks/config/halo.xml.h:7 hacks/config/hopalong.xml.h:17 +#: hacks/config/imsmap.xml.h:11 hacks/config/interference.xml.h:15 +#: hacks/config/julia.xml.h:10 hacks/config/laser.xml.h:8 +#: hacks/config/lightning.xml.h:5 hacks/config/lisa.xml.h:7 +#: hacks/config/lissie.xml.h:6 hacks/config/loop.xml.h:6 #: hacks/config/metaballs.xml.h:10 hacks/config/moire.xml.h:7 #: hacks/config/moire2.xml.h:5 hacks/config/mountain.xml.h:6 -#: hacks/config/penrose.xml.h:5 hacks/config/polyominoes.xml.h:6 +#: hacks/config/penrose.xml.h:6 hacks/config/polyominoes.xml.h:6 #: hacks/config/popsquares.xml.h:4 hacks/config/rd-bomb.xml.h:13 -#: hacks/config/rocks.xml.h:6 hacks/config/rotor.xml.h:7 -#: hacks/config/shadebobs.xml.h:6 hacks/config/sierpinski.xml.h:5 -#: hacks/config/slip.xml.h:5 hacks/config/sphere.xml.h:4 -#: hacks/config/spiral.xml.h:8 hacks/config/squiral.xml.h:10 -#: hacks/config/starfish.xml.h:6 hacks/config/strange.xml.h:3 -#: hacks/config/swirl.xml.h:5 hacks/config/thornbird.xml.h:5 -#: hacks/config/triangle.xml.h:4 hacks/config/vines.xml.h:3 -#: hacks/config/worm.xml.h:5 hacks/config/xearth.xml.h:17 -#: hacks/config/xfishtank.xml.h:9 +#: hacks/config/rdbomb.xml.h:13 hacks/config/rocks.xml.h:6 +#: hacks/config/rotor.xml.h:7 hacks/config/shadebobs.xml.h:6 +#: hacks/config/sierpinski.xml.h:5 hacks/config/slip.xml.h:5 +#: hacks/config/sphere.xml.h:4 hacks/config/spiral.xml.h:8 +#: hacks/config/squiral.xml.h:10 hacks/config/starfish.xml.h:6 +#: hacks/config/strange.xml.h:3 hacks/config/swirl.xml.h:5 +#: hacks/config/thornbird.xml.h:5 hacks/config/triangle.xml.h:4 +#: hacks/config/vines.xml.h:4 hacks/config/worm.xml.h:5 msgid "Number of Colors" msgstr "Nombre de couleurs" @@ -1281,13 +1283,13 @@ msgstr "Rarement" #: hacks/config/anemone.xml.h:9 hacks/config/anemotaxis.xml.h:10 #: hacks/config/ant.xml.h:15 hacks/config/antinspect.xml.h:6 #: hacks/config/antmaze.xml.h:5 hacks/config/antspotlight.xml.h:5 -#: hacks/config/apollonian.xml.h:11 hacks/config/atlantis.xml.h:13 -#: hacks/config/attraction.xml.h:26 hacks/config/atunnel.xml.h:6 -#: hacks/config/barcode.xml.h:6 hacks/config/blaster.xml.h:8 +#: hacks/config/apollonian.xml.h:11 hacks/config/atlantis.xml.h:14 +#: hacks/config/attraction.xml.h:25 hacks/config/atunnel.xml.h:6 +#: hacks/config/barcode.xml.h:8 hacks/config/blaster.xml.h:8 #: hacks/config/blinkbox.xml.h:8 hacks/config/blitspin.xml.h:7 #: hacks/config/blocktube.xml.h:9 hacks/config/boing.xml.h:10 #: hacks/config/bouboule.xml.h:8 hacks/config/bouncingcow.xml.h:10 -#: hacks/config/boxed.xml.h:15 hacks/config/boxfit.xml.h:12 +#: hacks/config/boxed.xml.h:15 hacks/config/boxfit.xml.h:13 #: hacks/config/braid.xml.h:11 hacks/config/bubble3d.xml.h:6 #: hacks/config/bubbles.xml.h:10 hacks/config/bumps.xml.h:4 #: hacks/config/cage.xml.h:4 hacks/config/carousel.xml.h:14 @@ -1295,153 +1297,154 @@ msgstr "Rarement" #: hacks/config/circuit.xml.h:10 hacks/config/cloudlife.xml.h:11 #: hacks/config/compass.xml.h:4 hacks/config/coral.xml.h:12 #: hacks/config/critical.xml.h:6 hacks/config/crystal.xml.h:11 -#: hacks/config/cube21.xml.h:16 hacks/config/cubenetic.xml.h:22 +#: hacks/config/cube21.xml.h:16 hacks/config/cubenetic.xml.h:19 #: hacks/config/cubestorm.xml.h:8 hacks/config/cynosure.xml.h:9 #: hacks/config/dangerball.xml.h:5 hacks/config/decayscreen.xml.h:17 -#: hacks/config/deluxe.xml.h:8 hacks/config/demon.xml.h:8 -#: hacks/config/discrete.xml.h:7 hacks/config/distort.xml.h:11 -#: hacks/config/drift.xml.h:12 hacks/config/endgame.xml.h:5 +#: hacks/config/deluxe.xml.h:9 hacks/config/demon.xml.h:8 +#: hacks/config/discrete.xml.h:7 hacks/config/distort.xml.h:12 +#: hacks/config/drift.xml.h:9 hacks/config/endgame.xml.h:6 #: hacks/config/engine.xml.h:15 hacks/config/epicycle.xml.h:10 #: hacks/config/eruption.xml.h:19 hacks/config/euler2d.xml.h:14 #: hacks/config/extrusion.xml.h:11 hacks/config/fadeplot.xml.h:8 #: hacks/config/fireworkx.xml.h:9 hacks/config/flag.xml.h:7 #: hacks/config/flame.xml.h:14 hacks/config/flipflop.xml.h:5 #: hacks/config/flipscreen3d.xml.h:6 hacks/config/fliptext.xml.h:13 -#: hacks/config/flow.xml.h:10 hacks/config/fluidballs.xml.h:18 +#: hacks/config/flow.xml.h:16 hacks/config/fluidballs.xml.h:18 #: hacks/config/flyingtoasters.xml.h:11 hacks/config/fontglide.xml.h:13 -#: hacks/config/forest.xml.h:5 hacks/config/fuzzyflakes.xml.h:15 -#: hacks/config/galaxy.xml.h:11 hacks/config/gears.xml.h:7 +#: hacks/config/forest.xml.h:6 hacks/config/fuzzyflakes.xml.h:15 +#: hacks/config/galaxy.xml.h:10 hacks/config/gears.xml.h:8 #: hacks/config/gflux.xml.h:12 hacks/config/glblur.xml.h:14 -#: hacks/config/glforestfire.xml.h:14 hacks/config/glhanoi.xml.h:8 -#: hacks/config/glknots.xml.h:17 hacks/config/glmatrix.xml.h:18 -#: hacks/config/glplanet.xml.h:8 hacks/config/glsnake.xml.h:12 -#: hacks/config/gltext.xml.h:15 hacks/config/goop.xml.h:10 -#: hacks/config/grav.xml.h:8 hacks/config/greynetic.xml.h:3 -#: hacks/config/halo.xml.h:10 hacks/config/hopalong.xml.h:21 +#: hacks/config/glforestfire.xml.h:13 hacks/config/glhanoi.xml.h:8 +#: hacks/config/glknots.xml.h:17 hacks/config/glmatrix.xml.h:15 +#: hacks/config/glplanet.xml.h:8 hacks/config/glschool.xml.h:14 +#: hacks/config/glsnake.xml.h:12 hacks/config/gltext.xml.h:15 +#: hacks/config/goop.xml.h:10 hacks/config/grav.xml.h:8 +#: hacks/config/greynetic.xml.h:4 hacks/config/halftone.xml.h:15 +#: hacks/config/halo.xml.h:11 hacks/config/hopalong.xml.h:21 #: hacks/config/hyperball.xml.h:8 hacks/config/hypercube.xml.h:7 -#: hacks/config/hypertorus.xml.h:18 hacks/config/ifs.xml.h:13 -#: hacks/config/interaggregate.xml.h:4 hacks/config/interference.xml.h:17 -#: hacks/config/intermomentary.xml.h:4 hacks/config/jigglypuff.xml.h:16 -#: hacks/config/jigsaw.xml.h:5 hacks/config/juggle.xml.h:8 -#: hacks/config/juggler3d.xml.h:12 hacks/config/julia.xml.h:8 -#: hacks/config/kaleidescope.xml.h:7 hacks/config/klein.xml.h:7 -#: hacks/config/kumppa.xml.h:8 hacks/config/lament.xml.h:6 -#: hacks/config/laser.xml.h:10 hacks/config/lavalite.xml.h:27 -#: hacks/config/lightning.xml.h:5 hacks/config/lisa.xml.h:8 -#: hacks/config/lissie.xml.h:9 hacks/config/lmorph.xml.h:11 -#: hacks/config/loop.xml.h:7 hacks/config/maze.xml.h:14 -#: hacks/config/memscroller.xml.h:7 hacks/config/menger.xml.h:16 -#: hacks/config/metaballs.xml.h:13 hacks/config/mirrorblob.xml.h:18 -#: hacks/config/mismunch.xml.h:10 hacks/config/moebius.xml.h:7 -#: hacks/config/moire2.xml.h:6 hacks/config/molecule.xml.h:23 -#: hacks/config/morph3d.xml.h:6 hacks/config/mountain.xml.h:7 -#: hacks/config/munch.xml.h:7 hacks/config/nerverot.xml.h:20 -#: hacks/config/noof.xml.h:5 hacks/config/pacman.xml.h:5 -#: hacks/config/penetrate.xml.h:6 hacks/config/penrose.xml.h:8 -#: hacks/config/petri.xml.h:23 hacks/config/phosphor.xml.h:7 -#: hacks/config/piecewise.xml.h:9 hacks/config/pinion.xml.h:13 -#: hacks/config/pipes.xml.h:15 hacks/config/polyhedra.xml.h:111 -#: hacks/config/polyominoes.xml.h:10 hacks/config/polytopes.xml.h:20 -#: hacks/config/pong.xml.h:4 hacks/config/popsquares.xml.h:5 -#: hacks/config/providence.xml.h:5 hacks/config/pulsar.xml.h:15 -#: hacks/config/pyro.xml.h:13 hacks/config/qix.xml.h:19 -#: hacks/config/queens.xml.h:4 hacks/config/rd-bomb.xml.h:17 +#: hacks/config/hypertorus.xml.h:18 hacks/config/ifs.xml.h:12 +#: hacks/config/imsmap.xml.h:14 hacks/config/interaggregate.xml.h:5 +#: hacks/config/interference.xml.h:17 hacks/config/intermomentary.xml.h:7 +#: hacks/config/jigglypuff.xml.h:16 hacks/config/jigsaw.xml.h:5 +#: hacks/config/juggle.xml.h:16 hacks/config/juggler3d.xml.h:12 +#: hacks/config/julia.xml.h:11 hacks/config/kaleidescope.xml.h:9 +#: hacks/config/klein.xml.h:7 hacks/config/kumppa.xml.h:8 +#: hacks/config/lament.xml.h:5 hacks/config/laser.xml.h:10 +#: hacks/config/lavalite.xml.h:27 hacks/config/lightning.xml.h:6 +#: hacks/config/lisa.xml.h:9 hacks/config/lissie.xml.h:8 +#: hacks/config/lmorph.xml.h:11 hacks/config/loop.xml.h:8 +#: hacks/config/maze.xml.h:14 hacks/config/memscroller.xml.h:7 +#: hacks/config/menger.xml.h:16 hacks/config/metaballs.xml.h:13 +#: hacks/config/mirrorblob.xml.h:18 hacks/config/mismunch.xml.h:10 +#: hacks/config/moebius.xml.h:5 hacks/config/moire2.xml.h:6 +#: hacks/config/molecule.xml.h:23 hacks/config/morph3d.xml.h:10 +#: hacks/config/mountain.xml.h:9 hacks/config/munch.xml.h:7 +#: hacks/config/nerverot.xml.h:20 hacks/config/noof.xml.h:5 +#: hacks/config/pacman.xml.h:5 hacks/config/penetrate.xml.h:7 +#: hacks/config/penrose.xml.h:8 hacks/config/petri.xml.h:23 +#: hacks/config/phosphor.xml.h:6 hacks/config/piecewise.xml.h:11 +#: hacks/config/pinion.xml.h:13 hacks/config/pipes.xml.h:19 +#: hacks/config/polyhedra.xml.h:111 hacks/config/polyominoes.xml.h:10 +#: hacks/config/polytopes.xml.h:20 hacks/config/pong.xml.h:4 +#: hacks/config/popsquares.xml.h:5 hacks/config/providence.xml.h:5 +#: hacks/config/pulsar.xml.h:14 hacks/config/pyro.xml.h:13 +#: hacks/config/qix.xml.h:20 hacks/config/queens.xml.h:4 +#: hacks/config/rd-bomb.xml.h:17 hacks/config/rdbomb.xml.h:17 #: hacks/config/ripples.xml.h:12 hacks/config/rocks.xml.h:9 #: hacks/config/rotor.xml.h:11 hacks/config/rubik.xml.h:9 -#: hacks/config/sballs.xml.h:13 hacks/config/shadebobs.xml.h:9 +#: hacks/config/sballs.xml.h:12 hacks/config/shadebobs.xml.h:10 #: hacks/config/sierpinski.xml.h:7 hacks/config/sierpinski3d.xml.h:8 -#: hacks/config/slidescreen.xml.h:6 hacks/config/slip.xml.h:7 -#: hacks/config/speedmine.xml.h:13 hacks/config/sphere.xml.h:5 +#: hacks/config/slidescreen.xml.h:10 hacks/config/slip.xml.h:7 +#: hacks/config/speedmine.xml.h:12 hacks/config/sphere.xml.h:5 #: hacks/config/spheremonics.xml.h:19 hacks/config/spiral.xml.h:9 #: hacks/config/spotlight.xml.h:4 hacks/config/sproingies.xml.h:6 -#: hacks/config/squiral.xml.h:14 hacks/config/stairs.xml.h:3 -#: hacks/config/starfish.xml.h:8 hacks/config/starwars.xml.h:12 +#: hacks/config/squiral.xml.h:14 hacks/config/stairs.xml.h:4 +#: hacks/config/starfish.xml.h:9 hacks/config/starwars.xml.h:12 #: hacks/config/strange.xml.h:4 hacks/config/substrate.xml.h:15 -#: hacks/config/superquadrics.xml.h:8 hacks/config/swirl.xml.h:6 -#: hacks/config/t3d.xml.h:11 hacks/config/tangram.xml.h:4 -#: hacks/config/thornbird.xml.h:7 hacks/config/triangle.xml.h:5 -#: hacks/config/truchet.xml.h:2 hacks/config/twang.xml.h:9 -#: hacks/config/vines.xml.h:4 hacks/config/worm.xml.h:7 -#: hacks/config/wormhole.xml.h:5 hacks/config/xearth.xml.h:22 -#: hacks/config/xfishtank.xml.h:10 hacks/config/xflame.xml.h:5 -#: hacks/config/xjack.xml.h:2 hacks/config/xmatrix.xml.h:15 -#: hacks/config/xplanet.xml.h:59 hacks/config/xrayswarm.xml.h:3 -#: hacks/config/zoom.xml.h:6 +#: hacks/config/superquadrics.xml.h:11 hacks/config/swirl.xml.h:6 +#: hacks/config/t3d.xml.h:12 hacks/config/tangram.xml.h:3 +#: hacks/config/thornbird.xml.h:7 hacks/config/topblock.xml.h:17 +#: hacks/config/triangle.xml.h:5 hacks/config/truchet.xml.h:2 +#: hacks/config/twang.xml.h:10 hacks/config/vines.xml.h:5 +#: hacks/config/worm.xml.h:7 hacks/config/wormhole.xml.h:6 +#: hacks/config/xflame.xml.h:5 hacks/config/xjack.xml.h:2 +#: hacks/config/xmatrix.xml.h:16 hacks/config/xplanet.xml.h:59 +#: hacks/config/xrayswarm.xml.h:3 hacks/config/zoom.xml.h:6 msgid "Slow" msgstr "Lent(e)" #: hacks/config/anemone.xml.h:10 hacks/config/anemotaxis.xml.h:12 #: hacks/config/ant.xml.h:17 hacks/config/antinspect.xml.h:7 #: hacks/config/antmaze.xml.h:6 hacks/config/antspotlight.xml.h:6 -#: hacks/config/apollonian.xml.h:12 hacks/config/attraction.xml.h:28 -#: hacks/config/atunnel.xml.h:7 hacks/config/barcode.xml.h:7 +#: hacks/config/apollonian.xml.h:12 hacks/config/attraction.xml.h:27 +#: hacks/config/atunnel.xml.h:7 hacks/config/barcode.xml.h:9 #: hacks/config/blaster.xml.h:9 hacks/config/blinkbox.xml.h:9 -#: hacks/config/blocktube.xml.h:11 hacks/config/boing.xml.h:12 -#: hacks/config/bouboule.xml.h:9 hacks/config/boxfit.xml.h:14 +#: hacks/config/blocktube.xml.h:10 hacks/config/boing.xml.h:12 +#: hacks/config/bouboule.xml.h:9 hacks/config/boxfit.xml.h:15 #: hacks/config/braid.xml.h:12 hacks/config/bubble3d.xml.h:7 #: hacks/config/bubbles.xml.h:11 hacks/config/bumps.xml.h:5 -#: hacks/config/cage.xml.h:6 hacks/config/celtic.xml.h:9 +#: hacks/config/cage.xml.h:5 hacks/config/celtic.xml.h:9 #: hacks/config/circuit.xml.h:11 hacks/config/cloudlife.xml.h:13 #: hacks/config/compass.xml.h:5 hacks/config/coral.xml.h:14 #: hacks/config/critical.xml.h:7 hacks/config/crystal.xml.h:12 -#: hacks/config/cubenetic.xml.h:24 hacks/config/cynosure.xml.h:10 +#: hacks/config/cubenetic.xml.h:21 hacks/config/cynosure.xml.h:10 #: hacks/config/dangerball.xml.h:6 hacks/config/decayscreen.xml.h:18 -#: hacks/config/deluxe.xml.h:9 hacks/config/demon.xml.h:10 -#: hacks/config/discrete.xml.h:9 hacks/config/distort.xml.h:13 -#: hacks/config/drift.xml.h:13 hacks/config/endgame.xml.h:6 +#: hacks/config/deluxe.xml.h:10 hacks/config/demon.xml.h:10 +#: hacks/config/discrete.xml.h:9 hacks/config/distort.xml.h:14 +#: hacks/config/drift.xml.h:10 hacks/config/endgame.xml.h:7 #: hacks/config/engine.xml.h:16 hacks/config/epicycle.xml.h:11 #: hacks/config/eruption.xml.h:20 hacks/config/euler2d.xml.h:15 -#: hacks/config/extrusion.xml.h:13 hacks/config/fadeplot.xml.h:10 +#: hacks/config/extrusion.xml.h:12 hacks/config/fadeplot.xml.h:10 #: hacks/config/fireworkx.xml.h:11 hacks/config/flag.xml.h:9 -#: hacks/config/flame.xml.h:15 hacks/config/flipflop.xml.h:7 +#: hacks/config/flame.xml.h:15 hacks/config/flipflop.xml.h:6 #: hacks/config/flipscreen3d.xml.h:7 hacks/config/fliptext.xml.h:14 -#: hacks/config/flow.xml.h:12 hacks/config/fluidballs.xml.h:20 -#: hacks/config/forest.xml.h:6 hacks/config/fuzzyflakes.xml.h:17 -#: hacks/config/galaxy.xml.h:12 hacks/config/glblur.xml.h:16 -#: hacks/config/glforestfire.xml.h:15 hacks/config/glplanet.xml.h:10 -#: hacks/config/gltext.xml.h:17 hacks/config/goop.xml.h:11 -#: hacks/config/grav.xml.h:9 hacks/config/greynetic.xml.h:4 -#: hacks/config/halo.xml.h:11 hacks/config/hopalong.xml.h:23 -#: hacks/config/hyperball.xml.h:9 hacks/config/hypercube.xml.h:8 -#: hacks/config/ifs.xml.h:14 hacks/config/interaggregate.xml.h:5 -#: hacks/config/intermomentary.xml.h:5 hacks/config/jigsaw.xml.h:7 -#: hacks/config/juggle.xml.h:9 hacks/config/julia.xml.h:10 -#: hacks/config/kaleidescope.xml.h:8 hacks/config/klein.xml.h:8 -#: hacks/config/kumppa.xml.h:9 hacks/config/lament.xml.h:7 +#: hacks/config/flow.xml.h:18 hacks/config/fluidballs.xml.h:20 +#: hacks/config/forest.xml.h:7 hacks/config/fuzzyflakes.xml.h:17 +#: hacks/config/galaxy.xml.h:11 hacks/config/glblur.xml.h:16 +#: hacks/config/glforestfire.xml.h:14 hacks/config/glplanet.xml.h:9 +#: hacks/config/glschool.xml.h:15 hacks/config/gltext.xml.h:16 +#: hacks/config/goop.xml.h:11 hacks/config/grav.xml.h:9 +#: hacks/config/greynetic.xml.h:5 hacks/config/halo.xml.h:12 +#: hacks/config/hopalong.xml.h:23 hacks/config/hyperball.xml.h:9 +#: hacks/config/hypercube.xml.h:8 hacks/config/ifs.xml.h:13 +#: hacks/config/imsmap.xml.h:16 hacks/config/interaggregate.xml.h:6 +#: hacks/config/intermomentary.xml.h:8 hacks/config/jigsaw.xml.h:7 +#: hacks/config/juggle.xml.h:17 hacks/config/julia.xml.h:13 +#: hacks/config/kaleidescope.xml.h:10 hacks/config/klein.xml.h:8 +#: hacks/config/kumppa.xml.h:9 hacks/config/lament.xml.h:6 #: hacks/config/laser.xml.h:11 hacks/config/lavalite.xml.h:30 -#: hacks/config/lightning.xml.h:6 hacks/config/lisa.xml.h:9 -#: hacks/config/lissie.xml.h:11 hacks/config/lmorph.xml.h:12 -#: hacks/config/loop.xml.h:9 hacks/config/memscroller.xml.h:8 -#: hacks/config/menger.xml.h:18 hacks/config/metaballs.xml.h:15 -#: hacks/config/mirrorblob.xml.h:20 hacks/config/mismunch.xml.h:12 -#: hacks/config/moebius.xml.h:10 hacks/config/moire2.xml.h:7 -#: hacks/config/molecule.xml.h:25 hacks/config/morph3d.xml.h:7 -#: hacks/config/mountain.xml.h:8 hacks/config/munch.xml.h:9 +#: hacks/config/lightning.xml.h:7 hacks/config/lisa.xml.h:10 +#: hacks/config/lissie.xml.h:10 hacks/config/lmorph.xml.h:12 +#: hacks/config/loop.xml.h:10 hacks/config/memscroller.xml.h:8 +#: hacks/config/menger.xml.h:17 hacks/config/metaballs.xml.h:15 +#: hacks/config/mirrorblob.xml.h:19 hacks/config/mismunch.xml.h:12 +#: hacks/config/moebius.xml.h:7 hacks/config/moire2.xml.h:7 +#: hacks/config/molecule.xml.h:24 hacks/config/morph3d.xml.h:11 +#: hacks/config/mountain.xml.h:10 hacks/config/munch.xml.h:9 #: hacks/config/nerverot.xml.h:22 hacks/config/noof.xml.h:6 -#: hacks/config/pacman.xml.h:6 hacks/config/penrose.xml.h:9 -#: hacks/config/petri.xml.h:25 hacks/config/phosphor.xml.h:8 -#: hacks/config/piecewise.xml.h:11 hacks/config/pipes.xml.h:16 -#: hacks/config/polyominoes.xml.h:11 hacks/config/pong.xml.h:5 -#: hacks/config/popsquares.xml.h:6 hacks/config/providence.xml.h:7 -#: hacks/config/pulsar.xml.h:17 hacks/config/qix.xml.h:22 -#: hacks/config/queens.xml.h:6 hacks/config/rotor.xml.h:12 -#: hacks/config/rubik.xml.h:11 hacks/config/sballs.xml.h:14 -#: hacks/config/shadebobs.xml.h:10 hacks/config/sierpinski.xml.h:9 -#: hacks/config/sierpinski3d.xml.h:10 hacks/config/slidescreen.xml.h:7 -#: hacks/config/slip.xml.h:9 hacks/config/speedmine.xml.h:15 -#: hacks/config/sphere.xml.h:6 hacks/config/spheremonics.xml.h:22 -#: hacks/config/spiral.xml.h:10 hacks/config/spotlight.xml.h:5 -#: hacks/config/sproingies.xml.h:8 hacks/config/squiral.xml.h:16 -#: hacks/config/stairs.xml.h:5 hacks/config/starfish.xml.h:9 -#: hacks/config/strange.xml.h:5 hacks/config/substrate.xml.h:16 -#: hacks/config/superquadrics.xml.h:10 hacks/config/swirl.xml.h:7 -#: hacks/config/t3d.xml.h:13 hacks/config/tangram.xml.h:5 -#: hacks/config/thornbird.xml.h:8 hacks/config/triangle.xml.h:6 -#: hacks/config/truchet.xml.h:3 hacks/config/twang.xml.h:10 -#: hacks/config/vines.xml.h:5 hacks/config/whirlygig.xml.h:13 -#: hacks/config/worm.xml.h:8 hacks/config/xearth.xml.h:25 +#: hacks/config/pacman.xml.h:6 hacks/config/penrose.xml.h:10 +#: hacks/config/petri.xml.h:25 hacks/config/phosphor.xml.h:7 +#: hacks/config/piecewise.xml.h:13 hacks/config/pipes.xml.h:20 +#: hacks/config/polyominoes.xml.h:11 hacks/config/popsquares.xml.h:6 +#: hacks/config/providence.xml.h:6 hacks/config/pulsar.xml.h:15 +#: hacks/config/qix.xml.h:23 hacks/config/queens.xml.h:6 +#: hacks/config/rotor.xml.h:12 hacks/config/rubik.xml.h:11 +#: hacks/config/sballs.xml.h:13 hacks/config/shadebobs.xml.h:11 +#: hacks/config/sierpinski.xml.h:9 hacks/config/sierpinski3d.xml.h:9 +#: hacks/config/slidescreen.xml.h:12 hacks/config/slip.xml.h:9 +#: hacks/config/speedmine.xml.h:13 hacks/config/sphere.xml.h:6 +#: hacks/config/spheremonics.xml.h:21 hacks/config/spiral.xml.h:10 +#: hacks/config/spotlight.xml.h:6 hacks/config/sproingies.xml.h:7 +#: hacks/config/squiral.xml.h:16 hacks/config/stairs.xml.h:5 +#: hacks/config/starfish.xml.h:10 hacks/config/strange.xml.h:5 +#: hacks/config/substrate.xml.h:16 hacks/config/swirl.xml.h:7 +#: hacks/config/t3d.xml.h:14 hacks/config/tangram.xml.h:5 +#: hacks/config/thornbird.xml.h:8 hacks/config/topblock.xml.h:20 +#: hacks/config/triangle.xml.h:6 hacks/config/truchet.xml.h:3 +#: hacks/config/twang.xml.h:12 hacks/config/vines.xml.h:6 +#: hacks/config/whirlygig.xml.h:13 hacks/config/worm.xml.h:8 #: hacks/config/xflame.xml.h:6 hacks/config/xjack.xml.h:3 -#: hacks/config/xmatrix.xml.h:18 hacks/config/xplanet.xml.h:60 +#: hacks/config/xmatrix.xml.h:19 hacks/config/xplanet.xml.h:60 #: hacks/config/xrayswarm.xml.h:4 hacks/config/zoom.xml.h:7 msgid "Speed" msgstr "Vitesse" @@ -1451,10 +1454,9 @@ msgid "Tentacles" msgstr "Tentacules" #: hacks/config/anemone.xml.h:12 hacks/config/cubestorm.xml.h:11 -#: hacks/config/deluxe.xml.h:10 hacks/config/fuzzyflakes.xml.h:18 +#: hacks/config/deluxe.xml.h:11 hacks/config/fuzzyflakes.xml.h:18 #: hacks/config/glknots.xml.h:19 hacks/config/lmorph.xml.h:13 -#: hacks/config/pong.xml.h:7 hacks/config/starfish.xml.h:11 -#: hacks/config/thornbird.xml.h:9 +#: hacks/config/starfish.xml.h:12 hacks/config/thornbird.xml.h:9 msgid "Thick" msgstr "Épais(se)" @@ -1465,10 +1467,9 @@ msgid "Thickness" msgstr "Épaisseur" #: hacks/config/anemone.xml.h:14 hacks/config/cubestorm.xml.h:12 -#: hacks/config/deluxe.xml.h:11 hacks/config/fuzzyflakes.xml.h:20 +#: hacks/config/deluxe.xml.h:12 hacks/config/fuzzyflakes.xml.h:20 #: hacks/config/glknots.xml.h:21 hacks/config/lmorph.xml.h:14 -#: hacks/config/pong.xml.h:8 hacks/config/starfish.xml.h:12 -#: hacks/config/thornbird.xml.h:11 +#: hacks/config/starfish.xml.h:13 hacks/config/thornbird.xml.h:11 msgid "Thin" msgstr "Fin(e)" @@ -1477,40 +1478,40 @@ msgid "Turn speed" msgstr "Vitesse de rotation" #: hacks/config/anemone.xml.h:16 hacks/config/ant.xml.h:22 -#: hacks/config/apollonian.xml.h:13 hacks/config/attraction.xml.h:32 +#: hacks/config/apollonian.xml.h:13 hacks/config/attraction.xml.h:31 #: hacks/config/bouboule.xml.h:11 hacks/config/braid.xml.h:13 #: hacks/config/critical.xml.h:8 hacks/config/crystal.xml.h:13 #: hacks/config/cynosure.xml.h:11 hacks/config/deco.xml.h:10 #: hacks/config/deluxe.xml.h:14 hacks/config/demon.xml.h:13 -#: hacks/config/discrete.xml.h:11 hacks/config/drift.xml.h:14 +#: hacks/config/discrete.xml.h:11 hacks/config/drift.xml.h:11 #: hacks/config/epicycle.xml.h:13 hacks/config/euler2d.xml.h:17 #: hacks/config/fadeplot.xml.h:12 hacks/config/flag.xml.h:13 -#: hacks/config/flame.xml.h:16 hacks/config/flow.xml.h:15 -#: hacks/config/forest.xml.h:8 hacks/config/galaxy.xml.h:14 +#: hacks/config/flame.xml.h:16 hacks/config/flow.xml.h:21 +#: hacks/config/forest.xml.h:8 hacks/config/galaxy.xml.h:13 #: hacks/config/grav.xml.h:11 hacks/config/halo.xml.h:13 -#: hacks/config/hopalong.xml.h:25 hacks/config/imsmap.xml.h:15 -#: hacks/config/interference.xml.h:19 hacks/config/julia.xml.h:12 +#: hacks/config/hopalong.xml.h:25 hacks/config/imsmap.xml.h:18 +#: hacks/config/interference.xml.h:19 hacks/config/julia.xml.h:14 #: hacks/config/laser.xml.h:12 hacks/config/lightning.xml.h:8 #: hacks/config/lisa.xml.h:12 hacks/config/lissie.xml.h:13 #: hacks/config/loop.xml.h:12 hacks/config/metaballs.xml.h:16 -#: hacks/config/moire.xml.h:11 hacks/config/moire2.xml.h:9 -#: hacks/config/mountain.xml.h:9 hacks/config/nerverot.xml.h:23 -#: hacks/config/penrose.xml.h:10 hacks/config/polyominoes.xml.h:12 -#: hacks/config/rd-bomb.xml.h:20 hacks/config/rocks.xml.h:12 -#: hacks/config/rotor.xml.h:13 hacks/config/shadebobs.xml.h:12 -#: hacks/config/sierpinski.xml.h:12 hacks/config/slip.xml.h:12 -#: hacks/config/sphere.xml.h:8 hacks/config/spiral.xml.h:12 -#: hacks/config/squiral.xml.h:18 hacks/config/starfish.xml.h:14 -#: hacks/config/strange.xml.h:8 hacks/config/swirl.xml.h:9 -#: hacks/config/thornbird.xml.h:13 hacks/config/triangle.xml.h:8 -#: hacks/config/vines.xml.h:7 hacks/config/worm.xml.h:9 -#: hacks/config/xearth.xml.h:28 hacks/config/xfishtank.xml.h:11 +#: hacks/config/moire.xml.h:10 hacks/config/moire2.xml.h:9 +#: hacks/config/mountain.xml.h:11 hacks/config/nerverot.xml.h:23 +#: hacks/config/penrose.xml.h:12 hacks/config/polyominoes.xml.h:12 +#: hacks/config/rd-bomb.xml.h:20 hacks/config/rdbomb.xml.h:20 +#: hacks/config/rocks.xml.h:12 hacks/config/rotor.xml.h:13 +#: hacks/config/shadebobs.xml.h:13 hacks/config/sierpinski.xml.h:12 +#: hacks/config/slip.xml.h:12 hacks/config/sphere.xml.h:8 +#: hacks/config/spiral.xml.h:12 hacks/config/squiral.xml.h:18 +#: hacks/config/starfish.xml.h:15 hacks/config/strange.xml.h:8 +#: hacks/config/swirl.xml.h:9 hacks/config/thornbird.xml.h:13 +#: hacks/config/triangle.xml.h:8 hacks/config/vines.xml.h:7 +#: hacks/config/worm.xml.h:9 msgid "Two" msgstr "Deux" #: hacks/config/anemone.xml.h:17 -msgid "Wiggling tentacles. By Gabriel Finch." -msgstr "Tentacules agitées. Par Gabriel Finch." +msgid "Wiggling tentacles. Written by Gabriel Finch; 2002." +msgstr "Tentacules agitées. Écrit par Gabriel Finch; 2002." #: hacks/config/anemone.xml.h:18 msgid "Withdraw freqency" @@ -1525,7 +1526,7 @@ msgid "" "Anemotaxis demonstrates a search algorithm designed for locating a source of " "odor in turbulent atmosphere. The searcher is able to sense the odor and " "determine local instantaneous wind direction. The goal is to find the source " -"in the shortest mean time. Written by Eugene Balkovsky." +"in the shortest mean time. Written by Eugene Balkovsky; 2004." msgstr "" #: hacks/config/anemotaxis.xml.h:3 @@ -1553,15 +1554,15 @@ msgstr "Sources" #: hacks/config/ant.xml.h:1 msgid "" "A cellular automaton that is really a two-dimensional Turing machine: as the " -"heads (``ants'') walk along the screen, they change pixel values in their " +"heads (\"ants\") walk along the screen, they change pixel values in their " "path. Then, as they pass over changed pixels, their behavior is influenced. " -"Written by David Bagley." +"Written by David Bagley; 1997." msgstr "" "Un automate cellulaire qui est en fait une machine de Turing " "bidimensionnelle: à mesure que les têtes («fourmis») marchent le long de " "l'écran, elles changent la valeur des pixels sur leur chemin. Ensuite, leur " "comportement est influencé lorsqu'elles passent sur les pixels modifiés. " -"Écrit par David Bagley." +"Écrit par David Bagley; 1997." #: hacks/config/ant.xml.h:2 msgid "Ant" @@ -1585,18 +1586,21 @@ msgstr "Cellules à 4 côtés" #: hacks/config/ant.xml.h:8 hacks/config/attraction.xml.h:13 #: hacks/config/cloudlife.xml.h:7 hacks/config/cube21.xml.h:8 -#: hacks/config/cubenetic.xml.h:11 hacks/config/demon.xml.h:5 -#: hacks/config/discrete.xml.h:3 hacks/config/distort.xml.h:5 +#: hacks/config/cubenetic.xml.h:8 hacks/config/demon.xml.h:5 +#: hacks/config/discrete.xml.h:3 hacks/config/distort.xml.h:6 #: hacks/config/fadeplot.xml.h:5 hacks/config/flag.xml.h:4 -#: hacks/config/flow.xml.h:4 hacks/config/fluidballs.xml.h:12 -#: hacks/config/fuzzyflakes.xml.h:10 hacks/config/gleidescope.xml.h:7 -#: hacks/config/halftone.xml.h:8 hacks/config/hopalong.xml.h:13 -#: hacks/config/interference.xml.h:11 hacks/config/julia.xml.h:5 -#: hacks/config/lissie.xml.h:4 hacks/config/loop.xml.h:2 -#: hacks/config/moire.xml.h:4 hacks/config/piecewise.xml.h:5 -#: hacks/config/rd-bomb.xml.h:11 hacks/config/rorschach.xml.h:5 -#: hacks/config/rubik.xml.h:4 hacks/config/sierpinski.xml.h:3 -#: hacks/config/slip.xml.h:3 +#: hacks/config/flow.xml.h:6 hacks/config/fluidballs.xml.h:12 +#: hacks/config/fuzzyflakes.xml.h:10 hacks/config/gleidescope.xml.h:6 +#: hacks/config/halftone.xml.h:9 hacks/config/hopalong.xml.h:13 +#: hacks/config/interference.xml.h:11 hacks/config/julia.xml.h:7 +#: hacks/config/lissie.xml.h:3 hacks/config/loop.xml.h:3 +#: hacks/config/moire.xml.h:4 hacks/config/penrose.xml.h:4 +#: hacks/config/piecewise.xml.h:6 hacks/config/rd-bomb.xml.h:11 +#: hacks/config/rdbomb.xml.h:11 hacks/config/rorschach.xml.h:5 +#: hacks/config/rubik.xml.h:5 hacks/config/sierpinski.xml.h:3 +#: hacks/config/slidescreen.xml.h:4 hacks/config/slip.xml.h:3 +#: hacks/config/spotlight.xml.h:3 hacks/config/topblock.xml.h:10 +#: hacks/config/twang.xml.h:7 msgid "Large" msgstr "Important(e)" @@ -1608,7 +1612,7 @@ msgstr "Cellules à 8 côtés" msgid "Random Cell Shape" msgstr "Forme de cellule aléatoire" -#: hacks/config/ant.xml.h:13 hacks/config/speedmine.xml.h:11 +#: hacks/config/ant.xml.h:13 msgid "Sharp Turns" msgstr "Virages serrés" @@ -1616,20 +1620,23 @@ msgstr "Virages serrés" msgid "Six Sided Cells" msgstr "Cellules à 6 côtés" -#: hacks/config/ant.xml.h:16 hacks/config/attraction.xml.h:27 +#: hacks/config/ant.xml.h:16 hacks/config/attraction.xml.h:26 #: hacks/config/cloudlife.xml.h:12 hacks/config/cube21.xml.h:17 -#: hacks/config/cubenetic.xml.h:23 hacks/config/demon.xml.h:9 -#: hacks/config/discrete.xml.h:8 hacks/config/distort.xml.h:12 +#: hacks/config/cubenetic.xml.h:20 hacks/config/demon.xml.h:9 +#: hacks/config/discrete.xml.h:8 hacks/config/distort.xml.h:13 #: hacks/config/fadeplot.xml.h:9 hacks/config/flag.xml.h:8 -#: hacks/config/flow.xml.h:11 hacks/config/fluidballs.xml.h:19 -#: hacks/config/fuzzyflakes.xml.h:16 hacks/config/gleidescope.xml.h:12 -#: hacks/config/halftone.xml.h:14 hacks/config/hopalong.xml.h:22 -#: hacks/config/interference.xml.h:18 hacks/config/julia.xml.h:9 -#: hacks/config/lissie.xml.h:10 hacks/config/loop.xml.h:8 +#: hacks/config/flow.xml.h:17 hacks/config/fluidballs.xml.h:19 +#: hacks/config/fuzzyflakes.xml.h:16 hacks/config/gleidescope.xml.h:11 +#: hacks/config/halftone.xml.h:16 hacks/config/hopalong.xml.h:22 +#: hacks/config/interference.xml.h:18 hacks/config/julia.xml.h:12 +#: hacks/config/lissie.xml.h:9 hacks/config/loop.xml.h:9 #: hacks/config/metaballs.xml.h:14 hacks/config/moire.xml.h:9 -#: hacks/config/piecewise.xml.h:10 hacks/config/rd-bomb.xml.h:18 +#: hacks/config/penrose.xml.h:9 hacks/config/piecewise.xml.h:12 +#: hacks/config/rd-bomb.xml.h:18 hacks/config/rdbomb.xml.h:18 #: hacks/config/rorschach.xml.h:8 hacks/config/rubik.xml.h:10 -#: hacks/config/sierpinski.xml.h:8 hacks/config/slip.xml.h:8 +#: hacks/config/sierpinski.xml.h:8 hacks/config/slidescreen.xml.h:11 +#: hacks/config/slip.xml.h:8 hacks/config/spotlight.xml.h:5 +#: hacks/config/topblock.xml.h:18 hacks/config/twang.xml.h:11 msgid "Small" msgstr "Faible" @@ -1639,7 +1646,7 @@ msgstr "Cellules à 3 côtés" #: hacks/config/ant.xml.h:19 hacks/config/demon.xml.h:12 #: hacks/config/discrete.xml.h:10 hacks/config/fadeplot.xml.h:11 -#: hacks/config/flag.xml.h:12 hacks/config/flow.xml.h:14 +#: hacks/config/flag.xml.h:12 hacks/config/flow.xml.h:20 #: hacks/config/lissie.xml.h:12 hacks/config/loop.xml.h:11 #: hacks/config/rubik.xml.h:12 hacks/config/sierpinski.xml.h:11 #: hacks/config/slip.xml.h:11 @@ -1665,44 +1672,47 @@ msgstr "Dessiner les ombres" #: hacks/config/antinspect.xml.h:3 msgid "" "Draws a trio of ants moving their spheres around a circle. Written by Blair " -"Tennessy." +"Tennessy; 2004." msgstr "" "Dessine un trio de fourmis déplacant une sphère en cercle. Écrit pas Blair " -"Tennessy." +"Tennessy; 2004." #: hacks/config/antinspect.xml.h:5 hacks/config/antmaze.xml.h:4 -#: hacks/config/antspotlight.xml.h:4 hacks/config/atlantis.xml.h:11 +#: hacks/config/antspotlight.xml.h:4 hacks/config/atlantis.xml.h:12 #: hacks/config/atunnel.xml.h:5 hacks/config/blocktube.xml.h:8 -#: hacks/config/boing.xml.h:8 hacks/config/boxed.xml.h:14 -#: hacks/config/bubble3d.xml.h:5 hacks/config/cage.xml.h:3 -#: hacks/config/carousel.xml.h:12 hacks/config/circuit.xml.h:9 -#: hacks/config/cube21.xml.h:13 hacks/config/cubenetic.xml.h:21 +#: hacks/config/boing.xml.h:8 hacks/config/bouncingcow.xml.h:9 +#: hacks/config/boxed.xml.h:14 hacks/config/bubble3d.xml.h:5 +#: hacks/config/cage.xml.h:3 hacks/config/carousel.xml.h:12 +#: hacks/config/circuit.xml.h:9 hacks/config/crackberg.xml.h:16 +#: hacks/config/cube21.xml.h:13 hacks/config/cubenetic.xml.h:18 #: hacks/config/cubestorm.xml.h:7 hacks/config/dangerball.xml.h:4 -#: hacks/config/endgame.xml.h:4 hacks/config/engine.xml.h:14 -#: hacks/config/extrusion.xml.h:10 hacks/config/flipflop.xml.h:4 -#: hacks/config/flipscreen3d.xml.h:5 hacks/config/fliptext.xml.h:12 -#: hacks/config/fluidballs.xml.h:17 hacks/config/flurry.xml.h:9 -#: hacks/config/flyingtoasters.xml.h:10 hacks/config/gears.xml.h:6 -#: hacks/config/gflux.xml.h:11 hacks/config/glblur.xml.h:13 -#: hacks/config/gleidescope.xml.h:10 hacks/config/glforestfire.xml.h:13 -#: hacks/config/glhanoi.xml.h:7 hacks/config/glknots.xml.h:16 -#: hacks/config/glmatrix.xml.h:17 hacks/config/glplanet.xml.h:7 +#: hacks/config/dnalogo.xml.h:3 hacks/config/endgame.xml.h:5 +#: hacks/config/engine.xml.h:14 hacks/config/extrusion.xml.h:10 +#: hacks/config/flipflop.xml.h:4 hacks/config/flipscreen3d.xml.h:5 +#: hacks/config/fliptext.xml.h:12 hacks/config/fluidballs.xml.h:17 +#: hacks/config/flurry.xml.h:9 hacks/config/flyingtoasters.xml.h:10 +#: hacks/config/gears.xml.h:7 hacks/config/gflux.xml.h:11 +#: hacks/config/glblur.xml.h:13 hacks/config/gleidescope.xml.h:9 +#: hacks/config/glforestfire.xml.h:12 hacks/config/glhanoi.xml.h:7 +#: hacks/config/glknots.xml.h:16 hacks/config/glmatrix.xml.h:14 +#: hacks/config/glplanet.xml.h:7 hacks/config/glschool.xml.h:13 #: hacks/config/glslideshow.xml.h:19 hacks/config/glsnake.xml.h:10 #: hacks/config/gltext.xml.h:14 hacks/config/hypertorus.xml.h:17 #: hacks/config/jigglypuff.xml.h:15 hacks/config/juggler3d.xml.h:11 -#: hacks/config/klein.xml.h:6 hacks/config/lament.xml.h:5 +#: hacks/config/klein.xml.h:6 hacks/config/lament.xml.h:4 #: hacks/config/lavalite.xml.h:26 hacks/config/menger.xml.h:15 -#: hacks/config/mirrorblob.xml.h:17 hacks/config/moebius.xml.h:6 -#: hacks/config/molecule.xml.h:22 hacks/config/morph3d.xml.h:5 +#: hacks/config/mirrorblob.xml.h:17 hacks/config/moebius.xml.h:4 +#: hacks/config/molecule.xml.h:22 hacks/config/morph3d.xml.h:9 #: hacks/config/noof.xml.h:4 hacks/config/pinion.xml.h:12 -#: hacks/config/pipes.xml.h:14 hacks/config/polyhedra.xml.h:110 +#: hacks/config/pipes.xml.h:18 hacks/config/polyhedra.xml.h:110 #: hacks/config/polytopes.xml.h:18 hacks/config/providence.xml.h:4 -#: hacks/config/pulsar.xml.h:14 hacks/config/queens.xml.h:3 -#: hacks/config/rubik.xml.h:6 hacks/config/sballs.xml.h:12 -#: hacks/config/sierpinski3d.xml.h:6 hacks/config/spheremonics.xml.h:18 -#: hacks/config/sproingies.xml.h:4 hacks/config/stairs.xml.h:2 -#: hacks/config/starwars.xml.h:11 hacks/config/superquadrics.xml.h:7 -#: hacks/config/timetunnel.xml.h:9 +#: hacks/config/pulsar.xml.h:13 hacks/config/queens.xml.h:3 +#: hacks/config/rubik.xml.h:7 hacks/config/sballs.xml.h:11 +#: hacks/config/sierpinski3d.xml.h:6 hacks/config/speedmine.xml.h:10 +#: hacks/config/spheremonics.xml.h:18 hacks/config/sproingies.xml.h:5 +#: hacks/config/stairs.xml.h:3 hacks/config/starwars.xml.h:11 +#: hacks/config/stonerview.xml.h:2 hacks/config/superquadrics.xml.h:10 +#: hacks/config/timetunnel.xml.h:9 hacks/config/topblock.xml.h:16 msgid "Show Frames-per-Second" msgstr "Afficher «trames par seconde» (FPS)" @@ -1712,9 +1722,11 @@ msgstr "Labyrinthe des fourmis" #: hacks/config/antmaze.xml.h:2 msgid "" -"Antmaze draws a few views of a few ants walking around in a simple maze. " -"Written by Blair Tennessy." +"Draws a few views of a few ants walking around in a simple maze. Written by " +"Blair Tennessy; 2005." msgstr "" +"Dessine quelques vues de fourmis se baladant dans un labyrinthe simple." +" Écrit pas Blair Tennessy; 2005." #: hacks/config/antspotlight.xml.h:1 msgid "AntSpotlight" @@ -1722,9 +1734,11 @@ msgstr "Faisceau lumineux" #: hacks/config/antspotlight.xml.h:2 msgid "" -"Antspotlight draws an ant (with a headlight) who walks on top of an image of " -"your desktop or other image. Written by Blair Tennessy." +"Draws an ant (with a headlight) who walks on top of an image of your desktop " +"or other image. Written by Blair Tennessy; 2003." msgstr "" +"Antspotlight dessine une fourmi (avec une lampe frontale) qui se promène sur " +"une image de votre bureau ou une autre image. Écrit par Blair Tennessy; 2OO3." #: hacks/config/apollonian.xml.h:1 msgid "Apollonian" @@ -1749,10 +1763,10 @@ msgstr "Inclure les géométries alternatives" #: hacks/config/apollonian.xml.h:9 msgid "" "Packs a large circle with smaller circles, demonstrating the Descartes " -"Circle Theorem. Written by Allan R. Wilks and David Bagley." +"Circle Theorem. Written by Allan R. Wilks and David Bagley; 2002." msgstr "" "Remplit un grand cercle de cercles plus petits et démontre ainsi le théorème " -"des cercles de Descartes. Écrit par Allan R. Wilks et David Bagley." +"des cercles de Descartes. Écrit par Allan R. Wilks et David Bagley; 2002." #: hacks/config/apollonian.xml.h:10 msgid "Shallow" @@ -1763,138 +1777,122 @@ msgid "Apple ][" msgstr "Apple ][" #: hacks/config/apple2.xml.h:2 -msgid "Basic Programming Mode" -msgstr "Mode programmation en BASIC" - -#: hacks/config/apple2.xml.h:3 hacks/config/halo.xml.h:8 -#: hacks/config/imsmap.xml.h:11 -msgid "Random Mode" +msgid "Choose display mode randomly" msgstr "Mode aléatoire" +#: hacks/config/apple2.xml.h:3 +msgid "Display images" +msgstr "Afficher des images" + #: hacks/config/apple2.xml.h:4 +msgid "Display scrolling text" +msgstr "Afficher un texte défilant" + +#: hacks/config/apple2.xml.h:5 +msgid "Run BASIC programs" +msgstr "Exécuter des programmes BASIC" + +#: hacks/config/apple2.xml.h:6 msgid "" "Simulates an original Apple ][ Plus computer in all its 1979 glory. It also " "reproduces the appearance of display on a color television set of the " -"period. In \"Text Mode\", it displays the output of a program, or the " -"contents of a file or URL, as configured on the \"Advanced\" tab of the main " -"Screensaver Preferences window. In \"Slideshow Mode\", it chooses a number " -"of images from the image source you configured into XScreenSaver and " -"displays them within the limitations of the Apple ][ display hardware. (Six " -"available colors in hi-res mode!) In \"Basic Programming Mode\", a simulated " -"user types in a BASIC program and runs it. By Trevor Blackwell." +"period. In \"Basic Programming Mode\", a simulated user types in a BASIC " +"program and runs it. In \"Text Mode\", it displays the output of a program, " +"or the contents of a file or URL. In \"Slideshow Mode\", it chooses random " +"images and displays them within the limitations of the Apple ][ display " +"hardware. (Six available colors in hi-res mode!) Written by Trevor " +"Blackwell; 2003." msgstr "" "Simule une machine Apple ][ Plus dans toute sa gloire de 1979. Il reproduit " -"également l'affichage d'une télévision couleur de l'époque. En mode \"Texte" -"\", il affiche la sortie d'une commande (p.ex. \"fortune\"). En Mode " -"\"diaporama\", il choisis des images depuis la source d'image configurée " -"dans XScreenSaver et les affiche avec les limitations de l'écran de l'Apple ]" -"[ (seulement 6 couleurs en mode haute résolution!). Dans le mode " -"\"Programmation en BASIC\", un utilisateur simulé tape des commandes BASIC " -"et lance le programme. Par Trevor Blackwell." - -#: hacks/config/apple2.xml.h:5 -msgid "Slideshow Mode" -msgstr "Mode diaporama" - -#: hacks/config/apple2.xml.h:6 -msgid "Text Mode" -msgstr "Mode texte" +"également l'affichage d'une télévision couleur de l'époque. " +"En mode «Programmation BASIC», un utilisateur simulé tape des commandes BASIC " +"et lance le programme. En mode «Texte», il affiche la sortie d'un programme " +"ou le contenu d'un fichier ou d'une URL. En Mode «Diaporama», il choisis des " +"images aléatoirement et les affiche avec les limitations de l'écran de l'Apple" +" ][ (seulement 6 couleurs en mode haute résolution!)." +" Écrit par Trevor Blackwell; 2003." #: hacks/config/apple2.xml.h:7 hacks/config/fliptext.xml.h:17 -#: hacks/config/fontglide.xml.h:15 hacks/config/noseguy.xml.h:7 -#: hacks/config/phosphor.xml.h:9 hacks/config/starwars.xml.h:17 +#: hacks/config/fontglide.xml.h:15 hacks/config/noseguy.xml.h:3 +#: hacks/config/phosphor.xml.h:10 hacks/config/starwars.xml.h:16 msgid "Text Program" msgstr "Programme générant du texte" #: hacks/config/atlantis.xml.h:1 +msgid "" +"A 3D animation of a number of sharks, dolphins, and whales. Written by Mark " +"Kilgard; 1998." +msgstr "" +"Une animation 3D avec des requins, des " +"dauphins et des baleines. Initialement écrit par Mark Kilgard ; 1994. Porté par Eric Lassauge pour xlock; 1998." + +#: hacks/config/atlantis.xml.h:2 msgid "Agressive" msgstr "Agressif" -#: hacks/config/atlantis.xml.h:2 +#: hacks/config/atlantis.xml.h:3 msgid "Atlantis" -msgstr "Atlantide" +msgstr "Atlantis" -#: hacks/config/atlantis.xml.h:3 +#: hacks/config/atlantis.xml.h:4 msgid "Clear Water" msgstr "Eau claire" -#: hacks/config/atlantis.xml.h:5 +#: hacks/config/atlantis.xml.h:6 msgid "Flat Background" msgstr "Arrière-plan uni" -#: hacks/config/atlantis.xml.h:6 +#: hacks/config/atlantis.xml.h:7 msgid "Gradient Background" msgstr "Arrière-plan dégradé" -#: hacks/config/atlantis.xml.h:7 +#: hacks/config/atlantis.xml.h:8 msgid "Number of Sharks" msgstr "Nombre de requins" -#: hacks/config/atlantis.xml.h:8 +#: hacks/config/atlantis.xml.h:9 msgid "Shark Proximity" msgstr "Comportement des requins" -#: hacks/config/atlantis.xml.h:9 +#: hacks/config/atlantis.xml.h:10 msgid "Shark Speed" msgstr "Vitesse des requins" -#: hacks/config/atlantis.xml.h:10 +#: hacks/config/atlantis.xml.h:11 msgid "Shimmering Water" msgstr "Eau miroitante" -#: hacks/config/atlantis.xml.h:12 +#: hacks/config/atlantis.xml.h:13 msgid "Shy" msgstr "Timide" -#: hacks/config/atlantis.xml.h:14 hacks/config/cage.xml.h:5 -#: hacks/config/extrusion.xml.h:12 hacks/config/gears.xml.h:8 -#: hacks/config/glplanet.xml.h:9 hacks/config/glsnake.xml.h:13 -#: hacks/config/gltext.xml.h:16 hacks/config/menger.xml.h:17 -#: hacks/config/mismunch.xml.h:11 hacks/config/molecule.xml.h:24 -#: hacks/config/munch.xml.h:8 hacks/config/providence.xml.h:6 -#: hacks/config/sierpinski3d.xml.h:9 hacks/config/speedmine.xml.h:14 -#: hacks/config/spheremonics.xml.h:21 hacks/config/sproingies.xml.h:7 -#: hacks/config/stairs.xml.h:4 hacks/config/stonerview.xml.h:2 -#: hacks/config/superquadrics.xml.h:9 hacks/config/webcollage.xml.h:8 -msgid "Solid" -msgstr "Plein" - #: hacks/config/atlantis.xml.h:15 -msgid "" -"This is xfishtank writ large: a GL animation of a number of sharks, " -"dolphins, and whales. The swimming motions are great. Originally written by " -"Mark Kilgard." -msgstr "" -"Voici un aquarium grand format: une animation GL avec des requins, des " -"dauphins et des baleines. Les mouvements de nage sont magnifiques. " -"Initialement écrit par Mark Kilgard (porté par Eric Lassauge pour xlock)." - -#: hacks/config/atlantis.xml.h:16 msgid "Whale Speed" msgstr "Vitesse des baleines" -#: hacks/config/atlantis.xml.h:17 hacks/config/atunnel.xml.h:10 -#: hacks/config/blinkbox.xml.h:10 hacks/config/blocktube.xml.h:13 -#: hacks/config/boing.xml.h:15 hacks/config/boxed.xml.h:17 -#: hacks/config/cage.xml.h:9 hacks/config/crackberg.xml.h:23 -#: hacks/config/cube21.xml.h:28 hacks/config/cubestorm.xml.h:14 -#: hacks/config/dangerball.xml.h:11 hacks/config/extrusion.xml.h:19 -#: hacks/config/flipflop.xml.h:8 hacks/config/flyingtoasters.xml.h:14 -#: hacks/config/gears.xml.h:11 hacks/config/glforestfire.xml.h:20 -#: hacks/config/glhanoi.xml.h:10 hacks/config/glknots.xml.h:23 -#: hacks/config/glplanet.xml.h:15 hacks/config/glsnake.xml.h:15 -#: hacks/config/gltext.xml.h:21 hacks/config/jigglypuff.xml.h:25 -#: hacks/config/juggler3d.xml.h:13 hacks/config/lament.xml.h:9 -#: hacks/config/lavalite.xml.h:32 hacks/config/menger.xml.h:21 -#: hacks/config/mirrorblob.xml.h:23 hacks/config/moebius.xml.h:11 -#: hacks/config/molecule.xml.h:27 hacks/config/pinion.xml.h:15 -#: hacks/config/polyhedra.xml.h:166 hacks/config/providence.xml.h:9 -#: hacks/config/pulsar.xml.h:20 hacks/config/queens.xml.h:7 -#: hacks/config/sballs.xml.h:18 hacks/config/sierpinski3d.xml.h:12 -#: hacks/config/speedmine.xml.h:18 hacks/config/spheremonics.xml.h:26 -#: hacks/config/sproingies.xml.h:10 hacks/config/stairs.xml.h:7 -#: hacks/config/stonerview.xml.h:4 hacks/config/superquadrics.xml.h:12 -#: hacks/config/tangram.xml.h:8 +#: hacks/config/atlantis.xml.h:16 hacks/config/atunnel.xml.h:9 +#: hacks/config/blinkbox.xml.h:10 hacks/config/blocktube.xml.h:12 +#: hacks/config/boing.xml.h:15 hacks/config/bouncingcow.xml.h:11 +#: hacks/config/boxed.xml.h:17 hacks/config/cage.xml.h:7 +#: hacks/config/crackberg.xml.h:22 hacks/config/cube21.xml.h:27 +#: hacks/config/cubenetic.xml.h:27 hacks/config/cubestorm.xml.h:14 +#: hacks/config/dangerball.xml.h:11 hacks/config/dnalogo.xml.h:4 +#: hacks/config/extrusion.xml.h:17 hacks/config/flipflop.xml.h:7 +#: hacks/config/flyingtoasters.xml.h:13 hacks/config/gears.xml.h:11 +#: hacks/config/glforestfire.xml.h:17 hacks/config/glhanoi.xml.h:10 +#: hacks/config/glknots.xml.h:23 hacks/config/glmatrix.xml.h:19 +#: hacks/config/glplanet.xml.h:14 hacks/config/glschool.xml.h:18 +#: hacks/config/glsnake.xml.h:14 hacks/config/gltext.xml.h:20 +#: hacks/config/jigglypuff.xml.h:25 hacks/config/juggler3d.xml.h:13 +#: hacks/config/lament.xml.h:8 hacks/config/lavalite.xml.h:32 +#: hacks/config/menger.xml.h:20 hacks/config/mirrorblob.xml.h:22 +#: hacks/config/molecule.xml.h:26 hacks/config/pinion.xml.h:15 +#: hacks/config/polyhedra.xml.h:166 hacks/config/providence.xml.h:8 +#: hacks/config/queens.xml.h:7 hacks/config/sballs.xml.h:17 +#: hacks/config/sierpinski3d.xml.h:11 hacks/config/speedmine.xml.h:17 +#: hacks/config/spheremonics.xml.h:25 hacks/config/sproingies.xml.h:9 +#: hacks/config/stonerview.xml.h:4 hacks/config/superquadrics.xml.h:14 +#: hacks/config/tangram.xml.h:8 hacks/config/topblock.xml.h:22 msgid "Wireframe" msgstr "Fil de fer" @@ -1911,6 +1909,7 @@ msgid "Ball Mass" msgstr "Masse des balles" #: hacks/config/attraction.xml.h:4 hacks/config/fluidballs.xml.h:3 +#: hacks/config/juggle.xml.h:1 msgid "Balls" msgstr "Balles" @@ -1919,7 +1918,7 @@ msgid "Bounce Off Walls" msgstr "Rebondir sur les murs" #: hacks/config/attraction.xml.h:6 hacks/config/hopalong.xml.h:1 -#: hacks/config/interference.xml.h:5 hacks/config/qix.xml.h:2 +#: hacks/config/interference.xml.h:4 hacks/config/qix.xml.h:3 #: hacks/config/wander.xml.h:3 msgid "Color Contrast" msgstr "Contraste des couleurs" @@ -1934,20 +1933,21 @@ msgstr "Rayons pleins" #: hacks/config/attraction.xml.h:10 hacks/config/carousel.xml.h:7 #: hacks/config/ccurve.xml.h:9 hacks/config/cloudlife.xml.h:5 -#: hacks/config/cubenetic.xml.h:10 hacks/config/euler2d.xml.h:5 -#: hacks/config/flame.xml.h:9 hacks/config/fliptext.xml.h:9 -#: hacks/config/glslideshow.xml.h:13 hacks/config/goop.xml.h:6 -#: hacks/config/halftone.xml.h:7 hacks/config/hopalong.xml.h:10 -#: hacks/config/hyperball.xml.h:3 hacks/config/hypercube.xml.h:3 +#: hacks/config/cubenetic.xml.h:7 hacks/config/euler2d.xml.h:5 +#: hacks/config/flame.xml.h:8 hacks/config/fliptext.xml.h:9 +#: hacks/config/glschool.xml.h:10 hacks/config/glslideshow.xml.h:13 +#: hacks/config/goop.xml.h:6 hacks/config/halftone.xml.h:8 +#: hacks/config/hopalong.xml.h:10 hacks/config/hyperball.xml.h:3 +#: hacks/config/hypercube.xml.h:3 hacks/config/ifs.xml.h:4 #: hacks/config/interference.xml.h:8 hacks/config/jigglypuff.xml.h:8 -#: hacks/config/kumppa.xml.h:4 hacks/config/lavalite.xml.h:12 +#: hacks/config/kumppa.xml.h:4 hacks/config/lavalite.xml.h:11 #: hacks/config/nerverot.xml.h:11 hacks/config/petri.xml.h:8 -#: hacks/config/pyro.xml.h:5 hacks/config/qix.xml.h:10 +#: hacks/config/pyro.xml.h:5 hacks/config/qix.xml.h:11 #: hacks/config/speedmine.xml.h:5 hacks/config/spheremonics.xml.h:6 #: hacks/config/spiral.xml.h:4 hacks/config/squiral.xml.h:6 -#: hacks/config/superquadrics.xml.h:5 hacks/config/t3d.xml.h:7 -#: hacks/config/twang.xml.h:5 hacks/config/wander.xml.h:8 -#: hacks/config/xmountains.xml.h:17 +#: hacks/config/superquadrics.xml.h:5 hacks/config/t3d.xml.h:8 +#: hacks/config/topblock.xml.h:9 hacks/config/twang.xml.h:5 +#: hacks/config/wander.xml.h:8 hacks/config/xmountains.xml.h:17 msgid "High" msgstr "Haut(e)" @@ -1959,179 +1959,167 @@ msgstr "Ignorer les bords de l'écran" msgid "Inward" msgstr "Intérieur" -#: hacks/config/attraction.xml.h:14 -msgid "" -"Like qix, this uses a simple simple motion model to generate many different " -"display modes. The control points attract each other up to a certain " -"distance, and then begin to repel each other. The attraction/repulsion is " -"proportional to the distance between any two particles, similar to the " -"strong and weak nuclear forces. One of the most interesting ways to watch " -"this hack is simply as bouncing balls, because their motions and " -"interactions with each other are so odd. Sometimes two balls will get into a " -"tight orbit around each other, to be interrupted later by a third, or by the " -"edge of the screen. It looks quite chaotic. Written by Jamie Zawinski, based " -"on Lisp code by John Pezaris." -msgstr "" -"Comme qix, il utilise un modèle de mouvement simple pour générer de nombreux " -"modes d'affichage différents. Les points de contrôle s'attirent jusqu'à une " -"certaine distance, puis commencent à se repousser. Le rapport d'attraction/" -"répulsion est proportionnel à la distance entre deux particules, à l'instar " -"des forces nucléaires fortes et faibles. Il est particulièrement intéressant " -"de regarder ce hack simplement sous la forme de balles qui rebondissent, car " -"leurs mouvements et leurs interactions sont très étranges. Il arrive parfois " -"que deux balles entrent en orbite l'une avec l'autre, avant d'être " -"interrompues par une troisième ou par le bord de l'écran. L'ensemble est " -"assez chaotique. Écrit par Jamie Zawinski, sur la base d'un code Lisp de " -"John Pezaris." - -#: hacks/config/attraction.xml.h:15 hacks/config/deluxe.xml.h:5 +#: hacks/config/attraction.xml.h:14 hacks/config/deluxe.xml.h:6 #: hacks/config/lmorph.xml.h:7 hacks/config/pedal.xml.h:5 #: hacks/config/starfish.xml.h:4 hacks/config/whirlygig.xml.h:10 msgid "Lines" msgstr "Ligne" -#: hacks/config/attraction.xml.h:16 hacks/config/blocktube.xml.h:5 +#: hacks/config/attraction.xml.h:15 hacks/config/blocktube.xml.h:6 #: hacks/config/braid.xml.h:6 hacks/config/celtic.xml.h:4 -#: hacks/config/crackberg.xml.h:13 hacks/config/cube21.xml.h:9 -#: hacks/config/cynosure.xml.h:5 hacks/config/drift.xml.h:8 +#: hacks/config/crackberg.xml.h:11 hacks/config/cube21.xml.h:9 +#: hacks/config/cynosure.xml.h:4 hacks/config/drift.xml.h:5 #: hacks/config/eruption.xml.h:11 hacks/config/euler2d.xml.h:6 #: hacks/config/fiberlamp.xml.h:5 hacks/config/fireflies.xml.h:21 -#: hacks/config/flow.xml.h:6 hacks/config/fontglide.xml.h:8 -#: hacks/config/galaxy.xml.h:5 hacks/config/juggle.xml.h:4 +#: hacks/config/flow.xml.h:8 hacks/config/fontglide.xml.h:8 +#: hacks/config/galaxy.xml.h:5 hacks/config/juggle.xml.h:10 #: hacks/config/klein.xml.h:4 hacks/config/laser.xml.h:5 #: hacks/config/menger.xml.h:4 hacks/config/metaballs.xml.h:5 #: hacks/config/mismunch.xml.h:3 hacks/config/munch.xml.h:4 #: hacks/config/nerverot.xml.h:13 hacks/config/petri.xml.h:9 -#: hacks/config/polyominoes.xml.h:4 hacks/config/rotor.xml.h:5 -#: hacks/config/shadebobs.xml.h:4 hacks/config/sierpinski3d.xml.h:3 +#: hacks/config/pipes.xml.h:10 hacks/config/polyominoes.xml.h:4 +#: hacks/config/rotor.xml.h:5 hacks/config/shadebobs.xml.h:4 +#: hacks/config/sierpinski3d.xml.h:3 hacks/config/slidescreen.xml.h:5 #: hacks/config/spheremonics.xml.h:7 hacks/config/substrate.xml.h:11 -#: hacks/config/timetunnel.xml.h:6 hacks/config/wander.xml.h:10 -#: hacks/config/whirlwindwarp.xml.h:3 +#: hacks/config/superquadrics.xml.h:6 hacks/config/timetunnel.xml.h:6 +#: hacks/config/wander.xml.h:10 hacks/config/whirlwindwarp.xml.h:3 msgid "Long" msgstr "Long(ue)" -#: hacks/config/attraction.xml.h:17 hacks/config/carousel.xml.h:9 +#: hacks/config/attraction.xml.h:16 hacks/config/carousel.xml.h:9 #: hacks/config/ccurve.xml.h:10 hacks/config/cloudlife.xml.h:8 -#: hacks/config/cubenetic.xml.h:12 hacks/config/euler2d.xml.h:7 +#: hacks/config/cubenetic.xml.h:9 hacks/config/euler2d.xml.h:7 #: hacks/config/flame.xml.h:10 hacks/config/fliptext.xml.h:10 #: hacks/config/glslideshow.xml.h:16 hacks/config/goop.xml.h:7 -#: hacks/config/halftone.xml.h:9 hacks/config/hopalong.xml.h:14 +#: hacks/config/halftone.xml.h:10 hacks/config/hopalong.xml.h:14 #: hacks/config/hyperball.xml.h:6 hacks/config/hypercube.xml.h:5 -#: hacks/config/interference.xml.h:12 hacks/config/jigglypuff.xml.h:11 -#: hacks/config/kumppa.xml.h:6 hacks/config/lavalite.xml.h:14 -#: hacks/config/nerverot.xml.h:14 hacks/config/petri.xml.h:10 -#: hacks/config/pyro.xml.h:7 hacks/config/qix.xml.h:13 -#: hacks/config/speedmine.xml.h:6 hacks/config/spheremonics.xml.h:8 -#: hacks/config/spiral.xml.h:5 hacks/config/squiral.xml.h:8 -#: hacks/config/superquadrics.xml.h:6 hacks/config/t3d.xml.h:8 -#: hacks/config/twang.xml.h:7 hacks/config/wander.xml.h:11 +#: hacks/config/ifs.xml.h:6 hacks/config/interference.xml.h:12 +#: hacks/config/jigglypuff.xml.h:11 hacks/config/kumppa.xml.h:6 +#: hacks/config/lavalite.xml.h:14 hacks/config/nerverot.xml.h:14 +#: hacks/config/petri.xml.h:10 hacks/config/pyro.xml.h:7 +#: hacks/config/qix.xml.h:14 hacks/config/speedmine.xml.h:6 +#: hacks/config/spheremonics.xml.h:8 hacks/config/spiral.xml.h:5 +#: hacks/config/squiral.xml.h:8 hacks/config/superquadrics.xml.h:7 +#: hacks/config/t3d.xml.h:9 hacks/config/topblock.xml.h:11 +#: hacks/config/twang.xml.h:8 hacks/config/wander.xml.h:11 msgid "Low" msgstr "Bas(se)" -#: hacks/config/attraction.xml.h:20 +#: hacks/config/attraction.xml.h:19 msgid "Orbital Mode" msgstr "Mode orbital" -#: hacks/config/attraction.xml.h:21 +#: hacks/config/attraction.xml.h:20 msgid "Outward" msgstr "Extérieur" -#: hacks/config/attraction.xml.h:22 +#: hacks/config/attraction.xml.h:21 msgid "Polygons" msgstr "Polygones" -#: hacks/config/attraction.xml.h:23 hacks/config/fuzzyflakes.xml.h:13 -#: hacks/config/spotlight.xml.h:3 hacks/config/xplanet.xml.h:55 +#: hacks/config/attraction.xml.h:22 hacks/config/fuzzyflakes.xml.h:13 +#: hacks/config/xplanet.xml.h:55 msgid "Radius" msgstr "Rayon" -#: hacks/config/attraction.xml.h:24 +#: hacks/config/attraction.xml.h:23 msgid "Repulsion Threshold" msgstr "Seuil de répulsion" -#: hacks/config/attraction.xml.h:25 hacks/config/blocktube.xml.h:7 +#: hacks/config/attraction.xml.h:24 hacks/config/blocktube.xml.h:7 #: hacks/config/braid.xml.h:10 hacks/config/celtic.xml.h:7 -#: hacks/config/crackberg.xml.h:17 hacks/config/cube21.xml.h:12 -#: hacks/config/cynosure.xml.h:8 hacks/config/drift.xml.h:11 +#: hacks/config/crackberg.xml.h:15 hacks/config/cube21.xml.h:12 +#: hacks/config/cynosure.xml.h:8 hacks/config/drift.xml.h:8 #: hacks/config/eruption.xml.h:18 hacks/config/euler2d.xml.h:12 #: hacks/config/fiberlamp.xml.h:7 hacks/config/fireflies.xml.h:34 -#: hacks/config/flow.xml.h:9 hacks/config/galaxy.xml.h:9 -#: hacks/config/juggle.xml.h:7 hacks/config/klein.xml.h:5 +#: hacks/config/flow.xml.h:15 hacks/config/galaxy.xml.h:9 +#: hacks/config/juggle.xml.h:15 hacks/config/klein.xml.h:5 #: hacks/config/laser.xml.h:9 hacks/config/menger.xml.h:14 #: hacks/config/metaballs.xml.h:12 hacks/config/mismunch.xml.h:8 #: hacks/config/munch.xml.h:6 hacks/config/nerverot.xml.h:19 -#: hacks/config/petri.xml.h:22 hacks/config/polyominoes.xml.h:9 -#: hacks/config/rotor.xml.h:9 hacks/config/shadebobs.xml.h:8 -#: hacks/config/sierpinski3d.xml.h:5 hacks/config/spheremonics.xml.h:17 -#: hacks/config/substrate.xml.h:14 hacks/config/timetunnel.xml.h:8 -#: hacks/config/wander.xml.h:12 hacks/config/whirlwindwarp.xml.h:6 +#: hacks/config/petri.xml.h:22 hacks/config/pipes.xml.h:17 +#: hacks/config/polyominoes.xml.h:9 hacks/config/rotor.xml.h:9 +#: hacks/config/shadebobs.xml.h:9 hacks/config/sierpinski3d.xml.h:5 +#: hacks/config/slidescreen.xml.h:7 hacks/config/spheremonics.xml.h:17 +#: hacks/config/substrate.xml.h:14 hacks/config/superquadrics.xml.h:9 +#: hacks/config/timetunnel.xml.h:8 hacks/config/wander.xml.h:12 +#: hacks/config/whirlwindwarp.xml.h:6 msgid "Short" msgstr "Court(e)" -#: hacks/config/attraction.xml.h:29 +#: hacks/config/attraction.xml.h:28 msgid "Splines" msgstr "Rayons" -#: hacks/config/attraction.xml.h:30 hacks/config/fireflies.xml.h:42 +#: hacks/config/attraction.xml.h:29 hacks/config/fireflies.xml.h:42 msgid "Tails" msgstr "Queues" -#: hacks/config/attraction.xml.h:31 hacks/config/euler2d.xml.h:16 -#: hacks/config/juggle.xml.h:10 +#: hacks/config/attraction.xml.h:30 hacks/config/euler2d.xml.h:16 +#: hacks/config/juggle.xml.h:18 msgid "Trail Length" msgstr "Longueur de la traînée" +#: hacks/config/attraction.xml.h:32 +msgid "" +"Uses a simple simple motion model to generate many different display modes. " +"The control points attract each other up to a certain distance, and then " +"begin to repel each other. The attraction/repulsion is proportional to the " +"distance between any two particles, similar to the strong and weak nuclear " +"forces. Written by Jamie Zawinski and John Pezaris; 1992." +msgstr "" + #: hacks/config/atunnel.xml.h:1 msgid "Atunnel" msgstr "Tunnel GL" #: hacks/config/atunnel.xml.h:2 msgid "" -"Draws an animation of a textured tunnel in GL. Requires OpenGL, and a " -"machine with fast hardware support for texture maps. Written by Eric " -"Lassauge and Roman Podobedov." +"Draws an animation of a textured tunnel in GL. Written by Eric Lassauge and " +"Roman Podobedov; 2003." msgstr "" -"Dessine une animation d'un tunnel texturé en 3D. Nécessite OpenGL et une " -"machine avec un support matériel puissant pour les textures. Écrit par Eric " -"Lassauge <lassauge@users.sourceforge.net> et Roman Podobedov." - -#: hacks/config/atunnel.xml.h:4 hacks/config/distort.xml.h:9 -#: hacks/config/glforestfire.xml.h:10 hacks/config/lament.xml.h:4 -#: hacks/config/sballs.xml.h:6 -msgid "Normal" -msgstr "Normal" +"Dessine une animation d'un tunnel texturé en 3D. " +"Écrit par Eric Lassauge et Roman Podobedov; 2003." -#: hacks/config/atunnel.xml.h:8 hacks/config/cube21.xml.h:24 -#: hacks/config/glforestfire.xml.h:18 hacks/config/lament.xml.h:8 -#: hacks/config/sballs.xml.h:17 -msgid "Untextured" -msgstr "Sans texture" +#: hacks/config/atunnel.xml.h:4 hacks/config/boing.xml.h:4 +#: hacks/config/crackberg.xml.h:10 +msgid "Lighting" +msgstr "Éclair" -#: hacks/config/atunnel.xml.h:9 -msgid "Use light" -msgstr "Utiliser l'éclairage" +#: hacks/config/atunnel.xml.h:8 hacks/config/blocktube.xml.h:11 +#: hacks/config/cube21.xml.h:22 hacks/config/cubenetic.xml.h:25 +#: hacks/config/glmatrix.xml.h:17 hacks/config/lament.xml.h:7 +#: hacks/config/sballs.xml.h:16 +msgid "Textured" +msgstr "Texturé" #: hacks/config/barcode.xml.h:1 msgid "Barcode" -msgstr "Codes barre" +msgstr "Code-barres" #: hacks/config/barcode.xml.h:2 msgid "Barcode Clock (24 Hour)" -msgstr "Horloge codes barre (24 heures)" +msgstr "Horloge code-barres (24 heures)" #: hacks/config/barcode.xml.h:3 msgid "Barcode Clock (AM/PM)" -msgstr "Horloge codes barre (AM/PM)" +msgstr "Horloge code-barres (AM/PM)" -#: hacks/config/barcode.xml.h:5 -msgid "Scrolling Barcodes" -msgstr "Codes barre défilants" +#: hacks/config/barcode.xml.h:4 +msgid "Barcode Grid" +msgstr "Grille des code-barres" -#: hacks/config/barcode.xml.h:8 +#: hacks/config/barcode.xml.h:5 msgid "" -"This draws a random sequence of colorful barcodes scrolling across your " -"screen. CONSUME! By Dan Bornstein." +"Draws a random sequence of colorful barcodes scrolling across your screen. " +"CONSUME! Written by Dan Bornstein; 2003." msgstr "" +"Dessine une séquence aléatoire de codes-barres colorés qui défilent sur " +"votre écran. CONSOMMEZ ! Écrit par Dan Bornstein; 2003." + +#: hacks/config/barcode.xml.h:7 +msgid "Scrolling Barcodes" +msgstr "Codes-barres défilants" #: hacks/config/blaster.xml.h:1 msgid "Blaster" @@ -2141,11 +2129,11 @@ msgstr "Explosion" msgid "" "Draws a simulation of flying space-combat robots (cleverly disguised as " "colored circles) doing battle in front of a moving star field. Written by " -"Jonathan Lin." +"Jonathan Lin; 1999." msgstr "" "Dessine une simulation de robots de combat volants (ingénieusement déguisés " "en cercles colorés) en guerre sur un fond de champ stellaire animé. Écrit " -"par Jonathan Lin." +"par Jonathan Lin; 1999." #: hacks/config/blaster.xml.h:5 hacks/config/penetrate.xml.h:4 msgid "Lasers" @@ -2155,7 +2143,7 @@ msgstr "Lasers" msgid "Robots" msgstr "Robots" -#: hacks/config/blaster.xml.h:10 hacks/config/glplanet.xml.h:11 +#: hacks/config/blaster.xml.h:10 hacks/config/glplanet.xml.h:10 msgid "Stars" msgstr "Étoiles" @@ -2165,13 +2153,13 @@ msgstr "BlinkBox" #: hacks/config/blinkbox.xml.h:2 msgid "Box Size" -msgstr "Taille boite" +msgstr "Taille boîte" #: hacks/config/blinkbox.xml.h:3 msgid "Dissolve" msgstr "Dissolution" -#: hacks/config/blinkbox.xml.h:4 hacks/config/phosphor.xml.h:3 +#: hacks/config/blinkbox.xml.h:4 hacks/config/phosphor.xml.h:2 msgid "Fade" msgstr "Flétrissement" @@ -2182,7 +2170,7 @@ msgstr "Flou de déplacement" #: hacks/config/blinkbox.xml.h:7 msgid "" "Shows a ball contained inside of a bounding box. Colored blocks blink in " -"when the ball hits the edges. Written by Jeremy English." +"when the ball hits the edges. Written by Jeremy English; 2003." msgstr "" #: hacks/config/blitspin.xml.h:1 @@ -2202,31 +2190,14 @@ msgid "Fuzzy Rotation Speed" msgstr "Vitesse de rotation du brouillage" #: hacks/config/blitspin.xml.h:6 -msgid "Grab Screen" -msgstr "Capturer l'écran" - -#: hacks/config/blitspin.xml.h:8 -msgid "" -"The ``blitspin'' hack repeatedly rotates a bitmap by 90 degrees by using " -"logical operations: the bitmap is divided into quadrants, and the quadrants " -"are shifted clockwise. Then the same thing is done again with progressively " -"smaller quadrants, except that all sub-quadrants of a given size are rotated " -"in parallel. Written by Jamie Zawinski based on some cool SmallTalk code " -"seen in in Byte Magazine in 1981. As you watch it, the image appears to " -"dissolve into static and then reconstitute itself, but rotated. You can " -"provide the image to use, as an XBM or XPM file, or tell it to grab a screen " -"image and rotate that." -msgstr "" -"Le mode Rotation Bitmap fait pivoter à plusieurs reprises un bitmap de 90° à " -"l'aide d'opérations logiques: le bitmap est divisé en quadrants, qui " -"pivotent dans le sens horaire. La même opération est répétée avec des " -"quadrants progressivement plus petits, à ceci près que tous les sous-" -"quadrants d'une certaine taille pivotent parallèlement. Écrit par Jamie " -"Zawinski sur la base d'un super code SmallTalk trouvé dans Byte Magazine en " -"1981. Lorsque vous la regardez, l'image semble se dissoudre en parasites " -"puis se reconstituer avec une rotation. Vous pouvez fournir l'image à " -"utiliser, au format XBM ou XPM, ou effectuer une capture d'écran et la faire " -"pivoter." +msgid "" +"Repeatedly rotates a bitmap by 90 degrees by using logical operations: the " +"bitmap is divided into quadrants, and the quadrants are shifted clockwise. " +"Then the same thing is done again with progressively smaller quadrants, " +"except that all sub-quadrants of a given size are rotated in parallel. As " +"you watch it, the image appears to dissolve into static and then " +"reconstitute itself, but rotated. Written by Jamie Zawinski; 1992." +msgstr "" #: hacks/config/blocktube.xml.h:1 msgid "BlockTube" @@ -2240,18 +2211,10 @@ msgstr "Durée de changement de couleur" msgid "Color Hold Time" msgstr "Durée de rétention de couleur" -#: hacks/config/blocktube.xml.h:6 -msgid "Reflective Blocks" -msgstr "Blocs Réflechissants" - -#: hacks/config/blocktube.xml.h:10 -msgid "Solid Blocks" -msgstr "Blocs pleins" - -#: hacks/config/blocktube.xml.h:12 +#: hacks/config/blocktube.xml.h:4 msgid "" -"This hack draws a swirling, falling tunnel of reflective slabs. They fade " -"from hue to hue. Written by Lars R. Damerow." +"Draws a swirling, falling tunnel of reflective slabs. They fade from hue to " +"hue. Written by Lars R. Damerow; 2003." msgstr "" #: hacks/config/boing.xml.h:1 @@ -2263,10 +2226,6 @@ msgstr "Boïng" msgid "Huge" msgstr "Énorme" -#: hacks/config/boing.xml.h:4 hacks/config/crackberg.xml.h:12 -msgid "Lighting" -msgstr "Éclair" - #: hacks/config/boing.xml.h:5 msgid "Meridians" msgstr "Méridiens" @@ -2279,11 +2238,9 @@ msgstr "Parallèles" msgid "Scanlines" msgstr "Lignes" -#: hacks/config/boing.xml.h:9 hacks/config/galaxy.xml.h:10 -#: hacks/config/lisa.xml.h:7 hacks/config/lissie.xml.h:8 -#: hacks/config/loop.xml.h:6 hacks/config/penrose.xml.h:7 -#: hacks/config/pong.xml.h:3 hacks/config/rotor.xml.h:10 -#: hacks/config/rubik.xml.h:8 hacks/config/sproingies.xml.h:5 +#: hacks/config/boing.xml.h:9 hacks/config/lisa.xml.h:8 +#: hacks/config/lissie.xml.h:7 hacks/config/loop.xml.h:7 +#: hacks/config/rotor.xml.h:10 hacks/config/rubik.xml.h:8 #: hacks/config/wander.xml.h:13 hacks/config/worm.xml.h:6 msgid "Size" msgstr "Taille" @@ -2298,20 +2255,20 @@ msgid "" "which was written by Dale Luck and RJ Mical during a break at the 1984 " "Consumer Electronics Show (or so the legend goes.) This looks like the " "original Amiga demo if you turn off \"smoothing\" and \"lighting\" and turn " -"on \"scanlines\". Written by Jamie Zawinski." +"on \"scanlines\". Written by Jamie Zawinski; 2005." msgstr "" #: hacks/config/boing.xml.h:14 hacks/config/boxed.xml.h:16 #: hacks/config/fireflies.xml.h:43 hacks/config/pinion.xml.h:14 msgid "Tiny" -msgstr "Fin" +msgstr "Fin(e)" #: hacks/config/bouboule.xml.h:1 msgid "Bouboule" msgstr "Bouboule" #: hacks/config/bouboule.xml.h:2 hacks/config/rocks.xml.h:3 -msgid "Do Red/Blue 3D seperation" +msgid "Do Red/Blue 3D separation" msgstr "Séparation rouge/bleu 3D" #: hacks/config/bouboule.xml.h:7 @@ -2321,58 +2278,53 @@ msgstr "Nombre de taches" #: hacks/config/bouboule.xml.h:10 msgid "" "This draws what looks like a spinning, deforming balloon with varying-sized " -"spots painted on its invisible surface. Written by Jeremie Petit." +"spots painted on its invisible surface. Written by Jeremie Petit; 1997." msgstr "" "Dessine une sorte de ballon qui tournoie et se déforme. Des taches de taille " -"variable sont peintes sur sa surface invisible. Écrit par Jeremie Petit." +"variable sont peintes sur sa surface invisible. Écrit par Jeremie Petit; 1997." #: hacks/config/bouncingcow.xml.h:1 -msgid "A Cow. A Trampoline. Together, they fight crime. By Jamie Zawinski." +msgid "" +"A Cow. A Trampoline. Together, they fight crime. Written by Jamie Zawinski; " +"2003." msgstr "" "Une vache. Un trampoline. Ensemble ils combattent le crime. Écrit par Jamie " -"Zawinski." +"Zawinski; 2003." #: hacks/config/bouncingcow.xml.h:2 hacks/config/boxed.xml.h:1 #: hacks/config/carousel.xml.h:3 hacks/config/ccurve.xml.h:3 #: hacks/config/cubestorm.xml.h:1 hacks/config/flyingtoasters.xml.h:3 #: hacks/config/fontglide.xml.h:1 hacks/config/gears.xml.h:1 #: hacks/config/gflux.xml.h:1 hacks/config/glknots.xml.h:1 -#: hacks/config/glmatrix.xml.h:1 hacks/config/jigglypuff.xml.h:1 -#: hacks/config/pinion.xml.h:3 hacks/config/polyhedra.xml.h:3 -#: hacks/config/pyro.xml.h:1 hacks/config/rd-bomb.xml.h:6 +#: hacks/config/glmatrix.xml.h:1 hacks/config/halftone.xml.h:1 +#: hacks/config/jigglypuff.xml.h:1 hacks/config/pinion.xml.h:3 +#: hacks/config/polyhedra.xml.h:3 hacks/config/pyro.xml.h:1 +#: hacks/config/rd-bomb.xml.h:6 hacks/config/rdbomb.xml.h:6 #: hacks/config/rocks.xml.h:1 hacks/config/starwars.xml.h:1 -#: hacks/config/wormhole.xml.h:1 hacks/config/xfishtank.xml.h:1 +#: hacks/config/superquadrics.xml.h:1 hacks/config/wormhole.xml.h:1 msgid "Animation Speed" msgstr "Vitesse d'animation" #: hacks/config/bouncingcow.xml.h:3 -msgid "Beefy Cow" -msgstr "Vache costaude" - -#: hacks/config/bouncingcow.xml.h:4 msgid "Bounce Speed" msgstr "Vitesse de rebond" -#: hacks/config/bouncingcow.xml.h:5 +#: hacks/config/bouncingcow.xml.h:4 msgid "BouncingCow" msgstr "Vache bondissante" -#: hacks/config/bouncingcow.xml.h:7 +#: hacks/config/bouncingcow.xml.h:6 msgid "Herd" msgstr "Troupeau" -#: hacks/config/bouncingcow.xml.h:8 +#: hacks/config/bouncingcow.xml.h:7 msgid "Moo" msgstr "Meuh" -#: hacks/config/bouncingcow.xml.h:9 +#: hacks/config/bouncingcow.xml.h:8 msgid "Number of Cows" msgstr "Nombre de vaches" -#: hacks/config/bouncingcow.xml.h:11 -msgid "Wireframe Cow" -msgstr "Vache file de fer" - #: hacks/config/boxed.xml.h:2 hacks/config/fluidballs.xml.h:2 msgid "Ball Size" msgstr "Taille des balles" @@ -2384,17 +2336,19 @@ msgstr "En boîte" #: hacks/config/boxed.xml.h:4 msgid "" "Draws a box full of 3D bouncing balls that explode. Written by Sander van " -"Grieken." +"Grieken; 2002." msgstr "" "Dessine une boîte remplie de balles 3D qui explosent. Écrit par Sander van " -"Grieken." +"Grieken; 2002." #: hacks/config/boxed.xml.h:5 msgid "Explosion Force" msgstr "Force des explosions" -#: hacks/config/boxed.xml.h:9 hacks/config/pipes.xml.h:9 -#: hacks/config/substrate.xml.h:12 hacks/config/wormhole.xml.h:4 +#: hacks/config/boxed.xml.h:9 hacks/config/glschool.xml.h:11 +#: hacks/config/julia.xml.h:8 hacks/config/mountain.xml.h:3 +#: hacks/config/pipes.xml.h:11 hacks/config/sproingies.xml.h:2 +#: hacks/config/substrate.xml.h:12 hacks/config/wormhole.xml.h:5 msgid "Lots" msgstr "Beaucoup" @@ -2442,7 +2396,7 @@ msgstr "Cercles seulement" #: hacks/config/boxfit.xml.h:7 msgid "Color Gradient" -msgstr "Dégradés de couleur" +msgstr "Dégradé de couleur" #: hacks/config/boxfit.xml.h:9 msgid "Grab Images" @@ -2458,10 +2412,14 @@ msgid "" "horizontal or vertical gradient, or according to the colors of the desktop " "or a loaded image file. The objects grow until they touch, then stop. When " "the screen is full, they shrink away and the process restarts. Written by " -"Jamie Zawinski." +"Jamie Zawinski; 2005." msgstr "" -#: hacks/config/boxfit.xml.h:13 hacks/config/xearth.xml.h:23 +#: hacks/config/boxfit.xml.h:12 +msgid "Peek at underlying images" +msgstr "Coup d'oeil aux images en arrière-plan" + +#: hacks/config/boxfit.xml.h:14 msgid "Spacing" msgstr "Espacement" @@ -2472,19 +2430,18 @@ msgstr "Entrelacement" #: hacks/config/braid.xml.h:2 msgid "" "Draws random color-cycling inter-braided concentric circles. Written by John " -"Neil." +"Neil; 1997." msgstr "" "Dessine des cercles concentriques aléatoires entrelacés, avec des cycles de " -"couleurs. Écrit par John Neil." +"couleurs. Écrit par John Neil; 1997." #: hacks/config/braid.xml.h:3 hacks/config/bsod.xml.h:9 -#: hacks/config/coral.xml.h:6 hacks/config/cynosure.xml.h:3 -#: hacks/config/deco.xml.h:4 hacks/config/drift.xml.h:2 -#: hacks/config/epicycle.xml.h:3 hacks/config/eruption.xml.h:3 -#: hacks/config/euler2d.xml.h:1 hacks/config/flame.xml.h:5 -#: hacks/config/galaxy.xml.h:2 hacks/config/glsnake.xml.h:5 -#: hacks/config/helix.xml.h:3 hacks/config/hopalong.xml.h:2 -#: hacks/config/imsmap.xml.h:6 hacks/config/klein.xml.h:1 +#: hacks/config/cynosure.xml.h:2 hacks/config/deco.xml.h:4 +#: hacks/config/drift.xml.h:3 hacks/config/epicycle.xml.h:3 +#: hacks/config/eruption.xml.h:2 hacks/config/euler2d.xml.h:1 +#: hacks/config/flame.xml.h:4 hacks/config/galaxy.xml.h:2 +#: hacks/config/glsnake.xml.h:5 hacks/config/helix.xml.h:3 +#: hacks/config/hopalong.xml.h:2 hacks/config/klein.xml.h:1 #: hacks/config/laser.xml.h:2 hacks/config/menger.xml.h:2 #: hacks/config/metaballs.xml.h:3 hacks/config/mismunch.xml.h:1 #: hacks/config/moire.xml.h:3 hacks/config/molecule.xml.h:10 @@ -2494,8 +2451,8 @@ msgstr "" #: hacks/config/rotzoomer.xml.h:5 hacks/config/shadebobs.xml.h:2 #: hacks/config/sierpinski3d.xml.h:1 hacks/config/spheremonics.xml.h:4 #: hacks/config/starfish.xml.h:2 hacks/config/substrate.xml.h:6 -#: hacks/config/vidwhacker.xml.h:3 hacks/config/wander.xml.h:7 -#: hacks/config/xspirograph.xml.h:3 +#: hacks/config/superquadrics.xml.h:3 hacks/config/vidwhacker.xml.h:3 +#: hacks/config/wander.xml.h:7 hacks/config/xspirograph.xml.h:3 msgid "Duration" msgstr "Durée" @@ -2539,13 +2496,13 @@ msgstr "BSOD" #: hacks/config/bsod.xml.h:8 msgid "" -"BSOD stands for ``Blue Screen of Death.'' The finest in personal computer " -"emulation, this hack simulates popular screen savers from a number of less " -"robust operating systems. Written by Jamie Zawinski." +"BSOD stands for \"Blue Screen of Death\". The finest in personal computer " +"emulation, this program simulates popular screen savers from a number of " +"less robust operating systems. Written by Jamie Zawinski; 1998." msgstr "" "BSOD signifie «Blue Screen of Death» (écran bleu de la mort). Fine fleur de " "l'émulation PC, ce hack simule des économiseurs d'écran de plusieurs " -"systèmes d'exploitation moins puissants. Écrit par Jamie Zawinski." +"systèmes d'exploitation moins puissants. Écrit par Jamie Zawinski; 1998." #: hacks/config/bsod.xml.h:10 msgid "HPUX" @@ -2642,16 +2599,17 @@ msgstr "Bulles 3D" #: hacks/config/bubble3d.xml.h:3 msgid "" "Draws a stream of rising, undulating 3D bubbles, rising toward the top of " -"the screen, with nice specular reflections. Written by Richard Jones." +"the screen, with transparency and specular reflections. Written by Richard " +"Jones; 1998." msgstr "" "Dessine un flux de bulles 3D ondulantes, qui montent vers le haut de " -"l'écran, avec de belles réflexions spéculaires. Écrit par Richard Jones." +"l'écran, avec de belles réflexions spéculaires. Écrit par Richard Jones; 1998." #: hacks/config/bubble3d.xml.h:8 msgid "Transparent Bubbles" msgstr "Bulles transparentes" -#: hacks/config/bubbles.xml.h:1 hacks/config/xfishtank.xml.h:2 +#: hacks/config/bubbles.xml.h:1 msgid "Bubbles" msgstr "Bulles" @@ -2676,8 +2634,8 @@ msgid "Don't hide bubbles when they pop" msgstr "Ne pas masquer les bulles lorsqu'elles éclatent" #: hacks/config/bubbles.xml.h:7 -msgid "Draw circles instead of pixmap bubbles" -msgstr "Tracer des cercles au lieu de bulles pixmap" +msgid "Draw circles instead of bubble images" +msgstr "Tracer des cercles au lieu des images de bulles" #: hacks/config/bubbles.xml.h:9 msgid "Leave Trails" @@ -2687,23 +2645,18 @@ msgstr "Laisser des traînées" msgid "" "This simulates the kind of bubble formation that happens when water boils:" "small bubbles appear, and as they get closer to each other, they combine to " -"form larger bubbles, which eventually pop. Written by James Macnicol." +"form larger bubbles, which eventually pop. Written by James Macnicol; 1996." msgstr "" "Simule le type de formation de bulles qui se produit lorsque de l'eau entre " "en ébullition: de petites bulles apparaissent et, lorsqu'elles se " "rapprochent, elles se combinent pour former de plus grandes bulles, qui " -"finissent par éclater. Écrit par James Macnicol." +"finissent par éclater. Écrit par James Macnicol; 1996." #: hacks/config/bumps.xml.h:1 msgid "" -"A bit like `Spotlight', except that instead of merely exposing part of your " -"desktop, it creates a bump map from it. Basically, it 3D-izes a roaming " -"section of your desktop, based on color intensity. Written by Shane Smit." +"A spotlight roams across an embossed version of your desktop or other " +"picture. Written by Shane Smit; 1999." msgstr "" -"Un peu comme «Faisceau lumineux», à ceci près qu'au lieu d'exposer " -"simplement une partie du bureau, il en crée un placage de relief. En fait, " -"il met en 3 dimensions une section variable du bureau, en fonction de " -"l'intensité des couleurs. Écrit par Shane Smit." #: hacks/config/bumps.xml.h:2 msgid "Bumps" @@ -2713,17 +2666,13 @@ msgstr "Reliefs" msgid "Cage" msgstr "Cage" -#: hacks/config/cage.xml.h:7 hacks/config/cube21.xml.h:22 -msgid "Textured" -msgstr "Texturée" - -#: hacks/config/cage.xml.h:8 +#: hacks/config/cage.xml.h:6 msgid "" -"This draws Escher's ``Impossible Cage,'' a 3d analog of a moebius strip, and " -"rotates it in three dimensions. Written by Marcelo Vianna." +"This draws Escher's \"Impossible Cage\", a 3d analog of a moebius strip, and " +"rotates it in three dimensions. Written by Marcelo Vianna; 1998." msgstr "" -"Dessine la «Cage impossible» d'Escher, une analogie en 3D d'un ruban de " -"Moebius, et la fait pivoter en 3 dimensions. Écrit par Marcelo Vianna." +"Dessine la «cage impossible» d'Escher, une analogie en 3D d'un ruban de " +"Moebius, et la fait pivoter en 3 dimensions. Écrit par Marcelo Vianna; 1998." #: hacks/config/carousel.xml.h:1 hacks/config/coral.xml.h:1 #: hacks/config/deco.xml.h:1 hacks/config/helix.xml.h:1 @@ -2750,14 +2699,9 @@ msgstr "Vitesse de trame" #: hacks/config/carousel.xml.h:8 msgid "" "Loads several random images, and displays them flying in a circular " -"formation. The circle changes speed and direction randomly, tilts on its " -"axis, and the images move in and out. To tell it where to find the images to " -"display, go to the \"Advanced\" tab on the Screensaver Preferences window. " -"Select \"Choose Random Images\", and enter your image directory in the text " -"field right below that. (Note: not the the \"Advanced\" button at the bottom " -"of this window: the tab at the top of the *other* window.) This program " -"requires a good video card capable of supporting large textures. Written by " -"Jamie Zawinski." +"formation. The formation changes speed and direction randomly, and images " +"periodically drop out to be replaced by new ones. Written by Jamie Zawinski; " +"2005." msgstr "" #: hacks/config/carousel.xml.h:10 @@ -2770,7 +2714,7 @@ msgstr "Nombre d'images :" #: hacks/config/carousel.xml.h:13 hacks/config/glslideshow.xml.h:20 msgid "Show Image Titles" -msgstr "Montre le titre de l'image" +msgstr "Montrer le titre de l'image" #: hacks/config/carousel.xml.h:15 msgid "Tilt In/Out Only" @@ -2785,7 +2729,7 @@ msgid "Tilt Left/Right Only" msgstr "Tilt gauche/droite seulement" #: hacks/config/carousel.xml.h:18 hacks/config/glslideshow.xml.h:21 -#: hacks/config/mirrorblob.xml.h:21 +#: hacks/config/mirrorblob.xml.h:20 msgid "Time until loading a new image:" msgstr "Durée avant chargement d'une nouvelle image :" @@ -2806,24 +2750,24 @@ msgid "C Curve" msgstr "Courbe C" #: hacks/config/ccurve.xml.h:5 -#, fuzzy msgid "Change Image Every" -msgstr "Image ombragée" +msgstr "Changer l'image toutes les" #: hacks/config/ccurve.xml.h:6 hacks/config/coral.xml.h:5 #: hacks/config/imsmap.xml.h:5 hacks/config/kumppa.xml.h:1 -#: hacks/config/qix.xml.h:6 hacks/config/squiral.xml.h:2 -#: hacks/config/wander.xml.h:4 hacks/config/xmatrix.xml.h:2 +#: hacks/config/qix.xml.h:7 hacks/config/squiral.xml.h:2 +#: hacks/config/superquadrics.xml.h:2 hacks/config/wander.xml.h:4 +#: hacks/config/xmatrix.xml.h:2 msgid "Density" msgstr "Densité" #: hacks/config/ccurve.xml.h:8 msgid "" -"Generates self-similar linear fractals, including the classic ``C Curve.'' " -"Written by Rick Campbell." +"Generates self-similar linear fractals, including the classic \"C Curve\". " +"Written by Rick Campbell; 1999." msgstr "" "Génère des fractales linéaires auto-similaires, notamment la fameuse «courbe " -"C». Écrit par Rick Campbell." +"C». Écrit par Rick Campbell; 1999." #: hacks/config/celtic.xml.h:1 msgid "Celtic" @@ -2833,26 +2777,27 @@ msgstr "Celtique" msgid "Draw Graph" msgstr "Dessiner des graphes" -#: hacks/config/celtic.xml.h:5 +#: hacks/config/celtic.xml.h:5 hacks/config/slidescreen.xml.h:6 msgid "Pause" msgstr "Pause" #: hacks/config/celtic.xml.h:6 msgid "" -"Repeatedly draws random Celtic cross-stitch patterns. By Max Froumentin." +"Repeatedly draws random Celtic cross-stitch patterns. Written by Max " +"Froumentin; 2005." msgstr "" -"Dessine répétitivement des motifs de croix celtique. Par Max Froumentin." +"Dessine répétitivement des motifs de croix celtique. Par Max Froumentin; 2005." #: hacks/config/circuit.xml.h:1 -msgid "Animates a number of 3D electronic components. Written by Ben Buxton." -msgstr "Anime plusieurs composants électroniques 3D. Écrit par Ben Buxton." +msgid "" +"Animates a number of 3D electronic components. Written by Ben Buxton; 2001." +msgstr "Anime plusieurs composants électroniques 3D. Écrit par Ben Buxton; 2001." #: hacks/config/circuit.xml.h:2 msgid "Circuit" msgstr "Circuit" #: hacks/config/circuit.xml.h:3 hacks/config/gflux.xml.h:4 -#: hacks/config/pulsar.xml.h:2 msgid "Directional Lighting" msgstr "Éclairage directionnel" @@ -2865,12 +2810,14 @@ msgid "Parts" msgstr "Composants" #: hacks/config/circuit.xml.h:7 hacks/config/flipscreen3d.xml.h:4 -#: hacks/config/gleidescope.xml.h:9 hacks/config/glplanet.xml.h:6 -#: hacks/config/ifs.xml.h:10 +#: hacks/config/gleidescope.xml.h:8 hacks/config/glplanet.xml.h:6 +#: hacks/config/ifs.xml.h:10 hacks/config/tangram.xml.h:2 +#: hacks/config/topblock.xml.h:14 msgid "Rotate" msgstr "Rotation globale" #: hacks/config/circuit.xml.h:8 hacks/config/pinion.xml.h:10 +#: hacks/config/topblock.xml.h:15 msgid "Rotation Speed" msgstr "Vitesse de rotation" @@ -2882,7 +2829,7 @@ msgid "Spin" msgstr "Rotation des objets" #: hacks/config/cloudlife.xml.h:1 hacks/config/demon.xml.h:2 -#: hacks/config/petri.xml.h:1 +#: hacks/config/petri.xml.h:1 hacks/config/slidescreen.xml.h:1 msgid "Cell Size" msgstr "Taille des cellules" @@ -2895,8 +2842,7 @@ msgid "" "Generates cloud-like formations based on a variant of Conway's Life. The " "difference is that cells have a maximum age, after which they count as 3 for " "populating the next generation. This makes long-lived formations explode " -"instead of just sitting there burning a hole in your screen. Written by Don " -"Marti." +"instead of just sitting there. Written by Don Marti; 2003." msgstr "" #: hacks/config/cloudlife.xml.h:6 @@ -2905,35 +2851,35 @@ msgstr "Densité initiale" #: hacks/config/cloudlife.xml.h:9 msgid "Max Age" -msgstr "Age max" +msgstr "Age max." #: hacks/config/cloudlife.xml.h:10 msgid "Old" -msgstr "vieux" +msgstr "Vieux" #: hacks/config/cloudlife.xml.h:14 msgid "Young" -msgstr "jeune" +msgstr "Jeune" #: hacks/config/compass.xml.h:1 msgid "Compass" msgstr "Boussole" #: hacks/config/compass.xml.h:2 hacks/config/deluxe.xml.h:3 -#: hacks/config/fontglide.xml.h:3 hacks/config/fuzzyflakes.xml.h:5 -#: hacks/config/interference.xml.h:6 hacks/config/kumppa.xml.h:2 -#: hacks/config/nerverot.xml.h:6 hacks/config/piecewise.xml.h:3 -#: hacks/config/pipes.xml.h:4 +#: hacks/config/flow.xml.h:2 hacks/config/fontglide.xml.h:3 +#: hacks/config/fuzzyflakes.xml.h:5 hacks/config/interference.xml.h:6 +#: hacks/config/kumppa.xml.h:2 hacks/config/nerverot.xml.h:6 +#: hacks/config/piecewise.xml.h:3 msgid "Double Buffer" msgstr "Double tampon" #: hacks/config/compass.xml.h:6 msgid "" "This draws a compass, with all elements spinning about randomly, for that " -"``lost and nauseous'' feeling. Written by Jamie Zawinski." +"\"lost and nauseous\" feeling. Written by Jamie Zawinski; 1999." msgstr "" "Dessine une boussole, dont tous les éléments tournent de manière aléatoire, " -"pour obtenir ce sentiment de «mal de mer». Écrit par Jamie Zawinski." +"pour obtenir cette sensation de «mal de mer». Écrit par Jamie Zawinski; 1999." #: hacks/config/coral.xml.h:2 hacks/config/deco.xml.h:2 #: hacks/config/glslideshow.xml.h:1 hacks/config/helix.xml.h:2 @@ -2951,26 +2897,32 @@ msgstr "Corail" #: hacks/config/gflux.xml.h:3 hacks/config/glblur.xml.h:2 #: hacks/config/glmatrix.xml.h:3 hacks/config/imsmap.xml.h:4 #: hacks/config/lavalite.xml.h:6 hacks/config/pyro.xml.h:2 -#: hacks/config/qix.xml.h:5 hacks/config/squiral.xml.h:1 -#: hacks/config/xearth.xml.h:4 +#: hacks/config/qix.xml.h:6 hacks/config/squiral.xml.h:1 msgid "Dense" msgstr "Dense" +#: hacks/config/coral.xml.h:8 hacks/config/imsmap.xml.h:9 +msgid "Linger" +msgstr "Persistance" + #: hacks/config/coral.xml.h:10 hacks/config/squiral.xml.h:13 msgid "Seeds" msgstr "Germes" #: hacks/config/coral.xml.h:11 msgid "" -"Simulates coral growth, albeit somewhat slowly. Written by Frederick Roeber." +"Simulates coral growth, albeit somewhat slowly. Written by Frederick Roeber; " +"1997." msgstr "" +"Simule la croissance du corail, bien que un peu lentement. Écrit par " +"Frederick Roeber; 1997." #: hacks/config/coral.xml.h:13 hacks/config/fireworkx.xml.h:10 #: hacks/config/gflux.xml.h:13 hacks/config/glblur.xml.h:15 -#: hacks/config/glmatrix.xml.h:19 hacks/config/imsmap.xml.h:13 +#: hacks/config/glmatrix.xml.h:16 hacks/config/imsmap.xml.h:15 #: hacks/config/lavalite.xml.h:29 hacks/config/pyro.xml.h:14 -#: hacks/config/qix.xml.h:21 hacks/config/squiral.xml.h:15 -#: hacks/config/xearth.xml.h:24 hacks/config/xmatrix.xml.h:17 +#: hacks/config/qix.xml.h:22 hacks/config/squiral.xml.h:15 +#: hacks/config/xmatrix.xml.h:18 msgid "Sparse" msgstr "Faible" @@ -2980,87 +2932,83 @@ msgstr "Cosmos" #: hacks/config/cosmos.xml.h:2 msgid "" -"Draws fireworks and zooming, fading flares. By Tom Campbell. You can find it " -"at <http://www.cosmosx.org/>" +"Draws fireworks and zooming, fading flares. You can find it at <http://" +"www.cosmosx.org/> Written by Tom Campbell." msgstr "" +"Dessine des feux d'artifice ainsi que des fusées éclairantes. " +"Vous pouvez le trouver sur " +". Écrit par Tom Campbell." #: hacks/config/crackberg.xml.h:1 msgid "Confused" -msgstr "Confus" +msgstr "Embrouillé" #: hacks/config/crackberg.xml.h:2 msgid "Crackberg" msgstr "Crackberg" #: hacks/config/crackberg.xml.h:3 -msgid "Display FPS" -msgstr "Affichage images par seconde (FPS)" - -#: hacks/config/crackberg.xml.h:4 msgid "Eagle Nest" msgstr "Nid d'aigle" -#: hacks/config/crackberg.xml.h:5 +#: hacks/config/crackberg.xml.h:4 msgid "Flat Shading" -msgstr "Éclairage plat" +msgstr "Ombrages en aplat" -#: hacks/config/crackberg.xml.h:6 +#: hacks/config/crackberg.xml.h:5 msgid "" "Flies through height maps, optionally animating the creation and destruction " -"of generated tiles; tiles `grow' into place." +"of generated tiles; tiles `grow' into place. Written by Matus Telgarsky; " +"2005." msgstr "" -#: hacks/config/crackberg.xml.h:7 +#: hacks/config/crackberg.xml.h:6 hacks/config/glhanoi.xml.h:4 msgid "Frame Delay" msgstr "Délai entre trames" -#: hacks/config/crackberg.xml.h:8 -msgid "Growing" -msgstr "Grandissant" - -#: hacks/config/crackberg.xml.h:9 +#: hacks/config/crackberg.xml.h:7 msgid "Ice" msgstr "Glace" -#: hacks/config/crackberg.xml.h:10 +#: hacks/config/crackberg.xml.h:8 msgid "Immediate" msgstr "Immédiat" -#: hacks/config/crackberg.xml.h:11 hacks/config/glslideshow.xml.h:14 +#: hacks/config/crackberg.xml.h:9 hacks/config/glslideshow.xml.h:14 msgid "Letterbox" msgstr "Boîte aux lettres" -#: hacks/config/crackberg.xml.h:14 +#: hacks/config/crackberg.xml.h:12 msgid "Mouse Hole" msgstr "Trou de souris" -#: hacks/config/crackberg.xml.h:15 +#: hacks/config/crackberg.xml.h:13 msgid "Plain" msgstr "Solide" -#: hacks/config/crackberg.xml.h:16 hacks/config/flurry.xml.h:8 -#: hacks/config/fontglide.xml.h:12 hacks/config/jigglypuff.xml.h:13 -#: hacks/config/sballs.xml.h:10 hacks/config/whirlygig.xml.h:12 +#: hacks/config/crackberg.xml.h:14 hacks/config/flurry.xml.h:8 +#: hacks/config/gears.xml.h:5 hacks/config/sballs.xml.h:9 +#: hacks/config/starfish.xml.h:8 hacks/config/whirlygig.xml.h:12 msgid "Random" msgstr "Aléatoire" -#: hacks/config/crackberg.xml.h:18 +#: hacks/config/crackberg.xml.h:17 msgid "Subdivisions" msgstr "Sub-divisions" -#: hacks/config/crackberg.xml.h:19 +#: hacks/config/crackberg.xml.h:18 msgid "Swampy" msgstr "Marécageux" -#: hacks/config/crackberg.xml.h:20 +#: hacks/config/crackberg.xml.h:19 msgid "Visibility" msgstr "Visibilité" -#: hacks/config/crackberg.xml.h:21 +#: hacks/config/crackberg.xml.h:20 msgid "Vomit" msgstr "Vomitif" -#: hacks/config/crackberg.xml.h:22 hacks/config/flurry.xml.h:11 +#: hacks/config/crackberg.xml.h:21 hacks/config/flurry.xml.h:11 msgid "Water" msgstr "Eau" @@ -3071,11 +3019,12 @@ msgstr "Critique" #: hacks/config/critical.xml.h:2 msgid "" "Draws a system of self-organizing lines. It starts out as random squiggles, " -"but after a few iterations, order begins to appear. Written by Martin Pool." +"but after a few iterations, order begins to appear. Written by Martin Pool; " +"1999." msgstr "" "Dessine un système de lignes auto-organisées. Elles commencent sous la forme " "de gribouillis aléatoires, mais, après quelques itérations, l'ordre commence " -"à apparaître. Écrit par Martin Pool." +"à apparaître. Écrit par Martin Pool; 1999." #: hacks/config/crystal.xml.h:1 msgid "Center on Screen" @@ -3084,16 +3033,14 @@ msgstr "Centré sur l'écran" #: hacks/config/crystal.xml.h:2 hacks/config/deluxe.xml.h:1 #: hacks/config/fadeplot.xml.h:1 hacks/config/flow.xml.h:1 #: hacks/config/galaxy.xml.h:1 hacks/config/glforestfire.xml.h:1 -#: hacks/config/grav.xml.h:1 hacks/config/julia.xml.h:1 +#: hacks/config/grav.xml.h:1 hacks/config/julia.xml.h:2 #: hacks/config/laser.xml.h:1 hacks/config/lisa.xml.h:1 -#: hacks/config/lissie.xml.h:2 hacks/config/morph3d.xml.h:2 -#: hacks/config/mountain.xml.h:1 hacks/config/piecewise.xml.h:2 -#: hacks/config/qix.xml.h:4 hacks/config/rocks.xml.h:2 -#: hacks/config/rotor.xml.h:2 hacks/config/rubik.xml.h:1 +#: hacks/config/lissie.xml.h:1 hacks/config/piecewise.xml.h:2 +#: hacks/config/qix.xml.h:5 hacks/config/rocks.xml.h:2 +#: hacks/config/rotor.xml.h:1 hacks/config/rubik.xml.h:1 #: hacks/config/shadebobs.xml.h:1 hacks/config/sierpinski.xml.h:1 #: hacks/config/slip.xml.h:1 hacks/config/spiral.xml.h:1 -#: hacks/config/sproingies.xml.h:1 hacks/config/superquadrics.xml.h:1 -#: hacks/config/swirl.xml.h:1 hacks/config/worm.xml.h:2 +#: hacks/config/swirl.xml.h:1 hacks/config/worm.xml.h:1 msgid "Count" msgstr "Nombre" @@ -3106,7 +3053,6 @@ msgid "Draw Cell" msgstr "Dessiner une cellule" #: hacks/config/crystal.xml.h:5 hacks/config/spheremonics.xml.h:3 -#: hacks/config/xearth.xml.h:6 msgid "Draw Grid" msgstr "Dessiner une grille" @@ -3117,10 +3063,10 @@ msgstr "Symétries horizontales" #: hacks/config/crystal.xml.h:9 msgid "" "Moving polygons, similar to a kaleidescope (more like a kaleidescope than " -"the hack called `kaleid,' actually.) This one by Jouk Jansen." +"the one called `kaleid,' actually). Written by Jouk Jansen; 1998." msgstr "" "Polygones animés, semblables à un kaléidoscope (plus semblables à un " -"kaléïdoscope que le hack «kaleid», en fait.) Par Jouk Jansen." +"kaléïdoscope que le hack «kaleid», en fait). Par Jouk Jansen; 1998." #: hacks/config/crystal.xml.h:14 msgid "Vertical Symmetries" @@ -3129,12 +3075,14 @@ msgstr "Symétries verticales" #: hacks/config/cube21.xml.h:1 msgid "" "Animates a Rubik-like puzzle known as Cube 21 or Square-1. The rotations are " -"chosen randomly. Requires OpenGL. Written by Vasek Potocek." +"chosen randomly. Written by Vasek Potocek; 2005." msgstr "" +"Anime un puzzle style Rubik connu sous les noms de Cube 21 ou Square-1. Les " +"rotations sont aléatoires. Écrit par Vasek Potocek; 2005." #: hacks/config/cube21.xml.h:2 msgid "Classic Edition" -msgstr "Lavalite classique" +msgstr "Edition classique" #: hacks/config/cube21.xml.h:3 msgid "Cube 21" @@ -3162,7 +3110,7 @@ msgstr "Rotation" #: hacks/config/cube21.xml.h:14 msgid "Silver Edition" -msgstr "Edition Argent" +msgstr "Edition argent" #: hacks/config/cube21.xml.h:15 msgid "Six random colors" @@ -3170,7 +3118,7 @@ msgstr "Six couleurs aléatoires" #: hacks/config/cube21.xml.h:19 msgid "Spinning" -msgstr "Rotation" +msgstr "Tournoiement" #: hacks/config/cube21.xml.h:20 msgid "Start as cube" @@ -3184,15 +3132,22 @@ msgstr "Démarrage avec une forme aléatoire" msgid "Two random colors" msgstr "Deux couleurs aléatoires" -#: hacks/config/cube21.xml.h:25 -msgid "Wander on screen" -msgstr "Déplacement dans l'écran" +#: hacks/config/cube21.xml.h:24 hacks/config/cubenetic.xml.h:26 +#: hacks/config/cubestorm.xml.h:13 hacks/config/dangerball.xml.h:10 +#: hacks/config/engine.xml.h:20 hacks/config/glblur.xml.h:18 +#: hacks/config/glforestfire.xml.h:16 hacks/config/glknots.xml.h:22 +#: hacks/config/glplanet.xml.h:13 hacks/config/gltext.xml.h:19 +#: hacks/config/lavalite.xml.h:31 hacks/config/menger.xml.h:19 +#: hacks/config/molecule.xml.h:25 hacks/config/polyhedra.xml.h:165 +#: hacks/config/spheremonics.xml.h:24 hacks/config/wander.xml.h:15 +msgid "Wander" +msgstr "Déplacement" -#: hacks/config/cube21.xml.h:26 +#: hacks/config/cube21.xml.h:25 msgid "Wandering" msgstr "Déplacement" -#: hacks/config/cube21.xml.h:27 +#: hacks/config/cube21.xml.h:26 msgid "White" msgstr "Blanc" @@ -3200,105 +3155,81 @@ msgstr "Blanc" msgid "Cubenetic" msgstr "Rectangles de couleur" -#: hacks/config/cubenetic.xml.h:3 -msgid "Display Solid Colors" -msgstr "Afficher des couleurs unies" - -#: hacks/config/cubenetic.xml.h:4 -msgid "Display Surface Patterns" -msgstr "Afficher les modèles de surface" - -#: hacks/config/cubenetic.xml.h:5 -msgid "Display Wireframe" -msgstr "Fil de fer" - -#: hacks/config/cubenetic.xml.h:6 hacks/config/glblur.xml.h:3 +#: hacks/config/cubenetic.xml.h:3 hacks/config/glblur.xml.h:3 #: hacks/config/glknots.xml.h:2 hacks/config/gltext.xml.h:3 #: hacks/config/lavalite.xml.h:7 hacks/config/menger.xml.h:1 #: hacks/config/molecule.xml.h:4 hacks/config/spheremonics.xml.h:1 -#: hacks/config/tangram.xml.h:1 msgid "Don't Rotate" msgstr "Ne pas pivoter" -#: hacks/config/cubenetic.xml.h:7 +#: hacks/config/cubenetic.xml.h:4 msgid "" "Draws a pulsating set of overlapping boxes with ever-chaning blobby patterns " "undulating across their surfaces. It's sort of a cubist Lavalite. Written by " -"Jamie Zawinski." +"Jamie Zawinski; 2002." msgstr "" -#: hacks/config/cubenetic.xml.h:14 hacks/config/glblur.xml.h:6 +#: hacks/config/cubenetic.xml.h:11 hacks/config/glblur.xml.h:6 #: hacks/config/glknots.xml.h:8 hacks/config/gltext.xml.h:7 #: hacks/config/lavalite.xml.h:19 hacks/config/menger.xml.h:7 #: hacks/config/molecule.xml.h:15 hacks/config/spheremonics.xml.h:10 msgid "Rotate around X and Y axes" msgstr "Rotation autour des axes X et Y" -#: hacks/config/cubenetic.xml.h:15 hacks/config/glblur.xml.h:7 +#: hacks/config/cubenetic.xml.h:12 hacks/config/glblur.xml.h:7 #: hacks/config/glknots.xml.h:9 hacks/config/gltext.xml.h:8 #: hacks/config/lavalite.xml.h:20 hacks/config/menger.xml.h:8 #: hacks/config/molecule.xml.h:16 hacks/config/spheremonics.xml.h:11 msgid "Rotate around X and Z axes" msgstr "Rotation autour des axes X et Z" -#: hacks/config/cubenetic.xml.h:16 hacks/config/glblur.xml.h:8 +#: hacks/config/cubenetic.xml.h:13 hacks/config/glblur.xml.h:8 #: hacks/config/glknots.xml.h:10 hacks/config/gltext.xml.h:9 #: hacks/config/lavalite.xml.h:21 hacks/config/menger.xml.h:9 #: hacks/config/molecule.xml.h:17 hacks/config/spheremonics.xml.h:12 msgid "Rotate around X axis" msgstr "Rotation autour de l'axe X" -#: hacks/config/cubenetic.xml.h:17 hacks/config/glblur.xml.h:9 +#: hacks/config/cubenetic.xml.h:14 hacks/config/glblur.xml.h:9 #: hacks/config/glknots.xml.h:11 hacks/config/gltext.xml.h:10 #: hacks/config/lavalite.xml.h:22 hacks/config/menger.xml.h:10 #: hacks/config/molecule.xml.h:18 hacks/config/spheremonics.xml.h:13 msgid "Rotate around Y and Z axes" msgstr "Rotation autour des axes Y et Z" -#: hacks/config/cubenetic.xml.h:18 hacks/config/glblur.xml.h:10 +#: hacks/config/cubenetic.xml.h:15 hacks/config/glblur.xml.h:10 #: hacks/config/glknots.xml.h:12 hacks/config/gltext.xml.h:11 #: hacks/config/lavalite.xml.h:23 hacks/config/menger.xml.h:11 #: hacks/config/molecule.xml.h:19 hacks/config/spheremonics.xml.h:14 msgid "Rotate around Y axis" msgstr "Rotation autour de l'axe Y" -#: hacks/config/cubenetic.xml.h:19 hacks/config/glblur.xml.h:11 +#: hacks/config/cubenetic.xml.h:16 hacks/config/glblur.xml.h:11 #: hacks/config/glknots.xml.h:13 hacks/config/gltext.xml.h:12 #: hacks/config/lavalite.xml.h:24 hacks/config/menger.xml.h:12 #: hacks/config/molecule.xml.h:20 hacks/config/spheremonics.xml.h:15 msgid "Rotate around Z axis" msgstr "Rotation autour de l'axe Z" -#: hacks/config/cubenetic.xml.h:20 hacks/config/glblur.xml.h:12 +#: hacks/config/cubenetic.xml.h:17 hacks/config/glblur.xml.h:12 #: hacks/config/glknots.xml.h:14 hacks/config/gltext.xml.h:13 #: hacks/config/lavalite.xml.h:25 hacks/config/menger.xml.h:13 #: hacks/config/molecule.xml.h:21 hacks/config/spheremonics.xml.h:16 msgid "Rotate around all three axes" msgstr "Rotation autour des trois axes" -#: hacks/config/cubenetic.xml.h:25 +#: hacks/config/cubenetic.xml.h:22 msgid "Surface Pattern Complexity" msgstr "Complexité des modèles de surface" -#: hacks/config/cubenetic.xml.h:26 +#: hacks/config/cubenetic.xml.h:23 msgid "Surface Pattern Overlap" msgstr "Recouvrement des modèles de surface" -#: hacks/config/cubenetic.xml.h:27 +#: hacks/config/cubenetic.xml.h:24 msgid "Surface Pattern Speed" msgstr "Vitesse de changement des modèles de surface" -#: hacks/config/cubenetic.xml.h:28 hacks/config/cubestorm.xml.h:13 -#: hacks/config/dangerball.xml.h:10 hacks/config/engine.xml.h:20 -#: hacks/config/glblur.xml.h:18 hacks/config/glforestfire.xml.h:19 -#: hacks/config/glknots.xml.h:22 hacks/config/glplanet.xml.h:14 -#: hacks/config/gltext.xml.h:20 hacks/config/lavalite.xml.h:31 -#: hacks/config/menger.xml.h:20 hacks/config/molecule.xml.h:26 -#: hacks/config/polyhedra.xml.h:165 hacks/config/spheremonics.xml.h:25 -#: hacks/config/wander.xml.h:15 -msgid "Wander" -msgstr "Déplacement" - #: hacks/config/cubestorm.xml.h:2 msgid "CubeStorm" msgstr "Tempête de cubes" @@ -3306,7 +3237,7 @@ msgstr "Tempête de cubes" #: hacks/config/cubestorm.xml.h:3 msgid "" "Draws a series of rotating 3D boxes that intersect each other and eventually " -"fill space. Written by Jamie Zawinski." +"fill space. Written by Jamie Zawinski; 2003." msgstr "" #: hacks/config/cubestorm.xml.h:6 @@ -3318,21 +3249,15 @@ msgid "Strut Thickness" msgstr "Épaisseur traverse" #: hacks/config/cynosure.xml.h:1 -msgid "" -"A hack similar to `greynetic', but less frenetic. The first implementation " -"was by Stephen Linhart; then Ozymandias G. Desiderata wrote a Java applet " -"clone. That clone was discovered by Jamie Zawinski, and ported to C for " -"inclusion here." -msgstr "" -"Un hack similaire à «greynetic», en moins frénétique. La première mise en " -"oeuvre était par Stephen Linhart; ensuite, Ozymandias G. Desiderata a écrit " -"un clone de l'applet Java. Il a été découvert par Jamie Zawinski et porté " -"sur C pour être inclus ici." - -#: hacks/config/cynosure.xml.h:2 msgid "Cynosure" msgstr "Cynosure" +#: hacks/config/cynosure.xml.h:7 +msgid "" +"Random dropshadowed rectangles pop onto the screen in lockstep. Written by " +"Ozymandias G. Desiderata, Jamie Zawinski, and Stephen Linhart; 1998." +msgstr "" + #: hacks/config/dangerball.xml.h:1 msgid "DangerBall" msgstr "Balle dangereuse" @@ -3340,10 +3265,10 @@ msgstr "Balle dangereuse" #: hacks/config/dangerball.xml.h:2 msgid "" "Draws a ball that periodically extrudes many random spikes. Ouch! Written by " -"Jamie Zawinski." +"Jamie Zawinski; 2001." msgstr "" "Dessine une balle qui se hérisse régulièrement de nombreux picots " -"aléatoires. Ouille ! Écrit par Jamie Zawinski." +"aléatoires. Ouille ! Écrit par Jamie Zawinski; 2001." #: hacks/config/dangerball.xml.h:7 msgid "Spike Count" @@ -3423,13 +3348,13 @@ msgid "" "before, but no screensaver would really be complete without it. It works " "best if there's something colorful visible. Warning, if the effect continues " "after the screen saver is off, seek medical attention. Written by David " -"Wald, Vivek Khera, Jamie Zawinski, and Vince Levey." +"Wald, Vivek Khera, Jamie Zawinski, and Vince Levey; 1993." msgstr "" "Fait fondre une image. Vous avez certainement déjà vu cet effet, mais aucun " "programme d'économiseurs d'écran ne pourrait s'en passer. Il fonctionne " "particulièrement bien si l'image est colorée. Attention, si l'effet se " "poursuit après désactivation de l'économiseur, cherchez de l'aide. Écrit par " -"David Wald et Vivek Khera." +"David Wald, Vivek Khera, Jamie Zawinski, et Vince Levey; 1993." #: hacks/config/deco.xml.h:3 msgid "Deco" @@ -3446,18 +3371,16 @@ msgstr "Taille min." #: hacks/config/deco.xml.h:9 msgid "" -"This one subdivides and colors rectangles randomly. It looks kind of like " -"Brady-Bunch-era rec-room wall paneling. (Raven says: ``this screensaver is " -"ugly enough to peel paint.'') Written by Jamie Zawinski, inspired by Java " -"code by Michael Bayne." +"Subdivides and colors rectangles randomly. It looks kind of like Brady-Bunch-" +"era rec-room wall paneling. Written by Jamie Zawinski and Michael Bayne; " +"1997." msgstr "" "Subdivise et colore des rectangles de manière aléatoire. Ca ressemble à une " -"sorte de papier peint seventies. (Raven a dit : «Cet économiseur d'écran est " -"tellement moche qu'il fait craqueler la peinture.») Écrit par Jamie " -"Zawinski, inspiré par un code Java de Michael Bayne." +"sorte de papier peint seventies. " +"Écrit par Jamie Zawinski et Michael Bayne; 1997." #: hacks/config/deco.xml.h:11 hacks/config/rd-bomb.xml.h:23 -#: hacks/config/whirlygig.xml.h:20 hacks/config/xearth.xml.h:33 +#: hacks/config/rdbomb.xml.h:23 hacks/config/whirlygig.xml.h:20 #: hacks/config/zoom.xml.h:10 msgid "x" msgstr "x" @@ -3466,17 +3389,11 @@ msgstr "x" msgid "Deluxe" msgstr "Deluxe" -#: hacks/config/deluxe.xml.h:12 +#: hacks/config/deluxe.xml.h:4 msgid "" -"This draws a pulsing sequence of stars, circles, and lines. It would look " -"better if it was faster, but as far as I can tell, there is no way to make " -"this be both: fast, and flicker-free. Yet another reason X sucks. Written by " -"Jamie Zawinski." +"Draws a pulsing sequence of transparent stars, circles, and lines. Written " +"by Jamie Zawinski; 1999." msgstr "" -"Dessine une séquence pulsatile d'étoiles, de cercles et de lignes. Il serait " -"plus beau s'il était plus rapide, mais à ma connaissance, il est impossible " -"de le rendre rapide sans scintillement. Encore un mauvais point pour X. " -"Écrit par Jamie Zawinski." #: hacks/config/deluxe.xml.h:13 msgid "Transparency" @@ -3485,10 +3402,10 @@ msgstr "Transparence" #: hacks/config/demon.xml.h:1 msgid "" "A cellular automaton that starts with a random field, and organizes it into " -"stripes and spirals. Written by David Bagley." +"stripes and spirals. Written by David Bagley; 1999." msgstr "" "Automate cellulaire qui commence par un champ aléatoire et s'organise en " -"bandes et spirales. Écrit par David Bagley." +"bandes et spirales. Écrit par David Bagley; 1999." #: hacks/config/demon.xml.h:3 msgid "Demon" @@ -3500,15 +3417,15 @@ msgstr "États" #: hacks/config/discrete.xml.h:1 msgid "Discrete" -msgstr "Discret" +msgstr "Discrète" #: hacks/config/discrete.xml.h:5 msgid "" -"More ``discrete map'' systems, including new variants of Hopalong and Julia, " -"and a few others. Written by Tim Auckland." +"More \"discrete map\" systems, including new variants of Hopalong and Julia, " +"and a few others. Written by Tim Auckland; 1998." msgstr "" "Autres systèmes de «cartes discrètes», comprenant de nouvelles variantes de " -"Hopalong et Julia, ainsi que quelques autres. Écrit par Tim Auckland." +"Hopalong et Julia, ainsi que quelques autres. Écrit par Tim Auckland; 1998." #: hacks/config/distort.xml.h:1 msgid "Black Hole" @@ -3522,70 +3439,62 @@ msgstr "Rebond" msgid "Distort" msgstr "Distortion" -#: hacks/config/distort.xml.h:6 +#: hacks/config/distort.xml.h:5 +msgid "" +"Grabs an image of the screen, and then lets a transparent lens wander around " +"the screen, magnifying whatever is underneath. Written by Jonas Munsin; 1998." +msgstr "" +"Capture une image de l'écran et laisse une lentille transparente s'y " +"promener en agrandissant ce qu'elle réfléchit. Écrit par Jonas Munsin; 1998." + +#: hacks/config/distort.xml.h:7 msgid "Lens Count" msgstr "Nombre de lentilles" -#: hacks/config/distort.xml.h:7 +#: hacks/config/distort.xml.h:8 msgid "Lens Size" msgstr "Taille des lentilles" -#: hacks/config/distort.xml.h:8 +#: hacks/config/distort.xml.h:9 msgid "Magnify" msgstr "Agrandir" #: hacks/config/distort.xml.h:10 +msgid "Normal" +msgstr "Normal" + +#: hacks/config/distort.xml.h:11 msgid "Reflect" msgstr "Réfléchir" -#: hacks/config/distort.xml.h:14 -msgid "Swamp Thing" -msgstr "Chose des marais" - #: hacks/config/distort.xml.h:15 -msgid "" -"This hack grabs an image of the screen, and then lets a transparent lens " -"wander around the screen, magnifying whatever is underneath. Written by " -"Jonas Munsin." -msgstr "" -"Ce hack capture une image de l'écran et laisse une lentille transparente s'y " -"promener en agrandissant ce qu'elle réfléchit. Écrit par Jonas Munsin." - -#: hacks/config/distort.xml.h:16 hacks/config/moire.xml.h:12 -#: hacks/config/rd-bomb.xml.h:21 hacks/config/ripples.xml.h:16 -#: hacks/config/rotzoomer.xml.h:10 hacks/config/swirl.xml.h:10 -#: hacks/config/twang.xml.h:15 hacks/config/xflame.xml.h:7 -msgid "Use Shared Memory" -msgstr "Utiliser une mémoire partagée" +msgid "Swamp Thing" +msgstr "Marécageux" -#: hacks/config/distort.xml.h:17 +#: hacks/config/distort.xml.h:16 msgid "Vortex" msgstr "Vortex" +#: hacks/config/dnalogo.xml.h:1 +msgid "DNA Logo" +msgstr "Logo DNA" + +#: hacks/config/dnalogo.xml.h:2 +msgid "" +"DNA Lounge 375 Eleventh Street San Francisco, CA 94107 http://www.dnalounge." +"com/ Written by Jamie Zawinski; 2001." +msgstr "" +"DNA Lounge 375 Eleventh Street San Francisco, CA 94107 http://www.dnalounge." +"com/. Écrit par Jamie Zawinski; 2001." + #: hacks/config/drift.xml.h:1 msgid "Drift" msgstr "Dérive" -#: hacks/config/drift.xml.h:4 -msgid "Fractal Growth" -msgstr "Croissance fractale" - -#: hacks/config/drift.xml.h:5 -msgid "High Dimensional Sphere" -msgstr "Sphère dimensionnelle" - -#: hacks/config/drift.xml.h:6 +#: hacks/config/drift.xml.h:2 msgid "" -"How could one possibly describe this except as ``drifting recursive fractal " -"cosmic flames?'' Another fine hack from the Scott Draves collection of fine " -"hacks." -msgstr "" -"Comment décrire ceci sinon comme des «flammes cosmiques fractales récursives " -"à la dérive ?» Un nouveau chouette hack de la collection de Scott Draves." - -#: hacks/config/drift.xml.h:7 -msgid "Lissojous Figures" -msgstr "Figures Lissojous" +"Drifting recursive fractal cosmic flames. Written by Scott Draves; 1997." +msgstr "Un autre générateur fractal itératif. Écrit par Scott Draves; 1997." #: hacks/config/electricsheep.xml.h:1 msgid "1 Gbyte cache" @@ -3604,20 +3513,19 @@ msgid "300 Mbyte cache" msgstr "300 Moctets de cache" #: hacks/config/electricsheep.xml.h:5 -msgid "ElectricSheep" -msgstr "Mouton Electrique" - -#: hacks/config/electricsheep.xml.h:6 msgid "" -"ElectricSheep is an xscreensaver module that displays mpeg video of an " -"animated fractal flame. In the background, it contributes render cycles to " -"the next animation. Periodically it uploades completed frames to the server, " -"where they are compressed for distribution to all clients. This program is " -"recommended only if you have a high bandwidth, always-on connection to the " -"Internet. By Scott Draves. You can find it at <http://www.electricsheep." -"org/>." +"Displays mpeg video of an animated fractal flame. In the background, it " +"contributes render cycles to the next animation. Periodically it uploades " +"completed frames to the server, where they are compressed for distribution " +"to all clients. This program is recommended only if you have a high " +"bandwidth, always-on connection to the Internet. You can find it at <" +"http://www.electricsheep.org/>. Written by By Scott Draves." msgstr "" +#: hacks/config/electricsheep.xml.h:6 +msgid "ElectricSheep" +msgstr "Mouton Electrique" + #: hacks/config/electricsheep.xml.h:8 msgid "Nickname" msgstr "Pseudo" @@ -3642,7 +3550,7 @@ msgstr "URL" msgid "Unlimited" msgstr "Illimité" -#: hacks/config/electricsheep.xml.h:14 hacks/config/gleidescope.xml.h:13 +#: hacks/config/electricsheep.xml.h:14 hacks/config/gleidescope.xml.h:12 #: hacks/config/hyperball.xml.h:16 hacks/config/hypercube.xml.h:16 #: hacks/config/zoom.xml.h:8 msgid "Zoom" @@ -3651,12 +3559,16 @@ msgstr "Zoom" #: hacks/config/endgame.xml.h:1 msgid "" "Black slips out of three mating nets, but the fourth one holds him tight! A " -"brilliant composition! Written by Blair Tennessy." +"brilliant composition! Written by Blair Tennessy; 2002." msgstr "" #: hacks/config/endgame.xml.h:2 msgid "Endgame" -msgstr "Fin de jeux" +msgstr "Fin de partie" + +#: hacks/config/endgame.xml.h:4 +msgid "Low Resolution Chess Pieces" +msgstr "Pièces en basse résolution" #: hacks/config/engine.xml.h:1 msgid "Audi Quattro (5 cylinders)" @@ -3681,10 +3593,10 @@ msgstr "Dodge Viper (10 cylindres en V)" #: hacks/config/engine.xml.h:6 msgid "" "Draws a simple model of an engine that floats around the screen. Written by " -"Ben Buxton and Ed Beroset." +"Ben Buxton and Ed Beroset; 2001." msgstr "" "Dessine un modèle simplifié de moteur qui flotte sur l'écran. Écrit par Ben " -"Buxton et Ed Beroset." +"Buxton et Ed Beroset; 2001." #: hacks/config/engine.xml.h:7 msgid "Engine" @@ -3739,27 +3651,27 @@ msgid "" "This program draws the path traced out by a point on the edge of a circle. " "That circle rotates around a point on the rim of another circle, and so on, " "several times. These were the basis for the pre-heliocentric model of " -"planetary motion. Written by James Youngman." +"planetary motion. Written by James Youngman; 1998." msgstr "" "Ce programme dessine le chemin tracé par un point sur le bord d'un cercle. " "Ce cercle pivote autour d'un point sur le pourtour d'un autre cercle, et " "ainsi de suite, plusieurs fois. Il s'agit de la base du modèle pré-" -"héliocentrique de révolution planétaire. Écrit par James Youngman." +"héliocentrique de révolution planétaire. Écrit par James Youngman; 1998." #: hacks/config/eruption.xml.h:1 -msgid "An exposive version of XFlame. By W.P. van Paassen." -msgstr "Une version explosive de XFishTank. Par W.P. van Paassen." - -#: hacks/config/eruption.xml.h:2 msgid "Cooling factor" msgstr "Facteur de refroidissement" -#: hacks/config/eruption.xml.h:4 +#: hacks/config/eruption.xml.h:3 msgid "Eruption" msgstr "Éruption" +#: hacks/config/eruption.xml.h:4 +msgid "Exploding fireworks. Written by W.P. van Paassen; 2003." +msgstr "Feux d'artifices. Écrit par W.P. van Paassen; 2003." + #: hacks/config/eruption.xml.h:7 hacks/config/fluidballs.xml.h:9 -#: hacks/config/qix.xml.h:9 hacks/config/speedmine.xml.h:4 +#: hacks/config/qix.xml.h:10 hacks/config/speedmine.xml.h:4 msgid "Gravity" msgstr "Gravité" @@ -3806,20 +3718,20 @@ msgstr "Puissance" #: hacks/config/euler2d.xml.h:13 msgid "" "Simulates two dimensional Incompressible Inviscid Fluid Flow. Written by " -"Stephen Montgomery-Smith." +"Stephen Montgomery-Smith; 2002." msgstr "" "Simule un flux fluide non-visqueux incompressible bidimensionnel. Écrit par " -"Stephen Montgomery-Smith." +"Stephen Montgomery-Smith; 2002." #: hacks/config/extrusion.xml.h:1 msgid "" "Draws various rotating extruded shapes that twist around, lengthen, and turn " -"inside out. Created by David Konerding from the samples that come with the " -"GL Extrusion library by Linas Vepstas." +"inside out. Written by Linas Vepstas, David Konerding, and Jamie Zawinski; " +"1999." msgstr "" "Dessine diverses formes extrudées en rotation qui se tournent, s'allongent " -"et se retournent. Créé par David Konerding à partir des exemples fournis " -"avec la bibliothèque GL Extrusion de Linas Vepstas." +"et se retournent. Écrit par Linas Vepstas, David Konerding et Jamie Zawinski; " +"1999." #: hacks/config/extrusion.xml.h:2 msgid "Extrusion" @@ -3841,7 +3753,8 @@ msgstr "Hélice 4" msgid "Join Offset" msgstr "Décalage de jointure" -#: hacks/config/extrusion.xml.h:8 hacks/config/polytopes.xml.h:16 +#: hacks/config/extrusion.xml.h:8 hacks/config/morph3d.xml.h:8 +#: hacks/config/polytopes.xml.h:16 msgid "Random Object" msgstr "Objet aléatoire" @@ -3849,42 +3762,38 @@ msgstr "Objet aléatoire" msgid "Screw" msgstr "Vis" -#: hacks/config/extrusion.xml.h:14 +#: hacks/config/extrusion.xml.h:13 msgid "Taper" msgstr "Pic" -#: hacks/config/extrusion.xml.h:15 -msgid "Texture Image" -msgstr "Image de texture" - -#: hacks/config/extrusion.xml.h:16 +#: hacks/config/extrusion.xml.h:14 msgid "Twistoid" -msgstr "Twistoïd" +msgstr "Twistoïde" -#: hacks/config/extrusion.xml.h:17 hacks/config/glplanet.xml.h:12 -#: hacks/config/pulsar.xml.h:19 +#: hacks/config/extrusion.xml.h:15 hacks/config/glplanet.xml.h:11 msgid "Use Flat Coloring" msgstr "Utiliser les couleurs en aplat" -#: hacks/config/extrusion.xml.h:18 hacks/config/glplanet.xml.h:13 +#: hacks/config/extrusion.xml.h:16 hacks/config/glplanet.xml.h:12 msgid "Use Lighting" msgstr "Utiliser l'éclairage" #: hacks/config/fadeplot.xml.h:2 msgid "" "Draws what looks like a waving ribbon following a sinusoidal path. Written " -"by Bas van Gaalen and Charles Vidal." +"by Bas van Gaalen and Charles Vidal; 1997." msgstr "" "Dessine une sorte de ruban ondulant suivant un chemin sinusoïdal. Écrit par " -"Bas van Gaalen et Charles Vidal." +"Bas van Gaalen et Charles Vidal; 1997." #: hacks/config/fadeplot.xml.h:3 msgid "FadePlot" msgstr "FadePlot" #: hacks/config/fiberlamp.xml.h:1 -msgid "Draws a groovy rotating fiber optic lamp. Written by Tim Auckland." -msgstr "Dessine une lampe à fibre optique en rotation. Écrit par Tim Auckland." +msgid "" +"Draws a groovy rotating fiber optic lamp. Written by Tim Auckland; 2005." +msgstr "Dessine une lampe à fibre optique en rotation. Écrit par Tim Auckland; 2005." #: hacks/config/fiberlamp.xml.h:3 msgid "Fiberlamp" @@ -3905,10 +3814,9 @@ msgstr "10 fois" #: hacks/config/fireflies.xml.h:2 msgid "" "A bunch of fireflies chase a few baits around the screen, leaving colorful " -"tails which get blown around by the wind. Written by Matt Perry. This " -"program is not included with the XScreenSaver package, but if you don't have " -"it already, you can find it at <http://somewhere.fscked.org/fireflies/" -">." +"tails which get blown around by the wind. This program is not included with " +"the XScreenSaver package, but if you don't have it already, you can find it " +"at <http://somewhere.fscked.org/fireflies/>. Written by Matt Perry." msgstr "" #: hacks/config/fireflies.xml.h:3 @@ -4028,7 +3936,6 @@ msgid "Split a swarm" msgstr "Dédoubler un essaim" #: hacks/config/fireflies.xml.h:36 hacks/config/fluidballs.xml.h:21 -#: hacks/config/glforestfire.xml.h:16 msgid "Still" msgstr "Tranquille" @@ -4068,28 +3975,25 @@ msgstr "Le vent reprend" msgid "Activity" msgstr "Activité" -#: hacks/config/fireworkx.xml.h:4 -msgid "Fireworkx" -msgstr "Feux d'artifice" +#: hacks/config/fireworkx.xml.h:3 +msgid "Exploding fireworks. Written by Rony B Chandran; 2004." +msgstr "Feux d'artifices. Écrit par Rony B Chandran; 2004." #: hacks/config/fireworkx.xml.h:5 -msgid "Light Flash" -msgstr "Eclair de lumière" +msgid "Fireworkx" +msgstr "Feux d'artifice X" #: hacks/config/fireworkx.xml.h:6 -msgid "" -"Pyrotechnics simulation eye-candy, MMX optimized. Turn off Light for speed. " -"Clicks on the preview window Explodes..! Written by Rony B Chandran. http://" -"www.ronybc.8k.com" -msgstr "" +msgid "Light Flash" +msgstr "Eclair de lumière" #: hacks/config/fireworkx.xml.h:7 msgid "Self Glowing Smoke!" msgstr "Fumée luminescente" #: hacks/config/fireworkx.xml.h:8 -msgid "Shoot The Shells up" -msgstr "Destruction des boucliers" +msgid "Shoot the Shells Up" +msgstr "Lancement des fusées" #: hacks/config/flag.xml.h:1 msgid "Bitmap for Flag" @@ -4107,15 +4011,13 @@ msgstr "Texte du drapeau" msgid "" "This draws a waving colored flag, that undulates its way around the screen. " "The trick is the flag can contain arbitrary text and images. By default, it " -"displays either the current system name and OS type, or a picture of " -"``Bob,'' but you can replace the text or the image with a command-line " -"option. Written by Charles Vidal and Jamie Zawinski." +"displays either the current system name and OS type, or a picture of \"Bob" +"\". Written by Charles Vidal and Jamie Zawinski; 1997." msgstr "" "Dessine un drapeau coloré qui ondule sur l'écran. Il peut contenir un texte " "et des images arbitraires. Par défaut, il affiche le nom système et le type " -"de système d'exploitation en cours ou une photo de «Bob», mais vous pouvez " -"remplacer le texte ou l'image à l'aide d'une option de ligne de commande. " -"Écrit par Charles Vidal et Jamie Zawinski." +"de système d'exploitation en cours ou une photo de «Bob». " +"Écrit par Charles Vidal et Jamie Zawinski; 1997." #: hacks/config/flame.xml.h:1 hacks/config/jigsaw.xml.h:1 #: hacks/config/maze.xml.h:1 hacks/config/wander.xml.h:1 @@ -4128,35 +4030,33 @@ msgstr "0 seconde" msgid "10 Seconds" msgstr "10 secondes" -#: hacks/config/flame.xml.h:3 -msgid "Another iterative fractal generator. Written by Scott Draves." -msgstr "Un autre générateur fractal itératif. Écrit par Scott Draves." - -#: hacks/config/flame.xml.h:4 hacks/config/jigglypuff.xml.h:4 +#: hacks/config/flame.xml.h:3 hacks/config/jigglypuff.xml.h:4 msgid "Complexity" msgstr "Complexité" -#: hacks/config/flame.xml.h:8 +#: hacks/config/flame.xml.h:7 msgid "Flame" msgstr "Flamme" +#: hacks/config/flame.xml.h:9 +msgid "Iterative fractals. Written by Scott Draves; 1993." +msgstr "Un autre générateur fractal itératif. Écrit par Scott Draves; 1993." + #: hacks/config/flame.xml.h:13 msgid "Number of Fractals" msgstr "Nombre de fractales" -#: hacks/config/flipflop.xml.h:2 -msgid "FlipFlop" -msgstr "FlipFlop" - -#: hacks/config/flipflop.xml.h:3 +#: hacks/config/flipflop.xml.h:1 msgid "" -"Flipflop draws a grid of 3D colored tiles that change positions with each " -"other. Written by Kevin Ogden." +"Draws a grid of 3D colored tiles that change positions with each other. " +"Written by Kevin Ogden; 2003." msgstr "" +"FlipFlop dessine une grille de carreaux colorés en 3D qui changent de " +"position respective. Écrit par Kevin Ogden; 2003." -#: hacks/config/flipflop.xml.h:6 -msgid "Solid Tiles" -msgstr "Tuiles pleines" +#: hacks/config/flipflop.xml.h:3 +msgid "FlipFlop" +msgstr "FlipFlop" #: hacks/config/flipscreen3d.xml.h:2 msgid "Flipscreen3d" @@ -4165,7 +4065,8 @@ msgstr "Écran retourné 3D" #: hacks/config/flipscreen3d.xml.h:3 msgid "" "Grabs an image of the desktop, turns it into a GL texture map, and spins it " -"around and deforms it in various ways. Written by Ben Buxton." +"around and deforms it in various ways. Written by Ben Buxton and Jamie " +"Zawinski; 2001." msgstr "" #: hacks/config/fliptext.xml.h:1 hacks/config/starwars.xml.h:3 @@ -4175,10 +4076,10 @@ msgstr "Texte centré" #: hacks/config/fliptext.xml.h:2 msgid "" "Draws successive pages of text. The lines flip in and out in a soothing 3D " -"pattern. The text can be the output of a program or the contents of a file " -"or URL, as configured on the \"Advanced\" tab of the main Screensaver " -"Preferences window. Written by Jamie Zawinski." +"pattern. Written by Jamie Zawinski; 2005." msgstr "" +"Affiche quelques lignes de texte qui tournoient dans une police 3D unie. " +"Écrit par Jamie Zawinski; 2005." #: hacks/config/fliptext.xml.h:4 msgid "FlipText" @@ -4200,54 +4101,50 @@ msgstr "Taille de police" msgid "Random Text Alignment" msgstr "Alignement aléatoire du texte" -#: hacks/config/fliptext.xml.h:15 hacks/config/starwars.xml.h:15 +#: hacks/config/fliptext.xml.h:15 msgid "Text Columns" msgstr "Colonnes de texte" -#: hacks/config/fliptext.xml.h:16 hacks/config/starwars.xml.h:16 +#: hacks/config/fliptext.xml.h:16 hacks/config/starwars.xml.h:15 msgid "Text Lines" msgstr "Lignes de texte" #: hacks/config/flow.xml.h:3 +msgid "Draw bounding box" +msgstr "Dessiner le cadre englobant" + +#: hacks/config/flow.xml.h:5 msgid "Flow" msgstr "Flux" -#: hacks/config/flow.xml.h:5 +#: hacks/config/flow.xml.h:7 msgid "Length of trails" msgstr "Taille des traînées" -#: hacks/config/flow.xml.h:13 -msgid "" -"Strange attractors formed of flows in a 3D differential equation phase " -"space. Written by Tim Auckland." -msgstr "" -"Attracteurs étranges formés de flux dans un espace 3D d'équation de phase. " -"Écrit par Tim Auckland." - -#: hacks/config/flow.xml.h:16 -msgid "turn on/off bounding box." -msgstr "Boîte englobante." - -#: hacks/config/flow.xml.h:17 -msgid "turn on/off double buffering." -msgstr "Double tampon." +#: hacks/config/flow.xml.h:11 +msgid "Periodic attractors" +msgstr "Attracteurs périodiques" -#: hacks/config/flow.xml.h:18 -msgid "turn on/off periodic attractors." -msgstr "Attracteurs périodiques." - -#: hacks/config/flow.xml.h:19 -msgid "turn on/off ride in the flow." +#: hacks/config/flow.xml.h:12 +msgid "Ride in the flow" msgstr "Circulation dans le flux." -#: hacks/config/flow.xml.h:20 -msgid "turn on/off rotating around attractor." +#: hacks/config/flow.xml.h:13 +msgid "Rotating around attractor" msgstr "Tourner autour de l'attracteur" -#: hacks/config/flow.xml.h:21 -msgid "turn on/off search for new attractors." +#: hacks/config/flow.xml.h:14 +msgid "Search for new attractors" msgstr "Rechercher de nouveaux attracteurs" +#: hacks/config/flow.xml.h:19 +msgid "" +"Strange attractors formed of flows in a 3D differential equation phase " +"space. Written by Tim Auckland; 1998." +msgstr "" +"Attracteurs étranges formés de flux dans un espace 3D d'équation de phase. " +"Écrit par Tim Auckland.; 1998" + #: hacks/config/fluidballs.xml.h:1 msgid " Freefall" msgstr "Chute libre" @@ -4273,7 +4170,8 @@ msgid "" "Models the physics of bouncing balls, or of particles in a gas or fluid, " "depending on the settings. If \"Shake Box\" is selected, then every now and " "then, the box will be rotated, changing which direction is down (in order to " -"keep the settled balls in motion.) By Peter Birtles and Jamie Zawinski." +"keep the settled balls in motion.) Written by Peter Birtles and Jamie " +"Zawinski; 2002." msgstr "" #: hacks/config/fluidballs.xml.h:15 @@ -4318,34 +4216,34 @@ msgstr "RVB" #: hacks/config/flurry.xml.h:10 msgid "" -"This port of the OSX screensaver of the same name draws a colourful star" -"(fish)like flurry of particles. xscreensaver port by Tobias Sargeant <" -"tobias.sargeant@bigpond.com> Original Mac version by Calum Robinson <" -"calumr@mac.com> http://homepage.mac.com/calumr" +"This X11 port of the OSX screensaver of the same name draws a colourful star" +"(fish)like flurry of particles. Original Mac version: http://homepage.mac." +"com/calumr Written by Calum Robinson and Tobias Sargeant; 2002." msgstr "" #: hacks/config/flyingtoasters.xml.h:1 msgid "" "A fleet of 3d space-age jet-powered flying toasters (and toast!) Inspired by " -"the ancient Berkeley Systems After Dark flying toasters. By Jamie Zawinski " -"and Baconmonkey." +"the ancient Berkeley Systems After Dark flying toasters. Written by Jamie " +"Zawinski and Baconmonkey; 2003." msgstr "" #: hacks/config/flyingtoasters.xml.h:2 msgid "Air Speed" msgstr "Vitesse de l'air" -#: hacks/config/flyingtoasters.xml.h:4 -msgid "Chrome Toasters" -msgstr "Grille-pains chromés" +#: hacks/config/flyingtoasters.xml.h:4 hacks/config/jigglypuff.xml.h:2 +msgid "Chrome" +msgstr "Chrome" #: hacks/config/flyingtoasters.xml.h:6 -msgid "Flying Toasters" -msgstr "Grille-pains volant" +msgid "FlyingToasters" +msgstr "Grille-pain volant" -#: hacks/config/flyingtoasters.xml.h:7 hacks/config/glslideshow.xml.h:17 -#: hacks/config/jigglypuff.xml.h:12 hacks/config/juggle.xml.h:5 -#: hacks/config/mirrorblob.xml.h:15 hacks/config/pipes.xml.h:10 +#: hacks/config/flyingtoasters.xml.h:7 hacks/config/glschool.xml.h:12 +#: hacks/config/glslideshow.xml.h:17 hacks/config/jigglypuff.xml.h:12 +#: hacks/config/juggle.xml.h:11 hacks/config/mirrorblob.xml.h:15 +#: hacks/config/pipes.xml.h:12 msgid "None" msgstr "Aucun" @@ -4355,13 +4253,9 @@ msgstr "Nombre de tranches" #: hacks/config/flyingtoasters.xml.h:9 msgid "Number of Toasters" -msgstr "Nombre de grille-pains" +msgstr "Nombre de grille-pain" #: hacks/config/flyingtoasters.xml.h:12 -msgid "Solid Colors" -msgstr "Couleurs uniformes" - -#: hacks/config/flyingtoasters.xml.h:13 msgid "Swarm" msgstr "Essaim" @@ -4389,11 +4283,13 @@ msgstr "Pages de texte" msgid "" "Puts text on the screen using large characters that glide in from the edges, " "assemble, then disperse. Alternately, it can simply scroll whole sentences " -"from right to left. The text can be the output of a program or the contents " -"of a file or URL, as configured on the \"Advanced\" tab of the main " -"Screensaver Preferences window. Written Jamie Zawinski." +"from right to left. Written by Jamie Zawinski; 2003." msgstr "" +#: hacks/config/fontglide.xml.h:12 +msgid "Random display style" +msgstr "Style d'affichage aléatoire" + #: hacks/config/fontglide.xml.h:14 msgid "Text Linger" msgstr "Rémanence du texte" @@ -4406,13 +4302,10 @@ msgstr "Traînées de vapeur" msgid "Forest" msgstr "Forêt" -#: hacks/config/forest.xml.h:7 -msgid "" -"This draws fractal trees. Written by Peter Baumung. Everybody loves " -"fractals, right?" +#: hacks/config/forest.xml.h:3 +msgid "Fractal trees. Written by Peter Baumung; 1997." msgstr "" -"Dessine des arbres fractals. Écrit par Peter Baumung. Tout le monde aime les " -"fractales, n'est-ce pas ?" +"Dessine des arbres fractals. Écrit par Peter Baumung; 1997" #: hacks/config/fuzzyflakes.xml.h:2 msgid "Border Thickness" @@ -4423,8 +4316,10 @@ msgid "Delay" msgstr "Délai" #: hacks/config/fuzzyflakes.xml.h:6 -msgid "Falling colored snowflake/flower shapes. Written by Barry Dmytro." +msgid "Falling colored snowflake/flower shapes. Written by Barry Dmytro; 2004." msgstr "" +"Formes colorées (flocons de neige/fleurs) qui tombent. Écrit par Barry " +"Dmytro; 2004." #: hacks/config/fuzzyflakes.xml.h:9 msgid "FuzzyFlakes" @@ -4446,15 +4341,15 @@ msgstr "Galaxie" msgid "Rotate Viewpoint" msgstr "Rotation du point de vue" -#: hacks/config/galaxy.xml.h:13 +#: hacks/config/galaxy.xml.h:12 msgid "" "This draws spinning galaxies, which then collide and scatter their stars to " -"the, uh, four winds or something. Originally an Amiga program by Uli " -"Siegmund." +"the, uh, four winds or something. Written by Uli Siegmund, Harald Backert, " +"and Hubert Feyrer; 1997." msgstr "" "Dessine des galaxies tournoyantes, qui entrent en collision et dispersent " -"leurs étoiles aux quatre vents (en quelque sorte). Initialement un programme " -"Amiga d'Uli Siegmund." +"leurs étoiles aux quatre vents (en quelque sorte). " +"Écrit par Uli Siegmund, Harald Backert et Hubert Feyrer; 1997." #: hacks/config/gears.xml.h:3 msgid "Gears" @@ -4464,18 +4359,19 @@ msgstr "Engrenages" msgid "Planetary Gear System" msgstr "Train d'engrenages planétaires" -#: hacks/config/gears.xml.h:5 hacks/config/goop.xml.h:9 +#: hacks/config/gears.xml.h:6 hacks/config/goop.xml.h:9 msgid "Rotational Speed" msgstr "Vitesse de rotation" #: hacks/config/gears.xml.h:9 msgid "" "This draws sets of turning, interlocking gears, rotating in three " -"dimensions. Another GL hack, by Danny Sung, Brian Paul, Ed Mackey, and Jamie " -"Zawinski." +"dimensions. Written by Brian Paul, Jamie Zawinski. Danny Sung, and Ed " +"Mackey; 1997." msgstr "" -"Dessine des engrenages qui s'emboîtent et pivotent en trois dimensions. Un " -"autre hack GL de Danny Sung, Brian Paul, Ed Mackey et Jamie Zawinski." +"Dessine des engrenages qui s'emboîtent et pivotent en trois dimensions. " +"Écrit by Brian Paul, Jamie Zawinski. Danny Sung et Ed " +"Mackey; 1997." #: hacks/config/gears.xml.h:10 msgid "Three Gear System" @@ -4487,11 +4383,11 @@ msgstr "Échiquier" #: hacks/config/gflux.xml.h:5 msgid "" -"Draws a rippling waves on a rotating wireframe grid, using GL. Written by " -"Josiah Pease." +"Draws a rippling waves on a rotating wireframe grid. Written by Josiah " +"Pease; 2000." msgstr "" -"Dessine des vagues ondulantes sur une grille en rotation en utilisant GL. " -"Écrit par Josiah Pease." +"Dessine des vagues ondulantes sur une grille en rotation. " +"Écrit par Josiah Pease; 2000." #: hacks/config/gflux.xml.h:7 msgid "Flat Lighting" @@ -4503,17 +4399,17 @@ msgstr "GFlux" #: hacks/config/gflux.xml.h:9 msgid "Mesh Density" -msgstr "Densité de maille" +msgstr "Densité du treillis" #: hacks/config/gflux.xml.h:10 -msgid "Screen Image" -msgstr "Image écran" +msgid "Picture" +msgstr "Image" #: hacks/config/gflux.xml.h:14 hacks/config/interference.xml.h:21 msgid "Wave Speed" msgstr "Vitesse des vagues" -#: hacks/config/gflux.xml.h:15 hacks/config/glmatrix.xml.h:20 +#: hacks/config/gflux.xml.h:15 hacks/config/glmatrix.xml.h:18 msgid "Waves" msgstr "Vagues" @@ -4537,7 +4433,7 @@ msgid "" "increasingly-enlarged and increasingly-transparent versions of that texture " "onto the frame buffer. As such, it's quite graphics intensive: don't bother " "trying to run this if you don't have hardware-accelerated OpenGL texture " -"support. It will hurt your machine bad." +"support. It will hurt your machine bad. Written by Jamie Zawinski; 2002." msgstr "" #: hacks/config/gleidescope.xml.h:2 hacks/config/glslideshow.xml.h:6 @@ -4547,9 +4443,11 @@ msgstr "5 minutes" #: hacks/config/gleidescope.xml.h:3 msgid "" -"An OpenGL kaleidescope that operates on your desktop image, or on image " -"files loaded from disk. Written by andrew dean." +"A kaleidescope that operates on your desktop image, or on image files loaded " +"from disk. Written by Andrew Dean; 2003." msgstr "" +"Un kaléïdoscope qui utilise une image de votre bureau, ou un fichier " +"image chargé depuis le disque. Écrit par Andrew Dean; 2003." #: hacks/config/gleidescope.xml.h:4 msgid "Gleidescope" @@ -4559,15 +4457,11 @@ msgstr "Kaleïdoscope GL" msgid "Image Duration" msgstr "Durée de l'image" -#: hacks/config/gleidescope.xml.h:6 -msgid "Image file" -msgstr "Fichier image" - -#: hacks/config/gleidescope.xml.h:8 +#: hacks/config/gleidescope.xml.h:7 msgid "Move" msgstr "Déplacement" -#: hacks/config/gleidescope.xml.h:11 +#: hacks/config/gleidescope.xml.h:10 msgid "Size of tube" msgstr "Taille du tube" @@ -4578,16 +4472,14 @@ msgstr "Désert" #: hacks/config/glforestfire.xml.h:3 msgid "" "Draws an animation of sprinkling fire-like 3D triangles in a landscape " -"filled with trees. Requires OpenGL, and a machine with fast hardware support " -"for texture maps. Written by Eric Lassauge <lassauge@users.sourceforge." -"net>." +"filled with trees. Written by Eric Lassauge; 2002." msgstr "" "Dessine une animation d'un pseudo-feu avec des triangles 3D dans un paysage " -"arboré. Nécessite OpenGL et une machine avec un support matériel puissant " -"pour les textures. Écrit par Eric Lassauge <lassauge@users.sourceforge." -"net>." +"arboré. Écrit par Eric Lassauge ; 2002." -#: hacks/config/glforestfire.xml.h:5 hacks/config/glmatrix.xml.h:9 +#: hacks/config/glforestfire.xml.h:5 hacks/config/glmatrix.xml.h:6 +#: hacks/config/glschool.xml.h:8 msgid "Fog" msgstr "Brouillard" @@ -4600,20 +4492,20 @@ msgid "Huge Fire" msgstr "Grand incendie" #: hacks/config/glforestfire.xml.h:9 -msgid "No shadow" -msgstr "Pas d'ombre" - -#: hacks/config/glforestfire.xml.h:11 msgid "Number of trees" msgstr "Nombre d'arbres" -#: hacks/config/glforestfire.xml.h:12 +#: hacks/config/glforestfire.xml.h:10 msgid "Rain" msgstr "Pluie" -#: hacks/config/glforestfire.xml.h:17 -msgid "Track mouse" -msgstr "Suivre la souris" +#: hacks/config/glforestfire.xml.h:11 +msgid "Shadows" +msgstr "Ombres" + +#: hacks/config/glforestfire.xml.h:15 +msgid "Textures" +msgstr "Textures" #: hacks/config/glhanoi.xml.h:1 msgid "Enable fog" @@ -4623,10 +4515,6 @@ msgstr "Activer le brouillard" msgid "Enable lighting" msgstr "Activer l'éclairage" -#: hacks/config/glhanoi.xml.h:4 -msgid "Frame Delay (us)" -msgstr "Délai entre trames (us)" - #: hacks/config/glhanoi.xml.h:5 msgid "GLHanoi" msgstr "GL Hanoï" @@ -4639,8 +4527,11 @@ msgstr "Nombre de disques" msgid "" "Solves the Towers of Hanoi puzzle. Move N disks from one pole to another, " "one disk at a time, with no disk ever resting on a disk smaller than itself. " -"Written by Dave Atkinson." +"Written by Dave Atkinson; 2005." msgstr "" +"Résolution du problème des Tours de Hanoï. Déplace N disques d'un poteau à " +"l'autre, un disque à la fois, sans avoir un disque posé sur un autre de " +"taille inférieure. Écrit par Dave Atkinson; 2005." #: hacks/config/glknots.xml.h:4 msgid "GLKnots" @@ -4649,8 +4540,8 @@ msgstr "Noeuds GL" #: hacks/config/glknots.xml.h:5 msgid "" "Generates some twisting 3d knot patterns. Spins 'em around. Written by Jamie " -"Zawinski." -msgstr "Génère de nombreux motifs 3D en spirale. Écrit par Jamie Zawinski." +"Zawinski; 2003." +msgstr "Génère de nombreux motifs 3D en spirale. Écrit par Jamie Zawinski; 2003." #: hacks/config/glknots.xml.h:7 hacks/config/lavalite.xml.h:17 #: hacks/config/spheremonics.xml.h:9 @@ -4671,64 +4562,57 @@ msgid "Binary Encoding" msgstr "Encodage binaire" #: hacks/config/glmatrix.xml.h:4 -msgid "Draw Glyphs" -msgstr "Dessiner des glyphes" - -#: hacks/config/glmatrix.xml.h:5 -msgid "Draw Outlines" -msgstr "Dessiner en fil de fer" - -#: hacks/config/glmatrix.xml.h:6 -msgid "Draw Solid Boxes" -msgstr "Dessiner sans texture" - -#: hacks/config/glmatrix.xml.h:7 msgid "" "Draws 3D dropping characters similar to what is seen in the title sequence " "of \"The Matrix\". See also \"xmatrix\" for a 2D rendering of the similar " "effect that appeared on the computer monitors actually *in* the movie. " -"Written by Jamie Zawinski." +"Written by Jamie Zawinski; 2003." msgstr "" +"Dessine des caractères 3D qui tombent de façon similaire à ce que l'on voit " +"dans la séquence de titre de «Matrix». Voir également «xmatrix» pour un " +"rendu 2D du même effet qui apparaît sur les moniteurs *dans* le film. Écrit " +"par Jamie Zawinski; 2003." -#: hacks/config/glmatrix.xml.h:10 +#: hacks/config/glmatrix.xml.h:7 msgid "GLMatrix" msgstr "GLMatrix" -#: hacks/config/glmatrix.xml.h:11 hacks/config/xmatrix.xml.h:7 +#: hacks/config/glmatrix.xml.h:8 hacks/config/xmatrix.xml.h:7 msgid "Genetic Encoding" msgstr "Encodage génétique" -#: hacks/config/glmatrix.xml.h:12 +#: hacks/config/glmatrix.xml.h:9 msgid "Glyph Density" msgstr "Densité des glyphes" -#: hacks/config/glmatrix.xml.h:13 +#: hacks/config/glmatrix.xml.h:10 msgid "Glyph Speed" msgstr "Vitesse des glyphes" -#: hacks/config/glmatrix.xml.h:14 hacks/config/xmatrix.xml.h:8 +#: hacks/config/glmatrix.xml.h:11 hacks/config/xmatrix.xml.h:8 msgid "Hexadecimal Encoding" msgstr "Encodage hexadécimal" -#: hacks/config/glmatrix.xml.h:15 hacks/config/xmatrix.xml.h:11 +#: hacks/config/glmatrix.xml.h:12 hacks/config/xmatrix.xml.h:11 msgid "Matrix Encoding" msgstr "Encodage Matrix" -#: hacks/config/glmatrix.xml.h:16 +#: hacks/config/glmatrix.xml.h:13 msgid "Panning" msgstr "Panoramique" #: hacks/config/glplanet.xml.h:1 msgid "" -"Draws a planet bouncing around in space. Written by David Konerding. The " -"built-in image is a map of the earth (extracted from `xearth'), but you can " -"wrap any texture around the sphere, e.g., the planetary textures that come " -"with `ssystem'." +"Draws a planet bouncing around in space. The built-in image is a map of the " +"earth (extracted from `xearth'), but you can wrap any texture around the " +"sphere, e.g., the planetary textures that come with `ssystem'. Written by " +"David Konerding; 1998." msgstr "" -"Dessine une planète qui rebondit dans l'espace. Écrit par David Konerding. " +"Dessine une planète qui rebondit dans l'espace. " "L'image intégrée est un planisphère (extrait de «xearth»), mais vous pouvez " "entourer la sphère d'une texture quelconque, p. ex., les textures " "planétaires fournies avec «ssystem»." +"Écrit par David Konerding. 1998" #: hacks/config/glplanet.xml.h:3 msgid "GLPlanet" @@ -4742,8 +4626,49 @@ msgstr "Fichier image" msgid "Roll" msgstr "Pivote" +#: hacks/config/glschool.xml.h:1 +msgid "Avoidance" +msgstr "Evitement" + +#: hacks/config/glschool.xml.h:2 +msgid "Centering" +msgstr "Centrage" + +#: hacks/config/glschool.xml.h:3 hacks/config/molecule.xml.h:7 +#: hacks/config/spheremonics.xml.h:2 +msgid "Draw Bounding Box" +msgstr "Dessiner le cadre englobant" + +#: hacks/config/glschool.xml.h:4 +msgid "Draw Goal" +msgstr "Dessiner des cibles" + +#: hacks/config/glschool.xml.h:7 +msgid "Fish Count" +msgstr "Nombre de poissons" + +#: hacks/config/glschool.xml.h:9 +msgid "Goal Following" +msgstr "Suivi de la cible" + +#: hacks/config/glschool.xml.h:16 +msgid "" +"Uses Craig Reynolds' Boids algorithm to simulate a school of fish. Looks " +"best with more fish, so raise the number of fish until the frame rate " +"declines to 25-30 fps. Written by David C. Lambert; 2006." +msgstr "" + +#: hacks/config/glschool.xml.h:17 +msgid "Velocity Matching" +msgstr "Couplage de vitesse" + +#: hacks/config/glschool.xml.h:19 +msgid "glschool" +msgstr "GLschool" + #: hacks/config/glslideshow.xml.h:4 hacks/config/rd-bomb.xml.h:5 -#: hacks/config/substrate.xml.h:4 hacks/config/xplanet.xml.h:4 +#: hacks/config/rdbomb.xml.h:5 hacks/config/substrate.xml.h:4 +#: hacks/config/xplanet.xml.h:4 #, no-c-format msgid "100%" msgstr "100%" @@ -4764,11 +4689,11 @@ msgstr "Montre au moins ce % de l'image :" #: hacks/config/glslideshow.xml.h:10 hacks/config/mirrorblob.xml.h:6 msgid "Crossfade Duration:" -msgstr "Durée du fondu-enchaîné :" +msgstr "Durée du fondu-enchaîné" #: hacks/config/glslideshow.xml.h:11 msgid "Frame Rate:" -msgstr "Trames par seconde :" +msgstr "Trames par seconde" #: hacks/config/glslideshow.xml.h:12 msgid "GLSlideshow" @@ -4777,13 +4702,8 @@ msgstr "Diaporama GL" #: hacks/config/glslideshow.xml.h:15 msgid "" "Loads a random sequence of images and smoothly scans and zooms around in " -"each, fading from pan to pan. To tell it where to find the images to " -"display, go to the \"Advanced\" tab on the Screensaver Preferences window. " -"Select \"Choose Random Images\", and enter your image directory in the text " -"field right below that. (Note: not the the \"Advanced\" button at the bottom " -"of this window: the tab at the top of the *other* window.) This program " -"requires a good video card capable of supporting large textures. Written by " -"Jamie Zawinski and Mike Oliphant." +"each, fading from pan to pan. Written by Jamie Zawinski and Mike Oliphant; " +"2003." msgstr "" #: hacks/config/glslideshow.xml.h:18 @@ -4801,10 +4721,10 @@ msgstr "Vitesse angulaire" #: hacks/config/glsnake.xml.h:4 msgid "" "Draws a simulation of the Rubik's Snake puzzle. Written by Jamie Wilkinson, " -"Andrew Bennetts, and Peter Aylett." +"Andrew Bennetts, and Peter Aylett; 2002." msgstr "" "Dessine une simulation du serpent Rubik. Écrit par Jamie Wilkinson, Andrew " -"Bennetts et Peter Aylett." +"Bennetts et Peter Aylett; 2002." #: hacks/config/glsnake.xml.h:7 msgid "GlSnake" @@ -4812,39 +4732,39 @@ msgstr "Serpent GL" #: hacks/config/glsnake.xml.h:8 msgid "Loose" -msgstr "Étendu" +msgstr "Eloigné" #: hacks/config/glsnake.xml.h:9 msgid "Packing" -msgstr "Emballage" +msgstr "Noeuds" #: hacks/config/glsnake.xml.h:11 msgid "Show Titles" -msgstr "Montre les titres" +msgstr "Montrer les titres" -#: hacks/config/glsnake.xml.h:14 +#: hacks/config/glsnake.xml.h:13 msgid "Tight" msgstr "Serré" -#: hacks/config/glsnake.xml.h:16 +#: hacks/config/glsnake.xml.h:15 msgid "Y Angular Velocity" msgstr "Vitesse angulaire en Y" -#: hacks/config/glsnake.xml.h:17 +#: hacks/config/glsnake.xml.h:16 msgid "Z Angular Velocity" msgstr "Vitesse angulaire en Z" #: hacks/config/gltext.xml.h:1 msgid "Always face front" -msgstr "Toujours regarder l'avant" +msgstr "Toujours voir la face avant" #: hacks/config/gltext.xml.h:2 msgid "" "Displays a few lines of text spinning around in a solid 3D font. Written by " -"Jamie Zawinski." +"Jamie Zawinski; 2001." msgstr "" "Affiche quelques lignes de texte qui tournoient dans une police 3D unie. " -"Écrit par Jamie Zawinski." +"Écrit par Jamie Zawinski; 2001." #: hacks/config/gltext.xml.h:5 msgid "GLText" @@ -4854,11 +4774,11 @@ msgstr "Texte GL" msgid "Program" msgstr "Programme" -#: hacks/config/gltext.xml.h:18 +#: hacks/config/gltext.xml.h:17 msgid "Spin all the way around" msgstr "Rotation" -#: hacks/config/gltext.xml.h:19 hacks/config/noseguy.xml.h:5 +#: hacks/config/gltext.xml.h:18 msgid "Text" msgstr "Texte" @@ -4868,8 +4788,8 @@ msgstr "Go" #: hacks/config/goban.xml.h:2 msgid "" -"Replays historical games of go (aka wei-chi and baduk) on the screen. By " -"Scott Draves. You can find it at <http://www.draves.org/goban/>." +"Replays historical games of go (aka wei-chi and baduk) on the screen. You " +"can find it at <http://www.draves.org/goban/>. Written by Scott Draves." msgstr "" #: hacks/config/goop.xml.h:1 @@ -4908,16 +4828,16 @@ msgid "" "over another, their colors merge. I got the idea for this from a cool mouse " "pad I have, which achieves the same kind of effect in real life by having " "several layers plastic with colored oil between them. Written by Jamie " -"Zawinski." +"Zawinski; 1997." msgstr "" "Dessine un ensemble de taches transparentes, animées, semblables à des " "amibes. Les taches changent de forme en se déplaçant sur l'écran et sont " "translucides, ce qui permet de voir les taches d'arrière-plan à travers " "celles d'avant-plan. Lorsqu'une tache passe au-dessus d'une autre, leurs " -"couleurs fusionnent. Écrit par Jamie Zawinski. C'est un super tapis de " +"couleurs fusionnent. C'est un super tapis de " "souris qui m'en a donné l'idée. Il obtient le même type d'effet en étant " "composé de plusieurs couches de plastique séparées par de l'huile colorée. " -"Écrit par Jamie Zawinski." +"Écrit par Jamie Zawinski; 1997." #: hacks/config/goop.xml.h:15 msgid "Transparent Blobs" @@ -4942,30 +4862,28 @@ msgstr "Désintégration orbitale" #: hacks/config/grav.xml.h:10 msgid "" "This program draws a simple orbital simulation. If you turn on trails, it " -"looks kind of like a cloud-chamber photograph. Written by Greg Bowering." +"looks kind of like a cloud-chamber photograph. Written by Greg Bowering; " +"1997." msgstr "" "Ce programme crée une simple simulation orbitale. Si vous activez les " -"traînées, il ressemble à une sorte de photographie de chambre à brouillard. " -"Écrit par Greg Bowering." +"traînées, il ressemble à une sorte de photographie de chambre à nuages. " +"Écrit par Greg Bowering; 1997." -#: hacks/config/greynetic.xml.h:2 -msgid "Greynetic" -msgstr "Rectangles de couleur" - -#: hacks/config/greynetic.xml.h:5 +#: hacks/config/greynetic.xml.h:1 msgid "" -"This draws random colored and stippled rectangles. Written by Jamie Zawinski." +"Draws random colored, stippled and transparent rectangles. Written by Jamie " +"Zawinski; 1992." msgstr "" -"Dessine des rectangles colorés et pointillés de manière aléatoire. Écrit par " -"Jamie Zawinski." - -#: hacks/config/halftone.xml.h:1 -msgid "Delay (Large = low cpu load)" -msgstr "Délai (élévé = peu de charge processeur)" +"Dessine des rectangles colorés, en pointillés et transparents de manière aléatoire. Écrit par " +"Jamie Zawinski; 1992." + +#: hacks/config/greynetic.xml.h:3 +msgid "Greynetic" +msgstr "Rectangles de couleur" #: hacks/config/halftone.xml.h:2 msgid "Dot fill factor" -msgstr "Facteur du remplissage par point" +msgstr "Facteur de remplissage par point" #: hacks/config/halftone.xml.h:3 msgid "Dot size" @@ -4975,73 +4893,73 @@ msgstr "Taille des points" msgid "" "Draws the gravity force in each point on the screen seen through a halftone " "dot pattern. The gravity force is calculated from a set of moving mass " -"points. View it from a distance for best effect. Written by Peter Jaric <" -"peter@jaric.org>." +"points. View it from a distance for best effect. Written by Peter Jaric; " +"2002." msgstr "" -#: hacks/config/halftone.xml.h:5 +#: hacks/config/halftone.xml.h:6 msgid "Gravity points" msgstr "Gravité des points" -#: hacks/config/halftone.xml.h:6 +#: hacks/config/halftone.xml.h:7 msgid "Halftone" msgstr "Demi-teintes" -#: hacks/config/halftone.xml.h:10 +#: hacks/config/halftone.xml.h:11 msgid "Maximum mass" -msgstr "Masse max" +msgstr "Masse max." -#: hacks/config/halftone.xml.h:11 +#: hacks/config/halftone.xml.h:12 msgid "Maximum speed" -msgstr "Vitesse max" +msgstr "Vitesse max." -#: hacks/config/halftone.xml.h:12 +#: hacks/config/halftone.xml.h:13 msgid "Minimum mass" -msgstr "Masse min" +msgstr "Masse min." -#: hacks/config/halftone.xml.h:13 +#: hacks/config/halftone.xml.h:14 msgid "Minimum speed" -msgstr "Vitesse min" +msgstr "Vitesse min." #: hacks/config/halo.xml.h:1 msgid "Animate Circles" msgstr "Cercles animés" -#: hacks/config/halo.xml.h:3 +#: hacks/config/halo.xml.h:2 +msgid "" +"Draws trippy psychedelic circular patterns that hurt to look at. Written by " +"Jamie Zawinski; 1993." +msgstr "" +"Dessine des motifs circulaires psychédéliques qui font mal aux yeux. " +"Écrit par Jamie Zawinski; 1993." + +#: hacks/config/halo.xml.h:4 msgid "Halo" msgstr "Halo" -#: hacks/config/halo.xml.h:5 +#: hacks/config/halo.xml.h:6 msgid "Number of Circles" msgstr "Nombre de cercles" -#: hacks/config/halo.xml.h:7 +#: hacks/config/halo.xml.h:8 msgid "Ramp Mode" msgstr "Mode rampe" -#: hacks/config/halo.xml.h:9 +#: hacks/config/halo.xml.h:9 hacks/config/imsmap.xml.h:12 +msgid "Random Mode" +msgstr "Mode aléatoire" + +#: hacks/config/halo.xml.h:10 msgid "Seuss Mode" msgstr "Mode Seuss" -#: hacks/config/halo.xml.h:12 -msgid "" -"This draws trippy psychedelic circular patterns that hurt to look at. It can " -"also animate the control-points, but that takes a lot of CPU and bandwidth. " -"Written by Jamie Zawinski." -msgstr "" -"Dessine des motifs circulaires psychédéliques qui font mal aux yeux. Il peut " -"aussi animer les points de contrôle, mais cette option utilise beaucoup de " -"ressources processeur et de bande passante. Écrit par Jamie Zawinski." - #: hacks/config/helix.xml.h:4 msgid "Helix" msgstr "Hélix" #: hacks/config/helix.xml.h:5 -msgid "" -"This repeatedly generates spirally string-art-ish patterns. Written by Jamie " -"Zawinski." -msgstr "Génère de nombreux motifs en spirale. Écrit par Jamie Zawinski." +msgid "Spirally string-art-ish patterns. Written by Jamie Zawinski; 1992." +msgstr "Génère de nombreux motifs en spirale. Écrit par Jamie Zawinski; 1992." #: hacks/config/hopalong.xml.h:3 msgid "EJK1" @@ -5090,11 +5008,11 @@ msgstr "Sinus" #: hacks/config/hopalong.xml.h:24 msgid "" "This draws lacy fractal patterns, based on iteration in the imaginary plane, " -"from a 1986 Scientific American article. Mostly written by Patrick Naughton." +"from a 1986 Scientific American article. Written by Patrick Naughton; 1992." msgstr "" "Dessine des motifs fractals dentelés, basés sur une itération sur le plan " -"imaginaire, d'un article scientifique américain de 1986. Principalement " -"écrit par Patrick Naughton." +"imaginaire, d'un article scientifique américain de 1986. Écrit " +"par Patrick Naughton; 1992." #: hacks/config/hyperball.xml.h:4 msgid "Hyperball" @@ -5104,13 +5022,13 @@ msgstr "Hyperballe" msgid "" "Hyperball is to hypercube as dodecahedron is to cube: this displays a 2D " "projection of the sequence of 3D objects which are the projections of the 4D " -"analog to the dodecahedron. Technically, it is a \"120 cell polytope.\" " -"Written by Joe Keane. See also the \"polytopes\" hack for a more general " -"version of this using OpenGL." +"analog to the dodecahedron. Technically, it is a \"120 cell polytope\". See " +"also \"polytopes\" for a more general version of this using OpenGL. Written " +"by Joe Keane; 2000." msgstr "" "L'hyperballe est à l'hypercube ce que le dodécaèdre est au cube : il affiche " "une projection en 2D de la séquence d'objets 3D qui sont les projections de " -"l'analogie 4D du dodécaèdre. Écrit par Joe Keane." +"l'analogie 4D du dodécaèdre. Écrit par Joe Keane; 2002." #: hacks/config/hyperball.xml.h:10 hacks/config/hypercube.xml.h:10 msgid "XW Rotation" @@ -5148,9 +5066,8 @@ msgid "" "touching four others; a hypercube is composed of eight cubes, each touching " "six others. To make it easier to visualize the rotation, it uses a different " "color for the edges of each face. Don't think about it too long, or your " -"brain will melt. Written by Joe Keane, Fritz Mueller, and Jamie Zawinski. " -"See also the \"polytopes\" hack for a more general version of this using " -"OpenGL." +"brain will melt. See also \"polytopes\" for a more general version of this " +"using OpenGL. Written by Joe Keane, Fritz Mueller, and Jamie Zawinski; 1992." msgstr "" "Affiche des projections 2D de la séquence d'objets 3D qui sont les " "projections de l'analogie 4D du cube : un carré est composé de quatre " @@ -5159,7 +5076,7 @@ msgstr "" "huit cubes, chacun touchant les six autres. Pour visualiser la rotation " "plus facilement, il utilise une couleur différente pour les bords de chaque " "face. N'y réfléchissez pas trop longtemps, votre cerveau pourrait fondre. " -"Écrit par Joe Keane, Fritz Mueller et Jamie Zawinski." +"Écrit par Joe Keane, Fritz Mueller et Jamie Zawinski; 1992." #: hacks/config/hypertorus.xml.h:1 hacks/config/polytopes.xml.h:1 msgid "-4.0" @@ -5170,17 +5087,17 @@ msgid "4.0" msgstr "4.0" #: hacks/config/hypertorus.xml.h:3 -msgid "4D Hypertorus" -msgstr "Hypertore 4D" - -#: hacks/config/hypertorus.xml.h:4 msgid "Color Wheel" msgstr "Roue des couleurs" -#: hacks/config/hypertorus.xml.h:5 hacks/config/polytopes.xml.h:10 +#: hacks/config/hypertorus.xml.h:4 hacks/config/polytopes.xml.h:10 msgid "Display Speed" msgstr "Vitesse d'affichage" +#: hacks/config/hypertorus.xml.h:6 +msgid "Hypertorus" +msgstr "Hypertore 4D" + #: hacks/config/hypertorus.xml.h:7 hacks/config/polytopes.xml.h:12 msgid "Orthographic 3d" msgstr "Projection orthographique 3D" @@ -5225,17 +5142,16 @@ msgstr "Spirales transparentes (8 spirale)" msgid "Solid Object" msgstr "Objets solides" -#: hacks/config/hypertorus.xml.h:20 hacks/config/mirrorblob.xml.h:19 -#: hacks/config/polytopes.xml.h:21 hacks/config/pulsar.xml.h:16 +#: hacks/config/hypertorus.xml.h:20 hacks/config/polytopes.xml.h:21 msgid "Solid Surface" msgstr "Surface solide" #: hacks/config/hypertorus.xml.h:21 msgid "" "This program shows a rotating Clifford Torus: a torus lying on the \"surface" -"\" of a 4D hypersphere. Written by Carsten Steger, inspired by Thomas " -"Banchoff's book \"Beyond the Third Dimension: Geometry, Computer Graphics, " -"and Higher Dimensions\", Scientific American Library, 1990." +"\" of a 4D hypersphere. Inspired by Thomas Banchoff's book \"Beyond the " +"Third Dimension: Geometry, Computer Graphics, and Higher Dimensions\", " +"Scientific American Library, 1990. Written by Carsten Steger; 2003." msgstr "" #: hacks/config/hypertorus.xml.h:22 hacks/config/polytopes.xml.h:23 @@ -5279,47 +5195,33 @@ msgid "2" msgstr "2" #: hacks/config/ifs.xml.h:2 -msgid "Blend" -msgstr "Fondu" - -#: hacks/config/ifs.xml.h:3 msgid "Detail" msgstr "Détail" #: hacks/config/ifs.xml.h:5 -msgid "Function" -msgstr "Fonction" - -#: hacks/config/ifs.xml.h:6 -msgid "Functions" -msgstr "Fonctions" - -#: hacks/config/ifs.xml.h:7 msgid "IFS" msgstr "IFS" -#: hacks/config/ifs.xml.h:9 +#: hacks/config/ifs.xml.h:8 msgid "Number of Colours" msgstr "Nombre de couleurs" -#: hacks/config/ifs.xml.h:11 hacks/config/phosphor.xml.h:6 +#: hacks/config/ifs.xml.h:9 +msgid "Number of Functions" +msgstr "Nombre de fonctions" + +#: hacks/config/ifs.xml.h:11 msgid "Scale" msgstr "Échelle" -#: hacks/config/ifs.xml.h:12 -msgid "Single" -msgstr "Simple" - -#: hacks/config/ifs.xml.h:15 +#: hacks/config/ifs.xml.h:14 msgid "" "This one draws spinning, colliding iterated-function-system images. Note " -"that the \"quality\" parameter is exponential. Number of points drawn is " -"functions^detail. The number of colours is only used in Blend mode to " -"provide a palette to create the base colours. These are then blended " -"together in a non-colourmap friendly fashion. Written by Chris Le Sueur." +"that the \"Detail\" parameter is exponential. Number of points drawn is " +"functions^detail. Written by Chris Le Sueur and Robby Griffin; 1997." msgstr "" -#: hacks/config/ifs.xml.h:16 +#: hacks/config/ifs.xml.h:15 msgid "Translate" msgstr "Translation" @@ -5335,22 +5237,17 @@ msgstr "Dégradés de teinte" msgid "IMSmap" msgstr "IMSmap" -#: hacks/config/imsmap.xml.h:12 +#: hacks/config/imsmap.xml.h:13 msgid "Saturation Gradients" msgstr "Dégradés de saturation" -#: hacks/config/imsmap.xml.h:14 +#: hacks/config/imsmap.xml.h:17 msgid "" -"This generates random cloud-like patterns. It looks quite different in " -"monochrome and color. The basic idea is to take four points on the edge of " -"the image, and assign each a random ``elevation''. Then find the point " -"between them, and give it a value which is the average of the other four, " -"plus some small random offset. Then coloration is done based on elevation. " -"The color selection is done by binding the elevation to either hue, " -"saturation, or brightness, and assigning random values to the others. The " -"``brightness'' mode tends to yield cloudlike patterns, and the others tend " -"to generate images that look like heat-maps or CAT-scans. Written by Juergen " -"Nickelsen and Jamie Zawinski." +"This generates random cloud-like patterns. The idea is to take four points " +"on the edge of the image, and assign each a random \"elevation\". Then find " +"the point between them, and give it a value which is the average of the " +"other four, plus some small random offset. Coloration is done based on " +"elevation. Written by Juergen Nickelsen and Jamie Zawinski; 1992." msgstr "" "Génère des motifs nuageux aléatoires. Son apparence en mode monochrome et " "couleur est assez différente. L'idée de base consiste à prendre quatre " @@ -5360,30 +5257,27 @@ msgstr "" "La coloration s'effectue alors en fonction de l'élévation. La sélection de " "couleur est basée sur l'association de l'élévation à la teinte, la " "saturation ou la luminosité, des valeurs aléatoires étant attribuées aux " -"autres paramètres. Le mode ''luminosité'' tend à produire des motifs nuageux " -"et les autres, à générer des images qui ressemblent à des cartes thermiques " -"ou des tomodensitogrammes. Écrit par Juergen Nickelsen et Jamie Zawinski." +"autres paramètres. " +"Écrit par Juergen Nickelsen et Jamie Zawinski; 1992." + +#: hacks/config/interaggregate.xml.h:1 +msgid "" +"A surface is filled with a hundred medium to small sized circles. Each " +"circle has a different size and direction, but moves at the same slow rate. " +"Displays the instantaneous intersections of the circles as well as the " +"aggregate intersections of the circles. Though actually it doesn't look like " +"circles at all! Written by Casey Reas, William Ngan, Robert Hodgin, and " +"Jamie Zawinski; 2004." +msgstr "" -#: hacks/config/interaggregate.xml.h:2 +#: hacks/config/interaggregate.xml.h:3 msgid "Interaggregate" msgstr "InterAggregate" -#: hacks/config/interaggregate.xml.h:3 hacks/config/intermomentary.xml.h:3 +#: hacks/config/interaggregate.xml.h:4 hacks/config/intermomentary.xml.h:6 msgid "Number of Discs" msgstr "Nombre de disques" -#: hacks/config/interaggregate.xml.h:6 -msgid "" -"The Intersection Aggregate is a fun visualization defining the relationships " -"between objects with Casey Reas, William Ngan, and Robert Hodgin. " -"Commissioned for display at the Whitney Museum of American Art. A surface " -"filled with 100 medium to small sized circles. Each circle has a different " -"size and direction, but moves at the same slow rate. Display: A. The " -"instantaneous intersections of the circles. B. The aggregate intersections " -"of the circles. Ported to XScreensaver from the art project \"InterAggregate" -"\" at http://www.complexification.net" -msgstr "" - #: hacks/config/interference.xml.h:1 hacks/config/rotzoomer.xml.h:1 msgid "0" msgstr "0°" @@ -5396,16 +5290,11 @@ msgstr "360°" msgid "Anim Speed" msgstr "Vitesse d'animation" -#: hacks/config/interference.xml.h:4 +#: hacks/config/interference.xml.h:5 msgid "" -"Another color-field hack, this one works by computing decaying sinusoidal " -"waves, and allowing them to interfere with each other as their origins move. " -"Written by Hannu Mallat." +"Color field based on computing decaying sinusoidal waves. Written by Hannu " +"Mallat; 1998." msgstr "" -"Un autre hack basé sur des champs de couleur, qui fonctionne en calculant " -"des vagues sinusoïdales qui se désintègrent et en leur permettant " -"d'interagir à mesure du déplacement de leurs origines. Écrit par Hannu " -"Mallat." #: hacks/config/interference.xml.h:9 msgid "Hue" @@ -5415,8 +5304,8 @@ msgstr "Teinte" msgid "Interference" msgstr "Interférences" -#: hacks/config/interference.xml.h:13 hacks/config/t3d.xml.h:9 -#: hacks/config/xearth.xml.h:11 hacks/config/zoom.xml.h:5 +#: hacks/config/interference.xml.h:13 hacks/config/t3d.xml.h:10 +#: hacks/config/zoom.xml.h:5 msgid "Magnification" msgstr "Agrandissement" @@ -5428,25 +5317,30 @@ msgstr "Nombre de vagues" msgid "Wave Size" msgstr "Taille des vagues" +#: hacks/config/intermomentary.xml.h:1 +msgid "400" +msgstr "400" + #: hacks/config/intermomentary.xml.h:2 -msgid "Intermomentary" -msgstr "InterMomentary" +msgid "50" +msgstr "50" -#: hacks/config/intermomentary.xml.h:6 +#: hacks/config/intermomentary.xml.h:3 msgid "" -"The Intersection Momentary is a fun visualization defining the relationships " -"between objects with Casey Reas, William Ngan, and Robert Hodgin. " -"Commissioned for display at the Whitney Museum of American Art. A surface " -"filled with 100 medium to small sized circles. Each circle has a different " -"size and direction, but moves at the same slow rate. Display: A. The " -"instantaneous intersections of the circles. B. The aggregate intersections " -"of the circles. Ported to XScreensaver from the art project \"InterMomentary" -"\" at http://www.complexification.net" +"A surface is filled with a hundred medium to small sized circles. Each " +"circle has a different size and direction, but moves at the same slow rate. " +"Displays the instantaneous intersections of the circles as well as the " +"aggregate intersections of the circles. The circles begin with a radius of 1 " +"pixel and slowly increase to some arbitrary size. Circles are drawn with " +"small moving points along the perimeter. The intersections are rendered as " +"glowing orbs. Glowing orbs are rendered only when a perimeter point moves " +"past the intersection point. Written by Casey Reas, William Ngan, Robert " +"Hodgin, and Jamie Zawinski; 2004." msgstr "" -#: hacks/config/jigglypuff.xml.h:2 -msgid "Chrome" -msgstr "Chrome" +#: hacks/config/intermomentary.xml.h:5 +msgid "Intermomentary" +msgstr "InterMomentary" #: hacks/config/jigglypuff.xml.h:3 msgid "Clown barf" @@ -5468,6 +5362,10 @@ msgstr "Atténuation inertielle" msgid "JigglyPuff" msgstr "JigglyPuff" +#: hacks/config/jigglypuff.xml.h:13 +msgid "Randomize Almost Everything" +msgstr "Tout aléatoire" + #: hacks/config/jigglypuff.xml.h:14 msgid "Rotation speed" msgstr "Vitesse de rotation" @@ -5488,25 +5386,20 @@ msgstr "Niveau de frayeur" msgid "Spoooooky" msgstr "Chair de poulesque (!)" -#: hacks/config/jigglypuff.xml.h:21 hacks/config/polyhedra.xml.h:148 -#: hacks/config/sballs.xml.h:16 +#: hacks/config/jigglypuff.xml.h:21 hacks/config/morph3d.xml.h:12 +#: hacks/config/polyhedra.xml.h:148 hacks/config/sballs.xml.h:15 msgid "Tetrahedron" msgstr "Tétraèdre" #: hacks/config/jigglypuff.xml.h:22 msgid "" -"This little gem does bad things with quasi-spherical objects. The gist of it " -"is that you have what is, structurally, a tetrahedron with tesselated faces. " -"the vertices on these faces have forces on them in the form of one " -"proportional to their distance from the surface of a sphere, and one which " -"is proportional to how far they differ from some ideal distance from their " -"neighbors. They also have inertia. The forces and distance are parameters " -"and there are also a couple of visual parameters. The resulting effect can " -"range from a shape that does nothing, to a frenetic polygon storm. Somewhere " -"in between there it usually manifests as a blob that jiggles in a kind of " -"disturbing manner. woo. It doesn't matter, however. You should just pick " -"'random'. It overrides all the other options, except for fps, delay and " -"complexity. By Keith Macleod" +"This does bad things with quasi-spherical objects. You have a tetrahedron " +"with tesselated faces. The vertices on these faces have forces on them: one " +"proportional to the distance from the surface of a sphere; and one " +"proportional to the distance from the neighbors. They also have inertia. The " +"resulting effect can range from a shape that does nothing, to a frenetic " +"polygon storm. Somewhere in between there it usually manifests as a blob " +"that jiggles in a kind of disturbing manner. Written by Keith Macleod; 2003." msgstr "" #: hacks/config/jigglypuff.xml.h:23 @@ -5519,19 +5412,19 @@ msgstr "Force vertex-vertex" #: hacks/config/jigglypuff.xml.h:26 msgid "collapse" -msgstr "effondrement" +msgstr "Effondrement" #: hacks/config/jigglypuff.xml.h:27 msgid "expand" -msgstr "expansion" +msgstr "Expansion" #: hacks/config/jigglypuff.xml.h:28 msgid "none" -msgstr "aucune" +msgstr "Aucune" #: hacks/config/jigglypuff.xml.h:29 msgid "strong" -msgstr "forte" +msgstr "Forte" #: hacks/config/jigsaw.xml.h:4 msgid "Jigsaw" @@ -5548,63 +5441,61 @@ msgid "" "external video signal instead of letting it grab the screen image (actually, " "I guess this is generally true...) When it is grabbing a video image, it is " "sometimes pretty hard to guess what the image is going to look like once the " -"puzzle is solved. Written by Jamie Zawinski." +"puzzle is solved. Written by Jamie Zawinski; 1998." msgstr "" "Capture l'écran, le découpe en pièces de puzzle, qu'il mélange, puis remet " "en ordre. Fonctionne particulièrement bien lorsque l'image capturée provient " "d'un signal vidéo externe et non de l'écran (en fait, je crois que c'est " "généralement le cas... ). Lorsqu'il capture une image vidéo, il est parfois " "assez difficile de deviner l'apparence de l'image une fois le puzzle " -"résolu. Écrit par Jamie Zawinski." +"résolu. Écrit par Jamie Zawinski; 1998." -#: hacks/config/juggle.xml.h:1 -msgid "Draws a juggling stick-man. Written by Tim Auckland." -msgstr "Dessine un bonhomme jongleur. Écrit par Tim Auckland." +#: hacks/config/juggle.xml.h:2 +msgid "Bowling Balls" +msgstr "Balles de bowling" #: hacks/config/juggle.xml.h:3 -msgid "Juggle" -msgstr "Jonglage" +msgid "Clubs" +msgstr "Massues" + +#: hacks/config/juggle.xml.h:4 +msgid "" +"Draws a juggling stick-man. See also \"Juggle3D\". Written by Tim Auckland; " +"2002." +msgstr "Dessine un bonhomme jongleur. Écrit par Tim Auckland; 2002." #: hacks/config/juggle.xml.h:6 -msgid "Performance Length" -msgstr "Longueur de la performance" +msgid "Flaming Torches" +msgstr "Torches enflammées" + +#: hacks/config/juggle.xml.h:7 +msgid "Juggle" +msgstr "Jongler" + +#: hacks/config/juggle.xml.h:8 +msgid "Juggle This Pattern" +msgstr "Jongler avec ce motif" -#: hacks/config/juggle.xml.h:11 -msgid "Use Pattern " -msgstr "Utiliser un pattern" +#: hacks/config/juggle.xml.h:9 +msgid "Knives" +msgstr "Couteaux" #: hacks/config/juggle.xml.h:12 -msgid "turn on/off Balls." -msgstr "Balles oui/non." +msgid "Performance Length" +msgstr "Durée de la performance" #: hacks/config/juggle.xml.h:13 -msgid "turn on/off Bowling Balls." -msgstr "Balles de bowling oui/non." +msgid "Print Cambridge Juggling Pattern Descriptions" +msgstr "Afficher les descriptions du motif de jonglerie" #: hacks/config/juggle.xml.h:14 -msgid "turn on/off Clubs." -msgstr "Massues oui/non." - -#: hacks/config/juggle.xml.h:15 -msgid "turn on/off Flaming Torches." -msgstr "Torches enflammées oui/non." - -#: hacks/config/juggle.xml.h:16 -msgid "turn on/off Knives." -msgstr "Couteaux oui/non." - -#: hacks/config/juggle.xml.h:17 -msgid "turn on/off Rings." -msgstr "Anneaux oui/non." - -#: hacks/config/juggle.xml.h:18 -msgid "turn on/off pattern descriptions." -msgstr "Description des patterns oui/non." +msgid "Rings" +msgstr "Anneaux" #: hacks/config/juggler3d.xml.h:1 msgid "" "3D simulation of a juggler performing with balls, clubs and rings. Written " -"by Brian Apps and partially based on his Win32 Juggle Saver program." +"by Brian Apps; 2005." msgstr "" #: hacks/config/juggler3d.xml.h:3 @@ -5621,7 +5512,7 @@ msgstr "Jonglage 3D" #: hacks/config/juggler3d.xml.h:6 msgid "Juggling Speed" -msgstr "Vitesse de jonglage" +msgstr "Vitesse de jonglerie" #: hacks/config/juggler3d.xml.h:7 msgid "Max Height" @@ -5639,56 +5530,47 @@ msgstr "Hauteur min." msgid "Min Objects" msgstr "Objets min." -#: hacks/config/julia.xml.h:3 hacks/config/rorschach.xml.h:4 +#: hacks/config/julia.xml.h:1 +msgid "" +"Animates the Julia set (a close relative of the Mandelbrot set). The small " +"moving dot indicates the control point from which the rest of the image was " +"generated. Written by Sean McCullough; 1997." +msgstr "" + +#: hacks/config/julia.xml.h:5 hacks/config/rorschach.xml.h:4 msgid "Iterations" msgstr "Itération" -#: hacks/config/julia.xml.h:4 +#: hacks/config/julia.xml.h:6 msgid "Julia" msgstr "Julia" -#: hacks/config/julia.xml.h:11 -msgid "" -"This one draws spinning, animating (are you detecting a pattern here yet?) " -"explorations of the Julia set. You've probably seen static images of this " -"fractal form before, but it's a lot of fun to watch in motion as well. One " -"interesting thing is that there is a small swinging dot passing in front of " -"the image, which indicates the control point from which the rest of the " -"image was generated. Written by Sean McCullough." -msgstr "" -"Dessine des explorations tournoyantes et animées (distinguez-vous déjà un " -"motif ?) de la courbe de Julia. Vous avez probablement déjà vu des images " -"statiques de cette forme fractale, mais c'est aussi très sympa en forme " -"animée. L'élément intéressant est un petit point animé qui passe devant " -"l'image et qui indique le point de contrôle à partir duquel le reste de " -"l'image a été généré. Écrit par Sean McCullough." - #: hacks/config/kaleidescope.xml.h:1 +msgid "3" +msgstr "3" + +#: hacks/config/kaleidescope.xml.h:2 +msgid "32" +msgstr "32" + +#: hacks/config/kaleidescope.xml.h:3 msgid "" -"Another clone of an ancient meme, consisting largely of frenetic rotational " -"motion of colored lines. This one is by Ron Tapia. The motion is nice, but I " -"think it needs more solids, or perhaps just brighter colors. More variations " -"in the rotational speed might help, too." +"A simple kaleidescope. See also \"gleidescope\". Written by Ron Tapia; 1997." msgstr "" -"Un autre clone d'un ancien même, principalement constitué de mouvements " -"rotatifs frénétiques de lignes colorées. Par Ron Tapia. Les mouvements sont " -"bien, mais je pense qu'il devrait comporter plus de couleurs unies ou " -"simplement des couleurs plus vives. Davantage de variations de la vitesse de " -"rotation seraient aussi appréciables." -#: hacks/config/kaleidescope.xml.h:4 +#: hacks/config/kaleidescope.xml.h:6 msgid "Kaleidescope" msgstr "Kaleïdoscope" -#: hacks/config/kaleidescope.xml.h:6 hacks/config/qix.xml.h:18 +#: hacks/config/kaleidescope.xml.h:8 hacks/config/qix.xml.h:19 msgid "Segments" msgstr "Segments" -#: hacks/config/kaleidescope.xml.h:9 +#: hacks/config/kaleidescope.xml.h:11 msgid "Symmetry" msgstr "Symétrie" -#: hacks/config/kaleidescope.xml.h:10 +#: hacks/config/kaleidescope.xml.h:12 msgid "Trails" msgstr "Traînées" @@ -5699,7 +5581,7 @@ msgstr "Bouteille de Klein" #: hacks/config/klein.xml.h:10 msgid "" "This draws a visualization of a Klein bottle or some other interesting " -"parametric surfaces. Written by Andrey Mirtchovski." +"parametric surfaces. Written by Andrey Mirtchovski; 2003." msgstr "" #: hacks/config/klein.xml.h:11 @@ -5721,25 +5603,24 @@ msgstr "Aléatoire" #: hacks/config/kumppa.xml.h:10 msgid "" "Spiraling, spinning, and very, very fast splashes of color rush toward the " -"screen. Written by Teemu Suutari." +"screen. Written by Teemu Suutari; 1998." msgstr "" "Des taches de couleur très, très rapides foncent vers l'écran en tournoyant " -"et en formant des spirales. Écrit par Teemu Suutari." +"et en formant des spirales. Écrit par Teemu Suutari; 1998." #: hacks/config/lament.xml.h:1 msgid "" -"Animates a simulation of Lemarchand's Box, repeatedly solving itself. " -"Requires OpenGL, and a machine with fast hardware support for texture maps. " -"Warning: occasionally opens doors. Written by Jamie Zawinski." +"Animates a simulation of Lemarchand's Box, the Lament Configuration, " +"repeatedly solving itself. Warning: occasionally opens doors. Written by " +"Jamie Zawinski; 1998." msgstr "" "Anime une simulation du cube de Lemarchand, qui se résout sans cesse. " -"Nécessite OpenGL et une machine avec prise en charge matérielle rapide des " -"mappes de texture. Attention : risque d'ouvrir des portes. Écrit par Jamie " -"Zawinski." +"Attention : risque d'ouvrir des portes. Écrit par Jamie " +"Zawinski; 1998." #: hacks/config/lament.xml.h:3 msgid "Lament" -msgstr "Lamentations" +msgstr "Lamentation" #: hacks/config/laser.xml.h:4 msgid "Laser" @@ -5747,11 +5628,11 @@ msgstr "Laser" #: hacks/config/laser.xml.h:7 msgid "" -"Moving radiating lines, that look vaguely like scanning laser beams. Written " -"by Pascal Pensa. (Frankie say: relax.)" +"Moving radiating lines, that look vaguely like scanning laser beams. " +"(Frankie say: relax.) Written by Pascal Pensa; 1997." msgstr "" "Lignes de radiation animées, qui ressemblent vaguement à des faisceaux " -"laser . Écrit par Pascal Pensa. (Frankie a dit : relax.)" +"laser. (Frankie a dit : relax.). Écrit par Pascal Pensa; 1997." #: hacks/config/lavalite.xml.h:2 hacks/config/xmountains.xml.h:2 msgid "10" @@ -5769,22 +5650,22 @@ msgstr "Lavalite conique" msgid "" "Draws a 3D Simulation a Lava Lite(r): odd-shaped blobs of a mysterious " "substance are heated, slowly rise to the top of the bottle, and then drop " -"back down as they cool. This program requires OpenGL and a fairly fast " -"machine (both CPU and 3D performance.) Written by Jamie Zawinski. \"LAVA LITE" -"(r) and the configuration of the LAVA(r) brand motion lamp are registered " -"trademarks of Haggerty Enterprises, Inc. The configuration of the globe and " -"base of the motion lamp are registered trademarks of Haggerty Enterprises, " -"Inc. in the U.S.A. and in other countries around the world.\"" +"back down as they cool. This program requires a fairly fast machine (both " +"CPU and 3D performance.) \"LAVA LITE(r) and the configuration of the LAVA(r) " +"brand motion lamp are registered trademarks of Haggerty Enterprises, Inc. " +"The configuration of the globe and base of the motion lamp are registered " +"trademarks of Haggerty Enterprises, Inc. in the U.S.A. and in other " +"countries around the world.\" Written by Jamie Zawinski; 2002." msgstr "" -#: hacks/config/lavalite.xml.h:9 -msgid "Faceted" -msgstr "A facettes" - -#: hacks/config/lavalite.xml.h:11 +#: hacks/config/lavalite.xml.h:10 msgid "Giant Lavalite" msgstr "Lavalite géante" +#: hacks/config/lavalite.xml.h:12 +msgid "Impatient" +msgstr "" + #: hacks/config/lavalite.xml.h:13 msgid "LavaLite" msgstr "LavaLite" @@ -5801,47 +5682,37 @@ msgstr "Style de lampe aléatoire" msgid "Rocket Lavalite" msgstr "Lavalite roquette" -#: hacks/config/lightning.xml.h:2 +#: hacks/config/lightning.xml.h:1 +msgid "Crackling fractal lightning bolts. Written by Keith Romberg; 1997." +msgstr "" + +#: hacks/config/lightning.xml.h:3 msgid "Lightning" msgstr "Éclairs" -#: hacks/config/lightning.xml.h:7 -msgid "" -"This one draws crackling fractal lightning bolts. It's simple, direct, and " -"to the point. If only it had sound... Written by Keith Romberg." -msgstr "" -"Dessine des éclairs fractals. C'est simple, direct et sans fioritures. Si " -"seulement il avait du son... Écrit par Keith Romberg." - #: hacks/config/lisa.xml.h:4 msgid "Lisa" msgstr "Lisa" -#: hacks/config/lisa.xml.h:10 +#: hacks/config/lisa.xml.h:5 +msgid "Lisajous loops. Written by Caleb Cullen; 1997." +msgstr "" + +#: hacks/config/lisa.xml.h:11 msgid "Steps" msgstr "Étapes" -#: hacks/config/lisa.xml.h:11 -msgid "" -"This draws Lisajous loops, by Caleb Cullen. Remember that device they had " -"the Phantom Zone prisoners in during their trial in Superman? I think that " -"was one of these." -msgstr "" -"Trace des boucles de Lissajous, par Caleb Cullen. Vous vous souvenez de " -"l'appareil des prisonniers de la zone fantôme pendant leur procès dans " -"Superman ? Je crois que c'était quelque chose comme ça." +#: hacks/config/lissie.xml.h:4 +msgid "Lissie" +msgstr "Lissajous" -#: hacks/config/lissie.xml.h:1 +#: hacks/config/lissie.xml.h:11 msgid "" -"Another Lissajous figure. This one draws the progress of circular shapes " -"along a path. Written by Alexander Jolk." +"This one draws the progress of circular shapes along a path. Written by " +"Alexander Jolk; 1997." msgstr "" -"Une autre figure de Lissajous. Elle trace la progression de formes " -"circulaires le long d'un chemin. Écrit par Alexander Jolk." - -#: hacks/config/lissie.xml.h:5 -msgid "Lissie" -msgstr "Lissajous" +"Trace la progression de formes " +"circulaires le long d'un chemin. Écrit par Alexander Jolk; 1997." #: hacks/config/lmorph.xml.h:1 msgid "Closed Figures" @@ -5878,28 +5749,28 @@ msgstr "Figures ouvertes et fermées" #: hacks/config/lmorph.xml.h:15 msgid "" "This generates random spline-ish line drawings and morphs between them. " -"Written by Sverre H. Huseby and Glenn T. Lines." +"Written by Sverre H. Huseby and Glenn T. Lines; 1995." msgstr "" "Génère des dessins en trait aléatoires et crée des morphings. Écrit par " -"Sverre H. Huseby et Glenn T. Lines." - -#: hacks/config/loop.xml.h:3 -msgid "Loop" -msgstr "Boucles" +"Sverre H. Huseby et Glenn T. Lines; 1995." -#: hacks/config/loop.xml.h:10 +#: hacks/config/loop.xml.h:2 msgid "" -"This one produces loop-shaped colonies that spawn, age, and eventually die. " -"Written by David Bagley." +"Generates loop-shaped colonies that spawn, age, and eventually die. Written " +"by David Bagley; 1999." msgstr "" "Produit des colonies en forme de boucles qui se reproduisent, vieillissent " -"et meurent. Écrit par David Bagley." +"et meurent. Écrit par David Bagley; 1999." + +#: hacks/config/loop.xml.h:4 +msgid "Loop" +msgstr "Boucles" #: hacks/config/maze.xml.h:3 msgid "Backtracking Generator" msgstr "Générateur de retour en arrière" -#: hacks/config/maze.xml.h:5 hacks/config/slidescreen.xml.h:3 +#: hacks/config/maze.xml.h:5 msgid "Grid Size" msgstr "Taille de la grille" @@ -5941,14 +5812,10 @@ msgstr "Vitesse de résolution" #: hacks/config/maze.xml.h:16 msgid "" -"This is the ancient X maze demo, modified to work with xscreensaver. It " -"generates a random maze, then solves it with visual feedback. Originally by " -"Jim Randell; modified by a cast of thousands." +"This generates random mazes (with various different algorithms), and then " +"solves them. Backtracking and look-ahead paths are displayed in different " +"colors. Written by Jim Randell and many others; 1992." msgstr "" -"Il s'agit de l'ancienne démo du labyrinthe X, modifiée pour fonctionner avec " -"xscreensaver. Elle génère un labyrinthe aléatoire, puis le résout avec un " -"feedback visuel. Initialement par Jim Randell; modifié par des milliers de " -"gens." #: hacks/config/memscroller.xml.h:1 msgid "Draw Green" @@ -5973,22 +5840,22 @@ msgstr "MemScroller" #: hacks/config/memscroller.xml.h:9 msgid "" "This draws a dump of its own process memory scrolling across the screen in " -"three windows at three different rates. Written by Jamie Zawinski." +"three windows at three different rates. Written by Jamie Zawinski; 2004." msgstr "" #: hacks/config/menger.xml.h:6 msgid "Menger" msgstr "Menger" -#: hacks/config/menger.xml.h:19 +#: hacks/config/menger.xml.h:18 msgid "" "This draws the three-dimensional variant of the recursive Menger Gasket, a " "cube-based fractal object analagous to the Sierpinski Tetrahedron. Written " -"by Jamie Zawinski." +"by Jamie Zawinski; 2001." msgstr "" "Dessine une variante tridimensionnelle du tamis récursif de Menger, un objet " "fractal cubique analogue au tétraèdre de Sierpinski. Écrit par Jamie " -"Zawinski." +"Zawinski; 2001." #: hacks/config/metaballs.xml.h:1 msgid "Big" @@ -5997,7 +5864,7 @@ msgstr "Élevé" #: hacks/config/metaballs.xml.h:2 msgid "" "Draws two dimensional metaballs: overlapping and merging balls with fuzzy " -"edges. By W.P. van Paassen." +"edges. Written by W.P. van Paassen; 2003." msgstr "" #: hacks/config/metaballs.xml.h:7 @@ -6018,7 +5885,7 @@ msgstr "Nombre de méta-balles" #: hacks/config/mirrorblob.xml.h:4 msgid "Blobby" -msgstr "Patés" +msgstr "Goutte" #: hacks/config/mirrorblob.xml.h:5 hacks/config/nerverot.xml.h:2 msgid "Calm" @@ -6026,8 +5893,8 @@ msgstr "Calme" #: hacks/config/mirrorblob.xml.h:7 msgid "" -"Draws a wobbly blob that distorts the image behind it. Requires OpenGL " -"hardware acceleration for nice animation. Written by Jon Dowdall." +"Draws a wobbly blob that distorts the image behind it. Written by Jon " +"Dowdall; 2003." msgstr "" #: hacks/config/mirrorblob.xml.h:8 @@ -6052,21 +5919,21 @@ msgstr "Bizarre" #: hacks/config/mirrorblob.xml.h:14 msgid "MirrorBlob" -msgstr "Tâches miroir" +msgstr "Gouttes miroir" #: hacks/config/mirrorblob.xml.h:16 msgid "Offset Texture Coordinates" msgstr "Offset des coordonnées de la texture" -#: hacks/config/mirrorblob.xml.h:22 +#: hacks/config/mirrorblob.xml.h:21 msgid "Very Freaky" msgstr "Délirant" -#: hacks/config/mirrorblob.xml.h:24 +#: hacks/config/mirrorblob.xml.h:23 msgid "X Resolution" msgstr "Résolution X" -#: hacks/config/mirrorblob.xml.h:25 +#: hacks/config/mirrorblob.xml.h:24 msgid "Y Resolution" msgstr "Résolution Y" @@ -6077,93 +5944,79 @@ msgstr "MisMunch" #: hacks/config/mismunch.xml.h:6 msgid "" "Munching errors! This is a creatively broken misimplementation of the " -"classic munching squares graphics hack. Written by Steven Hazel." +"classic munching squares graphics hack. Written by Steven Hazel; 2004." msgstr "" -#: hacks/config/mismunch.xml.h:7 +#: hacks/config/mismunch.xml.h:7 hacks/config/mountain.xml.h:7 +#: hacks/config/pipes.xml.h:14 hacks/config/shadebobs.xml.h:7 +#: hacks/config/sproingies.xml.h:3 msgid "One" -msgstr "Un" +msgstr "Un(e)" #: hacks/config/mismunch.xml.h:9 msgid "Simultaneous Squares" msgstr "Carrés simultannés" +#: hacks/config/mismunch.xml.h:11 hacks/config/munch.xml.h:8 +#: hacks/config/webcollage.xml.h:8 +msgid "Solid" +msgstr "Plein" + #: hacks/config/mismunch.xml.h:13 hacks/config/munch.xml.h:10 #: hacks/config/qix.xml.h:26 msgid "XOR" msgstr "XOR" #: hacks/config/moebius.xml.h:1 -msgid "" -"Another M. C. Escher hack by Marcelo Vianna, this one draws ``Moebius Strip " -"II,'' a GL image of ants walking along the surface of a moebius strip." -msgstr "" -"Un autre hack de M. C. Escher par Marcelo Vianna. Trace le «ruban de Moebius " -"II», une image GL de fourmis marchant sur la surface d'un ruban de Moebius." - -#: hacks/config/moebius.xml.h:2 msgid "Draw Ants" msgstr "Dessiner des fournis" -#: hacks/config/moebius.xml.h:4 -msgid "Mesh Floor" -msgstr "Sol grillagé" - -#: hacks/config/moebius.xml.h:5 +#: hacks/config/moebius.xml.h:3 msgid "Moebius" msgstr "Moebius" -#: hacks/config/moebius.xml.h:8 +#: hacks/config/moebius.xml.h:6 msgid "Solid Floor" msgstr "Sol uniforme" -#: hacks/config/moebius.xml.h:9 hacks/config/qix.xml.h:20 -msgid "Solid Objects" -msgstr "Objets solides" +#: hacks/config/moebius.xml.h:8 +msgid "" +"This animates a 3D rendition M.C. Escher's \"Moebius Strip II\", an image of " +"ants walking along the surface of a moebius strip. Written by Marcelo F. " +"Vianna; 1997." +msgstr "" #: hacks/config/moire.xml.h:6 msgid "Moire" -msgstr "Moirage" +msgstr "Moiré" #: hacks/config/moire.xml.h:8 hacks/config/rorschach.xml.h:6 msgid "Offset" msgstr "Décalage" -#: hacks/config/moire.xml.h:10 -msgid "" -"This one draws cool circular interference patterns. Most of the circles you " -"see aren't explicitly rendered, but show up as a result of interactions " -"between the other pixels that were drawn. Written by Jamie Zawinski, " -"inspired by Java code by Michael Bayne. As he pointed out, the beauty of " -"this one is that the heart of the display algorithm can be expressed with " -"just a pair of loops and a handful of arithmetic, giving it a high ``display " -"hack metric''." -msgstr "" -"Trace de jolis motifs d'interférences circulaires. La plupart des cercles " -"affichés ne sont pas rendus de manière explicite, mais s'affichent comme " -"résultat d'interactions entre les autres pixels dessinés. Écrit par Jamie " -"Zawinski, sur la base d'un code Java de Michael Bayne. Comme il l'a " -"souligné, la beauté de ce hackréside dans le fait que le coeur de " -"l'algorithme d'affichage peut être exprimé avec quelques boucles et " -"opérations arithmétiques, ce qui lui assure une grande valeur esthétique." - -#: hacks/config/moire2.xml.h:1 -msgid "" -"Another example of the fun you can have with moire interference patterns; " -"this hack generates fields of concentric circles or ovals, and combines the " -"planes with various operations. The planes are moving independently of one " -"another, causing the interference lines to ``spray.'' Written by Jamie " -"Zawinski." -msgstr "" -"Un autre exemple de l'amusement qu'offrent les motifs d'interférences " -"moirés; ce hack génère des champs de cercles ou ovales concentriques et " -"associe les plans par différentes opérations. Les plans se déplacent " -"indépendamment, ce qui entraîne un 'jaillissement' des lignes " -"d'interférence. Écrit par Jamie Zawinski." +#: hacks/config/moire.xml.h:11 hacks/config/rd-bomb.xml.h:21 +#: hacks/config/rdbomb.xml.h:21 hacks/config/ripples.xml.h:16 +#: hacks/config/rotzoomer.xml.h:10 hacks/config/swirl.xml.h:10 +#: hacks/config/twang.xml.h:17 +msgid "Use Shared Memory" +msgstr "Utiliser une mémoire partagée" + +#: hacks/config/moire.xml.h:12 +msgid "" +"When the lines on the screen Make more lines in between, That's a moire'! " +"Written by Jamie Zawinski and Michael Bayne; 1997." +msgstr "" + +#: hacks/config/moire2.xml.h:2 +msgid "" +"Generates fields of concentric circles or ovals, and combines the planes " +"with various operations. The planes are moving independently of one another, " +"causing the interference lines to spray. Written by Jamie Zawinski; 1998." +msgstr "" #: hacks/config/moire2.xml.h:4 msgid "Moire2" -msgstr "Moirage2" +msgstr "Moiré2" #: hacks/config/molecule.xml.h:3 msgid "Describe Molecule" @@ -6171,15 +6024,11 @@ msgstr "Décrire la molécule" #: hacks/config/molecule.xml.h:5 msgid "Draw Atomic Bonds" -msgstr "Dessiner des liaisons atomiques" +msgstr "Dessiner les liaisons atomiques" #: hacks/config/molecule.xml.h:6 msgid "Draw Atomic Nuclei" -msgstr "Dessiner des liaisons atomiques" - -#: hacks/config/molecule.xml.h:7 hacks/config/spheremonics.xml.h:2 -msgid "Draw Bounding Box" -msgstr "Dessiner le cadre englobant" +msgstr "Dessiner les noyaux atomiques" #: hacks/config/molecule.xml.h:8 msgid "Draw Electron Shells" @@ -6189,11 +6038,11 @@ msgstr "Dessiner les électrons" msgid "" "Draws several different representations of molecules. Some common molecules " "are built in, and it can also read PDB (Protein Data Base) files as input. " -"Written by Jamie Zawinski." +"Written by Jamie Zawinski; 2001." msgstr "" "Dessine différentes représentations de molécules. Certaines molécules " "courantes sont intégrées et le programme peut lire des fichiers PDB (banque " -"protéique). Écrit par Jamie Zawinski." +"protéique). Écrit par Jamie Zawinski; 2001." #: hacks/config/molecule.xml.h:12 msgid "Label Atoms" @@ -6207,42 +6056,65 @@ msgstr "Molécule" msgid "PDB File or Directory" msgstr "Fichier PDB ou répertoire" -#: hacks/config/morph3d.xml.h:1 -msgid "" -"Another 3d shape-changing GL hack, by Marcelo Vianna. It has the same shiny-" -"plastic feel as Superquadrics, as many computer-generated objects do..." -msgstr "" -"Un autre hack GL 3D à forme changeante, par Marcelo Vianna. Il a le même " -"aspect plastique luisantque Superquadriques, comme beaucoup d'objets générés " -"par ordinateur... " +#: hacks/config/morph3d.xml.h:1 hacks/config/polyhedra.xml.h:4 +#: hacks/config/sballs.xml.h:1 +msgid "Cube" +msgstr "Cube" -#: hacks/config/morph3d.xml.h:4 +#: hacks/config/morph3d.xml.h:2 hacks/config/polyhedra.xml.h:15 +#: hacks/config/sballs.xml.h:2 +msgid "Dodecahedron" +msgstr "Dodécaèdre" + +#: hacks/config/morph3d.xml.h:4 hacks/config/polyhedra.xml.h:71 +#: hacks/config/sballs.xml.h:5 +msgid "Icosahedron" +msgstr "Icosaèdre" + +#: hacks/config/morph3d.xml.h:5 msgid "Morph3D" msgstr "Morph3D" -#: hacks/config/mountain.xml.h:3 +#: hacks/config/morph3d.xml.h:6 hacks/config/polyhedra.xml.h:85 +#: hacks/config/sballs.xml.h:6 +msgid "Octahedron" +msgstr "Octaèdre" + +#: hacks/config/morph3d.xml.h:7 +msgid "" +"Platonic solids that turn inside out and get spikey. Written by Marcelo " +"Vianna; 1997." +msgstr "" + +#: hacks/config/mountain.xml.h:2 msgid "" "Generates random 3d plots that look vaguely mountainous. Written by Pascal " -"Pensa." +"Pensa; 1997." msgstr "" "Génère des graphiques 3D aléatoires d'apparence vaguement montagneuse. Écrit " -"par Pascal Pensa." +"par Pascal Pensa; 1997." #: hacks/config/mountain.xml.h:5 msgid "Mountain" msgstr "Montagnes" +#: hacks/config/mountain.xml.h:8 +msgid "Peaks" +msgstr "Sommets" + #: hacks/config/munch.xml.h:1 msgid "" "DATAI 2 ADDB 1,2 ROTC 2,-22 XOR 1,2 JRST .-4 As reported by HAKMEM, in 1962, " "Jackson Wright wrote the above PDP-1 code. That code still lives on in this " -"screenhack, some 35 years later. The number of lines of enclosing code has " -"increased substantially, however. This version is by Tim Showalter." +"program, some 44 years later. The number of lines of enclosing code has " +"increased substantially, however. Written by Jackson Wright and Tim " +"Showalter; 1997." msgstr "" "DATAI 2 ADDB 1,2 ROTC 2,-22 XOR 1,2 JRST .-4 Comme signalé par HAKMEM, en " "1962, Jackson Wright a écrit le code PDP-1 ci-dessus. Ce code est toujours " -"présent dans ce hack, quelque 35 ans plus tard. Le nombre de lignes de code " -"a toutefois considérablement augmenté. Cette version est de Tim Showalter." +"présent dans ce hack, quelque 44 ans plus tard. Le nombre de lignes de code " +"a toutefois considérablement augmenté. Écrit par Jackson Wright et Tim " +"Showalter; 1997." #: hacks/config/munch.xml.h:5 msgid "Munch" @@ -6260,17 +6132,20 @@ msgstr "Changement" msgid "Colors" msgstr "Couleurs" +# NOTE: intraduisible :-> "maximum radius of blot nervousness, as a fraction of the +# radius of the blot" #: hacks/config/nerverot.xml.h:5 msgid "Crunchiness" -msgstr "Croquant" +msgstr "" #: hacks/config/nerverot.xml.h:7 msgid "" "Draws different shapes composed of nervously vibrating squiggles, as if seen " -"through a camera operated by a monkey on crack. By Dan Bornstein." +"through a camera operated by a monkey on crack. Written by Dan Bornstein; " +"2000." msgstr "" "Trace différentes formes composées de gribouillis vibrants et nerveux, comme " -"s'ils étaient filmés par un singe sous amphétamines. Par Dan Bornstein." +"s'ils étaient filmés par un singe sous amphétamines. Écrit par Dan Bornstein; 200." #: hacks/config/nerverot.xml.h:10 msgid "Frequent" @@ -6293,7 +6168,8 @@ msgid "Spastic" msgstr "Spasmodique" #: hacks/config/noof.xml.h:1 -msgid "Draws some rotatey patterns, using OpenGL. Written by Mark Kilgard." +msgid "" +"Draws some rotatey patterns, using OpenGL. Written by Bill Torzewski; 2004." msgstr "" #: hacks/config/noof.xml.h:3 @@ -6302,36 +6178,16 @@ msgstr "Noof" #: hacks/config/noseguy.xml.h:1 msgid "" -"A little man with a big nose wanders around your screen saying things. The " -"things which he says are the output of a program or the contents of a file " -"or URL, as configured on the \"Advanced\" tab of the main Screensaver " -"Preferences window. By Dan Heller and Jamie Zawinski." +"A little man with a big nose wanders around your screen saying things. " +"Written by Dan Heller and Jamie Zawinski; 1992." msgstr "" "Un petit bonhomme avec un gros nez se promène sur l'écran en disant des " -"choses. Ce qu'il dit peut provenir d'un fichier, d'un programme externe ou " -"d'une URL, selon ce qui est configuré dans l'onglet \"Avancé\" de la fenêtre " -"des préférences de XscreenSaver. Par Dan Heller et Jamie Zawinski." +"choses. Écrit par Dan Heller et Jamie Zawinski; 1992." #: hacks/config/noseguy.xml.h:2 -msgid "Get Text from File" -msgstr "Extraire le texte du fichier" - -#: hacks/config/noseguy.xml.h:3 -msgid "Get Text from Program" -msgstr "Extraire le texte du programme" - -#: hacks/config/noseguy.xml.h:4 msgid "Noseguy" msgstr "Nez" -#: hacks/config/noseguy.xml.h:6 -msgid "Text File" -msgstr "Fichier texte" - -#: hacks/config/noseguy.xml.h:8 -msgid "Use Text Below" -msgstr "Utiliser le texte ci-dessous" - #: hacks/config/pacman.xml.h:2 msgid "Pacman" msgstr "Pacman" @@ -6343,24 +6199,24 @@ msgstr "Taille du joueur" #: hacks/config/pacman.xml.h:4 msgid "" "Simulates a game of Pac-Man on a randomly-created level. Written by Edwin de " -"Jong." +"Jong; 2004." msgstr "" +"Simule un jeu de Pac-Man pour un niveau créé de façon aléatoire. Écrit par " +"Edwin De Jong; 2004." #: hacks/config/pedal.xml.h:7 msgid "Pedal" msgstr "Pédale" #: hacks/config/pedal.xml.h:8 +# TODO msgid "" "This is sort of a combination spirograph/string-art. It generates a large, " -"complex polygon, and lets the X server do the bulk of the work by giving it " -"an even/odd winding rule. Written by Dale Moore, based on some ancient PDP-" -"11 code." +"complex polygon, and renders it by filling using an even/odd winding rule. " +"Written by Dale Moore; 1995." msgstr "" -"Sorte de combinaison de spirographe/art pauvre. Génère un grand polygone " -"complexe et laisse le serveur X faire le plus gros du travail en lui donnant " -"une règle WIND_EVEN_ODD. Écrit par Dale Moore, basé sur un ancien code PDP-" -"11." +"Sorte de combinaison de spirographe/art des clous et des fils. " +"Écrit par Dale Moore; 1995." #: hacks/config/penetrate.xml.h:1 msgid "Always play well" @@ -6374,17 +6230,17 @@ msgstr "Explosions" msgid "Penetrate" msgstr "Pénétrer" -#: hacks/config/penetrate.xml.h:7 -msgid "Start badly, but learn" -msgstr "Mal commencer, mais apprendre" - -#: hacks/config/penetrate.xml.h:8 +#: hacks/config/penetrate.xml.h:6 msgid "" -"This hack simulates the classic arcade game Missile Command. Written by Adam " -"Miller." +"Simulates the classic arcade game Missile Command. Written by Adam Miller; " +"1999." msgstr "" "Ce hack simule le jeu d'arcade classique Missile Command. Écrit par Adam " -"Miller." +"Miller; 1999." + +#: hacks/config/penetrate.xml.h:8 +msgid "Start badly, but learn" +msgstr "Mal commencer, mais apprendre" #: hacks/config/penrose.xml.h:1 msgid "Draw Ammann Lines" @@ -6393,19 +6249,20 @@ msgstr "Tracer des lignes d'Ammann" #: hacks/config/penrose.xml.h:2 msgid "" "Draws quasiperiodic tilings; think of the implications on modern formica " -"technology. Written by Timo Korvola. In April 1997, Sir Roger Penrose, a " -"British math professor who has worked with Stephen Hawking on such topics as " -"relativity, black holes, and whether time has a beginning, filed a copyright-" -"infringement lawsuit against the Kimberly-Clark Corporation, which Penrose " -"said copied a pattern he created (a pattern demonstrating that ``a " -"nonrepeating pattern could exist in nature'') for its Kleenex quilted toilet " -"paper. Penrose said he doesn't like litigation but, ``When it comes to the " -"population of Great Britain being invited by a multinational to wipe their " -"bottoms on what appears to be the work of a Knight of the Realm, then a last " -"stand must be taken.'' As reported by News of the Weird #491, 4-jul-1997." +"technology. In April 1997, Sir Roger Penrose, a British math professor who " +"has worked with Stephen Hawking on such topics as relativity, black holes, " +"and whether time has a beginning, filed a copyright-infringement lawsuit " +"against the Kimberly-Clark Corporation, which Penrose said copied a pattern " +"he created (a pattern demonstrating that \"a nonrepeating pattern could " +"exist in nature\") for its Kleenex quilted toilet paper. Penrose said he " +"doesn't like litigation but, \"When it comes to the population of Great " +"Britain being invited by a multinational to wipe their bottoms on what " +"appears to be the work of a Knight of the Realm, then a last stand must be " +"taken.\" As reported by News of the Weird #491, 4-jul-1997. Written by Timo " +"Korvola; 1997." msgstr "" "Dessine des carreaux quasi-périodiques; pensez aux implications pour la " -"technologie moderne du formica. Écrit par Timo Korvola. En avril 1997, Sir " +"technologie moderne du formica. En avril 1997, Sir " "Roger Penrose, un professeur de math britannique qui a travaillé avec " "Stephen Hawking sur des sujets tels que la relativité, les trous noirs et " "l'existence d'un début du temps, a intenté un procès en violation de " @@ -6415,12 +6272,18 @@ msgstr "" "carreaux. Penrose a déclaré qu'il n'aimait pas les litiges, mais que ''Si la " "population de Grande-Bretagne est invitée par une multinationale à s'essuyer " "les fesses sur ce qui semble être l'oeuvre d'un Chevalier du Royaume, des " -"mesures s'imposent.'' Rapporté par News of the Weird n°491, 4-jul-1997." +"mesures s'imposent.'' Rapporté par News of the Weird n°491, 4-jul-1997. " +"Écrit par Timo Korvola; 1997." -#: hacks/config/penrose.xml.h:6 +#: hacks/config/penrose.xml.h:7 msgid "Penrose" msgstr "Penrose" +#: hacks/config/penrose.xml.h:11 hacks/config/rd-bomb.xml.h:19 +#: hacks/config/rdbomb.xml.h:19 hacks/config/twang.xml.h:14 +msgid "Tile Size" +msgstr "Taille des mosaïques" + #: hacks/config/petri.xml.h:2 msgid "Colony Shape" msgstr "Forme de la colonie" @@ -6438,27 +6301,27 @@ msgid "Fertility" msgstr "Fertilité" #: hacks/config/petri.xml.h:12 -msgid "Maxium Lifespan" +msgid "Maximum Lifespan" msgstr "Durée de vie maximum" #: hacks/config/petri.xml.h:13 -msgid "Maxium Rate of Death" +msgid "Maximum Rate of Death" msgstr "Taux de mortalité maximum" #: hacks/config/petri.xml.h:14 -msgid "Maxium Rate of Growth" +msgid "Maximum Rate of Growth" msgstr "Taux de croissance maximum" #: hacks/config/petri.xml.h:15 -msgid "Minium Lifespan" +msgid "Minimum Lifespan" msgstr "Durée de vie minimum" #: hacks/config/petri.xml.h:16 -msgid "Minium Rate of Death" +msgid "Minimum Rate of Death" msgstr "Taux de mortalité minimum" #: hacks/config/petri.xml.h:17 -msgid "Minium Rate of Growth" +msgid "Minimum Rate of Growth" msgstr "Taux de croissance minimum" #: hacks/config/petri.xml.h:18 @@ -6489,53 +6352,59 @@ msgstr "Carré" msgid "" "This simulates colonies of mold growing in a petri dish. Growing colored " "circles overlap and leave spiral interference in their wake. Written by Dan " -"Bornstein." +"Bornstein; 1999." msgstr "" "Simule des colonies de moisissures qui poussent dans une boîte de Petri. Des " "cercles colorés grandissent, se chevauchent et laissent des interférences en " -"spirale à leur suite. Écrit par Dan Bornstein." +"spirale à leur suite. Écrit par Dan Bornstein; 1999." #: hacks/config/phosphor.xml.h:1 msgid "" "Draws a simulation of an old terminal, with large pixels and long-sustain " -"phosphor. This program is also a fully-functional VT100 emulator! The text " -"can be the output of a program or the contents of a file or URL, as " -"configured on the \"Advanced\" tab of the main Screensaver Preferences " -"window. Written by Jamie Zawinski." +"phosphor. This program is also a fully-functional VT100 emulator! Written by " +"Jamie Zawinski; 1999." msgstr "" +"Dessine une simulation d'un vieux terminal, avec de grands pixels et du " +"phosphore de longue durée. Ce programme est également un émulateur de " +"terminal VT100 fonctionnel ! " +"Écrit par Jamie Zawinski; 1999." -#: hacks/config/phosphor.xml.h:2 -msgid "Dump pipe" -msgstr "Pipe simple" +#: hacks/config/phosphor.xml.h:4 +msgid "Font Scale" +msgstr "Échelle de la police" #: hacks/config/phosphor.xml.h:5 msgid "Phosphor" msgstr "Phosphore" -#: hacks/config/phosphor.xml.h:10 -msgid "Use PTY" -msgstr "Utilise PTY" +#: hacks/config/phosphor.xml.h:8 +msgid "Terminal Emulation" +msgstr "Emulation de terminal" + +#: hacks/config/phosphor.xml.h:9 +msgid "Text Only" +msgstr "Texte seulement" #: hacks/config/piecewise.xml.h:1 msgid "Color shifting speed" msgstr "Vitesse du changement de couleur" -#: hacks/config/piecewise.xml.h:6 +#: hacks/config/piecewise.xml.h:8 msgid "Maximum radius" -msgstr "Rayon max" +msgstr "Rayon max." -#: hacks/config/piecewise.xml.h:7 +#: hacks/config/piecewise.xml.h:9 msgid "Minimum radius" -msgstr "Rayon min" +msgstr "Rayon min." -#: hacks/config/piecewise.xml.h:8 +#: hacks/config/piecewise.xml.h:10 msgid "Piecewise" msgstr "Piecewise" -#: hacks/config/piecewise.xml.h:12 +#: hacks/config/piecewise.xml.h:14 msgid "" "This draws a bunch of moving circles which switch from visibility to " -"invisibility at intersection points. Written by Geoffrey Irving." +"invisibility at intersection points. Written by Geoffrey Irving; 2003." msgstr "" #: hacks/config/pinion.xml.h:1 @@ -6549,10 +6418,10 @@ msgstr "2000" #: hacks/config/pinion.xml.h:4 msgid "" "Draws an interconnected set of gears moving across the screen. Written by " -"Jamie Zawinski." +"Jamie Zawinski; 2004." msgstr "" "Dessine des engrenages interconnectés se déplacant dans l'écran. Écrit par " -"Jamie Zawinski." +"Jamie Zawinski; 2004." #: hacks/config/pinion.xml.h:6 msgid "Gear Size" @@ -6571,53 +6440,51 @@ msgid "Scrolling Speed" msgstr "Vitesse de défilement" #: hacks/config/pipes.xml.h:1 +msgid "A Hundred" +msgstr "Une centaine" + +#: hacks/config/pipes.xml.h:2 +msgid "" +"A growing plumbing system, with bolts and valves. Written by Marcelo Vianna; " +"1997." +msgstr "" + +#: hacks/config/pipes.xml.h:3 msgid "Allow Tight Turns" msgstr "Autoriser des virages serrés" -#: hacks/config/pipes.xml.h:2 +#: hacks/config/pipes.xml.h:4 msgid "Ball Joints" msgstr "Raccords à boule" -#: hacks/config/pipes.xml.h:3 +#: hacks/config/pipes.xml.h:5 +msgid "Bolted Fittings" +msgstr "Raccords boulonnés" + +#: hacks/config/pipes.xml.h:6 msgid "Curved Pipes" msgstr "Canalisations courbées" -#: hacks/config/pipes.xml.h:6 +#: hacks/config/pipes.xml.h:8 msgid "Fisheye Lens" msgstr "Grand angle" -#: hacks/config/pipes.xml.h:7 +#: hacks/config/pipes.xml.h:9 msgid "Gadgetry" msgstr "Gadgets" -#: hacks/config/pipes.xml.h:8 -msgid "" -"If you've ever been in the same room with a Windows NT machine, you've " -"probably seen this GL hack. This version is by Marcelo Vianna." -msgstr "" -"Si vous avez déjà croisé la route d'une machine Windows NT, vous avez " -"certainement déjà vu ce hack GL. Cette version est de Marcelo Vianna." - -#: hacks/config/pipes.xml.h:11 -msgid "Number of Pipe Systems" -msgstr "Nombre de systèmes de canalisation" +#: hacks/config/pipes.xml.h:13 +msgid "Number of Pipes" +msgstr "Nombre de canalisations" -#: hacks/config/pipes.xml.h:12 -msgid "Pipe Fittings" -msgstr "Raccords de canalisation" +#: hacks/config/pipes.xml.h:15 +msgid "Pipe Length" +msgstr "Longueur des canalisations" -#: hacks/config/pipes.xml.h:13 +#: hacks/config/pipes.xml.h:16 msgid "Pipes" msgstr "Canalisations" -#: hacks/config/pipes.xml.h:17 -msgid "System Length" -msgstr "Longueur du système" - -#: hacks/config/polyhedra.xml.h:4 hacks/config/sballs.xml.h:1 -msgid "Cube" -msgstr "Cube" - #: hacks/config/polyhedra.xml.h:5 msgid "Cubitruncated Cuboctahedron" msgstr "" @@ -6655,17 +6522,13 @@ msgid "" "Displays different 3D solids and some information about each. A new solid is " "chosen every few seconds. There are 75 uniform polyhedra, plus 5 infinite " "sets of prisms and antiprisms; including their duals brings the total to " -"160. Written by Dr. Zvi Har'El and Jamie Zawinski." +"160. Written by Dr. Zvi Har'El and Jamie Zawinski; 2004." msgstr "" #: hacks/config/polyhedra.xml.h:14 msgid "Ditrigonal Dodecadodecahedron" msgstr "" -#: hacks/config/polyhedra.xml.h:15 hacks/config/sballs.xml.h:2 -msgid "Dodecahedron" -msgstr "Dodécaèdre" - #: hacks/config/polyhedra.xml.h:18 msgid "Great Cubicuboctahedron" msgstr "" @@ -6878,10 +6741,6 @@ msgstr "" msgid "Hexahemioctacron" msgstr "" -#: hacks/config/polyhedra.xml.h:71 hacks/config/sballs.xml.h:5 -msgid "Icosahedron" -msgstr "Icosaèdre" - #: hacks/config/polyhedra.xml.h:72 msgid "Icosidodecadodecahedron" msgstr "" @@ -6930,10 +6789,6 @@ msgstr "" msgid "Medial Triambic Icosahedron" msgstr "" -#: hacks/config/polyhedra.xml.h:85 hacks/config/sballs.xml.h:7 -msgid "Octahedron" -msgstr "Octaèdre" - #: hacks/config/polyhedra.xml.h:86 msgid "Octahemioctacron" msgstr "" @@ -7245,10 +7100,10 @@ msgstr "Polyominos" #: hacks/config/polyominoes.xml.h:8 msgid "" "Repeatedly attempts to completely fill a rectangle with irregularly-shaped " -"puzzle pieces. Written by Stephen Montgomery-Smith." +"puzzle pieces. Written by Stephen Montgomery-Smith; 2002." msgstr "" "Tente sans cesse de remplir entièrement un rectangle à l'aide de pièces de " -"puzzle de formes irrégulières. Écrit par Stephen Montgomery-Smith." +"puzzle de formes irrégulières. Écrit par Stephen Montgomery-Smith; 2002." #: hacks/config/polytopes.xml.h:2 msgid "120-Cell" @@ -7289,21 +7144,25 @@ msgstr "Couleur unique" #: hacks/config/polytopes.xml.h:22 msgid "" "This program shows one of the six regular 4D polytopes rotating in 4D. " -"Written by Carsten Steger, inspired by H.S.M Coxeter's book \"Regular " -"Polytopes\", 3rd Edition, Dover Publications, Inc., 1973, and Thomas " -"Banchoff's book \"Beyond the Third Dimension: Geometry, Computer Graphics, " -"and Higher Dimensions\", Scientific American Library, 1990." +"Inspired by H.S.M Coxeter's book \"Regular Polytopes\", 3rd Edition, Dover " +"Publications, Inc., 1973, and Thomas Banchoff's book \"Beyond the Third " +"Dimension: Geometry, Computer Graphics, and Higher Dimensions\", Scientific " +"American Library, 1990. Written by Carsten Steger; 2003." msgstr "" #: hacks/config/pong.xml.h:2 +msgid "Game Speed" +msgstr "Vitesse du jeu" + +#: hacks/config/pong.xml.h:3 msgid "Pong" msgstr "Pong" -#: hacks/config/pong.xml.h:6 +#: hacks/config/pong.xml.h:5 msgid "" "The pong program simulates an ancient Pong home video game, as well as " "various artifacts from displaying it on a color TV set. Written by Jeremy " -"English and Trevor Blackwell." +"English and Trevor Blackwell; 2003." msgstr "" #: hacks/config/popsquares.xml.h:2 @@ -7320,7 +7179,8 @@ msgstr "Sub-division" #: hacks/config/popsquares.xml.h:9 msgid "" -"This draws a pop-art-ish looking grid of pulsing colors. By Levi Burton." +"This draws a pop-art-ish looking grid of pulsing colors. Written by Levi " +"Burton; 2003." msgstr "" #: hacks/config/popsquares.xml.h:10 @@ -7339,67 +7199,61 @@ msgstr "Dessiner des yeux" msgid "Providence" msgstr "Providence" -#: hacks/config/providence.xml.h:8 +#: hacks/config/providence.xml.h:7 msgid "" "The providence code displays an eye, shrouded in glory, set upon the base of " -"a pyramid. Written by Blair Tennessy." +"a pyramid. Written by Blair Tennessy; 2004." msgstr "" #: hacks/config/pulsar.xml.h:1 msgid "Anti-alias Lines" msgstr "Lignes anti-aliasées" -#: hacks/config/pulsar.xml.h:3 +#: hacks/config/pulsar.xml.h:2 msgid "" "Draws some intersecting planes, making use of alpha blending, fog, textures, " -"and mipmaps, plus a ``frames per second'' meter so that you can tell how " -"fast your graphics card is... Requires OpenGL. Written by David Konerding." +"and mipmaps. Written by David Konerding; 1999." msgstr "" "Dessine des plans en intersection en utilisant le mélange de valeurs alpha, " -"le brouillard, des textures, et des mipmaps, plus une mesure ''images par " -"seconde'' pour que vous puissiez calculer la rapidité de votre carte " -"graphique... Nécessite OpenGL. Écrit par David Konerding." +"le brouillard, des textures, et des mipmaps. " +"Écrit par David Konerding; 1999." -#: hacks/config/pulsar.xml.h:4 +#: hacks/config/pulsar.xml.h:3 msgid "Enable Blending" msgstr "Activer le mélange" -#: hacks/config/pulsar.xml.h:5 +#: hacks/config/pulsar.xml.h:4 msgid "Enable Depth Buffer" msgstr "Activer le tampon de profondeur" -#: hacks/config/pulsar.xml.h:6 +#: hacks/config/pulsar.xml.h:5 msgid "Enable Fog" msgstr "Activer le brouillard" -#: hacks/config/pulsar.xml.h:7 +#: hacks/config/pulsar.xml.h:6 msgid "Enable Lighting" msgstr "Activer l'éclairage" -#: hacks/config/pulsar.xml.h:8 +#: hacks/config/pulsar.xml.h:7 msgid "Enable Texture Filtering" msgstr "Activer le filtrage de texture" -#: hacks/config/pulsar.xml.h:9 +#: hacks/config/pulsar.xml.h:8 msgid "Enable Texture Mipmaps" msgstr "Activer les mipmaps de texture" -#: hacks/config/pulsar.xml.h:10 +#: hacks/config/pulsar.xml.h:9 msgid "Enable Texturing" msgstr "Activer les textures" -#: hacks/config/pulsar.xml.h:12 +#: hacks/config/pulsar.xml.h:11 msgid "Pulsar" msgstr "Pulsar" -#: hacks/config/pulsar.xml.h:13 +#: hacks/config/pulsar.xml.h:12 msgid "Quad Count" msgstr "Nombre de quads" -#: hacks/config/pulsar.xml.h:18 -msgid "Texture PPM File" -msgstr "Fichier PPM de texture" - #: hacks/config/pyro.xml.h:3 msgid "Explosive Yield" msgstr "Production d'explosions" @@ -7418,59 +7272,64 @@ msgstr "Pyro" #: hacks/config/pyro.xml.h:11 msgid "" -"Pyro draws exploding fireworks. Blah blah blah. Written by Jamie Zawinski." +"Pyro draws exploding fireworks. Blah blah blah. Written by Jamie Zawinski; " +"1992." msgstr "" -"Pyro dessine des feux d'artifices en explosion. Bla bla. Écrit par Jamie " -"Zawinski." +"Pyro dessine des feux d'artifices. Bla bla bla. Écrit par Jamie " +"Zawinski; 1992." #: hacks/config/qix.xml.h:1 msgid "Additive Colors" msgstr "Couleurs additives" -#: hacks/config/qix.xml.h:3 +#: hacks/config/qix.xml.h:2 +msgid "" +"Bounces a series of line segments around the screen, and uses variations on " +"this basic motion pattern to produce all sorts of different presentations: " +"line segments, filled polygons, and overlapping translucent areas. Written " +"by Jamie Zawinski; 1992." +msgstr "" +"Fait rebondir une série de " +"segments de lignes sur l'écran et utilise des variations de ce modèle de " +"mouvement de base pour produire toutes sortes de présentations différentes : " +"segments de ligne, polygones pleins, zones translucides superposées. Écrit " +"par Jamie Zawinski; 1992." + +#: hacks/config/qix.xml.h:4 msgid "Corners" msgstr "Coins" -#: hacks/config/qix.xml.h:11 +#: hacks/config/qix.xml.h:12 msgid "Line Segments" msgstr "Segments de ligne" -#: hacks/config/qix.xml.h:12 +#: hacks/config/qix.xml.h:13 msgid "Linear Motion" msgstr "Mouvement linéaire" -#: hacks/config/qix.xml.h:15 +#: hacks/config/qix.xml.h:16 msgid "Max Size" msgstr "Taille max." -#: hacks/config/qix.xml.h:16 +#: hacks/config/qix.xml.h:17 msgid "Qix" msgstr "Qix" -#: hacks/config/qix.xml.h:17 +#: hacks/config/qix.xml.h:18 msgid "Random Motion" msgstr "Mouvement aléatoire" -#: hacks/config/qix.xml.h:23 -msgid "Subtractive Colors" -msgstr "Couleurs soustractives" +#: hacks/config/qix.xml.h:21 +msgid "Solid Objects" +msgstr "Objets solides" #: hacks/config/qix.xml.h:24 -msgid "" -"This is the swiss army chainsaw of qix programs. It bounces a series of line " -"segments around the screen, and uses variations on this basic motion pattern " -"to produce all sorts of different presentations: line segments, filled " -"polygons, overlapping translucent areas... Written by Jamie Zawinski." -msgstr "" -"La tronçonneuse suisse des programmes qix. Fait rebondir une série de " -"segments de lignes sur l'écran et utilise des variations de ce modèle de " -"mouvement de base pour produire toutes sortes de présentations différentes : " -"segments de ligne, polygones pleins, zones translucides superposées... Écrit " -"par Jamie Zawinski." +msgid "Subtractive Colors" +msgstr "Couleurs soustractives" #: hacks/config/qix.xml.h:25 msgid "Transparent" -msgstr "Transparent" +msgstr "Transparence des" #: hacks/config/queens.xml.h:2 msgid "Queens" @@ -7480,53 +7339,50 @@ msgstr "Reines" msgid "" "Solves the N-Queens problem (where, in this program, N is between 5 and 10 " "queens.) The problem is: how may one place N queens on an NxN chessboard " -"such that no queen can attack a sister? Written by Blair Tennessy." +"such that no queen can attack a sister? Written by Blair Tennessy; 2002." msgstr "" -#: hacks/config/rd-bomb.xml.h:1 +#: hacks/config/rd-bomb.xml.h:1 hacks/config/rdbomb.xml.h:1 msgid "/" msgstr "/" -#: hacks/config/rd-bomb.xml.h:3 +#: hacks/config/rd-bomb.xml.h:3 hacks/config/rdbomb.xml.h:3 #, no-c-format msgid "1%" msgstr "1%" -#: hacks/config/rd-bomb.xml.h:7 +#: hacks/config/rd-bomb.xml.h:7 hacks/config/rdbomb.xml.h:7 msgid "" -"Another variation of the `Bomb' program by Scott Draves. This draws a grid " -"of growing square-like shapes that, once they overtake each other, react in " -"unpredictable ways. ``RD'' stands for reaction-diffusion." +"Draws a grid of growing square-like shapes that, once they overtake each " +"other, react in unpredictable ways. \"RD\" stands for reaction-diffusion. " +"Written by Scott Draves." msgstr "" -"Une autre variation du programme «Bomb» de Scott Draves. Dessine une grille " +"Dessine une grille " "de formes carrées croissantes qui, une fois qu'elles se rejoignent, " -"réagissent de façon imprévisible. 'RD' signifie réaction-diffusion." +"réagissent de façon imprévisible. 'RD' signifie réaction-diffusion. " +"Écrit par Scott Draves." -#: hacks/config/rd-bomb.xml.h:8 +#: hacks/config/rd-bomb.xml.h:8 hacks/config/rdbomb.xml.h:8 msgid "Epoch" msgstr "Époque" -#: hacks/config/rd-bomb.xml.h:10 +#: hacks/config/rd-bomb.xml.h:10 hacks/config/rdbomb.xml.h:10 msgid "Fill Screen" msgstr "Remplir l'écran" -#: hacks/config/rd-bomb.xml.h:14 +#: hacks/config/rd-bomb.xml.h:14 hacks/config/rdbomb.xml.h:14 msgid "RD-Bomb" msgstr "Bombe RD" -#: hacks/config/rd-bomb.xml.h:15 +#: hacks/config/rd-bomb.xml.h:15 hacks/config/rdbomb.xml.h:15 msgid "Reaction/Difusion" msgstr "Réaction/Diffusion" -#: hacks/config/rd-bomb.xml.h:16 +#: hacks/config/rd-bomb.xml.h:16 hacks/config/rdbomb.xml.h:16 msgid "Seed Radius" msgstr "Rayon du germe" -#: hacks/config/rd-bomb.xml.h:19 hacks/config/twang.xml.h:12 -msgid "Tile Size" -msgstr "Taille des mosaïques" - -#: hacks/config/rd-bomb.xml.h:22 +#: hacks/config/rd-bomb.xml.h:22 hacks/config/rdbomb.xml.h:22 msgid "Wander Speed" msgstr "Vitesse de déplacement" @@ -7578,11 +7434,11 @@ msgstr "Tempète" msgid "" "This draws rippling interference patterns like splashing water. With the -" "water option, it manipulates your desktop image to look like something is " -"dripping into it. Written by Tom Hammersley." +"dripping into it. Written by Tom Hammersley; 1999." msgstr "" "Dessine des motifs d'interférences ondulants qui ressemblent à des " "éclaboussures d'eau. Avec l'option '-water', manipule votre image bureau " -"pour que quelque chose ait l'air de l'éclabousser. Écrit par Tom Hammersley." +"pour que quelque chose semble l'éclabousser. Écrit par Tom Hammersley; 1999." #: hacks/config/rocks.xml.h:7 msgid "Rocks" @@ -7595,12 +7451,10 @@ msgstr "Orientation" #: hacks/config/rocks.xml.h:11 msgid "" "This draws an animation of flight through an asteroid field, with changes in " -"rotation and direction. It can also display 3D separations for red/blue " -"glasses! Mostly written by Jamie Zawinski." +"rotation and direction. Written by Jamie Zawinski; 1992." msgstr "" "Dessine une animation de vol dans un champ d'astéroïdes, dont la rotation " -"et la direction changent. Peut également afficher des séparations 3D pour " -"les verres rouges/bleus ! Principalement écrit par Jamie Zawinski." +"et la direction changent. Écrit par Jamie Zawinski; 1992." #: hacks/config/rocks.xml.h:13 msgid "Velocity" @@ -7612,17 +7466,15 @@ msgstr "Rorschach" #: hacks/config/rorschach.xml.h:9 msgid "" -"This generates random inkblot patterns. The algorithm is deceptively simple " -"for how well it works; it merely walks a dot around the screen randomly, and " -"then reflects the image horizontally, vertically, or both. Any deep-seated " -"neurotic tendencies which this program reveals are your own problem. Written " -"by Jamie Zawinski." +"This generates random inkblot patterns via a reflected random walk. Any deep-" +"seated neurotic tendencies which this program reveals are your own problem. " +"Written by Jamie Zawinski; 1992." msgstr "" -"Génère des motifs de taches d'encre aléatoires. L'algorithme est " -"incroyablement simple pour un si bon fonctionnement; il déplace simplement " +"Génère des motifs de taches d'encre aléatoires " +"en déplacant simplement " "un point sur l'écran au hasard et reflète l'image horizontalement et/ou " "verticalement. Vous êtes responsable de toutes les tendances névrotiques " -"enfouies que ce programme pourrait révéler. Écrit par Jamie Zawinski." +"enfouies que ce programme pourrait révéler. Écrit par Jamie Zawinski; 1992." #: hacks/config/rorschach.xml.h:10 msgid "With X Symmetry" @@ -7632,10 +7484,10 @@ msgstr "Avec symétrie X" msgid "With Y Symmetry" msgstr "Avec symétrie Y" -#: hacks/config/rotor.xml.h:1 +#: hacks/config/rotor.xml.h:2 msgid "" -"Another ancient xlock demo, this one by Tom Lawrence. It draws a line " -"segment moving along a complex spiraling curve." +"Draws a line segment moving along a complex spiraling curve. Written by Tom " +"Lawrence; 1997." msgstr "" #: hacks/config/rotor.xml.h:4 hacks/config/wander.xml.h:9 @@ -7647,9 +7499,8 @@ msgid "Rotor" msgstr "Rotor" #: hacks/config/rotzoomer.xml.h:2 -#, fuzzy msgid "60" -msgstr "360°" +msgstr "60°" #: hacks/config/rotzoomer.xml.h:3 msgid "Animate" @@ -7658,10 +7509,10 @@ msgstr "Animer" #: hacks/config/rotzoomer.xml.h:4 msgid "" "Creates a collage of rotated and scaled portions of the screen. Written by " -"Claudio Matsuoka." +"Claudio Matsuoka; 2001." msgstr "" "Crée un collage de portions pivotées et mises à l'échelle de l'écran. Écrit " -"par Claudio Matsuoka." +"par Claudio Matsuoka; 2001." #: hacks/config/rotzoomer.xml.h:6 msgid "Rectangle Count" @@ -7686,56 +7537,54 @@ msgstr "Rectangles mobiles" #: hacks/config/rubik.xml.h:2 msgid "" "Draws a Rubik's Cube that rotates in three dimensions and repeatedly " -"shuffles and solves itself. Another fine GL hack by Marcelo Vianna." +"shuffles and solves itself. Written by Marcelo Vianna; 1997." msgstr "" -"Dessine un Rubik's Cube qui pivote en trois dimensions et se mélange et se " -"résout sans cesse. Un autre beau hack GL de Marcelo Vianna." +"Dessine un Rubik's Cube qui pivote en trois dimensions, se mélange et se " +"résout sans cesse. Écrit par Marcelo Vianna; 1997." -#: hacks/config/rubik.xml.h:5 +#: hacks/config/rubik.xml.h:4 +msgid "Hide Shuffling" +msgstr "Cacher le mélange" + +#: hacks/config/rubik.xml.h:6 msgid "Rubik" msgstr "Rubik" -#: hacks/config/rubik.xml.h:7 -msgid "Show Shuffling" -msgstr "Afficher le mélange" - #: hacks/config/sballs.xml.h:3 msgid "" -"Draws an animation of textured balls spinning like crazy in GL. Requires " -"OpenGL, and a machine with fast hardware support for texture maps. Written " -"by Eric Lassauge <lassauge@users.sourceforge.net>." +"Draws an animation of textured balls spinning like crazy. Written by Eric " +"Lassauge; 2002." msgstr "" -"Dessine une animation de balles texturées qui tournent comme des folles en " -"GL. Nécessite OpenGL et une machine avec un support matériel puissant pour " -"les textures. Écrit par Eric Lassauge <lassauge@users.sourceforge.net>." +"Dessine une animation de balles texturées qui tournent comme des folles. " +"Écrit par Eric Lassauge ; 2002." -#: hacks/config/sballs.xml.h:8 +#: hacks/config/sballs.xml.h:7 msgid "Plane" msgstr "Plan" -#: hacks/config/sballs.xml.h:9 +#: hacks/config/sballs.xml.h:8 msgid "Pyramid" msgstr "Pyramide" -#: hacks/config/sballs.xml.h:11 +#: hacks/config/sballs.xml.h:10 msgid "Sballs" msgstr "Sballs" -#: hacks/config/sballs.xml.h:15 +#: hacks/config/sballs.xml.h:14 msgid "Star" msgstr "Étoile" -#: hacks/config/shadebobs.xml.h:7 +#: hacks/config/shadebobs.xml.h:8 msgid "ShadeBobs" msgstr "ShadeBobs" -#: hacks/config/shadebobs.xml.h:11 +#: hacks/config/shadebobs.xml.h:12 msgid "" "This draws smoothly-shaded oscillating oval patterns, that look something " -"like vapor trails or neon tubes. Written by Shane Smit." +"like vapor trails or neon tubes. Written by Shane Smit; 1999." msgstr "" "Dessine des formes ovoïdes oscillantes et d'aspect lisse, qui ressemblent un " -"peu à des traînées de vapeur ou des tubes au néon. Écrit par Shane Smit." +"peu à des traînées de vapeur ou des tubes au néon. Écrit par Shane Smit; 1999." #: hacks/config/sierpinski.xml.h:6 msgid "Sierpinski" @@ -7744,48 +7593,47 @@ msgstr "Sierpinski" #: hacks/config/sierpinski.xml.h:10 msgid "" "This draws the two-dimensional variant of the recursive Sierpinski triangle " -"fractal. Written by Desmond Daignault." +"fractal. Written by Desmond Daignault; 1997." msgstr "" "Dessine la variante bidimensionnelle de la fractale triangulaire récursive " -"de Sierpinski. Écrit par Desmond Daignault." +"de Sierpinski. Écrit par Desmond Daignault; 1997." #: hacks/config/sierpinski3d.xml.h:7 msgid "Sierpinski3D" msgstr "Sierpinski3D" -#: hacks/config/sierpinski3d.xml.h:11 +#: hacks/config/sierpinski3d.xml.h:10 msgid "" "This draws the three-dimensional variant of the recursive Sierpinski " -"triangle fractal, using GL. Written by Tim Robinson and Jamie Zawinski." +"triangle fractal, using GL. Written by Tim Robinson and Jamie Zawinski; 1999." msgstr "" "Dessine la variante tridimensionnelle de la fractale triangulaire récursive " -"de Sierpinski, à l'aide de GL. Écrit par Tim Robinson et Jamie Zawinski." +"de Sierpinski, à l'aide de GL. Écrit par Tim Robinson et Jamie Zawinski; 1999." -#: hacks/config/slidescreen.xml.h:1 hacks/config/twang.xml.h:1 -#: hacks/config/zoom.xml.h:1 -msgid "Border Width" -msgstr "Largeur de la bordure" +#: hacks/config/slidescreen.xml.h:3 +msgid "Gutter Size" +msgstr "Taille du blanc de fond" -#: hacks/config/slidescreen.xml.h:4 +#: hacks/config/slidescreen.xml.h:8 msgid "Slide Speed" msgstr "Vitesse de glissement" -#: hacks/config/slidescreen.xml.h:5 +#: hacks/config/slidescreen.xml.h:9 msgid "SlideScreen" msgstr "Glissement d'écran" -#: hacks/config/slidescreen.xml.h:8 +#: hacks/config/slidescreen.xml.h:13 msgid "" "This takes an image, divides it into a grid, and then randomly shuffles the " -"squares around as if it was one of those annoying ``16-puzzle'' games, where " +"squares around as if it was one of those annoying \"16-puzzle\" games, where " "there is a grid of squares, one of which is missing. I hate trying to solve " "those puzzles, but watching one permute itself is more amusing. Written by " -"Jamie Zawinski." +"Jamie Zawinski; 1994." msgstr "" "Prend une image, la divise pour former une grille et mélange au hasard les " "carrés comme l'un de ces jeux ennuyeux comprenant une grille de carrés dont " "l'un est manquant. Je déteste essayer de résoudre ces puzzles, mais c'est " -"plus amusant d'en voir un se résoudre lui-même. Écrit par Jamie Zawinski." +"plus amusant d'en voir un se résoudre lui-même. Écrit par Jamie Zawinski; 1994." #: hacks/config/slip.xml.h:6 msgid "Slip" @@ -7797,21 +7645,17 @@ msgid "" "a jet engine and spews them out the other side. To avoid turning the image " "completely to mush, every now and then it will and then it interjects some " "splashes of color into the scene, or go into a spin cycle, or stretch the " -"image like taffy, or (this is my addition) grab an image of your current " -"desktop to chew on. Originally written by Scott Draves; whacked on by Jamie " -"Zawinski." +"image like taffy. Written by Scott Draves and Jamie Zawinski; 1997." msgstr "" "Ce programme affiche des éléments aléatoires à l'écran, puis les aspire dans " "un réacteur et les fait ressortir. Pour ne pas réduire complètement l'image " "en bouillie, il injectera de temps en temps des taches de couleur dans la " -"scène, entamera un cycle d'essorage, étendra l'image comme un caramel ou (ma " -"touche personnelle) capturera l'image de votre bureau actuel pour la " -"retourner. Initialement écrit par Scott Draves ; bouleversé par Jamie " -"Zawinski." +"scène, entamera un cycle d'essorage, étendra l'image comme un caramel. " +"Écrit par Scott Draves et Jamie Zawinski; 1997." #: hacks/config/sonar.xml.h:1 -msgid "Ping known hosts" -msgstr "Ping des machines connues" +msgid "Ping known SSH hosts" +msgstr "Ping des machines SSH connues" #: hacks/config/sonar.xml.h:2 msgid "Ping mode..." @@ -7851,7 +7695,7 @@ msgstr "Résolution des noms d'hôte" #: hacks/config/sonar.xml.h:11 msgid "Show Ping Times" -msgstr "Montre les durées des ping" +msgstr "Montrer les durées des ping" #: hacks/config/sonar.xml.h:12 msgid "Simulation Team Members" @@ -7871,17 +7715,13 @@ msgstr "Nom de l'équipe B" #: hacks/config/sonar.xml.h:16 msgid "" -"This program draws a simulation of a sonar screen. By default, it displays a " -"random assortment of ``bogies'' on the screen, but if installed as \"setuid " -"root\", it can ping (pun intended) your local network, and actually plot the " -"proximity of the other hosts on your network to you. Written by Stephen " -"Martin and Jamie Zawinski." +"This program draws a sonar screen that pings (get it?) the hosts on your " +"local network, and plots their distance (response time) from you. The three " +"rings represent ping times of approximately 2.5, 70 and 2,000 milliseconds " +"respectively. Alternately, it can run a simulation that doesn't involve " +"hosts. (If pinging doesn't work, you may need to make the executable be " +"setuid.) Written by Stephen Martin and Jamie Zawinski; 1998." msgstr "" -"Ce programme dessine une simulation d'un écran de sonar. Par défaut, il " -"affiche un assortiment aléatoire de 'trucs' à l'écran, mais, s'il est " -"installé \"setuid root\", il peut effectuer un ping sur votre réseau local " -"et calculer la proximité des autres hôtes du réseau par rapport à vous." -"Écrit par Stephen Martin et Jamie Zawinski." #: hacks/config/sonar.xml.h:17 msgid "vs." @@ -7900,46 +7740,44 @@ msgid "Max Velocity" msgstr "Vélocité max." #: hacks/config/speedmine.xml.h:8 -msgid "Mine Shaft" -msgstr "Puits de mine" - -#: hacks/config/speedmine.xml.h:9 msgid "Present Bonuses" msgstr "Bonus présents" -#: hacks/config/speedmine.xml.h:10 +#: hacks/config/speedmine.xml.h:9 msgid "Rocky Walls" msgstr "Parois rocheuses" -#: hacks/config/speedmine.xml.h:12 +#: hacks/config/speedmine.xml.h:11 msgid "" "Simulates speeding down a rocky mineshaft, or a funky dancing worm. Written " -"by Conrad Parker." +"by Conrad Parker; 2001." msgstr "" "Simule la descente dans un puits de mine rocheux ou affiche un ver funky " -"dansant. Écrit par Conrad Parker." +"dansant. Écrit par Conrad Parker; 2001." -#: hacks/config/speedmine.xml.h:16 +#: hacks/config/speedmine.xml.h:14 msgid "SpeedMine" msgstr "SpeedMine" -#: hacks/config/speedmine.xml.h:17 +#: hacks/config/speedmine.xml.h:15 msgid "Thrust" msgstr "Poussée" -#: hacks/config/speedmine.xml.h:19 hacks/config/worm.xml.h:10 +#: hacks/config/speedmine.xml.h:16 +msgid "Tunnel" +msgstr "Tunnel GL" + +#: hacks/config/speedmine.xml.h:18 hacks/config/worm.xml.h:10 msgid "Worm" msgstr "Ver" #: hacks/config/sphere.xml.h:1 msgid "" -"Another of the classic screenhacks of the distant past, this one draws " -"shaded spheres in multiple colors. This hack traces its lineage back to Tom " -"Duff in 1982." +"Draws shaded spheres in multiple colors. Written by Tom Duff and Jamie " +"Zawinski; 1982, 1997." msgstr "" -"Un autre hack classique d'une époque lointaine. Il dessine des sphères " -"ombrées en plusieurs couleurs. Son arbre généalogique remonte à Tom Duff en " -"1982." +"Dessine des sphères ombrées en plusieurs couleurs. " +"Écrit par Tom Duff et Jamie Zawinski; 1982, 1997." #: hacks/config/sphereeversion.xml.h:1 msgid "SphereEversion" @@ -7950,39 +7788,36 @@ msgid "" "SphereEversion draws an animation of a sphere being turned inside out. A " "sphere can be turned inside out, without any tears, sharp creases or " "discontinuities, if the surface of the sphere is allowed to intersect " -"itself. This program animates what is known as the Thurston Eversion. " -"Written by Nathaniel Thurston and Michael McGuffin. This program is not " -"included with the XScreenSaver package, but if you don't have it already, " -"you can find it at <http://www.dgp.utoronto.ca/~mjmcguff/eversion/>." +"itself. This program animates what is known as the Thurston Eversion. This " +"program is not included with the XScreenSaver package, but if you don't have " +"it already, you can find it at <http://www.dgp.utoronto.ca/~mjmcguff/" +"eversion/>. Written by Nathaniel Thurston and Michael McGuffin; 2001." msgstr "" #: hacks/config/spheremonics.xml.h:20 msgid "Smoothed Lines" msgstr "Lignes lissées" -#: hacks/config/spheremonics.xml.h:23 +#: hacks/config/spheremonics.xml.h:22 msgid "Spheremonics" msgstr "Sphèremonics" -#: hacks/config/spheremonics.xml.h:24 +#: hacks/config/spheremonics.xml.h:23 msgid "" "These closed objects are commonly called spherical harmonics, although they " "are only remotely related to the mathematical definition found in the " "solution to certain wave functions, most notable the eigenfunctions of " -"angular momentum operators. Written by Paul Bourke and Jamie Zawinski." +"angular momentum operators. Written by Paul Bourke and Jamie Zawinski; 2002." msgstr "" -#: hacks/config/spiral.xml.h:2 hacks/config/superquadrics.xml.h:2 +#: hacks/config/spiral.xml.h:2 msgid "Cycles" msgstr "Fréquence des cycles" #: hacks/config/spiral.xml.h:7 -msgid "" -"Moving circular patterns, by Peter Schmitzberger. Moving circular patterns " -"means moire; interference patterns, of course." +msgid "Moving circular moire patterns. Written by Peter Schmitzberger; 1997." msgstr "" -"Motifs circulaires mobiles, par Peter Schmitzberger. Les motifs circulaires " -"mobiles sont synonymes de moiré ; des motifs d'interférences, évidemment." +"Motifs de moiré circulaires mobiles. Écrit par Peter Schmitzberger; 1997." #: hacks/config/spiral.xml.h:11 msgid "Spiral" @@ -7991,20 +7826,25 @@ msgstr "Spirale" #: hacks/config/spotlight.xml.h:1 msgid "" "Draws a spotlight scanning across a black screen, illuminating the " -"underlying desktop when it passes. Written by Rick Schultz." +"underlying desktop (or a picture) when it passes. Written by Rick Schultz " +"and Jamie Zawinski; 1999." msgstr "" "Trace un faisceau lumineux qui parcourt un écran noir et illumine le bureau " -"sous-jacent. Écrit par Rick Schultz." +"sous-jacent. Écrit par Rick Schultz et Jamie Zawinski; 1999." -#: hacks/config/spotlight.xml.h:6 +#: hacks/config/spotlight.xml.h:7 msgid "Spotlight" msgstr "Faisceau lumineux" -#: hacks/config/sproingies.xml.h:3 -msgid "Q-Bert meets Marble Madness! Written by Ed Mackey." -msgstr "La rencontre de Q-Bert et de Marble Madness ! Écrit par Ed Mackey." +#: hacks/config/spotlight.xml.h:8 +msgid "Spotlight Size" +msgstr "Taille du faisceau lumineux" + +#: hacks/config/sproingies.xml.h:4 +msgid "Q-Bert meets Marble Madness! Written by Ed Mackey; 1997." +msgstr "La rencontre de Q-Bert et de Marble Madness ! Écrit par Ed Mackey; 1997." -#: hacks/config/sproingies.xml.h:9 +#: hacks/config/sproingies.xml.h:8 msgid "Sproingies" msgstr "Sproingies" @@ -8012,11 +7852,11 @@ msgstr "Sproingies" msgid "" "Draws a set of interacting, square-spiral-producing automata. The spirals " "grow outward until they hit something, then they go around it. Written by " -"Jeff Epler." +"Jeff Epler; 1999." msgstr "" "Dessine un ensemble d'automates qui interagissent et produisent des spirales " "carrées. Les spirales grandissent jusqu'à ce qu'elles heurtent un obstacle, " -"qu'elles contournent. Écrit par Jeff Epler." +"qu'elles contournent. Écrit par Jeff Epler; 1999." #: hacks/config/squiral.xml.h:5 msgid "Handedness" @@ -8026,7 +7866,7 @@ msgstr "Sens de rotation" msgid "Left" msgstr "Gauche" -#: hacks/config/squiral.xml.h:11 hacks/config/twang.xml.h:8 +#: hacks/config/squiral.xml.h:11 hacks/config/twang.xml.h:9 msgid "Randomness" msgstr "Caractère aléatoire" @@ -8038,37 +7878,15 @@ msgstr "Droite" msgid "Squiral" msgstr "Spirale carrées" -#: hacks/config/ssystem.xml.h:1 -msgid "SSystem" -msgstr "SSystem" - -#: hacks/config/ssystem.xml.h:2 -msgid "" -"SSystem is a GL Solar System simulator. It simulates flybys of Sun, the nine " -"planets and a few major satellites, with four camera modes. Written by Raul " -"Alonso. This is not included with the XScreenSaver package, but is packaged " -"separately. Note: SSystem does not work as a screen saver on all systems, " -"because it doesn't communicate with xscreensaver properly. It happens to " -"work with some window managers, but not with others, so your mileage may " -"vary. SSystem was once available at <http://www1.las.es/~amil/ssystem/" -">, but is now gone. You may still be able to find copies elsewhere. " -"SSystem has since evolved into Celestia, found at <http://www.shatters." -"net/celestia/>. Sadly, Celestia does not work with xscreensaver at all. " -"You are encouraged to nag the authors into adding xscreensaver support!" +#: hacks/config/stairs.xml.h:1 +msgid "Escher's infinite staircase. Written by Marcelo Vianna; 1998." msgstr "" +"«L'escalier infini» d'Escher. Écrit par Marcelo Vianna; 1998." #: hacks/config/stairs.xml.h:6 msgid "Stairs" msgstr "Escaliers" -#: hacks/config/stairs.xml.h:8 -msgid "" -"by Marcelo Vianna's third Escher GL hack, this one draws an ``infinite'' " -"staircase." -msgstr "" -"Le troisième hack GL de Marcelo Vianna d'après Escher, cette fois " -"«l'escalier infini»." - #: hacks/config/starfish.xml.h:1 msgid "Color Gradients" msgstr "Dégradés de couleur" @@ -8077,21 +7895,21 @@ msgstr "Dégradés de couleur" msgid "Pulsating Blob" msgstr "Tache pulsatile" -#: hacks/config/starfish.xml.h:10 +#: hacks/config/starfish.xml.h:11 msgid "Starfish" msgstr "Étoile de mer" -#: hacks/config/starfish.xml.h:13 +#: hacks/config/starfish.xml.h:14 msgid "" "This generates a sequence of undulating, throbbing, star-like patterns which " "pulsate, rotate, and turn inside out. Another display mode uses these shapes " "to lay down a field of colors, which are then cycled. The motion is very " -"organic. Written by Jamie Zawinski." +"organic. Written by Jamie Zawinski; 1997." msgstr "" "Génère une séquence de motifs ondulants en forme d'étoiles qui pulsent, " "pivotent et se retournent. Un autre mode d'affichage utilise ces formes pour " "créer un champ de couleurs, qui présente des cycles. Le mouvement est très " -"organique. Écrit par Jamie Zawinski." +"organique. Écrit par Jamie Zawinski; 1997." #: hacks/config/starwars.xml.h:2 msgid "Anti-aliased Lines" @@ -8100,10 +7918,8 @@ msgstr "Lignes anti-aliassées" #: hacks/config/starwars.xml.h:4 msgid "" "Draws a stream of text slowly scrolling into the distance at an angle, over " -"a star field, like at the beginning of the movie of the same name. The text " -"can be the output of a program or the contents of a file or URL, as " -"configured on the \"Advanced\" tab of the main Screensaver Preferences " -"window. Written by Jamie Zawinski and Claudio Matauoka." +"a star field, like at the beginning of the movie of the same name. Written " +"by Jamie Zawinski and Claudio Matauoka; 2001." msgstr "" #: hacks/config/starwars.xml.h:5 @@ -8122,27 +7938,31 @@ msgstr "Vitesse de rotation des étoiles" msgid "StarWars" msgstr "StarWars" -#: hacks/config/starwars.xml.h:18 +#: hacks/config/starwars.xml.h:17 msgid "Texture-Mapped Font" msgstr "Police de caractère texturée" -#: hacks/config/starwars.xml.h:19 +#: hacks/config/starwars.xml.h:18 msgid "Thick Lines" msgstr "Lignes épaisses" -#: hacks/config/starwars.xml.h:20 +#: hacks/config/starwars.xml.h:19 msgid "Wrap Long Lines" msgstr "Retour à la ligne" +#: hacks/config/starwars.xml.h:20 +msgid "or, Text Columns" +msgstr "ou, colonnes de texte" + #: hacks/config/stonerview.xml.h:1 msgid "" "Chains of colorful squares dance around each other in complex spiral " -"patterns. Written by Andrew Plotkin, based on SGI's `electropaint' " -"screensaver." +"patterns. Inspired by SGI's `electropaint' screensaver. Written by Andrew " +"Plotkin; 2001." msgstr "" "Des chaînes de carrés colorés dansent les unes autour des autres en formant " -"des spirales complexes. Écrit par Andrew Plotkin, basé sur l'économiseur " -"d'écran «electropaint» de SGI." +"des spirales complexes. Basé sur l'économiseur d'écran «electropaint» de SGI. " +"Écrit par Andrew Plotkin; 2001." #: hacks/config/stonerview.xml.h:3 msgid "StonerView" @@ -8155,12 +7975,12 @@ msgstr "Étrange" #: hacks/config/strange.xml.h:7 msgid "" "This draws strange attractors: it's a colorful, unpredictably-animating " -"field of dots that swoops and twists around. The motion is very nice. " -"Written by Massimino Pascal." +"field of dots that swoops and twists around. Written by Massimino Pascal; " +"1997." msgstr "" "Dessine d'étranges attracteurs : ils ressemblent à des champs de points " -"colorés qui tournent et se tortillent de manière imprévisible. Le mouvement " -"est très beau. Écrit par Massimino Pascal." +"colorés qui tournent et se tortillent de manière imprévisible. " +"Écrit par Massimino Pascal; 1997." #: hacks/config/substrate.xml.h:2 hacks/config/xplanet.xml.h:2 #, no-c-format @@ -8178,8 +7998,8 @@ msgstr "Craquements initaux" #: hacks/config/substrate.xml.h:10 msgid "" "Lines like crystals grow on a computational substrate. A simple " -"perpendicular growth rule creates intricate city-like structures. By J. " -"Tarbell and Mike Kershaw." +"perpendicular growth rule creates intricate city-like structures. Written by " +"J. Tarbell and Mike Kershaw; 2004." msgstr "" #: hacks/config/substrate.xml.h:13 @@ -8194,31 +8014,22 @@ msgstr "Substrat" msgid "Wireframe only" msgstr "Fil de fer" -#: hacks/config/superquadrics.xml.h:3 -msgid "" -"Ed Mackey reports that he wrote the first version of this program in BASIC " -"on a Commodore 64 in 1987, as a 320x200 black and white wireframe. Now it is " -"GL and has specular reflections." +#: hacks/config/superquadrics.xml.h:8 +msgid "Morphing 3D shapes. Written by Ed Mackey; 1987, 1997." msgstr "" -"Ed Mackey déclare avoir écrit la première version de ce programme en langage " -"BASIC sur un Commodore 64 en 1987, sous la forme d'un maillage graphique " -"320x200 noir et blanc. Il est désormais en GL et présente des réflexions " -"spéculaires." -#: hacks/config/superquadrics.xml.h:11 +#: hacks/config/superquadrics.xml.h:12 +msgid "Spin Speed" +msgstr "Vitesse de rotation" + +#: hacks/config/superquadrics.xml.h:13 msgid "Superquadrics" msgstr "Superquadriques" -#: hacks/config/swirl.xml.h:4 -msgid "" -"More flowing, swirly patterns. This version is by M. Dobie and R. Taylor, " -"but you might have seen a Mac program similar to this called FlowFazer. " -"There is also a cool Java applet of a similar concept." +#: hacks/config/swirl.xml.h:3 +msgid "Flowing, swirly patterns. Written by M. Dobie and R. Taylor; 1997." msgstr "" -"Autre motifs fluides et tourbillonnants. Cette version est de M. Dobie et R. " -"Taylor, mais vous avez peut-être déjà vu un programme Mac similaire appelé " -"FlowFazer. Il existe aussi une chouette applet Java avec un concept " -"apparenté." +"Motifs fluides et tourbillonnants. Écrit par M. Dobie et R. Taylor; 1997." #: hacks/config/swirl.xml.h:8 msgid "Swirl" @@ -8244,26 +8055,26 @@ msgstr "Plus grand" msgid "Cycle Seconds" msgstr "Cycle des secondes" -#: hacks/config/t3d.xml.h:10 +#: hacks/config/t3d.xml.h:6 +msgid "" +"Draws a working analog clock composed of floating, throbbing bubbles. " +"Written by Bernd Paysan; 1999." +msgstr "" +"Dessine une horloge analogique composée de bulles flottantes et pulsatiles. " +"Écrit par Bernd Paysan; 1999." + +#: hacks/config/t3d.xml.h:11 msgid "Minute Tick Marks" msgstr "Marque toutes les minutes" -#: hacks/config/t3d.xml.h:12 +#: hacks/config/t3d.xml.h:13 msgid "Smaller" msgstr "Plus petit" -#: hacks/config/t3d.xml.h:14 +#: hacks/config/t3d.xml.h:15 msgid "T3D" msgstr "T3D" -#: hacks/config/t3d.xml.h:15 -msgid "" -"This draws a working analog clock composed of floating, throbbing bubbles. " -"Written by Bernd Paysan." -msgstr "" -"Dessine une horloge analogique composée de bulles flottantes et pulsatiles. " -"Écrit par Bernd Paysan." - #: hacks/config/t3d.xml.h:16 msgid "Turn Side-to-Side" msgstr "Retourner" @@ -8272,9 +8083,8 @@ msgstr "Retourner" msgid "Wobbliness" msgstr "Oscillation" -#: hacks/config/tangram.xml.h:3 -msgid "" -"Lets you watch the computer solve Tangram puzzles Written by Jeremy English." +#: hacks/config/tangram.xml.h:4 +msgid "Solves tangram puzzles. Written by Jeremy English; 2005." msgstr "" #: hacks/config/tangram.xml.h:6 @@ -8299,11 +8109,11 @@ msgstr "Rotation caméra en Z" #: hacks/config/thornbird.xml.h:1 msgid "" -"Displays a view of the ``Bird in a Thornbush'' fractal. Written by Tim " -"Auckland." +"Displays a view of the \"Bird in a Thornbush\" fractal. Written by Tim " +"Auckland; 2002." msgstr "" "Affiche la fractale de l'«oiseau dans un buisson épineux». Écrit par Tim " -"Auckland." +"Auckland; 2002." #: hacks/config/thornbird.xml.h:6 msgid "Points" @@ -8328,7 +8138,7 @@ msgstr "Dessiner le logo" #: hacks/config/timetunnel.xml.h:5 msgid "" "Draws an animation similar to the opening and closing effects on the Dr. Who " -"television show. Written by Sean P. Brennan." +"TV show. Written by Sean P. Brennan; 2005." msgstr "" #: hacks/config/timetunnel.xml.h:7 @@ -8343,13 +8153,63 @@ msgstr "Durée de la séquence initiale" msgid "Timetunnel" msgstr "Tunnel du temps" +#: hacks/config/topblock.xml.h:1 +msgid "Blob mode" +msgstr "Mode des taches" + +#: hacks/config/topblock.xml.h:2 +msgid "Carpet" +msgstr "Tapis" + +#: hacks/config/topblock.xml.h:3 +msgid "Carpet Size" +msgstr "Taille des tapis" + +#: hacks/config/topblock.xml.h:4 +msgid "" +"Creates a 3D world with dropping blocks that build up and up. Written by " +"rednuht; 2006." +msgstr "" + +#: hacks/config/topblock.xml.h:5 +msgid "Different Colors" +msgstr "Couleurs différentes" + +#: hacks/config/topblock.xml.h:6 +msgid "Drop Speed" +msgstr "Vitesse de descente" + +#: hacks/config/topblock.xml.h:8 +msgid "Follow" +msgstr "Suivre" + +#: hacks/config/topblock.xml.h:12 +msgid "Nipples" +msgstr "Tétines" + +#: hacks/config/topblock.xml.h:13 +msgid "Polygon Count" +msgstr "Nombre de polygones" + +#: hacks/config/topblock.xml.h:19 +msgid "Spawn Likelyhood" +msgstr "Similarité de reproduction" + +#: hacks/config/topblock.xml.h:21 +msgid "Tunnel mode" +msgstr "Mode tunnel" + +#: hacks/config/topblock.xml.h:23 +msgid "topBlock" +msgstr "topBloc" + #: hacks/config/triangle.xml.h:2 msgid "" "Generates random mountain ranges using iterative subdivision of triangles. " -"Written by Tobias Gloth." +"Written by Tobias Gloth; 1997." msgstr "" "Génère des chaînes de montagne aléatoires en utilisant la subdivision " -"itérative de triangles. Écrit par Tobias Gloth." +"itérative de triangles. Écrit par Tobias Gloth; 1997." #: hacks/config/triangle.xml.h:7 msgid "Triangle" @@ -8357,42 +8217,47 @@ msgstr "Triangle" #: hacks/config/truchet.xml.h:4 msgid "" -"This draws line- and arc-based Truchet patterns that tile the screen. " -"Written by Adrian Likins." +"This draws line- and arc-based truchet patterns that tile the screen. " +"Written by Adrian Likins; 1998." msgstr "" "Dessine des motifs de Truchet basés sur des lignes et des arcs, qui " -"recouvrent l'écran. Écrit par Adrian Likins." +"recouvrent l'écran. Écrit par Adrian Likins; 1998." #: hacks/config/truchet.xml.h:5 msgid "Truchet" msgstr "Truchet" +#: hacks/config/twang.xml.h:1 hacks/config/zoom.xml.h:1 +msgid "Border Width" +msgstr "Largeur de la bordure" + #: hacks/config/twang.xml.h:2 msgid "" -"Divides the screen into a grid, and plucks them. Written by Dan Bornstein." +"Divides the screen into a grid, and plucks them. Written by Dan Bornstein; " +"2002." msgstr "" -"Divise l'écran en petits rectangles, qui sont ensuite enlevés. Écrit par Dan " -"Bornstein." +"Divise l'écran en petits rectangles, qui sont ensuite secoués. Écrit par Dan " +"Bornstein; 2002." #: hacks/config/twang.xml.h:6 msgid "Jumpy" msgstr "Sautillant" -#: hacks/config/twang.xml.h:11 +#: hacks/config/twang.xml.h:13 msgid "Springiness" msgstr "Flexibilité" -#: hacks/config/twang.xml.h:13 +#: hacks/config/twang.xml.h:15 msgid "Transference" msgstr "Migration" -#: hacks/config/twang.xml.h:14 +#: hacks/config/twang.xml.h:16 msgid "Twang" msgstr "Twang" #: hacks/config/vermiculate.xml.h:1 -msgid "Draws squiggly worm-like paths. Written by Tyler Pierce." -msgstr "Trace des gribouillis vermiculés. Écrit par Tyler Pierce." +msgid "Draws squiggly worm-like paths. Written by Tyler Pierce; 2001." +msgstr "Trace des gribouillis vermiculés. Écrit par Tyler Pierce; 2001." #: hacks/config/vermiculate.xml.h:2 msgid "Vermiculate" @@ -8408,33 +8273,32 @@ msgstr "Répertoire d'images" #: hacks/config/vidwhacker.xml.h:5 msgid "" -"This is actually just a shell script that grabs a frame of video from the " -"system's video input, and then uses some PBM filters (chosen at random) to " -"manipulate and recombine the video frame in various ways (edge detection, " -"subtracting the image from a rotated version of itself, etc.) Then it " -"displays that image for a few seconds, and does it again. This works really " -"well if you just feed broadcast television into it." +"This is a shell script that grabs a frame of video from the system's video " +"input, and then uses some PBM filters (chosen at random) to manipulate and " +"recombine the video frame in various ways (edge detection, subtracting the " +"image from a rotated version of itself, etc.) Then it displays that image " +"for a few seconds, and does it again. This works really well if you just " +"feed broadcast television into it. Written by Jamie Zawinski; 1998." msgstr "" "Il s'agit d'un simple script shell qui capture une image depuis l'entrée " "vidéo du système et utilise des filtres PBM (choisis au hasard) pour " "manipuler et reformer l'image vidéo de diverses manières (détection des " "contours, soustraction de l'image d'une version pivotée d'elle-même, etc.) " "Ensuite, il affiche cette image pendant quelques secondes et recommence. Ce " -"programme fonctionne très bien si vous le reliez à un téléviseur." +"programme fonctionne très bien si vous le reliez à un téléviseur. " +"Écrit par Jamie Zawinski; 1998." #: hacks/config/vidwhacker.xml.h:6 msgid "VidWhacker" msgstr "VidWhacker" -#: hacks/config/vines.xml.h:6 +#: hacks/config/vines.xml.h:2 msgid "" -"This one generates a continuous sequence of small, curvy geometric patterns. " -"It scatters them around your screen until it fills up, then it clears the " -"screen and starts over. Written by Tracy Camp and David Hansen." +"Generates a continuous sequence of small, curvy geometric patterns. Written " +"by Tracy Camp and David Hansen; 1997." msgstr "" -"Génère une séquence continue de petits motifs géométriques et arrondis. Ils " -"remplissent l'écran, puis s'effacent avant de recommencer l'opération. Écrit " -"par Tracy Camp et David Hansen." +"Génère une séquence continue de petits motifs géométriques et arrondis. Écrit " +"par Tracy Camp et David Hansen; 1997." #: hacks/config/vines.xml.h:8 msgid "Vines" @@ -8446,10 +8310,11 @@ msgstr "Dessiner des taches" #: hacks/config/wander.xml.h:6 msgid "" -"Draws a colorful random-walk, in various forms. Written by Rick Campbell." +"Draws a colorful random-walk, in various forms. Written by Rick Campbell; " +"1999." msgstr "" "Dessine une promenade aléatoire colorée, sous plusieurs formes. Écrit par " -"Rick Campbell." +"Rick Campbell; 1999." #: hacks/config/wander.xml.h:14 msgid "Sustain" @@ -8488,19 +8353,20 @@ msgid "" "This program makes collages out of random images pulled off of the World " "Wide Web. It finds these images by doing random web searches, and then " "extracting images from the returned pages. It can also be set up to filter " -"the images through the `VidWhacker' program. WARNING: THE INTERNET SOMETIMES " -"CONTAINS PORNOGRAPHY. The Internet being what it is, absolutely anything " -"might show up in the collage including -- quite possibly -- pornography, or " -"even nudity. Please act accordingly. Written by Jamie Zawinski." +"the images through the \"VidWhacker\" program. WARNING: THE INTERNET " +"SOMETIMES CONTAINS PORNOGRAPHY. The Internet being what it is, absolutely " +"anything might show up in the collage including -- quite possibly -- " +"pornography, or even nudity. Please act accordingly. Written by Jamie " +"Zawinski; 1999." msgstr "" "Ce programme effectue des collages à partir d'images extraites au hasard " "depuis le World Wide Web. Il les trouve en faisant des recherches aléatoires " "sur le Web et en extrayant les images des pages trouvées. Il peut également " -"être configuré pour filtrer les images via le programme 'VidWhacker' ci-" -"dessus, pour obtenir des résultats stupéfiants. (Notez que la plupart des " -"images trouvées sont en fait du texte et non des images proprement dites. " -"Cela est dû au fait que la plupart des images du Web contiennent du texte, " -"ce qui est assez désolant.) Écrit par Jamie Zawinski." +"être configuré pour filtrer les images via le programme 'VidWhacker'. " +"ATTENTION : INTERNET CONTIENT DE LA PORNOGRAPHIE. L'internet étant ce " +"qu'il est, tout peut apparaître dans le collage y-compris -- presque " +"certainement -- de la pornographie ou de la nudité. Agissez en conséquence. " +"Écrit par Jamie Zawinski; 1999." #: hacks/config/webcollage.xml.h:10 msgid "URL Timeout: 2 secs" @@ -8514,12 +8380,12 @@ msgstr "Collage Web" msgid "" "Floating stars are acted upon by a mixture of simple 2D forcefields. The " "strength of each forcefield changes continuously, and it is also switched on " -"and off at random. By Paul 'Joey' Clark." +"and off at random. Written by Paul 'Joey' Clark; 2001." msgstr "" "Des étoiles flottantes sont influencées par un mélange de simples champs de " "forces 2D. La puissance de chaque champ de forces change continuellement. " "Les champs sont également activés et désactivés au hasard. Par Paul 'Joey' " -"Clark." +"Clark; 2001." #: hacks/config/whirlwindwarp.xml.h:7 msgid "Trail Size" @@ -8538,9 +8404,10 @@ msgid "Circle" msgstr "Cercle" #: hacks/config/whirlygig.xml.h:3 -msgid "Draws zooming chains of sinusoidal spots. Written by Ashton Trey Belew." +msgid "" +"Draws zooming chains of sinusoidal spots. Written by Ashton Trey Belew; 2001." msgstr "" -"Dessine des chaînes de taches sinusoïdales. Écrit par Ashton Trey Belew." +"Dessine des chaînes de taches sinusoïdales. Écrit par Ashton Trey Belew; 2001." #: hacks/config/whirlygig.xml.h:4 msgid "Explain modes" @@ -8590,33 +8457,31 @@ msgstr "WhirlyGig" msgid "Wrap the screen" msgstr "Faire le tour de l'écran" -#: hacks/config/worm.xml.h:1 +#: hacks/config/worm.xml.h:2 msgid "" -"An ancient xlock hack that draws multicolored worms that crawl around the " -"screen. Written by Brad Taylor, Dave Lemke, Boris Putanec, and Henrik " -"Theiling." +"Draws multicolored worms that crawl around the screen. Written by Brad " +"Taylor, Dave Lemke, Boris Putanec, and Henrik Theiling; 1991." msgstr "" -"Ancien hack xlock qui dessine des vers multicolores rampant sur l'écran. " -"Écrit par Brad Taylor, Dave Lemke, Boris Putanec et Henrik Theiling." +"Dessine des vers multicolores rampant sur l'écran. " +"Écrit par Brad Taylor, Dave Lemke, Boris Putanec et Henrik Theiling; 1991." -#: hacks/config/wormhole.xml.h:6 +#: hacks/config/wormhole.xml.h:4 +msgid "" +"Flying through a colored wormhole in space. Written by Jon Rafkind; 2004." +msgstr "" + +#: hacks/config/wormhole.xml.h:7 msgid "Star speed" msgstr "Vitesse des étoiles" -#: hacks/config/wormhole.xml.h:7 +#: hacks/config/wormhole.xml.h:8 msgid "Stars Created" msgstr "Création des étoiles" -#: hacks/config/wormhole.xml.h:8 +#: hacks/config/wormhole.xml.h:9 msgid "Wormhole" msgstr "Trou de Ver" -#: hacks/config/wormhole.xml.h:9 -msgid "" -"Wormhole simulates flying through a colored wormhole in space. Written by " -"Jon Rafkind." -msgstr "" - #: hacks/config/xanalogtv.xml.h:1 msgid "XAnalogTV" msgstr "X TV analogique" @@ -8627,7 +8492,7 @@ msgid "" "patterns, with various picture artifacts like snow, bloom, distortion, " "ghosting, and hash noise. It also simulates the TV warming up. It will cycle " "through 12 channels, some with images you give it, and some with color bars " -"or nothing but static. By Trevor Blackwell." +"or nothing but static. Written by Trevor Blackwell; 2003." msgstr "" #: hacks/config/xaos.xml.h:1 @@ -8637,9 +8502,9 @@ msgstr "XaoS" #: hacks/config/xaos.xml.h:2 msgid "" "XaoS generates fast fly-through animations of the Mandelbrot and other " -"fractal sets. Written by Thomas Marsh and Jan Hubicka. This is not included " -"with the XScreenSaver package, but if you don't have it already, you can " -"find it at <http://xaos.theory.org/>." +"fractal sets. This is not included with the XScreenSaver package, but if you " +"don't have it already, you can find it at <http://xaos.theory.org/>. " +"Written by Thomas Marsh and Jan Hubicka." msgstr "" #: hacks/config/xdaliclock.xml.h:1 @@ -8670,7 +8535,7 @@ msgstr "Grande police" msgid "Medium Font" msgstr "Police moyenne" -#: hacks/config/xdaliclock.xml.h:8 hacks/config/xmatrix.xml.h:16 +#: hacks/config/xdaliclock.xml.h:8 hacks/config/xmatrix.xml.h:17 msgid "Small Font" msgstr "Petite police" @@ -8681,120 +8546,11 @@ msgstr "Horloge Dali" #: hacks/config/xdaliclock.xml.h:10 msgid "" "XDaliClock draws a large digital clock, the numbers of which change by " -"``melting'' into their new shapes. Written by Jamie Zawinski. This is not " -"included with the XScreenSaver package, but if you don't have it already, " -"you can find it at <http://www.jwz.org/xdaliclock/>." -msgstr "" - -#: hacks/config/xearth.xml.h:1 -msgid "Bright" -msgstr "Lumineux" - -#: hacks/config/xearth.xml.h:2 hacks/config/xplanet.xml.h:7 -msgid "Date/Time Stamp" -msgstr "Indicateur de date/heure" - -#: hacks/config/xearth.xml.h:3 -msgid "Day Dim" -msgstr "Jour Dim" - -#: hacks/config/xearth.xml.h:5 -msgid "Display Stars" -msgstr "Afficher les étoiles" - -#: hacks/config/xearth.xml.h:8 -msgid "Label Cities" -msgstr "Indiquer les villes" - -#: hacks/config/xearth.xml.h:9 hacks/config/xplanet.xml.h:49 -msgid "Lower Left" -msgstr "Inférieur gauche" - -#: hacks/config/xearth.xml.h:10 hacks/config/xplanet.xml.h:50 -msgid "Lower Right" -msgstr "Inférieur droit" - -#: hacks/config/xearth.xml.h:13 hacks/config/xplanet.xml.h:51 -msgid "Mercator Projection" -msgstr "Projection de Mercator" - -#: hacks/config/xearth.xml.h:14 -msgid "Night Dim" -msgstr "Nuit Dim" - -#: hacks/config/xearth.xml.h:15 -msgid "No Stars" -msgstr "Pas d'étoiles" - -#: hacks/config/xearth.xml.h:16 -msgid "North/South Rotation" -msgstr "Rotation Nord/Sud" - -#: hacks/config/xearth.xml.h:18 hacks/config/xplanet.xml.h:53 -msgid "Orthographic Projection" -msgstr "Projection orthographique" - -#: hacks/config/xearth.xml.h:19 hacks/config/xplanet.xml.h:56 -msgid "Real Time" -msgstr "Temps réel" - -#: hacks/config/xearth.xml.h:20 -msgid "Shaded Image" -msgstr "Image ombragée" - -#: hacks/config/xearth.xml.h:21 -msgid "Sharp" -msgstr "Net" - -#: hacks/config/xearth.xml.h:26 -msgid "Terminator Blurry" -msgstr "Terminateur Flou" - -#: hacks/config/xearth.xml.h:27 hacks/config/xplanet.xml.h:61 -msgid "Time Warp" -msgstr "Alignement temporel" - -#: hacks/config/xearth.xml.h:29 hacks/config/xplanet.xml.h:62 -msgid "Upper Left" -msgstr "Supérieur gauche" - -#: hacks/config/xearth.xml.h:30 hacks/config/xplanet.xml.h:63 -msgid "Upper Right" -msgstr "Supérieur droit" - -#: hacks/config/xearth.xml.h:31 -msgid "" -"XEarth draws an image of the Earth, as seen from your favorite vantage point " -"in space, correctly shaded for the current position of the Sun. Written by " -"Kirk Johnson. This is not included with the XScreenSaver package, but if you " -"don't have it already, you can find it at <http://www.cs.colorado.edu/" -"~tuna/xearth/>. There is also a similar (but more recent) program called " -"xplanet to be found at <http://xplanet.sourceforge.net/>." +"\"melting\" into their new shapes. This is not included with the " +"XScreenSaver package, but if you don't have it already, you can find it at " +"<http://www.jwz.org/xdaliclock/>. Written by Jamie Zawinski; 1991." msgstr "" -#: hacks/config/xearth.xml.h:32 -msgid "Xearth" -msgstr "Xearth" - -#: hacks/config/xfishtank.xml.h:5 -msgid "Fish" -msgstr "Poissons" - -#: hacks/config/xfishtank.xml.h:6 -msgid "Fish Speed" -msgstr "Vitesse des poissons" - -#: hacks/config/xfishtank.xml.h:7 -msgid "" -"Fish! This is not included with the XScreenSaver package, but if you don't " -"have it already, you can find it at <http://metalab.unc.edu/pub/Linux/X11/" -"demos/>." -msgstr "" - -#: hacks/config/xfishtank.xml.h:12 -msgid "XFishTank" -msgstr "XFishTank" - #: hacks/config/xflame.xml.h:1 msgid "Bitmap File" msgstr "Fichier bitmap" @@ -8802,31 +8558,27 @@ msgstr "Fichier bitmap" #: hacks/config/xflame.xml.h:2 msgid "" "Draws a simulation of pulsing fire. It can also take an arbitrary image and " -"set it on fire too. Written by Carsten Haitzler, hacked on by many others." +"set it on fire too. Written by Carsten Haitzler and many others; 1999." msgstr "" "Dessine une simulation de feu rougeoyant. Il peut également choisir une " "image arbitraire et lui mettre le feu. Écrit par Carsten Haitzler, avec de " -"nombreuses contributions." +"nombreuses contributions; 1999." #: hacks/config/xflame.xml.h:3 msgid "Enable Blooming" msgstr "Activer l'étendue" -#: hacks/config/xflame.xml.h:8 +#: hacks/config/xflame.xml.h:7 msgid "Xflame" msgstr "Xflame" #: hacks/config/xjack.xml.h:4 msgid "" "This program behaves schizophrenically and makes a lot of typos. Written by " -"Jamie Zawinski. If you haven't seen Stanley Kubrick's masterpiece, ``The " -"Shining,'' you won't get it. Those who have describe this hack as " -"``inspired.''" +"Jamie Zawinski; 1997." msgstr "" "Ce programme a un comportement schizophrène et effectue de nombreuses " -"coquilles. Écrit par Jamie Zawinski. Si vous n'avez pas vu le chef-d'oeuvre " -"de Stanley Kubrick, «Shining», vous n'y comprendrez rien. Ceux qui l'ont vu " -"considèrent ce hack comme «inspiré»." +"coquilles. Écrit par Jamie Zawinski; 1997." #: hacks/config/xjack.xml.h:5 msgid "Xjack" @@ -8834,13 +8586,12 @@ msgstr "Xjack" #: hacks/config/xlyap.xml.h:1 msgid "" -"This generates pretty fractal pictures by doing funky math involving the " -"``Lyapunov exponent.'' It has a cool interactive mode, too. Written by Ron " -"Record." +"This generates pretty fractal pictures via the Lyapunov exponent. Written by " +"Ron Record; 1997." msgstr "" "Génère de jolies fractales en effectuant de géniales opérations de math " -"utilisant ''l'exposant de Lyapunov''. Il possède aussi un mode interactif. " -"Écrit par Ron Record." +"utilisant «l'exposant de Lyapunov». " +"Écrit par Ron Record; 1997." #: hacks/config/xlyap.xml.h:2 msgid "Xlyap" @@ -8851,8 +8602,12 @@ msgid "" "Draws dropping characters similar to what is seen on the computer monitors " "in \"The Matrix\". See also \"glmatrix\" for a 3D rendering of the similar " "effect that appeared in the title sequence of the movie. Written by Jamie " -"Zawinski." +"Zawinski; 1999." msgstr "" +"Dessine des caractères qui tombent de façon similaire à ce que l'on voit sur " +"les moniteurs dans «Matrix». Voir également «glmatrix» pour un rendu 3D du " +"même effet qui apparaît dans la séquence de titre du film. Écrit par Jamie " +"Zawinski; 1999." #: hacks/config/xmatrix.xml.h:4 msgid "Expansion Algorithm" @@ -8871,19 +8626,23 @@ msgid "Phone Number" msgstr "Numéro de téléphone" #: hacks/config/xmatrix.xml.h:13 +msgid "Piped ASCII Text" +msgstr "Texte ASCII issu d'un pipe" + +#: hacks/config/xmatrix.xml.h:14 msgid "Run Trace Program" msgstr "Exécuter le programme de suivi" -#: hacks/config/xmatrix.xml.h:14 +#: hacks/config/xmatrix.xml.h:15 msgid "Slider Algorithm" msgstr "Algorithme de glissement" -#: hacks/config/xmatrix.xml.h:19 +#: hacks/config/xmatrix.xml.h:20 msgid "Synergistic Algorithm" msgstr "Algorithme synergique" -#: hacks/config/xmatrix.xml.h:20 -msgid "Xmatrix" +#: hacks/config/xmatrix.xml.h:21 +msgid "XMatrix" msgstr "Xmatrix" #: hacks/config/xmountains.xml.h:1 @@ -9009,10 +8768,10 @@ msgstr "Point de vue" #: hacks/config/xmountains.xml.h:35 msgid "" "XMountains generates realistic-looking fractal terrains of snow-capped " -"mountains near water, with either a top view or a side view. Written by " -"Stephen Booth. This is not included with the XScreenSaver package, but if " -"you don't have it already, you can find it at <http://www.epcc.ed.ac.uk/" -"~spb/xmountains/>. (Make sure you have version 2.7 or newer!)" +"mountains near water, with either a top view or a side view. This is not " +"included with the XScreenSaver package, but if you don't have it already, " +"you can find it at <http://www.epcc.ed.ac.uk/~spb/xmountains/>. (Make " +"sure you have version 2.7 or newer!) Written by Stephen Booth." msgstr "" #: hacks/config/xmountains.xml.h:36 @@ -9035,6 +8794,10 @@ msgstr "Projection des anciens" msgid "Azimuthal Projection" msgstr "Projection azimuthale" +#: hacks/config/xplanet.xml.h:7 +msgid "Date/Time Stamp" +msgstr "Indicateur de date/heure" + #: hacks/config/xplanet.xml.h:9 msgid "From Ariel" msgstr "Depuis Ariel" @@ -9195,14 +8958,34 @@ msgstr "Latitude" msgid "Longitude" msgstr "Longitude" +#: hacks/config/xplanet.xml.h:49 +msgid "Lower Left" +msgstr "Inférieur gauche" + +#: hacks/config/xplanet.xml.h:50 +msgid "Lower Right" +msgstr "Inférieur droit" + +#: hacks/config/xplanet.xml.h:51 +msgid "Mercator Projection" +msgstr "Projection de Mercator" + #: hacks/config/xplanet.xml.h:52 msgid "Mollweide Projection" msgstr "Projection de Mollweide" +#: hacks/config/xplanet.xml.h:53 +msgid "Orthographic Projection" +msgstr "Projection orthographique" + #: hacks/config/xplanet.xml.h:54 msgid "Peters Projection" msgstr "Projection de Peters" +#: hacks/config/xplanet.xml.h:56 +msgid "Real Time" +msgstr "Temps réel" + #: hacks/config/xplanet.xml.h:57 msgid "Rectangular Projection" msgstr "Projection Rectangulaire" @@ -9211,6 +8994,18 @@ msgstr "Projection Rectangulaire" msgid "Render as a Globe" msgstr "Génère un globe" +#: hacks/config/xplanet.xml.h:61 +msgid "Time Warp" +msgstr "Alignement temporel" + +#: hacks/config/xplanet.xml.h:62 +msgid "Upper Left" +msgstr "Supérieur gauche" + +#: hacks/config/xplanet.xml.h:63 +msgid "Upper Right" +msgstr "Supérieur droit" + #: hacks/config/xplanet.xml.h:64 msgid "View Ariel" msgstr "Voir Ariel" @@ -9362,19 +9157,19 @@ msgstr "XPlanet" #: hacks/config/xplanet.xml.h:101 msgid "" "Xplanet draws an image of the Earth, as seen from your favorite vantage " -"point in space, correctly shaded for the current position of the Sun. " -"Written by Hari Nair. This is not included with the XScreenSaver package, " -"but if you don't have it already, you can find it at <http://xplanet." -"sourceforge.net/>." +"point in space, correctly shaded for the current position of the Sun. This " +"is not included with the XScreenSaver package, but if you don't have it " +"already, you can find it at <http://xplanet.sourceforge.net/>. Written " +"by Hari Nair; 2001." msgstr "" #: hacks/config/xrayswarm.xml.h:1 msgid "" -"Draws a few swarms of critters flying around the screen, with nicely faded " -"color trails behind them. Written by Chris Leger." +"Draws a few swarms of critters flying around the screen, with faded color " +"trails behind them. Written by Chris Leger; 2000." msgstr "" "Dessine quelques nuées de bestioles qui volent sur l'écran, avec de jolies " -"traînées dans des fondus de couleur. Écrit par Chris Leger." +"traînées dans des fondus de couleur. Écrit par Chris Leger; 2000." #: hacks/config/xrayswarm.xml.h:5 msgid "XRaySwarm" @@ -9382,9 +9177,12 @@ msgstr "XRaySwarm" #: hacks/config/xsnow.xml.h:1 msgid "" -"Draws falling snow and the occasional tiny Santa. By Rick Jansen. You can " -"find it at <http://www.euronet.nl/~rja/Xsnow/>." +"Draws falling snow and the occasional tiny Santa. You can find it at <" +"http://www.euronet.nl/~rja/Xsnow/>. Written by Rick Jansen." msgstr "" +"Dessine de la neige qui tombe et éventuellement le père Noël. " +"Vous pouvez le trouver sur . " +"Écrit par Rick Jansen." #: hacks/config/xsnow.xml.h:2 msgid "Xsnow" @@ -9392,11 +9190,11 @@ msgstr "Xsnow" #: hacks/config/xspirograph.xml.h:5 msgid "" -"Simulates that pen-in-nested-plastic-gears toy from your childhood. By Rohit " -"Singh." +"Simulates that pen-in-nested-plastic-gears toy from your childhood. Written " +"by Rohit Singh; 2000." msgstr "" "Simule le célèbre jouet de notre enfance, constitué d'un stylo logé dans un " -"engrenage en plastique. Par Rohit Singh." +"engrenage en plastique. Par Rohit Singh; 2000." #: hacks/config/xspirograph.xml.h:6 msgid "XSpiroGraph" @@ -9425,10 +9223,11 @@ msgstr "XTeeVee" #: hacks/config/xteevee.xml.h:6 msgid "" "XTeeVee simulates various television problems, including static, loss of " -"vertical hold, and a test pattern. By Greg Knauss." +"vertical hold, and a test pattern. See also \"xanalogtv\" for a much more " +"accurate simulation. Written by Greg Knauss; 2000." msgstr "" "XTeeVee simule différents problèmes de télévision comme les parasites, la " -"perte de stabilité verticale et la mire. Par Greg Knauss." +"perte de stabilité verticale et la mire. Écrit par Greg Knauss; 2000." #: hacks/config/zoom.xml.h:3 msgid "Lens Offset" @@ -9440,10 +9239,10 @@ msgstr "Lentilles" #: hacks/config/zoom.xml.h:9 msgid "" -"Zooms in on a part of the screen and then moves around. With the -lenses " -"option the result is like looking through many overlapping lenses rather " -"than just a simple zoom. Written by James Macnicol." +"Zooms in on a part of the screen and then moves around. With the \"Lenses\" " +"option, the result is like looking through many overlapping lenses rather " +"than just a simple zoom. Written by James Macnicol; 2001." msgstr "" -"Zoome sur une partie de l'écran et se déplace. Avec l'option '-lenses', le " +"Zoome sur une partie de l'écran et se déplace. Avec l'option «-lenses», le " "résultat ressemble à la superposition de lentilles plutôt qu'à un simple " -"zoom. Écrit par James Macnicol." +"zoom. Écrit par James Macnicol; 2001." diff --git a/po/hu.po b/po/hu.po index 951a40f8..7c57137e 100644 --- a/po/hu.po +++ b/po/hu.po @@ -6642,27 +6642,27 @@ msgid "Fertility" msgstr "Termékenység" #: hacks/config/petri.xml.h:12 -msgid "Maxium Lifespan" +msgid "Maximum Lifespan" msgstr "Maximális élettartam" #: hacks/config/petri.xml.h:13 -msgid "Maxium Rate of Death" +msgid "Maximum Rate of Death" msgstr "Maximális halálozási ráta" #: hacks/config/petri.xml.h:14 -msgid "Maxium Rate of Growth" +msgid "Maximum Rate of Growth" msgstr "Maximális növekedési ráta" #: hacks/config/petri.xml.h:15 -msgid "Minium Lifespan" +msgid "Minimum Lifespan" msgstr "Minimális élettartam" #: hacks/config/petri.xml.h:16 -msgid "Minium Rate of Death" +msgid "Minimum Rate of Death" msgstr "Minimális halálozási ráta" #: hacks/config/petri.xml.h:17 -msgid "Minium Rate of Growth" +msgid "Minimum Rate of Growth" msgstr "Minimális növekedési ráta" #: hacks/config/petri.xml.h:18 diff --git a/po/it.po b/po/it.po index c4629173..d0e7b910 100644 --- a/po/it.po +++ b/po/it.po @@ -2196,7 +2196,7 @@ msgid "Bouboule" msgstr "" #: hacks/config/bouboule.xml.h:2 hacks/config/rocks.xml.h:3 -msgid "Do Red/Blue 3D seperation" +msgid "Do Red/Blue 3D separation" msgstr "" #: hacks/config/bouboule.xml.h:7 @@ -6089,27 +6089,27 @@ msgid "Fertility" msgstr "" #: hacks/config/petri.xml.h:12 -msgid "Maxium Lifespan" +msgid "Maximum Lifespan" msgstr "" #: hacks/config/petri.xml.h:13 -msgid "Maxium Rate of Death" +msgid "Maximum Rate of Death" msgstr "" #: hacks/config/petri.xml.h:14 -msgid "Maxium Rate of Growth" +msgid "Maximum Rate of Growth" msgstr "" #: hacks/config/petri.xml.h:15 -msgid "Minium Lifespan" +msgid "Minimum Lifespan" msgstr "" #: hacks/config/petri.xml.h:16 -msgid "Minium Rate of Death" +msgid "Minimum Rate of Death" msgstr "" #: hacks/config/petri.xml.h:17 -msgid "Minium Rate of Growth" +msgid "Minimum Rate of Growth" msgstr "" #: hacks/config/petri.xml.h:18 @@ -7143,7 +7143,7 @@ msgid "RD-Bomb" msgstr "" #: hacks/config/rd-bomb.xml.h:15 -msgid "Reaction/Difusion" +msgid "Reaction/Diffusion" msgstr "" #: hacks/config/rd-bomb.xml.h:16 diff --git a/po/ja.po b/po/ja.po index e7ff301c..e37b886e 100644 --- a/po/ja.po +++ b/po/ja.po @@ -4,11 +4,12 @@ # msgid "" msgstr "" -"Project-Id-Version: xscreensaver 4.03\n" +"Project-Id-Version: xscreensaver 5.00-6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2006-02-13 12:26+0100\n" -"PO-Revision-Date: 2002-06-10 01:27+0900\n" -"Last-Translator: Takeshi Aihana \n" +"PO-Revision-Date: 2006-06-28 00:51+0900\n" +"Former-Translator: Takeshi Aihana \n" +"Last-Translator: Mamoru Tasaka \n" "Language-Team: Japanese \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -114,12 +115,11 @@ msgstr "XScreenSaver のウェブサイトにジャンプします。" #: driver/demo-Gtk-widgets.c:348 msgid "Cycle After" -msgstr "繰り返す周期: " +msgstr "モードの周期: " #: driver/demo-Gtk-widgets.c:370 driver/xscreensaver-demo.glade2.h:63 msgid "Whether a password should be required to un-blank the screen." -msgstr "" -"画面をロックする周期です (画面ロックを解除する場合はパスワードが必要です)。" +msgstr "画面をブランクした後、しばらくして自動的にロックしたい時は、これを選択して下さい。" #: driver/demo-Gtk-widgets.c:372 msgid "Lock Screen After" @@ -139,7 +139,7 @@ msgstr "自動的に XScreenSaver を起動するまでの時間です。" #: driver/demo-Gtk-widgets.c:1032 driver/demo-Gtk-widgets.c:1044 #: driver/xscreensaver-demo.glade2.h:106 msgid "minutes" -msgstr "分後" +msgstr "分" #: driver/demo-Gtk-widgets.c:482 driver/demo-Gtk.c:3233 msgid "Preview" @@ -277,9 +277,7 @@ msgstr "カラーマップをインストールする" msgid "" "Whether the screen should slowly fade to black when the screen saver " "activates." -msgstr "" -"スクリーンセーバーが有効になったら、スクリーンをゆっくりとフェードインするか" -"どうかを選択して下さい。" +msgstr "スクリーンセーバーを起動する時、スクリーンをゆっくりとフェードインするかどうかを選択して下さい。" #: driver/demo-Gtk-widgets.c:867 msgid "Fade To Black When Blanking" @@ -289,9 +287,7 @@ msgstr "スクリーンセーバーをフェードインする" msgid "" "Whether the screen should slowly fade in from black when the screen saver " "deactivates." -msgstr "" -"スクリーンセーバーが無効になったら、スクリーンをゆっくりとフェードアウトする" -"かどうかを選択して下さい。" +msgstr "画面を再び明るくする時、スクリーンをゆっくりとフェードアウトするかどうかを選択して下さい。" #: driver/demo-Gtk-widgets.c:884 msgid "Fade From Black When Unblanking" @@ -303,7 +299,7 @@ msgstr "フェードする時間: " #: driver/demo-Gtk-widgets.c:928 driver/xscreensaver-demo.glade2.h:26 msgid "How long it should take for the screen to fade in and out." -msgstr "スクリーンをフェードイン/アウトする間隔を指定して下さい。" +msgstr "スクリーンをフェードイン/アウトする時間を指定して下さい。" #: driver/demo-Gtk-widgets.c:932 driver/xscreensaver-demo.glade2.h:111 msgid "seconds" @@ -315,7 +311,7 @@ msgstr "モニタのパワーマネージメント" #: driver/demo-Gtk-widgets.c:986 driver/xscreensaver-demo.glade2.h:67 msgid "Whether the monitor should be powered down after a while." -msgstr "モニタの電源を OFF にする場合に選択して下さい。" +msgstr "モニタの電源管理を設定するかを選択して下さい。" #: driver/demo-Gtk-widgets.c:988 msgid "Power Management Enabled" @@ -349,33 +345,27 @@ msgstr "画像の操作" msgid "" "Whether the image-manipulating modes should be allowed to operate on an " "image of your desktop." -msgstr "" -"画像の操作モード (お使いのデスクトップ上の画像に対する操作) を許可するかどう" -"かを選択して下さい。" +msgstr "画像を用いるセーバの時、デスクトップの画像を使うかどうかを選択して下さい。" #: driver/demo-Gtk-widgets.c:1169 msgid "Grab Desktop Images" -msgstr "デスクトップ画像を操作対象にする" +msgstr "デスクトップの画像を用いる" #: driver/demo-Gtk-widgets.c:1184 msgid "" "Whether the image-manipulating modes should operate on images captured from " "the system's video input (if there is one)." -msgstr "" -"画像の操作モードで (可能ならば) システムのビデオ入力を対象にするかどうかを選" -"択して下さい。" +msgstr "画像の操作モードで (可能ならば) システムのビデオ入力を用いるかどうかを選択して下さい。" #: driver/demo-Gtk-widgets.c:1186 msgid "Grab Video Frames" -msgstr "ビデオ入力を操作対象にする" +msgstr "ビデオ入力を用いる" #: driver/demo-Gtk-widgets.c:1201 driver/xscreensaver-demo.glade2.h:66 msgid "" "Whether the image-manipulating modes should operate on random images loaded " "from disk." -msgstr "" -"画像の操作モードで、ローカルディスクにある画像をランダムに取得するかどうかを" -"選択して下さい。" +msgstr "画像の操作モードで、ローカルディスクにある画像をランダムに取得するかどうかを選択して下さい。" #: driver/demo-Gtk-widgets.c:1203 msgid "Choose Random Image:" @@ -639,10 +629,10 @@ msgid "" msgstr "" "Error:\n" "\n" -"ディレクトリが存在しません: \"%s\"\n" +"次のディレクトリが存在しません: \"%s\"\n" #: driver/demo-Gtk.c:2021 driver/demo-Gtk.c:2052 -#, fuzzy, c-format +#, c-format msgid "" "Error:\n" "\n" @@ -650,7 +640,7 @@ msgid "" msgstr "" "Error:\n" "\n" -"ディレクトリが存在しません: \"%s\"\n" +"次のファイルが存在しません: \"%s\"\n" #: driver/demo-Gtk.c:2877 msgid "Descriptions not available: no XML support compiled in." @@ -671,7 +661,7 @@ msgstr "スクリーンセーバーは無効です" #: driver/demo-Gtk.c:3243 #, c-format msgid "%s: %.100s Settings" -msgstr "" +msgstr "%s: %.100s の設定" #: driver/demo-Gtk.c:3407 #, c-format @@ -694,7 +684,7 @@ msgstr "無効です。" #: driver/demo-Gtk.c:3493 msgid "Not" -msgstr "" +msgstr "インストールされていません" #: driver/demo-Gtk.c:3493 msgid "Installed" @@ -785,9 +775,8 @@ msgid "%s: unknown option: %s\n" msgstr "%s: 不明なオプション: %s\n" #: driver/demo-Gtk.c:4865 -#, fuzzy msgid "Screensaver Preferences" -msgstr "スクリーンセーバー" +msgstr "XScreenSaverの設定" #: driver/screensaver-properties.desktop.in.h:1 msgid "Change screensaver properties" @@ -802,122 +791,107 @@ msgid "*" msgstr "" #: driver/xscreensaver-demo.glade2.h:5 -#, fuzzy msgid "Choose _Random Image:" -msgstr "画像をランダムに選択する:" +msgstr "画像をランダムに選択する(_R):" #: driver/xscreensaver-demo.glade2.h:14 -#, fuzzy msgid "F_ade Duration" -msgstr "フェードする時間: " +msgstr "フェードする時間(_a): " #: driver/xscreensaver-demo.glade2.h:15 -#, fuzzy msgid "Fade from Black When _Unblanking" -msgstr "スクリーンセーバーをフェードアウトする" +msgstr "明るくする時フェードアウト(_U)" #: driver/xscreensaver-demo.glade2.h:16 -#, fuzzy msgid "Fade to Black when _Blanking" -msgstr "スクリーンセーバーをフェードインする" +msgstr "ブランクにする時にフェードイン(_B)" #: driver/xscreensaver-demo.glade2.h:17 -#, fuzzy msgid "Fading and Colormaps" -msgstr "カラーマップ" +msgstr "フェードとカラーマップ" #: driver/xscreensaver-demo.glade2.h:19 -#, fuzzy msgid "Grab Desktop _Images" -msgstr "デスクトップ画像を操作対象にする" +msgstr "デスクトップ画像を用いる(_I)" #: driver/xscreensaver-demo.glade2.h:20 -#, fuzzy msgid "Grab _Video Frames" -msgstr "ビデオ入力を操作対象にする" +msgstr "ビデオ入力を用いる(_V)" #: driver/xscreensaver-demo.glade2.h:23 msgid "How long after the screen blanks until a password will be required." -msgstr "" +msgstr "画面がブランクになってからロックするまでの時間を指定して下さい。" #: driver/xscreensaver-demo.glade2.h:24 -#, fuzzy msgid "How long before the screen saver activates." -msgstr "スクリーンをフェードイン/アウトする間隔を指定して下さい。" +msgstr "セーバーが起動するまでの時間を指定して下さい。" #: driver/xscreensaver-demo.glade2.h:25 msgid "" "How long each display mode should run before choosing a new one (in Random " "mode.)" -msgstr "" +msgstr "ランダムなセーバーモードの時、次のセーバーに移るまでの時間を指定して下さい。" #: driver/xscreensaver-demo.glade2.h:27 -#, fuzzy msgid "How long until the monitor goes completely black." -msgstr "自動的に XScreenSaver を起動するまでの時間です。" +msgstr "モニターがスタンドバイになるまでの時間を指定して下さい。" #: driver/xscreensaver-demo.glade2.h:31 -#, fuzzy msgid "Install _Colormap" -msgstr "カラーマップをインストールする" +msgstr "カラーマップをインストールする(_C)" #: driver/xscreensaver-demo.glade2.h:33 msgid "Never blank the screen or power down the monitor." -msgstr "" +msgstr "スクリーンを暗くしたり、モニターの電源を落としたりしません。" #: driver/xscreensaver-demo.glade2.h:34 -#, fuzzy msgid "" "No Preview\n" "Available" -msgstr "プレビューは" +msgstr "プレビューを利用できません" #: driver/xscreensaver-demo.glade2.h:36 msgid "" "Not\n" "Installed" -msgstr "" +msgstr "インストールされていません" #: driver/xscreensaver-demo.glade2.h:42 -#, fuzzy msgid "Stand_by After" -msgstr "スタンバイ: " +msgstr "スタンバイまで(_b): " #: driver/xscreensaver-demo.glade2.h:45 -#, fuzzy msgid "Sus_pend After" -msgstr "サスペンド: " +msgstr "サスペンドまで(_p): " #: driver/xscreensaver-demo.glade2.h:46 -#, fuzzy msgid "Text Manipulation" -msgstr "画像の操作" +msgstr "表示するテキストの設定" #: driver/xscreensaver-demo.glade2.h:47 -#, fuzzy msgid "Text _file" -msgstr "ファイルを選択して下さい。" +msgstr "ファイル(_f)" #: driver/xscreensaver-demo.glade2.h:48 msgid "" "Text-displaying modes will display the contents of this URL (HTML or RSS)." -msgstr "" +msgstr "(テキストを表示するセーバの時)次のURLの内容が表示されます。HTMLかRSSで書かれている必要があります。" #: driver/xscreensaver-demo.glade2.h:49 msgid "Text-displaying modes will display the contents of this file." -msgstr "" +msgstr "(テキストを表示するセーバの時は)次のテキストファイルの内容が表示されます。" #: driver/xscreensaver-demo.glade2.h:50 msgid "Text-displaying modes will display the local host name, date, and time." -msgstr "" +msgstr "(テキストを表示するセーバの時は)ホスト名と、日時が表示されます。" #: driver/xscreensaver-demo.glade2.h:51 msgid "Text-displaying modes will display the output of this program." -msgstr "" +msgstr "(テキストを表示するセーバの時は)次のプログラムの出力結果が表示されます。" #: driver/xscreensaver-demo.glade2.h:52 msgid "Text-displaying modes will display the text typed here." -msgstr "" +msgstr "(テキストを表示するセーバの時は)次の文字列が出力されます。" #: driver/xscreensaver-demo.glade2.h:55 msgid "" @@ -926,128 +900,112 @@ msgid "" "This probably means that the \"xscreensaver-extras\" and\n" "\"xscreensaver-gl-extras\" packages are not installed." msgstr "" +"セーバーの数が少ない、若しくは全く無いようです。\n" +"これは、恐らく\"xscreensaver-extras\"、あるいは\n" +"\"xscreensaver-gl-extras\"のパッケージがインストールされていない\n" +"ためだと思われます。" #: driver/xscreensaver-demo.glade2.h:59 msgid "When idle or locked, blacken the screen only." -msgstr "" +msgstr "セーバーが起動した時、ただ単にスクリーンを真っ暗にします。" #: driver/xscreensaver-demo.glade2.h:60 msgid "" "When idle or locked, choose a random display mode from among the checked " "items in the list below." -msgstr "" +msgstr "セーバーが起動した時、下のリストでチェックが入っているモードからランダムに選択して、(代る代る)モニターに表示します。" #: driver/xscreensaver-demo.glade2.h:61 msgid "" "When idle or locked, choose a random display mode from among the checked " "items in the list below. Run that same mode on each monitor." -msgstr "" +msgstr "セーバーが起動した時、下のリストでチェックが入っているモードからランダムに選択して、(代る代る)モニターに表示します。各モニターには同じモードが表示されます。" #: driver/xscreensaver-demo.glade2.h:62 msgid "When idle or locked, run the display mode selected below." -msgstr "" +msgstr "セーバーが起動した時、下のリストで選択された(一つの)モードをモニターに表示します。" #: driver/xscreensaver-demo.glade2.h:65 -#, fuzzy msgid "" "Whether the image-manipulating modes should operate on images captured from " "the system's video input (if there is one.)" -msgstr "" -"画像の操作モードで (可能ならば) システムのビデオ入力を対象にするかどうかを選" -"択して下さい。" +msgstr "画像の操作モードで (可能な時) ビデオ入力の画像を使うかどうかを選択して下さい。" #: driver/xscreensaver-demo.glade2.h:73 -#, fuzzy msgid "_Advanced" -msgstr "オプション" +msgstr "拡張オプション(_A)" #: driver/xscreensaver-demo.glade2.h:74 -#, fuzzy msgid "_Advanced >>" -msgstr "拡張オプション >>" +msgstr "拡張オプション(_A)>>" #: driver/xscreensaver-demo.glade2.h:75 -#, fuzzy msgid "_Blank After" -msgstr "XScreenSaver の起動: " +msgstr "ブランクになるまで(_B): " #: driver/xscreensaver-demo.glade2.h:77 -#, fuzzy msgid "_Blank Screen Only" -msgstr "ブランク・スクリーンのみ" +msgstr "ブランク・スクリーンのみ(_B)" #: driver/xscreensaver-demo.glade2.h:78 -#, fuzzy msgid "_Browse" -msgstr "参照" +msgstr "参照(_B)" #: driver/xscreensaver-demo.glade2.h:79 -#, fuzzy msgid "_Command Line:" -msgstr "コマンドライン:" +msgstr "コマンド(_C):" #: driver/xscreensaver-demo.glade2.h:80 -#, fuzzy msgid "_Cycle After" -msgstr "繰り返す周期: " +msgstr "セーバーの周期(_C): " #: driver/xscreensaver-demo.glade2.h:81 -#, fuzzy msgid "_Disable Screen Saver" -msgstr "スクリーンセーバーを無効にする" +msgstr "セーバーを無効にする(_D)" #: driver/xscreensaver-demo.glade2.h:82 -#, fuzzy msgid "_Display Modes" msgstr "表示モード" #: driver/xscreensaver-demo.glade2.h:86 msgid "_Host Name and Time" -msgstr "" +msgstr "ホスト名と日時(_H)" #: driver/xscreensaver-demo.glade2.h:88 -#, fuzzy msgid "_Lock Screen After " -msgstr "画面ロックの起動: " +msgstr "画面をロックするまで(_L): " #: driver/xscreensaver-demo.glade2.h:90 -#, fuzzy msgid "_Mode:" -msgstr "モード:" +msgstr "モード(_M):" #: driver/xscreensaver-demo.glade2.h:91 -#, fuzzy msgid "_Off After" -msgstr "電源 OFF: " +msgstr "電源OFFまで(_O): " #: driver/xscreensaver-demo.glade2.h:92 -#, fuzzy msgid "_Only One Screen Saver" -msgstr "一つのスクリーンセーバーのみ" +msgstr "一つのセーバーのみ(_O)" #: driver/xscreensaver-demo.glade2.h:93 -#, fuzzy msgid "_Power Management Enabled" -msgstr "パワーマネージメントを有効にする" +msgstr "電源管理を有効にする(_P)" #: driver/xscreensaver-demo.glade2.h:94 -#, fuzzy msgid "_Preview" -msgstr "プレビュー" +msgstr "プレビュー(_P)" #: driver/xscreensaver-demo.glade2.h:95 msgid "_Program" -msgstr "" +msgstr "プログラム(_P)" #: driver/xscreensaver-demo.glade2.h:96 -#, fuzzy msgid "_Quit" -msgstr "終了(_E)" +msgstr "終了(_Q)" #: driver/xscreensaver-demo.glade2.h:97 -#, fuzzy msgid "_Random Screen Saver" -msgstr "ランダムなスクリーンセーバー" +msgstr "ランダムなセーバを用いる(_R)" #: driver/xscreensaver-demo.glade2.h:99 #, fuzzy @@ -1055,28 +1013,24 @@ msgid "_Same Random Savers" msgstr "ランダムなスクリーンセーバー" #: driver/xscreensaver-demo.glade2.h:100 -#, fuzzy msgid "_Settings..." -msgstr "設定..." +msgstr "設定(_S)" #: driver/xscreensaver-demo.glade2.h:101 -#, fuzzy msgid "_Standard <<" -msgstr "標準オプション <<" +msgstr "標準オプション(_S)<<" #: driver/xscreensaver-demo.glade2.h:102 -#, fuzzy msgid "_Text" -msgstr "最適" +msgstr "文字列(_T)" #: driver/xscreensaver-demo.glade2.h:103 msgid "_URL" msgstr "" #: driver/xscreensaver-demo.glade2.h:104 -#, fuzzy msgid "_Visual:" -msgstr "表示:" +msgstr "ビジュアル(_V):" #: driver/xscreensaver-demo.glade2.h:105 msgid "dialog1" @@ -2285,7 +2239,7 @@ msgid "Bouboule" msgstr "" #: hacks/config/bouboule.xml.h:2 hacks/config/rocks.xml.h:3 -msgid "Do Red/Blue 3D seperation" +msgid "Do Red/Blue 3D separation" msgstr "" #: hacks/config/bouboule.xml.h:7 @@ -6196,27 +6150,27 @@ msgid "Fertility" msgstr "" #: hacks/config/petri.xml.h:12 -msgid "Maxium Lifespan" +msgid "Maximum Lifespan" msgstr "" #: hacks/config/petri.xml.h:13 -msgid "Maxium Rate of Death" +msgid "Maximum Rate of Death" msgstr "" #: hacks/config/petri.xml.h:14 -msgid "Maxium Rate of Growth" +msgid "Maximum Rate of Growth" msgstr "" #: hacks/config/petri.xml.h:15 -msgid "Minium Lifespan" +msgid "Minimum Lifespan" msgstr "" #: hacks/config/petri.xml.h:16 -msgid "Minium Rate of Death" +msgid "Minimum Rate of Death" msgstr "" #: hacks/config/petri.xml.h:17 -msgid "Minium Rate of Growth" +msgid "Minimum Rate of Growth" msgstr "" #: hacks/config/petri.xml.h:18 @@ -7253,7 +7207,7 @@ msgid "RD-Bomb" msgstr "" #: hacks/config/rd-bomb.xml.h:15 -msgid "Reaction/Difusion" +msgid "Reaction/Diffusion" msgstr "" #: hacks/config/rd-bomb.xml.h:16 diff --git a/po/ko.po b/po/ko.po index a69d076a..216f7ed3 100644 --- a/po/ko.po +++ b/po/ko.po @@ -6304,27 +6304,27 @@ msgid "Fertility" msgstr "" #: hacks/config/petri.xml.h:12 -msgid "Maxium Lifespan" +msgid "Maximum Lifespan" msgstr "" #: hacks/config/petri.xml.h:13 -msgid "Maxium Rate of Death" +msgid "Maximum Rate of Death" msgstr "" #: hacks/config/petri.xml.h:14 -msgid "Maxium Rate of Growth" +msgid "Maximum Rate of Growth" msgstr "" #: hacks/config/petri.xml.h:15 -msgid "Minium Lifespan" +msgid "Minimum Lifespan" msgstr "" #: hacks/config/petri.xml.h:16 -msgid "Minium Rate of Death" +msgid "Minimum Rate of Death" msgstr "" #: hacks/config/petri.xml.h:17 -msgid "Minium Rate of Growth" +msgid "Minimum Rate of Growth" msgstr "" #: hacks/config/petri.xml.h:18 @@ -7429,7 +7429,7 @@ msgid "RD-Bomb" msgstr "" #: hacks/config/rd-bomb.xml.h:15 -msgid "Reaction/Difusion" +msgid "Reaction/Diffusion" msgstr "" #: hacks/config/rd-bomb.xml.h:16 diff --git a/po/nb.po b/po/nb.po index ad5039b5..43f85fc4 100644 --- a/po/nb.po +++ b/po/nb.po @@ -2190,7 +2190,7 @@ msgid "Bouboule" msgstr "Bouboule" #: hacks/config/bouboule.xml.h:2 hacks/config/rocks.xml.h:3 -msgid "Do Red/Blue 3D seperation" +msgid "Do Red/Blue 3D separation" msgstr "Utfør rød/blå 3D-separasjon" #: hacks/config/bouboule.xml.h:7 @@ -6274,27 +6274,27 @@ msgid "Fertility" msgstr "Fruktbarhet" #: hacks/config/petri.xml.h:12 -msgid "Maxium Lifespan" +msgid "Maximum Lifespan" msgstr "" #: hacks/config/petri.xml.h:13 -msgid "Maxium Rate of Death" +msgid "Maximum Rate of Death" msgstr "" #: hacks/config/petri.xml.h:14 -msgid "Maxium Rate of Growth" +msgid "Maximum Rate of Growth" msgstr "" #: hacks/config/petri.xml.h:15 -msgid "Minium Lifespan" +msgid "Minimum Lifespan" msgstr "" #: hacks/config/petri.xml.h:16 -msgid "Minium Rate of Death" +msgid "Minimum Rate of Death" msgstr "" #: hacks/config/petri.xml.h:17 -msgid "Minium Rate of Growth" +msgid "Minimum Rate of Growth" msgstr "" #: hacks/config/petri.xml.h:18 @@ -7360,7 +7360,7 @@ msgid "RD-Bomb" msgstr "RD-bombe" #: hacks/config/rd-bomb.xml.h:15 -msgid "Reaction/Difusion" +msgid "Reaction/Diffusion" msgstr "" #: hacks/config/rd-bomb.xml.h:16 diff --git a/po/nl.po b/po/nl.po index 3e95db63..a3b501a9 100644 --- a/po/nl.po +++ b/po/nl.po @@ -2323,7 +2323,7 @@ msgid "Bouboule" msgstr "Bouboule" #: hacks/config/bouboule.xml.h:2 hacks/config/rocks.xml.h:3 -msgid "Do Red/Blue 3D seperation" +msgid "Do Red/Blue 3D separation" msgstr "Gebruik rood/blauw 3D scheiding" #: hacks/config/bouboule.xml.h:7 @@ -6439,27 +6439,27 @@ msgid "Fertility" msgstr "Vruchtbaarheid" #: hacks/config/petri.xml.h:12 -msgid "Maxium Lifespan" +msgid "Maximum Lifespan" msgstr "Maximale Levensduur" #: hacks/config/petri.xml.h:13 -msgid "Maxium Rate of Death" +msgid "Maximum Rate of Death" msgstr "Maximum Doodssnelheid" #: hacks/config/petri.xml.h:14 -msgid "Maxium Rate of Growth" +msgid "Maximum Rate of Growth" msgstr "Maximum Groeisnelheid" #: hacks/config/petri.xml.h:15 -msgid "Minium Lifespan" +msgid "Minimum Lifespan" msgstr "Minimum Levensverwachting" #: hacks/config/petri.xml.h:16 -msgid "Minium Rate of Death" +msgid "Minimum Rate of Death" msgstr "Minimum Snelheid van Doodgaan" #: hacks/config/petri.xml.h:17 -msgid "Minium Rate of Growth" +msgid "Minimum Rate of Growth" msgstr "Minimum Groeisnelheid" #: hacks/config/petri.xml.h:18 @@ -7565,7 +7565,7 @@ msgid "RD-Bomb" msgstr "Rd-Bom" #: hacks/config/rd-bomb.xml.h:15 -msgid "Reaction/Difusion" +msgid "Reaction/Diffusion" msgstr "Reactie/Diffusie" #: hacks/config/rd-bomb.xml.h:16 diff --git a/po/no.po b/po/no.po index ad5039b5..43f85fc4 100644 --- a/po/no.po +++ b/po/no.po @@ -2190,7 +2190,7 @@ msgid "Bouboule" msgstr "Bouboule" #: hacks/config/bouboule.xml.h:2 hacks/config/rocks.xml.h:3 -msgid "Do Red/Blue 3D seperation" +msgid "Do Red/Blue 3D separation" msgstr "Utfør rød/blå 3D-separasjon" #: hacks/config/bouboule.xml.h:7 @@ -6274,27 +6274,27 @@ msgid "Fertility" msgstr "Fruktbarhet" #: hacks/config/petri.xml.h:12 -msgid "Maxium Lifespan" +msgid "Maximum Lifespan" msgstr "" #: hacks/config/petri.xml.h:13 -msgid "Maxium Rate of Death" +msgid "Maximum Rate of Death" msgstr "" #: hacks/config/petri.xml.h:14 -msgid "Maxium Rate of Growth" +msgid "Maximum Rate of Growth" msgstr "" #: hacks/config/petri.xml.h:15 -msgid "Minium Lifespan" +msgid "Minimum Lifespan" msgstr "" #: hacks/config/petri.xml.h:16 -msgid "Minium Rate of Death" +msgid "Minimum Rate of Death" msgstr "" #: hacks/config/petri.xml.h:17 -msgid "Minium Rate of Growth" +msgid "Minimum Rate of Growth" msgstr "" #: hacks/config/petri.xml.h:18 @@ -7360,7 +7360,7 @@ msgid "RD-Bomb" msgstr "RD-bombe" #: hacks/config/rd-bomb.xml.h:15 -msgid "Reaction/Difusion" +msgid "Reaction/Diffusion" msgstr "" #: hacks/config/rd-bomb.xml.h:16 diff --git a/po/pl.po b/po/pl.po index 1549c4ae..f656d083 100644 --- a/po/pl.po +++ b/po/pl.po @@ -2242,7 +2242,7 @@ msgid "Bouboule" msgstr "Bouboule" #: hacks/config/bouboule.xml.h:2 hacks/config/rocks.xml.h:3 -msgid "Do Red/Blue 3D seperation" +msgid "Do Red/Blue 3D separation" msgstr "Separacja czerwonego i niebieskiego." #: hacks/config/bouboule.xml.h:7 @@ -6373,27 +6373,27 @@ msgid "Fertility" msgstr "" #: hacks/config/petri.xml.h:12 -msgid "Maxium Lifespan" +msgid "Maximum Lifespan" msgstr "" #: hacks/config/petri.xml.h:13 -msgid "Maxium Rate of Death" +msgid "Maximum Rate of Death" msgstr "" #: hacks/config/petri.xml.h:14 -msgid "Maxium Rate of Growth" +msgid "Maximum Rate of Growth" msgstr "" #: hacks/config/petri.xml.h:15 -msgid "Minium Lifespan" +msgid "Minimum Lifespan" msgstr "" #: hacks/config/petri.xml.h:16 -msgid "Minium Rate of Death" +msgid "Minimum Rate of Death" msgstr "" #: hacks/config/petri.xml.h:17 -msgid "Minium Rate of Growth" +msgid "Minimum Rate of Growth" msgstr "" #: hacks/config/petri.xml.h:18 @@ -7447,7 +7447,7 @@ msgid "RD-Bomb" msgstr "RD-Bomb" #: hacks/config/rd-bomb.xml.h:15 -msgid "Reaction/Difusion" +msgid "Reaction/Diffusion" msgstr "" #: hacks/config/rd-bomb.xml.h:16 diff --git a/po/pt.po b/po/pt.po index c3e760b4..64cd5fb4 100644 --- a/po/pt.po +++ b/po/pt.po @@ -2343,7 +2343,7 @@ msgid "Bouboule" msgstr "Bouboule" #: hacks/config/bouboule.xml.h:2 hacks/config/rocks.xml.h:3 -msgid "Do Red/Blue 3D seperation" +msgid "Do Red/Blue 3D separation" msgstr "Efectuar separações 3D Vermelho/Azul" #: hacks/config/bouboule.xml.h:7 @@ -6711,27 +6711,27 @@ msgid "Fertility" msgstr "Fertilidade" #: hacks/config/petri.xml.h:12 -msgid "Maxium Lifespan" +msgid "Maximum Lifespan" msgstr "Tempo Máximo Vida" #: hacks/config/petri.xml.h:13 -msgid "Maxium Rate of Death" +msgid "Maximum Rate of Death" msgstr "Taxa Máxima de Mortalidade" #: hacks/config/petri.xml.h:14 -msgid "Maxium Rate of Growth" +msgid "Maximum Rate of Growth" msgstr "Taxa Máxima de Crescimento" #: hacks/config/petri.xml.h:15 -msgid "Minium Lifespan" +msgid "Minimum Lifespan" msgstr "Tempo Mínimo Vida" #: hacks/config/petri.xml.h:16 -msgid "Minium Rate of Death" +msgid "Minimum Rate of Death" msgstr "Taxa Mínima de Mortalidade" #: hacks/config/petri.xml.h:17 -msgid "Minium Rate of Growth" +msgid "Minimum Rate of Growth" msgstr "Taxa Mínima de Crescimento" #: hacks/config/petri.xml.h:18 @@ -7859,7 +7859,7 @@ msgid "RD-Bomb" msgstr "Bomba-RD" #: hacks/config/rd-bomb.xml.h:15 -msgid "Reaction/Difusion" +msgid "Reaction/Diffusion" msgstr "Reacção/Difusão" #: hacks/config/rd-bomb.xml.h:16 diff --git a/po/pt_BR.po b/po/pt_BR.po index dcb52fb8..15d310b2 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -2145,7 +2145,7 @@ msgid "Bouboule" msgstr "" #: hacks/config/bouboule.xml.h:2 hacks/config/rocks.xml.h:3 -msgid "Do Red/Blue 3D seperation" +msgid "Do Red/Blue 3D separation" msgstr "" #: hacks/config/bouboule.xml.h:7 @@ -6034,27 +6034,27 @@ msgid "Fertility" msgstr "" #: hacks/config/petri.xml.h:12 -msgid "Maxium Lifespan" +msgid "Maximum Lifespan" msgstr "" #: hacks/config/petri.xml.h:13 -msgid "Maxium Rate of Death" +msgid "Maximum Rate of Death" msgstr "" #: hacks/config/petri.xml.h:14 -msgid "Maxium Rate of Growth" +msgid "Maximum Rate of Growth" msgstr "" #: hacks/config/petri.xml.h:15 -msgid "Minium Lifespan" +msgid "Minimum Lifespan" msgstr "" #: hacks/config/petri.xml.h:16 -msgid "Minium Rate of Death" +msgid "Minimum Rate of Death" msgstr "" #: hacks/config/petri.xml.h:17 -msgid "Minium Rate of Growth" +msgid "Minimum Rate of Growth" msgstr "" #: hacks/config/petri.xml.h:18 @@ -7088,7 +7088,7 @@ msgid "RD-Bomb" msgstr "" #: hacks/config/rd-bomb.xml.h:15 -msgid "Reaction/Difusion" +msgid "Reaction/Diffusion" msgstr "" #: hacks/config/rd-bomb.xml.h:16 diff --git a/po/ru.po b/po/ru.po index c51f8d70..1720643d 100644 --- a/po/ru.po +++ b/po/ru.po @@ -2222,7 +2222,7 @@ msgid "Bouboule" msgstr "" #: hacks/config/bouboule.xml.h:2 hacks/config/rocks.xml.h:3 -msgid "Do Red/Blue 3D seperation" +msgid "Do Red/Blue 3D separation" msgstr "" #: hacks/config/bouboule.xml.h:7 @@ -6196,27 +6196,27 @@ msgid "Fertility" msgstr "" #: hacks/config/petri.xml.h:12 -msgid "Maxium Lifespan" +msgid "Maximum Lifespan" msgstr "" #: hacks/config/petri.xml.h:13 -msgid "Maxium Rate of Death" +msgid "Maximum Rate of Death" msgstr "" #: hacks/config/petri.xml.h:14 -msgid "Maxium Rate of Growth" +msgid "Maximum Rate of Growth" msgstr "" #: hacks/config/petri.xml.h:15 -msgid "Minium Lifespan" +msgid "Minimum Lifespan" msgstr "" #: hacks/config/petri.xml.h:16 -msgid "Minium Rate of Death" +msgid "Minimum Rate of Death" msgstr "" #: hacks/config/petri.xml.h:17 -msgid "Minium Rate of Growth" +msgid "Minimum Rate of Growth" msgstr "" #: hacks/config/petri.xml.h:18 diff --git a/po/sk.po b/po/sk.po index 61eb7f6c..7c71fb08 100644 --- a/po/sk.po +++ b/po/sk.po @@ -2213,7 +2213,7 @@ msgid "Bouboule" msgstr "" #: hacks/config/bouboule.xml.h:2 hacks/config/rocks.xml.h:3 -msgid "Do Red/Blue 3D seperation" +msgid "Do Red/Blue 3D separation" msgstr "" #: hacks/config/bouboule.xml.h:7 @@ -6279,27 +6279,27 @@ msgid "Fertility" msgstr "" #: hacks/config/petri.xml.h:12 -msgid "Maxium Lifespan" +msgid "Maximum Lifespan" msgstr "" #: hacks/config/petri.xml.h:13 -msgid "Maxium Rate of Death" +msgid "Maximum Rate of Death" msgstr "" #: hacks/config/petri.xml.h:14 -msgid "Maxium Rate of Growth" +msgid "Maximum Rate of Growth" msgstr "" #: hacks/config/petri.xml.h:15 -msgid "Minium Lifespan" +msgid "Minimum Lifespan" msgstr "" #: hacks/config/petri.xml.h:16 -msgid "Minium Rate of Death" +msgid "Minimum Rate of Death" msgstr "" #: hacks/config/petri.xml.h:17 -msgid "Minium Rate of Growth" +msgid "Minimum Rate of Growth" msgstr "" #: hacks/config/petri.xml.h:18 @@ -7343,7 +7343,7 @@ msgid "RD-Bomb" msgstr "" #: hacks/config/rd-bomb.xml.h:15 -msgid "Reaction/Difusion" +msgid "Reaction/Diffusion" msgstr "" #: hacks/config/rd-bomb.xml.h:16 diff --git a/po/sv.po b/po/sv.po index 547f0366..996322d4 100644 --- a/po/sv.po +++ b/po/sv.po @@ -3,7 +3,7 @@ # Martin Wahlen , 1998, 1999. # Christian Rose , 2000, 2001, 2002. # -# $Id: sv.po,v 1.13 2006/03/28 07:26:34 jwz Exp $ +# $Id: sv.po,v 1.14 2006/09/14 08:08:04 jwz Exp $ # msgid "" msgstr "" @@ -2270,7 +2270,7 @@ msgstr "Bouboule" #: hacks/config/bouboule.xml.h:2 hacks/config/rocks.xml.h:3 #, fuzzy -msgid "Do Red/Blue 3D seperation" +msgid "Do Red/Blue 3D separation" msgstr "Använd röd/blÃ¥ 3d-separation." #: hacks/config/bouboule.xml.h:7 @@ -6591,27 +6591,27 @@ msgid "Fertility" msgstr "" #: hacks/config/petri.xml.h:12 -msgid "Maxium Lifespan" +msgid "Maximum Lifespan" msgstr "" #: hacks/config/petri.xml.h:13 -msgid "Maxium Rate of Death" +msgid "Maximum Rate of Death" msgstr "" #: hacks/config/petri.xml.h:14 -msgid "Maxium Rate of Growth" +msgid "Maximum Rate of Growth" msgstr "" #: hacks/config/petri.xml.h:15 -msgid "Minium Lifespan" +msgid "Minimum Lifespan" msgstr "" #: hacks/config/petri.xml.h:16 -msgid "Minium Rate of Death" +msgid "Minimum Rate of Death" msgstr "" #: hacks/config/petri.xml.h:17 -msgid "Minium Rate of Growth" +msgid "Minimum Rate of Growth" msgstr "" #: hacks/config/petri.xml.h:18 @@ -7683,7 +7683,7 @@ msgid "RD-Bomb" msgstr "" #: hacks/config/rd-bomb.xml.h:15 -msgid "Reaction/Difusion" +msgid "Reaction/Diffusion" msgstr "" #: hacks/config/rd-bomb.xml.h:16 diff --git a/po/vi.po b/po/vi.po index 8fbac8d6..a6d556c4 100644 --- a/po/vi.po +++ b/po/vi.po @@ -6335,27 +6335,27 @@ msgid "Fertility" msgstr "Màu mỡ" #: hacks/config/petri.xml.h:12 -msgid "Maxium Lifespan" +msgid "Maximum Lifespan" msgstr "" #: hacks/config/petri.xml.h:13 -msgid "Maxium Rate of Death" +msgid "Maximum Rate of Death" msgstr "" #: hacks/config/petri.xml.h:14 -msgid "Maxium Rate of Growth" +msgid "Maximum Rate of Growth" msgstr "" #: hacks/config/petri.xml.h:15 -msgid "Minium Lifespan" +msgid "Minimum Lifespan" msgstr "" #: hacks/config/petri.xml.h:16 -msgid "Minium Rate of Death" +msgid "Minimum Rate of Death" msgstr "" #: hacks/config/petri.xml.h:17 -msgid "Minium Rate of Growth" +msgid "Minimum Rate of Growth" msgstr "" #: hacks/config/petri.xml.h:18 @@ -7427,7 +7427,7 @@ msgid "RD-Bomb" msgstr "RD-Bomb" #: hacks/config/rd-bomb.xml.h:15 -msgid "Reaction/Difusion" +msgid "Reaction/Diffusion" msgstr "" #: hacks/config/rd-bomb.xml.h:16 diff --git a/po/wa.po b/po/wa.po index a8845243..6baee281 100644 --- a/po/wa.po +++ b/po/wa.po @@ -2174,7 +2174,7 @@ msgid "Bouboule" msgstr "Bouboule" #: hacks/config/bouboule.xml.h:2 hacks/config/rocks.xml.h:3 -msgid "Do Red/Blue 3D seperation" +msgid "Do Red/Blue 3D separation" msgstr "SeparÃ¥cion rodje/bleu pol 3D" #: hacks/config/bouboule.xml.h:7 @@ -6201,27 +6201,27 @@ msgid "Fertility" msgstr "" #: hacks/config/petri.xml.h:12 -msgid "Maxium Lifespan" +msgid "Maximum Lifespan" msgstr "" #: hacks/config/petri.xml.h:13 -msgid "Maxium Rate of Death" +msgid "Maximum Rate of Death" msgstr "" #: hacks/config/petri.xml.h:14 -msgid "Maxium Rate of Growth" +msgid "Maximum Rate of Growth" msgstr "" #: hacks/config/petri.xml.h:15 -msgid "Minium Lifespan" +msgid "Minimum Lifespan" msgstr "" #: hacks/config/petri.xml.h:16 -msgid "Minium Rate of Death" +msgid "Minimum Rate of Death" msgstr "" #: hacks/config/petri.xml.h:17 -msgid "Minium Rate of Growth" +msgid "Minimum Rate of Growth" msgstr "" #: hacks/config/petri.xml.h:18 @@ -7265,7 +7265,7 @@ msgid "RD-Bomb" msgstr "" #: hacks/config/rd-bomb.xml.h:15 -msgid "Reaction/Difusion" +msgid "Reaction/Diffusion" msgstr "" #: hacks/config/rd-bomb.xml.h:16 diff --git a/po/zh_CN.po b/po/zh_CN.po index 56d5e5da..55051c85 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -7551,7 +7551,7 @@ msgid "RD-Bomb" msgstr "" #: hacks/config/rd-bomb.xml.h:15 -msgid "Reaction/Difusion" +msgid "Reaction/Diffusion" msgstr "" #: hacks/config/rd-bomb.xml.h:16 diff --git a/po/zh_TW.po b/po/zh_TW.po index 1303e2de..ef3507fc 100644 --- a/po/zh_TW.po +++ b/po/zh_TW.po @@ -2233,7 +2233,7 @@ msgid "Bouboule" msgstr "Bouboule" #: hacks/config/bouboule.xml.h:2 hacks/config/rocks.xml.h:3 -msgid "Do Red/Blue 3D seperation" +msgid "Do Red/Blue 3D separation" msgstr "" #: hacks/config/bouboule.xml.h:7 @@ -7453,7 +7453,7 @@ msgid "RD-Bomb" msgstr "" #: hacks/config/rd-bomb.xml.h:15 -msgid "Reaction/Difusion" +msgid "Reaction/Diffusion" msgstr "" #: hacks/config/rd-bomb.xml.h:16 diff --git a/utils/erase.c b/utils/erase.c index feefd69d..4e7a9d40 100644 --- a/utils/erase.c +++ b/utils/erase.c @@ -451,7 +451,7 @@ random_squares (eraser_state *st) { st->cols = 10 + random() % 30; size = st->width / st->cols; - rows = (st->height / size) + 1; + rows = (size ? (st->height / size) : 0) + 1; st->nlines = st->cols * rows; st->lines = (int *) calloc (st->nlines, sizeof(*st->lines)); @@ -469,7 +469,7 @@ random_squares (eraser_state *st) } size = st->width / st->cols; - rows = (st->height / size) + 1; + rows = (size ? (st->height / size) : 0) + 1; for (i = st->nlines * st->prev_ratio; i < st->nlines * st->ratio; diff --git a/utils/version.h b/utils/version.h index 0f8a2bdf..ddc6f5dd 100644 --- a/utils/version.h +++ b/utils/version.h @@ -1,2 +1,2 @@ static const char screensaver_id[] = - "@(#)xscreensaver 5.00 (23-May-2006), by Jamie Zawinski (jwz@jwz.org)"; + "@(#)xscreensaver 5.01 (18-Sep-2006), by Jamie Zawinski (jwz@jwz.org)"; diff --git a/xscreensaver.spec b/xscreensaver.spec index e6fcbc51..5b6a47ce 100644 --- a/xscreensaver.spec +++ b/xscreensaver.spec @@ -1,5 +1,5 @@ %define name xscreensaver -%define version 5.00 +%define version 5.01 Summary: X screen saver and locker Name: %{name}