[SCM] audacious/master: Imported Upstream version 3.2

davromaniak-guest at users.alioth.debian.org davromaniak-guest at users.alioth.debian.org
Wed Jan 25 20:58:15 UTC 2012


The following commit has been merged in the master branch:
commit de557c9169bd7b74b5126b8c6192c6251d03407c
Author: Cyril Lavier <cyril.lavier at davromaniak.eu>
Date:   Wed Jan 25 21:52:25 2012 +0100

    Imported Upstream version 3.2

diff --git a/AUTHORS b/AUTHORS
index b8270d2..0978282 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -1,4 +1,44 @@
-Audacious (C) GPL 2005-2009
+Audacious
+=========
+
+This file is quite out of date and in the process of being updated.
+
+Audacious core shared library (src/libaudcore):
+ * Copyright (C) 2006-2011:
+  Daniel Barkalow
+  Christian Birchinger
+  Ralf Ertzinger
+  Maciej Grela
+  Matti Hämäläinen
+  John Lindgren
+  Giacomo Lozito
+  William Pitcock
+  Tony Vroon
+  Yoshiki Yazawa
+  Eugene Zagidullin
+
+Audacious user interface shared library (src/libaudgui):
+ * Copyright (C) 1998-2003 XMMS development team
+ * Copyright (C) 2003-2004 BMP development team
+ * Copyright (C) 2006-2012:
+  Carlo Bramini
+  Michael Färber
+  Jussi Judin
+  John Lindgren
+  Giacomo Lozito
+  Tomasz Moń
+  William Pitcock
+  Yoshiki Yazawa
+  Eugene Zagidullin
+
+Session management support (src/libeggsmclient):
+ * Copyright (C) 1999-2000 Red Hat, Inc.
+ * Copyright (C) 2001 George Lebl
+ * Copyright (C) 2007 Novell, Inc.
+
+
+Old AUTHORS file
+================
 
 Authors listed alphabetically, by last name:
 --------------------------------------------
diff --git a/COPYING b/COPYING
index 0f18405..3c66728 100644
--- a/COPYING
+++ b/COPYING
@@ -22,10 +22,9 @@ this program.  If not, see <http://www.gnu.org/licenses/>.
 
  ***
 
-The files src/audacious/images/{album appearance audio connectivity
-menu_playlist menu_plugin menu_queue_toggle playlist plugins replay_gain}.png
-are taken from the icon theme of Gnome 2.30.3 and are distributed under the
-following terms:
+The files src/audacious/images/{album audio connectivity menu_playlist
+menu_plugin menu_queue_toggle playlist plugins}.png are taken from the icon
+theme of Gnome 2.30.3 and are distributed under the following terms:
 
 Copyright (C) Ulisse Perusin, Riccardo Buzzotta, Josef Vybíral, Hylke Bons,
  Ricardo González, Lapo Calamandrei, Rodney Dawes, Luca Ferretti, Tuomas
diff --git a/INSTALL b/INSTALL
index 23e5f25..7d1c323 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,16 +1,25 @@
 Installation Instructions
 *************************
 
-Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free
-Software Foundation, Inc.
+Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
+2006, 2007, 2008, 2009 Free Software Foundation, Inc.
 
-This file is free documentation; the Free Software Foundation gives
-unlimited permission to copy, distribute and modify it.
+   Copying and distribution of this file, with or without modification,
+are permitted in any medium without royalty provided the copyright
+notice and this notice are preserved.  This file is offered as-is,
+without warranty of any kind.
 
 Basic Installation
 ==================
 
-These are generic installation instructions.
+   Briefly, the shell commands `./configure; make; make install' should
+configure, build, and install this package.  The following
+more-detailed instructions are generic; see the `README' file for
+instructions specific to this package.  Some packages provide this
+`INSTALL' file but do not implement all of the features documented
+below.  The lack of an optional feature in a given package is not
+necessarily a bug.  More recommendations for GNU packages can be found
+in *note Makefile Conventions: (standards)Makefile Conventions.
 
    The `configure' shell script attempts to guess correct values for
 various system-dependent variables used during compilation.  It uses
@@ -23,9 +32,9 @@ debugging `configure').
 
    It can also use an optional file (typically called `config.cache'
 and enabled with `--cache-file=config.cache' or simply `-C') that saves
-the results of its tests to speed up reconfiguring.  (Caching is
+the results of its tests to speed up reconfiguring.  Caching is
 disabled by default to prevent problems with accidental use of stale
-cache files.)
+cache files.
 
    If you need to do unusual things to compile the package, please try
 to figure out how `configure' could check whether to do them, and mail
@@ -35,30 +44,37 @@ some point `config.cache' contains results you don't want to keep, you
 may remove or edit it.
 
    The file `configure.ac' (or `configure.in') is used to create
-`configure' by a program called `autoconf'.  You only need
-`configure.ac' if you want to change it or regenerate `configure' using
-a newer version of `autoconf'.
+`configure' by a program called `autoconf'.  You need `configure.ac' if
+you want to change it or regenerate `configure' using a newer version
+of `autoconf'.
 
-The simplest way to compile this package is:
+   The simplest way to compile this package is:
 
   1. `cd' to the directory containing the package's source code and type
-     `./configure' to configure the package for your system.  If you're
-     using `csh' on an old version of System V, you might need to type
-     `sh ./configure' instead to prevent `csh' from trying to execute
-     `configure' itself.
+     `./configure' to configure the package for your system.
 
-     Running `configure' takes awhile.  While running, it prints some
-     messages telling which features it is checking for.
+     Running `configure' might take a while.  While running, it prints
+     some messages telling which features it is checking for.
 
   2. Type `make' to compile the package.
 
   3. Optionally, type `make check' to run any self-tests that come with
-     the package.
+     the package, generally using the just-built uninstalled binaries.
 
   4. Type `make install' to install the programs and any data files and
-     documentation.
-
-  5. You can remove the program binaries and object files from the
+     documentation.  When installing into a prefix owned by root, it is
+     recommended that the package be configured and built as a regular
+     user, and only the `make install' phase executed with root
+     privileges.
+
+  5. Optionally, type `make installcheck' to repeat any self-tests, but
+     this time using the binaries in their final installed location.
+     This target does not install anything.  Running this target as a
+     regular user, particularly if the prior `make install' required
+     root privileges, verifies that the installation completed
+     correctly.
+
+  6. You can remove the program binaries and object files from the
      source code directory by typing `make clean'.  To also remove the
      files that `configure' created (so you can compile the package for
      a different kind of computer), type `make distclean'.  There is
@@ -67,45 +83,69 @@ The simplest way to compile this package is:
      all sorts of other programs in order to regenerate files that came
      with the distribution.
 
+  7. Often, you can also type `make uninstall' to remove the installed
+     files again.  In practice, not all packages have tested that
+     uninstallation works correctly, even though it is required by the
+     GNU Coding Standards.
+
+  8. Some packages, particularly those that use Automake, provide `make
+     distcheck', which can by used by developers to test that all other
+     targets like `make install' and `make uninstall' work correctly.
+     This target is generally not run by end users.
+
 Compilers and Options
 =====================
 
-Some systems require unusual options for compilation or linking that the
-`configure' script does not know about.  Run `./configure --help' for
-details on some of the pertinent environment variables.
+   Some systems require unusual options for compilation or linking that
+the `configure' script does not know about.  Run `./configure --help'
+for details on some of the pertinent environment variables.
 
    You can give `configure' initial values for configuration parameters
 by setting variables in the command line or in the environment.  Here
 is an example:
 
-     ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
+     ./configure CC=c99 CFLAGS=-g LIBS=-lposix
 
    *Note Defining Variables::, for more details.
 
 Compiling For Multiple Architectures
 ====================================
 
-You can compile the package for more than one kind of computer at the
+   You can compile the package for more than one kind of computer at the
 same time, by placing the object files for each architecture in their
-own directory.  To do this, you must use a version of `make' that
-supports the `VPATH' variable, such as GNU `make'.  `cd' to the
+own directory.  To do this, you can use GNU `make'.  `cd' to the
 directory where you want the object files and executables to go and run
 the `configure' script.  `configure' automatically checks for the
-source code in the directory that `configure' is in and in `..'.
+source code in the directory that `configure' is in and in `..'.  This
+is known as a "VPATH" build.
+
+   With a non-GNU `make', it is safer to compile the package for one
+architecture at a time in the source code directory.  After you have
+installed the package for one architecture, use `make distclean' before
+reconfiguring for another architecture.
 
-   If you have to use a `make' that does not support the `VPATH'
-variable, you have to compile the package for one architecture at a
-time in the source code directory.  After you have installed the
-package for one architecture, use `make distclean' before reconfiguring
-for another architecture.
+   On MacOS X 10.5 and later systems, you can create libraries and
+executables that work on multiple system types--known as "fat" or
+"universal" binaries--by specifying multiple `-arch' options to the
+compiler but only a single `-arch' option to the preprocessor.  Like
+this:
+
+     ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
+                 CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
+                 CPP="gcc -E" CXXCPP="g++ -E"
+
+   This is not guaranteed to produce working output in all cases, you
+may have to build one architecture at a time and combine the results
+using the `lipo' tool if you have problems.
 
 Installation Names
 ==================
 
-By default, `make install' installs the package's commands under
+   By default, `make install' installs the package's commands under
 `/usr/local/bin', include files under `/usr/local/include', etc.  You
 can specify an installation prefix other than `/usr/local' by giving
-`configure' the option `--prefix=PREFIX'.
+`configure' the option `--prefix=PREFIX', where PREFIX must be an
+absolute file name.
 
    You can specify separate installation prefixes for
 architecture-specific files and architecture-independent files.  If you
@@ -116,16 +156,47 @@ Documentation and other data files still use the regular prefix.
    In addition, if you use an unusual directory layout you can give
 options like `--bindir=DIR' to specify different values for particular
 kinds of files.  Run `configure --help' for a list of the directories
-you can set and what kinds of files go in them.
+you can set and what kinds of files go in them.  In general, the
+default for these options is expressed in terms of `${prefix}', so that
+specifying just `--prefix' will affect all of the other directory
+specifications that were not explicitly provided.
+
+   The most portable way to affect installation locations is to pass the
+correct locations to `configure'; however, many packages provide one or
+both of the following shortcuts of passing variable assignments to the
+`make install' command line to change installation locations without
+having to reconfigure or recompile.
+
+   The first method involves providing an override variable for each
+affected directory.  For example, `make install
+prefix=/alternate/directory' will choose an alternate location for all
+directory configuration variables that were expressed in terms of
+`${prefix}'.  Any directories that were specified during `configure',
+but not in terms of `${prefix}', must each be overridden at install
+time for the entire installation to be relocated.  The approach of
+makefile variable overrides for each directory variable is required by
+the GNU Coding Standards, and ideally causes no recompilation.
+However, some platforms have known limitations with the semantics of
+shared libraries that end up requiring recompilation when using this
+method, particularly noticeable in packages that use GNU Libtool.
+
+   The second method involves providing the `DESTDIR' variable.  For
+example, `make install DESTDIR=/alternate/directory' will prepend
+`/alternate/directory' before all installation names.  The approach of
+`DESTDIR' overrides is not required by the GNU Coding Standards, and
+does not work on platforms that have drive letters.  On the other hand,
+it does better at avoiding recompilation issues, and works well even
+when some directory options were not specified in terms of `${prefix}'
+at `configure' time.
+
+Optional Features
+=================
 
    If the package supports it, you can cause programs to be installed
 with an extra prefix or suffix on their names by giving `configure' the
 option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
 
-Optional Features
-=================
-
-Some packages pay attention to `--enable-FEATURE' options to
+   Some packages pay attention to `--enable-FEATURE' options to
 `configure', where FEATURE indicates an optional part of the package.
 They may also pay attention to `--with-PACKAGE' options, where PACKAGE
 is something like `gnu-as' or `x' (for the X Window System).  The
@@ -137,14 +208,53 @@ find the X include and library files automatically, but if it doesn't,
 you can use the `configure' options `--x-includes=DIR' and
 `--x-libraries=DIR' to specify their locations.
 
+   Some packages offer the ability to configure how verbose the
+execution of `make' will be.  For these packages, running `./configure
+--enable-silent-rules' sets the default to minimal output, which can be
+overridden with `make V=1'; while running `./configure
+--disable-silent-rules' sets the default to verbose, which can be
+overridden with `make V=0'.
+
+Particular systems
+==================
+
+   On HP-UX, the default C compiler is not ANSI C compatible.  If GNU
+CC is not installed, it is recommended to use the following options in
+order to use an ANSI C compiler:
+
+     ./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
+
+and if that doesn't work, install pre-built binaries of GCC for HP-UX.
+
+   On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
+parse its `<wchar.h>' header file.  The option `-nodtk' can be used as
+a workaround.  If GNU CC is not installed, it is therefore recommended
+to try
+
+     ./configure CC="cc"
+
+and if that doesn't work, try
+
+     ./configure CC="cc -nodtk"
+
+   On Solaris, don't put `/usr/ucb' early in your `PATH'.  This
+directory contains several dysfunctional programs; working variants of
+these programs are available in `/usr/bin'.  So, if you need `/usr/ucb'
+in your `PATH', put it _after_ `/usr/bin'.
+
+   On Haiku, software installed for all users goes in `/boot/common',
+not `/usr/local'.  It is recommended to use the following options:
+
+     ./configure --prefix=/boot/common
+
 Specifying the System Type
 ==========================
 
-There may be some features `configure' cannot figure out automatically,
-but needs to determine by the type of machine the package will run on.
-Usually, assuming the package is built to be run on the _same_
-architectures, `configure' can figure that out, but if it prints a
-message saying it cannot guess the machine type, give it the
+   There may be some features `configure' cannot figure out
+automatically, but needs to determine by the type of machine the package
+will run on.  Usually, assuming the package is built to be run on the
+_same_ architectures, `configure' can figure that out, but if it prints
+a message saying it cannot guess the machine type, give it the
 `--build=TYPE' option.  TYPE can either be a short name for the system
 type, such as `sun4', or a canonical name which has the form:
 
@@ -152,7 +262,8 @@ type, such as `sun4', or a canonical name which has the form:
 
 where SYSTEM can have one of these forms:
 
-     OS KERNEL-OS
+     OS
+     KERNEL-OS
 
    See the file `config.sub' for the possible values of each field.  If
 `config.sub' isn't included in this package, then this package doesn't
@@ -170,9 +281,9 @@ eventually be run) with `--host=TYPE'.
 Sharing Defaults
 ================
 
-If you want to set default values for `configure' scripts to share, you
-can create a site shell script called `config.site' that gives default
-values for variables like `CC', `cache_file', and `prefix'.
+   If you want to set default values for `configure' scripts to share,
+you can create a site shell script called `config.site' that gives
+default values for variables like `CC', `cache_file', and `prefix'.
 `configure' looks for `PREFIX/share/config.site' if it exists, then
 `PREFIX/etc/config.site' if it exists.  Or, you can set the
 `CONFIG_SITE' environment variable to the location of the site script.
@@ -181,7 +292,7 @@ A warning: not all `configure' scripts look for a site script.
 Defining Variables
 ==================
 
-Variables not defined in a site shell script can be set in the
+   Variables not defined in a site shell script can be set in the
 environment passed to `configure'.  However, some packages may run
 configure again during the build, and the customized values of these
 variables may be lost.  In order to avoid this problem, you should set
@@ -190,21 +301,29 @@ them in the `configure' command line, using `VAR=value'.  For example:
      ./configure CC=/usr/local2/bin/gcc
 
 causes the specified `gcc' to be used as the C compiler (unless it is
-overridden in the site shell script).  Here is a another example:
+overridden in the site shell script).
 
-     /bin/bash ./configure CONFIG_SHELL=/bin/bash
+Unfortunately, this technique does not work for `CONFIG_SHELL' due to
+an Autoconf bug.  Until the bug is fixed you can use this workaround:
 
-Here the `CONFIG_SHELL=/bin/bash' operand causes subsequent
-configuration-related scripts to be executed by `/bin/bash'.
+     CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
 
 `configure' Invocation
 ======================
 
-`configure' recognizes the following options to control how it operates.
+   `configure' recognizes the following options to control how it
+operates.
 
 `--help'
 `-h'
-     Print a summary of the options to `configure', and exit.
+     Print a summary of all of the options to `configure', and exit.
+
+`--help=short'
+`--help=recursive'
+     Print a summary of the options unique to this package's
+     `configure', and exit.  The `short' variant lists options used
+     only in the top level, while the `recursive' variant lists options
+     also present in any nested packages.
 
 `--version'
 `-V'
@@ -231,6 +350,16 @@ configuration-related scripts to be executed by `/bin/bash'.
      Look for the package's source code in directory DIR.  Usually
      `configure' can determine that directory automatically.
 
+`--prefix=DIR'
+     Use DIR as the installation prefix.  *note Installation Names::
+     for more details, including other options available for fine-tuning
+     the installation locations.
+
+`--no-create'
+`-n'
+     Run the configure checks, but stop before creating any output
+     files.
+
 `configure' also accepts some other, not widely useful, options.  Run
 `configure --help' for more details.
 
diff --git a/Mercurial-Access b/Mercurial-Access
deleted file mode 100644
index abbcfb1..0000000
--- a/Mercurial-Access
+++ /dev/null
@@ -1,13 +0,0 @@
-The atheme.org mercurial repository is available for anonymous read-only 
-access.
-
-To retrieve the audacious development branch from hg.atheme.org, do:
-   $ hg clone http://hg.atheme.org/audacious/ audacious-devel
-
-To retrieve the audacious stable branch from hg.atheme.org, do:
-   $ hg clone http://hg.atheme.org/release/audacious-$VERSION/
-
-   Where $VERSION is the stable major version, for example the latest
-   fixes and updates to 1.5-series of audacious would be in:
-
-   $ hg clone http://hg.atheme.org/release/audacious-1.5/
diff --git a/NEWS b/NEWS
deleted file mode 100644
index 431877c..0000000
--- a/NEWS
+++ /dev/null
@@ -1,248 +0,0 @@
-Ok, so like, we suck at writing NEWS files.  If you want to find out about
-bug fixes, use JIRA.  If you want to find out about source changes, read our
-Mercurial logs.
-
-Audacious 2.1.0 (2009-07-06)
-============================
-
-Enhancements
-------------
-* Newui was moved into a plugin and is now called 'gtkui'. It is
-  still not very complete, but has progressed some.
-* Sorting by album added.
-* Completely new, written from scratch alsa-ng output plugin, which
-  fixes many of the problems our old ALSA output plugin had; including
-  high CPU load with Intel-HDA.
-* Listing of available interfaces via 'audacious -i list'.
-* Added bs2b (Bauer stereophonic-to-binaural) headphone crossfade filter
-  effect plugin. It is designed to prevent listener fatigue by reducing the
-  super-stereo effect that headphones normally produce.
-* rootvis plugin was dropped, as it does not work on most systems anymore.
-* Some updated translations.
-
-Bugfixes
---------
-* Mouse wheel settings where removed (for now) from properties, because
-  they didn't actually do anything.  
-* Fixed problems with seeking that could occur under certain conditions.
-* Many fixes in newui/gtkui.
-* Fixed frenzied looping, 100% CPU when loading metadata is disabled.
-* Run visualization process only when a shown and playing.
-* Quit cleanly (and safely) on SIGINT/QUIT/TERM.
-* Fixed several race conditions and NULL-pointer dereferences.
-* New playlist scanner, which, related to above, is safer and more effective.
-* Fixed MPRIS interface's GetStatus, StatusChange and Quit functionality to
-  match the official MPRIS spec.
-* Bunch of LADSPA, cdaudio-ng, PulseAudio fixes and cleanups.
-* Remove bogus and unnecessary end-of-playback logic in vorbis plugin.
-* Fixed NEON transport plugin error reporting.
-* SID-plugin was synchronized with XMMS-SID codebase, with number of
-  enhancements and fixes.
-* Fixed SSE2 instruction set support checking in configure.
-* JACK output plugin got cleaned up and checking for JACK availability
-  was changed to use pkg-config.
-* And bunch of other bugfixes, cleanups, etc.
-
-Audacious 2.0.1 (2009-05-13)
-============================
-
-Bugfixes
---------
-* Math dealing with the over-commitment of the equalizer values has been corrected.
-  However, please note that the equalizer goes from literal -12dB to +12dB, which
-  can be a very major boost. So yes, the highest settings causing distortion on really
-  loud audio is *not a bug*.
-  We may drop this down to 6dB in both ways in 2.1, depending on how many complaints
-  we get.
-
-Audacious 2.0.0 (2009-05-12)
-============================
-This branch of Audacious represents a major restructuring of how the player
-itself works. Notably, the skinned UI is no longer part of core. There is an
-experimental 'skinless' UI which can be launched with 'audacious2 -i newui',
-but it is incomplete at this time. Patches accepted!
-
-Other notable enhancements include switching to GIO/GVFS from using stdio,
-which while raising our requirements to GLib 2.16, gives us the ability to
-do many things out of the box. This is a good thing.
-
-Enhancements
-------------
-* Everything between 1.5.0 and 1.5.1.
-* Lots of other stuff.
-* Playing streams no longer edits the config preferences. This is a
-  behavioural trait from XMMS.
-* Many plugins have been added, including experimental support for PSF2.
-* The projectM plugin now works with libprojectM 1.2.
-
-Bugfixes
---------
-* The equalizer preamp setting has been fixed.
-* --play-pause actually works correctly now, it broke a long time ago
-  when we started using DBus
-* MPRIS exported data now includes the track number
-* Behavioural issues while seeking when paused have been corrected.
-* `audtool help playback-seek-relative` no longer segfaults
-* The file information dialog is no longer destroyed when you close it,
-  but is hidden instead.
-* Many legacy XMMS behaviours have been corrected.
-* Handling of non-bitmap fonts have been corrected.
-* Tons of others which are less notable.
-
-New bugs
---------
-* Probably a lot! Test and report.
-
-Audacious 1.5.0 (2008-03-13)
-============================
-This is the last branch of Audacious that will support in Winamp2 skins
-in core. We are working on a new default UI for Audacious2 which provides
-a more metadata rich environment (while still be lightweight and fast).
-However, it is planned to implement support for Winamp2 skins as a plugin in
-the next version. No promises, though.
-
-It has been fun being seen as "rescuing XMMS" by the community; but this
-has never been our goal. Our goal has always been to develop the best
-possible player on Linux. This means that we are audiophiles, and we want
-our audio to sound as nice as possible. This has been our primary goal;
-not maintaining a Winamp2 skinned player. When we determined that the current
-UI implementation was getting in our way, we decided to rip it out. As such,
-the future of Winamp2 skins in Audacious is undefined, but they will probably
-be supported via a plugin.
-
-Enhancements
-------------
-* Everything between 1.4.1 and 1.4.7. (duh)
-* Ability to disable GTK+ theme suggestions provided by skins.
-* Entirely from scratch audio engine (libSAD) which supports:
-  - 16-bit audio
-  - 24-bit audio
-  - 32-bit audio
-  - IEEE floating point audio
-  - 28-bit fractional audio
-  - many weird obscure "audiophile" formats
-  and:
-  - high quality dithering/conversion/resampling to produce as
-    high quality audio as possible for your sound system.
-  - bit-exact passthrough of decoded audio (compare to
-    "kernel streaming" in foobar2000)
-  As a result, support for oldschool 8-bit soundcards has been
-  _dropped_. It's 2008, they haven't made such hardware since the
-  early 90's.
-  Additionally, codecs now send audio to audacious using their
-  native format; removing the need for costly implementation-specific
-  conversion functionality.
-* New unified metadata editing for most formats. Ability to see
-  "raw metadata"; the metadata which can be used in tuplez scripts.
-* Removal of the XMMS audio conversion engine in it's entirety.
-* Support for "virtual plugins"; the ability for a single module to
-  export up to thousands of plugins. This will be used more in Audacious2.
-* Many adjustments to the winamp2 skinengine.
-* Faster jump-to-file.
-* Implement support for session management.
-
-Bugfixes
---------
-* playlist_compare_artist(): Avoid NULL dereferences.
-  (Bugzilla #172, Bugzilla #168, Bugzilla #35).
-* Tons of memory leaks fixed.
-
-
-Audacious 1.4.1 (2007-11-17)
-============================
-
-Enhancements
-------------
-* The skin code has been tweaked a little to fix loading of
-  more substandard winamp skins.
-  (http://boards.nenolod.net/viewtopic.php?f=5&t=859)
-* Playlists now carry an atomic serial number in order to avoid
-  unnecessary reloading of metadata.
-* The command names used by audtool have been sanitized in order
-  to make some level of sense.
-* Add many new calls to libaudclient which were unimplemented after
-  DBus transition.
-* Add error reporting when Tuplez scripts fail to compile.
-* Use a hashtable of extension to codec candidate lists to speed up 
-  codec detection.
-* Make on demand codec detection use the hashtable to filter out unplayable 
-  files.
-* Codec detection is now done on demand by default. Due to the recent 
-  rework of the codec detection system, this is the recommended setting.
-  (Audacious can process a large directory in only a few seconds of blocking 
-   this way, and streams are entirely processed in background this way.)
-* Add codec and quality fields to MPRIS TrackInfo tuples sent over DBus.
-
-Bugfixes
---------
-* [Bugzilla #53]: UTF-8 validation gives false positives
-  (Reported by Kosma Moczek; Fixed by Yoshiki Yazawa)
-* [Bugzilla #20]: status icon plugin breaks the 'always on top' feature
-  (Reported by Dorian Scholz; Fixed by Tomasz Moń)
-* playback_get_length() was returning the typecode of FIELD_LENGTH, not
-  it's value
-* audctrl.h was dependent on #ifdef __cplusplus being a valid macro,
-  now we use G_BEGIN_DECLS/G_END_DECLS to handle that.
-* Fix doublesize issues on startup. (Gentoo #199071)
-* Fix possible glitches that could be triggered by a scrolling textbox,
-  when the skin is switched.
-* Fix improper handling of integer constants in the Tuplez 
-  compiler/evaluation engine.
-* Fix misleading assertion notice triggers when a URI fails to load.
-* Cope with Winamp2 skins which do not have dashes in numbers.bmp.
-
-
-Audacious 1.4.0 (2007-11-01)
-============================
-
-* Everything ;)
-
-
-Audacious 1.3.0 (2007-03-02)
-============================
-
-Enhancements
-------------
-* The playlist code has been rewritten using conditional variables, 
-  which has resulted in speed improvements for the playlist code overall.
-* The behaviour for detecting filemagic has been redone and is now more
-  scalable.
-* DoubleSize support has been improved significantly.
-* Race conditions in produce_audio() have been corrected.
-* The playlist editor is now properly drawn in shaded mode.
-* g_utf8_validate has been replaced with a more strict utf8 validator, 
-  which solves the encapsulated UTF-8 phenomenon properly.
-* The controlsocket code no longer uses the stack in an improper manner.
-* Behaviour regarding conversion of %20 in the playlist has been corrected.
-* Window decorations can now be enabled in preferences.
-* The translation templates have been simplified.
-* Support for translating plugins has been re-added.
-* The Jump-to-File code has been rewritten and now searches using 
-  regular expressions. In addition, the search is done without GTK 
-  queueing redraws for each entry, which has resulted in interface 
-  speedups.
-* The overall UI code has been reworked significantly and should be of 
-  better quality. Notable enhancements include support for UIManager xml
-  file declarations.
-* A facility for searching and selecting/acting upon entries in the 
-  playlist has been added.
-* Support for multiple playlists has been added, and a playlist manager 
-  has been added to manage them.
-* Audacious now uses libmcs to store it's settings, which allows for 
-  tighter desktop environment integration.
-* Audacious now supports the XDG BASEDIR standard.
-* A lot of XMMS and BMP code has been either removed or rewritten so 
-  that it is less confusing. This should allow for easier maintainability 
-  in the future.
-* Debugging tools have been added for tracking memory allocation and freeing.
-* A safe signaling implementation has been added.
-* A voiceprint visualizer mode has been added.
-* Support for changing the tint in the graphics of skins has been added.
-* InputPlugins now use an InputPlayback context to track activity 
-  instead of blindly pushing data down a potentially undefined pipeline.
-* Audacious now uses GOption to parse the commandline.
-
-Bugfixes
---------
-* Too many to count.
-
diff --git a/README b/README
index 0bfcd86..996fd74 100644
--- a/README
+++ b/README
@@ -503,12 +503,12 @@ Currently, we only provide source tarballs at:
 
    http://audacious-media-player.org/downloads
 
-Audacious source is managed and also available via Atheme.org
-Mercurial repository, refer to following web-page for information:
+Audacious source is managed and also available via the Atheme.org
+GIT repository, refer to following web-page for information:
 
    http://audacious-media-player.org/developers
 
-You may also want to read file "Mercurial-Access".
+You may also want to read file "GIT-Access".
 
 
 4.1. Obtaining Skins
diff --git a/acinclude.m4 b/acinclude.m4
index 5a1c0c4..6f6f293 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -1,16 +1,3 @@
-
-dnl ** ADD_PKG_REQUIRES([requirement])
-dnl ** Adds a dependency to package's pkg-config file.
-AC_DEFUN([ADD_PC_REQUIRES], [
-   if test "x$PC_REQUIRES" = "x"; then
-       PC_REQUIRES="$1"
-   else
-       PC_REQUIRES="$PC_REQUIRES, $1"
-   fi
-   AC_SUBST([PC_REQUIRES])
-])
-
-
 dnl ** AUD_CHECK_MODULE([define name], [module], [version required],
 dnl **     [informational name], [additional error message])
 dnl **
@@ -21,7 +8,6 @@ dnl **
 dnl ** AUD_CHECK_MODULE([GLIB], [gtk+-2.0], [>= 2.8.0], [Gtk+2], [See http://www.gtk.org/])
 AC_DEFUN([AUD_CHECK_MODULE], [
     PKG_CHECK_MODULES([$1], [$2 $3], [
-        ADD_PC_REQUIRES([$2 $3])
     ],[
         PKG_CHECK_EXISTS([$2], [
             cv_pkg_version=`$PKG_CONFIG --modversion "$2" 2>/dev/null`
@@ -142,6 +128,23 @@ define([aud_get_plugin_dirs_defined],[1])dnl
 ])dnl
 
 
+dnl Add $1 to CFLAGS and CXXFLAGS if supported
+dnl ------------------------------------------
+
+AC_DEFUN([AUD_CHECK_CFLAGS],[
+    AC_MSG_CHECKING([whether the C/C++ compiler supports $1])
+    OLDCFLAGS="$CFLAGS"
+    CFLAGS="$CFLAGS $1 -Werror"
+    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[return 0;])],[
+        AC_MSG_RESULT(yes)
+        CFLAGS="$OLDCFLAGS $1"
+        CXXFLAGS="$CXXFLAGS $1"
+    ],[
+        AC_MSG_RESULT(no)
+        CFLAGS="$OLDCFLAGS"
+    ])
+])
+
 
 dnl **
 dnl ** Common checks
@@ -150,20 +153,34 @@ AC_DEFUN([AUD_COMMON_PROGS], [
 
 dnl Check for C and C++ compilers
 dnl =============================
-AUD_CHECK_GNU_MAKE
-AC_PROG_CC
-AC_PROG_CXX
-AM_PROG_AS
-AC_ISC_POSIX
-AC_C_BIGENDIAN
+AC_REQUIRE([AC_PROG_CC])
+AC_REQUIRE([AC_PROG_CXX])
+AC_REQUIRE([AM_PROG_AS])
+AC_REQUIRE([AC_C_BIGENDIAN])
+AC_REQUIRE([AC_SYS_LARGEFILE])
 
 if test "x$GCC" = "xyes"; then
-    CFLAGS="$CFLAGS -Wall -pipe"
-    CXXFLAGS="$CXXFLAGS -pipe -Wall"
+    CFLAGS="$CFLAGS -std=gnu99 -Wall -pipe"
+    CXXFLAGS="$CXXFLAGS -Wall -pipe"
+    AUD_CHECK_CFLAGS(-Wtype-limits)
 fi
 
+dnl Enable "-Wl,-z,defs" only on Linux
+dnl ==============================
+AC_MSG_CHECKING([for Linux])
+case "$target" in
+    *linux*)
+        AC_MSG_RESULT([yes])
+        LDFLAGS="$LDFLAGS -Wl,-z,defs"
+        ;;
+    *)
+        AC_MSG_RESULT([no])
+        ;;
+esac
+
 dnl Checks for various programs
 dnl ===========================
+AUD_CHECK_GNU_MAKE
 AC_PROG_LN_S
 AC_PROG_MAKE_SET
 AC_PATH_PROG([RM], [rm])
@@ -172,85 +189,14 @@ AC_PATH_PROG([CP], [cp])
 AC_PATH_PROG([AR], [ar])
 AC_PATH_PROG([TR], [tr])
 AC_PATH_PROG([RANLIB], [ranlib])
+AC_PATH_PROG([WINDRES], [windres])
 
 dnl Check for Gtk+/GLib and pals
 dnl ============================
-AUD_CHECK_MODULE([GLIB], [glib-2.0], [>= 2.12.0], [Glib2])
-AUD_CHECK_MODULE([GTHREAD], [gthread-2.0], [>= 2.12.0], [gthread-2.0])
-
-if test $use_gtk3 = yes ; then
-    AUD_CHECK_MODULE([GTK], [gtk+-3.0], [>= 3.0.0], [Gtk+3])
-else
-    AUD_CHECK_MODULE([GTK], [gtk+-2.0], [>= 2.8.0], [Gtk+2])
-fi
-
-AUD_CHECK_MODULE([PANGO], [pango], [>= 1.8.0], [Pango])
-AUD_CHECK_MODULE([CAIRO], [cairo], [>= 1.2.4], [Cairo])
-
-
-dnl Check for libmowgli
-dnl ===================
-AUD_CHECK_MODULE([MOWGLI], [libmowgli], [>= 0.9], [libmowgli],
-    [http://www.atheme.org/projects/mowgli.shtml])
-
-
-dnl Check for libmcs
-dnl ================
-AUD_CHECK_MODULE([LIBMCS], [libmcs], [>= 0.7], [libmcs],
-    [http://www.atheme.org/projects/mcs.shtml])
-
-
-dnl SSE2 support
-dnl ============
-AUD_ARG_ENABLE([sse2], [yes], [SSE2 support],
-[
-    AC_MSG_CHECKING([SSE2 support])
-    aud_my_save_CFLAGS="$CFLAGS"
-    CFLAGS="-msse2"
-    AC_TRY_RUN([
-#include <emmintrin.h>
-int main()
-{
-  _mm_setzero_pd();
-  asm volatile("xorpd %xmm0,%xmm0\n\t");
-  return 0;
-}
-    ],[
-        AC_MSG_RESULT([yes])
-        AC_DEFINE([HAVE_SSE2], 1, [Define to 1 if your system has SSE2 support])
-        SIMD_CFLAGS="-msse2"
-    ],[
-        AC_MSG_RESULT([no])
-        enable_sse2="no"
-    ])
-    AC_SUBST([SIMD_CFLAGS])
-    CFLAGS="$aud_my_save_CFLAGS"
-])
-
-dnl AltiVec support
-dnl ===============
-AUD_ARG_ENABLE([altivec], [yes], [AltiVec support],
-[
-    AC_CHECK_HEADERS([altivec.h],
-    [
-        AC_DEFINE([HAVE_ALTIVEC], 1, [Define to 1 if your system has AltiVec.])
-        AC_DEFINE([HAVE_ALTIVEC_H], 1, [Define to 1 if your system has an altivec.h file.])
-        AC_DEFINE([ARCH_POWERPC], 1, [Define to 1 if your system is a PowerPC.])
-        case $target in
-             *-apple-*)
-             SIMD_CFLAGS="-mpim-altivec"
-             ;;
-             *)
-             SIMD_CFLAGS="-maltivec"
-             ;;
-        esac
-        AC_SUBST([SIMD_CFLAGS])
-    ],[
-        enable_altivec="no"
-    ])
-])
-
-AC_CHECK_FUNC([getrlimit])
+AUD_CHECK_MODULE([GLIB], [glib-2.0], [>= 2.16], [Glib2])
+AUD_CHECK_MODULE([GTHREAD], [gthread-2.0], [>= 2.16], [GThread])
+AUD_CHECK_MODULE([PANGO], [pango], [>= 1.20], [Pango])
+AUD_CHECK_MODULE([CAIRO], [cairo], [>= 1.6], [Cairo])
 
 ])
 
diff --git a/aclocal.m4 b/aclocal.m4
index 86487fd..68b1008 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1,7 +1,8 @@
-# generated automatically by aclocal 1.11.1 -*- Autoconf -*-
+# generated automatically by aclocal 1.11.2 -*- Autoconf -*-
 
 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005, 2006, 2007, 2008, 2009  Free Software Foundation, Inc.
+# 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation,
+# Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -1834,7 +1835,8 @@ AC_DEFUN([AM_NLS],
 # ----------------------------------
 AC_DEFUN([PKG_PROG_PKG_CONFIG],
 [m4_pattern_forbid([^_?PKG_[A-Z_]+$])
-m4_pattern_allow([^PKG_CONFIG(_PATH)?$])
+m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$])
+m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$])
 AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])
 AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path])
 AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path])
@@ -1880,7 +1882,8 @@ m4_define([_PKG_CONFIG],
     pkg_cv_[]$1="$$1"
  elif test -n "$PKG_CONFIG"; then
     PKG_CHECK_EXISTS([$3],
-                     [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`],
+                     [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes ],
 		     [pkg_failed=yes])
  else
     pkg_failed=untried
@@ -1928,9 +1931,9 @@ if test $pkg_failed = yes; then
    	AC_MSG_RESULT([no])
         _PKG_SHORT_ERRORS_SUPPORTED
         if test $_pkg_short_errors_supported = yes; then
-	        $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1`
+	        $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1`
         else 
-	        $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1`
+	        $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1`
         fi
 	# Put the nasty error message in config.log where it belongs
 	echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
@@ -1954,7 +1957,7 @@ path to pkg-config.
 
 _PKG_TEXT
 
-To get pkg-config, see <http://pkg-config.freedesktop.org/>.])dnl
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl
         ])
 else
 	$1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
@@ -2565,14 +2568,14 @@ AC_CONFIG_COMMANDS_PRE(
 Usually this means the macro was only invoked conditionally.]])
 fi])])
 
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009
-# Free Software Foundation, Inc.
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009,
+# 2010, 2011 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 10
+# serial 12
 
 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
 # written in clear, in which case automake, when reading aclocal.m4,
@@ -2612,6 +2615,7 @@ AC_CACHE_CHECK([dependency style of $depcc],
   # instance it was reported that on HP-UX the gcc test will end up
   # making a dummy file named `D' -- because `-MD' means `put the output
   # in D'.
+  rm -rf conftest.dir
   mkdir conftest.dir
   # Copy depcomp to subdir because otherwise we won't find it if we're
   # using a relative directory.
@@ -2676,7 +2680,7 @@ AC_CACHE_CHECK([dependency style of $depcc],
 	break
       fi
       ;;
-    msvisualcpp | msvcmsys)
+    msvc7 | msvc7msys | msvisualcpp | msvcmsys)
       # This compiler won't grok `-c -o', but also, the minuso test has
       # not run yet.  These depmodes are late enough in the game, and
       # so weak that their functioning should not be impacted.
@@ -2741,10 +2745,13 @@ AC_DEFUN([AM_DEP_TRACK],
 if test "x$enable_dependency_tracking" != xno; then
   am_depcomp="$ac_aux_dir/depcomp"
   AMDEPBACKSLASH='\'
+  am__nodep='_no'
 fi
 AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
 AC_SUBST([AMDEPBACKSLASH])dnl
 _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
+AC_SUBST([am__nodep])dnl
+_AM_SUBST_NOTMAKE([am__nodep])dnl
 ])
 
 # Generate code to set up dependency tracking.              -*- Autoconf -*-
@@ -2900,12 +2907,15 @@ AC_MSG_RESULT([$_am_result])
 rm -f confinc confmf
 ])
 
-# Copyright (C) 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
+# Copyright (C) 2003, 2004, 2005, 2006, 2011 Free Software Foundation,
+# Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
+# serial 1
+
 # AM_PROG_MKDIR_P
 # ---------------
 # Check for `mkdir -p'.
@@ -2928,13 +2938,14 @@ esac
 
 # Helper functions for option handling.                     -*- Autoconf -*-
 
-# Copyright (C) 2001, 2002, 2003, 2005, 2008  Free Software Foundation, Inc.
+# Copyright (C) 2001, 2002, 2003, 2005, 2008, 2010 Free Software
+# Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 4
+# serial 5
 
 # _AM_MANGLE_OPTION(NAME)
 # -----------------------
@@ -2942,13 +2953,13 @@ AC_DEFUN([_AM_MANGLE_OPTION],
 [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
 
 # _AM_SET_OPTION(NAME)
-# ------------------------------
+# --------------------
 # Set option NAME.  Presently that only means defining a flag for this option.
 AC_DEFUN([_AM_SET_OPTION],
 [m4_define(_AM_MANGLE_OPTION([$1]), 1)])
 
 # _AM_SET_OPTIONS(OPTIONS)
-# ----------------------------------
+# ------------------------
 # OPTIONS is a space-separated list of Automake options.
 AC_DEFUN([_AM_SET_OPTIONS],
 [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
@@ -2959,13 +2970,13 @@ AC_DEFUN([_AM_SET_OPTIONS],
 AC_DEFUN([_AM_IF_OPTION],
 [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
 
-# Copyright (C) 2006, 2008  Free Software Foundation, Inc.
+# Copyright (C) 2006, 2008, 2010 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 2
+# serial 3
 
 # _AM_SUBST_NOTMAKE(VARIABLE)
 # ---------------------------
@@ -2974,7 +2985,7 @@ AC_DEFUN([_AM_IF_OPTION],
 AC_DEFUN([_AM_SUBST_NOTMAKE])
 
 # AM_SUBST_NOTMAKE(VARIABLE)
-# ---------------------------
+# --------------------------
 # Public sister of _AM_SUBST_NOTMAKE.
 AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
 
diff --git a/audacious.pc.in b/audacious.pc.in
index 21e1926..0eda817 100644
--- a/audacious.pc.in
+++ b/audacious.pc.in
@@ -1,8 +1,8 @@
 prefix=@prefix@
 exec_prefix=@exec_prefix@
-data_dir=@datadir@/@PACKAGE_NAME@
+data_dir=@datadir@/@PACKAGE@
 
-version=@PACKAGE_VERSION@
+version=@VERSION@
 include_dir=@includedir@
 audacious_include_dir=@includedir@
 lib_dir=@libdir@
@@ -19,7 +19,6 @@ discovery_plugin_dir=@plugindir@/@DISCOVERY_PLUGIN_DIR@
 
 Name: Audacious
 Description: Audacious is a versatile and handy multi platform media player
-Version: @PACKAGE_VERSION@
-Requires: @PC_REQUIRES@
+Version: @VERSION@
 Libs: -L${lib_dir} -laudcore -laudgui
 Cflags: -I${audacious_include_dir}
diff --git a/audclient.pc.in b/audclient.pc.in
index 1ddb2ed..9754a33 100644
--- a/audclient.pc.in
+++ b/audclient.pc.in
@@ -1,14 +1,13 @@
 prefix=@prefix@
 exec_prefix=@exec_prefix@
-data_dir=@datadir@/@PACKAGE_NAME@
+data_dir=@datadir@/@PACKAGE@
 
-version=@PACKAGE_VERSION@
+version=@VERSION@
 audacious_include_dir=@includedir@
 lib_dir=@libdir@
 
 Name: Audacious Client Library
 Description: Remote control library for Audacious
-Version: @PACKAGE_VERSION@
-Requires: @PC_REQUIRES@
+Version: @VERSION@
 Libs: -L${lib_dir} @LIBAUDCLIENT_LDFLAGS@
 Cflags: -I${audacious_include_dir}
diff --git a/buildsys.mk.in b/buildsys.mk.in
index 2ff129e..b00ae75 100644
--- a/buildsys.mk.in
+++ b/buildsys.mk.in
@@ -1,5 +1,6 @@
 #
-#  Copyright (c) 2007 - 2009, Jonathan Schleifer <js at webkeks.org>
+#  Copyright (c) 2007, 2008, 2009, 2010, 2011
+#  Jonathan Schleifer <js at webkeks.org>
 #
 #  https://webkeks.org/hg/buildsys/
 #
@@ -63,6 +64,10 @@ MKDIR_P = mkdir -p
 INSTALL = @INSTALL@
 SHELL = @SHELL@
 MSGFMT = @MSGFMT@
+JAVAC = @JAVAC@
+JAVACFLAGS = @JAVACFLAGS@
+JAR = @JAR@
+WINDRES = @WINDRES@
 prefix = @prefix@
 exec_prefix = @exec_prefix@
 bindir = @bindir@
@@ -82,11 +87,13 @@ OBJS2 = ${OBJS1:.cc=.o}
 OBJS3 = ${OBJS2:.cxx=.o}
 OBJS4 = ${OBJS3:.d=.o}
 OBJS5 = ${OBJS4:.erl=.beam}
-OBJS6 = ${OBJS5:.m=.o}
-OBJS7 = ${OBJS6:.mm=.o}
-OBJS8 = ${OBJS7:.py=.pyc}
-OBJS9 = ${OBJS8:.xpm=.o}
-OBJS += ${OBJS9:.S=.o}
+OBJS6 = ${OBJS5:.java=.class}
+OBJS7 = ${OBJS6:.m=.o}
+OBJS8 = ${OBJS7:.mm=.o}
+OBJS9 = ${OBJS8:.py=.pyc}
+OBJS10 = ${OBJS9:.rc=.o}
+OBJS11 = ${OBJS10:.S=.o}
+OBJS += ${OBJS11:.xpm=.o}
 
 LIB_OBJS = ${OBJS:.o=.lib.o}
 PLUGIN_OBJS = ${OBJS:.o=.plugin.o}
@@ -95,13 +102,13 @@ MO_FILES = ${LOCALES:.po=.mo}
 
 .SILENT:
 .SUFFIXES:
-.SUFFIXES: .beam .c .c.dep .cc .cc.dep .cxx .cxx.dep .d .erl .lib.o .mo .m .m.dep .mm .mm.dep .o .plugin.o .po .py .pyc .xpm .S .S.dep
+.SUFFIXES: .beam .c .c.dep .cc .cc.dep .class .cxx .cxx.dep .d .erl .lib.o .java .mo .m .m.dep .mm .mm.dep .o .plugin.o .po .py .pyc .rc .S .S.dep .xpm
 .PHONY: all subdirs pre-depend depend install install-extra uninstall uninstall-extra clean distclean locales
 
 all:
-	${MAKE} ${MFLAGS} subdirs || exit 1
-	${MAKE} ${MFLAGS} depend || exit 1
-	${MAKE} ${STATIC_LIB} ${STATIC_LIB_NOINST} ${LIB} ${LIB_NOINST} ${PLUGIN} ${PLUGIN_NOINST} ${PROG} ${PROG_NOINST} locales || exit 1
+	${MAKE} ${MFLAGS} subdirs
+	${MAKE} ${MFLAGS} depend
+	${MAKE} ${STATIC_LIB} ${STATIC_LIB_NOINST} ${STATIC_PIC_LIB} ${STATIC_PIC_LIB_NOINST} ${LIB} ${LIB_NOINST} ${PLUGIN} ${PLUGIN_NOINST} ${PROG} ${PROG_NOINST} ${JARFILE} locales
 
 subdirs:
 	for i in ${SUBDIRS}; do \
@@ -122,7 +129,7 @@ depend: pre-depend ${SRCS}
 				;; \
 		esac; \
 	done; \
-	if test x"$$regen" = x"1" -a x"$$deps" != "x"; then \
+	if test x"$$regen" = x"1" -a x"$$deps" != x""; then \
 		${DEPEND_STATUS}; \
 		if ${MAKE} ${MFLAGS} $$deps && cat $$deps >.deps; then \
 			rm -f $$deps; \
@@ -149,20 +156,29 @@ ${PROG} ${PROG_NOINST}: ${EXT_DEPS} ${OBJS}
 		${LINK_FAILED}; \
 	fi
 
+${JARFILE}: ${EXT_DEPS} ${JAR_MANIFEST} ${OBJS}
+	${LINK_STATUS}
+	if test x"${JAR_MANIFEST}" != x""; then \
+		if ${JAR} cfm ${JARFILE} ${JAR_MANIFEST} ${OBJS}; then \
+			${LINK_OK}; \
+		else \
+			${LINK_FAILED}; \
+		fi \
+	else \
+		if ${JAR} cf ${JARFILE} ${OBJS}; then \
+			${LINK_OK}; \
+		else \
+			${LINK_FAILED}; \
+		fi \
+	fi
+
 ${LIB} ${LIB_NOINST}: ${EXT_DEPS} ${LIB_OBJS}
-	case $@ in \
-		*.a) \
-			${MAKE} ${MFLAGS} STATIC_LIB=${LIB} LIB= $@ || exit 1 \
-			;; \
-		*) \
-			${LINK_STATUS}; \
-			if ${LD} -o $@ ${LIB_OBJS} ${LIB_LDFLAGS} ${LDFLAGS} ${LIBS}; then \
-				${LINK_OK}; \
-			else \
-				${LINK_FAILED}; \
-			fi \
-			;; \
-	esac
+	${LINK_STATUS}; \
+	if ${LD} -o $@ ${LIB_OBJS} ${LIB_LDFLAGS} ${LDFLAGS} ${LIBS}; then \
+		${LINK_OK}; \
+	else \
+		${LINK_FAILED}; \
+	fi \
 
 ${PLUGIN} ${PLUGIN_NOINST}: ${EXT_DEPS} ${PLUGIN_OBJS}
 	${LINK_STATUS}
@@ -174,7 +190,44 @@ ${PLUGIN} ${PLUGIN_NOINST}: ${EXT_DEPS} ${PLUGIN_OBJS}
 
 ${STATIC_LIB} ${STATIC_LIB_NOINST}: ${EXT_DEPS} ${OBJS}
 	${LINK_STATUS}
-	if ${AR} cr $@ ${OBJS} && ${RANLIB} $@; then \
+	rm -f $@
+	objs=""; \
+	ars=""; \
+	for i in ${OBJS}; do \
+		case $$i in \
+			*.a) \
+				ars="$$ars $$i" \
+				;; \
+			*.o) \
+				objs="$$objs $$i" \
+				;; \
+		esac \
+	done; \
+	for i in $$ars; do \
+		dir=".$$(echo $$i | sed 's/\//_/g').objs"; \
+		rm -fr $$dir; \
+		mkdir -p $$dir; \
+		cd $$dir; \
+		ar x ../$$i; \
+		for j in *.o; do \
+			objs="$$objs $$dir/$$j"; \
+		done; \
+		cd ..; \
+	done; \
+	if ${AR} cr $@ $$objs && ${RANLIB} $@; then \
+		${LINK_OK}; \
+	else \
+		${LINK_FAILED}; \
+		rm -f $@; \
+	fi; \
+	for i in $$ars; do \
+		dir=".$$(echo $$i | sed 's/\//_/g').objs"; \
+		rm -fr $$dir; \
+	done
+
+${STATIC_PIC_LIB} ${STATIC_PIC_LIB_NOINST}: ${EXT_DEPS} ${LIB_OBJS}
+	${LINK_STATUS}
+	if ${AR} cr $@ ${LIB_OBJS} && ${RANLIB} $@; then \
 		${LINK_OK}; \
 	else \
 		${LINK_FAILED}; \
@@ -251,6 +304,14 @@ locales: ${MO_FILES}
 		${COMPILE_FAILED}; \
 	fi
 
+.java.class:
+	${COMPILE_STATUS}
+	if ${JAVAC} ${JAVACFLAGS} $<; then \
+		${COMPILE_OK}; \
+	else \
+		${COMPILE_FAILED}; \
+	fi
+
 .m.o:
 	${COMPILE_STATUS}
 	if ${OBJC} ${OBJCFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
@@ -311,51 +372,59 @@ locales: ${MO_FILES}
 		${COMPILE_FAILED}; \
 	fi
 
-.xpm.o:
+.rc.o .rc.lib.o .rc.plugin.o:
 	${COMPILE_STATUS}
-	if ${CC} ${CFLAGS} ${CPPFLAGS} -x c -c -o $@ $<; then \
+	if ${WINDRES} -J rc -O coff -o $@ $<; then \
 		${COMPILE_OK}; \
 	else \
 		${COMPILE_FAILED}; \
 	fi
-.xpm.lib.o:
+
+.S.o:
+	${COMPILE_STATUS}
+	if ${AS} ${ASFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
+		${COMPILE_OK}; \
+	else \
+		${COMPILE_FAILED}; \
+	fi
+.S.lib.o:
 	${COMPILE_LIB_STATUS}
-	if ${CC} ${LIB_CFLAGS} ${CFLAGS} ${CPPFLAGS} -x c -c -o $@ $<; then \
+	if ${AS} ${LIB_CFLAGS} ${ASFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
 		${COMPILE_LIB_OK}; \
 	else \
 		${COMPILE_LIB_FAILED}; \
 	fi
-.xpm.plugin.o:
+.S.plugin.o:
 	${COMPILE_PLUGIN_STATUS}
-	if ${CC} ${PLUGIN_CFLAGS} ${CFLAGS} ${CPPFLAGS} -x c -c -o $@ $<; then \
+	if ${AS} ${PLUGIN_CFLAGS} ${ASFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
 		${COMPILE_PLUGIN_OK}; \
 	else \
 		${COMPILE_PLUGIN_FAILED}; \
 	fi
 
-.S.o:
+.xpm.o:
 	${COMPILE_STATUS}
-	if ${AS} ${ASFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
+	if ${CC} ${CFLAGS} ${CPPFLAGS} -x c -c -o $@ $<; then \
 		${COMPILE_OK}; \
 	else \
 		${COMPILE_FAILED}; \
 	fi
-.S.lib.o:
+.xpm.lib.o:
 	${COMPILE_LIB_STATUS}
-	if ${AS} ${LIB_CFLAGS} ${ASFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
+	if ${CC} ${LIB_CFLAGS} ${CFLAGS} ${CPPFLAGS} -x c -c -o $@ $<; then \
 		${COMPILE_LIB_OK}; \
 	else \
 		${COMPILE_LIB_FAILED}; \
 	fi
-.S.plugin.o:
+.xpm.plugin.o:
 	${COMPILE_PLUGIN_STATUS}
-	if ${AS} ${PLUGIN_CFLAGS} ${ASFLAGS} ${CPPFLAGS} -c -o $@ $<; then \
+	if ${CC} ${PLUGIN_CFLAGS} ${CFLAGS} ${CPPFLAGS} -x c -c -o $@ $<; then \
 		${COMPILE_PLUGIN_OK}; \
 	else \
 		${COMPILE_PLUGIN_FAILED}; \
 	fi
 
-install: ${LIB} ${STATIC_LIB} ${PLUGIN} ${PROG} install-extra
+install: ${LIB} ${STATIC_LIB} ${STATIC_PIC_LIB} ${PLUGIN} ${PROG} install-extra
 	for i in ${SUBDIRS}; do \
 		${DIR_ENTER}; \
 		${MAKE} ${MFLAGS} install || exit 1; \
@@ -364,14 +433,14 @@ install: ${LIB} ${STATIC_LIB} ${PLUGIN} ${PROG} install-extra
 
 	for i in ${LIB}; do \
 		${INSTALL_STATUS}; \
-		if ${MKDIR_P} ${DESTDIR}${libdir} && ${INSTALL_LIB}; then \
+		if ${MKDIR_P} ${DESTDIR}${libdir} ${INSTALL_LIB}; then \
 			${INSTALL_OK}; \
 		else \
 			${INSTALL_FAILED}; \
 		fi \
 	done
 
-	for i in ${STATIC_LIB}; do \
+	for i in ${STATIC_LIB} ${STATIC_PIC_LIB}; do \
 		${INSTALL_STATUS}; \
 		if ${MKDIR_P} ${DESTDIR}${libdir} && ${INSTALL} -m 644 $$i ${DESTDIR}${libdir}/$$i; then \
 			${INSTALL_OK}; \
@@ -446,7 +515,7 @@ uninstall: uninstall-extra
 
 	for i in ${LIB}; do \
 		if test -f ${DESTDIR}${libdir}/$$i; then \
-			if ${UNINSTALL_LIB}; then \
+			if : ${UNINSTALL_LIB}; then \
 				${DELETE_OK}; \
 			else \
 				${DELETE_FAILED}; \
@@ -454,7 +523,7 @@ uninstall: uninstall-extra
 		fi; \
 	done
 
-	for i in ${STATIC_LIB}; do \
+	for i in ${STATIC_LIB} ${STATIC_PIC_LIB}; do \
 		if test -f ${DESTDIR}${libdir}/$$i; then \
 			if rm -f ${DESTDIR}${libdir}/$$i; then \
 				${DELETE_OK}; \
@@ -537,7 +606,7 @@ clean:
 		${DIR_LEAVE}; \
 	done
 
-	for i in ${DEPS} ${OBJS} ${LIB_OBJS} ${PLUGIN_OBJS} ${PROG} ${PROG_NOINST} ${LIB} ${LIB_NOINST} ${STATIC_LIB} ${STATIC_LIB_NOINST} ${PLUGIN} ${PLUGIN_NOINST} ${CLEAN_LIB} ${MO_FILES} ${CLEAN}; do \
+	for i in ${DEPS} ${OBJS} ${LIB_OBJS} ${PLUGIN_OBJS} ${PROG} ${PROG_NOINST} ${LIB} ${LIB_NOINST} ${STATIC_LIB} ${STATIC_LIB_NOINST} ${STATIC_PIC_LIB} ${STATIC_PIC_LIB_NOINST} ${PLUGIN} ${PLUGIN_NOINST} ${CLEAN_LIB} ${MO_FILES} ${CLEAN}; do \
 		if test -f $$i -o -d $$i; then \
 			if rm -fr $$i; then \
 				${DELETE_OK}; \
diff --git a/config.guess b/config.guess
index af7f02d..dc84c68 100644
--- a/config.guess
+++ b/config.guess
@@ -1,10 +1,10 @@
 #! /bin/sh
 # Attempt to guess a canonical system name.
 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
-#   Inc.
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+#   Free Software Foundation, Inc.
 
-timestamp='2006-07-02'
+timestamp='2009-11-20'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -27,16 +27,16 @@ timestamp='2006-07-02'
 # the same distribution terms that you use for the rest of that program.
 
 
-# Originally written by Per Bothner <per at bothner.com>.
-# Please send patches to <config-patches at gnu.org>.  Submit a context
-# diff and a properly formatted ChangeLog entry.
+# Originally written by Per Bothner.  Please send patches (context
+# diff format) to <config-patches at gnu.org> and include a ChangeLog
+# entry.
 #
 # This script attempts to guess a canonical system name similar to
 # config.sub.  If it succeeds, it prints the system name on stdout, and
 # exits with 0.  Otherwise, it exits with 1.
 #
-# The plan is that this can be called by configure scripts if you
-# don't specify an explicit build system type.
+# You can get the latest version of this script from:
+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
 
 me=`echo "$0" | sed -e 's,.*/,,'`
 
@@ -56,8 +56,8 @@ version="\
 GNU config.guess ($timestamp)
 
 Originally written by Per Bothner.
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-Free Software Foundation, Inc.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -139,23 +139,6 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
 UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
 
-if [ "${UNAME_SYSTEM}" = "Linux" ] ; then
-	eval $set_cc_for_build
-	cat << EOF > $dummy.c
-	#include <features.h>
-	#ifdef __UCLIBC__
-	# ifdef __UCLIBC_CONFIG_VERSION__
-	LIBC=uclibc __UCLIBC_CONFIG_VERSION__
-	# else
-	LIBC=uclibc
-	# endif
-	#else
-	LIBC=gnu
-	#endif
-EOF
-	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep LIBC= | sed -e 's: ::g'`
-fi
-
 # Note: order is significant - the case branches are not exclusive.
 
 case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
@@ -178,6 +161,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
 	    arm*) machine=arm-unknown ;;
 	    sh3el) machine=shl-unknown ;;
 	    sh3eb) machine=sh-unknown ;;
+	    sh5el) machine=sh5le-unknown ;;
 	    *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
 	esac
 	# The Operating System including object format, if it has switched
@@ -186,7 +170,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
 	    arm*|i386|m68k|ns32k|sh3*|sparc|vax)
 		eval $set_cc_for_build
 		if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
-			| grep __ELF__ >/dev/null
+			| grep -q __ELF__
 		then
 		    # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
 		    # Return netbsd for either.  FIX?
@@ -340,14 +324,33 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
 	case `/usr/bin/uname -p` in
 	    sparc) echo sparc-icl-nx7; exit ;;
 	esac ;;
+    s390x:SunOS:*:*)
+	echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
     sun4H:SunOS:5.*:*)
 	echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
 	exit ;;
     sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
 	echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
 	exit ;;
-    i86pc:SunOS:5.*:*)
-	echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+    i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
+	echo i386-pc-auroraux${UNAME_RELEASE}
+	exit ;;
+    i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
+	eval $set_cc_for_build
+	SUN_ARCH="i386"
+	# If there is a compiler, see if it is configured for 64-bit objects.
+	# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
+	# This test works for both compilers.
+	if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+	    if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
+		(CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+		grep IS_64BIT_ARCH >/dev/null
+	    then
+		SUN_ARCH="x86_64"
+	    fi
+	fi
+	echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
 	exit ;;
     sun4*:SunOS:6*:*)
 	# According to config.sub, this is the proper way to canonicalize
@@ -548,7 +551,7 @@ EOF
 		echo rs6000-ibm-aix3.2
 	fi
 	exit ;;
-    *:AIX:*:[45])
+    *:AIX:*:[456])
 	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
 	if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
 		IBM_ARCH=rs6000
@@ -656,7 +659,7 @@ EOF
 	    # => hppa64-hp-hpux11.23
 
 	    if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
-		grep __LP64__ >/dev/null
+		grep -q __LP64__
 	    then
 		HP_ARCH="hppa2.0w"
 	    else
@@ -797,7 +800,7 @@ EOF
     i*:CYGWIN*:*)
 	echo ${UNAME_MACHINE}-pc-cygwin
 	exit ;;
-    i*:MINGW*:*)
+    *:MINGW*:*)
 	echo ${UNAME_MACHINE}-pc-mingw32
 	exit ;;
     i*:windows32*:*)
@@ -807,15 +810,24 @@ EOF
     i*:PW*:*)
 	echo ${UNAME_MACHINE}-pc-pw32
 	exit ;;
-    x86:Interix*:[3456]*)
-	echo i586-pc-interix${UNAME_RELEASE}
-	exit ;;
-    EM64T:Interix*:[3456]*)
-	echo x86_64-unknown-interix${UNAME_RELEASE}
-	exit ;;
+    *:Interix*:*)
+    	case ${UNAME_MACHINE} in
+	    x86)
+		echo i586-pc-interix${UNAME_RELEASE}
+		exit ;;
+	    authenticamd | genuineintel | EM64T)
+		echo x86_64-unknown-interix${UNAME_RELEASE}
+		exit ;;
+	    IA64)
+		echo ia64-unknown-interix${UNAME_RELEASE}
+		exit ;;
+	esac ;;
     [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
 	echo i${UNAME_MACHINE}-pc-mks
 	exit ;;
+    8664:Windows_NT:*)
+	echo x86_64-pc-mks
+	exit ;;
     i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
 	# How do we know it's Interix rather than the generic POSIX subsystem?
 	# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
@@ -845,193 +857,125 @@ EOF
     i*86:Minix:*:*)
 	echo ${UNAME_MACHINE}-pc-minix
 	exit ;;
+    alpha:Linux:*:*)
+	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+	  EV5)   UNAME_MACHINE=alphaev5 ;;
+	  EV56)  UNAME_MACHINE=alphaev56 ;;
+	  PCA56) UNAME_MACHINE=alphapca56 ;;
+	  PCA57) UNAME_MACHINE=alphapca56 ;;
+	  EV6)   UNAME_MACHINE=alphaev6 ;;
+	  EV67)  UNAME_MACHINE=alphaev67 ;;
+	  EV68*) UNAME_MACHINE=alphaev68 ;;
+        esac
+	objdump --private-headers /bin/sh | grep -q ld.so.1
+	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
+	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+	exit ;;
     arm*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	eval $set_cc_for_build
+	if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
+	    | grep -q __ARM_EABI__
+	then
+	    echo ${UNAME_MACHINE}-unknown-linux-gnu
+	else
+	    echo ${UNAME_MACHINE}-unknown-linux-gnueabi
+	fi
 	exit ;;
     avr32*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
     cris:Linux:*:*)
-	echo cris-axis-linux-${LIBC}
+	echo cris-axis-linux-gnu
 	exit ;;
     crisv32:Linux:*:*)
-	echo crisv32-axis-linux-${LIBC}
+	echo crisv32-axis-linux-gnu
 	exit ;;
     frv:Linux:*:*)
-    	echo frv-unknown-linux-${LIBC}
+    	echo frv-unknown-linux-gnu
+	exit ;;
+    i*86:Linux:*:*)
+	LIBC=gnu
+	eval $set_cc_for_build
+	sed 's/^	//' << EOF >$dummy.c
+	#ifdef __dietlibc__
+	LIBC=dietlibc
+	#endif
+EOF
+	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
+	echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
 	exit ;;
     ia64:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
     m32r*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
     m68*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
-    mips:Linux:*:*)
+    mips:Linux:*:* | mips64:Linux:*:*)
 	eval $set_cc_for_build
 	sed 's/^	//' << EOF >$dummy.c
 	#undef CPU
-	#undef mips
-	#undef mipsel
+	#undef ${UNAME_MACHINE}
+	#undef ${UNAME_MACHINE}el
 	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
-	CPU=mipsel
+	CPU=${UNAME_MACHINE}el
 	#else
 	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
-	CPU=mips
+	CPU=${UNAME_MACHINE}
 	#else
 	CPU=
 	#endif
 	#endif
 EOF
-	eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
-	    /^CPU/{
-		s: ::g
-		p
-	    }'`"
-	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
-	;;
-    mips64:Linux:*:*)
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
-	#undef CPU
-	#undef mips64
-	#undef mips64el
-	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
-	CPU=mips64el
-	#else
-	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
-	CPU=mips64
-	#else
-	CPU=
-	#endif
-	#endif
-EOF
-	eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
-	    /^CPU/{
-		s: ::g
-		p
-	    }'`"
-	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; }
+	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
+	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
 	;;
     or32:Linux:*:*)
-	echo or32-unknown-linux-${LIBC}
+	echo or32-unknown-linux-gnu
 	exit ;;
-    ppc:Linux:*:*)
-	echo powerpc-unknown-linux-${LIBC}
+    padre:Linux:*:*)
+	echo sparc-unknown-linux-gnu
 	exit ;;
-    ppc64:Linux:*:*)
-	echo powerpc64-unknown-linux-${LIBC}
-	exit ;;
-    alpha:Linux:*:*)
-	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
-	  EV5)   UNAME_MACHINE=alphaev5 ;;
-	  EV56)  UNAME_MACHINE=alphaev56 ;;
-	  PCA56) UNAME_MACHINE=alphapca56 ;;
-	  PCA57) UNAME_MACHINE=alphapca56 ;;
-	  EV6)   UNAME_MACHINE=alphaev6 ;;
-	  EV67)  UNAME_MACHINE=alphaev67 ;;
-	  EV68*) UNAME_MACHINE=alphaev68 ;;
-        esac
-	objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
-	if test "$?" = 0 ; then LIBC="gnulibc1" ; fi
-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+    parisc64:Linux:*:* | hppa64:Linux:*:*)
+	echo hppa64-unknown-linux-gnu
 	exit ;;
     parisc:Linux:*:* | hppa:Linux:*:*)
 	# Look for CPU level
 	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
-	  PA7*) echo hppa1.1-unknown-linux-${LIBC} ;;
-	  PA8*) echo hppa2.0-unknown-linux-${LIBC} ;;
-	  *)    echo hppa-unknown-linux-${LIBC} ;;
+	  PA7*) echo hppa1.1-unknown-linux-gnu ;;
+	  PA8*) echo hppa2.0-unknown-linux-gnu ;;
+	  *)    echo hppa-unknown-linux-gnu ;;
 	esac
 	exit ;;
-    parisc64:Linux:*:* | hppa64:Linux:*:*)
-	echo hppa64-unknown-linux-${LIBC}
+    ppc64:Linux:*:*)
+	echo powerpc64-unknown-linux-gnu
+	exit ;;
+    ppc:Linux:*:*)
+	echo powerpc-unknown-linux-gnu
 	exit ;;
     s390:Linux:*:* | s390x:Linux:*:*)
 	echo ${UNAME_MACHINE}-ibm-linux
 	exit ;;
     sh64*:Linux:*:*)
-    	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+    	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
     sh*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
     sparc:Linux:*:* | sparc64:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
     vax:Linux:*:*)
-	echo ${UNAME_MACHINE}-dec-linux-${LIBC}
+	echo ${UNAME_MACHINE}-dec-linux-gnu
 	exit ;;
     x86_64:Linux:*:*)
-	echo x86_64-unknown-linux-${LIBC}
+	echo x86_64-unknown-linux-gnu
+	exit ;;
+    xtensa*:Linux:*:*)
+    	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
-    i*86:Linux:*:*)
-	# The BFD linker knows what the default object file format is, so
-	# first see if it will tell us. cd to the root directory to prevent
-	# problems with other programs or directories called `ld' in the path.
-	# Set LC_ALL=C to ensure ld outputs messages in English.
-	ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
-			 | sed -ne '/supported targets:/!d
-				    s/[ 	][ 	]*/ /g
-				    s/.*supported targets: *//
-				    s/ .*//
-				    p'`
-        case "$ld_supported_targets" in
-	  elf32-i386)
-		TENTATIVE="${UNAME_MACHINE}-pc-linux-${LIBC}"
-		;;
-	  a.out-i386-linux)
-		echo "${UNAME_MACHINE}-pc-linux-${LIBC}aout"
-		exit ;;
-	  coff-i386)
-		echo "${UNAME_MACHINE}-pc-linux-${LIBC}coff"
-		exit ;;
-	  "")
-		# Either a pre-BFD a.out linker (linux-gnuoldld) or
-		# one that does not give us useful --help.
-		echo "${UNAME_MACHINE}-pc-linux-${LIBC}oldld"
-		exit ;;
-	esac
-	# This should get integrated into the C code below, but now we hack
-	if [ "$LIBC" != "gnu" ] ; then echo "$TENTATIVE" && exit 0 ; fi
-	# Determine whether the default compiler is a.out or elf
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
-	#include <features.h>
-	#ifdef __ELF__
-	# ifdef __GLIBC__
-	#  if __GLIBC__ >= 2
-	LIBC=gnu
-	#  else
-	LIBC=gnulibc1
-	#  endif
-	# else
-	LIBC=gnulibc1
-	# endif
-	#else
-	#if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC)
-	LIBC=gnu
-	#else
-	LIBC=gnuaout
-	#endif
-	#endif
-	#ifdef __dietlibc__
-	LIBC=dietlibc
-	#endif
-EOF
-	eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
-	    /^LIBC/{
-		s: ::g
-		p
-	    }'`"
-	test x"${LIBC}" != x && {
-		echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
-		exit
-	}
-	test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; }
-	;;
     i*86:DYNIX/ptx:4*:*)
 	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
 	# earlier versions are messed up and put the nodename in both
@@ -1060,7 +1004,7 @@ EOF
     i*86:syllable:*:*)
 	echo ${UNAME_MACHINE}-pc-syllable
 	exit ;;
-    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
+    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
 	echo i386-unknown-lynxos${UNAME_RELEASE}
 	exit ;;
     i*86:*DOS:*:*)
@@ -1104,8 +1048,11 @@ EOF
     pc:*:*:*)
 	# Left here for compatibility:
         # uname -m prints for DJGPP always 'pc', but it prints nothing about
-        # the processor, so we play safe by assuming i386.
-	echo i386-pc-msdosdjgpp
+        # the processor, so we play safe by assuming i586.
+	# Note: whatever this is, it MUST be the same as what config.sub
+	# prints for the "djgpp" host, or else GDB configury will decide that
+	# this is a cross-build.
+	echo i586-pc-msdosdjgpp
         exit ;;
     Intel:Mach:3*:*)
 	echo i386-pc-mach3
@@ -1143,6 +1090,16 @@ EOF
     3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
         /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
           && { echo i486-ncr-sysv4; exit; } ;;
+    NCR*:*:4.2:* | MPRAS*:*:4.2:*)
+	OS_REL='.3'
+	test -r /etc/.relid \
+	    && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+	    && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+	    && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
+	/bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
+	    && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
     m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
 	echo m68k-unknown-lynxos${UNAME_RELEASE}
 	exit ;;
@@ -1155,7 +1112,7 @@ EOF
     rs6000:LynxOS:2.*:*)
 	echo rs6000-unknown-lynxos${UNAME_RELEASE}
 	exit ;;
-    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
+    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
 	echo powerpc-unknown-lynxos${UNAME_RELEASE}
 	exit ;;
     SM[BE]S:UNIX_SV:*:*)
@@ -1218,6 +1175,9 @@ EOF
     BePC:BeOS:*:*)	# BeOS running on Intel PC compatible.
 	echo i586-pc-beos
 	exit ;;
+    BePC:Haiku:*:*)	# Haiku running on Intel PC compatible.
+	echo i586-pc-haiku
+	exit ;;
     SX-4:SUPER-UX:*:*)
 	echo sx4-nec-superux${UNAME_RELEASE}
 	exit ;;
@@ -1227,6 +1187,15 @@ EOF
     SX-6:SUPER-UX:*:*)
 	echo sx6-nec-superux${UNAME_RELEASE}
 	exit ;;
+    SX-7:SUPER-UX:*:*)
+	echo sx7-nec-superux${UNAME_RELEASE}
+	exit ;;
+    SX-8:SUPER-UX:*:*)
+	echo sx8-nec-superux${UNAME_RELEASE}
+	exit ;;
+    SX-8R:SUPER-UX:*:*)
+	echo sx8r-nec-superux${UNAME_RELEASE}
+	exit ;;
     Power*:Rhapsody:*:*)
 	echo powerpc-apple-rhapsody${UNAME_RELEASE}
 	exit ;;
@@ -1236,6 +1205,16 @@ EOF
     *:Darwin:*:*)
 	UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
 	case $UNAME_PROCESSOR in
+	    i386)
+		eval $set_cc_for_build
+		if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+		  if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
+		      (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+		      grep IS_64BIT_ARCH >/dev/null
+		  then
+		      UNAME_PROCESSOR="x86_64"
+		  fi
+		fi ;;
 	    unknown) UNAME_PROCESSOR=powerpc ;;
 	esac
 	echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
@@ -1317,6 +1296,9 @@ EOF
     i*86:rdos:*:*)
 	echo ${UNAME_MACHINE}-pc-rdos
 	exit ;;
+    i*86:AROS:*:*)
+	echo ${UNAME_MACHINE}-pc-aros
+	exit ;;
 esac
 
 #echo '(No uname command or uname output not recognized.)' 1>&2
@@ -1477,9 +1459,9 @@ This script, last modified $timestamp, has failed to recognize
 the operating system you are using. It is advised that you
 download the most up to date version of the config scripts from
 
-  http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess
+  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
 and
-  http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub
+  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
 
 If the version you run ($0) is already up to date, please
 send the following data and any information you think might be
diff --git a/config.h.in b/config.h.in
index 5aab8d9..887913b 100644
--- a/config.h.in
+++ b/config.h.in
@@ -3,15 +3,9 @@
 /* Define if building universal (internal helper macro) */
 #undef AC_APPLE_UNIVERSAL_BUILD
 
-/* Define to 1 if your system is a PowerPC. */
-#undef ARCH_POWERPC
-
 /* Build stamp */
 #undef BUILDSTAMP
 
-/* Location of D-Bus services directory */
-#undef DBUS_SERVICES_DIR
-
 /* Define to disable per user plugin directory */
 #undef DISABLE_USER_PLUGIN_DIR
 
@@ -19,11 +13,11 @@
    language is requested. */
 #undef ENABLE_NLS
 
-/* Define to 1 if your system has AltiVec. */
-#undef HAVE_ALTIVEC
+/* Define to 1 if you have the `backtrace' function. */
+#undef HAVE_BACKTRACE
 
-/* Define to 1 if your system has an altivec.h file. */
-#undef HAVE_ALTIVEC_H
+/* Define if cexpf is present */
+#undef HAVE_CEXPF
 
 /* Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the
    CoreFoundation framework. */
@@ -40,12 +34,6 @@
 /* Define to 1 if you have the <execinfo.h> header file. */
 #undef HAVE_EXECINFO_H
 
-/* Define to 1 if you have the <fcntl.h> header file. */
-#undef HAVE_FCNTL_H
-
-/* Define to 1 if you have the <fts.h> header file. */
-#undef HAVE_FTS_H
-
 /* Define if the GNU gettext() function is already present or preinstalled. */
 #undef HAVE_GETTEXT
 
@@ -55,12 +43,12 @@
 /* Define to 1 if you have the <inttypes.h> header file. */
 #undef HAVE_INTTYPES_H
 
-/* Define to 1 if you have the <limits.h> header file. */
-#undef HAVE_LIMITS_H
-
 /* Define to 1 if you have the <memory.h> header file. */
 #undef HAVE_MEMORY_H
 
+/* Define if the /proc/self/exe symlink is supported */
+#undef HAVE_PROC_SELF_EXE
+
 /* Define to 1 if you have the <regex.h> header file. */
 #undef HAVE_REGEX_H
 
@@ -73,9 +61,6 @@
 /* Define to 1 if you have the `sigwait' function. */
 #undef HAVE_SIGWAIT
 
-/* Define to 1 if your system has SSE2 support */
-#undef HAVE_SSE2
-
 /* Define to 1 if you have the <stdint.h> header file. */
 #undef HAVE_STDINT_H
 
@@ -88,9 +73,6 @@
 /* Define to 1 if you have the <string.h> header file. */
 #undef HAVE_STRING_H
 
-/* Define to 1 if you have the <sys/errno.h> header file. */
-#undef HAVE_SYS_ERRNO_H
-
 /* Define to 1 if you have the <sys/stat.h> header file. */
 #undef HAVE_SYS_STAT_H
 
@@ -121,15 +103,9 @@
 /* Define to the version of this package. */
 #undef PACKAGE_VERSION
 
-/* Define the shared module suffix extension on your platform. */
-#undef SHARED_SUFFIX
-
 /* Define to 1 if you have the ANSI C header files. */
 #undef STDC_HEADERS
 
-/* Define to symbol prefix, if any */
-#undef SYMBOL_PREFIX
-
 /* Define if character set detection enabled */
 #undef USE_CHARDET
 
@@ -148,28 +124,6 @@
 /* If this macro is defined, use PCRE regex library. */
 #undef USE_REGEX_PCRE
 
-/* Enable extensions on AIX 3, Interix.  */
-#ifndef _ALL_SOURCE
-# undef _ALL_SOURCE
-#endif
-/* Enable GNU extensions on systems that have them.  */
-#ifndef _GNU_SOURCE
-# undef _GNU_SOURCE
-#endif
-/* Enable threading extensions on Solaris.  */
-#ifndef _POSIX_PTHREAD_SEMANTICS
-# undef _POSIX_PTHREAD_SEMANTICS
-#endif
-/* Enable extensions on HP NonStop.  */
-#ifndef _TANDEM_SOURCE
-# undef _TANDEM_SOURCE
-#endif
-/* Enable general extensions on Solaris.  */
-#ifndef __EXTENSIONS__
-# undef __EXTENSIONS__
-#endif
-
-
 /* Version number of package */
 #undef VERSION
 
@@ -185,12 +139,8 @@
 # endif
 #endif
 
-/* Define to 1 if on MINIX. */
-#undef _MINIX
-
-/* Define to 2 if the system does not provide POSIX.1 features except with
-   this defined. */
-#undef _POSIX_1_SOURCE
+/* Number of bits in a file offset, on hosts where this is settable. */
+#undef _FILE_OFFSET_BITS
 
-/* Define to 1 if you need to in order for `stat' and other things to work. */
-#undef _POSIX_SOURCE
+/* Define for large files, on AIX-style hosts. */
+#undef _LARGE_FILES
diff --git a/config.rpath b/config.rpath
index c492a93..17298f2 100644
--- a/config.rpath
+++ b/config.rpath
@@ -2,7 +2,7 @@
 # Output a system dependent set of variables, describing how to set the
 # run time search path of shared libraries in an executable.
 #
-#   Copyright 1996-2006 Free Software Foundation, Inc.
+#   Copyright 1996-2010 Free Software Foundation, Inc.
 #   Taken from GNU libtool, 2001
 #   Originally by Gordon Matzigkeit <gord at gnu.ai.mit.edu>, 1996
 #
@@ -47,7 +47,7 @@ for cc_temp in $CC""; do
 done
 cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'`
 
-# Code taken from libtool.m4's AC_LIBTOOL_PROG_COMPILER_PIC.
+# Code taken from libtool.m4's _LT_COMPILER_PIC.
 
 wl=
 if test "$GCC" = yes; then
@@ -64,7 +64,7 @@ else
           ;;
       esac
       ;;
-    mingw* | pw32* | os2*)
+    mingw* | cygwin* | pw32* | os2* | cegcc*)
       ;;
     hpux9* | hpux10* | hpux11*)
       wl='-Wl,'
@@ -74,9 +74,15 @@ else
       ;;
     newsos6)
       ;;
-    linux*)
+    linux* | k*bsd*-gnu)
       case $cc_basename in
-        icc* | ecc*)
+        ecc*)
+          wl='-Wl,'
+          ;;
+        icc* | ifort*)
+          wl='-Wl,'
+          ;;
+        lf95*)
           wl='-Wl,'
           ;;
         pgcc | pgf77 | pgf90)
@@ -100,7 +106,7 @@ else
     osf3* | osf4* | osf5*)
       wl='-Wl,'
       ;;
-    sco3.2v5*)
+    rdos*)
       ;;
     solaris*)
       wl='-Wl,'
@@ -108,11 +114,14 @@ else
     sunos4*)
       wl='-Qoption ld '
       ;;
-    sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+    sysv4 | sysv4.2uw2* | sysv4.3*)
       wl='-Wl,'
       ;;
     sysv4*MP*)
       ;;
+    sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+      wl='-Wl,'
+      ;;
     unicos*)
       wl='-Wl,'
       ;;
@@ -121,7 +130,7 @@ else
   esac
 fi
 
-# Code taken from libtool.m4's AC_LIBTOOL_PROG_LD_SHLIBS.
+# Code taken from libtool.m4's _LT_LINKER_SHLIBS.
 
 hardcode_libdir_flag_spec=
 hardcode_libdir_separator=
@@ -129,7 +138,7 @@ hardcode_direct=no
 hardcode_minus_L=no
 
 case "$host_os" in
-  cygwin* | mingw* | pw32*)
+  cygwin* | mingw* | pw32* | cegcc*)
     # FIXME: the MSVC++ port hasn't been tested in a loooong time
     # When not using gcc, we currently assume that we are using
     # Microsoft Visual C++.
@@ -155,7 +164,7 @@ if test "$with_gnu_ld" = yes; then
   # option of GNU ld is called -rpath, not --rpath.
   hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
   case "$host_os" in
-    aix3* | aix4* | aix5*)
+    aix[3-9]*)
       # On AIX/PPC, the GNU linker is very broken
       if test "$host_cpu" != ia64; then
         ld_shlibs=no
@@ -179,7 +188,7 @@ if test "$with_gnu_ld" = yes; then
         ld_shlibs=no
       fi
       ;;
-    cygwin* | mingw* | pw32*)
+    cygwin* | mingw* | pw32* | cegcc*)
       # hardcode_libdir_flag_spec is actually meaningless, as there is
       # no search path for DLLs.
       hardcode_libdir_flag_spec='-L$libdir'
@@ -189,11 +198,11 @@ if test "$with_gnu_ld" = yes; then
         ld_shlibs=no
       fi
       ;;
-    interix3*)
+    interix[3-9]*)
       hardcode_direct=no
       hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
       ;;
-    linux*)
+    gnu* | linux* | k*bsd*-gnu)
       if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
         :
       else
@@ -251,7 +260,7 @@ else
         hardcode_direct=unsupported
       fi
       ;;
-    aix4* | aix5*)
+    aix[4-9]*)
       if test "$host_cpu" = ia64; then
         # On IA64, the linker does run time linking by default, so we don't
         # have to do anything special.
@@ -261,7 +270,7 @@ else
         # Test if we are trying to use run time linking or normal
         # AIX style linking. If -brtl is somewhere in LDFLAGS, we
         # need to do runtime linking.
-        case $host_os in aix4.[23]|aix4.[23].*|aix5*)
+        case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
           for ld_flag in $LDFLAGS; do
             if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
               aix_use_runtimelinking=yes
@@ -280,7 +289,7 @@ else
             strings "$collect2name" | grep resolve_lib_name >/dev/null
           then
             # We have reworked collect2
-            hardcode_direct=yes
+            :
           else
             # We have old collect2
             hardcode_direct=unsupported
@@ -323,7 +332,7 @@ else
       ;;
     bsdi[45]*)
       ;;
-    cygwin* | mingw* | pw32*)
+    cygwin* | mingw* | pw32* | cegcc*)
       # When not using gcc, we currently assume that we are using
       # Microsoft Visual C++.
       # hardcode_libdir_flag_spec is actually meaningless, as there is
@@ -359,7 +368,7 @@ else
       hardcode_direct=yes
       hardcode_minus_L=yes
       ;;
-    freebsd* | kfreebsd*-gnu | dragonfly*)
+    freebsd* | dragonfly*)
       hardcode_libdir_flag_spec='-R$libdir'
       hardcode_direct=yes
       ;;
@@ -412,18 +421,22 @@ else
       hardcode_libdir_separator=:
       ;;
     openbsd*)
-      hardcode_direct=yes
-      if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-        hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+      if test -f /usr/libexec/ld.so; then
+        hardcode_direct=yes
+        if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+          hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+        else
+          case "$host_os" in
+            openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+              hardcode_libdir_flag_spec='-R$libdir'
+              ;;
+            *)
+              hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+              ;;
+          esac
+        fi
       else
-        case "$host_os" in
-          openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
-            hardcode_libdir_flag_spec='-R$libdir'
-            ;;
-          *)
-            hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
-            ;;
-        esac
+        ld_shlibs=no
       fi
       ;;
     os2*)
@@ -471,7 +484,7 @@ else
         ld_shlibs=yes
       fi
       ;;
-    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*)
+    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
       ;;
     sysv5* | sco3.2v5* | sco5v6*)
       hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`'
@@ -487,34 +500,52 @@ else
 fi
 
 # Check dynamic linker characteristics
-# Code taken from libtool.m4's AC_LIBTOOL_SYS_DYNAMIC_LINKER.
+# Code taken from libtool.m4's _LT_SYS_DYNAMIC_LINKER.
+# Unlike libtool.m4, here we don't care about _all_ names of the library, but
+# only about the one the linker finds when passed -lNAME. This is the last
+# element of library_names_spec in libtool.m4, or possibly two of them if the
+# linker has special search rules.
+library_names_spec=      # the last element of library_names_spec in libtool.m4
 libname_spec='lib$name'
 case "$host_os" in
   aix3*)
+    library_names_spec='$libname.a'
     ;;
-  aix4* | aix5*)
+  aix[4-9]*)
+    library_names_spec='$libname$shrext'
     ;;
   amigaos*)
+    library_names_spec='$libname.a'
     ;;
   beos*)
+    library_names_spec='$libname$shrext'
     ;;
   bsdi[45]*)
+    library_names_spec='$libname$shrext'
     ;;
-  cygwin* | mingw* | pw32*)
+  cygwin* | mingw* | pw32* | cegcc*)
     shrext=.dll
+    library_names_spec='$libname.dll.a $libname.lib'
     ;;
   darwin* | rhapsody*)
     shrext=.dylib
+    library_names_spec='$libname$shrext'
     ;;
   dgux*)
+    library_names_spec='$libname$shrext'
     ;;
   freebsd1*)
     ;;
-  kfreebsd*-gnu)
-    ;;
   freebsd* | dragonfly*)
+    case "$host_os" in
+      freebsd[123]*)
+        library_names_spec='$libname$shrext$versuffix' ;;
+      *)
+        library_names_spec='$libname$shrext' ;;
+    esac
     ;;
   gnu*)
+    library_names_spec='$libname$shrext'
     ;;
   hpux9* | hpux10* | hpux11*)
     case $host_cpu in
@@ -528,10 +559,13 @@ case "$host_os" in
         shrext=.sl
         ;;
     esac
+    library_names_spec='$libname$shrext'
     ;;
-  interix3*)
+  interix[3-9]*)
+    library_names_spec='$libname$shrext'
     ;;
   irix5* | irix6* | nonstopux*)
+    library_names_spec='$libname$shrext'
     case "$host_os" in
       irix5* | nonstopux*)
         libsuff= shlibsuff=
@@ -548,41 +582,59 @@ case "$host_os" in
     ;;
   linux*oldld* | linux*aout* | linux*coff*)
     ;;
-  linux*)
+  linux* | k*bsd*-gnu)
+    library_names_spec='$libname$shrext'
     ;;
   knetbsd*-gnu)
+    library_names_spec='$libname$shrext'
     ;;
   netbsd*)
+    library_names_spec='$libname$shrext'
     ;;
   newsos6)
+    library_names_spec='$libname$shrext'
     ;;
   nto-qnx*)
+    library_names_spec='$libname$shrext'
     ;;
   openbsd*)
+    library_names_spec='$libname$shrext$versuffix'
     ;;
   os2*)
     libname_spec='$name'
     shrext=.dll
+    library_names_spec='$libname.a'
     ;;
   osf3* | osf4* | osf5*)
+    library_names_spec='$libname$shrext'
+    ;;
+  rdos*)
     ;;
   solaris*)
+    library_names_spec='$libname$shrext'
     ;;
   sunos4*)
+    library_names_spec='$libname$shrext$versuffix'
     ;;
   sysv4 | sysv4.3*)
+    library_names_spec='$libname$shrext'
     ;;
   sysv4*MP*)
+    library_names_spec='$libname$shrext'
     ;;
   sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+    library_names_spec='$libname$shrext'
     ;;
   uts4*)
+    library_names_spec='$libname$shrext'
     ;;
 esac
 
 sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
 escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"`
 shlibext=`echo "$shrext" | sed -e 's,^\.,,'`
+escaped_libname_spec=`echo "X$libname_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
+escaped_library_names_spec=`echo "X$library_names_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
 escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
 
 LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <<EOF
@@ -596,6 +648,12 @@ libext="$libext"
 # Shared library suffix (normally "so").
 shlibext="$shlibext"
 
+# Format of library name prefix.
+libname_spec="$escaped_libname_spec"
+
+# Library names that the linker finds when passed -lNAME.
+library_names_spec="$escaped_library_names_spec"
+
 # Flag to hardcode \$libdir into a binary during linking.
 # This must work even if \$libdir does not exist.
 hardcode_libdir_flag_spec="$escaped_hardcode_libdir_flag_spec"
diff --git a/config.sub b/config.sub
index ae0b3dd..2a55a50 100644
--- a/config.sub
+++ b/config.sub
@@ -1,10 +1,10 @@
 #! /bin/sh
 # Configuration validation subroutine script.
 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
-#   Inc.
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+#   Free Software Foundation, Inc.
 
-timestamp='2006-07-02'
+timestamp='2009-11-20'
 
 # This file is (in principle) common to ALL GNU software.
 # The presence of a machine in this file suggests that SOME GNU software
@@ -32,13 +32,16 @@ timestamp='2006-07-02'
 
 
 # Please send patches to <config-patches at gnu.org>.  Submit a context
-# diff and a properly formatted ChangeLog entry.
+# diff and a properly formatted GNU ChangeLog entry.
 #
 # Configuration subroutine to validate and canonicalize a configuration type.
 # Supply the specified configuration type as an argument.
 # If it is invalid, we print an error message on stderr and exit with code 1.
 # Otherwise, we print the canonical config type on stdout and succeed.
 
+# You can get the latest version of this script from:
+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+
 # This file is supposed to be the same for all GNU packages
 # and recognize all the CPU types, system types and aliases
 # that are meaningful with *any* GNU software.
@@ -72,8 +75,8 @@ Report bugs and patches to <config-patches at gnu.org>."
 version="\
 GNU config.sub ($timestamp)
 
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-Free Software Foundation, Inc.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -122,6 +125,7 @@ maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
 case $maybe_os in
   nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
   uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
+  kopensolaris*-gnu* | \
   storm-chaos* | os2-emx* | rtmk-nova*)
     os=-$maybe_os
     basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
@@ -148,10 +152,13 @@ case $os in
 	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
 	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
 	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
-	-apple | -axis | -knuth | -cray)
+	-apple | -axis | -knuth | -cray | -microblaze)
 		os=
 		basic_machine=$1
 		;;
+        -bluegene*)
+	        os=-cnk
+		;;
 	-sim | -cisco | -oki | -wec | -winbond)
 		os=
 		basic_machine=$1
@@ -244,18 +251,21 @@ case $basic_machine in
 	| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
 	| bfin \
 	| c4x | clipper \
-	| d10v | d30v | dlx | dsp16xx | dvp \
-	| fr30 | frv \
+	| d10v | d30v | dlx | dsp16xx \
+	| fido | fr30 | frv \
 	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
 	| i370 | i860 | i960 | ia64 \
 	| ip2k | iq2000 \
+	| lm32 \
 	| m32c | m32r | m32rle | m68000 | m68k | m88k \
-	| maxq | mb | microblaze | mcore \
+	| maxq | mb | microblaze | mcore | mep | metag \
 	| mips | mipsbe | mipseb | mipsel | mipsle \
 	| mips16 \
 	| mips64 | mips64el \
-	| mips64vr | mips64vrel \
+	| mips64octeon | mips64octeonel \
 	| mips64orion | mips64orionel \
+	| mips64r5900 | mips64r5900el \
+	| mips64vr | mips64vrel \
 	| mips64vr4100 | mips64vr4100el \
 	| mips64vr4300 | mips64vr4300el \
 	| mips64vr5000 | mips64vr5000el \
@@ -268,6 +278,7 @@ case $basic_machine in
 	| mipsisa64sr71k | mipsisa64sr71kel \
 	| mipstx39 | mipstx39el \
 	| mn10200 | mn10300 \
+	| moxie \
 	| mt \
 	| msp430 \
 	| nios | nios2 \
@@ -276,19 +287,22 @@ case $basic_machine in
 	| pdp10 | pdp11 | pj | pjl \
 	| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
 	| pyramid \
-	| sh | sh[1234] | sh[24]a | sh[24]a*eb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
+	| rx \
+	| score \
+	| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
 	| sh64 | sh64le \
 	| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
 	| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
 	| spu | strongarm \
 	| tahoe | thumb | tic4x | tic80 | tron \
+	| ubicom32 \
 	| v850 | v850e \
 	| we32k \
-	| x86 | xscale | xscalee[bl] | xstormy16 | xtensa \
-	| z8k)
+	| x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
+	| z8k | z80)
 		basic_machine=$basic_machine-unknown
 		;;
-	m6811 | m68hc11 | m6812 | m68hc12)
+	m6811 | m68hc11 | m6812 | m68hc12 | picochip)
 		# Motorola 68HC11/12.
 		basic_machine=$basic_machine-unknown
 		os=-none
@@ -323,19 +337,22 @@ case $basic_machine in
 	| clipper-* | craynv-* | cydra-* \
 	| d10v-* | d30v-* | dlx-* \
 	| elxsi-* \
-	| f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
+	| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
 	| h8300-* | h8500-* \
 	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
 	| i*86-* | i860-* | i960-* | ia64-* \
 	| ip2k-* | iq2000-* \
+	| lm32-* \
 	| m32c-* | m32r-* | m32rle-* \
 	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
-	| m88110-* | m88k-* | maxq-* | mcore-* \
+	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
 	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
 	| mips16-* \
 	| mips64-* | mips64el-* \
-	| mips64vr-* | mips64vrel-* \
+	| mips64octeon-* | mips64octeonel-* \
 	| mips64orion-* | mips64orionel-* \
+	| mips64r5900-* | mips64r5900el-* \
+	| mips64vr-* | mips64vrel-* \
 	| mips64vr4100-* | mips64vr4100el-* \
 	| mips64vr4300-* | mips64vr4300el-* \
 	| mips64vr5000-* | mips64vr5000el-* \
@@ -356,21 +373,26 @@ case $basic_machine in
 	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
 	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
 	| pyramid-* \
-	| romp-* | rs6000-* \
-	| sh-* | sh[1234]-* | sh[24]a-* | sh[24]a*eb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
+	| romp-* | rs6000-* | rx-* \
+	| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
 	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
 	| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
 	| sparclite-* \
 	| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
 	| tahoe-* | thumb-* \
-	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
+	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \
 	| tron-* \
+	| ubicom32-* \
 	| v850-* | v850e-* | vax-* \
 	| we32k-* \
-	| x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \
-	| xstormy16-* | xtensa-* \
+	| x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
+	| xstormy16-* | xtensa*-* \
 	| ymp-* \
-	| z8k-*)
+	| z8k-* | z80-*)
+		;;
+	# Recognize the basic CPU types without company name, with glob match.
+	xtensa*)
+		basic_machine=$basic_machine-unknown
 		;;
 	# Recognize the various machine names and aliases which stand
 	# for a CPU type and a company and sometimes even an OS.
@@ -434,6 +456,10 @@ case $basic_machine in
 		basic_machine=m68k-apollo
 		os=-bsd
 		;;
+	aros)
+		basic_machine=i386-pc
+		os=-aros
+		;;
 	aux)
 		basic_machine=m68k-apple
 		os=-aux
@@ -442,10 +468,26 @@ case $basic_machine in
 		basic_machine=ns32k-sequent
 		os=-dynix
 		;;
+	blackfin)
+		basic_machine=bfin-unknown
+		os=-linux
+		;;
+	blackfin-*)
+		basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
+		os=-linux
+		;;
+	bluegene*)
+		basic_machine=powerpc-ibm
+		os=-cnk
+		;;
 	c90)
 		basic_machine=c90-cray
 		os=-unicos
 		;;
+        cegcc)
+		basic_machine=arm-unknown
+		os=-cegcc
+		;;
 	convex-c1)
 		basic_machine=c1-convex
 		os=-bsd
@@ -474,8 +516,8 @@ case $basic_machine in
 		basic_machine=craynv-cray
 		os=-unicosmp
 		;;
-	cr16c)
-		basic_machine=cr16c-unknown
+	cr16)
+		basic_machine=cr16-unknown
 		os=-elf
 		;;
 	crds | unos)
@@ -513,6 +555,10 @@ case $basic_machine in
 		basic_machine=m88k-motorola
 		os=-sysv3
 		;;
+	dicos)
+		basic_machine=i686-pc
+		os=-dicos
+		;;
 	djgpp)
 		basic_machine=i586-pc
 		os=-msdosdjgpp
@@ -667,6 +713,14 @@ case $basic_machine in
 		basic_machine=m68k-isi
 		os=-sysv
 		;;
+	m68knommu)
+		basic_machine=m68k-unknown
+		os=-linux
+		;;
+	m68knommu-*)
+		basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
+		os=-linux
+		;;
 	m88k-omron*)
 		basic_machine=m88k-omron
 		;;
@@ -678,10 +732,17 @@ case $basic_machine in
 		basic_machine=ns32k-utek
 		os=-sysv
 		;;
+        microblaze)
+		basic_machine=microblaze-xilinx
+		;;
 	mingw32)
 		basic_machine=i386-pc
 		os=-mingw32
 		;;
+	mingw32ce)
+		basic_machine=arm-unknown
+		os=-mingw32ce
+		;;
 	miniframe)
 		basic_machine=m68000-convergent
 		;;
@@ -689,24 +750,6 @@ case $basic_machine in
 		basic_machine=m68k-atari
 		os=-mint
 		;;
-	mipsEE* | ee | ps2)
-		basic_machine=mips64r5900el-scei
-		case $os in
-		    -linux*)
-			;;
-		    *)
-			os=-elf
-			;;
-		esac
-		;;
-	iop)
-		basic_machine=mipsel-scei
-		os=-irx
-		;;
-	dvp)
-		basic_machine=dvp-scei
-		os=-elf
-		;;
 	mips3*-*)
 		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
 		;;
@@ -826,6 +869,14 @@ case $basic_machine in
 		basic_machine=i860-intel
 		os=-osf
 		;;
+	parisc)
+		basic_machine=hppa-unknown
+		os=-linux
+		;;
+	parisc-*)
+		basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
+		os=-linux
+		;;
 	pbd)
 		basic_machine=sparc-tti
 		;;
@@ -927,6 +978,10 @@ case $basic_machine in
 	sb1el)
 		basic_machine=mipsisa64sb1el-unknown
 		;;
+	sde)
+		basic_machine=mipsisa32-sde
+		os=-elf
+		;;
 	sei)
 		basic_machine=mips-sei
 		os=-seiux
@@ -938,6 +993,9 @@ case $basic_machine in
 		basic_machine=sh-hitachi
 		os=-hms
 		;;
+	sh5el)
+		basic_machine=sh5le-unknown
+		;;
 	sh64)
 		basic_machine=sh64-unknown
 		;;
@@ -1027,6 +1085,10 @@ case $basic_machine in
 		basic_machine=tic6x-unknown
 		os=-coff
 		;;
+	tile*)
+		basic_machine=tile-unknown
+		os=-linux-gnu
+		;;
 	tx39)
 		basic_machine=mipstx39-unknown
 		;;
@@ -1102,6 +1164,10 @@ case $basic_machine in
 		basic_machine=z8k-unknown
 		os=-sim
 		;;
+	z80-*-coff)
+		basic_machine=z80-unknown
+		os=-sim
+		;;
 	none)
 		basic_machine=none-none
 		os=-none
@@ -1140,7 +1206,7 @@ case $basic_machine in
 	we32k)
 		basic_machine=we32k-att
 		;;
-	sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele)
+	sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
 		basic_machine=sh-unknown
 		;;
 	sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
@@ -1190,6 +1256,9 @@ case $os in
         # First match some system type aliases
         # that might get confused with valid system types.
 	# -solaris* is a basic system type, with this one exception.
+        -auroraux)
+	        os=-auroraux
+		;;
 	-solaris1 | -solaris1.*)
 		os=`echo $os | sed -e 's|solaris1|sunos4|'`
 		;;
@@ -1210,10 +1279,11 @@ case $os in
 	# Each alternative MUST END IN A *, to match a version number.
 	# -sysv* is not here because it comes later, after sysvr4.
 	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
-	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
-	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
+	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
+	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
+	      | -sym* | -kopensolaris* \
 	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
-	      | -aos* \
+	      | -aos* | -aros* \
 	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
 	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
 	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
@@ -1222,7 +1292,7 @@ case $os in
 	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
 	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
 	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
-	      | -chorusos* | -chorusrdb* \
+	      | -chorusos* | -chorusrdb* | -cegcc* \
 	      | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
 	      | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
 	      | -uxpv* | -beos* | -mpeix* | -udk* \
@@ -1232,7 +1302,7 @@ case $os in
 	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
 	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
 	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
-	      | -skyos* | -haiku* | -rdos* | -toppers* | -irx*)
+	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
 	# Remember, each alternative MUST END IN *, to match a version number.
 		;;
 	-qnx*)
@@ -1362,6 +1432,9 @@ case $os in
 	-zvmoe)
 		os=-zvmoe
 		;;
+	-dicos*)
+		os=-dicos
+		;;
 	-none)
 		;;
 	*)
@@ -1384,6 +1457,9 @@ else
 # system, and we'll never get to this point.
 
 case $basic_machine in
+        score-*)
+		os=-elf
+		;;
         spu-*)
 		os=-elf
 		;;
@@ -1424,6 +1500,9 @@ case $basic_machine in
 	m68*-cisco)
 		os=-aout
 		;;
+        mep-*)
+		os=-elf
+		;;
 	mips*-cisco)
 		os=-elf
 		;;
@@ -1553,7 +1632,7 @@ case $basic_machine in
 			-sunos*)
 				vendor=sun
 				;;
-			-aix*)
+			-cnk*|-aix*)
 				vendor=ibm
 				;;
 			-beos*)
diff --git a/configure b/configure
index d38343a..b5bb25a 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.68 for audacious 2.5.0.
+# Generated by GNU Autoconf 2.68 for audacious 3.2.
 #
 #
 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -11,7 +11,7 @@
 # This configure script is free software; the Free Software Foundation
 # gives unlimited permission to copy, distribute and modify it.
 #
-# (C) 2005-2011 Audacious Team
+# (C) 2005-2012 Audacious Team
 ## -------------------- ##
 ## M4sh Initialization. ##
 ## -------------------- ##
@@ -559,8 +559,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='audacious'
 PACKAGE_TARNAME='audacious'
-PACKAGE_VERSION='2.5.0'
-PACKAGE_STRING='audacious 2.5.0'
+PACKAGE_VERSION='3.2'
+PACKAGE_STRING='audacious 3.2'
 PACKAGE_BUGREPORT=''
 PACKAGE_URL=''
 
@@ -614,11 +614,6 @@ INPUT_PLUGIN_DIR
 TRANSPORT_PLUGIN_DIR
 pluginsubs
 plugindir
-HAVE_SUN
-HAVE_SOLARIS
-USE_X86ASM
-ARCH_X86
-ARCH_DEFINES
 USE_EGGSM
 GLIB214_LIBS
 GLIB214_CFLAGS
@@ -634,7 +629,6 @@ LIBPCRE_LIBS
 LIBPCRE_CFLAGS
 USE_DBUS
 LIBAUDCLIENT_LDFLAGS
-DBUS_SERVICES_DIR
 GLIB_GENMARSHAL
 DBUS_BINDING_TOOL
 DBUS_LIBS
@@ -642,47 +636,10 @@ DBUS_CFLAGS
 USE_CHARDET
 LIBGUESS_LIBS
 LIBGUESS_CFLAGS
-AUDLDFLAGS
 AUDACIOUS_PATH
-SIMD_CFLAGS
-LIBMCS_LIBS
-LIBMCS_CFLAGS
-MOWGLI_LIBS
-MOWGLI_CFLAGS
-CAIRO_LIBS
-CAIRO_CFLAGS
-PANGO_LIBS
-PANGO_CFLAGS
 GTK_LIBS
 GTK_CFLAGS
-GTHREAD_LIBS
-GTHREAD_CFLAGS
-PC_REQUIRES
-GLIB_LIBS
-GLIB_CFLAGS
-RANLIB
-TR
-AR
-CP
-MV
-RM
-LN_S
-am__fastdepCCAS_FALSE
-am__fastdepCCAS_TRUE
-CCASDEPMODE
-AMDEPBACKSLASH
-AMDEP_FALSE
-AMDEP_TRUE
-am__quote
-am__include
-DEPDIR
-am__leading_dot
-CCASFLAGS
-CCAS
-ac_ct_CXX
-CXXFLAGS
-CXX
-MAKE
+HAVE_MSWINDOWS
 POSUB
 LTLIBINTL
 LIBINTL
@@ -705,9 +662,7 @@ MKDIR_P
 INSTALL_DATA
 INSTALL_SCRIPT
 INSTALL_PROGRAM
-SET_MAKE
-SHARED_SUFFIX
-IMPLIB_LIBS
+BIGENDIAN
 CLEAN_LIB
 UNINSTALL_LIB
 INSTALL_LIB
@@ -719,8 +674,6 @@ LIB_SUFFIX
 LIB_PREFIX
 LIB_LDFLAGS
 LIB_CFLAGS
-PROG_IMPLIB_LDFLAGS
-PROG_IMPLIB_NEEDED
 TERM_SETAF6
 TERM_SETAF4
 TERM_SETAF3
@@ -730,14 +683,46 @@ TERM_BOLD
 TERM_SGR0
 TERM_EL
 TPUT
-VERSION
-PACKAGE
+CAIRO_LIBS
+CAIRO_CFLAGS
+PANGO_LIBS
+PANGO_CFLAGS
+GTHREAD_LIBS
+GTHREAD_CFLAGS
+GLIB_LIBS
+GLIB_CFLAGS
 PKG_CONFIG_LIBDIR
 PKG_CONFIG_PATH
 PKG_CONFIG
+WINDRES
+RANLIB
+TR
+AR
+CP
+MV
+RM
+SET_MAKE
+LN_S
+MAKE
 EGREP
 GREP
 CPP
+am__fastdepCCAS_FALSE
+am__fastdepCCAS_TRUE
+CCASDEPMODE
+am__nodep
+AMDEPBACKSLASH
+AMDEP_FALSE
+AMDEP_TRUE
+am__quote
+am__include
+DEPDIR
+am__leading_dot
+CCASFLAGS
+CCAS
+ac_ct_CXX
+CXXFLAGS
+CXX
 OBJEXT
 EXEEXT
 ac_ct_CC
@@ -757,6 +742,8 @@ build_os
 build_vendor
 build_cpu
 build
+VERSION
+PACKAGE
 target_alias
 host_alias
 build_alias
@@ -798,17 +785,16 @@ SHELL'
 ac_subst_files=''
 ac_user_opts='
 enable_option_checking
-with_buildstamp
-enable_text_console
+enable_dependency_tracking
+enable_largefile
 enable_nls
 with_gnu_ld
 enable_rpath
 with_libiconv_prefix
 with_libintl_prefix
+with_buildstamp
+enable_text_console
 enable_gtk3
-enable_dependency_tracking
-enable_sse2
-enable_altivec
 enable_user_plugin_dir
 enable_chardet
 enable_dbus
@@ -823,29 +809,25 @@ CFLAGS
 LDFLAGS
 LIBS
 CPPFLAGS
-CPP
-PKG_CONFIG
-PKG_CONFIG_PATH
-PKG_CONFIG_LIBDIR
 CXX
 CXXFLAGS
 CCC
 CCAS
 CCASFLAGS
+CPP
+PKG_CONFIG
+PKG_CONFIG_PATH
+PKG_CONFIG_LIBDIR
 GLIB_CFLAGS
 GLIB_LIBS
 GTHREAD_CFLAGS
 GTHREAD_LIBS
-GTK_CFLAGS
-GTK_LIBS
 PANGO_CFLAGS
 PANGO_LIBS
 CAIRO_CFLAGS
 CAIRO_LIBS
-MOWGLI_CFLAGS
-MOWGLI_LIBS
-LIBMCS_CFLAGS
-LIBMCS_LIBS
+GTK_CFLAGS
+GTK_LIBS
 LIBGUESS_CFLAGS
 LIBGUESS_LIBS
 DBUS_CFLAGS
@@ -1400,7 +1382,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures audacious 2.5.0 to adapt to many kinds of systems.
+\`configure' configures audacious 3.2 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1466,7 +1448,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of audacious 2.5.0:";;
+     short | recursive ) echo "Configuration of audacious 3.2:";;
    esac
   cat <<\_ACEOF
 
@@ -1474,14 +1456,13 @@ Optional Features:
   --disable-option-checking  ignore unrecognized --enable/--with options
   --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
   --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
-  --enable-text-console   Enable text console for MS-Windows hosts
-  --disable-nls           do not use Native Language Support
-  --disable-rpath         do not hardcode runtime library paths
-  --enable-gtk3           Use GTK3 instead of GTK2
   --disable-dependency-tracking  speeds up one-time build
   --enable-dependency-tracking   do not reject slow dependency extractors
-  --disable-sse2          Disable SSE2 support (def: enabled)
-  --disable-altivec       Disable AltiVec support (def: enabled)
+  --disable-largefile     omit support for large files
+  --disable-nls           do not use Native Language Support
+  --disable-rpath         do not hardcode runtime library paths
+  --enable-text-console   Enable text console for MS-Windows hosts
+  --disable-gtk3          Use GTK2 even if GTK3 is present
   --disable-user-plugin-dir
                           Disable per-user plugin dir (def: enabled)
   --disable-rpath         Disable disable rpath (def: enabled)
@@ -1492,12 +1473,12 @@ Optional Features:
 Optional Packages:
   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
   --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
-  --with-buildstamp=XXX   Set build stamp to XXX
   --with-gnu-ld           assume the C compiler uses GNU ld default=no
   --with-libiconv-prefix[=DIR]  search for libiconv in DIR/include and DIR/lib
   --without-libiconv-prefix     don't search for libiconv in includedir and libdir
   --with-libintl-prefix[=DIR]  search for libintl in DIR/include and DIR/lib
   --without-libintl-prefix     don't search for libintl in includedir and libdir
+  --with-buildstamp=XXX   Set build stamp to XXX
   --with-regexlib=gnu/oniguruma/pcre
                           Use the chosen regex library (def: gnu)
 
@@ -1509,36 +1490,30 @@ Some influential environment variables:
   LIBS        libraries to pass to the linker, e.g. -l<library>
   CPPFLAGS    (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
               you have headers in a nonstandard directory <include dir>
+  CXX         C++ compiler command
+  CXXFLAGS    C++ compiler flags
+  CCAS        assembler compiler command (defaults to CC)
+  CCASFLAGS   assembler compiler flags (defaults to CFLAGS)
   CPP         C preprocessor
   PKG_CONFIG  path to pkg-config utility
   PKG_CONFIG_PATH
               directories to add to pkg-config's search path
   PKG_CONFIG_LIBDIR
               path overriding pkg-config's built-in search path
-  CXX         C++ compiler command
-  CXXFLAGS    C++ compiler flags
-  CCAS        assembler compiler command (defaults to CC)
-  CCASFLAGS   assembler compiler flags (defaults to CFLAGS)
   GLIB_CFLAGS C compiler flags for GLIB, overriding pkg-config
   GLIB_LIBS   linker flags for GLIB, overriding pkg-config
   GTHREAD_CFLAGS
               C compiler flags for GTHREAD, overriding pkg-config
   GTHREAD_LIBS
               linker flags for GTHREAD, overriding pkg-config
-  GTK_CFLAGS  C compiler flags for GTK, overriding pkg-config
-  GTK_LIBS    linker flags for GTK, overriding pkg-config
   PANGO_CFLAGS
               C compiler flags for PANGO, overriding pkg-config
   PANGO_LIBS  linker flags for PANGO, overriding pkg-config
   CAIRO_CFLAGS
               C compiler flags for CAIRO, overriding pkg-config
   CAIRO_LIBS  linker flags for CAIRO, overriding pkg-config
-  MOWGLI_CFLAGS
-              C compiler flags for MOWGLI, overriding pkg-config
-  MOWGLI_LIBS linker flags for MOWGLI, overriding pkg-config
-  LIBMCS_CFLAGS
-              C compiler flags for LIBMCS, overriding pkg-config
-  LIBMCS_LIBS linker flags for LIBMCS, overriding pkg-config
+  GTK_CFLAGS  C compiler flags for GTK, overriding pkg-config
+  GTK_LIBS    linker flags for GTK, overriding pkg-config
   LIBGUESS_CFLAGS
               C compiler flags for LIBGUESS, overriding pkg-config
   LIBGUESS_LIBS
@@ -1624,14 +1599,14 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-audacious configure 2.5.0
+audacious configure 3.2
 generated by GNU Autoconf 2.68
 
 Copyright (C) 2010 Free Software Foundation, Inc.
 This configure script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it.
 
-(C) 2005-2011 Audacious Team
+(C) 2005-2012 Audacious Team
 _ACEOF
   exit
 fi
@@ -1678,6 +1653,86 @@ fi
 
 } # ac_fn_c_try_compile
 
+# ac_fn_cxx_try_compile LINENO
+# ----------------------------
+# Try to compile conftest.$ac_ext, and return whether this succeeded.
+ac_fn_cxx_try_compile ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  rm -f conftest.$ac_objext
+  if { { ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compile") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && {
+	 test -z "$ac_cxx_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_retval=1
+fi
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  as_fn_set_status $ac_retval
+
+} # ac_fn_cxx_try_compile
+
+# ac_fn_c_try_run LINENO
+# ----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
+# that executables *can* be run.
+ac_fn_c_try_run ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if { { ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
+  { { case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: program exited with status $ac_status" >&5
+       $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_retval=$ac_status
+fi
+  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+  as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_run
+
 # ac_fn_c_try_cpp LINENO
 # ----------------------
 # Try to preprocess conftest.$ac_ext, and return whether this succeeded.
@@ -1715,6 +1770,37 @@ fi
 
 } # ac_fn_c_try_cpp
 
+# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
+# -------------------------------------------------------
+# Tests whether HEADER exists and can be compiled using the include files in
+# INCLUDES, setting the cache variable VAR accordingly.
+ac_fn_c_check_header_compile ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if eval \${$3+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+#include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  eval "$3=yes"
+else
+  eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_header_compile
+
 # ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
 # -------------------------------------------------------
 # Tests whether HEADER exists, giving a warning if it cannot be compiled using
@@ -1802,13 +1888,13 @@ fi
 
 } # ac_fn_c_check_header_mongrel
 
-# ac_fn_c_try_run LINENO
-# ----------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
-# that executables *can* be run.
-ac_fn_c_try_run ()
+# ac_fn_c_try_link LINENO
+# -----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_link ()
 {
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  rm -f conftest.$ac_objext conftest$ac_exeext
   if { { ac_try="$ac_link"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
@@ -1816,97 +1902,24 @@ case "(($ac_try" in
 esac
 eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
 $as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
-  { { case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_try") 2>&5
+  (eval "$ac_link") 2>conftest.err
   ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }; then :
+  test $ac_status = 0; } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then :
   ac_retval=0
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-       $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_retval=$ac_status
-fi
-  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_run
-
-# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
-# -------------------------------------------------------
-# Tests whether HEADER exists and can be compiled using the include files in
-# INCLUDES, setting the cache variable VAR accordingly.
-ac_fn_c_check_header_compile ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-#include <$2>
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  eval "$3=yes"
-else
-  eval "$3=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$3
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_header_compile
-
-# ac_fn_c_try_link LINENO
-# -----------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_link ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  rm -f conftest.$ac_objext conftest$ac_exeext
-  if { { ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_retval=1
@@ -1921,44 +1934,6 @@ fi
 
 } # ac_fn_c_try_link
 
-# ac_fn_cxx_try_compile LINENO
-# ----------------------------
-# Try to compile conftest.$ac_ext, and return whether this succeeded.
-ac_fn_cxx_try_compile ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  rm -f conftest.$ac_objext
-  if { { ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_compile") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && {
-	 test -z "$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_retval=1
-fi
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  as_fn_set_status $ac_retval
-
-} # ac_fn_cxx_try_compile
-
 # ac_fn_c_check_func LINENO FUNC VAR
 # ----------------------------------
 # Tests whether FUNC exists, setting the cache variable VAR accordingly
@@ -2029,7 +2004,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by audacious $as_me 2.5.0, which was
+It was created by audacious $as_me 3.2, which was
 generated by GNU Autoconf 2.68.  Invocation command line was
 
   $ $0 $@
@@ -2379,6 +2354,22 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
 
+
+PACKAGE=audacious
+
+VERSION=3.2
+
+
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE "$PACKAGE"
+_ACEOF
+
+
+cat >>confdefs.h <<_ACEOF
+#define VERSION "$VERSION"
+_ACEOF
+
+
 ac_aux_dir=
 for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
   if test -f "$ac_dir/install-sh"; then
@@ -2518,6 +2509,9 @@ test -n "$target_alias" &&
   test "$program_prefix$program_suffix$program_transform_name" = \
     NONENONEs,x,x, &&
   program_prefix=${target_alias}-
+ac_config_headers="$ac_config_headers config.h"
+
+
 ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -3308,436 +3302,222 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
-$as_echo_n "checking how to run the C preprocessor... " >&6; }
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
-  CPP=
-fi
-if test -z "$CPP"; then
-  if ${ac_cv_prog_CPP+:} false; then :
+ac_ext=cpp
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
+if test -z "$CXX"; then
+  if test -n "$CCC"; then
+    CXX=$CCC
+  else
+    if test -n "$ac_tool_prefix"; then
+  for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
+  do
+    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_CXX+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-      # Double quotes because CPP needs to be expanded
-    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
-    do
-      ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
+  if test -n "$CXX"; then
+  ac_cv_prog_CXX="$CXX" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
 do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-		     Syntax error
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
 
-else
-  # Broken: fails on valid input.
-continue
 fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether nonexistent headers
-  # can be detected and how.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-  # Broken: success on invalid input.
-continue
-else
-  # Passes both tests.
-ac_preproc_ok=:
-break
 fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
-  break
+CXX=$ac_cv_prog_CXX
+if test -n "$CXX"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5
+$as_echo "$CXX" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
-    done
-    ac_cv_prog_CPP=$CPP
 
+    test -n "$CXX" && break
+  done
 fi
-  CPP=$ac_cv_prog_CPP
+if test -z "$CXX"; then
+  ac_ct_CXX=$CXX
+  for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_ac_ct_CXX+:} false; then :
+  $as_echo_n "(cached) " >&6
 else
-  ac_cv_prog_CPP=$CPP
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
-$as_echo "$CPP" >&6; }
-ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-		     Syntax error
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-
-else
-  # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether nonexistent headers
-  # can be detected and how.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-  # Broken: success on invalid input.
-continue
-else
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
-
-else
-  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
-$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
-if ${ac_cv_path_GREP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -z "$GREP"; then
-  ac_path_GREP_found=false
-  # Loop through the user's path and test for each of PROGNAME-LIST
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+  if test -n "$ac_ct_CXX"; then
+  ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-    for ac_prog in grep ggrep; do
     for ac_exec_ext in '' $ac_executable_extensions; do
-      ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
-      { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
-# Check for GNU ac_path_GREP and select it if it is found.
-  # Check for GNU $ac_path_GREP
-case `"$ac_path_GREP" --version 2>&1` in
-*GNU*)
-  ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
-*)
-  ac_count=0
-  $as_echo_n 0123456789 >"conftest.in"
-  while :
-  do
-    cat "conftest.in" "conftest.in" >"conftest.tmp"
-    mv "conftest.tmp" "conftest.in"
-    cp "conftest.in" "conftest.nl"
-    $as_echo 'GREP' >> "conftest.nl"
-    "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
-    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    as_fn_arith $ac_count + 1 && ac_count=$as_val
-    if test $ac_count -gt ${ac_path_GREP_max-0}; then
-      # Best one so far, save it but keep looking for a better one
-      ac_cv_path_GREP="$ac_path_GREP"
-      ac_path_GREP_max=$ac_count
-    fi
-    # 10*(2^10) chars as input seems more than enough
-    test $ac_count -gt 10 && break
-  done
-  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
-      $ac_path_GREP_found && break 3
-    done
-  done
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_ac_ct_CXX="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
   done
 IFS=$as_save_IFS
-  if test -z "$ac_cv_path_GREP"; then
-    as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
-  fi
+
+fi
+fi
+ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
+if test -n "$ac_ct_CXX"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5
+$as_echo "$ac_ct_CXX" >&6; }
 else
-  ac_cv_path_GREP=$GREP
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
-$as_echo "$ac_cv_path_GREP" >&6; }
- GREP="$ac_cv_path_GREP"
 
+  test -n "$ac_ct_CXX" && break
+done
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
-$as_echo_n "checking for egrep... " >&6; }
-if ${ac_cv_path_EGREP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
-   then ac_cv_path_EGREP="$GREP -E"
-   else
-     if test -z "$EGREP"; then
-  ac_path_EGREP_found=false
-  # Loop through the user's path and test for each of PROGNAME-LIST
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_prog in egrep; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
-      { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
-# Check for GNU ac_path_EGREP and select it if it is found.
-  # Check for GNU $ac_path_EGREP
-case `"$ac_path_EGREP" --version 2>&1` in
-*GNU*)
-  ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
-*)
-  ac_count=0
-  $as_echo_n 0123456789 >"conftest.in"
-  while :
-  do
-    cat "conftest.in" "conftest.in" >"conftest.tmp"
-    mv "conftest.tmp" "conftest.in"
-    cp "conftest.in" "conftest.nl"
-    $as_echo 'EGREP' >> "conftest.nl"
-    "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
-    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    as_fn_arith $ac_count + 1 && ac_count=$as_val
-    if test $ac_count -gt ${ac_path_EGREP_max-0}; then
-      # Best one so far, save it but keep looking for a better one
-      ac_cv_path_EGREP="$ac_path_EGREP"
-      ac_path_EGREP_max=$ac_count
-    fi
-    # 10*(2^10) chars as input seems more than enough
-    test $ac_count -gt 10 && break
-  done
-  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+  if test "x$ac_ct_CXX" = x; then
+    CXX="g++"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
 esac
-
-      $ac_path_EGREP_found && break 3
-    done
-  done
-  done
-IFS=$as_save_IFS
-  if test -z "$ac_cv_path_EGREP"; then
-    as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+    CXX=$ac_ct_CXX
   fi
-else
-  ac_cv_path_EGREP=$EGREP
 fi
 
-   fi
+  fi
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
-$as_echo "$ac_cv_path_EGREP" >&6; }
- EGREP="$ac_cv_path_EGREP"
-
+# Provide some information about the compiler.
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion; do
+  { { ac_try="$ac_compiler $ac_option >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    sed '10a\
+... rest of stderr output deleted ...
+         10q' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+  fi
+  rm -f conftest.er1 conftest.err
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+done
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
-$as_echo_n "checking for ANSI C header files... " >&6; }
-if ${ac_cv_header_stdc+:} false; then :
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5
+$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; }
+if ${ac_cv_cxx_compiler_gnu+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
 
 int
 main ()
 {
+#ifndef __GNUC__
+       choke me
+#endif
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_header_stdc=yes
+if ac_fn_cxx_try_compile "$LINENO"; then :
+  ac_compiler_gnu=yes
 else
-  ac_cv_header_stdc=no
+  ac_compiler_gnu=no
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-if test $ac_cv_header_stdc = yes; then
-  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "memchr" >/dev/null 2>&1; then :
-
-else
-  ac_cv_header_stdc=no
-fi
-rm -f conftest*
+ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
 
 fi
-
-if test $ac_cv_header_stdc = yes; then
-  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdlib.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "free" >/dev/null 2>&1; then :
-
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5
+$as_echo "$ac_cv_cxx_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+  GXX=yes
 else
-  ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
+  GXX=
 fi
-
-if test $ac_cv_header_stdc = yes; then
-  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
-  if test "$cross_compiling" = yes; then :
-  :
+ac_test_CXXFLAGS=${CXXFLAGS+set}
+ac_save_CXXFLAGS=$CXXFLAGS
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5
+$as_echo_n "checking whether $CXX accepts -g... " >&6; }
+if ${ac_cv_prog_cxx_g+:} false; then :
+  $as_echo_n "(cached) " >&6
 else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  ac_save_cxx_werror_flag=$ac_cxx_werror_flag
+   ac_cxx_werror_flag=yes
+   ac_cv_prog_cxx_g=no
+   CXXFLAGS="-g"
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <ctype.h>
-#include <stdlib.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
-		   (('a' <= (c) && (c) <= 'i') \
-		     || ('j' <= (c) && (c) <= 'r') \
-		     || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
 
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
 int
 main ()
 {
-  int i;
-  for (i = 0; i < 256; i++)
-    if (XOR (islower (i), ISLOWER (i))
-	|| toupper (i) != TOUPPER (i))
-      return 2;
+
+  ;
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-
+if ac_fn_cxx_try_compile "$LINENO"; then :
+  ac_cv_prog_cxx_g=yes
 else
-  ac_cv_header_stdc=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
-$as_echo "$ac_cv_header_stdc" >&6; }
-if test $ac_cv_header_stdc = yes; then
-
-$as_echo "#define STDC_HEADERS 1" >>confdefs.h
+  CXXFLAGS=""
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
-fi
+int
+main ()
+{
 
-# On IRIX 5.3, sys/types and inttypes.h are conflicting.
-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
-		  inttypes.h stdint.h unistd.h
-do :
-  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
-"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+  ;
+  return 0;
+}
 _ACEOF
+if ac_fn_cxx_try_compile "$LINENO"; then :
 
-fi
-
-done
-
-
-
-  ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default"
-if test "x$ac_cv_header_minix_config_h" = xyes; then :
-  MINIX=yes
-else
-  MINIX=
-fi
-
-
-  if test "$MINIX" = yes; then
-
-$as_echo "#define _POSIX_SOURCE 1" >>confdefs.h
-
-
-$as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h
-
-
-$as_echo "#define _MINIX 1" >>confdefs.h
-
-  fi
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5
-$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; }
-if ${ac_cv_safe_to_define___extensions__+:} false; then :
-  $as_echo_n "(cached) " >&6
 else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  ac_cxx_werror_flag=$ac_save_cxx_werror_flag
+	 CXXFLAGS="-g"
+	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
-#	  define __EXTENSIONS__ 1
-	  $ac_includes_default
 int
 main ()
 {
@@ -3746,733 +3526,1083 @@ main ()
   return 0;
 }
 _ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_safe_to_define___extensions__=yes
-else
-  ac_cv_safe_to_define___extensions__=no
+if ac_fn_cxx_try_compile "$LINENO"; then :
+  ac_cv_prog_cxx_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+   ac_cxx_werror_flag=$ac_save_cxx_werror_flag
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5
-$as_echo "$ac_cv_safe_to_define___extensions__" >&6; }
-  test $ac_cv_safe_to_define___extensions__ = yes &&
-    $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5
+$as_echo "$ac_cv_prog_cxx_g" >&6; }
+if test "$ac_test_CXXFLAGS" = set; then
+  CXXFLAGS=$ac_save_CXXFLAGS
+elif test $ac_cv_prog_cxx_g = yes; then
+  if test "$GXX" = yes; then
+    CXXFLAGS="-g -O2"
+  else
+    CXXFLAGS="-g"
+  fi
+else
+  if test "$GXX" = yes; then
+    CXXFLAGS="-O2"
+  else
+    CXXFLAGS=
+  fi
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+  am__leading_dot=.
+else
+  am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
 
-  $as_echo "#define _ALL_SOURCE 1" >>confdefs.h
+DEPDIR="${am__leading_dot}deps"
 
-  $as_echo "#define _GNU_SOURCE 1" >>confdefs.h
+ac_config_commands="$ac_config_commands depfiles"
 
-  $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h
 
-  $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h
+am_make=${MAKE-make}
+cat > confinc << 'END'
+am__doit:
+	@echo this is the am__doit target
+.PHONY: am__doit
+END
+# If we don't find an include directive, just comment out the code.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5
+$as_echo_n "checking for style of include used by $am_make... " >&6; }
+am__include="#"
+am__quote=
+_am_result=none
+# First try GNU make style include.
+echo "include confinc" > confmf
+# Ignore all kinds of additional output from `make'.
+case `$am_make -s -f confmf 2> /dev/null` in #(
+*the\ am__doit\ target*)
+  am__include=include
+  am__quote=
+  _am_result=GNU
+  ;;
+esac
+# Now try BSD make style include.
+if test "$am__include" = "#"; then
+   echo '.include "confinc"' > confmf
+   case `$am_make -s -f confmf 2> /dev/null` in #(
+   *the\ am__doit\ target*)
+     am__include=.include
+     am__quote="\""
+     _am_result=BSD
+     ;;
+   esac
+fi
 
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5
+$as_echo "$_am_result" >&6; }
+rm -f confinc confmf
 
+# Check whether --enable-dependency-tracking was given.
+if test "${enable_dependency_tracking+set}" = set; then :
+  enableval=$enable_dependency_tracking;
+fi
 
-ac_config_headers="$ac_config_headers config.h"
+if test "x$enable_dependency_tracking" != xno; then
+  am_depcomp="$ac_aux_dir/depcomp"
+  AMDEPBACKSLASH='\'
+  am__nodep='_no'
+fi
+ if test "x$enable_dependency_tracking" != xno; then
+  AMDEP_TRUE=
+  AMDEP_FALSE='#'
+else
+  AMDEP_TRUE='#'
+  AMDEP_FALSE=
+fi
 
 
+# By default we simply use the C compiler to build assembly code.
 
+test "${CCAS+set}" = set || CCAS=$CC
+test "${CCASFLAGS+set}" = set || CCASFLAGS=$CFLAGS
 
 
 
+depcc="$CCAS"   am_compiler_list=
 
-if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
-	if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
-set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_PKG_CONFIG+:} false; then :
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
+$as_echo_n "checking dependency style of $depcc... " >&6; }
+if ${am_cv_CCAS_dependencies_compiler_type+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  case $PKG_CONFIG in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-PKG_CONFIG=$ac_cv_path_PKG_CONFIG
-if test -n "$PKG_CONFIG"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
-$as_echo "$PKG_CONFIG" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
+  if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+  # We make a subdir and do the tests there.  Otherwise we can end up
+  # making bogus files that we don't know about and never remove.  For
+  # instance it was reported that on HP-UX the gcc test will end up
+  # making a dummy file named `D' -- because `-MD' means `put the output
+  # in D'.
+  rm -rf conftest.dir
+  mkdir conftest.dir
+  # Copy depcomp to subdir because otherwise we won't find it if we're
+  # using a relative directory.
+  cp "$am_depcomp" conftest.dir
+  cd conftest.dir
+  # We will build objects and dependencies in a subdirectory because
+  # it helps to detect inapplicable dependency modes.  For instance
+  # both Tru64's cc and ICC support -MD to output dependencies as a
+  # side effect of compilation, but ICC will put the dependencies in
+  # the current directory while Tru64 will put them in the object
+  # directory.
+  mkdir sub
 
-fi
-if test -z "$ac_cv_path_PKG_CONFIG"; then
-  ac_pt_PKG_CONFIG=$PKG_CONFIG
-  # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $ac_pt_PKG_CONFIG in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
+  am_cv_CCAS_dependencies_compiler_type=none
+  if test "$am_compiler_list" = ""; then
+     am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
   fi
-done
-  done
-IFS=$as_save_IFS
+  am__universal=false
 
-  ;;
-esac
-fi
-ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
-if test -n "$ac_pt_PKG_CONFIG"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
-$as_echo "$ac_pt_PKG_CONFIG" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
 
-  if test "x$ac_pt_PKG_CONFIG" = x; then
-    PKG_CONFIG=""
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    PKG_CONFIG=$ac_pt_PKG_CONFIG
-  fi
+  for depmode in $am_compiler_list; do
+    # Setup a source with many dependencies, because some compilers
+    # like to wrap large dependency lists on column 80 (with \), and
+    # we should not choose a depcomp mode which is confused by this.
+    #
+    # We need to recreate these files for each test, as the compiler may
+    # overwrite some of them when testing with obscure command lines.
+    # This happens at least with the AIX C compiler.
+    : > sub/conftest.c
+    for i in 1 2 3 4 5 6; do
+      echo '#include "conftst'$i'.h"' >> sub/conftest.c
+      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
+      # Solaris 8's {/usr,}/bin/sh.
+      touch sub/conftst$i.h
+    done
+    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+    # We check with `-c' and `-o' for the sake of the "dashmstdout"
+    # mode.  It turns out that the SunPro C++ compiler does not properly
+    # handle `-M -o', and we need to detect this.  Also, some Intel
+    # versions had trouble with output in subdirs
+    am__obj=sub/conftest.${OBJEXT-o}
+    am__minus_obj="-o $am__obj"
+    case $depmode in
+    gcc)
+      # This depmode causes a compiler race in universal mode.
+      test "$am__universal" = false || continue
+      ;;
+    nosideeffect)
+      # after this tag, mechanisms are not by side-effect, so they'll
+      # only be used when explicitly requested
+      if test "x$enable_dependency_tracking" = xyes; then
+	continue
+      else
+	break
+      fi
+      ;;
+    msvc7 | msvc7msys | msvisualcpp | msvcmsys)
+      # This compiler won't grok `-c -o', but also, the minuso test has
+      # not run yet.  These depmodes are late enough in the game, and
+      # so weak that their functioning should not be impacted.
+      am__obj=conftest.${OBJEXT-o}
+      am__minus_obj=
+      ;;
+    none) break ;;
+    esac
+    if depmode=$depmode \
+       source=sub/conftest.c object=$am__obj \
+       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+         >/dev/null 2>conftest.err &&
+       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+      # icc doesn't choke on unknown options, it will just issue warnings
+      # or remarks (even with -Werror).  So we grep stderr for any message
+      # that says an option was ignored or not supported.
+      # When given -MP, icc 7.0 and 7.1 complain thusly:
+      #   icc: Command line warning: ignoring option '-M'; no argument required
+      # The diagnosis changed in icc 8.0:
+      #   icc: Command line remark: option '-MP' not supported
+      if (grep 'ignoring option' conftest.err ||
+          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+        am_cv_CCAS_dependencies_compiler_type=$depmode
+        break
+      fi
+    fi
+  done
+
+  cd ..
+  rm -rf conftest.dir
 else
-  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+  am_cv_CCAS_dependencies_compiler_type=none
 fi
 
 fi
-if test -n "$PKG_CONFIG"; then
-	_pkg_min_version=0.9.0
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5
-$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; }
-	if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
-		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-	else
-		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-		PKG_CONFIG=""
-	fi
-fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CCAS_dependencies_compiler_type" >&5
+$as_echo "$am_cv_CCAS_dependencies_compiler_type" >&6; }
+CCASDEPMODE=depmode=$am_cv_CCAS_dependencies_compiler_type
 
-if test -d "/usr/X11R6/include"; then
-    CPPFLAGS="$CPPFLAGS -I/usr/X11R6/include"
+ if
+  test "x$enable_dependency_tracking" != xno \
+  && test "$am_cv_CCAS_dependencies_compiler_type" = gcc3; then
+  am__fastdepCCAS_TRUE=
+  am__fastdepCCAS_FALSE='#'
+else
+  am__fastdepCCAS_TRUE='#'
+  am__fastdepCCAS_FALSE=
 fi
 
-PACKAGE=audacious
-
-VERSION=2.5.0
 
 
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE "$PACKAGE"
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
+$as_echo_n "checking how to run the C preprocessor... " >&6; }
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+  CPP=
+fi
+if test -z "$CPP"; then
+  if ${ac_cv_prog_CPP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+      # Double quotes because CPP needs to be expanded
+    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
+    do
+      ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+		     Syntax error
 _ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
 
+else
+  # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
 
-cat >>confdefs.h <<_ACEOF
-#define VERSION "$VERSION"
+  # OK, works on sane cases.  Now check whether nonexistent headers
+  # can be detected and how.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <ac_nonexistent.h>
 _ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+  # Broken: success on invalid input.
+continue
+else
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
 
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
+  break
+fi
 
+    done
+    ac_cv_prog_CPP=$CPP
 
-	# Extract the first word of "tput", so it can be a program name with args.
-set dummy tput; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_TPUT+:} false; then :
-  $as_echo_n "(cached) " >&6
+fi
+  CPP=$ac_cv_prog_CPP
 else
-  case $TPUT in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_TPUT="$TPUT" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
+  ac_cv_prog_CPP=$CPP
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
+$as_echo "$CPP" >&6; }
+ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
 do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_TPUT="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
+  # Use a header file that comes with gcc, so configuring glibc
+  # with a fresh cross-compiler works.
+  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+  # <limits.h> exists even on freestanding compilers.
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp. "Syntax error" is here to catch this case.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+		     Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
 
-  ;;
-esac
-fi
-TPUT=$ac_cv_path_TPUT
-if test -n "$TPUT"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TPUT" >&5
-$as_echo "$TPUT" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  # Broken: fails on valid input.
+continue
 fi
+rm -f conftest.err conftest.i conftest.$ac_ext
 
+  # OK, works on sane cases.  Now check whether nonexistent headers
+  # can be detected and how.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+  # Broken: success on invalid input.
+continue
+else
+  # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
 
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok; then :
 
-	if test x"$TPUT" != x""; then :
-
-		if x=$($TPUT el 2>/dev/null); then
-			TERM_EL="$x"
+else
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details" "$LINENO" 5; }
+fi
 
-		else
-			TERM_EL="$($TPUT ce 2>/dev/null)"
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
-		fi
 
-		if x=$($TPUT sgr0 2>/dev/null); then
-			TERM_SGR0="$x"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
+$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
+if ${ac_cv_path_GREP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -z "$GREP"; then
+  ac_path_GREP_found=false
+  # Loop through the user's path and test for each of PROGNAME-LIST
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_prog in grep ggrep; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
+      { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
+# Check for GNU ac_path_GREP and select it if it is found.
+  # Check for GNU $ac_path_GREP
+case `"$ac_path_GREP" --version 2>&1` in
+*GNU*)
+  ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
+*)
+  ac_count=0
+  $as_echo_n 0123456789 >"conftest.in"
+  while :
+  do
+    cat "conftest.in" "conftest.in" >"conftest.tmp"
+    mv "conftest.tmp" "conftest.in"
+    cp "conftest.in" "conftest.nl"
+    $as_echo 'GREP' >> "conftest.nl"
+    "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
+    if test $ac_count -gt ${ac_path_GREP_max-0}; then
+      # Best one so far, save it but keep looking for a better one
+      ac_cv_path_GREP="$ac_path_GREP"
+      ac_path_GREP_max=$ac_count
+    fi
+    # 10*(2^10) chars as input seems more than enough
+    test $ac_count -gt 10 && break
+  done
+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
 
-		else
-			TERM_SGR0="$($TPUT me 2>/dev/null)"
+      $ac_path_GREP_found && break 3
+    done
+  done
+  done
+IFS=$as_save_IFS
+  if test -z "$ac_cv_path_GREP"; then
+    as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+  fi
+else
+  ac_cv_path_GREP=$GREP
+fi
 
-		fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
+$as_echo "$ac_cv_path_GREP" >&6; }
+ GREP="$ac_cv_path_GREP"
 
-		if x=$($TPUT bold 2>/dev/null); then
-			TERM_BOLD="$x"
 
-		else
-			TERM_BOLD="$($TPUT md 2>/dev/null)"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
+$as_echo_n "checking for egrep... " >&6; }
+if ${ac_cv_path_EGREP+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
+   then ac_cv_path_EGREP="$GREP -E"
+   else
+     if test -z "$EGREP"; then
+  ac_path_EGREP_found=false
+  # Loop through the user's path and test for each of PROGNAME-LIST
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_prog in egrep; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
+      { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
+# Check for GNU ac_path_EGREP and select it if it is found.
+  # Check for GNU $ac_path_EGREP
+case `"$ac_path_EGREP" --version 2>&1` in
+*GNU*)
+  ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
+*)
+  ac_count=0
+  $as_echo_n 0123456789 >"conftest.in"
+  while :
+  do
+    cat "conftest.in" "conftest.in" >"conftest.tmp"
+    mv "conftest.tmp" "conftest.in"
+    cp "conftest.in" "conftest.nl"
+    $as_echo 'EGREP' >> "conftest.nl"
+    "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
+    if test $ac_count -gt ${ac_path_EGREP_max-0}; then
+      # Best one so far, save it but keep looking for a better one
+      ac_cv_path_EGREP="$ac_path_EGREP"
+      ac_path_EGREP_max=$ac_count
+    fi
+    # 10*(2^10) chars as input seems more than enough
+    test $ac_count -gt 10 && break
+  done
+  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
 
-		fi
+      $ac_path_EGREP_found && break 3
+    done
+  done
+  done
+IFS=$as_save_IFS
+  if test -z "$ac_cv_path_EGREP"; then
+    as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+  fi
+else
+  ac_cv_path_EGREP=$EGREP
+fi
 
-		if x=$($TPUT setaf 1 2>/dev/null); then
-			TERM_SETAF1="$x"
+   fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
+$as_echo "$ac_cv_path_EGREP" >&6; }
+ EGREP="$ac_cv_path_EGREP"
 
-			TERM_SETAF2="$($TPUT setaf 2 2>/dev/null)"
 
-			TERM_SETAF3="$($TPUT setaf 3 2>/dev/null)"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
+$as_echo_n "checking for ANSI C header files... " >&6; }
+if ${ac_cv_header_stdc+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
 
-			TERM_SETAF4="$($TPUT setaf 4 2>/dev/null)"
+int
+main ()
+{
 
-			TERM_SETAF6="$($TPUT setaf 6 2>/dev/null)"
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_header_stdc=yes
+else
+  ac_cv_header_stdc=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
-		else
-			TERM_SETAF1="$($TPUT AF 1 2>/dev/null)"
+if test $ac_cv_header_stdc = yes; then
+  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <string.h>
 
-			TERM_SETAF2="$($TPUT AF 2 2>/dev/null)"
-
-			TERM_SETAF3="$($TPUT AF 3 2>/dev/null)"
-
-			TERM_SETAF4="$($TPUT AF 4 2>/dev/null)"
-
-			TERM_SETAF6="$($TPUT AF 6 2>/dev/null)"
-
-		fi
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "memchr" >/dev/null 2>&1; then :
 
 else
-
-		TERM_EL='\033\133K'
-
-		TERM_SGR0='\033\133m'
-
-		TERM_BOLD='\033\1331m'
-
-		TERM_SETAF1='\033\13331m'
-
-		TERM_SETAF2='\033\13332m'
-
-		TERM_SETAF3='\033\13333m'
-
-		TERM_SETAF4='\033\13334m'
-
-		TERM_SETAF6='\033\13336m'
-
-
+  ac_cv_header_stdc=no
 fi
+rm -f conftest*
 
+fi
 
+if test $ac_cv_header_stdc = yes; then
+  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdlib.h>
 
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we need an implib" >&5
-$as_echo_n "checking whether we need an implib... " >&6; }
-	case "$host_os" in
-		cygwin* | mingw*)
-			{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-			PROG_IMPLIB_NEEDED='yes'
-			PROG_IMPLIB_LDFLAGS='-Wl,-export-all-symbols,--out-implib,lib${PROG}.a'
-			;;
-		*)
-			{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-			PROG_IMPLIB_NEEDED='no'
-			PROG_IMPLIB_LDFLAGS=''
-			;;
-	esac
-
-
-
-
-
-
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for shared library system" >&5
-$as_echo_n "checking for shared library system... " >&6; }
-	case "$host_os" in
-		darwin*)
-			{ $as_echo "$as_me:${as_lineno-$LINENO}: result: Darwin" >&5
-$as_echo "Darwin" >&6; }
-			LIB_CFLAGS='-fPIC -DPIC'
-			LIB_LDFLAGS='-dynamiclib -current_version ${LIB_MAJOR}.${LIB_MINOR} -compatibility_version ${LIB_MAJOR}'
-			LIB_PREFIX='lib'
-			LIB_SUFFIX='.dylib'
-			LDFLAGS_RPATH='-Wl,-rpath,${libdir}'
-			PLUGIN_CFLAGS='-fPIC -DPIC'
-			PLUGIN_LDFLAGS='-bundle -undefined dynamic_lookup'
-			PLUGIN_SUFFIX='.impl'
-			INSTALL_LIB='${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$${i%.dylib}.${LIB_MAJOR}.${LIB_MINOR}.dylib && ${LN_S} -f $${i%.dylib}.${LIB_MAJOR}.${LIB_MINOR}.dylib ${DESTDIR}${libdir}/$${i%.dylib}.${LIB_MAJOR}.dylib && ${LN_S} -f $${i%.dylib}.${LIB_MAJOR}.${LIB_MINOR}.dylib ${DESTDIR}${libdir}/$$i'
-			UNINSTALL_LIB='rm -f ${DESTDIR}${libdir}/$$i ${DESTDIR}${libdir}/$${i%.dylib}.${LIB_MAJOR}.dylib ${DESTDIR}${libdir}/$${i%.dylib}.${LIB_MAJOR}.${LIB_MINOR}.dylib'
-			CLEAN_LIB=''
-			;;
-		solaris*)
-			{ $as_echo "$as_me:${as_lineno-$LINENO}: result: Solaris" >&5
-$as_echo "Solaris" >&6; }
-			LIB_CFLAGS='-fPIC -DPIC'
-			LIB_LDFLAGS='-shared -Wl,-soname=${LIB}.${LIB_MAJOR}.${LIB_MINOR}'
-			LIB_PREFIX='lib'
-			LIB_SUFFIX='.so'
-			LDFLAGS_RPATH='-Wl,-rpath,${libdir}'
-			PLUGIN_CFLAGS='-fPIC -DPIC'
-			PLUGIN_LDFLAGS='-shared'
-			PLUGIN_SUFFIX='.so'
-			INSTALL_LIB='${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR} && rm -f ${DESTDIR}${libdir}/$$i && ${LN_S} $$i.${LIB_MAJOR}.${LIB_MINOR} ${DESTDIR}${libdir}/$$i'
-			UNINSTALL_LIB='rm -f ${DESTDIR}${libdir}/$$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR}'
-			CLEAN_LIB=''
-			;;
-		openbsd* | mirbsd*)
-			{ $as_echo "$as_me:${as_lineno-$LINENO}: result: OpenBSD" >&5
-$as_echo "OpenBSD" >&6; }
-			LIB_CFLAGS='-fPIC -DPIC'
-			LIB_LDFLAGS='-shared'
-			LIB_PREFIX='lib'
-			LIB_SUFFIX='.so.${LIB_MAJOR}.${LIB_MINOR}'
-			LDFLAGS_RPATH='-Wl,-rpath,${libdir}'
-			PLUGIN_CFLAGS='-fPIC -DPIC'
-			PLUGIN_LDFLAGS='-shared'
-			PLUGIN_SUFFIX='.so'
-			INSTALL_LIB='${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$$i'
-			UNINSTALL_LIB='rm -f ${DESTDIR}${libdir}/$$i'
-			CLEAN_LIB=''
-			;;
-		cygwin* | mingw*)
-			{ $as_echo "$as_me:${as_lineno-$LINENO}: result: Win32" >&5
-$as_echo "Win32" >&6; }
-			LIB_CFLAGS=''
-			LIB_LDFLAGS='-shared -Wl,--out-implib,${LIB}.a'
-			LIB_PREFIX='lib'
-			LIB_SUFFIX='.dll'
-			LDFLAGS_RPATH='-Wl,-rpath,${libdir}'
-			PLUGIN_CFLAGS=''
-			PLUGIN_LDFLAGS='-shared'
-			PLUGIN_SUFFIX='.dll'
-			INSTALL_LIB='${MKDIR_P} ${DESTDIR}${bindir} && ${INSTALL} -m 755 $$i ${DESTDIR}${bindir}/$$i && ${INSTALL} -m 755 $$i.a ${DESTDIR}${libdir}/$$i.a'
-			UNINSTALL_LIB='rm -f ${DESTDIR}${bindir}/$$i ${DESTDIR}${libdir}/$$i.a'
-			CLEAN_LIB='${LIB}.a'
-			;;
-		*)
-			{ $as_echo "$as_me:${as_lineno-$LINENO}: result: GNU" >&5
-$as_echo "GNU" >&6; }
-			LIB_CFLAGS='-fPIC -DPIC'
-			LIB_LDFLAGS='-shared -Wl,-soname=${LIB}.${LIB_MAJOR}'
-			LIB_PREFIX='lib'
-			LIB_SUFFIX='.so'
-			LDFLAGS_RPATH='-Wl,-rpath,${libdir}'
-			PLUGIN_CFLAGS='-fPIC -DPIC'
-			PLUGIN_LDFLAGS='-shared'
-			PLUGIN_SUFFIX='.so'
-			INSTALL_LIB='${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR}.0 && ${LN_S} -f $$i.${LIB_MAJOR}.${LIB_MINOR}.0 ${DESTDIR}${libdir}/$$i.${LIB_MAJOR} && ${LN_S} -f $$i.${LIB_MAJOR}.${LIB_MINOR}.0 ${DESTDIR}${libdir}/$$i'
-			UNINSTALL_LIB='rm -f ${DESTDIR}${libdir}/$$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR} ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR}.0'
-			CLEAN_LIB=''
-			;;
-	esac
-
-
-
-
-
-
-
-
-
-
-
-
-
-IMPLIB_LIBS=""
-
-
-
-
-# Check whether --with-buildstamp was given.
-if test "${with_buildstamp+set}" = set; then :
-  withval=$with_buildstamp;
-cat >>confdefs.h <<_ACEOF
-#define BUILDSTAMP "$withval"
 _ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "free" >/dev/null 2>&1; then :
 
 else
-
-cat >>confdefs.h <<_ACEOF
-#define BUILDSTAMP "UNSUPPORTED VERSION"
-_ACEOF
-
+  ac_cv_header_stdc=no
 fi
+rm -f conftest*
 
+fi
 
+if test $ac_cv_header_stdc = yes; then
+  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+  if test "$cross_compiling" = yes; then :
+  :
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <ctype.h>
+#include <stdlib.h>
+#if ((' ' & 0x0FF) == 0x020)
+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#else
+# define ISLOWER(c) \
+		   (('a' <= (c) && (c) <= 'i') \
+		     || ('j' <= (c) && (c) <= 'r') \
+		     || ('s' <= (c) && (c) <= 'z'))
+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
+#endif
 
-CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=64"
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int
+main ()
+{
+  int i;
+  for (i = 0; i < 256; i++)
+    if (XOR (islower (i), ISLOWER (i))
+	|| toupper (i) != TOUPPER (i))
+      return 2;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
 
-# Check whether --enable-text-console was given.
-if test "${enable_text_console+set}" = set; then :
-  enableval=$enable_text_console; use_text_console=$withval
 else
-  use_text_console=no
-
+  ac_cv_header_stdc=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
+fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
+$as_echo "$ac_cv_header_stdc" >&6; }
+if test $ac_cv_header_stdc = yes; then
 
-SHARED_SUFFIX="$PLUGIN_SUFFIX"
+$as_echo "#define STDC_HEADERS 1" >>confdefs.h
 
+fi
 
-cat >>confdefs.h <<_ACEOF
-#define SHARED_SUFFIX "${SHARED_SUFFIX}"
+# On IRIX 5.3, sys/types and inttypes.h are conflicting.
+for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
+		  inttypes.h stdint.h unistd.h
+do :
+  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
+"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
 
+fi
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Windows or Macintosh" >&5
-$as_echo_n "checking for Windows or Macintosh... " >&6; }
-case "$target" in
-    *mingw*)
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: Windows" >&5
-$as_echo "Windows" >&6; }
-        if test "x$use_text_console" = "xno"; then
-            LDFLAGS="$LDFLAGS -Wl,-subsystem,windows"
-        fi
-        ;;
-    *apple*)
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: Macintosh" >&5
-$as_echo "Macintosh" >&6; }
-        LDFLAGS="$LDFLAGS -framework CoreFoundation -framework CoreServices -framework Carbon"
-        ;;
-    *)
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-        ;;
-esac
+done
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
-$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
-set x ${MAKE-make}
-ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5
+$as_echo_n "checking whether byte ordering is bigendian... " >&6; }
+if ${ac_cv_c_bigendian+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.make <<\_ACEOF
-SHELL = /bin/sh
-all:
-	@echo '@@@%%%=$(MAKE)=@@@%%%'
+  ac_cv_c_bigendian=unknown
+    # See if we're dealing with a universal compiler.
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifndef __APPLE_CC__
+	       not a universal capable compiler
+	     #endif
+	     typedef int dummy;
+
 _ACEOF
-# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
-case `${MAKE-make} -f conftest.make 2>/dev/null` in
-  *@@@%%%=?*=@@@%%%*)
-    eval ac_cv_prog_make_${ac_make}_set=yes;;
-  *)
-    eval ac_cv_prog_make_${ac_make}_set=no;;
-esac
-rm -f conftest.make
-fi
-if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-  SET_MAKE=
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-  SET_MAKE="MAKE=${MAKE-make}"
+if ac_fn_c_try_compile "$LINENO"; then :
+
+	# Check for potential -arch flags.  It is not universal unless
+	# there are at least two -arch flags with different values.
+	ac_arch=
+	ac_prev=
+	for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do
+	 if test -n "$ac_prev"; then
+	   case $ac_word in
+	     i?86 | x86_64 | ppc | ppc64)
+	       if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then
+		 ac_arch=$ac_word
+	       else
+		 ac_cv_c_bigendian=universal
+		 break
+	       fi
+	       ;;
+	   esac
+	   ac_prev=
+	 elif test "x$ac_word" = "x-arch"; then
+	   ac_prev=arch
+	 fi
+       done
 fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+    if test $ac_cv_c_bigendian = unknown; then
+      # See if sys/param.h defines the BYTE_ORDER macro.
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/types.h>
+	     #include <sys/param.h>
 
-# Find a good install program.  We prefer a C program (faster),
-# so one script is as good as another.  But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# SunOS /usr/etc/install
-# IRIX /sbin/install
-# AIX /bin/install
-# AmigaOS /C/install, which installs bootblocks on floppy discs
-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
-# OS/2's system install, which has a completely different semantic
-# ./install, which can be erroneously created by make from ./install.sh.
-# Reject install programs that cannot install multiple files.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
-$as_echo_n "checking for a BSD-compatible install... " >&6; }
-if test -z "$INSTALL"; then
-if ${ac_cv_path_install+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    # Account for people who put trailing slashes in PATH elements.
-case $as_dir/ in #((
-  ./ | .// | /[cC]/* | \
-  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
-  ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
-  /usr/ucb/* ) ;;
-  *)
-    # OSF1 and SCO ODT 3.0 have their own names for install.
-    # Don't use installbsd from OSF since it installs stuff as root
-    # by default.
-    for ac_prog in ginstall scoinst install; do
-      for ac_exec_ext in '' $ac_executable_extensions; do
-	if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
-	  if test $ac_prog = install &&
-	    grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
-	    # AIX install.  It has an incompatible calling convention.
-	    :
-	  elif test $ac_prog = install &&
-	    grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
-	    # program-specific install script used by HP pwplus--don't use.
-	    :
-	  else
-	    rm -rf conftest.one conftest.two conftest.dir
-	    echo one > conftest.one
-	    echo two > conftest.two
-	    mkdir conftest.dir
-	    if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
-	      test -s conftest.one && test -s conftest.two &&
-	      test -s conftest.dir/conftest.one &&
-	      test -s conftest.dir/conftest.two
-	    then
-	      ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
-	      break 3
-	    fi
-	  fi
-	fi
-      done
-    done
-    ;;
-esac
+int
+main ()
+{
+#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \
+		     && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \
+		     && LITTLE_ENDIAN)
+	      bogus endian macros
+	     #endif
 
-  done
-IFS=$as_save_IFS
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  # It does; now see whether it defined to BIG_ENDIAN or not.
+	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/types.h>
+		#include <sys/param.h>
 
-rm -rf conftest.one conftest.two conftest.dir
+int
+main ()
+{
+#if BYTE_ORDER != BIG_ENDIAN
+		 not big endian
+		#endif
 
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_c_bigendian=yes
+else
+  ac_cv_c_bigendian=no
 fi
-  if test "${ac_cv_path_install+set}" = set; then
-    INSTALL=$ac_cv_path_install
-  else
-    # As a last resort, use the slow shell script.  Don't cache a
-    # value for INSTALL within a source directory, because that will
-    # break other packages using the cache if that directory is
-    # removed, or if the value is a relative name.
-    INSTALL=$ac_install_sh
-  fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
-$as_echo "$INSTALL" >&6; }
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+    fi
+    if test $ac_cv_c_bigendian = unknown; then
+      # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris).
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <limits.h>
 
-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-# It thinks the first close brace ends the variable substitution.
-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+int
+main ()
+{
+#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN)
+	      bogus endian macros
+	     #endif
 
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  # It does; now see whether it defined to _BIG_ENDIAN or not.
+	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <limits.h>
 
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+int
+main ()
+{
+#ifndef _BIG_ENDIAN
+		 not big endian
+		#endif
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
-$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
-if test -z "$MKDIR_P"; then
-  if ${ac_cv_path_mkdir+:} false; then :
-  $as_echo_n "(cached) " >&6
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_c_bigendian=yes
 else
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_prog in mkdir gmkdir; do
-	 for ac_exec_ext in '' $ac_executable_extensions; do
-	   { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue
-	   case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
-	     'mkdir (GNU coreutils) '* | \
-	     'mkdir (coreutils) '* | \
-	     'mkdir (fileutils) '4.1*)
-	       ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
-	       break 3;;
-	   esac
-	 done
-       done
-  done
-IFS=$as_save_IFS
-
+  ac_cv_c_bigendian=no
 fi
-
-  test -d ./--version && rmdir ./--version
-  if test "${ac_cv_path_mkdir+set}" = set; then
-    MKDIR_P="$ac_cv_path_mkdir -p"
-  else
-    # As a last resort, use the slow shell script.  Don't cache a
-    # value for MKDIR_P within a source directory, because that will
-    # break other packages using the cache if that directory is
-    # removed, or if the value is a relative name.
-    MKDIR_P="$ac_install_sh -d"
-  fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
-$as_echo "$MKDIR_P" >&6; }
-
-mkdir_p="$MKDIR_P"
-case $mkdir_p in
-  [\\/$]* | ?:[\\/]*) ;;
-  */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
-esac
-
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+    fi
+    if test $ac_cv_c_bigendian = unknown; then
+      # Compile a test program.
+      if test "$cross_compiling" = yes; then :
+  # Try to guess by grepping values from an object file.
+	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+short int ascii_mm[] =
+		  { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
+		short int ascii_ii[] =
+		  { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
+		int use_ascii (int i) {
+		  return ascii_mm[i] + ascii_ii[i];
+		}
+		short int ebcdic_ii[] =
+		  { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
+		short int ebcdic_mm[] =
+		  { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
+		int use_ebcdic (int i) {
+		  return ebcdic_mm[i] + ebcdic_ii[i];
+		}
+		extern int foo;
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5
-$as_echo_n "checking whether NLS is requested... " >&6; }
-    # Check whether --enable-nls was given.
-if test "${enable_nls+set}" = set; then :
-  enableval=$enable_nls; USE_NLS=$enableval
-else
-  USE_NLS=yes
+int
+main ()
+{
+return use_ascii (foo) == use_ebcdic (foo);
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then
+	      ac_cv_c_bigendian=yes
+	    fi
+	    if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
+	      if test "$ac_cv_c_bigendian" = unknown; then
+		ac_cv_c_bigendian=no
+	      else
+		# finding both strings is unlikely to happen, but who knows?
+		ac_cv_c_bigendian=unknown
+	      fi
+	    fi
 fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$ac_includes_default
+int
+main ()
+{
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5
-$as_echo "$USE_NLS" >&6; }
+	     /* Are we little or big endian?  From Harbison&Steele.  */
+	     union
+	     {
+	       long int l;
+	       char c[sizeof (long int)];
+	     } u;
+	     u.l = 1;
+	     return u.c[sizeof (long int) - 1] == 1;
 
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  ac_cv_c_bigendian=no
+else
+  ac_cv_c_bigendian=yes
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
 
+    fi
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5
+$as_echo "$ac_cv_c_bigendian" >&6; }
+ case $ac_cv_c_bigendian in #(
+   yes)
+     $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h
+;; #(
+   no)
+      ;; #(
+   universal)
 
+$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
 
-      GETTEXT_MACRO_VERSION=0.18
+     ;; #(
+   *)
+     as_fn_error $? "unknown endianness
+ presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;;
+ esac
 
+# Check whether --enable-largefile was given.
+if test "${enable_largefile+set}" = set; then :
+  enableval=$enable_largefile;
+fi
 
+if test "$enable_largefile" != no; then
 
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5
+$as_echo_n "checking for special C compiler options needed for large files... " >&6; }
+if ${ac_cv_sys_largefile_CC+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_cv_sys_largefile_CC=no
+     if test "$GCC" != yes; then
+       ac_save_CC=$CC
+       while :; do
+	 # IRIX 6.2 and later do not support large files by default,
+	 # so use the C compiler's -n32 option if that helps.
+	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
+    since some C++ compilers masquerading as C compilers
+    incorrectly reject 9223372036854775807.  */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+		       && LARGE_OFF_T % 2147483647 == 1)
+		      ? 1 : -1];
+int
+main ()
+{
 
-# Prepare PATH_SEPARATOR.
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conf$$.sh
-  echo  "exit 0"   >>conf$$.sh
-  chmod +x conf$$.sh
-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-    PATH_SEPARATOR=';'
-  else
-    PATH_SEPARATOR=:
-  fi
-  rm -f conf$$.sh
+  ;
+  return 0;
+}
+_ACEOF
+	 if ac_fn_c_try_compile "$LINENO"; then :
+  break
+fi
+rm -f core conftest.err conftest.$ac_objext
+	 CC="$CC -n32"
+	 if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_sys_largefile_CC=' -n32'; break
+fi
+rm -f core conftest.err conftest.$ac_objext
+	 break
+       done
+       CC=$ac_save_CC
+       rm -f conftest.$ac_ext
+    fi
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5
+$as_echo "$ac_cv_sys_largefile_CC" >&6; }
+  if test "$ac_cv_sys_largefile_CC" != no; then
+    CC=$CC$ac_cv_sys_largefile_CC
+  fi
 
-# Find out how to test for executable files. Don't use a zero-byte file,
-# as systems may use methods other than mode bits to determine executability.
-cat >conf$$.file <<_ASEOF
-#! /bin/sh
-exit 0
-_ASEOF
-chmod +x conf$$.file
-if test -x conf$$.file >/dev/null 2>&1; then
-  ac_executable_p="test -x"
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5
+$as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; }
+if ${ac_cv_sys_file_offset_bits+:} false; then :
+  $as_echo_n "(cached) " >&6
 else
-  ac_executable_p="test -f"
+  while :; do
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
+    since some C++ compilers masquerading as C compilers
+    incorrectly reject 9223372036854775807.  */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+		       && LARGE_OFF_T % 2147483647 == 1)
+		      ? 1 : -1];
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_sys_file_offset_bits=no; break
 fi
-rm -f conf$$.file
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#define _FILE_OFFSET_BITS 64
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
+    since some C++ compilers masquerading as C compilers
+    incorrectly reject 9223372036854775807.  */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+		       && LARGE_OFF_T % 2147483647 == 1)
+		      ? 1 : -1];
+int
+main ()
+{
 
-# Extract the first word of "msgfmt", so it can be a program name with args.
-set dummy msgfmt; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_MSGFMT+:} false; then :
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_sys_file_offset_bits=64; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  ac_cv_sys_file_offset_bits=unknown
+  break
+done
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5
+$as_echo "$ac_cv_sys_file_offset_bits" >&6; }
+case $ac_cv_sys_file_offset_bits in #(
+  no | unknown) ;;
+  *)
+cat >>confdefs.h <<_ACEOF
+#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits
+_ACEOF
+;;
+esac
+rm -rf conftest*
+  if test $ac_cv_sys_file_offset_bits = unknown; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5
+$as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; }
+if ${ac_cv_sys_large_files+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  case "$MSGFMT" in
-  [\\/]* | ?:[\\/]*)
-    ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path.
-    ;;
+  while :; do
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
+    since some C++ compilers masquerading as C compilers
+    incorrectly reject 9223372036854775807.  */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+		       && LARGE_OFF_T % 2147483647 == 1)
+		      ? 1 : -1];
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_sys_large_files=no; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#define _LARGE_FILES 1
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+    We can't simply define LARGE_OFF_T to be 9223372036854775807,
+    since some C++ compilers masquerading as C compilers
+    incorrectly reject 9223372036854775807.  */
+#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+		       && LARGE_OFF_T % 2147483647 == 1)
+		      ? 1 : -1];
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_sys_large_files=1; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  ac_cv_sys_large_files=unknown
+  break
+done
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5
+$as_echo "$ac_cv_sys_large_files" >&6; }
+case $ac_cv_sys_large_files in #(
+  no | unknown) ;;
   *)
-    ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
-    for ac_dir in $PATH; do
-      IFS="$ac_save_IFS"
-      test -z "$ac_dir" && ac_dir=.
-      for ac_exec_ext in '' $ac_executable_extensions; do
-        if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
-          echo "$as_me: trying $ac_dir/$ac_word..." >&5
-          if $ac_dir/$ac_word --statistics /dev/null >&5 2>&1 &&
-     (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
-            ac_cv_path_MSGFMT="$ac_dir/$ac_word$ac_exec_ext"
-            break 2
-          fi
-        fi
-      done
-    done
-    IFS="$ac_save_IFS"
-  test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":"
-    ;;
+cat >>confdefs.h <<_ACEOF
+#define _LARGE_FILES $ac_cv_sys_large_files
+_ACEOF
+;;
 esac
-fi
-MSGFMT="$ac_cv_path_MSGFMT"
-if test "$MSGFMT" != ":"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5
-$as_echo "$MSGFMT" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+rm -rf conftest*
+  fi
 fi
 
-  # Extract the first word of "gmsgfmt", so it can be a program name with args.
-set dummy gmsgfmt; ac_word=$2
+
+
+
+
+
+
+
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+	if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_GMSGFMT+:} false; then :
+if ${ac_cv_path_PKG_CONFIG+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  case $GMSGFMT in
+  case $PKG_CONFIG in
   [\\/]* | ?:[\\/]*)
-  ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path.
+  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
   ;;
   *)
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -4482,7 +4612,7 @@ do
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext"
+    ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
@@ -4490,2237 +4620,985 @@ done
   done
 IFS=$as_save_IFS
 
-  test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT"
   ;;
 esac
 fi
-GMSGFMT=$ac_cv_path_GMSGFMT
-if test -n "$GMSGFMT"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5
-$as_echo "$GMSGFMT" >&6; }
+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+if test -n "$PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
+$as_echo "$PKG_CONFIG" >&6; }
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
 
-
-    case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
-    '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;;
-    *) MSGFMT_015=$MSGFMT ;;
-  esac
-
-  case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
-    '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;;
-    *) GMSGFMT_015=$GMSGFMT ;;
-  esac
-
-
-
-# Prepare PATH_SEPARATOR.
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conf$$.sh
-  echo  "exit 0"   >>conf$$.sh
-  chmod +x conf$$.sh
-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-    PATH_SEPARATOR=';'
-  else
-    PATH_SEPARATOR=:
-  fi
-  rm -f conf$$.sh
-fi
-
-# Find out how to test for executable files. Don't use a zero-byte file,
-# as systems may use methods other than mode bits to determine executability.
-cat >conf$$.file <<_ASEOF
-#! /bin/sh
-exit 0
-_ASEOF
-chmod +x conf$$.file
-if test -x conf$$.file >/dev/null 2>&1; then
-  ac_executable_p="test -x"
-else
-  ac_executable_p="test -f"
 fi
-rm -f conf$$.file
-
-# Extract the first word of "xgettext", so it can be a program name with args.
-set dummy xgettext; ac_word=$2
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+  ac_pt_PKG_CONFIG=$PKG_CONFIG
+  # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_XGETTEXT+:} false; then :
+if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  case "$XGETTEXT" in
+  case $ac_pt_PKG_CONFIG in
   [\\/]* | ?:[\\/]*)
-    ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path.
-    ;;
+  ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+  ;;
   *)
-    ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
-    for ac_dir in $PATH; do
-      IFS="$ac_save_IFS"
-      test -z "$ac_dir" && ac_dir=.
-      for ac_exec_ext in '' $ac_executable_extensions; do
-        if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
-          echo "$as_me: trying $ac_dir/$ac_word..." >&5
-          if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&5 2>&1 &&
-     (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
-            ac_cv_path_XGETTEXT="$ac_dir/$ac_word$ac_exec_ext"
-            break 2
-          fi
-        fi
-      done
-    done
-    IFS="$ac_save_IFS"
-  test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":"
-    ;;
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
 esac
 fi
-XGETTEXT="$ac_cv_path_XGETTEXT"
-if test "$XGETTEXT" != ":"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5
-$as_echo "$XGETTEXT" >&6; }
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
-    rm -f messages.po
-
-    case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
-    '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;;
-    *) XGETTEXT_015=$XGETTEXT ;;
-  esac
-
-
-
-# Prepare PATH_SEPARATOR.
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conf$$.sh
-  echo  "exit 0"   >>conf$$.sh
-  chmod +x conf$$.sh
-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-    PATH_SEPARATOR=';'
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG=""
   else
-    PATH_SEPARATOR=:
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
   fi
-  rm -f conf$$.sh
-fi
-
-# Find out how to test for executable files. Don't use a zero-byte file,
-# as systems may use methods other than mode bits to determine executability.
-cat >conf$$.file <<_ASEOF
-#! /bin/sh
-exit 0
-_ASEOF
-chmod +x conf$$.file
-if test -x conf$$.file >/dev/null 2>&1; then
-  ac_executable_p="test -x"
 else
-  ac_executable_p="test -f"
+  PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
 fi
-rm -f conf$$.file
 
-# Extract the first word of "msgmerge", so it can be a program name with args.
-set dummy msgmerge; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_MSGMERGE+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case "$MSGMERGE" in
-  [\\/]* | ?:[\\/]*)
-    ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path.
-    ;;
-  *)
-    ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
-    for ac_dir in $PATH; do
-      IFS="$ac_save_IFS"
-      test -z "$ac_dir" && ac_dir=.
-      for ac_exec_ext in '' $ac_executable_extensions; do
-        if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
-          echo "$as_me: trying $ac_dir/$ac_word..." >&5
-          if $ac_dir/$ac_word --update -q /dev/null /dev/null >&5 2>&1; then
-            ac_cv_path_MSGMERGE="$ac_dir/$ac_word$ac_exec_ext"
-            break 2
-          fi
-        fi
-      done
-    done
-    IFS="$ac_save_IFS"
-  test -z "$ac_cv_path_MSGMERGE" && ac_cv_path_MSGMERGE=":"
-    ;;
-esac
 fi
-MSGMERGE="$ac_cv_path_MSGMERGE"
-if test "$MSGMERGE" != ":"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5
-$as_echo "$MSGMERGE" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+if test -n "$PKG_CONFIG"; then
+	_pkg_min_version=0.9.0
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5
+$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; }
+	if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+	else
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
+		PKG_CONFIG=""
+	fi
 fi
 
 
-        test -n "$localedir" || localedir='${datadir}/locale'
 
 
-    test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS=
 
 
-  ac_config_commands="$ac_config_commands po-directories"
 
 
+if test "x$GCC" = "xyes"; then
+    CFLAGS="$CFLAGS -std=gnu99 -Wall -pipe"
+    CXXFLAGS="$CXXFLAGS -Wall -pipe"
 
-      if test "X$prefix" = "XNONE"; then
-    acl_final_prefix="$ac_default_prefix"
-  else
-    acl_final_prefix="$prefix"
-  fi
-  if test "X$exec_prefix" = "XNONE"; then
-    acl_final_exec_prefix='${prefix}'
-  else
-    acl_final_exec_prefix="$exec_prefix"
-  fi
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  eval acl_final_exec_prefix=\"$acl_final_exec_prefix\"
-  prefix="$acl_save_prefix"
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C/C++ compiler supports -Wtype-limits" >&5
+$as_echo_n "checking whether the C/C++ compiler supports -Wtype-limits... " >&6; }
+    OLDCFLAGS="$CFLAGS"
+    CFLAGS="$CFLAGS -Wtype-limits -Werror"
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+return 0;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
 
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+        CFLAGS="$OLDCFLAGS -Wtype-limits"
+        CXXFLAGS="$CXXFLAGS -Wtype-limits"
 
-# Check whether --with-gnu-ld was given.
-if test "${with_gnu_ld+set}" = set; then :
-  withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
 else
-  with_gnu_ld=no
+
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+        CFLAGS="$OLDCFLAGS"
+
 fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
-# Prepare PATH_SEPARATOR.
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conf$$.sh
-  echo  "exit 0"   >>conf$$.sh
-  chmod +x conf$$.sh
-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-    PATH_SEPARATOR=';'
-  else
-    PATH_SEPARATOR=:
-  fi
-  rm -f conf$$.sh
 fi
-ac_prog=ld
-if test "$GCC" = yes; then
-  # Check if gcc -print-prog-name=ld gives a path.
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by GCC" >&5
-$as_echo_n "checking for ld used by GCC... " >&6; }
-  case $host in
-  *-*-mingw*)
-    # gcc leaves a trailing carriage return which upsets mingw
-    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
-  *)
-    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
-  esac
-  case $ac_prog in
-    # Accept absolute paths.
-    [\\/]* | [A-Za-z]:[\\/]*)
-      re_direlt='/[^/][^/]*/\.\./'
-      # Canonicalize the path of ld
-      ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
-      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
-        ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
-      done
-      test -z "$LD" && LD="$ac_prog"
-      ;;
-  "")
-    # If it fails, then pretend we aren't using GCC.
-    ac_prog=ld
-    ;;
-  *)
-    # If it is relative, then search for the first ld in PATH.
-    with_gnu_ld=unknown
-    ;;
-  esac
-elif test "$with_gnu_ld" = yes; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
-$as_echo_n "checking for GNU ld... " >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
-$as_echo_n "checking for non-GNU ld... " >&6; }
-fi
-if ${acl_cv_path_LD+:} false; then :
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Linux" >&5
+$as_echo_n "checking for Linux... " >&6; }
+case "$target" in
+    *linux*)
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+        LDFLAGS="$LDFLAGS -Wl,-z,defs"
+        ;;
+    *)
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+        ;;
+esac
+
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU make" >&5
+$as_echo_n "checking for GNU make... " >&6; }
+if ${_cv_gnu_make_command+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  if test -z "$LD"; then
-  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
-  for ac_dir in $PATH; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
-      acl_cv_path_LD="$ac_dir/$ac_prog"
-      # Check to see if the program is GNU ld.  I'd rather use --version,
-      # but apparently some GNU ld's only accept -v.
-      # Break only if it was the GNU/non-GNU ld that we prefer.
-      case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in
-      *GNU* | *'with BFD'*)
-        test "$with_gnu_ld" != no && break ;;
-      *)
-        test "$with_gnu_ld" != yes && break ;;
-      esac
+
+    _cv_gnu_make_command=""
+    for a in "$MAKE" make gmake gnumake; do
+        test "x$a" = "x" && continue
+        if ( sh -c "$a --version" 2>/dev/null | grep "GNU Make" >/dev/null ) ; then
+            _cv_gnu_make_command="$a"
+            break
+        fi
+    done
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_cv_gnu_make_command" >&5
+$as_echo "$_cv_gnu_make_command" >&6; }
+    if test "x$_cv_gnu_make_command" != "x" ; then
+        MAKE="$_cv_gnu_make_command"
+    else
+        as_fn_error $? "** GNU make not found. If it is installed, try setting MAKE environment variable. **" "$LINENO" 5
     fi
-  done
-  IFS="$ac_save_ifs"
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
+$as_echo_n "checking whether ln -s works... " >&6; }
+LN_S=$as_ln_s
+if test "$LN_S" = "ln -s"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
 else
-  acl_cv_path_LD="$LD" # Let the user override the test with a path.
-fi
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
+$as_echo "no, using $LN_S" >&6; }
 fi
 
-LD="$acl_cv_path_LD"
-if test -n "$LD"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
-$as_echo "$LD" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
+set x ${MAKE-make}
+ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
+if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat >conftest.make <<\_ACEOF
+SHELL = /bin/sh
+all:
+	@echo '@@@%%%=$(MAKE)=@@@%%%'
+_ACEOF
+# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
+case `${MAKE-make} -f conftest.make 2>/dev/null` in
+  *@@@%%%=?*=@@@%%%*)
+    eval ac_cv_prog_make_${ac_make}_set=yes;;
+  *)
+    eval ac_cv_prog_make_${ac_make}_set=no;;
+esac
+rm -f conftest.make
+fi
+if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+  SET_MAKE=
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
+  SET_MAKE="MAKE=${MAKE-make}"
 fi
-test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
-$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
-if ${acl_cv_prog_gnu_ld+:} false; then :
+
+# Extract the first word of "rm", so it can be a program name with args.
+set dummy rm; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_RM+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  # I'd rather use --version here, but apparently some GNU ld's only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
-  acl_cv_prog_gnu_ld=yes ;;
-*)
-  acl_cv_prog_gnu_ld=no ;;
+  case $RM in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_RM="$RM" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_RM="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  ;;
 esac
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_prog_gnu_ld" >&5
-$as_echo "$acl_cv_prog_gnu_ld" >&6; }
-with_gnu_ld=$acl_cv_prog_gnu_ld
-
-
+RM=$ac_cv_path_RM
+if test -n "$RM"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RM" >&5
+$as_echo "$RM" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
 
 
-                                                { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shared library run path origin" >&5
-$as_echo_n "checking for shared library run path origin... " >&6; }
-if ${acl_cv_rpath+:} false; then :
+# Extract the first word of "mv", so it can be a program name with args.
+set dummy mv; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_MV+:} false; then :
   $as_echo_n "(cached) " >&6
 else
+  case $MV in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_MV="$MV" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_MV="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
 
-    CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
-    ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
-    . ./conftest.sh
-    rm -f ./conftest.sh
-    acl_cv_rpath=done
-
+  ;;
+esac
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_rpath" >&5
-$as_echo "$acl_cv_rpath" >&6; }
-  wl="$acl_cv_wl"
-  acl_libext="$acl_cv_libext"
-  acl_shlibext="$acl_cv_shlibext"
-  acl_libname_spec="$acl_cv_libname_spec"
-  acl_library_names_spec="$acl_cv_library_names_spec"
-  acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
-  acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
-  acl_hardcode_direct="$acl_cv_hardcode_direct"
-  acl_hardcode_minus_L="$acl_cv_hardcode_minus_L"
-    # Check whether --enable-rpath was given.
-if test "${enable_rpath+set}" = set; then :
-  enableval=$enable_rpath; :
+MV=$ac_cv_path_MV
+if test -n "$MV"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MV" >&5
+$as_echo "$MV" >&6; }
 else
-  enable_rpath=yes
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
-
-
-  acl_libdirstem=lib
-  acl_libdirstem2=
-  case "$host_os" in
-    solaris*)
-                                    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit host" >&5
-$as_echo_n "checking for 64-bit host... " >&6; }
-if ${gl_cv_solaris_64bit+:} false; then :
+# Extract the first word of "cp", so it can be a program name with args.
+set dummy cp; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_CP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#ifdef _LP64
-sixtyfour bits
-#endif
+  case $CP in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_CP="$CP" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_CP="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
 
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "sixtyfour bits" >/dev/null 2>&1; then :
-  gl_cv_solaris_64bit=yes
-else
-  gl_cv_solaris_64bit=no
+  ;;
+esac
 fi
-rm -f conftest*
-
-
+CP=$ac_cv_path_CP
+if test -n "$CP"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CP" >&5
+$as_echo "$CP" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_solaris_64bit" >&5
-$as_echo "$gl_cv_solaris_64bit" >&6; }
-      if test $gl_cv_solaris_64bit = yes; then
-        acl_libdirstem=lib/64
-        case "$host_cpu" in
-          sparc*)        acl_libdirstem2=lib/sparcv9 ;;
-          i*86 | x86_64) acl_libdirstem2=lib/amd64 ;;
-        esac
-      fi
-      ;;
-    *)
-      searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'`
-      if test -n "$searchpath"; then
-        acl_save_IFS="${IFS= 	}"; IFS=":"
-        for searchdir in $searchpath; do
-          if test -d "$searchdir"; then
-            case "$searchdir" in
-              */lib64/ | */lib64 ) acl_libdirstem=lib64 ;;
-              */../ | */.. )
-                # Better ignore directories of this form. They are misleading.
-                ;;
-              *) searchdir=`cd "$searchdir" && pwd`
-                 case "$searchdir" in
-                   */lib64 ) acl_libdirstem=lib64 ;;
-                 esac ;;
-            esac
-          fi
-        done
-        IFS="$acl_save_IFS"
-      fi
-      ;;
-  esac
-  test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem"
 
 
+# Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_AR+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $AR in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_AR="$AR" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_AR="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
 
+  ;;
+esac
+fi
+AR=$ac_cv_path_AR
+if test -n "$AR"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+$as_echo "$AR" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
 
 
+# Extract the first word of "tr", so it can be a program name with args.
+set dummy tr; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_TR+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $TR in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_TR="$TR" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_TR="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
 
+  ;;
+esac
+fi
+TR=$ac_cv_path_TR
+if test -n "$TR"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TR" >&5
+$as_echo "$TR" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
 
 
+# Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_RANLIB+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $RANLIB in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_RANLIB="$RANLIB" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_RANLIB="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
 
+  ;;
+esac
+fi
+RANLIB=$ac_cv_path_RANLIB
+if test -n "$RANLIB"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
+$as_echo "$RANLIB" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
 
 
+# Extract the first word of "windres", so it can be a program name with args.
+set dummy windres; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_WINDRES+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  case $WINDRES in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_WINDRES="$WINDRES" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_WINDRES="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
 
-    use_additional=yes
+  ;;
+esac
+fi
+WINDRES=$ac_cv_path_WINDRES
+if test -n "$WINDRES"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $WINDRES" >&5
+$as_echo "$WINDRES" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
 
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  acl_save_exec_prefix="$exec_prefix"
-  exec_prefix="$acl_final_exec_prefix"
 
-    eval additional_includedir=\"$includedir\"
-    eval additional_libdir=\"$libdir\"
 
-  exec_prefix="$acl_save_exec_prefix"
-  prefix="$acl_save_prefix"
 
 
-# Check whether --with-libiconv-prefix was given.
-if test "${with_libiconv_prefix+set}" = set; then :
-  withval=$with_libiconv_prefix;
-    if test "X$withval" = "Xno"; then
-      use_additional=no
-    else
-      if test "X$withval" = "X"; then
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GLIB" >&5
+$as_echo_n "checking for GLIB... " >&6; }
 
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  acl_save_exec_prefix="$exec_prefix"
-  exec_prefix="$acl_final_exec_prefix"
+if test -n "$GLIB_CFLAGS"; then
+    pkg_cv_GLIB_CFLAGS="$GLIB_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.16\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.16") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_GLIB_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 >= 2.16" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+if test -n "$GLIB_LIBS"; then
+    pkg_cv_GLIB_LIBS="$GLIB_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.16\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.16") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_GLIB_LIBS=`$PKG_CONFIG --libs "glib-2.0 >= 2.16" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
 
-          eval additional_includedir=\"$includedir\"
-          eval additional_libdir=\"$libdir\"
 
-  exec_prefix="$acl_save_exec_prefix"
-  prefix="$acl_save_prefix"
 
-      else
-        additional_includedir="$withval/include"
-        additional_libdir="$withval/$acl_libdirstem"
-        if test "$acl_libdirstem2" != "$acl_libdirstem" \
-           && ! test -d "$withval/$acl_libdirstem"; then
-          additional_libdir="$withval/$acl_libdirstem2"
-        fi
-      fi
-    fi
+if test $pkg_failed = yes; then
+   	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
 fi
-
-      LIBICONV=
-  LTLIBICONV=
-  INCICONV=
-  LIBICONV_PREFIX=
-      HAVE_LIBICONV=
-  rpathdirs=
-  ltrpathdirs=
-  names_already_handled=
-  names_next_round='iconv '
-  while test -n "$names_next_round"; do
-    names_this_round="$names_next_round"
-    names_next_round=
-    for name in $names_this_round; do
-      already_handled=
-      for n in $names_already_handled; do
-        if test "$n" = "$name"; then
-          already_handled=yes
-          break
-        fi
-      done
-      if test -z "$already_handled"; then
-        names_already_handled="$names_already_handled $name"
-                        uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
-        eval value=\"\$HAVE_LIB$uppername\"
-        if test -n "$value"; then
-          if test "$value" = yes; then
-            eval value=\"\$LIB$uppername\"
-            test -z "$value" || LIBICONV="${LIBICONV}${LIBICONV:+ }$value"
-            eval value=\"\$LTLIB$uppername\"
-            test -z "$value" || LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$value"
-          else
-                                    :
-          fi
-        else
-                              found_dir=
-          found_la=
-          found_so=
-          found_a=
-          eval libname=\"$acl_libname_spec\"    # typically: libname=lib$name
-          if test -n "$acl_shlibext"; then
-            shrext=".$acl_shlibext"             # typically: shrext=.so
-          else
-            shrext=
-          fi
-          if test $use_additional = yes; then
-            dir="$additional_libdir"
-                                    if test -n "$acl_shlibext"; then
-              if test -f "$dir/$libname$shrext"; then
-                found_dir="$dir"
-                found_so="$dir/$libname$shrext"
-              else
-                if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
-                  ver=`(cd "$dir" && \
-                        for f in "$libname$shrext".*; do echo "$f"; done \
-                        | sed -e "s,^$libname$shrext\\\\.,," \
-                        | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
-                        | sed 1q ) 2>/dev/null`
-                  if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
-                    found_dir="$dir"
-                    found_so="$dir/$libname$shrext.$ver"
-                  fi
-                else
-                  eval library_names=\"$acl_library_names_spec\"
-                  for f in $library_names; do
-                    if test -f "$dir/$f"; then
-                      found_dir="$dir"
-                      found_so="$dir/$f"
-                      break
-                    fi
-                  done
-                fi
-              fi
-            fi
-                        if test "X$found_dir" = "X"; then
-              if test -f "$dir/$libname.$acl_libext"; then
-                found_dir="$dir"
-                found_a="$dir/$libname.$acl_libext"
-              fi
-            fi
-            if test "X$found_dir" != "X"; then
-              if test -f "$dir/$libname.la"; then
-                found_la="$dir/$libname.la"
-              fi
-            fi
-          fi
-          if test "X$found_dir" = "X"; then
-            for x in $LDFLAGS $LTLIBICONV; do
-
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  acl_save_exec_prefix="$exec_prefix"
-  exec_prefix="$acl_final_exec_prefix"
-  eval x=\"$x\"
-  exec_prefix="$acl_save_exec_prefix"
-  prefix="$acl_save_prefix"
-
-              case "$x" in
-                -L*)
-                  dir=`echo "X$x" | sed -e 's/^X-L//'`
-                                    if test -n "$acl_shlibext"; then
-                    if test -f "$dir/$libname$shrext"; then
-                      found_dir="$dir"
-                      found_so="$dir/$libname$shrext"
-                    else
-                      if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
-                        ver=`(cd "$dir" && \
-                              for f in "$libname$shrext".*; do echo "$f"; done \
-                              | sed -e "s,^$libname$shrext\\\\.,," \
-                              | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
-                              | sed 1q ) 2>/dev/null`
-                        if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
-                          found_dir="$dir"
-                          found_so="$dir/$libname$shrext.$ver"
-                        fi
-                      else
-                        eval library_names=\"$acl_library_names_spec\"
-                        for f in $library_names; do
-                          if test -f "$dir/$f"; then
-                            found_dir="$dir"
-                            found_so="$dir/$f"
-                            break
-                          fi
-                        done
-                      fi
-                    fi
-                  fi
-                                    if test "X$found_dir" = "X"; then
-                    if test -f "$dir/$libname.$acl_libext"; then
-                      found_dir="$dir"
-                      found_a="$dir/$libname.$acl_libext"
-                    fi
-                  fi
-                  if test "X$found_dir" != "X"; then
-                    if test -f "$dir/$libname.la"; then
-                      found_la="$dir/$libname.la"
-                    fi
-                  fi
-                  ;;
-              esac
-              if test "X$found_dir" != "X"; then
-                break
-              fi
-            done
-          fi
-          if test "X$found_dir" != "X"; then
-                        LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$found_dir -l$name"
-            if test "X$found_so" != "X"; then
-                                                        if test "$enable_rpath" = no \
-                 || test "X$found_dir" = "X/usr/$acl_libdirstem" \
-                 || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then
-                                LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
-              else
-                                                                                haveit=
-                for x in $ltrpathdirs; do
-                  if test "X$x" = "X$found_dir"; then
-                    haveit=yes
-                    break
-                  fi
-                done
-                if test -z "$haveit"; then
-                  ltrpathdirs="$ltrpathdirs $found_dir"
-                fi
-                                if test "$acl_hardcode_direct" = yes; then
-                                                      LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
-                else
-                  if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
-                                                            LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
-                                                            haveit=
-                    for x in $rpathdirs; do
-                      if test "X$x" = "X$found_dir"; then
-                        haveit=yes
-                        break
-                      fi
-                    done
-                    if test -z "$haveit"; then
-                      rpathdirs="$rpathdirs $found_dir"
-                    fi
-                  else
-                                                                                haveit=
-                    for x in $LDFLAGS $LIBICONV; do
-
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  acl_save_exec_prefix="$exec_prefix"
-  exec_prefix="$acl_final_exec_prefix"
-  eval x=\"$x\"
-  exec_prefix="$acl_save_exec_prefix"
-  prefix="$acl_save_prefix"
-
-                      if test "X$x" = "X-L$found_dir"; then
-                        haveit=yes
-                        break
-                      fi
-                    done
-                    if test -z "$haveit"; then
-                      LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir"
-                    fi
-                    if test "$acl_hardcode_minus_L" != no; then
-                                                                                        LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
-                    else
-                                                                                                                                                                                LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name"
-                    fi
-                  fi
-                fi
-              fi
-            else
-              if test "X$found_a" != "X"; then
-                                LIBICONV="${LIBICONV}${LIBICONV:+ }$found_a"
-              else
-                                                LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir -l$name"
-              fi
-            fi
-                        additional_includedir=
-            case "$found_dir" in
-              */$acl_libdirstem | */$acl_libdirstem/)
-                basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'`
-                if test "$name" = 'iconv'; then
-                  LIBICONV_PREFIX="$basedir"
-                fi
-                additional_includedir="$basedir/include"
-                ;;
-              */$acl_libdirstem2 | */$acl_libdirstem2/)
-                basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'`
-                if test "$name" = 'iconv'; then
-                  LIBICONV_PREFIX="$basedir"
-                fi
-                additional_includedir="$basedir/include"
-                ;;
-            esac
-            if test "X$additional_includedir" != "X"; then
-                                                                                                                if test "X$additional_includedir" != "X/usr/include"; then
-                haveit=
-                if test "X$additional_includedir" = "X/usr/local/include"; then
-                  if test -n "$GCC"; then
-                    case $host_os in
-                      linux* | gnu* | k*bsd*-gnu) haveit=yes;;
-                    esac
-                  fi
-                fi
-                if test -z "$haveit"; then
-                  for x in $CPPFLAGS $INCICONV; do
-
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  acl_save_exec_prefix="$exec_prefix"
-  exec_prefix="$acl_final_exec_prefix"
-  eval x=\"$x\"
-  exec_prefix="$acl_save_exec_prefix"
-  prefix="$acl_save_prefix"
-
-                    if test "X$x" = "X-I$additional_includedir"; then
-                      haveit=yes
-                      break
-                    fi
-                  done
-                  if test -z "$haveit"; then
-                    if test -d "$additional_includedir"; then
-                                            INCICONV="${INCICONV}${INCICONV:+ }-I$additional_includedir"
-                    fi
-                  fi
-                fi
-              fi
-            fi
-                        if test -n "$found_la"; then
-                                                        save_libdir="$libdir"
-              case "$found_la" in
-                */* | *\\*) . "$found_la" ;;
-                *) . "./$found_la" ;;
-              esac
-              libdir="$save_libdir"
-                            for dep in $dependency_libs; do
-                case "$dep" in
-                  -L*)
-                    additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
-                                                                                                                                                                if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \
-                       && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then
-                      haveit=
-                      if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \
-                         || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then
-                        if test -n "$GCC"; then
-                          case $host_os in
-                            linux* | gnu* | k*bsd*-gnu) haveit=yes;;
-                          esac
-                        fi
-                      fi
-                      if test -z "$haveit"; then
-                        haveit=
-                        for x in $LDFLAGS $LIBICONV; do
-
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  acl_save_exec_prefix="$exec_prefix"
-  exec_prefix="$acl_final_exec_prefix"
-  eval x=\"$x\"
-  exec_prefix="$acl_save_exec_prefix"
-  prefix="$acl_save_prefix"
-
-                          if test "X$x" = "X-L$additional_libdir"; then
-                            haveit=yes
-                            break
-                          fi
-                        done
-                        if test -z "$haveit"; then
-                          if test -d "$additional_libdir"; then
-                                                        LIBICONV="${LIBICONV}${LIBICONV:+ }-L$additional_libdir"
-                          fi
-                        fi
-                        haveit=
-                        for x in $LDFLAGS $LTLIBICONV; do
-
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  acl_save_exec_prefix="$exec_prefix"
-  exec_prefix="$acl_final_exec_prefix"
-  eval x=\"$x\"
-  exec_prefix="$acl_save_exec_prefix"
-  prefix="$acl_save_prefix"
-
-                          if test "X$x" = "X-L$additional_libdir"; then
-                            haveit=yes
-                            break
-                          fi
-                        done
-                        if test -z "$haveit"; then
-                          if test -d "$additional_libdir"; then
-                                                        LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$additional_libdir"
-                          fi
-                        fi
-                      fi
-                    fi
-                    ;;
-                  -R*)
-                    dir=`echo "X$dep" | sed -e 's/^X-R//'`
-                    if test "$enable_rpath" != no; then
-                                                                  haveit=
-                      for x in $rpathdirs; do
-                        if test "X$x" = "X$dir"; then
-                          haveit=yes
-                          break
-                        fi
-                      done
-                      if test -z "$haveit"; then
-                        rpathdirs="$rpathdirs $dir"
-                      fi
-                                                                  haveit=
-                      for x in $ltrpathdirs; do
-                        if test "X$x" = "X$dir"; then
-                          haveit=yes
-                          break
-                        fi
-                      done
-                      if test -z "$haveit"; then
-                        ltrpathdirs="$ltrpathdirs $dir"
-                      fi
-                    fi
-                    ;;
-                  -l*)
-                                        names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
-                    ;;
-                  *.la)
-                                                                                names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
-                    ;;
-                  *)
-                                        LIBICONV="${LIBICONV}${LIBICONV:+ }$dep"
-                    LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$dep"
-                    ;;
-                esac
-              done
-            fi
-          else
-                                                            LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name"
-            LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-l$name"
-          fi
-        fi
-      fi
-    done
-  done
-  if test "X$rpathdirs" != "X"; then
-    if test -n "$acl_hardcode_libdir_separator"; then
-                        alldirs=
-      for found_dir in $rpathdirs; do
-        alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir"
-      done
-            acl_save_libdir="$libdir"
-      libdir="$alldirs"
-      eval flag=\"$acl_hardcode_libdir_flag_spec\"
-      libdir="$acl_save_libdir"
-      LIBICONV="${LIBICONV}${LIBICONV:+ }$flag"
-    else
-            for found_dir in $rpathdirs; do
-        acl_save_libdir="$libdir"
-        libdir="$found_dir"
-        eval flag=\"$acl_hardcode_libdir_flag_spec\"
-        libdir="$acl_save_libdir"
-        LIBICONV="${LIBICONV}${LIBICONV:+ }$flag"
-      done
-    fi
-  fi
-  if test "X$ltrpathdirs" != "X"; then
-            for found_dir in $ltrpathdirs; do
-      LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-R$found_dir"
-    done
-  fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFPreferencesCopyAppValue" >&5
-$as_echo_n "checking for CFPreferencesCopyAppValue... " >&6; }
-if ${gt_cv_func_CFPreferencesCopyAppValue+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  gt_save_LIBS="$LIBS"
-     LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
-     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <CoreFoundation/CFPreferences.h>
-int
-main ()
-{
-CFPreferencesCopyAppValue(NULL, NULL)
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  gt_cv_func_CFPreferencesCopyAppValue=yes
-else
-  gt_cv_func_CFPreferencesCopyAppValue=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-     LIBS="$gt_save_LIBS"
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5
-$as_echo "$gt_cv_func_CFPreferencesCopyAppValue" >&6; }
-  if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then
-
-$as_echo "#define HAVE_CFPREFERENCESCOPYAPPVALUE 1" >>confdefs.h
-
-  fi
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFLocaleCopyCurrent" >&5
-$as_echo_n "checking for CFLocaleCopyCurrent... " >&6; }
-if ${gt_cv_func_CFLocaleCopyCurrent+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  gt_save_LIBS="$LIBS"
-     LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
-     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <CoreFoundation/CFLocale.h>
-int
-main ()
-{
-CFLocaleCopyCurrent();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  gt_cv_func_CFLocaleCopyCurrent=yes
-else
-  gt_cv_func_CFLocaleCopyCurrent=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-     LIBS="$gt_save_LIBS"
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFLocaleCopyCurrent" >&5
-$as_echo "$gt_cv_func_CFLocaleCopyCurrent" >&6; }
-  if test $gt_cv_func_CFLocaleCopyCurrent = yes; then
-
-$as_echo "#define HAVE_CFLOCALECOPYCURRENT 1" >>confdefs.h
-
-  fi
-  INTL_MACOSX_LIBS=
-  if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then
-    INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation"
-  fi
-
-
-
-
-
-
-  LIBINTL=
-  LTLIBINTL=
-  POSUB=
-
-    case " $gt_needs " in
-    *" need-formatstring-macros "*) gt_api_version=3 ;;
-    *" need-ngettext "*) gt_api_version=2 ;;
-    *) gt_api_version=1 ;;
-  esac
-  gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc"
-  gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl"
-
-    if test "$USE_NLS" = "yes"; then
-    gt_use_preinstalled_gnugettext=no
-
-
-        if test $gt_api_version -ge 3; then
-          gt_revision_test_code='
-#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
-#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
-#endif
-typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
-'
-        else
-          gt_revision_test_code=
-        fi
-        if test $gt_api_version -ge 2; then
-          gt_expression_test_code=' + * ngettext ("", "", 0)'
-        else
-          gt_expression_test_code=
-        fi
-
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libc" >&5
-$as_echo_n "checking for GNU gettext in libc... " >&6; }
-if eval \${$gt_func_gnugettext_libc+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <libintl.h>
-$gt_revision_test_code
-extern int _nl_msg_cat_cntr;
-extern int *_nl_domain_bindings;
-int
-main ()
-{
-bindtextdomain ("", "");
-return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  eval "$gt_func_gnugettext_libc=yes"
-else
-  eval "$gt_func_gnugettext_libc=no"
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-fi
-eval ac_res=\$$gt_func_gnugettext_libc
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-
-        if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then
-
-
-
-
-
-          am_save_CPPFLAGS="$CPPFLAGS"
-
-  for element in $INCICONV; do
-    haveit=
-    for x in $CPPFLAGS; do
-
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  acl_save_exec_prefix="$exec_prefix"
-  exec_prefix="$acl_final_exec_prefix"
-  eval x=\"$x\"
-  exec_prefix="$acl_save_exec_prefix"
-  prefix="$acl_save_prefix"
-
-      if test "X$x" = "X$element"; then
-        haveit=yes
-        break
-      fi
-    done
-    if test -z "$haveit"; then
-      CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element"
-    fi
-  done
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5
-$as_echo_n "checking for iconv... " >&6; }
-if ${am_cv_func_iconv+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-
-    am_cv_func_iconv="no, consider installing GNU libiconv"
-    am_cv_lib_iconv=no
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdlib.h>
-#include <iconv.h>
-int
-main ()
-{
-iconv_t cd = iconv_open("","");
-       iconv(cd,NULL,NULL,NULL,NULL);
-       iconv_close(cd);
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  am_cv_func_iconv=yes
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-    if test "$am_cv_func_iconv" != yes; then
-      am_save_LIBS="$LIBS"
-      LIBS="$LIBS $LIBICONV"
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdlib.h>
-#include <iconv.h>
-int
-main ()
-{
-iconv_t cd = iconv_open("","");
-         iconv(cd,NULL,NULL,NULL,NULL);
-         iconv_close(cd);
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  am_cv_lib_iconv=yes
-        am_cv_func_iconv=yes
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-      LIBS="$am_save_LIBS"
-    fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv" >&5
-$as_echo "$am_cv_func_iconv" >&6; }
-  if test "$am_cv_func_iconv" = yes; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working iconv" >&5
-$as_echo_n "checking for working iconv... " >&6; }
-if ${am_cv_func_iconv_works+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-
-            am_save_LIBS="$LIBS"
-      if test $am_cv_lib_iconv = yes; then
-        LIBS="$LIBS $LIBICONV"
-      fi
-      if test "$cross_compiling" = yes; then :
-  case "$host_os" in
-           aix* | hpux*) am_cv_func_iconv_works="guessing no" ;;
-           *)            am_cv_func_iconv_works="guessing yes" ;;
-         esac
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <iconv.h>
-#include <string.h>
-int main ()
-{
-  /* Test against AIX 5.1 bug: Failures are not distinguishable from successful
-     returns.  */
-  {
-    iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8");
-    if (cd_utf8_to_88591 != (iconv_t)(-1))
-      {
-        static const char input[] = "\342\202\254"; /* EURO SIGN */
-        char buf[10];
-        const char *inptr = input;
-        size_t inbytesleft = strlen (input);
-        char *outptr = buf;
-        size_t outbytesleft = sizeof (buf);
-        size_t res = iconv (cd_utf8_to_88591,
-                            (char **) &inptr, &inbytesleft,
-                            &outptr, &outbytesleft);
-        if (res == 0)
-          return 1;
-      }
-  }
-  /* Test against Solaris 10 bug: Failures are not distinguishable from
-     successful returns.  */
-  {
-    iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646");
-    if (cd_ascii_to_88591 != (iconv_t)(-1))
-      {
-        static const char input[] = "\263";
-        char buf[10];
-        const char *inptr = input;
-        size_t inbytesleft = strlen (input);
-        char *outptr = buf;
-        size_t outbytesleft = sizeof (buf);
-        size_t res = iconv (cd_ascii_to_88591,
-                            (char **) &inptr, &inbytesleft,
-                            &outptr, &outbytesleft);
-        if (res == 0)
-          return 1;
-      }
-  }
-#if 0 /* This bug could be worked around by the caller.  */
-  /* Test against HP-UX 11.11 bug: Positive return value instead of 0.  */
-  {
-    iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591");
-    if (cd_88591_to_utf8 != (iconv_t)(-1))
-      {
-        static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
-        char buf[50];
-        const char *inptr = input;
-        size_t inbytesleft = strlen (input);
-        char *outptr = buf;
-        size_t outbytesleft = sizeof (buf);
-        size_t res = iconv (cd_88591_to_utf8,
-                            (char **) &inptr, &inbytesleft,
-                            &outptr, &outbytesleft);
-        if ((int)res > 0)
-          return 1;
-      }
-  }
-#endif
-  /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is
-     provided.  */
-  if (/* Try standardized names.  */
-      iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1)
-      /* Try IRIX, OSF/1 names.  */
-      && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1)
-      /* Try AIX names.  */
-      && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1)
-      /* Try HP-UX names.  */
-      && iconv_open ("utf8", "eucJP") == (iconv_t)(-1))
-    return 1;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  am_cv_func_iconv_works=yes
-else
-  am_cv_func_iconv_works=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-      LIBS="$am_save_LIBS"
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv_works" >&5
-$as_echo "$am_cv_func_iconv_works" >&6; }
-    case "$am_cv_func_iconv_works" in
-      *no) am_func_iconv=no am_cv_lib_iconv=no ;;
-      *)   am_func_iconv=yes ;;
-    esac
-  else
-    am_func_iconv=no am_cv_lib_iconv=no
-  fi
-  if test "$am_func_iconv" = yes; then
-
-$as_echo "#define HAVE_ICONV 1" >>confdefs.h
-
-  fi
-  if test "$am_cv_lib_iconv" = yes; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libiconv" >&5
-$as_echo_n "checking how to link with libiconv... " >&6; }
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBICONV" >&5
-$as_echo "$LIBICONV" >&6; }
-  else
-            CPPFLAGS="$am_save_CPPFLAGS"
-    LIBICONV=
-    LTLIBICONV=
-  fi
-
-
-
-
-
-
-
-
-
-
-
-    use_additional=yes
-
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  acl_save_exec_prefix="$exec_prefix"
-  exec_prefix="$acl_final_exec_prefix"
-
-    eval additional_includedir=\"$includedir\"
-    eval additional_libdir=\"$libdir\"
-
-  exec_prefix="$acl_save_exec_prefix"
-  prefix="$acl_save_prefix"
-
-
-# Check whether --with-libintl-prefix was given.
-if test "${with_libintl_prefix+set}" = set; then :
-  withval=$with_libintl_prefix;
-    if test "X$withval" = "Xno"; then
-      use_additional=no
-    else
-      if test "X$withval" = "X"; then
-
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  acl_save_exec_prefix="$exec_prefix"
-  exec_prefix="$acl_final_exec_prefix"
-
-          eval additional_includedir=\"$includedir\"
-          eval additional_libdir=\"$libdir\"
-
-  exec_prefix="$acl_save_exec_prefix"
-  prefix="$acl_save_prefix"
-
-      else
-        additional_includedir="$withval/include"
-        additional_libdir="$withval/$acl_libdirstem"
-        if test "$acl_libdirstem2" != "$acl_libdirstem" \
-           && ! test -d "$withval/$acl_libdirstem"; then
-          additional_libdir="$withval/$acl_libdirstem2"
-        fi
-      fi
-    fi
-
-fi
-
-      LIBINTL=
-  LTLIBINTL=
-  INCINTL=
-  LIBINTL_PREFIX=
-      HAVE_LIBINTL=
-  rpathdirs=
-  ltrpathdirs=
-  names_already_handled=
-  names_next_round='intl '
-  while test -n "$names_next_round"; do
-    names_this_round="$names_next_round"
-    names_next_round=
-    for name in $names_this_round; do
-      already_handled=
-      for n in $names_already_handled; do
-        if test "$n" = "$name"; then
-          already_handled=yes
-          break
-        fi
-      done
-      if test -z "$already_handled"; then
-        names_already_handled="$names_already_handled $name"
-                        uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
-        eval value=\"\$HAVE_LIB$uppername\"
-        if test -n "$value"; then
-          if test "$value" = yes; then
-            eval value=\"\$LIB$uppername\"
-            test -z "$value" || LIBINTL="${LIBINTL}${LIBINTL:+ }$value"
-            eval value=\"\$LTLIB$uppername\"
-            test -z "$value" || LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$value"
-          else
-                                    :
-          fi
-        else
-                              found_dir=
-          found_la=
-          found_so=
-          found_a=
-          eval libname=\"$acl_libname_spec\"    # typically: libname=lib$name
-          if test -n "$acl_shlibext"; then
-            shrext=".$acl_shlibext"             # typically: shrext=.so
-          else
-            shrext=
-          fi
-          if test $use_additional = yes; then
-            dir="$additional_libdir"
-                                    if test -n "$acl_shlibext"; then
-              if test -f "$dir/$libname$shrext"; then
-                found_dir="$dir"
-                found_so="$dir/$libname$shrext"
-              else
-                if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
-                  ver=`(cd "$dir" && \
-                        for f in "$libname$shrext".*; do echo "$f"; done \
-                        | sed -e "s,^$libname$shrext\\\\.,," \
-                        | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
-                        | sed 1q ) 2>/dev/null`
-                  if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
-                    found_dir="$dir"
-                    found_so="$dir/$libname$shrext.$ver"
-                  fi
-                else
-                  eval library_names=\"$acl_library_names_spec\"
-                  for f in $library_names; do
-                    if test -f "$dir/$f"; then
-                      found_dir="$dir"
-                      found_so="$dir/$f"
-                      break
-                    fi
-                  done
-                fi
-              fi
-            fi
-                        if test "X$found_dir" = "X"; then
-              if test -f "$dir/$libname.$acl_libext"; then
-                found_dir="$dir"
-                found_a="$dir/$libname.$acl_libext"
-              fi
-            fi
-            if test "X$found_dir" != "X"; then
-              if test -f "$dir/$libname.la"; then
-                found_la="$dir/$libname.la"
-              fi
-            fi
-          fi
-          if test "X$found_dir" = "X"; then
-            for x in $LDFLAGS $LTLIBINTL; do
-
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  acl_save_exec_prefix="$exec_prefix"
-  exec_prefix="$acl_final_exec_prefix"
-  eval x=\"$x\"
-  exec_prefix="$acl_save_exec_prefix"
-  prefix="$acl_save_prefix"
-
-              case "$x" in
-                -L*)
-                  dir=`echo "X$x" | sed -e 's/^X-L//'`
-                                    if test -n "$acl_shlibext"; then
-                    if test -f "$dir/$libname$shrext"; then
-                      found_dir="$dir"
-                      found_so="$dir/$libname$shrext"
-                    else
-                      if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
-                        ver=`(cd "$dir" && \
-                              for f in "$libname$shrext".*; do echo "$f"; done \
-                              | sed -e "s,^$libname$shrext\\\\.,," \
-                              | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
-                              | sed 1q ) 2>/dev/null`
-                        if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
-                          found_dir="$dir"
-                          found_so="$dir/$libname$shrext.$ver"
-                        fi
-                      else
-                        eval library_names=\"$acl_library_names_spec\"
-                        for f in $library_names; do
-                          if test -f "$dir/$f"; then
-                            found_dir="$dir"
-                            found_so="$dir/$f"
-                            break
-                          fi
-                        done
-                      fi
-                    fi
-                  fi
-                                    if test "X$found_dir" = "X"; then
-                    if test -f "$dir/$libname.$acl_libext"; then
-                      found_dir="$dir"
-                      found_a="$dir/$libname.$acl_libext"
-                    fi
-                  fi
-                  if test "X$found_dir" != "X"; then
-                    if test -f "$dir/$libname.la"; then
-                      found_la="$dir/$libname.la"
-                    fi
-                  fi
-                  ;;
-              esac
-              if test "X$found_dir" != "X"; then
-                break
-              fi
-            done
-          fi
-          if test "X$found_dir" != "X"; then
-                        LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$found_dir -l$name"
-            if test "X$found_so" != "X"; then
-                                                        if test "$enable_rpath" = no \
-                 || test "X$found_dir" = "X/usr/$acl_libdirstem" \
-                 || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then
-                                LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
-              else
-                                                                                haveit=
-                for x in $ltrpathdirs; do
-                  if test "X$x" = "X$found_dir"; then
-                    haveit=yes
-                    break
-                  fi
-                done
-                if test -z "$haveit"; then
-                  ltrpathdirs="$ltrpathdirs $found_dir"
-                fi
-                                if test "$acl_hardcode_direct" = yes; then
-                                                      LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
-                else
-                  if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
-                                                            LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
-                                                            haveit=
-                    for x in $rpathdirs; do
-                      if test "X$x" = "X$found_dir"; then
-                        haveit=yes
-                        break
-                      fi
-                    done
-                    if test -z "$haveit"; then
-                      rpathdirs="$rpathdirs $found_dir"
-                    fi
-                  else
-                                                                                haveit=
-                    for x in $LDFLAGS $LIBINTL; do
-
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  acl_save_exec_prefix="$exec_prefix"
-  exec_prefix="$acl_final_exec_prefix"
-  eval x=\"$x\"
-  exec_prefix="$acl_save_exec_prefix"
-  prefix="$acl_save_prefix"
-
-                      if test "X$x" = "X-L$found_dir"; then
-                        haveit=yes
-                        break
-                      fi
-                    done
-                    if test -z "$haveit"; then
-                      LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir"
-                    fi
-                    if test "$acl_hardcode_minus_L" != no; then
-                                                                                        LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
-                    else
-                                                                                                                                                                                LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name"
-                    fi
-                  fi
-                fi
-              fi
-            else
-              if test "X$found_a" != "X"; then
-                                LIBINTL="${LIBINTL}${LIBINTL:+ }$found_a"
-              else
-                                                LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir -l$name"
-              fi
-            fi
-                        additional_includedir=
-            case "$found_dir" in
-              */$acl_libdirstem | */$acl_libdirstem/)
-                basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'`
-                if test "$name" = 'intl'; then
-                  LIBINTL_PREFIX="$basedir"
-                fi
-                additional_includedir="$basedir/include"
-                ;;
-              */$acl_libdirstem2 | */$acl_libdirstem2/)
-                basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'`
-                if test "$name" = 'intl'; then
-                  LIBINTL_PREFIX="$basedir"
-                fi
-                additional_includedir="$basedir/include"
-                ;;
-            esac
-            if test "X$additional_includedir" != "X"; then
-                                                                                                                if test "X$additional_includedir" != "X/usr/include"; then
-                haveit=
-                if test "X$additional_includedir" = "X/usr/local/include"; then
-                  if test -n "$GCC"; then
-                    case $host_os in
-                      linux* | gnu* | k*bsd*-gnu) haveit=yes;;
-                    esac
-                  fi
-                fi
-                if test -z "$haveit"; then
-                  for x in $CPPFLAGS $INCINTL; do
-
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  acl_save_exec_prefix="$exec_prefix"
-  exec_prefix="$acl_final_exec_prefix"
-  eval x=\"$x\"
-  exec_prefix="$acl_save_exec_prefix"
-  prefix="$acl_save_prefix"
-
-                    if test "X$x" = "X-I$additional_includedir"; then
-                      haveit=yes
-                      break
-                    fi
-                  done
-                  if test -z "$haveit"; then
-                    if test -d "$additional_includedir"; then
-                                            INCINTL="${INCINTL}${INCINTL:+ }-I$additional_includedir"
-                    fi
-                  fi
-                fi
-              fi
-            fi
-                        if test -n "$found_la"; then
-                                                        save_libdir="$libdir"
-              case "$found_la" in
-                */* | *\\*) . "$found_la" ;;
-                *) . "./$found_la" ;;
-              esac
-              libdir="$save_libdir"
-                            for dep in $dependency_libs; do
-                case "$dep" in
-                  -L*)
-                    additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
-                                                                                                                                                                if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \
-                       && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then
-                      haveit=
-                      if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \
-                         || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then
-                        if test -n "$GCC"; then
-                          case $host_os in
-                            linux* | gnu* | k*bsd*-gnu) haveit=yes;;
-                          esac
-                        fi
-                      fi
-                      if test -z "$haveit"; then
-                        haveit=
-                        for x in $LDFLAGS $LIBINTL; do
-
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  acl_save_exec_prefix="$exec_prefix"
-  exec_prefix="$acl_final_exec_prefix"
-  eval x=\"$x\"
-  exec_prefix="$acl_save_exec_prefix"
-  prefix="$acl_save_prefix"
-
-                          if test "X$x" = "X-L$additional_libdir"; then
-                            haveit=yes
-                            break
-                          fi
-                        done
-                        if test -z "$haveit"; then
-                          if test -d "$additional_libdir"; then
-                                                        LIBINTL="${LIBINTL}${LIBINTL:+ }-L$additional_libdir"
-                          fi
-                        fi
-                        haveit=
-                        for x in $LDFLAGS $LTLIBINTL; do
-
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  acl_save_exec_prefix="$exec_prefix"
-  exec_prefix="$acl_final_exec_prefix"
-  eval x=\"$x\"
-  exec_prefix="$acl_save_exec_prefix"
-  prefix="$acl_save_prefix"
-
-                          if test "X$x" = "X-L$additional_libdir"; then
-                            haveit=yes
-                            break
-                          fi
-                        done
-                        if test -z "$haveit"; then
-                          if test -d "$additional_libdir"; then
-                                                        LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$additional_libdir"
-                          fi
-                        fi
-                      fi
-                    fi
-                    ;;
-                  -R*)
-                    dir=`echo "X$dep" | sed -e 's/^X-R//'`
-                    if test "$enable_rpath" != no; then
-                                                                  haveit=
-                      for x in $rpathdirs; do
-                        if test "X$x" = "X$dir"; then
-                          haveit=yes
-                          break
-                        fi
-                      done
-                      if test -z "$haveit"; then
-                        rpathdirs="$rpathdirs $dir"
-                      fi
-                                                                  haveit=
-                      for x in $ltrpathdirs; do
-                        if test "X$x" = "X$dir"; then
-                          haveit=yes
-                          break
-                        fi
-                      done
-                      if test -z "$haveit"; then
-                        ltrpathdirs="$ltrpathdirs $dir"
-                      fi
-                    fi
-                    ;;
-                  -l*)
-                                        names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
-                    ;;
-                  *.la)
-                                                                                names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
-                    ;;
-                  *)
-                                        LIBINTL="${LIBINTL}${LIBINTL:+ }$dep"
-                    LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$dep"
-                    ;;
-                esac
-              done
-            fi
-          else
-                                                            LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name"
-            LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-l$name"
-          fi
+        if test $_pkg_short_errors_supported = yes; then
+	        GLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "glib-2.0 >= 2.16" 2>&1`
+        else
+	        GLIB_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "glib-2.0 >= 2.16" 2>&1`
         fi
-      fi
-    done
-  done
-  if test "X$rpathdirs" != "X"; then
-    if test -n "$acl_hardcode_libdir_separator"; then
-                        alldirs=
-      for found_dir in $rpathdirs; do
-        alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir"
-      done
-            acl_save_libdir="$libdir"
-      libdir="$alldirs"
-      eval flag=\"$acl_hardcode_libdir_flag_spec\"
-      libdir="$acl_save_libdir"
-      LIBINTL="${LIBINTL}${LIBINTL:+ }$flag"
-    else
-            for found_dir in $rpathdirs; do
-        acl_save_libdir="$libdir"
-        libdir="$found_dir"
-        eval flag=\"$acl_hardcode_libdir_flag_spec\"
-        libdir="$acl_save_libdir"
-        LIBINTL="${LIBINTL}${LIBINTL:+ }$flag"
-      done
-    fi
-  fi
-  if test "X$ltrpathdirs" != "X"; then
-            for found_dir in $ltrpathdirs; do
-      LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-R$found_dir"
-    done
-  fi
-
-
+	# Put the nasty error message in config.log where it belongs
+	echo "$GLIB_PKG_ERRORS" >&5
 
 
+        if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "glib-2.0") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
 
+            cv_pkg_version=`$PKG_CONFIG --modversion "glib-2.0" 2>/dev/null`
+            as_fn_error $? "
+Glib2 version $cv_pkg_version was found, but glib-2.0 >= 2.16 is required.
+" "$LINENO" 5
 
-          { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5
-$as_echo_n "checking for GNU gettext in libintl... " >&6; }
-if eval \${$gt_func_gnugettext_libintl+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  gt_save_CPPFLAGS="$CPPFLAGS"
-            CPPFLAGS="$CPPFLAGS $INCINTL"
-            gt_save_LIBS="$LIBS"
-            LIBS="$LIBS $LIBINTL"
-                        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <libintl.h>
-$gt_revision_test_code
-extern int _nl_msg_cat_cntr;
-extern
-#ifdef __cplusplus
-"C"
-#endif
-const char *_nl_expand_alias (const char *);
-int
-main ()
-{
-bindtextdomain ("", "");
-return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  eval "$gt_func_gnugettext_libintl=yes"
 else
-  eval "$gt_func_gnugettext_libintl=no"
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-                        if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then
-              LIBS="$LIBS $LIBICONV"
-              cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <libintl.h>
-$gt_revision_test_code
-extern int _nl_msg_cat_cntr;
-extern
-#ifdef __cplusplus
-"C"
-#endif
-const char *_nl_expand_alias (const char *);
-int
-main ()
-{
-bindtextdomain ("", "");
-return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  LIBINTL="$LIBINTL $LIBICONV"
-                LTLIBINTL="$LTLIBINTL $LTLIBICONV"
-                eval "$gt_func_gnugettext_libintl=yes"
 
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-            fi
-            CPPFLAGS="$gt_save_CPPFLAGS"
-            LIBS="$gt_save_LIBS"
-fi
-eval ac_res=\$$gt_func_gnugettext_libintl
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-        fi
+            as_fn_error $? "
+Cannot find Glib2! If you are using binary packages based system, check that you
+have the corresponding -dev/devel packages installed.
+" "$LINENO" 5
 
-                                        if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \
-           || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \
-                && test "$PACKAGE" != gettext-runtime \
-                && test "$PACKAGE" != gettext-tools; }; then
-          gt_use_preinstalled_gnugettext=yes
-        else
-                    LIBINTL=
-          LTLIBINTL=
-          INCINTL=
-        fi
+fi
 
+elif test $pkg_failed = untried; then
+     	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 
+        if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "glib-2.0") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
 
-    if test -n "$INTL_MACOSX_LIBS"; then
-      if test "$gt_use_preinstalled_gnugettext" = "yes" \
-         || test "$nls_cv_use_gnu_gettext" = "yes"; then
-                LIBINTL="$LIBINTL $INTL_MACOSX_LIBS"
-        LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS"
-      fi
-    fi
+            cv_pkg_version=`$PKG_CONFIG --modversion "glib-2.0" 2>/dev/null`
+            as_fn_error $? "
+Glib2 version $cv_pkg_version was found, but glib-2.0 >= 2.16 is required.
+" "$LINENO" 5
 
-    if test "$gt_use_preinstalled_gnugettext" = "yes" \
-       || test "$nls_cv_use_gnu_gettext" = "yes"; then
+else
 
-$as_echo "#define ENABLE_NLS 1" >>confdefs.h
+            as_fn_error $? "
+Cannot find Glib2! If you are using binary packages based system, check that you
+have the corresponding -dev/devel packages installed.
+" "$LINENO" 5
 
-    else
-      USE_NLS=no
-    fi
-  fi
+fi
 
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use NLS" >&5
-$as_echo_n "checking whether to use NLS... " >&6; }
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5
-$as_echo "$USE_NLS" >&6; }
-  if test "$USE_NLS" = "yes"; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking where the gettext function comes from" >&5
-$as_echo_n "checking where the gettext function comes from... " >&6; }
-    if test "$gt_use_preinstalled_gnugettext" = "yes"; then
-      if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then
-        gt_source="external libintl"
-      else
-        gt_source="libc"
-      fi
-    else
-      gt_source="included intl directory"
-    fi
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_source" >&5
-$as_echo "$gt_source" >&6; }
-  fi
+else
+	GLIB_CFLAGS=$pkg_cv_GLIB_CFLAGS
+	GLIB_LIBS=$pkg_cv_GLIB_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
 
-  if test "$USE_NLS" = "yes"; then
 
-    if test "$gt_use_preinstalled_gnugettext" = "yes"; then
-      if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libintl" >&5
-$as_echo_n "checking how to link with libintl... " >&6; }
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBINTL" >&5
-$as_echo "$LIBINTL" >&6; }
+fi
 
-  for element in $INCINTL; do
-    haveit=
-    for x in $CPPFLAGS; do
 
-  acl_save_prefix="$prefix"
-  prefix="$acl_final_prefix"
-  acl_save_exec_prefix="$exec_prefix"
-  exec_prefix="$acl_final_exec_prefix"
-  eval x=\"$x\"
-  exec_prefix="$acl_save_exec_prefix"
-  prefix="$acl_save_prefix"
 
-      if test "X$x" = "X$element"; then
-        haveit=yes
-        break
-      fi
-    done
-    if test -z "$haveit"; then
-      CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element"
-    fi
-  done
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTHREAD" >&5
+$as_echo_n "checking for GTHREAD... " >&6; }
 
-      fi
+if test -n "$GTHREAD_CFLAGS"; then
+    pkg_cv_GTHREAD_CFLAGS="$GTHREAD_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gthread-2.0 >= 2.16\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "gthread-2.0 >= 2.16") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_GTHREAD_CFLAGS=`$PKG_CONFIG --cflags "gthread-2.0 >= 2.16" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+if test -n "$GTHREAD_LIBS"; then
+    pkg_cv_GTHREAD_LIBS="$GTHREAD_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gthread-2.0 >= 2.16\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "gthread-2.0 >= 2.16") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_GTHREAD_LIBS=`$PKG_CONFIG --libs "gthread-2.0 >= 2.16" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
 
 
-$as_echo "#define HAVE_GETTEXT 1" >>confdefs.h
 
+if test $pkg_failed = yes; then
+   	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 
-$as_echo "#define HAVE_DCGETTEXT 1" >>confdefs.h
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi
+        if test $_pkg_short_errors_supported = yes; then
+	        GTHREAD_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gthread-2.0 >= 2.16" 2>&1`
+        else
+	        GTHREAD_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gthread-2.0 >= 2.16" 2>&1`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$GTHREAD_PKG_ERRORS" >&5
 
-    fi
 
-        POSUB=po
-  fi
+        if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gthread-2.0\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "gthread-2.0") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
 
+            cv_pkg_version=`$PKG_CONFIG --modversion "gthread-2.0" 2>/dev/null`
+            as_fn_error $? "
+GThread version $cv_pkg_version was found, but gthread-2.0 >= 2.16 is required.
+" "$LINENO" 5
 
+else
 
-    INTLLIBS="$LIBINTL"
+            as_fn_error $? "
+Cannot find GThread! If you are using binary packages based system, check that you
+have the corresponding -dev/devel packages installed.
+" "$LINENO" 5
 
+fi
 
+elif test $pkg_failed = untried; then
+     	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 
+        if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gthread-2.0\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "gthread-2.0") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
 
+            cv_pkg_version=`$PKG_CONFIG --modversion "gthread-2.0" 2>/dev/null`
+            as_fn_error $? "
+GThread version $cv_pkg_version was found, but gthread-2.0 >= 2.16 is required.
+" "$LINENO" 5
 
+else
 
+            as_fn_error $? "
+Cannot find GThread! If you are using binary packages based system, check that you
+have the corresponding -dev/devel packages installed.
+" "$LINENO" 5
 
-if test "$MSGFMT" = ":" ; then
-    as_fn_error $? "msgfmt was not found!  You may need to install gettext." "$LINENO" 5
 fi
 
+else
+	GTHREAD_CFLAGS=$pkg_cv_GTHREAD_CFLAGS
+	GTHREAD_LIBS=$pkg_cv_GTHREAD_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
 
 
-# Check whether --enable-gtk3 was given.
-if test "${enable_gtk3+set}" = set; then :
-  enableval=$enable_gtk3; use_gtk3=yes
-else
-  use_gtk3=no
 fi
 
 
-rm -rf .tst 2>/dev/null
-mkdir .tst 2>/dev/null
-if test -d .tst; then
-  am__leading_dot=.
+
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PANGO" >&5
+$as_echo_n "checking for PANGO... " >&6; }
+
+if test -n "$PANGO_CFLAGS"; then
+    pkg_cv_PANGO_CFLAGS="$PANGO_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"pango >= 1.20\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "pango >= 1.20") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_PANGO_CFLAGS=`$PKG_CONFIG --cflags "pango >= 1.20" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
 else
-  am__leading_dot=_
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
+fi
+if test -n "$PANGO_LIBS"; then
+    pkg_cv_PANGO_LIBS="$PANGO_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"pango >= 1.20\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "pango >= 1.20") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_PANGO_LIBS=`$PKG_CONFIG --libs "pango >= 1.20" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
 fi
-rmdir .tst 2>/dev/null
 
-DEPDIR="${am__leading_dot}deps"
 
-ac_config_commands="$ac_config_commands depfiles"
 
+if test $pkg_failed = yes; then
+   	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 
-am_make=${MAKE-make}
-cat > confinc << 'END'
-am__doit:
-	@echo this is the am__doit target
-.PHONY: am__doit
-END
-# If we don't find an include directive, just comment out the code.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5
-$as_echo_n "checking for style of include used by $am_make... " >&6; }
-am__include="#"
-am__quote=
-_am_result=none
-# First try GNU make style include.
-echo "include confinc" > confmf
-# Ignore all kinds of additional output from `make'.
-case `$am_make -s -f confmf 2> /dev/null` in #(
-*the\ am__doit\ target*)
-  am__include=include
-  am__quote=
-  _am_result=GNU
-  ;;
-esac
-# Now try BSD make style include.
-if test "$am__include" = "#"; then
-   echo '.include "confinc"' > confmf
-   case `$am_make -s -f confmf 2> /dev/null` in #(
-   *the\ am__doit\ target*)
-     am__include=.include
-     am__quote="\""
-     _am_result=BSD
-     ;;
-   esac
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
 fi
+        if test $_pkg_short_errors_supported = yes; then
+	        PANGO_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "pango >= 1.20" 2>&1`
+        else
+	        PANGO_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "pango >= 1.20" 2>&1`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$PANGO_PKG_ERRORS" >&5
+
+
+        if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"pango\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "pango") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
 
+            cv_pkg_version=`$PKG_CONFIG --modversion "pango" 2>/dev/null`
+            as_fn_error $? "
+Pango version $cv_pkg_version was found, but pango >= 1.20 is required.
+" "$LINENO" 5
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5
-$as_echo "$_am_result" >&6; }
-rm -f confinc confmf
+else
 
-# Check whether --enable-dependency-tracking was given.
-if test "${enable_dependency_tracking+set}" = set; then :
-  enableval=$enable_dependency_tracking;
-fi
+            as_fn_error $? "
+Cannot find Pango! If you are using binary packages based system, check that you
+have the corresponding -dev/devel packages installed.
+" "$LINENO" 5
 
-if test "x$enable_dependency_tracking" != xno; then
-  am_depcomp="$ac_aux_dir/depcomp"
-  AMDEPBACKSLASH='\'
-fi
- if test "x$enable_dependency_tracking" != xno; then
-  AMDEP_TRUE=
-  AMDEP_FALSE='#'
-else
-  AMDEP_TRUE='#'
-  AMDEP_FALSE=
 fi
 
+elif test $pkg_failed = untried; then
+     	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 
+        if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"pango\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "pango") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
 
+            cv_pkg_version=`$PKG_CONFIG --modversion "pango" 2>/dev/null`
+            as_fn_error $? "
+Pango version $cv_pkg_version was found, but pango >= 1.20 is required.
+" "$LINENO" 5
 
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU make" >&5
-$as_echo_n "checking for GNU make... " >&6; }
-if ${_cv_gnu_make_command+:} false; then :
-  $as_echo_n "(cached) " >&6
 else
 
-    _cv_gnu_make_command=""
-    for a in "$MAKE" make gmake gnumake; do
-        test "x$a" = "x" && continue
-        if ( sh -c "$a --version" 2>/dev/null | grep "GNU Make" >/dev/null ) ; then
-            _cv_gnu_make_command="$a"
-            break
-        fi
-    done
+            as_fn_error $? "
+Cannot find Pango! If you are using binary packages based system, check that you
+have the corresponding -dev/devel packages installed.
+" "$LINENO" 5
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_cv_gnu_make_command" >&5
-$as_echo "$_cv_gnu_make_command" >&6; }
-    if test "x$_cv_gnu_make_command" != "x" ; then
-        MAKE="$_cv_gnu_make_command"
-    else
-        as_fn_error $? "** GNU make not found. If it is installed, try setting MAKE environment variable. **" "$LINENO" 5
-    fi
 
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
 else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_CC="${ac_tool_prefix}gcc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
+	PANGO_CFLAGS=$pkg_cv_PANGO_CFLAGS
+	PANGO_LIBS=$pkg_cv_PANGO_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+
 
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
 fi
 
 
-fi
-if test -z "$ac_cv_prog_CC"; then
-  ac_ct_CC=$CC
-  # Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_CC="gcc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
 
+pkg_failed=no
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CAIRO" >&5
+$as_echo_n "checking for CAIRO... " >&6; }
+
+if test -n "$CAIRO_CFLAGS"; then
+    pkg_cv_CAIRO_CFLAGS="$CAIRO_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cairo >= 1.6\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "cairo >= 1.6") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_CAIRO_CFLAGS=`$PKG_CONFIG --cflags "cairo >= 1.6" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
+else
+  pkg_failed=yes
 fi
+ else
+    pkg_failed=untried
 fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
+if test -n "$CAIRO_LIBS"; then
+    pkg_cv_CAIRO_LIBS="$CAIRO_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+    if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cairo >= 1.6\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "cairo >= 1.6") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+  pkg_cv_CAIRO_LIBS=`$PKG_CONFIG --libs "cairo >= 1.6" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  pkg_failed=yes
+fi
+ else
+    pkg_failed=untried
 fi
 
-  if test "x$ac_ct_CC" = x; then
-    CC=""
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    CC=$ac_ct_CC
-  fi
+
+
+if test $pkg_failed = yes; then
+   	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
 else
-  CC="$ac_cv_prog_CC"
+        _pkg_short_errors_supported=no
 fi
+        if test $_pkg_short_errors_supported = yes; then
+	        CAIRO_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "cairo >= 1.6" 2>&1`
+        else
+	        CAIRO_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "cairo >= 1.6" 2>&1`
+        fi
+	# Put the nasty error message in config.log where it belongs
+	echo "$CAIRO_PKG_ERRORS" >&5
+
+
+        if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cairo\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "cairo") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+
+            cv_pkg_version=`$PKG_CONFIG --modversion "cairo" 2>/dev/null`
+            as_fn_error $? "
+Cairo version $cv_pkg_version was found, but cairo >= 1.6 is required.
+" "$LINENO" 5
 
-if test -z "$CC"; then
-          if test -n "$ac_tool_prefix"; then
-    # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
 else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_CC="${ac_tool_prefix}cc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
+
+            as_fn_error $? "
+Cannot find Cairo! If you are using binary packages based system, check that you
+have the corresponding -dev/devel packages installed.
+" "$LINENO" 5
 
 fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+
+elif test $pkg_failed = untried; then
+     	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
-fi
 
+        if test -n "$PKG_CONFIG" && \
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cairo\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "cairo") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
+
+            cv_pkg_version=`$PKG_CONFIG --modversion "cairo" 2>/dev/null`
+            as_fn_error $? "
+Cairo version $cv_pkg_version was found, but cairo >= 1.6 is required.
+" "$LINENO" 5
+
+else
+
+            as_fn_error $? "
+Cannot find Cairo! If you are using binary packages based system, check that you
+have the corresponding -dev/devel packages installed.
+" "$LINENO" 5
 
-  fi
 fi
-if test -z "$CC"; then
-  # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-  ac_prog_rejected=no
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
-       ac_prog_rejected=yes
-       continue
-     fi
-    ac_cv_prog_CC="cc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
 
-if test $ac_prog_rejected = yes; then
-  # We found a bogon in the path, so make sure we never use it.
-  set dummy $ac_cv_prog_CC
-  shift
-  if test $# != 0; then
-    # We chose a different compiler from the bogus one.
-    # However, it has the same basename, so the bogon will be chosen
-    # first if we set CC to just the basename; use the full file name.
-    shift
-    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
-  fi
-fi
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
+	CAIRO_CFLAGS=$pkg_cv_CAIRO_CFLAGS
+	CAIRO_LIBS=$pkg_cv_CAIRO_LIBS
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
 
 
 fi
-if test -z "$CC"; then
-  if test -n "$ac_tool_prefix"; then
-  for ac_prog in cl.exe
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+
+
+
+
+
+	# Extract the first word of "tput", so it can be a program name with args.
+set dummy tput; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
+if ${ac_cv_path_TPUT+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+  case $TPUT in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_TPUT="$TPUT" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
     for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+    ac_cv_path_TPUT="$as_dir/$ac_word$ac_exec_ext"
     $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
@@ -6728,2052 +5606,2735 @@ done
   done
 IFS=$as_save_IFS
 
+  ;;
+esac
 fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
+TPUT=$ac_cv_path_TPUT
+if test -n "$TPUT"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TPUT" >&5
+$as_echo "$TPUT" >&6; }
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
 
-    test -n "$CC" && break
-  done
-fi
-if test -z "$CC"; then
-  ac_ct_CC=$CC
-  for ac_prog in cl.exe
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+
+	if test x"$TPUT" != x""; then :
+
+		if x=$($TPUT el 2>/dev/null); then
+			TERM_EL="$x"
+
+		else
+			TERM_EL="$($TPUT ce 2>/dev/null)"
+
+		fi
+
+		if x=$($TPUT sgr0 2>/dev/null); then
+			TERM_SGR0="$x"
+
+		else
+			TERM_SGR0="$($TPUT me 2>/dev/null)"
+
+		fi
+
+		if x=$($TPUT bold 2>/dev/null); then
+			TERM_BOLD="$x"
+
+		else
+			TERM_BOLD="$($TPUT md 2>/dev/null)"
+
+		fi
+
+		if x=$($TPUT setaf 1 2>/dev/null); then
+			TERM_SETAF1="$x"
+
+			TERM_SETAF2="$($TPUT setaf 2 2>/dev/null)"
+
+			TERM_SETAF3="$($TPUT setaf 3 2>/dev/null)"
+
+			TERM_SETAF4="$($TPUT setaf 4 2>/dev/null)"
+
+			TERM_SETAF6="$($TPUT setaf 6 2>/dev/null)"
+
+		else
+			TERM_SETAF1="$($TPUT AF 1 2>/dev/null)"
+
+			TERM_SETAF2="$($TPUT AF 2 2>/dev/null)"
+
+			TERM_SETAF3="$($TPUT AF 3 2>/dev/null)"
+
+			TERM_SETAF4="$($TPUT AF 4 2>/dev/null)"
+
+			TERM_SETAF6="$($TPUT AF 6 2>/dev/null)"
+
+		fi
+
 else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_CC="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
 
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
+		TERM_EL='\033\133K'
+
+		TERM_SGR0='\033\133m'
+
+		TERM_BOLD='\033\1331m'
+
+		TERM_SETAF1='\033\13331m'
+
+		TERM_SETAF2='\033\13332m'
+
+		TERM_SETAF3='\033\13333m'
+
+		TERM_SETAF4='\033\13334m'
+
+		TERM_SETAF6='\033\13336m'
+
+
+fi
+
+
+
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for shared library system" >&5
+$as_echo_n "checking for shared library system... " >&6; }
+	case "$host_os" in
+		darwin*)
+			{ $as_echo "$as_me:${as_lineno-$LINENO}: result: Darwin" >&5
+$as_echo "Darwin" >&6; }
+			LIB_CFLAGS='-fPIC -DPIC'
+			LIB_LDFLAGS='-dynamiclib -current_version ${LIB_MAJOR}.${LIB_MINOR} -compatibility_version ${LIB_MAJOR}'
+			LIB_PREFIX='lib'
+			LIB_SUFFIX='.dylib'
+			LDFLAGS_RPATH='-Wl,-rpath,${libdir}'
+			PLUGIN_CFLAGS='-fPIC -DPIC'
+			PLUGIN_LDFLAGS='-bundle -undefined dynamic_lookup'
+			PLUGIN_SUFFIX='.impl'
+			INSTALL_LIB='&& ${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$${i%.dylib}.${LIB_MAJOR}.${LIB_MINOR}.dylib && ${LN_S} -f $${i%.dylib}.${LIB_MAJOR}.${LIB_MINOR}.dylib ${DESTDIR}${libdir}/$${i%.dylib}.${LIB_MAJOR}.dylib && ${LN_S} -f $${i%.dylib}.${LIB_MAJOR}.${LIB_MINOR}.dylib ${DESTDIR}${libdir}/$$i'
+			UNINSTALL_LIB='&& rm -f ${DESTDIR}${libdir}/$$i ${DESTDIR}${libdir}/$${i%.dylib}.${LIB_MAJOR}.dylib ${DESTDIR}${libdir}/$${i%.dylib}.${LIB_MAJOR}.${LIB_MINOR}.dylib'
+			CLEAN_LIB=''
+			;;
+		solaris*)
+			{ $as_echo "$as_me:${as_lineno-$LINENO}: result: Solaris" >&5
+$as_echo "Solaris" >&6; }
+			LIB_CFLAGS='-fPIC -DPIC'
+			LIB_LDFLAGS='-shared -Wl,-soname=${LIB}.${LIB_MAJOR}.${LIB_MINOR}'
+			LIB_PREFIX='lib'
+			LIB_SUFFIX='.so'
+			LDFLAGS_RPATH='-Wl,-rpath,${libdir}'
+			PLUGIN_CFLAGS='-fPIC -DPIC'
+			PLUGIN_LDFLAGS='-shared'
+			PLUGIN_SUFFIX='.so'
+			INSTALL_LIB='&& ${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR} && rm -f ${DESTDIR}${libdir}/$$i && ${LN_S} $$i.${LIB_MAJOR}.${LIB_MINOR} ${DESTDIR}${libdir}/$$i'
+			UNINSTALL_LIB='&& rm -f ${DESTDIR}${libdir}/$$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR}'
+			CLEAN_LIB=''
+			;;
+		openbsd* | mirbsd*)
+			{ $as_echo "$as_me:${as_lineno-$LINENO}: result: OpenBSD" >&5
+$as_echo "OpenBSD" >&6; }
+			LIB_CFLAGS='-fPIC -DPIC'
+			LIB_LDFLAGS='-shared'
+			LIB_PREFIX='lib'
+			LIB_SUFFIX='.so.${LIB_MAJOR}.${LIB_MINOR}'
+			LDFLAGS_RPATH='-Wl,-rpath,${libdir}'
+			PLUGIN_CFLAGS='-fPIC -DPIC'
+			PLUGIN_LDFLAGS='-shared'
+			PLUGIN_SUFFIX='.so'
+			INSTALL_LIB='&& ${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$$i'
+			UNINSTALL_LIB='&& rm -f ${DESTDIR}${libdir}/$$i'
+			CLEAN_LIB=''
+			;;
+		cygwin* | mingw*)
+			{ $as_echo "$as_me:${as_lineno-$LINENO}: result: Win32" >&5
+$as_echo "Win32" >&6; }
+			LIB_CFLAGS=''
+			LIB_LDFLAGS='-shared -Wl,--out-implib,${LIB}.a'
+			LIB_PREFIX='lib'
+			LIB_SUFFIX='.dll'
+			LDFLAGS_RPATH='-Wl,-rpath,${libdir}'
+			PLUGIN_CFLAGS=''
+			PLUGIN_LDFLAGS='-shared'
+			PLUGIN_SUFFIX='.dll'
+			INSTALL_LIB='&& ${MKDIR_P} ${DESTDIR}${bindir} && ${INSTALL} -m 755 $$i ${DESTDIR}${bindir}/$$i && ${INSTALL} -m 755 $$i.a ${DESTDIR}${libdir}/$$i.a'
+			UNINSTALL_LIB='&& rm -f ${DESTDIR}${bindir}/$$i ${DESTDIR}${libdir}/$$i.a'
+			CLEAN_LIB='${LIB}.a'
+			;;
+		*)
+			{ $as_echo "$as_me:${as_lineno-$LINENO}: result: GNU" >&5
+$as_echo "GNU" >&6; }
+			LIB_CFLAGS='-fPIC -DPIC'
+			LIB_LDFLAGS='-shared -Wl,-soname=${LIB}.${LIB_MAJOR}'
+			LIB_PREFIX='lib'
+			LIB_SUFFIX='.so'
+			LDFLAGS_RPATH='-Wl,-rpath,${libdir}'
+			PLUGIN_CFLAGS='-fPIC -DPIC'
+			PLUGIN_LDFLAGS='-shared'
+			PLUGIN_SUFFIX='.so'
+			INSTALL_LIB='&& ${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR}.0 && ${LN_S} -f $$i.${LIB_MAJOR}.${LIB_MINOR}.0 ${DESTDIR}${libdir}/$$i.${LIB_MAJOR} && ${LN_S} -f $$i.${LIB_MAJOR}.${LIB_MINOR}.0 ${DESTDIR}${libdir}/$$i'
+			UNINSTALL_LIB='&& rm -f ${DESTDIR}${libdir}/$$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR} ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR}.0'
+			CLEAN_LIB=''
+			;;
+	esac
+
 
 
-  test -n "$ac_ct_CC" && break
-done
 
-  if test "x$ac_ct_CC" = x; then
-    CC=""
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    CC=$ac_ct_CC
-  fi
-fi
 
-fi
 
 
-test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "no acceptable C compiler found in \$PATH
-See \`config.log' for more details" "$LINENO" 5; }
 
-# Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
-set X $ac_compile
-ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
-  { { ac_try="$ac_compiler $ac_option >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    sed '10a\
-... rest of stderr output deleted ...
-         10q' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-  fi
-  rm -f conftest.er1 conftest.err
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-done
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
-$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if ${ac_cv_c_compiler_gnu+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-int
-main ()
-{
-#ifndef __GNUC__
-       choke me
-#endif
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_compiler_gnu=yes
-else
-  ac_compiler_gnu=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
 
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
-$as_echo "$ac_cv_c_compiler_gnu" >&6; }
-if test $ac_compiler_gnu = yes; then
-  GCC=yes
-else
-  GCC=
-fi
-ac_test_CFLAGS=${CFLAGS+set}
-ac_save_CFLAGS=$CFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
-$as_echo_n "checking whether $CC accepts -g... " >&6; }
-if ${ac_cv_prog_cc_g+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_save_c_werror_flag=$ac_c_werror_flag
-   ac_c_werror_flag=yes
-   ac_cv_prog_cc_g=no
-   CFLAGS="-g"
-   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-int
-main ()
-{
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_prog_cc_g=yes
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5
+$as_echo_n "checking whether byte ordering is bigendian... " >&6; }
+if ${ac_cv_c_bigendian+:} false; then :
+  $as_echo_n "(cached) " >&6
 else
-  CFLAGS=""
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  ac_cv_c_bigendian=unknown
+    # See if we're dealing with a universal compiler.
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
+#ifndef __APPLE_CC__
+	       not a universal capable compiler
+	     #endif
+	     typedef int dummy;
 
-int
-main ()
-{
-
-  ;
-  return 0;
-}
 _ACEOF
 if ac_fn_c_try_compile "$LINENO"; then :
 
-else
-  ac_c_werror_flag=$ac_save_c_werror_flag
-	 CFLAGS="-g"
-	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+	# Check for potential -arch flags.  It is not universal unless
+	# there are at least two -arch flags with different values.
+	ac_arch=
+	ac_prev=
+	for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do
+	 if test -n "$ac_prev"; then
+	   case $ac_word in
+	     i?86 | x86_64 | ppc | ppc64)
+	       if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then
+		 ac_arch=$ac_word
+	       else
+		 ac_cv_c_bigendian=universal
+		 break
+	       fi
+	       ;;
+	   esac
+	   ac_prev=
+	 elif test "x$ac_word" = "x-arch"; then
+	   ac_prev=arch
+	 fi
+       done
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+    if test $ac_cv_c_bigendian = unknown; then
+      # See if sys/param.h defines the BYTE_ORDER macro.
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
+#include <sys/types.h>
+	     #include <sys/param.h>
 
 int
 main ()
 {
+#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \
+		     && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \
+		     && LITTLE_ENDIAN)
+	      bogus endian macros
+	     #endif
 
   ;
   return 0;
 }
 _ACEOF
 if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_prog_cc_g=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-   ac_c_werror_flag=$ac_save_c_werror_flag
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
-$as_echo "$ac_cv_prog_cc_g" >&6; }
-if test "$ac_test_CFLAGS" = set; then
-  CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
-  if test "$GCC" = yes; then
-    CFLAGS="-g -O2"
-  else
-    CFLAGS="-g"
-  fi
-else
-  if test "$GCC" = yes; then
-    CFLAGS="-O2"
-  else
-    CFLAGS=
-  fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
-$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if ${ac_cv_prog_cc_c89+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_prog_cc_c89=no
-ac_save_CC=$CC
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  # It does; now see whether it defined to BIG_ENDIAN or not.
+	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#include <stdarg.h>
-#include <stdio.h>
 #include <sys/types.h>
-#include <sys/stat.h>
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
-     char **p;
-     int i;
-{
-  return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
-  char *s;
-  va_list v;
-  va_start (v,p);
-  s = g (p, va_arg (v,int));
-  va_end (v);
-  return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
-   function prototypes and stuff, but not '\xHH' hex character constants.
-   These don't provoke an error unfortunately, instead are silently treated
-   as 'x'.  The following induces an error, until -std is added to get
-   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
-   array size at least.  It's necessary to write '\x00'==0 to get something
-   that's true only with -std.  */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
-
-/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
-   inside strings and character constants.  */
-#define FOO(x) 'x'
-int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
+		#include <sys/param.h>
 
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
 int
 main ()
 {
-return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
+#if BYTE_ORDER != BIG_ENDIAN
+		 not big endian
+		#endif
+
   ;
   return 0;
 }
 _ACEOF
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
-	-Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
-  CC="$ac_save_CC $ac_arg"
-  if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_prog_cc_c89=$ac_arg
-fi
-rm -f core conftest.err conftest.$ac_objext
-  test "x$ac_cv_prog_cc_c89" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CC=$ac_save_CC
-
-fi
-# AC_CACHE_VAL
-case "x$ac_cv_prog_cc_c89" in
-  x)
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-$as_echo "none needed" >&6; } ;;
-  xno)
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-$as_echo "unsupported" >&6; } ;;
-  *)
-    CC="$CC $ac_cv_prog_cc_c89"
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
-$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
-esac
-if test "x$ac_cv_prog_cc_c89" != xno; then :
-
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-ac_ext=cpp
-ac_cpp='$CXXCPP $CPPFLAGS'
-ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-if test -z "$CXX"; then
-  if test -n "$CCC"; then
-    CXX=$CCC
-  else
-    if test -n "$ac_tool_prefix"; then
-  for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CXX+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CXX"; then
-  ac_cv_prog_CXX="$CXX" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-CXX=$ac_cv_prog_CXX
-if test -n "$CXX"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5
-$as_echo "$CXX" >&6; }
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_c_bigendian=yes
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  ac_cv_c_bigendian=no
 fi
-
-
-    test -n "$CXX" && break
-  done
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-if test -z "$CXX"; then
-  ac_ct_CXX=$CXX
-  for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CXX+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_CXX"; then
-  ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_CXX="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+    fi
+    if test $ac_cv_c_bigendian = unknown; then
+      # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris).
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <limits.h>
 
-fi
-fi
-ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
-if test -n "$ac_ct_CXX"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5
-$as_echo "$ac_ct_CXX" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
+int
+main ()
+{
+#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN)
+	      bogus endian macros
+	     #endif
 
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  # It does; now see whether it defined to _BIG_ENDIAN or not.
+	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <limits.h>
 
-  test -n "$ac_ct_CXX" && break
-done
+int
+main ()
+{
+#ifndef _BIG_ENDIAN
+		 not big endian
+		#endif
 
-  if test "x$ac_ct_CXX" = x; then
-    CXX="g++"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    CXX=$ac_ct_CXX
-  fi
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_cv_c_bigendian=yes
+else
+  ac_cv_c_bigendian=no
 fi
-
-  fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-# Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5
-set X $ac_compile
-ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
-  { { ac_try="$ac_compiler $ac_option >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    sed '10a\
-... rest of stderr output deleted ...
-         10q' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-  fi
-  rm -f conftest.er1 conftest.err
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-done
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+    fi
+    if test $ac_cv_c_bigendian = unknown; then
+      # Compile a test program.
+      if test "$cross_compiling" = yes; then :
+  # Try to guess by grepping values from an object file.
+	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+short int ascii_mm[] =
+		  { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
+		short int ascii_ii[] =
+		  { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
+		int use_ascii (int i) {
+		  return ascii_mm[i] + ascii_ii[i];
+		}
+		short int ebcdic_ii[] =
+		  { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
+		short int ebcdic_mm[] =
+		  { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
+		int use_ebcdic (int i) {
+		  return ebcdic_mm[i] + ebcdic_ii[i];
+		}
+		extern int foo;
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5
-$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; }
-if ${ac_cv_cxx_compiler_gnu+:} false; then :
-  $as_echo_n "(cached) " >&6
+int
+main ()
+{
+return use_ascii (foo) == use_ebcdic (foo);
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then
+	      ac_cv_c_bigendian=yes
+	    fi
+	    if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
+	      if test "$ac_cv_c_bigendian" = unknown; then
+		ac_cv_c_bigendian=no
+	      else
+		# finding both strings is unlikely to happen, but who knows?
+		ac_cv_c_bigendian=unknown
+	      fi
+	    fi
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
+$ac_includes_default
 int
 main ()
 {
-#ifndef __GNUC__
-       choke me
-#endif
+
+	     /* Are we little or big endian?  From Harbison&Steele.  */
+	     union
+	     {
+	       long int l;
+	       char c[sizeof (long int)];
+	     } u;
+	     u.l = 1;
+	     return u.c[sizeof (long int) - 1] == 1;
 
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  ac_compiler_gnu=yes
+if ac_fn_c_try_run "$LINENO"; then :
+  ac_cv_c_bigendian=no
 else
-  ac_compiler_gnu=no
+  ac_cv_c_bigendian=yes
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
-
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5
-$as_echo "$ac_cv_cxx_compiler_gnu" >&6; }
-if test $ac_compiler_gnu = yes; then
-  GXX=yes
-else
-  GXX=
+
+    fi
 fi
-ac_test_CXXFLAGS=${CXXFLAGS+set}
-ac_save_CXXFLAGS=$CXXFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5
-$as_echo_n "checking whether $CXX accepts -g... " >&6; }
-if ${ac_cv_prog_cxx_g+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_save_cxx_werror_flag=$ac_cxx_werror_flag
-   ac_cxx_werror_flag=yes
-   ac_cv_prog_cxx_g=no
-   CXXFLAGS="-g"
-   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5
+$as_echo "$ac_cv_c_bigendian" >&6; }
+ case $ac_cv_c_bigendian in #(
+   yes)
+     BIGENDIAN=1;; #(
+   no)
+     BIGENDIAN=0 ;; #(
+   universal)
+     as_fn_error $? "Universal builds are not supported, sorry" "$LINENO" 5
+     ;; #(
+   *)
+     as_fn_error $? "Unknown machine byte order" "$LINENO" 5 ;;
+ esac
 
-int
-main ()
-{
 
-  ;
-  return 0;
-}
+
+for ac_header in execinfo.h regex.h rxposix.h rx/rxposix.h
+do :
+  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  ac_cv_prog_cxx_g=yes
-else
-  CXXFLAGS=""
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-int
-main ()
-{
+fi
 
-  ;
-  return 0;
-}
+done
+
+for ac_func in sigwait backtrace
+do :
+  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+  cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
 
-else
-  ac_cxx_werror_flag=$ac_save_cxx_werror_flag
-	 CXXFLAGS="-g"
-	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
+fi
+done
+
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for cexpf" >&5
+$as_echo_n "checking for cexpf... " >&6; }
+OLD_LIBS="$LIBS"
+LIBS="$LIBS -lm"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <complex.h>
+                                 #include <stdio.h>
 int
 main ()
 {
-
+printf ("%f", crealf (cexpf (1)))
   ;
   return 0;
 }
 _ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  ac_cv_prog_cxx_g=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-   ac_cxx_werror_flag=$ac_save_cxx_werror_flag
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5
-$as_echo "$ac_cv_prog_cxx_g" >&6; }
-if test "$ac_test_CXXFLAGS" = set; then
-  CXXFLAGS=$ac_save_CXXFLAGS
-elif test $ac_cv_prog_cxx_g = yes; then
-  if test "$GXX" = yes; then
-    CXXFLAGS="-g -O2"
-  else
-    CXXFLAGS="-g"
-  fi
-else
-  if test "$GXX" = yes; then
-    CXXFLAGS="-O2"
-  else
-    CXXFLAGS=
-  fi
-fi
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if ac_fn_c_try_link "$LINENO"; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
 
-# By default we simply use the C compiler to build assembly code.
+$as_echo "#define HAVE_CEXPF 1" >>confdefs.h
 
-test "${CCAS+set}" = set || CCAS=$CC
-test "${CCASFLAGS+set}" = set || CCASFLAGS=$CFLAGS
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS="$OLD_LIBS"
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for /proc/self/exe" >&5
+$as_echo_n "checking for /proc/self/exe... " >&6; }
+if test -e "/proc/self/exe" ; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
 
+$as_echo "#define HAVE_PROC_SELF_EXE 1" >>confdefs.h
 
-depcc="$CCAS"   am_compiler_list=
+else
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
-$as_echo_n "checking dependency style of $depcc... " >&6; }
-if ${am_cv_CCAS_dependencies_compiler_type+:} false; then :
+# Find a good install program.  We prefer a C program (faster),
+# so one script is as good as another.  But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AmigaOS /C/install, which installs bootblocks on floppy discs
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# OS/2's system install, which has a completely different semantic
+# ./install, which can be erroneously created by make from ./install.sh.
+# Reject install programs that cannot install multiple files.
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
+$as_echo_n "checking for a BSD-compatible install... " >&6; }
+if test -z "$INSTALL"; then
+if ${ac_cv_path_install+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
-  # We make a subdir and do the tests there.  Otherwise we can end up
-  # making bogus files that we don't know about and never remove.  For
-  # instance it was reported that on HP-UX the gcc test will end up
-  # making a dummy file named `D' -- because `-MD' means `put the output
-  # in D'.
-  mkdir conftest.dir
-  # Copy depcomp to subdir because otherwise we won't find it if we're
-  # using a relative directory.
-  cp "$am_depcomp" conftest.dir
-  cd conftest.dir
-  # We will build objects and dependencies in a subdirectory because
-  # it helps to detect inapplicable dependency modes.  For instance
-  # both Tru64's cc and ICC support -MD to output dependencies as a
-  # side effect of compilation, but ICC will put the dependencies in
-  # the current directory while Tru64 will put them in the object
-  # directory.
-  mkdir sub
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    # Account for people who put trailing slashes in PATH elements.
+case $as_dir/ in #((
+  ./ | .// | /[cC]/* | \
+  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
+  ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
+  /usr/ucb/* ) ;;
+  *)
+    # OSF1 and SCO ODT 3.0 have their own names for install.
+    # Don't use installbsd from OSF since it installs stuff as root
+    # by default.
+    for ac_prog in ginstall scoinst install; do
+      for ac_exec_ext in '' $ac_executable_extensions; do
+	if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
+	  if test $ac_prog = install &&
+	    grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+	    # AIX install.  It has an incompatible calling convention.
+	    :
+	  elif test $ac_prog = install &&
+	    grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+	    # program-specific install script used by HP pwplus--don't use.
+	    :
+	  else
+	    rm -rf conftest.one conftest.two conftest.dir
+	    echo one > conftest.one
+	    echo two > conftest.two
+	    mkdir conftest.dir
+	    if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
+	      test -s conftest.one && test -s conftest.two &&
+	      test -s conftest.dir/conftest.one &&
+	      test -s conftest.dir/conftest.two
+	    then
+	      ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+	      break 3
+	    fi
+	  fi
+	fi
+      done
+    done
+    ;;
+esac
 
-  am_cv_CCAS_dependencies_compiler_type=none
-  if test "$am_compiler_list" = ""; then
-     am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+  done
+IFS=$as_save_IFS
+
+rm -rf conftest.one conftest.two conftest.dir
+
+fi
+  if test "${ac_cv_path_install+set}" = set; then
+    INSTALL=$ac_cv_path_install
+  else
+    # As a last resort, use the slow shell script.  Don't cache a
+    # value for INSTALL within a source directory, because that will
+    # break other packages using the cache if that directory is
+    # removed, or if the value is a relative name.
+    INSTALL=$ac_install_sh
   fi
-  am__universal=false
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
+$as_echo "$INSTALL" >&6; }
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
 
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
 
-  for depmode in $am_compiler_list; do
-    # Setup a source with many dependencies, because some compilers
-    # like to wrap large dependency lists on column 80 (with \), and
-    # we should not choose a depcomp mode which is confused by this.
-    #
-    # We need to recreate these files for each test, as the compiler may
-    # overwrite some of them when testing with obscure command lines.
-    # This happens at least with the AIX C compiler.
-    : > sub/conftest.c
-    for i in 1 2 3 4 5 6; do
-      echo '#include "conftst'$i'.h"' >> sub/conftest.c
-      # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
-      # Solaris 8's {/usr,}/bin/sh.
-      touch sub/conftst$i.h
-    done
-    echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
 
-    # We check with `-c' and `-o' for the sake of the "dashmstdout"
-    # mode.  It turns out that the SunPro C++ compiler does not properly
-    # handle `-M -o', and we need to detect this.  Also, some Intel
-    # versions had trouble with output in subdirs
-    am__obj=sub/conftest.${OBJEXT-o}
-    am__minus_obj="-o $am__obj"
-    case $depmode in
-    gcc)
-      # This depmode causes a compiler race in universal mode.
-      test "$am__universal" = false || continue
-      ;;
-    nosideeffect)
-      # after this tag, mechanisms are not by side-effect, so they'll
-      # only be used when explicitly requested
-      if test "x$enable_dependency_tracking" = xyes; then
-	continue
-      else
-	break
-      fi
-      ;;
-    msvisualcpp | msvcmsys)
-      # This compiler won't grok `-c -o', but also, the minuso test has
-      # not run yet.  These depmodes are late enough in the game, and
-      # so weak that their functioning should not be impacted.
-      am__obj=conftest.${OBJEXT-o}
-      am__minus_obj=
-      ;;
-    none) break ;;
-    esac
-    if depmode=$depmode \
-       source=sub/conftest.c object=$am__obj \
-       depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
-       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
-         >/dev/null 2>conftest.err &&
-       grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
-       grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
-       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
-       ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
-      # icc doesn't choke on unknown options, it will just issue warnings
-      # or remarks (even with -Werror).  So we grep stderr for any message
-      # that says an option was ignored or not supported.
-      # When given -MP, icc 7.0 and 7.1 complain thusly:
-      #   icc: Command line warning: ignoring option '-M'; no argument required
-      # The diagnosis changed in icc 8.0:
-      #   icc: Command line remark: option '-MP' not supported
-      if (grep 'ignoring option' conftest.err ||
-          grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
-        am_cv_CCAS_dependencies_compiler_type=$depmode
-        break
-      fi
-    fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
+$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
+if test -z "$MKDIR_P"; then
+  if ${ac_cv_path_mkdir+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_prog in mkdir gmkdir; do
+	 for ac_exec_ext in '' $ac_executable_extensions; do
+	   { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue
+	   case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
+	     'mkdir (GNU coreutils) '* | \
+	     'mkdir (coreutils) '* | \
+	     'mkdir (fileutils) '4.1*)
+	       ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
+	       break 3;;
+	   esac
+	 done
+       done
   done
+IFS=$as_save_IFS
 
-  cd ..
-  rm -rf conftest.dir
-else
-  am_cv_CCAS_dependencies_compiler_type=none
 fi
 
+  test -d ./--version && rmdir ./--version
+  if test "${ac_cv_path_mkdir+set}" = set; then
+    MKDIR_P="$ac_cv_path_mkdir -p"
+  else
+    # As a last resort, use the slow shell script.  Don't cache a
+    # value for MKDIR_P within a source directory, because that will
+    # break other packages using the cache if that directory is
+    # removed, or if the value is a relative name.
+    MKDIR_P="$ac_install_sh -d"
+  fi
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CCAS_dependencies_compiler_type" >&5
-$as_echo "$am_cv_CCAS_dependencies_compiler_type" >&6; }
-CCASDEPMODE=depmode=$am_cv_CCAS_dependencies_compiler_type
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
+$as_echo "$MKDIR_P" >&6; }
 
- if
-  test "x$enable_dependency_tracking" != xno \
-  && test "$am_cv_CCAS_dependencies_compiler_type" = gcc3; then
-  am__fastdepCCAS_TRUE=
-  am__fastdepCCAS_FALSE='#'
+mkdir_p="$MKDIR_P"
+case $mkdir_p in
+  [\\/$]* | ?:[\\/]*) ;;
+  */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
+esac
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5
+$as_echo_n "checking whether NLS is requested... " >&6; }
+    # Check whether --enable-nls was given.
+if test "${enable_nls+set}" = set; then :
+  enableval=$enable_nls; USE_NLS=$enableval
 else
-  am__fastdepCCAS_TRUE='#'
-  am__fastdepCCAS_FALSE=
+  USE_NLS=yes
 fi
 
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5
+$as_echo "$USE_NLS" >&6; }
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing strerror" >&5
-$as_echo_n "checking for library containing strerror... " >&6; }
-if ${ac_cv_search_strerror+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_func_search_save_LIBS=$LIBS
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char strerror ();
-int
-main ()
-{
-return strerror ();
-  ;
-  return 0;
-}
-_ACEOF
-for ac_lib in '' cposix; do
-  if test -z "$ac_lib"; then
-    ac_res="none required"
+
+
+      GETTEXT_MACRO_VERSION=0.18
+
+
+
+
+# Prepare PATH_SEPARATOR.
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  echo "#! /bin/sh" >conf$$.sh
+  echo  "exit 0"   >>conf$$.sh
+  chmod +x conf$$.sh
+  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+    PATH_SEPARATOR=';'
   else
-    ac_res=-l$ac_lib
-    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
+    PATH_SEPARATOR=:
   fi
-  if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_search_strerror=$ac_res
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext
-  if ${ac_cv_search_strerror+:} false; then :
-  break
+  rm -f conf$$.sh
 fi
-done
-if ${ac_cv_search_strerror+:} false; then :
 
+# Find out how to test for executable files. Don't use a zero-byte file,
+# as systems may use methods other than mode bits to determine executability.
+cat >conf$$.file <<_ASEOF
+#! /bin/sh
+exit 0
+_ASEOF
+chmod +x conf$$.file
+if test -x conf$$.file >/dev/null 2>&1; then
+  ac_executable_p="test -x"
 else
-  ac_cv_search_strerror=no
-fi
-rm conftest.$ac_ext
-LIBS=$ac_func_search_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_strerror" >&5
-$as_echo "$ac_cv_search_strerror" >&6; }
-ac_res=$ac_cv_search_strerror
-if test "$ac_res" != no; then :
-  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-
+  ac_executable_p="test -f"
 fi
+rm -f conf$$.file
 
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5
-$as_echo_n "checking whether byte ordering is bigendian... " >&6; }
-if ${ac_cv_c_bigendian+:} false; then :
+# Extract the first word of "msgfmt", so it can be a program name with args.
+set dummy msgfmt; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_MSGFMT+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  ac_cv_c_bigendian=unknown
-    # See if we're dealing with a universal compiler.
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#ifndef __APPLE_CC__
-	       not a universal capable compiler
-	     #endif
-	     typedef int dummy;
-
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
-	# Check for potential -arch flags.  It is not universal unless
-	# there are at least two -arch flags with different values.
-	ac_arch=
-	ac_prev=
-	for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do
-	 if test -n "$ac_prev"; then
-	   case $ac_word in
-	     i?86 | x86_64 | ppc | ppc64)
-	       if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then
-		 ac_arch=$ac_word
-	       else
-		 ac_cv_c_bigendian=universal
-		 break
-	       fi
-	       ;;
-	   esac
-	   ac_prev=
-	 elif test "x$ac_word" = "x-arch"; then
-	   ac_prev=arch
-	 fi
-       done
+  case "$MSGFMT" in
+  [\\/]* | ?:[\\/]*)
+    ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path.
+    ;;
+  *)
+    ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
+    for ac_dir in $PATH; do
+      IFS="$ac_save_IFS"
+      test -z "$ac_dir" && ac_dir=.
+      for ac_exec_ext in '' $ac_executable_extensions; do
+        if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
+          echo "$as_me: trying $ac_dir/$ac_word..." >&5
+          if $ac_dir/$ac_word --statistics /dev/null >&5 2>&1 &&
+     (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
+            ac_cv_path_MSGFMT="$ac_dir/$ac_word$ac_exec_ext"
+            break 2
+          fi
+        fi
+      done
+    done
+    IFS="$ac_save_IFS"
+  test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":"
+    ;;
+esac
+fi
+MSGFMT="$ac_cv_path_MSGFMT"
+if test "$MSGFMT" != ":"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5
+$as_echo "$MSGFMT" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-    if test $ac_cv_c_bigendian = unknown; then
-      # See if sys/param.h defines the BYTE_ORDER macro.
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <sys/types.h>
-	     #include <sys/param.h>
-
-int
-main ()
-{
-#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \
-		     && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \
-		     && LITTLE_ENDIAN)
-	      bogus endian macros
-	     #endif
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  # It does; now see whether it defined to BIG_ENDIAN or not.
-	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <sys/types.h>
-		#include <sys/param.h>
-
-int
-main ()
-{
-#if BYTE_ORDER != BIG_ENDIAN
-		 not big endian
-		#endif
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_c_bigendian=yes
+  # Extract the first word of "gmsgfmt", so it can be a program name with args.
+set dummy gmsgfmt; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_GMSGFMT+:} false; then :
+  $as_echo_n "(cached) " >&6
 else
-  ac_cv_c_bigendian=no
+  case $GMSGFMT in
+  [\\/]* | ?:[\\/]*)
+  ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path.
+  ;;
+  *)
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+  test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT"
+  ;;
+esac
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+GMSGFMT=$ac_cv_path_GMSGFMT
+if test -n "$GMSGFMT"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5
+$as_echo "$GMSGFMT" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-    fi
-    if test $ac_cv_c_bigendian = unknown; then
-      # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris).
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <limits.h>
 
-int
-main ()
-{
-#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN)
-	      bogus endian macros
-	     #endif
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  # It does; now see whether it defined to _BIG_ENDIAN or not.
-	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <limits.h>
 
-int
-main ()
-{
-#ifndef _BIG_ENDIAN
-		 not big endian
-		#endif
+    case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
+    '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;;
+    *) MSGFMT_015=$MSGFMT ;;
+  esac
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_c_bigendian=yes
-else
-  ac_cv_c_bigendian=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-    fi
-    if test $ac_cv_c_bigendian = unknown; then
-      # Compile a test program.
-      if test "$cross_compiling" = yes; then :
-  # Try to guess by grepping values from an object file.
-	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-short int ascii_mm[] =
-		  { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
-		short int ascii_ii[] =
-		  { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
-		int use_ascii (int i) {
-		  return ascii_mm[i] + ascii_ii[i];
-		}
-		short int ebcdic_ii[] =
-		  { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
-		short int ebcdic_mm[] =
-		  { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
-		int use_ebcdic (int i) {
-		  return ebcdic_mm[i] + ebcdic_ii[i];
-		}
-		extern int foo;
+  case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
+    '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;;
+    *) GMSGFMT_015=$GMSGFMT ;;
+  esac
 
-int
-main ()
-{
-return use_ascii (foo) == use_ebcdic (foo);
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then
-	      ac_cv_c_bigendian=yes
-	    fi
-	    if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
-	      if test "$ac_cv_c_bigendian" = unknown; then
-		ac_cv_c_bigendian=no
-	      else
-		# finding both strings is unlikely to happen, but who knows?
-		ac_cv_c_bigendian=unknown
-	      fi
-	    fi
+
+
+# Prepare PATH_SEPARATOR.
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  echo "#! /bin/sh" >conf$$.sh
+  echo  "exit 0"   >>conf$$.sh
+  chmod +x conf$$.sh
+  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+    PATH_SEPARATOR=';'
+  else
+    PATH_SEPARATOR=:
+  fi
+  rm -f conf$$.sh
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
 
-	     /* Are we little or big endian?  From Harbison&Steele.  */
-	     union
-	     {
-	       long int l;
-	       char c[sizeof (long int)];
-	     } u;
-	     u.l = 1;
-	     return u.c[sizeof (long int) - 1] == 1;
+# Find out how to test for executable files. Don't use a zero-byte file,
+# as systems may use methods other than mode bits to determine executability.
+cat >conf$$.file <<_ASEOF
+#! /bin/sh
+exit 0
+_ASEOF
+chmod +x conf$$.file
+if test -x conf$$.file >/dev/null 2>&1; then
+  ac_executable_p="test -x"
+else
+  ac_executable_p="test -f"
+fi
+rm -f conf$$.file
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  ac_cv_c_bigendian=no
+# Extract the first word of "xgettext", so it can be a program name with args.
+set dummy xgettext; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_XGETTEXT+:} false; then :
+  $as_echo_n "(cached) " >&6
 else
-  ac_cv_c_bigendian=yes
+  case "$XGETTEXT" in
+  [\\/]* | ?:[\\/]*)
+    ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path.
+    ;;
+  *)
+    ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
+    for ac_dir in $PATH; do
+      IFS="$ac_save_IFS"
+      test -z "$ac_dir" && ac_dir=.
+      for ac_exec_ext in '' $ac_executable_extensions; do
+        if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
+          echo "$as_me: trying $ac_dir/$ac_word..." >&5
+          if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&5 2>&1 &&
+     (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
+            ac_cv_path_XGETTEXT="$ac_dir/$ac_word$ac_exec_ext"
+            break 2
+          fi
+        fi
+      done
+    done
+    IFS="$ac_save_IFS"
+  test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":"
+    ;;
+esac
 fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+XGETTEXT="$ac_cv_path_XGETTEXT"
+if test "$XGETTEXT" != ":"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5
+$as_echo "$XGETTEXT" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
-    fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5
-$as_echo "$ac_cv_c_bigendian" >&6; }
- case $ac_cv_c_bigendian in #(
-   yes)
-     $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h
-;; #(
-   no)
-      ;; #(
-   universal)
+    rm -f messages.po
 
-$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
+    case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
+    '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;;
+    *) XGETTEXT_015=$XGETTEXT ;;
+  esac
 
-     ;; #(
-   *)
-     as_fn_error $? "unknown endianness
- presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;;
- esac
 
 
-if test "x$GCC" = "xyes"; then
-    CFLAGS="$CFLAGS -Wall -pipe"
-    CXXFLAGS="$CXXFLAGS -pipe -Wall"
+# Prepare PATH_SEPARATOR.
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  echo "#! /bin/sh" >conf$$.sh
+  echo  "exit 0"   >>conf$$.sh
+  chmod +x conf$$.sh
+  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+    PATH_SEPARATOR=';'
+  else
+    PATH_SEPARATOR=:
+  fi
+  rm -f conf$$.sh
 fi
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
-$as_echo_n "checking whether ln -s works... " >&6; }
-LN_S=$as_ln_s
-if test "$LN_S" = "ln -s"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+# Find out how to test for executable files. Don't use a zero-byte file,
+# as systems may use methods other than mode bits to determine executability.
+cat >conf$$.file <<_ASEOF
+#! /bin/sh
+exit 0
+_ASEOF
+chmod +x conf$$.file
+if test -x conf$$.file >/dev/null 2>&1; then
+  ac_executable_p="test -x"
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
-$as_echo "no, using $LN_S" >&6; }
+  ac_executable_p="test -f"
 fi
+rm -f conf$$.file
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
-$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
-set x ${MAKE-make}
-ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
+# Extract the first word of "msgmerge", so it can be a program name with args.
+set dummy msgmerge; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_path_MSGMERGE+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.make <<\_ACEOF
-SHELL = /bin/sh
-all:
-	@echo '@@@%%%=$(MAKE)=@@@%%%'
-_ACEOF
-# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
-case `${MAKE-make} -f conftest.make 2>/dev/null` in
-  *@@@%%%=?*=@@@%%%*)
-    eval ac_cv_prog_make_${ac_make}_set=yes;;
+  case "$MSGMERGE" in
+  [\\/]* | ?:[\\/]*)
+    ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path.
+    ;;
   *)
-    eval ac_cv_prog_make_${ac_make}_set=no;;
+    ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
+    for ac_dir in $PATH; do
+      IFS="$ac_save_IFS"
+      test -z "$ac_dir" && ac_dir=.
+      for ac_exec_ext in '' $ac_executable_extensions; do
+        if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
+          echo "$as_me: trying $ac_dir/$ac_word..." >&5
+          if $ac_dir/$ac_word --update -q /dev/null /dev/null >&5 2>&1; then
+            ac_cv_path_MSGMERGE="$ac_dir/$ac_word$ac_exec_ext"
+            break 2
+          fi
+        fi
+      done
+    done
+    IFS="$ac_save_IFS"
+  test -z "$ac_cv_path_MSGMERGE" && ac_cv_path_MSGMERGE=":"
+    ;;
 esac
-rm -f conftest.make
 fi
-if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-  SET_MAKE=
+MSGMERGE="$ac_cv_path_MSGMERGE"
+if test "$MSGMERGE" != ":"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5
+$as_echo "$MSGMERGE" >&6; }
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
-  SET_MAKE="MAKE=${MAKE-make}"
 fi
 
-# Extract the first word of "rm", so it can be a program name with args.
-set dummy rm; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_RM+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $RM in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_RM="$RM" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_RM="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
+
+        test -n "$localedir" || localedir='${datadir}/locale'
+
+
+    test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS=
+
+
+  ac_config_commands="$ac_config_commands po-directories"
+
+
+
+      if test "X$prefix" = "XNONE"; then
+    acl_final_prefix="$ac_default_prefix"
+  else
+    acl_final_prefix="$prefix"
   fi
-done
-  done
-IFS=$as_save_IFS
+  if test "X$exec_prefix" = "XNONE"; then
+    acl_final_exec_prefix='${prefix}'
+  else
+    acl_final_exec_prefix="$exec_prefix"
+  fi
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  eval acl_final_exec_prefix=\"$acl_final_exec_prefix\"
+  prefix="$acl_save_prefix"
 
-  ;;
-esac
-fi
-RM=$ac_cv_path_RM
-if test -n "$RM"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RM" >&5
-$as_echo "$RM" >&6; }
+
+# Check whether --with-gnu-ld was given.
+if test "${with_gnu_ld+set}" = set; then :
+  withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  with_gnu_ld=no
 fi
 
-
-# Extract the first word of "mv", so it can be a program name with args.
-set dummy mv; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_MV+:} false; then :
+# Prepare PATH_SEPARATOR.
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  echo "#! /bin/sh" >conf$$.sh
+  echo  "exit 0"   >>conf$$.sh
+  chmod +x conf$$.sh
+  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+    PATH_SEPARATOR=';'
+  else
+    PATH_SEPARATOR=:
+  fi
+  rm -f conf$$.sh
+fi
+ac_prog=ld
+if test "$GCC" = yes; then
+  # Check if gcc -print-prog-name=ld gives a path.
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by GCC" >&5
+$as_echo_n "checking for ld used by GCC... " >&6; }
+  case $host in
+  *-*-mingw*)
+    # gcc leaves a trailing carriage return which upsets mingw
+    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+  *)
+    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+  esac
+  case $ac_prog in
+    # Accept absolute paths.
+    [\\/]* | [A-Za-z]:[\\/]*)
+      re_direlt='/[^/][^/]*/\.\./'
+      # Canonicalize the path of ld
+      ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
+      while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+        ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
+      done
+      test -z "$LD" && LD="$ac_prog"
+      ;;
+  "")
+    # If it fails, then pretend we aren't using GCC.
+    ac_prog=ld
+    ;;
+  *)
+    # If it is relative, then search for the first ld in PATH.
+    with_gnu_ld=unknown
+    ;;
+  esac
+elif test "$with_gnu_ld" = yes; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
+$as_echo_n "checking for GNU ld... " >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
+$as_echo_n "checking for non-GNU ld... " >&6; }
+fi
+if ${acl_cv_path_LD+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  case $MV in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_MV="$MV" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_MV="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
+  if test -z "$LD"; then
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+      acl_cv_path_LD="$ac_dir/$ac_prog"
+      # Check to see if the program is GNU ld.  I'd rather use --version,
+      # but apparently some GNU ld's only accept -v.
+      # Break only if it was the GNU/non-GNU ld that we prefer.
+      case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in
+      *GNU* | *'with BFD'*)
+        test "$with_gnu_ld" != no && break ;;
+      *)
+        test "$with_gnu_ld" != yes && break ;;
+      esac
+    fi
   done
-IFS=$as_save_IFS
-
-  ;;
-esac
+  IFS="$ac_save_ifs"
+else
+  acl_cv_path_LD="$LD" # Let the user override the test with a path.
 fi
-MV=$ac_cv_path_MV
-if test -n "$MV"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MV" >&5
-$as_echo "$MV" >&6; }
+fi
+
+LD="$acl_cv_path_LD"
+if test -n "$LD"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
+$as_echo "$LD" >&6; }
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
-
-
-# Extract the first word of "cp", so it can be a program name with args.
-set dummy cp; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_CP+:} false; then :
+test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
+$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
+if ${acl_cv_prog_gnu_ld+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  case $CP in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_CP="$CP" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_CP="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
+  # I'd rather use --version here, but apparently some GNU ld's only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+  acl_cv_prog_gnu_ld=yes ;;
+*)
+  acl_cv_prog_gnu_ld=no ;;
 esac
 fi
-CP=$ac_cv_path_CP
-if test -n "$CP"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CP" >&5
-$as_echo "$CP" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_prog_gnu_ld" >&5
+$as_echo "$acl_cv_prog_gnu_ld" >&6; }
+with_gnu_ld=$acl_cv_prog_gnu_ld
 
 
-# Extract the first word of "ar", so it can be a program name with args.
-set dummy ar; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_AR+:} false; then :
+
+
+                                                { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shared library run path origin" >&5
+$as_echo_n "checking for shared library run path origin... " >&6; }
+if ${acl_cv_rpath+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  case $AR in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_AR="$AR" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_AR="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
 
-  ;;
-esac
+    CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
+    ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
+    . ./conftest.sh
+    rm -f ./conftest.sh
+    acl_cv_rpath=done
+
 fi
-AR=$ac_cv_path_AR
-if test -n "$AR"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
-$as_echo "$AR" >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_rpath" >&5
+$as_echo "$acl_cv_rpath" >&6; }
+  wl="$acl_cv_wl"
+  acl_libext="$acl_cv_libext"
+  acl_shlibext="$acl_cv_shlibext"
+  acl_libname_spec="$acl_cv_libname_spec"
+  acl_library_names_spec="$acl_cv_library_names_spec"
+  acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
+  acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
+  acl_hardcode_direct="$acl_cv_hardcode_direct"
+  acl_hardcode_minus_L="$acl_cv_hardcode_minus_L"
+    # Check whether --enable-rpath was given.
+if test "${enable_rpath+set}" = set; then :
+  enableval=$enable_rpath; :
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  enable_rpath=yes
 fi
 
 
-# Extract the first word of "tr", so it can be a program name with args.
-set dummy tr; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_TR+:} false; then :
+
+
+  acl_libdirstem=lib
+  acl_libdirstem2=
+  case "$host_os" in
+    solaris*)
+                                    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit host" >&5
+$as_echo_n "checking for 64-bit host... " >&6; }
+if ${gl_cv_solaris_64bit+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  case $TR in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_TR="$TR" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_TR="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
-  ;;
-esac
-fi
-TR=$ac_cv_path_TR
-if test -n "$TR"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TR" >&5
-$as_echo "$TR" >&6; }
+#ifdef _LP64
+sixtyfour bits
+#endif
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  $EGREP "sixtyfour bits" >/dev/null 2>&1; then :
+  gl_cv_solaris_64bit=yes
 else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  gl_cv_solaris_64bit=no
 fi
+rm -f conftest*
+
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_solaris_64bit" >&5
+$as_echo "$gl_cv_solaris_64bit" >&6; }
+      if test $gl_cv_solaris_64bit = yes; then
+        acl_libdirstem=lib/64
+        case "$host_cpu" in
+          sparc*)        acl_libdirstem2=lib/sparcv9 ;;
+          i*86 | x86_64) acl_libdirstem2=lib/amd64 ;;
+        esac
+      fi
+      ;;
+    *)
+      searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'`
+      if test -n "$searchpath"; then
+        acl_save_IFS="${IFS= 	}"; IFS=":"
+        for searchdir in $searchpath; do
+          if test -d "$searchdir"; then
+            case "$searchdir" in
+              */lib64/ | */lib64 ) acl_libdirstem=lib64 ;;
+              */../ | */.. )
+                # Better ignore directories of this form. They are misleading.
+                ;;
+              *) searchdir=`cd "$searchdir" && pwd`
+                 case "$searchdir" in
+                   */lib64 ) acl_libdirstem=lib64 ;;
+                 esac ;;
+            esac
+          fi
+        done
+        IFS="$acl_save_IFS"
+      fi
+      ;;
+  esac
+  test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem"
+
+
+
+
+
+
+
+
 
 
-# Extract the first word of "ranlib", so it can be a program name with args.
-set dummy ranlib; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_RANLIB+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $RANLIB in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_RANLIB="$RANLIB" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_RANLIB="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
 
-  ;;
-esac
-fi
-RANLIB=$ac_cv_path_RANLIB
-if test -n "$RANLIB"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
-$as_echo "$RANLIB" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
 
+    use_additional=yes
 
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
 
+    eval additional_includedir=\"$includedir\"
+    eval additional_libdir=\"$libdir\"
 
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
 
-pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GLIB" >&5
-$as_echo_n "checking for GLIB... " >&6; }
 
-if test -n "$GLIB_CFLAGS"; then
-    pkg_cv_GLIB_CFLAGS="$GLIB_CFLAGS"
- elif test -n "$PKG_CONFIG"; then
-    if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.12.0\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.12.0") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-  pkg_cv_GLIB_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 >= 2.12.0" 2>/dev/null`
-else
-  pkg_failed=yes
-fi
- else
-    pkg_failed=untried
-fi
-if test -n "$GLIB_LIBS"; then
-    pkg_cv_GLIB_LIBS="$GLIB_LIBS"
- elif test -n "$PKG_CONFIG"; then
-    if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= 2.12.0\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "glib-2.0 >= 2.12.0") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-  pkg_cv_GLIB_LIBS=`$PKG_CONFIG --libs "glib-2.0 >= 2.12.0" 2>/dev/null`
-else
-  pkg_failed=yes
-fi
- else
-    pkg_failed=untried
-fi
+# Check whether --with-libiconv-prefix was given.
+if test "${with_libiconv_prefix+set}" = set; then :
+  withval=$with_libiconv_prefix;
+    if test "X$withval" = "Xno"; then
+      use_additional=no
+    else
+      if test "X$withval" = "X"; then
 
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
 
+          eval additional_includedir=\"$includedir\"
+          eval additional_libdir=\"$libdir\"
 
-if test $pkg_failed = yes; then
-   	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
 
-if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
-        _pkg_short_errors_supported=yes
-else
-        _pkg_short_errors_supported=no
-fi
-        if test $_pkg_short_errors_supported = yes; then
-	        GLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "glib-2.0 >= 2.12.0" 2>&1`
-        else
-	        GLIB_PKG_ERRORS=`$PKG_CONFIG --print-errors "glib-2.0 >= 2.12.0" 2>&1`
+      else
+        additional_includedir="$withval/include"
+        additional_libdir="$withval/$acl_libdirstem"
+        if test "$acl_libdirstem2" != "$acl_libdirstem" \
+           && ! test -d "$withval/$acl_libdirstem"; then
+          additional_libdir="$withval/$acl_libdirstem2"
         fi
-	# Put the nasty error message in config.log where it belongs
-	echo "$GLIB_PKG_ERRORS" >&5
-
+      fi
+    fi
 
-        if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "glib-2.0") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
+fi
 
-            cv_pkg_version=`$PKG_CONFIG --modversion "glib-2.0" 2>/dev/null`
-            as_fn_error $? "
-Glib2 version $cv_pkg_version was found, but glib-2.0 >= 2.12.0 is required.
-" "$LINENO" 5
+      LIBICONV=
+  LTLIBICONV=
+  INCICONV=
+  LIBICONV_PREFIX=
+      HAVE_LIBICONV=
+  rpathdirs=
+  ltrpathdirs=
+  names_already_handled=
+  names_next_round='iconv '
+  while test -n "$names_next_round"; do
+    names_this_round="$names_next_round"
+    names_next_round=
+    for name in $names_this_round; do
+      already_handled=
+      for n in $names_already_handled; do
+        if test "$n" = "$name"; then
+          already_handled=yes
+          break
+        fi
+      done
+      if test -z "$already_handled"; then
+        names_already_handled="$names_already_handled $name"
+                        uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
+        eval value=\"\$HAVE_LIB$uppername\"
+        if test -n "$value"; then
+          if test "$value" = yes; then
+            eval value=\"\$LIB$uppername\"
+            test -z "$value" || LIBICONV="${LIBICONV}${LIBICONV:+ }$value"
+            eval value=\"\$LTLIB$uppername\"
+            test -z "$value" || LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$value"
+          else
+                                    :
+          fi
+        else
+                              found_dir=
+          found_la=
+          found_so=
+          found_a=
+          eval libname=\"$acl_libname_spec\"    # typically: libname=lib$name
+          if test -n "$acl_shlibext"; then
+            shrext=".$acl_shlibext"             # typically: shrext=.so
+          else
+            shrext=
+          fi
+          if test $use_additional = yes; then
+            dir="$additional_libdir"
+                                    if test -n "$acl_shlibext"; then
+              if test -f "$dir/$libname$shrext"; then
+                found_dir="$dir"
+                found_so="$dir/$libname$shrext"
+              else
+                if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
+                  ver=`(cd "$dir" && \
+                        for f in "$libname$shrext".*; do echo "$f"; done \
+                        | sed -e "s,^$libname$shrext\\\\.,," \
+                        | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
+                        | sed 1q ) 2>/dev/null`
+                  if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
+                    found_dir="$dir"
+                    found_so="$dir/$libname$shrext.$ver"
+                  fi
+                else
+                  eval library_names=\"$acl_library_names_spec\"
+                  for f in $library_names; do
+                    if test -f "$dir/$f"; then
+                      found_dir="$dir"
+                      found_so="$dir/$f"
+                      break
+                    fi
+                  done
+                fi
+              fi
+            fi
+                        if test "X$found_dir" = "X"; then
+              if test -f "$dir/$libname.$acl_libext"; then
+                found_dir="$dir"
+                found_a="$dir/$libname.$acl_libext"
+              fi
+            fi
+            if test "X$found_dir" != "X"; then
+              if test -f "$dir/$libname.la"; then
+                found_la="$dir/$libname.la"
+              fi
+            fi
+          fi
+          if test "X$found_dir" = "X"; then
+            for x in $LDFLAGS $LTLIBICONV; do
 
-else
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
 
-            as_fn_error $? "
-Cannot find Glib2! If you are using binary packages based system, check that you
-have the corresponding -dev/devel packages installed.
-" "$LINENO" 5
+              case "$x" in
+                -L*)
+                  dir=`echo "X$x" | sed -e 's/^X-L//'`
+                                    if test -n "$acl_shlibext"; then
+                    if test -f "$dir/$libname$shrext"; then
+                      found_dir="$dir"
+                      found_so="$dir/$libname$shrext"
+                    else
+                      if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
+                        ver=`(cd "$dir" && \
+                              for f in "$libname$shrext".*; do echo "$f"; done \
+                              | sed -e "s,^$libname$shrext\\\\.,," \
+                              | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
+                              | sed 1q ) 2>/dev/null`
+                        if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
+                          found_dir="$dir"
+                          found_so="$dir/$libname$shrext.$ver"
+                        fi
+                      else
+                        eval library_names=\"$acl_library_names_spec\"
+                        for f in $library_names; do
+                          if test -f "$dir/$f"; then
+                            found_dir="$dir"
+                            found_so="$dir/$f"
+                            break
+                          fi
+                        done
+                      fi
+                    fi
+                  fi
+                                    if test "X$found_dir" = "X"; then
+                    if test -f "$dir/$libname.$acl_libext"; then
+                      found_dir="$dir"
+                      found_a="$dir/$libname.$acl_libext"
+                    fi
+                  fi
+                  if test "X$found_dir" != "X"; then
+                    if test -f "$dir/$libname.la"; then
+                      found_la="$dir/$libname.la"
+                    fi
+                  fi
+                  ;;
+              esac
+              if test "X$found_dir" != "X"; then
+                break
+              fi
+            done
+          fi
+          if test "X$found_dir" != "X"; then
+                        LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$found_dir -l$name"
+            if test "X$found_so" != "X"; then
+                                                        if test "$enable_rpath" = no \
+                 || test "X$found_dir" = "X/usr/$acl_libdirstem" \
+                 || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then
+                                LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
+              else
+                                                                                haveit=
+                for x in $ltrpathdirs; do
+                  if test "X$x" = "X$found_dir"; then
+                    haveit=yes
+                    break
+                  fi
+                done
+                if test -z "$haveit"; then
+                  ltrpathdirs="$ltrpathdirs $found_dir"
+                fi
+                                if test "$acl_hardcode_direct" = yes; then
+                                                      LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
+                else
+                  if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
+                                                            LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
+                                                            haveit=
+                    for x in $rpathdirs; do
+                      if test "X$x" = "X$found_dir"; then
+                        haveit=yes
+                        break
+                      fi
+                    done
+                    if test -z "$haveit"; then
+                      rpathdirs="$rpathdirs $found_dir"
+                    fi
+                  else
+                                                                                haveit=
+                    for x in $LDFLAGS $LIBICONV; do
 
-fi
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
 
-elif test $pkg_failed = untried; then
-     	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+                      if test "X$x" = "X-L$found_dir"; then
+                        haveit=yes
+                        break
+                      fi
+                    done
+                    if test -z "$haveit"; then
+                      LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir"
+                    fi
+                    if test "$acl_hardcode_minus_L" != no; then
+                                                                                        LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
+                    else
+                                                                                                                                                                                LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name"
+                    fi
+                  fi
+                fi
+              fi
+            else
+              if test "X$found_a" != "X"; then
+                                LIBICONV="${LIBICONV}${LIBICONV:+ }$found_a"
+              else
+                                                LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir -l$name"
+              fi
+            fi
+                        additional_includedir=
+            case "$found_dir" in
+              */$acl_libdirstem | */$acl_libdirstem/)
+                basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'`
+                if test "$name" = 'iconv'; then
+                  LIBICONV_PREFIX="$basedir"
+                fi
+                additional_includedir="$basedir/include"
+                ;;
+              */$acl_libdirstem2 | */$acl_libdirstem2/)
+                basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'`
+                if test "$name" = 'iconv'; then
+                  LIBICONV_PREFIX="$basedir"
+                fi
+                additional_includedir="$basedir/include"
+                ;;
+            esac
+            if test "X$additional_includedir" != "X"; then
+                                                                                                                if test "X$additional_includedir" != "X/usr/include"; then
+                haveit=
+                if test "X$additional_includedir" = "X/usr/local/include"; then
+                  if test -n "$GCC"; then
+                    case $host_os in
+                      linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+                    esac
+                  fi
+                fi
+                if test -z "$haveit"; then
+                  for x in $CPPFLAGS $INCICONV; do
 
-        if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "glib-2.0") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
 
-            cv_pkg_version=`$PKG_CONFIG --modversion "glib-2.0" 2>/dev/null`
-            as_fn_error $? "
-Glib2 version $cv_pkg_version was found, but glib-2.0 >= 2.12.0 is required.
-" "$LINENO" 5
+                    if test "X$x" = "X-I$additional_includedir"; then
+                      haveit=yes
+                      break
+                    fi
+                  done
+                  if test -z "$haveit"; then
+                    if test -d "$additional_includedir"; then
+                                            INCICONV="${INCICONV}${INCICONV:+ }-I$additional_includedir"
+                    fi
+                  fi
+                fi
+              fi
+            fi
+                        if test -n "$found_la"; then
+                                                        save_libdir="$libdir"
+              case "$found_la" in
+                */* | *\\*) . "$found_la" ;;
+                *) . "./$found_la" ;;
+              esac
+              libdir="$save_libdir"
+                            for dep in $dependency_libs; do
+                case "$dep" in
+                  -L*)
+                    additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
+                                                                                                                                                                if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \
+                       && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then
+                      haveit=
+                      if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \
+                         || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then
+                        if test -n "$GCC"; then
+                          case $host_os in
+                            linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+                          esac
+                        fi
+                      fi
+                      if test -z "$haveit"; then
+                        haveit=
+                        for x in $LDFLAGS $LIBICONV; do
 
-else
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
 
-            as_fn_error $? "
-Cannot find Glib2! If you are using binary packages based system, check that you
-have the corresponding -dev/devel packages installed.
-" "$LINENO" 5
+                          if test "X$x" = "X-L$additional_libdir"; then
+                            haveit=yes
+                            break
+                          fi
+                        done
+                        if test -z "$haveit"; then
+                          if test -d "$additional_libdir"; then
+                                                        LIBICONV="${LIBICONV}${LIBICONV:+ }-L$additional_libdir"
+                          fi
+                        fi
+                        haveit=
+                        for x in $LDFLAGS $LTLIBICONV; do
 
-fi
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
 
-else
-	GLIB_CFLAGS=$pkg_cv_GLIB_CFLAGS
-	GLIB_LIBS=$pkg_cv_GLIB_LIBS
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+                          if test "X$x" = "X-L$additional_libdir"; then
+                            haveit=yes
+                            break
+                          fi
+                        done
+                        if test -z "$haveit"; then
+                          if test -d "$additional_libdir"; then
+                                                        LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$additional_libdir"
+                          fi
+                        fi
+                      fi
+                    fi
+                    ;;
+                  -R*)
+                    dir=`echo "X$dep" | sed -e 's/^X-R//'`
+                    if test "$enable_rpath" != no; then
+                                                                  haveit=
+                      for x in $rpathdirs; do
+                        if test "X$x" = "X$dir"; then
+                          haveit=yes
+                          break
+                        fi
+                      done
+                      if test -z "$haveit"; then
+                        rpathdirs="$rpathdirs $dir"
+                      fi
+                                                                  haveit=
+                      for x in $ltrpathdirs; do
+                        if test "X$x" = "X$dir"; then
+                          haveit=yes
+                          break
+                        fi
+                      done
+                      if test -z "$haveit"; then
+                        ltrpathdirs="$ltrpathdirs $dir"
+                      fi
+                    fi
+                    ;;
+                  -l*)
+                                        names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
+                    ;;
+                  *.la)
+                                                                                names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
+                    ;;
+                  *)
+                                        LIBICONV="${LIBICONV}${LIBICONV:+ }$dep"
+                    LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$dep"
+                    ;;
+                esac
+              done
+            fi
+          else
+                                                            LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name"
+            LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-l$name"
+          fi
+        fi
+      fi
+    done
+  done
+  if test "X$rpathdirs" != "X"; then
+    if test -n "$acl_hardcode_libdir_separator"; then
+                        alldirs=
+      for found_dir in $rpathdirs; do
+        alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir"
+      done
+            acl_save_libdir="$libdir"
+      libdir="$alldirs"
+      eval flag=\"$acl_hardcode_libdir_flag_spec\"
+      libdir="$acl_save_libdir"
+      LIBICONV="${LIBICONV}${LIBICONV:+ }$flag"
+    else
+            for found_dir in $rpathdirs; do
+        acl_save_libdir="$libdir"
+        libdir="$found_dir"
+        eval flag=\"$acl_hardcode_libdir_flag_spec\"
+        libdir="$acl_save_libdir"
+        LIBICONV="${LIBICONV}${LIBICONV:+ }$flag"
+      done
+    fi
+  fi
+  if test "X$ltrpathdirs" != "X"; then
+            for found_dir in $ltrpathdirs; do
+      LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-R$found_dir"
+    done
+  fi
 
 
-   if test "x$PC_REQUIRES" = "x"; then
-       PC_REQUIRES="glib-2.0 >= 2.12.0"
-   else
-       PC_REQUIRES="$PC_REQUIRES, glib-2.0 >= 2.12.0"
-   fi
 
 
 
-fi
 
 
 
-pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTHREAD" >&5
-$as_echo_n "checking for GTHREAD... " >&6; }
 
-if test -n "$GTHREAD_CFLAGS"; then
-    pkg_cv_GTHREAD_CFLAGS="$GTHREAD_CFLAGS"
- elif test -n "$PKG_CONFIG"; then
-    if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gthread-2.0 >= 2.12.0\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "gthread-2.0 >= 2.12.0") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-  pkg_cv_GTHREAD_CFLAGS=`$PKG_CONFIG --cflags "gthread-2.0 >= 2.12.0" 2>/dev/null`
-else
-  pkg_failed=yes
-fi
- else
-    pkg_failed=untried
-fi
-if test -n "$GTHREAD_LIBS"; then
-    pkg_cv_GTHREAD_LIBS="$GTHREAD_LIBS"
- elif test -n "$PKG_CONFIG"; then
-    if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gthread-2.0 >= 2.12.0\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "gthread-2.0 >= 2.12.0") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-  pkg_cv_GTHREAD_LIBS=`$PKG_CONFIG --libs "gthread-2.0 >= 2.12.0" 2>/dev/null`
-else
-  pkg_failed=yes
-fi
- else
-    pkg_failed=untried
-fi
 
 
 
-if test $pkg_failed = yes; then
-   	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
 
-if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
-        _pkg_short_errors_supported=yes
-else
-        _pkg_short_errors_supported=no
-fi
-        if test $_pkg_short_errors_supported = yes; then
-	        GTHREAD_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gthread-2.0 >= 2.12.0" 2>&1`
-        else
-	        GTHREAD_PKG_ERRORS=`$PKG_CONFIG --print-errors "gthread-2.0 >= 2.12.0" 2>&1`
-        fi
-	# Put the nasty error message in config.log where it belongs
-	echo "$GTHREAD_PKG_ERRORS" >&5
 
 
-        if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gthread-2.0\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "gthread-2.0") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
 
-            cv_pkg_version=`$PKG_CONFIG --modversion "gthread-2.0" 2>/dev/null`
-            as_fn_error $? "
-gthread-2.0 version $cv_pkg_version was found, but gthread-2.0 >= 2.12.0 is required.
-" "$LINENO" 5
 
-else
 
-            as_fn_error $? "
-Cannot find gthread-2.0! If you are using binary packages based system, check that you
-have the corresponding -dev/devel packages installed.
-" "$LINENO" 5
 
-fi
 
-elif test $pkg_failed = untried; then
-     	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
 
-        if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gthread-2.0\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "gthread-2.0") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
 
-            cv_pkg_version=`$PKG_CONFIG --modversion "gthread-2.0" 2>/dev/null`
-            as_fn_error $? "
-gthread-2.0 version $cv_pkg_version was found, but gthread-2.0 >= 2.12.0 is required.
-" "$LINENO" 5
 
-else
 
-            as_fn_error $? "
-Cannot find gthread-2.0! If you are using binary packages based system, check that you
-have the corresponding -dev/devel packages installed.
-" "$LINENO" 5
 
-fi
 
-else
-	GTHREAD_CFLAGS=$pkg_cv_GTHREAD_CFLAGS
-	GTHREAD_LIBS=$pkg_cv_GTHREAD_LIBS
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
 
 
-   if test "x$PC_REQUIRES" = "x"; then
-       PC_REQUIRES="gthread-2.0 >= 2.12.0"
-   else
-       PC_REQUIRES="$PC_REQUIRES, gthread-2.0 >= 2.12.0"
-   fi
 
 
 
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFPreferencesCopyAppValue" >&5
+$as_echo_n "checking for CFPreferencesCopyAppValue... " >&6; }
+if ${gt_cv_func_CFPreferencesCopyAppValue+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  gt_save_LIBS="$LIBS"
+     LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
+     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <CoreFoundation/CFPreferences.h>
+int
+main ()
+{
+CFPreferencesCopyAppValue(NULL, NULL)
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  gt_cv_func_CFPreferencesCopyAppValue=yes
+else
+  gt_cv_func_CFPreferencesCopyAppValue=no
 fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+     LIBS="$gt_save_LIBS"
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5
+$as_echo "$gt_cv_func_CFPreferencesCopyAppValue" >&6; }
+  if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then
 
+$as_echo "#define HAVE_CFPREFERENCESCOPYAPPVALUE 1" >>confdefs.h
 
-if test $use_gtk3 = yes ; then
-
-
-pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK" >&5
-$as_echo_n "checking for GTK... " >&6; }
-
-if test -n "$GTK_CFLAGS"; then
-    pkg_cv_GTK_CFLAGS="$GTK_CFLAGS"
- elif test -n "$PKG_CONFIG"; then
-    if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-3.0 >= 3.0.0\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "gtk+-3.0 >= 3.0.0") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-  pkg_cv_GTK_CFLAGS=`$PKG_CONFIG --cflags "gtk+-3.0 >= 3.0.0" 2>/dev/null`
+  fi
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFLocaleCopyCurrent" >&5
+$as_echo_n "checking for CFLocaleCopyCurrent... " >&6; }
+if ${gt_cv_func_CFLocaleCopyCurrent+:} false; then :
+  $as_echo_n "(cached) " >&6
 else
-  pkg_failed=yes
-fi
- else
-    pkg_failed=untried
-fi
-if test -n "$GTK_LIBS"; then
-    pkg_cv_GTK_LIBS="$GTK_LIBS"
- elif test -n "$PKG_CONFIG"; then
-    if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-3.0 >= 3.0.0\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "gtk+-3.0 >= 3.0.0") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-  pkg_cv_GTK_LIBS=`$PKG_CONFIG --libs "gtk+-3.0 >= 3.0.0" 2>/dev/null`
+  gt_save_LIBS="$LIBS"
+     LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation"
+     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <CoreFoundation/CFLocale.h>
+int
+main ()
+{
+CFLocaleCopyCurrent();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  gt_cv_func_CFLocaleCopyCurrent=yes
 else
-  pkg_failed=yes
+  gt_cv_func_CFLocaleCopyCurrent=no
 fi
- else
-    pkg_failed=untried
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+     LIBS="$gt_save_LIBS"
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFLocaleCopyCurrent" >&5
+$as_echo "$gt_cv_func_CFLocaleCopyCurrent" >&6; }
+  if test $gt_cv_func_CFLocaleCopyCurrent = yes; then
 
+$as_echo "#define HAVE_CFLOCALECOPYCURRENT 1" >>confdefs.h
 
+  fi
+  INTL_MACOSX_LIBS=
+  if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then
+    INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation"
+  fi
 
-if test $pkg_failed = yes; then
-   	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
 
-if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
-        _pkg_short_errors_supported=yes
-else
-        _pkg_short_errors_supported=no
-fi
-        if test $_pkg_short_errors_supported = yes; then
-	        GTK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gtk+-3.0 >= 3.0.0" 2>&1`
-        else
-	        GTK_PKG_ERRORS=`$PKG_CONFIG --print-errors "gtk+-3.0 >= 3.0.0" 2>&1`
-        fi
-	# Put the nasty error message in config.log where it belongs
-	echo "$GTK_PKG_ERRORS" >&5
 
 
-        if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-3.0\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "gtk+-3.0") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
 
-            cv_pkg_version=`$PKG_CONFIG --modversion "gtk+-3.0" 2>/dev/null`
-            as_fn_error $? "
-Gtk+3 version $cv_pkg_version was found, but gtk+-3.0 >= 3.0.0 is required.
-" "$LINENO" 5
 
+  LIBINTL=
+  LTLIBINTL=
+  POSUB=
+
+    case " $gt_needs " in
+    *" need-formatstring-macros "*) gt_api_version=3 ;;
+    *" need-ngettext "*) gt_api_version=2 ;;
+    *) gt_api_version=1 ;;
+  esac
+  gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc"
+  gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl"
+
+    if test "$USE_NLS" = "yes"; then
+    gt_use_preinstalled_gnugettext=no
+
+
+        if test $gt_api_version -ge 3; then
+          gt_revision_test_code='
+#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
+#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
+#endif
+typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
+'
+        else
+          gt_revision_test_code=
+        fi
+        if test $gt_api_version -ge 2; then
+          gt_expression_test_code=' + * ngettext ("", "", 0)'
+        else
+          gt_expression_test_code=
+        fi
+
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libc" >&5
+$as_echo_n "checking for GNU gettext in libc... " >&6; }
+if eval \${$gt_func_gnugettext_libc+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <libintl.h>
+$gt_revision_test_code
+extern int _nl_msg_cat_cntr;
+extern int *_nl_domain_bindings;
+int
+main ()
+{
+bindtextdomain ("", "");
+return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  eval "$gt_func_gnugettext_libc=yes"
 else
-
-            as_fn_error $? "
-Cannot find Gtk+3! If you are using binary packages based system, check that you
-have the corresponding -dev/devel packages installed.
-" "$LINENO" 5
-
+  eval "$gt_func_gnugettext_libc=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 fi
+eval ac_res=\$$gt_func_gnugettext_libc
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
 
-elif test $pkg_failed = untried; then
-     	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+        if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then
 
-        if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-3.0\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "gtk+-3.0") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
 
-            cv_pkg_version=`$PKG_CONFIG --modversion "gtk+-3.0" 2>/dev/null`
-            as_fn_error $? "
-Gtk+3 version $cv_pkg_version was found, but gtk+-3.0 >= 3.0.0 is required.
-" "$LINENO" 5
 
-else
 
-            as_fn_error $? "
-Cannot find Gtk+3! If you are using binary packages based system, check that you
-have the corresponding -dev/devel packages installed.
-" "$LINENO" 5
 
-fi
+          am_save_CPPFLAGS="$CPPFLAGS"
 
-else
-	GTK_CFLAGS=$pkg_cv_GTK_CFLAGS
-	GTK_LIBS=$pkg_cv_GTK_LIBS
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+  for element in $INCICONV; do
+    haveit=
+    for x in $CPPFLAGS; do
 
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
 
-   if test "x$PC_REQUIRES" = "x"; then
-       PC_REQUIRES="gtk+-3.0 >= 3.0.0"
-   else
-       PC_REQUIRES="$PC_REQUIRES, gtk+-3.0 >= 3.0.0"
-   fi
+      if test "X$x" = "X$element"; then
+        haveit=yes
+        break
+      fi
+    done
+    if test -z "$haveit"; then
+      CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element"
+    fi
+  done
 
 
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5
+$as_echo_n "checking for iconv... " >&6; }
+if ${am_cv_func_iconv+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
 
+    am_cv_func_iconv="no, consider installing GNU libiconv"
+    am_cv_lib_iconv=no
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdlib.h>
+#include <iconv.h>
+int
+main ()
+{
+iconv_t cd = iconv_open("","");
+       iconv(cd,NULL,NULL,NULL,NULL);
+       iconv_close(cd);
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  am_cv_func_iconv=yes
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+    if test "$am_cv_func_iconv" != yes; then
+      am_save_LIBS="$LIBS"
+      LIBS="$LIBS $LIBICONV"
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <stdlib.h>
+#include <iconv.h>
+int
+main ()
+{
+iconv_t cd = iconv_open("","");
+         iconv(cd,NULL,NULL,NULL,NULL);
+         iconv_close(cd);
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  am_cv_lib_iconv=yes
+        am_cv_func_iconv=yes
 fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+      LIBS="$am_save_LIBS"
+    fi
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv" >&5
+$as_echo "$am_cv_func_iconv" >&6; }
+  if test "$am_cv_func_iconv" = yes; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working iconv" >&5
+$as_echo_n "checking for working iconv... " >&6; }
+if ${am_cv_func_iconv_works+:} false; then :
+  $as_echo_n "(cached) " >&6
 else
 
+            am_save_LIBS="$LIBS"
+      if test $am_cv_lib_iconv = yes; then
+        LIBS="$LIBS $LIBICONV"
+      fi
+      if test "$cross_compiling" = yes; then :
+  case "$host_os" in
+           aix* | hpux*) am_cv_func_iconv_works="guessing no" ;;
+           *)            am_cv_func_iconv_works="guessing yes" ;;
+         esac
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 
-pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK" >&5
-$as_echo_n "checking for GTK... " >&6; }
-
-if test -n "$GTK_CFLAGS"; then
-    pkg_cv_GTK_CFLAGS="$GTK_CFLAGS"
- elif test -n "$PKG_CONFIG"; then
-    if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= 2.8.0\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "gtk+-2.0 >= 2.8.0") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-  pkg_cv_GTK_CFLAGS=`$PKG_CONFIG --cflags "gtk+-2.0 >= 2.8.0" 2>/dev/null`
+#include <iconv.h>
+#include <string.h>
+int main ()
+{
+  /* Test against AIX 5.1 bug: Failures are not distinguishable from successful
+     returns.  */
+  {
+    iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8");
+    if (cd_utf8_to_88591 != (iconv_t)(-1))
+      {
+        static const char input[] = "\342\202\254"; /* EURO SIGN */
+        char buf[10];
+        const char *inptr = input;
+        size_t inbytesleft = strlen (input);
+        char *outptr = buf;
+        size_t outbytesleft = sizeof (buf);
+        size_t res = iconv (cd_utf8_to_88591,
+                            (char **) &inptr, &inbytesleft,
+                            &outptr, &outbytesleft);
+        if (res == 0)
+          return 1;
+      }
+  }
+  /* Test against Solaris 10 bug: Failures are not distinguishable from
+     successful returns.  */
+  {
+    iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646");
+    if (cd_ascii_to_88591 != (iconv_t)(-1))
+      {
+        static const char input[] = "\263";
+        char buf[10];
+        const char *inptr = input;
+        size_t inbytesleft = strlen (input);
+        char *outptr = buf;
+        size_t outbytesleft = sizeof (buf);
+        size_t res = iconv (cd_ascii_to_88591,
+                            (char **) &inptr, &inbytesleft,
+                            &outptr, &outbytesleft);
+        if (res == 0)
+          return 1;
+      }
+  }
+#if 0 /* This bug could be worked around by the caller.  */
+  /* Test against HP-UX 11.11 bug: Positive return value instead of 0.  */
+  {
+    iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591");
+    if (cd_88591_to_utf8 != (iconv_t)(-1))
+      {
+        static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337";
+        char buf[50];
+        const char *inptr = input;
+        size_t inbytesleft = strlen (input);
+        char *outptr = buf;
+        size_t outbytesleft = sizeof (buf);
+        size_t res = iconv (cd_88591_to_utf8,
+                            (char **) &inptr, &inbytesleft,
+                            &outptr, &outbytesleft);
+        if ((int)res > 0)
+          return 1;
+      }
+  }
+#endif
+  /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is
+     provided.  */
+  if (/* Try standardized names.  */
+      iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1)
+      /* Try IRIX, OSF/1 names.  */
+      && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1)
+      /* Try AIX names.  */
+      && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1)
+      /* Try HP-UX names.  */
+      && iconv_open ("utf8", "eucJP") == (iconv_t)(-1))
+    return 1;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  am_cv_func_iconv_works=yes
 else
-  pkg_failed=yes
-fi
- else
-    pkg_failed=untried
+  am_cv_func_iconv_works=no
 fi
-if test -n "$GTK_LIBS"; then
-    pkg_cv_GTK_LIBS="$GTK_LIBS"
- elif test -n "$PKG_CONFIG"; then
-    if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= 2.8.0\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "gtk+-2.0 >= 2.8.0") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-  pkg_cv_GTK_LIBS=`$PKG_CONFIG --libs "gtk+-2.0 >= 2.8.0" 2>/dev/null`
-else
-  pkg_failed=yes
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
- else
-    pkg_failed=untried
+
+      LIBS="$am_save_LIBS"
+
 fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv_works" >&5
+$as_echo "$am_cv_func_iconv_works" >&6; }
+    case "$am_cv_func_iconv_works" in
+      *no) am_func_iconv=no am_cv_lib_iconv=no ;;
+      *)   am_func_iconv=yes ;;
+    esac
+  else
+    am_func_iconv=no am_cv_lib_iconv=no
+  fi
+  if test "$am_func_iconv" = yes; then
+
+$as_echo "#define HAVE_ICONV 1" >>confdefs.h
+
+  fi
+  if test "$am_cv_lib_iconv" = yes; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libiconv" >&5
+$as_echo_n "checking how to link with libiconv... " >&6; }
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBICONV" >&5
+$as_echo "$LIBICONV" >&6; }
+  else
+            CPPFLAGS="$am_save_CPPFLAGS"
+    LIBICONV=
+    LTLIBICONV=
+  fi
 
 
 
-if test $pkg_failed = yes; then
-   	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
 
-if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
-        _pkg_short_errors_supported=yes
-else
-        _pkg_short_errors_supported=no
-fi
-        if test $_pkg_short_errors_supported = yes; then
-	        GTK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "gtk+-2.0 >= 2.8.0" 2>&1`
-        else
-	        GTK_PKG_ERRORS=`$PKG_CONFIG --print-errors "gtk+-2.0 >= 2.8.0" 2>&1`
-        fi
-	# Put the nasty error message in config.log where it belongs
-	echo "$GTK_PKG_ERRORS" >&5
 
 
-        if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "gtk+-2.0") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
 
-            cv_pkg_version=`$PKG_CONFIG --modversion "gtk+-2.0" 2>/dev/null`
-            as_fn_error $? "
-Gtk+2 version $cv_pkg_version was found, but gtk+-2.0 >= 2.8.0 is required.
-" "$LINENO" 5
 
-else
 
-            as_fn_error $? "
-Cannot find Gtk+2! If you are using binary packages based system, check that you
-have the corresponding -dev/devel packages installed.
-" "$LINENO" 5
 
-fi
 
-elif test $pkg_failed = untried; then
-     	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+    use_additional=yes
 
-        if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "gtk+-2.0") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
 
-            cv_pkg_version=`$PKG_CONFIG --modversion "gtk+-2.0" 2>/dev/null`
-            as_fn_error $? "
-Gtk+2 version $cv_pkg_version was found, but gtk+-2.0 >= 2.8.0 is required.
-" "$LINENO" 5
+    eval additional_includedir=\"$includedir\"
+    eval additional_libdir=\"$libdir\"
 
-else
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
 
-            as_fn_error $? "
-Cannot find Gtk+2! If you are using binary packages based system, check that you
-have the corresponding -dev/devel packages installed.
-" "$LINENO" 5
+
+# Check whether --with-libintl-prefix was given.
+if test "${with_libintl_prefix+set}" = set; then :
+  withval=$with_libintl_prefix;
+    if test "X$withval" = "Xno"; then
+      use_additional=no
+    else
+      if test "X$withval" = "X"; then
+
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+
+          eval additional_includedir=\"$includedir\"
+          eval additional_libdir=\"$libdir\"
+
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
+
+      else
+        additional_includedir="$withval/include"
+        additional_libdir="$withval/$acl_libdirstem"
+        if test "$acl_libdirstem2" != "$acl_libdirstem" \
+           && ! test -d "$withval/$acl_libdirstem"; then
+          additional_libdir="$withval/$acl_libdirstem2"
+        fi
+      fi
+    fi
 
 fi
 
-else
-	GTK_CFLAGS=$pkg_cv_GTK_CFLAGS
-	GTK_LIBS=$pkg_cv_GTK_LIBS
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+      LIBINTL=
+  LTLIBINTL=
+  INCINTL=
+  LIBINTL_PREFIX=
+      HAVE_LIBINTL=
+  rpathdirs=
+  ltrpathdirs=
+  names_already_handled=
+  names_next_round='intl '
+  while test -n "$names_next_round"; do
+    names_this_round="$names_next_round"
+    names_next_round=
+    for name in $names_this_round; do
+      already_handled=
+      for n in $names_already_handled; do
+        if test "$n" = "$name"; then
+          already_handled=yes
+          break
+        fi
+      done
+      if test -z "$already_handled"; then
+        names_already_handled="$names_already_handled $name"
+                        uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
+        eval value=\"\$HAVE_LIB$uppername\"
+        if test -n "$value"; then
+          if test "$value" = yes; then
+            eval value=\"\$LIB$uppername\"
+            test -z "$value" || LIBINTL="${LIBINTL}${LIBINTL:+ }$value"
+            eval value=\"\$LTLIB$uppername\"
+            test -z "$value" || LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$value"
+          else
+                                    :
+          fi
+        else
+                              found_dir=
+          found_la=
+          found_so=
+          found_a=
+          eval libname=\"$acl_libname_spec\"    # typically: libname=lib$name
+          if test -n "$acl_shlibext"; then
+            shrext=".$acl_shlibext"             # typically: shrext=.so
+          else
+            shrext=
+          fi
+          if test $use_additional = yes; then
+            dir="$additional_libdir"
+                                    if test -n "$acl_shlibext"; then
+              if test -f "$dir/$libname$shrext"; then
+                found_dir="$dir"
+                found_so="$dir/$libname$shrext"
+              else
+                if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
+                  ver=`(cd "$dir" && \
+                        for f in "$libname$shrext".*; do echo "$f"; done \
+                        | sed -e "s,^$libname$shrext\\\\.,," \
+                        | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
+                        | sed 1q ) 2>/dev/null`
+                  if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
+                    found_dir="$dir"
+                    found_so="$dir/$libname$shrext.$ver"
+                  fi
+                else
+                  eval library_names=\"$acl_library_names_spec\"
+                  for f in $library_names; do
+                    if test -f "$dir/$f"; then
+                      found_dir="$dir"
+                      found_so="$dir/$f"
+                      break
+                    fi
+                  done
+                fi
+              fi
+            fi
+                        if test "X$found_dir" = "X"; then
+              if test -f "$dir/$libname.$acl_libext"; then
+                found_dir="$dir"
+                found_a="$dir/$libname.$acl_libext"
+              fi
+            fi
+            if test "X$found_dir" != "X"; then
+              if test -f "$dir/$libname.la"; then
+                found_la="$dir/$libname.la"
+              fi
+            fi
+          fi
+          if test "X$found_dir" = "X"; then
+            for x in $LDFLAGS $LTLIBINTL; do
+
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
 
+              case "$x" in
+                -L*)
+                  dir=`echo "X$x" | sed -e 's/^X-L//'`
+                                    if test -n "$acl_shlibext"; then
+                    if test -f "$dir/$libname$shrext"; then
+                      found_dir="$dir"
+                      found_so="$dir/$libname$shrext"
+                    else
+                      if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
+                        ver=`(cd "$dir" && \
+                              for f in "$libname$shrext".*; do echo "$f"; done \
+                              | sed -e "s,^$libname$shrext\\\\.,," \
+                              | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
+                              | sed 1q ) 2>/dev/null`
+                        if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
+                          found_dir="$dir"
+                          found_so="$dir/$libname$shrext.$ver"
+                        fi
+                      else
+                        eval library_names=\"$acl_library_names_spec\"
+                        for f in $library_names; do
+                          if test -f "$dir/$f"; then
+                            found_dir="$dir"
+                            found_so="$dir/$f"
+                            break
+                          fi
+                        done
+                      fi
+                    fi
+                  fi
+                                    if test "X$found_dir" = "X"; then
+                    if test -f "$dir/$libname.$acl_libext"; then
+                      found_dir="$dir"
+                      found_a="$dir/$libname.$acl_libext"
+                    fi
+                  fi
+                  if test "X$found_dir" != "X"; then
+                    if test -f "$dir/$libname.la"; then
+                      found_la="$dir/$libname.la"
+                    fi
+                  fi
+                  ;;
+              esac
+              if test "X$found_dir" != "X"; then
+                break
+              fi
+            done
+          fi
+          if test "X$found_dir" != "X"; then
+                        LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$found_dir -l$name"
+            if test "X$found_so" != "X"; then
+                                                        if test "$enable_rpath" = no \
+                 || test "X$found_dir" = "X/usr/$acl_libdirstem" \
+                 || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then
+                                LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
+              else
+                                                                                haveit=
+                for x in $ltrpathdirs; do
+                  if test "X$x" = "X$found_dir"; then
+                    haveit=yes
+                    break
+                  fi
+                done
+                if test -z "$haveit"; then
+                  ltrpathdirs="$ltrpathdirs $found_dir"
+                fi
+                                if test "$acl_hardcode_direct" = yes; then
+                                                      LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
+                else
+                  if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then
+                                                            LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
+                                                            haveit=
+                    for x in $rpathdirs; do
+                      if test "X$x" = "X$found_dir"; then
+                        haveit=yes
+                        break
+                      fi
+                    done
+                    if test -z "$haveit"; then
+                      rpathdirs="$rpathdirs $found_dir"
+                    fi
+                  else
+                                                                                haveit=
+                    for x in $LDFLAGS $LIBINTL; do
 
-   if test "x$PC_REQUIRES" = "x"; then
-       PC_REQUIRES="gtk+-2.0 >= 2.8.0"
-   else
-       PC_REQUIRES="$PC_REQUIRES, gtk+-2.0 >= 2.8.0"
-   fi
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
 
+                      if test "X$x" = "X-L$found_dir"; then
+                        haveit=yes
+                        break
+                      fi
+                    done
+                    if test -z "$haveit"; then
+                      LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir"
+                    fi
+                    if test "$acl_hardcode_minus_L" != no; then
+                                                                                        LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
+                    else
+                                                                                                                                                                                LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name"
+                    fi
+                  fi
+                fi
+              fi
+            else
+              if test "X$found_a" != "X"; then
+                                LIBINTL="${LIBINTL}${LIBINTL:+ }$found_a"
+              else
+                                                LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir -l$name"
+              fi
+            fi
+                        additional_includedir=
+            case "$found_dir" in
+              */$acl_libdirstem | */$acl_libdirstem/)
+                basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'`
+                if test "$name" = 'intl'; then
+                  LIBINTL_PREFIX="$basedir"
+                fi
+                additional_includedir="$basedir/include"
+                ;;
+              */$acl_libdirstem2 | */$acl_libdirstem2/)
+                basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'`
+                if test "$name" = 'intl'; then
+                  LIBINTL_PREFIX="$basedir"
+                fi
+                additional_includedir="$basedir/include"
+                ;;
+            esac
+            if test "X$additional_includedir" != "X"; then
+                                                                                                                if test "X$additional_includedir" != "X/usr/include"; then
+                haveit=
+                if test "X$additional_includedir" = "X/usr/local/include"; then
+                  if test -n "$GCC"; then
+                    case $host_os in
+                      linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+                    esac
+                  fi
+                fi
+                if test -z "$haveit"; then
+                  for x in $CPPFLAGS $INCINTL; do
 
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
 
-fi
+                    if test "X$x" = "X-I$additional_includedir"; then
+                      haveit=yes
+                      break
+                    fi
+                  done
+                  if test -z "$haveit"; then
+                    if test -d "$additional_includedir"; then
+                                            INCINTL="${INCINTL}${INCINTL:+ }-I$additional_includedir"
+                    fi
+                  fi
+                fi
+              fi
+            fi
+                        if test -n "$found_la"; then
+                                                        save_libdir="$libdir"
+              case "$found_la" in
+                */* | *\\*) . "$found_la" ;;
+                *) . "./$found_la" ;;
+              esac
+              libdir="$save_libdir"
+                            for dep in $dependency_libs; do
+                case "$dep" in
+                  -L*)
+                    additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
+                                                                                                                                                                if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \
+                       && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then
+                      haveit=
+                      if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \
+                         || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then
+                        if test -n "$GCC"; then
+                          case $host_os in
+                            linux* | gnu* | k*bsd*-gnu) haveit=yes;;
+                          esac
+                        fi
+                      fi
+                      if test -z "$haveit"; then
+                        haveit=
+                        for x in $LDFLAGS $LIBINTL; do
 
-fi
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
 
+                          if test "X$x" = "X-L$additional_libdir"; then
+                            haveit=yes
+                            break
+                          fi
+                        done
+                        if test -z "$haveit"; then
+                          if test -d "$additional_libdir"; then
+                                                        LIBINTL="${LIBINTL}${LIBINTL:+ }-L$additional_libdir"
+                          fi
+                        fi
+                        haveit=
+                        for x in $LDFLAGS $LTLIBINTL; do
 
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
 
-pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PANGO" >&5
-$as_echo_n "checking for PANGO... " >&6; }
+                          if test "X$x" = "X-L$additional_libdir"; then
+                            haveit=yes
+                            break
+                          fi
+                        done
+                        if test -z "$haveit"; then
+                          if test -d "$additional_libdir"; then
+                                                        LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$additional_libdir"
+                          fi
+                        fi
+                      fi
+                    fi
+                    ;;
+                  -R*)
+                    dir=`echo "X$dep" | sed -e 's/^X-R//'`
+                    if test "$enable_rpath" != no; then
+                                                                  haveit=
+                      for x in $rpathdirs; do
+                        if test "X$x" = "X$dir"; then
+                          haveit=yes
+                          break
+                        fi
+                      done
+                      if test -z "$haveit"; then
+                        rpathdirs="$rpathdirs $dir"
+                      fi
+                                                                  haveit=
+                      for x in $ltrpathdirs; do
+                        if test "X$x" = "X$dir"; then
+                          haveit=yes
+                          break
+                        fi
+                      done
+                      if test -z "$haveit"; then
+                        ltrpathdirs="$ltrpathdirs $dir"
+                      fi
+                    fi
+                    ;;
+                  -l*)
+                                        names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
+                    ;;
+                  *.la)
+                                                                                names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
+                    ;;
+                  *)
+                                        LIBINTL="${LIBINTL}${LIBINTL:+ }$dep"
+                    LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$dep"
+                    ;;
+                esac
+              done
+            fi
+          else
+                                                            LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name"
+            LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-l$name"
+          fi
+        fi
+      fi
+    done
+  done
+  if test "X$rpathdirs" != "X"; then
+    if test -n "$acl_hardcode_libdir_separator"; then
+                        alldirs=
+      for found_dir in $rpathdirs; do
+        alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir"
+      done
+            acl_save_libdir="$libdir"
+      libdir="$alldirs"
+      eval flag=\"$acl_hardcode_libdir_flag_spec\"
+      libdir="$acl_save_libdir"
+      LIBINTL="${LIBINTL}${LIBINTL:+ }$flag"
+    else
+            for found_dir in $rpathdirs; do
+        acl_save_libdir="$libdir"
+        libdir="$found_dir"
+        eval flag=\"$acl_hardcode_libdir_flag_spec\"
+        libdir="$acl_save_libdir"
+        LIBINTL="${LIBINTL}${LIBINTL:+ }$flag"
+      done
+    fi
+  fi
+  if test "X$ltrpathdirs" != "X"; then
+            for found_dir in $ltrpathdirs; do
+      LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-R$found_dir"
+    done
+  fi
 
-if test -n "$PANGO_CFLAGS"; then
-    pkg_cv_PANGO_CFLAGS="$PANGO_CFLAGS"
- elif test -n "$PKG_CONFIG"; then
-    if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"pango >= 1.8.0\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "pango >= 1.8.0") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-  pkg_cv_PANGO_CFLAGS=`$PKG_CONFIG --cflags "pango >= 1.8.0" 2>/dev/null`
-else
-  pkg_failed=yes
-fi
- else
-    pkg_failed=untried
-fi
-if test -n "$PANGO_LIBS"; then
-    pkg_cv_PANGO_LIBS="$PANGO_LIBS"
- elif test -n "$PKG_CONFIG"; then
-    if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"pango >= 1.8.0\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "pango >= 1.8.0") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-  pkg_cv_PANGO_LIBS=`$PKG_CONFIG --libs "pango >= 1.8.0" 2>/dev/null`
-else
-  pkg_failed=yes
-fi
- else
-    pkg_failed=untried
-fi
 
 
 
-if test $pkg_failed = yes; then
-   	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
 
-if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
-        _pkg_short_errors_supported=yes
+
+          { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5
+$as_echo_n "checking for GNU gettext in libintl... " >&6; }
+if eval \${$gt_func_gnugettext_libintl+:} false; then :
+  $as_echo_n "(cached) " >&6
 else
-        _pkg_short_errors_supported=no
+  gt_save_CPPFLAGS="$CPPFLAGS"
+            CPPFLAGS="$CPPFLAGS $INCINTL"
+            gt_save_LIBS="$LIBS"
+            LIBS="$LIBS $LIBINTL"
+                        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <libintl.h>
+$gt_revision_test_code
+extern int _nl_msg_cat_cntr;
+extern
+#ifdef __cplusplus
+"C"
+#endif
+const char *_nl_expand_alias (const char *);
+int
+main ()
+{
+bindtextdomain ("", "");
+return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  eval "$gt_func_gnugettext_libintl=yes"
+else
+  eval "$gt_func_gnugettext_libintl=no"
 fi
-        if test $_pkg_short_errors_supported = yes; then
-	        PANGO_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "pango >= 1.8.0" 2>&1`
-        else
-	        PANGO_PKG_ERRORS=`$PKG_CONFIG --print-errors "pango >= 1.8.0" 2>&1`
-        fi
-	# Put the nasty error message in config.log where it belongs
-	echo "$PANGO_PKG_ERRORS" >&5
-
-
-        if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"pango\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "pango") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+                        if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then
+              LIBS="$LIBS $LIBICONV"
+              cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <libintl.h>
+$gt_revision_test_code
+extern int _nl_msg_cat_cntr;
+extern
+#ifdef __cplusplus
+"C"
+#endif
+const char *_nl_expand_alias (const char *);
+int
+main ()
+{
+bindtextdomain ("", "");
+return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  LIBINTL="$LIBINTL $LIBICONV"
+                LTLIBINTL="$LTLIBINTL $LTLIBICONV"
+                eval "$gt_func_gnugettext_libintl=yes"
 
-            cv_pkg_version=`$PKG_CONFIG --modversion "pango" 2>/dev/null`
-            as_fn_error $? "
-Pango version $cv_pkg_version was found, but pango >= 1.8.0 is required.
-" "$LINENO" 5
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+            fi
+            CPPFLAGS="$gt_save_CPPFLAGS"
+            LIBS="$gt_save_LIBS"
+fi
+eval ac_res=\$$gt_func_gnugettext_libintl
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+        fi
 
-else
+                                        if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \
+           || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \
+                && test "$PACKAGE" != gettext-runtime \
+                && test "$PACKAGE" != gettext-tools; }; then
+          gt_use_preinstalled_gnugettext=yes
+        else
+                    LIBINTL=
+          LTLIBINTL=
+          INCINTL=
+        fi
 
-            as_fn_error $? "
-Cannot find Pango! If you are using binary packages based system, check that you
-have the corresponding -dev/devel packages installed.
-" "$LINENO" 5
 
-fi
 
-elif test $pkg_failed = untried; then
-     	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
+    if test -n "$INTL_MACOSX_LIBS"; then
+      if test "$gt_use_preinstalled_gnugettext" = "yes" \
+         || test "$nls_cv_use_gnu_gettext" = "yes"; then
+                LIBINTL="$LIBINTL $INTL_MACOSX_LIBS"
+        LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS"
+      fi
+    fi
 
-        if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"pango\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "pango") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
+    if test "$gt_use_preinstalled_gnugettext" = "yes" \
+       || test "$nls_cv_use_gnu_gettext" = "yes"; then
 
-            cv_pkg_version=`$PKG_CONFIG --modversion "pango" 2>/dev/null`
-            as_fn_error $? "
-Pango version $cv_pkg_version was found, but pango >= 1.8.0 is required.
-" "$LINENO" 5
+$as_echo "#define ENABLE_NLS 1" >>confdefs.h
 
-else
+    else
+      USE_NLS=no
+    fi
+  fi
 
-            as_fn_error $? "
-Cannot find Pango! If you are using binary packages based system, check that you
-have the corresponding -dev/devel packages installed.
-" "$LINENO" 5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use NLS" >&5
+$as_echo_n "checking whether to use NLS... " >&6; }
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5
+$as_echo "$USE_NLS" >&6; }
+  if test "$USE_NLS" = "yes"; then
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking where the gettext function comes from" >&5
+$as_echo_n "checking where the gettext function comes from... " >&6; }
+    if test "$gt_use_preinstalled_gnugettext" = "yes"; then
+      if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then
+        gt_source="external libintl"
+      else
+        gt_source="libc"
+      fi
+    else
+      gt_source="included intl directory"
+    fi
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_source" >&5
+$as_echo "$gt_source" >&6; }
+  fi
 
-fi
+  if test "$USE_NLS" = "yes"; then
 
-else
-	PANGO_CFLAGS=$pkg_cv_PANGO_CFLAGS
-	PANGO_LIBS=$pkg_cv_PANGO_LIBS
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
+    if test "$gt_use_preinstalled_gnugettext" = "yes"; then
+      if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libintl" >&5
+$as_echo_n "checking how to link with libintl... " >&6; }
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBINTL" >&5
+$as_echo "$LIBINTL" >&6; }
 
+  for element in $INCINTL; do
+    haveit=
+    for x in $CPPFLAGS; do
 
-   if test "x$PC_REQUIRES" = "x"; then
-       PC_REQUIRES="pango >= 1.8.0"
-   else
-       PC_REQUIRES="$PC_REQUIRES, pango >= 1.8.0"
-   fi
+  acl_save_prefix="$prefix"
+  prefix="$acl_final_prefix"
+  acl_save_exec_prefix="$exec_prefix"
+  exec_prefix="$acl_final_exec_prefix"
+  eval x=\"$x\"
+  exec_prefix="$acl_save_exec_prefix"
+  prefix="$acl_save_prefix"
 
+      if test "X$x" = "X$element"; then
+        haveit=yes
+        break
+      fi
+    done
+    if test -z "$haveit"; then
+      CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element"
+    fi
+  done
 
+      fi
 
-fi
 
+$as_echo "#define HAVE_GETTEXT 1" >>confdefs.h
 
 
-pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CAIRO" >&5
-$as_echo_n "checking for CAIRO... " >&6; }
+$as_echo "#define HAVE_DCGETTEXT 1" >>confdefs.h
 
-if test -n "$CAIRO_CFLAGS"; then
-    pkg_cv_CAIRO_CFLAGS="$CAIRO_CFLAGS"
- elif test -n "$PKG_CONFIG"; then
-    if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cairo >= 1.2.4\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "cairo >= 1.2.4") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-  pkg_cv_CAIRO_CFLAGS=`$PKG_CONFIG --cflags "cairo >= 1.2.4" 2>/dev/null`
-else
-  pkg_failed=yes
-fi
- else
-    pkg_failed=untried
-fi
-if test -n "$CAIRO_LIBS"; then
-    pkg_cv_CAIRO_LIBS="$CAIRO_LIBS"
- elif test -n "$PKG_CONFIG"; then
-    if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cairo >= 1.2.4\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "cairo >= 1.2.4") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-  pkg_cv_CAIRO_LIBS=`$PKG_CONFIG --libs "cairo >= 1.2.4" 2>/dev/null`
-else
-  pkg_failed=yes
-fi
- else
-    pkg_failed=untried
-fi
+    fi
 
+        POSUB=po
+  fi
 
 
-if test $pkg_failed = yes; then
-   	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
 
-if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
-        _pkg_short_errors_supported=yes
-else
-        _pkg_short_errors_supported=no
-fi
-        if test $_pkg_short_errors_supported = yes; then
-	        CAIRO_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "cairo >= 1.2.4" 2>&1`
-        else
-	        CAIRO_PKG_ERRORS=`$PKG_CONFIG --print-errors "cairo >= 1.2.4" 2>&1`
-        fi
-	# Put the nasty error message in config.log where it belongs
-	echo "$CAIRO_PKG_ERRORS" >&5
+    INTLLIBS="$LIBINTL"
 
 
-        if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cairo\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "cairo") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
 
-            cv_pkg_version=`$PKG_CONFIG --modversion "cairo" 2>/dev/null`
-            as_fn_error $? "
-Cairo version $cv_pkg_version was found, but cairo >= 1.2.4 is required.
-" "$LINENO" 5
 
-else
 
-            as_fn_error $? "
-Cannot find Cairo! If you are using binary packages based system, check that you
-have the corresponding -dev/devel packages installed.
-" "$LINENO" 5
 
+if test "$MSGFMT" = ":" ; then
+    as_fn_error $? "msgfmt was not found; have you installed gettext?" "$LINENO" 5
 fi
 
-elif test $pkg_failed = untried; then
-     	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-
-        if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"cairo\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "cairo") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
 
-            cv_pkg_version=`$PKG_CONFIG --modversion "cairo" 2>/dev/null`
-            as_fn_error $? "
-Cairo version $cv_pkg_version was found, but cairo >= 1.2.4 is required.
-" "$LINENO" 5
+# Check whether --with-buildstamp was given.
+if test "${with_buildstamp+set}" = set; then :
+  withval=$with_buildstamp;
+cat >>confdefs.h <<_ACEOF
+#define BUILDSTAMP "$withval"
+_ACEOF
 
 else
 
-            as_fn_error $? "
-Cannot find Cairo! If you are using binary packages based system, check that you
-have the corresponding -dev/devel packages installed.
-" "$LINENO" 5
+cat >>confdefs.h <<_ACEOF
+#define BUILDSTAMP "unknown build"
+_ACEOF
 
 fi
 
-else
-	CAIRO_CFLAGS=$pkg_cv_CAIRO_CFLAGS
-	CAIRO_LIBS=$pkg_cv_CAIRO_LIBS
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
 
+# Check whether --enable-text-console was given.
+if test "${enable_text_console+set}" = set; then :
+  enableval=$enable_text_console; use_text_console=$withval
+else
+  use_text_console=no
 
-   if test "x$PC_REQUIRES" = "x"; then
-       PC_REQUIRES="cairo >= 1.2.4"
-   else
-       PC_REQUIRES="$PC_REQUIRES, cairo >= 1.2.4"
-   fi
+fi
 
 
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Microsoft Windows" >&5
+$as_echo_n "checking for Microsoft Windows... " >&6; }
+case "$target" in
+    *mingw*)
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
+        have_mswindows=yes
+        if test "x$use_text_console" = "xno"; then
+            LDFLAGS="$LDFLAGS -Wl,-subsystem,windows"
+        fi
+        ;;
+    *)
+        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+        have_mswindows=no
+        ;;
+esac
 
+if test "x${have_mswindows}" = "xyes" ; then
+    HAVE_MSWINDOWS="yes"
+else
+    HAVE_MSWINDOWS="no"
 fi
 
 
 
+# Check whether --enable-gtk3 was given.
+if test "${enable_gtk3+set}" = set; then :
+  enableval=$enable_gtk3; use_gtk3=$enableval
+else
+  use_gtk3=yes
+fi
+
 
+if test $use_gtk3 = yes ; then
 
 pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for MOWGLI" >&5
-$as_echo_n "checking for MOWGLI... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK" >&5
+$as_echo_n "checking for GTK... " >&6; }
 
-if test -n "$MOWGLI_CFLAGS"; then
-    pkg_cv_MOWGLI_CFLAGS="$MOWGLI_CFLAGS"
+if test -n "$GTK_CFLAGS"; then
+    pkg_cv_GTK_CFLAGS="$GTK_CFLAGS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libmowgli >= 0.9\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "libmowgli >= 0.9") 2>&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-3.0 >= 3.0.0\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "gtk+-3.0 >= 3.0.0") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
-  pkg_cv_MOWGLI_CFLAGS=`$PKG_CONFIG --cflags "libmowgli >= 0.9" 2>/dev/null`
+  pkg_cv_GTK_CFLAGS=`$PKG_CONFIG --cflags "gtk+-3.0 >= 3.0.0" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
  else
     pkg_failed=untried
 fi
-if test -n "$MOWGLI_LIBS"; then
-    pkg_cv_MOWGLI_LIBS="$MOWGLI_LIBS"
+if test -n "$GTK_LIBS"; then
+    pkg_cv_GTK_LIBS="$GTK_LIBS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libmowgli >= 0.9\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "libmowgli >= 0.9") 2>&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-3.0 >= 3.0.0\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "gtk+-3.0 >= 3.0.0") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
-  pkg_cv_MOWGLI_LIBS=`$PKG_CONFIG --libs "libmowgli >= 0.9" 2>/dev/null`
+  pkg_cv_GTK_LIBS=`$PKG_CONFIG --libs "gtk+-3.0 >= 3.0.0" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -8793,111 +8354,61 @@ else
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-	        MOWGLI_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libmowgli >= 0.9" 2>&1`
+	        GTK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gtk+-3.0 >= 3.0.0" 2>&1`
         else
-	        MOWGLI_PKG_ERRORS=`$PKG_CONFIG --print-errors "libmowgli >= 0.9" 2>&1`
+	        GTK_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gtk+-3.0 >= 3.0.0" 2>&1`
         fi
 	# Put the nasty error message in config.log where it belongs
-	echo "$MOWGLI_PKG_ERRORS" >&5
-
-
-        if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libmowgli\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "libmowgli") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-
-            cv_pkg_version=`$PKG_CONFIG --modversion "libmowgli" 2>/dev/null`
-            as_fn_error $? "
-libmowgli version $cv_pkg_version was found, but libmowgli >= 0.9 is required.
-http://www.atheme.org/projects/mowgli.shtml" "$LINENO" 5
-
-else
-
-            as_fn_error $? "
-Cannot find libmowgli! If you are using binary packages based system, check that you
-have the corresponding -dev/devel packages installed.
-http://www.atheme.org/projects/mowgli.shtml" "$LINENO" 5
-
-fi
+	echo "$GTK_PKG_ERRORS" >&5
 
+	use_gtk3=no
 elif test $pkg_failed = untried; then
      	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
-
-        if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libmowgli\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "libmowgli") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-
-            cv_pkg_version=`$PKG_CONFIG --modversion "libmowgli" 2>/dev/null`
-            as_fn_error $? "
-libmowgli version $cv_pkg_version was found, but libmowgli >= 0.9 is required.
-http://www.atheme.org/projects/mowgli.shtml" "$LINENO" 5
-
-else
-
-            as_fn_error $? "
-Cannot find libmowgli! If you are using binary packages based system, check that you
-have the corresponding -dev/devel packages installed.
-http://www.atheme.org/projects/mowgli.shtml" "$LINENO" 5
-
-fi
-
+	use_gtk3=no
 else
-	MOWGLI_CFLAGS=$pkg_cv_MOWGLI_CFLAGS
-	MOWGLI_LIBS=$pkg_cv_MOWGLI_LIBS
+	GTK_CFLAGS=$pkg_cv_GTK_CFLAGS
+	GTK_LIBS=$pkg_cv_GTK_LIBS
         { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
-
-
-   if test "x$PC_REQUIRES" = "x"; then
-       PC_REQUIRES="libmowgli >= 0.9"
-   else
-       PC_REQUIRES="$PC_REQUIRES, libmowgli >= 0.9"
-   fi
-
-
-
+	use_gtk3=yes
+fi
 fi
 
-
-
-
+if test $use_gtk3 = no ; then
 
 pkg_failed=no
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBMCS" >&5
-$as_echo_n "checking for LIBMCS... " >&6; }
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK" >&5
+$as_echo_n "checking for GTK... " >&6; }
 
-if test -n "$LIBMCS_CFLAGS"; then
-    pkg_cv_LIBMCS_CFLAGS="$LIBMCS_CFLAGS"
+if test -n "$GTK_CFLAGS"; then
+    pkg_cv_GTK_CFLAGS="$GTK_CFLAGS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libmcs >= 0.7\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "libmcs >= 0.7") 2>&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= 2.12.0\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "gtk+-2.0 >= 2.12.0") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
-  pkg_cv_LIBMCS_CFLAGS=`$PKG_CONFIG --cflags "libmcs >= 0.7" 2>/dev/null`
+  pkg_cv_GTK_CFLAGS=`$PKG_CONFIG --cflags "gtk+-2.0 >= 2.12.0" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
  else
     pkg_failed=untried
 fi
-if test -n "$LIBMCS_LIBS"; then
-    pkg_cv_LIBMCS_LIBS="$LIBMCS_LIBS"
+if test -n "$GTK_LIBS"; then
+    pkg_cv_GTK_LIBS="$GTK_LIBS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libmcs >= 0.7\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "libmcs >= 0.7") 2>&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= 2.12.0\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "gtk+-2.0 >= 2.12.0") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
-  pkg_cv_LIBMCS_LIBS=`$PKG_CONFIG --libs "libmcs >= 0.7" 2>/dev/null`
+  pkg_cv_GTK_LIBS=`$PKG_CONFIG --libs "gtk+-2.0 >= 2.12.0" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -8917,216 +8428,27 @@ else
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-	        LIBMCS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libmcs >= 0.7" 2>&1`
+	        GTK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "gtk+-2.0 >= 2.12.0" 2>&1`
         else
-	        LIBMCS_PKG_ERRORS=`$PKG_CONFIG --print-errors "libmcs >= 0.7" 2>&1`
+	        GTK_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "gtk+-2.0 >= 2.12.0" 2>&1`
         fi
 	# Put the nasty error message in config.log where it belongs
-	echo "$LIBMCS_PKG_ERRORS" >&5
-
-
-        if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libmcs\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "libmcs") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-
-            cv_pkg_version=`$PKG_CONFIG --modversion "libmcs" 2>/dev/null`
-            as_fn_error $? "
-libmcs version $cv_pkg_version was found, but libmcs >= 0.7 is required.
-http://www.atheme.org/projects/mcs.shtml" "$LINENO" 5
-
-else
-
-            as_fn_error $? "
-Cannot find libmcs! If you are using binary packages based system, check that you
-have the corresponding -dev/devel packages installed.
-http://www.atheme.org/projects/mcs.shtml" "$LINENO" 5
-
-fi
+	echo "$GTK_PKG_ERRORS" >&5
 
+	as_fn_error $? "Cannot find GTK headers.  Aborting ..." "$LINENO" 5
 elif test $pkg_failed = untried; then
      	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
-
-        if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libmcs\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "libmcs") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-
-            cv_pkg_version=`$PKG_CONFIG --modversion "libmcs" 2>/dev/null`
-            as_fn_error $? "
-libmcs version $cv_pkg_version was found, but libmcs >= 0.7 is required.
-http://www.atheme.org/projects/mcs.shtml" "$LINENO" 5
-
-else
-
-            as_fn_error $? "
-Cannot find libmcs! If you are using binary packages based system, check that you
-have the corresponding -dev/devel packages installed.
-http://www.atheme.org/projects/mcs.shtml" "$LINENO" 5
-
-fi
-
-else
-	LIBMCS_CFLAGS=$pkg_cv_LIBMCS_CFLAGS
-	LIBMCS_LIBS=$pkg_cv_LIBMCS_LIBS
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-
-
-   if test "x$PC_REQUIRES" = "x"; then
-       PC_REQUIRES="libmcs >= 0.7"
-   else
-       PC_REQUIRES="$PC_REQUIRES, libmcs >= 0.7"
-   fi
-
-
-
-fi
-
-
-
-    # Check whether --enable-sse2 was given.
-if test "${enable_sse2+set}" = set; then :
-  enableval=$enable_sse2;
-else
-  enable_sse2=yes
-fi
-
-    if test "x${enable_sse2}" = "xyes"; then
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking SSE2 support" >&5
-$as_echo_n "checking SSE2 support... " >&6; }
-    aud_my_save_CFLAGS="$CFLAGS"
-    CFLAGS="-msse2"
-    if test "$cross_compiling" = yes; then :
-  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot run test program while cross compiling
-See \`config.log' for more details" "$LINENO" 5; }
+	as_fn_error $? "Cannot find GTK headers.  Aborting ..." "$LINENO" 5
 else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <emmintrin.h>
-int main()
-{
-  _mm_setzero_pd();
-  asm volatile("xorpd %xmm0,%xmm0\n\t");
-  return 0;
-}
-
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-
+	GTK_CFLAGS=$pkg_cv_GTK_CFLAGS
+	GTK_LIBS=$pkg_cv_GTK_LIBS
         { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
-
-$as_echo "#define HAVE_SSE2 1" >>confdefs.h
-
-        SIMD_CFLAGS="-msse2"
-
-else
-
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-        enable_sse2="no"
-
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-
-    CFLAGS="$aud_my_save_CFLAGS"
-
-            fi
-
-
-    # Check whether --enable-altivec was given.
-if test "${enable_altivec+set}" = set; then :
-  enableval=$enable_altivec;
-else
-  enable_altivec=yes
-fi
-
-    if test "x${enable_altivec}" = "xyes"; then
-
-    for ac_header in altivec.h
-do :
-  ac_fn_c_check_header_mongrel "$LINENO" "altivec.h" "ac_cv_header_altivec_h" "$ac_includes_default"
-if test "x$ac_cv_header_altivec_h" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_ALTIVEC_H 1
-_ACEOF
-
-
-$as_echo "#define HAVE_ALTIVEC 1" >>confdefs.h
-
-
-$as_echo "#define HAVE_ALTIVEC_H 1" >>confdefs.h
-
-
-$as_echo "#define ARCH_POWERPC 1" >>confdefs.h
-
-        case $target in
-             *-apple-*)
-             SIMD_CFLAGS="-mpim-altivec"
-             ;;
-             *)
-             SIMD_CFLAGS="-maltivec"
-             ;;
-        esac
-
-
-else
-
-        enable_altivec="no"
-
-fi
-
-done
-
-
-            fi
-
-
-ac_fn_c_check_func "$LINENO" "getrlimit" "ac_cv_func_getrlimit"
-if test "x$ac_cv_func_getrlimit" = xyes; then :
-
+	use_gtk3=no
 fi
-
-
-
-
-
-for ac_header in unistd.h fcntl.h limits.h fts.h execinfo.h sys/errno.h regex.h rxposix.h rx/rxposix.h
-do :
-  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
 fi
 
-done
-
-for ac_func in sigwait
-do :
-  ac_fn_c_check_func "$LINENO" "sigwait" "ac_cv_func_sigwait"
-if test "x$ac_cv_func_sigwait" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_SIGWAIT 1
-_ACEOF
-
-fi
-done
 
 
 
@@ -9204,10 +8526,8 @@ fi
 
 
 if test "x$enable_rpath" = "xyes"; then
-    AUDLDFLAGS="-Wl,-rpath,${libdir}"
-fi
-
-
+    LDFLAGS="$LDFLAGS -Wl,-rpath,${libdir}"
+fi
 
 ### ---------------------------------------------------------------------------
     # Check whether --enable-chardet was given.
@@ -9228,12 +8548,13 @@ if test -n "$LIBGUESS_CFLAGS"; then
     pkg_cv_LIBGUESS_CFLAGS="$LIBGUESS_CFLAGS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libguess\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "libguess") 2>&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libguess >= 1.1\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "libguess >= 1.1") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
-  pkg_cv_LIBGUESS_CFLAGS=`$PKG_CONFIG --cflags "libguess" 2>/dev/null`
+  pkg_cv_LIBGUESS_CFLAGS=`$PKG_CONFIG --cflags "libguess >= 1.1" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -9244,12 +8565,13 @@ if test -n "$LIBGUESS_LIBS"; then
     pkg_cv_LIBGUESS_LIBS="$LIBGUESS_LIBS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libguess\""; } >&5
-  ($PKG_CONFIG --exists --print-errors "libguess") 2>&5
+    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libguess >= 1.1\""; } >&5
+  ($PKG_CONFIG --exists --print-errors "libguess >= 1.1") 2>&5
   ac_status=$?
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
-  pkg_cv_LIBGUESS_LIBS=`$PKG_CONFIG --libs "libguess" 2>/dev/null`
+  pkg_cv_LIBGUESS_LIBS=`$PKG_CONFIG --libs "libguess >= 1.1" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -9269,9 +8591,9 @@ else
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-	        LIBGUESS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libguess" 2>&1`
+	        LIBGUESS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libguess >= 1.1" 2>&1`
         else
-	        LIBGUESS_PKG_ERRORS=`$PKG_CONFIG --print-errors "libguess" 2>&1`
+	        LIBGUESS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libguess >= 1.1" 2>&1`
         fi
 	# Put the nasty error message in config.log where it belongs
 	echo "$LIBGUESS_PKG_ERRORS" >&5
@@ -9330,6 +8652,7 @@ if test -n "$DBUS_CFLAGS"; then
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_DBUS_CFLAGS=`$PKG_CONFIG --cflags "dbus-1 >= 0.60 dbus-glib-1 >= 0.60 gthread-2.0" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -9346,6 +8669,7 @@ if test -n "$DBUS_LIBS"; then
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_DBUS_LIBS=`$PKG_CONFIG --libs "dbus-1 >= 0.60 dbus-glib-1 >= 0.60 gthread-2.0" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -9365,9 +8689,9 @@ else
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-	        DBUS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "dbus-1 >= 0.60 dbus-glib-1 >= 0.60 gthread-2.0" 2>&1`
+	        DBUS_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "dbus-1 >= 0.60 dbus-glib-1 >= 0.60 gthread-2.0" 2>&1`
         else
-	        DBUS_PKG_ERRORS=`$PKG_CONFIG --print-errors "dbus-1 >= 0.60 dbus-glib-1 >= 0.60 gthread-2.0" 2>&1`
+	        DBUS_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "dbus-1 >= 0.60 dbus-glib-1 >= 0.60 gthread-2.0" 2>&1`
         fi
 	# Put the nasty error message in config.log where it belongs
 	echo "$DBUS_PKG_ERRORS" >&5
@@ -9471,29 +8795,9 @@ fi
         enable_dbus="no"
     else
 
-   if test "x$PC_REQUIRES" = "x"; then
-       PC_REQUIRES="dbus-1 >= 0.60"
-   else
-       PC_REQUIRES="$PC_REQUIRES, dbus-1 >= 0.60"
-   fi
-
-
-
-   if test "x$PC_REQUIRES" = "x"; then
-       PC_REQUIRES="dbus-glib-1 >= 0.60"
-   else
-       PC_REQUIRES="$PC_REQUIRES, dbus-glib-1 >= 0.60"
-   fi
-
-
-
 $as_echo "#define USE_DBUS 1" >>confdefs.h
 
-
-$as_echo "#define DBUS_SERVICES_DIR \"\$datadir/dbus-1/services\"" >>confdefs.h
-
-        LIBAUDCLIENT_LDFLAGS="$AUDLDFLAGS -laudclient"
-
+        LIBAUDCLIENT_LDFLAGS="-laudclient"
 
 
 
@@ -9544,6 +8848,7 @@ if test -n "$LIBPCRE_CFLAGS"; then
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_LIBPCRE_CFLAGS=`$PKG_CONFIG --cflags "libpcre >= 6.7" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -9560,6 +8865,7 @@ if test -n "$LIBPCRE_LIBS"; then
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_LIBPCRE_LIBS=`$PKG_CONFIG --libs "libpcre >= 6.7" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -9579,9 +8885,9 @@ else
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-	        LIBPCRE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "libpcre >= 6.7" 2>&1`
+	        LIBPCRE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libpcre >= 6.7" 2>&1`
         else
-	        LIBPCRE_PKG_ERRORS=`$PKG_CONFIG --print-errors "libpcre >= 6.7" 2>&1`
+	        LIBPCRE_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libpcre >= 6.7" 2>&1`
         fi
 	# Put the nasty error message in config.log where it belongs
 	echo "$LIBPCRE_PKG_ERRORS" >&5
@@ -9640,14 +8946,6 @@ else
 $as_echo "yes" >&6; }
 
 
-   if test "x$PC_REQUIRES" = "x"; then
-       PC_REQUIRES="libpcre >= 6.7"
-   else
-       PC_REQUIRES="$PC_REQUIRES, libpcre >= 6.7"
-   fi
-
-
-
 fi
 
 
@@ -10009,6 +9307,7 @@ if test -n "$SM_CFLAGS"; then
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_SM_CFLAGS=`$PKG_CONFIG --cflags "sm >= 1.0" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -10025,6 +9324,7 @@ if test -n "$SM_LIBS"; then
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_SM_LIBS=`$PKG_CONFIG --libs "sm >= 1.0" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -10044,9 +9344,9 @@ else
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-	        SM_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "sm >= 1.0" 2>&1`
+	        SM_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "sm >= 1.0" 2>&1`
         else
-	        SM_PKG_ERRORS=`$PKG_CONFIG --print-errors "sm >= 1.0" 2>&1`
+	        SM_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "sm >= 1.0" 2>&1`
         fi
 	# Put the nasty error message in config.log where it belongs
 	echo "$SM_PKG_ERRORS" >&5
@@ -10088,6 +9388,7 @@ if test -n "$ICE_CFLAGS"; then
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_ICE_CFLAGS=`$PKG_CONFIG --cflags "ice >= 1.0" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -10104,6 +9405,7 @@ if test -n "$ICE_LIBS"; then
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_ICE_LIBS=`$PKG_CONFIG --libs "ice >= 1.0" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -10123,9 +9425,9 @@ else
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-	        ICE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "ice >= 1.0" 2>&1`
+	        ICE_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "ice >= 1.0" 2>&1`
         else
-	        ICE_PKG_ERRORS=`$PKG_CONFIG --print-errors "ice >= 1.0" 2>&1`
+	        ICE_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "ice >= 1.0" 2>&1`
         fi
 	# Put the nasty error message in config.log where it belongs
 	echo "$ICE_PKG_ERRORS" >&5
@@ -10161,6 +9463,7 @@ if test -n "$GLIB214_CFLAGS"; then
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_GLIB214_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 >= 2.14" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -10177,6 +9480,7 @@ if test -n "$GLIB214_LIBS"; then
   $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }; then
   pkg_cv_GLIB214_LIBS=`$PKG_CONFIG --libs "glib-2.0 >= 2.14" 2>/dev/null`
+		      test "x$?" != "x0" && pkg_failed=yes
 else
   pkg_failed=yes
 fi
@@ -10196,9 +9500,9 @@ else
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-	        GLIB214_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "glib-2.0 >= 2.14" 2>&1`
+	        GLIB214_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "glib-2.0 >= 2.14" 2>&1`
         else
-	        GLIB214_PKG_ERRORS=`$PKG_CONFIG --print-errors "glib-2.0 >= 2.14" 2>&1`
+	        GLIB214_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "glib-2.0 >= 2.14" 2>&1`
         fi
 	# Put the nasty error message in config.log where it belongs
 	echo "$GLIB214_PKG_ERRORS" >&5
@@ -10233,96 +9537,6 @@ fi
 
 
 ### ---------------------------------------------------------------------------
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if __ELF__ is defined" >&5
-$as_echo_n "checking if __ELF__ is defined... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#ifdef __ELF__
-        yes
-     #endif
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "yes" >/dev/null 2>&1; then :
-  is_elf=yes
-else
-  is_elf=no
-
-fi
-rm -f conftest*
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $is_elf" >&5
-$as_echo "$is_elf" >&6; }
-
-have_solaris=no
-have_sun=no
-ARCH_DEFINES=""
-case $host in
-    *-*-openbsd* | *-*-netbsd* | *-*-mirbsd*)
-        have_sun=yes
-        if test "x${is_elf}" = "xno"; then
-
-$as_echo "#define SYMBOL_PREFIX \"_\"" >>confdefs.h
-
-        fi
-    ;;
-    *-*-darwin*)
-
-$as_echo "#define SYMBOL_PREFIX \"_\"" >>confdefs.h
-
-    ;;
-    *-hpux-*)
-        ARCH_DEFINES="-DHPUX"
-    ;;
-    *-*-solaris* | *-*-sunos*)
-        have_solaris=yes
-    ;;
-esac
-
-arch_type=other
-x86_asm=no
-case $host in
-    i386-*-* | i486-*-* | i586-*-* | i686-*-* | i86pc-*-*)
-        arch_type=ix86
-        case $host in
-            *-*-netbsd* | *-*openbsd*)
-            ;;
-            *)
-                ARCH_DEFINES="-DI386_ASSEM"
-                x86_asm=yes
-            ;;
-        esac
-    ;;
-esac
-
-
-
-if test "x${arch_type}" = "xix86" ; then
-    ARCH_X86="yes"
-else
-    ARCH_X86="no"
-fi
-
-if test "x${x86_asm}" = "xyes" ; then
-    USE_X86ASM="yes"
-else
-    USE_X86ASM="no"
-fi
-
-if test "x${have_solaris}" = "xyes" ; then
-    HAVE_SOLARIS="yes"
-else
-    HAVE_SOLARIS="no"
-fi
-
-if test "x${have_sun}" = "xyes" ; then
-    HAVE_SUN="yes"
-else
-    HAVE_SUN="no"
-fi
-
-
-### ---------------------------------------------------------------------------
 plugindir="$libdir/audacious"
 
 
@@ -10416,7 +9630,7 @@ AUDACIOUS_DEFINES="$AUDACIOUS_DEFINES -DHARDCODE_ICONFILE=\\\"${datadir}/pixmaps
 
 
 ### ---------------------------------------------------------------------------
-ac_config_files="$ac_config_files audacious.pc audclient.pc buildsys.mk extra.mk man/audtool.1 man/audacious.1"
+ac_config_files="$ac_config_files audacious.pc audclient.pc buildsys.mk extra.mk man/audtool.1 man/audacious.1 src/libaudcore/audio.h"
 
 
 
@@ -10954,7 +10168,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by audacious $as_me 2.5.0, which was
+This file was extended by audacious $as_me 3.2, which was
 generated by GNU Autoconf 2.68.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -11020,7 +10234,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-audacious config.status 2.5.0
+audacious config.status 3.2
 configured by $0, generated by GNU Autoconf 2.68,
   with options \\"\$ac_cs_config\\"
 
@@ -11138,6 +10352,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 #
 # INIT-COMMANDS
 #
+AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
 # Capture the value of obsolete ALL_LINGUAS because we need it to compute
     # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it
     # from automake < 1.5.
@@ -11145,7 +10360,6 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
     # Capture the value of LINGUAS because we need it to compute CATALOGS.
     LINGUAS="${LINGUAS-%UNSET%}"
 
-AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
 
 _ACEOF
 
@@ -11156,14 +10370,15 @@ for ac_config_target in $ac_config_targets
 do
   case $ac_config_target in
     "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
-    "po-directories") CONFIG_COMMANDS="$CONFIG_COMMANDS po-directories" ;;
     "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
+    "po-directories") CONFIG_COMMANDS="$CONFIG_COMMANDS po-directories" ;;
     "audacious.pc") CONFIG_FILES="$CONFIG_FILES audacious.pc" ;;
     "audclient.pc") CONFIG_FILES="$CONFIG_FILES audclient.pc" ;;
     "buildsys.mk") CONFIG_FILES="$CONFIG_FILES buildsys.mk" ;;
     "extra.mk") CONFIG_FILES="$CONFIG_FILES extra.mk" ;;
     "man/audtool.1") CONFIG_FILES="$CONFIG_FILES man/audtool.1" ;;
     "man/audacious.1") CONFIG_FILES="$CONFIG_FILES man/audacious.1" ;;
+    "src/libaudcore/audio.h") CONFIG_FILES="$CONFIG_FILES src/libaudcore/audio.h" ;;
 
   *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
   esac
@@ -11725,6 +10940,101 @@ $as_echo "$as_me: executing $ac_file commands" >&6;}
 
 
   case $ac_file$ac_mode in
+    "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
+  # Autoconf 2.62 quotes --file arguments for eval, but not when files
+  # are listed without --file.  Let's play safe and only enable the eval
+  # if we detect the quoting.
+  case $CONFIG_FILES in
+  *\'*) eval set x "$CONFIG_FILES" ;;
+  *)   set x $CONFIG_FILES ;;
+  esac
+  shift
+  for mf
+  do
+    # Strip MF so we end up with the name of the file.
+    mf=`echo "$mf" | sed -e 's/:.*$//'`
+    # Check whether this is an Automake generated Makefile or not.
+    # We used to match only the files named `Makefile.in', but
+    # some people rename them; so instead we look at the file content.
+    # Grep'ing the first line is not enough: some people post-process
+    # each Makefile.in and add a new line on top of each file to say so.
+    # Grep'ing the whole file is not good either: AIX grep has a line
+    # limit of 2048, but all sed's we know have understand at least 4000.
+    if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
+      dirpart=`$as_dirname -- "$mf" ||
+$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$mf" : 'X\(//\)[^/]' \| \
+	 X"$mf" : 'X\(//\)$' \| \
+	 X"$mf" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$mf" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+    else
+      continue
+    fi
+    # Extract the definition of DEPDIR, am__include, and am__quote
+    # from the Makefile without running `make'.
+    DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+    test -z "$DEPDIR" && continue
+    am__include=`sed -n 's/^am__include = //p' < "$mf"`
+    test -z "am__include" && continue
+    am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
+    # When using ansi2knr, U may be empty or an underscore; expand it
+    U=`sed -n 's/^U = //p' < "$mf"`
+    # Find all dependency output files, they are included files with
+    # $(DEPDIR) in their names.  We invoke sed twice because it is the
+    # simplest approach to changing $(DEPDIR) to its actual value in the
+    # expansion.
+    for file in `sed -n "
+      s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+	 sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+      # Make sure the directory exists.
+      test -f "$dirpart/$file" && continue
+      fdir=`$as_dirname -- "$file" ||
+$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$file" : 'X\(//\)[^/]' \| \
+	 X"$file" : 'X\(//\)$' \| \
+	 X"$file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$file" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+      as_dir=$dirpart/$fdir; as_fn_mkdir_p
+      # echo "creating $dirpart/$file"
+      echo '# dummy' > "$dirpart/$file"
+    done
+  done
+}
+ ;;
     "po-directories":C)
     for ac_file in $CONFIG_FILES; do
       # Support "outfile[:infile[:infile...]]"
@@ -11838,101 +11148,6 @@ $as_echo "$as_me: executing $ac_file commands" >&6;}
         ;;
       esac
     done ;;
-    "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
-  # Autoconf 2.62 quotes --file arguments for eval, but not when files
-  # are listed without --file.  Let's play safe and only enable the eval
-  # if we detect the quoting.
-  case $CONFIG_FILES in
-  *\'*) eval set x "$CONFIG_FILES" ;;
-  *)   set x $CONFIG_FILES ;;
-  esac
-  shift
-  for mf
-  do
-    # Strip MF so we end up with the name of the file.
-    mf=`echo "$mf" | sed -e 's/:.*$//'`
-    # Check whether this is an Automake generated Makefile or not.
-    # We used to match only the files named `Makefile.in', but
-    # some people rename them; so instead we look at the file content.
-    # Grep'ing the first line is not enough: some people post-process
-    # each Makefile.in and add a new line on top of each file to say so.
-    # Grep'ing the whole file is not good either: AIX grep has a line
-    # limit of 2048, but all sed's we know have understand at least 4000.
-    if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
-      dirpart=`$as_dirname -- "$mf" ||
-$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$mf" : 'X\(//\)[^/]' \| \
-	 X"$mf" : 'X\(//\)$' \| \
-	 X"$mf" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$mf" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-    else
-      continue
-    fi
-    # Extract the definition of DEPDIR, am__include, and am__quote
-    # from the Makefile without running `make'.
-    DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
-    test -z "$DEPDIR" && continue
-    am__include=`sed -n 's/^am__include = //p' < "$mf"`
-    test -z "am__include" && continue
-    am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
-    # When using ansi2knr, U may be empty or an underscore; expand it
-    U=`sed -n 's/^U = //p' < "$mf"`
-    # Find all dependency output files, they are included files with
-    # $(DEPDIR) in their names.  We invoke sed twice because it is the
-    # simplest approach to changing $(DEPDIR) to its actual value in the
-    # expansion.
-    for file in `sed -n "
-      s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
-	 sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
-      # Make sure the directory exists.
-      test -f "$dirpart/$file" && continue
-      fdir=`$as_dirname -- "$file" ||
-$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$file" : 'X\(//\)[^/]' \| \
-	 X"$file" : 'X\(//\)$' \| \
-	 X"$file" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$file" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-      as_dir=$dirpart/$fdir; as_fn_mkdir_p
-      # echo "creating $dirpart/$file"
-      echo '# dummy' > "$dirpart/$file"
-    done
-  done
-}
- ;;
 
   esac
 done # for ac_tag
@@ -11988,9 +11203,6 @@ echo "  Automatic character code detection:     $enable_chardet"
 echo "  D-Bus support:                          $enable_dbus"
 echo "  Session management (eggsm)              $enable_sm"
 echo ""
-echo "  SSE2:                                   $enable_sse2"
-echo "  AltiVec:                                $enable_altivec"
-echo ""
 
 if test "x$AUDACIOUS_PATH" != "xno" && test "x$prefix/bin/audacious" != "x$AUDACIOUS_PATH"; then
     audlocation=`dirname $AUDACIOUS_PATH`
diff --git a/configure.ac b/configure.ac
old mode 100755
new mode 100644
index 851d662..a72d966
--- a/configure.ac
+++ b/configure.ac
@@ -2,49 +2,70 @@ dnl ***
 dnl *** Process this file with autoconf to produce a configure script.
 dnl ***
 
-dnl Require autoconf 2.59 or later
-AC_PREREQ([2.59])
-
 dnl Initialize
-AC_INIT([audacious], [2.5.0])
-AC_COPYRIGHT([(C) 2005-2011 Audacious Team])
-AC_CANONICAL_HOST
-AC_CANONICAL_TARGET
-AC_GNU_SOURCE
-
-AC_CONFIG_HEADERS([config.h])
-PKG_PROG_PKG_CONFIG
-
-dnl buildsystem bootstrap
-dnl =====================
-dnl XXX kludge for FreeBSD
-if test -d "/usr/X11R6/include"; then
-    CPPFLAGS="$CPPFLAGS -I/usr/X11R6/include"
-fi
+dnl ==========
+AC_PREREQ([2.59])
+AC_INIT([audacious], [3.2])
+AC_COPYRIGHT([(C) 2005-2012 Audacious Team])
 
 AC_SUBST([PACKAGE], [AC_PACKAGE_TARNAME])
 AC_SUBST([VERSION], [AC_PACKAGE_VERSION])
 AC_DEFINE_UNQUOTED([PACKAGE], "$PACKAGE", [Name of package])
 AC_DEFINE_UNQUOTED([VERSION], "$VERSION", [Version number of package])
 
+AC_CANONICAL_HOST
+AC_CANONICAL_TARGET
+AC_CONFIG_HEADERS([config.h])
+
+AUD_COMMON_PROGS
+
 BUILDSYS_INIT
-BUILDSYS_PROG_IMPLIB
 BUILDSYS_SHARED_LIB
-IMPLIB_LIBS=""
-AC_SUBST([IMPLIB_LIBS])
 
+dnl Byte order
+dnl ==========
+AC_C_BIGENDIAN([BIGENDIAN=1], [BIGENDIAN=0],
+ [AC_MSG_ERROR([Unknown machine byte order])],
+ [AC_MSG_ERROR([Universal builds are not supported, sorry])])
+AC_SUBST([BIGENDIAN])
+
+dnl Headers and functions
+dnl ===============================
+AC_CHECK_HEADERS([execinfo.h regex.h rxposix.h rx/rxposix.h])
+AC_CHECK_FUNCS([sigwait backtrace])
+
+AC_MSG_CHECKING([for cexpf])
+OLD_LIBS="$LIBS"
+LIBS="$LIBS -lm"
+AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <complex.h>
+                                 #include <stdio.h>],
+                                [printf ("%f", crealf (cexpf (1)))])],
+               [AC_MSG_RESULT(yes)
+                AC_DEFINE([HAVE_CEXPF], [1], [Define if cexpf is present])],
+               [AC_MSG_RESULT(no)])
+LIBS="$OLD_LIBS"
+
+AC_MSG_CHECKING([for /proc/self/exe])
+if test -e "/proc/self/exe" ; then
+    AC_MSG_RESULT(yes)
+    AC_DEFINE([HAVE_PROC_SELF_EXE], [1], [Define if the /proc/self/exe symlink is supported])
+else
+    AC_MSG_RESULT(no)
+fi
+
+dnl gettext
+dnl =======
+AM_GNU_GETTEXT([external])
+if test "$MSGFMT" = ":" ; then
+    AC_MSG_ERROR([msgfmt was not found; have you installed gettext?])
+fi
 
 dnl Build stamp
 dnl ===========
 AC_ARG_WITH([buildstamp],
  AS_HELP_STRING([--with-buildstamp=XXX], [Set build stamp to XXX]),
  AC_DEFINE_UNQUOTED([BUILDSTAMP], "$withval", [Build stamp]),
- AC_DEFINE_UNQUOTED([BUILDSTAMP], "UNSUPPORTED VERSION", [Build stamp]))
-
-
-dnl Large file support
-dnl ==================
-CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=64"
+ AC_DEFINE_UNQUOTED([BUILDSTAMP], "unknown build", [Build stamp]))
 
 dnl Activation of text console (MS-Windows ONLY)
 dnl ============================================
@@ -54,54 +75,41 @@ AC_ARG_ENABLE([text-console],
 [use_text_console=no]
 )
 
-dnl Plugin stuff
-dnl ========================
-SHARED_SUFFIX="$PLUGIN_SUFFIX"
-AC_SUBST([SHARED_SUFFIX])
-AC_DEFINE_UNQUOTED([SHARED_SUFFIX], "${SHARED_SUFFIX}",
-    [Define the shared module suffix extension on your platform.])
-
-AC_MSG_CHECKING([for Windows or Macintosh])
+AC_MSG_CHECKING([for Microsoft Windows])
 case "$target" in
     *mingw*)
-        AC_MSG_RESULT([Windows])
+        AC_MSG_RESULT([yes])
+        have_mswindows=yes
         if test "x$use_text_console" = "xno"; then
             LDFLAGS="$LDFLAGS -Wl,-subsystem,windows"
         fi
         ;;
-    *apple*)
-        AC_MSG_RESULT([Macintosh])
-        LDFLAGS="$LDFLAGS -framework CoreFoundation -framework CoreServices -framework Carbon"
-        ;;
     *)
         AC_MSG_RESULT([no])
+        have_mswindows=no
         ;;
 esac
 
-dnl GNU gettext
-dnl ===========
-AM_GNU_GETTEXT([external])
-
-if test "$MSGFMT" = ":" ; then
-    AC_MSG_ERROR([msgfmt was not found!  You may need to install gettext.])
-fi
+AUD_CONDITIONAL([HAVE_MSWINDOWS], [have_mswindows])
 
-
-dnl Checks common for core and plugins
-dnl ==================================
+dnl Check for GTK+
+dnl ==============
 
 AC_ARG_ENABLE([gtk3],
- [AS_HELP_STRING([--enable-gtk3], [Use GTK3 instead of GTK2])],
- [use_gtk3=yes], [use_gtk3=no])
-
-AUD_COMMON_PROGS
+ [AS_HELP_STRING([--disable-gtk3], [Use GTK2 even if GTK3 is present])],
+ [use_gtk3=$enableval], [use_gtk3=yes])
 
+if test $use_gtk3 = yes ; then
+    PKG_CHECK_MODULES([GTK], [gtk+-3.0 >= 3.0.0], [use_gtk3=yes], [use_gtk3=no])
+fi
 
-dnl Check for headers and functions
-dnl ===============================
-AC_CHECK_HEADERS([unistd.h fcntl.h limits.h fts.h execinfo.h sys/errno.h regex.h rxposix.h rx/rxposix.h])
-AC_CHECK_FUNCS([sigwait])
+if test $use_gtk3 = no ; then
+    PKG_CHECK_MODULES([GTK], [gtk+-2.0 >= 2.12.0], [use_gtk3=no],
+     AC_MSG_ERROR([Cannot find GTK headers.  Aborting ...]))
+fi
 
+AC_SUBST([GTK_LIBS])
+AC_SUBST([GTK_CFLAGS])
 
 ### ---------------------------------------------------------------------------
 dnl Path settings
@@ -118,18 +126,16 @@ fi
 AUD_ARG_ENABLE([rpath], [yes], [disable rpath])
 
 if test "x$enable_rpath" = "xyes"; then
-    AUDLDFLAGS="-Wl,-rpath,${libdir}"
+    LDFLAGS="$LDFLAGS -Wl,-rpath,${libdir}"
 fi
 
-AC_SUBST([AUDLDFLAGS])
-
 ### ---------------------------------------------------------------------------
 dnl Chardet support
 dnl ===============
 AUD_ARG_ENABLE([chardet], [yes],
 [charset detection support],
 [
-    PKG_CHECK_MODULES([LIBGUESS], [libguess], [enable_chardet=yes], [enable_chardet=no])
+    PKG_CHECK_MODULES([LIBGUESS], [libguess >= 1.1], [enable_chardet=yes], [enable_chardet=no])
 
     if test "x$enable_chardet" = "xyes"; then
         AC_DEFINE([USE_CHARDET], 1, [Define if character set detection enabled])
@@ -153,15 +159,10 @@ AUD_ARG_ENABLE([dbus], [yes],
     if test "x$DBUS_BINDING_TOOL" = "xno" || test "x$GLIB_GENMARSHAL" = "xno" || test "x$enable_dbus" = "xno" ; then
         enable_dbus="no"
     else
-        ADD_PC_REQUIRES([dbus-1 >= 0.60])
-        ADD_PC_REQUIRES([dbus-glib-1 >= 0.60])
         AC_DEFINE([USE_DBUS], 1, [Define if D-Bus support enabled])
-        AC_DEFINE([DBUS_SERVICES_DIR], "$datadir/dbus-1/services",
-            [Location of D-Bus services directory])
-        LIBAUDCLIENT_LDFLAGS="$AUDLDFLAGS -laudclient"
+        LIBAUDCLIENT_LDFLAGS="-laudclient"
         AC_SUBST([DBUS_CFLAGS])
         AC_SUBST([DBUS_LIBS])
-        AC_SUBST([DBUS_SERVICES_DIR])
         AC_SUBST([DBUS_BINDING_TOOL])
         AC_SUBST([LIBAUDCLIENT_LDFLAGS])
     fi
@@ -268,65 +269,6 @@ AUD_ARG_ENABLE([sm], [yes],
 AUD_CONDITIONAL([USE_EGGSM], [enable_sm])
 
 ### ---------------------------------------------------------------------------
-dnl Ugly system checks
-dnl ==================
-AC_MSG_CHECKING([if __ELF__ is defined])
-AC_EGREP_CPP([yes],
-    [#ifdef __ELF__
-        yes
-     #endif
-    ],
-    [is_elf=yes],
-    [is_elf=no]
-)
-AC_MSG_RESULT([$is_elf])
-
-have_solaris=no
-have_sun=no
-ARCH_DEFINES=""
-case $host in
-    *-*-openbsd* | *-*-netbsd* | *-*-mirbsd*)
-        have_sun=yes
-        if test "x${is_elf}" = "xno"; then
-            AC_DEFINE([SYMBOL_PREFIX], "_", [Define to symbol prefix, if any])
-        fi
-    ;;
-    *-*-darwin*)
-        AC_DEFINE([SYMBOL_PREFIX], "_", [Define to symbol prefix, if any])
-    ;;
-    *-hpux-*)
-        ARCH_DEFINES="-DHPUX"
-    ;;
-    *-*-solaris* | *-*-sunos*)
-        have_solaris=yes
-    ;;
-esac
-
-arch_type=other
-x86_asm=no
-case $host in
-    i386-*-* | i486-*-* | i586-*-* | i686-*-* | i86pc-*-*)
-        arch_type=ix86
-        case $host in
-            *-*-netbsd* | *-*openbsd*)
-            ;;
-            *)
-                ARCH_DEFINES="-DI386_ASSEM"
-                x86_asm=yes
-            ;;
-        esac
-    ;;
-esac
-
-AC_SUBST([ARCH_DEFINES])
-
-dnl XXX delete ASAP -nenolod
-AUD_CONDITIONAL([ARCH_X86], [arch_type], [ix86])
-AUD_CONDITIONAL([USE_X86ASM], [x86_asm])
-AUD_CONDITIONAL([HAVE_SOLARIS], [have_solaris])
-AUD_CONDITIONAL([HAVE_SUN], [have_sun])
-
-### ---------------------------------------------------------------------------
 dnl Define plugin directories
 dnl =========================
 plugindir="$libdir/audacious"
@@ -376,6 +318,7 @@ AC_CONFIG_FILES([
     extra.mk
     man/audtool.1
     man/audacious.1
+    src/libaudcore/audio.h
 ])
 
 BUILDSYS_TOUCH_DEPS
@@ -399,9 +342,6 @@ echo "  Automatic character code detection:     $enable_chardet"
 echo "  D-Bus support:                          $enable_dbus"
 echo "  Session management (eggsm)              $enable_sm"
 echo ""
-echo "  SSE2:                                   $enable_sse2"
-echo "  AltiVec:                                $enable_altivec"
-echo ""
 
 if test "x$AUDACIOUS_PATH" != "xno" && test "x$prefix/bin/audacious" != "x$AUDACIOUS_PATH"; then
     audlocation=`dirname $AUDACIOUS_PATH`
diff --git a/contrib/migrate_config.sh b/contrib/migrate_config.sh
deleted file mode 100644
index 4def7a1..0000000
--- a/contrib/migrate_config.sh
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/sh
-#
-# This script is used to convert the old $HOME/.audacious config dir
-# to the new XDG basedir equivalent.
-#
-
-: ${BMP_RCPATH:=".audacious"}
-: ${XDG_CONFIG_HOME:="$HOME/.config"}
-: ${XDG_DATA_HOME:="$HOME/.local/share"}
-: ${XDG_CACHE_HOME:="$HOME/.cache"}
-
-rm -fr "$XDG_CONFIG_HOME/audacious"
-rm -fr "$XDG_DATA_HOME/audacious"
-rm -fr "$XDG_CACHE_HOME/audacious"
-
-mkdir -p "$XDG_CONFIG_HOME/audacious"
-mkdir -p "$XDG_DATA_HOME/audacious/Plugins"
-mkdir -p "$XDG_DATA_HOME/audacious/Skins"
-mkdir -p "$XDG_CACHE_HOME/audacious/thumbs"
-
-mv "$HOME/$BMP_RCPATH/config"        "$XDG_CONFIG_HOME/audacious/"
-mv "$HOME/$BMP_RCPATH/playlist.xspf" "$XDG_CONFIG_HOME/audacious/"
-mv "$HOME/$BMP_RCPATH/Plugins"       "$XDG_DATA_HOME/audacious/"
-mv "$HOME/$BMP_RCPATH/Skins"         "$XDG_DATA_HOME/audacious/"
-mv "$HOME/$BMP_RCPATH/accels"        "$XDG_CONFIG_HOME/audacious/"
-mv "$HOME/$BMP_RCPATH/log"           "$XDG_CONFIG_HOME/audacious/"
-
-echo "Conversion done. Please move the remaining files manually."
diff --git a/contrib/win32/audacious.ico b/contrib/win32/audacious.ico
old mode 100755
new mode 100644
diff --git a/contrib/win32/notes.rtf b/contrib/win32/notes.rtf
old mode 100755
new mode 100644
index c12a318..0a1b7a9
--- a/contrib/win32/notes.rtf
+++ b/contrib/win32/notes.rtf
@@ -2,7 +2,7 @@
 {\b Notes for Building Audacious on Windows}
 \par
 \par {John Lindgren}
-\par {April 5, 2011}
+\par {December 29, 2011}
 \par
 \par {This is not intended to be a complete set of instructions, but merely an outline.  Use at your own risk, etc., etc.}
 \par
@@ -11,7 +11,7 @@
 \par {\ul Install MinGW}
 \par
 \par {Download and run:}
-\par {\fs20 https://sourceforge.net/projects/mingw/files/Automated%20MinGW%20Installer/mingw-get-inst/mingw-get-inst-20110316/mingw-get-inst-20110316.exe/download}
+\par {\fs20 http://sourceforge.net/projects/mingw/files/Automated%20MinGW%20Installer/mingw-get-inst/mingw-get-inst-20110802/mingw-get-inst-20110802.exe/download}
 \par
 \par {When prompted, use these options:}
 \par {\fs20 Use pre-packaged repository catalogues}
@@ -24,65 +24,55 @@
 \par {\ul Install GTK+}
 \par
 \par {Download and unzip to }{\fs20 C:\\GTK}{:}
-\par {\fs20 http://ftp.gnome.org/pub/gnome/binaries/win32/gtk+/2.16/gtk+-bundle_2.16.5-20090731_win32.zip}
+\par {\fs20 http://ftp.gnome.org/pub/gnome/binaries/win32/gtk+/2.24/gtk+-bundle_2.24.8-20111122_win32.zip}
 \par
-\par {This is the last version to support Windows 2000.  If you only care about XP or later, you can use a newer version.}
-\par
-\par {Copy }{\fs20 C:\\GTK\\share\\themes\\MS-Windows\\gtk-2.0\\gtkrc}{ to }{\fs20 C:\\GTK\\etc\\gtk-2.0}{.  Apply the patch }{\fs20 gtkrc.diff}{.}
 \par {Copy }{\fs20 C:\\GTK\\share\\aclocal\\pkg.m4}{ to }{\fs20 C:\\MinGW\\share\\aclocal}{.}
+\par {Apply the patch }{\fs20 gtkrc.diff}{ to }{\fs20 C:\\GTK\\share\\themes\\MS-Windows\\gtk-2.0\\gtkrc}{.}
 \par
 \par {\ul Install SDL}
 \par
-\par {Download and unzip to }{\fs20 C:\\SDL}{:}
-\par {\fs20 http://www.libsdl.org/release/SDL-1.2.14-win32.zip}
+\par {Download and unzip to }{\fs20 C:\\libs}{:}
 \par {\fs20 http://www.libsdl.org/release/SDL-devel-1.2.14-mingw32.tar.gz}
 \par
-\par {Apply the patch }{\fs20 sdl-config.diff}{ to }{\fs20 C:\\SDL\\bin\\sdl-config}{.}
-\par {Copy }{\fs20 C:\\SDL\\share\\aclocal\\sdl.m4}{ to }{\fs20 C:\\MinGW\\share\\aclocal}{.}
+\par {Apply the patch }{\fs20 sdl-config.diff}{ to }{\fs20 C:\\libs\\bin\\sdl-config}{.}
+\par {Copy }{\fs20 C:\\libs\\share\\aclocal\\sdl.m4}{ to }{\fs20 C:\\MinGW\\share\\aclocal}{.}
 \par
 \par {\ul Set up system paths}
 \par
 \par {Under }{\fs20 My Computer -> Properties -> Advanced -> Environment Variables}{, set:}
-\par {\fs20 PATH=C:\\MinGW\\bin;C:\\MinGW\\msys\\1.0\\bin;C:\\GTK\\bin;C:\\SDL\\bin;C:\\aud\\bin}
-\par {\fs20 PKG_CONFIG_PATH=/C/GTK/lib/pkgconfig:/C/aud/lib/pkgconfig}
-\par {\fs20 C_INCLUDE_PATH=/C/GTK/include:/C/aud/include}
-\par {\fs20 CPLUS_INCLUDE_PATH=/C/GTK/include:/C/aud/include}
-\par {\fs20 LIBRARY_PATH=/C/GTK/lib:/C/aud/lib}
+\par {\fs20 PATH=C:\\MinGW\\bin;C:\\MinGW\\msys\\1.0\\bin;C:\\GTK\\bin;C:\\libs\\bin;C:\\aud\\bin}
+\par {\fs20 PKG_CONFIG_PATH=/C/GTK/lib/pkgconfig:/C/libs/lib/pkgconfig:/C/aud/lib/pkgconfig}
+\par {\fs20 C_INCLUDE_PATH=/C/GTK/include:/C/libs/include}
+\par {\fs20 CPLUS_INCLUDE_PATH=/C/GTK/include:/C/libs/include}
+\par {\fs20 LIBRARY_PATH=/C/GTK/lib:/C/libs/lib}
 \par
 \par {\ul Install libxml}
 \par
-\par {Download and unzip to C:\\aud:}
-\par {\fs20 http://sourceforge.net/projects/mingw/files/MSYS/libxml2/libxml2-2.7.6-1/libxml2-2.7.6-1-msys-1.0.13-dev.tar.lzma/download}
-\par {\fs20 http://sourceforge.net/projects/mingw/files/MSYS/libxml2/libxml2-2.7.6-1/libxml2-2.7.6-1-msys-1.0.13-dll-2.tar.lzma/download}
-\par
-\par {Apply the patch }{\fs20 xml2-config.diff}{ to }{\fs20 C:\\aud\\bin\\xml2-config}{.}
-\par
-\par {\ul Install regex}
-\par
-\par {Download and unzip to }{\fs20 C:\\aud}{:}
-\par {\fs20 http://sourceforge.net/projects/mingw/files/UserContributed/regex/mingw-regex-2.5.1/mingw-libgnurx-2.5.1-dev.tar.gz/download}
-\par {\fs20 http://sourceforge.net/projects/mingw/files/UserContributed/regex/mingw-regex-2.5.1/mingw-libgnurx-2.5.1-bin.tar.gz/download}
-\par
-\par {\ul Install libmowgli}
+\par {Download and unzip to }{\fs20 C:\\libxml}{:}
+\par {\fs20 ftp://xmlsoft.org/libxml2/libxml2-2.7.8.tar.gz}
 \par
-\par {Download and unzip to }{\fs20 C:\\libmowgli}{:}
-\par {\fs20 http://distfiles.atheme.org/libmowgli-0.9.50.tar.bz2}
+\par {Apply the patch }{\fs20 libxml-testThreads.c.diff}{ to }{\fs20 C:\\libxml\\testThreads.c}{.}
 \par
 \par {In the MinGW shell:}
-\par {\fs20 cd /C/libmowgli}
-\par {\fs20 ./configure --prefix=/C/aud}
+\par {\fs20 cd /C/libxml}
+\par {\fs20 ./configure --prefix=/C/libs}
 \par {\fs20 make}
 \par {\fs20 make install}
 \par
-\par {\ul Install libmcs}
+\par {\ul Install regex}
+\par
+\par {Download and unzip to }{\fs20 C:\\libs}{:}
+\par {\fs20 http://sourceforge.net/projects/mingw/files/Other/UserContributed/regex/mingw-regex-2.5.1/mingw-libgnurx-2.5.1-dev.tar.gz/download}
+\par {\fs20 http://sourceforge.net/projects/mingw/files/Other/UserContributed/regex/mingw-regex-2.5.1/mingw-libgnurx-2.5.1-bin.tar.gz/download}
+\par
+\par {\ul Install mpg123}
 \par
-\par {Download and unzip to }{\fs20 C:\\libmcs}{:}
-\par {\fs20 http://hg.atheme.org/libmcs/libmcs/archive/tip.tar.bz2}
+\par {Download and unzip to }{\fs20 C:\\mpg123}{:}
+\par {\fs20 http://mpg123.de/download/mpg123-1.13.4.tar.bz2}
 \par
 \par {In the MinGW shell:}
-\par {\fs20 cd /C/libmcs}
-\par {\fs20 ./autogen.sh}
-\par {\fs20 ./configure --prefix=/C/aud}
+\par {\fs20 cd /C/mpg123}
+\par {\fs20 ./configure --prefix=/C/libs}
 \par {\fs20 make}
 \par {\fs20 make install}
 \par
@@ -95,18 +85,18 @@
 \par
 \par {In the MinGW shell:}
 \par {\fs20 cd /C/libfaad}
-\par {\fs20 ./configure --prefix=/C/aud}
+\par {\fs20 ./configure --prefix=/C/libs}
 \par {\fs20 make}
 \par {\fs20 make install}
 \par
 \par {\ul Install libsndfile}
 \par
 \par {Download and unzip to }{\fs20 C:\\libsndfile}{:}
-\par {\fs20 http://www.mega-nerd.com/libsndfile/files/libsndfile-1.0.24.tar.gz}
+\par {\fs20 http://www.mega-nerd.com/libsndfile/files/libsndfile-1.0.25.tar.gz}
 \par
 \par {In the MinGW shell:}
 \par {\fs20 cd /C/libsndfile}
-\par {\fs20 ./configure --prefix=/C/aud}
+\par {\fs20 ./configure --prefix=/C/libs}
 \par {\fs20 make}
 \par {\fs20 make install}
 \par
@@ -117,21 +107,20 @@
 \par
 \par {In the MinGW shell:}
 \par {\fs20 cd /C/libbs2b}
-\par {\fs20 ./configure --prefix=/C/aud}
+\par {\fs20 ./configure --prefix=/C/libs}
 \par {\fs20 make}
 \par {\fs20 make install}
 \par
 \par {\ul Install libcdio}
 \par
 \par {Download and unzip to }{\fs20 C:\\libcdio}{:}
-\par {\fs20 http://ftp.gnu.org/gnu/libcdio/libcdio-0.82.tar.bz2}
+\par {\fs20 http://ftp.gnu.org/gnu/libcdio/libcdio-0.83.tar.bz2}
 \par
-\par {Apply the patch }{\fs20 iso9660.c.diff}{ to }{\fs20 C:\\libcdio\\lib\\iso9660\\iso9660.c}{.}
 \par {Apply the patch }{\fs20 libcdio-util.c.diff}{ to }{\fs20 C:\\libcdio\\src\\util.c}{.}
 \par
 \par {In the MinGW shell:}
 \par {\fs20 cd /C/libcdio}
-\par {\fs20 ./configure --prefix=/C/aud --disable-rock}
+\par {\fs20 ./configure --prefix=/C/libs --disable-rock}
 \par {\fs20 make}
 \par {\fs20 make install}
 \par
@@ -142,7 +131,7 @@
 \par
 \par {In the MinGW shell:}
 \par {\fs20 cd /C/libcddb}
-\par {\fs20 ./configure --prefix=/C/aud}
+\par {\fs20 ./configure --prefix=/C/libs}
 \par {\fs20 make}
 \par {\fs20 make install}
 \par
@@ -153,18 +142,18 @@
 \par
 \par {In the MinGW shell:}
 \par {\fs20 cd /C/libcue}
-\par {\fs20 ./configure --prefix=/C/aud}
+\par {\fs20 ./configure --prefix=/C/libs}
 \par {\fs20 make}
 \par {\fs20 make install}
 \par
 \par {\ul Install LAME}
 \par
 \par {Download and unzip to }{\fs20 C:\\lame}{:}
-\par {\fs20 https://sourceforge.net/projects/lame/files/lame/3.98.4/lame-3.98.4.tar.gz/download}
+\par {\fs20 http://sourceforge.net/projects/lame/files/lame/3.99/lame-3.99.3.tar.gz/download}
 \par
 \par {In the MinGW shell:}
 \par {\fs20 cd /C/lame}
-\par {\fs20 ./configure --prefix=/C/aud}
+\par {\fs20 ./configure --prefix=/C/libs}
 \par {\fs20 make}
 \par {\fs20 make install}
 \par
@@ -178,20 +167,20 @@
 \par
 \par {In the MinGW shell:}
 \par {\fs20 cd /C/libflac}
-\par {\fs20 ./configure --prefix=/C/aud}
+\par {\fs20 ./configure --prefix=/C/libs}
 \par {\fs20 make}
 \par {\fs20 make install}
 \par
-\par {Apply the patch }{\fs20 flac.pc.diff}{ to }{\fs20 C:\\aud\\lib\\pkgconfig\\flac.pc}{.}
+\par {Apply the patch }{\fs20 flac.pc.diff}{ to }{\fs20 C:\\libs\\lib\\pkgconfig\\flac.pc}{.}
 \par
 \par {\ul Install libogg}
 \par
 \par {Download and unzip to }{\fs20 C:\\libogg}{:}
-\par {\fs20 http://downloads.xiph.org/releases/ogg/libogg-1.2.2.tar.gz}
+\par {\fs20 http://downloads.xiph.org/releases/ogg/libogg-1.3.0.tar.gz}
 \par
 \par {In the MinGW shell:}
 \par {\fs20 cd /C/libogg}
-\par {\fs20 ./configure --prefix=/C/aud}
+\par {\fs20 ./configure --prefix=/C/libs}
 \par {\fs20 make}
 \par {\fs20 make install}
 \par
@@ -202,31 +191,31 @@
 \par
 \par {In the MinGW shell:}
 \par {\fs20 cd /C/libvorbis}
-\par {\fs20 ./configure --prefix=/C/aud}
+\par {\fs20 ./configure --prefix=/C/libs}
 \par {\fs20 make}
 \par {\fs20 make install}
 \par
 \par {\ul Install libneon}
 \par
 \par {Download and unzip to }{\fs20 C:\\libneon}{:}
-\par {\fs20 http://www.webdav.org/neon/neon-0.29.5.tar.gz}
+\par {\fs20 http://www.webdav.org/neon/neon-0.29.6.tar.gz}
 \par
 \par {In the MinGW shell:}
 \par {\fs20 cd /C/libneon}
-\par {\fs20 ./configure --prefix=/C/aud}
+\par {\fs20 ./configure --prefix=/C/libs}
 \par {\fs20 make}
 \par {\fs20 make install}
 \par
-\par {Apply the patch }{\fs20 neon.pc.diff}{ to }{\fs20 C:\\aud\\lib\\pkgconfig\\neon.pc}{.}
+\par {Apply the patch }{\fs20 neon.pc.diff}{ to }{\fs20 C:\\libs\\lib\\pkgconfig\\neon.pc}{.}
 \par
 \par {\ul Install libsamplerate}
 \par
 \par {Download and unzip to }{\fs20 C:\\libsamplerate}{:}
-\par {\fs20 http://www.mega-nerd.com/SRC/libsamplerate-0.1.7.tar.gz}
+\par {\fs20 http://www.mega-nerd.com/SRC/libsamplerate-0.1.8.tar.gz}
 \par
 \par {In the MinGW shell:}
 \par {\fs20 cd /C/libsamplerate}
-\par {\fs20 ./configure --prefix=/C/aud}
+\par {\fs20 ./configure --prefix=/C/libs}
 \par {\fs20 make}
 \par {\fs20 make install}
 \par
@@ -239,18 +228,28 @@
 \par
 \par {In the MinGW shell:}
 \par {\fs20 cd /C/libwavpack}
-\par {\fs20 ./configure --prefix=/C/aud}
+\par {\fs20 ./configure --prefix=/C/libs}
+\par {\fs20 make}
+\par {\fs20 make install}
+\par
+\par {\ul Install FFmpeg}
+\par
+\par {Download and unzip to }{\fs20 C:\\ffmpeg}{:}
+\par {\fs20 http://ffmpeg.org/releases/ffmpeg-0.9.tar.bz2}
+\par
+\par {In the MinGW shell:}
+\par {\fs20 cd /C/ffmpeg}
+\par {\fs20 ./configure --prefix=/C/libs --disable-yasm}
 \par {\fs20 make}
 \par {\fs20 make install}
 \par
 \par {\ul Install Audacious}
 \par
 \par {Download and unzip to }{\fs20 C:\\audacious}{:}
-\par {\fs20 http://hg.atheme.org/audacious/audacious/archive/tip.tar.bz2}
+\par {\fs20 http://distfiles.audacious-media-player.org/audacious-3.2.tar.bz2}
 \par
 \par {In the MinGW shell:}
 \par {\fs20 cd /C/audacious}
-\par {\fs20 ./autogen.sh}
 \par {\fs20 ./configure --prefix=/C/aud}
 \par {\fs20 make}
 \par {\fs20 make install}
@@ -258,17 +257,11 @@
 \par {\ul Install Audacious plugins}
 \par
 \par {Download and unzip to }{\fs20 C:\\audacious-plugins}{:}
-\par {\fs20 http://hg.atheme.org/audacious-plugins/audacious-plugins/archive/tip.tar.bz2}
+\par {\fs20 http://distfiles.audacious-media-player.org/audacious-plugins-3.2.tar.bz2}
 \par
 \par {In the MinGW shell:}
 \par {\fs20 cd /C/audacious-plugins}
-\par {\fs20 ./autogen.sh}
 \par {\fs20 ./configure --prefix=/C/aud}
 \par {\fs20 make}
 \par {\fs20 make install}
-\par
-\par {\ul Tweaks}
-\par
-\par {Use GIMP to create an .ico file, and embed it in audacious.exe using this software:}
-\par {\fs20 http://www.wilsonc.demon.co.uk/d10resourceeditor.htm}
 }
diff --git a/contrib/win32/patches/iso9660.c.diff b/contrib/win32/patches/iso9660.c.diff
deleted file mode 100644
index 2187e12..0000000
--- a/contrib/win32/patches/iso9660.c.diff
+++ /dev/null
@@ -1,16 +0,0 @@
---- iso9660.c.0	2011-04-01 20:17:36 -0500
-+++ iso9660.c	2011-04-01 20:16:43 -0500
-@@ -811,9 +811,12 @@
- {
-   mode_t mode = 0;
- 
-+#ifdef HAVE_ROCK
-   if (yep == p_iso_dirent->rr.b3_rock) {
-     return iso9660_get_posix_filemode_from_rock(&p_iso_dirent->rr);
--  } else if (p_iso_dirent->b_xa) {
-+  } else 
-+#endif
-+  if (p_iso_dirent->b_xa) {
-     return iso9660_get_posix_filemode_from_xa(p_iso_dirent->xa.attributes);
-   }
-   return mode;
diff --git a/contrib/win32/patches/libxml-testThreads.c.diff b/contrib/win32/patches/libxml-testThreads.c.diff
new file mode 100644
index 0000000..c8177fe
--- /dev/null
+++ b/contrib/win32/patches/libxml-testThreads.c.diff
@@ -0,0 +1,10 @@
+--- testThreads.c.0	2010-10-12 02:25:32 -0400
++++ testThreads.c	2011-12-28 18:36:34 -0500
+@@ -107,7 +107,6 @@
+ 
+ 	for (i = 0; i < num_threads; i++) {
+ 	    results[i] = NULL;
+-	    tid[i] = (pthread_t) -1;
+ 	}
+ 
+ 	for (i = 0; i < num_threads; i++) {
diff --git a/contrib/win32/patches/neon.pc.diff b/contrib/win32/patches/neon.pc.diff
old mode 100755
new mode 100644
index 2b7e98f..b1a7cc0
--- a/contrib/win32/patches/neon.pc.diff
+++ b/contrib/win32/patches/neon.pc.diff
@@ -1,9 +1,9 @@
---- neon.pc.0	2011-04-02 11:39:12 -0500
-+++ neon.pc	2011-04-02 11:45:23 -0500
+--- neon.pc.orig	2011-11-07 22:09:55 -0500
++++ neon.pc	2011-11-07 22:11:38 -0500
 @@ -7,5 +7,5 @@
  Description: HTTP/WebDAV client library
- Version: 0.29.5
- Libs.private: -lintl -lws2_32 -lws2_32  -lz -L/C/aud/lib -lxml2 -lz -liconv -lm
--Libs: -L${libdir} -lneon
+ Version: 0.29.6
+ Libs.private: -lintl -lws2_32 -lws2_32  -lz -lexpat
+-Libs: -L${libdir} -lneon 
 +Libs: -L${libdir} -lneon -lws2_32 -lintl
- Cflags: -I${includedir}/neon
+ Cflags: -I${includedir}/neon 
diff --git a/contrib/win32/patches/sdl-config.diff b/contrib/win32/patches/sdl-config.diff
index de4d91b..2c5706c 100644
--- a/contrib/win32/patches/sdl-config.diff
+++ b/contrib/win32/patches/sdl-config.diff
@@ -2,9 +2,9 @@
 +++ sdl-config	2011-04-02 00:42:07 -0500
 @@ -1,6 +1,6 @@
  #!/bin/sh
- 
+
 -prefix=/usr/local
-+prefix=/C/SDL
++prefix=/C/libs
  exec_prefix=${prefix}
  exec_prefix_set=no
  libdir=${exec_prefix}/lib
diff --git a/contrib/win32/patches/xml2-config.diff b/contrib/win32/patches/xml2-config.diff
deleted file mode 100644
index bbbb115..0000000
--- a/contrib/win32/patches/xml2-config.diff
+++ /dev/null
@@ -1,10 +0,0 @@
---- xml2-config.0	2010-02-01 17:38:19 -0500
-+++ xml2-config	2011-04-01 23:29:23 -0500
-@@ -1,6 +1,6 @@
- #! /bin/sh
- 
--prefix=/usr
-+prefix=/C/aud
- exec_prefix=${prefix}
- includedir=${prefix}/include
- libdir=${exec_prefix}/lib
diff --git a/doc/HACKING b/doc/HACKING
deleted file mode 100644
index 6dc40d5..0000000
--- a/doc/HACKING
+++ /dev/null
@@ -1,127 +0,0 @@
-Hacking / coding guide for Audacious and Audacious-plugins
-==========================================================
-(C) Copyright 2008 Audacious Development Team
-
-
-Preamble
-========
-
-This document describes the guidelines for people who wish to work on
-improving or cleaning up Audacious media player, or any of the plugins
-we distribute in the plugins package.
-
-It is probably obvious to anyone who has taken a look into the depths
-of Audacious source, that many of these guidelines are not actually
-followed currently in all places, if at all.
-
-In fact, the purpose of this document is to act as a target to aim at,
-when noticing and cleaning up uncompliant code.. or writing new code.
-
-
-Coding guidelines
-=================
-- Public functions in Audacious core SHOULD be documented via Doxygen
-  comments! In this case "public" means any functions that span modules
-  OR are available to plugins.
-
-  Of course, most functions currently lack documentation. If you have
-  spare time, improve the situation.
-
-
-- We use Glib for portability. This means that we have sized integer types
-  such as gint{16,32,64}, etc. and shorthand types like guint and guchar
-  provided, so please do use them.
-
-  Arguably C99 provides inttypes.h with similar types, but C99 support
-  may not be complete on all platforms, it is both safer and more uniform
-  to use glib types.
-
-
-- Use other glib functionality, especially string handling like:
-  * g_snprintf(), g_strdup_printf(), g_strdup() ...
-
-
-- However, avoid following Glib things:
-  * GString - Useless in most cases compared to normal 'C' string functions
-    and introduces conversions back and forth.
-
-  * GList   - GList is slow, either use GQueue or libmowgli lists.
-
-
-- Be sure to know when you are handling UTF-8 or something else! Glib offers
-  special g_ascii_*() functions for certain operations that you might need
-  when handling non-unicode strings.
-
-
-- When reading data from files, it's usually a BIG mistake to read structs
-  directly from the stream! This is not portable, as C does not guarantee
-  a struct not to have alignment padding (unless the struct is "packed",
-  but see below.) In effect sizeof(struct), unless packed, on some platform
-  may not be equal to some other platform.
-
-  Making struct "packed" via the C packed qualifier or "#pragma pack()" is
-  a solution, but this must be used with care. Unaligned memory access
-  causes performance penalties, and may cause other, more serious problems
-  in some cases. For example, code written in assembler may not know about
-  the un-alignment, and may thus fail with 'bus errors' on platforms that
-  strictly required aligned data.
-
-  The 100% safe way is to read individual members of the struct one by one
-  from the stream. This may be bothersome, but by doing so, your code
-  will be portable for sure.
-
-
-- Always use Glib sized types for reading integer data from file streams.
-  Using plain C types (like 'long int' for example) is not wise, because
-  they may be of different size on different platforms depending on the
-  platform ABI. For example, on some 64-bit platforms, 'long int' is
-  64 bits, while on 32-bit platforms it is 32 bits.
-
-
-- Audacious core provides some helper functions for reading endian-dependant
-  integers from VFS streams (aud_vfs_fget_{le,be}{16,32,64}), see vfs.h and
-  documentation for more information.
-
-
-- Avoid reinventing wheels, avoid code duplication. If same thing is done
-  in two places, it should be in a library, or possibly in Audacious core.
-  Discuss about it with fellow developers.
-
-
-- In the core, DO NOT WRITE CODE THAT IS DEPENDENT ON A SPECIFIC UI OR
-  INTERFACE. The core should NEVER care what interface is in use.
-
-
-Additional style guidelines
-===========================
-
-- Indentation: Use the same indentation style (also spaces vs. tabs)
-  as the file you are editing. In new files/code, use indentation of
-  4 spaces (no tabs). When moving functions to new files, PLEASE
-  reindent the code.
-
-- Whitespace usage in code:
-
-  a = 1;
-
-  if (b == d && !strcmp(a, c)) ...
-
-  gchar *foo, *bar;
-
-  void hello(const gchar *baz);
-
-- Blocks:
-
-  while (...)
-  {
-      do_something(...);
-  }
-
-  if (...)
-  {
-      do_stuff();
-  }
-  else
-  {
-      do_other_stuff();
-  }
diff --git a/doc/Mercurial_guide.txt b/doc/Mercurial_guide.txt
deleted file mode 100644
index 3ac405a..0000000
--- a/doc/Mercurial_guide.txt
+++ /dev/null
@@ -1,210 +0,0 @@
-Simple guide to few common Mercurial DVCS use-cases
-===================================================
-Written by Matti 'ccr' Hamalainen <ccr at tnsp.org>, 2009
-
-
-Tricks of the trade
-===================
-
- - Use 'fetch' extension instead of 'pull' and 'update'. It takes care
-   of automatic merges .. well, automatically. If a merge fails, see
-   the merging section of this guide.
-
- - Always remember to 'fetch' before 'push'. Mercurial will complain
-   about creating new heads in the remote repository if you haven't
-   merged the remote changes to your own before the push.
-
- - Learn to utilize local clones of repositories for temporary
-   testing, etc. Cloning a local repository is fast (under Linux
-   the files are initially hardlinked.)
-
-   For example, if you wish to quickly test something, but have
-   just been editing files in your working repository, just clone it
-   to another, 'hg clone orig tmp'. Tmp will be a copy of the
-   repository state, so any non-committed changes from 'orig' will
-   not be there.
-
- - Did some silly edits in your repo, that you don't want to commit?
-   'hg revert file.c' will get rid of the changes in 'file.c' or
-   just nuke all the non-committed changes via 'hg revert -a'.
-
-   Oh, those reverts will actually be backed up to files ending to
-   '.orig' (e.g. 'file.c.orig'), so you can usually recover from
-   accidental reverts too.
-
- - Strive to write good commit messages. ;)
-
-
-Rollback and what it does
-=========================
-'hg rollback' is a handy command that can be used to roll back exactly
-_one_ action performed in the local repository clone. Basically it is
-like rewinding the commit clock back by one commit, erasing that one
-commit/action from history completely. This is why it should NOT be
-used on repositories other people might have access to. (Your local
-clone is usually ok, of course.)
-
-Rollback function is sometimes useful, if you make some mistake that
-you immediately realize after committing, like a typo in commit message
-for example. In such situation, you can run:
-
-$ hg rollback
-
-In your local clone, and then do the commit again, no harm done. Another
-example of rollback's usefulness would be in abortion of 'backout',
-explained to more detail in next section.
-
-Do notice that rollbacks cannot (and should not) be done after pushes
-etc. If your changeset has propagated, you will need to use 'hg backout'
-which will reverse the changes of the changeset, but preserves history.
-
-
-Backing out a changeset
-=======================
-0) Ensure we are up to date:
-
-   $ hg fetch
-
-1) Back out or "revert" (as in Subversion and GIT terms) a changeset
-
-   $ hg backout --merge [-r] <changeset_id or revision>
-
-2a) Actually push it to the upstream repository. You will need to commit
-    the backout merge - the backout itself is committed automatically
-    but the merge isn't. Why, you ask? Because the merge might not go
-    without conflicts, and is thus left for the user to finish.
-
-    However, if there were no conflicts, you can commit:
-
-    $ hg ci
-
-    And then push to upstream:
-
-    $ hg push
-
-    If there are complaints about multiple heads, you need to 'pull'
-    or preferably 'fetch', as there have been changes in the upstream
-    which you need to merge to your repository clone.
-
-    After fetching, push again.
-
-    If there were merging conflicts during fetch, see the merge section
-    of this guide.
-
-
-2b) Oops, I didn't actually want to do that backout at all! In this
-    situation, you can do a local rollback if you haven't done anything
-    else like pushed the backout to other repositories etc.
-
-    If you DID 'push', see 2c) below.
-
-    $ hg rollback
-
-    After rollbacking, you will need to update your working copy.
-
-    $ hg update -C
-
-    After this, your repository and work copies of files should be
-    just like before you issued the backout command.
-
-
-2c) So you backed out and propagated the changes to other people, but
-    came to regret this. The solution is to backout the backed out
-    changeset.
-
-    $ hg backout --merge <backout changeset id>
-    $ hg fetch && hg push
-
-    As usual, normal rules for merge conflicts apply.
-
-
-Merging and conflicts
-=====================
-Sometimes, when changesets contain changes to files that touch each other
-or are close enough in proximity, Mercurial will not be able to
-automatically merge these changes. This is called a merge conflict, and
-it works similarly in most version control systems like CVS, Subversion,
-GIT, etc.
-
-0) When a conflict occurs, Mercurial will inform you about it with a message
-   resembling something like (when using 'fetch' extension; if you are
-   using plain 'hg pull', you will need to do 'hg merge' too):
-
-   |There are unresolved merges, you can redo the full merge using:
-   |  hg update -C 5589
-   |  hg merge 5587
-
-   One important thing this message actually tells us (beside the fact that
-   automatic merging failed), is that you can return to _current_ state by
-   issuing 'hg update -C 5589'.
-
-   This may be helpful, if you fumble while editing the files you are trying
-   to merge manually. Additionally, you don't actually need to usually
-   specify the revision in this situation, so plain 'hg update -C' is enough.
-
-1) First thing to do when doing manual merge, is to run 'hg diff', which will
-   show us what was not automatically merged. Like with Subversion etc.
-   the failed sections show up in the diff/files marked with specific
-   separators, for example:
-
-----------------------------------------------------------------------------
-diff -r c55af7b7242c src/libaudgui/ui_fileopener.c
---- a/src/libaudgui/ui_fileopener.c     Wed Sep 09 22:06:03 2009 +0100
-+++ b/src/libaudgui/ui_fileopener.c     Thu Sep 10 00:17:20 2009 +0300
-@@ -116,6 +116,14 @@
-         gtk_widget_destroy(browser);
-         return TRUE;
-     }
-+<<<<<<< /home/ccr/audacious/tmp/src/libaudgui/ui_fileopener.c
-+=======
-+    else if (event->keyval == GDK_Returnz)
-+    {
-+        action_button_cb (browser, data);
-+        return TRUE;
-+    }
-+>>>>>>> /tmp/ui_fileopener.c~other._xsy4I
- 
-     return FALSE;
- }
-----------------------------------------------------------------------------
-
-   Just like with other 3-way merging tools, the first section (<<<< til ====)
-   is the "incoming" change, e.g. what the other committer(s) have done and
-   the latter section is yours.
-
-2) After you have edited the conflicting sections to what you think is good
-   and proper (it's good to do 'hg diff' again and glance through to make
-   sure you didn't miss anything), you can then commit the merge:
-
-   $ hg ci
-
-   And then push the changes to upstream repository.
-
-   $ hg push
-
-   Of course, if you took lots of time to perform the merge, someone may
-   have pushed before you, and you may need to 'fetch' again before pushing.
-   Maybe not so amusing, but it is just the way DVCS's work.
-
-
-Update and revert
-=================
-These two Mercurial commands may sometimes seem bit confusing, after all
-you can use 'hg update' to change the repository to any given
-revision/changeset. This happens by reparenting, so for example after
-'updating' to old revision, the history after that revision is to be
-considered "future" from our viewpoint.
-
-Indeed, revert does a bit similar thing, it goes back to the _parent_ of
-the current working repository, effectively reverting the changes non-
-committed changes in your working directories/repo.
-
-In Subversion terms, 'hg update' can be thought as 'svn co' and actually
-Mercurial considers checkout/co as aliases to 'update'. Revert then
-is canonical to Subversion's revert.
-
-But unlike in Subversion, in Mercurial you can actually go back to a given
-revision (via 'hg update [-C] <rev>'), make changes, commit them and then
-_merge_ those changes from the viewpoint of the old revision vs. later ones.
-
-Yes, it's a kind of magic.
diff --git a/doc/TODO b/doc/TODO
deleted file mode 100644
index 5e8f73c..0000000
--- a/doc/TODO
+++ /dev/null
@@ -1,67 +0,0 @@
-"TODO" for 2.6/3.0
-==================
-
-Plugin loading cleanups:
- - enforce one "plugin" per .so file
- - kill off hidden "lowlevel" plugins
- - PLUGIN_COMMON_FIELDS in interface plugin headers
- - size field in plugin headers to allow future expansion
- - custom URIs and MIME types in input plugin headers
- - flag to enable general plugins by default
-
-Make more of the core thread-safe:
- - thread-safe plugin registry
- - thread-safe transport and input plugins (including init())
- - kill off vfs_prepare() hack
- - thread-safe file_find_decoder()
- - thread-safe playlist
-
-Move various operations to separate threads:
- - move folder and playlist loading to separate thread
- - move remaining parts of metadata scanning to separate threads
- - metadata scanning in all playlists, not just active
- - manipulate playlist without interrupting metadata scanning
-
-Miscellaneous:
- - common widget to select output and interface plugins
- - switch interface from preferences window
-
-
-Long-term "TODO"
-================
-
-- output plugins should have some kind of (optional) "query available formats"
-  function, so that the core could determine what should be used. perhaps
-  offer users this info?
-
-- maybe all audio plugins (input, output, effect) could be made completely
-  re-entrant. this probably means severely breaking the API. not very
-  trivial either .. some plugins are probably impossible.
-  * basically plugin init() should allocate / init a state struct to
-    be used in all operations, etc.
-  * context support should be added to plugin functions.
-  * question: issues with plugins that use non-re-entrant library backends
-    etc?
-
-- URIs with "?" are stripped (the subtune support uses that), which is bad,
-  because some (a lot) of real-world URLs use 'GET' arguments. this breaks
-  probing, but current input probing is confusing (and possibly broken anyway)
-  and should be refactored.
-  * As of 2.5, is this still a problem?
-
-- mime-types support:
-  * there is already code for mime support, but I think it may not be
-    sufficient as it is designed for input plugins only --
-    also playlist containers etc. need this (IMHO)
-  * might be nicer to have the type registrations in plugin struct
-    instead of a separate function, a'la vfs_extensions.
-
-- document the different APIs via Doxygen
-
-- {core,plugins}/configure.ac need some cleanup loving.
-  * build system cleanups .. extra.mk.in? wtf? (done in core, progressing
-  for plugins)
-  --- this is in progress, worked on by ccr
-
-- plugin rewrites:
-  * modplug (in progress by ccr)
diff --git a/extra.mk.in b/extra.mk.in
index a300c83..464bbb0 100644
--- a/extra.mk.in
+++ b/extra.mk.in
@@ -1,183 +1,37 @@
-XGETTEXT ?= @XGETTEXT@
-pdfdir ?= @pdfdir@
-ECHO_N ?= @ECHO_N@
-CXXFLAGS ?= @CXXFLAGS@
-DBUS_BINDING_TOOL ?= @DBUS_BINDING_TOOL@
-PLUGIN_SUFFIX ?= @PLUGIN_SUFFIX@
-target ?= @target@
-CLEAN_LIB ?= @CLEAN_LIB@
-bindir ?= @bindir@
-INTL_LIBTOOL_SUFFIX_PREFIX ?= @INTL_LIBTOOL_SUFFIX_PREFIX@
-PACKAGE_URL ?= @PACKAGE_URL@
-ALLOCA ?= @ALLOCA@
-LIBGUESS_CFLAGS ?= @LIBGUESS_CFLAGS@
-PROG_IMPLIB_NEEDED ?= @PROG_IMPLIB_NEEDED@
-dvidir ?= @dvidir@
-AUDLDFLAGS ?= @AUDLDFLAGS@
-PACKAGE_BUGREPORT ?= @PACKAGE_BUGREPORT@
-MAKE ?= @MAKE@
-INSTOBJEXT ?= @INSTOBJEXT@
+AUDACIOUS_DEFINES ?= @AUDACIOUS_DEFINES@
+LIBAUDCLIENT_LDFLAGS ?= @LIBAUDCLIENT_LDFLAGS@
+USE_NLS ?= @USE_NLS@
+VERSION ?= @VERSION@
+
 CONTAINER_PLUGIN_DIR ?= @CONTAINER_PLUGIN_DIR@
-DATADIRNAME ?= @DATADIRNAME@
+EFFECT_PLUGIN_DIR ?= @EFFECT_PLUGIN_DIR@
+GENERAL_PLUGIN_DIR ?= @GENERAL_PLUGIN_DIR@
 INPUT_PLUGIN_DIR ?= @INPUT_PLUGIN_DIR@
-SM_CFLAGS ?= @SM_CFLAGS@
-POSUB ?= @POSUB@
-CPP ?= @CPP@
-MKINSTALLDIRS ?= @MKINSTALLDIRS@
-target_cpu ?= @target_cpu@
-DBUS_LIBS ?= @DBUS_LIBS@
-UNINSTALL_LIB ?= @UNINSTALL_LIB@
-datadir ?= @datadir@
-build ?= @build@
-CPPFLAGS ?= @CPPFLAGS@
-SHELL ?= @SHELL@
+OUTPUT_PLUGIN_DIR ?= @OUTPUT_PLUGIN_DIR@
+TRANSPORT_PLUGIN_DIR ?= @TRANSPORT_PLUGIN_DIR@
+VISUALIZATION_PLUGIN_DIR ?= @VISUALIZATION_PLUGIN_DIR@
+
+DBUS_BINDING_TOOL ?= @DBUS_BINDING_TOOL@
+HAVE_MSWINDOWS ?= @HAVE_MSWINDOWS@
+USE_CHARDET ?= @USE_CHARDET@
+USE_DBUS ?= @USE_DBUS@
 USE_EGGSM ?= @USE_EGGSM@
-GLIB_GENMARSHAL ?= @GLIB_GENMARSHAL@
-LIBMCS_LIBS ?= @LIBMCS_LIBS@
-am__leading_dot ?= @am__leading_dot@
-program_transform_name ?= @program_transform_name@
-INTL_OBJECTIVE ?= @INTL_OBJECTIVE@
-SIMD_CFLAGS ?= @SIMD_CFLAGS@
-CC ?= @CC@
-CATOBJEXT ?= @CATOBJEXT@
-DEFS ?= @DEFS@
-LIBS ?= @LIBS@
-build_cpu ?= @build_cpu@
-infodir ?= @infodir@
-GLIB_CFLAGS ?= @GLIB_CFLAGS@
-AMDEPBACKSLASH ?= @AMDEPBACKSLASH@
-GENERAL_PLUGIN_DIR ?= @GENERAL_PLUGIN_DIR@
-libexecdir ?= @libexecdir@
-localedir ?= @localedir@
-CCASDEPMODE ?= @CCASDEPMODE@
-LTLIBOBJS ?= @LTLIBOBJS@
-LIBICONV ?= @LIBICONV@
-includedir ?= @includedir@
-LDFLAGS ?= @LDFLAGS@
-build_alias ?= @build_alias@
-USE_NLS ?= @USE_NLS@
-AUDACIOUS_DEFINES ?= @AUDACIOUS_DEFINES@
-libdir ?= @libdir@
-CFLAGS ?= @CFLAGS@
-REGEX_LIBS ?= @REGEX_LIBS@
-PTHREAD_LIBS ?= @PTHREAD_LIBS@
-localstatedir ?= @localstatedir@
-DISCOVERY_PLUGIN_DIR ?= @DISCOVERY_PLUGIN_DIR@
-docdir ?= @docdir@
-LIBGUESS_LIBS ?= @LIBGUESS_LIBS@
-LIB_LDFLAGS ?= @LIB_LDFLAGS@
-CCASFLAGS ?= @CCASFLAGS@
-INSTALL_SCRIPT ?= @INSTALL_SCRIPT@
-host_alias ?= @host_alias@
-PACKAGE_TARNAME ?= @PACKAGE_TARNAME@
-RANLIB ?= @RANLIB@
+
 DBUS_CFLAGS ?= @DBUS_CFLAGS@
-OUTPUT_PLUGIN_DIR ?= @OUTPUT_PLUGIN_DIR@
-pluginsubs ?= @pluginsubs@
-PATH_SEPARATOR ?= @PATH_SEPARATOR@
-EXEEXT ?= @EXEEXT@
-MV ?= @MV@
+DBUS_LIBS ?= @DBUS_LIBS@
+GLIB_CFLAGS ?= @GLIB_CFLAGS@
 GLIB_LIBS ?= @GLIB_LIBS@
-GMSGFMT ?= @GMSGFMT@
-target_os ?= @target_os@
-AR ?= @AR@
-host ?= @host@
+GTHREAD_CFLAGS ?= @GTHREAD_CFLAGS@
 GTHREAD_LIBS ?= @GTHREAD_LIBS@
-LIBINTL ?= @LIBINTL@
-target_vendor ?= @target_vendor@
-CCAS ?= @CCAS@
-desktop_file ?= @desktop_file@
-prefix ?= @prefix@
-LIB_CFLAGS ?= @LIB_CFLAGS@
-REGEX_CFLAGS ?= @REGEX_CFLAGS@
-PTHREAD_CFLAGS ?= @PTHREAD_CFLAGS@
-CAIRO_LIBS ?= @CAIRO_LIBS@
 GTK_CFLAGS ?= @GTK_CFLAGS@
-sharedstatedir ?= @sharedstatedir@
-am__include ?= @am__include@
-OBJEXT ?= @OBJEXT@
-PKG_CONFIG ?= @PKG_CONFIG@
-ICE_CFLAGS ?= @ICE_CFLAGS@
-sysconfdir ?= @sysconfdir@
-htmldir ?= @htmldir@
-PC_REQUIRES ?= @PC_REQUIRES@
-HAVE_SUN ?= @HAVE_SUN@
-GENCAT ?= @GENCAT@
-MOWGLI_LIBS ?= @MOWGLI_LIBS@
-PACKAGE_STRING ?= @PACKAGE_STRING@
-INTLOBJS ?= @INTLOBJS@
-sbindir ?= @sbindir@
-EFFECT_PLUGIN_DIR ?= @EFFECT_PLUGIN_DIR@
-CP ?= @CP@
-SET_MAKE ?= @SET_MAKE@
-DEPDIR ?= @DEPDIR@
-PLUGIN_CFLAGS ?= @PLUGIN_CFLAGS@
-ECHO_C ?= @ECHO_C@
-SM_LIBS ?= @SM_LIBS@
-USE_X86ASM ?= @USE_X86ASM@
-USE_INCLUDED_LIBINTL ?= @USE_INCLUDED_LIBINTL@
-psdir ?= @psdir@
-SHARED_SUFFIX ?= @SHARED_SUFFIX@
-LIBMCS_CFLAGS ?= @LIBMCS_CFLAGS@
-BUILD_INCLUDED_LIBINTL ?= @BUILD_INCLUDED_LIBINTL@
-oldincludedir ?= @oldincludedir@
-MSGFMT ?= @MSGFMT@
-TR ?= @TR@
-TRANSPORT_PLUGIN_DIR ?= @TRANSPORT_PLUGIN_DIR@
-ac_ct_CXX ?= @ac_ct_CXX@
-USE_DBUS ?= @USE_DBUS@
-ARCH_DEFINES ?= @ARCH_DEFINES@
-CAIRO_CFLAGS ?= @CAIRO_CFLAGS@
-LTLIBICONV ?= @LTLIBICONV@
-build_vendor ?= @build_vendor@
-LIB_PREFIX ?= @LIB_PREFIX@
-host_cpu ?= @host_cpu@
 GTK_LIBS ?= @GTK_LIBS@
-PACKAGE ?= @PACKAGE@
-mandir ?= @mandir@
-GLIBC21 ?= @GLIBC21@
-target_alias ?= @target_alias@
-DBUS_SERVICES_DIR ?= @DBUS_SERVICES_DIR@
-LTLIBINTL ?= @LTLIBINTL@
-PLUGIN_CPPFLAGS ?= @PLUGIN_CPPFLAGS@
-LIBAUDCLIENT_LDFLAGS ?= @LIBAUDCLIENT_LDFLAGS@
-PACKAGE_NAME ?= @PACKAGE_NAME@
-DEBUG ?= @DEBUG@
-ECHO_T ?= @ECHO_T@
-am__quote ?= @am__quote@
-LIB_SUFFIX ?= @LIB_SUFFIX@
-LIBOBJS ?= @LIBOBJS@
-ac_ct_CC ?= @ac_ct_CC@
-PANGO_LIBS ?= @PANGO_LIBS@
-PACKAGE_VERSION ?= @PACKAGE_VERSION@
-LDFLAGS_RPATH ?= @LDFLAGS_RPATH@
+ICE_CFLAGS ?= @ICE_CFLAGS@
 ICE_LIBS ?= @ICE_LIBS@
-INTLBISON ?= @INTLBISON@
-LN_S ?= @LN_S@
-INSTALL_LIB ?= @INSTALL_LIB@
-USE_CHARDET ?= @USE_CHARDET@
-GTHREAD_CFLAGS ?= @GTHREAD_CFLAGS@
-GREP ?= @GREP@
-host_vendor ?= @host_vendor@
-build_os ?= @build_os@
-INSTALL_DATA ?= @INSTALL_DATA@
-PANGO_CFLAGS ?= @PANGO_CFLAGS@
-datarootdir ?= @datarootdir@
-MOWGLI_CFLAGS ?= @MOWGLI_CFLAGS@
-plugindir ?= @plugindir@
-CXX ?= @CXX@
-RM ?= @RM@
-INSTALL_PROGRAM ?= @INSTALL_PROGRAM@
-PLUGIN_LDFLAGS ?= @PLUGIN_LDFLAGS@
-VISUALIZATION_PLUGIN_DIR ?= @VISUALIZATION_PLUGIN_DIR@
-IMPLIB_LIBS ?= @IMPLIB_LIBS@
-MSGMERGE ?= @MSGMERGE@
-INTLLIBS ?= @INTLLIBS@
-PROG_IMPLIB_LDFLAGS ?= @PROG_IMPLIB_LDFLAGS@
-host_os ?= @host_os@
-exec_prefix ?= @exec_prefix@
-HAVE_SOLARIS ?= @HAVE_SOLARIS@
-EGREP ?= @EGREP@
-AUDACIOUS_PATH ?= @AUDACIOUS_PATH@
-ARCH_X86 ?= @ARCH_X86@
-VERSION ?= @VERSION@
+LIBGUESS_CFLAGS ?= @LIBGUESS_CFLAGS@
+LIBGUESS_LIBS ?= @LIBGUESS_LIBS@
+PTHREAD_CFLAGS ?= @PTHREAD_CFLAGS@
+PTHREAD_LIBS ?= @PTHREAD_LIBS@
+REGEX_CFLAGS ?= @REGEX_CFLAGS@
+REGEX_LIBS ?= @REGEX_LIBS@
+SM_CFLAGS ?= @SM_CFLAGS@
+SM_LIBS ?= @SM_LIBS@
diff --git a/install-sh b/install-sh
index 4d4a951..6781b98 100644
--- a/install-sh
+++ b/install-sh
@@ -1,7 +1,7 @@
 #!/bin/sh
 # install - install a program, script, or datafile
 
-scriptversion=2005-05-14.22
+scriptversion=2009-04-28.21; # UTC
 
 # This originates from X11R5 (mit/util/scripts/install.sh), which was
 # later released in X11R6 (xc/config/util/install.sh) with the
@@ -39,38 +39,68 @@ scriptversion=2005-05-14.22
 # when there is no Makefile.
 #
 # This script is compatible with the BSD install script, but was written
-# from scratch.  It can only install one file at a time, a restriction
-# shared with many OS's install programs.
+# from scratch.
+
+nl='
+'
+IFS=" ""	$nl"
 
 # set DOITPROG to echo to test this script
 
 # Don't use :- since 4.3BSD and earlier shells don't like it.
-doit="${DOITPROG-}"
+doit=${DOITPROG-}
+if test -z "$doit"; then
+  doit_exec=exec
+else
+  doit_exec=$doit
+fi
 
-# put in absolute paths if you don't have them in your path; or use env. vars.
+# Put in absolute file names if you don't have them in your path;
+# or use environment vars.
+
+chgrpprog=${CHGRPPROG-chgrp}
+chmodprog=${CHMODPROG-chmod}
+chownprog=${CHOWNPROG-chown}
+cmpprog=${CMPPROG-cmp}
+cpprog=${CPPROG-cp}
+mkdirprog=${MKDIRPROG-mkdir}
+mvprog=${MVPROG-mv}
+rmprog=${RMPROG-rm}
+stripprog=${STRIPPROG-strip}
+
+posix_glob='?'
+initialize_posix_glob='
+  test "$posix_glob" != "?" || {
+    if (set -f) 2>/dev/null; then
+      posix_glob=
+    else
+      posix_glob=:
+    fi
+  }
+'
 
-mvprog="${MVPROG-mv}"
-cpprog="${CPPROG-cp}"
-chmodprog="${CHMODPROG-chmod}"
-chownprog="${CHOWNPROG-chown}"
-chgrpprog="${CHGRPPROG-chgrp}"
-stripprog="${STRIPPROG-strip}"
-rmprog="${RMPROG-rm}"
-mkdirprog="${MKDIRPROG-mkdir}"
+posix_mkdir=
+
+# Desired mode of installed file.
+mode=0755
 
-chmodcmd="$chmodprog 0755"
-chowncmd=
 chgrpcmd=
-stripcmd=
+chmodcmd=$chmodprog
+chowncmd=
+mvcmd=$mvprog
 rmcmd="$rmprog -f"
-mvcmd="$mvprog"
+stripcmd=
+
 src=
 dst=
 dir_arg=
-dstarg=
+dst_arg=
+
+copy_on_change=false
 no_target_directory=
 
-usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
+usage="\
+Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
    or: $0 [OPTION]... SRCFILES... DIRECTORY
    or: $0 [OPTION]... -t DIRECTORY SRCFILES...
    or: $0 [OPTION]... -d DIRECTORIES...
@@ -80,81 +110,86 @@ In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
 In the 4th, create DIRECTORIES.
 
 Options:
--c         (ignored)
--d         create directories instead of installing files.
--g GROUP   $chgrpprog installed files to GROUP.
--m MODE    $chmodprog installed files to MODE.
--o USER    $chownprog installed files to USER.
--s         $stripprog installed files.
--t DIRECTORY  install into DIRECTORY.
--T         report an error if DSTFILE is a directory.
---help     display this help and exit.
---version  display version info and exit.
+     --help     display this help and exit.
+     --version  display version info and exit.
+
+  -c            (ignored)
+  -C            install only if different (preserve the last data modification time)
+  -d            create directories instead of installing files.
+  -g GROUP      $chgrpprog installed files to GROUP.
+  -m MODE       $chmodprog installed files to MODE.
+  -o USER       $chownprog installed files to USER.
+  -s            $stripprog installed files.
+  -t DIRECTORY  install into DIRECTORY.
+  -T            report an error if DSTFILE is a directory.
 
 Environment variables override the default commands:
-  CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG
+  CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
+  RMPROG STRIPPROG
 "
 
-while test -n "$1"; do
+while test $# -ne 0; do
   case $1 in
-    -c) shift
-        continue;;
+    -c) ;;
+
+    -C) copy_on_change=true;;
 
-    -d) dir_arg=true
-        shift
-        continue;;
+    -d) dir_arg=true;;
 
     -g) chgrpcmd="$chgrpprog $2"
-        shift
-        shift
-        continue;;
+	shift;;
 
     --help) echo "$usage"; exit $?;;
 
-    -m) chmodcmd="$chmodprog $2"
-        shift
-        shift
-        continue;;
+    -m) mode=$2
+	case $mode in
+	  *' '* | *'	'* | *'
+'*	  | *'*'* | *'?'* | *'['*)
+	    echo "$0: invalid mode: $mode" >&2
+	    exit 1;;
+	esac
+	shift;;
 
     -o) chowncmd="$chownprog $2"
-        shift
-        shift
-        continue;;
+	shift;;
 
-    -s) stripcmd=$stripprog
-        shift
-        continue;;
+    -s) stripcmd=$stripprog;;
 
-    -t) dstarg=$2
-	shift
-	shift
-	continue;;
+    -t) dst_arg=$2
+	shift;;
 
-    -T) no_target_directory=true
-	shift
-	continue;;
+    -T) no_target_directory=true;;
 
     --version) echo "$0 $scriptversion"; exit $?;;
 
-    *)  # When -d is used, all remaining arguments are directories to create.
-	# When -t is used, the destination is already specified.
-	test -n "$dir_arg$dstarg" && break
-        # Otherwise, the last argument is the destination.  Remove it from $@.
-	for arg
-	do
-          if test -n "$dstarg"; then
-	    # $@ is not empty: it contains at least $arg.
-	    set fnord "$@" "$dstarg"
-	    shift # fnord
-	  fi
-	  shift # arg
-	  dstarg=$arg
-	done
+    --)	shift
 	break;;
+
+    -*)	echo "$0: invalid option: $1" >&2
+	exit 1;;
+
+    *)  break;;
   esac
+  shift
 done
 
-if test -z "$1"; then
+if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
+  # When -d is used, all remaining arguments are directories to create.
+  # When -t is used, the destination is already specified.
+  # Otherwise, the last argument is the destination.  Remove it from $@.
+  for arg
+  do
+    if test -n "$dst_arg"; then
+      # $@ is not empty: it contains at least $arg.
+      set fnord "$@" "$dst_arg"
+      shift # fnord
+    fi
+    shift # arg
+    dst_arg=$arg
+  done
+fi
+
+if test $# -eq 0; then
   if test -z "$dir_arg"; then
     echo "$0: no input file specified." >&2
     exit 1
@@ -164,24 +199,47 @@ if test -z "$1"; then
   exit 0
 fi
 
+if test -z "$dir_arg"; then
+  trap '(exit $?); exit' 1 2 13 15
+
+  # Set umask so as not to create temps with too-generous modes.
+  # However, 'strip' requires both read and write access to temps.
+  case $mode in
+    # Optimize common cases.
+    *644) cp_umask=133;;
+    *755) cp_umask=22;;
+
+    *[0-7])
+      if test -z "$stripcmd"; then
+	u_plus_rw=
+      else
+	u_plus_rw='% 200'
+      fi
+      cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
+    *)
+      if test -z "$stripcmd"; then
+	u_plus_rw=
+      else
+	u_plus_rw=,u+rw
+      fi
+      cp_umask=$mode$u_plus_rw;;
+  esac
+fi
+
 for src
 do
   # Protect names starting with `-'.
   case $src in
-    -*) src=./$src ;;
+    -*) src=./$src;;
   esac
 
   if test -n "$dir_arg"; then
     dst=$src
-    src=
-
-    if test -d "$dst"; then
-      mkdircmd=:
-      chmodcmd=
-    else
-      mkdircmd=$mkdirprog
-    fi
+    dstdir=$dst
+    test -d "$dstdir"
+    dstdir_status=$?
   else
+
     # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
     # might cause directories to be created, which would be especially bad
     # if $src (and thus $dsttmp) contains '*'.
@@ -190,71 +248,199 @@ do
       exit 1
     fi
 
-    if test -z "$dstarg"; then
+    if test -z "$dst_arg"; then
       echo "$0: no destination specified." >&2
       exit 1
     fi
 
-    dst=$dstarg
+    dst=$dst_arg
     # Protect names starting with `-'.
     case $dst in
-      -*) dst=./$dst ;;
+      -*) dst=./$dst;;
     esac
 
     # If destination is a directory, append the input filename; won't work
     # if double slashes aren't ignored.
     if test -d "$dst"; then
       if test -n "$no_target_directory"; then
-	echo "$0: $dstarg: Is a directory" >&2
+	echo "$0: $dst_arg: Is a directory" >&2
 	exit 1
       fi
-      dst=$dst/`basename "$src"`
+      dstdir=$dst
+      dst=$dstdir/`basename "$src"`
+      dstdir_status=0
+    else
+      # Prefer dirname, but fall back on a substitute if dirname fails.
+      dstdir=`
+	(dirname "$dst") 2>/dev/null ||
+	expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	     X"$dst" : 'X\(//\)[^/]' \| \
+	     X"$dst" : 'X\(//\)$' \| \
+	     X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
+	echo X"$dst" |
+	    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+		   s//\1/
+		   q
+		 }
+		 /^X\(\/\/\)[^/].*/{
+		   s//\1/
+		   q
+		 }
+		 /^X\(\/\/\)$/{
+		   s//\1/
+		   q
+		 }
+		 /^X\(\/\).*/{
+		   s//\1/
+		   q
+		 }
+		 s/.*/./; q'
+      `
+
+      test -d "$dstdir"
+      dstdir_status=$?
     fi
   fi
 
-  # This sed command emulates the dirname command.
-  dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'`
+  obsolete_mkdir_used=false
+
+  if test $dstdir_status != 0; then
+    case $posix_mkdir in
+      '')
+	# Create intermediate dirs using mode 755 as modified by the umask.
+	# This is like FreeBSD 'install' as of 1997-10-28.
+	umask=`umask`
+	case $stripcmd.$umask in
+	  # Optimize common cases.
+	  *[2367][2367]) mkdir_umask=$umask;;
+	  .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
+
+	  *[0-7])
+	    mkdir_umask=`expr $umask + 22 \
+	      - $umask % 100 % 40 + $umask % 20 \
+	      - $umask % 10 % 4 + $umask % 2
+	    `;;
+	  *) mkdir_umask=$umask,go-w;;
+	esac
+
+	# With -d, create the new directory with the user-specified mode.
+	# Otherwise, rely on $mkdir_umask.
+	if test -n "$dir_arg"; then
+	  mkdir_mode=-m$mode
+	else
+	  mkdir_mode=
+	fi
+
+	posix_mkdir=false
+	case $umask in
+	  *[123567][0-7][0-7])
+	    # POSIX mkdir -p sets u+wx bits regardless of umask, which
+	    # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
+	    ;;
+	  *)
+	    tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
+	    trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
+
+	    if (umask $mkdir_umask &&
+		exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
+	    then
+	      if test -z "$dir_arg" || {
+		   # Check for POSIX incompatibilities with -m.
+		   # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
+		   # other-writeable bit of parent directory when it shouldn't.
+		   # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
+		   ls_ld_tmpdir=`ls -ld "$tmpdir"`
+		   case $ls_ld_tmpdir in
+		     d????-?r-*) different_mode=700;;
+		     d????-?--*) different_mode=755;;
+		     *) false;;
+		   esac &&
+		   $mkdirprog -m$different_mode -p -- "$tmpdir" && {
+		     ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
+		     test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
+		   }
+		 }
+	      then posix_mkdir=:
+	      fi
+	      rmdir "$tmpdir/d" "$tmpdir"
+	    else
+	      # Remove any dirs left behind by ancient mkdir implementations.
+	      rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
+	    fi
+	    trap '' 0;;
+	esac;;
+    esac
 
-  # Make sure that the destination directory exists.
+    if
+      $posix_mkdir && (
+	umask $mkdir_umask &&
+	$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
+      )
+    then :
+    else
 
-  # Skip lots of stat calls in the usual case.
-  if test ! -d "$dstdir"; then
-    defaultIFS='
-	 '
-    IFS="${IFS-$defaultIFS}"
+      # The umask is ridiculous, or mkdir does not conform to POSIX,
+      # or it failed possibly due to a race condition.  Create the
+      # directory the slow way, step by step, checking for races as we go.
 
-    oIFS=$IFS
-    # Some sh's can't handle IFS=/ for some reason.
-    IFS='%'
-    set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
-    shift
-    IFS=$oIFS
+      case $dstdir in
+	/*) prefix='/';;
+	-*) prefix='./';;
+	*)  prefix='';;
+      esac
 
-    pathcomp=
+      eval "$initialize_posix_glob"
 
-    while test $# -ne 0 ; do
-      pathcomp=$pathcomp$1
+      oIFS=$IFS
+      IFS=/
+      $posix_glob set -f
+      set fnord $dstdir
       shift
-      if test ! -d "$pathcomp"; then
-        $mkdirprog "$pathcomp"
-	# mkdir can fail with a `File exist' error in case several
-	# install-sh are creating the directory concurrently.  This
-	# is OK.
-	test -d "$pathcomp" || exit
+      $posix_glob set +f
+      IFS=$oIFS
+
+      prefixes=
+
+      for d
+      do
+	test -z "$d" && continue
+
+	prefix=$prefix$d
+	if test -d "$prefix"; then
+	  prefixes=
+	else
+	  if $posix_mkdir; then
+	    (umask=$mkdir_umask &&
+	     $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
+	    # Don't fail if two instances are running concurrently.
+	    test -d "$prefix" || exit 1
+	  else
+	    case $prefix in
+	      *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
+	      *) qprefix=$prefix;;
+	    esac
+	    prefixes="$prefixes '$qprefix'"
+	  fi
+	fi
+	prefix=$prefix/
+      done
+
+      if test -n "$prefixes"; then
+	# Don't fail if two instances are running concurrently.
+	(umask $mkdir_umask &&
+	 eval "\$doit_exec \$mkdirprog $prefixes") ||
+	  test -d "$dstdir" || exit 1
+	obsolete_mkdir_used=true
       fi
-      pathcomp=$pathcomp/
-    done
+    fi
   fi
 
   if test -n "$dir_arg"; then
-    $doit $mkdircmd "$dst" \
-      && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \
-      && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \
-      && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \
-      && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; }
-
+    { test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
+    { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
+    { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
+      test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
   else
-    dstfile=`basename "$dst"`
 
     # Make a couple of temp file names in the proper directory.
     dsttmp=$dstdir/_inst.$$_
@@ -262,10 +448,9 @@ do
 
     # Trap to clean up those temp files at exit.
     trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
-    trap '(exit $?); exit' 1 2 13 15
 
     # Copy the file name to the temp name.
-    $doit $cpprog "$src" "$dsttmp" &&
+    (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
 
     # and set any options; do chmod last to preserve setuid bits.
     #
@@ -273,51 +458,63 @@ do
     # ignore errors from any of these, just make sure not to ignore
     # errors from the above "$doit $cpprog $src $dsttmp" command.
     #
-    { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \
-      && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \
-      && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \
-      && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } &&
-
-    # Now rename the file to the real destination.
-    { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \
-      || {
-	   # The rename failed, perhaps because mv can't rename something else
-	   # to itself, or perhaps because mv is so ancient that it does not
-	   # support -f.
-
-	   # Now remove or move aside any old file at destination location.
-	   # We try this two ways since rm can't unlink itself on some
-	   # systems and the destination file might be busy for other
-	   # reasons.  In this case, the final cleanup might fail but the new
-	   # file should still install successfully.
-	   {
-	     if test -f "$dstdir/$dstfile"; then
-	       $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \
-	       || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \
-	       || {
-		 echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
-		 (exit 1); exit 1
-	       }
-	     else
-	       :
-	     fi
-	   } &&
-
-	   # Now rename the file to the real destination.
-	   $doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
-	 }
-    }
-  fi || { (exit 1); exit 1; }
+    { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
+    { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
+    { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
+    { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
+
+    # If -C, don't bother to copy if it wouldn't change the file.
+    if $copy_on_change &&
+       old=`LC_ALL=C ls -dlL "$dst"	2>/dev/null` &&
+       new=`LC_ALL=C ls -dlL "$dsttmp"	2>/dev/null` &&
+
+       eval "$initialize_posix_glob" &&
+       $posix_glob set -f &&
+       set X $old && old=:$2:$4:$5:$6 &&
+       set X $new && new=:$2:$4:$5:$6 &&
+       $posix_glob set +f &&
+
+       test "$old" = "$new" &&
+       $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
+    then
+      rm -f "$dsttmp"
+    else
+      # Rename the file to the real destination.
+      $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
+
+      # The rename failed, perhaps because mv can't rename something else
+      # to itself, or perhaps because mv is so ancient that it does not
+      # support -f.
+      {
+	# Now remove or move aside any old file at destination location.
+	# We try this two ways since rm can't unlink itself on some
+	# systems and the destination file might be busy for other
+	# reasons.  In this case, the final cleanup might fail but the new
+	# file should still install successfully.
+	{
+	  test ! -f "$dst" ||
+	  $doit $rmcmd -f "$dst" 2>/dev/null ||
+	  { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
+	    { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
+	  } ||
+	  { echo "$0: cannot unlink or rename $dst" >&2
+	    (exit 1); exit 1
+	  }
+	} &&
+
+	# Now rename the file to the real destination.
+	$doit $mvcmd "$dsttmp" "$dst"
+      }
+    fi || exit 1
+
+    trap '' 0
+  fi
 done
 
-# The final little trick to "correctly" pass the exit status to the exit trap.
-{
-  (exit 0); exit 0
-}
-
 # Local variables:
 # eval: (add-hook 'write-file-hooks 'time-stamp)
 # time-stamp-start: "scriptversion="
 # time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-end: "$"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
 # End:
diff --git a/m4/buildsys.m4 b/m4/buildsys.m4
index 61dd330..a742bb8 100644
--- a/m4/buildsys.m4
+++ b/m4/buildsys.m4
@@ -101,8 +101,8 @@ AC_DEFUN([BUILDSYS_SHARED_LIB], [
 			PLUGIN_CFLAGS='-fPIC -DPIC'
 			PLUGIN_LDFLAGS='-bundle -undefined dynamic_lookup'
 			PLUGIN_SUFFIX='.impl'
-			INSTALL_LIB='${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$${i%.dylib}.${LIB_MAJOR}.${LIB_MINOR}.dylib && ${LN_S} -f $${i%.dylib}.${LIB_MAJOR}.${LIB_MINOR}.dylib ${DESTDIR}${libdir}/$${i%.dylib}.${LIB_MAJOR}.dylib && ${LN_S} -f $${i%.dylib}.${LIB_MAJOR}.${LIB_MINOR}.dylib ${DESTDIR}${libdir}/$$i'
-			UNINSTALL_LIB='rm -f ${DESTDIR}${libdir}/$$i ${DESTDIR}${libdir}/$${i%.dylib}.${LIB_MAJOR}.dylib ${DESTDIR}${libdir}/$${i%.dylib}.${LIB_MAJOR}.${LIB_MINOR}.dylib'
+			INSTALL_LIB='&& ${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$${i%.dylib}.${LIB_MAJOR}.${LIB_MINOR}.dylib && ${LN_S} -f $${i%.dylib}.${LIB_MAJOR}.${LIB_MINOR}.dylib ${DESTDIR}${libdir}/$${i%.dylib}.${LIB_MAJOR}.dylib && ${LN_S} -f $${i%.dylib}.${LIB_MAJOR}.${LIB_MINOR}.dylib ${DESTDIR}${libdir}/$$i'
+			UNINSTALL_LIB='&& rm -f ${DESTDIR}${libdir}/$$i ${DESTDIR}${libdir}/$${i%.dylib}.${LIB_MAJOR}.dylib ${DESTDIR}${libdir}/$${i%.dylib}.${LIB_MAJOR}.${LIB_MINOR}.dylib'
 			CLEAN_LIB=''
 			;;
 		solaris*)
@@ -115,8 +115,8 @@ AC_DEFUN([BUILDSYS_SHARED_LIB], [
 			PLUGIN_CFLAGS='-fPIC -DPIC'
 			PLUGIN_LDFLAGS='-shared'
 			PLUGIN_SUFFIX='.so'
-			INSTALL_LIB='${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR} && rm -f ${DESTDIR}${libdir}/$$i && ${LN_S} $$i.${LIB_MAJOR}.${LIB_MINOR} ${DESTDIR}${libdir}/$$i'
-			UNINSTALL_LIB='rm -f ${DESTDIR}${libdir}/$$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR}'
+			INSTALL_LIB='&& ${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR} && rm -f ${DESTDIR}${libdir}/$$i && ${LN_S} $$i.${LIB_MAJOR}.${LIB_MINOR} ${DESTDIR}${libdir}/$$i'
+			UNINSTALL_LIB='&& rm -f ${DESTDIR}${libdir}/$$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR}'
 			CLEAN_LIB=''
 			;;
 		openbsd* | mirbsd*)
@@ -129,8 +129,8 @@ AC_DEFUN([BUILDSYS_SHARED_LIB], [
 			PLUGIN_CFLAGS='-fPIC -DPIC'
 			PLUGIN_LDFLAGS='-shared'
 			PLUGIN_SUFFIX='.so'
-			INSTALL_LIB='${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$$i'
-			UNINSTALL_LIB='rm -f ${DESTDIR}${libdir}/$$i'
+			INSTALL_LIB='&& ${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$$i'
+			UNINSTALL_LIB='&& rm -f ${DESTDIR}${libdir}/$$i'
 			CLEAN_LIB=''
 			;;
 		cygwin* | mingw*)
@@ -143,8 +143,8 @@ AC_DEFUN([BUILDSYS_SHARED_LIB], [
 			PLUGIN_CFLAGS=''
 			PLUGIN_LDFLAGS='-shared'
 			PLUGIN_SUFFIX='.dll'
-			INSTALL_LIB='${MKDIR_P} ${DESTDIR}${bindir} && ${INSTALL} -m 755 $$i ${DESTDIR}${bindir}/$$i && ${INSTALL} -m 755 $$i.a ${DESTDIR}${libdir}/$$i.a'
-			UNINSTALL_LIB='rm -f ${DESTDIR}${bindir}/$$i ${DESTDIR}${libdir}/$$i.a'
+			INSTALL_LIB='&& ${MKDIR_P} ${DESTDIR}${bindir} && ${INSTALL} -m 755 $$i ${DESTDIR}${bindir}/$$i && ${INSTALL} -m 755 $$i.a ${DESTDIR}${libdir}/$$i.a'
+			UNINSTALL_LIB='&& rm -f ${DESTDIR}${bindir}/$$i ${DESTDIR}${libdir}/$$i.a'
 			CLEAN_LIB='${LIB}.a'
 			;;
 		*)
@@ -157,8 +157,8 @@ AC_DEFUN([BUILDSYS_SHARED_LIB], [
 			PLUGIN_CFLAGS='-fPIC -DPIC'
 			PLUGIN_LDFLAGS='-shared'
 			PLUGIN_SUFFIX='.so'
-			INSTALL_LIB='${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR}.0 && ${LN_S} -f $$i.${LIB_MAJOR}.${LIB_MINOR}.0 ${DESTDIR}${libdir}/$$i.${LIB_MAJOR} && ${LN_S} -f $$i.${LIB_MAJOR}.${LIB_MINOR}.0 ${DESTDIR}${libdir}/$$i'
-			UNINSTALL_LIB='rm -f ${DESTDIR}${libdir}/$$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR} ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR}.0'
+			INSTALL_LIB='&& ${INSTALL} -m 755 $$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR}.0 && ${LN_S} -f $$i.${LIB_MAJOR}.${LIB_MINOR}.0 ${DESTDIR}${libdir}/$$i.${LIB_MAJOR} && ${LN_S} -f $$i.${LIB_MAJOR}.${LIB_MINOR}.0 ${DESTDIR}${libdir}/$$i'
+			UNINSTALL_LIB='&& rm -f ${DESTDIR}${libdir}/$$i ${DESTDIR}${libdir}/$$i.${LIB_MAJOR} ${DESTDIR}${libdir}/$$i.${LIB_MAJOR}.${LIB_MINOR}.0'
 			CLEAN_LIB=''
 			;;
 	esac
diff --git a/man/audacious.1.in b/man/audacious.1.in
index 167d8f0..b32b9c0 100644
--- a/man/audacious.1.in
+++ b/man/audacious.1.in
@@ -1,4 +1,4 @@
-.TH AUDACIOUS "1" "April 2009" "Version @PACKAGE_VERSION@" "Audacious"
+.TH AUDACIOUS "1" "April 2009" "Version @VERSION@" "Audacious"
 
 .SH NAME
 audacious \- an advanced audio player.
@@ -182,8 +182,6 @@ Control + Alt + w	Toggle rolling up equalizer
 .br
 Shift + Control + w	Toggle rolling up playlist
 .br
-Control + d	Toggle double size
-.br
 i	Display Song Information dialog
 .br
 Control + j	Display Jump to Time dialog
@@ -215,14 +213,14 @@ User's set of Audacious-specific GTK+ config settings. Options such as widget
 color and fonts sizes can be set here.
 .TP
 ~/.local/share/audacious/Skins, @datarootdir@/audacious/Skins
-Default location(s) where Audacious should look for skinfiles.
+Default location(s) where Audacious should look for skin files.
 .TP
 ~/.local/share/audacious/Plugins
 Location of user-installed plugins.
 .SH ENVIRONMENT
 .TP 12
 .B SKINSDIR
-Colon separated list of paths where Audacious should look for skinfiles.
+Colon separated list of paths where Audacious should look for skin files.
 .TP
 .B TARCMD
 Tar command supporting GNU tar style decompression.  Used for
diff --git a/man/audtool.1.in b/man/audtool.1.in
index 71cff5e..d2438f7 100644
--- a/man/audtool.1.in
+++ b/man/audtool.1.in
@@ -69,10 +69,10 @@ Go to the next song in the playlist.
 Go to the previous song in the playlist.
 .TP
 .I --playlist-addurl <uri>
-Adds a uri to the playlist.
+Adds a URI to the playlist.
 .TP
 .I --playlist-insurl <uri> <position>
-Inserts a url at specified position in the playlist.
+Inserts a URL at specified position in the playlist.
 .TP
 .I --playlist-delete <position>
 Deletes the song at <position> from the playlist.
@@ -119,6 +119,12 @@ Returns the status of playlist shuffle.
 .I --playlist-shuffle-toggle
 Toggles playlist shuffle.
 .TP
+.I --playlist-stop-after-status
+Queries whether the "stop after current song" option is set.
+.TP
+.I --playlist-stop-after-toggle
+Toggles the "stop after current song" option.
+.TP
 .I --playlist-tuple-data <fieldname> <position>
 Returns the value of a tuple field for a song in the playlist.
 .PP
@@ -131,7 +137,7 @@ Adds the song at <position> in the playlist to the playqueue.
 Removes the song at <position> in the playlist from the playqueue.
 .TP
 .I --playqueue-is-queued <position>
-Returns OK if the song at <postion> in the playtlist is queued.
+Returns OK if the song at <position> in the playlist is queued.
 .TP
 .I --playqueue-get-position <position>
 Returns the playqueue position of the song at <position> in the playlist.
@@ -178,10 +184,10 @@ Returns OK if audacious is stopped.
 Returns the playback status.
 .TP
 .I --playback-seek
-Performs an absolute seek in milliseconds.
+Performs an absolute seek in seconds.
 .TP
 .I --playback-seek-relative
-Performs a seek relative to the current position in milliseconds.
+Performs a seek relative to the current position in seconds.
 .PP
 .B "Volume control:"
 .TP
@@ -219,12 +225,6 @@ Sets the equalizer value in specified band.
 .I --mainwin-show <on/off>
 Shows/hides the main window.
 .TP
-.I --playlist-show <on/off>
-Shows/hides the playlist window.
-.TP
-.I --equalizer-show <on/off>
-Shows/hides the equalizer window.
-.TP
 .I --filebrowser-show <on/off>
 Shows/hides the filebrowser.
 .TP
@@ -237,14 +237,11 @@ Shows/hides the preferences window.
 .I --about-show <on/off>
 Shows/hides the about window.
 .TP
-.I --activate
-Activates and raises audacious.
-.TP
 .I --always-on-top <on/off>
 Enables/disables always on top setting.
 .TP
 .I --version
-Displays version information for the Audacious2 core.
+Displays Audacious version.
 .TP
 .I --shutdown
 Shuts down audacious.
@@ -260,7 +257,7 @@ Shows handlers list.
 Handlers may be prefixed with `\-\-' (GNU\-style long\-options) or not, your choice.
 .SH BUGS
 There are no known bugs in audtool at this time; if you find any please
-report them on www.atheme.org in the Audacious issue tracker.
+report them on www.redmine.audacious-media-player.org in the Audacious issue tracker.
 .SH AUTHORS
 .B audtool
 was written by George Averill <nhjm at nhjm.net> and William
@@ -275,7 +272,7 @@ under the terms of the GNU General Public License, Version 2 or any
 later version published by the Free Software Foundation.
 .PP
 The complete text of the GNU General Public License is available in the
-sourcecode of Audacious, and is typically included with binary packages
+source code of Audacious, and is typically included with binary packages
 as well.
 .PP
 If installed with an operating system, see your Operating System's
diff --git a/mkinstalldirs b/mkinstalldirs
deleted file mode 100644
index d2d5f21..0000000
--- a/mkinstalldirs
+++ /dev/null
@@ -1,111 +0,0 @@
-#! /bin/sh
-# mkinstalldirs --- make directory hierarchy
-# Author: Noah Friedman <friedman at prep.ai.mit.edu>
-# Created: 1993-05-16
-# Public domain
-
-errstatus=0
-dirmode=""
-
-usage="\
-Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..."
-
-# process command line arguments
-while test $# -gt 0 ; do
-  case $1 in
-    -h | --help | --h*)         # -h for help
-      echo "$usage" 1>&2
-      exit 0
-      ;;
-    -m)                         # -m PERM arg
-      shift
-      test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
-      dirmode=$1
-      shift
-      ;;
-    --)                         # stop option processing
-      shift
-      break
-      ;;
-    -*)                         # unknown option
-      echo "$usage" 1>&2
-      exit 1
-      ;;
-    *)                          # first non-opt arg
-      break
-      ;;
-  esac
-done
-
-for file
-do
-  if test -d "$file"; then
-    shift
-  else
-    break
-  fi
-done
-
-case $# in
-  0) exit 0 ;;
-esac
-
-case $dirmode in
-  '')
-    if mkdir -p -- . 2>/dev/null; then
-      echo "mkdir -p -- $*"
-      exec mkdir -p -- "$@"
-    fi
-    ;;
-  *)
-    if mkdir -m "$dirmode" -p -- . 2>/dev/null; then
-      echo "mkdir -m $dirmode -p -- $*"
-      exec mkdir -m "$dirmode" -p -- "$@"
-    fi
-    ;;
-esac
-
-for file
-do
-  set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
-  shift
-
-  pathcomp=
-  for d
-  do
-    pathcomp="$pathcomp$d"
-    case $pathcomp in
-      -*) pathcomp=./$pathcomp ;;
-    esac
-
-    if test ! -d "$pathcomp"; then
-      echo "mkdir $pathcomp"
-
-      mkdir "$pathcomp" || lasterr=$?
-
-      if test ! -d "$pathcomp"; then
-  	errstatus=$lasterr
-      else
-  	if test ! -z "$dirmode"; then
-	  echo "chmod $dirmode $pathcomp"
-    	  lasterr=""
-  	  chmod "$dirmode" "$pathcomp" || lasterr=$?
-
-  	  if test ! -z "$lasterr"; then
-  	    errstatus=$lasterr
-  	  fi
-  	fi
-      fi
-    fi
-
-    pathcomp="$pathcomp/"
-  done
-done
-
-exit $errstatus
-
-# Local Variables:
-# mode: shell-script
-# sh-indentation: 2
-# End:
-# mkinstalldirs ends here
diff --git a/contrib/win32/audacious.ico b/pixmaps/audacious.ico
old mode 100755
new mode 100644
similarity index 100%
copy from contrib/win32/audacious.ico
copy to pixmaps/audacious.ico
diff --git a/pixmaps/audacious.svg b/pixmaps/audacious.svg
old mode 100755
new mode 100644
diff --git a/po/Makefile b/po/Makefile
index ed96bc5..1e62a12 100644
--- a/po/Makefile
+++ b/po/Makefile
@@ -17,6 +17,8 @@ LOCALES = ast.po \
 	  de.po \
 	  el.po \
 	  es.po \
+	  es_AR.po \
+	  es_MX.po \
 	  et.po \
 	  eu.po \
 	  fi.po \
@@ -38,11 +40,13 @@ LOCALES = ast.po \
 	  ro.po \
 	  ru.po \
 	  sk.po \
+	  sl.po \
 	  sr at Latn.po \
 	  sr.po \
 	  sv.po \
 	  tr.po \
 	  uk.po \
+	  vi.po \
 	  zh_CN.po \
 	  zh_TW.po
 
@@ -55,7 +59,7 @@ update-pot:
 	@echo Updating $(POTTEMPLATE) ...
 	xgettext --default-domain=$(PACKAGE) --language=C \
 	--keyword=_ --keyword=N_ --from-code="utf-8" \
-	--msgid-bugs-address="http://jira.atheme.org/" \
+	--msgid-bugs-address="http://redmine.audacious-media-player.org/" \
 	--directory=.. --files-from=POTFILES.in -o $(POTTEMPLATE)
 
 update-po: update-pot
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 352760f..37c085f 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -1,27 +1,31 @@
 # Please don't update this file manually - use ./update-potfiles.sh instead!
+src/audacious/adder.c
 src/audacious/chardet.c
 src/audacious/credits.c
-src/audacious/drct.c
 src/audacious/equalizer_preset.c
-src/audacious/folder-add.c
 src/audacious/main.c
 src/audacious/playback.c
+src/audacious/playlist-files.c
 src/audacious/playlist-new.c
 src/audacious/ui_preferences.c
 src/audacious/util.c
 src/audtool/handlers_playlist.c
 src/audtool/handlers_vitals.c
+src/libaudcore/audstrings.c
 src/libaudcore/tuple.c
+src/libaudgui/about.c
 src/libaudgui/confirm.c
 src/libaudgui/effects-menu.c
 src/libaudgui/equalizer.c
 src/libaudgui/infopopup.c
 src/libaudgui/infowin.c
-src/libaudgui/ui_about.c
-src/libaudgui/ui_credits.c
+src/libaudgui/jump-to-time.c
+src/libaudgui/playlists.c
+src/libaudgui/queue-manager.c
 src/libaudgui/ui_fileopener.c
 src/libaudgui/ui_jumptotrack.c
 src/libaudgui/ui_playlist_manager.c
 src/libaudgui/ui_urlopener.c
+src/libaudgui/util.c
 src/libeggsmclient/eggdesktopfile.c
 src/libeggsmclient/eggsmclient.c
diff --git a/po/ast.po b/po/ast.po
index 2100ca0..c4715d1 100644
--- a/po/ast.po
+++ b/po/ast.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Audacious\n"
 "Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
+"POT-Creation-Date: 2011-07-05 22:45+0200\n"
 "PO-Revision-Date: 2010-07-18 21:16+0100\n"
 "Last-Translator: marquinos <marcos at softastur.org>\n"
 "Language-Team: Softastur <alministradores at softastur.org>\n"
@@ -18,6 +18,17 @@ msgstr ""
 "X-Poedit-Language: Asturian\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
+#: src/audacious/adder.c:71
+msgid "Searching ..."
+msgstr "Guetando ..."
+
+#: src/audacious/adder.c:99
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] "Alcontróse %d ficheru"
+msgstr[1] "Alcontráronse %d ficheros"
+
 #: src/audacious/chardet.c:37
 msgid "  (invalid UTF-8)"
 msgstr "  (UTF-8 inválidu)"
@@ -99,113 +110,113 @@ msgstr "Estoniu:"
 msgid "Finnish:"
 msgstr "Finlandés:"
 
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:220
 msgid "French:"
 msgstr "Francés:"
 
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:226
 msgid "German:"
 msgstr "Alemán:"
 
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:233
 msgid "Georgian:"
 msgstr "Xeorxanu:"
 
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:236
 msgid "Greek:"
 msgstr "Griegu:"
 
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:241
 msgid "Hindi:"
 msgstr "Hindú:"
 
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:244
 msgid "Hungarian:"
 msgstr "Húngaru:"
 
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:248
 msgid "Italian:"
 msgstr "Italianu:"
 
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:252
 msgid "Japanese:"
 msgstr "Xaponés:"
 
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:255
 msgid "Korean:"
 msgstr "Coreanu:"
 
-#: src/audacious/credits.c:256
+#: src/audacious/credits.c:258
 #, fuzzy
 msgid "Latvian:"
 msgstr "Croata:"
 
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:261
 msgid "Lithuanian:"
 msgstr "Lituanu:"
 
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:265
 msgid "Macedonian:"
 msgstr "Macedoniu:"
 
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:268
 msgid "Polish:"
 msgstr "Polacu:"
 
-#: src/audacious/credits.c:271
+#: src/audacious/credits.c:274
 #, fuzzy
 msgid "Portuguese:"
 msgstr "Portugués:"
 
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:277
 msgid "Romanian:"
 msgstr "Rumanu:"
 
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:281
 msgid "Russian:"
 msgstr "Rusu:"
 
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:285
 msgid "Serbian (Latin):"
 msgstr "Serbiu (Llatin):"
 
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:288
 msgid "Serbian (Cyrillic):"
 msgstr "Serbiu (Cirílicu):"
 
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:291
 msgid "Simplified Chinese:"
 msgstr "Chinu simplificáu:"
 
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:294
 msgid "Slovak:"
 msgstr "Eslovacu:"
 
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:297
 msgid "Spanish:"
 msgstr "Español:"
 
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:304
 msgid "Swedish:"
 msgstr "Suecu:"
 
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:307
 msgid "Traditional Chinese:"
 msgstr "Chinu tradicional:"
 
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:312
 msgid "Turkish:"
 msgstr "Turcu:"
 
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:316
 msgid "Ukrainian:"
 msgstr "Ucraín:"
 
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:319
 msgid "Welsh:"
 msgstr "Galés:"
 
-#: src/audacious/drct.c:254
+#: src/audacious/drct.c:256
 msgid "Temporary Playlist"
 msgstr "Llista de reproducción temporal"
 
@@ -214,79 +225,64 @@ msgstr "Llista de reproducción temporal"
 msgid "Error importing Winamp EQF file '%s'"
 msgstr "Fallu importando ficheru Winamp EQF  '%s'"
 
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr "Guetando ..."
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] "Alcontróse %d ficheru"
-msgstr[1] "Alcontráronse %d ficheros"
-
-#: src/audacious/main.c:247
+#: src/audacious/main.c:256
 msgid "Skip backwards in playlist"
 msgstr "Saltar haza darrera na llista de reproducción"
 
-#: src/audacious/main.c:248
+#: src/audacious/main.c:257
 msgid "Start playing current playlist"
 msgstr "Aniciar la reproducción de la llista de reproducción actual"
 
-#: src/audacious/main.c:249
+#: src/audacious/main.c:258
 msgid "Pause current song"
 msgstr "Posar la canción actual"
 
-#: src/audacious/main.c:250
+#: src/audacious/main.c:259
 msgid "Stop current song"
 msgstr "Parar la canción actual"
 
-#: src/audacious/main.c:251
+#: src/audacious/main.c:260
 msgid "Pause if playing, play otherwise"
 msgstr "Posar si se ta reproduciendo, o reproducir"
 
-#: src/audacious/main.c:252
+#: src/audacious/main.c:261
 msgid "Skip forward in playlist"
 msgstr "Saltar haza alantre na llista de reproducción"
 
-#: src/audacious/main.c:253
+#: src/audacious/main.c:262
 msgid "Display Jump to File dialog"
 msgstr "Amosar diálogu de Saltu al ficheru"
 
-#: src/audacious/main.c:254
+#: src/audacious/main.c:263
 #, fuzzy
 msgid "Add files to the playlist"
 msgstr "Amestar nuevos ficheros a una llista de reproducción temporal"
 
-#: src/audacious/main.c:255
+#: src/audacious/main.c:264
 msgid "Add new files to a temporary playlist"
 msgstr "Amestar nuevos ficheros a una llista de reproducción temporal"
 
-#: src/audacious/main.c:256
+#: src/audacious/main.c:265
 msgid "Display the main window"
 msgstr "Amosar la ventana principal"
 
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr "Amosar toles ventanes d'Audacious abiertes"
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:266
 msgid "Show version"
 msgstr "Amosar versión"
 
-#: src/audacious/main.c:259
+#: src/audacious/main.c:267
 msgid "Print debugging messages"
 msgstr ""
 
-#: src/audacious/main.c:260
+#: src/audacious/main.c:268
 msgid "FILE..."
 msgstr "FICHERU..."
 
-#: src/audacious/main.c:272
+#: src/audacious/main.c:280
 msgid "- play multimedia files"
 msgstr "- reproducir ficheros multimedia"
 
-#: src/audacious/main.c:282
+#: src/audacious/main.c:290
 #, c-format
 msgid ""
 "%s: %s\n"
@@ -295,7 +291,7 @@ msgstr ""
 "%s: %s\n"
 "Prueba `%s --help' pa más información.\n"
 
-#: src/audacious/main.c:395
+#: src/audacious/main.c:407
 msgid ""
 "Audacious seems to be already running but is not responding.  You can start "
 "another instance of the program, but please be warned that this can cause "
@@ -303,259 +299,232 @@ msgid ""
 "message.  Press OK to start Audacious or Cancel to quit."
 msgstr ""
 
-#: src/audacious/main.c:558
+#: src/audacious/main.c:572
 msgid "Audacious"
 msgstr "Audacious"
 
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:381
 #, c-format
 msgid "No decoder found for %s."
 msgstr "Nun s'alcontró decodificador pa %s."
 
-#: src/audacious/playback.c:519
+#: src/audacious/playback.c:531
 msgid "Buffering ..."
 msgstr "Buffering..."
 
-#: src/audacious/playlist-new.c:288
+#: src/audacious/playlist-new.c:303
 msgid "Untitled Playlist"
 msgstr "Llista de reproducción ensin títulu"
 
-#: src/audacious/ui_preferences.c:88
+#: src/audacious/ui_preferences.c:87
 msgid "Audio"
 msgstr "Audio"
 
-#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
-msgstr "Replay Gain"
-
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:88
 msgid "Network"
 msgstr "Rede"
 
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:89 src/audacious/ui_preferences.c:1556
 msgid "Playlist"
 msgstr "Llista de reproducción"
 
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:90
 msgid "Plugins"
 msgstr "Complementos"
 
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:204
 msgid "Artist"
 msgstr "Artista"
 
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:97 src/libaudgui/infopopup.c:206
 msgid "Album"
 msgstr "Álbum"
 
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:202
+#: src/libaudgui/ui_playlist_manager.c:263
 msgid "Title"
 msgstr "Títulu"
 
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:99
 msgid "Tracknumber"
 msgstr "Númberu de pista"
 
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:208
 msgid "Genre"
 msgstr "Xéneru"
 
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:101
 msgid "Filename"
 msgstr "Nome de ficheru"
 
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:102
 msgid "Filepath"
 msgstr "Camín hasta'l ficheru"
 
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:103
 msgid "Date"
 msgstr "Data"
 
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:104 src/libaudgui/infopopup.c:210
 msgid "Year"
 msgstr "Añu"
 
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:105
 msgid "Comment"
 msgstr "Comentariu"
 
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:106
 msgid "Codec"
 msgstr "Codec (formatu)"
 
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:107
 msgid "Quality"
 msgstr "Calidá"
 
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:112
 msgid "None"
 msgstr "dengún"
 
-#: src/audacious/ui_preferences.c:115
+#: src/audacious/ui_preferences.c:113
 msgid "Japanese"
 msgstr "xaponés"
 
-#: src/audacious/ui_preferences.c:116
+#: src/audacious/ui_preferences.c:114
 msgid "Taiwanese"
 msgstr "taiwanés"
 
-#: src/audacious/ui_preferences.c:117
+#: src/audacious/ui_preferences.c:115
 msgid "Chinese"
 msgstr "chinu"
 
-#: src/audacious/ui_preferences.c:118
+#: src/audacious/ui_preferences.c:116
 msgid "Korean"
 msgstr "coreanu"
 
-#: src/audacious/ui_preferences.c:119
+#: src/audacious/ui_preferences.c:117
 msgid "Russian"
 msgstr "rusu"
 
-#: src/audacious/ui_preferences.c:120
+#: src/audacious/ui_preferences.c:118
 msgid "Greek"
 msgstr "griegu"
 
-#: src/audacious/ui_preferences.c:121
+#: src/audacious/ui_preferences.c:119
 msgid "Hebrew"
 msgstr "hebréu"
 
-#: src/audacious/ui_preferences.c:122
+#: src/audacious/ui_preferences.c:120
 msgid "Turkish"
 msgstr "turcu"
 
-#: src/audacious/ui_preferences.c:123
+#: src/audacious/ui_preferences.c:121
 msgid "Arabic"
 msgstr "árabe"
 
-#: src/audacious/ui_preferences.c:124
+#: src/audacious/ui_preferences.c:122
 msgid "Polish"
 msgstr "Polacu:"
 
-#: src/audacious/ui_preferences.c:125
+#: src/audacious/ui_preferences.c:123
 #, fuzzy
 msgid "Baltic"
 msgstr "Celta"
 
-#: src/audacious/ui_preferences.c:126
+#: src/audacious/ui_preferences.c:124
 msgid "Universal"
 msgstr "universal"
 
 #: src/audacious/ui_preferences.c:146
-msgid "<b>Bit Depth</b>"
-msgstr "<b>Fondura de bit</b>"
+msgid "Single track mode"
+msgstr ""
 
 #: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr "Fondura de bit de salida:"
+#, fuzzy
+msgid "Album mode"
+msgstr "Álbum"
 
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
+#: src/audacious/ui_preferences.c:150
+msgid "<b>Output Settings</b>"
 msgstr ""
-"Tolos streams van convertise nesti bit depth.\n"
-"Esti tien de ser el máximu bit depth sofitáu\n"
-"de la tarxeta de soníu o del plugin de salida."
-
-#: src/audacious/ui_preferences.c:151
-msgid "<b>Volume Control</b>"
-msgstr "<b>Control de volume</b>"
 
 #: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr "Usar control de volume por software"
+#, fuzzy
+msgid "Bit depth:"
+msgstr "Fondura de bit de salida:"
 
-#: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
-"Usa'l control de volume por software. Esto pue ser útil pa situaciones au el "
-"to sistema d'audio nun sofita'l control de volume de reproducción."
+#: src/audacious/ui_preferences.c:155
+msgid "Buffer size:"
+msgstr "Tamañu del búfer:"
 
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
+#: src/audacious/ui_preferences.c:157
+msgid "ms"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
-msgstr "dB"
-
-#: src/audacious/ui_preferences.c:160
+#: src/audacious/ui_preferences.c:158
 #, fuzzy
-msgid "Amplify untagged files:"
-msgstr "- reproducir ficheros multimedia"
+msgid "Use software volume control (not recommended)"
+msgstr "Usar control de volume por software"
 
-#: src/audacious/ui_preferences.c:164
+#: src/audacious/ui_preferences.c:160
 #, fuzzy
 msgid "<b>Replay Gain</b>"
 msgstr "<b>Mou Replay Gain</b>"
 
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:161
 msgid "Enable Replay Gain"
 msgstr "Activar Replay Gain"
 
-#: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>Metadatos</b>"
-
-#: src/audacious/ui_preferences.c:168
-msgid "Single track mode"
+#: src/audacious/ui_preferences.c:164
+msgid "Prevent clipping (recommended)"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "Álbum"
-
-#: src/audacious/ui_preferences.c:172
+#: src/audacious/ui_preferences.c:166
 #, fuzzy
 msgid "<b>Adjust Levels</b>"
 msgstr "<b>Sistema d'audio</b>"
 
-#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "<b>Información emerxente</b>"
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify all files:"
+msgstr ""
 
-#: src/audacious/ui_preferences.c:176
+#: src/audacious/ui_preferences.c:169 src/audacious/ui_preferences.c:172
+msgid "dB"
+msgstr "dB"
+
+#: src/audacious/ui_preferences.c:170
 #, fuzzy
-msgid "Enable clipping prevention"
-msgstr "Activar prevención de clipping de picos d'información"
+msgid "Amplify untagged files:"
+msgstr "- reproducir ficheros multimedia"
 
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:175
 msgid "Proxy hostname:"
 msgstr "Sirvidor proxy:"
 
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:176
 msgid "Proxy port:"
 msgstr "Puertu del proxy:"
 
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:179
 msgid "Proxy username:"
 msgstr "Nome d'usuariu del proxy:"
 
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:180
 msgid "Proxy password:"
 msgstr "Contraseña del proxy:"
 
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:184
 msgid "<b>Proxy Configuration</b>"
 msgstr "<b>Configuración del Proxy</b>"
 
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:185
 msgid "Enable proxy usage"
 msgstr "Activar l'usu del proxy"
 
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:187
 msgid "Use authentication with proxy"
 msgstr "Usar autenticación col proxy"
 
-#: src/audacious/ui_preferences.c:197
+#: src/audacious/ui_preferences.c:189
 msgid ""
 "<span size=\"small\">Changing these settings will require a restart of "
 "Audacious.</span>"
@@ -563,15 +532,15 @@ msgstr ""
 "<span size=\"small\">Si camuda dalgún d'estos valores tendrás que reaniciar "
 "Audacious</span>"
 
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
 msgid "Auto character encoding detector for:"
 msgstr "Deteutor de codificáu automáticu de carauteres pa: "
 
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
 msgid "Fallback character encodings:"
 msgstr "Códigu de carauteres de fallback:"
 
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
 msgid ""
 "List of character encodings used for fall back conversion of metadata. If "
 "automatic character encoding detector failed or has been disabled, encodings "
@@ -583,46 +552,46 @@ msgstr ""
 "d'esta llista van tratase como candidatos al codificáu de metadata, y llueu "
 "va intentase la conversión fallback d'estos códigos a UTF-8."
 
-#: src/audacious/ui_preferences.c:213
+#: src/audacious/ui_preferences.c:205
 #, fuzzy
 msgid "<b>Behavior</b>"
 msgstr "<b>Fondura de bit</b>"
 
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:206
 msgid "Continue playback on startup"
 msgstr "Continuar la reproducción al aniciase"
 
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:208
 msgid "Advance when the current song is deleted"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:218
+#: src/audacious/ui_preferences.c:210
 #, fuzzy
 msgid "Clear the playlist when opening files"
 msgstr "Llimpiar la llista de reproducción al abrir nuevos ficheros"
 
-#: src/audacious/ui_preferences.c:220
+#: src/audacious/ui_preferences.c:212
 #, fuzzy
 msgid "Open files in a temporary playlist"
 msgstr "Amestar nuevos ficheros a una llista de reproducción temporal"
 
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:214
 msgid "<b>Metadata</b>"
 msgstr "<b>Metadatos</b>"
 
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:454
 msgid "Category"
 msgstr "Categoría"
 
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:682
 msgid "Popup Information Settings"
 msgstr "Configuración de la información emerxente"
 
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:691
 msgid "<b>Cover image retrieve</b>"
 msgstr "<b>Deteición d'imaxe de carátula</b>"
 
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:696
 msgid ""
 "While searching for the album's cover, Audacious looks for certain words in "
 "the filename. You can specify those words in the lists below, separated "
@@ -632,99 +601,99 @@ msgstr ""
 "del ficheru. Pueden especificase estes pallabres na llista d'abaxo, "
 "separtaes per aciu de comes."
 
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:713
 msgid "Exclude:"
 msgstr "Escluyir:"
 
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:720
 msgid "Include:"
 msgstr "Incluyir:"
 
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:737
 msgid "Recursively search for cover"
 msgstr "Gueta recursiva pa la tapa"
 
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:747
 msgid "Search depth: "
 msgstr "Profundidá de la gueta:"
 
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:761
 msgid "Use per-file cover"
 msgstr "Usar carátula por ficheru"
 
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:764
 msgid "<b>Miscellaneous</b>"
 msgstr "<b>Varios</b>"
 
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:773
 msgid "Show Progress bar for the current track"
 msgstr "Amosar barra de progresu de la pista actual"
 
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:783
 msgid "Delay until filepopup comes up: "
 msgstr "Retrasu pa l'apaición de la información del ficheru: "
 
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1283
 msgid "<b>Song Display</b>"
 msgstr "<b>Visualización de les canciones</b>"
 
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1292
 msgid "Show song numbers"
 msgstr "Amosar númberos de canción"
 
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1303
 msgid "Show leading zeroes (02:00 instead of 2:00)"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1325
 msgid "Show information about titlestring format"
 msgstr "Amosar información tocante al formatu del títulu"
 
-#: src/audacious/ui_preferences.c:1514
+#: src/audacious/ui_preferences.c:1339
 msgid "TITLE"
 msgstr "TÍTULU"
 
-#: src/audacious/ui_preferences.c:1515
+#: src/audacious/ui_preferences.c:1340
 msgid "ARTIST - TITLE"
 msgstr "ARTISTA - TÍTULU"
 
-#: src/audacious/ui_preferences.c:1516
+#: src/audacious/ui_preferences.c:1341
 msgid "ARTIST - ALBUM - TITLE"
 msgstr "ARTISTA - ÁLBUM - TÍTULU"
 
-#: src/audacious/ui_preferences.c:1517
+#: src/audacious/ui_preferences.c:1342
 msgid "ARTIST - ALBUM - TRACK. TITLE"
 msgstr "ARTISTA - ÁLBUM - PISTA. TÍTULU"
 
-#: src/audacious/ui_preferences.c:1518
+#: src/audacious/ui_preferences.c:1343
 msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
 msgstr "ARTISTA [ ÁLBUM ] - PISTA. TÍTULU"
 
-#: src/audacious/ui_preferences.c:1519
+#: src/audacious/ui_preferences.c:1344
 msgid "ALBUM - TITLE"
 msgstr "ÁLBUM - TÍTULU"
 
-#: src/audacious/ui_preferences.c:1520
+#: src/audacious/ui_preferences.c:1345
 msgid "Custom"
 msgstr "Personalizada"
 
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1354
 msgid "Custom string:"
 msgstr "Cadena personalizada:"
 
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1361
 msgid "Title format:"
 msgstr "Formatu del títulu:"
 
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1372
 msgid "<b>Popup Information</b>"
 msgstr "<b>Información emerxente</b>"
 
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1387
 msgid "Show popup information for playlist entries"
 msgstr "Amosar información emerxente pa les entraes de la llista de canciones"
 
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1388
 msgid ""
 "Toggles popup information window for the pointed entry in the playlist. The "
 "window shows title of song, name of album, genre, year of publish, track "
@@ -735,55 +704,48 @@ msgstr ""
 "álbum, xéneru, añu d'espublización, númberu de pista, duración de la pista y "
 "el trabayu."
 
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1397
 msgid "Edit settings for popup information"
 msgstr "Editar valores pa la información emerxente"
 
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>Sistema d'audio</b>"
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "Tamañu del búfer:"
-
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
+#: src/audacious/ui_preferences.c:1497
+#, fuzzy
+msgid "Output plugin:"
 msgstr "Complementu de salida actual:"
 
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
 #, fuzzy
 msgid "Transport"
 msgstr "Traductores"
 
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
 msgid "Input"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
 #, fuzzy
 msgid "Effect"
 msgstr "<b>Efeutos</b>"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
 #, fuzzy
 msgid "Visualization"
 msgstr "<b>Visualización</b>"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
 msgid "General"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1597
 msgid "Audacious Preferences"
 msgstr "Preferencies d'Audacious"
 
-#: src/audacious/util.c:161
+#: src/audacious/util.c:155
 #, c-format
 msgid "Could not create directory (%s): %s\n"
 msgstr "Nun pudo crease'l direutoriu (%s): %s\n"
 
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:264
 msgid "Position not found."
 msgstr "Nun s'alcuentra la posición."
 
@@ -801,10 +763,12 @@ msgstr ""
 
 #: src/libaudcore/tuple.c:689
 #, c-format
-msgid "%d channels"
-msgstr ""
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] ""
+msgstr[1] ""
 
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/confirm.c:73
 #, c-format
 msgid ""
 "Are you sure you want to close %s?  If you do, any changes made since the "
@@ -813,11 +777,11 @@ msgstr ""
 "Daveres quies zarrar %s? Si lo faes, va perdese cualesquier cambéu fechu "
 "dende que s'esportó la llista de reproducción."
 
-#: src/libaudgui/confirm.c:77
+#: src/libaudgui/confirm.c:86
 msgid "_Don't show this message again"
 msgstr "N_un amosar más esti mensax"
 
-#: src/libaudgui/confirm.c:115
+#: src/libaudgui/confirm.c:124
 #, fuzzy
 msgid "Rename Playlist"
 msgstr "Llista de reproducción"
@@ -883,11 +847,11 @@ msgstr "Ecualizador"
 msgid "Preamp"
 msgstr "Preamplificación"
 
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:212
 msgid "Track Number"
 msgstr "Númberu de pista"
 
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:214
 msgid "Track Length"
 msgstr "Duración de la pista:"
 
@@ -1119,6 +1083,30 @@ msgstr "%d kb/s"
 msgid "No info available for %s.\n"
 msgstr "Nun hai info disponible pa %s.\n"
 
+#: src/libaudgui/jump-to-time.c:75
+#, fuzzy
+msgid "Jump to Time"
+msgstr "Saltar a la pista"
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr ""
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Export Playlist"
+msgstr "Llista de reproducción temporal"
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Import Playlist"
+msgstr "Llista de reproducción temporal"
+
+#: src/libaudgui/playlists.c:71
+#, c-format
+msgid "Overwrite %s?"
+msgstr ""
+
 #: src/libaudgui/ui_about.c:71
 msgid "About Audacious"
 msgstr "Tocante a Audacious"
@@ -1179,19 +1167,19 @@ msgstr "Llimpi_ar"
 msgid "Close on Jump"
 msgstr "Zarrar al Saltar"
 
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:240
 msgid "Playlist Manager"
 msgstr "Alministrador de la llista de reproducción"
 
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:264
 msgid "Entries"
 msgstr "Entraess"
 
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:285
 msgid "_Rename"
 msgstr "Renomar"
 
-#: src/libaudgui/ui_playlist_manager.c:251
+#: src/libaudgui/ui_playlist_manager.c:309
 msgid "_Close dialog on activating playlist"
 msgstr "Zarrar diálogu al activar llista de reproducción"
 
@@ -1203,6 +1191,12 @@ msgstr ""
 msgid "Add URL"
 msgstr ""
 
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+
 #: src/libeggsmclient/eggdesktopfile.c:165
 msgid "File is not a valid .desktop file"
 msgstr "El ficheru nun ye un ficheru .desktop válidu"
@@ -1212,25 +1206,25 @@ msgstr "El ficheru nun ye un ficheru .desktop válidu"
 msgid "Unrecognized desktop file Version '%s'"
 msgstr "Versión del ficheru d'escritoriu non reconocida '%s'"
 
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:967
 #, c-format
 msgid "Starting %s"
 msgstr "Aniciando %s"
 
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1108
 msgid "Application does not accept documents on command line"
 msgstr "L'aplicación nun aceuta documentos na llinia de comandos"
 
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1176
 #, c-format
 msgid "Unrecognized launch option: %d"
 msgstr "Opción de cargar non reconocida: %d"
 
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1375
 msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
 msgstr "Nun se puede pasar documentu URIs a una entrada de desktop 'Type=Link'"
 
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1396
 msgid "Not a launchable item"
 msgstr "Nun ye un elementu llanzable"
 
@@ -1264,6 +1258,49 @@ msgstr "Opciones de la sesión alministrada"
 msgid "Show session management options"
 msgstr "Amosar opciones de la sesión alministrada"
 
+#~ msgid "Replay Gain"
+#~ msgstr "Replay Gain"
+
+#~ msgid "<b>Bit Depth</b>"
+#~ msgstr "<b>Fondura de bit</b>"
+
+#~ msgid ""
+#~ "All streams will be converted to this bit depth.\n"
+#~ "This should be the max supported bit depth of\n"
+#~ "the sound card or output plugin."
+#~ msgstr ""
+#~ "Tolos streams van convertise nesti bit depth.\n"
+#~ "Esti tien de ser el máximu bit depth sofitáu\n"
+#~ "de la tarxeta de soníu o del plugin de salida."
+
+#~ msgid "<b>Volume Control</b>"
+#~ msgstr "<b>Control de volume</b>"
+
+#~ msgid ""
+#~ "Use software volume control. This may be useful for situations where your "
+#~ "audio system does not support controlling the playback volume."
+#~ msgstr ""
+#~ "Usa'l control de volume por software. Esto pue ser útil pa situaciones au "
+#~ "el to sistema d'audio nun sofita'l control de volume de reproducción."
+
+#, fuzzy
+#~ msgid "<b>Mode</b>"
+#~ msgstr "<b>Metadatos</b>"
+
+#, fuzzy
+#~ msgid "<b>Clipping Prevention</b>"
+#~ msgstr "<b>Información emerxente</b>"
+
+#, fuzzy
+#~ msgid "Enable clipping prevention"
+#~ msgstr "Activar prevención de clipping de picos d'información"
+
+#~ msgid "<b>Audio System</b>"
+#~ msgstr "<b>Sistema d'audio</b>"
+
+#~ msgid "Display all open Audacious windows"
+#~ msgstr "Amosar toles ventanes d'Audacious abiertes"
+
 #~ msgid "%s: Unable to open display, exiting.\n"
 #~ msgstr "%s: Nun pudo abrise la pantalla, colando.\n"
 
diff --git a/po/audacious.pot b/po/audacious.pot
index 931a6ad..fdb4a3b 100644
--- a/po/audacious.pot
+++ b/po/audacious.pot
@@ -7,8 +7,8 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
+"Report-Msgid-Bugs-To: http://redmine.audacious-media-player.org/\n"
+"POT-Creation-Date: 2012-01-11 08:54-0500\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <LL at li.org>\n"
@@ -18,385 +18,408 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
 
-#: src/audacious/chardet.c:37
+#: src/audacious/adder.c:77
+msgid "Searching ..."
+msgstr ""
+
+#: src/audacious/adder.c:113
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] ""
+msgstr[1] ""
+
+#: src/audacious/chardet.c:39
 msgid "  (invalid UTF-8)"
 msgstr ""
 
-#: src/audacious/credits.c:35
+#: src/audacious/credits.c:37
 msgid "Core developers:"
 msgstr ""
 
-#: src/audacious/credits.c:49
+#: src/audacious/credits.c:51
 msgid "Graphics:"
 msgstr ""
 
-#: src/audacious/credits.c:54
+#: src/audacious/credits.c:56
 msgid "Default skin:"
 msgstr ""
 
-#: src/audacious/credits.c:60
+#: src/audacious/credits.c:62
 msgid "Plugin development:"
 msgstr ""
 
-#: src/audacious/credits.c:83
+#: src/audacious/credits.c:85
 msgid "Patch authors:"
 msgstr ""
 
-#: src/audacious/credits.c:126
+#: src/audacious/credits.c:131
 msgid "1.x developers:"
 msgstr ""
 
-#: src/audacious/credits.c:148
+#: src/audacious/credits.c:153
 msgid "BMP Developers:"
 msgstr ""
 
-#: src/audacious/credits.c:180
+#: src/audacious/credits.c:185
 msgid "Belarusian:"
 msgstr ""
 
-#: src/audacious/credits.c:183
+#: src/audacious/credits.c:188
 msgid "Basque:"
 msgstr ""
 
-#: src/audacious/credits.c:186
+#: src/audacious/credits.c:191
 msgid "Brazilian Portuguese:"
 msgstr ""
 
-#: src/audacious/credits.c:190
+#: src/audacious/credits.c:196
 msgid "Breton:"
 msgstr ""
 
-#: src/audacious/credits.c:193
+#: src/audacious/credits.c:199
 msgid "Bulgarian:"
 msgstr ""
 
-#: src/audacious/credits.c:196
+#: src/audacious/credits.c:202
 msgid "Catalan:"
 msgstr ""
 
-#: src/audacious/credits.c:199
+#: src/audacious/credits.c:206
 msgid "Chinese:"
 msgstr ""
 
-#: src/audacious/credits.c:202
+#: src/audacious/credits.c:209
 msgid "Croatian:"
 msgstr ""
 
-#: src/audacious/credits.c:205
+#: src/audacious/credits.c:212
 msgid "Czech:"
 msgstr ""
 
-#: src/audacious/credits.c:208
+#: src/audacious/credits.c:215
 msgid "Dutch:"
 msgstr ""
 
-#: src/audacious/credits.c:212
+#: src/audacious/credits.c:219
 msgid "Estonian:"
 msgstr ""
 
-#: src/audacious/credits.c:215
+#: src/audacious/credits.c:222
 msgid "Finnish:"
 msgstr ""
 
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:227
 msgid "French:"
 msgstr ""
 
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:233
 msgid "German:"
 msgstr ""
 
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:240
 msgid "Georgian:"
 msgstr ""
 
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:243
 msgid "Greek:"
 msgstr ""
 
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:248
 msgid "Hindi:"
 msgstr ""
 
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:251
 msgid "Hungarian:"
 msgstr ""
 
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:255
 msgid "Italian:"
 msgstr ""
 
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:260
 msgid "Japanese:"
 msgstr ""
 
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:263
 msgid "Korean:"
 msgstr ""
 
-#: src/audacious/credits.c:256
+#: src/audacious/credits.c:266
 msgid "Latvian:"
 msgstr ""
 
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:269
 msgid "Lithuanian:"
 msgstr ""
 
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:274
 msgid "Macedonian:"
 msgstr ""
 
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:277
+msgid "Mexican Spanish:"
+msgstr ""
+
+#: src/audacious/credits.c:280
 msgid "Polish:"
 msgstr ""
 
-#: src/audacious/credits.c:271
+#: src/audacious/credits.c:287
 msgid "Portuguese:"
 msgstr ""
 
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:290
 msgid "Romanian:"
 msgstr ""
 
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:294
 msgid "Russian:"
 msgstr ""
 
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:298
 msgid "Serbian (Latin):"
 msgstr ""
 
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:301
 msgid "Serbian (Cyrillic):"
 msgstr ""
 
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:305
 msgid "Simplified Chinese:"
 msgstr ""
 
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:308
 msgid "Slovak:"
 msgstr ""
 
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:312
 msgid "Spanish:"
 msgstr ""
 
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:320
 msgid "Swedish:"
 msgstr ""
 
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:323
 msgid "Traditional Chinese:"
 msgstr ""
 
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:329
 msgid "Turkish:"
 msgstr ""
 
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:333
 msgid "Ukrainian:"
 msgstr ""
 
-#: src/audacious/credits.c:316
-msgid "Welsh:"
+#: src/audacious/credits.c:338
+msgid "Vietnamese:"
 msgstr ""
 
-#: src/audacious/drct.c:254
-msgid "Temporary Playlist"
+#: src/audacious/credits.c:341
+msgid "Welsh:"
 msgstr ""
 
-#: src/audacious/equalizer_preset.c:186
+#: src/audacious/equalizer_preset.c:180
 #, c-format
 msgid "Error importing Winamp EQF file '%s'"
 msgstr ""
 
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr ""
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/audacious/main.c:247
+#: src/audacious/main.c:243
 msgid "Skip backwards in playlist"
 msgstr ""
 
-#: src/audacious/main.c:248
+#: src/audacious/main.c:244
 msgid "Start playing current playlist"
 msgstr ""
 
-#: src/audacious/main.c:249
+#: src/audacious/main.c:245
 msgid "Pause current song"
 msgstr ""
 
-#: src/audacious/main.c:250
+#: src/audacious/main.c:246
 msgid "Stop current song"
 msgstr ""
 
-#: src/audacious/main.c:251
+#: src/audacious/main.c:247
 msgid "Pause if playing, play otherwise"
 msgstr ""
 
-#: src/audacious/main.c:252
+#: src/audacious/main.c:248
 msgid "Skip forward in playlist"
 msgstr ""
 
-#: src/audacious/main.c:253
+#: src/audacious/main.c:249
 msgid "Display Jump to File dialog"
 msgstr ""
 
-#: src/audacious/main.c:254
+#: src/audacious/main.c:250
 msgid "Add files to the playlist"
 msgstr ""
 
-#: src/audacious/main.c:255
+#: src/audacious/main.c:251
 msgid "Add new files to a temporary playlist"
 msgstr ""
 
-#: src/audacious/main.c:256
+#: src/audacious/main.c:252
 msgid "Display the main window"
 msgstr ""
 
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr ""
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:253
 msgid "Show version"
 msgstr ""
 
-#: src/audacious/main.c:259
+#: src/audacious/main.c:254
 msgid "Print debugging messages"
 msgstr ""
 
-#: src/audacious/main.c:260
+#: src/audacious/main.c:255
+msgid "Headless mode (beta)"
+msgstr ""
+
+#: src/audacious/main.c:256
 msgid "FILE..."
 msgstr ""
 
-#: src/audacious/main.c:272
+#: src/audacious/main.c:268
 msgid "- play multimedia files"
 msgstr ""
 
-#: src/audacious/main.c:282
+#: src/audacious/main.c:278
 #, c-format
 msgid ""
 "%s: %s\n"
 "Try `%s --help' for more information.\n"
 msgstr ""
 
-#: src/audacious/main.c:395
-msgid ""
-"Audacious seems to be already running but is not responding.  You can start "
-"another instance of the program, but please be warned that this can cause "
-"data loss.  If Audacious is not running, you can safely ignore this "
-"message.  Press OK to start Audacious or Cancel to quit."
-msgstr ""
-
-#: src/audacious/main.c:558
+#: src/audacious/main.c:573
 msgid "Audacious"
 msgstr ""
 
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:307
 #, c-format
 msgid "No decoder found for %s."
 msgstr ""
 
-#: src/audacious/playback.c:519
-msgid "Buffering ..."
+#: src/audacious/playlist-files.c:53
+#, c-format
+msgid "Cannot %s %s: unsupported file extension."
 msgstr ""
 
-#: src/audacious/playlist-new.c:288
-msgid "Untitled Playlist"
+#: src/audacious/playlist-files.c:54
+msgid "save"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:88
-msgid "Audio"
+#: src/audacious/playlist-files.c:54
+msgid "load"
+msgstr ""
+
+#: src/audacious/playlist-new.c:131
+msgid "New Playlist"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
+#: src/audacious/playlist-new.c:132
+msgid "Now Playing"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/playlist-new.c:1630
+msgid ""
+"The playlist cannot be sorted because metadata scanning is still in progress "
+"(or has been disabled)."
+msgstr ""
+
+#: src/audacious/ui_preferences.c:85
+msgid "Audio"
+msgstr ""
+
+#: src/audacious/ui_preferences.c:86
 msgid "Network"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:87 src/audacious/ui_preferences.c:1603
 msgid "Playlist"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:88
 msgid "Plugins"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:94 src/libaudgui/infopopup.c:199
 msgid "Artist"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:95 src/libaudgui/infopopup.c:201
 msgid "Album"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:197
+#: src/libaudgui/ui_playlist_manager.c:279
 msgid "Title"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:97
 msgid "Tracknumber"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:203
 msgid "Genre"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:99
 msgid "Filename"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:100
 msgid "Filepath"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:101
 msgid "Date"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:205
 msgid "Year"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:103
 msgid "Comment"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:104
 msgid "Codec"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:105
 msgid "Quality"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:111
 msgid "None"
 msgstr ""
 
+#: src/audacious/ui_preferences.c:112
+msgid "Arabic"
+msgstr ""
+
+#: src/audacious/ui_preferences.c:113
+msgid "Baltic"
+msgstr ""
+
+#: src/audacious/ui_preferences.c:114
+msgid "Chinese"
+msgstr ""
+
 #: src/audacious/ui_preferences.c:115
-msgid "Japanese"
+msgid "Greek"
 msgstr ""
 
 #: src/audacious/ui_preferences.c:116
-msgid "Taiwanese"
+msgid "Hebrew"
 msgstr ""
 
 #: src/audacious/ui_preferences.c:117
-msgid "Chinese"
+msgid "Japanese"
 msgstr ""
 
 #: src/audacious/ui_preferences.c:118
@@ -404,782 +427,766 @@ msgid "Korean"
 msgstr ""
 
 #: src/audacious/ui_preferences.c:119
-msgid "Russian"
+msgid "Polish"
 msgstr ""
 
 #: src/audacious/ui_preferences.c:120
-msgid "Greek"
+msgid "Russian"
 msgstr ""
 
 #: src/audacious/ui_preferences.c:121
-msgid "Hebrew"
+msgid "Taiwanese"
 msgstr ""
 
 #: src/audacious/ui_preferences.c:122
 msgid "Turkish"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:123
-msgid "Arabic"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:124
-msgid "Polish"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:125
-msgid "Baltic"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:126
-msgid "Universal"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:146
-msgid "<b>Bit Depth</b>"
+#: src/audacious/ui_preferences.c:144
+msgid "Album mode"
 msgstr ""
 
 #: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
+msgid "<b>Output Settings</b>"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
-
-#: src/audacious/ui_preferences.c:151
-msgid "<b>Volume Control</b>"
+#: src/audacious/ui_preferences.c:149
+msgid "Bit depth:"
 msgstr ""
 
 #: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
+msgid "Buffer size:"
 msgstr ""
 
 #: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
+msgid "ms"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
+#: src/audacious/ui_preferences.c:155
+msgid "Use software volume control (not recommended)"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:160
-msgid "Amplify untagged files:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:164
+#: src/audacious/ui_preferences.c:157
 msgid "<b>Replay Gain</b>"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:158
 msgid "Enable Replay Gain"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:167
-msgid "<b>Mode</b>"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:168
-msgid "Single track mode"
+#: src/audacious/ui_preferences.c:161
+msgid "Prevent clipping (recommended)"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:170
-msgid "Album mode"
+#: src/audacious/ui_preferences.c:163
+msgid "<b>Adjust Levels</b>"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:172
-msgid "<b>Adjust Levels</b>"
+#: src/audacious/ui_preferences.c:164
+msgid "Amplify all files:"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:175
-msgid "<b>Clipping Prevention</b>"
+#: src/audacious/ui_preferences.c:166 src/audacious/ui_preferences.c:169
+msgid "dB"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:176
-msgid "Enable clipping prevention"
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify untagged files:"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:172
 msgid "Proxy hostname:"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:173
 msgid "Proxy port:"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:176
 msgid "Proxy username:"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:177
 msgid "Proxy password:"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:181
 msgid "<b>Proxy Configuration</b>"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:182
 msgid "Enable proxy usage"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:185
 msgid "Use authentication with proxy"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:197
-msgid ""
-"<span size=\"small\">Changing these settings will require a restart of "
-"Audacious.</span>"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
 msgid "Auto character encoding detector for:"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:198
 msgid "Fallback character encodings:"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:209
-msgid ""
-"List of character encodings used for fall back conversion of metadata. If "
-"automatic character encoding detector failed or has been disabled, encodings "
-"in this list would be treated as candidates of the encoding of metadata, and "
-"fall back conversion from these encodings to UTF-8 would be attempted."
-msgstr ""
-
-#: src/audacious/ui_preferences.c:213
+#: src/audacious/ui_preferences.c:202
 msgid "<b>Behavior</b>"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:203
 msgid "Continue playback on startup"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:205
 msgid "Advance when the current song is deleted"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:218
+#: src/audacious/ui_preferences.c:207
 msgid "Clear the playlist when opening files"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:220
+#: src/audacious/ui_preferences.c:209
 msgid "Open files in a temporary playlist"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:211
 msgid "<b>Metadata</b>"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:212
+msgid "Do not load metadata for songs until played"
+msgstr ""
+
+#: src/audacious/ui_preferences.c:230
+msgid "TITLE"
+msgstr ""
+
+#: src/audacious/ui_preferences.c:231
+msgid "ARTIST - TITLE"
+msgstr ""
+
+#: src/audacious/ui_preferences.c:232
+msgid "ARTIST - ALBUM - TITLE"
+msgstr ""
+
+#: src/audacious/ui_preferences.c:233
+msgid "ARTIST - ALBUM - TRACK. TITLE"
+msgstr ""
+
+#: src/audacious/ui_preferences.c:234
+msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
+msgstr ""
+
+#: src/audacious/ui_preferences.c:235
+msgid "ALBUM - TITLE"
+msgstr ""
+
+#: src/audacious/ui_preferences.c:556
 msgid "Category"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:780
 msgid "Popup Information Settings"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:789
 msgid "<b>Cover image retrieve</b>"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:794
 msgid ""
 "While searching for the album's cover, Audacious looks for certain words in "
 "the filename. You can specify those words in the lists below, separated "
 "using commas."
 msgstr ""
 
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:811
 msgid "Exclude:"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:818
 msgid "Include:"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:835
 msgid "Recursively search for cover"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:845
 msgid "Search depth: "
 msgstr ""
 
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:859
 msgid "Use per-file cover"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:862
 msgid "<b>Miscellaneous</b>"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:871
 msgid "Show Progress bar for the current track"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:881
 msgid "Delay until filepopup comes up: "
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1309
+msgid "Custom"
+msgstr ""
+
+#: src/audacious/ui_preferences.c:1352
 msgid "<b>Song Display</b>"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1361
 msgid "Show song numbers"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1372
 msgid "Show leading zeroes (02:00 instead of 2:00)"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1394
 msgid "Show information about titlestring format"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1514
-msgid "TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1515
-msgid "ARTIST - TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1516
-msgid "ARTIST - ALBUM - TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1517
-msgid "ARTIST - ALBUM - TRACK. TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1518
-msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1519
-msgid "ALBUM - TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1520
-msgid "Custom"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1410
 msgid "Custom string:"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1417
 msgid "Title format:"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1428
 msgid "<b>Popup Information</b>"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1443
 msgid "Show popup information for playlist entries"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1444
 msgid ""
 "Toggles popup information window for the pointed entry in the playlist. The "
 "window shows title of song, name of album, genre, year of publish, track "
 "number, track length, and artwork."
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1455
 msgid "Edit settings for popup information"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
+#: src/audacious/ui_preferences.c:1544
+msgid "Output plugin:"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1603
 msgid "Transport"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1603
 msgid "Input"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1604
 msgid "Effect"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1604
 msgid "Visualization"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1604
 msgid "General"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1644
 msgid "Audacious Preferences"
 msgstr ""
 
-#: src/audacious/util.c:161
+#: src/audacious/util.c:120
 #, c-format
 msgid "Could not create directory (%s): %s\n"
 msgstr ""
 
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:273
 msgid "Position not found."
 msgstr ""
 
-#: src/audtool/handlers_vitals.c:64
+#: src/audtool/handlers_vitals.c:63
 msgid "No song playing."
 msgstr ""
 
-#: src/libaudcore/tuple.c:685
+#: src/libaudcore/audstrings.c:199
+#, c-format
+msgid "Audio CD, track %s"
+msgstr ""
+
+#: src/libaudcore/tuple.c:536
 msgid "Mono"
 msgstr ""
 
-#: src/libaudcore/tuple.c:687
+#: src/libaudcore/tuple.c:538
 msgid "Stereo"
 msgstr ""
 
-#: src/libaudcore/tuple.c:689
+#: src/libaudcore/tuple.c:540
 #, c-format
-msgid "%d channels"
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] ""
+msgstr[1] ""
+
+#: src/libaudgui/about.c:52 src/libaudgui/about.c:115
+msgid "Credits"
+msgstr ""
+
+#: src/libaudgui/about.c:52
+msgid "Translators"
 msgstr ""
 
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/about.c:91
+msgid "About Audacious"
+msgstr ""
+
+#: src/libaudgui/confirm.c:76
 #, c-format
 msgid ""
 "Are you sure you want to close %s?  If you do, any changes made since the "
 "playlist was exported will be lost."
 msgstr ""
 
-#: src/libaudgui/confirm.c:77
+#: src/libaudgui/confirm.c:89
 msgid "_Don't show this message again"
 msgstr ""
 
-#: src/libaudgui/confirm.c:115
+#: src/libaudgui/confirm.c:126
 msgid "Rename Playlist"
 msgstr ""
 
-#: src/libaudgui/effects-menu.c:76
+#: src/libaudgui/effects-menu.c:74
 msgid "settings ..."
 msgstr ""
 
-#: src/libaudgui/equalizer.c:68
+#: src/libaudgui/equalizer.c:51
 msgid "_Enable"
 msgstr ""
 
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:123
 msgid "31 Hz"
 msgstr ""
 
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:123
 msgid "63 Hz"
 msgstr ""
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
 msgid "125 Hz"
 msgstr ""
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
 msgid "250 Hz"
 msgstr ""
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
 msgid "500 Hz"
 msgstr ""
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
 msgid "1 kHz"
 msgstr ""
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
 msgid "2 kHz"
 msgstr ""
 
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:125
 msgid "4 kHz"
 msgstr ""
 
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:125
 msgid "8 kHz"
 msgstr ""
 
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:125
 msgid "16 kHz"
 msgstr ""
 
-#: src/libaudgui/equalizer.c:147
+#: src/libaudgui/equalizer.c:130
 msgid "Equalizer"
 msgstr ""
 
-#: src/libaudgui/equalizer.c:163
+#: src/libaudgui/equalizer.c:146
 msgid "Preamp"
 msgstr ""
 
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:207
 msgid "Track Number"
 msgstr ""
 
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:209
 msgid "Track Length"
 msgstr ""
 
-#: src/libaudgui/infowin.c:77
+#: src/libaudgui/infowin.c:75
 msgid "Acid Jazz"
 msgstr ""
 
-#: src/libaudgui/infowin.c:78
+#: src/libaudgui/infowin.c:76
 msgid "Acid Rock"
 msgstr ""
 
-#: src/libaudgui/infowin.c:79
+#: src/libaudgui/infowin.c:77
 msgid "Ambient"
 msgstr ""
 
-#: src/libaudgui/infowin.c:80
+#: src/libaudgui/infowin.c:78
 msgid "Bebop"
 msgstr ""
 
-#: src/libaudgui/infowin.c:81
+#: src/libaudgui/infowin.c:79
 msgid "Bluegrass"
 msgstr ""
 
-#: src/libaudgui/infowin.c:82
+#: src/libaudgui/infowin.c:80
 msgid "Blues"
 msgstr ""
 
-#: src/libaudgui/infowin.c:83
+#: src/libaudgui/infowin.c:81
 msgid "Chamber Music"
 msgstr ""
 
-#: src/libaudgui/infowin.c:84
+#: src/libaudgui/infowin.c:82
 msgid "Classical"
 msgstr ""
 
-#: src/libaudgui/infowin.c:85
+#: src/libaudgui/infowin.c:83
 msgid "Country"
 msgstr ""
 
-#: src/libaudgui/infowin.c:86
+#: src/libaudgui/infowin.c:84
 msgid "Death Metal"
 msgstr ""
 
-#: src/libaudgui/infowin.c:87
+#: src/libaudgui/infowin.c:85
 msgid "Disco"
 msgstr ""
 
-#: src/libaudgui/infowin.c:88
+#: src/libaudgui/infowin.c:86
 msgid "Easy Listening"
 msgstr ""
 
-#: src/libaudgui/infowin.c:89
+#: src/libaudgui/infowin.c:87
 msgid "Folk"
 msgstr ""
 
-#: src/libaudgui/infowin.c:90
+#: src/libaudgui/infowin.c:88
 msgid "Funk"
 msgstr ""
 
-#: src/libaudgui/infowin.c:91
+#: src/libaudgui/infowin.c:89
 msgid "Gangsta Rap"
 msgstr ""
 
-#: src/libaudgui/infowin.c:92
+#: src/libaudgui/infowin.c:90
 msgid "Gospel"
 msgstr ""
 
-#: src/libaudgui/infowin.c:93
+#: src/libaudgui/infowin.c:91
 msgid "Grunge"
 msgstr ""
 
-#: src/libaudgui/infowin.c:94
+#: src/libaudgui/infowin.c:92
 msgid "Hard Rock"
 msgstr ""
 
-#: src/libaudgui/infowin.c:95
+#: src/libaudgui/infowin.c:93
 msgid "Heavy Metal"
 msgstr ""
 
-#: src/libaudgui/infowin.c:96
+#: src/libaudgui/infowin.c:94
 msgid "Hip-hop"
 msgstr ""
 
-#: src/libaudgui/infowin.c:97
+#: src/libaudgui/infowin.c:95
 msgid "House"
 msgstr ""
 
-#: src/libaudgui/infowin.c:98
+#: src/libaudgui/infowin.c:96
 msgid "Jazz"
 msgstr ""
 
-#: src/libaudgui/infowin.c:99
+#: src/libaudgui/infowin.c:97
 msgid "Jungle"
 msgstr ""
 
-#: src/libaudgui/infowin.c:100
+#: src/libaudgui/infowin.c:98
 msgid "Metal"
 msgstr ""
 
-#: src/libaudgui/infowin.c:101
+#: src/libaudgui/infowin.c:99
 msgid "New Age"
 msgstr ""
 
-#: src/libaudgui/infowin.c:102
+#: src/libaudgui/infowin.c:100
 msgid "New Wave"
 msgstr ""
 
-#: src/libaudgui/infowin.c:103
+#: src/libaudgui/infowin.c:101
 msgid "Noise"
 msgstr ""
 
-#: src/libaudgui/infowin.c:104
+#: src/libaudgui/infowin.c:102
 msgid "Pop"
 msgstr ""
 
-#: src/libaudgui/infowin.c:105
+#: src/libaudgui/infowin.c:103
 msgid "Punk Rock"
 msgstr ""
 
-#: src/libaudgui/infowin.c:106
+#: src/libaudgui/infowin.c:104
 msgid "Rap"
 msgstr ""
 
-#: src/libaudgui/infowin.c:107
+#: src/libaudgui/infowin.c:105
 msgid "Reggae"
 msgstr ""
 
-#: src/libaudgui/infowin.c:108
+#: src/libaudgui/infowin.c:106
 msgid "Rock"
 msgstr ""
 
-#: src/libaudgui/infowin.c:109
+#: src/libaudgui/infowin.c:107
 msgid "Rock and Roll"
 msgstr ""
 
-#: src/libaudgui/infowin.c:110
+#: src/libaudgui/infowin.c:108
 msgid "Rhythm and Blues"
 msgstr ""
 
-#: src/libaudgui/infowin.c:111
+#: src/libaudgui/infowin.c:109
 msgid "Ska"
 msgstr ""
 
-#: src/libaudgui/infowin.c:112
+#: src/libaudgui/infowin.c:110
 msgid "Soul"
 msgstr ""
 
-#: src/libaudgui/infowin.c:113
+#: src/libaudgui/infowin.c:111
 msgid "Swing"
 msgstr ""
 
-#: src/libaudgui/infowin.c:114
+#: src/libaudgui/infowin.c:112
 msgid "Techno"
 msgstr ""
 
-#: src/libaudgui/infowin.c:115
+#: src/libaudgui/infowin.c:113
 msgid "Trip-hop"
 msgstr ""
 
-#: src/libaudgui/infowin.c:175 src/libaudgui/infowin.c:361
-#: src/libaudgui/infowin.c:364 src/libaudgui/infowin.c:367
+#: src/libaudgui/infowin.c:177 src/libaudgui/infowin.c:363
+#: src/libaudgui/infowin.c:366 src/libaudgui/infowin.c:369
 msgid "<span size=\"small\">n/a</span>"
 msgstr ""
 
-#: src/libaudgui/infowin.c:265
+#: src/libaudgui/infowin.c:267
 msgid "Metadata updated successfully"
 msgstr ""
 
-#: src/libaudgui/infowin.c:270
+#: src/libaudgui/infowin.c:272
 msgid "Metadata updating failed"
 msgstr ""
 
-#: src/libaudgui/infowin.c:318
+#: src/libaudgui/infowin.c:320
 msgid "Track Information"
 msgstr ""
 
-#: src/libaudgui/infowin.c:350
+#: src/libaudgui/infowin.c:352
 msgid "<span size=\"small\">Format:</span>"
 msgstr ""
 
-#: src/libaudgui/infowin.c:354
+#: src/libaudgui/infowin.c:356
 msgid "<span size=\"small\">Quality:</span>"
 msgstr ""
 
-#: src/libaudgui/infowin.c:357
+#: src/libaudgui/infowin.c:359
 msgid "<span size=\"small\">Bitrate:</span>"
 msgstr ""
 
-#: src/libaudgui/infowin.c:387
+#: src/libaudgui/infowin.c:389
 msgid "<span size=\"small\">Title</span>"
 msgstr ""
 
-#: src/libaudgui/infowin.c:399
+#: src/libaudgui/infowin.c:401
 msgid "<span size=\"small\">Artist</span>"
 msgstr ""
 
-#: src/libaudgui/infowin.c:411
+#: src/libaudgui/infowin.c:413
 msgid "<span size=\"small\">Album</span>"
 msgstr ""
 
-#: src/libaudgui/infowin.c:423
+#: src/libaudgui/infowin.c:425
 msgid "<span size=\"small\">Comment</span>"
 msgstr ""
 
-#: src/libaudgui/infowin.c:435
+#: src/libaudgui/infowin.c:437
 msgid "<span size=\"small\">Genre</span>"
 msgstr ""
 
-#: src/libaudgui/infowin.c:456
+#: src/libaudgui/infowin.c:458
 msgid "<span size=\"small\">Year</span>"
 msgstr ""
 
-#: src/libaudgui/infowin.c:467
+#: src/libaudgui/infowin.c:469
 msgid "<span size=\"small\">Track Number</span>"
 msgstr ""
 
-#: src/libaudgui/infowin.c:549
+#: src/libaudgui/infowin.c:548
 #, c-format
 msgid "%d kb/s"
 msgstr ""
 
-#: src/libaudgui/infowin.c:579
+#: src/libaudgui/infowin.c:575
 #, c-format
 msgid "No info available for %s.\n"
 msgstr ""
 
-#: src/libaudgui/ui_about.c:71
-msgid "About Audacious"
+#: src/libaudgui/jump-to-time.c:72
+msgid "Jump to Time"
 msgstr ""
 
-#: src/libaudgui/ui_about.c:93 src/libaudgui/ui_credits.c:122
-msgid "Credits"
+#: src/libaudgui/jump-to-time.c:87
+msgid "mm:ss"
 msgstr ""
 
-#: src/libaudgui/ui_credits.c:126
-msgid "Translators"
+#: src/libaudgui/playlists.c:33
+msgid "Export Playlist"
+msgstr ""
+
+#: src/libaudgui/playlists.c:33
+msgid "Import Playlist"
+msgstr ""
+
+#: src/libaudgui/playlists.c:66
+#, c-format
+msgid "Overwrite %s?"
+msgstr ""
+
+#: src/libaudgui/queue-manager.c:196
+msgid "Queue Manager"
 msgstr ""
 
-#: src/libaudgui/ui_fileopener.c:108
+#: src/libaudgui/ui_fileopener.c:109
 msgid "Open Files"
 msgstr ""
 
-#: src/libaudgui/ui_fileopener.c:108
+#: src/libaudgui/ui_fileopener.c:109
 msgid "Add Files"
 msgstr ""
 
-#: src/libaudgui/ui_fileopener.c:110
+#: src/libaudgui/ui_fileopener.c:111
 msgid "Close dialog on Open"
 msgstr ""
 
-#: src/libaudgui/ui_fileopener.c:110
+#: src/libaudgui/ui_fileopener.c:111
 msgid "Close dialog on Add"
 msgstr ""
 
-#: src/libaudgui/ui_jumptotrack.c:133
-msgid "Un_queue"
+#: src/libaudgui/ui_jumptotrack.c:109 src/libaudgui/ui_jumptotrack.c:117
+#: src/libaudgui/ui_jumptotrack.c:326
+msgid "_Queue"
 msgstr ""
 
-#: src/libaudgui/ui_jumptotrack.c:135 src/libaudgui/ui_jumptotrack.c:512
-msgid "_Queue"
+#: src/libaudgui/ui_jumptotrack.c:115
+msgid "Un_queue"
 msgstr ""
 
-#: src/libaudgui/ui_jumptotrack.c:399
-msgid "Jump to Track"
+#: src/libaudgui/ui_jumptotrack.c:258
+msgid "Jump to Song"
 msgstr ""
 
-#: src/libaudgui/ui_jumptotrack.c:442
+#: src/libaudgui/ui_jumptotrack.c:281
 msgid "Filter: "
 msgstr ""
 
-#: src/libaudgui/ui_jumptotrack.c:443
+#: src/libaudgui/ui_jumptotrack.c:282
 msgid "_Filter:"
 msgstr ""
 
-#: src/libaudgui/ui_jumptotrack.c:461
+#: src/libaudgui/ui_jumptotrack.c:292
 msgid "Remember"
 msgstr ""
 
-#: src/libaudgui/ui_jumptotrack.c:470
+#: src/libaudgui/ui_jumptotrack.c:299
 msgid "Clea_r"
 msgstr ""
 
-#: src/libaudgui/ui_jumptotrack.c:504
+#: src/libaudgui/ui_jumptotrack.c:319
 msgid "Close on Jump"
 msgstr ""
 
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:253
 msgid "Playlist Manager"
 msgstr ""
 
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:280
 msgid "Entries"
 msgstr ""
 
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:301
 msgid "_Rename"
 msgstr ""
 
-#: src/libaudgui/ui_playlist_manager.c:251
+#: src/libaudgui/ui_playlist_manager.c:325
 msgid "_Close dialog on activating playlist"
 msgstr ""
 
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:48
 msgid "Open URL"
 msgstr ""
 
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:48
 msgid "Add URL"
 msgstr ""
 
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+
 #: src/libeggsmclient/eggdesktopfile.c:165
 msgid "File is not a valid .desktop file"
 msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:188
+#: src/libeggsmclient/eggdesktopfile.c:191
 #, c-format
 msgid "Unrecognized desktop file Version '%s'"
 msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:974
 #, c-format
 msgid "Starting %s"
 msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1116
 msgid "Application does not accept documents on command line"
 msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1184
 #, c-format
 msgid "Unrecognized launch option: %d"
 msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1391
 msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
 msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1412
 msgid "Not a launchable item"
 msgstr ""
 
diff --git a/po/be.po b/po/be.po
index bd9a56e..cbfbb87 100644
--- a/po/be.po
+++ b/po/be.po
@@ -5,7 +5,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
+"POT-Creation-Date: 2011-07-05 22:45+0200\n"
 "PO-Revision-Date: 2009-12-24 21:10+0200\n"
 "Last-Translator: Darafei Praliaskouski <komzpa at gmail.com>\n"
 "Language-Team: Belarusian <i18n at mova.org>\n"
@@ -17,6 +17,18 @@ msgstr ""
 "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
 "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
 
+#: src/audacious/adder.c:71
+msgid "Searching ..."
+msgstr ""
+
+#: src/audacious/adder.c:99
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] "%d файл знойдзены"
+msgstr[1] "%d файлы знойдзена"
+msgstr[2] "%d файлаў знойдзена"
+
 #: src/audacious/chardet.c:37
 msgid "  (invalid UTF-8)"
 msgstr ""
@@ -98,113 +110,113 @@ msgstr "Эстонская:"
 msgid "Finnish:"
 msgstr "Фінская:"
 
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:220
 msgid "French:"
 msgstr "Французская:"
 
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:226
 msgid "German:"
 msgstr "Нямецкая:"
 
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:233
 msgid "Georgian:"
 msgstr "Грузінская:"
 
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:236
 msgid "Greek:"
 msgstr "Грэцкая:"
 
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:241
 msgid "Hindi:"
 msgstr "Хіндзі:"
 
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:244
 msgid "Hungarian:"
 msgstr "Венгерская:"
 
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:248
 msgid "Italian:"
 msgstr "Італьянская:"
 
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:252
 msgid "Japanese:"
 msgstr "Японская:"
 
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:255
 msgid "Korean:"
 msgstr "Карэйская:"
 
-#: src/audacious/credits.c:256
+#: src/audacious/credits.c:258
 #, fuzzy
 msgid "Latvian:"
 msgstr "Харвацкая:"
 
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:261
 msgid "Lithuanian:"
 msgstr "Літоўская:"
 
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:265
 msgid "Macedonian:"
 msgstr "Македонская:"
 
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:268
 msgid "Polish:"
 msgstr "Польская:"
 
-#: src/audacious/credits.c:271
+#: src/audacious/credits.c:274
 #, fuzzy
 msgid "Portuguese:"
 msgstr "Партугальская:"
 
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:277
 msgid "Romanian:"
 msgstr "Румынская:"
 
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:281
 msgid "Russian:"
 msgstr "Расійская:"
 
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:285
 msgid "Serbian (Latin):"
 msgstr "Сербская (лацінка):"
 
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:288
 msgid "Serbian (Cyrillic):"
 msgstr "Сербская (кірыліца):"
 
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:291
 msgid "Simplified Chinese:"
 msgstr "Кітайская спрошчаная:"
 
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:294
 msgid "Slovak:"
 msgstr "Славацкая:"
 
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:297
 msgid "Spanish:"
 msgstr "Іспанская:"
 
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:304
 msgid "Swedish:"
 msgstr "Шведская:"
 
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:307
 msgid "Traditional Chinese:"
 msgstr "Кітайская традыцыйная:"
 
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:312
 msgid "Turkish:"
 msgstr "Турэцкая:"
 
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:316
 msgid "Ukrainian:"
 msgstr "Украінская:"
 
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:319
 msgid "Welsh:"
 msgstr "Валійская:"
 
-#: src/audacious/drct.c:254
+#: src/audacious/drct.c:256
 msgid "Temporary Playlist"
 msgstr ""
 
@@ -213,86 +225,70 @@ msgstr ""
 msgid "Error importing Winamp EQF file '%s'"
 msgstr ""
 
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr ""
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] "%d файл знойдзены"
-msgstr[1] "%d файлы знойдзена"
-msgstr[2] "%d файлаў знойдзена"
-
-#: src/audacious/main.c:247
+#: src/audacious/main.c:256
 msgid "Skip backwards in playlist"
 msgstr ""
 
-#: src/audacious/main.c:248
+#: src/audacious/main.c:257
 msgid "Start playing current playlist"
 msgstr ""
 
-#: src/audacious/main.c:249
+#: src/audacious/main.c:258
 msgid "Pause current song"
 msgstr ""
 
-#: src/audacious/main.c:250
+#: src/audacious/main.c:259
 msgid "Stop current song"
 msgstr ""
 
-#: src/audacious/main.c:251
+#: src/audacious/main.c:260
 msgid "Pause if playing, play otherwise"
 msgstr ""
 
-#: src/audacious/main.c:252
+#: src/audacious/main.c:261
 msgid "Skip forward in playlist"
 msgstr ""
 
-#: src/audacious/main.c:253
+#: src/audacious/main.c:262
 msgid "Display Jump to File dialog"
 msgstr ""
 
-#: src/audacious/main.c:254
+#: src/audacious/main.c:263
 msgid "Add files to the playlist"
 msgstr ""
 
-#: src/audacious/main.c:255
+#: src/audacious/main.c:264
 msgid "Add new files to a temporary playlist"
 msgstr ""
 
-#: src/audacious/main.c:256
+#: src/audacious/main.c:265
 msgid "Display the main window"
 msgstr ""
 
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr ""
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:266
 msgid "Show version"
 msgstr ""
 
-#: src/audacious/main.c:259
+#: src/audacious/main.c:267
 msgid "Print debugging messages"
 msgstr ""
 
-#: src/audacious/main.c:260
+#: src/audacious/main.c:268
 msgid "FILE..."
 msgstr ""
 
-#: src/audacious/main.c:272
+#: src/audacious/main.c:280
 msgid "- play multimedia files"
 msgstr ""
 
-#: src/audacious/main.c:282
+#: src/audacious/main.c:290
 #, c-format
 msgid ""
 "%s: %s\n"
 "Try `%s --help' for more information.\n"
 msgstr ""
 
-#: src/audacious/main.c:395
+#: src/audacious/main.c:407
 msgid ""
 "Audacious seems to be already running but is not responding.  You can start "
 "another instance of the program, but please be warned that this can cause "
@@ -300,262 +296,241 @@ msgid ""
 "message.  Press OK to start Audacious or Cancel to quit."
 msgstr ""
 
-#: src/audacious/main.c:558
+#: src/audacious/main.c:572
 msgid "Audacious"
 msgstr ""
 
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:381
 #, c-format
 msgid "No decoder found for %s."
 msgstr ""
 
-#: src/audacious/playback.c:519
+#: src/audacious/playback.c:531
 msgid "Buffering ..."
 msgstr ""
 
-#: src/audacious/playlist-new.c:288
+#: src/audacious/playlist-new.c:303
 msgid "Untitled Playlist"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:88
+#: src/audacious/ui_preferences.c:87
 msgid "Audio"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:88
 msgid "Network"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:89 src/audacious/ui_preferences.c:1556
 msgid "Playlist"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:90
 msgid "Plugins"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:204
 msgid "Artist"
 msgstr "Выканаўца"
 
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:97 src/libaudgui/infopopup.c:206
 msgid "Album"
 msgstr "Альбом"
 
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:202
+#: src/libaudgui/ui_playlist_manager.c:263
 msgid "Title"
 msgstr "Назва"
 
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:99
 msgid "Tracknumber"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:208
 msgid "Genre"
 msgstr "Жанр"
 
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:101
 msgid "Filename"
 msgstr "Імя файла"
 
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:102
 msgid "Filepath"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:103
 msgid "Date"
 msgstr "Дата"
 
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:104 src/libaudgui/infopopup.c:210
 msgid "Year"
 msgstr "Год"
 
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:105
 msgid "Comment"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:106
 msgid "Codec"
 msgstr "Кодэк"
 
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:107
 msgid "Quality"
 msgstr "Якасць"
 
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:112
 msgid "None"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:115
+#: src/audacious/ui_preferences.c:113
 msgid "Japanese"
 msgstr "Японская"
 
-#: src/audacious/ui_preferences.c:116
+#: src/audacious/ui_preferences.c:114
 msgid "Taiwanese"
 msgstr "Кітайская (традыцыйная)"
 
-#: src/audacious/ui_preferences.c:117
+#: src/audacious/ui_preferences.c:115
 msgid "Chinese"
 msgstr "Кітайская (спрошчаная)"
 
-#: src/audacious/ui_preferences.c:118
+#: src/audacious/ui_preferences.c:116
 msgid "Korean"
 msgstr "Карэйская"
 
-#: src/audacious/ui_preferences.c:119
+#: src/audacious/ui_preferences.c:117
 msgid "Russian"
 msgstr "Руская"
 
-#: src/audacious/ui_preferences.c:120
+#: src/audacious/ui_preferences.c:118
 msgid "Greek"
 msgstr "Грэцкая"
 
-#: src/audacious/ui_preferences.c:121
+#: src/audacious/ui_preferences.c:119
 msgid "Hebrew"
 msgstr "Іўрыт"
 
-#: src/audacious/ui_preferences.c:122
+#: src/audacious/ui_preferences.c:120
 msgid "Turkish"
 msgstr "Турэцкая"
 
-#: src/audacious/ui_preferences.c:123
+#: src/audacious/ui_preferences.c:121
 msgid "Arabic"
 msgstr "Арабская"
 
-#: src/audacious/ui_preferences.c:124
+#: src/audacious/ui_preferences.c:122
 #, fuzzy
 msgid "Polish"
 msgstr "Польская:"
 
-#: src/audacious/ui_preferences.c:125
+#: src/audacious/ui_preferences.c:123
 msgid "Baltic"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:126
+#: src/audacious/ui_preferences.c:124
 msgid "Universal"
 msgstr ""
 
 #: src/audacious/ui_preferences.c:146
-msgid "<b>Bit Depth</b>"
+msgid "Single track mode"
 msgstr ""
 
 #: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr ""
+#, fuzzy
+msgid "Album mode"
+msgstr "Альбом"
 
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
+#: src/audacious/ui_preferences.c:150
+msgid "<b>Output Settings</b>"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:151
-msgid "<b>Volume Control</b>"
+#: src/audacious/ui_preferences.c:152
+msgid "Bit depth:"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
+#: src/audacious/ui_preferences.c:155
+msgid "Buffer size:"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
+#: src/audacious/ui_preferences.c:157
+msgid "ms"
 msgstr ""
 
 #: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
+msgid "Use software volume control (not recommended)"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
-msgstr "дБ"
-
 #: src/audacious/ui_preferences.c:160
-msgid "Amplify untagged files:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:164
 msgid "<b>Replay Gain</b>"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:161
 msgid "Enable Replay Gain"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:167
-msgid "<b>Mode</b>"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:168
-msgid "Single track mode"
+#: src/audacious/ui_preferences.c:164
+msgid "Prevent clipping (recommended)"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "Альбом"
-
-#: src/audacious/ui_preferences.c:172
+#: src/audacious/ui_preferences.c:166
 msgid "<b>Adjust Levels</b>"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:175
-msgid "<b>Clipping Prevention</b>"
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify all files:"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:176
-msgid "Enable clipping prevention"
+#: src/audacious/ui_preferences.c:169 src/audacious/ui_preferences.c:172
+msgid "dB"
+msgstr "дБ"
+
+#: src/audacious/ui_preferences.c:170
+msgid "Amplify untagged files:"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:175
 msgid "Proxy hostname:"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:176
 msgid "Proxy port:"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:179
 msgid "Proxy username:"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:180
 msgid "Proxy password:"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:184
 msgid "<b>Proxy Configuration</b>"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:185
 msgid "Enable proxy usage"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:187
 msgid "Use authentication with proxy"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:197
+#: src/audacious/ui_preferences.c:189
 msgid ""
 "<span size=\"small\">Changing these settings will require a restart of "
 "Audacious.</span>"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
 msgid "Auto character encoding detector for:"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
 msgid "Fallback character encodings:"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
 msgid ""
 "List of character encodings used for fall back conversion of metadata. If "
 "automatic character encoding detector failed or has been disabled, encodings "
@@ -563,195 +538,187 @@ msgid ""
 "fall back conversion from these encodings to UTF-8 would be attempted."
 msgstr ""
 
-#: src/audacious/ui_preferences.c:213
+#: src/audacious/ui_preferences.c:205
 msgid "<b>Behavior</b>"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:206
 msgid "Continue playback on startup"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:208
 msgid "Advance when the current song is deleted"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:218
+#: src/audacious/ui_preferences.c:210
 msgid "Clear the playlist when opening files"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:220
+#: src/audacious/ui_preferences.c:212
 msgid "Open files in a temporary playlist"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:214
 msgid "<b>Metadata</b>"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:454
 msgid "Category"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:682
 msgid "Popup Information Settings"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:691
 msgid "<b>Cover image retrieve</b>"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:696
 msgid ""
 "While searching for the album's cover, Audacious looks for certain words in "
 "the filename. You can specify those words in the lists below, separated "
 "using commas."
 msgstr ""
 
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:713
 msgid "Exclude:"
 msgstr "Выключаючы:"
 
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:720
 msgid "Include:"
 msgstr "Улучаючы:"
 
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:737
 msgid "Recursively search for cover"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:747
 msgid "Search depth: "
 msgstr "Глыбіня пошуку: "
 
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:761
 msgid "Use per-file cover"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:764
 msgid "<b>Miscellaneous</b>"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:773
 msgid "Show Progress bar for the current track"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:783
 msgid "Delay until filepopup comes up: "
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1283
 msgid "<b>Song Display</b>"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1292
 msgid "Show song numbers"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1303
 msgid "Show leading zeroes (02:00 instead of 2:00)"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1325
 msgid "Show information about titlestring format"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1514
+#: src/audacious/ui_preferences.c:1339
 msgid "TITLE"
 msgstr "НАЗВА"
 
-#: src/audacious/ui_preferences.c:1515
+#: src/audacious/ui_preferences.c:1340
 msgid "ARTIST - TITLE"
 msgstr "ВЫКАНАЎЦА - НАЗВА"
 
-#: src/audacious/ui_preferences.c:1516
+#: src/audacious/ui_preferences.c:1341
 msgid "ARTIST - ALBUM - TITLE"
 msgstr "ВЫКАНАЎЦА - АЛЬБОМ - НАЗВА"
 
-#: src/audacious/ui_preferences.c:1517
+#: src/audacious/ui_preferences.c:1342
 msgid "ARTIST - ALBUM - TRACK. TITLE"
 msgstr "ВЫКАНАЎЦА - АЛЬБОМ - НУМАР. НАЗВА"
 
-#: src/audacious/ui_preferences.c:1518
+#: src/audacious/ui_preferences.c:1343
 msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
 msgstr "ВЫКАНАЎЦА [ АЛЬБОМ ] - НУМАР. НАЗВА"
 
-#: src/audacious/ui_preferences.c:1519
+#: src/audacious/ui_preferences.c:1344
 msgid "ALBUM - TITLE"
 msgstr "АЛЬБОМ - НАЗВА"
 
-#: src/audacious/ui_preferences.c:1520
+#: src/audacious/ui_preferences.c:1345
 msgid "Custom"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1354
 msgid "Custom string:"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1361
 msgid "Title format:"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1372
 msgid "<b>Popup Information</b>"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1387
 msgid "Show popup information for playlist entries"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1388
 msgid ""
 "Toggles popup information window for the pointed entry in the playlist. The "
 "window shows title of song, name of album, genre, year of publish, track "
 "number, track length, and artwork."
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1397
 msgid "Edit settings for popup information"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
+#: src/audacious/ui_preferences.c:1497
+msgid "Output plugin:"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
 #, fuzzy
 msgid "Transport"
 msgstr "Перакладчыкі"
 
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
 msgid "Input"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
 msgid "Effect"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
 msgid "Visualization"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
 msgid "General"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1597
 msgid "Audacious Preferences"
 msgstr ""
 
-#: src/audacious/util.c:161
+#: src/audacious/util.c:155
 #, c-format
 msgid "Could not create directory (%s): %s\n"
 msgstr ""
 
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:264
 msgid "Position not found."
 msgstr ""
 
@@ -769,21 +736,24 @@ msgstr ""
 
 #: src/libaudcore/tuple.c:689
 #, c-format
-msgid "%d channels"
-msgstr ""
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
 
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/confirm.c:73
 #, c-format
 msgid ""
 "Are you sure you want to close %s?  If you do, any changes made since the "
 "playlist was exported will be lost."
 msgstr ""
 
-#: src/libaudgui/confirm.c:77
+#: src/libaudgui/confirm.c:86
 msgid "_Don't show this message again"
 msgstr ""
 
-#: src/libaudgui/confirm.c:115
+#: src/libaudgui/confirm.c:124
 msgid "Rename Playlist"
 msgstr ""
 
@@ -843,11 +813,11 @@ msgstr ""
 msgid "Preamp"
 msgstr ""
 
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:212
 msgid "Track Number"
 msgstr "Нумар запісу"
 
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:214
 msgid "Track Length"
 msgstr "Працягласць"
 
@@ -1076,6 +1046,27 @@ msgstr "%d Кб/с"
 msgid "No info available for %s.\n"
 msgstr ""
 
+#: src/libaudgui/jump-to-time.c:75
+msgid "Jump to Time"
+msgstr ""
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr ""
+
+#: src/libaudgui/playlists.c:39
+msgid "Export Playlist"
+msgstr ""
+
+#: src/libaudgui/playlists.c:39
+msgid "Import Playlist"
+msgstr ""
+
+#: src/libaudgui/playlists.c:71
+#, c-format
+msgid "Overwrite %s?"
+msgstr ""
+
 #: src/libaudgui/ui_about.c:71
 msgid "About Audacious"
 msgstr "Пра Audacious"
@@ -1136,20 +1127,20 @@ msgstr ""
 msgid "Close on Jump"
 msgstr ""
 
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:240
 msgid "Playlist Manager"
 msgstr ""
 
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:264
 msgid "Entries"
 msgstr ""
 
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:285
 #, fuzzy
 msgid "_Rename"
 msgstr "Імя файла"
 
-#: src/libaudgui/ui_playlist_manager.c:251
+#: src/libaudgui/ui_playlist_manager.c:309
 msgid "_Close dialog on activating playlist"
 msgstr ""
 
@@ -1161,6 +1152,12 @@ msgstr ""
 msgid "Add URL"
 msgstr ""
 
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+
 #: src/libeggsmclient/eggdesktopfile.c:165
 msgid "File is not a valid .desktop file"
 msgstr ""
@@ -1170,25 +1167,25 @@ msgstr ""
 msgid "Unrecognized desktop file Version '%s'"
 msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:967
 #, c-format
 msgid "Starting %s"
 msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1108
 msgid "Application does not accept documents on command line"
 msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1176
 #, c-format
 msgid "Unrecognized launch option: %d"
 msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1375
 msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
 msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1396
 msgid "Not a launchable item"
 msgstr ""
 
diff --git a/po/bg.po b/po/bg.po
index 1e63d52..0cd15c4 100644
--- a/po/bg.po
+++ b/po/bg.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
+"POT-Creation-Date: 2011-07-05 22:45+0200\n"
 "PO-Revision-Date: 2007-01-13 12:01+0200\n"
 "Last-Translator: Andrew Ivanov <aa.ivanov at gmail.com>\n"
 "Language-Team: Bulgarian <bg at li.org>\n"
@@ -16,6 +16,17 @@ msgstr ""
 "Content-Type: text/plain; charset=utf-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
+#: src/audacious/adder.c:71
+msgid "Searching ..."
+msgstr ""
+
+#: src/audacious/adder.c:99
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] ""
+msgstr[1] ""
+
 #: src/audacious/chardet.c:37
 msgid "  (invalid UTF-8)"
 msgstr "  (невалидно UTF-8 кодиране)"
@@ -104,113 +115,113 @@ msgstr "Румънски:"
 msgid "Finnish:"
 msgstr "Финландски:"
 
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:220
 msgid "French:"
 msgstr "Френски:"
 
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:226
 msgid "German:"
 msgstr "Немски:"
 
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:233
 msgid "Georgian:"
 msgstr "Грузински:"
 
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:236
 msgid "Greek:"
 msgstr "Гръцки:"
 
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:241
 msgid "Hindi:"
 msgstr "Хинди:"
 
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:244
 msgid "Hungarian:"
 msgstr "Унгарски:"
 
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:248
 msgid "Italian:"
 msgstr "Италиански:"
 
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:252
 msgid "Japanese:"
 msgstr "Японски:"
 
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:255
 msgid "Korean:"
 msgstr "Корейски:"
 
-#: src/audacious/credits.c:256
+#: src/audacious/credits.c:258
 #, fuzzy
 msgid "Latvian:"
 msgstr "Румънски:"
 
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:261
 msgid "Lithuanian:"
 msgstr "Литовски:"
 
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:265
 msgid "Macedonian:"
 msgstr "Македонски:"
 
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:268
 msgid "Polish:"
 msgstr "Полски:"
 
-#: src/audacious/credits.c:271
+#: src/audacious/credits.c:274
 #, fuzzy
 msgid "Portuguese:"
 msgstr "Португалски (Бразилия):"
 
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:277
 msgid "Romanian:"
 msgstr "Румънски:"
 
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:281
 msgid "Russian:"
 msgstr "Руски:"
 
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:285
 msgid "Serbian (Latin):"
 msgstr "Сръбски (латиница)"
 
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:288
 msgid "Serbian (Cyrillic):"
 msgstr "Сръбски (кирилица)"
 
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:291
 msgid "Simplified Chinese:"
 msgstr "Китайски (опростен):"
 
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:294
 msgid "Slovak:"
 msgstr "Словашки:"
 
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:297
 msgid "Spanish:"
 msgstr "Испански:"
 
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:304
 msgid "Swedish:"
 msgstr "Шведски:"
 
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:307
 msgid "Traditional Chinese:"
 msgstr "Китайски (традиционен):"
 
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:312
 msgid "Turkish:"
 msgstr ""
 
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:316
 msgid "Ukrainian:"
 msgstr "Украински:"
 
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:319
 msgid "Welsh:"
 msgstr "Уелски:"
 
-#: src/audacious/drct.c:254
+#: src/audacious/drct.c:256
 #, fuzzy
 msgid "Temporary Playlist"
 msgstr "Зареждана на плейлиста"
@@ -220,90 +231,75 @@ msgstr "Зареждана на плейлиста"
 msgid "Error importing Winamp EQF file '%s'"
 msgstr ""
 
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr ""
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/audacious/main.c:247
+#: src/audacious/main.c:256
 msgid "Skip backwards in playlist"
 msgstr "Прескачане назад в плейлистата"
 
-#: src/audacious/main.c:248
+#: src/audacious/main.c:257
 msgid "Start playing current playlist"
 msgstr "Просвирване на текущата плейлиста"
 
-#: src/audacious/main.c:249
+#: src/audacious/main.c:258
 msgid "Pause current song"
 msgstr "Пауза на текущата песен"
 
-#: src/audacious/main.c:250
+#: src/audacious/main.c:259
 msgid "Stop current song"
 msgstr "Спиране на текущата песен"
 
-#: src/audacious/main.c:251
+#: src/audacious/main.c:260
 msgid "Pause if playing, play otherwise"
 msgstr "Пауза / просвирване"
 
-#: src/audacious/main.c:252
+#: src/audacious/main.c:261
 msgid "Skip forward in playlist"
 msgstr "Прескачане напред в плейлистата"
 
-#: src/audacious/main.c:253
+#: src/audacious/main.c:262
 #, fuzzy
 msgid "Display Jump to File dialog"
 msgstr "Показване диалог \"прескачане до файл\""
 
-#: src/audacious/main.c:254
+#: src/audacious/main.c:263
 #, fuzzy
 msgid "Add files to the playlist"
 msgstr "Добавяне на файлове към плейлистата."
 
-#: src/audacious/main.c:255
+#: src/audacious/main.c:264
 #, fuzzy
 msgid "Add new files to a temporary playlist"
 msgstr "Добавяне на файлове към плейлистата."
 
-#: src/audacious/main.c:256
+#: src/audacious/main.c:265
 #, fuzzy
 msgid "Display the main window"
 msgstr "Показване на главния прозорец"
 
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr ""
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:266
 #, fuzzy
 msgid "Show version"
 msgstr "Плеър"
 
-#: src/audacious/main.c:259
+#: src/audacious/main.c:267
 msgid "Print debugging messages"
 msgstr ""
 
-#: src/audacious/main.c:260
+#: src/audacious/main.c:268
 msgid "FILE..."
 msgstr ""
 
-#: src/audacious/main.c:272
+#: src/audacious/main.c:280
 msgid "- play multimedia files"
 msgstr ""
 
-#: src/audacious/main.c:282
+#: src/audacious/main.c:290
 #, c-format
 msgid ""
 "%s: %s\n"
 "Try `%s --help' for more information.\n"
 msgstr ""
 
-#: src/audacious/main.c:395
+#: src/audacious/main.c:407
 msgid ""
 "Audacious seems to be already running but is not responding.  You can start "
 "another instance of the program, but please be warned that this can cause "
@@ -311,264 +307,241 @@ msgid ""
 "message.  Press OK to start Audacious or Cancel to quit."
 msgstr ""
 
-#: src/audacious/main.c:558
+#: src/audacious/main.c:572
 msgid "Audacious"
 msgstr "Audacious"
 
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:381
 #, c-format
 msgid "No decoder found for %s."
 msgstr ""
 
-#: src/audacious/playback.c:519
+#: src/audacious/playback.c:531
 msgid "Buffering ..."
 msgstr ""
 
-#: src/audacious/playlist-new.c:288
+#: src/audacious/playlist-new.c:303
 #, fuzzy
 msgid "Untitled Playlist"
 msgstr "Нова плейлиста"
 
-#: src/audacious/ui_preferences.c:88
+#: src/audacious/ui_preferences.c:87
 msgid "Audio"
 msgstr "Аудио"
 
-#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:88
 msgid "Network"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:89 src/audacious/ui_preferences.c:1556
 msgid "Playlist"
 msgstr "Плейлиста"
 
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:90
 msgid "Plugins"
 msgstr "Приставки"
 
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:204
 msgid "Artist"
 msgstr "Изпълнител"
 
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:97 src/libaudgui/infopopup.c:206
 msgid "Album"
 msgstr "Албум"
 
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:202
+#: src/libaudgui/ui_playlist_manager.c:263
 msgid "Title"
 msgstr "Заглавие"
 
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:99
 msgid "Tracknumber"
 msgstr "Номер"
 
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:208
 msgid "Genre"
 msgstr "Жанр"
 
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:101
 msgid "Filename"
 msgstr "Име на файл"
 
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:102
 msgid "Filepath"
 msgstr "Път до файла"
 
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:103
 msgid "Date"
 msgstr "Дата"
 
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:104 src/libaudgui/infopopup.c:210
 msgid "Year"
 msgstr "Година"
 
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:105
 msgid "Comment"
 msgstr "Коментар"
 
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:106
 msgid "Codec"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:107
 #, fuzzy
 msgid "Quality"
 msgstr "Из_ход"
 
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:112
 msgid "None"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:115
+#: src/audacious/ui_preferences.c:113
 #, fuzzy
 msgid "Japanese"
 msgstr "Японски:"
 
-#: src/audacious/ui_preferences.c:116
+#: src/audacious/ui_preferences.c:114
 #, fuzzy
 msgid "Taiwanese"
 msgstr "Японски:"
 
-#: src/audacious/ui_preferences.c:117
+#: src/audacious/ui_preferences.c:115
 #, fuzzy
 msgid "Chinese"
 msgstr "Китайски:"
 
-#: src/audacious/ui_preferences.c:118
+#: src/audacious/ui_preferences.c:116
 #, fuzzy
 msgid "Korean"
 msgstr "Корейски:"
 
-#: src/audacious/ui_preferences.c:119
+#: src/audacious/ui_preferences.c:117
 #, fuzzy
 msgid "Russian"
 msgstr "Руски:"
 
-#: src/audacious/ui_preferences.c:120
+#: src/audacious/ui_preferences.c:118
 #, fuzzy
 msgid "Greek"
 msgstr "Гръцки:"
 
-#: src/audacious/ui_preferences.c:121
+#: src/audacious/ui_preferences.c:119
 msgid "Hebrew"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:122
+#: src/audacious/ui_preferences.c:120
 msgid "Turkish"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:123
+#: src/audacious/ui_preferences.c:121
 msgid "Arabic"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:124
+#: src/audacious/ui_preferences.c:122
 #, fuzzy
 msgid "Polish"
 msgstr "Полски:"
 
-#: src/audacious/ui_preferences.c:125
+#: src/audacious/ui_preferences.c:123
 msgid "Baltic"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:126
+#: src/audacious/ui_preferences.c:124
 msgid "Universal"
 msgstr ""
 
 #: src/audacious/ui_preferences.c:146
 #, fuzzy
-msgid "<b>Bit Depth</b>"
-msgstr "<i>Заглавие</i>"
+msgid "Single track mode"
+msgstr "Информация за песента"
 
 #: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
+#, fuzzy
+msgid "Album mode"
+msgstr "Име на албума:"
 
-#: src/audacious/ui_preferences.c:151
+#: src/audacious/ui_preferences.c:150
 #, fuzzy
-msgid "<b>Volume Control</b>"
-msgstr "<b>Колелце на мишката</b>"
+msgid "<b>Output Settings</b>"
+msgstr "<b>Разпознаване на формати</b>"
 
 #: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr ""
+#, fuzzy
+msgid "Bit depth:"
+msgstr "<i>Заглавие</i>"
 
-#: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
+#: src/audacious/ui_preferences.c:155
+msgid "Buffer size:"
+msgstr "Размер на буфера:"
 
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
+#: src/audacious/ui_preferences.c:157
+msgid "ms"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
+#: src/audacious/ui_preferences.c:158
+msgid "Use software volume control (not recommended)"
 msgstr ""
 
 #: src/audacious/ui_preferences.c:160
-msgid "Amplify untagged files:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:164
 #, fuzzy
 msgid "<b>Replay Gain</b>"
 msgstr "<b>Настройки на прокси сървър</b>"
 
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:161
 #, fuzzy
 msgid "Enable Replay Gain"
 msgstr "Използване на прокси сървър"
 
-#: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>Мета-данни</b>"
-
-#: src/audacious/ui_preferences.c:168
-#, fuzzy
-msgid "Single track mode"
-msgstr "Информация за песента"
-
-#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "Име на албума:"
+#: src/audacious/ui_preferences.c:164
+msgid "Prevent clipping (recommended)"
+msgstr ""
 
-#: src/audacious/ui_preferences.c:172
+#: src/audacious/ui_preferences.c:166
 #, fuzzy
 msgid "<b>Adjust Levels</b>"
 msgstr "<b>Колелце на мишката</b>"
 
-#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "<b>Изскачаща информация</b>"
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify all files:"
+msgstr ""
 
-#: src/audacious/ui_preferences.c:176
-msgid "Enable clipping prevention"
+#: src/audacious/ui_preferences.c:169 src/audacious/ui_preferences.c:172
+msgid "dB"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:170
+msgid "Amplify untagged files:"
+msgstr ""
+
+#: src/audacious/ui_preferences.c:175
 msgid "Proxy hostname:"
 msgstr "Име на сървъра:"
 
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:176
 msgid "Proxy port:"
 msgstr "Порт на сървъра:"
 
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:179
 msgid "Proxy username:"
 msgstr "Потребителско име:"
 
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:180
 msgid "Proxy password:"
 msgstr "Парола:"
 
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:184
 msgid "<b>Proxy Configuration</b>"
 msgstr "<b>Настройки на прокси сървър</b>"
 
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:185
 msgid "Enable proxy usage"
 msgstr "Използване на прокси сървър"
 
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:187
 msgid "Use authentication with proxy"
 msgstr "Идентификация пред прокси сървъра"
 
-#: src/audacious/ui_preferences.c:197
+#: src/audacious/ui_preferences.c:189
 msgid ""
 "<span size=\"small\">Changing these settings will require a restart of "
 "Audacious.</span>"
@@ -576,15 +549,15 @@ msgstr ""
 "<span size=\"small\">Промяната на тези настройки налага да рестартирате "
 "Audacious.</span>"
 
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
 msgid "Auto character encoding detector for:"
 msgstr "Автоматично откриване на кодовата таблица за:"
 
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
 msgid "Fallback character encodings:"
 msgstr "Потребителски кодови таблици:"
 
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
 msgid ""
 "List of character encodings used for fall back conversion of metadata. If "
 "automatic character encoding detector failed or has been disabled, encodings "
@@ -596,48 +569,48 @@ msgstr ""
 "правилната таблица. Ако никоя от посочените кодови таблици не може да "
 "декодира данните, кодирането се приема за UTF-8."
 
-#: src/audacious/ui_preferences.c:213
+#: src/audacious/ui_preferences.c:205
 #, fuzzy
 msgid "<b>Behavior</b>"
 msgstr "<i>Заглавие</i>"
 
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:206
 msgid "Continue playback on startup"
 msgstr "Продължаване на просвирването при стартиране"
 
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:208
 msgid "Advance when the current song is deleted"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:218
+#: src/audacious/ui_preferences.c:210
 #, fuzzy
 msgid "Clear the playlist when opening files"
 msgstr "Създаване на нова плейлиста от съвпаденията"
 
-#: src/audacious/ui_preferences.c:220
+#: src/audacious/ui_preferences.c:212
 #, fuzzy
 msgid "Open files in a temporary playlist"
 msgstr "Добавяне на файлове към плейлистата."
 
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:214
 msgid "<b>Metadata</b>"
 msgstr "<b>Мета-данни</b>"
 
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:454
 msgid "Category"
 msgstr "Категория"
 
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:682
 #, fuzzy
 msgid "Popup Information Settings"
 msgstr "Настройки на изскачащата информация"
 
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:691
 #, fuzzy
 msgid "<b>Cover image retrieve</b>"
 msgstr "<b>Разпознаване на формати</b>"
 
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:696
 msgid ""
 "While searching for the album's cover, Audacious looks for certain words in "
 "the filename. You can specify those words in the lists below, separated "
@@ -647,101 +620,101 @@ msgstr ""
 "имената на файловете. По-долу можете да укажете тези думи в списък, разделен "
 "със запетайки."
 
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:713
 msgid "Exclude:"
 msgstr "Изключване:"
 
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:720
 msgid "Include:"
 msgstr "Включване:"
 
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:737
 msgid "Recursively search for cover"
 msgstr "Рекурсивно търсене за обложка"
 
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:747
 msgid "Search depth: "
 msgstr "Дълбочина на търсене:"
 
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:761
 msgid "Use per-file cover"
 msgstr "Обложки, специфични за файла"
 
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:764
 #, fuzzy
 msgid "<b>Miscellaneous</b>"
 msgstr "<b>_Разни</b>"
 
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:773
 msgid "Show Progress bar for the current track"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:783
 msgid "Delay until filepopup comes up: "
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1283
 msgid "<b>Song Display</b>"
 msgstr "<b>Представяне на песените</b>"
 
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1292
 msgid "Show song numbers"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1303
 msgid "Show leading zeroes (02:00 instead of 2:00)"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1325
 msgid "Show information about titlestring format"
 msgstr "Показване на информация за формата на заглавието"
 
-#: src/audacious/ui_preferences.c:1514
+#: src/audacious/ui_preferences.c:1339
 msgid "TITLE"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1515
+#: src/audacious/ui_preferences.c:1340
 msgid "ARTIST - TITLE"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1516
+#: src/audacious/ui_preferences.c:1341
 msgid "ARTIST - ALBUM - TITLE"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1517
+#: src/audacious/ui_preferences.c:1342
 msgid "ARTIST - ALBUM - TRACK. TITLE"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1518
+#: src/audacious/ui_preferences.c:1343
 msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1519
+#: src/audacious/ui_preferences.c:1344
 msgid "ALBUM - TITLE"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1520
+#: src/audacious/ui_preferences.c:1345
 #, fuzzy
 msgid "Custom"
 msgstr "Личен избор:"
 
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1354
 msgid "Custom string:"
 msgstr "Личен избор:"
 
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1361
 msgid "Title format:"
 msgstr "Формат на заглавието:"
 
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1372
 msgid "<b>Popup Information</b>"
 msgstr "<b>Изскачаща информация</b>"
 
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1387
 msgid "Show popup information for playlist entries"
 msgstr "Показване на изскачаща информация за елементите от плейлистата"
 
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1388
 msgid ""
 "Toggles popup information window for the pointed entry in the playlist. The "
 "window shows title of song, name of album, genre, year of publish, track "
@@ -751,55 +724,48 @@ msgstr ""
 "включва заглавие, албум, жанр, година, номер в албума, продължителност и "
 "корица."
 
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1397
 #, fuzzy
 msgid "Edit settings for popup information"
 msgstr "Редактиране на настройките за изскачащата информация"
 
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>Аудио система</b>"
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "Размер на буфера:"
-
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
-msgstr "Приставка за възпроизвеждане:"
+#: src/audacious/ui_preferences.c:1497
+#, fuzzy
+msgid "Output plugin:"
+msgstr "Декодер: %s"
 
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
 #, fuzzy
 msgid "Transport"
 msgstr "Преводачи"
 
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
 msgid "Input"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
 #, fuzzy
 msgid "Effect"
 msgstr "<b>Ефекти</b>"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
 msgid "Visualization"
 msgstr "Визуализация"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
 msgid "General"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1597
 msgid "Audacious Preferences"
 msgstr "Настройки на Audacious"
 
-#: src/audacious/util.c:161
+#: src/audacious/util.c:155
 #, fuzzy, c-format
 msgid "Could not create directory (%s): %s\n"
 msgstr "Не може да бъде създадена директория (%s): %s"
 
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:264
 msgid "Position not found."
 msgstr ""
 
@@ -818,22 +784,24 @@ msgstr "стерео"
 
 #: src/libaudcore/tuple.c:689
 #, c-format
-msgid "%d channels"
-msgstr ""
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] ""
+msgstr[1] ""
 
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/confirm.c:73
 #, c-format
 msgid ""
 "Are you sure you want to close %s?  If you do, any changes made since the "
 "playlist was exported will be lost."
 msgstr ""
 
-#: src/libaudgui/confirm.c:77
+#: src/libaudgui/confirm.c:86
 #, fuzzy
 msgid "_Don't show this message again"
 msgstr "Без показване на това предупреждение за в бъдеще"
 
-#: src/libaudgui/confirm.c:115
+#: src/libaudgui/confirm.c:124
 #, fuzzy
 msgid "Rename Playlist"
 msgstr "Съхраняване на плейлиста"
@@ -895,12 +863,12 @@ msgstr "Еквалайзер"
 msgid "Preamp"
 msgstr ""
 
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:212
 #, fuzzy
 msgid "Track Number"
 msgstr "Номер"
 
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:214
 #, fuzzy
 msgid "Track Length"
 msgstr "Продължителност:"
@@ -1137,6 +1105,29 @@ msgstr ""
 msgid "No info available for %s.\n"
 msgstr ""
 
+#: src/libaudgui/jump-to-time.c:75
+msgid "Jump to Time"
+msgstr "Прескачане до времева позиция"
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr ""
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Export Playlist"
+msgstr "Зареждана на плейлиста"
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Import Playlist"
+msgstr "Зареждана на плейлиста"
+
+#: src/libaudgui/playlists.c:71
+#, c-format
+msgid "Overwrite %s?"
+msgstr ""
+
 #: src/libaudgui/ui_about.c:71
 msgid "About Audacious"
 msgstr "Относно Audacious"
@@ -1199,19 +1190,19 @@ msgstr "Размаркиране на А-Б"
 msgid "Close on Jump"
 msgstr "Затваряне при отваряне на файл"
 
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:240
 msgid "Playlist Manager"
 msgstr "Мениджър на плейлисти"
 
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:264
 msgid "Entries"
 msgstr "Елементи"
 
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:285
 msgid "_Rename"
 msgstr "Пре_именуване"
 
-#: src/libaudgui/ui_playlist_manager.c:251
+#: src/libaudgui/ui_playlist_manager.c:309
 #, fuzzy
 msgid "_Close dialog on activating playlist"
 msgstr "Затваряне при отваряне на файл"
@@ -1224,6 +1215,12 @@ msgstr ""
 msgid "Add URL"
 msgstr ""
 
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+
 #: src/libeggsmclient/eggdesktopfile.c:165
 msgid "File is not a valid .desktop file"
 msgstr ""
@@ -1233,25 +1230,25 @@ msgstr ""
 msgid "Unrecognized desktop file Version '%s'"
 msgstr "%s: непозната опция `--%s'\n"
 
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:967
 #, c-format
 msgid "Starting %s"
 msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1108
 msgid "Application does not accept documents on command line"
 msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1176
 #, fuzzy, c-format
 msgid "Unrecognized launch option: %d"
 msgstr "%s: непозната опция `--%s'\n"
 
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1375
 msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
 msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1396
 msgid "Not a launchable item"
 msgstr ""
 
@@ -1286,6 +1283,24 @@ msgid "Show session management options"
 msgstr "Декорации от прозоречния мениджър"
 
 #, fuzzy
+#~ msgid "<b>Volume Control</b>"
+#~ msgstr "<b>Колелце на мишката</b>"
+
+#, fuzzy
+#~ msgid "<b>Mode</b>"
+#~ msgstr "<b>Мета-данни</b>"
+
+#, fuzzy
+#~ msgid "<b>Clipping Prevention</b>"
+#~ msgstr "<b>Изскачаща информация</b>"
+
+#~ msgid "<b>Audio System</b>"
+#~ msgstr "<b>Аудио система</b>"
+
+#~ msgid "Current output plugin:"
+#~ msgstr "Приставка за възпроизвеждане:"
+
+#, fuzzy
 #~ msgid "%s: Unable to open display, exiting.\n"
 #~ msgstr ""
 #~ "audacious: Грешка при инициализиране на дисплея. Спиране на програмата.\n"
@@ -1514,9 +1529,6 @@ msgstr "Декорации от прозоречния мениджър"
 #~ msgid "No input plugin recognized this file"
 #~ msgstr "Нито един декодер не разчете файла"
 
-#~ msgid "Input plugin: %s"
-#~ msgstr "Декодер: %s"
-
 #~ msgid ""
 #~ "<b><big>No output plugin selected.</big></b>\n"
 #~ "You have not selected an output plugin."
@@ -1527,9 +1539,6 @@ msgstr "Декорации от прозоречния мениджър"
 #~ msgid "Connectivity"
 #~ msgstr "Свързаност"
 
-#~ msgid "<b>Format Detection</b>"
-#~ msgstr "<b>Разпознаване на формати</b>"
-
 #~ msgid "Detect file formats by extension."
 #~ msgstr "Разпознаване по разширение"
 
@@ -1573,9 +1582,6 @@ msgstr "Декорации от прозоречния мениджър"
 #~ msgid "Load metadata (tag information) from music files."
 #~ msgstr "Зареждане на мета-данни от музикалните файлове."
 
-#~ msgid "Jump to Time"
-#~ msgstr "Прескачане до времева позиция"
-
 #~ msgid "minutes:seconds"
 #~ msgstr "минути:секунди"
 
diff --git a/po/br.po b/po/br.po
index 7c63766..3a503d3 100644
--- a/po/br.po
+++ b/po/br.po
@@ -5,7 +5,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: bmp 0.9.6\n"
 "Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
+"POT-Creation-Date: 2011-07-05 22:45+0200\n"
 "PO-Revision-Date: 2007-01-31 16:16+0100\n"
 "Last-Translator: Thierry Vignaud <tvignaud at mandrakesoft.com>\n"
 "Language-Team: Brezhoneg <LL at li.org>\n"
@@ -14,6 +14,17 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
+#: src/audacious/adder.c:71
+msgid "Searching ..."
+msgstr ""
+
+#: src/audacious/adder.c:99
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] ""
+msgstr[1] ""
+
 #: src/audacious/chardet.c:37
 msgid "  (invalid UTF-8)"
 msgstr "  (n'eo ket mat UTF-8)"
@@ -101,113 +112,113 @@ msgstr "Roumanek :"
 msgid "Finnish:"
 msgstr "Finnek :"
 
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:220
 msgid "French:"
 msgstr "Galleg :"
 
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:226
 msgid "German:"
 msgstr "Alamaned :"
 
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:233
 msgid "Georgian:"
 msgstr "Jeorjiek :"
 
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:236
 msgid "Greek:"
 msgstr "Gresian :"
 
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:241
 msgid "Hindi:"
 msgstr "Hindi :"
 
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:244
 msgid "Hungarian:"
 msgstr "Hungarek :"
 
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:248
 msgid "Italian:"
 msgstr "Italianeg :"
 
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:252
 msgid "Japanese:"
 msgstr "Japaneg :"
 
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:255
 msgid "Korean:"
 msgstr "Koreeg :"
 
-#: src/audacious/credits.c:256
+#: src/audacious/credits.c:258
 #, fuzzy
 msgid "Latvian:"
 msgstr "Lec'hiadur :"
 
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:261
 msgid "Lithuanian:"
 msgstr "Lituaneg :"
 
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:265
 msgid "Macedonian:"
 msgstr "Makedonek :"
 
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:268
 msgid "Polish:"
 msgstr "Poloneg :"
 
-#: src/audacious/credits.c:271
+#: src/audacious/credits.c:274
 #, fuzzy
 msgid "Portuguese:"
 msgstr "Porzh :"
 
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:277
 msgid "Romanian:"
 msgstr "Roumanek :"
 
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:281
 msgid "Russian:"
 msgstr "Rusianeg :"
 
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:285
 msgid "Serbian (Latin):"
 msgstr "Serbiek (latin) :"
 
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:288
 msgid "Serbian (Cyrillic):"
 msgstr "Serbiek (lizherenneg ar ruseg) :"
 
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:291
 msgid "Simplified Chinese:"
 msgstr ""
 
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:294
 msgid "Slovak:"
 msgstr "Slovek :"
 
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:297
 msgid "Spanish:"
 msgstr "Spagnoleg :"
 
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:304
 msgid "Swedish:"
 msgstr "Svedeg :"
 
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:307
 msgid "Traditional Chinese:"
 msgstr ""
 
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:312
 msgid "Turkish:"
 msgstr ""
 
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:316
 msgid "Ukrainian:"
 msgstr "Ukrainiek :"
 
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:319
 msgid "Welsh:"
 msgstr "Kembraeg :"
 
-#: src/audacious/drct.c:254
+#: src/audacious/drct.c:256
 #, fuzzy
 msgid "Temporary Playlist"
 msgstr "Kargañ ar roll tonioù"
@@ -217,89 +228,74 @@ msgstr "Kargañ ar roll tonioù"
 msgid "Error importing Winamp EQF file '%s'"
 msgstr ""
 
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr ""
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/audacious/main.c:247
+#: src/audacious/main.c:256
 msgid "Skip backwards in playlist"
 msgstr ""
 
-#: src/audacious/main.c:248
+#: src/audacious/main.c:257
 msgid "Start playing current playlist"
 msgstr ""
 
-#: src/audacious/main.c:249
+#: src/audacious/main.c:258
 msgid "Pause current song"
 msgstr ""
 
-#: src/audacious/main.c:250
+#: src/audacious/main.c:259
 msgid "Stop current song"
 msgstr ""
 
-#: src/audacious/main.c:251
+#: src/audacious/main.c:260
 msgid "Pause if playing, play otherwise"
 msgstr ""
 
-#: src/audacious/main.c:252
+#: src/audacious/main.c:261
 msgid "Skip forward in playlist"
 msgstr ""
 
-#: src/audacious/main.c:253
+#: src/audacious/main.c:262
 #, fuzzy
 msgid "Display Jump to File dialog"
 msgstr "Lammat d'ar restr"
 
-#: src/audacious/main.c:254
+#: src/audacious/main.c:263
 #, fuzzy
 msgid "Add files to the playlist"
 msgstr "Ouzhpennañ a ra ar restroù d'ar roll tonioù."
 
-#: src/audacious/main.c:255
+#: src/audacious/main.c:264
 #, fuzzy
 msgid "Add new files to a temporary playlist"
 msgstr "Ouzhpennañ a ra ar restroù d'ar roll tonioù."
 
-#: src/audacious/main.c:256
+#: src/audacious/main.c:265
 msgid "Display the main window"
 msgstr ""
 
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr ""
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:266
 #, fuzzy
 msgid "Show version"
 msgstr "Diskouez ar soner"
 
-#: src/audacious/main.c:259
+#: src/audacious/main.c:267
 msgid "Print debugging messages"
 msgstr ""
 
-#: src/audacious/main.c:260
+#: src/audacious/main.c:268
 msgid "FILE..."
 msgstr ""
 
-#: src/audacious/main.c:272
+#: src/audacious/main.c:280
 msgid "- play multimedia files"
 msgstr ""
 
-#: src/audacious/main.c:282
+#: src/audacious/main.c:290
 #, c-format
 msgid ""
 "%s: %s\n"
 "Try `%s --help' for more information.\n"
 msgstr ""
 
-#: src/audacious/main.c:395
+#: src/audacious/main.c:407
 msgid ""
 "Audacious seems to be already running but is not responding.  You can start "
 "another instance of the program, but please be warned that this can cause "
@@ -307,282 +303,258 @@ msgid ""
 "message.  Press OK to start Audacious or Cancel to quit."
 msgstr ""
 
-#: src/audacious/main.c:558
+#: src/audacious/main.c:572
 msgid "Audacious"
 msgstr ""
 
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:381
 #, c-format
 msgid "No decoder found for %s."
 msgstr ""
 
-#: src/audacious/playback.c:519
+#: src/audacious/playback.c:531
 #, fuzzy
 msgid "Buffering ..."
 msgstr "Krubuilh"
 
-#: src/audacious/playlist-new.c:288
+#: src/audacious/playlist-new.c:303
 #, fuzzy
 msgid "Untitled Playlist"
 msgstr "Roll tonioù nevez"
 
-#: src/audacious/ui_preferences.c:88
+#: src/audacious/ui_preferences.c:87
 msgid "Audio"
 msgstr "Son"
 
-#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:88
 msgid "Network"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:89 src/audacious/ui_preferences.c:1556
 msgid "Playlist"
 msgstr "Roll tonioù"
 
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:90
 msgid "Plugins"
 msgstr "Lugentoù"
 
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:204
 msgid "Artist"
 msgstr "Arzour"
 
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:97 src/libaudgui/infopopup.c:206
 msgid "Album"
 msgstr "Albom"
 
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:202
+#: src/libaudgui/ui_playlist_manager.c:263
 msgid "Title"
 msgstr "Titl"
 
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:99
 msgid "Tracknumber"
 msgstr "Niverennroudenn"
 
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:208
 msgid "Genre"
 msgstr "Rumm"
 
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:101
 msgid "Filename"
 msgstr "Anv ar restr"
 
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:102
 msgid "Filepath"
 msgstr "Hent ar restr"
 
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:103
 msgid "Date"
 msgstr "Deiziad"
 
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:104 src/libaudgui/infopopup.c:210
 msgid "Year"
 msgstr "Bloavezh"
 
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:105
 msgid "Comment"
 msgstr "Askelenn"
 
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:106
 #, fuzzy
 msgid "Codec"
 msgstr "/Serriñ"
 
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:107
 #, fuzzy
 msgid "Quality"
 msgstr "/_Kuitaat"
 
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:112
 msgid "None"
 msgstr "Hini ebet"
 
-#: src/audacious/ui_preferences.c:115
+#: src/audacious/ui_preferences.c:113
 #, fuzzy
 msgid "Japanese"
 msgstr "Japaneg :"
 
-#: src/audacious/ui_preferences.c:116
+#: src/audacious/ui_preferences.c:114
 #, fuzzy
 msgid "Taiwanese"
 msgstr "Japaneg :"
 
-#: src/audacious/ui_preferences.c:117
+#: src/audacious/ui_preferences.c:115
 #, fuzzy
 msgid "Chinese"
 msgstr "Sineg :"
 
-#: src/audacious/ui_preferences.c:118
+#: src/audacious/ui_preferences.c:116
 #, fuzzy
 msgid "Korean"
 msgstr "Koreeg :"
 
-#: src/audacious/ui_preferences.c:119
+#: src/audacious/ui_preferences.c:117
 #, fuzzy
 msgid "Russian"
 msgstr "Rusianeg :"
 
-#: src/audacious/ui_preferences.c:120
+#: src/audacious/ui_preferences.c:118
 #, fuzzy
 msgid "Greek"
 msgstr "Gresian :"
 
-#: src/audacious/ui_preferences.c:121
+#: src/audacious/ui_preferences.c:119
 msgid "Hebrew"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:122
+#: src/audacious/ui_preferences.c:120
 msgid "Turkish"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:123
+#: src/audacious/ui_preferences.c:121
 msgid "Arabic"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:124
+#: src/audacious/ui_preferences.c:122
 #, fuzzy
 msgid "Polish"
 msgstr "Poloneg :"
 
-#: src/audacious/ui_preferences.c:125
+#: src/audacious/ui_preferences.c:123
 #, fuzzy
 msgid "Baltic"
 msgstr "Keltiek"
 
-#: src/audacious/ui_preferences.c:126
+#: src/audacious/ui_preferences.c:124
 #, fuzzy
 msgid "Universal"
 msgstr "Rumm"
 
 #: src/audacious/ui_preferences.c:146
 #, fuzzy
-msgid "<b>Bit Depth</b>"
-msgstr "<b>Anv ar restr</b>"
+msgid "Single track mode"
+msgstr "/Sellout ouzh titouroù war ar roudenn"
 
 #: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr ""
+#, fuzzy
+msgid "Album mode"
+msgstr "Anv an albom :"
 
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
+#: src/audacious/ui_preferences.c:150
+msgid "<b>Output Settings</b>"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:151
+#: src/audacious/ui_preferences.c:152
 #, fuzzy
-msgid "<b>Volume Control</b>"
-msgstr "<b>_Nodrezhoù</b>"
+msgid "Bit depth:"
+msgstr "<b>Anv ar restr</b>"
 
-#: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr ""
+#: src/audacious/ui_preferences.c:155
+msgid "Buffer size:"
+msgstr "Ment ar skurzer :"
 
-#: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
+#: src/audacious/ui_preferences.c:157
+msgid "ms"
 msgstr ""
 
 #: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
+msgid "Use software volume control (not recommended)"
 msgstr ""
 
 #: src/audacious/ui_preferences.c:160
-msgid "Amplify untagged files:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:164
 #, fuzzy
 msgid "<b>Replay Gain</b>"
 msgstr "<b>Anv ar restr</b>"
 
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:161
 msgid "Enable Replay Gain"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>Meta-roadoù</b>"
-
-#: src/audacious/ui_preferences.c:168
-#, fuzzy
-msgid "Single track mode"
-msgstr "/Sellout ouzh titouroù war ar roudenn"
-
-#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "Anv an albom :"
+#: src/audacious/ui_preferences.c:164
+msgid "Prevent clipping (recommended)"
+msgstr ""
 
-#: src/audacious/ui_preferences.c:172
+#: src/audacious/ui_preferences.c:166
 #, fuzzy
 msgid "<b>Adjust Levels</b>"
 msgstr "<b>Rodell al logodenn</b>"
 
-#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "Kefluniadur al lugent MPEG son"
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify all files:"
+msgstr ""
 
-#: src/audacious/ui_preferences.c:176
-msgid "Enable clipping prevention"
+#: src/audacious/ui_preferences.c:169 src/audacious/ui_preferences.c:172
+msgid "dB"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:170
+msgid "Amplify untagged files:"
+msgstr ""
+
+#: src/audacious/ui_preferences.c:175
 msgid "Proxy hostname:"
 msgstr "Anv ostiz ar proksi :"
 
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:176
 msgid "Proxy port:"
 msgstr "Porzh ar proksi :"
 
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:179
 msgid "Proxy username:"
 msgstr "Anv arveriad ar proksi :"
 
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:180
 msgid "Proxy password:"
 msgstr "Tremenger ar proksi :"
 
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:184
 msgid "<b>Proxy Configuration</b>"
 msgstr "<b>Kefluniadur ar proksi</b>"
 
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:185
 msgid "Enable proxy usage"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:187
 #, fuzzy
 msgid "Use authentication with proxy"
 msgstr "Implijit dilesadur"
 
-#: src/audacious/ui_preferences.c:197
+#: src/audacious/ui_preferences.c:189
 msgid ""
 "<span size=\"small\">Changing these settings will require a restart of "
 "Audacious.</span>"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
 msgid "Auto character encoding detector for:"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
 msgid "Fallback character encodings:"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
 msgid ""
 "List of character encodings used for fall back conversion of metadata. If "
 "automatic character encoding detector failed or has been disabled, encodings "
@@ -590,203 +562,196 @@ msgid ""
 "fall back conversion from these encodings to UTF-8 would be attempted."
 msgstr ""
 
-#: src/audacious/ui_preferences.c:213
+#: src/audacious/ui_preferences.c:205
 #, fuzzy
 msgid "<b>Behavior</b>"
 msgstr "<b>Anv ar restr</b>"
 
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:206
 msgid "Continue playback on startup"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:208
 msgid "Advance when the current song is deleted"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:218
+#: src/audacious/ui_preferences.c:210
 #, fuzzy
 msgid "Clear the playlist when opening files"
 msgstr "/Ouzhpennañ/Lec'hiadur war ar genrouedad ..."
 
-#: src/audacious/ui_preferences.c:220
+#: src/audacious/ui_preferences.c:212
 #, fuzzy
 msgid "Open files in a temporary playlist"
 msgstr "Ouzhpennañ a ra ar restroù d'ar roll tonioù."
 
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:214
 msgid "<b>Metadata</b>"
 msgstr "<b>Meta-roadoù</b>"
 
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:454
 msgid "Category"
 msgstr "Rumm"
 
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:682
 #, fuzzy
 msgid "Popup Information Settings"
 msgstr "Kefluniadur al lugent MPEG son"
 
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:691
 msgid "<b>Cover image retrieve</b>"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:696
 msgid ""
 "While searching for the album's cover, Audacious looks for certain words in "
 "the filename. You can specify those words in the lists below, separated "
 "using commas."
 msgstr ""
 
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:713
 msgid "Exclude:"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:720
 msgid "Include:"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:737
 msgid "Recursively search for cover"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:747
 msgid "Search depth: "
 msgstr ""
 
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:761
 msgid "Use per-file cover"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:764
 #, fuzzy
 msgid "<b>Miscellaneous</b>"
 msgstr "<b>_A bep seurt</b>"
 
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:773
 msgid "Show Progress bar for the current track"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:783
 msgid "Delay until filepopup comes up: "
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1283
 #, fuzzy
 msgid "<b>Song Display</b>"
 msgstr "<b>_Nodrezhoù</b>"
 
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1292
 msgid "Show song numbers"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1303
 msgid "Show leading zeroes (02:00 instead of 2:00)"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1325
 msgid "Show information about titlestring format"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1514
+#: src/audacious/ui_preferences.c:1339
 msgid "TITLE"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1515
+#: src/audacious/ui_preferences.c:1340
 msgid "ARTIST - TITLE"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1516
+#: src/audacious/ui_preferences.c:1341
 msgid "ARTIST - ALBUM - TITLE"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1517
+#: src/audacious/ui_preferences.c:1342
 msgid "ARTIST - ALBUM - TRACK. TITLE"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1518
+#: src/audacious/ui_preferences.c:1343
 msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1519
+#: src/audacious/ui_preferences.c:1344
 msgid "ALBUM - TITLE"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1520
+#: src/audacious/ui_preferences.c:1345
 msgid "Custom"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1354
 msgid "Custom string:"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1361
 msgid "Title format:"
 msgstr "Furmad an titl :"
 
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1372
 #, fuzzy
 msgid "<b>Popup Information</b>"
 msgstr "Kefluniadur al lugent MPEG son"
 
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1387
 msgid "Show popup information for playlist entries"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1388
 msgid ""
 "Toggles popup information window for the pointed entry in the playlist. The "
 "window shows title of song, name of album, genre, year of publish, track "
 "number, track length, and artwork."
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1397
 msgid "Edit settings for popup information"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>Reiziad klevet</b>"
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "Ment ar skurzer :"
-
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
-msgstr "Lugent ezkas red :"
+#: src/audacious/ui_preferences.c:1497
+#, fuzzy
+msgid "Output plugin:"
+msgstr "Lugent engas : %s"
 
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
 #, fuzzy
 msgid "Transport"
 msgstr "Trelatourion "
 
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
 msgid "Input"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
 msgid "Effect"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
 #, fuzzy
 msgid "Visualization"
 msgstr "Aozadur :"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
 msgid "General"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1597
 msgid "Audacious Preferences"
 msgstr "Dibaboù Audacious"
 
-#: src/audacious/util.c:161
+#: src/audacious/util.c:155
 #, c-format
 msgid "Could not create directory (%s): %s\n"
 msgstr "N'hell ket bet krouet ar renkell (%s) : %s\n"
 
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:264
 msgid "Position not found."
 msgstr ""
 
@@ -805,21 +770,23 @@ msgstr "divouezh"
 
 #: src/libaudcore/tuple.c:689
 #, fuzzy, c-format
-msgid "%d channels"
-msgstr "Kanolioù :"
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] "Kanolioù :"
+msgstr[1] "Kanolioù :"
 
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/confirm.c:73
 #, c-format
 msgid ""
 "Are you sure you want to close %s?  If you do, any changes made since the "
 "playlist was exported will be lost."
 msgstr ""
 
-#: src/libaudgui/confirm.c:77
+#: src/libaudgui/confirm.c:86
 msgid "_Don't show this message again"
 msgstr ""
 
-#: src/libaudgui/confirm.c:115
+#: src/libaudgui/confirm.c:124
 #, fuzzy
 msgid "Rename Playlist"
 msgstr "Enrollañ ar roll tonioù"
@@ -890,12 +857,12 @@ msgstr "Kehidañ"
 msgid "Preamp"
 msgstr "Hunvre"
 
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:212
 #, fuzzy
 msgid "Track Number"
 msgstr "Niverenn ar roudenn"
 
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:214
 #, fuzzy
 msgid "Track Length"
 msgstr "Hirder ar roudenn :"
@@ -1138,6 +1105,30 @@ msgstr ""
 msgid "No info available for %s.\n"
 msgstr ""
 
+#: src/libaudgui/jump-to-time.c:75
+#, fuzzy
+msgid "Jump to Time"
+msgstr "Lammat d'ar restr"
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr ""
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Export Playlist"
+msgstr "Kargañ ar roll tonioù"
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Import Playlist"
+msgstr "Kargañ ar roll tonioù"
+
+#: src/libaudgui/playlists.c:71
+#, c-format
+msgid "Overwrite %s?"
+msgstr ""
+
 #: src/libaudgui/ui_about.c:71
 msgid "About Audacious"
 msgstr "Diwar-benn Audacious"
@@ -1201,20 +1192,20 @@ msgstr "Goullonderiñ A-B"
 msgid "Close on Jump"
 msgstr "/Serriñ"
 
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:240
 #, fuzzy
 msgid "Playlist Manager"
 msgstr "/Roll tonioù"
 
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:264
 msgid "Entries"
 msgstr "Bouetaduroù"
 
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:285
 msgid "_Rename"
 msgstr "_Adenvel"
 
-#: src/libaudgui/ui_playlist_manager.c:251
+#: src/libaudgui/ui_playlist_manager.c:309
 #, fuzzy
 msgid "_Close dialog on activating playlist"
 msgstr "/Serriñ"
@@ -1227,6 +1218,12 @@ msgstr ""
 msgid "Add URL"
 msgstr "Ouzhpennañ un URL"
 
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+
 #: src/libeggsmclient/eggdesktopfile.c:165
 msgid "File is not a valid .desktop file"
 msgstr ""
@@ -1236,25 +1233,25 @@ msgstr ""
 msgid "Unrecognized desktop file Version '%s'"
 msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:967
 #, fuzzy, c-format
 msgid "Starting %s"
 msgstr "Italianeg :"
 
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1108
 msgid "Application does not accept documents on command line"
 msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1176
 #, c-format
 msgid "Unrecognized launch option: %d"
 msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1375
 msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
 msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1396
 msgid "Not a launchable item"
 msgstr ""
 
@@ -1287,6 +1284,24 @@ msgid "Show session management options"
 msgstr ""
 
 #, fuzzy
+#~ msgid "<b>Volume Control</b>"
+#~ msgstr "<b>_Nodrezhoù</b>"
+
+#, fuzzy
+#~ msgid "<b>Mode</b>"
+#~ msgstr "<b>Meta-roadoù</b>"
+
+#, fuzzy
+#~ msgid "<b>Clipping Prevention</b>"
+#~ msgstr "Kefluniadur al lugent MPEG son"
+
+#~ msgid "<b>Audio System</b>"
+#~ msgstr "<b>Reiziad klevet</b>"
+
+#~ msgid "Current output plugin:"
+#~ msgstr "Lugent ezkas red :"
+
+#, fuzzy
 #~ msgid "%s: Unable to open display, exiting.\n"
 #~ msgstr ""
 #~ "%s\n"
@@ -1620,9 +1635,6 @@ msgstr ""
 #~ msgid "Filename:"
 #~ msgstr "Anv ar restr :"
 
-#~ msgid "Input plugin: %s"
-#~ msgstr "Lugent engas : %s"
-
 #, fuzzy
 #~ msgid "ZOH Interpolation"
 #~ msgstr "Implijit dilesadur"
@@ -1974,9 +1986,6 @@ msgstr ""
 #~ msgid "Jump to Playlist Start"
 #~ msgstr "Lamat da zeroù ar roll tonioù"
 
-#~ msgid "Jump to File"
-#~ msgstr "Lammat d'ar restr"
-
 #~ msgid "Load"
 #~ msgstr "Kargañ"
 
diff --git a/po/ca.po b/po/ca.po
index c691f10..3cc28ed 100644
--- a/po/ca.po
+++ b/po/ca.po
@@ -1,29 +1,45 @@
-# Catalan messages for Audacious.
-# Copyright (C) 2008 Ernest Adrogué <eadrogue at gmx.net>
+# Catalan translation for Audacious
+# Copyright (C) Audacious translators
 # This file is distributed under the same license as the Audacious package.
-# Ernest Adrogué <eadrogue at gmx.net>, 2007, 2008.
 #
+# Translators:
+# Ernest Adrogué <eadrogue at gmx.net>, 2007, 2008.
+# Jordi Amenós <>, 2011.
 msgid ""
 msgstr ""
-"Project-Id-Version: audacious 1.5.1\n"
-"Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
-"PO-Revision-Date: 2009-04-11 16:00+0200\n"
-"Last-Translator: Ernest Adrogué <eadrogue at gmx.net>\n"
-"Language-Team: Catalan <ca at dodds.net>\n"
-"Language: ca\n"
+"Project-Id-Version: Audacious\n"
+"Report-Msgid-Bugs-To: http://redmine.audacious-media-player.org/\n"
+"POT-Creation-Date: 2011-12-19 14:21-0500\n"
+"PO-Revision-Date: 2011-12-25 05:09+0000\n"
+"Last-Translator: Jordi Amenós <>\n"
+"Language-Team: Catalan\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Language: ca\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+
+#: src/audacious/adder.c:77
+msgid "Searching ..."
+msgstr "Cercant "
+
+#: src/audacious/adder.c:113
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] ""
+"Traduccions plurals\n"
+"\n"
+"un:%d arxiu trobat"
+msgstr[1] "altres:%d arxius trobats"
 
-#: src/audacious/chardet.c:37
+#: src/audacious/chardet.c:38
 msgid "  (invalid UTF-8)"
 msgstr "  (UTF-8 no vàlid)"
 
 #: src/audacious/credits.c:35
-#, fuzzy
 msgid "Core developers:"
-msgstr "Versió 0.1.x:"
+msgstr "desenvolupadors principals:"
 
 #: src/audacious/credits.c:49
 msgid "Graphics:"
@@ -41,255 +57,236 @@ msgstr "Desenvolupament de connectors:"
 msgid "Patch authors:"
 msgstr "Millores:"
 
-#: src/audacious/credits.c:126
-#, fuzzy
+#: src/audacious/credits.c:127
 msgid "1.x developers:"
-msgstr "Versió 0.1.x:"
+msgstr "Desenvolupadors 1.x:"
 
-#: src/audacious/credits.c:148
+#: src/audacious/credits.c:149
 msgid "BMP Developers:"
 msgstr "Desenvolupadors del BMP:"
 
-#: src/audacious/credits.c:180
-#, fuzzy
+#: src/audacious/credits.c:181
 msgid "Belarusian:"
-msgstr "Búlgar:"
+msgstr "Bielorús:"
 
-#: src/audacious/credits.c:183
+#: src/audacious/credits.c:184
 msgid "Basque:"
-msgstr ""
+msgstr "Basc:"
 
-#: src/audacious/credits.c:186
+#: src/audacious/credits.c:187
 msgid "Brazilian Portuguese:"
 msgstr "Portuguès brasiler:"
 
-#: src/audacious/credits.c:190
+#: src/audacious/credits.c:192
 msgid "Breton:"
 msgstr "Bretó:"
 
-#: src/audacious/credits.c:193
+#: src/audacious/credits.c:195
 msgid "Bulgarian:"
 msgstr "Búlgar:"
 
-#: src/audacious/credits.c:196
+#: src/audacious/credits.c:198
 msgid "Catalan:"
 msgstr "Català:"
 
-#: src/audacious/credits.c:199
-#, fuzzy
+#: src/audacious/credits.c:201
 msgid "Chinese:"
-msgstr "Xinès"
+msgstr "Xinés:"
 
-#: src/audacious/credits.c:202
+#: src/audacious/credits.c:204
 msgid "Croatian:"
 msgstr "Croat:"
 
-#: src/audacious/credits.c:205
+#: src/audacious/credits.c:207
 msgid "Czech:"
 msgstr "Txec:"
 
-#: src/audacious/credits.c:208
+#: src/audacious/credits.c:210
 msgid "Dutch:"
 msgstr "Holandès:"
 
-#: src/audacious/credits.c:212
+#: src/audacious/credits.c:214
 msgid "Estonian:"
 msgstr "Estonià:"
 
-#: src/audacious/credits.c:215
+#: src/audacious/credits.c:217
 msgid "Finnish:"
 msgstr "Finès:"
 
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:222
 msgid "French:"
 msgstr "Francès:"
 
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:228
 msgid "German:"
 msgstr "Alemany:"
 
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:235
 msgid "Georgian:"
 msgstr "Georgià:"
 
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:238
 msgid "Greek:"
 msgstr "Grec:"
 
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:243
 msgid "Hindi:"
 msgstr "Hindi:"
 
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:246
 msgid "Hungarian:"
 msgstr "Hongarès:"
 
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:250
 msgid "Italian:"
 msgstr "Italià:"
 
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:254
 msgid "Japanese:"
 msgstr "Japonès:"
 
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:257
 msgid "Korean:"
 msgstr "Coreà:"
 
-#: src/audacious/credits.c:256
-#, fuzzy
+#: src/audacious/credits.c:260
 msgid "Latvian:"
-msgstr "Croat:"
+msgstr "Lituà:"
 
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:263
 msgid "Lithuanian:"
 msgstr "Lituà:"
 
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:268
 msgid "Macedonian:"
 msgstr "Macedoni:"
 
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:271
 msgid "Polish:"
 msgstr "Polonès:"
 
-#: src/audacious/credits.c:271
-#, fuzzy
+#: src/audacious/credits.c:277
 msgid "Portuguese:"
-msgstr "Portuguès brasiler:"
+msgstr "Portuguès:"
 
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:280
 msgid "Romanian:"
 msgstr "Romanès:"
 
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:284
 msgid "Russian:"
 msgstr "Rus:"
 
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:288
 msgid "Serbian (Latin):"
 msgstr "Serbi (llatí):"
 
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:291
 msgid "Serbian (Cyrillic):"
 msgstr "Serbi (ciríl·lic):"
 
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:295
 msgid "Simplified Chinese:"
 msgstr "Xinès simplificat:"
 
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:298
 msgid "Slovak:"
 msgstr "Eslovac:"
 
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:301
 msgid "Spanish:"
 msgstr "Espanyol:"
 
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:308
 msgid "Swedish:"
 msgstr "Suec:"
 
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:311
 msgid "Traditional Chinese:"
 msgstr "Xinès tradicional:"
 
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:317
 msgid "Turkish:"
 msgstr "Turc:"
 
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:321
 msgid "Ukrainian:"
 msgstr "Ucraïnès:"
 
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:325
+msgid "Vietnamese:"
+msgstr "Vietnamita:"
+
+#: src/audacious/credits.c:328
 msgid "Welsh:"
 msgstr "Gal·lès:"
 
-#: src/audacious/drct.c:254
-#, fuzzy
-msgid "Temporary Playlist"
-msgstr "Carrega una llista de reproducció"
-
-#: src/audacious/equalizer_preset.c:186
+#: src/audacious/equalizer_preset.c:187
 #, c-format
 msgid "Error importing Winamp EQF file '%s'"
 msgstr "Error quan s'importava el fitxer EQF de Winamp '%s'"
 
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr ""
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/audacious/main.c:247
+#: src/audacious/main.c:243
 msgid "Skip backwards in playlist"
 msgstr "Salta enrere en la llista de reproducció"
 
-#: src/audacious/main.c:248
+#: src/audacious/main.c:244
 msgid "Start playing current playlist"
 msgstr "Comença a reproduir la llista actual"
 
-#: src/audacious/main.c:249
+#: src/audacious/main.c:245
 msgid "Pause current song"
 msgstr "Fa una pausa en la reproducció"
 
-#: src/audacious/main.c:250
+#: src/audacious/main.c:246
 msgid "Stop current song"
 msgstr "Atura la reproducció"
 
-#: src/audacious/main.c:251
+#: src/audacious/main.c:247
 msgid "Pause if playing, play otherwise"
 msgstr "Fa una pausa, o bé reprèn la reproducció"
 
-#: src/audacious/main.c:252
+#: src/audacious/main.c:248
 msgid "Skip forward in playlist"
 msgstr "Salta endavant en la llista de reproducció"
 
-# el títol posa "Jump to Track" en realitat
-#: src/audacious/main.c:253
+#: src/audacious/main.c:249
 msgid "Display Jump to File dialog"
 msgstr "Obre el diàleg Salta al fitxer"
 
-#: src/audacious/main.c:254
-#, fuzzy
+#: src/audacious/main.c:250
 msgid "Add files to the playlist"
-msgstr "Afegeix fitxers a la llista de reproducció."
+msgstr "Afegir arxius a la llista de reproducció"
 
-#: src/audacious/main.c:255
+#: src/audacious/main.c:251
 msgid "Add new files to a temporary playlist"
 msgstr "Afegeix els fitxers a una llista temporal"
 
-#: src/audacious/main.c:256
+#: src/audacious/main.c:252
 msgid "Display the main window"
 msgstr "Mostra la finestra principal"
 
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr "Mostra totes les finestres obertes"
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:253
 msgid "Show version"
 msgstr "Mostra la versió"
 
-#: src/audacious/main.c:259
+#: src/audacious/main.c:254
 msgid "Print debugging messages"
-msgstr ""
+msgstr "Imprimir missatges de depuració "
+
+#: src/audacious/main.c:255
+msgid "Headless mode (beta)"
+msgstr "Control remot (beta)"
 
-#: src/audacious/main.c:260
+#: src/audacious/main.c:256
 msgid "FILE..."
 msgstr "FITXER..."
 
-#: src/audacious/main.c:272
+#: src/audacious/main.c:268
 msgid "- play multimedia files"
 msgstr "- reprodueix fitxers multimèdia"
 
-#: src/audacious/main.c:282
+#: src/audacious/main.c:278
 #, c-format
 msgid ""
 "%s: %s\n"
@@ -298,440 +295,376 @@ msgstr ""
 "%s: %s\n"
 "Proveu ‘%s --help’ per a més informació.\n"
 
-#: src/audacious/main.c:395
-msgid ""
-"Audacious seems to be already running but is not responding.  You can start "
-"another instance of the program, but please be warned that this can cause "
-"data loss.  If Audacious is not running, you can safely ignore this "
-"message.  Press OK to start Audacious or Cancel to quit."
-msgstr ""
-
-#: src/audacious/main.c:558
+#: src/audacious/main.c:557
 msgid "Audacious"
 msgstr "Audacious"
 
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:307
 #, c-format
 msgid "No decoder found for %s."
-msgstr ""
+msgstr "No es troba còdec per %s."
 
-#: src/audacious/playback.c:519
-msgid "Buffering ..."
-msgstr ""
+#: src/audacious/playlist-new.c:131
+msgid "New Playlist"
+msgstr "Nova llista de reproducció"
 
-#: src/audacious/playlist-new.c:288
-#, fuzzy
-msgid "Untitled Playlist"
-msgstr "Llista de reproducció nova"
+#: src/audacious/playlist-new.c:132
+msgid "Now Playing"
+msgstr "Nova reproducció"
 
-#: src/audacious/ui_preferences.c:88
+#: src/audacious/playlist-new.c:1625
+msgid ""
+"The playlist cannot be sorted because metadata scanning is still in progress"
+" (or has been disabled)."
+msgstr ""
+"La llista de reproducció no es pot ordenar perquè la detecció de metadades "
+"encara està en marxa (o s'ha desactivat )"
+
+#: src/audacious/ui_preferences.c:85
 msgid "Audio"
 msgstr "Àudio"
 
-#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
-msgstr "Replay Gain"
-
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:86
 msgid "Network"
-msgstr ""
+msgstr "Xarxa"
 
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:87 src/audacious/ui_preferences.c:1603
 msgid "Playlist"
 msgstr "Llistes"
 
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:88
 msgid "Plugins"
 msgstr "Connectors"
 
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:94 src/libaudgui/infopopup.c:203
 msgid "Artist"
 msgstr "Artista"
 
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:95 src/libaudgui/infopopup.c:205
 msgid "Album"
 msgstr "Àlbum"
 
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:201
+#: src/libaudgui/ui_playlist_manager.c:278
 msgid "Title"
 msgstr "Títol"
 
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:97
 msgid "Tracknumber"
 msgstr "Número de pista"
 
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:207
 msgid "Genre"
 msgstr "Gènere"
 
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:99
 msgid "Filename"
 msgstr "Nom del fitxer"
 
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:100
 msgid "Filepath"
 msgstr "Ubicació"
 
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:101
 msgid "Date"
 msgstr "Data"
 
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:209
 msgid "Year"
 msgstr "Any"
 
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:103
 msgid "Comment"
 msgstr "Comentari"
 
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:104
 msgid "Codec"
 msgstr "Códec"
 
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:105
 msgid "Quality"
 msgstr "Qualitat"
 
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:111
 msgid "None"
 msgstr "Cap"
 
+#: src/audacious/ui_preferences.c:112
+msgid "Arabic"
+msgstr "Àrab"
+
+#: src/audacious/ui_preferences.c:113
+msgid "Baltic"
+msgstr "Bàltic"
+
+#: src/audacious/ui_preferences.c:114
+msgid "Chinese"
+msgstr "Xinès"
+
 #: src/audacious/ui_preferences.c:115
-msgid "Japanese"
-msgstr "Japonès"
+msgid "Greek"
+msgstr "Grec"
 
 #: src/audacious/ui_preferences.c:116
-msgid "Taiwanese"
-msgstr "Taiwanès"
+msgid "Hebrew"
+msgstr "Hebreu"
 
 #: src/audacious/ui_preferences.c:117
-msgid "Chinese"
-msgstr "Xinès"
+msgid "Japanese"
+msgstr "Japonès"
 
 #: src/audacious/ui_preferences.c:118
 msgid "Korean"
 msgstr "Coreà"
 
 #: src/audacious/ui_preferences.c:119
-msgid "Russian"
-msgstr "Rus"
+msgid "Polish"
+msgstr "Polonès"
 
 #: src/audacious/ui_preferences.c:120
-msgid "Greek"
-msgstr "Grec"
+msgid "Russian"
+msgstr "Rus"
 
 #: src/audacious/ui_preferences.c:121
-msgid "Hebrew"
-msgstr "Hebreu"
+msgid "Taiwanese"
+msgstr "Taiwanès"
 
 #: src/audacious/ui_preferences.c:122
 msgid "Turkish"
 msgstr "Turc"
 
-#: src/audacious/ui_preferences.c:123
-msgid "Arabic"
-msgstr "Àrab"
-
-#: src/audacious/ui_preferences.c:124
-#, fuzzy
-msgid "Polish"
-msgstr "Polonès:"
-
-#: src/audacious/ui_preferences.c:125
-#, fuzzy
-msgid "Baltic"
-msgstr "Cèltica"
-
-#: src/audacious/ui_preferences.c:126
-msgid "Universal"
-msgstr "Universal"
-
-#: src/audacious/ui_preferences.c:146
-msgid "<b>Bit Depth</b>"
-msgstr "<b>Profunditat de bits</b>"
+#: src/audacious/ui_preferences.c:144
+msgid "Album mode"
+msgstr "Manera Àlbum"
 
 #: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr "Profunditat de bits de sortida:"
-
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
-"Tots els fluxos es convertiran a aquesta profunditat.\n"
-"Aquesta hauria de correspondre amb la profunditat de bits\n"
-"màxima que suporta la targeta de so o el connector de sortida."
+msgid "<b>Output Settings</b>"
+msgstr "<b>Opcions sortida</b>"
 
-#: src/audacious/ui_preferences.c:151
-msgid "<b>Volume Control</b>"
-msgstr "<b>Control de volum</b>"
+#: src/audacious/ui_preferences.c:149
+msgid "Bit depth:"
+msgstr "Profunditat de bits:"
 
 #: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr "Usa el control de volum per programari"
+msgid "Buffer size:"
+msgstr "Mida del buffer:"
 
 #: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
-"Usa el control de volum per programari. Això pot resultar útil en situacions "
-"en que el sistema d'àudio no permet controlar el volum de reproducció."
-
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
-msgstr "dB"
+msgid "ms"
+msgstr "ms"
 
-#: src/audacious/ui_preferences.c:160
-#, fuzzy
-msgid "Amplify untagged files:"
-msgstr "- reprodueix fitxers multimèdia"
+#: src/audacious/ui_preferences.c:155
+msgid "Use software volume control (not recommended)"
+msgstr "Utilitzar control de volum per software (no recomanat)"
 
-#: src/audacious/ui_preferences.c:164
-#, fuzzy
+#: src/audacious/ui_preferences.c:157
 msgid "<b>Replay Gain</b>"
-msgstr "<b>Mode de Replay Gain</b>"
+msgstr "<b>reproduir arxius sense fluctuacions de volum</b>"
 
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:158
 msgid "Enable Replay Gain"
 msgstr "Activa el Replay Gain"
 
-#: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>Meta-dades</b>"
-
-#: src/audacious/ui_preferences.c:168
-#, fuzzy
-msgid "Single track mode"
-msgstr "Mostra detalls de la pista"
+#: src/audacious/ui_preferences.c:161
+msgid "Prevent clipping (recommended)"
+msgstr "Evitar saturació (recomanat)"
 
-#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "Àlbum:"
-
-#: src/audacious/ui_preferences.c:172
-#, fuzzy
+#: src/audacious/ui_preferences.c:163
 msgid "<b>Adjust Levels</b>"
-msgstr "<b>Roda del ratolí</b>"
+msgstr "<b>Ajustar nivells</b>"
 
-#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "<b>Informació emergent</b>"
+#: src/audacious/ui_preferences.c:164
+msgid "Amplify all files:"
+msgstr "Amplificar tots els arxius:"
 
-#: src/audacious/ui_preferences.c:176
-#, fuzzy
-msgid "Enable clipping prevention"
-msgstr "Activa la prevenció d'escapçaments"
+#: src/audacious/ui_preferences.c:166 src/audacious/ui_preferences.c:169
+msgid "dB"
+msgstr "dB"
+
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify untagged files:"
+msgstr "Amplificar arxius sense etiquetar:"
 
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:172
 msgid "Proxy hostname:"
 msgstr "Nom del servidor intermediari:"
 
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:173
 msgid "Proxy port:"
 msgstr "Port del servidor intermediari:"
 
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:176
 msgid "Proxy username:"
 msgstr "Nom d'usuari:"
 
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:177
 msgid "Proxy password:"
 msgstr "Contrasenya:"
 
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:181
 msgid "<b>Proxy Configuration</b>"
 msgstr "<b>Configuració de servidors intermediaris</b>"
 
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:182
 msgid "Enable proxy usage"
 msgstr "Activa l'ús de servidor intermediari"
 
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:185
 msgid "Use authentication with proxy"
 msgstr "Autenticació al servidor intermediari"
 
-#: src/audacious/ui_preferences.c:197
-msgid ""
-"<span size=\"small\">Changing these settings will require a restart of "
-"Audacious.</span>"
-msgstr ""
-"<span size=\"small\">Si canvieu aquestes opcions haureu de reiniciar "
-"l'Audacious.</span>"
-
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
 msgid "Auto character encoding detector for:"
 msgstr "Detecció automàtica del joc de caràcters per a:"
 
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:198
 msgid "Fallback character encodings:"
 msgstr "Jocs de caràcters de reserva:"
 
-#: src/audacious/ui_preferences.c:209
-msgid ""
-"List of character encodings used for fall back conversion of metadata. If "
-"automatic character encoding detector failed or has been disabled, encodings "
-"in this list would be treated as candidates of the encoding of metadata, and "
-"fall back conversion from these encodings to UTF-8 would be attempted."
-msgstr ""
-"Llista de jocs de caràcters de reserva per a la conversió de meta-dades. Si "
-"la detecció automàtica falla o està desactivada, els jocs de caràcters "
-"d'aquesta llista s'utilitzaran com a candidats per a la conversió i "
-"s'intentarà una conversió d'aquests jocs de caràcters a UTF-8."
-
-#: src/audacious/ui_preferences.c:213
-#, fuzzy
+#: src/audacious/ui_preferences.c:202
 msgid "<b>Behavior</b>"
-msgstr "<b>Profunditat de bits</b>"
+msgstr "<b>Comportament</b>"
 
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:203
 msgid "Continue playback on startup"
 msgstr "Reprèn la reproducció en engegar"
 
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:205
 msgid "Advance when the current song is deleted"
-msgstr ""
+msgstr "Avançar quan la cançó que s'està reproduint s'elimina"
 
-#: src/audacious/ui_preferences.c:218
-#, fuzzy
+#: src/audacious/ui_preferences.c:207
 msgid "Clear the playlist when opening files"
-msgstr "Crea una llista de reproducció nova amb els elements trobats"
+msgstr "A l'obrir arxius esborrar la llista que s'està reproduint "
 
-#: src/audacious/ui_preferences.c:220
-#, fuzzy
+#: src/audacious/ui_preferences.c:209
 msgid "Open files in a temporary playlist"
-msgstr "Afegeix els fitxers a una llista temporal"
+msgstr "Obrir arxius en llista temporal de reproducció"
 
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:211
 msgid "<b>Metadata</b>"
 msgstr "<b>Meta-dades</b>"
 
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:212
+msgid "Do not load metadata for songs until played"
+msgstr "No desar metadates mentre la cançó s'està reproduint"
+
+#: src/audacious/ui_preferences.c:230
+msgid "TITLE"
+msgstr "TÍTOL"
+
+#: src/audacious/ui_preferences.c:231
+msgid "ARTIST - TITLE"
+msgstr "ARTISTA - TÍTOL"
+
+#: src/audacious/ui_preferences.c:232
+msgid "ARTIST - ALBUM - TITLE"
+msgstr "ARTISTA - ÀLBUM - TÍTOL"
+
+#: src/audacious/ui_preferences.c:233
+msgid "ARTIST - ALBUM - TRACK. TITLE"
+msgstr "ARTISTA - ÀLBUM - PISTA. TÍTOL"
+
+#: src/audacious/ui_preferences.c:234
+msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
+msgstr "ARTISTA [ ÀLBUM ] - PISTA. TÍTOL"
+
+#: src/audacious/ui_preferences.c:235
+msgid "ALBUM - TITLE"
+msgstr "ÀLBUM - TÍTOL"
+
+#: src/audacious/ui_preferences.c:556
 msgid "Category"
 msgstr "Categoria"
 
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:780
 msgid "Popup Information Settings"
 msgstr "Paràmetres de la informació emergent"
 
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:789
 msgid "<b>Cover image retrieve</b>"
 msgstr "<b>Obtenció de la imatge de portada</b>"
 
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:794
 msgid ""
 "While searching for the album's cover, Audacious looks for certain words in "
 "the filename. You can specify those words in the lists below, separated "
 "using commas."
 msgstr ""
-"Per a trobar la portada de l'àlbum, l'Audacious cerca certes paraules tretes "
-"del nom del fitxer. Podeu especificar aquestes paraules a les llistes de "
+"Per a trobar la portada de l'àlbum, l'Audacious cerca certes paraules tretes"
+" del nom del fitxer. Podeu especificar aquestes paraules a les llistes de "
 "sota, separades per comes."
 
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:811
 msgid "Exclude:"
 msgstr "Exclou:"
 
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:818
 msgid "Include:"
 msgstr "Inclou:"
 
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:835
 msgid "Recursively search for cover"
 msgstr "Cerca la portada recursivament"
 
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:845
 msgid "Search depth: "
 msgstr "Profunditat de recursió: "
 
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:859
 msgid "Use per-file cover"
 msgstr "Cerca una portada per a cada fitxer"
 
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:862
 msgid "<b>Miscellaneous</b>"
 msgstr "<b>Miscel·lània</b>"
 
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:871
 msgid "Show Progress bar for the current track"
 msgstr "Mostra una barra de progressió per a la pista actual"
 
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:881
 msgid "Delay until filepopup comes up: "
 msgstr "Retard de la finestra emergent: "
 
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1309
+msgid "Custom"
+msgstr "Personalitzat"
+
+#: src/audacious/ui_preferences.c:1352
 msgid "<b>Song Display</b>"
 msgstr "<b>Visualització de les cançons</b>"
 
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1361
 msgid "Show song numbers"
-msgstr ""
+msgstr "Mostrar el numero de les cançons"
 
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1372
 msgid "Show leading zeroes (02:00 instead of 2:00)"
-msgstr ""
+msgstr "Mostrar zeros a l'esquerra (02:00 en comptes de 2:00)"
 
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1394
 msgid "Show information about titlestring format"
 msgstr "Mostra informació sobre el format del títol"
 
-#: src/audacious/ui_preferences.c:1514
-msgid "TITLE"
-msgstr "TÍTOL"
-
-#: src/audacious/ui_preferences.c:1515
-msgid "ARTIST - TITLE"
-msgstr "ARTISTA - TÍTOL"
-
-#: src/audacious/ui_preferences.c:1516
-msgid "ARTIST - ALBUM - TITLE"
-msgstr "ARTISTA - ÀLBUM - TÍTOL"
-
-#: src/audacious/ui_preferences.c:1517
-msgid "ARTIST - ALBUM - TRACK. TITLE"
-msgstr "ARTISTA - ÀLBUM - PISTA. TÍTOL"
-
-#: src/audacious/ui_preferences.c:1518
-msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
-msgstr "ARTISTA [ ÀLBUM ] - PISTA. TÍTOL"
-
-#: src/audacious/ui_preferences.c:1519
-msgid "ALBUM - TITLE"
-msgstr "ÀLBUM - TÍTOL"
-
-#: src/audacious/ui_preferences.c:1520
-msgid "Custom"
-msgstr "Personalitzat"
-
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1410
 msgid "Custom string:"
 msgstr "Cadena personalitzada:"
 
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1417
 msgid "Title format:"
 msgstr "Format del títol:"
 
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1428
 msgid "<b>Popup Information</b>"
 msgstr "<b>Informació emergent</b>"
 
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1443
 msgid "Show popup information for playlist entries"
 msgstr ""
 "Mostra informació emergent per als elements de la llista de reproducció"
 
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1444
 msgid ""
 "Toggles popup information window for the pointed entry in the playlist. The "
 "window shows title of song, name of album, genre, year of publish, track "
@@ -742,392 +675,405 @@ msgstr ""
 "gènere, l'any de publicació, el número de pista, la durada de la pista i "
 "material artístic."
 
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1455
 msgid "Edit settings for popup information"
 msgstr "Edita els paràmetres de la informació emergent"
 
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>Sistema d'àudio</b>"
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "Mida del buffer:"
-
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
-msgstr "Connector de sortida actiu:"
+#: src/audacious/ui_preferences.c:1544
+msgid "Output plugin:"
+msgstr "Connector de sortida"
 
-#: src/audacious/ui_preferences.c:1790
-#, fuzzy
+#: src/audacious/ui_preferences.c:1603
 msgid "Transport"
-msgstr "Traductors"
+msgstr "Transport"
 
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1603
 msgid "Input"
-msgstr ""
+msgstr "Entrada"
 
-#: src/audacious/ui_preferences.c:1791
-#, fuzzy
+#: src/audacious/ui_preferences.c:1604
 msgid "Effect"
-msgstr "<b>Efectes</b>"
+msgstr "Efectes"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1604
 msgid "Visualization"
 msgstr "Visualització"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1604
 msgid "General"
-msgstr ""
+msgstr "General"
 
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1644
 msgid "Audacious Preferences"
 msgstr "Preferències de l'Audacious"
 
-#: src/audacious/util.c:161
+#: src/audacious/util.c:120
 #, c-format
 msgid "Could not create directory (%s): %s\n"
 msgstr "No s'ha pogut crear el directori (%s): %s\n"
 
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:273
 msgid "Position not found."
-msgstr ""
+msgstr "No es troba aquesta posició."
 
-#: src/audtool/handlers_vitals.c:64
+#: src/audtool/handlers_vitals.c:63
 msgid "No song playing."
-msgstr ""
+msgstr "Aquesta cançó no es pot reproduir."
 
-#: src/libaudcore/tuple.c:685
+#: src/libaudcore/tuple.c:462
 msgid "Mono"
-msgstr ""
+msgstr "Mono"
 
-#: src/libaudcore/tuple.c:687
-#, fuzzy
+#: src/libaudcore/tuple.c:464
 msgid "Stereo"
-msgstr "estèreo"
+msgstr "Estèreo"
 
-#: src/libaudcore/tuple.c:689
+#: src/libaudcore/tuple.c:466
 #, c-format
-msgid "%d channels"
-msgstr ""
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] ""
+"Traduccions plurals\n"
+"\n"
+"un:%d canal"
+msgstr[1] "altres:%d canals"
 
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/confirm.c:78
 #, c-format
 msgid ""
 "Are you sure you want to close %s?  If you do, any changes made since the "
 "playlist was exported will be lost."
 msgstr ""
+"Estar segur de tancar %s?  qualsevol canvi que hagi fet a la llista de "
+"reproducció es perdrà."
 
-#: src/libaudgui/confirm.c:77
-#, fuzzy
+#: src/libaudgui/confirm.c:91
 msgid "_Don't show this message again"
-msgstr "No mostrar més aquest avís"
+msgstr "_No torni a sortir aquest missatge"
 
-#: src/libaudgui/confirm.c:115
-#, fuzzy
+#: src/libaudgui/confirm.c:128
 msgid "Rename Playlist"
-msgstr "Desa una llista de reproducció"
+msgstr "Reanomena la llista de reproducció"
 
 #: src/libaudgui/effects-menu.c:76
 msgid "settings ..."
-msgstr ""
+msgstr "Opcions..."
 
-#: src/libaudgui/equalizer.c:68
-#, fuzzy
+#: src/libaudgui/equalizer.c:53
 msgid "_Enable"
-msgstr "Actiu"
+msgstr "_Connecta"
 
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:125
 msgid "31 Hz"
-msgstr ""
+msgstr "31 Hz"
 
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:125
 msgid "63 Hz"
-msgstr ""
+msgstr "63 Hz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:126
 msgid "125 Hz"
-msgstr ""
+msgstr "125 Hz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:126
 msgid "250 Hz"
-msgstr ""
+msgstr "250 Hz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:126
 msgid "500 Hz"
-msgstr ""
+msgstr "500 Hz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:126
 msgid "1 kHz"
-msgstr ""
+msgstr "1 kHz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:126
 msgid "2 kHz"
-msgstr ""
+msgstr "2 kHz"
 
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:127
 msgid "4 kHz"
-msgstr ""
+msgstr "4 kHz"
 
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:127
 msgid "8 kHz"
-msgstr ""
+msgstr "8 kHz"
 
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:127
 msgid "16 kHz"
-msgstr ""
+msgstr "16 kHz"
 
-#: src/libaudgui/equalizer.c:147
-#, fuzzy
+#: src/libaudgui/equalizer.c:132
 msgid "Equalizer"
-msgstr "Mostra l'equalitzador"
+msgstr "Equalitzador"
 
-#: src/libaudgui/equalizer.c:163
-#, fuzzy
+#: src/libaudgui/equalizer.c:148
 msgid "Preamp"
-msgstr "Preamp:"
+msgstr "Preamplificador"
 
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:211
 msgid "Track Number"
 msgstr "Número de pista"
 
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:213
 msgid "Track Length"
 msgstr "Durada de la pista:"
 
-#: src/libaudgui/infowin.c:77
+#: src/libaudgui/infowin.c:78
 msgid "Acid Jazz"
 msgstr "Jazz àcid"
 
-#: src/libaudgui/infowin.c:78
-#, fuzzy
+#: src/libaudgui/infowin.c:79
 msgid "Acid Rock"
-msgstr "Rock dur"
+msgstr "Acid Rock"
 
-#: src/libaudgui/infowin.c:79
+#: src/libaudgui/infowin.c:80
 msgid "Ambient"
 msgstr "Ambiental"
 
-#: src/libaudgui/infowin.c:80
-#, fuzzy
+#: src/libaudgui/infowin.c:81
 msgid "Bebop"
 msgstr "Bebop"
 
-#: src/libaudgui/infowin.c:81
+#: src/libaudgui/infowin.c:82
 msgid "Bluegrass"
 msgstr "Bluegrass"
 
-#: src/libaudgui/infowin.c:82
+#: src/libaudgui/infowin.c:83
 msgid "Blues"
 msgstr "Blues"
 
-#: src/libaudgui/infowin.c:83
+#: src/libaudgui/infowin.c:84
 msgid "Chamber Music"
 msgstr "Música de cambra"
 
-#: src/libaudgui/infowin.c:84
+#: src/libaudgui/infowin.c:85
 msgid "Classical"
 msgstr "Clàssica"
 
-#: src/libaudgui/infowin.c:85
+#: src/libaudgui/infowin.c:86
 msgid "Country"
 msgstr "Country"
 
-#: src/libaudgui/infowin.c:86
+#: src/libaudgui/infowin.c:87
 msgid "Death Metal"
 msgstr "Death metal"
 
-#: src/libaudgui/infowin.c:87
+#: src/libaudgui/infowin.c:88
 msgid "Disco"
 msgstr "Disco"
 
-#: src/libaudgui/infowin.c:88
+#: src/libaudgui/infowin.c:89
 msgid "Easy Listening"
 msgstr "Easy listening"
 
-#: src/libaudgui/infowin.c:89
+#: src/libaudgui/infowin.c:90
 msgid "Folk"
 msgstr "Folk"
 
-#: src/libaudgui/infowin.c:90
+#: src/libaudgui/infowin.c:91
 msgid "Funk"
 msgstr "Funk"
 
-#: src/libaudgui/infowin.c:91
+#: src/libaudgui/infowin.c:92
 msgid "Gangsta Rap"
 msgstr "Rap gangsta"
 
-#: src/libaudgui/infowin.c:92
+#: src/libaudgui/infowin.c:93
 msgid "Gospel"
 msgstr "Gospel"
 
-#: src/libaudgui/infowin.c:93
+#: src/libaudgui/infowin.c:94
 msgid "Grunge"
 msgstr "Grunge"
 
-#: src/libaudgui/infowin.c:94
+#: src/libaudgui/infowin.c:95
 msgid "Hard Rock"
 msgstr "Rock dur"
 
-#: src/libaudgui/infowin.c:95
+#: src/libaudgui/infowin.c:96
 msgid "Heavy Metal"
 msgstr "Heavy metal"
 
-#: src/libaudgui/infowin.c:96
-#, fuzzy
+#: src/libaudgui/infowin.c:97
 msgid "Hip-hop"
 msgstr "Hip-hop"
 
-#: src/libaudgui/infowin.c:97
+#: src/libaudgui/infowin.c:98
 msgid "House"
 msgstr "House"
 
-#: src/libaudgui/infowin.c:98
+#: src/libaudgui/infowin.c:99
 msgid "Jazz"
 msgstr "Jazz"
 
-#: src/libaudgui/infowin.c:99
+#: src/libaudgui/infowin.c:100
 msgid "Jungle"
 msgstr "Jungle"
 
-#: src/libaudgui/infowin.c:100
+#: src/libaudgui/infowin.c:101
 msgid "Metal"
 msgstr "Metal"
 
-#: src/libaudgui/infowin.c:101
+#: src/libaudgui/infowin.c:102
 msgid "New Age"
 msgstr "New age"
 
-#: src/libaudgui/infowin.c:102
+#: src/libaudgui/infowin.c:103
 msgid "New Wave"
 msgstr "New wave"
 
-#: src/libaudgui/infowin.c:103
+#: src/libaudgui/infowin.c:104
 msgid "Noise"
 msgstr "Soroll"
 
-#: src/libaudgui/infowin.c:104
+#: src/libaudgui/infowin.c:105
 msgid "Pop"
 msgstr "Pop"
 
-#: src/libaudgui/infowin.c:105
+#: src/libaudgui/infowin.c:106
 msgid "Punk Rock"
 msgstr "Punk rock"
 
-#: src/libaudgui/infowin.c:106
+#: src/libaudgui/infowin.c:107
 msgid "Rap"
 msgstr "Rap"
 
-#: src/libaudgui/infowin.c:107
+#: src/libaudgui/infowin.c:108
 msgid "Reggae"
 msgstr "Reggae"
 
-#: src/libaudgui/infowin.c:108
+#: src/libaudgui/infowin.c:109
 msgid "Rock"
 msgstr "Rock"
 
-#: src/libaudgui/infowin.c:109
-#, fuzzy
+#: src/libaudgui/infowin.c:110
 msgid "Rock and Roll"
-msgstr "Rock & roll"
+msgstr "Rock and Roll"
 
-#: src/libaudgui/infowin.c:110
+#: src/libaudgui/infowin.c:111
 msgid "Rhythm and Blues"
-msgstr ""
+msgstr "Rhythm and Blues"
 
-#: src/libaudgui/infowin.c:111
+#: src/libaudgui/infowin.c:112
 msgid "Ska"
 msgstr "Ska"
 
-#: src/libaudgui/infowin.c:112
+#: src/libaudgui/infowin.c:113
 msgid "Soul"
 msgstr "Soul"
 
-#: src/libaudgui/infowin.c:113
+#: src/libaudgui/infowin.c:114
 msgid "Swing"
 msgstr "Swing"
 
-#: src/libaudgui/infowin.c:114
+#: src/libaudgui/infowin.c:115
 msgid "Techno"
 msgstr "Tecno"
 
-#: src/libaudgui/infowin.c:115
-#, fuzzy
+#: src/libaudgui/infowin.c:116
 msgid "Trip-hop"
-msgstr "Trip-Hop"
+msgstr "Trip-hop"
 
-#: src/libaudgui/infowin.c:175 src/libaudgui/infowin.c:361
-#: src/libaudgui/infowin.c:364 src/libaudgui/infowin.c:367
+#: src/libaudgui/infowin.c:180 src/libaudgui/infowin.c:366
+#: src/libaudgui/infowin.c:369 src/libaudgui/infowin.c:372
 msgid "<span size=\"small\">n/a</span>"
 msgstr "<span size=\"small\">n/d</span>"
 
-#: src/libaudgui/infowin.c:265
+#: src/libaudgui/infowin.c:270
 msgid "Metadata updated successfully"
 msgstr "Les meta-dades s'han actualitzat correctament"
 
-#: src/libaudgui/infowin.c:270
+#: src/libaudgui/infowin.c:275
 msgid "Metadata updating failed"
 msgstr "Ha fallat l'actualització de les meta-dades"
 
-#: src/libaudgui/infowin.c:318
+#: src/libaudgui/infowin.c:323
 msgid "Track Information"
 msgstr "Informació de la pista"
 
-#: src/libaudgui/infowin.c:350
+#: src/libaudgui/infowin.c:355
 msgid "<span size=\"small\">Format:</span>"
 msgstr "<span size=\"small\">Format:</span>"
 
-#: src/libaudgui/infowin.c:354
+#: src/libaudgui/infowin.c:359
 msgid "<span size=\"small\">Quality:</span>"
 msgstr "<span size=\"small\">Qualitat:</span>"
 
-#: src/libaudgui/infowin.c:357
+#: src/libaudgui/infowin.c:362
 msgid "<span size=\"small\">Bitrate:</span>"
 msgstr "<span size=\"small\">Flux de bits:</span>"
 
-#: src/libaudgui/infowin.c:387
+#: src/libaudgui/infowin.c:392
 msgid "<span size=\"small\">Title</span>"
 msgstr "<span size=\"small\">Títol</span>"
 
-#: src/libaudgui/infowin.c:399
+#: src/libaudgui/infowin.c:404
 msgid "<span size=\"small\">Artist</span>"
 msgstr "<span size=\"small\">Artista</span>"
 
-#: src/libaudgui/infowin.c:411
+#: src/libaudgui/infowin.c:416
 msgid "<span size=\"small\">Album</span>"
 msgstr "<span size=\"small\">Àlbum</span>"
 
-#: src/libaudgui/infowin.c:423
+#: src/libaudgui/infowin.c:428
 msgid "<span size=\"small\">Comment</span>"
 msgstr "<span size=\"small\">Comentari</span>"
 
-#: src/libaudgui/infowin.c:435
+#: src/libaudgui/infowin.c:440
 msgid "<span size=\"small\">Genre</span>"
 msgstr "<span size=\"small\">Gènere</span>"
 
-#: src/libaudgui/infowin.c:456
+#: src/libaudgui/infowin.c:461
 msgid "<span size=\"small\">Year</span>"
 msgstr "<span size=\"small\">Any</span>"
 
-#: src/libaudgui/infowin.c:467
+#: src/libaudgui/infowin.c:472
 msgid "<span size=\"small\">Track Number</span>"
 msgstr "<span size=\"small\">Número de pista</span>"
 
-#: src/libaudgui/infowin.c:549
+#: src/libaudgui/infowin.c:551
 #, c-format
 msgid "%d kb/s"
 msgstr "%d kb/s"
 
-#: src/libaudgui/infowin.c:579
+#: src/libaudgui/infowin.c:578
 #, c-format
 msgid "No info available for %s.\n"
 msgstr ""
+"No hi ha informació disponible per %s.⏎\n"
+"\n"
+
+#: src/libaudgui/jump-to-time.c:75
+msgid "Jump to Time"
+msgstr "Salta al temps"
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr "mm:ss"
+
+#: src/libaudgui/playlists.c:39
+msgid "Export Playlist"
+msgstr "Exportar llista de reproducció"
+
+#: src/libaudgui/playlists.c:39
+msgid "Import Playlist"
+msgstr "Importar llista de reproducció"
+
+#: src/libaudgui/playlists.c:72
+#, c-format
+msgid "Overwrite %s?"
+msgstr "Reescriure %s?"
+
+#: src/libaudgui/queue-manager.c:186
+msgid "Queue Manager"
+msgstr "Gestor de cues"
 
-#: src/libaudgui/ui_about.c:71
+#: src/libaudgui/ui_about.c:69
 msgid "About Audacious"
 msgstr "Quant a l'Audacious"
 
-#: src/libaudgui/ui_about.c:93 src/libaudgui/ui_credits.c:122
+#: src/libaudgui/ui_about.c:90 src/libaudgui/ui_credits.c:122
 msgid "Credits"
 msgstr "Crèdits"
 
@@ -1135,109 +1081,114 @@ msgstr "Crèdits"
 msgid "Translators"
 msgstr "Traductors"
 
-#: src/libaudgui/ui_fileopener.c:108
+#: src/libaudgui/ui_fileopener.c:109
 msgid "Open Files"
 msgstr "Obre els fitxers"
 
-#: src/libaudgui/ui_fileopener.c:108
+#: src/libaudgui/ui_fileopener.c:109
 msgid "Add Files"
 msgstr "Afegeix els fitxers"
 
-#: src/libaudgui/ui_fileopener.c:110
+#: src/libaudgui/ui_fileopener.c:111
 msgid "Close dialog on Open"
 msgstr "Tanca el diàleg en obrir"
 
-#: src/libaudgui/ui_fileopener.c:110
+#: src/libaudgui/ui_fileopener.c:111
 msgid "Close dialog on Add"
 msgstr "Tanca el diàleg en afegir"
 
-#: src/libaudgui/ui_jumptotrack.c:133
-msgid "Un_queue"
-msgstr "Treu de la _cua"
-
-#: src/libaudgui/ui_jumptotrack.c:135 src/libaudgui/ui_jumptotrack.c:512
+#: src/libaudgui/ui_jumptotrack.c:103 src/libaudgui/ui_jumptotrack.c:111
+#: src/libaudgui/ui_jumptotrack.c:322
 msgid "_Queue"
 msgstr "_Posa a la cua"
 
-#: src/libaudgui/ui_jumptotrack.c:399
+#: src/libaudgui/ui_jumptotrack.c:109
+msgid "Un_queue"
+msgstr "Treu de la _cua"
+
+#: src/libaudgui/ui_jumptotrack.c:239
 msgid "Jump to Track"
 msgstr "Salta a la pista"
 
-#: src/libaudgui/ui_jumptotrack.c:442
+#: src/libaudgui/ui_jumptotrack.c:277
 msgid "Filter: "
 msgstr "Filtre: "
 
-#: src/libaudgui/ui_jumptotrack.c:443
+#: src/libaudgui/ui_jumptotrack.c:278
 msgid "_Filter:"
 msgstr "_Filtre:"
 
-#: src/libaudgui/ui_jumptotrack.c:461
+#: src/libaudgui/ui_jumptotrack.c:288
 msgid "Remember"
 msgstr "Recorda"
 
-#: src/libaudgui/ui_jumptotrack.c:470
-#, fuzzy
+#: src/libaudgui/ui_jumptotrack.c:295
 msgid "Clea_r"
-msgstr "Esborra A-B"
+msgstr "Neteja"
 
-#: src/libaudgui/ui_jumptotrack.c:504
+#: src/libaudgui/ui_jumptotrack.c:315
 msgid "Close on Jump"
 msgstr "Tanca en saltar"
 
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:252
 msgid "Playlist Manager"
 msgstr "Gestor de llistes"
 
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:279
 msgid "Entries"
 msgstr "Elements"
 
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:300
 msgid "_Rename"
 msgstr "_Reanomena"
 
-#: src/libaudgui/ui_playlist_manager.c:251
-#, fuzzy
+#: src/libaudgui/ui_playlist_manager.c:324
 msgid "_Close dialog on activating playlist"
-msgstr "Tanca el diàleg en obrir"
+msgstr "_Tancar diàlegs al activar llista de reproducció"
 
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:51
 msgid "Open URL"
-msgstr ""
+msgstr "Obrir URL"
 
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:51
 msgid "Add URL"
+msgstr "Afegir URL"
+
+#: src/libaudgui/util.c:98
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
 msgstr ""
 
 #: src/libeggsmclient/eggdesktopfile.c:165
 msgid "File is not a valid .desktop file"
 msgstr "El fitxer no és un fitxer \"desktop\" vàlid"
 
-#: src/libeggsmclient/eggdesktopfile.c:188
+#: src/libeggsmclient/eggdesktopfile.c:191
 #, c-format
 msgid "Unrecognized desktop file Version '%s'"
 msgstr "Versió del fitxer \"desktop\" no reconeguda: '%s'"
 
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:974
 #, c-format
 msgid "Starting %s"
 msgstr "Començant %s"
 
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1116
 msgid "Application does not accept documents on command line"
 msgstr "L'aplicació no admet documents a la línia d'ordres"
 
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1184
 #, c-format
 msgid "Unrecognized launch option: %d"
 msgstr "Opció d'iniciació no reconeguda: %d"
 
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1391
 msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
 msgstr ""
 "No es poden passar URIs de documents a una entrada d'escriptori 'Type=Link'"
 
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1412
 msgid "Not a launchable item"
 msgstr "No és un element iniciable"
 
@@ -1262,1955 +1213,11 @@ msgid "ID"
 msgstr "ID"
 
 #: src/libeggsmclient/eggsmclient.c:253
-#, fuzzy
 msgid "Session management options:"
-msgstr "Opcions de gestió de sessió"
+msgstr "Opcions de gestió de sessions "
 
 #: src/libeggsmclient/eggsmclient.c:254
-#, fuzzy
 msgid "Show session management options"
-msgstr "Mostra les opcions de gestió de sessió"
-
-#~ msgid "%s: Unable to open display, exiting.\n"
-#~ msgstr "%s: No s'ha pogut obrir la pantalla, sortint.\n"
-
-#~ msgid "Preamp:"
-#~ msgstr "Preamp:"
-
-#~ msgid "Default gain:"
-#~ msgstr "Guany per defecte:"
-
-#~ msgid "This gain will be used if file doesn't contain Replay Gain metadata."
-#~ msgstr ""
-#~ "Aquest valor de guany s'utilitzarà si el fitxer no conté meta-dades "
-#~ "Replay Gain."
-
-#~ msgid ""
-#~ "<span size=\"small\">Please remember that the most efficient way to "
-#~ "prevent signal clipping is not to use positive values above.</span>"
-#~ msgstr ""
-#~ "<span size=\"small\">Recordeu que la forma més efectiva de prevenir "
-#~ "escapçaments del senyal és no utilitzar valors positius aquí dalt.</span>"
-
-#~ msgid "<b>Replay Gain configuration</b>"
-#~ msgstr "<b>Configuració del Replay Gain</b>"
-
-#~ msgid "Track gain/peak"
-#~ msgstr "Pista"
-
-#~ msgid "Album gain/peak"
-#~ msgstr "Àlbum"
-
-#~ msgid "Use peak value from Replay Gain info for clipping prevention"
-#~ msgstr ""
-#~ "Usa el valor de pic de la informació Replay Gain per a prevenir "
-#~ "escapçaments"
-
-#~ msgid "Classic Rock"
-#~ msgstr "Rock clàssic"
-
-#~ msgid "Dance"
-#~ msgstr "Dance"
-
-#~ msgid "Oldies"
-#~ msgstr "Antigues"
-
-#~ msgid "Other"
-#~ msgstr "Altres"
-
-#~ msgid "R&B"
-#~ msgstr "Rythm & blues"
-
-#~ msgid "Industrial"
-#~ msgstr "Industrial"
-
-#~ msgid "Alternative"
-#~ msgstr "Alternativa"
-
-#~ msgid "Pranks"
-#~ msgstr "Bromes"
-
-#~ msgid "Soundtrack"
-#~ msgstr "Banda sonora"
-
-#~ msgid "Euro-Techno"
-#~ msgstr "Euro-tecno"
-
-#~ msgid "Vocal"
-#~ msgstr "Vocal"
-
-#~ msgid "Jazz+Funk"
-#~ msgstr "Jazz+Funk"
-
-#~ msgid "Fusion"
-#~ msgstr "Fusió"
-
-#~ msgid "Trance"
-#~ msgstr "Trance"
-
-#~ msgid "Instrumental"
-#~ msgstr "Instrumental"
-
-#~ msgid "Acid"
-#~ msgstr "Àcida"
-
-#~ msgid "Game"
-#~ msgstr "Jocs"
-
-#~ msgid "Sound Clip"
-#~ msgstr "Clip d'àudio"
-
-#~ msgid "AlternRock"
-#~ msgstr "Rock alternatiu"
-
-#~ msgid "Bass"
-#~ msgstr "Bass"
-
-#~ msgid "Punk"
-#~ msgstr "Punk"
-
-#~ msgid "Space"
-#~ msgstr "Espacial"
-
-#~ msgid "Meditative"
-#~ msgstr "Meditativa"
-
-#~ msgid "Instrumental Pop"
-#~ msgstr "Pop instrumental"
-
-#~ msgid "Instrumental Rock"
-#~ msgstr "Rock instrumental"
-
-#~ msgid "Ethnic"
-#~ msgstr "Ètnica"
-
-#~ msgid "Gothic"
-#~ msgstr "Gòtica"
-
-#~ msgid "Darkwave"
-#~ msgstr "Darkwave"
-
-#~ msgid "Techno-Industrial"
-#~ msgstr "Tecno-industrial"
-
-#~ msgid "Electronic"
-#~ msgstr "Electrònica"
-
-#~ msgid "Pop-Folk"
-#~ msgstr "Pop-folk"
-
-#~ msgid "Eurodance"
-#~ msgstr "Eurodance"
-
-#~ msgid "Dream"
-#~ msgstr "Dream"
-
-#~ msgid "Southern Rock"
-#~ msgstr "Rock del sud"
-
-#~ msgid "Comedy"
-#~ msgstr "Comèdia"
-
-#~ msgid "Cult"
-#~ msgstr "De culte"
-
-#~ msgid "Top 40"
-#~ msgstr "Top 40"
-
-#~ msgid "Christian Rap"
-#~ msgstr "Rap cristià"
-
-#~ msgid "Pop/Funk"
-#~ msgstr "Pop/Funk"
-
-#~ msgid "Native American"
-#~ msgstr "Nativa americana"
-
-#~ msgid "Cabaret"
-#~ msgstr "Cabaret"
-
-#~ msgid "Psychedelic"
-#~ msgstr "Psiquedèlica"
-
-#~ msgid "Rave"
-#~ msgstr "Rave"
-
-#~ msgid "Showtunes"
-#~ msgstr "Showtunes"
-
-#~ msgid "Trailer"
-#~ msgstr "Tràiler"
-
-#~ msgid "Lo-Fi"
-#~ msgstr "Lo-fi"
-
-#~ msgid "Tribal"
-#~ msgstr "Tribal"
-
-#~ msgid "Acid Punk"
-#~ msgstr "Punk àcid"
-
-#~ msgid "Polka"
-#~ msgstr "Polca"
-
-#~ msgid "Retro"
-#~ msgstr "Retro"
-
-#~ msgid "Musical"
-#~ msgstr "Musical"
-
-#~ msgid "Folk/Rock"
-#~ msgstr "Folk/Rock"
-
-#~ msgid "National Folk"
-#~ msgstr "Folk nacional"
-
-#~ msgid "Fast-Fusion"
-#~ msgstr "Fast-fusion"
-
-#~ msgid "Latin"
-#~ msgstr "Llatina"
-
-#~ msgid "Revival"
-#~ msgstr "Revival"
-
-#~ msgid "Celtic"
-#~ msgstr "Cèltica"
-
-#~ msgid "Avantgarde"
-#~ msgstr "Avantguardista"
-
-#~ msgid "Gothic Rock"
-#~ msgstr "Rock gòtic"
-
-#~ msgid "Progressive Rock"
-#~ msgstr "Rock progressiu"
-
-#~ msgid "Psychedelic Rock"
-#~ msgstr "Rock psiquedèlic"
-
-#~ msgid "Symphonic Rock"
-#~ msgstr "Rock simfònic"
-
-#~ msgid "Slow Rock"
-#~ msgstr "Rock lent"
-
-#~ msgid "Big Band"
-#~ msgstr "Big band"
-
-#~ msgid "Chorus"
-#~ msgstr "Cors"
-
-#~ msgid "Acoustic"
-#~ msgstr "Acústica"
-
-#~ msgid "Humour"
-#~ msgstr "Humor"
-
-#~ msgid "Speech"
-#~ msgstr "Parla"
-
-#~ msgid "Chanson"
-#~ msgstr "Chanson"
-
-#~ msgid "Opera"
-#~ msgstr "Ã’pera"
-
-#~ msgid "Sonata"
-#~ msgstr "Sonata"
-
-#~ msgid "Symphony"
-#~ msgstr "Simfonia"
-
-#~ msgid "Booty Bass"
-#~ msgstr "Booty bass"
-
-#~ msgid "Primus"
-#~ msgstr "Primus"
-
-#~ msgid "Porn Groove"
-#~ msgstr "Groove pornogràfic"
-
-#~ msgid "Satire"
-#~ msgstr "Sàtira"
-
-#~ msgid "Slow Jam"
-#~ msgstr "Jam lent"
-
-#~ msgid "Club"
-#~ msgstr "Club"
-
-#~ msgid "Tango"
-#~ msgstr "Tango"
-
-#~ msgid "Samba"
-#~ msgstr "Samba"
-
-#~ msgid "Folklore"
-#~ msgstr "Folklòrica"
-
-#~ msgid "Ballad"
-#~ msgstr "Balada"
-
-#~ msgid "Power Ballad"
-#~ msgstr "Balada enèrgica"
-
-#~ msgid "Rhythmic Soul"
-#~ msgstr "Soul rítmic"
-
-#~ msgid "Freestyle"
-#~ msgstr "Freestyle"
-
-#~ msgid "Duet"
-#~ msgstr "Duet"
-
-#~ msgid "Drum Solo"
-#~ msgstr "Solo de bateria"
-
-#~ msgid "A Cappella"
-#~ msgstr "A capella"
-
-#~ msgid "Euro-House"
-#~ msgstr "Euro-house"
-
-#~ msgid "Dance Hall"
-#~ msgstr "Dance Hall"
-
-#~ msgid "Goa"
-#~ msgstr "Goa"
-
-#~ msgid "Drum & Bass"
-#~ msgstr "Drum & bass"
-
-#~ msgid "Club-House"
-#~ msgstr "Club-house"
-
-#~ msgid "Hardcore"
-#~ msgstr "Hardcore"
-
-#~ msgid "Terror"
-#~ msgstr "Terror"
-
-#~ msgid "Indie"
-#~ msgstr "Independent"
-
-#~ msgid "BritPop"
-#~ msgstr "Pop britànic"
-
-#~ msgid "Negerpunk"
-#~ msgstr "Punk negre"
-
-#~ msgid "Polsk Punk"
-#~ msgstr "Punk polonès"
-
-#~ msgid "Beat"
-#~ msgstr "Beat"
-
-#~ msgid "Christian Gangsta Rap"
-#~ msgstr "Rap gangsta cristià"
-
-#~ msgid "Black Metal"
-#~ msgstr "Black metal"
-
-#~ msgid "Crossover"
-#~ msgstr "Crossover"
-
-#~ msgid "Contemporary Christian"
-#~ msgstr "Cristiana contemporània"
-
-#~ msgid "Christian Rock"
-#~ msgstr "Rock cristià"
-
-#~ msgid "Merengue"
-#~ msgstr "Merengue"
-
-#~ msgid "Salsa"
-#~ msgstr "Salsa"
-
-#~ msgid "Thrash Metal"
-#~ msgstr "Thrash metal"
-
-#~ msgid "Anime"
-#~ msgstr "Anime"
-
-#~ msgid "JPop"
-#~ msgstr "JPop"
-
-#~ msgid "Synthpop"
-#~ msgstr "Synthpop"
-
-#, fuzzy
-#~ msgid ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "An audio player for many platforms.\n"
-#~ "Copyright (C) 2005-2011 Audacious Development Team"
-#~ msgstr ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "Un reproductor multimèdia amb decoracions per a diverses plataformes.\n"
-#~ "\n"
-#~ "Copyright (C) 2005-2007 Equip de Desenvolupament de l'Audacious\n"
-
-#~ msgid "Unable to create log file (%s)!\n"
-#~ msgstr "No s'ha pogut crear el fitxer de registre (%s)!\n"
-
-#~ msgid "Print all errors and warnings to stdout"
-#~ msgstr "Envia tots els errors i avisos a ‘stdout’"
-
-#~ msgid "Used in macpacking"
-#~ msgstr "Usat en l'empaquetat per a Mac"
-
-#~ msgid "Sorry, threads aren't supported on your platform.\n"
-#~ msgstr "Aquesta plataforma no suporta fils.\n"
-
-#~ msgid "Module loading not supported! Plugins will not be loaded.\n"
-#~ msgstr "Càrrega de mòduls no suportada! No es carregarà cap connector.\n"
-
-#, fuzzy
-#~ msgid "Audacious - Unsupported Version Warning"
-#~ msgstr "Audacious- avís de motor GTK defectuós"
-
-#~ msgid "Playback"
-#~ msgstr "Reproducció"
-
-#~ msgid "<b>Playback</b>"
-#~ msgstr "<b>Reproducció</b>"
-
-#~ msgid ""
-#~ "When Audacious starts, automatically begin playing from the point where "
-#~ "we stopped before."
-#~ msgstr ""
-#~ "Quan l'Audacious s'engega, automàticament continua la reproducció en el "
-#~ "punt on es va aturar."
-
-#~ msgid "Don't advance in the playlist"
-#~ msgstr "Discontinua la reproducció programada"
-
-#~ msgid ""
-#~ "When finished playing a song, don't automatically advance to the next."
-#~ msgstr "Quan s'acaba una cançó, no avança automàticament a la següent."
-
-#~ msgid "Enabled"
-#~ msgstr "Actiu"
-
-#~ msgid "Description"
-#~ msgstr "Descripció"
-
-#~ msgid "Output Plugin Preferences"
-#~ msgstr "Preferències del connector de sortida"
-
-#~ msgid "Output Plugin Information"
-#~ msgstr "Informació sobre el connector de sortida"
-
-#~ msgid "_Decoder list:"
-#~ msgstr "Llista de _descodificadors:"
-
-#~ msgid "<span size=\"medium\"><b>Decoders</b></span>"
-#~ msgstr "<span size=\"medium\"><b>Descodificadors</b></span>"
-
-#~ msgid "_General plugin list:"
-#~ msgstr "Llista de connectors _generals:"
-
-#~ msgid "<span size=\"medium\"><b>General</b></span>"
-#~ msgstr "<span size=\"medium\"><b>General</b></span>"
-
-#~ msgid "_Visualization plugin list:"
-#~ msgstr "Llista de connectors de _visualització:"
-
-#~ msgid "<b>Visualization</b>"
-#~ msgstr "<b>Visualització</b>"
-
-#, fuzzy
-#~ msgid "Effect plugins:"
-#~ msgstr "Llista de connectors d'_efectes:"
-
-#~ msgid "<span size=\"small\">General</span>"
-#~ msgstr "<span size=\"small\">General</span>"
-
-#~ msgid "<span size=\"small\">Location</span>"
-#~ msgstr "<span size=\"small\">Ubicació</span>"
-
-#~ msgid "<span size=\"small\">Raw Metadata</span>"
-#~ msgstr "<span size=\"small\">Meta-dades en brut</span>"
-
-#~ msgid "Key"
-#~ msgstr "Clau"
-
-#~ msgid "Value"
-#~ msgstr "Valor"
-
-#, fuzzy
-#~ msgid ""
-#~ "Available interfaces:\n"
-#~ "\n"
-#~ msgstr "_Valors programats disponibles:"
-
-#, fuzzy
-#~ msgid "Available Plugin Preferences:\n"
-#~ msgstr "_Valors programats disponibles:"
-
-#~ msgid "Add/Open URL Dialog"
-#~ msgstr "Afegeix o obre un URL"
-
-# apòstrof
-#~ msgid "Enter location to play:"
-#~ msgstr "Introduïu la ubicació a reproduir:"
-
-#~ msgid "Don't clear the playlist"
-#~ msgstr "No neteja la llista de reproducció"
-
-#~ msgid "audacious: %s"
-#~ msgstr "audacious: %s"
-
-#~ msgid "Filename:"
-#~ msgstr "Nom del fitxer:"
-
-#~ msgid "No input plugin recognized this file"
-#~ msgstr "Cap connector d'entrada reconeix aquest fitxer"
-
-#~ msgid "Input plugin: %s"
-#~ msgstr "Connector d'entrada: %s"
-
-#~ msgid ""
-#~ "<b><big>No output plugin selected.</big></b>\n"
-#~ "You have not selected an output plugin."
-#~ msgstr ""
-#~ "<b><big>No hi ha cap connector de sortida seleccionat.</big></b>\n"
-#~ "No heu seleccionat cap connector de sortida."
-
-#~ msgid "Connectivity"
-#~ msgstr "Connectivitat"
-
-#~ msgid "Best Sinc Interpolation"
-#~ msgstr "Interpolació sinc millor possible"
-
-#~ msgid "Medium Sinc Interpolation"
-#~ msgstr "Interpolació sinc mitjana"
-
-#~ msgid "Fastest Sinc Interpolation"
-#~ msgstr "Interpolació sinc més ràpida possible"
-
-#~ msgid "ZOH Interpolation"
-#~ msgstr "Interpolació ZOH"
-
-#~ msgid "Linear Interpolation"
-#~ msgstr "Interpolació lineal"
-
-#~ msgid "Sampling Rate [Hz]:"
-#~ msgstr "Freqüència de mostra [Hz]:"
-
-#~ msgid "Interpolation Engine:"
-#~ msgstr "Motor d'interpolació:"
-
-#~ msgid ""
-#~ "<span size=\"small\">All streams will be converted to this sampling "
-#~ "rate.\n"
-#~ "This should be the max supported sampling rate of\n"
-#~ "the sound card or output plugin.</span>"
-#~ msgstr ""
-#~ "<span size=\"small\">Tots els fluxos es convertiran a aquesta freqüència "
-#~ "de mostra.\n"
-#~ "Tal freqüència hauria de ser la màxima permesa per la targeta de so o el\n"
-#~ "connector de sortida.</span>"
-
-#~ msgid "<b>Format Detection</b>"
-#~ msgstr "<b>Detecció de format</b>"
-
-#~ msgid "Detect file formats by extension."
-#~ msgstr "Detecta el format dels fitxers a partir de l'extensió."
-
-#~ msgid ""
-#~ "When checked, Audacious will detect file formats based by extension. Only "
-#~ "files with extensions of supported formats will be loaded."
-#~ msgstr ""
-#~ "Quan està marcada, l'Audacious detectarà els formats basant-se en les "
-#~ "extensions dels fitxers. Només es carregaran els fitxers que tinguin una "
-#~ "extensió d'algun format suportat."
-
-#~ msgid "<b>Sampling Rate Converter</b>"
-#~ msgstr "<b>Convertidor de la freqüència de mostra</b>"
-
-#~ msgid "Enable Sampling Rate Converter"
-#~ msgstr "Activa el convertidor de la freqüència de mostra"
-
-#~ msgid "<b>Advanced</b>"
-#~ msgstr "<b>Avançat</b>"
-
-#~ msgid "Bypass all of signal processing if possible"
-#~ msgstr "Evita tot processament del senyal, si és possible"
-
-#~ msgid ""
-#~ "Try to pass input plugin's output directly to output plugin, if the "
-#~ "latter supports format produced by input plugin. If it's true, all signal "
-#~ "processing will be disabled (i.e. DSP plugins, equalizer, resampling, "
-#~ "Replay Gain and software volume control)."
-#~ msgstr ""
-#~ "Tracta de passar la sortida del connector d'entrada directament al "
-#~ "connector de sortida, si aquest suporta el format produït pel primer. En "
-#~ "aquest cas, tot processament del senyal quedarà inoperant (i.e., "
-#~ "connectors DSP, equalització, remostratge, Replay Gain i control de volum "
-#~ "per programari)."
-
-#~ msgid "Dynamically adjust scale factor to prevent clipping"
-#~ msgstr "Ajusta el factor d'escalat dinàmicament per a prevenir escapçaments"
-
-#~ msgid "Decrease scale factor (gain) if clipping nevertheless occurred"
-#~ msgstr ""
-#~ "Decrementa el factor d'escalat (guany), si de totes maneres s'ha produït "
-#~ "un escapçament"
-
-#, fuzzy
-#~ msgid ""
-#~ "\n"
-#~ "Audacious has caught signal 11 (SIGSEGV).\n"
-#~ "\n"
-#~ "We apologize for the inconvenience, but Audacious has crashed.\n"
-#~ "This is a bug in the program, and should never happen under normal "
-#~ "circumstances.\n"
-#~ "Your current configuration has been saved and should not be damaged.\n"
-#~ "\n"
-#~ "You can help improve the quality of Audacious by filing a bug at http://"
-#~ "jira.atheme.org/\n"
-#~ "Please include the entire text of this message and a description of what "
-#~ "you were doing when\n"
-#~ "this crash occured in order to quickly expedite the handling of your bug "
-#~ "report:\n"
-#~ "\n"
-#~ msgstr ""
-#~ "\n"
-#~ "L'Audacious ha caçat un senyal 11 (SIGSEGV).\n"
-#~ "\n"
-#~ "Ho sentim, però l'Audacious s'ha estrellat.\n"
-#~ "Això és un error en el programa, i no hauria de passar en circumstàncies "
-#~ "normals.\n"
-#~ "La vostra configuració actual s'ha desat i no s'hauria d'haver fet "
-#~ "malbé.\n"
-#~ "\n"
-#~ "Podeu ajudar a millorar la qualitat de l'Audacious omplint un formulari "
-#~ "d'informe\n"
-#~ "d'errors a: http://bugzilla.atheme.org\n"
-#~ "Si us plau, inclogueu el text complet d'aquest missatge i una descripció "
-#~ "del que\n"
-#~ "estàveu fent quan s'ha produït la fallada, per tal que la investigació "
-#~ "pugui ser:\n"
-#~ "expiditiva.\n"
-
-#~ msgid ""
-#~ "Stacktrace was unavailable. You might want to reproduce this problem "
-#~ "while running Audacious under GDB to get a proper backtrace.\n"
-#~ msgstr ""
-#~ "No s'ha pogut fer una traça de la pila. Potser voldreu reproduir aquest "
-#~ "problema executant l'Audacious sota el GDB per a obtenir una traça "
-#~ "adequada.\n"
-
-#, fuzzy
-#~ msgid ""
-#~ "\n"
-#~ "Bugs can be reported at http://jira.atheme.org/ against the Audacious or "
-#~ "Audacious Plugins product.\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Podeu informar d'errors trobats a l'Audacious a http://bugzilla.atheme."
-#~ "org/.\n"
-
-#~ msgid ""
-#~ "Your signaling implementation is broken.\n"
-#~ "Expect unusable crash reports.\n"
-#~ msgstr ""
-#~ "L'implementació de senyals en aquest sistema és defectuosa.\n"
-#~ "Els informes de fallades poden ser inservibles.\n"
-
-#, fuzzy
-#~ msgid ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "\n"
-#~ "Copyright (C) 2005-2009 Audacious Development Team"
-#~ msgstr ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "\n"
-#~ "Copyright (C) 2005-2008 Equip de Desenvolupament de l'Audacious"
-
-#~ msgid "Detect file formats on demand, instead of immediately."
-#~ msgstr "Detecta el format dels fitxers a petició, en lloc d'immediatament"
-
-#~ msgid ""
-#~ "When checked, Audacious will detect file formats on demand. This can "
-#~ "result in a messier playlist, but delivers a major speed benefit."
-#~ msgstr ""
-#~ "Quan està activada, l'Audàcious detectarà el format quan ho necessiti. "
-#~ "Això pot fer que la llista de reproducció mostri informació incorrecta, "
-#~ "però aporta un gran benefici en termes de velocitat."
-
-#~ msgid "Load metadata from playlists and files"
-#~ msgstr "Llegeix les meta-dades dels fitxers i les llistes"
-
-#~ msgid "Load metadata (tag information) from music files."
-#~ msgstr ""
-#~ "Llegeix les meta-dades (informació de les etiquetes) dels fitxers de "
-#~ "música."
-
-#~ msgid "Can't jump to time when no track is being played.\n"
-#~ msgstr "No es pot saltar al temps quan no s'està reproduint cap pista.\n"
-
-#~ msgid "Jump to Time"
-#~ msgstr "Salta al temps"
-
-#~ msgid "minutes:seconds"
-#~ msgstr "minuts:segons"
-
-#~ msgid "Track length:"
-#~ msgstr "Durada de la pista:"
-
-#~ msgid "Save as Static Playlist"
-#~ msgstr "Desa com a llista de reproducció estàtica"
-
-#~ msgid "Use Relative Path"
-#~ msgstr "Usa camins relatius"
-
-#~ msgid "Error writing playlist \"%s\": %s"
-#~ msgstr "Error quan s'escrivia la llista de reproducció \"%s\": %s"
-
-#~ msgid "%s already exist. Continue?"
-#~ msgstr "%s ja existeix. Voleu continuar?"
-
-#~ msgid ""
-#~ "<b><big>Unable to save playlist.</big></b>\n"
-#~ "\n"
-#~ "Unknown file type for '%s'.\n"
-#~ msgstr ""
-#~ "<b><big>No es pot desar la llista.</big></b>\n"
-#~ "\n"
-#~ "Tipus de fitxer desconegut: '%s'.\n"
-
-#~ msgid "Presets"
-#~ msgstr "Perfils"
-
-#~ msgid "Mouse"
-#~ msgstr "Ratolí"
-
-#~ msgid "Pause between songs"
-#~ msgstr "Pausa entre cançons"
-
-#~ msgid "Pause for"
-#~ msgstr "Pausa de"
-
-#~ msgid "seconds"
-#~ msgstr "segons"
-
-#~ msgid "<b>Filename</b>"
-#~ msgstr "<b>Nom del fitxer</b>"
-
-#~ msgid "Convert underscores to blanks"
-#~ msgstr "Converteix els guions baixos en espais"
-
-#~ msgid "Convert %20 to blanks"
-#~ msgstr "Converteix els %20 en espais"
-
-#~ msgid "Convert backslash '\\' to forward slash '/'"
-#~ msgstr "Converteix les barres invertides '\\' en barres normals '/'"
-
-#~ msgid "<b>File Dialog</b>"
-#~ msgstr "<b>Diàleg de fitxer</b>"
-
-#~ msgid "Always refresh directory when opening file dialog"
-#~ msgstr "Refresca sempre el directori quan s'obri el diàleg d'obrir fitxer"
-
-#~ msgid ""
-#~ "Always refresh the file dialog (this will slow opening the dialog on "
-#~ "large directories, and Gnome VFS should handle automatically)."
-#~ msgstr ""
-#~ "Refresca sempre el diàleg de fitxer (això farà que els directoris grans "
-#~ "s'obrin a poc a poc, i el VFS del Gnome hauria de funcionar "
-#~ "automàticament)."
-
-#~ msgid "Changes volume by"
-#~ msgstr "Canvia el volum un"
-
-#~ msgid "percent"
-#~ msgstr "per cent"
-
-#~ msgid "Scrolls playlist by"
-#~ msgstr "Desplaça la llista de reproducció"
-
-#~ msgid "lines"
-#~ msgstr "línies"
-
-#~ msgid "Stop after Current Song"
-#~ msgstr "Para quan s'acabi la cançó"
-
-#~ msgid "Peaks"
-#~ msgstr "Pics"
-
-#~ msgid "Repeat"
-#~ msgstr "Repeteix"
-
-#~ msgid "Shuffle"
-#~ msgstr "Barreja"
-
-#~ msgid "No Playlist Advance"
-#~ msgstr "Discontinua la reproducció programada"
-
-#~ msgid "Play"
-#~ msgstr "Reprodueix"
-
-#~ msgid "Pause"
-#~ msgstr "Pausa"
-
-#~ msgid "Stop"
-#~ msgstr "Para"
-
-#~ msgid "Previous"
-#~ msgstr "Anterior"
-
-#~ msgid "Next"
-#~ msgstr "Següent"
-
-#~ msgid "Visualization Mode"
-#~ msgstr "Mode de visualització"
-
-#~ msgid "Analyzer Mode"
-#~ msgstr "Mode de l'analitzador"
-
-#~ msgid "Scope Mode"
-#~ msgstr "Mode de l'oscil·loscopi"
-
-#~ msgid "Voiceprint Mode"
-#~ msgstr "Mode de l'empremta de veu"
-
-#~ msgid "WindowShade VU Mode"
-#~ msgstr "Mode del WindowShade VU"
-
-#~ msgid "Refresh Rate"
-#~ msgstr "Velocitat de refresc"
-
-#~ msgid "Analyzer Falloff"
-#~ msgstr "Caiguda de l'analitzador"
-
-#~ msgid "Peaks Falloff"
-#~ msgstr "Caiguda dels pics"
-
-#~ msgid "New Playlist"
-#~ msgstr "Llista de reproducció nova"
-
-#~ msgid "Select Next Playlist"
-#~ msgstr "Selecciona la llista següent"
-
-#~ msgid "Select Previous Playlist"
-#~ msgstr "Selecciona la llista anterior"
-
-#~ msgid "Delete Playlist"
-#~ msgstr "Esborra la llista"
-
-#~ msgid "Load List"
-#~ msgstr "Carrega una llista"
-
-#~ msgid "Loads a playlist file into the selected playlist."
-#~ msgstr "Afegeix una llista de reproducció a la llista seleccionada"
-
-#~ msgid "Save List"
-#~ msgstr "Desa la llista"
-
-#~ msgid "Saves the selected playlist."
-#~ msgstr "Desa les llistes de reproducció seleccionades."
-
-#~ msgid "Save Default List"
-#~ msgstr "Desa la llista per defecte"
-
-#~ msgid "Saves the selected playlist to the default location."
-#~ msgstr ""
-#~ "Desa les llistes de reproducció seleccionades a la ubicació per defecte."
-
-#~ msgid "Refresh List"
-#~ msgstr "Refresca la llista"
-
-#~ msgid "Refreshes metadata associated with a playlist entry."
-#~ msgstr "Refresca les meta-dades associades a cada element de la llista."
-
-#~ msgid "List Manager"
-#~ msgstr "Gestor de llistes"
-
-#~ msgid "Opens the playlist manager."
-#~ msgstr "Obre el gestor de llistes de reproducció."
-
-#~ msgid "View"
-#~ msgstr "Finestres"
-
-#~ msgid "Add Internet Address..."
-#~ msgstr "Afegeix una adreça d'Internet..."
-
-#~ msgid "Adds a remote track to the playlist."
-#~ msgstr "Afegeix una pista remota a la llista de reproducció."
-
-#~ msgid "Add Files..."
-#~ msgstr "Afegeix fitxers..."
-
-#~ msgid "Search and Select"
-#~ msgstr "Cerca i selecciona"
-
-#~ msgid ""
-#~ "Searches the playlist and selects playlist entries based on specific "
-#~ "criteria."
-#~ msgstr ""
-#~ "Cerca a la llista de reproducció i selecciona elements basant-se en "
-#~ "criteris específics."
-
-#~ msgid "Invert Selection"
-#~ msgstr "Inverteix la selecció"
-
-#~ msgid "Inverts the selected and unselected entries."
-#~ msgstr "Inverteix els elements seleccionats i no seleccionats."
-
-#~ msgid "Select All"
-#~ msgstr "Selecciona tots els elements"
-
-#~ msgid "Selects all of the playlist entries."
-#~ msgstr "Selecciona tots els elements de la llista de reproducció."
-
-#~ msgid "Select None"
-#~ msgstr "Selecciona no res"
-
-#~ msgid "Deselects all of the playlist entries."
-#~ msgstr "Deselecciona tots els elements de la llista de reproducció."
-
-#~ msgid "Remove All"
-#~ msgstr "Treu tots els elements"
-
-#~ msgid "Removes all entries from the playlist."
-#~ msgstr "Treu tots els elements de la llista de reproducció."
-
-#~ msgid "Clear Queue"
-#~ msgstr "Neteja la cua"
-
-#~ msgid "Clears the queue associated with this playlist."
-#~ msgstr "Neteja la cua associada a aquesta llista de reproducció. "
-
-#~ msgid "Remove Unavailable Files"
-#~ msgstr "Treu els fitxers no disponibles"
-
-#~ msgid "Removes unavailable files from the playlist."
-#~ msgstr "Treu els fitxers no disponibles de la llista de reproducció."
-
-#~ msgid "Remove Duplicates"
-#~ msgstr "Treu els duplicats"
-
-#~ msgid "By Title"
-#~ msgstr "Per títol"
-
-#~ msgid "Removes duplicate entries from the playlist by title."
-#~ msgstr "Treu els elements duplicats de la llista de reproducció per títol."
-
-#~ msgid "By Filename"
-#~ msgstr "Per nom de fitxer"
-
-#~ msgid "Removes duplicate entries from the playlist by filename."
-#~ msgstr ""
-#~ "Treu els elements duplicats de la llista de reproducció per nom de fitxer."
-
-#~ msgid "By Path + Filename"
-#~ msgstr "Per ubicació i nom de fitxer"
-
-#~ msgid "Removes duplicate entries from the playlist by their full path."
-#~ msgstr ""
-#~ "Treu els elements duplicats de la llista de reproducció per l'ubicació "
-#~ "completa."
-
-#~ msgid "Remove Unselected"
-#~ msgstr "Treu els no seleccionats"
-
-#~ msgid "Remove unselected entries from the playlist."
-#~ msgstr "Treu els elements no seleccionats de la llista de reproducció."
-
-#~ msgid "Remove Selected"
-#~ msgstr "Treu els seleccionats"
-
-#~ msgid "Remove selected entries from the playlist."
-#~ msgstr "Treu els elements seleccionats de la llista de reproducció."
-
-#~ msgid "Randomize List"
-#~ msgstr "Barreja la llista"
-
-#~ msgid "Randomizes the playlist."
-#~ msgstr "Reordena la llista de forma aleatòria."
-
-#~ msgid "Reverse List"
-#~ msgstr "Inverteix la llista"
-
-#~ msgid "Reverses the playlist."
-#~ msgstr "Inverteix l'ordre de la llista."
-
-#~ msgid "Sort List"
-#~ msgstr "Ordena la llista"
-
-#~ msgid "Sorts the list by title."
-#~ msgstr "Ordena la llista pel títol."
-
-#, fuzzy
-#~ msgid "By Album"
-#~ msgstr "Àlbum"
-
-#, fuzzy
-#~ msgid "Sorts the list by album."
-#~ msgstr "Ordena la llista pel títol."
-
-#~ msgid "By Artist"
-#~ msgstr "Per l'artista"
-
-#~ msgid "Sorts the list by artist."
-#~ msgstr "Ordena la llista per l'artista."
-
-#~ msgid "Sorts the list by filename."
-#~ msgstr "Ordena la llista pel nom de fitxer."
-
-#~ msgid "Sorts the list by full pathname."
-#~ msgstr "Ordena la llista per la ubicació completa."
-
-#~ msgid "By Date"
-#~ msgstr "Per la data"
-
-#~ msgid "Sorts the list by modification time."
-#~ msgstr "Ordena la llista per la data de modificació."
-
-#~ msgid "By Track Number"
-#~ msgstr "Pel número de pista"
-
-#~ msgid "Sorts the list by track number."
-#~ msgstr "Ordena la llista pel número de pista."
-
-#~ msgid "By Playlist Entry"
-#~ msgstr "Per l'entrada a la llista"
-
-#~ msgid "Sorts the list by playlist entry."
-#~ msgstr "Ordena la llista de reproducció per l'entrada."
-
-#~ msgid "Sort Selected"
-#~ msgstr "Ordena els seleccionats"
-
-#~ msgid "File"
-#~ msgstr "Fitxer"
-
-#~ msgid "Help"
-#~ msgstr "Ajuda"
-
-#, fuzzy
-#~ msgid "Components"
-#~ msgstr "Comentari"
-
-#~ msgid "View Track Details"
-#~ msgstr "Mostra detalls de la pista"
-
-#~ msgid "Play File"
-#~ msgstr "Reprodueix fitxer"
-
-#~ msgid "Load and play a file"
-#~ msgstr "Carrega i reprodueix un fitxer"
-
-#~ msgid "Play Location"
-#~ msgstr "Reprodueix una font remota"
-
-#~ msgid "Play media from the selected location"
-#~ msgstr "Reprodueix un mitjà des de la ubicació seleccionada"
-
-#~ msgid "Plugin services"
-#~ msgstr "Serveis de connectors"
-
-#~ msgid "Preferences"
-#~ msgstr "Preferències"
-
-#~ msgid "Open preferences window"
-#~ msgstr "Obre la finestra de preferències"
-
-#~ msgid "_Quit"
-#~ msgstr "_Surt"
-
-#~ msgid "Quit Audacious"
-#~ msgstr "Tanca l'Audacious"
-
-#~ msgid "Set A-B"
-#~ msgstr "Estableix A-B"
-
-#~ msgid "Clear A-B"
-#~ msgstr "Esborra A-B"
-
-#~ msgid "Jump to Playlist Start"
-#~ msgstr "Salta a l'inici de la llista"
-
-#~ msgid "Jump to File"
-#~ msgstr "Salta al fitxer"
-
-#~ msgid "Queue Toggle"
-#~ msgstr "Posa o treu de la cua"
-
-#~ msgid "Enables/disables the entry in the playlist's queue."
-#~ msgstr "Posa o lleva un element de la cua."
-
-#~ msgid "Load"
-#~ msgstr "Carrega"
-
-#~ msgid "Import"
-#~ msgstr "Importa"
-
-#~ msgid "Save"
-#~ msgstr "Desa"
-
-#~ msgid "Delete"
-#~ msgstr "Elimina"
-
-#~ msgid "Preset"
-#~ msgstr "Perfil"
-
-#~ msgid "Load preset"
-#~ msgstr "Carrega un perfil"
-
-#~ msgid "Auto-load preset"
-#~ msgstr "Perfil automàtics"
-
-#~ msgid "Load auto-load preset"
-#~ msgstr "Carrega un perfil automàtic"
-
-#~ msgid "Default"
-#~ msgstr "Per defecte"
-
-#~ msgid "Load default preset into equalizer"
-#~ msgstr "Carrega el perfil per defecte a l'equalitzador"
-
-#~ msgid "Zero"
-#~ msgstr "Zero"
-
-#~ msgid "Set equalizer preset levels to zero"
-#~ msgstr "Posa els valors de l'equalitzador a zero"
-
-#~ msgid "From file"
-#~ msgstr "Des d'un fitxer"
-
-#~ msgid "Load preset from file"
-#~ msgstr "Carrega el perfil des d'un fitxer"
-
-#~ msgid "From WinAMP EQF file"
-#~ msgstr "D'un fitxer EQF del WinAMP"
-
-#~ msgid "Load preset from WinAMP EQF file"
-#~ msgstr "Carrega el perfil des d'un fitxer EQF del WinAMP"
-
-#~ msgid "WinAMP Presets"
-#~ msgstr "Perfils del WinAMP"
-
-#~ msgid "Import WinAMP presets"
-#~ msgstr "Importa perfils del WinAMP"
-
-#~ msgid "Save preset"
-#~ msgstr "Desa el perfil"
-
-#~ msgid "Save auto-load preset"
-#~ msgstr "Desa com a perfil automàtic"
-
-#~ msgid "Save default preset"
-#~ msgstr "Desa com a perfil per defecte"
-
-#~ msgid "To file"
-#~ msgstr "En un fitxer"
-
-#~ msgid "Save preset to file"
-#~ msgstr "Desa el perfil en un fitxer"
-
-#~ msgid "To WinAMP EQF file"
-#~ msgstr "En un fitxer EQF del WinAMP"
-
-#~ msgid "Save preset to WinAMP EQF file"
-#~ msgstr "Desa els valors en un fitxer EQF del WinAMP"
-
-#~ msgid "Delete preset"
-#~ msgstr "Esborra el perfil"
-
-#~ msgid "Delete auto-load preset"
-#~ msgstr "Esborra el perfil automàtic"
-
-#~ msgid ""
-#~ "<span size=\"small\">This is the amount of time to prebuffer audio "
-#~ "streams by, in milliseconds.\n"
-#~ "Increase this value if you are experiencing audio skipping.\n"
-#~ "Please note however, that high values will result in Audacious performing "
-#~ "poorly.</span>"
-#~ msgstr ""
-#~ "<span size=\"small\">Això és la mida del buffer preliminar per als fluxos "
-#~ "d'àudio, en mil·lisegons.\n"
-#~ "Augmenteu aquest valor si es produeixen talls en la reproducció.\n"
-#~ "Tingueu en compte, però, que valors alts afectaran negativament el "
-#~ "rendiment de l'Audacious.</span>"
-
-#~ msgid "Enable headless operation"
-#~ msgstr "Activa el mode d'operació sense frontal"
-
-#~ msgid ""
-#~ "<b><big>Unable to load skin.</big></b>\n"
-#~ "\n"
-#~ "Check that skin at '%s' is usable and default skin is properly installed "
-#~ "at '%s'\n"
-#~ msgstr ""
-#~ "<b><big>No s'ha pogut carregar la decoració.</big></b>\n"
-#~ "\n"
-#~ "Comproveu que la decoració a '%s' és utilitzable i que la decoració "
-#~ "predeterminada està instal·lada correctament a '%s'\n"
-
-#~ msgid "Headless operation enabled\n"
-#~ msgstr "Operació sense frontal activada\n"
-
-#~ msgid "Audacious core developers:"
-#~ msgstr "Desenvolupadors principals:"
-
-#~ msgid "Audacious Equalizer"
-#~ msgstr "Equalitzador de l'Audacious"
-
-#~ msgid "Play files"
-#~ msgstr "Reprodueix els fitxers"
-
-#~ msgid "Load files"
-#~ msgstr "Carrega els fitxers"
-
-#~ msgid "%s - Audacious"
-#~ msgstr "%s - Audacious"
-
-#~ msgid "VBR"
-#~ msgstr "VBR"
-
-#~ msgid "mono"
-#~ msgstr "mono"
-
-#~ msgid "Audacious - visibility warning"
-#~ msgstr "Audacious - avís de visibilitat"
-
-#~ msgid "Show main player window"
-#~ msgstr "Mostra la finestra principal"
-
-#~ msgid "Ignore"
-#~ msgstr "Ignora"
-
-#~ msgid ""
-#~ "Audacious has been started with all of its windows hidden.\n"
-#~ "You may want to show the player window again to control Audacious; "
-#~ "otherwise, you'll have to control it remotely via audtool or enabled "
-#~ "plugins (such as the statusicon plugin)."
-#~ msgstr ""
-#~ "L'Audacious ha arrencat amb totes les finestres ocultes.\n"
-#~ "Potser voldreu mostrar la finestra del reproductor per a controlar "
-#~ "l'Audacious; en cas contrari, l'haureu de controlar remotament via "
-#~ "l'audtool o connectors (com ara el connector statusicon)."
-
-#~ msgid "Always ignore, show/hide is controlled remotely"
-#~ msgstr "Ignora sempre, mostra/oculta es controla remotament"
-
-#~ msgid ""
-#~ "<big><b>Broken GTK engine in use</b></big>\n"
-#~ "\n"
-#~ "Audacious has detected that you are using a broken GTK engine.\n"
-#~ "\n"
-#~ "The theme engine you are using, <i>%s</i>, is incompatible with some of "
-#~ "the features used by modern skins. The incompatible features have been "
-#~ "disabled for this session.\n"
-#~ "\n"
-#~ "To use these features, please consider using a different GTK theme engine."
-#~ msgstr ""
-#~ "<big><b>Esteu utilitzant un motor GTK defectuós</b></big>\n"
-#~ "\n"
-#~ "L'Audacious ha detectat que esteu utilitzant un motor GTK defectuós.\n"
-#~ "\n"
-#~ "El motor de temes que esteu usant, <i>%s</i>, és incompatible amb algunes "
-#~ "funcions que usen moltes decoracions actuals. Les funcions en qüestió "
-#~ "s'han deshabilitat per a aquesta sessió.\n"
-#~ "\n"
-#~ "Si voleu utilitzar aquestes funcions, considereu canviar el motor GTK "
-#~ "actual."
-
-#~ msgid "Seek to: %d:%-2.2d/%d:%-2.2d (%d%%)"
-#~ msgstr "Anar a: %d:%-2.2d/%d:%-2.2d (%d%%)"
-
-#~ msgid "Volume: %d%%"
-#~ msgstr "Volum: %d%%"
-
-#~ msgid "Balance: %d%% left"
-#~ msgstr "Balanç: %d%% esquerra"
-
-#~ msgid "Balance: center"
-#~ msgstr "Balanç: centrat"
-
-#~ msgid "Balance: %d%% right"
-#~ msgstr "Balanç: %d%% dreta"
-
-#~ msgid "Options Menu"
-#~ msgstr "Menú d'opcions"
-
-#~ msgid "Disable 'Always On Top'"
-#~ msgstr "Desactiva 'Sempre per sobre'"
-
-#~ msgid "Enable 'Always On Top'"
-#~ msgstr "Activa 'Sempre per sobre'"
-
-#~ msgid "File Info Box"
-#~ msgstr "Informació del fitxer"
-
-#~ msgid "Disable 'GUI Scaling'"
-#~ msgstr "Desactiva l'escalat de la IUG"
-
-#~ msgid "Enable 'GUI Scaling'"
-#~ msgstr "Activa l'escalat de la IUG"
-
-#~ msgid "Visualization Menu"
-#~ msgstr "Menú de visualització"
-
-#~ msgid ""
-#~ "<b><big>Couldn't open audio.</big></b>\n"
-#~ "\n"
-#~ "Please check that:\n"
-#~ "1. You have the correct output plugin selected.\n"
-#~ "2. No other programs is blocking the soundcard.\n"
-#~ "3. Your soundcard is configured properly.\n"
-#~ msgstr ""
-#~ "<b><big>No es pot obrir la sortida d'àudio.</big></b>\n"
-#~ "\n"
-#~ "Si us plau, comproveu que:\n"
-#~ "1. Heu seleccionat el connector de sortida correcte.\n"
-#~ "2. Cap altre programa està bloquejant la targeta de so.\n"
-#~ "3. Heu configurat la targeta de so correctament.\n"
-
-#~ msgid "Autoscroll Songname"
-#~ msgstr "Belluga el títol"
-
-#~ msgid "Show Player"
-#~ msgstr "Mostra el reproductor"
-
-#~ msgid "Show Playlist Editor"
-#~ msgstr "Mostra l'editor de llistes"
-
-#~ msgid "Show Equalizer"
-#~ msgstr "Mostra l'equalitzador"
-
-#~ msgid "Always on Top"
-#~ msgstr "Sempre per sobre"
-
-#~ msgid "Put on All Workspaces"
-#~ msgstr "A tots els espais de treball"
-
-#~ msgid "Roll up Player"
-#~ msgstr "Enrotlla el reproductor"
-
-#~ msgid "Roll up Playlist Editor"
-#~ msgstr "Enrotlla l'editor de llistes"
-
-#~ msgid "Roll up Equalizer"
-#~ msgstr "Enrotlla l'equalitzador"
-
-#~ msgid "Scale"
-#~ msgstr "Escala"
-
-#~ msgid "DoubleSize"
-#~ msgstr "Dobla la mida"
-
-#~ msgid "Easy Move"
-#~ msgstr "Moviment fàcil"
-
-#~ msgid "Analyzer"
-#~ msgstr "Analitzador"
-
-#~ msgid "Scope"
-#~ msgstr "Oscil·loscopi"
-
-#~ msgid "Voiceprint"
-#~ msgstr "Empremta de veu"
-
-#~ msgid "Off"
-#~ msgstr "Apagat"
-
-#~ msgid "Normal"
-#~ msgstr "Normal"
-
-#~ msgid "Fire"
-#~ msgstr "Foc"
-
-#~ msgid "Vertical Lines"
-#~ msgstr "Línies verticals"
-
-#~ msgid "Lines"
-#~ msgstr "Línies"
-
-#~ msgid "Bars"
-#~ msgstr "Barres"
-
-#~ msgid "Dot Scope"
-#~ msgstr "Oscil·loscopi de punts"
-
-#~ msgid "Line Scope"
-#~ msgstr "Oscil·loscopi de línies"
-
-#~ msgid "Solid Scope"
-#~ msgstr "Oscil·loscopi sòlid"
-
-#~ msgid "Ice"
-#~ msgstr "Gel"
-
-#~ msgid "Smooth"
-#~ msgstr "Suau"
-
-#~ msgid "Full (~50 fps)"
-#~ msgstr "Al màxim (~50 fps)"
-
-#~ msgid "Half (~25 fps)"
-#~ msgstr "La meitat (~25 fps)"
-
-#~ msgid "Quarter (~13 fps)"
-#~ msgstr "Un quart (~13 fps)"
-
-#~ msgid "Eighth (~6 fps)"
-#~ msgstr "Un octau (~6 fps)"
-
-#~ msgid "Slowest"
-#~ msgstr "Mínim"
-
-#~ msgid "Slow"
-#~ msgstr "Lent"
-
-#~ msgid "Medium"
-#~ msgstr "Mitjà"
-
-#~ msgid "Fast"
-#~ msgstr "Ràpid"
-
-#~ msgid "Fastest"
-#~ msgstr "Al màxim"
-
-#~ msgid "Time Elapsed"
-#~ msgstr "Temps transcorregut"
-
-#~ msgid "Time Remaining"
-#~ msgstr "Temps que queda"
-
-#~ msgid "Plugin Services"
-#~ msgstr "Serveis de connectors"
-
-#~ msgid "Search entries in active playlist"
-#~ msgstr "Cerca elements en la llista de reproducció activa"
-
-#~ msgid ""
-#~ "Select entries in playlist by filling one or more fields. Fields use "
-#~ "regular expressions syntax, case-insensitive. If you don't know how "
-#~ "regular expressions work, simply insert a literal portion of what you're "
-#~ "searching for."
-#~ msgstr ""
-#~ "Seleccioneu elements de la llista de reproducció omplint un o diversos "
-#~ "camps. Aquests camps admeten la sintaxi d'expressions regulars i són "
-#~ "insensibles a la capitalització. Si no sabeu com funcionen les "
-#~ "expressions regulars, podeu escriure literalment el text que busqueu."
-
-#~ msgid "Title: "
-#~ msgstr "Títol: "
-
-#~ msgid "Album: "
-#~ msgstr "Àlbum:"
-
-#~ msgid "Artist: "
-#~ msgstr "Artista: "
-
-#~ msgid "Filename: "
-#~ msgstr "Nom del fitxer: "
-
-#~ msgid "Clear previous selection before searching"
-#~ msgstr "Neteja la selecció anterior abans de cercar"
-
-#~ msgid "Automatically toggle queue for matching entries"
-#~ msgstr "Posa o treu de la cua automàticament els elements trobats"
-
-#~ msgid "Audacious Playlist Editor"
-#~ msgstr "Editor de llistes de l'Audacious"
-
-#~ msgid "Appearance"
-#~ msgstr "Aparença"
-
-#~ msgid "<b>_Fonts</b>"
-#~ msgstr "<b>_Foses</b>"
-
-#~ msgid "_Player:"
-#~ msgstr "_Reproductor:"
-
-#~ msgid "Select main player window font:"
-#~ msgstr "Trieu la fosa de la finestra principal:"
-
-#~ msgid "_Playlist:"
-#~ msgstr "_Llista de reproducció:"
-
-#~ msgid "Select playlist font:"
-#~ msgstr "Trieu la fosa de la llista de reproducció:"
-
-#~ msgid "Use Bitmap fonts if available"
-#~ msgstr "Usa foses mapa de bits, si n'hi ha de disponibles"
-
-#~ msgid ""
-#~ "Use bitmap fonts if they are available. Bitmap fonts do not support "
-#~ "Unicode strings."
-#~ msgstr ""
-#~ "Usa foses tipus mapa de bits, si n'hi ha de disponibles. Les fonts de "
-#~ "mapa de bits no suporten cadenes Unicode."
-
-#~ msgid "<b>_Miscellaneous</b>"
-#~ msgstr "<b>_Miscel·lània</b>"
-
-#~ msgid "Show track numbers in playlist"
-#~ msgstr "Mostra el número de pista a la llista de reproducció"
-
-#~ msgid "Show separators in playlist"
-#~ msgstr "Mostra separadors a la llista de reproducció"
-
-#~ msgid "Show window manager decoration"
-#~ msgstr "Mostra la decoració del gestor de finestres"
-
-#~ msgid "This enables the window manager to show decorations for windows."
-#~ msgstr ""
-#~ "Això permet al gestor de finestres mostrar la decoració de les finestres."
-
-#~ msgid "Use XMMS-style file selector instead of the default selector"
-#~ msgstr "Usa el selector de fitxers estil XMMS, en lloc del predeterminat"
-
-#~ msgid ""
-#~ "This enables the XMMS/GTK1-style file selection dialogs. This selector is "
-#~ "provided by Audacious itself and is faster than the default GTK2 selector "
-#~ "(but sadly not as user-friendly)."
-#~ msgstr ""
-#~ "Això activa els diàlegs de selecció de fitxer de l'estil XMMS/GTK-1. "
-#~ "Aquest selector el proporciona el propi Audacious i és més ràpid que el "
-#~ "selector GTK2 predeterminat (però no és tant amigable)."
-
-#~ msgid "Use two-way text scroller"
-#~ msgstr "Usa desplaçament de text bidireccional"
-
-#~ msgid ""
-#~ "If selected, the file information text in the main window will scroll "
-#~ "back and forth. If not selected, the text will only scroll in one "
-#~ "direction."
-#~ msgstr ""
-#~ "Si està seleccionat, la informació del fitxer a la finestra principal es "
-#~ "desplaçarà endavant i enrere. Si no està seleccionat, el text es "
-#~ "desplaçarà en una sola direcció."
-
-#~ msgid "Disable inline gtk theme"
-#~ msgstr "Deshabilita els temes GTK en línia"
-
-#~ msgid "Allow loading incomplete skins"
-#~ msgstr "Permet carregar decoracions incompletes"
-
-#~ msgid ""
-#~ "If selected, audacious won't refuse loading broken skins. Use only if "
-#~ "your favourite skin doesn't work"
-#~ msgstr ""
-#~ "Si està seleccionat, l'Audacious no refusarà carregar decoracions "
-#~ "defectuoses. Useu-ho només si la vostra decoració favorita no funciona"
-
-#~ msgid "On load"
-#~ msgstr "En el moment d'obrir el fitxer"
-
-#~ msgid "Load metadata when adding the file to the playlist or opening it"
-#~ msgstr ""
-#~ "Llegeix les meta-dades en obrir el fitxer o afegir-lo a la llista de "
-#~ "reproducció"
-
-#~ msgid "On display"
-#~ msgstr "Quan s'hagin de mostrar"
-
-#~ msgid ""
-#~ "Load metadata on demand when displaying the file in the playlist. You may "
-#~ "need to set \"Detect file formats on demand\" in Audio page for full "
-#~ "benefit."
-#~ msgstr ""
-#~ "Llegeix les meta-dades quan calgui mostrar el fitxer a la llista de "
-#~ "reproducció. Potser haureu de marcar \"Detecta el format dels fitxers a "
-#~ "petició\" a l'apartat de So per a treure'n profit."
-
-#~ msgid "Color Adjustment"
-#~ msgstr "Ajustament del color"
-
-#~ msgid ""
-#~ "Audacious allows you to alter the color balance of the skinned UI. The "
-#~ "sliders below will allow you to do this."
-#~ msgstr ""
-#~ "L'Audacious us permet alterar el balanç de colors de la decoració de la "
-#~ "IG. Els controls de sota us permetran fer això."
-
-#~ msgid "Blue"
-#~ msgstr "Blau"
-
-#~ msgid "Green"
-#~ msgstr "Verd"
-
-#~ msgid "Red"
-#~ msgstr "Roig"
-
-#~ msgid "<b>_Skin</b>"
-#~ msgstr "<b>_Decoració</b>"
-
-#~ msgid "Refresh skin list"
-#~ msgstr "Refresca la llista de decoracions"
-
-#~ msgid "PREAMP"
-#~ msgstr "PREAMP"
-
-#~ msgid "60HZ"
-#~ msgstr "60HZ"
-
-#~ msgid "170HZ"
-#~ msgstr "170HZ"
-
-#~ msgid "310HZ"
-#~ msgstr "310HZ"
-
-#~ msgid "600HZ"
-#~ msgstr "600HZ"
-
-#~ msgid "1KHZ"
-#~ msgstr "1KHZ"
-
-#~ msgid "3KHZ"
-#~ msgstr "3KHZ"
-
-#~ msgid "6KHZ"
-#~ msgstr "6KHZ"
-
-#~ msgid "12KHZ"
-#~ msgstr "12KHZ"
-
-#~ msgid "14KHZ"
-#~ msgstr "14KHZ"
-
-#~ msgid "16KHZ"
-#~ msgstr "16KHZ"
-
-#~ msgid "Archived Winamp 2.x skin"
-#~ msgstr "Decoració del Winamp 2.x arxivada"
-
-#~ msgid "Unarchived Winamp 2.x skin"
-#~ msgstr "Decoració del Winamp 2.x no arxivada"
-
-#~ msgid "Show version and builtin features"
-#~ msgstr "Mostra la versió i les característiques suportades"
-
-#~ msgid "Use custom cursors"
-#~ msgstr "Utilitza cursors canviats"
-
-#~ msgid ""
-#~ "Sorry, threads isn't supported on your platform.\n"
-#~ "\n"
-#~ "If you're on a libc5 based linux system and installed Glib & GTK+ before "
-#~ "you\n"
-#~ "installed LinuxThreads you need to recompile Glib & GTK+.\n"
-#~ msgstr ""
-#~ "La vostra plataforma no suporta fils.\n"
-#~ "\n"
-#~ "Si esteu en un sistema Linux basat en la libc5 i heu instal·lat la Glib i "
-#~ "el\n"
-#~ "GTK+ abans d'instal·lar el LinuxThreads, heu de recompilar la Glib i el "
-#~ "GTK+.\n"
-
-#~ msgid "Select which Audacious session ID to use"
-#~ msgstr "Selecciona la sessió d'Audacious a utilitzar"
-
-#~ msgid "File preset extension:"
-#~ msgstr "Extensió dels fitxers de valors programats:"
-
-#~ msgid "localhost"
-#~ msgstr "localhost"
-
-#~ msgid ""
-#~ "<b><big>Unable to create %s.</big></b>\n"
-#~ "\n"
-#~ "Could not open glade file (%s). Please check your installation.\n"
-#~ msgstr ""
-#~ "<b><big>No es pot crear %s.</big></b>\n"
-#~ "\n"
-#~ "No s'ha pogut obrir el fitxer Glade (%s). Reviseu la instal·lació.\n"
-
-#~ msgid ""
-#~ "TITLE\n"
-#~ "ARTIST - TITLE\n"
-#~ "ARTIST - ALBUM - TITLE\n"
-#~ "ARTIST - ALBUM - TRACK. TITLE\n"
-#~ "ARTIST [ ALBUM ] - TRACK. TITLE\n"
-#~ "ALBUM - TITLE\n"
-#~ "Custom"
-#~ msgstr ""
-#~ "TÍTOL\n"
-#~ "ARTISTA - TÍTOL\n"
-#~ "ARTISTA - ÀLBUM - TÍTOL\n"
-#~ "ARTISTA - ÀLBUM - PISTA. TÍTOL\n"
-#~ "ARTISTA [ ÀLBUM ] - PISTA. TÍTOL\n"
-#~ "ÀLBUM - TÍTOL\n"
-#~ "Personalitzat"
-
-#~ msgid "VOLUME: %d%%"
-#~ msgstr "VOLUM: %d%%"
-
-#~ msgid "BALANCE: %d%% LEFT"
-#~ msgstr "BALANÇ: %d%% ESQUERRA"
-
-#~ msgid "BALANCE: CENTER"
-#~ msgstr "BALANÇ: CENTRE"
-
-#~ msgid "BALANCE: %d%% RIGHT"
-#~ msgstr "BALANÇ: %d%% DRETA"
-
-#~ msgid "Last.fm radio"
-#~ msgstr "Ràdio Last.fm"
-
-#~ msgid ""
-#~ "<b><big>No playable CD found.</big></b>\n"
-#~ "\n"
-#~ "No CD inserted, or inserted CD is not an audio CD.\n"
-#~ msgstr ""
-#~ "<b><big>No s'ha trobat cap CD reproduïble</big></b>\n"
-#~ "\n"
-#~ "No hi ha cap CD inserit, o el CD inserit no és un CD d'àudio.\n"
-
-#~ msgid "Performer/Artist"
-#~ msgstr "Intèrpret/Artista"
-
-#~ msgid "File extension"
-#~ msgstr "Extensió del fitxer"
-
-#~ msgid "%{n:...%}: Display \"...\" only if element %n is present"
-#~ msgstr "%{n:...%}: Mostra \"...\" només si l'element %n està present"
-
-#~ msgid ""
-#~ "Sorry, your GTK+ version (%d.%d.%d) does not work with Audacious.\n"
-#~ "Please use GTK+ %s or newer.\n"
-#~ msgstr ""
-#~ "La versió del GTK+ (%d.%d.%d) no funciona amb l'Audacious.\n"
-#~ "Si us plau, utilitzeu la versió GTK+ %s, o posterior.\n"
-
-#~ msgid "OPTIONS MENU"
-#~ msgstr "MENÚ D'OPCIONS"
-
-#~ msgid "DISABLE ALWAYS ON TOP"
-#~ msgstr "DESHABILITA SEMPRE A DALT"
-
-#~ msgid "ENABLE ALWAYS ON TOP"
-#~ msgstr "HABILITA SEMPRE A DALT"
-
-#~ msgid "FILE INFO BOX"
-#~ msgstr "INFORMACIÓ DEL FITXER"
-
-#~ msgid "DISABLE DOUBLESIZE"
-#~ msgstr "DESHABILITA MIDA DOBLE"
-
-#~ msgid "ENABLE DOUBLESIZE"
-#~ msgstr "HABILITA MIDA DOBLE"
-
-#~ msgid "VISUALIZATION MENU"
-#~ msgstr "MENÚ DE VISUALITZACIÓ"
-
-#~ msgid ""
-#~ "<b><big>Unable to play files.</big></b>\n"
-#~ "\n"
-#~ "The following files could not be played. Please check that:\n"
-#~ "1. they are accessible.\n"
-#~ "2. you have enabled the media plugins required."
-#~ msgstr ""
-#~ "<b><big>No es pot reproduir el fitxer.</big></b>\n"
-#~ "\n"
-#~ "Els següents fitxers no s'han pogut reproduir. Comproveu que:\n"
-#~ "1. Són accessibles.\n"
-#~ "2. Heu habilitat els plugins requerits."
-
-#~ msgid ""
-#~ "\n"
-#~ "Received SIGSEGV\n"
-#~ "\n"
-#~ "This could be a bug in Audacious. If you don't know why this happened, "
-#~ "file a bug at http://bugs-meta.atheme.org/\n"
-#~ "\n"
-#~ msgstr ""
-#~ "\n"
-#~ "S'ha rebut un SIGSEGV\n"
-#~ "\n"
-#~ "Això podria ser un error de programació a l'Audacious. Si no sabeu per "
-#~ "què ha passat això, ompliu un informe d'error a http://bugs-metha.atheme."
-#~ "org/\n"
-#~ "\n"
-
-#~ msgid "%s: option `%s' is ambiguous\n"
-#~ msgstr "%s: l'opció `%s' és ambigua\n"
-
-#~ msgid "%s: option `--%s' doesn't allow an argument\n"
-#~ msgstr "%s: l'opció `--%s' no admet arguments\n"
-
-#~ msgid "%s: option `%c%s' doesn't allow an argument\n"
-#~ msgstr "%s: l'opció `%c%s' no admet arguments\n"
-
-#~ msgid "%s: option `%s' requires an argument\n"
-#~ msgstr "%s: l'opció `%s' requereix un argument\n"
-
-#~ msgid "%s: illegal option -- %c\n"
-#~ msgstr "%s: opció il·legal -- %c\n"
-
-#~ msgid "%s: invalid option -- %c\n"
-#~ msgstr "%s: opció no vàlida -- %c\n"
-
-#~ msgid "%s: option requires an argument -- %c\n"
-#~ msgstr "%s: l'opció requereix un argument -- %c\n"
-
-#~ msgid "%s: option `-W %s' is ambiguous\n"
-#~ msgstr "%s: l'opció `-W %s' és ambigua\n"
-
-#~ msgid "%s: option `-W %s' doesn't allow an argument\n"
-#~ msgstr "%s: l'opció `-W %s' no admet arguments\n"
-
-#~ msgid ""
-#~ "Usage: audacious [options] [files] ...\n"
-#~ "\n"
-#~ "Options:\n"
-#~ "--------\n"
-#~ msgstr ""
-#~ "Sintaxi: audacious [opcions] [fitxers] ...\n"
-#~ "\n"
-#~ "Opcions:\n"
-#~ "--------\n"
-
-#~ msgid "Previous session ID"
-#~ msgstr "ID de la sessió anterior"
-
-#~ msgid "Disable error/warning interception (logging)"
-#~ msgstr "Deshabilita l'intercepció d'errors/avisos (registre)"
-
-#~ msgid "Print version number and exit\n"
-#~ msgstr "Mostra el número de versió i surt\n"
-
-#~ msgid "<i>Genre</i>"
-#~ msgstr "<i>Gènere</i>"
-
-#~ msgid "<i>Year</i>"
-#~ msgstr "<i>Any</i>"
-
-#~ msgid ""
-#~ "Enables playlist transparency. This is not recommended for slower "
-#~ "machines as it requires some CPU time to create and cache the pixmaps "
-#~ "used for the transparency."
-#~ msgstr ""
-#~ "Torna la llista de reproducció transparent. Això no és recomanable en "
-#~ "màquines lentes, ja que requereix potència de CPU per a crear els mapes "
-#~ "de bits utilitzats en la transparència."
-
-#, fuzzy
-#~ msgid "label65"
-#~ msgstr "label65"
-
-#, fuzzy
-#~ msgid "label76"
-#~ msgstr "label76"
-
-#, fuzzy
-#~ msgid "Reload Plugins"
-#~ msgstr "Connectors"
-
-#, fuzzy
-#~ msgid "Error in Audacious."
-#~ msgstr "%s - Audacious"
-
-#, fuzzy
-#~ msgid "Disable 'Doublesize'"
-#~ msgstr "Dobla la mida"
-
-#, fuzzy
-#~ msgid "Enable 'Doublesize'"
-#~ msgstr "Dobla la mida"
-
-#, fuzzy
-#~ msgid "<b>Presets</b>"
-#~ msgstr "<b>Efectes</b>"
-
-#, fuzzy
-#~ msgid "Directory preset file:"
-#~ msgstr "Desa el perfil en un fitxer"
-
-#, fuzzy
-#~ msgid "Track Information Window"
-#~ msgstr "Informació de la pista"
-
-#, fuzzy
-#~ msgid "Preferences Window"
-#~ msgstr "Obre la finestra de preferències"
-
-#, fuzzy
-#~ msgid "<b>Artist:</b> %s"
-#~ msgstr "Artista: "
-
-#, fuzzy
-#~ msgid "<b>Title:</b> %s"
-#~ msgstr "<b>Nom del fitxer</b>"
-
-#, fuzzy
-#~ msgid "<b>Album:</b> %s"
-#~ msgstr "Àlbum:"
-
-#, fuzzy
-#~ msgid "Audacious last.fm radio tuner"
-#~ msgstr "Editor de llistes de l'Audacious"
-
-#, fuzzy
-#~ msgid "<b>Artist:</b>"
-#~ msgstr "<b>_Foses</b>"
-
-#, fuzzy
-#~ msgid "<b>Album:</b>"
-#~ msgstr "<b>Reproducció</b>"
-
-#, fuzzy
-#~ msgid "Play Last.fm radio"
-#~ msgstr "Reprodueix una font remota"
-
-#, fuzzy
-#~ msgid "Add CD..."
-#~ msgstr "Afegeix fitxers..."
-
-#, fuzzy
-#~ msgid "Adds a CD to the playlist."
-#~ msgstr "Afegeix fitxers a la llista de reproducció."
-
-#, fuzzy
-#~ msgid "Play CD"
-#~ msgstr "Reprodueix"
-
-#, fuzzy
-#~ msgid "File name"
-#~ msgstr "Nom del fitxer"
-
-#, fuzzy
-#~ msgid "File path"
-#~ msgstr "Ubicació"
-
-#, fuzzy
-#~ msgid "Track number"
-#~ msgstr "Número de pista"
-
-#, fuzzy
-#~ msgid "Track name: "
-#~ msgstr "Número de pista"
-
-#, fuzzy
-#~ msgid "Show more _details"
-#~ msgstr "Mostra detalls de la pista"
-
-#, fuzzy
-#~ msgid "%s: unrecognized option `%c%s'\n"
-#~ msgstr "Opció d'iniciació no reconeguda: %d"
-
-#, fuzzy
-#~ msgid "Display this text and exit"
-#~ msgstr "Mostra la finestra principal"
-
-#, fuzzy
-#~ msgid "Activate Audacious"
-#~ msgstr "Tanca l'Audacious"
-
-#, fuzzy
-#~ msgid "<i>Track Number</i>"
-#~ msgstr "Número de pista"
+msgstr "Veure gestió d'opcions de sessions"
 
-#, fuzzy
-#~ msgid "<i>Track Length</i>"
-#~ msgstr "Durada de la pista:"
 
-#, fuzzy
-#~ msgid "Enable playlist transparency"
-#~ msgstr "Activa el Replay Gain"
diff --git a/po/cs.po b/po/cs.po
index 4679d51..1ffd0b2 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -4,12 +4,14 @@
 # Jan Nárovec <finn at sendmail.cz>, 2004.
 # Petr Písař <petr.pisar at atlas.cz>, 2007, 2008, 2009, 2010, 2011.
 #
+# tags (metadata) → popisky
+#
 msgid ""
 msgstr ""
-"Project-Id-Version: audacious 968ceb9a5ad6\n"
+"Project-Id-Version: audacious audacious-3.1-7-gfdc3f96\n"
 "Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
-"PO-Revision-Date: 2011-03-01 21:09+0100\n"
+"POT-Creation-Date: 2011-11-17 19:53+0100\n"
+"PO-Revision-Date: 2011-11-17 19:59+0100\n"
 "Last-Translator: Petr Písař <petr.pisar at atlas.cz>\n"
 "Language-Team: Czech <translation-team-cs at lists.sourceforge.net>\n"
 "Language: cs\n"
@@ -18,9 +20,21 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
 
-#: src/audacious/chardet.c:37
+#: src/audacious/adder.c:71
+msgid "Searching ..."
+msgstr "Hledá se…"
+
+#: src/audacious/adder.c:97
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] "Nalezen %d soubor"
+msgstr[1] "Nalezeny %d soubory"
+msgstr[2] "Nalezeno %d souborů"
+
+#: src/audacious/chardet.c:38
 msgid "  (invalid UTF-8)"
-msgstr "  (neplatné UTF8)"
+msgstr "  (neplatné UTF-8)"
 
 #: src/audacious/credits.c:35
 msgid "Core developers:"
@@ -62,229 +76,220 @@ msgstr "Baskičtina:"
 msgid "Brazilian Portuguese:"
 msgstr "Brazilská portugalština:"
 
-#: src/audacious/credits.c:190
+#: src/audacious/credits.c:191
 msgid "Breton:"
 msgstr "Bretonština:"
 
-#: src/audacious/credits.c:193
+#: src/audacious/credits.c:194
 msgid "Bulgarian:"
 msgstr "Bulharština:"
 
-#: src/audacious/credits.c:196
+#: src/audacious/credits.c:197
 msgid "Catalan:"
 msgstr "Katalánština:"
 
-#: src/audacious/credits.c:199
+#: src/audacious/credits.c:200
 msgid "Chinese:"
 msgstr "Čínština:"
 
-#: src/audacious/credits.c:202
+#: src/audacious/credits.c:203
 msgid "Croatian:"
 msgstr "Chorvatština:"
 
-#: src/audacious/credits.c:205
+#: src/audacious/credits.c:206
 msgid "Czech:"
 msgstr "Čeština:"
 
-#: src/audacious/credits.c:208
+#: src/audacious/credits.c:209
 msgid "Dutch:"
 msgstr "Holandština:"
 
-#: src/audacious/credits.c:212
+#: src/audacious/credits.c:213
 msgid "Estonian:"
 msgstr "Estonština:"
 
-#: src/audacious/credits.c:215
+#: src/audacious/credits.c:216
 msgid "Finnish:"
 msgstr "Finština:"
 
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:221
 msgid "French:"
 msgstr "Francouzština:"
 
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:227
 msgid "German:"
 msgstr "Němčina:"
 
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:234
 msgid "Georgian:"
 msgstr "Gruzínština:"
 
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:237
 msgid "Greek:"
 msgstr "Řečtina:"
 
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:242
 msgid "Hindi:"
 msgstr "Hindština:"
 
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:245
 msgid "Hungarian:"
 msgstr "Maďarština:"
 
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:249
 msgid "Italian:"
 msgstr "Italština:"
 
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:253
 msgid "Japanese:"
 msgstr "Japonština:"
 
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:256
 msgid "Korean:"
 msgstr "Korejština:"
 
-#: src/audacious/credits.c:256
-#, fuzzy
+#: src/audacious/credits.c:259
 msgid "Latvian:"
-msgstr "Chorvatština:"
+msgstr "Lotyština:"
 
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:262
 msgid "Lithuanian:"
 msgstr "Litevština:"
 
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:267
 msgid "Macedonian:"
 msgstr "Makedonština:"
 
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:270
 msgid "Polish:"
 msgstr "Polština:"
 
-#: src/audacious/credits.c:271
+#: src/audacious/credits.c:276
 msgid "Portuguese:"
 msgstr "Portugalština:"
 
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:279
 msgid "Romanian:"
 msgstr "Rumunština:"
 
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:283
 msgid "Russian:"
 msgstr "Ruština:"
 
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:287
 msgid "Serbian (Latin):"
 msgstr "Srbština (latinka):"
 
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:290
 msgid "Serbian (Cyrillic):"
 msgstr "Srbština (cyrilice):"
 
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:294
 msgid "Simplified Chinese:"
 msgstr "Zjednodušená čínština:"
 
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:297
 msgid "Slovak:"
 msgstr "Slovenština:"
 
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:300
 msgid "Spanish:"
 msgstr "Španělština:"
 
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:307
 msgid "Swedish:"
 msgstr "Švédština:"
 
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:310
 msgid "Traditional Chinese:"
 msgstr "Tradiční čínština:"
 
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:316
 msgid "Turkish:"
 msgstr "Turečtina:"
 
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:320
 msgid "Ukrainian:"
 msgstr "Ukrajinština:"
 
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:324
+msgid "Vietnamese:"
+msgstr "Vietnamština:"
+
+#: src/audacious/credits.c:327
 msgid "Welsh:"
 msgstr "Welština:"
 
-#: src/audacious/drct.c:254
+#: src/audacious/drct.c:234
 msgid "Temporary Playlist"
 msgstr "Dočasný seznam skladeb"
 
 #: src/audacious/equalizer_preset.c:186
 #, c-format
 msgid "Error importing Winamp EQF file '%s'"
-msgstr "Chyba při importu winampovského EQF souboru „%s“"
-
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr "Hledá se…"
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] "Nalezen %d soubor"
-msgstr[1] "Nalezeny %d soubory"
-msgstr[2] "Nalezeno %d souborů"
+msgstr "Chyba při importu winampovského EQF souboru „%s“"
 
-#: src/audacious/main.c:247
+#: src/audacious/main.c:239
 msgid "Skip backwards in playlist"
 msgstr "Vrátí se zpět v seznamu skladeb"
 
-#: src/audacious/main.c:248
+#: src/audacious/main.c:240
 msgid "Start playing current playlist"
 msgstr "Přehraje skladby v aktuálním seznamu"
 
-#: src/audacious/main.c:249
+#: src/audacious/main.c:241
 msgid "Pause current song"
 msgstr "Pozastaví přehrávanou skladbu"
 
-#: src/audacious/main.c:250
+#: src/audacious/main.c:242
 msgid "Stop current song"
 msgstr "Zastaví přehrávanou skladbu"
 
-#: src/audacious/main.c:251
+#: src/audacious/main.c:243
 msgid "Pause if playing, play otherwise"
 msgstr "Pozastaví při přehrávání; jinak spustí"
 
-#: src/audacious/main.c:252
+#: src/audacious/main.c:244
 msgid "Skip forward in playlist"
 msgstr "Přejde na další skladbu"
 
-#: src/audacious/main.c:253
+#: src/audacious/main.c:245
 msgid "Display Jump to File dialog"
 msgstr "Zobrazí dialog „Přejít na soubor“"
 
-#: src/audacious/main.c:254
+#: src/audacious/main.c:246
 msgid "Add files to the playlist"
 msgstr "Přidá soubory do do seznamu skladeb"
 
-#: src/audacious/main.c:255
+#: src/audacious/main.c:247
 msgid "Add new files to a temporary playlist"
 msgstr "Přidá soubory do dočasného seznamu skladeb"
 
-#: src/audacious/main.c:256
+#: src/audacious/main.c:248
 msgid "Display the main window"
 msgstr "Zobrazí hlavní okno"
 
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr "Zobrazí všechna okna Audacious"
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:249
 msgid "Show version"
 msgstr "Zobrazí verzi"
 
-#: src/audacious/main.c:259
+#: src/audacious/main.c:250
 msgid "Print debugging messages"
 msgstr "Vypisuje ladicí hlášky"
 
-#: src/audacious/main.c:260
+#: src/audacious/main.c:251
+msgid "Headless mode (beta)"
+msgstr "Bezhlavý režim (beta)"
+
+#: src/audacious/main.c:252
 msgid "FILE..."
 msgstr "SOUBOR…"
 
-#: src/audacious/main.c:272
+#: src/audacious/main.c:264
 msgid "- play multimedia files"
 msgstr "– přehrávat multimediální soubory"
 
-#: src/audacious/main.c:282
+#: src/audacious/main.c:274
 #, c-format
 msgid ""
 "%s: %s\n"
@@ -293,97 +298,89 @@ msgstr ""
 "%s: %s\n"
 "Pro více informací zkuste „%s --help“.\n"
 
-#: src/audacious/main.c:395
-msgid ""
-"Audacious seems to be already running but is not responding.  You can start "
-"another instance of the program, but please be warned that this can cause "
-"data loss.  If Audacious is not running, you can safely ignore this "
-"message.  Press OK to start Audacious or Cancel to quit."
-msgstr ""
-
-#: src/audacious/main.c:558
+#: src/audacious/main.c:547
 msgid "Audacious"
 msgstr "Audacious"
 
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:306
 #, c-format
 msgid "No decoder found for %s."
 msgstr "Pro %s nenalezen žádní dekodér."
 
-#: src/audacious/playback.c:519
-msgid "Buffering ..."
-msgstr "Načítá se…"
-
-#: src/audacious/playlist-new.c:288
+#: src/audacious/playlist-new.c:319
 msgid "Untitled Playlist"
 msgstr "Nepojmenovaný seznam skladeb"
 
+#: src/audacious/playlist-new.c:1500
+msgid ""
+"The playlist cannot be sorted because metadata scanning is still in progress "
+"(or has been disabled)."
+msgstr ""
+"Seznam skladeb nelze seřadit, protože hledání metadat stále probíhá "
+"(nebo je vypnuto)."
+
 #: src/audacious/ui_preferences.c:88
 msgid "Audio"
 msgstr "Zvuk"
 
 #: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
-msgstr "Zesílené přehrávání"
-
-#: src/audacious/ui_preferences.c:90
 msgid "Network"
 msgstr "Síť"
 
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:90 src/audacious/ui_preferences.c:1634
 msgid "Playlist"
 msgstr "Seznam skladeb"
 
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:91
 msgid "Plugins"
 msgstr "Moduly"
 
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:97 src/libaudgui/infopopup.c:203
 msgid "Artist"
 msgstr "Umělec"
 
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:205
 msgid "Album"
 msgstr "Album"
 
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:201
+#: src/libaudgui/ui_playlist_manager.c:276
 msgid "Title"
 msgstr "Název"
 
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:100
 msgid "Tracknumber"
 msgstr "Číslo stopy"
 
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:101 src/libaudgui/infopopup.c:207
 msgid "Genre"
 msgstr "Žánr"
 
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:102
 msgid "Filename"
 msgstr "Jméno souboru"
 
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:103
 msgid "Filepath"
 msgstr "Cesta k souboru"
 
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:104
 msgid "Date"
 msgstr "Datum"
 
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:105 src/libaudgui/infopopup.c:209
 msgid "Year"
 msgstr "Rok"
 
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:106
 msgid "Comment"
 msgstr "Komentář"
 
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:107
 msgid "Codec"
 msgstr "Kodek"
 
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:108
 msgid "Quality"
 msgstr "Kvalita"
 
@@ -392,233 +389,202 @@ msgid "None"
 msgstr "Žádné"
 
 #: src/audacious/ui_preferences.c:115
-msgid "Japanese"
-msgstr "Japonština"
+msgid "Arabic"
+msgstr "Arabština"
 
 #: src/audacious/ui_preferences.c:116
-msgid "Taiwanese"
-msgstr "Tchajwanština"
+msgid "Baltic"
+msgstr "Baltské jazyky"
 
 #: src/audacious/ui_preferences.c:117
 msgid "Chinese"
 msgstr "Čínština"
 
 #: src/audacious/ui_preferences.c:118
-msgid "Korean"
-msgstr "Korejština"
+msgid "Greek"
+msgstr "Řečtina"
 
 #: src/audacious/ui_preferences.c:119
-msgid "Russian"
-msgstr "Ruština"
+msgid "Hebrew"
+msgstr "Hebrejština"
 
 #: src/audacious/ui_preferences.c:120
-msgid "Greek"
-msgstr "Řečtina"
+msgid "Japanese"
+msgstr "Japonština"
 
 #: src/audacious/ui_preferences.c:121
-msgid "Hebrew"
-msgstr "Hebrejština"
+msgid "Korean"
+msgstr "Korejština"
 
 #: src/audacious/ui_preferences.c:122
-msgid "Turkish"
-msgstr "Turečtina"
+msgid "Polish"
+msgstr "Polština"
 
 #: src/audacious/ui_preferences.c:123
-msgid "Arabic"
-msgstr "Arabština"
+msgid "Russian"
+msgstr "Ruština"
 
 #: src/audacious/ui_preferences.c:124
-msgid "Polish"
-msgstr "Polština"
+msgid "Taiwanese"
+msgstr "Tchajwanština"
 
 #: src/audacious/ui_preferences.c:125
-msgid "Baltic"
-msgstr "Baltské jazyky"
-
-#: src/audacious/ui_preferences.c:126
-msgid "Universal"
-msgstr "Univerzální"
-
-#: src/audacious/ui_preferences.c:146
-msgid "<b>Bit Depth</b>"
-msgstr "<b>Bitová hloubka</b>"
+msgid "Turkish"
+msgstr "Turečtina"
 
 #: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr "Bitová hloubka výstupu:"
-
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
-"Všechny proudy budou převedeny na tuto bitovou hloubku.\n"
-"Ta by měla představovat maximální bitovou hloubku zvukové\n"
-"karty nebo výstupního modulu."
+msgid "Album mode"
+msgstr "Režim alba"
 
-#: src/audacious/ui_preferences.c:151
-msgid "<b>Volume Control</b>"
-msgstr "<b>Ovládání hlasitosti</b>"
+#: src/audacious/ui_preferences.c:150
+msgid "<b>Output Settings</b>"
+msgstr "<b>Nastavení výstupu</b>"
 
 #: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr "Hlasitost měnit softwarově"
+msgid "Bit depth:"
+msgstr "Bitová hloubka:"
 
-#: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
-"Použije softwarové ovládání hlasitosti. Toto je užitečné, nepodporuje-li "
-"váš zvukový systém změnu hlasitosti přehrávání."
+#: src/audacious/ui_preferences.c:155
+msgid "Buffer size:"
+msgstr "Velikost vyrovnávací paměti:"
 
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
-msgstr ""
+#: src/audacious/ui_preferences.c:157
+msgid "ms"
+msgstr "ms"
 
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
-msgstr "dB"
+#: src/audacious/ui_preferences.c:158
+msgid "Use software volume control (not recommended)"
+msgstr "Hlasitost ovládat softwarově (nedoporučuje se)"
 
 #: src/audacious/ui_preferences.c:160
-#, fuzzy
-msgid "Amplify untagged files:"
-msgstr "– přehrávat multimediální soubory"
-
-#: src/audacious/ui_preferences.c:164
-#, fuzzy
 msgid "<b>Replay Gain</b>"
-msgstr "<b>Typ zesílení při přehrávání</b>"
+msgstr "<b>Zesílení při přehrávání</b>"
 
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:161
 msgid "Enable Replay Gain"
 msgstr "Zapnout zesílení při přehrávání"
 
+#: src/audacious/ui_preferences.c:164
+msgid "Prevent clipping (recommended)"
+msgstr "Předcházet ořezu (doporučuje se)"
+
+#: src/audacious/ui_preferences.c:166
+msgid "<b>Adjust Levels</b>"
+msgstr "<b>Míra úpravy</b>"
+
 #: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>Metadata</b>"
+msgid "Amplify all files:"
+msgstr "Zesílit všechny soubory:"
 
-#: src/audacious/ui_preferences.c:168
-#, fuzzy
-msgid "Single track mode"
-msgstr "Zobrazit informace o skladbÄ›"
+#: src/audacious/ui_preferences.c:169 src/audacious/ui_preferences.c:172
+msgid "dB"
+msgstr "dB"
 
 #: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "Název alba: "
-
-#: src/audacious/ui_preferences.c:172
-#, fuzzy
-msgid "<b>Adjust Levels</b>"
-msgstr "<b>Kolečko myši</b>"
+msgid "Amplify untagged files:"
+msgstr "Zesílit soubory bez popisků:"
 
 #: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "<b>Vyskakovací okno s podrobnostmi</b>"
-
-#: src/audacious/ui_preferences.c:176
-#, fuzzy
-msgid "Enable clipping prevention"
-msgstr "Povolit ochranu před ořezem pomocí informací o vrcholu"
-
-#: src/audacious/ui_preferences.c:180
 msgid "Proxy hostname:"
 msgstr "Jméno počítače:"
 
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:176
 msgid "Proxy port:"
 msgstr "Port:"
 
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:179
 msgid "Proxy username:"
 msgstr "Jméno:"
 
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:180
 msgid "Proxy password:"
 msgstr "Heslo:"
 
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:184
 msgid "<b>Proxy Configuration</b>"
 msgstr "<b>Nastavení proxy</b>"
 
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:185
 msgid "Enable proxy usage"
 msgstr "Používat proxy"
 
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:188
 msgid "Use authentication with proxy"
 msgstr "Autentizovat se na proxy"
 
-#: src/audacious/ui_preferences.c:197
-msgid ""
-"<span size=\"small\">Changing these settings will require a restart of "
-"Audacious.</span>"
-msgstr ""
-"<span size=\"small\">Změna těchto nastavení se projeví až po restartu "
-"Audacious.</span>"
-
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:196
 msgid "Auto character encoding detector for:"
 msgstr "Automatické rozpoznávání kódovaní znaků:"
 
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
 msgid "Fallback character encodings:"
 msgstr "Záložní kódování znaků:"
 
-#: src/audacious/ui_preferences.c:209
-msgid ""
-"List of character encodings used for fall back conversion of metadata. If "
-"automatic character encoding detector failed or has been disabled, encodings "
-"in this list would be treated as candidates of the encoding of metadata, and "
-"fall back conversion from these encodings to UTF-8 would be attempted."
-msgstr ""
-"Seznam kódování znaků použitých pro konverzi metadat, nelze-li jejich "
-"kódování s jistotou určit. Pokud automatické rozpoznávání kódování selže "
-"nebo je zakázáno, kódování z tohoto seznamu budou považována za kandidáty na "
-"kódování takových metadat a konverze z těchto kódování do UTF-8 bude "
-"vyzkoušena."
-
-#: src/audacious/ui_preferences.c:213
+#: src/audacious/ui_preferences.c:205
 msgid "<b>Behavior</b>"
 msgstr "<b>Chování</b>"
 
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:206
 msgid "Continue playback on startup"
 msgstr "Pokračovat v přehrávání po spuštění"
 
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:208
 msgid "Advance when the current song is deleted"
 msgstr "Přejít dál, když současná skladba je smazána"
 
-#: src/audacious/ui_preferences.c:218
+#: src/audacious/ui_preferences.c:210
 msgid "Clear the playlist when opening files"
 msgstr "Při otvírání souborů vyprázdnit seznam skladeb"
 
-#: src/audacious/ui_preferences.c:220
+#: src/audacious/ui_preferences.c:212
 msgid "Open files in a temporary playlist"
 msgstr "Otevřít soubory do dočasného seznamu skladeb"
 
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:214
 msgid "<b>Metadata</b>"
 msgstr "<b>Metadata</b>"
 
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:215
+msgid "Do not load metadata for songs until played"
+msgstr "Nenačítat metadata skladeb před přehráním"
+
+#: src/audacious/ui_preferences.c:233
+msgid "TITLE"
+msgstr "NÁZEV"
+
+#: src/audacious/ui_preferences.c:234
+msgid "ARTIST - TITLE"
+msgstr "UMĚLEC – NÁZEV"
+
+#: src/audacious/ui_preferences.c:235
+msgid "ARTIST - ALBUM - TITLE"
+msgstr "UMĚLEC – ALBUM – NÁZEV"
+
+#: src/audacious/ui_preferences.c:236
+msgid "ARTIST - ALBUM - TRACK. TITLE"
+msgstr "UMĚLEC – ALBUM – STOPA. NÁZEV"
+
+#: src/audacious/ui_preferences.c:237
+msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
+msgstr "UMĚLEC [ ALBUM ] – STOPA. NÁZEV"
+
+#: src/audacious/ui_preferences.c:238
+msgid "ALBUM - TITLE"
+msgstr "ALBUM – NÁZEV"
+
+#: src/audacious/ui_preferences.c:577
 msgid "Category"
 msgstr "Kategorie"
 
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:801
 msgid "Popup Information Settings"
 msgstr "Nastavení vyskakovacího okna s detaily"
 
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:810
 msgid "<b>Cover image retrieve</b>"
 msgstr "<b>Získání vyobrazení přebalu</b>"
 
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:815
 msgid ""
 "While searching for the album's cover, Audacious looks for certain words in "
 "the filename. You can specify those words in the lists below, separated "
@@ -627,99 +593,75 @@ msgstr ""
 "Během hledání přebalu alba Audacious také zkouší určitá slova z názvu "
 "souboru. Tato slova oddělená čárkou můžete zadat v níže uvedených seznamech."
 
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:832
 msgid "Exclude:"
 msgstr "Vyloučit:"
 
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:839
 msgid "Include:"
 msgstr "Zahrnout:"
 
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:856
 msgid "Recursively search for cover"
 msgstr "Rekurzivně hledat přebal"
 
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:866
 msgid "Search depth: "
 msgstr "Hloubka hledání:"
 
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:880
 msgid "Use per-file cover"
 msgstr "Použít přebal pro každý soubor zvlášť"
 
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:883
 msgid "<b>Miscellaneous</b>"
 msgstr "<b>Různé</b>"
 
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:892
 msgid "Show Progress bar for the current track"
 msgstr "Vyjádřit pozici v přehrávané skladbě posuvníkem"
 
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:902
 msgid "Delay until filepopup comes up: "
 msgstr "Čekat na vyskakovací okno o souboru: "
 
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1340
+msgid "Custom"
+msgstr "Vlastní"
+
+#: src/audacious/ui_preferences.c:1383
 msgid "<b>Song Display</b>"
 msgstr "<b>Zobrazení skladby</b>"
 
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1392
 msgid "Show song numbers"
 msgstr "Zobrazovat čísla skladeb"
 
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1403
 msgid "Show leading zeroes (02:00 instead of 2:00)"
 msgstr "Zobrazovat úvodní nuly (02:00 místo 2:00)"
 
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1425
 msgid "Show information about titlestring format"
 msgstr "Zobrazit informace o formátu titulku"
 
-#: src/audacious/ui_preferences.c:1514
-msgid "TITLE"
-msgstr "NÁZEV"
-
-#: src/audacious/ui_preferences.c:1515
-msgid "ARTIST - TITLE"
-msgstr "UMĚLEC – NÁZEV"
-
-#: src/audacious/ui_preferences.c:1516
-msgid "ARTIST - ALBUM - TITLE"
-msgstr "UMĚLEC – ALBUM – NÁZEV"
-
-#: src/audacious/ui_preferences.c:1517
-msgid "ARTIST - ALBUM - TRACK. TITLE"
-msgstr "UMĚLEC – ALBUM – STOPA. NÁZEV"
-
-#: src/audacious/ui_preferences.c:1518
-msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
-msgstr "UMĚLEC [ ALBUM ] – STOPA. NÁZEV"
-
-#: src/audacious/ui_preferences.c:1519
-msgid "ALBUM - TITLE"
-msgstr "ALBUM – NÁZEV"
-
-#: src/audacious/ui_preferences.c:1520
-msgid "Custom"
-msgstr "Vlastní"
-
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1441
 msgid "Custom string:"
 msgstr "Vlastní řetězec:"
 
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1448
 msgid "Title format:"
 msgstr "Formát názvu:"
 
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1459
 msgid "<b>Popup Information</b>"
 msgstr "<b>Vyskakovací okno s podrobnostmi</b>"
 
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1474
 msgid "Show popup information for playlist entries"
 msgstr "Zobrazovat podrobnosti k položkám v seznamu skladeb"
 
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1475
 msgid ""
 "Toggles popup information window for the pointed entry in the playlist. The "
 "window shows title of song, name of album, genre, year of publish, track "
@@ -729,52 +671,44 @@ msgstr ""
 "v seznamu skladeb. V okně je zobrazen název skladby, název alba, žánr, rok "
 "vydání, číslo stopy, délka stopy a přebal."
 
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1486
 msgid "Edit settings for popup information"
 msgstr "Upravit nastavení pro vyskakovací okno s podrobnostmi"
 
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>Zvukový systém</b>"
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "Velikost vyrovnávací paměti:"
-
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
-msgstr "Aktuální výstupní modul:"
+#: src/audacious/ui_preferences.c:1575
+msgid "Output plugin:"
+msgstr "Výstupní modul:"
 
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1634
 msgid "Transport"
 msgstr "Přenos"
 
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1634
 msgid "Input"
 msgstr "Vstup"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1635
 msgid "Effect"
 msgstr "Efekt"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1635
 msgid "Visualization"
 msgstr "Znázornění"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1635
 msgid "General"
 msgstr "Obecné"
 
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1675
 msgid "Audacious Preferences"
 msgstr "Nastavení programu"
 
-#: src/audacious/util.c:161
+#: src/audacious/util.c:123
 #, c-format
 msgid "Could not create directory (%s): %s\n"
 msgstr "Nepodařilo se vytvořit adresář (%s): %s\n"
 
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:274
 msgid "Position not found."
 msgstr "Pozice nenalezena."
 
@@ -791,11 +725,14 @@ msgid "Stereo"
 msgstr "Stereo"
 
 #: src/libaudcore/tuple.c:689
-#, fuzzy, c-format
-msgid "%d channels"
-msgstr "Kanálů"
+#, c-format
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] "%d kanál"
+msgstr[1] "%d kanály"
+msgstr[2] "%d kanálů"
 
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/confirm.c:78
 #, c-format
 msgid ""
 "Are you sure you want to close %s?  If you do, any changes made since the "
@@ -804,76 +741,75 @@ msgstr ""
 "Jste si jisti, že chcete %s zavřít? Pokud tak učiníte, jakékoliv změny "
 "provedené od posledního exportu budou ztraceny."
 
-#: src/libaudgui/confirm.c:77
+#: src/libaudgui/confirm.c:91
 msgid "_Don't show this message again"
 msgstr "_Příště již toto zprávu nezobrazovat"
 
-#: src/libaudgui/confirm.c:115
-#, fuzzy
+#: src/libaudgui/confirm.c:128
 msgid "Rename Playlist"
-msgstr "Uložit seznam skladeb"
+msgstr "Přejmenovat seznam skladeb"
 
 #: src/libaudgui/effects-menu.c:76
 msgid "settings ..."
 msgstr "nastavení…"
 
-#: src/libaudgui/equalizer.c:68
+#: src/libaudgui/equalizer.c:52
 msgid "_Enable"
 msgstr "_Zapnout"
 
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:124
 msgid "31 Hz"
 msgstr "31 Hz"
 
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:124
 msgid "63 Hz"
 msgstr "63 Hz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:125
 msgid "125 Hz"
 msgstr "125 Hz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:125
 msgid "250 Hz"
 msgstr "250 Hz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:125
 msgid "500 Hz"
 msgstr "500 Hz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:125
 msgid "1 kHz"
 msgstr "1 kHz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:125
 msgid "2 kHz"
 msgstr "2 kHz"
 
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:126
 msgid "4 kHz"
 msgstr "4 kHz"
 
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:126
 msgid "8 kHz"
 msgstr "8 kHz"
 
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:126
 msgid "16 kHz"
 msgstr "16 kHz"
 
-#: src/libaudgui/equalizer.c:147
+#: src/libaudgui/equalizer.c:131
 msgid "Equalizer"
 msgstr "Ekvalizér"
 
-#: src/libaudgui/equalizer.c:163
+#: src/libaudgui/equalizer.c:147
 msgid "Preamp"
 msgstr "Předzesílení"
 
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:211
 msgid "Track Number"
 msgstr "Číslo stopy"
 
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:213
 msgid "Track Length"
 msgstr "Délka stopy"
 
@@ -882,16 +818,14 @@ msgid "Acid Jazz"
 msgstr "Acid jazz"
 
 #: src/libaudgui/infowin.c:78
-#, fuzzy
 msgid "Acid Rock"
-msgstr "Hard rock"
+msgstr "Acid rock"
 
 #: src/libaudgui/infowin.c:79
 msgid "Ambient"
 msgstr "Ambient"
 
 #: src/libaudgui/infowin.c:80
-#, fuzzy
 msgid "Bebop"
 msgstr "Bebob"
 
@@ -956,9 +890,8 @@ msgid "Heavy Metal"
 msgstr "Heavy metal"
 
 #: src/libaudgui/infowin.c:96
-#, fuzzy
 msgid "Hip-hop"
-msgstr "Hip-hop"
+msgstr "Hip hop"
 
 #: src/libaudgui/infowin.c:97
 msgid "House"
@@ -1009,13 +942,12 @@ msgid "Rock"
 msgstr "Rock"
 
 #: src/libaudgui/infowin.c:109
-#, fuzzy
 msgid "Rock and Roll"
-msgstr "Rock'n roll"
+msgstr "Rock and roll"
 
 #: src/libaudgui/infowin.c:110
 msgid "Rhythm and Blues"
-msgstr ""
+msgstr "R&B"
 
 #: src/libaudgui/infowin.c:111
 msgid "Ska"
@@ -1034,9 +966,8 @@ msgid "Techno"
 msgstr "Techno"
 
 #: src/libaudgui/infowin.c:115
-#, fuzzy
 msgid "Trip-hop"
-msgstr "Trip-Hop"
+msgstr "Trip hop"
 
 #: src/libaudgui/infowin.c:175 src/libaudgui/infowin.c:361
 #: src/libaudgui/infowin.c:364 src/libaudgui/infowin.c:367
@@ -1105,11 +1036,36 @@ msgstr "%d kb/s"
 msgid "No info available for %s.\n"
 msgstr "Pro %s nejsou dostupné žádné údaje.\n"
 
-#: src/libaudgui/ui_about.c:71
+#: src/libaudgui/jump-to-time.c:75
+msgid "Jump to Time"
+msgstr "Přejít na čas"
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr "mm:ss"
+
+#: src/libaudgui/playlists.c:39
+msgid "Export Playlist"
+msgstr "Exportovat seznam skladeb"
+
+#: src/libaudgui/playlists.c:39
+msgid "Import Playlist"
+msgstr "Importovat seznam skladeb"
+
+#: src/libaudgui/playlists.c:72
+#, c-format
+msgid "Overwrite %s?"
+msgstr "Přepsat %s?"
+
+#: src/libaudgui/queue-manager.c:185
+msgid "Queue Manager"
+msgstr "Správce fronty"
+
+#: src/libaudgui/ui_about.c:69
 msgid "About Audacious"
-msgstr "O Audacious"
+msgstr "O Audacious"
 
-#: src/libaudgui/ui_about.c:93 src/libaudgui/ui_credits.c:122
+#: src/libaudgui/ui_about.c:90 src/libaudgui/ui_credits.c:122
 msgid "Credits"
 msgstr "Zásluhy"
 
@@ -1117,78 +1073,87 @@ msgstr "Zásluhy"
 msgid "Translators"
 msgstr "Překladatelé"
 
-#: src/libaudgui/ui_fileopener.c:108
+#: src/libaudgui/ui_fileopener.c:109
 msgid "Open Files"
 msgstr "Otevřít soubory"
 
-#: src/libaudgui/ui_fileopener.c:108
+#: src/libaudgui/ui_fileopener.c:109
 msgid "Add Files"
 msgstr "Přidat soubory"
 
-#: src/libaudgui/ui_fileopener.c:110
+#: src/libaudgui/ui_fileopener.c:111
 msgid "Close dialog on Open"
 msgstr "Zavřít dialog při otevření"
 
-#: src/libaudgui/ui_fileopener.c:110
+#: src/libaudgui/ui_fileopener.c:111
 msgid "Close dialog on Add"
 msgstr "Zavřít dialog při přidání"
 
-#: src/libaudgui/ui_jumptotrack.c:133
-msgid "Un_queue"
-msgstr "Ode_brat z fronty"
-
-#: src/libaudgui/ui_jumptotrack.c:135 src/libaudgui/ui_jumptotrack.c:512
+#: src/libaudgui/ui_jumptotrack.c:103 src/libaudgui/ui_jumptotrack.c:111
+#: src/libaudgui/ui_jumptotrack.c:322
 msgid "_Queue"
 msgstr "_Fronta"
 
-#: src/libaudgui/ui_jumptotrack.c:399
+#: src/libaudgui/ui_jumptotrack.c:109
+msgid "Un_queue"
+msgstr "Ode_brat z fronty"
+
+#: src/libaudgui/ui_jumptotrack.c:239
 msgid "Jump to Track"
 msgstr "Skočit na stopu"
 
-#: src/libaudgui/ui_jumptotrack.c:442
+#: src/libaudgui/ui_jumptotrack.c:277
 msgid "Filter: "
 msgstr "Filtr: "
 
-#: src/libaudgui/ui_jumptotrack.c:443
+#: src/libaudgui/ui_jumptotrack.c:278
 msgid "_Filter:"
 msgstr "_Filtr:"
 
-#: src/libaudgui/ui_jumptotrack.c:461
+#: src/libaudgui/ui_jumptotrack.c:288
 msgid "Remember"
 msgstr "Zapamatovat si"
 
-#: src/libaudgui/ui_jumptotrack.c:470
+#: src/libaudgui/ui_jumptotrack.c:295
 msgid "Clea_r"
 msgstr "Vyp_rázdnit"
 
-#: src/libaudgui/ui_jumptotrack.c:504
+#: src/libaudgui/ui_jumptotrack.c:315
 msgid "Close on Jump"
 msgstr "Zavřít při skoku"
 
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:250
 msgid "Playlist Manager"
 msgstr "Správce seznamů skladeb"
 
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:277
 msgid "Entries"
 msgstr "Položky"
 
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:298
 msgid "_Rename"
 msgstr "_Přejmenovat"
 
-#: src/libaudgui/ui_playlist_manager.c:251
+#: src/libaudgui/ui_playlist_manager.c:322
 msgid "_Close dialog on activating playlist"
 msgstr "Při aktiva_ci seznamu skladeb zavřít dialog"
 
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:51
 msgid "Open URL"
 msgstr "Otevřít URL"
 
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:51
 msgid "Add URL"
 msgstr "Přidat URL"
 
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+"\n"
+"(Další zprávy jsou skryty.)"
+
 #: src/libeggsmclient/eggdesktopfile.c:165
 msgid "File is not a valid .desktop file"
 msgstr "Soubor není platný souboru druhu .desktop"
@@ -1198,25 +1163,25 @@ msgstr "Soubor není platný souboru druhu .desktop"
 msgid "Unrecognized desktop file Version '%s'"
 msgstr "Nerozpoznaná verze „%s“ desktopového souboru"
 
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:967
 #, c-format
 msgid "Starting %s"
 msgstr "Startuji %s"
 
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1108
 msgid "Application does not accept documents on command line"
 msgstr "Aplikace nepřijímá dokumenty z příkazové řádky"
 
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1176
 #, c-format
 msgid "Unrecognized launch option: %d"
 msgstr "Nerozpoznaná volba pro spuštění: %d"
 
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1375
 msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
 msgstr "URI dokumentu nelze předat do desktopové položky „Type=Link“"
 
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1396
 msgid "Not a launchable item"
 msgstr "Položka není spustitelná"
 
@@ -1241,14 +1206,104 @@ msgid "ID"
 msgstr "ID"
 
 #: src/libeggsmclient/eggsmclient.c:253
-#, fuzzy
 msgid "Session management options:"
-msgstr "Přepínače správy relace"
+msgstr "Přepínače správy relace:"
 
 #: src/libeggsmclient/eggsmclient.c:254
-#, fuzzy
 msgid "Show session management options"
-msgstr "Zobrazí volby správy relace"
+msgstr "Zobrazí přepínače správy relace"
+
+#~ msgid "Buffering ..."
+#~ msgstr "Načítá se…"
+
+#~ msgid ""
+#~ "Audacious seems to be already running but is not responding.  You can "
+#~ "start another instance of the program, but please be warned that this can "
+#~ "cause data loss.  If Audacious is not running, you can safely ignore this "
+#~ "message.  Press OK to start Audacious or Cancel to quit."
+#~ msgstr ""
+#~ "Vypadá to, že Audacious již běží, ale neodpovídá. Můžete spustit další "
+#~ "instanci programu, ale mějte na paměti, že tak můžete ztratit data. Pokud "
+#~ "Audacious neběží, můžete tuto zprávu bezpečně ignorovat. Tlačítkem Budiž "
+#~ "Audacious spustíte, tlačítkem Zrušit ukončíte."
+
+#~ msgid "Universal"
+#~ msgstr "Univerzální"
+
+#~ msgid "Single track mode"
+#~ msgstr "Režim samostatné skladby"
+
+#~ msgid ""
+#~ "<span size=\"small\">Changing these settings will require a restart of "
+#~ "Audacious.</span>"
+#~ msgstr ""
+#~ "<span size=\"small\">Změna těchto nastavení se projeví až po restartu "
+#~ "Audacious.</span>"
+
+#~ msgid ""
+#~ "List of character encodings used for fall back conversion of metadata. If "
+#~ "automatic character encoding detector failed or has been disabled, "
+#~ "encodings in this list would be treated as candidates of the encoding of "
+#~ "metadata, and fall back conversion from these encodings to UTF-8 would be "
+#~ "attempted."
+#~ msgstr ""
+#~ "Seznam kódování znaků použitých pro konverzi metadat, nelze-li jejich "
+#~ "kódování s jistotou určit. Pokud automatické rozpoznávání kódování selže "
+#~ "nebo je zakázáno, kódování z tohoto seznamu budou považována za kandidáty "
+#~ "na kódování takových metadat a konverze z těchto kódování do UTF-8 bude "
+#~ "vyzkoušena."
+
+#~ msgid "Replay Gain"
+#~ msgstr "Zesílené přehrávání"
+
+#~ msgid "<b>Bit Depth</b>"
+#~ msgstr "<b>Bitová hloubka</b>"
+
+#~ msgid ""
+#~ "All streams will be converted to this bit depth.\n"
+#~ "This should be the max supported bit depth of\n"
+#~ "the sound card or output plugin."
+#~ msgstr ""
+#~ "Všechny proudy budou převedeny na tuto bitovou hloubku.\n"
+#~ "Ta by měla představovat maximální bitovou hloubku zvukové\n"
+#~ "karty nebo výstupního modulu."
+
+#~ msgid "<b>Volume Control</b>"
+#~ msgstr "<b>Ovládání hlasitosti</b>"
+
+#~ msgid ""
+#~ "Use software volume control. This may be useful for situations where your "
+#~ "audio system does not support controlling the playback volume."
+#~ msgstr ""
+#~ "Použije softwarové ovládání hlasitosti. Toto je užitečné, nepodporuje-li "
+#~ "váš zvukový systém změnu hlasitosti přehrávání."
+
+#~ msgid "<b>Mode</b>"
+#~ msgstr "<b>Režim</b>"
+
+#~ msgid "<b>Clipping Prevention</b>"
+#~ msgstr "<b>Ochrana před ořezem</b>"
+
+#~ msgid "Enable clipping prevention"
+#~ msgstr "Zapnout ochranu před ořezem"
+
+#~ msgid "<b>Audio System</b>"
+#~ msgstr "<b>Zvukový systém</b>"
+
+#~ msgid "Current output plugin:"
+#~ msgstr "Aktuální výstupní modul:"
+
+#~ msgid "Display all open Audacious windows"
+#~ msgstr "Zobrazí všechna okna Audacious"
+
+#~ msgid ""
+#~ "<big><b>Audacious %s</b></big>\n"
+#~ "An audio player for many platforms.\n"
+#~ "Copyright (C) 2005-2011 Audacious Development Team"
+#~ msgstr ""
+#~ "<big><b>Audacious %s</b></big>\n"
+#~ "Přehrávač zvuku pro mnoho platforem.\n"
+#~ "Copyright © 2005–2011 vývojový tým Audacious"
 
 #~ msgid ""
 #~ "Running multiple instances of Audacious can lead to corrupted "
@@ -1296,6 +1351,9 @@ msgstr "Zobrazí volby správy relace"
 #~ "Použije hodnotu vrcholu z informací o zesílení pro přehrávání na ochranu "
 #~ "proti ořezu."
 
+#~ msgid "Surround"
+#~ msgstr "Prostorový zvuk"
+
 #~ msgid "Classic Rock"
 #~ msgstr "Klasický rock"
 
@@ -1629,18 +1687,6 @@ msgstr "Zobrazí volby správy relace"
 #~ msgid "Synthpop"
 #~ msgstr "Synthpop"
 
-#~ msgid ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "An audio player for many platforms.\n"
-#~ "Copyright (C) 2005-2011 Audacious Development Team"
-#~ msgstr ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "Přehrávač zvuku pro mnoho platforem.\n"
-#~ "Copyright © 2005–2011 vývojový tým Audacious"
-
-#~ msgid "Surround"
-#~ msgstr "Prostorový zvuk"
-
 #~ msgid "Sorry, threads aren't supported on your platform.\n"
 #~ msgstr "Je nám líto, ale vlákna nejsou na vaší platformě podporována.\n"
 
@@ -1881,9 +1927,6 @@ msgstr "Zobrazí volby správy relace"
 #~ msgid "Connectivity"
 #~ msgstr "Připojení"
 
-#~ msgid "<b>Format Detection</b>"
-#~ msgstr "<b>Rozpoznávání formátu</b>"
-
 #~ msgid "Detect file formats by extension."
 #~ msgstr "Rozpoznávat formát souboru podle přípony."
 
@@ -2006,9 +2049,6 @@ msgstr "Zobrazí volby správy relace"
 #~ msgid "Can't jump to time when no track is being played.\n"
 #~ msgstr "Nelze přejít na čas, když žádná skladba nehraje.\n"
 
-#~ msgid "Jump to Time"
-#~ msgstr "Přejít na čas"
-
 #~ msgid "minutes:seconds"
 #~ msgstr "minuty:sekundy"
 
@@ -2178,9 +2218,6 @@ msgstr "Zobrazí volby správy relace"
 #~ msgid "Refreshes metadata associated with a playlist entry."
 #~ msgstr "Obnovuje metadata náležící skladbě ze seznamu."
 
-#~ msgid "List Manager"
-#~ msgstr "Správce seznamů"
-
 #~ msgid "Opens the playlist manager."
 #~ msgstr "Otevře správce seznamu skladeb."
 
@@ -3854,9 +3891,6 @@ msgstr "Zobrazí volby správy relace"
 #~ msgid "Vietnamese (TCVN)"
 #~ msgstr "vietnamštiny (TCVN)"
 
-#~ msgid "Vietnamese (VPS)"
-#~ msgstr "vietnamštiny (VPS)"
-
 #~ msgid "Western (MacRoman)"
 #~ msgstr "západních jazyků (MacRoman)"
 
@@ -4404,9 +4438,6 @@ msgstr "Zobrazí volby správy relace"
 #~ msgid "WAV Audio Plugin"
 #~ msgstr "Modul WAV Audio"
 
-#~ msgid "OSS Output Plugin"
-#~ msgstr "OSS výstupní modul"
-
 #~ msgid "About OSS Driver"
 #~ msgstr "O modulu OSS"
 
@@ -5173,9 +5204,6 @@ msgstr "Zobrazí volby správy relace"
 #~ "projeví až na nových datech ve vyrovnávací paměti, může chvíli trvat, než "
 #~ "je uslyšíte."
 
-#~ msgid "ms"
-#~ msgstr "ms"
-
 #~ msgid "same file"
 #~ msgstr "shodný soubor"
 
diff --git a/po/cy.po b/po/cy.po
index 2ad38f8..03a8808 100644
--- a/po/cy.po
+++ b/po/cy.po
@@ -14,7 +14,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Audacious 1.3.0\n"
 "Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
+"POT-Creation-Date: 2011-07-05 22:45+0200\n"
 "PO-Revision-Date: 2008-04-15 04:17-0600\n"
 "Last-Translator: William Pitcock <nenolod+i18n at sacredspiral.co.uk>\n"
 "Language-Team: Cynmaeg <nenolod+cy at sacredspiral.co.uk>\n"
@@ -25,6 +25,17 @@ msgstr ""
 "X-Poedit-Language: Welsh\n"
 "X-Poedit-SourceCharset: utf-8\n"
 
+#: src/audacious/adder.c:71
+msgid "Searching ..."
+msgstr ""
+
+#: src/audacious/adder.c:99
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] ""
+msgstr[1] ""
+
 #: src/audacious/chardet.c:37
 msgid "  (invalid UTF-8)"
 msgstr "  (UTF-8 annilys)"
@@ -109,113 +120,113 @@ msgstr "Estonieg:"
 msgid "Finnish:"
 msgstr "Ffineg:"
 
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:220
 msgid "French:"
 msgstr "Ffrangeg:"
 
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:226
 msgid "German:"
 msgstr "Almaeneg:"
 
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:233
 msgid "Georgian:"
 msgstr "Georgieg:"
 
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:236
 msgid "Greek:"
 msgstr "Groeg:"
 
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:241
 msgid "Hindi:"
 msgstr "Hyndig:"
 
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:244
 msgid "Hungarian:"
 msgstr "Hwngareg:"
 
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:248
 msgid "Italian:"
 msgstr "Eidaleg:"
 
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:252
 msgid "Japanese:"
 msgstr "Siapanëeg:"
 
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:255
 msgid "Korean:"
 msgstr "Corëeg:"
 
-#: src/audacious/credits.c:256
+#: src/audacious/credits.c:258
 #, fuzzy
 msgid "Latvian:"
 msgstr "Croataidd:"
 
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:261
 msgid "Lithuanian:"
 msgstr "Lithueneg:"
 
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:265
 msgid "Macedonian:"
 msgstr "Macedonieg:"
 
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:268
 msgid "Polish:"
 msgstr "Pwyleg:"
 
-#: src/audacious/credits.c:271
+#: src/audacious/credits.c:274
 #, fuzzy
 msgid "Portuguese:"
 msgstr "Portiwgaleg Brasilaidd:"
 
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:277
 msgid "Romanian:"
 msgstr "Romaneg:"
 
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:281
 msgid "Russian:"
 msgstr "Rwsieg:"
 
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:285
 msgid "Serbian (Latin):"
 msgstr "Serbeg (Lladin):"
 
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:288
 msgid "Serbian (Cyrillic):"
 msgstr "Serbeg (Cwyrileg):"
 
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:291
 msgid "Simplified Chinese:"
 msgstr "Tsieineaidd Seml:"
 
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:294
 msgid "Slovak:"
 msgstr "Slofaceg:"
 
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:297
 msgid "Spanish:"
 msgstr "Spaeneg:"
 
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:304
 msgid "Swedish:"
 msgstr "Swedeg:"
 
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:307
 msgid "Traditional Chinese:"
 msgstr "Tsieineaidd Traddodiadol:"
 
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:312
 msgid "Turkish:"
 msgstr "Twrceg:"
 
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:316
 msgid "Ukrainian:"
 msgstr "Wcraneg:"
 
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:319
 msgid "Welsh:"
 msgstr "Cymraeg:"
 
-#: src/audacious/drct.c:254
+#: src/audacious/drct.c:256
 #, fuzzy
 msgid "Temporary Playlist"
 msgstr "Llwytho'r rhestr chwarae"
@@ -225,80 +236,65 @@ msgstr "Llwytho'r rhestr chwarae"
 msgid "Error importing Winamp EQF file '%s'"
 msgstr ""
 
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr ""
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/audacious/main.c:247
+#: src/audacious/main.c:256
 msgid "Skip backwards in playlist"
 msgstr "Sgipio nôl yn y rhestr chwarae"
 
-#: src/audacious/main.c:248
+#: src/audacious/main.c:257
 msgid "Start playing current playlist"
 msgstr "Cychwyn chwarae'r rhestr chwarae"
 
-#: src/audacious/main.c:249
+#: src/audacious/main.c:258
 msgid "Pause current song"
 msgstr "Oedi'r gân"
 
-#: src/audacious/main.c:250
+#: src/audacious/main.c:259
 msgid "Stop current song"
 msgstr "Atal y gân"
 
-#: src/audacious/main.c:251
+#: src/audacious/main.c:260
 msgid "Pause if playing, play otherwise"
 msgstr "Oedi os yn chwarae, chwarae fel arall"
 
-#: src/audacious/main.c:252
+#: src/audacious/main.c:261
 msgid "Skip forward in playlist"
 msgstr "Sgipio mlaen yn y rhestr chwarae"
 
-#: src/audacious/main.c:253
+#: src/audacious/main.c:262
 msgid "Display Jump to File dialog"
 msgstr "Dangos Neidio i Ffeil"
 
-#: src/audacious/main.c:254
+#: src/audacious/main.c:263
 #, fuzzy
 msgid "Add files to the playlist"
 msgstr "Adio y ffeil at ar rhestr chwarae."
 
-#: src/audacious/main.c:255
+#: src/audacious/main.c:264
 msgid "Add new files to a temporary playlist"
 msgstr "Adio y ffeil at ar rhestr chwarae ni parahol"
 
-#: src/audacious/main.c:256
+#: src/audacious/main.c:265
 msgid "Display the main window"
 msgstr "Dangos y prif ffenestr."
 
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr "Dangos pob agor Audacious ffenestrau"
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:266
 #, fuzzy
 msgid "Show version"
 msgstr "Dangos Y Brif Ffenestr"
 
-#: src/audacious/main.c:259
+#: src/audacious/main.c:267
 msgid "Print debugging messages"
 msgstr ""
 
-#: src/audacious/main.c:260
+#: src/audacious/main.c:268
 msgid "FILE..."
 msgstr "FFEIL..."
 
-#: src/audacious/main.c:272
+#: src/audacious/main.c:280
 msgid "- play multimedia files"
 msgstr "- chwarae ffeil amlgyfrwng"
 
-#: src/audacious/main.c:282
+#: src/audacious/main.c:290
 #, c-format
 msgid ""
 "%s: %s\n"
@@ -307,7 +303,7 @@ msgstr ""
 "%s: %s\n"
 "Ceisio `%s --help' am ychwaneg gwybodaeth.\n"
 
-#: src/audacious/main.c:395
+#: src/audacious/main.c:407
 msgid ""
 "Audacious seems to be already running but is not responding.  You can start "
 "another instance of the program, but please be warned that this can cause "
@@ -315,257 +311,236 @@ msgid ""
 "message.  Press OK to start Audacious or Cancel to quit."
 msgstr ""
 
-#: src/audacious/main.c:558
+#: src/audacious/main.c:572
 msgid "Audacious"
 msgstr "Audacious"
 
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:381
 #, c-format
 msgid "No decoder found for %s."
 msgstr ""
 
-#: src/audacious/playback.c:519
+#: src/audacious/playback.c:531
 msgid "Buffering ..."
 msgstr ""
 
-#: src/audacious/playlist-new.c:288
+#: src/audacious/playlist-new.c:303
 #, fuzzy
 msgid "Untitled Playlist"
 msgstr "Rhestr Chwarae Newydd"
 
-#: src/audacious/ui_preferences.c:88
+#: src/audacious/ui_preferences.c:87
 msgid "Audio"
 msgstr "Seniau"
 
-#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:88
 msgid "Network"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:89 src/audacious/ui_preferences.c:1556
 msgid "Playlist"
 msgstr "Chwarae"
 
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:90
 msgid "Plugins"
 msgstr "Ategynnau"
 
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:204
 msgid "Artist"
 msgstr "Cyflawnwr"
 
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:97 src/libaudgui/infopopup.c:206
 msgid "Album"
 msgstr "Albwm"
 
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:202
+#: src/libaudgui/ui_playlist_manager.c:263
 msgid "Title"
 msgstr "Teitl"
 
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:99
 msgid "Tracknumber"
 msgstr "Rhif y Trac:"
 
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:208
 msgid "Genre"
 msgstr "Math"
 
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:101
 msgid "Filename"
 msgstr "Enw ffeil"
 
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:102
 msgid "Filepath"
 msgstr "Llwybr ffeil"
 
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:103
 msgid "Date"
 msgstr "Dyddiad"
 
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:104 src/libaudgui/infopopup.c:210
 msgid "Year"
 msgstr "Blwyddyn"
 
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:105
 msgid "Comment"
 msgstr "Sylwad"
 
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:106
 msgid "Codec"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:107
 msgid "Quality"
 msgstr "Ansawdd"
 
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:112
 msgid "None"
 msgstr "Dim"
 
-#: src/audacious/ui_preferences.c:115
+#: src/audacious/ui_preferences.c:113
 msgid "Japanese"
 msgstr "Siapanëeg"
 
-#: src/audacious/ui_preferences.c:116
+#: src/audacious/ui_preferences.c:114
 #, fuzzy
 msgid "Taiwanese"
 msgstr "Siapanëeg:"
 
-#: src/audacious/ui_preferences.c:117
+#: src/audacious/ui_preferences.c:115
 #, fuzzy
 msgid "Chinese"
 msgstr "Llinellau"
 
-#: src/audacious/ui_preferences.c:118
+#: src/audacious/ui_preferences.c:116
 msgid "Korean"
 msgstr "Corëeg"
 
-#: src/audacious/ui_preferences.c:119
+#: src/audacious/ui_preferences.c:117
 msgid "Russian"
 msgstr "Rwsieg"
 
-#: src/audacious/ui_preferences.c:120
+#: src/audacious/ui_preferences.c:118
 msgid "Greek"
 msgstr "Groeg"
 
-#: src/audacious/ui_preferences.c:121
+#: src/audacious/ui_preferences.c:119
 msgid "Hebrew"
 msgstr "Hebraeg"
 
-#: src/audacious/ui_preferences.c:122
+#: src/audacious/ui_preferences.c:120
 msgid "Turkish"
 msgstr "Twrceg"
 
-#: src/audacious/ui_preferences.c:123
+#: src/audacious/ui_preferences.c:121
 msgid "Arabic"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:124
+#: src/audacious/ui_preferences.c:122
 #, fuzzy
 msgid "Polish"
 msgstr "Pwyleg:"
 
-#: src/audacious/ui_preferences.c:125
+#: src/audacious/ui_preferences.c:123
 msgid "Baltic"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:126
+#: src/audacious/ui_preferences.c:124
 msgid "Universal"
 msgstr "Cyfanfydol"
 
 #: src/audacious/ui_preferences.c:146
-msgid "<b>Bit Depth</b>"
-msgstr "<b>Bit Dyfnder</b>"
+#, fuzzy
+msgid "Single track mode"
+msgstr "Dangos Manylion Trac"
 
 #: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
+#, fuzzy
+msgid "Album mode"
+msgstr "Enwau'r Albwm:"
 
-#: src/audacious/ui_preferences.c:151
-msgid "<b>Volume Control</b>"
-msgstr "<b>Rheolydd Cyfrol</b>"
+#: src/audacious/ui_preferences.c:150
+#, fuzzy
+msgid "<b>Output Settings</b>"
+msgstr "<b>Awtoganfod trefniad</b>"
 
 #: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr ""
+#, fuzzy
+msgid "Bit depth:"
+msgstr "<b>Bit Dyfnder</b>"
 
-#: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
+#: src/audacious/ui_preferences.c:155
+msgid "Buffer size:"
+msgstr "Maint y byffer:"
+
+#: src/audacious/ui_preferences.c:157
+msgid "ms"
 msgstr ""
 
 #: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
+msgid "Use software volume control (not recommended)"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
-msgstr "dB"
-
 #: src/audacious/ui_preferences.c:160
 #, fuzzy
-msgid "Amplify untagged files:"
-msgstr "- chwarae ffeil amlgyfrwng"
-
-#: src/audacious/ui_preferences.c:164
-#, fuzzy
 msgid "<b>Replay Gain</b>"
 msgstr "<b>Ffurfweddiad Cyfraint Cynnydd</b>"
 
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:161
 msgid "Enable Replay Gain"
 msgstr "Galluogi Cyfraint Cynnydd"
 
-#: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>Gwybodaeth</b>"
-
-#: src/audacious/ui_preferences.c:168
-#, fuzzy
-msgid "Single track mode"
-msgstr "Dangos Manylion Trac"
-
-#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "Enwau'r Albwm:"
+#: src/audacious/ui_preferences.c:164
+msgid "Prevent clipping (recommended)"
+msgstr ""
 
-#: src/audacious/ui_preferences.c:172
+#: src/audacious/ui_preferences.c:166
 #, fuzzy
 msgid "<b>Adjust Levels</b>"
 msgstr "<b>Sidell llygod</b>"
 
-#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "<b>Gwybodaeth Popup</b>"
-
-#: src/audacious/ui_preferences.c:176
-msgid "Enable clipping prevention"
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify all files:"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:169 src/audacious/ui_preferences.c:172
+msgid "dB"
+msgstr "dB"
+
+#: src/audacious/ui_preferences.c:170
+#, fuzzy
+msgid "Amplify untagged files:"
+msgstr "- chwarae ffeil amlgyfrwng"
+
+#: src/audacious/ui_preferences.c:175
 msgid "Proxy hostname:"
 msgstr "Gwesteiwr ddirprwy:"
 
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:176
 msgid "Proxy port:"
 msgstr "Porth dirprwy:"
 
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:179
 msgid "Proxy username:"
 msgstr "Dirprwy enw defnyddiwr:"
 
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:180
 msgid "Proxy password:"
 msgstr "Cyfrinair dirprwy:"
 
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:184
 msgid "<b>Proxy Configuration</b>"
 msgstr "<b>Ffurfweddiad Dirprwy</b>"
 
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:185
 msgid "Enable proxy usage"
 msgstr "Galluogi defnyddiwch ddirprwy"
 
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:187
 msgid "Use authentication with proxy"
 msgstr "Defnyddiwch ddilysu am dirprwy"
 
-#: src/audacious/ui_preferences.c:197
+#: src/audacious/ui_preferences.c:189
 msgid ""
 "<span size=\"small\">Changing these settings will require a restart of "
 "Audacious.</span>"
@@ -573,15 +548,15 @@ msgstr ""
 "<span size=\"small\">Cyfnewidau machludiad angen ailddechrau Audacious.</"
 "span>"
 
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
 msgid "Auto character encoding detector for:"
 msgstr "Awtoganfod cymeriad am:"
 
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
 msgid "Fallback character encodings:"
 msgstr "Arallddewisiol cymeriad mathau:"
 
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
 msgid ""
 "List of character encodings used for fall back conversion of metadata. If "
 "automatic character encoding detector failed or has been disabled, encodings "
@@ -591,199 +566,192 @@ msgstr ""
 "Rhestr am arallddewisiol cymeriad cynefino am mathau trawsnewidiau am "
 "metadata. Os awtoganfod cymeriad ffaelu ai ys anablu, yr rhestr ys defnyddio."
 
-#: src/audacious/ui_preferences.c:213
+#: src/audacious/ui_preferences.c:205
 #, fuzzy
 msgid "<b>Behavior</b>"
 msgstr "<b>Bit Dyfnder</b>"
 
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:206
 msgid "Continue playback on startup"
 msgstr "Parhau Chrawae am Cychwyn"
 
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:208
 msgid "Advance when the current song is deleted"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:218
+#: src/audacious/ui_preferences.c:210
 #, fuzzy
 msgid "Clear the playlist when opening files"
 msgstr "Creu rhestr chwarae am gweddu dewis"
 
-#: src/audacious/ui_preferences.c:220
+#: src/audacious/ui_preferences.c:212
 #, fuzzy
 msgid "Open files in a temporary playlist"
 msgstr "Adio y ffeil at ar rhestr chwarae ni parahol"
 
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:214
 msgid "<b>Metadata</b>"
 msgstr "<b>Gwybodaeth</b>"
 
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:454
 msgid "Category"
 msgstr "Categori"
 
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:682
 msgid "Popup Information Settings"
 msgstr "Gwybodaeth Popup"
 
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:691
 msgid "<b>Cover image retrieve</b>"
 msgstr "<b>Albwm celf adennill</b>"
 
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:696
 msgid ""
 "While searching for the album's cover, Audacious looks for certain words in "
 "the filename. You can specify those words in the lists below, separated "
 "using commas."
 msgstr "Chi enwi y allweddair yng chwilio am tannod."
 
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:713
 msgid "Exclude:"
 msgstr "Allgau:"
 
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:720
 msgid "Include:"
 msgstr "Cynnwys:"
 
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:737
 msgid "Recursively search for cover"
 msgstr "Archwilio amrfyal gwastad am pictiwr"
 
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:747
 msgid "Search depth: "
 msgstr "Archwilio dyfndra:"
 
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:761
 msgid "Use per-file cover"
 msgstr "Defnyddio amgenach pictiwr am y pen ffiel"
 
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:764
 msgid "<b>Miscellaneous</b>"
 msgstr "<b>Amrywiol</b>"
 
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:773
 msgid "Show Progress bar for the current track"
 msgstr "Dangos cynnydd dangosydd am y cerrynt trac"
 
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:783
 msgid "Delay until filepopup comes up: "
 msgstr "Oediad tan filepopup ys dangosydd"
 
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1283
 msgid "<b>Song Display</b>"
 msgstr "<b>Dangos cerddi</b>"
 
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1292
 msgid "Show song numbers"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1303
 msgid "Show leading zeroes (02:00 instead of 2:00)"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1325
 msgid "Show information about titlestring format"
 msgstr "Dangos gwybodaeth am titlestring"
 
-#: src/audacious/ui_preferences.c:1514
+#: src/audacious/ui_preferences.c:1339
 msgid "TITLE"
 msgstr "TEITL"
 
-#: src/audacious/ui_preferences.c:1515
+#: src/audacious/ui_preferences.c:1340
 msgid "ARTIST - TITLE"
 msgstr "CYFLAWNWR - TEITL"
 
-#: src/audacious/ui_preferences.c:1516
+#: src/audacious/ui_preferences.c:1341
 msgid "ARTIST - ALBUM - TITLE"
 msgstr "CYFLAWNWR - ALBWM - TEITL"
 
-#: src/audacious/ui_preferences.c:1517
+#: src/audacious/ui_preferences.c:1342
 msgid "ARTIST - ALBUM - TRACK. TITLE"
 msgstr "CYFLAWNWR - ALBWM - TRAC. TEITL"
 
-#: src/audacious/ui_preferences.c:1518
+#: src/audacious/ui_preferences.c:1343
 msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
 msgstr "CYFLAWNWR [ ALBWM ] - TRAC. TEITL"
 
-#: src/audacious/ui_preferences.c:1519
+#: src/audacious/ui_preferences.c:1344
 msgid "ALBUM - TITLE"
 msgstr "ALBWM - TEITL"
 
-#: src/audacious/ui_preferences.c:1520
+#: src/audacious/ui_preferences.c:1345
 msgid "Custom"
 msgstr "Cynefod"
 
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1354
 msgid "Custom string:"
 msgstr "Cynefod:"
 
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1361
 msgid "Title format:"
 msgstr "Fformat y teitl:"
 
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1372
 msgid "<b>Popup Information</b>"
 msgstr "<b>Gwybodaeth Popup</b>"
 
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1387
 msgid "Show popup information for playlist entries"
 msgstr "Dangos gwybodaeth am chwarae llyfrifiadau"
 
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1388
 msgid ""
 "Toggles popup information window for the pointed entry in the playlist. The "
 "window shows title of song, name of album, genre, year of publish, track "
 "number, track length, and artwork."
 msgstr "Toglo ffenestr celfyddydau."
 
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1397
 msgid "Edit settings for popup information"
 msgstr "Golygyddion ffenestr celfyddydau machludiadau"
 
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>System Seniau</b>"
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "Maint y byffer:"
-
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
-msgstr "Ategyn allbwn:"
+#: src/audacious/ui_preferences.c:1497
+#, fuzzy
+msgid "Output plugin:"
+msgstr "Ategyn mewnbwn: %s"
 
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
 #, fuzzy
 msgid "Transport"
 msgstr "Cyfieithwyr"
 
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
 msgid "Input"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
 #, fuzzy
 msgid "Effect"
 msgstr "<b>Effeithiau</b>"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
 msgid "Visualization"
 msgstr "Delweddu"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
 msgid "General"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1597
 msgid "Audacious Preferences"
 msgstr "Ffurfwedd Audacious"
 
-#: src/audacious/util.c:161
+#: src/audacious/util.c:155
 #, c-format
 msgid "Could not create directory (%s): %s\n"
 msgstr "Methu Creu Cyfrifiadur (%s): %s\n"
 
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:264
 msgid "Position not found."
 msgstr ""
 
@@ -802,22 +770,24 @@ msgstr "Stereo"
 
 #: src/libaudcore/tuple.c:689
 #, c-format
-msgid "%d channels"
-msgstr ""
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] ""
+msgstr[1] ""
 
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/confirm.c:73
 #, c-format
 msgid ""
 "Are you sure you want to close %s?  If you do, any changes made since the "
 "playlist was exported will be lost."
 msgstr ""
 
-#: src/libaudgui/confirm.c:77
+#: src/libaudgui/confirm.c:86
 #, fuzzy
 msgid "_Don't show this message again"
 msgstr "Peidio â dangos y r rhybydd yma eto."
 
-#: src/libaudgui/confirm.c:115
+#: src/libaudgui/confirm.c:124
 #, fuzzy
 msgid "Rename Playlist"
 msgstr "Cadw'r Rhestr Chwarae"
@@ -879,11 +849,11 @@ msgstr "Hafalydd"
 msgid "Preamp"
 msgstr ""
 
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:212
 msgid "Track Number"
 msgstr "Rhif y Trac"
 
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:214
 msgid "Track Length"
 msgstr "Hyd trac"
 
@@ -1115,6 +1085,29 @@ msgstr ""
 msgid "No info available for %s.\n"
 msgstr ""
 
+#: src/libaudgui/jump-to-time.c:75
+msgid "Jump to Time"
+msgstr "Neidio i Amser"
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr ""
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Export Playlist"
+msgstr "Llwytho'r rhestr chwarae"
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Import Playlist"
+msgstr "Llwytho'r rhestr chwarae"
+
+#: src/libaudgui/playlists.c:71
+#, c-format
+msgid "Overwrite %s?"
+msgstr ""
+
 #: src/libaudgui/ui_about.c:71
 msgid "About Audacious"
 msgstr "Ynghylch Audacious"
@@ -1176,19 +1169,19 @@ msgstr "Clirio A-B"
 msgid "Close on Jump"
 msgstr "Closio am Naid"
 
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:240
 msgid "Playlist Manager"
 msgstr "Rheolwyr am y Rhestr Chwarae"
 
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:264
 msgid "Entries"
 msgstr "Llyfrifiadau"
 
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:285
 msgid "_Rename"
 msgstr "_Cyfnewid"
 
-#: src/libaudgui/ui_playlist_manager.c:251
+#: src/libaudgui/ui_playlist_manager.c:309
 #, fuzzy
 msgid "_Close dialog on activating playlist"
 msgstr "Closio am Tocio"
@@ -1201,6 +1194,12 @@ msgstr ""
 msgid "Add URL"
 msgstr ""
 
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+
 #: src/libeggsmclient/eggdesktopfile.c:165
 msgid "File is not a valid .desktop file"
 msgstr ""
@@ -1210,25 +1209,25 @@ msgstr ""
 msgid "Unrecognized desktop file Version '%s'"
 msgstr "Anadnabyddus ffeil desktop fersiwn '%s'"
 
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:967
 #, c-format
 msgid "Starting %s"
 msgstr "Cychwyn %s"
 
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1108
 msgid "Application does not accept documents on command line"
 msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1176
 #, c-format
 msgid "Unrecognized launch option: %d"
 msgstr "Anadnabyddus cychwyn dewis: %d"
 
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1375
 msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
 msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1396
 msgid "Not a launchable item"
 msgstr ""
 
@@ -1262,6 +1261,26 @@ msgstr "Dewis Sesiwn Goruchwyliaeth"
 msgid "Show session management options"
 msgstr "Dangos dewis sesiwn goruchwyliaeth"
 
+#~ msgid "<b>Volume Control</b>"
+#~ msgstr "<b>Rheolydd Cyfrol</b>"
+
+#, fuzzy
+#~ msgid "<b>Mode</b>"
+#~ msgstr "<b>Gwybodaeth</b>"
+
+#, fuzzy
+#~ msgid "<b>Clipping Prevention</b>"
+#~ msgstr "<b>Gwybodaeth Popup</b>"
+
+#~ msgid "<b>Audio System</b>"
+#~ msgstr "<b>System Seniau</b>"
+
+#~ msgid "Current output plugin:"
+#~ msgstr "Ategyn allbwn:"
+
+#~ msgid "Display all open Audacious windows"
+#~ msgstr "Dangos pob agor Audacious ffenestrau"
+
 #~ msgid "%s: Unable to open display, exiting.\n"
 #~ msgstr "%s: Methu agor dangosydd, yn gadael.\n"
 
@@ -1484,9 +1503,6 @@ msgstr "Dangos dewis sesiwn goruchwyliaeth"
 #~ msgid "No input plugin recognized this file"
 #~ msgstr "Ategyn mewnbwn heb adnabod y ffeil"
 
-#~ msgid "Input plugin: %s"
-#~ msgstr "Ategyn mewnbwn: %s"
-
 #~ msgid ""
 #~ "<b><big>No output plugin selected.</big></b>\n"
 #~ "You have not selected an output plugin."
@@ -1501,9 +1517,6 @@ msgstr "Dangos dewis sesiwn goruchwyliaeth"
 #~ msgid "Interpolation Engine:"
 #~ msgstr "Interpolation Trefnau:"
 
-#~ msgid "<b>Format Detection</b>"
-#~ msgstr "<b>Awtoganfod trefniad</b>"
-
 #~ msgid "Detect file formats by extension."
 #~ msgstr "Awtoganfawd ffiel trefniad at ymestyniad."
 
@@ -1557,9 +1570,6 @@ msgstr "Dangos dewis sesiwn goruchwyliaeth"
 #~ msgid "Load metadata (tag information) from music files."
 #~ msgstr "Llwytho'r metadata o ffeil cerdd."
 
-#~ msgid "Jump to Time"
-#~ msgstr "Neidio i Amser"
-
 #~ msgid "minutes:seconds"
 #~ msgstr "munudau:eiliadau"
 
diff --git a/po/de.po b/po/de.po
index 31533f8..93f7e81 100644
--- a/po/de.po
+++ b/po/de.po
@@ -1,294 +1,290 @@
-# German translation for Audacious
 msgid ""
 msgstr ""
-"Project-Id-Version: de\n"
-"Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
-"PO-Revision-Date: 2011-04-09 18:43+0100\n"
+"Project-Id-Version: Audacious\n"
+"Report-Msgid-Bugs-To: http://redmine.audacious-media-player.org/\n"
+"POT-Creation-Date: 2012-01-15 02:23+0100\n"
+"PO-Revision-Date: 2012-01-15 02:25+0000\n"
 "Last-Translator: Thomas Lange\n"
-"Language-Team: german <psic4t at netbands.de>\n"
-"Language: \n"
+"Language-Team: German\n"
+"Language: de\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"plural-Forms: nplurals=2; plural=(n!=1);\n"
-"X-Poedit-Language: German\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
 
-#: src/audacious/chardet.c:37
+#: src/audacious/adder.c:77
+msgid "Searching ..."
+msgstr "Suche ..."
+
+#: src/audacious/adder.c:113
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] "%d Datei gefunden"
+msgstr[1] "%d Dateien gefunden"
+
+#: src/audacious/chardet.c:39
 msgid "  (invalid UTF-8)"
 msgstr "  (ungültiges UTF-8)"
 
-#: src/audacious/credits.c:35
+#: src/audacious/credits.c:37
 msgid "Core developers:"
 msgstr "Hauptentwickler:"
 
-#: src/audacious/credits.c:49
+#: src/audacious/credits.c:51
 msgid "Graphics:"
 msgstr "Grafiken:"
 
-#: src/audacious/credits.c:54
+#: src/audacious/credits.c:56
 msgid "Default skin:"
 msgstr "Standard-Skin:"
 
-#: src/audacious/credits.c:60
+#: src/audacious/credits.c:62
 msgid "Plugin development:"
 msgstr "Plugin-Entwicklung:"
 
-#: src/audacious/credits.c:83
+#: src/audacious/credits.c:85
 msgid "Patch authors:"
 msgstr "Patch-Autoren:"
 
-#: src/audacious/credits.c:126
+#: src/audacious/credits.c:131
 msgid "1.x developers:"
 msgstr "1.x-Entwickler:"
 
-#: src/audacious/credits.c:148
+#: src/audacious/credits.c:153
 msgid "BMP Developers:"
 msgstr "BMP-Entwickler:"
 
-#: src/audacious/credits.c:180
+#: src/audacious/credits.c:185
+msgid "Argentinian Spanish:"
+msgstr "Argentinisches Spanisch:"
+
+#: src/audacious/credits.c:188
 msgid "Belarusian:"
 msgstr "Weißrussisch:"
 
-#: src/audacious/credits.c:183
+#: src/audacious/credits.c:191
 msgid "Basque:"
 msgstr "Baskisch:"
 
-#: src/audacious/credits.c:186
+#: src/audacious/credits.c:194
 msgid "Brazilian Portuguese:"
 msgstr "Brasilianisches Portugiesisch:"
 
-#: src/audacious/credits.c:190
+#: src/audacious/credits.c:199
 msgid "Breton:"
 msgstr "Bretonisch:"
 
-#: src/audacious/credits.c:193
+#: src/audacious/credits.c:202
 msgid "Bulgarian:"
 msgstr "Bulgarisch:"
 
-#: src/audacious/credits.c:196
+#: src/audacious/credits.c:205
 msgid "Catalan:"
 msgstr "Katalanisch:"
 
-#: src/audacious/credits.c:199
+#: src/audacious/credits.c:209
 msgid "Chinese:"
 msgstr "Chinesisch:"
 
-#: src/audacious/credits.c:202
+#: src/audacious/credits.c:212
 msgid "Croatian:"
 msgstr "Kroatisch:"
 
-#: src/audacious/credits.c:205
+#: src/audacious/credits.c:215
 msgid "Czech:"
 msgstr "Tschechisch:"
 
-#: src/audacious/credits.c:208
+#: src/audacious/credits.c:218
 msgid "Dutch:"
 msgstr "Niederländisch:"
 
-#: src/audacious/credits.c:212
+#: src/audacious/credits.c:222
 msgid "Estonian:"
 msgstr "Estnisch:"
 
-#: src/audacious/credits.c:215
+#: src/audacious/credits.c:225
 msgid "Finnish:"
 msgstr "Finnisch:"
 
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:230
 msgid "French:"
 msgstr "Französisch:"
 
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:236
 msgid "German:"
 msgstr "Deutsch:"
 
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:243
 msgid "Georgian:"
 msgstr "Georgisch:"
 
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:246
 msgid "Greek:"
 msgstr "Griechisch:"
 
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:251
 msgid "Hindi:"
 msgstr "Hindi:"
 
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:254
 msgid "Hungarian:"
 msgstr "Ungarisch:"
 
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:258
 msgid "Italian:"
 msgstr "Italienisch:"
 
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:263
 msgid "Japanese:"
 msgstr "Japanisch:"
 
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:266
 msgid "Korean:"
 msgstr "Koreanisch:"
 
-#: src/audacious/credits.c:256
+#: src/audacious/credits.c:269
 msgid "Latvian:"
 msgstr "Lettisch:"
 
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:272
 msgid "Lithuanian:"
 msgstr "Litauisch:"
 
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:277
 msgid "Macedonian:"
 msgstr "Makedonisch:"
 
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:280
+msgid "Mexican Spanish:"
+msgstr "Mexikanisches Spanisch:"
+
+#: src/audacious/credits.c:283
 msgid "Polish:"
 msgstr "Polnisch:"
 
-#: src/audacious/credits.c:271
+#: src/audacious/credits.c:290
 msgid "Portuguese:"
 msgstr "Portugiesisch:"
 
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:293
 msgid "Romanian:"
 msgstr "Rumänisch:"
 
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:297
 msgid "Russian:"
 msgstr "Russisch:"
 
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:301
 msgid "Serbian (Latin):"
 msgstr "Serbisch (Latin):"
 
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:304
 msgid "Serbian (Cyrillic):"
 msgstr "Serbisch (Kyrillisch):"
 
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:308
 msgid "Simplified Chinese:"
 msgstr "Vereinfachtes Chinesisch:"
 
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:311
 msgid "Slovak:"
 msgstr "Slovakisch:"
 
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:315
 msgid "Spanish:"
 msgstr "Spanisch:"
 
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:324
 msgid "Swedish:"
 msgstr "Schwedisch:"
 
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:327
 msgid "Traditional Chinese:"
 msgstr "Traditionelles Chinesisch:"
 
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:333
 msgid "Turkish:"
 msgstr "Türkisch:"
 
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:337
 msgid "Ukrainian:"
 msgstr "Ukrainisch:"
 
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:342
+msgid "Vietnamese:"
+msgstr "Vietnamesisch:"
+
+#: src/audacious/credits.c:345
 msgid "Welsh:"
 msgstr "Walisisch:"
 
-#: src/audacious/drct.c:254
-msgid "Temporary Playlist"
-msgstr "Temporäre Wiedergabeliste"
-
-#: src/audacious/equalizer_preset.c:186
+#: src/audacious/equalizer_preset.c:180
 #, c-format
 msgid "Error importing Winamp EQF file '%s'"
 msgstr "Fehler beim Import der Winamp-EQF-Datei '%s'"
 
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr "Suche ..."
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] "%d Datei gefunden"
-msgstr[1] "%d Dateien gefunden"
-
-#  -r, --rew switch
-#: src/audacious/main.c:247
+#: src/audacious/main.c:243
 msgid "Skip backwards in playlist"
-msgstr "In der Wiedergabeliste zurück springen"
+msgstr "In der Wiedergabeliste zurückspringen"
 
-#  -p, --play switch
-#: src/audacious/main.c:248
+#: src/audacious/main.c:244
 msgid "Start playing current playlist"
 msgstr "Abspielen der aktuellen Wiedergabeliste beginnen"
 
-#  -u, --pause switch
-#: src/audacious/main.c:249
+#: src/audacious/main.c:245
 msgid "Pause current song"
 msgstr "Aktuellen Song unterbrechen"
 
-#  -s, --stop switch
-#: src/audacious/main.c:250
+#: src/audacious/main.c:246
 msgid "Stop current song"
 msgstr "Aktuellen Song stoppen"
 
-#  -t, --play-pause switch
-#: src/audacious/main.c:251
+#: src/audacious/main.c:247
 msgid "Pause if playing, play otherwise"
 msgstr "Pause falls beim Abspielen, andernfalls Wiedergabe starten"
 
-#  -f, --fwd switch
-#: src/audacious/main.c:252
+#: src/audacious/main.c:248
 msgid "Skip forward in playlist"
 msgstr "In der Wiedergabeliste vorspringen"
 
-#: src/audacious/main.c:253
+#: src/audacious/main.c:249
 msgid "Display Jump to File dialog"
 msgstr "«Springe zu Datei»-Fenster anzeigen"
 
-#  -e, --enqueue switch
-#: src/audacious/main.c:254
+#: src/audacious/main.c:250
 msgid "Add files to the playlist"
 msgstr "Dateien zur Wiedergabeliste hinzufügen"
 
-#  -e, --enqueue switch
-#: src/audacious/main.c:255
+#: src/audacious/main.c:251
 msgid "Add new files to a temporary playlist"
 msgstr "Dateien zu temporärer Wiedergabeliste hinzufügen"
 
-#  -m, --show-main-window switch
-#  -m, --show-main-window switch
-#: src/audacious/main.c:256
+#: src/audacious/main.c:252
 msgid "Display the main window"
 msgstr "Hauptfenster anzeigen"
 
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr "Alle offenen Audacious-Fenster anzeigen"
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:253
 msgid "Show version"
 msgstr "Zeige Version"
 
-#: src/audacious/main.c:259
+#: src/audacious/main.c:254
 msgid "Print debugging messages"
 msgstr "Debug-Meldungen anzeigen"
 
-#: src/audacious/main.c:260
+#: src/audacious/main.c:255
+msgid "Headless mode (beta)"
+msgstr "Headless-Modus (Beta)"
+
+#: src/audacious/main.c:256
 msgid "FILE..."
 msgstr "DATEI..."
 
-#: src/audacious/main.c:272
+#: src/audacious/main.c:268
 msgid "- play multimedia files"
 msgstr " - Multimediadateien wiedergeben"
 
-#: src/audacious/main.c:282
+#: src/audacious/main.c:278
 #, c-format
 msgid ""
 "%s: %s\n"
@@ -297,331 +293,312 @@ msgstr ""
 "%s: %s\n"
 "`%s --help' für weitere Informationen versuchen.\n"
 
-#: src/audacious/main.c:395
-msgid ""
-"Audacious seems to be already running but is not responding.  You can start "
-"another instance of the program, but please be warned that this can cause "
-"data loss.  If Audacious is not running, you can safely ignore this "
-"message.  Press OK to start Audacious or Cancel to quit."
-msgstr ""
-"Audacious wird bereits ausgeführt, scheint aber nicht zu reagieren. Sie "
-"können eine neue Instanz starten, dies kann aber zu Datenverlusten führen. "
-"Falls Audacious nicht ausgeführt wird, können Sie diese Warnung ignorieren. "
-"Klicken Sie OK um Audacious zu starten oder Abbrechen zum Beenden."
-
-#: src/audacious/main.c:558
+#: src/audacious/main.c:573
 msgid "Audacious"
 msgstr "Audacious"
 
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:307
 #, c-format
 msgid "No decoder found for %s."
 msgstr "Kein Decoder gefunden für %s."
 
-#: src/audacious/playback.c:519
-msgid "Buffering ..."
-msgstr "Puffere ..."
+#: src/audacious/playlist-files.c:53
+#, c-format
+msgid "Cannot %s %s: unsupported file extension."
+msgstr "%s von %s nicht möglich: nicht unterstützte Dateiendung."
+
+#: src/audacious/playlist-files.c:54
+msgid "save"
+msgstr "Speichern"
 
-#: src/audacious/playlist-new.c:288
-msgid "Untitled Playlist"
-msgstr "Unbenannte Wiedergabeliste"
+#: src/audacious/playlist-files.c:54
+msgid "load"
+msgstr "Laden"
 
-#: src/audacious/ui_preferences.c:88
+#: src/audacious/playlist-new.c:131
+msgid "New Playlist"
+msgstr "Neue Wiedergabeliste"
+
+#: src/audacious/playlist-new.c:132
+msgid "Now Playing"
+msgstr "Momentane Wiedergabe"
+
+#: src/audacious/playlist-new.c:1630
+msgid ""
+"The playlist cannot be sorted because metadata scanning is still in progress "
+"(or has been disabled)."
+msgstr ""
+"Die Wiedergabeliste kann nicht sortiert werden, weil das Scannen der "
+"Metadaten noch aktiv ist (oder deaktiviert wurde)."
+
+#: src/audacious/ui_preferences.c:85
 msgid "Audio"
 msgstr "Audio"
 
-#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
-msgstr "Wiedergabe-Verstärkung"
-
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:86
 msgid "Network"
 msgstr "Netzwerk"
 
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:87 src/audacious/ui_preferences.c:1603
 msgid "Playlist"
 msgstr ""
 "Wiedergabe-\n"
 "Liste"
 
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:88
 msgid "Plugins"
 msgstr "Plugins"
 
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:94 src/libaudgui/infopopup.c:199
 msgid "Artist"
 msgstr "Künstler"
 
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:95 src/libaudgui/infopopup.c:201
 msgid "Album"
 msgstr "Album"
 
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:197
+#: src/libaudgui/ui_playlist_manager.c:279
 msgid "Title"
 msgstr "Titel"
 
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:97
 msgid "Tracknumber"
 msgstr "Titelnummer"
 
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:203
 msgid "Genre"
 msgstr "Genre"
 
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:99
 msgid "Filename"
 msgstr "Dateiname"
 
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:100
 msgid "Filepath"
 msgstr "Dateipfad"
 
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:101
 msgid "Date"
 msgstr "Datum"
 
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:205
 msgid "Year"
 msgstr "Jahr"
 
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:103
 msgid "Comment"
 msgstr "Kommentar"
 
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:104
 msgid "Codec"
 msgstr "Codec"
 
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:105
 msgid "Quality"
 msgstr "Qualität"
 
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:111
 msgid "None"
 msgstr "Keine"
 
+#: src/audacious/ui_preferences.c:112
+msgid "Arabic"
+msgstr "Arabisch"
+
+#: src/audacious/ui_preferences.c:113
+msgid "Baltic"
+msgstr "Baltisch"
+
+#: src/audacious/ui_preferences.c:114
+msgid "Chinese"
+msgstr "Chinesisch"
+
 #: src/audacious/ui_preferences.c:115
-msgid "Japanese"
-msgstr "Japanisch"
+msgid "Greek"
+msgstr "Griechisch"
 
 #: src/audacious/ui_preferences.c:116
-msgid "Taiwanese"
-msgstr "Taiwanisch"
+msgid "Hebrew"
+msgstr "Hebräisch"
 
 #: src/audacious/ui_preferences.c:117
-msgid "Chinese"
-msgstr "Chinesisch"
+msgid "Japanese"
+msgstr "Japanisch"
 
 #: src/audacious/ui_preferences.c:118
 msgid "Korean"
 msgstr "Koreanisch"
 
 #: src/audacious/ui_preferences.c:119
-msgid "Russian"
-msgstr "Russisch"
+msgid "Polish"
+msgstr "Polnisch"
 
 #: src/audacious/ui_preferences.c:120
-msgid "Greek"
-msgstr "Griechisch"
+msgid "Russian"
+msgstr "Russisch"
 
 #: src/audacious/ui_preferences.c:121
-msgid "Hebrew"
-msgstr "Hebräisch"
+msgid "Taiwanese"
+msgstr "Taiwanisch"
 
 #: src/audacious/ui_preferences.c:122
 msgid "Turkish"
 msgstr "Türkisch"
 
-#: src/audacious/ui_preferences.c:123
-msgid "Arabic"
-msgstr "Arabisch"
-
-#: src/audacious/ui_preferences.c:124
-msgid "Polish"
-msgstr "Polnisch"
-
-#: src/audacious/ui_preferences.c:125
-msgid "Baltic"
-msgstr "Baltisch"
-
-#: src/audacious/ui_preferences.c:126
-msgid "Universal"
-msgstr "Universal"
-
-#: src/audacious/ui_preferences.c:146
-msgid "<b>Bit Depth</b>"
-msgstr "<b>Abtastfrequenz</b>"
+#: src/audacious/ui_preferences.c:144
+msgid "Album mode"
+msgstr "Album-Modus"
 
 #: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr "Ausgabe-Abtastfrequenz:"
-
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
-"Alle Streams werden in diese Abtastfrequenz umgewandelt.\n"
-"Sie sollte die maximal unterstützte Abtastfrequenz der\n"
-"Soundkarte oder des Ausgabe-Plugins sein."
+msgid "<b>Output Settings</b>"
+msgstr "<b>Ausgabe-Einstellungen</b>"
 
-#: src/audacious/ui_preferences.c:151
-msgid "<b>Volume Control</b>"
-msgstr "<b>Lautstärkeregelung</b>"
+#: src/audacious/ui_preferences.c:149
+msgid "Bit depth:"
+msgstr "Bit-Tiefe:"
 
 #: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr "Softwareseitige Lautstärkeregelung benutzen"
+msgid "Buffer size:"
+msgstr "Puffergröße:"
 
 #: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
-"Benutze Software-Lautstärkeregelung. Das kann nützlich sein für den Fall, "
-"dass das Audio-System die Kontrolle der Wiedergabelautstärke nicht "
-"unterstützt."
+msgid "ms"
+msgstr "ms"
 
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
-msgstr "Alle Dateien verstärken:"
-
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
-msgstr "dB"
+#: src/audacious/ui_preferences.c:155
+msgid "Use software volume control (not recommended)"
+msgstr "Softwareseitige Lautstärkeregelung benutzen (nicht empfohlen)"
 
-#: src/audacious/ui_preferences.c:160
-msgid "Amplify untagged files:"
-msgstr "Unmarkierte Dateien verstärken:"
-
-#: src/audacious/ui_preferences.c:164
+#: src/audacious/ui_preferences.c:157
 msgid "<b>Replay Gain</b>"
 msgstr "<b>Wiedergabe-Verstärkung</b>"
 
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:158
 msgid "Enable Replay Gain"
 msgstr "Wiedergabe-Verstärkung aktivieren"
 
-#: src/audacious/ui_preferences.c:167
-msgid "<b>Mode</b>"
-msgstr "<b>Modus</b>"
-
-#: src/audacious/ui_preferences.c:168
-msgid "Single track mode"
-msgstr "Einzelspur-Modus"
-
-#: src/audacious/ui_preferences.c:170
-msgid "Album mode"
-msgstr "Album-Modus"
+#: src/audacious/ui_preferences.c:161
+msgid "Prevent clipping (recommended)"
+msgstr "Ãœbersteuern verhindern (empfohlen)"
 
-#: src/audacious/ui_preferences.c:172
+#: src/audacious/ui_preferences.c:163
 msgid "<b>Adjust Levels</b>"
 msgstr "<b>Pegel anpassen</b>"
 
-#: src/audacious/ui_preferences.c:175
-msgid "<b>Clipping Prevention</b>"
-msgstr "<b>Clipping-Verhinderung</b>"
+#: src/audacious/ui_preferences.c:164
+msgid "Amplify all files:"
+msgstr "Alle Dateien verstärken:"
 
-#: src/audacious/ui_preferences.c:176
-msgid "Enable clipping prevention"
-msgstr "Clipping-Verhinderung aktivieren"
+#: src/audacious/ui_preferences.c:166 src/audacious/ui_preferences.c:169
+msgid "dB"
+msgstr "dB"
+
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify untagged files:"
+msgstr "Unmarkierte Dateien verstärken:"
 
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:172
 msgid "Proxy hostname:"
 msgstr "Proxy-Host:"
 
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:173
 msgid "Proxy port:"
 msgstr "Proxy-Port:"
 
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:176
 msgid "Proxy username:"
 msgstr "Benutzername für Proxy:"
 
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:177
 msgid "Proxy password:"
 msgstr "Passwort für Proxy:"
 
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:181
 msgid "<b>Proxy Configuration</b>"
 msgstr "<b>Proxy-Konfiguration</b>"
 
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:182
 msgid "Enable proxy usage"
 msgstr "Proxy aktivieren"
 
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:185
 msgid "Use authentication with proxy"
 msgstr "Benutze Authentisierung mit Proxy"
 
-#: src/audacious/ui_preferences.c:197
-msgid ""
-"<span size=\"small\">Changing these settings will require a restart of "
-"Audacious.</span>"
-msgstr ""
-"<span size=\"small\">Das Ändern dieser Einstellungen erfordert einen "
-"Neustart von Audacious.</span>"
-
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
 msgid "Auto character encoding detector for:"
 msgstr "Automatische Zeichensatzerkennung für:"
 
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:198
 msgid "Fallback character encodings:"
 msgstr "Alternative Zeichensätze:"
 
-#: src/audacious/ui_preferences.c:209
-msgid ""
-"List of character encodings used for fall back conversion of metadata. If "
-"automatic character encoding detector failed or has been disabled, encodings "
-"in this list would be treated as candidates of the encoding of metadata, and "
-"fall back conversion from these encodings to UTF-8 would be attempted."
-msgstr ""
-"Alternativ für Metadaten verwendete Zeichensätze. Wenn die automatische "
-"Erkennung des Zeichensatzes fehlgeschlagen oder deaktiviert ist, werden die "
-"nachfolgend aufgelisteten Zeichensätze ausprobiert. Nach diesen wird dann "
-"noch einmal probiert, von diesen Zeichensätzen nach UTF-8 zu dekodieren."
-
-#: src/audacious/ui_preferences.c:213
+#: src/audacious/ui_preferences.c:202
 msgid "<b>Behavior</b>"
 msgstr "<b>Verhalten</b>"
 
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:203
 msgid "Continue playback on startup"
 msgstr "Wiedergabe beim Starten fortführen"
 
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:205
 msgid "Advance when the current song is deleted"
 msgstr "Fortschreiten falls aktueller Titel gelöscht wird"
 
-#: src/audacious/ui_preferences.c:218
+#: src/audacious/ui_preferences.c:207
 msgid "Clear the playlist when opening files"
 msgstr "Wiedergabeliste beim Öffnen neuer Dateien leeren"
 
-#  -e, --enqueue switch
-#: src/audacious/ui_preferences.c:220
+#: src/audacious/ui_preferences.c:209
 msgid "Open files in a temporary playlist"
 msgstr "Dateien in temporärer Wiedergabeliste öffnen"
 
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:211
 msgid "<b>Metadata</b>"
 msgstr "<b>Metadaten</b>"
 
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:212
+msgid "Do not load metadata for songs until played"
+msgstr "Metadaten erst laden, wenn Titel gespielt wird"
+
+#: src/audacious/ui_preferences.c:230
+msgid "TITLE"
+msgstr "TITEL"
+
+#: src/audacious/ui_preferences.c:231
+msgid "ARTIST - TITLE"
+msgstr "KÃœNSTLER - TITEL"
+
+#: src/audacious/ui_preferences.c:232
+msgid "ARTIST - ALBUM - TITLE"
+msgstr "KÃœNSTLER - ALBUM - TITEL"
+
+#: src/audacious/ui_preferences.c:233
+msgid "ARTIST - ALBUM - TRACK. TITLE"
+msgstr "KÃœNSTLER - ALBUM - TITELNUMMER. TITEL"
+
+#: src/audacious/ui_preferences.c:234
+msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
+msgstr "KÃœNSTLER [ ALBUM ] - TITELNUMMER. TITEL"
+
+#: src/audacious/ui_preferences.c:235
+msgid "ALBUM - TITLE"
+msgstr "ALBUM - TITEL"
+
+#: src/audacious/ui_preferences.c:556
 msgid "Category"
 msgstr "Kategorie"
 
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:780
 msgid "Popup Information Settings"
 msgstr "Popup-Informations-Einstellungen"
 
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:789
 msgid "<b>Cover image retrieve</b>"
 msgstr "<b>Cover-Bild finden</b>"
 
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:794
 msgid ""
 "While searching for the album's cover, Audacious looks for certain words in "
 "the filename. You can specify those words in the lists below, separated "
@@ -631,99 +608,75 @@ msgstr ""
 "Dateinamen. Diese können nachfolgend eingegeben werden, jeweils durch Kommas "
 "getrennt."
 
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:811
 msgid "Exclude:"
 msgstr "Ausschließen:"
 
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:818
 msgid "Include:"
 msgstr "Einschließen:"
 
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:835
 msgid "Recursively search for cover"
 msgstr "Rekursiv nach dem Titelbild suchen"
 
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:845
 msgid "Search depth: "
 msgstr "Suchtiefe: "
 
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:859
 msgid "Use per-file cover"
 msgstr "Pro-Datei-Titelbild benutzen"
 
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:862
 msgid "<b>Miscellaneous</b>"
 msgstr "<b>Verschiedenes</b>"
 
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:871
 msgid "Show Progress bar for the current track"
 msgstr "Zeige Fortschrittsbalken für den aktuellen Titel"
 
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:881
 msgid "Delay until filepopup comes up: "
 msgstr "Verzögerung bis zum Erscheinen des Popups: "
 
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1309
+msgid "Custom"
+msgstr "Eigene Zeichenkette"
+
+#: src/audacious/ui_preferences.c:1352
 msgid "<b>Song Display</b>"
 msgstr "<b>Titelanzeige</b>"
 
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1361
 msgid "Show song numbers"
 msgstr "Zeige Titelnummern"
 
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1372
 msgid "Show leading zeroes (02:00 instead of 2:00)"
 msgstr "Führende Nullen anzeigen (02:00 anstatt 2:00)"
 
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1394
 msgid "Show information about titlestring format"
 msgstr "Informationen über das Format der Titelzeile anzeigen"
 
-#: src/audacious/ui_preferences.c:1514
-msgid "TITLE"
-msgstr "TITEL"
-
-#: src/audacious/ui_preferences.c:1515
-msgid "ARTIST - TITLE"
-msgstr "KÃœNSTLER - TITEL"
-
-#: src/audacious/ui_preferences.c:1516
-msgid "ARTIST - ALBUM - TITLE"
-msgstr "KÃœNSTLER - ALBUM - TITEL"
-
-#: src/audacious/ui_preferences.c:1517
-msgid "ARTIST - ALBUM - TRACK. TITLE"
-msgstr "KÃœNSTLER - ALBUM - TITELNUMMER. TITEL"
-
-#: src/audacious/ui_preferences.c:1518
-msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
-msgstr "KÃœNSTLER [ ALBUM ] - TITELNUMMER. TITEL"
-
-#: src/audacious/ui_preferences.c:1519
-msgid "ALBUM - TITLE"
-msgstr "ALBUM - TITEL"
-
-#: src/audacious/ui_preferences.c:1520
-msgid "Custom"
-msgstr "Eigene Zeichenkette"
-
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1410
 msgid "Custom string:"
 msgstr "Eigene Zeichenkette:"
 
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1417
 msgid "Title format:"
 msgstr "Titelformat:"
 
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1428
 msgid "<b>Popup Information</b>"
 msgstr "<b>Popup-Information</b>"
 
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1443
 msgid "Show popup information for playlist entries"
 msgstr "Popup-Informationen für Widergabelisteneinträge anzeigen"
 
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1444
 msgid ""
 "Toggles popup information window for the pointed entry in the playlist. The "
 "window shows title of song, name of album, genre, year of publish, track "
@@ -734,73 +687,84 @@ msgstr ""
 "werden Titel, Album, Genre, Publikationsjahr, Titelnummer, Titellänge und "
 "Cover-Bild."
 
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1455
 msgid "Edit settings for popup information"
 msgstr "Einstellungen für Popup-Informationen bearbeiten"
 
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>Audio-System</b>"
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "Puffergröße:"
-
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
-msgstr "Aktives Ausgabe-Plugin:"
+#: src/audacious/ui_preferences.c:1544
+msgid "Output plugin:"
+msgstr "Ausgabe-Plugin:"
 
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1603
 msgid "Transport"
 msgstr "Transport"
 
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1603
 msgid "Input"
 msgstr "Eingabe"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1604
 msgid "Effect"
 msgstr "Effekte"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1604
 msgid "Visualization"
 msgstr "Visualisierung"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1604
 msgid "General"
 msgstr "Allgemein"
 
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1644
 msgid "Audacious Preferences"
 msgstr "Audacious-Einstellungen"
 
-#: src/audacious/util.c:161
+#: src/audacious/util.c:120
 #, c-format
 msgid "Could not create directory (%s): %s\n"
 msgstr "Konnte Verzeichnis (%s) nicht erstellen: %s\n"
 
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:273
 msgid "Position not found."
 msgstr "Position nicht gefunden."
 
-#: src/audtool/handlers_vitals.c:64
+#: src/audtool/handlers_vitals.c:63
 msgid "No song playing."
 msgstr "Kein Titel wird wiedergegeben."
 
-#: src/libaudcore/tuple.c:685
+#: src/libaudcore/audstrings.c:199
+#, c-format
+msgid "Audio CD, track %s"
+msgstr "Audio-CD, Titel %s"
+
+#: src/libaudcore/tuple.c:536
 msgid "Mono"
 msgstr "Mono"
 
-#: src/libaudcore/tuple.c:687
+#: src/libaudcore/tuple.c:538
 msgid "Stereo"
 msgstr "Stereo"
 
-#: src/libaudcore/tuple.c:689
+#: src/libaudcore/tuple.c:540
 #, c-format
-msgid "%d channels"
-msgstr "%d Kanäle"
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] "%d Kanal"
+msgstr[1] "%d Kanäle"
+
+#: src/libaudgui/about.c:52 src/libaudgui/about.c:115
+msgid "Credits"
+msgstr "Credits"
+
+#: src/libaudgui/about.c:52
+msgid "Translators"
+msgstr "Ãœbersetzer"
 
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/about.c:91
+msgid "About Audacious"
+msgstr "Ãœber Audacious"
+
+#: src/libaudgui/confirm.c:76
 #, c-format
 msgid ""
 "Are you sure you want to close %s?  If you do, any changes made since the "
@@ -809,415 +773,435 @@ msgstr ""
 "Wollen Sie wirklich '%s' löschen?  Alle seit der letzten Speicherung "
 "geänderten Einträge gehen dadurch verloren."
 
-#  -m, --show-main-window switch
-#  -m, --show-main-window switch
-#: src/libaudgui/confirm.c:77
+#: src/libaudgui/confirm.c:89
 msgid "_Don't show this message again"
 msgstr "_Diese Warnung nicht mehr anzeigen"
 
-#: src/libaudgui/confirm.c:115
+#: src/libaudgui/confirm.c:126
 msgid "Rename Playlist"
 msgstr "Wiedergabeliste umbenennen"
 
-#: src/libaudgui/effects-menu.c:76
+#: src/libaudgui/effects-menu.c:74
 msgid "settings ..."
 msgstr "Einstellungen ..."
 
-#: src/libaudgui/equalizer.c:68
+#: src/libaudgui/equalizer.c:51
 msgid "_Enable"
 msgstr "_Aktiv"
 
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:123
 msgid "31 Hz"
-msgstr ""
+msgstr "31 Hz"
 
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:123
 msgid "63 Hz"
-msgstr ""
+msgstr "63 Hz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
 msgid "125 Hz"
-msgstr ""
+msgstr "125 Hz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
 msgid "250 Hz"
-msgstr ""
+msgstr "250 Hz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
 msgid "500 Hz"
-msgstr ""
+msgstr "500 Hz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
 msgid "1 kHz"
-msgstr ""
+msgstr "1 kHz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
 msgid "2 kHz"
-msgstr ""
+msgstr "2 kHz"
 
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:125
 msgid "4 kHz"
-msgstr ""
+msgstr "4 kHz"
 
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:125
 msgid "8 kHz"
-msgstr ""
+msgstr "8 kHz"
 
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:125
 msgid "16 kHz"
-msgstr ""
+msgstr "16 kHz"
 
-#: src/libaudgui/equalizer.c:147
+#: src/libaudgui/equalizer.c:130
 msgid "Equalizer"
 msgstr "Equalizer"
 
-#: src/libaudgui/equalizer.c:163
+#: src/libaudgui/equalizer.c:146
 msgid "Preamp"
 msgstr "Vorverstärkung"
 
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:207
 msgid "Track Number"
 msgstr "Titelnummer"
 
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:209
 msgid "Track Length"
 msgstr "Titellänge"
 
-#: src/libaudgui/infowin.c:77
+#: src/libaudgui/infowin.c:75
 msgid "Acid Jazz"
 msgstr "Acid Jazz"
 
-#: src/libaudgui/infowin.c:78
+#: src/libaudgui/infowin.c:76
 msgid "Acid Rock"
 msgstr "Psychedelic Rock"
 
-#: src/libaudgui/infowin.c:79
+#: src/libaudgui/infowin.c:77
 msgid "Ambient"
 msgstr "Ambient"
 
-#: src/libaudgui/infowin.c:80
+#: src/libaudgui/infowin.c:78
 msgid "Bebop"
 msgstr "Bebop"
 
-#: src/libaudgui/infowin.c:81
+#: src/libaudgui/infowin.c:79
 msgid "Bluegrass"
 msgstr "Bluegrass"
 
-#: src/libaudgui/infowin.c:82
+#: src/libaudgui/infowin.c:80
 msgid "Blues"
 msgstr "Blues"
 
-#: src/libaudgui/infowin.c:83
+#: src/libaudgui/infowin.c:81
 msgid "Chamber Music"
 msgstr "Kammermusik"
 
-#: src/libaudgui/infowin.c:84
+#: src/libaudgui/infowin.c:82
 msgid "Classical"
 msgstr "Klassisch"
 
-#: src/libaudgui/infowin.c:85
+#: src/libaudgui/infowin.c:83
 msgid "Country"
 msgstr "Country"
 
-#: src/libaudgui/infowin.c:86
+#: src/libaudgui/infowin.c:84
 msgid "Death Metal"
 msgstr "Death Metal"
 
-#: src/libaudgui/infowin.c:87
+#: src/libaudgui/infowin.c:85
 msgid "Disco"
 msgstr "Disco"
 
-#: src/libaudgui/infowin.c:88
+#: src/libaudgui/infowin.c:86
 msgid "Easy Listening"
 msgstr "Easy Listening"
 
-#: src/libaudgui/infowin.c:89
+#: src/libaudgui/infowin.c:87
 msgid "Folk"
 msgstr "Folk"
 
-#: src/libaudgui/infowin.c:90
+#: src/libaudgui/infowin.c:88
 msgid "Funk"
 msgstr "Funk"
 
-#: src/libaudgui/infowin.c:91
+#: src/libaudgui/infowin.c:89
 msgid "Gangsta Rap"
 msgstr "Gangsta Rap"
 
-#: src/libaudgui/infowin.c:92
+#: src/libaudgui/infowin.c:90
 msgid "Gospel"
 msgstr "Gospel"
 
-#: src/libaudgui/infowin.c:93
+#: src/libaudgui/infowin.c:91
 msgid "Grunge"
 msgstr "Grunge"
 
-#: src/libaudgui/infowin.c:94
+#: src/libaudgui/infowin.c:92
 msgid "Hard Rock"
 msgstr "Hard Rock"
 
-#: src/libaudgui/infowin.c:95
+#: src/libaudgui/infowin.c:93
 msgid "Heavy Metal"
 msgstr "Heavy Metal"
 
-#: src/libaudgui/infowin.c:96
+#: src/libaudgui/infowin.c:94
 msgid "Hip-hop"
 msgstr "Hip-Hop"
 
-#: src/libaudgui/infowin.c:97
+#: src/libaudgui/infowin.c:95
 msgid "House"
 msgstr "House"
 
-#: src/libaudgui/infowin.c:98
+#: src/libaudgui/infowin.c:96
 msgid "Jazz"
 msgstr "Jazz"
 
-#: src/libaudgui/infowin.c:99
+#: src/libaudgui/infowin.c:97
 msgid "Jungle"
 msgstr "Jungle"
 
-#: src/libaudgui/infowin.c:100
+#: src/libaudgui/infowin.c:98
 msgid "Metal"
 msgstr "Metal"
 
-#: src/libaudgui/infowin.c:101
+#: src/libaudgui/infowin.c:99
 msgid "New Age"
 msgstr "New Age"
 
-#: src/libaudgui/infowin.c:102
+#: src/libaudgui/infowin.c:100
 msgid "New Wave"
 msgstr "New Wave"
 
-#: src/libaudgui/infowin.c:103
+#: src/libaudgui/infowin.c:101
 msgid "Noise"
 msgstr "Noise"
 
-#: src/libaudgui/infowin.c:104
+#: src/libaudgui/infowin.c:102
 msgid "Pop"
 msgstr "Pop"
 
-#: src/libaudgui/infowin.c:105
+#: src/libaudgui/infowin.c:103
 msgid "Punk Rock"
 msgstr "Punk Rock"
 
-#: src/libaudgui/infowin.c:106
+#: src/libaudgui/infowin.c:104
 msgid "Rap"
 msgstr "Rap"
 
-#: src/libaudgui/infowin.c:107
+#: src/libaudgui/infowin.c:105
 msgid "Reggae"
 msgstr "Reggae"
 
-#: src/libaudgui/infowin.c:108
+#: src/libaudgui/infowin.c:106
 msgid "Rock"
 msgstr "Rock"
 
-#: src/libaudgui/infowin.c:109
+#: src/libaudgui/infowin.c:107
 msgid "Rock and Roll"
 msgstr "Rock & Roll"
 
-#: src/libaudgui/infowin.c:110
+#: src/libaudgui/infowin.c:108
 msgid "Rhythm and Blues"
 msgstr "Rhythm & Blues"
 
-#: src/libaudgui/infowin.c:111
+#: src/libaudgui/infowin.c:109
 msgid "Ska"
 msgstr "Ska"
 
-#: src/libaudgui/infowin.c:112
+#: src/libaudgui/infowin.c:110
 msgid "Soul"
 msgstr "Soul"
 
-#: src/libaudgui/infowin.c:113
+#: src/libaudgui/infowin.c:111
 msgid "Swing"
 msgstr "Swing"
 
-#: src/libaudgui/infowin.c:114
+#: src/libaudgui/infowin.c:112
 msgid "Techno"
 msgstr "Techno"
 
-#: src/libaudgui/infowin.c:115
+#: src/libaudgui/infowin.c:113
 msgid "Trip-hop"
 msgstr "Trip-Hop"
 
-#: src/libaudgui/infowin.c:175 src/libaudgui/infowin.c:361
-#: src/libaudgui/infowin.c:364 src/libaudgui/infowin.c:367
+#: src/libaudgui/infowin.c:177 src/libaudgui/infowin.c:363
+#: src/libaudgui/infowin.c:366 src/libaudgui/infowin.c:369
 msgid "<span size=\"small\">n/a</span>"
 msgstr "<span size=\"small\">n/v</span>"
 
-#: src/libaudgui/infowin.c:265
+#: src/libaudgui/infowin.c:267
 msgid "Metadata updated successfully"
 msgstr "Metadaten-Update erfolgreich"
 
-#: src/libaudgui/infowin.c:270
+#: src/libaudgui/infowin.c:272
 msgid "Metadata updating failed"
 msgstr "Metadaten-Update fehlgeschlagen"
 
-#: src/libaudgui/infowin.c:318
+#: src/libaudgui/infowin.c:320
 msgid "Track Information"
 msgstr "Titel-Information"
 
-#: src/libaudgui/infowin.c:350
+#: src/libaudgui/infowin.c:352
 msgid "<span size=\"small\">Format:</span>"
 msgstr "<span size=\"small\">Format:</span>"
 
-#: src/libaudgui/infowin.c:354
+#: src/libaudgui/infowin.c:356
 msgid "<span size=\"small\">Quality:</span>"
 msgstr "<span size=\"small\">Qualität:</span>"
 
-#: src/libaudgui/infowin.c:357
+#: src/libaudgui/infowin.c:359
 msgid "<span size=\"small\">Bitrate:</span>"
 msgstr "<span size=\"small\">Bitrate:</span>"
 
-#: src/libaudgui/infowin.c:387
+#: src/libaudgui/infowin.c:389
 msgid "<span size=\"small\">Title</span>"
 msgstr "<span size=\"small\">Titel</span>"
 
-#: src/libaudgui/infowin.c:399
+#: src/libaudgui/infowin.c:401
 msgid "<span size=\"small\">Artist</span>"
 msgstr "<span size=\"small\">Künstler</span>"
 
-#: src/libaudgui/infowin.c:411
+#: src/libaudgui/infowin.c:413
 msgid "<span size=\"small\">Album</span>"
 msgstr "<span size=\"small\">Album</span>"
 
-#: src/libaudgui/infowin.c:423
+#: src/libaudgui/infowin.c:425
 msgid "<span size=\"small\">Comment</span>"
 msgstr "<span size=\"small\">Kommentar</span>"
 
-#: src/libaudgui/infowin.c:435
+#: src/libaudgui/infowin.c:437
 msgid "<span size=\"small\">Genre</span>"
 msgstr "<span size=\"small\">Genre</span>"
 
-#: src/libaudgui/infowin.c:456
+#: src/libaudgui/infowin.c:458
 msgid "<span size=\"small\">Year</span>"
 msgstr "<span size=\"small\">Jahr</span>"
 
-#: src/libaudgui/infowin.c:467
+#: src/libaudgui/infowin.c:469
 msgid "<span size=\"small\">Track Number</span>"
 msgstr "<span size=\"small\">Titelnummer</span>"
 
-#: src/libaudgui/infowin.c:549
+#: src/libaudgui/infowin.c:548
 #, c-format
 msgid "%d kb/s"
 msgstr "%d kb/s"
 
-#: src/libaudgui/infowin.c:579
+#: src/libaudgui/infowin.c:575
 #, c-format
 msgid "No info available for %s.\n"
 msgstr "Keine Information verfügbar für %s.\n"
 
-#: src/libaudgui/ui_about.c:71
-msgid "About Audacious"
-msgstr "Ãœber Audacious"
+#: src/libaudgui/jump-to-time.c:72
+msgid "Jump to Time"
+msgstr "Zu Zeitangabe springen"
 
-#: src/libaudgui/ui_about.c:93 src/libaudgui/ui_credits.c:122
-msgid "Credits"
-msgstr "Credits"
+#: src/libaudgui/jump-to-time.c:87
+msgid "mm:ss"
+msgstr "min:sek"
 
-#: src/libaudgui/ui_credits.c:126
-msgid "Translators"
-msgstr "Ãœbersetzer"
+#: src/libaudgui/playlists.c:33
+msgid "Export Playlist"
+msgstr "Wiedergabeliste exportieren"
+
+#: src/libaudgui/playlists.c:33
+msgid "Import Playlist"
+msgstr "Wiedergabeliste importieren"
+
+#: src/libaudgui/playlists.c:66
+#, c-format
+msgid "Overwrite %s?"
+msgstr "'%s' überschreiben?"
 
-#: src/libaudgui/ui_fileopener.c:108
+#: src/libaudgui/queue-manager.c:196
+msgid "Queue Manager"
+msgstr "Warteschlangen-Manager"
+
+#: src/libaudgui/ui_fileopener.c:109
 msgid "Open Files"
 msgstr "Dateien öffnen"
 
-#: src/libaudgui/ui_fileopener.c:108
+#: src/libaudgui/ui_fileopener.c:109
 msgid "Add Files"
 msgstr "Dateien hinzufügen"
 
-#: src/libaudgui/ui_fileopener.c:110
+#: src/libaudgui/ui_fileopener.c:111
 msgid "Close dialog on Open"
 msgstr "Dialog beim Öffnen schließen"
 
-#: src/libaudgui/ui_fileopener.c:110
+#: src/libaudgui/ui_fileopener.c:111
 msgid "Close dialog on Add"
 msgstr "Dialog beim Hinzufügen schließen"
 
-#: src/libaudgui/ui_jumptotrack.c:133
-msgid "Un_queue"
-msgstr "Aus _Warteschlange"
-
-#: src/libaudgui/ui_jumptotrack.c:135 src/libaudgui/ui_jumptotrack.c:512
+#: src/libaudgui/ui_jumptotrack.c:109 src/libaudgui/ui_jumptotrack.c:117
+#: src/libaudgui/ui_jumptotrack.c:326
 msgid "_Queue"
 msgstr "In _Warteschlange"
 
-#: src/libaudgui/ui_jumptotrack.c:399
-msgid "Jump to Track"
+#: src/libaudgui/ui_jumptotrack.c:115
+msgid "Un_queue"
+msgstr "Aus _Warteschlange"
+
+#: src/libaudgui/ui_jumptotrack.c:258
+msgid "Jump to Song"
 msgstr "Zu Titel springen"
 
-#: src/libaudgui/ui_jumptotrack.c:442
+#: src/libaudgui/ui_jumptotrack.c:281
 msgid "Filter: "
 msgstr "Filter: "
 
-#: src/libaudgui/ui_jumptotrack.c:443
+#: src/libaudgui/ui_jumptotrack.c:282
 msgid "_Filter:"
 msgstr "_Filter:"
 
-#: src/libaudgui/ui_jumptotrack.c:461
+#: src/libaudgui/ui_jumptotrack.c:292
 msgid "Remember"
 msgstr "Merken"
 
-#: src/libaudgui/ui_jumptotrack.c:470
+#: src/libaudgui/ui_jumptotrack.c:299
 msgid "Clea_r"
 msgstr "A-B löschen"
 
-#: src/libaudgui/ui_jumptotrack.c:504
+#: src/libaudgui/ui_jumptotrack.c:319
 msgid "Close on Jump"
 msgstr "Nach Öffnen schließen"
 
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:253
 msgid "Playlist Manager"
 msgstr "Wiedergabelistenverwaltung"
 
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:280
 msgid "Entries"
 msgstr "Einträge"
 
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:301
 msgid "_Rename"
 msgstr "_Umbenennen"
 
-#: src/libaudgui/ui_playlist_manager.c:251
+#: src/libaudgui/ui_playlist_manager.c:325
 msgid "_Close dialog on activating playlist"
-msgstr "Dialog beim Öffnen einer Liste schließen"
+msgstr "Dialog beim Öffnen einer Liste _schließen"
 
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:48
 msgid "Open URL"
 msgstr "URL öffnen"
 
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:48
 msgid "Add URL"
 msgstr "URL hinzufügen"
 
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+"\n"
+"(Weitere Meldungen wurden nicht angezeigt.)"
+
 #: src/libeggsmclient/eggdesktopfile.c:165
 msgid "File is not a valid .desktop file"
 msgstr "Datei ist keine gültige .desktop-Datei"
 
-#: src/libeggsmclient/eggdesktopfile.c:188
+#: src/libeggsmclient/eggdesktopfile.c:191
 #, c-format
 msgid "Unrecognized desktop file Version '%s'"
 msgstr "Unbekannte Desktop-Datei-Version '%s'"
 
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:974
 #, c-format
 msgid "Starting %s"
 msgstr "Starte %s"
 
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1116
 msgid "Application does not accept documents on command line"
 msgstr "Programm akzeptiert keine Dokumente auf der Kommandozeile"
 
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1184
 #, c-format
 msgid "Unrecognized launch option: %d"
 msgstr "Unbekannte Start-Option: %d"
 
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1391
 msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
 msgstr "Kann keine Dokument-URIs an einen 'Type=Link'-Desktopeintrag übergeben"
 
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1412
 msgid "Not a launchable item"
 msgstr "Ist nicht ausführbar"
 
diff --git a/po/el.po b/po/el.po
index 660b748..5f74d70 100644
--- a/po/el.po
+++ b/po/el.po
@@ -1,32 +1,42 @@
-# Greek translations for audacious package.
-# Copyright (C) 2003 Kouzinopoulos Haris (ironhell3) <haris at mpa.gr>
-# Kouzinopoulos Haris <haris at mpa.gr>, 2003 - 2004.
-# Stavros Giannouris <stavrosg2002 at freemail.gr>, 2005 - 2006.
-# Stathis Kamperis <ekamperi at auth.gr>, 2006
+# Greek translation for Audacious
+# Copyright (C) Audacious translators
+# This file is distributed under the same license as the Audacious package.
 #
+# Translators:
+# Stathis Kamperis <ekamperi at auth.gr>, 2006.
+# Γιάννης  <yannanth at gmail.com>, 2011.
 msgid ""
 msgstr ""
-"Project-Id-Version: audacious 1.1.0\n"
-"Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
-"PO-Revision-Date: 2006-07-18 20:56+0200\n"
-"Last-Translator: Stavros Giannouris <stavrosg2002 at freemail.gr>\n"
-"Language-Team: Greek <nls at tux.hellug.gr>\n"
-"Language: el\n"
+"Project-Id-Version: Audacious\n"
+"Report-Msgid-Bugs-To: http://jira.atheme.org/browse/AUD\n"
+"POT-Creation-Date: 2011-10-19 21:32-0400\n"
+"PO-Revision-Date: 2011-10-30 19:23+0000\n"
+"Last-Translator: Evropi <yannanth at gmail.com>\n"
+"Language-Team: Greek\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n>1;\n"
-"X-Poedit-Bookmarks: -1,-1,-1,-1,-1,-1,-1,-1,1,-1\n"
+"Language: el\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+
+#: src/audacious/adder.c:71
+msgid "Searching ..."
+msgstr "Αναζήτηση..."
+
+#: src/audacious/adder.c:97
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] ""
+msgstr[1] ""
 
-#: src/audacious/chardet.c:37
+#: src/audacious/chardet.c:38
 msgid "  (invalid UTF-8)"
 msgstr "  (μη έγκυρο UTF-8)"
 
 #: src/audacious/credits.c:35
-#, fuzzy
 msgid "Core developers:"
-msgstr "Δημιουργοί για το 0.1.x:"
+msgstr ""
 
 #: src/audacious/credits.c:49
 msgid "Graphics:"
@@ -45,365 +55,326 @@ msgid "Patch authors:"
 msgstr ""
 
 #: src/audacious/credits.c:126
-#, fuzzy
 msgid "1.x developers:"
-msgstr "Δημιουργοί για το 0.1.x:"
+msgstr ""
 
 #: src/audacious/credits.c:148
 msgid "BMP Developers:"
 msgstr "Δημιουργοί BMP:"
 
 #: src/audacious/credits.c:180
-#, fuzzy
 msgid "Belarusian:"
-msgstr "Ουγγρική:"
+msgstr "Λευκορωσικά:"
 
 #: src/audacious/credits.c:183
 msgid "Basque:"
-msgstr ""
+msgstr "Βασκικά:"
 
 #: src/audacious/credits.c:186
 msgid "Brazilian Portuguese:"
 msgstr "Πορτογαλικά Βραζιλίας:"
 
-#: src/audacious/credits.c:190
+#: src/audacious/credits.c:191
 msgid "Breton:"
-msgstr "Breton:"
+msgstr "Βρετόνικα:"
 
-#: src/audacious/credits.c:193
-#, fuzzy
+#: src/audacious/credits.c:194
 msgid "Bulgarian:"
-msgstr "Ουγγρική:"
+msgstr "Βουλγαρικά:"
 
-#: src/audacious/credits.c:196
-#, fuzzy
+#: src/audacious/credits.c:197
 msgid "Catalan:"
-msgstr "Ιταλικά:"
+msgstr "Καταλανικά:"
 
-#: src/audacious/credits.c:199
-#, fuzzy
+#: src/audacious/credits.c:200
 msgid "Chinese:"
 msgstr "Κινέζικα:"
 
-#: src/audacious/credits.c:202
-#, fuzzy
+#: src/audacious/credits.c:203
 msgid "Croatian:"
-msgstr "Τοποθεσία:"
+msgstr "Κροατικά:"
 
-#: src/audacious/credits.c:205
+#: src/audacious/credits.c:206
 msgid "Czech:"
 msgstr "Τσέχικα:"
 
-#: src/audacious/credits.c:208
+#: src/audacious/credits.c:209
 msgid "Dutch:"
-msgstr "Ολλανδική:"
+msgstr "Ολλανδικά:"
 
-#: src/audacious/credits.c:212
-#, fuzzy
+#: src/audacious/credits.c:213
 msgid "Estonian:"
-msgstr "Ρουμανικά:"
+msgstr "Εστονικά:"
 
-#: src/audacious/credits.c:215
+#: src/audacious/credits.c:216
 msgid "Finnish:"
-msgstr "Φινλανδικά:"
+msgstr "Φιλανδικά:"
 
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:221
 msgid "French:"
 msgstr "Γαλλικά:"
 
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:227
 msgid "German:"
 msgstr "Γερμανικά:"
 
-#: src/audacious/credits.c:231
-#, fuzzy
+#: src/audacious/credits.c:234
 msgid "Georgian:"
 msgstr "Γεωργιανά:"
 
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:237
 msgid "Greek:"
 msgstr "Ελληνικά:"
 
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:242
 msgid "Hindi:"
-msgstr "Hindi:"
+msgstr "Ινδικά:"
 
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:245
 msgid "Hungarian:"
-msgstr "Ουγγρική:"
+msgstr "Ουγγρικά:"
 
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:249
 msgid "Italian:"
 msgstr "Ιταλικά:"
 
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:253
 msgid "Japanese:"
 msgstr "Ιαπωνικά:"
 
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:256
 msgid "Korean:"
 msgstr "Κορεάτικα:"
 
-#: src/audacious/credits.c:256
-#, fuzzy
+#: src/audacious/credits.c:259
 msgid "Latvian:"
-msgstr "Τοποθεσία:"
+msgstr "Λετωνικά:"
 
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:262
 msgid "Lithuanian:"
 msgstr "Λιθουανικά:"
 
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:267
 msgid "Macedonian:"
-msgstr "Σλαβομακεδονική:"
+msgstr "Σλαβομακεδονικά:"
 
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:270
 msgid "Polish:"
-msgstr "Πολωνική:"
+msgstr "Πολωνικά:"
 
-#: src/audacious/credits.c:271
-#, fuzzy
+#: src/audacious/credits.c:276
 msgid "Portuguese:"
-msgstr "Port:"
+msgstr "Πορτωγαλικά:"
 
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:279
 msgid "Romanian:"
 msgstr "Ρουμανικά:"
 
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:283
 msgid "Russian:"
 msgstr "Ρώσικα:"
 
-#: src/audacious/credits.c:282
-#, fuzzy
+#: src/audacious/credits.c:287
 msgid "Serbian (Latin):"
-msgstr "Κυριλλική (MacCyrillic)"
+msgstr "Σερβικά (λατινικό):"
 
-#: src/audacious/credits.c:285
-#, fuzzy
+#: src/audacious/credits.c:290
 msgid "Serbian (Cyrillic):"
-msgstr "Κυριλλική (MacCyrillic)"
+msgstr "Σερβικά (κυριλλικό):"
 
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:293
 msgid "Simplified Chinese:"
-msgstr ""
+msgstr "Κινέζικα (απλοποιημένη):"
 
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:296
 msgid "Slovak:"
-msgstr "Σλοβακική:"
+msgstr "Σλοβακικά:"
 
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:299
 msgid "Spanish:"
 msgstr "Ισπανικά:"
 
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:306
 msgid "Swedish:"
 msgstr "Σουηδικά:"
 
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:309
 msgid "Traditional Chinese:"
-msgstr ""
+msgstr "Κινέζικα (παραδοσιακή):"
 
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:315
 msgid "Turkish:"
-msgstr ""
+msgstr "Τουρκικά:"
 
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:319
 msgid "Ukrainian:"
 msgstr "Ουκρανικά:"
 
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:323
+msgid "Vietnamese:"
+msgstr "Βιετναμεζικά:"
+
+#: src/audacious/credits.c:326
 msgid "Welsh:"
-msgstr "Ουαλλική:"
+msgstr "Ουαλλικά:"
 
-#: src/audacious/drct.c:254
-#, fuzzy
+#: src/audacious/drct.c:234
 msgid "Temporary Playlist"
-msgstr "Φόρτωση λίστας αναπαραγωγής"
+msgstr ""
 
 #: src/audacious/equalizer_preset.c:186
-#, fuzzy, c-format
+#, c-format
 msgid "Error importing Winamp EQF file '%s'"
-msgstr "Σφάλμα κατά τη φόρτωση της εικόνας: %s"
-
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
 msgstr ""
 
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/audacious/main.c:247
+#: src/audacious/main.c:239
 msgid "Skip backwards in playlist"
 msgstr "Μετάβαση πίσω στη λίστα τραγουδιών"
 
-#: src/audacious/main.c:248
+#: src/audacious/main.c:240
 msgid "Start playing current playlist"
 msgstr "Έναρξη αναπαραγωγής της τρέχουσας λίστας"
 
-#: src/audacious/main.c:249
+#: src/audacious/main.c:241
 msgid "Pause current song"
 msgstr "Παύση τρέχοντος κομματιού"
 
-#: src/audacious/main.c:250
+#: src/audacious/main.c:242
 msgid "Stop current song"
 msgstr "Σταμάτημα τρέχοντος κομματιού"
 
-#: src/audacious/main.c:251
+#: src/audacious/main.c:243
 msgid "Pause if playing, play otherwise"
 msgstr "Παύση αν παίζει, αλλιώς αναπαραγωγή"
 
-#: src/audacious/main.c:252
+#: src/audacious/main.c:244
 msgid "Skip forward in playlist"
 msgstr "Μετάβαση μπροστά στη λίστα τραγουδιών"
 
-#: src/audacious/main.c:253
-#, fuzzy
+#: src/audacious/main.c:245
 msgid "Display Jump to File dialog"
-msgstr "/Μετάβαση σε αρχείο"
+msgstr ""
 
-#: src/audacious/main.c:254
-#, fuzzy
+#: src/audacious/main.c:246
 msgid "Add files to the playlist"
-msgstr "Ακύρωση καθαρισμού λίστας αναπαραγωγής"
+msgstr "Προσθήκη αρχείων στη λίστα τραγουδιών"
 
-#: src/audacious/main.c:255
-#, fuzzy
+#: src/audacious/main.c:247
 msgid "Add new files to a temporary playlist"
-msgstr "Ακύρωση καθαρισμού λίστας αναπαραγωγής"
+msgstr ""
 
-#: src/audacious/main.c:256
-#, fuzzy
+#: src/audacious/main.c:248
 msgid "Display the main window"
-msgstr "Εμφάνιση του κυρίως παραθύρου"
-
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
 msgstr ""
 
-#: src/audacious/main.c:258
-#, fuzzy
+#: src/audacious/main.c:249
 msgid "Show version"
-msgstr "/Εμφάνιση λίστας αναπαραγωγής"
+msgstr "Εμφάνιση έκδοσης"
 
-#: src/audacious/main.c:259
+#: src/audacious/main.c:250
 msgid "Print debugging messages"
 msgstr ""
 
-#: src/audacious/main.c:260
+#: src/audacious/main.c:251
+msgid "Headless mode (beta)"
+msgstr ""
+
+#: src/audacious/main.c:252
 msgid "FILE..."
 msgstr ""
 
-#: src/audacious/main.c:272
+#: src/audacious/main.c:264
 msgid "- play multimedia files"
 msgstr ""
 
-#: src/audacious/main.c:282
+#: src/audacious/main.c:274
 #, c-format
 msgid ""
 "%s: %s\n"
 "Try `%s --help' for more information.\n"
 msgstr ""
 
-#: src/audacious/main.c:395
-msgid ""
-"Audacious seems to be already running but is not responding.  You can start "
-"another instance of the program, but please be warned that this can cause "
-"data loss.  If Audacious is not running, you can safely ignore this "
-"message.  Press OK to start Audacious or Cancel to quit."
-msgstr ""
-
-#: src/audacious/main.c:558
+#: src/audacious/main.c:547
 msgid "Audacious"
 msgstr "Audacious"
 
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:303
 #, c-format
 msgid "No decoder found for %s."
 msgstr ""
 
-#: src/audacious/playback.c:519
-#, fuzzy
-msgid "Buffering ..."
-msgstr "Φόρτωση"
-
-#: src/audacious/playlist-new.c:288
-#, fuzzy
+#: src/audacious/playlist-new.c:315
 msgid "Untitled Playlist"
-msgstr "Αποθήκευση λίστας αναπαραγωγής"
+msgstr ""
+
+#: src/audacious/playlist-new.c:1496
+msgid ""
+"The playlist cannot be sorted because metadata scanning is still in progress"
+" (or has been disabled)."
+msgstr ""
 
 #: src/audacious/ui_preferences.c:88
 msgid "Audio"
 msgstr "Ήχος"
 
 #: src/audacious/ui_preferences.c:89
-#, fuzzy
-msgid "Replay Gain"
-msgstr "ReplayGain"
-
-#: src/audacious/ui_preferences.c:90
 msgid "Network"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:90 src/audacious/ui_preferences.c:1634
 msgid "Playlist"
 msgstr "Λίστα αναπαραγωγής"
 
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:91
 msgid "Plugins"
 msgstr "Πρόσθετα"
 
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:97 src/libaudgui/infopopup.c:203
 msgid "Artist"
 msgstr "Καλλιτέχνης"
 
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:205
 msgid "Album"
 msgstr "Άλμπουμ"
 
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:201
+#: src/libaudgui/ui_playlist_manager.c:276
 msgid "Title"
 msgstr "Τίτλος"
 
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:100
 msgid "Tracknumber"
 msgstr "Νούμερο κομματιού"
 
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:101 src/libaudgui/infopopup.c:207
 msgid "Genre"
 msgstr "Γένος"
 
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:102
 msgid "Filename"
 msgstr "Όνομα αρχείου"
 
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:103
 msgid "Filepath"
 msgstr "Διαδρομή αρχείου"
 
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:104
 msgid "Date"
 msgstr "Ημερομηνία"
 
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:105 src/libaudgui/infopopup.c:209
 msgid "Year"
 msgstr "Έτος"
 
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:106
 msgid "Comment"
 msgstr "Σχόλιο"
 
-#: src/audacious/ui_preferences.c:108
-#, fuzzy
+#: src/audacious/ui_preferences.c:107
 msgid "Codec"
-msgstr "Κλείσιμο"
+msgstr ""
 
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:108
 msgid "Quality"
 msgstr "Ποιότητα"
 
@@ -412,239 +383,202 @@ msgid "None"
 msgstr "Κανένα"
 
 #: src/audacious/ui_preferences.c:115
-#, fuzzy
-msgid "Japanese"
-msgstr "Ιαπωνικά:"
+msgid "Arabic"
+msgstr "Αραβικά"
 
 #: src/audacious/ui_preferences.c:116
-#, fuzzy
-msgid "Taiwanese"
-msgstr "Ιαπωνικά:"
+msgid "Baltic"
+msgstr "Βαλτικά"
 
 #: src/audacious/ui_preferences.c:117
-#, fuzzy
 msgid "Chinese"
-msgstr "Κινέζικα:"
+msgstr "Κινέζικα"
 
 #: src/audacious/ui_preferences.c:118
-#, fuzzy
-msgid "Korean"
-msgstr "Κορεάτικα:"
+msgid "Greek"
+msgstr "Ελληνικά"
 
 #: src/audacious/ui_preferences.c:119
-#, fuzzy
-msgid "Russian"
-msgstr "Ρώσικα:"
+msgid "Hebrew"
+msgstr ""
 
 #: src/audacious/ui_preferences.c:120
-#, fuzzy
-msgid "Greek"
-msgstr "Ελληνικά:"
+msgid "Japanese"
+msgstr ""
 
 #: src/audacious/ui_preferences.c:121
-msgid "Hebrew"
+msgid "Korean"
 msgstr ""
 
 #: src/audacious/ui_preferences.c:122
-msgid "Turkish"
+msgid "Polish"
 msgstr ""
 
 #: src/audacious/ui_preferences.c:123
-msgid "Arabic"
+msgid "Russian"
 msgstr ""
 
 #: src/audacious/ui_preferences.c:124
-#, fuzzy
-msgid "Polish"
-msgstr "Πολωνική:"
+msgid "Taiwanese"
+msgstr ""
 
 #: src/audacious/ui_preferences.c:125
-#, fuzzy
-msgid "Baltic"
-msgstr "Celte"
-
-#: src/audacious/ui_preferences.c:126
-#, fuzzy
-msgid "Universal"
-msgstr "Γενικά"
-
-#: src/audacious/ui_preferences.c:146
-#, fuzzy
-msgid "<b>Bit Depth</b>"
-msgstr "<b>Bitrate:</b>"
+msgid "Turkish"
+msgstr ""
 
 #: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
+msgid "Album mode"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
+#: src/audacious/ui_preferences.c:150
+msgid "<b>Output Settings</b>"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:151
-#, fuzzy
-msgid "<b>Volume Control</b>"
-msgstr "Έλεγχος έντασης:"
-
 #: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr "Χρήση ελεγκτή ήχου λογισμικού"
+msgid "Bit depth:"
+msgstr ""
 
-#: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
+#: src/audacious/ui_preferences.c:155
+msgid "Buffer size:"
+msgstr "Μέγεθος προσωρινής μνήμης:"
+
+#: src/audacious/ui_preferences.c:157
+msgid "ms"
 msgstr ""
 
 #: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
+msgid "Use software volume control (not recommended)"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-#, fuzzy
-msgid "dB"
-msgstr "0 dB"
-
 #: src/audacious/ui_preferences.c:160
-msgid "Amplify untagged files:"
+msgid "<b>Replay Gain</b>"
+msgstr ""
+
+#: src/audacious/ui_preferences.c:161
+msgid "Enable Replay Gain"
 msgstr ""
 
 #: src/audacious/ui_preferences.c:164
-#, fuzzy
-msgid "<b>Replay Gain</b>"
-msgstr "<b>Διάρκεια:</b>"
+msgid "Prevent clipping (recommended)"
+msgstr ""
 
-#: src/audacious/ui_preferences.c:165
-#, fuzzy
-msgid "Enable Replay Gain"
-msgstr "Ενεργοποίηση ReplayGain"
+#: src/audacious/ui_preferences.c:166
+msgid "<b>Adjust Levels</b>"
+msgstr ""
 
 #: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>Μεταπληροφορίες</b>"
+msgid "Amplify all files:"
+msgstr ""
 
-#: src/audacious/ui_preferences.c:168
-#, fuzzy
-msgid "Single track mode"
-msgstr "/Εμφάνιση πληροφοριών αρχείου"
+#: src/audacious/ui_preferences.c:169 src/audacious/ui_preferences.c:172
+msgid "dB"
+msgstr ""
 
 #: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "Κατάσταση άλμπουμ"
-
-#: src/audacious/ui_preferences.c:172
-#, fuzzy
-msgid "<b>Adjust Levels</b>"
-msgstr "<b>Ροδάκι ποντικιού</b>"
+msgid "Amplify untagged files:"
+msgstr ""
 
 #: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "<b>Αναδυόμενες πληροφορίες</b>"
-
-#: src/audacious/ui_preferences.c:176
-#, fuzzy
-msgid "Enable clipping prevention"
-msgstr "Ενεργοποίηση πρόληψης σκρατσαρίσματος"
-
-#: src/audacious/ui_preferences.c:180
 msgid "Proxy hostname:"
 msgstr "Διεύθυνση διαμεσολαβητή:"
 
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:176
 msgid "Proxy port:"
 msgstr "Θύρα διαμεσολαβητή:"
 
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:179
 msgid "Proxy username:"
 msgstr "Όνομα χρήστη διαμεσολαβητή:"
 
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:180
 msgid "Proxy password:"
 msgstr "Κωδικός πρόσβασης διαμεσολαβητή:"
 
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:184
 msgid "<b>Proxy Configuration</b>"
 msgstr "<b>Ρύθμιση διαμεσολαβητή</b>"
 
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:185
 msgid "Enable proxy usage"
 msgstr "Χρήση διαμεσολαβητή"
 
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:188
 msgid "Use authentication with proxy"
 msgstr "Χρήση πιστοποίησης με το διαμεσολαβητή"
 
-#: src/audacious/ui_preferences.c:197
-msgid ""
-"<span size=\"small\">Changing these settings will require a restart of "
-"Audacious.</span>"
-msgstr ""
-"<span size=\"small\">Η αλλαγή αυτών των ρυθμίσεων απαιτεί επανεκκίνηση του "
-"Audacious.</span>"
-
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:196
 msgid "Auto character encoding detector for:"
 msgstr "Αυτόματη αναγνώριση κωδικοσελίδας για:"
 
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
 msgid "Fallback character encodings:"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:209
-msgid ""
-"List of character encodings used for fall back conversion of metadata. If "
-"automatic character encoding detector failed or has been disabled, encodings "
-"in this list would be treated as candidates of the encoding of metadata, and "
-"fall back conversion from these encodings to UTF-8 would be attempted."
-msgstr ""
-
-#: src/audacious/ui_preferences.c:213
-#, fuzzy
+#: src/audacious/ui_preferences.c:205
 msgid "<b>Behavior</b>"
-msgstr "<b>Bitrate:</b>"
+msgstr ""
 
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:206
 msgid "Continue playback on startup"
 msgstr "Συνέχεια αναπαραγωγής στην εκκίνηση"
 
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:208
 msgid "Advance when the current song is deleted"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:218
-#, fuzzy
+#: src/audacious/ui_preferences.c:210
 msgid "Clear the playlist when opening files"
-msgstr "/Ταξινόμηση λίστας/Κατά καλλιτέχνη"
+msgstr ""
 
-#: src/audacious/ui_preferences.c:220
-#, fuzzy
+#: src/audacious/ui_preferences.c:212
 msgid "Open files in a temporary playlist"
-msgstr "Ακύρωση καθαρισμού λίστας αναπαραγωγής"
+msgstr ""
 
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:214
 msgid "<b>Metadata</b>"
 msgstr "<b>Μεταπληροφορίες</b>"
 
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:215
+msgid "Do not load metadata for songs until played"
+msgstr ""
+
+#: src/audacious/ui_preferences.c:233
+msgid "TITLE"
+msgstr ""
+
+#: src/audacious/ui_preferences.c:234
+msgid "ARTIST - TITLE"
+msgstr ""
+
+#: src/audacious/ui_preferences.c:235
+msgid "ARTIST - ALBUM - TITLE"
+msgstr ""
+
+#: src/audacious/ui_preferences.c:236
+msgid "ARTIST - ALBUM - TRACK. TITLE"
+msgstr ""
+
+#: src/audacious/ui_preferences.c:237
+msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
+msgstr ""
+
+#: src/audacious/ui_preferences.c:238
+msgid "ALBUM - TITLE"
+msgstr ""
+
+#: src/audacious/ui_preferences.c:577
 msgid "Category"
 msgstr "Κατηγορία"
 
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:801
 msgid "Popup Information Settings"
 msgstr "Ρυθμίσεις αναδυόμενων πληροφοριών"
 
-#: src/audacious/ui_preferences.c:824
-#, fuzzy
+#: src/audacious/ui_preferences.c:810
 msgid "<b>Cover image retrieve</b>"
-msgstr "<b>Αναγνώριση μορφής</b>"
+msgstr ""
 
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:815
 msgid ""
 "While searching for the album's cover, Audacious looks for certain words in "
 "the filename. You can specify those words in the lists below, separated "
@@ -654,101 +588,75 @@ msgstr ""
 "συγκεκριμένες λέξεις στο όνομα του αρχείου. Μπορείτε να εισάγετε τις λέξεις "
 "αυτές στις λίστες παρακάτω, χωρισμένες με κόμματα."
 
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:832
 msgid "Exclude:"
 msgstr "Αποκλεισμός:"
 
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:839
 msgid "Include:"
 msgstr "Περίληψη:"
 
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:856
 msgid "Recursively search for cover"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:866
 msgid "Search depth: "
 msgstr ""
 
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:880
 msgid "Use per-file cover"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:897
-#, fuzzy
+#: src/audacious/ui_preferences.c:883
 msgid "<b>Miscellaneous</b>"
-msgstr "<b>_Διάφορα</b>"
+msgstr ""
 
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:892
 msgid "Show Progress bar for the current track"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:902
 msgid "Delay until filepopup comes up: "
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1340
+msgid "Custom"
+msgstr ""
+
+#: src/audacious/ui_preferences.c:1383
 msgid "<b>Song Display</b>"
 msgstr "<b>Προβολή τραγουδιού</b>"
 
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1392
 msgid "Show song numbers"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1403
 msgid "Show leading zeroes (02:00 instead of 2:00)"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1425
 msgid "Show information about titlestring format"
 msgstr "Εμφάνιση πληροφοριών για τη μορφή του τίτλου"
 
-#: src/audacious/ui_preferences.c:1514
-msgid "TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1515
-msgid "ARTIST - TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1516
-msgid "ARTIST - ALBUM - TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1517
-msgid "ARTIST - ALBUM - TRACK. TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1518
-msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1519
-msgid "ALBUM - TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1520
-#, fuzzy
-msgid "Custom"
-msgstr "Προσαρμοσμένο αλφαριθμητικό:"
-
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1441
 msgid "Custom string:"
 msgstr "Προσαρμοσμένο αλφαριθμητικό:"
 
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1448
 msgid "Title format:"
 msgstr "Μορφή τίτλου:"
 
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1459
 msgid "<b>Popup Information</b>"
 msgstr "<b>Αναδυόμενες πληροφορίες</b>"
 
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1474
 msgid "Show popup information for playlist entries"
 msgstr "Εμφάνιση αναδυόμενων πληροφοριών στη λίστα αναπαραγωγής"
 
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1475
 msgid ""
 "Toggles popup information window for the pointed entry in the playlist. The "
 "window shows title of song, name of album, genre, year of publish, track "
@@ -759,55 +667,44 @@ msgstr ""
 "του δίσκου, το είδος, το έτος κυκλοφορίας, τον αριθμό, το μήκος του "
 "τραγουδιού και το εξώφυλλο."
 
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1486
 msgid "Edit settings for popup information"
 msgstr "Επεξεργασία ρυθμίσεων για τις αναδυόμενες πληροφορίες"
 
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>Σύστημα ήχου</b>"
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "Μέγεθος προσωρινής μνήμης:"
-
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
-msgstr "Τρέχον πρόσθετο εξόδου:"
+#: src/audacious/ui_preferences.c:1575
+msgid "Output plugin:"
+msgstr ""
 
-#: src/audacious/ui_preferences.c:1790
-#, fuzzy
+#: src/audacious/ui_preferences.c:1634
 msgid "Transport"
-msgstr "Μεταφραστές"
+msgstr ""
 
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1634
 msgid "Input"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1791
-#, fuzzy
+#: src/audacious/ui_preferences.c:1635
 msgid "Effect"
-msgstr "Εφέ"
+msgstr ""
 
-#: src/audacious/ui_preferences.c:1791
-#, fuzzy
+#: src/audacious/ui_preferences.c:1635
 msgid "Visualization"
-msgstr "/Οπτικοποίηση"
+msgstr ""
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1635
 msgid "General"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1675
 msgid "Audacious Preferences"
 msgstr "Προτιμήσεις του Audacious"
 
-#: src/audacious/util.c:161
-#, fuzzy, c-format
+#: src/audacious/util.c:123
+#, c-format
 msgid "Could not create directory (%s): %s\n"
-msgstr "Δεν ήταν δυνατή η δημιουργία του καταλόγου (%s): %s"
+msgstr ""
 
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:274
 msgid "Position not found."
 msgstr ""
 
@@ -820,134 +717,118 @@ msgid "Mono"
 msgstr "Mono"
 
 #: src/libaudcore/tuple.c:687
-#, fuzzy
 msgid "Stereo"
-msgstr "στερεοφωνικό"
+msgstr ""
 
 #: src/libaudcore/tuple.c:689
-#, fuzzy, c-format
-msgid "%d channels"
-msgstr "Κανάλια"
+#, c-format
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] ""
+msgstr[1] ""
 
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/confirm.c:78
 #, c-format
 msgid ""
 "Are you sure you want to close %s?  If you do, any changes made since the "
 "playlist was exported will be lost."
 msgstr ""
 
-#: src/libaudgui/confirm.c:77
-#, fuzzy
+#: src/libaudgui/confirm.c:91
 msgid "_Don't show this message again"
-msgstr "Να μην ξαναεμφανιστεί αυτή η προειδοποίηση"
+msgstr ""
 
-#: src/libaudgui/confirm.c:115
-#, fuzzy
+#: src/libaudgui/confirm.c:128
 msgid "Rename Playlist"
-msgstr "Αποθήκευση λίστας αναπαραγωγής"
+msgstr ""
 
 #: src/libaudgui/effects-menu.c:76
-#, fuzzy
 msgid "settings ..."
-msgstr "Ρυθμίσεις μείκτη"
+msgstr ""
 
-#: src/libaudgui/equalizer.c:68
-#, fuzzy
+#: src/libaudgui/equalizer.c:52
 msgid "_Enable"
-msgstr "Ενεργοποίηση"
+msgstr ""
 
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:124
 msgid "31 Hz"
 msgstr ""
 
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:124
 msgid "63 Hz"
 msgstr ""
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:125
 msgid "125 Hz"
 msgstr ""
 
-#: src/libaudgui/equalizer.c:141
-#, fuzzy
+#: src/libaudgui/equalizer.c:125
 msgid "250 Hz"
-msgstr "11000 Hz"
+msgstr ""
 
-#: src/libaudgui/equalizer.c:141
-#, fuzzy
+#: src/libaudgui/equalizer.c:125
 msgid "500 Hz"
-msgstr "11000 Hz"
+msgstr ""
 
-#: src/libaudgui/equalizer.c:141
-#, fuzzy
+#: src/libaudgui/equalizer.c:125
 msgid "1 kHz"
-msgstr "11 kHz"
+msgstr ""
 
-#: src/libaudgui/equalizer.c:141
-#, fuzzy
+#: src/libaudgui/equalizer.c:125
 msgid "2 kHz"
-msgstr "22 kHz"
+msgstr ""
 
-#: src/libaudgui/equalizer.c:142
-#, fuzzy
+#: src/libaudgui/equalizer.c:126
 msgid "4 kHz"
-msgstr "44 kHz"
+msgstr ""
 
-#: src/libaudgui/equalizer.c:142
-#, fuzzy
+#: src/libaudgui/equalizer.c:126
 msgid "8 kHz"
-msgstr "11 kHz"
+msgstr ""
 
-#: src/libaudgui/equalizer.c:142
-#, fuzzy
+#: src/libaudgui/equalizer.c:126
 msgid "16 kHz"
-msgstr "11 kHz"
+msgstr ""
 
-#: src/libaudgui/equalizer.c:147
+#: src/libaudgui/equalizer.c:131
 msgid "Equalizer"
 msgstr "Ισοσταθμιστής"
 
-#: src/libaudgui/equalizer.c:163
-#, fuzzy
+#: src/libaudgui/equalizer.c:147
 msgid "Preamp"
-msgstr "Προενίσχυση"
+msgstr ""
 
-#: src/libaudgui/infopopup.c:249
-#, fuzzy
+#: src/libaudgui/infopopup.c:211
 msgid "Track Number"
-msgstr "Νούμερο κομματιού"
+msgstr ""
 
-#: src/libaudgui/infopopup.c:251
-#, fuzzy
+#: src/libaudgui/infopopup.c:213
 msgid "Track Length"
-msgstr "Διάρκεια κομματιού:"
+msgstr ""
 
 #: src/libaudgui/infowin.c:77
 msgid "Acid Jazz"
 msgstr "Acid Jazz"
 
 #: src/libaudgui/infowin.c:78
-#, fuzzy
 msgid "Acid Rock"
-msgstr "Hard Rock"
+msgstr ""
 
 #: src/libaudgui/infowin.c:79
 msgid "Ambient"
 msgstr "Ambient"
 
 #: src/libaudgui/infowin.c:80
-#, fuzzy
 msgid "Bebop"
-msgstr "Bebob"
+msgstr ""
 
 #: src/libaudgui/infowin.c:81
 msgid "Bluegrass"
 msgstr "Bluegrass"
 
 #: src/libaudgui/infowin.c:82
-#, fuzzy
 msgid "Blues"
-msgstr "Blues"
+msgstr ""
 
 #: src/libaudgui/infowin.c:83
 msgid "Chamber Music"
@@ -1002,9 +883,8 @@ msgid "Heavy Metal"
 msgstr "Heavy Metal"
 
 #: src/libaudgui/infowin.c:96
-#, fuzzy
 msgid "Hip-hop"
-msgstr "Hip-Hop"
+msgstr ""
 
 #: src/libaudgui/infowin.c:97
 msgid "House"
@@ -1055,9 +935,8 @@ msgid "Rock"
 msgstr "Ροκ"
 
 #: src/libaudgui/infowin.c:109
-#, fuzzy
 msgid "Rock and Roll"
-msgstr "Rock & Roll"
+msgstr ""
 
 #: src/libaudgui/infowin.c:110
 msgid "Rhythm and Blues"
@@ -1080,15 +959,13 @@ msgid "Techno"
 msgstr "Techno"
 
 #: src/libaudgui/infowin.c:115
-#, fuzzy
 msgid "Trip-hop"
-msgstr "Trip-Hop"
+msgstr ""
 
 #: src/libaudgui/infowin.c:175 src/libaudgui/infowin.c:361
 #: src/libaudgui/infowin.c:364 src/libaudgui/infowin.c:367
-#, fuzzy
 msgid "<span size=\"small\">n/a</span>"
-msgstr "<span size=\"medium\"><b>Μέσα</b></span>"
+msgstr ""
 
 #: src/libaudgui/infowin.c:265
 msgid "Metadata updated successfully"
@@ -1099,75 +976,89 @@ msgid "Metadata updating failed"
 msgstr ""
 
 #: src/libaudgui/infowin.c:318
-#, fuzzy
 msgid "Track Information"
-msgstr "Ρύθμιση Flac"
+msgstr ""
 
 #: src/libaudgui/infowin.c:350
-#, fuzzy
 msgid "<span size=\"small\">Format:</span>"
-msgstr "<span size=\"medium\"><b>Γενικά</b></span>"
+msgstr ""
 
 #: src/libaudgui/infowin.c:354
-#, fuzzy
 msgid "<span size=\"small\">Quality:</span>"
-msgstr "<span size=\"medium\"><b>Μέσα</b></span>"
+msgstr ""
 
 #: src/libaudgui/infowin.c:357
-#, fuzzy
 msgid "<span size=\"small\">Bitrate:</span>"
-msgstr "<span size=\"medium\"><b>Γενικά</b></span>"
+msgstr ""
 
 #: src/libaudgui/infowin.c:387
-#, fuzzy
 msgid "<span size=\"small\">Title</span>"
-msgstr "<span size=\"medium\"><b>Μέσα</b></span>"
+msgstr ""
 
 #: src/libaudgui/infowin.c:399
-#, fuzzy
 msgid "<span size=\"small\">Artist</span>"
-msgstr "<span size=\"medium\"><b>Έξοδος</b></span>"
+msgstr ""
 
 #: src/libaudgui/infowin.c:411
-#, fuzzy
 msgid "<span size=\"small\">Album</span>"
-msgstr "<span size=\"medium\"><b>Έξοδος</b></span>"
+msgstr ""
 
 #: src/libaudgui/infowin.c:423
-#, fuzzy
 msgid "<span size=\"small\">Comment</span>"
-msgstr "<span size=\"medium\"><b>Γενικά</b></span>"
+msgstr ""
 
 #: src/libaudgui/infowin.c:435
-#, fuzzy
 msgid "<span size=\"small\">Genre</span>"
-msgstr "<span size=\"medium\"><b>Γενικά</b></span>"
+msgstr ""
 
 #: src/libaudgui/infowin.c:456
-#, fuzzy
 msgid "<span size=\"small\">Year</span>"
-msgstr "<span size=\"medium\"><b>Μέσα</b></span>"
+msgstr ""
 
 #: src/libaudgui/infowin.c:467
-#, fuzzy
 msgid "<span size=\"small\">Track Number</span>"
-msgstr "<span size=\"medium\"><b>Γενικά</b></span>"
+msgstr ""
 
 #: src/libaudgui/infowin.c:549
-#, fuzzy, c-format
+#, c-format
 msgid "%d kb/s"
-msgstr "%d Kb/s"
+msgstr ""
 
 #: src/libaudgui/infowin.c:579
 #, c-format
 msgid "No info available for %s.\n"
 msgstr ""
 
-#: src/libaudgui/ui_about.c:71
+#: src/libaudgui/jump-to-time.c:75
+msgid "Jump to Time"
+msgstr "Μετάβαση σε χρόνο"
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr ""
+
+#: src/libaudgui/playlists.c:39
+msgid "Export Playlist"
+msgstr ""
+
+#: src/libaudgui/playlists.c:39
+msgid "Import Playlist"
+msgstr ""
+
+#: src/libaudgui/playlists.c:72
+#, c-format
+msgid "Overwrite %s?"
+msgstr ""
+
+#: src/libaudgui/queue-manager.c:185
+msgid "Queue Manager"
+msgstr ""
+
+#: src/libaudgui/ui_about.c:69
 msgid "About Audacious"
 msgstr "Περί Audacious"
 
-#: src/libaudgui/ui_about.c:93 src/libaudgui/ui_credits.c:122
+#: src/libaudgui/ui_about.c:90 src/libaudgui/ui_credits.c:122
 msgid "Credits"
 msgstr "Μνεία"
 
@@ -1175,113 +1066,113 @@ msgstr "Μνεία"
 msgid "Translators"
 msgstr "Μεταφραστές"
 
-#: src/libaudgui/ui_fileopener.c:108
+#: src/libaudgui/ui_fileopener.c:109
 msgid "Open Files"
 msgstr "Άνοιγμα αρχείων"
 
-#: src/libaudgui/ui_fileopener.c:108
+#: src/libaudgui/ui_fileopener.c:109
 msgid "Add Files"
 msgstr "Προσθήκη αρχείων"
 
-#: src/libaudgui/ui_fileopener.c:110
+#: src/libaudgui/ui_fileopener.c:111
 msgid "Close dialog on Open"
 msgstr "Κλείσιμο παραθύρου διαλόγου κατά το άνοιγμα"
 
-#: src/libaudgui/ui_fileopener.c:110
+#: src/libaudgui/ui_fileopener.c:111
 msgid "Close dialog on Add"
 msgstr "Κλείσιμο του διαλόγου κατά την προσθήκη"
 
-#: src/libaudgui/ui_jumptotrack.c:133
-#, fuzzy
-msgid "Un_queue"
-msgstr "Στην _ουρά"
-
-#: src/libaudgui/ui_jumptotrack.c:135 src/libaudgui/ui_jumptotrack.c:512
+#: src/libaudgui/ui_jumptotrack.c:103 src/libaudgui/ui_jumptotrack.c:111
+#: src/libaudgui/ui_jumptotrack.c:322
 msgid "_Queue"
 msgstr "Στην _ουρά"
 
-#: src/libaudgui/ui_jumptotrack.c:399
+#: src/libaudgui/ui_jumptotrack.c:109
+msgid "Un_queue"
+msgstr ""
+
+#: src/libaudgui/ui_jumptotrack.c:239
 msgid "Jump to Track"
 msgstr "Μεταπήδηση στο κομμάτι"
 
-#: src/libaudgui/ui_jumptotrack.c:442
+#: src/libaudgui/ui_jumptotrack.c:277
 msgid "Filter: "
 msgstr "Φίλτρο:"
 
-#: src/libaudgui/ui_jumptotrack.c:443
-#, fuzzy
+#: src/libaudgui/ui_jumptotrack.c:278
 msgid "_Filter:"
-msgstr "Φίλτρο:"
+msgstr ""
 
-#: src/libaudgui/ui_jumptotrack.c:461
+#: src/libaudgui/ui_jumptotrack.c:288
 msgid "Remember"
 msgstr ""
 
-#: src/libaudgui/ui_jumptotrack.c:470
-#, fuzzy
+#: src/libaudgui/ui_jumptotrack.c:295
 msgid "Clea_r"
-msgstr "/Καθαρισμός ουράς"
+msgstr ""
 
-#: src/libaudgui/ui_jumptotrack.c:504
-#, fuzzy
+#: src/libaudgui/ui_jumptotrack.c:315
 msgid "Close on Jump"
-msgstr "Κλείσιμο παραθύρου διαλόγου κατά το άνοιγμα"
+msgstr ""
 
-#: src/libaudgui/ui_playlist_manager.c:185
-#, fuzzy
+#: src/libaudgui/ui_playlist_manager.c:250
 msgid "Playlist Manager"
-msgstr "Μη αυτόματη μετάβαση μπροστά στη λίστα τραγουδιών"
+msgstr ""
 
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:277
 msgid "Entries"
 msgstr ""
 
-#: src/libaudgui/ui_playlist_manager.c:227
-#, fuzzy
+#: src/libaudgui/ui_playlist_manager.c:298
 msgid "_Rename"
-msgstr "Όνομα αρχείου"
+msgstr ""
 
-#: src/libaudgui/ui_playlist_manager.c:251
-#, fuzzy
+#: src/libaudgui/ui_playlist_manager.c:322
 msgid "_Close dialog on activating playlist"
-msgstr "Κλείσιμο παραθύρου διαλόγου κατά το άνοιγμα"
+msgstr ""
 
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:51
 msgid "Open URL"
 msgstr ""
 
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:51
 msgid "Add URL"
 msgstr ""
 
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+
 #: src/libeggsmclient/eggdesktopfile.c:165
 msgid "File is not a valid .desktop file"
 msgstr ""
 
 #: src/libeggsmclient/eggdesktopfile.c:188
-#, fuzzy, c-format
+#, c-format
 msgid "Unrecognized desktop file Version '%s'"
-msgstr "%s: δεν αναγνωρίζεται η επιλογή `--%s'\n"
+msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:968
-#, fuzzy, c-format
+#: src/libeggsmclient/eggdesktopfile.c:967
+#, c-format
 msgid "Starting %s"
-msgstr "Ιταλικά:"
+msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1108
 msgid "Application does not accept documents on command line"
 msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:1178
-#, fuzzy, c-format
+#: src/libeggsmclient/eggdesktopfile.c:1176
+#, c-format
 msgid "Unrecognized launch option: %d"
-msgstr "%s: δεν αναγνωρίζεται η επιλογή `--%s'\n"
+msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1375
 msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
 msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1396
 msgid "Not a launchable item"
 msgstr ""
 
@@ -1313,3803 +1204,4 @@ msgstr ""
 msgid "Show session management options"
 msgstr ""
 
-#, fuzzy
-#~ msgid "%s: Unable to open display, exiting.\n"
-#~ msgstr "audacious: Αδύνατο το άνοιγμα της οθόνης, έξοδος.\n"
-
-#, fuzzy
-#~ msgid "Preamp:"
-#~ msgstr "Προενίσχυση"
-
-#, fuzzy
-#~ msgid "Default gain:"
-#~ msgstr "Προκαθορισμένο skin:"
-
-#, fuzzy
-#~ msgid "<b>Replay Gain configuration</b>"
-#~ msgstr "<b>Ρύθμιση διαμεσολαβητή</b>"
-
-#, fuzzy
-#~ msgid "Track gain/peak"
-#~ msgstr "Όνομα κομματιού"
-
-#~ msgid "Classic Rock"
-#~ msgstr "Κλασικό Ροκ"
-
-#~ msgid "Dance"
-#~ msgstr "Dance"
-
-#~ msgid "Oldies"
-#~ msgstr "Oldies"
-
-#~ msgid "Other"
-#~ msgstr "Άλλο"
-
-#~ msgid "R&B"
-#~ msgstr "R&B"
-
-#~ msgid "Industrial"
-#~ msgstr "Industrial"
-
-#~ msgid "Alternative"
-#~ msgstr "Εναλλακτική"
-
-#, fuzzy
-#~ msgid "Pranks"
-#~ msgstr "Pranks"
-
-#~ msgid "Soundtrack"
-#~ msgstr "Soundtrack"
-
-#~ msgid "Euro-Techno"
-#~ msgstr "Euro-Techno"
-
-#~ msgid "Vocal"
-#~ msgstr "Vocal"
-
-#~ msgid "Jazz+Funk"
-#~ msgstr "Jazz+Funk"
-
-#~ msgid "Fusion"
-#~ msgstr "Fusion"
-
-#~ msgid "Trance"
-#~ msgstr "Trance"
-
-#~ msgid "Instrumental"
-#~ msgstr "Ορχηστρική"
-
-#~ msgid "Acid"
-#~ msgstr "Acid"
-
-#~ msgid "Game"
-#~ msgstr "Game"
-
-#~ msgid "Sound Clip"
-#~ msgstr "Sound Clip"
-
-#~ msgid "AlternRock"
-#~ msgstr "Εναλλακτικό Ροκ"
-
-#, fuzzy
-#~ msgid "Bass"
-#~ msgstr "Bass"
-
-#~ msgid "Punk"
-#~ msgstr "Punk"
-
-#~ msgid "Space"
-#~ msgstr "Space"
-
-#~ msgid "Meditative"
-#~ msgstr "Musique Méditative"
-
-#~ msgid "Instrumental Pop"
-#~ msgstr "Pop Instrumentale"
-
-#~ msgid "Instrumental Rock"
-#~ msgstr "Rock Instrumental"
-
-#~ msgid "Ethnic"
-#~ msgstr "Ethnic"
-
-#~ msgid "Gothic"
-#~ msgstr "Gothic"
-
-#~ msgid "Darkwave"
-#~ msgstr "Darkwave"
-
-#~ msgid "Techno-Industrial"
-#~ msgstr "Techno-Industrial"
-
-#~ msgid "Electronic"
-#~ msgstr "Ηλεκτρονική μουσική"
-
-#~ msgid "Pop-Folk"
-#~ msgstr "Pop-Folk"
-
-#~ msgid "Eurodance"
-#~ msgstr "Eurodance"
-
-#~ msgid "Dream"
-#~ msgstr "Dream"
-
-#~ msgid "Southern Rock"
-#~ msgstr "Southern Rock"
-
-#~ msgid "Comedy"
-#~ msgstr "Comedy"
-
-#~ msgid "Cult"
-#~ msgstr "Cult"
-
-#~ msgid "Top 40"
-#~ msgstr "Top 40"
-
-#~ msgid "Christian Rap"
-#~ msgstr "Christian Rap"
-
-#~ msgid "Pop/Funk"
-#~ msgstr "Pop/Funk"
-
-#~ msgid "Native American"
-#~ msgstr "Native American"
-
-#~ msgid "Cabaret"
-#~ msgstr "Cabaret"
-
-#~ msgid "Psychedelic"
-#~ msgstr "Psychedelic"
-
-#~ msgid "Rave"
-#~ msgstr "Rave"
-
-#, fuzzy
-#~ msgid "Showtunes"
-#~ msgstr "Showtunes"
-
-#~ msgid "Trailer"
-#~ msgstr "Trailer"
-
-#~ msgid "Lo-Fi"
-#~ msgstr "Lo-Fi"
-
-#~ msgid "Tribal"
-#~ msgstr "Tribal"
-
-#~ msgid "Acid Punk"
-#~ msgstr "Acid Punk"
-
-#~ msgid "Polka"
-#~ msgstr "Polka"
-
-#, fuzzy
-#~ msgid "Retro"
-#~ msgstr "Retro"
-
-#~ msgid "Musical"
-#~ msgstr "Musical"
-
-#~ msgid "Folk/Rock"
-#~ msgstr "Folk/Rock"
-
-#~ msgid "National Folk"
-#~ msgstr "National Folk"
-
-#~ msgid "Fast-Fusion"
-#~ msgstr "Fast-Fusion"
-
-#~ msgid "Latin"
-#~ msgstr "Latin"
-
-#~ msgid "Revival"
-#~ msgstr "Revival"
-
-#~ msgid "Celtic"
-#~ msgstr "Celte"
-
-#~ msgid "Avantgarde"
-#~ msgstr "Avantgarde"
-
-#~ msgid "Gothic Rock"
-#~ msgstr "Gothic Rock"
-
-#~ msgid "Progressive Rock"
-#~ msgstr "Progressive Rock"
-
-#~ msgid "Psychedelic Rock"
-#~ msgstr "Psychedelic Rock"
-
-#~ msgid "Symphonic Rock"
-#~ msgstr "Symphonic Rock"
-
-#~ msgid "Slow Rock"
-#~ msgstr "Slow Rock"
-
-#~ msgid "Big Band"
-#~ msgstr "Big Band"
-
-#~ msgid "Chorus"
-#~ msgstr "Chorus"
-
-#~ msgid "Acoustic"
-#~ msgstr "Acoustic"
-
-#~ msgid "Humour"
-#~ msgstr "Humour"
-
-#~ msgid "Speech"
-#~ msgstr "Discours"
-
-#~ msgid "Chanson"
-#~ msgstr "Chanson"
-
-#~ msgid "Opera"
-#~ msgstr "Opera"
-
-#~ msgid "Sonata"
-#~ msgstr "Sonata"
-
-#~ msgid "Symphony"
-#~ msgstr "Symphony"
-
-#~ msgid "Booty Bass"
-#~ msgstr "Booty Bass"
-
-#~ msgid "Primus"
-#~ msgstr "Primus"
-
-#~ msgid "Porn Groove"
-#~ msgstr "Porn Groove"
-
-#, fuzzy
-#~ msgid "Satire"
-#~ msgstr "Stereo"
-
-#~ msgid "Slow Jam"
-#~ msgstr "Slow Jam"
-
-#~ msgid "Club"
-#~ msgstr "Club"
-
-#~ msgid "Tango"
-#~ msgstr "Tango"
-
-#~ msgid "Samba"
-#~ msgstr "Samba"
-
-#~ msgid "Folklore"
-#~ msgstr "Folklore"
-
-#~ msgid "Ballad"
-#~ msgstr "Ballad"
-
-#~ msgid "Power Ballad"
-#~ msgstr "Power Ballad"
-
-#~ msgid "Rhythmic Soul"
-#~ msgstr "Rythmic Soul"
-
-#~ msgid "Freestyle"
-#~ msgstr "Freestyle"
-
-#~ msgid "Duet"
-#~ msgstr "Duo"
-
-#~ msgid "Drum Solo"
-#~ msgstr "Drum Solo"
-
-#~ msgid "A Cappella"
-#~ msgstr "A Cappella"
-
-#~ msgid "Euro-House"
-#~ msgstr "Euro-House"
-
-#~ msgid "Dance Hall"
-#~ msgstr "Dance Hall"
-
-#~ msgid "Goa"
-#~ msgstr "Goa"
-
-#~ msgid "Drum & Bass"
-#~ msgstr "Drum & Bass"
-
-#~ msgid "Club-House"
-#~ msgstr "Club-House"
-
-#~ msgid "Hardcore"
-#~ msgstr "Hardcore"
-
-#~ msgid "Terror"
-#~ msgstr "Terror"
-
-#~ msgid "Indie"
-#~ msgstr "Indie"
-
-#~ msgid "BritPop"
-#~ msgstr "BritPop"
-
-#~ msgid "Negerpunk"
-#~ msgstr "Negerpunk"
-
-#~ msgid "Polsk Punk"
-#~ msgstr "Polsk Punk"
-
-#~ msgid "Beat"
-#~ msgstr "Beat"
-
-#~ msgid "Christian Gangsta Rap"
-#~ msgstr "Christian Gangsta Rap"
-
-#~ msgid "Black Metal"
-#~ msgstr "Black Metal"
-
-#~ msgid "Crossover"
-#~ msgstr "Crossover"
-
-#~ msgid "Contemporary Christian"
-#~ msgstr "Contemporary Christian"
-
-#~ msgid "Christian Rock"
-#~ msgstr "Christian Rock"
-
-#~ msgid "Merengue"
-#~ msgstr "Merengue"
-
-#~ msgid "Salsa"
-#~ msgstr "Salsa"
-
-#~ msgid "Thrash Metal"
-#~ msgstr "Thrash Metal"
-
-#~ msgid "Anime"
-#~ msgstr "Anime"
-
-#~ msgid "JPop"
-#~ msgstr "JPop"
-
-#~ msgid "Synthpop"
-#~ msgstr "SynthPop"
-
-#, fuzzy
-#~ msgid ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "An audio player for many platforms.\n"
-#~ "Copyright (C) 2005-2011 Audacious Development Team"
-#~ msgstr ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "Αναπαράγοντας πολυμέσα στο UNIX.\n"
-#~ "\n"
-#~ "Copyright (C) 2005 Η ομάδα ανάπτυξης του Audacious\n"
-
-#~ msgid "Unable to create log file (%s)!\n"
-#~ msgstr "Δεν είναι δυνατή η δημιουργία του αρχείου καταγραφής (%s)!\n"
-
-#, fuzzy
-#~ msgid "Playback"
-#~ msgstr "/Αναπαραγωγή"
-
-#~ msgid "<b>Playback</b>"
-#~ msgstr "<b>Αναπαραγωγή</b>"
-
-#~ msgid ""
-#~ "When Audacious starts, automatically begin playing from the point where "
-#~ "we stopped before."
-#~ msgstr ""
-#~ "Αυτόματη έναρξη της αναπαραγωγής από το σημείο που σταμάτησε πριν όταν "
-#~ "ξεκινά το Audacious."
-
-#~ msgid "Don't advance in the playlist"
-#~ msgstr "Μη αυτόματη μετάβαση μπροστά στη λίστα τραγουδιών"
-
-#~ msgid ""
-#~ "When finished playing a song, don't automatically advance to the next."
-#~ msgstr ""
-#~ "Μετά την ολοκλήρωση ενός τραγουδιού, μη μεταβείς αυτόματα στο επόμενο."
-
-#~ msgid "Enabled"
-#~ msgstr "Ενεργοποιημένο"
-
-#~ msgid "Description"
-#~ msgstr "Περιγραφή"
-
-#, fuzzy
-#~ msgid "Output Plugin Preferences"
-#~ msgstr "Άρθρωμα εξόδου OSS"
-
-#, fuzzy
-#~ msgid "Output Plugin Information"
-#~ msgstr "Ρυθμίσεις αρθρώματος εξόδου ESD"
-
-#~ msgid "_Decoder list:"
-#~ msgstr "Λίστα αποκωδικοποιητών:"
-
-#~ msgid "<span size=\"medium\"><b>Decoders</b></span>"
-#~ msgstr "<span size=\"medium\"><b>Αποκωδικοποιητές</b></span>"
-
-#~ msgid "_General plugin list:"
-#~ msgstr "Λίστα _γενικών αρθρωμάτων:"
-
-#~ msgid "<span size=\"medium\"><b>General</b></span>"
-#~ msgstr "<span size=\"medium\"><b>Γενικά</b></span>"
-
-#~ msgid "_Visualization plugin list:"
-#~ msgstr "Λίστα αρθρωμάτων _οπτικοποίησης:"
-
-#~ msgid "<b>Visualization</b>"
-#~ msgstr "<b>Οπτικοποίηση</b>"
-
-#, fuzzy
-#~ msgid "Effect plugins:"
-#~ msgstr "Λίστα αρθρωμάτων _εφφέ:"
-
-#~ msgid "<b>Effects</b>"
-#~ msgstr "<b>Εφέ</b>"
-
-#, fuzzy
-#~ msgid "<span size=\"small\">General</span>"
-#~ msgstr "<span size=\"medium\"><b>Γενικά</b></span>"
-
-#, fuzzy
-#~ msgid "<span size=\"small\">Location</span>"
-#~ msgstr "<span size=\"medium\"><b>Αποκωδικοποιητές</b></span>"
-
-#, fuzzy
-#~ msgid "<span size=\"small\">Raw Metadata</span>"
-#~ msgstr "<span size=\"medium\"><b>Μέσα</b></span>"
-
-#, fuzzy
-#~ msgid "Value"
-#~ msgstr "Blues"
-
-#, fuzzy
-#~ msgid "170 Hz"
-#~ msgstr "11000 Hz"
-
-#, fuzzy
-#~ msgid "310 Hz"
-#~ msgstr "11000 Hz"
-
-#, fuzzy
-#~ msgid "3 kHz"
-#~ msgstr "48 kHz"
-
-#, fuzzy
-#~ msgid "6 kHz"
-#~ msgstr "48 kHz"
-
-#, fuzzy
-#~ msgid ""
-#~ "Available interfaces:\n"
-#~ "\n"
-#~ msgstr "Διαθέσιμες _ρυθμίσεις:"
-
-#, fuzzy
-#~ msgid "Available Plugin Preferences:\n"
-#~ msgstr "Διαθέσιμες _ρυθμίσεις:"
-
-#, fuzzy
-#~ msgid "Add/Open URL Dialog"
-#~ msgstr "Παράθυρο διαλόγου προσθήκης/ανοίγματος αρχείων"
-
-#~ msgid "Enter location to play:"
-#~ msgstr "Εισάγετε τοποθεσία για αναπαραγωγή:"
-
-#~ msgid "Don't clear the playlist"
-#~ msgstr "Ακύρωση καθαρισμού λίστας αναπαραγωγής"
-
-#~ msgid "audacious: %s"
-#~ msgstr "audacious: %s"
-
-#~ msgid "Filename:"
-#~ msgstr "Όνομα αρχείου:"
-
-#~ msgid "No input plugin recognized this file"
-#~ msgstr "Αυτό το αρχείο δεν αναγνωρίστηκε από κανένα πρόσθετο εισαγωγής ήχου"
-
-#~ msgid "Input plugin: %s"
-#~ msgstr "Άρθρωμα εισόδου: %s"
-
-#~ msgid ""
-#~ "<b><big>No output plugin selected.</big></b>\n"
-#~ "You have not selected an output plugin."
-#~ msgstr ""
-#~ "<b><big>Δεν επιλέχτηκε πρόσθετο εξόδου.</big></b>\n"
-#~ "Δεν έχετε επιλέξει κάποιο πρόσθετο εξόδου."
-
-#~ msgid "Connectivity"
-#~ msgstr "Συνδεσιμότητα"
-
-#, fuzzy
-#~ msgid "Sampling Rate [Hz]:"
-#~ msgstr "Ρυθμός δειγματοληψίας"
-
-#~ msgid "<b>Format Detection</b>"
-#~ msgstr "<b>Αναγνώριση μορφής</b>"
-
-#, fuzzy
-#~ msgid "Detect file formats by extension."
-#~ msgstr "Να μη γίνεται απόκρυψη της επέκτασης"
-
-#, fuzzy
-#~ msgid ""
-#~ "When checked, Audacious will detect file formats based by extension. Only "
-#~ "files with extensions of supported formats will be loaded."
-#~ msgstr ""
-#~ "Αν επιλεγεί, το Audacious θα αναγνωρίζει τη μορφή των τραγουδιών όταν "
-#~ "χρειαστεί. Αυτό μπορεί να οδηγήσει σε πιο χάλια λίστα αναπαραγωγής αλλά "
-#~ "οδηγεί σε ουσιαστικό κέρδος σε ταχύτητα."
-
-#, fuzzy
-#~ msgid "<b>Sampling Rate Converter</b>"
-#~ msgstr "<b>Ρυθμός δειγματοληψίας:</b>"
-
-#, fuzzy
-#~ msgid "Enable Sampling Rate Converter"
-#~ msgstr "Ρυθμός δειγματοληψίας"
-
-#, fuzzy
-#~ msgid "<b>Advanced</b>"
-#~ msgstr "<b>Όνομα:</b>"
-
-#, fuzzy
-#~ msgid ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "\n"
-#~ "Copyright (C) 2005-2009 Audacious Development Team"
-#~ msgstr ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "Αναπαράγοντας πολυμέσα στο UNIX.\n"
-#~ "\n"
-#~ "Copyright (C) 2005 Η ομάδα ανάπτυξης του Audacious\n"
-
-#~ msgid "Detect file formats on demand, instead of immediately."
-#~ msgstr "Εντοπισμός μορφής αρχείων όταν χρειαστεί, αντί αμέσως."
-
-#, fuzzy
-#~ msgid ""
-#~ "When checked, Audacious will detect file formats on demand. This can "
-#~ "result in a messier playlist, but delivers a major speed benefit."
-#~ msgstr ""
-#~ "Αν επιλεγεί, το Audacious θα αναγνωρίζει τη μορφή των τραγουδιών όταν "
-#~ "χρειαστεί. Αυτό μπορεί να οδηγήσει σε πιο χάλια λίστα αναπαραγωγής αλλά "
-#~ "οδηγεί σε ουσιαστικό κέρδος σε ταχύτητα."
-
-#~ msgid "Load metadata from playlists and files"
-#~ msgstr "Φόρτωση μεταδεδομένων από τις λίστες αναπαραγωγής και τα αρχεία"
-
-#~ msgid "Load metadata (tag information) from music files."
-#~ msgstr "Φόρτωση μεταδεδομένων (πληροφορίες ετικετών) από τα μουσικά αρχεία."
-
-#~ msgid "Jump to Time"
-#~ msgstr "Μετάβαση σε χρόνο"
-
-#~ msgid "minutes:seconds"
-#~ msgstr "λεπτά:δευτερόλεπτα"
-
-#~ msgid "Track length:"
-#~ msgstr "Διάρκεια κομματιού:"
-
-#, fuzzy
-#~ msgid "Save as Static Playlist"
-#~ msgstr "Αποθήκευση λίστας αναπαραγωγής"
-
-#~ msgid "Error writing playlist \"%s\": %s"
-#~ msgstr "Σφάλμα εγγραφής της λίστας αναπαραγωγής \"%s\": %s"
-
-#~ msgid "%s already exist. Continue?"
-#~ msgstr "%s υπάρχει ήδη. Συνέχεια ;"
-
-#~ msgid ""
-#~ "<b><big>Unable to save playlist.</big></b>\n"
-#~ "\n"
-#~ "Unknown file type for '%s'.\n"
-#~ msgstr ""
-#~ "<b><big>Αδύνατη η αποθήκευση της λίστας αναπαραγωγής.</big></b>\n"
-#~ "\n"
-#~ "Άγνωστος τύπος αρχείου '%s'.\n"
-
-#~ msgid "Presets"
-#~ msgstr "Προκαθορισμένα"
-
-#~ msgid "Mouse"
-#~ msgstr "Ποντίκι"
-
-#~ msgid "Pause between songs"
-#~ msgstr "Παύση μεταξύ των τραγουδιών"
-
-#~ msgid "Pause for"
-#~ msgstr "Παύση για"
-
-#~ msgid "seconds"
-#~ msgstr "δευτερόλεπτα"
-
-#~ msgid "<b>Filename</b>"
-#~ msgstr "<b>Όνομα αρχείου</b>"
-
-#~ msgid "Convert underscores to blanks"
-#~ msgstr "Μετατροπή κάτω παύλας σε κενό"
-
-#~ msgid "Convert %20 to blanks"
-#~ msgstr "Μετατροπή %20 σε κενό"
-
-#~ msgid "<b>File Dialog</b>"
-#~ msgstr "<b>Διάλογος αρχείου</b>"
-
-#~ msgid "Always refresh directory when opening file dialog"
-#~ msgstr "Πάντα ανανέωση των καταλόγων κατά το άνοιγμα του διαλόγου αρχείων"
-
-#~ msgid ""
-#~ "Always refresh the file dialog (this will slow opening the dialog on "
-#~ "large directories, and Gnome VFS should handle automatically)."
-#~ msgstr ""
-#~ "Να γίνεται πάντα ανανέωση του διαλόγου αρχείων (αυτό μπορεί να "
-#~ "καθυστερήσει το άνοιγμα του διαλόγου σε μεγάλους καταλόγους, και το Gnome "
-#~ "VFS θα πρέπει να το χειριστεί αυτόματα)."
-
-#~ msgid "Changes volume by"
-#~ msgstr "Αλλάζει την ένταση κατά"
-
-#~ msgid "percent"
-#~ msgstr "ποσοστό"
-
-#~ msgid "Scrolls playlist by"
-#~ msgstr "Προχωρά τη λίστα τραγουδιών κατά"
-
-#~ msgid "lines"
-#~ msgstr "γραμμές"
-
-#, fuzzy
-#~ msgid "Stop after Current Song"
-#~ msgstr "/Διακοπή μετά το τρέχον τραγούδι"
-
-#, fuzzy
-#~ msgid "Peaks"
-#~ msgstr "Pranks"
-
-#, fuzzy
-#~ msgid "Repeat"
-#~ msgstr "/Επανάληψη"
-
-#, fuzzy
-#~ msgid "Shuffle"
-#~ msgstr "/Τυχαία αναπαραγωγή"
-
-#, fuzzy
-#~ msgid "No Playlist Advance"
-#~ msgstr "Μη αυτόματη μετάβαση μπροστά στη λίστα τραγουδιών"
-
-#, fuzzy
-#~ msgid "Play"
-#~ msgstr "/Αναπαραγωγή"
-
-#, fuzzy
-#~ msgid "Pause"
-#~ msgstr "/Παύση"
-
-#, fuzzy
-#~ msgid "Stop"
-#~ msgstr "/Σταμάτημα"
-
-#, fuzzy
-#~ msgid "Previous"
-#~ msgstr "/Προηγούμενο"
-
-#, fuzzy
-#~ msgid "Next"
-#~ msgstr "/Επόμενο"
-
-#, fuzzy
-#~ msgid "Visualization Mode"
-#~ msgstr "/Οπτικοποίηση"
-
-#, fuzzy
-#~ msgid "Analyzer Mode"
-#~ msgstr "/Αναλυτής/Φωτιά"
-
-#, fuzzy
-#~ msgid "Scope Mode"
-#~ msgstr "/Φάσμα"
-
-#, fuzzy
-#~ msgid "Voiceprint Mode"
-#~ msgstr "/Αναλυτής/Φωτιά"
-
-#, fuzzy
-#~ msgid "WindowShade VU Mode"
-#~ msgstr "<b>Λειτουργία Εναλλαγής κουμπιού:</b>"
-
-#, fuzzy
-#~ msgid "Refresh Rate"
-#~ msgstr "/Ρυθμός ανανέωσης"
-
-#, fuzzy
-#~ msgid "Analyzer Falloff"
-#~ msgstr "/Πτώση αναλυτή"
-
-#, fuzzy
-#~ msgid "Peaks Falloff"
-#~ msgstr "/Πτώση κορυφών"
-
-#, fuzzy
-#~ msgid "New Playlist"
-#~ msgstr "Αποθήκευση λίστας αναπαραγωγής"
-
-#, fuzzy
-#~ msgid "Select Next Playlist"
-#~ msgstr "Γραμματοσειρά για τη λίστα τραγουδιών:"
-
-#, fuzzy
-#~ msgid "Select Previous Playlist"
-#~ msgstr "/Ταξινόμηση επιλογής/Κατά καλλιτέχνη"
-
-#, fuzzy
-#~ msgid "Delete Playlist"
-#~ msgstr "Γραμματοσειρά για τη λίστα τραγουδιών:"
-
-#, fuzzy
-#~ msgid "Load List"
-#~ msgstr "/Φόρτωση λίστας αναπαραγωγής"
-
-#, fuzzy
-#~ msgid "Loads a playlist file into the selected playlist."
-#~ msgstr ""
-#~ "Φόρτωση μεταπληροφοριών δυναμικά κατά την εμφάνιση του αρχείου στη λίστα "
-#~ "τραγουδιών"
-
-#, fuzzy
-#~ msgid "Save List"
-#~ msgstr "/Αποθήκευση λίστας αναπαραγωγής"
-
-#, fuzzy
-#~ msgid "Saves the selected playlist."
-#~ msgstr "Γραμματοσειρά για τη λίστα τραγουδιών:"
-
-#, fuzzy
-#~ msgid "Save Default List"
-#~ msgstr "/Αποθήκευση προεπιλεγμένης λίστας"
-
-#, fuzzy
-#~ msgid "Saves the selected playlist to the default location."
-#~ msgstr "Γραμματοσειρά για τη λίστα τραγουδιών:"
-
-#, fuzzy
-#~ msgid "Refresh List"
-#~ msgstr "Ανανέωση λίστας skin"
-
-#, fuzzy
-#~ msgid "List Manager"
-#~ msgstr "Μη αυτόματη μετάβαση μπροστά στη λίστα τραγουδιών"
-
-#, fuzzy
-#~ msgid "Opens the playlist manager."
-#~ msgstr "Ακύρωση καθαρισμού λίστας αναπαραγωγής"
-
-#, fuzzy
-#~ msgid "View"
-#~ msgstr "/_Προβολή"
-
-#, fuzzy
-#~ msgid "Add Internet Address..."
-#~ msgstr "/Προσθήκη διεύθυνσης internet"
-
-#, fuzzy
-#~ msgid "Adds a remote track to the playlist."
-#~ msgstr "Ακύρωση καθαρισμού λίστας αναπαραγωγής"
-
-#, fuzzy
-#~ msgid "Add Files..."
-#~ msgstr "/Προσθήκη αρχείων..."
-
-#, fuzzy
-#~ msgid "Search and Select"
-#~ msgstr "/Ταξινόμηση επιλογής"
-
-#, fuzzy
-#~ msgid "Invert Selection"
-#~ msgstr "/Αντιστροφή επιλογής"
-
-#, fuzzy
-#~ msgid "Inverts the selected and unselected entries."
-#~ msgstr "Γραμματοσειρά για τη λίστα τραγουδιών:"
-
-#~ msgid "Select All"
-#~ msgstr "Επιλογή 'όλων"
-
-#, fuzzy
-#~ msgid "Select None"
-#~ msgstr "/Κανένα επιλεγμένο"
-
-#, fuzzy
-#~ msgid "Deselects all of the playlist entries."
-#~ msgstr "Ακύρωση καθαρισμού λίστας αναπαραγωγής"
-
-#, fuzzy
-#~ msgid "Remove All"
-#~ msgstr "/Αφαίρεση όλων"
-
-#, fuzzy
-#~ msgid "Removes all entries from the playlist."
-#~ msgstr "/Αφαίρεση μη διαθέσιμων αρχείων"
-
-#, fuzzy
-#~ msgid "Clear Queue"
-#~ msgstr "/Καθαρισμός ουράς"
-
-#, fuzzy
-#~ msgid "Clears the queue associated with this playlist."
-#~ msgstr "Γραμματοσειρά για τη λίστα τραγουδιών:"
-
-#, fuzzy
-#~ msgid "Remove Unavailable Files"
-#~ msgstr "/Αφαίρεση μη διαθέσιμων αρχείων"
-
-#, fuzzy
-#~ msgid "Removes unavailable files from the playlist."
-#~ msgstr "/Αφαίρεση μη διαθέσιμων αρχείων"
-
-#, fuzzy
-#~ msgid "Remove Duplicates"
-#~ msgstr "/Αφαίρεση διπλών"
-
-#, fuzzy
-#~ msgid "By Title"
-#~ msgstr "Τίτλος"
-
-#, fuzzy
-#~ msgid "Removes duplicate entries from the playlist by title."
-#~ msgstr "/Αφαίρεση διπλών/Κατά διαδρομή + όνομα αρχείου"
-
-#, fuzzy
-#~ msgid "By Filename"
-#~ msgstr "Όνομα αρχείου"
-
-#, fuzzy
-#~ msgid "Removes duplicate entries from the playlist by filename."
-#~ msgstr "/Αφαίρεση διπλών/Κατά διαδρομή + όνομα αρχείου"
-
-#, fuzzy
-#~ msgid "By Path + Filename"
-#~ msgstr "/Ταξινόμηση λίστας/Κατά διαδρομή + όνομα αρχείου"
-
-#, fuzzy
-#~ msgid "Removes duplicate entries from the playlist by their full path."
-#~ msgstr "/Αφαίρεση διπλών/Κατά διαδρομή + όνομα αρχείου"
-
-#, fuzzy
-#~ msgid "Remove Unselected"
-#~ msgstr "/Αφαίρεση μη-επιλεγμένων"
-
-#, fuzzy
-#~ msgid "Remove unselected entries from the playlist."
-#~ msgstr "/Αφαίρεση διπλών/Κατά διαδρομή + όνομα αρχείου"
-
-#, fuzzy
-#~ msgid "Remove Selected"
-#~ msgstr "/Αφαίρεση επιλεγμένων"
-
-#, fuzzy
-#~ msgid "Remove selected entries from the playlist."
-#~ msgstr "/Αφαίρεση διπλών/Κατά διαδρομή + όνομα αρχείου"
-
-#, fuzzy
-#~ msgid "Randomize List"
-#~ msgstr "/Τυχαιοποίηση λίστας"
-
-#, fuzzy
-#~ msgid "Randomizes the playlist."
-#~ msgstr "/Τυχαιοποίηση λίστας"
-
-#, fuzzy
-#~ msgid "Reverse List"
-#~ msgstr "/Αντιστροφή της σειράς της λίστας"
-
-#, fuzzy
-#~ msgid "Reverses the playlist."
-#~ msgstr "Ακύρωση καθαρισμού λίστας αναπαραγωγής"
-
-#, fuzzy
-#~ msgid "Sort List"
-#~ msgstr "/Ταξινόμηση λίστας"
-
-#, fuzzy
-#~ msgid "Sorts the list by title."
-#~ msgstr "Ταξινόμηση λίστας/Κατά όνομα"
-
-#, fuzzy
-#~ msgid "By Album"
-#~ msgstr "Άλμπουμ"
-
-#, fuzzy
-#~ msgid "Sorts the list by album."
-#~ msgstr "Ταξινόμηση λίστας/Κατά όνομα"
-
-#, fuzzy
-#~ msgid "By Artist"
-#~ msgstr "Καλλιτέχνης"
-
-#, fuzzy
-#~ msgid "Sorts the list by artist."
-#~ msgstr "/Ταξινόμηση λίστας/Κατά καλλιτέχνη"
-
-#, fuzzy
-#~ msgid "Sorts the list by filename."
-#~ msgstr "Ταξινόμηση λίστας/Κατά όνομα αρχείου"
-
-#, fuzzy
-#~ msgid "Sorts the list by full pathname."
-#~ msgstr "Ταξινόμηση λίστας/Κατά όνομα αρχείου"
-
-#, fuzzy
-#~ msgid "By Date"
-#~ msgstr "Ημερομηνία"
-
-#, fuzzy
-#~ msgid "Sorts the list by modification time."
-#~ msgstr "Ταξινόμηση λίστας/Κατά όνομα"
-
-#, fuzzy
-#~ msgid "By Track Number"
-#~ msgstr "Νούμερο κομματιού"
-
-#, fuzzy
-#~ msgid "Sorts the list by track number."
-#~ msgstr "/Ταξινόμηση λίστας/Κατά χρονολογία"
-
-#, fuzzy
-#~ msgid "By Playlist Entry"
-#~ msgstr "/Ταξινόμηση λίστας/Κατά καλλιτέχνη"
-
-#, fuzzy
-#~ msgid "Sorts the list by playlist entry."
-#~ msgstr "/Ταξινόμηση λίστας/Κατά καλλιτέχνη"
-
-#, fuzzy
-#~ msgid "Sort Selected"
-#~ msgstr "/Ταξινόμηση επιλογής"
-
-#, fuzzy
-#~ msgid "File"
-#~ msgstr "Satire"
-
-#, fuzzy
-#~ msgid "Components"
-#~ msgstr "Σχόλιο"
-
-#, fuzzy
-#~ msgid "View Track Details"
-#~ msgstr "/Εμφάνιση πληροφοριών αρχείου"
-
-#, fuzzy
-#~ msgid "Play File"
-#~ msgstr "/Αναπαραγωγή αρχείου"
-
-#, fuzzy
-#~ msgid "Load and play a file"
-#~ msgstr "Φόρτωση μεταδεδομένων από τις λίστες αναπαραγωγής και τα αρχεία"
-
-#, fuzzy
-#~ msgid "Play Location"
-#~ msgstr "/Αναπαραγωγή τοποθεσίας"
-
-#, fuzzy
-#~ msgid "Plugin services"
-#~ msgstr "Πρόσθετα"
-
-#, fuzzy
-#~ msgid "Preferences"
-#~ msgstr "/Προτιμήσεις"
-
-#, fuzzy
-#~ msgid "Open preferences window"
-#~ msgstr "Παράθυρο προτιμήσεων "
-
-#, fuzzy
-#~ msgid "_Quit"
-#~ msgstr "/_Έξοδος"
-
-#, fuzzy
-#~ msgid "Quit Audacious"
-#~ msgstr "Περί Audacious"
-
-#, fuzzy
-#~ msgid "Set A-B"
-#~ msgstr "/Επιλογή όλων"
-
-#, fuzzy
-#~ msgid "Clear A-B"
-#~ msgstr "/Καθαρισμός ουράς"
-
-#, fuzzy
-#~ msgid "Jump to Playlist Start"
-#~ msgstr "/Μετάβαση στην αρχή της λίστας τραγουδιών"
-
-#, fuzzy
-#~ msgid "Jump to File"
-#~ msgstr "/Μετάβαση σε αρχείο"
-
-#, fuzzy
-#~ msgid "Queue Toggle"
-#~ msgstr "/Εναλλαγή ουράς"
-
-#, fuzzy
-#~ msgid "Load"
-#~ msgstr "/Φόρτωση"
-
-#, fuzzy
-#~ msgid "Import"
-#~ msgstr "/Εισαγωγή"
-
-#~ msgid "Save"
-#~ msgstr "Αποθήκευση"
-
-#, fuzzy
-#~ msgid "Delete"
-#~ msgstr "/Διαγραφή"
-
-#~ msgid "Preset"
-#~ msgstr "Προκαθορισμένο"
-
-#~ msgid "Load preset"
-#~ msgstr "Φόρτωση προκαθορισμένου"
-
-#, fuzzy
-#~ msgid "Auto-load preset"
-#~ msgstr "/Φόρτωση/Αυτόματο φόρτωμα προκαθορισμένου"
-
-#, fuzzy
-#~ msgid "Load auto-load preset"
-#~ msgstr "/Φόρτωση/Αυτόματο φόρτωμα προκαθορισμένου"
-
-#~ msgid "Default"
-#~ msgstr "Προκαθορισμένο"
-
-#, fuzzy
-#~ msgid "Load default preset into equalizer"
-#~ msgstr "Αποθήκευση αυτόματου προκαθορισμένου"
-
-#, fuzzy
-#~ msgid "Zero"
-#~ msgstr "Retro"
-
-#, fuzzy
-#~ msgid "Set equalizer preset levels to zero"
-#~ msgstr "Αποθήκευση προκαθορισμένου ισοσταθμιστή"
-
-#, fuzzy
-#~ msgid "From file"
-#~ msgstr "/Φόρτωση/Από αρχείο"
-
-#, fuzzy
-#~ msgid "Load preset from file"
-#~ msgstr "Φόρτωση προκαθορισμένου"
-
-#, fuzzy
-#~ msgid "From WinAMP EQF file"
-#~ msgstr "/Φόρτωση/Από αρχείο EQF του WinAMP"
-
-#, fuzzy
-#~ msgid "Load preset from WinAMP EQF file"
-#~ msgstr "/Φόρτωση/Από αρχείο EQF του WinAMP"
-
-#, fuzzy
-#~ msgid "WinAMP Presets"
-#~ msgstr "/Εισαγωγή/Presets του WinAMP"
-
-#, fuzzy
-#~ msgid "Import WinAMP presets"
-#~ msgstr "/Εισαγωγή/Presets του WinAMP"
-
-#~ msgid "Save preset"
-#~ msgstr "Αποθήκευση προκαθορισμένου"
-
-#, fuzzy
-#~ msgid "Save auto-load preset"
-#~ msgstr "/Αποθήκευση/Αυτόματο φόρτωμα του preset"
-
-#, fuzzy
-#~ msgid "Save default preset"
-#~ msgstr "Αποθήκευση αυτόματου προκαθορισμένου"
-
-#, fuzzy
-#~ msgid "To file"
-#~ msgstr "/Φόρτωση/Από αρχείο"
-
-#, fuzzy
-#~ msgid "Save preset to file"
-#~ msgstr "Αποθήκευση προκαθορισμένου"
-
-#, fuzzy
-#~ msgid "To WinAMP EQF file"
-#~ msgstr "/Αποθήκευση/Σε αρχείο EQF του WinAMP"
-
-#, fuzzy
-#~ msgid "Save preset to WinAMP EQF file"
-#~ msgstr "/Αποθήκευση/Σε αρχείο EQF του WinAMP"
-
-#~ msgid "Delete preset"
-#~ msgstr "/Διαγραφή προκαθορισμένου"
-
-#, fuzzy
-#~ msgid "Delete auto-load preset"
-#~ msgstr "/Διαγραφή/Προκαθορισμένο που φορτώνεται αυτόματα"
-
-#~ msgid ""
-#~ "<b><big>Unable to load skin.</big></b>\n"
-#~ "\n"
-#~ "Check that skin at '%s' is usable and default skin is properly installed "
-#~ "at '%s'\n"
-#~ msgstr ""
-#~ "<b><big>Δεν ήταν δυνατό το φόρτωμα του skin.</big></b>\n"
-#~ "\n"
-#~ "Ελέγξτε ότι το skin στο '%s' είναι έγκυρο και ότι το προκαθορισμένο skin "
-#~ "είναι σωστά εγκατεστημένο στο '%s'\n"
-
-#, fuzzy
-#~ msgid "Headless operation enabled\n"
-#~ msgstr "Η λειτουργία δεν υποστηρίζεται"
-
-#~ msgid "Audacious core developers:"
-#~ msgstr "Βασικοί συντελεστές του Audacious:"
-
-#~ msgid "Audacious Equalizer"
-#~ msgstr "Ισοσταθμιστής Audacious"
-
-#, fuzzy
-#~ msgid "Play files"
-#~ msgstr "/Αναπαραγωγή αρχείου"
-
-#, fuzzy
-#~ msgid "Load files"
-#~ msgstr "/Φόρτωση/Από αρχείο"
-
-#~ msgid "%s - Audacious"
-#~ msgstr "%s - Audacious"
-
-#~ msgid "VBR"
-#~ msgstr "VBR"
-
-#~ msgid "mono"
-#~ msgstr "μονοφωνικό"
-
-#, fuzzy
-#~ msgid "Show main player window"
-#~ msgstr "Γραμματοσειρά κυρίου παραθύρου:"
-
-#, fuzzy
-#~ msgid "Ignore"
-#~ msgstr "κανένα"
-
-#, fuzzy
-#~ msgid "Seek to: %d:%-2.2d/%d:%-2.2d (%d%%)"
-#~ msgstr "ΜΕΤΑΒΑΣΗ: %d:%-2.2d/%d:%-2.2d (%d%%)"
-
-#, fuzzy
-#~ msgid "Volume: %d%%"
-#~ msgstr "Ένταση"
-
-#, fuzzy
-#~ msgid "Options Menu"
-#~ msgstr "Επιλογές:"
-
-#, fuzzy
-#~ msgid "Disable 'Always On Top'"
-#~ msgstr "/Πάντα στην κορυφή"
-
-#, fuzzy
-#~ msgid "Enable 'Always On Top'"
-#~ msgstr "/Πάντα στην κορυφή"
-
-#, fuzzy
-#~ msgid "File Info Box"
-#~ msgstr "Πληροφορίες αρχείου - %s"
-
-#, fuzzy
-#~ msgid "Disable 'GUI Scaling'"
-#~ msgstr "Απενεργοποίηση ετικετών ID3V2"
-
-#, fuzzy
-#~ msgid "Visualization Menu"
-#~ msgstr "/Οπτικοποίηση"
-
-#~ msgid ""
-#~ "<b><big>Couldn't open audio.</big></b>\n"
-#~ "\n"
-#~ "Please check that:\n"
-#~ "1. You have the correct output plugin selected.\n"
-#~ "2. No other programs is blocking the soundcard.\n"
-#~ "3. Your soundcard is configured properly.\n"
-#~ msgstr ""
-#~ "<b><big>Δεν ήνταν δυνατό το άνοιγμα του ήχου.</big></b>\n"
-#~ "\n"
-#~ "Παρακαλώ ελέγξτε ότι:\n"
-#~ "1. Έχετε επιλέξει το σωστό πρόσθετο εξόδου.\n"
-#~ "2. Κανένα άλλο πρόγραμμα δε μπλοκάρει την κάρτα ήχου.\n"
-#~ "3. Η κάρτα ήχου σας είναι σωστά ρυθμισμένη.\n"
-
-#, fuzzy
-#~ msgid "Autoscroll Songname"
-#~ msgstr "/Αυτόματη κύλιση τίτλου"
-
-#, fuzzy
-#~ msgid "Show Player"
-#~ msgstr "/Εμφάνιση λίστας αναπαραγωγής"
-
-#, fuzzy
-#~ msgid "Show Playlist Editor"
-#~ msgstr "/Εμφάνιση λίστας αναπαραγωγής"
-
-#, fuzzy
-#~ msgid "Show Equalizer"
-#~ msgstr "/Εμφάνιση ισοσταθμιστή"
-
-#, fuzzy
-#~ msgid "Always on Top"
-#~ msgstr "/Πάντα στην κορυφή"
-
-#, fuzzy
-#~ msgid "Put on All Workspaces"
-#~ msgstr "/Τοποθέτηση σε όλους τους χώρους εργασίας"
-
-#, fuzzy
-#~ msgid "Roll up Player"
-#~ msgstr "/Τύλιγμα του αναπαραγωγέα"
-
-#, fuzzy
-#~ msgid "Roll up Playlist Editor"
-#~ msgstr "/Τύλιγμα του επεξεργαστή λίστας"
-
-#, fuzzy
-#~ msgid "Roll up Equalizer"
-#~ msgstr "/Τύλιγμα του ισοσταθμιστή"
-
-#, fuzzy
-#~ msgid "Scale"
-#~ msgstr "Αποθήκευση"
-
-#, fuzzy
-#~ msgid "Analyzer"
-#~ msgstr "/Αναλυτής"
-
-#, fuzzy
-#~ msgid "Scope"
-#~ msgstr "/Φάσμα"
-
-#, fuzzy
-#~ msgid "Voiceprint"
-#~ msgstr "/Αναλυτής/Φωτιά"
-
-#, fuzzy
-#~ msgid "Normal"
-#~ msgstr "Μορφή:"
-
-#, fuzzy
-#~ msgid "Fire"
-#~ msgstr "Satire"
-
-#, fuzzy
-#~ msgid "Vertical Lines"
-#~ msgstr "/Αναλυτής/Κάθετες γραμμές"
-
-#, fuzzy
-#~ msgid "Lines"
-#~ msgstr "γραμμές"
-
-#, fuzzy
-#~ msgid "Bars"
-#~ msgstr "Bass"
-
-#, fuzzy
-#~ msgid "Dot Scope"
-#~ msgstr "Όχι επανάληψη"
-
-#, fuzzy
-#~ msgid "Line Scope"
-#~ msgstr "/Φάσμα/Γραμμές"
-
-#, fuzzy
-#~ msgid "Solid Scope"
-#~ msgstr "/Φάσμα/Συμπαγές"
-
-#, fuzzy
-#~ msgid "Smooth"
-#~ msgstr "μονοφωνικό"
-
-#, fuzzy
-#~ msgid "Full (~50 fps)"
-#~ msgstr "/Ρυθμός ανανέωσης/Πλήρης (~50fps)"
-
-#, fuzzy
-#~ msgid "Half (~25 fps)"
-#~ msgstr "/Ρυθμός ανανέωσης/Μισός (~25fps)"
-
-#, fuzzy
-#~ msgid "Quarter (~13 fps)"
-#~ msgstr "/Ρυθμός ανανέωσης/Τέταρτο (~13fps)"
-
-#, fuzzy
-#~ msgid "Eighth (~6 fps)"
-#~ msgstr "/Ρυθμός ανανέωσης/Όγδοο (~6 fps)"
-
-#, fuzzy
-#~ msgid "Slowest"
-#~ msgstr "Showtunes"
-
-#, fuzzy
-#~ msgid "Slow"
-#~ msgstr "χαμηλό"
-
-#, fuzzy
-#~ msgid "Medium"
-#~ msgstr "μεσαίο"
-
-#, fuzzy
-#~ msgid "Time Elapsed"
-#~ msgstr "/Χρόνος που πέρασε"
-
-#, fuzzy
-#~ msgid "Time Remaining"
-#~ msgstr "/Υπολειπόμενος χρόνος"
-
-#, fuzzy
-#~ msgid "Plugin Services"
-#~ msgstr "Πρόσθετα"
-
-#, fuzzy
-#~ msgid "Search entries in active playlist"
-#~ msgstr "Εμφάνιση διαχωριστικών στη λίστα αναπαραγωγής"
-
-#, fuzzy
-#~ msgid "Title: "
-#~ msgstr "Τίτλος:"
-
-#, fuzzy
-#~ msgid "Album: "
-#~ msgstr "Άλμπουμ:"
-
-#, fuzzy
-#~ msgid "Artist: "
-#~ msgstr "Καλλιτέχνης:"
-
-#, fuzzy
-#~ msgid "Filename: "
-#~ msgstr "Όνομα αρχείου:"
-
-#~ msgid "Audacious Playlist Editor"
-#~ msgstr "Επεξεργαστής λίστας αναπαραγωγής"
-
-#~ msgid "Appearance"
-#~ msgstr "Εμφάνιση"
-
-#~ msgid "<b>_Fonts</b>"
-#~ msgstr "<b>_Γραμματοσειρές</b>"
-
-#~ msgid "_Player:"
-#~ msgstr "_Αναπαραγωγέας:"
-
-#~ msgid "Select main player window font:"
-#~ msgstr "Γραμματοσειρά κυρίου παραθύρου:"
-
-#~ msgid "_Playlist:"
-#~ msgstr "_Λίστα τραγουδιών:"
-
-#, fuzzy
-#~ msgid "Select playlist font:"
-#~ msgstr "Γραμματοσειρά κυρίου παραθύρου:"
-
-#~ msgid "Use Bitmap fonts if available"
-#~ msgstr "Χρήση γραμματοσειρών Bitmap αν είναι διαθέσιμες"
-
-#~ msgid "<b>_Miscellaneous</b>"
-#~ msgstr "<b>_Διάφορα</b>"
-
-#~ msgid "Show track numbers in playlist"
-#~ msgstr "Εμφάνιση Α/Α κομματιού στη λίστα αναπαραγωγής"
-
-#~ msgid "Show separators in playlist"
-#~ msgstr "Εμφάνιση διαχωριστικών στη λίστα αναπαραγωγής"
-
-#~ msgid "On load"
-#~ msgstr "Κατά το άνοιγμα"
-
-#~ msgid "Load metadata when adding the file to the playlist or opening it"
-#~ msgstr ""
-#~ "Φόρτωση μεταδεδομένων κατά την προσθήκη του αρχείου στη λίστα "
-#~ "αναπαραγωγής ή κατά το άνοιγμά του"
-
-#~ msgid "On display"
-#~ msgstr "Κατά την προβολή"
-
-#, fuzzy
-#~ msgid ""
-#~ "Load metadata on demand when displaying the file in the playlist. You may "
-#~ "need to set \"Detect file formats on demand\" in Audio page for full "
-#~ "benefit."
-#~ msgstr ""
-#~ "Φόρτωση μεταδεδομένων κατά την προσθήκη του αρχείου στη λίστα "
-#~ "αναπαραγωγής ή κατά το άνοιγμά του"
-
-#, fuzzy
-#~ msgid "Blue"
-#~ msgstr "Blues"
-
-#, fuzzy
-#~ msgid "Green"
-#~ msgstr "Ελληνικά:"
-
-#~ msgid "<b>_Skin</b>"
-#~ msgstr "<b>_Skin</b>"
-
-#, fuzzy
-#~ msgid "Refresh skin list"
-#~ msgstr "Ανανέωση λίστας skin"
-
-#~ msgid "PREAMP"
-#~ msgstr "PREAMP"
-
-#~ msgid "60HZ"
-#~ msgstr "60HZ"
-
-#~ msgid "170HZ"
-#~ msgstr "170HZ"
-
-#~ msgid "310HZ"
-#~ msgstr "310HZ"
-
-#~ msgid "600HZ"
-#~ msgstr "600HZ"
-
-#~ msgid "1KHZ"
-#~ msgstr "1KHZ"
-
-#~ msgid "3KHZ"
-#~ msgstr "3KHZ"
-
-#~ msgid "6KHZ"
-#~ msgstr "6KHZ"
-
-#~ msgid "12KHZ"
-#~ msgstr "12KHZ"
-
-#~ msgid "14KHZ"
-#~ msgstr "14KHZ"
-
-#~ msgid "16KHZ"
-#~ msgstr "16KHZ"
-
-#~ msgid "Archived Winamp 2.x skin"
-#~ msgstr "Συμπιεσμένο Winamp 2.x skin"
-
-#~ msgid "Unarchived Winamp 2.x skin"
-#~ msgstr "Ασυμπίεστο Winamp 2.x skin"
-
-#~ msgid "Use custom cursors"
-#~ msgstr "Χρήση προσαρμοσμένων δεικτών ποντικιού"
-
-#, fuzzy
-#~ msgid "Reload Plugins"
-#~ msgstr "Πρόσθετα"
-
-#~ msgid ""
-#~ "Sorry, threads isn't supported on your platform.\n"
-#~ "\n"
-#~ "If you're on a libc5 based linux system and installed Glib & GTK+ before "
-#~ "you\n"
-#~ "installed LinuxThreads you need to recompile Glib & GTK+.\n"
-#~ msgstr ""
-#~ "Sorry, threads isn't supported on your platform.\n"
-#~ "\n"
-#~ "If you're on a libc5 based linux system and installed Glib & GTK+ before "
-#~ "you\n"
-#~ "installed LinuxThreads you need to recompile Glib & GTK+.\n"
-
-#, fuzzy
-#~ msgid "Error in Audacious."
-#~ msgstr "%s - Audacious"
-
-#, fuzzy
-#~ msgid "Enable 6 dB hard limiter"
-#~ msgstr "Ορισμός παραμέτρων σκληρού δίσκου"
-
-#, fuzzy
-#~ msgid "Select which Audacious session ID to use"
-#~ msgstr "Επιλογή συνεδρίας Audacious/BMP/XMMS (Προκαθορισμένη: 0)"
-
-#~ msgid "<b>Presets</b>"
-#~ msgstr "<b>Προκαθορισμένα</b>"
-
-#~ msgid "File preset extension:"
-#~ msgstr "Επέκταση αρχείου ρυθμίσεων:"
-
-#~ msgid "Directory preset file:"
-#~ msgstr "Αρχείο καταλόγου ρυθμίσεων:"
-
-#~ msgid ""
-#~ "<b><big>Unable to create %s.</big></b>\n"
-#~ "\n"
-#~ "Could not open glade file (%s). Please check your installation.\n"
-#~ msgstr ""
-#~ "<b><big>Δεν ήταν δυνατή η δημιουργία του %s.</big></b>\n"
-#~ "\n"
-#~ "Δεν ήταν δυνατό το άνοιγμα του αρχείου glade (%s). Παρακαλούμε ελέγξτε "
-#~ "την εγκατάστασή σας.\n"
-
-#~ msgid ""
-#~ "TITLE\n"
-#~ "ARTIST - TITLE\n"
-#~ "ARTIST - ALBUM - TITLE\n"
-#~ "ARTIST - ALBUM - TRACK. TITLE\n"
-#~ "ARTIST [ ALBUM ] - TRACK. TITLE\n"
-#~ "ALBUM - TITLE\n"
-#~ "Custom"
-#~ msgstr ""
-#~ "ΤΙΤΛΟΣ\n"
-#~ "ΚΑΛΛΙΤΕΧΝΗΣ - ΤΙΤΛΟΣ\n"
-#~ "ΚΑΛΛΙΤΕΧΝΗΣ - ΑΛΜΠΟΥΜ - ΤΙΤΛΟΣ\n"
-#~ "ΚΑΛΛΙΤΕΧΝΗΣ [ ΑΛΜΠΟΥΜ ] - ΤΙΤΛΟΣ\n"
-#~ "ΑΛΜΠΟΥΜ - ΤΙΤΛΟΣ\n"
-#~ "Προσαρμοσμένο"
-
-#, fuzzy
-#~ msgid "Track Information Window"
-#~ msgstr "Ρυθμίσεις αναδυόμενων πληροφοριών"
-
-#~ msgid "Preferences Window"
-#~ msgstr "Παράθυρο προτιμήσεων "
-
-#, fuzzy
-#~ msgid "Close"
-#~ msgstr "/Κλείσιμο"
-
-#, fuzzy
-#~ msgid "<b>Artist:</b> %s"
-#~ msgstr "Καλλιτέχνης"
-
-#, fuzzy
-#~ msgid "<b>Title:</b> %s"
-#~ msgstr "<b>Τίτλος:</b>"
-
-#, fuzzy
-#~ msgid "<b>Album:</b> %s"
-#~ msgstr "<b>Άλμπουμ:</b>"
-
-#, fuzzy
-#~ msgid "Audacious last.fm radio tuner"
-#~ msgstr "Επεξεργαστής λίστας αναπαραγωγής"
-
-#, fuzzy
-#~ msgid "<b>Artist:</b>"
-#~ msgstr "Καλλιτέχνης"
-
-#, fuzzy
-#~ msgid "<b>Title:</b>"
-#~ msgstr "<b>Τίτλος:</b>"
-
-#, fuzzy
-#~ msgid "<b>Album:</b>"
-#~ msgstr "<b>Άλμπουμ:</b>"
-
-#~ msgid "VOLUME: %d%%"
-#~ msgstr "ΕΝΤΑΣΗ: %d%%"
-
-#~ msgid "BALANCE: %d%% LEFT"
-#~ msgstr "BALANCE: %d%% ΑΡΙΣΤΕΡΑ"
-
-#~ msgid "BALANCE: CENTER"
-#~ msgstr "BALANCE: ΚΕΝΤΡΟ"
-
-#~ msgid "BALANCE: %d%% RIGHT"
-#~ msgstr "BALANCE: %d%% ΔΕΞΙΑ"
-
-#, fuzzy
-#~ msgid "Last.fm radio"
-#~ msgstr "/Αναπαραγωγή τοποθεσίας"
-
-#, fuzzy
-#~ msgid "Play Last.fm radio"
-#~ msgstr "/Αναπαραγωγή τοποθεσίας"
-
-#, fuzzy
-#~ msgid "Converter Type:"
-#~ msgstr "Μετατροπή συνόλου χαρακτήρων"
-
-#~ msgid ""
-#~ "<b><big>No playable CD found.</big></b>\n"
-#~ "\n"
-#~ "No CD inserted, or inserted CD is not an audio CD.\n"
-#~ msgstr ""
-#~ "<b><big>Δε βρέθηκε αναπαραγώγιμο CD.</big></b>\n"
-#~ "\n"
-#~ "Δεν τοποθετήσατε CD ή αυτό που τοποθετήσατε δεν είναι CD ήχου.\n"
-
-#, fuzzy
-#~ msgid "Add CD..."
-#~ msgstr "/Προσθήκη CD..."
-
-#, fuzzy
-#~ msgid "Play CD"
-#~ msgstr "/Αναπαραγωγή CD"
-
-#~ msgid "Performer/Artist"
-#~ msgstr "Καλλιτέχνης"
-
-#~ msgid "File name"
-#~ msgstr "Όνομα αρχείου"
-
-#~ msgid "File path"
-#~ msgstr "Διαδρομή αρχείου"
-
-#~ msgid "File extension"
-#~ msgstr "Επέκταση αρχείου"
-
-#~ msgid "Track number"
-#~ msgstr "Νούμερο κομματιού"
-
-#~ msgid "%{n:...%}: Display \"...\" only if element %n is present"
-#~ msgstr "%{n:...%}: Απεικόνιση \"...\" μόνο εάν το στοιχείο %n υπάρχει"
-
-#~ msgid ""
-#~ "Sorry, your GTK+ version (%d.%d.%d) does not work with Audacious.\n"
-#~ "Please use GTK+ %s or newer.\n"
-#~ msgstr ""
-#~ "Η έκδοση του GTK+ που έχετε (%d.%d.%d) δεν είναι συμβατή με το "
-#~ "Audacious.\n"
-#~ "Παρακαλώ χρησιμοποιείστε το GTK+ %s ή νεότερο.\n"
-
-#~ msgid "OPTIONS MENU"
-#~ msgstr "ΕΠΙΛΟΓΕΣ"
-
-#~ msgid "DISABLE ALWAYS ON TOP"
-#~ msgstr "ΑΠΕΝΕΡΓΟΠΟΙΗΣΗ του ΠΑΝΤΑ ΣΕ ΠΡΩΤΟ ΠΛΑΝΟ"
-
-#~ msgid "ENABLE ALWAYS ON TOP"
-#~ msgstr "ΕΝΕΡΓΟΠΟΙΗΣΗ του ΠΑΝΤΑ ΣΤΟ ΠΡΟΣΚΗΝΙΟ"
-
-#~ msgid "FILE INFO BOX"
-#~ msgstr "ΠΛΗΡΟΦΟΡΙΕΣ ΑΡΧΕΙΟΥ"
-
-#~ msgid "VISUALIZATION MENU"
-#~ msgstr "ΜΕΝΟΥ ΟΠΤΙΚΟΠΟΙΗΣΗΣ"
-
-#, fuzzy
-#~ msgid "Track name: "
-#~ msgstr "Ονόματα αρχείων:"
-
-#~ msgid ""
-#~ "<b><big>Unable to play files.</big></b>\n"
-#~ "\n"
-#~ "The following files could not be played. Please check that:\n"
-#~ "1. they are accessible.\n"
-#~ "2. you have enabled the media plugins required."
-#~ msgstr ""
-#~ "<b><big>Δεν ήταν δυνατή η αναπαραγωγή αρχείων.</big></b>\n"
-#~ "\n"
-#~ "Τα ακόλουθα αρχεία δεν ήταν δυνατόν να αναπαραγχθούν. Παρακαλούμε ελέγξτε "
-#~ "ότι:\n"
-#~ "1. είναι προσβάσιμα.\n"
-#~ "2. έχετε ενεργοποιήσει τα πρόσθετα που απαιτούνται."
-
-#~ msgid "Show more _details"
-#~ msgstr "Προβολή περισσότερων _λεπτομερειών"
-
-#, fuzzy
-#~ msgid ""
-#~ "\n"
-#~ "Received SIGSEGV\n"
-#~ "\n"
-#~ "This could be a bug in Audacious. If you don't know why this happened, "
-#~ "file a bug at http://bugs-meta.atheme.org/\n"
-#~ "\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Ελήφθη SIGSEGV\n"
-#~ "\n"
-#~ "Αυτό μπορεί να είναι σφάλμα στο Audacious. Εάν δεν γνωρίζετε γιατί "
-#~ "συνέβη,\n"
-#~ "συμπληρώστε μια αναφορά σφάλματος στο http://bugs.nenolod.net/\n"
-#~ "\n"
-
-#~ msgid ""
-#~ "Enables playlist transparency. This is not recommended for slower "
-#~ "machines as it requires some CPU time to create and cache the pixmaps "
-#~ "used for the transparency."
-#~ msgstr ""
-#~ "Ενεργοποιεί διαφάνεια για τη λίστα αναπαραγωγής. Αυτό δεν συνιστάται σε "
-#~ "πιο αργά μηχανήματα γιατί απαιτεί χρόνο από τον κεντρικό επεξεργαστή για "
-#~ "τη δημιουργία και αποθήκευση των εικόνων που χρησιμοποιούνται στη "
-#~ "διαφάνεια."
-
-#~ msgid "Enable playlist transparency"
-#~ msgstr "Ενεργοποίηση διαφάνειας λίστας αναπαραγωγής"
-
-#~ msgid "%s: option `%s' is ambiguous\n"
-#~ msgstr "%s: η επιλογή `%s' είναι ασαφής\n"
-
-#~ msgid "%s: option `--%s' doesn't allow an argument\n"
-#~ msgstr "%s: η επιλογή `--%s' δεν επιτρέπει ορίσματα\n"
-
-#~ msgid "%s: option `%c%s' doesn't allow an argument\n"
-#~ msgstr "%s: η επιλογή `%c%s' δεν επιτρέπει ορίσματα\n"
-
-#~ msgid "%s: option `%s' requires an argument\n"
-#~ msgstr "%s: η επιλογή `%s' απαιτεί ένα όρισμα\n"
-
-#~ msgid "%s: unrecognized option `%c%s'\n"
-#~ msgstr "%s: δεν αναγνωρίζεται η επιλογή `%c%s'\n"
-
-#~ msgid "%s: illegal option -- %c\n"
-#~ msgstr "%s: άκυρη επιλογή -- %c\n"
-
-#~ msgid "%s: invalid option -- %c\n"
-#~ msgstr "%s: λανθασμένη επιλογή -- %c\n"
-
-#~ msgid "%s: option requires an argument -- %c\n"
-#~ msgstr "%s: η επιλογή απαιτεί ένα όρισμα -- %c\n"
-
-#~ msgid "%s: option `-W %s' is ambiguous\n"
-#~ msgstr "%s: η επιλογή `-W %s' είναι ασαφής\n"
-
-#~ msgid "%s: option `-W %s' doesn't allow an argument\n"
-#~ msgstr "%s: η επιλογή `-W \"%s` δεν επιτρέπει ορίσματα\n"
-
-#~ msgid ""
-#~ "Usage: audacious [options] [files] ...\n"
-#~ "\n"
-#~ "Options:\n"
-#~ "--------\n"
-#~ msgstr ""
-#~ "Χρήση: audacious [επιλογές] [αρχεία] ...\n"
-#~ "\n"
-#~ "Επιλογές:\n"
-#~ "--------\n"
-
-#~ msgid "Display this text and exit"
-#~ msgstr "Εμφάνιση αυτού του κειμένου και έξοδος"
-
-#~ msgid "Activate Audacious"
-#~ msgstr "Ενεργοποίηση Audacious"
-
-#~ msgid "Previous session ID"
-#~ msgstr "ID προηγούμενης συνεδρίας"
-
-#~ msgid "Disable error/warning interception (logging)"
-#~ msgstr "Απενεργοποίηση καταγραφής σφαλμάτων"
-
-#~ msgid "Print version number and exit\n"
-#~ msgstr "Εμφάνιση του αριθμού έκδοσης και έξοδος\n"
-
-#~ msgid "Add/Open Files dialog"
-#~ msgstr "Παράθυρο διαλόγου προσθήκης/ανοίγματος αρχείων"
-
-#~ msgid "Close Dialog on Add"
-#~ msgstr "Κλείσιμο του διαλόγου κατά την προσθήκη"
-
-#~ msgid "Deselect All"
-#~ msgstr "Αποεπιλογή όλων"
-
-#, fuzzy
-#~ msgid "Artist Popup"
-#~ msgstr "Καλλιτέχνης"
-
-#, fuzzy
-#~ msgid "<i>Genre</i>"
-#~ msgstr "<b>Γένος:</b>"
-
-#, fuzzy
-#~ msgid "<i>Year</i>"
-#~ msgstr "<b>Έτος:</b>"
-
-#, fuzzy
-#~ msgid "<i>Track Number</i>"
-#~ msgstr "Νούμερο κομματιού"
-
-#, fuzzy
-#~ msgid "<i>Track Length</i>"
-#~ msgstr "Διάρκεια κομματιού:"
-
-#~ msgid "label65"
-#~ msgstr "label65"
-
-#~ msgid "label76"
-#~ msgstr "label76"
-
-#~ msgid "/View Track Details"
-#~ msgstr "/Εμφάνιση πληροφοριών αρχείου"
-
-#~ msgid "/Visualization Mode/Analyzer"
-#~ msgstr "/Οπτικοποίηση/Αναλυτής"
-
-#~ msgid "/Visualization Mode/Scope"
-#~ msgstr "/Οπτικοποίηση/Φάσμα"
-
-#, fuzzy
-#~ msgid "/Visualization Mode/Voiceprint"
-#~ msgstr "/Οπτικοποίηση/Φάσμα"
-
-#~ msgid "/Visualization Mode/Off"
-#~ msgstr "/Οπτικοποίηση/Κλειστή"
-
-#~ msgid "/Analyzer Mode/Normal"
-#~ msgstr "/Αναλυτής/Κανονικός"
-
-#~ msgid "/Analyzer Mode/Lines"
-#~ msgstr "/Αναλυτής/Γραμμές"
-
-#~ msgid "/Analyzer Mode/Bars"
-#~ msgstr "/Αναλυτής/Μπάρες"
-
-#~ msgid "/Analyzer Mode/Peaks"
-#~ msgstr "/Αναλυτής/Κορυφές"
-
-#~ msgid "/Scope Mode/Dot Scope"
-#~ msgstr "/Φάσμα/Τελείες"
-
-#, fuzzy
-#~ msgid "/Voiceprint mode/Normal"
-#~ msgstr "/Αναλυτής/Κανονικός"
-
-#, fuzzy
-#~ msgid "/WindowShade VU Mode/Normal"
-#~ msgstr "Χρήση Κανονικής λειτουργίας επισήμανσης"
-
-#~ msgid "/Analyzer Falloff/Slowest"
-#~ msgstr "/Πτώση αναλυτή/Αργή"
-
-#~ msgid "/Analyzer Falloff/Slow"
-#~ msgstr "/Πτώση αναλυτή/Αργή"
-
-#~ msgid "/Analyzer Falloff/Medium"
-#~ msgstr "/Πτώση αναλυτή/Μέση"
-
-#~ msgid "/Analyzer Falloff/Fast"
-#~ msgstr "/Πτώση αναλυτή/Γρήγορη"
-
-#~ msgid "/Analyzer Falloff/Fastest"
-#~ msgstr "/Πτώση αναλυτή/Γρηγορότερη"
-
-#~ msgid "/Peaks Falloff/Slowest"
-#~ msgstr "/Πτώση κορυφών/Αργή"
-
-#~ msgid "/Peaks Falloff/Slow"
-#~ msgstr "/Πτώση κορυφών/Αργή"
-
-#~ msgid "/Peaks Falloff/Medium"
-#~ msgstr "/Πτώση κορυφών/Μέση"
-
-#~ msgid "/Peaks Falloff/Fast"
-#~ msgstr "/Πτώση κορυφών/Γρήγορη"
-
-#~ msgid "/Peaks Falloff/Fastest"
-#~ msgstr "/Πτώση κορυφών/Γρηγορότερη"
-
-#~ msgid "/-"
-#~ msgstr "/-"
-
-#~ msgid "/Jump to Time"
-#~ msgstr "/Μετάβαση σε χρόνο"
-
-#~ msgid "/About Audacious"
-#~ msgstr "/Περί Audacious"
-
-#~ msgid "/Files..."
-#~ msgstr "/Αρχεία..."
-
-#~ msgid "/Internet location..."
-#~ msgstr "/Τοποθεσία Ιnternet..."
-
-#, fuzzy
-#~ msgid "New List"
-#~ msgstr "/Νέα λίστα"
-
-#, fuzzy
-#~ msgid "Creates a new playlist."
-#~ msgstr "Εμφάνιση διαχωριστικών στη λίστα αναπαραγωγής"
-
-#, fuzzy
-#~ msgid "Displays track information."
-#~ msgstr "Ρύθμιση Flac"
-
-#~ msgid "/Load/Preset"
-#~ msgstr "/Φόρτωση/Προκαθορισμένο"
-
-#~ msgid "/Load/Default"
-#~ msgstr "/Φόρτωση/Προεπιλεγμένο"
-
-#~ msgid "/Load/Zero"
-#~ msgstr "/Φόρτωση/Μηδενικό"
-
-#~ msgid "/Save"
-#~ msgstr "/Αποθήκευση"
-
-#~ msgid "/Save/Preset"
-#~ msgstr "/Αποθήκευση/Preset"
-
-#~ msgid "/Save/Default"
-#~ msgstr "/Αποθήκευση/Προκαθορισμένο"
-
-#~ msgid "/Save/To file"
-#~ msgstr "/Αποθήκευση/Σε αρχείο"
-
-#~ msgid "/Delete/Preset"
-#~ msgstr "/Διαγραφή/Προκαθορισμένο"
-
-#~ msgid "Load auto-preset"
-#~ msgstr "Φόρτωση αυτόματου προκαθορισμένου"
-
-#~ msgid "Load equalizer preset"
-#~ msgstr "Φόρτωση προκαθορισμένου ισοσταθμιστή"
-
-#~ msgid "Delete auto-preset"
-#~ msgstr "Διαγραφή προκαθορισμένου που φορτώνεται αυτόματα"
-
-#~ msgid "/Show Popup Info"
-#~ msgstr "/Εμφάνιση αναδυόμενων πληροφοριών"
-
-#~ msgid "/Remove Duplicates/By Title"
-#~ msgstr "/Αφαίρεση διπλών/Κατά όνομα"
-
-#~ msgid "/Remove Duplicates/By Filename"
-#~ msgstr "/Αφαίρεση διπλών/Κατά όνομα αρχείου"
-
-#~ msgid "/Update View"
-#~ msgstr "/Ανανέωση προβολής"
-
-#~ msgid "/Select All"
-#~ msgstr "/Επιλογή όλων"
-
-#~ msgid "/Sort List/By Date"
-#~ msgstr "/Ταξινόμηση λίστας/Κατά χρονολογία"
-
-#~ msgid "/Sort Selection/By Title"
-#~ msgstr "/Ταξινόμηση επιλογής/Κατά όνομα"
-
-#~ msgid "/Sort Selection/By Artist"
-#~ msgstr "/Ταξινόμηση επιλογής/Κατά καλλιτέχνη"
-
-#~ msgid "/Sort Selection/By Filename"
-#~ msgstr "/Ταξινόμηση επιλογής/Κατά όνομα αρχείου"
-
-#~ msgid "/Sort Selection/By Path + Filename"
-#~ msgstr "/Ταξινόμηση λίστας/Κατά διαδρομή + όνομα αρχείου"
-
-#~ msgid "/Sort Selection/By Date"
-#~ msgstr "/Ταξινόμηση επιλογής/Κατά χρονολογία"
-
-#, fuzzy
-#~ msgid "/Sort Selection/By Track Number"
-#~ msgstr "/Ταξινόμηση επιλογής/Κατά χρονολογία"
-
-#, fuzzy
-#~ msgid "/Sort Selection/By Playlist Entry"
-#~ msgstr "/Ταξινόμηση επιλογής/Κατά καλλιτέχνη"
-
-#, fuzzy
-#~ msgid "<b>_Miscillaneous UI Features</b>"
-#~ msgstr "<b>_Διάφορα</b>"
-
-#~ msgid "AudioCompress "
-#~ msgstr "AudioCompress "
-
-#~ msgid "About AudioCompress"
-#~ msgstr "Περί AudioCompress"
-
-#~ msgid "Ok"
-#~ msgstr "Εντάξει"
-
-#~ msgid "About Extra Stereo Plugin"
-#~ msgstr "Περί του αρθρώματος LIRC για το Audacious"
-
-#~ msgid "Configure Extra Stereo"
-#~ msgstr "Ρύθμιση πρόσθετου στέρεο"
-
-#~ msgid "Effect intensity:"
-#~ msgstr "Ένταση εφέ:"
-
-#~ msgid "Cancel"
-#~ msgstr "Άκυρο"
-
-#~ msgid "Apply"
-#~ msgstr "Εφαρμογή"
-
-#~ msgid "About LIRC Audacious Plugin"
-#~ msgstr "Περί του αρθρώματος LIRC για το Audacious"
-
-#~ msgid "LIRC Plugin "
-#~ msgstr "Πρόσθετο LIRC"
-
-#~ msgid ""
-#~ "\n"
-#~ "A simple plugin that lets you control\n"
-#~ "Audacious using the LIRC remote control daemon\n"
-#~ "\n"
-#~ "Adapted for Audacious usage by Tony Vroon <chainsaw at gentoo.org>\n"
-#~ "from the XMMS LIRC plugin by:\n"
-#~ "Carl van Schaik <carl at leg.uct.ac.za>\n"
-#~ "Christoph Bartelmus <xmms at bartelmus.de>\n"
-#~ "You can get LIRC information at:\n"
-#~ "http://fsinfo.cs.uni-sb.de/~columbus/lirc/index.html"
-#~ msgstr ""
-#~ "\n"
-#~ "Ένα απλό πρόσθετο που σας επιτρέπει να ελέγχετε\n"
-#~ "το Audacious, χρησιμοποιώντας το δαίμονα απομακρυσμένης διαχείρισης του "
-#~ "LIRC\n"
-#~ "\n"
-#~ "Προσαρμοσμένο για χρήση με το Audacious από τον Tony Vroon "
-#~ "<chainsaw at gentoo.org>\n"
-#~ "βασισμένο στο πρόσθετο LIRC του XMMS από τους:\n"
-#~ "arl van Schaik <carl at leg.uct.ac.za>\n"
-#~ "Christoph Bartelmus <xmms at bartelmus.de>\n"
-#~ "Μπορείτε να βρείτε πληροφορίες σχετικές με το LIRC στο:\n"
-#~ "http://fsinfo.cs.uni-sb.de/~columbus/lirc/index.html"
-
-#~ msgid "LIRC Plugin"
-#~ msgstr "Πρόσθετο LIRC"
-
-#~ msgid "%s: could not init LIRC support\n"
-#~ msgstr "%s: δεν ήταν δυνατή η αρχικοποίηση της υποστήριξης LIRC\n"
-
-#~ msgid ""
-#~ "%s: could not read LIRC config file\n"
-#~ "%s: please read the documentation of LIRC\n"
-#~ "%s: how to create a proper config file\n"
-#~ msgstr ""
-#~ "%s: δεν ήταν δυνατή η ανάγνωση του αρχείου ρυθμίσεων LIRC\n"
-#~ "%s: παρακαλούμε ανατρέξτε στην τεκμηρίωση του LIRC\n"
-#~ "%s: για το πως να δημιουργήσετε ένα έγκυρο αρχείο ρυθμίσεων\n"
-
-#~ msgid "%s: unknown command \"%s\"\n"
-#~ msgstr "%s: άγνωστη εντολή \"%s\"\n"
-
-#~ msgid "%s: disconnected from LIRC\n"
-#~ msgstr "%s: αποσυνδέθηκε από το LIRC\n"
-
-#~ msgid "Username:"
-#~ msgstr "Όνομα χρήστη:"
-
-#~ msgid "Password:"
-#~ msgstr "Κωδικός πρόσβασης:"
-
-#, fuzzy
-#~ msgid "About Scrobbler Plugin"
-#~ msgstr "Περί του Αρθρώματος ESounD"
-
-#, fuzzy
-#~ msgid "Scrobbler Plugin"
-#~ msgstr "Διαχειριστής πρόσθετων λειτουργιών"
-
-#~ msgid "Song Change %s"
-#~ msgstr "Αλλαγή τραγουδιού %s"
-
-#~ msgid "Commands"
-#~ msgstr "Εντολές"
-
-#~ msgid "Command to run when Audacious starts a new song."
-#~ msgstr "Εντολή προς εκτέλεση όταν το Audacious ξεκινά ένα νέο τραγούδι."
-
-#~ msgid "Command:"
-#~ msgstr "Εντολή:"
-
-#~ msgid "Command to run toward the end of a song."
-#~ msgstr "Εντολή προς εκτέλεση κατά το τέλος ενός τραγουδιού."
-
-#~ msgid "Command to run when Audacious reaches the end of the playlist."
-#~ msgstr ""
-#~ "Εντολή προς εκτέλεση όταν το Audacious φτάσει στο τέλος της λίστας "
-#~ "αναπαραγωγής."
-
-#~ msgid ""
-#~ "You can use the following format strings which\n"
-#~ "will be substituted before calling the command\n"
-#~ "(not all are useful for the end-of-playlist command).\n"
-#~ "\n"
-#~ "%%F: Frequency (in hertz)\n"
-#~ "%%c: Number of channels\n"
-#~ "%%f: filename (full path)\n"
-#~ "%%l: length (in milliseconds)\n"
-#~ "%%n or %%s: Song name\n"
-#~ "%%r: Rate (in bits per second)\n"
-#~ "%%t: Playlist position (%%02d)\n"
-#~ "%%p: Currently playing (1 or 0)"
-#~ msgstr ""
-#~ "Μπορείτε να χρησιμοποιήσετε τα ακόλουθα στοιχεία\n"
-#~ "μορφοποίησης που θα αντικατασταθούν κατά την\n"
-#~ "εκτέλεση της εντολής (δεν είναι όλα χρήσιμα για μια\n"
-#~ "εντολή τέλους λίστας αναπαραγωγής).\n"
-#~ "\n"
-#~ "%%F: Συχνότητα (σε hertz)\n"
-#~ "%%c: Αριθμός καναλιών\n"
-#~ "%%f: όνομα αρχείου (πλήρης διαδρομή)\n"
-#~ "%%l: μήκος (σε milliseconds)\n"
-#~ "%%n ή %%s: Τίτλος τραγουδιού\n"
-#~ "%%r: Ρυθμός διεγματοληψίας (bps)\n"
-#~ "%%t: Θέση λίστας αναπαραγωγής (%%02d)\n"
-#~ "%%p: Αν γίνεται αναπαραγωγή (1 or 0)"
-
-#~ msgid "About "
-#~ msgstr "Περί"
-
-#~ msgid "AMIDI-Plug - warning"
-#~ msgstr "AMIDI-Plug - προειδοποίηση"
-
-#~ msgid "AMIDI-Plug - select file"
-#~ msgstr "AMIDI-Plug - επιλογή αρχείου"
-
-#~ msgid "AMIDI-Plug - configuration"
-#~ msgstr "AMIDI-Plug - ρύθμιση"
-
-#~ msgid "AMIDI-Plug message"
-#~ msgstr "Μήνυμα AMIDI-Plug"
-
-#~ msgid "Please stop the player before changing AMIDI-Plug settings."
-#~ msgstr ""
-#~ "Παρακαλώ σταματήστε την αναπαραγωγή πριν αλλάξετε τις ρυθμίσεις του AMIDI-"
-#~ "Plug."
-
-#~ msgid "Name:"
-#~ msgstr "Όνομα:"
-
-#~ msgid " MIDI Info "
-#~ msgstr "Πληροφορίες MIDI"
-
-#~ msgid "Length (msec):"
-#~ msgstr "Διάρκεια (msec):"
-
-#~ msgid "Num of Tracks:"
-#~ msgstr "Αριθμός κομματιών:"
-
-#~ msgid "variable"
-#~ msgstr "μεταβλητό"
-
-#~ msgid "BPM:"
-#~ msgstr "BPM:"
-
-#~ msgid "BPM (wavg):"
-#~ msgstr "BPM (wavg):"
-
-#, fuzzy
-#~ msgid "Time Div:"
-#~ msgstr "DIV container"
-
-#~ msgid "CD Audio Plugin"
-#~ msgstr "Πρόσθετο CD ήχου"
-
-#~ msgid "CD Audio Track %02u"
-#~ msgstr "Κομμάτι CD ήχου%02u"
-
-#~ msgid "(unknown)"
-#~ msgstr "(άγνωστο)"
-
-#~ msgid "Drive %d"
-#~ msgstr "Συσκευή %d"
-
-#~ msgid ""
-#~ "Failed to open device %s\n"
-#~ "Error: %s\n"
-#~ "\n"
-#~ msgstr ""
-#~ "Δεν ήταν δυνατό το άνοιγμα της συσκευής %s\n"
-#~ "Σφάλμα: %s\n"
-#~ "\n"
-
-#~ msgid ""
-#~ "Failed to read \"Table of Contents\"\n"
-#~ "Maybe no disc in the drive?\n"
-#~ "\n"
-#~ msgstr ""
-#~ "Δεν ήταν δυνατή η ανάγνωση του \"Πίνακα Περιεχομένων\"\n"
-#~ "Μήπως δεν υπάρχει δίσκος στη συσκευή;\n"
-#~ "\n"
-
-#~ msgid ""
-#~ "Device %s OK.\n"
-#~ "Disc has %d tracks"
-#~ msgstr ""
-#~ "Συσκευή %s OK.\n"
-#~ "Ο δίσκος έχει %d κομμάτια"
-
-#~ msgid " (%d data tracks)"
-#~ msgstr " (%d κομμάτια δεδομένων)"
-
-#~ msgid ""
-#~ "\n"
-#~ "Total length: %d:%d\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Συνολική διάρκεια: %d:%d\n"
-
-#~ msgid ""
-#~ "Digital audio extraction not tested as the disc has no audio tracks\n"
-#~ msgstr ""
-#~ "Η ψηφιακή εξαγωγή ήχου δε δοκιμάστηκε, καθώς ο δίσκος δεν έχει κομμάτια "
-#~ "ήχου\n"
-
-#~ msgid ""
-#~ "Digital audio extraction test: OK\n"
-#~ "\n"
-#~ msgstr ""
-#~ "Δοκιμή ψηφιακής εξαγωγής ήχου: εντάξει\n"
-#~ "\n"
-
-#~ msgid ""
-#~ "Digital audio extraction test failed: %s\n"
-#~ "\n"
-#~ msgstr ""
-#~ "Δοκιμή ψηφιακής εξαγωγής ήχου απέτυχε: %s\n"
-#~ "\n"
-
-#~ msgid ""
-#~ "Failed to check directory %s\n"
-#~ "Error: %s"
-#~ msgstr ""
-#~ "Δεν ήταν δυνατός ο έλεγχος του καταλόγου %s\n"
-#~ "Σφάλμα: %s"
-
-#~ msgid "Error: %s exist, but is not a directory"
-#~ msgstr "Σφάλμα: Το %s υπάρχει αλλά δεν είναι κατάλογος"
-
-#~ msgid "Directory %s OK."
-#~ msgstr "Κατάλογος %s εντάξει"
-
-#~ msgid "Device:"
-#~ msgstr "Συσκευή:"
-
-#~ msgid "_Device:"
-#~ msgstr "_Συσκευή:"
-
-#~ msgid "Dir_ectory:"
-#~ msgstr "Κατ_άλογος:"
-
-#~ msgid "Play mode:"
-#~ msgstr "Μέθοδος αναπαραγωγής:"
-
-#~ msgid "Analog"
-#~ msgstr "Αναλογικός"
-
-#~ msgid "Digital audio extraction"
-#~ msgstr "Ψηφιακή αναπαραγωγή ήχου"
-
-#~ msgid "No mixer"
-#~ msgstr "Δεν υπάρχει μείκτης"
-
-#~ msgid "CDROM drive"
-#~ msgstr "Συσκευή CDROM"
-
-#~ msgid "OSS mixer"
-#~ msgstr "Mείκτης OSS"
-
-#~ msgid "Check drive..."
-#~ msgstr "Έλεγχος συσκευής..."
-
-#~ msgid "Remove drive"
-#~ msgstr "Αφαίρεση συσκευής"
-
-#~ msgid "CD Audio Player Configuration"
-#~ msgstr "Παραμετροποίηση αναπαραγωγέα CD ήχου"
-
-#~ msgid "Add drive"
-#~ msgstr "Προσθήκη συσκευής"
-
-#~ msgid "Device"
-#~ msgstr "Συσκευή"
-
-#~ msgid "CDDB:"
-#~ msgstr "CDDB:"
-
-#~ msgid "Use CDDB"
-#~ msgstr "Χρήση CDDB"
-
-#~ msgid "Get server list"
-#~ msgstr "Ανάκτηση λίστας διακομιστών"
-
-#~ msgid "Show network window"
-#~ msgstr "Εμφάνιση παραθύρου δικτύου"
-
-#~ msgid "CDDB server:"
-#~ msgstr "Διακομιστής CDDB:"
-
-#~ msgid "CD Index:"
-#~ msgstr "CD Index:"
-
-#~ msgid "Use CD Index"
-#~ msgstr "Χρήση CD Index"
-
-#~ msgid "CD Index server:"
-#~ msgstr "Διακομιστής CD Index:"
-
-#~ msgid "Override generic titles"
-#~ msgstr "Παράκαμψη γενικών τίτλων"
-
-#~ msgid "Name format:"
-#~ msgstr "Μορφή ονόματος αρχείου:"
-
-#~ msgid "CD Info"
-#~ msgstr "Πληροφορίες CD"
-
-#~ msgid "About the Console Music Decoder"
-#~ msgstr "Περί της κονσόλας αποκωδικοποίησης ήχου"
-
-#~ msgid ""
-#~ "Console music decoder engine based on Game_Music_Emu 0.3.0.\n"
-#~ "Audacious implementation by: William Pitcock <nenolod at nenolod.net>, \n"
-#~ "        Shay Green <hotpop.com at blargg>"
-#~ msgstr ""
-#~ "Κονσόλα αποκωδικοποίησης του ήχου βασισμένη στο Game_Music_Emu 0.3.0.\n"
-#~ "Υλοποίηση για το Audacious από τον: William Pitcock <nenolod at nenolod."
-#~ "net>, \n"
-#~ "        Shay Green <hotpop.com at blargg>"
-
-#~ msgid "SPC, VGM, NSF/NSFE, GBS, and GYM module decoder"
-#~ msgstr "Αποκωδικοποιητής SPC, VGM, NSF/NSFE, GBS, και GYM"
-
-#~ msgid "Arabic (IBM-864)"
-#~ msgstr "Αραβική (IBM-864)"
-
-#~ msgid "Arabic (ISO-8859-6)"
-#~ msgstr "Αραβική (ISO-_8859-6)"
-
-#~ msgid "Arabic (Windows-1256)"
-#~ msgstr "Αραβική (Windows-1256)"
-
-#~ msgid "Baltic (ISO-8859-13)"
-#~ msgstr "Βαλτικής (ISO-8859-13)"
-
-#~ msgid "Baltic (ISO-8859-4)"
-#~ msgstr "Βαλτικής (ISO-8859-4)"
-
-#~ msgid "Baltic (Windows-1257)"
-#~ msgstr "Βαλτικής (Windows-1257)"
-
-#~ msgid "Celtic (ISO-8859-14)"
-#~ msgstr "Κελτική (ISO-8859-14)"
-
-#~ msgid "Central European (IBM-852)"
-#~ msgstr "Κεντρικής Ευρώπης (IBM-852)"
-
-#~ msgid "Central European (ISO-8859-2)"
-#~ msgstr "Κεντρικής Ευρώπης (ISO-8859-2)"
-
-#~ msgid "Central European (Windows-1250)"
-#~ msgstr "Κεντρικής Ευρώπης (Windows-1250)"
-
-#~ msgid "Chinese Simplified (GB18030)"
-#~ msgstr "Απλοποιημένη Κινέζικη (GB18030)"
-
-#~ msgid "Chinese Simplified (GB2312)"
-#~ msgstr "Απλοποιημένη Κινέζικη (GB2312)"
-
-#~ msgid "Chinese Traditional (Big5)"
-#~ msgstr "Παραδοσιακή Κινέζικη (Big5)"
-
-#~ msgid "Chinese Traditional (Big5-HKSCS)"
-#~ msgstr "Παραδοσιακή Κινέζικη (Big5-HKSCS)"
-
-#~ msgid "Cyrillic (IBM-855)"
-#~ msgstr "Κυριλλική (IBM-855)"
-
-#~ msgid "Cyrillic (ISO-8859-5)"
-#~ msgstr "Κυριλλική (ISO-8859-5)"
-
-#~ msgid "Cyrillic (ISO-IR-111)"
-#~ msgstr "Κυριλλική (ISO-IR-111)"
-
-#~ msgid "Cyrillic (KOI8-R)"
-#~ msgstr "Κυριλλική (KOI8-R)"
-
-#~ msgid "Cyrillic (Windows-1251)"
-#~ msgstr "Κυριλλική (Windows-1251)"
-
-#~ msgid "Cyrillic/Russian (CP-866)"
-#~ msgstr "Κυριλλική/Ρώσικη (CP-866)"
-
-#~ msgid "Cyrillic/Ukrainian (KOI8-U)"
-#~ msgstr "Κυριλλική/Ουκρανική (KOI8-U)"
-
-#~ msgid "English (US-ASCII)"
-#~ msgstr "Αγγλική (US-ASCII)"
-
-#~ msgid "Greek (ISO-8859-7)"
-#~ msgstr "Ελληνική (ISO-8859-7)"
-
-#~ msgid "Greek (Windows-1253)"
-#~ msgstr "Ελληνική (Windows-1253)"
-
-#~ msgid "Hebrew (IBM-862)"
-#~ msgstr "Εβραϊκή (IBM-862)"
-
-#~ msgid "Hebrew (Windows-1255)"
-#~ msgstr "Εβραϊκή (Windows-1255)"
-
-#~ msgid "Japanese (EUC-JP)"
-#~ msgstr "Ιαπωνέζικη (EUC-JP)"
-
-#~ msgid "Japanese (ISO-2022-JP)"
-#~ msgstr "Ιαπωνέζικη (ISO-2022-JP)"
-
-#~ msgid "Japanese (Shift_JIS)"
-#~ msgstr "Ιαπωνέζικη (Shift-JIS)"
-
-#~ msgid "Korean (EUC-KR)"
-#~ msgstr "Κορεάτικη (EUC-KR)"
-
-#~ msgid "Nordic (ISO-8859-10)"
-#~ msgstr "Σκανδιναβική (ISO-8859-10)"
-
-#~ msgid "South European (ISO-8859-3)"
-#~ msgstr "Νότιας Ευρώπης (ISO-8859-3)"
-
-#~ msgid "Thai (TIS-620)"
-#~ msgstr "Ταϊλανδέζικη (TIS-_620)"
-
-#~ msgid "Turkish (IBM-857)"
-#~ msgstr "Τουρκική (IBM-857)"
-
-#~ msgid "Turkish (ISO-8859-9)"
-#~ msgstr "Τούρκικη (ISO-8859-9)"
-
-#~ msgid "Turkish (Windows-1254)"
-#~ msgstr "Τουρκική (Windows-1254)"
-
-#~ msgid "Unicode (UTF-7)"
-#~ msgstr "Unicode (UTF-7)"
-
-#~ msgid "Unicode (UTF-8)"
-#~ msgstr "Unicode (UTF-8)"
-
-#~ msgid "Unicode (UTF-16BE)"
-#~ msgstr "Unicode (UTF-16BE)"
-
-#~ msgid "Unicode (UTF-16LE)"
-#~ msgstr "Unicode (UTF-16LE)"
-
-#~ msgid "Unicode (UTF-32BE)"
-#~ msgstr "Unicode (UTF-32BE)"
-
-#~ msgid "Unicode (UTF-32LE)"
-#~ msgstr "Unicode (UTF-32bE)"
-
-#~ msgid "Vietnamese (VISCII)"
-#~ msgstr "Βιετναμέζικη (VISCII)"
-
-#~ msgid "Vietnamese (Windows-1258)"
-#~ msgstr "Βιετναμέζικη (Windows-1258)"
-
-#~ msgid "Visual Hebrew (ISO-8859-8)"
-#~ msgstr "Οπτική Εβραϊκή (ISO-8859-8)"
-
-#~ msgid "Western (IBM-850)"
-#~ msgstr "Δυτικής Ευρώπης (IBM-850)"
-
-#~ msgid "Western (ISO-8859-1)"
-#~ msgstr "Δυτικής Ευρώπης (ISO-8859-1)"
-
-#~ msgid "Western (ISO-8859-15)"
-#~ msgstr "Δυτικής Ευρώπης (ISO-8859-15)"
-
-#~ msgid "Western (Windows-1252)"
-#~ msgstr "Δυτικής Ευρώπης (Windows-1252)"
-
-#~ msgid "Arabic (IBM-864-I)"
-#~ msgstr "Αραβική (IBM-864-I)"
-
-#~ msgid "Arabic (ISO-8859-6-E)"
-#~ msgstr "Αραβική (ISO-8859-6-E)"
-
-#~ msgid "Arabic (ISO-8859-6-I)"
-#~ msgstr "Αραβική (ISO-_8859-6-I)"
-
-#~ msgid "Arabic (MacArabic)"
-#~ msgstr "Αραβική (MacArabic)"
-
-#~ msgid "Armenian (ARMSCII-8)"
-#~ msgstr "Αρμενική (ARMSCII-8)"
-
-#~ msgid "Central European (MacCE)"
-#~ msgstr "Κεντρικής Ευρώπης (MacCE)"
-
-#~ msgid "Chinese Simplified (GBK)"
-#~ msgstr "Απλοποιημένη Κινέζικη (GBK)"
-
-#~ msgid "Chinese Simplified (HZ)"
-#~ msgstr "Απλοποιημένη Κινέζικη (HZ)"
-
-#~ msgid "Chinese Traditional (EUC-TW)"
-#~ msgstr "Παραδοσιακή Κινέζικη (EUC-TW)"
-
-#~ msgid "Croatian (MacCroatian)"
-#~ msgstr "Κροατική (MacCroatian)"
-
-#~ msgid "Cyrillic/Ukrainian (MacUkrainian)"
-#~ msgstr "Κυριλλική/Ουκρανική (MacUcrainian)"
-
-#~ msgid "Farsi (MacFarsi)"
-#~ msgstr "Περσική (MacFarsi)"
-
-#~ msgid "Greek (MacGreek)"
-#~ msgstr "Ελληνική (MacGreek)"
-
-#~ msgid "Gujarati (MacGujarati)"
-#~ msgstr "Gujarati (MacGujarati)"
-
-#~ msgid "Gurmukhi (MacGurmukhi)"
-#~ msgstr "Gurmukhi (MacGurmukhi)"
-
-#~ msgid "Hebrew (ISO-8859-8-E)"
-#~ msgstr "Εβραϊκή (ISO-8859-8-E)"
-
-#~ msgid "Hebrew (ISO-8859-8-I)"
-#~ msgstr "Εβραϊκή (ISO-8859-8-I)"
-
-#~ msgid "Hebrew (MacHebrew)"
-#~ msgstr "Εβραϊκή (MacHebrew)"
-
-#~ msgid "Hindi (MacDevanagari)"
-#~ msgstr "Ινδική (MacDevanagari)"
-
-#~ msgid "Icelandic (MacIcelandic)"
-#~ msgstr "Ισλανδική (MacIcelandic)"
-
-#~ msgid "Korean (JOHAB)"
-#~ msgstr "Κορεάτικη (JOHAB)"
-
-#~ msgid "Korean (UHC)"
-#~ msgstr "Κορεάτικη (UHC)"
-
-#~ msgid "Romanian (MacRomanian)"
-#~ msgstr "Ρουμάνικη (MacRomanian)"
-
-#~ msgid "Turkish (MacTurkish)"
-#~ msgstr "Τουρκική (MacTurkish)"
-
-#~ msgid "User Defined"
-#~ msgstr "Καθορισμένη από το Χρήστη"
-
-#~ msgid "Vietnamese (TCVN)"
-#~ msgstr "Βιετναμέζικη (TCVN)"
-
-#~ msgid "Vietnamese (VPS)"
-#~ msgstr "Βιετναμέζικη (VPS)"
-
-#~ msgid "Western (MacRoman)"
-#~ msgstr "Δυτικής Ευρώπης (MacRoman)"
-
-#~ msgid "Select the directory where you want to store the MPEG streams:"
-#~ msgstr "Επιλέξτε τον κατάλογο που θέλετε να αποθηκευτούν τα MPEG streams:"
-
-#~ msgid "Tag Handling"
-#~ msgstr "Χειρισμός ετικετών"
-
-#~ msgid "Convert character set from :"
-#~ msgstr "Μετατροπή συνόλου χαρακτήρων από :"
-
-#~ msgid "to :"
-#~ msgstr "προς :"
-
-#~ msgid "Enable ReplayGain processing"
-#~ msgstr "Ενεργοποίηση επεξεργασίας ReplayGain"
-
-#~ msgid "Resolution"
-#~ msgstr "Ανάλυση"
-
-#~ msgid "Without ReplayGain"
-#~ msgstr "Χωρίς ReplayGain"
-
-#~ msgid "With ReplayGain"
-#~ msgstr "Με ReplayGain"
-
-#, fuzzy
-#~ msgid "Enable dithering"
-#~ msgstr "Ενεργοποίηση Java"
-
-#~ msgid "Noise shaping"
-#~ msgstr "Διαμόρφωση θορύβου"
-
-#~ msgid "high"
-#~ msgstr "υψηλό"
-
-#, fuzzy
-#~ msgid "Dither to"
-#~ msgstr "Προς/Από"
-
-#~ msgid "16 bps"
-#~ msgstr "16 bps"
-
-#~ msgid "24 bps"
-#~ msgstr "24 bps"
-
-#~ msgid "Output"
-#~ msgstr "Έξοδος"
-
-#~ msgid "Buffering:"
-#~ msgstr "Φόρτωμα:"
-
-#~ msgid "Buffer size (kb):"
-#~ msgstr "Μέγεθος buffer (kb):"
-
-#~ msgid "Pre-buffer (percent):"
-#~ msgstr "Προ-φόρτωμα (ποσοστό):"
-
-#~ msgid "Save stream to disk:"
-#~ msgstr "Αποθήκευση του stream στο δίσκο:"
-
-#~ msgid "Save stream to disk"
-#~ msgstr "Αποθήκευση του stream στο δίσκο"
-
-#~ msgid "Path:"
-#~ msgstr "Διαδρομή:"
-
-#~ msgid "Browse"
-#~ msgstr "Περιήγηση"
-
-#~ msgid "SHOUT/Icecast:"
-#~ msgstr "SHOUT/Icecast:"
-
-#~ msgid "Streaming"
-#~ msgstr "Streaming"
-
-#~ msgid "About Flac Plugin"
-#~ msgstr "Περί του αρθρώματος Flac"
-
-#~ msgid ""
-#~ "Flac Plugin by Josh Coalson\n"
-#~ "contributions by\n"
-#~ "......\n"
-#~ "......\n"
-#~ "and\n"
-#~ "Daisuke Shimamura\n"
-#~ "Visit http://flac.sourceforge.net/"
-#~ msgstr ""
-#~ "Πρόσθετο Flac από τον Josh Coalson\n"
-#~ "συνεισφορές από\n"
-#~ "......\n"
-#~ "......\n"
-#~ "και\n"
-#~ "Daisuke Shimamura\n"
-#~ "Επισκεφτείτε το http://flac.sourceforge.net/"
-
-#~ msgid "Alt"
-#~ msgstr "Alt"
-
-#~ msgid "Samplerate: %d Hz"
-#~ msgstr "Ρυθμός δειγματοληψίας: %d Hz"
-
-#~ msgid "Channels: %d"
-#~ msgstr "Κανάλια: %d"
-
-#~ msgid "Bits/Sample: %d"
-#~ msgstr "Bits/Δείγμα: %d"
-
-#~ msgid "Blocksize: %d"
-#~ msgstr "Μέγεθος μπλοκ: %d"
-
-#~ msgid ""
-#~ "Samples: %llu\n"
-#~ "Length: %d:%.2d"
-#~ msgstr ""
-#~ "Δείγματα: %llu\n"
-#~ "Διάρκεια: %d:%.2d"
-
-#~ msgid "Filesize: %ld B"
-#~ msgstr "Μέγεθος αρχείου: %ld B"
-
-#~ msgid ""
-#~ "Avg. bitrate: %.1f kb/s\n"
-#~ "Compression ratio: %.1f%%"
-#~ msgstr ""
-#~ "Μέσο bitrate: %.1f kb/s\n"
-#~ "Βαθμός συμπίεσης: %.1f%%"
-
-#~ msgid "Tag:"
-#~ msgstr "Ετικέτα:"
-
-#~ msgid "Comment:"
-#~ msgstr "Σχόλιο:"
-
-#~ msgid "Date:"
-#~ msgstr "Ημερομηνία:"
-
-#~ msgid "Track number:"
-#~ msgstr "Αριθμός κομματιού:"
-
-#~ msgid "Genre:"
-#~ msgstr "Είδος:"
-
-#~ msgid "Remove Tag"
-#~ msgstr "Διαγραφή ετικέτας"
-
-#~ msgid "FLAC Info:"
-#~ msgstr "Πληροφορίες FLAC:"
-
-#~ msgid "Error"
-#~ msgstr "Σφάλμα"
-
-#~ msgid "LOOKING UP %s"
-#~ msgstr "ΑΝΑΖΗΤΗΣΗ %s"
-
-#~ msgid "Couldn't look up host %s"
-#~ msgstr "Δεν ήταν δυνατή η εύρεση του %s"
-
-#~ msgid "CONNECTING TO %s:%d"
-#~ msgstr "ΣΥΝΔΕΣΗ ΣΤΟ %s:%d"
-
-#~ msgid "Couldn't connect to host %s"
-#~ msgstr "Δεν ήταν δυνατή η σύνδεση στο %s"
-
-#~ msgid "CONNECTED: WAITING FOR REPLY"
-#~ msgstr "ΣΥΝΔΕΘΗΚΕ: ΑΝΑΜΟΝΗ ΓΙΑ ΑΠΑΝΤΗΣΗ"
-
-#~ msgid ""
-#~ "Couldn't connect to host %s\n"
-#~ "Server reported: %s"
-#~ msgstr ""
-#~ "Δεν ήταν δυνατή η σύνδεση στο %s\n"
-#~ "Ο διακομιστής ανέφερε: %s"
-
-#~ msgid "PRE-BUFFERING: %dKB/%dKB"
-#~ msgstr "ΠΡΟ-ΦΟΡΤΩΜΑ: %dKB/%dKB"
-
-#~ msgid "FLAC Audio Plugin"
-#~ msgstr "Πρόσθετο ήχου FLAC"
-
-#~ msgid "ModPlug Configuration"
-#~ msgstr "Ρύθμιση ModPlug"
-
-#~ msgid "16 bit"
-#~ msgstr "16 bit"
-
-#~ msgid "8 bit"
-#~ msgstr "8 bit"
-
-#~ msgid "Mono (downmix)"
-#~ msgstr "Μονοφωνικό (σύνθεση)"
-
-#~ msgid "Resampling"
-#~ msgstr "Επαναδειγματοληψία "
-
-#~ msgid "Nearest (fastest)"
-#~ msgstr "Κοντινότερο (γρηγορότερο)"
-
-#~ msgid "Linear (fast)"
-#~ msgstr "Γραμμικό (γρήγορο)"
-
-#~ msgid "Spline (good quality)"
-#~ msgstr "Spline (καλή ποιότητα)"
-
-#~ msgid "8-tap Fir (extremely high quality)"
-#~ msgstr "8-tap Fir (εξαιρετικά υψηλή ποιότητα)"
-
-#~ msgid "Use Filename as Song Title"
-#~ msgstr "Χρήση ονόματος αρχείου για τίτλο τραγουδιού"
-
-#~ msgid "Fast Playlist Info"
-#~ msgstr "Γρήγορες πληροφορίες λίστας αναπαραγωγής"
-
-#~ msgid "Noise Reduction"
-#~ msgstr "Μείωση θορύβου"
-
-#~ msgid "Play Amiga MOD"
-#~ msgstr "Αναπαραγωγή Amiga MOD"
-
-#~ msgid "Depth"
-#~ msgstr "Βάθος"
-
-#~ msgid "Delay"
-#~ msgstr "Καθυστέρηση"
-
-#~ msgid "Bass Boost"
-#~ msgstr "Ώθηση μπάσων"
-
-#~ msgid "Amount"
-#~ msgstr "Ποσότητα"
-
-#~ msgid "Range"
-#~ msgstr "Εύρος"
-
-#~ msgid ""
-#~ "Note:  Setting the preamp too high may cause\n"
-#~ "clipping / distortion!"
-#~ msgstr ""
-#~ "Σημείωση: Ορίζοντας την προενίσχυση πολύ ψηλά μπορεί\n"
-#~ "να προκληθεί παραμόρφωση / σκρατσαρίσματα!"
-
-#~ msgid "Looping"
-#~ msgstr "Επανάληψη"
-
-#~ msgid "Loop"
-#~ msgstr "Επανάληψη"
-
-#~ msgid "time(s)"
-#~ msgstr "φορά(ές)"
-
-#~ msgid "Loop forever"
-#~ msgstr "Ατέρμων βρόγχος"
-
-#~ msgid "OK"
-#~ msgstr "Εντάξει"
-
-#~ msgid "MOD Info"
-#~ msgstr "Πληροφορίες MOD"
-
-#~ msgid ""
-#~ "Filename:\n"
-#~ "Title:\n"
-#~ "Type:\n"
-#~ "Length:\n"
-#~ "Speed:\n"
-#~ "Tempo:\n"
-#~ "Samples:\n"
-#~ "Instruments:\n"
-#~ "Patterns:\n"
-#~ "Channels:"
-#~ msgstr ""
-#~ "Όνομα αρχείου:\n"
-#~ "Τίτλος:\n"
-#~ "Τύπος:\n"
-#~ "Διάρκεια:\n"
-#~ "Ταχύτητα:\n"
-#~ "Τέμπο:\n"
-#~ "Δείγματα:\n"
-#~ "Όργανα:\n"
-#~ "Μοτίβα:\n"
-#~ "Κανάλια:"
-
-#~ msgid "Samples"
-#~ msgstr "Δείγματα"
-
-#~ msgid "Instruments"
-#~ msgstr "Όργανα"
-
-#~ msgid "Message"
-#~ msgstr "Μήνυμα"
-
-#~ msgid "Modplug Input Plugin for Audacious ver"
-#~ msgstr "Πρόσθετο εισαγωγής modplug για το Audacious εκδοση"
-
-#~ msgid ""
-#~ "\n"
-#~ "Modplug sound engine written by Olivier Lapicque.\n"
-#~ "XMMS interface for Modplug by Kenton Varda.\n"
-#~ "(c)2000 Olivier Lapicque and Kenton Varda.\n"
-#~ "Updates and Maintainance by Konstanty Bialkowski.\n"
-#~ "Ported to BMP by Theofilos Intzoglou."
-#~ msgstr ""
-#~ "\n"
-#~ "Μηχανή ήχου modplug από τον Olivier Lapicque.\n"
-#~ "Διεπαφή modplug για το XMMS από τον Kenton Varda.\n"
-#~ "(c)2000 Olivier Lapicque και Kenton Varda.\n"
-#~ "Ενημερώσεις και συντήρηση από τον Konstanty Bialkowski.\n"
-#~ "Μεταφέρθηκε στο BMP από τον Θεόφιλο Ιντζόγλου."
-
-#~ msgid "About Modplug"
-#~ msgstr "Περί του αρθρώματος ModPlug"
-
-#~ msgid "Couldn't find pixmap file: %s"
-#~ msgstr "Το αρχείο εικόνας δε βρέθηκε : %s"
-
-#~ msgid "MPEG Audio Plugin Configuration"
-#~ msgstr "Παραμετροποίηση προσθέτου MPEG ήχου"
-
-#~ msgid "Resolution:"
-#~ msgstr "Ανάλυση:"
-
-#~ msgid "Channels:"
-#~ msgstr "Κανάλια:"
-
-#~ msgid "Stereo (if available)"
-#~ msgstr "Stereo (αν είναι διαθέσιμο)"
-
-#~ msgid "Down sample:"
-#~ msgstr "Μείωση δειγματοληψίας:"
-
-#~ msgid "1:1 (44 kHz)"
-#~ msgstr "1:1 (44 kHz)"
-
-#~ msgid "1:2 (22 kHz)"
-#~ msgstr "1:2 (22 kHz)"
-
-#~ msgid "1:4 (11 kHz)"
-#~ msgstr "1:4 (11 kHz)"
-
-#~ msgid "Decoder"
-#~ msgstr "Αποκωδικοποιητής"
-
-#~ msgid "ID3 Tags:"
-#~ msgstr "Ετικέτες ID3:"
-
-#~ msgid "ID3 format:"
-#~ msgstr "Μορφή ID3:"
-
-#~ msgid "Joint stereo"
-#~ msgstr "Joint stereo"
-
-#~ msgid "Dual channel"
-#~ msgstr "Διπλό κανάλι"
-
-#~ msgid "Single channel"
-#~ msgstr "Μονό κανάλι"
-
-#~ msgid "%d KBit/s"
-#~ msgstr "%d KBit/s"
-
-#~ msgid "%ld Hz"
-#~ msgstr "%ld Hz"
-
-#~ msgid "50/15 ms"
-#~ msgstr "50/15 ms"
-
-#~ msgid "CCIT J.17"
-#~ msgstr "CCIT J.17"
-
-#~ msgid "No"
-#~ msgstr "Όχι"
-
-#~ msgid "Yes"
-#~ msgstr "Ναι"
-
-#~ msgid " MPEG Info "
-#~ msgstr "Πληροφορίες MPEG "
-
-#~ msgid "MPEG Level:"
-#~ msgstr "Τύπος MPEG:"
-
-#~ msgid "Bit rate:"
-#~ msgstr "Bit rate:"
-
-#~ msgid "Sample rate:"
-#~ msgstr "Ρυθμός δειγματοληψίας:"
-
-#~ msgid "File size:"
-#~ msgstr "Μέγεθος αρχείου:"
-
-#~ msgid "Mode:"
-#~ msgstr "Κατάσταση: "
-
-#~ msgid "Error Protection:"
-#~ msgstr "Προστασία σφαλμάτων:"
-
-#~ msgid "Copyright:"
-#~ msgstr "Copyright:"
-
-#~ msgid "Original:"
-#~ msgstr "Αυθεντικό:"
-
-#~ msgid "Emphasis:"
-#~ msgstr "Έμφαση:"
-
-#~ msgid " ID3 Tag "
-#~ msgstr "Ετικέτα ID3"
-
-#~ msgid "Year:"
-#~ msgstr "Έτος:"
-
-#~ msgid "N/A"
-#~ msgstr "N/A"
-
-#~ msgid "%s"
-#~ msgstr "%s"
-
-#~ msgid "%lu Bytes"
-#~ msgstr "%lu Bytes"
-
-#~ msgid "Couldn't connect to host %s:%d"
-#~ msgstr "Δεν ήταν δυνατή η σύνδεση στον υπολογιστή %s:%d"
-
-#~ msgid "PRE-BUFFERING: %zuKB/%zuKB"
-#~ msgstr "ΠΡΟ-ΦΟΡΤΩΜΑ: %zuKB/%zuKB"
-
-#~ msgid "About MPEG Audio Plugin"
-#~ msgstr "Περί του πρόσθετου ήχου MPEG"
-
-#~ msgid ""
-#~ "Audacious decoding engine by William Pitcock <nenolod at nenolod.net>, "
-#~ "derived from:\n"
-#~ "mpg123 decoding engine by Michael Hipp <mh at mpg123.de>\n"
-#~ "Derived partially from mpg123 0.59s.mc3 as well.\n"
-#~ "Based on the original XMMS plugin."
-#~ msgstr ""
-#~ "Μηχανή αποκωδικοποίησης Audacious του William Pitcock <nenolod at nenolod."
-#~ "net>, που προέκυψε από:\n"
-#~ "τη μηχανή αποκωδικοποίησης mpg123 του Michael Hipp <mh at mpg123.de>\n"
-#~ "Προέκυψε μερικώς από το mpg123 0.59s.mc3 επίσης.\n"
-#~ "Βασισμένο στο αρχικό πρόσθετο του XMMS."
-
-#~ msgid "MPEG Audio Plugin"
-#~ msgstr "Πρόσθετο ήχου MPEG"
-
-#~ msgid "TiMidity Configuration"
-#~ msgstr "Ρύθμιση TiMidity"
-
-#~ msgid "22000 Hz"
-#~ msgstr "22000 Hz"
-
-#~ msgid "44100 Hz"
-#~ msgstr "44100 Hz"
-
-#~ msgid "Sample Width"
-#~ msgstr "Εύρος δείγματος"
-
-#~ msgid "TiMidity Configuration File"
-#~ msgstr "Αρχείο ρυθμίσεων TiMidity"
-
-#~ msgid "TiMidity Player %s"
-#~ msgstr "Αναπαραγωγέας TiMidity %s"
-
-#~ msgid ""
-#~ "TiMidity Plugin\n"
-#~ "http://libtimidity.sourceforge.net\n"
-#~ "by Konstantin Korikov"
-#~ msgstr ""
-#~ "ΠρόσθετοTiMidity\n"
-#~ "http://libtimidity.sourceforge.net\n"
-#~ "από τον Konstantin Korikov"
-
-#~ msgid "TiMidity Plugin %s"
-#~ msgstr "Πρόσθετο TiMidity %s"
-
-#~ msgid "Couldn't load MIDI file"
-#~ msgstr "Δεν ήταν δυνατή η φόρτωση του αρχείου MIDI"
-
-#~ msgid "About Tone Generator"
-#~ msgstr "Περί της γεννήτριας τόνων"
-
-#~ msgid "Tone Generator: "
-#~ msgstr "Γεννήτρια τόνων: "
-
-#~ msgid "Tone Generator %s"
-#~ msgstr "Γεννήτρια τόνων %s"
-
-#~ msgid "Select the directory where you want to store the Ogg Vorbis streams:"
-#~ msgstr ""
-#~ "Επιλέξτε τον κατάλογο που θέλετε να αποθηκεύετε τα Ogg Vorbis streams:"
-
-#~ msgid "Ogg Vorbis Audio Plugin Configuration"
-#~ msgstr "Παραμετροποίηση πρόσθετου ήχου Ogg Vorbis"
-
-#~ msgid "Ogg Vorbis Tags:"
-#~ msgstr "Ετικέτες Ogg Vorbis:"
-
-#~ msgid "ReplayGain Settings:"
-#~ msgstr "Ρυθμίσεις ReplayGain:"
-
-#~ msgid "ReplayGain Type:"
-#~ msgstr "Τύπος ReplayGain:"
-
-#~ msgid ""
-#~ "An error occured:\n"
-#~ "%s"
-#~ msgstr ""
-#~ "Προέκυψε σφάλμα:\n"
-#~ "%s"
-
-#~ msgid "Error!"
-#~ msgstr "Σφάλμα!"
-
-#~ msgid "Failed to modify tag (open)"
-#~ msgstr "Αποτυχία τροποποίησης ετικέτας (άνοιγμα)"
-
-#~ msgid "Failed to modify tag (close)"
-#~ msgstr "Αποτυχία τροποποίησης ετικέτας (κλείσιμο)"
-
-#~ msgid "Failed to modify tag"
-#~ msgstr "Αποτυχία τροποποίησης ετικέτας"
-
-#~ msgid " Ogg Vorbis Tag "
-#~ msgstr " Ετικέτα Ogg Vorbis "
-
-#~ msgid "Description:"
-#~ msgstr "Περιγραφή:"
-
-#~ msgid "Version:"
-#~ msgstr "Έκδοση:"
-
-#~ msgid "ISRC number:"
-#~ msgstr "Νούμερο ISRC:"
-
-#~ msgid "Organization:"
-#~ msgstr "Οργανισμός:"
-
-#~ msgid " Ogg Vorbis ReplayGain "
-#~ msgstr "Ogg Vorbis ReplayGain "
-
-#~ msgid " Ogg Vorbis Info "
-#~ msgstr "Πληροφορίες Ogg Vorbis "
-
-#~ msgid "Length:"
-#~ msgstr "Διάρκεια:"
-
-#~ msgid "%d KBit/s (nominal)"
-#~ msgstr "%d KBit/s (nominal)"
-
-#~ msgid "%d Hz"
-#~ msgstr "%d Hz"
-
-#~ msgid "%d"
-#~ msgstr "%d"
-
-#~ msgid "%d:%.2d"
-#~ msgstr "%d:%.2d"
-
-#~ msgid "%d Bytes"
-#~ msgstr "%d Bytes"
-
-#~ msgid "Ogg Vorbis Audio Plugin"
-#~ msgstr "Πρόσθετο ήχου Ogg Vorbis"
-
-#~ msgid "About Ogg Vorbis Audio Plugin"
-#~ msgstr "Περί του πρόσθετου ήχου Ogg Vorbis"
-
-#~ msgid ""
-#~ "Ogg Vorbis Plugin by the Xiph.org Foundation\n"
-#~ "\n"
-#~ "Original code by\n"
-#~ "Tony Arcieri <bascule at inferno.tusculum.edu>\n"
-#~ "Contributions from\n"
-#~ "Chris Montgomery <monty at xiph.org>\n"
-#~ "Peter Alm <peter at xmms.org>\n"
-#~ "Michael Smith <msmith at labyrinth.edu.au>\n"
-#~ "Jack Moffitt <jack at icecast.org>\n"
-#~ "Jorn Baayen <jorn at nl.linux.org>\n"
-#~ "Haavard Kvaalen <havardk at xmms.org>\n"
-#~ "Gian-Carlo Pascutto <gcp at sjeng.org>\n"
-#~ "\n"
-#~ "Visit the Xiph.org Foundation at http://www.xiph.org/\n"
-#~ msgstr ""
-#~ "Πρόσθετο Ogg Vorbis από το Xiph.org Foundation\n"
-#~ "\n"
-#~ "Αρχικός κώδικας από\n"
-#~ "Tony Arcieri <bascule at inferno.tusculum.edu>\n"
-#~ "Προσθήκες από\n"
-#~ "Chris Montgomery <monty at xiph.org>\n"
-#~ "Peter Alm <peter at xmms.org>\n"
-#~ "Michael Smith <msmith at labyrinth.edu.au>\n"
-#~ "Jack Moffitt <jack at icecast.org>\n"
-#~ "Jorn Baayen <jorn at nl.linux.org>\n"
-#~ "Haavard Kvaalen <havardk at xmms.org>\n"
-#~ "Gian-Carlo Pascutto <gcp at sjeng.org>\n"
-#~ "\n"
-#~ "Επισκεφτείτε το Xiph.org Foundation στο http://www.xiph.org/\n"
-
-#~ msgid "About sndfile WAV support"
-#~ msgstr "Περί υποστήριξης αρχείων WAV"
-
-#, fuzzy
-#~ msgid ""
-#~ "Adapted for Audacious usage by Tony Vroon <chainsaw at gentoo.org>\n"
-#~ "from the xmms_sndfile plugin which is:\n"
-#~ "Copyright (C) 2000, 2002 Erik de Castro Lopo\n"
-#~ "\n"
-#~ "This program is free software ; you can redistribute it and/or modify \n"
-#~ "it under the terms of the GNU General Public License as published by \n"
-#~ "the Free Software Foundation ; either version 2 of the License, or \n"
-#~ "(at your option) any later version. \n"
-#~ " \n"
-#~ "This program is distributed in the hope that it will be useful, \n"
-#~ "but WITHOUT ANY WARRANTY ; without even the implied warranty of \n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  \n"
-#~ "See the GNU General Public License for more details. \n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public \n"
-#~ "License along with this program ; if not, write to \n"
-#~ "the Free Software Foundation, Inc., \n"
-#~ "51 Franklin Street, Fifth Floor, \n"
-#~ "Boston, MA  02110-1301  USA"
-#~ msgstr ""
-#~ "Προσαρμόστηκε για χρήση με το  Audacious από τον Tony Vroon\n"
-#~ "<chainsaw at gentoo.org> από το πρόσθετο xmms_sndfileπου είναι:\n"
-#~ "Copyright (C) 2000, 2002 Erik de Castro Lopo\n"
-#~ "\n"
-#~ "This program is free software ; you can redistribute it and/or modify \n"
-#~ "it under the terms of the GNU General Public License as published by \n"
-#~ "the Free Software Foundation ; either version 2 of the License, or \n"
-#~ "(at your option) any later version. \n"
-#~ " \n"
-#~ "This program is distributed in the hope that it will be useful, \n"
-#~ "but WITHOUT ANY WARRANTY ; without even the implied warranty of \n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  \n"
-#~ "See the GNU General Public License for more details. \n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public \n"
-#~ "License along with this program ; if not, write to \n"
-#~ "the Free Software Foundation, Inc., \n"
-#~ "59 Temple Place, Suite 330, \n"
-#~ "Boston, MA  02111-1307  USA"
-
-#~ msgid "sndfile WAV plugin"
-#~ msgstr "Πρόσθετο αρχείων WAV"
-
-#~ msgid "WAV Audio Plugin"
-#~ msgstr "Πρόσθετο ήχου Wav"
-
-#~ msgid "WMA Player %s"
-#~ msgstr "Αναπαραγωγέας WMA %s"
-
-#~ msgid "About %s"
-#~ msgstr "Περί %s"
-
-#~ msgid " Close "
-#~ msgstr "Κλείσιμο"
-
-#~ msgid "About OSS Driver"
-#~ msgstr "Περί του οδηγού OSS"
-
-#, fuzzy
-#~ msgid ""
-#~ "Audacious OSS Driver\n"
-#~ "\n"
-#~ " This program is free software; you can redistribute it and/or modify\n"
-#~ "it under the terms of the GNU General Public License as published by\n"
-#~ "the Free Software Foundation; either version 2 of the License, or\n"
-#~ "(at your option) any later version.\n"
-#~ "\n"
-#~ "This program is distributed in the hope that it will be useful,\n"
-#~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
-#~ "GNU General Public License for more details.\n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public License\n"
-#~ "along with this program; if not, write to the Free Software\n"
-#~ "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA "
-#~ "02110-1301,\n"
-#~ "USA."
-#~ msgstr ""
-#~ "Οδηγός OSS για το Audacious\n"
-#~ "\n"
-#~ " This program is free software; you can redistribute it and/or modify\n"
-#~ "it under the terms of the GNU General Public License as published by\n"
-#~ "the Free Software Foundation; either version 2 of the License, or\n"
-#~ "(at your option) any later version.\n"
-#~ "\n"
-#~ "This program is distributed in the hope that it will be useful,\n"
-#~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
-#~ "GNU General Public License for more details.\n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public License\n"
-#~ "along with this program; if not, write to the Free Software\n"
-#~ "Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,\n"
-#~ "USA."
-
-#~ msgid "Default (%s)"
-#~ msgstr "Προκαθορισμένο (%s)"
-
-#~ msgid "OSS Driver configuration"
-#~ msgstr "Ρύθμιση οδηγού OSS"
-
-#~ msgid "Audio device:"
-#~ msgstr "Συσκευή ήχου:"
-
-#~ msgid "Use alternate device:"
-#~ msgstr "Χρήση εναλλακτικής συσκευής:"
-
-#~ msgid "Mixer device:"
-#~ msgstr "Συσκευή μείκτη:"
-
-#~ msgid "Devices"
-#~ msgstr "Συσκευές"
-
-#~ msgid "Buffer size (ms):"
-#~ msgstr "Μέγεθος προσωρινής μνήμης (ms):"
-
-#~ msgid "Mixer Settings:"
-#~ msgstr "Παράμετροι μείκτη:"
-
-#~ msgid "Volume controls Master not PCM"
-#~ msgstr "Ο έλεγχος έντασης ελέγχει το κύριο κανάλι, όχι το PCM"
-
-#~ msgid "Mixer"
-#~ msgstr "Μείκτης"
-
-#~ msgid "About ALSA Driver"
-#~ msgstr "Περί του οδηγού ALSA"
-
-#, fuzzy
-#~ msgid ""
-#~ "Audacious ALSA Driver\n"
-#~ "\n"
-#~ " This program is free software; you can redistribute it and/or modify\n"
-#~ "it under the terms of the GNU General Public License as published by\n"
-#~ "the Free Software Foundation; either version 2 of the License, or\n"
-#~ "(at your option) any later version.\n"
-#~ "\n"
-#~ "This program is distributed in the hope that it will be useful,\n"
-#~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
-#~ "GNU General Public License for more details.\n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public License\n"
-#~ "along with this program; if not, write to the Free Software\n"
-#~ "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA "
-#~ "02110-1301,\n"
-#~ "USA.\n"
-#~ "Author: Matthieu Sozeau (mattam at altern.org)"
-#~ msgstr ""
-#~ "Οδηγός ALSA για το Audacious\n"
-#~ "\n"
-#~ " This program is free software; you can redistribute it and/or modify\n"
-#~ "it under the terms of the GNU General Public License as published by\n"
-#~ "the Free Software Foundation; either version 2 of the License, or\n"
-#~ "(at your option) any later version.\n"
-#~ "\n"
-#~ "This program is distributed in the hope that it will be useful,\n"
-#~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
-#~ "GNU General Public License for more details.\n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public License\n"
-#~ "along with this program; if not, write to the Free Software\n"
-#~ "Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,\n"
-#~ "USA.\n"
-#~ "Author: Matthieu Sozeau (mattam at altern.org)"
-
-#~ msgid "ALSA %s output plugin"
-#~ msgstr "ALSA %s άρθρωμα εξόδου"
-
-#~ msgid "Unknown soundcard"
-#~ msgstr "Άγνωστη κάρτα ήχου"
-
-#~ msgid "Default PCM device (%s)"
-#~ msgstr "Προεπιλεγμένη συσκευή PCM (%s)"
-
-#~ msgid "ALSA Driver configuration"
-#~ msgstr "Ρύθμιση οδηγού ALSA"
-
-#~ msgid "Mixer:"
-#~ msgstr "Μείκτης:"
-
-#~ msgid "Mixer card:"
-#~ msgstr "Κάρτα μείκτη:"
-
-#~ msgid "Device settings"
-#~ msgstr "Ρυθμίσεις συσκευής"
-
-#~ msgid "Soundcard:"
-#~ msgstr "Κάρτα ήχου:"
-
-#~ msgid "Buffer time (ms):"
-#~ msgstr "Διάρκεια buffer (ms):"
-
-#~ msgid "Period time (ms):"
-#~ msgstr "Περίοδος (ms):"
-
-#~ msgid "Advanced settings"
-#~ msgstr "Προχωρημένες ρυθμίσεις"
-
-#~ msgid "aRts Driver configuration"
-#~ msgstr "Ρύθμιση οδηγού aRts"
-
-#~ msgid "Disk Writer Plugin %s"
-#~ msgstr "Πρόσθετο εγγραφής στο δίσκο %s"
-
-#~ msgid "Select the directory where you want to store the output files:"
-#~ msgstr "Επιλέξτε τον κατάλογο που θέλετε να αποθηκεύετε τα αρχεία εξόδου:"
-
-#~ msgid "Disk Writer Configuration"
-#~ msgstr "Ρύθμιση πρόσθετου εγγραφής στο δίσκο"
-
-#~ msgid "About ESounD Plugin"
-#~ msgstr "Περί του αρθρώματος ESounD"
-
-#, fuzzy
-#~ msgid ""
-#~ "Audacious ESounD Plugin\n"
-#~ "\n"
-#~ " This program is free software; you can redistribute it and/or modify\n"
-#~ "it under the terms of the GNU General Public License as published by\n"
-#~ "the Free Software Foundation; either version 2 of the License, or\n"
-#~ "(at your option) any later version.\n"
-#~ "\n"
-#~ "This program is distributed in the hope that it will be useful,\n"
-#~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
-#~ "GNU General Public License for more details.\n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public License\n"
-#~ "along with this program; if not, write to the Free Software\n"
-#~ "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA "
-#~ "02110-1301,\n"
-#~ "USA."
-#~ msgstr ""
-#~ "Πρόσθετο ESounD του Audacious\n"
-#~ "\n"
-#~ " This program is free software; you can redistribute it and/or modify\n"
-#~ "it under the terms of the GNU General Public License as published by\n"
-#~ "the Free Software Foundation; either version 2 of the License, or\n"
-#~ "(at your option) any later version.\n"
-#~ "\n"
-#~ "This program is distributed in the hope that it will be useful,\n"
-#~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
-#~ "GNU General Public License for more details.\n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public License\n"
-#~ "along with this program; if not, write to the Free Software\n"
-#~ "Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,\n"
-#~ "USA."
-
-#~ msgid "Host:"
-#~ msgstr "Διακομιστής:"
-
-#~ msgid "Use remote host"
-#~ msgstr "Χρήση απομακρυσμένου διακομιστή"
-
-#~ msgid "Server"
-#~ msgstr "Διακομιστής"
-
-#~ msgid "eSound Output Plugin"
-#~ msgstr "Άρθρωμα εξόδου eSound"
-
-#~ msgid "About JACK Output Plugin 0.15"
-#~ msgstr "Άρθρωμα εξόδου JACK 0.15"
-
-#~ msgid ""
-#~ "XMMS jack Driver 0.15\n"
-#~ "\n"
-#~ "xmms-jack.sf.net\n"
-#~ "Chris Morgan<cmorgan at alum.wpi.edu>\n"
-#~ "\n"
-#~ "Audacious port by\n"
-#~ "Giacomo Lozito from develia.org"
-#~ msgstr ""
-#~ "Οδηγός XMMS jack 0.15\n"
-#~ "\n"
-#~ "xmms-jack.sf.net\n"
-#~ "Chris Morgan<cmorgan at alum.wpi.edu>\n"
-#~ "\n"
-#~ "Audacious port by\n"
-#~ "Giacomo Lozito από develia.org"
-
-#~ msgid "About the Sun Driver"
-#~ msgstr "Περί του οδηγού της Sun"
-
-#~ msgid ""
-#~ "XMMS BSD Sun Driver\n"
-#~ "\n"
-#~ "Copyright (c) 2001 CubeSoft Communications, Inc.\n"
-#~ "Maintainer: <vedge at csoft.org>.\n"
-#~ msgstr ""
-#~ "XMMS BSD Sun Driver\n"
-#~ "\n"
-#~ "Copyright (c) 2001 CubeSoft Communications, Inc.\n"
-#~ "Συντηρητής: <vedge at csoft.org>.\n"
-
-#~ msgid "Audio control device:"
-#~ msgstr "Συσκευή ελέγχου ήχου:"
-
-#~ msgid "Volume controls device:"
-#~ msgstr "Συσκευή ελέγχου έντασης:"
-
-#~ msgid "XMMS uses mixer exclusively."
-#~ msgstr "Το XMMS χρησιμοποιεί αποκλειστικά μείκτη."
-
-#~ msgid "Status"
-#~ msgstr "Κατάσταση"
-
-#~ msgid "Sun driver configuration"
-#~ msgstr "Ρύθμιση οδηγού Sun"
-
-#~ msgid "BSD Sun Driver %s"
-#~ msgstr "Οδηγός BSD Sun %s"
-
-#~ msgid "/Toggle Decorations"
-#~ msgstr "/Εναλλαγή διακοσμήσεων"
-
-#~ msgid "Blur scope"
-#~ msgstr "Blur scope"
-
-#, fuzzy
-#~ msgid "Blur Scope: Color selection"
-#~ msgstr "Ο τίτλος του διαλόγου επιλογής χρώματος"
-
-#~ msgid "** DOUBLESIZE HAS BEEN REMOVED **"
-#~ msgstr "** ΑΦΑΙΡΕΘΗΚΑΝ ΤΑ ΔΙΠΛΟΜΕΓΕΘΗ **"
-
-#~ msgid "<b>_Transparency</b>"
-#~ msgstr "<b>_Διαφάνεια</b>"
-
-#~ msgid "Warning"
-#~ msgstr "Προειδοποίηση"
-
-#~ msgid ""
-#~ "Filename and song title tags should be inside double quotes (\").  Not "
-#~ "doing so might be a security risk.  Continue anyway?"
-#~ msgstr ""
-#~ "Οι ετικέτες για το όνομα αρχείου και τον τίτλο του τραγουδιού πρέπει να "
-#~ "βρίσκονται μεταξύ διπλών εισαγωγικών(\").  Διαφορετικά μπορεί να είναι "
-#~ "επικίνδυνο.  Να συνεχίσω;"
-
-#~ msgid "Song Change Configuration"
-#~ msgstr "Ρύθμιση αλλαγής τραγουδιού"
-
-#~ msgid "Song Metadata"
-#~ msgstr "Πληροφορίες τραγουδιού"
-
-#~ msgid "Port"
-#~ msgstr "Θύρα"
-
-#~ msgid "Client name"
-#~ msgstr "Όνομα πελάτη"
-
-#~ msgid "Port name"
-#~ msgstr "Όνομα θύρας"
-
-#~ msgid "ALSA output ports"
-#~ msgstr "θύρες εξόδου ALSA"
-
-#~ msgid "pre-calculate length of MIDI files in playlist"
-#~ msgstr "προϋπολογισμός μήκους αρχείων MIDI στη λίστα αναπαραγωγής"
-
-#~ msgid "Use proxy"
-#~ msgstr "Χρήση διακομιστή"
-
-#~ msgid ""
-#~ "---\n"
-#~ "---\n"
-#~ "---\n"
-#~ "---\n"
-#~ "---\n"
-#~ "---\n"
-#~ "---\n"
-#~ "---\n"
-#~ "---\n"
-#~ "---"
-#~ msgstr ""
-#~ "---\n"
-#~ "---\n"
-#~ "---\n"
-#~ "---\n"
-#~ "---\n"
-#~ "---\n"
-#~ "---\n"
-#~ "---\n"
-#~ "---\n"
-#~ "---"
-
-#~ msgid "Convert non-UTF8 ID3 tags to UTF8"
-#~ msgstr "Μετατροπή μη-UTF8 ID3 ετικετών σε UTF8"
-
-#~ msgid "ID3 encoding:"
-#~ msgstr "Κωδικοποίηση ID3:"
-
-#, fuzzy
-#~ msgid "Frames:"
-#~ msgstr "Όνομα:"
-
-#~ msgid "Convert non-UTF8 Vorbis tags to UTF8"
-#~ msgstr "Μετατροπή μη-UTF8 ID3 ετικετών Vorbis σε UTF8"
-
-#~ msgid "Vorbis encoding:"
-#~ msgstr "Κωδικοποίηση Vorbis:"
-
-#~ msgid "Info dialog is already opened!\n"
-#~ msgstr "Ο διάλογος πληροφοριών είναι ήδη ανοιχτός!\n"
-
-#~ msgid "%02d:%02d:%02d"
-#~ msgstr "%02d:%02d:%02d"
-
-#~ msgid "<b>WMA Version:</b>"
-#~ msgstr "<b>Έκδοση WMA:</b>"
-
-#~ msgid "<b>Channels:</b>"
-#~ msgstr "<b>Κανάλια:</b>"
-
-#~ msgid "<b>Filesize:</b>"
-#~ msgstr "<b>Μέγεθος αρχείου:</b>"
-
-#~ msgid "WMA Info"
-#~ msgstr "Πληροφορίες WMA"
-
-#~ msgid "<b>Comments:</b>"
-#~ msgstr "<b>Σχόλια:</b>"
-
-#~ msgid "Tags"
-#~ msgstr "Ετικέτες"
-
-#~ msgid "Audacious:"
-#~ msgstr "Audacious:"
-
-#~ msgid "George Averill"
-#~ msgstr "George Averill"
-
-#~ msgid "Giacomo Lozito"
-#~ msgstr "Giacomo Lozito"
-
-#~ msgid "William Pitcock"
-#~ msgstr "William Pitcock"
-
-#~ msgid "Derek Pomery"
-#~ msgstr "Derek Pomery"
-
-#~ msgid "Tony Vroon"
-#~ msgstr "Tony Vroon"
-
-#~ msgid "Stephan Sokolow"
-#~ msgstr "Stephan Sokolow"
-
-#~ msgid "Kiyoshi Aman"
-#~ msgstr "Kiyoshi Aman"
-
-#~ msgid "Shay Green"
-#~ msgstr "Shay Green"
-
-#~ msgid "Mohammed Sameer"
-#~ msgstr "Mohammed Sameer"
-
-#~ msgid "Artem Baguinski"
-#~ msgstr "Artem Baguinski"
-
-#~ msgid "Edward Brocklesby"
-#~ msgstr "Edward Brocklesby"
-
-#~ msgid "Chong Kai Xiong"
-#~ msgstr "Chong Kai Xiong"
-
-#~ msgid "Milosz Derezynski"
-#~ msgstr "Milosz Derezynski"
-
-#~ msgid "David Lau"
-#~ msgstr "David Lau"
-
-#~ msgid "Ole Andre Vadla Ravnaas"
-#~ msgstr "Ole Andre Vadla Ravnaas"
-
-#~ msgid "Michiel Sikkes"
-#~ msgstr "Michiel Sikkes"
-
-#~ msgid "Andrei Badea"
-#~ msgstr "Andrei Badea"
-
-#~ msgid "Peter Behroozi"
-#~ msgstr "Peter Behroozi"
-
-#~ msgid "Bernard Blackham"
-#~ msgstr "Bernard Blackham"
-
-#~ msgid "Oliver Blin"
-#~ msgstr "Oliver Blin"
-
-#~ msgid "Tomas Bzatek"
-#~ msgstr "Tomas Bzatek"
-
-#~ msgid "Liviu Danicel"
-#~ msgstr "Liviu Danicel"
-
-#~ msgid "Jon Dowland"
-#~ msgstr "Jon Dowland"
-
-#~ msgid "Artur Frysiak"
-#~ msgstr "Artur Frysiak"
-
-#~ msgid "Sebastian Kapfer"
-#~ msgstr "Sebastien Kapfer"
-
-#~ msgid "Lukas Koberstein"
-#~ msgstr "Lukas Koberstein"
-
-#~ msgid "Dan Korostelev"
-#~ msgstr "Dan Korostelev"
-
-#~ msgid "Jolan Luff"
-#~ msgstr "Jolan Luff"
-
-#~ msgid "Michael Marineau"
-#~ msgstr "Michael Marineau"
-
-#~ msgid "Tim-Philipp Muller"
-#~ msgstr "Tim-Philipp Muller"
-
-#~ msgid "Julien Portalier"
-#~ msgstr "Julien Portalier"
-
-#~ msgid "Andrew Ruder"
-#~ msgstr "Andrew Ruder"
-
-#~ msgid "Olivier Samyn"
-#~ msgstr "Olivier Samyn"
-
-#~ msgid "Martijn Vernooij"
-#~ msgstr "Martijn Vernooij"
-
-#~ msgid "Philipi Pinto"
-#~ msgstr "Philipi Pinto"
-
-#~ msgid "Thierry Vignaud"
-#~ msgstr "Thierry Vignaud"
-
-#~ msgid "Chao-Hsiung Liao"
-#~ msgstr "Chao-Hsiung Liao"
-
-#~ msgid "Jan Narovec"
-#~ msgstr "Jan Narovec"
-
-#~ msgid "Laurens Buhler"
-#~ msgstr "Laurens Buhler"
-
-#~ msgid "Pauli Virtanen"
-#~ msgstr "Pauli Virtanen"
-
-#~ msgid "David Le Brun"
-#~ msgstr "David Le Brun"
-
-#~ msgid "Matthias Debus"
-#~ msgstr "Matthias Debus"
-
-#~ msgid "George Machitidze"
-#~ msgstr "George Machitidze"
-
-#~ msgid "Kouzinopoulos Haris"
-#~ msgstr "Χάρης Κουζινόπουλος"
-
-#~ msgid "Stavros Giannouris"
-#~ msgstr "Σταύρος Γιαννούρης"
-
-#~ msgid "Dhananjaya Sharma"
-#~ msgstr "Dhananjaya Sharma"
-
-#~ msgid "Laszlo Dvornik"
-#~ msgstr "Laszlo Dvornik"
-
-#~ msgid "Alessio D'Ascanio"
-#~ msgstr "Alessio D'Ascanio"
-
-#~ msgid "Dai"
-#~ msgstr "Dai"
-
-#~ msgid "DongCheon Park"
-#~ msgstr "DongCheon Park"
-
-#~ msgid "Rimas Kudelis"
-#~ msgstr "Rimas Kudelis"
-
-#~ msgid "Arangel Angov"
-#~ msgstr "Arangel Angov"
-
-#~ msgid "Jacek Wolszczak"
-#~ msgstr "Jacek Wolszczak"
-
-#~ msgid "Pavlo Bohmat"
-#~ msgstr "Pavlo Bohmat"
-
-#~ msgid "Vitaly Lipatov"
-#~ msgstr "Vitaly Lipatov"
-
-#~ msgid "Pavel Kanzelsberger"
-#~ msgstr "Pavel Kanzelsberger"
-
-#~ msgid "Francisco Javier F. Serrador"
-#~ msgstr "Francisco Javier F. Serrador"
-
-#~ msgid "Martin Persenius"
-#~ msgstr "Martin Persenius"
-
-#~ msgid "Mykola Lynnyk"
-#~ msgstr "Mykola Lynnyk"
-
-#~ msgid "<span size=\"xx-large\"><b>Plugins</b></span>"
-#~ msgstr "<span size=\"xx-large\"><b>Πρόσθετα</b></span>"
-
-#~ msgid "_Media plugin list:"
-#~ msgstr "Λίστα αρθρωμάτων _μέσων:"
-
-#~ msgid ""
-#~ "The change is now effective in Audacious' configuration database, but "
-#~ "won't take effect for playback until the next song!\n"
-#~ "\n"
-#~ "Optionally, you can stop and restart playback for the change to take "
-#~ "effect."
-#~ msgstr ""
-#~ "Η αλλαγή καταχωρήθηκε στη βάση ρυθμίσεων του Audacious, αλλά δε θα "
-#~ "ενεργοποιηθεί στην αναπαραγωγή μέχρι το επόμενο τραγούδι!\n"
-#~ "\n"
-#~ "Αν θέλετε, μπορείτε να σταματήσετε και να επανεκκινήσετε την αναπαραγωγή, "
-#~ "ώστε να ενεργοποιηθεί η αλλαγή."
-
-#~ msgid "<span size=\"xx-large\"><b>Appearance</b></span>"
-#~ msgstr "<span size=\"xx-large\"><b>Εμφάνιση</b></span>"
-
-#~ msgid "<span size=\"xx-large\"><b>Mouse</b></span>"
-#~ msgstr "<span size=\"xx-large\"><b>Ποντίκι</b></span>"
-
-#~ msgid "<span size=\"xx-large\"><b>Playlist</b></span>"
-#~ msgstr "<span size=\"xx-large\"><b>Λίστα αναπαραγωγής</b></span>"
 
-#~ msgid "<span size=\"xx-large\"><b>Equalizer</b></span>"
-#~ msgstr "<span size=\"xx-large\"><b>Ισοσταθμιστής</b></span>"
diff --git a/po/es.po b/po/es.po
index 016c74e..4c61312 100644
--- a/po/es.po
+++ b/po/es.po
@@ -1,297 +1,299 @@
-# translation of es.po to 
 # Spanish translation for Audacious
-# Copyright (C) 2004, Francisco Javier F. Serrador <serrador at cvs.gnome.org>
+# Copyright (C) Audacious translators
 # This file is distributed under the same license as the Audacious package.
+#
+# Translators:
+# Adrián Ramirez Escalante <buried.prophet at gmail.com>, 2012.
+# Cosme Domínguez Díaz <cosme.ddiaz at gmail.com>, 2010.
 # Francisco Javier F. Serrador <serrador at cvs.gnome.org>, 2004.
 # Gustavo D. Vranjes <gvranjes at nerdshack.com>, 2006.
-# Jeki Sinneo Leinos <jeki72 at gmail.com>, 2008
-# Cosme Domínguez Díaz <cosme.ddiaz at gmail.com>, 2010
-# Jorge Andrés <winninglero at gmail.com>, 2010
-#
+# Jeki Sinneo Leinos <jeki72 at gmail.com>, 2008.
+# Jordi Amenós <>, 2011.
+# Jorge Andrés <winninglero at gmail.com>, 2010.
+#   <xukosky at yahoo.es>, 2011.
 msgid ""
 msgstr ""
 "Project-Id-Version: Audacious\n"
-"Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
-"PO-Revision-Date: 2011-02-14 20:28-0500\n"
-"Last-Translator: Jorge Andrés <winninglero at gmail.com>\n"
-"Language-Team: \n"
-"Language: \n"
+"Report-Msgid-Bugs-To: http://redmine.audacious-media-player.org/\n"
+"POT-Creation-Date: 2012-01-11 08:54-0500\n"
+"PO-Revision-Date: 2012-01-12 04:11+0000\n"
+"Last-Translator: Adrián Ramirez Escalante <buried.prophet at gmail.com>\n"
+"Language-Team: Spanish\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.2\n"
-"X-Poedit-Language: Spanish\n"
-"X-Poedit-Country: SPAIN\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Language: es\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+
+#: src/audacious/adder.c:77
+msgid "Searching ..."
+msgstr "Buscando ..."
+
+#: src/audacious/adder.c:113
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] "%d archivo encontrado"
+msgstr[1] "%d archivos encontrados"
 
-#: src/audacious/chardet.c:37
+#: src/audacious/chardet.c:39
 msgid "  (invalid UTF-8)"
 msgstr "  (UTF-8 inválido)"
 
-#: src/audacious/credits.c:35
+#: src/audacious/credits.c:37
 msgid "Core developers:"
 msgstr "Desarrolladores del núcleo:"
 
-#: src/audacious/credits.c:49
+#: src/audacious/credits.c:51
 msgid "Graphics:"
 msgstr "Gráficos:"
 
-#: src/audacious/credits.c:54
+#: src/audacious/credits.c:56
 msgid "Default skin:"
 msgstr "Piel por defecto:"
 
-#: src/audacious/credits.c:60
+#: src/audacious/credits.c:62
 msgid "Plugin development:"
 msgstr "Desarrollo de complementos:"
 
-#: src/audacious/credits.c:83
+#: src/audacious/credits.c:85
 msgid "Patch authors:"
 msgstr "Autores de parches:"
 
-#: src/audacious/credits.c:126
+#: src/audacious/credits.c:131
 msgid "1.x developers:"
 msgstr "Desarrolladores 1.x:"
 
-#: src/audacious/credits.c:148
+#: src/audacious/credits.c:153
 msgid "BMP Developers:"
-msgstr "Desarrolladores BMP:"
+msgstr "Desarrolladores de BMP:"
 
-#: src/audacious/credits.c:180
+#: src/audacious/credits.c:185
 msgid "Belarusian:"
-msgstr "Belarús:"
+msgstr "Bielorruso:"
 
-#: src/audacious/credits.c:183
+#: src/audacious/credits.c:188
 msgid "Basque:"
 msgstr "Vasco:"
 
-#: src/audacious/credits.c:186
+#: src/audacious/credits.c:191
 msgid "Brazilian Portuguese:"
-msgstr "Portugués (Brasil):"
+msgstr "Portugués de Brasil:"
 
-#: src/audacious/credits.c:190
+#: src/audacious/credits.c:196
 msgid "Breton:"
 msgstr "Bretón:"
 
-#: src/audacious/credits.c:193
+#: src/audacious/credits.c:199
 msgid "Bulgarian:"
 msgstr "Búlgaro:"
 
-#: src/audacious/credits.c:196
+#: src/audacious/credits.c:202
 msgid "Catalan:"
 msgstr "Catalán:"
 
-#: src/audacious/credits.c:199
+#: src/audacious/credits.c:206
 msgid "Chinese:"
 msgstr "Chino:"
 
-#: src/audacious/credits.c:202
+#: src/audacious/credits.c:209
 msgid "Croatian:"
 msgstr "Croato:"
 
-#: src/audacious/credits.c:205
+#: src/audacious/credits.c:212
 msgid "Czech:"
 msgstr "Checo:"
 
-#: src/audacious/credits.c:208
+#: src/audacious/credits.c:215
 msgid "Dutch:"
 msgstr "Holandés:"
 
-#: src/audacious/credits.c:212
+#: src/audacious/credits.c:219
 msgid "Estonian:"
 msgstr "Estonio:"
 
-#: src/audacious/credits.c:215
+#: src/audacious/credits.c:222
 msgid "Finnish:"
-msgstr "Finlandeses:"
+msgstr "Finlandés:"
 
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:227
 msgid "French:"
 msgstr "Francés:"
 
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:233
 msgid "German:"
 msgstr "Alemán:"
 
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:240
 msgid "Georgian:"
 msgstr "Georgiano:"
 
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:243
 msgid "Greek:"
 msgstr "Griego:"
 
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:248
 msgid "Hindi:"
-msgstr "Hindúes:"
+msgstr "Hindú:"
 
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:251
 msgid "Hungarian:"
 msgstr "Húngaro:"
 
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:255
 msgid "Italian:"
 msgstr "Italiano:"
 
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:260
 msgid "Japanese:"
 msgstr "Japonés:"
 
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:263
 msgid "Korean:"
 msgstr "Coreano:"
 
-#: src/audacious/credits.c:256
-#, fuzzy
+#: src/audacious/credits.c:266
 msgid "Latvian:"
-msgstr "Croato:"
+msgstr "Letón:"
 
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:269
 msgid "Lithuanian:"
 msgstr "Lituano:"
 
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:274
 msgid "Macedonian:"
 msgstr "Macedonio:"
 
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:277
+msgid "Mexican Spanish:"
+msgstr "Español mexicano:"
+
+#: src/audacious/credits.c:280
 msgid "Polish:"
 msgstr "Polaco:"
 
-#: src/audacious/credits.c:271
-#, fuzzy
+#: src/audacious/credits.c:287
 msgid "Portuguese:"
 msgstr "Portugués:"
 
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:290
 msgid "Romanian:"
 msgstr "Rumano:"
 
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:294
 msgid "Russian:"
 msgstr "Ruso:"
 
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:298
 msgid "Serbian (Latin):"
 msgstr "Serbio (Latin):"
 
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:301
 msgid "Serbian (Cyrillic):"
 msgstr "Serbio (Cyrillic):"
 
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:305
 msgid "Simplified Chinese:"
 msgstr "Chino simplificado:"
 
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:308
 msgid "Slovak:"
 msgstr "Eslovaco:"
 
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:312
 msgid "Spanish:"
 msgstr "Español:"
 
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:320
 msgid "Swedish:"
 msgstr "Sueco:"
 
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:323
 msgid "Traditional Chinese:"
 msgstr "Chino tradicional:"
 
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:329
 msgid "Turkish:"
 msgstr "Turco:"
 
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:333
 msgid "Ukrainian:"
 msgstr "Ucraniano:"
 
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:338
+msgid "Vietnamese:"
+msgstr "Vietnamita:"
+
+#: src/audacious/credits.c:341
 msgid "Welsh:"
 msgstr "Galés:"
 
-#: src/audacious/drct.c:254
-msgid "Temporary Playlist"
-msgstr "Lista de reproducción temporal"
-
-#: src/audacious/equalizer_preset.c:186
+#: src/audacious/equalizer_preset.c:180
 #, c-format
 msgid "Error importing Winamp EQF file '%s'"
 msgstr "Error importando archivo Winamp EQF  '%s'"
 
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr "Buscando ..."
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] "%d archivo encontrado"
-msgstr[1] "%d archivos encontrados"
-
-#: src/audacious/main.c:247
+#: src/audacious/main.c:243
 msgid "Skip backwards in playlist"
 msgstr "Saltar hacia atrás en la lista de reproducción"
 
-#: src/audacious/main.c:248
+#: src/audacious/main.c:244
 msgid "Start playing current playlist"
 msgstr "Empezar la reproducción de la lista de reproducción actual"
 
-#: src/audacious/main.c:249
+#: src/audacious/main.c:245
 msgid "Pause current song"
 msgstr "Pausar la canción actual"
 
-#: src/audacious/main.c:250
+#: src/audacious/main.c:246
 msgid "Stop current song"
 msgstr "Parar la canción actual"
 
-#: src/audacious/main.c:251
+#: src/audacious/main.c:247
 msgid "Pause if playing, play otherwise"
 msgstr "Pausar si se está reproduciendo, o reproducir"
 
-#: src/audacious/main.c:252
+#: src/audacious/main.c:248
 msgid "Skip forward in playlist"
 msgstr "Saltar hacia adelante en la lista de reproducción"
 
-#: src/audacious/main.c:253
+#: src/audacious/main.c:249
 msgid "Display Jump to File dialog"
-msgstr "Mostrar diálogo de Salto al archivo"
+msgstr "Mostrar diálogo de salto al archivo"
 
-#: src/audacious/main.c:254
+#: src/audacious/main.c:250
 msgid "Add files to the playlist"
 msgstr "Añadir archivos a la lista de reproducción"
 
-#: src/audacious/main.c:255
+#: src/audacious/main.c:251
 msgid "Add new files to a temporary playlist"
 msgstr "Añdir nuevos archvios a una lista de reproducción temporal"
 
-#: src/audacious/main.c:256
+#: src/audacious/main.c:252
 msgid "Display the main window"
 msgstr "Mostrar la ventana principal"
 
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr "Mostrar todas las ventanas de Audacious abiertas"
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:253
 msgid "Show version"
 msgstr "Mostrar versión"
 
-#: src/audacious/main.c:259
+#: src/audacious/main.c:254
 msgid "Print debugging messages"
-msgstr ""
+msgstr "Imprimir mensajes de depuración"
 
-#: src/audacious/main.c:260
+#: src/audacious/main.c:255
+msgid "Headless mode (beta)"
+msgstr "Modo sin cabecera (beta)"
+
+#: src/audacious/main.c:256
 msgid "FILE..."
 msgstr "ARCHIVO..."
 
-#: src/audacious/main.c:272
+#: src/audacious/main.c:268
 msgid "- play multimedia files"
 msgstr "- reproducir archivos multimedia"
 
-#: src/audacious/main.c:282
+#: src/audacious/main.c:278
 #, c-format
 msgid ""
 "%s: %s\n"
@@ -300,939 +302,915 @@ msgstr ""
 "%s: %s\n"
 "Prueba `%s --help' para más información.\n"
 
-#: src/audacious/main.c:395
-msgid ""
-"Audacious seems to be already running but is not responding.  You can start "
-"another instance of the program, but please be warned that this can cause "
-"data loss.  If Audacious is not running, you can safely ignore this "
-"message.  Press OK to start Audacious or Cancel to quit."
-msgstr ""
-
-#: src/audacious/main.c:558
+#: src/audacious/main.c:573
 msgid "Audacious"
 msgstr "Audacious"
 
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:307
 #, c-format
 msgid "No decoder found for %s."
 msgstr "No se encontró decodificador para %s."
 
-#: src/audacious/playback.c:519
-msgid "Buffering ..."
-msgstr "Almacenando ..."
+#: src/audacious/playlist-files.c:53
+#, c-format
+msgid "Cannot %s %s: unsupported file extension."
+msgstr "No se puede %s %s: la extensión del archivo no es válida."
 
-#: src/audacious/playlist-new.c:288
-msgid "Untitled Playlist"
-msgstr "Lista de reproducción sin título"
+#: src/audacious/playlist-files.c:54
+msgid "save"
+msgstr "guardar"
 
-#: src/audacious/ui_preferences.c:88
+#: src/audacious/playlist-files.c:54
+msgid "load"
+msgstr "cargar"
+
+#: src/audacious/playlist-new.c:131
+msgid "New Playlist"
+msgstr "Nueva lista de reproduccion"
+
+#: src/audacious/playlist-new.c:132
+msgid "Now Playing"
+msgstr "Reproduccion actual"
+
+#: src/audacious/playlist-new.c:1630
+msgid ""
+"The playlist cannot be sorted because metadata scanning is still in progress"
+" (or has been disabled)."
+msgstr ""
+"La lista de reproducción no se puede ordenar porque la búsqueda de metadatos"
+" está en progreso (o ha sido deshabilitada)."
+
+#: src/audacious/ui_preferences.c:85
 msgid "Audio"
 msgstr "Audio"
 
-#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
-msgstr "Replay Gain"
-
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:86
 msgid "Network"
 msgstr "Red"
 
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:87 src/audacious/ui_preferences.c:1603
 msgid "Playlist"
 msgstr "Lista de reproducción"
 
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:88
 msgid "Plugins"
 msgstr "Complementos"
 
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:94 src/libaudgui/infopopup.c:199
 msgid "Artist"
 msgstr "Artista"
 
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:95 src/libaudgui/infopopup.c:201
 msgid "Album"
 msgstr "Álbum"
 
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:197
+#: src/libaudgui/ui_playlist_manager.c:279
 msgid "Title"
 msgstr "Título"
 
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:97
 msgid "Tracknumber"
 msgstr "Número de pista"
 
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:203
 msgid "Genre"
 msgstr "Género"
 
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:99
 msgid "Filename"
 msgstr "Nombre de archivo"
 
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:100
 msgid "Filepath"
 msgstr "Ruta hasta el archivo"
 
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:101
 msgid "Date"
 msgstr "Fecha"
 
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:205
 msgid "Year"
 msgstr "Año"
 
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:103
 msgid "Comment"
 msgstr "Comentario"
 
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:104
 msgid "Codec"
 msgstr "Codec (formato)"
 
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:105
 msgid "Quality"
 msgstr "Calidad"
 
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:111
 msgid "None"
-msgstr "ninguno"
+msgstr "Ninguno"
+
+#: src/audacious/ui_preferences.c:112
+msgid "Arabic"
+msgstr "Arábico"
+
+#: src/audacious/ui_preferences.c:113
+msgid "Baltic"
+msgstr "Báltico"
+
+#: src/audacious/ui_preferences.c:114
+msgid "Chinese"
+msgstr "Chino"
 
 #: src/audacious/ui_preferences.c:115
-msgid "Japanese"
-msgstr "japonés"
+msgid "Greek"
+msgstr "Griego"
 
 #: src/audacious/ui_preferences.c:116
-msgid "Taiwanese"
-msgstr "taiwanés"
+msgid "Hebrew"
+msgstr "Hebreo"
 
 #: src/audacious/ui_preferences.c:117
-msgid "Chinese"
-msgstr "chino"
+msgid "Japanese"
+msgstr "Japonés"
 
 #: src/audacious/ui_preferences.c:118
 msgid "Korean"
-msgstr "coreano"
+msgstr "Coreano"
 
 #: src/audacious/ui_preferences.c:119
-msgid "Russian"
-msgstr "ruso"
+msgid "Polish"
+msgstr "Polaco"
 
 #: src/audacious/ui_preferences.c:120
-msgid "Greek"
-msgstr "griego"
+msgid "Russian"
+msgstr "Ruso"
 
 #: src/audacious/ui_preferences.c:121
-msgid "Hebrew"
-msgstr "hebreo"
+msgid "Taiwanese"
+msgstr "Taiwanés"
 
 #: src/audacious/ui_preferences.c:122
 msgid "Turkish"
-msgstr "turco"
+msgstr "Turco"
 
-#: src/audacious/ui_preferences.c:123
-msgid "Arabic"
-msgstr "arábico"
-
-#: src/audacious/ui_preferences.c:124
-msgid "Polish"
-msgstr "Polaco"
-
-#: src/audacious/ui_preferences.c:125
-msgid "Baltic"
-msgstr "Báltico"
-
-#: src/audacious/ui_preferences.c:126
-msgid "Universal"
-msgstr "universal"
-
-#: src/audacious/ui_preferences.c:146
-msgid "<b>Bit Depth</b>"
-msgstr "<b>Profundidad de bits</b>"
+#: src/audacious/ui_preferences.c:144
+msgid "Album mode"
+msgstr "Modo de album"
 
 #: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr "Profundidad de bits de salida:"
+msgid "<b>Output Settings</b>"
+msgstr "<b>Ajustes de salida</b>"
 
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
-"Todas las pistas se convertirán a esta profundidad de bit.\n"
-"Esta debe ser la profundidad máxima de bit soportada\n"
-"por la tarjeta de sonido o el plugin de salida."
-
-#: src/audacious/ui_preferences.c:151
-msgid "<b>Volume Control</b>"
-msgstr "<b>Control de volumen</b>"
+#: src/audacious/ui_preferences.c:149
+msgid "Bit depth:"
+msgstr "Profundidad de bit:"
 
 #: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr "Usar control de volumen por software"
+msgid "Buffer size:"
+msgstr "Tamaño del búfer:"
 
 #: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
-"Usa el control de volumen por software. Esto puede ser útil para situaciones "
-"donde tu sistema de audio no soporte el control de volumen de reproducción."
-
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
-msgstr ""
+msgid "ms"
+msgstr "ms"
 
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
-msgstr "dB"
+#: src/audacious/ui_preferences.c:155
+msgid "Use software volume control (not recommended)"
+msgstr "Usar control de volumen por software (no recomendado)"
 
-#: src/audacious/ui_preferences.c:160
-#, fuzzy
-msgid "Amplify untagged files:"
-msgstr "- reproducir archivos multimedia"
-
-#: src/audacious/ui_preferences.c:164
-#, fuzzy
+#: src/audacious/ui_preferences.c:157
 msgid "<b>Replay Gain</b>"
-msgstr "<b>Modo Replay Gain</b>"
+msgstr "<b>Normalizar volumen</b>"
 
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:158
 msgid "Enable Replay Gain"
-msgstr "Habilitar Replay Gain"
+msgstr "Activar la normalización de volumen"
 
-#: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>Metadatos</b>"
-
-#: src/audacious/ui_preferences.c:168
-msgid "Single track mode"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "Álbum"
+#: src/audacious/ui_preferences.c:161
+msgid "Prevent clipping (recommended)"
+msgstr "Evitar cortes (recomendado)"
 
-#: src/audacious/ui_preferences.c:172
-#, fuzzy
+#: src/audacious/ui_preferences.c:163
 msgid "<b>Adjust Levels</b>"
-msgstr "<b>Sistema de audio</b>"
+msgstr "<b>Ajustar niveles</b>"
 
-#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "<b>Información emergente</b>"
+#: src/audacious/ui_preferences.c:164
+msgid "Amplify all files:"
+msgstr "Amplificar todos los archivos:"
 
-#: src/audacious/ui_preferences.c:176
-#, fuzzy
-msgid "Enable clipping prevention"
-msgstr "Habilitar información de pico de prevención de corte"
+#: src/audacious/ui_preferences.c:166 src/audacious/ui_preferences.c:169
+msgid "dB"
+msgstr "dB"
 
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify untagged files:"
+msgstr "Amplificar archivos sin etiqueta:"
+
+#: src/audacious/ui_preferences.c:172
 msgid "Proxy hostname:"
 msgstr "Servidor proxy:"
 
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:173
 msgid "Proxy port:"
 msgstr "Puerto del proxy:"
 
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:176
 msgid "Proxy username:"
 msgstr "Nombre de usuario del proxy:"
 
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:177
 msgid "Proxy password:"
 msgstr "Contraseña del proxy:"
 
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:181
 msgid "<b>Proxy Configuration</b>"
 msgstr "<b>Configuración del Proxy</b>"
 
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:182
 msgid "Enable proxy usage"
 msgstr "Activar uso del proxy"
 
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:185
 msgid "Use authentication with proxy"
 msgstr "Usar autenticación con el proxy"
 
-#: src/audacious/ui_preferences.c:197
-msgid ""
-"<span size=\"small\">Changing these settings will require a restart of "
-"Audacious.</span>"
-msgstr ""
-"<span size=\"small\">Si cambia alguno de estos valores tendrá que reiniciar "
-"Audacious</span>"
-
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
 msgid "Auto character encoding detector for:"
-msgstr "Detector de codificado automático de caracteres para: "
+msgstr "Detector de codificación de caracteres automático para: "
 
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:198
 msgid "Fallback character encodings:"
-msgstr "Código de caracteres de fallback:"
+msgstr "Codificación de caracteres alternativa:"
 
-#: src/audacious/ui_preferences.c:209
-msgid ""
-"List of character encodings used for fall back conversion of metadata. If "
-"automatic character encoding detector failed or has been disabled, encodings "
-"in this list would be treated as candidates of the encoding of metadata, and "
-"fall back conversion from these encodings to UTF-8 would be attempted."
-msgstr ""
-"Lista de códigos de caracteres usada para la conversión fallback de "
-"metadata. Si el detector automático de caracteres falló o se desactivó, los "
-"códigos de ésta lista serán tratados como candidatos al codificado de "
-"metadata, y luego se intentará la conversión fallback de éstos códigos a "
-"UTF-8."
-
-#: src/audacious/ui_preferences.c:213
-#, fuzzy
+#: src/audacious/ui_preferences.c:202
 msgid "<b>Behavior</b>"
-msgstr "<b>Profundidad de bits</b>"
+msgstr "<b>Comportamiento</b>"
 
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:203
 msgid "Continue playback on startup"
-msgstr "Continuar la reproducción al iniciarse"
+msgstr "Continuar la reproducción al iniciar"
 
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:205
 msgid "Advance when the current song is deleted"
-msgstr ""
+msgstr "Avanzar cuando se borra la canción actual"
 
-#: src/audacious/ui_preferences.c:218
-#, fuzzy
+#: src/audacious/ui_preferences.c:207
 msgid "Clear the playlist when opening files"
-msgstr "Limpiar lista de reproducción cuando se abran nuevos archivos"
+msgstr "Limpiar la lista de reproducción al abrir archivos"
 
-#: src/audacious/ui_preferences.c:220
-#, fuzzy
+#: src/audacious/ui_preferences.c:209
 msgid "Open files in a temporary playlist"
-msgstr "Añdir nuevos archvios a una lista de reproducción temporal"
+msgstr "Abrir archivos en una lista de reproducción temporal"
 
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:211
 msgid "<b>Metadata</b>"
 msgstr "<b>Metadatos</b>"
 
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:212
+msgid "Do not load metadata for songs until played"
+msgstr "No cargar la información de metadatos hasta reproducir"
+
+#: src/audacious/ui_preferences.c:230
+msgid "TITLE"
+msgstr "TÍTULO"
+
+#: src/audacious/ui_preferences.c:231
+msgid "ARTIST - TITLE"
+msgstr "ARTISTA - TÍTULO"
+
+#: src/audacious/ui_preferences.c:232
+msgid "ARTIST - ALBUM - TITLE"
+msgstr "ARTISTA - ÁLBUM - TÍTULO"
+
+#: src/audacious/ui_preferences.c:233
+msgid "ARTIST - ALBUM - TRACK. TITLE"
+msgstr "ARTISTA - ÁLBUM - PISTA. TÍTULO"
+
+#: src/audacious/ui_preferences.c:234
+msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
+msgstr "ARTISTA [ ÁLBUM ] - PISTA. TÍTULO"
+
+#: src/audacious/ui_preferences.c:235
+msgid "ALBUM - TITLE"
+msgstr "ÁLBUM - TÍTULO"
+
+#: src/audacious/ui_preferences.c:556
 msgid "Category"
 msgstr "Categoría"
 
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:780
 msgid "Popup Information Settings"
-msgstr "Configuración de la información emergente"
+msgstr "Ajustes de la información emergente"
 
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:789
 msgid "<b>Cover image retrieve</b>"
-msgstr "<b>Recuperar portada</b>"
+msgstr "<b>Recuperar carátula</b>"
 
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:794
 msgid ""
 "While searching for the album's cover, Audacious looks for certain words in "
 "the filename. You can specify those words in the lists below, separated "
 "using commas."
 msgstr ""
-"Cuando se busca la cubierta del álbum, Audacious busca ciertas palabras en "
+"Cuando se busca la carátula del álbum, Audacious busca ciertas palabras en "
 "el nombre de archivo. Se pueden especificar éstas palabras en la lista de "
 "abajo, separadas usando comas."
 
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:811
 msgid "Exclude:"
 msgstr "Excluir:"
 
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:818
 msgid "Include:"
 msgstr "Incluir:"
 
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:835
 msgid "Recursively search for cover"
-msgstr "Búsqueda recursiva para la tapa"
+msgstr "Busca recursiva para las carátulas"
 
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:845
 msgid "Search depth: "
 msgstr "Profundidad de la búsqueda:"
 
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:859
 msgid "Use per-file cover"
-msgstr "Usar cobertura por-archivo"
+msgstr "Usar carátula por archivo"
 
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:862
 msgid "<b>Miscellaneous</b>"
 msgstr "<b>Varios</b>"
 
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:871
 msgid "Show Progress bar for the current track"
 msgstr "Mostrar barra de progreso para la pista actual"
 
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:881
 msgid "Delay until filepopup comes up: "
 msgstr "Esperar hasta que la ventana emergente aparezca: "
 
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1309
+msgid "Custom"
+msgstr "Personalizada"
+
+#: src/audacious/ui_preferences.c:1352
 msgid "<b>Song Display</b>"
 msgstr "<b>Visualización de las canciones</b>"
 
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1361
 msgid "Show song numbers"
 msgstr "Mostrar números de las canciones"
 
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1372
 msgid "Show leading zeroes (02:00 instead of 2:00)"
-msgstr ""
+msgstr "Mostrar ceros a la izquierda (02:00 en lugar de 2:00)"
 
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1394
 msgid "Show information about titlestring format"
 msgstr "Mostrar información acerca del formato del título"
 
-#: src/audacious/ui_preferences.c:1514
-msgid "TITLE"
-msgstr "TÍTULO"
-
-#: src/audacious/ui_preferences.c:1515
-msgid "ARTIST - TITLE"
-msgstr "ARTISTA - TÍTULO"
-
-#: src/audacious/ui_preferences.c:1516
-msgid "ARTIST - ALBUM - TITLE"
-msgstr "ARTISTA - ÁLBUM - TÍTULO"
-
-#: src/audacious/ui_preferences.c:1517
-msgid "ARTIST - ALBUM - TRACK. TITLE"
-msgstr "ARTISTA - ÁLBUM - PISTA. TÍTULO"
-
-#: src/audacious/ui_preferences.c:1518
-msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
-msgstr "ARTISTA [ ÁLBUM ] - PISTA. TÍTULO"
-
-#: src/audacious/ui_preferences.c:1519
-msgid "ALBUM - TITLE"
-msgstr "ÁLBUM - TÍTULO"
-
-#: src/audacious/ui_preferences.c:1520
-msgid "Custom"
-msgstr "Personalizada"
-
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1410
 msgid "Custom string:"
 msgstr "Cadena personalizada:"
 
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1417
 msgid "Title format:"
 msgstr "Formato del título:"
 
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1428
 msgid "<b>Popup Information</b>"
 msgstr "<b>Información emergente</b>"
 
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1443
 msgid "Show popup information for playlist entries"
 msgstr ""
 "Mostrar información emergente para las entradas de la lista de canciones"
 
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1444
 msgid ""
 "Toggles popup information window for the pointed entry in the playlist. The "
 "window shows title of song, name of album, genre, year of publish, track "
 "number, track length, and artwork."
 msgstr ""
-"Activa la información de la ventana emergente para la entrada señalada en la "
-"lista de canciones. La ventana muestra el título de la canción, nombre del "
+"Activa la información de la ventana emergente para la entrada señalada en la"
+" lista de canciones. La ventana muestra el título de la canción, nombre del "
 "álbum, género, año de publicación, número de pista, duración de la pista y "
 "el trabajo."
 
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1455
 msgid "Edit settings for popup information"
-msgstr "Editar valores para la información emergente"
+msgstr "Editar ajustes para la información emergente"
 
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>Sistema de audio</b>"
+#: src/audacious/ui_preferences.c:1544
+msgid "Output plugin:"
+msgstr "Complemento de salida:"
 
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "Tamaño del búfer:"
-
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
-msgstr "Complemento de salida actual:"
-
-#: src/audacious/ui_preferences.c:1790
-#, fuzzy
+#: src/audacious/ui_preferences.c:1603
 msgid "Transport"
-msgstr "Traductores"
+msgstr "Transporte"
 
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1603
 msgid "Input"
-msgstr ""
+msgstr "Entrada"
 
-#: src/audacious/ui_preferences.c:1791
-#, fuzzy
+#: src/audacious/ui_preferences.c:1604
 msgid "Effect"
-msgstr "<b>Efectos</b>"
+msgstr "Efecto"
 
-#: src/audacious/ui_preferences.c:1791
-#, fuzzy
+#: src/audacious/ui_preferences.c:1604
 msgid "Visualization"
-msgstr "<b>Visualización</b>"
+msgstr "Visualización"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1604
 msgid "General"
-msgstr ""
+msgstr "General"
 
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1644
 msgid "Audacious Preferences"
 msgstr "Preferencias de Audacious"
 
-#: src/audacious/util.c:161
+#: src/audacious/util.c:120
 #, c-format
 msgid "Could not create directory (%s): %s\n"
 msgstr "No se pudo crear el directorio (%s): %s\n"
 
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:273
 msgid "Position not found."
 msgstr "Posición no encontrada."
 
-#: src/audtool/handlers_vitals.c:64
+#: src/audtool/handlers_vitals.c:63
 msgid "No song playing."
 msgstr "No se reproduce ninguna canción."
 
-#: src/libaudcore/tuple.c:685
+#: src/libaudcore/audstrings.c:199
+#, c-format
+msgid "Audio CD, track %s"
+msgstr "CD de música, pista %s"
+
+#: src/libaudcore/tuple.c:536
 msgid "Mono"
-msgstr ""
+msgstr "Mono"
 
-#: src/libaudcore/tuple.c:687
+#: src/libaudcore/tuple.c:538
 msgid "Stereo"
-msgstr ""
+msgstr "Estéreo"
 
-#: src/libaudcore/tuple.c:689
+#: src/libaudcore/tuple.c:540
 #, c-format
-msgid "%d channels"
-msgstr ""
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] "%d canal"
+msgstr[1] "%d canales"
+
+#: src/libaudgui/about.c:52 src/libaudgui/about.c:115
+msgid "Credits"
+msgstr "Créditos:"
+
+#: src/libaudgui/about.c:52
+msgid "Translators"
+msgstr "Traductores"
+
+#: src/libaudgui/about.c:91
+msgid "About Audacious"
+msgstr "Acerca de Audacious"
 
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/confirm.c:76
 #, c-format
 msgid ""
 "Are you sure you want to close %s?  If you do, any changes made since the "
 "playlist was exported will be lost."
 msgstr ""
-"¿Estas seguro de querer cerrar %s? Si lo haces, se perderá cualquier cambio "
+"¿Esta seguro de querer cerrar %s?  Si lo haces, se perderá cualquier cambio "
 "realizado desde que fue exportada la lista de reproducción."
 
-#: src/libaudgui/confirm.c:77
+#: src/libaudgui/confirm.c:89
 msgid "_Don't show this message again"
-msgstr "No mostrar este mensaje de nuevo"
+msgstr "_No mostrar este mensaje de nuevo"
 
-#: src/libaudgui/confirm.c:115
-#, fuzzy
+#: src/libaudgui/confirm.c:126
 msgid "Rename Playlist"
-msgstr "Lista de reproducción"
+msgstr "Renombrar la lista de reproducción"
 
-#: src/libaudgui/effects-menu.c:76
+#: src/libaudgui/effects-menu.c:74
 msgid "settings ..."
-msgstr "opciones ..."
+msgstr "ajustes ..."
 
-#: src/libaudgui/equalizer.c:68
+#: src/libaudgui/equalizer.c:51
 msgid "_Enable"
-msgstr "Activar"
+msgstr "_Activar"
 
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:123
 msgid "31 Hz"
 msgstr "31 Hz"
 
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:123
 msgid "63 Hz"
 msgstr "63 Hz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
 msgid "125 Hz"
 msgstr "125 Hz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
 msgid "250 Hz"
 msgstr "250 Hz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
 msgid "500 Hz"
 msgstr "500 Hz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
 msgid "1 kHz"
 msgstr "1 kHz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
 msgid "2 kHz"
 msgstr "2 kHz"
 
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:125
 msgid "4 kHz"
 msgstr "4 kHz"
 
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:125
 msgid "8 kHz"
 msgstr "8 kHz"
 
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:125
 msgid "16 kHz"
 msgstr "16 kHz"
 
-#: src/libaudgui/equalizer.c:147
+#: src/libaudgui/equalizer.c:130
 msgid "Equalizer"
 msgstr "Ecualizador"
 
-#: src/libaudgui/equalizer.c:163
+#: src/libaudgui/equalizer.c:146
 msgid "Preamp"
 msgstr "Preamplificación"
 
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:207
 msgid "Track Number"
 msgstr "Número de pista"
 
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:209
 msgid "Track Length"
 msgstr "Duración de la pista:"
 
-#: src/libaudgui/infowin.c:77
+#: src/libaudgui/infowin.c:75
 msgid "Acid Jazz"
 msgstr "Jazz ácido"
 
-#: src/libaudgui/infowin.c:78
-#, fuzzy
+#: src/libaudgui/infowin.c:76
 msgid "Acid Rock"
-msgstr "Hard Rock"
+msgstr "Rock ácido"
 
-#: src/libaudgui/infowin.c:79
+#: src/libaudgui/infowin.c:77
 msgid "Ambient"
-msgstr "Ambient"
+msgstr "Ambiental"
 
-#: src/libaudgui/infowin.c:80
-#, fuzzy
+#: src/libaudgui/infowin.c:78
 msgid "Bebop"
-msgstr "Bebob"
+msgstr "Bebop"
 
-#: src/libaudgui/infowin.c:81
+#: src/libaudgui/infowin.c:79
 msgid "Bluegrass"
 msgstr "Bluegrass"
 
-#: src/libaudgui/infowin.c:82
+#: src/libaudgui/infowin.c:80
 msgid "Blues"
 msgstr "Blues"
 
-#: src/libaudgui/infowin.c:83
+#: src/libaudgui/infowin.c:81
 msgid "Chamber Music"
 msgstr "Música de cámara"
 
-#: src/libaudgui/infowin.c:84
+#: src/libaudgui/infowin.c:82
 msgid "Classical"
 msgstr "Clásica"
 
-#: src/libaudgui/infowin.c:85
+#: src/libaudgui/infowin.c:83
 msgid "Country"
 msgstr "Country"
 
-#: src/libaudgui/infowin.c:86
+#: src/libaudgui/infowin.c:84
 msgid "Death Metal"
 msgstr "Death Metal"
 
-#: src/libaudgui/infowin.c:87
+#: src/libaudgui/infowin.c:85
 msgid "Disco"
 msgstr "Disco"
 
-#: src/libaudgui/infowin.c:88
+#: src/libaudgui/infowin.c:86
 msgid "Easy Listening"
 msgstr "Escucha fácil"
 
-#: src/libaudgui/infowin.c:89
+#: src/libaudgui/infowin.c:87
 msgid "Folk"
 msgstr "Folclore"
 
-#: src/libaudgui/infowin.c:90
+#: src/libaudgui/infowin.c:88
 msgid "Funk"
 msgstr "Funk"
 
-#: src/libaudgui/infowin.c:91
+#: src/libaudgui/infowin.c:89
 msgid "Gangsta Rap"
 msgstr "Gangsta Rap"
 
-#: src/libaudgui/infowin.c:92
+#: src/libaudgui/infowin.c:90
 msgid "Gospel"
 msgstr "Gospel"
 
-#: src/libaudgui/infowin.c:93
+#: src/libaudgui/infowin.c:91
 msgid "Grunge"
 msgstr "Grunge"
 
-#: src/libaudgui/infowin.c:94
+#: src/libaudgui/infowin.c:92
 msgid "Hard Rock"
-msgstr "Hard Rock"
+msgstr "Rock duro"
 
-#: src/libaudgui/infowin.c:95
+#: src/libaudgui/infowin.c:93
 msgid "Heavy Metal"
 msgstr "Heavy Metal"
 
-#: src/libaudgui/infowin.c:96
-#, fuzzy
+#: src/libaudgui/infowin.c:94
 msgid "Hip-hop"
-msgstr "Hip-Hop"
+msgstr "Hip-hop"
 
-#: src/libaudgui/infowin.c:97
+#: src/libaudgui/infowin.c:95
 msgid "House"
 msgstr "House"
 
-#: src/libaudgui/infowin.c:98
+#: src/libaudgui/infowin.c:96
 msgid "Jazz"
 msgstr "Jazz"
 
-#: src/libaudgui/infowin.c:99
+#: src/libaudgui/infowin.c:97
 msgid "Jungle"
 msgstr "Jungle"
 
-#: src/libaudgui/infowin.c:100
+#: src/libaudgui/infowin.c:98
 msgid "Metal"
 msgstr "Metal"
 
-#: src/libaudgui/infowin.c:101
+#: src/libaudgui/infowin.c:99
 msgid "New Age"
 msgstr "New age"
 
-#: src/libaudgui/infowin.c:102
+#: src/libaudgui/infowin.c:100
 msgid "New Wave"
 msgstr "New wave"
 
-#: src/libaudgui/infowin.c:103
+#: src/libaudgui/infowin.c:101
 msgid "Noise"
 msgstr "Ruido"
 
-#: src/libaudgui/infowin.c:104
+#: src/libaudgui/infowin.c:102
 msgid "Pop"
 msgstr "Pop"
 
-#: src/libaudgui/infowin.c:105
+#: src/libaudgui/infowin.c:103
 msgid "Punk Rock"
 msgstr "Rock Punk"
 
-#: src/libaudgui/infowin.c:106
+#: src/libaudgui/infowin.c:104
 msgid "Rap"
 msgstr "Rap"
 
-#: src/libaudgui/infowin.c:107
+#: src/libaudgui/infowin.c:105
 msgid "Reggae"
 msgstr "Reggae"
 
-#: src/libaudgui/infowin.c:108
+#: src/libaudgui/infowin.c:106
 msgid "Rock"
 msgstr "Rock"
 
-#: src/libaudgui/infowin.c:109
-#, fuzzy
+#: src/libaudgui/infowin.c:107
 msgid "Rock and Roll"
-msgstr "Rock & Roll"
+msgstr "Rock and Roll"
 
-#: src/libaudgui/infowin.c:110
+#: src/libaudgui/infowin.c:108
 msgid "Rhythm and Blues"
-msgstr ""
+msgstr "Rhythm and Blues"
 
-#: src/libaudgui/infowin.c:111
+#: src/libaudgui/infowin.c:109
 msgid "Ska"
 msgstr "Ska"
 
-#: src/libaudgui/infowin.c:112
+#: src/libaudgui/infowin.c:110
 msgid "Soul"
 msgstr "Soul"
 
-#: src/libaudgui/infowin.c:113
+#: src/libaudgui/infowin.c:111
 msgid "Swing"
 msgstr "Swing"
 
-#: src/libaudgui/infowin.c:114
+#: src/libaudgui/infowin.c:112
 msgid "Techno"
 msgstr "Techno"
 
-#: src/libaudgui/infowin.c:115
-#, fuzzy
+#: src/libaudgui/infowin.c:113
 msgid "Trip-hop"
-msgstr "Trip-Hop"
+msgstr "Trip-hop"
 
-#: src/libaudgui/infowin.c:175 src/libaudgui/infowin.c:361
-#: src/libaudgui/infowin.c:364 src/libaudgui/infowin.c:367
+#: src/libaudgui/infowin.c:177 src/libaudgui/infowin.c:363
+#: src/libaudgui/infowin.c:366 src/libaudgui/infowin.c:369
 msgid "<span size=\"small\">n/a</span>"
 msgstr "<span size=\"small\">n/a</span>"
 
-#: src/libaudgui/infowin.c:265
+#: src/libaudgui/infowin.c:267
 msgid "Metadata updated successfully"
 msgstr "Metadata actualizada sin problemas"
 
-#: src/libaudgui/infowin.c:270
+#: src/libaudgui/infowin.c:272
 msgid "Metadata updating failed"
 msgstr "Actualización de metadatos fallida"
 
-#: src/libaudgui/infowin.c:318
+#: src/libaudgui/infowin.c:320
 msgid "Track Information"
 msgstr "Información de pista"
 
-#: src/libaudgui/infowin.c:350
+#: src/libaudgui/infowin.c:352
 msgid "<span size=\"small\">Format:</span>"
 msgstr "<span size=\"small\">Formato:</span>"
 
-#: src/libaudgui/infowin.c:354
+#: src/libaudgui/infowin.c:356
 msgid "<span size=\"small\">Quality:</span>"
 msgstr "<span size=\"small\">Calidad:</span>"
 
-#: src/libaudgui/infowin.c:357
+#: src/libaudgui/infowin.c:359
 msgid "<span size=\"small\">Bitrate:</span>"
 msgstr "<span size=\"small\">Bitrate:</span>"
 
-#: src/libaudgui/infowin.c:387
+#: src/libaudgui/infowin.c:389
 msgid "<span size=\"small\">Title</span>"
 msgstr "<span size=\"small\">Título</span>"
 
-#: src/libaudgui/infowin.c:399
+#: src/libaudgui/infowin.c:401
 msgid "<span size=\"small\">Artist</span>"
 msgstr "<span size=\"small\">Artista</span>"
 
-#: src/libaudgui/infowin.c:411
+#: src/libaudgui/infowin.c:413
 msgid "<span size=\"small\">Album</span>"
 msgstr "<span size=\"small\">Álbum</span>"
 
-#: src/libaudgui/infowin.c:423
+#: src/libaudgui/infowin.c:425
 msgid "<span size=\"small\">Comment</span>"
 msgstr "<span size=\"small\">Comentario</span>"
 
-#: src/libaudgui/infowin.c:435
+#: src/libaudgui/infowin.c:437
 msgid "<span size=\"small\">Genre</span>"
 msgstr "<span size=\"small\">Género</span>"
 
-#: src/libaudgui/infowin.c:456
+#: src/libaudgui/infowin.c:458
 msgid "<span size=\"small\">Year</span>"
 msgstr "<span size=\"small\">Año</span>"
 
-#: src/libaudgui/infowin.c:467
+#: src/libaudgui/infowin.c:469
 msgid "<span size=\"small\">Track Number</span>"
 msgstr "<span size=\"small\">Numero de pista</span>"
 
-#: src/libaudgui/infowin.c:549
+#: src/libaudgui/infowin.c:548
 #, c-format
 msgid "%d kb/s"
 msgstr "%d kb/s"
 
-#: src/libaudgui/infowin.c:579
+#: src/libaudgui/infowin.c:575
 #, c-format
 msgid "No info available for %s.\n"
 msgstr "No hay información disponible para %s.\n"
 
-#: src/libaudgui/ui_about.c:71
-msgid "About Audacious"
-msgstr "Acerca de Audacious"
+#: src/libaudgui/jump-to-time.c:72
+msgid "Jump to Time"
+msgstr "Saltar en el tiempo"
 
-#: src/libaudgui/ui_about.c:93 src/libaudgui/ui_credits.c:122
-msgid "Credits"
-msgstr "Créditos:"
+#: src/libaudgui/jump-to-time.c:87
+msgid "mm:ss"
+msgstr "mm:ss"
 
-#: src/libaudgui/ui_credits.c:126
-msgid "Translators"
-msgstr "Traductores"
+#: src/libaudgui/playlists.c:33
+msgid "Export Playlist"
+msgstr "Exportar lista de reproducción"
+
+#: src/libaudgui/playlists.c:33
+msgid "Import Playlist"
+msgstr "Importar lista de reproducción"
+
+#: src/libaudgui/playlists.c:66
+#, c-format
+msgid "Overwrite %s?"
+msgstr "¿Sobrescribir %s?"
+
+#: src/libaudgui/queue-manager.c:196
+msgid "Queue Manager"
+msgstr "Gestor de cola"
 
-#: src/libaudgui/ui_fileopener.c:108
+#: src/libaudgui/ui_fileopener.c:109
 msgid "Open Files"
 msgstr "Abrir archivos"
 
-#: src/libaudgui/ui_fileopener.c:108
+#: src/libaudgui/ui_fileopener.c:109
 msgid "Add Files"
 msgstr "Añadir archivos..."
 
-#: src/libaudgui/ui_fileopener.c:110
+#: src/libaudgui/ui_fileopener.c:111
 msgid "Close dialog on Open"
 msgstr "Cerrar diálogo al abrir"
 
-#: src/libaudgui/ui_fileopener.c:110
+#: src/libaudgui/ui_fileopener.c:111
 msgid "Close dialog on Add"
 msgstr "Cerrar diálogo al añadir"
 
-#: src/libaudgui/ui_jumptotrack.c:133
-msgid "Un_queue"
-msgstr "_Remover de la Cola"
-
-#: src/libaudgui/ui_jumptotrack.c:135 src/libaudgui/ui_jumptotrack.c:512
+#: src/libaudgui/ui_jumptotrack.c:109 src/libaudgui/ui_jumptotrack.c:117
+#: src/libaudgui/ui_jumptotrack.c:326
 msgid "_Queue"
 msgstr "_Cola"
 
-#: src/libaudgui/ui_jumptotrack.c:399
-msgid "Jump to Track"
-msgstr "Saltar a la pista"
+#: src/libaudgui/ui_jumptotrack.c:115
+msgid "Un_queue"
+msgstr "_Remover de la cola"
+
+#: src/libaudgui/ui_jumptotrack.c:258
+msgid "Jump to Song"
+msgstr "Saltar a una canción"
 
-#: src/libaudgui/ui_jumptotrack.c:442
+#: src/libaudgui/ui_jumptotrack.c:281
 msgid "Filter: "
-msgstr "Filtro:"
+msgstr "Filtro: "
 
-#: src/libaudgui/ui_jumptotrack.c:443
+#: src/libaudgui/ui_jumptotrack.c:282
 msgid "_Filter:"
-msgstr "Filtro:"
+msgstr "_Filtro:"
 
-#: src/libaudgui/ui_jumptotrack.c:461
+#: src/libaudgui/ui_jumptotrack.c:292
 msgid "Remember"
 msgstr "Recordar"
 
-#: src/libaudgui/ui_jumptotrack.c:470
+#: src/libaudgui/ui_jumptotrack.c:299
 msgid "Clea_r"
 msgstr "Limpia_r"
 
-#: src/libaudgui/ui_jumptotrack.c:504
+#: src/libaudgui/ui_jumptotrack.c:319
 msgid "Close on Jump"
-msgstr "Cerrar al Saltar"
+msgstr "Cerrar al saltar"
 
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:253
 msgid "Playlist Manager"
 msgstr "Administrador de la lista de reproducción"
 
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:280
 msgid "Entries"
 msgstr "Entradas"
 
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:301
 msgid "_Rename"
-msgstr "Renombrar"
+msgstr "_Renombrar"
 
-#: src/libaudgui/ui_playlist_manager.c:251
+#: src/libaudgui/ui_playlist_manager.c:325
 msgid "_Close dialog on activating playlist"
 msgstr "_Cerrar diálogo al activar la lista de reproducción"
 
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:48
 msgid "Open URL"
 msgstr "Abrir URL"
 
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:48
 msgid "Add URL"
 msgstr "Añadir URL"
 
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+"\n"
+"(Se han ocultado el resto de mensajes.)"
+
 #: src/libeggsmclient/eggdesktopfile.c:165
 msgid "File is not a valid .desktop file"
 msgstr "El archivo no es un archivo .desktop válido"
 
-#: src/libeggsmclient/eggdesktopfile.c:188
+#: src/libeggsmclient/eggdesktopfile.c:191
 #, c-format
 msgid "Unrecognized desktop file Version '%s'"
 msgstr "Versión del archivo de escritorio no reconocida '%s'"
 
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:974
 #, c-format
 msgid "Starting %s"
 msgstr "Iniciando %s"
 
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1116
 msgid "Application does not accept documents on command line"
 msgstr "La aplicación no acepta documentos en la linea de comandos"
 
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1184
 #, c-format
 msgid "Unrecognized launch option: %d"
 msgstr "Opción de cargar no reconocida: %d"
 
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1391
 msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
 msgstr ""
 "No se pueden pasar documentos URI a una entrada de escritorio 'Type=Link'"
 
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1412
 msgid "Not a launchable item"
 msgstr "No es un objeto lanzable"
 
@@ -1257,545 +1235,11 @@ msgid "ID"
 msgstr "ID"
 
 #: src/libeggsmclient/eggsmclient.c:253
-#, fuzzy
 msgid "Session management options:"
-msgstr "Opciones de la sesión administrada"
+msgstr "Opciones de la gestión de sesiones:"
 
 #: src/libeggsmclient/eggsmclient.c:254
-#, fuzzy
 msgid "Show session management options"
-msgstr "Mostrar opciones de la sesión administrada"
-
-#~ msgid "%s: Unable to open display, exiting.\n"
-#~ msgstr "%s: No se pudo abrir la pantalla, saliendo.\n"
-
-#~ msgid "Preamp:"
-#~ msgstr "Preamplificación:"
-
-#~ msgid "Default gain:"
-#~ msgstr "Ganancia por defecto:"
-
-#~ msgid "This gain will be used if file doesn't contain Replay Gain metadata."
-#~ msgstr ""
-#~ "Esta ganancia se usará si el archivo no contiene metadatos Replay Gain"
-
-#~ msgid ""
-#~ "<span size=\"small\">Please remember that the most efficient way to "
-#~ "prevent signal clipping is not to use positive values above.</span>"
-#~ msgstr ""
-#~ "<span size=\"small\">Por favor recuerda que la forma más eficiente de "
-#~ "prevenir el clipping de la señal es no usar valores positivos.</span>"
-
-#~ msgid "<b>Replay Gain configuration</b>"
-#~ msgstr "<b>Configuración Replay Gain</b>"
-
-#~ msgid "Track gain/peak"
-#~ msgstr "Pista ganancia/pico"
-
-#~ msgid "Album gain/peak"
-#~ msgstr "Álbum ganancia/pico"
-
-#~ msgid "Use peak value from Replay Gain info for clipping prevention"
-#~ msgstr ""
-#~ "Usar valor pico de la información Replay Gain para la prevenir clipping"
-
-#~ msgid "Classic Rock"
-#~ msgstr "Rock clásico"
-
-#~ msgid "Dance"
-#~ msgstr "Dance"
-
-#~ msgid "Oldies"
-#~ msgstr "Antiguos"
-
-#~ msgid "Other"
-#~ msgstr "Otro"
-
-#~ msgid "R&B"
-#~ msgstr "R&B"
-
-#~ msgid "Industrial"
-#~ msgstr "Industrial"
-
-#~ msgid "Alternative"
-#~ msgstr "Alternativa"
-
-#~ msgid "Pranks"
-#~ msgstr "Pranks"
-
-#~ msgid "Soundtrack"
-#~ msgstr "Banda Sonora"
-
-#~ msgid "Euro-Techno"
-#~ msgstr "Euro-Techno"
-
-#~ msgid "Vocal"
-#~ msgstr "Vocal"
-
-#~ msgid "Jazz+Funk"
-#~ msgstr "Jazz+Funk"
-
-#~ msgid "Fusion"
-#~ msgstr "Fusión"
-
-#~ msgid "Trance"
-#~ msgstr "Trance"
-
-#~ msgid "Instrumental"
-#~ msgstr "Instrumental"
-
-#~ msgid "Acid"
-#~ msgstr "Acid"
-
-#~ msgid "Game"
-#~ msgstr "Juego"
-
-#~ msgid "Sound Clip"
-#~ msgstr "Clip de sonido"
-
-#~ msgid "AlternRock"
-#~ msgstr "Rock alternativo"
-
-#~ msgid "Bass"
-#~ msgstr "Bass"
-
-#~ msgid "Punk"
-#~ msgstr "Punk"
-
-#~ msgid "Space"
-#~ msgstr "Espacio"
-
-#~ msgid "Meditative"
-#~ msgstr "Meditativa"
-
-#~ msgid "Instrumental Pop"
-#~ msgstr "Pop instrumental"
-
-#~ msgid "Instrumental Rock"
-#~ msgstr "Rock instrumental"
-
-#~ msgid "Ethnic"
-#~ msgstr "Étnica"
-
-#~ msgid "Gothic"
-#~ msgstr "Gótica"
-
-#~ msgid "Darkwave"
-#~ msgstr "Darkwave"
-
-#~ msgid "Techno-Industrial"
-#~ msgstr "Tecno-industrial"
-
-#~ msgid "Electronic"
-#~ msgstr "Electrónica"
-
-#~ msgid "Pop-Folk"
-#~ msgstr "Pop-folk"
-
-#~ msgid "Eurodance"
-#~ msgstr "Eurodance"
-
-#~ msgid "Dream"
-#~ msgstr "Dream"
-
-#~ msgid "Southern Rock"
-#~ msgstr "Rock sureño"
-
-#~ msgid "Comedy"
-#~ msgstr "Comedia"
-
-#~ msgid "Cult"
-#~ msgstr "Culto"
-
-#~ msgid "Top 40"
-#~ msgstr "Primeros 40"
-
-#~ msgid "Christian Rap"
-#~ msgstr "Rap cristiano"
-
-#~ msgid "Pop/Funk"
-#~ msgstr "Pop/Funk"
-
-#~ msgid "Native American"
-#~ msgstr "Nativa americana"
-
-#~ msgid "Cabaret"
-#~ msgstr "Cabaret"
-
-#~ msgid "Psychedelic"
-#~ msgstr "Psicodélica"
-
-#~ msgid "Rave"
-#~ msgstr "Rave"
-
-#~ msgid "Showtunes"
-#~ msgstr "Showtunes"
-
-#~ msgid "Trailer"
-#~ msgstr "Trailer"
-
-#~ msgid "Lo-Fi"
-#~ msgstr "Lo-Fi"
-
-#~ msgid "Tribal"
-#~ msgstr "Tribal"
-
-#~ msgid "Acid Punk"
-#~ msgstr "Acid Punk"
-
-#~ msgid "Polka"
-#~ msgstr "Polka"
-
-#~ msgid "Retro"
-#~ msgstr "etro"
-
-#~ msgid "Musical"
-#~ msgstr "Musical"
-
-#~ msgid "Folk/Rock"
-#~ msgstr "Folclore/Rock"
-
-#~ msgid "National Folk"
-#~ msgstr "Folklore nacional"
-
-#~ msgid "Fast-Fusion"
-#~ msgstr "Fast-Fusion"
-
-#~ msgid "Latin"
-#~ msgstr "Latín"
-
-#~ msgid "Revival"
-#~ msgstr "Revival"
-
-#~ msgid "Celtic"
-#~ msgstr "Celta"
-
-#~ msgid "Avantgarde"
-#~ msgstr "Avantgarde"
-
-#~ msgid "Gothic Rock"
-#~ msgstr "Rock gótico"
-
-#~ msgid "Progressive Rock"
-#~ msgstr "Rock progresivo"
-
-#~ msgid "Psychedelic Rock"
-#~ msgstr "Rock Psicodélico"
-
-#~ msgid "Symphonic Rock"
-#~ msgstr "Rock sinfónico"
-
-#~ msgid "Slow Rock"
-#~ msgstr "Rock lento"
-
-#~ msgid "Big Band"
-#~ msgstr "Big Band"
-
-#~ msgid "Chorus"
-#~ msgstr "Coral"
-
-#~ msgid "Acoustic"
-#~ msgstr "Acústica"
-
-#~ msgid "Humour"
-#~ msgstr "Humor"
-
-#~ msgid "Speech"
-#~ msgstr "Discurso"
-
-#~ msgid "Chanson"
-#~ msgstr "Chanson"
-
-#~ msgid "Opera"
-#~ msgstr "Opera"
-
-#~ msgid "Sonata"
-#~ msgstr "Sonata"
-
-#~ msgid "Symphony"
-#~ msgstr "Sinfonía"
-
-#~ msgid "Booty Bass"
-#~ msgstr "Booty Bass"
-
-#~ msgid "Primus"
-#~ msgstr "Primus"
-
-#~ msgid "Porn Groove"
-#~ msgstr "Porn Groove"
-
-#~ msgid "Satire"
-#~ msgstr "Satire"
-
-#~ msgid "Slow Jam"
-#~ msgstr "Slow Jam"
-
-#~ msgid "Club"
-#~ msgstr "Club"
-
-#~ msgid "Tango"
-#~ msgstr "Tango"
-
-#~ msgid "Samba"
-#~ msgstr "Samba"
-
-#~ msgid "Folklore"
-#~ msgstr "Folclore"
-
-#~ msgid "Ballad"
-#~ msgstr "Balada"
-
-#~ msgid "Power Ballad"
-#~ msgstr "Power Ballad"
-
-#~ msgid "Rhythmic Soul"
-#~ msgstr "Soul rítmico"
-
-#~ msgid "Freestyle"
-#~ msgstr "Estilo libre"
-
-#~ msgid "Duet"
-#~ msgstr "Dueto"
-
-#~ msgid "Drum Solo"
-#~ msgstr "Solo de batería"
-
-#~ msgid "A Cappella"
-#~ msgstr "A cappella"
-
-#~ msgid "Euro-House"
-#~ msgstr "Euro-House"
-
-#~ msgid "Dance Hall"
-#~ msgstr "Dance Hall"
-
-#~ msgid "Goa"
-#~ msgstr "Goa"
-
-#~ msgid "Drum & Bass"
-#~ msgstr "Bajo y batería"
-
-#~ msgid "Club-House"
-#~ msgstr "Club-House"
-
-#~ msgid "Hardcore"
-#~ msgstr "Hardcore"
-
-#~ msgid "Terror"
-#~ msgstr "Terror"
-
-#~ msgid "Indie"
-#~ msgstr "Indie"
-
-#~ msgid "BritPop"
-#~ msgstr "BritPop"
-
-#~ msgid "Negerpunk"
-#~ msgstr "Negerpunk"
-
-#~ msgid "Polsk Punk"
-#~ msgstr "Polsk Punk"
-
-#~ msgid "Beat"
-#~ msgstr "Beat"
-
-#~ msgid "Christian Gangsta Rap"
-#~ msgstr "Christian Gangsta Rap"
-
-#~ msgid "Black Metal"
-#~ msgstr "Black Metal"
-
-#~ msgid "Crossover"
-#~ msgstr "Crossover"
-
-#~ msgid "Contemporary Christian"
-#~ msgstr "Cristiana contemporánea"
-
-#~ msgid "Christian Rock"
-#~ msgstr "Rock cristiano"
-
-#~ msgid "Merengue"
-#~ msgstr "Merengue"
-
-#~ msgid "Salsa"
-#~ msgstr "Salsa"
-
-#~ msgid "Thrash Metal"
-#~ msgstr "Thrash Metal"
-
-#~ msgid "Anime"
-#~ msgstr "Anime"
-
-#~ msgid "JPop"
-#~ msgstr "JPop"
-
-#~ msgid "Synthpop"
-#~ msgstr "Synthpop"
-
-#, fuzzy
-#~ msgid ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "An audio player for many platforms.\n"
-#~ "Copyright (C) 2005-2011 Audacious Development Team"
-#~ msgstr ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "Un reproductor multimedia para varias plataformas.\n"
-#~ "Copyright (C) 2005-2010 Equipo de Desarrollo de Audacious"
-
-#~ msgid "Unable to create log file (%s)!\n"
-#~ msgstr "No se pudo crear el archivo log (%s)\n"
-
-#~ msgid "Print all errors and warnings to stdout"
-#~ msgstr "Imprimir todos los errores y avisos en la salida estandar"
-
-#~ msgid "Used in macpacking"
-#~ msgstr "Usado en macpacking"
-
-#~ msgid "Sorry, threads aren't supported on your platform.\n"
-#~ msgstr "Lo siento, no se soportan threads en tu plataforma.\n"
-
-#~ msgid "Module loading not supported! Plugins will not be loaded.\n"
-#~ msgstr "¡Carga de módulos no soportada! Los complementos no se cargarán.\n"
-
-#~ msgid "Audacious - Unsupported Version Warning"
-#~ msgstr "Audacious - Aviso de versión no soportada"
-
-#~ msgid "<big><b>Audacious2 is not ready yet!</b></big>"
-#~ msgstr "<big><b>¡Audacious2 aun no está listo!</b></big>"
-
-#~ msgid ""
-#~ "<b>Please don't file bugs at this point unless they represent major "
-#~ "problems.</b>"
-#~ msgstr ""
-#~ "<b>Por favor no informe de errores a menos que impliquen problemas "
-#~ "importantes.</b>"
-
-#~ msgid ""
-#~ "This is an <i>alpha</i> build of Audacious2. It is still fairly "
-#~ "incomplete and unpolished.\n"
-#~ "We suspect that most minor bugs reported during this time will be "
-#~ "resolved once more things\n"
-#~ "stablize. However, if there is a major bug, such as a crash on playing a "
-#~ "specific file, we\n"
-#~ "need to know about it.\n"
-#~ "\n"
-#~ "However, we ask you to be aware that dealing with trivial bugs is "
-#~ "distracting at this point,\n"
-#~ "and to please refrain from doing so. Thanks in advance!"
-#~ msgstr ""
-#~ "Esta es una compilación <i>alpha</i> de Audacious2. Todavía está "
-#~ "incompleta y sin pulir.\n"
-#~ "Nosotros sospechamos que la mayoría de los pequeños errores se arreglarán "
-#~ "una vez que las\n"
-#~ "cosas se estabilicen. Sin embargo, si hay un error mayor, como una caída "
-#~ "reproducción\n"
-#~ "un archivo específico, necesitamos saberlo.\n"
-#~ "\n"
-#~ "De todas formas, tenga en cuenta que, en este momento, es una pérdida de "
-#~ "tiempo\n"
-#~ "tratar los errores triviales, y por tanto le rogamos que se abstengan de "
-#~ "notificarlos.\n"
-#~ "¡Gracias por adelantado!"
-
-#~ msgid "<b>Blogging about bugs in it is also not helpful.</b>"
-#~ msgstr "<b>Bloguear acerca de errores no es muy útil.</b>"
-
-#~ msgid ""
-#~ "Likewise, we're developers. We don't read blogs on a regular basis. If "
-#~ "there is a major bug,\n"
-#~ "we ask you to bring it to our attention via our bugtracking instance at "
-#~ "http://jira.atheme.org/,\n"
-#~ "or via the forums that are on the website.\n"
-#~ "\n"
-#~ "This will help us find out more information about your concerns, which we "
-#~ "would likely\n"
-#~ "not know about otherwise."
-#~ msgstr ""
-#~ "De igual forma que somos desarrolladores, no solemos leer blogs de forma "
-#~ "regular. Si hay un\n"
-#~ "error importante, rogamos que dirijas tu atención a nuestro bugtracker en "
-#~ "http://jira.atheme.org/,\n"
-#~ "o vía el foro que encontrarás en la web.\n"
-#~ "\n"
-#~ "Esto nos ayudará a encontrar más información acerca de sus "
-#~ "preocupaciones, las cuales nos encantaría\n"
-#~ "no conocerlas de otra manera."
-
-#~ msgid "Playback"
-#~ msgstr "Reproducción"
-
-#~ msgid "<b>Playback</b>"
-#~ msgstr "<b>Reproducción</b>"
-
-#~ msgid ""
-#~ "When Audacious starts, automatically begin playing from the point where "
-#~ "we stopped before."
-#~ msgstr ""
-#~ "Cuando se inicie Audacious, automáticamente empezará a reproducir desde "
-#~ "el punto donde lo dejó antes."
-
-#~ msgid "Don't advance in the playlist"
-#~ msgstr "No avanzar en la lista de reproducción"
-
-#~ msgid ""
-#~ "When finished playing a song, don't automatically advance to the next."
-#~ msgstr ""
-#~ "Al acabar de reproducir una canción, no salta a la siguiente "
-#~ "automáticamente"
-
-#~ msgid "Enabled"
-#~ msgstr "Habilitado"
-
-#~ msgid "Description"
-#~ msgstr "Descripción"
-
-#~ msgid "Output Plugin Preferences"
-#~ msgstr "Opciones del complemento de salida"
-
-#~ msgid "Output Plugin Information"
-#~ msgstr "Información del complemento de salida"
-
-#~ msgid "_Decoder list:"
-#~ msgstr "Lista de decodificadores:"
-
-#~ msgid "<span size=\"medium\"><b>Decoders</b></span>"
-#~ msgstr "<span size=\"medium\"><b>Decodificadores</b></span>"
-
-#~ msgid "_General plugin list:"
-#~ msgstr "Lista de complementos _generales:"
-
-#~ msgid "<span size=\"medium\"><b>General</b></span>"
-#~ msgstr "<span size=\"medium\"><b>General</b></span>"
-
-#~ msgid "_Visualization plugin list:"
-#~ msgstr "Lista de _complementos de visualización:"
-
-#~ msgid "Effect plugins:"
-#~ msgstr "Complementos de efectos:"
-
-#~ msgid "<span size=\"small\">General</span>"
-#~ msgstr "<span size=\"small\">General</span>"
-
-#~ msgid "<span size=\"small\">Location</span>"
-#~ msgstr "<span size=\"small\">Lugar</span>"
-
-#~ msgid "<span size=\"small\">Raw Metadata</span>"
-#~ msgstr "<span size=\"small\">Metadata Raw</span>"
-
-#~ msgid "Key"
-#~ msgstr "Clave"
-
-#~ msgid "Value"
-#~ msgstr "Valor"
-
-#~ msgid "170 Hz"
-#~ msgstr "170 Hz"
-
-#~ msgid "310 Hz"
-#~ msgstr "310 Hz"
+msgstr "Mostrar las opciones de gestión de sesiones"
 
-#~ msgid "3 kHz"
-#~ msgstr "3 kHz"
 
-#~ msgid "6 kHz"
-#~ msgstr "6 kHz"
diff --git a/po/es_AR.po b/po/es_AR.po
new file mode 100644
index 0000000..6c54e2b
--- /dev/null
+++ b/po/es_AR.po
@@ -0,0 +1,1245 @@
+# Argentinian Spanish translation for Audacious
+# Copyright (C) Audacious translators
+# This file is distributed under the same license as the Audacious package.
+#
+# Translators:
+# Adrián Ramirez Escalante <buried.prophet at gmail.com>, 2012.
+# Cosme Domínguez Díaz <cosme.ddiaz at gmail.com>, 2010.
+# Francisco Javier F. Serrador <serrador at cvs.gnome.org>, 2004.
+# Gustavo D. Vranjes <gvranjes at nerdshack.com>, 2006.
+# Jeki Sinneo Leinos <jeki72 at gmail.com>, 2008.
+# Jordi Amenós <>, 2011.
+# Jorge Andrés <winninglero at gmail.com>, 2010.
+#   <xukosky at yahoo.es>, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: Audacious\n"
+"Report-Msgid-Bugs-To: http://redmine.audacious-media-player.org/\n"
+"POT-Creation-Date: 2012-01-11 08:54-0500\n"
+"PO-Revision-Date: 2012-01-12 04:25+0000\n"
+"Last-Translator: Adrián Ramirez Escalante <buried.prophet at gmail.com>\n"
+"Language-Team: Spanish (Argentinian)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: es_AR\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+
+#: src/audacious/adder.c:77
+msgid "Searching ..."
+msgstr "Buscando ..."
+
+#: src/audacious/adder.c:113
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] "%d archivo encontrado"
+msgstr[1] "%d archivos encontrados"
+
+#: src/audacious/chardet.c:39
+msgid "  (invalid UTF-8)"
+msgstr "  (UTF-8 inválido)"
+
+#: src/audacious/credits.c:37
+msgid "Core developers:"
+msgstr "Desarrolladores del núcleo:"
+
+#: src/audacious/credits.c:51
+msgid "Graphics:"
+msgstr "Gráficos:"
+
+#: src/audacious/credits.c:56
+msgid "Default skin:"
+msgstr "Skin por defecto:"
+
+#: src/audacious/credits.c:62
+msgid "Plugin development:"
+msgstr "Desarrollo de complementos:"
+
+#: src/audacious/credits.c:85
+msgid "Patch authors:"
+msgstr "Autores de parches:"
+
+#: src/audacious/credits.c:131
+msgid "1.x developers:"
+msgstr "Desarrolladores 1.x:"
+
+#: src/audacious/credits.c:153
+msgid "BMP Developers:"
+msgstr "Desarrolladores de BMP:"
+
+#: src/audacious/credits.c:185
+msgid "Belarusian:"
+msgstr "Bielorruso:"
+
+#: src/audacious/credits.c:188
+msgid "Basque:"
+msgstr "Vasco:"
+
+#: src/audacious/credits.c:191
+msgid "Brazilian Portuguese:"
+msgstr "Portugués de Brasil:"
+
+#: src/audacious/credits.c:196
+msgid "Breton:"
+msgstr "Bretón:"
+
+#: src/audacious/credits.c:199
+msgid "Bulgarian:"
+msgstr "Búlgaro:"
+
+#: src/audacious/credits.c:202
+msgid "Catalan:"
+msgstr "Catalán:"
+
+#: src/audacious/credits.c:206
+msgid "Chinese:"
+msgstr "Chino:"
+
+#: src/audacious/credits.c:209
+msgid "Croatian:"
+msgstr "Croato:"
+
+#: src/audacious/credits.c:212
+msgid "Czech:"
+msgstr "Checo:"
+
+#: src/audacious/credits.c:215
+msgid "Dutch:"
+msgstr "Holandés:"
+
+#: src/audacious/credits.c:219
+msgid "Estonian:"
+msgstr "Estonio:"
+
+#: src/audacious/credits.c:222
+msgid "Finnish:"
+msgstr "Finlandés:"
+
+#: src/audacious/credits.c:227
+msgid "French:"
+msgstr "Francés:"
+
+#: src/audacious/credits.c:233
+msgid "German:"
+msgstr "Alemán:"
+
+#: src/audacious/credits.c:240
+msgid "Georgian:"
+msgstr "Georgiano:"
+
+#: src/audacious/credits.c:243
+msgid "Greek:"
+msgstr "Griego:"
+
+#: src/audacious/credits.c:248
+msgid "Hindi:"
+msgstr "Hindú:"
+
+#: src/audacious/credits.c:251
+msgid "Hungarian:"
+msgstr "Húngaro:"
+
+#: src/audacious/credits.c:255
+msgid "Italian:"
+msgstr "Italiano:"
+
+#: src/audacious/credits.c:260
+msgid "Japanese:"
+msgstr "Japonés:"
+
+#: src/audacious/credits.c:263
+msgid "Korean:"
+msgstr "Coreano:"
+
+#: src/audacious/credits.c:266
+msgid "Latvian:"
+msgstr "Letón:"
+
+#: src/audacious/credits.c:269
+msgid "Lithuanian:"
+msgstr "Lituano:"
+
+#: src/audacious/credits.c:274
+msgid "Macedonian:"
+msgstr "Macedonio:"
+
+#: src/audacious/credits.c:277
+msgid "Mexican Spanish:"
+msgstr "Español mexicano:"
+
+#: src/audacious/credits.c:280
+msgid "Polish:"
+msgstr "Polaco:"
+
+#: src/audacious/credits.c:287
+msgid "Portuguese:"
+msgstr "Portugués:"
+
+#: src/audacious/credits.c:290
+msgid "Romanian:"
+msgstr "Rumano:"
+
+#: src/audacious/credits.c:294
+msgid "Russian:"
+msgstr "Ruso:"
+
+#: src/audacious/credits.c:298
+msgid "Serbian (Latin):"
+msgstr "Serbio (Latin):"
+
+#: src/audacious/credits.c:301
+msgid "Serbian (Cyrillic):"
+msgstr "Serbio (Cyrillic):"
+
+#: src/audacious/credits.c:305
+msgid "Simplified Chinese:"
+msgstr "Chino simplificado:"
+
+#: src/audacious/credits.c:308
+msgid "Slovak:"
+msgstr "Eslovaco:"
+
+#: src/audacious/credits.c:312
+msgid "Spanish:"
+msgstr "Español:"
+
+#: src/audacious/credits.c:320
+msgid "Swedish:"
+msgstr "Sueco:"
+
+#: src/audacious/credits.c:323
+msgid "Traditional Chinese:"
+msgstr "Chino tradicional:"
+
+#: src/audacious/credits.c:329
+msgid "Turkish:"
+msgstr "Turco:"
+
+#: src/audacious/credits.c:333
+msgid "Ukrainian:"
+msgstr "Ucraniano:"
+
+#: src/audacious/credits.c:338
+msgid "Vietnamese:"
+msgstr "Vietnamita:"
+
+#: src/audacious/credits.c:341
+msgid "Welsh:"
+msgstr "Galés:"
+
+#: src/audacious/equalizer_preset.c:180
+#, c-format
+msgid "Error importing Winamp EQF file '%s'"
+msgstr "Error importando archivo Winamp EQF  '%s'"
+
+#: src/audacious/main.c:243
+msgid "Skip backwards in playlist"
+msgstr "Ir hacia atrás en la lista de reproducción"
+
+#: src/audacious/main.c:244
+msgid "Start playing current playlist"
+msgstr "Reproducir la lista de reproducción actual"
+
+#: src/audacious/main.c:245
+msgid "Pause current song"
+msgstr "Pausar la canción actual"
+
+#: src/audacious/main.c:246
+msgid "Stop current song"
+msgstr "Parar la canción actual"
+
+#: src/audacious/main.c:247
+msgid "Pause if playing, play otherwise"
+msgstr "Pausar si se está reproduciendo, o reproducir"
+
+#: src/audacious/main.c:248
+msgid "Skip forward in playlist"
+msgstr "Ir hacia adelante en la lista de reproducción"
+
+#: src/audacious/main.c:249
+msgid "Display Jump to File dialog"
+msgstr "Mostrar diálogo de ir al archivo"
+
+#: src/audacious/main.c:250
+msgid "Add files to the playlist"
+msgstr "Añadir archivos a la lista de reproducción"
+
+#: src/audacious/main.c:251
+msgid "Add new files to a temporary playlist"
+msgstr "Agregar nuevos archivos a una lista de reproducción temporal"
+
+#: src/audacious/main.c:252
+msgid "Display the main window"
+msgstr "Mostrar la ventana principal"
+
+#: src/audacious/main.c:253
+msgid "Show version"
+msgstr "Mostrar versión"
+
+#: src/audacious/main.c:254
+msgid "Print debugging messages"
+msgstr "Imprimir mensajes de depuración"
+
+#: src/audacious/main.c:255
+msgid "Headless mode (beta)"
+msgstr "Modo sin cabecera (beta)"
+
+#: src/audacious/main.c:256
+msgid "FILE..."
+msgstr "ARCHIVO..."
+
+#: src/audacious/main.c:268
+msgid "- play multimedia files"
+msgstr "- reproducir archivos multimedia"
+
+#: src/audacious/main.c:278
+#, c-format
+msgid ""
+"%s: %s\n"
+"Try `%s --help' for more information.\n"
+msgstr ""
+"%s: %s\n"
+"Probá `%s --help' para más información.\n"
+
+#: src/audacious/main.c:573
+msgid "Audacious"
+msgstr "Audacious"
+
+#: src/audacious/playback.c:307
+#, c-format
+msgid "No decoder found for %s."
+msgstr "No se encontró decodificador para %s."
+
+#: src/audacious/playlist-files.c:53
+#, c-format
+msgid "Cannot %s %s: unsupported file extension."
+msgstr "No se puede %s %s: la extensión del archivo no es válida."
+
+#: src/audacious/playlist-files.c:54
+msgid "save"
+msgstr "guardar"
+
+#: src/audacious/playlist-files.c:54
+msgid "load"
+msgstr "cargar"
+
+#: src/audacious/playlist-new.c:131
+msgid "New Playlist"
+msgstr "Nueva lista de reproducción"
+
+#: src/audacious/playlist-new.c:132
+msgid "Now Playing"
+msgstr "Reproducción actual"
+
+#: src/audacious/playlist-new.c:1630
+msgid ""
+"The playlist cannot be sorted because metadata scanning is still in progress"
+" (or has been disabled)."
+msgstr ""
+"La lista de reproducción no se puede ordenar porque la búsqueda de metadatos"
+" está en progreso (o ha sido deshabilitada)."
+
+#: src/audacious/ui_preferences.c:85
+msgid "Audio"
+msgstr "Audio"
+
+#: src/audacious/ui_preferences.c:86
+msgid "Network"
+msgstr "Red"
+
+#: src/audacious/ui_preferences.c:87 src/audacious/ui_preferences.c:1603
+msgid "Playlist"
+msgstr "Lista de reproducción"
+
+#: src/audacious/ui_preferences.c:88
+msgid "Plugins"
+msgstr "Complementos"
+
+#: src/audacious/ui_preferences.c:94 src/libaudgui/infopopup.c:199
+msgid "Artist"
+msgstr "Artista"
+
+#: src/audacious/ui_preferences.c:95 src/libaudgui/infopopup.c:201
+msgid "Album"
+msgstr "Álbum"
+
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:197
+#: src/libaudgui/ui_playlist_manager.c:279
+msgid "Title"
+msgstr "Título"
+
+#: src/audacious/ui_preferences.c:97
+msgid "Tracknumber"
+msgstr "Número de pista"
+
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:203
+msgid "Genre"
+msgstr "Género"
+
+#: src/audacious/ui_preferences.c:99
+msgid "Filename"
+msgstr "Nombre de archivo"
+
+#: src/audacious/ui_preferences.c:100
+msgid "Filepath"
+msgstr "Ruta hasta el archivo"
+
+#: src/audacious/ui_preferences.c:101
+msgid "Date"
+msgstr "Fecha"
+
+#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:205
+msgid "Year"
+msgstr "Año"
+
+#: src/audacious/ui_preferences.c:103
+msgid "Comment"
+msgstr "Comentario"
+
+#: src/audacious/ui_preferences.c:104
+msgid "Codec"
+msgstr "Codec (formato)"
+
+#: src/audacious/ui_preferences.c:105
+msgid "Quality"
+msgstr "Calidad"
+
+#: src/audacious/ui_preferences.c:111
+msgid "None"
+msgstr "Ninguno"
+
+#: src/audacious/ui_preferences.c:112
+msgid "Arabic"
+msgstr "Arábico"
+
+#: src/audacious/ui_preferences.c:113
+msgid "Baltic"
+msgstr "Báltico"
+
+#: src/audacious/ui_preferences.c:114
+msgid "Chinese"
+msgstr "Chino"
+
+#: src/audacious/ui_preferences.c:115
+msgid "Greek"
+msgstr "Griego"
+
+#: src/audacious/ui_preferences.c:116
+msgid "Hebrew"
+msgstr "Hebreo"
+
+#: src/audacious/ui_preferences.c:117
+msgid "Japanese"
+msgstr "Japonés"
+
+#: src/audacious/ui_preferences.c:118
+msgid "Korean"
+msgstr "Coreano"
+
+#: src/audacious/ui_preferences.c:119
+msgid "Polish"
+msgstr "Polaco"
+
+#: src/audacious/ui_preferences.c:120
+msgid "Russian"
+msgstr "Ruso"
+
+#: src/audacious/ui_preferences.c:121
+msgid "Taiwanese"
+msgstr "Taiwanés"
+
+#: src/audacious/ui_preferences.c:122
+msgid "Turkish"
+msgstr "Turco"
+
+#: src/audacious/ui_preferences.c:144
+msgid "Album mode"
+msgstr "Modo de álbum"
+
+#: src/audacious/ui_preferences.c:147
+msgid "<b>Output Settings</b>"
+msgstr "<b>Ajustes de salida</b>"
+
+#: src/audacious/ui_preferences.c:149
+msgid "Bit depth:"
+msgstr "Profundidad de bit:"
+
+#: src/audacious/ui_preferences.c:152
+msgid "Buffer size:"
+msgstr "Tamaño del búfer:"
+
+#: src/audacious/ui_preferences.c:154
+msgid "ms"
+msgstr "ms"
+
+#: src/audacious/ui_preferences.c:155
+msgid "Use software volume control (not recommended)"
+msgstr "Usar control de volumen por software (no recomendado)"
+
+#: src/audacious/ui_preferences.c:157
+msgid "<b>Replay Gain</b>"
+msgstr "<b>Normalizar volumen</b>"
+
+#: src/audacious/ui_preferences.c:158
+msgid "Enable Replay Gain"
+msgstr "Activar la normalización de volumen"
+
+#: src/audacious/ui_preferences.c:161
+msgid "Prevent clipping (recommended)"
+msgstr "Evitar cortes (recomendado)"
+
+#: src/audacious/ui_preferences.c:163
+msgid "<b>Adjust Levels</b>"
+msgstr "<b>Ajustar niveles</b>"
+
+#: src/audacious/ui_preferences.c:164
+msgid "Amplify all files:"
+msgstr "Amplificar todos los archivos:"
+
+#: src/audacious/ui_preferences.c:166 src/audacious/ui_preferences.c:169
+msgid "dB"
+msgstr "dB"
+
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify untagged files:"
+msgstr "Amplificar archivos sin etiqueta:"
+
+#: src/audacious/ui_preferences.c:172
+msgid "Proxy hostname:"
+msgstr "Servidor proxy:"
+
+#: src/audacious/ui_preferences.c:173
+msgid "Proxy port:"
+msgstr "Puerto del proxy:"
+
+#: src/audacious/ui_preferences.c:176
+msgid "Proxy username:"
+msgstr "Nombre de usuario del proxy:"
+
+#: src/audacious/ui_preferences.c:177
+msgid "Proxy password:"
+msgstr "Contraseña del proxy:"
+
+#: src/audacious/ui_preferences.c:181
+msgid "<b>Proxy Configuration</b>"
+msgstr "<b>Configuración del Proxy</b>"
+
+#: src/audacious/ui_preferences.c:182
+msgid "Enable proxy usage"
+msgstr "Activar uso del proxy"
+
+#: src/audacious/ui_preferences.c:185
+msgid "Use authentication with proxy"
+msgstr "Usar autenticación con el proxy"
+
+#: src/audacious/ui_preferences.c:193
+msgid "Auto character encoding detector for:"
+msgstr "Detector de codificación de caracteres automático para: "
+
+#: src/audacious/ui_preferences.c:198
+msgid "Fallback character encodings:"
+msgstr "Codificación de caracteres alternativa:"
+
+#: src/audacious/ui_preferences.c:202
+msgid "<b>Behavior</b>"
+msgstr "<b>Comportamiento</b>"
+
+#: src/audacious/ui_preferences.c:203
+msgid "Continue playback on startup"
+msgstr "Continuar la reproducción al iniciar"
+
+#: src/audacious/ui_preferences.c:205
+msgid "Advance when the current song is deleted"
+msgstr "Avanzar cuando se borra la canción actual"
+
+#: src/audacious/ui_preferences.c:207
+msgid "Clear the playlist when opening files"
+msgstr "Limpiar la lista de reproducción al abrir archivos"
+
+#: src/audacious/ui_preferences.c:209
+msgid "Open files in a temporary playlist"
+msgstr "Abrir archivos en una lista de reproducción temporal"
+
+#: src/audacious/ui_preferences.c:211
+msgid "<b>Metadata</b>"
+msgstr "<b>Metadatos</b>"
+
+#: src/audacious/ui_preferences.c:212
+msgid "Do not load metadata for songs until played"
+msgstr "No cargar la información de metadatos hasta reproducir"
+
+#: src/audacious/ui_preferences.c:230
+msgid "TITLE"
+msgstr "TÍTULO"
+
+#: src/audacious/ui_preferences.c:231
+msgid "ARTIST - TITLE"
+msgstr "ARTISTA - TÍTULO"
+
+#: src/audacious/ui_preferences.c:232
+msgid "ARTIST - ALBUM - TITLE"
+msgstr "ARTISTA - ÁLBUM - TÍTULO"
+
+#: src/audacious/ui_preferences.c:233
+msgid "ARTIST - ALBUM - TRACK. TITLE"
+msgstr "ARTISTA - ÁLBUM - PISTA. TÍTULO"
+
+#: src/audacious/ui_preferences.c:234
+msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
+msgstr "ARTISTA [ ÁLBUM ] - PISTA. TÍTULO"
+
+#: src/audacious/ui_preferences.c:235
+msgid "ALBUM - TITLE"
+msgstr "ÁLBUM - TÍTULO"
+
+#: src/audacious/ui_preferences.c:556
+msgid "Category"
+msgstr "Categoría"
+
+#: src/audacious/ui_preferences.c:780
+msgid "Popup Information Settings"
+msgstr "Ajustes de la información emergente"
+
+#: src/audacious/ui_preferences.c:789
+msgid "<b>Cover image retrieve</b>"
+msgstr "<b>Recuperar carátula</b>"
+
+#: src/audacious/ui_preferences.c:794
+msgid ""
+"While searching for the album's cover, Audacious looks for certain words in "
+"the filename. You can specify those words in the lists below, separated "
+"using commas."
+msgstr ""
+"Cuando se busca la carátula del álbum, Audacious se fija en ciertas palabras"
+" en el nombre del archivo. Se pueden especificar éstas palabras en la lista "
+"de abajo, separadas con comas."
+
+#: src/audacious/ui_preferences.c:811
+msgid "Exclude:"
+msgstr "Excluir:"
+
+#: src/audacious/ui_preferences.c:818
+msgid "Include:"
+msgstr "Incluir:"
+
+#: src/audacious/ui_preferences.c:835
+msgid "Recursively search for cover"
+msgstr "Búsqueda recursiva para las carátulas"
+
+#: src/audacious/ui_preferences.c:845
+msgid "Search depth: "
+msgstr "Profundidad de la búsqueda:"
+
+#: src/audacious/ui_preferences.c:859
+msgid "Use per-file cover"
+msgstr "Usar carátula por archivo"
+
+#: src/audacious/ui_preferences.c:862
+msgid "<b>Miscellaneous</b>"
+msgstr "<b>Varios</b>"
+
+#: src/audacious/ui_preferences.c:871
+msgid "Show Progress bar for the current track"
+msgstr "Mostrar barra de progreso para la pista actual"
+
+#: src/audacious/ui_preferences.c:881
+msgid "Delay until filepopup comes up: "
+msgstr "Esperar hasta que la ventana emergente aparezca: "
+
+#: src/audacious/ui_preferences.c:1309
+msgid "Custom"
+msgstr "Personalizada"
+
+#: src/audacious/ui_preferences.c:1352
+msgid "<b>Song Display</b>"
+msgstr "<b>Visualización de las canciones</b>"
+
+#: src/audacious/ui_preferences.c:1361
+msgid "Show song numbers"
+msgstr "Mostrar números de las canciones"
+
+#: src/audacious/ui_preferences.c:1372
+msgid "Show leading zeroes (02:00 instead of 2:00)"
+msgstr "Mostrar ceros a la izquierda (02:00 en lugar de 2:00)"
+
+#: src/audacious/ui_preferences.c:1394
+msgid "Show information about titlestring format"
+msgstr "Mostrar información acerca del formato del título"
+
+#: src/audacious/ui_preferences.c:1410
+msgid "Custom string:"
+msgstr "Cadena personalizada:"
+
+#: src/audacious/ui_preferences.c:1417
+msgid "Title format:"
+msgstr "Formato del título:"
+
+#: src/audacious/ui_preferences.c:1428
+msgid "<b>Popup Information</b>"
+msgstr "<b>Información emergente</b>"
+
+#: src/audacious/ui_preferences.c:1443
+msgid "Show popup information for playlist entries"
+msgstr ""
+"Mostrar información emergente para las entradas de la lista de canciones"
+
+#: src/audacious/ui_preferences.c:1444
+msgid ""
+"Toggles popup information window for the pointed entry in the playlist. The "
+"window shows title of song, name of album, genre, year of publish, track "
+"number, track length, and artwork."
+msgstr ""
+"Activa la información de la ventana emergente para la entrada señalada en la"
+" lista de canciones. La ventana muestra el título de la canción, nombre del "
+"álbum, género, año de publicación, número de pista, duración de la pista y "
+"el arte de tapa."
+
+#: src/audacious/ui_preferences.c:1455
+msgid "Edit settings for popup information"
+msgstr "Editar ajustes para la información emergente"
+
+#: src/audacious/ui_preferences.c:1544
+msgid "Output plugin:"
+msgstr "Complemento de salida:"
+
+#: src/audacious/ui_preferences.c:1603
+msgid "Transport"
+msgstr "Transporte"
+
+#: src/audacious/ui_preferences.c:1603
+msgid "Input"
+msgstr "Entrada"
+
+#: src/audacious/ui_preferences.c:1604
+msgid "Effect"
+msgstr "Efecto"
+
+#: src/audacious/ui_preferences.c:1604
+msgid "Visualization"
+msgstr "Visualización"
+
+#: src/audacious/ui_preferences.c:1604
+msgid "General"
+msgstr "General"
+
+#: src/audacious/ui_preferences.c:1644
+msgid "Audacious Preferences"
+msgstr "Preferencias de Audacious"
+
+#: src/audacious/util.c:120
+#, c-format
+msgid "Could not create directory (%s): %s\n"
+msgstr "No se pudo crear el directorio (%s): %s\n"
+
+#: src/audtool/handlers_playlist.c:273
+msgid "Position not found."
+msgstr "Posición no encontrada."
+
+#: src/audtool/handlers_vitals.c:63
+msgid "No song playing."
+msgstr "No se reproduce ninguna canción."
+
+#: src/libaudcore/audstrings.c:199
+#, c-format
+msgid "Audio CD, track %s"
+msgstr "CD de audio, pista %s"
+
+#: src/libaudcore/tuple.c:536
+msgid "Mono"
+msgstr "Mono"
+
+#: src/libaudcore/tuple.c:538
+msgid "Stereo"
+msgstr "Estéreo"
+
+#: src/libaudcore/tuple.c:540
+#, c-format
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] "%d canal"
+msgstr[1] "%d canales"
+
+#: src/libaudgui/about.c:52 src/libaudgui/about.c:115
+msgid "Credits"
+msgstr "Créditos:"
+
+#: src/libaudgui/about.c:52
+msgid "Translators"
+msgstr "Traductores"
+
+#: src/libaudgui/about.c:91
+msgid "About Audacious"
+msgstr "Acerca de Audacious"
+
+#: src/libaudgui/confirm.c:76
+#, c-format
+msgid ""
+"Are you sure you want to close %s?  If you do, any changes made since the "
+"playlist was exported will be lost."
+msgstr ""
+"¿Estas seguro que querés cerrar %s?  Si lo haces, se perderá cualquier "
+"cambio realizado desde que fue exportada la lista de reproducción."
+
+#: src/libaudgui/confirm.c:89
+msgid "_Don't show this message again"
+msgstr "_No mostrar este mensaje otra vez"
+
+#: src/libaudgui/confirm.c:126
+msgid "Rename Playlist"
+msgstr "Renombrar la lista de reproducción"
+
+#: src/libaudgui/effects-menu.c:74
+msgid "settings ..."
+msgstr "ajustes ..."
+
+#: src/libaudgui/equalizer.c:51
+msgid "_Enable"
+msgstr "_Activar"
+
+#: src/libaudgui/equalizer.c:123
+msgid "31 Hz"
+msgstr "31 Hz"
+
+#: src/libaudgui/equalizer.c:123
+msgid "63 Hz"
+msgstr "63 Hz"
+
+#: src/libaudgui/equalizer.c:124
+msgid "125 Hz"
+msgstr "125 Hz"
+
+#: src/libaudgui/equalizer.c:124
+msgid "250 Hz"
+msgstr "250 Hz"
+
+#: src/libaudgui/equalizer.c:124
+msgid "500 Hz"
+msgstr "500 Hz"
+
+#: src/libaudgui/equalizer.c:124
+msgid "1 kHz"
+msgstr "1 kHz"
+
+#: src/libaudgui/equalizer.c:124
+msgid "2 kHz"
+msgstr "2 kHz"
+
+#: src/libaudgui/equalizer.c:125
+msgid "4 kHz"
+msgstr "4 kHz"
+
+#: src/libaudgui/equalizer.c:125
+msgid "8 kHz"
+msgstr "8 kHz"
+
+#: src/libaudgui/equalizer.c:125
+msgid "16 kHz"
+msgstr "16 kHz"
+
+#: src/libaudgui/equalizer.c:130
+msgid "Equalizer"
+msgstr "Ecualizador"
+
+#: src/libaudgui/equalizer.c:146
+msgid "Preamp"
+msgstr "Preamplificación"
+
+#: src/libaudgui/infopopup.c:207
+msgid "Track Number"
+msgstr "Número de pista"
+
+#: src/libaudgui/infopopup.c:209
+msgid "Track Length"
+msgstr "Duración de la pista:"
+
+#: src/libaudgui/infowin.c:75
+msgid "Acid Jazz"
+msgstr "Jazz ácido"
+
+#: src/libaudgui/infowin.c:76
+msgid "Acid Rock"
+msgstr "Rock ácido"
+
+#: src/libaudgui/infowin.c:77
+msgid "Ambient"
+msgstr "Ambiental"
+
+#: src/libaudgui/infowin.c:78
+msgid "Bebop"
+msgstr "Bebop"
+
+#: src/libaudgui/infowin.c:79
+msgid "Bluegrass"
+msgstr "Bluegrass"
+
+#: src/libaudgui/infowin.c:80
+msgid "Blues"
+msgstr "Blues"
+
+#: src/libaudgui/infowin.c:81
+msgid "Chamber Music"
+msgstr "Música de cámara"
+
+#: src/libaudgui/infowin.c:82
+msgid "Classical"
+msgstr "Clásica"
+
+#: src/libaudgui/infowin.c:83
+msgid "Country"
+msgstr "Country"
+
+#: src/libaudgui/infowin.c:84
+msgid "Death Metal"
+msgstr "Death Metal"
+
+#: src/libaudgui/infowin.c:85
+msgid "Disco"
+msgstr "Disco"
+
+#: src/libaudgui/infowin.c:86
+msgid "Easy Listening"
+msgstr "Easy Listening"
+
+#: src/libaudgui/infowin.c:87
+msgid "Folk"
+msgstr "Folclore"
+
+#: src/libaudgui/infowin.c:88
+msgid "Funk"
+msgstr "Funk"
+
+#: src/libaudgui/infowin.c:89
+msgid "Gangsta Rap"
+msgstr "Gangsta Rap"
+
+#: src/libaudgui/infowin.c:90
+msgid "Gospel"
+msgstr "Gospel"
+
+#: src/libaudgui/infowin.c:91
+msgid "Grunge"
+msgstr "Grunge"
+
+#: src/libaudgui/infowin.c:92
+msgid "Hard Rock"
+msgstr "Hard Rock"
+
+#: src/libaudgui/infowin.c:93
+msgid "Heavy Metal"
+msgstr "Heavy Metal"
+
+#: src/libaudgui/infowin.c:94
+msgid "Hip-hop"
+msgstr "Hip-hop"
+
+#: src/libaudgui/infowin.c:95
+msgid "House"
+msgstr "House"
+
+#: src/libaudgui/infowin.c:96
+msgid "Jazz"
+msgstr "Jazz"
+
+#: src/libaudgui/infowin.c:97
+msgid "Jungle"
+msgstr "Jungle"
+
+#: src/libaudgui/infowin.c:98
+msgid "Metal"
+msgstr "Metal"
+
+#: src/libaudgui/infowin.c:99
+msgid "New Age"
+msgstr "New age"
+
+#: src/libaudgui/infowin.c:100
+msgid "New Wave"
+msgstr "New wave"
+
+#: src/libaudgui/infowin.c:101
+msgid "Noise"
+msgstr "Noise"
+
+#: src/libaudgui/infowin.c:102
+msgid "Pop"
+msgstr "Pop"
+
+#: src/libaudgui/infowin.c:103
+msgid "Punk Rock"
+msgstr "Rock Punk"
+
+#: src/libaudgui/infowin.c:104
+msgid "Rap"
+msgstr "Rap"
+
+#: src/libaudgui/infowin.c:105
+msgid "Reggae"
+msgstr "Reggae"
+
+#: src/libaudgui/infowin.c:106
+msgid "Rock"
+msgstr "Rock"
+
+#: src/libaudgui/infowin.c:107
+msgid "Rock and Roll"
+msgstr "Rock and Roll"
+
+#: src/libaudgui/infowin.c:108
+msgid "Rhythm and Blues"
+msgstr "Rhythm and Blues"
+
+#: src/libaudgui/infowin.c:109
+msgid "Ska"
+msgstr "Ska"
+
+#: src/libaudgui/infowin.c:110
+msgid "Soul"
+msgstr "Soul"
+
+#: src/libaudgui/infowin.c:111
+msgid "Swing"
+msgstr "Swing"
+
+#: src/libaudgui/infowin.c:112
+msgid "Techno"
+msgstr "Techno"
+
+#: src/libaudgui/infowin.c:113
+msgid "Trip-hop"
+msgstr "Trip-hop"
+
+#: src/libaudgui/infowin.c:177 src/libaudgui/infowin.c:363
+#: src/libaudgui/infowin.c:366 src/libaudgui/infowin.c:369
+msgid "<span size=\"small\">n/a</span>"
+msgstr "<span size=\"small\">n/a</span>"
+
+#: src/libaudgui/infowin.c:267
+msgid "Metadata updated successfully"
+msgstr "Metadata actualizada sin problemas"
+
+#: src/libaudgui/infowin.c:272
+msgid "Metadata updating failed"
+msgstr "Falló la actualización de metadatos"
+
+#: src/libaudgui/infowin.c:320
+msgid "Track Information"
+msgstr "Información de pista"
+
+#: src/libaudgui/infowin.c:352
+msgid "<span size=\"small\">Format:</span>"
+msgstr "<span size=\"small\">Formato:</span>"
+
+#: src/libaudgui/infowin.c:356
+msgid "<span size=\"small\">Quality:</span>"
+msgstr "<span size=\"small\">Calidad:</span>"
+
+#: src/libaudgui/infowin.c:359
+msgid "<span size=\"small\">Bitrate:</span>"
+msgstr "<span size=\"small\">Bitrate:</span>"
+
+#: src/libaudgui/infowin.c:389
+msgid "<span size=\"small\">Title</span>"
+msgstr "<span size=\"small\">Título</span>"
+
+#: src/libaudgui/infowin.c:401
+msgid "<span size=\"small\">Artist</span>"
+msgstr "<span size=\"small\">Artista</span>"
+
+#: src/libaudgui/infowin.c:413
+msgid "<span size=\"small\">Album</span>"
+msgstr "<span size=\"small\">Álbum</span>"
+
+#: src/libaudgui/infowin.c:425
+msgid "<span size=\"small\">Comment</span>"
+msgstr "<span size=\"small\">Comentario</span>"
+
+#: src/libaudgui/infowin.c:437
+msgid "<span size=\"small\">Genre</span>"
+msgstr "<span size=\"small\">Género</span>"
+
+#: src/libaudgui/infowin.c:458
+msgid "<span size=\"small\">Year</span>"
+msgstr "<span size=\"small\">Año</span>"
+
+#: src/libaudgui/infowin.c:469
+msgid "<span size=\"small\">Track Number</span>"
+msgstr "<span size=\"small\">Numero de pista</span>"
+
+#: src/libaudgui/infowin.c:548
+#, c-format
+msgid "%d kb/s"
+msgstr "%d kb/s"
+
+#: src/libaudgui/infowin.c:575
+#, c-format
+msgid "No info available for %s.\n"
+msgstr "No hay información disponible para %s.\n"
+
+#: src/libaudgui/jump-to-time.c:72
+msgid "Jump to Time"
+msgstr "Ir a tiempo"
+
+#: src/libaudgui/jump-to-time.c:87
+msgid "mm:ss"
+msgstr "mm:ss"
+
+#: src/libaudgui/playlists.c:33
+msgid "Export Playlist"
+msgstr "Exportar lista de reproducción"
+
+#: src/libaudgui/playlists.c:33
+msgid "Import Playlist"
+msgstr "Importar lista de reproducción"
+
+#: src/libaudgui/playlists.c:66
+#, c-format
+msgid "Overwrite %s?"
+msgstr "¿Sobrescribir %s?"
+
+#: src/libaudgui/queue-manager.c:196
+msgid "Queue Manager"
+msgstr "Gestor de cola de reproducción"
+
+#: src/libaudgui/ui_fileopener.c:109
+msgid "Open Files"
+msgstr "Abrir archivos"
+
+#: src/libaudgui/ui_fileopener.c:109
+msgid "Add Files"
+msgstr "Añadir archivos..."
+
+#: src/libaudgui/ui_fileopener.c:111
+msgid "Close dialog on Open"
+msgstr "Cerrar diálogo al abrir"
+
+#: src/libaudgui/ui_fileopener.c:111
+msgid "Close dialog on Add"
+msgstr "Cerrar diálogo al añadir"
+
+#: src/libaudgui/ui_jumptotrack.c:109 src/libaudgui/ui_jumptotrack.c:117
+#: src/libaudgui/ui_jumptotrack.c:326
+msgid "_Queue"
+msgstr "_Cola"
+
+#: src/libaudgui/ui_jumptotrack.c:115
+msgid "Un_queue"
+msgstr "_Remover de la cola"
+
+#: src/libaudgui/ui_jumptotrack.c:258
+msgid "Jump to Song"
+msgstr "Ir a una canción"
+
+#: src/libaudgui/ui_jumptotrack.c:281
+msgid "Filter: "
+msgstr "Filtro: "
+
+#: src/libaudgui/ui_jumptotrack.c:282
+msgid "_Filter:"
+msgstr "_Filtro:"
+
+#: src/libaudgui/ui_jumptotrack.c:292
+msgid "Remember"
+msgstr "Recordar"
+
+#: src/libaudgui/ui_jumptotrack.c:299
+msgid "Clea_r"
+msgstr "Limpia_r"
+
+#: src/libaudgui/ui_jumptotrack.c:319
+msgid "Close on Jump"
+msgstr "Cerrar al saltar"
+
+#: src/libaudgui/ui_playlist_manager.c:253
+msgid "Playlist Manager"
+msgstr "Administrador de la lista de reproducción"
+
+#: src/libaudgui/ui_playlist_manager.c:280
+msgid "Entries"
+msgstr "Entradas"
+
+#: src/libaudgui/ui_playlist_manager.c:301
+msgid "_Rename"
+msgstr "_Renombrar"
+
+#: src/libaudgui/ui_playlist_manager.c:325
+msgid "_Close dialog on activating playlist"
+msgstr "_Cerrar diálogo al activar la lista de reproducción"
+
+#: src/libaudgui/ui_urlopener.c:48
+msgid "Open URL"
+msgstr "Abrir URL"
+
+#: src/libaudgui/ui_urlopener.c:48
+msgid "Add URL"
+msgstr "Añadir URL"
+
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+"\n"
+"(Se han ocultado el resto de mensajes.)"
+
+#: src/libeggsmclient/eggdesktopfile.c:165
+msgid "File is not a valid .desktop file"
+msgstr "El archivo no es un archivo .desktop válido"
+
+#: src/libeggsmclient/eggdesktopfile.c:191
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "Versión del archivo de escritorio no reconocida '%s'"
+
+#: src/libeggsmclient/eggdesktopfile.c:974
+#, c-format
+msgid "Starting %s"
+msgstr "Iniciando %s"
+
+#: src/libeggsmclient/eggdesktopfile.c:1116
+msgid "Application does not accept documents on command line"
+msgstr "La aplicación no acepta documentos en la linea de comandos"
+
+#: src/libeggsmclient/eggdesktopfile.c:1184
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "Opción de cargar no reconocida: %d"
+
+#: src/libeggsmclient/eggdesktopfile.c:1391
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr ""
+"No se pueden pasar documentos URI a una entrada de escritorio 'Type=Link'"
+
+#: src/libeggsmclient/eggdesktopfile.c:1412
+msgid "Not a launchable item"
+msgstr "No es un objeto lanzable"
+
+#: src/libeggsmclient/eggsmclient.c:226
+msgid "Disable connection to session manager"
+msgstr "Conexión con el administrador de sesión deshabilitada"
+
+#: src/libeggsmclient/eggsmclient.c:229
+msgid "Specify file containing saved configuration"
+msgstr "Especificar archivo que contiene la configuración guardada"
+
+#: src/libeggsmclient/eggsmclient.c:229
+msgid "FILE"
+msgstr "ARCHIVO"
+
+#: src/libeggsmclient/eggsmclient.c:232
+msgid "Specify session management ID"
+msgstr "Especifique la ID de administración de sesiones"
+
+#: src/libeggsmclient/eggsmclient.c:232
+msgid "ID"
+msgstr "ID"
+
+#: src/libeggsmclient/eggsmclient.c:253
+msgid "Session management options:"
+msgstr "Opciones de la gestión de sesiones:"
+
+#: src/libeggsmclient/eggsmclient.c:254
+msgid "Show session management options"
+msgstr "Mostrar las opciones de gestión de sesiones"
+
+
diff --git a/po/es_MX.po b/po/es_MX.po
new file mode 100644
index 0000000..174706a
--- /dev/null
+++ b/po/es_MX.po
@@ -0,0 +1,1238 @@
+# Spanish (Mexican) translation for Audacious
+# Copyright (C) Audacious translators
+# This file is distributed under the same license as the Audacious package.
+#
+# Translators:
+# Jorge A. García Sosa <jagsmd at gmail.com>, 2012.
+msgid ""
+msgstr ""
+"Project-Id-Version: Audacious\n"
+"Report-Msgid-Bugs-To: http://redmine.audacious-media-player.org/\n"
+"POT-Creation-Date: 2012-01-11 08:54-0500\n"
+"PO-Revision-Date: 2012-01-12 01:21+0000\n"
+"Last-Translator: Jorge A. García Sosa <jagsmd at gmail.com>\n"
+"Language-Team: Spanish (Mexican)\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: es_MX\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+
+#: src/audacious/adder.c:77
+msgid "Searching ..."
+msgstr "Buscando..."
+
+#: src/audacious/adder.c:113
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] "%d archivo encontrado"
+msgstr[1] "%d archivos encontrados"
+
+#: src/audacious/chardet.c:39
+msgid "  (invalid UTF-8)"
+msgstr "(UTF-8 no válido)"
+
+#: src/audacious/credits.c:37
+msgid "Core developers:"
+msgstr "Desarroladores del núcleo:"
+
+#: src/audacious/credits.c:51
+msgid "Graphics:"
+msgstr "Gráficos:"
+
+#: src/audacious/credits.c:56
+msgid "Default skin:"
+msgstr "Skin por defecto:"
+
+#: src/audacious/credits.c:62
+msgid "Plugin development:"
+msgstr "Desarrollo de plugin:"
+
+#: src/audacious/credits.c:85
+msgid "Patch authors:"
+msgstr "Autores de parches"
+
+#: src/audacious/credits.c:131
+msgid "1.x developers:"
+msgstr "Desarrolladores 1.x:"
+
+#: src/audacious/credits.c:153
+msgid "BMP Developers:"
+msgstr "Desarrolladores BMP:"
+
+#: src/audacious/credits.c:185
+msgid "Belarusian:"
+msgstr "Bieloruso:"
+
+#: src/audacious/credits.c:188
+msgid "Basque:"
+msgstr "Vasco:"
+
+#: src/audacious/credits.c:191
+msgid "Brazilian Portuguese:"
+msgstr "Portugués brasileño:"
+
+#: src/audacious/credits.c:196
+msgid "Breton:"
+msgstr "Bretón:"
+
+#: src/audacious/credits.c:199
+msgid "Bulgarian:"
+msgstr "Búlgaro"
+
+#: src/audacious/credits.c:202
+msgid "Catalan:"
+msgstr "Catalán:"
+
+#: src/audacious/credits.c:206
+msgid "Chinese:"
+msgstr "Chino:"
+
+#: src/audacious/credits.c:209
+msgid "Croatian:"
+msgstr "Croata:"
+
+#: src/audacious/credits.c:212
+msgid "Czech:"
+msgstr "Checo:"
+
+#: src/audacious/credits.c:215
+msgid "Dutch:"
+msgstr "Neerlandés:"
+
+#: src/audacious/credits.c:219
+msgid "Estonian:"
+msgstr "Estonio:"
+
+#: src/audacious/credits.c:222
+msgid "Finnish:"
+msgstr "Finés:"
+
+#: src/audacious/credits.c:227
+msgid "French:"
+msgstr "Francés:"
+
+#: src/audacious/credits.c:233
+msgid "German:"
+msgstr "Alemán:"
+
+#: src/audacious/credits.c:240
+msgid "Georgian:"
+msgstr "Georgiano:"
+
+#: src/audacious/credits.c:243
+msgid "Greek:"
+msgstr "Griego:"
+
+#: src/audacious/credits.c:248
+msgid "Hindi:"
+msgstr "Hindi:"
+
+#: src/audacious/credits.c:251
+msgid "Hungarian:"
+msgstr "Húngaro:"
+
+#: src/audacious/credits.c:255
+msgid "Italian:"
+msgstr "italiano:"
+
+#: src/audacious/credits.c:260
+msgid "Japanese:"
+msgstr "Japonés:"
+
+#: src/audacious/credits.c:263
+msgid "Korean:"
+msgstr "Coreano:"
+
+#: src/audacious/credits.c:266
+msgid "Latvian:"
+msgstr "Letón:"
+
+#: src/audacious/credits.c:269
+msgid "Lithuanian:"
+msgstr "Lituano:"
+
+#: src/audacious/credits.c:274
+msgid "Macedonian:"
+msgstr "Macedonio:"
+
+#: src/audacious/credits.c:277
+msgid "Mexican Spanish:"
+msgstr "Español de México:"
+
+#: src/audacious/credits.c:280
+msgid "Polish:"
+msgstr "Polaco:"
+
+#: src/audacious/credits.c:287
+msgid "Portuguese:"
+msgstr "Portugués:"
+
+#: src/audacious/credits.c:290
+msgid "Romanian:"
+msgstr "Rumano:"
+
+#: src/audacious/credits.c:294
+msgid "Russian:"
+msgstr "Ruso:"
+
+#: src/audacious/credits.c:298
+msgid "Serbian (Latin):"
+msgstr "Serbio(Latín):"
+
+#: src/audacious/credits.c:301
+msgid "Serbian (Cyrillic):"
+msgstr "Serbio(Cirílico)"
+
+#: src/audacious/credits.c:305
+msgid "Simplified Chinese:"
+msgstr "Chino simplificado:"
+
+#: src/audacious/credits.c:308
+msgid "Slovak:"
+msgstr "Eslovaco:"
+
+#: src/audacious/credits.c:312
+msgid "Spanish:"
+msgstr "Español:"
+
+#: src/audacious/credits.c:320
+msgid "Swedish:"
+msgstr "Sueco:"
+
+#: src/audacious/credits.c:323
+msgid "Traditional Chinese:"
+msgstr "Chino tradicional:"
+
+#: src/audacious/credits.c:329
+msgid "Turkish:"
+msgstr "Turco:"
+
+#: src/audacious/credits.c:333
+msgid "Ukrainian:"
+msgstr "Ucraniano:"
+
+#: src/audacious/credits.c:338
+msgid "Vietnamese:"
+msgstr "Vietnamita"
+
+#: src/audacious/credits.c:341
+msgid "Welsh:"
+msgstr "Galés"
+
+#: src/audacious/equalizer_preset.c:180
+#, c-format
+msgid "Error importing Winamp EQF file '%s'"
+msgstr "Error al importar archivo EQF de Winamp '%s' "
+
+#: src/audacious/main.c:243
+msgid "Skip backwards in playlist"
+msgstr "Saltar hacia atrás en la lista de reproducción"
+
+#: src/audacious/main.c:244
+msgid "Start playing current playlist"
+msgstr "Comenzar a reproducir la lista actual"
+
+#: src/audacious/main.c:245
+msgid "Pause current song"
+msgstr "Pausar pista actual"
+
+#: src/audacious/main.c:246
+msgid "Stop current song"
+msgstr "Detener pista actual"
+
+#: src/audacious/main.c:247
+msgid "Pause if playing, play otherwise"
+msgstr "Pausar si está reproduciendo; de lo contrario, reproducir"
+
+#: src/audacious/main.c:248
+msgid "Skip forward in playlist"
+msgstr "Saltar hacia adelante en la lista de reproducción"
+
+#: src/audacious/main.c:249
+msgid "Display Jump to File dialog"
+msgstr "Mostrar dialogo Saltar al Archivo"
+
+#: src/audacious/main.c:250
+msgid "Add files to the playlist"
+msgstr "Agregar archivos a la lista de reproducción"
+
+#: src/audacious/main.c:251
+msgid "Add new files to a temporary playlist"
+msgstr "Agregar nuevos archivos a una lista de reproducción temporal"
+
+#: src/audacious/main.c:252
+msgid "Display the main window"
+msgstr "Mostrar la ventana principal"
+
+#: src/audacious/main.c:253
+msgid "Show version"
+msgstr "Mostrar versión"
+
+#: src/audacious/main.c:254
+msgid "Print debugging messages"
+msgstr "Imprimir mensajes debugging"
+
+#: src/audacious/main.c:255
+msgid "Headless mode (beta)"
+msgstr "Modo sin encabezado (beta)"
+
+#: src/audacious/main.c:256
+msgid "FILE..."
+msgstr "ARCHIVO..."
+
+#: src/audacious/main.c:268
+msgid "- play multimedia files"
+msgstr " - Reproducir archivos multimedia"
+
+#: src/audacious/main.c:278
+#, c-format
+msgid ""
+"%s: %s\n"
+"Try `%s --help' for more information.\n"
+msgstr ""
+"%s: %s\n"
+"Intenta `%s --ayuda' para mayor información\n"
+
+#: src/audacious/main.c:573
+msgid "Audacious"
+msgstr "Audacious"
+
+#: src/audacious/playback.c:307
+#, c-format
+msgid "No decoder found for %s."
+msgstr "No se encontró un descodificador para %s."
+
+#: src/audacious/playlist-files.c:53
+#, c-format
+msgid "Cannot %s %s: unsupported file extension."
+msgstr "No se puede %s %s: extensión de archivo no soportada."
+
+#: src/audacious/playlist-files.c:54
+msgid "save"
+msgstr "guardar"
+
+#: src/audacious/playlist-files.c:54
+msgid "load"
+msgstr "cargar"
+
+#: src/audacious/playlist-new.c:131
+msgid "New Playlist"
+msgstr "Nueva Lista de reproducción"
+
+#: src/audacious/playlist-new.c:132
+msgid "Now Playing"
+msgstr "Reproduciendo"
+
+#: src/audacious/playlist-new.c:1630
+msgid ""
+"The playlist cannot be sorted because metadata scanning is still in progress"
+" (or has been disabled)."
+msgstr ""
+"La lista de reproducción no puede ser ordenada porque la exploración de "
+"metadatos está en progreso (o ha sido deshabilitada)"
+
+#: src/audacious/ui_preferences.c:85
+msgid "Audio"
+msgstr "Audio"
+
+#: src/audacious/ui_preferences.c:86
+msgid "Network"
+msgstr "Red"
+
+#: src/audacious/ui_preferences.c:87 src/audacious/ui_preferences.c:1603
+msgid "Playlist"
+msgstr "Lista de Reproducción"
+
+#: src/audacious/ui_preferences.c:88
+msgid "Plugins"
+msgstr "Plugins"
+
+#: src/audacious/ui_preferences.c:94 src/libaudgui/infopopup.c:199
+msgid "Artist"
+msgstr "Artista"
+
+#: src/audacious/ui_preferences.c:95 src/libaudgui/infopopup.c:201
+msgid "Album"
+msgstr "Álbum"
+
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:197
+#: src/libaudgui/ui_playlist_manager.c:279
+msgid "Title"
+msgstr "Título"
+
+#: src/audacious/ui_preferences.c:97
+msgid "Tracknumber"
+msgstr "Número de pista"
+
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:203
+msgid "Genre"
+msgstr "Género"
+
+#: src/audacious/ui_preferences.c:99
+msgid "Filename"
+msgstr "Nombre de archivo"
+
+#: src/audacious/ui_preferences.c:100
+msgid "Filepath"
+msgstr "Ruta de archivo"
+
+#: src/audacious/ui_preferences.c:101
+msgid "Date"
+msgstr "Fecha"
+
+#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:205
+msgid "Year"
+msgstr "Año"
+
+#: src/audacious/ui_preferences.c:103
+msgid "Comment"
+msgstr "Comentario"
+
+#: src/audacious/ui_preferences.c:104
+msgid "Codec"
+msgstr "Codec"
+
+#: src/audacious/ui_preferences.c:105
+msgid "Quality"
+msgstr "Calidad"
+
+#: src/audacious/ui_preferences.c:111
+msgid "None"
+msgstr "Ninguno"
+
+#: src/audacious/ui_preferences.c:112
+msgid "Arabic"
+msgstr "Árabe"
+
+#: src/audacious/ui_preferences.c:113
+msgid "Baltic"
+msgstr "Báltico"
+
+#: src/audacious/ui_preferences.c:114
+msgid "Chinese"
+msgstr "Chino"
+
+#: src/audacious/ui_preferences.c:115
+msgid "Greek"
+msgstr "Griego"
+
+#: src/audacious/ui_preferences.c:116
+msgid "Hebrew"
+msgstr "Hebreo"
+
+#: src/audacious/ui_preferences.c:117
+msgid "Japanese"
+msgstr "Japonés"
+
+#: src/audacious/ui_preferences.c:118
+msgid "Korean"
+msgstr "Coreano"
+
+#: src/audacious/ui_preferences.c:119
+msgid "Polish"
+msgstr "Polaco"
+
+#: src/audacious/ui_preferences.c:120
+msgid "Russian"
+msgstr "Ruso"
+
+#: src/audacious/ui_preferences.c:121
+msgid "Taiwanese"
+msgstr "Taiwanés"
+
+#: src/audacious/ui_preferences.c:122
+msgid "Turkish"
+msgstr "Turco"
+
+#: src/audacious/ui_preferences.c:144
+msgid "Album mode"
+msgstr "Modo de Álbum"
+
+#: src/audacious/ui_preferences.c:147
+msgid "<b>Output Settings</b>"
+msgstr "Ajustes de Salida"
+
+#: src/audacious/ui_preferences.c:149
+msgid "Bit depth:"
+msgstr "Profundida de bit"
+
+#: src/audacious/ui_preferences.c:152
+msgid "Buffer size:"
+msgstr "Tamaño del Buffer:"
+
+#: src/audacious/ui_preferences.c:154
+msgid "ms"
+msgstr "ms"
+
+#: src/audacious/ui_preferences.c:155
+msgid "Use software volume control (not recommended)"
+msgstr "Usar control de volumen por software (no recomendado)"
+
+#: src/audacious/ui_preferences.c:157
+msgid "<b>Replay Gain</b>"
+msgstr "<b>Replay Gain</b>"
+
+#: src/audacious/ui_preferences.c:158
+msgid "Enable Replay Gain"
+msgstr "Habilitar Replay Gain"
+
+#: src/audacious/ui_preferences.c:161
+msgid "Prevent clipping (recommended)"
+msgstr "Evitar distorsiones clip (recomendado)"
+
+#: src/audacious/ui_preferences.c:163
+msgid "<b>Adjust Levels</b>"
+msgstr "<b>Ajustar Niveles</b>"
+
+#: src/audacious/ui_preferences.c:164
+msgid "Amplify all files:"
+msgstr "Amplificar todos los archivos:"
+
+#: src/audacious/ui_preferences.c:166 src/audacious/ui_preferences.c:169
+msgid "dB"
+msgstr "dB"
+
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify untagged files:"
+msgstr "Amplificar archivos sin etiquetas:"
+
+#: src/audacious/ui_preferences.c:172
+msgid "Proxy hostname:"
+msgstr "Nombre del host proxy:"
+
+#: src/audacious/ui_preferences.c:173
+msgid "Proxy port:"
+msgstr "Puerto proxy:"
+
+#: src/audacious/ui_preferences.c:176
+msgid "Proxy username:"
+msgstr "nombre de usuario proxy:"
+
+#: src/audacious/ui_preferences.c:177
+msgid "Proxy password:"
+msgstr "contraseña proxy:"
+
+#: src/audacious/ui_preferences.c:181
+msgid "<b>Proxy Configuration</b>"
+msgstr "<b>Configuración del Proxy</b>"
+
+#: src/audacious/ui_preferences.c:182
+msgid "Enable proxy usage"
+msgstr "Habilitar uso del proxy"
+
+#: src/audacious/ui_preferences.c:185
+msgid "Use authentication with proxy"
+msgstr "Usar autenticación con el proxy"
+
+#: src/audacious/ui_preferences.c:193
+msgid "Auto character encoding detector for:"
+msgstr "Detector automático de codificación de caracteres para:"
+
+#: src/audacious/ui_preferences.c:198
+msgid "Fallback character encodings:"
+msgstr "Codigicación de caracteres alternativa:"
+
+#: src/audacious/ui_preferences.c:202
+msgid "<b>Behavior</b>"
+msgstr "<b>Comportamiento</b>"
+
+#: src/audacious/ui_preferences.c:203
+msgid "Continue playback on startup"
+msgstr "Continuar reproducción al iniciar"
+
+#: src/audacious/ui_preferences.c:205
+msgid "Advance when the current song is deleted"
+msgstr "Avanzar cuando la pista actual sea borrada"
+
+#: src/audacious/ui_preferences.c:207
+msgid "Clear the playlist when opening files"
+msgstr "Limpiar la lista de reproducción al abrir archivos"
+
+#: src/audacious/ui_preferences.c:209
+msgid "Open files in a temporary playlist"
+msgstr "Abrir archivos en una lista de reproducción temporal"
+
+#: src/audacious/ui_preferences.c:211
+msgid "<b>Metadata</b>"
+msgstr "<b>Metadatos</b>"
+
+#: src/audacious/ui_preferences.c:212
+msgid "Do not load metadata for songs until played"
+msgstr "No cargar metadatos de pistas hasta su reproducción"
+
+#: src/audacious/ui_preferences.c:230
+msgid "TITLE"
+msgstr "TÍTULO"
+
+#: src/audacious/ui_preferences.c:231
+msgid "ARTIST - TITLE"
+msgstr "ARTISTA - TÍTULO"
+
+#: src/audacious/ui_preferences.c:232
+msgid "ARTIST - ALBUM - TITLE"
+msgstr "ARTISTA - ÁLBUM - TÍTULO"
+
+#: src/audacious/ui_preferences.c:233
+msgid "ARTIST - ALBUM - TRACK. TITLE"
+msgstr "ARTISTA - ÁLBUM - PISTA. TÍTULO"
+
+#: src/audacious/ui_preferences.c:234
+msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
+msgstr "ARTISTA [ÁLBUM] - PISTA. TÍTULO"
+
+#: src/audacious/ui_preferences.c:235
+msgid "ALBUM - TITLE"
+msgstr "ÁLBUM - TÍTULO"
+
+#: src/audacious/ui_preferences.c:556
+msgid "Category"
+msgstr "Categoría"
+
+#: src/audacious/ui_preferences.c:780
+msgid "Popup Information Settings"
+msgstr "Información en Ventanas Emergentes"
+
+#: src/audacious/ui_preferences.c:789
+msgid "<b>Cover image retrieve</b>"
+msgstr "<b>Recuperar imágenes de portada</b>"
+
+#: src/audacious/ui_preferences.c:794
+msgid ""
+"While searching for the album's cover, Audacious looks for certain words in "
+"the filename. You can specify those words in the lists below, separated "
+"using commas."
+msgstr ""
+"Audacious busca ciertas palabras en el nombre del archivo mientras recupera "
+"la portada del álbum. Puedes especificar éstas palabras en la lista de "
+"abajo, sepáralas usando comas."
+
+#: src/audacious/ui_preferences.c:811
+msgid "Exclude:"
+msgstr "Excluir:"
+
+#: src/audacious/ui_preferences.c:818
+msgid "Include:"
+msgstr "Incluir:"
+
+#: src/audacious/ui_preferences.c:835
+msgid "Recursively search for cover"
+msgstr "Búscar portada recursívamente"
+
+#: src/audacious/ui_preferences.c:845
+msgid "Search depth: "
+msgstr "Profundidad de búsqueda:"
+
+#: src/audacious/ui_preferences.c:859
+msgid "Use per-file cover"
+msgstr "Utilizar una portada por archivo"
+
+#: src/audacious/ui_preferences.c:862
+msgid "<b>Miscellaneous</b>"
+msgstr "<b>Varios</b>"
+
+#: src/audacious/ui_preferences.c:871
+msgid "Show Progress bar for the current track"
+msgstr "Mostrar barra de progreso para la pista actual"
+
+#: src/audacious/ui_preferences.c:881
+msgid "Delay until filepopup comes up: "
+msgstr "Retrasar hasta que llegue el archivo emergente:"
+
+#: src/audacious/ui_preferences.c:1309
+msgid "Custom"
+msgstr "Personalizar"
+
+#: src/audacious/ui_preferences.c:1352
+msgid "<b>Song Display</b>"
+msgstr "<b>Visualización  de la Pista</b>"
+
+#: src/audacious/ui_preferences.c:1361
+msgid "Show song numbers"
+msgstr "Mostrar números de pista"
+
+#: src/audacious/ui_preferences.c:1372
+msgid "Show leading zeroes (02:00 instead of 2:00)"
+msgstr "Mostrar ceros a la izquierda (02:00 en vez de 2:00)"
+
+#: src/audacious/ui_preferences.c:1394
+msgid "Show information about titlestring format"
+msgstr "Mostrar información sobre la cadena del formato de título"
+
+#: src/audacious/ui_preferences.c:1410
+msgid "Custom string:"
+msgstr "cadena personalizada:"
+
+#: src/audacious/ui_preferences.c:1417
+msgid "Title format:"
+msgstr "Formato de Título"
+
+#: src/audacious/ui_preferences.c:1428
+msgid "<b>Popup Information</b>"
+msgstr "Información Emergente"
+
+#: src/audacious/ui_preferences.c:1443
+msgid "Show popup information for playlist entries"
+msgstr ""
+"Mostrar información emergente para las entradas de la Lista de Reproducción"
+
+#: src/audacious/ui_preferences.c:1444
+msgid ""
+"Toggles popup information window for the pointed entry in the playlist. The "
+"window shows title of song, name of album, genre, year of publish, track "
+"number, track length, and artwork."
+msgstr ""
+"Cambiar la ventana de información emergente por la entrada apuntada en la "
+"lista de reproducción. La ventana muestra título de la pista, nombre del "
+"álbum, género, año de publicación, número de pista, duración de la pista y "
+"arte."
+
+#: src/audacious/ui_preferences.c:1455
+msgid "Edit settings for popup information"
+msgstr "Editar ajustes de información emergente"
+
+#: src/audacious/ui_preferences.c:1544
+msgid "Output plugin:"
+msgstr "Plugin de Salida:"
+
+#: src/audacious/ui_preferences.c:1603
+msgid "Transport"
+msgstr "Transporte"
+
+#: src/audacious/ui_preferences.c:1603
+msgid "Input"
+msgstr "Entrada"
+
+#: src/audacious/ui_preferences.c:1604
+msgid "Effect"
+msgstr "Efecto"
+
+#: src/audacious/ui_preferences.c:1604
+msgid "Visualization"
+msgstr "Visualización"
+
+#: src/audacious/ui_preferences.c:1604
+msgid "General"
+msgstr "General"
+
+#: src/audacious/ui_preferences.c:1644
+msgid "Audacious Preferences"
+msgstr "Preferencias de Audacious"
+
+#: src/audacious/util.c:120
+#, c-format
+msgid "Could not create directory (%s): %s\n"
+msgstr "No se pudo crear el directorio (%s): %s\n"
+
+#: src/audtool/handlers_playlist.c:273
+msgid "Position not found."
+msgstr "Posición no encontrada"
+
+#: src/audtool/handlers_vitals.c:63
+msgid "No song playing."
+msgstr "Ninguna pista se está reproduciendo"
+
+#: src/libaudcore/audstrings.c:199
+#, c-format
+msgid "Audio CD, track %s"
+msgstr "CD de Audio, pista %s"
+
+#: src/libaudcore/tuple.c:536
+msgid "Mono"
+msgstr "Monoaural"
+
+#: src/libaudcore/tuple.c:538
+msgid "Stereo"
+msgstr "Estéreo"
+
+#: src/libaudcore/tuple.c:540
+#, c-format
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] "%d canal"
+msgstr[1] "%d canales"
+
+#: src/libaudgui/about.c:52 src/libaudgui/about.c:115
+msgid "Credits"
+msgstr "Créditos"
+
+#: src/libaudgui/about.c:52
+msgid "Translators"
+msgstr "Traductores"
+
+#: src/libaudgui/about.c:91
+msgid "About Audacious"
+msgstr "Acerca de Audacious"
+
+#: src/libaudgui/confirm.c:76
+#, c-format
+msgid ""
+"Are you sure you want to close %s?  If you do, any changes made since the "
+"playlist was exported will be lost."
+msgstr ""
+"¿Estás seguro que quieres cerrar %s? Si lo haces, cualquier cambio hecho "
+"desde que lalista de reproducción fue exportada se perderá."
+
+#: src/libaudgui/confirm.c:89
+msgid "_Don't show this message again"
+msgstr "_No mostrar este mensaje otra vez"
+
+#: src/libaudgui/confirm.c:126
+msgid "Rename Playlist"
+msgstr "Renombrar la Lista de Reproducción"
+
+#: src/libaudgui/effects-menu.c:74
+msgid "settings ..."
+msgstr "ajustes ..."
+
+#: src/libaudgui/equalizer.c:51
+msgid "_Enable"
+msgstr "_Habilitar"
+
+#: src/libaudgui/equalizer.c:123
+msgid "31 Hz"
+msgstr "31 Hz"
+
+#: src/libaudgui/equalizer.c:123
+msgid "63 Hz"
+msgstr "63 Hz"
+
+#: src/libaudgui/equalizer.c:124
+msgid "125 Hz"
+msgstr "125 Hz"
+
+#: src/libaudgui/equalizer.c:124
+msgid "250 Hz"
+msgstr "250 Hz"
+
+#: src/libaudgui/equalizer.c:124
+msgid "500 Hz"
+msgstr "500 Hz"
+
+#: src/libaudgui/equalizer.c:124
+msgid "1 kHz"
+msgstr "1 kHz"
+
+#: src/libaudgui/equalizer.c:124
+msgid "2 kHz"
+msgstr "2 kHz"
+
+#: src/libaudgui/equalizer.c:125
+msgid "4 kHz"
+msgstr "4 kHz"
+
+#: src/libaudgui/equalizer.c:125
+msgid "8 kHz"
+msgstr "8 kHz"
+
+#: src/libaudgui/equalizer.c:125
+msgid "16 kHz"
+msgstr "16 kHz"
+
+#: src/libaudgui/equalizer.c:130
+msgid "Equalizer"
+msgstr "Ecualizador"
+
+#: src/libaudgui/equalizer.c:146
+msgid "Preamp"
+msgstr "Preamplificador"
+
+#: src/libaudgui/infopopup.c:207
+msgid "Track Number"
+msgstr "Número de Pista"
+
+#: src/libaudgui/infopopup.c:209
+msgid "Track Length"
+msgstr "Duración de Pista"
+
+#: src/libaudgui/infowin.c:75
+msgid "Acid Jazz"
+msgstr "Acid Jazz"
+
+#: src/libaudgui/infowin.c:76
+msgid "Acid Rock"
+msgstr "Acid Rock"
+
+#: src/libaudgui/infowin.c:77
+msgid "Ambient"
+msgstr "Ambient"
+
+#: src/libaudgui/infowin.c:78
+msgid "Bebop"
+msgstr "Bebop"
+
+#: src/libaudgui/infowin.c:79
+msgid "Bluegrass"
+msgstr "Bluegrass"
+
+#: src/libaudgui/infowin.c:80
+msgid "Blues"
+msgstr "blues"
+
+#: src/libaudgui/infowin.c:81
+msgid "Chamber Music"
+msgstr "Música de Cámara"
+
+#: src/libaudgui/infowin.c:82
+msgid "Classical"
+msgstr "Clásica"
+
+#: src/libaudgui/infowin.c:83
+msgid "Country"
+msgstr "Country"
+
+#: src/libaudgui/infowin.c:84
+msgid "Death Metal"
+msgstr "Death Metal"
+
+#: src/libaudgui/infowin.c:85
+msgid "Disco"
+msgstr "Disco"
+
+#: src/libaudgui/infowin.c:86
+msgid "Easy Listening"
+msgstr "Easy Listening"
+
+#: src/libaudgui/infowin.c:87
+msgid "Folk"
+msgstr "Folk"
+
+#: src/libaudgui/infowin.c:88
+msgid "Funk"
+msgstr "Funk"
+
+#: src/libaudgui/infowin.c:89
+msgid "Gangsta Rap"
+msgstr "Gangsta Rap"
+
+#: src/libaudgui/infowin.c:90
+msgid "Gospel"
+msgstr "Gospel"
+
+#: src/libaudgui/infowin.c:91
+msgid "Grunge"
+msgstr "Grunge"
+
+#: src/libaudgui/infowin.c:92
+msgid "Hard Rock"
+msgstr "Hard Rock"
+
+#: src/libaudgui/infowin.c:93
+msgid "Heavy Metal"
+msgstr "Heavy Metal"
+
+#: src/libaudgui/infowin.c:94
+msgid "Hip-hop"
+msgstr "Hip-hop"
+
+#: src/libaudgui/infowin.c:95
+msgid "House"
+msgstr "House"
+
+#: src/libaudgui/infowin.c:96
+msgid "Jazz"
+msgstr "Jazz"
+
+#: src/libaudgui/infowin.c:97
+msgid "Jungle"
+msgstr "Jungle"
+
+#: src/libaudgui/infowin.c:98
+msgid "Metal"
+msgstr "Metal"
+
+#: src/libaudgui/infowin.c:99
+msgid "New Age"
+msgstr "New Age"
+
+#: src/libaudgui/infowin.c:100
+msgid "New Wave"
+msgstr "New Wave"
+
+#: src/libaudgui/infowin.c:101
+msgid "Noise"
+msgstr "Noise"
+
+#: src/libaudgui/infowin.c:102
+msgid "Pop"
+msgstr "Pop"
+
+#: src/libaudgui/infowin.c:103
+msgid "Punk Rock"
+msgstr "Punk Rock"
+
+#: src/libaudgui/infowin.c:104
+msgid "Rap"
+msgstr "Rap"
+
+#: src/libaudgui/infowin.c:105
+msgid "Reggae"
+msgstr "Reggae"
+
+#: src/libaudgui/infowin.c:106
+msgid "Rock"
+msgstr "Rock"
+
+#: src/libaudgui/infowin.c:107
+msgid "Rock and Roll"
+msgstr "Rock and Roll"
+
+#: src/libaudgui/infowin.c:108
+msgid "Rhythm and Blues"
+msgstr "Rhythm and Blues"
+
+#: src/libaudgui/infowin.c:109
+msgid "Ska"
+msgstr "Ska"
+
+#: src/libaudgui/infowin.c:110
+msgid "Soul"
+msgstr "Soul"
+
+#: src/libaudgui/infowin.c:111
+msgid "Swing"
+msgstr "Swing"
+
+#: src/libaudgui/infowin.c:112
+msgid "Techno"
+msgstr "Techno"
+
+#: src/libaudgui/infowin.c:113
+msgid "Trip-hop"
+msgstr "Trip-hop"
+
+#: src/libaudgui/infowin.c:177 src/libaudgui/infowin.c:363
+#: src/libaudgui/infowin.c:366 src/libaudgui/infowin.c:369
+msgid "<span size=\"small\">n/a</span>"
+msgstr "<span size=\"small\">n/d</span>"
+
+#: src/libaudgui/infowin.c:267
+msgid "Metadata updated successfully"
+msgstr "Metadatos actualizados existósamente"
+
+#: src/libaudgui/infowin.c:272
+msgid "Metadata updating failed"
+msgstr "Falló actualización de metadatos"
+
+#: src/libaudgui/infowin.c:320
+msgid "Track Information"
+msgstr "Información de pistas"
+
+#: src/libaudgui/infowin.c:352
+msgid "<span size=\"small\">Format:</span>"
+msgstr "<span size=\"small\">Formato:</span>"
+
+#: src/libaudgui/infowin.c:356
+msgid "<span size=\"small\">Quality:</span>"
+msgstr "<span size=\"small\">Calidad:</span>"
+
+#: src/libaudgui/infowin.c:359
+msgid "<span size=\"small\">Bitrate:</span>"
+msgstr "<span size=\"small\">Bitrate:</span>"
+
+#: src/libaudgui/infowin.c:389
+msgid "<span size=\"small\">Title</span>"
+msgstr "<span size=\"small\">Título</span>"
+
+#: src/libaudgui/infowin.c:401
+msgid "<span size=\"small\">Artist</span>"
+msgstr "<span size=\"small\">Artista</span>"
+
+#: src/libaudgui/infowin.c:413
+msgid "<span size=\"small\">Album</span>"
+msgstr "<span size=\"small\">Álbum</span>"
+
+#: src/libaudgui/infowin.c:425
+msgid "<span size=\"small\">Comment</span>"
+msgstr "<span size=\"small\">Comentario</span>"
+
+#: src/libaudgui/infowin.c:437
+msgid "<span size=\"small\">Genre</span>"
+msgstr "<span size=\"small\">Género</span>"
+
+#: src/libaudgui/infowin.c:458
+msgid "<span size=\"small\">Year</span>"
+msgstr "<span size=\"small\">Año</span>"
+
+#: src/libaudgui/infowin.c:469
+msgid "<span size=\"small\">Track Number</span>"
+msgstr "<span size=\"small\">Número de Pista</span>"
+
+#: src/libaudgui/infowin.c:548
+#, c-format
+msgid "%d kb/s"
+msgstr "%d kb/s"
+
+#: src/libaudgui/infowin.c:575
+#, c-format
+msgid "No info available for %s.\n"
+msgstr "No hay información disponible para  %s.\n"
+
+#: src/libaudgui/jump-to-time.c:72
+msgid "Jump to Time"
+msgstr "Saltar al Tiempo"
+
+#: src/libaudgui/jump-to-time.c:87
+msgid "mm:ss"
+msgstr "mm:ss"
+
+#: src/libaudgui/playlists.c:33
+msgid "Export Playlist"
+msgstr "Exportar Lista de Reproducción"
+
+#: src/libaudgui/playlists.c:33
+msgid "Import Playlist"
+msgstr "Importar Lista de Reproducción"
+
+#: src/libaudgui/playlists.c:66
+#, c-format
+msgid "Overwrite %s?"
+msgstr "¿Sobreescribir %s?"
+
+#: src/libaudgui/queue-manager.c:196
+msgid "Queue Manager"
+msgstr "Administrador de colas:"
+
+#: src/libaudgui/ui_fileopener.c:109
+msgid "Open Files"
+msgstr "Abrir Archivos"
+
+#: src/libaudgui/ui_fileopener.c:109
+msgid "Add Files"
+msgstr "Agregar Archivos"
+
+#: src/libaudgui/ui_fileopener.c:111
+msgid "Close dialog on Open"
+msgstr "Cerrar dialogo al Abrir"
+
+#: src/libaudgui/ui_fileopener.c:111
+msgid "Close dialog on Add"
+msgstr "Cerrar dialogo al Agregar"
+
+#: src/libaudgui/ui_jumptotrack.c:109 src/libaudgui/ui_jumptotrack.c:117
+#: src/libaudgui/ui_jumptotrack.c:326
+msgid "_Queue"
+msgstr "A la _Cola"
+
+#: src/libaudgui/ui_jumptotrack.c:115
+msgid "Un_queue"
+msgstr "Quitar de la _cola"
+
+#: src/libaudgui/ui_jumptotrack.c:258
+msgid "Jump to Song"
+msgstr "Saltar a la Pista"
+
+#: src/libaudgui/ui_jumptotrack.c:281
+msgid "Filter: "
+msgstr "Filtro: "
+
+#: src/libaudgui/ui_jumptotrack.c:282
+msgid "_Filter:"
+msgstr "_Filtro:"
+
+#: src/libaudgui/ui_jumptotrack.c:292
+msgid "Remember"
+msgstr "Recordar"
+
+#: src/libaudgui/ui_jumptotrack.c:299
+msgid "Clea_r"
+msgstr "Limpia_r"
+
+#: src/libaudgui/ui_jumptotrack.c:319
+msgid "Close on Jump"
+msgstr "Cerrar al Saltar"
+
+#: src/libaudgui/ui_playlist_manager.c:253
+msgid "Playlist Manager"
+msgstr "Administrador de Listas de Reproducción"
+
+#: src/libaudgui/ui_playlist_manager.c:280
+msgid "Entries"
+msgstr "Entradas"
+
+#: src/libaudgui/ui_playlist_manager.c:301
+msgid "_Rename"
+msgstr "_Renombrar"
+
+#: src/libaudgui/ui_playlist_manager.c:325
+msgid "_Close dialog on activating playlist"
+msgstr "_Cerrar dialogo al activar Lista de Reproducción"
+
+#: src/libaudgui/ui_urlopener.c:48
+msgid "Open URL"
+msgstr "Abrir URL"
+
+#: src/libaudgui/ui_urlopener.c:48
+msgid "Add URL"
+msgstr "Agregar URL"
+
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+"\n"
+"Más mensajes han sido ocultados."
+
+#: src/libeggsmclient/eggdesktopfile.c:165
+msgid "File is not a valid .desktop file"
+msgstr "El archivo no es un archivo .desktop válido"
+
+#: src/libeggsmclient/eggdesktopfile.c:191
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "Versión '%s' de archivo desktop no reconocida"
+
+#: src/libeggsmclient/eggdesktopfile.c:974
+#, c-format
+msgid "Starting %s"
+msgstr "Iniciando %s"
+
+#: src/libeggsmclient/eggdesktopfile.c:1116
+msgid "Application does not accept documents on command line"
+msgstr "La aplicación no acepta documentos en la línea de comandos"
+
+#: src/libeggsmclient/eggdesktopfile.c:1184
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "Opción de lanzamiento no reconocida: %d"
+
+#: src/libeggsmclient/eggdesktopfile.c:1391
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr ""
+"No puedes pasar documentos URIs a una entrada del escritorio 'Type=Link'"
+
+#: src/libeggsmclient/eggdesktopfile.c:1412
+msgid "Not a launchable item"
+msgstr "No es una cosa lanzable"
+
+#: src/libeggsmclient/eggsmclient.c:226
+msgid "Disable connection to session manager"
+msgstr "Deshabilitar conección con el administrador de sesión"
+
+#: src/libeggsmclient/eggsmclient.c:229
+msgid "Specify file containing saved configuration"
+msgstr "Especificar archivo que contiene configuración guardada"
+
+#: src/libeggsmclient/eggsmclient.c:229
+msgid "FILE"
+msgstr "ARCHIVO"
+
+#: src/libeggsmclient/eggsmclient.c:232
+msgid "Specify session management ID"
+msgstr "Específicar ID de administración de sesión"
+
+#: src/libeggsmclient/eggsmclient.c:232
+msgid "ID"
+msgstr "ID"
+
+#: src/libeggsmclient/eggsmclient.c:253
+msgid "Session management options:"
+msgstr "Opciones de administración de sesión:"
+
+#: src/libeggsmclient/eggsmclient.c:254
+msgid "Show session management options"
+msgstr "Mostrar opciones de administración de sesión"
+
+
diff --git a/po/et.po b/po/et.po
index 8a20b1e..672564d 100644
--- a/po/et.po
+++ b/po/et.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: audacious 1.4.0\n"
 "Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
+"POT-Creation-Date: 2011-07-05 22:45+0200\n"
 "PO-Revision-Date: 2007-11-25 22:02+0200\n"
 "Last-Translator: Ivar Smolin <okul at linux.ee>\n"
 "Language-Team: Estonian <et at li.org>\n"
@@ -17,6 +17,17 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
+#: src/audacious/adder.c:71
+msgid "Searching ..."
+msgstr ""
+
+#: src/audacious/adder.c:99
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] ""
+msgstr[1] ""
+
 #: src/audacious/chardet.c:37
 msgid "  (invalid UTF-8)"
 msgstr "  (vigane UTF-8)"
@@ -101,113 +112,113 @@ msgstr "Eesti:"
 msgid "Finnish:"
 msgstr "Soome:"
 
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:220
 msgid "French:"
 msgstr "Prantsuse:"
 
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:226
 msgid "German:"
 msgstr "Saksa:"
 
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:233
 msgid "Georgian:"
 msgstr "Gruusia:"
 
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:236
 msgid "Greek:"
 msgstr "Kreeka:"
 
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:241
 msgid "Hindi:"
 msgstr "Hindi:"
 
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:244
 msgid "Hungarian:"
 msgstr "Ungari:"
 
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:248
 msgid "Italian:"
 msgstr "Itaalia:"
 
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:252
 msgid "Japanese:"
 msgstr "Jaapani:"
 
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:255
 msgid "Korean:"
 msgstr "Koera:"
 
-#: src/audacious/credits.c:256
+#: src/audacious/credits.c:258
 #, fuzzy
 msgid "Latvian:"
 msgstr "Horvaatia:"
 
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:261
 msgid "Lithuanian:"
 msgstr "Leedu:"
 
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:265
 msgid "Macedonian:"
 msgstr "Makedoonia:"
 
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:268
 msgid "Polish:"
 msgstr "Poola:"
 
-#: src/audacious/credits.c:271
+#: src/audacious/credits.c:274
 #, fuzzy
 msgid "Portuguese:"
 msgstr "Brasiilia portugali:"
 
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:277
 msgid "Romanian:"
 msgstr "Rumeenia:"
 
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:281
 msgid "Russian:"
 msgstr "Vene:"
 
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:285
 msgid "Serbian (Latin):"
 msgstr "Serbia (ladina)"
 
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:288
 msgid "Serbian (Cyrillic):"
 msgstr "Serbia (kirillitsa)"
 
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:291
 msgid "Simplified Chinese:"
 msgstr "Hiina lihtsustatud:"
 
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:294
 msgid "Slovak:"
 msgstr "Slovaki:"
 
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:297
 msgid "Spanish:"
 msgstr "Hispaania:"
 
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:304
 msgid "Swedish:"
 msgstr "Rootsi:"
 
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:307
 msgid "Traditional Chinese:"
 msgstr "Hiina traditsiooniline:"
 
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:312
 msgid "Turkish:"
 msgstr "Türgi:"
 
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:316
 msgid "Ukrainian:"
 msgstr "Ukraina:"
 
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:319
 msgid "Welsh:"
 msgstr "Kõmri:"
 
-#: src/audacious/drct.c:254
+#: src/audacious/drct.c:256
 #, fuzzy
 msgid "Temporary Playlist"
 msgstr "Esitusnimekirja laadimine"
@@ -217,80 +228,65 @@ msgstr "Esitusnimekirja laadimine"
 msgid "Error importing Winamp EQF file '%s'"
 msgstr ""
 
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr ""
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/audacious/main.c:247
+#: src/audacious/main.c:256
 msgid "Skip backwards in playlist"
 msgstr "Esitusnimekirjas eelmisele loole hüppamine"
 
-#: src/audacious/main.c:248
+#: src/audacious/main.c:257
 msgid "Start playing current playlist"
 msgstr "Praeguse esitusnimekirja esitamise alustamine"
 
-#: src/audacious/main.c:249
+#: src/audacious/main.c:258
 msgid "Pause current song"
 msgstr "Praeguse loo pausimine"
 
-#: src/audacious/main.c:250
+#: src/audacious/main.c:259
 msgid "Stop current song"
 msgstr "Praeguse loo seiskamine"
 
-#: src/audacious/main.c:251
+#: src/audacious/main.c:260
 msgid "Pause if playing, play otherwise"
 msgstr "Esitamise korral pausimine, pausi korral esitamine"
 
-#: src/audacious/main.c:252
+#: src/audacious/main.c:261
 msgid "Skip forward in playlist"
 msgstr "Esitusnimekirjas järgmisele loole hüppamine"
 
-#: src/audacious/main.c:253
+#: src/audacious/main.c:262
 msgid "Display Jump to File dialog"
 msgstr "Failile hüppamise dialoogi kuvamine"
 
-#: src/audacious/main.c:254
+#: src/audacious/main.c:263
 #, fuzzy
 msgid "Add files to the playlist"
 msgstr "Failide lisamine esitusnimekirja."
 
-#: src/audacious/main.c:255
+#: src/audacious/main.c:264
 msgid "Add new files to a temporary playlist"
 msgstr "Uute failide lisamine ajutisse esitusnimekirja"
 
-#: src/audacious/main.c:256
+#: src/audacious/main.c:265
 msgid "Display the main window"
 msgstr "Peaakna kuvamine"
 
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr "Audacious'e kõigi avatud akende kuvamine"
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:266
 #, fuzzy
 msgid "Show version"
 msgstr "Näita peaakent"
 
-#: src/audacious/main.c:259
+#: src/audacious/main.c:267
 msgid "Print debugging messages"
 msgstr ""
 
-#: src/audacious/main.c:260
+#: src/audacious/main.c:268
 msgid "FILE..."
 msgstr "FAIL..."
 
-#: src/audacious/main.c:272
+#: src/audacious/main.c:280
 msgid "- play multimedia files"
 msgstr "- multimeediafailide esitamine"
 
-#: src/audacious/main.c:282
+#: src/audacious/main.c:290
 #, c-format
 msgid ""
 "%s: %s\n"
@@ -299,7 +295,7 @@ msgstr ""
 "%s: %s\n"
 "Täiendava teabe saamiseks proovi `%s --help'.\n"
 
-#: src/audacious/main.c:395
+#: src/audacious/main.c:407
 msgid ""
 "Audacious seems to be already running but is not responding.  You can start "
 "another instance of the program, but please be warned that this can cause "
@@ -307,273 +303,243 @@ msgid ""
 "message.  Press OK to start Audacious or Cancel to quit."
 msgstr ""
 
-#: src/audacious/main.c:558
+#: src/audacious/main.c:572
 msgid "Audacious"
 msgstr "Audacious"
 
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:381
 #, c-format
 msgid "No decoder found for %s."
 msgstr ""
 
-#: src/audacious/playback.c:519
+#: src/audacious/playback.c:531
 msgid "Buffering ..."
 msgstr ""
 
-#: src/audacious/playlist-new.c:288
+#: src/audacious/playlist-new.c:303
 #, fuzzy
 msgid "Untitled Playlist"
 msgstr "Uus esitusnimekiri"
 
-#: src/audacious/ui_preferences.c:88
+#: src/audacious/ui_preferences.c:87
 msgid "Audio"
 msgstr "Audio"
 
-#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:88
 msgid "Network"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:89 src/audacious/ui_preferences.c:1556
 msgid "Playlist"
 msgstr "Esitusnimekiri"
 
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:90
 msgid "Plugins"
 msgstr "Pluginad"
 
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:204
 msgid "Artist"
 msgstr "Esitaja"
 
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:97 src/libaudgui/infopopup.c:206
 msgid "Album"
 msgstr "Album"
 
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:202
+#: src/libaudgui/ui_playlist_manager.c:263
 msgid "Title"
 msgstr "Pealkiri"
 
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:99
 msgid "Tracknumber"
 msgstr "Loo number"
 
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:208
 msgid "Genre"
 msgstr "Žanr"
 
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:101
 msgid "Filename"
 msgstr "Failinimi"
 
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:102
 msgid "Filepath"
 msgstr "Faili rada"
 
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:103
 msgid "Date"
 msgstr "Kuupäev"
 
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:104 src/libaudgui/infopopup.c:210
 msgid "Year"
 msgstr "Aasta"
 
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:105
 msgid "Comment"
 msgstr "Kommentaar"
 
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:106
 msgid "Codec"
 msgstr "Koodek"
 
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:107
 msgid "Quality"
 msgstr "Kvaliteet"
 
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:112
 msgid "None"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:115
+#: src/audacious/ui_preferences.c:113
 #, fuzzy
 msgid "Japanese"
 msgstr "Jaapani:"
 
-#: src/audacious/ui_preferences.c:116
+#: src/audacious/ui_preferences.c:114
 #, fuzzy
 msgid "Taiwanese"
 msgstr "Jaapani:"
 
-#: src/audacious/ui_preferences.c:117
+#: src/audacious/ui_preferences.c:115
 #, fuzzy
 msgid "Chinese"
 msgstr "Jooned"
 
-#: src/audacious/ui_preferences.c:118
+#: src/audacious/ui_preferences.c:116
 #, fuzzy
 msgid "Korean"
 msgstr "Koera:"
 
-#: src/audacious/ui_preferences.c:119
+#: src/audacious/ui_preferences.c:117
 #, fuzzy
 msgid "Russian"
 msgstr "Vene:"
 
-#: src/audacious/ui_preferences.c:120
+#: src/audacious/ui_preferences.c:118
 #, fuzzy
 msgid "Greek"
 msgstr "Kreeka:"
 
-#: src/audacious/ui_preferences.c:121
+#: src/audacious/ui_preferences.c:119
 msgid "Hebrew"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:122
+#: src/audacious/ui_preferences.c:120
 #, fuzzy
 msgid "Turkish"
 msgstr "Türgi:"
 
-#: src/audacious/ui_preferences.c:123
+#: src/audacious/ui_preferences.c:121
 msgid "Arabic"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:124
+#: src/audacious/ui_preferences.c:122
 #, fuzzy
 msgid "Polish"
 msgstr "Poola:"
 
-#: src/audacious/ui_preferences.c:125
+#: src/audacious/ui_preferences.c:123
 msgid "Baltic"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:126
+#: src/audacious/ui_preferences.c:124
 msgid "Universal"
 msgstr ""
 
 #: src/audacious/ui_preferences.c:146
 #, fuzzy
-msgid "<b>Bit Depth</b>"
-msgstr "<b>Vormingu tuvastamine</b>"
+msgid "Single track mode"
+msgstr "Loo üksikasjade vaatamine"
 
 #: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:148
 #, fuzzy
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
-"<span size=\"small\">Kõik audiovood teisendatakse sellele "
-"diskreetimissagedusele.\n"
-"See peaks olema võrdne helikaardi või väljundplugina\n"
-"suurima diskreetimissagedusega.</span>"
+msgid "Album mode"
+msgstr "Album: "
 
-#: src/audacious/ui_preferences.c:151
-msgid "<b>Volume Control</b>"
-msgstr "<b>Helivaljuse juhtimine</b>"
+#: src/audacious/ui_preferences.c:150
+#, fuzzy
+msgid "<b>Output Settings</b>"
+msgstr "<b>Vormingu tuvastamine</b>"
 
 #: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr "Kasutatakse tarkvaralist helivaljuse juhtimist"
-
-#: src/audacious/ui_preferences.c:154
 #, fuzzy
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
-"Tarkvaralise helivaljuse juhtimise kasutamine. See võib olla kasulik "
-"olukorras, kus sinu audiosüsteem ei toeta esitatava audio helivaljuse "
-"juhtimist."
+msgid "Bit depth:"
+msgstr "<b>Vormingu tuvastamine</b>"
 
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
-msgstr ""
+#: src/audacious/ui_preferences.c:155
+msgid "Buffer size:"
+msgstr "Puhvri suurus:"
 
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
+#: src/audacious/ui_preferences.c:157
+msgid "ms"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:160
+#: src/audacious/ui_preferences.c:158
 #, fuzzy
-msgid "Amplify untagged files:"
-msgstr "- multimeediafailide esitamine"
+msgid "Use software volume control (not recommended)"
+msgstr "Kasutatakse tarkvaralist helivaljuse juhtimist"
 
-#: src/audacious/ui_preferences.c:164
+#: src/audacious/ui_preferences.c:160
 #, fuzzy
 msgid "<b>Replay Gain</b>"
 msgstr "<b>Proksi sätted</b>"
 
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:161
 #, fuzzy
 msgid "Enable Replay Gain"
 msgstr "Proksi kasutamine on lubatud"
 
-#: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>Metaandmed</b>"
-
-#: src/audacious/ui_preferences.c:168
-#, fuzzy
-msgid "Single track mode"
-msgstr "Loo üksikasjade vaatamine"
-
-#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "Album: "
+#: src/audacious/ui_preferences.c:164
+msgid "Prevent clipping (recommended)"
+msgstr ""
 
-#: src/audacious/ui_preferences.c:172
+#: src/audacious/ui_preferences.c:166
 #, fuzzy
 msgid "<b>Adjust Levels</b>"
 msgstr "<b>Hiireratas</b>"
 
-#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "<b>Teabe hüpikaken</b>"
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify all files:"
+msgstr ""
 
-#: src/audacious/ui_preferences.c:176
-msgid "Enable clipping prevention"
+#: src/audacious/ui_preferences.c:169 src/audacious/ui_preferences.c:172
+msgid "dB"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:170
+#, fuzzy
+msgid "Amplify untagged files:"
+msgstr "- multimeediafailide esitamine"
+
+#: src/audacious/ui_preferences.c:175
 msgid "Proxy hostname:"
 msgstr "Proksi hostinimi:"
 
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:176
 msgid "Proxy port:"
 msgstr "Proksi port:"
 
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:179
 msgid "Proxy username:"
 msgstr "Proksi kasutajanimi:"
 
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:180
 msgid "Proxy password:"
 msgstr "Proksi parool:"
 
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:184
 msgid "<b>Proxy Configuration</b>"
 msgstr "<b>Proksi sätted</b>"
 
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:185
 msgid "Enable proxy usage"
 msgstr "Proksi kasutamine on lubatud"
 
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:187
 msgid "Use authentication with proxy"
 msgstr "Kasutatakse proksi autentimist"
 
-#: src/audacious/ui_preferences.c:197
+#: src/audacious/ui_preferences.c:189
 msgid ""
 "<span size=\"small\">Changing these settings will require a restart of "
 "Audacious.</span>"
@@ -581,15 +547,15 @@ msgstr ""
 "<span size=\"small\">Pärast nende sätete muutmist tuleb Audacious "
 "taaskäivitada.</span>"
 
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
 msgid "Auto character encoding detector for:"
 msgstr "Automaatne kooditabeli tuvastaja:"
 
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
 msgid "Fallback character encodings:"
 msgstr "Kooditabelite tagavara:"
 
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
 msgid ""
 "List of character encodings used for fall back conversion of metadata. If "
 "automatic character encoding detector failed or has been disabled, encodings "
@@ -601,46 +567,46 @@ msgstr ""
 "proovitakse metaandmeid teisendada tagavaranimekirjas olevatest tabelitest "
 "UTF-8 tabelisse."
 
-#: src/audacious/ui_preferences.c:213
+#: src/audacious/ui_preferences.c:205
 #, fuzzy
 msgid "<b>Behavior</b>"
 msgstr "<b>Vormingu tuvastamine</b>"
 
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:206
 msgid "Continue playback on startup"
 msgstr "Käivitamisel jätkatakse esitust"
 
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:208
 msgid "Advance when the current song is deleted"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:218
+#: src/audacious/ui_preferences.c:210
 #, fuzzy
 msgid "Clear the playlist when opening files"
 msgstr "Vastavuses olevatest kirjetest koostatakse uus esitusnimekiri"
 
-#: src/audacious/ui_preferences.c:220
+#: src/audacious/ui_preferences.c:212
 #, fuzzy
 msgid "Open files in a temporary playlist"
 msgstr "Uute failide lisamine ajutisse esitusnimekirja"
 
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:214
 msgid "<b>Metadata</b>"
 msgstr "<b>Metaandmed</b>"
 
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:454
 msgid "Category"
 msgstr "Kategooria"
 
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:682
 msgid "Popup Information Settings"
 msgstr "Hüpikandmete sätted"
 
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:691
 msgid "<b>Cover image retrieve</b>"
 msgstr "<b>Kaanepildi hankimine</b>"
 
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:696
 msgid ""
 "While searching for the album's cover, Audacious looks for certain words in "
 "the filename. You can specify those words in the lists below, separated "
@@ -650,100 +616,100 @@ msgstr ""
 "kindlaksmääratud sõnu. Neid sõnu on võimalik allpool olevate nimekirjade "
 "abil määrata, eraldades sõnad üksteisest komadega."
 
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:713
 msgid "Exclude:"
 msgstr "Välistatud:"
 
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:720
 msgid "Include:"
 msgstr "Kaasatud:"
 
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:737
 msgid "Recursively search for cover"
 msgstr "Kaanepilti otsitakse rekursiivselt"
 
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:747
 msgid "Search depth: "
 msgstr "Otsingu sügavus: "
 
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:761
 msgid "Use per-file cover"
 msgstr "Kasutatakse failipõhist kaanepilti"
 
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:764
 msgid "<b>Miscellaneous</b>"
 msgstr "<b>Muu</b>"
 
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:773
 msgid "Show Progress bar for the current track"
 msgstr "Esitatava loo kohta näidatakse edenemisriba"
 
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:783
 msgid "Delay until filepopup comes up: "
 msgstr "Viivitus enne hüpikakna avanemist: "
 
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1283
 msgid "<b>Song Display</b>"
 msgstr "<b>Loo kuvamine</b>"
 
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1292
 msgid "Show song numbers"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1303
 msgid "Show leading zeroes (02:00 instead of 2:00)"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1325
 msgid "Show information about titlestring format"
 msgstr "Pealkirjastringi vormingu kohta andmete näitamine"
 
-#: src/audacious/ui_preferences.c:1514
+#: src/audacious/ui_preferences.c:1339
 msgid "TITLE"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1515
+#: src/audacious/ui_preferences.c:1340
 msgid "ARTIST - TITLE"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1516
+#: src/audacious/ui_preferences.c:1341
 msgid "ARTIST - ALBUM - TITLE"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1517
+#: src/audacious/ui_preferences.c:1342
 msgid "ARTIST - ALBUM - TRACK. TITLE"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1518
+#: src/audacious/ui_preferences.c:1343
 msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1519
+#: src/audacious/ui_preferences.c:1344
 msgid "ALBUM - TITLE"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1520
+#: src/audacious/ui_preferences.c:1345
 #, fuzzy
 msgid "Custom"
 msgstr "Kohandatud string:"
 
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1354
 msgid "Custom string:"
 msgstr "Kohandatud string:"
 
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1361
 msgid "Title format:"
 msgstr "Pealkirja vorming:"
 
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1372
 msgid "<b>Popup Information</b>"
 msgstr "<b>Teabe hüpikaken</b>"
 
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1387
 msgid "Show popup information for playlist entries"
 msgstr "Hüpikaknas näidatakse esitusnimekirja kirjete kohta andmeid"
 
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1388
 msgid ""
 "Toggles popup information window for the pointed entry in the playlist. The "
 "window shows title of song, name of album, genre, year of publish, track "
@@ -754,54 +720,47 @@ msgstr ""
 "kuvatakse andmeid loo pealkirja, numbri ja pikkuse; albumi nime, žanri, ja "
 "avaldamise aasta; ning kaanepildi kohta."
 
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1397
 msgid "Edit settings for popup information"
 msgstr "Andmete hüpikakna sätete muutmine"
 
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>Audiosüsteem</b>"
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "Puhvri suurus:"
-
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
-msgstr "Praegune väljundplugin:"
+#: src/audacious/ui_preferences.c:1497
+#, fuzzy
+msgid "Output plugin:"
+msgstr "Sisendplugin: %s"
 
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
 #, fuzzy
 msgid "Transport"
 msgstr "Tõlkijad"
 
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
 msgid "Input"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
 #, fuzzy
 msgid "Effect"
 msgstr "<b>Efektid</b>"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
 msgid "Visualization"
 msgstr "Visualiseerimine"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
 msgid "General"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1597
 msgid "Audacious Preferences"
 msgstr "Audacious'e eelistused"
 
-#: src/audacious/util.c:161
+#: src/audacious/util.c:155
 #, c-format
 msgid "Could not create directory (%s): %s\n"
 msgstr "Kataloogi pole võimalik luua (%s): %s\n"
 
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:264
 msgid "Position not found."
 msgstr ""
 
@@ -820,22 +779,24 @@ msgstr "stereo"
 
 #: src/libaudcore/tuple.c:689
 #, c-format
-msgid "%d channels"
-msgstr ""
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] ""
+msgstr[1] ""
 
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/confirm.c:73
 #, c-format
 msgid ""
 "Are you sure you want to close %s?  If you do, any changes made since the "
 "playlist was exported will be lost."
 msgstr ""
 
-#: src/libaudgui/confirm.c:77
+#: src/libaudgui/confirm.c:86
 #, fuzzy
 msgid "_Don't show this message again"
 msgstr "Peaakna kuvamine"
 
-#: src/libaudgui/confirm.c:115
+#: src/libaudgui/confirm.c:124
 #, fuzzy
 msgid "Rename Playlist"
 msgstr "Esitusnimekirja salvestamine"
@@ -897,11 +858,11 @@ msgstr "Ekvalaiser"
 msgid "Preamp"
 msgstr ""
 
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:212
 msgid "Track Number"
 msgstr "Loo number"
 
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:214
 msgid "Track Length"
 msgstr "Loo kestus"
 
@@ -1137,6 +1098,29 @@ msgstr ""
 msgid "No info available for %s.\n"
 msgstr ""
 
+#: src/libaudgui/jump-to-time.c:75
+msgid "Jump to Time"
+msgstr "Hüppa ajahetkele"
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr ""
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Export Playlist"
+msgstr "Esitusnimekirja laadimine"
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Import Playlist"
+msgstr "Esitusnimekirja laadimine"
+
+#: src/libaudgui/playlists.c:71
+#, c-format
+msgid "Overwrite %s?"
+msgstr ""
+
 #: src/libaudgui/ui_about.c:71
 msgid "About Audacious"
 msgstr "Audacious'est lähemalt"
@@ -1198,19 +1182,19 @@ msgstr "Nulli A-B"
 msgid "Close on Jump"
 msgstr "Pärast hüpet suletakse aken"
 
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:240
 msgid "Playlist Manager"
 msgstr "Esitusnimekirja haldur"
 
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:264
 msgid "Entries"
 msgstr "Kirjeid"
 
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:285
 msgid "_Rename"
 msgstr "_Muuda nime"
 
-#: src/libaudgui/ui_playlist_manager.c:251
+#: src/libaudgui/ui_playlist_manager.c:309
 #, fuzzy
 msgid "_Close dialog on activating playlist"
 msgstr "Dialoog sulgetakse pärast faili avamist"
@@ -1223,6 +1207,12 @@ msgstr ""
 msgid "Add URL"
 msgstr ""
 
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+
 #: src/libeggsmclient/eggdesktopfile.c:165
 msgid "File is not a valid .desktop file"
 msgstr ""
@@ -1232,25 +1222,25 @@ msgstr ""
 msgid "Unrecognized desktop file Version '%s'"
 msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:967
 #, c-format
 msgid "Starting %s"
 msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1108
 msgid "Application does not accept documents on command line"
 msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1176
 #, c-format
 msgid "Unrecognized launch option: %d"
 msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1375
 msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
 msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1396
 msgid "Not a launchable item"
 msgstr ""
 
@@ -1285,6 +1275,46 @@ msgstr "Aknahalduri dekoratsioonid on nähtaval"
 msgid "Show session management options"
 msgstr "Aknahalduri dekoratsioonid on nähtaval"
 
+#, fuzzy
+#~ msgid ""
+#~ "All streams will be converted to this bit depth.\n"
+#~ "This should be the max supported bit depth of\n"
+#~ "the sound card or output plugin."
+#~ msgstr ""
+#~ "<span size=\"small\">Kõik audiovood teisendatakse sellele "
+#~ "diskreetimissagedusele.\n"
+#~ "See peaks olema võrdne helikaardi või väljundplugina\n"
+#~ "suurima diskreetimissagedusega.</span>"
+
+#~ msgid "<b>Volume Control</b>"
+#~ msgstr "<b>Helivaljuse juhtimine</b>"
+
+#, fuzzy
+#~ msgid ""
+#~ "Use software volume control. This may be useful for situations where your "
+#~ "audio system does not support controlling the playback volume."
+#~ msgstr ""
+#~ "Tarkvaralise helivaljuse juhtimise kasutamine. See võib olla kasulik "
+#~ "olukorras, kus sinu audiosüsteem ei toeta esitatava audio helivaljuse "
+#~ "juhtimist."
+
+#, fuzzy
+#~ msgid "<b>Mode</b>"
+#~ msgstr "<b>Metaandmed</b>"
+
+#, fuzzy
+#~ msgid "<b>Clipping Prevention</b>"
+#~ msgstr "<b>Teabe hüpikaken</b>"
+
+#~ msgid "<b>Audio System</b>"
+#~ msgstr "<b>Audiosüsteem</b>"
+
+#~ msgid "Current output plugin:"
+#~ msgstr "Praegune väljundplugin:"
+
+#~ msgid "Display all open Audacious windows"
+#~ msgstr "Audacious'e kõigi avatud akende kuvamine"
+
 #~ msgid "%s: Unable to open display, exiting.\n"
 #~ msgstr "%s: Kuva pole võimalik avada, töö lõpetatakse.\n"
 
@@ -1508,9 +1538,6 @@ msgstr "Aknahalduri dekoratsioonid on nähtaval"
 #~ msgid "No input plugin recognized this file"
 #~ msgstr "Selle faili jaoks pole teadaolevat sisendpluginat"
 
-#~ msgid "Input plugin: %s"
-#~ msgstr "Sisendplugin: %s"
-
 #~ msgid ""
 #~ "<b><big>No output plugin selected.</big></b>\n"
 #~ "You have not selected an output plugin."
@@ -1546,9 +1573,6 @@ msgstr "Aknahalduri dekoratsioonid on nähtaval"
 #~ "See peaks olema võrdne helikaardi või väljundplugina\n"
 #~ "suurima diskreetimissagedusega.</span>"
 
-#~ msgid "<b>Format Detection</b>"
-#~ msgstr "<b>Vormingu tuvastamine</b>"
-
 #~ msgid "Detect file formats by extension."
 #~ msgstr "Failivormingud tuvastatakse laiendi alusel."
 
@@ -1648,9 +1672,6 @@ msgstr "Aknahalduri dekoratsioonid on nähtaval"
 #~ msgid "Load metadata (tag information) from music files."
 #~ msgstr "Metaandmete (sildiandmete) laadimine helifailidest."
 
-#~ msgid "Jump to Time"
-#~ msgstr "Hüppa ajahetkele"
-
 #~ msgid "minutes:seconds"
 #~ msgstr "minutit:sekundit"
 
diff --git a/po/eu.po b/po/eu.po
index dadd9e0..981ccd5 100644
--- a/po/eu.po
+++ b/po/eu.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: audacious_2.0_eu\n"
 "Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
+"POT-Creation-Date: 2011-07-05 22:45+0200\n"
 "PO-Revision-Date: 2009-04-02 22:22+0200\n"
 "Last-Translator: Iñaki Larrañaga Murgoitio <dooteo at euskalgnu.org>\n"
 "Language-Team: Basque <itzulpena at euskalgnu.org>\n"
@@ -19,6 +19,17 @@ msgstr ""
 "X-Generator: KBabel 1.11.4\n"
 "Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
+#: src/audacious/adder.c:71
+msgid "Searching ..."
+msgstr ""
+
+#: src/audacious/adder.c:99
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] ""
+msgstr[1] ""
+
 #: src/audacious/chardet.c:37
 msgid "  (invalid UTF-8)"
 msgstr "  (UTF-8 baliogabea)"
@@ -103,113 +114,113 @@ msgstr "Estoniera:"
 msgid "Finnish:"
 msgstr "Finlandiera:"
 
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:220
 msgid "French:"
 msgstr "Frantsesa:"
 
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:226
 msgid "German:"
 msgstr "Alemana:"
 
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:233
 msgid "Georgian:"
 msgstr "Georgiera:"
 
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:236
 msgid "Greek:"
 msgstr "Grekoa:"
 
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:241
 msgid "Hindi:"
 msgstr "Hindiera:"
 
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:244
 msgid "Hungarian:"
 msgstr "Hungariera:"
 
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:248
 msgid "Italian:"
 msgstr "Italiera:"
 
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:252
 msgid "Japanese:"
 msgstr "Japoniera:"
 
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:255
 msgid "Korean:"
 msgstr "Koreera:"
 
-#: src/audacious/credits.c:256
+#: src/audacious/credits.c:258
 #, fuzzy
 msgid "Latvian:"
 msgstr "Kroaziera:"
 
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:261
 msgid "Lithuanian:"
 msgstr "Lituaniera:"
 
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:265
 msgid "Macedonian:"
 msgstr "Mazedoniera:"
 
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:268
 msgid "Polish:"
 msgstr "Poloniera:"
 
-#: src/audacious/credits.c:271
+#: src/audacious/credits.c:274
 #, fuzzy
 msgid "Portuguese:"
 msgstr "Brasilgo portugesa:"
 
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:277
 msgid "Romanian:"
 msgstr "Errumaniera:"
 
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:281
 msgid "Russian:"
 msgstr "Errusiera:"
 
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:285
 msgid "Serbian (Latin):"
 msgstr "Serbiera (Latinoa):"
 
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:288
 msgid "Serbian (Cyrillic):"
 msgstr "Serbiera (Zirilikoa):"
 
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:291
 msgid "Simplified Chinese:"
 msgstr "Txinera soildua:"
 
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:294
 msgid "Slovak:"
 msgstr "Eslovakiera:"
 
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:297
 msgid "Spanish:"
 msgstr "Gaztelania:"
 
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:304
 msgid "Swedish:"
 msgstr "Suediera:"
 
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:307
 msgid "Traditional Chinese:"
 msgstr "Txinera tradizionala:"
 
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:312
 msgid "Turkish:"
 msgstr "Turkiera:"
 
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:316
 msgid "Ukrainian:"
 msgstr "Ukrainera:"
 
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:319
 msgid "Welsh:"
 msgstr "Galesa:"
 
-#: src/audacious/drct.c:254
+#: src/audacious/drct.c:256
 #, fuzzy
 msgid "Temporary Playlist"
 msgstr "Kargatu erreprodukzio-zerrenda"
@@ -219,79 +230,64 @@ msgstr "Kargatu erreprodukzio-zerrenda"
 msgid "Error importing Winamp EQF file '%s'"
 msgstr "Errorea '%s' Winamp EQF fitxategia inportatzean"
 
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr ""
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/audacious/main.c:247
+#: src/audacious/main.c:256
 msgid "Skip backwards in playlist"
 msgstr "Erreprodukzio-zerrendan atzerantz egiten du"
 
-#: src/audacious/main.c:248
+#: src/audacious/main.c:257
 msgid "Start playing current playlist"
 msgstr "Uneko zerrenda erreproduzitzen hasten da"
 
-#: src/audacious/main.c:249
+#: src/audacious/main.c:258
 msgid "Pause current song"
 msgstr "Uneko kanta pausarazten du"
 
-#: src/audacious/main.c:250
+#: src/audacious/main.c:259
 msgid "Stop current song"
 msgstr "Uneko kanta geldiarazten du"
 
-#: src/audacious/main.c:251
+#: src/audacious/main.c:260
 msgid "Pause if playing, play otherwise"
 msgstr "Erreproduzitzen ari bada pausarazi, bestela erreproduzitu"
 
-#: src/audacious/main.c:252
+#: src/audacious/main.c:261
 msgid "Skip forward in playlist"
 msgstr "Erreprodukzio-zerrendan aurrerantz egiten du"
 
-#: src/audacious/main.c:253
+#: src/audacious/main.c:262
 msgid "Display Jump to File dialog"
 msgstr "Bistaratu 'Saltatu fitxategira' elkarrizketa-koadroa"
 
-#: src/audacious/main.c:254
+#: src/audacious/main.c:263
 #, fuzzy
 msgid "Add files to the playlist"
 msgstr "Fitxategiak gehitzen dizkio zerrendari."
 
-#: src/audacious/main.c:255
+#: src/audacious/main.c:264
 msgid "Add new files to a temporary playlist"
 msgstr "Gehitu fitxategi berriak aldi baterako erreprodukzio-zerrendari"
 
-#: src/audacious/main.c:256
+#: src/audacious/main.c:265
 msgid "Display the main window"
 msgstr "Bistaratu nagusia leihoa"
 
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr "Bistaratu Audacious-en irekitako leiho guztiak"
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:266
 msgid "Show version"
 msgstr "Erakutsi bertsioa"
 
-#: src/audacious/main.c:259
+#: src/audacious/main.c:267
 msgid "Print debugging messages"
 msgstr ""
 
-#: src/audacious/main.c:260
+#: src/audacious/main.c:268
 msgid "FILE..."
 msgstr "FITXATEGIA..."
 
-#: src/audacious/main.c:272
+#: src/audacious/main.c:280
 msgid "- play multimedia files"
 msgstr "- erreproduzitu multimedia fitxategiak"
 
-#: src/audacious/main.c:282
+#: src/audacious/main.c:290
 #, c-format
 msgid ""
 "%s: %s\n"
@@ -300,7 +296,7 @@ msgstr ""
 "%s: %s\n"
 "Exekutatu '%s --help' informazio gehiagorako.\n"
 
-#: src/audacious/main.c:395
+#: src/audacious/main.c:407
 msgid ""
 "Audacious seems to be already running but is not responding.  You can start "
 "another instance of the program, but please be warned that this can cause "
@@ -308,262 +304,236 @@ msgid ""
 "message.  Press OK to start Audacious or Cancel to quit."
 msgstr ""
 
-#: src/audacious/main.c:558
+#: src/audacious/main.c:572
 msgid "Audacious"
 msgstr "Audacious"
 
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:381
 #, c-format
 msgid "No decoder found for %s."
 msgstr ""
 
-#: src/audacious/playback.c:519
+#: src/audacious/playback.c:531
 msgid "Buffering ..."
 msgstr ""
 
-#: src/audacious/playlist-new.c:288
+#: src/audacious/playlist-new.c:303
 #, fuzzy
 msgid "Untitled Playlist"
 msgstr "Erreprodukzio-zerrenda berria"
 
-#: src/audacious/ui_preferences.c:88
+#: src/audacious/ui_preferences.c:87
 msgid "Audio"
 msgstr "Audioa"
 
-#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
-msgstr "Irabazpena"
-
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:88
 msgid "Network"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:89 src/audacious/ui_preferences.c:1556
 msgid "Playlist"
 msgstr "Erreprodukzio-zerrenda"
 
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:90
 msgid "Plugins"
 msgstr "Pluginak"
 
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:204
 msgid "Artist"
 msgstr "Artista"
 
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:97 src/libaudgui/infopopup.c:206
 msgid "Album"
 msgstr "Albuma"
 
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:202
+#: src/libaudgui/ui_playlist_manager.c:263
 msgid "Title"
 msgstr "Titulua"
 
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:99
 msgid "Tracknumber"
 msgstr "Pista-zenbakia"
 
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:208
 msgid "Genre"
 msgstr "Generoa"
 
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:101
 msgid "Filename"
 msgstr "Fitxategi-izena"
 
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:102
 msgid "Filepath"
 msgstr "Fitxategiaren bide-izena"
 
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:103
 msgid "Date"
 msgstr "Data"
 
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:104 src/libaudgui/infopopup.c:210
 msgid "Year"
 msgstr "Urtea"
 
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:105
 msgid "Comment"
 msgstr "Iruzkina"
 
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:106
 msgid "Codec"
 msgstr "Kodeka"
 
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:107
 msgid "Quality"
 msgstr "Kalitatea"
 
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:112
 msgid "None"
 msgstr "Bat ere ez"
 
-#: src/audacious/ui_preferences.c:115
+#: src/audacious/ui_preferences.c:113
 msgid "Japanese"
 msgstr "Japoniarra"
 
-#: src/audacious/ui_preferences.c:116
+#: src/audacious/ui_preferences.c:114
 msgid "Taiwanese"
 msgstr "Taiwanera"
 
-#: src/audacious/ui_preferences.c:117
+#: src/audacious/ui_preferences.c:115
 msgid "Chinese"
 msgstr "Txinatarra"
 
-#: src/audacious/ui_preferences.c:118
+#: src/audacious/ui_preferences.c:116
 msgid "Korean"
 msgstr "Korearra"
 
-#: src/audacious/ui_preferences.c:119
+#: src/audacious/ui_preferences.c:117
 msgid "Russian"
 msgstr "Errusiarra"
 
-#: src/audacious/ui_preferences.c:120
+#: src/audacious/ui_preferences.c:118
 msgid "Greek"
 msgstr "Grekoa"
 
-#: src/audacious/ui_preferences.c:121
+#: src/audacious/ui_preferences.c:119
 msgid "Hebrew"
 msgstr "Hebrearra"
 
-#: src/audacious/ui_preferences.c:122
+#: src/audacious/ui_preferences.c:120
 msgid "Turkish"
 msgstr "Turkiarra"
 
-#: src/audacious/ui_preferences.c:123
+#: src/audacious/ui_preferences.c:121
 msgid "Arabic"
 msgstr "Arabiarra"
 
-#: src/audacious/ui_preferences.c:124
+#: src/audacious/ui_preferences.c:122
 #, fuzzy
 msgid "Polish"
 msgstr "Poloniera:"
 
-#: src/audacious/ui_preferences.c:125
+#: src/audacious/ui_preferences.c:123
 #, fuzzy
 msgid "Baltic"
 msgstr "Zelta"
 
-#: src/audacious/ui_preferences.c:126
+#: src/audacious/ui_preferences.c:124
 msgid "Universal"
 msgstr "Unibertsala"
 
 #: src/audacious/ui_preferences.c:146
-msgid "<b>Bit Depth</b>"
-msgstr "<b>Bit-sakonera</b>"
+#, fuzzy
+msgid "Single track mode"
+msgstr "Ikusi pistaren xehetasunak"
 
 #: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr "Irteerako bit-sakonera:"
-
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
-"Korronte guztiak bit-sakonera honetara bihurtuko dira.\n"
-"Hau soinu-txartelak edo irteerako pluginak onartutako\n"
-"gehienezko bit-sakonera izan beharko luke."
+#, fuzzy
+msgid "Album mode"
+msgstr "Albuma: "
 
-#: src/audacious/ui_preferences.c:151
-msgid "<b>Volume Control</b>"
-msgstr "<b>Bolumen-kontrola</b>"
+#: src/audacious/ui_preferences.c:150
+#, fuzzy
+msgid "<b>Output Settings</b>"
+msgstr "<b>Formatuaren detekzioa</b>"
 
 #: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr "Erabili softwarearen bolumen-kontrola"
+#, fuzzy
+msgid "Bit depth:"
+msgstr "Irteerako bit-sakonera:"
 
-#: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
-"Erabili softwarearen bolumen-kontrola. Oso erabilgarria izan daiteke audioko "
-"sistemak erreprodukzioaren bolumena ezin duenean kontrolatu."
+#: src/audacious/ui_preferences.c:155
+msgid "Buffer size:"
+msgstr "Bufferraren tamaina:"
 
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
+#: src/audacious/ui_preferences.c:157
+msgid "ms"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
-msgstr "dB"
-
-#: src/audacious/ui_preferences.c:160
+#: src/audacious/ui_preferences.c:158
 #, fuzzy
-msgid "Amplify untagged files:"
-msgstr "- erreproduzitu multimedia fitxategiak"
+msgid "Use software volume control (not recommended)"
+msgstr "Erabili softwarearen bolumen-kontrola"
 
-#: src/audacious/ui_preferences.c:164
+#: src/audacious/ui_preferences.c:160
 #, fuzzy
 msgid "<b>Replay Gain</b>"
 msgstr "<b>Irabazpenaren modua</b>"
 
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:161
 msgid "Enable Replay Gain"
 msgstr "Gaitu irabazpena"
 
-#: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>Metadatuak</b>"
-
-#: src/audacious/ui_preferences.c:168
-#, fuzzy
-msgid "Single track mode"
-msgstr "Ikusi pistaren xehetasunak"
-
-#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "Albuma: "
+#: src/audacious/ui_preferences.c:164
+msgid "Prevent clipping (recommended)"
+msgstr ""
 
-#: src/audacious/ui_preferences.c:172
+#: src/audacious/ui_preferences.c:166
 #, fuzzy
 msgid "<b>Adjust Levels</b>"
 msgstr "<b>Saguaren gurpila</b>"
 
-#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "<b>Laster-leihoa</b>"
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify all files:"
+msgstr ""
 
-#: src/audacious/ui_preferences.c:176
+#: src/audacious/ui_preferences.c:169 src/audacious/ui_preferences.c:172
+msgid "dB"
+msgstr "dB"
+
+#: src/audacious/ui_preferences.c:170
 #, fuzzy
-msgid "Enable clipping prevention"
-msgstr "Gaitu tontorraren datuen mozketa saihestea"
+msgid "Amplify untagged files:"
+msgstr "- erreproduzitu multimedia fitxategiak"
 
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:175
 msgid "Proxy hostname:"
 msgstr "Proxy-aren ostalari-izena:"
 
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:176
 msgid "Proxy port:"
 msgstr "Proxy-aren ataka:"
 
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:179
 msgid "Proxy username:"
 msgstr "Proxy-aren erabiltzaile-izena:"
 
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:180
 msgid "Proxy password:"
 msgstr "Proxy-aren pasahitza:"
 
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:184
 msgid "<b>Proxy Configuration</b>"
 msgstr "<b>Proxy-aren konfigurazioa</b>"
 
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:185
 msgid "Enable proxy usage"
 msgstr "Gaitu proxy-a erabiltzea"
 
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:187
 msgid "Use authentication with proxy"
 msgstr "Erabili autentifikazioa proxy-arekin"
 
-#: src/audacious/ui_preferences.c:197
+#: src/audacious/ui_preferences.c:189
 msgid ""
 "<span size=\"small\">Changing these settings will require a restart of "
 "Audacious.</span>"
@@ -571,15 +541,15 @@ msgstr ""
 "<span size=\"small\">Ezarpen hauen aldaketek Audacious berrabiaraztea "
 "eskatzen dute.</span>"
 
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
 msgid "Auto character encoding detector for:"
 msgstr "Karaktere-kodeketaren detekzio automatikoa:"
 
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
 msgid "Fallback character encodings:"
 msgstr "Karaktere-kodeketa:"
 
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
 msgid ""
 "List of character encodings used for fall back conversion of metadata. If "
 "automatic character encoding detector failed or has been disabled, encodings "
@@ -591,46 +561,46 @@ msgstr ""
 "egin bada, zerrenda honetako kodeketak erabiliko dira metadatuen kodeketako "
 "hautagai gisa, eta kodeketa hauetatik UTF-8ra bihurtzen saiatuko da."
 
-#: src/audacious/ui_preferences.c:213
+#: src/audacious/ui_preferences.c:205
 #, fuzzy
 msgid "<b>Behavior</b>"
 msgstr "<b>Bit-sakonera</b>"
 
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:206
 msgid "Continue playback on startup"
 msgstr "Jarraitu erreprodukzioa abiaraztean"
 
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:208
 msgid "Advance when the current song is deleted"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:218
+#: src/audacious/ui_preferences.c:210
 #, fuzzy
 msgid "Clear the playlist when opening files"
 msgstr "Sortu erreprodukzio-zerrenda berria bat datozten sarrerekin"
 
-#: src/audacious/ui_preferences.c:220
+#: src/audacious/ui_preferences.c:212
 #, fuzzy
 msgid "Open files in a temporary playlist"
 msgstr "Gehitu fitxategi berriak aldi baterako erreprodukzio-zerrendari"
 
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:214
 msgid "<b>Metadata</b>"
 msgstr "<b>Metadatuak</b>"
 
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:454
 msgid "Category"
 msgstr "Kategoria"
 
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:682
 msgid "Popup Information Settings"
 msgstr "Laster-leihoen ezarpenak"
 
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:691
 msgid "<b>Cover image retrieve</b>"
 msgstr "<b>Eskuratu azaleko irudia</b>"
 
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:696
 msgid ""
 "While searching for the album's cover, Audacious looks for certain words in "
 "the filename. You can specify those words in the lists below, separated "
@@ -640,100 +610,100 @@ msgstr ""
 "fitxategi-izenean. Hitz horiek azpiko zerrendan zehatz ditzakezu, komaz "
 "bereiztuta."
 
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:713
 msgid "Exclude:"
 msgstr "Baztertu:"
 
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:720
 msgid "Include:"
 msgstr "Sartu:"
 
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:737
 msgid "Recursively search for cover"
 msgstr "Bilatu azala errekurtsiboki"
 
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:747
 msgid "Search depth: "
 msgstr "Sakonera:"
 
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:761
 msgid "Use per-file cover"
 msgstr "Erabili azala fitxategiko"
 
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:764
 msgid "<b>Miscellaneous</b>"
 msgstr "<b>Hainbat</b>"
 
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:773
 msgid "Show Progress bar for the current track"
 msgstr "Erakutsi uneko kantaren progresio-barra"
 
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:783
 msgid "Delay until filepopup comes up: "
 msgstr "Atzerapena laster-leihoa agertzeko: "
 
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1283
 msgid "<b>Song Display</b>"
 msgstr "<b>Kanten ikuspegia</b>"
 
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1292
 msgid "Show song numbers"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1303
 msgid "Show leading zeroes (02:00 instead of 2:00)"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1325
 msgid "Show information about titlestring format"
 msgstr "Erakutsi titulu-formatuari buruzko informazioa"
 
-#: src/audacious/ui_preferences.c:1514
+#: src/audacious/ui_preferences.c:1339
 msgid "TITLE"
 msgstr "TITULUA"
 
-#: src/audacious/ui_preferences.c:1515
+#: src/audacious/ui_preferences.c:1340
 msgid "ARTIST - TITLE"
 msgstr "ARTISTA - TITULUA"
 
-#: src/audacious/ui_preferences.c:1516
+#: src/audacious/ui_preferences.c:1341
 msgid "ARTIST - ALBUM - TITLE"
 msgstr "ARTISTA - ALBUMA - TITULUA"
 
-#: src/audacious/ui_preferences.c:1517
+#: src/audacious/ui_preferences.c:1342
 msgid "ARTIST - ALBUM - TRACK. TITLE"
 msgstr "ARTISTA - ALBUMA - PISTA. TITULUA"
 
-#: src/audacious/ui_preferences.c:1518
+#: src/audacious/ui_preferences.c:1343
 msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
 msgstr "ARTISTA - [ALBUMA] - PISTA. TITULUA"
 
-#: src/audacious/ui_preferences.c:1519
+#: src/audacious/ui_preferences.c:1344
 msgid "ALBUM - TITLE"
 msgstr "ALBUMA - TITULUA"
 
-#: src/audacious/ui_preferences.c:1520
+#: src/audacious/ui_preferences.c:1345
 msgid "Custom"
 msgstr "Pertsonalizatua"
 
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1354
 msgid "Custom string:"
 msgstr "Kate pertsonalizatua:"
 
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1361
 msgid "Title format:"
 msgstr "Tituluaren formatua:"
 
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1372
 msgid "<b>Popup Information</b>"
 msgstr "<b>Laster-leihoa</b>"
 
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1387
 msgid "Show popup information for playlist entries"
 msgstr ""
 "Erakutsi erreprodukzio-zerrendako sarreren informazioaren laster-leihoa"
 
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1388
 msgid ""
 "Toggles popup information window for the pointed entry in the playlist. The "
 "window shows title of song, name of album, genre, year of publish, track "
@@ -744,54 +714,47 @@ msgstr ""
 "titulua, albumaren izena, generoa, argitalpen urtea, pista-zenbakia, "
 "pistaren iraupena eta irudiak erakutsiko ditu."
 
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1397
 msgid "Edit settings for popup information"
 msgstr "Editatu laster-leihoaren ezarpenak"
 
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>Audio-sistema</b>"
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "Bufferraren tamaina:"
-
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
-msgstr "Uneko irteerako plugina:"
+#: src/audacious/ui_preferences.c:1497
+#, fuzzy
+msgid "Output plugin:"
+msgstr "Sarrerako plugina: %s"
 
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
 #, fuzzy
 msgid "Transport"
 msgstr "Itzultzaileak"
 
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
 msgid "Input"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
 #, fuzzy
 msgid "Effect"
 msgstr "<b>Efektuak</b>"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
 msgid "Visualization"
 msgstr "Bistaratzea"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
 msgid "General"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1597
 msgid "Audacious Preferences"
 msgstr "Audacious-en hobespenak"
 
-#: src/audacious/util.c:161
+#: src/audacious/util.c:155
 #, c-format
 msgid "Could not create directory (%s): %s\n"
 msgstr "Ezin izan da %s direktorioa sortu: %s\n"
 
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:264
 msgid "Position not found."
 msgstr ""
 
@@ -810,22 +773,24 @@ msgstr "estereoa"
 
 #: src/libaudcore/tuple.c:689
 #, c-format
-msgid "%d channels"
-msgstr ""
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] ""
+msgstr[1] ""
 
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/confirm.c:73
 #, c-format
 msgid ""
 "Are you sure you want to close %s?  If you do, any changes made since the "
 "playlist was exported will be lost."
 msgstr ""
 
-#: src/libaudgui/confirm.c:77
+#: src/libaudgui/confirm.c:86
 #, fuzzy
 msgid "_Don't show this message again"
 msgstr "Ez erakutsi mezu hau aurrerantzean"
 
-#: src/libaudgui/confirm.c:115
+#: src/libaudgui/confirm.c:124
 #, fuzzy
 msgid "Rename Playlist"
 msgstr "Gorde erreprodukzio-zerrenda"
@@ -889,11 +854,11 @@ msgstr "Erakutsi ekualizadorea"
 msgid "Preamp"
 msgstr "Aurre-anp:"
 
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:212
 msgid "Track Number"
 msgstr "Pista-zenbakia"
 
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:214
 msgid "Track Length"
 msgstr "Pistaren luzera"
 
@@ -1125,6 +1090,29 @@ msgstr "%d kb/s"
 msgid "No info available for %s.\n"
 msgstr ""
 
+#: src/libaudgui/jump-to-time.c:75
+msgid "Jump to Time"
+msgstr "Saltatu denborara"
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr ""
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Export Playlist"
+msgstr "Kargatu erreprodukzio-zerrenda"
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Import Playlist"
+msgstr "Kargatu erreprodukzio-zerrenda"
+
+#: src/libaudgui/playlists.c:71
+#, c-format
+msgid "Overwrite %s?"
+msgstr ""
+
 #: src/libaudgui/ui_about.c:71
 msgid "About Audacious"
 msgstr "Audacious-i buruz"
@@ -1186,19 +1174,19 @@ msgstr "Garbitu A-B"
 msgid "Close on Jump"
 msgstr "Itxi saltatzean"
 
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:240
 msgid "Playlist Manager"
 msgstr "Erreprodukzio-zerrendaren kudeatzailea"
 
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:264
 msgid "Entries"
 msgstr "Sarrerak"
 
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:285
 msgid "_Rename"
 msgstr "_Izena aldatu"
 
-#: src/libaudgui/ui_playlist_manager.c:251
+#: src/libaudgui/ui_playlist_manager.c:309
 #, fuzzy
 msgid "_Close dialog on activating playlist"
 msgstr "Itxi elkarrizketa-koadroa fitxategia ireki ondoren"
@@ -1211,6 +1199,12 @@ msgstr ""
 msgid "Add URL"
 msgstr ""
 
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+
 #: src/libeggsmclient/eggdesktopfile.c:165
 msgid "File is not a valid .desktop file"
 msgstr "Ez da baliozko '.desktop' fitxategia"
@@ -1220,26 +1214,26 @@ msgstr "Ez da baliozko '.desktop' fitxategia"
 msgid "Unrecognized desktop file Version '%s'"
 msgstr "Mahaigaineko fitxategiaren '%s' bertsioa ezezaguna"
 
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:967
 #, c-format
 msgid "Starting %s"
 msgstr "%s abiarazten"
 
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1108
 msgid "Application does not accept documents on command line"
 msgstr "Aplikazioak ez du dokumenturik onartzen komando-lerroan"
 
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1176
 #, c-format
 msgid "Unrecognized launch option: %d"
 msgstr "Abiarazteko parametro ezezaguna: %d"
 
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1375
 msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
 msgstr ""
 "Ezin zaio dokumentuen URIrik eman 'Type=Link' motako mahaigaineko sarrerari"
 
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1396
 msgid "Not a launchable item"
 msgstr "Ez da elementu abiarazgarria"
 
@@ -1273,6 +1267,52 @@ msgstr "Saio-kudeaketaren aukerak"
 msgid "Show session management options"
 msgstr "Erakutsi saio-kudeaketaren aukerak"
 
+#~ msgid "Replay Gain"
+#~ msgstr "Irabazpena"
+
+#~ msgid "<b>Bit Depth</b>"
+#~ msgstr "<b>Bit-sakonera</b>"
+
+#~ msgid ""
+#~ "All streams will be converted to this bit depth.\n"
+#~ "This should be the max supported bit depth of\n"
+#~ "the sound card or output plugin."
+#~ msgstr ""
+#~ "Korronte guztiak bit-sakonera honetara bihurtuko dira.\n"
+#~ "Hau soinu-txartelak edo irteerako pluginak onartutako\n"
+#~ "gehienezko bit-sakonera izan beharko luke."
+
+#~ msgid "<b>Volume Control</b>"
+#~ msgstr "<b>Bolumen-kontrola</b>"
+
+#~ msgid ""
+#~ "Use software volume control. This may be useful for situations where your "
+#~ "audio system does not support controlling the playback volume."
+#~ msgstr ""
+#~ "Erabili softwarearen bolumen-kontrola. Oso erabilgarria izan daiteke "
+#~ "audioko sistemak erreprodukzioaren bolumena ezin duenean kontrolatu."
+
+#, fuzzy
+#~ msgid "<b>Mode</b>"
+#~ msgstr "<b>Metadatuak</b>"
+
+#, fuzzy
+#~ msgid "<b>Clipping Prevention</b>"
+#~ msgstr "<b>Laster-leihoa</b>"
+
+#, fuzzy
+#~ msgid "Enable clipping prevention"
+#~ msgstr "Gaitu tontorraren datuen mozketa saihestea"
+
+#~ msgid "<b>Audio System</b>"
+#~ msgstr "<b>Audio-sistema</b>"
+
+#~ msgid "Current output plugin:"
+#~ msgstr "Uneko irteerako plugina:"
+
+#~ msgid "Display all open Audacious windows"
+#~ msgstr "Bistaratu Audacious-en irekitako leiho guztiak"
+
 #~ msgid "%s: Unable to open display, exiting.\n"
 #~ msgstr "%s: ezin da pantaila ireki. Irtetzen.\n"
 
@@ -1762,9 +1802,6 @@ msgstr "Erakutsi saio-kudeaketaren aukerak"
 #~ msgid "No input plugin recognized this file"
 #~ msgstr "Fitxategi honek ez du sarrerako pluginik ezagutu"
 
-#~ msgid "Input plugin: %s"
-#~ msgstr "Sarrerako plugina: %s"
-
 #~ msgid ""
 #~ "<b><big>No output plugin selected.</big></b>\n"
 #~ "You have not selected an output plugin."
@@ -1806,9 +1843,6 @@ msgstr "Erakutsi saio-kudeaketaren aukerak"
 #~ "dira. Hau soinu-txartelak edo irteerako pluginak onartutako\n"
 #~ "gehienezko bit-sakonera izan beharko luke.</span>"
 
-#~ msgid "<b>Format Detection</b>"
-#~ msgstr "<b>Formatuaren detekzioa</b>"
-
 #~ msgid "Detect file formats by extension."
 #~ msgstr "Detektatu fitxategi-formatuak luzapenaren arabera."
 
@@ -1940,9 +1974,6 @@ msgstr "Erakutsi saio-kudeaketaren aukerak"
 #~ msgid "Can't jump to time when no track is being played.\n"
 #~ msgstr "Ezin da denborara saltatu pista erreproduzitzen hasi gabe.\n"
 
-#~ msgid "Jump to Time"
-#~ msgstr "Saltatu denborara"
-
 #~ msgid "minutes:seconds"
 #~ msgstr "minutu:segundo"
 
diff --git a/po/fi.po b/po/fi.po
index 1d82b24..a8f341f 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -4,28 +4,39 @@
 # This file is distributed under the same license as Audacious Media Player.
 # Pauli Virtanen <pauli.virtanen at hut.fi>, 2004.
 # Matti Hämäläinen, 2008.
+# Elias Julkunen <elias.julkunen at gmail.com>, 2011.
 msgid ""
 msgstr ""
 "Project-Id-Version: fi\n"
 "Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
-"PO-Revision-Date: 2008-04-09 12:12+0300\n"
-"Last-Translator: Matti Hämäläinen <ccr at tnsp.org>\n"
+"POT-Creation-Date: 2011-07-05 22:45+0200\n"
+"PO-Revision-Date: 2011-05-23 23:13+0100\n"
+"Last-Translator: Elias Julkunen <elias.julkunen at gmail.com>\n"
 "Language-Team: Finnish <fi at li.org>\n"
 "Language: fi\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms:  nplurals=2; plural=(n != 1);\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: src/audacious/adder.c:71
+msgid "Searching ..."
+msgstr "Etsitään..."
+
+#: src/audacious/adder.c:99
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] "%d tiedosto löytyi"
+msgstr[1] "%d tiedostoa löytyi"
 
 #: src/audacious/chardet.c:37
 msgid "  (invalid UTF-8)"
-msgstr "  (virheellistä UTF-8:aa)"
+msgstr "  (virheellinen UTF-8)"
 
 #: src/audacious/credits.c:35
-#, fuzzy
 msgid "Core developers:"
-msgstr "0.1.x:n kehittäjät:"
+msgstr "Pääkehittäjät:"
 
 #: src/audacious/credits.c:49
 msgid "Graphics:"
@@ -44,22 +55,20 @@ msgid "Patch authors:"
 msgstr "Paikkojen tekijät:"
 
 #: src/audacious/credits.c:126
-#, fuzzy
 msgid "1.x developers:"
-msgstr "0.1.x:n kehittäjät:"
+msgstr "1.x-version kehittäjät:"
 
 #: src/audacious/credits.c:148
 msgid "BMP Developers:"
 msgstr "BMP:n kehittäjät:"
 
 #: src/audacious/credits.c:180
-#, fuzzy
 msgid "Belarusian:"
-msgstr "bulgaria:"
+msgstr "valko-venäjä:"
 
 #: src/audacious/credits.c:183
 msgid "Basque:"
-msgstr ""
+msgstr "baski:"
 
 #: src/audacious/credits.c:186
 msgid "Brazilian Portuguese:"
@@ -75,12 +84,11 @@ msgstr "bulgaria:"
 
 #: src/audacious/credits.c:196
 msgid "Catalan:"
-msgstr ""
+msgstr "katalaani:"
 
 #: src/audacious/credits.c:199
-#, fuzzy
 msgid "Chinese:"
-msgstr "Kiina"
+msgstr "kiina:"
 
 #: src/audacious/credits.c:202
 msgid "Croatian:"
@@ -88,7 +96,7 @@ msgstr "kroatia:"
 
 #: src/audacious/credits.c:205
 msgid "Czech:"
-msgstr "tshekki:"
+msgstr "tšekki:"
 
 #: src/audacious/credits.c:208
 msgid "Dutch:"
@@ -102,195 +110,176 @@ msgstr "eesti:"
 msgid "Finnish:"
 msgstr "suomi:"
 
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:220
 msgid "French:"
 msgstr "ranska:"
 
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:226
 msgid "German:"
 msgstr "saksa:"
 
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:233
 msgid "Georgian:"
-msgstr ""
+msgstr "georgia:"
 
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:236
 msgid "Greek:"
 msgstr "kreikka:"
 
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:241
 msgid "Hindi:"
 msgstr "hindi:"
 
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:244
 msgid "Hungarian:"
 msgstr "unkari:"
 
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:248
 msgid "Italian:"
 msgstr "italia:"
 
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:252
 msgid "Japanese:"
 msgstr "japani:"
 
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:255
 msgid "Korean:"
 msgstr "korea:"
 
-#: src/audacious/credits.c:256
-#, fuzzy
+#: src/audacious/credits.c:258
 msgid "Latvian:"
-msgstr "kroatia:"
+msgstr "latvia:"
 
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:261
 msgid "Lithuanian:"
 msgstr "liettua:"
 
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:265
 msgid "Macedonian:"
 msgstr "makedonia:"
 
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:268
 msgid "Polish:"
 msgstr "puola:"
 
-#: src/audacious/credits.c:271
-#, fuzzy
+#: src/audacious/credits.c:274
 msgid "Portuguese:"
-msgstr "portugali (Brasilia):"
+msgstr "portugali:"
 
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:277
 msgid "Romanian:"
 msgstr "romania:"
 
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:281
 msgid "Russian:"
 msgstr "venäjä:"
 
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:285
 msgid "Serbian (Latin):"
 msgstr "serbia (latin):"
 
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:288
 msgid "Serbian (Cyrillic):"
 msgstr "serbia (kyrillinen):"
 
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:291
 msgid "Simplified Chinese:"
 msgstr "yksinkertaistettu kiina:"
 
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:294
 msgid "Slovak:"
 msgstr "slovakki:"
 
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:297
 msgid "Spanish:"
 msgstr "espanja:"
 
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:304
 msgid "Swedish:"
 msgstr "ruotsi:"
 
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:307
 msgid "Traditional Chinese:"
 msgstr "perinteinen kiina:"
 
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:312
 msgid "Turkish:"
 msgstr "turkki:"
 
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:316
 msgid "Ukrainian:"
 msgstr "ukraina:"
 
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:319
 msgid "Welsh:"
 msgstr "kymri:"
 
-#: src/audacious/drct.c:254
-#, fuzzy
+#: src/audacious/drct.c:256
 msgid "Temporary Playlist"
-msgstr "Avaa soittolista"
+msgstr "Tilapäinen soittolista"
 
 #: src/audacious/equalizer_preset.c:186
 #, c-format
 msgid "Error importing Winamp EQF file '%s'"
-msgstr "Virhe luettaessa WinAmp EQF tiedostoa '%s'"
-
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr ""
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] ""
-msgstr[1] ""
+msgstr "Virhe luettaessa Winamp EQF -tiedostoa '%s'"
 
-#: src/audacious/main.c:247
+#: src/audacious/main.c:256
 msgid "Skip backwards in playlist"
 msgstr "Siirry taaksepäin soittolistassa"
 
-#: src/audacious/main.c:248
+#: src/audacious/main.c:257
 msgid "Start playing current playlist"
 msgstr "Soita nykyistä soittolistaa"
 
-#: src/audacious/main.c:249
+#: src/audacious/main.c:258
 msgid "Pause current song"
-msgstr "Tauota nykyinen kappale"
+msgstr "Keskeytä nykyinen kappale"
 
-#: src/audacious/main.c:250
+#: src/audacious/main.c:259
 msgid "Stop current song"
-msgstr "Pysäytä nykyisen kappaleen soittaminen"
+msgstr "Pysäytä nykyinen kappale"
 
-#: src/audacious/main.c:251
+#: src/audacious/main.c:260
 msgid "Pause if playing, play otherwise"
-msgstr "Pidä tauko jos kappale soi, muuten aloita soittaminen"
+msgstr "Keskeytä jos kappale soi, muuten jatka soittamista"
 
-#: src/audacious/main.c:252
+#: src/audacious/main.c:261
 msgid "Skip forward in playlist"
 msgstr "Siirry eteenpäin soittolistassa"
 
-#: src/audacious/main.c:253
+#: src/audacious/main.c:262
 msgid "Display Jump to File dialog"
-msgstr "Näytä tiedostoon hyppäämisdialogi"
+msgstr "Näytä Siirry tiedostoon -valintaikkuna"
 
-#: src/audacious/main.c:254
-#, fuzzy
+#: src/audacious/main.c:263
 msgid "Add files to the playlist"
-msgstr "Lisää tiedostot soittolistaan."
+msgstr "Lisää tiedostoja soittolistaan"
 
-#: src/audacious/main.c:255
+#: src/audacious/main.c:264
 msgid "Add new files to a temporary playlist"
-msgstr "Lisää uudet tiedostot väliaikaiseen soittolistaan"
+msgstr "Lisää uusia tiedostoja väliaikaiseen soittolistaan"
 
-#: src/audacious/main.c:256
+#: src/audacious/main.c:265
 msgid "Display the main window"
 msgstr "Näytä pääikkuna"
 
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr "Näytä kaikki avoimet Audacious -ikkunat"
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:266
 msgid "Show version"
 msgstr "Näytä versio"
 
-#: src/audacious/main.c:259
+#: src/audacious/main.c:267
 msgid "Print debugging messages"
-msgstr ""
+msgstr "Näytä virheenjäljitysviestit"
 
-#: src/audacious/main.c:260
+#: src/audacious/main.c:268
 msgid "FILE..."
 msgstr "TIEDOSTO..."
 
-#: src/audacious/main.c:272
+#: src/audacious/main.c:280
 msgid "- play multimedia files"
 msgstr "- soita multimediatiedostoja"
 
-#: src/audacious/main.c:282
+#: src/audacious/main.c:290
 #, c-format
 msgid ""
 "%s: %s\n"
@@ -299,611 +288,569 @@ msgstr ""
 "%s: %s\n"
 "Kokeile `%s --help' saadaksesi lisätietoja.\n"
 
-#: src/audacious/main.c:395
+#: src/audacious/main.c:407
 msgid ""
 "Audacious seems to be already running but is not responding.  You can start "
 "another instance of the program, but please be warned that this can cause "
 "data loss.  If Audacious is not running, you can safely ignore this "
 "message.  Press OK to start Audacious or Cancel to quit."
 msgstr ""
+"Audacious näyttää olevan jo käynnissä, mutta se ei vastaa. Voit käynnistää "
+"toisen instanssin ohjelmasta, mutta tämä voi aiheuttaa tietojen katoamista. "
+"Jos Audacious ei ole käynnissä, voit turvallisesti ohittaa tämän viestin. "
+"Napsauta OK käynnistääksesi Audaciouksen tai Peruuta poistuaksesi."
 
-#: src/audacious/main.c:558
+#: src/audacious/main.c:572
 msgid "Audacious"
 msgstr "Audacious"
 
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:381
 #, c-format
 msgid "No decoder found for %s."
-msgstr ""
+msgstr "Purkajaa ei löytynyt tiedostomuodolle %s."
 
-#: src/audacious/playback.c:519
+#: src/audacious/playback.c:531
 msgid "Buffering ..."
-msgstr ""
+msgstr "Puskuroidaan..."
 
-#: src/audacious/playlist-new.c:288
-#, fuzzy
+#: src/audacious/playlist-new.c:303
 msgid "Untitled Playlist"
-msgstr "Uusi soittolista"
+msgstr "Nimetön soittolista"
 
-#: src/audacious/ui_preferences.c:88
-#, fuzzy
+#: src/audacious/ui_preferences.c:87
 msgid "Audio"
-msgstr "MPEG-ääniliitännäisestä"
-
-#: src/audacious/ui_preferences.c:89
-#, fuzzy
-msgid "Replay Gain"
-msgstr "ReplayGain"
+msgstr "Ääni"
 
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:88
 msgid "Network"
-msgstr ""
+msgstr "Verkko"
 
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:89 src/audacious/ui_preferences.c:1556
 msgid "Playlist"
 msgstr "Soittolista"
 
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:90
 msgid "Plugins"
 msgstr "Liitännäiset"
 
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:204
 msgid "Artist"
 msgstr "Esittäjä"
 
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:97 src/libaudgui/infopopup.c:206
 msgid "Album"
 msgstr "Albumi"
 
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:202
+#: src/libaudgui/ui_playlist_manager.c:263
 msgid "Title"
 msgstr "Nimi"
 
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:99
 msgid "Tracknumber"
 msgstr "Kappalenumero"
 
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:208
 msgid "Genre"
 msgstr "Tyylilaji"
 
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:101
 msgid "Filename"
 msgstr "Tiedostonimi"
 
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:102
 msgid "Filepath"
 msgstr "Tiedostopolku"
 
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:103
 msgid "Date"
 msgstr "Päiväys"
 
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:104 src/libaudgui/infopopup.c:210
 msgid "Year"
 msgstr "Vuosi"
 
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:105
 msgid "Comment"
 msgstr "Kommentti"
 
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:106
 msgid "Codec"
-msgstr "Kodekki"
+msgstr "Koodekki"
 
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:107
 msgid "Quality"
 msgstr "Laatu"
 
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:112
 msgid "None"
 msgstr "Ei mikään"
 
-#: src/audacious/ui_preferences.c:115
+#: src/audacious/ui_preferences.c:113
 msgid "Japanese"
 msgstr "Japani"
 
-#: src/audacious/ui_preferences.c:116
+#: src/audacious/ui_preferences.c:114
 msgid "Taiwanese"
 msgstr "Taiwan"
 
-#: src/audacious/ui_preferences.c:117
+#: src/audacious/ui_preferences.c:115
 msgid "Chinese"
 msgstr "Kiina"
 
-#: src/audacious/ui_preferences.c:118
+#: src/audacious/ui_preferences.c:116
 msgid "Korean"
 msgstr "Korea"
 
-#: src/audacious/ui_preferences.c:119
+#: src/audacious/ui_preferences.c:117
 msgid "Russian"
 msgstr "Venäjä"
 
-#: src/audacious/ui_preferences.c:120
+#: src/audacious/ui_preferences.c:118
 msgid "Greek"
 msgstr "Kreikka"
 
-#: src/audacious/ui_preferences.c:121
+#: src/audacious/ui_preferences.c:119
 msgid "Hebrew"
 msgstr "Heprea"
 
-#: src/audacious/ui_preferences.c:122
+#: src/audacious/ui_preferences.c:120
 msgid "Turkish"
 msgstr "Turkki"
 
-#: src/audacious/ui_preferences.c:123
+#: src/audacious/ui_preferences.c:121
 msgid "Arabic"
 msgstr "Arabia"
 
-#: src/audacious/ui_preferences.c:124
-#, fuzzy
+#: src/audacious/ui_preferences.c:122
 msgid "Polish"
-msgstr "puola:"
+msgstr "Puola"
 
-#: src/audacious/ui_preferences.c:125
-#, fuzzy
+#: src/audacious/ui_preferences.c:123
 msgid "Baltic"
-msgstr "Kelttiläinen"
+msgstr "balttia"
 
-#: src/audacious/ui_preferences.c:126
+#: src/audacious/ui_preferences.c:124
 msgid "Universal"
 msgstr "Yleismaailmallinen"
 
 #: src/audacious/ui_preferences.c:146
-msgid "<b>Bit Depth</b>"
-msgstr "<b>Bittisyvyys</b>"
+msgid "Single track mode"
+msgstr "Yksittäinen kappale -tila"
 
 #: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr ""
+msgid "Album mode"
+msgstr "Albumitila"
 
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
+#: src/audacious/ui_preferences.c:150
+msgid "<b>Output Settings</b>"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:151
-msgid "<b>Volume Control</b>"
-msgstr "<b>Äänenvoimakkuuden säädöt</b>"
-
 #: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr "Käytä ohjelmistopohjaista äänenvoimakkuussäätöä"
+#, fuzzy
+msgid "Bit depth:"
+msgstr "Ulostulon bittisyvyys:"
 
-#: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
+#: src/audacious/ui_preferences.c:155
+msgid "Buffer size:"
+msgstr "Puskurin koko:"
 
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
+#: src/audacious/ui_preferences.c:157
+msgid "ms"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
-msgstr "dB"
-
-#: src/audacious/ui_preferences.c:160
+#: src/audacious/ui_preferences.c:158
 #, fuzzy
-msgid "Amplify untagged files:"
-msgstr "- soita multimediatiedostoja"
+msgid "Use software volume control (not recommended)"
+msgstr "Käytä ohjelmapohjaista äänenvoimakkuuden hallintaa"
 
-#: src/audacious/ui_preferences.c:164
-#, fuzzy
+#: src/audacious/ui_preferences.c:160
 msgid "<b>Replay Gain</b>"
-msgstr "<b>Tiedostonimi</b>"
+msgstr "<b>Replay Gain</b>"
 
-#: src/audacious/ui_preferences.c:165
-#, fuzzy
+#: src/audacious/ui_preferences.c:161
 msgid "Enable Replay Gain"
-msgstr "Käytä ReplayGainia"
+msgstr "Käytä Replay Gainia"
+
+#: src/audacious/ui_preferences.c:164
+msgid "Prevent clipping (recommended)"
+msgstr ""
+
+#: src/audacious/ui_preferences.c:166
+msgid "<b>Adjust Levels</b>"
+msgstr "<b>Säädä tasoja</b>"
 
 #: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>Metatiedot</b>"
+msgid "Amplify all files:"
+msgstr "Vahvista kaikki tiedostot:"
 
-#: src/audacious/ui_preferences.c:168
-#, fuzzy
-msgid "Single track mode"
-msgstr "/Näytä kappaleen tiedot"
+#: src/audacious/ui_preferences.c:169 src/audacious/ui_preferences.c:172
+msgid "dB"
+msgstr "dB"
 
 #: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "Albumi: "
-
-#: src/audacious/ui_preferences.c:172
-#, fuzzy
-msgid "<b>Adjust Levels</b>"
-msgstr "<b>Hiiren rulla</b>"
+msgid "Amplify untagged files:"
+msgstr "Vahvista luokittelemattomat tiedostot:"
 
 #: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "MPEG-ääniliitännäisen asetukset"
-
-#: src/audacious/ui_preferences.c:176
-#, fuzzy
-msgid "Enable clipping prevention"
-msgstr "Estä huippujen leikkautuminen"
-
-#: src/audacious/ui_preferences.c:180
 msgid "Proxy hostname:"
 msgstr "Välityspalvelimen osoite:"
 
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:176
 msgid "Proxy port:"
 msgstr "Välityspalvelimen portti:"
 
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:179
 msgid "Proxy username:"
 msgstr "Välityspalvelimen käyttäjätunnus:"
 
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:180
 msgid "Proxy password:"
 msgstr "Välityspalvelimen salasana:"
 
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:184
 msgid "<b>Proxy Configuration</b>"
 msgstr "<b>Välityspalvelinasetukset</b>"
 
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:185
 msgid "Enable proxy usage"
 msgstr "Käytä välityspalvelinta"
 
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:187
 msgid "Use authentication with proxy"
-msgstr "Käytä autentikointia"
+msgstr "Käytä tunnistautumista välityspalvelimen kanssa"
 
-#: src/audacious/ui_preferences.c:197
+#: src/audacious/ui_preferences.c:189
 msgid ""
 "<span size=\"small\">Changing these settings will require a restart of "
 "Audacious.</span>"
 msgstr ""
-"<span size=\"small\">Näiden asetusten muuttaminen vaatii ohjelman "
+"<span size=\"small\">Näiden asetusten muuttaminen vaatii Audaciouksen "
 "uudelleenkäynnistyksen.</span>"
 
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
 msgid "Auto character encoding detector for:"
-msgstr ""
+msgstr "Automaattinen merkistökoodauksen tunnistus:"
 
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
 msgid "Fallback character encodings:"
-msgstr ""
+msgstr "Toissijaiset merkistökoodaukset:"
 
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
 msgid ""
 "List of character encodings used for fall back conversion of metadata. If "
 "automatic character encoding detector failed or has been disabled, encodings "
 "in this list would be treated as candidates of the encoding of metadata, and "
 "fall back conversion from these encodings to UTF-8 would be attempted."
 msgstr ""
+"Luettelo metatietojen muuttamiseen käytettävistä toissijaisista "
+"merkistökoodauksista. Jos automaattinen merkistökoodauksen tunnistus "
+"epäonnistuu tai se on pois käytöstä, tämän luettelon koodauksia pidetään "
+"ehdokkaina metatietojen koodauksille, ja muuntoa näistä koodauksista UTF-8-"
+"koodaukseen yritetään."
 
-#: src/audacious/ui_preferences.c:213
-#, fuzzy
+#: src/audacious/ui_preferences.c:205
 msgid "<b>Behavior</b>"
-msgstr "<b>Bittisyvyys</b>"
+msgstr "<b>Käytös</b>"
 
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:206
 msgid "Continue playback on startup"
-msgstr ""
+msgstr "Jatka soittoa käynnistettäessä"
 
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:208
 msgid "Advance when the current song is deleted"
-msgstr ""
+msgstr "Jatka, kun nykyinen kappale on poistettu"
 
-#: src/audacious/ui_preferences.c:218
-#, fuzzy
+#: src/audacious/ui_preferences.c:210
 msgid "Clear the playlist when opening files"
-msgstr "Valitsee kaikki soittolistan kappaleet."
+msgstr "Tyhjennä soittolista avattaessa tiedostoja"
 
-#: src/audacious/ui_preferences.c:220
-#, fuzzy
+#: src/audacious/ui_preferences.c:212
 msgid "Open files in a temporary playlist"
-msgstr "Lisää uudet tiedostot väliaikaiseen soittolistaan"
+msgstr "Avaa tiedostot väliaikaisessa soittolistassa"
 
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:214
 msgid "<b>Metadata</b>"
 msgstr "<b>Metatiedot</b>"
 
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:454
 msgid "Category"
 msgstr "Luokka"
 
-#: src/audacious/ui_preferences.c:815
-#, fuzzy
+#: src/audacious/ui_preferences.c:682
 msgid "Popup Information Settings"
-msgstr "MPEG-ääniliitännäisen asetukset"
+msgstr ""
 
-#: src/audacious/ui_preferences.c:824
-#, fuzzy
+#: src/audacious/ui_preferences.c:691
 msgid "<b>Cover image retrieve</b>"
-msgstr "Automaattinen tunnistus"
+msgstr "<b>Kansikuvien haku</b>"
 
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:696
 msgid ""
 "While searching for the album's cover, Audacious looks for certain words in "
 "the filename. You can specify those words in the lists below, separated "
 "using commas."
 msgstr ""
+"Albumin kansikuvaa etsittäessä Audacious etsii tiettyjä sanoja "
+"tiedostonnimessä. Voit määritellä nämä sanat alla olevissa luetteloissa "
+"pilkuilla erotettuina."
 
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:713
 msgid "Exclude:"
-msgstr ""
+msgstr "Jätä huomiotta:"
 
-#: src/audacious/ui_preferences.c:853
-#, fuzzy
+#: src/audacious/ui_preferences.c:720
 msgid "Include:"
-msgstr "Riippumaton"
+msgstr "Siällytä:"
 
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:737
 msgid "Recursively search for cover"
-msgstr ""
+msgstr "Etsi albumin kansikuvaa rekursiivisesti"
 
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:747
 msgid "Search depth: "
 msgstr "Haun syvyys: "
 
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:761
 msgid "Use per-file cover"
-msgstr ""
+msgstr "Käytä kansikuvia yksittäisille tiedostoille"
 
-#: src/audacious/ui_preferences.c:897
-#, fuzzy
+#: src/audacious/ui_preferences.c:764
 msgid "<b>Miscellaneous</b>"
-msgstr "<b>_Sekalaista</b>"
+msgstr "<b>Sekalaista</b>"
 
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:773
 msgid "Show Progress bar for the current track"
-msgstr ""
+msgstr "Näytä edistymispalkki nykyiselle kappaleelle"
 
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:783
 msgid "Delay until filepopup comes up: "
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1283
 msgid "<b>Song Display</b>"
 msgstr "<b>Kappaleen näyttö</b>"
 
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1292
 msgid "Show song numbers"
-msgstr ""
+msgstr "Näytä kappalenumerot"
 
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1303
 msgid "Show leading zeroes (02:00 instead of 2:00)"
-msgstr ""
+msgstr "Näytä edeltävät nollat (02:00 2:00:n sijasta)"
 
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1325
 msgid "Show information about titlestring format"
 msgstr "Näytä tietoja kappaleiden nimiketekstin muodosta"
 
-#: src/audacious/ui_preferences.c:1514
+#: src/audacious/ui_preferences.c:1339
 msgid "TITLE"
-msgstr ""
+msgstr "NIMI"
 
-#: src/audacious/ui_preferences.c:1515
+#: src/audacious/ui_preferences.c:1340
 msgid "ARTIST - TITLE"
-msgstr ""
+msgstr "ARTISTI - NIMI"
 
-#: src/audacious/ui_preferences.c:1516
+#: src/audacious/ui_preferences.c:1341
 msgid "ARTIST - ALBUM - TITLE"
-msgstr ""
+msgstr "ARTISTI - ALBUMI - NIMI"
 
-#: src/audacious/ui_preferences.c:1517
+#: src/audacious/ui_preferences.c:1342
 msgid "ARTIST - ALBUM - TRACK. TITLE"
-msgstr ""
+msgstr "ARTISTI - ALBUMI - KAPPALENUMERO. NIMI"
 
-#: src/audacious/ui_preferences.c:1518
+#: src/audacious/ui_preferences.c:1343
 msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
-msgstr ""
+msgstr "ARTISTI [ ALBUMI ] - KAPPALENUMERO. NIMI"
 
-#: src/audacious/ui_preferences.c:1519
+#: src/audacious/ui_preferences.c:1344
 msgid "ALBUM - TITLE"
-msgstr ""
+msgstr "ALBUMI - NIMI"
 
-#: src/audacious/ui_preferences.c:1520
+#: src/audacious/ui_preferences.c:1345
 msgid "Custom"
 msgstr "Muu ..."
 
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1354
 msgid "Custom string:"
 msgstr "Muu merkkijono:"
 
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1361
 msgid "Title format:"
 msgstr "Nimikkeen muoto:"
 
-#: src/audacious/ui_preferences.c:1545
-#, fuzzy
+#: src/audacious/ui_preferences.c:1372
 msgid "<b>Popup Information</b>"
-msgstr "MPEG-ääniliitännäisen asetukset"
+msgstr ""
 
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1387
 msgid "Show popup information for playlist entries"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1388
 msgid ""
 "Toggles popup information window for the pointed entry in the playlist. The "
 "window shows title of song, name of album, genre, year of publish, track "
 "number, track length, and artwork."
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1397
 msgid "Edit settings for popup information"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>Äänijärjestelmä</b>"
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "Puskurin koko:"
-
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
+#: src/audacious/ui_preferences.c:1497
+#, fuzzy
+msgid "Output plugin:"
 msgstr "Nykyinen ulostuloliitännäinen:"
 
-#: src/audacious/ui_preferences.c:1790
-#, fuzzy
+#: src/audacious/ui_preferences.c:1556
 msgid "Transport"
-msgstr "Kääntäjät"
+msgstr "Siirtäminen"
 
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
 msgid "Input"
-msgstr ""
+msgstr "Syöte"
 
-#: src/audacious/ui_preferences.c:1791
-#, fuzzy
+#: src/audacious/ui_preferences.c:1557
 msgid "Effect"
-msgstr "<b>Tehosteet</b>"
+msgstr "Tehosteet"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
 msgid "Visualization"
 msgstr "Visualisointi"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
 msgid "General"
-msgstr ""
+msgstr "Yleiset"
 
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1597
 msgid "Audacious Preferences"
 msgstr "Audaciouksen asetukset"
 
-#: src/audacious/util.c:161
+#: src/audacious/util.c:155
 #, c-format
 msgid "Could not create directory (%s): %s\n"
-msgstr "Kansion (%s) luominen epäonnistui: %s\n"
+msgstr "Hakemiston (%s) luominen epäonnistui: %s\n"
 
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:264
 msgid "Position not found."
-msgstr ""
+msgstr "Sijaintia ei löytynyt."
 
 #: src/audtool/handlers_vitals.c:64
 msgid "No song playing."
-msgstr ""
+msgstr "Mitään kappaletta ei soiteta."
 
 #: src/libaudcore/tuple.c:685
 msgid "Mono"
-msgstr ""
+msgstr "Mono"
 
 #: src/libaudcore/tuple.c:687
-#, fuzzy
 msgid "Stereo"
-msgstr "stereo"
+msgstr "Stereo"
 
 #: src/libaudcore/tuple.c:689
 #, c-format
-msgid "%d channels"
-msgstr ""
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] "%d kanava"
+msgstr[1] "%d kanavaa"
 
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/confirm.c:73
 #, c-format
 msgid ""
 "Are you sure you want to close %s?  If you do, any changes made since the "
 "playlist was exported will be lost."
 msgstr ""
+"Suljetaanko soittolista %s? Jos suljetaan, niin kaikki tehdyt muutokset "
+"soittolistan tallentamisesta saakka menetetään."
 
-#: src/libaudgui/confirm.c:77
-#, fuzzy
+#: src/libaudgui/confirm.c:86
 msgid "_Don't show this message again"
-msgstr "Älä näytä tätä varoitusta enää"
+msgstr "_Älä näytä tätä viestiä enää"
 
-#: src/libaudgui/confirm.c:115
-#, fuzzy
+#: src/libaudgui/confirm.c:124
 msgid "Rename Playlist"
-msgstr "Tallenna soittolista"
+msgstr "Nimeä soittolista uudelleen"
 
 #: src/libaudgui/effects-menu.c:76
 msgid "settings ..."
-msgstr ""
+msgstr "asetukset ..."
 
 #: src/libaudgui/equalizer.c:68
-#, fuzzy
 msgid "_Enable"
-msgstr "Käytössä"
+msgstr "_Käytä"
 
 #: src/libaudgui/equalizer.c:140
 msgid "31 Hz"
-msgstr ""
+msgstr "31 Hz"
 
 #: src/libaudgui/equalizer.c:140
 msgid "63 Hz"
-msgstr ""
+msgstr "63 Hz"
 
 #: src/libaudgui/equalizer.c:141
 msgid "125 Hz"
-msgstr ""
+msgstr "125 Hz"
 
 #: src/libaudgui/equalizer.c:141
 msgid "250 Hz"
-msgstr ""
+msgstr "250 Hz"
 
 #: src/libaudgui/equalizer.c:141
 msgid "500 Hz"
-msgstr ""
+msgstr "500 Hz"
 
 #: src/libaudgui/equalizer.c:141
 msgid "1 kHz"
-msgstr ""
+msgstr "1 kHz"
 
 #: src/libaudgui/equalizer.c:141
 msgid "2 kHz"
-msgstr ""
+msgstr "2 kHz"
 
 #: src/libaudgui/equalizer.c:142
 msgid "4 kHz"
-msgstr ""
+msgstr "4 kHz"
 
 #: src/libaudgui/equalizer.c:142
 msgid "8 kHz"
-msgstr ""
+msgstr "8 kHz"
 
 #: src/libaudgui/equalizer.c:142
 msgid "16 kHz"
-msgstr ""
+msgstr "16 kHz"
 
 #: src/libaudgui/equalizer.c:147
-#, fuzzy
 msgid "Equalizer"
-msgstr "Näytä taajuuskorjain"
+msgstr "Taajuuskorjain"
 
 #: src/libaudgui/equalizer.c:163
-#, fuzzy
 msgid "Preamp"
-msgstr "Esivahvistus:"
+msgstr "Esivahvistus"
 
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:212
 msgid "Track Number"
 msgstr "Kappaleen numero"
 
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:214
 msgid "Track Length"
 msgstr "Kappaleen kesto:"
 
 #: src/libaudgui/infowin.c:77
 msgid "Acid Jazz"
-msgstr "Acid Jazz"
+msgstr "Acid jazz"
 
 #: src/libaudgui/infowin.c:78
-#, fuzzy
 msgid "Acid Rock"
-msgstr "Hard Rock"
+msgstr "Acid rock"
 
 #: src/libaudgui/infowin.c:79
 msgid "Ambient"
 msgstr "Ambient"
 
 #: src/libaudgui/infowin.c:80
-#, fuzzy
 msgid "Bebop"
-msgstr "Bebob"
+msgstr "Bebop"
 
 #: src/libaudgui/infowin.c:81
 msgid "Bluegrass"
@@ -927,7 +874,7 @@ msgstr "Kantri"
 
 #: src/libaudgui/infowin.c:86
 msgid "Death Metal"
-msgstr "Death Metal"
+msgstr "Death metal"
 
 #: src/libaudgui/infowin.c:87
 msgid "Disco"
@@ -959,16 +906,15 @@ msgstr "Grunge"
 
 #: src/libaudgui/infowin.c:94
 msgid "Hard Rock"
-msgstr "Hard Rock"
+msgstr "Hard rock"
 
 #: src/libaudgui/infowin.c:95
 msgid "Heavy Metal"
-msgstr "Hevi"
+msgstr "Heavy metal"
 
 #: src/libaudgui/infowin.c:96
-#, fuzzy
 msgid "Hip-hop"
-msgstr "Hip-Hop"
+msgstr "Hip-hop"
 
 #: src/libaudgui/infowin.c:97
 msgid "House"
@@ -988,11 +934,11 @@ msgstr "Metalli"
 
 #: src/libaudgui/infowin.c:101
 msgid "New Age"
-msgstr "New Age"
+msgstr "New age"
 
 #: src/libaudgui/infowin.c:102
 msgid "New Wave"
-msgstr "New Wave"
+msgstr "New wave"
 
 #: src/libaudgui/infowin.c:103
 msgid "Noise"
@@ -1019,13 +965,12 @@ msgid "Rock"
 msgstr "Rock"
 
 #: src/libaudgui/infowin.c:109
-#, fuzzy
 msgid "Rock and Roll"
-msgstr "Rock'n'Roll"
+msgstr "Rock 'n' roll"
 
 #: src/libaudgui/infowin.c:110
 msgid "Rhythm and Blues"
-msgstr ""
+msgstr "R'n'B"
 
 #: src/libaudgui/infowin.c:111
 msgid "Ska"
@@ -1044,9 +989,8 @@ msgid "Techno"
 msgstr "Tekno"
 
 #: src/libaudgui/infowin.c:115
-#, fuzzy
 msgid "Trip-hop"
-msgstr "Trip-Hop"
+msgstr "Trip-hop"
 
 #: src/libaudgui/infowin.c:175 src/libaudgui/infowin.c:361
 #: src/libaudgui/infowin.c:364 src/libaudgui/infowin.c:367
@@ -1055,11 +999,11 @@ msgstr "<span size=\"small\">ei saatavilla</span>"
 
 #: src/libaudgui/infowin.c:265
 msgid "Metadata updated successfully"
-msgstr "Tiedot päivitetty onnistuneesti"
+msgstr "Metatiedot päivitetty onnistuneesti"
 
 #: src/libaudgui/infowin.c:270
 msgid "Metadata updating failed"
-msgstr "Tietojen päivitys epäonnistui"
+msgstr "Metatietojen päivitys epäonnistui"
 
 #: src/libaudgui/infowin.c:318
 msgid "Track Information"
@@ -1083,7 +1027,7 @@ msgstr "<span size=\"small\">Nimi</span>"
 
 #: src/libaudgui/infowin.c:399
 msgid "<span size=\"small\">Artist</span>"
-msgstr "<span size=\"small\">Esittäjä</span>"
+msgstr "<span size=\"small\">Artisti</span>"
 
 #: src/libaudgui/infowin.c:411
 msgid "<span size=\"small\">Album</span>"
@@ -1113,6 +1057,30 @@ msgstr "%d kb/s"
 #: src/libaudgui/infowin.c:579
 #, c-format
 msgid "No info available for %s.\n"
+msgstr "Tietoja ei ole saatavilla aiheesta %s.\n"
+
+#: src/libaudgui/jump-to-time.c:75
+#, fuzzy
+msgid "Jump to Time"
+msgstr "Siirry kappaleeseen"
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr ""
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Export Playlist"
+msgstr "Tilapäinen soittolista"
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Import Playlist"
+msgstr "Tilapäinen soittolista"
+
+#: src/libaudgui/playlists.c:71
+#, c-format
+msgid "Overwrite %s?"
 msgstr ""
 
 #: src/libaudgui/ui_about.c:71
@@ -1137,11 +1105,11 @@ msgstr "Lisää tiedostoja"
 
 #: src/libaudgui/ui_fileopener.c:110
 msgid "Close dialog on Open"
-msgstr "Sulje ikkuna kun tiedostot avattu"
+msgstr "Sulje ikkuna, kun tiedostot avattu"
 
 #: src/libaudgui/ui_fileopener.c:110
 msgid "Close dialog on Add"
-msgstr "Sulje ikkuna kun tiedostot lisätty"
+msgstr "Sulje ikkuna, kun tiedostot lisätty"
 
 #: src/libaudgui/ui_jumptotrack.c:133
 msgid "Un_queue"
@@ -1168,37 +1136,41 @@ msgid "Remember"
 msgstr "Muista"
 
 #: src/libaudgui/ui_jumptotrack.c:470
-#, fuzzy
 msgid "Clea_r"
-msgstr "Tyhjennä A-B"
+msgstr "_Tyhjennä"
 
 #: src/libaudgui/ui_jumptotrack.c:504
 msgid "Close on Jump"
-msgstr "Sulje ikkuna hypätessä"
+msgstr "Sulje ikkuna siirryttäessä"
 
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:240
 msgid "Playlist Manager"
 msgstr "Soittolistojen hallinta"
 
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:264
 msgid "Entries"
 msgstr ""
 
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:285
 msgid "_Rename"
-msgstr "_Uudelleennimeä"
+msgstr "_Nimeä uudelleen"
 
-#: src/libaudgui/ui_playlist_manager.c:251
-#, fuzzy
+#: src/libaudgui/ui_playlist_manager.c:309
 msgid "_Close dialog on activating playlist"
-msgstr "Sulje ikkuna kun tiedostot avattu"
+msgstr "_Sulje ikkuna, kun soittolista on aktivoitu"
 
 #: src/libaudgui/ui_urlopener.c:58
 msgid "Open URL"
-msgstr ""
+msgstr "Avaa URL-osoite"
 
 #: src/libaudgui/ui_urlopener.c:58
 msgid "Add URL"
+msgstr "Lisää URL-osoite"
+
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
 msgstr ""
 
 #: src/libeggsmclient/eggdesktopfile.c:165
@@ -1210,35 +1182,35 @@ msgstr "Tiedosto ei ole validi .desktop-tiedosto"
 msgid "Unrecognized desktop file Version '%s'"
 msgstr "Tuntematon desktop-tiedoston versio '%s'"
 
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:967
 #, c-format
 msgid "Starting %s"
 msgstr "Käynnistetään %s"
 
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1108
 msgid "Application does not accept documents on command line"
-msgstr ""
+msgstr "Sovellus ei hyväksy dokumentteja komentorivillä"
 
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1176
 #, c-format
 msgid "Unrecognized launch option: %d"
 msgstr "Tunnistamaton käynnistysoptio: %d"
 
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1375
 msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
 msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1396
 msgid "Not a launchable item"
-msgstr ""
+msgstr "Ei käynnistettävä"
 
 #: src/libeggsmclient/eggsmclient.c:226
 msgid "Disable connection to session manager"
-msgstr ""
+msgstr "Poista käytöstä yhteys istunnonhallintaan"
 
 #: src/libeggsmclient/eggsmclient.c:229
 msgid "Specify file containing saved configuration"
-msgstr ""
+msgstr "Määritä tallennetut asetukset sisältävä tiedosto"
 
 #: src/libeggsmclient/eggsmclient.c:229
 msgid "FILE"
@@ -1246,7 +1218,7 @@ msgstr "TIEDOSTO"
 
 #: src/libeggsmclient/eggsmclient.c:232
 msgid "Specify session management ID"
-msgstr ""
+msgstr "Määritä istunnonhallinnan ID"
 
 #: src/libeggsmclient/eggsmclient.c:232
 msgid "ID"
@@ -1254,1324 +1226,49 @@ msgstr "ID"
 
 #: src/libeggsmclient/eggsmclient.c:253
 msgid "Session management options:"
-msgstr ""
+msgstr "Istunnonhallinnan valinnat:"
 
 #: src/libeggsmclient/eggsmclient.c:254
 msgid "Show session management options"
-msgstr ""
+msgstr "Näytä istunnonhallinnan valinnat"
 
-#~ msgid "%s: Unable to open display, exiting.\n"
-#~ msgstr "%s: Näytön avaaminen ei onnistu, ohjelma lopetetaan.\n"
+#~ msgid "Replay Gain"
+#~ msgstr "Replay Gain"
 
-#~ msgid "Preamp:"
-#~ msgstr "Esivahvistus:"
+#~ msgid "<b>Bit Depth</b>"
+#~ msgstr "<b>Bittisyvyys</b>"
 
-#, fuzzy
-#~ msgid "Default gain:"
-#~ msgstr "Oletusteema:"
-
-#, fuzzy
-#~ msgid "<b>Replay Gain configuration</b>"
-#~ msgstr "MPEG-ääniliitännäisen asetukset"
-
-#, fuzzy
-#~ msgid "Track gain/peak"
-#~ msgstr "Kappaleen vahvistus:"
-
-#, fuzzy
-#~ msgid "Album gain/peak"
-#~ msgstr "Albumin vahvistus:"
-
-#~ msgid "Classic Rock"
-#~ msgstr "Klassinen rock"
-
-#~ msgid "Dance"
-#~ msgstr "Tanssi"
-
-#~ msgid "Oldies"
-#~ msgstr "Klassikot"
-
-#~ msgid "Other"
-#~ msgstr "Muu"
-
-#~ msgid "R&B"
-#~ msgstr "R&B"
-
-#~ msgid "Industrial"
-#~ msgstr "Industrial"
-
-#~ msgid "Alternative"
-#~ msgstr "Vaihtoehtoinen"
+#~ msgid ""
+#~ "All streams will be converted to this bit depth.\n"
+#~ "This should be the max supported bit depth of\n"
+#~ "the sound card or output plugin."
+#~ msgstr ""
+#~ "Kaikki virrat muunnetaan tähän bittisyvyyteen.\n"
+#~ "Tämän pitäisi olla suurin äänikortin tai\n"
+#~ "ulostuloliitännäisen tukema bittisyvyys."
 
-#~ msgid "Pranks"
-#~ msgstr "Pilat"
+#~ msgid "<b>Volume Control</b>"
+#~ msgstr "<b>Äänenvoimakkuuden hallinta</b>"
 
-#~ msgid "Soundtrack"
-#~ msgstr "Ääniraita"
-
-#~ msgid "Euro-Techno"
-#~ msgstr "Euro-tekno"
-
-#~ msgid "Vocal"
-#~ msgstr "Laulu"
-
-#~ msgid "Jazz+Funk"
-#~ msgstr "Jazz+Funk"
-
-#~ msgid "Fusion"
-#~ msgstr "Fuusio"
-
-#~ msgid "Trance"
-#~ msgstr "Trance"
-
-#~ msgid "Instrumental"
-#~ msgstr "Instrumentaali"
-
-#~ msgid "Acid"
-#~ msgstr "Acid"
-
-#~ msgid "Game"
-#~ msgstr "Peli"
-
-#~ msgid "Sound Clip"
-#~ msgstr "Äänileike"
-
-#~ msgid "AlternRock"
-#~ msgstr "Vaihtoehtorock"
-
-#~ msgid "Bass"
-#~ msgstr "Basso"
-
-#~ msgid "Punk"
-#~ msgstr "Punk"
-
-#~ msgid "Space"
-#~ msgstr "Avaruus"
-
-#~ msgid "Meditative"
-#~ msgstr "Meditaatio"
-
-#~ msgid "Instrumental Pop"
-#~ msgstr "Instrumentaalipop"
-
-#~ msgid "Instrumental Rock"
-#~ msgstr "Instrumentaalirock"
-
-#~ msgid "Ethnic"
-#~ msgstr "Etninen"
-
-#~ msgid "Gothic"
-#~ msgstr "Goottilainen"
-
-#~ msgid "Darkwave"
-#~ msgstr "Darkwave"
-
-#~ msgid "Techno-Industrial"
-#~ msgstr "Tekno-industrial"
-
-#~ msgid "Electronic"
-#~ msgstr "Elektroninen"
-
-#~ msgid "Pop-Folk"
-#~ msgstr "Pop-Folk"
-
-#~ msgid "Eurodance"
-#~ msgstr "Eurodance"
-
-#~ msgid "Dream"
-#~ msgstr "Uni"
-
-#~ msgid "Southern Rock"
-#~ msgstr "Eteläinen rock"
-
-#~ msgid "Comedy"
-#~ msgstr "Komedia"
-
-#~ msgid "Cult"
-#~ msgstr "Kultti"
-
-#~ msgid "Top 40"
-#~ msgstr "Top 40"
-
-#~ msgid "Christian Rap"
-#~ msgstr "Kristillinen rap"
-
-#~ msgid "Pop/Funk"
-#~ msgstr "Pop/Funk"
-
-#~ msgid "Native American"
-#~ msgstr "Alkuperäisamerikkalainen"
-
-#~ msgid "Cabaret"
-#~ msgstr "Kabaree"
-
-#~ msgid "Psychedelic"
-#~ msgstr "Psykedeelinen"
-
-#~ msgid "Rave"
-#~ msgstr "Rave"
-
-#~ msgid "Showtunes"
-#~ msgstr "Showmusiikki"
-
-#~ msgid "Trailer"
-#~ msgstr "Esittely"
-
-#~ msgid "Lo-Fi"
-#~ msgstr "Lo-Fi"
-
-#~ msgid "Tribal"
-#~ msgstr "Heimo"
-
-#~ msgid "Acid Punk"
-#~ msgstr "Acid Punk"
-
-#~ msgid "Polka"
-#~ msgstr "Polkka"
-
-#~ msgid "Retro"
-#~ msgstr "Retro"
-
-#~ msgid "Musical"
-#~ msgstr "Muusikaali"
-
-#~ msgid "Folk/Rock"
-#~ msgstr "Folk/Rock"
-
-#~ msgid "National Folk"
-#~ msgstr "Kansallinen folk"
-
-#~ msgid "Fast-Fusion"
-#~ msgstr "Nopea fuusio"
-
-#~ msgid "Latin"
-#~ msgstr "Latinalainen"
-
-#~ msgid "Revival"
-#~ msgstr "Revival"
-
-#~ msgid "Celtic"
-#~ msgstr "Kelttiläinen"
-
-#~ msgid "Avantgarde"
-#~ msgstr "Avantgarde"
-
-#~ msgid "Gothic Rock"
-#~ msgstr "Goottirock"
-
-#~ msgid "Progressive Rock"
-#~ msgstr "Progressiivinen rock"
-
-#~ msgid "Psychedelic Rock"
-#~ msgstr "Psykedeelinen rock"
-
-#~ msgid "Symphonic Rock"
-#~ msgstr "Sinfoninen rock"
-
-#~ msgid "Slow Rock"
-#~ msgstr "Hidas rock"
-
-#~ msgid "Big Band"
-#~ msgstr "Big band"
-
-#~ msgid "Chorus"
-#~ msgstr "Kuoro"
-
-#~ msgid "Acoustic"
-#~ msgstr "Akustinen"
-
-#~ msgid "Humour"
-#~ msgstr "Huumori"
-
-#~ msgid "Speech"
-#~ msgstr "Puhe"
-
-#~ msgid "Chanson"
-#~ msgstr "Chanson"
-
-#~ msgid "Opera"
-#~ msgstr "Ooppera"
-
-#~ msgid "Sonata"
-#~ msgstr "Sonetti"
-
-#~ msgid "Symphony"
-#~ msgstr "Sinfonia"
-
-#~ msgid "Booty Bass"
-#~ msgstr "Booty bass"
-
-#~ msgid "Primus"
-#~ msgstr "Primus"
-
-#~ msgid "Porn Groove"
-#~ msgstr "Pornogroove"
-
-#~ msgid "Satire"
-#~ msgstr "Satiiri"
-
-#~ msgid "Slow Jam"
-#~ msgstr "Hidas jam"
-
-#~ msgid "Club"
-#~ msgstr "Klubi"
-
-#~ msgid "Tango"
-#~ msgstr "Tango"
-
-#~ msgid "Samba"
-#~ msgstr "Samba"
-
-#~ msgid "Folklore"
-#~ msgstr "Kansantaru"
-
-#~ msgid "Ballad"
-#~ msgstr "Balladi"
-
-#~ msgid "Power Ballad"
-#~ msgstr "Voimaballadi"
-
-#~ msgid "Rhythmic Soul"
-#~ msgstr "Rytminen soul"
-
-#~ msgid "Freestyle"
-#~ msgstr "Vapaamuotoinen"
-
-#~ msgid "Duet"
-#~ msgstr "Duetto"
-
-#~ msgid "Drum Solo"
-#~ msgstr "Rumpusoolo"
-
-#~ msgid "A Cappella"
-#~ msgstr "A Cappella"
-
-#~ msgid "Euro-House"
-#~ msgstr "Euro-House"
-
-#~ msgid "Dance Hall"
-#~ msgstr "Tanssihalli"
-
-#~ msgid "Goa"
-#~ msgstr "Goa"
-
-#~ msgid "Drum & Bass"
-#~ msgstr "Drum & Bass"
-
-#~ msgid "Club-House"
-#~ msgstr "Kulbi-house"
-
-#~ msgid "Hardcore"
-#~ msgstr "Hardcore"
-
-#~ msgid "Terror"
-#~ msgstr "Kauhu"
-
-#~ msgid "Indie"
-#~ msgstr "Indie"
-
-#~ msgid "BritPop"
-#~ msgstr "Brittipop"
-
-#~ msgid "Negerpunk"
-#~ msgstr "Musta punk"
-
-#~ msgid "Polsk Punk"
-#~ msgstr "Puolapunk"
-
-#~ msgid "Beat"
-#~ msgstr "Beat"
-
-#~ msgid "Christian Gangsta Rap"
-#~ msgstr "Kristinllinen gangsta-rap"
-
-#~ msgid "Black Metal"
-#~ msgstr "Black Metal"
-
-#~ msgid "Crossover"
-#~ msgstr "Sekoitus"
-
-#~ msgid "Contemporary Christian"
-#~ msgstr "Nykyaikainen kristillinen"
-
-#~ msgid "Christian Rock"
-#~ msgstr "Kristillinen rock"
-
-#~ msgid "Merengue"
-#~ msgstr "Merengue"
-
-#~ msgid "Salsa"
-#~ msgstr "Salsa"
-
-#~ msgid "Thrash Metal"
-#~ msgstr "Thrash Metal"
-
-#~ msgid "Anime"
-#~ msgstr "Anime"
-
-#~ msgid "JPop"
-#~ msgstr "JPop"
-
-#~ msgid "Synthpop"
-#~ msgstr "Synthpop"
-
-#, fuzzy
 #~ msgid ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "An audio player for many platforms.\n"
-#~ "Copyright (C) 2005-2011 Audacious Development Team"
+#~ "Use software volume control. This may be useful for situations where your "
+#~ "audio system does not support controlling the playback volume."
 #~ msgstr ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "\n"
-#~ "Copyright (C) 2005-2008 Audacious-kehittäjäryhmä\n"
-
-#~ msgid "Unable to create log file (%s)!\n"
-#~ msgstr "Lokitiedoston (%s) luominen ei onnistu.\n"
-
-#~ msgid "Print all errors and warnings to stdout"
-#~ msgstr "Tulosta kaikki virheet ja varoitukset stdoutiin"
-
-#~ msgid "Sorry, threads aren't supported on your platform.\n"
-#~ msgstr "Tämä järjestelmä/alusta ei tue säikeitä.\n"
-
-#~ msgid "Module loading not supported! Plugins will not be loaded.\n"
-#~ msgstr "Moduulien lataus ei ole tuettu! Liitännäisiä ei voida ladata.\n"
-
-#~ msgid "Playback"
-#~ msgstr "Soitto"
-
-#~ msgid "<b>Playback</b>"
-#~ msgstr "<b>Soitto</b>"
-
-#~ msgid "Don't advance in the playlist"
-#~ msgstr "Älä siirry eteenpäin soittolistassa"
-
-#~ msgid ""
-#~ "When finished playing a song, don't automatically advance to the next."
-#~ msgstr "Kun kappale on soinut, älä soita seuraavaa itsestään."
-
-#~ msgid "Enabled"
-#~ msgstr "Käytössä"
-
-#~ msgid "Description"
-#~ msgstr "Kuvaus"
-
-#~ msgid "Output Plugin Preferences"
-#~ msgstr "Ulostuloliitännäisen asetukset"
-
-#~ msgid "Output Plugin Information"
-#~ msgstr "Ulostuloliitännäisen tiedot"
-
-#~ msgid "_Decoder list:"
-#~ msgstr "Dekooderiliitännäisten luettelo:"
-
-#~ msgid "<span size=\"medium\"><b>Decoders</b></span>"
-#~ msgstr "<span size=\"medium\"><b>Dekooderit</b></span>"
-
-#~ msgid "_General plugin list:"
-#~ msgstr "_Yleisten liitännäisten luettelo:"
-
-#~ msgid "<span size=\"medium\"><b>General</b></span>"
-#~ msgstr "<span size=\"medium\"><b>Yleiset</b></span>"
-
-#~ msgid "_Visualization plugin list:"
-#~ msgstr "_Visualisointiliitännäisten luettelo:"
-
-#~ msgid "<b>Visualization</b>"
-#~ msgstr "<b>Visualisointi</b>"
-
-#, fuzzy
-#~ msgid "Effect plugins:"
-#~ msgstr "_Tehosteliitännäisten luettelo:"
-
-#~ msgid "<span size=\"small\">General</span>"
-#~ msgstr "<span size=\"small\">Yleinen</span>"
-
-#~ msgid "<span size=\"small\">Location</span>"
-#~ msgstr "<span size=\"small\">Sijainti</span>"
-
-#~ msgid "<span size=\"small\">Raw Metadata</span>"
-#~ msgstr "<span size=\"small\">Raaka metatieto</span>"
-
-#~ msgid "Key"
-#~ msgstr "Avain"
-
-#~ msgid "Value"
-#~ msgstr "Arvo"
-
-#, fuzzy
-#~ msgid "Available Plugin Preferences:\n"
-#~ msgstr "Ulostuloliitännäisen asetukset"
-
-#~ msgid "Add/Open URL Dialog"
-#~ msgstr "Lisää/avaa URL -ikkuna"
-
-#~ msgid "Enter location to play:"
-#~ msgstr "Syötä soitettava verkko-osoite:"
-
-#~ msgid "Don't clear the playlist"
-#~ msgstr "Älä tyhjennä soittolistaa"
-
-#~ msgid "audacious: %s"
-#~ msgstr "audacious: %s"
-
-#~ msgid "Filename:"
-#~ msgstr "Tiedostonimi:"
-
-#~ msgid "No input plugin recognized this file"
-#~ msgstr "Yksikään liitännäinen ei tunnistanut tätä tiedostoa"
-
-#~ msgid "Input plugin: %s"
-#~ msgstr "Syöteliitännäinen: %s"
-
-#~ msgid "Connectivity"
-#~ msgstr "Yhteydet"
-
-#~ msgid "Best Sinc Interpolation"
-#~ msgstr "Paras Sinc-interpolointi"
-
-#~ msgid "Medium Sinc Interpolation"
-#~ msgstr "Keskiverto Sinc-interpolointi"
-
-#~ msgid "Fastest Sinc Interpolation"
-#~ msgstr "Nopein Sinc-interpolointi"
-
-#~ msgid "ZOH Interpolation"
-#~ msgstr "ZOH interpolointi"
-
-#~ msgid "Linear Interpolation"
-#~ msgstr "Lineaarinen interpolaatio"
-
-#~ msgid "Sampling Rate [Hz]:"
-#~ msgstr "Näytetaajuus [Hz]:"
-
-#~ msgid "Interpolation Engine:"
-#~ msgstr "Interpolointimoottori:"
-
-#, fuzzy
-#~ msgid "<b>Format Detection</b>"
-#~ msgstr "Automaattinen tunnistus"
-
-#~ msgid "<b>Sampling Rate Converter</b>"
-#~ msgstr "<b>Näytetaajuuden muunnin</b>"
-
-#~ msgid "Enable Sampling Rate Converter"
-#~ msgstr "Käytä näytetaajuuden muunninta"
-
-#~ msgid "<b>Advanced</b>"
-#~ msgstr "<b>Lisäasetukset</b>"
-
-#, fuzzy
-#~ msgid ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "\n"
-#~ "Copyright (C) 2005-2009 Audacious Development Team"
-#~ msgstr ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "\n"
-#~ "Copyright (C) 2005-2008 Audacious-kehittäjäryhmä"
-
-#~ msgid "Load metadata from playlists and files"
-#~ msgstr "Lataa metatiedot soittolistoista ja musiikkitiedostoista"
-
-#~ msgid "Load metadata (tag information) from music files."
-#~ msgstr "Lataa metatiedot (lisätiedot) musiikkitiedostoista."
-
-#~ msgid "Can't jump to time when no track is being played.\n"
-#~ msgstr "Ei voida hypätä hetkeen kun kappaleita ei ole soimassa.\n"
-
-#~ msgid "Jump to Time"
-#~ msgstr "Siirry hetkeen"
-
-#~ msgid "minutes:seconds"
-#~ msgstr "minuutti:sekunti"
-
-#~ msgid "Track length:"
-#~ msgstr "Kappaleen kesto:"
-
-#~ msgid "Save as Static Playlist"
-#~ msgstr "Tallenna staattisena soittolistana"
-
-#~ msgid "Use Relative Path"
-#~ msgstr "Käytä suhteellista polkua"
-
-#~ msgid "Error writing playlist \"%s\": %s"
-#~ msgstr "Virhe soittolistan \"%s\" kirjoittamisessa: %s"
-
-#~ msgid "%s already exist. Continue?"
-#~ msgstr "%s on jo olemassa. Jatketaanko?"
-
-#, fuzzy
-#~ msgid ""
-#~ "<b><big>Unable to save playlist.</big></b>\n"
-#~ "\n"
-#~ "Unknown file type for '%s'.\n"
-#~ msgstr ""
-#~ "<b><big>Soittolistan tallentaminen epäonnistui.</big></b>\n"
-#~ "\n"
-#~ "Tiedoston '%s' tyyppi on tuntematon.\n"
-
-#~ msgid "Presets"
-#~ msgstr "Asetukset"
-
-#~ msgid "Mouse"
-#~ msgstr "Hiiri"
-
-#~ msgid "Pause between songs"
-#~ msgstr "Kappaleiden välinen tauko"
-
-#~ msgid "Pause for"
-#~ msgstr "Tauotus"
-
-#~ msgid "seconds"
-#~ msgstr "sekuntia"
-
-#~ msgid "<b>Filename</b>"
-#~ msgstr "<b>Tiedostonimi</b>"
-
-#~ msgid "Convert underscores to blanks"
-#~ msgstr "Muunna alaviivat väleiksi"
-
-#~ msgid "Convert %20 to blanks"
-#~ msgstr "Muunna %20 väleiksi"
-
-#, fuzzy
-#~ msgid "<b>File Dialog</b>"
-#~ msgstr "<b>Tiedostonimi</b>"
-
-#~ msgid "Changes volume by"
-#~ msgstr "Muuttaa äänenvoimakkuutta"
-
-#~ msgid "percent"
-#~ msgstr "prosenttia"
-
-#~ msgid "Scrolls playlist by"
-#~ msgstr "Vierittää soittolistaa"
-
-#~ msgid "lines"
-#~ msgstr "riviä"
-
-#~ msgid "Stop after Current Song"
-#~ msgstr "Lopeta soitto nykyisen kappaleen jälkeen"
-
-#~ msgid "Peaks"
-#~ msgstr "Huiput"
-
-#~ msgid "Repeat"
-#~ msgstr "Toista"
-
-#~ msgid "Shuffle"
-#~ msgstr "Sekoita"
-
-#~ msgid "No Playlist Advance"
-#~ msgstr "Älä etene soittolistassa"
-
-#~ msgid "Play"
-#~ msgstr "Soita"
-
-#~ msgid "Pause"
-#~ msgstr "Tauota"
-
-#~ msgid "Stop"
-#~ msgstr "Pysäytä"
-
-#~ msgid "Previous"
-#~ msgstr "Edellinen"
-
-#~ msgid "Next"
-#~ msgstr "Seuraava"
-
-#~ msgid "Visualization Mode"
-#~ msgstr "Visualisointitapa"
-
-#~ msgid "Analyzer Mode"
-#~ msgstr "Taajuusspektri-moodi"
-
-#~ msgid "Scope Mode"
-#~ msgstr "Oskilloskooppi-moodi"
-
-#, fuzzy
-#~ msgid "Voiceprint Mode"
-#~ msgstr "/Taajuusspektri/Tuli"
-
-#, fuzzy
-#~ msgid "WindowShade VU Mode"
-#~ msgstr "/Rullattu ikkuna"
-
-#~ msgid "Refresh Rate"
-#~ msgstr "Päivitystaajuus"
-
-#~ msgid "Analyzer Falloff"
-#~ msgstr "Taajuusspektrin nopeus"
-
-#~ msgid "Peaks Falloff"
-#~ msgstr "Huippujen nopeus"
-
-#~ msgid "New Playlist"
-#~ msgstr "Uusi soittolista"
-
-#~ msgid "Select Next Playlist"
-#~ msgstr "Valitse seuraava soittolista"
-
-#~ msgid "Select Previous Playlist"
-#~ msgstr "Valitse edellinen soittolista"
-
-#~ msgid "Delete Playlist"
-#~ msgstr "Poista soittolista"
-
-#~ msgid "Load List"
-#~ msgstr "Avaa lista"
-
-#~ msgid "Loads a playlist file into the selected playlist."
-#~ msgstr "Lisä soittolistatiedoston valittuun soittolistaan."
-
-#~ msgid "Save List"
-#~ msgstr "Tallenna lista"
-
-#~ msgid "Saves the selected playlist."
-#~ msgstr "Tallentaa valitun soittolistan."
-
-#~ msgid "Save Default List"
-#~ msgstr "Tallenna oletuslista"
-
-#~ msgid "Saves the selected playlist to the default location."
-#~ msgstr "Tallentaa valitun soittolistan oletussijaintiin."
-
-#~ msgid "Refresh List"
-#~ msgstr "Päivitä lista"
-
-#~ msgid "Refreshes metadata associated with a playlist entry."
-#~ msgstr "Päivittää listan metatiedot."
-
-#~ msgid "List Manager"
-#~ msgstr "Soittolistojen hallinta"
-
-#~ msgid "Opens the playlist manager."
-#~ msgstr "Avaa soittolistojen hallintaikkunan."
-
-#~ msgid "View"
-#~ msgstr "Näytä"
-
-#~ msgid "Add Internet Address..."
-#~ msgstr "Lisää URL-osoite..."
-
-#~ msgid "Adds a remote track to the playlist."
-#~ msgstr "Lisää URL-osoitteen soittolistaan."
-
-#~ msgid "Add Files..."
-#~ msgstr "Lisää tiedostoja..."
-
-#~ msgid "Search and Select"
-#~ msgstr "Etsi ja valitse"
-
-#~ msgid ""
-#~ "Searches the playlist and selects playlist entries based on specific "
-#~ "criteria."
-#~ msgstr ""
-#~ "Etsii ja valitsee soittolistasta kappaleita halutin kriterian mukaan."
-
-#~ msgid "Invert Selection"
-#~ msgstr "Käänteinen valinta"
-
-#~ msgid "Inverts the selected and unselected entries."
-#~ msgstr "Käänteistää valitut ja valitsemattomat kappaleet."
-
-#~ msgid "Select All"
-#~ msgstr "Valitse kaikki"
-
-#~ msgid "Select None"
-#~ msgstr "Tyhjä valinta"
-
-#~ msgid "Deselects all of the playlist entries."
-#~ msgstr "Tyhjentää soittolistan valinnan."
-
-#~ msgid "Remove All"
-#~ msgstr "Poista kaikki"
-
-#~ msgid "Removes all entries from the playlist."
-#~ msgstr "Poistaa kaikki kappaleet soittolistasta."
-
-#~ msgid "Clear Queue"
-#~ msgstr "Tyhjennä jono"
-
-#~ msgid "Clears the queue associated with this playlist."
-#~ msgstr "Tyhjentää tähän soittolistaan liittyvän jonon."
-
-#~ msgid "Remove Unavailable Files"
-#~ msgstr "Poista tiedostot, jotka eivät ole saatavilla"
-
-#~ msgid "Removes unavailable files from the playlist."
-#~ msgstr "Poistaa soittolistasta tiedostot, jotka eivät ole saatavilla."
-
-#~ msgid "Remove Duplicates"
-#~ msgstr "Poista kaksoiskappaleet"
-
-#~ msgid "By Title"
-#~ msgstr "Nimen mukaan"
-
-#~ msgid "Removes duplicate entries from the playlist by title."
-#~ msgstr "Poistaa soittolistasta saman nimiset kappaleet."
-
-#~ msgid "By Filename"
-#~ msgstr "Tiedostonimen mukaan"
-
-#~ msgid "Removes duplicate entries from the playlist by filename."
-#~ msgstr "Poistaa soittolistasta saman tiedostonimen omaavat kappaleet."
-
-#~ msgid "By Path + Filename"
-#~ msgstr "Polun ja tiedostonimen mukaan"
-
-#~ msgid "Removes duplicate entries from the playlist by their full path."
-#~ msgstr ""
-#~ "Poistaa soittolistasta saman polun ja tiedostonimen omaavat kappaleet."
-
-#~ msgid "Remove Unselected"
-#~ msgstr "Poista valitsemattomat"
-
-#~ msgid "Remove unselected entries from the playlist."
-#~ msgstr "Poistaa valitsemattomat kappaleet soittolistasta."
-
-#~ msgid "Remove Selected"
-#~ msgstr "Poista valitut"
-
-#~ msgid "Remove selected entries from the playlist."
-#~ msgstr "Poistaa valitut kappaleet soittolistasta."
-
-#~ msgid "Randomize List"
-#~ msgstr "Sekoita lista"
-
-#~ msgid "Randomizes the playlist."
-#~ msgstr "Sekoittaa soittolistan."
-
-#~ msgid "Reverse List"
-#~ msgstr "Käänteinen järjestys"
-
-#~ msgid "Reverses the playlist."
-#~ msgstr "Järjestää soittolistan käänteiseen järjestykseen."
-
-#~ msgid "Sort List"
-#~ msgstr "Järjestä lista"
-
-#~ msgid "Sorts the list by title."
-#~ msgstr "Järjestää listan kappaleen nimen mukaan"
-
-#, fuzzy
-#~ msgid "By Album"
-#~ msgstr "Albumi"
-
-#, fuzzy
-#~ msgid "Sorts the list by album."
-#~ msgstr "Järjestää listan kappaleen nimen mukaan"
-
-#~ msgid "By Artist"
-#~ msgstr "Esittäjän mukaan"
-
-#~ msgid "Sorts the list by artist."
-#~ msgstr "Järjestää listan kappaleen esittäjän nimen mukaan."
-
-#~ msgid "Sorts the list by filename."
-#~ msgstr "Järjestää listan tiedostonimen mukaan."
-
-#~ msgid "Sorts the list by full pathname."
-#~ msgstr "Järjestää listan täydellisen tiedostonimen mukaan."
-
-#~ msgid "By Date"
-#~ msgstr "Päiväyksen mukaan"
-
-#, fuzzy
-#~ msgid "Sorts the list by modification time."
-#~ msgstr "Järjestä kaikki nimen mukaan"
-
-#~ msgid "By Track Number"
-#~ msgstr "Kappaleen numeron mukaan"
-
-#, fuzzy
-#~ msgid "Sorts the list by track number."
-#~ msgstr "/Järjestä lista/Päiväyksen mukaan"
-
-#, fuzzy
-#~ msgid "By Playlist Entry"
-#~ msgstr "BMP:n soittolistan muokkain"
-
-#, fuzzy
-#~ msgid "Sorts the list by playlist entry."
-#~ msgstr "/Järjestä lista/Nimen mukaan"
-
-#~ msgid "Sort Selected"
-#~ msgstr "Järjestä valitut"
-
-#~ msgid "File"
-#~ msgstr "Tiedosto"
-
-#~ msgid "Help"
-#~ msgstr "Apua"
-
-#, fuzzy
-#~ msgid "Components"
-#~ msgstr "Kommentti"
-
-#, fuzzy
-#~ msgid "View Track Details"
-#~ msgstr "/Näytä kappaleen tiedot"
-
-#, fuzzy
-#~ msgid "Play File"
-#~ msgstr "/Soita"
-
-#, fuzzy
-#~ msgid "Load and play a file"
-#~ msgstr "Lataa metatiedot soittolistoista ja musiikkitiedostoista"
-
-#~ msgid "Play Location"
-#~ msgstr "Soita sijainti"
-
-#~ msgid "Plugin services"
-#~ msgstr "Liitännäispalvelut"
-
-#~ msgid "Preferences"
-#~ msgstr "Asetukset"
-
-#~ msgid "Open preferences window"
-#~ msgstr "Avaa asetusikkunan"
-
-#~ msgid "_Quit"
-#~ msgstr "/_Lopeta"
-
-#~ msgid "Quit Audacious"
-#~ msgstr "Lopeta Audacious"
-
-#~ msgid "Set A-B"
-#~ msgstr "Aseta A-B"
-
-#~ msgid "Clear A-B"
-#~ msgstr "Tyhjennä A-B"
-
-#~ msgid "Jump to Playlist Start"
-#~ msgstr "Siirry soittolistan alkuun"
-
-#~ msgid "Jump to File"
-#~ msgstr "Siirry tiedoston kohdalle"
-
-#, fuzzy
-#~ msgid "Queue Toggle"
-#~ msgstr "/Muuta soittojonoa"
-
-#~ msgid "Load"
-#~ msgstr "Lataa"
-
-#~ msgid "Import"
-#~ msgstr "Tuo"
-
-#~ msgid "Save"
-#~ msgstr "Tallenna"
-
-#~ msgid "Delete"
-#~ msgstr "Poista"
-
-#~ msgid "Preset"
-#~ msgstr "Asetus"
-
-#~ msgid "Load preset"
-#~ msgstr "Lataa asetus"
-
-#, fuzzy
-#~ msgid "Auto-load preset"
-#~ msgstr "/Lataa/Automaattinen asetus"
-
-#, fuzzy
-#~ msgid "Load auto-load preset"
-#~ msgstr "/Lataa/Automaattinen asetus"
-
-#~ msgid "Default"
-#~ msgstr "Oletus"
-
-#, fuzzy
-#~ msgid "Load default preset into equalizer"
-#~ msgstr "Tallenna automaattinen asetus"
-
-#~ msgid "Zero"
-#~ msgstr "Nolla"
-
-#, fuzzy
-#~ msgid "Set equalizer preset levels to zero"
-#~ msgstr "Tallenna taajuuskorjaimen asetus"
-
-#~ msgid "From file"
-#~ msgstr "Tiedostosta"
-
-#~ msgid "Load preset from file"
-#~ msgstr "Lataa asetus tiedostosta"
-
-#~ msgid "From WinAMP EQF file"
-#~ msgstr "WinAMP EQF-tiedostosta"
-
-#~ msgid "Load preset from WinAMP EQF file"
-#~ msgstr "Lataa asetus WinAMP EQF-tiedostosta"
-
-#~ msgid "WinAMP Presets"
-#~ msgstr "WinAMPin asetukset"
-
-#~ msgid "Import WinAMP presets"
-#~ msgstr "Tuo WinAMPin asetukset"
-
-#~ msgid "Save preset"
-#~ msgstr "Tallenna asetus"
-
-#, fuzzy
-#~ msgid "Save auto-load preset"
-#~ msgstr "/Tallenna/Automaattinen asetus"
-
-#, fuzzy
-#~ msgid "Save default preset"
-#~ msgstr "Tallenna automaattinen asetus"
-
-#~ msgid "To file"
-#~ msgstr "Tiedostoon"
-
-#, fuzzy
-#~ msgid "Save preset to file"
-#~ msgstr "Tallenna asetus"
-
-#~ msgid "To WinAMP EQF file"
-#~ msgstr "WinAMPin EQF-tiedostoon"
-
-#, fuzzy
-#~ msgid "Save preset to WinAMP EQF file"
-#~ msgstr "/Tallenna/Winampin EQF-tiedosto"
-
-#~ msgid "Delete preset"
-#~ msgstr "Poista asetus"
-
-#, fuzzy
-#~ msgid "Delete auto-load preset"
-#~ msgstr "/Poista/Automaattinen asetus"
-
-#~ msgid ""
-#~ "<b><big>Unable to load skin.</big></b>\n"
-#~ "\n"
-#~ "Check that skin at '%s' is usable and default skin is properly installed "
-#~ "at '%s'\n"
-#~ msgstr ""
-#~ "<b><big>Teeman lataaminen ei onnistunut.</big></b>\n"
-#~ "\n"
-#~ "Tarkista että teema \"%s\" on käytettävissä, ja että oletusarvoinen teema "
-#~ "on asennettu kunnolla kansioon \"%s\"\n"
-
-#~ msgid "Audacious core developers:"
-#~ msgstr "Audaciouksen pääkehittäjät:"
-
-#~ msgid "Audacious Equalizer"
-#~ msgstr "Audacious Taajuuskorjain"
-
-#~ msgid "Play files"
-#~ msgstr "Soita tiedostoja"
-
-#~ msgid "Load files"
-#~ msgstr "Lataa tiedostoja"
-
-#~ msgid "%s - Audacious"
-#~ msgstr "%s - Audacious"
-
-#~ msgid "VBR"
-#~ msgstr "VBR"
-
-#~ msgid "mono"
-#~ msgstr "mono"
-
-#~ msgid "Show main player window"
-#~ msgstr "Näytä pääikkuna"
-
-#~ msgid "Ignore"
-#~ msgstr "Jätä huomiotta"
-
-#~ msgid "Seek to: %d:%-2.2d/%d:%-2.2d (%d%%)"
-#~ msgstr "Siirry: %d:%-2.2d/%d:%-2.2d (%d%%)"
-
-#~ msgid "Volume: %d%%"
-#~ msgstr "Voimakkuus: %d%%"
-
-#~ msgid "Balance: %d%% left"
-#~ msgstr "Tasapaino: %d%% vasemmalla"
-
-#~ msgid "Balance: center"
-#~ msgstr "Tasapaino: keskellä"
-
-#~ msgid "Balance: %d%% right"
-#~ msgstr "Tasapaino %d%% oikealla"
-
-#~ msgid "Options Menu"
-#~ msgstr "Asetusvalikko"
-
-#~ msgid "Disable 'Always On Top'"
-#~ msgstr "Poista 'aina päällimmäisenä' käytöstä"
-
-#~ msgid "Enable 'Always On Top'"
-#~ msgstr "Ota 'aina päällimmäisenä' käyttöön"
-
-#~ msgid "File Info Box"
-#~ msgstr "Tiedoston tiedot"
-
-#~ msgid "Disable 'GUI Scaling'"
-#~ msgstr "Poista käyttöliittymän skaalaus käytöstä"
-
-#~ msgid "Enable 'GUI Scaling'"
-#~ msgstr "Ota käyttöliittymän skaalaus käyttöön"
-
-#~ msgid "Visualization Menu"
-#~ msgstr "Visualisointivalikko"
-
-#~ msgid ""
-#~ "<b><big>Couldn't open audio.</big></b>\n"
-#~ "\n"
-#~ "Please check that:\n"
-#~ "1. You have the correct output plugin selected.\n"
-#~ "2. No other programs is blocking the soundcard.\n"
-#~ "3. Your soundcard is configured properly.\n"
-#~ msgstr ""
-#~ "<b><big>Äänilaitteen avaaminen epäonnistui.</big></b>\n"
-#~ "\n"
-#~ "Tarkista että:\n"
-#~ "1. Oikea ulostuloliitännäinen on valittu.\n"
-#~ "2. Muut ohjelmat eivät käytä juuri nyt äänikorttia.\n"
-#~ "3. Äänikortin asetukset ovat oikein.\n"
-
-#~ msgid "Autoscroll Songname"
-#~ msgstr "Vieritä kappaleen nimeä"
-
-#~ msgid "Show Player"
-#~ msgstr "Näytä soitin"
-
-#~ msgid "Show Playlist Editor"
-#~ msgstr "Näytä soittolistan muokkain"
-
-#~ msgid "Always on Top"
-#~ msgstr "Aina päällimmäisenä"
-
-#~ msgid "Put on All Workspaces"
-#~ msgstr "Näkyy kaikissa työtiloissa"
-
-#~ msgid "Roll up Player"
-#~ msgstr "Rullaa soittoikkuna"
-
-#~ msgid "Roll up Playlist Editor"
-#~ msgstr "Rullaa soittolistan muokkausikkuna"
-
-#~ msgid "Roll up Equalizer"
-#~ msgstr "Rullaa taajuuskorjainikkuna"
-
-#~ msgid "Scale"
-#~ msgstr "Skaalaa"
-
-#~ msgid "DoubleSize"
-#~ msgstr "Kaksinkertainen koko"
-
-#~ msgid "Easy Move"
-#~ msgstr "Helppo siirtely"
-
-#~ msgid "Analyzer"
-#~ msgstr "Taajuusspektri"
-
-#~ msgid "Scope"
-#~ msgstr "Oskilloskooppi"
-
-#, fuzzy
-#~ msgid "Voiceprint"
-#~ msgstr "/Taajuusspektri/Tuli"
-
-#~ msgid "Off"
-#~ msgstr "Pois päältä"
-
-#~ msgid "Normal"
-#~ msgstr "Normaali"
-
-#~ msgid "Fire"
-#~ msgstr "Tuli"
-
-#~ msgid "Vertical Lines"
-#~ msgstr "Pystyviivat"
-
-#~ msgid "Lines"
-#~ msgstr "Viivat"
-
-#~ msgid "Bars"
-#~ msgstr "Palkit"
-
-#~ msgid "Dot Scope"
-#~ msgstr "Pisteskooppi"
-
-#~ msgid "Line Scope"
-#~ msgstr "Viivaskooppi"
-
-#~ msgid "Solid Scope"
-#~ msgstr "Yhtenäinen skooppi"
-
-#~ msgid "Ice"
-#~ msgstr "Jää"
-
-#~ msgid "Smooth"
-#~ msgstr "Pehmeä"
-
-#~ msgid "Full (~50 fps)"
-#~ msgstr "Täysi (~50 fps)"
-
-#~ msgid "Half (~25 fps)"
-#~ msgstr "Puolet (~25 fps)"
-
-#~ msgid "Quarter (~13 fps)"
-#~ msgstr "Neljäsosa (~13 fps)"
-
-#~ msgid "Eighth (~6 fps)"
-#~ msgstr "Kahdeksasosa (~6 fps)"
-
-#~ msgid "Slowest"
-#~ msgstr "Hitain"
-
-#~ msgid "Slow"
-#~ msgstr "Hidas"
-
-#~ msgid "Medium"
-#~ msgstr "Keskinkertainen"
-
-#~ msgid "Fast"
-#~ msgstr "Nopea"
-
-#~ msgid "Fastest"
-#~ msgstr "Nopein"
-
-#~ msgid "Time Elapsed"
-#~ msgstr "Kulunut aika"
-
-#~ msgid "Time Remaining"
-#~ msgstr "Aikaa jäljellä"
-
-#~ msgid "Plugin Services"
-#~ msgstr "Liitännäispalvelut"
-
-#, fuzzy
-#~ msgid "Search entries in active playlist"
-#~ msgstr "Näytä kappaleiden numerot soittolistassa"
-
-#~ msgid "Title: "
-#~ msgstr "Nimi: "
-
-#~ msgid "Artist: "
-#~ msgstr "Esittäjä: "
-
-#~ msgid "Filename: "
-#~ msgstr "Tiedostonimi: "
-
-#~ msgid "Audacious Playlist Editor"
-#~ msgstr "Audaciouksen soittolistamuokkain"
-
-#~ msgid "Appearance"
-#~ msgstr "Ulkonäkö"
-
-#~ msgid "<b>_Fonts</b>"
-#~ msgstr "<b>_Kirjasimet</b>"
-
-#~ msgid "_Player:"
-#~ msgstr "_Soitin:"
-
-#~ msgid "Select main player window font:"
-#~ msgstr "Valitse pääikkunan kirjasinlaji:"
-
-#~ msgid "_Playlist:"
-#~ msgstr "_Soittolista:"
-
-#~ msgid "Select playlist font:"
-#~ msgstr "Valitse soittolistan kirjasinlaji:"
-
-#~ msgid "Use Bitmap fonts if available"
-#~ msgstr "Käytä bittikarttakirjasimia, jos saatavilla"
-
-#~ msgid "<b>_Miscellaneous</b>"
-#~ msgstr "<b>_Sekalaiset</b>"
-
-#~ msgid "Show track numbers in playlist"
-#~ msgstr "Näytä kappaleiden numerot soittolistassa"
-
-#, fuzzy
-#~ msgid "Show separators in playlist"
-#~ msgstr "Näytä kappaleiden numerot soittolistassa"
-
-#~ msgid "Use two-way text scroller"
-#~ msgstr "Käytä kaksisuuntaista tekstin vieritystä"
-
-#~ msgid "Allow loading incomplete skins"
-#~ msgstr "Salli rikkinäisten teemojen lataaminen"
-
-#~ msgid "On load"
-#~ msgstr "Avattaessa"
-
-#~ msgid "Load metadata when adding the file to the playlist or opening it"
-#~ msgstr "Lataa metatiedot kun tiedosto lisätään soittolistaan tai avataan"
-
-#~ msgid "On display"
-#~ msgstr "Näytettäessä"
-
-#, fuzzy
-#~ msgid ""
-#~ "Load metadata on demand when displaying the file in the playlist. You may "
-#~ "need to set \"Detect file formats on demand\" in Audio page for full "
-#~ "benefit."
-#~ msgstr "Lataa metatiedot kun tiedosto lisätään soittolistaan tai avataan"
-
-#~ msgid "Color Adjustment"
-#~ msgstr "Värisäädöt"
-
-#~ msgid "Blue"
-#~ msgstr "Sininen"
-
-#~ msgid "Green"
-#~ msgstr "Vihreä"
-
-#~ msgid "Red"
-#~ msgstr "Punainen"
-
-#~ msgid "<b>_Skin</b>"
-#~ msgstr "<b>_Teema</b>"
-
-#~ msgid "Refresh skin list"
-#~ msgstr "Päivitä lista"
-
-#~ msgid "PREAMP"
-#~ msgstr "ESIVAHVISTUS"
-
-#~ msgid "60HZ"
-#~ msgstr "60HZ"
-
-#~ msgid "170HZ"
-#~ msgstr "170HZ"
-
-#~ msgid "310HZ"
-#~ msgstr "310HZ"
-
-#~ msgid "600HZ"
-#~ msgstr "600HZ"
-
-#~ msgid "1KHZ"
-#~ msgstr "1KHZ"
-
-#~ msgid "3KHZ"
-#~ msgstr "30KHZ"
-
-#~ msgid "6KHZ"
-#~ msgstr "6KHZ"
-
-#~ msgid "12KHZ"
-#~ msgstr "12KHZ"
+#~ "Käytä ohjelmapohjaista äänenvoimakkuuden hallintaa. Tämä voi olla "
+#~ "hyödyllistä tilanteissa, joissa äänijärjestelmäsi ei tue "
+#~ "äänenvoimakkuuden hallintaa."
 
-#~ msgid "14KHZ"
-#~ msgstr "14KHZ"
+#~ msgid "<b>Mode</b>"
+#~ msgstr "<b>Tila</b>"
 
-#~ msgid "16KHZ"
-#~ msgstr "16KHZ"
+#~ msgid "<b>Clipping Prevention</b>"
+#~ msgstr "Huippujen leikkautuminen"
 
-#~ msgid "Archived Winamp 2.x skin"
-#~ msgstr "Pakattu WinAmp 2.x -teema"
+#~ msgid "Enable clipping prevention"
+#~ msgstr "Estä huippujen leikkautuminen"
 
-#~ msgid "Unarchived Winamp 2.x skin"
-#~ msgstr "Pakkaamaton WinAmp 2.x -teema"
+#~ msgid "<b>Audio System</b>"
+#~ msgstr "<b>Äänijärjestelmä</b>"
 
-#~ msgid "Reload Plugins"
-#~ msgstr "Lataa liitännäiset"
+#~ msgid "Display all open Audacious windows"
+#~ msgstr "Näytä kaikki avoimet Audacious-ikkunat"
diff --git a/po/fr.po b/po/fr.po
index cc47d01..fcc8eb6 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -1,27 +1,36 @@
-#       /*       _\|/_
-#                (o o)
-#        +----oOO-{_}-OOo----+
-#        |                   |
-#        |     audacious     |
-#        |                   |
-#        +------------------*/
+# French translation for Audacious
+# Copyright (C) Audacious translators
+# This file is distributed under the same license as the Audacious package.
+#
+# Translators:
+#   <jagw40k at free.fr>, 2011, 2012.
+# Jean-Alexandre Anglès d'Auriac <jagw40k at free.fr>, 2011.
 msgid ""
 msgstr ""
-"Project-Id-Version: Audacious 2.4\n"
-"Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
-"PO-Revision-Date: 2010-08-18 13:40+0100\n"
-"Last-Translator: StrassBoy <StrassBoy at gmail.com>\n"
-"Language-Team: \n"
-"Language: \n"
+"Project-Id-Version: Audacious\n"
+"Report-Msgid-Bugs-To: http://redmine.audacious-media-player.org/\n"
+"POT-Creation-Date: 2011-12-29 19:27-0500\n"
+"PO-Revision-Date: 2012-01-08 02:56+0000\n"
+"Last-Translator: Oxayotl <jagw40k at free.fr>\n"
+"Language-Team: French\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Poedit-Language: French\n"
-"X-Poedit-Country: BELGIUM\n"
-"Plural-Forms: nplurals=2; plural=n>1\n"
+"Language: fr\n"
+"Plural-Forms: nplurals=2; plural=(n > 1)\n"
+
+#: src/audacious/adder.c:77
+msgid "Searching ..."
+msgstr "Recherche ..."
 
-#: src/audacious/chardet.c:37
+#: src/audacious/adder.c:113
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] "%d fichier trouvé"
+msgstr[1] "%d fichiers trouvés"
+
+#: src/audacious/chardet.c:39
 msgid "  (invalid UTF-8)"
 msgstr "  (format UTF-8 invalide)"
 
@@ -45,250 +54,237 @@ msgstr "Développeurs des modules :"
 msgid "Patch authors:"
 msgstr "Auteurs des modifications/correctifs :"
 
-#: src/audacious/credits.c:126
+#: src/audacious/credits.c:127
 msgid "1.x developers:"
 msgstr "Développeurs de la branche 1.x :"
 
-#: src/audacious/credits.c:148
+#: src/audacious/credits.c:149
 msgid "BMP Developers:"
 msgstr "Développeurs de BMP :"
 
-#: src/audacious/credits.c:180
+#: src/audacious/credits.c:181
 msgid "Belarusian:"
 msgstr "Biélorusse :"
 
-#: src/audacious/credits.c:183
+#: src/audacious/credits.c:184
 msgid "Basque:"
 msgstr "Basque :"
 
-#: src/audacious/credits.c:186
+#: src/audacious/credits.c:187
 msgid "Brazilian Portuguese:"
 msgstr "Brésilien portugais :"
 
-#: src/audacious/credits.c:190
+#: src/audacious/credits.c:192
 msgid "Breton:"
 msgstr "Breton :"
 
-#: src/audacious/credits.c:193
+#: src/audacious/credits.c:195
 msgid "Bulgarian:"
 msgstr "Bulgare :"
 
-#: src/audacious/credits.c:196
+#: src/audacious/credits.c:198
 msgid "Catalan:"
 msgstr "Catalan :"
 
-#: src/audacious/credits.c:199
+#: src/audacious/credits.c:202
 msgid "Chinese:"
 msgstr "Chinois :"
 
-#: src/audacious/credits.c:202
+#: src/audacious/credits.c:205
 msgid "Croatian:"
 msgstr "Croate :"
 
-#: src/audacious/credits.c:205
+#: src/audacious/credits.c:208
 msgid "Czech:"
 msgstr "Tchèque :"
 
-#: src/audacious/credits.c:208
+#: src/audacious/credits.c:211
 msgid "Dutch:"
 msgstr "Néerlandais :"
 
-#: src/audacious/credits.c:212
+#: src/audacious/credits.c:215
 msgid "Estonian:"
 msgstr "Estonien :"
 
-#: src/audacious/credits.c:215
+#: src/audacious/credits.c:218
 msgid "Finnish:"
 msgstr "Finlandais :"
 
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:223
 msgid "French:"
 msgstr "Français :"
 
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:229
 msgid "German:"
 msgstr "Allemand :"
 
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:236
 msgid "Georgian:"
 msgstr "Géorgien :"
 
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:239
 msgid "Greek:"
 msgstr "Grec :"
 
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:244
 msgid "Hindi:"
 msgstr "Hindi :"
 
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:247
 msgid "Hungarian:"
 msgstr "Hongrois :"
 
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:251
 msgid "Italian:"
 msgstr "Italien :"
 
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:256
 msgid "Japanese:"
 msgstr "Japonais :"
 
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:259
 msgid "Korean:"
 msgstr "Koréenn :"
 
-#: src/audacious/credits.c:256
-#, fuzzy
+#: src/audacious/credits.c:262
 msgid "Latvian:"
-msgstr "Croate :"
+msgstr "Letton :"
 
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:265
 msgid "Lithuanian:"
 msgstr "Lituanien :"
 
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:270
 msgid "Macedonian:"
 msgstr "Macédonien :"
 
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:273
 msgid "Polish:"
 msgstr "Polonais :"
 
-#: src/audacious/credits.c:271
-#, fuzzy
+#: src/audacious/credits.c:279
 msgid "Portuguese:"
 msgstr "Portugais :"
 
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:282
 msgid "Romanian:"
 msgstr "Roumain :"
 
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:286
 msgid "Russian:"
 msgstr "Russe :"
 
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:290
 msgid "Serbian (Latin):"
 msgstr "Serbe (latin) :"
 
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:293
 msgid "Serbian (Cyrillic):"
 msgstr "Serbe (cyrillique) :"
 
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:297
 msgid "Simplified Chinese:"
 msgstr "Chinois simplifié :"
 
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:300
 msgid "Slovak:"
 msgstr "Slovaque :"
 
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:303
 msgid "Spanish:"
 msgstr "Espagnol :"
 
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:311
 msgid "Swedish:"
 msgstr "Suédois :"
 
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:314
 msgid "Traditional Chinese:"
 msgstr "Chinois traditionnel :"
 
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:320
 msgid "Turkish:"
 msgstr "Turc :"
 
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:324
 msgid "Ukrainian:"
 msgstr "Ukrainien :"
 
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:328
+msgid "Vietnamese:"
+msgstr "Vietnamien :"
+
+#: src/audacious/credits.c:331
 msgid "Welsh:"
 msgstr "Gallois :"
 
-#: src/audacious/drct.c:254
-msgid "Temporary Playlist"
-msgstr "Liste de lecture provisoire"
-
-#: src/audacious/equalizer_preset.c:186
+#: src/audacious/equalizer_preset.c:180
 #, c-format
 msgid "Error importing Winamp EQF file '%s'"
 msgstr ""
 "Erreur lors de l'importation du fichier 'EQF' de 'Winamp' suivant : '%s'"
 
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr "Recherche ..."
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] "%d fichier trouvé"
-msgstr[1] "%d fichiers trouvés"
-
-#: src/audacious/main.c:247
+#: src/audacious/main.c:243
 msgid "Skip backwards in playlist"
 msgstr "Reculer dans la liste de lecture"
 
-#: src/audacious/main.c:248
+#: src/audacious/main.c:244
 msgid "Start playing current playlist"
 msgstr "Commencer à lire la liste de lecture active"
 
-#: src/audacious/main.c:249
+#: src/audacious/main.c:245
 msgid "Pause current song"
-msgstr "Mettre en pause la chanson en cours de lecture"
+msgstr "Mettre en pause le morceau en cours de lecture"
 
-#: src/audacious/main.c:250
+#: src/audacious/main.c:246
 msgid "Stop current song"
-msgstr "Arrêter la chanson en cours de lecture"
+msgstr "Arrêter la morceau en cours de lecture"
 
-#: src/audacious/main.c:251
+#: src/audacious/main.c:247
 msgid "Pause if playing, play otherwise"
 msgstr "Mettre en pause, sinon commencer la lecture"
 
-#: src/audacious/main.c:252
+#: src/audacious/main.c:248
 msgid "Skip forward in playlist"
 msgstr "Avancer dans la liste de lecture"
 
-#: src/audacious/main.c:253
+#: src/audacious/main.c:249
 msgid "Display Jump to File dialog"
 msgstr "Afficher la fenêtre 'Aller au fichier...'"
 
-#: src/audacious/main.c:254
+#: src/audacious/main.c:250
 msgid "Add files to the playlist"
 msgstr "Ajouter les fichiers à la liste de lecture"
 
-#: src/audacious/main.c:255
+#: src/audacious/main.c:251
 msgid "Add new files to a temporary playlist"
 msgstr "Ajouter les nouveaux fichiers à une liste de lecture provisoire"
 
-#: src/audacious/main.c:256
+#: src/audacious/main.c:252
 msgid "Display the main window"
 msgstr "Afficher la fenêtre principale"
 
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr "Afficher toutes les fenêtres ouvertes d'Audacious"
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:253
 msgid "Show version"
 msgstr "Afficher la version"
 
-#: src/audacious/main.c:259
+#: src/audacious/main.c:254
 msgid "Print debugging messages"
-msgstr ""
+msgstr "Afficher les messages de deboggage"
+
+#: src/audacious/main.c:255
+msgid "Headless mode (beta)"
+msgstr "Mode sans interface graphique (beta)"
 
-#: src/audacious/main.c:260
+#: src/audacious/main.c:256
 msgid "FILE..."
 msgstr "FICHIER..."
 
-#: src/audacious/main.c:272
+#: src/audacious/main.c:268
 msgid "- play multimedia files"
 msgstr "- lire les fichiers multimédia"
 
-#: src/audacious/main.c:282
+#: src/audacious/main.c:278
 #, c-format
 msgid ""
 "%s: %s\n"
@@ -297,338 +293,299 @@ msgstr ""
 "%s: %s\n"
 "Essayez '%s --help' pour davantage d'informations.\n"
 
-#: src/audacious/main.c:395
-msgid ""
-"Audacious seems to be already running but is not responding.  You can start "
-"another instance of the program, but please be warned that this can cause "
-"data loss.  If Audacious is not running, you can safely ignore this "
-"message.  Press OK to start Audacious or Cancel to quit."
-msgstr ""
-
-#: src/audacious/main.c:558
+#: src/audacious/main.c:572
 msgid "Audacious"
 msgstr "Audacious"
 
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:307
 #, c-format
 msgid "No decoder found for %s."
 msgstr "Aucun décodeur trouvé pour %s."
 
-#: src/audacious/playback.c:519
-msgid "Buffering ..."
-msgstr "Tampon ..."
+#: src/audacious/playlist-new.c:131
+msgid "New Playlist"
+msgstr "Nouvelle liste de lecture"
 
-#: src/audacious/playlist-new.c:288
-msgid "Untitled Playlist"
-msgstr "Liste sans nom"
+#: src/audacious/playlist-new.c:132
+msgid "Now Playing"
+msgstr ""
 
-#: src/audacious/ui_preferences.c:88
+#: src/audacious/playlist-new.c:1627
+msgid ""
+"The playlist cannot be sorted because metadata scanning is still in progress"
+" (or has been disabled)."
+msgstr ""
+"La liste de lecture ne peut pas être triée car la lecture des métadonnées "
+"n'est pas encore terminée (ou bien elle a été désactivée)."
+
+#: src/audacious/ui_preferences.c:85
 msgid "Audio"
 msgstr "Audio"
 
-#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
-msgstr "Replay Gain"
-
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:86
 msgid "Network"
 msgstr "Réseau"
 
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:87 src/audacious/ui_preferences.c:1603
 msgid "Playlist"
 msgstr "Liste de lecture"
 
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:88
 msgid "Plugins"
 msgstr "Modules d'extension"
 
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:94 src/libaudgui/infopopup.c:203
 msgid "Artist"
 msgstr "Artiste"
 
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:95 src/libaudgui/infopopup.c:205
 msgid "Album"
 msgstr "Album"
 
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:201
+#: src/libaudgui/ui_playlist_manager.c:279
 msgid "Title"
 msgstr "Titre"
 
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:97
 msgid "Tracknumber"
 msgstr "Numéro de la piste"
 
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:207
 msgid "Genre"
 msgstr "Genre"
 
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:99
 msgid "Filename"
 msgstr "Nom du fichier"
 
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:100
 msgid "Filepath"
 msgstr "Chemin du fichier"
 
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:101
 msgid "Date"
 msgstr "Date"
 
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:209
 msgid "Year"
 msgstr "Année"
 
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:103
 msgid "Comment"
 msgstr "Commentaire"
 
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:104
 msgid "Codec"
 msgstr "Codec"
 
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:105
 msgid "Quality"
 msgstr "Qualité"
 
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:111
 msgid "None"
 msgstr "aucune langue"
 
+#: src/audacious/ui_preferences.c:112
+msgid "Arabic"
+msgstr "l'arabe"
+
+#: src/audacious/ui_preferences.c:113
+msgid "Baltic"
+msgstr "le balte"
+
+#: src/audacious/ui_preferences.c:114
+msgid "Chinese"
+msgstr "le chinois"
+
 #: src/audacious/ui_preferences.c:115
-msgid "Japanese"
-msgstr "le japonais"
+msgid "Greek"
+msgstr "le grec"
 
 #: src/audacious/ui_preferences.c:116
-msgid "Taiwanese"
-msgstr "le taïwanais"
+msgid "Hebrew"
+msgstr "l'hébreu"
 
 #: src/audacious/ui_preferences.c:117
-msgid "Chinese"
-msgstr "le chinois"
+msgid "Japanese"
+msgstr "le japonais"
 
 #: src/audacious/ui_preferences.c:118
 msgid "Korean"
 msgstr "le coréen"
 
 #: src/audacious/ui_preferences.c:119
-msgid "Russian"
-msgstr "le russe"
+msgid "Polish"
+msgstr "le polonais"
 
 #: src/audacious/ui_preferences.c:120
-msgid "Greek"
-msgstr "le grec"
+msgid "Russian"
+msgstr "le russe"
 
 #: src/audacious/ui_preferences.c:121
-msgid "Hebrew"
-msgstr "l'hébreu"
+msgid "Taiwanese"
+msgstr "le taïwanais"
 
 #: src/audacious/ui_preferences.c:122
 msgid "Turkish"
 msgstr "le turc"
 
-#: src/audacious/ui_preferences.c:123
-msgid "Arabic"
-msgstr "l'arabe"
-
-#: src/audacious/ui_preferences.c:124
-msgid "Polish"
-msgstr "le polonais"
-
-#: src/audacious/ui_preferences.c:125
-msgid "Baltic"
-msgstr "le balte"
-
-#: src/audacious/ui_preferences.c:126
-msgid "Universal"
-msgstr "Universel"
-
-#: src/audacious/ui_preferences.c:146
-msgid "<b>Bit Depth</b>"
-msgstr "<b>Profondeur d'analyse des données audio</b>"
+#: src/audacious/ui_preferences.c:144
+msgid "Album mode"
+msgstr "Fonctionnement par albums"
 
 #: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr "Profondeur d'analyse du flux :"
-
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
-"Les données de tous les flux seront converties dans\n"
-"la profondeur d'analyse spécifiée.\n"
-"Idéalement, cette valeur devrait correspondre à la\n"
-"profondeur maximale que supporte la carte son ou\n"
-"le module d'extension de sortie."
+msgid "<b>Output Settings</b>"
+msgstr "<b>Paramètres de sortie</b>"
 
-#: src/audacious/ui_preferences.c:151
-msgid "<b>Volume Control</b>"
-msgstr "<b>Contrôle du volume</b>"
+#: src/audacious/ui_preferences.c:149
+msgid "Bit depth:"
+msgstr "Profondeur du flux :"
 
 #: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr "Utiliser le contrôle du volume logiciel"
+msgid "Buffer size:"
+msgstr "Taille du tampon :"
 
 #: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
-"Utilise le contrôle du volume logiciel. Cette option peut se révéler utile, "
-"si votre système audio ne dispose pas de support de contrôle du volume."
-
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
-msgstr ""
+msgid "ms"
+msgstr "ms"
 
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
-msgstr "dB"
-
-#: src/audacious/ui_preferences.c:160
-#, fuzzy
-msgid "Amplify untagged files:"
-msgstr "- lire les fichiers multimédia"
+#: src/audacious/ui_preferences.c:155
+msgid "Use software volume control (not recommended)"
+msgstr "Utiliser un contrôle du volume interne (non recommandé)"
 
-#: src/audacious/ui_preferences.c:164
-#, fuzzy
+#: src/audacious/ui_preferences.c:157
 msgid "<b>Replay Gain</b>"
-msgstr "<b>Mode « Replay Gain »</b>"
+msgstr "<b>Correction de gain</b>"
 
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:158
 msgid "Enable Replay Gain"
 msgstr "Activer « Replay Gain »"
 
-#: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>Métadonnées</b>"
-
-#: src/audacious/ui_preferences.c:168
-msgid "Single track mode"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "Album"
+#: src/audacious/ui_preferences.c:161
+msgid "Prevent clipping (recommended)"
+msgstr "Éviter la saturation (recommandé)"
 
-#: src/audacious/ui_preferences.c:172
-#, fuzzy
+#: src/audacious/ui_preferences.c:163
 msgid "<b>Adjust Levels</b>"
-msgstr "<b>Système Audio</b>"
+msgstr "<b>Niveau d'ajustement</b>"
 
-#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "<b>Fenêtre d'informations contextuelle</b>"
+#: src/audacious/ui_preferences.c:164
+msgid "Amplify all files:"
+msgstr "Amplifier tous les fichiers de"
 
-#: src/audacious/ui_preferences.c:176
-#, fuzzy
-msgid "Enable clipping prevention"
-msgstr ""
-"Prévention de la saturation : utiliser les informations relatives aux pics "
-"sonores"
+#: src/audacious/ui_preferences.c:166 src/audacious/ui_preferences.c:169
+msgid "dB"
+msgstr "dB"
 
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify untagged files:"
+msgstr "Amplifier les fichiers non taggés de"
+
+#: src/audacious/ui_preferences.c:172
 msgid "Proxy hostname:"
 msgstr "Nom du serveur :"
 
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:173
 msgid "Proxy port:"
 msgstr "Port du serveur :"
 
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:176
 msgid "Proxy username:"
 msgstr "Nom d'utilisateur :"
 
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:177
 msgid "Proxy password:"
 msgstr "Mot de passe :"
 
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:181
 msgid "<b>Proxy Configuration</b>"
 msgstr "<b>Configuration du serveur mandataire</b>"
 
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:182
 msgid "Enable proxy usage"
 msgstr "Activer l'utilisation du serveur mandataire"
 
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:185
 msgid "Use authentication with proxy"
-msgstr "Utiliser l'authentification avec le serveur mandataire"
-
-#: src/audacious/ui_preferences.c:197
-msgid ""
-"<span size=\"small\">Changing these settings will require a restart of "
-"Audacious.</span>"
-msgstr ""
-"<span size=\"small\">La modification de ces préférences nécessite le "
-"redémarrage d'Audacious.</span>"
+msgstr "Le serveur mandataire demande une authentification"
 
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
 msgid "Auto character encoding detector for:"
 msgstr "Détection automatique de l'encodage pour  "
 
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:198
 msgid "Fallback character encodings:"
 msgstr "Encodages supplémentaires :"
 
-#: src/audacious/ui_preferences.c:209
-msgid ""
-"List of character encodings used for fall back conversion of metadata. If "
-"automatic character encoding detector failed or has been disabled, encodings "
-"in this list would be treated as candidates of the encoding of metadata, and "
-"fall back conversion from these encodings to UTF-8 would be attempted."
-msgstr ""
-"Ce champ reprend les divers types d'encodages utilisés pour la conversion "
-"des métadonnées. Si la détection automatique de l'encodage échoue ou n'a pas "
-"été activée, les éléments de cette liste seront considérés comme des "
-"encodages possibles et la conversion des métadonnées en 'UTF-8' sera tentée "
-"à partir de ceux-ci."
-
-#: src/audacious/ui_preferences.c:213
-#, fuzzy
+#: src/audacious/ui_preferences.c:202
 msgid "<b>Behavior</b>"
-msgstr "<b>Profondeur d'analyse des données audio</b>"
+msgstr "<b>Comportement</b>"
 
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:203
 msgid "Continue playback on startup"
 msgstr "Reprendre la lecture au démarrage"
 
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:205
 msgid "Advance when the current song is deleted"
-msgstr ""
+msgstr "Passer à la piste suivante si la piste courante est supprimée"
 
-#: src/audacious/ui_preferences.c:218
-#, fuzzy
+#: src/audacious/ui_preferences.c:207
 msgid "Clear the playlist when opening files"
-msgstr "Effacer la liste de lecture, lors de l'ouverture de nouveaux fichiers"
+msgstr ""
+"Remplacer l'ancien contenu de la liste de lecture, lors de l'ouverture de "
+"nouveaux fichiers"
 
-#: src/audacious/ui_preferences.c:220
-#, fuzzy
+#: src/audacious/ui_preferences.c:209
 msgid "Open files in a temporary playlist"
-msgstr "Ajouter les nouveaux fichiers à une liste de lecture provisoire"
+msgstr "Ouvrir les nouveaux fichiers dans une liste de lecture provisoire"
 
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:211
 msgid "<b>Metadata</b>"
 msgstr "<b>Métadonnées</b>"
 
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:212
+msgid "Do not load metadata for songs until played"
+msgstr "Ne charger les metadonnées qu'à la lecture du fichier"
+
+#: src/audacious/ui_preferences.c:230
+msgid "TITLE"
+msgstr "TITRE"
+
+#: src/audacious/ui_preferences.c:231
+msgid "ARTIST - TITLE"
+msgstr "ARTISTE - TITRE"
+
+#: src/audacious/ui_preferences.c:232
+msgid "ARTIST - ALBUM - TITLE"
+msgstr "ARTISTE - ALBUM - TITRE"
+
+#: src/audacious/ui_preferences.c:233
+msgid "ARTIST - ALBUM - TRACK. TITLE"
+msgstr "ARTISTE - ALBUM - PISTE. TITRE"
+
+#: src/audacious/ui_preferences.c:234
+msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
+msgstr "ARTISTE [ ALBUM ] - PISTE. TITRE"
+
+#: src/audacious/ui_preferences.c:235
+msgid "ALBUM - TITLE"
+msgstr "ALBUM - TITRE"
+
+#: src/audacious/ui_preferences.c:556
 msgid "Category"
 msgstr "Catégorie"
 
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:780
 msgid "Popup Information Settings"
 msgstr "Préférences de la fenêtre contextuelle"
 
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:789
 msgid "<b>Cover image retrieve</b>"
 msgstr "<b>Récupération des pochettes</b>"
 
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:794
 msgid ""
 "While searching for the album's cover, Audacious looks for certain words in "
 "the filename. You can specify those words in the lists below, separated "
@@ -638,100 +595,76 @@ msgstr ""
 "mots dans le nom du fichier. Vous pouvez spécifier ces mots dans les listes "
 "ci-dessous, séparés par des virgules."
 
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:811
 msgid "Exclude:"
 msgstr "Exclure :"
 
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:818
 msgid "Include:"
 msgstr "Inclure :"
 
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:835
 msgid "Recursively search for cover"
 msgstr "Chercher les pochettes de manière récursive"
 
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:845
 msgid "Search depth: "
 msgstr "Profondeur de la recherche :"
 
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:859
 msgid "Use per-file cover"
 msgstr "Chercher les pochettes d'après le nom exact des fichiers audio"
 
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:862
 msgid "<b>Miscellaneous</b>"
 msgstr "<b>Options diverses</b>"
 
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:871
 msgid "Show Progress bar for the current track"
 msgstr "Montrer une barre de progression pour le morceau écouté"
 
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:881
 msgid "Delay until filepopup comes up: "
 msgstr "Délai avant l'affichage de la fenêtre :"
 
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1309
+msgid "Custom"
+msgstr "Personnalisé"
+
+#: src/audacious/ui_preferences.c:1352
 msgid "<b>Song Display</b>"
 msgstr "<b>Affichage du morceau</b>"
 
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1361
 msgid "Show song numbers"
 msgstr "Afficher la position des titres"
 
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1372
 msgid "Show leading zeroes (02:00 instead of 2:00)"
-msgstr ""
+msgstr "Afficher les zéros en début d'heure (02:00 au lieu de 2:00)"
 
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1394
 msgid "Show information about titlestring format"
 msgstr "Affiche des informations sur le format du titre."
 
-#: src/audacious/ui_preferences.c:1514
-msgid "TITLE"
-msgstr "TITRE"
-
-#: src/audacious/ui_preferences.c:1515
-msgid "ARTIST - TITLE"
-msgstr "ARTISTE - TITRE"
-
-#: src/audacious/ui_preferences.c:1516
-msgid "ARTIST - ALBUM - TITLE"
-msgstr "ARTISTE - ALBUM - TITRE"
-
-#: src/audacious/ui_preferences.c:1517
-msgid "ARTIST - ALBUM - TRACK. TITLE"
-msgstr "ARTISTE - ALBUM - PISTE. TITRE"
-
-#: src/audacious/ui_preferences.c:1518
-msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
-msgstr "ARTISTE [ ALBUM ] - PISTE. TITRE"
-
-#: src/audacious/ui_preferences.c:1519
-msgid "ALBUM - TITLE"
-msgstr "ALBUM - TITRE"
-
-#: src/audacious/ui_preferences.c:1520
-msgid "Custom"
-msgstr "Personnalisé"
-
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1410
 msgid "Custom string:"
 msgstr "Format personnalisé :"
 
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1417
 msgid "Title format:"
 msgstr "Format du titre :"
 
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1428
 msgid "<b>Popup Information</b>"
 msgstr "<b>Fenêtre d'informations contextuelle</b>"
 
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1443
 msgid "Show popup information for playlist entries"
 msgstr ""
 "Montrer la fenêtre d'informations pour les entrées de la liste de lecture"
 
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1444
 msgid ""
 "Toggles popup information window for the pointed entry in the playlist. The "
 "window shows title of song, name of album, genre, year of publish, track "
@@ -742,76 +675,72 @@ msgstr ""
 "morceau, le nom de l'album, le genre, l'année de publication, le numéro de "
 "la piste, la durée du morceau, ainsi que la pochette de l'album."
 
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1455
 msgid "Edit settings for popup information"
 msgstr "Modifie les préférences de la fenêtre d'informations contextuelle."
 
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>Système Audio</b>"
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "Taille du tampon :"
+#: src/audacious/ui_preferences.c:1544
+msgid "Output plugin:"
+msgstr "Greffons de sortie"
 
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
-msgstr "Module de sortie actuel :"
-
-#: src/audacious/ui_preferences.c:1790
-#, fuzzy
+#: src/audacious/ui_preferences.c:1603
 msgid "Transport"
-msgstr "Traducteurs"
+msgstr "Accès aux fichiers"
 
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1603
 msgid "Input"
-msgstr ""
+msgstr "Entrées sonores"
 
-#: src/audacious/ui_preferences.c:1791
-#, fuzzy
+#: src/audacious/ui_preferences.c:1604
 msgid "Effect"
-msgstr "<b>Effets audio</b>"
+msgstr "Effets audio"
 
-#: src/audacious/ui_preferences.c:1791
-#, fuzzy
+#: src/audacious/ui_preferences.c:1604
 msgid "Visualization"
-msgstr "<b>Effets visuels</b>"
+msgstr "Visualisations"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1604
 msgid "General"
-msgstr ""
+msgstr "Général"
 
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1644
 msgid "Audacious Preferences"
 msgstr "Préférences d'Audacious"
 
-#: src/audacious/util.c:161
+#: src/audacious/util.c:120
 #, c-format
 msgid "Could not create directory (%s): %s\n"
 msgstr "Impossible de créer le répertoire suivant (%s): %s\n"
 
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:273
 msgid "Position not found."
 msgstr "Position non trouvée."
 
-#: src/audtool/handlers_vitals.c:64
+#: src/audtool/handlers_vitals.c:63
 msgid "No song playing."
 msgstr "Aucun titre en cours de lecture."
 
-#: src/libaudcore/tuple.c:685
+#: src/libaudcore/audstrings.c:194
+#, c-format
+msgid "Audio CD, track %s"
+msgstr "CD audio, piste %s"
+
+#: src/libaudcore/tuple.c:536
 msgid "Mono"
-msgstr ""
+msgstr "Mono"
 
-#: src/libaudcore/tuple.c:687
+#: src/libaudcore/tuple.c:538
 msgid "Stereo"
-msgstr ""
+msgstr "Stéréo"
 
-#: src/libaudcore/tuple.c:689
+#: src/libaudcore/tuple.c:540
 #, c-format
-msgid "%d channels"
-msgstr ""
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] "%d canal"
+msgstr[1] "%d canaux"
 
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/confirm.c:78
 #, c-format
 msgid ""
 "Are you sure you want to close %s?  If you do, any changes made since the "
@@ -820,312 +749,331 @@ msgstr ""
 "Êtes-vous certain de vouloir fermer %s ? Si tel est le cas, toute "
 "modification apportée à la liste depuis l'exportation sera perdue."
 
-#: src/libaudgui/confirm.c:77
+#: src/libaudgui/confirm.c:91
 msgid "_Don't show this message again"
 msgstr "_Ne plus afficher ce message"
 
-#: src/libaudgui/confirm.c:115
-#, fuzzy
+#: src/libaudgui/confirm.c:128
 msgid "Rename Playlist"
-msgstr "Liste de lecture"
+msgstr "Renommer la liste de lecture"
 
 #: src/libaudgui/effects-menu.c:76
 msgid "settings ..."
 msgstr "paramètres ..."
 
-#: src/libaudgui/equalizer.c:68
+#: src/libaudgui/equalizer.c:53
 msgid "_Enable"
 msgstr "_Activer"
 
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:125
 msgid "31 Hz"
 msgstr "31 Hz"
 
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:125
 msgid "63 Hz"
 msgstr "63 Hz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:126
 msgid "125 Hz"
 msgstr "125 Hz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:126
 msgid "250 Hz"
 msgstr "250 Hz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:126
 msgid "500 Hz"
 msgstr "500 Hz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:126
 msgid "1 kHz"
 msgstr "1 kHz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:126
 msgid "2 kHz"
 msgstr "2 kHz"
 
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:127
 msgid "4 kHz"
 msgstr "4 kHz"
 
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:127
 msgid "8 kHz"
 msgstr "8 kHz"
 
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:127
 msgid "16 kHz"
 msgstr "16 kHz"
 
-#: src/libaudgui/equalizer.c:147
+#: src/libaudgui/equalizer.c:132
 msgid "Equalizer"
 msgstr "Égaliseur"
 
-#: src/libaudgui/equalizer.c:163
+#: src/libaudgui/equalizer.c:148
 msgid "Preamp"
 msgstr "Préamp."
 
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:211
 msgid "Track Number"
 msgstr "Piste"
 
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:213
 msgid "Track Length"
 msgstr "Durée"
 
-#: src/libaudgui/infowin.c:77
+#: src/libaudgui/infowin.c:78
 msgid "Acid Jazz"
 msgstr "Acid Jazz"
 
-#: src/libaudgui/infowin.c:78
-#, fuzzy
+#: src/libaudgui/infowin.c:79
 msgid "Acid Rock"
-msgstr "Hard Rock"
+msgstr "Acid Rock"
 
-#: src/libaudgui/infowin.c:79
+#: src/libaudgui/infowin.c:80
 msgid "Ambient"
 msgstr "Ambient"
 
-#: src/libaudgui/infowin.c:80
-#, fuzzy
+#: src/libaudgui/infowin.c:81
 msgid "Bebop"
 msgstr "Bebob"
 
-#: src/libaudgui/infowin.c:81
+#: src/libaudgui/infowin.c:82
 msgid "Bluegrass"
 msgstr "Bluegrass"
 
-#: src/libaudgui/infowin.c:82
+#: src/libaudgui/infowin.c:83
 msgid "Blues"
 msgstr "Blues"
 
-#: src/libaudgui/infowin.c:83
+#: src/libaudgui/infowin.c:84
 msgid "Chamber Music"
 msgstr "Chamber Music"
 
-#: src/libaudgui/infowin.c:84
+#: src/libaudgui/infowin.c:85
 msgid "Classical"
 msgstr "Classical"
 
-#: src/libaudgui/infowin.c:85
+#: src/libaudgui/infowin.c:86
 msgid "Country"
 msgstr "Country"
 
-#: src/libaudgui/infowin.c:86
+#: src/libaudgui/infowin.c:87
 msgid "Death Metal"
 msgstr "Death Metal"
 
-#: src/libaudgui/infowin.c:87
+#: src/libaudgui/infowin.c:88
 msgid "Disco"
 msgstr "Disco"
 
-#: src/libaudgui/infowin.c:88
+#: src/libaudgui/infowin.c:89
 msgid "Easy Listening"
 msgstr "Easy Listening"
 
-#: src/libaudgui/infowin.c:89
+#: src/libaudgui/infowin.c:90
 msgid "Folk"
 msgstr "Folk"
 
-#: src/libaudgui/infowin.c:90
+#: src/libaudgui/infowin.c:91
 msgid "Funk"
 msgstr "Funk"
 
-#: src/libaudgui/infowin.c:91
+#: src/libaudgui/infowin.c:92
 msgid "Gangsta Rap"
 msgstr "Gangsta Rap"
 
-#: src/libaudgui/infowin.c:92
+#: src/libaudgui/infowin.c:93
 msgid "Gospel"
 msgstr "Gospel"
 
-#: src/libaudgui/infowin.c:93
+#: src/libaudgui/infowin.c:94
 msgid "Grunge"
 msgstr "Grunge"
 
-#: src/libaudgui/infowin.c:94
+#: src/libaudgui/infowin.c:95
 msgid "Hard Rock"
 msgstr "Hard Rock"
 
-#: src/libaudgui/infowin.c:95
+#: src/libaudgui/infowin.c:96
 msgid "Heavy Metal"
 msgstr "Heavy Metal"
 
-#: src/libaudgui/infowin.c:96
-#, fuzzy
+#: src/libaudgui/infowin.c:97
 msgid "Hip-hop"
 msgstr "Hip-Hop"
 
-#: src/libaudgui/infowin.c:97
+#: src/libaudgui/infowin.c:98
 msgid "House"
 msgstr "House"
 
-#: src/libaudgui/infowin.c:98
+#: src/libaudgui/infowin.c:99
 msgid "Jazz"
 msgstr "Jazz"
 
-#: src/libaudgui/infowin.c:99
+#: src/libaudgui/infowin.c:100
 msgid "Jungle"
 msgstr "Jungle"
 
-#: src/libaudgui/infowin.c:100
+#: src/libaudgui/infowin.c:101
 msgid "Metal"
 msgstr "Metal"
 
-#: src/libaudgui/infowin.c:101
+#: src/libaudgui/infowin.c:102
 msgid "New Age"
 msgstr "New Age"
 
-#: src/libaudgui/infowin.c:102
+#: src/libaudgui/infowin.c:103
 msgid "New Wave"
 msgstr "New Wave"
 
-#: src/libaudgui/infowin.c:103
+#: src/libaudgui/infowin.c:104
 msgid "Noise"
 msgstr "Noise"
 
-#: src/libaudgui/infowin.c:104
+#: src/libaudgui/infowin.c:105
 msgid "Pop"
 msgstr "Pop"
 
-#: src/libaudgui/infowin.c:105
+#: src/libaudgui/infowin.c:106
 msgid "Punk Rock"
 msgstr "Punk Rock"
 
-#: src/libaudgui/infowin.c:106
+#: src/libaudgui/infowin.c:107
 msgid "Rap"
 msgstr "Rap"
 
-#: src/libaudgui/infowin.c:107
+#: src/libaudgui/infowin.c:108
 msgid "Reggae"
 msgstr "Reggae"
 
-#: src/libaudgui/infowin.c:108
+#: src/libaudgui/infowin.c:109
 msgid "Rock"
 msgstr "Rock"
 
-#: src/libaudgui/infowin.c:109
-#, fuzzy
+#: src/libaudgui/infowin.c:110
 msgid "Rock and Roll"
-msgstr "Rock & Roll"
+msgstr "Rock and Roll"
 
-#: src/libaudgui/infowin.c:110
+#: src/libaudgui/infowin.c:111
 msgid "Rhythm and Blues"
-msgstr ""
+msgstr "Rhythm and Blues"
 
-#: src/libaudgui/infowin.c:111
+#: src/libaudgui/infowin.c:112
 msgid "Ska"
 msgstr "Ska"
 
-#: src/libaudgui/infowin.c:112
+#: src/libaudgui/infowin.c:113
 msgid "Soul"
 msgstr "Soul"
 
-#: src/libaudgui/infowin.c:113
+#: src/libaudgui/infowin.c:114
 msgid "Swing"
 msgstr "Swing"
 
-#: src/libaudgui/infowin.c:114
+#: src/libaudgui/infowin.c:115
 msgid "Techno"
 msgstr "Techno"
 
-#: src/libaudgui/infowin.c:115
-#, fuzzy
+#: src/libaudgui/infowin.c:116
 msgid "Trip-hop"
 msgstr "Trip-Hop"
 
-#: src/libaudgui/infowin.c:175 src/libaudgui/infowin.c:361
-#: src/libaudgui/infowin.c:364 src/libaudgui/infowin.c:367
+#: src/libaudgui/infowin.c:180 src/libaudgui/infowin.c:366
+#: src/libaudgui/infowin.c:369 src/libaudgui/infowin.c:372
 msgid "<span size=\"small\">n/a</span>"
 msgstr "<span size=\"small\">non disponible</span>"
 
-#: src/libaudgui/infowin.c:265
+#: src/libaudgui/infowin.c:270
 msgid "Metadata updated successfully"
 msgstr "Mise à jour des métadonnées réussie"
 
-#: src/libaudgui/infowin.c:270
+#: src/libaudgui/infowin.c:275
 msgid "Metadata updating failed"
 msgstr "Échec lors de la mise à jour des métadonnées"
 
-#: src/libaudgui/infowin.c:318
+#: src/libaudgui/infowin.c:323
 msgid "Track Information"
 msgstr "Informations sur le morceau"
 
-#: src/libaudgui/infowin.c:350
+#: src/libaudgui/infowin.c:355
 msgid "<span size=\"small\">Format:</span>"
 msgstr "<span size=\"small\">Format :</span>"
 
-#: src/libaudgui/infowin.c:354
+#: src/libaudgui/infowin.c:359
 msgid "<span size=\"small\">Quality:</span>"
 msgstr "<span size=\"small\">Qualité :</span>"
 
-#: src/libaudgui/infowin.c:357
+#: src/libaudgui/infowin.c:362
 msgid "<span size=\"small\">Bitrate:</span>"
 msgstr "<span size=\"small\">Taux d'encodage :</span>"
 
-#: src/libaudgui/infowin.c:387
+#: src/libaudgui/infowin.c:392
 msgid "<span size=\"small\">Title</span>"
 msgstr "<span size=\"small\">Titre</span>"
 
-#: src/libaudgui/infowin.c:399
+#: src/libaudgui/infowin.c:404
 msgid "<span size=\"small\">Artist</span>"
 msgstr "<span size=\"small\">Artiste</span>"
 
-#: src/libaudgui/infowin.c:411
+#: src/libaudgui/infowin.c:416
 msgid "<span size=\"small\">Album</span>"
 msgstr "<span size=\"small\">Album</span>"
 
-#: src/libaudgui/infowin.c:423
+#: src/libaudgui/infowin.c:428
 msgid "<span size=\"small\">Comment</span>"
 msgstr "<span size=\"small\">Commentaire</span>"
 
-#: src/libaudgui/infowin.c:435
+#: src/libaudgui/infowin.c:440
 msgid "<span size=\"small\">Genre</span>"
 msgstr "<span size=\"small\">Genre</span>"
 
-#: src/libaudgui/infowin.c:456
+#: src/libaudgui/infowin.c:461
 msgid "<span size=\"small\">Year</span>"
 msgstr "<span size=\"small\">Année</span>"
 
-#: src/libaudgui/infowin.c:467
+#: src/libaudgui/infowin.c:472
 msgid "<span size=\"small\">Track Number</span>"
 msgstr "<span size=\"small\">Piste</span>"
 
-#: src/libaudgui/infowin.c:549
+#: src/libaudgui/infowin.c:551
 #, c-format
 msgid "%d kb/s"
 msgstr "%d kb/s"
 
-#: src/libaudgui/infowin.c:579
+#: src/libaudgui/infowin.c:578
 #, c-format
 msgid "No info available for %s.\n"
 msgstr "Aucune information disponible pour %s.\n"
 
-#: src/libaudgui/ui_about.c:71
+#: src/libaudgui/jump-to-time.c:75
+msgid "Jump to Time"
+msgstr "Sauter au temps"
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr "mm:ss"
+
+#: src/libaudgui/playlists.c:39
+msgid "Export Playlist"
+msgstr "Exporter la liste de lecture"
+
+#: src/libaudgui/playlists.c:39
+msgid "Import Playlist"
+msgstr "Importer la piste de lecture"
+
+#: src/libaudgui/playlists.c:72
+#, c-format
+msgid "Overwrite %s?"
+msgstr "Écraser %s ?"
+
+#: src/libaudgui/queue-manager.c:198
+msgid "Queue Manager"
+msgstr "Gestionnaire de file d'attente"
+
+#: src/libaudgui/ui_about.c:69
 msgid "About Audacious"
 msgstr "À propos d'Audacious"
 
-#: src/libaudgui/ui_about.c:93 src/libaudgui/ui_credits.c:122
+#: src/libaudgui/ui_about.c:90 src/libaudgui/ui_credits.c:122
 msgid "Credits"
 msgstr "Crédits"
 
@@ -1149,96 +1097,105 @@ msgstr "Fermer la fenêtre après l'ouverture des fichiers"
 msgid "Close dialog on Add"
 msgstr "Fermer la fenêtre après l'ajout des fichiers"
 
-#: src/libaudgui/ui_jumptotrack.c:133
-msgid "Un_queue"
-msgstr "_Retirer de la file"
-
-#: src/libaudgui/ui_jumptotrack.c:135 src/libaudgui/ui_jumptotrack.c:512
+#: src/libaudgui/ui_jumptotrack.c:112 src/libaudgui/ui_jumptotrack.c:120
+#: src/libaudgui/ui_jumptotrack.c:329
 msgid "_Queue"
 msgstr "_Mettre dans la file"
 
-#: src/libaudgui/ui_jumptotrack.c:399
-msgid "Jump to Track"
-msgstr "Aller au titre..."
+#: src/libaudgui/ui_jumptotrack.c:118
+msgid "Un_queue"
+msgstr "_Retirer de la file"
 
-#: src/libaudgui/ui_jumptotrack.c:442
+#: src/libaudgui/ui_jumptotrack.c:261
+msgid "Jump to Song"
+msgstr "Sauter au morceau"
+
+#: src/libaudgui/ui_jumptotrack.c:284
 msgid "Filter: "
 msgstr "Filtre :"
 
-#: src/libaudgui/ui_jumptotrack.c:443
+#: src/libaudgui/ui_jumptotrack.c:285
 msgid "_Filter:"
 msgstr "_Filtre :"
 
-#: src/libaudgui/ui_jumptotrack.c:461
+#: src/libaudgui/ui_jumptotrack.c:295
 msgid "Remember"
 msgstr ""
 "Se souvenir de\n"
 "la recherche"
 
-#: src/libaudgui/ui_jumptotrack.c:470
+#: src/libaudgui/ui_jumptotrack.c:302
 msgid "Clea_r"
 msgstr "Efface_r"
 
-#: src/libaudgui/ui_jumptotrack.c:504
+#: src/libaudgui/ui_jumptotrack.c:322
 msgid "Close on Jump"
 msgstr ""
 "Fermer la fenêtre\n"
 "après la sélection"
 
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:253
 msgid "Playlist Manager"
 msgstr "Gestionnaire de listes de lecture"
 
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:280
 msgid "Entries"
 msgstr "Entrées"
 
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:301
 msgid "_Rename"
 msgstr "_Renommer"
 
-#: src/libaudgui/ui_playlist_manager.c:251
+#: src/libaudgui/ui_playlist_manager.c:325
 msgid "_Close dialog on activating playlist"
 msgstr "_Fermer la fenêtre après l'activation de la liste de lecture"
 
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:51
 msgid "Open URL"
 msgstr "Ouvrir l'adresse d'un flux"
 
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:51
 msgid "Add URL"
 msgstr "Ajouter l'adresse d'un flux"
 
+#: src/libaudgui/util.c:97
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+"\n"
+"(Des messages supplémentaires ont été cachés.)"
+
 #: src/libeggsmclient/eggdesktopfile.c:165
 msgid "File is not a valid .desktop file"
 msgstr "Le fichier n'est pas un fichier '.desktop' valide"
 
-#: src/libeggsmclient/eggdesktopfile.c:188
+#: src/libeggsmclient/eggdesktopfile.c:191
 #, c-format
 msgid "Unrecognized desktop file Version '%s'"
 msgstr "Version du fichier '.desktop' suivant inconnue : '%s'"
 
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:974
 #, c-format
 msgid "Starting %s"
 msgstr "Exécution de %s"
 
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1116
 msgid "Application does not accept documents on command line"
 msgstr "L'application n'accepte pas de ressources via la ligne de commande"
 
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1184
 #, c-format
 msgid "Unrecognized launch option: %d"
 msgstr "Option de lancement suivante inconnue : %d"
 
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1391
 msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
 msgstr ""
 "Impossible de passer les identifiants uniformes de ressource ('URIs') à une "
 "entrée 'Type=Link' du fichier '.desktop'"
 
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1412
 msgid "Not a launchable item"
 msgstr "L'élément n'est pas exécutable"
 
@@ -1263,616 +1220,11 @@ msgid "ID"
 msgstr "ID"
 
 #: src/libeggsmclient/eggsmclient.c:253
-#, fuzzy
 msgid "Session management options:"
 msgstr "Options du gestionnaire de sessions"
 
 #: src/libeggsmclient/eggsmclient.c:254
-#, fuzzy
 msgid "Show session management options"
 msgstr "Afficher les options du gestionnaire de sessions"
 
-#~ msgid "%s: Unable to open display, exiting.\n"
-#~ msgstr ""
-#~ "%s: Impossible d'accéder à la session d'affichage : processus "
-#~ "interrompu.\n"
-
-#~ msgid "Preamp:"
-#~ msgstr "Préamplification :"
-
-#~ msgid "Default gain:"
-#~ msgstr "Gain par défaut :"
-
-#~ msgid "This gain will be used if file doesn't contain Replay Gain metadata."
-#~ msgstr ""
-#~ "Ce gain sera utilisé si le fichier audio ne contient aucune métadonnée « "
-#~ "Replay Gain »."
-
-#~ msgid ""
-#~ "<span size=\"small\">Please remember that the most efficient way to "
-#~ "prevent signal clipping is not to use positive values above.</span>"
-#~ msgstr ""
-#~ "<span size=\"small\">Veuillez noter que le moyen le plus efficace "
-#~ "d'éviter la saturation numérique du signal est de ne pas utiliser de "
-#~ "valeurs positives dans les champs ci-dessus.</span>"
-
-#~ msgid "<b>Replay Gain configuration</b>"
-#~ msgstr "<b>Configuration de « Replay Gain »</b>"
-
-#~ msgid "Track gain/peak"
-#~ msgstr "Gain/pic « piste »"
 
-#~ msgid "Album gain/peak"
-#~ msgstr "Pic/Gain « album »"
-
-#~ msgid "Use peak value from Replay Gain info for clipping prevention"
-#~ msgstr ""
-#~ "Utilise les informations de « Replay Gain » relatives aux pics sonores "
-#~ "pour éviter la saturation numérique (« clipping »)."
-
-#~ msgid "Classic Rock"
-#~ msgstr "Classic Rock"
-
-#~ msgid "Dance"
-#~ msgstr "Dance"
-
-#~ msgid "Oldies"
-#~ msgstr "Oldies"
-
-#~ msgid "Other"
-#~ msgstr "Other"
-
-#~ msgid "R&B"
-#~ msgstr "R&B"
-
-#~ msgid "Industrial"
-#~ msgstr "Industrial"
-
-#~ msgid "Alternative"
-#~ msgstr "Alternative"
-
-#~ msgid "Pranks"
-#~ msgstr "Pranks"
-
-#~ msgid "Soundtrack"
-#~ msgstr "Soundtrack"
-
-#~ msgid "Euro-Techno"
-#~ msgstr "Euro-Techno"
-
-#~ msgid "Vocal"
-#~ msgstr "Vocal"
-
-#~ msgid "Jazz+Funk"
-#~ msgstr "Jazz+Funk"
-
-#~ msgid "Fusion"
-#~ msgstr "Fusion"
-
-#~ msgid "Trance"
-#~ msgstr "Trance"
-
-#~ msgid "Instrumental"
-#~ msgstr "Instrumental"
-
-#~ msgid "Acid"
-#~ msgstr "Acid"
-
-#~ msgid "Game"
-#~ msgstr "Game"
-
-#~ msgid "Sound Clip"
-#~ msgstr "Sound Clip"
-
-#~ msgid "AlternRock"
-#~ msgstr "AlternRock"
-
-#~ msgid "Bass"
-#~ msgstr "Bass"
-
-#~ msgid "Punk"
-#~ msgstr "Punk"
-
-#~ msgid "Space"
-#~ msgstr "Space"
-
-#~ msgid "Meditative"
-#~ msgstr "Meditative"
-
-#~ msgid "Instrumental Pop"
-#~ msgstr "Instrumental Pop"
-
-#~ msgid "Instrumental Rock"
-#~ msgstr "Instrumental Rock"
-
-#~ msgid "Ethnic"
-#~ msgstr "Ethnic"
-
-#~ msgid "Gothic"
-#~ msgstr "Gothic"
-
-#~ msgid "Darkwave"
-#~ msgstr "Darkwave"
-
-#~ msgid "Techno-Industrial"
-#~ msgstr "Techno-Industrial"
-
-#~ msgid "Electronic"
-#~ msgstr "Electronic"
-
-#~ msgid "Pop-Folk"
-#~ msgstr "Pop-Folk"
-
-#~ msgid "Eurodance"
-#~ msgstr "Eurodance"
-
-#~ msgid "Dream"
-#~ msgstr "Dream"
-
-#~ msgid "Southern Rock"
-#~ msgstr "Southern Rock"
-
-#~ msgid "Comedy"
-#~ msgstr "Comedy"
-
-#~ msgid "Cult"
-#~ msgstr "Cult"
-
-#~ msgid "Top 40"
-#~ msgstr "Top 40"
-
-#~ msgid "Christian Rap"
-#~ msgstr "Christian Rap"
-
-#~ msgid "Pop/Funk"
-#~ msgstr "Pop/Funk"
-
-#~ msgid "Native American"
-#~ msgstr "Native American"
-
-#~ msgid "Cabaret"
-#~ msgstr "Cabaret"
-
-#~ msgid "Psychedelic"
-#~ msgstr "Psychedelic"
-
-#~ msgid "Rave"
-#~ msgstr "Rave"
-
-#~ msgid "Showtunes"
-#~ msgstr "Showtunes"
-
-#~ msgid "Trailer"
-#~ msgstr "Trailer"
-
-#~ msgid "Lo-Fi"
-#~ msgstr "Lo-Fi"
-
-#~ msgid "Tribal"
-#~ msgstr "Tribal"
-
-#~ msgid "Acid Punk"
-#~ msgstr "Acid Punk"
-
-#~ msgid "Polka"
-#~ msgstr "Polka"
-
-#~ msgid "Retro"
-#~ msgstr "Retro"
-
-#~ msgid "Musical"
-#~ msgstr "Musical"
-
-#~ msgid "Folk/Rock"
-#~ msgstr "Folk/Rock"
-
-#~ msgid "National Folk"
-#~ msgstr "National Folk"
-
-#~ msgid "Fast-Fusion"
-#~ msgstr "Fast-Fusion"
-
-#~ msgid "Latin"
-#~ msgstr "Latin"
-
-#~ msgid "Revival"
-#~ msgstr "Revival"
-
-#~ msgid "Celtic"
-#~ msgstr "Celtic"
-
-#~ msgid "Avantgarde"
-#~ msgstr "Avantgarde"
-
-#~ msgid "Gothic Rock"
-#~ msgstr "Gothic Rock"
-
-#~ msgid "Progressive Rock"
-#~ msgstr "Progressive Rock"
-
-#~ msgid "Psychedelic Rock"
-#~ msgstr "Psychedelic Rock"
-
-#~ msgid "Symphonic Rock"
-#~ msgstr "Symphonic Rock"
-
-#~ msgid "Slow Rock"
-#~ msgstr "Slow Rock"
-
-#~ msgid "Big Band"
-#~ msgstr "Big Band"
-
-#~ msgid "Chorus"
-#~ msgstr "Chorus"
-
-#~ msgid "Acoustic"
-#~ msgstr "Acoustic"
-
-#~ msgid "Humour"
-#~ msgstr "Humour"
-
-#~ msgid "Speech"
-#~ msgstr "Speech"
-
-#~ msgid "Chanson"
-#~ msgstr "Chanson"
-
-#~ msgid "Opera"
-#~ msgstr "Opera"
-
-#~ msgid "Sonata"
-#~ msgstr "Sonate"
-
-#~ msgid "Symphony"
-#~ msgstr "Symphony"
-
-#~ msgid "Booty Bass"
-#~ msgstr "Booty Bass"
-
-#~ msgid "Primus"
-#~ msgstr "Primus"
-
-#~ msgid "Porn Groove"
-#~ msgstr "Porn Groove"
-
-#~ msgid "Satire"
-#~ msgstr "Satire"
-
-#~ msgid "Slow Jam"
-#~ msgstr "Slow Jam"
-
-#~ msgid "Club"
-#~ msgstr "Club"
-
-#~ msgid "Tango"
-#~ msgstr "Tango"
-
-#~ msgid "Samba"
-#~ msgstr "Samba"
-
-#~ msgid "Folklore"
-#~ msgstr "Folklore"
-
-#~ msgid "Ballad"
-#~ msgstr "Ballad"
-
-#~ msgid "Power Ballad"
-#~ msgstr "Power Ballad"
-
-#~ msgid "Rhythmic Soul"
-#~ msgstr "Rhythmic Soul"
-
-#~ msgid "Freestyle"
-#~ msgstr "Freestyle"
-
-#~ msgid "Duet"
-#~ msgstr "Duet"
-
-#~ msgid "Drum Solo"
-#~ msgstr "Drum Solo"
-
-#~ msgid "A Cappella"
-#~ msgstr "A Cappella"
-
-#~ msgid "Euro-House"
-#~ msgstr "Euro-House"
-
-#~ msgid "Dance Hall"
-#~ msgstr "Dance Hall"
-
-#~ msgid "Goa"
-#~ msgstr "Goa"
-
-#~ msgid "Drum & Bass"
-#~ msgstr "Drum & Bass"
-
-#~ msgid "Club-House"
-#~ msgstr "Club-House"
-
-#~ msgid "Hardcore"
-#~ msgstr "Hardcore"
-
-#~ msgid "Terror"
-#~ msgstr "Terror"
-
-#~ msgid "Indie"
-#~ msgstr "Indie"
-
-#~ msgid "BritPop"
-#~ msgstr "BritPop"
-
-#~ msgid "Negerpunk"
-#~ msgstr "Negerpunk"
-
-#~ msgid "Polsk Punk"
-#~ msgstr "Polsk Punk"
-
-#~ msgid "Beat"
-#~ msgstr "Beat"
-
-#~ msgid "Christian Gangsta Rap"
-#~ msgstr "Christian Gangsta Rap"
-
-#~ msgid "Black Metal"
-#~ msgstr "Black Metal"
-
-#~ msgid "Crossover"
-#~ msgstr "Crossover"
-
-#~ msgid "Contemporary Christian"
-#~ msgstr "Contemporary Christian"
-
-#~ msgid "Christian Rock"
-#~ msgstr "Christian Rock"
-
-#~ msgid "Merengue"
-#~ msgstr "Merengue"
-
-#~ msgid "Salsa"
-#~ msgstr "Salsa"
-
-#~ msgid "Thrash Metal"
-#~ msgstr "Thrash Metal"
-
-#~ msgid "Anime"
-#~ msgstr "Anime"
-
-#~ msgid "JPop"
-#~ msgstr "JPop"
-
-#~ msgid "Synthpop"
-#~ msgstr "Synthpop"
-
-#, fuzzy
-#~ msgid ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "An audio player for many platforms.\n"
-#~ "Copyright (C) 2005-2011 Audacious Development Team"
-#~ msgstr ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "Un lecteur audio pour de nombreuses plates-formes.\n"
-#~ "\n"
-#~ "Droits d'utilisation : Équipe de Développement Audacious (2005-2010)"
-
-#~ msgid "Module loading not supported! Plugins will not be loaded.\n"
-#~ msgstr ""
-#~ "Le chargement de modules n'est pas supporté ! Les extensions ne seront "
-#~ "pas initialisées.\n"
-
-#~ msgid "Audacious - Unsupported Version Warning"
-#~ msgstr "Audacious - Avertissement : version non supportée"
-
-#~ msgid "<big><b>Audacious2 is not ready yet!</b></big>"
-#~ msgstr "<big><b>Audacious2 n'est pas encore prêt !</b></big>"
-
-#~ msgid ""
-#~ "<b>Please don't file bugs at this point unless they represent major "
-#~ "problems.</b>"
-#~ msgstr ""
-#~ "<b>Veuillez ne pas remplir de rapports d'erreur, à ce stade du "
-#~ "développement,\n"
-#~ "à moins qu'il ne s'agisse de problèmes sérieux.</b>"
-
-#~ msgid ""
-#~ "This is an <i>alpha</i> build of Audacious2. It is still fairly "
-#~ "incomplete and unpolished.\n"
-#~ "We suspect that most minor bugs reported during this time will be "
-#~ "resolved once more things\n"
-#~ "stablize. However, if there is a major bug, such as a crash on playing a "
-#~ "specific file, we\n"
-#~ "need to know about it.\n"
-#~ "\n"
-#~ "However, we ask you to be aware that dealing with trivial bugs is "
-#~ "distracting at this point,\n"
-#~ "and to please refrain from doing so. Thanks in advance!"
-#~ msgstr ""
-#~ "Cette version d'Audacious2 est une version <i>alpha</i> : elle est encore "
-#~ "bien incomplète et brute.\n"
-#~ "Nous pensons que la plupart des problèmes mineurs rapportés pendant cette "
-#~ "période de test sera réglée,\n"
-#~ "dès que plus d'éléments du code seront stables. Toutefois, en cas de "
-#~ "problème important\n"
-#~ "(comme un plantage lors de la lecture d'un fichier particulier), nous "
-#~ "aimerions être informés de la situation.\n"
-#~ "\n"
-#~ "Malgré tout, soyez conscient que s'occuper des erreurs insignifiantes est "
-#~ "frustrant,\n"
-#~ "à ce stade du développement. Évitez donc de provoquer la situation. Merci "
-#~ "d'avance !"
-
-#~ msgid "<b>Blogging about bugs in it is also not helpful.</b>"
-#~ msgstr ""
-#~ "<b>Rapporter les erreurs dans les blocs Internet n'est pas non plus très "
-#~ "utile.</b>"
-
-#~ msgid ""
-#~ "Likewise, we're developers. We don't read blogs on a regular basis. If "
-#~ "there is a major bug,\n"
-#~ "we ask you to bring it to our attention via our bugtracking instance at "
-#~ "http://jira.atheme.org/,\n"
-#~ "or via the forums that are on the website.\n"
-#~ "\n"
-#~ "This will help us find out more information about your concerns, which we "
-#~ "would likely\n"
-#~ "not know about otherwise."
-#~ msgstr ""
-#~ "En outre, nous sommes des développeurs : nous ne lisons pas les blocs de "
-#~ "manière régulière.\n"
-#~ "En cas de problème sérieux, nous vous invitons à nous le signaler via "
-#~ "notre système de gestion\n"
-#~ "des rapports d'erreur à l'adresse suivante : http://jira.atheme.org/ ou "
-#~ "via les fora de notre\n"
-#~ "site Internet.\n"
-#~ "\n"
-#~ "Cela nous aidera à obtenir de plus amples informations quant à votre "
-#~ "problème\n"
-#~ "(nous ne pourrions probablement pas avoir ces éléments autrement)."
-
-#~ msgid "Playback"
-#~ msgstr "Lecture"
-
-#~ msgid "<b>Playback</b>"
-#~ msgstr "<b>Lecture</b>"
-
-#~ msgid ""
-#~ "When Audacious starts, automatically begin playing from the point where "
-#~ "we stopped before."
-#~ msgstr ""
-#~ "Au démarrage d'Audacious, la lecture reprendra là où elle s'était arrêtée "
-#~ "lors de la session précédente."
-
-#~ msgid "Don't advance in the playlist"
-#~ msgstr "Ne pas avancer dans la liste de lecture"
-
-#~ msgid ""
-#~ "When finished playing a song, don't automatically advance to the next."
-#~ msgstr ""
-#~ "À la fin d'un morceau, ne pas lire automatiquement le titre suivant."
-
-#~ msgid "Enabled"
-#~ msgstr "Activé"
-
-#~ msgid "Description"
-#~ msgstr "Description"
-
-#~ msgid "Output Plugin Preferences"
-#~ msgstr "Préférences du module"
-
-#~ msgid "Output Plugin Information"
-#~ msgstr "Informations sur le module"
-
-#~ msgid "_Decoder list:"
-#~ msgstr "Liste des _décodeurs :"
-
-#~ msgid "<span size=\"medium\"><b>Decoders</b></span>"
-#~ msgstr "<span size=\"medium\"><b>Décodeurs</b></span>"
-
-#~ msgid "_General plugin list:"
-#~ msgstr "Liste des modules _généraux :"
-
-#~ msgid "<span size=\"medium\"><b>General</b></span>"
-#~ msgstr "<span size=\"medium\"><b>Modules généraux</b></span>"
-
-#~ msgid "_Visualization plugin list:"
-#~ msgstr "Liste des effets _visuels :"
-
-#~ msgid "Effect plugins:"
-#~ msgstr "Liste des effets audio :"
-
-#~ msgid "Unable to create log file (%s)!\n"
-#~ msgstr "Impossible de créer le fichier journal (%s)!\n"
-
-#~ msgid "Print all errors and warnings to stdout"
-#~ msgstr ""
-#~ "Afficher toutes les erreurs et tous les avertissements dans 'stdout'"
-
-#~ msgid "Used in macpacking"
-#~ msgstr "Utilisé par 'macpack'"
-
-#~ msgid "Sorry, threads aren't supported on your platform.\n"
-#~ msgstr ""
-#~ "Désolé, mais votre plate-forme ne gère pas les processus multiples.\n"
-
-#~ msgid "<span size=\"small\">General</span>"
-#~ msgstr "<span size=\"small\">Général</span>"
-
-#~ msgid "<span size=\"small\">Location</span>"
-#~ msgstr "<span size=\"small\">Emplacement</span>"
-
-#~ msgid "<span size=\"small\">Raw Metadata</span>"
-#~ msgstr "<span size=\"small\">Métadonnées brutes</span>"
-
-#~ msgid "Key"
-#~ msgstr "Clef"
-
-#~ msgid "Value"
-#~ msgstr "Valeur"
-
-#
-# ####################### Workaround ################################
-#
-#
-# song_change
-#
-#~ msgid "Command to run when Audacious starts a new song."
-#~ msgstr "Commande à exécuter lorsqu'un nouveau morceau commence :"
-
-#~ msgid "Command:"
-#~ msgstr "Commande :"
-
-#~ msgid "Command to run toward the end of a song."
-#~ msgstr "Commande à exécuter lorsque la lecture d'un morceau se termine :"
-
-#~ msgid "Command to run when Audacious reaches the end of the playlist."
-#~ msgstr ""
-#~ "Commande à exécuter lorsque la fin de la liste de lecture est atteinte :"
-
-#~ msgid ""
-#~ "Command to run when title changes for a song (i.e. network streams "
-#~ "titles)."
-#~ msgstr ""
-#~ "Commande à exécuter lorsque le titre d'un morceau change (le titre d'un "
-#~ "flux distant, par exemple) :"
-
-#~ msgid ""
-#~ "You can use the following format strings which\n"
-#~ "will be substituted before calling the command\n"
-#~ "(not all are useful for the end-of-playlist command).\n"
-#~ "\n"
-#~ "%F: Frequency (in hertz)\n"
-#~ "%c: Number of channels\n"
-#~ "%f: filename (full path)\n"
-#~ "%l: length (in milliseconds)\n"
-#~ "%n or %s: Song name\n"
-#~ "%r: Rate (in bits per second)\n"
-#~ "%t: Playlist position (%02d)\n"
-#~ "%p: Currently playing (1 or 0)"
-#~ msgstr ""
-#~ "Vous pouvez utiliser les chaînes de la liste ci-dessous.\n"
-#~ "\n"
-#~ "Elles seront remplacées avant l'appel de la commande à exécuter (toutes "
-#~ "ne sont pas utiles pour la fonction 'fin de liste') :\n"
-#~ "\n"
-#~ "%F: Fréquence (en Hertz)\n"
-#~ "%c: Nombre de voies\n"
-#~ "%f: Nom du fichier (chemin complet)\n"
-#~ "%l: Durée (en millisecondes)\n"
-#~ "%n ou %s: Titre du morceau\n"
-#~ "%r: Taux d'encodage (en 'bits' par seconde)\n"
-#~ "%t: Position dans la liste de lecture (%02d)\n"
-#~ "%p: Statut de la lecture (1 ou 0)"
-
-#~ msgid ""
-#~ "<span size='small'>Parameters passed to the shell should be encapsulated "
-#~ "in quotes. Doing otherwise is a security risk.</span>"
-#~ msgstr ""
-#~ "<span size='small'>Les arguments à lancer dans la console doivent être "
-#~ "entourés de guillemets.\n"
-#~ "Une utilisation différente constitue un risque en matière de sécurité.</"
-#~ "span>"
-
-#~ msgid "Commands"
-#~ msgstr "Commandes"
-
-#~ msgid "Song Change"
-#~ msgstr "Song Change"
diff --git a/po/hi.po b/po/hi.po
index b21b33b..76a008c 100644
--- a/po/hi.po
+++ b/po/hi.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: bmp-hi\n"
 "Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
+"POT-Creation-Date: 2011-07-05 22:45+0200\n"
 "PO-Revision-Date: 2005-08-20 21:59+0530\n"
 "Last-Translator: धनञ्जय शर्मा (Dhananjaya Sharma) <dysxhi at yahoo.co.in>\n"
 "Language-Team: Hindi, India <dysxhi at yahoo.co.in>\n"
@@ -17,6 +17,17 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: KBabel 1.10\n"
 
+#: src/audacious/adder.c:71
+msgid "Searching ..."
+msgstr ""
+
+#: src/audacious/adder.c:99
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] ""
+msgstr[1] ""
+
 #: src/audacious/chardet.c:37
 msgid "  (invalid UTF-8)"
 msgstr "   (अवैध यूटीएफ़-८)"
@@ -107,116 +118,116 @@ msgstr "रोमानियन:"
 msgid "Finnish:"
 msgstr "स्पैनिस:"
 
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:220
 msgid "French:"
 msgstr "फ़्रेंच:"
 
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:226
 msgid "German:"
 msgstr "जर्मन:"
 
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:233
 #, fuzzy
 msgid "Georgian:"
 msgstr "जर्मन:"
 
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:236
 msgid "Greek:"
 msgstr "ग्रीक:"
 
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:241
 msgid "Hindi:"
 msgstr ""
 
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:244
 msgid "Hungarian:"
 msgstr "हंगारियन:"
 
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:248
 msgid "Italian:"
 msgstr "इटैलियन:"
 
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:252
 msgid "Japanese:"
 msgstr "जापानी:"
 
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:255
 msgid "Korean:"
 msgstr "कोरियन:"
 
-#: src/audacious/credits.c:256
+#: src/audacious/credits.c:258
 #, fuzzy
 msgid "Latvian:"
 msgstr "स्थान:"
 
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:261
 msgid "Lithuanian:"
 msgstr "लिथूनियन:"
 
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:265
 msgid "Macedonian:"
 msgstr "Macedonian:"
 
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:268
 msgid "Polish:"
 msgstr "पोलिश:"
 
-#: src/audacious/credits.c:271
+#: src/audacious/credits.c:274
 #, fuzzy
 msgid "Portuguese:"
 msgstr "पोर्ट"
 
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:277
 msgid "Romanian:"
 msgstr "रोमानियन:"
 
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:281
 msgid "Russian:"
 msgstr "रूसी:"
 
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:285
 msgid "Serbian (Latin):"
 msgstr ""
 
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:288
 msgid "Serbian (Cyrillic):"
 msgstr ""
 
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:291
 msgid "Simplified Chinese:"
 msgstr ""
 
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:294
 msgid "Slovak:"
 msgstr "स्लोवाक:"
 
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:297
 msgid "Spanish:"
 msgstr "स्पैनिस:"
 
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:304
 msgid "Swedish:"
 msgstr "स्वीडिस:"
 
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:307
 #, fuzzy
 msgid "Traditional Chinese:"
 msgstr "निम्न की अतिरिक्त सहायता द्वारा:"
 
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:312
 msgid "Turkish:"
 msgstr ""
 
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:316
 #, fuzzy
 msgid "Ukrainian:"
 msgstr "रोमानियन:"
 
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:319
 msgid "Welsh:"
 msgstr "वाल्श:"
 
-#: src/audacious/drct.c:254
+#: src/audacious/drct.c:256
 #, fuzzy
 msgid "Temporary Playlist"
 msgstr "प्लेसूची को लाना"
@@ -226,90 +237,75 @@ msgstr "प्लेसूची को लाना"
 msgid "Error importing Winamp EQF file '%s'"
 msgstr ""
 
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr ""
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/audacious/main.c:247
+#: src/audacious/main.c:256
 msgid "Skip backwards in playlist"
 msgstr "प्लेसूची में पीछे जाना"
 
-#: src/audacious/main.c:248
+#: src/audacious/main.c:257
 msgid "Start playing current playlist"
 msgstr "वर्तमान प्लेसूची को चलाना आरम्भ करना"
 
-#: src/audacious/main.c:249
+#: src/audacious/main.c:258
 msgid "Pause current song"
 msgstr "वर्तमान गीत को ठहरना"
 
-#: src/audacious/main.c:250
+#: src/audacious/main.c:259
 msgid "Stop current song"
 msgstr "वर्तमान गीत को रोकना"
 
-#: src/audacious/main.c:251
+#: src/audacious/main.c:260
 msgid "Pause if playing, play otherwise"
 msgstr "ठहराना यदि चल रहा हो, अन्यथा चलाना"
 
-#: src/audacious/main.c:252
+#: src/audacious/main.c:261
 msgid "Skip forward in playlist"
 msgstr "प्लेसूची में आगे जाना"
 
-#: src/audacious/main.c:253
+#: src/audacious/main.c:262
 #, fuzzy
 msgid "Display Jump to File dialog"
 msgstr "/संचिका पर जाएँ"
 
-#: src/audacious/main.c:254
+#: src/audacious/main.c:263
 #, fuzzy
 msgid "Add files to the playlist"
 msgstr "प्लेसूची को साफ़ नहीं करना"
 
-#: src/audacious/main.c:255
+#: src/audacious/main.c:264
 #, fuzzy
 msgid "Add new files to a temporary playlist"
 msgstr "प्लेसूची को साफ़ नहीं करना"
 
-#: src/audacious/main.c:256
+#: src/audacious/main.c:265
 #, fuzzy
 msgid "Display the main window"
 msgstr "मुख्य खिड़की को दिखाना"
 
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr ""
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:266
 #, fuzzy
 msgid "Show version"
 msgstr "/प्लेसूची संपादक दिखाएँ"
 
-#: src/audacious/main.c:259
+#: src/audacious/main.c:267
 msgid "Print debugging messages"
 msgstr ""
 
-#: src/audacious/main.c:260
+#: src/audacious/main.c:268
 msgid "FILE..."
 msgstr ""
 
-#: src/audacious/main.c:272
+#: src/audacious/main.c:280
 msgid "- play multimedia files"
 msgstr ""
 
-#: src/audacious/main.c:282
+#: src/audacious/main.c:290
 #, c-format
 msgid ""
 "%s: %s\n"
 "Try `%s --help' for more information.\n"
 msgstr ""
 
-#: src/audacious/main.c:395
+#: src/audacious/main.c:407
 msgid ""
 "Audacious seems to be already running but is not responding.  You can start "
 "another instance of the program, but please be warned that this can cause "
@@ -317,290 +313,267 @@ msgid ""
 "message.  Press OK to start Audacious or Cancel to quit."
 msgstr ""
 
-#: src/audacious/main.c:558
+#: src/audacious/main.c:572
 msgid "Audacious"
 msgstr ""
 
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:381
 #, c-format
 msgid "No decoder found for %s."
 msgstr ""
 
-#: src/audacious/playback.c:519
+#: src/audacious/playback.c:531
 #, fuzzy
 msgid "Buffering ..."
 msgstr "बफ़रिंग"
 
-#: src/audacious/playlist-new.c:288
+#: src/audacious/playlist-new.c:303
 #, fuzzy
 msgid "Untitled Playlist"
 msgstr "प्लेसूची को सुरक्षित करना"
 
-#: src/audacious/ui_preferences.c:88
+#: src/audacious/ui_preferences.c:87
 #, fuzzy
 msgid "Audio"
 msgstr "एमपीईजी आडियो प्लग-इन के बारे में"
 
-#: src/audacious/ui_preferences.c:89
-#, fuzzy
-msgid "Replay Gain"
-msgstr "रीप्लेगेन"
-
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:88
 msgid "Network"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:89 src/audacious/ui_preferences.c:1556
 msgid "Playlist"
 msgstr "प्लेसूची"
 
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:90
 msgid "Plugins"
 msgstr "प्लग-इन्स"
 
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:204
 msgid "Artist"
 msgstr "कलाकार"
 
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:97 src/libaudgui/infopopup.c:206
 msgid "Album"
 msgstr "एल्बम"
 
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:202
+#: src/libaudgui/ui_playlist_manager.c:263
 msgid "Title"
 msgstr "शीर्षक"
 
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:99
 msgid "Tracknumber"
 msgstr "ट्रैकसंख्या"
 
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:208
 msgid "Genre"
 msgstr "प्रकार"
 
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:101
 msgid "Filename"
 msgstr "संचिकानाम"
 
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:102
 msgid "Filepath"
 msgstr "संचिकापथ"
 
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:103
 msgid "Date"
 msgstr "दिनांक"
 
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:104 src/libaudgui/infopopup.c:210
 msgid "Year"
 msgstr "वर्ष"
 
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:105
 msgid "Comment"
 msgstr "टिप्पणी"
 
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:106
 #, fuzzy
 msgid "Codec"
 msgstr "/बन्द"
 
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:107
 #, fuzzy
 msgid "Quality"
 msgstr "/निकास (_Q)"
 
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:112
 msgid "None"
 msgstr "कुछ नहीं"
 
-#: src/audacious/ui_preferences.c:115
+#: src/audacious/ui_preferences.c:113
 #, fuzzy
 msgid "Japanese"
 msgstr "जापानी:"
 
-#: src/audacious/ui_preferences.c:116
+#: src/audacious/ui_preferences.c:114
 #, fuzzy
 msgid "Taiwanese"
 msgstr "जापानी:"
 
-#: src/audacious/ui_preferences.c:117
+#: src/audacious/ui_preferences.c:115
 #, fuzzy
 msgid "Chinese"
 msgstr "चीनी:"
 
-#: src/audacious/ui_preferences.c:118
+#: src/audacious/ui_preferences.c:116
 #, fuzzy
 msgid "Korean"
 msgstr "कोरियन:"
 
-#: src/audacious/ui_preferences.c:119
+#: src/audacious/ui_preferences.c:117
 #, fuzzy
 msgid "Russian"
 msgstr "रूसी:"
 
-#: src/audacious/ui_preferences.c:120
+#: src/audacious/ui_preferences.c:118
 #, fuzzy
 msgid "Greek"
 msgstr "ग्रीक:"
 
-#: src/audacious/ui_preferences.c:121
+#: src/audacious/ui_preferences.c:119
 msgid "Hebrew"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:122
+#: src/audacious/ui_preferences.c:120
 msgid "Turkish"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:123
+#: src/audacious/ui_preferences.c:121
 msgid "Arabic"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:124
+#: src/audacious/ui_preferences.c:122
 #, fuzzy
 msgid "Polish"
 msgstr "पोलिश:"
 
-#: src/audacious/ui_preferences.c:125
+#: src/audacious/ui_preferences.c:123
 #, fuzzy
 msgid "Baltic"
 msgstr "सेल्टिक"
 
-#: src/audacious/ui_preferences.c:126
+#: src/audacious/ui_preferences.c:124
 #, fuzzy
 msgid "Universal"
 msgstr "प्रकार"
 
 #: src/audacious/ui_preferences.c:146
 #, fuzzy
-msgid "<b>Bit Depth</b>"
-msgstr "बिट-दर:"
+msgid "Single track mode"
+msgstr "/ट्रैक के विवरणों को देखें"
 
 #: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
+#, fuzzy
+msgid "Album mode"
+msgstr "एल्बम"
 
-#: src/audacious/ui_preferences.c:151
+#: src/audacious/ui_preferences.c:150
 #, fuzzy
-msgid "<b>Volume Control</b>"
-msgstr "वाल्यूम नियंत्रक:"
+msgid "<b>Output Settings</b>"
+msgstr "स्वचालित पहचान"
 
 #: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr "सॉफ़्टवेयर वाल्यूम नियंत्रक का उपयोग"
+#, fuzzy
+msgid "Bit depth:"
+msgstr "बिट-दर:"
 
-#: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
+#: src/audacious/ui_preferences.c:155
+#, fuzzy
+msgid "Buffer size:"
+msgstr "बफ़र का आकार (केबी):"
 
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
+#: src/audacious/ui_preferences.c:157
+msgid "ms"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
-msgstr ""
+#: src/audacious/ui_preferences.c:158
+#, fuzzy
+msgid "Use software volume control (not recommended)"
+msgstr "सॉफ़्टवेयर वाल्यूम नियंत्रक का उपयोग"
 
 #: src/audacious/ui_preferences.c:160
-msgid "Amplify untagged files:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:164
 #, fuzzy
 msgid "<b>Replay Gain</b>"
 msgstr "<b>संचिकानाम</b>"
 
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:161
 #, fuzzy
 msgid "Enable Replay Gain"
 msgstr "रीप्लेगेन सक्रिय"
 
-#: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>संचिकानाम</b>"
-
-#: src/audacious/ui_preferences.c:168
-#, fuzzy
-msgid "Single track mode"
-msgstr "/ट्रैक के विवरणों को देखें"
-
-#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "एल्बम"
+#: src/audacious/ui_preferences.c:164
+msgid "Prevent clipping (recommended)"
+msgstr ""
 
-#: src/audacious/ui_preferences.c:172
+#: src/audacious/ui_preferences.c:166
 #, fuzzy
 msgid "<b>Adjust Levels</b>"
 msgstr "<b>माउस व्हील</b>"
 
-#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "एमपीईजी आडियो प्लग-इन संरचना"
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify all files:"
+msgstr ""
 
-#: src/audacious/ui_preferences.c:176
-#, fuzzy
-msgid "Enable clipping prevention"
-msgstr "क्लीपिंग रोकथाम सक्रिय"
+#: src/audacious/ui_preferences.c:169 src/audacious/ui_preferences.c:172
+msgid "dB"
+msgstr ""
 
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:170
+msgid "Amplify untagged files:"
+msgstr ""
+
+#: src/audacious/ui_preferences.c:175
 msgid "Proxy hostname:"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:176
 #, fuzzy
 msgid "Proxy port:"
 msgstr "प्रोक्सी"
 
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:179
 #, fuzzy
 msgid "Proxy username:"
 msgstr "उपयोगकर्ता का नाम:"
 
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:180
 #, fuzzy
 msgid "Proxy password:"
 msgstr "कूटशब्द:"
 
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:184
 #, fuzzy
 msgid "<b>Proxy Configuration</b>"
 msgstr "एमपीईजी आडियो प्लग-इन संरचना"
 
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:185
 msgid "Enable proxy usage"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:187
 #, fuzzy
 msgid "Use authentication with proxy"
 msgstr "प्रमाणीकरण का उपयोग"
 
-#: src/audacious/ui_preferences.c:197
+#: src/audacious/ui_preferences.c:189
 msgid ""
 "<span size=\"small\">Changing these settings will require a restart of "
 "Audacious.</span>"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
 msgid "Auto character encoding detector for:"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
 msgid "Fallback character encodings:"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
 msgid ""
 "List of character encodings used for fall back conversion of metadata. If "
 "automatic character encoding detector failed or has been disabled, encodings "
@@ -608,211 +581,201 @@ msgid ""
 "fall back conversion from these encodings to UTF-8 would be attempted."
 msgstr ""
 
-#: src/audacious/ui_preferences.c:213
+#: src/audacious/ui_preferences.c:205
 #, fuzzy
 msgid "<b>Behavior</b>"
 msgstr "बिट-दर:"
 
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:206
 msgid "Continue playback on startup"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:208
 msgid "Advance when the current song is deleted"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:218
+#: src/audacious/ui_preferences.c:210
 #, fuzzy
 msgid "Clear the playlist when opening files"
 msgstr "/सूची को क्रमानुसार लगायें/शीर्षक द्वारा"
 
-#: src/audacious/ui_preferences.c:220
+#: src/audacious/ui_preferences.c:212
 #, fuzzy
 msgid "Open files in a temporary playlist"
 msgstr "प्लेसूची को साफ़ नहीं करना"
 
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:214
 msgid "<b>Metadata</b>"
 msgstr "<b>मेटाडाटा</b>"
 
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:454
 msgid "Category"
 msgstr "वर्ग"
 
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:682
 #, fuzzy
 msgid "Popup Information Settings"
 msgstr "एमपीईजी आडियो प्लग-इन संरचना"
 
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:691
 #, fuzzy
 msgid "<b>Cover image retrieve</b>"
 msgstr "स्वचालित पहचान"
 
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:696
 msgid ""
 "While searching for the album's cover, Audacious looks for certain words in "
 "the filename. You can specify those words in the lists below, separated "
 "using commas."
 msgstr ""
 
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:713
 msgid "Exclude:"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:720
 #, fuzzy
 msgid "Include:"
 msgstr "ईन्डी"
 
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:737
 msgid "Recursively search for cover"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:747
 msgid "Search depth: "
 msgstr ""
 
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:761
 msgid "Use per-file cover"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:764
 #, fuzzy
 msgid "<b>Miscellaneous</b>"
 msgstr "<b>विविध (_M)</b>"
 
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:773
 msgid "Show Progress bar for the current track"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:783
 msgid "Delay until filepopup comes up: "
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1283
 #, fuzzy
 msgid "<b>Song Display</b>"
 msgstr "<b>गीत को दिखाना</b>"
 
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1292
 msgid "Show song numbers"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1303
 msgid "Show leading zeroes (02:00 instead of 2:00)"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1325
 msgid "Show information about titlestring format"
 msgstr "शीर्षकस्ट्रिंग प्रारूप के बारे में सूचना दिखाएँ"
 
-#: src/audacious/ui_preferences.c:1514
+#: src/audacious/ui_preferences.c:1339
 msgid "TITLE"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1515
+#: src/audacious/ui_preferences.c:1340
 msgid "ARTIST - TITLE"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1516
+#: src/audacious/ui_preferences.c:1341
 msgid "ARTIST - ALBUM - TITLE"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1517
+#: src/audacious/ui_preferences.c:1342
 msgid "ARTIST - ALBUM - TRACK. TITLE"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1518
+#: src/audacious/ui_preferences.c:1343
 msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1519
+#: src/audacious/ui_preferences.c:1344
 msgid "ALBUM - TITLE"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1520
+#: src/audacious/ui_preferences.c:1345
 #, fuzzy
 msgid "Custom"
 msgstr "कस्टम स्ट्रींग:"
 
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1354
 msgid "Custom string:"
 msgstr "कस्टम स्ट्रींग:"
 
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1361
 msgid "Title format:"
 msgstr "शीर्षक का प्रारूप:"
 
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1372
 #, fuzzy
 msgid "<b>Popup Information</b>"
 msgstr "एमपीईजी आडियो प्लग-इन संरचना"
 
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1387
 msgid "Show popup information for playlist entries"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1388
 msgid ""
 "Toggles popup information window for the pointed entry in the playlist. The "
 "window shows title of song, name of album, genre, year of publish, track "
 "number, track length, and artwork."
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1397
 msgid "Edit settings for popup information"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1698
+#: src/audacious/ui_preferences.c:1497
 #, fuzzy
-msgid "<b>Audio System</b>"
-msgstr "<b>प्रीसेट्स</b>"
+msgid "Output plugin:"
+msgstr "ओएसएस आउटपुट प्लग-इन"
 
-#: src/audacious/ui_preferences.c:1715
-#, fuzzy
-msgid "Buffer size:"
-msgstr "बफ़र का आकार (केबी):"
-
-#: src/audacious/ui_preferences.c:1734
-#, fuzzy
-msgid "Current output plugin:"
-msgstr "वर्तमान आउटपुट प्लग-इन (_C):"
-
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
 #, fuzzy
 msgid "Transport"
 msgstr "सभी अनुवादक"
 
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
 msgid "Input"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
 #, fuzzy
 msgid "Effect"
 msgstr "<b>सभी प्रभाव</b>"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
 #, fuzzy
 msgid "Visualization"
 msgstr "/कल्पना विधा"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
 msgid "General"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1597
 #, fuzzy
 msgid "Audacious Preferences"
 msgstr "BMP की वरीयतायें"
 
-#: src/audacious/util.c:161
+#: src/audacious/util.c:155
 #, fuzzy, c-format
 msgid "Could not create directory (%s): %s\n"
 msgstr "निर्देशिका (%s) का निर्माण करने में असफ़लता: %s"
 
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:264
 msgid "Position not found."
 msgstr ""
 
@@ -831,22 +794,24 @@ msgstr "स्टीरियो"
 
 #: src/libaudcore/tuple.c:689
 #, fuzzy, c-format
-msgid "%d channels"
-msgstr "अनेक चैनल:"
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] "अनेक चैनल:"
+msgstr[1] "अनेक चैनल:"
 
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/confirm.c:73
 #, c-format
 msgid ""
 "Are you sure you want to close %s?  If you do, any changes made since the "
 "playlist was exported will be lost."
 msgstr ""
 
-#: src/libaudgui/confirm.c:77
+#: src/libaudgui/confirm.c:86
 #, fuzzy
 msgid "_Don't show this message again"
 msgstr "इस चेतावनी को फ़िर कभी ना दिखाएँ"
 
-#: src/libaudgui/confirm.c:115
+#: src/libaudgui/confirm.c:124
 #, fuzzy
 msgid "Rename Playlist"
 msgstr "प्लेसूची को सुरक्षित करना"
@@ -917,12 +882,12 @@ msgstr "ईक्यूलाईजर"
 msgid "Preamp"
 msgstr "ड्रीम"
 
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:212
 #, fuzzy
 msgid "Track Number"
 msgstr "ट्रैक की संख्या"
 
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:214
 #, fuzzy
 msgid "Track Length"
 msgstr "ट्रैक की लंबाई:"
@@ -1168,6 +1133,29 @@ msgstr "%d किलोबाइट्स प्रति सेकण्ड"
 msgid "No info available for %s.\n"
 msgstr ""
 
+#: src/libaudgui/jump-to-time.c:75
+msgid "Jump to Time"
+msgstr "समय पर जाएँ"
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr ""
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Export Playlist"
+msgstr "प्लेसूची को लाना"
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Import Playlist"
+msgstr "प्लेसूची को लाना"
+
+#: src/libaudgui/playlists.c:71
+#, c-format
+msgid "Overwrite %s?"
+msgstr ""
+
 #: src/libaudgui/ui_about.c:71
 #, fuzzy
 msgid "About Audacious"
@@ -1234,21 +1222,21 @@ msgstr "/कतार को साफ़ करें"
 msgid "Close on Jump"
 msgstr "खोलने पर बन्द संवाद"
 
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:240
 #, fuzzy
 msgid "Playlist Manager"
 msgstr "/कोई अग्रिम प्लेसूची नहीं"
 
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:264
 msgid "Entries"
 msgstr ""
 
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:285
 #, fuzzy
 msgid "_Rename"
 msgstr "संचिकानाम"
 
-#: src/libaudgui/ui_playlist_manager.c:251
+#: src/libaudgui/ui_playlist_manager.c:309
 #, fuzzy
 msgid "_Close dialog on activating playlist"
 msgstr "खोलने पर बन्द संवाद"
@@ -1261,6 +1249,12 @@ msgstr ""
 msgid "Add URL"
 msgstr ""
 
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+
 #: src/libeggsmclient/eggdesktopfile.c:165
 msgid "File is not a valid .desktop file"
 msgstr ""
@@ -1270,25 +1264,25 @@ msgstr ""
 msgid "Unrecognized desktop file Version '%s'"
 msgstr "%s: ना पहचाना गया विकल्प `--%s'\n"
 
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:967
 #, fuzzy, c-format
 msgid "Starting %s"
 msgstr "इटैलियन:"
 
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1108
 msgid "Application does not accept documents on command line"
 msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1176
 #, fuzzy, c-format
 msgid "Unrecognized launch option: %d"
 msgstr "%s: ना पहचाना गया विकल्प `--%s'\n"
 
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1375
 msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
 msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1396
 msgid "Not a launchable item"
 msgstr ""
 
@@ -1321,6 +1315,38 @@ msgid "Show session management options"
 msgstr ""
 
 #, fuzzy
+#~ msgid "Replay Gain"
+#~ msgstr "रीप्लेगेन"
+
+#, fuzzy
+#~ msgid "<b>Bit Depth</b>"
+#~ msgstr "बिट-दर:"
+
+#, fuzzy
+#~ msgid "<b>Volume Control</b>"
+#~ msgstr "वाल्यूम नियंत्रक:"
+
+#, fuzzy
+#~ msgid "<b>Mode</b>"
+#~ msgstr "<b>संचिकानाम</b>"
+
+#, fuzzy
+#~ msgid "<b>Clipping Prevention</b>"
+#~ msgstr "एमपीईजी आडियो प्लग-इन संरचना"
+
+#, fuzzy
+#~ msgid "Enable clipping prevention"
+#~ msgstr "क्लीपिंग रोकथाम सक्रिय"
+
+#, fuzzy
+#~ msgid "<b>Audio System</b>"
+#~ msgstr "<b>प्रीसेट्स</b>"
+
+#, fuzzy
+#~ msgid "Current output plugin:"
+#~ msgstr "वर्तमान आउटपुट प्लग-इन (_C):"
+
+#, fuzzy
 #~ msgid "%s: Unable to open display, exiting.\n"
 #~ msgstr "BMP: डिसप्ले को खोलने में असमर्थ, बाहर निकल रहा है।"
 
@@ -1831,10 +1857,6 @@ msgstr ""
 #~ msgstr "प्रमाणीकरण का उपयोग"
 
 #, fuzzy
-#~ msgid "<b>Format Detection</b>"
-#~ msgstr "स्वचालित पहचान"
-
-#, fuzzy
 #~ msgid "<b>Sampling Rate Converter</b>"
 #~ msgstr "सैम्पल की दर:"
 
@@ -1863,9 +1885,6 @@ msgstr ""
 #~ msgid "Load metadata (tag information) from music files."
 #~ msgstr "संगीत संचिकाओं से मेटाडाटा (टैग सूचना) लाएँ।"
 
-#~ msgid "Jump to Time"
-#~ msgstr "समय पर जाएँ"
-
 #~ msgid "minutes:seconds"
 #~ msgstr "क्षण:पल"
 
@@ -3742,9 +3761,6 @@ msgstr ""
 #~ msgid "MPEG Level:"
 #~ msgstr "एमपीईजी स्तर:"
 
-#~ msgid "Bit rate:"
-#~ msgstr "बिट-दर:"
-
 #~ msgid "Sample rate:"
 #~ msgstr "सैम्पल की दर:"
 
@@ -3997,9 +4013,6 @@ msgstr ""
 #~ msgid " Close "
 #~ msgstr "/बन्द"
 
-#~ msgid "OSS Output Plugin"
-#~ msgstr "ओएसएस आउटपुट प्लग-इन"
-
 #~ msgid "About OSS Driver"
 #~ msgstr "ओएसएस चालक चालक के बारे में"
 
diff --git a/po/hr.po b/po/hr.po
index 9896601..df22fcf 100644
--- a/po/hr.po
+++ b/po/hr.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: hr\n"
 "Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
+"POT-Creation-Date: 2011-07-05 22:45+0200\n"
 "PO-Revision-Date: 2007-01-28 20:17+0100\n"
 "Last-Translator: \n"
 "Language-Team:  <en at li.org>\n"
@@ -16,6 +16,17 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: KBabel 1.11.4\n"
 
+#: src/audacious/adder.c:71
+msgid "Searching ..."
+msgstr ""
+
+#: src/audacious/adder.c:99
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] ""
+msgstr[1] ""
+
 #: src/audacious/chardet.c:37
 msgid "  (invalid UTF-8)"
 msgstr "  (neispravan UTF-8)"
@@ -103,113 +114,113 @@ msgstr "Rumunjski:"
 msgid "Finnish:"
 msgstr "Finski:"
 
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:220
 msgid "French:"
 msgstr "Francuski:"
 
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:226
 msgid "German:"
 msgstr "Njemački:"
 
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:233
 msgid "Georgian:"
 msgstr "Armenski:"
 
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:236
 msgid "Greek:"
 msgstr "Grčki:"
 
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:241
 msgid "Hindi:"
 msgstr "Indijski:"
 
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:244
 msgid "Hungarian:"
 msgstr "Mađarski:"
 
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:248
 msgid "Italian:"
 msgstr "Talijanski:"
 
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:252
 msgid "Japanese:"
 msgstr "Japanski:"
 
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:255
 msgid "Korean:"
 msgstr "Koreanski:"
 
-#: src/audacious/credits.c:256
+#: src/audacious/credits.c:258
 #, fuzzy
 msgid "Latvian:"
 msgstr "Rumunjski:"
 
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:261
 msgid "Lithuanian:"
 msgstr "Litvanski:"
 
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:265
 msgid "Macedonian:"
 msgstr "Makedonski:"
 
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:268
 msgid "Polish:"
 msgstr "Poljski:"
 
-#: src/audacious/credits.c:271
+#: src/audacious/credits.c:274
 #, fuzzy
 msgid "Portuguese:"
 msgstr "Brazilsko Portugalski:"
 
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:277
 msgid "Romanian:"
 msgstr "Rumunjski:"
 
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:281
 msgid "Russian:"
 msgstr "Ruski:"
 
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:285
 msgid "Serbian (Latin):"
 msgstr "Srpski (Latinica):"
 
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:288
 msgid "Serbian (Cyrillic):"
 msgstr "Srpski (Ćirilica):"
 
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:291
 msgid "Simplified Chinese:"
 msgstr "Pojednostavljeni Kineski:"
 
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:294
 msgid "Slovak:"
 msgstr "Slovenski:"
 
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:297
 msgid "Spanish:"
 msgstr "Å panski:"
 
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:304
 msgid "Swedish:"
 msgstr "Å vedski:"
 
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:307
 msgid "Traditional Chinese:"
 msgstr "Tradicionalni Kineski:"
 
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:312
 msgid "Turkish:"
 msgstr ""
 
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:316
 msgid "Ukrainian:"
 msgstr "Ukrajinski:"
 
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:319
 msgid "Welsh:"
 msgstr "Velšanski:"
 
-#: src/audacious/drct.c:254
+#: src/audacious/drct.c:256
 #, fuzzy
 msgid "Temporary Playlist"
 msgstr "Učitaj listu zvučnih zapisa"
@@ -219,90 +230,75 @@ msgstr "Učitaj listu zvučnih zapisa"
 msgid "Error importing Winamp EQF file '%s'"
 msgstr ""
 
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr ""
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/audacious/main.c:247
+#: src/audacious/main.c:256
 msgid "Skip backwards in playlist"
 msgstr "Skoči unazad u listi zvučnih zapisa"
 
-#: src/audacious/main.c:248
+#: src/audacious/main.c:257
 msgid "Start playing current playlist"
 msgstr "Pusti trenutnu listu zvučnih zapisa"
 
-#: src/audacious/main.c:249
+#: src/audacious/main.c:258
 msgid "Pause current song"
 msgstr "Pauziraj trenutni zvučni zapis"
 
-#: src/audacious/main.c:250
+#: src/audacious/main.c:259
 msgid "Stop current song"
 msgstr "Zaustavi trenutni zvučni zapis"
 
-#: src/audacious/main.c:251
+#: src/audacious/main.c:260
 msgid "Pause if playing, play otherwise"
 msgstr "Pauziraj ako svira, inače pusti"
 
-#: src/audacious/main.c:252
+#: src/audacious/main.c:261
 msgid "Skip forward in playlist"
 msgstr "Skoči unaprjed u listi zvučnih zapisa"
 
-#: src/audacious/main.c:253
+#: src/audacious/main.c:262
 #, fuzzy
 msgid "Display Jump to File dialog"
 msgstr "Prikaži \"Skoči na datoteku\" okvir"
 
-#: src/audacious/main.c:254
+#: src/audacious/main.c:263
 #, fuzzy
 msgid "Add files to the playlist"
 msgstr "Dodaje datoteke u listu zvučnih zapisa."
 
-#: src/audacious/main.c:255
+#: src/audacious/main.c:264
 #, fuzzy
 msgid "Add new files to a temporary playlist"
 msgstr "Dodaje datoteke u listu zvučnih zapisa."
 
-#: src/audacious/main.c:256
+#: src/audacious/main.c:265
 #, fuzzy
 msgid "Display the main window"
 msgstr "Prikaži glavni prozor"
 
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr ""
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:266
 #, fuzzy
 msgid "Show version"
 msgstr "Prikaži player"
 
-#: src/audacious/main.c:259
+#: src/audacious/main.c:267
 msgid "Print debugging messages"
 msgstr ""
 
-#: src/audacious/main.c:260
+#: src/audacious/main.c:268
 msgid "FILE..."
 msgstr ""
 
-#: src/audacious/main.c:272
+#: src/audacious/main.c:280
 msgid "- play multimedia files"
 msgstr ""
 
-#: src/audacious/main.c:282
+#: src/audacious/main.c:290
 #, c-format
 msgid ""
 "%s: %s\n"
 "Try `%s --help' for more information.\n"
 msgstr ""
 
-#: src/audacious/main.c:395
+#: src/audacious/main.c:407
 msgid ""
 "Audacious seems to be already running but is not responding.  You can start "
 "another instance of the program, but please be warned that this can cause "
@@ -310,264 +306,241 @@ msgid ""
 "message.  Press OK to start Audacious or Cancel to quit."
 msgstr ""
 
-#: src/audacious/main.c:558
+#: src/audacious/main.c:572
 msgid "Audacious"
 msgstr "Audacious"
 
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:381
 #, c-format
 msgid "No decoder found for %s."
 msgstr ""
 
-#: src/audacious/playback.c:519
+#: src/audacious/playback.c:531
 msgid "Buffering ..."
 msgstr ""
 
-#: src/audacious/playlist-new.c:288
+#: src/audacious/playlist-new.c:303
 #, fuzzy
 msgid "Untitled Playlist"
 msgstr "Nova lista zvučnih zapisa"
 
-#: src/audacious/ui_preferences.c:88
+#: src/audacious/ui_preferences.c:87
 msgid "Audio"
 msgstr "Audio"
 
-#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:88
 msgid "Network"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:89 src/audacious/ui_preferences.c:1556
 msgid "Playlist"
 msgstr "Lista zvučnih zapisa"
 
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:90
 msgid "Plugins"
 msgstr "Dodaci"
 
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:204
 msgid "Artist"
 msgstr "Izvođač"
 
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:97 src/libaudgui/infopopup.c:206
 msgid "Album"
 msgstr "Album"
 
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:202
+#: src/libaudgui/ui_playlist_manager.c:263
 msgid "Title"
 msgstr "Naslov"
 
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:99
 msgid "Tracknumber"
 msgstr "Broj zvučnog zapisa"
 
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:208
 msgid "Genre"
 msgstr "Žanr"
 
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:101
 msgid "Filename"
 msgstr "Ime datoteke"
 
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:102
 msgid "Filepath"
 msgstr "Putanja datoteke"
 
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:103
 msgid "Date"
 msgstr "Datum"
 
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:104 src/libaudgui/infopopup.c:210
 msgid "Year"
 msgstr "Godina"
 
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:105
 msgid "Comment"
 msgstr "Komentar"
 
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:106
 msgid "Codec"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:107
 #, fuzzy
 msgid "Quality"
 msgstr "_Izađi"
 
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:112
 msgid "None"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:115
+#: src/audacious/ui_preferences.c:113
 #, fuzzy
 msgid "Japanese"
 msgstr "Japanski:"
 
-#: src/audacious/ui_preferences.c:116
+#: src/audacious/ui_preferences.c:114
 #, fuzzy
 msgid "Taiwanese"
 msgstr "Japanski:"
 
-#: src/audacious/ui_preferences.c:117
+#: src/audacious/ui_preferences.c:115
 #, fuzzy
 msgid "Chinese"
 msgstr "Linije"
 
-#: src/audacious/ui_preferences.c:118
+#: src/audacious/ui_preferences.c:116
 #, fuzzy
 msgid "Korean"
 msgstr "Koreanski:"
 
-#: src/audacious/ui_preferences.c:119
+#: src/audacious/ui_preferences.c:117
 #, fuzzy
 msgid "Russian"
 msgstr "Ruski:"
 
-#: src/audacious/ui_preferences.c:120
+#: src/audacious/ui_preferences.c:118
 #, fuzzy
 msgid "Greek"
 msgstr "Grčki:"
 
-#: src/audacious/ui_preferences.c:121
+#: src/audacious/ui_preferences.c:119
 msgid "Hebrew"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:122
+#: src/audacious/ui_preferences.c:120
 msgid "Turkish"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:123
+#: src/audacious/ui_preferences.c:121
 msgid "Arabic"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:124
+#: src/audacious/ui_preferences.c:122
 #, fuzzy
 msgid "Polish"
 msgstr "Poljski:"
 
-#: src/audacious/ui_preferences.c:125
+#: src/audacious/ui_preferences.c:123
 msgid "Baltic"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:126
+#: src/audacious/ui_preferences.c:124
 msgid "Universal"
 msgstr ""
 
 #: src/audacious/ui_preferences.c:146
 #, fuzzy
-msgid "<b>Bit Depth</b>"
-msgstr "<b>Ime datoteke</b>"
+msgid "Single track mode"
+msgstr "Prikaži detalje zvučnog zapisa"
 
 #: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
+#, fuzzy
+msgid "Album mode"
+msgstr "Ime albuma: "
 
-#: src/audacious/ui_preferences.c:151
+#: src/audacious/ui_preferences.c:150
 #, fuzzy
-msgid "<b>Volume Control</b>"
-msgstr "<b>Kotačić miša</b>"
+msgid "<b>Output Settings</b>"
+msgstr "<b>Prepoznavanje formata</b>"
 
 #: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr ""
+#, fuzzy
+msgid "Bit depth:"
+msgstr "<b>Ime datoteke</b>"
 
-#: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
+#: src/audacious/ui_preferences.c:155
+msgid "Buffer size:"
+msgstr "Veličina buffer-a:"
 
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
+#: src/audacious/ui_preferences.c:157
+msgid "ms"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
+#: src/audacious/ui_preferences.c:158
+msgid "Use software volume control (not recommended)"
 msgstr ""
 
 #: src/audacious/ui_preferences.c:160
-msgid "Amplify untagged files:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:164
 #, fuzzy
 msgid "<b>Replay Gain</b>"
 msgstr "<b>Konfiguracija proxy servera</b>"
 
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:161
 #, fuzzy
 msgid "Enable Replay Gain"
 msgstr "Uključi upotrebu proxy servera"
 
-#: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>Meta-podaci</b>"
-
-#: src/audacious/ui_preferences.c:168
-#, fuzzy
-msgid "Single track mode"
-msgstr "Prikaži detalje zvučnog zapisa"
-
-#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "Ime albuma: "
+#: src/audacious/ui_preferences.c:164
+msgid "Prevent clipping (recommended)"
+msgstr ""
 
-#: src/audacious/ui_preferences.c:172
+#: src/audacious/ui_preferences.c:166
 #, fuzzy
 msgid "<b>Adjust Levels</b>"
 msgstr "<b>Kotačić miša</b>"
 
-#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "<b>Iskačuće informacije</b>"
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify all files:"
+msgstr ""
 
-#: src/audacious/ui_preferences.c:176
-msgid "Enable clipping prevention"
+#: src/audacious/ui_preferences.c:169 src/audacious/ui_preferences.c:172
+msgid "dB"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:170
+msgid "Amplify untagged files:"
+msgstr ""
+
+#: src/audacious/ui_preferences.c:175
 msgid "Proxy hostname:"
 msgstr "Ime proxy servera:"
 
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:176
 msgid "Proxy port:"
 msgstr "Proxy port:"
 
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:179
 msgid "Proxy username:"
 msgstr "Proxy korisničko ime:"
 
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:180
 msgid "Proxy password:"
 msgstr "Proxy lozinka:"
 
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:184
 msgid "<b>Proxy Configuration</b>"
 msgstr "<b>Konfiguracija proxy servera</b>"
 
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:185
 msgid "Enable proxy usage"
 msgstr "Uključi upotrebu proxy servera"
 
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:187
 msgid "Use authentication with proxy"
 msgstr "Koristi autentifikaciju sa proxy-jem."
 
-#: src/audacious/ui_preferences.c:197
+#: src/audacious/ui_preferences.c:189
 msgid ""
 "<span size=\"small\">Changing these settings will require a restart of "
 "Audacious.</span>"
@@ -575,15 +548,15 @@ msgstr ""
 "<span size=\"small\">Mijenjanje ovih podešavanja će zahtevati ponovno "
 "pokretanje Audacious-a.</span>"
 
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
 msgid "Auto character encoding detector for:"
 msgstr "Auto-prepozavanje kodiranja znakova za:"
 
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
 msgid "Fallback character encodings:"
 msgstr "Rezervna kodna stranica:"
 
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
 msgid ""
 "List of character encodings used for fall back conversion of metadata. If "
 "automatic character encoding detector failed or has been disabled, encodings "
@@ -595,47 +568,47 @@ msgstr ""
 "isključeno, kodiranje u ovoj listi će biti kandidat za kodiranje meta-"
 "podataka, i rezervna konverzija iz ovih kodiranja u UTF-8 će biti pokušana."
 
-#: src/audacious/ui_preferences.c:213
+#: src/audacious/ui_preferences.c:205
 #, fuzzy
 msgid "<b>Behavior</b>"
 msgstr "<b>Ime datoteke</b>"
 
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:206
 msgid "Continue playback on startup"
 msgstr "Nastavi reprodukciju na početku"
 
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:208
 msgid "Advance when the current song is deleted"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:218
+#: src/audacious/ui_preferences.c:210
 #, fuzzy
 msgid "Clear the playlist when opening files"
 msgstr "Napravi novu listu od nađenih stavki"
 
-#: src/audacious/ui_preferences.c:220
+#: src/audacious/ui_preferences.c:212
 #, fuzzy
 msgid "Open files in a temporary playlist"
 msgstr "Dodaje datoteke u listu zvučnih zapisa."
 
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:214
 msgid "<b>Metadata</b>"
 msgstr "<b>Meta-podaci</b>"
 
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:454
 msgid "Category"
 msgstr "Kategorija"
 
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:682
 msgid "Popup Information Settings"
 msgstr "<b>Podešavanja iskačućih informacija</b>"
 
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:691
 #, fuzzy
 msgid "<b>Cover image retrieve</b>"
 msgstr "<b>Prepoznavanje formata</b>"
 
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:696
 msgid ""
 "While searching for the album's cover, Audacious looks for certain words in "
 "the filename. You can specify those words in the lists below, separated "
@@ -644,101 +617,101 @@ msgstr ""
 "Dok traži naslovne slike albuma, Audacious traži određene riječi u imenu "
 "datoteke. Možete navesti te riječi dolje u listi, razdvojene zarezima."
 
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:713
 msgid "Exclude:"
 msgstr "Isključi:"
 
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:720
 msgid "Include:"
 msgstr "Uključi:"
 
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:737
 msgid "Recursively search for cover"
 msgstr "Rekurzivno traži naslovnu sliku"
 
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:747
 msgid "Search depth: "
 msgstr "Dubina pretrage: "
 
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:761
 msgid "Use per-file cover"
 msgstr "Koristi jednu naslovnu sliku po datoteci"
 
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:764
 #, fuzzy
 msgid "<b>Miscellaneous</b>"
 msgstr "<b>_Ostalo</b>"
 
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:773
 msgid "Show Progress bar for the current track"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:783
 msgid "Delay until filepopup comes up: "
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1283
 msgid "<b>Song Display</b>"
 msgstr "<b>Prikaz pjesme</b>"
 
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1292
 msgid "Show song numbers"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1303
 msgid "Show leading zeroes (02:00 instead of 2:00)"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1325
 msgid "Show information about titlestring format"
 msgstr "Prikaži informacije o formatu znakovnog niza naslova"
 
-#: src/audacious/ui_preferences.c:1514
+#: src/audacious/ui_preferences.c:1339
 msgid "TITLE"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1515
+#: src/audacious/ui_preferences.c:1340
 msgid "ARTIST - TITLE"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1516
+#: src/audacious/ui_preferences.c:1341
 msgid "ARTIST - ALBUM - TITLE"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1517
+#: src/audacious/ui_preferences.c:1342
 msgid "ARTIST - ALBUM - TRACK. TITLE"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1518
+#: src/audacious/ui_preferences.c:1343
 msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1519
+#: src/audacious/ui_preferences.c:1344
 msgid "ALBUM - TITLE"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1520
+#: src/audacious/ui_preferences.c:1345
 #, fuzzy
 msgid "Custom"
 msgstr "Vlastiti znakovni niz:"
 
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1354
 msgid "Custom string:"
 msgstr "Vlastiti znakovni niz:"
 
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1361
 msgid "Title format:"
 msgstr "Format naslova:"
 
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1372
 msgid "<b>Popup Information</b>"
 msgstr "<b>Iskačuće informacije</b>"
 
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1387
 msgid "Show popup information for playlist entries"
 msgstr "Prikaži iskačuće informacije za stavke u listi zvučnih zapisa"
 
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1388
 msgid ""
 "Toggles popup information window for the pointed entry in the playlist. The "
 "window shows title of song, name of album, genre, year of publish, track "
@@ -748,54 +721,47 @@ msgstr ""
 "listi zvučnih zapisa. Prozor prikazuje ime pjesme, ime albuma, žanr, godinu "
 "izdavanja, broj zvučnog zapisa, dužinu zvučnog zapisa i sliku."
 
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1397
 msgid "Edit settings for popup information"
 msgstr "Uredi podešavanja za iskačuće prozore"
 
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>Audio sistem</b>"
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "Veličina buffer-a:"
-
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
-msgstr "Trenutni izlazni plug-in:"
+#: src/audacious/ui_preferences.c:1497
+#, fuzzy
+msgid "Output plugin:"
+msgstr "Ulazni dodatak: %s"
 
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
 #, fuzzy
 msgid "Transport"
 msgstr "Prevoditelji"
 
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
 msgid "Input"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
 #, fuzzy
 msgid "Effect"
 msgstr "<b>Efekti</b>"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
 msgid "Visualization"
 msgstr "Vizualizacija"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
 msgid "General"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1597
 msgid "Audacious Preferences"
 msgstr "Audacious podešavanja"
 
-#: src/audacious/util.c:161
+#: src/audacious/util.c:155
 #, c-format
 msgid "Could not create directory (%s): %s\n"
 msgstr "Nije moguće napraviti direktorij (%s): %s\n"
 
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:264
 msgid "Position not found."
 msgstr ""
 
@@ -814,22 +780,24 @@ msgstr "stereo"
 
 #: src/libaudcore/tuple.c:689
 #, c-format
-msgid "%d channels"
-msgstr ""
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] ""
+msgstr[1] ""
 
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/confirm.c:73
 #, c-format
 msgid ""
 "Are you sure you want to close %s?  If you do, any changes made since the "
 "playlist was exported will be lost."
 msgstr ""
 
-#: src/libaudgui/confirm.c:77
+#: src/libaudgui/confirm.c:86
 #, fuzzy
 msgid "_Don't show this message again"
 msgstr "Više ne prikazuj ovo upozorenje"
 
-#: src/libaudgui/confirm.c:115
+#: src/libaudgui/confirm.c:124
 #, fuzzy
 msgid "Rename Playlist"
 msgstr "Sačuvaj listu zvučnih zapisa"
@@ -891,12 +859,12 @@ msgstr "Equalizer"
 msgid "Preamp"
 msgstr ""
 
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:212
 #, fuzzy
 msgid "Track Number"
 msgstr "Broj zvučnog zapisa"
 
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:214
 #, fuzzy
 msgid "Track Length"
 msgstr "Dužina zvučnog zapisa:"
@@ -1133,6 +1101,29 @@ msgstr ""
 msgid "No info available for %s.\n"
 msgstr ""
 
+#: src/libaudgui/jump-to-time.c:75
+msgid "Jump to Time"
+msgstr "Skoči na vrijeme"
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr ""
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Export Playlist"
+msgstr "Učitaj listu zvučnih zapisa"
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Import Playlist"
+msgstr "Učitaj listu zvučnih zapisa"
+
+#: src/libaudgui/playlists.c:71
+#, c-format
+msgid "Overwrite %s?"
+msgstr ""
+
 #: src/libaudgui/ui_about.c:71
 msgid "About Audacious"
 msgstr "O Audacious-u"
@@ -1195,19 +1186,19 @@ msgstr "Obriši A-B"
 msgid "Close on Jump"
 msgstr "Zatvori okvir klikom na Otvori"
 
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:240
 msgid "Playlist Manager"
 msgstr "Manager liste zvučnih zapisa"
 
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:264
 msgid "Entries"
 msgstr "Stavke"
 
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:285
 msgid "_Rename"
 msgstr "_Preimenuj"
 
-#: src/libaudgui/ui_playlist_manager.c:251
+#: src/libaudgui/ui_playlist_manager.c:309
 #, fuzzy
 msgid "_Close dialog on activating playlist"
 msgstr "Zatvori okvir klikom na Otvori"
@@ -1220,6 +1211,12 @@ msgstr ""
 msgid "Add URL"
 msgstr ""
 
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+
 #: src/libeggsmclient/eggdesktopfile.c:165
 msgid "File is not a valid .desktop file"
 msgstr ""
@@ -1229,25 +1226,25 @@ msgstr ""
 msgid "Unrecognized desktop file Version '%s'"
 msgstr "%s: nepoznata opcija `--%s'\n"
 
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:967
 #, c-format
 msgid "Starting %s"
 msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1108
 msgid "Application does not accept documents on command line"
 msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1176
 #, fuzzy, c-format
 msgid "Unrecognized launch option: %d"
 msgstr "%s: nepoznata opcija `--%s'\n"
 
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1375
 msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
 msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1396
 msgid "Not a launchable item"
 msgstr ""
 
@@ -1282,6 +1279,24 @@ msgid "Show session management options"
 msgstr "Prikaži dekoracije programa za upravljanje prozorima"
 
 #, fuzzy
+#~ msgid "<b>Volume Control</b>"
+#~ msgstr "<b>Kotačić miša</b>"
+
+#, fuzzy
+#~ msgid "<b>Mode</b>"
+#~ msgstr "<b>Meta-podaci</b>"
+
+#, fuzzy
+#~ msgid "<b>Clipping Prevention</b>"
+#~ msgstr "<b>Iskačuće informacije</b>"
+
+#~ msgid "<b>Audio System</b>"
+#~ msgstr "<b>Audio sistem</b>"
+
+#~ msgid "Current output plugin:"
+#~ msgstr "Trenutni izlazni plug-in:"
+
+#, fuzzy
 #~ msgid "%s: Unable to open display, exiting.\n"
 #~ msgstr "audacious: Nije moguće otvoriti prikaz, izlazim.\n"
 
@@ -1504,9 +1519,6 @@ msgstr "Prikaži dekoracije programa za upravljanje prozorima"
 #~ msgid "No input plugin recognized this file"
 #~ msgstr "Nijedan ulazni dodatak nije prepoznao ovu datoteku"
 
-#~ msgid "Input plugin: %s"
-#~ msgstr "Ulazni dodatak: %s"
-
 #~ msgid ""
 #~ "<b><big>No output plugin selected.</big></b>\n"
 #~ "You have not selected an output plugin."
@@ -1517,9 +1529,6 @@ msgstr "Prikaži dekoracije programa za upravljanje prozorima"
 #~ msgid "Connectivity"
 #~ msgstr "Povezanost"
 
-#~ msgid "<b>Format Detection</b>"
-#~ msgstr "<b>Prepoznavanje formata</b>"
-
 #~ msgid "Detect file formats by extension."
 #~ msgstr "Prepoznaj format datoteke na osnovu oznake tipa."
 
@@ -1563,9 +1572,6 @@ msgstr "Prikaži dekoracije programa za upravljanje prozorima"
 #~ msgid "Load metadata (tag information) from music files."
 #~ msgstr "Učitaj meta-podatke (informacije u tag-ovima) iz zvučnih zapisa."
 
-#~ msgid "Jump to Time"
-#~ msgstr "Skoči na vrijeme"
-
 #~ msgid "minutes:seconds"
 #~ msgstr "minute:sekunde"
 
diff --git a/po/hu.po b/po/hu.po
index ff7ab77..e88328d 100644
--- a/po/hu.po
+++ b/po/hu.po
@@ -1,289 +1,294 @@
-# Hungarian translation of audacious.
-# Copyright (C) 2006 Free Software Foundation, Inc.
-# This file is distributed under the same license as the audacious package.
+# Hungarian translation for Audacious
+# Copyright (C) Audacious translators
+# This file is distributed under the same license as the Audacious package.
+#
+# Translators:
 # Laszlo Dvornik <dvornik at gnome.hu>, 2006.
 # Peter Polonkai <polesz at nedudu.hu>, 2010.
-#
+# Péter Polonkai <polesz at nedudu.hu>, 2011, 2012.
 msgid ""
 msgstr ""
-"Project-Id-Version: audacious 1.2.1\n"
-"Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
-"PO-Revision-Date: 2010-08-21 11:09+0100\n"
-"Last-Translator: Peter Polonkai <polesz at nedudu.hu>\n"
-"Language-Team: Hungarian <dvornik at gnome.hu>\n"
-"Language: hu\n"
+"Project-Id-Version: Audacious\n"
+"Report-Msgid-Bugs-To: http://redmine.audacious-media-player.org/\n"
+"POT-Creation-Date: 2012-01-11 08:54-0500\n"
+"PO-Revision-Date: 2012-01-12 06:38+0000\n"
+"Last-Translator: Péter Polonkai <polesz at nedudu.hu>\n"
+"Language-Team: Hungarian\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Language: hu\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+
+#: src/audacious/adder.c:77
+msgid "Searching ..."
+msgstr "Keresés ..."
+
+#: src/audacious/adder.c:113
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] "%d fájl található"
+msgstr[1] "%d fájl található"
 
-#: src/audacious/chardet.c:37
+#: src/audacious/chardet.c:39
 msgid "  (invalid UTF-8)"
 msgstr "  (érvénytelen UTF-8)"
 
-#: src/audacious/credits.c:35
+#: src/audacious/credits.c:37
 msgid "Core developers:"
 msgstr "Fő fejlesztők:"
 
-#: src/audacious/credits.c:49
+#: src/audacious/credits.c:51
 msgid "Graphics:"
 msgstr "Grafika:"
 
-#: src/audacious/credits.c:54
+#: src/audacious/credits.c:56
 msgid "Default skin:"
 msgstr "Alapértelmezett bőr:"
 
-#: src/audacious/credits.c:60
+#: src/audacious/credits.c:62
 msgid "Plugin development:"
 msgstr "Bővítmény fejlesztés:"
 
-#: src/audacious/credits.c:83
+#: src/audacious/credits.c:85
 msgid "Patch authors:"
 msgstr "Patch készítők:"
 
-#: src/audacious/credits.c:126
+#: src/audacious/credits.c:131
 msgid "1.x developers:"
 msgstr "1.x fejlesztői:"
 
-#: src/audacious/credits.c:148
+#: src/audacious/credits.c:153
 msgid "BMP Developers:"
 msgstr "BMP-fejlesztők:"
 
-#: src/audacious/credits.c:180
+#: src/audacious/credits.c:185
 msgid "Belarusian:"
-msgstr "Belarusz"
+msgstr "Belorusz"
 
-#: src/audacious/credits.c:183
+#: src/audacious/credits.c:188
 msgid "Basque:"
 msgstr "Baszk:"
 
-#: src/audacious/credits.c:186
+#: src/audacious/credits.c:191
 msgid "Brazilian Portuguese:"
 msgstr "Brazil portugál:"
 
-#: src/audacious/credits.c:190
+#: src/audacious/credits.c:196
 msgid "Breton:"
 msgstr "Breton:"
 
-#: src/audacious/credits.c:193
+#: src/audacious/credits.c:199
 msgid "Bulgarian:"
-msgstr "Bulgár"
+msgstr "Bolgár"
 
-#: src/audacious/credits.c:196
+#: src/audacious/credits.c:202
 msgid "Catalan:"
 msgstr "Katalán"
 
-#: src/audacious/credits.c:199
+#: src/audacious/credits.c:206
 msgid "Chinese:"
 msgstr "Kínai:"
 
-#: src/audacious/credits.c:202
+#: src/audacious/credits.c:209
 msgid "Croatian:"
 msgstr "Horvát"
 
-#: src/audacious/credits.c:205
+#: src/audacious/credits.c:212
 msgid "Czech:"
 msgstr "Cseh:"
 
-#: src/audacious/credits.c:208
+#: src/audacious/credits.c:215
 msgid "Dutch:"
 msgstr "Holland:"
 
-#: src/audacious/credits.c:212
+#: src/audacious/credits.c:219
 msgid "Estonian:"
 msgstr "Észt"
 
-#: src/audacious/credits.c:215
+#: src/audacious/credits.c:222
 msgid "Finnish:"
 msgstr "Finn:"
 
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:227
 msgid "French:"
 msgstr "Francia:"
 
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:233
 msgid "German:"
 msgstr "Német:"
 
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:240
 msgid "Georgian:"
 msgstr "Grúz"
 
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:243
 msgid "Greek:"
 msgstr "Görög:"
 
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:248
 msgid "Hindi:"
 msgstr "Hindi:"
 
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:251
 msgid "Hungarian:"
 msgstr "Magyar:"
 
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:255
 msgid "Italian:"
 msgstr "Olasz:"
 
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:260
 msgid "Japanese:"
 msgstr "Japán:"
 
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:263
 msgid "Korean:"
 msgstr "Koreai:"
 
-#: src/audacious/credits.c:256
-#, fuzzy
+#: src/audacious/credits.c:266
 msgid "Latvian:"
-msgstr "Horvát"
+msgstr "Lett:"
 
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:269
 msgid "Lithuanian:"
 msgstr "Litván:"
 
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:274
 msgid "Macedonian:"
 msgstr "Macedón:"
 
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:277
+msgid "Mexican Spanish:"
+msgstr "Mexikói spanyol:"
+
+#: src/audacious/credits.c:280
 msgid "Polish:"
 msgstr "Lengyel:"
 
-#: src/audacious/credits.c:271
-#, fuzzy
+#: src/audacious/credits.c:287
 msgid "Portuguese:"
-msgstr "Portugál"
+msgstr "Portugál:"
 
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:290
 msgid "Romanian:"
 msgstr "Román:"
 
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:294
 msgid "Russian:"
 msgstr "Orosz:"
 
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:298
 msgid "Serbian (Latin):"
 msgstr "Szerb (Latin):"
 
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:301
 msgid "Serbian (Cyrillic):"
 msgstr "Szerb (Cirill):"
 
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:305
 msgid "Simplified Chinese:"
 msgstr "Egyszerűsített kínai:"
 
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:308
 msgid "Slovak:"
 msgstr "Szlovák:"
 
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:312
 msgid "Spanish:"
 msgstr "Spanyol:"
 
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:320
 msgid "Swedish:"
 msgstr "Svéd:"
 
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:323
 msgid "Traditional Chinese:"
 msgstr "Hagyományos kínai:"
 
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:329
 msgid "Turkish:"
 msgstr "Török:"
 
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:333
 msgid "Ukrainian:"
 msgstr "Ukrán:"
 
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:338
+msgid "Vietnamese:"
+msgstr "Vietnami:"
+
+#: src/audacious/credits.c:341
 msgid "Welsh:"
 msgstr "Walesi:"
 
-#: src/audacious/drct.c:254
-msgid "Temporary Playlist"
-msgstr "Ideglenes lejátszólista"
-
-#: src/audacious/equalizer_preset.c:186
+#: src/audacious/equalizer_preset.c:180
 #, c-format
 msgid "Error importing Winamp EQF file '%s'"
 msgstr "Hiba a Winamp EQF fájl '%s' importálásakor"
 
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr "Keresés ..."
-
-#: src/audacious/folder-add.c:89
-#, fuzzy, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] "%d fájlt találtam"
-msgstr[1] "%d fájlt találtam"
-
-#: src/audacious/main.c:247
+#: src/audacious/main.c:243
 msgid "Skip backwards in playlist"
 msgstr "Visszalépés a lejátszólistában"
 
-#: src/audacious/main.c:248
+#: src/audacious/main.c:244
 msgid "Start playing current playlist"
 msgstr "Jelenlegi lejátszólista lejátszásának elkezdése"
 
-#: src/audacious/main.c:249
+#: src/audacious/main.c:245
 msgid "Pause current song"
 msgstr "Jelenlegi szám szüneteltetése"
 
-#: src/audacious/main.c:250
+#: src/audacious/main.c:246
 msgid "Stop current song"
 msgstr "Jelenlegi szám leállítása"
 
-#: src/audacious/main.c:251
+#: src/audacious/main.c:247
 msgid "Pause if playing, play otherwise"
 msgstr "Lejátszás esetén szüneteltetés, különben lejátszás"
 
-#: src/audacious/main.c:252
+#: src/audacious/main.c:248
 msgid "Skip forward in playlist"
 msgstr "Előrelépés a lejátszólistában"
 
-#: src/audacious/main.c:253
+#: src/audacious/main.c:249
 msgid "Display Jump to File dialog"
 msgstr "Ugrás fájlra párbeszédablak megjelenítése"
 
-#: src/audacious/main.c:254
+#: src/audacious/main.c:250
 msgid "Add files to the playlist"
 msgstr "Fájlok hozzáadása a lejátszó listához"
 
-#: src/audacious/main.c:255
+#: src/audacious/main.c:251
 msgid "Add new files to a temporary playlist"
 msgstr "Új fájlok hozzáadása az ideiglenes lejátszólistához"
 
-#: src/audacious/main.c:256
+#: src/audacious/main.c:252
 msgid "Display the main window"
 msgstr "Főablak megjelenítése"
 
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr "Minden Audacious ablak megnyitása"
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:253
 msgid "Show version"
 msgstr "Verzió mutatása"
 
-#: src/audacious/main.c:259
+#: src/audacious/main.c:254
 msgid "Print debugging messages"
-msgstr ""
+msgstr "Hibakereső üzenetek kiírása"
+
+#: src/audacious/main.c:255
+msgid "Headless mode (beta)"
+msgstr "Headless mód (béta)"
 
-#: src/audacious/main.c:260
+#: src/audacious/main.c:256
 msgid "FILE..."
 msgstr "Fájl..."
 
-#: src/audacious/main.c:272
+#: src/audacious/main.c:268
 msgid "- play multimedia files"
 msgstr "- multimédia fájlok lejátszása"
 
-#: src/audacious/main.c:282
+#: src/audacious/main.c:278
 #, c-format
 msgid ""
 "%s: %s\n"
@@ -292,336 +297,310 @@ msgstr ""
 "%s: %s\n"
 "Próbája a `%s --help' további információkért.\n"
 
-#: src/audacious/main.c:395
-msgid ""
-"Audacious seems to be already running but is not responding.  You can start "
-"another instance of the program, but please be warned that this can cause "
-"data loss.  If Audacious is not running, you can safely ignore this "
-"message.  Press OK to start Audacious or Cancel to quit."
-msgstr ""
-
-#: src/audacious/main.c:558
+#: src/audacious/main.c:573
 msgid "Audacious"
 msgstr "Audacious"
 
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:307
 #, c-format
 msgid "No decoder found for %s."
 msgstr "Dekóder nem található ehhez %s."
 
-#: src/audacious/playback.c:519
-msgid "Buffering ..."
-msgstr "Pufferelés ..."
+#: src/audacious/playlist-files.c:53
+#, c-format
+msgid "Cannot %s %s: unsupported file extension."
+msgstr "Nem lehetséges %s %s: nem támogatott fájl kiterjesztés."
+
+#: src/audacious/playlist-files.c:54
+msgid "save"
+msgstr "mentés"
 
-#: src/audacious/playlist-new.c:288
-msgid "Untitled Playlist"
-msgstr "Névtelen lejátszólista"
+#: src/audacious/playlist-files.c:54
+msgid "load"
+msgstr "betöltés'"
 
-#: src/audacious/ui_preferences.c:88
+#: src/audacious/playlist-new.c:131
+msgid "New Playlist"
+msgstr "Új lejátszólista"
+
+#: src/audacious/playlist-new.c:132
+msgid "Now Playing"
+msgstr "Most játszott"
+
+#: src/audacious/playlist-new.c:1630
+msgid ""
+"The playlist cannot be sorted because metadata scanning is still in progress"
+" (or has been disabled)."
+msgstr ""
+"A lejátszási listát nem lehet rendezni, mert a metaadatok keresése még "
+"folyamatban van (vagy le van tiltva)."
+
+#: src/audacious/ui_preferences.c:85
 msgid "Audio"
 msgstr "Hang"
 
-#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
-msgstr "Lejátszási erősítés"
-
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:86
 msgid "Network"
 msgstr "Hálózat"
 
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:87 src/audacious/ui_preferences.c:1603
 msgid "Playlist"
 msgstr "Lejátszólista"
 
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:88
 msgid "Plugins"
 msgstr "Bővítmények"
 
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:94 src/libaudgui/infopopup.c:199
 msgid "Artist"
 msgstr "Előadó"
 
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:95 src/libaudgui/infopopup.c:201
 msgid "Album"
 msgstr "Album"
 
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:197
+#: src/libaudgui/ui_playlist_manager.c:279
 msgid "Title"
 msgstr "Cím"
 
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:97
 msgid "Tracknumber"
 msgstr "Szám sorszáma"
 
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:203
 msgid "Genre"
 msgstr "Műfaj"
 
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:99
 msgid "Filename"
 msgstr "Fájlnév"
 
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:100
 msgid "Filepath"
 msgstr "Fájlútvonal"
 
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:101
 msgid "Date"
 msgstr "Dátum"
 
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:205
 msgid "Year"
 msgstr "Év"
 
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:103
 msgid "Comment"
 msgstr "Megjegyzés"
 
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:104
 msgid "Codec"
 msgstr "Kodek"
 
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:105
 msgid "Quality"
 msgstr "Minőség"
 
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:111
 msgid "None"
 msgstr "Nincs"
 
+#: src/audacious/ui_preferences.c:112
+msgid "Arabic"
+msgstr "Arab"
+
+#: src/audacious/ui_preferences.c:113
+msgid "Baltic"
+msgstr "Balti"
+
+#: src/audacious/ui_preferences.c:114
+msgid "Chinese"
+msgstr "Kínai"
+
 #: src/audacious/ui_preferences.c:115
-msgid "Japanese"
-msgstr "Japán"
+msgid "Greek"
+msgstr "Görög"
 
 #: src/audacious/ui_preferences.c:116
-msgid "Taiwanese"
-msgstr "Tajvani"
+msgid "Hebrew"
+msgstr "Héber"
 
 #: src/audacious/ui_preferences.c:117
-msgid "Chinese"
-msgstr "Kínai"
+msgid "Japanese"
+msgstr "Japán"
 
 #: src/audacious/ui_preferences.c:118
 msgid "Korean"
 msgstr "Koreai"
 
 #: src/audacious/ui_preferences.c:119
-msgid "Russian"
-msgstr "Orosz"
+msgid "Polish"
+msgstr "Lengyel"
 
 #: src/audacious/ui_preferences.c:120
-msgid "Greek"
-msgstr "Görög"
+msgid "Russian"
+msgstr "Orosz"
 
 #: src/audacious/ui_preferences.c:121
-msgid "Hebrew"
-msgstr "Héber"
+msgid "Taiwanese"
+msgstr "Tajvani"
 
 #: src/audacious/ui_preferences.c:122
 msgid "Turkish"
 msgstr "Török"
 
-#: src/audacious/ui_preferences.c:123
-msgid "Arabic"
-msgstr "Arab"
-
-#: src/audacious/ui_preferences.c:124
-msgid "Polish"
-msgstr "Lengyel"
-
-#: src/audacious/ui_preferences.c:125
-msgid "Baltic"
-msgstr "Balti"
-
-#: src/audacious/ui_preferences.c:126
-msgid "Universal"
-msgstr "Univerzális"
-
-#: src/audacious/ui_preferences.c:146
-msgid "<b>Bit Depth</b>"
-msgstr "<b>Bit mélység</b>"
+#: src/audacious/ui_preferences.c:144
+msgid "Album mode"
+msgstr "Album mód"
 
 #: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr "Kimeneti bit mélység:"
-
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
-"Minden folyam erre a bit mélységre lesz konvertálva.\n"
-"A maximálisan támogatott bit mélység függ a\n"
-"hangkártyától és a kimeneti bővítménytől."
+msgid "<b>Output Settings</b>"
+msgstr "<b>Kimeneti beállítások</b>"
 
-#: src/audacious/ui_preferences.c:151
-msgid "<b>Volume Control</b>"
-msgstr "<b>Hangerő szabályzó</b>"
+#: src/audacious/ui_preferences.c:149
+msgid "Bit depth:"
+msgstr "Bit mélység:"
 
 #: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr "Szoftveres hangerőszabályzó használata"
+msgid "Buffer size:"
+msgstr "Pufferméret:"
 
 #: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
-"Szoftveres hangerő-szabályozás használata. Ez hasznos lehet olyan "
-"helyzetekben, ahol az audio-rendszer nem támogatja a lejátszás hangerejének "
-"a szabályozását."
-
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
-msgstr ""
+msgid "ms"
+msgstr "ms"
 
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
-msgstr "dB"
-
-#: src/audacious/ui_preferences.c:160
-#, fuzzy
-msgid "Amplify untagged files:"
-msgstr "- multimédia fájlok lejátszása"
+#: src/audacious/ui_preferences.c:155
+msgid "Use software volume control (not recommended)"
+msgstr "Szoftveres hangerő-szabályozás használata (nem ajánlott)"
 
-#: src/audacious/ui_preferences.c:164
-#, fuzzy
+#: src/audacious/ui_preferences.c:157
 msgid "<b>Replay Gain</b>"
-msgstr "<b>Lejátszási erősítési mód</b>"
+msgstr "<b>Replay Gain</b>"
 
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:158
 msgid "Enable Replay Gain"
 msgstr "Lejátszási erősítés engedélyezése"
 
-#: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>Metaadat</b>"
-
-#: src/audacious/ui_preferences.c:168
-#, fuzzy
-msgid "Single track mode"
-msgstr "/Szám részleteinek megtekintése"
-
-#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "Album"
+#: src/audacious/ui_preferences.c:161
+msgid "Prevent clipping (recommended)"
+msgstr "Vágás megakadályozása (ajánlott)"
 
-#: src/audacious/ui_preferences.c:172
-#, fuzzy
+#: src/audacious/ui_preferences.c:163
 msgid "<b>Adjust Levels</b>"
-msgstr "<b>Egérgörgő</b>"
+msgstr "<b>Szintek állítása</b>"
 
-#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "<b>Felbukkanó információ</b>"
+#: src/audacious/ui_preferences.c:164
+msgid "Amplify all files:"
+msgstr "Amplify all files:"
 
-#: src/audacious/ui_preferences.c:176
-#, fuzzy
-msgid "Enable clipping prevention"
-msgstr "Engedélyezi a csúcs információ túllépés megelőzését"
+#: src/audacious/ui_preferences.c:166 src/audacious/ui_preferences.c:169
+msgid "dB"
+msgstr "dB"
 
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify untagged files:"
+msgstr "Címkézetlen fájlok kiegészítése:"
+
+#: src/audacious/ui_preferences.c:172
 msgid "Proxy hostname:"
 msgstr "Proxy gépnév:"
 
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:173
 msgid "Proxy port:"
 msgstr "Proxy port:"
 
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:176
 msgid "Proxy username:"
 msgstr "Proxy felhasználónév:"
 
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:177
 msgid "Proxy password:"
 msgstr "Proxy jelszó:"
 
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:181
 msgid "<b>Proxy Configuration</b>"
 msgstr "<b>Proxy beállítása</b>"
 
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:182
 msgid "Enable proxy usage"
 msgstr "Proxyhasználat bekapcsolása"
 
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:185
 msgid "Use authentication with proxy"
 msgstr "Hitelesítés használata proxyval"
 
-#: src/audacious/ui_preferences.c:197
-msgid ""
-"<span size=\"small\">Changing these settings will require a restart of "
-"Audacious.</span>"
-msgstr ""
-"<span size=\"small\">Ezen beállítások megváltoztatásához újra kell indítani "
-"az Audacioust.</span>"
-
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
 msgid "Auto character encoding detector for:"
 msgstr "Automatikus karakterkódolás felismerés ennél:"
 
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:198
 msgid "Fallback character encodings:"
 msgstr "Tartalék karakterkódolások:"
 
-#: src/audacious/ui_preferences.c:209
-msgid ""
-"List of character encodings used for fall back conversion of metadata. If "
-"automatic character encoding detector failed or has been disabled, encodings "
-"in this list would be treated as candidates of the encoding of metadata, and "
-"fall back conversion from these encodings to UTF-8 would be attempted."
-msgstr ""
-"A metaadat tartalék átalakításához használt karakterkódolások listája. Ha az "
-"automatikus karakterkódolás felismerés sikertelen vagy ki lett kapcsolva, az "
-"ezen listán szereplő kódolások kerülnek feldolgozásra a metaadat kódolásának "
-"jelöltjeiként, és a tartalék átalakítás UTF-8-ba ezekből a kódolásokból lesz "
-"megkísérelve."
-
-#: src/audacious/ui_preferences.c:213
-#, fuzzy
+#: src/audacious/ui_preferences.c:202
 msgid "<b>Behavior</b>"
-msgstr "<b>Bit mélység</b>"
+msgstr "<b>Viselkedés</b>"
 
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:203
 msgid "Continue playback on startup"
 msgstr "Lejátszás folytatása induláskor"
 
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:205
 msgid "Advance when the current song is deleted"
-msgstr ""
+msgstr "Ajánlott amikor a jelenlegi zeneszám törlésre kerül"
 
-#: src/audacious/ui_preferences.c:218
-#, fuzzy
+#: src/audacious/ui_preferences.c:207
 msgid "Clear the playlist when opening files"
-msgstr "Az aktuális lejátszólista törlése új fájlok megnyitásakor"
+msgstr "Lejátszólista törlése fájlok megnyitásakor"
 
-#: src/audacious/ui_preferences.c:220
-#, fuzzy
+#: src/audacious/ui_preferences.c:209
 msgid "Open files in a temporary playlist"
-msgstr "Új fájlok hozzáadása az ideiglenes lejátszólistához"
+msgstr "Fájlok megnyitása az ideiglenes lejátszólistában"
 
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:211
 msgid "<b>Metadata</b>"
 msgstr "<b>Metaadat</b>"
 
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:212
+msgid "Do not load metadata for songs until played"
+msgstr "Ne töltse be a metaadatokat amíg játssza a dalt"
+
+#: src/audacious/ui_preferences.c:230
+msgid "TITLE"
+msgstr "CÍM"
+
+#: src/audacious/ui_preferences.c:231
+msgid "ARTIST - TITLE"
+msgstr "ELŐADÓ - CÍM"
+
+#: src/audacious/ui_preferences.c:232
+msgid "ARTIST - ALBUM - TITLE"
+msgstr "ELŐADÓ - ALBUM - CÍM"
+
+#: src/audacious/ui_preferences.c:233
+msgid "ARTIST - ALBUM - TRACK. TITLE"
+msgstr "ELŐADÓ - ALBUM - SÁV. CÍM"
+
+#: src/audacious/ui_preferences.c:234
+msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
+msgstr "ELŐADÓ [ ALBUM] - SÁV. CÍM"
+
+#: src/audacious/ui_preferences.c:235
+msgid "ALBUM - TITLE"
+msgstr "ALBUM - CÍM"
+
+#: src/audacious/ui_preferences.c:556
 msgid "Category"
 msgstr "Kategória"
 
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:780
 msgid "Popup Information Settings"
 msgstr "Felbukkanó információ beállításai"
 
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:789
 msgid "<b>Cover image retrieve</b>"
 msgstr "<b>Borítókép letöltése</b>"
 
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:794
 msgid ""
 "While searching for the album's cover, Audacious looks for certain words in "
 "the filename. You can specify those words in the lists below, separated "
@@ -631,99 +610,75 @@ msgstr ""
 "fájlnévben. Megadhatja ezeket a szavakat az alábbi listában, vesszővel "
 "elválasztva."
 
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:811
 msgid "Exclude:"
 msgstr "Kihagyja:"
 
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:818
 msgid "Include:"
 msgstr "Beletartozzon:"
 
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:835
 msgid "Recursively search for cover"
 msgstr "Borító keresése rekurzívan"
 
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:845
 msgid "Search depth: "
 msgstr "Keresési mélység: "
 
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:859
 msgid "Use per-file cover"
 msgstr "Fájlonkénti borító használata"
 
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:862
 msgid "<b>Miscellaneous</b>"
 msgstr "<b>Egyéb</b>"
 
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:871
 msgid "Show Progress bar for the current track"
 msgstr "Folyamatjelző mutatása az aktuális számhoz"
 
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:881
 msgid "Delay until filepopup comes up: "
 msgstr "Késleltetés a file popup ablak megnyitásakor:"
 
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1309
+msgid "Custom"
+msgstr "Egyéni"
+
+#: src/audacious/ui_preferences.c:1352
 msgid "<b>Song Display</b>"
 msgstr "<b>Szám megjelenítése</b>"
 
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1361
 msgid "Show song numbers"
 msgstr "A dalok számának mutatása"
 
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1372
 msgid "Show leading zeroes (02:00 instead of 2:00)"
-msgstr ""
+msgstr "Vezető nullák mutatása (2:00 helyett 02:00)"
 
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1394
 msgid "Show information about titlestring format"
 msgstr "Információ megjelenítése a cím-karakterlánc formátumáról"
 
-#: src/audacious/ui_preferences.c:1514
-msgid "TITLE"
-msgstr "CÍM"
-
-#: src/audacious/ui_preferences.c:1515
-msgid "ARTIST - TITLE"
-msgstr "ELŐADÓ - CÍM"
-
-#: src/audacious/ui_preferences.c:1516
-msgid "ARTIST - ALBUM - TITLE"
-msgstr "ELŐADÓ - ALBUM - CÍM"
-
-#: src/audacious/ui_preferences.c:1517
-msgid "ARTIST - ALBUM - TRACK. TITLE"
-msgstr "ELŐADÓ - ALBUM - SÁV. CÍM"
-
-#: src/audacious/ui_preferences.c:1518
-msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
-msgstr "ELŐADÓ [ ALBUM] - SÁV. CÍM"
-
-#: src/audacious/ui_preferences.c:1519
-msgid "ALBUM - TITLE"
-msgstr "ALBUM - CÍM"
-
-#: src/audacious/ui_preferences.c:1520
-msgid "Custom"
-msgstr "Egyéni"
-
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1410
 msgid "Custom string:"
 msgstr "Egyéni karakterlánc:"
 
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1417
 msgid "Title format:"
 msgstr "Címformátum:"
 
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1428
 msgid "<b>Popup Information</b>"
 msgstr "<b>Felbukkanó információ</b>"
 
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1443
 msgid "Show popup information for playlist entries"
 msgstr "Felbukkanó információ megjelenítése a lejátszólista bejegyzéseknél"
 
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1444
 msgid ""
 "Toggles popup information window for the pointed entry in the playlist. The "
 "window shows title of song, name of album, genre, year of publish, track "
@@ -734,77 +689,84 @@ msgstr ""
 "műfaját, a megjelenés évét, a szám sorszámát, a szám hosszát és az "
 "albumborítót."
 
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1455
 msgid "Edit settings for popup information"
 msgstr "Felbukkanó információ beállításainak szerkesztése"
 
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>Hangrendszer</b>"
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "Pufferméret:"
+#: src/audacious/ui_preferences.c:1544
+msgid "Output plugin:"
+msgstr "Kimeneti bővítmény:"
 
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
-msgstr "Jelenlegi kimeneti bővítmény:"
-
-#: src/audacious/ui_preferences.c:1790
-#, fuzzy
+#: src/audacious/ui_preferences.c:1603
 msgid "Transport"
-msgstr "Fordítók"
+msgstr "Átvitel"
 
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1603
 msgid "Input"
-msgstr ""
+msgstr "Bemenet"
 
-#: src/audacious/ui_preferences.c:1791
-#, fuzzy
+#: src/audacious/ui_preferences.c:1604
 msgid "Effect"
-msgstr "<b>Effektusok</b>"
+msgstr "Effekt"
 
-#: src/audacious/ui_preferences.c:1791
-#, fuzzy
+#: src/audacious/ui_preferences.c:1604
 msgid "Visualization"
-msgstr "/K_ijelzési mód"
+msgstr "Megjelenítés"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1604
 msgid "General"
-msgstr ""
+msgstr "Általános"
 
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1644
 msgid "Audacious Preferences"
 msgstr "Audacious beállításai"
 
-#: src/audacious/util.c:161
+#: src/audacious/util.c:120
 #, c-format
 msgid "Could not create directory (%s): %s\n"
 msgstr "Nem lehet létrehozni a könyvtárat (%s): %s\n"
 
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:273
 msgid "Position not found."
 msgstr "Pozíció nem található."
 
-#: src/audtool/handlers_vitals.c:64
+#: src/audtool/handlers_vitals.c:63
 msgid "No song playing."
 msgstr "Nincs lejátszott dal."
 
-#: src/libaudcore/tuple.c:685
+#: src/libaudcore/audstrings.c:199
+#, c-format
+msgid "Audio CD, track %s"
+msgstr "Audio CD, sáv %s"
+
+#: src/libaudcore/tuple.c:536
 msgid "Mono"
-msgstr ""
+msgstr "Monó"
 
-#: src/libaudcore/tuple.c:687
-#, fuzzy
+#: src/libaudcore/tuple.c:538
 msgid "Stereo"
-msgstr "sztereó"
+msgstr "Sztereó"
 
-#: src/libaudcore/tuple.c:689
+#: src/libaudcore/tuple.c:540
 #, c-format
-msgid "%d channels"
-msgstr ""
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] "%d csatorna"
+msgstr[1] "%d csatorna"
+
+#: src/libaudgui/about.c:52 src/libaudgui/about.c:115
+msgid "Credits"
+msgstr "Köszönet"
+
+#: src/libaudgui/about.c:52
+msgid "Translators"
+msgstr "Fordítók"
 
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/about.c:91
+msgid "About Audacious"
+msgstr "Audacious névjegye"
+
+#: src/libaudgui/confirm.c:76
 #, c-format
 msgid ""
 "Are you sure you want to close %s?  If you do, any changes made since the "
@@ -813,419 +775,435 @@ msgstr ""
 "Valóban be akarja zárni ezt a fájlt %s? Ha igen, akkor bármilyen változás "
 "történt a lejátszólistán az el fog veszni."
 
-#: src/libaudgui/confirm.c:77
+#: src/libaudgui/confirm.c:89
 msgid "_Don't show this message again"
 msgstr "_Ne mutassa többé ezt a figyelmeztetést"
 
-#: src/libaudgui/confirm.c:115
-#, fuzzy
+#: src/libaudgui/confirm.c:126
 msgid "Rename Playlist"
-msgstr "Lejátszólista mentése"
+msgstr "Lejátszólista átnevezése"
 
-#: src/libaudgui/effects-menu.c:76
+#: src/libaudgui/effects-menu.c:74
 msgid "settings ..."
 msgstr "beállítások ..."
 
-#: src/libaudgui/equalizer.c:68
+#: src/libaudgui/equalizer.c:51
 msgid "_Enable"
 msgstr "_Engedélyezve"
 
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:123
 msgid "31 Hz"
 msgstr "31 Hz"
 
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:123
 msgid "63 Hz"
 msgstr "63 Hz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
 msgid "125 Hz"
 msgstr "125 Hz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
 msgid "250 Hz"
 msgstr "250 Hz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
 msgid "500 Hz"
 msgstr "500 Hz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
 msgid "1 kHz"
 msgstr "1 kHz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
 msgid "2 kHz"
 msgstr "2 kHz"
 
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:125
 msgid "4 kHz"
 msgstr "4 kHz"
 
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:125
 msgid "8 kHz"
 msgstr "8 kHz"
 
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:125
 msgid "16 kHz"
 msgstr "16 kHz"
 
-#: src/libaudgui/equalizer.c:147
+#: src/libaudgui/equalizer.c:130
 msgid "Equalizer"
 msgstr "Equalizer"
 
-#: src/libaudgui/equalizer.c:163
+#: src/libaudgui/equalizer.c:146
 msgid "Preamp"
 msgstr "Preamp"
 
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:207
 msgid "Track Number"
 msgstr "Szám sorszáma"
 
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:209
 msgid "Track Length"
 msgstr "Szám hossza"
 
-#: src/libaudgui/infowin.c:77
+#: src/libaudgui/infowin.c:75
 msgid "Acid Jazz"
 msgstr "Acid Jazz"
 
-#: src/libaudgui/infowin.c:78
-#, fuzzy
+#: src/libaudgui/infowin.c:76
 msgid "Acid Rock"
-msgstr "Kemény Rock"
+msgstr "Acid rock"
 
-#: src/libaudgui/infowin.c:79
+#: src/libaudgui/infowin.c:77
 msgid "Ambient"
 msgstr "Ambient"
 
-#: src/libaudgui/infowin.c:80
-#, fuzzy
+#: src/libaudgui/infowin.c:78
 msgid "Bebop"
-msgstr "Bebob"
+msgstr "Bebop"
 
-#: src/libaudgui/infowin.c:81
+#: src/libaudgui/infowin.c:79
 msgid "Bluegrass"
 msgstr "Bluegrass"
 
-#: src/libaudgui/infowin.c:82
+#: src/libaudgui/infowin.c:80
 msgid "Blues"
 msgstr "Blues"
 
-#: src/libaudgui/infowin.c:83
+#: src/libaudgui/infowin.c:81
 msgid "Chamber Music"
 msgstr "Chamber Music"
 
-#: src/libaudgui/infowin.c:84
+#: src/libaudgui/infowin.c:82
 msgid "Classical"
 msgstr "Klasszikus"
 
-#: src/libaudgui/infowin.c:85
+#: src/libaudgui/infowin.c:83
 msgid "Country"
 msgstr "Country"
 
-#: src/libaudgui/infowin.c:86
+#: src/libaudgui/infowin.c:84
 msgid "Death Metal"
 msgstr "Death Metal"
 
-#: src/libaudgui/infowin.c:87
+#: src/libaudgui/infowin.c:85
 msgid "Disco"
 msgstr "Diszkó"
 
-#: src/libaudgui/infowin.c:88
+#: src/libaudgui/infowin.c:86
 msgid "Easy Listening"
 msgstr "Easy Listening"
 
-#: src/libaudgui/infowin.c:89
+#: src/libaudgui/infowin.c:87
 msgid "Folk"
 msgstr "Folk"
 
-#: src/libaudgui/infowin.c:90
+#: src/libaudgui/infowin.c:88
 msgid "Funk"
 msgstr "Funk"
 
-#: src/libaudgui/infowin.c:91
+#: src/libaudgui/infowin.c:89
 msgid "Gangsta Rap"
 msgstr "Gengszter Rap"
 
-#: src/libaudgui/infowin.c:92
+#: src/libaudgui/infowin.c:90
 msgid "Gospel"
 msgstr "Gospel"
 
-#: src/libaudgui/infowin.c:93
+#: src/libaudgui/infowin.c:91
 msgid "Grunge"
 msgstr "Grunge"
 
-#: src/libaudgui/infowin.c:94
+#: src/libaudgui/infowin.c:92
 msgid "Hard Rock"
 msgstr "Kemény Rock"
 
-#: src/libaudgui/infowin.c:95
+#: src/libaudgui/infowin.c:93
 msgid "Heavy Metal"
 msgstr "Heavy Metal"
 
-#: src/libaudgui/infowin.c:96
-#, fuzzy
+#: src/libaudgui/infowin.c:94
 msgid "Hip-hop"
-msgstr "Hip-Hop"
+msgstr "Hip-hop"
 
-#: src/libaudgui/infowin.c:97
+#: src/libaudgui/infowin.c:95
 msgid "House"
 msgstr "House"
 
-#: src/libaudgui/infowin.c:98
+#: src/libaudgui/infowin.c:96
 msgid "Jazz"
 msgstr "Jazz"
 
-#: src/libaudgui/infowin.c:99
+#: src/libaudgui/infowin.c:97
 msgid "Jungle"
 msgstr "Jungle"
 
-#: src/libaudgui/infowin.c:100
+#: src/libaudgui/infowin.c:98
 msgid "Metal"
 msgstr "Metal"
 
-#: src/libaudgui/infowin.c:101
+#: src/libaudgui/infowin.c:99
 msgid "New Age"
 msgstr "New Age"
 
-#: src/libaudgui/infowin.c:102
+#: src/libaudgui/infowin.c:100
 msgid "New Wave"
 msgstr "Új Hullám"
 
-#: src/libaudgui/infowin.c:103
+#: src/libaudgui/infowin.c:101
 msgid "Noise"
 msgstr "Noise"
 
-#: src/libaudgui/infowin.c:104
+#: src/libaudgui/infowin.c:102
 msgid "Pop"
 msgstr "Pop"
 
-#: src/libaudgui/infowin.c:105
+#: src/libaudgui/infowin.c:103
 msgid "Punk Rock"
 msgstr "Punk Rock"
 
-#: src/libaudgui/infowin.c:106
+#: src/libaudgui/infowin.c:104
 msgid "Rap"
 msgstr "Rap"
 
-#: src/libaudgui/infowin.c:107
+#: src/libaudgui/infowin.c:105
 msgid "Reggae"
 msgstr "Reggae"
 
-#: src/libaudgui/infowin.c:108
+#: src/libaudgui/infowin.c:106
 msgid "Rock"
 msgstr "Rock"
 
-#: src/libaudgui/infowin.c:109
-#, fuzzy
+#: src/libaudgui/infowin.c:107
 msgid "Rock and Roll"
-msgstr "Rock & Roll"
+msgstr "Rock and Roll"
 
-#: src/libaudgui/infowin.c:110
+#: src/libaudgui/infowin.c:108
 msgid "Rhythm and Blues"
-msgstr ""
+msgstr "Rhythm and Blues"
 
-#: src/libaudgui/infowin.c:111
+#: src/libaudgui/infowin.c:109
 msgid "Ska"
 msgstr "Ska"
 
-#: src/libaudgui/infowin.c:112
+#: src/libaudgui/infowin.c:110
 msgid "Soul"
 msgstr "Soul"
 
-#: src/libaudgui/infowin.c:113
+#: src/libaudgui/infowin.c:111
 msgid "Swing"
 msgstr "Szving"
 
-#: src/libaudgui/infowin.c:114
+#: src/libaudgui/infowin.c:112
 msgid "Techno"
 msgstr "Techno"
 
-#: src/libaudgui/infowin.c:115
-#, fuzzy
+#: src/libaudgui/infowin.c:113
 msgid "Trip-hop"
-msgstr "Trip-Hop"
+msgstr "Trip-hop"
 
-#: src/libaudgui/infowin.c:175 src/libaudgui/infowin.c:361
-#: src/libaudgui/infowin.c:364 src/libaudgui/infowin.c:367
+#: src/libaudgui/infowin.c:177 src/libaudgui/infowin.c:363
+#: src/libaudgui/infowin.c:366 src/libaudgui/infowin.c:369
 msgid "<span size=\"small\">n/a</span>"
 msgstr "<span size=\"small\">n/a</span>"
 
-#: src/libaudgui/infowin.c:265
+#: src/libaudgui/infowin.c:267
 msgid "Metadata updated successfully"
 msgstr "Metaadat frissítés sikeres"
 
-#: src/libaudgui/infowin.c:270
+#: src/libaudgui/infowin.c:272
 msgid "Metadata updating failed"
 msgstr "Metaadat frissítés sikertelen"
 
-#: src/libaudgui/infowin.c:318
+#: src/libaudgui/infowin.c:320
 msgid "Track Information"
 msgstr "Száminformáció"
 
-#: src/libaudgui/infowin.c:350
+#: src/libaudgui/infowin.c:352
 msgid "<span size=\"small\">Format:</span>"
 msgstr "<span size=\"small\">Formátum:</span>"
 
-#: src/libaudgui/infowin.c:354
+#: src/libaudgui/infowin.c:356
 msgid "<span size=\"small\">Quality:</span>"
 msgstr "<span size=\"small\">Minőség:</span>"
 
-#: src/libaudgui/infowin.c:357
+#: src/libaudgui/infowin.c:359
 msgid "<span size=\"small\">Bitrate:</span>"
 msgstr "<span size=\"small\">Bitráta:</span>"
 
-#: src/libaudgui/infowin.c:387
+#: src/libaudgui/infowin.c:389
 msgid "<span size=\"small\">Title</span>"
 msgstr "<span size=\"small\">Cím</span>"
 
-#: src/libaudgui/infowin.c:399
+#: src/libaudgui/infowin.c:401
 msgid "<span size=\"small\">Artist</span>"
 msgstr "<span size=\"small\">Előadó</span>"
 
-#: src/libaudgui/infowin.c:411
+#: src/libaudgui/infowin.c:413
 msgid "<span size=\"small\">Album</span>"
 msgstr "<span size=\"small\">Album</span>"
 
-#: src/libaudgui/infowin.c:423
+#: src/libaudgui/infowin.c:425
 msgid "<span size=\"small\">Comment</span>"
 msgstr "<span size=\"small\">Megjegyzés</span>"
 
-#: src/libaudgui/infowin.c:435
+#: src/libaudgui/infowin.c:437
 msgid "<span size=\"small\">Genre</span>"
 msgstr "<span size=\"small\">Műfaj</span>"
 
-#: src/libaudgui/infowin.c:456
+#: src/libaudgui/infowin.c:458
 msgid "<span size=\"small\">Year</span>"
 msgstr "<span size=\"small\">Év</span>"
 
-#: src/libaudgui/infowin.c:467
+#: src/libaudgui/infowin.c:469
 msgid "<span size=\"small\">Track Number</span>"
 msgstr "<span size=\"small\">Szám sorszáma</span>"
 
-#: src/libaudgui/infowin.c:549
+#: src/libaudgui/infowin.c:548
 #, c-format
 msgid "%d kb/s"
 msgstr "%d kb/s"
 
-#: src/libaudgui/infowin.c:579
+#: src/libaudgui/infowin.c:575
 #, c-format
 msgid "No info available for %s.\n"
 msgstr "Nincs ehhez információ %s.\n"
 
-#: src/libaudgui/ui_about.c:71
-msgid "About Audacious"
-msgstr "Audacious névjegye"
+#: src/libaudgui/jump-to-time.c:72
+msgid "Jump to Time"
+msgstr "Ugrás időpontra"
 
-#: src/libaudgui/ui_about.c:93 src/libaudgui/ui_credits.c:122
-msgid "Credits"
-msgstr "Köszönet"
+#: src/libaudgui/jump-to-time.c:87
+msgid "mm:ss"
+msgstr "mm:ss"
 
-#: src/libaudgui/ui_credits.c:126
-msgid "Translators"
-msgstr "Fordítók"
+#: src/libaudgui/playlists.c:33
+msgid "Export Playlist"
+msgstr "Lejátszólista exportálása"
+
+#: src/libaudgui/playlists.c:33
+msgid "Import Playlist"
+msgstr "Lejátszólista importálása"
 
-#: src/libaudgui/ui_fileopener.c:108
+#: src/libaudgui/playlists.c:66
+#, c-format
+msgid "Overwrite %s?"
+msgstr "Felülírja %s?"
+
+#: src/libaudgui/queue-manager.c:196
+msgid "Queue Manager"
+msgstr "Várakozási sor menedzser"
+
+#: src/libaudgui/ui_fileopener.c:109
 msgid "Open Files"
 msgstr "Fájlok megnyitása"
 
-#: src/libaudgui/ui_fileopener.c:108
+#: src/libaudgui/ui_fileopener.c:109
 msgid "Add Files"
 msgstr "Fájlok hozzáadása"
 
-#: src/libaudgui/ui_fileopener.c:110
+#: src/libaudgui/ui_fileopener.c:111
 msgid "Close dialog on Open"
 msgstr "Párbeszédablak bezárása megnyitás után"
 
-#: src/libaudgui/ui_fileopener.c:110
+#: src/libaudgui/ui_fileopener.c:111
 msgid "Close dialog on Add"
 msgstr "Párbeszédablak bezárása hozzáadás után"
 
-#: src/libaudgui/ui_jumptotrack.c:133
-msgid "Un_queue"
-msgstr "_Kiszedés a sorból"
-
-#: src/libaudgui/ui_jumptotrack.c:135 src/libaudgui/ui_jumptotrack.c:512
+#: src/libaudgui/ui_jumptotrack.c:109 src/libaudgui/ui_jumptotrack.c:117
+#: src/libaudgui/ui_jumptotrack.c:326
 msgid "_Queue"
 msgstr "_Sorba állítás"
 
-#: src/libaudgui/ui_jumptotrack.c:399
-msgid "Jump to Track"
-msgstr "Ugrás számra"
+#: src/libaudgui/ui_jumptotrack.c:115
+msgid "Un_queue"
+msgstr "_Kiszedés a sorból"
 
-#: src/libaudgui/ui_jumptotrack.c:442
+#: src/libaudgui/ui_jumptotrack.c:258
+msgid "Jump to Song"
+msgstr "Ugrás a számra"
+
+#: src/libaudgui/ui_jumptotrack.c:281
 msgid "Filter: "
 msgstr "Szűrő: "
 
-#: src/libaudgui/ui_jumptotrack.c:443
+#: src/libaudgui/ui_jumptotrack.c:282
 msgid "_Filter:"
 msgstr "_Szűrő: "
 
-#: src/libaudgui/ui_jumptotrack.c:461
+#: src/libaudgui/ui_jumptotrack.c:292
 msgid "Remember"
 msgstr "Megjegyzés"
 
-#: src/libaudgui/ui_jumptotrack.c:470
+#: src/libaudgui/ui_jumptotrack.c:299
 msgid "Clea_r"
 msgstr "Tö_rlés"
 
-#: src/libaudgui/ui_jumptotrack.c:504
+#: src/libaudgui/ui_jumptotrack.c:319
 msgid "Close on Jump"
 msgstr "Bezárás ugrás után"
 
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:253
 msgid "Playlist Manager"
 msgstr "Lejátszólista kezelő"
 
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:280
 msgid "Entries"
 msgstr "Elemek"
 
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:301
 msgid "_Rename"
 msgstr "Át_nevezés"
 
-#: src/libaudgui/ui_playlist_manager.c:251
+#: src/libaudgui/ui_playlist_manager.c:325
 msgid "_Close dialog on activating playlist"
 msgstr "_Párbeszédablak bezárása a lejátszólista aktíválása után"
 
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:48
 msgid "Open URL"
 msgstr "URL megnyitása"
 
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:48
 msgid "Add URL"
 msgstr "URL hozzáadása"
 
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+"\n"
+"(További üzenetek el vannak rejtve.)"
+
 #: src/libeggsmclient/eggdesktopfile.c:165
 msgid "File is not a valid .desktop file"
 msgstr "A fájl nem valós .desktop fájl"
 
-#: src/libeggsmclient/eggdesktopfile.c:188
+#: src/libeggsmclient/eggdesktopfile.c:191
 #, c-format
 msgid "Unrecognized desktop file Version '%s'"
 msgstr "Ismeretlen desktop fájl verzió '%s'"
 
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:974
 #, c-format
 msgid "Starting %s"
 msgstr "Indítás %s"
 
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1116
 msgid "Application does not accept documents on command line"
 msgstr "Az alkalmazás nem fog el dokumentumokat a parancssorban"
 
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1184
 #, c-format
 msgid "Unrecognized launch option: %d"
 msgstr "Ismeretlen futtatási opció: %d"
 
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1391
 msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
 msgstr "Nem adja át a dokumentum URI a 'Type=Link' desktop értéket"
 
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1412
 msgid "Not a launchable item"
 msgstr "Nincs futtatható elem"
 
@@ -1250,1986 +1228,11 @@ msgid "ID"
 msgstr "ID"
 
 #: src/libeggsmclient/eggsmclient.c:253
-#, fuzzy
 msgid "Session management options:"
-msgstr "Munkamenet-kezelő opciók"
+msgstr "Munkamenet kezelési lehetőségek:"
 
 #: src/libeggsmclient/eggsmclient.c:254
-#, fuzzy
 msgid "Show session management options"
-msgstr "Munkamenet-kezelő opciók mutatása"
-
-#~ msgid "%s: Unable to open display, exiting.\n"
-#~ msgstr "%s Képernyő megnyitása sikertelen, kilépés.\n"
-
-#~ msgid "Preamp:"
-#~ msgstr "Preamp:"
-
-#~ msgid "Default gain:"
-#~ msgstr "Alapértelmezett nyereség:"
-
-#~ msgid "This gain will be used if file doesn't contain Replay Gain metadata."
-#~ msgstr ""
-#~ "Ez az erősítési érték lesz használva ha a fájl nem tartalmaz lejátszási "
-#~ "erősítési metaadatot."
-
-#~ msgid ""
-#~ "<span size=\"small\">Please remember that the most efficient way to "
-#~ "prevent signal clipping is not to use positive values above.</span>"
-#~ msgstr ""
-#~ "<span size=\"small\">Kérjük vegy figyelembe hogy a leghatékonyabb módja a "
-#~ "jel vágásának ha nem ad meg pozitív értékeket.</span>"
-
-#~ msgid "<b>Replay Gain configuration</b>"
-#~ msgstr "<b>Lejátszási erősítés beállítása</b>"
-
-#~ msgid "Track gain/peak"
-#~ msgstr "Szám erősítés/csúcsérték"
-
-#~ msgid "Album gain/peak"
-#~ msgstr "Album erősítés/csúcsérték"
-
-#~ msgid "Use peak value from Replay Gain info for clipping prevention"
-#~ msgstr ""
-#~ "Használja a csúcs értéket a lejátszási csúcs információ túllépésének "
-#~ "megelőzéséhez"
-
-#~ msgid "Classic Rock"
-#~ msgstr "Klasszikus Rock"
-
-#~ msgid "Dance"
-#~ msgstr "Dance"
-
-#~ msgid "Oldies"
-#~ msgstr "Oldies"
-
-#~ msgid "Other"
-#~ msgstr "Egyéb"
-
-#~ msgid "R&B"
-#~ msgstr "R&B"
-
-#~ msgid "Industrial"
-#~ msgstr "Ipari"
-
-#~ msgid "Alternative"
-#~ msgstr "Alternatív"
-
-#~ msgid "Pranks"
-#~ msgstr "Pranks"
-
-#~ msgid "Soundtrack"
-#~ msgstr "Filmzene"
-
-#~ msgid "Euro-Techno"
-#~ msgstr "Euro-Techno"
-
-#~ msgid "Vocal"
-#~ msgstr "Ének"
-
-#~ msgid "Jazz+Funk"
-#~ msgstr "Jazz+Funk"
-
-#~ msgid "Fusion"
-#~ msgstr "Fusion"
-
-#~ msgid "Trance"
-#~ msgstr "Trance"
-
-#~ msgid "Instrumental"
-#~ msgstr "Instrumentális"
-
-#~ msgid "Acid"
-#~ msgstr "Acid"
-
-#~ msgid "Game"
-#~ msgstr "Játék"
-
-#~ msgid "Sound Clip"
-#~ msgstr "Zenei klip"
-
-#~ msgid "AlternRock"
-#~ msgstr "AlternRock"
-
-#~ msgid "Bass"
-#~ msgstr "Bass"
-
-#~ msgid "Punk"
-#~ msgstr "Punk"
-
-#~ msgid "Space"
-#~ msgstr "Space"
-
-#~ msgid "Meditative"
-#~ msgstr "Meditatív"
-
-#~ msgid "Instrumental Pop"
-#~ msgstr "Instrumentális Pop"
-
-#~ msgid "Instrumental Rock"
-#~ msgstr "Instrumentális Rock"
-
-#~ msgid "Ethnic"
-#~ msgstr "Etnikai"
-
-#~ msgid "Gothic"
-#~ msgstr "Gótikus"
-
-#~ msgid "Darkwave"
-#~ msgstr "Darkwave"
-
-#~ msgid "Techno-Industrial"
-#~ msgstr "Techno-Ipari"
-
-#~ msgid "Electronic"
-#~ msgstr "Elektronikus"
-
-#~ msgid "Pop-Folk"
-#~ msgstr "Pop-Folk"
-
-#~ msgid "Eurodance"
-#~ msgstr "Eurodance"
-
-#~ msgid "Dream"
-#~ msgstr "Dream"
-
-#~ msgid "Southern Rock"
-#~ msgstr "Déli Rock"
-
-#~ msgid "Comedy"
-#~ msgstr "Komédia"
-
-#~ msgid "Cult"
-#~ msgstr "Kultusz"
-
-#~ msgid "Top 40"
-#~ msgstr "Top 40"
-
-#~ msgid "Christian Rap"
-#~ msgstr "Keresztény Rap"
-
-#~ msgid "Pop/Funk"
-#~ msgstr "Pop/Funk"
-
-#~ msgid "Native American"
-#~ msgstr "Natív Amerikai"
-
-#~ msgid "Cabaret"
-#~ msgstr "Kabaré"
-
-#~ msgid "Psychedelic"
-#~ msgstr "Pszihedelikus"
-
-#~ msgid "Rave"
-#~ msgstr "Rév"
-
-#~ msgid "Showtunes"
-#~ msgstr "Showtunes"
-
-#~ msgid "Trailer"
-#~ msgstr "Előzetes"
-
-#~ msgid "Lo-Fi"
-#~ msgstr "Lo-Fi"
-
-#~ msgid "Tribal"
-#~ msgstr "Törzsi"
-
-#~ msgid "Acid Punk"
-#~ msgstr "Acid Punk"
-
-#~ msgid "Polka"
-#~ msgstr "Polka"
-
-#~ msgid "Retro"
-#~ msgstr "Retro"
-
-#~ msgid "Musical"
-#~ msgstr "Musical"
-
-#~ msgid "Folk/Rock"
-#~ msgstr "Folk/Rock"
-
-#~ msgid "National Folk"
-#~ msgstr "Nemzeti Folk"
-
-#~ msgid "Fast-Fusion"
-#~ msgstr "Fast-Fusion"
-
-#~ msgid "Latin"
-#~ msgstr "Latin"
-
-#~ msgid "Revival"
-#~ msgstr "Revival"
-
-#~ msgid "Celtic"
-#~ msgstr "Kelta"
-
-#~ msgid "Avantgarde"
-#~ msgstr "Avantgárd"
-
-#~ msgid "Gothic Rock"
-#~ msgstr "Gótikus Rock"
-
-#~ msgid "Progressive Rock"
-#~ msgstr "Progresszív Rock"
-
-#~ msgid "Psychedelic Rock"
-#~ msgstr "Pszihedelikus Rock"
-
-#~ msgid "Symphonic Rock"
-#~ msgstr "Szimfónikus Rock"
-
-#~ msgid "Slow Rock"
-#~ msgstr "Lassú Rock"
-
-#~ msgid "Big Band"
-#~ msgstr "Big Band"
-
-#~ msgid "Chorus"
-#~ msgstr "Kórus"
-
-#~ msgid "Acoustic"
-#~ msgstr "Akusztikus"
-
-#~ msgid "Humour"
-#~ msgstr "Humor"
-
-#~ msgid "Speech"
-#~ msgstr "Szöveg"
-
-#~ msgid "Chanson"
-#~ msgstr "Sanzon"
-
-#~ msgid "Opera"
-#~ msgstr "Opera"
-
-#~ msgid "Sonata"
-#~ msgstr "Szonáta"
-
-#~ msgid "Symphony"
-#~ msgstr "Szimfónikus"
-
-#~ msgid "Booty Bass"
-#~ msgstr "Booty Bass"
-
-#~ msgid "Primus"
-#~ msgstr "Primus"
-
-#~ msgid "Porn Groove"
-#~ msgstr "Porn Groove"
-
-#~ msgid "Satire"
-#~ msgstr "Szatíra"
-
-#~ msgid "Slow Jam"
-#~ msgstr "Slow Jam"
-
-#~ msgid "Club"
-#~ msgstr "Klub"
-
-#~ msgid "Tango"
-#~ msgstr "Tango"
-
-#~ msgid "Samba"
-#~ msgstr "Szamba"
-
-#~ msgid "Folklore"
-#~ msgstr "Folklór"
-
-#~ msgid "Ballad"
-#~ msgstr "Ballad"
-
-#~ msgid "Power Ballad"
-#~ msgstr "Power Ballad"
-
-#~ msgid "Rhythmic Soul"
-#~ msgstr "Ritmikus Soul"
-
-#~ msgid "Freestyle"
-#~ msgstr "Szabadstílus"
-
-#~ msgid "Duet"
-#~ msgstr "Duett"
-
-#~ msgid "Drum Solo"
-#~ msgstr "Dobszóló"
-
-#~ msgid "A Cappella"
-#~ msgstr "A Cappella"
-
-#~ msgid "Euro-House"
-#~ msgstr "Euro-House"
-
-#~ msgid "Dance Hall"
-#~ msgstr "Dance Hall"
-
-#~ msgid "Goa"
-#~ msgstr "Goa"
-
-#~ msgid "Drum & Bass"
-#~ msgstr "Drum & Bass"
-
-#~ msgid "Club-House"
-#~ msgstr "Club-House"
-
-#~ msgid "Hardcore"
-#~ msgstr "Hardcore"
-
-#~ msgid "Terror"
-#~ msgstr "Terror"
-
-#~ msgid "Indie"
-#~ msgstr "Indie"
-
-#~ msgid "BritPop"
-#~ msgstr "BritPop"
-
-#~ msgid "Negerpunk"
-#~ msgstr "Negerpunk"
-
-#~ msgid "Polsk Punk"
-#~ msgstr "Lengyel Punk"
-
-#~ msgid "Beat"
-#~ msgstr "Beat"
-
-#~ msgid "Christian Gangsta Rap"
-#~ msgstr "Keresztény gengszter Rap"
-
-#~ msgid "Black Metal"
-#~ msgstr "Black Metal"
-
-#~ msgid "Crossover"
-#~ msgstr "Crossover"
-
-#~ msgid "Contemporary Christian"
-#~ msgstr "Kortárs keresztény"
-
-#~ msgid "Christian Rock"
-#~ msgstr "Keresztény Rock"
-
-#~ msgid "Merengue"
-#~ msgstr "Merengue"
-
-#~ msgid "Salsa"
-#~ msgstr "Salsa"
-
-#~ msgid "Thrash Metal"
-#~ msgstr "Trash Metal"
-
-#~ msgid "Anime"
-#~ msgstr "Anime"
-
-#~ msgid "JPop"
-#~ msgstr "JPop"
-
-#~ msgid "Synthpop"
-#~ msgstr "Synthpop"
-
-#, fuzzy
-#~ msgid ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "An audio player for many platforms.\n"
-#~ "Copyright (C) 2005-2011 Audacious Development Team"
-#~ msgstr ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "Egy audio lejátszó sokféle platformon.\n"
-#~ "Copyright (C) 2005-2010 Audacious-fejlesztőcsapat"
-
-#~ msgid "Unable to create log file (%s)!\n"
-#~ msgstr "Nem lehet létrehozni a naplófájlt (%s)!\n"
-
-#~ msgid "Print all errors and warnings to stdout"
-#~ msgstr ""
-#~ "Minden hiba és figyelmeztetés megjelenítése a kimeneti eszközön (stdout)"
-
-#~ msgid "Used in macpacking"
-#~ msgstr "Csomagolóban használt"
-
-#~ msgid "Sorry, threads aren't supported on your platform.\n"
-#~ msgstr "Sajnálom, a szálak kezelése nem támogatott az ön platformján.\n"
-
-#~ msgid "Module loading not supported! Plugins will not be loaded.\n"
-#~ msgstr ""
-#~ "Bővítmény betöltés nem támogatott! A bővítmények nem lettek betöltve.\n"
-
-#~ msgid "Audacious - Unsupported Version Warning"
-#~ msgstr "Audacious - Nem támogatott verzió figyelmeztetés"
-
-#~ msgid "<big><b>Audacious2 is not ready yet!</b></big>"
-#~ msgstr "<big><b>Audacious2 még nincs kész!</b></big>"
-
-#~ msgid ""
-#~ "<b>Please don't file bugs at this point unless they represent major "
-#~ "problems.</b>"
-#~ msgstr ""
-#~ "<b>Kérem ne küldjön hibás fájlokat, ha nem jelentős problémába ütközött.</"
-#~ "b>"
-
-#~ msgid ""
-#~ "This is an <i>alpha</i> build of Audacious2. It is still fairly "
-#~ "incomplete and unpolished.\n"
-#~ "We suspect that most minor bugs reported during this time will be "
-#~ "resolved once more things\n"
-#~ "stablize. However, if there is a major bug, such as a crash on playing a "
-#~ "specific file, we\n"
-#~ "need to know about it.\n"
-#~ "\n"
-#~ "However, we ask you to be aware that dealing with trivial bugs is "
-#~ "distracting at this point,\n"
-#~ "and to please refrain from doing so. Thanks in advance!"
-#~ msgstr ""
-#~ "Ez az Audacious2 egy <i>alpha</i> kiadása. Ez még mindig meglehetősen "
-#~ "hiányos és csiszolatlan.\n"
-#~ "Úgy gondoljuk hogy a legtöbb kisebb hibát amit jelentettek hamarosan "
-#~ "megoldjuk és tovább stabilizáljuk.\n"
-#~ "Azonban, ha egy jelentős hibát tapasztal, mint például a program leállása "
-#~ "egy adott fájl lejátszásakor,\n"
-#~ "akkor nekünk tudnunk kell erről.\n"
-#~ "\n"
-#~ "Megkérjük, hogy legyen elnéző a viszonylag jelentéktelen hibákkal szemben "
-#~ "ezen a ponton,\n"
-#~ "és nem fontos hogy jelentse nekünk. Előre is köszönjük!"
-
-#~ msgid "<b>Blogging about bugs in it is also not helpful.</b>"
-#~ msgstr ""
-#~ "<b>Megjegyzéseket írni (bloggolni) a megtalálható hibákról szintén nem "
-#~ "szerencsés.</b>"
-
-#~ msgid ""
-#~ "Likewise, we're developers. We don't read blogs on a regular basis. If "
-#~ "there is a major bug,\n"
-#~ "we ask you to bring it to our attention via our bugtracking instance at "
-#~ "http://jira.atheme.org/,\n"
-#~ "or via the forums that are on the website.\n"
-#~ "\n"
-#~ "This will help us find out more information about your concerns, which we "
-#~ "would likely\n"
-#~ "not know about otherwise."
-#~ msgstr ""
-#~ "Ugyanígy vagyunk mi a fejlesztők is. Nem olvasunk blogokat rendszeresen. "
-#~ "Ha van egy nagyobb hiba,\n"
-#~ "kérjük, hogy azt a jelezze a mi hibakövető rendszerünkben például a "
-#~ "http://jira.atheme.org/,\n"
-#~ "vagy azon a fórumokon, amelyek a honlapon megtalálhatóak.\n"
-#~ "\n"
-#~ "Ez segít nekünk megtalálni a további információkat a problémára, amit "
-#~ "valószínűleg\n"
-#~ "nem tudnánk meg másképpen."
-
-#~ msgid "Playback"
-#~ msgstr "Lejátszás"
-
-#~ msgid "<b>Playback</b>"
-#~ msgstr "<b>Lejátszás</b>"
-
-#~ msgid ""
-#~ "When Audacious starts, automatically begin playing from the point where "
-#~ "we stopped before."
-#~ msgstr ""
-#~ "Az Audacious indulásakor automatikusan arról a pontról folytatja a "
-#~ "lejátszást, ahol korábban meg lett állítva."
-
-#~ msgid "Don't advance in the playlist"
-#~ msgstr "Ne legyen léptetés a lejátszólistában"
-
-#~ msgid ""
-#~ "When finished playing a song, don't automatically advance to the next."
-#~ msgstr ""
-#~ "Egy szám lejátszásának befejezése után automatikusan ne lépjen a "
-#~ "következőre."
-
-#~ msgid "Enabled"
-#~ msgstr "Engedélyezve"
-
-#~ msgid "Description"
-#~ msgstr "Leírás"
-
-#~ msgid "Output Plugin Preferences"
-#~ msgstr "Kimeneti bővítmény beállításai"
-
-#~ msgid "Output Plugin Information"
-#~ msgstr "Kimeneti bővítmény információja"
-
-#~ msgid "_Decoder list:"
-#~ msgstr "_Dekódolólista:"
-
-#~ msgid "<span size=\"medium\"><b>Decoders</b></span>"
-#~ msgstr "<span size=\"medium\"><b>Dekódolók</b></span>"
-
-#~ msgid "_General plugin list:"
-#~ msgstr "Á_ltalános bővítmények listája:"
-
-#~ msgid "<span size=\"medium\"><b>General</b></span>"
-#~ msgstr "<span size=\"medium\"><b>Általános</b></span>"
-
-#~ msgid "_Visualization plugin list:"
-#~ msgstr "_Kijelzési bővítmények listája:"
-
-#~ msgid "<b>Visualization</b>"
-#~ msgstr "<b>Kijelzési mód</b>"
-
-#~ msgid "Effect plugins:"
-#~ msgstr "_Effektus bővítmények listája:"
-
-#~ msgid "<span size=\"small\">General</span>"
-#~ msgstr "<span size=\"small\">Általános</span>"
-
-#~ msgid "<span size=\"small\">Location</span>"
-#~ msgstr "<span size=\"small\">Hely</span>"
-
-#~ msgid "<span size=\"small\">Raw Metadata</span>"
-#~ msgstr "<span size=\"small\">Nyers metaadat</span>"
-
-#~ msgid "Key"
-#~ msgstr "Kulcs"
-
-#~ msgid "Value"
-#~ msgstr "Érték"
-
-#~ msgid "170 Hz"
-#~ msgstr "170 Hz"
-
-#~ msgid "310 Hz"
-#~ msgstr "310 Hz"
-
-#~ msgid "3 kHz"
-#~ msgstr "3 kHz"
-
-#~ msgid "6 kHz"
-#~ msgstr "6 kHz"
-
-#, fuzzy
-#~ msgid ""
-#~ "Available interfaces:\n"
-#~ "\n"
-#~ msgstr "Elérhető _beállítások:"
-
-#, fuzzy
-#~ msgid "Available Plugin Preferences:\n"
-#~ msgstr "Elérhető _beállítások:"
-
-#, fuzzy
-#~ msgid "Add/Open URL Dialog"
-#~ msgstr "Fájlok hozzáadása/megnyitása párbeszédablak"
-
-#~ msgid "Enter location to play:"
-#~ msgstr "Adja meg a lejátszani kívánt helyet:"
-
-#~ msgid "Don't clear the playlist"
-#~ msgstr "Ne törölje a lejátszólistát"
-
-#~ msgid "audacious: %s"
-#~ msgstr "audacious: %s"
-
-#~ msgid "Filename:"
-#~ msgstr "Fájlnév:"
-
-#~ msgid "No input plugin recognized this file"
-#~ msgstr "Egyik bemeneti bővítmény sem ismerte fel a fájlt"
-
-#~ msgid "Input plugin: %s"
-#~ msgstr "Bemeneti bővítmény: %s"
-
-#~ msgid ""
-#~ "<b><big>No output plugin selected.</big></b>\n"
-#~ "You have not selected an output plugin."
-#~ msgstr ""
-#~ "<b><big>Nem lett kiválasztva kimeneti bővítmény.</big></b>\n"
-#~ "Nem választott ki kimeneti bővítményt."
-
-#~ msgid "Connectivity"
-#~ msgstr "Kapcsolódás"
-
-#~ msgid "<b>Format Detection</b>"
-#~ msgstr "<b>Formátum-felismerés</b>"
-
-#, fuzzy
-#~ msgid ""
-#~ "When checked, Audacious will detect file formats based by extension. Only "
-#~ "files with extensions of supported formats will be loaded."
-#~ msgstr ""
-#~ "Ha be van kapcsolva az Audacious a fájlformátumokat kérés esetén ismeri "
-#~ "fel. Ez rendetlenebb lejátszólistát eredményezhet, viszont "
-#~ "sebességnövekedést érhet el vele."
-
-#, fuzzy
-#~ msgid "<b>Advanced</b>"
-#~ msgstr "<b>Lejátszás</b>"
-
-#, fuzzy
-#~ msgid ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "\n"
-#~ "Copyright (C) 2005-2009 Audacious Development Team"
-#~ msgstr ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "A UNIX-os multimédia jövője.\n"
-#~ "\n"
-#~ "Copyright (C) 2005-2006 Audacious-fejlesztőcsapat\n"
-
-#~ msgid "Detect file formats on demand, instead of immediately."
-#~ msgstr "Fájlformátumok felismerése kérés esetén, azonnali mód helyett."
-
-#, fuzzy
-#~ msgid ""
-#~ "When checked, Audacious will detect file formats on demand. This can "
-#~ "result in a messier playlist, but delivers a major speed benefit."
-#~ msgstr ""
-#~ "Ha be van kapcsolva az Audacious a fájlformátumokat kérés esetén ismeri "
-#~ "fel. Ez rendetlenebb lejátszólistát eredményezhet, viszont "
-#~ "sebességnövekedést érhet el vele."
-
-#~ msgid "Load metadata from playlists and files"
-#~ msgstr "Metaadat betöltése lejátszólistákból és fájlokból"
-
-#~ msgid "Load metadata (tag information) from music files."
-#~ msgstr "Metaadat (tag információ) betöltése a zenefájlokból."
-
-#~ msgid "Jump to Time"
-#~ msgstr "Ugrás időpontra"
-
-#~ msgid "minutes:seconds"
-#~ msgstr "perc:másodperc"
-
-#~ msgid "Track length:"
-#~ msgstr "Szám hossza:"
-
-#, fuzzy
-#~ msgid "Save as Static Playlist"
-#~ msgstr "Lejátszólista mentése"
-
-#~ msgid "Error writing playlist \"%s\": %s"
-#~ msgstr "Hiba a(z) \"%s\" lejátszólista írása közben: %s"
-
-#~ msgid "%s already exist. Continue?"
-#~ msgstr "A(z) %s már létezik. Folytatja?"
-
-#~ msgid ""
-#~ "<b><big>Unable to save playlist.</big></b>\n"
-#~ "\n"
-#~ "Unknown file type for '%s'.\n"
-#~ msgstr ""
-#~ "<b><big>Nem lehet menteni a lejátszólistát.</big></b>\n"
-#~ "\n"
-#~ "Ismeretlen fájltípus: '%s'.\n"
-
-#~ msgid "Presets"
-#~ msgstr "Beállítások"
-
-#~ msgid "Mouse"
-#~ msgstr "Egér"
-
-#~ msgid "Pause between songs"
-#~ msgstr "Szünet a számok között"
-
-#~ msgid "Pause for"
-#~ msgstr "Szünet"
-
-#~ msgid "seconds"
-#~ msgstr "másodpercre"
-
-#~ msgid "<b>Filename</b>"
-#~ msgstr "<b>Fájlnév</b>"
-
-#~ msgid "Convert underscores to blanks"
-#~ msgstr "Aláhúzás karakterek konvertálása szóközre"
-
-#~ msgid "Convert %20 to blanks"
-#~ msgstr "%20 konvertálása szóközre"
-
-#~ msgid "<b>File Dialog</b>"
-#~ msgstr "<b>Fájl párbeszédablak</b>"
-
-#~ msgid "Always refresh directory when opening file dialog"
-#~ msgstr "Mindig frissítse a könyvtárat a fájl párbeszédablak megnyitásakor"
-
-#~ msgid ""
-#~ "Always refresh the file dialog (this will slow opening the dialog on "
-#~ "large directories, and Gnome VFS should handle automatically)."
-#~ msgstr ""
-#~ "Mindig frissítse a fájl párbeszédablakot (ez lassítja a párbeszédablak "
-#~ "megnyitását nagy könyvtáraknál, és a Gnome VFS automatikusan kezeli ezt)."
-
-#~ msgid "Changes volume by"
-#~ msgstr "Megváltoztatja a hangerőt"
-
-#~ msgid "percent"
-#~ msgstr "százalékkal"
-
-#~ msgid "Scrolls playlist by"
-#~ msgstr "Ennyit görget a lejátszólistában:"
-
-#~ msgid "lines"
-#~ msgstr "sor"
-
-#, fuzzy
-#~ msgid "Stop after Current Song"
-#~ msgstr "/Leállítás a jelenlegi szám után"
-
-#, fuzzy
-#~ msgid "Peaks"
-#~ msgstr "/Szünet"
-
-#, fuzzy
-#~ msgid "Repeat"
-#~ msgstr "/Ismétlés"
-
-#, fuzzy
-#~ msgid "Shuffle"
-#~ msgstr "/Véletlenszerű sorrend"
-
-#, fuzzy
-#~ msgid "No Playlist Advance"
-#~ msgstr "/A lejátszólista ne legyen léptetve"
-
-#, fuzzy
-#~ msgid "Play"
-#~ msgstr "/Lejátszás"
-
-#, fuzzy
-#~ msgid "Pause"
-#~ msgstr "/Szünet"
-
-#, fuzzy
-#~ msgid "Stop"
-#~ msgstr "/Leállítás"
-
-#, fuzzy
-#~ msgid "Previous"
-#~ msgstr "/Előző"
-
-#, fuzzy
-#~ msgid "Next"
-#~ msgstr "/Következő"
-
-#, fuzzy
-#~ msgid "Visualization Mode"
-#~ msgstr "/Kijelzési mód"
-
-#, fuzzy
-#~ msgid "Analyzer Mode"
-#~ msgstr "/Analizátor-üzemmód/Tűz"
-
-#, fuzzy
-#~ msgid "Scope Mode"
-#~ msgstr "/Szkóp-üzemmód"
-
-#, fuzzy
-#~ msgid "Voiceprint Mode"
-#~ msgstr "/Analizátor-üzemmód/Tűz"
-
-#, fuzzy
-#~ msgid "WindowShade VU Mode"
-#~ msgstr "/Roló-üzemmód"
-
-#, fuzzy
-#~ msgid "Refresh Rate"
-#~ msgstr "/Frissítési sebesség"
-
-#, fuzzy
-#~ msgid "Analyzer Falloff"
-#~ msgstr "/Analizátor esése"
-
-#, fuzzy
-#~ msgid "Peaks Falloff"
-#~ msgstr "/Csúcsértékek esése"
-
-#, fuzzy
-#~ msgid "New Playlist"
-#~ msgstr "Lejátszólista mentése"
-
-#, fuzzy
-#~ msgid "Select Next Playlist"
-#~ msgstr "Válassza ki a lejátszólista betűkészletét:"
-
-#, fuzzy
-#~ msgid "Select Previous Playlist"
-#~ msgstr "/Kijelölés rendezése/Lejátszólista-bejegyzés alapján"
-
-#, fuzzy
-#~ msgid "Delete Playlist"
-#~ msgstr "Válassza ki a lejátszólista betűkészletét:"
-
-#, fuzzy
-#~ msgid "Load List"
-#~ msgstr "/Lista betöltése"
-
-#, fuzzy
-#~ msgid "Loads a playlist file into the selected playlist."
-#~ msgstr ""
-#~ "Igény szerint betölti a metaadatot, amikor megjeleníti a fájlt a "
-#~ "lejátszólistában"
-
-#, fuzzy
-#~ msgid "Save List"
-#~ msgstr "/Lista mentése"
-
-#, fuzzy
-#~ msgid "Saves the selected playlist."
-#~ msgstr "Válassza ki a lejátszólista betűkészletét:"
-
-#, fuzzy
-#~ msgid "Save Default List"
-#~ msgstr "/Alapértelmezett lista mentése"
-
-#, fuzzy
-#~ msgid "Saves the selected playlist to the default location."
-#~ msgstr "Válassza ki a lejátszólista betűkészletét:"
-
-#, fuzzy
-#~ msgid "Refresh List"
-#~ msgstr "Bőrlista frissítése"
-
-#, fuzzy
-#~ msgid "List Manager"
-#~ msgstr "/A lejátszólista ne legyen léptetve"
-
-#, fuzzy
-#~ msgid "Opens the playlist manager."
-#~ msgstr "Ne törölje a lejátszólistát"
-
-#, fuzzy
-#~ msgid "View"
-#~ msgstr "/_Nézet"
-
-#, fuzzy
-#~ msgid "Add Internet Address..."
-#~ msgstr "/Internetcím hozzáadása..."
-
-#, fuzzy
-#~ msgid "Adds a remote track to the playlist."
-#~ msgstr "Ne törölje a lejátszólistát"
-
-#, fuzzy
-#~ msgid "Add Files..."
-#~ msgstr "/Fájlok hozzáadása..."
-
-#, fuzzy
-#~ msgid "Search and Select"
-#~ msgstr "Keresési mélység: "
-
-#, fuzzy
-#~ msgid "Invert Selection"
-#~ msgstr "/Kijelölés megfordítása"
-
-#, fuzzy
-#~ msgid "Inverts the selected and unselected entries."
-#~ msgstr "Válassza ki a lejátszólista betűkészletét:"
-
-#~ msgid "Select All"
-#~ msgstr "Mindent kijelöl"
-
-#, fuzzy
-#~ msgid "Selects all of the playlist entries."
-#~ msgstr "/Lista rendezése/Lejátszólista-bejegyzés alapján"
-
-#, fuzzy
-#~ msgid "Select None"
-#~ msgstr "/Kijelölés megszüntetése"
-
-#, fuzzy
-#~ msgid "Deselects all of the playlist entries."
-#~ msgstr "Ne törölje a lejátszólistát"
-
-#, fuzzy
-#~ msgid "Remove All"
-#~ msgstr "/Összes eltávolítása"
-
-#, fuzzy
-#~ msgid "Removes all entries from the playlist."
-#~ msgstr "/Nem elérhető fájlok eltávolítása"
-
-#, fuzzy
-#~ msgid "Clear Queue"
-#~ msgstr "/Sor törlése"
-
-#, fuzzy
-#~ msgid "Clears the queue associated with this playlist."
-#~ msgstr "Válassza ki a lejátszólista betűkészletét:"
-
-#, fuzzy
-#~ msgid "Remove Unavailable Files"
-#~ msgstr "/Nem elérhető fájlok eltávolítása"
-
-#, fuzzy
-#~ msgid "Removes unavailable files from the playlist."
-#~ msgstr "/Nem elérhető fájlok eltávolítása"
-
-#, fuzzy
-#~ msgid "Remove Duplicates"
-#~ msgstr "/Duplikátumok eltávolítása"
-
-#, fuzzy
-#~ msgid "By Title"
-#~ msgstr "Cím"
-
-#, fuzzy
-#~ msgid "Removes duplicate entries from the playlist by title."
-#~ msgstr "/Duplikátumok eltávolítása/Útvonal + fájlnév alapján"
-
-#, fuzzy
-#~ msgid "By Filename"
-#~ msgstr "Fájlnév"
-
-#, fuzzy
-#~ msgid "Removes duplicate entries from the playlist by filename."
-#~ msgstr "/Duplikátumok eltávolítása/Útvonal + fájlnév alapján"
-
-#, fuzzy
-#~ msgid "By Path + Filename"
-#~ msgstr "/Lista rendezése/Útvonal + fájlnév alapján"
-
-#, fuzzy
-#~ msgid "Removes duplicate entries from the playlist by their full path."
-#~ msgstr "/Duplikátumok eltávolítása/Útvonal + fájlnév alapján"
-
-#, fuzzy
-#~ msgid "Remove Unselected"
-#~ msgstr "/Kijelöletlenek eltávolítása"
-
-#, fuzzy
-#~ msgid "Remove unselected entries from the playlist."
-#~ msgstr "/Duplikátumok eltávolítása/Útvonal + fájlnév alapján"
-
-#, fuzzy
-#~ msgid "Remove Selected"
-#~ msgstr "/Kijelöltek eltávolítása"
-
-#, fuzzy
-#~ msgid "Remove selected entries from the playlist."
-#~ msgstr "/Duplikátumok eltávolítása/Útvonal + fájlnév alapján"
-
-#, fuzzy
-#~ msgid "Randomize List"
-#~ msgstr "/Véletlenszerű listasorrend"
-
-#, fuzzy
-#~ msgid "Randomizes the playlist."
-#~ msgstr "/Véletlenszerű listasorrend"
-
-#, fuzzy
-#~ msgid "Reverse List"
-#~ msgstr "/Lista megfordítása"
-
-#, fuzzy
-#~ msgid "Reverses the playlist."
-#~ msgstr "Ne törölje a lejátszólistát"
-
-#, fuzzy
-#~ msgid "Sort List"
-#~ msgstr "/Lista rendezése"
-
-#, fuzzy
-#~ msgid "Sorts the list by title."
-#~ msgstr "/Lista rendezése/Cím alapján"
-
-#, fuzzy
-#~ msgid "By Album"
-#~ msgstr "Album"
-
-#, fuzzy
-#~ msgid "Sorts the list by album."
-#~ msgstr "/Lista rendezése/Cím alapján"
-
-#, fuzzy
-#~ msgid "By Artist"
-#~ msgstr "Előadó"
-
-#, fuzzy
-#~ msgid "Sorts the list by artist."
-#~ msgstr "/Lista rendezése/Előadó alapján"
-
-#, fuzzy
-#~ msgid "Sorts the list by filename."
-#~ msgstr "/Lista rendezése/Fájlnév alapján"
-
-#, fuzzy
-#~ msgid "Sorts the list by full pathname."
-#~ msgstr "/Lista rendezése/Fájlnév alapján"
-
-#, fuzzy
-#~ msgid "By Date"
-#~ msgstr "Dátum"
-
-#, fuzzy
-#~ msgid "Sorts the list by modification time."
-#~ msgstr "/Lista rendezése/Cím alapján"
-
-#, fuzzy
-#~ msgid "By Track Number"
-#~ msgstr "Szám sorszáma"
-
-#, fuzzy
-#~ msgid "Sorts the list by track number."
-#~ msgstr "/Lista rendezése/Szám sorszáma alapján"
-
-#, fuzzy
-#~ msgid "By Playlist Entry"
-#~ msgstr "/Lista rendezése/Lejátszólista-bejegyzés alapján"
-
-#, fuzzy
-#~ msgid "Sorts the list by playlist entry."
-#~ msgstr "/Lista rendezése/Lejátszólista-bejegyzés alapján"
-
-#, fuzzy
-#~ msgid "Sort Selected"
-#~ msgstr "/Kijelölés rendezése"
-
-#, fuzzy
-#~ msgid "File"
-#~ msgstr "Cím"
-
-#, fuzzy
-#~ msgid "Components"
-#~ msgstr "Megjegyzés"
-
-#, fuzzy
-#~ msgid "View Track Details"
-#~ msgstr "/Szám részleteinek megtekintése"
-
-#, fuzzy
-#~ msgid "Play File"
-#~ msgstr "/Fájl lejátszása"
-
-#, fuzzy
-#~ msgid "Load and play a file"
-#~ msgstr "Metaadat betöltése lejátszólistákból és fájlokból"
-
-#, fuzzy
-#~ msgid "Play Location"
-#~ msgstr "/Hely lejátszása"
-
-#, fuzzy
-#~ msgid "Plugin services"
-#~ msgstr "Bővítmények"
-
-#, fuzzy
-#~ msgid "Preferences"
-#~ msgstr "/Beállítások"
-
-#, fuzzy
-#~ msgid "Open preferences window"
-#~ msgstr "Beállítások ablak"
-
-#, fuzzy
-#~ msgid "_Quit"
-#~ msgstr "/_Kilépés"
-
-#, fuzzy
-#~ msgid "Quit Audacious"
-#~ msgstr "Audacious névjegye"
-
-#, fuzzy
-#~ msgid "Set A-B"
-#~ msgstr "/A-B beállítása"
-
-#, fuzzy
-#~ msgid "Clear A-B"
-#~ msgstr "/A-B törlése"
-
-#, fuzzy
-#~ msgid "Jump to Playlist Start"
-#~ msgstr "/Ugrás a lejátszólista elejére"
-
-#, fuzzy
-#~ msgid "Jump to File"
-#~ msgstr "/Ugrás fájlra"
-
-#, fuzzy
-#~ msgid "Queue Toggle"
-#~ msgstr "/Betevés a sorba"
-
-#, fuzzy
-#~ msgid "Load"
-#~ msgstr "/Betöltés"
-
-#, fuzzy
-#~ msgid "Import"
-#~ msgstr "/Importálás"
-
-#, fuzzy
-#~ msgid "Save"
-#~ msgstr "/Mentés"
-
-#, fuzzy
-#~ msgid "Delete"
-#~ msgstr "/Törlés"
-
-#~ msgid "Preset"
-#~ msgstr "Beállítás"
-
-#~ msgid "Load preset"
-#~ msgstr "Beállítás betöltése"
-
-#, fuzzy
-#~ msgid "Auto-load preset"
-#~ msgstr "/Betöltés/Automatikusan betöltődő beállítás"
-
-#, fuzzy
-#~ msgid "Load auto-load preset"
-#~ msgstr "/Betöltés/Automatikusan betöltődő beállítás"
-
-#, fuzzy
-#~ msgid "Default"
-#~ msgstr "Alapértelmezett bőr:"
-
-#, fuzzy
-#~ msgid "Load default preset into equalizer"
-#~ msgstr "Automatikusan betöltődő beállítás mentése"
-
-#, fuzzy
-#~ msgid "Zero"
-#~ msgstr "sztereó"
-
-#, fuzzy
-#~ msgid "Set equalizer preset levels to zero"
-#~ msgstr "Equalizer-beállítás mentése"
-
-#, fuzzy
-#~ msgid "From file"
-#~ msgstr "/Betöltés/Fájlból"
-
-#, fuzzy
-#~ msgid "Load preset from file"
-#~ msgstr "Beállítás betöltése"
-
-#, fuzzy
-#~ msgid "From WinAMP EQF file"
-#~ msgstr "/Betöltés/Winamp EQF fájlból"
-
-#, fuzzy
-#~ msgid "Load preset from WinAMP EQF file"
-#~ msgstr "/Betöltés/Winamp EQF fájlból"
-
-#, fuzzy
-#~ msgid "WinAMP Presets"
-#~ msgstr "/Importálás/Winamp-beállítások"
-
-#, fuzzy
-#~ msgid "Import WinAMP presets"
-#~ msgstr "/Importálás/Winamp-beállítások"
-
-#~ msgid "Save preset"
-#~ msgstr "Beállítás mentése"
-
-#, fuzzy
-#~ msgid "Save auto-load preset"
-#~ msgstr "/Mentés/Automatikusan betöltődő beállítás"
-
-#, fuzzy
-#~ msgid "Save default preset"
-#~ msgstr "Automatikusan betöltődő beállítás mentése"
-
-#, fuzzy
-#~ msgid "To file"
-#~ msgstr "/Betöltés/Fájlból"
-
-#, fuzzy
-#~ msgid "Save preset to file"
-#~ msgstr "Beállítás mentése"
-
-#, fuzzy
-#~ msgid "To WinAMP EQF file"
-#~ msgstr "/Mentés/Winamp EQF fájlba"
-
-#, fuzzy
-#~ msgid "Save preset to WinAMP EQF file"
-#~ msgstr "/Mentés/Winamp EQF fájlba"
-
-#~ msgid "Delete preset"
-#~ msgstr "Beállítás törlése"
-
-#, fuzzy
-#~ msgid "Delete auto-load preset"
-#~ msgstr "/Törlés/Automatikusan betöltődő beállítás"
-
-#, fuzzy
-#~ msgid ""
-#~ "<span size=\"small\">This is the amount of time to prebuffer audio "
-#~ "streams by, in milliseconds.\n"
-#~ "Increase this value if you are experiencing audio skipping.\n"
-#~ "Please note however, that high values will result in Audacious performing "
-#~ "poorly.</span>"
-#~ msgstr ""
-#~ "<span size=\"small\">Időtartam ezredmásodpercben, amennyivel a hangfolyam "
-#~ "előpufferelve lesz.\n"
-#~ "Növelje ezt az értéket, ha hangkihagyást tapasztal. \n"
-#~ "Figyeljen arra, hogy a magas értékek az Audacious "
-#~ "teljesítménycsökkenéséhez vezethetnek.</span>"
-
-#~ msgid ""
-#~ "<b><big>Unable to load skin.</big></b>\n"
-#~ "\n"
-#~ "Check that skin at '%s' is usable and default skin is properly installed "
-#~ "at '%s'\n"
-#~ msgstr ""
-#~ "<b><big>Nem lehet betölteni a bőrt.</big></b>\n"
-#~ "\n"
-#~ "Ellenőrizze, hogy a(z) '%s' helyen található bőr használható-e és az "
-#~ "alapértelmezett bőr megfelelően telepítve van-e itt: '%s'\n"
-
-#, fuzzy
-#~ msgid "Headless operation enabled\n"
-#~ msgstr "Szöveges üzemmód [kísérleti]"
-
-#~ msgid "Audacious core developers:"
-#~ msgstr "Audacious fő fejlesztői:"
-
-#~ msgid "Audacious Equalizer"
-#~ msgstr "Audacious Equalizer"
-
-#, fuzzy
-#~ msgid "Play files"
-#~ msgstr "/Fájl lejátszása"
-
-#, fuzzy
-#~ msgid "Load files"
-#~ msgstr "/Betöltés/Fájlból"
-
-#~ msgid "%s - Audacious"
-#~ msgstr "%s - Audacious"
-
-#~ msgid "VBR"
-#~ msgstr "VBR"
-
-#~ msgid "mono"
-#~ msgstr "monó"
-
-#, fuzzy
-#~ msgid "Show main player window"
-#~ msgstr "Válassza ki a fő lejátszóablak betűkészletét:"
-
-#, fuzzy
-#~ msgid "Seek to: %d:%-2.2d/%d:%-2.2d (%d%%)"
-#~ msgstr "POZICIONÁLÁS IDE: %d:%-2.2d/%d:%-2.2d (%d%%)"
-
-#, fuzzy
-#~ msgid "Disable 'Always On Top'"
-#~ msgstr "/Mindig legfelül"
-
-#, fuzzy
-#~ msgid "Enable 'Always On Top'"
-#~ msgstr "/Mindig legfelül"
-
-#, fuzzy
-#~ msgid "Visualization Menu"
-#~ msgstr "/Kijelzési mód"
-
-#~ msgid ""
-#~ "<b><big>Couldn't open audio.</big></b>\n"
-#~ "\n"
-#~ "Please check that:\n"
-#~ "1. You have the correct output plugin selected.\n"
-#~ "2. No other programs is blocking the soundcard.\n"
-#~ "3. Your soundcard is configured properly.\n"
-#~ msgstr ""
-#~ "<b><big>Nem lehet megnyitni a hangot.</big></b>\n"
-#~ "\n"
-#~ "Ellenőrizze a következőket:\n"
-#~ "1. A megfelelő kimeneti bővítmény van kiválasztva.\n"
-#~ "2. Semmilyen más program nem foglalja le a hangkártyát.\n"
-#~ "3. A hangkártya megfelelően van beállítva.\n"
-
-#, fuzzy
-#~ msgid "Autoscroll Songname"
-#~ msgstr "/Számnév automatikus görgetése"
-
-#, fuzzy
-#~ msgid "Show Player"
-#~ msgstr "/Lejátszó megjelenítése"
-
-#, fuzzy
-#~ msgid "Show Playlist Editor"
-#~ msgstr "/Lejátszólista-szerkesztő megjelenítése"
-
-#, fuzzy
-#~ msgid "Show Equalizer"
-#~ msgstr "/Equalizer megjelenítése"
-
-#, fuzzy
-#~ msgid "Always on Top"
-#~ msgstr "/Mindig legfelül"
-
-#, fuzzy
-#~ msgid "Put on All Workspaces"
-#~ msgstr "/Megjelenítés minden munkaterületen"
-
-#, fuzzy
-#~ msgid "Roll up Player"
-#~ msgstr "/Lejátszó felgördítése"
-
-#, fuzzy
-#~ msgid "Roll up Playlist Editor"
-#~ msgstr "/Lejátszólista-szerkesztő felgördítése"
-
-#, fuzzy
-#~ msgid "Roll up Equalizer"
-#~ msgstr "/Equalizer felgördítése"
-
-#, fuzzy
-#~ msgid "Scale"
-#~ msgstr "/Mentés"
-
-#, fuzzy
-#~ msgid "Analyzer"
-#~ msgstr "/Analizátor-üzemmód"
-
-#, fuzzy
-#~ msgid "Scope"
-#~ msgstr "/Szkóp-üzemmód"
-
-#, fuzzy
-#~ msgid "Voiceprint"
-#~ msgstr "/Analizátor-üzemmód/Tűz"
-
-#, fuzzy
-#~ msgid "Vertical Lines"
-#~ msgstr "/Analizátor-üzemmód/Függőleges vonalak"
-
-#, fuzzy
-#~ msgid "Lines"
-#~ msgstr "sor"
-
-#, fuzzy
-#~ msgid "Dot Scope"
-#~ msgstr "/Szkóp-üzemmód/Pontok"
-
-#, fuzzy
-#~ msgid "Line Scope"
-#~ msgstr "/Szkóp-üzemmód/Vonalak"
-
-#, fuzzy
-#~ msgid "Solid Scope"
-#~ msgstr "/Szkóp-üzemmód/Tömör"
-
-#, fuzzy
-#~ msgid "Smooth"
-#~ msgstr "monó"
-
-#, fuzzy
-#~ msgid "Full (~50 fps)"
-#~ msgstr "/Frissítési sebesség/Teljes (~50 fps)"
-
-#, fuzzy
-#~ msgid "Half (~25 fps)"
-#~ msgstr "/Frissítési sebesség/Fél (~25 fps)"
-
-#, fuzzy
-#~ msgid "Quarter (~13 fps)"
-#~ msgstr "/Frissítési sebesség/Negyed (~13 fps)"
-
-#, fuzzy
-#~ msgid "Eighth (~6 fps)"
-#~ msgstr "/Frissítési sebesség/Nyolcad (~6 fps)"
-
-#, fuzzy
-#~ msgid "Time Elapsed"
-#~ msgstr "/Eltelt idő"
-
-#, fuzzy
-#~ msgid "Time Remaining"
-#~ msgstr "/Hátralévő idő"
-
-#, fuzzy
-#~ msgid "Plugin Services"
-#~ msgstr "Bővítmények"
-
-#, fuzzy
-#~ msgid "Search entries in active playlist"
-#~ msgstr "Elválasztók megjelenítése a lejátszólistában"
-
-#, fuzzy
-#~ msgid "Title: "
-#~ msgstr "Cím"
-
-#, fuzzy
-#~ msgid "Artist: "
-#~ msgstr "Előadó"
-
-#, fuzzy
-#~ msgid "Filename: "
-#~ msgstr "Fájlnév:"
-
-#~ msgid "Audacious Playlist Editor"
-#~ msgstr "Audacious lejátszólista-szerkesztő"
-
-#~ msgid "Appearance"
-#~ msgstr "Megjelenés"
-
-#~ msgid "<b>_Fonts</b>"
-#~ msgstr "<b>_Betűkészletek</b>"
-
-#~ msgid "_Player:"
-#~ msgstr "_Lejátszó:"
-
-#~ msgid "Select main player window font:"
-#~ msgstr "Válassza ki a fő lejátszóablak betűkészletét:"
-
-#~ msgid "_Playlist:"
-#~ msgstr "L_ejátszólista:"
-
-#, fuzzy
-#~ msgid "Select playlist font:"
-#~ msgstr "Válassza ki a fő lejátszóablak betűkészletét:"
-
-#~ msgid "Use Bitmap fonts if available"
-#~ msgstr "Bitmap betűkészletek használata, ha elérhetőek"
-
-#~ msgid ""
-#~ "Use bitmap fonts if they are available. Bitmap fonts do not support "
-#~ "Unicode strings."
-#~ msgstr ""
-#~ "Bitmap betűkészletek használata, ha elérhetőek. A bitmap betűkészletek "
-#~ "nem támogatják a Unicode karakterláncokat."
-
-#~ msgid "<b>_Miscellaneous</b>"
-#~ msgstr "<b>_Egyebek</b>"
-
-#~ msgid "Show track numbers in playlist"
-#~ msgstr "Számok sorszámának megjelenítése a lejátszólistában"
-
-#~ msgid "Show separators in playlist"
-#~ msgstr "Elválasztók megjelenítése a lejátszólistában"
-
-#~ msgid "On load"
-#~ msgstr "Betöltéskor"
-
-#~ msgid "Load metadata when adding the file to the playlist or opening it"
-#~ msgstr "Metaadat betöltése fájl lejátszólistához adásakor vagy megnyitáskor"
-
-#~ msgid "On display"
-#~ msgstr "Megjelenítéskor"
-
-#, fuzzy
-#~ msgid ""
-#~ "Load metadata on demand when displaying the file in the playlist. You may "
-#~ "need to set \"Detect file formats on demand\" in Audio page for full "
-#~ "benefit."
-#~ msgstr "Metaadat betöltése fájl lejátszólistához adásakor vagy megnyitáskor"
-
-#, fuzzy
-#~ msgid "Green"
-#~ msgstr "Görög:"
-
-#~ msgid "<b>_Skin</b>"
-#~ msgstr "<b>_BÅ‘r</b>"
-
-#, fuzzy
-#~ msgid "Refresh skin list"
-#~ msgstr "Bőrlista frissítése"
-
-#~ msgid "PREAMP"
-#~ msgstr "ELŐERŐSÍTŐ"
-
-#~ msgid "60HZ"
-#~ msgstr "60 HZ"
-
-#~ msgid "170HZ"
-#~ msgstr "170 HZ"
-
-#~ msgid "310HZ"
-#~ msgstr "310 HZ"
-
-#~ msgid "600HZ"
-#~ msgstr "600 HZ"
-
-#~ msgid "1KHZ"
-#~ msgstr "1 KHZ"
-
-#~ msgid "3KHZ"
-#~ msgstr "3 KHZ"
-
-#~ msgid "6KHZ"
-#~ msgstr "6 KHZ"
-
-#~ msgid "12KHZ"
-#~ msgstr "12 KHZ"
-
-#~ msgid "14KHZ"
-#~ msgstr "14 KHZ"
-
-#~ msgid "16KHZ"
-#~ msgstr "16 KHZ"
-
-#~ msgid "Archived Winamp 2.x skin"
-#~ msgstr "Tömörített Winamp 2.x bőr"
-
-#~ msgid "Unarchived Winamp 2.x skin"
-#~ msgstr "Tömörítetlen Winamp 2.x bőr"
-
-#~ msgid "Use custom cursors"
-#~ msgstr "Egyéni kurzorok használata"
-
-#, fuzzy
-#~ msgid "Reload Plugins"
-#~ msgstr "Bővítmények"
-
-#~ msgid ""
-#~ "Sorry, threads isn't supported on your platform.\n"
-#~ "\n"
-#~ "If you're on a libc5 based linux system and installed Glib & GTK+ before "
-#~ "you\n"
-#~ "installed LinuxThreads you need to recompile Glib & GTK+.\n"
-#~ msgstr ""
-#~ "Sajnos az Ön platformján a szálak nincsenek támogatva.\n"
-#~ "\n"
-#~ "Ha libc5-alapú Linux-rendszere van, és a Glib-et és a GTK+-t a "
-#~ "LinuxThreads\n"
-#~ "előtt telepítette, akkor újra kell fordítania a Glib-et és a GTK+-t.\n"
-
-#, fuzzy
-#~ msgid "Error in Audacious."
-#~ msgstr "%s - Audacious"
-
-#, fuzzy
-#~ msgid "Select which Audacious session ID to use"
-#~ msgstr "Audacious/BMP/XMMS-munkamenet kiválasztása (Alapértelmezés: 0)"
-
-#~ msgid "<b>Presets</b>"
-#~ msgstr "<b>Beállítások</b>"
-
-#~ msgid "File preset extension:"
-#~ msgstr "Fájlbeállítás kiterjesztése:"
-
-#~ msgid "Directory preset file:"
-#~ msgstr "Könyvtár-beállítás fájlja:"
-
-#~ msgid "localhost"
-#~ msgstr "localhost"
-
-#~ msgid ""
-#~ "<b><big>Unable to create %s.</big></b>\n"
-#~ "\n"
-#~ "Could not open glade file (%s). Please check your installation.\n"
-#~ msgstr ""
-#~ "<b><big>Nem lehet létrehozni a(z) %s-t.</big></b>\n"
-#~ "\n"
-#~ "Nem lehet megnyitni a glade fájlt (%s). Ellenőrizze a telepítését.\n"
-
-#~ msgid ""
-#~ "TITLE\n"
-#~ "ARTIST - TITLE\n"
-#~ "ARTIST - ALBUM - TITLE\n"
-#~ "ARTIST - ALBUM - TRACK. TITLE\n"
-#~ "ARTIST [ ALBUM ] - TRACK. TITLE\n"
-#~ "ALBUM - TITLE\n"
-#~ "Custom"
-#~ msgstr ""
-#~ "CÍM\n"
-#~ "ELŐADÓ - CÍM\n"
-#~ "ELŐADÓ - ALBUM - CÍM\n"
-#~ "ELŐADÓ - ALBUM - SZÁM. CÍM\n"
-#~ "ELŐADÓ [ ALBUM ] - SZÁM. CÍM\n"
-#~ "ALBUM - CÍM\n"
-#~ "Egyéni"
-
-#~ msgid "Track Information Window"
-#~ msgstr "Száminformáció ablak"
-
-#~ msgid "Preferences Window"
-#~ msgstr "Beállítások ablak"
-
-#, fuzzy
-#~ msgid "<b>Artist:</b> %s"
-#~ msgstr "<i>Előadó</i>"
-
-#, fuzzy
-#~ msgid "<b>Title:</b> %s"
-#~ msgstr "<i>Cím</i>"
-
-#, fuzzy
-#~ msgid "<b>Album:</b> %s"
-#~ msgstr "<i>Album</i>"
-
-#, fuzzy
-#~ msgid "Audacious last.fm radio tuner"
-#~ msgstr "Audacious lejátszólista-szerkesztő"
-
-#, fuzzy
-#~ msgid "<b>Artist:</b>"
-#~ msgstr "<i>Előadó</i>"
-
-#, fuzzy
-#~ msgid "<b>Album:</b>"
-#~ msgstr "<i>Album</i>"
-
-#~ msgid "VOLUME: %d%%"
-#~ msgstr "HANGERŐ: %d%%"
-
-#~ msgid "BALANCE: %d%% LEFT"
-#~ msgstr "BALANSZ: %d%% BAL"
-
-#~ msgid "BALANCE: CENTER"
-#~ msgstr "BALANSZ: KÖZÉP"
-
-#~ msgid "BALANCE: %d%% RIGHT"
-#~ msgstr "BALANSZ: %d%% JOBB"
-
-#, fuzzy
-#~ msgid "Last.fm radio"
-#~ msgstr "/Hely lejátszása"
-
-#, fuzzy
-#~ msgid "Play Last.fm radio"
-#~ msgstr "/Hely lejátszása"
-
-#~ msgid ""
-#~ "<b><big>No playable CD found.</big></b>\n"
-#~ "\n"
-#~ "No CD inserted, or inserted CD is not an audio CD.\n"
-#~ msgstr ""
-#~ "<b><big>Nem található lejátszható CD.</big></b>\n"
-#~ "\n"
-#~ "Nincs behelyezve CD, vagy a behelyezett CD nem audio CD.\n"
-
-#, fuzzy
-#~ msgid "Add CD..."
-#~ msgstr "/CD hozzáadása..."
-
-#, fuzzy
-#~ msgid "Play CD"
-#~ msgstr "/CD lejátszása"
-
-#~ msgid "Performer/Artist"
-#~ msgstr "Előadó/szerző"
-
-#~ msgid "File name"
-#~ msgstr "Fájlnév"
-
-#~ msgid "File path"
-#~ msgstr "Fájlútvonal"
-
-#~ msgid "File extension"
-#~ msgstr "Fájlkiterjesztés"
-
-#~ msgid "Track number"
-#~ msgstr "Szám sorszáma"
-
-#~ msgid "%{n:...%}: Display \"...\" only if element %n is present"
-#~ msgstr "%{n:...%}: \"...\" csak akkor legyen megjelenítve, ha van %n elem"
-
-#~ msgid ""
-#~ "Sorry, your GTK+ version (%d.%d.%d) does not work with Audacious.\n"
-#~ "Please use GTK+ %s or newer.\n"
-#~ msgstr ""
-#~ "Sajnos az Ön GTK+ verziója (%d.%d.%d) nem működik az Audacious-szel.\n"
-#~ "Használjon GTK+ %s verziót vagy újabbat.\n"
-
-#~ msgid "OPTIONS MENU"
-#~ msgstr "BEÁLLÍTÁSOK MENÜ"
-
-#~ msgid "DISABLE ALWAYS ON TOP"
-#~ msgstr "MINDIG LEGFELÜL KIKAPCSOLÁSA"
-
-#~ msgid "ENABLE ALWAYS ON TOP"
-#~ msgstr "MINDIG LEGFELÜL BEKAPCSOLÁSA"
-
-#~ msgid "FILE INFO BOX"
-#~ msgstr "FÁJLINFÓ ABLAK"
-
-#~ msgid "VISUALIZATION MENU"
-#~ msgstr "KIJELZÉS MENÜ"
-
-#, fuzzy
-#~ msgid "Track name: "
-#~ msgstr "Szám neve"
-
-#~ msgid ""
-#~ "<b><big>Unable to play files.</big></b>\n"
-#~ "\n"
-#~ "The following files could not be played. Please check that:\n"
-#~ "1. they are accessible.\n"
-#~ "2. you have enabled the media plugins required."
-#~ msgstr ""
-#~ "<b><big>Nem lehet fájlokat lejátszani.</big></b>\n"
-#~ "\n"
-#~ "A következő fájlok nem játszhatóak le. Ellenőrizze a következőket:\n"
-#~ "1. A fájlok hozzáférhetőek.\n"
-#~ "2. A szükséges médiabővítmények be vannak kapcsolva."
-
-#~ msgid "Show more _details"
-#~ msgstr "Több _részlet megjelenítése"
-
-#, fuzzy
-#~ msgid ""
-#~ "\n"
-#~ "Received SIGSEGV\n"
-#~ "\n"
-#~ "This could be a bug in Audacious. If you don't know why this happened, "
-#~ "file a bug at http://bugs-meta.atheme.org/\n"
-#~ "\n"
-#~ msgstr ""
-#~ "\n"
-#~ "SIGSEGV érkezett\n"
-#~ "\n"
-#~ "Ez egy hiba lehet az Audacious-ban. Ha nem tudja, hogy miért történt, "
-#~ "jelentse be a hibát a http://bugs.nenolod.net/ oldalon.\n"
-#~ "\n"
-
-#~ msgid ""
-#~ "Enables playlist transparency. This is not recommended for slower "
-#~ "machines as it requires some CPU time to create and cache the pixmaps "
-#~ "used for the transparency."
-#~ msgstr ""
-#~ "Lejátszólista átlátszóságának bekapcsolása. Nem ajánlott lassabb "
-#~ "számítógépeknél, mivel több CPU időt igényel az átlátszósághoz használt "
-#~ "képek létrehozása és gyorsítótárazása."
-
-#~ msgid "Enable playlist transparency"
-#~ msgstr "Lejátszólista átlátszóságának bekapcsolása"
-
-#~ msgid "%s: option `%s' is ambiguous\n"
-#~ msgstr "%s: a(z) `%s' opció nem egyértelmű\n"
-
-#~ msgid "%s: option `--%s' doesn't allow an argument\n"
-#~ msgstr "%s: a(z) `--%s' opció nem enged meg argumentumot\n"
-
-#~ msgid "%s: option `%c%s' doesn't allow an argument\n"
-#~ msgstr "%s: a(z) `%c%s' opció nem enged meg argumentumot\n"
-
-#~ msgid "%s: option `%s' requires an argument\n"
-#~ msgstr "%s: a(z) `%s' opcióhoz meg kell adni argumentumot\n"
-
-#~ msgid "%s: unrecognized option `%c%s'\n"
-#~ msgstr "%s: ismeretlen opció: `%c%s'\n"
-
-#~ msgid "%s: illegal option -- %c\n"
-#~ msgstr "%s: helytelen opció -- %c\n"
-
-#~ msgid "%s: invalid option -- %c\n"
-#~ msgstr "%s: érvénytelen opció -- %c\n"
-
-#~ msgid "%s: option requires an argument -- %c\n"
-#~ msgstr "%s: az opcióhoz meg kell adni argumentumot -- %c\n"
-
-#~ msgid "%s: option `-W %s' is ambiguous\n"
-#~ msgstr "%s: a `-W %s' opció nem egyértelmű\n"
-
-#~ msgid "%s: option `-W %s' doesn't allow an argument\n"
-#~ msgstr "%s: a `-W %s' opció nem enged meg argumentumot\n"
-
-#~ msgid ""
-#~ "Usage: audacious [options] [files] ...\n"
-#~ "\n"
-#~ "Options:\n"
-#~ "--------\n"
-#~ msgstr ""
-#~ "Használat: audacious [opciók] [fájlok] ...\n"
-#~ "\n"
-#~ "Opciók:\n"
-#~ "-------\n"
-
-#~ msgid "Display this text and exit"
-#~ msgstr "Ezen szöveg megjelenítése és kilépés"
-
-#~ msgid "Activate Audacious"
-#~ msgstr "Audacious aktiválása"
-
-#~ msgid "Previous session ID"
-#~ msgstr "Előző munkamenet-azonosító"
-
-#~ msgid "Disable error/warning interception (logging)"
-#~ msgstr "Hiba/figyelmeztetés elfogásának kikapcsolása (naplózás)"
-
-#~ msgid "Print version number and exit\n"
-#~ msgstr "Verziószám megjelenítése és kilépés\n"
-
-#~ msgid "Add/Open Files dialog"
-#~ msgstr "Fájlok hozzáadása/megnyitása párbeszédablak"
-
-#~ msgid "Close Dialog on Add"
-#~ msgstr "Párbeszédablak bezárása hozzáadás után"
-
-#~ msgid "Deselect All"
-#~ msgstr "Kijelölés megszüntetése"
-
-#~ msgid "Track Information Popup"
-#~ msgstr "Felbukkanó száminformáció"
-
-#~ msgid "<i>Genre</i>"
-#~ msgstr "<i>Műfaj</i>"
-
-#~ msgid "<i>Year</i>"
-#~ msgstr "<i>Év</i>"
-
-#~ msgid "<i>Track Number</i>"
-#~ msgstr "<i>Szám sorszáma</i>"
-
-#~ msgid "<i>Track Length</i>"
-#~ msgstr "<i>Szám hossza</i>"
-
-#~ msgid "/View Track Details"
-#~ msgstr "/Szám részleteinek megtekintése"
-
-#~ msgid "/Visualization Mode/Analyzer"
-#~ msgstr "/Kijelzési mód/Analizátor"
-
-#~ msgid "/Visualization Mode/Scope"
-#~ msgstr "/Kijelzési mód/Szkóp"
-
-#, fuzzy
-#~ msgid "/Visualization Mode/Voiceprint"
-#~ msgstr "/Kijelzési mód/Szkóp"
-
-#~ msgid "/Visualization Mode/Off"
-#~ msgstr "/Kijelzési mód/Kikapcsolva"
-
-#~ msgid "/Analyzer Mode/Normal"
-#~ msgstr "/Analizátor-üzemmód/Normál"
-
-#~ msgid "/Analyzer Mode/Lines"
-#~ msgstr "/Analizátor-üzemmód/Vonalak"
-
-#~ msgid "/Analyzer Mode/Bars"
-#~ msgstr "/Analizátor-üzemmód/Oszlopok"
-
-#~ msgid "/Analyzer Mode/Peaks"
-#~ msgstr "/Analizátor-üzemmód/Csúcsértékek"
-
-#, fuzzy
-#~ msgid "/Voiceprint mode/Normal"
-#~ msgstr "/Analizátor-üzemmód/Normál"
-
-#~ msgid "/WindowShade VU Mode/Normal"
-#~ msgstr "/Roló-üzemmód/Normál"
-
-#~ msgid "/WindowShade VU Mode/Smooth"
-#~ msgstr "/Roló-üzemmód/Finom"
-
-#~ msgid "/Analyzer Falloff/Slowest"
-#~ msgstr "/Analizátor esése/Leglassabb"
-
-#~ msgid "/Analyzer Falloff/Slow"
-#~ msgstr "/Analizátor esése/Lassú"
-
-#~ msgid "/Analyzer Falloff/Medium"
-#~ msgstr "/Analizátor esése/Közepes"
-
-#~ msgid "/Analyzer Falloff/Fast"
-#~ msgstr "/Analizátor esése/Gyors"
-
-#~ msgid "/Analyzer Falloff/Fastest"
-#~ msgstr "/Analizátor esése/Leggyorsabb"
-
-#~ msgid "/Peaks Falloff/Slowest"
-#~ msgstr "/Csúcsértékek esése/Leglassabb"
-
-#~ msgid "/Peaks Falloff/Slow"
-#~ msgstr "/Csúcsértékek esése/Lassú"
-
-#~ msgid "/Peaks Falloff/Medium"
-#~ msgstr "/Csúcsértékek esése/Közepes"
-
-#~ msgid "/Peaks Falloff/Fast"
-#~ msgstr "/Csúcsértékek esése/Gyors"
-
-#~ msgid "/Peaks Falloff/Fastest"
-#~ msgstr "/Csúcsértékek esése/Leggyorsabb"
-
-#~ msgid "/-"
-#~ msgstr "/-"
-
-#~ msgid "/Jump to Time"
-#~ msgstr "/Ugrás időpontra"
-
-#~ msgid "/About Audacious"
-#~ msgstr "/Audacious névjegye"
-
-#~ msgid "/Files..."
-#~ msgstr "/Fájlok..."
-
-#~ msgid "/Internet location..."
-#~ msgstr "/Internethely..."
-
-#, fuzzy
-#~ msgid "New List"
-#~ msgstr "/Új lista"
-
-#, fuzzy
-#~ msgid "Creates a new playlist."
-#~ msgstr "Elválasztók megjelenítése a lejátszólistában"
-
-#, fuzzy
-#~ msgid "Displays track information."
-#~ msgstr "Száminformáció"
-
-#~ msgid "/Load/Preset"
-#~ msgstr "/Betöltés/Beállítás"
-
-#~ msgid "/Load/Default"
-#~ msgstr "/Betöltés/Alapértelmezett beállítás"
-
-#~ msgid "/Load/Zero"
-#~ msgstr "/Betöltés/Nulla"
-
-#~ msgid "/Save/Preset"
-#~ msgstr "/Mentés/Beállítás"
-
-#~ msgid "/Save/Default"
-#~ msgstr "/Mentés/Alapértelmezett beállítás"
-
-#~ msgid "/Save/To file"
-#~ msgstr "/Mentés/Fájlba"
-
-#~ msgid "/Delete/Preset"
-#~ msgstr "/Törlés/Beállítás"
-
-#~ msgid "Load auto-preset"
-#~ msgstr "Automatikusan betöltődő beállítás betöltése"
-
-#~ msgid "Load equalizer preset"
-#~ msgstr "Equalizer-beállítás betöltése"
-
-#~ msgid "Delete auto-preset"
-#~ msgstr "Automatikusan betöltődő beállítás törlése"
-
-#~ msgid "/Show Popup Info"
-#~ msgstr "/Felbukkanó infó megjelenítése"
-
-#~ msgid "/Remove Duplicates/By Title"
-#~ msgstr "/Duplikátumok eltávolítása/Cím alapján"
-
-#~ msgid "/Remove Duplicates/By Filename"
-#~ msgstr "/Duplikátumok eltávolítása/Fájlnév alapján"
-
-#~ msgid "/Update View"
-#~ msgstr "/Nézet frissítése"
-
-#~ msgid "/Select All"
-#~ msgstr "/Mindent kijelöl"
-
-#~ msgid "/Sort List/By Date"
-#~ msgstr "/Lista rendezése/Dátum alapján"
-
-#~ msgid "/Sort Selection/By Title"
-#~ msgstr "/Kijelölés rendezése/Cím alapján"
-
-#~ msgid "/Sort Selection/By Artist"
-#~ msgstr "/Kijelölés rendezése/Előadó alapján"
-
-#~ msgid "/Sort Selection/By Filename"
-#~ msgstr "/Kijelölés rendezése/Fájlnév alapján"
-
-#~ msgid "/Sort Selection/By Path + Filename"
-#~ msgstr "/Kijelölés rendezése/Útvonal + fájlnév alapján"
-
-#~ msgid "/Sort Selection/By Date"
-#~ msgstr "/Kijelölés rendezése/Dátum alapján"
-
-#~ msgid "/Sort Selection/By Track Number"
-#~ msgstr "/Kijelölés rendezése/Szám sorszáma alapján"
-
-#~ msgid "/Sort Selection/By Playlist Entry"
-#~ msgstr "/Kijelölés rendezése/Lejátszólista-bejegyzés alapján"
-
-#, fuzzy
-#~ msgid "<b>_Miscillaneous UI Features</b>"
-#~ msgstr "<b>_Egyebek</b>"
+msgstr "Munkamenet kezelési lehetőségek mutatása"
 
-#~ msgid "** DOUBLESIZE HAS BEEN REMOVED **"
-#~ msgstr "** A DUPLA MÉRET EL LETT TÁVOLÍTVA **"
 
-#~ msgid "<b>_Transparency</b>"
-#~ msgstr "<b>Á_tlátszóság</b>"
diff --git a/po/it.po b/po/it.po
index dbb95fb..c89968e 100644
--- a/po/it.po
+++ b/po/it.po
@@ -1,2645 +1,1241 @@
-# translation of it.po to Italian
-# Italian translation of bmp.
-# Copyright (C) 2004 Alessio D'Ascanio <g3ntaro at gmail.com>
-# This file is distributed under the same license as the bmp package.
+# Italian translation for Audacious
+# Copyright (C) Audacious translators
+# This file is distributed under the same license as the Audacious package.
 #
+# Translators:
 # Alessio D'Ascanio <g3ntaro at gmail.com>, 2004.
 # Diego 'Flameeyes' Pettenò <flameeyes at gentoo.org>, 2006.
 # Diego 'Flameeyes' Pettenò <flameeyes at gmail.com>, 2007.
+# Jacopo Lorenzetti <jacopo.jl at gmail.com>, 2011, 2012.
 msgid ""
 msgstr ""
-"Project-Id-Version: it\n"
-"Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
-"PO-Revision-Date: 2007-02-19 19:12+0100\n"
-"Last-Translator: Diego 'Flameeyes' Pettenò <flameeyes at gmail.com>\n"
+"Project-Id-Version: Audacious\n"
+"Report-Msgid-Bugs-To: http://redmine.audacious-media-player.org/\n"
+"POT-Creation-Date: 2012-01-11 08:54-0500\n"
+"PO-Revision-Date: 2012-01-11 18:54+0000\n"
+"Last-Translator: Jacopo Lorenzetti <jacopo.jl at gmail.com>\n"
 "Language-Team: Italian\n"
-"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Poedit-Language: Italian\n"
-"X-Poedit-Country: ITALY\n"
-"X-Poedit-SourceCharset: utf-8\n"
-"X-Generator: KBabel 1.11.4\n"
-"Plural-Forms:  nplurals=2; plural=(n != 1);\n"
+"Language: it\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
 
-#: src/audacious/chardet.c:37
+#: src/audacious/adder.c:77
+msgid "Searching ..."
+msgstr "Ricerca in corso…"
+
+#: src/audacious/adder.c:113
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] "Trovato %d file"
+msgstr[1] "Trovati %d file"
+
+#: src/audacious/chardet.c:39
 msgid "  (invalid UTF-8)"
-msgstr "  (UTF-8 invalido)"
+msgstr "  (UTF-8 non valido)"
 
-#: src/audacious/credits.c:35
-#, fuzzy
+#: src/audacious/credits.c:37
 msgid "Core developers:"
-msgstr "Sviluppatori di 0.1.x:"
+msgstr "Core developer:"
 
-#: src/audacious/credits.c:49
+#: src/audacious/credits.c:51
 msgid "Graphics:"
 msgstr "Grafica:"
 
-#: src/audacious/credits.c:54
+#: src/audacious/credits.c:56
 msgid "Default skin:"
 msgstr "Skin predefinita:"
 
-#: src/audacious/credits.c:60
+#: src/audacious/credits.c:62
 msgid "Plugin development:"
 msgstr "Sviluppo plugin:"
 
-#: src/audacious/credits.c:83
+#: src/audacious/credits.c:85
 msgid "Patch authors:"
-msgstr "Autori di modifiche:"
+msgstr "Autori di patch:"
 
-#: src/audacious/credits.c:126
-#, fuzzy
+#: src/audacious/credits.c:131
 msgid "1.x developers:"
-msgstr "Sviluppatori di 0.1.x:"
+msgstr "Sviluppatori 1.x:"
 
-#: src/audacious/credits.c:148
+#: src/audacious/credits.c:153
 msgid "BMP Developers:"
 msgstr "Sviluppatori di BMP:"
 
-#: src/audacious/credits.c:180
-#, fuzzy
+#: src/audacious/credits.c:185
 msgid "Belarusian:"
-msgstr "Bulgaro:"
+msgstr "Bielorusso:"
 
-#: src/audacious/credits.c:183
+#: src/audacious/credits.c:188
 msgid "Basque:"
-msgstr ""
+msgstr "Basco:"
 
-#: src/audacious/credits.c:186
+#: src/audacious/credits.c:191
 msgid "Brazilian Portuguese:"
-msgstr "Portoghese (Brasile):"
+msgstr "Portoghese brasiliano:"
 
-#: src/audacious/credits.c:190
+#: src/audacious/credits.c:196
 msgid "Breton:"
 msgstr "Bretone:"
 
-#: src/audacious/credits.c:193
+#: src/audacious/credits.c:199
 msgid "Bulgarian:"
 msgstr "Bulgaro:"
 
-#: src/audacious/credits.c:196
-#, fuzzy
+#: src/audacious/credits.c:202
 msgid "Catalan:"
-msgstr "Italiano:"
+msgstr "Catalano:"
 
-#: src/audacious/credits.c:199
-#, fuzzy
+#: src/audacious/credits.c:206
 msgid "Chinese:"
-msgstr "Linee"
+msgstr "Cinese:"
 
-#: src/audacious/credits.c:202
+#: src/audacious/credits.c:209
 msgid "Croatian:"
 msgstr "Croato:"
 
-#: src/audacious/credits.c:205
+#: src/audacious/credits.c:212
 msgid "Czech:"
 msgstr "Ceco:"
 
-#: src/audacious/credits.c:208
+#: src/audacious/credits.c:215
 msgid "Dutch:"
 msgstr "Olandese:"
 
-#: src/audacious/credits.c:212
-#, fuzzy
+#: src/audacious/credits.c:219
 msgid "Estonian:"
-msgstr "Rumeno:"
+msgstr "Estone:"
 
-#: src/audacious/credits.c:215
+#: src/audacious/credits.c:222
 msgid "Finnish:"
 msgstr "Finlandese:"
 
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:227
 msgid "French:"
 msgstr "Francese:"
 
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:233
 msgid "German:"
 msgstr "Tedesco:"
 
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:240
 msgid "Georgian:"
 msgstr "Georgiano:"
 
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:243
 msgid "Greek:"
 msgstr "Greco:"
 
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:248
 msgid "Hindi:"
 msgstr "Hindi:"
 
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:251
 msgid "Hungarian:"
 msgstr "Ungherese:"
 
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:255
 msgid "Italian:"
 msgstr "Italiano:"
 
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:260
 msgid "Japanese:"
 msgstr "Giapponese:"
 
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:263
 msgid "Korean:"
 msgstr "Coreano:"
 
-#: src/audacious/credits.c:256
-#, fuzzy
+#: src/audacious/credits.c:266
 msgid "Latvian:"
-msgstr "Croato:"
+msgstr "Lettone:"
 
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:269
 msgid "Lithuanian:"
 msgstr "Lituano:"
 
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:274
 msgid "Macedonian:"
 msgstr "Macedone:"
 
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:277
+msgid "Mexican Spanish:"
+msgstr "Spagnolo messicano:"
+
+#: src/audacious/credits.c:280
 msgid "Polish:"
 msgstr "Polacco:"
 
-#: src/audacious/credits.c:271
-#, fuzzy
+#: src/audacious/credits.c:287
 msgid "Portuguese:"
-msgstr "Portoghese (Brasile):"
+msgstr "Portoghese:"
 
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:290
 msgid "Romanian:"
 msgstr "Rumeno:"
 
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:294
 msgid "Russian:"
 msgstr "Russo:"
 
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:298
 msgid "Serbian (Latin):"
 msgstr "Serbo (Latino):"
 
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:301
 msgid "Serbian (Cyrillic):"
 msgstr "Serbo (Cirillico):"
 
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:305
 msgid "Simplified Chinese:"
 msgstr "Cinese semplificato:"
 
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:308
 msgid "Slovak:"
 msgstr "Slovacco:"
 
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:312
 msgid "Spanish:"
 msgstr "Spagnolo:"
 
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:320
 msgid "Swedish:"
 msgstr "Svedese:"
 
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:323
 msgid "Traditional Chinese:"
 msgstr "Cinese tradizionale:"
 
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:329
 msgid "Turkish:"
 msgstr "Turco:"
 
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:333
 msgid "Ukrainian:"
 msgstr "Ucraino:"
 
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:338
+msgid "Vietnamese:"
+msgstr "Vietnamita:"
+
+#: src/audacious/credits.c:341
 msgid "Welsh:"
 msgstr "Gallese:"
 
-#: src/audacious/drct.c:254
-#, fuzzy
-msgid "Temporary Playlist"
-msgstr "Carica playlist"
-
-#: src/audacious/equalizer_preset.c:186
+#: src/audacious/equalizer_preset.c:180
 #, c-format
 msgid "Error importing Winamp EQF file '%s'"
-msgstr ""
-
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr ""
+msgstr "Errore durante l'importazione del file EQF di Winamp '%s'"
 
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/audacious/main.c:247
+#: src/audacious/main.c:243
 msgid "Skip backwards in playlist"
-msgstr "Indietreggia nella playlist"
+msgstr "Salta indietro nella playlist"
 
-#: src/audacious/main.c:248
+#: src/audacious/main.c:244
 msgid "Start playing current playlist"
-msgstr "Riproduci la playlist corrente"
+msgstr "Avvia la riproduzione della playlist corrente"
 
-#: src/audacious/main.c:249
+#: src/audacious/main.c:245
 msgid "Pause current song"
-msgstr "Pausa"
+msgstr "Interrompi il brano corrente"
 
-#: src/audacious/main.c:250
+#: src/audacious/main.c:246
 msgid "Stop current song"
-msgstr "Ferma la canzone"
+msgstr "Ferma il brano corrente"
 
-#: src/audacious/main.c:251
+#: src/audacious/main.c:247
 msgid "Pause if playing, play otherwise"
-msgstr "Pausa se si sta suonando, altrimenti riproduci"
+msgstr "Interrompi se in riproduzione, altrimenti riproduci"
 
-#: src/audacious/main.c:252
+#: src/audacious/main.c:248
 msgid "Skip forward in playlist"
-msgstr "Avanza nella playlist"
+msgstr "Salta avanti nella playlist"
 
-#: src/audacious/main.c:253
+#: src/audacious/main.c:249
 msgid "Display Jump to File dialog"
-msgstr "Visualizza la finestra di dialogo Salta al File"
+msgstr "Visualizza la finestra di dialogo Salta al file"
 
-#: src/audacious/main.c:254
-#, fuzzy
+#: src/audacious/main.c:250
 msgid "Add files to the playlist"
-msgstr "Aggiunge file alla playlist."
+msgstr "Aggiunge file alla playlist"
 
-#: src/audacious/main.c:255
+#: src/audacious/main.c:251
 msgid "Add new files to a temporary playlist"
-msgstr "Aggiungi nuovi file ad una playlist temporanea"
+msgstr "Aggiunge nuovi file a una playlist temporanea"
 
-#: src/audacious/main.c:256
+#: src/audacious/main.c:252
 msgid "Display the main window"
-msgstr "Mostra la finestra principale"
+msgstr "Visualizza la finestra principale"
 
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr "Mostra tutte le finestre di Audacious aperte"
-
-#: src/audacious/main.c:258
-#, fuzzy
+#: src/audacious/main.c:253
 msgid "Show version"
-msgstr "Mostra player"
+msgstr "Mostra versione"
 
-#: src/audacious/main.c:259
+#: src/audacious/main.c:254
 msgid "Print debugging messages"
-msgstr ""
+msgstr "Visualizza messaggi di debug"
 
-#: src/audacious/main.c:260
+#: src/audacious/main.c:255
+msgid "Headless mode (beta)"
+msgstr "Modalità headless (beta)"
+
+#: src/audacious/main.c:256
 msgid "FILE..."
-msgstr "FILE..."
+msgstr "FILE…"
 
-#: src/audacious/main.c:272
+#: src/audacious/main.c:268
 msgid "- play multimedia files"
 msgstr "- riproduci file multimediali"
 
-#: src/audacious/main.c:282
+#: src/audacious/main.c:278
 #, c-format
 msgid ""
 "%s: %s\n"
 "Try `%s --help' for more information.\n"
 msgstr ""
 "%s: %s\n"
-"Per maggiori informazioni si veda `%s --help' .\n"
-
-#: src/audacious/main.c:395
-msgid ""
-"Audacious seems to be already running but is not responding.  You can start "
-"another instance of the program, but please be warned that this can cause "
-"data loss.  If Audacious is not running, you can safely ignore this "
-"message.  Press OK to start Audacious or Cancel to quit."
-msgstr ""
+"Per maggiori informazioni prova `%s --help'.\n"
 
-#: src/audacious/main.c:558
+#: src/audacious/main.c:573
 msgid "Audacious"
 msgstr "Audacious"
 
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:307
 #, c-format
 msgid "No decoder found for %s."
-msgstr ""
+msgstr "Nessun decoder trovato per %s."
 
-#: src/audacious/playback.c:519
-msgid "Buffering ..."
-msgstr ""
+#: src/audacious/playlist-files.c:53
+#, c-format
+msgid "Cannot %s %s: unsupported file extension."
+msgstr "Impossibile %s %s: estensione file non supportata."
+
+#: src/audacious/playlist-files.c:54
+msgid "save"
+msgstr "salvare"
 
-#: src/audacious/playlist-new.c:288
-#, fuzzy
-msgid "Untitled Playlist"
+#: src/audacious/playlist-files.c:54
+msgid "load"
+msgstr "caricare"
+
+#: src/audacious/playlist-new.c:131
+msgid "New Playlist"
 msgstr "Nuova playlist"
 
-#: src/audacious/ui_preferences.c:88
-msgid "Audio"
-msgstr "Audio"
+#: src/audacious/playlist-new.c:132
+msgid "Now Playing"
+msgstr "In riproduzione"
 
-#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
+#: src/audacious/playlist-new.c:1630
+msgid ""
+"The playlist cannot be sorted because metadata scanning is still in progress"
+" (or has been disabled)."
 msgstr ""
+"La playlist non può essere riordinata poiché la scansione dei metadati è "
+"ancora in corso (o è stata disabilitata)."
+
+#: src/audacious/ui_preferences.c:85
+msgid "Audio"
+msgstr "Audio"
 
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:86
 msgid "Network"
-msgstr ""
+msgstr "Rete"
 
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:87 src/audacious/ui_preferences.c:1603
 msgid "Playlist"
 msgstr "Playlist"
 
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:88
 msgid "Plugins"
-msgstr "Plugins"
+msgstr "Plugin"
 
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:94 src/libaudgui/infopopup.c:199
 msgid "Artist"
 msgstr "Artista"
 
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:95 src/libaudgui/infopopup.c:201
 msgid "Album"
 msgstr "Album"
 
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:197
+#: src/libaudgui/ui_playlist_manager.c:279
 msgid "Title"
 msgstr "Titolo"
 
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:97
 msgid "Tracknumber"
 msgstr "Numero di traccia"
 
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:203
 msgid "Genre"
 msgstr "Genere"
 
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:99
 msgid "Filename"
 msgstr "Nome del file"
 
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:100
 msgid "Filepath"
-msgstr "Percorso file"
+msgstr "Percorso del file"
 
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:101
 msgid "Date"
 msgstr "Data"
 
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:205
 msgid "Year"
 msgstr "Anno"
 
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:103
 msgid "Comment"
 msgstr "Commento"
 
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:104
 msgid "Codec"
-msgstr ""
+msgstr "Codec"
 
-#: src/audacious/ui_preferences.c:109
-#, fuzzy
+#: src/audacious/ui_preferences.c:105
 msgid "Quality"
-msgstr "_Esci"
+msgstr "Qualità"
 
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:111
 msgid "None"
-msgstr ""
+msgstr "Nessuna"
+
+#: src/audacious/ui_preferences.c:112
+msgid "Arabic"
+msgstr "Araba"
+
+#: src/audacious/ui_preferences.c:113
+msgid "Baltic"
+msgstr "Baltica"
+
+#: src/audacious/ui_preferences.c:114
+msgid "Chinese"
+msgstr "Cinese"
 
 #: src/audacious/ui_preferences.c:115
-#, fuzzy
-msgid "Japanese"
-msgstr "Giapponese:"
+msgid "Greek"
+msgstr "Greca"
 
 #: src/audacious/ui_preferences.c:116
-#, fuzzy
-msgid "Taiwanese"
-msgstr "Giapponese:"
+msgid "Hebrew"
+msgstr "Ebraica"
 
 #: src/audacious/ui_preferences.c:117
-#, fuzzy
-msgid "Chinese"
-msgstr "Linee"
+msgid "Japanese"
+msgstr "Giapponese"
 
 #: src/audacious/ui_preferences.c:118
-#, fuzzy
 msgid "Korean"
-msgstr "Coreano:"
+msgstr "Coreana"
 
 #: src/audacious/ui_preferences.c:119
-#, fuzzy
-msgid "Russian"
-msgstr "Russo:"
+msgid "Polish"
+msgstr "Polacca"
 
 #: src/audacious/ui_preferences.c:120
-#, fuzzy
-msgid "Greek"
-msgstr "Greco:"
+msgid "Russian"
+msgstr "Russa"
 
 #: src/audacious/ui_preferences.c:121
-msgid "Hebrew"
-msgstr ""
+msgid "Taiwanese"
+msgstr "Taiwanese"
 
 #: src/audacious/ui_preferences.c:122
-#, fuzzy
 msgid "Turkish"
-msgstr "Turco:"
-
-#: src/audacious/ui_preferences.c:123
-msgid "Arabic"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:124
-#, fuzzy
-msgid "Polish"
-msgstr "Polacco:"
-
-#: src/audacious/ui_preferences.c:125
-msgid "Baltic"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:126
-msgid "Universal"
-msgstr ""
+msgstr "Turca"
 
-#: src/audacious/ui_preferences.c:146
-#, fuzzy
-msgid "<b>Bit Depth</b>"
-msgstr "<b>Nome del file</b>"
+#: src/audacious/ui_preferences.c:144
+msgid "Album mode"
+msgstr "Modalità album"
 
 #: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
+msgid "<b>Output Settings</b>"
+msgstr "<b>Impostazioni di uscita</b>"
 
-#: src/audacious/ui_preferences.c:151
-#, fuzzy
-msgid "<b>Volume Control</b>"
-msgstr "<b>Rotellina del mouse</b>"
+#: src/audacious/ui_preferences.c:149
+msgid "Bit depth:"
+msgstr "Profondità di bit:"
 
 #: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr ""
+msgid "Buffer size:"
+msgstr "Dimensione del buffer:"
 
 #: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
-
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
-msgstr ""
+msgid "ms"
+msgstr "ms"
 
-#: src/audacious/ui_preferences.c:160
-#, fuzzy
-msgid "Amplify untagged files:"
-msgstr "- riproduci file multimediali"
+#: src/audacious/ui_preferences.c:155
+msgid "Use software volume control (not recommended)"
+msgstr "Utilizza controllo volume software (non raccomandato)"
 
-#: src/audacious/ui_preferences.c:164
-#, fuzzy
+#: src/audacious/ui_preferences.c:157
 msgid "<b>Replay Gain</b>"
-msgstr "<b>Configurazione Proxy</b>"
+msgstr "Replay Gain"
 
-#: src/audacious/ui_preferences.c:165
-#, fuzzy
+#: src/audacious/ui_preferences.c:158
 msgid "Enable Replay Gain"
-msgstr "Abilita utilizzo del proxy"
-
-#: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>Metadata</b>"
+msgstr "Abilita Replay Gain"
 
-#: src/audacious/ui_preferences.c:168
-#, fuzzy
-msgid "Single track mode"
-msgstr "Mostra i dettagli della traccia."
+#: src/audacious/ui_preferences.c:161
+msgid "Prevent clipping (recommended)"
+msgstr "Evita il clipping (raccomandato)"
 
-#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "Nome dell'album: "
-
-#: src/audacious/ui_preferences.c:172
-#, fuzzy
+#: src/audacious/ui_preferences.c:163
 msgid "<b>Adjust Levels</b>"
-msgstr "<b>Rotellina del mouse</b>"
+msgstr "<b>Regola i livelli</b>"
+
+#: src/audacious/ui_preferences.c:164
+msgid "Amplify all files:"
+msgstr "Amplifica tutti i file:"
 
-#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "<b>Informazioni di popup</b>"
+#: src/audacious/ui_preferences.c:166 src/audacious/ui_preferences.c:169
+msgid "dB"
+msgstr "dB"
 
-#: src/audacious/ui_preferences.c:176
-msgid "Enable clipping prevention"
-msgstr ""
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify untagged files:"
+msgstr "Amplifica i file senza tag:"
 
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:172
 msgid "Proxy hostname:"
-msgstr "Nome del proxy:"
+msgstr "Host del proxy:"
 
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:173
 msgid "Proxy port:"
 msgstr "Porta del proxy:"
 
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:176
 msgid "Proxy username:"
 msgstr "Utente proxy:"
 
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:177
 msgid "Proxy password:"
 msgstr "Password proxy:"
 
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:181
 msgid "<b>Proxy Configuration</b>"
-msgstr "<b>Configurazione Proxy</b>"
+msgstr "<b>Configurazione proxy</b>"
 
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:182
 msgid "Enable proxy usage"
 msgstr "Abilita utilizzo del proxy"
 
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:185
 msgid "Use authentication with proxy"
 msgstr "Usa autenticazione con il proxy"
 
-#: src/audacious/ui_preferences.c:197
-msgid ""
-"<span size=\"small\">Changing these settings will require a restart of "
-"Audacious.</span>"
-msgstr ""
-"<span size=\"small\">Modificare queste impostazioni richiederà un riavvio di "
-"Audacious.</span>"
-
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
 msgid "Auto character encoding detector for:"
 msgstr "Individuazione automatica della codifica dei caratteri per:"
 
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:198
 msgid "Fallback character encodings:"
-msgstr "Codifica dei caratteri di riserva:"
+msgstr "Codifiche di riserva dei caratteri:"
 
-#: src/audacious/ui_preferences.c:209
-msgid ""
-"List of character encodings used for fall back conversion of metadata. If "
-"automatic character encoding detector failed or has been disabled, encodings "
-"in this list would be treated as candidates of the encoding of metadata, and "
-"fall back conversion from these encodings to UTF-8 would be attempted."
-msgstr ""
-"Lista di codifiche di caratteri utilizzate per la conversione di riserva dei "
-"metadati. Se l'individuazione della codifica di caratteri fallisce o è stata "
-"disattivata, verranno considerati candidati per la codifica dei metadati le "
-"codifiche di questa lista, e sarà tentata una conversione di riserva da "
-"queste a UTF-8."
-
-#: src/audacious/ui_preferences.c:213
-#, fuzzy
+#: src/audacious/ui_preferences.c:202
 msgid "<b>Behavior</b>"
-msgstr "<b>Nome del file</b>"
+msgstr "<b>Comportamento</b>"
 
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:203
 msgid "Continue playback on startup"
 msgstr "Continua la riproduzione all'avvio"
 
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:205
 msgid "Advance when the current song is deleted"
-msgstr ""
+msgstr "Avanza quando il brano corrente viene eliminato"
 
-#: src/audacious/ui_preferences.c:218
-#, fuzzy
+#: src/audacious/ui_preferences.c:207
 msgid "Clear the playlist when opening files"
-msgstr "Crea una nuova playlist con gli elementi individuati"
+msgstr "Cancella la playlist quando si aprono i file"
 
-#: src/audacious/ui_preferences.c:220
-#, fuzzy
+#: src/audacious/ui_preferences.c:209
 msgid "Open files in a temporary playlist"
-msgstr "Aggiungi nuovi file ad una playlist temporanea"
+msgstr "Apri i file in una playlist temporanea"
 
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:211
 msgid "<b>Metadata</b>"
-msgstr "<b>Metadata</b>"
+msgstr "<b>Metadati</b>"
+
+#: src/audacious/ui_preferences.c:212
+msgid "Do not load metadata for songs until played"
+msgstr "Non caricare i metadati dei brani finché non vengono riprodotti"
+
+#: src/audacious/ui_preferences.c:230
+msgid "TITLE"
+msgstr "TITOLO"
+
+#: src/audacious/ui_preferences.c:231
+msgid "ARTIST - TITLE"
+msgstr "ARTISTA - TITOLO"
+
+#: src/audacious/ui_preferences.c:232
+msgid "ARTIST - ALBUM - TITLE"
+msgstr "ARTISTA - ALBUM - TITOLO"
+
+#: src/audacious/ui_preferences.c:233
+msgid "ARTIST - ALBUM - TRACK. TITLE"
+msgstr "ARTISTA - ALBUM - TRACCIA. TITOLO"
+
+#: src/audacious/ui_preferences.c:234
+msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
+msgstr "ARTISTA [ALBUM] - TRACCIA. TITOLO"
+
+#: src/audacious/ui_preferences.c:235
+msgid "ALBUM - TITLE"
+msgstr "ALBUM - TITOLO"
 
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:556
 msgid "Category"
 msgstr "Categoria"
 
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:780
 msgid "Popup Information Settings"
-msgstr "Impostazioni delle informazioni di popup"
+msgstr "Impostazioni delle informazioni popup"
 
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:789
 msgid "<b>Cover image retrieve</b>"
-msgstr "<b>Ricerca delle immagini delle copertine</b>"
+msgstr "<b>Recupero dell'immagine di copertina</b>"
 
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:794
 msgid ""
 "While searching for the album's cover, Audacious looks for certain words in "
 "the filename. You can specify those words in the lists below, separated "
 "using commas."
 msgstr ""
-"Quando si cerca la copertina di un album, Audacious cerca certe parole nel "
-"nome del file.Si possono specificare tali parole nella lista seguente, "
-"separate da virgola."
+"Durante la ricerca della copertina dell'album, Audacious cerca certe parole "
+"nel nome del file. Puoi specificare tali parole nella lista seguente, "
+"separate da virgole."
 
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:811
 msgid "Exclude:"
 msgstr "Escludi:"
 
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:818
 msgid "Include:"
 msgstr "Includi:"
 
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:835
 msgid "Recursively search for cover"
 msgstr "Cerca la copertina ricorsivamente"
 
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:845
 msgid "Search depth: "
-msgstr "Profondità di ricerca:"
+msgstr "Profondità di ricerca: "
 
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:859
 msgid "Use per-file cover"
 msgstr "Usa una copertina diversa per file"
 
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:862
 msgid "<b>Miscellaneous</b>"
 msgstr "<b>Varie</b>"
 
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:871
 msgid "Show Progress bar for the current track"
-msgstr "Mostra barra di avanzamento per la traccia corrente."
+msgstr "Mostra barra di avanzamento per la traccia corrente"
 
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:881
 msgid "Delay until filepopup comes up: "
-msgstr "Attendi fino alla comparsa del popup file:"
+msgstr "Ritardo prima della comparsa del popup file: "
+
+#: src/audacious/ui_preferences.c:1309
+msgid "Custom"
+msgstr "Personalizzato"
 
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1352
 msgid "<b>Song Display</b>"
-msgstr ""
+msgstr "<b>Visualizzazione del brano</b>"
 
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1361
 msgid "Show song numbers"
-msgstr ""
+msgstr "Mostra numeri dei brani"
 
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1372
 msgid "Show leading zeroes (02:00 instead of 2:00)"
-msgstr ""
+msgstr "Mostra zeri iniziali (02:00 invece di 2:00)"
 
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1394
 msgid "Show information about titlestring format"
-msgstr "Mostra informazioni sulla stringa del titolo"
-
-#: src/audacious/ui_preferences.c:1514
-msgid "TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1515
-msgid "ARTIST - TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1516
-msgid "ARTIST - ALBUM - TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1517
-msgid "ARTIST - ALBUM - TRACK. TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1518
-msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1519
-msgid "ALBUM - TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1520
-#, fuzzy
-msgid "Custom"
-msgstr "Stringa personalizzata:"
+msgstr "Mostra informazioni sul formato della stringa del titolo"
 
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1410
 msgid "Custom string:"
 msgstr "Stringa personalizzata:"
 
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1417
 msgid "Title format:"
 msgstr "Formato titolo:"
 
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1428
 msgid "<b>Popup Information</b>"
-msgstr "<b>Informazioni di popup</b>"
+msgstr "<b>Informazioni popup</b>"
 
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1443
 msgid "Show popup information for playlist entries"
-msgstr "Mostra le inforormazioni di popup per gli elementi della playlist"
+msgstr "Mostra informazioni popup per gli elementi della playlist"
 
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1444
 msgid ""
 "Toggles popup information window for the pointed entry in the playlist. The "
 "window shows title of song, name of album, genre, year of publish, track "
 "number, track length, and artwork."
 msgstr ""
-"Abilita la finestra di informazioni di popup per l'elemento puntato. La "
-"finestra mostra il titolo della canzone, il nome dell'album, il genere, "
-"l'anno di pubblicazione, il numero di traccia, la lunghezza della traccia e "
-"l'artwork."
+"Attiva la finestra di informazioni popup per l'elemento puntato nella "
+"playlist. La finestra mostra il titolo della canzone, il nome dell'album, il"
+" genere, l'anno di pubblicazione, il numero di traccia, la durata della "
+"traccia e la grafica."
 
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1455
 msgid "Edit settings for popup information"
-msgstr "Modifica impostazioni per le informazioni di popup"
-
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>Sistema audio</b>"
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "Dimensione del buffer:"
+msgstr "Modifica impostazioni per le informazioni popup"
 
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
-msgstr "Plugin di output corrente:"
+#: src/audacious/ui_preferences.c:1544
+msgid "Output plugin:"
+msgstr "Plugin di uscita:"
 
-#: src/audacious/ui_preferences.c:1790
-#, fuzzy
+#: src/audacious/ui_preferences.c:1603
 msgid "Transport"
-msgstr "Traduttori"
+msgstr "Trasporto"
 
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1603
 msgid "Input"
-msgstr ""
+msgstr "Ingresso"
 
-#: src/audacious/ui_preferences.c:1791
-#, fuzzy
+#: src/audacious/ui_preferences.c:1604
 msgid "Effect"
-msgstr "<b>Effetti</b>"
+msgstr "Effetto"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1604
 msgid "Visualization"
 msgstr "Visualizzazione"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1604
 msgid "General"
-msgstr ""
+msgstr "Generici"
 
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1644
 msgid "Audacious Preferences"
-msgstr "Impostazioni di Audacious"
+msgstr "Preferenze di Audacious"
 
-#: src/audacious/util.c:161
+#: src/audacious/util.c:120
 #, c-format
 msgid "Could not create directory (%s): %s\n"
 msgstr "Impossibile creare la directory (%s): %s\n"
 
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:273
 msgid "Position not found."
-msgstr ""
+msgstr "Posizione non trovata."
 
-#: src/audtool/handlers_vitals.c:64
+#: src/audtool/handlers_vitals.c:63
 msgid "No song playing."
-msgstr ""
+msgstr "Nessun brano in riproduzione."
+
+#: src/libaudcore/audstrings.c:199
+#, c-format
+msgid "Audio CD, track %s"
+msgstr "CD Audio, traccia %s"
 
-#: src/libaudcore/tuple.c:685
+#: src/libaudcore/tuple.c:536
 msgid "Mono"
-msgstr ""
+msgstr "Mono"
 
-#: src/libaudcore/tuple.c:687
-#, fuzzy
+#: src/libaudcore/tuple.c:538
 msgid "Stereo"
-msgstr "stereo"
+msgstr "Stereo"
 
-#: src/libaudcore/tuple.c:689
+#: src/libaudcore/tuple.c:540
 #, c-format
-msgid "%d channels"
-msgstr ""
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] "%d canale"
+msgstr[1] "%d canali"
+
+#: src/libaudgui/about.c:52 src/libaudgui/about.c:115
+msgid "Credits"
+msgstr "Crediti"
+
+#: src/libaudgui/about.c:52
+msgid "Translators"
+msgstr "Traduttori"
 
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/about.c:91
+msgid "About Audacious"
+msgstr "Informazioni su Audacious"
+
+#: src/libaudgui/confirm.c:76
 #, c-format
 msgid ""
 "Are you sure you want to close %s?  If you do, any changes made since the "
 "playlist was exported will be lost."
 msgstr ""
+"Sei sicuro di voler chiudere %s?  Se lo fai, qualunque modifica apportata "
+"dopo l'esportazione della playlist andrà persa."
 
-#: src/libaudgui/confirm.c:77
-#, fuzzy
+#: src/libaudgui/confirm.c:89
 msgid "_Don't show this message again"
-msgstr "Non mostrare più questo avvertimento"
+msgstr "_Non mostrare più questo messaggio"
 
-#: src/libaudgui/confirm.c:115
-#, fuzzy
+#: src/libaudgui/confirm.c:126
 msgid "Rename Playlist"
-msgstr "Salva playlist"
+msgstr "Rinomina playlist"
 
-#: src/libaudgui/effects-menu.c:76
+#: src/libaudgui/effects-menu.c:74
 msgid "settings ..."
-msgstr ""
+msgstr "impostazioni…"
 
-#: src/libaudgui/equalizer.c:68
-#, fuzzy
+#: src/libaudgui/equalizer.c:51
 msgid "_Enable"
-msgstr "Abilitato"
+msgstr "_Abilita"
 
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:123
 msgid "31 Hz"
-msgstr ""
+msgstr "31 Hz"
 
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:123
 msgid "63 Hz"
-msgstr ""
+msgstr "63 Hz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
 msgid "125 Hz"
-msgstr ""
+msgstr "125 Hz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
 msgid "250 Hz"
-msgstr ""
+msgstr "250 Hz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
 msgid "500 Hz"
-msgstr ""
+msgstr "500 Hz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
 msgid "1 kHz"
-msgstr ""
+msgstr "1 kHz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
 msgid "2 kHz"
-msgstr ""
+msgstr "2 kHz"
 
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:125
 msgid "4 kHz"
-msgstr ""
+msgstr "4 kHz"
 
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:125
 msgid "8 kHz"
-msgstr ""
+msgstr "8 kHz"
 
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:125
 msgid "16 kHz"
-msgstr ""
+msgstr "16 kHz"
 
-#: src/libaudgui/equalizer.c:147
+#: src/libaudgui/equalizer.c:130
 msgid "Equalizer"
 msgstr "Equalizzatore"
 
-#: src/libaudgui/equalizer.c:163
+#: src/libaudgui/equalizer.c:146
 msgid "Preamp"
-msgstr ""
+msgstr "Preamplificazione"
 
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:207
 msgid "Track Number"
 msgstr "Numero di traccia"
 
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:209
 msgid "Track Length"
-msgstr "Lunghezza della traccia"
+msgstr "Durata della traccia"
 
-#: src/libaudgui/infowin.c:77
+#: src/libaudgui/infowin.c:75
 msgid "Acid Jazz"
-msgstr ""
+msgstr "Acid Jazz"
 
-#: src/libaudgui/infowin.c:78
+#: src/libaudgui/infowin.c:76
 msgid "Acid Rock"
-msgstr ""
+msgstr "Acid Rock"
 
-#: src/libaudgui/infowin.c:79
+#: src/libaudgui/infowin.c:77
 msgid "Ambient"
-msgstr ""
+msgstr "Ambient"
 
-#: src/libaudgui/infowin.c:80
+#: src/libaudgui/infowin.c:78
 msgid "Bebop"
-msgstr ""
+msgstr "Bebop"
 
-#: src/libaudgui/infowin.c:81
-#, fuzzy
+#: src/libaudgui/infowin.c:79
 msgid "Bluegrass"
-msgstr "Blu"
+msgstr "Bluegrass"
 
-#: src/libaudgui/infowin.c:82
-#, fuzzy
+#: src/libaudgui/infowin.c:80
 msgid "Blues"
-msgstr "Blu"
+msgstr "Blues"
 
-#: src/libaudgui/infowin.c:83
+#: src/libaudgui/infowin.c:81
 msgid "Chamber Music"
-msgstr ""
+msgstr "Musica da camera"
 
-#: src/libaudgui/infowin.c:84
+#: src/libaudgui/infowin.c:82
 msgid "Classical"
-msgstr ""
+msgstr "Classica"
 
-#: src/libaudgui/infowin.c:85
+#: src/libaudgui/infowin.c:83
 msgid "Country"
-msgstr ""
+msgstr "Country"
 
-#: src/libaudgui/infowin.c:86
+#: src/libaudgui/infowin.c:84
 msgid "Death Metal"
-msgstr ""
+msgstr "Death Metal"
 
-#: src/libaudgui/infowin.c:87
+#: src/libaudgui/infowin.c:85
 msgid "Disco"
-msgstr ""
+msgstr "Disco"
 
-#: src/libaudgui/infowin.c:88
+#: src/libaudgui/infowin.c:86
 msgid "Easy Listening"
-msgstr ""
+msgstr "Easy Listening"
 
-#: src/libaudgui/infowin.c:89
+#: src/libaudgui/infowin.c:87
 msgid "Folk"
-msgstr ""
+msgstr "Folk"
 
-#: src/libaudgui/infowin.c:90
+#: src/libaudgui/infowin.c:88
 msgid "Funk"
-msgstr ""
+msgstr "Funk"
 
-#: src/libaudgui/infowin.c:91
+#: src/libaudgui/infowin.c:89
 msgid "Gangsta Rap"
-msgstr ""
+msgstr "Gangsta Rap"
 
-#: src/libaudgui/infowin.c:92
+#: src/libaudgui/infowin.c:90
 msgid "Gospel"
-msgstr ""
+msgstr "Gospel"
 
-#: src/libaudgui/infowin.c:93
+#: src/libaudgui/infowin.c:91
 msgid "Grunge"
-msgstr ""
+msgstr "Grunge"
 
-#: src/libaudgui/infowin.c:94
+#: src/libaudgui/infowin.c:92
 msgid "Hard Rock"
-msgstr ""
+msgstr "Hard Rock"
 
-#: src/libaudgui/infowin.c:95
+#: src/libaudgui/infowin.c:93
 msgid "Heavy Metal"
-msgstr ""
+msgstr "Heavy Metal"
 
-#: src/libaudgui/infowin.c:96
+#: src/libaudgui/infowin.c:94
 msgid "Hip-hop"
-msgstr ""
+msgstr "Hip-hop"
 
-#: src/libaudgui/infowin.c:97
-#, fuzzy
+#: src/libaudgui/infowin.c:95
 msgid "House"
-msgstr "Mouse"
+msgstr "House"
 
-#: src/libaudgui/infowin.c:98
+#: src/libaudgui/infowin.c:96
 msgid "Jazz"
-msgstr ""
+msgstr "Jazz"
 
-#: src/libaudgui/infowin.c:99
+#: src/libaudgui/infowin.c:97
 msgid "Jungle"
-msgstr ""
+msgstr "Jungle"
 
-#: src/libaudgui/infowin.c:100
+#: src/libaudgui/infowin.c:98
 msgid "Metal"
-msgstr ""
+msgstr "Metal"
 
-#: src/libaudgui/infowin.c:101
+#: src/libaudgui/infowin.c:99
 msgid "New Age"
-msgstr ""
+msgstr "New Age"
 
-#: src/libaudgui/infowin.c:102
+#: src/libaudgui/infowin.c:100
 msgid "New Wave"
-msgstr ""
+msgstr "New Wave"
 
-#: src/libaudgui/infowin.c:103
-#, fuzzy
+#: src/libaudgui/infowin.c:101
 msgid "Noise"
-msgstr "Mouse"
+msgstr "Noise"
 
-#: src/libaudgui/infowin.c:104
+#: src/libaudgui/infowin.c:102
 msgid "Pop"
-msgstr ""
+msgstr "Pop"
 
-#: src/libaudgui/infowin.c:105
+#: src/libaudgui/infowin.c:103
 msgid "Punk Rock"
-msgstr ""
+msgstr "Punk Rock"
 
-#: src/libaudgui/infowin.c:106
+#: src/libaudgui/infowin.c:104
 msgid "Rap"
-msgstr ""
+msgstr "Rap"
 
-#: src/libaudgui/infowin.c:107
-#, fuzzy
+#: src/libaudgui/infowin.c:105
 msgid "Reggae"
-msgstr "_Rinomina"
+msgstr "Reggae"
 
-#: src/libaudgui/infowin.c:108
+#: src/libaudgui/infowin.c:106
 msgid "Rock"
-msgstr ""
+msgstr "Rock"
 
-#: src/libaudgui/infowin.c:109
+#: src/libaudgui/infowin.c:107
 msgid "Rock and Roll"
-msgstr ""
+msgstr "Rock and Roll"
 
-#: src/libaudgui/infowin.c:110
+#: src/libaudgui/infowin.c:108
 msgid "Rhythm and Blues"
-msgstr ""
+msgstr "Rhythm and Blues"
 
-#: src/libaudgui/infowin.c:111
+#: src/libaudgui/infowin.c:109
 msgid "Ska"
-msgstr ""
+msgstr "Ska"
 
-#: src/libaudgui/infowin.c:112
+#: src/libaudgui/infowin.c:110
 msgid "Soul"
-msgstr ""
+msgstr "Soul"
 
-#: src/libaudgui/infowin.c:113
+#: src/libaudgui/infowin.c:111
 msgid "Swing"
-msgstr ""
+msgstr "Swing"
 
-#: src/libaudgui/infowin.c:114
+#: src/libaudgui/infowin.c:112
 msgid "Techno"
-msgstr ""
+msgstr "Techno"
 
-#: src/libaudgui/infowin.c:115
+#: src/libaudgui/infowin.c:113
 msgid "Trip-hop"
-msgstr ""
+msgstr "Trip-hop"
 
-#: src/libaudgui/infowin.c:175 src/libaudgui/infowin.c:361
-#: src/libaudgui/infowin.c:364 src/libaudgui/infowin.c:367
-#, fuzzy
+#: src/libaudgui/infowin.c:177 src/libaudgui/infowin.c:363
+#: src/libaudgui/infowin.c:366 src/libaudgui/infowin.c:369
 msgid "<span size=\"small\">n/a</span>"
-msgstr "<span size=\"small\">Anno</span>"
+msgstr "<span size=\"small\">n/d</span>"
 
-#: src/libaudgui/infowin.c:265
+#: src/libaudgui/infowin.c:267
 msgid "Metadata updated successfully"
-msgstr ""
+msgstr "Metadati aggiornati con successo"
 
-#: src/libaudgui/infowin.c:270
+#: src/libaudgui/infowin.c:272
 msgid "Metadata updating failed"
-msgstr ""
+msgstr "Errore nell'aggiornamento dei metadati"
 
-#: src/libaudgui/infowin.c:318
+#: src/libaudgui/infowin.c:320
 msgid "Track Information"
 msgstr "Informazioni sulla traccia"
 
-#: src/libaudgui/infowin.c:350
-#, fuzzy
+#: src/libaudgui/infowin.c:352
 msgid "<span size=\"small\">Format:</span>"
-msgstr "<span size=\"small\">Commenti</span>"
+msgstr "<span size=\"small\">Formato:</span>"
 
-#: src/libaudgui/infowin.c:354
-#, fuzzy
+#: src/libaudgui/infowin.c:356
 msgid "<span size=\"small\">Quality:</span>"
-msgstr "<span size=\"small\">Titolo</span>"
+msgstr "<span size=\"small\">Qualità:</span>"
 
-#: src/libaudgui/infowin.c:357
-#, fuzzy
+#: src/libaudgui/infowin.c:359
 msgid "<span size=\"small\">Bitrate:</span>"
-msgstr "<span size=\"small\">Commenti</span>"
+msgstr "<span size=\"small\">Bitrate:</span>"
 
-#: src/libaudgui/infowin.c:387
+#: src/libaudgui/infowin.c:389
 msgid "<span size=\"small\">Title</span>"
 msgstr "<span size=\"small\">Titolo</span>"
 
-#: src/libaudgui/infowin.c:399
+#: src/libaudgui/infowin.c:401
 msgid "<span size=\"small\">Artist</span>"
 msgstr "<span size=\"small\">Artista</span>"
 
-#: src/libaudgui/infowin.c:411
+#: src/libaudgui/infowin.c:413
 msgid "<span size=\"small\">Album</span>"
 msgstr "<span size=\"small\">Album</span>"
 
-#: src/libaudgui/infowin.c:423
+#: src/libaudgui/infowin.c:425
 msgid "<span size=\"small\">Comment</span>"
-msgstr "<span size=\"small\">Commenti</span>"
+msgstr "<span size=\"small\">Commento</span>"
 
-#: src/libaudgui/infowin.c:435
+#: src/libaudgui/infowin.c:437
 msgid "<span size=\"small\">Genre</span>"
 msgstr "<span size=\"small\">Genere</span>"
 
-#: src/libaudgui/infowin.c:456
+#: src/libaudgui/infowin.c:458
 msgid "<span size=\"small\">Year</span>"
 msgstr "<span size=\"small\">Anno</span>"
 
-#: src/libaudgui/infowin.c:467
+#: src/libaudgui/infowin.c:469
 msgid "<span size=\"small\">Track Number</span>"
 msgstr "<span size=\"small\">Numero di traccia</span>"
 
-#: src/libaudgui/infowin.c:549
+#: src/libaudgui/infowin.c:548
 #, c-format
 msgid "%d kb/s"
-msgstr ""
+msgstr "%d kb/s"
 
-#: src/libaudgui/infowin.c:579
+#: src/libaudgui/infowin.c:575
 #, c-format
 msgid "No info available for %s.\n"
-msgstr ""
+msgstr "Nessuna informazione disponibile per %s.\n"
 
-#: src/libaudgui/ui_about.c:71
-msgid "About Audacious"
-msgstr "Informazioni su Audacious"
+#: src/libaudgui/jump-to-time.c:72
+msgid "Jump to Time"
+msgstr "Salta alla posizione"
 
-#: src/libaudgui/ui_about.c:93 src/libaudgui/ui_credits.c:122
-msgid "Credits"
-msgstr "Crediti"
+#: src/libaudgui/jump-to-time.c:87
+msgid "mm:ss"
+msgstr "mm:ss"
 
-#: src/libaudgui/ui_credits.c:126
-msgid "Translators"
-msgstr "Traduttori"
+#: src/libaudgui/playlists.c:33
+msgid "Export Playlist"
+msgstr "Esporta playlist"
 
-#: src/libaudgui/ui_fileopener.c:108
+#: src/libaudgui/playlists.c:33
+msgid "Import Playlist"
+msgstr "Importa playlist"
+
+#: src/libaudgui/playlists.c:66
+#, c-format
+msgid "Overwrite %s?"
+msgstr "Sovrascrivere %s?"
+
+#: src/libaudgui/queue-manager.c:196
+msgid "Queue Manager"
+msgstr "Gestione coda"
+
+#: src/libaudgui/ui_fileopener.c:109
 msgid "Open Files"
-msgstr "Apri Files"
+msgstr "Apri file"
 
-#: src/libaudgui/ui_fileopener.c:108
+#: src/libaudgui/ui_fileopener.c:109
 msgid "Add Files"
-msgstr "Aggiungi Files"
+msgstr "Aggiungi file"
 
-#: src/libaudgui/ui_fileopener.c:110
+#: src/libaudgui/ui_fileopener.c:111
 msgid "Close dialog on Open"
 msgstr "Chiudi finestra quando Apri"
 
-#: src/libaudgui/ui_fileopener.c:110
+#: src/libaudgui/ui_fileopener.c:111
 msgid "Close dialog on Add"
 msgstr "Chiudi finestra quando Aggiungi"
 
-#: src/libaudgui/ui_jumptotrack.c:133
-msgid "Un_queue"
-msgstr "Rimuovi dalla _coda"
-
-#: src/libaudgui/ui_jumptotrack.c:135 src/libaudgui/ui_jumptotrack.c:512
+#: src/libaudgui/ui_jumptotrack.c:109 src/libaudgui/ui_jumptotrack.c:117
+#: src/libaudgui/ui_jumptotrack.c:326
 msgid "_Queue"
 msgstr "_Coda"
 
-#: src/libaudgui/ui_jumptotrack.c:399
-msgid "Jump to Track"
-msgstr "Salta alla traccia"
+#: src/libaudgui/ui_jumptotrack.c:115
+msgid "Un_queue"
+msgstr "Rimuovi dalla _coda"
 
-#: src/libaudgui/ui_jumptotrack.c:442
+#: src/libaudgui/ui_jumptotrack.c:258
+msgid "Jump to Song"
+msgstr "Salta al brano"
+
+#: src/libaudgui/ui_jumptotrack.c:281
 msgid "Filter: "
-msgstr "Filtro:"
+msgstr "Filtro: "
 
-#: src/libaudgui/ui_jumptotrack.c:443
+#: src/libaudgui/ui_jumptotrack.c:282
 msgid "_Filter:"
 msgstr "_Filtro:"
 
-#: src/libaudgui/ui_jumptotrack.c:461
+#: src/libaudgui/ui_jumptotrack.c:292
 msgid "Remember"
-msgstr ""
+msgstr "Ricorda"
 
-#: src/libaudgui/ui_jumptotrack.c:470
-#, fuzzy
+#: src/libaudgui/ui_jumptotrack.c:299
 msgid "Clea_r"
-msgstr "Cancella coda"
+msgstr "Ca_ncella"
 
-#: src/libaudgui/ui_jumptotrack.c:504
-#, fuzzy
+#: src/libaudgui/ui_jumptotrack.c:319
 msgid "Close on Jump"
-msgstr "Chiudi finestra quando Apri"
+msgstr "Chiudi quando salti"
 
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:253
 msgid "Playlist Manager"
-msgstr "Gestore playlist"
+msgstr "Gestione playlist"
 
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:280
 msgid "Entries"
 msgstr "Elementi"
 
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:301
 msgid "_Rename"
 msgstr "_Rinomina"
 
-#: src/libaudgui/ui_playlist_manager.c:251
-#, fuzzy
+#: src/libaudgui/ui_playlist_manager.c:325
 msgid "_Close dialog on activating playlist"
-msgstr "Chiudi finestra quando Apri"
+msgstr "_Chiudi finestra quando attivi la playlist"
 
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:48
 msgid "Open URL"
-msgstr ""
+msgstr "Apri URL"
 
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:48
 msgid "Add URL"
+msgstr "Aggiungi URL"
+
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
 msgstr ""
+"\n"
+"(Ulteriori messaggi sono stati nascosti.)"
 
 #: src/libeggsmclient/eggdesktopfile.c:165
 msgid "File is not a valid .desktop file"
-msgstr ""
+msgstr "Il file non è un file .desktop valido"
 
-#: src/libeggsmclient/eggdesktopfile.c:188
+#: src/libeggsmclient/eggdesktopfile.c:191
 #, c-format
 msgid "Unrecognized desktop file Version '%s'"
-msgstr ""
+msgstr "Versione '%s' del file desktop non riconosciuta"
 
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:974
 #, c-format
 msgid "Starting %s"
-msgstr ""
+msgstr "Avvio di %s"
 
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1116
 msgid "Application does not accept documents on command line"
-msgstr ""
+msgstr "L'applicazione non accetta documenti sulla linea di comando"
 
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1184
 #, c-format
 msgid "Unrecognized launch option: %d"
-msgstr ""
+msgstr "Opzione di lancio non riconosciuta: %d"
 
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1391
 msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
 msgstr ""
+"Impossibile passare URI di documenti ad una voce del desktop di tipo "
+"'Type=Link'"
 
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1412
 msgid "Not a launchable item"
-msgstr ""
+msgstr "Non è un elemento avviabile"
 
 #: src/libeggsmclient/eggsmclient.c:226
 msgid "Disable connection to session manager"
-msgstr ""
+msgstr "Disabilita la connessione al gestore della sessione"
 
 #: src/libeggsmclient/eggsmclient.c:229
 msgid "Specify file containing saved configuration"
-msgstr ""
+msgstr "Specifica il file contenente la configurazione salvata"
 
 #: src/libeggsmclient/eggsmclient.c:229
-#, fuzzy
 msgid "FILE"
-msgstr "FILE..."
+msgstr "FILE"
 
 #: src/libeggsmclient/eggsmclient.c:232
 msgid "Specify session management ID"
-msgstr ""
+msgstr "Specifica l'ID della gestione della sessione"
 
 #: src/libeggsmclient/eggsmclient.c:232
 msgid "ID"
-msgstr ""
+msgstr "ID"
 
 #: src/libeggsmclient/eggsmclient.c:253
-#, fuzzy
 msgid "Session management options:"
-msgstr "Mostra le decorazioni del gestore delle finestre"
+msgstr "Opzioni di gestione della sessione:"
 
 #: src/libeggsmclient/eggsmclient.c:254
-#, fuzzy
 msgid "Show session management options"
-msgstr "Mostra le decorazioni del gestore delle finestre"
-
-#~ msgid "%s: Unable to open display, exiting.\n"
-#~ msgstr "%s: Impossibile aprire display, uscita in corso.\n"
-
-#, fuzzy
-#~ msgid "Default gain:"
-#~ msgstr "Skin predefinita:"
-
-#, fuzzy
-#~ msgid "Track gain/peak"
-#~ msgstr "Nome traccia"
-
-#, fuzzy
-#~ msgid "Dance"
-#~ msgstr "Data"
-
-#, fuzzy
-#~ msgid "Oldies"
-#~ msgstr "linee"
-
-#, fuzzy
-#~ msgid "Pranks"
-#~ msgstr "Pausa"
-
-#, fuzzy
-#~ msgid "Fusion"
-#~ msgstr "Russo:"
-
-#, fuzzy
-#~ msgid "Trance"
-#~ msgstr "Aspetto"
-
-#, fuzzy
-#~ msgid "Bass"
-#~ msgstr "Barre"
-
-#, fuzzy
-#~ msgid "Space"
-#~ msgstr "Salva"
-
-#, fuzzy
-#~ msgid "Comedy"
-#~ msgstr "Commento"
-
-#, fuzzy
-#~ msgid "Cult"
-#~ msgstr "Stringa personalizzata:"
-
-#, fuzzy
-#~ msgid "Rave"
-#~ msgstr "Salva"
-
-#, fuzzy
-#~ msgid "Showtunes"
-#~ msgstr "Molto lenta"
-
-#, fuzzy
-#~ msgid "Trailer"
-#~ msgstr "Titolo"
-
-#, fuzzy
-#~ msgid "Polka"
-#~ msgstr "Play"
-
-#, fuzzy
-#~ msgid "Retro"
-#~ msgstr "Zero"
-
-#, fuzzy
-#~ msgid "Latin"
-#~ msgstr "Italiano:"
-
-#, fuzzy
-#~ msgid "Slow Rock"
-#~ msgstr "Lenta"
-
-#, fuzzy
-#~ msgid "Primus"
-#~ msgstr "Precedente"
-
-#, fuzzy
-#~ msgid "Satire"
-#~ msgstr "Fuoco"
-
-#, fuzzy
-#~ msgid "Slow Jam"
-#~ msgstr "Lenta"
-
-#, fuzzy
-#~ msgid "Duet"
-#~ msgstr "Olandese:"
-
-#, fuzzy
-#~ msgid "Club-House"
-#~ msgstr "Mouse"
-
-#, fuzzy
-#~ msgid "Terror"
-#~ msgstr "Zero"
-
-#, fuzzy
-#~ msgid "Indie"
-#~ msgstr "Includi:"
-
-#, fuzzy
-#~ msgid "Beat"
-#~ msgstr "Ripeti"
-
-#, fuzzy
-#~ msgid "Synthpop"
-#~ msgstr "Stop"
-
-#, fuzzy
-#~ msgid ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "An audio player for many platforms.\n"
-#~ "Copyright (C) 2005-2011 Audacious Development Team"
-#~ msgstr ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "Il futuro del multimediale UNIX.\n"
-#~ "\n"
-#~ "Copyright (C) 2005-2007 Audacious Development Team\n"
-
-#~ msgid "Unable to create log file (%s)!\n"
-#~ msgstr "Impossibile creare il file di log (%s)!\n"
-
-#~ msgid "Print all errors and warnings to stdout"
-#~ msgstr "Visualizza tutti gli errori e gli avvisi su stdout"
-
-#~ msgid "Playback"
-#~ msgstr "Riproduzione"
-
-#~ msgid "<b>Playback</b>"
-#~ msgstr "<b>Riproduzione</b>"
-
-#~ msgid ""
-#~ "When Audacious starts, automatically begin playing from the point where "
-#~ "we stopped before."
-#~ msgstr ""
-#~ "Quando Audacious viene avviato, inizia automaticament a riprodurre dal "
-#~ "punto in cui è stato fermato."
-
-#~ msgid "Don't advance in the playlist"
-#~ msgstr "Non avanzare nella playlist"
-
-#~ msgid ""
-#~ "When finished playing a song, don't automatically advance to the next."
-#~ msgstr ""
-#~ "Una volta terminata la riproduzione della canzone non avanzare alla "
-#~ "prossima."
-
-#~ msgid "Enabled"
-#~ msgstr "Abilitato"
-
-#~ msgid "Description"
-#~ msgstr "Descrizione"
-
-#~ msgid "Output Plugin Preferences"
-#~ msgstr "Impostazioni del plugin di output"
-
-#~ msgid "Output Plugin Information"
-#~ msgstr "Informazioni sul plugin di output"
-
-#~ msgid "_Decoder list:"
-#~ msgstr "Lista di _decoder:"
-
-#~ msgid "<span size=\"medium\"><b>Decoders</b></span>"
-#~ msgstr "<span size=\"medium\"><b>Decoder</b></span>"
-
-#~ msgid "_General plugin list:"
-#~ msgstr "Lista plugin generici"
-
-#~ msgid "<span size=\"medium\"><b>General</b></span>"
-#~ msgstr "<span size=\"medium\"><b>Generale</b></span>"
-
-#~ msgid "_Visualization plugin list:"
-#~ msgstr "Lista plugin _Visualizzazione"
-
-#~ msgid "<b>Visualization</b>"
-#~ msgstr "<b>Visualizzazione</b>"
-
-#, fuzzy
-#~ msgid "Effect plugins:"
-#~ msgstr "Lista plugin _Effetti"
-
-#, fuzzy
-#~ msgid "<span size=\"small\">General</span>"
-#~ msgstr "<span size=\"small\">Genere</span>"
-
-#~ msgid "<span size=\"small\">Location</span>"
-#~ msgstr "<span size=\"small\">Posizione</span>"
-
-#, fuzzy
-#~ msgid "<span size=\"small\">Raw Metadata</span>"
-#~ msgstr "<span size=\"small\">Anno</span>"
-
-#, fuzzy
-#~ msgid "Value"
-#~ msgstr "Blu"
-
-#, fuzzy
-#~ msgid ""
-#~ "Available interfaces:\n"
-#~ "\n"
-#~ msgstr "_Preset Disponibili:"
-
-#, fuzzy
-#~ msgid "Available Plugin Preferences:\n"
-#~ msgstr "_Preset Disponibili:"
-
-#~ msgid "Add/Open URL Dialog"
-#~ msgstr "Finestra di dialogo Aggiungi/Apri URL"
-
-#~ msgid "Enter location to play:"
-#~ msgstr "Inserisci indirizzo da riprodurre:"
-
-#~ msgid "Don't clear the playlist"
-#~ msgstr "Non cancellare la playlist"
-
-#~ msgid "audacious: %s"
-#~ msgstr "audacious: %s"
-
-#~ msgid "Filename:"
-#~ msgstr "Nome del file:"
-
-#~ msgid "No input plugin recognized this file"
-#~ msgstr "Nessun input plugin per questo file"
-
-#~ msgid "Input plugin: %s"
-#~ msgstr "Input plugin: %s"
-
-#~ msgid ""
-#~ "<b><big>No output plugin selected.</big></b>\n"
-#~ "You have not selected an output plugin."
-#~ msgstr ""
-#~ "<b><big>Nessun plugin di uscita selezionato.</big></b>\n"
-#~ "Non è stato selezionato un plugin di uscita."
-
-#~ msgid "Connectivity"
-#~ msgstr "Connettività"
-
-#~ msgid "<b>Format Detection</b>"
-#~ msgstr "<b>Individuazione formato</b>"
-
-#~ msgid "Detect file formats by extension."
-#~ msgstr "Individua formato di file dall'estensione."
-
-#, fuzzy
-#~ msgid ""
-#~ "When checked, Audacious will detect file formats based by extension. Only "
-#~ "files with extensions of supported formats will be loaded."
-#~ msgstr ""
-#~ "Quando abilitato, Audacious individuerà i formati di file basandosi "
-#~ "sull'estensione. Si tratta di un metodo più lento dell'individuazione su "
-#~ "richiesta, ma fornisce ancora un livello minimo di individuazione del "
-#~ "formato."
-
-#, fuzzy
-#~ msgid "<b>Advanced</b>"
-#~ msgstr "<b>Riproduzione</b>"
-
-#, fuzzy
-#~ msgid ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "\n"
-#~ "Copyright (C) 2005-2009 Audacious Development Team"
-#~ msgstr ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "Il futuro del multimediale UNIX.\n"
-#~ "\n"
-#~ "Copyright (C) 2005-2007 Audacious Development Team"
-
-#~ msgid "Detect file formats on demand, instead of immediately."
-#~ msgstr ""
-#~ "Individuazione formato di file su richiesta, anziché immediatamente."
-
-#~ msgid ""
-#~ "When checked, Audacious will detect file formats on demand. This can "
-#~ "result in a messier playlist, but delivers a major speed benefit."
-#~ msgstr ""
-#~ "Quando abilitato, Audacious individuerà i formati di file su richiesta. "
-#~ "Questo può risultare in una playlist più confusa, ma fornisce migliore "
-#~ "velocità."
-
-#~ msgid "Load metadata from playlists and files"
-#~ msgstr "Carica metadata dalla playlist e dai file"
-
-#~ msgid "Load metadata (tag information) from music files."
-#~ msgstr "Carica metadata (ID3) dai file musicali"
-
-#~ msgid "Jump to Time"
-#~ msgstr "Salta alla posizione"
-
-#~ msgid "minutes:seconds"
-#~ msgstr "minuti:secondi"
-
-#~ msgid "Track length:"
-#~ msgstr "Lunghezza traccia:"
-
-#, fuzzy
-#~ msgid "Save as Static Playlist"
-#~ msgstr "Salva playlist"
-
-#~ msgid "Error writing playlist \"%s\": %s"
-#~ msgstr "Errore nello scrivere la playlist \"%s\": %s"
-
-#~ msgid "%s already exist. Continue?"
-#~ msgstr "%s esiste già. Continuare?"
-
-#~ msgid ""
-#~ "<b><big>Unable to save playlist.</big></b>\n"
-#~ "\n"
-#~ "Unknown file type for '%s'.\n"
-#~ msgstr ""
-#~ "<b><big>Impossibile salvare la playlist!</big></b>\n"
-#~ "\n"
-#~ "Tipo di file sconosciuto per '%s'.\n"
-
-#~ msgid "Presets"
-#~ msgstr "_Presets"
-
-#~ msgid "Mouse"
-#~ msgstr "Mouse"
-
-#~ msgid "Pause between songs"
-#~ msgstr "Pausa tra le canzoni"
-
-#~ msgid "Pause for"
-#~ msgstr "Pausa per"
-
-#~ msgid "seconds"
-#~ msgstr "secondi"
-
-#~ msgid "<b>Filename</b>"
-#~ msgstr "<b>Nome del file</b>"
-
-#~ msgid "Convert underscores to blanks"
-#~ msgstr "Converti underscores in spazi"
-
-#~ msgid "Convert %20 to blanks"
-#~ msgstr "Converti %%20 in spazi"
-
-#~ msgid "Convert backslash '\\' to forward slash '/'"
-#~ msgstr "Converti le barre inverse '\\' in barre dritte '/'"
-
-#~ msgid "<b>File Dialog</b>"
-#~ msgstr "<b>Finestra File</b>"
-
-#~ msgid "Always refresh directory when opening file dialog"
-#~ msgstr "Aggiorna sempre la directory quando si apre la finestra file"
-
-#~ msgid ""
-#~ "Always refresh the file dialog (this will slow opening the dialog on "
-#~ "large directories, and Gnome VFS should handle automatically)."
-#~ msgstr ""
-#~ "Aggiorna sempre la finestra file (questo rallenterà l'apertura della "
-#~ "finestra su grandi directory, e Gnome VFS dovrebbe gestirlo "
-#~ "automaticamente)."
-
-#~ msgid "Changes volume by"
-#~ msgstr "Varia il volume del"
-
-#~ msgid "percent"
-#~ msgstr "percento"
-
-#~ msgid "Scrolls playlist by"
-#~ msgstr "Scorre la playlist di"
-
-#~ msgid "lines"
-#~ msgstr "linee"
-
-#~ msgid "Stop after Current Song"
-#~ msgstr "Fermati dopo la canzone corrente"
-
-#, fuzzy
-#~ msgid "Peaks"
-#~ msgstr "Pausa"
-
-#~ msgid "Repeat"
-#~ msgstr "Ripeti"
-
-#~ msgid "Shuffle"
-#~ msgstr "Shuffle"
-
-#~ msgid "No Playlist Advance"
-#~ msgstr "Nessun Avanzamento in Playlist"
-
-#~ msgid "Play"
-#~ msgstr "Play"
-
-#~ msgid "Pause"
-#~ msgstr "Pausa"
-
-#~ msgid "Stop"
-#~ msgstr "Stop"
-
-#~ msgid "Previous"
-#~ msgstr "Precedente"
-
-#~ msgid "Next"
-#~ msgstr "Prossimo"
-
-#~ msgid "Visualization Mode"
-#~ msgstr "Modo Visualizzazione"
-
-#~ msgid "Analyzer Mode"
-#~ msgstr "Modo Analizzatore"
-
-#~ msgid "Scope Mode"
-#~ msgstr "Modo Spettrogramma"
-
-#~ msgid "WindowShade VU Mode"
-#~ msgstr "WindowShade VU Mode"
-
-#~ msgid "Refresh Rate"
-#~ msgstr "Frequenza Aggiornamento"
-
-#~ msgid "Analyzer Falloff"
-#~ msgstr "Discesa analizzatore"
-
-#~ msgid "Peaks Falloff"
-#~ msgstr "Discesa picchi"
-
-#~ msgid "New Playlist"
-#~ msgstr "Nuova playlist"
-
-#~ msgid "Select Next Playlist"
-#~ msgstr "Seleziona prossima playlist"
-
-#~ msgid "Select Previous Playlist"
-#~ msgstr "Seleziona precedente playlist"
-
-#~ msgid "Delete Playlist"
-#~ msgstr "Cancella playlist"
-
-#~ msgid "Load List"
-#~ msgstr "Carica Lista"
-
-#~ msgid "Loads a playlist file into the selected playlist."
-#~ msgstr "Carica un file playlist nella playlist selezionata"
-
-#~ msgid "Save List"
-#~ msgstr "Salva lista"
-
-#~ msgid "Saves the selected playlist."
-#~ msgstr "Salva la playlist selezionata."
-
-#~ msgid "Save Default List"
-#~ msgstr "Salva lista predefinita"
-
-#~ msgid "Saves the selected playlist to the default location."
-#~ msgstr "Salva la playlist selezionata alla posizione predefinita."
-
-#~ msgid "Refresh List"
-#~ msgstr "Aggiorna lista"
-
-#~ msgid "Refreshes metadata associated with a playlist entry."
-#~ msgstr "Aggiorna i metadati associati con l'elemento della playlist."
-
-#~ msgid "List Manager"
-#~ msgstr "Gestore liste"
-
-#~ msgid "Opens the playlist manager."
-#~ msgstr "Apre il gestore delle playlist."
-
-#~ msgid "View"
-#~ msgstr "Visualizza"
-
-#~ msgid "Add Internet Address..."
-#~ msgstr "Aggiungi Indirizzo internet..."
-
-#~ msgid "Adds a remote track to the playlist."
-#~ msgstr "Aggiunge una traccia remota alla playlist."
-
-#~ msgid "Add Files..."
-#~ msgstr "Aggiungi files..."
-
-#~ msgid "Search and Select"
-#~ msgstr "Cerca e seleziona"
-
-#~ msgid ""
-#~ "Searches the playlist and selects playlist entries based on specific "
-#~ "criteria."
-#~ msgstr ""
-#~ "Cerca nella playlist e seleziona gli elementi basati su criteri specifici."
-
-#~ msgid "Invert Selection"
-#~ msgstr "Inverti selezione"
-
-#~ msgid "Inverts the selected and unselected entries."
-#~ msgstr "Inverte gli elementi selezionati e non selezionati."
-
-#~ msgid "Select All"
-#~ msgstr "Seleziona tutti"
-
-#~ msgid "Selects all of the playlist entries."
-#~ msgstr "Seleziona tutti gli elementi "
-
-#~ msgid "Select None"
-#~ msgstr "Deseleziona tutti"
-
-#~ msgid "Deselects all of the playlist entries."
-#~ msgstr "Deseleziona tutti gli elementi della playlist."
-
-#~ msgid "Remove All"
-#~ msgstr "Rimuovi tutti"
-
-#~ msgid "Removes all entries from the playlist."
-#~ msgstr "Rimuove tutti gli elementi dalla playlist."
-
-#~ msgid "Clear Queue"
-#~ msgstr "Cancella coda"
-
-#~ msgid "Clears the queue associated with this playlist."
-#~ msgstr "Cancella la coda associata con questa playlist."
-
-#~ msgid "Remove Unavailable Files"
-#~ msgstr "Rimuovi file non disponibili"
-
-#~ msgid "Removes unavailable files from the playlist."
-#~ msgstr "Rimuove i file non disponibilid alla playlist."
-
-#~ msgid "Remove Duplicates"
-#~ msgstr "Rimuovi duplicati"
-
-#~ msgid "By Title"
-#~ msgstr "Per titolo"
-
-#~ msgid "Removes duplicate entries from the playlist by title."
-#~ msgstr "Rimuove dalla playlist gli elementi duplicati per titolo."
-
-#~ msgid "By Filename"
-#~ msgstr "Per nome del file"
-
-#~ msgid "Removes duplicate entries from the playlist by filename."
-#~ msgstr "Rimuove dalla playlist gli elementi duplicati per nome del file."
-
-#~ msgid "By Path + Filename"
-#~ msgstr "Per percorso e nome del file"
-
-#~ msgid "Removes duplicate entries from the playlist by their full path."
-#~ msgstr ""
-#~ "Rimuove dalla playlist gli elementi duplicati per il loro percorso "
-#~ "completo."
-
-#~ msgid "Remove Unselected"
-#~ msgstr "Rimuovi non selezionati"
-
-#~ msgid "Remove unselected entries from the playlist."
-#~ msgstr "Rimuove gli elementi non selezionati dalla playlist."
-
-#~ msgid "Remove Selected"
-#~ msgstr "Rimuovi selezionati"
-
-#~ msgid "Remove selected entries from the playlist."
-#~ msgstr "Rimuove gli elementi selezionati dalla playlist."
-
-#~ msgid "Randomize List"
-#~ msgstr "Riordina lista a caso"
-
-#~ msgid "Randomizes the playlist."
-#~ msgstr "Riordina la playlist secondo un ordine casuale."
-
-#~ msgid "Reverse List"
-#~ msgstr "Inverti l'ordine della lista"
-
-#~ msgid "Reverses the playlist."
-#~ msgstr "Inverte l'ordine degli elementi nella playlist."
-
-#~ msgid "Sort List"
-#~ msgstr "Ordina Lista"
-
-#~ msgid "Sorts the list by title."
-#~ msgstr "Ordina la lista per titolo."
-
-#, fuzzy
-#~ msgid "By Album"
-#~ msgstr "Album"
-
-#, fuzzy
-#~ msgid "Sorts the list by album."
-#~ msgstr "Ordina la lista per titolo."
-
-#~ msgid "By Artist"
-#~ msgstr "Per artista"
-
-#~ msgid "Sorts the list by artist."
-#~ msgstr "Ordina la lista per artista."
-
-#~ msgid "Sorts the list by filename."
-#~ msgstr "Ordina la lista per nome del file."
-
-#~ msgid "Sorts the list by full pathname."
-#~ msgstr "Ordina la lista per percorso completo del file."
-
-#~ msgid "By Date"
-#~ msgstr "Per data"
-
-#~ msgid "Sorts the list by modification time."
-#~ msgstr "Ordina la lista per data di modifica."
-
-#~ msgid "By Track Number"
-#~ msgstr "Per numero di traccia"
-
-#~ msgid "Sorts the list by track number."
-#~ msgstr "Ordina la lista per numero di traccia."
-
-#~ msgid "By Playlist Entry"
-#~ msgstr "Per elemento della playlist"
-
-#~ msgid "Sorts the list by playlist entry."
-#~ msgstr "Ordina la lista per elemento della playlist."
-
-#~ msgid "Sort Selected"
-#~ msgstr "Ordina selezione"
-
-#, fuzzy
-#~ msgid "File"
-#~ msgstr "Fuoco"
-
-#, fuzzy
-#~ msgid "Components"
-#~ msgstr "Commento"
-
-#~ msgid "View Track Details"
-#~ msgstr "Mostra dettagli traccia"
-
-#~ msgid "Play File"
-#~ msgstr "Riproduci file"
-
-#~ msgid "Load and play a file"
-#~ msgstr "Carica e riproduce un file"
-
-#~ msgid "Play Location"
-#~ msgstr "Riproduci posizione"
-
-#~ msgid "Play media from the selected location"
-#~ msgstr "Riproduce un file dalla posizione indicata"
-
-#, fuzzy
-#~ msgid "Plugin services"
-#~ msgstr "Plugins"
-
-#~ msgid "Preferences"
-#~ msgstr "Impostazioni"
-
-#~ msgid "Open preferences window"
-#~ msgstr "Apre la finestra delle impostazioni"
-
-#~ msgid "_Quit"
-#~ msgstr "_Esci"
-
-#~ msgid "Quit Audacious"
-#~ msgstr "Esce da Audacious"
-
-#, fuzzy
-#~ msgid "Clear A-B"
-#~ msgstr "Cancella coda"
-
-#~ msgid "Jump to Playlist Start"
-#~ msgstr "Salta all'inizio della playlist"
-
-#~ msgid "Jump to File"
-#~ msgstr "Salta al file"
-
-#~ msgid "Queue Toggle"
-#~ msgstr "Attiva/disattiva coda"
-
-#~ msgid "Enables/disables the entry in the playlist's queue."
-#~ msgstr "Attiva o disattiva l'elemento nella coda della playlist"
-
-#~ msgid "Load"
-#~ msgstr "Carica"
-
-#~ msgid "Import"
-#~ msgstr "Importa"
-
-#~ msgid "Save"
-#~ msgstr "Salva"
-
-#~ msgid "Delete"
-#~ msgstr "Cancella"
-
-#~ msgid "Preset"
-#~ msgstr "Preset"
-
-#~ msgid "Load preset"
-#~ msgstr "Carica preset"
-
-#~ msgid "Auto-load preset"
-#~ msgstr "Preset automatico"
-
-#~ msgid "Load auto-load preset"
-#~ msgstr "Carica preset automatico"
-
-#~ msgid "Default"
-#~ msgstr "Predefinito"
-
-#~ msgid "Load default preset into equalizer"
-#~ msgstr "Carica il preset di default nell'equalizzatore"
-
-#~ msgid "Zero"
-#~ msgstr "Zero"
-
-#~ msgid "Set equalizer preset levels to zero"
-#~ msgstr "Imposta i livelli di preset dell'equalizzatore a zero"
-
-#~ msgid "From file"
-#~ msgstr "Da file"
-
-#~ msgid "Load preset from file"
-#~ msgstr "Carica i preset da file"
-
-#~ msgid "From WinAMP EQF file"
-#~ msgstr "Da un file EQF di WinAMP"
-
-#~ msgid "Load preset from WinAMP EQF file"
-#~ msgstr "Carica i preset da un file EQF di WinAMP"
-
-#~ msgid "WinAMP Presets"
-#~ msgstr "Preset di WinAMP"
-
-#~ msgid "Import WinAMP presets"
-#~ msgstr "Importa i preset di WinAMP"
-
-#~ msgid "Save preset"
-#~ msgstr "Salva preset"
-
-#~ msgid "Save auto-load preset"
-#~ msgstr "Salva preset automatico"
-
-#~ msgid "Save default preset"
-#~ msgstr "Salva preset predefinito"
-
-#~ msgid "To file"
-#~ msgstr "Su file"
-
-#~ msgid "Save preset to file"
-#~ msgstr "Salva preset su file"
-
-#~ msgid "To WinAMP EQF file"
-#~ msgstr "Su file EQF di WinAMP"
-
-#~ msgid "Save preset to WinAMP EQF file"
-#~ msgstr "Salva i preset su un file EQF di WinAMP"
-
-#~ msgid "Delete preset"
-#~ msgstr "Cancella preset"
-
-#~ msgid "Delete auto-load preset"
-#~ msgstr "Cancella preset automatico"
-
-#, fuzzy
-#~ msgid ""
-#~ "<span size=\"small\">This is the amount of time to prebuffer audio "
-#~ "streams by, in milliseconds.\n"
-#~ "Increase this value if you are experiencing audio skipping.\n"
-#~ "Please note however, that high values will result in Audacious performing "
-#~ "poorly.</span>"
-#~ msgstr ""
-#~ "<span size=\"small\">Quantità di tempo in millisecondi da precaricare dai "
-#~ "flussi audio.\n"
-#~ "Aumentate questo valore se si stanno avendo salti nella riproduzione.\n"
-#~ "Si noti comunque che valori troppo alti risulteranno in basse prestazioni "
-#~ "per Audacious.</span>"
-
-#~ msgid "Enable headless operation"
-#~ msgstr "Abilita il funzionamento invisibile"
-
-#~ msgid ""
-#~ "<b><big>Unable to load skin.</big></b>\n"
-#~ "\n"
-#~ "Check that skin at '%s' is usable and default skin is properly installed "
-#~ "at '%s'\n"
-#~ msgstr ""
-#~ "<b><big>Impossibile caricare la skin.</big></b>\n"
-#~ "\n"
-#~ "Controllare che la skin '%s' sia usabile e che la skin di default sia "
-#~ "installata in '%s'\n"
-
-#, fuzzy
-#~ msgid "Headless operation enabled\n"
-#~ msgstr "Abilita il funzionamento invisibile"
-
-#~ msgid "Audacious core developers:"
-#~ msgstr "Sviluppatori primari Audacious:"
-
-#~ msgid "Audacious Equalizer"
-#~ msgstr "Equalizzatore di Audacious"
-
-#~ msgid "Play files"
-#~ msgstr "Riproduci file"
-
-#~ msgid "Load files"
-#~ msgstr "Carica file"
-
-#~ msgid "%s - Audacious"
-#~ msgstr "%s - Audacious"
-
-#~ msgid "VBR"
-#~ msgstr "VBR"
-
-#~ msgid "mono"
-#~ msgstr "mono"
-
-#, fuzzy
-#~ msgid "Show main player window"
-#~ msgstr "Seleziona font per la finestra principale"
-
-#, fuzzy
-#~ msgid "Seek to: %d:%-2.2d/%d:%-2.2d (%d%%)"
-#~ msgstr "SEEK TO: %d:%-2.2d/%d:%-2.2d (%d%%)"
-
-#, fuzzy
-#~ msgid "Disable 'Always On Top'"
-#~ msgstr "Sempre in primo piano"
-
-#, fuzzy
-#~ msgid "Enable 'Always On Top'"
-#~ msgstr "Sempre in primo piano"
-
-#, fuzzy
-#~ msgid "Visualization Menu"
-#~ msgstr "Modo Visualizzazione"
-
-#~ msgid ""
-#~ "<b><big>Couldn't open audio.</big></b>\n"
-#~ "\n"
-#~ "Please check that:\n"
-#~ "1. You have the correct output plugin selected.\n"
-#~ "2. No other programs is blocking the soundcard.\n"
-#~ "3. Your soundcard is configured properly.\n"
-#~ msgstr ""
-#~ "<b><big>Impossibile avviare l'audio.</big></b>\n"
-#~ "\n"
-#~ "Controllare che:\n"
-#~ "1. È stato selezionato il giusto output plugin.\n"
-#~ "2. Altri progrmmi non stiano bloccando la scheda audio.\n"
-#~ "3. La scheda audio sia configurata.\n"
-
-#~ msgid "Autoscroll Songname"
-#~ msgstr "Scorri automaticamente il titolo"
-
-#~ msgid "Show Player"
-#~ msgstr "Mostra player"
-
-#~ msgid "Show Playlist Editor"
-#~ msgstr "Mostra editor playlist"
-
-#~ msgid "Show Equalizer"
-#~ msgstr "Mostra Equalizzatore"
-
-#~ msgid "Always on Top"
-#~ msgstr "Sempre in primo piano"
-
-#~ msgid "Put on All Workspaces"
-#~ msgstr "Mostra su Tutti i Desktop"
-
-#~ msgid "Roll up Player"
-#~ msgstr "Arrotola Player"
-
-#~ msgid "Roll up Playlist Editor"
-#~ msgstr "Arrotola Editor della Playlist"
-
-#~ msgid "Roll up Equalizer"
-#~ msgstr "Arrotola Equalizzatore"
-
-#, fuzzy
-#~ msgid "Scale"
-#~ msgstr "Salva"
-
-#~ msgid "DoubleSize"
-#~ msgstr "Doppia dimensione"
-
-#~ msgid "Easy Move"
-#~ msgstr "Movimento facilitato"
-
-#~ msgid "Analyzer"
-#~ msgstr "Analizzatore"
-
-#~ msgid "Scope"
-#~ msgstr "Spettrogramma"
-
-#~ msgid "Off"
-#~ msgstr "Spento"
-
-#~ msgid "Normal"
-#~ msgstr "Normale"
-
-#~ msgid "Fire"
-#~ msgstr "Fuoco"
-
-#~ msgid "Vertical Lines"
-#~ msgstr "Linee verticali"
-
-#~ msgid "Lines"
-#~ msgstr "Linee"
-
-#~ msgid "Bars"
-#~ msgstr "Barre"
-
-#~ msgid "Dot Scope"
-#~ msgstr "Spettro a punti"
-
-#~ msgid "Line Scope"
-#~ msgstr "Spettro a linee"
-
-#~ msgid "Solid Scope"
-#~ msgstr "Spettro solido"
-
-#~ msgid "Ice"
-#~ msgstr "Ghiaccio"
-
-#~ msgid "Smooth"
-#~ msgstr "Morbido"
-
-#~ msgid "Full (~50 fps)"
-#~ msgstr "Piena (~50 fps)"
-
-#~ msgid "Half (~25 fps)"
-#~ msgstr "Dimezzata (~ 25 fps)"
-
-#~ msgid "Quarter (~13 fps)"
-#~ msgstr "Un Quarto (~13 fps)"
-
-#~ msgid "Eighth (~6 fps)"
-#~ msgstr "Un Ottavo (~6 fps)"
-
-#~ msgid "Slowest"
-#~ msgstr "Molto lenta"
-
-#~ msgid "Slow"
-#~ msgstr "Lenta"
-
-#~ msgid "Medium"
-#~ msgstr "Media"
-
-#~ msgid "Fast"
-#~ msgstr "Veloce"
-
-#~ msgid "Fastest"
-#~ msgstr "Molto veloce"
-
-#~ msgid "Time Elapsed"
-#~ msgstr "Tempo trascorso"
-
-#~ msgid "Time Remaining"
-#~ msgstr "Tempo Rimanente"
-
-#, fuzzy
-#~ msgid "Plugin Services"
-#~ msgstr "Plugins"
-
-#~ msgid "Search entries in active playlist"
-#~ msgstr "Ricerca elementi nella playlist attiva"
-
-#~ msgid ""
-#~ "Select entries in playlist by filling one or more fields. Fields use "
-#~ "regular expressions syntax, case-insensitive. If you don't know how "
-#~ "regular expressions work, simply insert a literal portion of what you're "
-#~ "searching for."
-#~ msgstr ""
-#~ "Seleziona gli elementi nella playlist riempiendo uno o più campi. I campi "
-#~ "utilizzano la sintassi delle espressioni regolari, senza distinzione "
-#~ "maiuscole/minuscole. Se non si conosce come funzionano le espressioni "
-#~ "regolari, si inserisca semplicemente il testo che si sta cercando."
-
-#, fuzzy
-#~ msgid "Title: "
-#~ msgstr "Titolo"
-
-#, fuzzy
-#~ msgid "Album: "
-#~ msgstr "Album"
-
-#~ msgid "Artist: "
-#~ msgstr "Artista: "
-
-#~ msgid "Filename: "
-#~ msgstr "Nome del file: "
-
-#~ msgid "Clear previous selection before searching"
-#~ msgstr "Pulisci la selezione precedente prima di cercare"
-
-#~ msgid "Automatically toggle queue for matching entries"
-#~ msgstr ""
-#~ "Abilita/disabilita coda automaticamente per gli elementi individuati"
-
-#~ msgid "Audacious Playlist Editor"
-#~ msgstr "Editor di lista di Audacious"
-
-#~ msgid "Appearance"
-#~ msgstr "Aspetto"
-
-#~ msgid "<b>_Fonts</b>"
-#~ msgstr "<b>_Font</b>"
-
-#~ msgid "_Player:"
-#~ msgstr "_Player:"
-
-#~ msgid "Select main player window font:"
-#~ msgstr "Seleziona font per la finestra principale"
-
-#~ msgid "_Playlist:"
-#~ msgstr "_Playlist:"
-
-#, fuzzy
-#~ msgid "Select playlist font:"
-#~ msgstr "Seleziona font per la finestra principale"
-
-#~ msgid "Use Bitmap fonts if available"
-#~ msgstr "Usa i font bitmap se disponibili."
-
-#~ msgid ""
-#~ "Use bitmap fonts if they are available. Bitmap fonts do not support "
-#~ "Unicode strings."
-#~ msgstr ""
-#~ "Usa i font bitmap se disponibili. I font bitmap non hanno supporto per le "
-#~ "stringhe Unicode."
-
-#~ msgid "<b>_Miscellaneous</b>"
-#~ msgstr "<b>_Varie</b>"
-
-#~ msgid "Show track numbers in playlist"
-#~ msgstr "Mostra numero traccia nella playlist"
-
-#~ msgid "Show separators in playlist"
-#~ msgstr "Mostra separatori nella playlist"
-
-#~ msgid "Show window manager decoration"
-#~ msgstr "Mostra la decorazione del gestore delle finestre"
-
-#~ msgid "This enables the window manager to show decorations for windows."
-#~ msgstr ""
-#~ "Abilita il gestore delle finestre a mostrare le decorazioni per la "
-#~ "finestra."
-
-#~ msgid "Use XMMS-style file selector instead of the default selector"
-#~ msgstr "Usa la selezione file in stile XMMS invece di quella predefinita"
-
-#~ msgid ""
-#~ "This enables the XMMS/GTK1-style file selection dialogs. This selector is "
-#~ "provided by Audacious itself and is faster than the default GTK2 selector "
-#~ "(but sadly not as user-friendly)."
-#~ msgstr ""
-#~ "Abilita le finestre di dialogo di selezione del file in stile XMMS/GTK1. "
-#~ "Questa finestra è fornita direttamente da Audacious ed è più veloce della "
-#~ "finestra GTK2 (ma sfortunatamente non così user-friendly)."
-
-#~ msgid "On load"
-#~ msgstr "Durante il caricamento"
-
-#~ msgid "Load metadata when adding the file to the playlist or opening it"
-#~ msgstr ""
-#~ "Carica metadata quando vengono aggiunti file alla playlist o vengono "
-#~ "aperti"
-
-#~ msgid "On display"
-#~ msgstr "Durante la visualizzazione"
-
-#, fuzzy
-#~ msgid ""
-#~ "Load metadata on demand when displaying the file in the playlist. You may "
-#~ "need to set \"Detect file formats on demand\" in Audio page for full "
-#~ "benefit."
-#~ msgstr ""
-#~ "Carica i metadati su richiesta quando si visualizza il file nella playlist"
-
-#~ msgid "Color Adjustment"
-#~ msgstr "Aggiustamento colori"
-
-#~ msgid ""
-#~ "Audacious allows you to alter the color balance of the skinned UI. The "
-#~ "sliders below will allow you to do this."
-#~ msgstr ""
-#~ "Audacious ti permette di alterare il bilanciamento dei colori "
-#~ "dell'interfaccia Skin tramite le slitte sottostanti."
-
-#~ msgid "Blue"
-#~ msgstr "Blu"
-
-#~ msgid "Green"
-#~ msgstr "Verde"
-
-#~ msgid "Red"
-#~ msgstr "Rosso"
-
-#~ msgid "<b>_Skin</b>"
-#~ msgstr "<b>_Skin</b>"
-
-#~ msgid "Refresh skin list"
-#~ msgstr "Aggiorna lista skin"
-
-#~ msgid "PREAMP"
-#~ msgstr "PREAMP"
-
-#~ msgid "60HZ"
-#~ msgstr "60HZ"
-
-#~ msgid "170HZ"
-#~ msgstr "170HZ"
-
-#~ msgid "310HZ"
-#~ msgstr "310HZ"
-
-#~ msgid "600HZ"
-#~ msgstr "600HZ"
-
-#~ msgid "1KHZ"
-#~ msgstr "1KHZ"
-
-#~ msgid "3KHZ"
-#~ msgstr "3KHZ"
-
-#~ msgid "6KHZ"
-#~ msgstr "6KHZ"
-
-#~ msgid "12KHZ"
-#~ msgstr "12KHZ"
-
-#~ msgid "14KHZ"
-#~ msgstr "14KHZ"
-
-#~ msgid "16KHZ"
-#~ msgstr "16KHZ"
-
-#~ msgid "Archived Winamp 2.x skin"
-#~ msgstr "Skin Winamp 2.x compressa"
-
-#~ msgid "Unarchived Winamp 2.x skin"
-#~ msgstr "Skin Winamp 2.x non compressa"
-
-#~ msgid "Show version and builtin features"
-#~ msgstr "Mostra la versione e le funzionalità integrate"
-
-#~ msgid "Use custom cursors"
-#~ msgstr "Usa cursore personalizzato"
-
-#, fuzzy
-#~ msgid "Reload Plugins"
-#~ msgstr "Plugins"
-
-#~ msgid ""
-#~ "Sorry, threads isn't supported on your platform.\n"
-#~ "\n"
-#~ "If you're on a libc5 based linux system and installed Glib & GTK+ before "
-#~ "you\n"
-#~ "installed LinuxThreads you need to recompile Glib & GTK+.\n"
-#~ msgstr ""
-#~ "La tua piattaforma non supporta i threads.\n"
-#~ "\n"
-#~ "Se usi un sistema linux basato su libc5 e hai installato Glib & GTK+ "
-#~ "prima di quando\n"
-#~ "hai installato LinuxThreads devi ricompilareGlib & GTK+.\n"
-
-#~ msgid "Error in Audacious."
-#~ msgstr "Errore in Audacious."
-
-#~ msgid "Select which Audacious session ID to use"
-#~ msgstr "Seleziona quale ID sessione di Audacious usare"
-
-#, fuzzy
-#~ msgid "Disable 'Doublesize'"
-#~ msgstr "Doppia dimensione"
-
-#, fuzzy
-#~ msgid "Enable 'Doublesize'"
-#~ msgstr "Doppia dimensione"
-
-#~ msgid "<b>Presets</b>"
-#~ msgstr "<b>Presets</b>"
-
-#~ msgid "File preset extension:"
-#~ msgstr "Estensione dei file preset:"
-
-#~ msgid "Directory preset file:"
-#~ msgstr "Directory per i file preset:"
-
-#~ msgid "localhost"
-#~ msgstr "localhost"
-
-#~ msgid ""
-#~ "<b><big>Unable to create %s.</big></b>\n"
-#~ "\n"
-#~ "Could not open glade file (%s). Please check your installation.\n"
-#~ msgstr ""
-#~ "<b><big>Impossibile creare %s.</big></b>\n"
-#~ "\n"
-#~ "Impossibile aprire il file glade (%s). Controllare l'installazione.\n"
-
-#~ msgid ""
-#~ "TITLE\n"
-#~ "ARTIST - TITLE\n"
-#~ "ARTIST - ALBUM - TITLE\n"
-#~ "ARTIST - ALBUM - TRACK. TITLE\n"
-#~ "ARTIST [ ALBUM ] - TRACK. TITLE\n"
-#~ "ALBUM - TITLE\n"
-#~ "Custom"
-#~ msgstr ""
-#~ "TITOLO\n"
-#~ "ARTISTA - TITOLO\n"
-#~ "ARTISTA - ALBUM - TITOLO\n"
-#~ "ARTISTA - ALBUM - TRACCIA. TITOLO\n"
-#~ "ARTISTA [ ALBUM ] - TRACCIA. TITOLO\n"
-#~ "ALBUM - TITOLO\n"
-#~ "Personalizzato"
-
-#~ msgid "Track Information Window"
-#~ msgstr "Finestra di informazioni sulla traccia"
-
-#~ msgid "Preferences Window"
-#~ msgstr "Preferenze"
-
-#, fuzzy
-#~ msgid "<b>Artist:</b> %s"
-#~ msgstr "<b>Presets</b>"
-
-#, fuzzy
-#~ msgid "<b>Title:</b> %s"
-#~ msgstr "<b>Nome del file</b>"
+msgstr "Mostra le opzioni di gestione della sessione"
 
-#, fuzzy
-#~ msgid "<b>Album:</b> %s"
-#~ msgstr "Album"
 
-#, fuzzy
-#~ msgid "Audacious last.fm radio tuner"
-#~ msgstr "Editor di lista di Audacious"
-
-#, fuzzy
-#~ msgid "<b>Artist:</b>"
-#~ msgstr "<b>Presets</b>"
-
-#, fuzzy
-#~ msgid "<b>Album:</b>"
-#~ msgstr "<b>Nome del file</b>"
-
-#~ msgid "VOLUME: %d%%"
-#~ msgstr "VOLUME: %d%%"
-
-#~ msgid "BALANCE: %d%% LEFT"
-#~ msgstr "BALANCE: %d%% SINISTRA"
-
-#~ msgid "BALANCE: CENTER"
-#~ msgstr "BALANCE: CENTRO"
-
-#~ msgid "BALANCE: %d%% RIGHT"
-#~ msgstr "BALANCE: %d%% DESTRA"
-
-#, fuzzy
-#~ msgid "Last.fm radio"
-#~ msgstr "Riproduci posizione"
-
-#, fuzzy
-#~ msgid "Play Last.fm radio"
-#~ msgstr "Riproduci posizione"
-
-#~ msgid ""
-#~ "<b><big>No playable CD found.</big></b>\n"
-#~ "\n"
-#~ "No CD inserted, or inserted CD is not an audio CD.\n"
-#~ msgstr ""
-#~ "<b><big>Nessun cd riproducibile trovato.</big></b>\n"
-#~ "\n"
-#~ "Nessun CD inserito, oppure non è un CD audio.\n"
-
-#~ msgid "Add CD..."
-#~ msgstr "Aggiungi CD..."
-
-#~ msgid "Adds a CD to the playlist."
-#~ msgstr "Aggiunge un CD alla playlist."
-
-#~ msgid "Play CD"
-#~ msgstr "Riproduci CD"
-
-#~ msgid "Performer/Artist"
-#~ msgstr "Artista"
-
-#~ msgid "File name"
-#~ msgstr "Nome file"
-
-#~ msgid "File path"
-#~ msgstr "Percorso file"
-
-#~ msgid "File extension"
-#~ msgstr "Estensione file"
-
-#~ msgid "Track number"
-#~ msgstr "Traccia n°"
-
-#~ msgid "%{n:...%}: Display \"...\" only if element %n is present"
-#~ msgstr "%{n:...%}: Mostra \"...\" solo se l'elemento %n è presente"
-
-#~ msgid ""
-#~ "Sorry, your GTK+ version (%d.%d.%d) does not work with Audacious.\n"
-#~ "Please use GTK+ %s or newer.\n"
-#~ msgstr ""
-#~ "La tua versione di GTK+ (%d.%d.%d) non è compatibile con Audacious.\n"
-#~ "Si usi GTK+ %s o superiore.\n"
-
-#~ msgid "OPTIONS MENU"
-#~ msgstr "MENU OPZIONI"
-
-#~ msgid "DISABLE ALWAYS ON TOP"
-#~ msgstr "DISABILITA SEMPRE IN PRIMO PIANO"
-
-#~ msgid "ENABLE ALWAYS ON TOP"
-#~ msgstr "ABILITA SEMPRE IN PRIMO PIANO"
-
-#~ msgid "FILE INFO BOX"
-#~ msgstr "FILE INFO BOX"
-
-#~ msgid "DISABLE DOUBLESIZE"
-#~ msgstr "DISABILITA DIMENSIONE DOPPIA"
-
-#~ msgid "ENABLE DOUBLESIZE"
-#~ msgstr "ABILITA DIMENSIONE DOPPIA"
-
-#~ msgid "VISUALIZATION MENU"
-#~ msgstr "MENU VISUALIZZAZIONE"
-
-#~ msgid "Track name: "
-#~ msgstr "Nome della traccia: "
-
-#~ msgid ""
-#~ "<b><big>Unable to play files.</big></b>\n"
-#~ "\n"
-#~ "The following files could not be played. Please check that:\n"
-#~ "1. they are accessible.\n"
-#~ "2. you have enabled the media plugins required."
-#~ msgstr ""
-#~ "<b><big>Impossibile riprodurre il file.</big></b>\n"
-#~ "\n"
-#~ "I seguenti files non possono essere riprodotti. Controllare che:\n"
-#~ "1. siano accessibili.\n"
-#~ "2. sia abilitato il plugin richiesto."
-
-#~ msgid "Show more _details"
-#~ msgstr "Mostra piu _dettagli"
-
-#~ msgid ""
-#~ "\n"
-#~ "Received SIGSEGV\n"
-#~ "\n"
-#~ "This could be a bug in Audacious. If you don't know why this happened, "
-#~ "file a bug at http://bugs-meta.atheme.org/\n"
-#~ "\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Ricevuto SIGSEGV\n"
-#~ "\n"
-#~ "Questo potrebbe essere un bug in Audacious. Se non si conosce il motivo "
-#~ "per cui questo è accaduto, si apra un bug su http://bugs-meta.atheme."
-#~ "org/\n"
-#~ "\n"
diff --git a/po/ja.po b/po/ja.po
index 4149f17..95af996 100644
--- a/po/ja.po
+++ b/po/ja.po
@@ -13,7 +13,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: audacious HEAD\n"
 "Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
+"POT-Creation-Date: 2011-07-05 22:45+0200\n"
 "PO-Revision-Date: 2009-06-19 12:22+0900\n"
 "Last-Translator: dai <d+po at vdr.jp>\n"
 "Language-Team: Japanese <ja at li.org>\n"
@@ -22,6 +22,17 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
+#: src/audacious/adder.c:71
+msgid "Searching ..."
+msgstr ""
+
+#: src/audacious/adder.c:99
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] ""
+msgstr[1] ""
+
 #: src/audacious/chardet.c:37
 msgid "  (invalid UTF-8)"
 msgstr "  (不正な UTF-8)"
@@ -104,113 +115,113 @@ msgstr "エストニア語:"
 msgid "Finnish:"
 msgstr "フィンランド語:"
 
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:220
 msgid "French:"
 msgstr "フランス語:"
 
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:226
 msgid "German:"
 msgstr "ドイツ語:"
 
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:233
 msgid "Georgian:"
 msgstr "グルジア語:"
 
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:236
 msgid "Greek:"
 msgstr "ギリシア語:"
 
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:241
 msgid "Hindi:"
 msgstr "ヒンディ語:"
 
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:244
 msgid "Hungarian:"
 msgstr "ハンガリー語:"
 
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:248
 msgid "Italian:"
 msgstr "イタリア語:"
 
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:252
 msgid "Japanese:"
 msgstr "日本語:"
 
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:255
 msgid "Korean:"
 msgstr "朝鮮語:"
 
-#: src/audacious/credits.c:256
+#: src/audacious/credits.c:258
 #, fuzzy
 msgid "Latvian:"
 msgstr "クロアチア語:"
 
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:261
 msgid "Lithuanian:"
 msgstr "リトアニア語:"
 
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:265
 msgid "Macedonian:"
 msgstr "マケドニア語:"
 
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:268
 msgid "Polish:"
 msgstr "ポーランド語:"
 
-#: src/audacious/credits.c:271
+#: src/audacious/credits.c:274
 #, fuzzy
 msgid "Portuguese:"
 msgstr "ブラジルポルトガル語:"
 
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:277
 msgid "Romanian:"
 msgstr "ルーマニア語:"
 
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:281
 msgid "Russian:"
 msgstr "ロシア語:"
 
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:285
 msgid "Serbian (Latin):"
 msgstr "セルビア語 (ラテン文字):"
 
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:288
 msgid "Serbian (Cyrillic):"
 msgstr "セルビア語 (キリル文字):"
 
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:291
 msgid "Simplified Chinese:"
 msgstr "簡体字中国語:"
 
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:294
 msgid "Slovak:"
 msgstr "スロバキア語:"
 
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:297
 msgid "Spanish:"
 msgstr "スペイン語:"
 
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:304
 msgid "Swedish:"
 msgstr "スウェーデン語:"
 
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:307
 msgid "Traditional Chinese:"
 msgstr "繁体字中国語:"
 
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:312
 msgid "Turkish:"
 msgstr "トルコ語:"
 
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:316
 msgid "Ukrainian:"
 msgstr "ウクライナ語:"
 
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:319
 msgid "Welsh:"
 msgstr "ウェールズ語:"
 
-#: src/audacious/drct.c:254
+#: src/audacious/drct.c:256
 #, fuzzy
 msgid "Temporary Playlist"
 msgstr "プレイリストの読み込み"
@@ -220,79 +231,64 @@ msgstr "プレイリストの読み込み"
 msgid "Error importing Winamp EQF file '%s'"
 msgstr "Winamp EQF ファイル '%s' のインポートエラー"
 
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr ""
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/audacious/main.c:247
+#: src/audacious/main.c:256
 msgid "Skip backwards in playlist"
 msgstr "プレイリストの一つ前の曲にジャンプする"
 
-#: src/audacious/main.c:248
+#: src/audacious/main.c:257
 msgid "Start playing current playlist"
 msgstr "現在のプレイリストで演奏を開始する"
 
-#: src/audacious/main.c:249
+#: src/audacious/main.c:258
 msgid "Pause current song"
 msgstr "現在の曲を一時停止する"
 
-#: src/audacious/main.c:250
+#: src/audacious/main.c:259
 msgid "Stop current song"
 msgstr "現在の曲を停止する"
 
-#: src/audacious/main.c:251
+#: src/audacious/main.c:260
 msgid "Pause if playing, play otherwise"
 msgstr "演奏していたら一時停止し, それ以外は演奏する"
 
-#: src/audacious/main.c:252
+#: src/audacious/main.c:261
 msgid "Skip forward in playlist"
 msgstr "プレイリストの一つ次の曲にジャンプする"
 
-#: src/audacious/main.c:253
+#: src/audacious/main.c:262
 msgid "Display Jump to File dialog"
 msgstr "ファイルダイアログへのジャンプを表示"
 
-#: src/audacious/main.c:254
+#: src/audacious/main.c:263
 #, fuzzy
 msgid "Add files to the playlist"
 msgstr "ファイルをプレイリストに追加します."
 
-#: src/audacious/main.c:255
+#: src/audacious/main.c:264
 msgid "Add new files to a temporary playlist"
 msgstr "新しいファイルを一時プレイリストに追加する"
 
-#: src/audacious/main.c:256
+#: src/audacious/main.c:265
 msgid "Display the main window"
 msgstr "メインウィンドウを表示する"
 
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr "開かれた Audacious ウィンドウを全て表示する"
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:266
 msgid "Show version"
 msgstr "ヴァージョンを表示する"
 
-#: src/audacious/main.c:259
+#: src/audacious/main.c:267
 msgid "Print debugging messages"
 msgstr ""
 
-#: src/audacious/main.c:260
+#: src/audacious/main.c:268
 msgid "FILE..."
 msgstr "ファイル..."
 
-#: src/audacious/main.c:272
+#: src/audacious/main.c:280
 msgid "- play multimedia files"
 msgstr "- マルチメディアファイルを再生する"
 
-#: src/audacious/main.c:282
+#: src/audacious/main.c:290
 #, c-format
 msgid ""
 "%s: %s\n"
@@ -301,7 +297,7 @@ msgstr ""
 "%s: %s\n"
 "詳しくは `%s --help' を実行して下さい.\n"
 
-#: src/audacious/main.c:395
+#: src/audacious/main.c:407
 msgid ""
 "Audacious seems to be already running but is not responding.  You can start "
 "another instance of the program, but please be warned that this can cause "
@@ -309,261 +305,235 @@ msgid ""
 "message.  Press OK to start Audacious or Cancel to quit."
 msgstr ""
 
-#: src/audacious/main.c:558
+#: src/audacious/main.c:572
 msgid "Audacious"
 msgstr "Audacious"
 
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:381
 #, c-format
 msgid "No decoder found for %s."
 msgstr ""
 
-#: src/audacious/playback.c:519
+#: src/audacious/playback.c:531
 msgid "Buffering ..."
 msgstr ""
 
-#: src/audacious/playlist-new.c:288
+#: src/audacious/playlist-new.c:303
 msgid "Untitled Playlist"
 msgstr "タイトルなしプレイリスト"
 
-#: src/audacious/ui_preferences.c:88
+#: src/audacious/ui_preferences.c:87
 msgid "Audio"
 msgstr "オーディオ"
 
-#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
-msgstr "リプレイゲイン"
-
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:88
 msgid "Network"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:89 src/audacious/ui_preferences.c:1556
 msgid "Playlist"
 msgstr "プレイリスト"
 
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:90
 msgid "Plugins"
 msgstr "プラグイン"
 
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:204
 msgid "Artist"
 msgstr "アーティスト"
 
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:97 src/libaudgui/infopopup.c:206
 msgid "Album"
 msgstr "アルバム名"
 
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:202
+#: src/libaudgui/ui_playlist_manager.c:263
 msgid "Title"
 msgstr "タイトル"
 
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:99
 msgid "Tracknumber"
 msgstr "トラック番号"
 
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:208
 msgid "Genre"
 msgstr "ジャンル"
 
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:101
 msgid "Filename"
 msgstr "ファイル名"
 
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:102
 msgid "Filepath"
 msgstr "パス名"
 
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:103
 msgid "Date"
 msgstr "日付"
 
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:104 src/libaudgui/infopopup.c:210
 msgid "Year"
 msgstr "制作年"
 
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:105
 msgid "Comment"
 msgstr "コメント"
 
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:106
 msgid "Codec"
 msgstr "コーデック"
 
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:107
 msgid "Quality"
 msgstr "音質"
 
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:112
 msgid "None"
 msgstr "なし"
 
-#: src/audacious/ui_preferences.c:115
+#: src/audacious/ui_preferences.c:113
 msgid "Japanese"
 msgstr "日本語"
 
-#: src/audacious/ui_preferences.c:116
+#: src/audacious/ui_preferences.c:114
 msgid "Taiwanese"
 msgstr "繁体中国語"
 
-#: src/audacious/ui_preferences.c:117
+#: src/audacious/ui_preferences.c:115
 msgid "Chinese"
 msgstr "簡体中国語"
 
-#: src/audacious/ui_preferences.c:118
+#: src/audacious/ui_preferences.c:116
 msgid "Korean"
 msgstr "朝鮮語"
 
-#: src/audacious/ui_preferences.c:119
+#: src/audacious/ui_preferences.c:117
 msgid "Russian"
 msgstr "ロシア語"
 
-#: src/audacious/ui_preferences.c:120
+#: src/audacious/ui_preferences.c:118
 msgid "Greek"
 msgstr "ギリシア語"
 
-#: src/audacious/ui_preferences.c:121
+#: src/audacious/ui_preferences.c:119
 msgid "Hebrew"
 msgstr "ヘブライ語"
 
-#: src/audacious/ui_preferences.c:122
+#: src/audacious/ui_preferences.c:120
 msgid "Turkish"
 msgstr "トルコ語"
 
-#: src/audacious/ui_preferences.c:123
+#: src/audacious/ui_preferences.c:121
 msgid "Arabic"
 msgstr "アラビア語"
 
-#: src/audacious/ui_preferences.c:124
+#: src/audacious/ui_preferences.c:122
 #, fuzzy
 msgid "Polish"
 msgstr "ポーランド語:"
 
-#: src/audacious/ui_preferences.c:125
+#: src/audacious/ui_preferences.c:123
 #, fuzzy
 msgid "Baltic"
 msgstr "セルティック"
 
-#: src/audacious/ui_preferences.c:126
+#: src/audacious/ui_preferences.c:124
 msgid "Universal"
 msgstr "汎用"
 
 #: src/audacious/ui_preferences.c:146
-msgid "<b>Bit Depth</b>"
-msgstr "<b>ビット深度</b>"
+#, fuzzy
+msgid "Single track mode"
+msgstr "トラックの詳細"
 
 #: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr "出力ビット深度:"
-
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
-"<span size=\"small\">すべてのストリームはこのビット深度に変換されます.\n"
-"これはサウンドカードか出力プラグインでサポートされたビット深度の最大値となる"
-"はずです.</span>"
+#, fuzzy
+msgid "Album mode"
+msgstr "アルバムモード: "
 
-#: src/audacious/ui_preferences.c:151
-msgid "<b>Volume Control</b>"
-msgstr "<b>ボリュームコントロール</b>"
+#: src/audacious/ui_preferences.c:150
+#, fuzzy
+msgid "<b>Output Settings</b>"
+msgstr "<b>フォーマットの検出</b>"
 
 #: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr "ソフトウェアボリュームコントロールを使う"
+#, fuzzy
+msgid "Bit depth:"
+msgstr "出力ビット深度:"
 
-#: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
-"ソフトウェアボリュームコントロールを使います.オーディオシステムが再生音量の"
-"コントロールをサポートしていない状況で有用でしょう."
+#: src/audacious/ui_preferences.c:155
+msgid "Buffer size:"
+msgstr "バッファのサイズ:"
 
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
+#: src/audacious/ui_preferences.c:157
+msgid "ms"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
-msgstr "dB"
-
-#: src/audacious/ui_preferences.c:160
+#: src/audacious/ui_preferences.c:158
 #, fuzzy
-msgid "Amplify untagged files:"
-msgstr "- マルチメディアファイルを再生する"
+msgid "Use software volume control (not recommended)"
+msgstr "ソフトウェアボリュームコントロールを使う"
 
-#: src/audacious/ui_preferences.c:164
+#: src/audacious/ui_preferences.c:160
 #, fuzzy
 msgid "<b>Replay Gain</b>"
 msgstr "<b>リプレイゲインモード</b>"
 
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:161
 msgid "Enable Replay Gain"
 msgstr "リプレイゲイン有効にする"
 
-#: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>メタデータ</b>"
-
-#: src/audacious/ui_preferences.c:168
-#, fuzzy
-msgid "Single track mode"
-msgstr "トラックの詳細"
-
-#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "アルバムモード: "
+#: src/audacious/ui_preferences.c:164
+msgid "Prevent clipping (recommended)"
+msgstr ""
 
-#: src/audacious/ui_preferences.c:172
+#: src/audacious/ui_preferences.c:166
 #, fuzzy
 msgid "<b>Adjust Levels</b>"
 msgstr "<b>マウスのホィール</b>"
 
-#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "<b>ポップアップ情報</b>"
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify all files:"
+msgstr ""
 
-#: src/audacious/ui_preferences.c:176
+#: src/audacious/ui_preferences.c:169 src/audacious/ui_preferences.c:172
+msgid "dB"
+msgstr "dB"
+
+#: src/audacious/ui_preferences.c:170
 #, fuzzy
-msgid "Enable clipping prevention"
-msgstr "クリッピング防止のためにピーク情報を有効にする"
+msgid "Amplify untagged files:"
+msgstr "- マルチメディアファイルを再生する"
 
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:175
 msgid "Proxy hostname:"
 msgstr "プロキシのホスト名:"
 
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:176
 msgid "Proxy port:"
 msgstr "プロキシのポート:"
 
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:179
 msgid "Proxy username:"
 msgstr "プロキシのユーザ名:"
 
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:180
 msgid "Proxy password:"
 msgstr "プロキシのパスワード:"
 
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:184
 msgid "<b>Proxy Configuration</b>"
 msgstr "<b>プロキシ設定</b>"
 
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:185
 msgid "Enable proxy usage"
 msgstr "プロキシの使用を有効にする"
 
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:187
 msgid "Use authentication with proxy"
 msgstr "プロキシの認証を行う"
 
-#: src/audacious/ui_preferences.c:197
+#: src/audacious/ui_preferences.c:189
 msgid ""
 "<span size=\"small\">Changing these settings will require a restart of "
 "Audacious.</span>"
@@ -571,15 +541,15 @@ msgstr ""
 "<span size=\"small\">変更した設定を有効にするには Audacious の再起動が必要で"
 "す.</span>"
 
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
 msgid "Auto character encoding detector for:"
 msgstr "自動キャラクタエンコーディング検出:"
 
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
 msgid "Fallback character encodings:"
 msgstr "代替キャラクタエンコーディング:"
 
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
 msgid ""
 "List of character encodings used for fall back conversion of metadata. If "
 "automatic character encoding detector failed or has been disabled, encodings "
@@ -591,46 +561,46 @@ msgstr ""
 "グの候補としてリスト中のエンコーディングが用いられ, これらのエンコーディング"
 "から UTF-8 への変換が試みられます."
 
-#: src/audacious/ui_preferences.c:213
+#: src/audacious/ui_preferences.c:205
 #, fuzzy
 msgid "<b>Behavior</b>"
 msgstr "<b>ビット深度</b>"
 
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:206
 msgid "Continue playback on startup"
 msgstr "起動時に再生を続ける"
 
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:208
 msgid "Advance when the current song is deleted"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:218
+#: src/audacious/ui_preferences.c:210
 #, fuzzy
 msgid "Clear the playlist when opening files"
 msgstr "マッチしたエントリで新しいプレイリストを作成"
 
-#: src/audacious/ui_preferences.c:220
+#: src/audacious/ui_preferences.c:212
 #, fuzzy
 msgid "Open files in a temporary playlist"
 msgstr "新しいファイルを一時プレイリストに追加する"
 
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:214
 msgid "<b>Metadata</b>"
 msgstr "<b>メタデータ</b>"
 
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:454
 msgid "Category"
 msgstr "カテゴリ"
 
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:682
 msgid "Popup Information Settings"
 msgstr "ポップアップ情報の設定"
 
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:691
 msgid "<b>Cover image retrieve</b>"
 msgstr "<b>カバー画像の取得</b>"
 
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:696
 msgid ""
 "While searching for the album's cover, Audacious looks for certain words in "
 "the filename. You can specify those words in the lists below, separated "
@@ -639,99 +609,99 @@ msgstr ""
 "アルバムのカバーを検索する際, Audacious はファイル名の中の単語を探します. コ"
 "ンマで区切られた単語リストを以下に指定できます."
 
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:713
 msgid "Exclude:"
 msgstr "含まない:"
 
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:720
 msgid "Include:"
 msgstr "含む:"
 
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:737
 msgid "Recursively search for cover"
 msgstr "カバーの再帰検索"
 
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:747
 msgid "Search depth: "
 msgstr "検索の深さ: "
 
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:761
 msgid "Use per-file cover"
 msgstr "ファイルごとのカバーを使う"
 
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:764
 msgid "<b>Miscellaneous</b>"
 msgstr "<b>その他</b>"
 
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:773
 msgid "Show Progress bar for the current track"
 msgstr "現在のトラックのプログレスバーを表示する"
 
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:783
 msgid "Delay until filepopup comes up: "
 msgstr "ファイルポップアップが表示されるまでの遅延: "
 
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1283
 msgid "<b>Song Display</b>"
 msgstr "<b>曲の表示</b>"
 
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1292
 msgid "Show song numbers"
 msgstr "曲番号の表示"
 
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1303
 msgid "Show leading zeroes (02:00 instead of 2:00)"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1325
 msgid "Show information about titlestring format"
 msgstr "タイトルに使用できる書式を表示します"
 
-#: src/audacious/ui_preferences.c:1514
+#: src/audacious/ui_preferences.c:1339
 msgid "TITLE"
 msgstr "タイトル"
 
-#: src/audacious/ui_preferences.c:1515
+#: src/audacious/ui_preferences.c:1340
 msgid "ARTIST - TITLE"
 msgstr "アーティスト - タイトル"
 
-#: src/audacious/ui_preferences.c:1516
+#: src/audacious/ui_preferences.c:1341
 msgid "ARTIST - ALBUM - TITLE"
 msgstr "アーティスト - アルバム - タイトル"
 
-#: src/audacious/ui_preferences.c:1517
+#: src/audacious/ui_preferences.c:1342
 msgid "ARTIST - ALBUM - TRACK. TITLE"
 msgstr "アーティスト - アルバム - トラック. タイトル"
 
-#: src/audacious/ui_preferences.c:1518
+#: src/audacious/ui_preferences.c:1343
 msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
 msgstr "アーティスト [ アルバム ] - トラック. タイトル"
 
-#: src/audacious/ui_preferences.c:1519
+#: src/audacious/ui_preferences.c:1344
 msgid "ALBUM - TITLE"
 msgstr "アルバム - タイトル"
 
-#: src/audacious/ui_preferences.c:1520
+#: src/audacious/ui_preferences.c:1345
 msgid "Custom"
 msgstr "カスタム"
 
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1354
 msgid "Custom string:"
 msgstr "カスタム文字列:"
 
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1361
 msgid "Title format:"
 msgstr "タイトルの書式:"
 
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1372
 msgid "<b>Popup Information</b>"
 msgstr "<b>ポップアップ情報</b>"
 
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1387
 msgid "Show popup information for playlist entries"
 msgstr "プレイリストのエントリのポップアップ情報を表示する"
 
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1388
 msgid ""
 "Toggles popup information window for the pointed entry in the playlist. The "
 "window shows title of song, name of album, genre, year of publish, track "
@@ -741,54 +711,47 @@ msgstr ""
 "ます. ウィンドウには曲のタイトル, アルバム名, ジャンル, 製作年, トラック番"
 "号, トラックの長さとアートワークが表示されます."
 
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1397
 msgid "Edit settings for popup information"
 msgstr "ポップアップ情報の設定を編集する"
 
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>オーディオシステム:</b>"
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "バッファのサイズ:"
-
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
-msgstr "現在の出力プラグイン:"
+#: src/audacious/ui_preferences.c:1497
+#, fuzzy
+msgid "Output plugin:"
+msgstr "入力プラグイン: %s"
 
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
 #, fuzzy
 msgid "Transport"
 msgstr "翻訳者"
 
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
 msgid "Input"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
 #, fuzzy
 msgid "Effect"
 msgstr "<b>エフェクト</b>"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
 msgid "Visualization"
 msgstr "視覚化"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
 msgid "General"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1597
 msgid "Audacious Preferences"
 msgstr "Audacious の設定"
 
-#: src/audacious/util.c:161
+#: src/audacious/util.c:155
 #, c-format
 msgid "Could not create directory (%s): %s\n"
 msgstr "ディレクトリ (%s) を作成できませんでした: %s\n"
 
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:264
 msgid "Position not found."
 msgstr ""
 
@@ -807,22 +770,24 @@ msgstr "ステレオ"
 
 #: src/libaudcore/tuple.c:689
 #, c-format
-msgid "%d channels"
-msgstr ""
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] ""
+msgstr[1] ""
 
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/confirm.c:73
 #, c-format
 msgid ""
 "Are you sure you want to close %s?  If you do, any changes made since the "
 "playlist was exported will be lost."
 msgstr ""
 
-#: src/libaudgui/confirm.c:77
+#: src/libaudgui/confirm.c:86
 #, fuzzy
 msgid "_Don't show this message again"
 msgstr "次回からこの警告を表示しない"
 
-#: src/libaudgui/confirm.c:115
+#: src/libaudgui/confirm.c:124
 #, fuzzy
 msgid "Rename Playlist"
 msgstr "プレイリストの保存"
@@ -885,11 +850,11 @@ msgstr "イコライザ"
 msgid "Preamp"
 msgstr "プリアンプ:"
 
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:212
 msgid "Track Number"
 msgstr "トラック番号"
 
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:214
 msgid "Track Length"
 msgstr "トラックの長さ:"
 
@@ -1121,6 +1086,29 @@ msgstr "%d kb/s"
 msgid "No info available for %s.\n"
 msgstr ""
 
+#: src/libaudgui/jump-to-time.c:75
+msgid "Jump to Time"
+msgstr "指定した時間へ移動"
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr ""
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Export Playlist"
+msgstr "プレイリストの読み込み"
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Import Playlist"
+msgstr "プレイリストの読み込み"
+
+#: src/libaudgui/playlists.c:71
+#, c-format
+msgid "Overwrite %s?"
+msgstr ""
+
 #: src/libaudgui/ui_about.c:71
 msgid "About Audacious"
 msgstr "Audacious について"
@@ -1181,19 +1169,19 @@ msgstr "クリア(_r)"
 msgid "Close on Jump"
 msgstr "ジャンプしたらダイアログを閉じる"
 
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:240
 msgid "Playlist Manager"
 msgstr "プレイリストマネージャ"
 
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:264
 msgid "Entries"
 msgstr "エントリ"
 
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:285
 msgid "_Rename"
 msgstr "リネーム(_R)"
 
-#: src/libaudgui/ui_playlist_manager.c:251
+#: src/libaudgui/ui_playlist_manager.c:309
 #, fuzzy
 msgid "_Close dialog on activating playlist"
 msgstr "開いたらダイアログを閉じる"
@@ -1206,6 +1194,12 @@ msgstr ""
 msgid "Add URL"
 msgstr ""
 
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+
 #: src/libeggsmclient/eggdesktopfile.c:165
 msgid "File is not a valid .desktop file"
 msgstr "有効な .desktop ファイルではありません"
@@ -1215,25 +1209,25 @@ msgstr "有効な .desktop ファイルではありません"
 msgid "Unrecognized desktop file Version '%s'"
 msgstr "認識できないデスクトップファイルヴァージョン '%s'"
 
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:967
 #, c-format
 msgid "Starting %s"
 msgstr "%s を開始"
 
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1108
 msgid "Application does not accept documents on command line"
 msgstr "アプリケーションはコマンドライン上のドキュメントを受け付けません"
 
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1176
 #, c-format
 msgid "Unrecognized launch option: %d"
 msgstr "認識できないローンチオプション: %d"
 
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1375
 msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
 msgstr "'Type=Link' デスクトップエントリにドキュメント URI を渡せません"
 
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1396
 msgid "Not a launchable item"
 msgstr "ローンチ可能なアイテムではありません"
 
@@ -1267,6 +1261,52 @@ msgstr "セッションマネージメントオプション"
 msgid "Show session management options"
 msgstr "セッションマネージメントオプションを表示する"
 
+#~ msgid "Replay Gain"
+#~ msgstr "リプレイゲイン"
+
+#~ msgid "<b>Bit Depth</b>"
+#~ msgstr "<b>ビット深度</b>"
+
+#~ msgid ""
+#~ "All streams will be converted to this bit depth.\n"
+#~ "This should be the max supported bit depth of\n"
+#~ "the sound card or output plugin."
+#~ msgstr ""
+#~ "<span size=\"small\">すべてのストリームはこのビット深度に変換されます.\n"
+#~ "これはサウンドカードか出力プラグインでサポートされたビット深度の最大値とな"
+#~ "るはずです.</span>"
+
+#~ msgid "<b>Volume Control</b>"
+#~ msgstr "<b>ボリュームコントロール</b>"
+
+#~ msgid ""
+#~ "Use software volume control. This may be useful for situations where your "
+#~ "audio system does not support controlling the playback volume."
+#~ msgstr ""
+#~ "ソフトウェアボリュームコントロールを使います.オーディオシステムが再生音量"
+#~ "のコントロールをサポートしていない状況で有用でしょう."
+
+#, fuzzy
+#~ msgid "<b>Mode</b>"
+#~ msgstr "<b>メタデータ</b>"
+
+#, fuzzy
+#~ msgid "<b>Clipping Prevention</b>"
+#~ msgstr "<b>ポップアップ情報</b>"
+
+#, fuzzy
+#~ msgid "Enable clipping prevention"
+#~ msgstr "クリッピング防止のためにピーク情報を有効にする"
+
+#~ msgid "<b>Audio System</b>"
+#~ msgstr "<b>オーディオシステム:</b>"
+
+#~ msgid "Current output plugin:"
+#~ msgstr "現在の出力プラグイン:"
+
+#~ msgid "Display all open Audacious windows"
+#~ msgstr "開かれた Audacious ウィンドウを全て表示する"
+
 #~ msgid "%s: Unable to open display, exiting.\n"
 #~ msgstr "%s: ディスプレイを開けません. 終了します.\n"
 
@@ -1780,9 +1820,6 @@ msgstr "セッションマネージメントオプションを表示する"
 #~ msgid "No input plugin recognized this file"
 #~ msgstr "このファイルを認識する入力プラグインではありません"
 
-#~ msgid "Input plugin: %s"
-#~ msgstr "入力プラグイン: %s"
-
 #~ msgid ""
 #~ "<b><big>No output plugin selected.</big></b>\n"
 #~ "You have not selected an output plugin."
@@ -1825,9 +1862,6 @@ msgstr "セッションマネージメントオプションを表示する"
 #~ "これはサウンドカードか出力プラグインでサポートされたサンプリングレートの最"
 #~ "大値となるはずです.</span>"
 
-#~ msgid "<b>Format Detection</b>"
-#~ msgstr "<b>フォーマットの検出</b>"
-
 #~ msgid "Detect file formats by extension."
 #~ msgstr "ファイルフォーマットを拡張子で検出する"
 
@@ -1952,9 +1986,6 @@ msgstr "セッションマネージメントオプションを表示する"
 #~ msgid "Can't jump to time when no track is being played.\n"
 #~ msgstr "再生されるトラックがない時間へは移動できません.\n"
 
-#~ msgid "Jump to Time"
-#~ msgstr "指定した時間へ移動"
-
 #~ msgid "minutes:seconds"
 #~ msgstr "分:秒"
 
diff --git a/po/ka.po b/po/ka.po
index 54f8986..a574f5e 100644
--- a/po/ka.po
+++ b/po/ka.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: 1.35\n"
 "Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
+"POT-Creation-Date: 2011-07-05 22:45+0200\n"
 "PO-Revision-Date: 2005-10-14 13:54+0400\n"
 "Last-Translator: George Machitidze <giomac at gmail.com>\n"
 "Language-Team: Georgian <giomac at gmail.com>\n"
@@ -19,6 +19,17 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: KBabel 1.10.2\n"
 
+#: src/audacious/adder.c:71
+msgid "Searching ..."
+msgstr ""
+
+#: src/audacious/adder.c:99
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] ""
+msgstr[1] ""
+
 #: src/audacious/chardet.c:37
 msgid "  (invalid UTF-8)"
 msgstr "  (არასწორი UTF-8)"
@@ -109,116 +120,116 @@ msgstr "რუმინული:"
 msgid "Finnish:"
 msgstr "ესპანური:"
 
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:220
 msgid "French:"
 msgstr "ფრანგული:"
 
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:226
 msgid "German:"
 msgstr "გერმანული"
 
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:233
 #, fuzzy
 msgid "Georgian:"
 msgstr "გერმანული"
 
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:236
 msgid "Greek:"
 msgstr "ბერძნული:"
 
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:241
 msgid "Hindi:"
 msgstr ""
 
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:244
 msgid "Hungarian:"
 msgstr "უნგრული:"
 
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:248
 msgid "Italian:"
 msgstr "იტალიური:"
 
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:252
 msgid "Japanese:"
 msgstr "იაპონური:"
 
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:255
 msgid "Korean:"
 msgstr "კორეული:"
 
-#: src/audacious/credits.c:256
+#: src/audacious/credits.c:258
 #, fuzzy
 msgid "Latvian:"
 msgstr "მდებარეობა:"
 
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:261
 msgid "Lithuanian:"
 msgstr "ლიტვური:"
 
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:265
 msgid "Macedonian:"
 msgstr "მაკედონიური:"
 
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:268
 msgid "Polish:"
 msgstr "პოლონური:"
 
-#: src/audacious/credits.c:271
+#: src/audacious/credits.c:274
 #, fuzzy
 msgid "Portuguese:"
 msgstr "პორტი:"
 
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:277
 msgid "Romanian:"
 msgstr "რუმინული:"
 
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:281
 msgid "Russian:"
 msgstr "რუსული:"
 
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:285
 msgid "Serbian (Latin):"
 msgstr ""
 
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:288
 msgid "Serbian (Cyrillic):"
 msgstr ""
 
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:291
 msgid "Simplified Chinese:"
 msgstr ""
 
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:294
 msgid "Slovak:"
 msgstr "სლოვაკური:"
 
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:297
 msgid "Spanish:"
 msgstr "ესპანური:"
 
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:304
 msgid "Swedish:"
 msgstr "შვედური:"
 
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:307
 #, fuzzy
 msgid "Traditional Chinese:"
 msgstr "დამატებითი დახმარება:"
 
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:312
 msgid "Turkish:"
 msgstr ""
 
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:316
 #, fuzzy
 msgid "Ukrainian:"
 msgstr "რუმინული:"
 
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:319
 msgid "Welsh:"
 msgstr "უელსური:"
 
-#: src/audacious/drct.c:254
+#: src/audacious/drct.c:256
 #, fuzzy
 msgid "Temporary Playlist"
 msgstr "რეპერტუარის ჩატვირთვა"
@@ -228,90 +239,75 @@ msgstr "რეპერტუარის ჩატვირთვა"
 msgid "Error importing Winamp EQF file '%s'"
 msgstr ""
 
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr ""
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/audacious/main.c:247
+#: src/audacious/main.c:256
 msgid "Skip backwards in playlist"
 msgstr "რეპერტუარში უკან გადასვლა"
 
-#: src/audacious/main.c:248
+#: src/audacious/main.c:257
 msgid "Start playing current playlist"
 msgstr "მიმდინარე რეპერტუარის დაკვრა"
 
-#: src/audacious/main.c:249
+#: src/audacious/main.c:258
 msgid "Pause current song"
 msgstr "მიმდინარე სიმღერის დაპაუზება"
 
-#: src/audacious/main.c:250
+#: src/audacious/main.c:259
 msgid "Stop current song"
 msgstr "მიმდინარე სიმღერის გაჩერება"
 
-#: src/audacious/main.c:251
+#: src/audacious/main.c:260
 msgid "Pause if playing, play otherwise"
 msgstr "დააპაუზება თუ უკრავს, თუ არა - დაკვრა"
 
-#: src/audacious/main.c:252
+#: src/audacious/main.c:261
 msgid "Skip forward in playlist"
 msgstr "რეპერტუარში წინ გადახტომა"
 
-#: src/audacious/main.c:253
+#: src/audacious/main.c:262
 #, fuzzy
 msgid "Display Jump to File dialog"
 msgstr "/ფაილზე გადასვლა"
 
-#: src/audacious/main.c:254
+#: src/audacious/main.c:263
 #, fuzzy
 msgid "Add files to the playlist"
 msgstr "რეპერტუარის გაწმენდის გარეშე"
 
-#: src/audacious/main.c:255
+#: src/audacious/main.c:264
 #, fuzzy
 msgid "Add new files to a temporary playlist"
 msgstr "რეპერტუარის გაწმენდის გარეშე"
 
-#: src/audacious/main.c:256
+#: src/audacious/main.c:265
 #, fuzzy
 msgid "Display the main window"
 msgstr "ძირითადი ფანჯრის ჩვენება"
 
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr ""
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:266
 #, fuzzy
 msgid "Show version"
 msgstr "/რეპერტუარის ჩვენება"
 
-#: src/audacious/main.c:259
+#: src/audacious/main.c:267
 msgid "Print debugging messages"
 msgstr ""
 
-#: src/audacious/main.c:260
+#: src/audacious/main.c:268
 msgid "FILE..."
 msgstr ""
 
-#: src/audacious/main.c:272
+#: src/audacious/main.c:280
 msgid "- play multimedia files"
 msgstr ""
 
-#: src/audacious/main.c:282
+#: src/audacious/main.c:290
 #, c-format
 msgid ""
 "%s: %s\n"
 "Try `%s --help' for more information.\n"
 msgstr ""
 
-#: src/audacious/main.c:395
+#: src/audacious/main.c:407
 msgid ""
 "Audacious seems to be already running but is not responding.  You can start "
 "another instance of the program, but please be warned that this can cause "
@@ -319,288 +315,267 @@ msgid ""
 "message.  Press OK to start Audacious or Cancel to quit."
 msgstr ""
 
-#: src/audacious/main.c:558
+#: src/audacious/main.c:572
 msgid "Audacious"
 msgstr ""
 
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:381
 #, c-format
 msgid "No decoder found for %s."
 msgstr ""
 
-#: src/audacious/playback.c:519
+#: src/audacious/playback.c:531
 #, fuzzy
 msgid "Buffering ..."
 msgstr "ბუფერი"
 
-#: src/audacious/playlist-new.c:288
+#: src/audacious/playlist-new.c:303
 #, fuzzy
 msgid "Untitled Playlist"
 msgstr "რეპერტუარის შენახვა"
 
-#: src/audacious/ui_preferences.c:88
+#: src/audacious/ui_preferences.c:87
 #, fuzzy
 msgid "Audio"
 msgstr "MPEG აუდიო-პლაგინის შესახებ"
 
-#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:88
 msgid "Network"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:89 src/audacious/ui_preferences.c:1556
 msgid "Playlist"
 msgstr "რეპერტუარი"
 
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:90
 msgid "Plugins"
 msgstr "პლაგინები"
 
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:204
 msgid "Artist"
 msgstr "შემსრულებელი"
 
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:97 src/libaudgui/infopopup.c:206
 msgid "Album"
 msgstr "ალბომი"
 
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:202
+#: src/libaudgui/ui_playlist_manager.c:263
 msgid "Title"
 msgstr "სათაური"
 
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:99
 msgid "Tracknumber"
 msgstr "ჩანაწერის ნომერი"
 
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:208
 msgid "Genre"
 msgstr "ჟანრი"
 
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:101
 msgid "Filename"
 msgstr "ფაილის სახელი"
 
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:102
 msgid "Filepath"
 msgstr "ფაილის გეზი"
 
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:103
 msgid "Date"
 msgstr "თარიღი"
 
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:104 src/libaudgui/infopopup.c:210
 msgid "Year"
 msgstr "წელი"
 
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:105
 msgid "Comment"
 msgstr "კომენტარი"
 
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:106
 #, fuzzy
 msgid "Codec"
 msgstr "/დაკეტვა"
 
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:107
 #, fuzzy
 msgid "Quality"
 msgstr "/_გასვლა"
 
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:112
 msgid "None"
 msgstr "არ არის"
 
-#: src/audacious/ui_preferences.c:115
+#: src/audacious/ui_preferences.c:113
 #, fuzzy
 msgid "Japanese"
 msgstr "იაპონური:"
 
-#: src/audacious/ui_preferences.c:116
+#: src/audacious/ui_preferences.c:114
 #, fuzzy
 msgid "Taiwanese"
 msgstr "იაპონური:"
 
-#: src/audacious/ui_preferences.c:117
+#: src/audacious/ui_preferences.c:115
 #, fuzzy
 msgid "Chinese"
 msgstr "ჩინური:"
 
-#: src/audacious/ui_preferences.c:118
+#: src/audacious/ui_preferences.c:116
 #, fuzzy
 msgid "Korean"
 msgstr "კორეული:"
 
-#: src/audacious/ui_preferences.c:119
+#: src/audacious/ui_preferences.c:117
 #, fuzzy
 msgid "Russian"
 msgstr "რუსული:"
 
-#: src/audacious/ui_preferences.c:120
+#: src/audacious/ui_preferences.c:118
 #, fuzzy
 msgid "Greek"
 msgstr "ბერძნული:"
 
-#: src/audacious/ui_preferences.c:121
+#: src/audacious/ui_preferences.c:119
 msgid "Hebrew"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:122
+#: src/audacious/ui_preferences.c:120
 msgid "Turkish"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:123
+#: src/audacious/ui_preferences.c:121
 msgid "Arabic"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:124
+#: src/audacious/ui_preferences.c:122
 #, fuzzy
 msgid "Polish"
 msgstr "პოლონური:"
 
-#: src/audacious/ui_preferences.c:125
+#: src/audacious/ui_preferences.c:123
 #, fuzzy
 msgid "Baltic"
 msgstr "კელტური"
 
-#: src/audacious/ui_preferences.c:126
+#: src/audacious/ui_preferences.c:124
 #, fuzzy
 msgid "Universal"
 msgstr "ჟანრი"
 
 #: src/audacious/ui_preferences.c:146
 #, fuzzy
-msgid "<b>Bit Depth</b>"
-msgstr "ნაკადის სიჩქარე:"
+msgid "Single track mode"
+msgstr "/ჩანაწერის დეტალები"
 
 #: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
+#, fuzzy
+msgid "Album mode"
+msgstr "ალბომი"
 
-#: src/audacious/ui_preferences.c:151
+#: src/audacious/ui_preferences.c:150
 #, fuzzy
-msgid "<b>Volume Control</b>"
-msgstr "ხმის კონტროლი:"
+msgid "<b>Output Settings</b>"
+msgstr "ავტომატურად აღმოჩენა"
 
 #: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr "პროგრამული ხმის კონტროლი"
+#, fuzzy
+msgid "Bit depth:"
+msgstr "ნაკადის სიჩქარე:"
 
-#: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
+#: src/audacious/ui_preferences.c:155
+#, fuzzy
+msgid "Buffer size:"
+msgstr "ბუფერის ზომა (კბ):"
 
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
+#: src/audacious/ui_preferences.c:157
+msgid "ms"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
-msgstr ""
+#: src/audacious/ui_preferences.c:158
+#, fuzzy
+msgid "Use software volume control (not recommended)"
+msgstr "პროგრამული ხმის კონტროლი"
 
 #: src/audacious/ui_preferences.c:160
-msgid "Amplify untagged files:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:164
 #, fuzzy
 msgid "<b>Replay Gain</b>"
 msgstr "<b>ფაილის სახელი</b>"
 
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:161
 #, fuzzy
 msgid "Enable Replay Gain"
 msgstr "/ყოველთვის ზემოდან"
 
-#: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>ფაილის სახელი</b>"
-
-#: src/audacious/ui_preferences.c:168
-#, fuzzy
-msgid "Single track mode"
-msgstr "/ჩანაწერის დეტალები"
-
-#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "ალბომი"
+#: src/audacious/ui_preferences.c:164
+msgid "Prevent clipping (recommended)"
+msgstr ""
 
-#: src/audacious/ui_preferences.c:172
+#: src/audacious/ui_preferences.c:166
 #, fuzzy
 msgid "<b>Adjust Levels</b>"
 msgstr "<b>თაგუნას ბზრიალა</b>"
 
-#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "MPEG აუდიო-პლაგინის კონფიგურაცია"
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify all files:"
+msgstr ""
 
-#: src/audacious/ui_preferences.c:176
-msgid "Enable clipping prevention"
+#: src/audacious/ui_preferences.c:169 src/audacious/ui_preferences.c:172
+msgid "dB"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:170
+msgid "Amplify untagged files:"
+msgstr ""
+
+#: src/audacious/ui_preferences.c:175
 msgid "Proxy hostname:"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:176
 #, fuzzy
 msgid "Proxy port:"
 msgstr "პროქსი:"
 
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:179
 #, fuzzy
 msgid "Proxy username:"
 msgstr "სახელი:"
 
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:180
 #, fuzzy
 msgid "Proxy password:"
 msgstr "პაროლი:"
 
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:184
 #, fuzzy
 msgid "<b>Proxy Configuration</b>"
 msgstr "MPEG აუდიო-პლაგინის კონფიგურაცია"
 
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:185
 msgid "Enable proxy usage"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:187
 #, fuzzy
 msgid "Use authentication with proxy"
 msgstr "აუთენტიკაციის გამოყენება"
 
-#: src/audacious/ui_preferences.c:197
+#: src/audacious/ui_preferences.c:189
 msgid ""
 "<span size=\"small\">Changing these settings will require a restart of "
 "Audacious.</span>"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
 msgid "Auto character encoding detector for:"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
 msgid "Fallback character encodings:"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
 msgid ""
 "List of character encodings used for fall back conversion of metadata. If "
 "automatic character encoding detector failed or has been disabled, encodings "
@@ -608,211 +583,201 @@ msgid ""
 "fall back conversion from these encodings to UTF-8 would be attempted."
 msgstr ""
 
-#: src/audacious/ui_preferences.c:213
+#: src/audacious/ui_preferences.c:205
 #, fuzzy
 msgid "<b>Behavior</b>"
 msgstr "ნაკადის სიჩქარე:"
 
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:206
 msgid "Continue playback on startup"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:208
 msgid "Advance when the current song is deleted"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:218
+#: src/audacious/ui_preferences.c:210
 #, fuzzy
 msgid "Clear the playlist when opening files"
 msgstr "/სიის დალაგება/სათაურის მიხედვით"
 
-#: src/audacious/ui_preferences.c:220
+#: src/audacious/ui_preferences.c:212
 #, fuzzy
 msgid "Open files in a temporary playlist"
 msgstr "რეპერტუარის გაწმენდის გარეშე"
 
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:214
 msgid "<b>Metadata</b>"
 msgstr "<b>მეტამონაცემები</b>"
 
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:454
 msgid "Category"
 msgstr "კატეგორია"
 
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:682
 #, fuzzy
 msgid "Popup Information Settings"
 msgstr "MPEG აუდიო-პლაგინის კონფიგურაცია"
 
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:691
 #, fuzzy
 msgid "<b>Cover image retrieve</b>"
 msgstr "ავტომატურად აღმოჩენა"
 
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:696
 msgid ""
 "While searching for the album's cover, Audacious looks for certain words in "
 "the filename. You can specify those words in the lists below, separated "
 "using commas."
 msgstr ""
 
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:713
 msgid "Exclude:"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:720
 #, fuzzy
 msgid "Include:"
 msgstr "ინდი"
 
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:737
 msgid "Recursively search for cover"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:747
 msgid "Search depth: "
 msgstr ""
 
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:761
 msgid "Use per-file cover"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:764
 #, fuzzy
 msgid "<b>Miscellaneous</b>"
 msgstr "<b>_სხვადასხვა</b>"
 
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:773
 msgid "Show Progress bar for the current track"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:783
 msgid "Delay until filepopup comes up: "
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1283
 #, fuzzy
 msgid "<b>Song Display</b>"
 msgstr "<b>სიმღერის სახელის ჩვენება</b>"
 
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1292
 msgid "Show song numbers"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1303
 msgid "Show leading zeroes (02:00 instead of 2:00)"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1325
 msgid "Show information about titlestring format"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1514
+#: src/audacious/ui_preferences.c:1339
 msgid "TITLE"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1515
+#: src/audacious/ui_preferences.c:1340
 msgid "ARTIST - TITLE"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1516
+#: src/audacious/ui_preferences.c:1341
 msgid "ARTIST - ALBUM - TITLE"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1517
+#: src/audacious/ui_preferences.c:1342
 msgid "ARTIST - ALBUM - TRACK. TITLE"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1518
+#: src/audacious/ui_preferences.c:1343
 msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1519
+#: src/audacious/ui_preferences.c:1344
 msgid "ALBUM - TITLE"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1520
+#: src/audacious/ui_preferences.c:1345
 #, fuzzy
 msgid "Custom"
 msgstr "ბუფერის დრო (მწმ):"
 
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1354
 msgid "Custom string:"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1361
 msgid "Title format:"
 msgstr "სათაურის ფორმატი:"
 
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1372
 #, fuzzy
 msgid "<b>Popup Information</b>"
 msgstr "MPEG აუდიო-პლაგინის კონფიგურაცია"
 
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1387
 msgid "Show popup information for playlist entries"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1388
 msgid ""
 "Toggles popup information window for the pointed entry in the playlist. The "
 "window shows title of song, name of album, genre, year of publish, track "
 "number, track length, and artwork."
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1397
 msgid "Edit settings for popup information"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1698
-#, fuzzy
-msgid "<b>Audio System</b>"
-msgstr "შემსრულებელი:"
-
-#: src/audacious/ui_preferences.c:1715
-#, fuzzy
-msgid "Buffer size:"
-msgstr "ბუფერის ზომა (კბ):"
-
-#: src/audacious/ui_preferences.c:1734
+#: src/audacious/ui_preferences.c:1497
 #, fuzzy
-msgid "Current output plugin:"
-msgstr "_მიმდინარე გამომყვანი პლაგინი:"
+msgid "Output plugin:"
+msgstr "OSS გამომყვანი პლაგინი"
 
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
 #, fuzzy
 msgid "Transport"
 msgstr "მთარგმნელები"
 
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
 msgid "Input"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
 #, fuzzy
 msgid "Effect"
 msgstr "<b>ეფექტები</b>"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
 #, fuzzy
 msgid "Visualization"
 msgstr "/ვიზუალიზაციის რეჟიმი"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
 msgid "General"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1597
 #, fuzzy
 msgid "Audacious Preferences"
 msgstr "BMP-ის თვისებები"
 
-#: src/audacious/util.c:161
+#: src/audacious/util.c:155
 #, fuzzy, c-format
 msgid "Could not create directory (%s): %s\n"
 msgstr "(%s) დირექტორიის შექმნა შეუძლებელია : %s"
 
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:264
 msgid "Position not found."
 msgstr ""
 
@@ -831,22 +796,24 @@ msgstr "სტერეო"
 
 #: src/libaudcore/tuple.c:689
 #, fuzzy, c-format
-msgid "%d channels"
-msgstr "არხები:"
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] "არხები:"
+msgstr[1] "არხები:"
 
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/confirm.c:73
 #, c-format
 msgid ""
 "Are you sure you want to close %s?  If you do, any changes made since the "
 "playlist was exported will be lost."
 msgstr ""
 
-#: src/libaudgui/confirm.c:77
+#: src/libaudgui/confirm.c:86
 #, fuzzy
 msgid "_Don't show this message again"
 msgstr "აღარ აჩვენო ეს გაფრხილება"
 
-#: src/libaudgui/confirm.c:115
+#: src/libaudgui/confirm.c:124
 #, fuzzy
 msgid "Rename Playlist"
 msgstr "რეპერტუარის შენახვა"
@@ -916,12 +883,12 @@ msgstr "ეკვალაიზერი"
 msgid "Preamp"
 msgstr ""
 
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:212
 #, fuzzy
 msgid "Track Number"
 msgstr "ჩანაწერის ნომერი"
 
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:214
 #, fuzzy
 msgid "Track Length"
 msgstr "ჩანაწერის სიგრძე:"
@@ -1172,6 +1139,29 @@ msgstr ""
 msgid "No info available for %s.\n"
 msgstr ""
 
+#: src/libaudgui/jump-to-time.c:75
+msgid "Jump to Time"
+msgstr "დროზე გადასვლა"
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr ""
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Export Playlist"
+msgstr "რეპერტუარის ჩატვირთვა"
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Import Playlist"
+msgstr "რეპერტუარის ჩატვირთვა"
+
+#: src/libaudgui/playlists.c:71
+#, c-format
+msgid "Overwrite %s?"
+msgstr ""
+
 #: src/libaudgui/ui_about.c:71
 #, fuzzy
 msgid "About Audacious"
@@ -1238,21 +1228,21 @@ msgstr "/რიგის გაწმენდა"
 msgid "Close on Jump"
 msgstr "გახსნის შემდეგ დიალოგის დაკეტვა"
 
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:240
 #, fuzzy
 msgid "Playlist Manager"
 msgstr "/რეპერტუარის ჩვენება"
 
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:264
 msgid "Entries"
 msgstr ""
 
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:285
 #, fuzzy
 msgid "_Rename"
 msgstr "ფაილის სახელი"
 
-#: src/libaudgui/ui_playlist_manager.c:251
+#: src/libaudgui/ui_playlist_manager.c:309
 #, fuzzy
 msgid "_Close dialog on activating playlist"
 msgstr "გახსნის შემდეგ დიალოგის დაკეტვა"
@@ -1265,6 +1255,12 @@ msgstr ""
 msgid "Add URL"
 msgstr ""
 
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+
 #: src/libeggsmclient/eggdesktopfile.c:165
 msgid "File is not a valid .desktop file"
 msgstr ""
@@ -1274,25 +1270,25 @@ msgstr ""
 msgid "Unrecognized desktop file Version '%s'"
 msgstr "%s: ამოუცნობი პარამეტრი `--%s'\n"
 
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:967
 #, fuzzy, c-format
 msgid "Starting %s"
 msgstr "იტალიური:"
 
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1108
 msgid "Application does not accept documents on command line"
 msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1176
 #, fuzzy, c-format
 msgid "Unrecognized launch option: %d"
 msgstr "%s: ამოუცნობი პარამეტრი `--%s'\n"
 
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1375
 msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
 msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1396
 msgid "Not a launchable item"
 msgstr ""
 
@@ -1325,6 +1321,30 @@ msgid "Show session management options"
 msgstr ""
 
 #, fuzzy
+#~ msgid "<b>Bit Depth</b>"
+#~ msgstr "ნაკადის სიჩქარე:"
+
+#, fuzzy
+#~ msgid "<b>Volume Control</b>"
+#~ msgstr "ხმის კონტროლი:"
+
+#, fuzzy
+#~ msgid "<b>Mode</b>"
+#~ msgstr "<b>ფაილის სახელი</b>"
+
+#, fuzzy
+#~ msgid "<b>Clipping Prevention</b>"
+#~ msgstr "MPEG აუდიო-პლაგინის კონფიგურაცია"
+
+#, fuzzy
+#~ msgid "<b>Audio System</b>"
+#~ msgstr "შემსრულებელი:"
+
+#, fuzzy
+#~ msgid "Current output plugin:"
+#~ msgstr "_მიმდინარე გამომყვანი პლაგინი:"
+
+#, fuzzy
 #~ msgid "%s: Unable to open display, exiting.\n"
 #~ msgstr "BMP: შეუძლებელია ეკრანის გახსნა, გამოვდივარ."
 
@@ -1779,10 +1799,6 @@ msgstr ""
 #~ msgstr "აუთენტიკაციის გამოყენება"
 
 #, fuzzy
-#~ msgid "<b>Format Detection</b>"
-#~ msgstr "ავტომატურად აღმოჩენა"
-
-#, fuzzy
 #~ msgid "<b>Sampling Rate Converter</b>"
 #~ msgstr "სემპლირების სიხშირე:"
 
@@ -1808,9 +1824,6 @@ msgstr ""
 #~ msgid "Load metadata (tag information) from music files."
 #~ msgstr "მეტა-მონაცემების (ტეგების) ჩატვირთვა მუსიკალური ფაილებიდან."
 
-#~ msgid "Jump to Time"
-#~ msgstr "დროზე გადასვლა"
-
 #~ msgid "minutes:seconds"
 #~ msgstr "წუთები:წამები"
 
@@ -3548,9 +3561,6 @@ msgstr ""
 #~ msgid "MPEG Level:"
 #~ msgstr "MPEG-ის დონე:"
 
-#~ msgid "Bit rate:"
-#~ msgstr "ნაკადის სიჩქარე:"
-
 #~ msgid "Sample rate:"
 #~ msgstr "სემპლირების სიხშირე:"
 
@@ -3710,9 +3720,6 @@ msgstr ""
 #~ msgid " Close "
 #~ msgstr "/დაკეტვა"
 
-#~ msgid "OSS Output Plugin"
-#~ msgstr "OSS გამომყვანი პლაგინი"
-
 #~ msgid "About OSS Driver"
 #~ msgstr "OSS დრაივერის შესახებ"
 
diff --git a/po/ko.po b/po/ko.po
index a24a05a..5976d3e 100644
--- a/po/ko.po
+++ b/po/ko.po
@@ -11,7 +11,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: audacious 1.4.6\n"
 "Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
+"POT-Creation-Date: 2011-07-05 22:45+0200\n"
 "PO-Revision-Date: 2008-02-14 22:00+0900\n"
 "Last-Translator: ChoSeongWoo <syn333 at gmail.com>\n"
 "Language-Team: Korean <ko at li.org>\n"
@@ -20,6 +20,17 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
+#: src/audacious/adder.c:71
+msgid "Searching ..."
+msgstr ""
+
+#: src/audacious/adder.c:99
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] ""
+msgstr[1] ""
+
 #: src/audacious/chardet.c:37
 msgid "  (invalid UTF-8)"
 msgstr " (유효하지 않은 UTF-8)"
@@ -104,113 +115,113 @@ msgstr "에스토니아어:"
 msgid "Finnish:"
 msgstr "핀란드어:"
 
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:220
 msgid "French:"
 msgstr "프랑스어:"
 
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:226
 msgid "German:"
 msgstr "독일어:"
 
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:233
 msgid "Georgian:"
 msgstr "그루지야어:"
 
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:236
 msgid "Greek:"
 msgstr "그리스어:"
 
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:241
 msgid "Hindi:"
 msgstr "힌디어:"
 
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:244
 msgid "Hungarian:"
 msgstr "헝가리어:"
 
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:248
 msgid "Italian:"
 msgstr "이탈리아어:"
 
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:252
 msgid "Japanese:"
 msgstr "일본어:"
 
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:255
 msgid "Korean:"
 msgstr "한국어:"
 
-#: src/audacious/credits.c:256
+#: src/audacious/credits.c:258
 #, fuzzy
 msgid "Latvian:"
 msgstr "크로아티아어:"
 
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:261
 msgid "Lithuanian:"
 msgstr "리투아니아어:"
 
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:265
 msgid "Macedonian:"
 msgstr "마케도니아어:"
 
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:268
 msgid "Polish:"
 msgstr "폴란드어:"
 
-#: src/audacious/credits.c:271
+#: src/audacious/credits.c:274
 #, fuzzy
 msgid "Portuguese:"
 msgstr "포르투갈어 (브라질):"
 
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:277
 msgid "Romanian:"
 msgstr "루마니아어:"
 
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:281
 msgid "Russian:"
 msgstr "러시아어:"
 
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:285
 msgid "Serbian (Latin):"
 msgstr "세르비아어 (라틴):"
 
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:288
 msgid "Serbian (Cyrillic):"
 msgstr "세르비아어 (키릴):"
 
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:291
 msgid "Simplified Chinese:"
 msgstr "중국어 (간자체):"
 
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:294
 msgid "Slovak:"
 msgstr "슬로바키아어:"
 
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:297
 msgid "Spanish:"
 msgstr "스페인어:"
 
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:304
 msgid "Swedish:"
 msgstr "스웨덴어:"
 
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:307
 msgid "Traditional Chinese:"
 msgstr "중국어 (번자체):"
 
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:312
 msgid "Turkish:"
 msgstr "터키어:"
 
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:316
 msgid "Ukrainian:"
 msgstr "우크라이나어:"
 
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:319
 msgid "Welsh:"
 msgstr "웨일스어:"
 
-#: src/audacious/drct.c:254
+#: src/audacious/drct.c:256
 #, fuzzy
 msgid "Temporary Playlist"
 msgstr "연주 목록 불러오기"
@@ -220,80 +231,65 @@ msgstr "연주 목록 불러오기"
 msgid "Error importing Winamp EQF file '%s'"
 msgstr ""
 
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr ""
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/audacious/main.c:247
+#: src/audacious/main.c:256
 msgid "Skip backwards in playlist"
 msgstr "연주 목록의 뒷부분 건너뛰기"
 
-#: src/audacious/main.c:248
+#: src/audacious/main.c:257
 msgid "Start playing current playlist"
 msgstr "현재 연주 목록 재생 시작"
 
-#: src/audacious/main.c:249
+#: src/audacious/main.c:258
 msgid "Pause current song"
 msgstr "현재 노래 멈춤"
 
-#: src/audacious/main.c:250
+#: src/audacious/main.c:259
 msgid "Stop current song"
 msgstr "현재 노래 정지"
 
-#: src/audacious/main.c:251
+#: src/audacious/main.c:260
 msgid "Pause if playing, play otherwise"
 msgstr "재생 중이면 멈춤, 그 외에는 재생"
 
-#: src/audacious/main.c:252
+#: src/audacious/main.c:261
 msgid "Skip forward in playlist"
 msgstr "연주 목록의 앞부분 건너뛰기"
 
-#: src/audacious/main.c:253
+#: src/audacious/main.c:262
 msgid "Display Jump to File dialog"
 msgstr "파일 창에서 이동 표시"
 
-#: src/audacious/main.c:254
+#: src/audacious/main.c:263
 #, fuzzy
 msgid "Add files to the playlist"
 msgstr "연주 목록에 파일을 추가합니다."
 
-#: src/audacious/main.c:255
+#: src/audacious/main.c:264
 msgid "Add new files to a temporary playlist"
 msgstr "새 파일을 임시 연주 목록에 추가"
 
-#: src/audacious/main.c:256
+#: src/audacious/main.c:265
 msgid "Display the main window"
 msgstr "기본 창 표시"
 
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr "모든 열린 창 표시"
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:266
 #, fuzzy
 msgid "Show version"
 msgstr "재생기 보기"
 
-#: src/audacious/main.c:259
+#: src/audacious/main.c:267
 msgid "Print debugging messages"
 msgstr ""
 
-#: src/audacious/main.c:260
+#: src/audacious/main.c:268
 msgid "FILE..."
 msgstr "파일..."
 
-#: src/audacious/main.c:272
+#: src/audacious/main.c:280
 msgid "- play multimedia files"
 msgstr " - 멀티미디어 파일 재생"
 
-#: src/audacious/main.c:282
+#: src/audacious/main.c:290
 #, c-format
 msgid ""
 "%s: %s\n"
@@ -302,7 +298,7 @@ msgstr ""
 "%s: %s\n"
 "'%s --help'를 실행하면 더 많은 정보를 볼 수 있습니다.\n"
 
-#: src/audacious/main.c:395
+#: src/audacious/main.c:407
 msgid ""
 "Audacious seems to be already running but is not responding.  You can start "
 "another instance of the program, but please be warned that this can cause "
@@ -310,285 +306,257 @@ msgid ""
 "message.  Press OK to start Audacious or Cancel to quit."
 msgstr ""
 
-#: src/audacious/main.c:558
+#: src/audacious/main.c:572
 msgid "Audacious"
 msgstr "Audacious"
 
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:381
 #, c-format
 msgid "No decoder found for %s."
 msgstr ""
 
-#: src/audacious/playback.c:519
+#: src/audacious/playback.c:531
 msgid "Buffering ..."
 msgstr ""
 
-#: src/audacious/playlist-new.c:288
+#: src/audacious/playlist-new.c:303
 #, fuzzy
 msgid "Untitled Playlist"
 msgstr "새 연주 목록"
 
-#: src/audacious/ui_preferences.c:88
+#: src/audacious/ui_preferences.c:87
 msgid "Audio"
 msgstr "오디오"
 
-#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:88
 msgid "Network"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:89 src/audacious/ui_preferences.c:1556
 msgid "Playlist"
 msgstr "연주 목록"
 
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:90
 msgid "Plugins"
 msgstr "플러그인"
 
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:204
 msgid "Artist"
 msgstr "음악가"
 
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:97 src/libaudgui/infopopup.c:206
 msgid "Album"
 msgstr "음반"
 
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:202
+#: src/libaudgui/ui_playlist_manager.c:263
 msgid "Title"
 msgstr "제목"
 
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:99
 msgid "Tracknumber"
 msgstr "트랙 번호"
 
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:208
 msgid "Genre"
 msgstr "장르"
 
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:101
 msgid "Filename"
 msgstr "파일 이름"
 
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:102
 msgid "Filepath"
 msgstr "파일 경로"
 
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:103
 msgid "Date"
 msgstr "날짜"
 
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:104 src/libaudgui/infopopup.c:210
 msgid "Year"
 msgstr "연도"
 
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:105
 msgid "Comment"
 msgstr "주석"
 
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:106
 msgid "Codec"
 msgstr "코덱"
 
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:107
 msgid "Quality"
 msgstr "음질"
 
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:112
 msgid "None"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:115
+#: src/audacious/ui_preferences.c:113
 #, fuzzy
 msgid "Japanese"
 msgstr "일본어:"
 
-#: src/audacious/ui_preferences.c:116
+#: src/audacious/ui_preferences.c:114
 #, fuzzy
 msgid "Taiwanese"
 msgstr "일본어:"
 
-#: src/audacious/ui_preferences.c:117
+#: src/audacious/ui_preferences.c:115
 #, fuzzy
 msgid "Chinese"
 msgstr "줄"
 
-#: src/audacious/ui_preferences.c:118
+#: src/audacious/ui_preferences.c:116
 #, fuzzy
 msgid "Korean"
 msgstr "한국어:"
 
-#: src/audacious/ui_preferences.c:119
+#: src/audacious/ui_preferences.c:117
 #, fuzzy
 msgid "Russian"
 msgstr "러시아어:"
 
-#: src/audacious/ui_preferences.c:120
+#: src/audacious/ui_preferences.c:118
 #, fuzzy
 msgid "Greek"
 msgstr "그리스어:"
 
-#: src/audacious/ui_preferences.c:121
+#: src/audacious/ui_preferences.c:119
 msgid "Hebrew"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:122
+#: src/audacious/ui_preferences.c:120
 #, fuzzy
 msgid "Turkish"
 msgstr "터키어:"
 
-#: src/audacious/ui_preferences.c:123
+#: src/audacious/ui_preferences.c:121
 msgid "Arabic"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:124
+#: src/audacious/ui_preferences.c:122
 #, fuzzy
 msgid "Polish"
 msgstr "폴란드어:"
 
-#: src/audacious/ui_preferences.c:125
+#: src/audacious/ui_preferences.c:123
 msgid "Baltic"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:126
+#: src/audacious/ui_preferences.c:124
 msgid "Universal"
 msgstr ""
 
 #: src/audacious/ui_preferences.c:146
 #, fuzzy
-msgid "<b>Bit Depth</b>"
-msgstr "<b>형식 감지</b>"
+msgid "Single track mode"
+msgstr "트랙 자세히 보기"
 
 #: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:148
 #, fuzzy
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
-"<span size=\"small\">모든 스트림을 이 샘플링율로변환합니다.\n"
-"사운드카드나 출력 플러그인에서 지원하는\n"
-"최대 샘플링율로 설정하는 것이 좋습니다.</span>"
+msgid "Album mode"
+msgstr "음반: "
 
-#: src/audacious/ui_preferences.c:151
-msgid "<b>Volume Control</b>"
-msgstr "<b>음량 제어</b>"
+#: src/audacious/ui_preferences.c:150
+#, fuzzy
+msgid "<b>Output Settings</b>"
+msgstr "<b>형식 감지</b>"
 
 #: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr "소프트웨어 음량 제어 사용"
-
-#: src/audacious/ui_preferences.c:154
 #, fuzzy
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
-"소프트웨어 음량 제어를 사용합니다. 이것은 오디오 시스템이 음량 제어를 지원하"
-"지 않을 때 유용합니다."
+msgid "Bit depth:"
+msgstr "<b>형식 감지</b>"
 
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
-msgstr ""
+#: src/audacious/ui_preferences.c:155
+msgid "Buffer size:"
+msgstr "버퍼 크기:"
 
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
+#: src/audacious/ui_preferences.c:157
+msgid "ms"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:160
+#: src/audacious/ui_preferences.c:158
 #, fuzzy
-msgid "Amplify untagged files:"
-msgstr " - 멀티미디어 파일 재생"
+msgid "Use software volume control (not recommended)"
+msgstr "소프트웨어 음량 제어 사용"
 
-#: src/audacious/ui_preferences.c:164
+#: src/audacious/ui_preferences.c:160
 #, fuzzy
 msgid "<b>Replay Gain</b>"
 msgstr "<b>프락시 설정</b>"
 
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:161
 #, fuzzy
 msgid "Enable Replay Gain"
 msgstr "프락시 사용"
 
-#: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>메타데이터</b>"
-
-#: src/audacious/ui_preferences.c:168
-#, fuzzy
-msgid "Single track mode"
-msgstr "트랙 자세히 보기"
-
-#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "음반: "
+#: src/audacious/ui_preferences.c:164
+msgid "Prevent clipping (recommended)"
+msgstr ""
 
-#: src/audacious/ui_preferences.c:172
+#: src/audacious/ui_preferences.c:166
 #, fuzzy
 msgid "<b>Adjust Levels</b>"
 msgstr "<b>마우스 휠</b>"
 
-#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "<b>팝업 정보</b>"
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify all files:"
+msgstr ""
 
-#: src/audacious/ui_preferences.c:176
-msgid "Enable clipping prevention"
+#: src/audacious/ui_preferences.c:169 src/audacious/ui_preferences.c:172
+msgid "dB"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:170
+#, fuzzy
+msgid "Amplify untagged files:"
+msgstr " - 멀티미디어 파일 재생"
+
+#: src/audacious/ui_preferences.c:175
 msgid "Proxy hostname:"
 msgstr "호스트 이름:"
 
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:176
 msgid "Proxy port:"
 msgstr "포트:"
 
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:179
 msgid "Proxy username:"
 msgstr "사용자 이름:"
 
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:180
 msgid "Proxy password:"
 msgstr "비밀번호:"
 
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:184
 msgid "<b>Proxy Configuration</b>"
 msgstr "<b>프락시 설정</b>"
 
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:185
 msgid "Enable proxy usage"
 msgstr "프락시 사용"
 
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:187
 msgid "Use authentication with proxy"
 msgstr "프락시에서 인증 사용"
 
-#: src/audacious/ui_preferences.c:197
+#: src/audacious/ui_preferences.c:189
 msgid ""
 "<span size=\"small\">Changing these settings will require a restart of "
 "Audacious.</span>"
 msgstr "<span size=\"small\">바뀐 설정 값은 재시작 해야적용됩니다.</span>"
 
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
 msgid "Auto character encoding detector for:"
 msgstr "문자 인코딩 자동 감지기:"
 
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
 msgid "Fallback character encodings:"
 msgstr "대체할 문자 인코딩:"
 
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
 msgid ""
 "List of character encodings used for fall back conversion of metadata. If "
 "automatic character encoding detector failed or has been disabled, encodings "
@@ -599,46 +567,46 @@ msgstr ""
 "을 감지하는데 실패하거나 사용할 수 없을 때, 이 목록 중에서 인코딩을 시도하며 "
 "이들은 UTF-8 인코딩을 대체할 수 있도록 도움을 줍니다."
 
-#: src/audacious/ui_preferences.c:213
+#: src/audacious/ui_preferences.c:205
 #, fuzzy
 msgid "<b>Behavior</b>"
 msgstr "<b>형식 감지</b>"
 
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:206
 msgid "Continue playback on startup"
 msgstr "시작할 때 이어서 재생"
 
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:208
 msgid "Advance when the current song is deleted"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:218
+#: src/audacious/ui_preferences.c:210
 #, fuzzy
 msgid "Clear the playlist when opening files"
 msgstr "일치하는 항목으로 새 연주 목록을 만듦"
 
-#: src/audacious/ui_preferences.c:220
+#: src/audacious/ui_preferences.c:212
 #, fuzzy
 msgid "Open files in a temporary playlist"
 msgstr "새 파일을 임시 연주 목록에 추가"
 
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:214
 msgid "<b>Metadata</b>"
 msgstr "<b>메타데이터</b>"
 
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:454
 msgid "Category"
 msgstr "부문"
 
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:682
 msgid "Popup Information Settings"
 msgstr "팝업 정보 설정"
 
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:691
 msgid "<b>Cover image retrieve</b>"
 msgstr "<b>표지 이미지 받기</b>"
 
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:696
 msgid ""
 "While searching for the album's cover, Audacious looks for certain words in "
 "the filename. You can specify those words in the lists below, separated "
@@ -647,100 +615,100 @@ msgstr ""
 "음반 표지를 찾을 때까지 파일 이름의 정확한 단어로 찾습니다. 아래 목록에서 찾"
 "을 단어를 지정할 수 있습니다. 쉼표(,)로 구분하세요."
 
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:713
 msgid "Exclude:"
 msgstr "제외:"
 
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:720
 msgid "Include:"
 msgstr "포함:"
 
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:737
 msgid "Recursively search for cover"
 msgstr "반복해서 표지 찾기"
 
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:747
 msgid "Search depth: "
 msgstr "검색 수준: "
 
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:761
 msgid "Use per-file cover"
 msgstr "사용자 파일 표지 사용"
 
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:764
 msgid "<b>Miscellaneous</b>"
 msgstr "<b>기타</b>"
 
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:773
 msgid "Show Progress bar for the current track"
 msgstr "현재 트랙에서 진행 막대 보기"
 
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:783
 msgid "Delay until filepopup comes up: "
 msgstr "파일 팝업을 띄울 지연 시간: "
 
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1283
 msgid "<b>Song Display</b>"
 msgstr "<b>노래 표시</b>"
 
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1292
 msgid "Show song numbers"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1303
 msgid "Show leading zeroes (02:00 instead of 2:00)"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1325
 msgid "Show information about titlestring format"
 msgstr "제목 표시 형식에 대한 정보 보기"
 
-#: src/audacious/ui_preferences.c:1514
+#: src/audacious/ui_preferences.c:1339
 msgid "TITLE"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1515
+#: src/audacious/ui_preferences.c:1340
 msgid "ARTIST - TITLE"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1516
+#: src/audacious/ui_preferences.c:1341
 msgid "ARTIST - ALBUM - TITLE"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1517
+#: src/audacious/ui_preferences.c:1342
 msgid "ARTIST - ALBUM - TRACK. TITLE"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1518
+#: src/audacious/ui_preferences.c:1343
 msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1519
+#: src/audacious/ui_preferences.c:1344
 msgid "ALBUM - TITLE"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1520
+#: src/audacious/ui_preferences.c:1345
 #, fuzzy
 msgid "Custom"
 msgstr "사용자 정의:"
 
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1354
 msgid "Custom string:"
 msgstr "사용자 정의:"
 
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1361
 msgid "Title format:"
 msgstr "제목 형식:"
 
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1372
 msgid "<b>Popup Information</b>"
 msgstr "<b>팝업 정보</b>"
 
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1387
 msgid "Show popup information for playlist entries"
 msgstr "연주 목록 항목에서 팝업 정보 보기"
 
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1388
 msgid ""
 "Toggles popup information window for the pointed entry in the playlist. The "
 "window shows title of song, name of album, genre, year of publish, track "
@@ -749,54 +717,47 @@ msgstr ""
 "연주 목록의 항목에서 팝업 정보 창을 보거나 끕니다. 창에서 노래 제목, 음반, 장"
 "르, 연도, 트랙 번호, 트랙 길이 등을 보여줍니다."
 
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1397
 msgid "Edit settings for popup information"
 msgstr "팝업 정보 설정 편집"
 
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>오디오 시스템</b>"
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "버퍼 크기:"
-
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
-msgstr "현재 출력 플러그인:"
+#: src/audacious/ui_preferences.c:1497
+#, fuzzy
+msgid "Output plugin:"
+msgstr "입력 플러그인: %s"
 
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
 #, fuzzy
 msgid "Transport"
 msgstr "번역자들"
 
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
 msgid "Input"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
 #, fuzzy
 msgid "Effect"
 msgstr "<b>음성 효과</b>"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
 msgid "Visualization"
 msgstr "시각 효과"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
 msgid "General"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1597
 msgid "Audacious Preferences"
 msgstr "Audacious 환경 설정"
 
-#: src/audacious/util.c:161
+#: src/audacious/util.c:155
 #, c-format
 msgid "Could not create directory (%s): %s\n"
 msgstr "(%s) 디렉터리를 만들 수 없음: %s\n"
 
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:264
 msgid "Position not found."
 msgstr ""
 
@@ -815,22 +776,24 @@ msgstr "스테레오"
 
 #: src/libaudcore/tuple.c:689
 #, c-format
-msgid "%d channels"
-msgstr ""
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] ""
+msgstr[1] ""
 
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/confirm.c:73
 #, c-format
 msgid ""
 "Are you sure you want to close %s?  If you do, any changes made since the "
 "playlist was exported will be lost."
 msgstr ""
 
-#: src/libaudgui/confirm.c:77
+#: src/libaudgui/confirm.c:86
 #, fuzzy
 msgid "_Don't show this message again"
 msgstr "이 경고를 다시 표시하지 않음"
 
-#: src/libaudgui/confirm.c:115
+#: src/libaudgui/confirm.c:124
 #, fuzzy
 msgid "Rename Playlist"
 msgstr "연주 목록 저장"
@@ -892,11 +855,11 @@ msgstr "이퀄라이저"
 msgid "Preamp"
 msgstr ""
 
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:212
 msgid "Track Number"
 msgstr "트랙 번호"
 
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:214
 msgid "Track Length"
 msgstr "트랙 길이"
 
@@ -1132,6 +1095,29 @@ msgstr ""
 msgid "No info available for %s.\n"
 msgstr ""
 
+#: src/libaudgui/jump-to-time.c:75
+msgid "Jump to Time"
+msgstr "시간 이동"
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr ""
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Export Playlist"
+msgstr "연주 목록 불러오기"
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Import Playlist"
+msgstr "연주 목록 불러오기"
+
+#: src/libaudgui/playlists.c:71
+#, c-format
+msgid "Overwrite %s?"
+msgstr ""
+
 #: src/libaudgui/ui_about.c:71
 msgid "About Audacious"
 msgstr "Audacious 소개"
@@ -1193,19 +1179,19 @@ msgstr "구간 비움"
 msgid "Close on Jump"
 msgstr "이동하면 닫기"
 
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:240
 msgid "Playlist Manager"
 msgstr "연주 목록 관리자"
 
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:264
 msgid "Entries"
 msgstr "항목"
 
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:285
 msgid "_Rename"
 msgstr "이름 바꾸기(_R)"
 
-#: src/libaudgui/ui_playlist_manager.c:251
+#: src/libaudgui/ui_playlist_manager.c:309
 #, fuzzy
 msgid "_Close dialog on activating playlist"
 msgstr "선택해서 열면 창 닫기"
@@ -1218,6 +1204,12 @@ msgstr ""
 msgid "Add URL"
 msgstr ""
 
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+
 #: src/libeggsmclient/eggdesktopfile.c:165
 msgid "File is not a valid .desktop file"
 msgstr ""
@@ -1227,25 +1219,25 @@ msgstr ""
 msgid "Unrecognized desktop file Version '%s'"
 msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:967
 #, c-format
 msgid "Starting %s"
 msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1108
 msgid "Application does not accept documents on command line"
 msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1176
 #, c-format
 msgid "Unrecognized launch option: %d"
 msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1375
 msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
 msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1396
 msgid "Not a launchable item"
 msgstr ""
 
@@ -1280,6 +1272,44 @@ msgstr "윈도우 관리자 꾸밈 보기"
 msgid "Show session management options"
 msgstr "윈도우 관리자 꾸밈 보기"
 
+#, fuzzy
+#~ msgid ""
+#~ "All streams will be converted to this bit depth.\n"
+#~ "This should be the max supported bit depth of\n"
+#~ "the sound card or output plugin."
+#~ msgstr ""
+#~ "<span size=\"small\">모든 스트림을 이 샘플링율로변환합니다.\n"
+#~ "사운드카드나 출력 플러그인에서 지원하는\n"
+#~ "최대 샘플링율로 설정하는 것이 좋습니다.</span>"
+
+#~ msgid "<b>Volume Control</b>"
+#~ msgstr "<b>음량 제어</b>"
+
+#, fuzzy
+#~ msgid ""
+#~ "Use software volume control. This may be useful for situations where your "
+#~ "audio system does not support controlling the playback volume."
+#~ msgstr ""
+#~ "소프트웨어 음량 제어를 사용합니다. 이것은 오디오 시스템이 음량 제어를 지원"
+#~ "하지 않을 때 유용합니다."
+
+#, fuzzy
+#~ msgid "<b>Mode</b>"
+#~ msgstr "<b>메타데이터</b>"
+
+#, fuzzy
+#~ msgid "<b>Clipping Prevention</b>"
+#~ msgstr "<b>팝업 정보</b>"
+
+#~ msgid "<b>Audio System</b>"
+#~ msgstr "<b>오디오 시스템</b>"
+
+#~ msgid "Current output plugin:"
+#~ msgstr "현재 출력 플러그인:"
+
+#~ msgid "Display all open Audacious windows"
+#~ msgstr "모든 열린 창 표시"
+
 #~ msgid "%s: Unable to open display, exiting.\n"
 #~ msgstr "%s: 디스플레이를 열 수 없어 종료합니다.\n"
 
@@ -1495,9 +1525,6 @@ msgstr "윈도우 관리자 꾸밈 보기"
 #~ msgid "No input plugin recognized this file"
 #~ msgstr "이 파일을 인식하는 입력 플러그인 없음"
 
-#~ msgid "Input plugin: %s"
-#~ msgstr "입력 플러그인: %s"
-
 #~ msgid ""
 #~ "<b><big>No output plugin selected.</big></b>\n"
 #~ "You have not selected an output plugin."
@@ -1532,9 +1559,6 @@ msgstr "윈도우 관리자 꾸밈 보기"
 #~ "사운드카드나 출력 플러그인에서 지원하는\n"
 #~ "최대 샘플링율로 설정하는 것이 좋습니다.</span>"
 
-#~ msgid "<b>Format Detection</b>"
-#~ msgstr "<b>형식 감지</b>"
-
 #~ msgid "Detect file formats by extension."
 #~ msgstr "확장자로 파일 형식을 감지"
 
@@ -1628,9 +1652,6 @@ msgstr "윈도우 관리자 꾸밈 보기"
 #~ msgid "Load metadata (tag information) from music files."
 #~ msgstr "음악 파일로부터 메타데이터(태그 정보)를 불러옵니다."
 
-#~ msgid "Jump to Time"
-#~ msgstr "시간 이동"
-
 #~ msgid "minutes:seconds"
 #~ msgstr "분:초"
 
diff --git a/po/lt.po b/po/lt.po
index 173aff1..e5002ba 100644
--- a/po/lt.po
+++ b/po/lt.po
@@ -1,4738 +1,1241 @@
-# Lithuanian translation of BMP.
-# Copyright (C) 2004 Rimas Kudelis <rq at akl.lt>
-# This file is distributed under the same license as the BMP package.
-# Rimas Kudelis <rq at akl.lt>, 2004.
-#
+# Lithuanian translation for Audacious
+# Copyright (C) Audacious translators
+# This file is distributed under the same license as the Audacious package.
 #
+# Translators:
+#   <>, 2012.
+# Algimantas Margevičius <gymka at mail.ru>, 2011.
+# Algimantas Margevičius <margevicius.algimantas at gmail.com>, 2011, 2012.
+# Gymka <gymka at mail.ru>, 2011.
+# Rimas Kudelis <rq at akl.lt>, 2004.
 msgid ""
 msgstr ""
-"Project-Id-Version: BMP\n"
-"Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
-"PO-Revision-Date: 2004-12-06 19:02+0200\n"
-"Last-Translator: Rimas Kudelis <rq at akl.lt>\n"
-"Language-Team: Lithuanian <komp_lt at konferencijos.lt>\n"
-"Language: lt\n"
+"Project-Id-Version: Audacious\n"
+"Report-Msgid-Bugs-To: http://redmine.audacious-media-player.org/\n"
+"POT-Creation-Date: 2012-01-11 08:54-0500\n"
+"PO-Revision-Date: 2012-01-13 12:21+0000\n"
+"Last-Translator: Algimantas Margevičius <margevicius.algimantas at gmail.com>\n"
+"Language-Team: Lithuanian\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Language: lt\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
+
+#: src/audacious/adder.c:77
+msgid "Searching ..."
+msgstr "Ieškoma ..."
+
+#: src/audacious/adder.c:113
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] "%d failas rastas"
+msgstr[1] "%d failai rasti"
+msgstr[2] "%d failų rasti"
 
-#: src/audacious/chardet.c:37
+#: src/audacious/chardet.c:39
 msgid "  (invalid UTF-8)"
 msgstr "  (blogas UTF-8)"
 
-#: src/audacious/credits.c:35
-#, fuzzy
+#: src/audacious/credits.c:37
 msgid "Core developers:"
-msgstr "KÅ«rÄ—jai:"
+msgstr "Autoriai:"
 
-#: src/audacious/credits.c:49
+#: src/audacious/credits.c:51
 msgid "Graphics:"
-msgstr ""
+msgstr "Grafika:"
 
-#: src/audacious/credits.c:54
+#: src/audacious/credits.c:56
 msgid "Default skin:"
-msgstr "Įprastasis rūbas:"
+msgstr "Numatytoji išvaizda:"
 
-#: src/audacious/credits.c:60
+#: src/audacious/credits.c:62
 msgid "Plugin development:"
-msgstr ""
+msgstr "Įskiepių kūrėjai:"
 
-#: src/audacious/credits.c:83
+#: src/audacious/credits.c:85
 msgid "Patch authors:"
-msgstr ""
+msgstr "Pataisymų kūrėjai:"
 
-#: src/audacious/credits.c:126
-#, fuzzy
+#: src/audacious/credits.c:131
 msgid "1.x developers:"
 msgstr "KÅ«rÄ—jai:"
 
-#: src/audacious/credits.c:148
-#, fuzzy
+#: src/audacious/credits.c:153
 msgid "BMP Developers:"
 msgstr "KÅ«rÄ—jai:"
 
-#: src/audacious/credits.c:180
-#, fuzzy
+#: src/audacious/credits.c:185
 msgid "Belarusian:"
-msgstr "Į vengrų k.:"
+msgstr "Į baltarusių k.:"
 
-#: src/audacious/credits.c:183
+#: src/audacious/credits.c:188
 msgid "Basque:"
-msgstr ""
+msgstr "Į Baskų k.:"
 
-#: src/audacious/credits.c:186
+#: src/audacious/credits.c:191
 msgid "Brazilian Portuguese:"
 msgstr "Į brazilų k. (portugalų dialektą):"
 
-#: src/audacious/credits.c:190
+#: src/audacious/credits.c:196
 msgid "Breton:"
-msgstr "į bretonų k.:"
+msgstr "Į bretonų k.:"
 
-#: src/audacious/credits.c:193
-#, fuzzy
+#: src/audacious/credits.c:199
 msgid "Bulgarian:"
-msgstr "Į vengrų k.:"
+msgstr "Į bulgarų k.:"
 
-#: src/audacious/credits.c:196
-#, fuzzy
+#: src/audacious/credits.c:202
 msgid "Catalan:"
-msgstr "Į italų k.:"
+msgstr "Į katalonų k.:"
 
-#: src/audacious/credits.c:199
-#, fuzzy
+#: src/audacious/credits.c:206
 msgid "Chinese:"
 msgstr "Į kinų k.:"
 
-#: src/audacious/credits.c:202
-#, fuzzy
+#: src/audacious/credits.c:209
 msgid "Croatian:"
-msgstr "Vieta:"
+msgstr "Į kroatų k.:"
 
-#: src/audacious/credits.c:205
+#: src/audacious/credits.c:212
 msgid "Czech:"
 msgstr "Į čekų k.:"
 
-#: src/audacious/credits.c:208
+#: src/audacious/credits.c:215
 msgid "Dutch:"
 msgstr "Į olandų k.:"
 
-#: src/audacious/credits.c:212
-#, fuzzy
+#: src/audacious/credits.c:219
 msgid "Estonian:"
-msgstr "Į rumunų k.:"
+msgstr "Į estų k.:"
 
-#: src/audacious/credits.c:215
-#, fuzzy
+#: src/audacious/credits.c:222
 msgid "Finnish:"
-msgstr "Į ispanų k.:"
+msgstr "Į suomių k.:"
 
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:227
 msgid "French:"
 msgstr "Į prancūzų k.:"
 
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:233
 msgid "German:"
 msgstr "Į vokiečių k.:"
 
-#: src/audacious/credits.c:231
-#, fuzzy
+#: src/audacious/credits.c:240
 msgid "Georgian:"
 msgstr "Į vokiečių k.:"
 
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:243
 msgid "Greek:"
 msgstr "Į graikų k.:"
 
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:248
 msgid "Hindi:"
-msgstr ""
+msgstr "Ä® hindi"
 
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:251
 msgid "Hungarian:"
 msgstr "Į vengrų k.:"
 
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:255
 msgid "Italian:"
 msgstr "Į italų k.:"
 
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:260
 msgid "Japanese:"
 msgstr "Į japonų k.:"
 
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:263
 msgid "Korean:"
 msgstr "Į korėjiečių k.:"
 
-#: src/audacious/credits.c:256
-#, fuzzy
+#: src/audacious/credits.c:266
 msgid "Latvian:"
-msgstr "Vieta:"
+msgstr "Į latvių k.:"
 
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:269
 msgid "Lithuanian:"
 msgstr "Į lietuvių k.:"
 
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:274
 msgid "Macedonian:"
 msgstr "Į makedonų k.:"
 
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:277
+msgid "Mexican Spanish:"
+msgstr "Ispanų (Meksika)"
+
+#: src/audacious/credits.c:280
 msgid "Polish:"
 msgstr "Į lenkų k.:"
 
-#: src/audacious/credits.c:271
-#, fuzzy
+#: src/audacious/credits.c:287
 msgid "Portuguese:"
-msgstr "Portas:"
+msgstr "Į portugalų k.:"
 
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:290
 msgid "Romanian:"
 msgstr "Į rumunų k.:"
 
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:294
 msgid "Russian:"
 msgstr "Į rusų k.:"
 
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:298
 msgid "Serbian (Latin):"
-msgstr ""
+msgstr "Į serbų (lotynų) k."
 
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:301
 msgid "Serbian (Cyrillic):"
-msgstr ""
+msgstr "Į serbų (Kirilica) k.:"
 
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:305
 msgid "Simplified Chinese:"
-msgstr ""
+msgstr "Supaprastinta kinų k."
 
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:308
 msgid "Slovak:"
 msgstr "Į slovakų k.:"
 
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:312
 msgid "Spanish:"
 msgstr "Į ispanų k.:"
 
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:320
 msgid "Swedish:"
 msgstr "Į švedų k.:"
 
-#: src/audacious/credits.c:304
-#, fuzzy
+#: src/audacious/credits.c:323
 msgid "Traditional Chinese:"
-msgstr "Taip pat prisidÄ—jo:"
+msgstr "Tradicinė kinų:"
 
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:329
 msgid "Turkish:"
-msgstr ""
+msgstr "Turkų:"
 
-#: src/audacious/credits.c:313
-#, fuzzy
+#: src/audacious/credits.c:333
 msgid "Ukrainian:"
-msgstr "Į rumunų k.:"
+msgstr "Į ukrainiečių k.:"
 
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:338
+msgid "Vietnamese:"
+msgstr "Vietnamiečių:"
+
+#: src/audacious/credits.c:341
 msgid "Welsh:"
 msgstr "Į velsiečių k.:"
 
-#: src/audacious/drct.c:254
-#, fuzzy
-msgid "Temporary Playlist"
-msgstr "Įkrauti grojaraštį"
-
-#: src/audacious/equalizer_preset.c:186
+#: src/audacious/equalizer_preset.c:180
 #, c-format
 msgid "Error importing Winamp EQF file '%s'"
-msgstr ""
-
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr ""
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] ""
-msgstr[1] ""
+msgstr "Klaida įkeliant Winamp EQF failą „%s“"
 
-#: src/audacious/main.c:247
+#: src/audacious/main.c:243
 msgid "Skip backwards in playlist"
 msgstr "Šoktelti atgal grojaraštyje"
 
-#: src/audacious/main.c:248
+#: src/audacious/main.c:244
 msgid "Start playing current playlist"
-msgstr "Pradėti groti esamą grojaraštį"
+msgstr "Pradėti groti dabartinį grojaraštį"
 
-#: src/audacious/main.c:249
+#: src/audacious/main.c:245
 msgid "Pause current song"
 msgstr "Pristabdyti grojamÄ… dainÄ…"
 
-#: src/audacious/main.c:250
+#: src/audacious/main.c:246
 msgid "Stop current song"
 msgstr "Sustabdyti grojamÄ… dainÄ…"
 
-#: src/audacious/main.c:251
+#: src/audacious/main.c:247
 msgid "Pause if playing, play otherwise"
 msgstr "Pristabdyti, jei grojama, kitu atveju groti"
 
-#: src/audacious/main.c:252
+#: src/audacious/main.c:248
 msgid "Skip forward in playlist"
 msgstr "Šoktelti pirmyn grojaraštyje"
 
-#: src/audacious/main.c:253
-#, fuzzy
+#: src/audacious/main.c:249
 msgid "Display Jump to File dialog"
-msgstr "/Šokti į bylą"
+msgstr "Rodyti šokti į bylą langą"
 
-#: src/audacious/main.c:254
-#, fuzzy
+#: src/audacious/main.c:250
 msgid "Add files to the playlist"
-msgstr "Neišvalyti grojaraščio"
+msgstr "Pridėti failus į grojaraštį"
 
-#: src/audacious/main.c:255
-#, fuzzy
+#: src/audacious/main.c:251
 msgid "Add new files to a temporary playlist"
-msgstr "Neišvalyti grojaraščio"
+msgstr "Pridėti naujus failus į laikiną grojaraštį"
 
-#: src/audacious/main.c:256
-#, fuzzy
+#: src/audacious/main.c:252
 msgid "Display the main window"
 msgstr "Parodyti pagrindinį langą"
 
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr ""
-
-#: src/audacious/main.c:258
-#, fuzzy
+#: src/audacious/main.c:253
 msgid "Show version"
-msgstr "/Parodyti grojaraščio redaktorių"
+msgstr "Rodyti versijÄ…"
 
-#: src/audacious/main.c:259
+#: src/audacious/main.c:254
 msgid "Print debugging messages"
-msgstr ""
+msgstr "Rodyti derinimo pranešimus"
+
+#: src/audacious/main.c:255
+msgid "Headless mode (beta)"
+msgstr "Begalvis režimas (beta)"
 
-#: src/audacious/main.c:260
+#: src/audacious/main.c:256
 msgid "FILE..."
-msgstr ""
+msgstr "FAILAS..."
 
-#: src/audacious/main.c:272
+#: src/audacious/main.c:268
 msgid "- play multimedia files"
-msgstr ""
+msgstr "- groti daugialypÄ—s terpÄ—s failus"
 
-#: src/audacious/main.c:282
+#: src/audacious/main.c:278
 #, c-format
 msgid ""
 "%s: %s\n"
 "Try `%s --help' for more information.\n"
 msgstr ""
+"%s: %s\n"
+"Bandykite `%s --help' išsamesniai informacijai.\n"
 
-#: src/audacious/main.c:395
-msgid ""
-"Audacious seems to be already running but is not responding.  You can start "
-"another instance of the program, but please be warned that this can cause "
-"data loss.  If Audacious is not running, you can safely ignore this "
-"message.  Press OK to start Audacious or Cancel to quit."
-msgstr ""
-
-#: src/audacious/main.c:558
+#: src/audacious/main.c:573
 msgid "Audacious"
-msgstr ""
+msgstr "Audacious"
 
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:307
 #, c-format
 msgid "No decoder found for %s."
-msgstr ""
+msgstr "Failui %s dekoderis nerastas."
 
-#: src/audacious/playback.c:519
-#, fuzzy
-msgid "Buffering ..."
-msgstr "Buferiavimas"
+#: src/audacious/playlist-files.c:53
+#, c-format
+msgid "Cannot %s %s: unsupported file extension."
+msgstr "Neįmanoma %s %s: nepalaikomas failo plėtinys."
 
-#: src/audacious/playlist-new.c:288
-#, fuzzy
-msgid "Untitled Playlist"
-msgstr "Išsaugoti grojaraštį"
+#: src/audacious/playlist-files.c:54
+msgid "save"
+msgstr "išsaugoti"
 
-#: src/audacious/ui_preferences.c:88
-#, fuzzy
-msgid "Audio"
-msgstr "Apie MPEG audio įskiepį"
+#: src/audacious/playlist-files.c:54
+msgid "load"
+msgstr "įkelti"
 
-#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
+#: src/audacious/playlist-new.c:131
+msgid "New Playlist"
+msgstr "Naujas grojaraštis"
+
+#: src/audacious/playlist-new.c:132
+msgid "Now Playing"
+msgstr "Dabar grojama"
+
+#: src/audacious/playlist-new.c:1630
+msgid ""
+"The playlist cannot be sorted because metadata scanning is still in progress"
+" (or has been disabled)."
 msgstr ""
+"Vis dar vyksta(arba išjungta) meta duomenų skaitymas, todėl neįmanoma "
+"surikiuoti grojaraščio."
+
+#: src/audacious/ui_preferences.c:85
+msgid "Audio"
+msgstr "Garsas"
 
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:86
 msgid "Network"
-msgstr ""
+msgstr "Tinklas"
 
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:87 src/audacious/ui_preferences.c:1603
 msgid "Playlist"
 msgstr "Grojaraštis"
 
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:88
 msgid "Plugins"
 msgstr "Įskiepiai"
 
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:94 src/libaudgui/infopopup.c:199
 msgid "Artist"
 msgstr "AtlikÄ—jas"
 
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:95 src/libaudgui/infopopup.c:201
 msgid "Album"
 msgstr "Albumas"
 
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:197
+#: src/libaudgui/ui_playlist_manager.c:279
 msgid "Title"
 msgstr "Pavadinimas"
 
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:97
 msgid "Tracknumber"
 msgstr "Takelio numeris"
 
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:203
 msgid "Genre"
 msgstr "Žanras"
 
-# msgstr[0] "Įtrauktas %d elementas."
-# msgstr[1] "Įtraukti %d elementai."
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:99
 msgid "Filename"
 msgstr "Bylos vardas"
 
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:100
 msgid "Filepath"
 msgstr "Bylos kelias"
 
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:101
 msgid "Date"
 msgstr "Data"
 
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:205
 msgid "Year"
 msgstr "Metai"
 
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:103
 msgid "Comment"
 msgstr "Komentaras"
 
-#: src/audacious/ui_preferences.c:108
-#, fuzzy
+#: src/audacious/ui_preferences.c:104
 msgid "Codec"
-msgstr "/Užverti"
+msgstr "Kodekas"
 
-#: src/audacious/ui_preferences.c:109
-#, fuzzy
+#: src/audacious/ui_preferences.c:105
 msgid "Quality"
-msgstr "/_IÅ¡eiti"
+msgstr "KokybÄ—"
 
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:111
 msgid "None"
 msgstr "Joks"
 
+#: src/audacious/ui_preferences.c:112
+msgid "Arabic"
+msgstr "Arabų"
+
+#: src/audacious/ui_preferences.c:113
+msgid "Baltic"
+msgstr "Baltijos"
+
+#: src/audacious/ui_preferences.c:114
+msgid "Chinese"
+msgstr "Kinų"
+
 #: src/audacious/ui_preferences.c:115
-#, fuzzy
-msgid "Japanese"
-msgstr "Į japonų k.:"
+msgid "Greek"
+msgstr "Graikų"
 
 #: src/audacious/ui_preferences.c:116
-#, fuzzy
-msgid "Taiwanese"
-msgstr "Į japonų k.:"
+msgid "Hebrew"
+msgstr "Hebrajų"
 
 #: src/audacious/ui_preferences.c:117
-#, fuzzy
-msgid "Chinese"
-msgstr "Į kinų k.:"
+msgid "Japanese"
+msgstr "Japonų"
 
 #: src/audacious/ui_preferences.c:118
-#, fuzzy
 msgid "Korean"
-msgstr "Į korėjiečių k.:"
+msgstr "Korėjiečių"
 
 #: src/audacious/ui_preferences.c:119
-#, fuzzy
-msgid "Russian"
-msgstr "Į rusų k.:"
+msgid "Polish"
+msgstr "Lenkų"
 
 #: src/audacious/ui_preferences.c:120
-#, fuzzy
-msgid "Greek"
-msgstr "Į graikų k.:"
+msgid "Russian"
+msgstr "Rusų"
 
 #: src/audacious/ui_preferences.c:121
-msgid "Hebrew"
-msgstr ""
+msgid "Taiwanese"
+msgstr "Taivaniečių"
 
 #: src/audacious/ui_preferences.c:122
 msgid "Turkish"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:123
-msgid "Arabic"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:124
-#, fuzzy
-msgid "Polish"
-msgstr "Į lenkų k.:"
-
-#: src/audacious/ui_preferences.c:125
-#, fuzzy
-msgid "Baltic"
-msgstr "Celtic"
-
-#: src/audacious/ui_preferences.c:126
-#, fuzzy
-msgid "Universal"
-msgstr "Žanras"
+msgstr "Turkų"
 
-#: src/audacious/ui_preferences.c:146
-#, fuzzy
-msgid "<b>Bit Depth</b>"
-msgstr "Nominalus bitų sekos greitis:"
+#: src/audacious/ui_preferences.c:144
+msgid "Album mode"
+msgstr "Albumo režimas"
 
 #: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr ""
+msgid "<b>Output Settings</b>"
+msgstr "<b>IÅ¡vesties nustatymai</b>"
 
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
-
-#: src/audacious/ui_preferences.c:151
-#, fuzzy
-msgid "<b>Volume Control</b>"
-msgstr "Garso valdymas:"
+#: src/audacious/ui_preferences.c:149
+msgid "Bit depth:"
+msgstr "Nominalus bitų sekos greitis:"
 
 #: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr "Naudoti programinį garso valdymą"
+msgid "Buffer size:"
+msgstr "Buferio dydis (kb):"
 
 #: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
+msgid "ms"
+msgstr "ms"
 
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:160
-msgid "Amplify untagged files:"
-msgstr ""
+#: src/audacious/ui_preferences.c:155
+msgid "Use software volume control (not recommended)"
+msgstr "Naudoti programinį garso valdymą (nerekomenduojama)"
 
-#: src/audacious/ui_preferences.c:164
-#, fuzzy
+#: src/audacious/ui_preferences.c:157
 msgid "<b>Replay Gain</b>"
-msgstr "<b>Bylos vardas</b>"
+msgstr "<b>Garso lygio sulyginimas</b>"
 
-#: src/audacious/ui_preferences.c:165
-#, fuzzy
+#: src/audacious/ui_preferences.c:158
 msgid "Enable Replay Gain"
-msgstr "/Visada viršuje"
-
-#: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>Bylos vardas</b>"
-
-#: src/audacious/ui_preferences.c:168
-#, fuzzy
-msgid "Single track mode"
-msgstr "/Takelio informacija"
+msgstr "Įjungt garso lygio sulyginimą"
 
-#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "Albumas"
+#: src/audacious/ui_preferences.c:161
+msgid "Prevent clipping (recommended)"
+msgstr "Uždrausti apkarpymą (rekomenduojama)"
 
-#: src/audacious/ui_preferences.c:172
-#, fuzzy
+#: src/audacious/ui_preferences.c:163
 msgid "<b>Adjust Levels</b>"
-msgstr "<b>PelÄ—s ratukas</b>"
+msgstr "<b>Nustatyti lygius</b>"
 
-#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "MPEG garso įskiepio konfigūravimas"
+#: src/audacious/ui_preferences.c:164
+msgid "Amplify all files:"
+msgstr "Pagarsinti visus failus:"
 
-#: src/audacious/ui_preferences.c:176
-#, fuzzy
-msgid "Enable clipping prevention"
-msgstr "Aktyvuoti apkarpymo prevencijÄ…"
+#: src/audacious/ui_preferences.c:166 src/audacious/ui_preferences.c:169
+msgid "dB"
+msgstr "dB"
+
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify untagged files:"
+msgstr "Pagarsinti nepažymėtus failus:"
 
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:172
 msgid "Proxy hostname:"
-msgstr ""
+msgstr "Tarpinis serveris:"
 
-#: src/audacious/ui_preferences.c:181
-#, fuzzy
+#: src/audacious/ui_preferences.c:173
 msgid "Proxy port:"
-msgstr "TarpinÄ— stotis:"
+msgstr "Tarpinio serverio prievadas:"
 
-#: src/audacious/ui_preferences.c:185
-#, fuzzy
+#: src/audacious/ui_preferences.c:176
 msgid "Proxy username:"
-msgstr "Vartotojas:"
+msgstr "Naudotojas:"
 
-#: src/audacious/ui_preferences.c:186
-#, fuzzy
+#: src/audacious/ui_preferences.c:177
 msgid "Proxy password:"
 msgstr "Slaptažodis:"
 
-#: src/audacious/ui_preferences.c:190
-#, fuzzy
+#: src/audacious/ui_preferences.c:181
 msgid "<b>Proxy Configuration</b>"
-msgstr "MPEG garso įskiepio konfigūravimas"
+msgstr "<b>Tarpinio serverio nustatymai</b>"
 
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:182
 msgid "Enable proxy usage"
-msgstr ""
+msgstr "Leisti naudoti tarpinį serverį"
 
-#: src/audacious/ui_preferences.c:194
-#, fuzzy
+#: src/audacious/ui_preferences.c:185
 msgid "Use authentication with proxy"
-msgstr "Autentikuotis"
+msgstr "Su tarpiniu serveriu naudoti tapatybÄ—s nustatymÄ…"
 
-#: src/audacious/ui_preferences.c:197
-msgid ""
-"<span size=\"small\">Changing these settings will require a restart of "
-"Audacious.</span>"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
 msgid "Auto character encoding detector for:"
-msgstr ""
+msgstr "Automatinis koduotÄ—s nustatymas:"
 
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:198
 msgid "Fallback character encodings:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:209
-msgid ""
-"List of character encodings used for fall back conversion of metadata. If "
-"automatic character encoding detector failed or has been disabled, encodings "
-"in this list would be treated as candidates of the encoding of metadata, and "
-"fall back conversion from these encodings to UTF-8 would be attempted."
-msgstr ""
+msgstr "Atsarginis kodavimas:"
 
-#: src/audacious/ui_preferences.c:213
-#, fuzzy
+#: src/audacious/ui_preferences.c:202
 msgid "<b>Behavior</b>"
-msgstr "Nominalus bitų sekos greitis:"
+msgstr "<b>Elgsena</b>"
 
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:203
 msgid "Continue playback on startup"
-msgstr ""
+msgstr "Paleidžiant tęsti atkūrimą"
 
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:205
 msgid "Advance when the current song is deleted"
-msgstr ""
+msgstr "Kai pasirinkta daina ištrinama, žengti į priekį"
 
-#: src/audacious/ui_preferences.c:218
-#, fuzzy
+#: src/audacious/ui_preferences.c:207
 msgid "Clear the playlist when opening files"
-msgstr "/Rūšiuoti grojaraštį/Pagal pavadinimą"
+msgstr "Kai atidaromas failas, išvalyti grojaraštį"
 
-#: src/audacious/ui_preferences.c:220
-#, fuzzy
+#: src/audacious/ui_preferences.c:209
 msgid "Open files in a temporary playlist"
-msgstr "Neišvalyti grojaraščio"
+msgstr "Atidaryti failus laikiname grojaraštyje"
 
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:211
 msgid "<b>Metadata</b>"
-msgstr "<b>Aprašai</b>"
+msgstr "<b>Meta duomenys</b>"
+
+#: src/audacious/ui_preferences.c:212
+msgid "Do not load metadata for songs until played"
+msgstr "Kol negrojama, dainom neįkrauti meta duomenų"
+
+#: src/audacious/ui_preferences.c:230
+msgid "TITLE"
+msgstr "PAVADINIMAS"
+
+#: src/audacious/ui_preferences.c:231
+msgid "ARTIST - TITLE"
+msgstr "ATLIKÄ–JAS - PAVADINIMAS"
+
+#: src/audacious/ui_preferences.c:232
+msgid "ARTIST - ALBUM - TITLE"
+msgstr "ATLIKÄ–JAS - ALBUMAS - PAVADINIMAS"
+
+#: src/audacious/ui_preferences.c:233
+msgid "ARTIST - ALBUM - TRACK. TITLE"
+msgstr "ATLIKÄ–JAS - ALBUMAS - TAKELIS. PAVADINIMAS"
+
+#: src/audacious/ui_preferences.c:234
+msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
+msgstr "ATLIKÄ–JAS [ ALBUMAS ] - TAKELIS. PAVADINIMAS"
+
+#: src/audacious/ui_preferences.c:235
+msgid "ALBUM - TITLE"
+msgstr "ALBUMAS - PAVADINIMAS"
 
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:556
 msgid "Category"
 msgstr "Kategorija"
 
-#: src/audacious/ui_preferences.c:815
-#, fuzzy
+#: src/audacious/ui_preferences.c:780
 msgid "Popup Information Settings"
-msgstr "MPEG garso įskiepio konfigūravimas"
+msgstr "Iššokančio informacijos lango nustatymai"
 
-#: src/audacious/ui_preferences.c:824
-#, fuzzy
+#: src/audacious/ui_preferences.c:789
 msgid "<b>Cover image retrieve</b>"
-msgstr "Automatinis parinkimas"
+msgstr "<b>Albumo viršelio gavimas</b>"
 
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:794
 msgid ""
 "While searching for the album's cover, Audacious looks for certain words in "
 "the filename. You can specify those words in the lists below, separated "
 "using commas."
 msgstr ""
+"Kai ieškoma albumo viršelio, Audacious ieško tam tikrų žodžių failo varde. "
+"Tu gali įrašyt paieškos žodžius apačioj esančiame langelyje, atskiriant "
+"kableliais."
 
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:811
 msgid "Exclude:"
-msgstr ""
+msgstr "IÅ¡imtis:"
 
-#: src/audacious/ui_preferences.c:853
-#, fuzzy
+#: src/audacious/ui_preferences.c:818
 msgid "Include:"
-msgstr "Indie"
+msgstr "Įterpti:"
 
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:835
 msgid "Recursively search for cover"
-msgstr ""
+msgstr "Rekursyviai ieškoti viršelio"
 
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:845
 msgid "Search depth: "
-msgstr ""
+msgstr "Paieškos gylis:"
 
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:859
 msgid "Use per-file cover"
-msgstr ""
+msgstr "Kiekvienam failui atskiras viršelis"
 
-#: src/audacious/ui_preferences.c:897
-#, fuzzy
+#: src/audacious/ui_preferences.c:862
 msgid "<b>Miscellaneous</b>"
-msgstr "<b>_Kita</b>"
+msgstr "<b>Kita</b>"
 
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:871
 msgid "Show Progress bar for the current track"
-msgstr ""
+msgstr "Esamam takeliui, rodyti pažangos juostą"
 
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:881
 msgid "Delay until filepopup comes up: "
-msgstr ""
+msgstr "Palaukti kol pasirodys failo iššokantis langas: "
+
+#: src/audacious/ui_preferences.c:1309
+msgid "Custom"
+msgstr "Pasirinkta eilutÄ—"
 
-#: src/audacious/ui_preferences.c:1459
-#, fuzzy
+#: src/audacious/ui_preferences.c:1352
 msgid "<b>Song Display</b>"
 msgstr "<b>KÅ«rinio pavadinimo vaizdavimas</b>"
 
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1361
 msgid "Show song numbers"
-msgstr ""
+msgstr "Rodyti dainos numerį"
 
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1372
 msgid "Show leading zeroes (02:00 instead of 2:00)"
-msgstr ""
+msgstr "Rodyti nulius priekyje (02:00 vietoj 2:00)"
 
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1394
 msgid "Show information about titlestring format"
 msgstr "Parodyti informacijÄ… apie pavadinimo formatÄ…"
 
-#: src/audacious/ui_preferences.c:1514
-msgid "TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1515
-msgid "ARTIST - TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1516
-msgid "ARTIST - ALBUM - TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1517
-msgid "ARTIST - ALBUM - TRACK. TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1518
-msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1519
-msgid "ALBUM - TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1520
-#, fuzzy
-msgid "Custom"
-msgstr "Derinta eilutÄ—:"
-
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1410
 msgid "Custom string:"
-msgstr "Derinta eilutÄ—:"
+msgstr "Pasirinkta eilutÄ—:"
 
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1417
 msgid "Title format:"
 msgstr "Pavadinimo formatas:"
 
-#: src/audacious/ui_preferences.c:1545
-#, fuzzy
+#: src/audacious/ui_preferences.c:1428
 msgid "<b>Popup Information</b>"
-msgstr "MPEG garso įskiepio konfigūravimas"
+msgstr "<b>Iššokančio lango informacija</b>"
 
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1443
 msgid "Show popup information for playlist entries"
-msgstr ""
+msgstr "Grojaraščio elementams, rodyti iššokantį langą"
 
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1444
 msgid ""
 "Toggles popup information window for the pointed entry in the playlist. The "
 "window shows title of song, name of album, genre, year of publish, track "
 "number, track length, and artwork."
 msgstr ""
+"Nurodytam grojaraščio elementui, įjungia iššokančio lango informacinį langą."
+" Lange rodomas dainos pavadinimas, albumo pavadinimas, žanras, išleidimo "
+"data, takelio numeris, takelio trukmÄ— bei dizainas."
 
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1455
 msgid "Edit settings for popup information"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1698
-#, fuzzy
-msgid "<b>Audio System</b>"
-msgstr "<b>Å ablonai</b>"
+msgstr "Keisti iššokančio lango nustatymus"
 
-#: src/audacious/ui_preferences.c:1715
-#, fuzzy
-msgid "Buffer size:"
-msgstr "Buferio dydis (kb):"
+#: src/audacious/ui_preferences.c:1544
+msgid "Output plugin:"
+msgstr "Išvesties įskiepis:"
 
-#: src/audacious/ui_preferences.c:1734
-#, fuzzy
-msgid "Current output plugin:"
-msgstr "_Pasirinktas išvesties įskiepies:"
-
-#: src/audacious/ui_preferences.c:1790
-#, fuzzy
+#: src/audacious/ui_preferences.c:1603
 msgid "Transport"
-msgstr "VertÄ—jai"
+msgstr "Transportas"
 
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1603
 msgid "Input"
-msgstr ""
+msgstr "Įvestis"
 
-#: src/audacious/ui_preferences.c:1791
-#, fuzzy
+#: src/audacious/ui_preferences.c:1604
 msgid "Effect"
-msgstr "<b>Efektai</b>"
+msgstr "Efektai"
 
-#: src/audacious/ui_preferences.c:1791
-#, fuzzy
+#: src/audacious/ui_preferences.c:1604
 msgid "Visualization"
-msgstr "Vizualizacijos tipas"
+msgstr "Vizualizacija"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1604
 msgid "General"
-msgstr ""
+msgstr "Pagrindiniai"
 
-#: src/audacious/ui_preferences.c:1831
-#, fuzzy
+#: src/audacious/ui_preferences.c:1644
 msgid "Audacious Preferences"
-msgstr "BMP nustatymai"
+msgstr "Audacious nustatymai"
 
-#: src/audacious/util.c:161
-#, fuzzy, c-format
+#: src/audacious/util.c:120
+#, c-format
 msgid "Could not create directory (%s): %s\n"
-msgstr "Nepavyko sukurti aplanko (%s): %s"
+msgstr "Nepavyko sukurti aplanko (%s): %s\n"
 
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:273
 msgid "Position not found."
-msgstr ""
+msgstr "Pozicija nerasta."
 
-#: src/audtool/handlers_vitals.c:64
+#: src/audtool/handlers_vitals.c:63
 msgid "No song playing."
-msgstr ""
+msgstr "Negroja jokia daina."
+
+#: src/libaudcore/audstrings.c:199
+#, c-format
+msgid "Audio CD, track %s"
+msgstr "Audio CD, takelis %s"
 
-#: src/libaudcore/tuple.c:685
+#: src/libaudcore/tuple.c:536
 msgid "Mono"
 msgstr "Mono"
 
-#: src/libaudcore/tuple.c:687
-#, fuzzy
+#: src/libaudcore/tuple.c:538
 msgid "Stereo"
 msgstr "Stereo"
 
-#: src/libaudcore/tuple.c:689
-#, fuzzy, c-format
-msgid "%d channels"
-msgstr "Kanalai:"
+#: src/libaudcore/tuple.c:540
+#, c-format
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] "%d kanalas"
+msgstr[1] "%d kanalai"
+msgstr[2] "%d kanalų"
+
+#: src/libaudgui/about.c:52 src/libaudgui/about.c:115
+msgid "Credits"
+msgstr "PadÄ—kos"
+
+#: src/libaudgui/about.c:52
+msgid "Translators"
+msgstr "VertÄ—jai"
+
+#: src/libaudgui/about.c:91
+msgid "About Audacious"
+msgstr "Apie Audacious"
 
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/confirm.c:76
 #, c-format
 msgid ""
 "Are you sure you want to close %s?  If you do, any changes made since the "
 "playlist was exported will be lost."
 msgstr ""
+"Ar tu tikrai nori uždaryti %s?  Jei taip, visi pakeitimai padaryti po "
+"grojaraščio eksportavimo bus prarasti."
 
-#: src/libaudgui/confirm.c:77
-#, fuzzy
+#: src/libaudgui/confirm.c:89
 msgid "_Don't show this message again"
-msgstr "Daugiau neberodyti šio pranešimo"
+msgstr "_Daugiau neberodyti šio pranešimo"
 
-#: src/libaudgui/confirm.c:115
-#, fuzzy
+#: src/libaudgui/confirm.c:126
 msgid "Rename Playlist"
-msgstr "Išsaugoti grojaraštį"
+msgstr "Pervadinti grojaraštį"
 
-#: src/libaudgui/effects-menu.c:76
-#, fuzzy
+#: src/libaudgui/effects-menu.c:74
 msgid "settings ..."
-msgstr "Mikserio nustatymai:"
+msgstr "nustatymai ..."
 
-#: src/libaudgui/equalizer.c:68
-#, fuzzy
+#: src/libaudgui/equalizer.c:51
 msgid "_Enable"
-msgstr "Įjungtas"
+msgstr "_Įjungtas"
 
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:123
 msgid "31 Hz"
-msgstr ""
+msgstr "31 Hz"
 
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:123
 msgid "63 Hz"
-msgstr ""
+msgstr "63 Hz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
 msgid "125 Hz"
-msgstr ""
+msgstr "125 Hz"
 
-#: src/libaudgui/equalizer.c:141
-#, fuzzy
+#: src/libaudgui/equalizer.c:124
 msgid "250 Hz"
-msgstr "1:1 (44 kHz)"
+msgstr "250 Hz"
 
-#: src/libaudgui/equalizer.c:141
-#, fuzzy
+#: src/libaudgui/equalizer.c:124
 msgid "500 Hz"
-msgstr "1:1 (44 kHz)"
+msgstr "500 Hz"
 
-#: src/libaudgui/equalizer.c:141
-#, fuzzy
+#: src/libaudgui/equalizer.c:124
 msgid "1 kHz"
-msgstr "1:1 (44 kHz)"
+msgstr "1 kHz"
 
-#: src/libaudgui/equalizer.c:141
-#, fuzzy
+#: src/libaudgui/equalizer.c:124
 msgid "2 kHz"
-msgstr "1:2 (22 kHz)"
+msgstr "2 kHz"
 
-#: src/libaudgui/equalizer.c:142
-#, fuzzy
+#: src/libaudgui/equalizer.c:125
 msgid "4 kHz"
-msgstr "1:1 (44 kHz)"
+msgstr "4 kHz"
 
-#: src/libaudgui/equalizer.c:142
-#, fuzzy
+#: src/libaudgui/equalizer.c:125
 msgid "8 kHz"
-msgstr "1:1 (44 kHz)"
+msgstr "8 kHz"
 
-#: src/libaudgui/equalizer.c:142
-#, fuzzy
+#: src/libaudgui/equalizer.c:125
 msgid "16 kHz"
-msgstr "1:1 (44 kHz)"
+msgstr "16 kHz"
 
-#: src/libaudgui/equalizer.c:147
+#: src/libaudgui/equalizer.c:130
 msgid "Equalizer"
 msgstr "Ekvalaizeris"
 
-#: src/libaudgui/equalizer.c:163
-#, fuzzy
+#: src/libaudgui/equalizer.c:146
 msgid "Preamp"
-msgstr "Dream"
+msgstr "Preamp"
 
-#: src/libaudgui/infopopup.c:249
-#, fuzzy
+#: src/libaudgui/infopopup.c:207
 msgid "Track Number"
 msgstr "Takelio numeris"
 
-#: src/libaudgui/infopopup.c:251
-#, fuzzy
+#: src/libaudgui/infopopup.c:209
 msgid "Track Length"
-msgstr "Takelio trukmÄ—:"
+msgstr "Takelio trukmÄ—"
 
-#: src/libaudgui/infowin.c:77
+#: src/libaudgui/infowin.c:75
 msgid "Acid Jazz"
 msgstr "Acid Jazz"
 
-#: src/libaudgui/infowin.c:78
-#, fuzzy
+#: src/libaudgui/infowin.c:76
 msgid "Acid Rock"
-msgstr "Hard Rock"
+msgstr "Acid Rock"
 
-#: src/libaudgui/infowin.c:79
+#: src/libaudgui/infowin.c:77
 msgid "Ambient"
 msgstr "Ambient"
 
-#: src/libaudgui/infowin.c:80
-#, fuzzy
+#: src/libaudgui/infowin.c:78
 msgid "Bebop"
 msgstr "Bebob"
 
-#: src/libaudgui/infowin.c:81
+#: src/libaudgui/infowin.c:79
 msgid "Bluegrass"
 msgstr "Bluegrass"
 
-#: src/libaudgui/infowin.c:82
-#, fuzzy
+#: src/libaudgui/infowin.c:80
 msgid "Blues"
 msgstr "Blues"
 
-#: src/libaudgui/infowin.c:83
+#: src/libaudgui/infowin.c:81
 msgid "Chamber Music"
-msgstr "c"
+msgstr "Chamber Music"
 
-#: src/libaudgui/infowin.c:84
+#: src/libaudgui/infowin.c:82
 msgid "Classical"
 msgstr "Classical"
 
-#: src/libaudgui/infowin.c:85
+#: src/libaudgui/infowin.c:83
 msgid "Country"
 msgstr "Country"
 
-#: src/libaudgui/infowin.c:86
+#: src/libaudgui/infowin.c:84
 msgid "Death Metal"
 msgstr "Death Metal"
 
-#: src/libaudgui/infowin.c:87
+#: src/libaudgui/infowin.c:85
 msgid "Disco"
 msgstr "Disco"
 
-#: src/libaudgui/infowin.c:88
+#: src/libaudgui/infowin.c:86
 msgid "Easy Listening"
 msgstr "Easy Listening"
 
-#: src/libaudgui/infowin.c:89
+#: src/libaudgui/infowin.c:87
 msgid "Folk"
 msgstr "Folk"
 
-#: src/libaudgui/infowin.c:90
+#: src/libaudgui/infowin.c:88
 msgid "Funk"
 msgstr "Funk"
 
-#: src/libaudgui/infowin.c:91
+#: src/libaudgui/infowin.c:89
 msgid "Gangsta Rap"
 msgstr "Gangsta Rap"
 
-#: src/libaudgui/infowin.c:92
+#: src/libaudgui/infowin.c:90
 msgid "Gospel"
 msgstr "Gospel"
 
-#: src/libaudgui/infowin.c:93
+#: src/libaudgui/infowin.c:91
 msgid "Grunge"
-msgstr "cGrunge"
+msgstr "Grunge"
 
-#: src/libaudgui/infowin.c:94
+#: src/libaudgui/infowin.c:92
 msgid "Hard Rock"
 msgstr "Hard Rock"
 
-#: src/libaudgui/infowin.c:95
+#: src/libaudgui/infowin.c:93
 msgid "Heavy Metal"
 msgstr "Heavy Metal"
 
-#: src/libaudgui/infowin.c:96
-#, fuzzy
+#: src/libaudgui/infowin.c:94
 msgid "Hip-hop"
 msgstr "Hip-Hop"
 
-#: src/libaudgui/infowin.c:97
+#: src/libaudgui/infowin.c:95
 msgid "House"
 msgstr "House"
 
-#: src/libaudgui/infowin.c:98
+#: src/libaudgui/infowin.c:96
 msgid "Jazz"
 msgstr "Jazz"
 
-#: src/libaudgui/infowin.c:99
+#: src/libaudgui/infowin.c:97
 msgid "Jungle"
 msgstr "Jungle"
 
-#: src/libaudgui/infowin.c:100
+#: src/libaudgui/infowin.c:98
 msgid "Metal"
 msgstr "Metal"
 
-#: src/libaudgui/infowin.c:101
+#: src/libaudgui/infowin.c:99
 msgid "New Age"
 msgstr "New Age"
 
-#: src/libaudgui/infowin.c:102
+#: src/libaudgui/infowin.c:100
 msgid "New Wave"
 msgstr "New Wave"
 
-#: src/libaudgui/infowin.c:103
+#: src/libaudgui/infowin.c:101
 msgid "Noise"
 msgstr "Noise"
 
-#: src/libaudgui/infowin.c:104
+#: src/libaudgui/infowin.c:102
 msgid "Pop"
-msgstr "cPopsas"
+msgstr "Pop"
 
-#: src/libaudgui/infowin.c:105
+#: src/libaudgui/infowin.c:103
 msgid "Punk Rock"
 msgstr "Punk Rock"
 
-#: src/libaudgui/infowin.c:106
+#: src/libaudgui/infowin.c:104
 msgid "Rap"
 msgstr "Rap"
 
-#: src/libaudgui/infowin.c:107
+#: src/libaudgui/infowin.c:105
 msgid "Reggae"
-msgstr "cRegis"
+msgstr "Reggae"
 
-#: src/libaudgui/infowin.c:108
+#: src/libaudgui/infowin.c:106
 msgid "Rock"
 msgstr "Rock"
 
-#: src/libaudgui/infowin.c:109
-#, fuzzy
+#: src/libaudgui/infowin.c:107
 msgid "Rock and Roll"
-msgstr "Rock & Roll"
+msgstr "Rock and Roll"
 
-#: src/libaudgui/infowin.c:110
+#: src/libaudgui/infowin.c:108
 msgid "Rhythm and Blues"
-msgstr ""
+msgstr "Rhythm and Blues"
 
-#: src/libaudgui/infowin.c:111
+#: src/libaudgui/infowin.c:109
 msgid "Ska"
 msgstr "Ska"
 
-#: src/libaudgui/infowin.c:112
+#: src/libaudgui/infowin.c:110
 msgid "Soul"
 msgstr "Soul"
 
-#: src/libaudgui/infowin.c:113
+#: src/libaudgui/infowin.c:111
 msgid "Swing"
 msgstr "Swing"
 
-#: src/libaudgui/infowin.c:114
+#: src/libaudgui/infowin.c:112
 msgid "Techno"
 msgstr "Techno"
 
-#: src/libaudgui/infowin.c:115
-#, fuzzy
+#: src/libaudgui/infowin.c:113
 msgid "Trip-hop"
 msgstr "Trip-Hop"
 
-#: src/libaudgui/infowin.c:175 src/libaudgui/infowin.c:361
-#: src/libaudgui/infowin.c:364 src/libaudgui/infowin.c:367
-#, fuzzy
+#: src/libaudgui/infowin.c:177 src/libaudgui/infowin.c:363
+#: src/libaudgui/infowin.c:366 src/libaudgui/infowin.c:369
 msgid "<span size=\"small\">n/a</span>"
-msgstr "<span size=\"medium\"><b>Media</b></span>"
+msgstr "<span size=\"small\">n/a</span>"
 
-#: src/libaudgui/infowin.c:265
+#: src/libaudgui/infowin.c:267
 msgid "Metadata updated successfully"
-msgstr ""
+msgstr "Meta duomenys atnaujinti sÄ—kmingai"
 
-#: src/libaudgui/infowin.c:270
+#: src/libaudgui/infowin.c:272
 msgid "Metadata updating failed"
-msgstr ""
+msgstr "Meta duomenų atnaujinti nepavyko"
 
-#: src/libaudgui/infowin.c:318
-#, fuzzy
+#: src/libaudgui/infowin.c:320
 msgid "Track Information"
-msgstr "CD Audio grotuvo konfigūravimas"
+msgstr "Takelio informacija"
 
-#: src/libaudgui/infowin.c:350
-#, fuzzy
+#: src/libaudgui/infowin.c:352
 msgid "<span size=\"small\">Format:</span>"
-msgstr "<span size=\"medium\"><b>Bendriniai</b></span>"
+msgstr "<span size=\"small\">Formatas:</span>"
 
-#: src/libaudgui/infowin.c:354
-#, fuzzy
+#: src/libaudgui/infowin.c:356
 msgid "<span size=\"small\">Quality:</span>"
-msgstr "<span size=\"medium\"><b>Media</b></span>"
+msgstr "<span size=\"small\">KokybÄ—:</span>"
 
-#: src/libaudgui/infowin.c:357
-#, fuzzy
+#: src/libaudgui/infowin.c:359
 msgid "<span size=\"small\">Bitrate:</span>"
-msgstr "<span size=\"medium\"><b>Bendriniai</b></span>"
+msgstr "<span size=\"small\">Bitai per sekundÄ™:</span>"
 
-#: src/libaudgui/infowin.c:387
-#, fuzzy
+#: src/libaudgui/infowin.c:389
 msgid "<span size=\"small\">Title</span>"
-msgstr "<span size=\"medium\"><b>Media</b></span>"
+msgstr "<span size=\"small\">Pavadinimas</span>"
 
-#: src/libaudgui/infowin.c:399
-#, fuzzy
+#: src/libaudgui/infowin.c:401
 msgid "<span size=\"small\">Artist</span>"
-msgstr "<span size=\"medium\"><b>IÅ¡vestis</b></span>"
+msgstr "<span size=\"small\">AtlikÄ—jas</span>"
 
-#: src/libaudgui/infowin.c:411
-#, fuzzy
+#: src/libaudgui/infowin.c:413
 msgid "<span size=\"small\">Album</span>"
-msgstr "<span size=\"medium\"><b>IÅ¡vestis</b></span>"
+msgstr "<span size=\"small\">Albumas</span>"
 
-#: src/libaudgui/infowin.c:423
-#, fuzzy
+#: src/libaudgui/infowin.c:425
 msgid "<span size=\"small\">Comment</span>"
-msgstr "<span size=\"medium\"><b>Bendriniai</b></span>"
+msgstr "<span size=\"small\">Komentaras</span>"
 
-#: src/libaudgui/infowin.c:435
-#, fuzzy
+#: src/libaudgui/infowin.c:437
 msgid "<span size=\"small\">Genre</span>"
-msgstr "<span size=\"medium\"><b>Bendriniai</b></span>"
+msgstr "<span size=\"small\">Žanras</span>"
 
-#: src/libaudgui/infowin.c:456
-#, fuzzy
+#: src/libaudgui/infowin.c:458
 msgid "<span size=\"small\">Year</span>"
-msgstr "<span size=\"medium\"><b>Media</b></span>"
+msgstr "<span size=\"small\">Metai</span>"
 
-#: src/libaudgui/infowin.c:467
-#, fuzzy
+#: src/libaudgui/infowin.c:469
 msgid "<span size=\"small\">Track Number</span>"
-msgstr "<span size=\"medium\"><b>Bendriniai</b></span>"
+msgstr "<span size=\"small\">Takelio numeris</span>"
 
-#: src/libaudgui/infowin.c:549
-#, fuzzy, c-format
+#: src/libaudgui/infowin.c:548
+#, c-format
 msgid "%d kb/s"
-msgstr "%d KBit/s"
+msgstr "%d kb/s"
 
-#: src/libaudgui/infowin.c:579
+#: src/libaudgui/infowin.c:575
 #, c-format
 msgid "No info available for %s.\n"
-msgstr ""
+msgstr "NÄ—ra informacijos apie %s.\n"
 
-#: src/libaudgui/ui_about.c:71
-#, fuzzy
-msgid "About Audacious"
-msgstr "Apie MPEG audio įskiepį"
+#: src/libaudgui/jump-to-time.c:72
+msgid "Jump to Time"
+msgstr "Šokti į laiką"
 
-#: src/libaudgui/ui_about.c:93 src/libaudgui/ui_credits.c:122
-msgid "Credits"
-msgstr "Credits"
+#: src/libaudgui/jump-to-time.c:87
+msgid "mm:ss"
+msgstr "mm:ss"
 
-#: src/libaudgui/ui_credits.c:126
-msgid "Translators"
-msgstr "VertÄ—jai"
+#: src/libaudgui/playlists.c:33
+msgid "Export Playlist"
+msgstr "Eksportuoti grojaraštį"
+
+#: src/libaudgui/playlists.c:33
+msgid "Import Playlist"
+msgstr "Įkrauti grojaraštį"
 
-#: src/libaudgui/ui_fileopener.c:108
+#: src/libaudgui/playlists.c:66
+#, c-format
+msgid "Overwrite %s?"
+msgstr "Perrašyti %s?"
+
+#: src/libaudgui/queue-manager.c:196
+msgid "Queue Manager"
+msgstr "EilÄ—s redaktorius"
+
+#: src/libaudgui/ui_fileopener.c:109
 msgid "Open Files"
 msgstr "Atverti bylas"
 
-#: src/libaudgui/ui_fileopener.c:108
+#: src/libaudgui/ui_fileopener.c:109
 msgid "Add Files"
 msgstr "PridÄ—ti bylas"
 
-#: src/libaudgui/ui_fileopener.c:110
+#: src/libaudgui/ui_fileopener.c:111
 msgid "Close dialog on Open"
 msgstr "Atvėrus, užverti dialogą"
 
-#: src/libaudgui/ui_fileopener.c:110
+#: src/libaudgui/ui_fileopener.c:111
 msgid "Close dialog on Add"
 msgstr "Pridėjus, užverti dialogą"
 
-#: src/libaudgui/ui_jumptotrack.c:133
-#, fuzzy
-msgid "Un_queue"
-msgstr "EilÄ—"
-
-#: src/libaudgui/ui_jumptotrack.c:135 src/libaudgui/ui_jumptotrack.c:512
-#, fuzzy
+#: src/libaudgui/ui_jumptotrack.c:109 src/libaudgui/ui_jumptotrack.c:117
+#: src/libaudgui/ui_jumptotrack.c:326
 msgid "_Queue"
-msgstr "EilÄ—"
+msgstr "_Ä® eilÄ™"
+
+#: src/libaudgui/ui_jumptotrack.c:115
+msgid "Un_queue"
+msgstr "IÅ¡ _eilÄ—s"
 
-#: src/libaudgui/ui_jumptotrack.c:399
-msgid "Jump to Track"
-msgstr "Šokti į takelį"
+#: src/libaudgui/ui_jumptotrack.c:258
+msgid "Jump to Song"
+msgstr "Peršokti į dainą"
 
-#: src/libaudgui/ui_jumptotrack.c:442
+#: src/libaudgui/ui_jumptotrack.c:281
 msgid "Filter: "
 msgstr "Filtruoti:"
 
-#: src/libaudgui/ui_jumptotrack.c:443
-#, fuzzy
+#: src/libaudgui/ui_jumptotrack.c:282
 msgid "_Filter:"
-msgstr "Filtruoti:"
+msgstr "_Filtruoti:"
 
-#: src/libaudgui/ui_jumptotrack.c:461
+#: src/libaudgui/ui_jumptotrack.c:292
 msgid "Remember"
-msgstr ""
+msgstr "Prisiminti"
 
-#: src/libaudgui/ui_jumptotrack.c:470
-#, fuzzy
+#: src/libaudgui/ui_jumptotrack.c:299
 msgid "Clea_r"
-msgstr "/IÅ¡valyti eilÄ™"
+msgstr "IÅ¡valyt_i"
 
-#: src/libaudgui/ui_jumptotrack.c:504
-#, fuzzy
+#: src/libaudgui/ui_jumptotrack.c:319
 msgid "Close on Jump"
-msgstr "Atvėrus, užverti dialogą"
+msgstr "Užverti peršokant"
 
-#: src/libaudgui/ui_playlist_manager.c:185
-#, fuzzy
+#: src/libaudgui/ui_playlist_manager.c:253
 msgid "Playlist Manager"
-msgstr "/Nesislinkti grojaraščiu"
+msgstr "Grojaraščio redaktorius"
 
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:280
 msgid "Entries"
-msgstr ""
+msgstr "Elementai"
 
-# msgstr[0] "Įtrauktas %d elementas."
-# msgstr[1] "Įtraukti %d elementai."
-#: src/libaudgui/ui_playlist_manager.c:227
-#, fuzzy
+#: src/libaudgui/ui_playlist_manager.c:301
 msgid "_Rename"
-msgstr "Bylos vardas"
+msgstr "_Pervadinti"
 
-#: src/libaudgui/ui_playlist_manager.c:251
-#, fuzzy
+#: src/libaudgui/ui_playlist_manager.c:325
 msgid "_Close dialog on activating playlist"
-msgstr "Atvėrus, užverti dialogą"
+msgstr "_Įjungiant grojaraštį, užverti dialogą"
 
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:48
 msgid "Open URL"
-msgstr ""
+msgstr "Atverti URL"
 
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:48
 msgid "Add URL"
 msgstr "PridÄ—ti URL"
 
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+"\n"
+"(Sekantys pranešimai paslėpti.)"
+
 #: src/libeggsmclient/eggdesktopfile.c:165
 msgid "File is not a valid .desktop file"
-msgstr ""
+msgstr "Šis failas nėra tinkamas .desktop failas"
 
-#: src/libeggsmclient/eggdesktopfile.c:188
-#, fuzzy, c-format
+#: src/libeggsmclient/eggdesktopfile.c:191
+#, c-format
 msgid "Unrecognized desktop file Version '%s'"
-msgstr "%s: neatpažintas raktas „--%s“\n"
+msgstr "Neatpažinta „desktop“ failo versija „%s“"
 
-#: src/libeggsmclient/eggdesktopfile.c:968
-#, fuzzy, c-format
+#: src/libeggsmclient/eggdesktopfile.c:974
+#, c-format
 msgid "Starting %s"
-msgstr "Į italų k.:"
+msgstr "Pradedama %s"
 
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1116
 msgid "Application does not accept documents on command line"
-msgstr ""
+msgstr "Programa nepriima dokumentų iš komandinės eilutės"
 
-#: src/libeggsmclient/eggdesktopfile.c:1178
-#, fuzzy, c-format
+#: src/libeggsmclient/eggdesktopfile.c:1184
+#, c-format
 msgid "Unrecognized launch option: %d"
-msgstr "%s: neatpažintas raktas „--%s“\n"
+msgstr "Neatpažinta paleisties pasirinktis: %d"
 
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1391
 msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
-msgstr ""
+msgstr "Negaliu perduot dokumento URI į darbastalio įrašą „Type=Link“"
 
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1412
 msgid "Not a launchable item"
-msgstr ""
+msgstr "Nepaleistinas elementas"
 
 #: src/libeggsmclient/eggsmclient.c:226
 msgid "Disable connection to session manager"
-msgstr ""
+msgstr "Uždrausti prisijungimą prie sesijos valdymo"
 
 #: src/libeggsmclient/eggsmclient.c:229
 msgid "Specify file containing saved configuration"
-msgstr ""
+msgstr "Nurodykite failą kuriame išsaugoti nustatymai"
 
 #: src/libeggsmclient/eggsmclient.c:229
 msgid "FILE"
-msgstr ""
+msgstr "FAILAS"
 
 #: src/libeggsmclient/eggsmclient.c:232
 msgid "Specify session management ID"
-msgstr ""
+msgstr "Nurodyk sesijos valdymo ID"
 
 #: src/libeggsmclient/eggsmclient.c:232
 msgid "ID"
-msgstr ""
+msgstr "ID"
 
 #: src/libeggsmclient/eggsmclient.c:253
 msgid "Session management options:"
-msgstr ""
+msgstr "Sesijos valdymo pasirinktys:"
 
 #: src/libeggsmclient/eggsmclient.c:254
 msgid "Show session management options"
-msgstr ""
-
-#, fuzzy
-#~ msgid "%s: Unable to open display, exiting.\n"
-#~ msgstr "BMP: Nepavyko pasinaudoti displÄ—jum, baigiu darbÄ…."
-
-#, fuzzy
-#~ msgid "Preamp:"
-#~ msgstr "Dream"
-
-#, fuzzy
-#~ msgid "Default gain:"
-#~ msgstr "Įprastasis rūbas:"
-
-#, fuzzy
-#~ msgid "<b>Replay Gain configuration</b>"
-#~ msgstr "MPEG garso įskiepio konfigūravimas"
-
-#, fuzzy
-#~ msgid "Track gain/peak"
-#~ msgstr "Takelio pavadinimas"
-
-#~ msgid "Classic Rock"
-#~ msgstr "Classic Rock"
-
-#~ msgid "Dance"
-#~ msgstr "Dance"
-
-#~ msgid "Oldies"
-#~ msgstr "Oldies"
-
-#~ msgid "Other"
-#~ msgstr "Other"
-
-#~ msgid "R&B"
-#~ msgstr "R&B"
-
-#~ msgid "Industrial"
-#~ msgstr "Industrial"
-
-#~ msgid "Alternative"
-#~ msgstr "Alternative"
-
-#, fuzzy
-#~ msgid "Pranks"
-#~ msgstr "Pranks"
-
-#~ msgid "Soundtrack"
-#~ msgstr "Soundtrack"
-
-#~ msgid "Euro-Techno"
-#~ msgstr "Euro-Techno"
-
-#~ msgid "Vocal"
-#~ msgstr "Vocal"
-
-#~ msgid "Jazz+Funk"
-#~ msgstr "Jazz+Funk"
-
-#~ msgid "Fusion"
-#~ msgstr "Fusion"
-
-#~ msgid "Trance"
-#~ msgstr "Trance"
-
-#~ msgid "Instrumental"
-#~ msgstr "Instrumental"
-
-#~ msgid "Acid"
-#~ msgstr "Acid"
-
-#~ msgid "Game"
-#~ msgstr "Game"
-
-#~ msgid "Sound Clip"
-#~ msgstr "Sound Clip"
-
-#~ msgid "AlternRock"
-#~ msgstr "AlternRock"
-
-#, fuzzy
-#~ msgid "Bass"
-#~ msgstr "Bass"
-
-#~ msgid "Punk"
-#~ msgstr "Punk"
-
-#~ msgid "Space"
-#~ msgstr "Space"
-
-#~ msgid "Meditative"
-#~ msgstr "Meditative"
-
-#~ msgid "Instrumental Pop"
-#~ msgstr "Instrumental Pop"
-
-#~ msgid "Instrumental Rock"
-#~ msgstr "Instrumental Rock"
-
-#~ msgid "Ethnic"
-#~ msgstr "Ethnic"
-
-#~ msgid "Gothic"
-#~ msgstr "Gothic"
-
-#~ msgid "Darkwave"
-#~ msgstr "Darkwave"
-
-#~ msgid "Techno-Industrial"
-#~ msgstr "Techno-Industrial"
-
-#~ msgid "Electronic"
-#~ msgstr "Electronic"
-
-#~ msgid "Pop-Folk"
-#~ msgstr "Pop-Folk"
-
-#~ msgid "Eurodance"
-#~ msgstr "Eurodance"
-
-#~ msgid "Dream"
-#~ msgstr "Dream"
-
-#~ msgid "Southern Rock"
-#~ msgstr "Southern Rock"
-
-#~ msgid "Comedy"
-#~ msgstr "Comedy"
-
-#~ msgid "Cult"
-#~ msgstr "Cult"
-
-#~ msgid "Top 40"
-#~ msgstr "Top 40"
-
-#~ msgid "Christian Rap"
-#~ msgstr "Christian Rap"
-
-#~ msgid "Pop/Funk"
-#~ msgstr "Pop/Funk"
-
-#~ msgid "Native American"
-#~ msgstr "Native American"
-
-#~ msgid "Cabaret"
-#~ msgstr "Cabaret"
-
-#~ msgid "Psychedelic"
-#~ msgstr "Psychedelic"
-
-#~ msgid "Rave"
-#~ msgstr "Rave"
-
-#, fuzzy
-#~ msgid "Showtunes"
-#~ msgstr "Showtunes"
-
-#~ msgid "Trailer"
-#~ msgstr "Trailer"
-
-#~ msgid "Lo-Fi"
-#~ msgstr "Lo-Fi"
-
-#~ msgid "Tribal"
-#~ msgstr "Tribal"
-
-#~ msgid "Acid Punk"
-#~ msgstr "Acid Punk"
-
-#~ msgid "Polka"
-#~ msgstr "Polka"
-
-#, fuzzy
-#~ msgid "Retro"
-#~ msgstr "Retro"
-
-#~ msgid "Musical"
-#~ msgstr "Musical"
-
-#~ msgid "Folk/Rock"
-#~ msgstr "Folk/Rock"
-
-#~ msgid "National Folk"
-#~ msgstr "National Folk"
-
-#~ msgid "Fast-Fusion"
-#~ msgstr "c"
-
-#~ msgid "Latin"
-#~ msgstr "Latin"
-
-#~ msgid "Revival"
-#~ msgstr "Revival"
-
-#~ msgid "Celtic"
-#~ msgstr "Celtic"
-
-#~ msgid "Avantgarde"
-#~ msgstr "Avantgarde"
-
-#~ msgid "Gothic Rock"
-#~ msgstr "Gothic Rock"
-
-#~ msgid "Progressive Rock"
-#~ msgstr "Progressive Rock"
-
-#~ msgid "Psychedelic Rock"
-#~ msgstr "Psychedelic Rock"
-
-#~ msgid "Symphonic Rock"
-#~ msgstr "Symphonic Rock"
-
-#~ msgid "Slow Rock"
-#~ msgstr "Slow Rock"
-
-#~ msgid "Big Band"
-#~ msgstr "Big Band"
-
-#~ msgid "Chorus"
-#~ msgstr "Chorus"
-
-#~ msgid "Acoustic"
-#~ msgstr "Acoustic"
-
-#~ msgid "Humour"
-#~ msgstr "Humour"
-
-#~ msgid "Speech"
-#~ msgstr "Speech"
-
-#~ msgid "Chanson"
-#~ msgstr "Chanson"
-
-#~ msgid "Opera"
-#~ msgstr "Opera"
-
-#~ msgid "Sonata"
-#~ msgstr "Sonata"
-
-#~ msgid "Symphony"
-#~ msgstr "Symphony"
-
-#~ msgid "Booty Bass"
-#~ msgstr "Booty Bass"
-
-#~ msgid "Primus"
-#~ msgstr "Primus"
-
-#~ msgid "Porn Groove"
-#~ msgstr "Porn Groove"
-
-#, fuzzy
-#~ msgid "Satire"
-#~ msgstr "Stereo"
-
-#, fuzzy
-#~ msgid "Slow Jam"
-#~ msgstr "Slow Jam"
-
-#~ msgid "Club"
-#~ msgstr "Club"
-
-#~ msgid "Tango"
-#~ msgstr "Tango"
-
-#~ msgid "Samba"
-#~ msgstr "Samba"
-
-#~ msgid "Folklore"
-#~ msgstr "Folklore"
-
-#~ msgid "Ballad"
-#~ msgstr "Ballad"
-
-#~ msgid "Power Ballad"
-#~ msgstr "Power Ballad"
-
-#~ msgid "Rhythmic Soul"
-#~ msgstr "c"
-
-#~ msgid "Freestyle"
-#~ msgstr "Freestyle"
-
-#~ msgid "Duet"
-#~ msgstr "Duet"
-
-#~ msgid "Drum Solo"
-#~ msgstr "Drum Solo"
-
-#~ msgid "A Cappella"
-#~ msgstr "A Cappella"
-
-#~ msgid "Euro-House"
-#~ msgstr "c"
-
-#~ msgid "Dance Hall"
-#~ msgstr "Dance Hall"
-
-#~ msgid "Goa"
-#~ msgstr "Goa"
-
-#~ msgid "Drum & Bass"
-#~ msgstr "Drum & Bass"
-
-#~ msgid "Club-House"
-#~ msgstr "Club-House"
-
-#~ msgid "Hardcore"
-#~ msgstr "Hardcore"
-
-#~ msgid "Terror"
-#~ msgstr "Terror"
-
-#~ msgid "Indie"
-#~ msgstr "Indie"
-
-#~ msgid "BritPop"
-#~ msgstr "BritPop"
-
-#~ msgid "Negerpunk"
-#~ msgstr "Negerpunk"
-
-#~ msgid "Polsk Punk"
-#~ msgstr "Polsk Punk"
-
-#~ msgid "Beat"
-#~ msgstr "Beat"
-
-#~ msgid "Christian Gangsta Rap"
-#~ msgstr "Christian Gangsta Rap"
-
-#~ msgid "Black Metal"
-#~ msgstr "Black Metal"
-
-#~ msgid "Crossover"
-#~ msgstr "c"
-
-#~ msgid "Contemporary Christian"
-#~ msgstr "Contemporary Christian"
-
-#~ msgid "Christian Rock"
-#~ msgstr "c"
-
-#~ msgid "Merengue"
-#~ msgstr "Merengue"
-
-#~ msgid "Salsa"
-#~ msgstr "c"
-
-#~ msgid "Thrash Metal"
-#~ msgstr "Thrash Metal"
-
-#~ msgid "Anime"
-#~ msgstr "Anime"
-
-#~ msgid "JPop"
-#~ msgstr "JPop"
-
-#~ msgid "Synthpop"
-#~ msgstr "Synthpop"
-
-#, fuzzy
-#~ msgid ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "An audio player for many platforms.\n"
-#~ "Copyright (C) 2005-2011 Audacious Development Team"
-#~ msgstr ""
-#~ "<big><b>Beep Media Player %s</b></big>\n"
-#~ "Media grotuvas, XMMS pagrindu\n"
-#~ "\n"
-#~ "© 2003-2004 BMP Development Team\n"
-
-#~ msgid "Unable to create log file (%s)!\n"
-#~ msgstr "Nepavyko sukurti žurnalo bylos (%s)!\n"
-
-#, fuzzy
-#~ msgid "Playback"
-#~ msgstr "/Groti"
-
-#~ msgid "<b>Playback</b>"
-#~ msgstr "<b>Grojimas</b>"
-
-#~ msgid "Don't advance in the playlist"
-#~ msgstr "Nesislinkti grojaraščiu"
-
-#~ msgid ""
-#~ "When finished playing a song, don't automatically advance to the next."
-#~ msgstr "Baigus groti kūrinį, į kitą automatiškai neperšokti."
-
-#~ msgid "Enabled"
-#~ msgstr "Įjungtas"
-
-#~ msgid "Description"
-#~ msgstr "Aprašymas"
-
-#, fuzzy
-#~ msgid "Output Plugin Preferences"
-#~ msgstr "OSS išvesties įskiepis"
-
-#, fuzzy
-#~ msgid "Output Plugin Information"
-#~ msgstr "ESD išvesties įskiepio konfigūravimas"
-
-#, fuzzy
-#~ msgid "_Decoder list:"
-#~ msgstr "Dekoderis"
-
-#, fuzzy
-#~ msgid "<span size=\"medium\"><b>Decoders</b></span>"
-#~ msgstr "<span size=\"medium\"><b>Bendriniai</b></span>"
-
-#~ msgid "_General plugin list:"
-#~ msgstr "_Bendrinių įskiepių sąrašas"
-
-#~ msgid "<span size=\"medium\"><b>General</b></span>"
-#~ msgstr "<span size=\"medium\"><b>Bendriniai</b></span>"
-
-#~ msgid "_Visualization plugin list:"
-#~ msgstr "_Vizualizacijos įskiepių sąrašas:"
-
-#~ msgid "<b>Visualization</b>"
-#~ msgstr "<b>Vizualizacija</b>"
-
-#, fuzzy
-#~ msgid "Effect plugins:"
-#~ msgstr "_Efektų įskiepių sąrašas:"
-
-#~ msgid "<b>Effects</b>"
-#~ msgstr "<b>Efektai</b>"
-
-#, fuzzy
-#~ msgid "<span size=\"small\">General</span>"
-#~ msgstr "<span size=\"medium\"><b>Bendriniai</b></span>"
-
-#, fuzzy
-#~ msgid "<span size=\"small\">Location</span>"
-#~ msgstr "<span size=\"xx-large\"><b>PelÄ—</b></span>"
-
-#, fuzzy
-#~ msgid "<span size=\"small\">Raw Metadata</span>"
-#~ msgstr "<span size=\"medium\"><b>Media</b></span>"
-
-#, fuzzy
-#~ msgid "Value"
-#~ msgstr "Blues"
-
-#, fuzzy
-#~ msgid "170 Hz"
-#~ msgstr "1:1 (44 kHz)"
-
-#, fuzzy
-#~ msgid "310 Hz"
-#~ msgstr "1:1 (44 kHz)"
-
-#, fuzzy
-#~ msgid "3 kHz"
-#~ msgstr "1:1 (44 kHz)"
-
-#, fuzzy
-#~ msgid "6 kHz"
-#~ msgstr "1:1 (44 kHz)"
-
-#, fuzzy
-#~ msgid ""
-#~ "Available interfaces:\n"
-#~ "\n"
-#~ msgstr "_Galimi Å¡ablonai:"
-
-#, fuzzy
-#~ msgid "Available Plugin Preferences:\n"
-#~ msgstr "_Galimi Å¡ablonai:"
-
-#, fuzzy
-#~ msgid "Add/Open URL Dialog"
-#~ msgstr "PridÄ—ti/atverti bylas"
-
-#~ msgid "Don't clear the playlist"
-#~ msgstr "Neišvalyti grojaraščio"
-
-#, fuzzy
-#~ msgid "audacious: %s"
-#~ msgstr "CD audio įskiepis"
-
-#~ msgid "Filename:"
-#~ msgstr "Bylos vardas:"
-
-#~ msgid "No input plugin recognized this file"
-#~ msgstr "Šiai bylai nerasta įvesties įskiepio"
-
-#~ msgid "Input plugin: %s"
-#~ msgstr "įvesties įskiepis: %s"
-
-#, fuzzy
-#~ msgid "ZOH Interpolation"
-#~ msgstr "Autentikuotis"
-
-#, fuzzy
-#~ msgid "Linear Interpolation"
-#~ msgstr "Autentikuotis"
-
-#, fuzzy
-#~ msgid "Sampling Rate [Hz]:"
-#~ msgstr "Semplų dažnis:"
-
-#, fuzzy
-#~ msgid "Interpolation Engine:"
-#~ msgstr "Autentikuotis"
-
-#, fuzzy
-#~ msgid "<b>Format Detection</b>"
-#~ msgstr "Automatinis parinkimas"
-
-#, fuzzy
-#~ msgid "<b>Sampling Rate Converter</b>"
-#~ msgstr "Semplų dažnis:"
-
-#, fuzzy
-#~ msgid "Enable Sampling Rate Converter"
-#~ msgstr "Semplų dažnis:"
-
-#, fuzzy
-#~ msgid "<b>Advanced</b>"
-#~ msgstr "Papildomi nustatymai"
-
-#, fuzzy
-#~ msgid ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "\n"
-#~ "Copyright (C) 2005-2009 Audacious Development Team"
-#~ msgstr ""
-#~ "<big><b>Beep Media Player %s</b></big>\n"
-#~ "Media grotuvas, XMMS pagrindu\n"
-#~ "\n"
-#~ "© 2003-2004 BMP Development Team\n"
-
-#~ msgid "Load metadata from playlists and files"
-#~ msgstr "Įkelti aprašus iš grojaraščių bei bylų"
-
-#~ msgid "Load metadata (tag information) from music files."
-#~ msgstr "Įkelti aprašus, esančius garso bylose"
-
-#~ msgid "Jump to Time"
-#~ msgstr "Šokti į laiką"
-
-#~ msgid "minutes:seconds"
-#~ msgstr "minučių:sekundžių"
-
-#~ msgid "Track length:"
-#~ msgstr "Takelio trukmÄ—:"
-
-#, fuzzy
-#~ msgid "Save as Static Playlist"
-#~ msgstr "Išsaugoti grojaraštį"
-
-#~ msgid "Error writing playlist \"%s\": %s"
-#~ msgstr "Klaida įrašant grojaraštį „%s“: %s"
-
-#~ msgid "%s already exist. Continue?"
-#~ msgstr "%s jau egzistuoja. Tęsti?"
-
-#, fuzzy
-#~ msgid ""
-#~ "<b><big>Unable to save playlist.</big></b>\n"
-#~ "\n"
-#~ "Unknown file type for '%s'.\n"
-#~ msgstr "Nepavyko išsaugoti grojaraščio! Nežinomas bylos %s tipas"
-
-#~ msgid "Presets"
-#~ msgstr "Å ablonai"
-
-#~ msgid "Mouse"
-#~ msgstr "PelÄ—"
-
-#~ msgid "Pause between songs"
-#~ msgstr "Pauzė tarp dainų"
-
-#~ msgid "Pause for"
-#~ msgstr "Pristabdyti"
-
-#~ msgid "seconds"
-#~ msgstr "sekundÄ—ms"
-
-#~ msgid "<b>Filename</b>"
-#~ msgstr "<b>Bylos vardas</b>"
-
-#~ msgid "Convert underscores to blanks"
-#~ msgstr "Keisti pabraukimus tarpais"
-
-#~ msgid "Convert %20 to blanks"
-#~ msgstr "Keisti %20 tarpais"
-
-#, fuzzy
-#~ msgid "<b>File Dialog</b>"
-#~ msgstr "<b>Bylos vardas</b>"
-
-#, fuzzy
-#~ msgid "Changes volume by"
-#~ msgstr "Pelės ratukas keičia garsumą"
-
-#~ msgid "percent"
-#~ msgstr "procentų"
-
-#, fuzzy
-#~ msgid "Scrolls playlist by"
-#~ msgstr "Pelės ratukas peršoka grojaraščiu"
-
-#~ msgid "lines"
-#~ msgstr "eilučių"
-
-#, fuzzy
-#~ msgid "Stop after Current Song"
-#~ msgstr "Sustabdyti grojamÄ… dainÄ…"
-
-#, fuzzy
-#~ msgid "Peaks"
-#~ msgstr "Pranks"
-
-#, fuzzy
-#~ msgid "Repeat"
-#~ msgstr "/Kartoti"
-
-#, fuzzy
-#~ msgid "Shuffle"
-#~ msgstr "/Atsitiktine tvarka"
-
-#, fuzzy
-#~ msgid "No Playlist Advance"
-#~ msgstr "/Nesislinkti grojaraščiu"
-
-#, fuzzy
-#~ msgid "Play"
-#~ msgstr "/Groti"
-
-#, fuzzy
-#~ msgid "Pause"
-#~ msgstr "/Pristabdyti"
-
-#, fuzzy
-#~ msgid "Stop"
-#~ msgstr "/Sustabdyti"
-
-#, fuzzy
-#~ msgid "Previous"
-#~ msgstr "/Å okti atgal"
-
-#, fuzzy
-#~ msgid "Next"
-#~ msgstr "/Å okti pirmyn"
-
-#, fuzzy
-#~ msgid "Visualization Mode"
-#~ msgstr "Vizualizacijos tipas"
-
-#, fuzzy
-#~ msgid "Analyzer Mode"
-#~ msgstr "/Analizės būdas/Ugnis"
-
-#, fuzzy
-#~ msgid "Scope Mode"
-#~ msgstr "/Akiračio būdas"
-
-#, fuzzy
-#~ msgid "Voiceprint Mode"
-#~ msgstr "/Analizės būdas/Ugnis"
-
-#, fuzzy
-#~ msgid "WindowShade VU Mode"
-#~ msgstr "s"
-
-#, fuzzy
-#~ msgid "Refresh Rate"
-#~ msgstr "/Atnaujinimo dažnis"
-
-#, fuzzy
-#~ msgid "Analyzer Falloff"
-#~ msgstr "/AnalizÄ—s atkritimas"
-
-#, fuzzy
-#~ msgid "Peaks Falloff"
-#~ msgstr "/Pikų atkritimas"
-
-#, fuzzy
-#~ msgid "New Playlist"
-#~ msgstr "Išsaugoti grojaraštį"
-
-#, fuzzy
-#~ msgid "Select Next Playlist"
-#~ msgstr "Pasirinkite grojaraščio šriftą:"
-
-#, fuzzy
-#~ msgid "Select Previous Playlist"
-#~ msgstr "/RÅ«Å¡iuoti pasirinktus/Pagal pavadinimÄ…"
-
-#, fuzzy
-#~ msgid "Delete Playlist"
-#~ msgstr "Pasirinkite grojaraščio šriftą:"
-
-#, fuzzy
-#~ msgid "Load List"
-#~ msgstr "/Įkelti grojaraštį"
-
-#, fuzzy
-#~ msgid "Loads a playlist file into the selected playlist."
-#~ msgstr "Aprašus įkelti tik rodant bylą grojaraštyje"
-
-#, fuzzy
-#~ msgid "Save List"
-#~ msgstr "/Išsaugoti grojaraštį"
-
-#, fuzzy
-#~ msgid "Saves the selected playlist."
-#~ msgstr "Pasirinkite grojaraščio šriftą:"
-
-#, fuzzy
-#~ msgid "Save Default List"
-#~ msgstr "/Išsaugoti/Įprastąjį"
-
-#, fuzzy
-#~ msgid "Saves the selected playlist to the default location."
-#~ msgstr "Pasirinkite grojaraščio šriftą:"
-
-#, fuzzy
-#~ msgid "Refresh List"
-#~ msgstr "/Atnaujinimo dažnis"
-
-#, fuzzy
-#~ msgid "List Manager"
-#~ msgstr "/Nesislinkti grojaraščiu"
-
-#, fuzzy
-#~ msgid "Opens the playlist manager."
-#~ msgstr "Neišvalyti grojaraščio"
-
-#, fuzzy
-#~ msgid "View"
-#~ msgstr "/_Rodinys"
-
-#, fuzzy
-#~ msgid "Add Internet Address..."
-#~ msgstr "/Pridėti adresą internete…"
-
-#, fuzzy
-#~ msgid "Adds a remote track to the playlist."
-#~ msgstr "Neišvalyti grojaraščio"
-
-#, fuzzy
-#~ msgid "Add Files..."
-#~ msgstr "/Pridėti bylas…"
-
-#, fuzzy
-#~ msgid "Search and Select"
-#~ msgstr "/RÅ«Å¡iuoti pasirinktus"
-
-#, fuzzy
-#~ msgid "Invert Selection"
-#~ msgstr "/Žymėti priešingai"
-
-#, fuzzy
-#~ msgid "Inverts the selected and unselected entries."
-#~ msgstr "Pasirinkite grojaraščio šriftą:"
-
-#~ msgid "Select All"
-#~ msgstr "Žymėti visus"
-
-#, fuzzy
-#~ msgid "Select None"
-#~ msgstr "/Panaikinti žymėjimą"
-
-#, fuzzy
-#~ msgid "Deselects all of the playlist entries."
-#~ msgstr "Neišvalyti grojaraščio"
-
-#, fuzzy
-#~ msgid "Remove All"
-#~ msgstr "/Pašalinti visus"
-
-#, fuzzy
-#~ msgid "Removes all entries from the playlist."
-#~ msgstr "/Pašalinti nepasiekiamas bylas"
-
-#, fuzzy
-#~ msgid "Clear Queue"
-#~ msgstr "/IÅ¡valyti eilÄ™"
-
-#, fuzzy
-#~ msgid "Clears the queue associated with this playlist."
-#~ msgstr "Pasirinkite grojaraščio šriftą:"
-
-#, fuzzy
-#~ msgid "Remove Unavailable Files"
-#~ msgstr "/Pašalinti nepasiekiamas bylas"
-
-#, fuzzy
-#~ msgid "Removes unavailable files from the playlist."
-#~ msgstr "/Pašalinti nepasiekiamas bylas"
-
-#, fuzzy
-#~ msgid "Remove Duplicates"
-#~ msgstr "/Pašalinti pažymėtus"
-
-#, fuzzy
-#~ msgid "By Title"
-#~ msgstr "Pavadinimas"
-
-#, fuzzy
-#~ msgid "Removes duplicate entries from the playlist by title."
-#~ msgstr "/Rūšiuoti grojaraštį/Pagal kelią ir bylą"
-
-# msgstr[0] "Įtrauktas %d elementas."
-# msgstr[1] "Įtraukti %d elementai."
-#, fuzzy
-#~ msgid "By Filename"
-#~ msgstr "Bylos vardas"
-
-#, fuzzy
-#~ msgid "Removes duplicate entries from the playlist by filename."
-#~ msgstr "/Rūšiuoti grojaraštį/Pagal kelią ir bylą"
-
-#, fuzzy
-#~ msgid "By Path + Filename"
-#~ msgstr "/Rūšiuoti grojaraštį/Pagal kelią ir bylą"
-
-#, fuzzy
-#~ msgid "Removes duplicate entries from the playlist by their full path."
-#~ msgstr "/Rūšiuoti grojaraštį/Pagal kelią ir bylą"
-
-#, fuzzy
-#~ msgid "Remove Unselected"
-#~ msgstr "/Pašalinti nepažymėtus"
-
-#, fuzzy
-#~ msgid "Remove unselected entries from the playlist."
-#~ msgstr "/Rūšiuoti grojaraštį/Pagal kelią ir bylą"
-
-#, fuzzy
-#~ msgid "Remove Selected"
-#~ msgstr "/Pašalinti pažymėtus"
-
-#, fuzzy
-#~ msgid "Remove selected entries from the playlist."
-#~ msgstr "/Rūšiuoti grojaraštį/Pagal kelią ir bylą"
-
-#, fuzzy
-#~ msgid "Randomize List"
-#~ msgstr "/Sumaišyti grojaraštį"
-
-#, fuzzy
-#~ msgid "Randomizes the playlist."
-#~ msgstr "/Sumaišyti grojaraštį"
-
-#, fuzzy
-#~ msgid "Reverse List"
-#~ msgstr "/Apversti grojaraštį"
-
-#, fuzzy
-#~ msgid "Reverses the playlist."
-#~ msgstr "Neišvalyti grojaraščio"
-
-#, fuzzy
-#~ msgid "Sort List"
-#~ msgstr "/Rūšiuoti grojaraštį"
-
-#, fuzzy
-#~ msgid "Sorts the list by title."
-#~ msgstr "/Rūšiuoti grojaraštį/Pagal pavadinimą"
-
-#, fuzzy
-#~ msgid "By Album"
-#~ msgstr "Albumas"
-
-#, fuzzy
-#~ msgid "Sorts the list by album."
-#~ msgstr "/Rūšiuoti grojaraštį/Pagal pavadinimą"
-
-#, fuzzy
-#~ msgid "By Artist"
-#~ msgstr "AtlikÄ—jas"
-
-#, fuzzy
-#~ msgid "Sorts the list by artist."
-#~ msgstr "/Rūšiuoti grojaraštį/Pagal pavadinimą"
-
-#, fuzzy
-#~ msgid "Sorts the list by filename."
-#~ msgstr "/Rūšiuoti grojaraštį/Pagal bylos vardą"
-
-#, fuzzy
-#~ msgid "Sorts the list by full pathname."
-#~ msgstr "/Rūšiuoti grojaraštį/Pagal bylos vardą"
-
-#, fuzzy
-#~ msgid "By Date"
-#~ msgstr "Data"
-
-#, fuzzy
-#~ msgid "Sorts the list by modification time."
-#~ msgstr "/Rūšiuoti grojaraštį/Pagal pavadinimą"
-
-#, fuzzy
-#~ msgid "By Track Number"
-#~ msgstr "Takelio numeris"
-
-#, fuzzy
-#~ msgid "Sorts the list by track number."
-#~ msgstr "/Rūšiuoti grojaraštį/pagal datą"
-
-#, fuzzy
-#~ msgid "By Playlist Entry"
-#~ msgstr "BMP grojaraščio redaktorius"
-
-#, fuzzy
-#~ msgid "Sorts the list by playlist entry."
-#~ msgstr "/Rūšiuoti grojaraštį/Pagal pavadinimą"
-
-#, fuzzy
-#~ msgid "Sort Selected"
-#~ msgstr "/RÅ«Å¡iuoti pasirinktus"
-
-#, fuzzy
-#~ msgid "File"
-#~ msgstr "Satire"
-
-#, fuzzy
-#~ msgid "Components"
-#~ msgstr "Komentaras"
-
-#, fuzzy
-#~ msgid "View Track Details"
-#~ msgstr "/Takelio informacija"
-
-#, fuzzy
-#~ msgid "Play File"
-#~ msgstr "/Groti"
-
-#, fuzzy
-#~ msgid "Load and play a file"
-#~ msgstr "Įkelti aprašus iš grojaraščių bei bylų"
-
-#, fuzzy
-#~ msgid "Play Location"
-#~ msgstr "Vieta:"
-
-#, fuzzy
-#~ msgid "Plugin services"
-#~ msgstr "Įskiepiai"
-
-#, fuzzy
-#~ msgid "Preferences"
-#~ msgstr "/Nustatymai"
-
-#, fuzzy
-#~ msgid "Open preferences window"
-#~ msgstr "Nustatymų langas"
-
-#, fuzzy
-#~ msgid "_Quit"
-#~ msgstr "/_IÅ¡eiti"
-
-#, fuzzy
-#~ msgid "Quit Audacious"
-#~ msgstr "Apie MPEG audio įskiepį"
-
-#, fuzzy
-#~ msgid "Set A-B"
-#~ msgstr "/Žymėti visus"
-
-#, fuzzy
-#~ msgid "Clear A-B"
-#~ msgstr "/IÅ¡valyti eilÄ™"
-
-#, fuzzy
-#~ msgid "Jump to Playlist Start"
-#~ msgstr "/Šokti į grojaraščio pradžią"
-
-#, fuzzy
-#~ msgid "Jump to File"
-#~ msgstr "/Šokti į bylą"
-
-#, fuzzy
-#~ msgid "Queue Toggle"
-#~ msgstr "/Perjungti eilÄ—s rodomumÄ…"
-
-#, fuzzy
-#~ msgid "Load"
-#~ msgstr "/Įkelti"
-
-#, fuzzy
-#~ msgid "Import"
-#~ msgstr "/Importuoti"
-
-#, fuzzy
-#~ msgid "Save"
-#~ msgstr "/IÅ¡saugoti"
-
-#, fuzzy
-#~ msgid "Delete"
-#~ msgstr "/Å alinti"
-
-#~ msgid "Preset"
-#~ msgstr "Å ablonas"
-
-#~ msgid "Load preset"
-#~ msgstr "Įkelti šabloną"
-
-#, fuzzy
-#~ msgid "Auto-load preset"
-#~ msgstr "/Įkelti/Automatiškai įsikeliantį šabloną"
-
-#, fuzzy
-#~ msgid "Load auto-load preset"
-#~ msgstr "/Įkelti/Automatiškai įsikeliantį šabloną"
-
-#~ msgid "Default"
-#~ msgstr "Įprastasis"
-
-#, fuzzy
-#~ msgid "Load default preset into equalizer"
-#~ msgstr "Išsaugoti automatiškai įsikeliantį šabloną"
-
-#, fuzzy
-#~ msgid "Zero"
-#~ msgstr "Retro"
-
-#, fuzzy
-#~ msgid "Set equalizer preset levels to zero"
-#~ msgstr "IÅ¡saugoti ekvalaizerio Å¡ablonÄ…"
-
-#, fuzzy
-#~ msgid "From file"
-#~ msgstr "/Įkelti/Iš bylos"
-
-#, fuzzy
-#~ msgid "Load preset from file"
-#~ msgstr "Įkelti šabloną"
-
-#, fuzzy
-#~ msgid "From WinAMP EQF file"
-#~ msgstr "/Įkelti/Iš WinAMP EQF bylos"
-
-#, fuzzy
-#~ msgid "Load preset from WinAMP EQF file"
-#~ msgstr "/Įkelti/Iš WinAMP EQF bylos"
-
-#, fuzzy
-#~ msgid "WinAMP Presets"
-#~ msgstr "/Įmportuoti/WinAMP šablonus"
-
-#, fuzzy
-#~ msgid "Import WinAMP presets"
-#~ msgstr "/Įmportuoti/WinAMP šablonus"
-
-#~ msgid "Save preset"
-#~ msgstr "IÅ¡saugoti Å¡ablonÄ…"
-
-#, fuzzy
-#~ msgid "Save auto-load preset"
-#~ msgstr "/Išsaugoti/Automatiškai įsikeliantį šabloną"
-
-#, fuzzy
-#~ msgid "Save default preset"
-#~ msgstr "Išsaugoti automatiškai įsikeliantį šabloną"
-
-#, fuzzy
-#~ msgid "To file"
-#~ msgstr "/Įkelti/Iš bylos"
-
-#, fuzzy
-#~ msgid "Save preset to file"
-#~ msgstr "IÅ¡saugoti Å¡ablonÄ…"
-
-#, fuzzy
-#~ msgid "To WinAMP EQF file"
-#~ msgstr "/IÅ¡saugoti/WinAMP EQF bylon"
-
-#, fuzzy
-#~ msgid "Save preset to WinAMP EQF file"
-#~ msgstr "/IÅ¡saugoti/WinAMP EQF bylon"
-
-#~ msgid "Delete preset"
-#~ msgstr "Pašalinti šabloną"
-
-#, fuzzy
-#~ msgid "Delete auto-load preset"
-#~ msgstr "/Šalinti/Automatiškai įsikeliantį šabloną"
-
-#~ msgid ""
-#~ "<b><big>Unable to load skin.</big></b>\n"
-#~ "\n"
-#~ "Check that skin at '%s' is usable and default skin is properly installed "
-#~ "at '%s'\n"
-#~ msgstr ""
-#~ "<b><big>Nepavyko įkelti rūbo.</big></b>\n"
-#~ "\n"
-#~ "Įsitikinkite, jog įmanoma naudoti rūbą, esantį „%s“ ir kad tvarkingai "
-#~ "įdiegtas numatytasis rūbas, esantis „%s“.\n"
-
-#, fuzzy
-#~ msgid "Audacious core developers:"
-#~ msgstr "BMP nustatymai"
-
-#, fuzzy
-#~ msgid "Audacious Equalizer"
-#~ msgstr "/Sutraukti ekvalaizerį"
-
-#, fuzzy
-#~ msgid "Play files"
-#~ msgstr "/Groti"
-
-#, fuzzy
-#~ msgid "Load files"
-#~ msgstr "/Įkelti/Iš bylos"
-
-#~ msgid "VBR"
-#~ msgstr "VBR"
-
-#, fuzzy
-#~ msgid "mono"
-#~ msgstr "Mono"
-
-#, fuzzy
-#~ msgid "Show main player window"
-#~ msgstr "Pasirinkite pagrindinio grotuvo lango Å¡riftÄ…:"
-
-#, fuzzy
-#~ msgid "Ignore"
-#~ msgstr "Joks"
-
-#, fuzzy
-#~ msgid "Seek to: %d:%-2.2d/%d:%-2.2d (%d%%)"
-#~ msgstr "PERÅ OKTI Ä®: %d:%-2.2d/%d:%-2.2d (%d%%)"
-
-#, fuzzy
-#~ msgid "Options Menu"
-#~ msgstr "Nustatymai"
-
-#, fuzzy
-#~ msgid "Disable 'Always On Top'"
-#~ msgstr "/Visada viršuje"
-
-#, fuzzy
-#~ msgid "Enable 'Always On Top'"
-#~ msgstr "/Visada viršuje"
-
-#, fuzzy
-#~ msgid "File Info Box"
-#~ msgstr "Apie bylÄ…"
-
-#, fuzzy
-#~ msgid "Disable 'GUI Scaling'"
-#~ msgstr "Ignoruoti ID3v2 žymas"
-
-#, fuzzy
-#~ msgid "Visualization Menu"
-#~ msgstr "Vizualizacijos tipas"
-
-#~ msgid ""
-#~ "<b><big>Couldn't open audio.</big></b>\n"
-#~ "\n"
-#~ "Please check that:\n"
-#~ "1. You have the correct output plugin selected.\n"
-#~ "2. No other programs is blocking the soundcard.\n"
-#~ "3. Your soundcard is configured properly.\n"
-#~ msgstr ""
-#~ "<b><big>Nepavyko atverti garso įrenginio.</big></b>\n"
-#~ "\n"
-#~ "Prašome įsitikinti, kad:\n"
-#~ "\n"
-#~ "1. Jūs išsirinkote tinkamą išvesties įskiepį.\n"
-#~ "2. Kitos programos neblokuoja garso įrenginio.\n"
-#~ "3. Jūsų garso įrenginys sukonfigūruotas teisingai.\n"
-
-#, fuzzy
-#~ msgid "Autoscroll Songname"
-#~ msgstr "/Automatiškai slinkti pavadinimą"
-
-#, fuzzy
-#~ msgid "Show Player"
-#~ msgstr "/Parodyti grojaraščio redaktorių"
-
-#, fuzzy
-#~ msgid "Show Playlist Editor"
-#~ msgstr "/Parodyti grojaraščio redaktorių"
-
-#, fuzzy
-#~ msgid "Show Equalizer"
-#~ msgstr "/Rodyti ekvalaizerį"
-
-#, fuzzy
-#~ msgid "Always on Top"
-#~ msgstr "/Visada viršuje"
-
-#, fuzzy
-#~ msgid "Put on All Workspaces"
-#~ msgstr "/Rodyti visuose darbalaukiuose"
-
-#, fuzzy
-#~ msgid "Roll up Player"
-#~ msgstr "/Sutraukti grotuvÄ…"
-
-#, fuzzy
-#~ msgid "Roll up Playlist Editor"
-#~ msgstr "/Sutraukti grojaraščio redaktorių"
-
-#, fuzzy
-#~ msgid "Roll up Equalizer"
-#~ msgstr "/Sutraukti ekvalaizerį"
-
-#, fuzzy
-#~ msgid "Scale"
-#~ msgstr "/IÅ¡saugoti"
-
-#, fuzzy
-#~ msgid "Analyzer"
-#~ msgstr "/Analizės būdas"
-
-#, fuzzy
-#~ msgid "Scope"
-#~ msgstr "/Akiračio būdas"
-
-#, fuzzy
-#~ msgid "Voiceprint"
-#~ msgstr "/Analizės būdas/Ugnis"
-
-#, fuzzy
-#~ msgid "Normal"
-#~ msgstr "Pavadinimo formatas:"
-
-#, fuzzy
-#~ msgid "Fire"
-#~ msgstr "Satire"
-
-#, fuzzy
-#~ msgid "Vertical Lines"
-#~ msgstr "/Analizės būdas/Gulsčios linijos"
-
-#, fuzzy
-#~ msgid "Lines"
-#~ msgstr "eilučių"
-
-#, fuzzy
-#~ msgid "Bars"
-#~ msgstr "Bass"
-
-#, fuzzy
-#~ msgid "Dot Scope"
-#~ msgstr "/Akiračio būdas/Taškinis akiratis"
-
-#, fuzzy
-#~ msgid "Line Scope"
-#~ msgstr "/Akiračio būdas/Linijinis akiratis"
-
-#, fuzzy
-#~ msgid "Solid Scope"
-#~ msgstr "/Akiračio būdas/Vientisas akiratis"
-
-#, fuzzy
-#~ msgid "Smooth"
-#~ msgstr "Mono"
-
-#, fuzzy
-#~ msgid "Full (~50 fps)"
-#~ msgstr "/Atnaujinimo dažnis/Pilnas (~50 fps)"
-
-#, fuzzy
-#~ msgid "Half (~25 fps)"
-#~ msgstr "/Atnaujinimo dažnis/Pusinis (~25 fps)"
-
-#, fuzzy
-#~ msgid "Quarter (~13 fps)"
-#~ msgstr "/Atnaujinimo dažnis/Ketvirtinis (~13fps)"
-
-#, fuzzy
-#~ msgid "Eighth (~6 fps)"
-#~ msgstr "/Atnaujinimo dažnis/Aštuntinis (~6fps)"
-
-#, fuzzy
-#~ msgid "Slowest"
-#~ msgstr "Showtunes"
-
-#, fuzzy
-#~ msgid "Slow"
-#~ msgstr "Slow Jam"
-
-#, fuzzy
-#~ msgid "Time Elapsed"
-#~ msgstr "/Praėjęs laikas"
-
-#, fuzzy
-#~ msgid "Time Remaining"
-#~ msgstr "/Likęs laikas"
-
-#, fuzzy
-#~ msgid "Plugin Services"
-#~ msgstr "Įskiepiai"
-
-#, fuzzy
-#~ msgid "Search entries in active playlist"
-#~ msgstr "Grojaraštyje rodyti takelio numerį"
-
-#, fuzzy
-#~ msgid "Title: "
-#~ msgstr "Pavadinimas:"
-
-#, fuzzy
-#~ msgid "Album: "
-#~ msgstr "Albumas:"
-
-#, fuzzy
-#~ msgid "Artist: "
-#~ msgstr "AtlikÄ—jas:"
-
-#, fuzzy
-#~ msgid "Filename: "
-#~ msgstr "Bylos vardas:"
-
-#, fuzzy
-#~ msgid "Audacious Playlist Editor"
-#~ msgstr "/Parodyti grojaraščio redaktorių"
-
-#~ msgid "Appearance"
-#~ msgstr "IÅ¡vaizda"
-
-#~ msgid "<b>_Fonts</b>"
-#~ msgstr "<b>_Å riftai:</b>"
-
-#~ msgid "_Player:"
-#~ msgstr "_Grotuvas:"
-
-#~ msgid "Select main player window font:"
-#~ msgstr "Pasirinkite pagrindinio grotuvo lango Å¡riftÄ…:"
-
-#~ msgid "_Playlist:"
-#~ msgstr "_Grojaraštis:"
-
-#, fuzzy
-#~ msgid "Select playlist font:"
-#~ msgstr "Pasirinkite pagrindinio grotuvo lango Å¡riftÄ…:"
-
-#, fuzzy
-#~ msgid "Use Bitmap fonts if available"
-#~ msgstr "Stereo (jei įmanoma)"
-
-#~ msgid "<b>_Miscellaneous</b>"
-#~ msgstr "<b>_Kita</b>"
-
-#~ msgid "Show track numbers in playlist"
-#~ msgstr "Grojaraštyje rodyti takelio numerį"
-
-#, fuzzy
-#~ msgid "Show separators in playlist"
-#~ msgstr "Grojaraštyje rodyti takelio numerį"
-
-#~ msgid "On load"
-#~ msgstr "Įkraunant"
-
-#~ msgid "Load metadata when adding the file to the playlist or opening it"
-#~ msgstr "Aprašus įkelti, pridedant bylą į grojaraštį ar jį atveriant"
-
-#~ msgid "On display"
-#~ msgstr "Rodant"
-
-#, fuzzy
-#~ msgid ""
-#~ "Load metadata on demand when displaying the file in the playlist. You may "
-#~ "need to set \"Detect file formats on demand\" in Audio page for full "
-#~ "benefit."
-#~ msgstr "Aprašus įkelti, pridedant bylą į grojaraštį ar jį atveriant"
-
-#, fuzzy
-#~ msgid "Blue"
-#~ msgstr "Blues"
-
-#, fuzzy
-#~ msgid "Green"
-#~ msgstr "Į graikų k.:"
-
-#~ msgid "<b>_Skin</b>"
-#~ msgstr "<b>_RÅ«bas:</b>"
-
-#, fuzzy
-#~ msgid "Refresh skin list"
-#~ msgstr "/Atnaujinimo dažnis"
-
-#~ msgid "PREAMP"
-#~ msgstr "Stiprinimas"
-
-#~ msgid "60HZ"
-#~ msgstr "60HZ"
-
-#~ msgid "170HZ"
-#~ msgstr "170HZ"
-
-#~ msgid "310HZ"
-#~ msgstr "310HZ"
-
-#~ msgid "600HZ"
-#~ msgstr "600HZ"
-
-#~ msgid "1KHZ"
-#~ msgstr "1KHZ"
-
-#~ msgid "3KHZ"
-#~ msgstr "3KHZ"
-
-#~ msgid "6KHZ"
-#~ msgstr "6KHZ"
-
-#~ msgid "12KHZ"
-#~ msgstr "12KHZ"
-
-#~ msgid "14KHZ"
-#~ msgstr "14KHZ"
-
-#~ msgid "16KHZ"
-#~ msgstr "16KHZ"
-
-#~ msgid "Use custom cursors"
-#~ msgstr "Naudoti derintus kursorius"
-
-#, fuzzy
-#~ msgid "Reload Plugins"
-#~ msgstr "Įskiepiai"
-
-#~ msgid ""
-#~ "Sorry, threads isn't supported on your platform.\n"
-#~ "\n"
-#~ "If you're on a libc5 based linux system and installed Glib & GTK+ before "
-#~ "you\n"
-#~ "installed LinuxThreads you need to recompile Glib & GTK+.\n"
-#~ msgstr ""
-#~ "Atsiprašome, jūsų platformoje nepalaikomos gijos.\n"
-#~ "\n"
-#~ "Jei jūs naudojate libc5 pagrindo linux sistemą ir įsidiegėte Glib bei GTK"
-#~ "+ prieš\n"
-#~ "įsidiegdami LinuxThreads, jums reikia perkompiliuoti Glib ir GTK+.\n"
-
-#, fuzzy
-#~ msgid "Error in Audacious."
-#~ msgstr "Apie MPEG audio įskiepį"
-
-#, fuzzy
-#~ msgid "Enable 6 dB hard limiter"
-#~ msgstr "Įjungtas"
-
-#, fuzzy
-#~ msgid "Select which Audacious session ID to use"
-#~ msgstr "Pasirinkti BMP/XMMS sesijÄ… (Nutylimai: 0)"
-
-#~ msgid "<b>Presets</b>"
-#~ msgstr "<b>Å ablonai</b>"
-
-#~ msgid "File preset extension:"
-#~ msgstr "Bylos ekvalaizerio Å¡ablono plÄ—tinys:"
-
-#~ msgid "Directory preset file:"
-#~ msgstr "Aplanko ekvalaizerio Å¡ablono byla:"
-
-#, fuzzy
-#~ msgid ""
-#~ "TITLE\n"
-#~ "ARTIST - TITLE\n"
-#~ "ARTIST - ALBUM - TITLE\n"
-#~ "ARTIST - ALBUM - TRACK. TITLE\n"
-#~ "ARTIST [ ALBUM ] - TRACK. TITLE\n"
-#~ "ALBUM - TITLE\n"
-#~ "Custom"
-#~ msgstr ""
-#~ "PAVADINIMAS\n"
-#~ "ATLIKÄ–JAS - PAVADINIMAS\n"
-#~ "ATLIKÄ–JAS - ALBUMAS - PAVADINIMAS\n"
-#~ "ALBUMAS - PAVADINIMAS\n"
-#~ "Derinta"
-
-#, fuzzy
-#~ msgid "Track Information Window"
-#~ msgstr "CD Audio grotuvo konfigūravimas"
-
-#~ msgid "Preferences Window"
-#~ msgstr "Nustatymų langas"
-
-#, fuzzy
-#~ msgid "Close"
-#~ msgstr "/Užverti"
-
-#, fuzzy
-#~ msgid "<b>Artist:</b> %s"
-#~ msgstr "AtlikÄ—jas"
-
-#, fuzzy
-#~ msgid "<b>Title:</b> %s"
-#~ msgstr "<b>Bylos vardas</b>"
-
-#, fuzzy
-#~ msgid "<b>Album:</b> %s"
-#~ msgstr "<b>Bylos vardas</b>"
-
-#, fuzzy
-#~ msgid "Audacious last.fm radio tuner"
-#~ msgstr "/Parodyti grojaraščio redaktorių"
-
-#, fuzzy
-#~ msgid "<b>Artist:</b>"
-#~ msgstr "AtlikÄ—jas"
-
-#, fuzzy
-#~ msgid "<b>Title:</b>"
-#~ msgstr "<b>Bylos vardas</b>"
-
-#, fuzzy
-#~ msgid "<b>Album:</b>"
-#~ msgstr "<b>Bylos vardas</b>"
-
-#~ msgid "VOLUME: %d%%"
-#~ msgstr "GARSUMAS: %d%%"
-
-#~ msgid "BALANCE: %d%% LEFT"
-#~ msgstr "BALANSAS: %d%% KAIRÄ–JE"
-
-#~ msgid "BALANCE: CENTER"
-#~ msgstr "BALANSAS: VIDURYS"
-
-#~ msgid "BALANCE: %d%% RIGHT"
-#~ msgstr "BALANSAS: %d%% DEÅ INÄ–JE"
-
-#, fuzzy
-#~ msgid "Last.fm radio"
-#~ msgstr "Vieta:"
-
-#, fuzzy
-#~ msgid "Play Last.fm radio"
-#~ msgstr "Vieta:"
-
-#~ msgid ""
-#~ "<b><big>No playable CD found.</big></b>\n"
-#~ "\n"
-#~ "No CD inserted, or inserted CD is not an audio CD.\n"
-#~ msgstr ""
-#~ "<b><big>Neradau CD, kurį galėčiau groti.</big></b>\n"
-#~ "\n"
-#~ "CD įrenginyje nėra disko, arba įdėtas ne AudioCD diskas.\n"
-
-#, fuzzy
-#~ msgid "Add CD..."
-#~ msgstr "/Pridėti CD…"
-
-#, fuzzy
-#~ msgid "Play CD"
-#~ msgstr "/Groti"
-
-#~ msgid "Performer/Artist"
-#~ msgstr "AtlikÄ—jas"
-
-#~ msgid "File name"
-#~ msgstr "Bylos pavadinimas"
-
-#~ msgid "File path"
-#~ msgstr "Bylos kelias"
-
-#~ msgid "File extension"
-#~ msgstr "Bylos plÄ—tinys"
-
-#~ msgid "Track number"
-#~ msgstr "Takelio numeris"
-
-#~ msgid "%{n:...%}: Display \"...\" only if element %n is present"
-#~ msgstr "%{n:...%}: Rodyti „…“ tik jei rastas elementas %n"
-
-#, fuzzy
-#~ msgid ""
-#~ "Sorry, your GTK+ version (%d.%d.%d) does not work with Audacious.\n"
-#~ "Please use GTK+ %s or newer.\n"
-#~ msgstr ""
-#~ "Atsiprašome, tačiau jūsų GTK+ versija (%d.%d.%d) neveiks su BMP.\n"
-#~ "Prašome naudoti GTK+ %s ar naujesnę versiją.\n"
-
-#~ msgid "OPTIONS MENU"
-#~ msgstr "NUSTATYMŲ MENIU"
-
-#~ msgid "DISABLE ALWAYS ON TOP"
-#~ msgstr "ATJUNGTI „VISADA VIRŠUJE“"
-
-#~ msgid "ENABLE ALWAYS ON TOP"
-#~ msgstr "ĮJUNGTI „VISADA VIRŠUJE“"
-
-#~ msgid "FILE INFO BOX"
-#~ msgstr "DIALOGAS „APIE BYLĄ“"
-
-#~ msgid "VISUALIZATION MENU"
-#~ msgstr "VIZUALIZACIJOS MENIU"
-
-#, fuzzy
-#~ msgid "Track name: "
-#~ msgstr "Takelių pavadinimai:"
-
-#~ msgid ""
-#~ "<b><big>Unable to play files.</big></b>\n"
-#~ "\n"
-#~ "The following files could not be played. Please check that:\n"
-#~ "1. they are accessible.\n"
-#~ "2. you have enabled the media plugins required."
-#~ msgstr ""
-#~ "<b><big>Nepavyko groti bylų.</big></b>\n"
-#~ "\n"
-#~ "Šios bylos negalėjo būti pagrotos. Prašome patikrinti, ar:\n"
-#~ "1. jos prieinamos.\n"
-#~ "2. įjungtas joms reikalingas media įskiepis."
-
-#~ msgid "Show more _details"
-#~ msgstr "Rodyti _detaliau"
-
-#, fuzzy
-#~ msgid ""
-#~ "\n"
-#~ "Received SIGSEGV\n"
-#~ "\n"
-#~ "This could be a bug in Audacious. If you don't know why this happened, "
-#~ "file a bug at http://bugs-meta.atheme.org/\n"
-#~ "\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Gautas SIGSEGV signalas\n"
-#~ "\n"
-#~ "Tai gali būti BMP riktas. Jei nežinote, kodėl tai nutiko, prašome "
-#~ "nusiųsti laišką adresu beepmp-devel at lists.sourceforge.net\n"
-#~ "\n"
-
-#~ msgid "%s: option `%s' is ambiguous\n"
-#~ msgstr "%s: raktas „%s“ netinkama\n"
-
-#~ msgid "%s: option `--%s' doesn't allow an argument\n"
-#~ msgstr "%s: raktas „--%s“ nepriima argumento\n"
-
-#~ msgid "%s: option `%c%s' doesn't allow an argument\n"
-#~ msgstr "%s: raktas „%c%s“ nepriima argumento\n"
-
-#~ msgid "%s: option `%s' requires an argument\n"
-#~ msgstr "%s: raktas „%s“ reikalauja argumento\n"
-
-#~ msgid "%s: unrecognized option `%c%s'\n"
-#~ msgstr "%s: neatpažintas raktas „%c%s“\n"
-
-#~ msgid "%s: illegal option -- %c\n"
-#~ msgstr "%s: netinkamas raktas -- %c\n"
-
-#~ msgid "%s: invalid option -- %c\n"
-#~ msgstr "%s: netinkamas raktas -- %c\n"
-
-#~ msgid "%s: option requires an argument -- %c\n"
-#~ msgstr "%s: raktas reikalauja argumento -- %c\n"
-
-#~ msgid "%s: option `-W %s' is ambiguous\n"
-#~ msgstr "%s: raktas „-W %s“ yra netinkamas\n"
-
-#~ msgid "%s: option `-W %s' doesn't allow an argument\n"
-#~ msgstr "%s: raktas „-W %s“ nepriima argumento\n"
-
-#, fuzzy
-#~ msgid ""
-#~ "Usage: audacious [options] [files] ...\n"
-#~ "\n"
-#~ "Options:\n"
-#~ "--------\n"
-#~ msgstr ""
-#~ "Naudojimas: beep-media-player [raktai] [bylos] …\n"
-#~ "\n"
-#~ "Raktai:\n"
-#~ "--------\n"
-
-#~ msgid "Display this text and exit"
-#~ msgstr "Parodyti šią žinutę ir baigti darbą"
-
-#, fuzzy
-#~ msgid "Activate Audacious"
-#~ msgstr "Aktyvinti BMP"
-
-#~ msgid "Previous session ID"
-#~ msgstr "PraÄ—jusios sesijos ID"
-
-#~ msgid "Print version number and exit\n"
-#~ msgstr "Parodyti versijos numerį ir baigti darbą\n"
-
-#~ msgid "Add/Open Files dialog"
-#~ msgstr "PridÄ—ti/atverti bylas"
-
-#~ msgid "Close Dialog on Add"
-#~ msgstr "Pridėjus, užverti dialogą2"
-
-#~ msgid "Deselect All"
-#~ msgstr "Atžymėti visus"
-
-#, fuzzy
-#~ msgid "Artist Popup"
-#~ msgstr "AtlikÄ—jas"
-
-#, fuzzy
-#~ msgid "<i>Genre</i>"
-#~ msgstr "<b>Bylos vardas</b>"
-
-#, fuzzy
-#~ msgid "<i>Year</i>"
-#~ msgstr "<b>Bylos vardas</b>"
-
-#, fuzzy
-#~ msgid "<i>Track Number</i>"
-#~ msgstr "Takelio numeris"
-
-#, fuzzy
-#~ msgid "<i>Track Length</i>"
-#~ msgstr "Takelio trukmÄ—:"
-
-#~ msgid "/View Track Details"
-#~ msgstr "/Takelio informacija"
-
-#~ msgid "/Visualization Mode/Analyzer"
-#~ msgstr "/Vizualizacijos tipas/AnalizÄ—"
-
-#~ msgid "/Visualization Mode/Scope"
-#~ msgstr "Vizualizacijos tipas/Akiratis"
-
-#, fuzzy
-#~ msgid "/Visualization Mode/Voiceprint"
-#~ msgstr "Vizualizacijos tipas/Akiratis"
-
-#~ msgid "/Visualization Mode/Off"
-#~ msgstr "/Vizualizacijos tipas/IÅ¡jungta"
-
-#~ msgid "/Analyzer Mode/Normal"
-#~ msgstr "/Analizės būdas/Normali"
-
-#~ msgid "/Analyzer Mode/Lines"
-#~ msgstr "/Analizės būdas/Linijos"
-
-#~ msgid "/Analyzer Mode/Bars"
-#~ msgstr "/Analizės būdas/Stulpeliai"
-
-#~ msgid "/Analyzer Mode/Peaks"
-#~ msgstr "/Analizės režimas/Pikai"
-
-#, fuzzy
-#~ msgid "/Voiceprint mode/Normal"
-#~ msgstr "/Analizės būdas/Normali"
-
-#~ msgid "/WindowShade VU Mode/Normal"
-#~ msgstr "/Suvynioto lango VU būdas/Normalus"
-
-#~ msgid "/WindowShade VU Mode/Smooth"
-#~ msgstr "/Suvynioto lango VU būdas/Glodus"
-
-#~ msgid "/Analyzer Falloff/Slowest"
-#~ msgstr "/Analizės atkiritimas/Lėčiausias"
-
-#~ msgid "/Analyzer Falloff/Slow"
-#~ msgstr "/AnalizÄ—s atkritimas/LÄ—tas"
-
-#~ msgid "/Analyzer Falloff/Medium"
-#~ msgstr "/AnalizÄ—s atkritimas/Vidutinis"
-
-#~ msgid "/Analyzer Falloff/Fast"
-#~ msgstr "/AnalizÄ—s atkritimas/Greitas"
-
-#~ msgid "/Analyzer Falloff/Fastest"
-#~ msgstr "/Analizės atkritimas/Greičiausias"
-
-#~ msgid "/Peaks Falloff/Slowest"
-#~ msgstr "/Pikų atkritimas/Lėčiausias"
-
-#~ msgid "/Peaks Falloff/Slow"
-#~ msgstr "/Pikų atkritimas/Lėtas"
-
-#~ msgid "/Peaks Falloff/Medium"
-#~ msgstr "/Pikų atkritimas/Vidutinis"
-
-#~ msgid "/Peaks Falloff/Fast"
-#~ msgstr "/Pikų atkritimas/Greitas"
-
-#~ msgid "/Peaks Falloff/Fastest"
-#~ msgstr "/Pikų atkritimas/Greičiausias"
-
-#~ msgid "/Pause"
-#~ msgstr "/Pristabdyti"
-
-#~ msgid "/-"
-#~ msgstr "/-"
-
-#~ msgid "/Jump to Time"
-#~ msgstr "/Šokti į laiką"
-
-#, fuzzy
-#~ msgid "/About Audacious"
-#~ msgstr "Apie MPEG audio įskiepį"
-
-#~ msgid "/Files..."
-#~ msgstr "/Bylas…"
-
-#~ msgid "/Internet location..."
-#~ msgstr "/Adresą internete…"
-
-#, fuzzy
-#~ msgid "New List"
-#~ msgstr "/Naujas grojaraštis"
-
-#, fuzzy
-#~ msgid "Creates a new playlist."
-#~ msgstr "Grojaraštyje rodyti takelio numerį"
-
-#, fuzzy
-#~ msgid "Displays track information."
-#~ msgstr "CD Audio grotuvo konfigūravimas"
-
-#~ msgid "/Load"
-#~ msgstr "/Įkelti"
-
-#~ msgid "/Load/Preset"
-#~ msgstr "/Įkelti/Šabloną"
-
-#~ msgid "/Load/Default"
-#~ msgstr "/Įkelti/Įprastąjį"
-
-#~ msgid "/Load/Zero"
-#~ msgstr "/Įkelti/Nulius"
-
-#~ msgid "/Save"
-#~ msgstr "/IÅ¡saugoti"
-
-#~ msgid "/Save/Preset"
-#~ msgstr "/IÅ¡saugoti/Å ablonÄ…"
-
-#~ msgid "/Save/Default"
-#~ msgstr "/Išsaugoti/Įprastąjį"
-
-#~ msgid "/Save/To file"
-#~ msgstr "/IÅ¡saugoti/Ä® bylÄ…"
-
-#~ msgid "/Delete"
-#~ msgstr "/Å alinti"
-
-#~ msgid "/Delete/Preset"
-#~ msgstr "/Å alinti/Å ablonÄ…"
-
-#~ msgid "Load auto-preset"
-#~ msgstr "Įkelti automatinį šabloną"
-
-#~ msgid "Load equalizer preset"
-#~ msgstr "Įkelti ekvalaizerio šabloną"
-
-#~ msgid "Delete auto-preset"
-#~ msgstr "Pašalinti automatiškai įsikeliantį šabloną"
-
-#, fuzzy
-#~ msgid "/Remove Duplicates/By Title"
-#~ msgstr "/Rūšiuoti grojaraštį/Pagal pavadinimą"
-
-#, fuzzy
-#~ msgid "/Remove Duplicates/By Filename"
-#~ msgstr "/Rūšiuoti grojaraštį/Pagal bylos vardą"
-
-#~ msgid "/Update View"
-#~ msgstr "/Atnaujinti vaizdÄ…"
-
-#~ msgid "/Select All"
-#~ msgstr "/Žymėti visus"
-
-#~ msgid "/Sort List/By Date"
-#~ msgstr "/Rūšiuoti grojaraštį/pagal datą"
-
-#~ msgid "/Sort Selection/By Title"
-#~ msgstr "/RÅ«Å¡iuoti pasirinktus/Pagal pavadinimÄ…"
-
-#, fuzzy
-#~ msgid "/Sort Selection/By Artist"
-#~ msgstr "/RÅ«Å¡iuoti pasirinktus/Pagal pavadinimÄ…"
-
-#~ msgid "/Sort Selection/By Filename"
-#~ msgstr "/RÅ«Å¡iuoti pasirinktus/Pagal bylos vardÄ…"
-
-#~ msgid "/Sort Selection/By Path + Filename"
-#~ msgstr "/RÅ«Å¡iuoti pasirinktus/Pagal keliÄ… ir bylÄ…"
-
-#~ msgid "/Sort Selection/By Date"
-#~ msgstr "/RÅ«Å¡iuoti pasirinktus/Pagal datÄ…"
-
-#, fuzzy
-#~ msgid "/Sort Selection/By Track Number"
-#~ msgstr "/RÅ«Å¡iuoti pasirinktus/Pagal datÄ…"
-
-#, fuzzy
-#~ msgid "/Sort Selection/By Playlist Entry"
-#~ msgstr "/RÅ«Å¡iuoti pasirinktus/Pagal pavadinimÄ…"
-
-#, fuzzy
-#~ msgid "<b>_Miscillaneous UI Features</b>"
-#~ msgstr "<b>_Kita</b>"
-
-#, fuzzy
-#~ msgid "About AudioCompress"
-#~ msgstr "Apie MPEG audio įskiepį"
-
-#~ msgid "Ok"
-#~ msgstr "Gerai"
-
-#, fuzzy
-#~ msgid "About Extra Stereo Plugin"
-#~ msgstr "Apie ESounD įskiepį"
-
-#, fuzzy
-#~ msgid "Effect intensity:"
-#~ msgstr "_Efektų įskiepių sąrašas:"
-
-#, fuzzy
-#~ msgid "Cancel"
-#~ msgstr "Dance"
-
-#, fuzzy
-#~ msgid "About LIRC Audacious Plugin"
-#~ msgstr "Apie ESounD įskiepį"
-
-#, fuzzy
-#~ msgid "LIRC Plugin "
-#~ msgstr "Įskiepiai"
-
-#, fuzzy
-#~ msgid "LIRC Plugin"
-#~ msgstr "Įskiepiai"
-
-#~ msgid "Username:"
-#~ msgstr "Vartotojas:"
-
-#~ msgid "Password:"
-#~ msgstr "Slaptažodis:"
-
-#, fuzzy
-#~ msgid "About Scrobbler Plugin"
-#~ msgstr "Apie ESounD įskiepį"
-
-#, fuzzy
-#~ msgid "Scrobbler Plugin"
-#~ msgstr "Įskiepiai"
-
-#, fuzzy
-#~ msgid "Commands"
-#~ msgstr "Komentaras"
-
-#, fuzzy
-#~ msgid "Command:"
-#~ msgstr "Komentaras:"
-
-#, fuzzy
-#~ msgid "Command to run when Audacious reaches the end of the playlist."
-#~ msgstr "Aprašus įkelti tik rodant bylą grojaraštyje"
-
-#, fuzzy
-#~ msgid "About "
-#~ msgstr "Apie BMP"
-
-#, fuzzy
-#~ msgid "AMIDI-Plug - warning"
-#~ msgstr "MPEG garso įskiepio konfigūravimas"
-
-#, fuzzy
-#~ msgid "AMIDI-Plug - select file"
-#~ msgstr "MPEG garso įskiepio konfigūravimas"
-
-#, fuzzy
-#~ msgid "AMIDI-Plug - configuration"
-#~ msgstr "MPEG garso įskiepio konfigūravimas"
-
-#~ msgid "Name:"
-#~ msgstr "Pavadinimas:"
-
-#, fuzzy
-#~ msgid " MIDI Info "
-#~ msgstr "Apie CD"
-
-#, fuzzy
-#~ msgid "Length (msec):"
-#~ msgstr "TrukmÄ—:"
-
-#, fuzzy
-#~ msgid "Num of Tracks:"
-#~ msgstr "Šokti į takelį"
-
-#~ msgid "CD Audio Plugin"
-#~ msgstr "CD audio įskiepis"
-
-#~ msgid "CD Audio Track %02u"
-#~ msgstr "CD audio takelis %02u"
-
-#~ msgid "(unknown)"
-#~ msgstr "(nežinomas)"
-
-#~ msgid "Drive %d"
-#~ msgstr "Įrenginys %d"
-
-#~ msgid ""
-#~ "Failed to open device %s\n"
-#~ "Error: %s\n"
-#~ "\n"
-#~ msgstr ""
-#~ "Nepavyko atverti įrenginio %s\n"
-#~ "Klaida: %s\n"
-#~ "\n"
-
-#~ msgid ""
-#~ "Failed to read \"Table of Contents\"\n"
-#~ "Maybe no disc in the drive?\n"
-#~ "\n"
-#~ msgstr ""
-#~ "Nepavyko nuskaityti disko turinio\n"
-#~ "Gal diskų įrenginyje nėra disko?\n"
-#~ "\n"
-
-#~ msgid ""
-#~ "Device %s OK.\n"
-#~ "Disc has %d tracks"
-#~ msgstr ""
-#~ "Įrenginys %s OK.\n"
-#~ "Diske yra %d takeliai"
-
-# msgstr[0] ""
-# "Įrenginys %s OK.\n"
-# "Diske yra %d takelis"
-# msgstr[2] ""
-# "Įrenginys %s OK.\n"
-# "Diske yra %d takelių"
-#~ msgid " (%d data tracks)"
-#~ msgstr " (%d duomenų takeliai)"
-
-# msgstr[0] " (%d duomenų takelis)"
-# msgstr[2] " (%d duomenų takelių)"
-#~ msgid ""
-#~ "\n"
-#~ "Total length: %d:%d\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Bendra trukmÄ—: %d:%d\n"
-
-#~ msgid ""
-#~ "Digital audio extraction not tested as the disc has no audio tracks\n"
-#~ msgstr ""
-#~ "Skaitmeninio garso nuskaitymas neišbandytas, nes diske nėra garso "
-#~ "takelių\n"
-
-#~ msgid ""
-#~ "Digital audio extraction test: OK\n"
-#~ "\n"
-#~ msgstr ""
-#~ "Skaitmeninio garso nuskaitymo testas: OK\n"
-#~ "\n"
-
-#~ msgid ""
-#~ "Digital audio extraction test failed: %s\n"
-#~ "\n"
-#~ msgstr ""
-#~ "Skaitmeninio garso nuskaitymo testas nepavyko: %s\n"
-#~ "\n"
-
-#~ msgid ""
-#~ "Failed to check directory %s\n"
-#~ "Error: %s"
-#~ msgstr ""
-#~ "Nepavyko ištrinti aplanko %s\n"
-#~ "Klaida: %s"
-
-#~ msgid "Error: %s exist, but is not a directory"
-#~ msgstr "Klaida: %s egzistuoja, tačiau tai nėra segtuvas"
-
-#~ msgid "Directory %s OK."
-#~ msgstr "Aplankas %s OK."
-
-#~ msgid "Device:"
-#~ msgstr "įrenginys:"
-
-#~ msgid "_Device:"
-#~ msgstr "Į_renginys:"
-
-#~ msgid "Dir_ectory:"
-#~ msgstr "_Aplankas:"
-
-#~ msgid "Play mode:"
-#~ msgstr "Grojimo režimas:"
-
-#~ msgid "Analog"
-#~ msgstr "Analoginis"
-
-#~ msgid "Digital audio extraction"
-#~ msgstr "Skaitmeninis garso nuskaitymas"
-
-#~ msgid "No mixer"
-#~ msgstr "Jokio mikserio"
-
-#~ msgid "CDROM drive"
-#~ msgstr "CDROM įrenginys"
-
-#~ msgid "OSS mixer"
-#~ msgstr "OSS mikseris"
-
-#~ msgid "Check drive..."
-#~ msgstr "Patikrinti įrenginį…"
-
-#~ msgid "Remove drive"
-#~ msgstr "Pašalinti įrenginį"
-
-#~ msgid "CD Audio Player Configuration"
-#~ msgstr "CD Audio grotuvo konfigūravimas"
-
-#~ msgid "Add drive"
-#~ msgstr "Pridėti įrenginį"
-
-#~ msgid "Device"
-#~ msgstr "įrenginys"
-
-#~ msgid "CDDB:"
-#~ msgstr "CDDB:"
-
-#~ msgid "Use CDDB"
-#~ msgstr "Naudoti CDDB"
-
-#~ msgid "Get server list"
-#~ msgstr "Parsisiųsti serverių sąrašą"
-
-#~ msgid "Show network window"
-#~ msgstr "Parodyti tinklo langÄ…"
-
-#~ msgid "CDDB server:"
-#~ msgstr "CDDB serveris:"
-
-#~ msgid "CD Index:"
-#~ msgstr "CD rodyklÄ—:"
-
-#~ msgid "Use CD Index"
-#~ msgstr "Naudoti CD rodyklÄ™"
-
-#~ msgid "CD Index server:"
-#~ msgstr "CD rodyklÄ—s serveris:"
-
-#~ msgid "Override generic titles"
-#~ msgstr "Nepaisyti bendro pavadinimų formato"
-
-#~ msgid "Name format:"
-#~ msgstr "Pavadinimo formatas:"
-
-#~ msgid "CD Info"
-#~ msgstr "Apie CD"
-
-#, fuzzy
-#~ msgid "Japanese (EUC-JP)"
-#~ msgstr "Į japonų k.:"
-
-#, fuzzy
-#~ msgid "Unicode (UTF-8)"
-#~ msgstr "  (blogas UTF-8)"
-
-#, fuzzy
-#~ msgid "Korean (UHC)"
-#~ msgstr "Į korėjiečių k.:"
-
-#~ msgid "Select the directory where you want to store the MPEG streams:"
-#~ msgstr "IÅ¡rinkite aplankÄ…, kuriame saugosite MPEG srautus:"
-
-#, fuzzy
-#~ msgid "Resolution"
-#~ msgstr "Raiška:"
-
-#, fuzzy
-#~ msgid "16 bps"
-#~ msgstr "16 bitų"
-
-#~ msgid "Buffering:"
-#~ msgstr "Buferiavimas:"
-
-#~ msgid "Buffer size (kb):"
-#~ msgstr "Buferio dydis (kb):"
-
-#~ msgid "Pre-buffer (percent):"
-#~ msgstr "IÅ¡ankstinis buferiavimas (procentais):"
-
-#~ msgid "Save stream to disk:"
-#~ msgstr "IÅ¡saugoti srautÄ… diske:"
-
-#~ msgid "Save stream to disk"
-#~ msgstr "IÅ¡saugoti srautÄ… diske"
-
-#~ msgid "Path:"
-#~ msgstr "Kelias:"
-
-#~ msgid "Browse"
-#~ msgstr "naršyti"
-
-#~ msgid "SHOUT/Icecast:"
-#~ msgstr "SHOUT/Icecast:"
-
-#~ msgid "Enable Icecast Metadata UDP Channel"
-#~ msgstr "Aktyvuoti Icecast metainformacijos UDP kanalÄ…"
-
-#~ msgid "Streaming"
-#~ msgstr "Srautai"
-
-#, fuzzy
-#~ msgid "About Flac Plugin"
-#~ msgstr "Apie ESounD įskiepį"
-
-#, fuzzy
-#~ msgid "Samplerate: %d Hz"
-#~ msgstr "Semplų dažnis:"
-
-#, fuzzy
-#~ msgid "Channels: %d"
-#~ msgstr "Kanalai:"
-
-# msgstr[0] " (%d duomenų takelis)"
-# msgstr[2] " (%d duomenų takelių)"
-#, fuzzy
-#~ msgid ""
-#~ "Samples: %llu\n"
-#~ "Length: %d:%.2d"
-#~ msgstr ""
-#~ "\n"
-#~ "Bendra trukmÄ—: %d:%d\n"
-
-#, fuzzy
-#~ msgid "Filesize: %ld B"
-#~ msgstr "Bylos dydis:"
-
-#, fuzzy
-#~ msgid "Tag:"
-#~ msgstr "Tango"
-
-#~ msgid "Comment:"
-#~ msgstr "Komentaras:"
-
-#~ msgid "Date:"
-#~ msgstr "Data:"
-
-#~ msgid "Track number:"
-#~ msgstr "Takelio numeris:"
-
-#~ msgid "Genre:"
-#~ msgstr "Žanras:"
-
-#, fuzzy
-#~ msgid "Remove Tag"
-#~ msgstr "/Pašalinti visus"
-
-#, fuzzy
-#~ msgid "FLAC Info:"
-#~ msgstr "Apie CD"
-
-#, fuzzy
-#~ msgid "File Info - %s"
-#~ msgstr "Apie bylÄ…"
-
-# msgstr[0] "%lu Baitas"
-# msgstr[1] "%lu Baitai"
-#~ msgid "Error"
-#~ msgstr "Klaida"
-
-#~ msgid "LOOKING UP %s"
-#~ msgstr "IEÅ KAU %s"
-
-#~ msgid "Couldn't look up host %s"
-#~ msgstr "Nepavyko rasti hosto %s"
-
-#~ msgid "CONNECTING TO %s:%d"
-#~ msgstr "JUNGIUOSI PRIE %s:%d"
-
-#~ msgid "Couldn't connect to host %s"
-#~ msgstr "Nepavyko prisijungti prie hosto %s"
-
-#~ msgid "CONNECTED: WAITING FOR REPLY"
-#~ msgstr "PRISIJUNGIAU. LAUKIU ATSAKYMO"
-
-#~ msgid ""
-#~ "Couldn't connect to host %s\n"
-#~ "Server reported: %s"
-#~ msgstr ""
-#~ "Nepavyko prisijungti prie hosto %s\n"
-#~ "Serveris pranešė: %s"
-
-#~ msgid "PRE-BUFFERING: %dKB/%dKB"
-#~ msgstr "BUFERIUOJU: %dKB/%dKB"
-
-#, fuzzy
-#~ msgid "FLAC Audio Plugin"
-#~ msgstr "CD audio įskiepis"
-
-#, fuzzy
-#~ msgid "ModPlug Configuration"
-#~ msgstr "MPEG garso įskiepio konfigūravimas"
-
-#~ msgid "16 bit"
-#~ msgstr "16 bitų"
-
-#~ msgid "8 bit"
-#~ msgstr "8 bitai"
-
-#, fuzzy
-#~ msgid "Resampling"
-#~ msgstr "Srautai"
-
-#, fuzzy
-#~ msgid "Fast Playlist Info"
-#~ msgstr "Įkrauti grojaraštį"
-
-#, fuzzy
-#~ msgid "Reverb"
-#~ msgstr "Serveris"
-
-#, fuzzy
-#~ msgid "Depth"
-#~ msgstr "Duet"
-
-#, fuzzy
-#~ msgid "Amount"
-#~ msgstr "Apie BMP"
-
-#, fuzzy
-#~ msgid "Range"
-#~ msgstr "Rave"
-
-#, fuzzy
-#~ msgid "MOD Info"
-#~ msgstr "Apie CD"
-
-#, fuzzy
-#~ msgid "Samples"
-#~ msgstr "c"
-
-#, fuzzy
-#~ msgid "Instruments"
-#~ msgstr "Instrumental"
-
-#, fuzzy
-#~ msgid "About Modplug"
-#~ msgstr "Apie ESounD įskiepį"
-
-#~ msgid "MPEG Audio Plugin Configuration"
-#~ msgstr "MPEG garso įskiepio konfigūravimas"
-
-#~ msgid "Resolution:"
-#~ msgstr "Raiška:"
-
-#~ msgid "Channels:"
-#~ msgstr "Kanalai:"
-
-#~ msgid "Stereo (if available)"
-#~ msgstr "Stereo (jei įmanoma)"
-
-#~ msgid "Down sample:"
-#~ msgstr "KokybÄ—s santykis:"
-
-#~ msgid "1:1 (44 kHz)"
-#~ msgstr "1:1 (44 kHz)"
-
-#~ msgid "1:2 (22 kHz)"
-#~ msgstr "1:2 (22 kHz)"
-
-#~ msgid "1:4 (11 kHz)"
-#~ msgstr "1:4 (11 kHz)"
-
-#~ msgid "Decoder"
-#~ msgstr "Dekoderis"
-
-#~ msgid "ID3 Tags:"
-#~ msgstr "ID3 žymos:"
-
-#~ msgid "ID3 format:"
-#~ msgstr "Pavadinimo formatas:"
-
-#~ msgid "Joint stereo"
-#~ msgstr "Jungtinis stereo"
-
-#~ msgid "Dual channel"
-#~ msgstr "Du kanalai"
-
-#~ msgid "Single channel"
-#~ msgstr "Vienas kanalas"
-
-#~ msgid "%d KBit/s"
-#~ msgstr "%d KBit/s"
-
-#~ msgid "%ld Hz"
-#~ msgstr "%ld Hz"
-
-#~ msgid "50/15 ms"
-#~ msgstr "50/15 ms"
-
-#~ msgid "CCIT J.17"
-#~ msgstr "CCIT J.17"
-
-#~ msgid "No"
-#~ msgstr "Ne"
-
-#~ msgid "Yes"
-#~ msgstr "Taip"
-
-#~ msgid " MPEG Info "
-#~ msgstr "MPEG informacija"
-
-#~ msgid "MPEG Level:"
-#~ msgstr "MPEG lygis:"
-
-#~ msgid "Bit rate:"
-#~ msgstr "Nominalus bitų sekos greitis:"
-
-#~ msgid "Sample rate:"
-#~ msgstr "Semplų dažnis:"
-
-#~ msgid "File size:"
-#~ msgstr "Bylos dydis:"
-
-#, fuzzy
-#~ msgid "Mode:"
-#~ msgstr "Dekoderis:"
-
-#~ msgid "Error Protection:"
-#~ msgstr "Apsauga nuo klaidų:"
-
-#~ msgid "Copyright:"
-#~ msgstr "Apsaugota autorinÄ—mis teisÄ—mis:"
-
-#~ msgid "Original:"
-#~ msgstr "Originalas:"
-
-#~ msgid "Emphasis:"
-#~ msgstr "Pabrėžimas:"
-
-#~ msgid " ID3 Tag "
-#~ msgstr " ID3 žyma"
-
-#~ msgid "Year:"
-#~ msgstr "Metai:"
-
-#~ msgid "N/A"
-#~ msgstr "Neprieinama"
-
-#~ msgid "%s"
-#~ msgstr "%s"
-
-#~ msgid "%lu Bytes"
-#~ msgstr "%lu Baitų"
-
-#, fuzzy
-#~ msgid "Couldn't connect to host %s:%d"
-#~ msgstr "Nepavyko prisijungti prie hosto %s"
-
-#, fuzzy
-#~ msgid "PRE-BUFFERING: %zuKB/%zuKB"
-#~ msgstr "BUFERIUOJU: %dKB/%dKB"
-
-#~ msgid "About MPEG Audio Plugin"
-#~ msgstr "Apie MPEG audio įskiepį"
-
-#~ msgid "MPEG Audio Plugin"
-#~ msgstr "MPEG audio įskiepis"
-
-#, fuzzy
-#~ msgid "TiMidity Configuration"
-#~ msgstr "MPEG garso įskiepio konfigūravimas"
-
-#, fuzzy
-#~ msgid "22000 Hz"
-#~ msgstr "1:2 (22 kHz)"
-
-#, fuzzy
-#~ msgid "44100 Hz"
-#~ msgstr "1:1 (44 kHz)"
-
-#, fuzzy
-#~ msgid "Sample Width"
-#~ msgstr "Semplų dažnis:"
-
-#, fuzzy
-#~ msgid "TiMidity Configuration File"
-#~ msgstr "MPEG garso įskiepio konfigūravimas"
-
-#, fuzzy
-#~ msgid "TiMidity Plugin %s"
-#~ msgstr "įvesties įskiepis: %s"
-
-#, fuzzy
-#~ msgid "Couldn't load MIDI file"
-#~ msgstr "Nepavyko rasti hosto %s"
-
-#~ msgid "Select the directory where you want to store the Ogg Vorbis streams:"
-#~ msgstr "IÅ¡rinkite aplankÄ…, kuriame saugosite Ogg Vorbis srautus:"
-
-#~ msgid "Ogg Vorbis Audio Plugin Configuration"
-#~ msgstr "Ogg Vorbis garso įskiepio kofigūravimas"
-
-#~ msgid "Ogg Vorbis Tags:"
-#~ msgstr "Ogg Vorbis žymos:"
-
-#~ msgid ""
-#~ "An error occured:\n"
-#~ "%s"
-#~ msgstr ""
-#~ "Įvyko klaida:\n"
-#~ "%s"
-
-#~ msgid "Error!"
-#~ msgstr "Klaida!"
-
-#~ msgid "Failed to modify tag (open)"
-#~ msgstr "Nepavyko pakeisti (atverti) žymos"
-
-#~ msgid "Failed to modify tag (close)"
-#~ msgstr "Nepavyko pakeisti (užverti) žymos"
-
-#~ msgid "Failed to modify tag"
-#~ msgstr "Nepavyko pakeisti žymos"
-
-#~ msgid " Ogg Vorbis Tag "
-#~ msgstr " Ogg Vorbis žyma"
-
-#~ msgid "Description:"
-#~ msgstr "Aprašymas:"
-
-#~ msgid "Version:"
-#~ msgstr "Versija:"
-
-#~ msgid "ISRC number:"
-#~ msgstr "ISRC numeris:"
-
-#~ msgid "Organization:"
-#~ msgstr "Organizacija:"
-
-#~ msgid " Ogg Vorbis Info "
-#~ msgstr " Ogg Vorbis informacija"
-
-#~ msgid "Length:"
-#~ msgstr "TrukmÄ—:"
-
-#~ msgid "%d KBit/s (nominal)"
-#~ msgstr "%d KBit/s (nominaliai)"
-
-#~ msgid "%d Hz"
-#~ msgstr "%d Hz"
-
-#~ msgid "%d"
-#~ msgstr "%d"
-
-#~ msgid "%d:%.2d"
-#~ msgstr "%d:%.2d"
-
-#~ msgid "%d Bytes"
-#~ msgstr "%d Baitų"
-
-# msgstr[0] "%d Baitas"
-# msgstr[1] "%d Baitai"
-#~ msgid "Ogg Vorbis Audio Plugin"
-#~ msgstr "Ogg Vorbis audio įskiepis"
-
-#~ msgid "About Ogg Vorbis Audio Plugin"
-#~ msgstr "Apie Ogg Vorbis audio įskiepį"
-
-#~ msgid ""
-#~ "Ogg Vorbis Plugin by the Xiph.org Foundation\n"
-#~ "\n"
-#~ "Original code by\n"
-#~ "Tony Arcieri <bascule at inferno.tusculum.edu>\n"
-#~ "Contributions from\n"
-#~ "Chris Montgomery <monty at xiph.org>\n"
-#~ "Peter Alm <peter at xmms.org>\n"
-#~ "Michael Smith <msmith at labyrinth.edu.au>\n"
-#~ "Jack Moffitt <jack at icecast.org>\n"
-#~ "Jorn Baayen <jorn at nl.linux.org>\n"
-#~ "Haavard Kvaalen <havardk at xmms.org>\n"
-#~ "Gian-Carlo Pascutto <gcp at sjeng.org>\n"
-#~ "\n"
-#~ "Visit the Xiph.org Foundation at http://www.xiph.org/\n"
-#~ msgstr ""
-#~ "Ogg Vorbis įskiepio autoriai - Xiph.org Foundation\n"
-#~ "\n"
-#~ "Pradinis kodas:\n"
-#~ "Tony Arcieri <bascule at inferno.tusculum.edu>\n"
-#~ "Papildymai:nChris Montgomery <monty at xiph.org>\n"
-#~ "Peter Alm <peter at xmms.org>\n"
-#~ "Michael Smith <msmith at labyrinth.edu.au>\n"
-#~ "Jack Moffitt <jack at icecast.org>\n"
-#~ "Jorn Baayen <jorn at nl.linux.org>\n"
-#~ "Haavard Kvaalen <havardk at xmms.org>\n"
-#~ "Gian-Carlo Pascutto <gcp at sjeng.org>\n"
-#~ "\n"
-#~ "Aplankykite Xiph.org Foundation adresu http://www.xiph.org/\n"
-
-#, fuzzy
-#~ msgid ""
-#~ "Adapted for Audacious usage by Tony Vroon <chainsaw at gentoo.org>\n"
-#~ "from the xmms_sndfile plugin which is:\n"
-#~ "Copyright (C) 2000, 2002 Erik de Castro Lopo\n"
-#~ "\n"
-#~ "This program is free software ; you can redistribute it and/or modify \n"
-#~ "it under the terms of the GNU General Public License as published by \n"
-#~ "the Free Software Foundation ; either version 2 of the License, or \n"
-#~ "(at your option) any later version. \n"
-#~ " \n"
-#~ "This program is distributed in the hope that it will be useful, \n"
-#~ "but WITHOUT ANY WARRANTY ; without even the implied warranty of \n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  \n"
-#~ "See the GNU General Public License for more details. \n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public \n"
-#~ "License along with this program ; if not, write to \n"
-#~ "the Free Software Foundation, Inc., \n"
-#~ "51 Franklin Street, Fifth Floor, \n"
-#~ "Boston, MA  02110-1301  USA"
-#~ msgstr ""
-#~ "XMMS ESounD įskiepis\n"
-#~ "\n"
-#~ " This program is free software; you can redistribute it and/or modify\n"
-#~ "it under the terms of the GNU General Public License as published by\n"
-#~ "the Free Software Foundation; either version 2 of the License, or\n"
-#~ "(at your option) any later version.\n"
-#~ "\n"
-#~ "This program is distributed in the hope that it will be useful,\n"
-#~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
-#~ "GNU General Public License for more details.\n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public License\n"
-#~ "along with this program; if not, write to the Free Software\n"
-#~ "Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,\n"
-#~ "USA."
-
-#~ msgid "WAV Audio Plugin"
-#~ msgstr "WAV audio įskiepis"
-
-#, fuzzy
-#~ msgid "About %s"
-#~ msgstr "Apie BMP"
-
-#, fuzzy
-#~ msgid " Close "
-#~ msgstr "/Užverti"
-
-#~ msgid "OSS Output Plugin"
-#~ msgstr "OSS išvesties įskiepis"
-
-#~ msgid "About OSS Driver"
-#~ msgstr "Apie OSS įskiepį"
-
-#, fuzzy
-#~ msgid ""
-#~ "Audacious OSS Driver\n"
-#~ "\n"
-#~ " This program is free software; you can redistribute it and/or modify\n"
-#~ "it under the terms of the GNU General Public License as published by\n"
-#~ "the Free Software Foundation; either version 2 of the License, or\n"
-#~ "(at your option) any later version.\n"
-#~ "\n"
-#~ "This program is distributed in the hope that it will be useful,\n"
-#~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
-#~ "GNU General Public License for more details.\n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public License\n"
-#~ "along with this program; if not, write to the Free Software\n"
-#~ "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA "
-#~ "02110-1301,\n"
-#~ "USA."
-#~ msgstr ""
-#~ "XMMS OSS tvarkyklÄ—\n"
-#~ "\n"
-#~ " This program is free software; you can redistribute it and/or modify\n"
-#~ "it under the terms of the GNU General Public License as published by\n"
-#~ "the Free Software Foundation; either version 2 of the License, or\n"
-#~ "(at your option) any later version.\n"
-#~ "\n"
-#~ "This program is distributed in the hope that it will be useful,\n"
-#~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
-#~ "GNU General Public License for more details.\n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public License\n"
-#~ "along with this program; if not, write to the Free Software\n"
-#~ "Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,\n"
-#~ "USA."
-
-#~ msgid "Default (%s)"
-#~ msgstr "Įprastasis (%s)"
-
-#~ msgid "OSS Driver configuration"
-#~ msgstr "OSS tvarkyklės konfigūravimas"
-
-#~ msgid "Audio device:"
-#~ msgstr "Garso įrenginys:"
-
-#~ msgid "Use alternate device:"
-#~ msgstr "Naudoti alternatyvų įrenginį:"
-
-#~ msgid "Mixer device:"
-#~ msgstr "Mikserio įrenginys:"
-
-#~ msgid "Devices"
-#~ msgstr "įrenginiai"
-
-#~ msgid "Buffer size (ms):"
-#~ msgstr "Buferio dydis (ms):"
-
-#~ msgid "Mixer Settings:"
-#~ msgstr "Mikserio nustatymai:"
-
-#~ msgid "Volume controls Master not PCM"
-#~ msgstr "Garsas reguliuoja pagrindinį, o ne PCM kanalą"
-
-#~ msgid "Mixer"
-#~ msgstr "Mikseris"
-
-#~ msgid "About ALSA Driver"
-#~ msgstr "Apie ALSAįskiepį"
-
-#, fuzzy
-#~ msgid ""
-#~ "Audacious ALSA Driver\n"
-#~ "\n"
-#~ " This program is free software; you can redistribute it and/or modify\n"
-#~ "it under the terms of the GNU General Public License as published by\n"
-#~ "the Free Software Foundation; either version 2 of the License, or\n"
-#~ "(at your option) any later version.\n"
-#~ "\n"
-#~ "This program is distributed in the hope that it will be useful,\n"
-#~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
-#~ "GNU General Public License for more details.\n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public License\n"
-#~ "along with this program; if not, write to the Free Software\n"
-#~ "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA "
-#~ "02110-1301,\n"
-#~ "USA.\n"
-#~ "Author: Matthieu Sozeau (mattam at altern.org)"
-#~ msgstr ""
-#~ "XMMS ALSA tvarkyklÄ—\n"
-#~ "\n"
-#~ " This program is free software; you can redistribute it and/or modify\n"
-#~ "it under the terms of the GNU General Public License as published by\n"
-#~ "the Free Software Foundation; either version 2 of the License, or\n"
-#~ "(at your option) any later version.\n"
-#~ "\n"
-#~ "This program is distributed in the hope that it will be useful,\n"
-#~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
-#~ "GNU General Public License for more details.\n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public License\n"
-#~ "along with this program; if not, write to the Free Software\n"
-#~ "Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,\n"
-#~ "USA.\n"
-#~ "Autorius: Matthieu Sozeau (mattam at altern.org)"
-
-#~ msgid "ALSA %s output plugin"
-#~ msgstr "ALSA %s išvesties įskiepis"
-
-#~ msgid "Unknown soundcard"
-#~ msgstr "Nežinoma garso plokštė"
-
-#~ msgid "Default PCM device (%s)"
-#~ msgstr "Įprastasis PCM įrenginys (%s)"
-
-#~ msgid "ALSA Driver configuration"
-#~ msgstr "ALSA tvarkyklės konfigūravimas"
-
-#~ msgid "Mixer:"
-#~ msgstr "Mikseris:"
-
-#~ msgid "Mixer card:"
-#~ msgstr "Mikserio korta:"
-
-#~ msgid "Device settings"
-#~ msgstr "Įrenginio nustatymai:"
-
-#, fuzzy
-#~ msgid "Soundcard:"
-#~ msgstr "Soundtrack"
-
-#~ msgid "Buffer time (ms):"
-#~ msgstr "Buferio dydis (ms):"
-
-#~ msgid "Period time (ms):"
-#~ msgstr "Periodas (ms):"
-
-#~ msgid "Advanced settings"
-#~ msgstr "Papildomi nustatymai"
-
-#, fuzzy
-#~ msgid "aRts Driver configuration"
-#~ msgstr "OSS tvarkyklės konfigūravimas"
-
-#, fuzzy
-#~ msgid "Select the directory where you want to store the output files:"
-#~ msgstr "IÅ¡rinkite aplankÄ…, kuriame saugosite MPEG srautus:"
-
-#, fuzzy
-#~ msgid "Disk Writer Configuration"
-#~ msgstr "OSS tvarkyklės konfigūravimas"
-
-#~ msgid "About ESounD Plugin"
-#~ msgstr "Apie ESounD įskiepį"
-
-#, fuzzy
-#~ msgid ""
-#~ "Audacious ESounD Plugin\n"
-#~ "\n"
-#~ " This program is free software; you can redistribute it and/or modify\n"
-#~ "it under the terms of the GNU General Public License as published by\n"
-#~ "the Free Software Foundation; either version 2 of the License, or\n"
-#~ "(at your option) any later version.\n"
-#~ "\n"
-#~ "This program is distributed in the hope that it will be useful,\n"
-#~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
-#~ "GNU General Public License for more details.\n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public License\n"
-#~ "along with this program; if not, write to the Free Software\n"
-#~ "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA "
-#~ "02110-1301,\n"
-#~ "USA."
-#~ msgstr ""
-#~ "XMMS ESounD įskiepis\n"
-#~ "\n"
-#~ " This program is free software; you can redistribute it and/or modify\n"
-#~ "it under the terms of the GNU General Public License as published by\n"
-#~ "the Free Software Foundation; either version 2 of the License, or\n"
-#~ "(at your option) any later version.\n"
-#~ "\n"
-#~ "This program is distributed in the hope that it will be useful,\n"
-#~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
-#~ "GNU General Public License for more details.\n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public License\n"
-#~ "along with this program; if not, write to the Free Software\n"
-#~ "Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,\n"
-#~ "USA."
-
-#~ msgid "Host:"
-#~ msgstr "Hostas:"
-
-#~ msgid "Use remote host"
-#~ msgstr "Naudoti nutolusį hostą"
-
-#~ msgid "Volume controls OSS mixer"
-#~ msgstr "Garsas reguliuoja OSS mikserį"
-
-#~ msgid "Server"
-#~ msgstr "Serveris"
-
-#~ msgid "eSound Output Plugin"
-#~ msgstr "eSound išvesties įskiepis"
-
-#, fuzzy
-#~ msgid "About JACK Output Plugin 0.15"
-#~ msgstr "eSound išvesties įskiepis"
-
-#, fuzzy
-#~ msgid "About the Sun Driver"
-#~ msgstr "Apie OSS įskiepį"
-
-#, fuzzy
-#~ msgid "Audio control device:"
-#~ msgstr "Garso įrenginys:"
-
-#, fuzzy
-#~ msgid "Volume controls device:"
-#~ msgstr "Garso valdymas:"
-
-#, fuzzy
-#~ msgid "Sun driver configuration"
-#~ msgstr "OSS tvarkyklės konfigūravimas"
-
-#~ msgid "/Toggle Decorations"
-#~ msgstr "/Perjungti dekoracijų vaizdavimą"
-
-#~ msgid "Blur scope"
-#~ msgstr "Akiratis"
-
-#~ msgid "Blur Scope: Color selection"
-#~ msgstr "Akiratis: spalvos pasirinkimas"
-
-#~ msgid "Options:"
-#~ msgstr "Nustatymai:"
-
-#~ msgid "** DOUBLESIZE HAS BEEN REMOVED **"
-#~ msgstr "** DVIGUBAS DYDIS PAÅ ALINTAS IÅ  PROGRAMOS **"
-
-#, fuzzy
-#~ msgid "<b>_Transparency</b>"
-#~ msgstr "<b>Grojimas</b>"
-
-#, fuzzy
-#~ msgid "Scrobbler Configuration"
-#~ msgstr "MPEG garso įskiepio konfigūravimas"
-
-#, fuzzy
-#~ msgid "Song Change Configuration"
-#~ msgstr "CD Audio grotuvo konfigūravimas"
-
-#, fuzzy
-#~ msgid "Song Metadata"
-#~ msgstr "Sonata"
-
-#, fuzzy
-#~ msgid "Port"
-#~ msgstr "Portas:"
-
-#, fuzzy
-#~ msgid "Client name"
-#~ msgstr "Bylos pavadinimas"
-
-#, fuzzy
-#~ msgid "Port name"
-#~ msgstr "Takelio pavadinimas"
-
-#, fuzzy
-#~ msgid "ALSA output ports"
-#~ msgstr "ALSA %s išvesties įskiepis"
-
-#~ msgid "Convert non-UTF8 ID3 tags to UTF8"
-#~ msgstr "Konvertuoti ID3 aprašus į UTF-8"
-
-#~ msgid "ID3 encoding:"
-#~ msgstr "ID3 aprašų koduotė:"
-
-#, fuzzy
-#~ msgid "Convert non-UTF8 Vorbis tags to UTF8"
-#~ msgstr "Konvertuoti ID3 aprašus į UTF-8"
-
-#, fuzzy
-#~ msgid "Vorbis encoding:"
-#~ msgstr "ID3 aprašų koduotė:"
-
-#, fuzzy
-#~ msgid "<b>WMA Version:</b>"
-#~ msgstr "<b>Vizualizacija</b>"
-
-#, fuzzy
-#~ msgid "<b>Channels:</b>"
-#~ msgstr "Kanalai:"
-
-#, fuzzy
-#~ msgid "<b>Filesize:</b>"
-#~ msgstr "<b>Bylos vardas</b>"
-
-#, fuzzy
-#~ msgid "WMA Info"
-#~ msgstr "Apie CD"
-
-#, fuzzy
-#~ msgid "<b>Comments:</b>"
-#~ msgstr "<b>_Å riftai:</b>"
-
-#, fuzzy
-#~ msgid "<b>Track:</b>"
-#~ msgstr "<b>Grojimas</b>"
-
-#, fuzzy
-#~ msgid "Tags"
-#~ msgstr "Tango"
-
-#~ msgid "Artem Baguinski"
-#~ msgstr "Artem Baguinski"
-
-#~ msgid "Edward Brocklesby"
-#~ msgstr "Edward Brocklesby"
-
-#~ msgid "Chong Kai Xiong"
-#~ msgstr "Chong Kai Xiong"
-
-#~ msgid "Milosz Derezynski"
-#~ msgstr "Milosz Derezynski"
-
-#~ msgid "David Lau"
-#~ msgstr "David Lau"
-
-#~ msgid "Ole Andre Vadla Ravnaas"
-#~ msgstr "Ole Andre Vadla Ravnaas"
-
-#~ msgid "Michiel Sikkes"
-#~ msgstr "Michiel Sikkes"
-
-#~ msgid "Andrei Badea"
-#~ msgstr "Andrei Badea"
-
-#~ msgid "Peter Behroozi"
-#~ msgstr "Peter Behroozi"
-
-#~ msgid "Bernard Blackham"
-#~ msgstr "Bernard Blackham"
-
-#~ msgid "Oliver Blin"
-#~ msgstr "Oliver Blin"
-
-#~ msgid "Tomas Bzatek"
-#~ msgstr "Tomas Bzatek"
-
-#~ msgid "Liviu Danicel"
-#~ msgstr "Liviu Danicel"
-
-#~ msgid "Jon Dowland"
-#~ msgstr "Jon Dowland"
-
-#~ msgid "Artur Frysiak"
-#~ msgstr "Artur Frysiak"
-
-#~ msgid "Sebastian Kapfer"
-#~ msgstr "Sebastian Kapfer"
-
-#~ msgid "Lukas Koberstein"
-#~ msgstr "Lukas Koberstein"
-
-#~ msgid "Dan Korostelev"
-#~ msgstr "Dan Korostelev"
-
-#~ msgid "Jolan Luff"
-#~ msgstr "Jolan Luff"
-
-#~ msgid "Michael Marineau"
-#~ msgstr "Michael Marineau"
-
-#~ msgid "Tim-Philipp Muller"
-#~ msgstr "Tim-Philipp Muller"
-
-#~ msgid "Julien Portalier"
-#~ msgstr "Julien Portalier"
-
-#~ msgid "Andrew Ruder"
-#~ msgstr "Andrew Ruder"
-
-#~ msgid "Olivier Samyn"
-#~ msgstr "Olivier Samyn"
-
-#~ msgid "Martijn Vernooij"
-#~ msgstr "Martijn Vernooij"
-
-#~ msgid "Philipi Pinto"
-#~ msgstr "Philipi Pinto"
-
-#~ msgid "Thierry Vignaud"
-#~ msgstr "Thierry Vignaud"
-
-#~ msgid "Jan Narovec"
-#~ msgstr "Jan Narovec"
-
-#~ msgid "Laurens Buhler"
-#~ msgstr "Laurens Buhler"
-
-#~ msgid "David Le Brun"
-#~ msgstr "David Le Brun"
-
-#~ msgid "Matthias Debus"
-#~ msgstr "Matthias Debus"
-
-#~ msgid "Kouzinopoulos Haris"
-#~ msgstr "Kouzinopoulos Haris"
-
-#~ msgid "Laszlo Dvornik"
-#~ msgstr "Laszlo Dvornik"
-
-#~ msgid "Alessio D'Ascanio"
-#~ msgstr "Alessio D'Ascanio"
-
-#~ msgid "DongCheon Park"
-#~ msgstr "DongCheon Park"
-
-#~ msgid "Rimas Kudelis"
-#~ msgstr "Rimas Kudelis"
-
-#~ msgid "Arangel Angov"
-#~ msgstr "Arangel Angov"
-
-#~ msgid "Jacek Wolszczak"
-#~ msgstr "Jacek Wolszczak"
-
-#~ msgid "Pavlo Bohmat"
-#~ msgstr "Pavlo Bohmat"
-
-#~ msgid "Pavel Kanzelsberger"
-#~ msgstr "Pavel Kanzelsberger"
-
-#~ msgid "Martin Persenius"
-#~ msgstr "Martin Persenius"
-
-#~ msgid "<span size=\"xx-large\"><b>Plugins</b></span>"
-#~ msgstr "<span size=\"xx-large\"><b>Įskiepiai</b></span>"
-
-#~ msgid "_Media plugin list:"
-#~ msgstr "_Media įskiepių sąrašas"
-
-#, fuzzy
-#~ msgid ""
-#~ "The change is now effective in Audacious' configuration database, but "
-#~ "won't take effect for playback until the next song!\n"
-#~ "\n"
-#~ "Optionally, you can stop and restart playback for the change to take "
-#~ "effect."
-#~ msgstr ""
-#~ "Pakeitimas išsaugotas BMP nustatymų duomenų bazėje, tačiau jis įsigalios "
-#~ "tik pradÄ—jus groti kitÄ… dainÄ…!\n"
-#~ "\n"
-#~ "Jei norite, galite sustabdyti ir perleisti esamÄ… dainÄ…, kad pakeitimai "
-#~ "įsigaliotų nedelsiant."
-
-#~ msgid "<span size=\"xx-large\"><b>Appearance</b></span>"
-#~ msgstr "<span size=\"xx-large\"><b>IÅ¡vaizda</b></span>"
-
-#~ msgid "<span size=\"xx-large\"><b>Mouse</b></span>"
-#~ msgstr "<span size=\"xx-large\"><b>PelÄ—</b></span>"
-
-#~ msgid "<span size=\"xx-large\"><b>Playlist</b></span>"
-#~ msgstr "<span size=\"xx-large\"><b>Grojaraštis</b></span>"
-
-#~ msgid "<span size=\"xx-large\"><b>Equalizer</b></span>"
-#~ msgstr "<span size=\"xx-large\"><b>Ekvalaizeris</b></span>"
-
-#~ msgid "Use proxy"
-#~ msgstr "Naudoti tarpinę stotį"
-
-#~ msgid "Frames:"
-#~ msgstr "Kadrai:"
-
-#~ msgid ""
-#~ "Variable,\n"
-#~ "avg. bitrate: %d KBit/s"
-#~ msgstr ""
-#~ "Kintamas,\n"
-#~ "vid. greitis:·%d·KBit/s"
-
-#~ msgid "Francisco Javier F. Serrador"
-#~ msgstr "Francisco Javier F. Serrador"
-
-#~ msgid ""
-#~ "%s\n"
-#~ "Unable to write to file: %s"
-#~ msgstr ""
-#~ "%s\n"
-#~ "Nepavyksta įrašyti bylos: %s"
-
-#~ msgid "Couldn't write tag!"
-#~ msgstr "Nepavyko įrašyti žymos!"
-
-#~ msgid ""
-#~ "%s\n"
-#~ "Unable to open file: %s"
-#~ msgstr ""
-#~ "%s\n"
-#~ "Nepavyksta atverti bylos: %s"
-
-#~ msgid ""
-#~ "%s\n"
-#~ "Unable to truncate file: %s"
-#~ msgstr ""
-#~ "%s\n"
-#~ "Nepavyksta apkapoti bylos: %s"
-
-#~ msgid "Couldn't remove tag!"
-#~ msgstr "Nepavyko pašalinti žymos!"
-
-#~ msgid "No tag to remove!"
-#~ msgstr "Šalinama žyma neegzistuoja!"
-
-#~ msgid "Copy album tags"
-#~ msgstr "Kopijuoti albumo duomenis"
-
-#~ msgid "Paste album tags"
-#~ msgstr "Įdėti albumo duomenis"
-
-#, fuzzy
-#~ msgid "About TiMidity Plugin"
-#~ msgstr "Apie MPEG audio įskiepį"
-
-#, fuzzy
-#~ msgid "TiMidity Plugin"
-#~ msgstr "MPEG audio įskiepis"
-
-#~ msgid "Content"
-#~ msgstr "Turinys"
-
-#~ msgid "Extension"
-#~ msgstr "PlÄ—tinys"
-
-#~ msgid "Extension and content"
-#~ msgstr "Turinys ir plÄ—tinys"
-
-#, fuzzy
-#~ msgid ""
-#~ "\n"
-#~ "Copyright (C) 2000-2004  Peter Eisenlohr <peter at eisenlohr.org>\n"
-#~ "\n"
-#~ "based on the original OSS Output Plugin  Copyright (C) 1998-2000\n"
-#~ "Peter Alm, Mikael Alm, Olle Hallnas, Thomas Nilsson and 4Front "
-#~ "Technologies\n"
-#~ "\n"
-#~ "This program is free software; you can redistribute it and/or modify\n"
-#~ "it under the terms of the GNU General Public License as published by\n"
-#~ "the Free Software Foundation; either version 2 of the License, or\n"
-#~ "(at your option) any later version.\n"
-#~ "\n"
-#~ "This program is distributed in the hope that it will be useful,\n"
-#~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
-#~ "GNU General Public License for more details.\n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public License\n"
-#~ "along with this program; if not, write to the Free Software\n"
-#~ "Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,\n"
-#~ "USA."
-#~ msgstr ""
-#~ "XMMS ESounD įskiepis\n"
-#~ "\n"
-#~ " This program is free software; you can redistribute it and/or modify\n"
-#~ "it under the terms of the GNU General Public License as published by\n"
-#~ "the Free Software Foundation; either version 2 of the License, or\n"
-#~ "(at your option) any later version.\n"
-#~ "\n"
-#~ "This program is distributed in the hope that it will be useful,\n"
-#~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
-#~ "GNU General Public License for more details.\n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public License\n"
-#~ "along with this program; if not, write to the Free Software\n"
-#~ "Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,\n"
-#~ "USA."
-
-#, fuzzy
-#~ msgid " Enable"
-#~ msgstr "Įjungtas"
-
-#, fuzzy
-#~ msgid "About XMMS Crossfade Plugin"
-#~ msgstr "Apie ESounD įskiepį"
-
-#, fuzzy
-#~ msgid "Advanced XF"
-#~ msgstr "Papildomi nustatymai"
-
-#, fuzzy
-#~ msgid "Advanced options"
-#~ msgstr "Papildomi nustatymai"
-
-#, fuzzy
-#~ msgid "Crossfade"
-#~ msgstr "c"
-
-#, fuzzy
-#~ msgid "Crossfader"
-#~ msgstr "c"
-
-#, fuzzy
-#~ msgid "Enable volume control"
-#~ msgstr "Garso valdymas:"
-
-#, fuzzy
-#~ msgid "Limit OP buffer usage (ms):"
-#~ msgstr "Buferio dydis (ms):"
-
-#, fuzzy
-#~ msgid "Mixing buffer size (ms):"
-#~ msgstr "Buferio dydis (ms):"
-
-#, fuzzy
-#~ msgid "Position:"
-#~ msgstr "Aprašymas:"
-
-#, fuzzy
-#~ msgid "Quality:"
-#~ msgstr "/_IÅ¡eiti"
-
-#, fuzzy
-#~ msgid "Rate:"
-#~ msgstr "Data:"
-
-#, fuzzy
-#~ msgid "Reopen"
-#~ msgstr "/Kartoti"
-
-#, fuzzy
-#~ msgid "Use plugin"
-#~ msgstr "Įskiepiai"
-
-#, fuzzy
-#~ msgid "Volume control options"
-#~ msgstr "Garso valdymas:"
-
-#, fuzzy
-#~ msgid "Volume normalizer"
-#~ msgstr "Garso valdymas:"
-
-#, fuzzy
-#~ msgid "same file"
-#~ msgstr "/IÅ¡saugoti/Ä® bylÄ…"
-
-#, fuzzy
-#~ msgid "LibVisual Audacious Plugin"
-#~ msgstr "_Vizualizacijos įskiepių sąrašas:"
-
-#, fuzzy
-#~ msgid "Visualization Plugins"
-#~ msgstr "_Vizualizacijos įskiepių sąrašas:"
-
-#, fuzzy
-#~ msgid "All plugins"
-#~ msgstr "Įskiepiai"
-
-#, fuzzy
-#~ msgid " (enabled)"
-#~ msgstr "Įjungtas"
-
-#, fuzzy
-#~ msgid "Version: "
-#~ msgstr "Versija:"
-
-#, fuzzy
-#~ msgid " error"
-#~ msgstr "Terror"
-
-#, fuzzy
-#~ msgid "Cannot initialize SDL!\n"
-#~ msgstr "Nepavyko inicializuoti gnome-vfs.\n"
-
-#~ msgid "DISABLE ALWAYS ON TOP (N/A)"
-#~ msgstr "ATJUNGTI „VISADA VIRŠUJE“ (N/A)"
-
-#~ msgid "ENABLE ALWAYS ON TOP (N/A)"
-#~ msgstr "ĮJUNGTI „VISADA VIRŠUJE“ (N/A)"
-
-#, fuzzy
-#~ msgid "Downsample:"
-#~ msgstr "KokybÄ—s santykis:"
-
-#~ msgid "%s - BMP"
-#~ msgstr "%s - BMP"
-
-#~ msgid "bmp: %s"
-#~ msgstr "bmp: %s"
-
-#, fuzzy
-#~ msgid "/Play Directory"
-#~ msgstr "_Aplankas:"
-
-#~ msgid "Add Folders"
-#~ msgstr "PridÄ—ti aplankus"
-
-#, fuzzy
-#~ msgid "/Add Folders..."
-#~ msgstr "/Pridėti bylas…"
-
-#~ msgid "3DNow! optimized decoder"
-#~ msgstr "3DNow! optimizuotas dekoderis"
-
-#~ msgid "MMX optimized decoder"
-#~ msgstr "MMX optimizuotas dekoderis"
-
-#~ msgid "FPU decoder"
-#~ msgstr "FPU dekoderis"
-
-#~ msgid ""
-#~ "mpg123 decoding engine by Michael Hipp <mh at mpg123.de>\n"
-#~ "Plugin by The XMMS team"
-#~ msgstr ""
-#~ "mpg123 dekodavimo variklio autorius Michael Hipp <mh at mpg123.de>\n"
-#~ "Įskiepį parašė XMMS komanda"
-
-#~ msgid "Advanced settings:"
-#~ msgstr "Papildomi nustatymai:"
-
-#, fuzzy
-#~ msgid "Thread buffer time (ms):"
-#~ msgstr "Buferio dydis (ms):"
-
-#~ msgid "Mmap mode"
-#~ msgstr "Mmap režimas"
-
-#~ msgid "Homepage and Graphics:"
-#~ msgstr "Interneto svetainÄ— ir grafika:"
-
-#~ msgid "Takeshi Aihana"
-#~ msgstr "Takeshi Aihana"
-
-#~ msgid "BMP Equalizer"
-#~ msgstr "BMP ekvalaizeris"
-
-#~ msgid "Beep Media Player"
-#~ msgstr "Multimedijos grotuvas „Beep“"
-
-#~ msgid "/About BMP"
-#~ msgstr "/Apie BMP"
-
-#~ msgid "BMP"
-#~ msgstr "BMP"
-
-#~ msgid "Add Internet Address"
-#~ msgstr "Pridėti adresą internete…"
-
-#~ msgid "*"
-#~ msgstr "*"
-
-#~ msgid "Vlad Gerasimov"
-#~ msgstr "Vlad Gerasimov"
-
-#~ msgid "/By extension"
-#~ msgstr "/Pagal plėtinį"
-
-#~ msgid "Add Folders - BMP"
-#~ msgstr "Pridėti aplankus – BMP"
-
-#~ msgid "/Sort by Title"
-#~ msgstr "?RÅ«Å¡iuoti pagal pavadinimÄ…"
+msgstr "Rodyti sesijos valdymo pasirinktis"
 
-#~ msgid "/Sort by Filename"
-#~ msgstr "/RÅ«Å¡iuoti pagal bylos vardÄ…"
 
-#~ msgid "/Sort by Date"
-#~ msgstr "/RÅ«Å¡iuoti pagal datÄ…"
diff --git a/po/lv.po b/po/lv.po
index 4432b81..e5717ed 100644
--- a/po/lv.po
+++ b/po/lv.po
@@ -6,8 +6,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: audacious2_25062009\n"
 "Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
-"PO-Revision-Date: 2011-03-03 01:48+0200\n"
+"POT-Creation-Date: 2011-07-05 22:45+0200\n"
+"PO-Revision-Date: 2011-10-30 16:21+0200\n"
 "Last-Translator: Einars Sprugis <einars8 at gmail.com>\n"
 "Language-Team: Latvian <kde-i18n-doc at kde.org>\n"
 "Language: lv\n"
@@ -18,6 +18,18 @@ msgstr ""
 "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : "
 "2);\n"
 
+#: src/audacious/adder.c:71
+msgid "Searching ..."
+msgstr "Meklē ..."
+
+#: src/audacious/adder.c:99
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] "Atrasts %d fails"
+msgstr[1] "Atrasti %d faili"
+msgstr[2] "Atrasti %d faili"
+
 #: src/audacious/chardet.c:37
 msgid "  (invalid UTF-8)"
 msgstr " (nederīgs UTF-8)"
@@ -98,112 +110,111 @@ msgstr "Igauņu:"
 msgid "Finnish:"
 msgstr "Somu:"
 
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:220
 msgid "French:"
 msgstr "Franču:"
 
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:226
 msgid "German:"
 msgstr "Vācu:"
 
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:233
 msgid "Georgian:"
 msgstr "Gruzīnu:"
 
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:236
 msgid "Greek:"
 msgstr "GrieÄ·u:"
 
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:241
 msgid "Hindi:"
 msgstr "Hindu:"
 
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:244
 msgid "Hungarian:"
 msgstr "Ungāru:"
 
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:248
 msgid "Italian:"
 msgstr "Itāļu:"
 
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:252
 msgid "Japanese:"
 msgstr "Japāņu:"
 
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:255
 msgid "Korean:"
 msgstr "Korejiešu:"
 
-#: src/audacious/credits.c:256
-#, fuzzy
+#: src/audacious/credits.c:258
 msgid "Latvian:"
-msgstr "Horvātu:"
+msgstr "Latviešu:"
 
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:261
 msgid "Lithuanian:"
 msgstr "Lietuviešu:"
 
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:265
 msgid "Macedonian:"
 msgstr "Maķedoniešu:"
 
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:268
 msgid "Polish:"
 msgstr "Poļu:"
 
-#: src/audacious/credits.c:271
+#: src/audacious/credits.c:274
 msgid "Portuguese:"
 msgstr "Portugāļu:"
 
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:277
 msgid "Romanian:"
 msgstr "Rumāņu:"
 
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:281
 msgid "Russian:"
 msgstr "Krievu:"
 
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:285
 msgid "Serbian (Latin):"
 msgstr "Serbu (latīņu):"
 
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:288
 msgid "Serbian (Cyrillic):"
 msgstr "Serbu (kirilica):"
 
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:291
 msgid "Simplified Chinese:"
 msgstr "Vienkāršotā ķīniešu:"
 
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:294
 msgid "Slovak:"
 msgstr "Slovāku:"
 
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:297
 msgid "Spanish:"
 msgstr "Spāņu:"
 
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:304
 msgid "Swedish:"
 msgstr "Zviedru:"
 
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:307
 msgid "Traditional Chinese:"
 msgstr "Tradiciionālā ķīniešu:"
 
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:312
 msgid "Turkish:"
 msgstr "Turku:"
 
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:316
 msgid "Ukrainian:"
 msgstr "Ukraiņu:"
 
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:319
 msgid "Welsh:"
 msgstr "Velsiešu:"
 
-#: src/audacious/drct.c:254
+#: src/audacious/drct.c:256
 msgid "Temporary Playlist"
 msgstr "Pagaidu repertuārs"
 
@@ -212,79 +223,63 @@ msgstr "Pagaidu repertuārs"
 msgid "Error importing Winamp EQF file '%s'"
 msgstr "Kļūda importējot Winamp EQF failu '%s'"
 
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr "Meklē ..."
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] "Atrasts %d fails"
-msgstr[1] "Atrasti %d faili"
-msgstr[2] "Atrasti %d faili"
-
-#: src/audacious/main.c:247
+#: src/audacious/main.c:256
 msgid "Skip backwards in playlist"
 msgstr "Repertuārā izlaist atpakaļgaitā"
 
-#: src/audacious/main.c:248
+#: src/audacious/main.c:257
 msgid "Start playing current playlist"
 msgstr "Sākt atskaņot pašreizējo repertuāru"
 
-#: src/audacious/main.c:249
+#: src/audacious/main.c:258
 msgid "Pause current song"
 msgstr "Nopauzēt pašreizējo dziesmu"
 
-#: src/audacious/main.c:250
+#: src/audacious/main.c:259
 msgid "Stop current song"
 msgstr "Apturēt pašreizējo dziesmu"
 
-#: src/audacious/main.c:251
+#: src/audacious/main.c:260
 msgid "Pause if playing, play otherwise"
 msgstr "Nopauzēt, ja pašlaik atskaņo, citādi atskaņot"
 
-#: src/audacious/main.c:252
+#: src/audacious/main.c:261
 msgid "Skip forward in playlist"
 msgstr "Repertuārā izlaist uz priekšu"
 
-#: src/audacious/main.c:253
+#: src/audacious/main.c:262
 msgid "Display Jump to File dialog"
 msgstr "Parādīt 'Pāriet uz failu' dialogu"
 
-#: src/audacious/main.c:254
+#: src/audacious/main.c:263
 msgid "Add files to the playlist"
 msgstr "Pievieno failus repertuāram"
 
-#: src/audacious/main.c:255
+#: src/audacious/main.c:264
 msgid "Add new files to a temporary playlist"
 msgstr "Pievienot jaunus failus pagaidu repertuāram"
 
-#: src/audacious/main.c:256
+#: src/audacious/main.c:265
 msgid "Display the main window"
 msgstr "Rādīt galveno logu"
 
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr "Rādīt visus atvērtos Audacious logus"
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:266
 msgid "Show version"
 msgstr "Parādīt versiju"
 
-#: src/audacious/main.c:259
+#: src/audacious/main.c:267
 msgid "Print debugging messages"
 msgstr "Drukāt atkļūdošanas ziņojumus"
 
-#: src/audacious/main.c:260
+#: src/audacious/main.c:268
 msgid "FILE..."
 msgstr "FAILS..."
 
-#: src/audacious/main.c:272
+#: src/audacious/main.c:280
 msgid "- play multimedia files"
 msgstr "- atskaņot multivides failus"
 
-#: src/audacious/main.c:282
+#: src/audacious/main.c:290
 #, c-format
 msgid ""
 "%s: %s\n"
@@ -293,267 +288,237 @@ msgstr ""
 "%s: %s\n"
 "Mēģiniet `%s --help', lai iegūtu vairāk informācijas.\n"
 
-#: src/audacious/main.c:395
+#: src/audacious/main.c:407
 msgid ""
 "Audacious seems to be already running but is not responding.  You can start "
 "another instance of the program, but please be warned that this can cause "
 "data loss.  If Audacious is not running, you can safely ignore this "
 "message.  Press OK to start Audacious or Cancel to quit."
 msgstr ""
+"Audacious, šķiet, jau ir palaista, bet neatbild. Varat palaist vēl vienu "
+"programmas instanci, tomēr tas var izraisīt datu zudumus. Ja Audacious nav "
+"palaista, šo brīdinājumu droši varat izlaist. Nospiediet 'Labi', lai "
+"startētu Audacious, vai 'Atcelt', lai to aizvērtu."
 
-#: src/audacious/main.c:558
+#: src/audacious/main.c:572
 msgid "Audacious"
 msgstr "Audacious"
 
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:381
 #, c-format
 msgid "No decoder found for %s."
 msgstr "Netika atrasts dekodētājs priekš %s."
 
-#: src/audacious/playback.c:519
+#: src/audacious/playback.c:531
 msgid "Buffering ..."
 msgstr "Buferizācija ..."
 
-#: src/audacious/playlist-new.c:288
+#: src/audacious/playlist-new.c:303
 msgid "Untitled Playlist"
 msgstr "Nenosaukts repertuārs"
 
-#: src/audacious/ui_preferences.c:88
+#: src/audacious/ui_preferences.c:87
 msgid "Audio"
 msgstr "Skaņa"
 
-#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
-msgstr "Normalizēšana"
-
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:88
 msgid "Network"
 msgstr "TÄ«kls"
 
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:89 src/audacious/ui_preferences.c:1556
 msgid "Playlist"
 msgstr "Repertuārs"
 
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:90
 msgid "Plugins"
 msgstr "Spraudņi"
 
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:204
 msgid "Artist"
 msgstr "Izpildītājs"
 
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:97 src/libaudgui/infopopup.c:206
 msgid "Album"
 msgstr "Albums"
 
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:202
+#: src/libaudgui/ui_playlist_manager.c:263
 msgid "Title"
 msgstr "Nosaukums"
 
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:99
 msgid "Tracknumber"
 msgstr "Celiņa numurs"
 
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:208
 msgid "Genre"
 msgstr "Žanrs"
 
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:101
 msgid "Filename"
 msgstr "Faila nosaukums"
 
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:102
 msgid "Filepath"
 msgstr "Faila ceļš"
 
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:103
 msgid "Date"
 msgstr "Datums"
 
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:104 src/libaudgui/infopopup.c:210
 msgid "Year"
 msgstr "Gads"
 
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:105
 msgid "Comment"
 msgstr "Komentārs"
 
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:106
 msgid "Codec"
 msgstr "Kodeks"
 
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:107
 msgid "Quality"
 msgstr "Kvalitāte"
 
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:112
 msgid "None"
 msgstr "Neviens"
 
-#: src/audacious/ui_preferences.c:115
+#: src/audacious/ui_preferences.c:113
 msgid "Japanese"
 msgstr "Japāņu"
 
-#: src/audacious/ui_preferences.c:116
+#: src/audacious/ui_preferences.c:114
 msgid "Taiwanese"
 msgstr "Taivānu"
 
-#: src/audacious/ui_preferences.c:117
+#: src/audacious/ui_preferences.c:115
 msgid "Chinese"
 msgstr "Ķīniešu"
 
-#: src/audacious/ui_preferences.c:118
+#: src/audacious/ui_preferences.c:116
 msgid "Korean"
 msgstr "Korejiešu"
 
-#: src/audacious/ui_preferences.c:119
+#: src/audacious/ui_preferences.c:117
 msgid "Russian"
 msgstr "Krievu"
 
-#: src/audacious/ui_preferences.c:120
+#: src/audacious/ui_preferences.c:118
 msgid "Greek"
 msgstr "GrieÄ·u"
 
-#: src/audacious/ui_preferences.c:121
+#: src/audacious/ui_preferences.c:119
 msgid "Hebrew"
 msgstr "Ebreju"
 
-#: src/audacious/ui_preferences.c:122
+#: src/audacious/ui_preferences.c:120
 msgid "Turkish"
 msgstr "Turku"
 
-#: src/audacious/ui_preferences.c:123
+#: src/audacious/ui_preferences.c:121
 msgid "Arabic"
 msgstr "Arābu"
 
-#: src/audacious/ui_preferences.c:124
+#: src/audacious/ui_preferences.c:122
 msgid "Polish"
 msgstr "Poļu"
 
-#: src/audacious/ui_preferences.c:125
+#: src/audacious/ui_preferences.c:123
 msgid "Baltic"
 msgstr "Baltu"
 
-#: src/audacious/ui_preferences.c:126
+#: src/audacious/ui_preferences.c:124
 msgid "Universal"
 msgstr "Univerāls"
 
 #: src/audacious/ui_preferences.c:146
-msgid "<b>Bit Depth</b>"
-msgstr "<b>Bitu dziļums</b>"
+msgid "Single track mode"
+msgstr "Viena celiņa režīms"
 
 #: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr "Izvades bitu dziļums:"
-
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
-"Visas straumes tiks pārveidotas uz šo bitu dziļumu.\n"
-"Tas būtu jāuzstāda uz lielāko bitu dziļuma vērtību,\n"
-"ko atbalsta jūsu skaņas karte vai izvades spraudnis."
+msgid "Album mode"
+msgstr "Albuma režīms"
 
-#: src/audacious/ui_preferences.c:151
-msgid "<b>Volume Control</b>"
-msgstr "<b>Skaļuma kontrole</b>"
+#: src/audacious/ui_preferences.c:150
+msgid "<b>Output Settings</b>"
+msgstr "<b>Izvades iestatījumi</b>"
 
 #: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr "Lietot programmatūras skaļuma kontroli"
+msgid "Bit depth:"
+msgstr "Bitu dziļums:"
 
-#: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
-"Lietot programmatūras skaļuma kontroli. Tas var noderēt situācijās, kad jūsu "
-"skaņas sistēma neatbalsta atskaņošanas skaļuma kontroli."
+#: src/audacious/ui_preferences.c:155
+msgid "Buffer size:"
+msgstr "Bufera izmērs:"
 
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
-msgstr ""
+#: src/audacious/ui_preferences.c:157
+msgid "ms"
+msgstr "ms"
 
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
-msgstr "dB"
+#: src/audacious/ui_preferences.c:158
+msgid "Use software volume control (not recommended)"
+msgstr "Lietot programmatūras skaļuma kontroli (nav ieteicams)"
 
 #: src/audacious/ui_preferences.c:160
-#, fuzzy
-msgid "Amplify untagged files:"
-msgstr "- atskaņot multivides failus"
-
-#: src/audacious/ui_preferences.c:164
-#, fuzzy
 msgid "<b>Replay Gain</b>"
-msgstr "<b>Normalizēšanas režīms</b>"
+msgstr "<b>Normalizēšana</b>"
 
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:161
 msgid "Enable Replay Gain"
 msgstr "Ieslēgt normalizēšanu"
 
+#: src/audacious/ui_preferences.c:164
+msgid "Prevent clipping (recommended)"
+msgstr "Novērst apgriešanu (ieteicams)"
+
+#: src/audacious/ui_preferences.c:166
+msgid "<b>Adjust Levels</b>"
+msgstr "<b>Regulēt līmeņus</b>"
+
 #: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>Metadati</b>"
+msgid "Amplify all files:"
+msgstr "Pastiprināt visus failus:"
 
-#: src/audacious/ui_preferences.c:168
-#, fuzzy
-msgid "Single track mode"
-msgstr "Skatīt celiņa detaļas"
+#: src/audacious/ui_preferences.c:169 src/audacious/ui_preferences.c:172
+msgid "dB"
+msgstr "dB"
 
 #: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "Albums"
-
-#: src/audacious/ui_preferences.c:172
-#, fuzzy
-msgid "<b>Adjust Levels</b>"
-msgstr "<b>Peles ritenis</b>"
+msgid "Amplify untagged files:"
+msgstr "Pastiprināt netagotos failus:"
 
 #: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "<b>Uzlecošā informācija</b>"
-
-#: src/audacious/ui_preferences.c:176
-#, fuzzy
-msgid "Enable clipping prevention"
-msgstr "Ieslēgt maksimumu info apgriešanas novēršanu"
-
-#: src/audacious/ui_preferences.c:180
 msgid "Proxy hostname:"
 msgstr "Starpniekservera nosaukums:"
 
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:176
 msgid "Proxy port:"
 msgstr "Starpniekservera ports:"
 
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:179
 msgid "Proxy username:"
 msgstr "Starpniekservera lietotājvārds:"
 
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:180
 msgid "Proxy password:"
 msgstr "Starpniekservera parole:"
 
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:184
 msgid "<b>Proxy Configuration</b>"
 msgstr "<b>Starpniekservera konfigurācija</b>"
 
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:185
 msgid "Enable proxy usage"
 msgstr "Ieslēgt starpniekservera izmantošanu"
 
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:187
 msgid "Use authentication with proxy"
 msgstr "Savienojoties ar starpniekserveri, izmantot autentificēšanos"
 
-#: src/audacious/ui_preferences.c:197
+#: src/audacious/ui_preferences.c:189
 msgid ""
 "<span size=\"small\">Changing these settings will require a restart of "
 "Audacious.</span>"
@@ -561,15 +526,15 @@ msgstr ""
 "<span size=\"small\">Nomainot šos iestatījumus, vajadzēs pārstartēt "
 "Audacious.</span>"
 
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
 msgid "Auto character encoding detector for:"
 msgstr "Automātiska rakstzīmju kodējuma noteikšana priekš:"
 
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
 msgid "Fallback character encodings:"
 msgstr "Atkāpšanās rakstzīmju kodējumi:"
 
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
 msgid ""
 "List of character encodings used for fall back conversion of metadata. If "
 "automatic character encoding detector failed or has been disabled, encodings "
@@ -581,43 +546,43 @@ msgstr ""
 "atslēgta, šajā sarakstā esošie kodējumi tiks uztverti kā kandidāti metadatu "
 "kodējumam, un tiks mēģināta pārveidošana no šiem kodējumiem uz UTF-8."
 
-#: src/audacious/ui_preferences.c:213
+#: src/audacious/ui_preferences.c:205
 msgid "<b>Behavior</b>"
 msgstr "<b>Izturēšanās</b>"
 
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:206
 msgid "Continue playback on startup"
 msgstr "Turpināt atskaņošanu pēc programmas palaišanas"
 
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:208
 msgid "Advance when the current song is deleted"
 msgstr "Iet uz priekšu, ja pašreizējā dziesma tiek dzēsta"
 
-#: src/audacious/ui_preferences.c:218
+#: src/audacious/ui_preferences.c:210
 msgid "Clear the playlist when opening files"
 msgstr "Atverot failus, notīrīt repertuāru"
 
-#: src/audacious/ui_preferences.c:220
+#: src/audacious/ui_preferences.c:212
 msgid "Open files in a temporary playlist"
 msgstr "Atvērt failus pagaidu repertuārā"
 
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:214
 msgid "<b>Metadata</b>"
 msgstr "<b>Metadati</b>"
 
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:454
 msgid "Category"
 msgstr "Kategorija"
 
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:682
 msgid "Popup Information Settings"
 msgstr "Uzlecošās informācijas iestatījumi"
 
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:691
 msgid "<b>Cover image retrieve</b>"
 msgstr "<b>Vāka attēla meklēšana</b>"
 
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:696
 msgid ""
 "While searching for the album's cover, Audacious looks for certain words in "
 "the filename. You can specify those words in the lists below, separated "
@@ -627,99 +592,99 @@ msgstr ""
 "nosaukumos. Jūs varat norādīt šos vārdus lejā esošajos sarakstos, atdalot "
 "atsevišķus vārdus ar komatiem."
 
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:713
 msgid "Exclude:"
 msgstr "Izslēgt:"
 
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:720
 msgid "Include:"
 msgstr "Iekļaut:"
 
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:737
 msgid "Recursively search for cover"
 msgstr "Meklēt vāku rekursīvi"
 
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:747
 msgid "Search depth: "
 msgstr "Meklēšanas dziļums: "
 
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:761
 msgid "Use per-file cover"
 msgstr "Izmantot vienu vāku katram failam"
 
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:764
 msgid "<b>Miscellaneous</b>"
 msgstr "<b>Dažādi</b>"
 
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:773
 msgid "Show Progress bar for the current track"
 msgstr "Rādīt progresa indikatoru pašreizējajam celiņam"
 
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:783
 msgid "Delay until filepopup comes up: "
 msgstr "Aizture pirms faila informācijas parādīšanās:"
 
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1283
 msgid "<b>Song Display</b>"
 msgstr "<b>Dziesmu attēlojums</b>"
 
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1292
 msgid "Show song numbers"
 msgstr "Rādīt dziesmu numurus"
 
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1303
 msgid "Show leading zeroes (02:00 instead of 2:00)"
 msgstr "Rādīt ievadošās nulles (02:00 nevis 2:00)"
 
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1325
 msgid "Show information about titlestring format"
 msgstr "Rādīt informāciju par nosaukuma formātu"
 
-#: src/audacious/ui_preferences.c:1514
+#: src/audacious/ui_preferences.c:1339
 msgid "TITLE"
 msgstr "NOSAUKUMS"
 
-#: src/audacious/ui_preferences.c:1515
+#: src/audacious/ui_preferences.c:1340
 msgid "ARTIST - TITLE"
 msgstr "IZPILDĪTĀJS - NOSAUKUMS"
 
-#: src/audacious/ui_preferences.c:1516
+#: src/audacious/ui_preferences.c:1341
 msgid "ARTIST - ALBUM - TITLE"
 msgstr "IZPILDĪTĀJS - ALBUMS - NOSAUKUMS"
 
-#: src/audacious/ui_preferences.c:1517
+#: src/audacious/ui_preferences.c:1342
 msgid "ARTIST - ALBUM - TRACK. TITLE"
 msgstr "IZPILDĪTĀJS - ALBUMS - CELIŅŠ. NOSAUKUMS"
 
-#: src/audacious/ui_preferences.c:1518
+#: src/audacious/ui_preferences.c:1343
 msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
 msgstr "IZPILDĪTĀJS [ ALBUMS ] - CELIŅŠ. NOSAUKUMS"
 
-#: src/audacious/ui_preferences.c:1519
+#: src/audacious/ui_preferences.c:1344
 msgid "ALBUM - TITLE"
 msgstr "ALBUMS - NOSAUKUMS"
 
-#: src/audacious/ui_preferences.c:1520
+#: src/audacious/ui_preferences.c:1345
 msgid "Custom"
 msgstr "Pielāgots"
 
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1354
 msgid "Custom string:"
 msgstr "Pielāgota virkne:"
 
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1361
 msgid "Title format:"
 msgstr "Nosaukuma formāts:"
 
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1372
 msgid "<b>Popup Information</b>"
 msgstr "<b>Uzlecošā informācija</b>"
 
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1387
 msgid "Show popup information for playlist entries"
 msgstr "Rādīt uzlecošo informāciju repertuāra ierakstiem"
 
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1388
 msgid ""
 "Toggles popup information window for the pointed entry in the playlist. The "
 "window shows title of song, name of album, genre, year of publish, track "
@@ -729,52 +694,44 @@ msgstr ""
 "repertuāra ierakstam. Logs rāda dziesmas nosaukumu, albuma nosaukumu, žanru, "
 "publicēšanas gadu, celiņa numuru, celiņa garumu un albuma vāka attēlu."
 
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1397
 msgid "Edit settings for popup information"
 msgstr "Rediģēt iestatījumus uzlecošajai informācijai"
 
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>Skaņas sistēma</b>"
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "Bufera izmērs:"
-
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
-msgstr "Pašreizējais izvades spraudnis:"
+#: src/audacious/ui_preferences.c:1497
+msgid "Output plugin:"
+msgstr "Izvades spraudnis:"
 
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
 msgid "Transport"
 msgstr "Transports"
 
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
 msgid "Input"
 msgstr "Ievade"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
 msgid "Effect"
 msgstr "Efekti"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
 msgid "Visualization"
 msgstr "Vizualizēšana"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
 msgid "General"
 msgstr "Vispārīgi"
 
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1597
 msgid "Audacious Preferences"
 msgstr "Audacious iestatījumi"
 
-#: src/audacious/util.c:161
+#: src/audacious/util.c:155
 #, c-format
 msgid "Could not create directory (%s): %s\n"
 msgstr "Neizdevās izveidot mapi (%s): %s\n"
 
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:264
 msgid "Position not found."
 msgstr "Pozīcija nav atrasta."
 
@@ -792,10 +749,13 @@ msgstr "Stereo"
 
 #: src/libaudcore/tuple.c:689
 #, c-format
-msgid "%d channels"
-msgstr ""
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] "%d kanāls"
+msgstr[1] "%d kanāli"
+msgstr[2] "%d kanālu"
 
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/confirm.c:73
 #, c-format
 msgid ""
 "Are you sure you want to close %s?  If you do, any changes made since the "
@@ -804,14 +764,13 @@ msgstr ""
 "Vai tiešām vēlaties aizvērt %s? Ja to izdarīsiet, visas izmaiņas, kas "
 "veiktas kopš repertuāra eksportēšanas, tiks zaudētas."
 
-#: src/libaudgui/confirm.c:77
+#: src/libaudgui/confirm.c:86
 msgid "_Don't show this message again"
 msgstr "_Vairs nerādīt šo ziņojumu"
 
-#: src/libaudgui/confirm.c:115
-#, fuzzy
+#: src/libaudgui/confirm.c:124
 msgid "Rename Playlist"
-msgstr "Saglabāt repertuāru"
+msgstr "Pārdēvēt repertuāru"
 
 #: src/libaudgui/effects-menu.c:76
 msgid "settings ..."
@@ -869,11 +828,11 @@ msgstr "Equalizer"
 msgid "Preamp"
 msgstr "Priekšpastiprinājums"
 
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:212
 msgid "Track Number"
 msgstr "Celiņa numurs"
 
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:214
 msgid "Track Length"
 msgstr "Celiņa garums"
 
@@ -882,18 +841,16 @@ msgid "Acid Jazz"
 msgstr "Acid Jazz"
 
 #: src/libaudgui/infowin.c:78
-#, fuzzy
 msgid "Acid Rock"
-msgstr "Hard Rock"
+msgstr "Acid Rock"
 
 #: src/libaudgui/infowin.c:79
 msgid "Ambient"
 msgstr "Ambient"
 
 #: src/libaudgui/infowin.c:80
-#, fuzzy
 msgid "Bebop"
-msgstr "Bebob"
+msgstr "Bebop"
 
 #: src/libaudgui/infowin.c:81
 msgid "Bluegrass"
@@ -956,9 +913,8 @@ msgid "Heavy Metal"
 msgstr "Heavy Metal"
 
 #: src/libaudgui/infowin.c:96
-#, fuzzy
 msgid "Hip-hop"
-msgstr "Hip-Hop"
+msgstr "Hip-hop"
 
 #: src/libaudgui/infowin.c:97
 msgid "House"
@@ -974,7 +930,7 @@ msgstr "Jungle"
 
 #: src/libaudgui/infowin.c:100
 msgid "Metal"
-msgstr "Metāls"
+msgstr "Metal"
 
 #: src/libaudgui/infowin.c:101
 msgid "New Age"
@@ -1009,13 +965,12 @@ msgid "Rock"
 msgstr "Roks"
 
 #: src/libaudgui/infowin.c:109
-#, fuzzy
 msgid "Rock and Roll"
-msgstr "Rock & Roll"
+msgstr "Rock and Roll"
 
 #: src/libaudgui/infowin.c:110
 msgid "Rhythm and Blues"
-msgstr ""
+msgstr "Rhythm and Blues"
 
 #: src/libaudgui/infowin.c:111
 msgid "Ska"
@@ -1034,9 +989,8 @@ msgid "Techno"
 msgstr "Tehno"
 
 #: src/libaudgui/infowin.c:115
-#, fuzzy
 msgid "Trip-hop"
-msgstr "Trip-Hop"
+msgstr "Trip-hop"
 
 #: src/libaudgui/infowin.c:175 src/libaudgui/infowin.c:361
 #: src/libaudgui/infowin.c:364 src/libaudgui/infowin.c:367
@@ -1105,6 +1059,27 @@ msgstr "%d kb/s"
 msgid "No info available for %s.\n"
 msgstr "Informācija priekš %s nav pieejama.\n"
 
+#: src/libaudgui/jump-to-time.c:75
+msgid "Jump to Time"
+msgstr "Pāriet uz laiku"
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr "mm:ss"
+
+#: src/libaudgui/playlists.c:39
+msgid "Export Playlist"
+msgstr "Eksportēt repertuāru"
+
+#: src/libaudgui/playlists.c:39
+msgid "Import Playlist"
+msgstr "Importēt repertuāru"
+
+#: src/libaudgui/playlists.c:71
+#, c-format
+msgid "Overwrite %s?"
+msgstr "Pārrakstīt %s?"
+
 #: src/libaudgui/ui_about.c:71
 msgid "About Audacious"
 msgstr "Par Audacious"
@@ -1165,19 +1140,19 @@ msgstr "Notī_rīt"
 msgid "Close on Jump"
 msgstr "Aizvērt pārejot"
 
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:240
 msgid "Playlist Manager"
 msgstr "Repertuāru pārvaldnieks"
 
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:264
 msgid "Entries"
 msgstr "Ieraksti"
 
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:285
 msgid "_Rename"
 msgstr "Pā_rdēvēt"
 
-#: src/libaudgui/ui_playlist_manager.c:251
+#: src/libaudgui/ui_playlist_manager.c:309
 msgid "_Close dialog on activating playlist"
 msgstr "_Aizvērt dialoglogu, aktivizējot repertuāru"
 
@@ -1189,6 +1164,14 @@ msgstr "Atvērt URL"
 msgid "Add URL"
 msgstr "Pievienot URL"
 
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+"\n"
+"(Turpmākie ziņojumi tika paslēpti.)"
+
 #: src/libeggsmclient/eggdesktopfile.c:165
 msgid "File is not a valid .desktop file"
 msgstr "Fails nav atļauts '.desktop' fails"
@@ -1198,25 +1181,25 @@ msgstr "Fails nav atļauts '.desktop' fails"
 msgid "Unrecognized desktop file Version '%s'"
 msgstr "Neatpazīta darbvirsmas faila versija '%s'"
 
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:967
 #, c-format
 msgid "Starting %s"
 msgstr "Startē %s"
 
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1108
 msgid "Application does not accept documents on command line"
 msgstr "Programma nepieņem failus no komandrindas"
 
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1176
 #, c-format
 msgid "Unrecognized launch option: %d"
 msgstr "Neatpazīta palaišanas opcija: %d"
 
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1375
 msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
 msgstr "Nevar padot dokumenta URI uz 'Tips=Saite' darbvirsmas ierakstu"
 
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1396
 msgid "Not a launchable item"
 msgstr "Nav palaižams elements"
 
@@ -1241,15 +1224,56 @@ msgid "ID"
 msgstr "ID"
 
 #: src/libeggsmclient/eggsmclient.c:253
-#, fuzzy
 msgid "Session management options:"
-msgstr "Sesiju pārvaldīšanas opcijas"
+msgstr "Sesiju pārvaldīšanas opcijas:"
 
 #: src/libeggsmclient/eggsmclient.c:254
-#, fuzzy
 msgid "Show session management options"
 msgstr "Parādīt sesiju pārvaldīšanas opcijas"
 
+#~ msgid "Replay Gain"
+#~ msgstr "Normalizēšana"
+
+#~ msgid "<b>Bit Depth</b>"
+#~ msgstr "<b>Bitu dziļums</b>"
+
+#~ msgid ""
+#~ "All streams will be converted to this bit depth.\n"
+#~ "This should be the max supported bit depth of\n"
+#~ "the sound card or output plugin."
+#~ msgstr ""
+#~ "Visas straumes tiks pārveidotas uz šo bitu dziļumu.\n"
+#~ "Tas būtu jāuzstāda uz lielāko bitu dziļuma vērtību,\n"
+#~ "ko atbalsta jūsu skaņas karte vai izvades spraudnis."
+
+#~ msgid "<b>Volume Control</b>"
+#~ msgstr "<b>Skaļuma kontrole</b>"
+
+#~ msgid ""
+#~ "Use software volume control. This may be useful for situations where your "
+#~ "audio system does not support controlling the playback volume."
+#~ msgstr ""
+#~ "Lietot programmatūras skaļuma kontroli. Tas var noderēt situācijās, kad "
+#~ "jūsu skaņas sistēma neatbalsta atskaņošanas skaļuma kontroli."
+
+#~ msgid "<b>Mode</b>"
+#~ msgstr "<b>Režīms</b>"
+
+#~ msgid "<b>Clipping Prevention</b>"
+#~ msgstr "<b>Apgriešanas novēršana</b>"
+
+#~ msgid "Enable clipping prevention"
+#~ msgstr "Ieslēgt apgriešanas novēršanu"
+
+#~ msgid "<b>Audio System</b>"
+#~ msgstr "<b>Skaņas sistēma</b>"
+
+#~ msgid "Current output plugin:"
+#~ msgstr "Pašreizējais izvades spraudnis:"
+
+#~ msgid "Display all open Audacious windows"
+#~ msgstr "Rādīt visus atvērtos Audacious logus"
+
 #~ msgid ""
 #~ "Running multiple instances of Audacious can lead to corrupted "
 #~ "configuration files.  If Audacious is not already running, or if you want "
@@ -1827,9 +1851,6 @@ msgstr "Parādīt sesiju pārvaldīšanas opcijas"
 #~ msgid "No input plugin recognized this file"
 #~ msgstr "Neviens ievades spraudnis neatpazina Å¡o failu"
 
-#~ msgid "Input plugin: %s"
-#~ msgstr "Ievades spraudnis: %s"
-
 #~ msgid ""
 #~ "<b><big>No output plugin selected.</big></b>\n"
 #~ "You have not selected an output plugin."
@@ -1872,9 +1893,6 @@ msgstr "Parādīt sesiju pārvaldīšanas opcijas"
 #~ "Tas būtu jāuzstāda uz lielāko iztveršanas tempa vērtību, ko atbalsta jūsu "
 #~ "skaņas karte vai izvades spraudnis.</span>"
 
-#~ msgid "<b>Format Detection</b>"
-#~ msgstr "<b>Formāta noteikšana</b>"
-
 #~ msgid "Detect file formats by extension."
 #~ msgstr "Noteikt failu formātus pēc paplašinājuma."
 
@@ -2007,9 +2025,6 @@ msgstr "Parādīt sesiju pārvaldīšanas opcijas"
 #~ msgid "Can't jump to time when no track is being played.\n"
 #~ msgstr "Nevar pāriet uz noteiktu laiku, ja nekas netiek atskaņots.\n"
 
-#~ msgid "Jump to Time"
-#~ msgstr "Pāriet uz laiku"
-
 #~ msgid "minutes:seconds"
 #~ msgstr "minūtes:sekundes"
 
diff --git a/po/mk.po b/po/mk.po
index 8b4270b..b9ee33d 100644
--- a/po/mk.po
+++ b/po/mk.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: mk\n"
 "Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
+"POT-Creation-Date: 2011-07-05 22:45+0200\n"
 "PO-Revision-Date: 2007-04-29 22:25+0200\n"
 "Last-Translator: Jovan Naumovski <jovan at lugola.net>\n"
 "Language-Team: Macedonian <ossm-members at hedona.on.net.mk>\n"
@@ -18,6 +18,17 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: KBabel 1.11.4\n"
 
+#: src/audacious/adder.c:71
+msgid "Searching ..."
+msgstr ""
+
+#: src/audacious/adder.c:99
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] ""
+msgstr[1] ""
+
 #: src/audacious/chardet.c:37
 msgid "  (invalid UTF-8)"
 msgstr "  (невалиден UTF-8)"
@@ -104,113 +115,113 @@ msgstr "Романски:"
 msgid "Finnish:"
 msgstr "Фински:"
 
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:220
 msgid "French:"
 msgstr "Француски:"
 
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:226
 msgid "German:"
 msgstr "Германски:"
 
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:233
 msgid "Georgian:"
 msgstr "Грузиски:"
 
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:236
 msgid "Greek:"
 msgstr "Грчки:"
 
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:241
 msgid "Hindi:"
 msgstr "Хинди:"
 
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:244
 msgid "Hungarian:"
 msgstr "Унгарски:"
 
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:248
 msgid "Italian:"
 msgstr "Италијански:"
 
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:252
 msgid "Japanese:"
 msgstr "Јапонски:"
 
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:255
 msgid "Korean:"
 msgstr "Корејски:"
 
-#: src/audacious/credits.c:256
+#: src/audacious/credits.c:258
 #, fuzzy
 msgid "Latvian:"
 msgstr "Хрватски:"
 
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:261
 msgid "Lithuanian:"
 msgstr "Литвански:"
 
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:265
 msgid "Macedonian:"
 msgstr "Македонски:"
 
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:268
 msgid "Polish:"
 msgstr "Полски:"
 
-#: src/audacious/credits.c:271
+#: src/audacious/credits.c:274
 #, fuzzy
 msgid "Portuguese:"
 msgstr "Бразилско-португалски:"
 
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:277
 msgid "Romanian:"
 msgstr "Романски:"
 
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:281
 msgid "Russian:"
 msgstr "Руски:"
 
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:285
 msgid "Serbian (Latin):"
 msgstr "Српски (Латиница):"
 
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:288
 msgid "Serbian (Cyrillic):"
 msgstr "Српски (Кирилица):"
 
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:291
 msgid "Simplified Chinese:"
 msgstr "Поедноставен кинески:"
 
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:294
 msgid "Slovak:"
 msgstr "Словачки:"
 
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:297
 msgid "Spanish:"
 msgstr "Шпански:"
 
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:304
 msgid "Swedish:"
 msgstr "Шведски:"
 
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:307
 msgid "Traditional Chinese:"
 msgstr "Традиционален кинески:"
 
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:312
 msgid "Turkish:"
 msgstr "Турски:"
 
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:316
 msgid "Ukrainian:"
 msgstr "Украински:"
 
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:319
 msgid "Welsh:"
 msgstr "Велшки:"
 
-#: src/audacious/drct.c:254
+#: src/audacious/drct.c:256
 #, fuzzy
 msgid "Temporary Playlist"
 msgstr "Вчитај плеј листа"
@@ -220,80 +231,65 @@ msgstr "Вчитај плеј листа"
 msgid "Error importing Winamp EQF file '%s'"
 msgstr ""
 
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr ""
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/audacious/main.c:247
+#: src/audacious/main.c:256
 msgid "Skip backwards in playlist"
 msgstr "Скокни назад на листата"
 
-#: src/audacious/main.c:248
+#: src/audacious/main.c:257
 msgid "Start playing current playlist"
 msgstr "Пушти ја тековната листа"
 
-#: src/audacious/main.c:249
+#: src/audacious/main.c:258
 msgid "Pause current song"
 msgstr "Паузирај ја оваа песна"
 
-#: src/audacious/main.c:250
+#: src/audacious/main.c:259
 msgid "Stop current song"
 msgstr "Стопирај ја оваа песна"
 
-#: src/audacious/main.c:251
+#: src/audacious/main.c:260
 msgid "Pause if playing, play otherwise"
 msgstr "Паузирај ако е пуштена, инаку пушти"
 
-#: src/audacious/main.c:252
+#: src/audacious/main.c:261
 msgid "Skip forward in playlist"
 msgstr "Скокни напред на листата"
 
-#: src/audacious/main.c:253
+#: src/audacious/main.c:262
 msgid "Display Jump to File dialog"
 msgstr "Прикажи го дијалог прозорецот „Оди до датотека“"
 
-#: src/audacious/main.c:254
+#: src/audacious/main.c:263
 #, fuzzy
 msgid "Add files to the playlist"
 msgstr "Додава датотеки во плеј листата."
 
-#: src/audacious/main.c:255
+#: src/audacious/main.c:264
 msgid "Add new files to a temporary playlist"
 msgstr "Додај нови датотеки во привремена плеј листа"
 
-#: src/audacious/main.c:256
+#: src/audacious/main.c:265
 msgid "Display the main window"
 msgstr "Прикажи го главниот прозорец"
 
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr "Прикажи ги сите отворени прозорци на Audacious"
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:266
 #, fuzzy
 msgid "Show version"
 msgstr "Покажи го пуштачот"
 
-#: src/audacious/main.c:259
+#: src/audacious/main.c:267
 msgid "Print debugging messages"
 msgstr ""
 
-#: src/audacious/main.c:260
+#: src/audacious/main.c:268
 msgid "FILE..."
 msgstr "ДАТОТЕКА..."
 
-#: src/audacious/main.c:272
+#: src/audacious/main.c:280
 msgid "- play multimedia files"
 msgstr "- пушти мултимедијални датотеки"
 
-#: src/audacious/main.c:282
+#: src/audacious/main.c:290
 #, c-format
 msgid ""
 "%s: %s\n"
@@ -302,7 +298,7 @@ msgstr ""
 "%s: %s\n"
 "Обидете се `%s --help' за повеќе информации.\n"
 
-#: src/audacious/main.c:395
+#: src/audacious/main.c:407
 msgid ""
 "Audacious seems to be already running but is not responding.  You can start "
 "another instance of the program, but please be warned that this can cause "
@@ -310,266 +306,243 @@ msgid ""
 "message.  Press OK to start Audacious or Cancel to quit."
 msgstr ""
 
-#: src/audacious/main.c:558
+#: src/audacious/main.c:572
 msgid "Audacious"
 msgstr "Audacious"
 
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:381
 #, c-format
 msgid "No decoder found for %s."
 msgstr ""
 
-#: src/audacious/playback.c:519
+#: src/audacious/playback.c:531
 msgid "Buffering ..."
 msgstr ""
 
-#: src/audacious/playlist-new.c:288
+#: src/audacious/playlist-new.c:303
 #, fuzzy
 msgid "Untitled Playlist"
 msgstr "Нова плеј листа"
 
-#: src/audacious/ui_preferences.c:88
+#: src/audacious/ui_preferences.c:87
 msgid "Audio"
 msgstr "Аудио"
 
-#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:88
 msgid "Network"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:89 src/audacious/ui_preferences.c:1556
 msgid "Playlist"
 msgstr "Плеј листа"
 
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:90
 msgid "Plugins"
 msgstr "Додатоци"
 
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:204
 msgid "Artist"
 msgstr "Изведувач"
 
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:97 src/libaudgui/infopopup.c:206
 msgid "Album"
 msgstr "Албум"
 
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:202
+#: src/libaudgui/ui_playlist_manager.c:263
 msgid "Title"
 msgstr "Наслов"
 
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:99
 msgid "Tracknumber"
 msgstr "Број на песната"
 
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:208
 msgid "Genre"
 msgstr "Вид"
 
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:101
 msgid "Filename"
 msgstr "Име на датотека"
 
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:102
 msgid "Filepath"
 msgstr "Патека на датотеката"
 
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:103
 msgid "Date"
 msgstr "Датум"
 
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:104 src/libaudgui/infopopup.c:210
 msgid "Year"
 msgstr "Година"
 
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:105
 msgid "Comment"
 msgstr "Коментар"
 
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:106
 msgid "Codec"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:107
 #, fuzzy
 msgid "Quality"
 msgstr "_Излез"
 
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:112
 msgid "None"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:115
+#: src/audacious/ui_preferences.c:113
 #, fuzzy
 msgid "Japanese"
 msgstr "Јапонски:"
 
-#: src/audacious/ui_preferences.c:116
+#: src/audacious/ui_preferences.c:114
 #, fuzzy
 msgid "Taiwanese"
 msgstr "Јапонски:"
 
-#: src/audacious/ui_preferences.c:117
+#: src/audacious/ui_preferences.c:115
 #, fuzzy
 msgid "Chinese"
 msgstr "Линии"
 
-#: src/audacious/ui_preferences.c:118
+#: src/audacious/ui_preferences.c:116
 #, fuzzy
 msgid "Korean"
 msgstr "Корејски:"
 
-#: src/audacious/ui_preferences.c:119
+#: src/audacious/ui_preferences.c:117
 #, fuzzy
 msgid "Russian"
 msgstr "Руски:"
 
-#: src/audacious/ui_preferences.c:120
+#: src/audacious/ui_preferences.c:118
 #, fuzzy
 msgid "Greek"
 msgstr "Грчки:"
 
-#: src/audacious/ui_preferences.c:121
+#: src/audacious/ui_preferences.c:119
 msgid "Hebrew"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:122
+#: src/audacious/ui_preferences.c:120
 #, fuzzy
 msgid "Turkish"
 msgstr "Турски:"
 
-#: src/audacious/ui_preferences.c:123
+#: src/audacious/ui_preferences.c:121
 msgid "Arabic"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:124
+#: src/audacious/ui_preferences.c:122
 #, fuzzy
 msgid "Polish"
 msgstr "Полски:"
 
-#: src/audacious/ui_preferences.c:125
+#: src/audacious/ui_preferences.c:123
 msgid "Baltic"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:126
+#: src/audacious/ui_preferences.c:124
 msgid "Universal"
 msgstr ""
 
 #: src/audacious/ui_preferences.c:146
 #, fuzzy
-msgid "<b>Bit Depth</b>"
-msgstr "<b> Име на датотека</b>"
+msgid "Single track mode"
+msgstr "Види детали за песна"
 
 #: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
+#, fuzzy
+msgid "Album mode"
+msgstr "Име на албум: "
 
-#: src/audacious/ui_preferences.c:151
+#: src/audacious/ui_preferences.c:150
 #, fuzzy
-msgid "<b>Volume Control</b>"
-msgstr "<b>Тркалцето на глушецот</b>"
+msgid "<b>Output Settings</b>"
+msgstr "<b>Откривање на формат</b>"
 
 #: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr ""
+#, fuzzy
+msgid "Bit depth:"
+msgstr "<b> Име на датотека</b>"
 
-#: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
+#: src/audacious/ui_preferences.c:155
+msgid "Buffer size:"
+msgstr "Бафер големина:"
 
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
+#: src/audacious/ui_preferences.c:157
+msgid "ms"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
+#: src/audacious/ui_preferences.c:158
+msgid "Use software volume control (not recommended)"
 msgstr ""
 
 #: src/audacious/ui_preferences.c:160
 #, fuzzy
-msgid "Amplify untagged files:"
-msgstr "- пушти мултимедијални датотеки"
-
-#: src/audacious/ui_preferences.c:164
-#, fuzzy
 msgid "<b>Replay Gain</b>"
 msgstr "<b>Конфигурација на прокси</b>"
 
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:161
 #, fuzzy
 msgid "Enable Replay Gain"
 msgstr "Овозможи употреба на прокси"
 
-#: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>Мета податоци</b>"
-
-#: src/audacious/ui_preferences.c:168
-#, fuzzy
-msgid "Single track mode"
-msgstr "Види детали за песна"
-
-#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "Име на албум: "
+#: src/audacious/ui_preferences.c:164
+msgid "Prevent clipping (recommended)"
+msgstr ""
 
-#: src/audacious/ui_preferences.c:172
+#: src/audacious/ui_preferences.c:166
 #, fuzzy
 msgid "<b>Adjust Levels</b>"
 msgstr "<b>Тркалцето на глушецот</b>"
 
-#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "<b>Информации во скокачки прозорец</b>"
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify all files:"
+msgstr ""
 
-#: src/audacious/ui_preferences.c:176
-msgid "Enable clipping prevention"
+#: src/audacious/ui_preferences.c:169 src/audacious/ui_preferences.c:172
+msgid "dB"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:170
+#, fuzzy
+msgid "Amplify untagged files:"
+msgstr "- пушти мултимедијални датотеки"
+
+#: src/audacious/ui_preferences.c:175
 msgid "Proxy hostname:"
 msgstr "Име на хост на прокси:"
 
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:176
 msgid "Proxy port:"
 msgstr "Порта за прокси:"
 
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:179
 msgid "Proxy username:"
 msgstr "Корисничко име на проксито:"
 
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:180
 msgid "Proxy password:"
 msgstr "Лозинка на проксито:"
 
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:184
 msgid "<b>Proxy Configuration</b>"
 msgstr "<b>Конфигурација на прокси</b>"
 
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:185
 msgid "Enable proxy usage"
 msgstr "Овозможи употреба на прокси"
 
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:187
 msgid "Use authentication with proxy"
 msgstr "Користи проверка на автентичност со прокси"
 
-#: src/audacious/ui_preferences.c:197
+#: src/audacious/ui_preferences.c:189
 msgid ""
 "<span size=\"small\">Changing these settings will require a restart of "
 "Audacious.</span>"
@@ -577,15 +550,15 @@ msgstr ""
 "<span size=\"small\">Промената на тие поставувања ќе бара рестартирање "
 "наAudacious.</span>"
 
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
 msgid "Auto character encoding detector for:"
 msgstr "Откривач на автоматско енкодирање на знаци за:"
 
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
 msgid "Fallback character encodings:"
 msgstr "Помошни енкодирања на знаци:"
 
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
 msgid ""
 "List of character encodings used for fall back conversion of metadata. If "
 "automatic character encoding detector failed or has been disabled, encodings "
@@ -598,46 +571,46 @@ msgstr ""
 "енкодирање на мета податоците и ќе се направи обид за конверзија на овие "
 "енкодирања во UTF-8."
 
-#: src/audacious/ui_preferences.c:213
+#: src/audacious/ui_preferences.c:205
 #, fuzzy
 msgid "<b>Behavior</b>"
 msgstr "<b> Име на датотека</b>"
 
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:206
 msgid "Continue playback on startup"
 msgstr "Продолжи со пуштањето по стартување"
 
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:208
 msgid "Advance when the current song is deleted"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:218
+#: src/audacious/ui_preferences.c:210
 #, fuzzy
 msgid "Clear the playlist when opening files"
 msgstr "Креирај нова плеј листа со совпаѓачките записи"
 
-#: src/audacious/ui_preferences.c:220
+#: src/audacious/ui_preferences.c:212
 #, fuzzy
 msgid "Open files in a temporary playlist"
 msgstr "Додај нови датотеки во привремена плеј листа"
 
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:214
 msgid "<b>Metadata</b>"
 msgstr "<b>Мета податоци</b>"
 
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:454
 msgid "Category"
 msgstr "Категорија"
 
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:682
 msgid "Popup Information Settings"
 msgstr "Поставувања на информациите во скокачки прозорци"
 
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:691
 msgid "<b>Cover image retrieve</b>"
 msgstr "<b>Добивање на слика од албумот</b>"
 
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:696
 msgid ""
 "While searching for the album's cover, Audacious looks for certain words in "
 "the filename. You can specify those words in the lists below, separated "
@@ -647,100 +620,100 @@ msgstr ""
 "датотеката. Можете да ги одредите тие зборови во листата подолу, одделени со "
 "запирки."
 
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:713
 msgid "Exclude:"
 msgstr "Исклучи:"
 
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:720
 msgid "Include:"
 msgstr "Вклучи:"
 
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:737
 msgid "Recursively search for cover"
 msgstr "Рекурзивно пребарувај слики од пакувања"
 
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:747
 msgid "Search depth: "
 msgstr "Длабочина на барањето:"
 
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:761
 msgid "Use per-file cover"
 msgstr "Овозможи слики од пакувања по датотеки"
 
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:764
 msgid "<b>Miscellaneous</b>"
 msgstr "<b>Разно</b>"
 
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:773
 msgid "Show Progress bar for the current track"
 msgstr "Прикажи лента за напредок на тековната песна"
 
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:783
 msgid "Delay until filepopup comes up: "
 msgstr "Задржи додека скокачкиот прозорец за датотека не се појави: "
 
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1283
 msgid "<b>Song Display</b>"
 msgstr "<b>Приказ на песни</b>"
 
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1292
 msgid "Show song numbers"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1303
 msgid "Show leading zeroes (02:00 instead of 2:00)"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1325
 msgid "Show information about titlestring format"
 msgstr "Покажи информации за форматот на насловот"
 
-#: src/audacious/ui_preferences.c:1514
+#: src/audacious/ui_preferences.c:1339
 msgid "TITLE"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1515
+#: src/audacious/ui_preferences.c:1340
 msgid "ARTIST - TITLE"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1516
+#: src/audacious/ui_preferences.c:1341
 msgid "ARTIST - ALBUM - TITLE"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1517
+#: src/audacious/ui_preferences.c:1342
 msgid "ARTIST - ALBUM - TRACK. TITLE"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1518
+#: src/audacious/ui_preferences.c:1343
 msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1519
+#: src/audacious/ui_preferences.c:1344
 msgid "ALBUM - TITLE"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1520
+#: src/audacious/ui_preferences.c:1345
 #, fuzzy
 msgid "Custom"
 msgstr "Сопствен стринг:"
 
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1354
 msgid "Custom string:"
 msgstr "Сопствен стринг:"
 
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1361
 msgid "Title format:"
 msgstr "Формат на наслов:"
 
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1372
 msgid "<b>Popup Information</b>"
 msgstr "<b>Информации во скокачки прозорец</b>"
 
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1387
 msgid "Show popup information for playlist entries"
 msgstr "Прикажи информации во скокачки прозорец за записите од плеј листата"
 
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1388
 msgid ""
 "Toggles popup information window for the pointed entry in the playlist. The "
 "window shows title of song, name of album, genre, year of publish, track "
@@ -750,54 +723,47 @@ msgstr ""
 "листата. Прозорецот покажува наслов од песната, име на албумот, жанр, година "
 "на издавање, број на песна, должина на песната и слики."
 
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1397
 msgid "Edit settings for popup information"
 msgstr "Уреди ги поставувањата за скокачките информации"
 
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>Аудио систем</b>"
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "Бафер големина:"
-
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
-msgstr "Тековен излезен додаток:"
+#: src/audacious/ui_preferences.c:1497
+#, fuzzy
+msgid "Output plugin:"
+msgstr "Влезен додаток: %s"
 
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
 #, fuzzy
 msgid "Transport"
 msgstr "Преведувачи"
 
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
 msgid "Input"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
 #, fuzzy
 msgid "Effect"
 msgstr "<b>Ефекти</b>"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
 msgid "Visualization"
 msgstr "Визуелизација"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
 msgid "General"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1597
 msgid "Audacious Preferences"
 msgstr "Преференции на Audacious"
 
-#: src/audacious/util.c:161
+#: src/audacious/util.c:155
 #, c-format
 msgid "Could not create directory (%s): %s\n"
 msgstr "Не можам да го креирам директориумот (%s): %s\n"
 
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:264
 msgid "Position not found."
 msgstr ""
 
@@ -816,22 +782,24 @@ msgstr "стерео"
 
 #: src/libaudcore/tuple.c:689
 #, c-format
-msgid "%d channels"
-msgstr ""
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] ""
+msgstr[1] ""
 
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/confirm.c:73
 #, c-format
 msgid ""
 "Are you sure you want to close %s?  If you do, any changes made since the "
 "playlist was exported will be lost."
 msgstr ""
 
-#: src/libaudgui/confirm.c:77
+#: src/libaudgui/confirm.c:86
 #, fuzzy
 msgid "_Don't show this message again"
 msgstr "Не го прикажувај предупредувањето повеќе"
 
-#: src/libaudgui/confirm.c:115
+#: src/libaudgui/confirm.c:124
 #, fuzzy
 msgid "Rename Playlist"
 msgstr "Зачувај плеј листа"
@@ -893,11 +861,11 @@ msgstr "Изедначувач"
 msgid "Preamp"
 msgstr ""
 
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:212
 msgid "Track Number"
 msgstr "Број на песна"
 
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:214
 msgid "Track Length"
 msgstr "Должина на песна"
 
@@ -1133,6 +1101,29 @@ msgstr ""
 msgid "No info available for %s.\n"
 msgstr ""
 
+#: src/libaudgui/jump-to-time.c:75
+msgid "Jump to Time"
+msgstr "Скокни до време"
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr ""
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Export Playlist"
+msgstr "Вчитај плеј листа"
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Import Playlist"
+msgstr "Вчитај плеј листа"
+
+#: src/libaudgui/playlists.c:71
+#, c-format
+msgid "Overwrite %s?"
+msgstr ""
+
 #: src/libaudgui/ui_about.c:71
 msgid "About Audacious"
 msgstr "За Audacious"
@@ -1195,19 +1186,19 @@ msgstr "Исчисти A-B"
 msgid "Close on Jump"
 msgstr "Затвори дијалог на отворање"
 
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:240
 msgid "Playlist Manager"
 msgstr "Менаџер на плеј листи"
 
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:264
 msgid "Entries"
 msgstr "Записи"
 
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:285
 msgid "_Rename"
 msgstr "_Преименувај"
 
-#: src/libaudgui/ui_playlist_manager.c:251
+#: src/libaudgui/ui_playlist_manager.c:309
 #, fuzzy
 msgid "_Close dialog on activating playlist"
 msgstr "Затвори дијалог на отворање"
@@ -1220,6 +1211,12 @@ msgstr ""
 msgid "Add URL"
 msgstr ""
 
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+
 #: src/libeggsmclient/eggdesktopfile.c:165
 msgid "File is not a valid .desktop file"
 msgstr ""
@@ -1229,25 +1226,25 @@ msgstr ""
 msgid "Unrecognized desktop file Version '%s'"
 msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:967
 #, c-format
 msgid "Starting %s"
 msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1108
 msgid "Application does not accept documents on command line"
 msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1176
 #, c-format
 msgid "Unrecognized launch option: %d"
 msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1375
 msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
 msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1396
 msgid "Not a launchable item"
 msgstr ""
 
@@ -1282,6 +1279,27 @@ msgstr "Прикажи декорации од менаџерот на проз
 msgid "Show session management options"
 msgstr "Прикажи декорации од менаџерот на прозорци"
 
+#, fuzzy
+#~ msgid "<b>Volume Control</b>"
+#~ msgstr "<b>Тркалцето на глушецот</b>"
+
+#, fuzzy
+#~ msgid "<b>Mode</b>"
+#~ msgstr "<b>Мета податоци</b>"
+
+#, fuzzy
+#~ msgid "<b>Clipping Prevention</b>"
+#~ msgstr "<b>Информации во скокачки прозорец</b>"
+
+#~ msgid "<b>Audio System</b>"
+#~ msgstr "<b>Аудио систем</b>"
+
+#~ msgid "Current output plugin:"
+#~ msgstr "Тековен излезен додаток:"
+
+#~ msgid "Display all open Audacious windows"
+#~ msgstr "Прикажи ги сите отворени прозорци на Audacious"
+
 #~ msgid "%s: Unable to open display, exiting.\n"
 #~ msgstr "%s: Не можам да го отворам приказот, напуштам.\n"
 
@@ -1507,9 +1525,6 @@ msgstr "Прикажи декорации од менаџерот на проз
 #~ msgid "No input plugin recognized this file"
 #~ msgstr "Ниеден влезен додаток не ја препоознава оваа датотека"
 
-#~ msgid "Input plugin: %s"
-#~ msgstr "Влезен додаток: %s"
-
 #~ msgid ""
 #~ "<b><big>No output plugin selected.</big></b>\n"
 #~ "You have not selected an output plugin."
@@ -1520,9 +1535,6 @@ msgstr "Прикажи декорации од менаџерот на проз
 #~ msgid "Connectivity"
 #~ msgstr "Поврзливост"
 
-#~ msgid "<b>Format Detection</b>"
-#~ msgstr "<b>Откривање на формат</b>"
-
 #~ msgid "Detect file formats by extension."
 #~ msgstr "Откривај ги форматите на датотеките по екстензија."
 
@@ -1566,9 +1578,6 @@ msgstr "Прикажи декорации од менаџерот на проз
 #~ msgid "Load metadata (tag information) from music files."
 #~ msgstr "Вчитај податоци (информации за таг) од музички датотеки."
 
-#~ msgid "Jump to Time"
-#~ msgstr "Скокни до време"
-
 #~ msgid "minutes:seconds"
 #~ msgstr "минути:секунди"
 
diff --git a/po/nl.po b/po/nl.po
index 4a55ecd..8b89bdb 100644
--- a/po/nl.po
+++ b/po/nl.po
@@ -1,29 +1,41 @@
 # Dutch translation for Audacious
-# Copyright (C) 2004 Laurens Buhler <masterpe at xs4all.nl>
-# Copyright (C) 2006 Tony Vroon <chainsaw at gentoo.org>
+# Copyright (C) Audacious translators
 # This file is distributed under the same license as the Audacious package.
 #
+# Translators:
+#   <glenn_de_groot at hotmail.com>, 2012.
 msgid ""
 msgstr ""
-"Project-Id-Version: nl\n"
-"Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
-"PO-Revision-Date: 2006-11-16 20:02+0100\n"
-"Last-Translator: Tony Vroon <chainsaw at gentoo.org>\n"
-"Language-Team: (not responsive)\n"
-"Language: \n"
+"Project-Id-Version: Audacious\n"
+"Report-Msgid-Bugs-To: http://redmine.audacious-media-player.org/\n"
+"POT-Creation-Date: 2011-12-29 19:27-0500\n"
+"PO-Revision-Date: 2012-01-08 08:24+0000\n"
+"Last-Translator: Glennz <glenn_de_groot at hotmail.com>\n"
+"Language-Team: Dutch\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=iso-8859-15\n"
+"Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Language: nl\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
 
-#: src/audacious/chardet.c:37
+#: src/audacious/adder.c:77
+msgid "Searching ..."
+msgstr "Zoeken..."
+
+#: src/audacious/adder.c:113
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] ""
+msgstr[1] ""
+
+#: src/audacious/chardet.c:39
 msgid "  (invalid UTF-8)"
 msgstr "  (ongeldige UTF-8)"
 
 #: src/audacious/credits.c:35
-#, fuzzy
 msgid "Core developers:"
-msgstr "0.1.x ontwikkelaars:"
+msgstr "Hoofdontwikkelaars:"
 
 #: src/audacious/credits.c:49
 msgid "Graphics:"
@@ -41,612 +53,531 @@ msgstr "Plugin-ontwikkeling:"
 msgid "Patch authors:"
 msgstr "Patches aangeleverd door:"
 
-#: src/audacious/credits.c:126
-#, fuzzy
+#: src/audacious/credits.c:127
 msgid "1.x developers:"
-msgstr "0.1.x ontwikkelaars:"
+msgstr "1.x ontwikkelaars:"
 
-#: src/audacious/credits.c:148
+#: src/audacious/credits.c:149
 msgid "BMP Developers:"
 msgstr "BMP ontwikkelaars:"
 
-#: src/audacious/credits.c:180
-#, fuzzy
+#: src/audacious/credits.c:181
 msgid "Belarusian:"
-msgstr "Hongaars:"
+msgstr "Wit-Russisch:"
 
-#: src/audacious/credits.c:183
+#: src/audacious/credits.c:184
 msgid "Basque:"
-msgstr ""
+msgstr "Baskisch:"
 
-#: src/audacious/credits.c:186
+#: src/audacious/credits.c:187
 msgid "Brazilian Portuguese:"
 msgstr "Braziliaans Portugees:"
 
-#: src/audacious/credits.c:190
+#: src/audacious/credits.c:192
 msgid "Breton:"
 msgstr "Bretons:"
 
-#: src/audacious/credits.c:193
-#, fuzzy
+#: src/audacious/credits.c:195
 msgid "Bulgarian:"
-msgstr "Hongaars:"
+msgstr "Bulgaars:"
 
-#: src/audacious/credits.c:196
-#, fuzzy
+#: src/audacious/credits.c:198
 msgid "Catalan:"
-msgstr "Italiaans:"
+msgstr "Catalaans:"
 
-#: src/audacious/credits.c:199
-#, fuzzy
+#: src/audacious/credits.c:202
 msgid "Chinese:"
 msgstr "Chinees:"
 
-#: src/audacious/credits.c:202
-#, fuzzy
+#: src/audacious/credits.c:205
 msgid "Croatian:"
-msgstr "Roemeens:"
+msgstr "Kroatisch:"
 
-#: src/audacious/credits.c:205
+#: src/audacious/credits.c:208
 msgid "Czech:"
 msgstr "Tjechisch:"
 
-#: src/audacious/credits.c:208
+#: src/audacious/credits.c:211
 msgid "Dutch:"
 msgstr "Nederlands:"
 
-#: src/audacious/credits.c:212
-#, fuzzy
+#: src/audacious/credits.c:215
 msgid "Estonian:"
-msgstr "Roemeens:"
+msgstr "Estisch:"
 
-#: src/audacious/credits.c:215
+#: src/audacious/credits.c:218
 msgid "Finnish:"
 msgstr "Fins:"
 
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:223
 msgid "French:"
 msgstr "Frans:"
 
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:229
 msgid "German:"
 msgstr "Duits:"
 
-#: src/audacious/credits.c:231
-#, fuzzy
+#: src/audacious/credits.c:236
 msgid "Georgian:"
 msgstr "Georgisch:"
 
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:239
 msgid "Greek:"
 msgstr "Grieks:"
 
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:244
 msgid "Hindi:"
 msgstr "Hindi:"
 
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:247
 msgid "Hungarian:"
 msgstr "Hongaars:"
 
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:251
 msgid "Italian:"
 msgstr "Italiaans:"
 
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:256
 msgid "Japanese:"
 msgstr "Japans:"
 
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:259
 msgid "Korean:"
 msgstr "Koreaans:"
 
-#: src/audacious/credits.c:256
-#, fuzzy
+#: src/audacious/credits.c:262
 msgid "Latvian:"
-msgstr "Roemeens:"
+msgstr "Lets:"
 
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:265
 msgid "Lithuanian:"
 msgstr "Lets:"
 
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:270
 msgid "Macedonian:"
 msgstr "Macedonisch:"
 
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:273
 msgid "Polish:"
 msgstr "Pools:"
 
-#: src/audacious/credits.c:271
-#, fuzzy
+#: src/audacious/credits.c:279
 msgid "Portuguese:"
-msgstr "Braziliaans Portugees:"
+msgstr "Portugees:"
 
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:282
 msgid "Romanian:"
 msgstr "Roemeens:"
 
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:286
 msgid "Russian:"
 msgstr "Russisch:"
 
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:290
 msgid "Serbian (Latin):"
-msgstr ""
+msgstr "Servisch (Latijn):"
 
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:293
 msgid "Serbian (Cyrillic):"
-msgstr ""
+msgstr "Servisch (Cyrillisch):"
 
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:297
 msgid "Simplified Chinese:"
-msgstr ""
+msgstr "Vereenvoudigd Chinees:"
 
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:300
 msgid "Slovak:"
 msgstr "Slowaaks:"
 
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:303
 msgid "Spanish:"
 msgstr "Spaans:"
 
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:311
 msgid "Swedish:"
 msgstr "Zweeds:"
 
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:314
 msgid "Traditional Chinese:"
-msgstr ""
+msgstr "Traditioneel Chinees:"
 
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:320
 msgid "Turkish:"
-msgstr ""
+msgstr "Turks:"
 
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:324
 msgid "Ukrainian:"
 msgstr "Ukrainees:"
 
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:328
+msgid "Vietnamese:"
+msgstr "Vietnamees:"
+
+#: src/audacious/credits.c:331
 msgid "Welsh:"
 msgstr "Welsh:"
 
-#: src/audacious/drct.c:254
-#, fuzzy
-msgid "Temporary Playlist"
-msgstr "Afspeellijst laden"
-
-#: src/audacious/equalizer_preset.c:186
+#: src/audacious/equalizer_preset.c:180
 #, c-format
 msgid "Error importing Winamp EQF file '%s'"
 msgstr ""
 
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr ""
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] ""
-msgstr[1] ""
-
-#  -r, --rew switch
-#: src/audacious/main.c:247
+#: src/audacious/main.c:243
 msgid "Skip backwards in playlist"
 msgstr "Ga terug in de speellijst"
 
-#  -p, --play switch
-#: src/audacious/main.c:248
+#: src/audacious/main.c:244
 msgid "Start playing current playlist"
 msgstr "Begin de huidige speellijst af te spelen"
 
-#  -u, --pause switch
-#: src/audacious/main.c:249
+#: src/audacious/main.c:245
 msgid "Pause current song"
 msgstr "Pauzeer huidig nummer"
 
-#  -s, --stop switch
-#: src/audacious/main.c:250
+#: src/audacious/main.c:246
 msgid "Stop current song"
 msgstr "Stop huidig nummer"
 
-#  -t, --play-pause switch
-#: src/audacious/main.c:251
+#: src/audacious/main.c:247
 msgid "Pause if playing, play otherwise"
 msgstr "Pauzeer tijdens spelen, anders afspelen"
 
-#  -f, --fwd switch
-#: src/audacious/main.c:252
+#: src/audacious/main.c:248
 msgid "Skip forward in playlist"
 msgstr "Ga vooruit in de speellijst"
 
-#: src/audacious/main.c:253
-#, fuzzy
+#: src/audacious/main.c:249
 msgid "Display Jump to File dialog"
-msgstr "Spring-naar-bestand dialoog weergeven"
+msgstr ""
 
-#  -e, --enqueue switch
-#: src/audacious/main.c:254
-#, fuzzy
+#: src/audacious/main.c:250
 msgid "Add files to the playlist"
-msgstr "Speellijst niet wissen"
+msgstr "Voeg bestanden toe aan de afspeellijst"
 
-#  -e, --enqueue switch
-#: src/audacious/main.c:255
-#, fuzzy
+#: src/audacious/main.c:251
 msgid "Add new files to a temporary playlist"
-msgstr "Speellijst niet wissen"
+msgstr ""
 
-#  -m, --show-main-window switch
-#: src/audacious/main.c:256
-#, fuzzy
+#: src/audacious/main.c:252
 msgid "Display the main window"
-msgstr "Geef het hoofdvenster weer"
-
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
 msgstr ""
 
-#: src/audacious/main.c:258
-#, fuzzy
+#: src/audacious/main.c:253
 msgid "Show version"
-msgstr "Sp/eler weergeven"
+msgstr "Toon de versie"
 
-#: src/audacious/main.c:259
+#: src/audacious/main.c:254
 msgid "Print debugging messages"
 msgstr ""
 
-#: src/audacious/main.c:260
-msgid "FILE..."
+#: src/audacious/main.c:255
+msgid "Headless mode (beta)"
 msgstr ""
 
-#: src/audacious/main.c:272
+#: src/audacious/main.c:256
+msgid "FILE..."
+msgstr "BESTAND..."
+
+#: src/audacious/main.c:268
 msgid "- play multimedia files"
-msgstr ""
+msgstr "- speel multimedia bestanden af"
 
-#: src/audacious/main.c:282
+#: src/audacious/main.c:278
 #, c-format
 msgid ""
 "%s: %s\n"
 "Try `%s --help' for more information.\n"
 msgstr ""
 
-#: src/audacious/main.c:395
-msgid ""
-"Audacious seems to be already running but is not responding.  You can start "
-"another instance of the program, but please be warned that this can cause "
-"data loss.  If Audacious is not running, you can safely ignore this "
-"message.  Press OK to start Audacious or Cancel to quit."
-msgstr ""
-
-#: src/audacious/main.c:558
+#: src/audacious/main.c:572
 msgid "Audacious"
 msgstr "Audacious"
 
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:307
 #, c-format
 msgid "No decoder found for %s."
 msgstr ""
 
-#: src/audacious/playback.c:519
-msgid "Buffering ..."
-msgstr ""
+#: src/audacious/playlist-new.c:131
+msgid "New Playlist"
+msgstr "Nieuwe afspeellijst"
 
-#: src/audacious/playlist-new.c:288
-#, fuzzy
-msgid "Untitled Playlist"
-msgstr "Afspeellijst opslaan"
+#: src/audacious/playlist-new.c:132
+msgid "Now Playing"
+msgstr "Nu aan het afspelen"
 
-#: src/audacious/ui_preferences.c:88
+#: src/audacious/playlist-new.c:1627
+msgid ""
+"The playlist cannot be sorted because metadata scanning is still in progress"
+" (or has been disabled)."
+msgstr ""
+
+#: src/audacious/ui_preferences.c:85
 msgid "Audio"
 msgstr "Geluid"
 
-#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:86
 msgid "Network"
-msgstr ""
+msgstr "Netwerk"
 
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:87 src/audacious/ui_preferences.c:1603
 msgid "Playlist"
 msgstr "Speellijst"
 
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:88
 msgid "Plugins"
 msgstr "Plugins"
 
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:94 src/libaudgui/infopopup.c:203
 msgid "Artist"
 msgstr "Artiest"
 
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:95 src/libaudgui/infopopup.c:205
 msgid "Album"
 msgstr "Album"
 
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:201
+#: src/libaudgui/ui_playlist_manager.c:279
 msgid "Title"
 msgstr "Titel"
 
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:97
 msgid "Tracknumber"
 msgstr "Nummer"
 
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:207
 msgid "Genre"
 msgstr "Genre"
 
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:99
 msgid "Filename"
 msgstr "Bestandsnaam"
 
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:100
 msgid "Filepath"
 msgstr "Bestandslocatie"
 
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:101
 msgid "Date"
 msgstr "Datum"
 
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:209
 msgid "Year"
 msgstr "Jaar"
 
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:103
 msgid "Comment"
 msgstr "Opmerking"
 
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:104
 msgid "Codec"
-msgstr ""
+msgstr "Codec"
 
-#: src/audacious/ui_preferences.c:109
-#, fuzzy
+#: src/audacious/ui_preferences.c:105
 msgid "Quality"
-msgstr "/_Afsluiten"
+msgstr "Kwaliteit"
 
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:111
 msgid "None"
-msgstr ""
+msgstr "Geen"
+
+#: src/audacious/ui_preferences.c:112
+msgid "Arabic"
+msgstr "Arabisch"
+
+#: src/audacious/ui_preferences.c:113
+msgid "Baltic"
+msgstr "Baltisch"
+
+#: src/audacious/ui_preferences.c:114
+msgid "Chinese"
+msgstr "Chinees"
 
 #: src/audacious/ui_preferences.c:115
-#, fuzzy
-msgid "Japanese"
-msgstr "Japans:"
+msgid "Greek"
+msgstr "Grieks"
 
 #: src/audacious/ui_preferences.c:116
-#, fuzzy
-msgid "Taiwanese"
-msgstr "Japans:"
+msgid "Hebrew"
+msgstr "Hebreeuws"
 
 #: src/audacious/ui_preferences.c:117
-#, fuzzy
-msgid "Chinese"
-msgstr "Chinees:"
+msgid "Japanese"
+msgstr "Japans"
 
 #: src/audacious/ui_preferences.c:118
-#, fuzzy
 msgid "Korean"
-msgstr "Koreaans:"
+msgstr "Koreaans"
 
 #: src/audacious/ui_preferences.c:119
-#, fuzzy
-msgid "Russian"
-msgstr "Russisch:"
+msgid "Polish"
+msgstr "Pools"
 
 #: src/audacious/ui_preferences.c:120
-#, fuzzy
-msgid "Greek"
-msgstr "Grieks:"
+msgid "Russian"
+msgstr "Russisch"
 
 #: src/audacious/ui_preferences.c:121
-msgid "Hebrew"
-msgstr ""
+msgid "Taiwanese"
+msgstr "Taiwanees"
 
 #: src/audacious/ui_preferences.c:122
 msgid "Turkish"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:123
-msgid "Arabic"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:124
-#, fuzzy
-msgid "Polish"
-msgstr "Pools:"
-
-#: src/audacious/ui_preferences.c:125
-msgid "Baltic"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:126
-msgid "Universal"
-msgstr ""
+msgstr "Turks"
 
-#: src/audacious/ui_preferences.c:146
-#, fuzzy
-msgid "<b>Bit Depth</b>"
-msgstr "<i>Titel</i>"
+#: src/audacious/ui_preferences.c:144
+msgid "Album mode"
+msgstr "Album modus"
 
 #: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
+msgid "<b>Output Settings</b>"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
+#: src/audacious/ui_preferences.c:149
+msgid "Bit depth:"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:151
-#, fuzzy
-msgid "<b>Volume Control</b>"
-msgstr "<b>Muiswiel</b>"
-
 #: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr ""
+msgid "Buffer size:"
+msgstr "Bufferomvang:"
 
 #: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
+msgid "ms"
+msgstr "ms"
+
+#: src/audacious/ui_preferences.c:155
+msgid "Use software volume control (not recommended)"
+msgstr "Gebruik de software volumeregelaar (niet aangeraden)"
+
+#: src/audacious/ui_preferences.c:157
+msgid "<b>Replay Gain</b>"
 msgstr ""
 
 #: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
+msgid "Enable Replay Gain"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
+#: src/audacious/ui_preferences.c:161
+msgid "Prevent clipping (recommended)"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:160
-msgid "Amplify untagged files:"
+#: src/audacious/ui_preferences.c:163
+msgid "<b>Adjust Levels</b>"
 msgstr ""
 
 #: src/audacious/ui_preferences.c:164
-#, fuzzy
-msgid "<b>Replay Gain</b>"
-msgstr "<b>Proxy-configuratie</b>"
+msgid "Amplify all files:"
+msgstr ""
 
-#: src/audacious/ui_preferences.c:165
-#, fuzzy
-msgid "Enable Replay Gain"
-msgstr "Proxy gebruiken"
+#: src/audacious/ui_preferences.c:166 src/audacious/ui_preferences.c:169
+msgid "dB"
+msgstr "dB"
 
 #: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>Metadata</b>"
-
-#: src/audacious/ui_preferences.c:168
-#, fuzzy
-msgid "Single track mode"
-msgstr "/Nummer details weergeven"
-
-#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "Album"
-
-#: src/audacious/ui_preferences.c:172
-#, fuzzy
-msgid "<b>Adjust Levels</b>"
-msgstr "<b>Muiswiel</b>"
-
-#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "<b>Popup-informatie</b>"
-
-#: src/audacious/ui_preferences.c:176
-msgid "Enable clipping prevention"
+msgid "Amplify untagged files:"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:172
 msgid "Proxy hostname:"
 msgstr "Proxy-hostnaam:"
 
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:173
 msgid "Proxy port:"
 msgstr "Proxy-poort:"
 
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:176
 msgid "Proxy username:"
 msgstr "Proxy-gebruikersnaam:"
 
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:177
 msgid "Proxy password:"
 msgstr "Proxy-wachtwoord:"
 
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:181
 msgid "<b>Proxy Configuration</b>"
 msgstr "<b>Proxy-configuratie</b>"
 
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:182
 msgid "Enable proxy usage"
 msgstr "Proxy gebruiken"
 
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:185
 msgid "Use authentication with proxy"
 msgstr "Gebruik authenticatie voor proxy"
 
-#: src/audacious/ui_preferences.c:197
-msgid ""
-"<span size=\"small\">Changing these settings will require a restart of "
-"Audacious.</span>"
-msgstr ""
-"<span size=\"small\">Het aanpassen van deze instellingen vereist een "
-"herstart van Audacious.</span>"
-
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
 msgid "Auto character encoding detector for:"
 msgstr "Automatische karakter-encoding detector ingeschakeld voor:"
 
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:198
 msgid "Fallback character encodings:"
 msgstr "Terugvallen op karakter-encodings:"
 
-#: src/audacious/ui_preferences.c:209
-msgid ""
-"List of character encodings used for fall back conversion of metadata. If "
-"automatic character encoding detector failed or has been disabled, encodings "
-"in this list would be treated as candidates of the encoding of metadata, and "
-"fall back conversion from these encodings to UTF-8 would be attempted."
-msgstr ""
-"Lijst van karakter-encodings welke voor conversie van metadata worden "
-"gebruikt (hier wordt op teruggevallen als automatische detectie faalt of is "
-"uitgeschakeld)."
-
-#: src/audacious/ui_preferences.c:213
-#, fuzzy
+#: src/audacious/ui_preferences.c:202
 msgid "<b>Behavior</b>"
-msgstr "<i>Titel</i>"
+msgstr "<b>Gedrag</b>"
 
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:203
 msgid "Continue playback on startup"
 msgstr "Afspeelpositie onthouden"
 
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:205
 msgid "Advance when the current song is deleted"
-msgstr ""
+msgstr "Ga verder wanneer het huidige liedje is verwijderd"
 
-#: src/audacious/ui_preferences.c:218
-#, fuzzy
+#: src/audacious/ui_preferences.c:207
 msgid "Clear the playlist when opening files"
-msgstr "/Lijst sorteren/Op volgorde afspeellijst"
+msgstr "Wis de afspeellijst wanneer bestanden worden geopend"
 
-#  -e, --enqueue switch
-#: src/audacious/ui_preferences.c:220
-#, fuzzy
+#: src/audacious/ui_preferences.c:209
 msgid "Open files in a temporary playlist"
-msgstr "Speellijst niet wissen"
+msgstr ""
 
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:211
 msgid "<b>Metadata</b>"
 msgstr "<b>Metadata</b>"
 
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:212
+msgid "Do not load metadata for songs until played"
+msgstr ""
+
+#: src/audacious/ui_preferences.c:230
+msgid "TITLE"
+msgstr "TITEL"
+
+#: src/audacious/ui_preferences.c:231
+msgid "ARTIST - TITLE"
+msgstr "ARTIEST - TITEL"
+
+#: src/audacious/ui_preferences.c:232
+msgid "ARTIST - ALBUM - TITLE"
+msgstr "ARTIEST - ALBUM -TITEL"
+
+#: src/audacious/ui_preferences.c:233
+msgid "ARTIST - ALBUM - TRACK. TITLE"
+msgstr "ARTIEST - ALBUM - NUMMER. TITEL"
+
+#: src/audacious/ui_preferences.c:234
+msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
+msgstr "ARTIEST [ ALBUM ] - NUMMER. TITEL"
+
+#: src/audacious/ui_preferences.c:235
+msgid "ALBUM - TITLE"
+msgstr "ALBUM - TITEL"
+
+#: src/audacious/ui_preferences.c:556
 msgid "Category"
 msgstr "Categorie"
 
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:780
 msgid "Popup Information Settings"
 msgstr "Instellingen van popup-informatie"
 
-#: src/audacious/ui_preferences.c:824
-#, fuzzy
+#: src/audacious/ui_preferences.c:789
 msgid "<b>Cover image retrieve</b>"
-msgstr "<b>Formaat-detectie</b>"
+msgstr ""
 
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:794
 msgid ""
 "While searching for the album's cover, Audacious looks for certain words in "
 "the filename. You can specify those words in the lists below, separated "
@@ -656,101 +587,75 @@ msgstr ""
 "bestandsnaam gekeken. Deze woorden kunnen hier worden opgegeven, gescheiden "
 "door komma's."
 
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:811
 msgid "Exclude:"
 msgstr "Uitsluiten:"
 
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:818
 msgid "Include:"
 msgstr "Zoeken naar:"
 
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:835
 msgid "Recursively search for cover"
 msgstr "Recursief zoeken naar covers"
 
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:845
 msgid "Search depth: "
 msgstr "Zoekdiepte: "
 
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:859
 msgid "Use per-file cover"
 msgstr "Cover per bestand"
 
-#: src/audacious/ui_preferences.c:897
-#, fuzzy
+#: src/audacious/ui_preferences.c:862
 msgid "<b>Miscellaneous</b>"
-msgstr "<b>_Diversen</b>"
+msgstr ""
 
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:871
 msgid "Show Progress bar for the current track"
-msgstr ""
+msgstr "Toon voortgangsbalk voor het huidige nummer"
 
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:881
 msgid "Delay until filepopup comes up: "
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1309
+msgid "Custom"
+msgstr "Aangepast"
+
+#: src/audacious/ui_preferences.c:1352
 msgid "<b>Song Display</b>"
 msgstr "<b>Nummer weergave</b>"
 
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1361
 msgid "Show song numbers"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1372
 msgid "Show leading zeroes (02:00 instead of 2:00)"
-msgstr ""
+msgstr "Toon leidende nullen (02:00 in plaats van 2:00)"
 
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1394
 msgid "Show information about titlestring format"
 msgstr "Geef informatie over het titelformaat"
 
-#: src/audacious/ui_preferences.c:1514
-msgid "TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1515
-msgid "ARTIST - TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1516
-msgid "ARTIST - ALBUM - TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1517
-msgid "ARTIST - ALBUM - TRACK. TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1518
-msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1519
-msgid "ALBUM - TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1520
-#, fuzzy
-msgid "Custom"
-msgstr "Handmatige instelling:"
-
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1410
 msgid "Custom string:"
 msgstr "Handmatige instelling:"
 
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1417
 msgid "Title format:"
 msgstr "Titelformaat:"
 
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1428
 msgid "<b>Popup Information</b>"
 msgstr "<b>Popup-informatie</b>"
 
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1443
 msgid "Show popup information for playlist entries"
 msgstr "Popup-informatie tonen voor items in afspeellijst"
 
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1444
 msgid ""
 "Toggles popup information window for the pointed entry in the playlist. The "
 "window shows title of song, name of album, genre, year of publish, track "
@@ -761,396 +666,403 @@ msgstr ""
 "het album, het genre, het jaar van publicatie, tracknummer en eventuele "
 "cover art."
 
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1455
 msgid "Edit settings for popup information"
 msgstr "Instellingen aanpassen voor popup-informatie"
 
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>Geluidssysteem</b>"
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "Bufferomvang:"
-
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
-msgstr "Huidige uitvoer-plugin:"
+#: src/audacious/ui_preferences.c:1544
+msgid "Output plugin:"
+msgstr "Uitvoer plugin"
 
-#: src/audacious/ui_preferences.c:1790
-#, fuzzy
+#: src/audacious/ui_preferences.c:1603
 msgid "Transport"
-msgstr "Vertalers"
+msgstr ""
 
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1603
 msgid "Input"
-msgstr ""
+msgstr "Invoer"
 
-#: src/audacious/ui_preferences.c:1791
-#, fuzzy
+#: src/audacious/ui_preferences.c:1604
 msgid "Effect"
-msgstr "<b>Effecten</b>"
+msgstr "Effect"
 
-#: src/audacious/ui_preferences.c:1791
-#, fuzzy
+#: src/audacious/ui_preferences.c:1604
 msgid "Visualization"
-msgstr "/Visualisatie"
+msgstr "Visualisatie "
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1604
 msgid "General"
-msgstr ""
+msgstr "Algemeen"
 
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1644
 msgid "Audacious Preferences"
 msgstr "Audacious voorkeuren"
 
-#: src/audacious/util.c:161
-#, fuzzy, c-format
+#: src/audacious/util.c:120
+#, c-format
 msgid "Could not create directory (%s): %s\n"
-msgstr "Kon de map (%s) niet aanmaken: %s"
+msgstr ""
 
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:273
 msgid "Position not found."
 msgstr ""
 
-#: src/audtool/handlers_vitals.c:64
+#: src/audtool/handlers_vitals.c:63
 msgid "No song playing."
 msgstr ""
 
-#: src/libaudcore/tuple.c:685
+#: src/libaudcore/audstrings.c:194
+#, c-format
+msgid "Audio CD, track %s"
+msgstr "Audio CD, nummer %s"
+
+#: src/libaudcore/tuple.c:536
 msgid "Mono"
-msgstr ""
+msgstr "Mono"
 
-#: src/libaudcore/tuple.c:687
-#, fuzzy
+#: src/libaudcore/tuple.c:538
 msgid "Stereo"
-msgstr "stereo"
+msgstr "Stereo"
 
-#: src/libaudcore/tuple.c:689
+#: src/libaudcore/tuple.c:540
 #, c-format
-msgid "%d channels"
-msgstr ""
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] ""
+msgstr[1] ""
 
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/confirm.c:78
 #, c-format
 msgid ""
 "Are you sure you want to close %s?  If you do, any changes made since the "
 "playlist was exported will be lost."
 msgstr ""
 
-#: src/libaudgui/confirm.c:77
-#, fuzzy
+#: src/libaudgui/confirm.c:91
 msgid "_Don't show this message again"
-msgstr "Deze waarschuwing niet meer weergeven"
+msgstr "_Toon dit bericht niet opnieuw"
 
-#: src/libaudgui/confirm.c:115
-#, fuzzy
+#: src/libaudgui/confirm.c:128
 msgid "Rename Playlist"
-msgstr "Afspeellijst opslaan"
+msgstr "Afspeellijst hernoemen"
 
 #: src/libaudgui/effects-menu.c:76
 msgid "settings ..."
-msgstr ""
+msgstr "instellingen ..."
 
-#: src/libaudgui/equalizer.c:68
-#, fuzzy
+#: src/libaudgui/equalizer.c:53
 msgid "_Enable"
-msgstr "Actief"
+msgstr "_Inschakelen"
 
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:125
 msgid "31 Hz"
-msgstr ""
+msgstr "31 Hz"
 
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:125
 msgid "63 Hz"
-msgstr ""
+msgstr "63 Hz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:126
 msgid "125 Hz"
-msgstr ""
+msgstr "125 Hz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:126
 msgid "250 Hz"
-msgstr ""
+msgstr "250 Hz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:126
 msgid "500 Hz"
-msgstr ""
+msgstr "500 Hz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:126
 msgid "1 kHz"
-msgstr ""
+msgstr "1 kHz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:126
 msgid "2 kHz"
-msgstr ""
+msgstr "2 kHz"
 
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:127
 msgid "4 kHz"
-msgstr ""
+msgstr "4 kHz"
 
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:127
 msgid "8 kHz"
-msgstr ""
+msgstr "8 kHz"
 
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:127
 msgid "16 kHz"
-msgstr ""
+msgstr "16 kHz"
 
-#: src/libaudgui/equalizer.c:147
+#: src/libaudgui/equalizer.c:132
 msgid "Equalizer"
 msgstr "Equalizer"
 
-#: src/libaudgui/equalizer.c:163
+#: src/libaudgui/equalizer.c:148
 msgid "Preamp"
 msgstr ""
 
-#: src/libaudgui/infopopup.c:249
-#, fuzzy
+#: src/libaudgui/infopopup.c:211
 msgid "Track Number"
-msgstr "Nummer"
+msgstr ""
 
-#: src/libaudgui/infopopup.c:251
-#, fuzzy
+#: src/libaudgui/infopopup.c:213
 msgid "Track Length"
-msgstr "Duur:"
-
-#: src/libaudgui/infowin.c:77
-msgid "Acid Jazz"
 msgstr ""
 
 #: src/libaudgui/infowin.c:78
-msgid "Acid Rock"
-msgstr ""
+msgid "Acid Jazz"
+msgstr "Acid Jazz"
 
 #: src/libaudgui/infowin.c:79
-msgid "Ambient"
-msgstr ""
+msgid "Acid Rock"
+msgstr "Acid Rock"
 
 #: src/libaudgui/infowin.c:80
-msgid "Bebop"
-msgstr ""
+msgid "Ambient"
+msgstr "Ambient"
 
 #: src/libaudgui/infowin.c:81
-msgid "Bluegrass"
-msgstr ""
+msgid "Bebop"
+msgstr "Bebop"
 
 #: src/libaudgui/infowin.c:82
-#, fuzzy
-msgid "Blues"
-msgstr "regels"
+msgid "Bluegrass"
+msgstr "Bluegrass"
 
 #: src/libaudgui/infowin.c:83
-msgid "Chamber Music"
-msgstr ""
+msgid "Blues"
+msgstr "Blues"
 
 #: src/libaudgui/infowin.c:84
-msgid "Classical"
-msgstr ""
+msgid "Chamber Music"
+msgstr "Kamermuziek"
 
 #: src/libaudgui/infowin.c:85
-msgid "Country"
-msgstr ""
+msgid "Classical"
+msgstr "Klassiek"
 
 #: src/libaudgui/infowin.c:86
-msgid "Death Metal"
-msgstr ""
+msgid "Country"
+msgstr "Country"
 
 #: src/libaudgui/infowin.c:87
-msgid "Disco"
-msgstr ""
+msgid "Death Metal"
+msgstr "Death Metal"
 
 #: src/libaudgui/infowin.c:88
-msgid "Easy Listening"
-msgstr ""
+msgid "Disco"
+msgstr "Disco"
 
 #: src/libaudgui/infowin.c:89
-msgid "Folk"
-msgstr ""
+msgid "Easy Listening"
+msgstr "Easy Listening"
 
 #: src/libaudgui/infowin.c:90
-msgid "Funk"
-msgstr ""
+msgid "Folk"
+msgstr "Folk"
 
 #: src/libaudgui/infowin.c:91
-msgid "Gangsta Rap"
-msgstr ""
+msgid "Funk"
+msgstr "Funk"
 
 #: src/libaudgui/infowin.c:92
-msgid "Gospel"
-msgstr ""
+msgid "Gangsta Rap"
+msgstr "Gangsta Rap"
 
 #: src/libaudgui/infowin.c:93
-msgid "Grunge"
-msgstr ""
+msgid "Gospel"
+msgstr "Gospel"
 
 #: src/libaudgui/infowin.c:94
-msgid "Hard Rock"
-msgstr ""
+msgid "Grunge"
+msgstr "Grunge"
 
 #: src/libaudgui/infowin.c:95
-msgid "Heavy Metal"
-msgstr ""
+msgid "Hard Rock"
+msgstr "Hard Rock"
 
 #: src/libaudgui/infowin.c:96
-msgid "Hip-hop"
-msgstr ""
+msgid "Heavy Metal"
+msgstr "Heavy Metal"
 
 #: src/libaudgui/infowin.c:97
-#, fuzzy
-msgid "House"
-msgstr "Muis"
+msgid "Hip-hop"
+msgstr "Hip-hop "
 
 #: src/libaudgui/infowin.c:98
-msgid "Jazz"
-msgstr ""
+msgid "House"
+msgstr "House"
 
 #: src/libaudgui/infowin.c:99
-msgid "Jungle"
-msgstr ""
+msgid "Jazz"
+msgstr "Jazz"
 
 #: src/libaudgui/infowin.c:100
-msgid "Metal"
-msgstr ""
+msgid "Jungle"
+msgstr "Jungle"
 
 #: src/libaudgui/infowin.c:101
-msgid "New Age"
-msgstr ""
+msgid "Metal"
+msgstr "Metal"
 
 #: src/libaudgui/infowin.c:102
-msgid "New Wave"
-msgstr ""
+msgid "New Age"
+msgstr "New Age"
 
 #: src/libaudgui/infowin.c:103
-#, fuzzy
-msgid "Noise"
-msgstr "Muis"
+msgid "New Wave"
+msgstr "New Wave"
 
 #: src/libaudgui/infowin.c:104
-msgid "Pop"
-msgstr ""
+msgid "Noise"
+msgstr "Noise"
 
 #: src/libaudgui/infowin.c:105
-msgid "Punk Rock"
-msgstr ""
+msgid "Pop"
+msgstr "Pop"
 
 #: src/libaudgui/infowin.c:106
-msgid "Rap"
-msgstr ""
+msgid "Punk Rock"
+msgstr "Punk Rock"
 
 #: src/libaudgui/infowin.c:107
-#, fuzzy
-msgid "Reggae"
-msgstr "Bestandsnaam"
+msgid "Rap"
+msgstr "Rap"
 
 #: src/libaudgui/infowin.c:108
-msgid "Rock"
-msgstr ""
+msgid "Reggae"
+msgstr "Reggae"
 
 #: src/libaudgui/infowin.c:109
-msgid "Rock and Roll"
-msgstr ""
+msgid "Rock"
+msgstr "Rock"
 
 #: src/libaudgui/infowin.c:110
-msgid "Rhythm and Blues"
-msgstr ""
+msgid "Rock and Roll"
+msgstr "Rock and Roll"
 
 #: src/libaudgui/infowin.c:111
-msgid "Ska"
-msgstr ""
+msgid "Rhythm and Blues"
+msgstr "Rhythm-and-Blues"
 
 #: src/libaudgui/infowin.c:112
-msgid "Soul"
-msgstr ""
+msgid "Ska"
+msgstr "Ska"
 
 #: src/libaudgui/infowin.c:113
-msgid "Swing"
-msgstr ""
+msgid "Soul"
+msgstr "Soul"
 
 #: src/libaudgui/infowin.c:114
-msgid "Techno"
-msgstr ""
+msgid "Swing"
+msgstr "Swing"
 
 #: src/libaudgui/infowin.c:115
+msgid "Techno"
+msgstr "Techno"
+
+#: src/libaudgui/infowin.c:116
 msgid "Trip-hop"
-msgstr ""
+msgstr "Trip-hop"
 
-#: src/libaudgui/infowin.c:175 src/libaudgui/infowin.c:361
-#: src/libaudgui/infowin.c:364 src/libaudgui/infowin.c:367
-#, fuzzy
+#: src/libaudgui/infowin.c:180 src/libaudgui/infowin.c:366
+#: src/libaudgui/infowin.c:369 src/libaudgui/infowin.c:372
 msgid "<span size=\"small\">n/a</span>"
-msgstr "<span size=\"small\">Jaar</span>"
+msgstr ""
 
-#: src/libaudgui/infowin.c:265
+#: src/libaudgui/infowin.c:270
 msgid "Metadata updated successfully"
 msgstr ""
 
-#: src/libaudgui/infowin.c:270
+#: src/libaudgui/infowin.c:275
 msgid "Metadata updating failed"
 msgstr ""
 
-#: src/libaudgui/infowin.c:318
+#: src/libaudgui/infowin.c:323
 msgid "Track Information"
 msgstr "Nummer-informatie:"
 
-#: src/libaudgui/infowin.c:350
-#, fuzzy
+#: src/libaudgui/infowin.c:355
 msgid "<span size=\"small\">Format:</span>"
-msgstr "<span size=\"small\">Commentaar</span>"
+msgstr ""
 
-#: src/libaudgui/infowin.c:354
-#, fuzzy
+#: src/libaudgui/infowin.c:359
 msgid "<span size=\"small\">Quality:</span>"
-msgstr "<span size=\"small\">Titel</span>"
+msgstr ""
 
-#: src/libaudgui/infowin.c:357
-#, fuzzy
+#: src/libaudgui/infowin.c:362
 msgid "<span size=\"small\">Bitrate:</span>"
-msgstr "<span size=\"small\">Commentaar</span>"
+msgstr ""
 
-#: src/libaudgui/infowin.c:387
+#: src/libaudgui/infowin.c:392
 msgid "<span size=\"small\">Title</span>"
 msgstr "<span size=\"small\">Titel</span>"
 
-#: src/libaudgui/infowin.c:399
+#: src/libaudgui/infowin.c:404
 msgid "<span size=\"small\">Artist</span>"
 msgstr "<span size=\"small\">Artiest</span>"
 
-#: src/libaudgui/infowin.c:411
+#: src/libaudgui/infowin.c:416
 msgid "<span size=\"small\">Album</span>"
 msgstr "<span size=\"small\">Album</span>"
 
-#: src/libaudgui/infowin.c:423
+#: src/libaudgui/infowin.c:428
 msgid "<span size=\"small\">Comment</span>"
 msgstr "<span size=\"small\">Commentaar</span>"
 
-#: src/libaudgui/infowin.c:435
+#: src/libaudgui/infowin.c:440
 msgid "<span size=\"small\">Genre</span>"
 msgstr "<span size=\"small\">Genre</span>"
 
-#: src/libaudgui/infowin.c:456
+#: src/libaudgui/infowin.c:461
 msgid "<span size=\"small\">Year</span>"
 msgstr "<span size=\"small\">Jaar</span>"
 
-#: src/libaudgui/infowin.c:467
+#: src/libaudgui/infowin.c:472
 msgid "<span size=\"small\">Track Number</span>"
 msgstr "<span size=\"small\">Nummer</span>"
 
-#: src/libaudgui/infowin.c:549
+#: src/libaudgui/infowin.c:551
 #, c-format
 msgid "%d kb/s"
 msgstr ""
 
-#: src/libaudgui/infowin.c:579
+#: src/libaudgui/infowin.c:578
 #, c-format
 msgid "No info available for %s.\n"
 msgstr ""
 
-#: src/libaudgui/ui_about.c:71
+#: src/libaudgui/jump-to-time.c:75
+msgid "Jump to Time"
+msgstr "Ga naar tijd"
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr ""
+
+#: src/libaudgui/playlists.c:39
+msgid "Export Playlist"
+msgstr ""
+
+#: src/libaudgui/playlists.c:39
+msgid "Import Playlist"
+msgstr ""
+
+#: src/libaudgui/playlists.c:72
+#, c-format
+msgid "Overwrite %s?"
+msgstr ""
+
+#: src/libaudgui/queue-manager.c:198
+msgid "Queue Manager"
+msgstr ""
+
+#: src/libaudgui/ui_about.c:69
 msgid "About Audacious"
 msgstr "Over Audacious"
 
-#: src/libaudgui/ui_about.c:93 src/libaudgui/ui_credits.c:122
+#: src/libaudgui/ui_about.c:90 src/libaudgui/ui_credits.c:122
 msgid "Credits"
 msgstr "Met dank aan"
 
@@ -1174,96 +1086,97 @@ msgstr "Sluit venster bij openen"
 msgid "Close dialog on Add"
 msgstr "Sluit venster bij toevoegen"
 
-#: src/libaudgui/ui_jumptotrack.c:133
-msgid "Un_queue"
-msgstr "_Uit wachtrij verwijderen"
-
-#: src/libaudgui/ui_jumptotrack.c:135 src/libaudgui/ui_jumptotrack.c:512
+#: src/libaudgui/ui_jumptotrack.c:112 src/libaudgui/ui_jumptotrack.c:120
+#: src/libaudgui/ui_jumptotrack.c:329
 msgid "_Queue"
 msgstr "_In wachtrij plaatsen"
 
-#: src/libaudgui/ui_jumptotrack.c:399
-msgid "Jump to Track"
-msgstr "Ga naar nummer"
+#: src/libaudgui/ui_jumptotrack.c:118
+msgid "Un_queue"
+msgstr "_Uit wachtrij verwijderen"
+
+#: src/libaudgui/ui_jumptotrack.c:261
+msgid "Jump to Song"
+msgstr ""
 
-#: src/libaudgui/ui_jumptotrack.c:442
+#: src/libaudgui/ui_jumptotrack.c:284
 msgid "Filter: "
 msgstr "Filter: "
 
-#: src/libaudgui/ui_jumptotrack.c:443
-#, fuzzy
+#: src/libaudgui/ui_jumptotrack.c:285
 msgid "_Filter:"
-msgstr "Filter: "
+msgstr "_Filter:"
 
-#: src/libaudgui/ui_jumptotrack.c:461
+#: src/libaudgui/ui_jumptotrack.c:295
 msgid "Remember"
-msgstr ""
+msgstr "Onthouden"
 
-#: src/libaudgui/ui_jumptotrack.c:470
-#, fuzzy
+#: src/libaudgui/ui_jumptotrack.c:302
 msgid "Clea_r"
-msgstr "A-B /wissen"
+msgstr "Wis_sen"
 
-#: src/libaudgui/ui_jumptotrack.c:504
-#, fuzzy
+#: src/libaudgui/ui_jumptotrack.c:322
 msgid "Close on Jump"
-msgstr "Sluit venster bij openen"
+msgstr ""
 
-#: src/libaudgui/ui_playlist_manager.c:185
-#, fuzzy
+#: src/libaudgui/ui_playlist_manager.c:253
 msgid "Playlist Manager"
-msgstr "/Niet vooruitlopen in de speellijst"
+msgstr ""
 
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:280
 msgid "Entries"
 msgstr ""
 
-#: src/libaudgui/ui_playlist_manager.c:227
-#, fuzzy
+#: src/libaudgui/ui_playlist_manager.c:301
 msgid "_Rename"
-msgstr "Bestandsnaam"
+msgstr "_Hernoemen"
 
-#: src/libaudgui/ui_playlist_manager.c:251
-#, fuzzy
+#: src/libaudgui/ui_playlist_manager.c:325
 msgid "_Close dialog on activating playlist"
-msgstr "Sluit venster bij openen"
+msgstr ""
 
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:51
 msgid "Open URL"
-msgstr ""
+msgstr "Open URL"
 
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:51
 msgid "Add URL"
+msgstr "Voeg URL toe"
+
+#: src/libaudgui/util.c:97
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
 msgstr ""
 
 #: src/libeggsmclient/eggdesktopfile.c:165
 msgid "File is not a valid .desktop file"
 msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:188
-#, fuzzy, c-format
+#: src/libeggsmclient/eggdesktopfile.c:191
+#, c-format
 msgid "Unrecognized desktop file Version '%s'"
-msgstr "%s: onbekende optie `--%s'\n"
+msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:974
 #, c-format
 msgid "Starting %s"
-msgstr ""
+msgstr "Starten %s"
 
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1116
 msgid "Application does not accept documents on command line"
 msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:1178
-#, fuzzy, c-format
+#: src/libeggsmclient/eggdesktopfile.c:1184
+#, c-format
 msgid "Unrecognized launch option: %d"
-msgstr "%s: onbekende optie `--%s'\n"
+msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1391
 msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
 msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1412
 msgid "Not a launchable item"
 msgstr ""
 
@@ -1277,7 +1190,7 @@ msgstr ""
 
 #: src/libeggsmclient/eggsmclient.c:229
 msgid "FILE"
-msgstr ""
+msgstr "BESTAND"
 
 #: src/libeggsmclient/eggsmclient.c:232
 msgid "Specify session management ID"
@@ -1288,1689 +1201,11 @@ msgid "ID"
 msgstr ""
 
 #: src/libeggsmclient/eggsmclient.c:253
-#, fuzzy
 msgid "Session management options:"
-msgstr "Toon vensterdecoraties"
+msgstr ""
 
 #: src/libeggsmclient/eggsmclient.c:254
-#, fuzzy
 msgid "Show session management options"
-msgstr "Toon vensterdecoraties"
-
-#, fuzzy
-#~ msgid "%s: Unable to open display, exiting.\n"
-#~ msgstr ""
-#~ "audacious: Kan het venster niet openen, het programma sluit nu af.\n"
-
-#, fuzzy
-#~ msgid "Default gain:"
-#~ msgstr "Standaard skin:"
-
-#, fuzzy
-#~ msgid "Track gain/peak"
-#~ msgstr "Titel"
-
-#, fuzzy
-#~ msgid "Dance"
-#~ msgstr "Datum"
-
-#, fuzzy
-#~ msgid "Oldies"
-#~ msgstr "regels"
-
-#, fuzzy
-#~ msgid "Pranks"
-#~ msgstr "/Pause"
-
-#, fuzzy
-#~ msgid "Fusion"
-#~ msgstr "Russisch:"
-
-#, fuzzy
-#~ msgid "Trance"
-#~ msgstr "Uiterlijk"
-
-#, fuzzy
-#~ msgid "Space"
-#~ msgstr "/Opslaan"
-
-#, fuzzy
-#~ msgid "Comedy"
-#~ msgstr "Opmerking"
-
-#, fuzzy
-#~ msgid "Cult"
-#~ msgstr "Handmatige instelling:"
-
-#, fuzzy
-#~ msgid "Rave"
-#~ msgstr "/Opslaan"
-
-#, fuzzy
-#~ msgid "Trailer"
-#~ msgstr "Titel"
-
-#, fuzzy
-#~ msgid "Polka"
-#~ msgstr "/Afspelen"
-
-#, fuzzy
-#~ msgid "Retro"
-#~ msgstr "stereo"
-
-#, fuzzy
-#~ msgid "Latin"
-#~ msgstr "Italiaans:"
-
-#, fuzzy
-#~ msgid "Primus"
-#~ msgstr "/Vorige"
-
-#, fuzzy
-#~ msgid "Satire"
-#~ msgstr "/Opslaan"
-
-#, fuzzy
-#~ msgid "Duet"
-#~ msgstr "Nederlands:"
-
-#, fuzzy
-#~ msgid "Club-House"
-#~ msgstr "Muis"
-
-#, fuzzy
-#~ msgid "Terror"
-#~ msgstr "stereo"
-
-#, fuzzy
-#~ msgid "Indie"
-#~ msgstr "Zoeken naar:"
-
-#, fuzzy
-#~ msgid "BritPop"
-#~ msgstr "Artiest Popup"
-
-#, fuzzy
-#~ msgid "Beat"
-#~ msgstr "/Herhalen"
-
-#, fuzzy
-#~ msgid "Synthpop"
-#~ msgstr "/Stop"
-
-#, fuzzy
-#~ msgid ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "An audio player for many platforms.\n"
-#~ "Copyright (C) 2005-2011 Audacious Development Team"
-#~ msgstr ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "De toekomst van UNIX multimedia.\n"
-#~ "\n"
-#~ "Copyright (C) 2005-2006 Audacious ontwikkelteam\n"
-
-#~ msgid "Unable to create log file (%s)!\n"
-#~ msgstr "Kon logbestand niet aanmaken (%s)!\n"
-
-#, fuzzy
-#~ msgid "Playback"
-#~ msgstr "/A_fspelen"
-
-#~ msgid "<b>Playback</b>"
-#~ msgstr "<b>Afspelen</b>"
-
-#~ msgid ""
-#~ "When Audacious starts, automatically begin playing from the point where "
-#~ "we stopped before."
-#~ msgstr ""
-#~ "Wanneer Audacious gestart wordt zal afspelen hervatten van dezelfde "
-#~ "positie als waar het bij het afsluiten stopte."
-
-#  -e, --enqueue switch
-#~ msgid "Don't advance in the playlist"
-#~ msgstr "Niet vooruitlopen in de speellijst"
-
-#~ msgid ""
-#~ "When finished playing a song, don't automatically advance to the next."
-#~ msgstr ""
-#~ "Ga niet automatisch naar het volgende nummer, wanneer het huidige nummer "
-#~ "is afgelopen."
-
-#~ msgid "Enabled"
-#~ msgstr "Actief"
-
-#~ msgid "Description"
-#~ msgstr "Beschrijving"
-
-#~ msgid "Output Plugin Preferences"
-#~ msgstr "Instellingen uitvoer-plugin"
-
-#~ msgid "Output Plugin Information"
-#~ msgstr "Informatie over uitvoer-plugin"
-
-#~ msgid "_Decoder list:"
-#~ msgstr "_Decoder-lijst:"
-
-#~ msgid "<span size=\"medium\"><b>Decoders</b></span>"
-#~ msgstr "<span size=\"medium\"><b>Decoders</b></span>"
-
-#~ msgid "_General plugin list:"
-#~ msgstr "_Algemene plugin-lijst:"
-
-#~ msgid "<span size=\"medium\"><b>General</b></span>"
-#~ msgstr "<span size=\"medium\"><b>Algemeen</b></span>"
-
-#~ msgid "_Visualization plugin list:"
-#~ msgstr "_Visualisatie plugin-lijst:"
-
-#~ msgid "<b>Visualization</b>"
-#~ msgstr "<b>Visualisatie</b>"
-
-#, fuzzy
-#~ msgid "Effect plugins:"
-#~ msgstr "_Effect plugin-lijst:"
-
-#, fuzzy
-#~ msgid "<span size=\"small\">General</span>"
-#~ msgstr "<span size=\"small\">Genre</span>"
-
-#~ msgid "<span size=\"small\">Location</span>"
-#~ msgstr "<span size=\"small\">Locatie</span>"
-
-#, fuzzy
-#~ msgid "<span size=\"small\">Raw Metadata</span>"
-#~ msgstr "<span size=\"small\">Jaar</span>"
-
-#, fuzzy
-#~ msgid "Value"
-#~ msgstr "/Pause"
-
-#, fuzzy
-#~ msgid ""
-#~ "Available interfaces:\n"
-#~ "\n"
-#~ msgstr "Beschikbare _Opgeslagen instellingen:"
-
-#, fuzzy
-#~ msgid "Available Plugin Preferences:\n"
-#~ msgstr "Beschikbare _Opgeslagen instellingen:"
-
-#, fuzzy
-#~ msgid "Add/Open URL Dialog"
-#~ msgstr "Toevoegen/Bestanden openen venster"
-
-#~ msgid "Enter location to play:"
-#~ msgstr "Geef afspeellocatie op:"
-
-#  -e, --enqueue switch
-#~ msgid "Don't clear the playlist"
-#~ msgstr "Speellijst niet wissen"
-
-#~ msgid "audacious: %s"
-#~ msgstr "audacious: %s"
-
-#~ msgid "Filename:"
-#~ msgstr "Bestandsnaam:"
-
-#~ msgid "No input plugin recognized this file"
-#~ msgstr "Geen invoer-plugin heeft dit bestand herkend"
-
-#~ msgid "Input plugin: %s"
-#~ msgstr "Invoer plugin: %s"
-
-#~ msgid ""
-#~ "<b><big>No output plugin selected.</big></b>\n"
-#~ "You have not selected an output plugin."
-#~ msgstr ""
-#~ "<b><big>Geen uitvoer-plugin geselecteerd.</big></b>\n"
-#~ "U heeft (nog) geen uitvoer-plugin gekozen."
-
-#~ msgid "Connectivity"
-#~ msgstr "Verbindingen"
-
-#~ msgid "<b>Format Detection</b>"
-#~ msgstr "<b>Formaat-detectie</b>"
-
-#, fuzzy
-#~ msgid ""
-#~ "When checked, Audacious will detect file formats based by extension. Only "
-#~ "files with extensions of supported formats will be loaded."
-#~ msgstr ""
-#~ "Als deze optie ingeschakeld is wordt het formaat van een bestand pas bij "
-#~ "het afspelen bepaald. Dit kan een rommelige afspeellijst opleveren, maar "
-#~ "versnelt het inladen van bestanden aanzienlijk."
-
-#, fuzzy
-#~ msgid "<b>Advanced</b>"
-#~ msgstr "<b>Afspelen</b>"
-
-#, fuzzy
-#~ msgid ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "\n"
-#~ "Copyright (C) 2005-2009 Audacious Development Team"
-#~ msgstr ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "De toekomst van UNIX multimedia.\n"
-#~ "\n"
-#~ "Copyright (C) 2005-2006 Audacious ontwikkelteam\n"
-
-#~ msgid "Detect file formats on demand, instead of immediately."
-#~ msgstr "Detecteer bestandsformaat op het laatste moment."
-
-#, fuzzy
-#~ msgid ""
-#~ "When checked, Audacious will detect file formats on demand. This can "
-#~ "result in a messier playlist, but delivers a major speed benefit."
-#~ msgstr ""
-#~ "Als deze optie ingeschakeld is wordt het formaat van een bestand pas bij "
-#~ "het afspelen bepaald. Dit kan een rommelige afspeellijst opleveren, maar "
-#~ "versnelt het inladen van bestanden aanzienlijk."
-
-#~ msgid "Load metadata from playlists and files"
-#~ msgstr "Metadata van speellijsten en bestanden laden"
-
-#~ msgid "Load metadata (tag information) from music files."
-#~ msgstr "Metadata (tag-informatie) van muziekbestanden laden"
-
-#~ msgid "Jump to Time"
-#~ msgstr "Ga naar tijd"
-
-#~ msgid "minutes:seconds"
-#~ msgstr "minuten:seconden"
-
-#~ msgid "Track length:"
-#~ msgstr "Duur:"
-
-#, fuzzy
-#~ msgid "Save as Static Playlist"
-#~ msgstr "Afspeellijst opslaan"
-
-#~ msgid "Error writing playlist \"%s\": %s"
-#~ msgstr "Fout bij wegschrijven afspeellijst \"%s\": %s"
-
-#~ msgid "%s already exist. Continue?"
-#~ msgstr "%s bestaat reeds. Wilt u doorgaan?"
-
-#~ msgid ""
-#~ "<b><big>Unable to save playlist.</big></b>\n"
-#~ "\n"
-#~ "Unknown file type for '%s'.\n"
-#~ msgstr ""
-#~ "<b><big>Kon de afspeellijst niet opslaan.</big></b>\n"
-#~ "\n"
-#~ "Onbekend bestandstype voor '%s'.\n"
-
-#~ msgid "Presets"
-#~ msgstr "Standen"
-
-#~ msgid "Mouse"
-#~ msgstr "Muis"
-
-#  -u, --pause switch
-#~ msgid "Pause between songs"
-#~ msgstr "Pauzeer tussen nummers"
-
-#~ msgid "Pause for"
-#~ msgstr "Pauzeer voor"
-
-#~ msgid "seconds"
-#~ msgstr "seconden"
-
-#~ msgid "<b>Filename</b>"
-#~ msgstr "<b>Bestandsnaam</b>"
-
-#~ msgid "Convert underscores to blanks"
-#~ msgstr "Converteer underscores naar spaties"
-
-#~ msgid "Convert %20 to blanks"
-#~ msgstr "Converteer %20 naar spaties"
-
-#~ msgid "<b>File Dialog</b>"
-#~ msgstr "<b>Bestandsvenster</b>"
-
-#~ msgid "Always refresh directory when opening file dialog"
-#~ msgstr ""
-#~ "Ververs altijd de mapinhoud bij het openen van het bestandsvenster, niet "
-#~ "noodzakelijk als Gnome VFS actief is."
-
-#~ msgid ""
-#~ "Always refresh the file dialog (this will slow opening the dialog on "
-#~ "large directories, and Gnome VFS should handle automatically)."
-#~ msgstr ""
-#~ "Ververs altijd het bestandsvenster (dit kan het openen van het venster "
-#~ "vertragen voor grote mappen, en mag worden uitgeschakeld als Gnome-VFS "
-#~ "actief is)."
-
-#~ msgid "Changes volume by"
-#~ msgstr "Muiswiel verandert het volume met"
-
-#~ msgid "percent"
-#~ msgstr "procent"
-
-#~ msgid "Scrolls playlist by"
-#~ msgstr "Muiswiel scrollt de speellijst met"
-
-#~ msgid "lines"
-#~ msgstr "regels"
-
-#  -s, --stop switch
-#, fuzzy
-#~ msgid "Stop after Current Song"
-#~ msgstr "/Stop na huidig nummer"
-
-#, fuzzy
-#~ msgid "Peaks"
-#~ msgstr "/Pause"
-
-#, fuzzy
-#~ msgid "Repeat"
-#~ msgstr "/Herhalen"
-
-#, fuzzy
-#~ msgid "Shuffle"
-#~ msgstr "/Willekeurig afspelen"
-
-#, fuzzy
-#~ msgid "No Playlist Advance"
-#~ msgstr "/Niet vooruitlopen in de speellijst"
-
-#, fuzzy
-#~ msgid "Play"
-#~ msgstr "/Afspelen"
-
-#, fuzzy
-#~ msgid "Pause"
-#~ msgstr "/Pause"
-
-#, fuzzy
-#~ msgid "Stop"
-#~ msgstr "/Stop"
-
-#, fuzzy
-#~ msgid "Previous"
-#~ msgstr "/Vorige"
-
-#, fuzzy
-#~ msgid "Next"
-#~ msgstr "/Volgende"
-
-#, fuzzy
-#~ msgid "Visualization Mode"
-#~ msgstr "/Visualisatie type"
-
-#, fuzzy
-#~ msgid "Analyzer Mode"
-#~ msgstr "/Analyzer type/Vurig"
-
-#, fuzzy
-#~ msgid "Scope Mode"
-#~ msgstr "/Scope type"
-
-#, fuzzy
-#~ msgid "Voiceprint Mode"
-#~ msgstr "/Analyzer type/Vurig"
-
-#, fuzzy
-#~ msgid "WindowShade VU Mode"
-#~ msgstr "/Vensterschaduw VU type"
-
-#, fuzzy
-#~ msgid "Refresh Rate"
-#~ msgstr "/Ververssnelheid"
-
-#, fuzzy
-#~ msgid "Analyzer Falloff"
-#~ msgstr "/Analyzer snelheid"
-
-#, fuzzy
-#~ msgid "Peaks Falloff"
-#~ msgstr "/Toppen snelheid"
-
-#, fuzzy
-#~ msgid "New Playlist"
-#~ msgstr "Afspeellijst opslaan"
-
-#, fuzzy
-#~ msgid "Select Next Playlist"
-#~ msgstr "Kies het lettertype voor de speellijst:"
-
-#, fuzzy
-#~ msgid "Select Previous Playlist"
-#~ msgstr "/Selectie sorteren/Op volgorde afspeellijst"
-
-#, fuzzy
-#~ msgid "Delete Playlist"
-#~ msgstr "Kies het lettertype voor de speellijst:"
-
-#, fuzzy
-#~ msgid "Load List"
-#~ msgstr "/Lijst laden"
-
-#, fuzzy
-#~ msgid "Loads a playlist file into the selected playlist."
-#~ msgstr "Metadata laden zodra het bestand wordt weergegeven in de speellijst"
-
-#, fuzzy
-#~ msgid "Save List"
-#~ msgstr "/Lijst opslaan"
-
-#, fuzzy
-#~ msgid "Saves the selected playlist."
-#~ msgstr "Kies het lettertype voor de speellijst:"
-
-#, fuzzy
-#~ msgid "Save Default List"
-#~ msgstr "/Standaardlijst Opslaan"
-
-#, fuzzy
-#~ msgid "Saves the selected playlist to the default location."
-#~ msgstr "Gebruik XMMS-stijl bestandsdialoog ipv standaard"
-
-#, fuzzy
-#~ msgid "Refresh List"
-#~ msgstr "Skin-lijst verversen"
-
-#, fuzzy
-#~ msgid "List Manager"
-#~ msgstr "/Niet vooruitlopen in de speellijst"
-
-#  -e, --enqueue switch
-#, fuzzy
-#~ msgid "Opens the playlist manager."
-#~ msgstr "Speellijst niet wissen"
-
-#, fuzzy
-#~ msgid "View"
-#~ msgstr "/_Geef weer"
-
-#, fuzzy
-#~ msgid "Add Internet Address..."
-#~ msgstr "/Internet adres toevoegen..."
-
-#  -e, --enqueue switch
-#, fuzzy
-#~ msgid "Adds a remote track to the playlist."
-#~ msgstr "Speellijst niet wissen"
-
-#, fuzzy
-#~ msgid "Add Files..."
-#~ msgstr "/Bestanden toevoegen..."
-
-#, fuzzy
-#~ msgid "Search and Select"
-#~ msgstr "Zoekdiepte: "
-
-#, fuzzy
-#~ msgid "Invert Selection"
-#~ msgstr "/Selectie omkeren"
-
-#, fuzzy
-#~ msgid "Inverts the selected and unselected entries."
-#~ msgstr "Kies het lettertype voor de speellijst:"
-
-#~ msgid "Select All"
-#~ msgstr "Selecteer alles"
-
-#, fuzzy
-#~ msgid "Select None"
-#~ msgstr "/Deselecteer alles"
-
-#  -e, --enqueue switch
-#, fuzzy
-#~ msgid "Deselects all of the playlist entries."
-#~ msgstr "Speellijst niet wissen"
-
-#, fuzzy
-#~ msgid "Remove All"
-#~ msgstr "/Alles wissen"
-
-#, fuzzy
-#~ msgid "Removes all entries from the playlist."
-#~ msgstr "/Ontoegankelijke bestanden wissen"
-
-#, fuzzy
-#~ msgid "Clear Queue"
-#~ msgstr "/Wachtrij wissen"
-
-#, fuzzy
-#~ msgid "Clears the queue associated with this playlist."
-#~ msgstr "Kies het lettertype voor de speellijst:"
-
-#, fuzzy
-#~ msgid "Remove Unavailable Files"
-#~ msgstr "/Ontoegankelijke bestanden wissen"
-
-#, fuzzy
-#~ msgid "Removes unavailable files from the playlist."
-#~ msgstr "/Ontoegankelijke bestanden wissen"
-
-#, fuzzy
-#~ msgid "Remove Duplicates"
-#~ msgstr "/Dubbele nummers wissen"
-
-#, fuzzy
-#~ msgid "By Title"
-#~ msgstr "Titel"
-
-#, fuzzy
-#~ msgid "Removes duplicate entries from the playlist by title."
-#~ msgstr "/Dubbele nummers wissen/Op locatie en bestandsnaam"
-
-#, fuzzy
-#~ msgid "By Filename"
-#~ msgstr "Bestandsnaam"
-
-#, fuzzy
-#~ msgid "Removes duplicate entries from the playlist by filename."
-#~ msgstr "/Dubbele nummers wissen/Op locatie en bestandsnaam"
-
-#, fuzzy
-#~ msgid "By Path + Filename"
-#~ msgstr "/Lijst sorteren/Op locatie en bestandsnaam"
-
-#, fuzzy
-#~ msgid "Removes duplicate entries from the playlist by their full path."
-#~ msgstr "/Dubbele nummers wissen/Op locatie en bestandsnaam"
-
-#, fuzzy
-#~ msgid "Remove Unselected"
-#~ msgstr "/Selectie behouden"
-
-#, fuzzy
-#~ msgid "Remove unselected entries from the playlist."
-#~ msgstr "/Dubbele nummers wissen/Op locatie en bestandsnaam"
-
-#, fuzzy
-#~ msgid "Remove Selected"
-#~ msgstr "/Selectie wissen"
-
-#, fuzzy
-#~ msgid "Remove selected entries from the playlist."
-#~ msgstr "/Dubbele nummers wissen/Op locatie en bestandsnaam"
-
-#, fuzzy
-#~ msgid "Randomize List"
-#~ msgstr "/Willekeurig verdelen"
-
-#, fuzzy
-#~ msgid "Randomizes the playlist."
-#~ msgstr "/Willekeurig verdelen"
-
-#, fuzzy
-#~ msgid "Reverse List"
-#~ msgstr "/Omdraaien"
-
-#  -e, --enqueue switch
-#, fuzzy
-#~ msgid "Reverses the playlist."
-#~ msgstr "Speellijst niet wissen"
-
-#, fuzzy
-#~ msgid "Sort List"
-#~ msgstr "/Lijst sorteren"
-
-#, fuzzy
-#~ msgid "Sorts the list by title."
-#~ msgstr "/Lijst sorteren/Op titel"
-
-#, fuzzy
-#~ msgid "By Album"
-#~ msgstr "Album"
-
-#, fuzzy
-#~ msgid "Sorts the list by album."
-#~ msgstr "/Lijst sorteren/Op titel"
-
-#, fuzzy
-#~ msgid "By Artist"
-#~ msgstr "Artiest"
-
-#, fuzzy
-#~ msgid "Sorts the list by artist."
-#~ msgstr "/Lijst sorteren/Op artiest"
-
-#, fuzzy
-#~ msgid "Sorts the list by filename."
-#~ msgstr "/Lijst sorteren/Op bestandsnaam"
-
-#, fuzzy
-#~ msgid "Sorts the list by full pathname."
-#~ msgstr "/Lijst sorteren/Op bestandsnaam"
-
-#, fuzzy
-#~ msgid "By Date"
-#~ msgstr "Datum"
-
-#, fuzzy
-#~ msgid "Sorts the list by modification time."
-#~ msgstr "/Lijst sorteren/Op titel"
-
-#, fuzzy
-#~ msgid "By Track Number"
-#~ msgstr "Nummer"
-
-#, fuzzy
-#~ msgid "Sorts the list by track number."
-#~ msgstr "/Lijst sorteren/Op tracknummer"
-
-#, fuzzy
-#~ msgid "By Playlist Entry"
-#~ msgstr "/Lijst sorteren/Op volgorde afspeellijst"
-
-#, fuzzy
-#~ msgid "Sorts the list by playlist entry."
-#~ msgstr "/Lijst sorteren/Op volgorde afspeellijst"
-
-#, fuzzy
-#~ msgid "Sort Selected"
-#~ msgstr "/Selectie sorteren"
-
-#, fuzzy
-#~ msgid "File"
-#~ msgstr "Titel"
-
-#, fuzzy
-#~ msgid "Components"
-#~ msgstr "Opmerking"
-
-#, fuzzy
-#~ msgid "View Track Details"
-#~ msgstr "/Nummer details weergeven"
-
-#, fuzzy
-#~ msgid "Play File"
-#~ msgstr "Bestand afspelen"
-
-#, fuzzy
-#~ msgid "Load and play a file"
-#~ msgstr "Metadata van speellijsten en bestanden laden"
-
-#, fuzzy
-#~ msgid "Play Location"
-#~ msgstr "Afspeellocatie:"
-
-#, fuzzy
-#~ msgid "Plugin services"
-#~ msgstr "Plugins"
-
-#, fuzzy
-#~ msgid "Preferences"
-#~ msgstr "/Instellingen"
-
-#  load the interface
-#, fuzzy
-#~ msgid "Open preferences window"
-#~ msgstr "Instellingen venster"
-
-#, fuzzy
-#~ msgid "_Quit"
-#~ msgstr "/_Afsluiten"
-
-#, fuzzy
-#~ msgid "Quit Audacious"
-#~ msgstr "Over Audacious"
-
-#, fuzzy
-#~ msgid "Set A-B"
-#~ msgstr "A-B /herhaling"
-
-#, fuzzy
-#~ msgid "Clear A-B"
-#~ msgstr "A-B /wissen"
-
-#, fuzzy
-#~ msgid "Jump to Playlist Start"
-#~ msgstr "/Naar het begin van de speellijst"
-
-#, fuzzy
-#~ msgid "Jump to File"
-#~ msgstr "/Ga naar bestand"
-
-#, fuzzy
-#~ msgid "Queue Toggle"
-#~ msgstr "/In de wachtrij zetten"
-
-#, fuzzy
-#~ msgid "Load"
-#~ msgstr "/Laden"
-
-#, fuzzy
-#~ msgid "Import"
-#~ msgstr "/Importeer"
-
-#, fuzzy
-#~ msgid "Save"
-#~ msgstr "/Opslaan"
-
-#, fuzzy
-#~ msgid "Delete"
-#~ msgstr "/Wissen"
-
-#~ msgid "Preset"
-#~ msgstr "Standen"
-
-#~ msgid "Load preset"
-#~ msgstr "Standen laden"
-
-#, fuzzy
-#~ msgid "Auto-load preset"
-#~ msgstr "/Laden/Automatisch te laden stand"
-
-#, fuzzy
-#~ msgid "Load auto-load preset"
-#~ msgstr "/Laden/Automatisch te laden stand"
-
-#, fuzzy
-#~ msgid "Default"
-#~ msgstr "Standaard skin:"
-
-#, fuzzy
-#~ msgid "Load default preset into equalizer"
-#~ msgstr "Automatische stand opslaan"
-
-#, fuzzy
-#~ msgid "Zero"
-#~ msgstr "stereo"
-
-#, fuzzy
-#~ msgid "Set equalizer preset levels to zero"
-#~ msgstr "Equalizer standen opslaan"
-
-#, fuzzy
-#~ msgid "From file"
-#~ msgstr "/Laden/Bestand"
-
-#, fuzzy
-#~ msgid "Load preset from file"
-#~ msgstr "Standen laden"
-
-#, fuzzy
-#~ msgid "From WinAMP EQF file"
-#~ msgstr "/Laden/WinAMP EQF-bestand"
-
-#, fuzzy
-#~ msgid "Load preset from WinAMP EQF file"
-#~ msgstr "/Laden/WinAMP EQF-bestand"
-
-#, fuzzy
-#~ msgid "WinAMP Presets"
-#~ msgstr "/Importeer/WinAMP Equalizer stand"
-
-#, fuzzy
-#~ msgid "Import WinAMP presets"
-#~ msgstr "/Importeer/WinAMP Equalizer stand"
-
-#~ msgid "Save preset"
-#~ msgstr "Stand opslaan"
-
-#, fuzzy
-#~ msgid "Save auto-load preset"
-#~ msgstr "/Opslaan/Automatisch te laden stand"
-
-#, fuzzy
-#~ msgid "Save default preset"
-#~ msgstr "Automatische stand opslaan"
-
-#, fuzzy
-#~ msgid "To file"
-#~ msgstr "Bestanden laden"
-
-#, fuzzy
-#~ msgid "Save preset to file"
-#~ msgstr "Stand opslaan"
-
-#, fuzzy
-#~ msgid "To WinAMP EQF file"
-#~ msgstr "/Opslaan/Als WinAMP EQF bestand"
-
-#, fuzzy
-#~ msgid "Save preset to WinAMP EQF file"
-#~ msgstr "/Opslaan/Als WinAMP EQF bestand"
-
-#~ msgid "Delete preset"
-#~ msgstr "Stand wissen"
-
-#, fuzzy
-#~ msgid "Delete auto-load preset"
-#~ msgstr "/Wissen/Automatisch te laden stand"
-
-#, fuzzy
-#~ msgid ""
-#~ "<span size=\"small\">This is the amount of time to prebuffer audio "
-#~ "streams by, in milliseconds.\n"
-#~ "Increase this value if you are experiencing audio skipping.\n"
-#~ "Please note however, that high values will result in Audacious performing "
-#~ "poorly.</span>"
-#~ msgstr ""
-#~ "<span size=\"small\">Dit is de grootte van de prebuffer in "
-#~ "milliseconden.\n"
-#~ "Verhoog deze waarde als de audio klikt of overslaat.\n"
-#~ "Gelieve er rekening mee te houden dat overdreven grote waardes de "
-#~ "prestaties van Audacious sterk kunnen verminderen.</span>"
-
-#~ msgid ""
-#~ "<b><big>Unable to load skin.</big></b>\n"
-#~ "\n"
-#~ "Check that skin at '%s' is usable and default skin is properly installed "
-#~ "at '%s'\n"
-#~ msgstr ""
-#~ "<b><big>Kon de skin niet laden.</big></b>\n"
-#~ "\n"
-#~ "Controleer dat de skin bij '%s' bruikbaar is en de standaardskin correct "
-#~ "geinstalleerd bij '%s'\n"
-
-#, fuzzy
-#~ msgid "Headless operation enabled\n"
-#~ msgstr "Geen interface weergeven (headless) [experimenteel]"
-
-#~ msgid "Audacious core developers:"
-#~ msgstr "Audacious kern-ontwikkelaars:"
-
-#~ msgid "Audacious Equalizer"
-#~ msgstr "Audacious Equalizer"
-
-#~ msgid "Play files"
-#~ msgstr "Bestanden afspelen"
-
-#~ msgid "Load files"
-#~ msgstr "Bestanden laden"
-
-#~ msgid "%s - Audacious"
-#~ msgstr "%s - Audacious"
-
-#~ msgid "VBR"
-#~ msgstr "VBR"
-
-#~ msgid "mono"
-#~ msgstr "mono"
-
-#, fuzzy
-#~ msgid "Show main player window"
-#~ msgstr "Kies het lettertype voor het hoofdvenster:"
-
-#, fuzzy
-#~ msgid "Seek to: %d:%-2.2d/%d:%-2.2d (%d%%)"
-#~ msgstr "ZOEK NAAR: %d:%-2.2d/%d:%-2.2d (%d%%)"
-
-#, fuzzy
-#~ msgid "Disable 'Always On Top'"
-#~ msgstr "/Altijd op de voorgrond"
-
-#, fuzzy
-#~ msgid "Enable 'Always On Top'"
-#~ msgstr "/Altijd op de voorgrond"
-
-#, fuzzy
-#~ msgid "Visualization Menu"
-#~ msgstr "/Visualisatie type"
-
-#~ msgid ""
-#~ "<b><big>Couldn't open audio.</big></b>\n"
-#~ "\n"
-#~ "Please check that:\n"
-#~ "1. You have the correct output plugin selected.\n"
-#~ "2. No other programs is blocking the soundcard.\n"
-#~ "3. Your soundcard is configured properly.\n"
-#~ msgstr ""
-#~ "<b><big>Kon geluid niet openen.</big></b>\n"
-#~ "\n"
-#~ "Gelieve te controleren dat:\n"
-#~ "1. De correcte uitvoer plugin geselecteerd is\n"
-#~ "2. Geen andere programma's de geluidskaart blokkeren\n"
-#~ "3. Uw geluidskaart juist geconfigureerd is\n"
-
-#, fuzzy
-#~ msgid "Autoscroll Songname"
-#~ msgstr "/Titel automatisch scrollen"
-
-#, fuzzy
-#~ msgid "Show Player"
-#~ msgstr "Sp/eler weergeven"
-
-#, fuzzy
-#~ msgid "Show Playlist Editor"
-#~ msgstr "/Speellijst weergeven"
-
-#, fuzzy
-#~ msgid "Show Equalizer"
-#~ msgstr "/Equalizer weergeven"
-
-#, fuzzy
-#~ msgid "Always on Top"
-#~ msgstr "/Altijd op de voorgrond"
-
-#, fuzzy
-#~ msgid "Put on All Workspaces"
-#~ msgstr "/Op alle bureaubladen weergeven"
-
-#, fuzzy
-#~ msgid "Roll up Player"
-#~ msgstr "/Speler oprollen"
-
-#, fuzzy
-#~ msgid "Roll up Playlist Editor"
-#~ msgstr "/Speellijst oprollen"
-
-#, fuzzy
-#~ msgid "Roll up Equalizer"
-#~ msgstr "/Equalizer oprollen"
-
-#, fuzzy
-#~ msgid "Scale"
-#~ msgstr "/Opslaan"
-
-#, fuzzy
-#~ msgid "DoubleSize"
-#~ msgstr "/Dubbele grootte"
-
-#, fuzzy
-#~ msgid "Easy Move"
-#~ msgstr "/Eenvoudig verplaatsen"
-
-#, fuzzy
-#~ msgid "Analyzer"
-#~ msgstr "/Analyzer type"
-
-#, fuzzy
-#~ msgid "Scope"
-#~ msgstr "/Scope type"
-
-#, fuzzy
-#~ msgid "Voiceprint"
-#~ msgstr "/Analyzer type/Vurig"
-
-#, fuzzy
-#~ msgid "Vertical Lines"
-#~ msgstr "/Analyzer type/Verticale lijnen"
-
-#, fuzzy
-#~ msgid "Lines"
-#~ msgstr "regels"
-
-#, fuzzy
-#~ msgid "Dot Scope"
-#~ msgstr "/Scope type/Punt Scope"
-
-#, fuzzy
-#~ msgid "Line Scope"
-#~ msgstr "/Scope type/Lijn Scope"
-
-#, fuzzy
-#~ msgid "Solid Scope"
-#~ msgstr "/Scope type/Solide Scope"
-
-#, fuzzy
-#~ msgid "Smooth"
-#~ msgstr "mono"
-
-#, fuzzy
-#~ msgid "Full (~50 fps)"
-#~ msgstr "/Ververssnelheid/Volledig (~50 fps)"
-
-#, fuzzy
-#~ msgid "Half (~25 fps)"
-#~ msgstr "/Ververssnelheid/Half (~25 fps)"
-
-#, fuzzy
-#~ msgid "Quarter (~13 fps)"
-#~ msgstr "/Ververssnelheid/É©n vierde (~13 fps)"
-
-#, fuzzy
-#~ msgid "Eighth (~6 fps)"
-#~ msgstr "/Ververssnelheid/É©n achtste (~6 fps)"
-
-#, fuzzy
-#~ msgid "Time Elapsed"
-#~ msgstr "/Verstreken tijd"
-
-#, fuzzy
-#~ msgid "Time Remaining"
-#~ msgstr "/Resterende tijd"
-
-#, fuzzy
-#~ msgid "Plugin Services"
-#~ msgstr "Plugins"
-
-#  -r, --rew switch
-#, fuzzy
-#~ msgid "Search entries in active playlist"
-#~ msgstr "Scheidingslijnen in de speellijst weergeven"
-
-#, fuzzy
-#~ msgid "Title: "
-#~ msgstr "Titel"
-
-#, fuzzy
-#~ msgid "Artist: "
-#~ msgstr "Artiest"
-
-#, fuzzy
-#~ msgid "Filename: "
-#~ msgstr "Bestandsnaam:"
-
-#~ msgid "Audacious Playlist Editor"
-#~ msgstr "Audacious afspeellijst-editor"
-
-#~ msgid "Appearance"
-#~ msgstr "Uiterlijk"
-
-#~ msgid "<b>_Fonts</b>"
-#~ msgstr "<b>_Lettertypen</b>"
-
-#~ msgid "_Player:"
-#~ msgstr "_Speler:"
-
-#~ msgid "Select main player window font:"
-#~ msgstr "Kies het lettertype voor het hoofdvenster:"
-
-#~ msgid "_Playlist:"
-#~ msgstr "_Afspeellijst:"
-
-#, fuzzy
-#~ msgid "Select playlist font:"
-#~ msgstr "Kies het lettertype voor het hoofdvenster:"
-
-#~ msgid "Use Bitmap fonts if available"
-#~ msgstr "Gebruik bitmapfonts (mits beschikbaar)"
-
-#~ msgid ""
-#~ "Use bitmap fonts if they are available. Bitmap fonts do not support "
-#~ "Unicode strings."
-#~ msgstr ""
-#~ "Gebruik bitmap-lettertypen als deze beschikbaar zijn. Bitmaplettertypen "
-#~ "ondersteunen geen unicode strings."
-
-#~ msgid "<b>_Miscellaneous</b>"
-#~ msgstr "<b>_Diversen</b>"
-
-#  -r, --rew switch
-#~ msgid "Show track numbers in playlist"
-#~ msgstr "Positienummers in de speellijst weergeven"
-
-#  -r, --rew switch
-#~ msgid "Show separators in playlist"
-#~ msgstr "Scheidingslijnen in de speellijst weergeven"
-
-#~ msgid "Show window manager decoration"
-#~ msgstr "Toon vensterdecoraties"
-
-#~ msgid "This enables the window manager to show decorations for windows."
-#~ msgstr "Dit laat de venster-beheerder decoraties om de vensters tekenen."
-
-#~ msgid "Use XMMS-style file selector instead of the default selector"
-#~ msgstr "Gebruik XMMS-stijl bestandsdialoog ipv standaard"
-
-#~ msgid ""
-#~ "This enables the XMMS/GTK1-style file selection dialogs. This selector is "
-#~ "provided by Audacious itself and is faster than the default GTK2 selector "
-#~ "(but sadly not as user-friendly)."
-#~ msgstr ""
-#~ "Dit schakelt de bestandsdialoog naar XMMS/GTK1-stijl. Deze selector wordt "
-#~ "door Audacious zelf aangeboden en is sneller dan de GTK2 uitvoering (maar "
-#~ "helaas niet even gebruikersvriendelijk)."
-
-#~ msgid "On load"
-#~ msgstr "Bij laden"
-
-#~ msgid "Load metadata when adding the file to the playlist or opening it"
-#~ msgstr "Metadata laden zodra een bestand wordt toegevoegd of geopened"
-
-#~ msgid "On display"
-#~ msgstr "Bij weergave"
-
-#, fuzzy
-#~ msgid ""
-#~ "Load metadata on demand when displaying the file in the playlist. You may "
-#~ "need to set \"Detect file formats on demand\" in Audio page for full "
-#~ "benefit."
-#~ msgstr "Metadata laden zodra een bestand wordt toegevoegd of geopened"
-
-#, fuzzy
-#~ msgid "Green"
-#~ msgstr "Grieks:"
-
-#~ msgid "<b>_Skin</b>"
-#~ msgstr "<b>S_kin</b>"
-
-#, fuzzy
-#~ msgid "Refresh skin list"
-#~ msgstr "Skin-lijst verversen"
-
-#~ msgid "PREAMP"
-#~ msgstr "Voorsterker"
-
-#~ msgid "60HZ"
-#~ msgstr "60HZ"
-
-#~ msgid "170HZ"
-#~ msgstr "170HZ"
-
-#~ msgid "310HZ"
-#~ msgstr "310HZ"
-
-#~ msgid "600HZ"
-#~ msgstr "600HZ"
-
-#~ msgid "1KHZ"
-#~ msgstr "1KHZ"
-
-#~ msgid "3KHZ"
-#~ msgstr "3KHZ"
-
-#~ msgid "6KHZ"
-#~ msgstr "6KHZ"
-
-#~ msgid "12KHZ"
-#~ msgstr "12KHZ"
-
-#~ msgid "14KHZ"
-#~ msgstr "14KHZ"
-
-#~ msgid "16KHZ"
-#~ msgstr "16KHZ"
-
-#~ msgid "Archived Winamp 2.x skin"
-#~ msgstr "Ingepakte Winamp 2.x skin"
-
-#~ msgid "Unarchived Winamp 2.x skin"
-#~ msgstr "Uitgepakte Winamp 2.x skin"
-
-#~ msgid "Use custom cursors"
-#~ msgstr "Gebruik muiscursors van skin"
-
-#, fuzzy
-#~ msgid "Reload Plugins"
-#~ msgstr "Plugins"
-
-#~ msgid ""
-#~ "Sorry, threads isn't supported on your platform.\n"
-#~ "\n"
-#~ "If you're on a libc5 based linux system and installed Glib & GTK+ before "
-#~ "you\n"
-#~ "installed LinuxThreads you need to recompile Glib & GTK+.\n"
-#~ msgstr ""
-#~ "Sorry, threads zijn niet ondersteund op uw platform.\n"
-#~ "\n"
-#~ "Als u gebruikt maakt van libc5 gebaseerde linux en u heeft Glib/GTK+ "
-#~ "geinstalleerd voordat u\n"
-#~ "LinuxThreads heeft geinstalleerd moet u Glib/GTK+ hercompileren.\n"
-
-#, fuzzy
-#~ msgid "Error in Audacious."
-#~ msgstr "%s - Audacious"
-
-#  -n, --session switch
-#, fuzzy
-#~ msgid "Select which Audacious session ID to use"
-#~ msgstr "Kies Audacious sessie (Standaard: 0)"
-
-#, fuzzy
-#~ msgid "Disable 'Doublesize'"
-#~ msgstr "/Dubbele grootte"
-
-#, fuzzy
-#~ msgid "Enable 'Doublesize'"
-#~ msgstr "/Dubbele grootte"
-
-#~ msgid "<b>Presets</b>"
-#~ msgstr "<b>Opgeslagen equalizer standen</b>"
-
-#~ msgid "File preset extension:"
-#~ msgstr "Extensie van standenbestand:"
-
-#~ msgid "Directory preset file:"
-#~ msgstr "Map voor standenbestand:"
-
-#~ msgid "localhost"
-#~ msgstr "locale machine"
-
-#~ msgid ""
-#~ "<b><big>Unable to create %s.</big></b>\n"
-#~ "\n"
-#~ "Could not open glade file (%s). Please check your installation.\n"
-#~ msgstr ""
-#~ "<b><big>Kan %s niet aanmaken.</big></b>\n"
-#~ "\n"
-#~ "Het glade-bestand (%s) kon niet geopend worden. Is uw installatie "
-#~ "compleet?\n"
-
-#~ msgid ""
-#~ "TITLE\n"
-#~ "ARTIST - TITLE\n"
-#~ "ARTIST - ALBUM - TITLE\n"
-#~ "ARTIST - ALBUM - TRACK. TITLE\n"
-#~ "ARTIST [ ALBUM ] - TRACK. TITLE\n"
-#~ "ALBUM - TITLE\n"
-#~ "Custom"
-#~ msgstr ""
-#~ "TITEL\n"
-#~ "ARTIEST - TITLE\n"
-#~ "ARTIEST - ALBUM - TITEL\n"
-#~ "ARTIEST - ALBUM - TRACKNR. TITEL\n"
-#~ "ARTIEST [ ALBUM ] - TRACKNR. TITEL\n"
-#~ "ALBUM - TITEL\n"
-#~ "Aanpassen"
-
-#~ msgid "Track Information Window"
-#~ msgstr "Nummer-info"
-
-#  load the interface
-#~ msgid "Preferences Window"
-#~ msgstr "Instellingen venster"
-
-#, fuzzy
-#~ msgid "<b>Artist:</b> %s"
-#~ msgstr "<i>Artiest</i>"
-
-#, fuzzy
-#~ msgid "<b>Title:</b> %s"
-#~ msgstr "<i>Titel</i>"
-
-#, fuzzy
-#~ msgid "<b>Album:</b> %s"
-#~ msgstr "<i>Album</i>"
-
-#, fuzzy
-#~ msgid "Audacious last.fm radio tuner"
-#~ msgstr "Audacious afspeellijst-editor"
-
-#, fuzzy
-#~ msgid "<b>Artist:</b>"
-#~ msgstr "<i>Artiest</i>"
-
-#, fuzzy
-#~ msgid "<b>Album:</b>"
-#~ msgstr "<i>Album</i>"
-
-#~ msgid "VOLUME: %d%%"
-#~ msgstr "VOLUME: %d%%"
-
-#~ msgid "BALANCE: %d%% LEFT"
-#~ msgstr "BALANS: %d%% LINKS"
-
-#~ msgid "BALANCE: CENTER"
-#~ msgstr "BALANS: MIDDEN"
-
-#~ msgid "BALANCE: %d%% RIGHT"
-#~ msgstr "BALANS: %d%% RECHTS"
-
-#, fuzzy
-#~ msgid "Last.fm radio"
-#~ msgstr "Afspeellocatie:"
-
-#, fuzzy
-#~ msgid "Play Last.fm radio"
-#~ msgstr "Afspeellocatie:"
-
-#~ msgid ""
-#~ "<b><big>No playable CD found.</big></b>\n"
-#~ "\n"
-#~ "No CD inserted, or inserted CD is not an audio CD.\n"
-#~ msgstr ""
-#~ "<b><big>Geen afspeelbare CD gevonden.</big></b>\n"
-#~ "\n"
-#~ "Geen CD aanwezig of de aanwezige CD is geen audio CD.\n"
-
-#, fuzzy
-#~ msgid "Add CD..."
-#~ msgstr "/CD toevoegen..."
-
-#, fuzzy
-#~ msgid "Play CD"
-#~ msgstr "/CD afspelen"
-
-#~ msgid "Performer/Artist"
-#~ msgstr "Artiest"
-
-#~ msgid "File name"
-#~ msgstr "Bestandsnaam"
-
-#~ msgid "File path"
-#~ msgstr "Bestandslocatie"
-
-#~ msgid "File extension"
-#~ msgstr "Bestandstype"
-
-#~ msgid "Track number"
-#~ msgstr "Nummer"
-
-#~ msgid "%{n:...%}: Display \"...\" only if element %n is present"
-#~ msgstr ""
-#~ "%{n:...%}: Geef \"...\" alleen weer wanneer element %n beschikbaar is"
-
-#~ msgid ""
-#~ "Sorry, your GTK+ version (%d.%d.%d) does not work with Audacious.\n"
-#~ "Please use GTK+ %s or newer.\n"
-#~ msgstr ""
-#~ "Sorry, uw GTK+ versie (%d.%d.%d) werkt niet met Audacious.\n"
-#~ "Gelieve GTK+ %s of nieuwer te installeren.\n"
-
-#~ msgid "OPTIONS MENU"
-#~ msgstr "OPTIES-MENU"
-
-#~ msgid "DISABLE ALWAYS ON TOP"
-#~ msgstr "ALTIJD OP VOORGROND UITSCHAKELEN"
-
-#~ msgid "ENABLE ALWAYS ON TOP"
-#~ msgstr "ALTIJD OP VOORGROND INSCHAKELEN"
-
-#~ msgid "FILE INFO BOX"
-#~ msgstr "BESTANDSINFORMATIE BOX"
-
-#~ msgid "DISABLE DOUBLESIZE"
-#~ msgstr "DUBBEL FORMAAT UIT"
-
-#~ msgid "ENABLE DOUBLESIZE"
-#~ msgstr "DUBBEL FORMAAT AAN"
-
-#~ msgid "VISUALIZATION MENU"
-#~ msgstr "VISUALISATIE MENU"
-
-#, fuzzy
-#~ msgid "Track name: "
-#~ msgstr "Titel"
-
-#~ msgid ""
-#~ "<b><big>Unable to play files.</big></b>\n"
-#~ "\n"
-#~ "The following files could not be played. Please check that:\n"
-#~ "1. they are accessible.\n"
-#~ "2. you have enabled the media plugins required."
-#~ msgstr ""
-#~ "<b><big>Kon bestanden niet afspelen.</big></b>\n"
-#~ "\n"
-#~ "De bestanden konden niet afgespeeld worden, controleer dat:\n"
-#~ "1. U toegang heeft to de bestanden.\n"
-#~ "2. U de correcte plugins heeft aanstaan."
-
-#~ msgid "Show more _details"
-#~ msgstr "Geef meer _details weer"
-
-#~ msgid ""
-#~ "\n"
-#~ "Received SIGSEGV\n"
-#~ "\n"
-#~ "This could be a bug in Audacious. If you don't know why this happened, "
-#~ "file a bug at http://bugs-meta.atheme.org/\n"
-#~ "\n"
-#~ msgstr ""
-#~ "\n"
-#~ "SIGSEGV-signaal ontvangen\n"
-#~ "\n"
-#~ "Dit is mogelijk een bug in Audacious. Gelieve zonder externe plugins te "
-#~ "proberen.\n"
-#~ "Als u niet weet waarom dit gebeurde, rapporteer dan een bug bij uw "
-#~ "linuxdistributie.\n"
-#~ "\n"
-
-#~ msgid ""
-#~ "Enables playlist transparency. This is not recommended for slower "
-#~ "machines as it requires some CPU time to create and cache the pixmaps "
-#~ "used for the transparency."
-#~ msgstr ""
-#~ "Maakt de afspeellijst doorzichtig. Dit is niet aan te raden op langzamere "
-#~ "machines aangezien er enige CPU-tijd nodig is om de benodigde pixmaps aan "
-#~ "te maken en actueel te houden."
-
-#~ msgid "Enable playlist transparency"
-#~ msgstr "Gebruik doorzichtige speellijst"
-
-#~ msgid "%s: option `%s' is ambiguous\n"
-#~ msgstr "%s: optie `%s' is dubbelzinnig\n"
-
-#~ msgid "%s: option `--%s' doesn't allow an argument\n"
-#~ msgstr "%s: optie `--%s' staat geen argument toe\n"
-
-#~ msgid "%s: option `%c%s' doesn't allow an argument\n"
-#~ msgstr "%s: optie `%c%s' staat geen argument toe\n"
-
-#~ msgid "%s: option `%s' requires an argument\n"
-#~ msgstr "%s: optie `%s' heeft een argument nodig\n"
-
-#~ msgid "%s: unrecognized option `%c%s'\n"
-#~ msgstr "%s: unbekende optie `%c%s'\n"
-
-#~ msgid "%s: illegal option -- %c\n"
-#~ msgstr "%s: illegale optie -- %c\n"
-
-#~ msgid "%s: invalid option -- %c\n"
-#~ msgstr "%s: ongeldige optie -- %c\n"
-
-#~ msgid "%s: option requires an argument -- %c\n"
-#~ msgstr "%s: optie heeft een argument nodig -- %c\n"
-
-#~ msgid "%s: option `-W %s' is ambiguous\n"
-#~ msgstr "%s: optie `-W %s' is dubbelzinnig\n"
-
-#~ msgid "%s: option `-W %s' doesn't allow an argument\n"
-#~ msgstr "%s: optie `-W %s' staat geen argument toe\n"
-
-#~ msgid ""
-#~ "Usage: audacious [options] [files] ...\n"
-#~ "\n"
-#~ "Options:\n"
-#~ "--------\n"
-#~ msgstr ""
-#~ "Gebruik: audacious [opties] [bestanden] ...\n"
-#~ "\n"
-#~ "Opties:\n"
-#~ "--------\n"
-
-#  -h, --help switch
-#~ msgid "Display this text and exit"
-#~ msgstr "Deze tekst weergeven en stoppen"
-
-#~ msgid "Activate Audacious"
-#~ msgstr "Activeer Audacious"
-
-#~ msgid "Previous session ID"
-#~ msgstr "Vorige session ID"
-
-#~ msgid "Disable error/warning interception (logging)"
-#~ msgstr "Fouten & waarschuwingen niet afvangen (logging uitschakelen)"
-
-#  -v, --version switch
-#~ msgid "Print version number and exit\n"
-#~ msgstr "Versienummer weergeven en stoppen\n"
-
-#~ msgid "Add/Open Files dialog"
-#~ msgstr "Toevoegen/Bestanden openen venster"
-
-#~ msgid "Close Dialog on Add"
-#~ msgstr "Sluit venster bij toevoegen"
-
-#~ msgid "Deselect All"
-#~ msgstr "Deselecteer alles"
-
-#~ msgid "Track Information Popup"
-#~ msgstr "Nummer-info popup"
-
-#~ msgid "<i>Genre</i>"
-#~ msgstr "<i>Genre</i>"
-
-#~ msgid "<i>Year</i>"
-#~ msgstr "<i>Jaar</i>"
-
-#~ msgid "<i>Track Number</i>"
-#~ msgstr "<i>Nummer</i>"
-
-#~ msgid "<i>Track Length</i>"
-#~ msgstr "<i>Speelduur:</i>"
-
-#~ msgid "label65"
-#~ msgstr "label65"
-
-#~ msgid "label76"
-#~ msgstr "label76"
-
-#~ msgid "/View Track Details"
-#~ msgstr "/Nummer details weergeven"
-
-#~ msgid "/Visualization Mode/Analyzer"
-#~ msgstr "/Visualisatie type/Analyzer"
-
-#~ msgid "/Visualization Mode/Scope"
-#~ msgstr "/Visualisatie type/Scope"
-
-#, fuzzy
-#~ msgid "/Visualization Mode/Voiceprint"
-#~ msgstr "/Visualisatie type/Scope"
-
-#~ msgid "/Visualization Mode/Off"
-#~ msgstr "/Visualisatie type/Uit"
-
-#~ msgid "/Analyzer Mode/Normal"
-#~ msgstr "/Analyzer type/Normaal"
-
-#~ msgid "/Analyzer Mode/Lines"
-#~ msgstr "/Analyzer type/Lijnen"
-
-#~ msgid "/Analyzer Mode/Bars"
-#~ msgstr "/Analyzer type/Balken"
-
-#~ msgid "/Analyzer Mode/Peaks"
-#~ msgstr "/Analyzer type/Toppen"
-
-#, fuzzy
-#~ msgid "/Voiceprint mode/Normal"
-#~ msgstr "/Analyzer type/Normaal"
-
-#~ msgid "/WindowShade VU Mode/Normal"
-#~ msgstr "/Vensterschaduw VU type/Normaal"
-
-#~ msgid "/WindowShade VU Mode/Smooth"
-#~ msgstr "/Vensterschaduw VU type/Soepel"
-
-#~ msgid "/Analyzer Falloff/Slowest"
-#~ msgstr "/Analyzer snelheid/Sloom"
-
-#~ msgid "/Analyzer Falloff/Slow"
-#~ msgstr "/Analyzer snelheid/Langzaam"
-
-#~ msgid "/Analyzer Falloff/Medium"
-#~ msgstr "/Analyzer snelheid/Normaal"
-
-#~ msgid "/Analyzer Falloff/Fast"
-#~ msgstr "/Analyzer snelheid/Sneller"
-
-#~ msgid "/Analyzer Falloff/Fastest"
-#~ msgstr "/Analyzer snelheid/Snelst"
-
-#~ msgid "/Peaks Falloff/Slowest"
-#~ msgstr "/Toppen snelheid/Sloom"
-
-#~ msgid "/Peaks Falloff/Slow"
-#~ msgstr "/Toppen snelheid/Langzaam"
-
-#~ msgid "/Peaks Falloff/Medium"
-#~ msgstr "/Toppen snelheid/Normaal"
-
-#~ msgid "/Peaks Falloff/Fast"
-#~ msgstr "/Toppen snelheid/Sneller"
-
-#~ msgid "/Peaks Falloff/Fastest"
-#~ msgstr "/Toppen snelheid/Snelst"
-
-#~ msgid "/-"
-#~ msgstr "/-"
-
-#~ msgid "/Jump to Time"
-#~ msgstr "/Ga naar tijd"
-
-#~ msgid "/About Audacious"
-#~ msgstr "/Over Audacious"
-
-#~ msgid "/Files..."
-#~ msgstr "/Bestanden..."
-
-#~ msgid "/Internet location..."
-#~ msgstr "/Internet adres..."
-
-#, fuzzy
-#~ msgid "New List"
-#~ msgstr "/Nieuwe lijst"
-
-#  -r, --rew switch
-#, fuzzy
-#~ msgid "Creates a new playlist."
-#~ msgstr "Scheidingslijnen in de speellijst weergeven"
-
-#, fuzzy
-#~ msgid "Displays track information."
-#~ msgstr "Nummer-informatie:"
-
-#~ msgid "/Load/Preset"
-#~ msgstr "/Laden/Stand"
-
-#~ msgid "/Load/Default"
-#~ msgstr "/Laden/Standaard stand"
-
-#~ msgid "/Load/Zero"
-#~ msgstr "/Laden/Neutrale stand"
-
-#~ msgid "/Save/Preset"
-#~ msgstr "/Opslaan/Huidige stand"
-
-#~ msgid "/Save/Default"
-#~ msgstr "/Opslaan/Als standaard stand"
-
-#~ msgid "/Save/To file"
-#~ msgstr "/Opslaan/Als bestand"
-
-#~ msgid "/Delete/Preset"
-#~ msgstr "/Wissen/Stand"
-
-#~ msgid "Load auto-preset"
-#~ msgstr "Automatische standen laden"
-
-#~ msgid "Load equalizer preset"
-#~ msgstr "Equalizer standen laden"
-
-#~ msgid "Delete auto-preset"
-#~ msgstr "Automatische standen wissen"
-
-#~ msgid "/Show Popup Info"
-#~ msgstr "/Popup informatie tonen"
-
-#~ msgid "/Remove Duplicates/By Title"
-#~ msgstr "/Dubbele nummers wissen/Op titel"
-
-#~ msgid "/Remove Duplicates/By Filename"
-#~ msgstr "/Dubbele nummers wissen/Op bestandsnaam"
-
-#~ msgid "/Update View"
-#~ msgstr "/Verversen"
-
-#~ msgid "/Select All"
-#~ msgstr "/Selecteer alles"
-
-#~ msgid "/Sort List/By Date"
-#~ msgstr "/Lijst sorteren/Op datum"
-
-#~ msgid "/Sort Selection/By Title"
-#~ msgstr "/Selectie sorteren/Op titel"
-
-#~ msgid "/Sort Selection/By Artist"
-#~ msgstr "/Selectie sorteren/Op artiest"
-
-#~ msgid "/Sort Selection/By Filename"
-#~ msgstr "/Selectie sorteren/Op bestandsnaam"
-
-#~ msgid "/Sort Selection/By Path + Filename"
-#~ msgstr "/Selectie sorteren/Op locatie en bestandsnaam"
-
-#~ msgid "/Sort Selection/By Date"
-#~ msgstr "/Selectie sorteren/Op datum"
-
-#~ msgid "/Sort Selection/By Track Number"
-#~ msgstr "/Selectie sorteren/Op tracknummer"
-
-#~ msgid "/Sort Selection/By Playlist Entry"
-#~ msgstr "/Selectie sorteren/Op volgorde afspeellijst"
+msgstr ""
 
-#~ msgid "<b>_Miscillaneous UI Features</b>"
-#~ msgstr "<b>Diverse opties</b>"
 
-#~ msgid "This enables the window mangaer to show decorations for windows."
-#~ msgstr "Dit laat de venster-beheerder decoraties om de vensters tekenen."
diff --git a/po/pl.po b/po/pl.po
index f2306a6..eb070ef 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -1,38 +1,45 @@
-# Polish translation for audacious
-# Copyright (C) 2006, Wojciech Myrda <vojcek at tlen.pl>
-# Copyright (C) 2006, Michał Kiedrowicz <esqualante at o2.pl>
-# Copyright (C) 2010, Szymon Weihs <sz.weihs at gmail.com>
-# This file is distributed under the same license as the audacious package.
-# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
+# Polish translation for Audacious
+# Copyright (C) Audacious translators
+# This file is distributed under the same license as the Audacious package.
 #
-# Based on the Polish translation of XMMS by:
+# Translators:
+# Bartosz Kosiorek <gang65 at poczta.onet.pl>, 2003.
+# GNOME PL Team <translators at gnome.pl>, 2004.
 # Grzegorz Kowal <g_kowal at poczta.onet.pl>, 2000, 2001.
-# Bartosz Kosiorek <gang65 at poczta.onet.pl>, 2003
-#
-# Based on the Polish translation of BMP by:
-# GNOME PL Team <translators at gnome.pl>, 2004
-# Jacek Wolszczak <shutdownrunner at o2.pl>,2004
+# Piotr Sokół <psokol at jabster.pl>, 2012.
 msgid ""
 msgstr ""
 "Project-Id-Version: Audacious\n"
-"Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
-"PO-Revision-Date: 2010-08-14 18:38+0200\n"
-"Last-Translator: Szymon Weihs <sz.weihs at gmail.com>\n"
-"Language-Team:\n"
-"Language: \n"
+"Report-Msgid-Bugs-To: http://redmine.audacious-media-player.org/\n"
+"POT-Creation-Date: 2011-12-29 19:27-0500\n"
+"PO-Revision-Date: 2012-01-11 10:46+0000\n"
+"Last-Translator: Piotr Sokół <psokol at jabster.pl>\n"
+"Language-Team: Polish\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"plural-Forms: nplurals=2; plural=(n!=1);\n"
+"Language: pl\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
+
+#: src/audacious/adder.c:77
+msgid "Searching ..."
+msgstr "Wyszukiwanie..."
+
+#: src/audacious/adder.c:113
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] "Znaleziono %d plik"
+msgstr[1] "Znaleziono %d pliki"
+msgstr[2] "Znaleziono %d plików"
 
-#: src/audacious/chardet.c:37
+#: src/audacious/chardet.c:39
 msgid "  (invalid UTF-8)"
-msgstr " (nieprawidłowy UTF-8)"
+msgstr " (nieprawidłowe kodowanie UTF-8)"
 
 #: src/audacious/credits.c:35
 msgid "Core developers:"
-msgstr "Programiści:"
+msgstr "Główni programiści:"
 
 #: src/audacious/credits.c:49
 msgid "Graphics:"
@@ -40,259 +47,246 @@ msgstr "Grafika:"
 
 #: src/audacious/credits.c:54
 msgid "Default skin:"
-msgstr "Domyślna skóra:"
+msgstr "Domyślny styl:"
 
 #: src/audacious/credits.c:60
 msgid "Plugin development:"
-msgstr "Twórcy pluginów:"
+msgstr "Programiści wtyczek:"
 
 #: src/audacious/credits.c:83
 msgid "Patch authors:"
 msgstr "Autorzy poprawek:"
 
-#: src/audacious/credits.c:126
+#: src/audacious/credits.c:127
 msgid "1.x developers:"
 msgstr "Programiści wersji 1.x"
 
-#: src/audacious/credits.c:148
+#: src/audacious/credits.c:149
 msgid "BMP Developers:"
 msgstr "Programiści BMP:"
 
-#: src/audacious/credits.c:180
+#: src/audacious/credits.c:181
 msgid "Belarusian:"
 msgstr "Bułgarski:"
 
-#: src/audacious/credits.c:183
+#: src/audacious/credits.c:184
 msgid "Basque:"
 msgstr "Baskijski:"
 
-#: src/audacious/credits.c:186
+#: src/audacious/credits.c:187
 msgid "Brazilian Portuguese:"
 msgstr "Brazylijski Portugalski:"
 
-#: src/audacious/credits.c:190
+#: src/audacious/credits.c:192
 msgid "Breton:"
 msgstr "Bretoński:"
 
-#: src/audacious/credits.c:193
+#: src/audacious/credits.c:195
 msgid "Bulgarian:"
 msgstr "Bułgarski:"
 
-#: src/audacious/credits.c:196
+#: src/audacious/credits.c:198
 msgid "Catalan:"
 msgstr "Kataloński:"
 
-#: src/audacious/credits.c:199
+#: src/audacious/credits.c:202
 msgid "Chinese:"
 msgstr "Chiński:"
 
-#: src/audacious/credits.c:202
+#: src/audacious/credits.c:205
 msgid "Croatian:"
 msgstr "Chorwacki:"
 
-#: src/audacious/credits.c:205
+#: src/audacious/credits.c:208
 msgid "Czech:"
 msgstr "Czeski:"
 
-#: src/audacious/credits.c:208
+#: src/audacious/credits.c:211
 msgid "Dutch:"
 msgstr "Holenderski:"
 
-#: src/audacious/credits.c:212
+#: src/audacious/credits.c:215
 msgid "Estonian:"
 msgstr "Estoński:"
 
-#: src/audacious/credits.c:215
+#: src/audacious/credits.c:218
 msgid "Finnish:"
 msgstr "Fiński:"
 
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:223
 msgid "French:"
 msgstr "Francuski:"
 
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:229
 msgid "German:"
 msgstr "Niemiecki:"
 
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:236
 msgid "Georgian:"
 msgstr "Gruziński:"
 
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:239
 msgid "Greek:"
 msgstr "Grecki:"
 
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:244
 msgid "Hindi:"
 msgstr "Hinduski:"
 
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:247
 msgid "Hungarian:"
 msgstr "Węgierski:"
 
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:251
 msgid "Italian:"
 msgstr "WÅ‚oski:"
 
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:256
 msgid "Japanese:"
 msgstr "Japoński:"
 
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:259
 msgid "Korean:"
 msgstr "Koreański:"
 
-#: src/audacious/credits.c:256
-#, fuzzy
+#: src/audacious/credits.c:262
 msgid "Latvian:"
-msgstr "Chorwacki:"
+msgstr "Łotewski:"
 
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:265
 msgid "Lithuanian:"
 msgstr "Litewski:"
 
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:270
 msgid "Macedonian:"
 msgstr "Macedoński:"
 
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:273
 msgid "Polish:"
 msgstr "Polski:"
 
-#: src/audacious/credits.c:271
-#, fuzzy
+#: src/audacious/credits.c:279
 msgid "Portuguese:"
 msgstr "Portugalski:"
 
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:282
 msgid "Romanian:"
 msgstr "Rumuński:"
 
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:286
 msgid "Russian:"
 msgstr "Rosyjski:"
 
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:290
 msgid "Serbian (Latin):"
 msgstr "Serbski (Łaciński):"
 
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:293
 msgid "Serbian (Cyrillic):"
 msgstr "Serbski (Cyrylica):"
 
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:297
 msgid "Simplified Chinese:"
 msgstr "Chiński uproszczony:"
 
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:300
 msgid "Slovak:"
 msgstr "SÅ‚owacki:"
 
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:303
 msgid "Spanish:"
 msgstr "Hiszpański:"
 
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:311
 msgid "Swedish:"
 msgstr "Szwedzki:"
 
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:314
 msgid "Traditional Chinese:"
 msgstr "Chiński tradycyjny:"
 
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:320
 msgid "Turkish:"
 msgstr "Turecki:"
 
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:324
 msgid "Ukrainian:"
 msgstr "Ukraiński:"
 
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:328
+msgid "Vietnamese:"
+msgstr "Wietnamski:"
+
+#: src/audacious/credits.c:331
 msgid "Welsh:"
 msgstr "Walijski:"
 
-#: src/audacious/drct.c:254
-msgid "Temporary Playlist"
-msgstr "Tymczasowa lista odtwarzania"
-
-#: src/audacious/equalizer_preset.c:186
+#: src/audacious/equalizer_preset.c:180
 #, c-format
 msgid "Error importing Winamp EQF file '%s'"
-msgstr "BÅ‚Ä…d importowania pliku Winamp EQF: %s"
-
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr "Szukanie..."
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] "Znaleziono %d plik"
-msgstr[1] "Znaleziono %d plików"
+msgstr "BÅ‚Ä…d importowania pliku EQF, programu Winamp: %s"
 
-#: src/audacious/main.c:247
+#: src/audacious/main.c:243
 msgid "Skip backwards in playlist"
-msgstr "Przeskakuje do poprzedniego utworu na liście odtwarzania"
+msgstr "Przechodzi do poprzedniego nagrania na liście odtwarzania"
 
-#: src/audacious/main.c:248
+#: src/audacious/main.c:244
 msgid "Start playing current playlist"
 msgstr "Rozpoczyna odtwarzanie bieżącej listy odtwarzania"
 
-#: src/audacious/main.c:249
+#: src/audacious/main.c:245
 msgid "Pause current song"
-msgstr "Wstrzymuje bieżący utwór"
+msgstr "Wstrzymuje odtwarzanie bieżącego nagrania"
 
-#: src/audacious/main.c:250
+#: src/audacious/main.c:246
 msgid "Stop current song"
-msgstr "Zatrzymuje bieżący utwór"
+msgstr "Zatrzymuje odtwarzanie bieżącego nagrania"
 
-#: src/audacious/main.c:251
+#: src/audacious/main.c:247
 msgid "Pause if playing, play otherwise"
-msgstr "Wstrzymuje, jeśli odtwarzany jest utwór, w przeciwnym razie wznawia"
+msgstr "Wstrzymuje i wznawia odtwarzanie bieżącego nagrania"
 
-#: src/audacious/main.c:252
+#: src/audacious/main.c:248
 msgid "Skip forward in playlist"
-msgstr "Przechodzi do następnego utworu na liście odtwarzania"
+msgstr "Przechodzi do następnego nagrania na liście odtwarzania"
 
-#: src/audacious/main.c:253
+#: src/audacious/main.c:249
 msgid "Display Jump to File dialog"
 msgstr "Wyświetl okno dialogowe Skocz do pliku"
 
-#: src/audacious/main.c:254
+#: src/audacious/main.c:250
 msgid "Add files to the playlist"
 msgstr "Dodaje pliki do listy odtwarzania."
 
-#: src/audacious/main.c:255
+#: src/audacious/main.c:251
 msgid "Add new files to a temporary playlist"
 msgstr "Dodaj nowe pliki do tymczasowej listy odtwarzania"
 
-#: src/audacious/main.c:256
+#: src/audacious/main.c:252
 msgid "Display the main window"
 msgstr "Wyświetla główne okno"
 
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr "Wyświetla wszystkie otwarte okna"
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:253
 msgid "Show version"
 msgstr "Pokaż wersję"
 
-#: src/audacious/main.c:259
+#: src/audacious/main.c:254
 msgid "Print debugging messages"
-msgstr ""
+msgstr "Wyświetl komunikaty debugera"
+
+#: src/audacious/main.c:255
+msgid "Headless mode (beta)"
+msgstr "Tryb \"Headless\" (bez gui - beta)"
 
-#: src/audacious/main.c:260
+#: src/audacious/main.c:256
 msgid "FILE..."
 msgstr "PLIK..."
 
-#: src/audacious/main.c:272
+#: src/audacious/main.c:268
 msgid "- play multimedia files"
 msgstr " - odtwarza pliki multimedialne"
 
-#: src/audacious/main.c:282
+#: src/audacious/main.c:278
 #, c-format
 msgid ""
 "%s: %s\n"
@@ -301,335 +295,297 @@ msgstr ""
 "%s: %s\n"
 "Napisz `%s --help', żeby dowiedzieć się więcej.\n"
 
-#: src/audacious/main.c:395
-msgid ""
-"Audacious seems to be already running but is not responding.  You can start "
-"another instance of the program, but please be warned that this can cause "
-"data loss.  If Audacious is not running, you can safely ignore this "
-"message.  Press OK to start Audacious or Cancel to quit."
-msgstr ""
-
-#: src/audacious/main.c:558
+#: src/audacious/main.c:572
 msgid "Audacious"
 msgstr "Audacious"
 
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:307
 #, c-format
 msgid "No decoder found for %s."
 msgstr "Nie znaleziono dekodera dla %s"
 
-#: src/audacious/playback.c:519
-msgid "Buffering ..."
-msgstr "Buforowanie ..."
+#: src/audacious/playlist-new.c:131
+msgid "New Playlist"
+msgstr "Nowa lista odtwarzania"
 
-#: src/audacious/playlist-new.c:288
-msgid "Untitled Playlist"
-msgstr "Nowa lista"
+#: src/audacious/playlist-new.c:132
+msgid "Now Playing"
+msgstr "Odtwarzane"
 
-#: src/audacious/ui_preferences.c:88
-msgid "Audio"
-msgstr "Audio"
+#: src/audacious/playlist-new.c:1627
+msgid ""
+"The playlist cannot be sorted because metadata scanning is still in progress"
+" (or has been disabled)."
+msgstr ""
+"Lista odtwarzania nie może zostać posortowana, gdyż odczytywanie metadanych "
+"nadal trwa albo zostało ono wyłączone."
 
-#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
-msgstr "Replay Gain"
+#: src/audacious/ui_preferences.c:85
+msgid "Audio"
+msgstr "Dźwięk"
 
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:86
 msgid "Network"
 msgstr "Sieć"
 
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:87 src/audacious/ui_preferences.c:1603
 msgid "Playlist"
 msgstr "Lista odtwarzania"
 
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:88
 msgid "Plugins"
 msgstr "Wtyczki"
 
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:94 src/libaudgui/infopopup.c:203
 msgid "Artist"
 msgstr "Wykonawca"
 
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:95 src/libaudgui/infopopup.c:205
 msgid "Album"
 msgstr "Album"
 
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:201
+#: src/libaudgui/ui_playlist_manager.c:279
 msgid "Title"
 msgstr "Tytuł"
 
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:97
 msgid "Tracknumber"
-msgstr "Numer utworu"
+msgstr "Numer ścieżki"
 
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:207
 msgid "Genre"
 msgstr "Gatunek"
 
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:99
 msgid "Filename"
 msgstr "Nazwa pliku"
 
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:100
 msgid "Filepath"
 msgstr "Położenie pliku"
 
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:101
 msgid "Date"
 msgstr "Data"
 
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:209
 msgid "Year"
 msgstr "Rok"
 
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:103
 msgid "Comment"
 msgstr "Komentarz"
 
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:104
 msgid "Codec"
 msgstr "Kodek"
 
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:105
 msgid "Quality"
 msgstr "Jakość"
 
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:111
 msgid "None"
 msgstr "Brak"
 
+#: src/audacious/ui_preferences.c:112
+msgid "Arabic"
+msgstr "Arabski"
+
+#: src/audacious/ui_preferences.c:113
+msgid "Baltic"
+msgstr "Bałtycki"
+
+#: src/audacious/ui_preferences.c:114
+msgid "Chinese"
+msgstr "Chiński"
+
 #: src/audacious/ui_preferences.c:115
-msgid "Japanese"
-msgstr "Japoński"
+msgid "Greek"
+msgstr "Grecki"
 
 #: src/audacious/ui_preferences.c:116
-msgid "Taiwanese"
-msgstr "Tajwański"
+msgid "Hebrew"
+msgstr "Hebrajski"
 
 #: src/audacious/ui_preferences.c:117
-msgid "Chinese"
-msgstr "Chiński"
+msgid "Japanese"
+msgstr "Japoński"
 
 #: src/audacious/ui_preferences.c:118
 msgid "Korean"
 msgstr "Koreański"
 
 #: src/audacious/ui_preferences.c:119
-msgid "Russian"
-msgstr "Rosyjski"
+msgid "Polish"
+msgstr "Polski"
 
 #: src/audacious/ui_preferences.c:120
-msgid "Greek"
-msgstr "Grecki"
+msgid "Russian"
+msgstr "Rosyjski"
 
 #: src/audacious/ui_preferences.c:121
-msgid "Hebrew"
-msgstr "Hebrajski"
+msgid "Taiwanese"
+msgstr "Tajwański"
 
 #: src/audacious/ui_preferences.c:122
 msgid "Turkish"
 msgstr "Turecki"
 
-#: src/audacious/ui_preferences.c:123
-msgid "Arabic"
-msgstr "Arabski"
-
-#: src/audacious/ui_preferences.c:124
-msgid "Polish"
-msgstr "Polski"
-
-#: src/audacious/ui_preferences.c:125
-msgid "Baltic"
-msgstr "Bałtycki"
-
-#: src/audacious/ui_preferences.c:126
-msgid "Universal"
-msgstr "Uniwersalny"
-
-#: src/audacious/ui_preferences.c:146
-msgid "<b>Bit Depth</b>"
-msgstr "<b>Częstotliwość próbkowania</b>"
+#: src/audacious/ui_preferences.c:144
+msgid "Album mode"
+msgstr "Album"
 
 #: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr "Wyjście:"
-
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
-"Wszystkie strumienie będą konwertowane do tej częstotliwości \n"
-"próbkowania. Powinna to być maksymalna częstotliwość wspierana \n"
-"przez kartę dźwiękową lub wtyczkę wyjściową."
+msgid "<b>Output Settings</b>"
+msgstr "<b>Wyjście dźwięku</b>"
 
-#: src/audacious/ui_preferences.c:151
-msgid "<b>Volume Control</b>"
-msgstr "<b>Kontrola głośności</b>"
+#: src/audacious/ui_preferences.c:149
+msgid "Bit depth:"
+msgstr "Rozdzielczość bitowa:"
 
 #: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr "Użyj programowej zmiany głośności:"
+msgid "Buffer size:"
+msgstr "Rozmiar bufora:"
 
 #: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
-"Używa programowej zmiany głośności. Może być użyteczne w sytuacji, gdy karta "
-"dźwiękowa / wtyczka wyjściowa nie obsługuje zmiany głośności."
-
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
-msgstr "dB"
+msgid "ms"
+msgstr "ms"
 
-#: src/audacious/ui_preferences.c:160
-#, fuzzy
-msgid "Amplify untagged files:"
-msgstr " - odtwarza pliki multimedialne"
+#: src/audacious/ui_preferences.c:155
+msgid "Use software volume control (not recommended)"
+msgstr "Użycie programowej regulacji głośności (niezalecane)"
 
-#: src/audacious/ui_preferences.c:164
-#, fuzzy
+#: src/audacious/ui_preferences.c:157
 msgid "<b>Replay Gain</b>"
-msgstr "<b>Tryb Replay Gain</b>"
+msgstr "<b>Replay Gain</b>"
 
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:158
 msgid "Enable Replay Gain"
-msgstr "WÅ‚Ä…cz Replay Gain"
+msgstr "WÅ‚Ä…czenie"
 
-#: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>Nazwa:</b>"
-
-#: src/audacious/ui_preferences.c:168
-#, fuzzy
-msgid "Single track mode"
-msgstr "Pokaż informacje o pliku"
-
-#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "Album:"
+#: src/audacious/ui_preferences.c:161
+msgid "Prevent clipping (recommended)"
+msgstr "Zapobieganie zakłóceniom (zalecane)"
 
-#: src/audacious/ui_preferences.c:172
-#, fuzzy
+#: src/audacious/ui_preferences.c:163
 msgid "<b>Adjust Levels</b>"
-msgstr "<b>Opcje rolki myszy:</b>"
+msgstr "<b>Dostrajanie</b>"
 
-#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "<b>Informacja w dymkach</b>"
+#: src/audacious/ui_preferences.c:164
+msgid "Amplify all files:"
+msgstr "Wzmocnienie wszystkich plików:"
 
-#: src/audacious/ui_preferences.c:176
-#, fuzzy
-msgid "Enable clipping prevention"
-msgstr "Użyj informacji o wzmocnieniu z pliku, aby zapobiec zakłóceniom"
+#: src/audacious/ui_preferences.c:166 src/audacious/ui_preferences.c:169
+msgid "dB"
+msgstr "dB"
+
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify untagged files:"
+msgstr "Wzmocnienie plików bez etykiet:"
 
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:172
 msgid "Proxy hostname:"
-msgstr "Nazwa proxy:"
+msgstr "Nazwa komputera:"
 
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:173
 msgid "Proxy port:"
-msgstr "Port proxy:"
+msgstr "Port:"
 
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:176
 msgid "Proxy username:"
-msgstr "Użytkownik proxy:"
+msgstr "Nazwa użytkownika:"
 
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:177
 msgid "Proxy password:"
-msgstr "Hasło dla proxy:"
+msgstr "Hasło:"
 
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:181
 msgid "<b>Proxy Configuration</b>"
-msgstr "<b>Konfiguracja proxy</b>"
+msgstr "<b>Pośrednik sieciowy</b>"
 
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:182
 msgid "Enable proxy usage"
-msgstr "WÅ‚Ä…cz ustawienia proxy"
+msgstr "WÅ‚Ä…czenie"
 
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:185
 msgid "Use authentication with proxy"
-msgstr "Użyj uwierzytelniania dla proxy"
+msgstr "Uwierzytelnianie"
 
-#: src/audacious/ui_preferences.c:197
-msgid ""
-"<span size=\"small\">Changing these settings will require a restart of "
-"Audacious.</span>"
-msgstr ""
-"<span size=\"small\">Zmiana tych ustawień wymaga ponownego uruchomienia "
-"Audacious.</span>"
-
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
 msgid "Auto character encoding detector for:"
-msgstr "Autodetekcja kodowania na:"
+msgstr "Automatycze wykrywanie kodowania dla:"
 
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:198
 msgid "Fallback character encodings:"
 msgstr "Zastępcze kodowanie znaków:"
 
-#: src/audacious/ui_preferences.c:209
-msgid ""
-"List of character encodings used for fall back conversion of metadata. If "
-"automatic character encoding detector failed or has been disabled, encodings "
-"in this list would be treated as candidates of the encoding of metadata, and "
-"fall back conversion from these encodings to UTF-8 would be attempted."
-msgstr ""
-"Lista kodowania znaków używana jest podczas konwersji metadanych plików. "
-"Jeśli automatyczne ustawienie kodowania się nie powiodło lub zostało "
-"wyłączone, znaki kodowania w tej liście będą uważane jako kandydaci dla "
-"kodowania informacji o pliku. Wówczas zostanie podjęta próba konwersji "
-"kodowania na UTF-8."
-
-#: src/audacious/ui_preferences.c:213
-#, fuzzy
+#: src/audacious/ui_preferences.c:202
 msgid "<b>Behavior</b>"
-msgstr "<b>Częstotliwość próbkowania</b>"
+msgstr "<b>Zachowanie</b>"
 
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:203
 msgid "Continue playback on startup"
-msgstr "Kontynuuj grÄ™ po uruchomieniu programu"
+msgstr "Kontynuowanie odtwarzania po uruchomieniu programu"
 
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:205
 msgid "Advance when the current song is deleted"
-msgstr ""
+msgstr "Odtwarzaj następny, gdy aktualny utwór zostanie usunięty"
 
-#: src/audacious/ui_preferences.c:218
-#, fuzzy
+#: src/audacious/ui_preferences.c:207
 msgid "Clear the playlist when opening files"
-msgstr "Wyczyść aktualną listę odtwarzania przy otwieraniu nowych plików"
+msgstr "Wyczyść listę odtwarzania przy otwieraniu nowych plików"
 
-#: src/audacious/ui_preferences.c:220
-#, fuzzy
+#: src/audacious/ui_preferences.c:209
 msgid "Open files in a temporary playlist"
-msgstr "Dodaj nowe pliki do tymczasowej listy odtwarzania"
+msgstr "Dodawanie plików do tymczasowej listy odtwarzania"
 
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:211
 msgid "<b>Metadata</b>"
-msgstr "<b>Opcje metadanych</b>"
+msgstr "<b>Metadane</b>"
+
+#: src/audacious/ui_preferences.c:212
+msgid "Do not load metadata for songs until played"
+msgstr "Pomijanie wczytywania metadanych nagrań do czasu odtworzenia"
+
+#: src/audacious/ui_preferences.c:230
+msgid "TITLE"
+msgstr "TYTUŁ"
+
+#: src/audacious/ui_preferences.c:231
+msgid "ARTIST - TITLE"
+msgstr "WYKONAWCA - TYTUŁ"
 
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:232
+msgid "ARTIST - ALBUM - TITLE"
+msgstr "WYKONAWCA - ALBUM - TYTUŁ"
+
+#: src/audacious/ui_preferences.c:233
+msgid "ARTIST - ALBUM - TRACK. TITLE"
+msgstr "WYKONAWCA - ALBUM - UTWÓR. TYTUŁ"
+
+#: src/audacious/ui_preferences.c:234
+msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
+msgstr "WYKONAWCA [ ALBUM ] - UTWÓR. TYTUŁ"
+
+#: src/audacious/ui_preferences.c:235
+msgid "ALBUM - TITLE"
+msgstr "ALBUM - TYTUŁ"
+
+#: src/audacious/ui_preferences.c:556
 msgid "Category"
 msgstr "Kategoria"
 
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:780
 msgid "Popup Information Settings"
 msgstr "Ustawienia informacji w dymkach"
 
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:789
 msgid "<b>Cover image retrieve</b>"
 msgstr "<b>Wyszukiwanie okładek albumów</b>"
 
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:794
 msgid ""
 "While searching for the album's cover, Audacious looks for certain words in "
 "the filename. You can specify those words in the lists below, separated "
@@ -639,99 +595,75 @@ msgstr ""
 "nazwach plików. Możesz określić te słowa w listach poniżej, oddzielając je "
 "średnikami"
 
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:811
 msgid "Exclude:"
 msgstr "Omiń:"
 
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:818
 msgid "Include:"
 msgstr "Użyj:"
 
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:835
 msgid "Recursively search for cover"
 msgstr "Rekurencyjnie szukaj okładek"
 
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:845
 msgid "Search depth: "
 msgstr "Głębokość wyszukiwania: "
 
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:859
 msgid "Use per-file cover"
 msgstr "Użyj osobnej okładki do każdego pliku"
 
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:862
 msgid "<b>Miscellaneous</b>"
 msgstr "<b>Różne</b>"
 
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:871
 msgid "Show Progress bar for the current track"
 msgstr "Pokaż pasek postępu dla aktualnej ścieżki"
 
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:881
 msgid "Delay until filepopup comes up: "
 msgstr "Opóźnienie wyświetlania informacji:"
 
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1309
+msgid "Custom"
+msgstr "WÅ‚asny"
+
+#: src/audacious/ui_preferences.c:1352
 msgid "<b>Song Display</b>"
 msgstr "<b>Wyświetlanie utworu</b>"
 
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1361
 msgid "Show song numbers"
-msgstr "Pokaż numery utworów"
+msgstr "Numery ścieżek"
 
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1372
 msgid "Show leading zeroes (02:00 instead of 2:00)"
-msgstr ""
+msgstr "Zera wiodÄ…ce (02:00 zamiast 2:00)"
 
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1394
 msgid "Show information about titlestring format"
 msgstr "Pokaż informację o formacie ciągu tytułowego"
 
-#: src/audacious/ui_preferences.c:1514
-msgid "TITLE"
-msgstr "TYTUŁ"
-
-#: src/audacious/ui_preferences.c:1515
-msgid "ARTIST - TITLE"
-msgstr "ARTYSTA - TYTUŁ"
-
-#: src/audacious/ui_preferences.c:1516
-msgid "ARTIST - ALBUM - TITLE"
-msgstr "ARTYSTA - ALBUM - TYTUŁ"
-
-#: src/audacious/ui_preferences.c:1517
-msgid "ARTIST - ALBUM - TRACK. TITLE"
-msgstr "ARTYSTA - ALBUM - UTWÓR. TYTUŁ"
-
-#: src/audacious/ui_preferences.c:1518
-msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
-msgstr "ARTYSTA [ ALBUM ] - UTWÓR. TYTUŁ"
-
-#: src/audacious/ui_preferences.c:1519
-msgid "ALBUM - TITLE"
-msgstr "ALBUM - TYTUŁ"
-
-#: src/audacious/ui_preferences.c:1520
-msgid "Custom"
-msgstr "WÅ‚asny"
-
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1410
 msgid "Custom string:"
 msgstr "WÅ‚asny:"
 
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1417
 msgid "Title format:"
 msgstr "Format tytułu:"
 
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1428
 msgid "<b>Popup Information</b>"
 msgstr "<b>Informacja w dymkach</b>"
 
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1443
 msgid "Show popup information for playlist entries"
 msgstr "Pokaż informacje w dymkach dla wpisów na liście"
 
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1444
 msgid ""
 "Toggles popup information window for the pointed entry in the playlist. The "
 "window shows title of song, name of album, genre, year of publish, track "
@@ -741,76 +673,73 @@ msgstr ""
 "Okno to ukazuje informacje o tytule, nazwie albumu, rodzaju muzyki, roku "
 "publikacji, numeru ścieżki, jej długości oraz zdjęcie okładki."
 
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1455
 msgid "Edit settings for popup information"
 msgstr "Edytuj wpisy dla informacji o dymkach"
 
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>System Audio</b>"
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "Rozmiar bufora:"
-
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
-msgstr "Aktualna wtyczka wyjściowa:"
+#: src/audacious/ui_preferences.c:1544
+msgid "Output plugin:"
+msgstr "Wtyczka:"
 
-#: src/audacious/ui_preferences.c:1790
-#, fuzzy
+#: src/audacious/ui_preferences.c:1603
 msgid "Transport"
-msgstr "Lokalizacja"
+msgstr "Transport"
 
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1603
 msgid "Input"
-msgstr ""
+msgstr "Wejście"
 
-#: src/audacious/ui_preferences.c:1791
-#, fuzzy
+#: src/audacious/ui_preferences.c:1604
 msgid "Effect"
-msgstr "<b>Efekty</b>"
+msgstr "Efekty"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1604
 msgid "Visualization"
 msgstr "Wizualizacja"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1604
 msgid "General"
-msgstr ""
+msgstr "Ogólne"
 
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1644
 msgid "Audacious Preferences"
-msgstr "Ustawienia Audacious"
+msgstr "Preferencje Audacious"
 
-#: src/audacious/util.c:161
+#: src/audacious/util.c:120
 #, c-format
 msgid "Could not create directory (%s): %s\n"
-msgstr "Nie można utworzyć folderu (%s): %s\n"
+msgstr "Nie można utworzyć katalogu (%s): %s\n"
 
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:273
 msgid "Position not found."
-msgstr "Pozycja nie została znaleziona"
+msgstr "Nie odnaleziono pozycji"
 
-#: src/audtool/handlers_vitals.c:64
+#: src/audtool/handlers_vitals.c:63
 msgid "No song playing."
 msgstr "Żaden utwór nie jest odtwarzany"
 
-#: src/libaudcore/tuple.c:685
+#: src/libaudcore/audstrings.c:194
+#, c-format
+msgid "Audio CD, track %s"
+msgstr "Płyta Audio CD, ścieżka %s"
+
+#: src/libaudcore/tuple.c:536
 msgid "Mono"
 msgstr "Mono"
 
-#: src/libaudcore/tuple.c:687
-#, fuzzy
+#: src/libaudcore/tuple.c:538
 msgid "Stereo"
-msgstr "stereo"
+msgstr "Stereo"
 
-#: src/libaudcore/tuple.c:689
-#, fuzzy, c-format
-msgid "%d channels"
-msgstr "Kanały"
+#: src/libaudcore/tuple.c:540
+#, c-format
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] "%d kanał"
+msgstr[1] "%d kanały"
+msgstr[2] "%d kanałów"
 
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/confirm.c:78
 #, c-format
 msgid ""
 "Are you sure you want to close %s?  If you do, any changes made since the "
@@ -819,322 +748,341 @@ msgstr ""
 "Jesteś pewien, że chcesz zamknąć %s?  Jeśli to zrobisz, wszelkie zmiany "
 "poczynione od momentu eksportowania listy zostanÄ… utracone."
 
-#: src/libaudgui/confirm.c:77
+#: src/libaudgui/confirm.c:91
 msgid "_Don't show this message again"
 msgstr "Nie pokazuj więcej tego _ostrzeżenia"
 
-#: src/libaudgui/confirm.c:115
-#, fuzzy
+#: src/libaudgui/confirm.c:128
 msgid "Rename Playlist"
-msgstr "Zapisz listÄ™ odtwarzania"
+msgstr "Zmień nazwę playlisty"
 
 #: src/libaudgui/effects-menu.c:76
 msgid "settings ..."
-msgstr "Ustawienia miksera"
+msgstr "Preferencje miksera"
 
-#: src/libaudgui/equalizer.c:68
+#: src/libaudgui/equalizer.c:53
 msgid "_Enable"
-msgstr "_WÅ‚Ä…czony"
+msgstr "_WÅ‚Ä…czenie"
 
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:125
 msgid "31 Hz"
 msgstr "31 Hz"
 
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:125
 msgid "63 Hz"
 msgstr "63 Hz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:126
 msgid "125 Hz"
 msgstr "125 Hz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:126
 msgid "250 Hz"
 msgstr "250 Hz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:126
 msgid "500 Hz"
 msgstr "500 Hz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:126
 msgid "1 kHz"
 msgstr "1 kHz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:126
 msgid "2 kHz"
 msgstr "2 kHz"
 
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:127
 msgid "4 kHz"
 msgstr "4 kHz"
 
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:127
 msgid "8 kHz"
 msgstr "8 kHz"
 
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:127
 msgid "16 kHz"
 msgstr "16 kHz"
 
-#: src/libaudgui/equalizer.c:147
+#: src/libaudgui/equalizer.c:132
 msgid "Equalizer"
 msgstr "Korektor graficzny"
 
-#: src/libaudgui/equalizer.c:163
+#: src/libaudgui/equalizer.c:148
 msgid "Preamp"
-msgstr "Przedwzmacniacz"
+msgstr "Przedwzmocnienie"
 
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:211
 msgid "Track Number"
 msgstr "Numer utworu"
 
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:213
 msgid "Track Length"
 msgstr "Długość utworu"
 
-#: src/libaudgui/infowin.c:77
+#: src/libaudgui/infowin.c:78
 msgid "Acid Jazz"
 msgstr "Acid Jazz"
 
-#: src/libaudgui/infowin.c:78
-#, fuzzy
+#: src/libaudgui/infowin.c:79
 msgid "Acid Rock"
-msgstr "Hard Rock"
+msgstr "Acid Rock"
 
-#: src/libaudgui/infowin.c:79
+#: src/libaudgui/infowin.c:80
 msgid "Ambient"
 msgstr "Ambient"
 
-#: src/libaudgui/infowin.c:80
-#, fuzzy
+#: src/libaudgui/infowin.c:81
 msgid "Bebop"
-msgstr "Bebob"
+msgstr "Bebop"
 
-#: src/libaudgui/infowin.c:81
+#: src/libaudgui/infowin.c:82
 msgid "Bluegrass"
 msgstr "Bluegrass"
 
-#: src/libaudgui/infowin.c:82
+#: src/libaudgui/infowin.c:83
 msgid "Blues"
 msgstr "Blues"
 
-#: src/libaudgui/infowin.c:83
+#: src/libaudgui/infowin.c:84
 msgid "Chamber Music"
 msgstr "Muzyka kameralna"
 
-#: src/libaudgui/infowin.c:84
+#: src/libaudgui/infowin.c:85
 msgid "Classical"
 msgstr "Klasyczna"
 
-#: src/libaudgui/infowin.c:85
+#: src/libaudgui/infowin.c:86
 msgid "Country"
 msgstr "Country"
 
-#: src/libaudgui/infowin.c:86
+#: src/libaudgui/infowin.c:87
 msgid "Death Metal"
 msgstr "Death Metal"
 
-#: src/libaudgui/infowin.c:87
+#: src/libaudgui/infowin.c:88
 msgid "Disco"
 msgstr "Disco"
 
-#: src/libaudgui/infowin.c:88
+#: src/libaudgui/infowin.c:89
 msgid "Easy Listening"
 msgstr "Lekka w słuchaniu"
 
-#: src/libaudgui/infowin.c:89
+#: src/libaudgui/infowin.c:90
 msgid "Folk"
 msgstr "Folk"
 
-#: src/libaudgui/infowin.c:90
+#: src/libaudgui/infowin.c:91
 msgid "Funk"
 msgstr "Funk"
 
-#: src/libaudgui/infowin.c:91
+#: src/libaudgui/infowin.c:92
 msgid "Gangsta Rap"
 msgstr "Gangsta rap"
 
-#: src/libaudgui/infowin.c:92
+#: src/libaudgui/infowin.c:93
 msgid "Gospel"
-msgstr "Religijna"
+msgstr "Gospel"
 
-#: src/libaudgui/infowin.c:93
+#: src/libaudgui/infowin.c:94
 msgid "Grunge"
 msgstr "Grunge"
 
-#: src/libaudgui/infowin.c:94
+#: src/libaudgui/infowin.c:95
 msgid "Hard Rock"
 msgstr "Hard Rock"
 
-#: src/libaudgui/infowin.c:95
+#: src/libaudgui/infowin.c:96
 msgid "Heavy Metal"
 msgstr "Heavy Metal"
 
-#: src/libaudgui/infowin.c:96
-#, fuzzy
+#: src/libaudgui/infowin.c:97
 msgid "Hip-hop"
-msgstr "Hip-Hop"
+msgstr "Hip-hop"
 
-#: src/libaudgui/infowin.c:97
+#: src/libaudgui/infowin.c:98
 msgid "House"
 msgstr "House"
 
-#: src/libaudgui/infowin.c:98
+#: src/libaudgui/infowin.c:99
 msgid "Jazz"
 msgstr "Jazz"
 
-#: src/libaudgui/infowin.c:99
+#: src/libaudgui/infowin.c:100
 msgid "Jungle"
 msgstr "Jungle"
 
-#: src/libaudgui/infowin.c:100
+#: src/libaudgui/infowin.c:101
 msgid "Metal"
 msgstr "Metal"
 
-#: src/libaudgui/infowin.c:101
+#: src/libaudgui/infowin.c:102
 msgid "New Age"
 msgstr "New Age"
 
-#: src/libaudgui/infowin.c:102
+#: src/libaudgui/infowin.c:103
 msgid "New Wave"
 msgstr "New Wave"
 
-#: src/libaudgui/infowin.c:103
+#: src/libaudgui/infowin.c:104
 msgid "Noise"
-msgstr "Szum"
+msgstr "Noise"
 
-#: src/libaudgui/infowin.c:104
+#: src/libaudgui/infowin.c:105
 msgid "Pop"
 msgstr "Pop"
 
-#: src/libaudgui/infowin.c:105
+#: src/libaudgui/infowin.c:106
 msgid "Punk Rock"
 msgstr "Punk Rock"
 
-#: src/libaudgui/infowin.c:106
+#: src/libaudgui/infowin.c:107
 msgid "Rap"
 msgstr "Rap"
 
-#: src/libaudgui/infowin.c:107
+#: src/libaudgui/infowin.c:108
 msgid "Reggae"
 msgstr "Reggae"
 
-#: src/libaudgui/infowin.c:108
+#: src/libaudgui/infowin.c:109
 msgid "Rock"
 msgstr "Rock"
 
-#: src/libaudgui/infowin.c:109
-#, fuzzy
+#: src/libaudgui/infowin.c:110
 msgid "Rock and Roll"
 msgstr "Rock & Roll"
 
-#: src/libaudgui/infowin.c:110
+#: src/libaudgui/infowin.c:111
 msgid "Rhythm and Blues"
-msgstr ""
+msgstr "Rhythm and Blues"
 
-#: src/libaudgui/infowin.c:111
+#: src/libaudgui/infowin.c:112
 msgid "Ska"
 msgstr "Ska"
 
-#: src/libaudgui/infowin.c:112
+#: src/libaudgui/infowin.c:113
 msgid "Soul"
 msgstr "Duchowa"
 
-#: src/libaudgui/infowin.c:113
+#: src/libaudgui/infowin.c:114
 msgid "Swing"
 msgstr "Swing"
 
-#: src/libaudgui/infowin.c:114
+#: src/libaudgui/infowin.c:115
 msgid "Techno"
 msgstr "Techno"
 
-#: src/libaudgui/infowin.c:115
-#, fuzzy
+#: src/libaudgui/infowin.c:116
 msgid "Trip-hop"
-msgstr "Trip-Hop"
+msgstr "Trip-hop"
 
-#: src/libaudgui/infowin.c:175 src/libaudgui/infowin.c:361
-#: src/libaudgui/infowin.c:364 src/libaudgui/infowin.c:367
+#: src/libaudgui/infowin.c:180 src/libaudgui/infowin.c:366
+#: src/libaudgui/infowin.c:369 src/libaudgui/infowin.c:372
 msgid "<span size=\"small\">n/a</span>"
 msgstr "<span size=\"small\">n/a</span>"
 
-#: src/libaudgui/infowin.c:265
+#: src/libaudgui/infowin.c:270
 msgid "Metadata updated successfully"
-msgstr "Aktualizacja metadanych zakończona powodzeniem"
+msgstr "Zaktualizowano metadane"
 
-#: src/libaudgui/infowin.c:270
+#: src/libaudgui/infowin.c:275
 msgid "Metadata updating failed"
 msgstr "Nie udało się zaktualizować metadanych"
 
-#: src/libaudgui/infowin.c:318
+#: src/libaudgui/infowin.c:323
 msgid "Track Information"
 msgstr "Informacje o ścieżce"
 
-#: src/libaudgui/infowin.c:350
+#: src/libaudgui/infowin.c:355
 msgid "<span size=\"small\">Format:</span>"
 msgstr "<span size=\"small\">Format:</span>"
 
-#: src/libaudgui/infowin.c:354
+#: src/libaudgui/infowin.c:359
 msgid "<span size=\"small\">Quality:</span>"
 msgstr "<span size=\"small\">Jakość:</span>"
 
-#: src/libaudgui/infowin.c:357
+#: src/libaudgui/infowin.c:362
 msgid "<span size=\"small\">Bitrate:</span>"
-msgstr "<span size=\"small\">Próbkowanie:</span>"
+msgstr "<span size=\"small\">Tempo bitowe:</span>"
 
-#: src/libaudgui/infowin.c:387
+#: src/libaudgui/infowin.c:392
 msgid "<span size=\"small\">Title</span>"
 msgstr "<span size=\"small\">Tytuł</span>"
 
-#: src/libaudgui/infowin.c:399
+#: src/libaudgui/infowin.c:404
 msgid "<span size=\"small\">Artist</span>"
-msgstr "<span size=\"small\">Artysta</span>"
+msgstr "<span size=\"small\">Wykonawca</span>"
 
-#: src/libaudgui/infowin.c:411
+#: src/libaudgui/infowin.c:416
 msgid "<span size=\"small\">Album</span>"
 msgstr "<span size=\"small\">Album</span>"
 
-#: src/libaudgui/infowin.c:423
+#: src/libaudgui/infowin.c:428
 msgid "<span size=\"small\">Comment</span>"
 msgstr "<span size=\"small\">Komentarz</span>"
 
-#: src/libaudgui/infowin.c:435
+#: src/libaudgui/infowin.c:440
 msgid "<span size=\"small\">Genre</span>"
-msgstr "<span size=\"small\">Rodzaj</span>"
+msgstr "<span size=\"small\">Gatunek</span>"
 
-#: src/libaudgui/infowin.c:456
+#: src/libaudgui/infowin.c:461
 msgid "<span size=\"small\">Year</span>"
 msgstr "<span size=\"small\">Rok</span>"
 
-#: src/libaudgui/infowin.c:467
+#: src/libaudgui/infowin.c:472
 msgid "<span size=\"small\">Track Number</span>"
 msgstr "<span size=\"small\">Numer utworu</span>"
 
-#: src/libaudgui/infowin.c:549
+#: src/libaudgui/infowin.c:551
 #, c-format
 msgid "%d kb/s"
 msgstr "%d kb/s"
 
-#: src/libaudgui/infowin.c:579
+#: src/libaudgui/infowin.c:578
 #, c-format
 msgid "No info available for %s.\n"
 msgstr "Brak informacji dla %s. \n"
 
-#: src/libaudgui/ui_about.c:71
+#: src/libaudgui/jump-to-time.c:75
+msgid "Jump to Time"
+msgstr "Skok do czasu"
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr "mm:ss"
+
+#: src/libaudgui/playlists.c:39
+msgid "Export Playlist"
+msgstr "Wybór pliku eksportowania"
+
+#: src/libaudgui/playlists.c:39
+msgid "Import Playlist"
+msgstr "Wybór pliku importowania"
+
+#: src/libaudgui/playlists.c:72
+#, c-format
+msgid "Overwrite %s?"
+msgstr "Zastąpić %s?"
+
+#: src/libaudgui/queue-manager.c:198
+msgid "Queue Manager"
+msgstr "Menedżer kolejki"
+
+#: src/libaudgui/ui_about.c:69
 msgid "About Audacious"
-msgstr "Informacje o Audacious"
+msgstr "Informacje o programie Audacious"
 
-#: src/libaudgui/ui_about.c:93 src/libaudgui/ui_credits.c:122
+#: src/libaudgui/ui_about.c:90 src/libaudgui/ui_credits.c:122
 msgid "Credits"
 msgstr "Zasługi"
 
 #: src/libaudgui/ui_credits.c:126
 msgid "Translators"
-msgstr "Lokalizacja"
+msgstr "TÅ‚umaczenia"
 
 #: src/libaudgui/ui_fileopener.c:108
 msgid "Open Files"
-msgstr "Wczytaj pliki"
+msgstr "Wybór pliku"
 
 #: src/libaudgui/ui_fileopener.c:108
 msgid "Add Files"
@@ -1142,96 +1090,105 @@ msgstr "Dodaj pliki"
 
 #: src/libaudgui/ui_fileopener.c:110
 msgid "Close dialog on Open"
-msgstr "Zamknij to okno przy otwarciu"
+msgstr "Zamknięcie tego okna po otworzeniu"
 
 #: src/libaudgui/ui_fileopener.c:110
 msgid "Close dialog on Add"
-msgstr "Zamknij to okno przy dodaniu"
-
-#: src/libaudgui/ui_jumptotrack.c:133
-msgid "Un_queue"
-msgstr "_Odejmij z kolejki"
+msgstr "Zamknięcie tego okna po dodaniu"
 
-#: src/libaudgui/ui_jumptotrack.c:135 src/libaudgui/ui_jumptotrack.c:512
+#: src/libaudgui/ui_jumptotrack.c:112 src/libaudgui/ui_jumptotrack.c:120
+#: src/libaudgui/ui_jumptotrack.c:329
 msgid "_Queue"
-msgstr "_Dodaj do Kolejki"
+msgstr "_Dodaj do kolejki"
 
-#: src/libaudgui/ui_jumptotrack.c:399
-msgid "Jump to Track"
-msgstr "Skok do utworu"
+#: src/libaudgui/ui_jumptotrack.c:118
+msgid "Un_queue"
+msgstr "_Usuń z kolejki"
+
+#: src/libaudgui/ui_jumptotrack.c:261
+msgid "Jump to Song"
+msgstr "Przechodzenie do nagrania"
 
-#: src/libaudgui/ui_jumptotrack.c:442
+#: src/libaudgui/ui_jumptotrack.c:284
 msgid "Filter: "
 msgstr "Filtr: "
 
-#: src/libaudgui/ui_jumptotrack.c:443
+#: src/libaudgui/ui_jumptotrack.c:285
 msgid "_Filter:"
 msgstr "_Filtr: "
 
-#: src/libaudgui/ui_jumptotrack.c:461
+#: src/libaudgui/ui_jumptotrack.c:295
 msgid "Remember"
-msgstr "Pamiętaj"
+msgstr "Pamiętanie"
 
-#: src/libaudgui/ui_jumptotrack.c:470
+#: src/libaudgui/ui_jumptotrack.c:302
 msgid "Clea_r"
 msgstr "_Wyczyść"
 
-#: src/libaudgui/ui_jumptotrack.c:504
+#: src/libaudgui/ui_jumptotrack.c:322
 msgid "Close on Jump"
-msgstr "Zamknij to okno przy otwarciu"
+msgstr "Zamknięcie tego okna po przejściu"
 
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:253
 msgid "Playlist Manager"
-msgstr "Menadżer list"
+msgstr "Menedżer list odtwarzania"
 
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:280
 msgid "Entries"
 msgstr "Pozycje"
 
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:301
 msgid "_Rename"
 msgstr "Zmień _nazwę"
 
-#: src/libaudgui/ui_playlist_manager.c:251
+#: src/libaudgui/ui_playlist_manager.c:325
 msgid "_Close dialog on activating playlist"
-msgstr "Zamknij to okno przy aktywa_cji playlisty"
+msgstr "Za_mknięcie tego okna po aktywowaniu listy"
 
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:51
 msgid "Open URL"
-msgstr "Otwórz URL"
+msgstr "Otwieranie adresu URL"
 
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:51
 msgid "Add URL"
-msgstr "Dodaj URL"
+msgstr "Dodawanie adresu URL"
+
+#: src/libaudgui/util.c:97
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+"\n"
+"(Dalsze informacje zostały ukryte.)"
 
 #: src/libeggsmclient/eggdesktopfile.c:165
 msgid "File is not a valid .desktop file"
-msgstr "Ten plik nie jest prawidłowym plikiem typu .desktop"
+msgstr "Plik nie jest prawidłowym plikiem typu .desktop"
 
-#: src/libeggsmclient/eggdesktopfile.c:188
+#: src/libeggsmclient/eggdesktopfile.c:191
 #, c-format
 msgid "Unrecognized desktop file Version '%s'"
 msgstr "Nierozpoznana wersja pliku desktop: '%s'"
 
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:974
 #, c-format
 msgid "Starting %s"
 msgstr "Uruchamianie %s"
 
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1116
 msgid "Application does not accept documents on command line"
 msgstr "Aplikacja nie przyjmuje dokumentów poprzez wiersz poleceń"
 
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1184
 #, c-format
 msgid "Unrecognized launch option: %d"
 msgstr "Nieznana opcja uruchamiania: %d"
 
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1391
 msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
 msgstr "Nie można przekazać URLi dokumentu do wpisu desktop 'Type=Link'"
 
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1412
 msgid "Not a launchable item"
 msgstr "Nieobsługiwany typ pliku"
 
@@ -1256,4512 +1213,11 @@ msgid "ID"
 msgstr "ID"
 
 #: src/libeggsmclient/eggsmclient.c:253
-#, fuzzy
 msgid "Session management options:"
-msgstr "Opcje zarzÄ…dzania sesjÄ…"
+msgstr "Opcje zarzÄ…dzania sesjÄ…:"
 
 #: src/libeggsmclient/eggsmclient.c:254
-#, fuzzy
 msgid "Show session management options"
 msgstr "Pokaż opcje zarządzania sesją"
 
-#~ msgid "%s: Unable to open display, exiting.\n"
-#~ msgstr "%s: Nie można otworzyć trybu graficznego, zamknięcie.\n"
-
-#~ msgid "Preamp:"
-#~ msgstr "Przedwzmacniacz:"
-
-#~ msgid "Default gain:"
-#~ msgstr "Domyślne wzmocnienie:"
-
-#~ msgid "This gain will be used if file doesn't contain Replay Gain metadata."
-#~ msgstr ""
-#~ "To wcmocnienie zostanie użyte, jeśli plik nie zawiera informacji na temat "
-#~ "Replay Gain."
-
-#~ msgid ""
-#~ "<span size=\"small\">Please remember that the most efficient way to "
-#~ "prevent signal clipping is not to use positive values above.</span>"
-#~ msgstr ""
-#~ "<span size=\"small\">Proszę pamiętać, że najlepszą jakość dźwięku zapewni "
-#~ "ustawienie powyżej ujemnych wartości.</span>"
-
-#~ msgid "<b>Replay Gain configuration</b>"
-#~ msgstr "<b>Konfiguracja Replay Gain</b>"
-
-#~ msgid "Track gain/peak"
-#~ msgstr "Wzmocnienie dla utworu"
-
-#~ msgid "Album gain/peak"
-#~ msgstr "Wzmocnienie dla całego albumu"
-
-#~ msgid "Use peak value from Replay Gain info for clipping prevention"
-#~ msgstr ""
-#~ "Używa wartości wzmocnienia z Replay Gain w celu poprawienia jakości i "
-#~ "zapobiegnięciu zakłóceniom."
-
-#~ msgid "Classic Rock"
-#~ msgstr "Rock klasyczny"
-
-#~ msgid "Dance"
-#~ msgstr "Dance"
-
-#~ msgid "Oldies"
-#~ msgstr "Stare przeboje"
-
-#~ msgid "Other"
-#~ msgstr "Inne"
-
-#~ msgid "R&B"
-#~ msgstr "R&B"
-
-#~ msgid "Industrial"
-#~ msgstr "Industrial"
-
-#~ msgid "Alternative"
-#~ msgstr "Alternatywna"
-
-#~ msgid "Pranks"
-#~ msgstr "Pranks"
-
-#~ msgid "Soundtrack"
-#~ msgstr "Ścieżka filmowa"
-
-#~ msgid "Euro-Techno"
-#~ msgstr "Euro-Techno"
-
-#~ msgid "Vocal"
-#~ msgstr "Wokal"
-
-#~ msgid "Jazz+Funk"
-#~ msgstr "Jazz+Funk"
-
-#~ msgid "Fusion"
-#~ msgstr "Fusion"
-
-#~ msgid "Trance"
-#~ msgstr "Trance"
-
-#~ msgid "Instrumental"
-#~ msgstr "Instrumentalna"
-
-#~ msgid "Acid"
-#~ msgstr "Acid"
-
-#~ msgid "Game"
-#~ msgstr "Game"
-
-#~ msgid "Sound Clip"
-#~ msgstr "Klip dźwiękowy"
-
-#~ msgid "AlternRock"
-#~ msgstr "Rock alternatywny"
-
-#~ msgid "Bass"
-#~ msgstr "Bas"
-
-#~ msgid "Punk"
-#~ msgstr "Punk"
-
-#~ msgid "Space"
-#~ msgstr "Przestrzeń"
-
-#~ msgid "Meditative"
-#~ msgstr "Medytacja"
-
-#~ msgid "Instrumental Pop"
-#~ msgstr "Pop instrumentalny"
-
-#~ msgid "Instrumental Rock"
-#~ msgstr "Rock instrumentalny"
-
-#~ msgid "Ethnic"
-#~ msgstr "Etniczna"
-
-#~ msgid "Gothic"
-#~ msgstr "Gotycka"
-
-#~ msgid "Darkwave"
-#~ msgstr "Darkwave"
-
-#~ msgid "Techno-Industrial"
-#~ msgstr "Techno-Industrial"
-
-#~ msgid "Electronic"
-#~ msgstr "Electroniczna"
-
-#~ msgid "Pop-Folk"
-#~ msgstr "Pop-Folk"
-
-#~ msgid "Eurodance"
-#~ msgstr "Eurodance"
-
-#~ msgid "Dream"
-#~ msgstr "Dream"
-
-#~ msgid "Southern Rock"
-#~ msgstr "Rock południowy"
-
-#~ msgid "Comedy"
-#~ msgstr "Komediowa"
-
-#~ msgid "Cult"
-#~ msgstr "Kultowa"
-
-#~ msgid "Top 40"
-#~ msgstr "Top 40"
-
-#~ msgid "Christian Rap"
-#~ msgstr "Rap Chrześcijański"
-
-#~ msgid "Pop/Funk"
-#~ msgstr "Pop/Funk"
-
-#~ msgid "Native American"
-#~ msgstr "Rdzennych Amerykanów"
-
-#~ msgid "Cabaret"
-#~ msgstr "Kabaretowa"
-
-#~ msgid "Psychedelic"
-#~ msgstr "Psychodeliczna"
-
-#~ msgid "Rave"
-#~ msgstr "Rave"
-
-#~ msgid "Showtunes"
-#~ msgstr "Showtunes"
-
-#~ msgid "Trailer"
-#~ msgstr "Zwiastun"
-
-#~ msgid "Lo-Fi"
-#~ msgstr "Lo-Fi"
-
-#~ msgid "Tribal"
-#~ msgstr "Plemienna"
-
-#~ msgid "Acid Punk"
-#~ msgstr "Acid Punk"
-
-#~ msgid "Polka"
-#~ msgstr "Polka"
-
-#~ msgid "Retro"
-#~ msgstr "Retro"
-
-#~ msgid "Musical"
-#~ msgstr "Musical"
-
-#~ msgid "Folk/Rock"
-#~ msgstr "Folk/Rock"
-
-#~ msgid "National Folk"
-#~ msgstr "Folk Narodowy"
-
-#~ msgid "Fast-Fusion"
-#~ msgstr "Fast-Fusion"
-
-#~ msgid "Latin"
-#~ msgstr "Latynoska"
-
-#~ msgid "Revival"
-#~ msgstr "Ożywiająca"
-
-#~ msgid "Celtic"
-#~ msgstr "Celtycka"
-
-#~ msgid "Avantgarde"
-#~ msgstr "Awangardowa"
-
-#~ msgid "Gothic Rock"
-#~ msgstr "Rock Gotycki"
-
-#~ msgid "Progressive Rock"
-#~ msgstr "Rock Progresywny"
-
-#~ msgid "Psychedelic Rock"
-#~ msgstr "Rock Psychodeliczny"
-
-#~ msgid "Symphonic Rock"
-#~ msgstr "Rock Symfoniczny"
-
-#~ msgid "Slow Rock"
-#~ msgstr "Wolny Rock"
-
-#~ msgid "Big Band"
-#~ msgstr "Big Band"
-
-#~ msgid "Chorus"
-#~ msgstr "Chóralna"
-
-#~ msgid "Acoustic"
-#~ msgstr "Akustyczna"
-
-#~ msgid "Humour"
-#~ msgstr "Humor"
-
-#~ msgid "Speech"
-#~ msgstr "Mowa"
-
-#~ msgid "Chanson"
-#~ msgstr "Chanson"
-
-#~ msgid "Opera"
-#~ msgstr "Opera"
-
-#~ msgid "Sonata"
-#~ msgstr "Sonata"
-
-#~ msgid "Symphony"
-#~ msgstr "Symfonia"
-
-#~ msgid "Booty Bass"
-#~ msgstr "Booty Bass"
-
-#~ msgid "Primus"
-#~ msgstr "Primus"
-
-#~ msgid "Porn Groove"
-#~ msgstr "Porn Groove"
-
-#~ msgid "Satire"
-#~ msgstr "Satyra"
-
-#~ msgid "Slow Jam"
-#~ msgstr "Wolny Jam"
-
-#~ msgid "Club"
-#~ msgstr "Klubowa"
-
-#~ msgid "Tango"
-#~ msgstr "Tango"
-
-#~ msgid "Samba"
-#~ msgstr "Samba"
-
-#~ msgid "Folklore"
-#~ msgstr "Folklor"
-
-#~ msgid "Ballad"
-#~ msgstr "Ballada"
-
-#~ msgid "Power Ballad"
-#~ msgstr "Mocna Ballada"
-
-#~ msgid "Rhythmic Soul"
-#~ msgstr "Rytmiczna duchowa"
-
-#~ msgid "Freestyle"
-#~ msgstr "Freestyle"
-
-#~ msgid "Duet"
-#~ msgstr "Duet"
-
-#~ msgid "Drum Solo"
-#~ msgstr "Solo perkusyjne"
-
-#~ msgid "A Cappella"
-#~ msgstr "A Cappella"
-
-#~ msgid "Euro-House"
-#~ msgstr "Euro-House"
-
-#~ msgid "Dance Hall"
-#~ msgstr "Dance Hall"
-
-#~ msgid "Goa"
-#~ msgstr "Goa"
-
-#~ msgid "Drum & Bass"
-#~ msgstr "Drum & Bass"
-
-#~ msgid "Club-House"
-#~ msgstr "Club-House"
-
-#~ msgid "Hardcore"
-#~ msgstr "Hardcore"
-
-#~ msgid "Terror"
-#~ msgstr "Terror"
-
-#~ msgid "Indie"
-#~ msgstr "Indie"
-
-#~ msgid "BritPop"
-#~ msgstr "BritPop"
-
-#~ msgid "Negerpunk"
-#~ msgstr "Negerpunk"
-
-#~ msgid "Polsk Punk"
-#~ msgstr "Polsk Punk"
-
-#~ msgid "Beat"
-#~ msgstr "Beat"
-
-#~ msgid "Christian Gangsta Rap"
-#~ msgstr "Gangsta Rap Chrześcijański"
-
-#~ msgid "Black Metal"
-#~ msgstr "Black Metal"
-
-#~ msgid "Crossover"
-#~ msgstr "Crossover"
-
-#~ msgid "Contemporary Christian"
-#~ msgstr "Współczesna Chrześcijańska"
-
-#~ msgid "Christian Rock"
-#~ msgstr "Rock Chrześcijański"
-
-#~ msgid "Merengue"
-#~ msgstr "Merengue"
-
-#~ msgid "Salsa"
-#~ msgstr "Salsa"
-
-#~ msgid "Thrash Metal"
-#~ msgstr "Thrash Metal"
-
-#~ msgid "Anime"
-#~ msgstr "Anime"
-
-#~ msgid "JPop"
-#~ msgstr "JPop"
-
-#~ msgid "Synthpop"
-#~ msgstr "Synthpop"
-
-#, fuzzy
-#~ msgid ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "An audio player for many platforms.\n"
-#~ "Copyright (C) 2005-2011 Audacious Development Team"
-#~ msgstr ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "Mały i szybki odtwarzacz muzyki dla wielu platform.\n"
-#~ "Copyright (C) 2005-2010 Zespół Twórców Audacious"
-
-#~ msgid "Surround"
-#~ msgstr "Surround"
-
-#~ msgid "Unable to create log file (%s)!\n"
-#~ msgstr "Nie można utworzyć pliku dziennika (%s)!\n"
-
-#~ msgid "Print all errors and warnings to stdout"
-#~ msgstr "Wypisuje wszystkie błędy i ostrzeżenia na standardowe wyjście"
-
-#~ msgid "Sorry, threads aren't supported on your platform.\n"
-#~ msgstr "Przykro mi, wątki nie są obsługiwane przez twoją platformę. \n"
-
-#~ msgid "Module loading not supported! Plugins will not be loaded.\n"
-#~ msgstr ""
-#~ "Ładowanie modułów nie jest obsługiwane! Wtyczki nie zostaną włączone.\n"
-
-#, fuzzy
-#~ msgid "Audacious - Unsupported Version Warning"
-#~ msgstr "Audacious - ostrzeżenie o niewspieranej wersji"
-
-#~ msgid "<big><b>Audacious2 is not ready yet!</b></big>"
-#~ msgstr "<big><b>Audacious2 nie jest jeszcze gotowy!</b></big>"
-
-#~ msgid ""
-#~ "<b>Please don't file bugs at this point unless they represent major "
-#~ "problems.</b>"
-#~ msgstr ""
-#~ "<b>Proszę nie wysyłać informacji o bugach na tym etapie jeżeli nie "
-#~ "opisują one ważnych problemów.</b>"
-
-#~ msgid ""
-#~ "This is an <i>alpha</i> build of Audacious2. It is still fairly "
-#~ "incomplete and unpolished.\n"
-#~ "We suspect that most minor bugs reported during this time will be "
-#~ "resolved once more things\n"
-#~ "stablize. However, if there is a major bug, such as a crash on playing a "
-#~ "specific file, we\n"
-#~ "need to know about it.\n"
-#~ "\n"
-#~ "However, we ask you to be aware that dealing with trivial bugs is "
-#~ "distracting at this point,\n"
-#~ "and to please refrain from doing so. Thanks in advance!"
-#~ msgstr ""
-#~ "To jest wersja <i>alfa</i> programu Audacious2. Jest ona niedokończona i "
-#~ "może działać niepoprawnie.\n"
-#~ "Spodziewamy się, że większość zgłoszonych ważnych bugów zostanie "
-#~ "naprawiona gdy tylko inne sprawy siÄ™\n"
-#~ "ustabilizują. Jednakże poważne problemy dotyczące odtwarzania określonych "
-#~ "plików\n"
-#~ "powinny zostać do nas zgłoszone.\n"
-#~ "\n"
-#~ "Ostrzegamy przy tym, że zajmowanie się obecnie trywialnymi problemami "
-#~ "może być rozpraszające na tym etapie,\n"
-#~ "prosimy powstrzymać się od ich zgłaszania. Z góry dziękujemy!"
-
-#~ msgid "<b>Blogging about bugs in it is also not helpful.</b>"
-#~ msgstr "<b>Dyskusje na temat bugów w programie również nie są pomocne. </b>"
-
-#~ msgid "Playback"
-#~ msgstr "Odtwarzanie"
-
-#~ msgid "<b>Playback</b>"
-#~ msgstr "<b>Odtwarzanie</b>"
-
-#~ msgid ""
-#~ "When Audacious starts, automatically begin playing from the point where "
-#~ "we stopped before."
-#~ msgstr ""
-#~ "Gdy Audacious zostanie włączony, automatycznie zacznyna grać od miejsca, "
-#~ "w którym poprzednio przerwano."
-
-#~ msgid "Don't advance in the playlist"
-#~ msgstr "Odtwarzanie utworów pojedynczo"
-
-#~ msgid ""
-#~ "When finished playing a song, don't automatically advance to the next."
-#~ msgstr ""
-#~ "Po zakończeniu odtwarzania utworu nie przechodź automatycznie do "
-#~ "następnego."
-
-#~ msgid "Enabled"
-#~ msgstr "WÅ‚Ä…czona"
-
-#~ msgid "Description"
-#~ msgstr "Opis"
-
-#~ msgid "Output Plugin Preferences"
-#~ msgstr "Konfiguracja wtyczki wyjściowej"
-
-#~ msgid "Output Plugin Information"
-#~ msgstr "Informacje o wtyczce wyjściowej"
-
-#~ msgid "_Decoder list:"
-#~ msgstr "Lista _dekoderów:"
-
-#~ msgid "<span size=\"medium\"><b>Decoders</b></span>"
-#~ msgstr "<span size=\"medium\"><b>Dekodery</b></span>"
-
-#~ msgid "_General plugin list:"
-#~ msgstr "_Lista wtyczek:"
-
-#~ msgid "<span size=\"medium\"><b>General</b></span>"
-#~ msgstr "<span size=\"medium\"><b>Ogólne</b></span>"
-
-#~ msgid "_Visualization plugin list:"
-#~ msgstr "Lista wtyczek _wizualizacji:"
-
-#~ msgid "<b>Visualization</b>"
-#~ msgstr "<b>Wizualizacja</b>"
-
-#~ msgid "Effect plugins:"
-#~ msgstr "Lista wtyczek efektów dźwiękowych:"
-
-#~ msgid "<b>Effects</b>"
-#~ msgstr "<b>Efekty</b>"
-
-#, fuzzy
-#~ msgid "<span size=\"small\">General</span>"
-#~ msgstr "<span size=\"small\"><b>Ogólne</b></span>"
-
-#~ msgid "<span size=\"small\">Location</span>"
-#~ msgstr "<span size=\"small\">Lokalizacja</span>"
-
-#~ msgid "<span size=\"small\">Raw Metadata</span>"
-#~ msgstr "<span size=\"small\">Surowe metadane</span>"
-
-#~ msgid "Key"
-#~ msgstr "Klucz"
-
-#~ msgid "Value"
-#~ msgstr "Wartość"
-
-#, fuzzy
-#~ msgid "170 Hz"
-#~ msgstr "11 kHz"
-
-#, fuzzy
-#~ msgid "310 Hz"
-#~ msgstr "11 kHz"
-
-#, fuzzy
-#~ msgid "3 kHz"
-#~ msgstr "48 kHz"
-
-#, fuzzy
-#~ msgid "6 kHz"
-#~ msgstr "48 kHz"
-
-#, fuzzy
-#~ msgid ""
-#~ "Available interfaces:\n"
-#~ "\n"
-#~ msgstr "Dostę_pne ustawienia:"
-
-#, fuzzy
-#~ msgid "Available Plugin Preferences:\n"
-#~ msgstr "Dostę_pne ustawienia:"
-
-#, fuzzy
-#~ msgid "Add/Open URL Dialog"
-#~ msgstr "Dodawanie plików"
-
-#~ msgid "Enter location to play:"
-#~ msgstr "Wpisz lokalizacjÄ™:"
-
-#~ msgid "Don't clear the playlist"
-#~ msgstr "Nie czyści listy odtwarzania"
-
-#~ msgid "audacious: %s"
-#~ msgstr "audacious: %s"
-
-#~ msgid "Filename:"
-#~ msgstr "Nazwa pliku:"
-
-#~ msgid "No input plugin recognized this file"
-#~ msgstr "Żaden plugin nie rozpoznał tego pliku"
-
-#~ msgid "Input plugin: %s"
-#~ msgstr "Wtyczka wejściowa: %s"
-
-#~ msgid ""
-#~ "<b><big>No output plugin selected.</big></b>\n"
-#~ "You have not selected an output plugin."
-#~ msgstr ""
-#~ "<b><big>Niewybrany plugin wyjścia.</big></b>\n"
-#~ "Nie wybrałeś wtyczki wyjściowej."
-
-#~ msgid "Connectivity"
-#~ msgstr "Sieć"
-
-#, fuzzy
-#~ msgid "ZOH Interpolation"
-#~ msgstr "Użyj interpolacji"
-
-#, fuzzy
-#~ msgid "Linear Interpolation"
-#~ msgstr "Użyj interpolacji"
-
-#~ msgid "Sampling Rate [Hz]:"
-#~ msgstr "Częstotliwość próbkowania [Hz]:"
-
-#, fuzzy
-#~ msgid "Interpolation Engine:"
-#~ msgstr "Użyj interpolacji"
-
-#, fuzzy
-#~ msgid ""
-#~ "<span size=\"small\">All streams will be converted to this sampling "
-#~ "rate.\n"
-#~ "This should be the max supported sampling rate of\n"
-#~ "the sound card or output plugin.</span>"
-#~ msgstr ""
-#~ "<span size=\"small\">Wszystkie strumienie będą konwertowane do tej "
-#~ "częstotliwości próbkowania.\n"
-#~ "Powinna to być maksymalna częstotliwość wspierana przez kartę dźwiękową "
-#~ "lub wtyczkę wyjściową.</span>"
-
-#~ msgid "<b>Format Detection</b>"
-#~ msgstr "<b>Autodetekcja formatu</b>"
-
-#~ msgid "Detect file formats by extension."
-#~ msgstr "Rozpoznawaj format plików poprzez rozszerzenie."
-
-#, fuzzy
-#~ msgid ""
-#~ "When checked, Audacious will detect file formats based by extension. Only "
-#~ "files with extensions of supported formats will be loaded."
-#~ msgstr ""
-#~ "Gdy ta opcja jest zaznaczona, Audacious będzie sprawdzał formaty plików, "
-#~ "bazujÄ…c na ich rozszerzeniu. Jest to trochÄ™ wolniejsze od sprawdzania na "
-#~ "życzenie, ale zapewnia minimalny poziom rozpoznawania formatów plików."
-
-#~ msgid "<b>Sampling Rate Converter</b>"
-#~ msgstr "<b>Konwersja częstotliwości próbkowania</b>"
-
-#~ msgid "Enable Sampling Rate Converter"
-#~ msgstr "Włącz konwersję częstotliwości próbkowania"
-
-#, fuzzy
-#~ msgid "<b>Advanced</b>"
-#~ msgstr "Zaawansowane"
-
-#, fuzzy
-#~ msgid ""
-#~ "\n"
-#~ "Audacious has caught signal 11 (SIGSEGV).\n"
-#~ "\n"
-#~ "We apologize for the inconvenience, but Audacious has crashed.\n"
-#~ "This is a bug in the program, and should never happen under normal "
-#~ "circumstances.\n"
-#~ "Your current configuration has been saved and should not be damaged.\n"
-#~ "\n"
-#~ "You can help improve the quality of Audacious by filing a bug at http://"
-#~ "jira.atheme.org/\n"
-#~ "Please include the entire text of this message and a description of what "
-#~ "you were doing when\n"
-#~ "this crash occured in order to quickly expedite the handling of your bug "
-#~ "report:\n"
-#~ "\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Audacious przechwycił sygnał 11 (SIGSEGV).\n"
-#~ "\n"
-#~ "Przepraszamy za kłopot, ale Audacious spowodował błąd i teraz nastąpi "
-#~ "jego zamknięcie.\n"
-#~ "Jest to błąd w programie i nie powinien nigdy wystąpić w normalnych "
-#~ "okolicznościach.\n"
-#~ "Twoja bieżąca konfiguracja została zapisana i nie powinna zostać "
-#~ "uszkodzona.\n"
-#~ "\n"
-#~ "Możesz pomóc udoskonalać Audacious poprzez wypełnienie raportu na http://"
-#~ "bugs-meta.atheme.org\n"
-#~ "Proszę załącz całą treść tej wiadomości i opisz, co robiłeś, gdy wystąþił "
-#~ "ten błąd,\n"
-#~ "abyśmy mogli szybciej zająć się tym raportem:\n"
-#~ "\n"
-
-#, fuzzy
-#~ msgid ""
-#~ "\n"
-#~ "Bugs can be reported at http://jira.atheme.org/ against the Audacious or "
-#~ "Audacious Plugins product.\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Błędy mogą być raportowane na http://bugs-meta.atheme.org w projekcie "
-#~ "Audacious.\n"
-
-#~ msgid ""
-#~ "Your signaling implementation is broken.\n"
-#~ "Expect unusable crash reports.\n"
-#~ msgstr ""
-#~ "Twoja implementacja sygnałów jest uszkodzona.\n"
-#~ "Możesz się spodziewać nieużywalnych raportów o błędach.\n"
-
-#, fuzzy
-#~ msgid ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "\n"
-#~ "Copyright (C) 2005-2009 Audacious Development Team"
-#~ msgstr ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "\n"
-#~ "Copyright (C) 2005-2007 Zespół twórców Audacious"
-
-#~ msgid "Detect file formats on demand, instead of immediately."
-#~ msgstr "Rozpoznawaj format plików na życzenie, zamiast natychmiast."
-
-#~ msgid ""
-#~ "When checked, Audacious will detect file formats on demand. This can "
-#~ "result in a messier playlist, but delivers a major speed benefit."
-#~ msgstr ""
-#~ "Gdy ta opcja jest zaznaczona, Audacious będzie sprawdzał formaty plików "
-#~ "na życzenie. Może to spowodować wczytanie do listy odtwarzania plików, "
-#~ "które nie będą pózniej mogły być odtworzone, lecz znacznie przyspieszy "
-#~ "czas jej wgrywania."
-
-#~ msgid "Load metadata from playlists and files"
-#~ msgstr "Pobieranie metadanych z list odtwarzania i plików"
-
-#~ msgid "Load metadata (tag information) from music files."
-#~ msgstr ""
-#~ "Włącza pobieranie metadanych (informacji ze znacznika) z plików "
-#~ "muzycznych."
-
-#~ msgid "Jump to Time"
-#~ msgstr "Skok do czasu"
-
-#~ msgid "minutes:seconds"
-#~ msgstr "minuty:sekundy"
-
-#~ msgid "Track length:"
-#~ msgstr "Długość utworu:"
-
-#, fuzzy
-#~ msgid "Save as Static Playlist"
-#~ msgstr "Zapisz listÄ™ odtwarzania"
-
-#~ msgid "Error writing playlist \"%s\": %s"
-#~ msgstr "Błąd zapisu listy utworów \"%s\": %s"
-
-#~ msgid "%s already exist. Continue?"
-#~ msgstr "%s już istnieje. Czy chcesz kontynuować?"
-
-#~ msgid ""
-#~ "<b><big>Unable to save playlist.</big></b>\n"
-#~ "\n"
-#~ "Unknown file type for '%s'.\n"
-#~ msgstr ""
-#~ "<b><big>Nie można zapisać listy utworów.<b><big>\n"
-#~ "\n"
-#~ "Typ pliku '%s' nieznany.\n"
-
-#~ msgid "Presets"
-#~ msgstr "Ustawienia"
-
-#~ msgid "Mouse"
-#~ msgstr "Mysz"
-
-#~ msgid "Pause between songs"
-#~ msgstr "Przerwa między utworami"
-
-#~ msgid "Pause for"
-#~ msgstr "Przerwij na"
-
-#~ msgid "seconds"
-#~ msgstr "sekund"
-
-#~ msgid "<b>Filename</b>"
-#~ msgstr "<b>Opcje nazw plików</b>"
-
-#~ msgid "Convert underscores to blanks"
-#~ msgstr "Zamiana podkreśleń na spacje"
-
-#~ msgid "Convert %20 to blanks"
-#~ msgstr "Zamiana sekwencji %20 na spacje"
-
-#~ msgid "Convert backslash '\\' to forward slash '/'"
-#~ msgstr "Zamień '\\' na '/'"
-
-#~ msgid "<b>File Dialog</b>"
-#~ msgstr "<b>Opcje plików</b>"
-
-#~ msgid "Always refresh directory when opening file dialog"
-#~ msgstr "Zawsze odśwież katalog otwierając okno dialogowe"
-
-#~ msgid ""
-#~ "Always refresh the file dialog (this will slow opening the dialog on "
-#~ "large directories, and Gnome VFS should handle automatically)."
-#~ msgstr ""
-#~ "Zawsze odświerz listę plików (spowolni to otwieranie katalogów z "
-#~ "zawartością dużej liczby plików, Gnome VFS powinno to załatwić "
-#~ "automatycznie)."
-
-#~ msgid "Changes volume by"
-#~ msgstr "Rolka myszy zmienia głośność o"
-
-#~ msgid "percent"
-#~ msgstr "procent"
-
-#~ msgid "Scrolls playlist by"
-#~ msgstr "Rolka myszy przesuwa listÄ™ o"
-
-#~ msgid "lines"
-#~ msgstr "wiersze"
-
-#~ msgid "Stop after Current Song"
-#~ msgstr "Zatrzymaj po bieżącym utworze"
-
-#~ msgid "Peaks"
-#~ msgstr "Szczyty"
-
-#~ msgid "Repeat"
-#~ msgstr "Powtarzaj"
-
-#~ msgid "Shuffle"
-#~ msgstr "Losowo"
-
-#~ msgid "No Playlist Advance"
-#~ msgstr "Odtwarzaj pliki pojedynczo"
-
-#~ msgid "Play"
-#~ msgstr "Odtwarzaj"
-
-#~ msgid "Pause"
-#~ msgstr "Wstrzymaj"
-
-#~ msgid "Stop"
-#~ msgstr "Zatrzymaj"
-
-#~ msgid "Previous"
-#~ msgstr "Poprzedni"
-
-#~ msgid "Next"
-#~ msgstr "Następny"
-
-#~ msgid "Visualization Mode"
-#~ msgstr "Tryb wizualizacji"
-
-#~ msgid "Analyzer Mode"
-#~ msgstr "Tryb analizatora"
-
-#~ msgid "Scope Mode"
-#~ msgstr "Tryb sygnału"
-
-#~ msgid "Voiceprint Mode"
-#~ msgstr "Tryb odcisku głosu"
-
-#, fuzzy
-#~ msgid "WindowShade VU Mode"
-#~ msgstr "/Wskaźnik sygnału"
-
-#~ msgid "Refresh Rate"
-#~ msgstr "Częstotliwość odświeżania"
-
-#~ msgid "Analyzer Falloff"
-#~ msgstr "Zanik analizatora"
-
-#~ msgid "Peaks Falloff"
-#~ msgstr "Zanik szczytów"
-
-#~ msgid "New Playlist"
-#~ msgstr "Nowa lista"
-
-#~ msgid "Select Next Playlist"
-#~ msgstr "Następna lista"
-
-#~ msgid "Select Previous Playlist"
-#~ msgstr "Poprzednia lista"
-
-#~ msgid "Delete Playlist"
-#~ msgstr "Usuń listę"
-
-#~ msgid "Load List"
-#~ msgstr "Wczytaj listÄ™"
-
-#~ msgid "Loads a playlist file into the selected playlist."
-#~ msgstr "Wczytanie pliku z listÄ… do wybranej listy odtwarzania."
-
-#~ msgid "Save List"
-#~ msgstr "Zapisz listÄ™"
-
-#~ msgid "Saves the selected playlist."
-#~ msgstr "Zapisuje listÄ™ odtwarzania."
-
-#~ msgid "Save Default List"
-#~ msgstr "Zapisz Domyślną Listę"
-
-#~ msgid "Saves the selected playlist to the default location."
-#~ msgstr "Zapisuje wybraną listę odtwarzania w domyślnej lokalizacji."
-
-#~ msgid "Refresh List"
-#~ msgstr "Odśwież listę"
-
-#~ msgid "Refreshes metadata associated with a playlist entry."
-#~ msgstr "Odświeża dane związane z elementem listy."
-
-#, fuzzy
-#~ msgid "List Manager"
-#~ msgstr "Menadżer list"
-
-#, fuzzy
-#~ msgid "Opens the playlist manager."
-#~ msgstr "Otwiera menadźera list."
-
-#~ msgid "View"
-#~ msgstr "Widok"
-
-#~ msgid "Add Internet Address..."
-#~ msgstr "Dodaj adres internetowy..."
-
-#~ msgid "Adds a remote track to the playlist."
-#~ msgstr "Dodaje zdalną ścieżkę do listy odtwarzania."
-
-#~ msgid "Add Files..."
-#~ msgstr "Dodaj pliki..."
-
-#~ msgid "Search and Select"
-#~ msgstr "Znajdź i zaznacz"
-
-#~ msgid ""
-#~ "Searches the playlist and selects playlist entries based on specific "
-#~ "criteria."
-#~ msgstr "Wyszukuje pozycje w oparciu o podane kryteria."
-
-#~ msgid "Invert Selection"
-#~ msgstr "Odwróć zaznaczenie"
-
-#~ msgid "Inverts the selected and unselected entries."
-#~ msgstr "Odwraca zaznaczone z niezaznaczonymi"
-
-#~ msgid "Select All"
-#~ msgstr "Zaznacz wszystkie"
-
-#~ msgid "Selects all of the playlist entries."
-#~ msgstr "Zaznacza wszystkie pozycje z listy odtwarzania."
-
-#~ msgid "Select None"
-#~ msgstr "Odznacz wszystkie"
-
-#~ msgid "Deselects all of the playlist entries."
-#~ msgstr "Odznacza wszystkie pozycje listy odtwarzania."
-
-#~ msgid "Remove All"
-#~ msgstr "Usuń wszystkie"
-
-#~ msgid "Removes all entries from the playlist."
-#~ msgstr "Usuwa wszystkie pozycje z listy odtwarzania."
-
-#~ msgid "Clear Queue"
-#~ msgstr "Wyczyść kolejkę"
-
-#~ msgid "Clears the queue associated with this playlist."
-#~ msgstr "Czyści kolejkę związaną z tą listą odtwarzania."
-
-#~ msgid "Remove Unavailable Files"
-#~ msgstr "Usuń martwe pliki"
-
-#~ msgid "Removes unavailable files from the playlist."
-#~ msgstr "Usuwa martwe pliki z listy odtwarzania."
-
-#~ msgid "Remove Duplicates"
-#~ msgstr "Usuń duplikaty"
-
-#~ msgid "By Title"
-#~ msgstr "Według tytułów"
-
-#~ msgid "Removes duplicate entries from the playlist by title."
-#~ msgstr "Usuwa powtarzające się pozycje w liście otwarzania według tytułu."
-
-#~ msgid "By Filename"
-#~ msgstr "Według nazw plików"
-
-#~ msgid "Removes duplicate entries from the playlist by filename."
-#~ msgstr "Usuń duplikaty według położenia i nazwy pliku"
-
-#~ msgid "By Path + Filename"
-#~ msgstr "Według położenia i nazwy plików"
-
-#~ msgid "Removes duplicate entries from the playlist by their full path."
-#~ msgstr ""
-#~ "Usuwa powtarzające się pozycje w liście otwarzania według położenia i "
-#~ "nazwy pliku."
-
-#~ msgid "Remove Unselected"
-#~ msgstr "Usuń niezaznaczone"
-
-#~ msgid "Remove unselected entries from the playlist."
-#~ msgstr "Usuwa niezaznaczone pozycje z listy odtwarzania."
-
-#~ msgid "Remove Selected"
-#~ msgstr "Usuń zaznaczone"
-
-#~ msgid "Remove selected entries from the playlist."
-#~ msgstr "Usuwa zaznaczone pozycje z listy odtwarzania."
-
-#~ msgid "Randomize List"
-#~ msgstr "Wymieszaj listÄ™"
-
-#~ msgid "Randomizes the playlist."
-#~ msgstr "Miesza listÄ™ odtwarzania."
-
-#~ msgid "Reverse List"
-#~ msgstr "Odwróć listę"
-
-#~ msgid "Reverses the playlist."
-#~ msgstr "Odwraca listÄ™ odtwarzania."
-
-#~ msgid "Sort List"
-#~ msgstr "Sortuj listÄ™"
-
-#~ msgid "Sorts the list by title."
-#~ msgstr "Sortuje listę według tytułów."
-
-#, fuzzy
-#~ msgid "By Album"
-#~ msgstr "Album"
-
-#, fuzzy
-#~ msgid "Sorts the list by album."
-#~ msgstr "Sortuje listę według tytułów."
-
-#~ msgid "By Artist"
-#~ msgstr "Według wykonawców"
-
-#~ msgid "Sorts the list by artist."
-#~ msgstr "Sortuje listę według wykonawców."
-
-#~ msgid "Sorts the list by filename."
-#~ msgstr "Sortuje listę według nazw plików."
-
-#~ msgid "Sorts the list by full pathname."
-#~ msgstr "Sortuje listę według położenia i nazwy plików."
-
-#~ msgid "By Date"
-#~ msgstr "Wedug dat"
-
-#~ msgid "Sorts the list by modification time."
-#~ msgstr "Sortuje listę według czasu modyfikacji."
-
-#~ msgid "By Track Number"
-#~ msgstr "Według numerów utworów"
-
-#~ msgid "Sorts the list by track number."
-#~ msgstr "Sortuje listę według numerów utworów."
-
-#~ msgid "By Playlist Entry"
-#~ msgstr "Według kolejności wpisów"
-
-#~ msgid "Sorts the list by playlist entry."
-#~ msgstr "Sortuje listę według kolejności wpisu."
-
-#~ msgid "Sort Selected"
-#~ msgstr "Sortuj zaznaczone"
-
-#, fuzzy
-#~ msgid "File"
-#~ msgstr "Ogień"
-
-#, fuzzy
-#~ msgid "Components"
-#~ msgstr "Komentarz"
-
-#~ msgid "View Track Details"
-#~ msgstr "Informacje o pliku"
-
-#~ msgid "Play File"
-#~ msgstr "Odtwórz plik"
-
-#~ msgid "Load and play a file"
-#~ msgstr "Wczytaj i odtwórz plik"
-
-#~ msgid "Play Location"
-#~ msgstr "Odtwórz lokalizację"
-
-#~ msgid "Play media from the selected location"
-#~ msgstr "Odtwórz plik z podanej lokalizacji"
-
-#, fuzzy
-#~ msgid "Plugin services"
-#~ msgstr "Wtyczki"
-
-#~ msgid "Preferences"
-#~ msgstr "Ustawienia"
-
-#~ msgid "Open preferences window"
-#~ msgstr "Otwórz okno ustawień"
-
-#~ msgid "_Quit"
-#~ msgstr "Zakończ"
-
-#~ msgid "Quit Audacious"
-#~ msgstr "Wyłącz Audacious"
-
-#, fuzzy
-#~ msgid "Set A-B"
-#~ msgstr "Zaznacz wszystkie"
-
-#, fuzzy
-#~ msgid "Clear A-B"
-#~ msgstr "/Wyczyść kolejkę"
-
-#~ msgid "Jump to Playlist Start"
-#~ msgstr "Skocz do poczÄ…tku listy"
-
-#~ msgid "Jump to File"
-#~ msgstr "Skocz do pliku"
-
-#~ msgid "Queue Toggle"
-#~ msgstr "Dodaj/usuń z kolejki"
-
-#~ msgid "Enables/disables the entry in the playlist's queue."
-#~ msgstr "Dodaje/usuwa pozycjÄ™ z kolejki."
-
-#~ msgid "Load"
-#~ msgstr "Wczytaj"
-
-#~ msgid "Import"
-#~ msgstr "Importuj"
-
-#~ msgid "Save"
-#~ msgstr "Zapisz"
-
-#~ msgid "Delete"
-#~ msgstr "Usuń"
-
-#~ msgid "Preset"
-#~ msgstr "Ustawienie"
-
-#~ msgid "Load preset"
-#~ msgstr "Wczytywanie ustawienia"
-
-#~ msgid "Auto-load preset"
-#~ msgstr "Automatycznie wczytane ustawienie"
-
-#~ msgid "Load auto-load preset"
-#~ msgstr "Wczytaj automatyczne ustawienie"
-
-#~ msgid "Default"
-#~ msgstr "Domyślne"
-
-#~ msgid "Load default preset into equalizer"
-#~ msgstr "Wczytaj domyślne ustawienia korektora"
-
-#~ msgid "Zero"
-#~ msgstr "Wyzeruj"
-
-#~ msgid "Set equalizer preset levels to zero"
-#~ msgstr "Wyzeruj ustawienia korektora"
-
-#~ msgid "From file"
-#~ msgstr "Z pliku"
-
-#~ msgid "Load preset from file"
-#~ msgstr "Wczytaj ustawienie z pliku"
-
-#~ msgid "From WinAMP EQF file"
-#~ msgstr "Z pliku WinAMP EQF"
-
-#~ msgid "Load preset from WinAMP EQF file"
-#~ msgstr "Wczytaj z pliku WinAMP EQF"
-
-#~ msgid "WinAMP Presets"
-#~ msgstr "Ustawienia WinAMPa"
-
-#~ msgid "Import WinAMP presets"
-#~ msgstr "Importuj ustawienia WinAMPa"
-
-#~ msgid "Save preset"
-#~ msgstr "Zapisywanie ustawienia"
-
-#~ msgid "Save auto-load preset"
-#~ msgstr "Zapisz automatycznie wczytywane ustawienie"
-
-#~ msgid "Save default preset"
-#~ msgstr "Zapisz domyślne ustawienie"
-
-#~ msgid "To file"
-#~ msgstr "Do pliku"
-
-#~ msgid "Save preset to file"
-#~ msgstr "Zapisz ustawienie do pliku"
-
-#~ msgid "To WinAMP EQF file"
-#~ msgstr "Do pliku WinAMP EQF"
-
-#~ msgid "Save preset to WinAMP EQF file"
-#~ msgstr "Zapisz ustawienie do pliku WinAMP EQF"
-
-#~ msgid "Delete preset"
-#~ msgstr "Usunięcie ustawienia"
-
-#~ msgid "Delete auto-load preset"
-#~ msgstr "Usuń automatycznie wczytywane ustawienie"
-
-#, fuzzy
-#~ msgid ""
-#~ "<span size=\"small\">This is the amount of time to prebuffer audio "
-#~ "streams by, in milliseconds.\n"
-#~ "Increase this value if you are experiencing audio skipping.\n"
-#~ "Please note however, that high values will result in Audacious performing "
-#~ "poorly.</span>"
-#~ msgstr ""
-#~ "<span size=\"small\">Jest to długość czasu w milisekundach, na który "
-#~ "buforowane są ścieżki audio\n"
-#~ "Zwiększ tę wartość, jeśli doświadczasz przerywania płynności "
-#~ "odtwarzania. \n"
-#~ "Zwróć jednak uwagę, że ustawienie tej wartości za wysoko może powodować, "
-#~ "że Audacious będzie się słabo sprawował.</span>"
-
-#~ msgid "Enable headless operation"
-#~ msgstr "Włącza działanie jako serwer"
-
-#~ msgid ""
-#~ "<b><big>Unable to load skin.</big></b>\n"
-#~ "\n"
-#~ "Check that skin at '%s' is usable and default skin is properly installed "
-#~ "at '%s'\n"
-#~ msgstr ""
-#~ "<b><big>Nie można wczytać skóry.</big></b>\n"
-#~ "\n"
-#~ "Sprawdź czy skóra '%s' jest poprawna i czy domyślna skóra jest "
-#~ "zainstalowana w '%s'\n"
-
-#, fuzzy
-#~ msgid "Headless operation enabled\n"
-#~ msgstr "Włącza działanie jako serwer"
-
-#~ msgid "Audacious core developers:"
-#~ msgstr "Twórcy podstaw aplikacji Audacious:"
-
-#~ msgid "Audacious Equalizer"
-#~ msgstr "Korektor graficzny Audacious"
-
-#~ msgid "Play files"
-#~ msgstr "Odtwórz pliki"
-
-#~ msgid "Load files"
-#~ msgstr "Wczytaj pliki"
-
-#~ msgid "%s - Audacious"
-#~ msgstr "%s - Audacious"
-
-#~ msgid "VBR"
-#~ msgstr "VBR"
-
-#~ msgid "mono"
-#~ msgstr "mono"
-
-#~ msgid "Audacious - visibility warning"
-#~ msgstr "Audacious - ostrzeżenie o widoczności"
-
-#~ msgid "Show main player window"
-#~ msgstr "Pokaż głowne okno"
-
-#~ msgid "Ignore"
-#~ msgstr "Ignoruj"
-
-#~ msgid ""
-#~ "Audacious has been started with all of its windows hidden.\n"
-#~ "You may want to show the player window again to control Audacious; "
-#~ "otherwise, you'll have to control it remotely via audtool or enabled "
-#~ "plugins (such as the statusicon plugin)."
-#~ msgstr ""
-#~ "Audacious został uruchomiony ze schowanymi wszystkimi oknami.\n"
-#~ "Możesz wyświetlić główne okno, aby kontrolować Audacious; możesz też "
-#~ "kontrolować go zdalnie poprzez audtool lub uruchomione pluginy (takie jak "
-#~ "statusicon)."
-
-#~ msgid "Always ignore, show/hide is controlled remotely"
-#~ msgstr "Zawsze ignoruj, wyświetlanie/chowanie kontrolowane zdalnie"
-
-#, fuzzy
-#~ msgid "Seek to: %d:%-2.2d/%d:%-2.2d (%d%%)"
-#~ msgstr "SKOK DO: %d:%-2.2d/%d:%-2.2d (%d%%)"
-
-#, fuzzy
-#~ msgid "Volume: %d%%"
-#~ msgstr "Głośność"
-
-#, fuzzy
-#~ msgid "Options Menu"
-#~ msgstr "Opcje"
-
-#, fuzzy
-#~ msgid "Disable 'Always On Top'"
-#~ msgstr "Zawsze na wierzchu"
-
-#, fuzzy
-#~ msgid "Enable 'Always On Top'"
-#~ msgstr "Zawsze na wierzchu"
-
-#, fuzzy
-#~ msgid "File Info Box"
-#~ msgstr "Informacje o pliku"
-
-#, fuzzy
-#~ msgid "Disable 'GUI Scaling'"
-#~ msgstr "Wyłączenie znaczników ID3V2"
-
-#, fuzzy
-#~ msgid "Visualization Menu"
-#~ msgstr "Tryb wizualizacji"
-
-#~ msgid ""
-#~ "<b><big>Couldn't open audio.</big></b>\n"
-#~ "\n"
-#~ "Please check that:\n"
-#~ "1. You have the correct output plugin selected.\n"
-#~ "2. No other programs is blocking the soundcard.\n"
-#~ "3. Your soundcard is configured properly.\n"
-#~ msgstr ""
-#~ "<b><big>Nie można otworzyć wyjścia dźwięku.</big></b>\n"
-#~ "\n"
-#~ "Sprawdź, czy:\n"
-#~ "1. Wybrałeś odpowiednią wtyczkę wyjściową.\n"
-#~ "2. Żaden inny program nie blokuje karty dźwiękowej.\n"
-#~ "3. Twoja karta dźwiękowa jest poprawnie skonfigurowana.\n"
-
-#~ msgid "Autoscroll Songname"
-#~ msgstr "Przewijanie tytułu utworu"
-
-#~ msgid "Show Player"
-#~ msgstr "Pokaż główne okno"
-
-#~ msgid "Show Playlist Editor"
-#~ msgstr "Pokaż listę odtwarzania"
-
-#~ msgid "Show Equalizer"
-#~ msgstr "Pokaż korektor graficzny"
-
-#~ msgid "Always on Top"
-#~ msgstr "Zawsze na wierzchu"
-
-#~ msgid "Put on All Workspaces"
-#~ msgstr "Na wszystkich obszarach roboczych"
-
-#~ msgid "Roll up Player"
-#~ msgstr "Zwinięte okno główne"
-
-#~ msgid "Roll up Playlist Editor"
-#~ msgstr "Zwinięta lista odtwarzania"
-
-#~ msgid "Roll up Equalizer"
-#~ msgstr "Zwinięty korektor graficzny"
-
-#, fuzzy
-#~ msgid "Scale"
-#~ msgstr "Zapisz"
-
-#~ msgid "DoubleSize"
-#~ msgstr "Podwójny rozmiar"
-
-#~ msgid "Easy Move"
-#~ msgstr "Uproszczone przesuwanie"
-
-#~ msgid "Analyzer"
-#~ msgstr "Analizator"
-
-#~ msgid "Scope"
-#~ msgstr "Sygnał"
-
-#~ msgid "Voiceprint"
-#~ msgstr "Odcisk głosu"
-
-#~ msgid "Off"
-#~ msgstr "Wyłączona"
-
-#~ msgid "Normal"
-#~ msgstr "Normalny"
-
-#~ msgid "Fire"
-#~ msgstr "Ogień"
-
-#~ msgid "Vertical Lines"
-#~ msgstr "Pionowe linie"
-
-#~ msgid "Lines"
-#~ msgstr "Linie"
-
-#~ msgid "Bars"
-#~ msgstr "SÅ‚upki"
-
-#~ msgid "Dot Scope"
-#~ msgstr "Kropki"
-
-#~ msgid "Line Scope"
-#~ msgstr "Linie"
-
-#~ msgid "Solid Scope"
-#~ msgstr "Ciągły"
-
-#~ msgid "Ice"
-#~ msgstr "Lód"
-
-#~ msgid "Smooth"
-#~ msgstr "PÅ‚ynny"
-
-#~ msgid "Full (~50 fps)"
-#~ msgstr "Pełna (~50 fps)"
-
-#~ msgid "Half (~25 fps)"
-#~ msgstr "Połowa (~25 fps)"
-
-#~ msgid "Quarter (~13 fps)"
-#~ msgstr "Jedna czwarta (~13 fps)"
-
-#~ msgid "Eighth (~6 fps)"
-#~ msgstr "Jedna ósma (~6 fps)"
-
-#~ msgid "Slowest"
-#~ msgstr "Najwolniejszy"
-
-#~ msgid "Slow"
-#~ msgstr "Wolny"
-
-#~ msgid "Medium"
-#~ msgstr "Normalny"
-
-#~ msgid "Fast"
-#~ msgstr "Szybki"
-
-#~ msgid "Fastest"
-#~ msgstr "Najszybszy"
-
-#~ msgid "Time Elapsed"
-#~ msgstr "Miniony czas"
-
-#~ msgid "Time Remaining"
-#~ msgstr "Pozostały czas"
-
-#, fuzzy
-#~ msgid "Plugin Services"
-#~ msgstr "Wtyczki"
-
-#~ msgid "Search entries in active playlist"
-#~ msgstr "Szukaj pozycji w aktualnej liście"
-
-#~ msgid ""
-#~ "Select entries in playlist by filling one or more fields. Fields use "
-#~ "regular expressions syntax, case-insensitive. If you don't know how "
-#~ "regular expressions work, simply insert a literal portion of what you're "
-#~ "searching for."
-#~ msgstr ""
-#~ "Wybierz pozycje w liście odtwarzania wypełniając jedno lub więcej pól. "
-#~ "Pola wykorzystują wyrażenia regularne, bez uwzględnienia wielkości "
-#~ "znaków. Jeżeli nie wiesz, jak działają wyrażenia regularne, po prostu "
-#~ "wstaw część nazwy tego, czego szukasz."
-
-#, fuzzy
-#~ msgid "Title: "
-#~ msgstr "Tytuł:"
-
-#, fuzzy
-#~ msgid "Album: "
-#~ msgstr "Album:"
-
-#~ msgid "Artist: "
-#~ msgstr "Wykonawca:"
-
-#~ msgid "Filename: "
-#~ msgstr "Nazwa pliku:"
-
-#~ msgid "Clear previous selection before searching"
-#~ msgstr "Wyczyść poprzednie zaznaczenie przed szukaniem"
-
-#~ msgid "Automatically toggle queue for matching entries"
-#~ msgstr "Autmatycznie wstaw do kolejki znalezione pozycje"
-
-#~ msgid "Create a new playlist with matching entries"
-#~ msgstr "Stwórz nową listę odtwarzania ze znalezionych pozycji"
-
-#~ msgid "Audacious Playlist Editor"
-#~ msgstr "Lista odtwarzania Audacious"
-
-#~ msgid "Appearance"
-#~ msgstr "WyglÄ…d"
-
-#~ msgid "<b>_Fonts</b>"
-#~ msgstr "<b>Czcionki:</b>"
-
-#~ msgid "_Player:"
-#~ msgstr "Główne okno:"
-
-#~ msgid "Select main player window font:"
-#~ msgstr "Wybór czcionki okna głównego:"
-
-#~ msgid "_Playlist:"
-#~ msgstr "Lista odtwarzania:"
-
-#, fuzzy
-#~ msgid "Select playlist font:"
-#~ msgstr "Wybór czcionki okna głównego:"
-
-#~ msgid "Use Bitmap fonts if available"
-#~ msgstr "Użyj czcionek bitmapowych, jeśli to możliwe"
-
-#~ msgid ""
-#~ "Use bitmap fonts if they are available. Bitmap fonts do not support "
-#~ "Unicode strings."
-#~ msgstr ""
-#~ "Użyj czcionek bitmapowych, jeśli to możliwe. Miej na uwadze, że nie "
-#~ "wspierają one znaków Unikod."
-
-#~ msgid "<b>_Miscellaneous</b>"
-#~ msgstr "<b>Różne:</b>"
-
-#~ msgid "Show track numbers in playlist"
-#~ msgstr "Wyświetlanie numerów utworów na liście odtwarzania"
-
-#~ msgid "Show separators in playlist"
-#~ msgstr "Wyświetlanie separatorów na liście odtwarzania"
-
-#~ msgid "Show window manager decoration"
-#~ msgstr "Pokaż dekoracje okien"
-
-#~ msgid "This enables the window manager to show decorations for windows."
-#~ msgstr "WÅ‚Ä…cza dekoracje okien."
-
-#~ msgid "Use XMMS-style file selector instead of the default selector"
-#~ msgstr "Użyj styl okna wyboru plików jak w XMMS, zamiast standardowego"
-
-#~ msgid ""
-#~ "This enables the XMMS/GTK1-style file selection dialogs. This selector is "
-#~ "provided by Audacious itself and is faster than the default GTK2 selector "
-#~ "(but sadly not as user-friendly)."
-#~ msgstr ""
-#~ "Włącza okno wybierania plików w stylu XMMS/GTK1. Jest szybsze niż "
-#~ "domyślne okno GTK2, ale niestety nie takie przyjazne."
-
-#~ msgid "On load"
-#~ msgstr "Przy wgrywaniu"
-
-#~ msgid "Load metadata when adding the file to the playlist or opening it"
-#~ msgstr ""
-#~ "Pobieranie metadanych przy odtworzeniu utworu lub dodawaniu utworu do "
-#~ "listy"
-
-#~ msgid "On display"
-#~ msgstr "Przy wyświetlaniu"
-
-#, fuzzy
-#~ msgid ""
-#~ "Load metadata on demand when displaying the file in the playlist. You may "
-#~ "need to set \"Detect file formats on demand\" in Audio page for full "
-#~ "benefit."
-#~ msgstr ""
-#~ "Pobieranie metadanych przy odtworzeniu utworu lub dodawaniu utworu do "
-#~ "listy"
-
-#~ msgid "Color Adjustment"
-#~ msgstr "Dopasowanie kolorów"
-
-#~ msgid ""
-#~ "Audacious allows you to alter the color balance of the skinned UI. The "
-#~ "sliders below will allow you to do this."
-#~ msgstr ""
-#~ "Audacious pozwala na modyfikację intensywności kolorów w skórce. Aby to "
-#~ "zrobić, użyj poniższych suwaków."
-
-#~ msgid "Blue"
-#~ msgstr "Niebieski"
-
-#~ msgid "Green"
-#~ msgstr "Zielony"
-
-#~ msgid "Red"
-#~ msgstr "Czerwony"
-
-#~ msgid "<b>_Skin</b>"
-#~ msgstr "<b>_Skóra</b>"
-
-#~ msgid "Refresh skin list"
-#~ msgstr "Odśwież listę skórek"
-
-#~ msgid "PREAMP"
-#~ msgstr "PRZEDWZM"
-
-#~ msgid "60HZ"
-#~ msgstr "60HZ"
-
-#~ msgid "170HZ"
-#~ msgstr "170HZ"
-
-#~ msgid "310HZ"
-#~ msgstr "310HZ"
-
-#~ msgid "600HZ"
-#~ msgstr "600HZ"
-
-#~ msgid "1KHZ"
-#~ msgstr "1KHZ"
-
-#~ msgid "3KHZ"
-#~ msgstr "3KHZ"
-
-#~ msgid "6KHZ"
-#~ msgstr "6KHZ"
-
-#~ msgid "12KHZ"
-#~ msgstr "12KHZ"
-
-#~ msgid "14KHZ"
-#~ msgstr "14KHZ"
-
-#~ msgid "16KHZ"
-#~ msgstr "16KHZ"
-
-#~ msgid "Archived Winamp 2.x skin"
-#~ msgstr "Zarchiwizowana skóra Winamp 2.x"
-
-#~ msgid "Unarchived Winamp 2.x skin"
-#~ msgstr "Niezarchiwizowana sĸóra Winamp 2.x"
-
-#~ msgid "Show version and builtin features"
-#~ msgstr "Wyświetla numer wersji i wbudowane opcje"
-
-#~ msgid "Use custom cursors"
-#~ msgstr "Użyj własnych kursorów"
-
-#~ msgid "Reload Plugins"
-#~ msgstr "Załaduj ponownie wtyczki"
-
-#~ msgid ""
-#~ "Sorry, threads isn't supported on your platform.\n"
-#~ "\n"
-#~ "If you're on a libc5 based linux system and installed Glib & GTK+ before "
-#~ "you\n"
-#~ "installed LinuxThreads you need to recompile Glib & GTK+.\n"
-#~ msgstr ""
-#~ "Niestety, twoja platforma nie wspiera wielowątkowości.\n"
-#~ "\n"
-#~ "Jeśli używasz Linuksa bazowanego na libc5 i zainstalowałeś Glib i GTK+ "
-#~ "zanim \n"
-#~ "zainstalowałeś LinuxThreads potrzebujesz przekompilować Glib & GTK+.\n"
-
-#~ msgid "Error in Audacious."
-#~ msgstr "BÅ‚Ä…d w Audacious."
-
-#, fuzzy
-#~ msgid "Enable 6 dB hard limiter"
-#~ msgstr "WÅ‚Ä…czenie 6dB wzmocnienia i twardego ograniczenia"
-
-#~ msgid "Select which Audacious session ID to use"
-#~ msgstr "Wybierz sesje Audacious (Standardowa: 0)"
-
-#, fuzzy
-#~ msgid "Disable 'Doublesize'"
-#~ msgstr "Podwójny rozmiar"
-
-#, fuzzy
-#~ msgid "Enable 'Doublesize'"
-#~ msgstr "Podwójny rozmiar"
-
-#~ msgid "<b>Presets</b>"
-#~ msgstr "<b>Ustawienia</b>"
-
-#~ msgid "File preset extension:"
-#~ msgstr "Rozszerzenie pliku ustawień:"
-
-#~ msgid "Directory preset file:"
-#~ msgstr "Folder pliku ustawień:"
-
-#~ msgid "localhost"
-#~ msgstr "localhost"
-
-#~ msgid ""
-#~ "<b><big>Unable to create %s.</big></b>\n"
-#~ "\n"
-#~ "Could not open glade file (%s). Please check your installation.\n"
-#~ msgstr ""
-#~ "<b><big>Nie można utworzyć %s.</big></b>\n"
-#~ "\n"
-#~ "Nie mógł otworzyć pliku glade (%s). Sprawdź poprawność instalacji.\n"
-
-#~ msgid ""
-#~ "TITLE\n"
-#~ "ARTIST - TITLE\n"
-#~ "ARTIST - ALBUM - TITLE\n"
-#~ "ARTIST - ALBUM - TRACK. TITLE\n"
-#~ "ARTIST [ ALBUM ] - TRACK. TITLE\n"
-#~ "ALBUM - TITLE\n"
-#~ "Custom"
-#~ msgstr ""
-#~ "TYTUŁ\n"
-#~ "WYKONAWCA - TYTUŁ\n"
-#~ "WYKONAWCA - ALBUM - TYTUŁ\n"
-#~ "WYKONAWCA - ALBUM - ŚCIEŻKA. TYTUŁ\n"
-#~ "WYKONAWCA [ ALBUM ] - ŚCIEŻKA. TYTUŁ\n"
-#~ "ALBUM - TYTUŁ\n"
-#~ "WÅ‚asny"
-
-#~ msgid "Track Information Window"
-#~ msgstr "Informacje o utworze"
-
-#~ msgid "Preferences Window"
-#~ msgstr "Okno ustawień"
-
-#, fuzzy
-#~ msgid "Close"
-#~ msgstr "/Zamknij"
-
-#, fuzzy
-#~ msgid "<b>Artist:</b> %s"
-#~ msgstr "<i>Wykonawca</i>"
-
-#, fuzzy
-#~ msgid "<b>Title:</b> %s"
-#~ msgstr "<i>Tytuł</i>"
-
-#, fuzzy
-#~ msgid "<b>Album:</b> %s"
-#~ msgstr "<i>Album</i>"
-
-#, fuzzy
-#~ msgid "Audacious last.fm radio tuner"
-#~ msgstr "Lista odtwarzania Audacious"
-
-#, fuzzy
-#~ msgid "Station:"
-#~ msgstr "WÅ‚oski:"
-
-#, fuzzy
-#~ msgid "<b>Artist:</b>"
-#~ msgstr "<i>Wykonawca</i>"
-
-#, fuzzy
-#~ msgid "<b>Title:</b>"
-#~ msgstr "<i>Tytuł</i>"
-
-#, fuzzy
-#~ msgid "<b>Album:</b>"
-#~ msgstr "<i>Album</i>"
-
-#~ msgid "VOLUME: %d%%"
-#~ msgstr "GLOSNOSC: %d%%"
-
-#~ msgid "BALANCE: %d%% LEFT"
-#~ msgstr "BALANS: %d%% LEWY"
-
-#~ msgid "BALANCE: CENTER"
-#~ msgstr "BALANS: SRODEK"
-
-#~ msgid "BALANCE: %d%% RIGHT"
-#~ msgstr "BALANS: %d%% PRAWY"
-
-#, fuzzy
-#~ msgid "Last.fm radio"
-#~ msgstr "Odtwórz lokalizację"
-
-#, fuzzy
-#~ msgid "Play Last.fm radio"
-#~ msgstr "Odtwórz lokalizację"
-
-#~ msgid "Converter Type:"
-#~ msgstr "Rodzaj konwertera:"
-
-#~ msgid ""
-#~ "<b><big>No playable CD found.</big></b>\n"
-#~ "\n"
-#~ "No CD inserted, or inserted CD is not an audio CD.\n"
-#~ msgstr ""
-#~ "<b><big>Nie znaleziono odpowiedniego CD.</big></b>\n"
-#~ "\n"
-#~ "Brak CD w trayu, lub włożona płytka nie jest audio CD.\n"
-
-#~ msgid "Add CD..."
-#~ msgstr "Dodaj Audio CD..."
-
-#~ msgid "Adds a CD to the playlist."
-#~ msgstr "Dodaje Audio CD do listy odtwarzania."
-
-#~ msgid "Play CD"
-#~ msgstr "Odtwórz Audio CD"
-
-#~ msgid "Performer/Artist"
-#~ msgstr "Wykonawca"
-
-#~ msgid "File name"
-#~ msgstr "Nazwa pliku"
-
-#~ msgid "File path"
-#~ msgstr "Położenie"
-
-#~ msgid "File extension"
-#~ msgstr "Rozszerzenie pliku"
-
-#~ msgid "Track name"
-#~ msgstr "Nazwa utworu"
-
-#~ msgid "Track number"
-#~ msgstr "Numer utworu"
-
-#~ msgid "%{n:...%}: Display \"...\" only if element %n is present"
-#~ msgstr "%{n:...%}: Pokaż \"...\" tylko gdy element %n jest obecny"
-
-#~ msgid ""
-#~ "Sorry, your GTK+ version (%d.%d.%d) does not work with Audacious.\n"
-#~ "Please use GTK+ %s or newer.\n"
-#~ msgstr ""
-#~ "Niestety, Twoja wersja GTK+ (%d.%d.%d) nie działa z Audacious.\n"
-#~ "Zainstaluj bibliotekÄ™ GTK+ %s lub nowszÄ….\n"
-
-#~ msgid "OPTIONS MENU"
-#~ msgstr "MENU OPCJI"
-
-#~ msgid "DISABLE ALWAYS ON TOP"
-#~ msgstr "WYŁĄCZ ZAWSZE NA WIERZCHU"
-
-#~ msgid "ENABLE ALWAYS ON TOP"
-#~ msgstr "ZAWSZE NA WIERZCHU"
-
-#~ msgid "FILE INFO BOX"
-#~ msgstr "OKNO INFORMACJI PLIKU"
-
-#~ msgid "DISABLE DOUBLESIZE"
-#~ msgstr "WYŁĄCZ PODWÓJNY ROZMIAR"
-
-#~ msgid "ENABLE DOUBLESIZE"
-#~ msgstr "PODWÓJNY ROZMIAR"
-
-#~ msgid "VISUALIZATION MENU"
-#~ msgstr "MENU WIZUALIZACJI"
-
-#~ msgid "Track name: "
-#~ msgstr "Nazwa utworu:"
-
-#~ msgid ""
-#~ "<b><big>Unable to play files.</big></b>\n"
-#~ "\n"
-#~ "The following files could not be played. Please check that:\n"
-#~ "1. they are accessible.\n"
-#~ "2. you have enabled the media plugins required."
-#~ msgstr ""
-#~ "<b><big>Nie można odtworzyć plików.</big></b>\n"
-#~ "\n"
-#~ "Nie można odtworzyć następujących plików. Sprawdź czy:\n"
-#~ "1. masz do nich dostęp.\n"
-#~ "2. włączona jest wymagana wtyczka."
-
-#~ msgid "Show more _details"
-#~ msgstr "Pokaż _szczegóły"
-
-#~ msgid ""
-#~ "\n"
-#~ "Received SIGSEGV\n"
-#~ "\n"
-#~ "This could be a bug in Audacious. If you don't know why this happened, "
-#~ "file a bug at http://bugs-meta.atheme.org/\n"
-#~ "\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Otrzymano SIGSEGV\n"
-#~ "\n"
-#~ "Mógł to być błąd w Audacious. Jeśli nie wiesz czemu tak się stało, napisz "
-#~ "informację o błędzie na http://bugs.nenolod.net/\n"
-#~ "\n"
-
-#~ msgid ""
-#~ "Enables playlist transparency. This is not recommended for slower "
-#~ "machines as it requires some CPU time to create and cache the pixmaps "
-#~ "used for the transparency."
-#~ msgstr ""
-#~ "Włącza przeźroczystość playlisty. Nie jest to zalecane dla wolniejszych "
-#~ "maszyn ponieważ potrzebuje ono pewną ilość czasu procesora oraz "
-#~ "zachowania w pamięci obrazów użytych dla przeźroczystości."
-
-#~ msgid "Enable playlist transparency"
-#~ msgstr "Włącz przeźroczystość playlisty"
-
-#~ msgid "%s: option `%s' is ambiguous\n"
-#~ msgstr "%s: opcja '%s' jest dwuznaczna\n"
-
-#~ msgid "%s: option `--%s' doesn't allow an argument\n"
-#~ msgstr "%s: opcja '--%s' nie zezwala na podanie argumentun\n"
-
-#~ msgid "%s: option `%c%s' doesn't allow an argument\n"
-#~ msgstr "%s: opcja '%c%s' nie zezwala na podanie argumentu\n"
-
-#~ msgid "%s: option `%s' requires an argument\n"
-#~ msgstr "%s: opcja `%s' wymaga argumentu\n"
-
-#~ msgid "%s: unrecognized option `%c%s'\n"
-#~ msgstr "%s: nieznana opcja %c%s\n"
-
-#~ msgid "%s: illegal option -- %c\n"
-#~ msgstr "%s: niedozwolona opcja -- %c\n"
-
-#~ msgid "%s: invalid option -- %c\n"
-#~ msgstr "%s: nieprawidłowa opcja -- %c\n"
-
-#~ msgid "%s: option requires an argument -- %c\n"
-#~ msgstr "%s: opcja wymaga podania argumentu -- %c\n"
-
-#~ msgid "%s: option `-W %s' is ambiguous\n"
-#~ msgstr "%s: opcja 'W %s' jest dwuznaczna\n"
-
-#~ msgid "%s: option `-W %s' doesn't allow an argument\n"
-#~ msgstr "%s: opcja `-W %s' nie pozwala na argument\n"
-
-#~ msgid ""
-#~ "Usage: audacious [options] [files] ...\n"
-#~ "\n"
-#~ "Options:\n"
-#~ "--------\n"
-#~ msgstr ""
-#~ "Użycie: audacious [opcje] [pliki] ...\n"
-#~ "\n"
-#~ "Opcje:\n"
-#~ "--------\n"
-
-#~ msgid "Display this text and exit"
-#~ msgstr "Wyświetla ten tekst i zamyka program"
-
-#~ msgid "Activate Audacious"
-#~ msgstr "Aktywuj Audacious"
-
-#~ msgid "Previous session ID"
-#~ msgstr "ID poprzedniej sesji"
-
-#~ msgid "Disable error/warning interception (logging)"
-#~ msgstr "Wyłącz przechwytywanie błędół/ostrzerzeń (logowanie)"
-
-#~ msgid "Print version number and exit\n"
-#~ msgstr "Wyświetla numer wersji i kończy działanie programu.\n"
-
-#~ msgid "Add/Open Files dialog"
-#~ msgstr "Dodawanie plików"
-
-#~ msgid "Close Dialog on Add"
-#~ msgstr "Zamknij InformacjÄ™ przy dodaniu"
-
-#~ msgid "Deselect All"
-#~ msgstr "Odznacz wszystkie"
-
-#~ msgid "Artist Popup"
-#~ msgstr "Dymki o Wykonawcy"
-
-#~ msgid "<i>Genre</i>"
-#~ msgstr "<i>Rodzaj</i>"
-
-#~ msgid "<i>Year</i>"
-#~ msgstr "<i>Rok</i>"
-
-#~ msgid "<i>Track Number</i>"
-#~ msgstr "<i>Numer utworu</i>"
-
-#~ msgid "<i>Track Length</i>"
-#~ msgstr "<i>Długość utworu</i>"
-
-#~ msgid "label65"
-#~ msgstr "label65"
-
-#~ msgid "label76"
-#~ msgstr "label76"
-
-#~ msgid "/View Track Details"
-#~ msgstr "/Informacje o pliku"
-
-#~ msgid "/Visualization Mode/Analyzer"
-#~ msgstr "/Tryb wizualizacji/Analizator"
-
-#~ msgid "/Visualization Mode/Scope"
-#~ msgstr "/Tryb wizualizacji/Sygnał"
-
-#, fuzzy
-#~ msgid "/Visualization Mode/Voiceprint"
-#~ msgstr "/Tryb wizualizacji/Sygnał"
-
-#~ msgid "/Visualization Mode/Off"
-#~ msgstr "/Tryb wizualizacji/Brak"
-
-#~ msgid "/Analyzer Mode/Normal"
-#~ msgstr "/Tryb analizatora/Zwykły"
-
-#~ msgid "/Analyzer Mode/Lines"
-#~ msgstr "/Tryb analizatora/Linie"
-
-#~ msgid "/Analyzer Mode/Bars"
-#~ msgstr "/Tryb analizatora/SÅ‚upki"
-
-#~ msgid "/Analyzer Mode/Peaks"
-#~ msgstr "/Tryb analizatora/Piki"
-
-#~ msgid "/Scope Mode/Dot Scope"
-#~ msgstr "/Tryb sygnału/Sygnał punktowany"
-
-#, fuzzy
-#~ msgid "/Voiceprint mode/Normal"
-#~ msgstr "/Tryb analizatora/Zwykły"
-
-#~ msgid "/WindowShade VU Mode/Normal"
-#~ msgstr "/Wskaźnik sygnału/Zwykły"
-
-#~ msgid "/WindowShade VU Mode/Smooth"
-#~ msgstr "/Wskaźnik sygnału/Gładki"
-
-#~ msgid "/Analyzer Falloff/Slowest"
-#~ msgstr "/Zanik analizatora/Najwolniejszy"
-
-#~ msgid "/Analyzer Falloff/Slow"
-#~ msgstr "/Zanik analizatora/Wolny"
-
-#~ msgid "/Analyzer Falloff/Medium"
-#~ msgstr "/Zanik analizatora/Åšredni"
-
-#~ msgid "/Analyzer Falloff/Fast"
-#~ msgstr "/Zanik analizatora/Szybki"
-
-#~ msgid "/Analyzer Falloff/Fastest"
-#~ msgstr "/Zanik analizatora/Najszybszy"
-
-#~ msgid "/Peaks Falloff/Slowest"
-#~ msgstr "/Zanik analizatora/Najwolniejszy"
-
-#~ msgid "/Peaks Falloff/Slow"
-#~ msgstr "/Zanik analizatora/Wolny"
-
-#~ msgid "/Peaks Falloff/Medium"
-#~ msgstr "/Zanik analizatora/Åšredni"
-
-#~ msgid "/Peaks Falloff/Fast"
-#~ msgstr "/Zanik analizatora/Szybki"
-
-#~ msgid "/Peaks Falloff/Fastest"
-#~ msgstr "/Zanik analizatora/Najszybszy"
-
-#~ msgid "/Pause"
-#~ msgstr "/Wstrzymaj"
-
-#~ msgid "/-"
-#~ msgstr "/-"
-
-#~ msgid "/Jump to Time"
-#~ msgstr "/Skocz do czasu"
-
-#~ msgid "/About Audacious"
-#~ msgstr "Informacje o Audacious"
-
-#~ msgid "/Files..."
-#~ msgstr "/Pliki..."
-
-#~ msgid "/Internet location..."
-#~ msgstr "Adres internetowy..."
-
-#, fuzzy
-#~ msgid "New List"
-#~ msgstr "/Nowa lista"
-
-#, fuzzy
-#~ msgid "Creates a new playlist."
-#~ msgstr "Zaktualizuj listÄ™"
-
-#, fuzzy
-#~ msgid "Displays track information."
-#~ msgstr "Uzyskanie utworu:"
-
-#~ msgid "/Load"
-#~ msgstr "/Wczytaj"
-
-#~ msgid "/Load/Preset"
-#~ msgstr "/Wczytaj/Ustawienie"
-
-#~ msgid "/Load/Default"
-#~ msgstr "/Wczytaj/Domyślne"
-
-#~ msgid "/Load/Zero"
-#~ msgstr "/Wczytaj/Wyzeruj"
-
-#~ msgid "/Import"
-#~ msgstr "/Importuj"
-
-#~ msgid "/Save"
-#~ msgstr "/Zapisz"
-
-#~ msgid "/Save/Preset"
-#~ msgstr "/Zapisz/Ustawienie"
-
-#~ msgid "/Save/Default"
-#~ msgstr "/Zapisz/Domyślne"
-
-#~ msgid "/Save/To file"
-#~ msgstr "/Zapisz/Do pliku"
-
-#~ msgid "/Delete"
-#~ msgstr "/Usuń"
-
-#~ msgid "/Delete/Preset"
-#~ msgstr "/Usuń/Ustawienie"
-
-#~ msgid "Load auto-preset"
-#~ msgstr "Wczytywanie automatycznego ustawienia"
-
-#~ msgid "Load equalizer preset"
-#~ msgstr "Wczytywanie ustawień korektora"
-
-#~ msgid "Delete auto-preset"
-#~ msgstr "Usunięcie automatycznego ustawienia"
-
-#~ msgid "/Show Popup Info"
-#~ msgstr "Pokaż informacje w dymkach"
-
-#~ msgid "/Remove Duplicates/By Title"
-#~ msgstr "/Usuń Duplikaty/Według Tytułu"
-
-#~ msgid "/Remove Duplicates/By Filename"
-#~ msgstr "/Usuń Duplikaty/Według nazwy pliku"
-
-#~ msgid "/Update View"
-#~ msgstr "/Zaktualizuj Widok"
-
-#~ msgid "/Select All"
-#~ msgstr "Zaznacz wszystkie"
-
-#~ msgid "/Sort List/By Date"
-#~ msgstr "/Sortuj listę/Według daty"
-
-#~ msgid "/Sort Selection/By Title"
-#~ msgstr "/Sortuj zaznaczone/Według tytułu"
-
-#~ msgid "/Sort Selection/By Artist"
-#~ msgstr "/Sortuj zaznaczone/Według Artysty"
-
-#~ msgid "/Sort Selection/By Filename"
-#~ msgstr "/Sortuj zaznaczone/Według nazwy pliku"
-
-#~ msgid "/Sort Selection/By Path + Filename"
-#~ msgstr "/Sortuj zaznaczone/Według położenia i nazwy pliku"
-
-#~ msgid "/Sort Selection/By Date"
-#~ msgstr "/Sortuj zaznaczone/Według daty"
-
-#~ msgid "/Sort Selection/By Track Number"
-#~ msgstr "/Sortuj zaznaczone/Według numeru ścieżki"
-
-#~ msgid "/Sort Selection/By Playlist Entry"
-#~ msgstr "/Sortuj zaznaczone/Według kolejności wpisu"
-
-#, fuzzy
-#~ msgid "<b>_Miscillaneous UI Features</b>"
-#~ msgstr "<b>_Różne:</b>"
-
-#~ msgid "AudioCompress "
-#~ msgstr "AudioCompress "
-
-#~ msgid ""
-#~ "\n"
-#~ "(c)2003 trikuare studios(http://trikuare.cx)\n"
-#~ "Ported to Audacious by Tony Vroon (chainsaw at gentoo.org)\n"
-#~ "\n"
-#~ "Simple dynamic range compressor for transparently\n"
-#~ "keeping the volume level more or less consistent"
-#~ msgstr ""
-#~ "\n"
-#~ "(c)2003 trikuare studios(http://trikuare.cx)\n"
-#~ "Portował do Audacious Tony Vroon (chainsaw at gentoo.org)\n"
-#~ "\n"
-#~ "Prosty kompresor dynamicznie \n"
-#~ "utrzymujący poziom głośności na stałym poziomie"
-
-#~ msgid "About AudioCompress"
-#~ msgstr "Informacje o wtyczce AudioCompress"
-
-#~ msgid "Ok"
-#~ msgstr "Ok"
-
-#~ msgid ""
-#~ "Extra Stereo Plugin\n"
-#~ "\n"
-#~ "By Johan Levin 1999."
-#~ msgstr ""
-#~ "Wtyczka Extra Stereo\n"
-#~ "\n"
-#~ "Autor Johan Levin 1999."
-
-#~ msgid "Extra Stereo Plugin %s"
-#~ msgstr "Wtyczka Extra Stereo %s"
-
-#~ msgid "About Extra Stereo Plugin"
-#~ msgstr "Informacje o wtyczce Extra Stereo"
-
-#~ msgid "Configure Extra Stereo"
-#~ msgstr "Konfiguruj Extra Stereo"
-
-#~ msgid "Effect intensity:"
-#~ msgstr "Intensywność efektu:"
-
-#~ msgid "Cancel"
-#~ msgstr "Anuluj"
-
-#~ msgid "Apply"
-#~ msgstr "Zatwierdź"
-
-#~ msgid "About LIRC Audacious Plugin"
-#~ msgstr "Informacje o wtyczce LIRC"
-
-#~ msgid "LIRC Plugin "
-#~ msgstr "Wtyczka LIRC"
-
-#~ msgid ""
-#~ "\n"
-#~ "A simple plugin that lets you control\n"
-#~ "Audacious using the LIRC remote control daemon\n"
-#~ "\n"
-#~ "Adapted for Audacious usage by Tony Vroon <chainsaw at gentoo.org>\n"
-#~ "from the XMMS LIRC plugin by:\n"
-#~ "Carl van Schaik <carl at leg.uct.ac.za>\n"
-#~ "Christoph Bartelmus <xmms at bartelmus.de>\n"
-#~ "You can get LIRC information at:\n"
-#~ "http://fsinfo.cs.uni-sb.de/~columbus/lirc/index.html"
-#~ msgstr ""
-#~ "\n"
-#~ "Prosta wtyczka pozwalajÄ…ca na kontrolÄ™\n"
-#~ "Audacious poprzez demon LIRC\n"
-#~ "\n"
-#~ "Portował do Audacious Tony Vroon <chainsaw at gentoo.org>\n"
-#~ "z wtyczki XMMS LIRC stworzonej przez:\n"
-#~ "Carl van Schaik <carl at leg.uct.ac.za>\n"
-#~ "Christoph Bartelmus <xmms at bartelmus.de>\n"
-#~ "Informacje o LIRC można pobrać z:\n"
-#~ "http://fsinfo.cs.uni-sb.de/~columbus/lirc/index.html"
-
-#~ msgid "LIRC Plugin"
-#~ msgstr "Wtyczka LIRC"
-
-#~ msgid "%s: could not init LIRC support\n"
-#~ msgstr "%s: nie mógł zainicjować wtyczki LIRC\n"
-
-#~ msgid ""
-#~ "%s: could not read LIRC config file\n"
-#~ "%s: please read the documentation of LIRC\n"
-#~ "%s: how to create a proper config file\n"
-#~ msgstr ""
-#~ "%s: nie mógł przeczytać pliku konfiguracyjnego\n"
-#~ "%s: przeczytaj dokumentacjÄ™ LIRC\n"
-#~ "%s: odnośnie tworzenia poprawnej konfiguracji\n"
-
-#~ msgid "%s: unknown command \"%s\"\n"
-#~ msgstr "%s: nieznana komenda \"%s\"\n"
-
-#~ msgid "%s: disconnected from LIRC\n"
-#~ msgstr "%s: odłączono od LIRC\n"
-
-#~ msgid "<b>Scrobbler Preferences</b>"
-#~ msgstr "<b>Preferencje</b>"
-
-#~ msgid "Username:"
-#~ msgstr "Użytkownik:"
-
-#~ msgid "Password:"
-#~ msgstr "Hasło:"
-
-#~ msgid "About Scrobbler Plugin"
-#~ msgstr "Informacje o wtyczce Scrobbler"
-
-#~ msgid "Scrobbler Plugin"
-#~ msgstr "Wtyczka Scrobbler"
-
-#~ msgid "Song Change %s"
-#~ msgstr "Zmiana Piosenki %s"
-
-#~ msgid "Commands"
-#~ msgstr "Komendy"
-
-#~ msgid "Command to run when Audacious starts a new song."
-#~ msgstr "Komenda do uruchomienia przy grze nowego utworu"
-
-#~ msgid "Command:"
-#~ msgstr "Komenda:"
-
-#~ msgid "Command to run toward the end of a song."
-#~ msgstr "Komenda do uruchomienia przy końcu gry utworu"
-
-#~ msgid "Command to run when Audacious reaches the end of the playlist."
-#~ msgstr "Komenda do uruchomienia przy dotarciu do końca playlisty"
-
-#~ msgid ""
-#~ "You can use the following format strings which\n"
-#~ "will be substituted before calling the command\n"
-#~ "(not all are useful for the end-of-playlist command).\n"
-#~ "\n"
-#~ "%%F: Frequency (in hertz)\n"
-#~ "%%c: Number of channels\n"
-#~ "%%f: filename (full path)\n"
-#~ "%%l: length (in milliseconds)\n"
-#~ "%%n or %%s: Song name\n"
-#~ "%%r: Rate (in bits per second)\n"
-#~ "%%t: Playlist position (%%02d)\n"
-#~ "%%p: Currently playing (1 or 0)"
-#~ msgstr ""
-#~ "Możliwe jest użycie poniższych zmiennych które zostaną użyte podczas "
-#~ "uruchamiania komendy (Nie wszystkie są użyteczne przy komendzie dla końca "
-#~ "playlisty).\n"
-#~ "\n"
-#~ "%%F: Częstotliwość (w hertzach)\n"
-#~ "%%c: Liczba kanałów\n"
-#~ "%%f: Nazwa pliku (pełna ścieżka)\n"
-#~ "%%l: Długość (w milisekundach)\n"
-#~ "%%n lub %%s: Tytuł piosenki\n"
-#~ "%%r: Rate (w bitach na sekundÄ™)\n"
-#~ "%%t: Pozycja w playliście (%%02d)\n"
-#~ "%%p: Obecnie gra (1 or 0)"
-
-#~ msgid ""
-#~ "<span size='small'>Parameters passed to the shell should be encapsulated "
-#~ "in quotes. Doing otherwise is a security risk.</span>"
-#~ msgstr ""
-#~ "<span size='small'>Parametry podawane do konsoli powinny być wpisane "
-#~ "pomiędzy cudzysłowy. Zrobienie inaczej stwarza ryzyko dla bezpieczeństwa."
-#~ "</span>"
-
-#~ msgid "About "
-#~ msgstr "Informacje o"
-
-#~ msgid ""
-#~ "\n"
-#~ "Copyright (C) 2002, 2003 Simon Peter <dn.tlp at gmx.net>\n"
-#~ "\n"
-#~ "This plugin is released under the terms and conditions of the GNU LGPL.\n"
-#~ "See http://www.gnu.org/licenses/lgpl.html for details.\n"
-#~ "\n"
-#~ "This plugin uses the AdPlug library, which is copyright (C) Simon Peter, "
-#~ "et al.\n"
-#~ "Linked AdPlug library version: "
-#~ msgstr ""
-#~ "\n"
-#~ "Prawa (C) 2002, 2003 Simon Peter <dn.tlp at gmx.net>\n"
-#~ "\n"
-#~ "Ten plugin jest udostępniony zgodnie z prawami i postanowieniami GNU "
-#~ "LGPL.\n"
-#~ "zobacz http://www.gnu.org/licenses/lgpl.html dla uzyskania szczegułów.\n"
-#~ "\n"
-#~ "Plugin ten używa biblioteki AdPlug stworzonej przez (C) Simon Peter, et "
-#~ "al.\n"
-#~ "Wersja biblioteki AdPlug: "
-
-#~ msgid "AMIDI-Plug %s (MIDI Player)"
-#~ msgstr "AMIDI-Plug %s (MIDI Player)"
-
-#~ msgid "AMIDI-Plug - warning"
-#~ msgstr "AMIDI-Plug - ostrzeżenie"
-
-#~ msgid ""
-#~ "No sequencer backend has been selected!\n"
-#~ "Please configure AMIDI-Plug before playing."
-#~ msgstr ""
-#~ "Żaden sequencer nie został wybrany!\n"
-#~ "ProszÄ™ skonfiguruj AMIDI-Plug przed odtwarzaniem."
-
-#~ msgid "AMIDI-Plug - select file"
-#~ msgstr "AMIDI-Plug - wybierz plik"
-
-#~ msgid "AMIDI-Plug - configuration"
-#~ msgstr "AMIDI-Plug - konfiguracja"
-
-#~ msgid "AMIDI-Plug message"
-#~ msgstr "AMIDI-Plug wiadomość"
-
-#~ msgid "Please stop the player before changing AMIDI-Plug settings."
-#~ msgstr "Proszę zatrzymaj odtwarzacz przed zmianą ustawień MIDI-Plug"
-
-#~ msgid "Name:"
-#~ msgstr "Nazwa:"
-
-#~ msgid " MIDI Info "
-#~ msgstr "Informacje o pliku MIDI"
-
-#~ msgid "Length (msec):"
-#~ msgstr "Długość (msec):"
-
-#~ msgid "Num of Tracks:"
-#~ msgstr "Liczba Utworów:"
-
-#~ msgid "variable"
-#~ msgstr "zmienna"
-
-#~ msgid "BPM:"
-#~ msgstr "BPM:"
-
-#~ msgid "BPM (wavg):"
-#~ msgstr "BPM (średnia):"
-
-#~ msgid "Time Div:"
-#~ msgstr "Time Div:"
-
-#~ msgid "CD Audio Plugin"
-#~ msgstr "Wtyczka audio CD"
-
-#~ msgid "CD Audio Track %02u"
-#~ msgstr "Utwór %02u płyty CD Audio"
-
-#~ msgid "(unknown)"
-#~ msgstr "(nieznany)"
-
-#~ msgid "Drive %d"
-#~ msgstr "Napęd %d"
-
-#~ msgid ""
-#~ "Failed to open device %s\n"
-#~ "Error: %s\n"
-#~ "\n"
-#~ msgstr ""
-#~ "Nie można otworzyć urządzenia %s\n"
-#~ "BÅ‚Ä…d: %s\n"
-#~ "\n"
-
-#~ msgid ""
-#~ "Failed to read \"Table of Contents\"\n"
-#~ "Maybe no disc in the drive?\n"
-#~ "\n"
-#~ msgstr ""
-#~ "Nie można odczytać \"Tablicy zawartości\"\n"
-#~ "Sprawdź czy dysk jest w napędzie.\n"
-#~ "\n"
-
-#~ msgid ""
-#~ "Device %s OK.\n"
-#~ "Disc has %d tracks"
-#~ msgstr ""
-#~ "UrzÄ…dzenie %s jest OK.\n"
-#~ "Dysk ma %d ścieżek"
-
-#~ msgid " (%d data tracks)"
-#~ msgstr " (%d ścieżek z danymi)"
-
-#~ msgid ""
-#~ "\n"
-#~ "Total length: %d:%d\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Całkowita długość: %d:%d\n"
-
-#~ msgid ""
-#~ "Digital audio extraction not tested as the disc has no audio tracks\n"
-#~ msgstr ""
-#~ "Źródło dźwięku cyfrowego nie zostało przetestowane, ponieważ dysk nie "
-#~ "zawiera ścieżek audio\n"
-
-#~ msgid ""
-#~ "Digital audio extraction test: OK\n"
-#~ "\n"
-#~ msgstr ""
-#~ "Testowanie źródła dźwięku cyfrowego: OK\n"
-#~ "\n"
-
-#~ msgid ""
-#~ "Digital audio extraction test failed: %s\n"
-#~ "\n"
-#~ msgstr ""
-#~ "Testowanie źródła dźwięku cyfrowego: Niepowodzenie %s\n"
-#~ "\n"
-
-#~ msgid ""
-#~ "Failed to check directory %s\n"
-#~ "Error: %s"
-#~ msgstr ""
-#~ "BÅ‚Ä…d w sprawdzaniu folderu %s\n"
-#~ "BÅ‚Ä…d: %s"
-
-#~ msgid "Error: %s exist, but is not a directory"
-#~ msgstr "BÅ‚Ä…d: %s isnieje, lecz nie jest to folderem"
-
-#~ msgid "Directory %s OK."
-#~ msgstr "Folder %s jest w porzÄ…dku."
-
-#~ msgid "Device:"
-#~ msgstr "UrzÄ…dzenie:"
-
-#~ msgid "_Device:"
-#~ msgstr "_UrzÄ…dzenie:"
-
-#~ msgid "Dir_ectory:"
-#~ msgstr "Ka_talog:"
-
-#~ msgid "Play mode:"
-#~ msgstr "Tryb odtwarzania:"
-
-#~ msgid "Analog"
-#~ msgstr "Analogowy"
-
-#~ msgid "Digital audio extraction"
-#~ msgstr "Pochodzenie dźwięku cyfrowego"
-
-#~ msgid "No mixer"
-#~ msgstr "Brak miksera"
-
-#~ msgid "CDROM drive"
-#~ msgstr "Napęd CDROM"
-
-#~ msgid "OSS mixer"
-#~ msgstr "Mikser OSS"
-
-#~ msgid "Check drive..."
-#~ msgstr "Sprawdź napęd..."
-
-#~ msgid "Remove drive"
-#~ msgstr "Usuń napęd"
-
-#~ msgid "CD Audio Player Configuration"
-#~ msgstr "Konfiguracja odtwarzacza CD Audio"
-
-#~ msgid "Add drive"
-#~ msgstr "Dodaj napęd"
-
-#~ msgid "Device"
-#~ msgstr "UrzÄ…dzenie"
-
-#~ msgid "CDDB:"
-#~ msgstr "CDDB:"
-
-#~ msgid "Use CDDB"
-#~ msgstr "Użycie CDDB"
-
-#~ msgid "Get server list"
-#~ msgstr "Pobierz listę serwerów"
-
-#~ msgid "Show network window"
-#~ msgstr "Wyświetl okno sieciowe"
-
-#~ msgid "CDDB server:"
-#~ msgstr "Serwer CDDB:"
-
-#~ msgid "CD Index:"
-#~ msgstr "Indeks płyt CD:"
-
-#~ msgid "Use CD Index"
-#~ msgstr "Użycie indeksu płyt CD"
-
-#~ msgid "CD Index server:"
-#~ msgstr "Serwer indeksu płyt CD:"
-
-#~ msgid "Override generic titles"
-#~ msgstr "Nie stosowanie ogólnych tytułów"
-
-#~ msgid "Name format:"
-#~ msgstr "Format nazwy:"
-
-#~ msgid "CD Info"
-#~ msgstr "Informacje o płycie CD"
-
-#~ msgid "About the Console Music Decoder"
-#~ msgstr "Informacje o Console Music Decoder"
-
-#~ msgid ""
-#~ "Console music decoder engine based on Game_Music_Emu 0.3.0.\n"
-#~ "Audacious implementation by: William Pitcock <nenolod at nenolod.net>, \n"
-#~ "        Shay Green <hotpop.com at blargg>"
-#~ msgstr ""
-#~ "Console music decoder engine bazowany na Game_Music_Emu 0.3.0.\n"
-#~ "portowNy do Audacious przez: William Pitcock <nenolod at nenolod.net>, \n"
-#~ "        Shay Green <hotpop.com at blargg>"
-
-#~ msgid "SPC, VGM, NSF/NSFE, GBS, and GYM module decoder"
-#~ msgstr "SPC, VGM, NSF/NSFE, GBS, and GYM module decoder"
-
-#~ msgid "Arabic (IBM-864)"
-#~ msgstr "Arabski (IBM-864)"
-
-#~ msgid "Arabic (ISO-8859-6)"
-#~ msgstr "Arabski (ISO-8859-6)"
-
-#~ msgid "Arabic (Windows-1256)"
-#~ msgstr "Arabski (Windows-1256)"
-
-#~ msgid "Baltic (ISO-8859-13)"
-#~ msgstr "Bałtycki (ISO-8859-13)"
-
-#~ msgid "Baltic (ISO-8859-4)"
-#~ msgstr "Bałtycki (ISO-8859-4)"
-
-#~ msgid "Baltic (Windows-1257)"
-#~ msgstr "Bałtycki (Windows-1257)"
-
-#~ msgid "Celtic (ISO-8859-14)"
-#~ msgstr "Celtycki (ISO-8859-14)"
-
-#~ msgid "Central European (IBM-852)"
-#~ msgstr "Åšrodkowo-Europejski (IBM-852)"
-
-#~ msgid "Central European (ISO-8859-2)"
-#~ msgstr "Åšrodkowo-Europejski (ISO-8859-2)"
-
-#~ msgid "Central European (Windows-1250)"
-#~ msgstr "Åšrodkowo-Europejski (Windows-1250)"
-
-#~ msgid "Chinese Simplified (GB18030)"
-#~ msgstr "Chiński Uproszczony (GB18030)"
-
-#~ msgid "Chinese Simplified (GB2312)"
-#~ msgstr "Chiński Uproszczony (GB2312)"
-
-#~ msgid "Chinese Traditional (Big5)"
-#~ msgstr "Chiński Tradycyjny (Big5)"
-
-#~ msgid "Chinese Traditional (Big5-HKSCS)"
-#~ msgstr "Chiński Tradycyjny (Big5-HKSCS)"
-
-#~ msgid "Cyrillic (IBM-855)"
-#~ msgstr "Cyrylica (IBM-855)"
-
-#~ msgid "Cyrillic (ISO-8859-5)"
-#~ msgstr "Cyrylica (ISO-8859-5)"
-
-#~ msgid "Cyrillic (ISO-IR-111)"
-#~ msgstr "Cyrylica (ISO-IR-111)"
-
-#~ msgid "Cyrillic (KOI8-R)"
-#~ msgstr "Cyrylica (KOI8-R)"
-
-#~ msgid "Cyrillic (Windows-1251)"
-#~ msgstr "Cyrylica (Windows-1251)"
-
-#~ msgid "Cyrillic/Russian (CP-866)"
-#~ msgstr "Cyrylica/Rosyjski (CP-866)"
-
-#~ msgid "Cyrillic/Ukrainian (KOI8-U)"
-#~ msgstr "Cyrylica/Ukraiński (KOI8-U)"
-
-#~ msgid "English (US-ASCII)"
-#~ msgstr "Angielski (US-ASCII)"
-
-#~ msgid "Greek (ISO-8859-7)"
-#~ msgstr "Grecki (ISO-8859-7)"
-
-#~ msgid "Greek (Windows-1253)"
-#~ msgstr "Grecki (Windows-1253)"
-
-#~ msgid "Hebrew (IBM-862)"
-#~ msgstr "Hebrajski (IBM-862)"
-
-#~ msgid "Hebrew (Windows-1255)"
-#~ msgstr "Hebrajski (Windows-1255)"
-
-#~ msgid "Japanese (EUC-JP)"
-#~ msgstr "Japoński (EUC-JP)"
-
-#~ msgid "Japanese (ISO-2022-JP)"
-#~ msgstr "Japoński (ISO-2022-JP)"
-
-#~ msgid "Japanese (Shift_JIS)"
-#~ msgstr "Japoński (Shift_JIS)"
-
-#~ msgid "Korean (EUC-KR)"
-#~ msgstr "Koreański (EUC-KR)"
-
-#~ msgid "Nordic (ISO-8859-10)"
-#~ msgstr "Nordycki (ISO-8859-10)"
-
-#~ msgid "South European (ISO-8859-3)"
-#~ msgstr "Południowo-Europejski (ISO-8859-3)"
-
-#~ msgid "Thai (TIS-620)"
-#~ msgstr "Tajski (TIS-620)"
-
-#~ msgid "Turkish (IBM-857)"
-#~ msgstr "Turecki (IBM-857)"
-
-#~ msgid "Turkish (ISO-8859-9)"
-#~ msgstr "Turecki (ISO-8859-9)"
-
-#~ msgid "Turkish (Windows-1254)"
-#~ msgstr "Turecki (Windows-1254)"
-
-#~ msgid "Unicode (UTF-7)"
-#~ msgstr "Unikod (UTF-7)"
-
-#~ msgid "Unicode (UTF-8)"
-#~ msgstr "Unikod (UTF-8)"
-
-#~ msgid "Unicode (UTF-16BE)"
-#~ msgstr "Unikod (UTF-16BE)"
-
-#~ msgid "Unicode (UTF-16LE)"
-#~ msgstr "Unikod (UTF-16LE)"
-
-#~ msgid "Unicode (UTF-32BE)"
-#~ msgstr "Unikod (UTF-32BE)"
-
-#~ msgid "Unicode (UTF-32LE)"
-#~ msgstr "Unikod (UTF-32LE)"
-
-#~ msgid "Vietnamese (VISCII)"
-#~ msgstr "Wietnamski (VISCII)"
-
-#~ msgid "Vietnamese (Windows-1258)"
-#~ msgstr "Wietnamski (Windows-1258)"
-
-#, fuzzy
-#~ msgid "Visual Hebrew (ISO-8859-8)"
-#~ msgstr "Hebrajski (ISO-8859-8)"
-
-#~ msgid "Western (IBM-850)"
-#~ msgstr "Zachodni (IBM-850)"
-
-#~ msgid "Western (ISO-8859-1)"
-#~ msgstr "Zachodni (ISO-8859-1)"
-
-#~ msgid "Western (ISO-8859-15)"
-#~ msgstr "Zachodni (ISO-8859-15)"
-
-#~ msgid "Western (Windows-1252)"
-#~ msgstr "Zachodni (Windows-1252)"
-
-#~ msgid "Arabic (IBM-864-I)"
-#~ msgstr "Arabski (IBM-864-I)"
-
-#~ msgid "Arabic (ISO-8859-6-E)"
-#~ msgstr "Arabski (ISO-8859-6-E)"
-
-#~ msgid "Arabic (ISO-8859-6-I)"
-#~ msgstr "Arabski (ISO-8859-6-I)"
-
-#~ msgid "Arabic (MacArabic)"
-#~ msgstr "Arabski (MacArabic)"
-
-#~ msgid "Armenian (ARMSCII-8)"
-#~ msgstr "Armeński (ARMSCII-8)"
-
-#~ msgid "Central European (MacCE)"
-#~ msgstr "Åšrodkowo-Europejski (MacCE)"
-
-#~ msgid "Chinese Simplified (GBK)"
-#~ msgstr "Chiński Uproszczony (GBK)"
-
-#~ msgid "Chinese Simplified (HZ)"
-#~ msgstr "Chiński Uproszczony (HZ)"
-
-#~ msgid "Chinese Traditional (EUC-TW)"
-#~ msgstr "Chiński Tradycyjny (EUC-TW)"
-
-#~ msgid "Croatian (MacCroatian)"
-#~ msgstr "Chorwacki (MacCroatian)"
-
-#~ msgid "Cyrillic/Ukrainian (MacUkrainian)"
-#~ msgstr "Cyrylica/Ukraiński (MacUkrainian)"
-
-#~ msgid "Farsi (MacFarsi)"
-#~ msgstr "Farski (MacFarsi)"
-
-#~ msgid "Greek (MacGreek)"
-#~ msgstr "Grecki (MacGreek)"
-
-#~ msgid "Hebrew (ISO-8859-8-E)"
-#~ msgstr "Hebrajski (ISO-8859-8-E)"
-
-#~ msgid "Hebrew (ISO-8859-8-I)"
-#~ msgstr "Hebrajski (ISO-8859-8-I)"
-
-#~ msgid "Hebrew (MacHebrew)"
-#~ msgstr "Hebrajski (MacHebrew)"
-
-#~ msgid "Hindi (MacDevanagari)"
-#~ msgstr "Hinduski (MacDevanagari)"
-
-#~ msgid "Icelandic (MacIcelandic)"
-#~ msgstr "Islandzki (MacIcelandic)"
-
-#~ msgid "Korean (JOHAB)"
-#~ msgstr "Koreański (JOHAB)"
-
-#~ msgid "Korean (UHC)"
-#~ msgstr "Koreański (UHC)"
-
-#~ msgid "Romanian (MacRomanian)"
-#~ msgstr "Rumuński (MacRomanian)"
-
-#~ msgid "Turkish (MacTurkish)"
-#~ msgstr "Turecki (MacTurkish)"
-
-#~ msgid "User Defined"
-#~ msgstr "Zdefiniowany przez użytkownika:"
-
-#~ msgid "Vietnamese (TCVN)"
-#~ msgstr "Wietnamski (TCVN)"
-
-#~ msgid "Vietnamese (VPS)"
-#~ msgstr "Wietnamski (VPS)"
-
-#~ msgid "Western (MacRoman)"
-#~ msgstr "Zachodni (MacRoman)"
-
-#~ msgid "Select the directory where you want to store the MPEG streams:"
-#~ msgstr "Wybór folderu przechowującego strumienie MPEG:"
-
-#~ msgid "Flac Configuration"
-#~ msgstr "Konfiguracja wtyczki FLAC"
-
-#~ msgid "Tag Handling"
-#~ msgstr "Preferencje Znaczników"
-
-#~ msgid "Convert character set from :"
-#~ msgstr "Konwertuj TablicÄ™ KodowÄ… z :"
-
-#~ msgid "to :"
-#~ msgstr "do :"
-
-#~ msgid "Enable ReplayGain processing"
-#~ msgstr "WÅ‚Ä…czenie powtarzania uzyskanego"
-
-#~ msgid "Resolution"
-#~ msgstr "Rozdzielczość:"
-
-#~ msgid "Without ReplayGain"
-#~ msgstr "Bez Powtarzania uzyskanego"
-
-#~ msgid "With ReplayGain"
-#~ msgstr "Wraz z powtarzaj uzyskanym"
-
-#~ msgid "Noise shaping"
-#~ msgstr "GÅ‚adzenie szumu"
-
-#~ msgid "high"
-#~ msgstr "wysoki"
-
-#~ msgid "16 bps"
-#~ msgstr "16 bitów"
-
-#~ msgid "24 bps"
-#~ msgstr "24 bity"
-
-#~ msgid "Output"
-#~ msgstr "Wyjście"
-
-#~ msgid "Buffering:"
-#~ msgstr "Buforowanie:"
-
-#~ msgid "Buffer size (kb):"
-#~ msgstr "Rozmiar bufora (kb):"
-
-#~ msgid "Pre-buffer (percent):"
-#~ msgstr "Wstępne wypełnienie bufora (procenty):"
-
-#~ msgid "Save stream to disk:"
-#~ msgstr "Zapis strumienia na dysku:"
-
-#~ msgid "Save stream to disk"
-#~ msgstr "WÅ‚Ä…czenie zapisu strumienia na dysk"
-
-#~ msgid "Path:"
-#~ msgstr "Położenie:"
-
-#~ msgid "Browse"
-#~ msgstr "PrzeglÄ…daj"
-
-#~ msgid "SHOUT/Icecast:"
-#~ msgstr "SHOUT/Icecast:"
-
-#~ msgid "Enable SHOUT/Icecast title streaming"
-#~ msgstr "Włączenie strumieniowania tytułu SHOUT/Icecast"
-
-#~ msgid "Enable Icecast Metadata UDP Channel"
-#~ msgstr "Włączenie kanału Icecast Metadata UDP"
-
-#~ msgid "Streaming"
-#~ msgstr "Strumieniowanie"
-
-#~ msgid "About Flac Plugin"
-#~ msgstr "Informacje o wtyczce FLAC"
-
-#~ msgid ""
-#~ "Flac Plugin by Josh Coalson\n"
-#~ "contributions by\n"
-#~ "......\n"
-#~ "......\n"
-#~ "and\n"
-#~ "Daisuke Shimamura\n"
-#~ "Visit http://flac.sourceforge.net/"
-#~ msgstr ""
-#~ "Wtyczka Flac autorstwa Josh Coalson\n"
-#~ "w współpracy z\n"
-#~ "......\n"
-#~ "......\n"
-#~ "oraz\n"
-#~ "Daisuke Shimamura\n"
-#~ "Odwiedź http://flac.sourceforge.net/"
-
-#~ msgid "Samplerate: %d Hz"
-#~ msgstr "Próbkowanie: %d Hz"
-
-#~ msgid "Channels: %d"
-#~ msgstr "Kanały: %d"
-
-#~ msgid "Bits/Sample: %d"
-#~ msgstr "Bity/Próbkę: %d"
-
-#~ msgid "Blocksize: %d"
-#~ msgstr "Rozmiar bloku: %d"
-
-#~ msgid ""
-#~ "Blocksize: variable\n"
-#~ "  min/max: %d/%d"
-#~ msgstr ""
-#~ "Rozmiar bloku: zmienna\n"
-#~ "  min/max: %d/%d"
-
-#~ msgid ""
-#~ "Samples: %llu\n"
-#~ "Length: %d:%.2d"
-#~ msgstr "Sample: %llu\\nDługość: %d:%d"
-
-#~ msgid "Filesize: %ld B"
-#~ msgstr "Rozmiar pliku: %ld B"
-
-#~ msgid ""
-#~ "Avg. bitrate: %.1f kb/s\n"
-#~ "Compression ratio: %.1f%%"
-#~ msgstr ""
-#~ "Åšrednie bitrate: %.1f kb/s\n"
-#~ "Współczynnik kompresji: %.1f%%"
-
-#~ msgid "Tag:"
-#~ msgstr "Znacznik:"
-
-#~ msgid "Comment:"
-#~ msgstr "Komentarz:"
-
-#~ msgid "Date:"
-#~ msgstr "Data:"
-
-#~ msgid "Track number:"
-#~ msgstr "Numer utworu:"
-
-#~ msgid "Genre:"
-#~ msgstr "Gatunek:"
-
-#~ msgid "Remove Tag"
-#~ msgstr "Usuń Znacznik"
-
-#~ msgid "FLAC Info:"
-#~ msgstr "Informacje o pliku FLAC"
-
-#~ msgid "File Info - %s"
-#~ msgstr "Informacje o pliku %s"
-
-#~ msgid "Error"
-#~ msgstr "BÅ‚Ä…d"
-
-#~ msgid "LOOKING UP %s"
-#~ msgstr "WYSZUKIWANIE %s"
-
-#~ msgid "Couldn't look up host %s"
-#~ msgstr "Nie można odnaleźć serwera %s"
-
-#~ msgid "CONNECTING TO %s:%d"
-#~ msgstr "ŁĄCZENIE SIĘ Z %s:%d"
-
-#~ msgid "Couldn't connect to host %s"
-#~ msgstr "Nie można połączyć się z serwerem %s"
-
-#~ msgid "CONNECTED: WAITING FOR REPLY"
-#~ msgstr "POŁĄCZENIE: OCZEKIWANIE NA ODPOWIEDŹ"
-
-#~ msgid ""
-#~ "Couldn't connect to host %s\n"
-#~ "Server reported: %s"
-#~ msgstr ""
-#~ "Nie można połączyć się z serwerem %s\n"
-#~ "Serwer zwrócił: %s"
-
-#~ msgid "PRE-BUFFERING: %dKB/%dKB"
-#~ msgstr "WSTĘPNE BUFOROWANIE: %dKB/%dKB"
-
-#~ msgid "FLAC Audio Plugin"
-#~ msgstr "Wtyczka FLAC"
-
-#~ msgid "ModPlug Configuration"
-#~ msgstr "Konfiguracja wtyczki ModPlug"
-
-#~ msgid "16 bit"
-#~ msgstr "16 bitów"
-
-#~ msgid "8 bit"
-#~ msgstr "8 bitów"
-
-#~ msgid "Mono (downmix)"
-#~ msgstr "Mono (downmix)"
-
-#~ msgid "Nearest (fastest)"
-#~ msgstr "Najbliższy (najszybszy)"
-
-#~ msgid "Linear (fast)"
-#~ msgstr "Liniowy (szybki)"
-
-#~ msgid "Spline (good quality)"
-#~ msgstr "Spline (dobra jakość)"
-
-#~ msgid "8-tap Fir (extremely high quality)"
-#~ msgstr "8-tap Fir (ekstremalnie wysoka jakość)"
-
-#~ msgid "Use Filename as Song Title"
-#~ msgstr "Użyj nazwy pliku jako tytuł piosenki"
-
-#~ msgid "Fast Playlist Info"
-#~ msgstr "Szybka informacja playlisty"
-
-#~ msgid "Noise Reduction"
-#~ msgstr "Redukcja Szumu"
-
-#~ msgid "Play Amiga MOD"
-#~ msgstr "Graj Amiga MOD"
-
-#~ msgid "Depth"
-#~ msgstr "Głębia"
-
-#~ msgid "Delay"
-#~ msgstr "Opóźnienie"
-
-#~ msgid "Bass Boost"
-#~ msgstr "Podbicie Basów"
-
-#~ msgid "Amount"
-#~ msgstr "Ilość"
-
-#~ msgid "Range"
-#~ msgstr "Zakres"
-
-#~ msgid ""
-#~ "Note:  Setting the preamp too high may cause\n"
-#~ "clipping / distortion!"
-#~ msgstr ""
-#~ "Zapamiętaj:  ustawienie wzmocnienia za wysoko\n"
-#~ "może prowadzić do zakłuceń!"
-
-#~ msgid "Looping"
-#~ msgstr "Powtarzanie"
-
-#~ msgid "Loop"
-#~ msgstr "Powtórzenie"
-
-#~ msgid "time(s)"
-#~ msgstr "czas(s)"
-
-#~ msgid "Loop forever"
-#~ msgstr "Powtarzaj bez końca"
-
-#~ msgid "OK"
-#~ msgstr "OK"
-
-#~ msgid "MOD Info"
-#~ msgstr "Informacje o MOD"
-
-#~ msgid ""
-#~ "Filename:\n"
-#~ "Title:\n"
-#~ "Type:\n"
-#~ "Length:\n"
-#~ "Speed:\n"
-#~ "Tempo:\n"
-#~ "Samples:\n"
-#~ "Instruments:\n"
-#~ "Patterns:\n"
-#~ "Channels:"
-#~ msgstr ""
-#~ "Nazwa Pliku:\n"
-#~ "Tytuł:\n"
-#~ "Typ:\n"
-#~ "Długość:\n"
-#~ "Prędkość:\n"
-#~ "Tempo:\n"
-#~ "Sample:\n"
-#~ "Instrumenty:\n"
-#~ "Patterns:\n"
-#~ "Kanały:"
-
-#~ msgid "Samples"
-#~ msgstr "Sample"
-
-#~ msgid "Instruments"
-#~ msgstr "Instrumenty"
-
-#~ msgid "Message"
-#~ msgstr "Wiadomość"
-
-#~ msgid "Modplug Input Plugin for Audacious ver"
-#~ msgstr "Modplug Input Plugin dla Audacious"
-
-#~ msgid ""
-#~ "\n"
-#~ "Modplug sound engine written by Olivier Lapicque.\n"
-#~ "XMMS interface for Modplug by Kenton Varda.\n"
-#~ "(c)2000 Olivier Lapicque and Kenton Varda.\n"
-#~ "Updates and Maintainance by Konstanty Bialkowski.\n"
-#~ "Ported to BMP by Theofilos Intzoglou."
-#~ msgstr ""
-#~ "\n"
-#~ "Modplug sound engine napisany przez Olivier Lapicque.\n"
-#~ "XMMS interface dla Modplug przez Kenton Varda.\n"
-#~ "(c)2000 Olivier Lapicque oraz Kenton Varda.\n"
-#~ "Poprawki i opieka przez Konstanty Bialkowski.\n"
-#~ "Portowany do BMP przez Theofilos Intzoglou."
-
-#~ msgid "About Modplug"
-#~ msgstr "Informacje o wtyczce Modplug"
-
-#~ msgid "Couldn't find pixmap file: %s"
-#~ msgstr "Nie mógł odnaleść pliku pixmap: %s"
-
-#~ msgid "MPEG Audio Plugin Configuration"
-#~ msgstr "Konfiguracja wtyczki audio MPEG"
-
-#~ msgid "Resolution:"
-#~ msgstr "Rozdzielczość:"
-
-#~ msgid "Channels:"
-#~ msgstr "Kanały:"
-
-#~ msgid "Stereo (if available)"
-#~ msgstr "Stereo (jeśli to możliwe)"
-
-#~ msgid "Down sample:"
-#~ msgstr "Obniżenie próbkowania:"
-
-#~ msgid "1:1 (44 kHz)"
-#~ msgstr "1:1 (44 kHz)"
-
-#~ msgid "1:2 (22 kHz)"
-#~ msgstr "1:2 (22 kHz)"
-
-#~ msgid "1:4 (11 kHz)"
-#~ msgstr "1:4 (11 kHz)"
-
-#~ msgid "Decoder"
-#~ msgstr "Dekoder"
-
-#~ msgid "ID3 Tags:"
-#~ msgstr "Znacznik ID3:"
-
-#~ msgid "ID3 format:"
-#~ msgstr "Format ID3:"
-
-#~ msgid "Joint stereo"
-#~ msgstr "Łączone stereo"
-
-#~ msgid "Dual channel"
-#~ msgstr "Podwójny kanał"
-
-#~ msgid "Single channel"
-#~ msgstr "Pojedynczy kanał"
-
-#~ msgid "%d KBit/s"
-#~ msgstr "%d KBit/s"
-
-#~ msgid "%ld Hz"
-#~ msgstr "%ld Hz"
-
-#~ msgid "50/15 ms"
-#~ msgstr "50/15 ms"
-
-#~ msgid "CCIT J.17"
-#~ msgstr "CCIT J.17"
-
-#~ msgid "No"
-#~ msgstr "Nie"
-
-#~ msgid "Yes"
-#~ msgstr "Tak"
-
-#~ msgid " MPEG Info "
-#~ msgstr " Informacje MPEG"
-
-#~ msgid "MPEG Level:"
-#~ msgstr "Poziom MPEG"
-
-#~ msgid "Bit rate:"
-#~ msgstr "Szybkość:"
-
-#~ msgid "Sample rate:"
-#~ msgstr "Próbkowanie:"
-
-#~ msgid "File size:"
-#~ msgstr "Rozmiar pliku:"
-
-#~ msgid "Mode:"
-#~ msgstr "Tryb:"
-
-#~ msgid "Error Protection:"
-#~ msgstr "Ochrona przed błędami:"
-
-#~ msgid "Copyright:"
-#~ msgstr "Prawa Własności:"
-
-#~ msgid "Original:"
-#~ msgstr "Oryginał:"
-
-#~ msgid "Emphasis:"
-#~ msgstr "Emfaza:"
-
-#~ msgid " ID3 Tag "
-#~ msgstr " Znacznik ID3"
-
-#~ msgid "Year:"
-#~ msgstr "Rok:"
-
-#~ msgid "N/A"
-#~ msgstr "N/D"
-
-#~ msgid "%s"
-#~ msgstr "%s"
-
-#~ msgid "%lu Bytes"
-#~ msgstr "%lu bajtów"
-
-#~ msgid "Couldn't connect to host %s:%d"
-#~ msgstr "Nie można połączyć się z serwerem %s:%d"
-
-#~ msgid "PRE-BUFFERING: %zuKB/%zuKB"
-#~ msgstr "WSTĘPNE BUFOROWANIE: %zuKB/%zuKB"
-
-#~ msgid "About MPEG Audio Plugin"
-#~ msgstr "Informacje o wtyczce audio MPEG"
-
-#~ msgid ""
-#~ "Audacious decoding engine by William Pitcock <nenolod at nenolod.net>, "
-#~ "derived from:\n"
-#~ "mpg123 decoding engine by Michael Hipp <mh at mpg123.de>\n"
-#~ "Derived partially from mpg123 0.59s.mc3 as well.\n"
-#~ "Based on the original XMMS plugin."
-#~ msgstr ""
-#~ "Audacious decoding engine przez William Pitcock <nenolod at nenolod.net>, na "
-#~ "bazie:\n"
-#~ "mpg123 decoding engine przez Michael Hipp <mh at mpg123.de>\n"
-#~ "Cześciowo także z mpg123 0.59s.mc3.\n"
-#~ "Bazowany na orginalnym pluginie XMMS."
-
-#~ msgid "MPEG Audio Plugin"
-#~ msgstr "Wtyczka audio MPEG"
-
-#~ msgid "TiMidity Configuration"
-#~ msgstr "Konfiguracja wtyczki TiMidity"
-
-#~ msgid "22000 Hz"
-#~ msgstr "22 kHz"
-
-#~ msgid "44100 Hz"
-#~ msgstr "44 kHz"
-
-#~ msgid "Sample Width"
-#~ msgstr "Próbkowanie:"
-
-#~ msgid "TiMidity Configuration File"
-#~ msgstr "Konfiguracja wtyczki TiMidity"
-
-#~ msgid ""
-#~ "TiMidity Plugin\n"
-#~ "http://libtimidity.sourceforge.net\n"
-#~ "by Konstantin Korikov"
-#~ msgstr ""
-#~ "Wtyczka TiMidity\n"
-#~ "http://libtimidity.sourceforge.net\n"
-#~ "przez Konstantin Korikov"
-
-#~ msgid "TiMidity Plugin %s"
-#~ msgstr "Wtyczka TiMidity %s"
-
-#~ msgid "Couldn't load MIDI file"
-#~ msgstr "Nie można wczytać pliku MIDI"
-
-#~ msgid "About Tone Generator"
-#~ msgstr "O Tone Generatorze"
-
-#~ msgid ""
-#~ "Sinus tone generator by Haavard Kvaalen <havardk at xmms.org>\n"
-#~ "Modified by Daniel J. Peng <danielpeng at bigfoot.com>\n"
-#~ "\n"
-#~ "To use it, add a URL: tone://frequency1;frequency2;frequency3;...\n"
-#~ "e.g. tone://2000;2005 to play a 2000Hz tone and a 2005Hz tone"
-#~ msgstr ""
-#~ "Sinus tone generator przez Haavard Kvaalen <havardk at xmms.org>\n"
-#~ "Zmodyfikowany przez Daniel J. Peng <danielpeng at bigfoot.com>\n"
-#~ "\n"
-#~ "By użyć dodaj URL: tone://frequency1;frequency2;frequency3;...\n"
-#~ "np. tone://2000;2005 by zagrać tony 2000Hz i 2005Hz."
-
-#~ msgid "Tone Generator: "
-#~ msgstr "Generator Tonów"
-
-#~ msgid "Tone Generator %s"
-#~ msgstr "Generator Tonów %s"
-
-#~ msgid "Select the directory where you want to store the Ogg Vorbis streams:"
-#~ msgstr "Wybierz folderu przechowujÄ…cego strumienie Ogg Vorbis:"
-
-#~ msgid "Ogg Vorbis Audio Plugin Configuration"
-#~ msgstr "Konfiguracja wtyczki audio Ogg Vorbis"
-
-#~ msgid "Ogg Vorbis Tags:"
-#~ msgstr "Znaczniki Ogg Vorbis"
-
-#~ msgid "ReplayGain Settings:"
-#~ msgstr "Ustawienia powtarzania uzyskanego:"
-
-#~ msgid "ReplayGain Type:"
-#~ msgstr "Typ powtarzania uzyskanego:"
-
-#~ msgid "use Track Gain/Peak"
-#~ msgstr "użycie utworu uzyskanego/szczytowego"
-
-#~ msgid "use Album Gain/Peak"
-#~ msgstr "użyj albumu uzyskanego/szczytowego"
-
-#~ msgid "Enable 6dB Boost + Hard Limiting"
-#~ msgstr "WÅ‚Ä…czenie 6dB wzmocnienia i twardego ograniczenia"
-
-#~ msgid ""
-#~ "An error occured:\n"
-#~ "%s"
-#~ msgstr ""
-#~ "Wystąpił błąd:\n"
-#~ "%s"
-
-#~ msgid "Error!"
-#~ msgstr "BÅ‚Ä…d!"
-
-#~ msgid "Failed to modify tag (open)"
-#~ msgstr "Nie udało się zmodyfikować znacznika (otwarcie)"
-
-#~ msgid "Failed to modify tag (close)"
-#~ msgstr "Nie udało się zmodyfikować znacznika (zamknięcie)"
-
-#~ msgid "Failed to modify tag"
-#~ msgstr "Nie udało się zmodyfikować znacznika"
-
-#~ msgid " Ogg Vorbis Tag "
-#~ msgstr " Znacznik Ogg Vorbis "
-
-#~ msgid "Description:"
-#~ msgstr "Opis:"
-
-#~ msgid "Version:"
-#~ msgstr "Wersja:"
-
-#~ msgid "ISRC number:"
-#~ msgstr "Numer ISRC:"
-
-#~ msgid "Organization:"
-#~ msgstr "Organizacja:"
-
-#~ msgid " Ogg Vorbis ReplayGain "
-#~ msgstr "Powtarzanie uzyskane Ogg Vorbis"
-
-#~ msgid "Album peak:"
-#~ msgstr "Szczytowe uzyskanie Albumu:"
-
-#~ msgid " Ogg Vorbis Info "
-#~ msgstr " Informacje Ogg Vorbis"
-
-#~ msgid "Length:"
-#~ msgstr "Długość:"
-
-#~ msgid "%d KBit/s (nominal)"
-#~ msgstr "%d KBit/s (nominalnie)"
-
-#~ msgid "%d Hz"
-#~ msgstr "%d Hz"
-
-#~ msgid "%d"
-#~ msgstr "%d"
-
-#~ msgid "%d:%.2d"
-#~ msgstr "%d:%.2d"
-
-#~ msgid "%d Bytes"
-#~ msgstr "%d bajtów"
-
-#~ msgid "Ogg Vorbis Audio Plugin"
-#~ msgstr "Wtyczka audio Ogg Vorbis"
-
-#~ msgid "About Ogg Vorbis Audio Plugin"
-#~ msgstr "Informacje o wtyczce audio Ogg Vorbis"
-
-#~ msgid ""
-#~ "Ogg Vorbis Plugin by the Xiph.org Foundation\n"
-#~ "\n"
-#~ "Original code by\n"
-#~ "Tony Arcieri <bascule at inferno.tusculum.edu>\n"
-#~ "Contributions from\n"
-#~ "Chris Montgomery <monty at xiph.org>\n"
-#~ "Peter Alm <peter at xmms.org>\n"
-#~ "Michael Smith <msmith at labyrinth.edu.au>\n"
-#~ "Jack Moffitt <jack at icecast.org>\n"
-#~ "Jorn Baayen <jorn at nl.linux.org>\n"
-#~ "Haavard Kvaalen <havardk at xmms.org>\n"
-#~ "Gian-Carlo Pascutto <gcp at sjeng.org>\n"
-#~ "\n"
-#~ "Visit the Xiph.org Foundation at http://www.xiph.org/\n"
-#~ msgstr ""
-#~ "Wtyczka Ogg Vorbis autorstwa fundacji Xiph.org\n"
-#~ "\n"
-#~ "Autor oryginalnego kodu:\n"
-#~ "Tony Arcieri <bascule at inferno.tusculum.edu>\n"
-#~ "Współpracownicy:\n"
-#~ "Chris Montgomery <monty at xiph.org>\n"
-#~ "Peter Alm <peter at xmms.org>\n"
-#~ "Michael Smith <msmith at labyrinth.edu.au>\n"
-#~ "Jack Moffitt <jack at icecast.org>\n"
-#~ "Jorn Baayen <jorn at nl.linux.org>\n"
-#~ "Haavard Kvaalen <havardk at xmms.org>\n"
-#~ "Gian-Carlo Pascutto <gcp at sjeng.org>\n"
-#~ "\n"
-#~ "Odwiedź fundację Xiph.org na stronie http://www.xiph.org/\n"
-
-#~ msgid "About sndfile WAV support"
-#~ msgstr "O pluginie sndfile WAV"
-
-#~ msgid ""
-#~ "Adapted for Audacious usage by Tony Vroon <chainsaw at gentoo.org>\n"
-#~ "from the xmms_sndfile plugin which is:\n"
-#~ "Copyright (C) 2000, 2002 Erik de Castro Lopo\n"
-#~ "\n"
-#~ "This program is free software ; you can redistribute it and/or modify \n"
-#~ "it under the terms of the GNU General Public License as published by \n"
-#~ "the Free Software Foundation ; either version 2 of the License, or \n"
-#~ "(at your option) any later version. \n"
-#~ " \n"
-#~ "This program is distributed in the hope that it will be useful, \n"
-#~ "but WITHOUT ANY WARRANTY ; without even the implied warranty of \n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  \n"
-#~ "See the GNU General Public License for more details. \n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public \n"
-#~ "License along with this program ; if not, write to \n"
-#~ "the Free Software Foundation, Inc., \n"
-#~ "51 Franklin Street, Fifth Floor, \n"
-#~ "Boston, MA  02110-1301  USA"
-#~ msgstr ""
-#~ "Adaptowany dla Audacious przez Tony Vroon <chainsaw at gentoo.org>\n"
-#~ "z plugina xmms_sndfile autorstwa:\n"
-#~ "Copyright (C) 2000, 2002 Erik de Castro Lopo\n"
-#~ "\n"
-#~ " Jest to program darmowy; możesz go rozprowadzać i/lub modyfikować\n"
-#~ "zgodnie z zasadami GNU General Public License opublikowanymi przez\n"
-#~ "Free Software Foundation; zarówno licencji w wersji 2, jak i w\n"
-#~ "wersji późniejszej (jako opcja).\n"
-#~ "\n"
-#~ "Program ten jest rozprowadzany z nadzieją, że będzie użyteczny,\n"
-#~ "ale BEZ ŻADNEJ GWARANCJI; nie zawierającej nawet gwarancji\n"
-#~ "HANDLOWEJ lub ZASTOSOWANIA DO SZCZEGÓLNEGO CELU. Zobacz do\n"
-#~ "GNU General Public License, aby uzyskać więcej informacji.\n"
-#~ "\n"
-#~ "Powinieneś otrzymać kopię GNU General Public License razem\n"
-#~ "z tym programem; jeśli nie, napisz do Free Software Foundation,\n"
-#~ "Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA."
-
-#~ msgid "sndfile WAV plugin"
-#~ msgstr "plugin sndfile WAV"
-
-#~ msgid "WAV Audio Plugin"
-#~ msgstr "Wtyczka audio WAV"
-
-#~ msgid "WMA Player %s"
-#~ msgstr "Player WMA %s"
-
-#~ msgid "About %s"
-#~ msgstr "Informacje o %s"
-
-#~ msgid " Close "
-#~ msgstr "Zamknij"
-
-#~ msgid "OSS Output Plugin"
-#~ msgstr "Wtyczka wyjściowa OSS"
-
-#~ msgid "About OSS Driver"
-#~ msgstr "Informacje o sterowniku OSS"
-
-#~ msgid ""
-#~ "Audacious OSS Driver\n"
-#~ "\n"
-#~ " This program is free software; you can redistribute it and/or modify\n"
-#~ "it under the terms of the GNU General Public License as published by\n"
-#~ "the Free Software Foundation; either version 2 of the License, or\n"
-#~ "(at your option) any later version.\n"
-#~ "\n"
-#~ "This program is distributed in the hope that it will be useful,\n"
-#~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
-#~ "GNU General Public License for more details.\n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public License\n"
-#~ "along with this program; if not, write to the Free Software\n"
-#~ "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA "
-#~ "02110-1301,\n"
-#~ "USA."
-#~ msgstr ""
-#~ "Audacious - sterownik OSS\n"
-#~ "\n"
-#~ "Jest to program darmowy; możesz go rozprowadzać i/lub modyfikować\n"
-#~ "zgodnie z zasadami GNU General Public License opublikowanymi przez\n"
-#~ "Free Software Foundation; zarówno licencji w wersji 2, jak i w\n"
-#~ "wersji późniejszej (jako opcja).\n"
-#~ "\n"
-#~ "Program ten jest rozprowadzany z nadzieją, że będzie użyteczny,\n"
-#~ "ale BEZ ŻADNEJ GWARANCJI; nie zawierającej nawet gwarancji\n"
-#~ "HANDLOWEJ lub ZASTOSOWANIA DO SZCZEGÓLNEGO CELU. Zobacz do\n"
-#~ "GNU General Public License, aby uzyskać więcej informacji.\n"
-#~ "\n"
-#~ "Powinieneś otrzymać kopię GNU General Public License razem\n"
-#~ "z tym programem; jeśli nie, napisz do Free Software Foundation,\n"
-#~ "Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA."
-
-#~ msgid "Default (%s)"
-#~ msgstr "Domyślnie (%s)"
-
-#~ msgid "OSS Driver configuration"
-#~ msgstr "Konfiguracja sterownika OSS"
-
-#~ msgid "Audio device:"
-#~ msgstr "Urządzenie dźwiękowe:"
-
-#~ msgid "Use alternate device:"
-#~ msgstr "Użycie alternatywnego urządzenia:"
-
-#~ msgid "Mixer device:"
-#~ msgstr "UrzÄ…dzenie miksera:"
-
-#~ msgid "Devices"
-#~ msgstr "UrzÄ…dzenia"
-
-#~ msgid "Buffer size (ms):"
-#~ msgstr "Rozmiar bufora (ms):"
-
-#~ msgid "Mixer Settings:"
-#~ msgstr "Ustawienia miksera:"
-
-#~ msgid "Volume controls Master not PCM"
-#~ msgstr "Zmiana głośności poprzez kanał zbiorczy, a nie PCM"
-
-#~ msgid "Mixer"
-#~ msgstr "Mikser"
-
-#~ msgid "About ALSA Driver"
-#~ msgstr "Informacje o sterowniku ALSA"
-
-#~ msgid ""
-#~ "Audacious ALSA Driver\n"
-#~ "\n"
-#~ " This program is free software; you can redistribute it and/or modify\n"
-#~ "it under the terms of the GNU General Public License as published by\n"
-#~ "the Free Software Foundation; either version 2 of the License, or\n"
-#~ "(at your option) any later version.\n"
-#~ "\n"
-#~ "This program is distributed in the hope that it will be useful,\n"
-#~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
-#~ "GNU General Public License for more details.\n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public License\n"
-#~ "along with this program; if not, write to the Free Software\n"
-#~ "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA "
-#~ "02110-1301,\n"
-#~ "USA.\n"
-#~ "Author: Matthieu Sozeau (mattam at altern.org)"
-#~ msgstr ""
-#~ "Audacious - sterownik ALSA\n"
-#~ "\n"
-#~ "Jest to program darmowy; możesz go rozprowadzać i/lub modyfikować\n"
-#~ "zgodnie z zasadami GNU General Public License opublikowanymi przez\n"
-#~ "Free Software Foundation; zarówno licencji w wersji 2, jak i w\n"
-#~ "wersji późniejszej (jako opcja).\n"
-#~ "\n"
-#~ "Program ten jest rozprowadzany z nadzieją, że będzie użyteczny,\n"
-#~ "ale BEZ ŻADNEJ GWARANCJI; nie zawierającej nawet gwarancji\n"
-#~ "HANDLOWEJ lub ZASTOSOWANIA DO SZCZEGÓLNEGO CELU. Zobacz do\n"
-#~ "GNU General Public License, aby uzyskać więcej informacji.\n"
-#~ "\n"
-#~ "Powinieneś otrzymać kopię GNU General Public License razem\n"
-#~ "z tym programem; jeśli nie, napisz do Free Software Foundation,\n"
-#~ "Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n"
-#~ "Author: Matthieu Sozeau (mattam at altern.org)"
-
-#~ msgid "ALSA %s output plugin"
-#~ msgstr "Wtyczka wyjściowa ALSA %s"
-
-#~ msgid "Unknown soundcard"
-#~ msgstr "Nieznana karta dźwiękowa"
-
-#~ msgid "Default PCM device (%s)"
-#~ msgstr "Domyślnie urządzenie PCM (%s)"
-
-#~ msgid "ALSA Driver configuration"
-#~ msgstr "Konfiguracja sterownika ALSA"
-
-#~ msgid "Mixer:"
-#~ msgstr "Mikser:"
-
-#~ msgid "Mixer card:"
-#~ msgstr "Karta miksera:"
-
-#~ msgid "Device settings"
-#~ msgstr "Ustawienia urzÄ…dzenia"
-
-#~ msgid "Soundcard:"
-#~ msgstr "Karta Dżwiękowa:"
-
-#~ msgid "Buffer time (ms):"
-#~ msgstr "Rozmiar bufora (ms):"
-
-#~ msgid "Period time (ms):"
-#~ msgstr "Długość okresu (ms):"
-
-#~ msgid "Advanced settings"
-#~ msgstr "Zaawansowane ustawienia"
-
-#~ msgid "aRts Driver configuration"
-#~ msgstr "Konfiguracja sterownika aRts"
-
-#~ msgid "Disk Writer Plugin %s"
-#~ msgstr "Wtyczka Disk Writer %s"
-
-#~ msgid ""
-#~ "You cannot use the Disk Writer plugin\n"
-#~ "when you're running in realtime mode."
-#~ msgstr ""
-#~ "Nie możesz użyć wtyczki Disk Writer\n"
-#~ "będąc w trybie czasu rzeczywistego."
-
-#~ msgid "Select the directory where you want to store the output files:"
-#~ msgstr "Wybór folderu przechowującego plik wynikowy:"
-
-#~ msgid "Disk Writer Configuration"
-#~ msgstr "Konfiguracja wtyczki Disk Writer"
-
-#~ msgid "About ESounD Plugin"
-#~ msgstr "Informacje o wtyczce ESound"
-
-#~ msgid ""
-#~ "Audacious ESounD Plugin\n"
-#~ "\n"
-#~ " This program is free software; you can redistribute it and/or modify\n"
-#~ "it under the terms of the GNU General Public License as published by\n"
-#~ "the Free Software Foundation; either version 2 of the License, or\n"
-#~ "(at your option) any later version.\n"
-#~ "\n"
-#~ "This program is distributed in the hope that it will be useful,\n"
-#~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
-#~ "GNU General Public License for more details.\n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public License\n"
-#~ "along with this program; if not, write to the Free Software\n"
-#~ "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA "
-#~ "02110-1301,\n"
-#~ "USA."
-#~ msgstr ""
-#~ "Audacious - wtyczka ESounD\n"
-#~ "\n"
-#~ " Jest to program darmowy; możesz go rozprowadzać i/lub modyfikować\n"
-#~ "zgodnie z zasadami GNU General Public License opublikowanymi przez\n"
-#~ "Free Software Foundation; zarówno licencji w wersji 2, jak i w\n"
-#~ "wersji późniejszej (jako opcja).\n"
-#~ "\n"
-#~ "Program ten jest rozprowadzany z nadzieją, że będzie użyteczny,\n"
-#~ "ale BEZ ŻADNEJ GWARANCJI; nie zawierającej nawet gwarancji\n"
-#~ "HANDLOWEJ lub ZASTOSOWANIA DO SZCZEGÓLNEGO CELU. Zobacz do\n"
-#~ "GNU General Public License, aby uzyskać więcej informacji.\n"
-#~ "\n"
-#~ "Powinieneś otrzymać kopię GNU General Public License razem\n"
-#~ "z tym programem; jeśli nie, napisz do Free Software Foundation,\n"
-#~ "Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA."
-
-#~ msgid "Host:"
-#~ msgstr "Serwer:"
-
-#~ msgid "Use remote host"
-#~ msgstr "Użycie zdalnego serwera"
-
-#~ msgid "Volume controls OSS mixer"
-#~ msgstr "Zmiany głośności poprzez mikser OSS"
-
-#~ msgid "Server"
-#~ msgstr "Serwer"
-
-#~ msgid "eSound Output Plugin"
-#~ msgstr "Wtyczka wyjściowa eSound"
-
-#~ msgid "About JACK Output Plugin 0.15"
-#~ msgstr "Wtyczka wyjściowa JACK v0.15"
-
-#~ msgid ""
-#~ "XMMS jack Driver 0.15\n"
-#~ "\n"
-#~ "xmms-jack.sf.net\n"
-#~ "Chris Morgan<cmorgan at alum.wpi.edu>\n"
-#~ "\n"
-#~ "Audacious port by\n"
-#~ "Giacomo Lozito from develia.org"
-#~ msgstr ""
-#~ "XMMS jack Driver 0.15\n"
-#~ "\n"
-#~ "xmms-jack.sf.net\n"
-#~ "Chris Morgan<cmorgan at alum.wpi.edu>\n"
-#~ "\n"
-#~ "Port Audacious przez\n"
-#~ "Giacomo Lozito z develia.org"
-
-#~ msgid "About the Sun Driver"
-#~ msgstr "Informacje o sterowniku Sun"
-
-#~ msgid ""
-#~ "XMMS BSD Sun Driver\n"
-#~ "\n"
-#~ "Copyright (c) 2001 CubeSoft Communications, Inc.\n"
-#~ "Maintainer: <vedge at csoft.org>.\n"
-#~ msgstr ""
-#~ "Sterownik Audacious BSD Sun\n"
-#~ "\n"
-#~ "Copyright (c) 2001 CubeSoft Communications, Inc.\n"
-#~ "Opieka: <vedge at csoft.org>.\n"
-
-#~ msgid "Audio control device:"
-#~ msgstr "Urządzenie kontroli dźwięku:"
-
-#~ msgid "Volume controls device:"
-#~ msgstr "Urządzenie zmiany głośności:"
-
-#~ msgid "XMMS uses mixer exclusively."
-#~ msgstr "Wyłączne uźycie mixera przez Audacious"
-
-#~ msgid "Status"
-#~ msgstr "Status"
-
-#~ msgid "Sun driver configuration"
-#~ msgstr "Konfiguracja sterownika Sun"
-
-#~ msgid "BSD Sun Driver %s"
-#~ msgstr "Sterownik BSD Sun %s"
-
-#~ msgid "Blur scope"
-#~ msgstr "Zakres plam"
-
-#~ msgid "Blur Scope: Color selection"
-#~ msgstr "Zakres plam: Ywbór koloru"
-
-#~ msgid "Options:"
-#~ msgstr "Opcje:"
-
-#~ msgid "** DOUBLESIZE HAS BEEN REMOVED **"
-#~ msgstr "** USUNIĘTO PODWÓJNY ROZMIAR **"
-
-#~ msgid "<b>_Transparency</b>"
-#~ msgstr "<b>Przeźroczystość</b>"
-
-#~ msgid "Scrobbler Configuration"
-#~ msgstr "Konfiguracja wtyczki Scrobbler"
-
-#~ msgid "Warning"
-#~ msgstr "Ostrzeżenie"
-
-#~ msgid ""
-#~ "Filename and song title tags should be inside double quotes (\").  Not "
-#~ "doing so might be a security risk.  Continue anyway?"
-#~ msgstr ""
-#~ "Nazwa pliku oraz znaczniki tytułu piosenki powinny być pośród cudzysłowów "
-#~ "(\"). Ich brak może być ryzykiem dla bezpieczeństwa.  Kontynułować mimo "
-#~ "to?"
-
-#, fuzzy
-#~ msgid "Song Change Configuration"
-#~ msgstr "Konfiguracja Zmiany Piosenki"
-
-#~ msgid "Song Metadata"
-#~ msgstr "Informacje o utworze"
-
-#~ msgid "Port"
-#~ msgstr "Port"
-
-#, fuzzy
-#~ msgid "Client name"
-#~ msgstr "Nazwa pliku"
-
-#, fuzzy
-#~ msgid "Port name"
-#~ msgstr "Nazwa utworu"
-
-#, fuzzy
-#~ msgid "ALSA output ports"
-#~ msgstr "Urządzenie wyjściowe ALSA %s"
-
-#~ msgid "pre-calculate length of MIDI files in playlist"
-#~ msgstr "wtępna kalkulacja długości plików MIDI w playliście"
-
-#~ msgid ""
-#~ "* Select ALSA output ports *\n"
-#~ "MIDI events will be sent to the ports selected here. At least one port "
-#~ "must be selected in order to play MIDI with AMIDI-Plug. Unless you know "
-#~ "what you're doing, you'll probably want to use the wavetable synthesizer "
-#~ "ports."
-#~ msgstr ""
-#~ "* Wybierz urządzneie wyjściowe ALSA *\n"
-#~ "MIDI będzie grana przy użyciu tego urządzenia. Przynajmniej jedno "
-#~ "urządzeniemusi być wybrane by móc grać MIDI poprzez AMIDI-Plug. Jeśli nie "
-#~ "wiesz które wybrać najprawdopodobniej najlepszym wyborem będzie "
-#~ "syntezator wavetable."
-
-#~ msgid ""
-#~ "* Select ALSA mixer control *\n"
-#~ "AMIDI-Plug outputs directly through ALSA, it doesn't use effect and ouput "
-#~ "plugins from the player. While playing with AMIDI-Plug, the player volume "
-#~ "will manipulate the control you select here. Unless you know what you're "
-#~ "doing, you'll probably want to select the Synth control here."
-#~ msgstr ""
-#~ "* Wybierz mixer ALSA do kontroli *\n"
-#~ "AMIDI-Plug gra bezpośrednio przez ALSA, nieużywa efektów dodawanych "
-#~ "przez  pluginy wyjściowe. Podczas gry przy użyciu AMIDI-Plug, program "
-#~ "będzie zmieniał głośność w kontrolerze tu wybranym. Jeśli nie wiesz które "
-#~ "wybrać najprawdopodobniej najlepszym wyborem będzie Synth Control."
-
-#~ msgid ""
-#~ "* Pre-calculate MIDI length *\n"
-#~ "If this option is enabled, AMIDI-Plug will calculate the MIDI file length "
-#~ "as soon as the player requests it, instead of doing that only when the "
-#~ "the MIDI file is being played. In example, MIDI length will be calculated "
-#~ "straight after adding MIDI files in a playlist. Disable this option if "
-#~ "you want faster playlist loading (when a lot of MIDI files are added), "
-#~ "enable it to display more information in the playlist straight after "
-#~ "loading."
-#~ msgstr ""
-#~ "* Wtępne obliczenie długości MIDI *\n"
-#~ "Jeśli ta opcja jest włączona, AMIDI-Plug obliczy długość pliku MIDI w "
-#~ "momencie gdy zostanie taką instrukcję z playera, zamiast dokonać tego "
-#~ "jedynie gdy plik MIDI jest odtwarzany. Np., Długość MIDI będzie obliczona "
-#~ "po dodaniu pliku MIDI do playlisty. Wyłącz tą opcję jeśli zależy ci na "
-#~ "szybszem wczytaniu się playlisty (kiedy duża ilość plików MIDI jest "
-#~ "dodawana), włącz by wyświetlić więcej informacji o plikach zaraz po "
-#~ "wczytaniu listy."
-
-#~ msgid ""
-#~ "---\n"
-#~ "---\n"
-#~ "---\n"
-#~ "---\n"
-#~ "---\n"
-#~ "---\n"
-#~ "---\n"
-#~ "---\n"
-#~ "---\n"
-#~ "---"
-#~ msgstr ""
-#~ "---\n"
-#~ "---\n"
-#~ "---\n"
-#~ "---\n"
-#~ "---\n"
-#~ "---\n"
-#~ "---\n"
-#~ "---\n"
-#~ "---\n"
-#~ "---"
-
-#~ msgid "Convert non-UTF8 ID3 tags to UTF8"
-#~ msgstr "Konwertuj znaczniki nie-UTF8 do UTF8"
-
-#~ msgid "ID3 encoding:"
-#~ msgstr "Enkodowanie ID3:"
-
-#~ msgid "Convert non-UTF8 Vorbis tags to UTF8"
-#~ msgstr "Konwertuj znaczniki nie-UTF8 do UTF8"
-
-#~ msgid "Vorbis encoding:"
-#~ msgstr "Enkodowanie Vorbis"
-
-#~ msgid "Info dialog is already opened!\n"
-#~ msgstr "Okno informacji jest już otwarte!\n"
-
-#~ msgid "%02d:%02d:%02d"
-#~ msgstr "%02d:%02d:%02d"
-
-#~ msgid "<b>WMA Version:</b>"
-#~ msgstr "<b>Wersja WMA</b>"
-
-#~ msgid "<b>Channels:</b>"
-#~ msgstr "<b>Kanały:</b>"
-
-#~ msgid "<b>Filesize:</b>"
-#~ msgstr "<b>Rozmiar pliku</b>"
-
-#~ msgid "WMA Info"
-#~ msgstr "Informacje o pliku WMA"
-
-#~ msgid "<b>Comments:</b>"
-#~ msgstr "<b>Komentarz:</b>"
-
-#~ msgid "<b>Track:</b>"
-#~ msgstr "<b>Ścieżka:</b>"
-
-#~ msgid "Tags"
-#~ msgstr "Znaczniki"
-
-#~ msgid "Audacious:"
-#~ msgstr "Audacious:"
-
-#~ msgid "George Averill"
-#~ msgstr "George Averill"
-
-#~ msgid "Giacomo Lozito"
-#~ msgstr "Giacomo Lozito"
-
-#~ msgid "William Pitcock"
-#~ msgstr "William Pitcock"
-
-#~ msgid "Derek Pomery"
-#~ msgstr "Derek Pomery"
-
-#~ msgid "Tony Vroon"
-#~ msgstr "Tony Vroon"
-
-#~ msgid "Yoshiki Yazawa"
-#~ msgstr "Yoshiki Yazawa"
-
-#~ msgid "Stephan Sokolow"
-#~ msgstr "Stephan Sokolow"
-
-#~ msgid "Kiyoshi Aman"
-#~ msgstr "Kiyoshi Aman"
-
-#~ msgid "Shay Green"
-#~ msgstr "Shay Green"
-
-#~ msgid "Mohammed Sameer"
-#~ msgstr "Mohammed Sameer"
-
-#~ msgid "Artem Baguinski"
-#~ msgstr "Artem Baguinski"
-
-#~ msgid "Edward Brocklesby"
-#~ msgstr "Edward Brocklesby"
-
-#~ msgid "Chong Kai Xiong"
-#~ msgstr "Chong Kai Xiong"
-
-#~ msgid "Milosz Derezynski"
-#~ msgstr "Milosz Derezynski"
-
-#~ msgid "David Lau"
-#~ msgstr "David Lau"
-
-#~ msgid "Ole Andre Vadla Ravnaas"
-#~ msgstr "Ole Andre Vadla Ravnaas"
-
-#~ msgid "Michiel Sikkes"
-#~ msgstr "Michiel Sikkes"
-
-#~ msgid "Andrei Badea"
-#~ msgstr "Andrei Badea"
-
-#~ msgid "Peter Behroozi"
-#~ msgstr "Peter Behroozi"
-
-#~ msgid "Bernard Blackham"
-#~ msgstr "Bernard Blackham"
-
-#~ msgid "Oliver Blin"
-#~ msgstr "Oliver Blin"
-
-#~ msgid "Tomas Bzatek"
-#~ msgstr "Tomas Bzatek"
-
-#~ msgid "Liviu Danicel"
-#~ msgstr "Liviu Danicel"
-
-#~ msgid "Jon Dowland"
-#~ msgstr "Jon Dowland"
-
-#~ msgid "Artur Frysiak"
-#~ msgstr "Artur Frysiak"
-
-#~ msgid "Sebastian Kapfer"
-#~ msgstr "Sebastian Kapfer"
-
-#~ msgid "Lukas Koberstein"
-#~ msgstr "Lukas Koberstein"
-
-#~ msgid "Dan Korostelev"
-#~ msgstr "Dan Korostelev"
-
-#~ msgid "Jolan Luff"
-#~ msgstr "Jolan Luff"
-
-#~ msgid "Michael Marineau"
-#~ msgstr "Michael Marineau"
-
-#~ msgid "Tim-Philipp Muller"
-#~ msgstr "Tim-Philipp Muller"
-
-#~ msgid "Julien Portalier"
-#~ msgstr "Julien Portalier"
-
-#~ msgid "Andrew Ruder"
-#~ msgstr "Andrew Ruder"
-
-#~ msgid "Olivier Samyn"
-#~ msgstr "Olivier Samyn"
-
-#~ msgid "Martijn Vernooij"
-#~ msgstr "Martijn Vernooij"
-
-#~ msgid "Philipi Pinto"
-#~ msgstr "Philipi Pinto"
-
-#~ msgid "Thierry Vignaud"
-#~ msgstr "Thierry Vignaud"
-
-#~ msgid "Chao-Hsiung Liao"
-#~ msgstr "Chao-Hsiung Liao"
-
-#~ msgid "Jan Narovec"
-#~ msgstr "Jan Narovec"
-
-#~ msgid "Laurens Buhler"
-#~ msgstr "Laurens Buhler"
-
-#~ msgid "Pauli Virtanen"
-#~ msgstr "Pauli Virtanen"
-
-#~ msgid "David Le Brun"
-#~ msgstr "David Le Brun"
-
-#~ msgid "Matthias Debus"
-#~ msgstr "Matthias Debus"
-
-#~ msgid "George Machitidze"
-#~ msgstr "George Machitidze"
-
-#~ msgid "Kouzinopoulos Haris"
-#~ msgstr "Kouzinopoulos Haris"
-
-#~ msgid "Stavros Giannouris"
-#~ msgstr "Stavros Giannouris"
-
-#~ msgid "Dhananjaya Sharma"
-#~ msgstr "Dhananjaya Sharma"
-
-#~ msgid "Laszlo Dvornik"
-#~ msgstr "Laszlo Dvornik"
-
-#~ msgid "Alessio D'Ascanio"
-#~ msgstr "Alessio D'Ascanio"
-
-#~ msgid "Dai"
-#~ msgstr "Dai"
-
-#~ msgid "DongCheon Park"
-#~ msgstr "DongCheon Park"
-
-#~ msgid "Rimas Kudelis"
-#~ msgstr "Rimas Kudelis"
-
-#~ msgid "Arangel Angov"
-#~ msgstr "Arangel Angov"
-
-#~ msgid "Jacek Wolszczak"
-#~ msgstr "Jacek Wolszczak"
-
-#~ msgid "Pavlo Bohmat"
-#~ msgstr "Pavlo Bohmat"
-
-#~ msgid "Vitaly Lipatov"
-#~ msgstr "Vitaly Lipatov"
-
-#~ msgid "Pavel Kanzelsberger"
-#~ msgstr "Pavel Kanzelsberger"
-
-#~ msgid "Gustavo D. Vranjes"
-#~ msgstr "Gustavo D. Vranjes"
-
-#~ msgid "Martin Persenius"
-#~ msgstr "Martin Persenius"
-
-#~ msgid "Mykola Lynnyk"
-#~ msgstr "Mykola Lynnyk"
-
-#~ msgid "<span size=\"xx-large\"><b>Plugins</b></span>"
-#~ msgstr "<span size=\"xx-large\"><b>Wtyczki</b></span>"
-
-#~ msgid "_Media plugin list:"
-#~ msgstr "_Lista wtyczek:"
-
-#~ msgid ""
-#~ "The change is now effective in Audacious' configuration database, but "
-#~ "won't take effect for playback until the next song!\n"
-#~ "\n"
-#~ "Optionally, you can stop and restart playback for the change to take "
-#~ "effect."
-#~ msgstr ""
-#~ "Zmiany w ustawieniach zostały zapisane, \n"
-#~ "ale zaczną działać dopiero przy \n"
-#~ "uruchomieniu następnego utworu!\n"
-#~ "\n"
-#~ "Opcjonalnie możesz zatrzymać i ponownie \n"
-#~ "włączyć utwór, żeby wprowadzić zmiany."
-
-#~ msgid "<span size=\"xx-large\"><b>Appearance</b></span>"
-#~ msgstr "<span size=\"xx-large\"><b>WyglÄ…d</b></span>"
-
-#~ msgid "<span size=\"xx-large\"><b>Mouse</b></span>"
-#~ msgstr "<span size=\"xx-large\"><b>Mysz</b></span>"
-
-#~ msgid "<span size=\"xx-large\"><b>Playlist</b></span>"
-#~ msgstr "<span size=\"xx-large\"><b>Lista odtwarzania</b></span>"
-
-#~ msgid "<span size=\"xx-large\"><b>Equalizer</b></span>"
-#~ msgstr "<span size=\"xx-large\"><b>Korektor graficzny</b></span>"
-
-#~ msgid "<span size=\"xx-large\"><b>Connectivity</b></span>"
-#~ msgstr "<span size=\"xx-large\"><b>Sieć</b></span>"
-
-#~ msgid "Use proxy"
-#~ msgstr "Użycie pośrednika"
-
-#~ msgid "Frames:"
-#~ msgstr "Ramki:"
-
-#~ msgid "Francisco Javier F. Serrador"
-#~ msgstr "Francisco Javier F. Serrador"
-
-#~ msgid ""
-#~ "%s\n"
-#~ "Unable to write to file: %s"
-#~ msgstr ""
-#~ "%s\n"
-#~ "Nie można zapisać do pliku: %s"
-
-#~ msgid "Couldn't write tag!"
-#~ msgstr "Nie można zapisać znacznika!"
-
-#~ msgid ""
-#~ "%s\n"
-#~ "Unable to open file: %s"
-#~ msgstr ""
-#~ "%s\n"
-#~ "Nie można otworzyć pliku: %s"
-
-#~ msgid ""
-#~ "%s\n"
-#~ "Unable to truncate file: %s"
-#~ msgstr ""
-#~ "%s\n"
-#~ "Nie można obciąć pliku: %s"
-
-#~ msgid "Couldn't remove tag!"
-#~ msgstr "Nie można usunąć znacznika!"
-
-#~ msgid "No tag to remove!"
-#~ msgstr "Brak znacznika do usunięcia"
-
-#, fuzzy
-#~ msgid "About TiMidity Plugin"
-#~ msgstr "Informacje o wtyczce TiMidity"
-
-#, fuzzy
-#~ msgid "TiMidity Plugin"
-#~ msgstr "Wtyczka TiMidity"
-
-#~ msgid "Content"
-#~ msgstr "Zawartość"
-
-#~ msgid "Extension"
-#~ msgstr "Rozszerzenie"
-
-#~ msgid "Extension and content"
-#~ msgstr "Rozszerzenie i zawartość"
-
-#, fuzzy
-#~ msgid ""
-#~ "\n"
-#~ "Copyright (C) 2000-2004  Peter Eisenlohr <peter at eisenlohr.org>\n"
-#~ "\n"
-#~ "based on the original OSS Output Plugin  Copyright (C) 1998-2000\n"
-#~ "Peter Alm, Mikael Alm, Olle Hallnas, Thomas Nilsson and 4Front "
-#~ "Technologies\n"
-#~ "\n"
-#~ "This program is free software; you can redistribute it and/or modify\n"
-#~ "it under the terms of the GNU General Public License as published by\n"
-#~ "the Free Software Foundation; either version 2 of the License, or\n"
-#~ "(at your option) any later version.\n"
-#~ "\n"
-#~ "This program is distributed in the hope that it will be useful,\n"
-#~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
-#~ "GNU General Public License for more details.\n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public License\n"
-#~ "along with this program; if not, write to the Free Software\n"
-#~ "Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,\n"
-#~ "USA."
-#~ msgstr ""
-#~ "Audacious - wtyczka OSS\n"
-#~ "\n"
-#~ " Jest to program darmowy; możesz go rozprowadzać i/lub modyfikować\n"
-#~ "zgodnie z zasadami GNU General Public License opublikowanymi przez\n"
-#~ "Free Software Foundation; zarówno licencji w wersji 2, jak i w\n"
-#~ "wersji późniejszej (jako opcja).\n"
-#~ "\n"
-#~ "Program ten jest rozprowadzany z nadzieją, że będzie użyteczny,\n"
-#~ "ale BEZ ŻADNEJ GWARANCJI; nie zawierającej nawet gwarancji\n"
-#~ "HANDLOWEJ lub ZASTOSOWANIA DO SZCZEGÓLNEGO CELU. Zobacz do\n"
-#~ "GNU General Public License, aby uzyskać więcej informacji.\n"
-#~ "\n"
-#~ "Powinieneś otrzymać kopię GNU General Public License razem\n"
-#~ "z tym programem; jeśli nie, napisz do Free Software Foundation,\n"
-#~ "Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA."
-
-#~ msgid " Enable"
-#~ msgstr "WÅ‚Ä…czona"
-
-#~ msgid "About XMMS Crossfade Plugin"
-#~ msgstr "Informacje o wtyczce Crossfade"
-
-#~ msgid "Advanced XF"
-#~ msgstr "Zaawansowane XF"
-
-#~ msgid "Advanced options"
-#~ msgstr "Zaawansowane ustawienia"
-
-#~ msgid "Configure"
-#~ msgstr "Konfiguruj"
-
-#~ msgid "Crossfade"
-#~ msgstr "Crossfade"
-
-#~ msgid "Crossfader"
-#~ msgstr "Crossfader"
-
-#~ msgid "Enable volume control"
-#~ msgstr "Włącz zmianę głośności"
-
-#~ msgid "Limit OP buffer usage (ms):"
-#~ msgstr "Limituj użycie bufora OP (ms):"
-
-#, fuzzy
-#~ msgid "Mixing buffer size (ms):"
-#~ msgstr "Rozmiar bufora (ms):"
-
-#~ msgid "Plugin compatibility options"
-#~ msgstr "Tryb zgodności pluginów"
-
-#~ msgid "Position:"
-#~ msgstr "Pozycja:"
-
-#~ msgid "Quality:"
-#~ msgstr "Jakość:"
-
-#, fuzzy
-#~ msgid "Rate:"
-#~ msgstr "Rok:"
-
-#~ msgid "Reopen"
-#~ msgstr "Otwórz ponownie"
-
-#~ msgid "Use plugin"
-#~ msgstr "Użyj wtyczki"
-
-#~ msgid "Volume control options"
-#~ msgstr "Opcje zmiany głośności:"
-
-#, fuzzy
-#~ msgid "Volume normalizer"
-#~ msgstr "Zmiana głośności:"
-
-#, fuzzy
-#~ msgid "same file"
-#~ msgstr "Z pliku"
-
-#~ msgid "LibVisual Audacious Plugin"
-#~ msgstr "Wtyczka LibVisual"
-
-#~ msgid "Visualization Plugins"
-#~ msgstr "Wtyczki wizualizacji"
-
-#~ msgid "All plugins"
-#~ msgstr "Wszystkie Wtyczki"
-
-#~ msgid "GL plugins only"
-#~ msgstr "Jedynie wtyczki GL"
-
-#~ msgid "non GL plugins only"
-#~ msgstr "Jedynie wtyczki nieGL"
-
-#~ msgid " (enabled)"
-#~ msgstr "(włączona)"
-
-#~ msgid "Version: "
-#~ msgstr "Wersja: "
-
-#~ msgid " error"
-#~ msgstr " błąd"
-
-#~ msgid "Audacious plugin"
-#~ msgstr "Wtyczka Audacious"
-
-#~ msgid "Cannot initialize SDL!\n"
-#~ msgstr "Nie można zainicjować SDL!\n"
-
-#~ msgid "DISABLE ALWAYS ON TOP (N/A)"
-#~ msgstr "WYŁĄCZ ZAWSZE NA WIERCZHU (N/D)"
-
-#~ msgid "ENABLE ALWAYS ON TOP (N/A)"
-#~ msgstr "ZAWSZE NA WIERZCHU (N/D)"
-
-#~ msgid "Downsample:"
-#~ msgstr "Obniżenie próbkowania:"
-
-#~ msgid "%s - BMP"
-#~ msgstr "%s - BMP"
-
-#~ msgid "bmp: %s"
-#~ msgstr "bmp: %s"
-
-#, fuzzy
-#~ msgid "/Play Directory"
-#~ msgstr "Graj Folder"
-
-#~ msgid "Add Folders"
-#~ msgstr "Dodaj folderów"
-
-#~ msgid "/Add Folders..."
-#~ msgstr "/Dodaj Foldery..."
-
-#~ msgid "3DNow! optimized decoder"
-#~ msgstr "Dekoder zoptymalizowany pod kÄ…tem 3DNow!"
-
-#~ msgid "MMX optimized decoder"
-#~ msgstr "Dekoder zoptymalizowany pod kÄ…tem MMX!"
-
-#~ msgid "FPU decoder"
-#~ msgstr "Dekoder używający FPU"
-
-#~ msgid ""
-#~ "mpg123 decoding engine by Michael Hipp <mh at mpg123.de>\n"
-#~ "Plugin by The XMMS team"
-#~ msgstr ""
-#~ "Mechanizm dekodujÄ…cy mpg123 autorstwa Michaela Hippa <mh at mpg123.de>\n"
-#~ "Wtyczka stworzona przez zespół twórców XMMS-a"
-
-#~ msgid "Advanced settings:"
-#~ msgstr "Zaawansowane ustawienia:"
-
-#, fuzzy
-#~ msgid "Thread buffer time (ms):"
-#~ msgstr "Rozmiar bufora (ms):"
-
-#~ msgid "Mmap mode"
-#~ msgstr "Tryb Mmap"
-
-#~ msgid "Homepage and Graphics:"
-#~ msgstr "Strona domowa i grafika:"
-
-#~ msgid "Takeshi Aihana"
-#~ msgstr "Takeshi Aihana"
-
-#~ msgid "BMP Equalizer"
-#~ msgstr "Korektor graficzny BMP"
-
-#~ msgid "Beep Media Player"
-#~ msgstr "Beep Media Player"
-
-#~ msgid "/About BMP"
-#~ msgstr "/Informacje o programie"
-
-#~ msgid "BMP"
-#~ msgstr "BMP"
-
-#~ msgid "Add Internet Address"
-#~ msgstr "Dodaj Adres internetowy"
-
-#~ msgid "*"
-#~ msgstr "*"
-
-#~ msgid "Danicel Liviu Cristian"
-#~ msgstr "Danicel Liviu Cristian"
-
-#~ msgid "Vlad Gerasimov"
-#~ msgstr "Vlad Gerasimov"
-
-#~ msgid "/5 seconds REW"
-#~ msgstr "/Cofnij o 5 sek"
-
-#~ msgid "/5 seconds FFWD"
-#~ msgstr "/Przewiń o 5 sek"
-
-#~ msgid "/Add"
-#~ msgstr "/Dodaj"
-
-#~ msgid "/_Options"
-#~ msgstr "/_Opcje"
-
-#~ msgid "/By extension"
-#~ msgstr "/Według rozszerzenia"
-
-#~ msgid "/Close Window"
-#~ msgstr "/Zamknij okno"
-
-#~ msgid "/Sort by Title"
-#~ msgstr "/Sortuj według tytułu"
-
-#~ msgid "/Sort by Filename"
-#~ msgstr "/Sortuj według nazwy pliku"
-
-#~ msgid "/Sort by Date"
-#~ msgstr "/Sortuj według daty"
-
-#~ msgid "/Show Graphical EQ"
-#~ msgstr "/Wyświetlaj korektor graficzny"
-
-#~ msgid "/Show on all desktops"
-#~ msgstr "/Wyświetlaj na wszystkich pulpitach"
-
-#~ msgid "/WindowShade Mode"
-#~ msgstr "/Zwiń okno główne"
-
-#~ msgid "/Playlist WindowShade Mode"
-#~ msgstr "/Zwiń listę odtwarzania"
-
-#~ msgid "/Equalizer WindowShade Mode"
-#~ msgstr "/Zwiń korektor graficzny"
-
-#~ msgid "Jump to:"
-#~ msgstr "Skok do:"
-
-#~ msgid "Jump"
-#~ msgstr "Skocz"
-
-#~ msgid "Failed to delete \"%s\": %s."
-#~ msgstr "Nie udało się usunąć \"%s\": %s."
-
-#~ msgid "%d of %d files successfully deleted."
-#~ msgstr "Skasowano %d z %d plików."
-
-#~ msgid "XMMS: Files deleted"
-#~ msgstr "XMMS: Usunięto pliki"
-
-#~ msgid "Really delete %d files?"
-#~ msgstr "Czy naprawdę usunąć %d plików"
-
-#~ msgid "Really delete: \"%s\"?"
-#~ msgstr "Czy naprawdę usunąć \"%s\"?"
-
-#~ msgid "Smooth title scrolling in main window"
-#~ msgstr "Płynne przesuwanie tytułu utworu w głównym oknie"
-
-#~ msgid "%d items were added."
-#~ msgstr "Dodano %d utworów."
-
-#~ msgid "Directory browser"
-#~ msgstr "Przeglądarka folderów"
-
-#~ msgid "Unplayable files - BMP"
-#~ msgstr "Nieprawidłowe pliki - BMP"
-
-#~ msgid ""
-#~ "The following files could not be played. They are either not accessible "
-#~ "or require a dedicated input plugin."
-#~ msgstr ""
-#~ "Nie można odtworzyć następujących plików. Nie są dostępne albo wymagają "
-#~ "zainstalowania dpowiedniej wtyczki."
-
-#~ msgid "/Add/Directories..."
-#~ msgstr "/Dodaj/Foldery..."
-
-#~ msgid "Add Directories... "
-#~ msgstr "Dodawanie folderów..."
-
-#~ msgid "Look into sub_folders"
-#~ msgstr "Przeszukiwanie pod_folderów"
-
-#~ msgid "<b>Other options</b>"
-#~ msgstr "<b>Inne opcje</b>"
-
-#~ msgid ""
-#~ "Update the playlist according to the settings. This doesn't happen "
-#~ "automatically because it can take a very long time when having a lot of "
-#~ "files in the list."
-#~ msgstr ""
-#~ "Aktualizuje listę odtwarzania zgodnie z ustawieniami. Przy dużej ilości "
-#~ "plików na liście operacja ta może zająć dużo czasu, dlatego nie jest "
-#~ "wykonywana automatycznie."
-
-#~ msgid "BMP Equalizer Preferences"
-#~ msgstr "Ustawienia korektora graficznego BMP"
-
-#~ msgid ""
-#~ "If \"Auto\" is enabled on the equalizer, xmms will try to load equalizer "
-#~ "presets like this:\n"
-#~ "1: Look for a preset file in the directory of the file we are about to "
-#~ "play.\n"
-#~ "2: Look for a directory preset file in the same directory.\n"
-#~ "3: Look for a preset saved with the \"auto-load\" feature\n"
-#~ "4: Finally, try to load the \"default\" preset"
-#~ msgstr ""
-#~ "Jeśli w korektorze włączone jest \"Auto\", xmms będzie próbował wczytać "
-#~ "ustawienia korektora w następujący sposób:\n"
-#~ "1: Spróbuje odszukać plik ustawień w folderze aktualnie odtwarzanego "
-#~ "pliku.\n"
-#~ "2: Spróbuje odszukać folderu pliku ustawień w tym samym folderze.\n"
-#~ "3: Spróbuje odszukać ustawienia zapisane z własnością \"auto-load\"\n"
-#~ "4: Ostatecznie, spróbuje załadować \"domyślne\" ustawienia"
-
-#~ msgid "/Jump to Track"
-#~ msgstr "/Skocz do utworu"
-
-#~ msgid "/Save as..."
-#~ msgstr "/Zapisz jako..."
-
-#~ msgid "A_dd all"
-#~ msgstr "Dodaj _wszystkie"
-
-#~ msgid "_Skin list:"
-#~ msgstr "Lista _skór:"
-
-#~ msgid "<b>_Main window font:</b>"
-#~ msgstr "<b>Okno _główne:</b>"
-
-#~ msgid "Mixer device"
-#~ msgstr "UrzÄ…dzenie miksera"
-
-#~ msgid "<b><span size=\"medium\">Output</span></b>"
-#~ msgstr "<b><span size=\"medium\">Wyjściowe</span></b>"
-
-#, fuzzy
-#~ msgid "BMP: Add Directories... "
-#~ msgstr "BMP : Dodawanie katalogów... "
 
-#~ msgid "Choose a preferences category"
-#~ msgstr "Wybierz kategorię ustawień"
diff --git a/po/pt_BR.po b/po/pt_BR.po
index 2070306..cdd9d3f 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -1,11 +1,13 @@
-# Brazilian Portuguese translation for Audacious
+# Brazilian Portuguese translation for Audacious
+# Karen Eliot <kareneliot at riseup. net>, 2011.
+#
 msgid ""
 msgstr ""
 "Project-Id-Version: pt_BR\n"
 "Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
-"PO-Revision-Date: 2008-02-07 17:45-0000\n"
-"Last-Translator: Thadeu Knychala Tucci <havacci at gmail.com>\n"
+"POT-Creation-Date: 2011-07-05 22:45+0200\n"
+"PO-Revision-Date: 2011-08-03 00:59-0300\n"
+"Last-Translator: Karen Eliot <kareneliot at riseup. net>\n"
 "Language-Team: Brazilian Portuguese <havacci at gmail.com>\n"
 "Language: pt_BR\n"
 "MIME-Version: 1.0\n"
@@ -15,14 +17,18 @@ msgstr ""
 "X-Poedit-Language: Portuguese\n"
 "X-Poedit-Country: BRAZIL\n"
 
-#: src/audacious/chardet.c:37
+#: src/audacious/adder.c:71
+msgid "Searching ..."
+msgstr "Procurando..."
+
+#: src/audacious/adder.c:99 src/audacious/chardet.c:37
+#, c-format
 msgid "  (invalid UTF-8)"
 msgstr "  (UTF-8 inválido)"
 
 #: src/audacious/credits.c:35
-#, fuzzy
 msgid "Core developers:"
-msgstr "Desenvolvedores do 0.1.x:"
+msgstr "Desenvolvedores do núcleo:"
 
 #: src/audacious/credits.c:49
 msgid "Graphics:"
@@ -41,22 +47,20 @@ msgid "Patch authors:"
 msgstr "Autores de correções:"
 
 #: src/audacious/credits.c:126
-#, fuzzy
 msgid "1.x developers:"
-msgstr "Desenvolvedores do 0.1.x:"
+msgstr "Desenvolvedores do 1.x:"
 
 #: src/audacious/credits.c:148
 msgid "BMP Developers:"
 msgstr "Desenvolvedores do BMP:"
 
 #: src/audacious/credits.c:180
-#, fuzzy
 msgid "Belarusian:"
-msgstr "Búlgaro:"
+msgstr "Bielorrusso:"
 
 #: src/audacious/credits.c:183
 msgid "Basque:"
-msgstr ""
+msgstr "Basco:"
 
 #: src/audacious/credits.c:186
 msgid "Brazilian Portuguese:"
@@ -75,9 +79,8 @@ msgid "Catalan:"
 msgstr "Catalão:"
 
 #: src/audacious/credits.c:199
-#, fuzzy
 msgid "Chinese:"
-msgstr "Chines"
+msgstr "Chinês:"
 
 #: src/audacious/credits.c:202
 msgid "Croatian:"
@@ -99,196 +102,176 @@ msgstr "Estónio:"
 msgid "Finnish:"
 msgstr "Finlândes:"
 
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:220
 msgid "French:"
 msgstr "Francês:"
 
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:226
 msgid "German:"
 msgstr "Alemão:"
 
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:233
 msgid "Georgian:"
 msgstr "Georgiano:"
 
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:236
 msgid "Greek:"
 msgstr "Grego:"
 
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:241
 msgid "Hindi:"
 msgstr "Hindú:"
 
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:244
 msgid "Hungarian:"
 msgstr "Húngaro:"
 
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:248
 msgid "Italian:"
 msgstr "Italiano:"
 
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:252
 msgid "Japanese:"
 msgstr "Japonês:"
 
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:255
 msgid "Korean:"
 msgstr "Coreano:"
 
-#: src/audacious/credits.c:256
-#, fuzzy
+#: src/audacious/credits.c:258
 msgid "Latvian:"
-msgstr "Croata:"
+msgstr "Letão:"
 
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:261
 msgid "Lithuanian:"
 msgstr "Lítuano:"
 
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:265
 msgid "Macedonian:"
 msgstr "Macedônio:"
 
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:268
 msgid "Polish:"
 msgstr "Polonês:"
 
-#: src/audacious/credits.c:271
-#, fuzzy
+#: src/audacious/credits.c:274
 msgid "Portuguese:"
-msgstr "Português do Brasil:"
+msgstr "Português:"
 
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:277
 msgid "Romanian:"
 msgstr "Romeno:"
 
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:281
 msgid "Russian:"
 msgstr "Russo:"
 
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:285
 msgid "Serbian (Latin):"
 msgstr "Sérvio (Latino):"
 
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:288
 msgid "Serbian (Cyrillic):"
 msgstr "Sérvio (Cyrillic):"
 
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:291
 msgid "Simplified Chinese:"
 msgstr "Chinês Simplificado:"
 
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:294
 msgid "Slovak:"
 msgstr "Eslovaco:"
 
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:297
 msgid "Spanish:"
 msgstr "Espanhol:"
 
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:304
 msgid "Swedish:"
 msgstr "Sueco:"
 
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:307
 msgid "Traditional Chinese:"
 msgstr "Chinês Tradicional:"
 
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:312
 msgid "Turkish:"
 msgstr "Turco:"
 
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:316
 msgid "Ukrainian:"
 msgstr "Ucraniano:"
 
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:319
 msgid "Welsh:"
 msgstr "Galês:"
 
-#: src/audacious/drct.c:254
-#, fuzzy
+#: src/audacious/drct.c:256
 msgid "Temporary Playlist"
-msgstr "Abrir Lista de Reprodução"
+msgstr "Lista de Reprodução Temporária"
 
 #: src/audacious/equalizer_preset.c:186
 #, c-format
 msgid "Error importing Winamp EQF file '%s'"
-msgstr ""
+msgstr "Erro importando arquivo EQF do Winamp '%s'"
 
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr ""
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/audacious/main.c:247
+#: src/audacious/main.c:256
 msgid "Skip backwards in playlist"
 msgstr "Voltar na lista de reprodução"
 
-#: src/audacious/main.c:248
+#: src/audacious/main.c:257
 msgid "Start playing current playlist"
 msgstr "Reproduzir lista de reprodução atual"
 
-#: src/audacious/main.c:249
+#: src/audacious/main.c:258
 msgid "Pause current song"
-msgstr "Pausar arquivo atual"
+msgstr "Pausar música atual"
 
-#: src/audacious/main.c:250
+#: src/audacious/main.c:259
 msgid "Stop current song"
-msgstr "Parar arquivo atual"
+msgstr "Parar música atual"
 
-#: src/audacious/main.c:251
+#: src/audacious/main.c:260
 msgid "Pause if playing, play otherwise"
 msgstr "Pausar ou reproduzir"
 
-#: src/audacious/main.c:252
+#: src/audacious/main.c:261
 msgid "Skip forward in playlist"
 msgstr "Próximo na lista de reprodução"
 
-#: src/audacious/main.c:253
+#: src/audacious/main.c:262
 msgid "Display Jump to File dialog"
-msgstr "Mostrar caixa de diálogo de \"Ir para o Arquivo\""
+msgstr "Mostrar caixa de diálogo \"Ir para o Arquivo\""
 
-#: src/audacious/main.c:254
-#, fuzzy
+#: src/audacious/main.c:263
 msgid "Add files to the playlist"
-msgstr "Adicionar arquivos à lista de reprodução."
+msgstr "Adicionar arquivos à lista de reprodução"
 
-#: src/audacious/main.c:255
+#: src/audacious/main.c:264
 msgid "Add new files to a temporary playlist"
-msgstr "Adicionar novos arquivos à lista de reprodução temporária"
+msgstr "Adicionar novos arquivos a uma lista de reprodução temporária"
 
-#: src/audacious/main.c:256
+#: src/audacious/main.c:265
 msgid "Display the main window"
 msgstr "Mostrar janela principal"
 
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr "Mostrar janelas abertas do Audacious"
-
-#: src/audacious/main.c:258
-#, fuzzy
+#: src/audacious/main.c:266
 msgid "Show version"
-msgstr "Mostrar Reprodutor"
+msgstr "Mostrar versão"
 
-#: src/audacious/main.c:259
+#: src/audacious/main.c:267
 msgid "Print debugging messages"
-msgstr ""
+msgstr "Imprimir mensagens de depuração"
 
-#: src/audacious/main.c:260
+#: src/audacious/main.c:268
 msgid "FILE..."
 msgstr "ARQUIVO..."
 
-#: src/audacious/main.c:272
+#: src/audacious/main.c:280
 msgid "- play multimedia files"
 msgstr "- reproduzir arquivos multimídia"
 
-#: src/audacious/main.c:282
+#: src/audacious/main.c:290
 #, c-format
 msgid ""
 "%s: %s\n"
@@ -297,271 +280,238 @@ msgstr ""
 "%s: %s\n"
 "Tente `%s --help' para mais informações.\n"
 
-#: src/audacious/main.c:395
+#: src/audacious/main.c:407
 msgid ""
 "Audacious seems to be already running but is not responding.  You can start "
 "another instance of the program, but please be warned that this can cause "
 "data loss.  If Audacious is not running, you can safely ignore this "
 "message.  Press OK to start Audacious or Cancel to quit."
 msgstr ""
+"Parece que o Audacious já está sendo executado mas não responde. Você pode "
+"iniciar o programa denovo, mas cuidado porque isto pode causar perda de "
+"dados. Se o Audacious não está sendo executado, você pode ignorar esta "
+"mensagem com segurança. Pressione OK para iniciar Audacious ou Cancelar para "
+"fechar."
 
-#: src/audacious/main.c:558
+#: src/audacious/main.c:572
 msgid "Audacious"
 msgstr "Audacious"
 
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:381
 #, c-format
 msgid "No decoder found for %s."
-msgstr ""
+msgstr "Decodificador para %s não encontrado "
 
-#: src/audacious/playback.c:519
+#: src/audacious/playback.c:531
 msgid "Buffering ..."
-msgstr ""
+msgstr "Carregando..."
 
-#: src/audacious/playlist-new.c:288
-#, fuzzy
+#: src/audacious/playlist-new.c:303
 msgid "Untitled Playlist"
-msgstr "Nova Lista de Reprodução"
+msgstr "Lista de Reprodução sem título"
 
-#: src/audacious/ui_preferences.c:88
+#: src/audacious/ui_preferences.c:87
 msgid "Audio"
 msgstr "Áudio"
 
-#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
-msgstr "Repetir aumento"
-
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:88
 msgid "Network"
-msgstr ""
+msgstr "Rede"
 
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:89 src/audacious/ui_preferences.c:1556
 msgid "Playlist"
 msgstr "Lista de Reprodução"
 
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:90
 msgid "Plugins"
 msgstr "Plugins"
 
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:204
 msgid "Artist"
 msgstr "Artista"
 
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:97 src/libaudgui/infopopup.c:206
 msgid "Album"
 msgstr "Álbum"
 
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:202
+#: src/libaudgui/ui_playlist_manager.c:263
 msgid "Title"
 msgstr "Título"
 
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:99
 msgid "Tracknumber"
-msgstr "Número do arquivo"
+msgstr "Número da faixa"
 
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:208
 msgid "Genre"
 msgstr "Gênero"
 
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:101
 msgid "Filename"
 msgstr "Nome do arquivo"
 
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:102
 msgid "Filepath"
 msgstr "Localização"
 
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:103
 msgid "Date"
 msgstr "Data"
 
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:104 src/libaudgui/infopopup.c:210
 msgid "Year"
 msgstr "Ano"
 
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:105
 msgid "Comment"
 msgstr "Comentário"
 
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:106
 msgid "Codec"
 msgstr "Codec"
 
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:107
 msgid "Quality"
-msgstr "Calidad"
+msgstr "Qualidade"
 
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:112
 msgid "None"
 msgstr "Nenhum"
 
-#: src/audacious/ui_preferences.c:115
+#: src/audacious/ui_preferences.c:113
 msgid "Japanese"
 msgstr "Japonês"
 
-#: src/audacious/ui_preferences.c:116
+#: src/audacious/ui_preferences.c:114
 msgid "Taiwanese"
 msgstr "Taiwanês"
 
-#: src/audacious/ui_preferences.c:117
+#: src/audacious/ui_preferences.c:115
 msgid "Chinese"
 msgstr "Chines"
 
-#: src/audacious/ui_preferences.c:118
+#: src/audacious/ui_preferences.c:116
 msgid "Korean"
 msgstr "Koreano"
 
-#: src/audacious/ui_preferences.c:119
+#: src/audacious/ui_preferences.c:117
 msgid "Russian"
 msgstr "Russo"
 
-#: src/audacious/ui_preferences.c:120
+#: src/audacious/ui_preferences.c:118
 msgid "Greek"
 msgstr "Grego"
 
-#: src/audacious/ui_preferences.c:121
+#: src/audacious/ui_preferences.c:119
 msgid "Hebrew"
 msgstr "Hebraico"
 
-#: src/audacious/ui_preferences.c:122
+#: src/audacious/ui_preferences.c:120
 msgid "Turkish"
 msgstr "Turco"
 
-#: src/audacious/ui_preferences.c:123
+#: src/audacious/ui_preferences.c:121
 msgid "Arabic"
 msgstr "Árabe"
 
-#: src/audacious/ui_preferences.c:124
-#, fuzzy
+#: src/audacious/ui_preferences.c:122
 msgid "Polish"
-msgstr "Polonês:"
+msgstr "Polonês"
 
-#: src/audacious/ui_preferences.c:125
-#, fuzzy
+#: src/audacious/ui_preferences.c:123
 msgid "Baltic"
-msgstr "Celta"
+msgstr "Báltico"
 
-#: src/audacious/ui_preferences.c:126
+#: src/audacious/ui_preferences.c:124
 msgid "Universal"
 msgstr "Geral"
 
 #: src/audacious/ui_preferences.c:146
-msgid "<b>Bit Depth</b>"
-msgstr "<b>Taxa:</b>"
+msgid "Single track mode"
+msgstr "Modo faixa única"
 
 #: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr "Taxa de saída:"
-
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
-"Todas as streams serão convertidas tamanho.\n"
-"Este deve ser o tamaho máximo suportado\n"
-"pela placa de som ou plugin de saída"
+msgid "Album mode"
+msgstr "Modo álbum"
 
-#: src/audacious/ui_preferences.c:151
-msgid "<b>Volume Control</b>"
-msgstr "<b>Controle de Volume</b>"
+#: src/audacious/ui_preferences.c:150
+msgid "<b>Output Settings</b>"
+msgstr "<b>Configuração de Saída</b>"
 
 #: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr "Usar software de controle de volume"
+msgid "Bit depth:"
+msgstr "Profundidade de bit:"
 
-#: src/audacious/ui_preferences.c:154
-#, fuzzy
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
-"Use software para controle de volume. Isto pode ser útil para situações onde "
-"seu sistema de áudio não suporta controlar o volume de reprodução."
+#: src/audacious/ui_preferences.c:155
+msgid "Buffer size:"
+msgstr "Tamanho do armazenamento:"
 
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
-msgstr ""
+#: src/audacious/ui_preferences.c:157
+msgid "ms"
+msgstr "ms"
 
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
-msgstr "dB"
+#: src/audacious/ui_preferences.c:158
+msgid "Use software volume control (not recommended)"
+msgstr "Usar controle de volume de software (não recomendado)"
 
 #: src/audacious/ui_preferences.c:160
-#, fuzzy
-msgid "Amplify untagged files:"
-msgstr "- reproduzir arquivos multimídia"
-
-#: src/audacious/ui_preferences.c:164
-#, fuzzy
 msgid "<b>Replay Gain</b>"
-msgstr "<b>Modo de Ganho de Replay</b>"
+msgstr "<b>Ganho de Replay</b>"
 
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:161
 msgid "Enable Replay Gain"
 msgstr "Habilitar Ganho de Replay"
 
+#: src/audacious/ui_preferences.c:164
+msgid "Prevent clipping (recommended)"
+msgstr "Prevenir ruídos (recomendado)"
+
+#: src/audacious/ui_preferences.c:166
+msgid "<b>Adjust Levels</b>"
+msgstr "<b>Ajustar Níveis</b>"
+
 #: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>TAGs</b>"
+msgid "Amplify all files:"
+msgstr "Amplificar todos os arquivos:"
 
-#: src/audacious/ui_preferences.c:168
-#, fuzzy
-msgid "Single track mode"
-msgstr "Visualizar detalhes do arquivo"
+#: src/audacious/ui_preferences.c:169 src/audacious/ui_preferences.c:172
+msgid "dB"
+msgstr "dB"
 
 #: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "Álbum:"
-
-#: src/audacious/ui_preferences.c:172
-#, fuzzy
-msgid "<b>Adjust Levels</b>"
-msgstr "<b>Roda do mouse</b>"
+msgid "Amplify untagged files:"
+msgstr "Amplificar arquivos não-marcados:"
 
 #: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "<b>Informações Popup</b>"
-
-#: src/audacious/ui_preferences.c:176
-#, fuzzy
-msgid "Enable clipping prevention"
-msgstr "Habilitar prevenção de clipping"
-
-#: src/audacious/ui_preferences.c:180
 msgid "Proxy hostname:"
 msgstr "Endereço do proxy:"
 
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:176
 msgid "Proxy port:"
 msgstr "Porta do proxy:"
 
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:179
 msgid "Proxy username:"
 msgstr "Nome de usuário do proxy:"
 
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:180
 msgid "Proxy password:"
 msgstr "Senha do proxy:"
 
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:184
 msgid "<b>Proxy Configuration</b>"
 msgstr "<b>Configurações de Proxy</b>"
 
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:185
 msgid "Enable proxy usage"
 msgstr "Ativar o uso de proxy"
 
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:187
 msgid "Use authentication with proxy"
 msgstr "Usar autenticação do proxy"
 
-#: src/audacious/ui_preferences.c:197
+#: src/audacious/ui_preferences.c:189
 msgid ""
 "<span size=\"small\">Changing these settings will require a restart of "
 "Audacious.</span>"
@@ -569,15 +519,15 @@ msgstr ""
 "<span size=\"small\">Em caso de alteração, o Audacious deve ser reiniciado</"
 "span>"
 
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
 msgid "Auto character encoding detector for:"
 msgstr "Converter caracteres automaticamente para:"
 
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
 msgid "Fallback character encodings:"
 msgstr "Códigos de caracteres de arquivos:"
 
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
 msgid ""
 "List of character encodings used for fall back conversion of metadata. If "
 "automatic character encoding detector failed or has been disabled, encodings "
@@ -589,46 +539,43 @@ msgstr ""
 "tratados como informações codificadas de TAG, e os códigos serão convertidos "
 "para UTF-8."
 
-#: src/audacious/ui_preferences.c:213
-#, fuzzy
+#: src/audacious/ui_preferences.c:205
 msgid "<b>Behavior</b>"
-msgstr "<b>Taxa:</b>"
+msgstr "<b>Comportamento</b>"
 
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:206
 msgid "Continue playback on startup"
 msgstr "Continuar reprodução ao iniciar"
 
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:208
 msgid "Advance when the current song is deleted"
-msgstr ""
+msgstr "Avançar quando a música atual for excluída"
 
-#: src/audacious/ui_preferences.c:218
-#, fuzzy
+#: src/audacious/ui_preferences.c:210
 msgid "Clear the playlist when opening files"
-msgstr "Criar nova lista de reprodução com arquivos encontrados"
+msgstr "Limpar lista de reprodução ao abrir arquivos"
 
-#: src/audacious/ui_preferences.c:220
-#, fuzzy
+#: src/audacious/ui_preferences.c:212
 msgid "Open files in a temporary playlist"
-msgstr "Adicionar novos arquivos à lista de reprodução temporária"
+msgstr "Abrir arquivos em uma lista de reprodução temporária"
 
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:214
 msgid "<b>Metadata</b>"
 msgstr "<b>TAGs</b>"
 
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:454
 msgid "Category"
 msgstr "Categoria"
 
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:682
 msgid "Popup Information Settings"
 msgstr "Configuração de informações em janelas popup"
 
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:691
 msgid "<b>Cover image retrieve</b>"
 msgstr "<b>Buscar imagem de capa</b>"
 
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:696
 msgid ""
 "While searching for the album's cover, Audacious looks for certain words in "
 "the filename. You can specify those words in the lists below, separated "
@@ -638,100 +585,100 @@ msgstr ""
 "arquivo. Mas, você pode especificar outras palavras na lista abaixo, "
 "separadas por vírgulas."
 
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:713
 msgid "Exclude:"
 msgstr "Excluir:"
 
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:720
 msgid "Include:"
 msgstr "Incluir:"
 
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:737
 msgid "Recursively search for cover"
-msgstr "Busca de capa"
+msgstr "Buscar pela capa"
 
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:747
 msgid "Search depth: "
-msgstr "Repetir busca:"
+msgstr "Profundidade da busca:"
 
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:761
 msgid "Use per-file cover"
 msgstr "Exibir capa"
 
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:764
 msgid "<b>Miscellaneous</b>"
-msgstr "<b>Vários</b>"
+msgstr "<b>Diversos</b>"
 
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:773
 msgid "Show Progress bar for the current track"
 msgstr "Mostrar Barra de Progresso para o arquivo atual"
 
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:783
 msgid "Delay until filepopup comes up: "
-msgstr "Atraso da janela popup do arquivo em:"
+msgstr "Tempo até que a janela popup do arquivo apareça:"
 
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1283
 msgid "<b>Song Display</b>"
 msgstr "<b>Exibição do Arquivo</b>"
 
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1292
 msgid "Show song numbers"
-msgstr ""
+msgstr "Mostrar números das músicas"
 
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1303
 msgid "Show leading zeroes (02:00 instead of 2:00)"
-msgstr ""
+msgstr "Mostrar zero a esquerda (02:00 ao invés de 2:00)"
 
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1325
 msgid "Show information about titlestring format"
 msgstr "Mostrar informações sobre o formato do título"
 
-#: src/audacious/ui_preferences.c:1514
+#: src/audacious/ui_preferences.c:1339
 msgid "TITLE"
 msgstr "TÍTULO"
 
-#: src/audacious/ui_preferences.c:1515
+#: src/audacious/ui_preferences.c:1340
 msgid "ARTIST - TITLE"
 msgstr "ARTISTA - TÍTULO"
 
-#: src/audacious/ui_preferences.c:1516
+#: src/audacious/ui_preferences.c:1341
 msgid "ARTIST - ALBUM - TITLE"
 msgstr "ARTISTA - ÁLBUM - TÍTULO"
 
-#: src/audacious/ui_preferences.c:1517
+#: src/audacious/ui_preferences.c:1342
 msgid "ARTIST - ALBUM - TRACK. TITLE"
 msgstr "ARTISTA - ÁLBUM - FAIXA. TÍTULO"
 
-#: src/audacious/ui_preferences.c:1518
+#: src/audacious/ui_preferences.c:1343
 msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
 msgstr "ARTISTA [ ÁLBUM ] - FAIXA. TÍTULO"
 
-#: src/audacious/ui_preferences.c:1519
+#: src/audacious/ui_preferences.c:1344
 msgid "ALBUM - TITLE"
 msgstr "ÁLBUM - TÍTULO"
 
-#: src/audacious/ui_preferences.c:1520
+#: src/audacious/ui_preferences.c:1345
 msgid "Custom"
 msgstr "Personalizado"
 
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1354
 msgid "Custom string:"
-msgstr "Campo personalizado:"
+msgstr "Formato personalizado:"
 
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1361
 msgid "Title format:"
 msgstr "Formato do título:"
 
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1372
 msgid "<b>Popup Information</b>"
 msgstr "<b>Informações Popup</b>"
 
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1387
 msgid "Show popup information for playlist entries"
 msgstr ""
 "Exibir informações de arquivos da lista de reprodução em uma janela popup"
 
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1388
 msgid ""
 "Toggles popup information window for the pointed entry in the playlist. The "
 "window shows title of song, name of album, genre, year of publish, track "
@@ -741,156 +688,137 @@ msgstr ""
 "janela popup. A janela mostra o título, número, álbum, gênero, ano, duração "
 "e arte do arquivo selecionado."
 
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1397
 msgid "Edit settings for popup information"
 msgstr "Editar valores para informações popup"
 
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>Sistema de Áudio</b>"
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "Tamanho do armazenamento:"
-
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
-msgstr "Plugin de saída atual:"
+#: src/audacious/ui_preferences.c:1497
+msgid "Output plugin:"
+msgstr "Plugin de saída:"
 
-#: src/audacious/ui_preferences.c:1790
-#, fuzzy
+#: src/audacious/ui_preferences.c:1556
 msgid "Transport"
-msgstr "Tradutores"
+msgstr "Transportar"
 
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
 msgid "Input"
-msgstr ""
+msgstr "Entrada"
 
-#: src/audacious/ui_preferences.c:1791
-#, fuzzy
+#: src/audacious/ui_preferences.c:1557
 msgid "Effect"
-msgstr "<b>Efeitos</b>"
+msgstr "Efeito"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
 msgid "Visualization"
 msgstr "Visualização"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
 msgid "General"
-msgstr ""
+msgstr "Geral"
 
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1597
 msgid "Audacious Preferences"
 msgstr "Preferências do Audacious"
 
-#: src/audacious/util.c:161
+#: src/audacious/util.c:155
 #, c-format
 msgid "Could not create directory (%s): %s\n"
 msgstr "Erro ao criar o diretório (%s): %s\n"
 
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:264
 msgid "Position not found."
-msgstr ""
+msgstr "Posição não encontrada."
 
 #: src/audtool/handlers_vitals.c:64
 msgid "No song playing."
-msgstr ""
+msgstr "Nenhuma música tocando."
 
 #: src/libaudcore/tuple.c:685
 msgid "Mono"
-msgstr ""
+msgstr "Mono"
 
 #: src/libaudcore/tuple.c:687
-#, fuzzy
 msgid "Stereo"
-msgstr "estéreo"
-
-#: src/libaudcore/tuple.c:689
-#, c-format
-msgid "%d channels"
-msgstr ""
+msgstr "Estéreo"
 
-#: src/libaudgui/confirm.c:65
+#: src/libaudcore/tuple.c:689 src/libaudgui/confirm.c:73
 #, c-format
 msgid ""
 "Are you sure you want to close %s?  If you do, any changes made since the "
 "playlist was exported will be lost."
 msgstr ""
+"Você tem certeza que deseja fechar %s? Se você fizer isto, todas as mudanças "
+"feitas desde que a lista de reprodução foi exportada serão perdidas."
 
-#: src/libaudgui/confirm.c:77
-#, fuzzy
+#: src/libaudgui/confirm.c:86
 msgid "_Don't show this message again"
-msgstr "Não mostrar mais este aviso"
+msgstr "_Não mostrar esta mensagem novamente"
 
-#: src/libaudgui/confirm.c:115
-#, fuzzy
+#: src/libaudgui/confirm.c:124
 msgid "Rename Playlist"
-msgstr "Salvar Lista de Reprodução"
+msgstr "Renomear Lista de Reprodução"
 
 #: src/libaudgui/effects-menu.c:76
 msgid "settings ..."
-msgstr ""
+msgstr "configurações..."
 
 #: src/libaudgui/equalizer.c:68
-#, fuzzy
 msgid "_Enable"
-msgstr "Ativado"
+msgstr "_Ativar"
 
 #: src/libaudgui/equalizer.c:140
 msgid "31 Hz"
-msgstr ""
+msgstr "31 Hz"
 
 #: src/libaudgui/equalizer.c:140
 msgid "63 Hz"
-msgstr ""
+msgstr "63 Hz"
 
 #: src/libaudgui/equalizer.c:141
 msgid "125 Hz"
-msgstr ""
+msgstr "125 Hz"
 
 #: src/libaudgui/equalizer.c:141
 msgid "250 Hz"
-msgstr ""
+msgstr "250 Hz"
 
 #: src/libaudgui/equalizer.c:141
 msgid "500 Hz"
-msgstr ""
+msgstr "500 Hz"
 
 #: src/libaudgui/equalizer.c:141
 msgid "1 kHz"
-msgstr ""
+msgstr "1 kHz"
 
 #: src/libaudgui/equalizer.c:141
 msgid "2 kHz"
-msgstr ""
+msgstr "2 kHz"
 
 #: src/libaudgui/equalizer.c:142
 msgid "4 kHz"
-msgstr ""
+msgstr "4 kHz"
 
 #: src/libaudgui/equalizer.c:142
 msgid "8 kHz"
-msgstr ""
+msgstr "8 kHz"
 
 #: src/libaudgui/equalizer.c:142
 msgid "16 kHz"
-msgstr ""
+msgstr "16 kHz"
 
 #: src/libaudgui/equalizer.c:147
-#, fuzzy
 msgid "Equalizer"
-msgstr "Mostrar Equalizador"
+msgstr "Equalizador"
 
 #: src/libaudgui/equalizer.c:163
-#, fuzzy
 msgid "Preamp"
-msgstr "Preamplificación:"
+msgstr "Preamplificação"
 
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:212
 msgid "Track Number"
 msgstr "Número do Arquivo"
 
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:214
 msgid "Track Length"
 msgstr "Duração do arquivo"
 
@@ -899,18 +827,16 @@ msgid "Acid Jazz"
 msgstr "Jazz ácido"
 
 #: src/libaudgui/infowin.c:78
-#, fuzzy
 msgid "Acid Rock"
-msgstr "Hard Rock"
+msgstr "Acid Rock"
 
 #: src/libaudgui/infowin.c:79
 msgid "Ambient"
 msgstr "Ambient"
 
 #: src/libaudgui/infowin.c:80
-#, fuzzy
 msgid "Bebop"
-msgstr "Bebob"
+msgstr "Bebop"
 
 #: src/libaudgui/infowin.c:81
 msgid "Bluegrass"
@@ -942,7 +868,7 @@ msgstr "Disco"
 
 #: src/libaudgui/infowin.c:88
 msgid "Easy Listening"
-msgstr "Escucha fácil"
+msgstr "Fácil de escutar"
 
 #: src/libaudgui/infowin.c:89
 msgid "Folk"
@@ -973,9 +899,8 @@ msgid "Heavy Metal"
 msgstr "Heavy Metal"
 
 #: src/libaudgui/infowin.c:96
-#, fuzzy
 msgid "Hip-hop"
-msgstr "Hip-Hop"
+msgstr "Hip-hop"
 
 #: src/libaudgui/infowin.c:97
 msgid "House"
@@ -1003,7 +928,7 @@ msgstr "New wave"
 
 #: src/libaudgui/infowin.c:103
 msgid "Noise"
-msgstr "Ruido"
+msgstr "Noise"
 
 #: src/libaudgui/infowin.c:104
 msgid "Pop"
@@ -1026,13 +951,12 @@ msgid "Rock"
 msgstr "Rock"
 
 #: src/libaudgui/infowin.c:109
-#, fuzzy
 msgid "Rock and Roll"
-msgstr "Rock & Roll"
+msgstr "Rock and Roll"
 
 #: src/libaudgui/infowin.c:110
 msgid "Rhythm and Blues"
-msgstr ""
+msgstr "Rhythm and Blues"
 
 #: src/libaudgui/infowin.c:111
 msgid "Ska"
@@ -1051,9 +975,8 @@ msgid "Techno"
 msgstr "Techno"
 
 #: src/libaudgui/infowin.c:115
-#, fuzzy
 msgid "Trip-hop"
-msgstr "Trip-Hop"
+msgstr "Trip-hop"
 
 #: src/libaudgui/infowin.c:175 src/libaudgui/infowin.c:361
 #: src/libaudgui/infowin.c:364 src/libaudgui/infowin.c:367
@@ -1120,7 +1043,28 @@ msgstr "%d kb/s"
 #: src/libaudgui/infowin.c:579
 #, c-format
 msgid "No info available for %s.\n"
-msgstr ""
+msgstr "Sem informação disponível para %s.\n"
+
+#: src/libaudgui/jump-to-time.c:75
+msgid "Jump to Time"
+msgstr "Avançar Tempo até"
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr "mm:ss"
+
+#: src/libaudgui/playlists.c:39
+msgid "Export Playlist"
+msgstr "Exportar Lista de Reprodução"
+
+#: src/libaudgui/playlists.c:39
+msgid "Import Playlist"
+msgstr "Importar Lista de Reprodução"
+
+#: src/libaudgui/playlists.c:71
+#, c-format
+msgid "Overwrite %s?"
+msgstr "Substituir %s?"
 
 #: src/libaudgui/ui_about.c:71
 msgid "About Audacious"
@@ -1132,7 +1076,7 @@ msgstr "Créditos"
 
 #: src/libaudgui/ui_credits.c:126
 msgid "Translators"
-msgstr "Tradutores"
+msgstr "Tradutores(as)"
 
 #: src/libaudgui/ui_fileopener.c:108
 msgid "Open Files"
@@ -1140,15 +1084,15 @@ msgstr "Abrir Arquivos"
 
 #: src/libaudgui/ui_fileopener.c:108
 msgid "Add Files"
-msgstr "Adicionar Arquivos..."
+msgstr "Adicionar Arquivos"
 
 #: src/libaudgui/ui_fileopener.c:110
 msgid "Close dialog on Open"
-msgstr "Fechar janela ao abrir"
+msgstr "Fechar janela ao Abrir"
 
 #: src/libaudgui/ui_fileopener.c:110
 msgid "Close dialog on Add"
-msgstr "Fechar janela ao adicionar"
+msgstr "Fechar janela ao Adicionar"
 
 #: src/libaudgui/ui_jumptotrack.c:133
 msgid "Un_queue"
@@ -1160,7 +1104,7 @@ msgstr "_Inserir na fila"
 
 #: src/libaudgui/ui_jumptotrack.c:399
 msgid "Jump to Track"
-msgstr "Ir para o Arquivo"
+msgstr "Ir para a Faixa"
 
 #: src/libaudgui/ui_jumptotrack.c:442
 msgid "Filter: "
@@ -1175,100 +1119,152 @@ msgid "Remember"
 msgstr "Lembrar"
 
 #: src/libaudgui/ui_jumptotrack.c:470
-#, fuzzy
 msgid "Clea_r"
-msgstr "Limpar tudo"
+msgstr "Clea_r"
 
 #: src/libaudgui/ui_jumptotrack.c:504
 msgid "Close on Jump"
 msgstr "Fechar janela ao abrir"
 
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:240
 msgid "Playlist Manager"
 msgstr "Editor de Lista de Reprodução"
 
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:264
 msgid "Entries"
-msgstr "Arquivos"
+msgstr "Entradas"
 
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:285
 msgid "_Rename"
 msgstr "_Renomear"
 
-#: src/libaudgui/ui_playlist_manager.c:251
-#, fuzzy
+#: src/libaudgui/ui_playlist_manager.c:309
 msgid "_Close dialog on activating playlist"
-msgstr "Fechar janela ao abrir"
+msgstr "_Fechar janela ao ativar lista de reprodução"
 
 #: src/libaudgui/ui_urlopener.c:58
 msgid "Open URL"
-msgstr ""
+msgstr "Abrir URL"
 
 #: src/libaudgui/ui_urlopener.c:58
 msgid "Add URL"
+msgstr "Adicionar URL"
+
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
 msgstr ""
+"\n"
+"(Demais mensagens foram escondidas.)"
 
 #: src/libeggsmclient/eggdesktopfile.c:165
 msgid "File is not a valid .desktop file"
-msgstr ""
+msgstr "Este não é um arquivo .desktop válido"
 
 #: src/libeggsmclient/eggdesktopfile.c:188
 #, c-format
 msgid "Unrecognized desktop file Version '%s'"
-msgstr ""
+msgstr "Arquivo desktop desconhecido Versão '%s'"
 
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:967
 #, c-format
 msgid "Starting %s"
-msgstr ""
+msgstr "Iniciando %s"
 
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1108
 msgid "Application does not accept documents on command line"
-msgstr ""
+msgstr "Aplicação não aceita documentos na linha de comando"
 
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1176
 #, c-format
 msgid "Unrecognized launch option: %d"
-msgstr ""
+msgstr "Opção de inicialização desconhecida: %d"
 
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1375
 msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
 msgstr ""
+"Não se pode passar URIs de documentos para uma entrada de desktop \"Type=Link"
+"\""
 
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1396
 msgid "Not a launchable item"
-msgstr ""
+msgstr "Não é possível iniciar este item"
 
 #: src/libeggsmclient/eggsmclient.c:226
 msgid "Disable connection to session manager"
-msgstr ""
+msgstr "Desabilitar conexão com gerenciador de sessão"
 
 #: src/libeggsmclient/eggsmclient.c:229
 msgid "Specify file containing saved configuration"
-msgstr ""
+msgstr "Especificar arquivo contendo configuração salva"
 
 #: src/libeggsmclient/eggsmclient.c:229
-#, fuzzy
 msgid "FILE"
-msgstr "ARQUIVO..."
+msgstr "ARQUIVO"
 
 #: src/libeggsmclient/eggsmclient.c:232
 msgid "Specify session management ID"
-msgstr ""
+msgstr "Especificar ID de gerenciamento de sessão"
 
 #: src/libeggsmclient/eggsmclient.c:232
 msgid "ID"
-msgstr ""
+msgstr "ID"
 
 #: src/libeggsmclient/eggsmclient.c:253
-#, fuzzy
 msgid "Session management options:"
-msgstr "Mostrar decoração de janelas do gerenciador de janelas"
+msgstr "Opções de gerenciamento de sessão:"
 
 #: src/libeggsmclient/eggsmclient.c:254
-#, fuzzy
 msgid "Show session management options"
-msgstr "Mostrar decoração de janelas do gerenciador de janelas"
+msgstr "Mostrar opções de gerenciamento de sessão"
+
+#~ msgid "Replay Gain"
+#~ msgstr "Repetir aumento"
+
+#~ msgid "<b>Bit Depth</b>"
+#~ msgstr "<b>Taxa:</b>"
+
+#~ msgid ""
+#~ "All streams will be converted to this bit depth.\n"
+#~ "This should be the max supported bit depth of\n"
+#~ "the sound card or output plugin."
+#~ msgstr ""
+#~ "Todas as streams serão convertidas tamanho.\n"
+#~ "Este deve ser o tamaho máximo suportado\n"
+#~ "pela placa de som ou plugin de saída"
+
+#~ msgid "<b>Volume Control</b>"
+#~ msgstr "<b>Controle de Volume</b>"
+
+#, fuzzy
+#~ msgid ""
+#~ "Use software volume control. This may be useful for situations where your "
+#~ "audio system does not support controlling the playback volume."
+#~ msgstr ""
+#~ "Use software para controle de volume. Isto pode ser útil para situações "
+#~ "onde seu sistema de áudio não suporta controlar o volume de reprodução."
+
+#, fuzzy
+#~ msgid "<b>Mode</b>"
+#~ msgstr "<b>TAGs</b>"
+
+#, fuzzy
+#~ msgid "<b>Clipping Prevention</b>"
+#~ msgstr "<b>Informações Popup</b>"
+
+#, fuzzy
+#~ msgid "Enable clipping prevention"
+#~ msgstr "Habilitar prevenção de clipping"
+
+#~ msgid "<b>Audio System</b>"
+#~ msgstr "<b>Sistema de Áudio</b>"
+
+#~ msgid "Current output plugin:"
+#~ msgstr "Plugin de saída atual:"
+
+#~ msgid "Display all open Audacious windows"
+#~ msgstr "Mostrar janelas abertas do Audacious"
 
 #~ msgid "%s: Unable to open display, exiting.\n"
 #~ msgstr "%s: Erro ao abrir exibidor, abortando.\n"
@@ -1745,9 +1741,6 @@ msgstr "Mostrar decoração de janelas do gerenciador de janelas"
 #~ msgid "No input plugin recognized this file"
 #~ msgstr "Nenhum plugin de entrada reconheceu este arquivo"
 
-#~ msgid "Input plugin: %s"
-#~ msgstr "Plugin de entrada: %s"
-
 #~ msgid ""
 #~ "<b><big>No output plugin selected.</big></b>\n"
 #~ "You have not selected an output plugin."
@@ -1790,9 +1783,6 @@ msgstr "Mostrar decoração de janelas do gerenciador de janelas"
 #~ "Provavelmente é a taxa de amostragem máxima suportada\n"
 #~ "pela placa de som ou pelo plugin de saída.</span>"
 
-#~ msgid "<b>Format Detection</b>"
-#~ msgstr "<b>Detecção de Formato</b>"
-
 #~ msgid "Detect file formats by extension."
 #~ msgstr "Detectar formatos dos arquivos pela extenção."
 
@@ -1891,9 +1881,6 @@ msgstr "Mostrar decoração de janelas do gerenciador de janelas"
 #~ msgid "Load metadata (tag information) from music files."
 #~ msgstr "Carregar TAGs dos arquivos."
 
-#~ msgid "Jump to Time"
-#~ msgstr "Avançar Tempo até"
-
 #~ msgid "minutes:seconds"
 #~ msgstr "minutos:segundos"
 
diff --git a/po/pt_PT.po b/po/pt_PT.po
index 2add3e7..1890c14 100644
--- a/po/pt_PT.po
+++ b/po/pt_PT.po
@@ -1,22 +1,36 @@
-# Portuguese translation of audacious
-# Copyright (C) 2010 Pitxyoki <pitxyoki at gmail.com>
-# This file is distributed under the same license as the audacious package.
-# Luís Picciochi <Pitxyoki at gmail.com>, 2010.
+# Portuguese translation for Audacious
+# Copyright (C) Audacious translators
+# This file is distributed under the same license as the Audacious package.
 #
+# Translators:
+# Luís Picciochi <Pitxyoki at gmail.com>, 2010.
+# Valter Vicente <souobadaro at gmail.com>, 2011.
 msgid ""
 msgstr ""
-"Project-Id-Version: pt_PT\n"
-"Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
-"PO-Revision-Date: 2010-02-14 01:34+0000\n"
-"Last-Translator: Luís Picciochi <Pitxyoki at gmail.com>\n"
-"Language-Team: Portuguese <traduz at debianpt.org>\n"
-"Language: pt\n"
+"Project-Id-Version: Audacious\n"
+"Report-Msgid-Bugs-To: http://jira.atheme.org/browse/AUD\n"
+"POT-Creation-Date: 2011-10-19 21:32-0400\n"
+"PO-Revision-Date: 2011-11-06 02:19+0000\n"
+"Last-Translator: valtervicente <souobadaro at gmail.com>\n"
+"Language-Team: Portuguese\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Language: pt_PT\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+
+#: src/audacious/adder.c:71
+msgid "Searching ..."
+msgstr "À procura..."
 
-#: src/audacious/chardet.c:37
+#: src/audacious/adder.c:97
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] "um: %d ficheiro encontrado"
+msgstr[1] "outro: %d ficheiros encontrados"
+
+#: src/audacious/chardet.c:38
 msgid "  (invalid UTF-8)"
 msgstr "  (UTF-8 inválido)"
 
@@ -49,9 +63,8 @@ msgid "BMP Developers:"
 msgstr "Programadores do BMP:"
 
 #: src/audacious/credits.c:180
-#, fuzzy
 msgid "Belarusian:"
-msgstr "Búlgaro:"
+msgstr "Bielorrusso"
 
 #: src/audacious/credits.c:183
 msgid "Basque:"
@@ -61,232 +74,220 @@ msgstr "Basco:"
 msgid "Brazilian Portuguese:"
 msgstr "Português do Brasil:"
 
-#: src/audacious/credits.c:190
+#: src/audacious/credits.c:191
 msgid "Breton:"
 msgstr "Bretão:"
 
-#: src/audacious/credits.c:193
+#: src/audacious/credits.c:194
 msgid "Bulgarian:"
 msgstr "Búlgaro:"
 
-#: src/audacious/credits.c:196
+#: src/audacious/credits.c:197
 msgid "Catalan:"
 msgstr "Catalão:"
 
-#: src/audacious/credits.c:199
-#, fuzzy
+#: src/audacious/credits.c:200
 msgid "Chinese:"
 msgstr "Chinês"
 
-#: src/audacious/credits.c:202
+#: src/audacious/credits.c:203
 msgid "Croatian:"
 msgstr "Croata:"
 
-#: src/audacious/credits.c:205
+#: src/audacious/credits.c:206
 msgid "Czech:"
 msgstr "Checo:"
 
-#: src/audacious/credits.c:208
+#: src/audacious/credits.c:209
 msgid "Dutch:"
 msgstr "Holandês:"
 
-#: src/audacious/credits.c:212
+#: src/audacious/credits.c:213
 msgid "Estonian:"
 msgstr "Estónio:"
 
-#: src/audacious/credits.c:215
+#: src/audacious/credits.c:216
 msgid "Finnish:"
 msgstr "Finlandês:"
 
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:221
 msgid "French:"
 msgstr "Francês:"
 
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:227
 msgid "German:"
 msgstr "Alemão:"
 
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:234
 msgid "Georgian:"
 msgstr "Georgiano:"
 
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:237
 msgid "Greek:"
 msgstr "Grego:"
 
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:242
 msgid "Hindi:"
 msgstr "Hindi:"
 
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:245
 msgid "Hungarian:"
 msgstr "Húngaro:"
 
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:249
 msgid "Italian:"
 msgstr "Italiano:"
 
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:253
 msgid "Japanese:"
 msgstr "Japonês:"
 
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:256
 msgid "Korean:"
 msgstr "Coreano:"
 
-#: src/audacious/credits.c:256
-#, fuzzy
+#: src/audacious/credits.c:259
 msgid "Latvian:"
-msgstr "Croata:"
+msgstr "Letão"
 
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:262
 msgid "Lithuanian:"
 msgstr "Lituano:"
 
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:267
 msgid "Macedonian:"
 msgstr "Macedónio:"
 
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:270
 msgid "Polish:"
 msgstr "Polaco:"
 
-#: src/audacious/credits.c:271
-#, fuzzy
+#: src/audacious/credits.c:276
 msgid "Portuguese:"
-msgstr "Português do Brasil:"
+msgstr "Português"
 
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:279
 msgid "Romanian:"
 msgstr "Romeno:"
 
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:283
 msgid "Russian:"
 msgstr "Russo:"
 
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:287
 msgid "Serbian (Latin):"
 msgstr "Sérvio (Latino):"
 
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:290
 msgid "Serbian (Cyrillic):"
 msgstr "Sérvio (Cirílico):"
 
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:293
 msgid "Simplified Chinese:"
 msgstr "Chinês Simplificado:"
 
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:296
 msgid "Slovak:"
 msgstr "Eslovaco:"
 
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:299
 msgid "Spanish:"
 msgstr "Espanhol:"
 
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:306
 msgid "Swedish:"
 msgstr "Sueco:"
 
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:309
 msgid "Traditional Chinese:"
 msgstr "Chinês Tradicional:"
 
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:315
 msgid "Turkish:"
 msgstr "Turco:"
 
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:319
 msgid "Ukrainian:"
 msgstr "Ucraniano:"
 
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:323
+msgid "Vietnamese:"
+msgstr "Vietnamita"
+
+#: src/audacious/credits.c:326
 msgid "Welsh:"
 msgstr "Galês:"
 
-#: src/audacious/drct.c:254
-#, fuzzy
+#: src/audacious/drct.c:234
 msgid "Temporary Playlist"
-msgstr "Passar à frente na lista de reprodução"
+msgstr "Lista de reprodução temporária"
 
 #: src/audacious/equalizer_preset.c:186
 #, c-format
 msgid "Error importing Winamp EQF file '%s'"
 msgstr "Erro ao importar ficheiro EQF do Winamp '%s'"
 
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr ""
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/audacious/main.c:247
+#: src/audacious/main.c:239
 msgid "Skip backwards in playlist"
 msgstr "Saltar para trás na lista de reprodução"
 
-#: src/audacious/main.c:248
+#: src/audacious/main.c:240
 msgid "Start playing current playlist"
 msgstr "Começar a reproduzir a lista de reprodução actual"
 
-#: src/audacious/main.c:249
+#: src/audacious/main.c:241
 msgid "Pause current song"
 msgstr "Colocar faixa actual em pausa"
 
-#: src/audacious/main.c:250
+#: src/audacious/main.c:242
 msgid "Stop current song"
 msgstr "Parar faixa actual"
 
-#: src/audacious/main.c:251
+#: src/audacious/main.c:243
 msgid "Pause if playing, play otherwise"
 msgstr "Colocar em pausa se estiver a reproduzir. Caso contrário, reproduzir"
 
-#: src/audacious/main.c:252
+#: src/audacious/main.c:244
 msgid "Skip forward in playlist"
 msgstr "Passar à frente na lista de reprodução"
 
-#: src/audacious/main.c:253
+#: src/audacious/main.c:245
 msgid "Display Jump to File dialog"
 msgstr "Mostrar diálogo 'Ir Para Faixa'"
 
-#: src/audacious/main.c:254
-#, fuzzy
+#: src/audacious/main.c:246
 msgid "Add files to the playlist"
-msgstr "Adicionar novos ficheiros a uma lista de reprodução temporária"
+msgstr "Adicionar ficheiros à lista de reprodução"
 
-#: src/audacious/main.c:255
+#: src/audacious/main.c:247
 msgid "Add new files to a temporary playlist"
 msgstr "Adicionar novos ficheiros a uma lista de reprodução temporária"
 
-#: src/audacious/main.c:256
+#: src/audacious/main.c:248
 msgid "Display the main window"
 msgstr "Mostrar a janela principal"
 
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr "Mostrar todas as janelas do Audacious"
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:249
 msgid "Show version"
 msgstr "Mostrar versão"
 
-#: src/audacious/main.c:259
+#: src/audacious/main.c:250
 msgid "Print debugging messages"
-msgstr ""
+msgstr "Imprimir mensagens de depuração"
+
+#: src/audacious/main.c:251
+msgid "Headless mode (beta)"
+msgstr "Modo headless (beta)"
 
-#: src/audacious/main.c:260
+#: src/audacious/main.c:252
 msgid "FILE..."
 msgstr "FICHEIRO..."
 
-#: src/audacious/main.c:272
+#: src/audacious/main.c:264
 msgid "- play multimedia files"
 msgstr "- reproduzir ficheiros multimédia"
 
-#: src/audacious/main.c:282
+#: src/audacious/main.c:274
 #, c-format
 msgid ""
 "%s: %s\n"
@@ -295,97 +296,89 @@ msgstr ""
 "%s: %s\n"
 "Tente `%s --help' para mais informações.\n"
 
-#: src/audacious/main.c:395
-msgid ""
-"Audacious seems to be already running but is not responding.  You can start "
-"another instance of the program, but please be warned that this can cause "
-"data loss.  If Audacious is not running, you can safely ignore this "
-"message.  Press OK to start Audacious or Cancel to quit."
-msgstr ""
-
-#: src/audacious/main.c:558
+#: src/audacious/main.c:547
 msgid "Audacious"
 msgstr "Audacious"
 
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:303
 #, c-format
 msgid "No decoder found for %s."
-msgstr ""
-
-#: src/audacious/playback.c:519
-msgid "Buffering ..."
-msgstr ""
+msgstr "Descodificador não encontrado para %s."
 
-#: src/audacious/playlist-new.c:288
+#: src/audacious/playlist-new.c:315
 msgid "Untitled Playlist"
 msgstr "Lista de Reprodução Sem Título"
 
+#: src/audacious/playlist-new.c:1496
+msgid ""
+"The playlist cannot be sorted because metadata scanning is still in progress"
+" (or has been disabled)."
+msgstr ""
+"A lista de reprodução não pode ser ordenada porque a análise de metadados "
+"ainda está a decorrer (ou está desabilitada)."
+
 #: src/audacious/ui_preferences.c:88
 msgid "Audio"
 msgstr "Áudio"
 
 #: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
-msgstr "Replay Gain"
-
-#: src/audacious/ui_preferences.c:90
 msgid "Network"
-msgstr ""
+msgstr "Rede"
 
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:90 src/audacious/ui_preferences.c:1634
 msgid "Playlist"
 msgstr "Lista de Reprodução"
 
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:91
 msgid "Plugins"
 msgstr "Plugins"
 
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:97 src/libaudgui/infopopup.c:203
 msgid "Artist"
 msgstr "Artista"
 
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:205
 msgid "Album"
 msgstr "Álbum"
 
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:201
+#: src/libaudgui/ui_playlist_manager.c:276
 msgid "Title"
 msgstr "Título"
 
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:100
 msgid "Tracknumber"
 msgstr "Número da Faixa"
 
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:101 src/libaudgui/infopopup.c:207
 msgid "Genre"
 msgstr "Género"
 
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:102
 msgid "Filename"
 msgstr "Nome do Ficheiro"
 
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:103
 msgid "Filepath"
 msgstr "Caminho para o Ficheiro"
 
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:104
 msgid "Date"
 msgstr "Data"
 
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:105 src/libaudgui/infopopup.c:209
 msgid "Year"
 msgstr "Ano"
 
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:106
 msgid "Comment"
 msgstr "Comentário"
 
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:107
 msgid "Codec"
 msgstr "Codec"
 
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:108
 msgid "Quality"
 msgstr "Qualidade"
 
@@ -394,236 +387,202 @@ msgid "None"
 msgstr "Nenhum"
 
 #: src/audacious/ui_preferences.c:115
-msgid "Japanese"
-msgstr "Japonês"
+msgid "Arabic"
+msgstr "Árabe"
 
 #: src/audacious/ui_preferences.c:116
-msgid "Taiwanese"
-msgstr "Taiwanês"
+msgid "Baltic"
+msgstr "Báltico"
 
 #: src/audacious/ui_preferences.c:117
 msgid "Chinese"
 msgstr "Chinês"
 
 #: src/audacious/ui_preferences.c:118
-msgid "Korean"
-msgstr "Coreano"
+msgid "Greek"
+msgstr "Grego"
 
 #: src/audacious/ui_preferences.c:119
-msgid "Russian"
-msgstr "Russo"
+msgid "Hebrew"
+msgstr "Hebreu"
 
 #: src/audacious/ui_preferences.c:120
-msgid "Greek"
-msgstr "Grego"
+msgid "Japanese"
+msgstr "Japonês"
 
 #: src/audacious/ui_preferences.c:121
-msgid "Hebrew"
-msgstr "Hebreu"
+msgid "Korean"
+msgstr "Coreano"
 
 #: src/audacious/ui_preferences.c:122
-msgid "Turkish"
-msgstr "Turco"
+msgid "Polish"
+msgstr "Polaco"
 
 #: src/audacious/ui_preferences.c:123
-msgid "Arabic"
-msgstr "Árabe"
+msgid "Russian"
+msgstr "Russo"
 
 #: src/audacious/ui_preferences.c:124
-#, fuzzy
-msgid "Polish"
-msgstr "Polaco:"
+msgid "Taiwanese"
+msgstr "Taiwanês"
 
 #: src/audacious/ui_preferences.c:125
-#, fuzzy
-msgid "Baltic"
-msgstr "Celta"
-
-#: src/audacious/ui_preferences.c:126
-msgid "Universal"
-msgstr "Universal"
-
-#: src/audacious/ui_preferences.c:146
-msgid "<b>Bit Depth</b>"
-msgstr "<b>Bit Depth</b>"
+msgid "Turkish"
+msgstr "Turco"
 
 #: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr "Bits depth da saída:"
-
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
-"Todas as streams serão convertidas para este bit depth.\n"
-"Este deve corresponder ao bit depth máximo suportado\n"
-"pela placa de som ou pelo plugin de saída."
+msgid "Album mode"
+msgstr "Modo de álbum"
 
-#: src/audacious/ui_preferences.c:151
-msgid "<b>Volume Control</b>"
-msgstr "<b>Controlo de Volume</b>"
+#: src/audacious/ui_preferences.c:150
+msgid "<b>Output Settings</b>"
+msgstr "<b>Definições de Saída</b>"
 
 #: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr "Utilizar controlo de volume por software"
+msgid "Bit depth:"
+msgstr "Profundidade de bit:"
 
-#: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
-"Utilizar controlo de volume por software. Isto pode ser útil em situações em "
-"que o seu sistema de som não suporte o controlo do volume de reprodução."
+#: src/audacious/ui_preferences.c:155
+msgid "Buffer size:"
+msgstr "Tamanho do buffer:"
 
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
-msgstr ""
+#: src/audacious/ui_preferences.c:157
+msgid "ms"
+msgstr "ms"
 
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
-msgstr "dB"
+#: src/audacious/ui_preferences.c:158
+msgid "Use software volume control (not recommended)"
+msgstr "Usar software de controlo de volume (não recomendado)"
 
 #: src/audacious/ui_preferences.c:160
-#, fuzzy
-msgid "Amplify untagged files:"
-msgstr "- reproduzir ficheiros multimédia"
-
-#: src/audacious/ui_preferences.c:164
-#, fuzzy
 msgid "<b>Replay Gain</b>"
-msgstr "<b>Modo Replay Gain</b>"
+msgstr "<b>Ganho de Reprodução</b>"
 
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:161
 msgid "Enable Replay Gain"
 msgstr "Activar Replay Gain"
 
+#: src/audacious/ui_preferences.c:164
+msgid "Prevent clipping (recommended)"
+msgstr "Prevenir recortar (recomendado)"
+
+#: src/audacious/ui_preferences.c:166
+msgid "<b>Adjust Levels</b>"
+msgstr "<b>Ajustar níveis</b>"
+
 #: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>Metadados</b>"
+msgid "Amplify all files:"
+msgstr "Amplificar todos os ficheiros:"
 
-#: src/audacious/ui_preferences.c:168
-msgid "Single track mode"
-msgstr ""
+#: src/audacious/ui_preferences.c:169 src/audacious/ui_preferences.c:172
+msgid "dB"
+msgstr "dB"
 
 #: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "Álbum"
-
-#: src/audacious/ui_preferences.c:172
-#, fuzzy
-msgid "<b>Adjust Levels</b>"
-msgstr "<b>Avançado</b>"
+msgid "Amplify untagged files:"
+msgstr "Amplificar ficheiros sem etiquetas:"
 
 #: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "<b>Informação das Dicas</b>"
-
-#: src/audacious/ui_preferences.c:176
-#, fuzzy
-msgid "Enable clipping prevention"
-msgstr "Activar prevenção de clipping de picos de informação"
-
-#: src/audacious/ui_preferences.c:180
 msgid "Proxy hostname:"
 msgstr "Nome de máquina do proxy:"
 
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:176
 msgid "Proxy port:"
 msgstr "Porto do Proxy:"
 
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:179
 msgid "Proxy username:"
 msgstr "Nome de utilizador do proxy:"
 
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:180
 msgid "Proxy password:"
 msgstr "Palavra-passe do proxy:"
 
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:184
 msgid "<b>Proxy Configuration</b>"
 msgstr "<b>Configuração de Proxy</b>"
 
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:185
 msgid "Enable proxy usage"
 msgstr "Activar utilização de proxy"
 
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:188
 msgid "Use authentication with proxy"
 msgstr "Utilizar autenticação no proxy"
 
-#: src/audacious/ui_preferences.c:197
-msgid ""
-"<span size=\"small\">Changing these settings will require a restart of "
-"Audacious.</span>"
-msgstr ""
-"<span size=\"small\">Será necessário reiniciar o Audacious depois de alterar "
-"estas opções.</span>"
-
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:196
 msgid "Auto character encoding detector for:"
 msgstr "Detectar codificação de caracteres automaticamente para:"
 
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
 msgid "Fallback character encodings:"
 msgstr "Recurso para codificações de caracteres:"
 
-#: src/audacious/ui_preferences.c:209
-msgid ""
-"List of character encodings used for fall back conversion of metadata. If "
-"automatic character encoding detector failed or has been disabled, encodings "
-"in this list would be treated as candidates of the encoding of metadata, and "
-"fall back conversion from these encodings to UTF-8 would be attempted."
-msgstr ""
-"Lista de codificações de caracteres utilizada como recurso na conversão de "
-"metadados. Se o detector automático de codificação de caracteres falhar ou "
-"tiver sido desactivado, as codificações nesta lista serão tratadas como "
-"candidatas para a codificação de metadados e será tentada uma conversão de "
-"recurso destas codificações para UTF-8."
-
-#: src/audacious/ui_preferences.c:213
-#, fuzzy
+#: src/audacious/ui_preferences.c:205
 msgid "<b>Behavior</b>"
-msgstr "<b>Bit Depth</b>"
+msgstr "<b>Comportamento</b>"
 
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:206
 msgid "Continue playback on startup"
 msgstr "Continuar a reprodução no arranque"
 
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:208
 msgid "Advance when the current song is deleted"
-msgstr ""
+msgstr "Avançar quando a música actual é removida"
 
-#: src/audacious/ui_preferences.c:218
+#: src/audacious/ui_preferences.c:210
 msgid "Clear the playlist when opening files"
-msgstr ""
+msgstr "Apagar a lista de reprodução quando abrir ficheiros"
 
-#: src/audacious/ui_preferences.c:220
-#, fuzzy
+#: src/audacious/ui_preferences.c:212
 msgid "Open files in a temporary playlist"
-msgstr "Adicionar novos ficheiros a uma lista de reprodução temporária"
+msgstr "Abrir ficheiros numa lista de reprodução temporária"
 
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:214
 msgid "<b>Metadata</b>"
 msgstr "<b>Metadados</b>"
 
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:215
+msgid "Do not load metadata for songs until played"
+msgstr "Não carregar metadados da música até ser tocada"
+
+#: src/audacious/ui_preferences.c:233
+msgid "TITLE"
+msgstr "TÍTULO"
+
+#: src/audacious/ui_preferences.c:234
+msgid "ARTIST - TITLE"
+msgstr "ARTISTA - TÍTULO"
+
+#: src/audacious/ui_preferences.c:235
+msgid "ARTIST - ALBUM - TITLE"
+msgstr "ARTISTA - ÁLBUM - TÍTULO"
+
+#: src/audacious/ui_preferences.c:236
+msgid "ARTIST - ALBUM - TRACK. TITLE"
+msgstr "ARTISTA - ÁLBUM - FAIXA - TÍTULO"
+
+#: src/audacious/ui_preferences.c:237
+msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
+msgstr "ARTISTA [ ÁLBUM ] - FAIXA. TÍTULO"
+
+#: src/audacious/ui_preferences.c:238
+msgid "ALBUM - TITLE"
+msgstr "ÁLBUM - TÍTULO"
+
+#: src/audacious/ui_preferences.c:577
 msgid "Category"
 msgstr "Categoria"
 
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:801
 msgid "Popup Information Settings"
 msgstr "Definições de Dicas de Informação"
 
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:810
 msgid "<b>Cover image retrieve</b>"
 msgstr "<b>Obtenção de imagem da capa</b>"
 
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:815
 msgid ""
 "While searching for the album's cover, Audacious looks for certain words in "
 "the filename. You can specify those words in the lists below, separated "
@@ -633,99 +592,75 @@ msgstr ""
 "nomes dos ficheiros. Pode especificar estas palavras na lista abaixo, "
 "separadas por vírgulas."
 
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:832
 msgid "Exclude:"
 msgstr "Excluir:"
 
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:839
 msgid "Include:"
 msgstr "Incluir:"
 
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:856
 msgid "Recursively search for cover"
 msgstr "Pesquisar capa recursivamente"
 
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:866
 msgid "Search depth: "
 msgstr "Profundidade da pesquisa: "
 
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:880
 msgid "Use per-file cover"
 msgstr "Utilizar capa por ficheiro"
 
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:883
 msgid "<b>Miscellaneous</b>"
 msgstr "<b>Miscelânea</b>"
 
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:892
 msgid "Show Progress bar for the current track"
 msgstr "Mostrar barra de progresso para a faixa actual"
 
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:902
 msgid "Delay until filepopup comes up: "
 msgstr "Atraso para o aparecimento da informação do ficheiro: "
 
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1340
+msgid "Custom"
+msgstr "Personalizado"
+
+#: src/audacious/ui_preferences.c:1383
 msgid "<b>Song Display</b>"
 msgstr "<b>Apresentação de Faixas</b>"
 
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1392
 msgid "Show song numbers"
 msgstr "Mostrar números das faixas"
 
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1403
 msgid "Show leading zeroes (02:00 instead of 2:00)"
-msgstr ""
+msgstr "Mostrar zeros (02:00 em vez de 2:00)"
 
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1425
 msgid "Show information about titlestring format"
 msgstr "Mostrar informação acerca do formato do título"
 
-#: src/audacious/ui_preferences.c:1514
-msgid "TITLE"
-msgstr "TÍTULO"
-
-#: src/audacious/ui_preferences.c:1515
-msgid "ARTIST - TITLE"
-msgstr "ARTISTA - TÍTULO"
-
-#: src/audacious/ui_preferences.c:1516
-msgid "ARTIST - ALBUM - TITLE"
-msgstr "ARTISTA - ÁLBUM - TÍTULO"
-
-#: src/audacious/ui_preferences.c:1517
-msgid "ARTIST - ALBUM - TRACK. TITLE"
-msgstr "ARTISTA - ÁLBUM - FAIXA - TÍTULO"
-
-#: src/audacious/ui_preferences.c:1518
-msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
-msgstr "ARTISTA [ ÁLBUM ] - FAIXA. TÍTULO"
-
-#: src/audacious/ui_preferences.c:1519
-msgid "ALBUM - TITLE"
-msgstr "ÁLBUM - TÍTULO"
-
-#: src/audacious/ui_preferences.c:1520
-msgid "Custom"
-msgstr "Personalizado"
-
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1441
 msgid "Custom string:"
 msgstr "String de Personalização:"
 
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1448
 msgid "Title format:"
 msgstr "Formato do título:"
 
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1459
 msgid "<b>Popup Information</b>"
 msgstr "<b>Informação das Dicas</b>"
 
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1474
 msgid "Show popup information for playlist entries"
 msgstr "Mostrar dicas com informação nas entradas da lista de reprodução"
 
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1475
 msgid ""
 "Toggles popup information window for the pointed entry in the playlist. The "
 "window shows title of song, name of album, genre, year of publish, track "
@@ -735,55 +670,44 @@ msgstr ""
 "reprodução. A janela mostra o título da faixa, o nome do álbum, género, ano "
 "de publicação, número da faixa, tamanho da faixa e a capa."
 
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1486
 msgid "Edit settings for popup information"
 msgstr "Editar definições para dica de informação"
 
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>Sistema de Som</b>"
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "Tamanho do buffer:"
-
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
-msgstr "Plugin de saída actual:"
+#: src/audacious/ui_preferences.c:1575
+msgid "Output plugin:"
+msgstr "Plugin de saída:"
 
-#: src/audacious/ui_preferences.c:1790
-#, fuzzy
+#: src/audacious/ui_preferences.c:1634
 msgid "Transport"
-msgstr "Tradutores"
+msgstr "Transporte"
 
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1634
 msgid "Input"
-msgstr ""
+msgstr "Entrada"
 
-#: src/audacious/ui_preferences.c:1791
-#, fuzzy
+#: src/audacious/ui_preferences.c:1635
 msgid "Effect"
-msgstr "<b>Efeitos</b>"
+msgstr "Efeito"
 
-#: src/audacious/ui_preferences.c:1791
-#, fuzzy
+#: src/audacious/ui_preferences.c:1635
 msgid "Visualization"
-msgstr "<b>Visualização</b>"
+msgstr "Visualização"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1635
 msgid "General"
-msgstr ""
+msgstr "Geral"
 
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1675
 msgid "Audacious Preferences"
 msgstr "Preferências do Audacious"
 
-#: src/audacious/util.c:161
+#: src/audacious/util.c:123
 #, c-format
 msgid "Could not create directory (%s): %s\n"
 msgstr "Não foi possível criar directoria (%s): %s\n"
 
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:274
 msgid "Position not found."
 msgstr "Posição não encontrada."
 
@@ -793,96 +717,97 @@ msgstr "Nenhuma música em reprodução."
 
 #: src/libaudcore/tuple.c:685
 msgid "Mono"
-msgstr ""
+msgstr "Mono"
 
 #: src/libaudcore/tuple.c:687
 msgid "Stereo"
-msgstr ""
+msgstr "Stereo"
 
 #: src/libaudcore/tuple.c:689
 #, c-format
-msgid "%d channels"
-msgstr ""
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] "um: %d canal"
+msgstr[1] "outro: %d canais"
 
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/confirm.c:78
 #, c-format
 msgid ""
 "Are you sure you want to close %s?  If you do, any changes made since the "
 "playlist was exported will be lost."
 msgstr ""
+"Tem a certeza que quer fechar %s? Se sim, todas as modificações feitas desde"
+" que a lista de reprodução foi exportada serão perdidas."
 
-#: src/libaudgui/confirm.c:77
+#: src/libaudgui/confirm.c:91
 msgid "_Don't show this message again"
-msgstr ""
+msgstr "_Não mostrar esta mensagem novamente"
 
-#: src/libaudgui/confirm.c:115
-#, fuzzy
+#: src/libaudgui/confirm.c:128
 msgid "Rename Playlist"
-msgstr "Lista de Reprodução"
+msgstr "Renomear lista de reprodução"
 
 #: src/libaudgui/effects-menu.c:76
 msgid "settings ..."
-msgstr ""
+msgstr "definições..."
 
-#: src/libaudgui/equalizer.c:68
-#, fuzzy
+#: src/libaudgui/equalizer.c:52
 msgid "_Enable"
-msgstr "Activado"
+msgstr "_Activar"
 
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:124
 msgid "31 Hz"
-msgstr ""
+msgstr "31 Hz"
 
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:124
 msgid "63 Hz"
-msgstr ""
+msgstr "63 Hz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:125
 msgid "125 Hz"
-msgstr ""
+msgstr "125 Hz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:125
 msgid "250 Hz"
-msgstr ""
+msgstr "250 Hz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:125
 msgid "500 Hz"
-msgstr ""
+msgstr "500 Hz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:125
 msgid "1 kHz"
-msgstr ""
+msgstr "1 kHz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:125
 msgid "2 kHz"
-msgstr ""
+msgstr "2 kHz"
 
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:126
 msgid "4 kHz"
-msgstr ""
+msgstr "4 kHz"
 
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:126
 msgid "8 kHz"
-msgstr ""
+msgstr "8 kHz"
 
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:126
 msgid "16 kHz"
-msgstr ""
+msgstr "16 kHz"
 
-#: src/libaudgui/equalizer.c:147
+#: src/libaudgui/equalizer.c:131
 msgid "Equalizer"
-msgstr ""
+msgstr "Equalizador"
 
-#: src/libaudgui/equalizer.c:163
-#, fuzzy
+#: src/libaudgui/equalizer.c:147
 msgid "Preamp"
-msgstr "Pré-amplificação:"
+msgstr "Pré-Amplificador"
 
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:211
 msgid "Track Number"
 msgstr "Número da Faixa"
 
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:213
 msgid "Track Length"
 msgstr "Tamanho da Faixa"
 
@@ -891,18 +816,16 @@ msgid "Acid Jazz"
 msgstr "Acid Jazz"
 
 #: src/libaudgui/infowin.c:78
-#, fuzzy
 msgid "Acid Rock"
-msgstr "Hard Rock"
+msgstr "Acid Rock"
 
 #: src/libaudgui/infowin.c:79
 msgid "Ambient"
 msgstr "Ambiente"
 
 #: src/libaudgui/infowin.c:80
-#, fuzzy
 msgid "Bebop"
-msgstr "Bebob"
+msgstr "Bebop"
 
 #: src/libaudgui/infowin.c:81
 msgid "Bluegrass"
@@ -965,9 +888,8 @@ msgid "Heavy Metal"
 msgstr "Heavy Metal"
 
 #: src/libaudgui/infowin.c:96
-#, fuzzy
 msgid "Hip-hop"
-msgstr "Hip-Hop"
+msgstr "Hip-hop"
 
 #: src/libaudgui/infowin.c:97
 msgid "House"
@@ -1018,13 +940,12 @@ msgid "Rock"
 msgstr "Rock"
 
 #: src/libaudgui/infowin.c:109
-#, fuzzy
 msgid "Rock and Roll"
-msgstr "Rock & Roll"
+msgstr "Rock and Roll"
 
 #: src/libaudgui/infowin.c:110
 msgid "Rhythm and Blues"
-msgstr ""
+msgstr "Rhythm and Blues"
 
 #: src/libaudgui/infowin.c:111
 msgid "Ska"
@@ -1043,9 +964,8 @@ msgid "Techno"
 msgstr "Tecno"
 
 #: src/libaudgui/infowin.c:115
-#, fuzzy
 msgid "Trip-hop"
-msgstr "Trip-Hop"
+msgstr "Trip-hop"
 
 #: src/libaudgui/infowin.c:175 src/libaudgui/infowin.c:361
 #: src/libaudgui/infowin.c:364 src/libaudgui/infowin.c:367
@@ -1112,13 +1032,38 @@ msgstr "%d kb/s"
 #: src/libaudgui/infowin.c:579
 #, c-format
 msgid "No info available for %s.\n"
-msgstr ""
+msgstr "Nenhuma informação disponível para %s.\n"
 
-#: src/libaudgui/ui_about.c:71
+#: src/libaudgui/jump-to-time.c:75
+msgid "Jump to Time"
+msgstr "Saltar para tempo"
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr "mm: ss"
+
+#: src/libaudgui/playlists.c:39
+msgid "Export Playlist"
+msgstr "Exportar lista de reprodução"
+
+#: src/libaudgui/playlists.c:39
+msgid "Import Playlist"
+msgstr "Importar lista de reprodução"
+
+#: src/libaudgui/playlists.c:72
+#, c-format
+msgid "Overwrite %s?"
+msgstr "Sobrepor %s?"
+
+#: src/libaudgui/queue-manager.c:185
+msgid "Queue Manager"
+msgstr "Gestor de fila"
+
+#: src/libaudgui/ui_about.c:69
 msgid "About Audacious"
 msgstr "Acerca do Audacious"
 
-#: src/libaudgui/ui_about.c:93 src/libaudgui/ui_credits.c:122
+#: src/libaudgui/ui_about.c:90 src/libaudgui/ui_credits.c:122
 msgid "Credits"
 msgstr "Créditos"
 
@@ -1126,80 +1071,86 @@ msgstr "Créditos"
 msgid "Translators"
 msgstr "Tradutores"
 
-#: src/libaudgui/ui_fileopener.c:108
+#: src/libaudgui/ui_fileopener.c:109
 msgid "Open Files"
 msgstr "Abrir Ficheiros"
 
-#: src/libaudgui/ui_fileopener.c:108
+#: src/libaudgui/ui_fileopener.c:109
 msgid "Add Files"
 msgstr "Adicionar Ficheiros"
 
-#: src/libaudgui/ui_fileopener.c:110
+#: src/libaudgui/ui_fileopener.c:111
 msgid "Close dialog on Open"
 msgstr "Fechar caixa de diálogo depois de Abrir"
 
-#: src/libaudgui/ui_fileopener.c:110
+#: src/libaudgui/ui_fileopener.c:111
 msgid "Close dialog on Add"
 msgstr "Fechar caixa de diálogo depois de Adicionar"
 
-#: src/libaudgui/ui_jumptotrack.c:133
-msgid "Un_queue"
-msgstr "_Retirar da Fila"
-
-#: src/libaudgui/ui_jumptotrack.c:135 src/libaudgui/ui_jumptotrack.c:512
+#: src/libaudgui/ui_jumptotrack.c:103 src/libaudgui/ui_jumptotrack.c:111
+#: src/libaudgui/ui_jumptotrack.c:322
 msgid "_Queue"
 msgstr "_Colocar na Fila"
 
-#: src/libaudgui/ui_jumptotrack.c:399
+#: src/libaudgui/ui_jumptotrack.c:109
+msgid "Un_queue"
+msgstr "_Retirar da Fila"
+
+#: src/libaudgui/ui_jumptotrack.c:239
 msgid "Jump to Track"
 msgstr "Ir Para Faixa"
 
-#: src/libaudgui/ui_jumptotrack.c:442
+#: src/libaudgui/ui_jumptotrack.c:277
 msgid "Filter: "
 msgstr "Filtro: "
 
-#: src/libaudgui/ui_jumptotrack.c:443
+#: src/libaudgui/ui_jumptotrack.c:278
 msgid "_Filter:"
 msgstr "_Filtro:"
 
-#: src/libaudgui/ui_jumptotrack.c:461
+#: src/libaudgui/ui_jumptotrack.c:288
 msgid "Remember"
 msgstr "Lembrar"
 
-#: src/libaudgui/ui_jumptotrack.c:470
+#: src/libaudgui/ui_jumptotrack.c:295
 msgid "Clea_r"
 msgstr "Limpa_r"
 
-#: src/libaudgui/ui_jumptotrack.c:504
+#: src/libaudgui/ui_jumptotrack.c:315
 msgid "Close on Jump"
 msgstr "Fechar ao ir para a faixa"
 
-#: src/libaudgui/ui_playlist_manager.c:185
-#, fuzzy
+#: src/libaudgui/ui_playlist_manager.c:250
 msgid "Playlist Manager"
-msgstr "Lista de Reprodução"
+msgstr "Gestor de lista de reprodução"
 
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:277
 msgid "Entries"
-msgstr ""
+msgstr "Entradas"
 
-#: src/libaudgui/ui_playlist_manager.c:227
-#, fuzzy
+#: src/libaudgui/ui_playlist_manager.c:298
 msgid "_Rename"
-msgstr "Nome do Ficheiro"
+msgstr "_Renomear"
 
-#: src/libaudgui/ui_playlist_manager.c:251
-#, fuzzy
+#: src/libaudgui/ui_playlist_manager.c:322
 msgid "_Close dialog on activating playlist"
-msgstr "Fechar caixa de diálogo depois de Abrir"
+msgstr "_Fechar diálogo de activação de lista de reprodução"
 
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:51
 msgid "Open URL"
-msgstr ""
+msgstr "Abrir URL"
 
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:51
 msgid "Add URL"
+msgstr "Adicionar URL"
+
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
 msgstr ""
+"\n"
+"(Mensagens adicionais foram escondidas.)"
 
 #: src/libeggsmclient/eggdesktopfile.c:165
 msgid "File is not a valid .desktop file"
@@ -1210,27 +1161,27 @@ msgstr "O ficheiro não é um ficheiro .desktop válido"
 msgid "Unrecognized desktop file Version '%s'"
 msgstr "Versão de ficheiro desktop desconhecida, '%s'"
 
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:967
 #, c-format
 msgid "Starting %s"
 msgstr "A iniciar %s"
 
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1108
 msgid "Application does not accept documents on command line"
 msgstr "A aplicação não aceita documentos na linha de comandos"
 
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1176
 #, c-format
 msgid "Unrecognized launch option: %d"
 msgstr "Opção de arranque desconhecida: %d"
 
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1375
 msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
 msgstr ""
 "Não é possível passar URIs de documentos para uma entrada de desktop "
 "'Type=Link'"
 
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1396
 msgid "Not a launchable item"
 msgstr "Não é um item iniciável"
 
@@ -1255,664 +1206,11 @@ msgid "ID"
 msgstr "ID"
 
 #: src/libeggsmclient/eggsmclient.c:253
-#, fuzzy
 msgid "Session management options:"
-msgstr "Opções de Gestão de Sessão"
+msgstr "Opções de gestão de sessão:"
 
 #: src/libeggsmclient/eggsmclient.c:254
-#, fuzzy
 msgid "Show session management options"
-msgstr "Mostrar Opções de Gestão de Sessão"
-
-#~ msgid "%s: Unable to open display, exiting.\n"
-#~ msgstr "%s: Impossível aceder ao ecrã, a terminar.\n"
-
-#~ msgid "Preamp:"
-#~ msgstr "Pré-amplificação:"
-
-#~ msgid "Default gain:"
-#~ msgstr "Ganho pré-definido:"
-
-#~ msgid "This gain will be used if file doesn't contain Replay Gain metadata."
-#~ msgstr ""
-#~ "Será usado este ganho se o ficheiro não contiver metadados para Replay "
-#~ "Gain."
-
-#~ msgid ""
-#~ "<span size=\"small\">Please remember that the most efficient way to "
-#~ "prevent signal clipping is not to use positive values above.</span>"
-#~ msgstr ""
-#~ "<span size=\"small\">Tenha em conta que a forma mais eficiente de evitar "
-#~ "<i>clipping</i> do sinal passa por evitar usar aqui valores positivos.</"
-#~ "span>"
-
-#~ msgid "<b>Replay Gain configuration</b>"
-#~ msgstr "<b>Configuração do Replay Gain</b>"
-
-#~ msgid "Track gain/peak"
-#~ msgstr "Ganho/pico da faixa"
-
-#~ msgid "Album gain/peak"
-#~ msgstr "Ganho/pico do álbum"
-
-#~ msgid "Use peak value from Replay Gain info for clipping prevention"
-#~ msgstr ""
-#~ "Utilizar valor de pico da informação do Replay Gain para prevenção de "
-#~ "clipping"
-
-#~ msgid "Classic Rock"
-#~ msgstr "Rock Clássico"
-
-#~ msgid "Dance"
-#~ msgstr "Dança"
-
-#~ msgid "Oldies"
-#~ msgstr "Clássicos"
-
-#~ msgid "Other"
-#~ msgstr "Outro"
-
-#~ msgid "R&B"
-#~ msgstr "R&B"
-
-#~ msgid "Industrial"
-#~ msgstr "Industrial"
-
-#~ msgid "Alternative"
-#~ msgstr "Alternativa"
-
-#~ msgid "Pranks"
-#~ msgstr "Piadas"
-
-#~ msgid "Soundtrack"
-#~ msgstr "Banda Sonora"
-
-#~ msgid "Euro-Techno"
-#~ msgstr "Euro-Tecno"
-
-#~ msgid "Vocal"
-#~ msgstr "Vocal"
-
-#~ msgid "Jazz+Funk"
-#~ msgstr "Jazz+Funk"
-
-#~ msgid "Fusion"
-#~ msgstr "Fusão"
-
-#~ msgid "Trance"
-#~ msgstr "Trance"
-
-#~ msgid "Instrumental"
-#~ msgstr "Instrumental"
-
-#~ msgid "Acid"
-#~ msgstr "Acid"
-
-#~ msgid "Game"
-#~ msgstr "Videojogo"
-
-#~ msgid "Sound Clip"
-#~ msgstr "Clip de Som"
-
-#~ msgid "AlternRock"
-#~ msgstr "Rock Alternativo"
-
-#~ msgid "Bass"
-#~ msgstr "Bass"
-
-#~ msgid "Punk"
-#~ msgstr "Punk"
-
-#~ msgid "Space"
-#~ msgstr "Space"
-
-#~ msgid "Meditative"
-#~ msgstr "Meditativa"
-
-#~ msgid "Instrumental Pop"
-#~ msgstr "Pop Instrumental"
-
-#~ msgid "Instrumental Rock"
-#~ msgstr "Rock Instrumental"
-
-#~ msgid "Ethnic"
-#~ msgstr "Étnica"
-
-#~ msgid "Gothic"
-#~ msgstr "Gótica"
-
-#~ msgid "Darkwave"
-#~ msgstr "Darkwave"
-
-#~ msgid "Techno-Industrial"
-#~ msgstr "Tecno-Industrial"
-
-#~ msgid "Electronic"
-#~ msgstr "Electrónica"
-
-#~ msgid "Pop-Folk"
-#~ msgstr "Pop-Folk"
-
-#~ msgid "Eurodance"
-#~ msgstr "Eurodance"
-
-#~ msgid "Dream"
-#~ msgstr "Dream"
-
-#~ msgid "Southern Rock"
-#~ msgstr "Southern Rock"
-
-#~ msgid "Comedy"
-#~ msgstr "Comédia"
-
-#~ msgid "Cult"
-#~ msgstr "Culta"
-
-#~ msgid "Top 40"
-#~ msgstr "Top 40"
-
-#~ msgid "Christian Rap"
-#~ msgstr "Rap Cristão"
-
-#~ msgid "Pop/Funk"
-#~ msgstr "Pop/Funk"
-
-#~ msgid "Native American"
-#~ msgstr "Nativa Americana"
-
-#~ msgid "Cabaret"
-#~ msgstr "Cabaré"
-
-#~ msgid "Psychedelic"
-#~ msgstr "Psicadélica"
-
-#~ msgid "Rave"
-#~ msgstr "Rave"
-
-#~ msgid "Showtunes"
-#~ msgstr "Showtunes"
-
-#~ msgid "Trailer"
-#~ msgstr "Trailer"
-
-#~ msgid "Lo-Fi"
-#~ msgstr "Lo-Fi"
-
-#~ msgid "Tribal"
-#~ msgstr "Tribal"
-
-#~ msgid "Acid Punk"
-#~ msgstr "Acid Punk"
-
-#~ msgid "Polka"
-#~ msgstr "Polca"
-
-#~ msgid "Retro"
-#~ msgstr "Retro"
-
-#~ msgid "Musical"
-#~ msgstr "Musical"
-
-#~ msgid "Folk/Rock"
-#~ msgstr "Folk/Rock"
-
-#~ msgid "National Folk"
-#~ msgstr "National Folk"
-
-#~ msgid "Fast-Fusion"
-#~ msgstr "Fast-Fusão"
-
-#~ msgid "Latin"
-#~ msgstr "Latina"
-
-#~ msgid "Revival"
-#~ msgstr "Revivalista"
-
-#~ msgid "Celtic"
-#~ msgstr "Celta"
-
-#~ msgid "Avantgarde"
-#~ msgstr "Avantgarde"
-
-#~ msgid "Gothic Rock"
-#~ msgstr "Rock Gótico"
-
-#~ msgid "Progressive Rock"
-#~ msgstr "Rock Progressivo"
-
-#~ msgid "Psychedelic Rock"
-#~ msgstr "Rock Psicadélico"
-
-#~ msgid "Symphonic Rock"
-#~ msgstr "Rock Sinfónico"
-
-#~ msgid "Slow Rock"
-#~ msgstr "Slow Rock"
-
-#~ msgid "Big Band"
-#~ msgstr "Big Band"
-
-#~ msgid "Chorus"
-#~ msgstr "Coro"
-
-#~ msgid "Acoustic"
-#~ msgstr "Acústica"
-
-#~ msgid "Humour"
-#~ msgstr "Humor"
-
-#~ msgid "Speech"
-#~ msgstr "Falado"
-
-#~ msgid "Chanson"
-#~ msgstr "Chanson"
-
-#~ msgid "Opera"
-#~ msgstr "Ópera"
-
-#~ msgid "Sonata"
-#~ msgstr "Sonata"
-
-#~ msgid "Symphony"
-#~ msgstr "Sinfonia"
-
-#~ msgid "Booty Bass"
-#~ msgstr "Booty Bass"
-
-#~ msgid "Primus"
-#~ msgstr "Primus"
-
-#~ msgid "Porn Groove"
-#~ msgstr "Porn Groove"
-
-#~ msgid "Satire"
-#~ msgstr "Sátira"
-
-#~ msgid "Slow Jam"
-#~ msgstr "Slow Jam"
-
-#~ msgid "Club"
-#~ msgstr "Club"
-
-#~ msgid "Tango"
-#~ msgstr "Tango"
-
-#~ msgid "Samba"
-#~ msgstr "Samba"
-
-#~ msgid "Folklore"
-#~ msgstr "Folclórica"
-
-#~ msgid "Ballad"
-#~ msgstr "Balada"
-
-#~ msgid "Power Ballad"
-#~ msgstr "Balada Pop/Rock"
-
-#~ msgid "Rhythmic Soul"
-#~ msgstr "Soul Rítmico"
-
-#~ msgid "Freestyle"
-#~ msgstr "Freestyle"
-
-#~ msgid "Duet"
-#~ msgstr "Dueto"
-
-#~ msgid "Drum Solo"
-#~ msgstr "Solo de Bateria"
-
-#~ msgid "A Cappella"
-#~ msgstr "A Capela"
-
-#~ msgid "Euro-House"
-#~ msgstr "Euro-House"
-
-#~ msgid "Dance Hall"
-#~ msgstr "Dance Hall"
-
-#~ msgid "Goa"
-#~ msgstr "Goa"
-
-#~ msgid "Drum & Bass"
-#~ msgstr "Drum & Bass"
-
-#~ msgid "Club-House"
-#~ msgstr "Club-House"
-
-#~ msgid "Hardcore"
-#~ msgstr "Hardcore"
-
-#~ msgid "Terror"
-#~ msgstr "Terror"
-
-#~ msgid "Indie"
-#~ msgstr "Indie"
-
-#~ msgid "BritPop"
-#~ msgstr "BritPop"
-
-#~ msgid "Negerpunk"
-#~ msgstr "Negerpunk"
-
-#~ msgid "Polsk Punk"
-#~ msgstr "Polsk Punk"
-
-#~ msgid "Beat"
-#~ msgstr "Beat"
-
-#~ msgid "Christian Gangsta Rap"
-#~ msgstr "Gangsta Rap Cristão"
-
-#~ msgid "Black Metal"
-#~ msgstr "Black Metal"
-
-#~ msgid "Crossover"
-#~ msgstr "Crossover"
-
-#~ msgid "Contemporary Christian"
-#~ msgstr "Cristã Contemporânea"
-
-#~ msgid "Christian Rock"
-#~ msgstr "Rock Cristão"
-
-#~ msgid "Merengue"
-#~ msgstr "Merengue"
-
-#~ msgid "Salsa"
-#~ msgstr "Salsa"
-
-#~ msgid "Thrash Metal"
-#~ msgstr "Thrash Metal"
-
-#~ msgid "Anime"
-#~ msgstr "Anime"
-
-#~ msgid "JPop"
-#~ msgstr "JPop"
-
-#~ msgid "Synthpop"
-#~ msgstr "Synthpop"
-
-#, fuzzy
-#~ msgid ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "An audio player for many platforms.\n"
-#~ "Copyright (C) 2005-2011 Audacious Development Team"
-#~ msgstr ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "Um leitor de audio multiplataforma.\n"
-#~ "Copyright (C) 2005-2009 Equipa de Desenvolvimento do Audacious"
-
-#~ msgid "Unable to create log file (%s)!\n"
-#~ msgstr "Incapaz de criar ficheiro de relatório (%s)!\n"
-
-#~ msgid "Print all errors and warnings to stdout"
-#~ msgstr "Escrever todos os erros e avisos no stdout"
-
-#~ msgid "Used in macpacking"
-#~ msgstr "Usado em macpacking"
-
-#~ msgid "Sorry, threads aren't supported on your platform.\n"
-#~ msgstr "Infelizmente não é possível utilizar threads nesta plataforma.\n"
-
-#~ msgid "Module loading not supported! Plugins will not be loaded.\n"
-#~ msgstr ""
-#~ "Carregamento de módulos não suportado! Os plugins não serão iniciados.\n"
-
-#~ msgid "Audacious - Unsupported Version Warning"
-#~ msgstr "Audacious - Aviso de Versão Não-Suportada"
-
-#~ msgid "<big><b>Audacious2 is not ready yet!</b></big>"
-#~ msgstr "<big><b>O Audacious2 ainda não está preparado!</b></big>"
-
-#~ msgid ""
-#~ "<b>Please don't file bugs at this point unless they represent major "
-#~ "problems.</b>"
-#~ msgstr ""
-#~ "<b>Por favor não reporte falhas neste momento a menos que sejam problemas "
-#~ "realmente graves.</b>"
-
-#~ msgid ""
-#~ "This is an <i>alpha</i> build of Audacious2. It is still fairly "
-#~ "incomplete and unpolished.\n"
-#~ "We suspect that most minor bugs reported during this time will be "
-#~ "resolved once more things\n"
-#~ "stablize. However, if there is a major bug, such as a crash on playing a "
-#~ "specific file, we\n"
-#~ "need to know about it.\n"
-#~ "\n"
-#~ "However, we ask you to be aware that dealing with trivial bugs is "
-#~ "distracting at this point,\n"
-#~ "and to please refrain from doing so. Thanks in advance!"
-#~ msgstr ""
-#~ "Esta é uma versão <i>alfa</i> do Audacious2. Ainda está muito incompleta "
-#~ "e tem muitas arestas por polir.\n"
-#~ "A maior parte das falhas menores reportadas durante esta fase serão "
-#~ "resolvidas numa versão\n"
-#~ "mais estável. No entanto, se detectar uma falha grave, como o terminar do "
-#~ "audacious\n"
-#~ "enquanto ouve um dado ficheiro, agradecemos que nos avise\n"
-#~ "(por favor reporte as falhas em inglês).\n"
-#~ "\n"
-#~ "Pedimos-lhe especial atenção uma vez que tratar de falhas triviais neste "
-#~ "momento pode\n"
-#~ "causar muita distracção para detalhes irrelevantes, portanto evite fazê-"
-#~ "lo.\n"
-#~ "Obrigado desde já!"
-
-#~ msgid "<b>Blogging about bugs in it is also not helpful.</b>"
-#~ msgstr "<b>Publicar sobre falhas em blogs também não ajuda muito.</b>"
-
-#~ msgid ""
-#~ "Likewise, we're developers. We don't read blogs on a regular basis. If "
-#~ "there is a major bug,\n"
-#~ "we ask you to bring it to our attention via our bugtracking instance at "
-#~ "http://jira.atheme.org/,\n"
-#~ "or via the forums that are on the website.\n"
-#~ "\n"
-#~ "This will help us find out more information about your concerns, which we "
-#~ "would likely\n"
-#~ "not know about otherwise."
-#~ msgstr ""
-#~ "A maior parte de nós são programadores e não lemos blogs de forma "
-#~ "regular. Se encontrar uma\n"
-#~ "falha grave, pedimos-lhe que a traga à nossa atenção através do nosso "
-#~ "sistema de\n"
-#~ "<i>bugtracking</i> em http://jira.atheme.org/, ou através do fórum no "
-#~ "nosso website.\n"
-#~ "\n"
-#~ "Desta forma ajuda-nos a encontrar mais informação sobre o problema, que "
-#~ "nos seria difícil\n"
-#~ "encontrar de outra forma."
-
-#~ msgid "Playback"
-#~ msgstr "Reprodução"
-
-#~ msgid "<b>Playback</b>"
-#~ msgstr "<b>Reprodução</b>"
-
-#~ msgid ""
-#~ "When Audacious starts, automatically begin playing from the point where "
-#~ "we stopped before."
-#~ msgstr ""
-#~ "Quando o Audacious iniciar, começar a tocar automaticamente a partir do "
-#~ "ponto em que parámos anteriormente."
-
-#~ msgid "Don't advance in the playlist"
-#~ msgstr "Não avançar na lista de reprodução"
-
-#~ msgid ""
-#~ "When finished playing a song, don't automatically advance to the next."
-#~ msgstr ""
-#~ "Não avançar automaticamente para a faixa seguinte depois de acabar de "
-#~ "reproduzir a anterior."
-
-#~ msgid "Enabled"
-#~ msgstr "Activado"
-
-#~ msgid "Description"
-#~ msgstr "Descrição"
-
-#~ msgid "Output Plugin Preferences"
-#~ msgstr "Preferências do Plugin de Saída"
-
-#~ msgid "Output Plugin Information"
-#~ msgstr "Informações do Plugin de Saída"
-
-#~ msgid "_Decoder list:"
-#~ msgstr "Lista de _Descodificadores:"
-
-#~ msgid "<span size=\"medium\"><b>Decoders</b></span>"
-#~ msgstr "<span size=\"medium\"><b>Descodificadores</b></span>"
-
-#~ msgid "_General plugin list:"
-#~ msgstr "Lista de Plugins _Gerais:"
-
-#~ msgid "<span size=\"medium\"><b>General</b></span>"
-#~ msgstr "<span size=\"medium\"><b>Gerais</b></span>"
-
-#~ msgid "_Visualization plugin list:"
-#~ msgstr "Lista de Plugins de _Visualização:"
-
-#~ msgid "<span size=\"small\">General</span>"
-#~ msgstr "<span size=\"small\">Geral</span>"
-
-#~ msgid "<span size=\"small\">Location</span>"
-#~ msgstr "<span size=\"small\">Localização</span>"
-
-#~ msgid "<span size=\"small\">Raw Metadata</span>"
-#~ msgstr "<span size=\"small\">Metadados Originais</span>"
-
-#~ msgid "Key"
-#~ msgstr "Chave"
-
-#~ msgid "Value"
-#~ msgstr "Valor"
-
-#~ msgid "Interface to use (use -i list to view available interfaces)"
-#~ msgstr "Interface a usar (usar -i list para ver os interfaces disponíveis)"
-
-#~ msgid ""
-#~ "Available interfaces:\n"
-#~ "\n"
-#~ msgstr ""
-#~ "Interfaces disponíveis:\n"
-#~ "\n"
-
-#~ msgid "Available Plugin Preferences:\n"
-#~ msgstr "Preferências do Plugin Disponíveis: \n"
-
-#~ msgid "Headless Interface"
-#~ msgstr "Interface Não-Visual"
-
-#~ msgid "Effect plugins (for 16-bit output only):"
-#~ msgstr "Plugins de efeitos (apenas para saída de 16 bit):"
-
-#~ msgid "Add/Open URL Dialog"
-#~ msgstr "Adicionar/Abrir URL"
-
-#~ msgid "Enter location to play:"
-#~ msgstr "Indique localização para tocar:"
-
-#~ msgid "Don't clear the playlist"
-#~ msgstr "Não limpar a lista de reprodução"
-
-#~ msgid "audacious: %s"
-#~ msgstr "audacious: %s"
-
-#~ msgid "Filename:"
-#~ msgstr "Ficheiro:"
-
-#~ msgid "No input plugin recognized this file"
-#~ msgstr "Nenhum plugin de entrada reconheceu este ficheiro"
-
-#~ msgid "Input plugin: %s"
-#~ msgstr "Plugin de entrada: %s"
-
-#~ msgid ""
-#~ "<b><big>No output plugin selected.</big></b>\n"
-#~ "You have not selected an output plugin."
-#~ msgstr ""
-#~ "<b><big>Nenhum plugin de saída seleccionado.</big></b>\n"
-#~ "Não seleccionou nenhum plugin de saída."
-
-#~ msgid "Connectivity"
-#~ msgstr "Conectividade"
-
-#~ msgid "Best Sinc Interpolation"
-#~ msgstr "Interpolação de Sincronização Óptima"
-
-#~ msgid "Medium Sinc Interpolation"
-#~ msgstr "Interpolação de Sincronização Média"
-
-#~ msgid "Fastest Sinc Interpolation"
-#~ msgstr "Interpolação de Sincronização Rápida"
-
-#~ msgid "ZOH Interpolation"
-#~ msgstr "Interpolação ZOH"
-
-#~ msgid "Linear Interpolation"
-#~ msgstr "Interpolação Linear"
-
-#~ msgid "Sampling Rate [Hz]:"
-#~ msgstr "Taxa de Amostragem [Hz]:"
-
-#~ msgid "Interpolation Engine:"
-#~ msgstr "Mecanismo de Interpolação:"
-
-#~ msgid ""
-#~ "<span size=\"small\">All streams will be converted to this sampling "
-#~ "rate.\n"
-#~ "This should be the max supported sampling rate of\n"
-#~ "the sound card or output plugin.</span>"
-#~ msgstr ""
-#~ "<span size=\"small\">Todas as streams serão convertidas para esta taxa de "
-#~ "amostragem.\n"
-#~ "Esta deve corresponder à taxa de amostragem máxima suportada pela\n"
-#~ "placa de som ou pelo plugin de saída.</span>"
-
-#~ msgid "<b>Format Detection</b>"
-#~ msgstr "<b>Detecção do Formato</b>"
-
-#~ msgid "Detect file formats by extension."
-#~ msgstr "Detectar formatos dos ficheiros pela extensão."
-
-#~ msgid ""
-#~ "When checked, Audacious will detect file formats based by extension. Only "
-#~ "files with extensions of supported formats will be loaded."
-#~ msgstr ""
-#~ "Quando activado, o Audacious irá detectar os formatos dos ficheiros pela "
-#~ "sua extensão. Apenas serão abertos ficheiros com extensões de formatos "
-#~ "suportados."
-
-#~ msgid "<b>Sampling Rate Converter</b>"
-#~ msgstr "<b>Conversor de Taxa de Amostragem</b>"
-
-#~ msgid "Enable Sampling Rate Converter"
-#~ msgstr "Activar o Conversor de Taxa de Amostragem"
-
-#~ msgid "Bypass all of signal processing if possible"
-#~ msgstr "Ignorar todo o processamento de sinal se possível"
-
-#~ msgid ""
-#~ "Try to pass input plugin's output directly to output plugin, if the "
-#~ "latter supports format produced by input plugin. If it's true, all signal "
-#~ "processing will be disabled (i.e. DSP plugins, equalizer, resampling, "
-#~ "Replay Gain and software volume control)."
-#~ msgstr ""
-#~ "Tentar passar a saída do plugin de entrada directamente para o output "
-#~ "desaída, se o último suportar o formato produzido pelo plugin de entrada. "
-#~ "Se suceder, todo o processamento de sinal será desactivado (i.e. plugins "
-#~ "de DSP, equalizador, resampling, Replay Gain e controlo de volume por "
-#~ "software)."
-
-#~ msgid "Use fast floating-point conversion (16-bit output only)"
-#~ msgstr ""
-#~ "Utilizar conversão rápida de vírgula flutuante (apenas com saída de 16 "
-#~ "bits)"
+msgstr "Mostrar opções de gestão de sessão"
 
-#~ msgid "Dynamically adjust scale factor to prevent clipping"
-#~ msgstr "Ajustar o factor de escala dinamicamente para prevenir clipping"
 
-#~ msgid "Decrease scale factor (gain) if clipping nevertheless occurred"
-#~ msgstr "Reduzir o factor de escala (ganho) se mesmo assim ocorrer clipping"
diff --git a/po/ro.po b/po/ro.po
index e05ebf1..d867bd7 100644
--- a/po/ro.po
+++ b/po/ro.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: audacious 1.4.0\n"
 "Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
+"POT-Creation-Date: 2011-07-05 22:45+0200\n"
 "PO-Revision-Date: 2007-08-26 03:55+0300\n"
 "Last-Translator: Cristi Măgherușan <majeru at atheme.org>\n"
 "Language-Team: Romanian\n"
@@ -18,6 +18,17 @@ msgstr ""
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 
+#: src/audacious/adder.c:71
+msgid "Searching ..."
+msgstr ""
+
+#: src/audacious/adder.c:99
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] ""
+msgstr[1] ""
+
 #: src/audacious/chardet.c:37
 msgid "  (invalid UTF-8)"
 msgstr " (UTF-8 invalid)"
@@ -103,113 +114,113 @@ msgstr "Română:"
 msgid "Finnish:"
 msgstr "Finlandeză:"
 
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:220
 msgid "French:"
 msgstr "Franceză:"
 
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:226
 msgid "German:"
 msgstr "Germană:"
 
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:233
 msgid "Georgian:"
 msgstr "Georgiană:"
 
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:236
 msgid "Greek:"
 msgstr "Greacă:"
 
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:241
 msgid "Hindi:"
 msgstr "Hindusă:"
 
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:244
 msgid "Hungarian:"
 msgstr "Maghiară:"
 
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:248
 msgid "Italian:"
 msgstr "Italiană:"
 
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:252
 msgid "Japanese:"
 msgstr "Japoneză:"
 
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:255
 msgid "Korean:"
 msgstr "Coreeană:"
 
-#: src/audacious/credits.c:256
+#: src/audacious/credits.c:258
 #, fuzzy
 msgid "Latvian:"
 msgstr "Croată:"
 
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:261
 msgid "Lithuanian:"
 msgstr "Lituaniană:"
 
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:265
 msgid "Macedonian:"
 msgstr "Macedoneană:"
 
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:268
 msgid "Polish:"
 msgstr "Poloneză:"
 
-#: src/audacious/credits.c:271
+#: src/audacious/credits.c:274
 #, fuzzy
 msgid "Portuguese:"
 msgstr "Portugheză braziliană:"
 
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:277
 msgid "Romanian:"
 msgstr "Română:"
 
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:281
 msgid "Russian:"
 msgstr "Rusă:"
 
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:285
 msgid "Serbian (Latin):"
 msgstr "Sârbă (cu caractere latine):"
 
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:288
 msgid "Serbian (Cyrillic):"
 msgstr "Sârbă·(caractere·chirilice):"
 
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:291
 msgid "Simplified Chinese:"
 msgstr "Chineză simplificată:"
 
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:294
 msgid "Slovak:"
 msgstr "Slovacă:"
 
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:297
 msgid "Spanish:"
 msgstr "Spaniolă:"
 
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:304
 msgid "Swedish:"
 msgstr "Suedeză:"
 
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:307
 msgid "Traditional Chinese:"
 msgstr "Chineză·tradițională:"
 
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:312
 msgid "Turkish:"
 msgstr "Turcă:"
 
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:316
 msgid "Ukrainian:"
 msgstr "Ucrainiană:"
 
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:319
 msgid "Welsh:"
 msgstr "Galeză:"
 
-#: src/audacious/drct.c:254
+#: src/audacious/drct.c:256
 #, fuzzy
 msgid "Temporary Playlist"
 msgstr "Incarcă Playlist"
@@ -219,80 +230,65 @@ msgstr "Incarcă Playlist"
 msgid "Error importing Winamp EQF file '%s'"
 msgstr ""
 
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr ""
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/audacious/main.c:247
+#: src/audacious/main.c:256
 msgid "Skip backwards in playlist"
 msgstr "Sări înapoi în playlist"
 
-#: src/audacious/main.c:248
+#: src/audacious/main.c:257
 msgid "Start playing current playlist"
 msgstr "ÃŽncepe redarea playlist-ului curent"
 
-#: src/audacious/main.c:249
+#: src/audacious/main.c:258
 msgid "Pause current song"
 msgstr "Pauză"
 
-#: src/audacious/main.c:250
+#: src/audacious/main.c:259
 msgid "Stop current song"
 msgstr "Oprește melodia curentă"
 
-#: src/audacious/main.c:251
+#: src/audacious/main.c:260
 msgid "Pause if playing, play otherwise"
 msgstr "Pauză daca se redă, redare altfel"
 
-#: src/audacious/main.c:252
+#: src/audacious/main.c:261
 msgid "Skip forward in playlist"
 msgstr "Sări înainte în playlist"
 
-#: src/audacious/main.c:253
+#: src/audacious/main.c:262
 msgid "Display Jump to File dialog"
 msgstr "Afișează dialogul de salt la fișier"
 
-#: src/audacious/main.c:254
+#: src/audacious/main.c:263
 #, fuzzy
 msgid "Add files to the playlist"
 msgstr "Adaugă fișiere la playlist"
 
-#: src/audacious/main.c:255
+#: src/audacious/main.c:264
 msgid "Add new files to a temporary playlist"
 msgstr "Adaugă fișiere noi la un playlist temporar"
 
-#: src/audacious/main.c:256
+#: src/audacious/main.c:265
 msgid "Display the main window"
 msgstr "Arată fereastra principală"
 
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr "Afișează ferestrele Audacious deschise"
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:266
 #, fuzzy
 msgid "Show version"
 msgstr "Arată player-ul"
 
-#: src/audacious/main.c:259
+#: src/audacious/main.c:267
 msgid "Print debugging messages"
 msgstr ""
 
-#: src/audacious/main.c:260
+#: src/audacious/main.c:268
 msgid "FILE..."
 msgstr "Fișier..."
 
-#: src/audacious/main.c:272
+#: src/audacious/main.c:280
 msgid "- play multimedia files"
 msgstr "- redă fișierele multimedia"
 
-#: src/audacious/main.c:282
+#: src/audacious/main.c:290
 #, c-format
 msgid ""
 "%s: %s\n"
@@ -301,7 +297,7 @@ msgstr ""
 "%s:·%s\n"
 "Rulează·`%s·--help'·pentru mai multe informații.\n"
 
-#: src/audacious/main.c:395
+#: src/audacious/main.c:407
 msgid ""
 "Audacious seems to be already running but is not responding.  You can start "
 "another instance of the program, but please be warned that this can cause "
@@ -309,271 +305,243 @@ msgid ""
 "message.  Press OK to start Audacious or Cancel to quit."
 msgstr ""
 
-#: src/audacious/main.c:558
+#: src/audacious/main.c:572
 msgid "Audacious"
 msgstr "Audacious"
 
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:381
 #, c-format
 msgid "No decoder found for %s."
 msgstr ""
 
-#: src/audacious/playback.c:519
+#: src/audacious/playback.c:531
 msgid "Buffering ..."
 msgstr ""
 
-#: src/audacious/playlist-new.c:288
+#: src/audacious/playlist-new.c:303
 #, fuzzy
 msgid "Untitled Playlist"
 msgstr "Playlist Nou"
 
-#: src/audacious/ui_preferences.c:88
+#: src/audacious/ui_preferences.c:87
 msgid "Audio"
 msgstr "Audio"
 
-#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:88
 msgid "Network"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:89 src/audacious/ui_preferences.c:1556
 msgid "Playlist"
 msgstr "Playlist"
 
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:90
 msgid "Plugins"
 msgstr "Plugin-uri"
 
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:204
 msgid "Artist"
 msgstr "Artist"
 
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:97 src/libaudgui/infopopup.c:206
 msgid "Album"
 msgstr "Album"
 
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:202
+#: src/libaudgui/ui_playlist_manager.c:263
 msgid "Title"
 msgstr "Titlu"
 
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:99
 msgid "Tracknumber"
 msgstr "Numărul Track-ului"
 
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:208
 msgid "Genre"
 msgstr "Genul"
 
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:101
 msgid "Filename"
 msgstr "Fișier"
 
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:102
 msgid "Filepath"
 msgstr "Calea spre fișier"
 
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:103
 msgid "Date"
 msgstr "Data"
 
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:104 src/libaudgui/infopopup.c:210
 msgid "Year"
 msgstr "Anul"
 
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:105
 msgid "Comment"
 msgstr "Comentariu"
 
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:106
 msgid "Codec"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:107
 #, fuzzy
 msgid "Quality"
 msgstr "_Ieșire"
 
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:112
 msgid "None"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:115
+#: src/audacious/ui_preferences.c:113
 #, fuzzy
 msgid "Japanese"
 msgstr "Japoneză:"
 
-#: src/audacious/ui_preferences.c:116
+#: src/audacious/ui_preferences.c:114
 #, fuzzy
 msgid "Taiwanese"
 msgstr "Japoneză:"
 
-#: src/audacious/ui_preferences.c:117
+#: src/audacious/ui_preferences.c:115
 #, fuzzy
 msgid "Chinese"
 msgstr "Chineza"
 
-#: src/audacious/ui_preferences.c:118
+#: src/audacious/ui_preferences.c:116
 #, fuzzy
 msgid "Korean"
 msgstr "Coreeană:"
 
-#: src/audacious/ui_preferences.c:119
+#: src/audacious/ui_preferences.c:117
 #, fuzzy
 msgid "Russian"
 msgstr "Rusă:"
 
-#: src/audacious/ui_preferences.c:120
+#: src/audacious/ui_preferences.c:118
 #, fuzzy
 msgid "Greek"
 msgstr "Greacă:"
 
-#: src/audacious/ui_preferences.c:121
+#: src/audacious/ui_preferences.c:119
 msgid "Hebrew"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:122
+#: src/audacious/ui_preferences.c:120
 #, fuzzy
 msgid "Turkish"
 msgstr "Turcă:"
 
-#: src/audacious/ui_preferences.c:123
+#: src/audacious/ui_preferences.c:121
 msgid "Arabic"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:124
+#: src/audacious/ui_preferences.c:122
 #, fuzzy
 msgid "Polish"
 msgstr "Poloneză:"
 
-#: src/audacious/ui_preferences.c:125
+#: src/audacious/ui_preferences.c:123
 msgid "Baltic"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:126
+#: src/audacious/ui_preferences.c:124
 msgid "Universal"
 msgstr ""
 
 #: src/audacious/ui_preferences.c:146
 #, fuzzy
-msgid "<b>Bit Depth</b>"
-msgstr "<i>Titlu</i>"
+msgid "Single track mode"
+msgstr "Vizualizează Detaliile Track-ului"
 
 #: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:148
 #, fuzzy
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
-"<span·size=\"small\">Toate semnalele vor fi convertite la această rată de "
-"eșantionare.\n"
-"Este recomandat să setați valoarea maximă dintre cea a plăcii de sunet\n"
-"sau a plugin-ului de iesire.</span>"
+msgid "Album mode"
+msgstr "Numele Albumului"
 
-#: src/audacious/ui_preferences.c:151
+#: src/audacious/ui_preferences.c:150
 #, fuzzy
-msgid "<b>Volume Control</b>"
-msgstr "<b>Rotița mouse-ului</b>"
+msgid "<b>Output Settings</b>"
+msgstr "<b>Detectarea formatului</b>"
 
 #: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr ""
+#, fuzzy
+msgid "Bit depth:"
+msgstr "<i>Titlu</i>"
 
-#: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
+#: src/audacious/ui_preferences.c:155
+msgid "Buffer size:"
+msgstr "Mărimea Buffer-ului:"
 
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
+#: src/audacious/ui_preferences.c:157
+msgid "ms"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
+#: src/audacious/ui_preferences.c:158
+msgid "Use software volume control (not recommended)"
 msgstr ""
 
 #: src/audacious/ui_preferences.c:160
 #, fuzzy
-msgid "Amplify untagged files:"
-msgstr "- redă fișierele multimedia"
-
-#: src/audacious/ui_preferences.c:164
-#, fuzzy
 msgid "<b>Replay Gain</b>"
 msgstr "<b>Configurarea Proxy-ului</b>"
 
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:161
 #, fuzzy
 msgid "Enable Replay Gain"
 msgstr "Activează proxy"
 
-#: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>Metadata</b>"
-
-#: src/audacious/ui_preferences.c:168
-#, fuzzy
-msgid "Single track mode"
-msgstr "Vizualizează Detaliile Track-ului"
-
-#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "Numele Albumului"
+#: src/audacious/ui_preferences.c:164
+msgid "Prevent clipping (recommended)"
+msgstr ""
 
-#: src/audacious/ui_preferences.c:172
+#: src/audacious/ui_preferences.c:166
 #, fuzzy
 msgid "<b>Adjust Levels</b>"
 msgstr "<b>Rotița mouse-ului</b>"
 
-#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "<b>Popup cu Informații</b>"
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify all files:"
+msgstr ""
 
-#: src/audacious/ui_preferences.c:176
-msgid "Enable clipping prevention"
+#: src/audacious/ui_preferences.c:169 src/audacious/ui_preferences.c:172
+msgid "dB"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:170
+#, fuzzy
+msgid "Amplify untagged files:"
+msgstr "- redă fișierele multimedia"
+
+#: src/audacious/ui_preferences.c:175
 msgid "Proxy hostname:"
 msgstr "Adresa sau numele:"
 
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:176
 msgid "Proxy port:"
 msgstr "Port-ul:"
 
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:179
 msgid "Proxy username:"
 msgstr "Utilizator:"
 
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:180
 msgid "Proxy password:"
 msgstr "Parolă:"
 
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:184
 msgid "<b>Proxy Configuration</b>"
 msgstr "<b>Configurarea Proxy-ului</b>"
 
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:185
 msgid "Enable proxy usage"
 msgstr "Activează proxy"
 
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:187
 msgid "Use authentication with proxy"
 msgstr "Folosește autentificarea"
 
-#: src/audacious/ui_preferences.c:197
+#: src/audacious/ui_preferences.c:189
 msgid ""
 "<span size=\"small\">Changing these settings will require a restart of "
 "Audacious.</span>"
@@ -581,15 +549,15 @@ msgstr ""
 "<span size=\"small\">Schimbarea acestor setări necesită restartul aplicației."
 "</span>"
 
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
 msgid "Auto character encoding detector for:"
 msgstr "Detecție automată a codificării caracterelor pentru:"
 
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
 msgid "Fallback character encodings:"
 msgstr "Setări de rezervă pentru codificările caracterelor"
 
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
 msgid ""
 "List of character encodings used for fall back conversion of metadata. If "
 "automatic character encoding detector failed or has been disabled, encodings "
@@ -601,46 +569,46 @@ msgstr ""
 "dezactivată, codificările din această listă vor fi tratate ca și candidate, "
 "și se va încerca convertirea din acestea în UTF-8"
 
-#: src/audacious/ui_preferences.c:213
+#: src/audacious/ui_preferences.c:205
 #, fuzzy
 msgid "<b>Behavior</b>"
 msgstr "<i>Titlu</i>"
 
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:206
 msgid "Continue playback on startup"
 msgstr "Continuă redarea la pornire"
 
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:208
 msgid "Advance when the current song is deleted"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:218
+#: src/audacious/ui_preferences.c:210
 #, fuzzy
 msgid "Clear the playlist when opening files"
 msgstr "Creează un nou playlist pentru intrările care se potrivesc"
 
-#: src/audacious/ui_preferences.c:220
+#: src/audacious/ui_preferences.c:212
 #, fuzzy
 msgid "Open files in a temporary playlist"
 msgstr "Adaugă fișiere noi la un playlist temporar"
 
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:214
 msgid "<b>Metadata</b>"
 msgstr "<b>Metadata</b>"
 
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:454
 msgid "Category"
 msgstr "Categorie"
 
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:682
 msgid "Popup Information Settings"
 msgstr "Opțiuni pentru Popup-ul cu informații suplimentare"
 
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:691
 msgid "<b>Cover image retrieve</b>"
 msgstr "<b>Afișează coperta albumului</b>"
 
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:696
 msgid ""
 "While searching for the album's cover, Audacious looks for certain words in "
 "the filename. You can specify those words in the lists below, separated "
@@ -649,100 +617,100 @@ msgstr ""
 "Când caută coperta albumului, Audacious urmăreste anumite cuvinte in fișier. "
 "Puteți specifica aceste cuvinte în lista de mai jos, separate prin spații. "
 
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:713
 msgid "Exclude:"
 msgstr "Exclude:"
 
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:720
 msgid "Include:"
 msgstr "Include:"
 
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:737
 msgid "Recursively search for cover"
 msgstr "Cauta recursiv pentru coperta"
 
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:747
 msgid "Search depth: "
 msgstr "Adancimea cautarii"
 
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:761
 msgid "Use per-file cover"
 msgstr "Foloseste coperta per-fișier"
 
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:764
 msgid "<b>Miscellaneous</b>"
 msgstr "<b>Diverse</b>"
 
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:773
 msgid "Show Progress bar for the current track"
 msgstr "Afișează progresul piesei curente"
 
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:783
 msgid "Delay until filepopup comes up: "
 msgstr "Așteaptă apariția popup-ului"
 
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1283
 msgid "<b>Song Display</b>"
 msgstr "<b>Vizualizarea melodiei</b>"
 
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1292
 msgid "Show song numbers"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1303
 msgid "Show leading zeroes (02:00 instead of 2:00)"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1325
 msgid "Show information about titlestring format"
 msgstr "Afișează informații despre formatarea titlurilor"
 
-#: src/audacious/ui_preferences.c:1514
+#: src/audacious/ui_preferences.c:1339
 msgid "TITLE"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1515
+#: src/audacious/ui_preferences.c:1340
 msgid "ARTIST - TITLE"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1516
+#: src/audacious/ui_preferences.c:1341
 msgid "ARTIST - ALBUM - TITLE"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1517
+#: src/audacious/ui_preferences.c:1342
 msgid "ARTIST - ALBUM - TRACK. TITLE"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1518
+#: src/audacious/ui_preferences.c:1343
 msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1519
+#: src/audacious/ui_preferences.c:1344
 msgid "ALBUM - TITLE"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1520
+#: src/audacious/ui_preferences.c:1345
 #, fuzzy
 msgid "Custom"
 msgstr "Format specificat:"
 
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1354
 msgid "Custom string:"
 msgstr "Format specificat:"
 
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1361
 msgid "Title format:"
 msgstr "Formatul titlului:"
 
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1372
 msgid "<b>Popup Information</b>"
 msgstr "<b>Popup cu Informații</b>"
 
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1387
 msgid "Show popup information for playlist entries"
 msgstr "Arată informații popup pentru intrările din playlist"
 
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1388
 msgid ""
 "Toggles popup information window for the pointed entry in the playlist. The "
 "window shows title of song, name of album, genre, year of publish, track "
@@ -752,54 +720,47 @@ msgstr ""
 "Sunt afișate titlul, numele albumului, genul, anul apariției, numărul "
 "piesei, lungimea și imaginea copertei albumului, dacă există"
 
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1397
 msgid "Edit settings for popup information"
 msgstr "Editează setările informațiilor din popup"
 
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>Sistemul Audio</b>"
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "Mărimea Buffer-ului:"
-
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
-msgstr "Plugin-ul de ieșire curent"
+#: src/audacious/ui_preferences.c:1497
+#, fuzzy
+msgid "Output plugin:"
+msgstr "Plugin de intrare: %s"
 
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
 #, fuzzy
 msgid "Transport"
 msgstr "Traducători"
 
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
 msgid "Input"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
 #, fuzzy
 msgid "Effect"
 msgstr "<b>Efecte</b>"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
 msgid "Visualization"
 msgstr "Vizualizare"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
 msgid "General"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1597
 msgid "Audacious Preferences"
 msgstr "Preferințe Audacious"
 
-#: src/audacious/util.c:161
+#: src/audacious/util.c:155
 #, c-format
 msgid "Could not create directory (%s): %s\n"
 msgstr "Nu s-a putut crea directorul (%s): %s\n"
 
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:264
 msgid "Position not found."
 msgstr ""
 
@@ -818,22 +779,24 @@ msgstr "stereo"
 
 #: src/libaudcore/tuple.c:689
 #, c-format
-msgid "%d channels"
-msgstr ""
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] ""
+msgstr[1] ""
 
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/confirm.c:73
 #, c-format
 msgid ""
 "Are you sure you want to close %s?  If you do, any changes made since the "
 "playlist was exported will be lost."
 msgstr ""
 
-#: src/libaudgui/confirm.c:77
+#: src/libaudgui/confirm.c:86
 #, fuzzy
 msgid "_Don't show this message again"
 msgstr "Nu mai arata aceast avertisment"
 
-#: src/libaudgui/confirm.c:115
+#: src/libaudgui/confirm.c:124
 #, fuzzy
 msgid "Rename Playlist"
 msgstr "Salvează Playlist"
@@ -895,11 +858,11 @@ msgstr "Egalizator"
 msgid "Preamp"
 msgstr ""
 
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:212
 msgid "Track Number"
 msgstr "Numărul Trackului"
 
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:214
 msgid "Track Length"
 msgstr "Mărimea track-ului"
 
@@ -1135,6 +1098,29 @@ msgstr ""
 msgid "No info available for %s.\n"
 msgstr ""
 
+#: src/libaudgui/jump-to-time.c:75
+msgid "Jump to Time"
+msgstr "Sări la Timp"
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr ""
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Export Playlist"
+msgstr "Incarcă Playlist"
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Import Playlist"
+msgstr "Incarcă Playlist"
+
+#: src/libaudgui/playlists.c:71
+#, c-format
+msgid "Overwrite %s?"
+msgstr ""
+
 #: src/libaudgui/ui_about.c:71
 msgid "About Audacious"
 msgstr "Despre Audacious"
@@ -1196,19 +1182,19 @@ msgstr "Anulează A-B"
 msgid "Close on Jump"
 msgstr "Închide dialogul după salt"
 
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:240
 msgid "Playlist Manager"
 msgstr "Manager de Playlist"
 
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:264
 msgid "Entries"
 msgstr "Intrări"
 
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:285
 msgid "_Rename"
 msgstr "_Redenumește"
 
-#: src/libaudgui/ui_playlist_manager.c:251
+#: src/libaudgui/ui_playlist_manager.c:309
 #, fuzzy
 msgid "_Close dialog on activating playlist"
 msgstr "ÃŽnchide dialogul la deschidere"
@@ -1221,6 +1207,12 @@ msgstr ""
 msgid "Add URL"
 msgstr ""
 
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+
 #: src/libeggsmclient/eggdesktopfile.c:165
 msgid "File is not a valid .desktop file"
 msgstr ""
@@ -1230,25 +1222,25 @@ msgstr ""
 msgid "Unrecognized desktop file Version '%s'"
 msgstr "%s: optiune nerecunoscuta `--%s'\n"
 
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:967
 #, c-format
 msgid "Starting %s"
 msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1108
 msgid "Application does not accept documents on command line"
 msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1176
 #, fuzzy, c-format
 msgid "Unrecognized launch option: %d"
 msgstr "%s: optiune nerecunoscuta `--%s'\n"
 
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1375
 msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
 msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1396
 msgid "Not a launchable item"
 msgstr ""
 
@@ -1283,6 +1275,38 @@ msgstr "Arată decorațiile managerului de ferestre"
 msgid "Show session management options"
 msgstr "Arată decorațiile managerului de ferestre"
 
+#, fuzzy
+#~ msgid ""
+#~ "All streams will be converted to this bit depth.\n"
+#~ "This should be the max supported bit depth of\n"
+#~ "the sound card or output plugin."
+#~ msgstr ""
+#~ "<span·size=\"small\">Toate semnalele vor fi convertite la această rată de "
+#~ "eșantionare.\n"
+#~ "Este recomandat să setați valoarea maximă dintre cea a plăcii de sunet\n"
+#~ "sau a plugin-ului de iesire.</span>"
+
+#, fuzzy
+#~ msgid "<b>Volume Control</b>"
+#~ msgstr "<b>Rotița mouse-ului</b>"
+
+#, fuzzy
+#~ msgid "<b>Mode</b>"
+#~ msgstr "<b>Metadata</b>"
+
+#, fuzzy
+#~ msgid "<b>Clipping Prevention</b>"
+#~ msgstr "<b>Popup cu Informații</b>"
+
+#~ msgid "<b>Audio System</b>"
+#~ msgstr "<b>Sistemul Audio</b>"
+
+#~ msgid "Current output plugin:"
+#~ msgstr "Plugin-ul de ieșire curent"
+
+#~ msgid "Display all open Audacious windows"
+#~ msgstr "Afișează ferestrele Audacious deschise"
+
 #~ msgid "%s: Unable to open display, exiting.\n"
 #~ msgstr "%s: Nu s-a putut deschide display-ul, ieșire din program.\n"
 
@@ -1516,9 +1540,6 @@ msgstr "Arată decorațiile managerului de ferestre"
 #~ msgid "No input plugin recognized this file"
 #~ msgstr "Nici un plugin de intrare nu a recunoscut acest fișier"
 
-#~ msgid "Input plugin: %s"
-#~ msgstr "Plugin de intrare: %s"
-
 #~ msgid ""
 #~ "<b><big>No output plugin selected.</big></b>\n"
 #~ "You have not selected an output plugin."
@@ -1543,9 +1564,6 @@ msgstr "Arată decorațiile managerului de ferestre"
 #~ "Este recomandat să setați valoarea maximă dintre cea a plăcii de sunet\n"
 #~ "sau a plugin-ului de iesire.</span>"
 
-#~ msgid "<b>Format Detection</b>"
-#~ msgstr "<b>Detectarea formatului</b>"
-
 #~ msgid "Detect file formats by extension."
 #~ msgstr "Detecția formatului după extensie."
 
@@ -1649,9 +1667,6 @@ msgstr "Arată decorațiile managerului de ferestre"
 #~ msgid "Load metadata (tag information) from music files."
 #~ msgstr "Încarcă informațiile suplimentare prezente în fișierele audio."
 
-#~ msgid "Jump to Time"
-#~ msgstr "Sări la Timp"
-
 #~ msgid "minutes:seconds"
 #~ msgstr "minute:secunde"
 
diff --git a/po/ru.po b/po/ru.po
index 2e01e00..61ff722 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -1,303 +1,300 @@
-# Russian translation for Audacious.
-# Copyright (C) 2006,2007 Alexander Orlov <alxorlov at pochta.ru>
+# Russian translation for Audacious
+# Copyright (C) Audacious translators
 # This file is distributed under the same license as the Audacious package.
 #
-# За основу взят перевод Виталия Липатова для BMP.
-# Улучшения перевода приветствуются :)
-#
-#
+# Translators:
 # Alexander Orlov <alxorlov at pochta.ru>, 2007.
-# Vitaly Lipatov <lav at etersoft.ru>, 2007.
+#   <a.michurin at gmail.com>, 2011.
+# Eugene Paskevich <eugene at raptor.kiev.ua>, 2010.
 # Eugene Zagidullin <e.asphyx at gmail.com>, 2007.
+# NaiLi Rootaerc <theism at mail.ru>, 2012.
 # serg0 <serg0 at ulx.ru>, 2009.
-# Eugene Paskevich <eugene at raptor.kiev.ua>, 2010.
 # Sergey V. Mironov <sergo at bk.ru>, 2010.
+# Vitaly Lipatov <lav at etersoft.ru>, 2007.
 msgid ""
 msgstr ""
-"Project-Id-Version: audacious 2.4\n"
-"Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
-"PO-Revision-Date: 2010-08-22 22:15+0400\n"
-"Last-Translator: Sergey V. Mironov <sergo at bk.ru>\n"
-"Language-Team: Russian <kde-russian at lists.kde.ru>\n"
-"Language: ru\n"
+"Project-Id-Version: Audacious\n"
+"Report-Msgid-Bugs-To: http://redmine.audacious-media-player.org/\n"
+"POT-Creation-Date: 2012-01-11 08:54-0500\n"
+"PO-Revision-Date: 2012-01-13 11:35+0000\n"
+"Last-Translator: NaiLi Rootaerc <theism at mail.ru>\n"
+"Language-Team: Russian\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Lokalize 1.0\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
-"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-"X-Poedit-Language: Russian\n"
-"X-Poedit-Basepath: /home/asphyx/ahinea/audacious\n"
+"Language: ru\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
+
+#: src/audacious/adder.c:77
+msgid "Searching ..."
+msgstr "Поиск ..."
+
+#: src/audacious/adder.c:113
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] "Найден %d файл"
+msgstr[1] "Найдено %d файла"
+msgstr[2] "Найдено %d файлов"
 
-#: src/audacious/chardet.c:37
+#: src/audacious/chardet.c:39
 msgid "  (invalid UTF-8)"
 msgstr "  (недопустимая последовательность Юникод)"
 
-#: src/audacious/credits.c:35
+#: src/audacious/credits.c:37
 msgid "Core developers:"
 msgstr "Главные разработчики:"
 
-#: src/audacious/credits.c:49
+#: src/audacious/credits.c:51
 msgid "Graphics:"
 msgstr "Графика:"
 
-#: src/audacious/credits.c:54
+#: src/audacious/credits.c:56
 msgid "Default skin:"
 msgstr "Стандартная тема:"
 
-#: src/audacious/credits.c:60
+#: src/audacious/credits.c:62
 msgid "Plugin development:"
 msgstr "Разработка модулей:"
 
-#: src/audacious/credits.c:83
+#: src/audacious/credits.c:85
 msgid "Patch authors:"
 msgstr "Авторы патчей:"
 
-#: src/audacious/credits.c:126
+#: src/audacious/credits.c:131
 msgid "1.x developers:"
 msgstr "Разработчики версий 1.x:"
 
-#: src/audacious/credits.c:148
+#: src/audacious/credits.c:153
 msgid "BMP Developers:"
 msgstr "Разработчики BMP:"
 
-#: src/audacious/credits.c:180
+#: src/audacious/credits.c:185
 msgid "Belarusian:"
 msgstr "Белорусский:"
 
-#: src/audacious/credits.c:183
+#: src/audacious/credits.c:188
 msgid "Basque:"
 msgstr "Баскский:"
 
-#: src/audacious/credits.c:186
+#: src/audacious/credits.c:191
 msgid "Brazilian Portuguese:"
 msgstr "Бразильский португальский:"
 
-#: src/audacious/credits.c:190
+#: src/audacious/credits.c:196
 msgid "Breton:"
 msgstr "Бретонский:"
 
-#: src/audacious/credits.c:193
+#: src/audacious/credits.c:199
 msgid "Bulgarian:"
 msgstr "Болгарский:"
 
-#: src/audacious/credits.c:196
+#: src/audacious/credits.c:202
 msgid "Catalan:"
 msgstr "Каталонский:"
 
-#: src/audacious/credits.c:199
+#: src/audacious/credits.c:206
 msgid "Chinese:"
 msgstr "Китайский:"
 
-#: src/audacious/credits.c:202
+#: src/audacious/credits.c:209
 msgid "Croatian:"
 msgstr "Хорватский:"
 
-#: src/audacious/credits.c:205
+#: src/audacious/credits.c:212
 msgid "Czech:"
 msgstr "Чешский:"
 
-#: src/audacious/credits.c:208
+#: src/audacious/credits.c:215
 msgid "Dutch:"
 msgstr "Голландский:"
 
-#: src/audacious/credits.c:212
+#: src/audacious/credits.c:219
 msgid "Estonian:"
 msgstr "Эстонский:"
 
-#: src/audacious/credits.c:215
+#: src/audacious/credits.c:222
 msgid "Finnish:"
 msgstr "Финский:"
 
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:227
 msgid "French:"
 msgstr "Французский:"
 
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:233
 msgid "German:"
 msgstr "Немецкий:"
 
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:240
 msgid "Georgian:"
 msgstr "Грузинский:"
 
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:243
 msgid "Greek:"
 msgstr "Греческий:"
 
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:248
 msgid "Hindi:"
 msgstr "Хинди:"
 
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:251
 msgid "Hungarian:"
 msgstr "Венгерский:"
 
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:255
 msgid "Italian:"
 msgstr "Итальянский:"
 
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:260
 msgid "Japanese:"
 msgstr "Японский:"
 
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:263
 msgid "Korean:"
 msgstr "Корейский:"
 
-#: src/audacious/credits.c:256
-#, fuzzy
+#: src/audacious/credits.c:266
 msgid "Latvian:"
-msgstr "Хорватский:"
+msgstr "Латышский:"
 
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:269
 msgid "Lithuanian:"
 msgstr "Литовский:"
 
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:274
 msgid "Macedonian:"
 msgstr "Македонский:"
 
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:277
+msgid "Mexican Spanish:"
+msgstr "Испанский язык, Мексика:"
+
+#: src/audacious/credits.c:280
 msgid "Polish:"
 msgstr "Польский:"
 
-#: src/audacious/credits.c:271
-#, fuzzy
+#: src/audacious/credits.c:287
 msgid "Portuguese:"
 msgstr "Португальский:"
 
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:290
 msgid "Romanian:"
 msgstr "Румынский:"
 
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:294
 msgid "Russian:"
 msgstr "Русский:"
 
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:298
 msgid "Serbian (Latin):"
 msgstr "Сербский (латиница):"
 
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:301
 msgid "Serbian (Cyrillic):"
 msgstr "Сербский (кириллица):"
 
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:305
 msgid "Simplified Chinese:"
 msgstr "Упрощённый китайский:"
 
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:308
 msgid "Slovak:"
 msgstr "Словацкий:"
 
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:312
 msgid "Spanish:"
 msgstr "Испанский:"
 
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:320
 msgid "Swedish:"
 msgstr "Шведский:"
 
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:323
 msgid "Traditional Chinese:"
 msgstr "Традиционный китайский:"
 
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:329
 msgid "Turkish:"
 msgstr "Турецкий:"
 
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:333
 msgid "Ukrainian:"
 msgstr "Украинский:"
 
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:338
+msgid "Vietnamese:"
+msgstr "Вьетнамский:"
+
+#: src/audacious/credits.c:341
 msgid "Welsh:"
 msgstr "Уэльский:"
 
-#: src/audacious/drct.c:254
-msgid "Temporary Playlist"
-msgstr "Временный список воспроизведения"
-
-#: src/audacious/equalizer_preset.c:186
+#: src/audacious/equalizer_preset.c:180
 #, c-format
 msgid "Error importing Winamp EQF file '%s'"
 msgstr "Невозможно импортировать Winamp EQF файл '%s'"
 
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr "Поиск ..."
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] "Найден %d файл"
-msgstr[1] "Найдено %d файла"
-msgstr[2] "Найдено %d файлов"
-
-#: src/audacious/main.c:247
+#: src/audacious/main.c:243
 msgid "Skip backwards in playlist"
 msgstr "Перейти к предыдущей дорожке в списке воспроизведения"
 
-#: src/audacious/main.c:248
+#: src/audacious/main.c:244
 msgid "Start playing current playlist"
 msgstr "Начать проигрывать текущий список воспроизведения"
 
-#: src/audacious/main.c:249
+#: src/audacious/main.c:245
 msgid "Pause current song"
 msgstr "Приостановить текущую дорожку"
 
-#: src/audacious/main.c:250
+#: src/audacious/main.c:246
 msgid "Stop current song"
 msgstr "Остановить текущую дорожку"
 
-#: src/audacious/main.c:251
+#: src/audacious/main.c:247
 msgid "Pause if playing, play otherwise"
 msgstr "Приостановить при проигрывании, иначе ― воспроизводить"
 
-#: src/audacious/main.c:252
+#: src/audacious/main.c:248
 msgid "Skip forward in playlist"
 msgstr "Перейти к следующей дорожке в списке воспроизведения"
 
-#: src/audacious/main.c:253
+#: src/audacious/main.c:249
 msgid "Display Jump to File dialog"
 msgstr "Показать диалог перехода к файлу"
 
-#: src/audacious/main.c:254
+#: src/audacious/main.c:250
 msgid "Add files to the playlist"
 msgstr "Добавить файлы в список воспроизведения"
 
-#: src/audacious/main.c:255
+#: src/audacious/main.c:251
 msgid "Add new files to a temporary playlist"
 msgstr "Добавить файлы во временный список воспроизведения"
 
-#: src/audacious/main.c:256
+#: src/audacious/main.c:252
 msgid "Display the main window"
 msgstr "Показать главное окно"
 
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr "Показать все открытые окна Audacious"
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:253
 msgid "Show version"
 msgstr "Показать версию"
 
-#: src/audacious/main.c:259
+#: src/audacious/main.c:254
 msgid "Print debugging messages"
-msgstr ""
+msgstr "Печатать отладочную информацию"
+
+#: src/audacious/main.c:255
+msgid "Headless mode (beta)"
+msgstr "Управление с консоли (бета)"
 
-#: src/audacious/main.c:260
+#: src/audacious/main.c:256
 msgid "FILE..."
 msgstr "ФАЙЛ..."
 
-#: src/audacious/main.c:272
+#: src/audacious/main.c:268
 msgid "- play multimedia files"
 msgstr "- проиграть мультимедийные файлы"
 
-#: src/audacious/main.c:282
+#: src/audacious/main.c:278
 #, c-format
 msgid ""
 "%s: %s\n"
@@ -306,333 +303,310 @@ msgstr ""
 "%s: %s\n"
 "Попробуйте `%s --help' для получения подробного описания.\n"
 
-#: src/audacious/main.c:395
-msgid ""
-"Audacious seems to be already running but is not responding.  You can start "
-"another instance of the program, but please be warned that this can cause "
-"data loss.  If Audacious is not running, you can safely ignore this "
-"message.  Press OK to start Audacious or Cancel to quit."
-msgstr ""
-
-#: src/audacious/main.c:558
+#: src/audacious/main.c:573
 msgid "Audacious"
 msgstr "Audacious"
 
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:307
 #, c-format
 msgid "No decoder found for %s."
 msgstr "Не найден декодер для %s."
 
-#: src/audacious/playback.c:519
-msgid "Buffering ..."
-msgstr "Буферизация..."
+#: src/audacious/playlist-files.c:53
+#, c-format
+msgid "Cannot %s %s: unsupported file extension."
+msgstr "Невозможно %s %s: расширение файла не поддерживается."
+
+#: src/audacious/playlist-files.c:54
+msgid "save"
+msgstr "сохранить"
 
-#: src/audacious/playlist-new.c:288
-msgid "Untitled Playlist"
-msgstr "Новый список воспроизведения"
+#: src/audacious/playlist-files.c:54
+msgid "load"
+msgstr "загрузить"
 
-#: src/audacious/ui_preferences.c:88
+#: src/audacious/playlist-new.c:131
+msgid "New Playlist"
+msgstr "Новый Список"
+
+#: src/audacious/playlist-new.c:132
+msgid "Now Playing"
+msgstr "Сейчас Воспроизводится"
+
+#: src/audacious/playlist-new.c:1630
+msgid ""
+"The playlist cannot be sorted because metadata scanning is still in progress"
+" (or has been disabled)."
+msgstr ""
+"Список не может быть отсортирован, так как сканирование метаданных всё ещё "
+"происходит (или было выключено)."
+
+#: src/audacious/ui_preferences.c:85
 msgid "Audio"
 msgstr "Звук"
 
-#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
-msgstr "Replay Gain"
-
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:86
 msgid "Network"
 msgstr "Сеть"
 
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:87 src/audacious/ui_preferences.c:1603
 msgid "Playlist"
 msgstr "Список воспроизведения"
 
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:88
 msgid "Plugins"
 msgstr "Модули"
 
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:94 src/libaudgui/infopopup.c:199
 msgid "Artist"
 msgstr "Исполнитель"
 
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:95 src/libaudgui/infopopup.c:201
 msgid "Album"
 msgstr "Альбом"
 
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:197
+#: src/libaudgui/ui_playlist_manager.c:279
 msgid "Title"
 msgstr "Название"
 
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:97
 msgid "Tracknumber"
 msgstr "Номер дорожки"
 
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:203
 msgid "Genre"
 msgstr "Жанр"
 
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:99
 msgid "Filename"
 msgstr "Имя файла"
 
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:100
 msgid "Filepath"
 msgstr "Путь к файлу"
 
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:101
 msgid "Date"
 msgstr "Дата"
 
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:205
 msgid "Year"
 msgstr "Год"
 
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:103
 msgid "Comment"
 msgstr "Комментарий"
 
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:104
 msgid "Codec"
 msgstr "Кодек"
 
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:105
 msgid "Quality"
 msgstr "Качество"
 
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:111
 msgid "None"
 msgstr "Нет"
 
+#: src/audacious/ui_preferences.c:112
+msgid "Arabic"
+msgstr "Арабский"
+
+#: src/audacious/ui_preferences.c:113
+msgid "Baltic"
+msgstr "Балтийские языки"
+
+#: src/audacious/ui_preferences.c:114
+msgid "Chinese"
+msgstr "Китайский"
+
 #: src/audacious/ui_preferences.c:115
-msgid "Japanese"
-msgstr "Японский"
+msgid "Greek"
+msgstr "Греческий"
 
 #: src/audacious/ui_preferences.c:116
-msgid "Taiwanese"
-msgstr "Тайваньский"
+msgid "Hebrew"
+msgstr "Иврит"
 
 #: src/audacious/ui_preferences.c:117
-msgid "Chinese"
-msgstr "Китайский"
+msgid "Japanese"
+msgstr "Японский"
 
 #: src/audacious/ui_preferences.c:118
 msgid "Korean"
 msgstr "Корейский"
 
 #: src/audacious/ui_preferences.c:119
-msgid "Russian"
-msgstr "Русский"
+msgid "Polish"
+msgstr "Польский"
 
 #: src/audacious/ui_preferences.c:120
-msgid "Greek"
-msgstr "Греческий"
+msgid "Russian"
+msgstr "Русский"
 
 #: src/audacious/ui_preferences.c:121
-msgid "Hebrew"
-msgstr "Иврит"
+msgid "Taiwanese"
+msgstr "Тайваньский"
 
 #: src/audacious/ui_preferences.c:122
 msgid "Turkish"
 msgstr "Турецкий"
 
-#: src/audacious/ui_preferences.c:123
-msgid "Arabic"
-msgstr "Арабский"
-
-#: src/audacious/ui_preferences.c:124
-msgid "Polish"
-msgstr "Польский"
-
-#: src/audacious/ui_preferences.c:125
-msgid "Baltic"
-msgstr "Балтийские языки"
-
-#: src/audacious/ui_preferences.c:126
-msgid "Universal"
-msgstr "Универсальный режим"
-
-#: src/audacious/ui_preferences.c:146
-msgid "<b>Bit Depth</b>"
-msgstr "<b>Разрядность</b>"
+#: src/audacious/ui_preferences.c:144
+msgid "Album mode"
+msgstr "Режим альбома"
 
 #: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr "Разрядность выходного потока:"
-
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
-"Все потоки будут преобразованы к этой разрядности,\n"
-"которая должна быть максимальной поддерживаемой\n"
-"разрядностью звуковой карты или выходного модуля."
+msgid "<b>Output Settings</b>"
+msgstr "<b>Настройки вывода</b>"
 
-#: src/audacious/ui_preferences.c:151
-msgid "<b>Volume Control</b>"
-msgstr "<b>Регулировка громкости</b>"
+#: src/audacious/ui_preferences.c:149
+msgid "Bit depth:"
+msgstr "Разрядность"
 
 #: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr "Программная регулировка громкости"
+msgid "Buffer size:"
+msgstr "Размер буфера:"
 
 #: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
-"Использовать программное управление громкостью. Это может быть полезно, если "
-"ваша звуковая система не поддерживает управление громкостью."
-
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
-msgstr ""
+msgid "ms"
+msgstr "мс"
 
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
-msgstr "дБ"
+#: src/audacious/ui_preferences.c:155
+msgid "Use software volume control (not recommended)"
+msgstr "Использовать программную регулировку громкости (не рекомендуется)"
 
-#: src/audacious/ui_preferences.c:160
-#, fuzzy
-msgid "Amplify untagged files:"
-msgstr "- проиграть мультимедийные файлы"
-
-#: src/audacious/ui_preferences.c:164
-#, fuzzy
+#: src/audacious/ui_preferences.c:157
 msgid "<b>Replay Gain</b>"
-msgstr "<b>Режим Replay Gain</b>"
+msgstr "<b>Выравнивание громкости</b>"
 
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:158
 msgid "Enable Replay Gain"
 msgstr "Включить Replay Gain"
 
-#: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>Мета-информация о дорожке</b>"
-
-#: src/audacious/ui_preferences.c:168
-msgid "Single track mode"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "Альбом"
+#: src/audacious/ui_preferences.c:161
+msgid "Prevent clipping (recommended)"
+msgstr "Предотвратить шипение/треск (рекомендуется)"
 
-#: src/audacious/ui_preferences.c:172
-#, fuzzy
+#: src/audacious/ui_preferences.c:163
 msgid "<b>Adjust Levels</b>"
-msgstr "<b>Звуковая система</b>"
+msgstr "<b>Регулировка уровней</b>"
 
-#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "<b>Всплывающее информационное окно</b>"
+#: src/audacious/ui_preferences.c:164
+msgid "Amplify all files:"
+msgstr "Увеличить всем файлам:"
 
-#: src/audacious/ui_preferences.c:176
-#, fuzzy
-msgid "Enable clipping prevention"
-msgstr "Использовать пиковое значение для предотвращения срезания"
+#: src/audacious/ui_preferences.c:166 src/audacious/ui_preferences.c:169
+msgid "dB"
+msgstr "дБ"
 
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify untagged files:"
+msgstr "Увеличить непомеченным файлам"
+
+#: src/audacious/ui_preferences.c:172
 msgid "Proxy hostname:"
 msgstr "Прокси сервер:"
 
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:173
 msgid "Proxy port:"
 msgstr "Порт прокси:"
 
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:176
 msgid "Proxy username:"
 msgstr "Имя пользователя прокси:"
 
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:177
 msgid "Proxy password:"
 msgstr "Пароль прокси:"
 
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:181
 msgid "<b>Proxy Configuration</b>"
 msgstr "<b>Настройка прокси</b>"
 
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:182
 msgid "Enable proxy usage"
 msgstr "Использовать прокси"
 
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:185
 msgid "Use authentication with proxy"
 msgstr "Использовать авторизацию через прокси"
 
-#: src/audacious/ui_preferences.c:197
-msgid ""
-"<span size=\"small\">Changing these settings will require a restart of "
-"Audacious.</span>"
-msgstr ""
-"<span size=\"small\">Изменение этих настроек потребует перезапуска Audacious."
-"</span>"
-
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
 msgid "Auto character encoding detector for:"
 msgstr "Язык для автоматического определения кодировки:"
 
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:198
 msgid "Fallback character encodings:"
 msgstr "Кодировка по умолчанию:"
 
-#: src/audacious/ui_preferences.c:209
-msgid ""
-"List of character encodings used for fall back conversion of metadata. If "
-"automatic character encoding detector failed or has been disabled, encodings "
-"in this list would be treated as candidates of the encoding of metadata, and "
-"fall back conversion from these encodings to UTF-8 would be attempted."
-msgstr ""
-"Список кодировок, используемых при отображении метаданных. Если "
-"автоматическое определение кодировки отключено или не сработает, то для "
-"преобразования метаданных в UTF-8 будут использованы кодировки из этого "
-"списка."
-
-#: src/audacious/ui_preferences.c:213
-#, fuzzy
+#: src/audacious/ui_preferences.c:202
 msgid "<b>Behavior</b>"
-msgstr "<b>Разрядность</b>"
+msgstr "<b>Режим</b>"
 
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:203
 msgid "Continue playback on startup"
 msgstr "Продолжать воспроизведение при запуске"
 
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:205
 msgid "Advance when the current song is deleted"
-msgstr ""
+msgstr "Продвигаться дальше если текущая песня удалена"
 
-#: src/audacious/ui_preferences.c:218
-#, fuzzy
+#: src/audacious/ui_preferences.c:207
 msgid "Clear the playlist when opening files"
-msgstr "Очистить текущий список воспроизведения при открытии новых файлов "
+msgstr "Очищать список если открывается новая песня"
 
-#: src/audacious/ui_preferences.c:220
-#, fuzzy
+#: src/audacious/ui_preferences.c:209
 msgid "Open files in a temporary playlist"
-msgstr "Добавить файлы во временный список воспроизведения"
+msgstr "Открывать файлы во временном списке"
 
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:211
 msgid "<b>Metadata</b>"
 msgstr "<b>Мета-информация о дорожке</b>"
 
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:212
+msgid "Do not load metadata for songs until played"
+msgstr "Не загружать метаданные песен до того как они начнут проигрываться"
+
+#: src/audacious/ui_preferences.c:230
+msgid "TITLE"
+msgstr "НАЗВАНИЕ"
+
+#: src/audacious/ui_preferences.c:231
+msgid "ARTIST - TITLE"
+msgstr "ИСПОЛНИТЕЛЬ - НАЗВАНИЕ"
+
+#: src/audacious/ui_preferences.c:232
+msgid "ARTIST - ALBUM - TITLE"
+msgstr "ИСПОЛНИТЕЛЬ - АЛЬБОМ - НАЗВАНИЕ"
+
+#: src/audacious/ui_preferences.c:233
+msgid "ARTIST - ALBUM - TRACK. TITLE"
+msgstr "ИСПОЛНИТЕЛЬ - АЛЬБОМ - ДОРОЖКА. НАЗВАНИЕ"
+
+#: src/audacious/ui_preferences.c:234
+msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
+msgstr "ИСПОЛНИТЕЛЬ [ АЛЬБОМ ] - ДОРОЖКА. НАЗВАНИЕ"
+
+#: src/audacious/ui_preferences.c:235
+msgid "ALBUM - TITLE"
+msgstr "АЛЬБОМ - НАЗВАНИЕ"
+
+#: src/audacious/ui_preferences.c:556
 msgid "Category"
 msgstr "Категория"
 
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:780
 msgid "Popup Information Settings"
 msgstr "Настройка всплывающей информации"
 
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:789
 msgid "<b>Cover image retrieve</b>"
 msgstr "<b>Поиск обложки альбома</b>"
 
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:794
 msgid ""
 "While searching for the album's cover, Audacious looks for certain words in "
 "the filename. You can specify those words in the lists below, separated "
@@ -641,101 +615,77 @@ msgstr ""
 "При поиске обложки альбома Audacious ищет определенные слова в именах "
 "файлов. Вы можете указать эти слова ниже, разделив их запятыми."
 
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:811
 msgid "Exclude:"
 msgstr "Исключая:"
 
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:818
 msgid "Include:"
 msgstr "Включая:"
 
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:835
 msgid "Recursively search for cover"
 msgstr "Искать обложку во вложенных каталогах"
 
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:845
 msgid "Search depth: "
 msgstr "Глубина поиска: "
 
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:859
 msgid "Use per-file cover"
 msgstr "Искать изображение для каждого файла"
 
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:862
 msgid "<b>Miscellaneous</b>"
 msgstr "<b>Разное</b>"
 
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:871
 msgid "Show Progress bar for the current track"
 msgstr "Показывать полосу завершения для проигрываемой дорожки"
 
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:881
 msgid "Delay until filepopup comes up: "
 msgstr "Задержка появления всплывающей информации: "
 
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1309
+msgid "Custom"
+msgstr "Собственные установки"
+
+#: src/audacious/ui_preferences.c:1352
 msgid "<b>Song Display</b>"
 msgstr "<b>Отображение дорожек</b>"
 
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1361
 msgid "Show song numbers"
 msgstr "Показать номер дорожки"
 
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1372
 msgid "Show leading zeroes (02:00 instead of 2:00)"
-msgstr ""
+msgstr "Отображать начало с нуля (02:00 вместо 2:00)"
 
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1394
 msgid "Show information about titlestring format"
 msgstr "Показать информацию о формате названия"
 
-#: src/audacious/ui_preferences.c:1514
-msgid "TITLE"
-msgstr "НАЗВАНИЕ"
-
-#: src/audacious/ui_preferences.c:1515
-msgid "ARTIST - TITLE"
-msgstr "ИСПОЛНИТЕЛЬ - НАЗВАНИЕ"
-
-#: src/audacious/ui_preferences.c:1516
-msgid "ARTIST - ALBUM - TITLE"
-msgstr "ИСПОЛНИТЕЛЬ - АЛЬБОМ - НАЗВАНИЕ"
-
-#: src/audacious/ui_preferences.c:1517
-msgid "ARTIST - ALBUM - TRACK. TITLE"
-msgstr "ИСПОЛНИТЕЛЬ - АЛЬБОМ - ДОРОЖКА. НАЗВАНИЕ"
-
-#: src/audacious/ui_preferences.c:1518
-msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
-msgstr "ИСПОЛНИТЕЛЬ [ АЛЬБОМ ] - ДОРОЖКА. НАЗВАНИЕ"
-
-#: src/audacious/ui_preferences.c:1519
-msgid "ALBUM - TITLE"
-msgstr "АЛЬБОМ - НАЗВАНИЕ"
-
-#: src/audacious/ui_preferences.c:1520
-msgid "Custom"
-msgstr "Собственные установки"
-
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1410
 msgid "Custom string:"
 msgstr "Свой формат:"
 
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1417
 msgid "Title format:"
 msgstr "Формат названия:"
 
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1428
 msgid "<b>Popup Information</b>"
 msgstr "<b>Всплывающее информационное окно</b>"
 
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1443
 msgid "Show popup information for playlist entries"
 msgstr ""
 "Показывать всплывающее информационное окно для дорожек в списке "
 "воспроизведения"
 
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1444
 msgid ""
 "Toggles popup information window for the pointed entry in the playlist. The "
 "window shows title of song, name of album, genre, year of publish, track "
@@ -745,76 +695,85 @@ msgstr ""
 "воспроизведения. Окно содержит название песни, название альбома, жанр, год, "
 "номер дорожки, длительность песни и обложку альбома."
 
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1455
 msgid "Edit settings for popup information"
 msgstr "Изменить настройки всплывающего информационного окна"
 
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>Звуковая система</b>"
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "Размер буфера:"
-
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
-msgstr "Текущий модуль вывода звука:"
+#: src/audacious/ui_preferences.c:1544
+msgid "Output plugin:"
+msgstr "Плагин вывода:"
 
-#: src/audacious/ui_preferences.c:1790
-#, fuzzy
+#: src/audacious/ui_preferences.c:1603
 msgid "Transport"
-msgstr "Переводчики"
+msgstr "Транспорт"
 
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1603
 msgid "Input"
-msgstr ""
+msgstr "Ввод"
 
-#: src/audacious/ui_preferences.c:1791
-#, fuzzy
+#: src/audacious/ui_preferences.c:1604
 msgid "Effect"
-msgstr "<b>Эффекты</b>"
+msgstr "Эффекты"
 
-#: src/audacious/ui_preferences.c:1791
-#, fuzzy
+#: src/audacious/ui_preferences.c:1604
 msgid "Visualization"
-msgstr "<b>Визуализация</b>"
+msgstr "Визуализация"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1604
 msgid "General"
-msgstr ""
+msgstr "Общие"
 
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1644
 msgid "Audacious Preferences"
 msgstr "Параметры Audacious"
 
-#: src/audacious/util.c:161
+#: src/audacious/util.c:120
 #, c-format
 msgid "Could not create directory (%s): %s\n"
 msgstr "Невозможно создать каталог (%s): %s\n"
 
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:273
 msgid "Position not found."
 msgstr "Позиция не найдена."
 
-#: src/audtool/handlers_vitals.c:64
+#: src/audtool/handlers_vitals.c:63
 msgid "No song playing."
 msgstr "Ничего не проигрывается."
 
-#: src/libaudcore/tuple.c:685
+#: src/libaudcore/audstrings.c:199
+#, c-format
+msgid "Audio CD, track %s"
+msgstr "Аудио CD, трек %s"
+
+#: src/libaudcore/tuple.c:536
 msgid "Mono"
-msgstr ""
+msgstr "Моно"
 
-#: src/libaudcore/tuple.c:687
+#: src/libaudcore/tuple.c:538
 msgid "Stereo"
-msgstr ""
+msgstr "Стерео"
 
-#: src/libaudcore/tuple.c:689
+#: src/libaudcore/tuple.c:540
 #, c-format
-msgid "%d channels"
-msgstr ""
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] "%d канал"
+msgstr[1] "%d каналов"
+msgstr[2] "%d каналы"
+
+#: src/libaudgui/about.c:52 src/libaudgui/about.c:115
+msgid "Credits"
+msgstr "Авторы"
+
+#: src/libaudgui/about.c:52
+msgid "Translators"
+msgstr "Переводчики"
 
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/about.c:91
+msgid "About Audacious"
+msgstr "Об Audacious"
+
+#: src/libaudgui/confirm.c:76
 #, c-format
 msgid ""
 "Are you sure you want to close %s?  If you do, any changes made since the "
@@ -823,421 +782,438 @@ msgstr ""
 "Вы уверены, что хотите закрыть %s?  В этом случае все изменения с момента "
 "экспорта списка воспроизведения будут утеряны."
 
-#: src/libaudgui/confirm.c:77
+#: src/libaudgui/confirm.c:89
 msgid "_Don't show this message again"
 msgstr "Больше не показывать это предупреждение"
 
-#: src/libaudgui/confirm.c:115
-#, fuzzy
+#: src/libaudgui/confirm.c:126
 msgid "Rename Playlist"
-msgstr "Список воспроизведения"
+msgstr "Переименовать Список"
 
-#: src/libaudgui/effects-menu.c:76
+#: src/libaudgui/effects-menu.c:74
 msgid "settings ..."
 msgstr "настройки..."
 
-#: src/libaudgui/equalizer.c:68
+#: src/libaudgui/equalizer.c:51
 msgid "_Enable"
 msgstr "Включить"
 
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:123
 msgid "31 Hz"
 msgstr "31 Гц"
 
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:123
 msgid "63 Hz"
 msgstr "63 Гц"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
 msgid "125 Hz"
 msgstr "125 Гц"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
 msgid "250 Hz"
 msgstr "250 Гц"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
 msgid "500 Hz"
 msgstr "500 Гц"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
 msgid "1 kHz"
 msgstr "1 кГц"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
 msgid "2 kHz"
 msgstr "2 кГц"
 
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:125
 msgid "4 kHz"
 msgstr "4 кГц"
 
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:125
 msgid "8 kHz"
 msgstr "8 кГц"
 
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:125
 msgid "16 kHz"
 msgstr "16 кГц"
 
-#: src/libaudgui/equalizer.c:147
+#: src/libaudgui/equalizer.c:130
 msgid "Equalizer"
 msgstr "Эквалайзер"
 
-#: src/libaudgui/equalizer.c:163
+#: src/libaudgui/equalizer.c:146
 msgid "Preamp"
 msgstr "Пред. усиление"
 
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:207
 msgid "Track Number"
 msgstr "Номер дорожки"
 
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:209
 msgid "Track Length"
 msgstr "Длительность"
 
-#: src/libaudgui/infowin.c:77
+#: src/libaudgui/infowin.c:75
 msgid "Acid Jazz"
 msgstr "Acid Jazz"
 
-#: src/libaudgui/infowin.c:78
-#, fuzzy
+#: src/libaudgui/infowin.c:76
 msgid "Acid Rock"
-msgstr "Hard Rock"
+msgstr "Эйсид-рок"
 
-#: src/libaudgui/infowin.c:79
+#: src/libaudgui/infowin.c:77
 msgid "Ambient"
 msgstr "Ambient"
 
-#: src/libaudgui/infowin.c:80
-#, fuzzy
+#: src/libaudgui/infowin.c:78
 msgid "Bebop"
-msgstr "Bebob"
+msgstr "Бибоп"
 
-#: src/libaudgui/infowin.c:81
+#: src/libaudgui/infowin.c:79
 msgid "Bluegrass"
 msgstr "Bluegrass"
 
-#: src/libaudgui/infowin.c:82
+#: src/libaudgui/infowin.c:80
 msgid "Blues"
 msgstr "Blues"
 
-#: src/libaudgui/infowin.c:83
+#: src/libaudgui/infowin.c:81
 msgid "Chamber Music"
 msgstr "Chamber Music"
 
-#: src/libaudgui/infowin.c:84
+#: src/libaudgui/infowin.c:82
 msgid "Classical"
 msgstr "Classical"
 
-#: src/libaudgui/infowin.c:85
+#: src/libaudgui/infowin.c:83
 msgid "Country"
 msgstr "Country"
 
-#: src/libaudgui/infowin.c:86
+#: src/libaudgui/infowin.c:84
 msgid "Death Metal"
 msgstr "Death Metal"
 
-#: src/libaudgui/infowin.c:87
+#: src/libaudgui/infowin.c:85
 msgid "Disco"
 msgstr "Disco"
 
-#: src/libaudgui/infowin.c:88
+#: src/libaudgui/infowin.c:86
 msgid "Easy Listening"
 msgstr "Easy Listening"
 
-#: src/libaudgui/infowin.c:89
+#: src/libaudgui/infowin.c:87
 msgid "Folk"
 msgstr "Folk"
 
-#: src/libaudgui/infowin.c:90
+#: src/libaudgui/infowin.c:88
 msgid "Funk"
 msgstr "Funk"
 
-#: src/libaudgui/infowin.c:91
+#: src/libaudgui/infowin.c:89
 msgid "Gangsta Rap"
 msgstr "Gangsta Rap"
 
-#: src/libaudgui/infowin.c:92
+#: src/libaudgui/infowin.c:90
 msgid "Gospel"
 msgstr "Gospel"
 
-#: src/libaudgui/infowin.c:93
+#: src/libaudgui/infowin.c:91
 msgid "Grunge"
 msgstr "Grunge"
 
-#: src/libaudgui/infowin.c:94
+#: src/libaudgui/infowin.c:92
 msgid "Hard Rock"
 msgstr "Hard Rock"
 
-#: src/libaudgui/infowin.c:95
+#: src/libaudgui/infowin.c:93
 msgid "Heavy Metal"
 msgstr "Heavy Metal"
 
-#: src/libaudgui/infowin.c:96
-#, fuzzy
+#: src/libaudgui/infowin.c:94
 msgid "Hip-hop"
-msgstr "Hip-Hop"
+msgstr "Хип-хоп"
 
-#: src/libaudgui/infowin.c:97
+#: src/libaudgui/infowin.c:95
 msgid "House"
 msgstr "House"
 
-#: src/libaudgui/infowin.c:98
+#: src/libaudgui/infowin.c:96
 msgid "Jazz"
 msgstr "Jazz"
 
-#: src/libaudgui/infowin.c:99
+#: src/libaudgui/infowin.c:97
 msgid "Jungle"
 msgstr "Jungle"
 
-#: src/libaudgui/infowin.c:100
+#: src/libaudgui/infowin.c:98
 msgid "Metal"
 msgstr "Metal"
 
-#: src/libaudgui/infowin.c:101
+#: src/libaudgui/infowin.c:99
 msgid "New Age"
 msgstr "New Age"
 
-#: src/libaudgui/infowin.c:102
+#: src/libaudgui/infowin.c:100
 msgid "New Wave"
 msgstr "New Wave"
 
-#: src/libaudgui/infowin.c:103
+#: src/libaudgui/infowin.c:101
 msgid "Noise"
 msgstr "Noise"
 
-#: src/libaudgui/infowin.c:104
+#: src/libaudgui/infowin.c:102
 msgid "Pop"
 msgstr "Pop"
 
-#: src/libaudgui/infowin.c:105
+#: src/libaudgui/infowin.c:103
 msgid "Punk Rock"
 msgstr "Punk Rock"
 
-#: src/libaudgui/infowin.c:106
+#: src/libaudgui/infowin.c:104
 msgid "Rap"
 msgstr "Rap"
 
-#: src/libaudgui/infowin.c:107
+#: src/libaudgui/infowin.c:105
 msgid "Reggae"
 msgstr "Reggae"
 
-#: src/libaudgui/infowin.c:108
+#: src/libaudgui/infowin.c:106
 msgid "Rock"
 msgstr "Rock"
 
-#: src/libaudgui/infowin.c:109
-#, fuzzy
+#: src/libaudgui/infowin.c:107
 msgid "Rock and Roll"
-msgstr "Rock & Roll"
+msgstr "Рок-н-ролл"
 
-#: src/libaudgui/infowin.c:110
+#: src/libaudgui/infowin.c:108
 msgid "Rhythm and Blues"
-msgstr ""
+msgstr "Ритм и Блюз"
 
-#: src/libaudgui/infowin.c:111
+#: src/libaudgui/infowin.c:109
 msgid "Ska"
 msgstr "Ska"
 
-#: src/libaudgui/infowin.c:112
+#: src/libaudgui/infowin.c:110
 msgid "Soul"
 msgstr "Soul"
 
-#: src/libaudgui/infowin.c:113
+#: src/libaudgui/infowin.c:111
 msgid "Swing"
 msgstr "Swing"
 
-#: src/libaudgui/infowin.c:114
+#: src/libaudgui/infowin.c:112
 msgid "Techno"
 msgstr "Techno"
 
-#: src/libaudgui/infowin.c:115
-#, fuzzy
+#: src/libaudgui/infowin.c:113
 msgid "Trip-hop"
-msgstr "Trip-Hop"
+msgstr "Трип-Хоп"
 
-#: src/libaudgui/infowin.c:175 src/libaudgui/infowin.c:361
-#: src/libaudgui/infowin.c:364 src/libaudgui/infowin.c:367
+#: src/libaudgui/infowin.c:177 src/libaudgui/infowin.c:363
+#: src/libaudgui/infowin.c:366 src/libaudgui/infowin.c:369
 msgid "<span size=\"small\">n/a</span>"
 msgstr "<span size=\"small\">недоступно</span>"
 
-#: src/libaudgui/infowin.c:265
+#: src/libaudgui/infowin.c:267
 msgid "Metadata updated successfully"
 msgstr "Метаданные успешно обновлены"
 
-#: src/libaudgui/infowin.c:270
+#: src/libaudgui/infowin.c:272
 msgid "Metadata updating failed"
 msgstr "Ошибка при обновлении метаданных"
 
-#: src/libaudgui/infowin.c:318
+#: src/libaudgui/infowin.c:320
 msgid "Track Information"
 msgstr "Информация о дорожке"
 
-#: src/libaudgui/infowin.c:350
+#: src/libaudgui/infowin.c:352
 msgid "<span size=\"small\">Format:</span>"
 msgstr "<span size=\"small\">Формат:</span>"
 
-#: src/libaudgui/infowin.c:354
+#: src/libaudgui/infowin.c:356
 msgid "<span size=\"small\">Quality:</span>"
 msgstr "<span size=\"small\">Качество:</span>"
 
-#: src/libaudgui/infowin.c:357
+#: src/libaudgui/infowin.c:359
 msgid "<span size=\"small\">Bitrate:</span>"
 msgstr "<span size=\"small\">Битрейт:</span>"
 
-#: src/libaudgui/infowin.c:387
+#: src/libaudgui/infowin.c:389
 msgid "<span size=\"small\">Title</span>"
 msgstr "<span size=\"small\">Название</span>"
 
-#: src/libaudgui/infowin.c:399
+#: src/libaudgui/infowin.c:401
 msgid "<span size=\"small\">Artist</span>"
 msgstr "<span size=\"small\">Исполнитель</span>"
 
-#: src/libaudgui/infowin.c:411
+#: src/libaudgui/infowin.c:413
 msgid "<span size=\"small\">Album</span>"
 msgstr "<span size=\"small\">Альбом</span>"
 
-#: src/libaudgui/infowin.c:423
+#: src/libaudgui/infowin.c:425
 msgid "<span size=\"small\">Comment</span>"
 msgstr "<span size=\"small\">Комментарии</span>"
 
-#: src/libaudgui/infowin.c:435
+#: src/libaudgui/infowin.c:437
 msgid "<span size=\"small\">Genre</span>"
 msgstr "<span size=\"small\">Жанр</span>"
 
-#: src/libaudgui/infowin.c:456
+#: src/libaudgui/infowin.c:458
 msgid "<span size=\"small\">Year</span>"
 msgstr "<span size=\"small\">Год</span>"
 
-#: src/libaudgui/infowin.c:467
+#: src/libaudgui/infowin.c:469
 msgid "<span size=\"small\">Track Number</span>"
 msgstr "<span size=\"small\">Номер дорожки</span>"
 
-#: src/libaudgui/infowin.c:549
+#: src/libaudgui/infowin.c:548
 #, c-format
 msgid "%d kb/s"
 msgstr "%d кб/с"
 
-#: src/libaudgui/infowin.c:579
+#: src/libaudgui/infowin.c:575
 #, c-format
 msgid "No info available for %s.\n"
 msgstr "Нет информации для %s.\n"
 
-#: src/libaudgui/ui_about.c:71
-msgid "About Audacious"
-msgstr "Об Audacious"
+#: src/libaudgui/jump-to-time.c:72
+msgid "Jump to Time"
+msgstr "Джамп ту тайм"
 
-#: src/libaudgui/ui_about.c:93 src/libaudgui/ui_credits.c:122
-msgid "Credits"
-msgstr "Авторы"
+#: src/libaudgui/jump-to-time.c:87
+msgid "mm:ss"
+msgstr "мин:сек"
 
-#: src/libaudgui/ui_credits.c:126
-msgid "Translators"
-msgstr "Переводчики"
+#: src/libaudgui/playlists.c:33
+msgid "Export Playlist"
+msgstr "Экспортировать Список"
 
-#: src/libaudgui/ui_fileopener.c:108
+#: src/libaudgui/playlists.c:33
+msgid "Import Playlist"
+msgstr "Импортировать Список"
+
+#: src/libaudgui/playlists.c:66
+#, c-format
+msgid "Overwrite %s?"
+msgstr "Перезаписать %s?"
+
+#: src/libaudgui/queue-manager.c:196
+msgid "Queue Manager"
+msgstr "Менеджер Очереди"
+
+#: src/libaudgui/ui_fileopener.c:109
 msgid "Open Files"
 msgstr "Открыть файлы"
 
-#: src/libaudgui/ui_fileopener.c:108
+#: src/libaudgui/ui_fileopener.c:109
 msgid "Add Files"
 msgstr "Добавить файлы"
 
-#: src/libaudgui/ui_fileopener.c:110
+#: src/libaudgui/ui_fileopener.c:111
 msgid "Close dialog on Open"
 msgstr "Закрыть окно при открытии"
 
-#: src/libaudgui/ui_fileopener.c:110
+#: src/libaudgui/ui_fileopener.c:111
 msgid "Close dialog on Add"
 msgstr "Закрыть окно при добавлении"
 
-#: src/libaudgui/ui_jumptotrack.c:133
-msgid "Un_queue"
-msgstr "Убрать из очереди"
-
-#: src/libaudgui/ui_jumptotrack.c:135 src/libaudgui/ui_jumptotrack.c:512
+#: src/libaudgui/ui_jumptotrack.c:109 src/libaudgui/ui_jumptotrack.c:117
+#: src/libaudgui/ui_jumptotrack.c:326
 msgid "_Queue"
 msgstr "В очередь"
 
-#: src/libaudgui/ui_jumptotrack.c:399
-msgid "Jump to Track"
-msgstr "Перейти к дорожке"
+#: src/libaudgui/ui_jumptotrack.c:115
+msgid "Un_queue"
+msgstr "Убрать из очереди"
 
-#: src/libaudgui/ui_jumptotrack.c:442
+#: src/libaudgui/ui_jumptotrack.c:258
+msgid "Jump to Song"
+msgstr "Прыжок к Песне"
+
+#: src/libaudgui/ui_jumptotrack.c:281
 msgid "Filter: "
 msgstr "Фильтр: "
 
-#: src/libaudgui/ui_jumptotrack.c:443
+#: src/libaudgui/ui_jumptotrack.c:282
 msgid "_Filter:"
 msgstr "Фильтр:"
 
-#: src/libaudgui/ui_jumptotrack.c:461
+#: src/libaudgui/ui_jumptotrack.c:292
 msgid "Remember"
 msgstr "Запомнить"
 
-#: src/libaudgui/ui_jumptotrack.c:470
+#: src/libaudgui/ui_jumptotrack.c:299
 msgid "Clea_r"
 msgstr "Очистить"
 
-#: src/libaudgui/ui_jumptotrack.c:504
+#: src/libaudgui/ui_jumptotrack.c:319
 msgid "Close on Jump"
 msgstr "Закрыть после перехода"
 
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:253
 msgid "Playlist Manager"
 msgstr "Менеджер списков"
 
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:280
 msgid "Entries"
 msgstr "Элементов"
 
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:301
 msgid "_Rename"
 msgstr "Переименовать"
 
-#: src/libaudgui/ui_playlist_manager.c:251
+#: src/libaudgui/ui_playlist_manager.c:325
 msgid "_Close dialog on activating playlist"
 msgstr "Закрыть окно при выборе списка"
 
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:48
 msgid "Open URL"
 msgstr "Открыть адрес"
 
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:48
 msgid "Add URL"
 msgstr "Добавить адрес"
 
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+"\n"
+"(Дальнейшие сообщения были скрыты.)"
+
 #: src/libeggsmclient/eggdesktopfile.c:165
 msgid "File is not a valid .desktop file"
 msgstr "Этот файл не является корректным файлом .desktop"
 
-#: src/libeggsmclient/eggdesktopfile.c:188
+#: src/libeggsmclient/eggdesktopfile.c:191
 #, c-format
 msgid "Unrecognized desktop file Version '%s'"
 msgstr "Данный .desktop файл имеет неизвестную версию '%s'"
 
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:974
 #, c-format
 msgid "Starting %s"
 msgstr "Запускается %s"
 
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1116
 msgid "Application does not accept documents on command line"
-msgstr "Приложение не поддерживает указание имени документа в командной строке"
+msgstr ""
+"Приложение не поддерживает указание имени документа в командной строке"
 
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1184
 #, c-format
 msgid "Unrecognized launch option: %d"
 msgstr "Неизвестный параметр: %d"
 
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1391
 msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
 msgstr ""
-"Невозможно передать URI документа при использовании записи 'Type=Link' в ."
-"desktop файле."
+"Невозможно передать URI документа при использовании записи 'Type=Link' в "
+".desktop файле."
 
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1412
 msgid "Not a launchable item"
 msgstr "Этот элемент нельзя запустить"
 
@@ -1262,545 +1238,11 @@ msgid "ID"
 msgstr "ID"
 
 #: src/libeggsmclient/eggsmclient.c:253
-#, fuzzy
 msgid "Session management options:"
-msgstr "Параметры управления сессиями"
+msgstr "Управление опциями сессий:"
 
 #: src/libeggsmclient/eggsmclient.c:254
-#, fuzzy
 msgid "Show session management options"
-msgstr "Показать параметры управления сессиями"
-
-#~ msgid "%s: Unable to open display, exiting.\n"
-#~ msgstr "%s: Невозможно открыть экран, выход.\n"
-
-#~ msgid "Preamp:"
-#~ msgstr "Предварительное усиление:"
-
-#~ msgid "Default gain:"
-#~ msgstr "Усиление по умолчанию:"
-
-#~ msgid "This gain will be used if file doesn't contain Replay Gain metadata."
-#~ msgstr ""
-#~ "Это значение будет использовано в случае, если дорожка\n"
-#~ "не содержит данных Replay Gain."
-
-#~ msgid ""
-#~ "<span size=\"small\">Please remember that the most efficient way to "
-#~ "prevent signal clipping is not to use positive values above.</span>"
-#~ msgstr ""
-#~ "<span size=\"small\">Помните, что наиболее эффективный способ избежать "
-#~ "срезания, ― не использовать положительные значения.</span>"
-
-#~ msgid "<b>Replay Gain configuration</b>"
-#~ msgstr "<b>Параметры Replay Gain</b>"
-
-#~ msgid "Track gain/peak"
-#~ msgstr "Усиление и пиковое значение дорожки"
-
-#~ msgid "Album gain/peak"
-#~ msgstr "Усиление и пиковое значение альбома"
-
-#~ msgid "Use peak value from Replay Gain info for clipping prevention"
-#~ msgstr ""
-#~ "Использовать значение пика из метаданных Replay Gain для предотвращения "
-#~ "срезания"
-
-#~ msgid "Classic Rock"
-#~ msgstr "Classic Rock"
-
-#~ msgid "Dance"
-#~ msgstr "Dance"
-
-#~ msgid "Oldies"
-#~ msgstr "Oldies"
-
-#~ msgid "Other"
-#~ msgstr "Other"
-
-#~ msgid "R&B"
-#~ msgstr "R&B"
-
-#~ msgid "Industrial"
-#~ msgstr "Industrial"
-
-#~ msgid "Alternative"
-#~ msgstr "Alternative"
-
-#~ msgid "Pranks"
-#~ msgstr "Pranks"
-
-#~ msgid "Soundtrack"
-#~ msgstr "Soundtrack"
-
-#~ msgid "Euro-Techno"
-#~ msgstr "Euro-Techno"
-
-#~ msgid "Vocal"
-#~ msgstr "Vocal"
-
-#~ msgid "Jazz+Funk"
-#~ msgstr "Jazz+Funk"
-
-#~ msgid "Fusion"
-#~ msgstr "Fusion"
-
-#~ msgid "Trance"
-#~ msgstr "Trance"
-
-#~ msgid "Instrumental"
-#~ msgstr "Instrumental"
-
-#~ msgid "Acid"
-#~ msgstr "Acid"
-
-#~ msgid "Game"
-#~ msgstr "Game"
-
-#~ msgid "Sound Clip"
-#~ msgstr "Sound Clip"
-
-#~ msgid "AlternRock"
-#~ msgstr "AlternRock"
-
-#~ msgid "Bass"
-#~ msgstr "Bass"
-
-#~ msgid "Punk"
-#~ msgstr "Punk"
-
-#~ msgid "Space"
-#~ msgstr "Space"
-
-#~ msgid "Meditative"
-#~ msgstr "Meditative"
-
-#~ msgid "Instrumental Pop"
-#~ msgstr "Instrumental Pop"
-
-#~ msgid "Instrumental Rock"
-#~ msgstr "Instrumental Rock"
-
-#~ msgid "Ethnic"
-#~ msgstr "Ethnic"
-
-#~ msgid "Gothic"
-#~ msgstr "Gothic"
-
-#~ msgid "Darkwave"
-#~ msgstr "Darkwave"
-
-#~ msgid "Techno-Industrial"
-#~ msgstr "Techno-Industrial"
-
-#~ msgid "Electronic"
-#~ msgstr "Electronic"
-
-#~ msgid "Pop-Folk"
-#~ msgstr "Pop-Folk"
-
-#~ msgid "Eurodance"
-#~ msgstr "Eurodance"
-
-#~ msgid "Dream"
-#~ msgstr "Dream"
-
-#~ msgid "Southern Rock"
-#~ msgstr "Southern Rock"
-
-#~ msgid "Comedy"
-#~ msgstr "Comedy"
-
-#~ msgid "Cult"
-#~ msgstr "Cult"
-
-#~ msgid "Top 40"
-#~ msgstr "Top 40"
-
-#~ msgid "Christian Rap"
-#~ msgstr "Christian Rap"
-
-#~ msgid "Pop/Funk"
-#~ msgstr "Pop/Funk"
-
-#~ msgid "Native American"
-#~ msgstr "Native American"
-
-#~ msgid "Cabaret"
-#~ msgstr "Cabaret"
-
-#~ msgid "Psychedelic"
-#~ msgstr "Psychedelic"
-
-#~ msgid "Rave"
-#~ msgstr "Rave"
-
-#~ msgid "Showtunes"
-#~ msgstr "Showtunes"
-
-#~ msgid "Trailer"
-#~ msgstr "Trailer"
-
-#~ msgid "Lo-Fi"
-#~ msgstr "Lo-Fi"
-
-#~ msgid "Tribal"
-#~ msgstr "Tribal"
-
-#~ msgid "Acid Punk"
-#~ msgstr "Acid Punk"
-
-#~ msgid "Polka"
-#~ msgstr "Polka"
-
-#~ msgid "Retro"
-#~ msgstr "Retro"
-
-#~ msgid "Musical"
-#~ msgstr "Musical"
-
-#~ msgid "Folk/Rock"
-#~ msgstr "Folk/Rock"
-
-#~ msgid "National Folk"
-#~ msgstr "National Folk"
-
-#~ msgid "Fast-Fusion"
-#~ msgstr "Fast-Fusion"
-
-#~ msgid "Latin"
-#~ msgstr "Latin"
-
-#~ msgid "Revival"
-#~ msgstr "Revival"
-
-#~ msgid "Celtic"
-#~ msgstr "Celtic"
-
-#~ msgid "Avantgarde"
-#~ msgstr "Avantgarde"
-
-#~ msgid "Gothic Rock"
-#~ msgstr "Gothic Rock"
-
-#~ msgid "Progressive Rock"
-#~ msgstr "Progressive Rock"
-
-#~ msgid "Psychedelic Rock"
-#~ msgstr "Psychedelic Rock"
-
-#~ msgid "Symphonic Rock"
-#~ msgstr "Symphonic Rock"
-
-#~ msgid "Slow Rock"
-#~ msgstr "Slow Rock"
-
-#~ msgid "Big Band"
-#~ msgstr "Big Band"
-
-#~ msgid "Chorus"
-#~ msgstr "Chorus"
-
-#~ msgid "Acoustic"
-#~ msgstr "Acoustic"
-
-#~ msgid "Humour"
-#~ msgstr "Humour"
-
-#~ msgid "Speech"
-#~ msgstr "Speech"
-
-#~ msgid "Chanson"
-#~ msgstr "Chanson"
-
-#~ msgid "Opera"
-#~ msgstr "Opera"
-
-#~ msgid "Sonata"
-#~ msgstr "Sonata"
-
-#~ msgid "Symphony"
-#~ msgstr "Symphony"
-
-#~ msgid "Booty Bass"
-#~ msgstr "Booty Bass"
-
-#~ msgid "Primus"
-#~ msgstr "Primus"
-
-#~ msgid "Porn Groove"
-#~ msgstr "Porn Groove"
-
-#~ msgid "Satire"
-#~ msgstr "Satire"
-
-#~ msgid "Slow Jam"
-#~ msgstr "Slow Jam"
-
-#~ msgid "Club"
-#~ msgstr "Club"
-
-#~ msgid "Tango"
-#~ msgstr "Tango"
-
-#~ msgid "Samba"
-#~ msgstr "Samba"
-
-#~ msgid "Folklore"
-#~ msgstr "Folklore"
-
-#~ msgid "Ballad"
-#~ msgstr "Ballad"
-
-#~ msgid "Power Ballad"
-#~ msgstr "Power Ballad"
-
-#~ msgid "Rhythmic Soul"
-#~ msgstr "Rhythmic Soul"
-
-#~ msgid "Freestyle"
-#~ msgstr "Freestyle"
-
-#~ msgid "Duet"
-#~ msgstr "Duet"
-
-#~ msgid "Drum Solo"
-#~ msgstr "Drum Solo"
-
-#~ msgid "A Cappella"
-#~ msgstr "A Cappella"
-
-#~ msgid "Euro-House"
-#~ msgstr "Euro-House"
-
-#~ msgid "Dance Hall"
-#~ msgstr "Dance Hall"
-
-#~ msgid "Goa"
-#~ msgstr "Goa"
-
-#~ msgid "Drum & Bass"
-#~ msgstr "Drum & Bass"
-
-#~ msgid "Club-House"
-#~ msgstr "Club-House"
-
-#~ msgid "Hardcore"
-#~ msgstr "Hardcore"
-
-#~ msgid "Terror"
-#~ msgstr "Terror"
-
-#~ msgid "Indie"
-#~ msgstr "Indie"
-
-#~ msgid "BritPop"
-#~ msgstr "BritPop"
-
-#~ msgid "Negerpunk"
-#~ msgstr "Negerpunk"
-
-#~ msgid "Polsk Punk"
-#~ msgstr "Polsk Punk"
-
-#~ msgid "Beat"
-#~ msgstr "Beat"
-
-#~ msgid "Christian Gangsta Rap"
-#~ msgstr "Christian Gangsta Rap"
-
-#~ msgid "Black Metal"
-#~ msgstr "Black Metal"
-
-#~ msgid "Crossover"
-#~ msgstr "Crossover"
-
-#~ msgid "Contemporary Christian"
-#~ msgstr "Contemporary Christian"
-
-#~ msgid "Christian Rock"
-#~ msgstr "Christian Rock"
-
-#~ msgid "Merengue"
-#~ msgstr "Merengue"
-
-#~ msgid "Salsa"
-#~ msgstr "Salsa"
-
-#~ msgid "Thrash Metal"
-#~ msgstr "Thrash Metal"
-
-#~ msgid "Anime"
-#~ msgstr "Anime"
-
-#~ msgid "JPop"
-#~ msgstr "JPop"
-
-#~ msgid "Synthpop"
-#~ msgstr "Synthpop"
-
-#, fuzzy
-#~ msgid ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "An audio player for many platforms.\n"
-#~ "Copyright (C) 2005-2011 Audacious Development Team"
-#~ msgstr ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "Звуковой проигрыватель для различных платформ.\n"
-#~ "Copyright (C) 2005-2010 команда разработчиков Audacious"
-
-#~ msgid "Unable to create log file (%s)!\n"
-#~ msgstr "Невозможно создать файл журнала (%s)!\n"
-
-#~ msgid "Print all errors and warnings to stdout"
-#~ msgstr "Выводить все ошибки и предупреждения в стандартный вывод"
-
-#~ msgid "Used in macpacking"
-#~ msgstr "Для внутреннего использования под OS X"
-
-#~ msgid "Sorry, threads aren't supported on your platform.\n"
-#~ msgstr ""
-#~ "К сожалению, многопоточность не поддерживается на данной платформе.\n"
-
-#~ msgid "Module loading not supported! Plugins will not be loaded.\n"
-#~ msgstr "Загрузка модулей не поддерживается! Модули не будут использованы.\n"
-
-#~ msgid "Audacious - Unsupported Version Warning"
-#~ msgstr "Audacious - предупреждение о неподдерживаемой версии"
-
-#~ msgid "<big><b>Audacious2 is not ready yet!</b></big>"
-#~ msgstr "<big><b>Audacious2 всё ещё не готова!</b></big>"
-
-#~ msgid ""
-#~ "<b>Please don't file bugs at this point unless they represent major "
-#~ "problems.</b>"
-#~ msgstr ""
-#~ "<b>Пожалуйста, не уведомляйте пока что об ошибках, если они не являются "
-#~ "критическими.</b>"
-
-#~ msgid ""
-#~ "This is an <i>alpha</i> build of Audacious2. It is still fairly "
-#~ "incomplete and unpolished.\n"
-#~ "We suspect that most minor bugs reported during this time will be "
-#~ "resolved once more things\n"
-#~ "stablize. However, if there is a major bug, such as a crash on playing a "
-#~ "specific file, we\n"
-#~ "need to know about it.\n"
-#~ "\n"
-#~ "However, we ask you to be aware that dealing with trivial bugs is "
-#~ "distracting at this point,\n"
-#~ "and to please refrain from doing so. Thanks in advance!"
-#~ msgstr ""
-#~ "Это <i>альфа</i> версия Audacious2. Она пока ещё не закончена и не "
-#~ "отполирована.\n"
-#~ "Мы ожидаем, что многие мелкие ошибки, о которых было сообщено за это "
-#~ "время, будут устранены.\n"
-#~ "Однако, если есть серьёзная ошибка, такая, как аварийное завершение во "
-#~ "время воспроизведения конкретного файла, то мы\n"
-#~ " хотели бы знать об этом.\n"
-#~ "\n"
-#~ "Однако, мы просим вас воздержаться от уведомления о простых ошибках.\n"
-#~ "Заранее благодарим!"
-
-#~ msgid "<b>Blogging about bugs in it is also not helpful.</b>"
-#~ msgstr "<b>Описание ошибок в блогах также мало полезно.</b>"
-
-#~ msgid ""
-#~ "Likewise, we're developers. We don't read blogs on a regular basis. If "
-#~ "there is a major bug,\n"
-#~ "we ask you to bring it to our attention via our bugtracking instance at "
-#~ "http://jira.atheme.org/,\n"
-#~ "or via the forums that are on the website.\n"
-#~ "\n"
-#~ "This will help us find out more information about your concerns, which we "
-#~ "would likely\n"
-#~ "not know about otherwise."
-#~ msgstr ""
-#~ "Более того, мы ― разработчики. Мы не читаем блоги на регулярной основе. "
-#~ "Если обнаружена серьёзная ошибка,\n"
-#~ "мы просим вас представить её нашему вниманию через систему отслеживания "
-#~ "ошибок на сайте http://jira.atheme.org/,\n"
-#~ "или же через форум на этом сайте.\n"
-#~ "\n"
-#~ "Это поможет нам получить больше информации о ваших проблемах, о которых "
-#~ "мы, вероятно,\n"
-#~ "не узнаем иным способом."
-
-#~ msgid "Playback"
-#~ msgstr "Воспроизведение"
-
-#~ msgid "<b>Playback</b>"
-#~ msgstr "<b>Воспроизведение</b>"
-
-#~ msgid ""
-#~ "When Audacious starts, automatically begin playing from the point where "
-#~ "we stopped before."
-#~ msgstr ""
-#~ "После запуска Audacious, автоматически продолжать проигрывание с момента "
-#~ "остановки."
-
-#~ msgid "Don't advance in the playlist"
-#~ msgstr "Не продвигаться по списку воспроизведения"
-
-#~ msgid ""
-#~ "When finished playing a song, don't automatically advance to the next."
-#~ msgstr ""
-#~ "После завершения проигрывания дорожки не передвигаться автоматически на "
-#~ "следующую."
-
-#~ msgid "Enabled"
-#~ msgstr "Включён"
-
-#~ msgid "Description"
-#~ msgstr "Описание"
-
-#~ msgid "Output Plugin Preferences"
-#~ msgstr "Параметры модуля вывода звука"
-
-#~ msgid "Output Plugin Information"
-#~ msgstr "Информация о модуле вывода звука"
-
-#~ msgid "_Decoder list:"
-#~ msgstr "Список модулей декодеров:"
-
-#~ msgid "<span size=\"medium\"><b>Decoders</b></span>"
-#~ msgstr "<span size=\"medium\"><b>Декодеры</b></span>"
-
-#~ msgid "_General plugin list:"
-#~ msgstr "Список модулей общего назначения:"
-
-#~ msgid "<span size=\"medium\"><b>General</b></span>"
-#~ msgstr "<span size=\"medium\"><b>Общие</b></span>"
-
-#~ msgid "_Visualization plugin list:"
-#~ msgstr "Список модулей визуализации:"
-
-#~ msgid "Effect plugins:"
-#~ msgstr "Список модулей эффектов:"
-
-#~ msgid "<span size=\"small\">General</span>"
-#~ msgstr "<span size=\"small\">Основное</span>"
-
-#~ msgid "<span size=\"small\">Location</span>"
-#~ msgstr "<span size=\"small\">Расположение</span>"
-
-#~ msgid "<span size=\"small\">Raw Metadata</span>"
-#~ msgstr "<span size=\"small\">Метаданные</span>"
-
-#~ msgid "Key"
-#~ msgstr "Ключ"
-
-#~ msgid "Value"
-#~ msgstr "Значение"
-
-#~ msgid "170 Hz"
-#~ msgstr "170 Гц"
-
-#~ msgid "310 Hz"
-#~ msgstr "310 Гц"
+msgstr "Показать опции управления сессиями"
 
-#~ msgid "3 kHz"
-#~ msgstr "3 кГц"
 
-#~ msgid "6 kHz"
-#~ msgstr "6 кГц"
diff --git a/po/sk.po b/po/sk.po
index 41947f8..b8b1d32 100644
--- a/po/sk.po
+++ b/po/sk.po
@@ -1,26 +1,37 @@
-# translation of sk.po to Slovak
 # Slovak translation for Audacious
-# Copyright (C) 2007, 2009, 2010, 2011 Andrej Herceg <herceg.andrej at zoznam.sk>
+# Copyright (C) Audacious translators
 # This file is distributed under the same license as the Audacious package.
 #
-#
+# Translators:
 # Andrej Herceg <herceg.andrej at zoznam.sk>, 2007, 2009, 2010, 2011.
+# Tomáš Vadina <kyberdev at gmail.com>, 2012.
 msgid ""
 msgstr ""
-"Project-Id-Version: sk\n"
-"Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
-"PO-Revision-Date: 2011-03-13 20:31+0100\n"
-"Last-Translator: Andrej Herceg <herceg.andrej at zoznam.sk>\n"
-"Language-Team: Slovak <Slovak <sk-i18n at lists.linux.sk>>\n"
-"Language: sk\n"
+"Project-Id-Version: Audacious\n"
+"Report-Msgid-Bugs-To: http://redmine.audacious-media-player.org/\n"
+"POT-Creation-Date: 2011-12-29 19:27-0500\n"
+"PO-Revision-Date: 2012-01-06 08:50+0000\n"
+"Last-Translator: Tomáš Vadina <kyberdev at gmail.com>\n"
+"Language-Team: Slovak\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms:  nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n"
-"X-Generator: KBabel 1.11.4\n"
+"Language: sk\n"
+"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2\n"
+
+#: src/audacious/adder.c:77
+msgid "Searching ..."
+msgstr "Vyhľadáva sa …"
+
+#: src/audacious/adder.c:113
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] "Nájdených %d súborov"
+msgstr[1] "Nájdený %d súbor"
+msgstr[2] "Nájdené %d súbory"
 
-#: src/audacious/chardet.c:37
+#: src/audacious/chardet.c:39
 msgid "  (invalid UTF-8)"
 msgstr "  (neplatné UTF-8)"
 
@@ -44,248 +55,236 @@ msgstr "Vývoj zásuvných modulov:"
 msgid "Patch authors:"
 msgstr "Autori záplat:"
 
-#: src/audacious/credits.c:126
+#: src/audacious/credits.c:127
 msgid "1.x developers:"
 msgstr "Vývojári verzie 1.x:"
 
-#: src/audacious/credits.c:148
+#: src/audacious/credits.c:149
 msgid "BMP Developers:"
 msgstr "Vývojári BMP:"
 
-#: src/audacious/credits.c:180
+#: src/audacious/credits.c:181
 msgid "Belarusian:"
 msgstr "Bieloruština:"
 
-#: src/audacious/credits.c:183
+#: src/audacious/credits.c:184
 msgid "Basque:"
 msgstr "Baskičtina:"
 
-#: src/audacious/credits.c:186
+#: src/audacious/credits.c:187
 msgid "Brazilian Portuguese:"
 msgstr "Brazílska portugalčina:"
 
-#: src/audacious/credits.c:190
+#: src/audacious/credits.c:192
 msgid "Breton:"
 msgstr "Bretónčina:"
 
-#: src/audacious/credits.c:193
+#: src/audacious/credits.c:195
 msgid "Bulgarian:"
 msgstr "Bulharčina:"
 
-#: src/audacious/credits.c:196
+#: src/audacious/credits.c:198
 msgid "Catalan:"
 msgstr "Katalánčina:"
 
-#: src/audacious/credits.c:199
+#: src/audacious/credits.c:202
 msgid "Chinese:"
 msgstr "Čínština:"
 
-#: src/audacious/credits.c:202
+#: src/audacious/credits.c:205
 msgid "Croatian:"
 msgstr "Chorvátčina:"
 
-#: src/audacious/credits.c:205
+#: src/audacious/credits.c:208
 msgid "Czech:"
 msgstr "Čeština:"
 
-#: src/audacious/credits.c:208
+#: src/audacious/credits.c:211
 msgid "Dutch:"
 msgstr "Holandčina:"
 
-#: src/audacious/credits.c:212
+#: src/audacious/credits.c:215
 msgid "Estonian:"
 msgstr "Estónčina:"
 
-#: src/audacious/credits.c:215
+#: src/audacious/credits.c:218
 msgid "Finnish:"
 msgstr "Fínčina:"
 
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:223
 msgid "French:"
 msgstr "Francúzščina:"
 
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:229
 msgid "German:"
 msgstr "Nemčina:"
 
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:236
 msgid "Georgian:"
 msgstr "Gruzínčina:"
 
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:239
 msgid "Greek:"
 msgstr "Gréčtina:"
 
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:244
 msgid "Hindi:"
 msgstr "Hindčina:"
 
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:247
 msgid "Hungarian:"
 msgstr "Maďarčina:"
 
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:251
 msgid "Italian:"
 msgstr "Taliančina:"
 
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:256
 msgid "Japanese:"
 msgstr "Japončina:"
 
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:259
 msgid "Korean:"
 msgstr "Kórejčina:"
 
-#: src/audacious/credits.c:256
+#: src/audacious/credits.c:262
 msgid "Latvian:"
 msgstr "Lotyština:"
 
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:265
 msgid "Lithuanian:"
 msgstr "Litovčina:"
 
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:270
 msgid "Macedonian:"
 msgstr "Macedónčina:"
 
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:273
 msgid "Polish:"
 msgstr "Poľština:"
 
-#: src/audacious/credits.c:271
+#: src/audacious/credits.c:279
 msgid "Portuguese:"
 msgstr "Portugalčina:"
 
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:282
 msgid "Romanian:"
 msgstr "Rumunčina:"
 
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:286
 msgid "Russian:"
 msgstr "Ruština:"
 
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:290
 msgid "Serbian (Latin):"
 msgstr "Srbščina (latinka):"
 
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:293
 msgid "Serbian (Cyrillic):"
 msgstr "Srbščina (cyrilika):"
 
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:297
 msgid "Simplified Chinese:"
 msgstr "Zjednodušená čínština:"
 
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:300
 msgid "Slovak:"
 msgstr "Slovenčina:"
 
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:303
 msgid "Spanish:"
 msgstr "Španielčina:"
 
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:311
 msgid "Swedish:"
 msgstr "Švédčina:"
 
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:314
 msgid "Traditional Chinese:"
 msgstr "Tradičná čínština:"
 
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:320
 msgid "Turkish:"
 msgstr "Turečtina:"
 
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:324
 msgid "Ukrainian:"
 msgstr "Ukrajinčina:"
 
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:328
+msgid "Vietnamese:"
+msgstr "Vietnamčina:"
+
+#: src/audacious/credits.c:331
 msgid "Welsh:"
 msgstr "Welsčina:"
 
-#: src/audacious/drct.c:254
-msgid "Temporary Playlist"
-msgstr "Dočasný zoznam skladieb"
-
-#: src/audacious/equalizer_preset.c:186
+#: src/audacious/equalizer_preset.c:180
 #, c-format
 msgid "Error importing Winamp EQF file '%s'"
 msgstr "Chyba pri importovaní WinAMP EQF súboru '%s'"
 
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr "Vyhľadáva sa …"
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] "Nájdený jeden súbor"
-msgstr[1] "Nájdené %d súbory"
-msgstr[2] "Nájdených %d súborov"
-
-#: src/audacious/main.c:247
+#: src/audacious/main.c:243
 msgid "Skip backwards in playlist"
 msgstr "Preskočí na predchádzajúcu skladbu"
 
-#: src/audacious/main.c:248
+#: src/audacious/main.c:244
 msgid "Start playing current playlist"
 msgstr "Začne prehrávať aktuálny zoznam skladieb"
 
-#: src/audacious/main.c:249
+#: src/audacious/main.c:245
 msgid "Pause current song"
 msgstr "Pozastaví prehrávanú skladbu"
 
-#: src/audacious/main.c:250
+#: src/audacious/main.c:246
 msgid "Stop current song"
 msgstr "Zastaví prehrávanú skladbu"
 
-#: src/audacious/main.c:251
+#: src/audacious/main.c:247
 msgid "Pause if playing, play otherwise"
 msgstr "Pri prehrávaní pozastaví, inak začne prehrávať"
 
-#: src/audacious/main.c:252
+#: src/audacious/main.c:248
 msgid "Skip forward in playlist"
 msgstr "Preskočí na nasledujúcu skladbu"
 
-#: src/audacious/main.c:253
+#: src/audacious/main.c:249
 msgid "Display Jump to File dialog"
 msgstr "Zobrazí okno \"Presun na súbor\""
 
-#: src/audacious/main.c:254
+#: src/audacious/main.c:250
 msgid "Add files to the playlist"
 msgstr "Pridá súbory do zoznamu skladieb"
 
-#: src/audacious/main.c:255
+#: src/audacious/main.c:251
 msgid "Add new files to a temporary playlist"
 msgstr "Pridá súbory do dočasného zoznamu skladieb"
 
-#: src/audacious/main.c:256
+#: src/audacious/main.c:252
 msgid "Display the main window"
 msgstr "Zobrazí hlavné okno"
 
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr "Zobrazí všetky otvorené okná Audacious"
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:253
 msgid "Show version"
 msgstr "Zobrazí verziu"
 
-#: src/audacious/main.c:259
+#: src/audacious/main.c:254
 msgid "Print debugging messages"
 msgstr "Vypisuje ladiace hlásenia"
 
-#: src/audacious/main.c:260
+#: src/audacious/main.c:255
+msgid "Headless mode (beta)"
+msgstr "Bezhlavý režim (beta)"
+
+#: src/audacious/main.c:256
 msgid "FILE..."
 msgstr "SÚBOR..."
 
-#: src/audacious/main.c:272
+#: src/audacious/main.c:268
 msgid "- play multimedia files"
 msgstr "- prehrať multimediálne súbory"
 
-#: src/audacious/main.c:282
+#: src/audacious/main.c:278
 #, c-format
 msgid ""
 "%s: %s\n"
@@ -294,329 +293,297 @@ msgstr ""
 "%s: %s\n"
 "Ak chcete viac informácií vyskúšajte \"%s --help\".\n"
 
-#: src/audacious/main.c:395
-msgid ""
-"Audacious seems to be already running but is not responding.  You can start "
-"another instance of the program, but please be warned that this can cause "
-"data loss.  If Audacious is not running, you can safely ignore this "
-"message.  Press OK to start Audacious or Cancel to quit."
-msgstr ""
-
-#: src/audacious/main.c:558
+#: src/audacious/main.c:572
 msgid "Audacious"
 msgstr "Audacious"
 
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:307
 #, c-format
 msgid "No decoder found for %s."
 msgstr "Pre %s nebol nájdený žiadny dekodér."
 
-#: src/audacious/playback.c:519
-msgid "Buffering ..."
-msgstr "Napĺňanie vyrovnávacej pamäte …"
+#: src/audacious/playlist-new.c:131
+msgid "New Playlist"
+msgstr "Nový zoznam skladieb"
 
-#: src/audacious/playlist-new.c:288
-msgid "Untitled Playlist"
-msgstr "Nepomenovaný zoznam skladieb"
+#: src/audacious/playlist-new.c:132
+msgid "Now Playing"
+msgstr "Práve hrá"
 
-#: src/audacious/ui_preferences.c:88
+#: src/audacious/playlist-new.c:1627
+msgid ""
+"The playlist cannot be sorted because metadata scanning is still in progress"
+" (or has been disabled)."
+msgstr ""
+"Zoznam skladieb nie je možné triediť, pretože skenovanie metadát stále "
+"prebieha (alebo boli zakázané)."
+
+#: src/audacious/ui_preferences.c:85
 msgid "Audio"
 msgstr "Zvuk"
 
-#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
-msgstr "Zosilnenie pri prehrávaní"
-
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:86
 msgid "Network"
 msgstr "Sieť"
 
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:87 src/audacious/ui_preferences.c:1603
 msgid "Playlist"
 msgstr "Zoznam skladieb"
 
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:88
 msgid "Plugins"
 msgstr "Moduly"
 
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:94 src/libaudgui/infopopup.c:203
 msgid "Artist"
 msgstr "Umelec"
 
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:95 src/libaudgui/infopopup.c:205
 msgid "Album"
 msgstr "Album"
 
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:201
+#: src/libaudgui/ui_playlist_manager.c:279
 msgid "Title"
 msgstr "Názov"
 
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:97
 msgid "Tracknumber"
 msgstr "Číslo stopy"
 
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:207
 msgid "Genre"
 msgstr "Žáner"
 
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:99
 msgid "Filename"
 msgstr "Názov súboru"
 
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:100
 msgid "Filepath"
 msgstr "Cesta k súboru"
 
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:101
 msgid "Date"
 msgstr "Dátum"
 
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:209
 msgid "Year"
 msgstr "Rok"
 
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:103
 msgid "Comment"
 msgstr "Komentár"
 
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:104
 msgid "Codec"
 msgstr "Kodér"
 
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:105
 msgid "Quality"
 msgstr "Kvalita"
 
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:111
 msgid "None"
 msgstr "Žiadne"
 
+#: src/audacious/ui_preferences.c:112
+msgid "Arabic"
+msgstr "Arabština"
+
+#: src/audacious/ui_preferences.c:113
+msgid "Baltic"
+msgstr "Baltské jazyky"
+
+#: src/audacious/ui_preferences.c:114
+msgid "Chinese"
+msgstr "Čínština"
+
 #: src/audacious/ui_preferences.c:115
-msgid "Japanese"
-msgstr "Japončina"
+msgid "Greek"
+msgstr "Gréčtina"
 
 #: src/audacious/ui_preferences.c:116
-msgid "Taiwanese"
-msgstr "Taiwančina"
+msgid "Hebrew"
+msgstr "Hebrejčina"
 
 #: src/audacious/ui_preferences.c:117
-msgid "Chinese"
-msgstr "Čínština"
+msgid "Japanese"
+msgstr "Japončina"
 
 #: src/audacious/ui_preferences.c:118
 msgid "Korean"
 msgstr "Kórejčina"
 
 #: src/audacious/ui_preferences.c:119
-msgid "Russian"
-msgstr "Ruština"
+msgid "Polish"
+msgstr "Poľština"
 
 #: src/audacious/ui_preferences.c:120
-msgid "Greek"
-msgstr "Gréčtina"
+msgid "Russian"
+msgstr "Ruština"
 
 #: src/audacious/ui_preferences.c:121
-msgid "Hebrew"
-msgstr "Hebrejčina"
+msgid "Taiwanese"
+msgstr "Taiwančina"
 
 #: src/audacious/ui_preferences.c:122
 msgid "Turkish"
 msgstr "Turečtina"
 
-#: src/audacious/ui_preferences.c:123
-msgid "Arabic"
-msgstr "Arabština"
-
-#: src/audacious/ui_preferences.c:124
-msgid "Polish"
-msgstr "Poľština"
-
-#: src/audacious/ui_preferences.c:125
-msgid "Baltic"
-msgstr "Baltské jazyky"
-
-#: src/audacious/ui_preferences.c:126
-msgid "Universal"
-msgstr "Univerzálne"
-
-#: src/audacious/ui_preferences.c:146
-msgid "<b>Bit Depth</b>"
-msgstr "<b>Bitová hĺbka</b>"
+#: src/audacious/ui_preferences.c:144
+msgid "Album mode"
+msgstr "Režim albumu"
 
 #: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr "Bitová hĺbka výstupu:"
-
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
-"Všetky prúdy budú skonvertované na túto bitovú hĺbku.\n"
-"Mala by to byť najväčšia podporovaná bitová hĺbka zvukovej\n"
-"karty alebo výstupného modulu."
+msgid "<b>Output Settings</b>"
+msgstr "<b>Nastavenia výstupu</b>"
 
-#: src/audacious/ui_preferences.c:151
-msgid "<b>Volume Control</b>"
-msgstr "<b>Ovládanie hlasitosti</b>"
+#: src/audacious/ui_preferences.c:149
+msgid "Bit depth:"
+msgstr "Bitová hĺbka:"
 
 #: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr "Použiť softvérové ovládanie hlasitosti"
+msgid "Buffer size:"
+msgstr "Veľkosť vyrovnávacej pamäte:"
 
 #: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
-"Použije sa softvérové ovládanie hlasitosti. Toto môže byť užitočné v "
-"prípade, že zvukový systém nepodporuje ovládanie hlasitosti prehrávania."
+msgid "ms"
+msgstr "ms"
 
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
-msgstr "dB"
-
-#: src/audacious/ui_preferences.c:160
-#, fuzzy
-msgid "Amplify untagged files:"
-msgstr "- prehrať multimediálne súbory"
+#: src/audacious/ui_preferences.c:155
+msgid "Use software volume control (not recommended)"
+msgstr "Použiť softvérové ovládanie hlasitosti (neodporúča sa)"
 
-#: src/audacious/ui_preferences.c:164
-#, fuzzy
+#: src/audacious/ui_preferences.c:157
 msgid "<b>Replay Gain</b>"
-msgstr "<b>Režim zosilnenia pri prehrávaní</b>"
+msgstr "<b>Zosilnenie pri prehrávaní</b>"
 
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:158
 msgid "Enable Replay Gain"
 msgstr "Povoliť zosilnenie pri prehrávaní"
 
-#: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>Metadáta</b>"
-
-#: src/audacious/ui_preferences.c:168
-msgid "Single track mode"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "Album"
+#: src/audacious/ui_preferences.c:161
+msgid "Prevent clipping (recommended)"
+msgstr "Predchádzať orezávaniu (odporúča sa)"
 
-#: src/audacious/ui_preferences.c:172
-#, fuzzy
+#: src/audacious/ui_preferences.c:163
 msgid "<b>Adjust Levels</b>"
-msgstr "<b>Zvukový systém</b>"
+msgstr "<b>Nastavenie úrovní</b>"
 
-#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "<b>Vyskakovacie okno s podrobnosťami</b>"
+#: src/audacious/ui_preferences.c:164
+msgid "Amplify all files:"
+msgstr "Zosilniť všetky súbory:"
 
-#: src/audacious/ui_preferences.c:176
-#, fuzzy
-msgid "Enable clipping prevention"
-msgstr "Použiť informácie o vrchole na ochranu pred orezaním signálu"
+#: src/audacious/ui_preferences.c:166 src/audacious/ui_preferences.c:169
+msgid "dB"
+msgstr "dB"
 
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify untagged files:"
+msgstr "Zosilniť súbory bez popisov:"
+
+#: src/audacious/ui_preferences.c:172
 msgid "Proxy hostname:"
 msgstr "Meno počítača:"
 
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:173
 msgid "Proxy port:"
 msgstr "Port:"
 
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:176
 msgid "Proxy username:"
 msgstr "Používateľ:"
 
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:177
 msgid "Proxy password:"
 msgstr "Heslo:"
 
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:181
 msgid "<b>Proxy Configuration</b>"
 msgstr "<b>Nastavenie proxy</b>"
 
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:182
 msgid "Enable proxy usage"
 msgstr "Používať proxy"
 
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:185
 msgid "Use authentication with proxy"
 msgstr "Používať autentifikáciu"
 
-#: src/audacious/ui_preferences.c:197
-msgid ""
-"<span size=\"small\">Changing these settings will require a restart of "
-"Audacious.</span>"
-msgstr ""
-"<span size=\"small\">Zmena týchto nastavení sa prejaví až po reštarte "
-"Audacious.</span>"
-
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
 msgid "Auto character encoding detector for:"
 msgstr "Automatické rozoznávanie kódovania znakov:"
 
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:198
 msgid "Fallback character encodings:"
 msgstr "Záložné kódovanie znakov:"
 
-#: src/audacious/ui_preferences.c:209
-msgid ""
-"List of character encodings used for fall back conversion of metadata. If "
-"automatic character encoding detector failed or has been disabled, encodings "
-"in this list would be treated as candidates of the encoding of metadata, and "
-"fall back conversion from these encodings to UTF-8 would be attempted."
-msgstr ""
-"Zoznam kódovaní znakov použitých pri konverzii metadát, ak je automatické "
-"rozpoznávanie zakázané alebo neuspeje. Kódovania z tohoto zoznamu budú "
-"použité na konverziu metadát do UTF-8."
-
-#: src/audacious/ui_preferences.c:213
+#: src/audacious/ui_preferences.c:202
 msgid "<b>Behavior</b>"
 msgstr "<b>Správanie</b>"
 
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:203
 msgid "Continue playback on startup"
 msgstr "Po spustení pokračovať v prehrávaní"
 
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:205
 msgid "Advance when the current song is deleted"
 msgstr "Prejsť na nasledujúcu skladbu ak je aktuálna skladba vymazaná"
 
-#: src/audacious/ui_preferences.c:218
+#: src/audacious/ui_preferences.c:207
 msgid "Clear the playlist when opening files"
 msgstr "Pri otvorení súborov vyprázdniť zoznam skladieb"
 
-#: src/audacious/ui_preferences.c:220
+#: src/audacious/ui_preferences.c:209
 msgid "Open files in a temporary playlist"
 msgstr "Otvoriť súbory do dočasného zoznamu skladieb"
 
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:211
 msgid "<b>Metadata</b>"
 msgstr "<b>Metadáta</b>"
 
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:212
+msgid "Do not load metadata for songs until played"
+msgstr "Nenačítať metadáta skladieb pred prehraním"
+
+#: src/audacious/ui_preferences.c:230
+msgid "TITLE"
+msgstr "NÁZOV"
+
+#: src/audacious/ui_preferences.c:231
+msgid "ARTIST - TITLE"
+msgstr "UMELEC - NÁZOV"
+
+#: src/audacious/ui_preferences.c:232
+msgid "ARTIST - ALBUM - TITLE"
+msgstr "UMELEC - ALBUM - NÁZOV"
+
+#: src/audacious/ui_preferences.c:233
+msgid "ARTIST - ALBUM - TRACK. TITLE"
+msgstr "UMELEC - ALBUM - STOPA. NÁZOV"
+
+#: src/audacious/ui_preferences.c:234
+msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
+msgstr "UMELEC [ALBUM] - STOPA. NÁZOV"
+
+#: src/audacious/ui_preferences.c:235
+msgid "ALBUM - TITLE"
+msgstr "ALBUM - NÁZOV"
+
+#: src/audacious/ui_preferences.c:556
 msgid "Category"
 msgstr "Kategória"
 
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:780
 msgid "Popup Information Settings"
 msgstr "Nastavenie vyskakovacieho okna s informáciami"
 
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:789
 msgid "<b>Cover image retrieve</b>"
 msgstr "<b>Získanie obrázku obalu</b>"
 
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:794
 msgid ""
 "While searching for the album's cover, Audacious looks for certain words in "
 "the filename. You can specify those words in the lists below, separated "
@@ -625,175 +592,151 @@ msgstr ""
 "Pri hľadaní obalu albumu hľadá Audacious určité slová v názve súboru. Tieto "
 "slová môžete zadať, oddelené čiarkou, do nižšie uvedených zoznamov."
 
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:811
 msgid "Exclude:"
 msgstr "Vylúčiť:"
 
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:818
 msgid "Include:"
 msgstr "Zahrnúť:"
 
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:835
 msgid "Recursively search for cover"
 msgstr "Rekurzívne hľadanie obalu"
 
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:845
 msgid "Search depth: "
 msgstr "Hĺbka hľadania: "
 
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:859
 msgid "Use per-file cover"
 msgstr "Obrázok obalu pre každý súbor zvlášť"
 
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:862
 msgid "<b>Miscellaneous</b>"
 msgstr "<b>Rôzne</b>"
 
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:871
 msgid "Show Progress bar for the current track"
 msgstr "Zobraziť pruh priebehu pre pozíciu v prehrávanej skladbe"
 
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:881
 msgid "Delay until filepopup comes up: "
 msgstr "Oneskorenie zobrazenia vyskakovacieho okna: "
 
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1309
+msgid "Custom"
+msgstr "Vlastné"
+
+#: src/audacious/ui_preferences.c:1352
 msgid "<b>Song Display</b>"
 msgstr "<b>Zobrazenie skladby</b>"
 
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1361
 msgid "Show song numbers"
 msgstr "Zobraziť čísla skladieb"
 
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1372
 msgid "Show leading zeroes (02:00 instead of 2:00)"
 msgstr "Zobrazovať úvodné nuly (02:00 namiesto 2:00)"
 
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1394
 msgid "Show information about titlestring format"
 msgstr "Zobraziť informácie o formáte názvu"
 
-#: src/audacious/ui_preferences.c:1514
-msgid "TITLE"
-msgstr "NÁZOV"
-
-#: src/audacious/ui_preferences.c:1515
-msgid "ARTIST - TITLE"
-msgstr "UMELEC - NÁZOV"
-
-#: src/audacious/ui_preferences.c:1516
-msgid "ARTIST - ALBUM - TITLE"
-msgstr "UMELEC - ALBUM - NÁZOV"
-
-#: src/audacious/ui_preferences.c:1517
-msgid "ARTIST - ALBUM - TRACK. TITLE"
-msgstr "UMELEC - ALBUM - STOPA. NÁZOV"
-
-#: src/audacious/ui_preferences.c:1518
-msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
-msgstr "UMELEC [ALBUM] - STOPA. NÁZOV"
-
-#: src/audacious/ui_preferences.c:1519
-msgid "ALBUM - TITLE"
-msgstr "ALBUM - NÁZOV"
-
-#: src/audacious/ui_preferences.c:1520
-msgid "Custom"
-msgstr "Vlastné"
-
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1410
 msgid "Custom string:"
 msgstr "Vlastný reťazec:"
 
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1417
 msgid "Title format:"
 msgstr "Formát názvu:"
 
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1428
 msgid "<b>Popup Information</b>"
 msgstr "<b>Vyskakovacie okno s podrobnosťami</b>"
 
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1443
 msgid "Show popup information for playlist entries"
 msgstr "Zobrazovať okno s informáciami pre položky v zozname skladieb"
 
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1444
 msgid ""
 "Toggles popup information window for the pointed entry in the playlist. The "
 "window shows title of song, name of album, genre, year of publish, track "
 "number, track length, and artwork."
 msgstr ""
-"Prepne zobrazovanie vyskakovacieho okna s podrobnosťami o vybranej položke v "
-"zozname skladieb. V okne sa zobrazí názov skladby, názov albumu, žáner, rok "
-"vydania, číslo stopy, dĺžka stopy a obal."
+"Prepne zobrazovanie vyskakovacieho okna s podrobnosťami o vybranej položke v"
+" zozname skladieb. V okne sa zobrazí názov skladby, názov albumu, žáner, rok"
+" vydania, číslo stopy, dĺžka stopy a obal."
 
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1455
 msgid "Edit settings for popup information"
 msgstr "Upraviť nastavenia pre vyskakovacie okno s informáciami"
 
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>Zvukový systém</b>"
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "Veľkosť vyrovnávacej pamäte:"
-
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
-msgstr "Aktuálny výstupný modul:"
+#: src/audacious/ui_preferences.c:1544
+msgid "Output plugin:"
+msgstr "Výstupný modul:"
 
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1603
 msgid "Transport"
 msgstr "Prenos"
 
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1603
 msgid "Input"
 msgstr "Vstup"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1604
 msgid "Effect"
 msgstr "Efekt"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1604
 msgid "Visualization"
 msgstr "Vizualizácia"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1604
 msgid "General"
 msgstr "Všeobecné"
 
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1644
 msgid "Audacious Preferences"
 msgstr "Nastavenia programu"
 
-#: src/audacious/util.c:161
+#: src/audacious/util.c:120
 #, c-format
 msgid "Could not create directory (%s): %s\n"
 msgstr "Nepodarilo sa vytvoriť adresár (%s): %s\n"
 
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:273
 msgid "Position not found."
 msgstr "Pozícia nenájdená."
 
-#: src/audtool/handlers_vitals.c:64
+#: src/audtool/handlers_vitals.c:63
 msgid "No song playing."
 msgstr "Nehrá žiadna skladba."
 
-#: src/libaudcore/tuple.c:685
+#: src/libaudcore/audstrings.c:194
+#, c-format
+msgid "Audio CD, track %s"
+msgstr "Zvukové CD, stopa %s"
+
+#: src/libaudcore/tuple.c:536
 msgid "Mono"
 msgstr "Mono"
 
-#: src/libaudcore/tuple.c:687
+#: src/libaudcore/tuple.c:538
 msgid "Stereo"
 msgstr "Stereo"
 
-#: src/libaudcore/tuple.c:689
+#: src/libaudcore/tuple.c:540
 #, c-format
-msgid "%d channels"
-msgstr "%d kanálov"
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] "%d kanálov"
+msgstr[1] "%d kanál"
+msgstr[2] "%d kanály"
 
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/confirm.c:78
 #, c-format
 msgid ""
 "Are you sure you want to close %s?  If you do, any changes made since the "
@@ -802,11 +745,11 @@ msgstr ""
 "Ste si istý, že chcete zatvoriť %s? Ak tak urobíte, akékoľvek zmeny urobené "
 "od posledného exportu budú stratené."
 
-#: src/libaudgui/confirm.c:77
+#: src/libaudgui/confirm.c:91
 msgid "_Don't show this message again"
 msgstr "_Túto správu už nezobrazovať"
 
-#: src/libaudgui/confirm.c:115
+#: src/libaudgui/confirm.c:128
 msgid "Rename Playlist"
 msgstr "Premenovať zoznam skladieb"
 
@@ -814,299 +757,319 @@ msgstr "Premenovať zoznam skladieb"
 msgid "settings ..."
 msgstr "nastavenia …"
 
-#: src/libaudgui/equalizer.c:68
+#: src/libaudgui/equalizer.c:53
 msgid "_Enable"
 msgstr "_Povoliť"
 
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:125
 msgid "31 Hz"
 msgstr "31 Hz"
 
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:125
 msgid "63 Hz"
 msgstr "63 Hz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:126
 msgid "125 Hz"
 msgstr "125 Hz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:126
 msgid "250 Hz"
 msgstr "250 Hz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:126
 msgid "500 Hz"
 msgstr "500 Hz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:126
 msgid "1 kHz"
 msgstr "1 kHz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:126
 msgid "2 kHz"
 msgstr "2 kHz"
 
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:127
 msgid "4 kHz"
 msgstr "4 kHz"
 
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:127
 msgid "8 kHz"
 msgstr "8 kHz"
 
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:127
 msgid "16 kHz"
 msgstr "16 kHz"
 
-#: src/libaudgui/equalizer.c:147
+#: src/libaudgui/equalizer.c:132
 msgid "Equalizer"
 msgstr "Ekvalizér"
 
-#: src/libaudgui/equalizer.c:163
+#: src/libaudgui/equalizer.c:148
 msgid "Preamp"
 msgstr "Predzosilnenie"
 
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:211
 msgid "Track Number"
 msgstr "Číslo stopy"
 
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:213
 msgid "Track Length"
 msgstr "Dĺžka stopy"
 
-#: src/libaudgui/infowin.c:77
+#: src/libaudgui/infowin.c:78
 msgid "Acid Jazz"
 msgstr "Acid Jazz"
 
-#: src/libaudgui/infowin.c:78
-#, fuzzy
+#: src/libaudgui/infowin.c:79
 msgid "Acid Rock"
-msgstr "Hard Rock"
+msgstr "Acid Rock"
 
-#: src/libaudgui/infowin.c:79
+#: src/libaudgui/infowin.c:80
 msgid "Ambient"
 msgstr "Ambient"
 
-#: src/libaudgui/infowin.c:80
-#, fuzzy
+#: src/libaudgui/infowin.c:81
 msgid "Bebop"
-msgstr "Bebob"
+msgstr "Bebop"
 
-#: src/libaudgui/infowin.c:81
+#: src/libaudgui/infowin.c:82
 msgid "Bluegrass"
 msgstr "Bluegrass"
 
-#: src/libaudgui/infowin.c:82
+#: src/libaudgui/infowin.c:83
 msgid "Blues"
 msgstr "Blues"
 
-#: src/libaudgui/infowin.c:83
+#: src/libaudgui/infowin.c:84
 msgid "Chamber Music"
 msgstr "Komorná hudba"
 
-#: src/libaudgui/infowin.c:84
+#: src/libaudgui/infowin.c:85
 msgid "Classical"
 msgstr "Klasika"
 
-#: src/libaudgui/infowin.c:85
+#: src/libaudgui/infowin.c:86
 msgid "Country"
 msgstr "Country"
 
-#: src/libaudgui/infowin.c:86
+#: src/libaudgui/infowin.c:87
 msgid "Death Metal"
 msgstr "Death Metal"
 
-#: src/libaudgui/infowin.c:87
+#: src/libaudgui/infowin.c:88
 msgid "Disco"
 msgstr "Disco"
 
-#: src/libaudgui/infowin.c:88
+#: src/libaudgui/infowin.c:89
 msgid "Easy Listening"
 msgstr "Príjemné počúvanie"
 
-#: src/libaudgui/infowin.c:89
+#: src/libaudgui/infowin.c:90
 msgid "Folk"
 msgstr "Folk"
 
-#: src/libaudgui/infowin.c:90
+#: src/libaudgui/infowin.c:91
 msgid "Funk"
 msgstr "Funk"
 
-#: src/libaudgui/infowin.c:91
+#: src/libaudgui/infowin.c:92
 msgid "Gangsta Rap"
 msgstr "Gangsta Rap"
 
-#: src/libaudgui/infowin.c:92
+#: src/libaudgui/infowin.c:93
 msgid "Gospel"
 msgstr "Gospel"
 
-#: src/libaudgui/infowin.c:93
+#: src/libaudgui/infowin.c:94
 msgid "Grunge"
 msgstr "Grunge"
 
-#: src/libaudgui/infowin.c:94
+#: src/libaudgui/infowin.c:95
 msgid "Hard Rock"
 msgstr "Hard Rock"
 
-#: src/libaudgui/infowin.c:95
+#: src/libaudgui/infowin.c:96
 msgid "Heavy Metal"
 msgstr "Heavy Metal"
 
-#: src/libaudgui/infowin.c:96
-#, fuzzy
+#: src/libaudgui/infowin.c:97
 msgid "Hip-hop"
-msgstr "Hip-Hop"
+msgstr "Hip-hop"
 
-#: src/libaudgui/infowin.c:97
+#: src/libaudgui/infowin.c:98
 msgid "House"
 msgstr "House"
 
-#: src/libaudgui/infowin.c:98
+#: src/libaudgui/infowin.c:99
 msgid "Jazz"
 msgstr "Jazz"
 
-#: src/libaudgui/infowin.c:99
+#: src/libaudgui/infowin.c:100
 msgid "Jungle"
 msgstr "Jungle"
 
-#: src/libaudgui/infowin.c:100
+#: src/libaudgui/infowin.c:101
 msgid "Metal"
 msgstr "Metal"
 
-#: src/libaudgui/infowin.c:101
+#: src/libaudgui/infowin.c:102
 msgid "New Age"
 msgstr "New Age"
 
-#: src/libaudgui/infowin.c:102
+#: src/libaudgui/infowin.c:103
 msgid "New Wave"
 msgstr "Nová vlna"
 
-#: src/libaudgui/infowin.c:103
+#: src/libaudgui/infowin.c:104
 msgid "Noise"
 msgstr "Ruch"
 
-#: src/libaudgui/infowin.c:104
+#: src/libaudgui/infowin.c:105
 msgid "Pop"
 msgstr "Pop"
 
-#: src/libaudgui/infowin.c:105
+#: src/libaudgui/infowin.c:106
 msgid "Punk Rock"
 msgstr "Punk Rock"
 
-#: src/libaudgui/infowin.c:106
+#: src/libaudgui/infowin.c:107
 msgid "Rap"
 msgstr "Rap"
 
-#: src/libaudgui/infowin.c:107
+#: src/libaudgui/infowin.c:108
 msgid "Reggae"
 msgstr "Reggae"
 
-#: src/libaudgui/infowin.c:108
+#: src/libaudgui/infowin.c:109
 msgid "Rock"
 msgstr "Rock"
 
-#: src/libaudgui/infowin.c:109
-#, fuzzy
+#: src/libaudgui/infowin.c:110
 msgid "Rock and Roll"
-msgstr "Rock & Roll"
+msgstr "Rock and Roll"
 
-#: src/libaudgui/infowin.c:110
+#: src/libaudgui/infowin.c:111
 msgid "Rhythm and Blues"
-msgstr ""
+msgstr "Rhythm and Blues"
 
-#: src/libaudgui/infowin.c:111
+#: src/libaudgui/infowin.c:112
 msgid "Ska"
 msgstr "Ska"
 
-#: src/libaudgui/infowin.c:112
+#: src/libaudgui/infowin.c:113
 msgid "Soul"
 msgstr "Soul"
 
-#: src/libaudgui/infowin.c:113
+#: src/libaudgui/infowin.c:114
 msgid "Swing"
 msgstr "Swing"
 
-#: src/libaudgui/infowin.c:114
+#: src/libaudgui/infowin.c:115
 msgid "Techno"
 msgstr "Techno"
 
-#: src/libaudgui/infowin.c:115
-#, fuzzy
+#: src/libaudgui/infowin.c:116
 msgid "Trip-hop"
-msgstr "Trip-Hop"
+msgstr "Trip-hop"
 
-#: src/libaudgui/infowin.c:175 src/libaudgui/infowin.c:361
-#: src/libaudgui/infowin.c:364 src/libaudgui/infowin.c:367
+#: src/libaudgui/infowin.c:180 src/libaudgui/infowin.c:366
+#: src/libaudgui/infowin.c:369 src/libaudgui/infowin.c:372
 msgid "<span size=\"small\">n/a</span>"
 msgstr "<span size=\"small\">-</span>"
 
-#: src/libaudgui/infowin.c:265
+#: src/libaudgui/infowin.c:270
 msgid "Metadata updated successfully"
 msgstr "Matadáta boli úspešne aktualizované"
 
-#: src/libaudgui/infowin.c:270
+#: src/libaudgui/infowin.c:275
 msgid "Metadata updating failed"
 msgstr "Aktualizácia metadát zlyhala"
 
-#: src/libaudgui/infowin.c:318
+#: src/libaudgui/infowin.c:323
 msgid "Track Information"
 msgstr "Informácie o stope"
 
-#: src/libaudgui/infowin.c:350
+#: src/libaudgui/infowin.c:355
 msgid "<span size=\"small\">Format:</span>"
 msgstr "<span size=\"small\">Formát:</span>"
 
-#: src/libaudgui/infowin.c:354
+#: src/libaudgui/infowin.c:359
 msgid "<span size=\"small\">Quality:</span>"
 msgstr "<span size=\"small\">Kvalita:</span>"
 
-#: src/libaudgui/infowin.c:357
+#: src/libaudgui/infowin.c:362
 msgid "<span size=\"small\">Bitrate:</span>"
 msgstr "<span size=\"small\">Dátový tok:</span>"
 
-#: src/libaudgui/infowin.c:387
+#: src/libaudgui/infowin.c:392
 msgid "<span size=\"small\">Title</span>"
 msgstr "<span size=\"small\">Názov</span>"
 
-#: src/libaudgui/infowin.c:399
+#: src/libaudgui/infowin.c:404
 msgid "<span size=\"small\">Artist</span>"
 msgstr "<span size=\"small\">Umelec</span>"
 
-#: src/libaudgui/infowin.c:411
+#: src/libaudgui/infowin.c:416
 msgid "<span size=\"small\">Album</span>"
 msgstr "<span size=\"small\">Album</span>"
 
-#: src/libaudgui/infowin.c:423
+#: src/libaudgui/infowin.c:428
 msgid "<span size=\"small\">Comment</span>"
 msgstr "<span size=\"small\">Komentár</span>"
 
-#: src/libaudgui/infowin.c:435
+#: src/libaudgui/infowin.c:440
 msgid "<span size=\"small\">Genre</span>"
 msgstr "<span size=\"small\">Žáner</span>"
 
-#: src/libaudgui/infowin.c:456
+#: src/libaudgui/infowin.c:461
 msgid "<span size=\"small\">Year</span>"
 msgstr "<span size=\"small\">Rok</span>"
 
-#: src/libaudgui/infowin.c:467
+#: src/libaudgui/infowin.c:472
 msgid "<span size=\"small\">Track Number</span>"
 msgstr "<span size=\"small\">Číslo stopy</span>"
 
-#: src/libaudgui/infowin.c:549
+#: src/libaudgui/infowin.c:551
 #, c-format
 msgid "%d kb/s"
 msgstr "%d kb/s"
 
-#: src/libaudgui/infowin.c:579
+#: src/libaudgui/infowin.c:578
 #, c-format
 msgid "No info available for %s.\n"
 msgstr "Pre %s nie sú dostupné žiadne informácie.\n"
 
-#: src/libaudgui/ui_about.c:71
+#: src/libaudgui/jump-to-time.c:75
+msgid "Jump to Time"
+msgstr "Skočiť na čas"
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr "mm:ss"
+
+#: src/libaudgui/playlists.c:39
+msgid "Export Playlist"
+msgstr "Exportovať zoznam skladieb"
+
+#: src/libaudgui/playlists.c:39
+msgid "Import Playlist"
+msgstr "Importovať zoznam skladieb"
+
+#: src/libaudgui/playlists.c:72
+#, c-format
+msgid "Overwrite %s?"
+msgstr "Prepísať %s?"
+
+#: src/libaudgui/queue-manager.c:198
+msgid "Queue Manager"
+msgstr "Správca fronty"
+
+#: src/libaudgui/ui_about.c:69
 msgid "About Audacious"
 msgstr "O Audacious"
 
-#: src/libaudgui/ui_about.c:93 src/libaudgui/ui_credits.c:122
+#: src/libaudgui/ui_about.c:90 src/libaudgui/ui_credits.c:122
 msgid "Credits"
 msgstr "Zásluhy"
 
@@ -1130,91 +1093,100 @@ msgstr "Zatvoriť okno po otvorení"
 msgid "Close dialog on Add"
 msgstr "Zatvoriť okno po pridaní"
 
-#: src/libaudgui/ui_jumptotrack.c:133
-msgid "Un_queue"
-msgstr "O_dobrať z fronty"
-
-#: src/libaudgui/ui_jumptotrack.c:135 src/libaudgui/ui_jumptotrack.c:512
+#: src/libaudgui/ui_jumptotrack.c:112 src/libaudgui/ui_jumptotrack.c:120
+#: src/libaudgui/ui_jumptotrack.c:329
 msgid "_Queue"
 msgstr "Pri_dať do fronty"
 
-#: src/libaudgui/ui_jumptotrack.c:399
-msgid "Jump to Track"
-msgstr "Skok na stopu"
+#: src/libaudgui/ui_jumptotrack.c:118
+msgid "Un_queue"
+msgstr "O_dobrať z fronty"
+
+#: src/libaudgui/ui_jumptotrack.c:261
+msgid "Jump to Song"
+msgstr "Skočiť na skladbu"
 
-#: src/libaudgui/ui_jumptotrack.c:442
+#: src/libaudgui/ui_jumptotrack.c:284
 msgid "Filter: "
 msgstr "Filter: "
 
-#: src/libaudgui/ui_jumptotrack.c:443
+#: src/libaudgui/ui_jumptotrack.c:285
 msgid "_Filter:"
 msgstr "_Filter:"
 
-#: src/libaudgui/ui_jumptotrack.c:461
+#: src/libaudgui/ui_jumptotrack.c:295
 msgid "Remember"
 msgstr "Zapamätať si filter"
 
-#: src/libaudgui/ui_jumptotrack.c:470
+#: src/libaudgui/ui_jumptotrack.c:302
 msgid "Clea_r"
 msgstr "Vyči_stiť"
 
-#: src/libaudgui/ui_jumptotrack.c:504
+#: src/libaudgui/ui_jumptotrack.c:322
 msgid "Close on Jump"
 msgstr "Zatvoriť po skoku"
 
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:253
 msgid "Playlist Manager"
 msgstr "Správca zoznamu skladieb"
 
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:280
 msgid "Entries"
 msgstr "Položky"
 
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:301
 msgid "_Rename"
 msgstr "P_remenovať"
 
-#: src/libaudgui/ui_playlist_manager.c:251
+#: src/libaudgui/ui_playlist_manager.c:325
 msgid "_Close dialog on activating playlist"
 msgstr "_Zatvoriť okno po aktivácii zoznamu skladieb"
 
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:51
 msgid "Open URL"
 msgstr "Otvoriť URL"
 
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:51
 msgid "Add URL"
 msgstr "Pridať URL"
 
+#: src/libaudgui/util.c:97
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+"\n"
+"(Ďalšie správy boli skryté.)"
+
 #: src/libeggsmclient/eggdesktopfile.c:165
 msgid "File is not a valid .desktop file"
 msgstr "Súbor nie je platný .desktop súbor"
 
-#: src/libeggsmclient/eggdesktopfile.c:188
+#: src/libeggsmclient/eggdesktopfile.c:191
 #, c-format
 msgid "Unrecognized desktop file Version '%s'"
 msgstr "Nerozpoznaná verzia '%s' súboru pracovnej plochy"
 
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:974
 #, c-format
 msgid "Starting %s"
 msgstr "Spúšťa sa %s"
 
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1116
 msgid "Application does not accept documents on command line"
 msgstr "Aplikácia neprijíma dokumenty v príkazovom riadku"
 
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1184
 #, c-format
 msgid "Unrecognized launch option: %d"
 msgstr "Nerozpoznaná spúšťacia voľba: %d"
 
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1391
 msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
 msgstr ""
 "URI adresa dokumentu sa nedá predať položke pracovnej plochy 'Type=Link'"
 
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1412
 msgid "Not a launchable item"
 msgstr "Nespustiteľná položka"
 
@@ -1239,391 +1211,11 @@ msgid "ID"
 msgstr "IDENTIFIKÁTOR"
 
 #: src/libeggsmclient/eggsmclient.c:253
-#, fuzzy
 msgid "Session management options:"
-msgstr "Možnosti správy relácie"
+msgstr "Možnosti správcu relácie:"
 
 #: src/libeggsmclient/eggsmclient.c:254
-#, fuzzy
 msgid "Show session management options"
-msgstr "Zobraziť možnosti správy relácie"
-
-#~ msgid ""
-#~ "Running multiple instances of Audacious can lead to corrupted "
-#~ "configuration files.  If Audacious is not already running, or if you want "
-#~ "to run another instance anyway, please delete the file %s and run "
-#~ "Audacious again.  Audacious will now close."
-#~ msgstr ""
-#~ "Spúšťanie viacerých inštancií Audacious môže viesť k poškodeniu "
-#~ "konfiguračných súborov. Ak Audacious ešte nie je spustený, alebo chcete "
-#~ "aj tak spustiť ďalšiu inštanciu, prosím, vymažte súbor %s a spuste "
-#~ "Audacious znova. Audacious sa teraz ukončí."
-
-#~ msgid "%s: Unable to open display, exiting.\n"
-#~ msgstr "%s: Nepodarilo sa otvoriť displej, ukončujem sa.\n"
-
-#~ msgid "Preamp:"
-#~ msgstr "Predzosilnenie:"
-
-#~ msgid "Default gain:"
-#~ msgstr "Štandardné zosilnenie:"
-
-#~ msgid "This gain will be used if file doesn't contain Replay Gain metadata."
-#~ msgstr ""
-#~ "Toto zosilnenie bude použité v prípade, že súbor neobsahuje informácie o "
-#~ "zosilnení pri prehrávaní."
-
-#~ msgid ""
-#~ "<span size=\"small\">Please remember that the most efficient way to "
-#~ "prevent signal clipping is not to use positive values above.</span>"
-#~ msgstr ""
-#~ "<span size=\"small\">Prosím, zapamätajte si, že najlepšou ochranou proti "
-#~ "orezaniu signálu je nepoužívať kladné hodnoty vyššie uvedených parametrov."
-#~ "</span>"
-
-#~ msgid "<b>Replay Gain configuration</b>"
-#~ msgstr "<b>Nastavenie zosilnenia pri prehrávaní</b>"
-
-#~ msgid "Track gain/peak"
-#~ msgstr "Zosilnenie/vrchol skladby"
-
-#~ msgid "Album gain/peak"
-#~ msgstr "Zosilnenie/vrchol albumu"
-
-#~ msgid "Use peak value from Replay Gain info for clipping prevention"
-#~ msgstr ""
-#~ "Použije hodnotu vrcholu z informácii o zosilnení pri prehrávaní na "
-#~ "ochranu proti orezaniu signálu"
-
-#~ msgid "Classic Rock"
-#~ msgstr "Klasický rok"
-
-#~ msgid "Dance"
-#~ msgstr "Tanečná"
-
-#~ msgid "Oldies"
-#~ msgstr "Oldies"
-
-#~ msgid "Other"
-#~ msgstr "Iná"
-
-#~ msgid "R&B"
-#~ msgstr "R&B"
-
-#~ msgid "Industrial"
-#~ msgstr "Industrial"
-
-#~ msgid "Alternative"
-#~ msgstr "Alternatívna hudba"
-
-#~ msgid "Pranks"
-#~ msgstr "Pranks"
-
-#~ msgid "Soundtrack"
-#~ msgstr "Soundtrack"
-
-#~ msgid "Euro-Techno"
-#~ msgstr "Euro-Techno"
-
-#~ msgid "Vocal"
-#~ msgstr "Vokálna"
-
-#~ msgid "Jazz+Funk"
-#~ msgstr "Jazz+Funk"
-
-#~ msgid "Fusion"
-#~ msgstr "Fúzia"
-
-#~ msgid "Trance"
-#~ msgstr "Trance"
-
-#~ msgid "Instrumental"
-#~ msgstr "Inštrumentálna"
-
-#~ msgid "Acid"
-#~ msgstr "Acid"
-
-#~ msgid "Game"
-#~ msgstr "Game"
-
-#~ msgid "Sound Clip"
-#~ msgstr "Zvukový klip"
-
-#~ msgid "AlternRock"
-#~ msgstr "AlternRock"
-
-#~ msgid "Bass"
-#~ msgstr "Bass"
-
-#~ msgid "Punk"
-#~ msgstr "Punk"
-
-#~ msgid "Space"
-#~ msgstr "Space"
-
-#~ msgid "Meditative"
-#~ msgstr "Meditatívna"
-
-#~ msgid "Instrumental Pop"
-#~ msgstr "Inštrumentálny pop"
-
-#~ msgid "Instrumental Rock"
-#~ msgstr "Inštrumentálny rock"
-
-#~ msgid "Ethnic"
-#~ msgstr "Etnická hudba"
-
-#~ msgid "Gothic"
-#~ msgstr "Gotická hudba"
-
-#~ msgid "Darkwave"
-#~ msgstr "Darkwave"
-
-#~ msgid "Techno-Industrial"
-#~ msgstr "Techno-Industrial"
-
-#~ msgid "Electronic"
-#~ msgstr "Elektronická"
-
-#~ msgid "Pop-Folk"
-#~ msgstr "Pop-Folk"
-
-#~ msgid "Eurodance"
-#~ msgstr "Eurodance"
-
-#~ msgid "Dream"
-#~ msgstr "Dream"
-
-#~ msgid "Southern Rock"
-#~ msgstr "Južanský rock"
-
-#~ msgid "Comedy"
-#~ msgstr "Komédia"
-
-#~ msgid "Cult"
-#~ msgstr "Cult"
-
-#~ msgid "Top 40"
-#~ msgstr "Top 40"
-
-#~ msgid "Christian Rap"
-#~ msgstr "Kresťanský rap"
-
-#~ msgid "Pop/Funk"
-#~ msgstr "Pop/Funk"
-
-#~ msgid "Native American"
-#~ msgstr "Indiánska hudba"
-
-#~ msgid "Cabaret"
-#~ msgstr "Kabaret"
-
-#~ msgid "Psychedelic"
-#~ msgstr "Psychedelic"
-
-#~ msgid "Rave"
-#~ msgstr "Rave"
-
-#~ msgid "Showtunes"
-#~ msgstr "Showtunes"
-
-#~ msgid "Trailer"
-#~ msgstr "Upútavka"
-
-#~ msgid "Lo-Fi"
-#~ msgstr "Lo-Fi"
-
-#~ msgid "Tribal"
-#~ msgstr "Tribal"
-
-#~ msgid "Acid Punk"
-#~ msgstr "Acid Punk"
-
-#~ msgid "Polka"
-#~ msgstr "Polka"
-
-#~ msgid "Retro"
-#~ msgstr "Retro"
-
-#~ msgid "Musical"
-#~ msgstr "Muzikál"
-
-#~ msgid "Folk/Rock"
-#~ msgstr "Folk/Rock"
-
-#~ msgid "National Folk"
-#~ msgstr "Národná ľudová"
-
-#~ msgid "Fast-Fusion"
-#~ msgstr "Fast-Fusion"
-
-#~ msgid "Latin"
-#~ msgstr "Latinská"
-
-#~ msgid "Revival"
-#~ msgstr "Revival"
-
-#~ msgid "Celtic"
-#~ msgstr "Keltská"
-
-#~ msgid "Avantgarde"
-#~ msgstr "Avantgardná"
-
-#~ msgid "Gothic Rock"
-#~ msgstr "Gotický rock"
-
-#~ msgid "Progressive Rock"
-#~ msgstr "Progresívny rock"
-
-#~ msgid "Psychedelic Rock"
-#~ msgstr "Psychedelic Rock"
-
-#~ msgid "Symphonic Rock"
-#~ msgstr "Symfonický rock"
-
-#~ msgid "Slow Rock"
-#~ msgstr "Slow Rock"
-
-#~ msgid "Big Band"
-#~ msgstr "Big Band"
-
-#~ msgid "Chorus"
-#~ msgstr "Chorus"
-
-#~ msgid "Acoustic"
-#~ msgstr "Akustická"
-
-#~ msgid "Humour"
-#~ msgstr "Humor"
-
-#~ msgid "Speech"
-#~ msgstr "Hovorené slovo"
-
-#~ msgid "Chanson"
-#~ msgstr "Šansón"
-
-#~ msgid "Opera"
-#~ msgstr "Opera"
-
-#~ msgid "Sonata"
-#~ msgstr "Sonáta"
-
-#~ msgid "Symphony"
-#~ msgstr "Symfónia"
-
-#~ msgid "Booty Bass"
-#~ msgstr "Booty Bass"
-
-#~ msgid "Primus"
-#~ msgstr "Primus"
-
-#~ msgid "Porn Groove"
-#~ msgstr "Porn Groove"
-
-#~ msgid "Satire"
-#~ msgstr "Satira"
-
-#~ msgid "Slow Jam"
-#~ msgstr "Slow Jam"
-
-#~ msgid "Club"
-#~ msgstr "Club"
-
-#~ msgid "Tango"
-#~ msgstr "Tango"
-
-#~ msgid "Samba"
-#~ msgstr "Samba"
-
-#~ msgid "Folklore"
-#~ msgstr "Folklór"
-
-#~ msgid "Ballad"
-#~ msgstr "Balada"
-
-#~ msgid "Power Ballad"
-#~ msgstr "Rocková balada"
-
-#~ msgid "Rhythmic Soul"
-#~ msgstr "Rytmický soul"
-
-#~ msgid "Freestyle"
-#~ msgstr "Freestyle"
-
-#~ msgid "Duet"
-#~ msgstr "Duet"
-
-#~ msgid "Drum Solo"
-#~ msgstr "Drum Solo"
-
-#~ msgid "A Cappella"
-#~ msgstr "A Cappella"
-
-#~ msgid "Euro-House"
-#~ msgstr "Euro-House"
-
-#~ msgid "Dance Hall"
-#~ msgstr "Dance Hall"
-
-#~ msgid "Goa"
-#~ msgstr "Goa"
-
-#~ msgid "Drum & Bass"
-#~ msgstr "Drum & Bass"
-
-#~ msgid "Club-House"
-#~ msgstr "Club-House"
-
-#~ msgid "Hardcore"
-#~ msgstr "Hardcore"
-
-#~ msgid "Terror"
-#~ msgstr "Terror"
-
-#~ msgid "Indie"
-#~ msgstr "Indie"
-
-#~ msgid "BritPop"
-#~ msgstr "BritPop"
-
-#~ msgid "Negerpunk"
-#~ msgstr "Negerpunk"
-
-#~ msgid "Polsk Punk"
-#~ msgstr "Polsk Punk"
-
-#~ msgid "Beat"
-#~ msgstr "Beat"
-
-#~ msgid "Christian Gangsta Rap"
-#~ msgstr "Kresťanský gangsta rap"
-
-#~ msgid "Black Metal"
-#~ msgstr "Black Metal"
-
-#~ msgid "Crossover"
-#~ msgstr "Crossover"
-
-#~ msgid "Contemporary Christian"
-#~ msgstr "Contemporary Christian"
-
-#~ msgid "Christian Rock"
-#~ msgstr "Kresťanský rock"
-
-#~ msgid "Merengue"
-#~ msgstr "Merengue"
-
-#~ msgid "Salsa"
-#~ msgstr "Salsa"
-
-#~ msgid "Thrash Metal"
-#~ msgstr "Thrash Metal"
-
-#~ msgid "Anime"
-#~ msgstr "Anime"
+msgstr "Zobraziť možnosti správcu relácie"
 
-#~ msgid "JPop"
-#~ msgstr "JPop"
 
-#~ msgid "Synthpop"
-#~ msgstr "Synthpop"
diff --git a/po/audacious.pot b/po/sl.po
similarity index 55%
copy from po/audacious.pot
copy to po/sl.po
index 931a6ad..88d42c2 100644
--- a/po/audacious.pot
+++ b/po/sl.po
@@ -1,58 +1,71 @@
-# SOME DESCRIPTIVE TITLE.
-# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-# This file is distributed under the same license as the PACKAGE package.
-# FIRST AUTHOR <EMAIL at ADDRESS>, YEAR.
+# Slovenian translation for Audacious
+# Copyright (C) Audacious Translators
+# This file is distributed under the same license as the Audacious package.
 #
-#, fuzzy
+# Translators:
+#   kv1dr <poznic.davor at gmail.com>, 2011.
 msgid ""
 msgstr ""
-"Project-Id-Version: PACKAGE VERSION\n"
-"Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
-"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
-"Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
-"Language-Team: LANGUAGE <LL at li.org>\n"
-"Language: \n"
+"Project-Id-Version: Audacious\n"
+"Report-Msgid-Bugs-To: http://jira.atheme.org/browse/AUD\n"
+"POT-Creation-Date: 2011-10-19 21:32-0400\n"
+"PO-Revision-Date: 2011-10-20 10:45+0000\n"
+"Last-Translator: kv1dr <poznic.davor at gmail.com>\n"
+"Language-Team: Slovenian\n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=CHARSET\n"
+"Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
+"Language: sl\n"
+"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3)\n"
 
-#: src/audacious/chardet.c:37
+#: src/audacious/adder.c:71
+msgid "Searching ..."
+msgstr "Iščem ..."
+
+#: src/audacious/adder.c:97
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] "%d datoteka najdena"
+msgstr[1] "%d datoteki najdeni"
+msgstr[2] "%d datotek najdene"
+msgstr[3] "%d datotek najdenih"
+
+#: src/audacious/chardet.c:38
 msgid "  (invalid UTF-8)"
-msgstr ""
+msgstr "  (neveljaven UTF-8)"
 
 #: src/audacious/credits.c:35
 msgid "Core developers:"
-msgstr ""
+msgstr "Razvijalci jedra:"
 
 #: src/audacious/credits.c:49
 msgid "Graphics:"
-msgstr ""
+msgstr "Grafika:"
 
 #: src/audacious/credits.c:54
 msgid "Default skin:"
-msgstr ""
+msgstr "Privzeta obleka:"
 
 #: src/audacious/credits.c:60
 msgid "Plugin development:"
-msgstr ""
+msgstr "Razvijalci vtičnikov:"
 
 #: src/audacious/credits.c:83
 msgid "Patch authors:"
-msgstr ""
+msgstr "Avtorji popravkov:"
 
 #: src/audacious/credits.c:126
 msgid "1.x developers:"
-msgstr ""
+msgstr "Razvijalci različice 1.x:"
 
 #: src/audacious/credits.c:148
 msgid "BMP Developers:"
-msgstr ""
+msgstr "BMP razvijalci:"
 
 #: src/audacious/credits.c:180
 msgid "Belarusian:"
-msgstr ""
+msgstr "Beloruščina:"
 
 #: src/audacious/credits.c:183
 msgid "Basque:"
@@ -60,790 +73,736 @@ msgstr ""
 
 #: src/audacious/credits.c:186
 msgid "Brazilian Portuguese:"
-msgstr ""
+msgstr "Brazilska portugalščina:"
 
-#: src/audacious/credits.c:190
+#: src/audacious/credits.c:191
 msgid "Breton:"
 msgstr ""
 
-#: src/audacious/credits.c:193
+#: src/audacious/credits.c:194
 msgid "Bulgarian:"
-msgstr ""
+msgstr "Bolgarščina:"
 
-#: src/audacious/credits.c:196
+#: src/audacious/credits.c:197
 msgid "Catalan:"
-msgstr ""
+msgstr "Katalonščina:"
 
-#: src/audacious/credits.c:199
+#: src/audacious/credits.c:200
 msgid "Chinese:"
-msgstr ""
+msgstr "Kitajščina:"
 
-#: src/audacious/credits.c:202
+#: src/audacious/credits.c:203
 msgid "Croatian:"
-msgstr ""
+msgstr "Hrvaščina:"
 
-#: src/audacious/credits.c:205
+#: src/audacious/credits.c:206
 msgid "Czech:"
-msgstr ""
+msgstr "Češčina:"
 
-#: src/audacious/credits.c:208
+#: src/audacious/credits.c:209
 msgid "Dutch:"
-msgstr ""
+msgstr "Nizozemščina:"
 
-#: src/audacious/credits.c:212
+#: src/audacious/credits.c:213
 msgid "Estonian:"
-msgstr ""
+msgstr "Estonščina:"
 
-#: src/audacious/credits.c:215
+#: src/audacious/credits.c:216
 msgid "Finnish:"
-msgstr ""
+msgstr "Finščina:"
 
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:221
 msgid "French:"
-msgstr ""
+msgstr "Francoščina:"
 
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:227
 msgid "German:"
-msgstr ""
+msgstr "Nemščina:"
 
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:234
 msgid "Georgian:"
-msgstr ""
+msgstr "Gruzijščina:"
 
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:237
 msgid "Greek:"
-msgstr ""
+msgstr "Grščina:"
 
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:242
 msgid "Hindi:"
-msgstr ""
+msgstr "Hindijščina:"
 
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:245
 msgid "Hungarian:"
-msgstr ""
+msgstr "Madžarščina:"
 
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:249
 msgid "Italian:"
-msgstr ""
+msgstr "Italijanščina:"
 
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:253
 msgid "Japanese:"
-msgstr ""
+msgstr "Japonščina:"
 
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:256
 msgid "Korean:"
-msgstr ""
+msgstr "Korejščina:"
 
-#: src/audacious/credits.c:256
+#: src/audacious/credits.c:259
 msgid "Latvian:"
-msgstr ""
+msgstr "Latvijščina:"
 
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:262
 msgid "Lithuanian:"
-msgstr ""
+msgstr "Litovščina:"
 
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:267
 msgid "Macedonian:"
-msgstr ""
+msgstr "Makedonščina:"
 
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:270
 msgid "Polish:"
-msgstr ""
+msgstr "Polščina:"
 
-#: src/audacious/credits.c:271
+#: src/audacious/credits.c:276
 msgid "Portuguese:"
-msgstr ""
+msgstr "Portugalščina:"
 
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:279
 msgid "Romanian:"
-msgstr ""
+msgstr "Romunščina:"
 
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:283
 msgid "Russian:"
-msgstr ""
+msgstr "Ruščina:"
 
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:287
 msgid "Serbian (Latin):"
-msgstr ""
+msgstr "Srbščina (latinsko):"
 
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:290
 msgid "Serbian (Cyrillic):"
-msgstr ""
+msgstr "Srbščina (cirilica):"
 
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:293
 msgid "Simplified Chinese:"
-msgstr ""
+msgstr "Poenostavljena kitajščina:"
 
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:296
 msgid "Slovak:"
-msgstr ""
+msgstr "Slovaščina:"
 
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:299
 msgid "Spanish:"
-msgstr ""
+msgstr "Španščina:"
 
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:306
 msgid "Swedish:"
-msgstr ""
+msgstr "Švedščina:"
 
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:309
 msgid "Traditional Chinese:"
-msgstr ""
+msgstr "Tradicionalna kitajščina:"
 
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:315
 msgid "Turkish:"
-msgstr ""
+msgstr "Turščina:"
 
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:319
 msgid "Ukrainian:"
-msgstr ""
+msgstr "Ukrajinščina:"
+
+#: src/audacious/credits.c:323
+msgid "Vietnamese:"
+msgstr "Vietnamščina:"
 
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:326
 msgid "Welsh:"
-msgstr ""
+msgstr "Valižanščina:"
 
-#: src/audacious/drct.c:254
+#: src/audacious/drct.c:234
 msgid "Temporary Playlist"
-msgstr ""
+msgstr "Začasni seznam predvajanja"
 
 #: src/audacious/equalizer_preset.c:186
 #, c-format
 msgid "Error importing Winamp EQF file '%s'"
 msgstr ""
 
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr ""
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/audacious/main.c:247
+#: src/audacious/main.c:239
 msgid "Skip backwards in playlist"
 msgstr ""
 
-#: src/audacious/main.c:248
+#: src/audacious/main.c:240
 msgid "Start playing current playlist"
 msgstr ""
 
-#: src/audacious/main.c:249
+#: src/audacious/main.c:241
 msgid "Pause current song"
 msgstr ""
 
-#: src/audacious/main.c:250
+#: src/audacious/main.c:242
 msgid "Stop current song"
-msgstr ""
+msgstr "Ustavi trenutno pesem"
 
-#: src/audacious/main.c:251
+#: src/audacious/main.c:243
 msgid "Pause if playing, play otherwise"
 msgstr ""
 
-#: src/audacious/main.c:252
+#: src/audacious/main.c:244
 msgid "Skip forward in playlist"
 msgstr ""
 
-#: src/audacious/main.c:253
+#: src/audacious/main.c:245
 msgid "Display Jump to File dialog"
 msgstr ""
 
-#: src/audacious/main.c:254
+#: src/audacious/main.c:246
 msgid "Add files to the playlist"
 msgstr ""
 
-#: src/audacious/main.c:255
+#: src/audacious/main.c:247
 msgid "Add new files to a temporary playlist"
 msgstr ""
 
-#: src/audacious/main.c:256
+#: src/audacious/main.c:248
 msgid "Display the main window"
 msgstr ""
 
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr ""
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:249
 msgid "Show version"
-msgstr ""
+msgstr "Prikaži različico"
 
-#: src/audacious/main.c:259
+#: src/audacious/main.c:250
 msgid "Print debugging messages"
 msgstr ""
 
-#: src/audacious/main.c:260
-msgid "FILE..."
+#: src/audacious/main.c:251
+msgid "Headless mode (beta)"
 msgstr ""
 
-#: src/audacious/main.c:272
+#: src/audacious/main.c:252
+msgid "FILE..."
+msgstr "DATOTEKA ..."
+
+#: src/audacious/main.c:264
 msgid "- play multimedia files"
-msgstr ""
+msgstr "- predvajaj večpredstavnostne datoteke"
 
-#: src/audacious/main.c:282
+#: src/audacious/main.c:274
 #, c-format
 msgid ""
 "%s: %s\n"
 "Try `%s --help' for more information.\n"
 msgstr ""
+"%s: %s\n"
+"Poizkusi `%s --help' za več informacij.\n"
 
-#: src/audacious/main.c:395
-msgid ""
-"Audacious seems to be already running but is not responding.  You can start "
-"another instance of the program, but please be warned that this can cause "
-"data loss.  If Audacious is not running, you can safely ignore this "
-"message.  Press OK to start Audacious or Cancel to quit."
-msgstr ""
-
-#: src/audacious/main.c:558
+#: src/audacious/main.c:547
 msgid "Audacious"
-msgstr ""
+msgstr "Audacious"
 
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:303
 #, c-format
 msgid "No decoder found for %s."
 msgstr ""
 
-#: src/audacious/playback.c:519
-msgid "Buffering ..."
-msgstr ""
-
-#: src/audacious/playlist-new.c:288
+#: src/audacious/playlist-new.c:315
 msgid "Untitled Playlist"
+msgstr "Neimenovan seznam predvajanja"
+
+#: src/audacious/playlist-new.c:1496
+msgid ""
+"The playlist cannot be sorted because metadata scanning is still in progress"
+" (or has been disabled)."
 msgstr ""
 
 #: src/audacious/ui_preferences.c:88
 msgid "Audio"
-msgstr ""
+msgstr "Zvok"
 
 #: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:90
 msgid "Network"
-msgstr ""
+msgstr "Omrežje"
 
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:90 src/audacious/ui_preferences.c:1634
 msgid "Playlist"
-msgstr ""
+msgstr "Seznam predvajanja"
 
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:91
 msgid "Plugins"
-msgstr ""
+msgstr "Vtičniki"
 
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:97 src/libaudgui/infopopup.c:203
 msgid "Artist"
-msgstr ""
+msgstr "Izvajalec"
 
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:205
 msgid "Album"
-msgstr ""
+msgstr "Album"
 
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:201
+#: src/libaudgui/ui_playlist_manager.c:276
 msgid "Title"
-msgstr ""
+msgstr "Naslov"
 
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:100
 msgid "Tracknumber"
-msgstr ""
+msgstr "Å t. skladbe"
 
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:101 src/libaudgui/infopopup.c:207
 msgid "Genre"
-msgstr ""
+msgstr "Zvrst"
 
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:102
 msgid "Filename"
-msgstr ""
+msgstr "Ime datoteke"
 
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:103
 msgid "Filepath"
-msgstr ""
+msgstr "Pot datoteke"
 
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:104
 msgid "Date"
-msgstr ""
+msgstr "Datum"
 
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:105 src/libaudgui/infopopup.c:209
 msgid "Year"
-msgstr ""
+msgstr "Leto"
 
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:106
 msgid "Comment"
-msgstr ""
+msgstr "Komentar"
 
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:107
 msgid "Codec"
-msgstr ""
+msgstr "Kodek"
 
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:108
 msgid "Quality"
-msgstr ""
+msgstr "Kvaliteta"
 
 #: src/audacious/ui_preferences.c:114
 msgid "None"
-msgstr ""
+msgstr "Ničesar"
 
 #: src/audacious/ui_preferences.c:115
-msgid "Japanese"
-msgstr ""
+msgid "Arabic"
+msgstr "Arabščina"
 
 #: src/audacious/ui_preferences.c:116
-msgid "Taiwanese"
+msgid "Baltic"
 msgstr ""
 
 #: src/audacious/ui_preferences.c:117
 msgid "Chinese"
-msgstr ""
+msgstr "Kitajščina"
 
 #: src/audacious/ui_preferences.c:118
-msgid "Korean"
-msgstr ""
+msgid "Greek"
+msgstr "Grščina"
 
 #: src/audacious/ui_preferences.c:119
-msgid "Russian"
-msgstr ""
+msgid "Hebrew"
+msgstr "Hebrejščina"
 
 #: src/audacious/ui_preferences.c:120
-msgid "Greek"
-msgstr ""
+msgid "Japanese"
+msgstr "Japonščina"
 
 #: src/audacious/ui_preferences.c:121
-msgid "Hebrew"
-msgstr ""
+msgid "Korean"
+msgstr "Korejščina"
 
 #: src/audacious/ui_preferences.c:122
-msgid "Turkish"
-msgstr ""
+msgid "Polish"
+msgstr "Polščina"
 
 #: src/audacious/ui_preferences.c:123
-msgid "Arabic"
-msgstr ""
+msgid "Russian"
+msgstr "Ruščina"
 
 #: src/audacious/ui_preferences.c:124
-msgid "Polish"
-msgstr ""
+msgid "Taiwanese"
+msgstr "Tajvanščina"
 
 #: src/audacious/ui_preferences.c:125
-msgid "Baltic"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:126
-msgid "Universal"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:146
-msgid "<b>Bit Depth</b>"
-msgstr ""
+msgid "Turkish"
+msgstr "Turščina"
 
 #: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
+msgid "Album mode"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:151
-msgid "<b>Volume Control</b>"
-msgstr ""
+#: src/audacious/ui_preferences.c:150
+msgid "<b>Output Settings</b>"
+msgstr "<b>Nastavitve odvoda</b>"
 
 #: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
+msgid "Bit depth:"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
+#: src/audacious/ui_preferences.c:155
+msgid "Buffer size:"
 msgstr ""
 
+#: src/audacious/ui_preferences.c:157
+msgid "ms"
+msgstr "ms"
+
 #: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
+msgid "Use software volume control (not recommended)"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
+#: src/audacious/ui_preferences.c:160
+msgid "<b>Replay Gain</b>"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:160
-msgid "Amplify untagged files:"
+#: src/audacious/ui_preferences.c:161
+msgid "Enable Replay Gain"
 msgstr ""
 
 #: src/audacious/ui_preferences.c:164
-msgid "<b>Replay Gain</b>"
+msgid "Prevent clipping (recommended)"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:165
-msgid "Enable Replay Gain"
+#: src/audacious/ui_preferences.c:166
+msgid "<b>Adjust Levels</b>"
 msgstr ""
 
 #: src/audacious/ui_preferences.c:167
-msgid "<b>Mode</b>"
+msgid "Amplify all files:"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:168
-msgid "Single track mode"
-msgstr ""
+#: src/audacious/ui_preferences.c:169 src/audacious/ui_preferences.c:172
+msgid "dB"
+msgstr "dB"
 
 #: src/audacious/ui_preferences.c:170
-msgid "Album mode"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:172
-msgid "<b>Adjust Levels</b>"
+msgid "Amplify untagged files:"
 msgstr ""
 
 #: src/audacious/ui_preferences.c:175
-msgid "<b>Clipping Prevention</b>"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:176
-msgid "Enable clipping prevention"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:180
 msgid "Proxy hostname:"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:176
 msgid "Proxy port:"
-msgstr ""
+msgstr "Proxy vrata:"
 
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:179
 msgid "Proxy username:"
-msgstr ""
+msgstr "Proxy uporabniško ime:"
 
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:180
 msgid "Proxy password:"
-msgstr ""
+msgstr "Proxy geslo:"
 
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:184
 msgid "<b>Proxy Configuration</b>"
-msgstr ""
+msgstr "<b>Proxy konfiguracija</b>"
 
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:185
 msgid "Enable proxy usage"
-msgstr ""
+msgstr "Omogoči uporabi Proxy-ja"
 
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:188
 msgid "Use authentication with proxy"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:197
-msgid ""
-"<span size=\"small\">Changing these settings will require a restart of "
-"Audacious.</span>"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:196
 msgid "Auto character encoding detector for:"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
 msgid "Fallback character encodings:"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:209
-msgid ""
-"List of character encodings used for fall back conversion of metadata. If "
-"automatic character encoding detector failed or has been disabled, encodings "
-"in this list would be treated as candidates of the encoding of metadata, and "
-"fall back conversion from these encodings to UTF-8 would be attempted."
-msgstr ""
-
-#: src/audacious/ui_preferences.c:213
+#: src/audacious/ui_preferences.c:205
 msgid "<b>Behavior</b>"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:206
 msgid "Continue playback on startup"
-msgstr ""
+msgstr "Nadaljuj predvajanje ob zagonu programa"
 
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:208
 msgid "Advance when the current song is deleted"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:218
+#: src/audacious/ui_preferences.c:210
 msgid "Clear the playlist when opening files"
-msgstr ""
+msgstr "Počisti seznam predvajanja ob odpiranju datotek"
 
-#: src/audacious/ui_preferences.c:220
+#: src/audacious/ui_preferences.c:212
 msgid "Open files in a temporary playlist"
-msgstr ""
+msgstr "Odpri datoteke v začasnem seznamu predvajanja"
 
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:214
 msgid "<b>Metadata</b>"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:501
-msgid "Category"
+#: src/audacious/ui_preferences.c:215
+msgid "Do not load metadata for songs until played"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:233
+msgid "TITLE"
+msgstr "NASLOV"
+
+#: src/audacious/ui_preferences.c:234
+msgid "ARTIST - TITLE"
+msgstr "IZVAJALEC - NASLOV"
+
+#: src/audacious/ui_preferences.c:235
+msgid "ARTIST - ALBUM - TITLE"
+msgstr "IZVAJALEC - ALBUM - NASLOV"
+
+#: src/audacious/ui_preferences.c:236
+msgid "ARTIST - ALBUM - TRACK. TITLE"
+msgstr ""
+
+#: src/audacious/ui_preferences.c:237
+msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
+msgstr ""
+
+#: src/audacious/ui_preferences.c:238
+msgid "ALBUM - TITLE"
+msgstr "ALBUM - NASLOV"
+
+#: src/audacious/ui_preferences.c:577
+msgid "Category"
+msgstr "Kategorija"
+
+#: src/audacious/ui_preferences.c:801
 msgid "Popup Information Settings"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:810
 msgid "<b>Cover image retrieve</b>"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:815
 msgid ""
 "While searching for the album's cover, Audacious looks for certain words in "
 "the filename. You can specify those words in the lists below, separated "
 "using commas."
 msgstr ""
 
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:832
 msgid "Exclude:"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:839
 msgid "Include:"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:856
 msgid "Recursively search for cover"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:866
 msgid "Search depth: "
 msgstr ""
 
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:880
 msgid "Use per-file cover"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:883
 msgid "<b>Miscellaneous</b>"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:892
 msgid "Show Progress bar for the current track"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:902
 msgid "Delay until filepopup comes up: "
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1340
+msgid "Custom"
+msgstr ""
+
+#: src/audacious/ui_preferences.c:1383
 msgid "<b>Song Display</b>"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1392
 msgid "Show song numbers"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1403
 msgid "Show leading zeroes (02:00 instead of 2:00)"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1425
 msgid "Show information about titlestring format"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1514
-msgid "TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1515
-msgid "ARTIST - TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1516
-msgid "ARTIST - ALBUM - TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1517
-msgid "ARTIST - ALBUM - TRACK. TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1518
-msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1519
-msgid "ALBUM - TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1520
-msgid "Custom"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1441
 msgid "Custom string:"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1448
 msgid "Title format:"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1459
 msgid "<b>Popup Information</b>"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1474
 msgid "Show popup information for playlist entries"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1475
 msgid ""
 "Toggles popup information window for the pointed entry in the playlist. The "
 "window shows title of song, name of album, genre, year of publish, track "
 "number, track length, and artwork."
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1486
 msgid "Edit settings for popup information"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
+#: src/audacious/ui_preferences.c:1575
+msgid "Output plugin:"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1634
 msgid "Transport"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1634
 msgid "Input"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1635
 msgid "Effect"
-msgstr ""
+msgstr "Efekti"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1635
 msgid "Visualization"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1635
 msgid "General"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1675
 msgid "Audacious Preferences"
-msgstr ""
+msgstr "Nastavitve Audacious"
 
-#: src/audacious/util.c:161
+#: src/audacious/util.c:123
 #, c-format
 msgid "Could not create directory (%s): %s\n"
 msgstr ""
 
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:274
 msgid "Position not found."
 msgstr ""
 
 #: src/audtool/handlers_vitals.c:64
 msgid "No song playing."
-msgstr ""
+msgstr "Nobena pesem se ne predvaja"
 
 #: src/libaudcore/tuple.c:685
 msgid "Mono"
-msgstr ""
+msgstr "Mono"
 
 #: src/libaudcore/tuple.c:687
 msgid "Stereo"
-msgstr ""
+msgstr "Stereo"
 
 #: src/libaudcore/tuple.c:689
 #, c-format
-msgid "%d channels"
-msgstr ""
-
-#: src/libaudgui/confirm.c:65
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] "%d kanal"
+msgstr[1] "%d kanala"
+msgstr[2] "%d kanali"
+msgstr[3] "%d kanalov"
+
+#: src/libaudgui/confirm.c:78
 #, c-format
 msgid ""
 "Are you sure you want to close %s?  If you do, any changes made since the "
 "playlist was exported will be lost."
 msgstr ""
 
-#: src/libaudgui/confirm.c:77
+#: src/libaudgui/confirm.c:91
 msgid "_Don't show this message again"
-msgstr ""
+msgstr "_Ne prikaži več tega sporočila"
 
-#: src/libaudgui/confirm.c:115
+#: src/libaudgui/confirm.c:128
 msgid "Rename Playlist"
-msgstr ""
+msgstr "Preimenuj seznam predvajanja"
 
 #: src/libaudgui/effects-menu.c:76
 msgid "settings ..."
-msgstr ""
+msgstr "nastavitve ..."
 
-#: src/libaudgui/equalizer.c:68
+#: src/libaudgui/equalizer.c:52
 msgid "_Enable"
-msgstr ""
+msgstr "_Omogoči"
 
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:124
 msgid "31 Hz"
-msgstr ""
+msgstr "31 Hz"
 
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:124
 msgid "63 Hz"
-msgstr ""
+msgstr "63 Hz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:125
 msgid "125 Hz"
-msgstr ""
+msgstr "125 Hz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:125
 msgid "250 Hz"
-msgstr ""
+msgstr "250 Hz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:125
 msgid "500 Hz"
-msgstr ""
+msgstr "500 Hz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:125
 msgid "1 kHz"
-msgstr ""
+msgstr "1 kHz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:125
 msgid "2 kHz"
-msgstr ""
+msgstr "2 kHz"
 
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:126
 msgid "4 kHz"
-msgstr ""
+msgstr "4 kHz"
 
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:126
 msgid "8 kHz"
-msgstr ""
+msgstr "8 kHz"
 
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:126
 msgid "16 kHz"
-msgstr ""
+msgstr "16 kHz"
 
-#: src/libaudgui/equalizer.c:147
+#: src/libaudgui/equalizer.c:131
 msgid "Equalizer"
 msgstr ""
 
-#: src/libaudgui/equalizer.c:163
+#: src/libaudgui/equalizer.c:147
 msgid "Preamp"
 msgstr ""
 
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:211
 msgid "Track Number"
-msgstr ""
+msgstr "Å tevilka skladbe"
 
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:213
 msgid "Track Length"
-msgstr ""
+msgstr "Dolžina skladbe"
 
 #: src/libaudgui/infowin.c:77
 msgid "Acid Jazz"
@@ -1016,15 +975,15 @@ msgstr ""
 
 #: src/libaudgui/infowin.c:318
 msgid "Track Information"
-msgstr ""
+msgstr "Podatk o skladbi"
 
 #: src/libaudgui/infowin.c:350
 msgid "<span size=\"small\">Format:</span>"
-msgstr ""
+msgstr "<span size=\"small\">Format:</span>"
 
 #: src/libaudgui/infowin.c:354
 msgid "<span size=\"small\">Quality:</span>"
-msgstr ""
+msgstr "<span size=\"small\">Kvaliteta:</span>"
 
 #: src/libaudgui/infowin.c:357
 msgid "<span size=\"small\">Bitrate:</span>"
@@ -1032,126 +991,158 @@ msgstr ""
 
 #: src/libaudgui/infowin.c:387
 msgid "<span size=\"small\">Title</span>"
-msgstr ""
+msgstr "<span size=\"small\">Naslov</span>"
 
 #: src/libaudgui/infowin.c:399
 msgid "<span size=\"small\">Artist</span>"
-msgstr ""
+msgstr "<span size=\"small\">Izvajalec</span>"
 
 #: src/libaudgui/infowin.c:411
 msgid "<span size=\"small\">Album</span>"
-msgstr ""
+msgstr "<span size=\"small\">Album</span>"
 
 #: src/libaudgui/infowin.c:423
 msgid "<span size=\"small\">Comment</span>"
-msgstr ""
+msgstr "<span size=\"small\">Komentar</span>"
 
 #: src/libaudgui/infowin.c:435
 msgid "<span size=\"small\">Genre</span>"
-msgstr ""
+msgstr "<span size=\"small\">Zvrst</span>"
 
 #: src/libaudgui/infowin.c:456
 msgid "<span size=\"small\">Year</span>"
-msgstr ""
+msgstr "<span size=\"small\">Leto</span>"
 
 #: src/libaudgui/infowin.c:467
 msgid "<span size=\"small\">Track Number</span>"
-msgstr ""
+msgstr "<span size=\"small\">Å tevilka skladbe</span>"
 
 #: src/libaudgui/infowin.c:549
 #, c-format
 msgid "%d kb/s"
-msgstr ""
+msgstr "%d kb/s"
 
 #: src/libaudgui/infowin.c:579
 #, c-format
 msgid "No info available for %s.\n"
 msgstr ""
 
-#: src/libaudgui/ui_about.c:71
-msgid "About Audacious"
+#: src/libaudgui/jump-to-time.c:75
+msgid "Jump to Time"
 msgstr ""
 
-#: src/libaudgui/ui_about.c:93 src/libaudgui/ui_credits.c:122
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr "mm:ss"
+
+#: src/libaudgui/playlists.c:39
+msgid "Export Playlist"
+msgstr "Izvozi seznam predvajanja"
+
+#: src/libaudgui/playlists.c:39
+msgid "Import Playlist"
+msgstr "Uvozi seznam predvajanja"
+
+#: src/libaudgui/playlists.c:72
+#, c-format
+msgid "Overwrite %s?"
+msgstr ""
+
+#: src/libaudgui/queue-manager.c:185
+msgid "Queue Manager"
+msgstr ""
+
+#: src/libaudgui/ui_about.c:69
+msgid "About Audacious"
+msgstr "O Audacious"
+
+#: src/libaudgui/ui_about.c:90 src/libaudgui/ui_credits.c:122
 msgid "Credits"
 msgstr ""
 
 #: src/libaudgui/ui_credits.c:126
 msgid "Translators"
-msgstr ""
+msgstr "Prevajalci"
 
-#: src/libaudgui/ui_fileopener.c:108
+#: src/libaudgui/ui_fileopener.c:109
 msgid "Open Files"
-msgstr ""
+msgstr "Odpri datoteke"
 
-#: src/libaudgui/ui_fileopener.c:108
+#: src/libaudgui/ui_fileopener.c:109
 msgid "Add Files"
-msgstr ""
+msgstr "Dodaj datoteke"
 
-#: src/libaudgui/ui_fileopener.c:110
+#: src/libaudgui/ui_fileopener.c:111
 msgid "Close dialog on Open"
 msgstr ""
 
-#: src/libaudgui/ui_fileopener.c:110
+#: src/libaudgui/ui_fileopener.c:111
 msgid "Close dialog on Add"
 msgstr ""
 
-#: src/libaudgui/ui_jumptotrack.c:133
-msgid "Un_queue"
+#: src/libaudgui/ui_jumptotrack.c:103 src/libaudgui/ui_jumptotrack.c:111
+#: src/libaudgui/ui_jumptotrack.c:322
+msgid "_Queue"
 msgstr ""
 
-#: src/libaudgui/ui_jumptotrack.c:135 src/libaudgui/ui_jumptotrack.c:512
-msgid "_Queue"
+#: src/libaudgui/ui_jumptotrack.c:109
+msgid "Un_queue"
 msgstr ""
 
-#: src/libaudgui/ui_jumptotrack.c:399
+#: src/libaudgui/ui_jumptotrack.c:239
 msgid "Jump to Track"
 msgstr ""
 
-#: src/libaudgui/ui_jumptotrack.c:442
+#: src/libaudgui/ui_jumptotrack.c:277
 msgid "Filter: "
 msgstr ""
 
-#: src/libaudgui/ui_jumptotrack.c:443
+#: src/libaudgui/ui_jumptotrack.c:278
 msgid "_Filter:"
 msgstr ""
 
-#: src/libaudgui/ui_jumptotrack.c:461
+#: src/libaudgui/ui_jumptotrack.c:288
 msgid "Remember"
 msgstr ""
 
-#: src/libaudgui/ui_jumptotrack.c:470
+#: src/libaudgui/ui_jumptotrack.c:295
 msgid "Clea_r"
 msgstr ""
 
-#: src/libaudgui/ui_jumptotrack.c:504
+#: src/libaudgui/ui_jumptotrack.c:315
 msgid "Close on Jump"
 msgstr ""
 
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:250
 msgid "Playlist Manager"
 msgstr ""
 
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:277
 msgid "Entries"
 msgstr ""
 
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:298
 msgid "_Rename"
 msgstr ""
 
-#: src/libaudgui/ui_playlist_manager.c:251
+#: src/libaudgui/ui_playlist_manager.c:322
 msgid "_Close dialog on activating playlist"
 msgstr ""
 
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:51
 msgid "Open URL"
 msgstr ""
 
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:51
 msgid "Add URL"
 msgstr ""
 
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+
 #: src/libeggsmclient/eggdesktopfile.c:165
 msgid "File is not a valid .desktop file"
 msgstr ""
@@ -1161,25 +1152,25 @@ msgstr ""
 msgid "Unrecognized desktop file Version '%s'"
 msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:967
 #, c-format
 msgid "Starting %s"
 msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1108
 msgid "Application does not accept documents on command line"
 msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1176
 #, c-format
 msgid "Unrecognized launch option: %d"
 msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1375
 msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
 msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1396
 msgid "Not a launchable item"
 msgstr ""
 
@@ -1193,7 +1184,7 @@ msgstr ""
 
 #: src/libeggsmclient/eggsmclient.c:229
 msgid "FILE"
-msgstr ""
+msgstr "DATOTEKA"
 
 #: src/libeggsmclient/eggsmclient.c:232
 msgid "Specify session management ID"
@@ -1201,7 +1192,7 @@ msgstr ""
 
 #: src/libeggsmclient/eggsmclient.c:232
 msgid "ID"
-msgstr ""
+msgstr "ID"
 
 #: src/libeggsmclient/eggsmclient.c:253
 msgid "Session management options:"
@@ -1210,3 +1201,5 @@ msgstr ""
 #: src/libeggsmclient/eggsmclient.c:254
 msgid "Show session management options"
 msgstr ""
+
+
diff --git a/po/sr.po b/po/sr.po
index 2f7db70..84d1ca9 100644
--- a/po/sr.po
+++ b/po/sr.po
@@ -1,32 +1,43 @@
-# translation of sr.po to
-# Strahinja Kustudic <kustudic at gmail.com>, 2007, 2008.
-# translation of audacious.pot to Serbian Cyrillic
-# Copyright (C) 2007 Strahinja  Kustudić <kustodian at gmail.com>
+# Serbian translation for Audacious
+# Copyright (C) Audacious translators
 # This file is distributed under the same license as the Audacious package.
+#
+# Translators:
+# Strahinja Kustudic <kustudic at gmail.com>, 2007, 2008.
+# Мирослав Николић <miroslavnikolic at rocketmail.com>, 2011, 2012.
 msgid ""
 msgstr ""
-"Project-Id-Version: sr\n"
-"Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
-"PO-Revision-Date: 2008-07-19 11:57+0200\n"
-"Last-Translator: Strahinja Kustudic <kustudic at gmail.com>\n"
-"Language-Team:  <en at li.org>\n"
-"Language: \n"
+"Project-Id-Version: Audacious\n"
+"Report-Msgid-Bugs-To: http://redmine.audacious-media-player.org/\n"
+"POT-Creation-Date: 2011-12-29 19:27-0500\n"
+"PO-Revision-Date: 2012-01-08 17:19+0000\n"
+"Last-Translator: MirosNik <miroslavnikolic at rocketmail.com>\n"
+"Language-Team: Serbian\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: KBabel 1.11.4\n"
-"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
-"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+"Language: sr\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
+
+#: src/audacious/adder.c:77
+msgid "Searching ..."
+msgstr "Тражим ..."
+
+#: src/audacious/adder.c:113
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] "Пронашао сам %d датотеку"
+msgstr[1] "Пронашао сам %d датотеке"
+msgstr[2] "Пронашао сам %d датотека"
 
-#: src/audacious/chardet.c:37
+#: src/audacious/chardet.c:39
 msgid "  (invalid UTF-8)"
-msgstr "  (неисправан UTF-8)"
+msgstr "  (неисправан УТФ-8)"
 
 #: src/audacious/credits.c:35
-#, fuzzy
 msgid "Core developers:"
-msgstr "0.1.x ствараоци:"
+msgstr "Програмери језгра:"
 
 #: src/audacious/credits.c:49
 msgid "Graphics:"
@@ -34,1100 +45,1031 @@ msgstr "Графика:"
 
 #: src/audacious/credits.c:54
 msgid "Default skin:"
-msgstr "Подразумевана маска:"
+msgstr "Основна маска:"
 
 #: src/audacious/credits.c:60
 msgid "Plugin development:"
-msgstr "Развој додатака:"
+msgstr "Развој прикључка:"
 
 #: src/audacious/credits.c:83
 msgid "Patch authors:"
 msgstr "Аутори закрпа:"
 
-#: src/audacious/credits.c:126
-#, fuzzy
+#: src/audacious/credits.c:127
 msgid "1.x developers:"
 msgstr "0.1.x ствараоци:"
 
-#: src/audacious/credits.c:148
+#: src/audacious/credits.c:149
 msgid "BMP Developers:"
-msgstr "BMP ствараоци:"
+msgstr "БМП програмери:"
 
-#: src/audacious/credits.c:180
-#, fuzzy
+#: src/audacious/credits.c:181
 msgid "Belarusian:"
-msgstr "Бугарски:"
+msgstr "Белоруски:"
 
-#: src/audacious/credits.c:183
+#: src/audacious/credits.c:184
 msgid "Basque:"
-msgstr ""
+msgstr "Баскијски:"
 
-#: src/audacious/credits.c:186
+#: src/audacious/credits.c:187
 msgid "Brazilian Portuguese:"
-msgstr "Бразилско Португалски:"
+msgstr "Бразилски-португалски:"
 
-#: src/audacious/credits.c:190
+#: src/audacious/credits.c:192
 msgid "Breton:"
 msgstr "Бретонски:"
 
-#: src/audacious/credits.c:193
+#: src/audacious/credits.c:195
 msgid "Bulgarian:"
 msgstr "Бугарски:"
 
-#: src/audacious/credits.c:196
+#: src/audacious/credits.c:198
 msgid "Catalan:"
 msgstr "Каталонски:"
 
-#: src/audacious/credits.c:199
-#, fuzzy
+#: src/audacious/credits.c:202
 msgid "Chinese:"
-msgstr "Кинески"
+msgstr "Кинески:"
 
-#: src/audacious/credits.c:202
+#: src/audacious/credits.c:205
 msgid "Croatian:"
 msgstr "Хрватски:"
 
-#: src/audacious/credits.c:205
+#: src/audacious/credits.c:208
 msgid "Czech:"
 msgstr "Чешки:"
 
-#: src/audacious/credits.c:208
+#: src/audacious/credits.c:211
 msgid "Dutch:"
 msgstr "Холандски:"
 
-#: src/audacious/credits.c:212
+#: src/audacious/credits.c:215
 msgid "Estonian:"
 msgstr "Естонски:"
 
-#: src/audacious/credits.c:215
+#: src/audacious/credits.c:218
 msgid "Finnish:"
 msgstr "Фински:"
 
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:223
 msgid "French:"
 msgstr "Француски:"
 
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:229
 msgid "German:"
 msgstr "Немачки:"
 
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:236
 msgid "Georgian:"
 msgstr "Арменски:"
 
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:239
 msgid "Greek:"
 msgstr "Грчки:"
 
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:244
 msgid "Hindi:"
-msgstr "Индијски:"
+msgstr "Хинду:"
 
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:247
 msgid "Hungarian:"
 msgstr "Мађарски:"
 
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:251
 msgid "Italian:"
 msgstr "Италијански:"
 
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:256
 msgid "Japanese:"
 msgstr "Јапански:"
 
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:259
 msgid "Korean:"
-msgstr "Кореански:"
+msgstr "Корејски:"
 
-#: src/audacious/credits.c:256
-#, fuzzy
+#: src/audacious/credits.c:262
 msgid "Latvian:"
-msgstr "Хрватски:"
+msgstr "Летонски:"
 
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:265
 msgid "Lithuanian:"
 msgstr "Литвански:"
 
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:270
 msgid "Macedonian:"
 msgstr "Македонски:"
 
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:273
 msgid "Polish:"
 msgstr "Пољски:"
 
-#: src/audacious/credits.c:271
-#, fuzzy
+#: src/audacious/credits.c:279
 msgid "Portuguese:"
-msgstr "Бразилско Португалски:"
+msgstr "Португалски:"
 
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:282
 msgid "Romanian:"
 msgstr "Румунски:"
 
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:286
 msgid "Russian:"
 msgstr "Руски:"
 
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:290
 msgid "Serbian (Latin):"
 msgstr "Српски (Латиница):"
 
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:293
 msgid "Serbian (Cyrillic):"
 msgstr "Српски (Ћирилица):"
 
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:297
 msgid "Simplified Chinese:"
-msgstr "Упроштен Кинески:"
+msgstr "Упроштени кинески:"
 
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:300
 msgid "Slovak:"
 msgstr "Словеначки:"
 
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:303
 msgid "Spanish:"
 msgstr "Шпански:"
 
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:311
 msgid "Swedish:"
 msgstr "Шведски:"
 
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:314
 msgid "Traditional Chinese:"
-msgstr "Традиционални Кинески:"
+msgstr "Традиционални кинески:"
 
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:320
 msgid "Turkish:"
 msgstr "Турски:"
 
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:324
 msgid "Ukrainian:"
 msgstr "Украински:"
 
-#: src/audacious/credits.c:316
-msgid "Welsh:"
-msgstr "Велшански:"
+#: src/audacious/credits.c:328
+msgid "Vietnamese:"
+msgstr "Вијетнамски:"
 
-#: src/audacious/drct.c:254
-#, fuzzy
-msgid "Temporary Playlist"
-msgstr "Учитај листу нумера"
+#: src/audacious/credits.c:331
+msgid "Welsh:"
+msgstr "Велшки:"
 
-#: src/audacious/equalizer_preset.c:186
+#: src/audacious/equalizer_preset.c:180
 #, c-format
 msgid "Error importing Winamp EQF file '%s'"
-msgstr "Грешка приликом увозења Winamp EQF датотеке '%s'"
-
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr ""
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
+msgstr "Грешка приликом увоза ВинАМП ЕКуФ датотеке „%s“"
 
-#: src/audacious/main.c:247
+#: src/audacious/main.c:243
 msgid "Skip backwards in playlist"
-msgstr "Скочи уназад у листи нумера"
+msgstr "Прескаче уназад у списку нумера"
 
-#: src/audacious/main.c:248
+#: src/audacious/main.c:244
 msgid "Start playing current playlist"
-msgstr "Пусти текућу листу нумера"
+msgstr "Пушта текући списак нумера"
 
-#: src/audacious/main.c:249
+#: src/audacious/main.c:245
 msgid "Pause current song"
-msgstr "Паузирај текућу песму"
+msgstr "Паузира текућу песму"
 
-#: src/audacious/main.c:250
+#: src/audacious/main.c:246
 msgid "Stop current song"
-msgstr "Заустави текућу песму"
+msgstr "Зауставља текућу песму"
 
-#: src/audacious/main.c:251
+#: src/audacious/main.c:247
 msgid "Pause if playing, play otherwise"
-msgstr "Паузирај ако свира, иначе пусти"
+msgstr "Паузира ако свира, иначе пушта"
 
-#: src/audacious/main.c:252
+#: src/audacious/main.c:248
 msgid "Skip forward in playlist"
-msgstr "Скочи унапред у листи нумера"
+msgstr "Прескаче унапред у списку нумера"
 
-#: src/audacious/main.c:253
+#: src/audacious/main.c:249
 msgid "Display Jump to File dialog"
-msgstr "Прикажи Пређи на датотеку оквир"
+msgstr "Приказује прозорче „Пређи на датотеку“"
 
-#: src/audacious/main.c:254
-#, fuzzy
+#: src/audacious/main.c:250
 msgid "Add files to the playlist"
-msgstr "Додаје датотеке у листу нумера."
+msgstr "Додаје датотеке на списак нумера"
 
-#: src/audacious/main.c:255
+#: src/audacious/main.c:251
 msgid "Add new files to a temporary playlist"
-msgstr "Додаје нове датотеке у привремену листу нумера"
+msgstr "Додаје нове датотеке у привремени списак нумера"
 
-#: src/audacious/main.c:256
+#: src/audacious/main.c:252
 msgid "Display the main window"
-msgstr "Прикажи главни прозор"
+msgstr "Приказује главни прозор"
 
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr "Прикажи све отворене Audacious прозоре"
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:253
 msgid "Show version"
-msgstr "Прикажи верзију"
+msgstr "Приказује издање"
 
-#: src/audacious/main.c:259
+#: src/audacious/main.c:254
 msgid "Print debugging messages"
-msgstr ""
+msgstr "Исписује поруке за исправљање грешака"
+
+#: src/audacious/main.c:255
+msgid "Headless mode (beta)"
+msgstr "Безглави режим (бета)"
 
-#: src/audacious/main.c:260
+#: src/audacious/main.c:256
 msgid "FILE..."
 msgstr "ДАТОТЕКА..."
 
-#: src/audacious/main.c:272
+#: src/audacious/main.c:268
 msgid "- play multimedia files"
-msgstr "- пусти мултимедијалне датотеке"
+msgstr "— пушта мултимедијалне датотеке"
 
-#: src/audacious/main.c:282
+#: src/audacious/main.c:278
 #, c-format
 msgid ""
 "%s: %s\n"
 "Try `%s --help' for more information.\n"
 msgstr ""
 "%s: %s\n"
-"Пробајте `%s --help' за више информација.\n"
-
-#: src/audacious/main.c:395
-msgid ""
-"Audacious seems to be already running but is not responding.  You can start "
-"another instance of the program, but please be warned that this can cause "
-"data loss.  If Audacious is not running, you can safely ignore this "
-"message.  Press OK to start Audacious or Cancel to quit."
-msgstr ""
+"Пробајте „%s --help“ за више информација.\n"
 
-#: src/audacious/main.c:558
+#: src/audacious/main.c:572
 msgid "Audacious"
-msgstr "Audacious"
+msgstr "Безочник"
 
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:307
 #, c-format
 msgid "No decoder found for %s."
-msgstr ""
+msgstr "Нисам пронашао декодер за %s."
 
-#: src/audacious/playback.c:519
-msgid "Buffering ..."
-msgstr ""
+#: src/audacious/playlist-new.c:131
+msgid "New Playlist"
+msgstr "Нови списак нумера"
 
-#: src/audacious/playlist-new.c:288
-#, fuzzy
-msgid "Untitled Playlist"
-msgstr "Нова листа нумера"
+#: src/audacious/playlist-new.c:132
+msgid "Now Playing"
+msgstr "Сад пуштам"
 
-#: src/audacious/ui_preferences.c:88
+#: src/audacious/playlist-new.c:1627
+msgid ""
+"The playlist cannot be sorted because metadata scanning is still in progress"
+" (or has been disabled)."
+msgstr ""
+"Листа нумера не може бити поређана зато што је прегледање метаподатака још "
+"увек у току (или је искључено)."
+
+#: src/audacious/ui_preferences.c:85
 msgid "Audio"
 msgstr "Аудио"
 
-#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
-msgstr "Replay Gain"
-
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:86
 msgid "Network"
-msgstr ""
+msgstr "Мрежа"
 
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:87 src/audacious/ui_preferences.c:1603
 msgid "Playlist"
-msgstr "Листа нумера"
+msgstr "Списак нумера"
 
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:88
 msgid "Plugins"
-msgstr "Додаци"
+msgstr "Прикључци"
 
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:94 src/libaudgui/infopopup.c:203
 msgid "Artist"
 msgstr "Извођач"
 
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:95 src/libaudgui/infopopup.c:205
 msgid "Album"
 msgstr "Албум"
 
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:201
+#: src/libaudgui/ui_playlist_manager.c:279
 msgid "Title"
 msgstr "Наслов"
 
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:97
 msgid "Tracknumber"
 msgstr "Број нумере"
 
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:207
 msgid "Genre"
 msgstr "Жанр"
 
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:99
 msgid "Filename"
-msgstr "Име датотеке"
+msgstr "Назив датотеке"
 
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:100
 msgid "Filepath"
 msgstr "Путања датотеке"
 
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:101
 msgid "Date"
 msgstr "Датум"
 
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:209
 msgid "Year"
 msgstr "Година"
 
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:103
 msgid "Comment"
 msgstr "Коментар"
 
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:104
 msgid "Codec"
 msgstr "Кодек"
 
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:105
 msgid "Quality"
 msgstr "Квалитет"
 
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:111
 msgid "None"
-msgstr "Ниједан"
+msgstr "Ништа"
+
+#: src/audacious/ui_preferences.c:112
+msgid "Arabic"
+msgstr "Арапски"
+
+#: src/audacious/ui_preferences.c:113
+msgid "Baltic"
+msgstr "Балтички"
+
+#: src/audacious/ui_preferences.c:114
+msgid "Chinese"
+msgstr "Кинески"
 
 #: src/audacious/ui_preferences.c:115
-msgid "Japanese"
-msgstr "Јапански"
+msgid "Greek"
+msgstr "Грчки"
 
 #: src/audacious/ui_preferences.c:116
-msgid "Taiwanese"
-msgstr "Тајвански"
+msgid "Hebrew"
+msgstr "Јеврејски"
 
 #: src/audacious/ui_preferences.c:117
-msgid "Chinese"
-msgstr "Кинески"
+msgid "Japanese"
+msgstr "Јапански"
 
 #: src/audacious/ui_preferences.c:118
 msgid "Korean"
-msgstr "Кореански"
+msgstr "Корејски"
 
 #: src/audacious/ui_preferences.c:119
-msgid "Russian"
-msgstr "Руски"
+msgid "Polish"
+msgstr "Пољски"
 
 #: src/audacious/ui_preferences.c:120
-msgid "Greek"
-msgstr "Грчки"
+msgid "Russian"
+msgstr "Руски"
 
 #: src/audacious/ui_preferences.c:121
-msgid "Hebrew"
-msgstr "Јеврејски"
+msgid "Taiwanese"
+msgstr "Тајвански"
 
 #: src/audacious/ui_preferences.c:122
 msgid "Turkish"
 msgstr "Турски"
 
-#: src/audacious/ui_preferences.c:123
-msgid "Arabic"
-msgstr "Арапски"
-
-#: src/audacious/ui_preferences.c:124
-#, fuzzy
-msgid "Polish"
-msgstr "Пољски:"
-
-#: src/audacious/ui_preferences.c:125
-#, fuzzy
-msgid "Baltic"
-msgstr "Келтска"
-
-#: src/audacious/ui_preferences.c:126
-msgid "Universal"
-msgstr "Универзалан"
-
-#: src/audacious/ui_preferences.c:146
-msgid "<b>Bit Depth</b>"
-msgstr "<b>Дубина бита</b>"
+#: src/audacious/ui_preferences.c:144
+msgid "Album mode"
+msgstr "Режим албума"
 
 #: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr "Дубина бита излаза:"
+msgid "<b>Output Settings</b>"
+msgstr "<b>Подешавања излаза</b>"
 
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
-"Сви токови ће бити претворени у ову дубину бита.\n"
-"Ово би требала да буде максимална подржана дубина бита\n"
-"музичке картице или излазног додатка."
-
-#: src/audacious/ui_preferences.c:151
-msgid "<b>Volume Control</b>"
-msgstr "<b>Контрола јачине звука</b>"
+#: src/audacious/ui_preferences.c:149
+msgid "Bit depth:"
+msgstr "Дубина бита:"
 
 #: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr "Користи софтверску контролу звука"
+msgid "Buffer size:"
+msgstr "Величина бафера:"
 
 #: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
-"Користи софтверску контролу звука. Ово може бити корисно у ситуацијама где "
-"ваш аудио систем не подржава контролу јачине звука репродукције."
-
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
-msgstr "dB"
+msgid "ms"
+msgstr "ms"
 
-#: src/audacious/ui_preferences.c:160
-#, fuzzy
-msgid "Amplify untagged files:"
-msgstr "- пусти мултимедијалне датотеке"
+#: src/audacious/ui_preferences.c:155
+msgid "Use software volume control (not recommended)"
+msgstr "Користи софтверско управљање јачином звука (није препоручљиво)"
 
-#: src/audacious/ui_preferences.c:164
-#, fuzzy
+#: src/audacious/ui_preferences.c:157
 msgid "<b>Replay Gain</b>"
-msgstr "<b>Replay Gain режим</b>"
+msgstr "<b>Појачање понављања</b>"
 
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:158
 msgid "Enable Replay Gain"
-msgstr "Укључи Replay Gain"
-
-#: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>Мета-подаци</b>"
-
-#: src/audacious/ui_preferences.c:168
-#, fuzzy
-msgid "Single track mode"
-msgstr "Прикажи детаље нумере"
+msgstr "Укључи појачање понављања"
 
-#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "Албум: "
+#: src/audacious/ui_preferences.c:161
+msgid "Prevent clipping (recommended)"
+msgstr "Спречи одсецање (препоручљиво)"
 
-#: src/audacious/ui_preferences.c:172
-#, fuzzy
+#: src/audacious/ui_preferences.c:163
 msgid "<b>Adjust Levels</b>"
-msgstr "<b>Точкић миша</b>"
+msgstr "<b>Подеси нивое</b>"
+
+#: src/audacious/ui_preferences.c:164
+msgid "Amplify all files:"
+msgstr "Појачај све датотеке:"
 
-#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "<b>Искачуће информације</b>"
+#: src/audacious/ui_preferences.c:166 src/audacious/ui_preferences.c:169
+msgid "dB"
+msgstr "dB"
 
-#: src/audacious/ui_preferences.c:176
-#, fuzzy
-msgid "Enable clipping prevention"
-msgstr "Укључи заштиту од одсецања врхунаца"
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify untagged files:"
+msgstr "Појачај датотеке без ознака:"
 
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:172
 msgid "Proxy hostname:"
-msgstr "Име домаћина посредника:"
+msgstr "Назив домаћина посредника:"
 
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:173
 msgid "Proxy port:"
-msgstr "Посреднички порт:"
+msgstr "Порт посредника:"
 
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:176
 msgid "Proxy username:"
-msgstr "Посредничко корисничко име:"
+msgstr "Корисничко име посредника:"
 
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:177
 msgid "Proxy password:"
-msgstr "Посредничка лозинка:"
+msgstr "Лозинка посредника:"
 
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:181
 msgid "<b>Proxy Configuration</b>"
-msgstr "<b>Конфигурација посредника</b>"
+msgstr "<b>Подешавања посредника</b>"
 
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:182
 msgid "Enable proxy usage"
 msgstr "Укључи коришћење посредника"
 
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:185
 msgid "Use authentication with proxy"
-msgstr "Користи проверу идентитета са посредником"
+msgstr "Користи потврђивање идентитета са посредником"
 
-#: src/audacious/ui_preferences.c:197
-msgid ""
-"<span size=\"small\">Changing these settings will require a restart of "
-"Audacious.</span>"
-msgstr ""
-"<span size=\"small\">Мењање ових подешавања ће захтевати поновно покретање "
-"Audacious-а.</span>"
-
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
 msgid "Auto character encoding detector for:"
-msgstr "Ауто-препознавање кодирања карактера за:"
+msgstr "Детектор аутоматског кодирања знакова за:"
 
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:198
 msgid "Fallback character encodings:"
-msgstr "Резервно кодирање карактера:"
-
-#: src/audacious/ui_preferences.c:209
-msgid ""
-"List of character encodings used for fall back conversion of metadata. If "
-"automatic character encoding detector failed or has been disabled, encodings "
-"in this list would be treated as candidates of the encoding of metadata, and "
-"fall back conversion from these encodings to UTF-8 would be attempted."
-msgstr ""
-"Листа кодирања карактера која се користе за резервну конверзију мета-"
-"података. Ако аутоматско препознавање кодирања карактера не упсе или је "
-"искључено, кодирања у овој листи ће бити кандидати за шифровање мета-"
-"поатака, и резервна конверзија из ових кодирања у UTF-8 ће бити покушана."
+msgstr "Резервно кодирање знакова:"
 
-#: src/audacious/ui_preferences.c:213
-#, fuzzy
+#: src/audacious/ui_preferences.c:202
 msgid "<b>Behavior</b>"
-msgstr "<b>Дубина бита</b>"
+msgstr "<b>Понашање</b>"
 
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:203
 msgid "Continue playback on startup"
 msgstr "Настави репродуковање на почетку"
 
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:205
 msgid "Advance when the current song is deleted"
-msgstr ""
+msgstr "Напредуј када је обрисана текућа песма"
 
-#: src/audacious/ui_preferences.c:218
-#, fuzzy
+#: src/audacious/ui_preferences.c:207
 msgid "Clear the playlist when opening files"
-msgstr "Направи нову листу од нађених ставки"
+msgstr "Очисти листу нумера приликом отварања датотека"
 
-#: src/audacious/ui_preferences.c:220
-#, fuzzy
+#: src/audacious/ui_preferences.c:209
 msgid "Open files in a temporary playlist"
-msgstr "Додаје нове датотеке у привремену листу нумера"
+msgstr "Отвори датотеке у привременој листи нумера"
 
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:211
 msgid "<b>Metadata</b>"
-msgstr "<b>Мета-подаци</b>"
+msgstr "<b>Метаподаци</b>"
+
+#: src/audacious/ui_preferences.c:212
+msgid "Do not load metadata for songs until played"
+msgstr "Не учитавај метаподатке за песме док се не пусте"
+
+#: src/audacious/ui_preferences.c:230
+msgid "TITLE"
+msgstr "НАСЛОВ"
+
+#: src/audacious/ui_preferences.c:231
+msgid "ARTIST - TITLE"
+msgstr "ИЗВОЂАЧ — НАСЛОВ"
 
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:232
+msgid "ARTIST - ALBUM - TITLE"
+msgstr "ИЗВОЂАЧ — АЛБУМ — НАСЛОВ"
+
+#: src/audacious/ui_preferences.c:233
+msgid "ARTIST - ALBUM - TRACK. TITLE"
+msgstr "ИЗВОЂАЧ — АЛБУМ — БРОЈ. НАСЛОВ"
+
+#: src/audacious/ui_preferences.c:234
+msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
+msgstr "ИЗВОЂАЧ [ АЛБУМ ] — БРОЈ. НАСЛОВ"
+
+#: src/audacious/ui_preferences.c:235
+msgid "ALBUM - TITLE"
+msgstr "АЛБУМ — НАСЛОВ"
+
+#: src/audacious/ui_preferences.c:556
 msgid "Category"
 msgstr "Категорија"
 
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:780
 msgid "Popup Information Settings"
-msgstr "Подешавања искачућих информација"
+msgstr "Поставке облачића информација"
 
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:789
 msgid "<b>Cover image retrieve</b>"
-msgstr "<b>Учитавање насловне слике</b>"
+msgstr "<b>Учитавање слике омота</b>"
 
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:794
 msgid ""
 "While searching for the album's cover, Audacious looks for certain words in "
 "the filename. You can specify those words in the lists below, separated "
 "using commas."
 msgstr ""
-"Док тражи насловне слике албума, Audacious тражи одређене речи у имену "
-"датотеке. Можете навести те речи доле у листи, раздвојене запетама."
+"Док тражи слике омота албума, Безочник тражи одређене речи у називу "
+"датотеке. Можете навести те речи у списку доле, раздвојене зарезима."
 
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:811
 msgid "Exclude:"
 msgstr "Искључи:"
 
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:818
 msgid "Include:"
 msgstr "Укључи:"
 
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:835
 msgid "Recursively search for cover"
-msgstr "Рекурзивно тражи насловну слику"
+msgstr "Рекурзивно тражи слику омота"
 
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:845
 msgid "Search depth: "
 msgstr "Дубина претраге: "
 
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:859
 msgid "Use per-file cover"
-msgstr "Користи једну насловну слику по датотеци"
+msgstr "Користи један омот по датотеци"
 
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:862
 msgid "<b>Miscellaneous</b>"
-msgstr "<b>Остало</b>"
+msgstr "<b>Разно</b>"
 
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:871
 msgid "Show Progress bar for the current track"
 msgstr "Прикажи индикатор напредовања за текућу нумеру"
 
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:881
 msgid "Delay until filepopup comes up: "
-msgstr "Закашњење појављивања искачућег проз. датотеке: "
+msgstr "Кашњење до појављивања облачића датотеке: "
 
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1309
+msgid "Custom"
+msgstr "Произвољно"
+
+#: src/audacious/ui_preferences.c:1352
 msgid "<b>Song Display</b>"
 msgstr "<b>Приказ песме</b>"
 
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1361
 msgid "Show song numbers"
-msgstr ""
+msgstr "Прикажи бројеве песама"
 
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1372
 msgid "Show leading zeroes (02:00 instead of 2:00)"
-msgstr ""
+msgstr "Прикажи почетне нуле (02:00 уместо 2:00)"
 
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1394
 msgid "Show information about titlestring format"
-msgstr "Прикажи информације о формату знаковног низа наслова"
-
-#: src/audacious/ui_preferences.c:1514
-msgid "TITLE"
-msgstr "НАСЛОВ"
-
-#: src/audacious/ui_preferences.c:1515
-msgid "ARTIST - TITLE"
-msgstr "ИЗВОЂАЧ - НАСЛОВ"
-
-#: src/audacious/ui_preferences.c:1516
-msgid "ARTIST - ALBUM - TITLE"
-msgstr "ИЗВОЂАЧ - АЛБУМ - НАСЛОВ"
-
-#: src/audacious/ui_preferences.c:1517
-msgid "ARTIST - ALBUM - TRACK. TITLE"
-msgstr "ИЗВОЂАЧ - АЛБУМ - БРОЈ. НАСЛОВ"
-
-#: src/audacious/ui_preferences.c:1518
-msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
-msgstr "ИЗВОЂАЧ [ АЛБУМ ] - БРОЈ. НАСЛОВ"
-
-#: src/audacious/ui_preferences.c:1519
-msgid "ALBUM - TITLE"
-msgstr "АЛБУМ - НАСЛОВ"
-
-#: src/audacious/ui_preferences.c:1520
-msgid "Custom"
-msgstr "Сопствени"
+msgstr "Прикажи информације о формату наслова"
 
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1410
 msgid "Custom string:"
-msgstr "Сопствени знаковни низ:"
+msgstr "Произвољна ниска:"
 
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1417
 msgid "Title format:"
 msgstr "Формат наслова:"
 
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1428
 msgid "<b>Popup Information</b>"
-msgstr "<b>Искачуће информације</b>"
+msgstr "<b>Облачић информација</b>"
 
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1443
 msgid "Show popup information for playlist entries"
-msgstr "Прикажи искачуће информације за ставке у листи нумера"
+msgstr "Прикажи облачић информација за ставке на списку нумера"
 
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1444
 msgid ""
 "Toggles popup information window for the pointed entry in the playlist. The "
 "window shows title of song, name of album, genre, year of publish, track "
 "number, track length, and artwork."
 msgstr ""
-"Укључује/искључује искачући прозор са информацијама за показану ставку у "
-"листи нумера. Прозор приказује име песме, име албума, жанр, годину издавања, "
-"број нумере, дужину нумере и слику."
+"Укључује/искључује прозор облачића информација за указану ставку на списку "
+"нумера. Прозор приказује наслов песме, име албума, жанр, годину издавања, "
+"број нумере, дужину нумере и слику омота."
 
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1455
 msgid "Edit settings for popup information"
-msgstr "Уреди подешавања за искачуће информације"
-
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>Аудио систем</b>"
+msgstr "Уредите поставке за облачић информација"
 
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "Величина бафера:"
+#: src/audacious/ui_preferences.c:1544
+msgid "Output plugin:"
+msgstr "Прикључак излаза:"
 
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
-msgstr "Текући излазни додатак:"
-
-#: src/audacious/ui_preferences.c:1790
-#, fuzzy
+#: src/audacious/ui_preferences.c:1603
 msgid "Transport"
-msgstr "Преводиоци"
+msgstr "Пренос"
 
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1603
 msgid "Input"
-msgstr ""
+msgstr "Унос"
 
-#: src/audacious/ui_preferences.c:1791
-#, fuzzy
+#: src/audacious/ui_preferences.c:1604
 msgid "Effect"
-msgstr "<b>Ефекти</b>"
+msgstr "Ефекат"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1604
 msgid "Visualization"
-msgstr "Визуелизација"
+msgstr "Приказивање"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1604
 msgid "General"
-msgstr ""
+msgstr "Опште"
 
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1644
 msgid "Audacious Preferences"
-msgstr "Audacious подешавања"
+msgstr "Поставке Безочника"
 
-#: src/audacious/util.c:161
+#: src/audacious/util.c:120
 #, c-format
 msgid "Could not create directory (%s): %s\n"
-msgstr "Није могуће направити директоријум (%s): %s\n"
+msgstr "Не могу да направим фасциклу (%s): %s\n"
 
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:273
 msgid "Position not found."
-msgstr ""
+msgstr "Положај није нађен."
 
-#: src/audtool/handlers_vitals.c:64
+#: src/audtool/handlers_vitals.c:63
 msgid "No song playing."
-msgstr ""
+msgstr "Није пуштена ниједна песма."
 
-#: src/libaudcore/tuple.c:685
+#: src/libaudcore/audstrings.c:194
+#, c-format
+msgid "Audio CD, track %s"
+msgstr "Звучни ЦД, нумера %s"
+
+#: src/libaudcore/tuple.c:536
 msgid "Mono"
-msgstr ""
+msgstr "Моно"
 
-#: src/libaudcore/tuple.c:687
-#, fuzzy
+#: src/libaudcore/tuple.c:538
 msgid "Stereo"
-msgstr "стерео"
+msgstr "Стерео"
 
-#: src/libaudcore/tuple.c:689
+#: src/libaudcore/tuple.c:540
 #, c-format
-msgid "%d channels"
-msgstr ""
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] "%d канал"
+msgstr[1] "%d канала"
+msgstr[2] "%d канала"
 
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/confirm.c:78
 #, c-format
 msgid ""
 "Are you sure you want to close %s?  If you do, any changes made since the "
 "playlist was exported will be lost."
 msgstr ""
+"Да ли сте сигурни да желите да затворите %s? Ако то урадите, све измене "
+"направљене од када је извежен списак нумера биће изгубљене."
 
-#: src/libaudgui/confirm.c:77
-#, fuzzy
+#: src/libaudgui/confirm.c:91
 msgid "_Don't show this message again"
-msgstr "Не приказуј ово упозорење"
+msgstr "_Не приказуј више ову поруку"
 
-#: src/libaudgui/confirm.c:115
-#, fuzzy
+#: src/libaudgui/confirm.c:128
 msgid "Rename Playlist"
-msgstr "Сачувај листу нумера"
+msgstr "Преименуј списак нумера"
 
 #: src/libaudgui/effects-menu.c:76
 msgid "settings ..."
-msgstr ""
+msgstr "подешавања ..."
 
-#: src/libaudgui/equalizer.c:68
-#, fuzzy
+#: src/libaudgui/equalizer.c:53
 msgid "_Enable"
-msgstr "Укључен"
+msgstr "_Укључи"
 
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:125
 msgid "31 Hz"
-msgstr ""
+msgstr "31 Hz"
 
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:125
 msgid "63 Hz"
-msgstr ""
+msgstr "63 Hz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:126
 msgid "125 Hz"
-msgstr ""
+msgstr "125 Hz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:126
 msgid "250 Hz"
-msgstr ""
+msgstr "250 Hz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:126
 msgid "500 Hz"
-msgstr ""
+msgstr "500 Hz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:126
 msgid "1 kHz"
-msgstr ""
+msgstr "1 kHz"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:126
 msgid "2 kHz"
-msgstr ""
+msgstr "2 kHz"
 
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:127
 msgid "4 kHz"
-msgstr ""
+msgstr "4 kHz"
 
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:127
 msgid "8 kHz"
-msgstr ""
+msgstr "8 kHz"
 
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:127
 msgid "16 kHz"
-msgstr ""
+msgstr "16 kHz"
 
-#: src/libaudgui/equalizer.c:147
-#, fuzzy
+#: src/libaudgui/equalizer.c:132
 msgid "Equalizer"
-msgstr "Прикажи еквилајзер"
+msgstr "Уједначавач"
 
-#: src/libaudgui/equalizer.c:163
-#, fuzzy
+#: src/libaudgui/equalizer.c:148
 msgid "Preamp"
-msgstr "Предпојачало:"
+msgstr "Претпојачање"
 
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:211
 msgid "Track Number"
 msgstr "Број нумере"
 
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:213
 msgid "Track Length"
 msgstr "Дужина нумере"
 
-#: src/libaudgui/infowin.c:77
+#: src/libaudgui/infowin.c:78
 msgid "Acid Jazz"
-msgstr "Асид џез"
+msgstr "Кисели џез"
 
-#: src/libaudgui/infowin.c:78
-#, fuzzy
+#: src/libaudgui/infowin.c:79
 msgid "Acid Rock"
-msgstr "Хард рок"
+msgstr "Кисели рок"
 
-#: src/libaudgui/infowin.c:79
+#: src/libaudgui/infowin.c:80
 msgid "Ambient"
 msgstr "Амбијентална"
 
-#: src/libaudgui/infowin.c:80
-#, fuzzy
+#: src/libaudgui/infowin.c:81
 msgid "Bebop"
-msgstr "Бибоп"
+msgstr "Бебоп"
 
-#: src/libaudgui/infowin.c:81
+#: src/libaudgui/infowin.c:82
 msgid "Bluegrass"
-msgstr "Блу-грас"
+msgstr "Блуграс"
 
-#: src/libaudgui/infowin.c:82
+#: src/libaudgui/infowin.c:83
 msgid "Blues"
 msgstr "Блуз"
 
-#: src/libaudgui/infowin.c:83
+#: src/libaudgui/infowin.c:84
 msgid "Chamber Music"
 msgstr "Камерна музика"
 
-#: src/libaudgui/infowin.c:84
+#: src/libaudgui/infowin.c:85
 msgid "Classical"
 msgstr "Класична"
 
-#: src/libaudgui/infowin.c:85
+#: src/libaudgui/infowin.c:86
 msgid "Country"
 msgstr "Кантри"
 
-#: src/libaudgui/infowin.c:86
+#: src/libaudgui/infowin.c:87
 msgid "Death Metal"
-msgstr "Дет метал"
+msgstr "Мртви метал"
 
-#: src/libaudgui/infowin.c:87
+#: src/libaudgui/infowin.c:88
 msgid "Disco"
 msgstr "Диско"
 
-#: src/libaudgui/infowin.c:88
+#: src/libaudgui/infowin.c:89
 msgid "Easy Listening"
-msgstr "Лака за слушање"
+msgstr "Лако слушање"
 
-#: src/libaudgui/infowin.c:89
+#: src/libaudgui/infowin.c:90
 msgid "Folk"
 msgstr "Народна"
 
-#: src/libaudgui/infowin.c:90
+#: src/libaudgui/infowin.c:91
 msgid "Funk"
 msgstr "Фанки"
 
-#: src/libaudgui/infowin.c:91
+#: src/libaudgui/infowin.c:92
 msgid "Gangsta Rap"
-msgstr "Гангстерски реп"
+msgstr "Гангста реп"
 
-#: src/libaudgui/infowin.c:92
+#: src/libaudgui/infowin.c:93
 msgid "Gospel"
 msgstr "Верска"
 
-#: src/libaudgui/infowin.c:93
+#: src/libaudgui/infowin.c:94
 msgid "Grunge"
 msgstr "Гранџ"
 
-#: src/libaudgui/infowin.c:94
+#: src/libaudgui/infowin.c:95
 msgid "Hard Rock"
 msgstr "Хард рок"
 
-#: src/libaudgui/infowin.c:95
+#: src/libaudgui/infowin.c:96
 msgid "Heavy Metal"
 msgstr "Хеви метал"
 
-#: src/libaudgui/infowin.c:96
-#, fuzzy
+#: src/libaudgui/infowin.c:97
 msgid "Hip-hop"
-msgstr "Хип хоп"
+msgstr "Хип-Хоп"
 
-#: src/libaudgui/infowin.c:97
+#: src/libaudgui/infowin.c:98
 msgid "House"
 msgstr "Хаус"
 
-#: src/libaudgui/infowin.c:98
+#: src/libaudgui/infowin.c:99
 msgid "Jazz"
 msgstr "Џез"
 
-#: src/libaudgui/infowin.c:99
+#: src/libaudgui/infowin.c:100
 msgid "Jungle"
-msgstr "Џангл"
+msgstr "Џунгла"
 
-#: src/libaudgui/infowin.c:100
+#: src/libaudgui/infowin.c:101
 msgid "Metal"
 msgstr "Метал"
 
-#: src/libaudgui/infowin.c:101
+#: src/libaudgui/infowin.c:102
 msgid "New Age"
-msgstr "Њу Ејџ"
+msgstr "Ново доба"
 
-#: src/libaudgui/infowin.c:102
+#: src/libaudgui/infowin.c:103
 msgid "New Wave"
 msgstr "Нови талас"
 
-#: src/libaudgui/infowin.c:103
+#: src/libaudgui/infowin.c:104
 msgid "Noise"
-msgstr "Шум"
+msgstr "Бука"
 
-#: src/libaudgui/infowin.c:104
+#: src/libaudgui/infowin.c:105
 msgid "Pop"
 msgstr "Поп"
 
-#: src/libaudgui/infowin.c:105
+#: src/libaudgui/infowin.c:106
 msgid "Punk Rock"
-msgstr "Панк рок"
+msgstr "Панк Рок"
 
-#: src/libaudgui/infowin.c:106
+#: src/libaudgui/infowin.c:107
 msgid "Rap"
 msgstr "Реп"
 
-#: src/libaudgui/infowin.c:107
+#: src/libaudgui/infowin.c:108
 msgid "Reggae"
 msgstr "Реге"
 
-#: src/libaudgui/infowin.c:108
+#: src/libaudgui/infowin.c:109
 msgid "Rock"
 msgstr "Рок"
 
-#: src/libaudgui/infowin.c:109
-#, fuzzy
+#: src/libaudgui/infowin.c:110
 msgid "Rock and Roll"
 msgstr "Рокенрол"
 
-#: src/libaudgui/infowin.c:110
+#: src/libaudgui/infowin.c:111
 msgid "Rhythm and Blues"
-msgstr ""
+msgstr "Ритам и Блуз"
 
-#: src/libaudgui/infowin.c:111
+#: src/libaudgui/infowin.c:112
 msgid "Ska"
 msgstr "Ска"
 
-#: src/libaudgui/infowin.c:112
+#: src/libaudgui/infowin.c:113
 msgid "Soul"
-msgstr "Сол"
+msgstr "Соул"
 
-#: src/libaudgui/infowin.c:113
+#: src/libaudgui/infowin.c:114
 msgid "Swing"
 msgstr "Свинг"
 
-#: src/libaudgui/infowin.c:114
+#: src/libaudgui/infowin.c:115
 msgid "Techno"
 msgstr "Техно"
 
-#: src/libaudgui/infowin.c:115
-#, fuzzy
+#: src/libaudgui/infowin.c:116
 msgid "Trip-hop"
 msgstr "Трип-Хоп"
 
-#: src/libaudgui/infowin.c:175 src/libaudgui/infowin.c:361
-#: src/libaudgui/infowin.c:364 src/libaudgui/infowin.c:367
+#: src/libaudgui/infowin.c:180 src/libaudgui/infowin.c:366
+#: src/libaudgui/infowin.c:369 src/libaudgui/infowin.c:372
 msgid "<span size=\"small\">n/a</span>"
 msgstr "<span size=\"small\">недоступно</span>"
 
-#: src/libaudgui/infowin.c:265
+#: src/libaudgui/infowin.c:270
 msgid "Metadata updated successfully"
-msgstr "Мета подаци су успешно освежени"
+msgstr "Метаподаци су успешно освежени"
 
-#: src/libaudgui/infowin.c:270
+#: src/libaudgui/infowin.c:275
 msgid "Metadata updating failed"
-msgstr "Освежавање мета података неуспешно"
+msgstr "Освежавање метаподатака није успело"
 
-#: src/libaudgui/infowin.c:318
+#: src/libaudgui/infowin.c:323
 msgid "Track Information"
 msgstr "Информације о нумери"
 
-#: src/libaudgui/infowin.c:350
+#: src/libaudgui/infowin.c:355
 msgid "<span size=\"small\">Format:</span>"
 msgstr "<span size=\"small\">Формат:</span>"
 
-#: src/libaudgui/infowin.c:354
+#: src/libaudgui/infowin.c:359
 msgid "<span size=\"small\">Quality:</span>"
 msgstr "<span size=\"small\">Квалитет:</span>"
 
-#: src/libaudgui/infowin.c:357
+#: src/libaudgui/infowin.c:362
 msgid "<span size=\"small\">Bitrate:</span>"
-msgstr "<span size=\"small\">Брзина у битовима:</span>"
+msgstr "<span size=\"small\">Проток бита:</span>"
 
-#: src/libaudgui/infowin.c:387
+#: src/libaudgui/infowin.c:392
 msgid "<span size=\"small\">Title</span>"
 msgstr "<span size=\"small\">Наслов</span>"
 
-#: src/libaudgui/infowin.c:399
+#: src/libaudgui/infowin.c:404
 msgid "<span size=\"small\">Artist</span>"
 msgstr "<span size=\"small\">Извођач</span>"
 
-#: src/libaudgui/infowin.c:411
+#: src/libaudgui/infowin.c:416
 msgid "<span size=\"small\">Album</span>"
 msgstr "<span size=\"small\">Албум</span>"
 
-#: src/libaudgui/infowin.c:423
+#: src/libaudgui/infowin.c:428
 msgid "<span size=\"small\">Comment</span>"
 msgstr "<span size=\"small\">Коментар</span>"
 
-#: src/libaudgui/infowin.c:435
+#: src/libaudgui/infowin.c:440
 msgid "<span size=\"small\">Genre</span>"
 msgstr "<span size=\"small\">Жанр</span>"
 
-#: src/libaudgui/infowin.c:456
+#: src/libaudgui/infowin.c:461
 msgid "<span size=\"small\">Year</span>"
 msgstr "<span size=\"small\">Година</span>"
 
-#: src/libaudgui/infowin.c:467
+#: src/libaudgui/infowin.c:472
 msgid "<span size=\"small\">Track Number</span>"
 msgstr "<span size=\"small\">Број нумере</span>"
 
-#: src/libaudgui/infowin.c:549
+#: src/libaudgui/infowin.c:551
 #, c-format
 msgid "%d kb/s"
 msgstr "%d kb/s"
 
-#: src/libaudgui/infowin.c:579
+#: src/libaudgui/infowin.c:578
 #, c-format
 msgid "No info available for %s.\n"
-msgstr ""
+msgstr "Нису доступни подаци за %s.\n"
+
+#: src/libaudgui/jump-to-time.c:75
+msgid "Jump to Time"
+msgstr "Пређи на време"
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr "мм:сс"
+
+#: src/libaudgui/playlists.c:39
+msgid "Export Playlist"
+msgstr "Извези листу"
+
+#: src/libaudgui/playlists.c:39
+msgid "Import Playlist"
+msgstr "Увези листу"
+
+#: src/libaudgui/playlists.c:72
+#, c-format
+msgid "Overwrite %s?"
+msgstr "Да препишем %s?"
+
+#: src/libaudgui/queue-manager.c:198
+msgid "Queue Manager"
+msgstr "Управник редоследа"
 
-#: src/libaudgui/ui_about.c:71
+#: src/libaudgui/ui_about.c:69
 msgid "About Audacious"
-msgstr "O Audacious-u"
+msgstr "О Безочнику"
 
-#: src/libaudgui/ui_about.c:93 src/libaudgui/ui_credits.c:122
+#: src/libaudgui/ui_about.c:90 src/libaudgui/ui_credits.c:122
 msgid "Credits"
 msgstr "Заслуге"
 
@@ -1145,105 +1087,112 @@ msgstr "Додај датотеке"
 
 #: src/libaudgui/ui_fileopener.c:110
 msgid "Close dialog on Open"
-msgstr "Затвори оквир кликом на Отвори"
+msgstr "Затвори прозорче на „Отвори“"
 
 #: src/libaudgui/ui_fileopener.c:110
 msgid "Close dialog on Add"
-msgstr "Затвори оквир кликом на Додај"
+msgstr "Затвори прозорче на „Додај“"
 
-#: src/libaudgui/ui_jumptotrack.c:133
-msgid "Un_queue"
-msgstr "Избаци из _реда"
-
-#: src/libaudgui/ui_jumptotrack.c:135 src/libaudgui/ui_jumptotrack.c:512
+#: src/libaudgui/ui_jumptotrack.c:112 src/libaudgui/ui_jumptotrack.c:120
+#: src/libaudgui/ui_jumptotrack.c:329
 msgid "_Queue"
 msgstr "Стави у _ред"
 
-#: src/libaudgui/ui_jumptotrack.c:399
-msgid "Jump to Track"
-msgstr "Пређи на нумеру"
+#: src/libaudgui/ui_jumptotrack.c:118
+msgid "Un_queue"
+msgstr "Избаци из _реда"
+
+#: src/libaudgui/ui_jumptotrack.c:261
+msgid "Jump to Song"
+msgstr "Пређи на песму"
 
-#: src/libaudgui/ui_jumptotrack.c:442
+#: src/libaudgui/ui_jumptotrack.c:284
 msgid "Filter: "
 msgstr "Филтер: "
 
-#: src/libaudgui/ui_jumptotrack.c:443
+#: src/libaudgui/ui_jumptotrack.c:285
 msgid "_Filter:"
 msgstr "_Филтер:"
 
-#: src/libaudgui/ui_jumptotrack.c:461
+#: src/libaudgui/ui_jumptotrack.c:295
 msgid "Remember"
 msgstr "Запамти"
 
-#: src/libaudgui/ui_jumptotrack.c:470
-#, fuzzy
+#: src/libaudgui/ui_jumptotrack.c:302
 msgid "Clea_r"
-msgstr "Обриши А-Б"
+msgstr "Очис_ти"
 
-#: src/libaudgui/ui_jumptotrack.c:504
+#: src/libaudgui/ui_jumptotrack.c:322
 msgid "Close on Jump"
 msgstr "Затвори после скока"
 
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:253
 msgid "Playlist Manager"
-msgstr "Менаџер листе нумера"
+msgstr "Управник списка нумера"
 
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:280
 msgid "Entries"
 msgstr "Ставке"
 
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:301
 msgid "_Rename"
 msgstr "_Преименуј"
 
-#: src/libaudgui/ui_playlist_manager.c:251
-#, fuzzy
+#: src/libaudgui/ui_playlist_manager.c:325
 msgid "_Close dialog on activating playlist"
-msgstr "Затвори оквир кликом на Отвори"
+msgstr "_Затвори прозорче након активирања списка нумера"
 
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:51
 msgid "Open URL"
-msgstr ""
+msgstr "Отвори адресу"
 
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:51
 msgid "Add URL"
+msgstr "Додај адресу"
+
+#: src/libaudgui/util.c:97
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
 msgstr ""
+"\n"
+"(Додатне поруке су скривене.)"
 
 #: src/libeggsmclient/eggdesktopfile.c:165
 msgid "File is not a valid .desktop file"
-msgstr "Датотека није валидна .desktop датотека"
+msgstr "Датотека није исправна „.desktop“ датотека"
 
-#: src/libeggsmclient/eggdesktopfile.c:188
+#: src/libeggsmclient/eggdesktopfile.c:191
 #, c-format
 msgid "Unrecognized desktop file Version '%s'"
-msgstr "Непозната верзија датотеке радне површи (.desktop) '%s'"
+msgstr "Није познато издање „%s“ датотеке за радну површ"
 
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:974
 #, c-format
 msgid "Starting %s"
 msgstr "Покрећем %s"
 
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1116
 msgid "Application does not accept documents on command line"
-msgstr "Апликација не подржава документе у командној линији"
+msgstr "Програм не прихвата документа из линије наредби"
 
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1184
 #, c-format
 msgid "Unrecognized launch option: %d"
 msgstr "Непозната опција покретања: %d"
 
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1391
 msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
 msgstr ""
-"Не могу да проследим адресе документа у ставку радне површи 'Тип=Link' "
+"Не могу да проследим адресе документа у ставку радне површи „Type=Link“"
 
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1412
 msgid "Not a launchable item"
-msgstr "Ставка не може да се покрене"
+msgstr "Није ставка за покретање"
 
 #: src/libeggsmclient/eggsmclient.c:226
 msgid "Disable connection to session manager"
-msgstr "Исључи везу са менаџером сесије"
+msgstr "Онемогућава повезивање са управником сесије"
 
 #: src/libeggsmclient/eggsmclient.c:229
 msgid "Specify file containing saved configuration"
@@ -1255,1602 +1204,18 @@ msgstr "ДАТОТЕКА"
 
 #: src/libeggsmclient/eggsmclient.c:232
 msgid "Specify session management ID"
-msgstr "Наведите ID управљања сесије"
+msgstr "Наведите ИБ управника сесије"
 
 #: src/libeggsmclient/eggsmclient.c:232
 msgid "ID"
-msgstr "ID"
+msgstr "ИБ"
 
 #: src/libeggsmclient/eggsmclient.c:253
-#, fuzzy
 msgid "Session management options:"
-msgstr "Опције управљања сесије"
+msgstr "Опције управљања сесијом:"
 
 #: src/libeggsmclient/eggsmclient.c:254
-#, fuzzy
 msgid "Show session management options"
-msgstr "Прикажи опције управљања сесије"
-
-#~ msgid "%s: Unable to open display, exiting.\n"
-#~ msgstr "%s: Није могуће отворити приказ, излазим.\n"
-
-#~ msgid "Preamp:"
-#~ msgstr "Предпојачало:"
-
-#~ msgid "Default gain:"
-#~ msgstr "Подразумевано појачање:"
-
-#~ msgid "This gain will be used if file doesn't contain Replay Gain metadata."
-#~ msgstr ""
-#~ "Ово појачање ће се користити ако датотека не садржи Replay Gain "
-#~ "метаподатке."
-
-#~ msgid ""
-#~ "<span size=\"small\">Please remember that the most efficient way to "
-#~ "prevent signal clipping is not to use positive values above.</span>"
-#~ msgstr ""
-#~ "<span size=\"small\">Запамтите да најефикаснији начин да спречите "
-#~ "одсецање сигнала је да не користите позитивне вредности изнад.</span>"
-
-#~ msgid "<b>Replay Gain configuration</b>"
-#~ msgstr "<b>Replay Gain конфигурација</b>"
-
-#~ msgid "Track gain/peak"
-#~ msgstr "Појачање/врхунац нумере"
-
-#~ msgid "Album gain/peak"
-#~ msgstr "Појачање/врхунац албума"
-
-#~ msgid "Use peak value from Replay Gain info for clipping prevention"
-#~ msgstr "Користи вредност врхунца из Replay Gain-а као заштиту од одсецања"
-
-#~ msgid "Classic Rock"
-#~ msgstr "Класични рок"
-
-#~ msgid "Dance"
-#~ msgstr "Денс"
-
-#~ msgid "Oldies"
-#~ msgstr "Евергрин"
-
-#~ msgid "Other"
-#~ msgstr "Остало"
-
-#~ msgid "R&B"
-#~ msgstr "R&B"
-
-#~ msgid "Industrial"
-#~ msgstr "Индустрија"
-
-#~ msgid "Alternative"
-#~ msgstr "Алтернатива"
-
-#~ msgid "Pranks"
-#~ msgstr "Шале"
-
-#~ msgid "Soundtrack"
-#~ msgstr "Тема из филма"
-
-#~ msgid "Euro-Techno"
-#~ msgstr "Еуро-техно"
-
-#~ msgid "Vocal"
-#~ msgstr "Вокал"
-
-#~ msgid "Jazz+Funk"
-#~ msgstr "Џез и Фанки"
-
-#~ msgid "Fusion"
-#~ msgstr "Фузија"
-
-#~ msgid "Trance"
-#~ msgstr "Тренс"
-
-#~ msgid "Instrumental"
-#~ msgstr "Инструментал"
-
-#~ msgid "Acid"
-#~ msgstr "Асид"
-
-#~ msgid "Game"
-#~ msgstr "Музика из игре"
-
-#~ msgid "Sound Clip"
-#~ msgstr "Тонски запис"
-
-#~ msgid "AlternRock"
-#~ msgstr "АлтернРок"
-
-#~ msgid "Bass"
-#~ msgstr "Бас"
-
-#~ msgid "Punk"
-#~ msgstr "Панк"
-
-#~ msgid "Space"
-#~ msgstr "Спејс"
-
-#~ msgid "Meditative"
-#~ msgstr "Медитациона"
-
-#~ msgid "Instrumental Pop"
-#~ msgstr "Инструментални поп"
-
-#~ msgid "Instrumental Rock"
-#~ msgstr "Инструментални рок"
-
-#~ msgid "Ethnic"
-#~ msgstr "Етно"
-
-#~ msgid "Gothic"
-#~ msgstr "Готска"
-
-#~ msgid "Darkwave"
-#~ msgstr "Црни талас"
-
-#~ msgid "Techno-Industrial"
-#~ msgstr "Техно-Индустрија"
-
-#~ msgid "Electronic"
-#~ msgstr "Електронска"
-
-#~ msgid "Pop-Folk"
-#~ msgstr "Поп-Фолк"
-
-#~ msgid "Eurodance"
-#~ msgstr "Еуроденс"
-
-#~ msgid "Dream"
-#~ msgstr "Дрим"
-
-#~ msgid "Southern Rock"
-#~ msgstr "Јужњачки рок"
-
-#~ msgid "Comedy"
-#~ msgstr "Комедија"
-
-#~ msgid "Cult"
-#~ msgstr "Култна"
-
-#~ msgid "Top 40"
-#~ msgstr "Најпопуларнијих 40"
-
-#~ msgid "Christian Rap"
-#~ msgstr "Хришћански реп"
-
-#~ msgid "Pop/Funk"
-#~ msgstr "Поп/Фанки"
-
-#~ msgid "Native American"
-#~ msgstr "Традиционална америчка"
-
-#~ msgid "Cabaret"
-#~ msgstr "Кабаре"
-
-#~ msgid "Psychedelic"
-#~ msgstr "Психоделично"
-
-#~ msgid "Rave"
-#~ msgstr "Рејв"
-
-#~ msgid "Showtunes"
-#~ msgstr "Музика из представе"
-
-#~ msgid "Trailer"
-#~ msgstr "Трејлер"
-
-#~ msgid "Lo-Fi"
-#~ msgstr "Lo-Fi"
-
-#~ msgid "Tribal"
-#~ msgstr "Племенска"
-
-#~ msgid "Acid Punk"
-#~ msgstr "Асид панк"
-
-#~ msgid "Polka"
-#~ msgstr "Полка"
-
-#~ msgid "Retro"
-#~ msgstr "Ретро"
-
-#~ msgid "Musical"
-#~ msgstr "Музичка"
-
-#~ msgid "Folk/Rock"
-#~ msgstr "Народна/Рок"
-
-#~ msgid "National Folk"
-#~ msgstr "Национална"
-
-#~ msgid "Fast-Fusion"
-#~ msgstr "Фаст-Фјужн"
-
-#~ msgid "Latin"
-#~ msgstr "Латино"
-
-#~ msgid "Revival"
-#~ msgstr "Оживљење"
-
-#~ msgid "Celtic"
-#~ msgstr "Келтска"
-
-#~ msgid "Avantgarde"
-#~ msgstr "Авангардна"
-
-#~ msgid "Gothic Rock"
-#~ msgstr "Готски рок"
-
-#~ msgid "Progressive Rock"
-#~ msgstr "Прогресивни рок"
-
-#~ msgid "Psychedelic Rock"
-#~ msgstr "Психоделични рок"
-
-#~ msgid "Symphonic Rock"
-#~ msgstr "Симфонијски рок"
-
-#~ msgid "Slow Rock"
-#~ msgstr "Лагани рок"
-
-#~ msgid "Big Band"
-#~ msgstr "Биг Бeнд"
-
-#~ msgid "Chorus"
-#~ msgstr "Хорска"
-
-#~ msgid "Acoustic"
-#~ msgstr "Акустична"
-
-#~ msgid "Humour"
-#~ msgstr "Хумор"
-
-#~ msgid "Speech"
-#~ msgstr "Говор"
-
-#~ msgid "Chanson"
-#~ msgstr "Шансона"
-
-#~ msgid "Opera"
-#~ msgstr "Опера"
-
-#~ msgid "Sonata"
-#~ msgstr "Соната"
-
-#~ msgid "Symphony"
-#~ msgstr "Симфонија"
-
-#~ msgid "Booty Bass"
-#~ msgstr "Бути Бас"
-
-#~ msgid "Primus"
-#~ msgstr "Примус"
-
-#~ msgid "Porn Groove"
-#~ msgstr "Еротска"
-
-#~ msgid "Satire"
-#~ msgstr "Сатирична"
-
-#~ msgid "Slow Jam"
-#~ msgstr "Лагани џем"
-
-#~ msgid "Club"
-#~ msgstr "Клубска"
-
-#~ msgid "Tango"
-#~ msgstr "Танго"
-
-#~ msgid "Samba"
-#~ msgstr "Самба"
-
-#~ msgid "Folklore"
-#~ msgstr "Фолклор"
-
-#~ msgid "Ballad"
-#~ msgstr "Балада"
-
-#~ msgid "Power Ballad"
-#~ msgstr "Бржа балада"
-
-#~ msgid "Rhythmic Soul"
-#~ msgstr "Ритмични соул"
-
-#~ msgid "Freestyle"
-#~ msgstr "Фристајл"
-
-#~ msgid "Duet"
-#~ msgstr "Дует"
-
-#~ msgid "Drum Solo"
-#~ msgstr "Соло бубњеви"
-
-#~ msgid "A Cappella"
-#~ msgstr "А капела"
-
-#~ msgid "Euro-House"
-#~ msgstr "Еуро-Хаус"
-
-#~ msgid "Dance Hall"
-#~ msgstr "Денс"
-
-#~ msgid "Goa"
-#~ msgstr "Гоа"
-
-#~ msgid "Drum & Bass"
-#~ msgstr "Драменбејс"
-
-#~ msgid "Club-House"
-#~ msgstr "Клаб-Хаус"
-
-#~ msgid "Hardcore"
-#~ msgstr "Хардкор"
-
-#~ msgid "Terror"
-#~ msgstr "Терор"
-
-#~ msgid "Indie"
-#~ msgstr "Инди"
-
-#~ msgid "BritPop"
-#~ msgstr "БритПоп"
-
-#~ msgid "Negerpunk"
-#~ msgstr "Нигерпанк"
-
-#~ msgid "Polsk Punk"
-#~ msgstr "Пољски панк"
-
-#~ msgid "Beat"
-#~ msgstr "Бит"
-
-#~ msgid "Christian Gangsta Rap"
-#~ msgstr "Хришћански гангстерски реп"
-
-#~ msgid "Black Metal"
-#~ msgstr "Црни метал"
-
-#~ msgid "Crossover"
-#~ msgstr "Прелазна"
-
-#~ msgid "Contemporary Christian"
-#~ msgstr "Савремена хришћанска"
-
-#~ msgid "Christian Rock"
-#~ msgstr "Хришћански рок"
-
-#~ msgid "Merengue"
-#~ msgstr "Мирингва"
-
-#~ msgid "Salsa"
-#~ msgstr "Салса"
-
-#~ msgid "Thrash Metal"
-#~ msgstr "Треш метал"
-
-#~ msgid "Anime"
-#~ msgstr "Аниме"
-
-#~ msgid "JPop"
-#~ msgstr "ЏејПоп"
-
-#~ msgid "Synthpop"
-#~ msgstr "Синтпоп"
-
-#, fuzzy
-#~ msgid ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "An audio player for many platforms.\n"
-#~ "Copyright (C) 2005-2011 Audacious Development Team"
-#~ msgstr ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "Маскирани мултимедијални плејер за више платформи.\n"
-#~ "\n"
-#~ "Сва права задржана, 2005-2008 Audacious Развојни Тим\n"
-
-#~ msgid "Unable to create log file (%s)!\n"
-#~ msgstr "Није могуће направити датотеку евиденције (%s)!\n"
-
-#~ msgid "Print all errors and warnings to stdout"
-#~ msgstr "Штампај све грешке и упозорења у stdout"
-
-#~ msgid "Used in macpacking"
-#~ msgstr "Користи се за макпаковање"
-
-#~ msgid "Sorry, threads aren't supported on your platform.\n"
-#~ msgstr "Жао ми је, али ваша платформа не подржава нити.\n"
-
-#~ msgid "Module loading not supported! Plugins will not be loaded.\n"
-#~ msgstr "Учитавање модула није подржано! Додаци неће бити учитани.\n"
-
-#, fuzzy
-#~ msgid "Audacious - Unsupported Version Warning"
-#~ msgstr "Audacious - упозорење коришћења покварене GTK машине"
-
-#~ msgid "Playback"
-#~ msgstr "Репродуковање"
-
-#~ msgid "<b>Playback</b>"
-#~ msgstr "<b>Репродуковање</b>"
-
-#~ msgid ""
-#~ "When Audacious starts, automatically begin playing from the point where "
-#~ "we stopped before."
-#~ msgstr ""
-#~ "Кад се Audacious покрене, аутоматски настави да репродукује од тренутка "
-#~ "где смо зауставили пуштање."
-
-#~ msgid "Don't advance in the playlist"
-#~ msgstr "Немој напредовати у листи нумера"
-
-#~ msgid ""
-#~ "When finished playing a song, don't automatically advance to the next."
-#~ msgstr "Кад се заврши песма, немој аутоматски прећи на следећу."
-
-#~ msgid "Enabled"
-#~ msgstr "Укључен"
-
-#~ msgid "Description"
-#~ msgstr "Опис"
-
-#~ msgid "Output Plugin Preferences"
-#~ msgstr "Поставке излазног додатка"
-
-#~ msgid "Output Plugin Information"
-#~ msgstr "Информације о излазном додатку"
-
-#~ msgid "_Decoder list:"
-#~ msgstr "Листа _декодера:"
-
-#~ msgid "<span size=\"medium\"><b>Decoders</b></span>"
-#~ msgstr "<span size=\"medium\"><b>Декодери</b></span>"
-
-#~ msgid "_General plugin list:"
-#~ msgstr "_Општа листа додатака:"
-
-#~ msgid "<span size=\"medium\"><b>General</b></span>"
-#~ msgstr "<span size=\"medium\"><b>Опште</b></span>"
-
-#~ msgid "_Visualization plugin list:"
-#~ msgstr "Листа _визуелизационих додатака:"
-
-#~ msgid "<b>Visualization</b>"
-#~ msgstr "<b>Визуелизација</b>"
-
-#, fuzzy
-#~ msgid "Effect plugins:"
-#~ msgstr "Листа _ефектних додатака:"
-
-#~ msgid "<span size=\"small\">General</span>"
-#~ msgstr "<span size=\"small\">Опште</span>"
-
-#~ msgid "<span size=\"small\">Location</span>"
-#~ msgstr "<span size=\"small\">Локација</span>"
-
-#~ msgid "<span size=\"small\">Raw Metadata</span>"
-#~ msgstr "<span size=\"small\">Сирови метаподаци</span>"
-
-#~ msgid "Key"
-#~ msgstr "Кључ"
-
-#~ msgid "Value"
-#~ msgstr "Вредност"
-
-#, fuzzy
-#~ msgid "Available Plugin Preferences:\n"
-#~ msgstr "Поставке излазног додатка"
-
-#~ msgid "Add/Open URL Dialog"
-#~ msgstr "Оквир додај/отвори URL"
-
-#~ msgid "Enter location to play:"
-#~ msgstr "Унесите локацију за репродуковање:"
-
-#~ msgid "Don't clear the playlist"
-#~ msgstr "Немој обрисати листу нумера"
-
-#~ msgid "audacious: %s"
-#~ msgstr "audacious: %s"
-
-#~ msgid "Filename:"
-#~ msgstr "Име датотеке:"
-
-#~ msgid "No input plugin recognized this file"
-#~ msgstr "Ниједан улазни додатак није препознао ову датотеку"
-
-#~ msgid "Input plugin: %s"
-#~ msgstr "Улазни додатак: %s"
-
-#~ msgid ""
-#~ "<b><big>No output plugin selected.</big></b>\n"
-#~ "You have not selected an output plugin."
-#~ msgstr ""
-#~ "<b><big>Није изабран излазни додатак.</big></b>\n"
-#~ "Нисте изабрали излазни додатак."
-
-#~ msgid "Connectivity"
-#~ msgstr "Повезаност"
-
-#~ msgid "Best Sinc Interpolation"
-#~ msgstr "Најбоља Синц интерполација"
-
-#~ msgid "Medium Sinc Interpolation"
-#~ msgstr "Средња Синц интерполација"
-
-#~ msgid "Fastest Sinc Interpolation"
-#~ msgstr "Набржа Синц интерполација"
-
-#~ msgid "ZOH Interpolation"
-#~ msgstr "ЗОХ интерполација"
-
-#~ msgid "Linear Interpolation"
-#~ msgstr "Линеарна интерполација"
-
-#~ msgid "Sampling Rate [Hz]:"
-#~ msgstr "Учесталост одабирања узорака [Hz]:"
-
-#~ msgid "Interpolation Engine:"
-#~ msgstr "Интерполациона машина:"
-
-#~ msgid ""
-#~ "<span size=\"small\">All streams will be converted to this sampling "
-#~ "rate.\n"
-#~ "This should be the max supported sampling rate of\n"
-#~ "the sound card or output plugin.</span>"
-#~ msgstr ""
-#~ "<span size=\"small\">Сви токови ће бити претворени у ову учесталост "
-#~ "одабирања узорака.\n"
-#~ "Ово би требала да буде максимална подржана учесталост одабирања узорака\n"
-#~ "музичке картице или излазног додатка.</span>"
-
-#~ msgid "<b>Format Detection</b>"
-#~ msgstr "<b>Препознавање формата</b>"
-
-#~ msgid "Detect file formats by extension."
-#~ msgstr "Препознај формат датотеке на основу ознаке типа."
-
-#~ msgid ""
-#~ "When checked, Audacious will detect file formats based by extension. Only "
-#~ "files with extensions of supported formats will be loaded."
-#~ msgstr ""
-#~ "Ако је потврђено, Audacious ће препознати формат датотеке према ознаци "
-#~ "типа. Само датотеке са подржаним ознакама типа ће бити учитане."
-
-#~ msgid "<b>Sampling Rate Converter</b>"
-#~ msgstr "<b>Претварач учесталости одабирања узорака</b>"
-
-#~ msgid "Enable Sampling Rate Converter"
-#~ msgstr "Укључи претварач учесталости одабирања узорака"
-
-#~ msgid "<b>Advanced</b>"
-#~ msgstr "<b>Напредно</b>"
-
-#~ msgid "Bypass all of signal processing if possible"
-#~ msgstr "Заобиђи све обраде сигнала, ако је могуће"
-
-#~ msgid ""
-#~ "Try to pass input plugin's output directly to output plugin, if the "
-#~ "latter supports format produced by input plugin. If it's true, all signal "
-#~ "processing will be disabled (i.e. DSP plugins, equalizer, resampling, "
-#~ "Replay Gain and software volume control)."
-#~ msgstr ""
-#~ "Покушај да проследиш излаз улазног додатка директно у излазни додатак, "
-#~ "ако каснији подржава формат који ствара улазни додатак. Ако је ово тачно, "
-#~ "свака обрада сигнала ће бити искључена (нпр. DSP додаци, еквилајзер, "
-#~ "Replay Gain и остала софтверска контрола јачине звука)."
-
-#~ msgid "Dynamically adjust scale factor to prevent clipping"
-#~ msgstr "Динамички подеси фактор скалирања да би се спречило одсецање"
-
-#~ msgid "Decrease scale factor (gain) if clipping nevertheless occurred"
-#~ msgstr "Ако дође до одсецања, смањи фактор скалирања"
-
-#, fuzzy
-#~ msgid ""
-#~ "\n"
-#~ "Audacious has caught signal 11 (SIGSEGV).\n"
-#~ "\n"
-#~ "We apologize for the inconvenience, but Audacious has crashed.\n"
-#~ "This is a bug in the program, and should never happen under normal "
-#~ "circumstances.\n"
-#~ "Your current configuration has been saved and should not be damaged.\n"
-#~ "\n"
-#~ "You can help improve the quality of Audacious by filing a bug at http://"
-#~ "jira.atheme.org/\n"
-#~ "Please include the entire text of this message and a description of what "
-#~ "you were doing when\n"
-#~ "this crash occured in order to quickly expedite the handling of your bug "
-#~ "report:\n"
-#~ "\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Audacious је ухватио сигнал 11 (SIGSEGV).\n"
-#~ "\n"
-#~ "Извињавамо се због неприлика, али Audacious је отказао.\n"
-#~ "Ово је грешка у програму, и никад не би требала да се деси под нормалним "
-#~ "околностима.\n"
-#~ "Ваша тренутна конфигурација је сачувана и неби требала бити оштећена.\n"
-#~ "\n"
-#~ "Можете побољшати квалитет Audacious-а пријављивањем грешке на http://bugs-"
-#~ "meta.atheme.org\n"
-#~ "Молим вас укључите целокупан текст ове поруке и опишите нам шта сте "
-#~ "радили кад се овај\n"
-#~ "отказ догодио, да бисмо брзо могли обрадити Ваш извештај грешке:\n"
-#~ "\n"
-
-#~ msgid ""
-#~ "Stacktrace was unavailable. You might want to reproduce this problem "
-#~ "while running Audacious under GDB to get a proper backtrace.\n"
-#~ msgstr ""
-#~ "Траг стека није доступан. Могли бисте да репродукујете овај проблем док "
-#~ "покрећете Audacious у GDB-у да бисте добили исправно стабло позивања.\n"
-
-#, fuzzy
-#~ msgid ""
-#~ "\n"
-#~ "Bugs can be reported at http://jira.atheme.org/ against the Audacious or "
-#~ "Audacious Plugins product.\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Грешке за производе Audacious и Audacious Plugins се могу пријавити на "
-#~ "http://bugs-meta.atheme.org\n"
-
-#~ msgid ""
-#~ "Your signaling implementation is broken.\n"
-#~ "Expect unusable crash reports.\n"
-#~ msgstr ""
-#~ "Ваша имплементација сигнала је покварена.\n"
-#~ "Очекујте неискористиве извештаје о грешкама.\n"
-
-#, fuzzy
-#~ msgid ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "\n"
-#~ "Copyright (C) 2005-2009 Audacious Development Team"
-#~ msgstr ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "\n"
-#~ "Сва права задржана, 2005-2008 Audacious Развојни Тим"
-
-#~ msgid "Detect file formats on demand, instead of immediately."
-#~ msgstr "Препознај формат датотеке на захтев, уместо одма."
-
-#~ msgid ""
-#~ "When checked, Audacious will detect file formats on demand. This can "
-#~ "result in a messier playlist, but delivers a major speed benefit."
-#~ msgstr ""
-#~ "Ако је потврђено, Audacious ће препознати формат датотеке на захтев. Ово "
-#~ "може довести до збрканије листе нумера, али обезбеђује већи добитак у "
-#~ "брзини."
-
-#~ msgid "Load metadata from playlists and files"
-#~ msgstr "Учитај мета-податке из листа нумера и датотека"
-
-#~ msgid "Load metadata (tag information) from music files."
-#~ msgstr "Учитај мета-податке (информације ознака) из музичких датотека."
-
-#~ msgid "Can't jump to time when no track is being played.\n"
-#~ msgstr "Не могу да скочим на време кад ниједна нумера није пуштена.\n"
-
-#~ msgid "Jump to Time"
-#~ msgstr "Пређи на време"
-
-#~ msgid "minutes:seconds"
-#~ msgstr "минути:секунде"
-
-#~ msgid "Track length:"
-#~ msgstr "Дужина нумере:"
-
-#~ msgid "Save as Static Playlist"
-#~ msgstr "Сачувај као статичку листу нумера"
-
-#~ msgid "Use Relative Path"
-#~ msgstr "Користи релативне путање"
-
-#~ msgid "Error writing playlist \"%s\": %s"
-#~ msgstr "Грешка у писању листе нумера \"%s\": %s"
-
-#~ msgid "%s already exist. Continue?"
-#~ msgstr "%s већ постоји. Наставити?"
-
-#~ msgid ""
-#~ "<b><big>Unable to save playlist.</big></b>\n"
-#~ "\n"
-#~ "Unknown file type for '%s'.\n"
-#~ msgstr ""
-#~ "<b><big>Није могуће сачувати листу нумера.</big></b>\n"
-#~ "\n"
-#~ "Непозната врста датотеке за '%s'.\n"
-
-#~ msgid "Presets"
-#~ msgstr "Претподешавања"
-
-#~ msgid "Mouse"
-#~ msgstr "Миш"
-
-#~ msgid "Pause between songs"
-#~ msgstr "Пауза између песама"
-
-#~ msgid "Pause for"
-#~ msgstr "Паузирај за"
-
-#~ msgid "seconds"
-#~ msgstr "секунди"
-
-#~ msgid "<b>Filename</b>"
-#~ msgstr "<b>Име датотеке</b>"
-
-#~ msgid "Convert underscores to blanks"
-#~ msgstr "Претвори доње црте у празнине"
-
-#~ msgid "Convert %20 to blanks"
-#~ msgstr "Претвори %20 у празнине"
-
-#~ msgid "Convert backslash '\\' to forward slash '/'"
-#~ msgstr "Претвори обрнуту косу црту '\\' у косу црту '/'"
-
-#~ msgid "<b>File Dialog</b>"
-#~ msgstr "<b>Оквир датотеке</b>"
-
-#~ msgid "Always refresh directory when opening file dialog"
-#~ msgstr "Увек освежи директоријум приликом отварања оквира датотеке"
-
-#~ msgid ""
-#~ "Always refresh the file dialog (this will slow opening the dialog on "
-#~ "large directories, and Gnome VFS should handle automatically)."
-#~ msgstr ""
-#~ "Увек освежи оквир датотеке (ово ће успорити отварање оквира за велике "
-#~ "директоријуме, и Gnome VFS би требао аутоматски обавити)."
-
-#~ msgid "Changes volume by"
-#~ msgstr "Мења јачину звука за"
-
-#~ msgid "percent"
-#~ msgstr "посто"
-
-#~ msgid "Scrolls playlist by"
-#~ msgstr "Помера листу нумера за"
-
-#~ msgid "lines"
-#~ msgstr "линије"
-
-#~ msgid "Stop after Current Song"
-#~ msgstr "Заустави после текуће песме"
-
-#~ msgid "Peaks"
-#~ msgstr "Врхови"
-
-#~ msgid "Repeat"
-#~ msgstr "Понови"
-
-#~ msgid "Shuffle"
-#~ msgstr "Насумично"
-
-#~ msgid "No Playlist Advance"
-#~ msgstr "Не напредуј у листи нумера"
-
-#~ msgid "Play"
-#~ msgstr "Пусти"
-
-#~ msgid "Pause"
-#~ msgstr "Пауза"
-
-#~ msgid "Stop"
-#~ msgstr "Заустави"
-
-#~ msgid "Previous"
-#~ msgstr "Претходна"
-
-#~ msgid "Next"
-#~ msgstr "Следећа"
-
-#~ msgid "Visualization Mode"
-#~ msgstr "Режим визуелизације"
-
-#~ msgid "Analyzer Mode"
-#~ msgstr "Режим анализатора"
-
-#~ msgid "Scope Mode"
-#~ msgstr "Режим досега"
-
-#~ msgid "Voiceprint Mode"
-#~ msgstr "Режим приказа гласа"
-
-#~ msgid "WindowShade VU Mode"
-#~ msgstr "ВУ режим делимично скривеног прозора"
-
-#~ msgid "Refresh Rate"
-#~ msgstr "Учесталост освежавања"
-
-#~ msgid "Analyzer Falloff"
-#~ msgstr "Анализатори падају"
-
-#~ msgid "Peaks Falloff"
-#~ msgstr "Врхови падају"
-
-#~ msgid "New Playlist"
-#~ msgstr "Нова листа нумера"
-
-#~ msgid "Select Next Playlist"
-#~ msgstr "Изабери следећу листу нумера"
-
-#~ msgid "Select Previous Playlist"
-#~ msgstr "Изабери претходну листу нумера"
-
-#~ msgid "Delete Playlist"
-#~ msgstr "Избриши листу нумера"
-
-#~ msgid "Load List"
-#~ msgstr "Учитај листу"
-
-#~ msgid "Loads a playlist file into the selected playlist."
-#~ msgstr "Учита датотеку листе нумера у изабрану листу нумера."
-
-#~ msgid "Save List"
-#~ msgstr "Сачувај листу"
-
-#~ msgid "Saves the selected playlist."
-#~ msgstr "Сачувај изабрану листу нумера."
-
-#~ msgid "Save Default List"
-#~ msgstr "Сачувај подразумевану листу"
-
-#~ msgid "Saves the selected playlist to the default location."
-#~ msgstr "Сачувај изабрану листу нумера у подразумевану локацију."
-
-#~ msgid "Refresh List"
-#~ msgstr "Освежи листу"
-
-#~ msgid "Refreshes metadata associated with a playlist entry."
-#~ msgstr "Освежава мета-податке придружене ставки листе нумера."
-
-#~ msgid "List Manager"
-#~ msgstr "Менаџер листе"
-
-#~ msgid "Opens the playlist manager."
-#~ msgstr "Отвара менаџер листе."
-
-#~ msgid "View"
-#~ msgstr "Приказ"
-
-#~ msgid "Add Internet Address..."
-#~ msgstr "Додај интернет адресу..."
-
-#~ msgid "Adds a remote track to the playlist."
-#~ msgstr "Додаје удаљену нумеру у листу нумера."
-
-#~ msgid "Add Files..."
-#~ msgstr "Додај датотеке..."
-
-#~ msgid "Search and Select"
-#~ msgstr "Претражи и означи"
-
-#~ msgid ""
-#~ "Searches the playlist and selects playlist entries based on specific "
-#~ "criteria."
-#~ msgstr ""
-#~ "Претражује листу нумера и означи ставке листе нумера по одређеном "
-#~ "критеријуму."
-
-#~ msgid "Invert Selection"
-#~ msgstr "Инвертуј селекцију"
-
-#~ msgid "Inverts the selected and unselected entries."
-#~ msgstr "Инвертује означене и неозначене ставке."
-
-#~ msgid "Select All"
-#~ msgstr "Означи све"
-
-#~ msgid "Selects all of the playlist entries."
-#~ msgstr "Означи све ставке у листи нумера."
-
-#~ msgid "Select None"
-#~ msgstr "Означи ништа"
-
-#~ msgid "Deselects all of the playlist entries."
-#~ msgstr "Скине ознаку са свих ставки у листи нумера."
-
-#~ msgid "Remove All"
-#~ msgstr "Уклони све"
-
-#~ msgid "Removes all entries from the playlist."
-#~ msgstr "Уклања све ставке из листе нумера."
-
-#~ msgid "Clear Queue"
-#~ msgstr "Обриши ред"
-
-#~ msgid "Clears the queue associated with this playlist."
-#~ msgstr "Брише ред придружен овој листи нумера."
-
-#~ msgid "Remove Unavailable Files"
-#~ msgstr "Уклони непостојеће датотеке"
-
-#~ msgid "Removes unavailable files from the playlist."
-#~ msgstr "Уклања непостојеће датотеке из листе нумера."
-
-#~ msgid "Remove Duplicates"
-#~ msgstr "Уклони дупликате"
-
-#~ msgid "By Title"
-#~ msgstr "По наслову"
-
-#~ msgid "Removes duplicate entries from the playlist by title."
-#~ msgstr "Уклања дупликате из листе нумера на основу наслова."
-
-#~ msgid "By Filename"
-#~ msgstr "По имену датотеке"
-
-#~ msgid "Removes duplicate entries from the playlist by filename."
-#~ msgstr "Уклања дупликате из листе нумера на основу имена датотеке."
-
-#~ msgid "By Path + Filename"
-#~ msgstr "По путањи + имену датотеке"
-
-#~ msgid "Removes duplicate entries from the playlist by their full path."
-#~ msgstr "Уклања дупликате из листе нумера на основу пуне путање датотеке."
-
-#~ msgid "Remove Unselected"
-#~ msgstr "Уклони неозначене"
-
-#~ msgid "Remove unselected entries from the playlist."
-#~ msgstr "Уклања неозначене ставке из листе нумера."
-
-#~ msgid "Remove Selected"
-#~ msgstr "Уклони означене"
-
-#~ msgid "Remove selected entries from the playlist."
-#~ msgstr "Уклања означене ставке из листе нумера."
-
-#~ msgid "Randomize List"
-#~ msgstr "Насумице испремештај листу"
-
-#~ msgid "Randomizes the playlist."
-#~ msgstr "Насумице испремешта ставке у листи нумера."
-
-#~ msgid "Reverse List"
-#~ msgstr "Обрни листу"
-
-#~ msgid "Reverses the playlist."
-#~ msgstr "Обрне редослед листе."
-
-#~ msgid "Sort List"
-#~ msgstr "Сортирај листу"
-
-#~ msgid "Sorts the list by title."
-#~ msgstr "Сортира листу према наслову."
-
-#, fuzzy
-#~ msgid "By Album"
-#~ msgstr "Албум"
-
-#, fuzzy
-#~ msgid "Sorts the list by album."
-#~ msgstr "Сортира листу према наслову."
-
-#~ msgid "By Artist"
-#~ msgstr "По извођачу"
-
-#~ msgid "Sorts the list by artist."
-#~ msgstr "Сортира листу према извођачу."
-
-#~ msgid "Sorts the list by filename."
-#~ msgstr "Сортира листу према имену датотеке."
-
-#~ msgid "Sorts the list by full pathname."
-#~ msgstr "Сортира листу према пуној путањи датотеке."
-
-#~ msgid "By Date"
-#~ msgstr "По датуму"
-
-#~ msgid "Sorts the list by modification time."
-#~ msgstr "Сортира листу према датуму измене."
-
-#~ msgid "By Track Number"
-#~ msgstr "По броју нумере"
-
-#~ msgid "Sorts the list by track number."
-#~ msgstr "Сортира листу према броју нумере."
-
-#~ msgid "By Playlist Entry"
-#~ msgstr "По ставки листе"
-
-#~ msgid "Sorts the list by playlist entry."
-#~ msgstr "Сортира листу према ставки листе нумера."
-
-#~ msgid "Sort Selected"
-#~ msgstr "Сортирај означене"
-
-#~ msgid "File"
-#~ msgstr "Фајл"
-
-#~ msgid "Help"
-#~ msgstr "Помоћ"
-
-#, fuzzy
-#~ msgid "Components"
-#~ msgstr "Коментар"
-
-#~ msgid "View Track Details"
-#~ msgstr "Прикажи детаље нумере"
-
-#~ msgid "Play File"
-#~ msgstr "Пусти датотеку"
-
-#~ msgid "Load and play a file"
-#~ msgstr "Учитај и пусти датотеку"
-
-#~ msgid "Play Location"
-#~ msgstr "Пусти локацију"
-
-#~ msgid "Play media from the selected location"
-#~ msgstr "Пусти медијe из изабране локације"
-
-#~ msgid "Plugin services"
-#~ msgstr "Услуге додатака"
-
-#~ msgid "Preferences"
-#~ msgstr "Поставке"
-
-#~ msgid "Open preferences window"
-#~ msgstr "Отвори прозор поставки"
-
-#~ msgid "_Quit"
-#~ msgstr "_Изађи"
-
-#~ msgid "Quit Audacious"
-#~ msgstr "Угаси Audacious"
-
-#~ msgid "Set A-B"
-#~ msgstr "Постави А-Б"
-
-#~ msgid "Clear A-B"
-#~ msgstr "Обриши А-Б"
-
-#~ msgid "Jump to Playlist Start"
-#~ msgstr "Пређи на почетак листе нумера"
-
-#~ msgid "Jump to File"
-#~ msgstr "Пређи на датотеку"
-
-#~ msgid "Queue Toggle"
-#~ msgstr "У ред/из реда"
-
-#~ msgid "Enables/disables the entry in the playlist's queue."
-#~ msgstr "Укључује/искључује ставке у/из ред(а) листе нумера."
-
-#~ msgid "Load"
-#~ msgstr "Учитати"
-
-#~ msgid "Import"
-#~ msgstr "Увести"
-
-#~ msgid "Save"
-#~ msgstr "Сачувати"
-
-#~ msgid "Delete"
-#~ msgstr "Избрисати"
-
-#~ msgid "Preset"
-#~ msgstr "Претподешавање"
-
-#~ msgid "Load preset"
-#~ msgstr "Учитати претподешавање"
-
-#~ msgid "Auto-load preset"
-#~ msgstr "Aуто-учитана претподешавања"
-
-#~ msgid "Load auto-load preset"
-#~ msgstr "Учитати ауто-учитана претподешавања"
-
-#~ msgid "Default"
-#~ msgstr "Подразумевано"
-
-#~ msgid "Load default preset into equalizer"
-#~ msgstr "Учитати подразумевано претподешавање у еквилајзер"
-
-#~ msgid "Zero"
-#~ msgstr "Нула"
-
-#~ msgid "Set equalizer preset levels to zero"
-#~ msgstr "Поставити нивое еквилајзера на нулу"
-
-#~ msgid "From file"
-#~ msgstr "Из датотеке"
-
-#~ msgid "Load preset from file"
-#~ msgstr "Учитати претподешавање из датотеке"
-
-#~ msgid "From WinAMP EQF file"
-#~ msgstr "Из WinAMP EQF датотеке"
-
-#~ msgid "Load preset from WinAMP EQF file"
-#~ msgstr "Учитати претподешавање из WinAMP EQF датотеке"
-
-#~ msgid "WinAMP Presets"
-#~ msgstr "WinAMP претподешавања"
-
-#~ msgid "Import WinAMP presets"
-#~ msgstr "Увести WinAMP претподешавања"
-
-#~ msgid "Save preset"
-#~ msgstr "Сачувати претподешавање"
-
-#~ msgid "Save auto-load preset"
-#~ msgstr "Сачувати ауто-учитано претподешавање"
-
-#~ msgid "Save default preset"
-#~ msgstr "Сачувати подразумевано претподешавање"
-
-#~ msgid "To file"
-#~ msgstr "У датотеку"
-
-#~ msgid "Save preset to file"
-#~ msgstr "Сачувати претподешавање у датотеку"
-
-#~ msgid "To WinAMP EQF file"
-#~ msgstr "У WinAMP EQF датотеку"
-
-#~ msgid "Save preset to WinAMP EQF file"
-#~ msgstr "Сачувати претподешавање у WinAMP EQF датотеку"
-
-#~ msgid "Delete preset"
-#~ msgstr "Избрисати претподешавање"
-
-#~ msgid "Delete auto-load preset"
-#~ msgstr "Избрисати ауто-учитано претподешавање"
-
-#~ msgid ""
-#~ "<span size=\"small\">This is the amount of time to prebuffer audio "
-#~ "streams by, in milliseconds.\n"
-#~ "Increase this value if you are experiencing audio skipping.\n"
-#~ "Please note however, that high values will result in Audacious performing "
-#~ "poorly.</span>"
-#~ msgstr ""
-#~ "<span size=\"small\">Ово је количина времена за колико се унапред учитају "
-#~ "аудио токови, у милисекундама.\n"
-#~ "Повећајте ову вредност ако вам се дешавају прескакања звука. \n"
-#~ "Имајте на уму, да високе вредности ће изазвати да Audacious слабије ради."
-#~ "</span>"
-
-#~ msgid "Enable headless operation"
-#~ msgstr "Укључи безглаву операцију"
-
-#~ msgid ""
-#~ "<b><big>Unable to load skin.</big></b>\n"
-#~ "\n"
-#~ "Check that skin at '%s' is usable and default skin is properly installed "
-#~ "at '%s'\n"
-#~ msgstr ""
-#~ "<b><big>Није могуће учитати маску.</big></b>\n"
-#~ "\n"
-#~ "Проверите да ли је маска у '%s' употребљива и да ли је подразумевана "
-#~ "маска правилно инсталирана у '%s'\n"
-
-#~ msgid "Headless operation enabled\n"
-#~ msgstr "Безглава операција је укључена\n"
-
-#~ msgid "Audacious core developers:"
-#~ msgstr "Audacious основни ствараоци:"
-
-#~ msgid "Audacious Equalizer"
-#~ msgstr "Audacious Еквилајзер"
-
-#~ msgid "Play files"
-#~ msgstr "Пусти датотеке"
-
-#~ msgid "Load files"
-#~ msgstr "Учитај датотеке"
-
-#~ msgid "%s - Audacious"
-#~ msgstr "%s - Audacious"
-
-#~ msgid "VBR"
-#~ msgstr "ВБР"
-
-#~ msgid "mono"
-#~ msgstr "моно"
-
-#~ msgid "Audacious - visibility warning"
-#~ msgstr "Audacious - упозорење видљивости"
-
-#~ msgid "Show main player window"
-#~ msgstr "Прикажи главни прозор плејера"
-
-#~ msgid "Ignore"
-#~ msgstr "Игнориши"
-
-#~ msgid ""
-#~ "Audacious has been started with all of its windows hidden.\n"
-#~ "You may want to show the player window again to control Audacious; "
-#~ "otherwise, you'll have to control it remotely via audtool or enabled "
-#~ "plugins (such as the statusicon plugin)."
-#~ msgstr ""
-#~ "Audacious је покренут са свим његовим прозорима сакривеним.\n"
-#~ "Можда бисте хтели да поново прикажете прозор плејера да бисте "
-#~ "контролисали Audacious; у супротном, мораћете га контролисати даљински "
-#~ "преко audtool или укључених додатака (као што је додатак \"статусна "
-#~ "иконица\")."
-
-#~ msgid "Always ignore, show/hide is controlled remotely"
-#~ msgstr "Увек игнориши, прикажи/сакриј се контролише даљински"
-
-#~ msgid ""
-#~ "<big><b>Broken GTK engine in use</b></big>\n"
-#~ "\n"
-#~ "Audacious has detected that you are using a broken GTK engine.\n"
-#~ "\n"
-#~ "The theme engine you are using, <i>%s</i>, is incompatible with some of "
-#~ "the features used by modern skins. The incompatible features have been "
-#~ "disabled for this session.\n"
-#~ "\n"
-#~ "To use these features, please consider using a different GTK theme engine."
-#~ msgstr ""
-#~ "<big><b>Покварена GTK машина у употреби</b></big>\n"
-#~ "\n"
-#~ "Audacious је открио да користите покварену GTK машину.\n"
-#~ "\n"
-#~ "Машина за теме коју користите, <i>%s</i>, није компатибилна са неким од "
-#~ "елемената које користе модерне маске. Некомпатибилне особине су искључене "
-#~ "за ову сесију.\n"
-#~ "\n"
-#~ "Да бисте користили ове особине, размислите о коришћењу неке друге GTK "
-#~ "машине за теме."
-
-#~ msgid "Seek to: %d:%-2.2d/%d:%-2.2d (%d%%)"
-#~ msgstr "Тражи до: %d:%-2.2d/%d:%-2.2d (%d%%)"
-
-#~ msgid "Volume: %d%%"
-#~ msgstr "Јачина звука: %d%%"
-
-#~ msgid "Balance: %d%% left"
-#~ msgstr "Баланс: %d%% леви"
-
-#~ msgid "Balance: center"
-#~ msgstr "Баланс: центрирано"
-
-#~ msgid "Balance: %d%% right"
-#~ msgstr "Баланс: %d%% десни"
-
-#~ msgid "Options Menu"
-#~ msgstr "Мени опција"
-
-#~ msgid "Disable 'Always On Top'"
-#~ msgstr "Искључи 'Увек на врху'"
-
-#~ msgid "Enable 'Always On Top'"
-#~ msgstr "Укључи 'Увек на врху'"
-
-#~ msgid "File Info Box"
-#~ msgstr "Оквир информација о датотеци"
-
-#~ msgid "Disable 'GUI Scaling'"
-#~ msgstr "Искључи 'Скалирање GUI-а'"
-
-#~ msgid "Enable 'GUI Scaling'"
-#~ msgstr "Укључи 'Скалирање GUI-а'"
-
-#~ msgid "Visualization Menu"
-#~ msgstr "Мени визуелизације"
-
-#~ msgid ""
-#~ "<b><big>Couldn't open audio.</big></b>\n"
-#~ "\n"
-#~ "Please check that:\n"
-#~ "1. You have the correct output plugin selected.\n"
-#~ "2. No other programs is blocking the soundcard.\n"
-#~ "3. Your soundcard is configured properly.\n"
-#~ msgstr ""
-#~ "<b><big>Није могуће отворити аудио.</big></b>\n"
-#~ "\n"
-#~ "Молим вас проверите:\n"
-#~ "1. Да ли сте изабрали добар излазни додатак.\n"
-#~ "2. Ниједан други програм не блокира звучну картицу.\n"
-#~ "3. Ваша звучна картица је исправно подешена.\n"
-
-#~ msgid "Autoscroll Songname"
-#~ msgstr "Аутопомерај име песме"
-
-#~ msgid "Show Player"
-#~ msgstr "Прикажи плејер"
-
-#~ msgid "Show Playlist Editor"
-#~ msgstr "Прикажи едитор листе нумера"
-
-#~ msgid "Always on Top"
-#~ msgstr "Увек на врху"
-
-#~ msgid "Put on All Workspaces"
-#~ msgstr "Стави на све радне површине"
-
-#~ msgid "Roll up Player"
-#~ msgstr "Замотај плејер"
-
-#~ msgid "Roll up Playlist Editor"
-#~ msgstr "Замотај едитор листе нумера"
-
-#~ msgid "Roll up Equalizer"
-#~ msgstr "Замотај еквилајзер"
-
-#~ msgid "Scale"
-#~ msgstr "Скалирај"
-
-#~ msgid "DoubleSize"
-#~ msgstr "Дупла величина"
-
-#~ msgid "Easy Move"
-#~ msgstr "Лако померање"
-
-#~ msgid "Analyzer"
-#~ msgstr "Анализатора"
-
-#~ msgid "Scope"
-#~ msgstr "Досег"
-
-#~ msgid "Voiceprint"
-#~ msgstr "Приказа гласа"
-
-#~ msgid "Off"
-#~ msgstr "Искључен"
-
-#~ msgid "Normal"
-#~ msgstr "Нормалан"
-
-#~ msgid "Fire"
-#~ msgstr "Ватра"
-
-#~ msgid "Vertical Lines"
-#~ msgstr "Вертикалне линије"
-
-#~ msgid "Lines"
-#~ msgstr "Линије"
-
-#~ msgid "Bars"
-#~ msgstr "Траке"
-
-#~ msgid "Dot Scope"
-#~ msgstr "Тачкасти досег"
-
-#~ msgid "Line Scope"
-#~ msgstr "Линијски досег"
-
-#~ msgid "Solid Scope"
-#~ msgstr "Испуњен досег"
-
-#~ msgid "Ice"
-#~ msgstr "Лед"
-
-#~ msgid "Smooth"
-#~ msgstr "Гладак"
-
-#~ msgid "Full (~50 fps)"
-#~ msgstr "Цела (~50 fps)"
-
-#~ msgid "Half (~25 fps)"
-#~ msgstr "Пола (~25 fps)"
-
-#~ msgid "Quarter (~13 fps)"
-#~ msgstr "Четврт (~13 fps)"
-
-#~ msgid "Eighth (~6 fps)"
-#~ msgstr "Осмина (~6 fps)"
-
-#~ msgid "Slowest"
-#~ msgstr "Најспорије"
-
-#~ msgid "Slow"
-#~ msgstr "Споро"
-
-#~ msgid "Medium"
-#~ msgstr "Средње"
-
-#~ msgid "Fast"
-#~ msgstr "Брзо"
-
-#~ msgid "Fastest"
-#~ msgstr "Најбрже"
-
-#~ msgid "Time Elapsed"
-#~ msgstr "Време протекло"
-
-#~ msgid "Time Remaining"
-#~ msgstr "Време преостало"
-
-#~ msgid "Plugin Services"
-#~ msgstr "Услуге додатака"
-
-#~ msgid "Search entries in active playlist"
-#~ msgstr "Претражи ставке у активној листи нумера"
-
-#~ msgid ""
-#~ "Select entries in playlist by filling one or more fields. Fields use "
-#~ "regular expressions syntax, case-insensitive. If you don't know how "
-#~ "regular expressions work, simply insert a literal portion of what you're "
-#~ "searching for."
-#~ msgstr ""
-#~ "Обележи ставке у листи нумера попуњавајући једно или више поља. Поља "
-#~ "користе синтаксу регуларних израза и разликују величину слова. Ако не "
-#~ "знате како регуларни изрази функционишу, једноставно унесите дословно део "
-#~ "онога што тражите."
-
-#~ msgid "Title: "
-#~ msgstr "Наслов: "
-
-#~ msgid "Artist: "
-#~ msgstr "Извођач: "
-
-#~ msgid "Filename: "
-#~ msgstr "Име датотеке: "
-
-#~ msgid "Clear previous selection before searching"
-#~ msgstr "Обриши претходну селекцију пре претраге"
-
-#~ msgid "Automatically toggle queue for matching entries"
-#~ msgstr "Нађене ставке аутоматски пребаци у ред"
-
-#~ msgid "Audacious Playlist Editor"
-#~ msgstr "Audacious едитор листе нумера"
-
-#~ msgid "Appearance"
-#~ msgstr "Изглед"
-
-#~ msgid "<b>_Fonts</b>"
-#~ msgstr "<b>_Фонтови</b>"
-
-#~ msgid "_Player:"
-#~ msgstr "_Плејер:"
-
-#~ msgid "Select main player window font:"
-#~ msgstr "Изаберите фонт главног прозора плејера:"
-
-#~ msgid "_Playlist:"
-#~ msgstr "_Листа нумера:"
-
-#~ msgid "Select playlist font:"
-#~ msgstr "Изаберите фонт листе нумера:"
-
-#~ msgid "Use Bitmap fonts if available"
-#~ msgstr "Користи битмапиране фонтове, ако су доступни"
-
-#~ msgid ""
-#~ "Use bitmap fonts if they are available. Bitmap fonts do not support "
-#~ "Unicode strings."
-#~ msgstr ""
-#~ "Користи битмапиране фонтове, ако су доступни. Битмапирани фонтови не "
-#~ "подржавају Уникодне знаковне низове."
-
-#~ msgid "<b>_Miscellaneous</b>"
-#~ msgstr "<b>_Остало</b>"
-
-#~ msgid "Show track numbers in playlist"
-#~ msgstr "Прикажи бројеве нумера у листи нумера"
-
-#~ msgid "Show separators in playlist"
-#~ msgstr "Прикажи раздвајаче у листи нумера"
-
-#~ msgid "Show window manager decoration"
-#~ msgstr "Прикажи украс програма за управљање прозорима"
-
-#~ msgid "This enables the window manager to show decorations for windows."
-#~ msgstr ""
-#~ "Ово омогућава програму за управљањe прозорима да прикаже украсе на "
-#~ "прозорима."
-
-#~ msgid "Use XMMS-style file selector instead of the default selector"
-#~ msgstr "Користи XMMS-ов селектор датотека уместо подразумеваног"
-
-#~ msgid ""
-#~ "This enables the XMMS/GTK1-style file selection dialogs. This selector is "
-#~ "provided by Audacious itself and is faster than the default GTK2 selector "
-#~ "(but sadly not as user-friendly)."
-#~ msgstr ""
-#~ "Ово укључује XMMS/GTK1-стил оквира за селекцију датотека. Audacious "
-#~ "обезбеђује овај селектор и бржи је од подразумеваног GTK2 селектора "
-#~ "(нажалост, не толико једноставан)."
-
-#~ msgid "Use two-way text scroller"
-#~ msgstr "Користи двосмерни текст клизач"
-
-#~ msgid ""
-#~ "If selected, the file information text in the main window will scroll "
-#~ "back and forth. If not selected, the text will only scroll in one "
-#~ "direction."
-#~ msgstr ""
-#~ "Ако је укључено, текст који приказује информације о датотеци у главном "
-#~ "прозору ће клизати напред и назад. Ако је искључено, текст ће се клизати "
-#~ "само у једном смеру."
-
-#~ msgid "Disable inline gtk theme"
-#~ msgstr "Искључи уграђену gtk тему"
-
-#~ msgid "Allow loading incomplete skins"
-#~ msgstr "Дозволи учитавање непотпуних маски"
-
-#~ msgid ""
-#~ "If selected, audacious won't refuse loading broken skins. Use only if "
-#~ "your favourite skin doesn't work"
-#~ msgstr ""
-#~ "Ако је укључено, Audacious неће забранити учитавање неисправних маски. "
-#~ "Користите само ако ваша омиљена маска не ради"
-
-#~ msgid "On load"
-#~ msgstr "Приликом учитавања"
-
-#~ msgid "Load metadata when adding the file to the playlist or opening it"
-#~ msgstr ""
-#~ "Учитај мета-податке при додавању датотеке у листу или приликом отварања"
-
-#~ msgid "On display"
-#~ msgstr "Приликом приказивања"
-
-#~ msgid ""
-#~ "Load metadata on demand when displaying the file in the playlist. You may "
-#~ "need to set \"Detect file formats on demand\" in Audio page for full "
-#~ "benefit."
-#~ msgstr ""
-#~ "Учитај мета-податке приликом приказивања датотеке у листи нумера. Можда "
-#~ "ћете морати да поставите \"Препознај формат датотеке на захтев\" у Аудио "
-#~ "одељку."
-
-#~ msgid "Color Adjustment"
-#~ msgstr "Подешавање боје"
-
-#~ msgid ""
-#~ "Audacious allows you to alter the color balance of the skinned UI. The "
-#~ "sliders below will allow you to do this."
-#~ msgstr ""
-#~ "Audacious вам дозвољава да промените баланс боја маскираног УИ-а. Доњи "
-#~ "клизачи ће вам омогућити да то урадите."
-
-#~ msgid "Blue"
-#~ msgstr "Плаво"
-
-#~ msgid "Green"
-#~ msgstr "Зелено"
-
-#~ msgid "Red"
-#~ msgstr "Црвено"
-
-#~ msgid "<b>_Skin</b>"
-#~ msgstr "<b>_Маска</b>"
-
-#~ msgid "Refresh skin list"
-#~ msgstr "Освежи листу маски"
-
-#~ msgid "PREAMP"
-#~ msgstr "ПРЕАМП"
-
-#~ msgid "60HZ"
-#~ msgstr "60Hz"
-
-#~ msgid "170HZ"
-#~ msgstr "170Hz"
-
-#~ msgid "310HZ"
-#~ msgstr "310Hz"
-
-#~ msgid "600HZ"
-#~ msgstr "600Hz"
-
-#~ msgid "1KHZ"
-#~ msgstr "1kHz"
-
-#~ msgid "3KHZ"
-#~ msgstr "3kHz"
-
-#~ msgid "6KHZ"
-#~ msgstr "6kHz"
-
-#~ msgid "12KHZ"
-#~ msgstr "12kHz"
-
-#~ msgid "14KHZ"
-#~ msgstr "14kHz"
-
-#~ msgid "16KHZ"
-#~ msgstr "16kHz"
+msgstr "Приказује могућности управљања сесијом"
 
-#~ msgid "Archived Winamp 2.x skin"
-#~ msgstr "Архивирана Winamp 2.x маска"
 
-#~ msgid "Unarchived Winamp 2.x skin"
-#~ msgstr "Неархивирана Winamp 2.x маска"
diff --git a/po/sr at Latn.po b/po/sr at Latn.po
index 714814f..92cb755 100644
--- a/po/sr at Latn.po
+++ b/po/sr at Latn.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: sr at Latn\n"
 "Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
+"POT-Creation-Date: 2011-07-05 22:45+0200\n"
 "PO-Revision-Date: 2008-07-19 11:56+0200\n"
 "Last-Translator: Strahinja Kustudic <kustudic at gmail.com>\n"
 "Language-Team:  <en at li.org>\n"
@@ -19,6 +19,18 @@ msgstr ""
 "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
 "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
 
+#: src/audacious/adder.c:71
+msgid "Searching ..."
+msgstr ""
+
+#: src/audacious/adder.c:99
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
+
 #: src/audacious/chardet.c:37
 msgid "  (invalid UTF-8)"
 msgstr "  (neispravan UTF-8)"
@@ -103,113 +115,113 @@ msgstr "Estonski:"
 msgid "Finnish:"
 msgstr "Finski:"
 
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:220
 msgid "French:"
 msgstr "Francuski:"
 
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:226
 msgid "German:"
 msgstr "Nemački:"
 
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:233
 msgid "Georgian:"
 msgstr "Armenski:"
 
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:236
 msgid "Greek:"
 msgstr "Grčki:"
 
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:241
 msgid "Hindi:"
 msgstr "Indijski:"
 
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:244
 msgid "Hungarian:"
 msgstr "Mađarski:"
 
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:248
 msgid "Italian:"
 msgstr "Italijanski:"
 
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:252
 msgid "Japanese:"
 msgstr "Japanski:"
 
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:255
 msgid "Korean:"
 msgstr "Koreanski:"
 
-#: src/audacious/credits.c:256
+#: src/audacious/credits.c:258
 #, fuzzy
 msgid "Latvian:"
 msgstr "Hrvatski:"
 
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:261
 msgid "Lithuanian:"
 msgstr "Litvanski:"
 
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:265
 msgid "Macedonian:"
 msgstr "Makedonski:"
 
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:268
 msgid "Polish:"
 msgstr "Poljski:"
 
-#: src/audacious/credits.c:271
+#: src/audacious/credits.c:274
 #, fuzzy
 msgid "Portuguese:"
 msgstr "Brazilsko Portugalski:"
 
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:277
 msgid "Romanian:"
 msgstr "Rumunski:"
 
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:281
 msgid "Russian:"
 msgstr "Ruski:"
 
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:285
 msgid "Serbian (Latin):"
 msgstr "Srpski (Latinica):"
 
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:288
 msgid "Serbian (Cyrillic):"
 msgstr "Srpski (Ćirilica):"
 
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:291
 msgid "Simplified Chinese:"
 msgstr "Uprošten Kineski:"
 
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:294
 msgid "Slovak:"
 msgstr "Slovenački:"
 
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:297
 msgid "Spanish:"
 msgstr "Å panski:"
 
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:304
 msgid "Swedish:"
 msgstr "Å vedski:"
 
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:307
 msgid "Traditional Chinese:"
 msgstr "Tradicionalni Kineski:"
 
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:312
 msgid "Turkish:"
 msgstr "Turski:"
 
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:316
 msgid "Ukrainian:"
 msgstr "Ukrainski:"
 
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:319
 msgid "Welsh:"
 msgstr "Velšanski:"
 
-#: src/audacious/drct.c:254
+#: src/audacious/drct.c:256
 #, fuzzy
 msgid "Temporary Playlist"
 msgstr "Učitaj listu numera"
@@ -219,80 +231,64 @@ msgstr "Učitaj listu numera"
 msgid "Error importing Winamp EQF file '%s'"
 msgstr "Greška prilikom uvozenja Winamp EQF datoteke '%s'"
 
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr ""
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] ""
-msgstr[1] ""
-msgstr[2] ""
-
-#: src/audacious/main.c:247
+#: src/audacious/main.c:256
 msgid "Skip backwards in playlist"
 msgstr "Skoči unazad u listi numera"
 
-#: src/audacious/main.c:248
+#: src/audacious/main.c:257
 msgid "Start playing current playlist"
 msgstr "Pusti tekuću listu numera"
 
-#: src/audacious/main.c:249
+#: src/audacious/main.c:258
 msgid "Pause current song"
 msgstr "Pauziraj tekuću pesmu"
 
-#: src/audacious/main.c:250
+#: src/audacious/main.c:259
 msgid "Stop current song"
 msgstr "Zaustavi tekuću pesmu"
 
-#: src/audacious/main.c:251
+#: src/audacious/main.c:260
 msgid "Pause if playing, play otherwise"
 msgstr "Pauziraj ako svira, inače pusti"
 
-#: src/audacious/main.c:252
+#: src/audacious/main.c:261
 msgid "Skip forward in playlist"
 msgstr "Skoči unapred u listi numera"
 
-#: src/audacious/main.c:253
+#: src/audacious/main.c:262
 msgid "Display Jump to File dialog"
 msgstr "Prikaži Pređi na datoteku okvir"
 
-#: src/audacious/main.c:254
+#: src/audacious/main.c:263
 #, fuzzy
 msgid "Add files to the playlist"
 msgstr "Dodaje datoteke u listu numera."
 
-#: src/audacious/main.c:255
+#: src/audacious/main.c:264
 msgid "Add new files to a temporary playlist"
 msgstr "Dodaje nove datoteke u privremenu listu numera"
 
-#: src/audacious/main.c:256
+#: src/audacious/main.c:265
 msgid "Display the main window"
 msgstr "Prikaži glavni prozor"
 
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr "Prikaži sve otvorene Audacious prozore"
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:266
 msgid "Show version"
 msgstr "Prikaži verziju"
 
-#: src/audacious/main.c:259
+#: src/audacious/main.c:267
 msgid "Print debugging messages"
 msgstr ""
 
-#: src/audacious/main.c:260
+#: src/audacious/main.c:268
 msgid "FILE..."
 msgstr "DATOTEKA..."
 
-#: src/audacious/main.c:272
+#: src/audacious/main.c:280
 msgid "- play multimedia files"
 msgstr "- pusti multimedijalne datoteke"
 
-#: src/audacious/main.c:282
+#: src/audacious/main.c:290
 #, c-format
 msgid ""
 "%s: %s\n"
@@ -301,7 +297,7 @@ msgstr ""
 "%s: %s\n"
 "Probajte `%s --help' za više informacija.\n"
 
-#: src/audacious/main.c:395
+#: src/audacious/main.c:407
 msgid ""
 "Audacious seems to be already running but is not responding.  You can start "
 "another instance of the program, but please be warned that this can cause "
@@ -309,262 +305,236 @@ msgid ""
 "message.  Press OK to start Audacious or Cancel to quit."
 msgstr ""
 
-#: src/audacious/main.c:558
+#: src/audacious/main.c:572
 msgid "Audacious"
 msgstr "Audacious"
 
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:381
 #, c-format
 msgid "No decoder found for %s."
 msgstr ""
 
-#: src/audacious/playback.c:519
+#: src/audacious/playback.c:531
 msgid "Buffering ..."
 msgstr ""
 
-#: src/audacious/playlist-new.c:288
+#: src/audacious/playlist-new.c:303
 #, fuzzy
 msgid "Untitled Playlist"
 msgstr "Nova lista numera"
 
-#: src/audacious/ui_preferences.c:88
+#: src/audacious/ui_preferences.c:87
 msgid "Audio"
 msgstr "Audio"
 
-#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
-msgstr "Replay Gain"
-
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:88
 msgid "Network"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:89 src/audacious/ui_preferences.c:1556
 msgid "Playlist"
 msgstr "Lista numera"
 
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:90
 msgid "Plugins"
 msgstr "Dodaci"
 
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:204
 msgid "Artist"
 msgstr "Izvođač"
 
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:97 src/libaudgui/infopopup.c:206
 msgid "Album"
 msgstr "Album"
 
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:202
+#: src/libaudgui/ui_playlist_manager.c:263
 msgid "Title"
 msgstr "Naslov"
 
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:99
 msgid "Tracknumber"
 msgstr "Broj numere"
 
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:208
 msgid "Genre"
 msgstr "Žanr"
 
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:101
 msgid "Filename"
 msgstr "Ime datoteke"
 
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:102
 msgid "Filepath"
 msgstr "Putanja datoteke"
 
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:103
 msgid "Date"
 msgstr "Datum"
 
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:104 src/libaudgui/infopopup.c:210
 msgid "Year"
 msgstr "Godina"
 
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:105
 msgid "Comment"
 msgstr "Komentar"
 
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:106
 msgid "Codec"
 msgstr "Kodek"
 
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:107
 msgid "Quality"
 msgstr "Kvalitet"
 
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:112
 msgid "None"
 msgstr "Nijedan"
 
-#: src/audacious/ui_preferences.c:115
+#: src/audacious/ui_preferences.c:113
 msgid "Japanese"
 msgstr "Japanski"
 
-#: src/audacious/ui_preferences.c:116
+#: src/audacious/ui_preferences.c:114
 msgid "Taiwanese"
 msgstr "Tajvanski"
 
-#: src/audacious/ui_preferences.c:117
+#: src/audacious/ui_preferences.c:115
 msgid "Chinese"
 msgstr "Kineski"
 
-#: src/audacious/ui_preferences.c:118
+#: src/audacious/ui_preferences.c:116
 msgid "Korean"
 msgstr "Koreanski"
 
-#: src/audacious/ui_preferences.c:119
+#: src/audacious/ui_preferences.c:117
 msgid "Russian"
 msgstr "Ruski"
 
-#: src/audacious/ui_preferences.c:120
+#: src/audacious/ui_preferences.c:118
 msgid "Greek"
 msgstr "Grčki"
 
-#: src/audacious/ui_preferences.c:121
+#: src/audacious/ui_preferences.c:119
 msgid "Hebrew"
 msgstr "Jevrejski"
 
-#: src/audacious/ui_preferences.c:122
+#: src/audacious/ui_preferences.c:120
 msgid "Turkish"
 msgstr "Turski"
 
-#: src/audacious/ui_preferences.c:123
+#: src/audacious/ui_preferences.c:121
 msgid "Arabic"
 msgstr "Arapski"
 
-#: src/audacious/ui_preferences.c:124
+#: src/audacious/ui_preferences.c:122
 #, fuzzy
 msgid "Polish"
 msgstr "Poljski:"
 
-#: src/audacious/ui_preferences.c:125
+#: src/audacious/ui_preferences.c:123
 #, fuzzy
 msgid "Baltic"
 msgstr "Keltska"
 
-#: src/audacious/ui_preferences.c:126
+#: src/audacious/ui_preferences.c:124
 msgid "Universal"
 msgstr "Univerzalan"
 
 #: src/audacious/ui_preferences.c:146
-msgid "<b>Bit Depth</b>"
-msgstr "<b>Dubina bita</b>"
+#, fuzzy
+msgid "Single track mode"
+msgstr "Prikaži detalje numere"
 
 #: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr "Dubina bita izlaza:"
-
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
-"Svi tokovi će biti pretvoreni u ovu dubinu bita.\n"
-"Ovo bi trebala da bude maksimalna podržana dubina bita\n"
-"muzičke kartice ili izlaznog dodatka."
+#, fuzzy
+msgid "Album mode"
+msgstr "Album: "
 
-#: src/audacious/ui_preferences.c:151
-msgid "<b>Volume Control</b>"
-msgstr "<b>Kontrola jačine zvuka</b>"
+#: src/audacious/ui_preferences.c:150
+#, fuzzy
+msgid "<b>Output Settings</b>"
+msgstr "<b>Prepoznavanje formata</b>"
 
 #: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr "Koristi softversku kontrolu zvuka"
+#, fuzzy
+msgid "Bit depth:"
+msgstr "Dubina bita izlaza:"
 
-#: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
-"Koristi softversku kontrolu zvuka. Ovo može biti korisno u situacijama gde "
-"vaš audio sistem ne podržava kontrolu jačine zvuka reprodukcije."
+#: src/audacious/ui_preferences.c:155
+msgid "Buffer size:"
+msgstr "Veličina bafera:"
 
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
+#: src/audacious/ui_preferences.c:157
+msgid "ms"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
-msgstr "dB"
-
-#: src/audacious/ui_preferences.c:160
+#: src/audacious/ui_preferences.c:158
 #, fuzzy
-msgid "Amplify untagged files:"
-msgstr "- pusti multimedijalne datoteke"
+msgid "Use software volume control (not recommended)"
+msgstr "Koristi softversku kontrolu zvuka"
 
-#: src/audacious/ui_preferences.c:164
+#: src/audacious/ui_preferences.c:160
 #, fuzzy
 msgid "<b>Replay Gain</b>"
 msgstr "<b>Replay Gain režim</b>"
 
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:161
 msgid "Enable Replay Gain"
 msgstr "Uključi Replay Gain"
 
-#: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>Meta-podaci</b>"
-
-#: src/audacious/ui_preferences.c:168
-#, fuzzy
-msgid "Single track mode"
-msgstr "Prikaži detalje numere"
-
-#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "Album: "
+#: src/audacious/ui_preferences.c:164
+msgid "Prevent clipping (recommended)"
+msgstr ""
 
-#: src/audacious/ui_preferences.c:172
+#: src/audacious/ui_preferences.c:166
 #, fuzzy
 msgid "<b>Adjust Levels</b>"
 msgstr "<b>Točkić miša</b>"
 
-#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "<b>Iskačuće informacije</b>"
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify all files:"
+msgstr ""
 
-#: src/audacious/ui_preferences.c:176
+#: src/audacious/ui_preferences.c:169 src/audacious/ui_preferences.c:172
+msgid "dB"
+msgstr "dB"
+
+#: src/audacious/ui_preferences.c:170
 #, fuzzy
-msgid "Enable clipping prevention"
-msgstr "Uključi zaštitu od odsecanja vrhunaca"
+msgid "Amplify untagged files:"
+msgstr "- pusti multimedijalne datoteke"
 
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:175
 msgid "Proxy hostname:"
 msgstr "Ime domaćina posrednika:"
 
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:176
 msgid "Proxy port:"
 msgstr "Posrednički port:"
 
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:179
 msgid "Proxy username:"
 msgstr "Posredničko korisničko ime:"
 
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:180
 msgid "Proxy password:"
 msgstr "Posrednička lozinka:"
 
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:184
 msgid "<b>Proxy Configuration</b>"
 msgstr "<b>Konfiguracija posrednika</b>"
 
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:185
 msgid "Enable proxy usage"
 msgstr "Uključi korišćenje posrednika"
 
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:187
 msgid "Use authentication with proxy"
 msgstr "Koristi proveru identiteta sa posrednikom"
 
-#: src/audacious/ui_preferences.c:197
+#: src/audacious/ui_preferences.c:189
 msgid ""
 "<span size=\"small\">Changing these settings will require a restart of "
 "Audacious.</span>"
@@ -572,15 +542,15 @@ msgstr ""
 "<span size=\"small\">Menjanje ovih podešavanja će zahtevati ponovno "
 "pokretanje Audacious-a.</span>"
 
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
 msgid "Auto character encoding detector for:"
 msgstr "Auto-prepoznavanje kodiranja karaktera za:"
 
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
 msgid "Fallback character encodings:"
 msgstr "Rezervno kodiranje karaktera:"
 
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
 msgid ""
 "List of character encodings used for fall back conversion of metadata. If "
 "automatic character encoding detector failed or has been disabled, encodings "
@@ -592,46 +562,46 @@ msgstr ""
 "isključeno, kodiranja u ovoj listi će biti kandidati za šifrovanje meta-"
 "poataka, i rezervna konverzija iz ovih kodiranja u UTF-8 će biti pokušana."
 
-#: src/audacious/ui_preferences.c:213
+#: src/audacious/ui_preferences.c:205
 #, fuzzy
 msgid "<b>Behavior</b>"
 msgstr "<b>Dubina bita</b>"
 
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:206
 msgid "Continue playback on startup"
 msgstr "Nastavi reprodukovanje na početku"
 
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:208
 msgid "Advance when the current song is deleted"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:218
+#: src/audacious/ui_preferences.c:210
 #, fuzzy
 msgid "Clear the playlist when opening files"
 msgstr "Napravi novu listu od nađenih stavki"
 
-#: src/audacious/ui_preferences.c:220
+#: src/audacious/ui_preferences.c:212
 #, fuzzy
 msgid "Open files in a temporary playlist"
 msgstr "Dodaje nove datoteke u privremenu listu numera"
 
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:214
 msgid "<b>Metadata</b>"
 msgstr "<b>Meta-podaci</b>"
 
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:454
 msgid "Category"
 msgstr "Kategorija"
 
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:682
 msgid "Popup Information Settings"
 msgstr "Podešavanja iskačućih informacija"
 
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:691
 msgid "<b>Cover image retrieve</b>"
 msgstr "<b>Učitavanje naslovne slike</b>"
 
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:696
 msgid ""
 "While searching for the album's cover, Audacious looks for certain words in "
 "the filename. You can specify those words in the lists below, separated "
@@ -640,99 +610,99 @@ msgstr ""
 "Dok traži naslovne slike albuma, Audacious traži određene reči u imenu "
 "datoteke. Možete navesti te reči dole u listi, razdvojene zapetama."
 
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:713
 msgid "Exclude:"
 msgstr "Isključi:"
 
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:720
 msgid "Include:"
 msgstr "Uključi:"
 
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:737
 msgid "Recursively search for cover"
 msgstr "Rekurzivno traži naslovnu sliku"
 
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:747
 msgid "Search depth: "
 msgstr "Dubina pretrage: "
 
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:761
 msgid "Use per-file cover"
 msgstr "Koristi jednu naslovnu sliku po datoteci"
 
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:764
 msgid "<b>Miscellaneous</b>"
 msgstr "<b>Ostalo</b>"
 
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:773
 msgid "Show Progress bar for the current track"
 msgstr "Prikaži indikator napredovanja za tekuću numeru"
 
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:783
 msgid "Delay until filepopup comes up: "
 msgstr "Zakašnjenje pojavljivanja iskačućeg proz. datoteke: "
 
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1283
 msgid "<b>Song Display</b>"
 msgstr "<b>Prikaz pesme</b>"
 
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1292
 msgid "Show song numbers"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1303
 msgid "Show leading zeroes (02:00 instead of 2:00)"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1325
 msgid "Show information about titlestring format"
 msgstr "Prikaži informacije o formatu znakovnog niza naslova"
 
-#: src/audacious/ui_preferences.c:1514
+#: src/audacious/ui_preferences.c:1339
 msgid "TITLE"
 msgstr "NASLOV"
 
-#: src/audacious/ui_preferences.c:1515
+#: src/audacious/ui_preferences.c:1340
 msgid "ARTIST - TITLE"
 msgstr "IZVOĐAČ - NASLOV"
 
-#: src/audacious/ui_preferences.c:1516
+#: src/audacious/ui_preferences.c:1341
 msgid "ARTIST - ALBUM - TITLE"
 msgstr "IZVOĐAČ - ALBUM - NASLOV"
 
-#: src/audacious/ui_preferences.c:1517
+#: src/audacious/ui_preferences.c:1342
 msgid "ARTIST - ALBUM - TRACK. TITLE"
 msgstr "IZVOĐAČ - ALBUM - BROJ. NASLOV"
 
-#: src/audacious/ui_preferences.c:1518
+#: src/audacious/ui_preferences.c:1343
 msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
 msgstr "IZVOĐAČ [ ALBUM ] - BROJ. NASLOV"
 
-#: src/audacious/ui_preferences.c:1519
+#: src/audacious/ui_preferences.c:1344
 msgid "ALBUM - TITLE"
 msgstr "ALBUM - NASLOV"
 
-#: src/audacious/ui_preferences.c:1520
+#: src/audacious/ui_preferences.c:1345
 msgid "Custom"
 msgstr "Sopstveni"
 
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1354
 msgid "Custom string:"
 msgstr "Sopstveni znakovni niz:"
 
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1361
 msgid "Title format:"
 msgstr "Format naslova:"
 
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1372
 msgid "<b>Popup Information</b>"
 msgstr "<b>Iskačuće informacije</b>"
 
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1387
 msgid "Show popup information for playlist entries"
 msgstr "Prikaži iskačuće informacije za stavke u listi numera"
 
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1388
 msgid ""
 "Toggles popup information window for the pointed entry in the playlist. The "
 "window shows title of song, name of album, genre, year of publish, track "
@@ -742,54 +712,47 @@ msgstr ""
 "listi numera. Prozor prikazuje ime pesme, ime albuma, žanr, godinu "
 "izdavanja, broj numere, dužinu numere i sliku."
 
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1397
 msgid "Edit settings for popup information"
 msgstr "Uredi podešavanja za iskačuće informacije"
 
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>Audio sistem</b>"
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "Veličina bafera:"
-
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
-msgstr "Tekući izlazni dodatak:"
+#: src/audacious/ui_preferences.c:1497
+#, fuzzy
+msgid "Output plugin:"
+msgstr "Ulazni dodatak: %s"
 
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
 #, fuzzy
 msgid "Transport"
 msgstr "Prevodioci"
 
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
 msgid "Input"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
 #, fuzzy
 msgid "Effect"
 msgstr "<b>Efekti</b>"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
 msgid "Visualization"
 msgstr "Vizuelizacija"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
 msgid "General"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1597
 msgid "Audacious Preferences"
 msgstr "Audacious podešavanja"
 
-#: src/audacious/util.c:161
+#: src/audacious/util.c:155
 #, c-format
 msgid "Could not create directory (%s): %s\n"
 msgstr "Nije moguće napraviti direktorijum (%s): %s\n"
 
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:264
 msgid "Position not found."
 msgstr ""
 
@@ -808,22 +771,25 @@ msgstr "stereo"
 
 #: src/libaudcore/tuple.c:689
 #, c-format
-msgid "%d channels"
-msgstr ""
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] ""
+msgstr[1] ""
+msgstr[2] ""
 
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/confirm.c:73
 #, c-format
 msgid ""
 "Are you sure you want to close %s?  If you do, any changes made since the "
 "playlist was exported will be lost."
 msgstr ""
 
-#: src/libaudgui/confirm.c:77
+#: src/libaudgui/confirm.c:86
 #, fuzzy
 msgid "_Don't show this message again"
 msgstr "Ne prikazuj ovo upozorenje"
 
-#: src/libaudgui/confirm.c:115
+#: src/libaudgui/confirm.c:124
 #, fuzzy
 msgid "Rename Playlist"
 msgstr "Sačuvaj listu numera"
@@ -887,11 +853,11 @@ msgstr "Prikaži ekvilajzer"
 msgid "Preamp"
 msgstr "Predpojačalo:"
 
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:212
 msgid "Track Number"
 msgstr "Broj numere"
 
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:214
 msgid "Track Length"
 msgstr "Dužina numere"
 
@@ -1123,6 +1089,29 @@ msgstr "%d kb/s"
 msgid "No info available for %s.\n"
 msgstr ""
 
+#: src/libaudgui/jump-to-time.c:75
+msgid "Jump to Time"
+msgstr "Pređi na vreme"
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr ""
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Export Playlist"
+msgstr "Učitaj listu numera"
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Import Playlist"
+msgstr "Učitaj listu numera"
+
+#: src/libaudgui/playlists.c:71
+#, c-format
+msgid "Overwrite %s?"
+msgstr ""
+
 #: src/libaudgui/ui_about.c:71
 msgid "About Audacious"
 msgstr "O Audacious-u"
@@ -1184,19 +1173,19 @@ msgstr "Obriši A-B"
 msgid "Close on Jump"
 msgstr "Zatvori posle skoka"
 
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:240
 msgid "Playlist Manager"
 msgstr "Menadžer liste numera"
 
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:264
 msgid "Entries"
 msgstr "Stavke"
 
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:285
 msgid "_Rename"
 msgstr "_Preimenuj"
 
-#: src/libaudgui/ui_playlist_manager.c:251
+#: src/libaudgui/ui_playlist_manager.c:309
 #, fuzzy
 msgid "_Close dialog on activating playlist"
 msgstr "Zatvori okvir klikom na Otvori"
@@ -1209,6 +1198,12 @@ msgstr ""
 msgid "Add URL"
 msgstr ""
 
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+
 #: src/libeggsmclient/eggdesktopfile.c:165
 msgid "File is not a valid .desktop file"
 msgstr "Datoteka nije validna .desktop datoteka"
@@ -1218,26 +1213,26 @@ msgstr "Datoteka nije validna .desktop datoteka"
 msgid "Unrecognized desktop file Version '%s'"
 msgstr "Nepoznata verzija datoteke radne površi (.desktop) '%s'"
 
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:967
 #, c-format
 msgid "Starting %s"
 msgstr "Pokrećem %s"
 
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1108
 msgid "Application does not accept documents on command line"
 msgstr "Aplikacija ne podržava dokumente u komandnoj liniji"
 
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1176
 #, c-format
 msgid "Unrecognized launch option: %d"
 msgstr "Nepoznata opcija pokretanja: %d"
 
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1375
 msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
 msgstr ""
 "Ne mogu da prosledim adrese dokumenta u stavku radne površi 'Tip=Link' "
 
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1396
 msgid "Not a launchable item"
 msgstr "Stavka ne može da se pokrene"
 
@@ -1271,6 +1266,52 @@ msgstr "Opcije upravljanja sesije"
 msgid "Show session management options"
 msgstr "Prikaži opcije upravljanja sesije"
 
+#~ msgid "Replay Gain"
+#~ msgstr "Replay Gain"
+
+#~ msgid "<b>Bit Depth</b>"
+#~ msgstr "<b>Dubina bita</b>"
+
+#~ msgid ""
+#~ "All streams will be converted to this bit depth.\n"
+#~ "This should be the max supported bit depth of\n"
+#~ "the sound card or output plugin."
+#~ msgstr ""
+#~ "Svi tokovi će biti pretvoreni u ovu dubinu bita.\n"
+#~ "Ovo bi trebala da bude maksimalna podržana dubina bita\n"
+#~ "muzičke kartice ili izlaznog dodatka."
+
+#~ msgid "<b>Volume Control</b>"
+#~ msgstr "<b>Kontrola jačine zvuka</b>"
+
+#~ msgid ""
+#~ "Use software volume control. This may be useful for situations where your "
+#~ "audio system does not support controlling the playback volume."
+#~ msgstr ""
+#~ "Koristi softversku kontrolu zvuka. Ovo može biti korisno u situacijama "
+#~ "gde vaš audio sistem ne podržava kontrolu jačine zvuka reprodukcije."
+
+#, fuzzy
+#~ msgid "<b>Mode</b>"
+#~ msgstr "<b>Meta-podaci</b>"
+
+#, fuzzy
+#~ msgid "<b>Clipping Prevention</b>"
+#~ msgstr "<b>Iskačuće informacije</b>"
+
+#, fuzzy
+#~ msgid "Enable clipping prevention"
+#~ msgstr "Uključi zaštitu od odsecanja vrhunaca"
+
+#~ msgid "<b>Audio System</b>"
+#~ msgstr "<b>Audio sistem</b>"
+
+#~ msgid "Current output plugin:"
+#~ msgstr "Tekući izlazni dodatak:"
+
+#~ msgid "Display all open Audacious windows"
+#~ msgstr "Prikaži sve otvorene Audacious prozore"
+
 #~ msgid "%s: Unable to open display, exiting.\n"
 #~ msgstr "%s: Nije moguće otvoriti prikaz, izlazim.\n"
 
@@ -1758,9 +1799,6 @@ msgstr "Prikaži opcije upravljanja sesije"
 #~ msgid "No input plugin recognized this file"
 #~ msgstr "Nijedan ulazni dodatak nije prepoznao ovu datoteku"
 
-#~ msgid "Input plugin: %s"
-#~ msgstr "Ulazni dodatak: %s"
-
 #~ msgid ""
 #~ "<b><big>No output plugin selected.</big></b>\n"
 #~ "You have not selected an output plugin."
@@ -1803,9 +1841,6 @@ msgstr "Prikaži opcije upravljanja sesije"
 #~ "Ovo bi trebala da bude maksimalna podržana učestalost odabiranja uzoraka\n"
 #~ "muzičke kartice ili izlaznog dodatka.</span>"
 
-#~ msgid "<b>Format Detection</b>"
-#~ msgstr "<b>Prepoznavanje formata</b>"
-
 #~ msgid "Detect file formats by extension."
 #~ msgstr "Prepoznaj format datoteke na osnovu oznake tipa."
 
@@ -1932,9 +1967,6 @@ msgstr "Prikaži opcije upravljanja sesije"
 #~ msgid "Can't jump to time when no track is being played.\n"
 #~ msgstr "Ne mogu da skočim na vreme kad nijedna numera nije puštena.\n"
 
-#~ msgid "Jump to Time"
-#~ msgstr "Pređi na vreme"
-
 #~ msgid "minutes:seconds"
 #~ msgstr "minuti:sekunde"
 
diff --git a/po/sv.po b/po/sv.po
index a39c359..795868a 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: bmp 0.9.7\n"
 "Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
+"POT-Creation-Date: 2011-07-05 22:45+0200\n"
 "PO-Revision-Date: 2004-02-29 02:46+0100\n"
 "Last-Translator: Martin Persenius <martin at persenius.net>\n"
 "Language-Team: Sweden\n"
@@ -19,6 +19,18 @@ msgstr ""
 "NPOT-Creation-Date: 2004-02-21 19:35+0200\n"
 "Plural-Forms: nplurals=2; plural=n>1;\n"
 
+#: src/audacious/adder.c:71
+#, fuzzy
+msgid "Searching ..."
+msgstr "Söker i kataloger..."
+
+#: src/audacious/adder.c:99
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] ""
+msgstr[1] ""
+
 #: src/audacious/chardet.c:37
 msgid "  (invalid UTF-8)"
 msgstr "  (invalid UTF-8)"
@@ -111,122 +123,122 @@ msgstr "Plats:"
 msgid "Finnish:"
 msgstr ""
 
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:220
 msgid "French:"
 msgstr ""
 
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:226
 #, fuzzy
 msgid "German:"
 msgstr "Genre"
 
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:233
 #, fuzzy
 msgid "Georgian:"
 msgstr "Genre"
 
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:236
 #, fuzzy
 msgid "Greek:"
 msgstr "Genre"
 
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:241
 msgid "Hindi:"
 msgstr ""
 
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:244
 #, fuzzy
 msgid "Hungarian:"
 msgstr "Buffrande:"
 
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:248
 #, fuzzy
 msgid "Italian:"
 msgstr "Plats:"
 
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:252
 msgid "Japanese:"
 msgstr ""
 
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:255
 #, fuzzy
 msgid "Korean:"
 msgstr "Genre"
 
-#: src/audacious/credits.c:256
+#: src/audacious/credits.c:258
 #, fuzzy
 msgid "Latvian:"
 msgstr "Plats:"
 
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:261
 msgid "Lithuanian:"
 msgstr ""
 
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:265
 #, fuzzy
 msgid "Macedonian:"
 msgstr "Genre"
 
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:268
 msgid "Polish:"
 msgstr ""
 
-#: src/audacious/credits.c:271
+#: src/audacious/credits.c:274
 #, fuzzy
 msgid "Portuguese:"
 msgstr "Port:"
 
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:277
 #, fuzzy
 msgid "Romanian:"
 msgstr "Plats:"
 
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:281
 msgid "Russian:"
 msgstr ""
 
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:285
 msgid "Serbian (Latin):"
 msgstr ""
 
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:288
 msgid "Serbian (Cyrillic):"
 msgstr ""
 
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:291
 msgid "Simplified Chinese:"
 msgstr ""
 
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:294
 msgid "Slovak:"
 msgstr ""
 
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:297
 msgid "Spanish:"
 msgstr ""
 
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:304
 msgid "Swedish:"
 msgstr ""
 
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:307
 msgid "Traditional Chinese:"
 msgstr ""
 
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:312
 msgid "Turkish:"
 msgstr ""
 
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:316
 #, fuzzy
 msgid "Ukrainian:"
 msgstr "Organisation:"
 
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:319
 msgid "Welsh:"
 msgstr ""
 
-#: src/audacious/drct.c:254
+#: src/audacious/drct.c:256
 #, fuzzy
 msgid "Temporary Playlist"
 msgstr "Ladda spellista"
@@ -236,91 +248,75 @@ msgstr "Ladda spellista"
 msgid "Error importing Winamp EQF file '%s'"
 msgstr ""
 
-#: src/audacious/folder-add.c:63
-#, fuzzy
-msgid "Searching ..."
-msgstr "Söker i kataloger..."
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/audacious/main.c:247
+#: src/audacious/main.c:256
 msgid "Skip backwards in playlist"
 msgstr "Hoppa båket i spellista"
 
-#: src/audacious/main.c:248
+#: src/audacious/main.c:257
 msgid "Start playing current playlist"
 msgstr "Börja spela nuvarande spellista"
 
-#: src/audacious/main.c:249
+#: src/audacious/main.c:258
 msgid "Pause current song"
 msgstr "Pausa nuvarande sång"
 
-#: src/audacious/main.c:250
+#: src/audacious/main.c:259
 msgid "Stop current song"
 msgstr "Stoppa nuvarande sång"
 
-#: src/audacious/main.c:251
+#: src/audacious/main.c:260
 msgid "Pause if playing, play otherwise"
 msgstr "Pausa om spelandes, spela annars"
 
-#: src/audacious/main.c:252
+#: src/audacious/main.c:261
 msgid "Skip forward in playlist"
 msgstr "Hoppas framåt i spellistan"
 
-#: src/audacious/main.c:253
+#: src/audacious/main.c:262
 #, fuzzy
 msgid "Display Jump to File dialog"
 msgstr "/Hoppa till fil"
 
-#: src/audacious/main.c:254
+#: src/audacious/main.c:263
 #, fuzzy
 msgid "Add files to the playlist"
 msgstr "Kunde ej skriva spellista!"
 
-#: src/audacious/main.c:255
+#: src/audacious/main.c:264
 #, fuzzy
 msgid "Add new files to a temporary playlist"
 msgstr "Kunde ej skriva spellista!"
 
-#: src/audacious/main.c:256
+#: src/audacious/main.c:265
 #, fuzzy
 msgid "Display the main window"
 msgstr "Visa huvudfönstret."
 
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr ""
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:266
 #, fuzzy
 msgid "Show version"
 msgstr "/Visa spellistredigeraren"
 
-#: src/audacious/main.c:259
+#: src/audacious/main.c:267
 msgid "Print debugging messages"
 msgstr ""
 
-#: src/audacious/main.c:260
+#: src/audacious/main.c:268
 msgid "FILE..."
 msgstr ""
 
-#: src/audacious/main.c:272
+#: src/audacious/main.c:280
 msgid "- play multimedia files"
 msgstr ""
 
-#: src/audacious/main.c:282
+#: src/audacious/main.c:290
 #, c-format
 msgid ""
 "%s: %s\n"
 "Try `%s --help' for more information.\n"
 msgstr ""
 
-#: src/audacious/main.c:395
+#: src/audacious/main.c:407
 msgid ""
 "Audacious seems to be already running but is not responding.  You can start "
 "another instance of the program, but please be warned that this can cause "
@@ -328,293 +324,269 @@ msgid ""
 "message.  Press OK to start Audacious or Cancel to quit."
 msgstr ""
 
-#: src/audacious/main.c:558
+#: src/audacious/main.c:572
 msgid "Audacious"
 msgstr ""
 
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:381
 #, c-format
 msgid "No decoder found for %s."
 msgstr ""
 
-#: src/audacious/playback.c:519
+#: src/audacious/playback.c:531
 #, fuzzy
 msgid "Buffering ..."
 msgstr "Buffrande"
 
-#: src/audacious/playlist-new.c:288
+#: src/audacious/playlist-new.c:303
 #, fuzzy
 msgid "Untitled Playlist"
 msgstr "/Ny spellista"
 
-#: src/audacious/ui_preferences.c:88
+#: src/audacious/ui_preferences.c:87
 #, fuzzy
 msgid "Audio"
 msgstr "Om MPEG-ljudinsticksmodulen"
 
-#: src/audacious/ui_preferences.c:89
-#, fuzzy
-msgid "Replay Gain"
-msgstr "ReplayGain"
-
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:88
 msgid "Network"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:89 src/audacious/ui_preferences.c:1556
 #, fuzzy
 msgid "Playlist"
 msgstr "/Spellista"
 
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:90
 #, fuzzy
 msgid "Plugins"
 msgstr "Insticksmoduler"
 
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:204
 #, fuzzy
 msgid "Artist"
 msgstr "Artist:"
 
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:97 src/libaudgui/infopopup.c:206
 msgid "Album"
 msgstr "Album"
 
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:202
+#: src/libaudgui/ui_playlist_manager.c:263
 msgid "Title"
 msgstr "Titel"
 
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:99
 #, fuzzy
 msgid "Tracknumber"
 msgstr "Spårnummer"
 
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:208
 msgid "Genre"
 msgstr "Genre"
 
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:101
 msgid "Filename"
 msgstr "Filnamn"
 
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:102
 #, fuzzy
 msgid "Filepath"
 msgstr "Sökväg"
 
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:103
 msgid "Date"
 msgstr "Datum"
 
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:104 src/libaudgui/infopopup.c:210
 msgid "Year"
 msgstr "Ã…r"
 
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:105
 msgid "Comment"
 msgstr "Kommentar"
 
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:106
 #, fuzzy
 msgid "Codec"
 msgstr "Stäng"
 
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:107
 #, fuzzy
 msgid "Quality"
 msgstr "/_Avsluta"
 
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:112
 msgid "None"
 msgstr "Ingen"
 
-#: src/audacious/ui_preferences.c:115
+#: src/audacious/ui_preferences.c:113
 msgid "Japanese"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:116
+#: src/audacious/ui_preferences.c:114
 msgid "Taiwanese"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:117
+#: src/audacious/ui_preferences.c:115
 #, fuzzy
 msgid "Chinese"
 msgstr "Kanaler:"
 
-#: src/audacious/ui_preferences.c:118
+#: src/audacious/ui_preferences.c:116
 #, fuzzy
 msgid "Korean"
 msgstr "Genre"
 
-#: src/audacious/ui_preferences.c:119
+#: src/audacious/ui_preferences.c:117
 #, fuzzy
 msgid "Russian"
 msgstr "Fusion"
 
-#: src/audacious/ui_preferences.c:120
+#: src/audacious/ui_preferences.c:118
 #, fuzzy
 msgid "Greek"
 msgstr "Genre"
 
-#: src/audacious/ui_preferences.c:121
+#: src/audacious/ui_preferences.c:119
 msgid "Hebrew"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:122
+#: src/audacious/ui_preferences.c:120
 msgid "Turkish"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:123
+#: src/audacious/ui_preferences.c:121
 msgid "Arabic"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:124
+#: src/audacious/ui_preferences.c:122
 msgid "Polish"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:125
+#: src/audacious/ui_preferences.c:123
 #, fuzzy
 msgid "Baltic"
 msgstr "Keltisk"
 
-#: src/audacious/ui_preferences.c:126
+#: src/audacious/ui_preferences.c:124
 #, fuzzy
 msgid "Universal"
 msgstr "Genre"
 
 #: src/audacious/ui_preferences.c:146
 #, fuzzy
-msgid "<b>Bit Depth</b>"
-msgstr "_Filter:"
+msgid "Single track mode"
+msgstr "/Visa spårdetaljer"
 
 #: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
+#, fuzzy
+msgid "Album mode"
+msgstr "Album"
 
-#: src/audacious/ui_preferences.c:151
+#: src/audacious/ui_preferences.c:150
 #, fuzzy
-msgid "<b>Volume Control</b>"
-msgstr "Volymkontrol:"
+msgid "<b>Output Settings</b>"
+msgstr "_Filter:"
 
 #: src/audacious/ui_preferences.c:152
 #, fuzzy
-msgid "Use software volume control"
-msgstr "Volymkontrol:"
+msgid "Bit depth:"
+msgstr "Bit-hastighet:"
 
-#: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
+#: src/audacious/ui_preferences.c:155
+#, fuzzy
+msgid "Buffer size:"
+msgstr "Buffertstorlek (kB):"
 
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
+#: src/audacious/ui_preferences.c:157
+msgid "ms"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
-msgstr ""
+#: src/audacious/ui_preferences.c:158
+#, fuzzy
+msgid "Use software volume control (not recommended)"
+msgstr "Volymkontrol:"
 
 #: src/audacious/ui_preferences.c:160
-msgid "Amplify untagged files:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:164
 #, fuzzy
 msgid "<b>Replay Gain</b>"
 msgstr "Police de la liste d'écoute:"
 
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:161
 #, fuzzy
 msgid "Enable Replay Gain"
 msgstr "Aktivera ReplayGain"
 
-#: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "_Filter:"
-
-#: src/audacious/ui_preferences.c:168
-#, fuzzy
-msgid "Single track mode"
-msgstr "/Visa spårdetaljer"
-
-#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "Album"
+#: src/audacious/ui_preferences.c:164
+msgid "Prevent clipping (recommended)"
+msgstr ""
 
-#: src/audacious/ui_preferences.c:172
+#: src/audacious/ui_preferences.c:166
 #, fuzzy
 msgid "<b>Adjust Levels</b>"
 msgstr "_Filter:"
 
-#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "bmp: Konfiguration av MPEG-ljudinsticksmodul"
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify all files:"
+msgstr ""
 
-#: src/audacious/ui_preferences.c:176
-#, fuzzy
-msgid "Enable clipping prevention"
-msgstr "Aktivera klippskydd"
+#: src/audacious/ui_preferences.c:169 src/audacious/ui_preferences.c:172
+msgid "dB"
+msgstr ""
 
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:170
+msgid "Amplify untagged files:"
+msgstr ""
+
+#: src/audacious/ui_preferences.c:175
 msgid "Proxy hostname:"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:176
 #, fuzzy
 msgid "Proxy port:"
 msgstr "Proxy:"
 
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:179
 #, fuzzy
 msgid "Proxy username:"
 msgstr "Användarnamn:"
 
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:180
 #, fuzzy
 msgid "Proxy password:"
 msgstr "Lösenord:"
 
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:184
 #, fuzzy
 msgid "<b>Proxy Configuration</b>"
 msgstr "bmp: Konfiguration av MPEG-ljudinsticksmodul"
 
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:185
 msgid "Enable proxy usage"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:187
 #, fuzzy
 msgid "Use authentication with proxy"
 msgstr "Använd autentisering"
 
-#: src/audacious/ui_preferences.c:197
+#: src/audacious/ui_preferences.c:189
 msgid ""
 "<span size=\"small\">Changing these settings will require a restart of "
 "Audacious.</span>"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
 msgid "Auto character encoding detector for:"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
 msgid "Fallback character encodings:"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
 msgid ""
 "List of character encodings used for fall back conversion of metadata. If "
 "automatic character encoding detector failed or has been disabled, encodings "
@@ -622,212 +594,202 @@ msgid ""
 "fall back conversion from these encodings to UTF-8 would be attempted."
 msgstr ""
 
-#: src/audacious/ui_preferences.c:213
+#: src/audacious/ui_preferences.c:205
 #, fuzzy
 msgid "<b>Behavior</b>"
 msgstr "_Filter:"
 
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:206
 msgid "Continue playback on startup"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:208
 msgid "Advance when the current song is deleted"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:218
+#: src/audacious/ui_preferences.c:210
 #, fuzzy
 msgid "Clear the playlist when opening files"
 msgstr "Välj typsnitt för spellistan:"
 
-#: src/audacious/ui_preferences.c:220
+#: src/audacious/ui_preferences.c:212
 #, fuzzy
 msgid "Open files in a temporary playlist"
 msgstr "Kunde ej skriva spellista!"
 
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:214
 #, fuzzy
 msgid "<b>Metadata</b>"
 msgstr "_Filter:"
 
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:454
 msgid "Category"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:682
 #, fuzzy
 msgid "Popup Information Settings"
 msgstr "bmp: Konfiguration av MPEG-ljudinsticksmodul"
 
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:691
 #, fuzzy
 msgid "<b>Cover image retrieve</b>"
 msgstr "Automatiskt upptäckande"
 
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:696
 msgid ""
 "While searching for the album's cover, Audacious looks for certain words in "
 "the filename. You can specify those words in the lists below, separated "
 "using commas."
 msgstr ""
 
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:713
 msgid "Exclude:"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:720
 #, fuzzy
 msgid "Include:"
 msgstr "Indisk"
 
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:737
 msgid "Recursively search for cover"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:747
 msgid "Search depth: "
 msgstr ""
 
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:761
 msgid "Use per-file cover"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:764
 #, fuzzy
 msgid "<b>Miscellaneous</b>"
 msgstr "_Filter:"
 
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:773
 msgid "Show Progress bar for the current track"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:783
 msgid "Delay until filepopup comes up: "
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1283
 #, fuzzy
 msgid "<b>Song Display</b>"
 msgstr "_Filter:"
 
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1292
 msgid "Show song numbers"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1303
 msgid "Show leading zeroes (02:00 instead of 2:00)"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1325
 msgid "Show information about titlestring format"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1514
+#: src/audacious/ui_preferences.c:1339
 msgid "TITLE"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1515
+#: src/audacious/ui_preferences.c:1340
 msgid "ARTIST - TITLE"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1516
+#: src/audacious/ui_preferences.c:1341
 msgid "ARTIST - ALBUM - TITLE"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1517
+#: src/audacious/ui_preferences.c:1342
 msgid "ARTIST - ALBUM - TRACK. TITLE"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1518
+#: src/audacious/ui_preferences.c:1343
 msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1519
+#: src/audacious/ui_preferences.c:1344
 msgid "ALBUM - TITLE"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1520
+#: src/audacious/ui_preferences.c:1345
 #, fuzzy
 msgid "Custom"
 msgstr "Bufferttid (ms):"
 
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1354
 msgid "Custom string:"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1361
 msgid "Title format:"
 msgstr "Titelformat:"
 
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1372
 #, fuzzy
 msgid "<b>Popup Information</b>"
 msgstr "bmp: Konfiguration av MPEG-ljudinsticksmodul"
 
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1387
 msgid "Show popup information for playlist entries"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1388
 msgid ""
 "Toggles popup information window for the pointed entry in the playlist. The "
 "window shows title of song, name of album, genre, year of publish, track "
 "number, track length, and artwork."
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1397
 msgid "Edit settings for popup information"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1698
-#, fuzzy
-msgid "<b>Audio System</b>"
-msgstr "Förinställningar"
-
-#: src/audacious/ui_preferences.c:1715
+#: src/audacious/ui_preferences.c:1497
 #, fuzzy
-msgid "Buffer size:"
-msgstr "Buffertstorlek (kB):"
+msgid "Output plugin:"
+msgstr "OSS-uppspelningsinsticksmodul"
 
-#: src/audacious/ui_preferences.c:1734
-#, fuzzy
-msgid "Current output plugin:"
-msgstr "eSound-uppspelningsinsticksmodul"
-
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
 msgid "Transport"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
 msgid "Input"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
 #, fuzzy
 msgid "Effect"
 msgstr "Förinställningar"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
 #, fuzzy
 msgid "Visualization"
 msgstr "/Visualiseringsläge"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
 #, fuzzy
 msgid "General"
 msgstr "Generella insticksmoduler"
 
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1597
 #, fuzzy
 msgid "Audacious Preferences"
 msgstr "/Inställningar"
 
-#: src/audacious/util.c:161
+#: src/audacious/util.c:155
 #, fuzzy, c-format
 msgid "Could not create directory (%s): %s\n"
 msgstr "Kunde ej skapa mapp (%s): %s"
 
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:264
 msgid "Position not found."
 msgstr ""
 
@@ -846,22 +808,24 @@ msgstr "Stereo"
 
 #: src/libaudcore/tuple.c:689
 #, fuzzy, c-format
-msgid "%d channels"
-msgstr "Kanaler:"
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] "Kanaler:"
+msgstr[1] "Kanaler:"
 
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/confirm.c:73
 #, c-format
 msgid ""
 "Are you sure you want to close %s?  If you do, any changes made since the "
 "playlist was exported will be lost."
 msgstr ""
 
-#: src/libaudgui/confirm.c:77
+#: src/libaudgui/confirm.c:86
 #, fuzzy
 msgid "_Don't show this message again"
 msgstr "Vissa inte denna varning igen"
 
-#: src/libaudgui/confirm.c:115
+#: src/libaudgui/confirm.c:124
 #, fuzzy
 msgid "Rename Playlist"
 msgstr "Spara spellista"
@@ -933,12 +897,12 @@ msgstr "BMP Equalizer"
 msgid "Preamp"
 msgstr "Dream"
 
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:212
 #, fuzzy
 msgid "Track Number"
 msgstr "Spårnummer"
 
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:214
 #, fuzzy
 msgid "Track Length"
 msgstr "Spårlängd:"
@@ -1173,6 +1137,30 @@ msgstr "%d kbit/s"
 msgid "No info available for %s.\n"
 msgstr ""
 
+#: src/libaudgui/jump-to-time.c:75
+#, fuzzy
+msgid "Jump to Time"
+msgstr "/Hoppa till tiden"
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr ""
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Export Playlist"
+msgstr "Ladda spellista"
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Import Playlist"
+msgstr "Ladda spellista"
+
+#: src/libaudgui/playlists.c:71
+#, fuzzy, c-format
+msgid "Overwrite %s?"
+msgstr "Skriv över"
+
 #: src/libaudgui/ui_about.c:71
 #, fuzzy
 msgid "About Audacious"
@@ -1243,21 +1231,21 @@ msgstr "/Rensa kön"
 msgid "Close on Jump"
 msgstr "Stäng"
 
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:240
 #, fuzzy
 msgid "Playlist Manager"
 msgstr "/Fortsätt ej i spellista"
 
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:264
 msgid "Entries"
 msgstr ""
 
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:285
 #, fuzzy
 msgid "_Rename"
 msgstr "/Byt namn"
 
-#: src/libaudgui/ui_playlist_manager.c:251
+#: src/libaudgui/ui_playlist_manager.c:309
 #, fuzzy
 msgid "_Close dialog on activating playlist"
 msgstr "Stäng"
@@ -1271,6 +1259,12 @@ msgstr ""
 msgid "Add URL"
 msgstr "Lägg till URL..."
 
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+
 #: src/libeggsmclient/eggdesktopfile.c:165
 msgid "File is not a valid .desktop file"
 msgstr ""
@@ -1280,25 +1274,25 @@ msgstr ""
 msgid "Unrecognized desktop file Version '%s'"
 msgstr "%s: okänt val `--%s'\n"
 
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:967
 #, fuzzy, c-format
 msgid "Starting %s"
 msgstr "Mixerinställningar:"
 
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1108
 msgid "Application does not accept documents on command line"
 msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1176
 #, fuzzy, c-format
 msgid "Unrecognized launch option: %d"
 msgstr "%s: okänt val `--%s'\n"
 
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1375
 msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
 msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1396
 msgid "Not a launchable item"
 msgstr ""
 
@@ -1333,6 +1327,38 @@ msgid "Show session management options"
 msgstr "Visa fönsterhanterarens dekorationer"
 
 #, fuzzy
+#~ msgid "Replay Gain"
+#~ msgstr "ReplayGain"
+
+#, fuzzy
+#~ msgid "<b>Bit Depth</b>"
+#~ msgstr "_Filter:"
+
+#, fuzzy
+#~ msgid "<b>Volume Control</b>"
+#~ msgstr "Volymkontrol:"
+
+#, fuzzy
+#~ msgid "<b>Mode</b>"
+#~ msgstr "_Filter:"
+
+#, fuzzy
+#~ msgid "<b>Clipping Prevention</b>"
+#~ msgstr "bmp: Konfiguration av MPEG-ljudinsticksmodul"
+
+#, fuzzy
+#~ msgid "Enable clipping prevention"
+#~ msgstr "Aktivera klippskydd"
+
+#, fuzzy
+#~ msgid "<b>Audio System</b>"
+#~ msgstr "Förinställningar"
+
+#, fuzzy
+#~ msgid "Current output plugin:"
+#~ msgstr "eSound-uppspelningsinsticksmodul"
+
+#, fuzzy
 #~ msgid "%s: Unable to open display, exiting.\n"
 #~ msgstr "BMP: Kunde ej öppna för visning, avslutar."
 
@@ -1838,10 +1864,6 @@ msgstr "Visa fönsterhanterarens dekorationer"
 #~ msgid "_Effect plugin list:"
 #~ msgstr "Effektinsticksmoduler"
 
-#, fuzzy
-#~ msgid "Jump to Time"
-#~ msgstr "/Hoppa till tiden"
-
 #~ msgid "minutes:seconds"
 #~ msgstr "minuter:sekunder"
 
@@ -3683,9 +3705,6 @@ msgstr "Visa fönsterhanterarens dekorationer"
 #~ msgid "MPEG Level:"
 #~ msgstr "MPEG-nivå:"
 
-#~ msgid "Bit rate:"
-#~ msgstr "Bit-hastighet:"
-
 #~ msgid "Sample rate:"
 #~ msgstr "Uppsamlingstakt:"
 
@@ -3940,9 +3959,6 @@ msgstr "Visa fönsterhanterarens dekorationer"
 #~ msgid "About %s"
 #~ msgstr "Om"
 
-#~ msgid "OSS Output Plugin"
-#~ msgstr "OSS-uppspelningsinsticksmodul"
-
 #~ msgid "About OSS Driver"
 #~ msgstr "Om OSS-drivrutinen"
 
@@ -4630,10 +4646,6 @@ msgstr "Visa fönsterhanterarens dekorationer"
 #~ msgstr "Kolla i underkataloger"
 
 #, fuzzy
-#~ msgid "<b>Other options</b>"
-#~ msgstr "_Filter:"
-
-#, fuzzy
 #~ msgid "BMP Equalizer Preferences"
 #~ msgstr "BMP Equalizer"
 
@@ -4815,9 +4827,6 @@ msgstr "Visa fönsterhanterarens dekorationer"
 #~ msgid "bmp: Error: File exists!"
 #~ msgstr "bmp: Fel: Filen finns redan!"
 
-#~ msgid "Overwrite"
-#~ msgstr "Skriv över"
-
 #~ msgid "Unknown filetype for %s"
 #~ msgstr "%s är av okänd filtyp"
 
diff --git a/po/tr.po b/po/tr.po
index e86ddb8..978fdd0 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -11,7 +11,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: audi-temel\n"
 "Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
+"POT-Creation-Date: 2011-07-05 22:45+0200\n"
 "PO-Revision-Date: 2007-12-23 00:26+0200\n"
 "Last-Translator: Murat Senel <muratasenel at gmail.com>\n"
 "Language-Team:  <tr at li.org>\n"
@@ -21,6 +21,17 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "X-Generator: KBabel 1.11.4\n"
 
+#: src/audacious/adder.c:71
+msgid "Searching ..."
+msgstr ""
+
+#: src/audacious/adder.c:99
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] ""
+msgstr[1] ""
+
 #: src/audacious/chardet.c:37
 msgid "  (invalid UTF-8)"
 msgstr "  (geçersiz UTF-8)"
@@ -105,113 +116,113 @@ msgstr "Estonyaca:"
 msgid "Finnish:"
 msgstr "Fince:"
 
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:220
 msgid "French:"
 msgstr "Fransızca:"
 
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:226
 msgid "German:"
 msgstr "Almanca:"
 
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:233
 msgid "Georgian:"
 msgstr "Gürcüce:"
 
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:236
 msgid "Greek:"
 msgstr "Yunanca:"
 
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:241
 msgid "Hindi:"
 msgstr "Hintçe:"
 
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:244
 msgid "Hungarian:"
 msgstr "Macarca:"
 
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:248
 msgid "Italian:"
 msgstr "Ä°talyanca:"
 
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:252
 msgid "Japanese:"
 msgstr "Japonca:"
 
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:255
 msgid "Korean:"
 msgstr "Korece:"
 
-#: src/audacious/credits.c:256
+#: src/audacious/credits.c:258
 #, fuzzy
 msgid "Latvian:"
 msgstr "Hırvatça:"
 
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:261
 msgid "Lithuanian:"
 msgstr "Litvanyaca:"
 
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:265
 msgid "Macedonian:"
 msgstr "Makedonca:"
 
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:268
 msgid "Polish:"
 msgstr "Lehçe:"
 
-#: src/audacious/credits.c:271
+#: src/audacious/credits.c:274
 #, fuzzy
 msgid "Portuguese:"
 msgstr "Brezilya Portekizcesi:"
 
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:277
 msgid "Romanian:"
 msgstr "Romanca:"
 
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:281
 msgid "Russian:"
 msgstr "Rusça:"
 
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:285
 msgid "Serbian (Latin):"
 msgstr "Sırpça (Latin):"
 
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:288
 msgid "Serbian (Cyrillic):"
 msgstr "Sırpça (Kiril):"
 
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:291
 msgid "Simplified Chinese:"
 msgstr "Basitleştirilmiş Çince:"
 
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:294
 msgid "Slovak:"
 msgstr "Slovakça:"
 
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:297
 msgid "Spanish:"
 msgstr "Ä°spanyolca:"
 
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:304
 msgid "Swedish:"
 msgstr "İsveçce:"
 
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:307
 msgid "Traditional Chinese:"
 msgstr "Geleneksel Çince:"
 
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:312
 msgid "Turkish:"
 msgstr "Türkçe:"
 
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:316
 msgid "Ukrainian:"
 msgstr "Ukraynaca:"
 
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:319
 msgid "Welsh:"
 msgstr "Galce:"
 
-#: src/audacious/drct.c:254
+#: src/audacious/drct.c:256
 #, fuzzy
 msgid "Temporary Playlist"
 msgstr "Parça Listesi Yükle"
@@ -221,80 +232,65 @@ msgstr "Parça Listesi Yükle"
 msgid "Error importing Winamp EQF file '%s'"
 msgstr ""
 
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr ""
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] ""
-msgstr[1] ""
-
-#: src/audacious/main.c:247
+#: src/audacious/main.c:256
 msgid "Skip backwards in playlist"
 msgstr "Parça listesinde geri git"
 
-#: src/audacious/main.c:248
+#: src/audacious/main.c:257
 msgid "Start playing current playlist"
 msgstr "Mevcut parça listesini çal"
 
-#: src/audacious/main.c:249
+#: src/audacious/main.c:258
 msgid "Pause current song"
 msgstr "Çalan şarkıyı beklet"
 
-#: src/audacious/main.c:250
+#: src/audacious/main.c:259
 msgid "Stop current song"
 msgstr "Çalan şarkıyı durdur"
 
-#: src/audacious/main.c:251
+#: src/audacious/main.c:260
 msgid "Pause if playing, play otherwise"
 msgstr "Çalıyorsa beklet, değilse çal"
 
-#: src/audacious/main.c:252
+#: src/audacious/main.c:261
 msgid "Skip forward in playlist"
 msgstr "Parça listesinde ileri git"
 
-#: src/audacious/main.c:253
+#: src/audacious/main.c:262
 msgid "Display Jump to File dialog"
 msgstr "Dosya Atla penceresini göster"
 
-#: src/audacious/main.c:254
+#: src/audacious/main.c:263
 #, fuzzy
 msgid "Add files to the playlist"
 msgstr "Parça listesine dosya ekle."
 
-#: src/audacious/main.c:255
+#: src/audacious/main.c:264
 msgid "Add new files to a temporary playlist"
 msgstr "Geçici parça listesine yeni dosya ekle"
 
-#: src/audacious/main.c:256
+#: src/audacious/main.c:265
 msgid "Display the main window"
 msgstr "Ana pencereyi göster"
 
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr "Açık olan tüm Audacious pencerelerini göster"
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:266
 #, fuzzy
 msgid "Show version"
 msgstr "Oynatıcıyı Göster"
 
-#: src/audacious/main.c:259
+#: src/audacious/main.c:267
 msgid "Print debugging messages"
 msgstr ""
 
-#: src/audacious/main.c:260
+#: src/audacious/main.c:268
 msgid "FILE..."
 msgstr "DOSYA..."
 
-#: src/audacious/main.c:272
+#: src/audacious/main.c:280
 msgid "- play multimedia files"
 msgstr "- çoklu ortam dosyalarını çal"
 
-#: src/audacious/main.c:282
+#: src/audacious/main.c:290
 #, c-format
 msgid ""
 "%s: %s\n"
@@ -303,7 +299,7 @@ msgstr ""
 "%s: %s\n"
 "Daha fazla bilgi için `%s --help' komutunu kullanın.\n"
 
-#: src/audacious/main.c:395
+#: src/audacious/main.c:407
 msgid ""
 "Audacious seems to be already running but is not responding.  You can start "
 "another instance of the program, but please be warned that this can cause "
@@ -311,265 +307,236 @@ msgid ""
 "message.  Press OK to start Audacious or Cancel to quit."
 msgstr ""
 
-#: src/audacious/main.c:558
+#: src/audacious/main.c:572
 msgid "Audacious"
 msgstr "Audacious"
 
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:381
 #, c-format
 msgid "No decoder found for %s."
 msgstr ""
 
-#: src/audacious/playback.c:519
+#: src/audacious/playback.c:531
 msgid "Buffering ..."
 msgstr ""
 
-#: src/audacious/playlist-new.c:288
+#: src/audacious/playlist-new.c:303
 #, fuzzy
 msgid "Untitled Playlist"
 msgstr "Yeni Parça Listesi"
 
-#: src/audacious/ui_preferences.c:88
+#: src/audacious/ui_preferences.c:87
 msgid "Audio"
 msgstr "Ses"
 
-#: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:88
 msgid "Network"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:89 src/audacious/ui_preferences.c:1556
 msgid "Playlist"
 msgstr "Parça Listesi"
 
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:90
 msgid "Plugins"
 msgstr "Eklentiler"
 
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:204
 msgid "Artist"
 msgstr "Sanatçı"
 
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:97 src/libaudgui/infopopup.c:206
 msgid "Album"
 msgstr "Albüm"
 
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:202
+#: src/libaudgui/ui_playlist_manager.c:263
 msgid "Title"
 msgstr "Başlık"
 
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:99
 msgid "Tracknumber"
 msgstr "Parça numarası"
 
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:208
 msgid "Genre"
 msgstr "Tür"
 
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:101
 msgid "Filename"
 msgstr "Dosya adı"
 
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:102
 msgid "Filepath"
 msgstr "Dosya yolu"
 
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:103
 msgid "Date"
 msgstr "Tarih"
 
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:104 src/libaudgui/infopopup.c:210
 msgid "Year"
 msgstr "Yıl"
 
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:105
 msgid "Comment"
 msgstr "Yorum"
 
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:106
 msgid "Codec"
 msgstr "Kodlayıcı"
 
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:107
 msgid "Quality"
 msgstr "Kalite"
 
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:112
 msgid "None"
 msgstr "Hiçbiri"
 
-#: src/audacious/ui_preferences.c:115
+#: src/audacious/ui_preferences.c:113
 msgid "Japanese"
 msgstr "Japonca"
 
-#: src/audacious/ui_preferences.c:116
+#: src/audacious/ui_preferences.c:114
 msgid "Taiwanese"
 msgstr "Tayvanca"
 
-#: src/audacious/ui_preferences.c:117
+#: src/audacious/ui_preferences.c:115
 msgid "Chinese"
 msgstr "Çince"
 
-#: src/audacious/ui_preferences.c:118
+#: src/audacious/ui_preferences.c:116
 msgid "Korean"
 msgstr "Korece"
 
-#: src/audacious/ui_preferences.c:119
+#: src/audacious/ui_preferences.c:117
 msgid "Russian"
 msgstr "Rusça"
 
-#: src/audacious/ui_preferences.c:120
+#: src/audacious/ui_preferences.c:118
 msgid "Greek"
 msgstr "Yunanca"
 
-#: src/audacious/ui_preferences.c:121
+#: src/audacious/ui_preferences.c:119
 msgid "Hebrew"
 msgstr "Ä°branice"
 
-#: src/audacious/ui_preferences.c:122
+#: src/audacious/ui_preferences.c:120
 msgid "Turkish"
 msgstr "Türkçe"
 
-#: src/audacious/ui_preferences.c:123
+#: src/audacious/ui_preferences.c:121
 msgid "Arabic"
 msgstr "Arapça"
 
-#: src/audacious/ui_preferences.c:124
+#: src/audacious/ui_preferences.c:122
 #, fuzzy
 msgid "Polish"
 msgstr "Lehçe:"
 
-#: src/audacious/ui_preferences.c:125
+#: src/audacious/ui_preferences.c:123
 msgid "Baltic"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:126
+#: src/audacious/ui_preferences.c:124
 msgid "Universal"
 msgstr "Evrensel"
 
 #: src/audacious/ui_preferences.c:146
 #, fuzzy
-msgid "<b>Bit Depth</b>"
-msgstr "<b>Biçim Tanıma</b>"
+msgid "Single track mode"
+msgstr "Parça bilgilerini göster"
 
 #: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:148
 #, fuzzy
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
-"<span size=\"small\">Tüm müzik yayınları, bu örnekleme oranına "
-"dönüştürülecek.\n"
-"Bu, ses kartının veya çıktı eklentisinin desteklediği\n"
-"azami örnekleme oranı olacaktır.</span>"
+msgid "Album mode"
+msgstr "Albüm: "
 
-#: src/audacious/ui_preferences.c:151
-msgid "<b>Volume Control</b>"
-msgstr "<b>Ses Kontrolü</b>"
+#: src/audacious/ui_preferences.c:150
+#, fuzzy
+msgid "<b>Output Settings</b>"
+msgstr "<b>Biçim Tanıma</b>"
 
 #: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr "Yazılımın ses kontrolünü kullan"
-
-#: src/audacious/ui_preferences.c:154
 #, fuzzy
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
-"Yazılımın ses kontrolünü kullan. Bu, ses sisteminizin sesi kontrol edemediği "
-"durumlarda kullanışlı olacaktır."
+msgid "Bit depth:"
+msgstr "<b>Biçim Tanıma</b>"
 
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
-msgstr ""
+#: src/audacious/ui_preferences.c:155
+msgid "Buffer size:"
+msgstr "Tampon büyüklüğü:"
 
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
+#: src/audacious/ui_preferences.c:157
+msgid "ms"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:160
+#: src/audacious/ui_preferences.c:158
 #, fuzzy
-msgid "Amplify untagged files:"
-msgstr "- çoklu ortam dosyalarını çal"
+msgid "Use software volume control (not recommended)"
+msgstr "Yazılımın ses kontrolünü kullan"
 
-#: src/audacious/ui_preferences.c:164
+#: src/audacious/ui_preferences.c:160
 #, fuzzy
 msgid "<b>Replay Gain</b>"
 msgstr "<b>Vekil Sunucu Seçenekleri</b>"
 
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:161
 #, fuzzy
 msgid "Enable Replay Gain"
 msgstr "Vekil sunucu kullanımını etkinleştir"
 
-#: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>Parça Bilgisi</b>"
-
-#: src/audacious/ui_preferences.c:168
-#, fuzzy
-msgid "Single track mode"
-msgstr "Parça bilgilerini göster"
-
-#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "Albüm: "
+#: src/audacious/ui_preferences.c:164
+msgid "Prevent clipping (recommended)"
+msgstr ""
 
-#: src/audacious/ui_preferences.c:172
+#: src/audacious/ui_preferences.c:166
 #, fuzzy
 msgid "<b>Adjust Levels</b>"
 msgstr "<b>Fare tekerleÄŸi</b>"
 
-#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "<b>Açılır Pencere Bilgisi</b>"
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify all files:"
+msgstr ""
 
-#: src/audacious/ui_preferences.c:176
-msgid "Enable clipping prevention"
+#: src/audacious/ui_preferences.c:169 src/audacious/ui_preferences.c:172
+msgid "dB"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:170
+#, fuzzy
+msgid "Amplify untagged files:"
+msgstr "- çoklu ortam dosyalarını çal"
+
+#: src/audacious/ui_preferences.c:175
 msgid "Proxy hostname:"
 msgstr "Vekil sunucu makine adı:"
 
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:176
 msgid "Proxy port:"
 msgstr "Vekil sunucu portu:"
 
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:179
 msgid "Proxy username:"
 msgstr "Vekil sunucu kullanıcı adı:"
 
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:180
 msgid "Proxy password:"
 msgstr "Vekil sunucu parolası:"
 
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:184
 msgid "<b>Proxy Configuration</b>"
 msgstr "<b>Vekil Sunucu Seçenekleri</b>"
 
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:185
 msgid "Enable proxy usage"
 msgstr "Vekil sunucu kullanımını etkinleştir"
 
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:187
 msgid "Use authentication with proxy"
 msgstr "Vekil sunucu ile yetkilendirme kullan"
 
-#: src/audacious/ui_preferences.c:197
+#: src/audacious/ui_preferences.c:189
 msgid ""
 "<span size=\"small\">Changing these settings will require a restart of "
 "Audacious.</span>"
@@ -577,15 +544,15 @@ msgstr ""
 "<span size=\"small\">Bu ayarların değiştirilmesi Audacious'un yeniden "
 "başlatılmasını gerektirecektir.</span>"
 
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
 msgid "Auto character encoding detector for:"
 msgstr "Otomatik karakter kodlama bulucu:"
 
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
 msgid "Fallback character encodings:"
 msgstr "Geri düşüm karakter kodlaması:"
 
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
 msgid ""
 "List of character encodings used for fall back conversion of metadata. If "
 "automatic character encoding detector failed or has been disabled, encodings "
@@ -597,46 +564,46 @@ msgstr ""
 "veya etkin değilse, bu listedeki kodlamalar parça bilgisi kodlaması olarak "
 "varsayılır ve bu kodlamalardan UTF-8'e geri düşüm dönüşümü denenir."
 
-#: src/audacious/ui_preferences.c:213
+#: src/audacious/ui_preferences.c:205
 #, fuzzy
 msgid "<b>Behavior</b>"
 msgstr "<b>Biçim Tanıma</b>"
 
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:206
 msgid "Continue playback on startup"
 msgstr "Başlatıldığında parçayı kaldığı yerden oynat"
 
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:208
 msgid "Advance when the current song is deleted"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:218
+#: src/audacious/ui_preferences.c:210
 #, fuzzy
 msgid "Clear the playlist when opening files"
 msgstr "Eşleşen girdilerle yeni bir parça listesi oluştur"
 
-#: src/audacious/ui_preferences.c:220
+#: src/audacious/ui_preferences.c:212
 #, fuzzy
 msgid "Open files in a temporary playlist"
 msgstr "Geçici parça listesine yeni dosya ekle"
 
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:214
 msgid "<b>Metadata</b>"
 msgstr "<b>Parça Bilgisi</b>"
 
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:454
 msgid "Category"
 msgstr "Kategori"
 
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:682
 msgid "Popup Information Settings"
 msgstr "Açılır Pencere Bilgisi Ayarları"
 
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:691
 msgid "<b>Cover image retrieve</b>"
 msgstr "<b>Kapak resmi getirme</b>"
 
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:696
 msgid ""
 "While searching for the album's cover, Audacious looks for certain words in "
 "the filename. You can specify those words in the lists below, separated "
@@ -645,99 +612,99 @@ msgstr ""
 "Albüm kapakları için ararken, Audacious dosya ismindeki belirli kelimeleri "
 "kullanır. Bu kelimeleri, altta virgülle ayrılmış listede belirtebilirsiniz."
 
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:713
 msgid "Exclude:"
 msgstr "Dahil etme:"
 
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:720
 msgid "Include:"
 msgstr "Dahil et:"
 
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:737
 msgid "Recursively search for cover"
 msgstr "Kapak için özyinelemeli olarak ara"
 
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:747
 msgid "Search depth: "
 msgstr "Derinliği araştır:"
 
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:761
 msgid "Use per-file cover"
 msgstr "Her dosya için kapak kullan"
 
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:764
 msgid "<b>Miscellaneous</b>"
 msgstr "<b>Çeşitli</b>"
 
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:773
 msgid "Show Progress bar for the current track"
 msgstr "Şuan çalan parça için İlerleme Çubuğunu göster"
 
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:783
 msgid "Delay until filepopup comes up: "
 msgstr "Açılır pencere açılana kadar bekle: "
 
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1283
 msgid "<b>Song Display</b>"
 msgstr "<b>Parça Gösterimi</b>"
 
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1292
 msgid "Show song numbers"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1303
 msgid "Show leading zeroes (02:00 instead of 2:00)"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1325
 msgid "Show information about titlestring format"
 msgstr "Başlık dizisi biçimi hakkında bilgi göster"
 
-#: src/audacious/ui_preferences.c:1514
+#: src/audacious/ui_preferences.c:1339
 msgid "TITLE"
 msgstr "BAÅžLIK"
 
-#: src/audacious/ui_preferences.c:1515
+#: src/audacious/ui_preferences.c:1340
 msgid "ARTIST - TITLE"
 msgstr "SANATÇI - BAŞLIK"
 
-#: src/audacious/ui_preferences.c:1516
+#: src/audacious/ui_preferences.c:1341
 msgid "ARTIST - ALBUM - TITLE"
 msgstr "SANATÇI - ALBÜM - BAŞLIK"
 
-#: src/audacious/ui_preferences.c:1517
+#: src/audacious/ui_preferences.c:1342
 msgid "ARTIST - ALBUM - TRACK. TITLE"
 msgstr "SANATÇI - ALBÜM - PARÇA - BAŞLIK"
 
-#: src/audacious/ui_preferences.c:1518
+#: src/audacious/ui_preferences.c:1343
 msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
 msgstr "SANATÇI [ ALBÜM ] - PARÇA - BAŞLIK"
 
-#: src/audacious/ui_preferences.c:1519
+#: src/audacious/ui_preferences.c:1344
 msgid "ALBUM - TITLE"
 msgstr "ALBÃœM - BAÅžLIK"
 
-#: src/audacious/ui_preferences.c:1520
+#: src/audacious/ui_preferences.c:1345
 msgid "Custom"
 msgstr "Özel"
 
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1354
 msgid "Custom string:"
 msgstr "Özel dizi:"
 
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1361
 msgid "Title format:"
 msgstr "Başlık biçimi:"
 
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1372
 msgid "<b>Popup Information</b>"
 msgstr "<b>Açılır Pencere Bilgisi</b>"
 
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1387
 msgid "Show popup information for playlist entries"
 msgstr "Parça listesi girdileri için açılır pencere bilgisini göster"
 
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1388
 msgid ""
 "Toggles popup information window for the pointed entry in the playlist. The "
 "window shows title of song, name of album, genre, year of publish, track "
@@ -747,54 +714,47 @@ msgstr ""
 "Pencere, şarkı başlığını, albüm adını, türünü, yayınlanma yılını, parça, "
 "parça numarasını, uzunluğunu ve resimi gösterir."
 
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1397
 msgid "Edit settings for popup information"
 msgstr "Açılır pencere bilgisi için ayarları düzenle"
 
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>Ses Sistemi</b>"
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "Tampon büyüklüğü:"
-
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
-msgstr "Mevcut çıkış eklentisi:"
+#: src/audacious/ui_preferences.c:1497
+#, fuzzy
+msgid "Output plugin:"
+msgstr "GiriÅŸ eklentisi: %s"
 
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
 #, fuzzy
 msgid "Transport"
 msgstr "Çevirmenler"
 
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1556
 msgid "Input"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
 #, fuzzy
 msgid "Effect"
 msgstr "<b>Efektler</b>"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
 msgid "Visualization"
 msgstr "Canlandırma"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1557
 msgid "General"
 msgstr ""
 
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1597
 msgid "Audacious Preferences"
 msgstr "Audacious Seçenekleri"
 
-#: src/audacious/util.c:161
+#: src/audacious/util.c:155
 #, c-format
 msgid "Could not create directory (%s): %s\n"
 msgstr "Dizin oluşturulamadı (%s): %s\n"
 
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:264
 msgid "Position not found."
 msgstr ""
 
@@ -813,22 +773,24 @@ msgstr "stereo"
 
 #: src/libaudcore/tuple.c:689
 #, c-format
-msgid "%d channels"
-msgstr ""
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] ""
+msgstr[1] ""
 
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/confirm.c:73
 #, c-format
 msgid ""
 "Are you sure you want to close %s?  If you do, any changes made since the "
 "playlist was exported will be lost."
 msgstr ""
 
-#: src/libaudgui/confirm.c:77
+#: src/libaudgui/confirm.c:86
 #, fuzzy
 msgid "_Don't show this message again"
 msgstr "Bu uyarıyı bir daha gösterme"
 
-#: src/libaudgui/confirm.c:115
+#: src/libaudgui/confirm.c:124
 #, fuzzy
 msgid "Rename Playlist"
 msgstr "Parça Listesini Kaydet"
@@ -891,11 +853,11 @@ msgstr "Ekolayzırı Göster"
 msgid "Preamp"
 msgstr ""
 
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:212
 msgid "Track Number"
 msgstr "Parça Numarası"
 
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:214
 msgid "Track Length"
 msgstr "Parça Uzunluğu"
 
@@ -1127,6 +1089,29 @@ msgstr "%d kb/s"
 msgid "No info available for %s.\n"
 msgstr ""
 
+#: src/libaudgui/jump-to-time.c:75
+msgid "Jump to Time"
+msgstr "Zamana Atla"
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr ""
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Export Playlist"
+msgstr "Parça Listesi Yükle"
+
+#: src/libaudgui/playlists.c:39
+#, fuzzy
+msgid "Import Playlist"
+msgstr "Parça Listesi Yükle"
+
+#: src/libaudgui/playlists.c:71
+#, c-format
+msgid "Overwrite %s?"
+msgstr ""
+
 #: src/libaudgui/ui_about.c:71
 msgid "About Audacious"
 msgstr "Audacious Hakkında"
@@ -1188,19 +1173,19 @@ msgstr "A-B Temizle"
 msgid "Close on Jump"
 msgstr "Geçişten sonra kapat"
 
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:240
 msgid "Playlist Manager"
 msgstr "Parça Listesi Yöneticisi"
 
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:264
 msgid "Entries"
 msgstr "Girdiler"
 
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:285
 msgid "_Rename"
 msgstr "_Yeniden adlandır"
 
-#: src/libaudgui/ui_playlist_manager.c:251
+#: src/libaudgui/ui_playlist_manager.c:309
 #, fuzzy
 msgid "_Close dialog on activating playlist"
 msgstr "Açtıktan sonra pencereyi kapat"
@@ -1213,6 +1198,12 @@ msgstr ""
 msgid "Add URL"
 msgstr ""
 
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+
 #: src/libeggsmclient/eggdesktopfile.c:165
 msgid "File is not a valid .desktop file"
 msgstr ""
@@ -1222,25 +1213,25 @@ msgstr ""
 msgid "Unrecognized desktop file Version '%s'"
 msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:967
 #, c-format
 msgid "Starting %s"
 msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1108
 msgid "Application does not accept documents on command line"
 msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1176
 #, c-format
 msgid "Unrecognized launch option: %d"
 msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1375
 msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
 msgstr ""
 
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1396
 msgid "Not a launchable item"
 msgstr ""
 
@@ -1275,6 +1266,45 @@ msgstr "Pencere yöneticisi dekorasyonunu göster"
 msgid "Show session management options"
 msgstr "Pencere yöneticisi dekorasyonunu göster"
 
+#, fuzzy
+#~ msgid ""
+#~ "All streams will be converted to this bit depth.\n"
+#~ "This should be the max supported bit depth of\n"
+#~ "the sound card or output plugin."
+#~ msgstr ""
+#~ "<span size=\"small\">Tüm müzik yayınları, bu örnekleme oranına "
+#~ "dönüştürülecek.\n"
+#~ "Bu, ses kartının veya çıktı eklentisinin desteklediği\n"
+#~ "azami örnekleme oranı olacaktır.</span>"
+
+#~ msgid "<b>Volume Control</b>"
+#~ msgstr "<b>Ses Kontrolü</b>"
+
+#, fuzzy
+#~ msgid ""
+#~ "Use software volume control. This may be useful for situations where your "
+#~ "audio system does not support controlling the playback volume."
+#~ msgstr ""
+#~ "Yazılımın ses kontrolünü kullan. Bu, ses sisteminizin sesi kontrol "
+#~ "edemediği durumlarda kullanışlı olacaktır."
+
+#, fuzzy
+#~ msgid "<b>Mode</b>"
+#~ msgstr "<b>Parça Bilgisi</b>"
+
+#, fuzzy
+#~ msgid "<b>Clipping Prevention</b>"
+#~ msgstr "<b>Açılır Pencere Bilgisi</b>"
+
+#~ msgid "<b>Audio System</b>"
+#~ msgstr "<b>Ses Sistemi</b>"
+
+#~ msgid "Current output plugin:"
+#~ msgstr "Mevcut çıkış eklentisi:"
+
+#~ msgid "Display all open Audacious windows"
+#~ msgstr "Açık olan tüm Audacious pencerelerini göster"
+
 #~ msgid "%s: Unable to open display, exiting.\n"
 #~ msgstr "%s: Görüntü açılamıyor, çıkıyor.\n"
 
@@ -1491,9 +1521,6 @@ msgstr "Pencere yöneticisi dekorasyonunu göster"
 #~ msgid "No input plugin recognized this file"
 #~ msgstr "Hiç bir giriş eklentisi bu dosyayı tanıyamadı"
 
-#~ msgid "Input plugin: %s"
-#~ msgstr "GiriÅŸ eklentisi: %s"
-
 #~ msgid ""
 #~ "<b><big>No output plugin selected.</big></b>\n"
 #~ "You have not selected an output plugin."
@@ -1536,9 +1563,6 @@ msgstr "Pencere yöneticisi dekorasyonunu göster"
 #~ "Bu, ses kartının veya çıktı eklentisinin desteklediği\n"
 #~ "azami örnekleme oranı olacaktır.</span>"
 
-#~ msgid "<b>Format Detection</b>"
-#~ msgstr "<b>Biçim Tanıma</b>"
-
 #~ msgid "Detect file formats by extension."
 #~ msgstr "Uzantıya göre dosya biçimini belirle"
 
@@ -1637,9 +1661,6 @@ msgstr "Pencere yöneticisi dekorasyonunu göster"
 #~ msgid "Load metadata (tag information) from music files."
 #~ msgstr "Parça bilgisini (etiket bilgisi) müzik dosyalarından yükle"
 
-#~ msgid "Jump to Time"
-#~ msgstr "Zamana Atla"
-
 #~ msgid "minutes:seconds"
 #~ msgstr "dakika:saniye"
 
diff --git a/po/uk.po b/po/uk.po
index 32b0f7c..e9ffa86 100644
--- a/po/uk.po
+++ b/po/uk.po
@@ -1,4604 +1,1242 @@
-# Translation of audacious.pot to Ukrainian for Beep Media Player.
-# Copyright (C) 2005 Mykola Lynnyk<definer at users.sf.net> 
-# Переклад здійснено на основі перекладу XMMS 
-# Дмитра Ковальова 
-# Based on XMMS translation by Dmytro Koval'ov <kov at tokyo.email.ne.jp> 
+# Ukrainian translation for Audacious
+# Copyright (C) Audacious translators
+# This file is distributed under the same license as the Audacious package.
 #
+# Translators:
+# Kostyantyn Fedenko <fedenko at ukr.net>, 2011.
+# NaiLi Rootaerc <theism at mail.ru>, 2012.
+# Rax Garfield (http://biokillaz.com/), 2012.
 msgid ""
 msgstr ""
-"Project-Id-Version: bmp 0.9.7\n"
-"Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
-"PO-Revision-Date: 2005-12-17 11:01+0400\n"
-"Last-Translator: Mykola Lynnyk<pydefiner at gmail.com>\n"
-"Language-Team: Ukrainian <linux at linux.org.ua>\n"
-"Language: uk\n"
+"Project-Id-Version: Audacious\n"
+"Report-Msgid-Bugs-To: http://redmine.audacious-media-player.org/\n"
+"POT-Creation-Date: 2012-01-11 08:54-0500\n"
+"PO-Revision-Date: 2012-01-13 11:46+0000\n"
+"Last-Translator: NaiLi Rootaerc <theism at mail.ru>\n"
+"Language-Team: Ukrainian\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Language: uk\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
+
+#: src/audacious/adder.c:77
+msgid "Searching ..."
+msgstr "Пошук ..."
+
+#: src/audacious/adder.c:113
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] "Знайдено %d файл"
+msgstr[1] "Знайдено %d файли"
+msgstr[2] "Знайдено %d файлів"
 
-#: src/audacious/chardet.c:37
+#: src/audacious/chardet.c:39
 msgid "  (invalid UTF-8)"
 msgstr "  (недопустима послідовність Юнікод)"
 
-#: src/audacious/credits.c:35
-#, fuzzy
+#: src/audacious/credits.c:37
 msgid "Core developers:"
-msgstr "Разробники:"
+msgstr "Основні розробники:"
 
-#: src/audacious/credits.c:49
+#: src/audacious/credits.c:51
 msgid "Graphics:"
-msgstr ""
+msgstr "Графіка:"
 
-#: src/audacious/credits.c:54
-#, fuzzy
+#: src/audacious/credits.c:56
 msgid "Default skin:"
-msgstr "Основний (%s)"
+msgstr "Стандартна обкладинка:"
 
-#: src/audacious/credits.c:60
+#: src/audacious/credits.c:62
 msgid "Plugin development:"
-msgstr ""
+msgstr "Розробка модулів:"
 
-#: src/audacious/credits.c:83
+#: src/audacious/credits.c:85
 msgid "Patch authors:"
-msgstr ""
+msgstr "Автори патчів:"
 
-#: src/audacious/credits.c:126
-#, fuzzy
+#: src/audacious/credits.c:131
 msgid "1.x developers:"
-msgstr "Разробники:"
+msgstr "Розробники версії 1.x:"
 
-#: src/audacious/credits.c:148
-#, fuzzy
+#: src/audacious/credits.c:153
 msgid "BMP Developers:"
-msgstr "Разробники:"
+msgstr "Розробники BMP:"
 
-#: src/audacious/credits.c:180
-#, fuzzy
+#: src/audacious/credits.c:185
 msgid "Belarusian:"
-msgstr "Угорський"
+msgstr "Білоруська:"
 
-#: src/audacious/credits.c:183
+#: src/audacious/credits.c:188
 msgid "Basque:"
-msgstr ""
+msgstr "Баскська:"
 
-#: src/audacious/credits.c:186
+#: src/audacious/credits.c:191
 msgid "Brazilian Portuguese:"
-msgstr ""
+msgstr "Бразильська португальська:"
 
-#: src/audacious/credits.c:190
+#: src/audacious/credits.c:196
 msgid "Breton:"
-msgstr ""
+msgstr "Бретонська:"
 
-#: src/audacious/credits.c:193
-#, fuzzy
+#: src/audacious/credits.c:199
 msgid "Bulgarian:"
-msgstr "Угорський"
+msgstr "Болгарська:"
 
-#: src/audacious/credits.c:196
-#, fuzzy
+#: src/audacious/credits.c:202
 msgid "Catalan:"
-msgstr "Італійський:"
+msgstr "Каталонська:"
 
-#: src/audacious/credits.c:199
-#, fuzzy
+#: src/audacious/credits.c:206
 msgid "Chinese:"
-msgstr "Китайський:"
+msgstr "Китайська:"
 
-#: src/audacious/credits.c:202
-#, fuzzy
+#: src/audacious/credits.c:209
 msgid "Croatian:"
-msgstr "Знаходження:"
+msgstr "Хорватська:"
 
-#: src/audacious/credits.c:205
+#: src/audacious/credits.c:212
 msgid "Czech:"
-msgstr "Чеський:"
+msgstr "Чеська:"
 
-#: src/audacious/credits.c:208
+#: src/audacious/credits.c:215
 msgid "Dutch:"
-msgstr "Голладський:"
+msgstr "Нідерландська:"
 
-#: src/audacious/credits.c:212
-#, fuzzy
+#: src/audacious/credits.c:219
 msgid "Estonian:"
-msgstr "Румунський:"
+msgstr "Естонська:"
 
-#: src/audacious/credits.c:215
-#, fuzzy
+#: src/audacious/credits.c:222
 msgid "Finnish:"
-msgstr "Іспанський:"
+msgstr "Фінська:"
 
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:227
 msgid "French:"
-msgstr "Французький:"
+msgstr "Французька:"
 
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:233
 msgid "German:"
-msgstr "Німецький:"
+msgstr "Німецька:"
 
-#: src/audacious/credits.c:231
-#, fuzzy
+#: src/audacious/credits.c:240
 msgid "Georgian:"
-msgstr "Німецький:"
+msgstr "Грузинська:"
 
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:243
 msgid "Greek:"
-msgstr "Грецький:"
+msgstr "Грецька:"
 
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:248
 msgid "Hindi:"
-msgstr ""
+msgstr "Хінді:"
 
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:251
 msgid "Hungarian:"
-msgstr "Угорський"
+msgstr "Угорська:"
 
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:255
 msgid "Italian:"
-msgstr "Італійський:"
+msgstr "Італійська:"
 
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:260
 msgid "Japanese:"
-msgstr "Японський:"
+msgstr "Японська:"
 
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:263
 msgid "Korean:"
-msgstr "Корейський:"
+msgstr "Корейська:"
 
-#: src/audacious/credits.c:256
-#, fuzzy
+#: src/audacious/credits.c:266
 msgid "Latvian:"
-msgstr "Знаходження:"
+msgstr "Латиська:"
 
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:269
 msgid "Lithuanian:"
-msgstr "Литовський:"
+msgstr "Литовська:"
 
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:274
 msgid "Macedonian:"
-msgstr "Македонський"
+msgstr "Македонська:"
 
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:277
+msgid "Mexican Spanish:"
+msgstr "Іспанська мова, Мексика:"
+
+#: src/audacious/credits.c:280
 msgid "Polish:"
-msgstr "Польский:"
+msgstr "Польська:"
 
-#: src/audacious/credits.c:271
-#, fuzzy
+#: src/audacious/credits.c:287
 msgid "Portuguese:"
-msgstr "Порт:"
+msgstr "Португальська:"
 
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:290
 msgid "Romanian:"
-msgstr "Румунський:"
+msgstr "Румунська:"
 
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:294
 msgid "Russian:"
-msgstr "Російський:"
+msgstr "Російська:"
 
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:298
 msgid "Serbian (Latin):"
-msgstr ""
+msgstr "Сербська (латиниця):"
 
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:301
 msgid "Serbian (Cyrillic):"
-msgstr ""
+msgstr "Сербська (кирилиця):"
 
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:305
 msgid "Simplified Chinese:"
-msgstr ""
+msgstr "Спрощена китайська:"
 
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:308
 msgid "Slovak:"
-msgstr "Словацький"
+msgstr "Словацька:"
 
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:312
 msgid "Spanish:"
-msgstr "Іспанський:"
+msgstr "Іспанська:"
 
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:320
 msgid "Swedish:"
-msgstr "Шведський:"
+msgstr "Шведська:"
 
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:323
 msgid "Traditional Chinese:"
-msgstr ""
+msgstr "Традиційна китайська:"
 
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:329
 msgid "Turkish:"
-msgstr ""
+msgstr "Турецька:"
 
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:333
 msgid "Ukrainian:"
-msgstr "Український:"
+msgstr "Українська:"
 
-#: src/audacious/credits.c:316
-msgid "Welsh:"
-msgstr "Валлійський:"
+#: src/audacious/credits.c:338
+msgid "Vietnamese:"
+msgstr "В’єтнамська:"
 
-#: src/audacious/drct.c:254
-#, fuzzy
-msgid "Temporary Playlist"
-msgstr "Завантажии список програвання"
+#: src/audacious/credits.c:341
+msgid "Welsh:"
+msgstr "Валлійська:"
 
-#: src/audacious/equalizer_preset.c:186
+#: src/audacious/equalizer_preset.c:180
 #, c-format
 msgid "Error importing Winamp EQF file '%s'"
-msgstr ""
-
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr ""
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] ""
-msgstr[1] ""
+msgstr "Не вдалося імпортувати Winamp EQF файл '%s'"
 
-#: src/audacious/main.c:247
+#: src/audacious/main.c:243
 msgid "Skip backwards in playlist"
-msgstr "Перейти до попередньої пісні у списку"
+msgstr "Перейти до попередньої доріжки у списку"
 
-#: src/audacious/main.c:248
+#: src/audacious/main.c:244
 msgid "Start playing current playlist"
 msgstr "Почати програвати поточний список"
 
-#: src/audacious/main.c:249
+#: src/audacious/main.c:245
 msgid "Pause current song"
 msgstr "Призупинити поточну пісню"
 
-#: src/audacious/main.c:250
+#: src/audacious/main.c:246
 msgid "Stop current song"
 msgstr "Зупинити поточну пісню"
 
-#: src/audacious/main.c:251
+#: src/audacious/main.c:247
 msgid "Pause if playing, play otherwise"
 msgstr "Призупинити, якщо що-небуть програється, в іншому випадку програвати"
 
-#: src/audacious/main.c:252
+#: src/audacious/main.c:248
 msgid "Skip forward in playlist"
-msgstr "Перейти до наступної пісні у списку пісень"
+msgstr "Перейти до наступної доріжки у списку відтворення"
 
-#: src/audacious/main.c:253
-#, fuzzy
+#: src/audacious/main.c:249
 msgid "Display Jump to File dialog"
-msgstr "/Перейти до файлу"
+msgstr "Показати діалог переходу до файлу"
 
-#: src/audacious/main.c:254
-#, fuzzy
+#: src/audacious/main.c:250
 msgid "Add files to the playlist"
-msgstr "Не очищати список програвання"
+msgstr "Додати файли до списку відтворення"
 
-#: src/audacious/main.c:255
-#, fuzzy
+#: src/audacious/main.c:251
 msgid "Add new files to a temporary playlist"
-msgstr "Не очищати список програвання"
+msgstr "Додати нові файли до тимчасового списку відтворення"
 
-#: src/audacious/main.c:256
-#, fuzzy
+#: src/audacious/main.c:252
 msgid "Display the main window"
-msgstr "Показати головне вікно."
-
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr ""
+msgstr "Показати головне вікно"
 
-#: src/audacious/main.c:258
-#, fuzzy
+#: src/audacious/main.c:253
 msgid "Show version"
-msgstr "/Показати редактор списку пісень"
+msgstr "Показати версію"
 
-#: src/audacious/main.c:259
+#: src/audacious/main.c:254
 msgid "Print debugging messages"
-msgstr ""
+msgstr "Друкувати повідомлення про налагодження"
+
+#: src/audacious/main.c:255
+msgid "Headless mode (beta)"
+msgstr "Headless-режим (як демон і без X11, бета)"
 
-#: src/audacious/main.c:260
+#: src/audacious/main.c:256
 msgid "FILE..."
-msgstr ""
+msgstr "ФАЙЛ..."
 
-#: src/audacious/main.c:272
+#: src/audacious/main.c:268
 msgid "- play multimedia files"
-msgstr ""
+msgstr "- програти мультимедійні файли"
 
-#: src/audacious/main.c:282
+#: src/audacious/main.c:278
 #, c-format
 msgid ""
 "%s: %s\n"
 "Try `%s --help' for more information.\n"
 msgstr ""
+"%s: %s\n"
+"Спробуйте `%s --help' для отримання докладнішого опису.\n"
 
-#: src/audacious/main.c:395
-msgid ""
-"Audacious seems to be already running but is not responding.  You can start "
-"another instance of the program, but please be warned that this can cause "
-"data loss.  If Audacious is not running, you can safely ignore this "
-"message.  Press OK to start Audacious or Cancel to quit."
-msgstr ""
-
-#: src/audacious/main.c:558
+#: src/audacious/main.c:573
 msgid "Audacious"
-msgstr ""
+msgstr "Audacious"
 
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:307
 #, c-format
 msgid "No decoder found for %s."
-msgstr ""
+msgstr "Не знайдено декодер для %s."
 
-#: src/audacious/playback.c:519
-#, fuzzy
-msgid "Buffering ..."
-msgstr "Буфер"
+#: src/audacious/playlist-files.c:53
+#, c-format
+msgid "Cannot %s %s: unsupported file extension."
+msgstr "Неможливо %s %s: розширення файлу не підтримується."
 
-#: src/audacious/playlist-new.c:288
-#, fuzzy
-msgid "Untitled Playlist"
-msgstr "Зберегти список програвання"
+#: src/audacious/playlist-files.c:54
+msgid "save"
+msgstr "зберегти"
 
-#: src/audacious/ui_preferences.c:88
-#, fuzzy
-msgid "Audio"
-msgstr "Про Audacious"
+#: src/audacious/playlist-files.c:54
+msgid "load"
+msgstr "завантажити"
 
-#: src/audacious/ui_preferences.c:89
-#, fuzzy
-msgid "Replay Gain"
-msgstr "Підсилення при програванні"
+#: src/audacious/playlist-new.c:131
+msgid "New Playlist"
+msgstr "Новий список відтворення"
 
-#: src/audacious/ui_preferences.c:90
-msgid "Network"
+#: src/audacious/playlist-new.c:132
+msgid "Now Playing"
+msgstr "Зараз відтворюється"
+
+#: src/audacious/playlist-new.c:1630
+msgid ""
+"The playlist cannot be sorted because metadata scanning is still in progress"
+" (or has been disabled)."
 msgstr ""
+"Список відтворення неможливо відсортувати, поки сканування метаданих триває "
+"або вимкнено."
+
+#: src/audacious/ui_preferences.c:85
+msgid "Audio"
+msgstr "Звук"
+
+#: src/audacious/ui_preferences.c:86
+msgid "Network"
+msgstr "Мережа"
 
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:87 src/audacious/ui_preferences.c:1603
 msgid "Playlist"
-msgstr "Список програвання"
+msgstr "Список відтворення"
 
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:88
 msgid "Plugins"
 msgstr "Модулі"
 
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:94 src/libaudgui/infopopup.c:199
 msgid "Artist"
 msgstr "Виконавець"
 
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:95 src/libaudgui/infopopup.c:201
 msgid "Album"
 msgstr "Альбом"
 
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:197
+#: src/libaudgui/ui_playlist_manager.c:279
 msgid "Title"
 msgstr "Заголовок"
 
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:97
 msgid "Tracknumber"
 msgstr "Номер доріжки"
 
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:203
 msgid "Genre"
 msgstr "Стиль"
 
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:99
 msgid "Filename"
 msgstr "Ім'я файлу"
 
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:100
 msgid "Filepath"
 msgstr "Шлях до файлу"
 
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:101
 msgid "Date"
 msgstr "Дата"
 
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:205
 msgid "Year"
 msgstr "Рік"
 
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:103
 msgid "Comment"
 msgstr "Коментар"
 
-#: src/audacious/ui_preferences.c:108
-#, fuzzy
+#: src/audacious/ui_preferences.c:104
 msgid "Codec"
-msgstr "/Закрити"
+msgstr "Кодек"
 
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:105
 msgid "Quality"
 msgstr "Якість"
 
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:111
 msgid "None"
 msgstr "Нічого"
 
+#: src/audacious/ui_preferences.c:112
+msgid "Arabic"
+msgstr "Арабська"
+
+#: src/audacious/ui_preferences.c:113
+msgid "Baltic"
+msgstr "Балтійські мови"
+
+#: src/audacious/ui_preferences.c:114
+msgid "Chinese"
+msgstr "Китайська"
+
 #: src/audacious/ui_preferences.c:115
-#, fuzzy
-msgid "Japanese"
-msgstr "Японський:"
+msgid "Greek"
+msgstr "Грецька"
 
 #: src/audacious/ui_preferences.c:116
-#, fuzzy
-msgid "Taiwanese"
-msgstr "Японський:"
+msgid "Hebrew"
+msgstr "Іврит"
 
 #: src/audacious/ui_preferences.c:117
-#, fuzzy
-msgid "Chinese"
-msgstr "Китайський:"
+msgid "Japanese"
+msgstr "Японська"
 
 #: src/audacious/ui_preferences.c:118
-#, fuzzy
 msgid "Korean"
-msgstr "Корейський:"
+msgstr "Корейська"
 
 #: src/audacious/ui_preferences.c:119
-#, fuzzy
-msgid "Russian"
-msgstr "Російський:"
+msgid "Polish"
+msgstr "Польська"
 
 #: src/audacious/ui_preferences.c:120
-#, fuzzy
-msgid "Greek"
-msgstr "Грецький:"
+msgid "Russian"
+msgstr "Російська"
 
 #: src/audacious/ui_preferences.c:121
-msgid "Hebrew"
-msgstr ""
+msgid "Taiwanese"
+msgstr "Тайванська"
 
 #: src/audacious/ui_preferences.c:122
 msgid "Turkish"
-msgstr ""
+msgstr "Турецька"
 
-#: src/audacious/ui_preferences.c:123
-msgid "Arabic"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:124
-#, fuzzy
-msgid "Polish"
-msgstr "Польский:"
-
-#: src/audacious/ui_preferences.c:125
-#, fuzzy
-msgid "Baltic"
-msgstr "Кельтська"
-
-#: src/audacious/ui_preferences.c:126
-#, fuzzy
-msgid "Universal"
-msgstr "Стиль"
-
-#: src/audacious/ui_preferences.c:146
-#, fuzzy
-msgid "<b>Bit Depth</b>"
-msgstr "Бітова частота:"
+#: src/audacious/ui_preferences.c:144
+msgid "Album mode"
+msgstr "Режим альбому"
 
 #: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
+msgid "<b>Output Settings</b>"
+msgstr "<b>Параметри виводу</b>"
 
-#: src/audacious/ui_preferences.c:151
-#, fuzzy
-msgid "<b>Volume Control</b>"
-msgstr "Керування гучністю:"
+#: src/audacious/ui_preferences.c:149
+msgid "Bit depth:"
+msgstr "Амплітудна розрядність:"
 
 #: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr "Програмне керування гучністю"
+msgid "Buffer size:"
+msgstr "Розмір буфера:"
 
 #: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
-
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
-msgstr ""
+msgid "ms"
+msgstr "мс"
 
-#: src/audacious/ui_preferences.c:160
-msgid "Amplify untagged files:"
-msgstr ""
+#: src/audacious/ui_preferences.c:155
+msgid "Use software volume control (not recommended)"
+msgstr "Програмно керувати гучністю (не рекомендовано)"
 
-#: src/audacious/ui_preferences.c:164
-#, fuzzy
+#: src/audacious/ui_preferences.c:157
 msgid "<b>Replay Gain</b>"
-msgstr "<b>Ім'я файлу</b>"
+msgstr "<b>Replay Gain</b>"
 
-#: src/audacious/ui_preferences.c:165
-#, fuzzy
+#: src/audacious/ui_preferences.c:158
 msgid "Enable Replay Gain"
-msgstr "Вмикнути підсилення програвання"
+msgstr "Увімкнути Replay Gain"
 
-#: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>Інформація про пісню та виконавця</b>"
-
-#: src/audacious/ui_preferences.c:168
-#, fuzzy
-msgid "Single track mode"
-msgstr "/Інформація про пісню"
-
-#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "Альбом"
+#: src/audacious/ui_preferences.c:161
+msgid "Prevent clipping (recommended)"
+msgstr "Запобігати зрізанню (рекомендовано)"
 
-#: src/audacious/ui_preferences.c:172
-#, fuzzy
+#: src/audacious/ui_preferences.c:163
 msgid "<b>Adjust Levels</b>"
-msgstr "<b>Колесо миші</b>"
+msgstr "<b>Регулювати рівні</b>"
+
+#: src/audacious/ui_preferences.c:164
+msgid "Amplify all files:"
+msgstr "Підсилювати всі файли:"
 
-#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "Конфігурація програвача компакт-дисків"
+#: src/audacious/ui_preferences.c:166 src/audacious/ui_preferences.c:169
+msgid "dB"
+msgstr "дБ"
 
-#: src/audacious/ui_preferences.c:176
-#, fuzzy
-msgid "Enable clipping prevention"
-msgstr "Дозволити попередження перескакування звуку"
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify untagged files:"
+msgstr "Підсилювати непозначені файли:"
 
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:172
 msgid "Proxy hostname:"
-msgstr ""
+msgstr "Адреса проксі-сервера:"
 
-#: src/audacious/ui_preferences.c:181
-#, fuzzy
+#: src/audacious/ui_preferences.c:173
 msgid "Proxy port:"
-msgstr "Проксі:"
+msgstr "Порт:"
 
-#: src/audacious/ui_preferences.c:185
-#, fuzzy
+#: src/audacious/ui_preferences.c:176
 msgid "Proxy username:"
 msgstr "Ім'я користувача:"
 
-#: src/audacious/ui_preferences.c:186
-#, fuzzy
+#: src/audacious/ui_preferences.c:177
 msgid "Proxy password:"
 msgstr "Пароль:"
 
-#: src/audacious/ui_preferences.c:190
-#, fuzzy
+#: src/audacious/ui_preferences.c:181
 msgid "<b>Proxy Configuration</b>"
-msgstr "Конфігурація програвача компакт-дисків"
+msgstr "<b>Конфігурація проксі</b>"
 
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:182
 msgid "Enable proxy usage"
-msgstr ""
+msgstr "Використовувати проксі"
 
-#: src/audacious/ui_preferences.c:194
-#, fuzzy
+#: src/audacious/ui_preferences.c:185
 msgid "Use authentication with proxy"
-msgstr "Використовувати автентикацію"
-
-#: src/audacious/ui_preferences.c:197
-msgid ""
-"<span size=\"small\">Changing these settings will require a restart of "
-"Audacious.</span>"
-msgstr ""
+msgstr "Використовувати автентифікацію"
 
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
 msgid "Auto character encoding detector for:"
-msgstr ""
+msgstr "Автоматичне визначення кодування символів для:"
 
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:198
 msgid "Fallback character encodings:"
-msgstr ""
+msgstr "Стандартне кодування символів:"
 
-#: src/audacious/ui_preferences.c:209
-msgid ""
-"List of character encodings used for fall back conversion of metadata. If "
-"automatic character encoding detector failed or has been disabled, encodings "
-"in this list would be treated as candidates of the encoding of metadata, and "
-"fall back conversion from these encodings to UTF-8 would be attempted."
-msgstr ""
-
-#: src/audacious/ui_preferences.c:213
-#, fuzzy
+#: src/audacious/ui_preferences.c:202
 msgid "<b>Behavior</b>"
-msgstr "Бітова частота:"
+msgstr "<b>Поведінка</b>"
 
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:203
 msgid "Continue playback on startup"
-msgstr ""
+msgstr "Продовжити відтворення під час запуску"
 
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:205
 msgid "Advance when the current song is deleted"
-msgstr ""
+msgstr "Заздалегідь, коли поточна пісня буде видалена"
 
-#: src/audacious/ui_preferences.c:218
-#, fuzzy
+#: src/audacious/ui_preferences.c:207
 msgid "Clear the playlist when opening files"
-msgstr "/Сортувати список/За назвою"
+msgstr "Очищати список відтворення під час відкриття файлів"
 
-#: src/audacious/ui_preferences.c:220
-#, fuzzy
+#: src/audacious/ui_preferences.c:209
 msgid "Open files in a temporary playlist"
-msgstr "Не очищати список програвання"
+msgstr "Відкривати файли у тимчасовому списку відтворення"
 
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:211
 msgid "<b>Metadata</b>"
-msgstr "<b>Інформація про пісню та виконавця</b>"
+msgstr "<b>Метадані</b>"
+
+#: src/audacious/ui_preferences.c:212
+msgid "Do not load metadata for songs until played"
+msgstr "Не завантажувати метадані доріжок до відтворення"
 
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:230
+msgid "TITLE"
+msgstr "НАЗВА"
+
+#: src/audacious/ui_preferences.c:231
+msgid "ARTIST - TITLE"
+msgstr "ВИКОНАВЕЦЬ - НАЗВА"
+
+#: src/audacious/ui_preferences.c:232
+msgid "ARTIST - ALBUM - TITLE"
+msgstr "ВИКОНАВЕЦЬ - АЛЬБОМ - НАЗВА"
+
+#: src/audacious/ui_preferences.c:233
+msgid "ARTIST - ALBUM - TRACK. TITLE"
+msgstr "ВИКОНАВЕЦЬ - АЛЬБОМ - ДОРІЖКА. НАЗВА"
+
+#: src/audacious/ui_preferences.c:234
+msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
+msgstr "ВИКОНАВЕЦЬ [ АЛЬБОМ ] ДОРІЖКА. НАЗВА"
+
+#: src/audacious/ui_preferences.c:235
+msgid "ALBUM - TITLE"
+msgstr "АЛЬБОМ - НАЗВА"
+
+#: src/audacious/ui_preferences.c:556
 msgid "Category"
 msgstr "Категорія"
 
-#: src/audacious/ui_preferences.c:815
-#, fuzzy
+#: src/audacious/ui_preferences.c:780
 msgid "Popup Information Settings"
-msgstr "Конфігурація програвача компакт-дисків"
+msgstr "Налаштування спливаючої інформації"
 
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:789
 msgid "<b>Cover image retrieve</b>"
-msgstr ""
+msgstr "<b>Пошук обкладинки</b>"
 
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:794
 msgid ""
 "While searching for the album's cover, Audacious looks for certain words in "
 "the filename. You can specify those words in the lists below, separated "
 "using commas."
 msgstr ""
+"Під час пошуку обкладинки Audacious шукає певні слова в іменах файлів. Ви "
+"можете вказати ці слова у списку нижче, розділивши їх комами."
 
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:811
 msgid "Exclude:"
-msgstr ""
+msgstr "Включаючи:"
 
-#: src/audacious/ui_preferences.c:853
-#, fuzzy
+#: src/audacious/ui_preferences.c:818
 msgid "Include:"
-msgstr "Незалежні"
+msgstr "Виключаючи:"
 
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:835
 msgid "Recursively search for cover"
-msgstr ""
+msgstr "Рекурсивний пошук обкладинки"
 
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:845
 msgid "Search depth: "
-msgstr ""
+msgstr "Глибина пошуку:"
 
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:859
 msgid "Use per-file cover"
-msgstr ""
+msgstr "Шукати обкладинку для кожного файлу"
 
-#: src/audacious/ui_preferences.c:897
-#, fuzzy
+#: src/audacious/ui_preferences.c:862
 msgid "<b>Miscellaneous</b>"
-msgstr "<b>_Різне</b>"
+msgstr "<b>Різне</b>"
 
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:871
 msgid "Show Progress bar for the current track"
-msgstr ""
+msgstr "Показувати індикатор для поточної доріжки"
 
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:881
 msgid "Delay until filepopup comes up: "
-msgstr ""
+msgstr "Затримка до появи спливаючої інформації:"
+
+#: src/audacious/ui_preferences.c:1309
+msgid "Custom"
+msgstr "Власні налаштування"
 
-#: src/audacious/ui_preferences.c:1459
-#, fuzzy
+#: src/audacious/ui_preferences.c:1352
 msgid "<b>Song Display</b>"
-msgstr "<b>Відображення назви пісни</b>"
+msgstr "<b>Відображення пісні</b>"
 
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1361
 msgid "Show song numbers"
-msgstr ""
+msgstr "Показувати номер пісні"
 
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1372
 msgid "Show leading zeroes (02:00 instead of 2:00)"
-msgstr ""
+msgstr "Показувати нульові старші розряди (02:00 замість 2:00)"
 
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1394
 msgid "Show information about titlestring format"
-msgstr "Показати інформацію про рядок назви"
-
-#: src/audacious/ui_preferences.c:1514
-msgid "TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1515
-msgid "ARTIST - TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1516
-msgid "ARTIST - ALBUM - TITLE"
-msgstr ""
+msgstr "Показувати інформацію про формат назви"
 
-#: src/audacious/ui_preferences.c:1517
-msgid "ARTIST - ALBUM - TRACK. TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1518
-msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1519
-msgid "ALBUM - TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1520
-#, fuzzy
-msgid "Custom"
-msgstr "Особливий рядок:"
-
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1410
 msgid "Custom string:"
-msgstr "Особливий рядок:"
+msgstr "Власний формат:"
 
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1417
 msgid "Title format:"
 msgstr "Формат назви:"
 
-#: src/audacious/ui_preferences.c:1545
-#, fuzzy
+#: src/audacious/ui_preferences.c:1428
 msgid "<b>Popup Information</b>"
-msgstr "Конфігурація програвача компакт-дисків"
+msgstr "<b>Спливаюча інформація</b>"
 
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1443
 msgid "Show popup information for playlist entries"
-msgstr ""
+msgstr "Показувати спливаючу інформацію для доріжок списку відтворення"
 
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1444
 msgid ""
 "Toggles popup information window for the pointed entry in the playlist. The "
 "window shows title of song, name of album, genre, year of publish, track "
 "number, track length, and artwork."
 msgstr ""
+"Умикає спливаюче вікно з інформацією про вибрану доріжку у списку "
+"відтворення. Вікно містить назву пісні, альбому, жанр, рік, номер доріжки, "
+"тривалість пісні й обкладинку альбому."
 
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1455
 msgid "Edit settings for popup information"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1698
-#, fuzzy
-msgid "<b>Audio System</b>"
-msgstr "<b>Попередні установки</b>"
-
-#: src/audacious/ui_preferences.c:1715
-#, fuzzy
-msgid "Buffer size:"
-msgstr "Розмір буфера (кбайт):"
+msgstr "Змінити налаштування спливаючої інформації"
 
-#: src/audacious/ui_preferences.c:1734
-#, fuzzy
-msgid "Current output plugin:"
-msgstr "_Поточний модуль виводу звуку:"
+#: src/audacious/ui_preferences.c:1544
+msgid "Output plugin:"
+msgstr "Модуль виведення:"
 
-#: src/audacious/ui_preferences.c:1790
-#, fuzzy
+#: src/audacious/ui_preferences.c:1603
 msgid "Transport"
-msgstr "Перекладачі"
+msgstr "Засоби сполучення"
 
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1603
 msgid "Input"
-msgstr ""
+msgstr "Вхід"
 
-#: src/audacious/ui_preferences.c:1791
-#, fuzzy
+#: src/audacious/ui_preferences.c:1604
 msgid "Effect"
-msgstr "<b>Ефекти</b>"
+msgstr "Ефекти"
 
-#: src/audacious/ui_preferences.c:1791
-#, fuzzy
+#: src/audacious/ui_preferences.c:1604
 msgid "Visualization"
-msgstr "/Режим _візуалізації"
+msgstr "Визуализация"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1604
 msgid "General"
-msgstr ""
+msgstr "Загальна"
 
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1644
 msgid "Audacious Preferences"
 msgstr "Налаштування Audacious"
 
-#: src/audacious/util.c:161
-#, fuzzy, c-format
+#: src/audacious/util.c:120
+#, c-format
 msgid "Could not create directory (%s): %s\n"
-msgstr "Не можу створити директорію (%s): %s"
+msgstr "Не можу створити директорію (%s): %s\n"
 
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:273
 msgid "Position not found."
-msgstr ""
+msgstr "Позицію не знайдено."
 
-#: src/audtool/handlers_vitals.c:64
+#: src/audtool/handlers_vitals.c:63
 msgid "No song playing."
-msgstr ""
+msgstr "Нічого не програється."
+
+#: src/libaudcore/audstrings.c:199
+#, c-format
+msgid "Audio CD, track %s"
+msgstr "Звуковий CD, доріжка %s"
 
-#: src/libaudcore/tuple.c:685
+#: src/libaudcore/tuple.c:536
 msgid "Mono"
 msgstr "Моно"
 
-#: src/libaudcore/tuple.c:687
-#, fuzzy
+#: src/libaudcore/tuple.c:538
 msgid "Stereo"
 msgstr "Стерео"
 
-#: src/libaudcore/tuple.c:689
-#, fuzzy, c-format
-msgid "%d channels"
-msgstr "Канали:"
-
-#: src/libaudgui/confirm.c:65
+#: src/libaudcore/tuple.c:540
 #, c-format
-msgid ""
-"Are you sure you want to close %s?  If you do, any changes made since the "
-"playlist was exported will be lost."
-msgstr ""
-
-#: src/libaudgui/confirm.c:77
-#, fuzzy
-msgid "_Don't show this message again"
-msgstr "Більше не показувати це попередження"
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] "%d канал"
+msgstr[1] "%d канали"
+msgstr[2] "%d каналів"
 
-#: src/libaudgui/confirm.c:115
-#, fuzzy
+#: src/libaudgui/about.c:52 src/libaudgui/about.c:115
+msgid "Credits"
+msgstr "Автори"
+
+#: src/libaudgui/about.c:52
+msgid "Translators"
+msgstr "Перекладачі"
+
+#: src/libaudgui/about.c:91
+msgid "About Audacious"
+msgstr "Про Audacious"
+
+#: src/libaudgui/confirm.c:76
+#, c-format
+msgid ""
+"Are you sure you want to close %s?  If you do, any changes made since the "
+"playlist was exported will be lost."
+msgstr ""
+"Ви впевнені, що хочете закрити %s? Якщо так, то всі зміни з моменту експорту"
+" списку відтворення будуть втрачені."
+
+#: src/libaudgui/confirm.c:89
+msgid "_Don't show this message again"
+msgstr "Більше не показувати це попередження"
+
+#: src/libaudgui/confirm.c:126
 msgid "Rename Playlist"
-msgstr "Зберегти список програвання"
+msgstr "Перейменувати список програвання"
 
-#: src/libaudgui/effects-menu.c:76
-#, fuzzy
+#: src/libaudgui/effects-menu.c:74
 msgid "settings ..."
-msgstr "Установки мікшера:"
+msgstr "налаштування ..."
 
-#: src/libaudgui/equalizer.c:68
-#, fuzzy
+#: src/libaudgui/equalizer.c:51
 msgid "_Enable"
-msgstr "Вмикнено"
+msgstr "Увімкнути"
 
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:123
 msgid "31 Hz"
-msgstr ""
+msgstr "31 Гц"
 
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:123
 msgid "63 Hz"
-msgstr ""
+msgstr "63 Гц"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
 msgid "125 Hz"
-msgstr ""
+msgstr "125 Гц"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
 msgid "250 Hz"
-msgstr ""
+msgstr "250 Гц"
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:124
 msgid "500 Hz"
-msgstr ""
+msgstr "500 Гц"
 
-#: src/libaudgui/equalizer.c:141
-#, fuzzy
+#: src/libaudgui/equalizer.c:124
 msgid "1 kHz"
-msgstr "1:1 (44 кГц)"
+msgstr "1 кГц"
 
-#: src/libaudgui/equalizer.c:141
-#, fuzzy
+#: src/libaudgui/equalizer.c:124
 msgid "2 kHz"
-msgstr "1:2 (22 кГц)"
+msgstr "2 кГц"
 
-#: src/libaudgui/equalizer.c:142
-#, fuzzy
+#: src/libaudgui/equalizer.c:125
 msgid "4 kHz"
-msgstr "1:1 (44 кГц)"
+msgstr "4 кГц"
 
-#: src/libaudgui/equalizer.c:142
-#, fuzzy
+#: src/libaudgui/equalizer.c:125
 msgid "8 kHz"
-msgstr "1:1 (44 кГц)"
+msgstr "8 кГц"
 
-#: src/libaudgui/equalizer.c:142
-#, fuzzy
+#: src/libaudgui/equalizer.c:125
 msgid "16 kHz"
-msgstr "1:1 (44 кГц)"
+msgstr "18 кГц"
 
-#: src/libaudgui/equalizer.c:147
+#: src/libaudgui/equalizer.c:130
 msgid "Equalizer"
 msgstr "Еквалайзер"
 
-#: src/libaudgui/equalizer.c:163
-#, fuzzy
+#: src/libaudgui/equalizer.c:146
 msgid "Preamp"
-msgstr "Мрія"
+msgstr ""
+"Попереднє\n"
+"підсилення"
 
-#: src/libaudgui/infopopup.c:249
-#, fuzzy
+#: src/libaudgui/infopopup.c:207
 msgid "Track Number"
 msgstr "Номер доріжкии"
 
-#: src/libaudgui/infopopup.c:251
-#, fuzzy
+#: src/libaudgui/infopopup.c:209
 msgid "Track Length"
-msgstr "Довжина доріжки:"
+msgstr "Довжина доріжки"
 
-#: src/libaudgui/infowin.c:77
+#: src/libaudgui/infowin.c:75
 msgid "Acid Jazz"
-msgstr "Кислотний джаз"
+msgstr "Acid Jazz"
 
-#: src/libaudgui/infowin.c:78
-#, fuzzy
+#: src/libaudgui/infowin.c:76
 msgid "Acid Rock"
-msgstr "Тяжкий рок"
+msgstr "Acid Rock"
 
-#: src/libaudgui/infowin.c:79
+#: src/libaudgui/infowin.c:77
 msgid "Ambient"
 msgstr "Ambient"
 
-#: src/libaudgui/infowin.c:80
-#, fuzzy
+#: src/libaudgui/infowin.c:78
 msgid "Bebop"
-msgstr "Бібоп"
+msgstr "Bebop"
 
-#: src/libaudgui/infowin.c:81
+#: src/libaudgui/infowin.c:79
 msgid "Bluegrass"
-msgstr "Блакитна трава"
+msgstr "Bluegrass"
 
-#: src/libaudgui/infowin.c:82
-#, fuzzy
+#: src/libaudgui/infowin.c:80
 msgid "Blues"
-msgstr "Блюз"
+msgstr "Blues"
 
-#: src/libaudgui/infowin.c:83
+#: src/libaudgui/infowin.c:81
 msgid "Chamber Music"
-msgstr "Камерна музика"
+msgstr "Chamber Music"
 
-#: src/libaudgui/infowin.c:84
+#: src/libaudgui/infowin.c:82
 msgid "Classical"
-msgstr "Класична"
+msgstr "Classical"
 
-#: src/libaudgui/infowin.c:85
+#: src/libaudgui/infowin.c:83
 msgid "Country"
-msgstr "Кантрі"
+msgstr "Country"
 
-#: src/libaudgui/infowin.c:86
+#: src/libaudgui/infowin.c:84
 msgid "Death Metal"
-msgstr "Дез-метал"
+msgstr "Death Metal"
 
-#: src/libaudgui/infowin.c:87
+#: src/libaudgui/infowin.c:85
 msgid "Disco"
-msgstr "Диско"
+msgstr "Disco"
 
-#: src/libaudgui/infowin.c:88
+#: src/libaudgui/infowin.c:86
 msgid "Easy Listening"
-msgstr "Легка"
+msgstr "Easy Listening"
 
-#: src/libaudgui/infowin.c:89
+#: src/libaudgui/infowin.c:87
 msgid "Folk"
-msgstr "Фолк"
+msgstr "Folk"
 
-#: src/libaudgui/infowin.c:90
+#: src/libaudgui/infowin.c:88
 msgid "Funk"
-msgstr "Фанк"
+msgstr "Funk"
 
-#: src/libaudgui/infowin.c:91
+#: src/libaudgui/infowin.c:89
 msgid "Gangsta Rap"
-msgstr "Чорний реп"
+msgstr "Gangsta Rap"
 
-#: src/libaudgui/infowin.c:92
+#: src/libaudgui/infowin.c:90
 msgid "Gospel"
-msgstr "Псалм"
+msgstr "Gospel"
 
-#: src/libaudgui/infowin.c:93
+#: src/libaudgui/infowin.c:91
 msgid "Grunge"
-msgstr "Гранж"
+msgstr "Grunge"
 
-#: src/libaudgui/infowin.c:94
+#: src/libaudgui/infowin.c:92
 msgid "Hard Rock"
-msgstr "Тяжкий рок"
+msgstr "Hard Rock"
 
-#: src/libaudgui/infowin.c:95
+#: src/libaudgui/infowin.c:93
 msgid "Heavy Metal"
-msgstr "Тяжкий метал"
+msgstr "Heavy Metal"
 
-#: src/libaudgui/infowin.c:96
-#, fuzzy
+#: src/libaudgui/infowin.c:94
 msgid "Hip-hop"
-msgstr "Хіп-Хоп"
+msgstr "Hip-hop"
 
-#: src/libaudgui/infowin.c:97
+#: src/libaudgui/infowin.c:95
 msgid "House"
-msgstr "Дім"
+msgstr "House"
 
-#: src/libaudgui/infowin.c:98
+#: src/libaudgui/infowin.c:96
 msgid "Jazz"
-msgstr "Джаз"
+msgstr "Jazz"
 
-#: src/libaudgui/infowin.c:99
+#: src/libaudgui/infowin.c:97
 msgid "Jungle"
-msgstr "Джангл"
+msgstr "Jungle"
 
-#: src/libaudgui/infowin.c:100
+#: src/libaudgui/infowin.c:98
 msgid "Metal"
-msgstr "Метал"
+msgstr "Metal"
 
-#: src/libaudgui/infowin.c:101
+#: src/libaudgui/infowin.c:99
 msgid "New Age"
-msgstr "Нью Ейдж"
+msgstr "New Age"
 
-#: src/libaudgui/infowin.c:102
+#: src/libaudgui/infowin.c:100
 msgid "New Wave"
-msgstr "Нова хвиля"
+msgstr "New Wave"
 
-#: src/libaudgui/infowin.c:103
+#: src/libaudgui/infowin.c:101
 msgid "Noise"
-msgstr "Шум"
+msgstr "Noise"
 
-#: src/libaudgui/infowin.c:104
+#: src/libaudgui/infowin.c:102
 msgid "Pop"
-msgstr "Поп"
+msgstr "Pop"
 
-#: src/libaudgui/infowin.c:105
+#: src/libaudgui/infowin.c:103
 msgid "Punk Rock"
-msgstr "Панк-рок"
+msgstr "Punk Rock"
 
-#: src/libaudgui/infowin.c:106
+#: src/libaudgui/infowin.c:104
 msgid "Rap"
-msgstr "Реп"
+msgstr "Rap"
 
-#: src/libaudgui/infowin.c:107
+#: src/libaudgui/infowin.c:105
 msgid "Reggae"
-msgstr "Реґґі"
+msgstr "Reggae"
 
-#: src/libaudgui/infowin.c:108
+#: src/libaudgui/infowin.c:106
 msgid "Rock"
-msgstr "Рок"
+msgstr "Rock"
 
-#: src/libaudgui/infowin.c:109
-#, fuzzy
+#: src/libaudgui/infowin.c:107
 msgid "Rock and Roll"
-msgstr "Рок-н-рол"
+msgstr "Rock and Roll"
 
-#: src/libaudgui/infowin.c:110
+#: src/libaudgui/infowin.c:108
 msgid "Rhythm and Blues"
-msgstr ""
+msgstr "Rhythm and Blues"
 
-#: src/libaudgui/infowin.c:111
+#: src/libaudgui/infowin.c:109
 msgid "Ska"
-msgstr "Ска"
+msgstr "Ska"
 
-#: src/libaudgui/infowin.c:112
+#: src/libaudgui/infowin.c:110
 msgid "Soul"
-msgstr "Душа"
+msgstr "Soul"
 
-#: src/libaudgui/infowin.c:113
+#: src/libaudgui/infowin.c:111
 msgid "Swing"
-msgstr "Свінг"
+msgstr "Swing"
 
-#: src/libaudgui/infowin.c:114
+#: src/libaudgui/infowin.c:112
 msgid "Techno"
-msgstr "Техно"
+msgstr "Techno"
 
-#: src/libaudgui/infowin.c:115
-#, fuzzy
+#: src/libaudgui/infowin.c:113
 msgid "Trip-hop"
-msgstr "Тріп-Хоп"
+msgstr "Trip-hop"
 
-#: src/libaudgui/infowin.c:175 src/libaudgui/infowin.c:361
-#: src/libaudgui/infowin.c:364 src/libaudgui/infowin.c:367
-#, fuzzy
+#: src/libaudgui/infowin.c:177 src/libaudgui/infowin.c:363
+#: src/libaudgui/infowin.c:366 src/libaudgui/infowin.c:369
 msgid "<span size=\"small\">n/a</span>"
-msgstr "<span size=\"medium\"><b>Медіа</b></span>"
+msgstr "<span size=\"small\">невідомо</span>"
 
-#: src/libaudgui/infowin.c:265
+#: src/libaudgui/infowin.c:267
 msgid "Metadata updated successfully"
-msgstr ""
+msgstr "Метадані успішно оновлені"
 
-#: src/libaudgui/infowin.c:270
+#: src/libaudgui/infowin.c:272
 msgid "Metadata updating failed"
-msgstr ""
+msgstr "Не вдалося оновити метадані"
 
-#: src/libaudgui/infowin.c:318
-#, fuzzy
+#: src/libaudgui/infowin.c:320
 msgid "Track Information"
-msgstr "Підсилення доріжок:"
+msgstr "Інформація про доріжку"
 
-#: src/libaudgui/infowin.c:350
-#, fuzzy
+#: src/libaudgui/infowin.c:352
 msgid "<span size=\"small\">Format:</span>"
-msgstr "<span size=\"medium\"><b>Загальні</b></span>"
+msgstr "<span size=\"small\">Формат:</span>"
 
-#: src/libaudgui/infowin.c:354
-#, fuzzy
+#: src/libaudgui/infowin.c:356
 msgid "<span size=\"small\">Quality:</span>"
-msgstr "<span size=\"medium\"><b>Медіа</b></span>"
+msgstr "<span size=\"small\">Якість:</span>"
 
-#: src/libaudgui/infowin.c:357
-#, fuzzy
+#: src/libaudgui/infowin.c:359
 msgid "<span size=\"small\">Bitrate:</span>"
-msgstr "<span size=\"medium\"><b>Загальні</b></span>"
+msgstr "<span size=\"small\">Бітрейт:</span>"
 
-#: src/libaudgui/infowin.c:387
-#, fuzzy
+#: src/libaudgui/infowin.c:389
 msgid "<span size=\"small\">Title</span>"
-msgstr "<span size=\"medium\"><b>Медіа</b></span>"
+msgstr "<span size=\"small\">Назва</span>"
 
-#: src/libaudgui/infowin.c:399
-#, fuzzy
+#: src/libaudgui/infowin.c:401
 msgid "<span size=\"small\">Artist</span>"
-msgstr "<span size=\"medium\"><b>Вивід звуку</b></span>"
+msgstr "<span size=\"small\">Виконавець</span>"
 
-#: src/libaudgui/infowin.c:411
-#, fuzzy
+#: src/libaudgui/infowin.c:413
 msgid "<span size=\"small\">Album</span>"
-msgstr "<span size=\"medium\"><b>Вивід звуку</b></span>"
+msgstr "<span size=\"small\">Альбом</span>"
 
-#: src/libaudgui/infowin.c:423
-#, fuzzy
+#: src/libaudgui/infowin.c:425
 msgid "<span size=\"small\">Comment</span>"
-msgstr "<span size=\"medium\"><b>Загальні</b></span>"
+msgstr "<span size=\"small\">Коментар</span>"
 
-#: src/libaudgui/infowin.c:435
-#, fuzzy
+#: src/libaudgui/infowin.c:437
 msgid "<span size=\"small\">Genre</span>"
-msgstr "<span size=\"medium\"><b>Загальні</b></span>"
+msgstr "<span size=\"small\">Жанр</span>"
 
-#: src/libaudgui/infowin.c:456
-#, fuzzy
+#: src/libaudgui/infowin.c:458
 msgid "<span size=\"small\">Year</span>"
-msgstr "<span size=\"medium\"><b>Медіа</b></span>"
+msgstr "<span size=\"small\">Рік</span>"
 
-#: src/libaudgui/infowin.c:467
-#, fuzzy
+#: src/libaudgui/infowin.c:469
 msgid "<span size=\"small\">Track Number</span>"
-msgstr "<span size=\"medium\"><b>Загальні</b></span>"
+msgstr "<span size=\"small\">Номер доріжки</span>"
 
-#: src/libaudgui/infowin.c:549
-#, fuzzy, c-format
+#: src/libaudgui/infowin.c:548
+#, c-format
 msgid "%d kb/s"
-msgstr "%d кБіт/с"
+msgstr "%d кб/с"
 
-#: src/libaudgui/infowin.c:579
+#: src/libaudgui/infowin.c:575
 #, c-format
 msgid "No info available for %s.\n"
-msgstr ""
+msgstr "Інформація недоступна для %s.\n"
 
-#: src/libaudgui/ui_about.c:71
-msgid "About Audacious"
-msgstr "Про Audacious"
+#: src/libaudgui/jump-to-time.c:72
+msgid "Jump to Time"
+msgstr "Перейти до часу"
 
-#: src/libaudgui/ui_about.c:93 src/libaudgui/ui_credits.c:122
-msgid "Credits"
-msgstr "Автори"
+#: src/libaudgui/jump-to-time.c:87
+msgid "mm:ss"
+msgstr "хх:сс"
 
-#: src/libaudgui/ui_credits.c:126
-msgid "Translators"
-msgstr "Перекладачі"
+#: src/libaudgui/playlists.c:33
+msgid "Export Playlist"
+msgstr "Експортувати список відтворення"
+
+#: src/libaudgui/playlists.c:33
+msgid "Import Playlist"
+msgstr "Імпортувати список відтворення"
+
+#: src/libaudgui/playlists.c:66
+#, c-format
+msgid "Overwrite %s?"
+msgstr "Перезаписати %s?"
 
-#: src/libaudgui/ui_fileopener.c:108
+#: src/libaudgui/queue-manager.c:196
+msgid "Queue Manager"
+msgstr "Керування чергою"
+
+#: src/libaudgui/ui_fileopener.c:109
 msgid "Open Files"
 msgstr "Відкрити файли"
 
-#: src/libaudgui/ui_fileopener.c:108
+#: src/libaudgui/ui_fileopener.c:109
 msgid "Add Files"
 msgstr "Додати файли"
 
-#: src/libaudgui/ui_fileopener.c:110
+#: src/libaudgui/ui_fileopener.c:111
 msgid "Close dialog on Open"
 msgstr "Закрити вікно після відкриття"
 
-#: src/libaudgui/ui_fileopener.c:110
+#: src/libaudgui/ui_fileopener.c:111
 msgid "Close dialog on Add"
 msgstr "Закрити вікно після додавання"
 
-#: src/libaudgui/ui_jumptotrack.c:133
-msgid "Un_queue"
-msgstr "В_илучити зі списку"
-
-#: src/libaudgui/ui_jumptotrack.c:135 src/libaudgui/ui_jumptotrack.c:512
+#: src/libaudgui/ui_jumptotrack.c:109 src/libaudgui/ui_jumptotrack.c:117
+#: src/libaudgui/ui_jumptotrack.c:326
 msgid "_Queue"
 msgstr "_Додати до списку"
 
-#: src/libaudgui/ui_jumptotrack.c:399
-msgid "Jump to Track"
+#: src/libaudgui/ui_jumptotrack.c:115
+msgid "Un_queue"
+msgstr "В_илучити зі списку"
+
+#: src/libaudgui/ui_jumptotrack.c:258
+msgid "Jump to Song"
 msgstr "Перейти до доріжки"
 
-#: src/libaudgui/ui_jumptotrack.c:442
+#: src/libaudgui/ui_jumptotrack.c:281
 msgid "Filter: "
 msgstr "Фільтр: "
 
-#: src/libaudgui/ui_jumptotrack.c:443
-#, fuzzy
+#: src/libaudgui/ui_jumptotrack.c:282
 msgid "_Filter:"
-msgstr "Фільтр: "
+msgstr "_Фільтр: "
 
-#: src/libaudgui/ui_jumptotrack.c:461
+#: src/libaudgui/ui_jumptotrack.c:292
 msgid "Remember"
-msgstr ""
+msgstr "Запам'ятати"
 
-#: src/libaudgui/ui_jumptotrack.c:470
-#, fuzzy
+#: src/libaudgui/ui_jumptotrack.c:299
 msgid "Clea_r"
-msgstr "/Очистити чергу"
+msgstr "Очистити"
 
-#: src/libaudgui/ui_jumptotrack.c:504
-#, fuzzy
+#: src/libaudgui/ui_jumptotrack.c:319
 msgid "Close on Jump"
-msgstr "Закрити вікно після відкриття"
+msgstr "Закрити після переходу"
 
-#: src/libaudgui/ui_playlist_manager.c:185
-#, fuzzy
+#: src/libaudgui/ui_playlist_manager.c:253
 msgid "Playlist Manager"
-msgstr "/Не просуватись у списку пісень"
+msgstr "Менеджер списків"
 
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:280
 msgid "Entries"
-msgstr ""
+msgstr "Елементи"
 
-#: src/libaudgui/ui_playlist_manager.c:227
-#, fuzzy
+#: src/libaudgui/ui_playlist_manager.c:301
 msgid "_Rename"
-msgstr "Ім'я файлу"
+msgstr "Перейменувати"
 
-#: src/libaudgui/ui_playlist_manager.c:251
-#, fuzzy
+#: src/libaudgui/ui_playlist_manager.c:325
 msgid "_Close dialog on activating playlist"
-msgstr "Закрити вікно після відкриття"
+msgstr "Закрити вікно після вибору списку"
 
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:48
 msgid "Open URL"
-msgstr ""
+msgstr "Відкрити адресу"
 
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:48
 msgid "Add URL"
+msgstr "Додати адресу"
+
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
 msgstr ""
+"\n"
+"(Наступні повідомлення були приховані.)"
 
 #: src/libeggsmclient/eggdesktopfile.c:165
 msgid "File is not a valid .desktop file"
-msgstr ""
+msgstr "Файл не є коректним файлом .desktop "
 
-#: src/libeggsmclient/eggdesktopfile.c:188
-#, fuzzy, c-format
+#: src/libeggsmclient/eggdesktopfile.c:191
+#, c-format
 msgid "Unrecognized desktop file Version '%s'"
-msgstr "%s: не розпізнано параметру `--%s'\n"
+msgstr "Невідома версія desktop файлу '%s'"
 
-#: src/libeggsmclient/eggdesktopfile.c:968
-#, fuzzy, c-format
+#: src/libeggsmclient/eggdesktopfile.c:974
+#, c-format
 msgid "Starting %s"
-msgstr "Італійський:"
+msgstr "Запускається %s"
 
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1116
 msgid "Application does not accept documents on command line"
-msgstr ""
+msgstr "Програма підтримує передачу імені документу через командний рядок"
 
-#: src/libeggsmclient/eggdesktopfile.c:1178
-#, fuzzy, c-format
+#: src/libeggsmclient/eggdesktopfile.c:1184
+#, c-format
 msgid "Unrecognized launch option: %d"
-msgstr "%s: не розпізнано параметру `--%s'\n"
+msgstr "Невідомий параметр запуску: %d"
 
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1391
 msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
 msgstr ""
+"Не можу передати URI документа з допомогою запису 'Type = Link' у файлі "
+".desktop"
 
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1412
 msgid "Not a launchable item"
-msgstr ""
+msgstr "Елемент не запускається"
 
 #: src/libeggsmclient/eggsmclient.c:226
 msgid "Disable connection to session manager"
-msgstr ""
+msgstr "Вимкнути підключення до менеджера сесій"
 
 #: src/libeggsmclient/eggsmclient.c:229
 msgid "Specify file containing saved configuration"
-msgstr ""
+msgstr "Вкажіть файл, що містить збережену конфігурацю"
 
 #: src/libeggsmclient/eggsmclient.c:229
 msgid "FILE"
-msgstr ""
+msgstr "ФАЙЛ"
 
 #: src/libeggsmclient/eggsmclient.c:232
 msgid "Specify session management ID"
-msgstr ""
+msgstr "Вказати ідентифікатор сесії"
 
 #: src/libeggsmclient/eggsmclient.c:232
 msgid "ID"
-msgstr ""
+msgstr "ID"
 
 #: src/libeggsmclient/eggsmclient.c:253
 msgid "Session management options:"
-msgstr ""
+msgstr "Параметри керування сеансами:"
 
 #: src/libeggsmclient/eggsmclient.c:254
 msgid "Show session management options"
-msgstr ""
-
-#, fuzzy
-#~ msgid "%s: Unable to open display, exiting.\n"
-#~ msgstr "audacious: Не можу відкрити екран для показу, вихід.\n"
-
-#, fuzzy
-#~ msgid "Preamp:"
-#~ msgstr "Мрія"
-
-#, fuzzy
-#~ msgid "Default gain:"
-#~ msgstr "Основний (%s)"
-
-#, fuzzy
-#~ msgid "<b>Replay Gain configuration</b>"
-#~ msgstr "Конфігурація програвача компакт-дисків"
-
-#, fuzzy
-#~ msgid "Track gain/peak"
-#~ msgstr "Піковий рівень доріжок:"
-
-#, fuzzy
-#~ msgid "Album gain/peak"
-#~ msgstr "Підсилення альбома:"
-
-#~ msgid "Classic Rock"
-#~ msgstr "Класичний рок"
-
-#~ msgid "Dance"
-#~ msgstr "Танцювальна"
-
-#~ msgid "Oldies"
-#~ msgstr "Ретро"
-
-#~ msgid "Other"
-#~ msgstr "Інші"
-
-#~ msgid "R&B"
-#~ msgstr "Ритм-н-блюз"
-
-#~ msgid "Industrial"
-#~ msgstr "Індустріальний"
-
-#~ msgid "Alternative"
-#~ msgstr "Альтернативна"
-
-#, fuzzy
-#~ msgid "Pranks"
-#~ msgstr "Pranks"
-
-#~ msgid "Soundtrack"
-#~ msgstr "Звукова доріжка"
-
-#~ msgid "Euro-Techno"
-#~ msgstr "Євро-техно"
-
-#~ msgid "Vocal"
-#~ msgstr "Вокал"
-
-#~ msgid "Jazz+Funk"
-#~ msgstr "Джаз+Фанк"
-
-#~ msgid "Fusion"
-#~ msgstr "Ф'южн"
-
-#~ msgid "Trance"
-#~ msgstr "Транс"
-
-#~ msgid "Instrumental"
-#~ msgstr "Інструментальна"
-
-#~ msgid "Acid"
-#~ msgstr "Кислота"
-
-#~ msgid "Game"
-#~ msgstr "Гра"
-
-#~ msgid "Sound Clip"
-#~ msgstr "Звуковий кліп"
-
-#~ msgid "AlternRock"
-#~ msgstr "Альтернативний рок"
-
-#, fuzzy
-#~ msgid "Bass"
-#~ msgstr "Бас"
-
-#~ msgid "Punk"
-#~ msgstr "Панк"
-
-#~ msgid "Space"
-#~ msgstr "Космічна"
-
-#~ msgid "Meditative"
-#~ msgstr "Медитація"
-
-#~ msgid "Instrumental Pop"
-#~ msgstr "Інструментальний поп"
-
-#~ msgid "Instrumental Rock"
-#~ msgstr "Інструментальний рок"
-
-#~ msgid "Ethnic"
-#~ msgstr "Етнічна"
-
-#~ msgid "Gothic"
-#~ msgstr "Готична"
-
-#~ msgid "Darkwave"
-#~ msgstr "Чорна хвиля"
-
-#~ msgid "Techno-Industrial"
-#~ msgstr "Техно-індустріальна"
-
-#~ msgid "Electronic"
-#~ msgstr "Електронна"
-
-#~ msgid "Pop-Folk"
-#~ msgstr "Поп-фолк"
-
-#~ msgid "Eurodance"
-#~ msgstr "Євроданс"
-
-#~ msgid "Dream"
-#~ msgstr "Мрія"
-
-#~ msgid "Southern Rock"
-#~ msgstr "Південний рок"
-
-#~ msgid "Comedy"
-#~ msgstr "Комедійна"
-
-#~ msgid "Cult"
-#~ msgstr "Культова"
-
-#~ msgid "Top 40"
-#~ msgstr "40 найкращих"
-
-#~ msgid "Christian Rap"
-#~ msgstr "Християнський реп"
-
-#~ msgid "Pop/Funk"
-#~ msgstr "Поп/Фанк"
-
-#~ msgid "Native American"
-#~ msgstr "Американська аборигенська"
-
-#~ msgid "Cabaret"
-#~ msgstr "Кабаре"
-
-#~ msgid "Psychedelic"
-#~ msgstr "Психоделічна"
-
-#~ msgid "Rave"
-#~ msgstr "Рейв"
-
-#, fuzzy
-#~ msgid "Showtunes"
-#~ msgstr "Імпровізація"
-
-#~ msgid "Trailer"
-#~ msgstr "Анонс"
-
-#~ msgid "Lo-Fi"
-#~ msgstr "Lo-Fi"
-
-#~ msgid "Tribal"
-#~ msgstr "Племінна"
-
-#~ msgid "Acid Punk"
-#~ msgstr "Кислотний панк"
-
-#~ msgid "Polka"
-#~ msgstr "Полька"
-
-#, fuzzy
-#~ msgid "Retro"
-#~ msgstr "Ретро"
-
-#~ msgid "Musical"
-#~ msgstr "Музична"
-
-#~ msgid "Folk/Rock"
-#~ msgstr "Фолк/Рок"
-
-#~ msgid "National Folk"
-#~ msgstr "Національний фолк"
-
-#~ msgid "Fast-Fusion"
-#~ msgstr "Швидкий фьюжн"
-
-#~ msgid "Latin"
-#~ msgstr "Латиноамериканська"
-
-#~ msgid "Revival"
-#~ msgstr "Відродження"
-
-#~ msgid "Celtic"
-#~ msgstr "Кельтська"
-
-#~ msgid "Avantgarde"
-#~ msgstr "Авангард"
-
-#~ msgid "Gothic Rock"
-#~ msgstr "Готичний рок"
-
-#~ msgid "Progressive Rock"
-#~ msgstr "Прогресивний рок"
-
-#~ msgid "Psychedelic Rock"
-#~ msgstr "Психоделічний рок"
-
-#~ msgid "Symphonic Rock"
-#~ msgstr "Симфонічний рок"
-
-#~ msgid "Slow Rock"
-#~ msgstr "Повільний рок"
-
-#~ msgid "Big Band"
-#~ msgstr "Біґ-бенд"
-
-#~ msgid "Chorus"
-#~ msgstr "Хор"
-
-#~ msgid "Acoustic"
-#~ msgstr "Акустична"
-
-#~ msgid "Humour"
-#~ msgstr "Гумор"
-
-#~ msgid "Speech"
-#~ msgstr "Промова"
-
-#~ msgid "Chanson"
-#~ msgstr "Шансон"
-
-#~ msgid "Opera"
-#~ msgstr "Опера"
-
-#~ msgid "Sonata"
-#~ msgstr "Соната"
-
-#~ msgid "Symphony"
-#~ msgstr "Симфонія"
-
-#~ msgid "Booty Bass"
-#~ msgstr "Booty Bass"
-
-#~ msgid "Primus"
-#~ msgstr "Прима"
-
-#~ msgid "Porn Groove"
-#~ msgstr "Порн грув"
-
-#, fuzzy
-#~ msgid "Satire"
-#~ msgstr "Стерео"
-
-#~ msgid "Slow Jam"
-#~ msgstr "Повільний джем"
-
-#~ msgid "Club"
-#~ msgstr "Клуб"
-
-#~ msgid "Tango"
-#~ msgstr "Танґо"
-
-#~ msgid "Samba"
-#~ msgstr "Самба"
-
-#~ msgid "Folklore"
-#~ msgstr "Фольклор"
-
-#~ msgid "Ballad"
-#~ msgstr "Балада"
-
-#~ msgid "Power Ballad"
-#~ msgstr "Потужна балада"
-
-#~ msgid "Rhythmic Soul"
-#~ msgstr "Ритмічний соул"
-
-#~ msgid "Freestyle"
-#~ msgstr "Вільний стиль"
-
-#~ msgid "Duet"
-#~ msgstr "Дует"
-
-#~ msgid "Drum Solo"
-#~ msgstr "Соло на ударних"
-
-#~ msgid "A Cappella"
-#~ msgstr "Акапелла"
-
-#~ msgid "Euro-House"
-#~ msgstr "Евро-дім"
-
-#~ msgid "Dance Hall"
-#~ msgstr "Танцювальний зал"
-
-#~ msgid "Goa"
-#~ msgstr "Гоа"
-
-#~ msgid "Drum & Bass"
-#~ msgstr "Ударні та бас"
-
-#~ msgid "Club-House"
-#~ msgstr "Клуб-дім"
-
-#~ msgid "Hardcore"
-#~ msgstr "Нардкор"
-
-#~ msgid "Terror"
-#~ msgstr "Терор"
-
-#~ msgid "Indie"
-#~ msgstr "Незалежні"
-
-#~ msgid "BritPop"
-#~ msgstr "Британський поп"
-
-#~ msgid "Negerpunk"
-#~ msgstr "Чорний панк"
-
-#~ msgid "Polsk Punk"
-#~ msgstr "Польский панк"
-
-#~ msgid "Beat"
-#~ msgstr "Біт"
-
-#~ msgid "Christian Gangsta Rap"
-#~ msgstr "Чорний християнський реп"
-
-#~ msgid "Black Metal"
-#~ msgstr "Чорний метал"
-
-#~ msgid "Crossover"
-#~ msgstr "Перехідний"
-
-#~ msgid "Contemporary Christian"
-#~ msgstr "Сучасна християнська"
-
-#~ msgid "Christian Rock"
-#~ msgstr "Християнський рок"
-
-#~ msgid "Merengue"
-#~ msgstr "Меренга"
-
-#~ msgid "Salsa"
-#~ msgstr "Сальса"
-
-#~ msgid "Thrash Metal"
-#~ msgstr "Треш метал"
-
-#~ msgid "Anime"
-#~ msgstr "Мультиплікація"
-
-#~ msgid "JPop"
-#~ msgstr "Японський поп"
-
-#~ msgid "Synthpop"
-#~ msgstr "Електронний поп"
-
-#, fuzzy
-#~ msgid ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "An audio player for many platforms.\n"
-#~ "Copyright (C) 2005-2011 Audacious Development Team"
-#~ msgstr ""
-#~ "<big><b>Beep Media Player %s</b></big>\n"
-#~ "Мультимедійний програвач на основі  BMP та XMMS\n"
-#~ "\n"
-#~ "Copyright (C) 2005 Команда розробників Audacious\n"
-
-#~ msgid "Unable to create log file (%s)!\n"
-#~ msgstr "Не можу створити файл журналу (%s)!\n"
-
-#, fuzzy
-#~ msgid "Playback"
-#~ msgstr "/_Програвання"
-
-#~ msgid "<b>Playback</b>"
-#~ msgstr "<b>Відтворення</b>"
-
-#~ msgid "Don't advance in the playlist"
-#~ msgstr "Не просуватись в списку програвання"
-
-#~ msgid ""
-#~ "When finished playing a song, don't automatically advance to the next."
-#~ msgstr ""
-#~ "По завершенню програвання пісні, не пересуватись автоматично до наступної."
-
-#~ msgid "Enabled"
-#~ msgstr "Вмикнено"
-
-#~ msgid "Description"
-#~ msgstr "Опис"
-
-#, fuzzy
-#~ msgid "Output Plugin Preferences"
-#~ msgstr "Модуль виводу звуку OSS"
-
-#, fuzzy
-#~ msgid "Output Plugin Information"
-#~ msgstr "Конфіґурація модуля виводу ESD"
-
-#, fuzzy
-#~ msgid "_Decoder list:"
-#~ msgstr "Декодування"
-
-#, fuzzy
-#~ msgid "<span size=\"medium\"><b>Decoders</b></span>"
-#~ msgstr "<span size=\"medium\"><b>Загальні</b></span>"
-
-#~ msgid "_General plugin list:"
-#~ msgstr "_Список модулів загального призначення:"
-
-#~ msgid "<span size=\"medium\"><b>General</b></span>"
-#~ msgstr "<span size=\"medium\"><b>Загальні</b></span>"
-
-#~ msgid "_Visualization plugin list:"
-#~ msgstr "Список модулів _візуалізації:"
-
-#~ msgid "<b>Visualization</b>"
-#~ msgstr "<b>Візуалізація</b>"
-
-#, fuzzy
-#~ msgid "Effect plugins:"
-#~ msgstr "Список модулів _ефектів:"
-
-#~ msgid "<b>Effects</b>"
-#~ msgstr "<b>Ефекти</b>"
-
-#, fuzzy
-#~ msgid "<span size=\"small\">General</span>"
-#~ msgstr "<span size=\"medium\"><b>Загальні</b></span>"
-
-#, fuzzy
-#~ msgid "<span size=\"small\">Location</span>"
-#~ msgstr "<span size=\"xx-large\"><b>Миша</b></span>"
-
-#, fuzzy
-#~ msgid "<span size=\"small\">Raw Metadata</span>"
-#~ msgstr "<span size=\"medium\"><b>Медіа</b></span>"
-
-#, fuzzy
-#~ msgid "Value"
-#~ msgstr "Блюз"
-
-#, fuzzy
-#~ msgid "3 kHz"
-#~ msgstr "1:1 (44 кГц)"
-
-#, fuzzy
-#~ msgid "6 kHz"
-#~ msgstr "1:1 (44 кГц)"
-
-#, fuzzy
-#~ msgid ""
-#~ "Available interfaces:\n"
-#~ "\n"
-#~ msgstr "Доступні _попередні установки:"
-
-#, fuzzy
-#~ msgid "Available Plugin Preferences:\n"
-#~ msgstr "Доступні _попередні установки:"
-
-#, fuzzy
-#~ msgid "Add/Open URL Dialog"
-#~ msgstr "Вікно додавання файлів"
-
-#~ msgid "Don't clear the playlist"
-#~ msgstr "Не очищати список програвання"
-
-#~ msgid "Filename:"
-#~ msgstr "Ім'я файлу:"
-
-#~ msgid "No input plugin recognized this file"
-#~ msgstr "Жоден модуль вводу не розпізнає цей файл"
-
-#~ msgid "Input plugin: %s"
-#~ msgstr "Модуль вводу: %s"
-
-#, fuzzy
-#~ msgid "ZOH Interpolation"
-#~ msgstr "Використовувати автентикацію"
-
-#, fuzzy
-#~ msgid "Linear Interpolation"
-#~ msgstr "Використовувати автентикацію"
-
-#, fuzzy
-#~ msgid "Sampling Rate [Hz]:"
-#~ msgstr "Частота:"
-
-#, fuzzy
-#~ msgid "Interpolation Engine:"
-#~ msgstr "Використовувати автентикацію"
-
-#, fuzzy
-#~ msgid "Detect file formats by extension."
-#~ msgstr "Не позбавляти файли розширення"
-
-#, fuzzy
-#~ msgid "<b>Sampling Rate Converter</b>"
-#~ msgstr "Частота:"
-
-#, fuzzy
-#~ msgid "Enable Sampling Rate Converter"
-#~ msgstr "Частота:"
-
-#, fuzzy
-#~ msgid "<b>Advanced</b>"
-#~ msgstr "<b>Ім'я файлу</b>"
-
-#, fuzzy
-#~ msgid ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "\n"
-#~ "Copyright (C) 2005-2009 Audacious Development Team"
-#~ msgstr ""
-#~ "<big><b>Beep Media Player %s</b></big>\n"
-#~ "Мультимедійний програвач на основі  BMP та XMMS\n"
-#~ "\n"
-#~ "Copyright (C) 2005 Команда розробників Audacious\n"
-
-#~ msgid "Load metadata from playlists and files"
-#~ msgstr ""
-#~ "Завантажувати інформацію про пісні з музичних файлів і списків програвання"
-
-#~ msgid "Load metadata (tag information) from music files."
-#~ msgstr ""
-#~ "Завантажувати інформацію про пісню та виконавця (інформаційний тег) з "
-#~ "музичних файлів."
-
-#~ msgid "Jump to Time"
-#~ msgstr "Перейти до часу"
-
-#~ msgid "minutes:seconds"
-#~ msgstr "хвилин:секунд"
-
-#~ msgid "Track length:"
-#~ msgstr "Довжина доріжки:"
-
-#, fuzzy
-#~ msgid "Save as Static Playlist"
-#~ msgstr "Зберегти список програвання"
-
-#~ msgid "Error writing playlist \"%s\": %s"
-#~ msgstr "Помилка при записі списку програвання \"%s\": %s"
-
-#~ msgid "%s already exist. Continue?"
-#~ msgstr "%s вже існує. Продовжити?"
-
-#, fuzzy
-#~ msgid ""
-#~ "<b><big>Unable to save playlist.</big></b>\n"
-#~ "\n"
-#~ "Unknown file type for '%s'.\n"
-#~ msgstr ""
-#~ "<b><big>Не можу зберегти список програвання.</big></b>\n"
-#~ "\n"
-
-#~ msgid "Presets"
-#~ msgstr "Попередні установки"
-
-#~ msgid "Mouse"
-#~ msgstr "Миша"
-
-#~ msgid "Pause between songs"
-#~ msgstr "Пауза між піснями"
-
-#~ msgid "Pause for"
-#~ msgstr "Призупиняти на"
-
-#~ msgid "seconds"
-#~ msgstr "секунд"
-
-#~ msgid "<b>Filename</b>"
-#~ msgstr "<b>Ім'я файлу</b>"
-
-#~ msgid "Convert underscores to blanks"
-#~ msgstr "Перетворювати підкреслення в пробіл"
-
-#~ msgid "Convert %20 to blanks"
-#~ msgstr "Перетворювати %20 в пробіл"
-
-#, fuzzy
-#~ msgid "<b>File Dialog</b>"
-#~ msgstr "<b>Ім'я файлу</b>"
-
-#~ msgid "Changes volume by"
-#~ msgstr "Змінює гучність на"
-
-#~ msgid "percent"
-#~ msgstr "відсотків"
-
-#~ msgid "Scrolls playlist by"
-#~ msgstr "Поворот колеса миші прокручує список програвання на"
-
-#~ msgid "lines"
-#~ msgstr "рядків"
-
-#, fuzzy
-#~ msgid "Stop after Current Song"
-#~ msgstr "Зупинити поточну пісню"
-
-#, fuzzy
-#~ msgid "Peaks"
-#~ msgstr "Pranks"
-
-#, fuzzy
-#~ msgid "Repeat"
-#~ msgstr "/Повторювати"
-
-#, fuzzy
-#~ msgid "Shuffle"
-#~ msgstr "/Випадково"
-
-#, fuzzy
-#~ msgid "No Playlist Advance"
-#~ msgstr "/Не просуватись у списку пісень"
-
-#, fuzzy
-#~ msgid "Play"
-#~ msgstr "/Грати"
-
-#, fuzzy
-#~ msgid "Pause"
-#~ msgstr "/Призупинити"
-
-#, fuzzy
-#~ msgid "Stop"
-#~ msgstr "/Зупинити"
-
-#, fuzzy
-#~ msgid "Previous"
-#~ msgstr "/Попередня пісня"
-
-#, fuzzy
-#~ msgid "Next"
-#~ msgstr "/Наступна пісня"
-
-#, fuzzy
-#~ msgid "Visualization Mode"
-#~ msgstr "/Режим візуалізації"
-
-#, fuzzy
-#~ msgid "Analyzer Mode"
-#~ msgstr "/Режим аналізатора/Полум'я"
-
-#, fuzzy
-#~ msgid "Scope Mode"
-#~ msgstr "/Режим графіка"
-
-#, fuzzy
-#~ msgid "Voiceprint Mode"
-#~ msgstr "/Режим аналізатора/Полум'я"
-
-#, fuzzy
-#~ msgid "WindowShade VU Mode"
-#~ msgstr "/При мінімізованому вікні"
-
-#, fuzzy
-#~ msgid "Refresh Rate"
-#~ msgstr "/Частота поновлення"
-
-#, fuzzy
-#~ msgid "Analyzer Falloff"
-#~ msgstr "/Падіння аналізатора"
-
-#, fuzzy
-#~ msgid "Peaks Falloff"
-#~ msgstr "/Падіння піків"
-
-#, fuzzy
-#~ msgid "New Playlist"
-#~ msgstr "Зберегти список програвання"
-
-#, fuzzy
-#~ msgid "Select Next Playlist"
-#~ msgstr "Вибір шрифту для списку програвання"
-
-#, fuzzy
-#~ msgid "Select Previous Playlist"
-#~ msgstr "/Сортувати вибране/За назвою"
-
-#, fuzzy
-#~ msgid "Delete Playlist"
-#~ msgstr "Вибір шрифту для списку програвання"
-
-#, fuzzy
-#~ msgid "Load List"
-#~ msgstr "/Сортувати список"
-
-#, fuzzy
-#~ msgid "Loads a playlist file into the selected playlist."
-#~ msgstr ""
-#~ "Завантажувати інформацію про пісню та виконавця при відображенні файлу в "
-#~ "списку програвання"
-
-#, fuzzy
-#~ msgid "Save List"
-#~ msgstr "/Новий список"
-
-#, fuzzy
-#~ msgid "Saves the selected playlist."
-#~ msgstr "Вибір шрифту для списку програвання"
-
-#, fuzzy
-#~ msgid "Save Default List"
-#~ msgstr "/Зберегти/Стандартні "
-
-#, fuzzy
-#~ msgid "Saves the selected playlist to the default location."
-#~ msgstr "Вибір шрифту для списку програвання"
-
-#, fuzzy
-#~ msgid "Refresh List"
-#~ msgstr "/Частота поновлення"
-
-#, fuzzy
-#~ msgid "List Manager"
-#~ msgstr "/Не просуватись у списку пісень"
-
-#, fuzzy
-#~ msgid "Opens the playlist manager."
-#~ msgstr "Не очищати список програвання"
-
-#, fuzzy
-#~ msgid "View"
-#~ msgstr "/Вигляд"
-
-#, fuzzy
-#~ msgid "Add Internet Address..."
-#~ msgstr "/Додати адресу інтернет..."
-
-#, fuzzy
-#~ msgid "Adds a remote track to the playlist."
-#~ msgstr "Не очищати список програвання"
-
-#, fuzzy
-#~ msgid "Add Files..."
-#~ msgstr "/Додати файли..."
-
-#, fuzzy
-#~ msgid "Search and Select"
-#~ msgstr "/Сортувати вибране"
-
-#, fuzzy
-#~ msgid "Invert Selection"
-#~ msgstr "/Інвертувати вибране"
-
-#, fuzzy
-#~ msgid "Inverts the selected and unselected entries."
-#~ msgstr "Вибір шрифту для списку програвання"
-
-#~ msgid "Select All"
-#~ msgstr "Вибрати все"
-
-#, fuzzy
-#~ msgid "Select None"
-#~ msgstr "/Сортувати вибране"
-
-#, fuzzy
-#~ msgid "Deselects all of the playlist entries."
-#~ msgstr "Не очищати список програвання"
-
-#, fuzzy
-#~ msgid "Remove All"
-#~ msgstr "/Видалити все"
-
-#, fuzzy
-#~ msgid "Removes all entries from the playlist."
-#~ msgstr "/Видалити недоступні файли"
-
-#, fuzzy
-#~ msgid "Clear Queue"
-#~ msgstr "/Очистити чергу"
-
-#, fuzzy
-#~ msgid "Clears the queue associated with this playlist."
-#~ msgstr "Вибір шрифту для списку програвання"
-
-#, fuzzy
-#~ msgid "Remove Unavailable Files"
-#~ msgstr "/Видалити недоступні файли"
-
-#, fuzzy
-#~ msgid "Removes unavailable files from the playlist."
-#~ msgstr "/Видалити недоступні файли"
-
-#, fuzzy
-#~ msgid "Remove Duplicates"
-#~ msgstr "/Видалити вибране"
-
-#, fuzzy
-#~ msgid "By Title"
-#~ msgstr "Заголовок"
-
-#, fuzzy
-#~ msgid "Removes duplicate entries from the playlist by title."
-#~ msgstr "/Сортувати список/За шляхом й іменем файлу"
-
-#, fuzzy
-#~ msgid "By Filename"
-#~ msgstr "Ім'я файлу"
-
-#, fuzzy
-#~ msgid "Removes duplicate entries from the playlist by filename."
-#~ msgstr "/Сортувати список/За шляхом й іменем файлу"
-
-#, fuzzy
-#~ msgid "By Path + Filename"
-#~ msgstr "/Сортувати список/За шляхом й іменем файлу"
-
-#, fuzzy
-#~ msgid "Removes duplicate entries from the playlist by their full path."
-#~ msgstr "/Сортувати список/За шляхом й іменем файлу"
-
-#, fuzzy
-#~ msgid "Remove Unselected"
-#~ msgstr "/Видалити НЕ вибране"
-
-#, fuzzy
-#~ msgid "Remove unselected entries from the playlist."
-#~ msgstr "/Сортувати список/За шляхом й іменем файлу"
-
-#, fuzzy
-#~ msgid "Remove Selected"
-#~ msgstr "/Видалити вибране"
-
-#, fuzzy
-#~ msgid "Remove selected entries from the playlist."
-#~ msgstr "/Сортувати список/За шляхом й іменем файлу"
-
-#, fuzzy
-#~ msgid "Randomize List"
-#~ msgstr "/Перемішати список"
-
-#, fuzzy
-#~ msgid "Randomizes the playlist."
-#~ msgstr "/Перемішати список"
-
-#, fuzzy
-#~ msgid "Reverse List"
-#~ msgstr "/Інвертувати список"
-
-#, fuzzy
-#~ msgid "Reverses the playlist."
-#~ msgstr "Не очищати список програвання"
-
-#, fuzzy
-#~ msgid "Sort List"
-#~ msgstr "/Сортувати список"
-
-#, fuzzy
-#~ msgid "Sorts the list by title."
-#~ msgstr "/Сортувати список/За назвою"
-
-#, fuzzy
-#~ msgid "By Album"
-#~ msgstr "Альбом"
-
-#, fuzzy
-#~ msgid "Sorts the list by album."
-#~ msgstr "/Сортувати список/За назвою"
-
-#, fuzzy
-#~ msgid "By Artist"
-#~ msgstr "Виконавець"
-
-#, fuzzy
-#~ msgid "Sorts the list by artist."
-#~ msgstr "/Сортувати список/За назвою"
-
-#, fuzzy
-#~ msgid "Sorts the list by filename."
-#~ msgstr "/Сортувати список/За іменем файлу"
-
-#, fuzzy
-#~ msgid "Sorts the list by full pathname."
-#~ msgstr "/Сортувати список/За іменем файлу"
-
-#, fuzzy
-#~ msgid "By Date"
-#~ msgstr "Дата"
-
-#, fuzzy
-#~ msgid "Sorts the list by modification time."
-#~ msgstr "/Сортувати список/За назвою"
-
-#, fuzzy
-#~ msgid "By Track Number"
-#~ msgstr "Номер доріжкии"
-
-#, fuzzy
-#~ msgid "Sorts the list by track number."
-#~ msgstr "/Сортувати список/За датою"
-
-#, fuzzy
-#~ msgid "By Playlist Entry"
-#~ msgstr "/Сортувати список/За назвою"
-
-#, fuzzy
-#~ msgid "Sorts the list by playlist entry."
-#~ msgstr "/Сортувати список/За назвою"
-
-#, fuzzy
-#~ msgid "Sort Selected"
-#~ msgstr "/Сортувати вибране"
-
-#, fuzzy
-#~ msgid "File"
-#~ msgstr "Сатира"
-
-#, fuzzy
-#~ msgid "Components"
-#~ msgstr "Коментар"
-
-#, fuzzy
-#~ msgid "View Track Details"
-#~ msgstr "/Інформація про пісню"
-
-#, fuzzy
-#~ msgid "Play File"
-#~ msgstr "/Програвати файли"
-
-#, fuzzy
-#~ msgid "Load and play a file"
-#~ msgstr ""
-#~ "Завантажувати інформацію про пісні з музичних файлів і списків програвання"
-
-#, fuzzy
-#~ msgid "Play Location"
-#~ msgstr "/Програвати знаходження"
-
-#, fuzzy
-#~ msgid "Plugin services"
-#~ msgstr "Модулі"
-
-#, fuzzy
-#~ msgid "Preferences"
-#~ msgstr "/Налаштування"
-
-#, fuzzy
-#~ msgid "Open preferences window"
-#~ msgstr "Вікно налаштувань"
-
-#, fuzzy
-#~ msgid "_Quit"
-#~ msgstr "/_Вийти"
-
-#, fuzzy
-#~ msgid "Quit Audacious"
-#~ msgstr "Про Audacious"
-
-#, fuzzy
-#~ msgid "Set A-B"
-#~ msgstr "Вибрати все"
-
-#, fuzzy
-#~ msgid "Clear A-B"
-#~ msgstr "/Очистити чергу"
-
-#, fuzzy
-#~ msgid "Jump to Playlist Start"
-#~ msgstr "/Перейти до першої пісні у списку"
-
-#, fuzzy
-#~ msgid "Jump to File"
-#~ msgstr "/Перейти до файлу"
-
-#, fuzzy
-#~ msgid "Queue Toggle"
-#~ msgstr "/Поставити пісню в чергу"
-
-#, fuzzy
-#~ msgid "Load"
-#~ msgstr "/Завантажити"
-
-#, fuzzy
-#~ msgid "Import"
-#~ msgstr "/Імпорт"
-
-#, fuzzy
-#~ msgid "Save"
-#~ msgstr "/Зберегти"
-
-#, fuzzy
-#~ msgid "Delete"
-#~ msgstr "/Стерти"
-
-#~ msgid "Preset"
-#~ msgstr "Попередня установка"
-
-#~ msgid "Load preset"
-#~ msgstr "Завантажити установки"
-
-#, fuzzy
-#~ msgid "Auto-load preset"
-#~ msgstr "/Завантажити/Автоматичні установки"
-
-#, fuzzy
-#~ msgid "Load auto-load preset"
-#~ msgstr "/Завантажити/Автоматичні установки"
-
-#~ msgid "Default"
-#~ msgstr "Основна"
-
-#, fuzzy
-#~ msgid "Load default preset into equalizer"
-#~ msgstr "Зберегти автоматичні установки"
-
-#, fuzzy
-#~ msgid "Zero"
-#~ msgstr "Ретро"
-
-#, fuzzy
-#~ msgid "Set equalizer preset levels to zero"
-#~ msgstr "Зберегти установки еквалайзера"
-
-#, fuzzy
-#~ msgid "From file"
-#~ msgstr "/Завантажити/З файлу"
-
-#, fuzzy
-#~ msgid "Load preset from file"
-#~ msgstr "Завантажити установки"
-
-#, fuzzy
-#~ msgid "From WinAMP EQF file"
-#~ msgstr "/Завантажити/З файлу EQF WinAMP"
-
-#, fuzzy
-#~ msgid "Load preset from WinAMP EQF file"
-#~ msgstr "/Завантажити/З файлу EQF WinAMP"
-
-#, fuzzy
-#~ msgid "WinAMP Presets"
-#~ msgstr "/Імпорт/Установки WinAMP"
-
-#, fuzzy
-#~ msgid "Import WinAMP presets"
-#~ msgstr "/Імпорт/Установки WinAMP"
-
-#~ msgid "Save preset"
-#~ msgstr "Зберегти установки"
-
-#, fuzzy
-#~ msgid "Save auto-load preset"
-#~ msgstr "/Зберегти/Автоматичні установки"
-
-#, fuzzy
-#~ msgid "Save default preset"
-#~ msgstr "Зберегти автоматичні установки"
-
-#, fuzzy
-#~ msgid "To file"
-#~ msgstr "/Завантажити/З файлу"
-
-#, fuzzy
-#~ msgid "Save preset to file"
-#~ msgstr "Зберегти установки"
-
-#, fuzzy
-#~ msgid "To WinAMP EQF file"
-#~ msgstr "/Зберегти/В файл EQF WinAMP"
-
-#, fuzzy
-#~ msgid "Save preset to WinAMP EQF file"
-#~ msgstr "/Зберегти/В файл EQF WinAMP"
-
-#~ msgid "Delete preset"
-#~ msgstr "Стерти установки"
-
-#, fuzzy
-#~ msgid "Delete auto-load preset"
-#~ msgstr "/Стерти/Автоматичні установки"
-
-#~ msgid ""
-#~ "<b><big>Unable to load skin.</big></b>\n"
-#~ "\n"
-#~ "Check that skin at '%s' is usable and default skin is properly installed "
-#~ "at '%s'\n"
-#~ msgstr ""
-#~ "<b><big>Не можу завантажити тему.</big></b>\n"
-#~ "\n"
-#~ "Перевірте,чи придатна до використання тема '%s' і встановлена типова тема "
-#~ "в '%s'\n"
-
-#, fuzzy
-#~ msgid "Audacious core developers:"
-#~ msgstr "Налаштування Audacious"
-
-#~ msgid "Audacious Equalizer"
-#~ msgstr "Еквалайзер Audacious"
-
-#, fuzzy
-#~ msgid "Play files"
-#~ msgstr "/Програвати файли"
-
-#, fuzzy
-#~ msgid "Load files"
-#~ msgstr "/Завантажити/З файлу"
-
-#~ msgid "VBR"
-#~ msgstr "VBR"
-
-#, fuzzy
-#~ msgid "mono"
-#~ msgstr "Моно"
-
-#, fuzzy
-#~ msgid "Show main player window"
-#~ msgstr "Вибір шрифту для головного вікна"
-
-#, fuzzy
-#~ msgid "Ignore"
-#~ msgstr "Нічого"
-
-#, fuzzy
-#~ msgid "Seek to: %d:%-2.2d/%d:%-2.2d (%d%%)"
-#~ msgstr "ПЕРЕМОТАТИ НА: %d:%-2.2d/%d:%-2.2d (%d%%)"
-
-#, fuzzy
-#~ msgid "Options Menu"
-#~ msgstr "Параметри"
-
-#, fuzzy
-#~ msgid "Disable 'Always On Top'"
-#~ msgstr "/Завжди згори"
-
-#, fuzzy
-#~ msgid "Enable 'Always On Top'"
-#~ msgstr "/Завжди згори"
-
-#, fuzzy
-#~ msgid "File Info Box"
-#~ msgstr "Інформація про файл"
-
-#, fuzzy
-#~ msgid "Disable 'GUI Scaling'"
-#~ msgstr "Заборонити теги ID3V2"
-
-#, fuzzy
-#~ msgid "Visualization Menu"
-#~ msgstr "/Режим візуалізації"
-
-#~ msgid ""
-#~ "<b><big>Couldn't open audio.</big></b>\n"
-#~ "\n"
-#~ "Please check that:\n"
-#~ "1. You have the correct output plugin selected.\n"
-#~ "2. No other programs is blocking the soundcard.\n"
-#~ "3. Your soundcard is configured properly.\n"
-#~ msgstr ""
-#~ "<b><big>Не можу відкрити аудіопристрій</big></b>\n"
-#~ "\n"
-#~ "Будь-ласка впевніться, що:\n"
-#~ "1. Ви вибрали вірний вихідний модуль\n"
-#~ "2. Інші програми не блокують звукову плату\n"
-#~ "3. Ваша звукова плата сконфіґурована вірно \n"
-
-#, fuzzy
-#~ msgid "Autoscroll Songname"
-#~ msgstr "/Автоматична прокрутка назви пісні"
-
-#, fuzzy
-#~ msgid "Show Player"
-#~ msgstr "/Показати редактор списку пісень"
-
-#, fuzzy
-#~ msgid "Show Playlist Editor"
-#~ msgstr "/Показати редактор списку пісень"
-
-#, fuzzy
-#~ msgid "Show Equalizer"
-#~ msgstr "/Еквалайзер"
-
-#, fuzzy
-#~ msgid "Always on Top"
-#~ msgstr "/Завжди згори"
-
-#, fuzzy
-#~ msgid "Put on All Workspaces"
-#~ msgstr "/На всі стільниці"
-
-#, fuzzy
-#~ msgid "Roll up Player"
-#~ msgstr "/Згорнути програвач"
-
-#, fuzzy
-#~ msgid "Roll up Playlist Editor"
-#~ msgstr "/Згорнути редактор списку програвання"
-
-#, fuzzy
-#~ msgid "Roll up Equalizer"
-#~ msgstr "/Згорнути еквалайзер"
-
-#, fuzzy
-#~ msgid "Scale"
-#~ msgstr "/Зберегти"
-
-#, fuzzy
-#~ msgid "Analyzer"
-#~ msgstr "/Режим аналізатора"
-
-#, fuzzy
-#~ msgid "Scope"
-#~ msgstr "/Режим графіка"
-
-#, fuzzy
-#~ msgid "Voiceprint"
-#~ msgstr "/Режим аналізатора/Полум'я"
-
-#, fuzzy
-#~ msgid "Normal"
-#~ msgstr "Формат ID3-тегу:"
-
-#, fuzzy
-#~ msgid "Fire"
-#~ msgstr "Сатира"
-
-#, fuzzy
-#~ msgid "Vertical Lines"
-#~ msgstr "/Режим аналізатора/Вертикальні лінії"
-
-#, fuzzy
-#~ msgid "Lines"
-#~ msgstr "рядків"
-
-#, fuzzy
-#~ msgid "Bars"
-#~ msgstr "Бас"
-
-#, fuzzy
-#~ msgid "Dot Scope"
-#~ msgstr "/Режим графіка/Точки"
-
-#, fuzzy
-#~ msgid "Line Scope"
-#~ msgstr "/Режим графіка/Лінії"
-
-#, fuzzy
-#~ msgid "Solid Scope"
-#~ msgstr "/Режим графіка/Заливка"
-
-#, fuzzy
-#~ msgid "Smooth"
-#~ msgstr "Моно"
-
-#, fuzzy
-#~ msgid "Full (~50 fps)"
-#~ msgstr "/Частота поновлення/Повна (~50 fps)"
-
-#, fuzzy
-#~ msgid "Half (~25 fps)"
-#~ msgstr "/Частота поновлення/Половина (~25 fps)"
-
-#, fuzzy
-#~ msgid "Quarter (~13 fps)"
-#~ msgstr "/Частота  поновлення/Четверть (~13 fps)"
-
-#, fuzzy
-#~ msgid "Eighth (~6 fps)"
-#~ msgstr "/Частота поновлення/Восьма (~6 fps)"
-
-#, fuzzy
-#~ msgid "Slowest"
-#~ msgstr "Імпровізація"
-
-#, fuzzy
-#~ msgid "Slow"
-#~ msgstr "низьке"
-
-#, fuzzy
-#~ msgid "Medium"
-#~ msgstr "середнє"
-
-#, fuzzy
-#~ msgid "Time Elapsed"
-#~ msgstr "/Час від початку"
-
-#, fuzzy
-#~ msgid "Time Remaining"
-#~ msgstr "/Час, що залишився"
-
-#, fuzzy
-#~ msgid "Plugin Services"
-#~ msgstr "Модулі"
-
-#, fuzzy
-#~ msgid "Search entries in active playlist"
-#~ msgstr "Показувати номери пісень у списку програвання"
-
-#, fuzzy
-#~ msgid "Title: "
-#~ msgstr "Назва:"
-
-#, fuzzy
-#~ msgid "Album: "
-#~ msgstr "Альбом:"
-
-#, fuzzy
-#~ msgid "Artist: "
-#~ msgstr "Виконавець:"
-
-#, fuzzy
-#~ msgid "Filename: "
-#~ msgstr "Ім'я файлу:"
-
-#~ msgid "Audacious Playlist Editor"
-#~ msgstr "/Показати редактор списку пісень"
-
-#~ msgid "Appearance"
-#~ msgstr "Зовнішній вигляд"
-
-#~ msgid "<b>_Fonts</b>"
-#~ msgstr "<b>_Шрифти</b>"
-
-#~ msgid "_Player:"
-#~ msgstr "_Головне вікно програвача:"
-
-#~ msgid "Select main player window font:"
-#~ msgstr "Вибір шрифту для головного вікна"
-
-#~ msgid "_Playlist:"
-#~ msgstr "_Список програвання:"
-
-#, fuzzy
-#~ msgid "Select playlist font:"
-#~ msgstr "Вибір шрифту для головного вікна"
-
-#~ msgid "Use Bitmap fonts if available"
-#~ msgstr "Використовувати растрові шрифти (якщо наявні)"
-
-#~ msgid "<b>_Miscellaneous</b>"
-#~ msgstr "<b>_Різне</b>"
-
-#~ msgid "Show track numbers in playlist"
-#~ msgstr "Показувати номери пісень у списку програвання"
-
-#, fuzzy
-#~ msgid "Show separators in playlist"
-#~ msgstr "Показувати номери пісень у списку програвання"
-
-#~ msgid "On load"
-#~ msgstr "При відкритті"
-
-#~ msgid "Load metadata when adding the file to the playlist or opening it"
-#~ msgstr ""
-#~ "Завантажувати інформацію про пісню та виконавця при додаванні файлу в "
-#~ "список програвання або відкритті"
-
-#~ msgid "On display"
-#~ msgstr "При відображенні"
-
-#, fuzzy
-#~ msgid ""
-#~ "Load metadata on demand when displaying the file in the playlist. You may "
-#~ "need to set \"Detect file formats on demand\" in Audio page for full "
-#~ "benefit."
-#~ msgstr ""
-#~ "Завантажувати інформацію про пісню та виконавця при додаванні файлу в "
-#~ "список програвання або відкритті"
-
-#, fuzzy
-#~ msgid "Blue"
-#~ msgstr "Блюз"
-
-#, fuzzy
-#~ msgid "Green"
-#~ msgstr "Грецький:"
-
-#~ msgid "<b>_Skin</b>"
-#~ msgstr "<b>_Тема</b>"
-
-#, fuzzy
-#~ msgid "Refresh skin list"
-#~ msgstr "/Частота поновлення"
-
-#~ msgid "PREAMP"
-#~ msgstr "PREAMP"
-
-#~ msgid "60HZ"
-#~ msgstr "60 Гц"
-
-#~ msgid "170HZ"
-#~ msgstr "170 Гц"
-
-#~ msgid "310HZ"
-#~ msgstr "310 Гц"
-
-#~ msgid "600HZ"
-#~ msgstr "600 Гц"
-
-#~ msgid "1KHZ"
-#~ msgstr "1 кГц"
-
-#~ msgid "3KHZ"
-#~ msgstr "3 кГц"
-
-#~ msgid "6KHZ"
-#~ msgstr "6 кГц"
-
-#~ msgid "12KHZ"
-#~ msgstr "12 кГц"
-
-#~ msgid "14KHZ"
-#~ msgstr "14 кГц"
-
-#~ msgid "16KHZ"
-#~ msgstr "16 кГц"
-
-#~ msgid "Use custom cursors"
-#~ msgstr "Використовувати курсори, встановлені темою"
-
-#, fuzzy
-#~ msgid "Reload Plugins"
-#~ msgstr "Модулі"
-
-#~ msgid ""
-#~ "Sorry, threads isn't supported on your platform.\n"
-#~ "\n"
-#~ "If you're on a libc5 based linux system and installed Glib & GTK+ before "
-#~ "you\n"
-#~ "installed LinuxThreads you need to recompile Glib & GTK+.\n"
-#~ msgstr ""
-#~ "Вибачте, гілки не підтрумуються на вашій платформі.\n"
-#~ "\n"
-#~ "Якщо ви використовуєте лінукс систему на основі libc5 і встановленими "
-#~ "Glib і GTK+ вам\n"
-#~ "перед встановленням LinuxThreads слід перекомпілювати Glib і GTK+.\n"
-
-#, fuzzy
-#~ msgid "Error in Audacious."
-#~ msgstr "Про Audacious"
-
-#, fuzzy
-#~ msgid "Enable 6 dB hard limiter"
-#~ msgstr "Дозволити підсилення 6дБ + жорстке обмеження"
-
-#, fuzzy
-#~ msgid "Select which Audacious session ID to use"
-#~ msgstr "Встановити сесію для audacious/ВМР/XMMS (типова: 0)"
-
-#~ msgid "<b>Presets</b>"
-#~ msgstr "<b>Попередні установки</b>"
-
-#~ msgid "File preset extension:"
-#~ msgstr "Розширення файлу попередніх установок:"
-
-#~ msgid "Directory preset file:"
-#~ msgstr "Каталогу попередніх установок:"
-
-#, fuzzy
-#~ msgid ""
-#~ "TITLE\n"
-#~ "ARTIST - TITLE\n"
-#~ "ARTIST - ALBUM - TITLE\n"
-#~ "ARTIST - ALBUM - TRACK. TITLE\n"
-#~ "ARTIST [ ALBUM ] - TRACK. TITLE\n"
-#~ "ALBUM - TITLE\n"
-#~ "Custom"
-#~ msgstr ""
-#~ "Назва\n"
-#~ "Виконавець - Назва\n"
-#~ "Виконавець - Альбом - Назва\n"
-#~ "Альбом - Назва\n"
-#~ "Особливе"
-
-#, fuzzy
-#~ msgid "Track Information Window"
-#~ msgstr "Підсилення доріжок:"
-
-#~ msgid "Preferences Window"
-#~ msgstr "Вікно налаштувань"
-
-#, fuzzy
-#~ msgid "Close"
-#~ msgstr "/Закрити"
-
-#, fuzzy
-#~ msgid "<b>Artist:</b> %s"
-#~ msgstr "Виконавець"
-
-#, fuzzy
-#~ msgid "<b>Title:</b> %s"
-#~ msgstr "<b>Ім'я файлу</b>"
-
-#, fuzzy
-#~ msgid "<b>Album:</b> %s"
-#~ msgstr "<b>Ім'я файлу</b>"
-
-#, fuzzy
-#~ msgid "Audacious last.fm radio tuner"
-#~ msgstr "/Показати редактор списку пісень"
-
-#, fuzzy
-#~ msgid "<b>Artist:</b>"
-#~ msgstr "Виконавець"
-
-#, fuzzy
-#~ msgid "<b>Title:</b>"
-#~ msgstr "<b>Ім'я файлу</b>"
-
-#, fuzzy
-#~ msgid "<b>Album:</b>"
-#~ msgstr "<b>Ім'я файлу</b>"
-
-#~ msgid "VOLUME: %d%%"
-#~ msgstr "ГУЧНІСТЬ: %d%%"
-
-#~ msgid "BALANCE: %d%% LEFT"
-#~ msgstr "БАЛАНС: %d%% ЛІВОРУЧ"
-
-#~ msgid "BALANCE: CENTER"
-#~ msgstr "БАЛАНС: ЦЕНТР"
-
-#~ msgid "BALANCE: %d%% RIGHT"
-#~ msgstr "БАЛАНС: %d%% ПРАВОРУЧ"
-
-#, fuzzy
-#~ msgid "Last.fm radio"
-#~ msgstr "/Програвати знаходження"
-
-#, fuzzy
-#~ msgid "Play Last.fm radio"
-#~ msgstr "/Програвати знаходження"
-
-#, fuzzy
-#~ msgid "Converter Type:"
-#~ msgstr "Перетворити кодування"
-
-#~ msgid ""
-#~ "<b><big>No playable CD found.</big></b>\n"
-#~ "\n"
-#~ "No CD inserted, or inserted CD is not an audio CD.\n"
-#~ msgstr ""
-#~ "<b><big>Не знайдено звукового CD.</big></b>\n"
-#~ "\n"
-#~ "Компакт-диск відсутній або не містить аудіодоріжок.\n"
-
-#, fuzzy
-#~ msgid "Add CD..."
-#~ msgstr "/Додати CD..."
-
-#, fuzzy
-#~ msgid "Play CD"
-#~ msgstr "/Грати"
-
-#~ msgid "Performer/Artist"
-#~ msgstr "Виконавець/Артист"
-
-#~ msgid "File name"
-#~ msgstr "Назва файлу"
-
-#~ msgid "File path"
-#~ msgstr "Маршрут до файлу"
-
-#~ msgid "File extension"
-#~ msgstr "Розширення файлу"
-
-#~ msgid "Track name"
-#~ msgstr "Назва доріжки"
-
-#~ msgid "Track number"
-#~ msgstr "Номер доріжкии"
-
-#~ msgid "%{n:...%}: Display \"...\" only if element %n is present"
-#~ msgstr "%{n:...%}: Відображати \"...\", коли елемент %n присутній"
-
-#, fuzzy
-#~ msgid ""
-#~ "Sorry, your GTK+ version (%d.%d.%d) does not work with Audacious.\n"
-#~ "Please use GTK+ %s or newer.\n"
-#~ msgstr ""
-#~ "Вибачте, ваша GTK+ версія (%d.%d.%d) не працюватиме з BMP.\n"
-#~ "Будь-ласка, викоритовуйте GTK+ %s або кращу.\n"
-
-#~ msgid "OPTIONS MENU"
-#~ msgstr "МЕНЮ ОПЦІЙ"
-
-#~ msgid "DISABLE ALWAYS ON TOP"
-#~ msgstr "ЗАБОРОНИТИ СПЛИВАННЯ НАГОРУ"
-
-#~ msgid "ENABLE ALWAYS ON TOP"
-#~ msgstr "ДОЗВОЛИТИ СПЛИВАННЯ НАГОРУ "
-
-#~ msgid "FILE INFO BOX"
-#~ msgstr "ВІКНО ІНФОРМАЦІЇ ФАЙЛУ"
-
-#~ msgid "VISUALIZATION MENU"
-#~ msgstr "МЕНЮ ВІЗУАЛІЗАЦІЇ"
-
-#, fuzzy
-#~ msgid "Track name: "
-#~ msgstr "Назви доріжок:"
-
-#~ msgid ""
-#~ "<b><big>Unable to play files.</big></b>\n"
-#~ "\n"
-#~ "The following files could not be played. Please check that:\n"
-#~ "1. they are accessible.\n"
-#~ "2. you have enabled the media plugins required."
-#~ msgstr ""
-#~ "<b><big>Не можу грати файли.</big></b>\n"
-#~ "\n"
-#~ "Певні файли не можуть бути відтворені. Будь-ласка, перевірте :\n"
-#~ "1. Наявність цих файлів.\n"
-#~ "2. Увімкнення необхідних аудіо-модулів."
-
-#~ msgid "Show more _details"
-#~ msgstr "_Докладніше"
-
-#, fuzzy
-#~ msgid ""
-#~ "\n"
-#~ "Received SIGSEGV\n"
-#~ "\n"
-#~ "This could be a bug in Audacious. If you don't know why this happened, "
-#~ "file a bug at http://bugs-meta.atheme.org/\n"
-#~ "\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Отрмано SIGSEGV\n"
-#~ "\n"
-#~ "Можливо, це помилка в Audacious. Якщо ви не знаєте, чому це сталось, "
-#~ "відправте повідомлення на at http://bugs.nenolod.net/\n"
-#~ "\n"
-
-#, fuzzy
-#~ msgid "Enable playlist transparency"
-#~ msgstr "Вмикнути підсилення програвання"
-
-#~ msgid "%s: option `%s' is ambiguous\n"
-#~ msgstr "%s: параметр `%s' - неоднозначний\n"
-
-#~ msgid "%s: option `--%s' doesn't allow an argument\n"
-#~ msgstr "%s: параметр `--%s' не може мати аргументів\n"
-
-#~ msgid "%s: option `%c%s' doesn't allow an argument\n"
-#~ msgstr "%s: параметр `%c%s' не може мати аргументу\n"
-
-#~ msgid "%s: option `%s' requires an argument\n"
-#~ msgstr "%s: параметру `%s' необхідний аргумент\n"
-
-#~ msgid "%s: unrecognized option `%c%s'\n"
-#~ msgstr "%s: не розпізнано параметру `%c%s'\n"
-
-#~ msgid "%s: illegal option -- %c\n"
-#~ msgstr "%s: невірний параметр -- %c\n"
-
-#~ msgid "%s: invalid option -- %c\n"
-#~ msgstr "%s: невірний параметр -- %c\n"
-
-#~ msgid "%s: option requires an argument -- %c\n"
-#~ msgstr "%s: параметру необхідний аргумент -- %c\n"
-
-#~ msgid "%s: option `-W %s' is ambiguous\n"
-#~ msgstr "%s: параметр `-W %s' неоднозначний\n"
-
-#~ msgid "%s: option `-W %s' doesn't allow an argument\n"
-#~ msgstr "%s: опція `-W %s' не повинна мати аргумента\n"
-
-#~ msgid ""
-#~ "Usage: audacious [options] [files] ...\n"
-#~ "\n"
-#~ "Options:\n"
-#~ "--------\n"
-#~ msgstr ""
-#~ "Використання: audacious [параметри] [файли] ...\n"
-#~ "\n"
-#~ "Параметри:\n"
-#~ "--------\n"
-
-#~ msgid "Display this text and exit"
-#~ msgstr "Надрукувати цей текст і вийти"
-
-#, fuzzy
-#~ msgid "Activate Audacious"
-#~ msgstr "Активувати audacious"
-
-#~ msgid "Previous session ID"
-#~ msgstr "Ідентифікатор попередньго сеансу"
-
-#~ msgid "Print version number and exit\n"
-#~ msgstr "Надрукувати номер версії і завершити роботу.\n"
-
-#~ msgid "Add/Open Files dialog"
-#~ msgstr "Вікно додавання файлів"
-
-#~ msgid "Close Dialog on Add"
-#~ msgstr "Закрити вікно після додавання"
-
-#~ msgid "Deselect All"
-#~ msgstr "Скасувати виділення"
-
-#, fuzzy
-#~ msgid "Artist Popup"
-#~ msgstr "Виконавець"
-
-#, fuzzy
-#~ msgid "<i>Genre</i>"
-#~ msgstr "<b>Ім'я файлу</b>"
-
-#, fuzzy
-#~ msgid "<i>Year</i>"
-#~ msgstr "<b>Ім'я файлу</b>"
-
-#, fuzzy
-#~ msgid "<i>Track Number</i>"
-#~ msgstr "Номер доріжкии"
-
-#, fuzzy
-#~ msgid "<i>Track Length</i>"
-#~ msgstr "Довжина доріжки:"
-
-#~ msgid "/View Track Details"
-#~ msgstr "/Інформація про пісню"
-
-#~ msgid "/Visualization Mode/Analyzer"
-#~ msgstr "/Режим візуалізації/Аналізатор"
-
-#~ msgid "/Visualization Mode/Scope"
-#~ msgstr "/Режим візуалізації/Графік"
-
-#, fuzzy
-#~ msgid "/Visualization Mode/Voiceprint"
-#~ msgstr "/Режим візуалізації/Графік"
-
-#~ msgid "/Visualization Mode/Off"
-#~ msgstr "/Режим візуализації/Вимкнено"
-
-#~ msgid "/Analyzer Mode/Normal"
-#~ msgstr "/Режим аналізатора/Звичайний"
-
-#~ msgid "/Analyzer Mode/Lines"
-#~ msgstr "/Режим аналізатора/Лінії"
-
-#~ msgid "/Analyzer Mode/Bars"
-#~ msgstr "/Режим аналізатора/Смуги"
-
-#~ msgid "/Analyzer Mode/Peaks"
-#~ msgstr "/Режим аналізатора/Піки"
-
-#, fuzzy
-#~ msgid "/Voiceprint mode/Normal"
-#~ msgstr "/Режим аналізатора/Звичайний"
-
-#~ msgid "/WindowShade VU Mode/Normal"
-#~ msgstr "/При мінімізованому окне/Звичайний"
-
-#~ msgid "/WindowShade VU Mode/Smooth"
-#~ msgstr "/При мінімізованому вікні/Плавний"
-
-#~ msgid "/Analyzer Falloff/Slowest"
-#~ msgstr "/Падіння Аналізатора/Найповільніше"
-
-#~ msgid "/Analyzer Falloff/Slow"
-#~ msgstr "/Падіння Аналізатора/Повільне"
-
-#~ msgid "/Analyzer Falloff/Medium"
-#~ msgstr "/Падіння Аналізатора/Середнє"
-
-#~ msgid "/Analyzer Falloff/Fast"
-#~ msgstr "/Падіння Аналізатора/Швидке"
-
-#~ msgid "/Analyzer Falloff/Fastest"
-#~ msgstr "/Падіння Аналізатора/Найшвидше"
-
-#~ msgid "/Peaks Falloff/Slowest"
-#~ msgstr "/Падіння піків/Найповільніше"
-
-#~ msgid "/Peaks Falloff/Slow"
-#~ msgstr "/Падіння піків/Повільне"
-
-#~ msgid "/Peaks Falloff/Medium"
-#~ msgstr "/Падіння піків/Середнє"
-
-#~ msgid "/Peaks Falloff/Fast"
-#~ msgstr "/Падіння піків/Швидке"
-
-#~ msgid "/Peaks Falloff/Fastest"
-#~ msgstr "/Падіння піків/Найшвидше"
-
-#~ msgid "/-"
-#~ msgstr "/-"
-
-#~ msgid "/Jump to Time"
-#~ msgstr "/Перейти до часу"
-
-#~ msgid "/About Audacious"
-#~ msgstr "/Про Audacious"
-
-#~ msgid "/Files..."
-#~ msgstr "/Додати Файли..."
-
-#~ msgid "/Internet location..."
-#~ msgstr "/Додати Адресу в інтернет..."
-
-#, fuzzy
-#~ msgid "New List"
-#~ msgstr "/Новий список"
-
-#, fuzzy
-#~ msgid "Creates a new playlist."
-#~ msgstr "Показувати номери пісень у списку програвання"
-
-#, fuzzy
-#~ msgid "Displays track information."
-#~ msgstr "Підсилення доріжок:"
-
-#~ msgid "/Load/Preset"
-#~ msgstr "/Завантажити/Попередні установки"
-
-#~ msgid "/Load/Default"
-#~ msgstr "/Завантажити/По замовчанню"
-
-#~ msgid "/Load/Zero"
-#~ msgstr "/Завантажити/Нуль"
-
-#~ msgid "/Save"
-#~ msgstr "/Зберегти"
-
-#~ msgid "/Save/Preset"
-#~ msgstr "/Зберегти/Установки"
-
-#~ msgid "/Save/Default"
-#~ msgstr "/Зберегти/Стандартні "
-
-#~ msgid "/Save/To file"
-#~ msgstr "/Зберегти/В файл"
-
-#~ msgid "/Delete/Preset"
-#~ msgstr "/Стерти/Установки"
-
-#~ msgid "Load auto-preset"
-#~ msgstr "Завантажити автоматичні установкии"
-
-#~ msgid "Load equalizer preset"
-#~ msgstr "Завантажити установки еквалайзера"
-
-#~ msgid "Delete auto-preset"
-#~ msgstr "Стерти автоматичні установки"
-
-#, fuzzy
-#~ msgid "/Remove Duplicates/By Title"
-#~ msgstr "/Сортувати список/За назвою"
-
-#, fuzzy
-#~ msgid "/Remove Duplicates/By Filename"
-#~ msgstr "/Сортувати список/За іменем файлу"
-
-#~ msgid "/Update View"
-#~ msgstr "/Обновити видимий список"
-
-#~ msgid "/Select All"
-#~ msgstr "Вибрати все"
-
-#~ msgid "/Sort List/By Date"
-#~ msgstr "/Сортувати список/За датою"
-
-#~ msgid "/Sort Selection/By Title"
-#~ msgstr "/Сортувати вибране/За назвою"
-
-#, fuzzy
-#~ msgid "/Sort Selection/By Artist"
-#~ msgstr "/Сортувати вибране/За назвою"
-
-#~ msgid "/Sort Selection/By Filename"
-#~ msgstr "/Сортувати вибране/За іменем файлу"
-
-#~ msgid "/Sort Selection/By Path + Filename"
-#~ msgstr "/Сортувати вибране/За шляхом й іменем файлу"
-
-#~ msgid "/Sort Selection/By Date"
-#~ msgstr "/Сортувати вибране/За датою"
-
-#, fuzzy
-#~ msgid "/Sort Selection/By Track Number"
-#~ msgstr "/Сортувати вибране/За датою"
-
-#, fuzzy
-#~ msgid "/Sort Selection/By Playlist Entry"
-#~ msgstr "/Сортувати вибране/За назвою"
-
-#, fuzzy
-#~ msgid "<b>_Miscillaneous UI Features</b>"
-#~ msgstr "<b>_Різне</b>"
-
-#, fuzzy
-#~ msgid "About AudioCompress"
-#~ msgstr "Про Audacious"
-
-#~ msgid "Ok"
-#~ msgstr "ОК"
-
-#, fuzzy
-#~ msgid "Extra Stereo Plugin %s"
-#~ msgstr "Модуль запису на диск %s"
-
-#, fuzzy
-#~ msgid "About Extra Stereo Plugin"
-#~ msgstr "Про модуль ESounD"
-
-#, fuzzy
-#~ msgid "Effect intensity:"
-#~ msgstr "Список модулів _ефектів:"
-
-#~ msgid "Cancel"
-#~ msgstr "Скасувати"
-
-#~ msgid "Apply"
-#~ msgstr "Застосувати"
-
-#, fuzzy
-#~ msgid "About LIRC Audacious Plugin"
-#~ msgstr "Про модуль підтримки формату MPEG"
-
-#, fuzzy
-#~ msgid "LIRC Plugin "
-#~ msgstr "Модулі"
-
-#, fuzzy
-#~ msgid "LIRC Plugin"
-#~ msgstr "Модулі"
-
-#~ msgid "Username:"
-#~ msgstr "Ім'я користувача:"
-
-#~ msgid "Password:"
-#~ msgstr "Пароль:"
-
-#, fuzzy
-#~ msgid "About Scrobbler Plugin"
-#~ msgstr "Про модуль ESounD"
-
-#, fuzzy
-#~ msgid "Scrobbler Plugin"
-#~ msgstr "Модулі"
-
-#~ msgid "Song Change %s"
-#~ msgstr "Зміна пісні %s"
-
-#~ msgid "Commands"
-#~ msgstr "Коментар"
-
-#~ msgid "Command:"
-#~ msgstr "Коментар:"
-
-#, fuzzy
-#~ msgid "Command to run when Audacious reaches the end of the playlist."
-#~ msgstr ""
-#~ "Завантажувати інформацію про пісню та виконавця при відображенні файлу в "
-#~ "списку програвання"
-
-#, fuzzy
-#~ msgid "About "
-#~ msgstr "Про програму"
-
-#, fuzzy
-#~ msgid "AMIDI-Plug - warning"
-#~ msgstr "Зміна налаштувань модуля підтримки MikMod"
-
-#, fuzzy
-#~ msgid "AMIDI-Plug - select file"
-#~ msgstr "Зміна налаштувань модуля підтримки MikMod"
-
-#, fuzzy
-#~ msgid "AMIDI-Plug - configuration"
-#~ msgstr "Зміна налаштувань модуля підтримки MikMod"
-
-#~ msgid "Name:"
-#~ msgstr "Ім'я:"
-
-#, fuzzy
-#~ msgid " MIDI Info "
-#~ msgstr "Інформація про компакт"
-
-#, fuzzy
-#~ msgid "Length (msec):"
-#~ msgstr "Довжина:"
-
-#, fuzzy
-#~ msgid "Num of Tracks:"
-#~ msgstr "Перейти до доріжки"
-
-#~ msgid "CD Audio Plugin"
-#~ msgstr "Модуль підтримки аудіо компакт-дисків"
-
-#~ msgid "CD Audio Track %02u"
-#~ msgstr "CD аудіо доріжка %02u"
-
-#~ msgid "(unknown)"
-#~ msgstr "(невідомо)"
-
-#~ msgid "Drive %d"
-#~ msgstr "Пристрій %d"
-
-#~ msgid ""
-#~ "Failed to open device %s\n"
-#~ "Error: %s\n"
-#~ "\n"
-#~ msgstr ""
-#~ "Не можу відкрити пристрій %s\n"
-#~ "Помилка: %s\n"
-#~ "\n"
-
-#~ msgid ""
-#~ "Failed to read \"Table of Contents\"\n"
-#~ "Maybe no disc in the drive?\n"
-#~ "\n"
-#~ msgstr ""
-#~ "Не можу прочитати \"Оглавление\"\n"
-#~ "Може диск не вставлений в привід?\n"
-#~ "\n"
-
-#~ msgid ""
-#~ "Device %s OK.\n"
-#~ "Disc has %d tracks"
-#~ msgstr ""
-#~ "Привід %s: ОК.\n"
-#~ "На дискі %d доріжок"
-
-#~ msgid " (%d data tracks)"
-#~ msgstr " (%d доріжок з даними)"
-
-#~ msgid ""
-#~ "\n"
-#~ "Total length: %d:%d\n"
-#~ msgstr ""
-#~ "\n"
-#~ "Загальна довжина: %d:%d\n"
-
-#~ msgid ""
-#~ "Digital audio extraction not tested as the disc has no audio tracks\n"
-#~ msgstr ""
-#~ "Цифрове зчитування аудіо не тестовано, оскільки на диску нема "
-#~ "аудіодоріжок\n"
-
-#~ msgid ""
-#~ "Digital audio extraction test: OK\n"
-#~ "\n"
-#~ msgstr ""
-#~ "Тестування цифрового зчитування: OK\n"
-#~ "\n"
-
-#~ msgid ""
-#~ "Digital audio extraction test failed: %s\n"
-#~ "\n"
-#~ msgstr ""
-#~ "Тестування цифрового зчитування не вдалось: %s\n"
-#~ "\n"
-
-#~ msgid ""
-#~ "Failed to check directory %s\n"
-#~ "Error: %s"
-#~ msgstr ""
-#~ "Не можу перевірити каталог %s\n"
-#~ "Помилка: %s"
-
-#~ msgid "Error: %s exist, but is not a directory"
-#~ msgstr "Помилка: %s існує, але не каталог"
-
-#~ msgid "Directory %s OK."
-#~ msgstr "Каталог %s в порядку.."
-
-#~ msgid "Device:"
-#~ msgstr "Пристрій:"
-
-#~ msgid "_Device:"
-#~ msgstr "_Пристрій:"
-
-#~ msgid "Dir_ectory:"
-#~ msgstr "_Каталог:"
-
-#~ msgid "Play mode:"
-#~ msgstr "Режим програвання:"
-
-#~ msgid "Analog"
-#~ msgstr "Аналоговий"
-
-#~ msgid "Digital audio extraction"
-#~ msgstr "Цифрове зчитування аудіо"
-
-#~ msgid "No mixer"
-#~ msgstr "Немає мікшера"
-
-#~ msgid "CDROM drive"
-#~ msgstr "Компакт-диск"
-
-#~ msgid "OSS mixer"
-#~ msgstr "Мікшер OSS"
-
-#~ msgid "Check drive..."
-#~ msgstr "Перевірити пристрій..."
-
-#~ msgid "Remove drive"
-#~ msgstr "Прибрати пристрій"
-
-#~ msgid "CD Audio Player Configuration"
-#~ msgstr "Конфігурація програвача компакт-дисків"
-
-#~ msgid "Add drive"
-#~ msgstr "Додати пристрій"
-
-#~ msgid "Device"
-#~ msgstr "Пристрій"
-
-#~ msgid "CDDB:"
-#~ msgstr "CDDB:"
-
-#~ msgid "Use CDDB"
-#~ msgstr "Використовувати CDDB"
-
-#~ msgid "Get server list"
-#~ msgstr "Отримати список серверів"
-
-#~ msgid "Show network window"
-#~ msgstr "Показати вікно мережі"
-
-#~ msgid "CDDB server:"
-#~ msgstr "Cервер CDDB :"
-
-#~ msgid "CD Index:"
-#~ msgstr "Індекс CD:"
-
-#~ msgid "Use CD Index"
-#~ msgstr "Використовувати індекс компакт-дисків"
-
-#~ msgid "CD Index server:"
-#~ msgstr "Сервер індексів CD:"
-
-#~ msgid "Override generic titles"
-#~ msgstr "Має перевагу над загальними заголовками"
-
-#~ msgid "Name format:"
-#~ msgstr "Формат назви:"
-
-#~ msgid "CD Info"
-#~ msgstr "Інформація про компакт"
-
-#, fuzzy
-#~ msgid "Japanese (EUC-JP)"
-#~ msgstr "Японський:"
-
-#, fuzzy
-#~ msgid "Unicode (UTF-8)"
-#~ msgstr "  (недопустима послідовність Юнікод)"
-
-#, fuzzy
-#~ msgid "Korean (UHC)"
-#~ msgstr "Корейський:"
-
-#~ msgid "Select the directory where you want to store the MPEG streams:"
-#~ msgstr "Виберіть директорію для запису потоків MPEG:"
-
-#, fuzzy
-#~ msgid "Flac Configuration"
-#~ msgstr "Конфігурація програвача компакт-дисків"
-
-#~ msgid "Convert character set from :"
-#~ msgstr "Перетворити кодування із:"
-
-#~ msgid "to :"
-#~ msgstr "на :"
-
-#, fuzzy
-#~ msgid "Enable ReplayGain processing"
-#~ msgstr "Вмикнути підсилення програвання"
-
-#~ msgid "Resolution"
-#~ msgstr "Роздільність:"
-
-#~ msgid "Without ReplayGain"
-#~ msgstr "Без підсилення при програванні"
-
-#~ msgid "Dither 24bps to 16bps"
-#~ msgstr "Змішувати 24bps до 16bps"
-
-#~ msgid "With ReplayGain"
-#~ msgstr "З підсиленням при програванні"
-
-#, fuzzy
-#~ msgid "Enable dithering"
-#~ msgstr "Вмикнено"
-
-#~ msgid "Noise shaping"
-#~ msgstr "Фомування шуму"
-
-#~ msgid "high"
-#~ msgstr "високе"
-
-#~ msgid "Dither to"
-#~ msgstr "Змішувати до"
-
-#~ msgid "16 bps"
-#~ msgstr "16 біт"
-
-#~ msgid "24 bps"
-#~ msgstr "24 біт"
-
-#~ msgid "Output"
-#~ msgstr "Вивід"
-
-#~ msgid "Buffering:"
-#~ msgstr "Буфер:"
-
-#~ msgid "Buffer size (kb):"
-#~ msgstr "Розмір буфера (кбайт):"
-
-#~ msgid "Pre-buffer (percent):"
-#~ msgstr "Попереднє буферування (відсотків):"
-
-#~ msgid "Save stream to disk:"
-#~ msgstr "Записати потік на диск:"
-
-#~ msgid "Save stream to disk"
-#~ msgstr "Записати потік на диск:"
-
-#~ msgid "Path:"
-#~ msgstr "Маршрут:"
-
-#~ msgid "Browse"
-#~ msgstr "Переглянути"
-
-#~ msgid "SHOUT/Icecast:"
-#~ msgstr "SHOUT/Icecast:"
-
-#~ msgid "Enable Icecast Metadata UDP Channel"
-#~ msgstr "Вмикнути потік заголовків SHOUT/Icecast"
-
-#~ msgid "Streaming"
-#~ msgstr "Потік"
-
-#, fuzzy
-#~ msgid "About Flac Plugin"
-#~ msgstr "Про модуль ESounD"
-
-#, fuzzy
-#~ msgid "Samplerate: %d Hz"
-#~ msgstr "Частота:"
-
-#, fuzzy
-#~ msgid "Channels: %d"
-#~ msgstr "Канали:"
-
-#, fuzzy
-#~ msgid ""
-#~ "Samples: %llu\n"
-#~ "Length: %d:%.2d"
-#~ msgstr ""
-#~ "\n"
-#~ "Загальна довжина: %d:%d\n"
-
-#, fuzzy
-#~ msgid "Filesize: %ld B"
-#~ msgstr "Розмір файлу:"
-
-#~ msgid "Comment:"
-#~ msgstr "Коментар:"
-
-#~ msgid "Date:"
-#~ msgstr "Дата:"
-
-#~ msgid "Track number:"
-#~ msgstr "Номер доріжки:"
-
-#~ msgid "Genre:"
-#~ msgstr "Стиль:"
-
-#, fuzzy
-#~ msgid "Remove Tag"
-#~ msgstr "/Видалити все"
-
-#, fuzzy
-#~ msgid "FLAC Info:"
-#~ msgstr "Інформація про компакт"
-
-#, fuzzy
-#~ msgid "File Info - %s"
-#~ msgstr "Інформація про файл"
-
-#~ msgid "Error"
-#~ msgstr "Помилка"
-
-#~ msgid "LOOKING UP %s"
-#~ msgstr "ШУКАЮ %s"
-
-#~ msgid "Couldn't look up host %s"
-#~ msgstr "Не можу знайти хост %s"
-
-#~ msgid "CONNECTING TO %s:%d"
-#~ msgstr "З'ЄДНУЮСЬ З %s:%d"
-
-#~ msgid "Couldn't connect to host %s"
-#~ msgstr "Не можу під'єднатись до хосту %s"
-
-#~ msgid "CONNECTED: WAITING FOR REPLY"
-#~ msgstr "ПЗ'ЄДНАНО: ЧЕКАЮ НА ВІДПОВІДЬ"
-
-#~ msgid ""
-#~ "Couldn't connect to host %s\n"
-#~ "Server reported: %s"
-#~ msgstr ""
-#~ "Не можу підключитись до хоста  %s\n"
-#~ "Сервер повідомив: %s"
-
-#~ msgid "PRE-BUFFERING: %dKB/%dKB"
-#~ msgstr "ПРЕ-БУФЕР: %dКб/%dКб"
-
-#, fuzzy
-#~ msgid "FLAC Audio Plugin"
-#~ msgstr "Модуль підтримки аудіо компакт-дисків"
-
-#, fuzzy
-#~ msgid "ModPlug Configuration"
-#~ msgstr "Зміна налаштувань модуля підтримки MikMod"
-
-#~ msgid "16 bit"
-#~ msgstr "16 біт"
-
-#~ msgid "8 bit"
-#~ msgstr "8 біт"
-
-#, fuzzy
-#~ msgid "Resampling"
-#~ msgstr "Потік"
-
-#, fuzzy
-#~ msgid "Fast Playlist Info"
-#~ msgstr "Завантажии список програвання"
-
-#, fuzzy
-#~ msgid "Reverb"
-#~ msgstr "Сервер"
-
-#, fuzzy
-#~ msgid "Depth"
-#~ msgstr "Дует"
-
-#, fuzzy
-#~ msgid "Amount"
-#~ msgstr "Про програму"
-
-#, fuzzy
-#~ msgid "Range"
-#~ msgstr "Рейв"
-
-#, fuzzy
-#~ msgid "MOD Info"
-#~ msgstr "Інформація про компакт"
-
-#, fuzzy
-#~ msgid "Samples"
-#~ msgstr "Сальса"
-
-#, fuzzy
-#~ msgid "Instruments"
-#~ msgstr "Інструментальна"
-
-#, fuzzy
-#~ msgid "About Modplug"
-#~ msgstr "Про модуль ESounD"
-
-#~ msgid "MPEG Audio Plugin Configuration"
-#~ msgstr "Зміна налаштувань модуля підтримки формату MPEG"
-
-#~ msgid "Resolution:"
-#~ msgstr "Роздільність:"
-
-#~ msgid "Channels:"
-#~ msgstr "Канали:"
-
-#~ msgid "Stereo (if available)"
-#~ msgstr "Стерео (якщо наявне)"
-
-#~ msgid "Down sample:"
-#~ msgstr "Зменшити частоту тактування:"
-
-#~ msgid "1:1 (44 kHz)"
-#~ msgstr "1:1 (44 кГц)"
-
-#~ msgid "1:2 (22 kHz)"
-#~ msgstr "1:2 (22 кГц)"
-
-#~ msgid "1:4 (11 kHz)"
-#~ msgstr "1:4 (11 кГц)"
-
-#~ msgid "Decoder"
-#~ msgstr "Декодування"
-
-#~ msgid "ID3 Tags:"
-#~ msgstr "ID3-теги:"
-
-#~ msgid "ID3 format:"
-#~ msgstr "Формат ID3-тегу:"
-
-#~ msgid "Joint stereo"
-#~ msgstr "Об'єднане стерео"
-
-#~ msgid "Dual channel"
-#~ msgstr "Подвійний канал"
-
-#~ msgid "Single channel"
-#~ msgstr "Одинарний канал"
-
-#~ msgid "%d KBit/s"
-#~ msgstr "%d кБіт/с"
-
-#~ msgid "%ld Hz"
-#~ msgstr "%ld Гц"
-
-#~ msgid "50/15 ms"
-#~ msgstr "50/15 мс"
-
-#~ msgid "CCIT J.17"
-#~ msgstr "CCIT J.17"
-
-#~ msgid "No"
-#~ msgstr "Ні"
-
-#~ msgid "Yes"
-#~ msgstr "Так"
-
-#~ msgid " MPEG Info "
-#~ msgstr " Інформація MPEG: "
-
-#~ msgid "MPEG Level:"
-#~ msgstr "MPEG рівень:"
-
-#~ msgid "Bit rate:"
-#~ msgstr "Бітова частота:"
-
-#~ msgid "Sample rate:"
-#~ msgstr "Частота:"
-
-#~ msgid "File size:"
-#~ msgstr "Розмір файлу:"
-
-#, fuzzy
-#~ msgid "Mode:"
-#~ msgstr "Миша"
-
-#~ msgid "Error Protection:"
-#~ msgstr "Захист від помилок:"
-
-#~ msgid "Copyright:"
-#~ msgstr "Авторське право:"
-
-#~ msgid "Original:"
-#~ msgstr "Оригінальний:"
-
-#~ msgid "Emphasis:"
-#~ msgstr "Виразний:"
-
-#~ msgid " ID3 Tag "
-#~ msgstr " ID3-тег "
-
-#~ msgid "Year:"
-#~ msgstr "Рік:"
-
-#~ msgid "N/A"
-#~ msgstr "N/A"
-
-#~ msgid "%s"
-#~ msgstr "%s"
-
-#~ msgid "%lu Bytes"
-#~ msgstr "%lu байт"
-
-#, fuzzy
-#~ msgid "Couldn't connect to host %s:%d"
-#~ msgstr "Не можу під'єднатись до хосту %s"
-
-#, fuzzy
-#~ msgid "PRE-BUFFERING: %zuKB/%zuKB"
-#~ msgstr "ПРЕ-БУФЕР: %dКб/%dКб"
-
-#~ msgid "About MPEG Audio Plugin"
-#~ msgstr "Про модуль підтримки формату MPEG"
-
-#~ msgid "MPEG Audio Plugin"
-#~ msgstr "Модуль підтримки MPEG"
-
-#, fuzzy
-#~ msgid "TiMidity Configuration"
-#~ msgstr "Зміна налаштувань модуля підтримки MikMod"
-
-#, fuzzy
-#~ msgid "Sample Width"
-#~ msgstr "Частота:"
-
-#, fuzzy
-#~ msgid "TiMidity Configuration File"
-#~ msgstr "Зміна налаштувань модуля підтримки MikMod"
-
-#, fuzzy
-#~ msgid "TiMidity Player %s"
-#~ msgstr "Програвач MikMod %s"
-
-#, fuzzy
-#~ msgid "TiMidity Plugin %s"
-#~ msgstr "Модуль запису на диск %s"
-
-#, fuzzy
-#~ msgid "Couldn't load MIDI file"
-#~ msgstr "Не можу завантижити специфікатор вирівнювання"
-
-#~ msgid "Select the directory where you want to store the Ogg Vorbis streams:"
-#~ msgstr "Виберіть директорію для запису потоків Ogg Vorbis:"
-
-#~ msgid "Ogg Vorbis Audio Plugin Configuration"
-#~ msgstr "Зміна налаштувань модуля підтримки формату Ogg Vorbis"
-
-#~ msgid "Ogg Vorbis Tags:"
-#~ msgstr "Теги Ogg Vorbis:"
-
-#~ msgid "ReplayGain Settings:"
-#~ msgstr "Установки для підсилення програвання"
-
-#~ msgid "ReplayGain Type:"
-#~ msgstr "Тип підсилення прогавання:"
-
-#~ msgid "use Track Gain/Peak"
-#~ msgstr "користуватись підсиленням/піковими рівнями для доріжок"
-
-#~ msgid "use Album Gain/Peak"
-#~ msgstr "користуватись підсиленням/піковими рівнями для альбому"
-
-#~ msgid "Enable 6dB Boost + Hard Limiting"
-#~ msgstr "Дозволити підсилення 6дБ + жорстке обмеження"
-
-#~ msgid ""
-#~ "An error occured:\n"
-#~ "%s"
-#~ msgstr ""
-#~ "Сталася помилка:\n"
-#~ "%s"
-
-#~ msgid "Error!"
-#~ msgstr "Помилка!"
-
-#~ msgid "Failed to modify tag (open)"
-#~ msgstr "Не можу змінити тег(відкрити)"
-
-#~ msgid "Failed to modify tag (close)"
-#~ msgstr "Не можу змінити тег(закрити)"
-
-#~ msgid "Failed to modify tag"
-#~ msgstr "Не можу змінити тег"
-
-#~ msgid " Ogg Vorbis Tag "
-#~ msgstr " Тег Ogg Vorbis "
-
-#~ msgid "Description:"
-#~ msgstr "Опис:"
-
-#~ msgid "Version:"
-#~ msgstr "Версія:"
-
-#~ msgid "ISRC number:"
-#~ msgstr "Номер ISRC:"
-
-#~ msgid "Organization:"
-#~ msgstr "Організація:"
-
-#~ msgid " Ogg Vorbis ReplayGain "
-#~ msgstr " Ogg Vorbis ReplayGain"
-
-#~ msgid "Album peak:"
-#~ msgstr "Піковий рівень альбома:"
-
-#~ msgid " Ogg Vorbis Info "
-#~ msgstr "Інформація Ogg Vorbis: "
-
-#~ msgid "Length:"
-#~ msgstr "Довжина:"
-
-#~ msgid "%d KBit/s (nominal)"
-#~ msgstr "%d кБіт/с (номінал)"
-
-#~ msgid "%d Hz"
-#~ msgstr "%d Гц"
-
-#~ msgid "%d"
-#~ msgstr "%d"
-
-#~ msgid "%d:%.2d"
-#~ msgstr "%d:%.2d"
-
-#~ msgid "%d Bytes"
-#~ msgstr "%d байт"
-
-#~ msgid "Ogg Vorbis Audio Plugin"
-#~ msgstr "Модуль підтримки Ogg Vorbis"
-
-#~ msgid "About Ogg Vorbis Audio Plugin"
-#~ msgstr "Про модуль піддтримки формату Ogg Vorbis"
-
-#~ msgid ""
-#~ "Ogg Vorbis Plugin by the Xiph.org Foundation\n"
-#~ "\n"
-#~ "Original code by\n"
-#~ "Tony Arcieri <bascule at inferno.tusculum.edu>\n"
-#~ "Contributions from\n"
-#~ "Chris Montgomery <monty at xiph.org>\n"
-#~ "Peter Alm <peter at xmms.org>\n"
-#~ "Michael Smith <msmith at labyrinth.edu.au>\n"
-#~ "Jack Moffitt <jack at icecast.org>\n"
-#~ "Jorn Baayen <jorn at nl.linux.org>\n"
-#~ "Haavard Kvaalen <havardk at xmms.org>\n"
-#~ "Gian-Carlo Pascutto <gcp at sjeng.org>\n"
-#~ "\n"
-#~ "Visit the Xiph.org Foundation at http://www.xiph.org/\n"
-#~ msgstr ""
-#~ "Модуль Ogg Vorbis від Фундації Xing.org\n"
-#~ "\n"
-#~ "Програмування\n"
-#~ "Tony Arcieri <bascule at inferno.tusculum.edu>\n"
-#~ "Внески від\n"
-#~ "Chris Montgomery <monty at xiph.org>\n"
-#~ "Peter Alm <peter at xmms.org>\n"
-#~ "Michael Smith <msmith at labyrinth.edu.au>\n"
-#~ "Jack Moffitt <jack at icecast.org>\n"
-#~ "Jorn Baayen <jorn at nl.linux.org>\n"
-#~ "Haavard Kvaalen <havardk at xmms.org>\n"
-#~ "Gian-Carlo Pascutto <gcp at sjeng.org>\n"
-#~ "\n"
-#~ "Відвідайте майданчик фундації Xing.org за адресою http://www.xiph.org/\n"
-
-#, fuzzy
-#~ msgid ""
-#~ "Adapted for Audacious usage by Tony Vroon <chainsaw at gentoo.org>\n"
-#~ "from the xmms_sndfile plugin which is:\n"
-#~ "Copyright (C) 2000, 2002 Erik de Castro Lopo\n"
-#~ "\n"
-#~ "This program is free software ; you can redistribute it and/or modify \n"
-#~ "it under the terms of the GNU General Public License as published by \n"
-#~ "the Free Software Foundation ; either version 2 of the License, or \n"
-#~ "(at your option) any later version. \n"
-#~ " \n"
-#~ "This program is distributed in the hope that it will be useful, \n"
-#~ "but WITHOUT ANY WARRANTY ; without even the implied warranty of \n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  \n"
-#~ "See the GNU General Public License for more details. \n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public \n"
-#~ "License along with this program ; if not, write to \n"
-#~ "the Free Software Foundation, Inc., \n"
-#~ "51 Franklin Street, Fifth Floor, \n"
-#~ "Boston, MA  02110-1301  USA"
-#~ msgstr ""
-#~ "Модуль XMMS ESounD\n"
-#~ "\n"
-#~ "Ця програма належить до вільного програмного забезпечення. Ви маєте\n"
-#~ "право розповсюджувати та/або видозмінювати її керуючись при цьому\n"
-#~ "умовами Загальної Публічної Ліцензії GNU у такому вигляді, як вона\n"
-#~ "була опублікована Фундацією Вільного Програмного забезпечення (Free\n"
-#~ "Software Foundation) або версією 2 Ліцензії, або (на Ваш вибір)\n"
-#~ "будь-якою пізнішою версією.\n"
-#~ "\n"
-#~ "Ця програма розповсюджується із сподіваннями, що вона може бути\n"
-#~ "корисною, але БЕЗ НІЯКОЇ ГАРАНТІЇ, навіть без уявної гарантії того, що\n"
-#~ "ця програма може бути КУПЛЕНОЮ або ПІДХОДИТЬ ПІД ЯКУСЬ ПЕВНУ\n"
-#~ "МЕТУ. Подальші подробиці дивіться у Загальній Публічній Ліцензії GNU.\n"
-#~ "\n"
-#~ "Ви маєте отримати копію Загальної Публічної Ліцензії GNU разом з цією\n"
-#~ "програмою. Якщо ж ні напишіть у Фундацію Вільного Програмного\n"
-#~ "забезпечення за адресою  59 Temple Place - Suite 330, Boston, MA\n"
-#~ "02111-1307, USA."
-
-#~ msgid "WAV Audio Plugin"
-#~ msgstr "Модуль підтримки WAV"
-
-#, fuzzy
-#~ msgid "WMA Player %s"
-#~ msgstr "Програвач MikMod %s"
-
-#, fuzzy
-#~ msgid "About %s"
-#~ msgstr "Про програму"
-
-#, fuzzy
-#~ msgid " Close "
-#~ msgstr "/Закрити"
-
-#~ msgid "About OSS Driver"
-#~ msgstr "Про модуль виводу OSS"
-
-#, fuzzy
-#~ msgid ""
-#~ "Audacious OSS Driver\n"
-#~ "\n"
-#~ " This program is free software; you can redistribute it and/or modify\n"
-#~ "it under the terms of the GNU General Public License as published by\n"
-#~ "the Free Software Foundation; either version 2 of the License, or\n"
-#~ "(at your option) any later version.\n"
-#~ "\n"
-#~ "This program is distributed in the hope that it will be useful,\n"
-#~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
-#~ "GNU General Public License for more details.\n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public License\n"
-#~ "along with this program; if not, write to the Free Software\n"
-#~ "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA "
-#~ "02110-1301,\n"
-#~ "USA."
-#~ msgstr ""
-#~ "Драйвер XMMS OSS \n"
-#~ "\n"
-#~ "Ця програма належить до вільного програмного забезпечення. Ви маєте\n"
-#~ "право розповсюджувати та/або видозмінювати її керуючись при цьому\n"
-#~ "умовами Загальної Публічної Ліцензії GNU у такому вигляді, як вона\n"
-#~ "була опублікована Фундацією Вільного Програмного забезпечення (Free\n"
-#~ "Software Foundation) або версією 2 Ліцензії, або (на Ваш вибір)\n"
-#~ "будь-якою пізнішою версією.\n"
-#~ "\n"
-#~ "Ця програма розповсюджується із сподіваннями, що вона може бути\n"
-#~ "корисною, але БЕЗ НІЯКОЇ ГАРАНТІЇ, навіть без уявної гарантії того, що\n"
-#~ "ця програма може бути КУПЛЕНОЮ або ПІДХОДИТЬ ПІД ЯКУСЬ ПЕВНУ\n"
-#~ "МЕТУ. Подальші подробиці дивіться у Загальній Публічній Ліцензії GNU.\n"
-#~ "\n"
-#~ "Ви маєте отримати копію Загальної Публічної Ліцензії GNU разом з цією\n"
-#~ "програмою. Якщо ж ні напишіть у Фундацію Вільного Програмного\n"
-#~ "забезпечення за адресою  59 Temple Place - Suite 330, Boston, MA\n"
-#~ "02111-1307, USA."
-
-#~ msgid "Default (%s)"
-#~ msgstr "Основний (%s)"
-
-#~ msgid "OSS Driver configuration"
-#~ msgstr "Конфігурація драйвера OSS"
-
-#~ msgid "Audio device:"
-#~ msgstr "Звуковий пристрій:"
-
-#~ msgid "Use alternate device:"
-#~ msgstr "Користуватися іншим пристроєм:"
-
-#~ msgid "Mixer device:"
-#~ msgstr "Пристрій мікшера:"
-
-#~ msgid "Devices"
-#~ msgstr "Пристрої"
-
-#~ msgid "Buffer size (ms):"
-#~ msgstr "Розмір буфера (мс):"
-
-#~ msgid "Mixer Settings:"
-#~ msgstr "Установки мікшера:"
-
-#~ msgid "Volume controls Master not PCM"
-#~ msgstr "Гучністю керує Master, а не PCM"
-
-#~ msgid "Mixer"
-#~ msgstr "Мікшер"
-
-#~ msgid "About ALSA Driver"
-#~ msgstr "Про драйвер  ALSA"
-
-#, fuzzy
-#~ msgid ""
-#~ "Audacious ALSA Driver\n"
-#~ "\n"
-#~ " This program is free software; you can redistribute it and/or modify\n"
-#~ "it under the terms of the GNU General Public License as published by\n"
-#~ "the Free Software Foundation; either version 2 of the License, or\n"
-#~ "(at your option) any later version.\n"
-#~ "\n"
-#~ "This program is distributed in the hope that it will be useful,\n"
-#~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
-#~ "GNU General Public License for more details.\n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public License\n"
-#~ "along with this program; if not, write to the Free Software\n"
-#~ "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA "
-#~ "02110-1301,\n"
-#~ "USA.\n"
-#~ "Author: Matthieu Sozeau (mattam at altern.org)"
-#~ msgstr ""
-#~ "Драйвер XMMS ALSA \n"
-#~ "\n"
-#~ "Ця програма належить до вільного програмного забезпечення. Ви маєте\n"
-#~ "право розповсюджувати та/або видозмінювати її керуючись при цьому\n"
-#~ "умовами Загальної Публічної Ліцензії GNU у такому вигляді, як вона\n"
-#~ "була опублікована Фундацією Вільного Програмного забезпечення (Free\n"
-#~ "Software Foundation) або версією 2 Ліцензії, або (на Ваш вибір)\n"
-#~ "будь-якою пізнішою версією.\n"
-#~ "\n"
-#~ "Ця програма розповсюджується із сподіваннями, що вона може бути\n"
-#~ "корисною, але БЕЗ НІЯКОЇ ГАРАНТІЇ, навіть без уявної гарантії того, що\n"
-#~ "ця програма може бути КУПЛЕНОЮ або ПІДХОДИТЬ ПІД ЯКУСЬ ПЕВНУ\n"
-#~ "МЕТУ. Подальші подробиці дивіться у Загальній Публічній Ліцензії GNU.\n"
-#~ "\n"
-#~ "Ви маєте отримати копію Загальної Публічної Ліцензії GNU разом з цією\n"
-#~ "програмою. Якщо ж ні напишіть у Фундацію Вільного Програмного\n"
-#~ "забезпечення за адресою  59 Temple Place - Suite 330, Boston, MA\n"
-#~ "02111-1307, USA."
-
-#~ msgid "ALSA %s output plugin"
-#~ msgstr "Модуль виводу звуку ALSA %s"
-
-#~ msgid "Unknown soundcard"
-#~ msgstr "Невідома звукова карта"
-
-#~ msgid "Default PCM device (%s)"
-#~ msgstr "Основний PCM пристрій (%s)"
-
-#~ msgid "ALSA Driver configuration"
-#~ msgstr "Конфігурація драйвера ALSA"
-
-#~ msgid "Mixer:"
-#~ msgstr "Мікшер:"
-
-#~ msgid "Mixer card:"
-#~ msgstr "Пристрій мікшера:"
-
-#~ msgid "Device settings"
-#~ msgstr "Установки мікшера"
-
-#, fuzzy
-#~ msgid "Soundcard:"
-#~ msgstr "Звукова доріжка"
-
-#~ msgid "Buffer time (ms):"
-#~ msgstr "Час буфера (мс):"
-
-#~ msgid "Period time (ms):"
-#~ msgstr "Розмір періоду (мс):"
-
-#~ msgid "Advanced settings"
-#~ msgstr "Додаткові установки"
-
-#, fuzzy
-#~ msgid "aRts Driver configuration"
-#~ msgstr "Конфігурація драйвера OSS"
-
-#~ msgid "Disk Writer Plugin %s"
-#~ msgstr "Модуль запису на диск %s"
-
-#~ msgid ""
-#~ "You cannot use the Disk Writer plugin\n"
-#~ "when you're running in realtime mode."
-#~ msgstr ""
-#~ "Ви не можете використовувати модуль запису на диск\n"
-#~ "працюючи в режимі реального часу."
-
-#~ msgid "Select the directory where you want to store the output files:"
-#~ msgstr "Виберіть директорію для запису потоків MPEG:"
-
-#~ msgid "Disk Writer Configuration"
-#~ msgstr "Конфігурація модуля запису на диск"
-
-#~ msgid "About ESounD Plugin"
-#~ msgstr "Про модуль ESounD"
-
-#, fuzzy
-#~ msgid ""
-#~ "Audacious ESounD Plugin\n"
-#~ "\n"
-#~ " This program is free software; you can redistribute it and/or modify\n"
-#~ "it under the terms of the GNU General Public License as published by\n"
-#~ "the Free Software Foundation; either version 2 of the License, or\n"
-#~ "(at your option) any later version.\n"
-#~ "\n"
-#~ "This program is distributed in the hope that it will be useful,\n"
-#~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
-#~ "GNU General Public License for more details.\n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public License\n"
-#~ "along with this program; if not, write to the Free Software\n"
-#~ "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA "
-#~ "02110-1301,\n"
-#~ "USA."
-#~ msgstr ""
-#~ "Модуль XMMS ESounD\n"
-#~ "\n"
-#~ "Ця програма належить до вільного програмного забезпечення. Ви маєте\n"
-#~ "право розповсюджувати та/або видозмінювати її керуючись при цьому\n"
-#~ "умовами Загальної Публічної Ліцензії GNU у такому вигляді, як вона\n"
-#~ "була опублікована Фундацією Вільного Програмного забезпечення (Free\n"
-#~ "Software Foundation) або версією 2 Ліцензії, або (на Ваш вибір)\n"
-#~ "будь-якою пізнішою версією.\n"
-#~ "\n"
-#~ "Ця програма розповсюджується із сподіваннями, що вона може бути\n"
-#~ "корисною, але БЕЗ НІЯКОЇ ГАРАНТІЇ, навіть без уявної гарантії того, що\n"
-#~ "ця програма може бути КУПЛЕНОЮ або ПІДХОДИТЬ ПІД ЯКУСЬ ПЕВНУ\n"
-#~ "МЕТУ. Подальші подробиці дивіться у Загальній Публічній Ліцензії GNU.\n"
-#~ "\n"
-#~ "Ви маєте отримати копію Загальної Публічної Ліцензії GNU разом з цією\n"
-#~ "програмою. Якщо ж ні напишіть у Фундацію Вільного Програмного\n"
-#~ "забезпечення за адресою  59 Temple Place - Suite 330, Boston, MA\n"
-#~ "02111-1307, USA."
-
-#~ msgid "Host:"
-#~ msgstr "Хост:"
-
-#~ msgid "Use remote host"
-#~ msgstr "Користуватися віддаленим хостом"
-
-#~ msgid "Volume controls OSS mixer"
-#~ msgstr "Гучністю керує мікшер OSS"
-
-#~ msgid "Server"
-#~ msgstr "Сервер"
-
-#~ msgid "eSound Output Plugin"
-#~ msgstr "Вихідний модуль ESounD"
-
-#, fuzzy
-#~ msgid "About JACK Output Plugin 0.15"
-#~ msgstr "Вихідний модуль ESounD"
-
-#, fuzzy
-#~ msgid "About the Sun Driver"
-#~ msgstr "Про модуль виводу OSS"
-
-#, fuzzy
-#~ msgid "Audio control device:"
-#~ msgstr "Звуковий пристрій:"
-
-#, fuzzy
-#~ msgid "Volume controls device:"
-#~ msgstr "Керування гучністю:"
-
-#, fuzzy
-#~ msgid "Sun driver configuration"
-#~ msgstr "Конфігурація драйвера OSS"
-
-#~ msgid "/Toggle Decorations"
-#~ msgstr "/Перемикнути відображення обрамлення"
-
-#~ msgid "Blur scope"
-#~ msgstr "Розмитий осцилоскоп"
-
-#~ msgid "Blur Scope: Color selection"
-#~ msgstr "Розмитий осцилоскоп: вибір кольору"
-
-#~ msgid "Options:"
-#~ msgstr "Параметри:"
-
-#~ msgid "** DOUBLESIZE HAS BEEN REMOVED **"
-#~ msgstr "** ПОДВІЙНИЙ РОЗМІР УСУНУТО **"
-
-#, fuzzy
-#~ msgid "<b>_Transparency</b>"
-#~ msgstr "<b>Відтворення</b>"
-
-#, fuzzy
-#~ msgid "Scrobbler Configuration"
-#~ msgstr "Конфігурація програвача компакт-дисків"
-
-#~ msgid "Warning"
-#~ msgstr "Застереження"
-
-#~ msgid "Song Change Configuration"
-#~ msgstr "Конфігурація програвача компакт-дисків"
-
-#, fuzzy
-#~ msgid "Song Metadata"
-#~ msgstr "Соната"
-
-#, fuzzy
-#~ msgid "Port"
-#~ msgstr "Порт:"
-
-#, fuzzy
-#~ msgid "Client name"
-#~ msgstr "Назва файлу"
-
-#, fuzzy
-#~ msgid "Port name"
-#~ msgstr "Назва доріжки"
-
-#, fuzzy
-#~ msgid "ALSA output ports"
-#~ msgstr "Модуль виводу звуку ALSA %s"
-
-#~ msgid "Convert non-UTF8 ID3 tags to UTF8"
-#~ msgstr ""
-#~ "Перетворювати ID3-теги (назви пісень тощо) з локального кодування в Юнікод"
-
-#~ msgid "ID3 encoding:"
-#~ msgstr "Кодування ID3-тегів:"
-
-#, fuzzy
-#~ msgid "Convert non-UTF8 Vorbis tags to UTF8"
-#~ msgstr ""
-#~ "Перетворювати ID3-теги (назви пісень тощо) з локального кодування в Юнікод"
-
-#, fuzzy
-#~ msgid "Vorbis encoding:"
-#~ msgstr "Кодування ID3-тегів:"
-
-#, fuzzy
-#~ msgid "<b>WMA Version:</b>"
-#~ msgstr "<b>Візуалізація</b>"
-
-#, fuzzy
-#~ msgid "<b>Channels:</b>"
-#~ msgstr "Канали:"
-
-#, fuzzy
-#~ msgid "<b>Filesize:</b>"
-#~ msgstr "<b>Ім'я файлу</b>"
-
-#, fuzzy
-#~ msgid "WMA Info"
-#~ msgstr "Інформація про компакт"
-
-#, fuzzy
-#~ msgid "<b>Comments:</b>"
-#~ msgstr "<b>_Шрифти</b>"
-
-#, fuzzy
-#~ msgid "<b>Track:</b>"
-#~ msgstr "<b>Відтворення</b>"
-
-#, fuzzy
-#~ msgid "Tags"
-#~ msgstr "Танґо"
-
-#~ msgid "Edward Brocklesby"
-#~ msgstr "Edward Brocklesby"
-
-#~ msgid "Chong Kai Xiong"
-#~ msgstr "Chong Kai Xiong"
-
-#~ msgid "Milosz Derezynski"
-#~ msgstr "Milosz Derezynski"
-
-#~ msgid "David Lau"
-#~ msgstr "David Lau"
-
-#~ msgid "Ole Andre Vadla Ravnaas"
-#~ msgstr "Ole Andre Vadla Ravnaas"
-
-#~ msgid "Michiel Sikkes"
-#~ msgstr "Michiel Sikkes"
-
-#~ msgid "Bernard Blackham"
-#~ msgstr "Bernard Blackham"
-
-#~ msgid "Oliver Blin"
-#~ msgstr "Oliver Blin"
-
-#~ msgid "Tomas Bzatek"
-#~ msgstr "Tomas Bzatek"
-
-#~ msgid "Jon Dowland"
-#~ msgstr "Jon Dowland"
-
-#~ msgid "Artur Frysiak"
-#~ msgstr "Artur Frysiak"
-
-#~ msgid "Sebastian Kapfer"
-#~ msgstr "Sebastian Kapfer"
-
-#~ msgid "Lukas Koberstein"
-#~ msgstr "Lukas Koberstein"
-
-#~ msgid "Dan Korostelev"
-#~ msgstr "Dan Korostelev <dan at ats.energo.ru>"
-
-#~ msgid "Michael Marineau"
-#~ msgstr "Michiel Sikkes"
-
-#~ msgid "Tim-Philipp Muller"
-#~ msgstr "Tim-Philipp Muller"
-
-#~ msgid "Olivier Samyn"
-#~ msgstr "Olivier Samyn"
-
-#~ msgid "Martijn Vernooij"
-#~ msgstr "Martijn Vernooij"
-
-#~ msgid "Laurens Buhler"
-#~ msgstr "Laurens Buhler"
-
-#~ msgid "David Le Brun"
-#~ msgstr "David Le Brun"
-
-#~ msgid "Matthias Debus"
-#~ msgstr "Matthias Debus"
-
-#~ msgid "Alessio D'Ascanio"
-#~ msgstr "Alessio D'Ascanio"
-
-#~ msgid "DongCheon Park"
-#~ msgstr "DongCheon Park"
-
-#~ msgid "Rimas Kudelis"
-#~ msgstr "Rimas Kudelis"
-
-#~ msgid "Jacek Wolszczak"
-#~ msgstr "Jacek Wolszczak"
-
-#~ msgid "Pavlo Bohmat"
-#~ msgstr "Pavlo Bohmat"
-
-#~ msgid "Martin Persenius"
-#~ msgstr "Martin Persenius"
-
-#~ msgid "<span size=\"xx-large\"><b>Plugins</b></span>"
-#~ msgstr "<span size=\"xx-large\"><b>Модулі</b></span>"
-
-#~ msgid "_Media plugin list:"
-#~ msgstr "_Список модулів підтримки музичних форматів:"
-
-#, fuzzy
-#~ msgid ""
-#~ "The change is now effective in Audacious' configuration database, but "
-#~ "won't take effect for playback until the next song!\n"
-#~ "\n"
-#~ "Optionally, you can stop and restart playback for the change to take "
-#~ "effect."
-#~ msgstr ""
-#~ "Зміни задіяні в конфигурації бази даних BMP, але не матимуть ефекту під "
-#~ "час програвання до наступної пісні!\n"
-#~ "\n"
-#~ "Щоб зміни подіяли, ви можете  перезапустити програвання."
-
-#~ msgid "<span size=\"xx-large\"><b>Appearance</b></span>"
-#~ msgstr "<span size=\"xx-large\"><b>Зовнішній вигляд</b></span>"
-
-#~ msgid "<span size=\"xx-large\"><b>Mouse</b></span>"
-#~ msgstr "<span size=\"xx-large\"><b>Миша</b></span>"
-
-#~ msgid "<span size=\"xx-large\"><b>Playlist</b></span>"
-#~ msgstr "<span size=\"xx-large\"><b>Список програвання</b></span>"
-
-#~ msgid "<span size=\"xx-large\"><b>Equalizer</b></span>"
-#~ msgstr "<span size=\"xx-large\"><b>Еквалайзер</b></span>"
-
-#~ msgid "Use proxy"
-#~ msgstr "Користуватися проксі"
-
-#~ msgid "Frames:"
-#~ msgstr "Кадрів:"
-
-#~ msgid ""
-#~ "Variable,\n"
-#~ "avg. bitrate: %d KBit/s"
-#~ msgstr ""
-#~ "Змінна,\n"
-#~ "Cередня бітова частота:: %d кб/с"
-
-#~ msgid "Francisco Javier F. Serrador"
-#~ msgstr "Francisco Javier F. Serrador"
-
-#~ msgid ""
-#~ "%s\n"
-#~ "Unable to write to file: %s"
-#~ msgstr ""
-#~ "%s\n"
-#~ "Не можу записати в файл: %s"
-
-#~ msgid "Couldn't write tag!"
-#~ msgstr "Не можу записати тег!"
-
-#~ msgid ""
-#~ "%s\n"
-#~ "Unable to open file: %s"
-#~ msgstr ""
-#~ "%s\n"
-#~ "Не можу відкрити файл: %s"
-
-#~ msgid ""
-#~ "%s\n"
-#~ "Unable to truncate file: %s"
-#~ msgstr ""
-#~ "%s\n"
-#~ "Неможливо обрізати файл: %s"
-
-#~ msgid "Couldn't remove tag!"
-#~ msgstr "Не можу стерти тег!"
-
-#~ msgid "No tag to remove!"
-#~ msgstr "Немає тегу для стирання!"
-
-#~ msgid "Copy album tags"
-#~ msgstr "Копіювати теги альбому"
-
-#~ msgid "Paste album tags"
-#~ msgstr "Вставити теги альбому"
-
-#, fuzzy
-#~ msgid "About TiMidity Plugin"
-#~ msgstr "Про модуль підтримки формату MPEG"
-
-#, fuzzy
-#~ msgid "TiMidity Plugin"
-#~ msgstr "Модуль підтримки MPEG"
-
-#, fuzzy
-#~ msgid "Downsample:"
-#~ msgstr "Зменшити частоту тактування:"
-
-#~ msgid "Look for hidden patterns in modules "
-#~ msgstr "Шукати приховані зразки в модулях"
-
-#~ msgid "Content"
-#~ msgstr "Визначати тип по вмісту"
-
-#~ msgid "Extension"
-#~ msgstr "Визначати тип по розширенню"
-
-#~ msgid "Extension and content"
-#~ msgstr "Визначати тип по розширенню і вмісту"
-
-#~ msgid "%s - BMP"
-#~ msgstr "%s - BMP"
-
-#, fuzzy
-#~ msgid "About Libvisual XMMS Plugin"
-#~ msgstr "Про модуль ESounD"
-
-#, fuzzy
-#~ msgid "Visualization Plugins"
-#~ msgstr "Список модулів _візуалізації:"
-
-#~ msgid "All plugins"
-#~ msgstr "Модулі"
-
-#~ msgid "Only non GL plugins"
-#~ msgstr "Тільки НЕ GL модулі"
-
-#~ msgid "Only GL plugins"
-#~ msgstr "Тільки GL модулі"
-
-#~ msgid "Accept"
-#~ msgstr "Прийняти"
-
-#, fuzzy
-#~ msgid " (enabled)"
-#~ msgstr "Вмикнено"
-
-#, fuzzy
-#~ msgid "Version: "
-#~ msgstr "Версія:"
-
-#~ msgid "Author: "
-#~ msgstr "Автор: "
-
-#~ msgid " error"
-#~ msgstr " помилка"
-
-#~ msgid "There is no info for this plugin"
-#~ msgstr "Інформація для цього модулю не наявна"
-
-#~ msgid "The list of input plugins is empty."
-#~ msgstr "Сисок модулів вводу порожній"
-
-#~ msgid "Cannot initialize SDL!\n"
-#~ msgstr "Не можу ініціалізувати SDL!\n"
-
-#~ msgid " will not be loaded."
-#~ msgstr " не буде завантажено"
-
-#~ msgid "Last plugin: (none)"
-#~ msgstr "Останній модуль: (відсутній)"
-
-#~ msgid "Last plugin: %s"
-#~ msgstr "Останній модуль: %s"
-
-#~ msgid "Special thanks to:"
-#~ msgstr "Особливі подяки:"
-
-#~ msgid "bmp: %s"
-#~ msgstr "BMP: %s"
-
-#~ msgid "/Play Directory"
-#~ msgstr "/Програвати каталог"
-
-#~ msgid "Add Folders"
-#~ msgstr "Додати каталог"
-
-#~ msgid "DISABLE ALWAYS ON TOP (N/A)"
-#~ msgstr "ЗАБОРОНИТИ СПЛИВАННЯ НАГОРУ (N/A)"
+msgstr "Показати параметри керування сеансами"
 
-#~ msgid "ENABLE ALWAYS ON TOP (N/A)"
-#~ msgstr "ДОЗВОЛИТИ СПЛИВАННЯ НАГОРУ  (N/A)"
 
-#, fuzzy
-#~ msgid "/Add Folders..."
-#~ msgstr "/Додати файли..."
diff --git a/po/vi.po b/po/vi.po
new file mode 100644
index 0000000..482233f
--- /dev/null
+++ b/po/vi.po
@@ -0,0 +1,1217 @@
+# Vietnamese translation for Audacious
+# Copyright (C) Audacious translators
+# This file is distributed under the same license as the Audacious package.
+#
+# Translators:
+#  Lê Trường An <truongan at linuxmail.org>, 2011.
+# Lê Trường An <truongan at linuxmail.org>, 2011.
+msgid ""
+msgstr ""
+"Project-Id-Version: Audacious\n"
+"Report-Msgid-Bugs-To: http://redmine.audacious-media-player.org/\n"
+"POT-Creation-Date: 2011-12-29 19:27-0500\n"
+"PO-Revision-Date: 2011-12-30 08:37+0000\n"
+"Last-Translator: Lê Trường An <truongan at linuxmail.org>\n"
+"Language-Team: Vietnamese\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: vi\n"
+"Plural-Forms: nplurals=1; plural=0\n"
+
+#: src/audacious/adder.c:77
+msgid "Searching ..."
+msgstr "Đang tìm ..."
+
+#: src/audacious/adder.c:113
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] "%d tập tin được tìm thấy"
+
+#: src/audacious/chardet.c:39
+msgid "  (invalid UTF-8)"
+msgstr "  (UTF-8 không hợp lệ)"
+
+#: src/audacious/credits.c:35
+msgid "Core developers:"
+msgstr "Phát triển chính:"
+
+#: src/audacious/credits.c:49
+msgid "Graphics:"
+msgstr "Đồ họa:"
+
+#: src/audacious/credits.c:54
+msgid "Default skin:"
+msgstr "Giao diện mặc định:"
+
+#: src/audacious/credits.c:60
+msgid "Plugin development:"
+msgstr "Phát triển trình cắm:"
+
+#: src/audacious/credits.c:83
+msgid "Patch authors:"
+msgstr "Tác giả bản vá:"
+
+#: src/audacious/credits.c:127
+msgid "1.x developers:"
+msgstr "Phát triển phiên bản 1.x:"
+
+#: src/audacious/credits.c:149
+msgid "BMP Developers:"
+msgstr "Phát triển BPM:"
+
+#: src/audacious/credits.c:181
+msgid "Belarusian:"
+msgstr "Tiếng Belarus:"
+
+#: src/audacious/credits.c:184
+msgid "Basque:"
+msgstr "Tiếng Basque:"
+
+#: src/audacious/credits.c:187
+msgid "Brazilian Portuguese:"
+msgstr "Tiếng Bra-xin (Bồ Đào Nha)"
+
+#: src/audacious/credits.c:192
+msgid "Breton:"
+msgstr "Tiếng Breton:"
+
+#: src/audacious/credits.c:195
+msgid "Bulgarian:"
+msgstr "Tiếng Bun-ga-ri:"
+
+#: src/audacious/credits.c:198
+msgid "Catalan:"
+msgstr "Tiếng Catalan:"
+
+#: src/audacious/credits.c:202
+msgid "Chinese:"
+msgstr "Tiếng Trung Quốc:"
+
+#: src/audacious/credits.c:205
+msgid "Croatian:"
+msgstr "Tiếng Croatia:"
+
+#: src/audacious/credits.c:208
+msgid "Czech:"
+msgstr "Tiếng Séc:"
+
+#: src/audacious/credits.c:211
+msgid "Dutch:"
+msgstr "Tiếng Hà Lan:"
+
+#: src/audacious/credits.c:215
+msgid "Estonian:"
+msgstr "Tiếng És-tô-ni-a:"
+
+#: src/audacious/credits.c:218
+msgid "Finnish:"
+msgstr "Tiếng Phần Lan:"
+
+#: src/audacious/credits.c:223
+msgid "French:"
+msgstr "Tiếng Pháp:"
+
+#: src/audacious/credits.c:229
+msgid "German:"
+msgstr "Tiếng Đức:"
+
+#: src/audacious/credits.c:236
+msgid "Georgian:"
+msgstr "Tiếng Georgian:"
+
+#: src/audacious/credits.c:239
+msgid "Greek:"
+msgstr "Tiếng Hy Lạp:"
+
+#: src/audacious/credits.c:244
+msgid "Hindi:"
+msgstr "Tiếng Hin-đi:"
+
+#: src/audacious/credits.c:247
+msgid "Hungarian:"
+msgstr "Tiếng Hun-ga-ri:"
+
+#: src/audacious/credits.c:251
+msgid "Italian:"
+msgstr "Tiếng Ý:"
+
+#: src/audacious/credits.c:256
+msgid "Japanese:"
+msgstr "Tiếng Nhật:"
+
+#: src/audacious/credits.c:259
+msgid "Korean:"
+msgstr "Tiếng Hàn:"
+
+#: src/audacious/credits.c:262
+msgid "Latvian:"
+msgstr "Tiếng Lat-vi-a:"
+
+#: src/audacious/credits.c:265
+msgid "Lithuanian:"
+msgstr "Tiếng Lithuania:"
+
+#: src/audacious/credits.c:270
+msgid "Macedonian:"
+msgstr "Tiếng Macedonia:"
+
+#: src/audacious/credits.c:273
+msgid "Polish:"
+msgstr "Tiếng Ba Lan:"
+
+#: src/audacious/credits.c:279
+msgid "Portuguese:"
+msgstr "Tiếng Bồ Đào Nha:"
+
+#: src/audacious/credits.c:282
+msgid "Romanian:"
+msgstr "Tiếng Rumani:"
+
+#: src/audacious/credits.c:286
+msgid "Russian:"
+msgstr "Tiếng Nga:"
+
+#: src/audacious/credits.c:290
+msgid "Serbian (Latin):"
+msgstr "Tiếng Séc-bi-a (Latinh):"
+
+#: src/audacious/credits.c:293
+msgid "Serbian (Cyrillic):"
+msgstr "Tiếng Séc-bi-a (Kirin):"
+
+#: src/audacious/credits.c:297
+msgid "Simplified Chinese:"
+msgstr "Tiếng Trung giản thể:"
+
+#: src/audacious/credits.c:300
+msgid "Slovak:"
+msgstr "Tiếng Slovak:"
+
+#: src/audacious/credits.c:303
+msgid "Spanish:"
+msgstr "Tiếng Tây Ban Nha:"
+
+#: src/audacious/credits.c:311
+msgid "Swedish:"
+msgstr "Tiếng Thụy Điển:"
+
+#: src/audacious/credits.c:314
+msgid "Traditional Chinese:"
+msgstr "Tiếng Trung (phồn thể):"
+
+#: src/audacious/credits.c:320
+msgid "Turkish:"
+msgstr "Tiếng Thổ Nhĩ Kỳ:"
+
+#: src/audacious/credits.c:324
+msgid "Ukrainian:"
+msgstr "Tiếng U-crai-na:"
+
+#: src/audacious/credits.c:328
+msgid "Vietnamese:"
+msgstr "Tiếng Việt:"
+
+#: src/audacious/credits.c:331
+msgid "Welsh:"
+msgstr "Tiếng xứ Wales:"
+
+#: src/audacious/equalizer_preset.c:180
+#, c-format
+msgid "Error importing Winamp EQF file '%s'"
+msgstr "Lỗi khi nhập tập tin EQF của Winamp '%s'"
+
+#: src/audacious/main.c:243
+msgid "Skip backwards in playlist"
+msgstr "Không xả ngược trong danh sách"
+
+#: src/audacious/main.c:244
+msgid "Start playing current playlist"
+msgstr "Bắt đầu phát danh sách hiện tại"
+
+#: src/audacious/main.c:245
+msgid "Pause current song"
+msgstr "Tạm dừng bài đang phát"
+
+#: src/audacious/main.c:246
+msgid "Stop current song"
+msgstr "Dừng phát"
+
+#: src/audacious/main.c:247
+msgid "Pause if playing, play otherwise"
+msgstr "Tạm dừng nếu đang phát, phát trở lại nếu đang tạm dừng"
+
+#: src/audacious/main.c:248
+msgid "Skip forward in playlist"
+msgstr "Không tự chuyển bài trong danh sách"
+
+#: src/audacious/main.c:249
+msgid "Display Jump to File dialog"
+msgstr "Hiện hộp thoại Chuyển đến tập tin"
+
+#: src/audacious/main.c:250
+msgid "Add files to the playlist"
+msgstr "Thêm tập tin vào danh sách"
+
+#: src/audacious/main.c:251
+msgid "Add new files to a temporary playlist"
+msgstr "Thêm tập tin mới vào danh sách tạm thời"
+
+#: src/audacious/main.c:252
+msgid "Display the main window"
+msgstr "Hiện cửa sổ chính"
+
+#: src/audacious/main.c:253
+msgid "Show version"
+msgstr "Hiện phiên bản"
+
+#: src/audacious/main.c:254
+msgid "Print debugging messages"
+msgstr "Hiện thông báo gỡ lỗi"
+
+#: src/audacious/main.c:255
+msgid "Headless mode (beta)"
+msgstr ""
+
+#: src/audacious/main.c:256
+msgid "FILE..."
+msgstr "T.TIN..."
+
+#: src/audacious/main.c:268
+msgid "- play multimedia files"
+msgstr "- phát tập tin đa phương tiện"
+
+#: src/audacious/main.c:278
+#, c-format
+msgid ""
+"%s: %s\n"
+"Try `%s --help' for more information.\n"
+msgstr ""
+"%s: %s\n"
+"Chạy `%s --help' để biết thêm thông tin.\n"
+
+#: src/audacious/main.c:572
+msgid "Audacious"
+msgstr "Audacious"
+
+#: src/audacious/playback.c:307
+#, c-format
+msgid "No decoder found for %s."
+msgstr "Không tìm thấy bộ giải mã cho %s."
+
+#: src/audacious/playlist-new.c:131
+msgid "New Playlist"
+msgstr "D.sách mới"
+
+#: src/audacious/playlist-new.c:132
+msgid "Now Playing"
+msgstr "Đang phát"
+
+#: src/audacious/playlist-new.c:1627
+msgid ""
+"The playlist cannot be sorted because metadata scanning is still in progress"
+" (or has been disabled)."
+msgstr ""
+"Danh sách không thể được sắp xếp vì quá trình quét thông tin đang diễn ra "
+"(hoặc bị tắt)."
+
+#: src/audacious/ui_preferences.c:85
+msgid "Audio"
+msgstr "Âm thanh"
+
+#: src/audacious/ui_preferences.c:86
+msgid "Network"
+msgstr "Mạng"
+
+#: src/audacious/ui_preferences.c:87 src/audacious/ui_preferences.c:1603
+msgid "Playlist"
+msgstr "Danh sách"
+
+#: src/audacious/ui_preferences.c:88
+msgid "Plugins"
+msgstr "Trình cắm"
+
+#: src/audacious/ui_preferences.c:94 src/libaudgui/infopopup.c:203
+msgid "Artist"
+msgstr "Nghệ sĩ"
+
+#: src/audacious/ui_preferences.c:95 src/libaudgui/infopopup.c:205
+msgid "Album"
+msgstr "Album"
+
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:201
+#: src/libaudgui/ui_playlist_manager.c:279
+msgid "Title"
+msgstr "Tựa đề"
+
+#: src/audacious/ui_preferences.c:97
+msgid "Tracknumber"
+msgstr "Bài số"
+
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:207
+msgid "Genre"
+msgstr "Thể loại"
+
+#: src/audacious/ui_preferences.c:99
+msgid "Filename"
+msgstr "Tên tập tin"
+
+#: src/audacious/ui_preferences.c:100
+msgid "Filepath"
+msgstr "Đường dẫn tập tin"
+
+#: src/audacious/ui_preferences.c:101
+msgid "Date"
+msgstr "Ngày"
+
+#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:209
+msgid "Year"
+msgstr "Năm"
+
+#: src/audacious/ui_preferences.c:103
+msgid "Comment"
+msgstr "Bình luận"
+
+#: src/audacious/ui_preferences.c:104
+msgid "Codec"
+msgstr "Bộ giải mã"
+
+#: src/audacious/ui_preferences.c:105
+msgid "Quality"
+msgstr "Chất lượng"
+
+#: src/audacious/ui_preferences.c:111
+msgid "None"
+msgstr "Không"
+
+#: src/audacious/ui_preferences.c:112
+msgid "Arabic"
+msgstr "Tiếng Ả Rập"
+
+#: src/audacious/ui_preferences.c:113
+msgid "Baltic"
+msgstr "Tiếng Ban-tic"
+
+#: src/audacious/ui_preferences.c:114
+msgid "Chinese"
+msgstr "Tiếng Trung"
+
+#: src/audacious/ui_preferences.c:115
+msgid "Greek"
+msgstr "Tiếng Hy Lạp"
+
+#: src/audacious/ui_preferences.c:116
+msgid "Hebrew"
+msgstr "Tiếng Do Thái"
+
+#: src/audacious/ui_preferences.c:117
+msgid "Japanese"
+msgstr "Tiếng Nhật"
+
+#: src/audacious/ui_preferences.c:118
+msgid "Korean"
+msgstr "Tiếng Hàn"
+
+#: src/audacious/ui_preferences.c:119
+msgid "Polish"
+msgstr "Tiếng Ba Lan"
+
+#: src/audacious/ui_preferences.c:120
+msgid "Russian"
+msgstr "Tiếng Nga"
+
+#: src/audacious/ui_preferences.c:121
+msgid "Taiwanese"
+msgstr "Tiếng Đài Loan"
+
+#: src/audacious/ui_preferences.c:122
+msgid "Turkish"
+msgstr "Tiếng Thổ Nhĩ Kỳ"
+
+#: src/audacious/ui_preferences.c:144
+msgid "Album mode"
+msgstr "Chế độ album"
+
+#: src/audacious/ui_preferences.c:147
+msgid "<b>Output Settings</b>"
+msgstr "<b>Thiết lập xuất âm thanh</b>"
+
+#: src/audacious/ui_preferences.c:149
+msgid "Bit depth:"
+msgstr "Chiều sâu âm thanh:"
+
+#: src/audacious/ui_preferences.c:152
+msgid "Buffer size:"
+msgstr "Dung lượng bộ đệm:"
+
+#: src/audacious/ui_preferences.c:154
+msgid "ms"
+msgstr "ms"
+
+#: src/audacious/ui_preferences.c:155
+msgid "Use software volume control (not recommended)"
+msgstr "Sử dụng kiểm soát âm lượng của phần mềm (không nên)"
+
+#: src/audacious/ui_preferences.c:157
+msgid "<b>Replay Gain</b>"
+msgstr "<b>Tăng âm</b>"
+
+#: src/audacious/ui_preferences.c:158
+msgid "Enable Replay Gain"
+msgstr "Bật chế độ tăng thêm âm lượng"
+
+#: src/audacious/ui_preferences.c:161
+msgid "Prevent clipping (recommended)"
+msgstr "Tránh tổn thất (khuyên dùng)"
+
+#: src/audacious/ui_preferences.c:163
+msgid "<b>Adjust Levels</b>"
+msgstr "<b>Các mức điều chỉnh</b>"
+
+#: src/audacious/ui_preferences.c:164
+msgid "Amplify all files:"
+msgstr "Khuếch đại mọi tập tin:"
+
+#: src/audacious/ui_preferences.c:166 src/audacious/ui_preferences.c:169
+msgid "dB"
+msgstr "dB"
+
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify untagged files:"
+msgstr "Khuếch đại tập tin chưa gán thẻ:"
+
+#: src/audacious/ui_preferences.c:172
+msgid "Proxy hostname:"
+msgstr "Tên máy chủ proxy:"
+
+#: src/audacious/ui_preferences.c:173
+msgid "Proxy port:"
+msgstr "Cổng proxy:"
+
+#: src/audacious/ui_preferences.c:176
+msgid "Proxy username:"
+msgstr "Tên người dùng proxy:"
+
+#: src/audacious/ui_preferences.c:177
+msgid "Proxy password:"
+msgstr "Mật khẩu proxy:"
+
+#: src/audacious/ui_preferences.c:181
+msgid "<b>Proxy Configuration</b>"
+msgstr "<b>Cấu hình Proxy</b>"
+
+#: src/audacious/ui_preferences.c:182
+msgid "Enable proxy usage"
+msgstr "Cho phép dùng proxy"
+
+#: src/audacious/ui_preferences.c:185
+msgid "Use authentication with proxy"
+msgstr "Xác thực với proxy"
+
+#: src/audacious/ui_preferences.c:193
+msgid "Auto character encoding detector for:"
+msgstr "Tự động nhận diện bảng mã kí tự cho:"
+
+#: src/audacious/ui_preferences.c:198
+msgid "Fallback character encodings:"
+msgstr "Bảng mã kí tự dự phòng:"
+
+#: src/audacious/ui_preferences.c:202
+msgid "<b>Behavior</b>"
+msgstr "<b>Hành động</b>"
+
+#: src/audacious/ui_preferences.c:203
+msgid "Continue playback on startup"
+msgstr "Tiếp tục phát khi khởi động"
+
+#: src/audacious/ui_preferences.c:205
+msgid "Advance when the current song is deleted"
+msgstr "Đến bài kế tiếp khi xóa bài hiện tại"
+
+#: src/audacious/ui_preferences.c:207
+msgid "Clear the playlist when opening files"
+msgstr "Dọn sạch danh sách khi mở các tập tin"
+
+#: src/audacious/ui_preferences.c:209
+msgid "Open files in a temporary playlist"
+msgstr "Mở các tập tin trong một danh sách tạm"
+
+#: src/audacious/ui_preferences.c:211
+msgid "<b>Metadata</b>"
+msgstr "<b>Thông tin</b>"
+
+#: src/audacious/ui_preferences.c:212
+msgid "Do not load metadata for songs until played"
+msgstr "Không nạp thông tin bài hát cho đến khi nó được phát"
+
+#: src/audacious/ui_preferences.c:230
+msgid "TITLE"
+msgstr "TỰA ĐỀ"
+
+#: src/audacious/ui_preferences.c:231
+msgid "ARTIST - TITLE"
+msgstr "NGHỆ SĨ - TỰA ĐỀ"
+
+#: src/audacious/ui_preferences.c:232
+msgid "ARTIST - ALBUM - TITLE"
+msgstr "NGHỆ SĨ - ALBUM - TỰA"
+
+#: src/audacious/ui_preferences.c:233
+msgid "ARTIST - ALBUM - TRACK. TITLE"
+msgstr "NGHỆ SĨ - ALBUM - BÀI. TỰA"
+
+#: src/audacious/ui_preferences.c:234
+msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
+msgstr "NGHỆ SĨ [ALBUM ] - BÀI. TỰA"
+
+#: src/audacious/ui_preferences.c:235
+msgid "ALBUM - TITLE"
+msgstr "ALBUM - TỰA ĐỀ"
+
+#: src/audacious/ui_preferences.c:556
+msgid "Category"
+msgstr "Danh mục"
+
+#: src/audacious/ui_preferences.c:780
+msgid "Popup Information Settings"
+msgstr "Thiết lập thông tin cửa sổ bật lên"
+
+#: src/audacious/ui_preferences.c:789
+msgid "<b>Cover image retrieve</b>"
+msgstr "<b>Lấy ảnh bìa</b>"
+
+#: src/audacious/ui_preferences.c:794
+msgid ""
+"While searching for the album's cover, Audacious looks for certain words in "
+"the filename. You can specify those words in the lists below, separated "
+"using commas."
+msgstr ""
+"Khi tìm ảnh bìa của album, Audacious xem xét một số từ nhất định trong tên "
+"tập tin. Bạn có thể chỉ định những từ này trong danh sách bên dưới, dừng dấu"
+" phẩy để ngăn cách các từ."
+
+#: src/audacious/ui_preferences.c:811
+msgid "Exclude:"
+msgstr "Loại trừ:"
+
+#: src/audacious/ui_preferences.c:818
+msgid "Include:"
+msgstr "Bao gồm:"
+
+#: src/audacious/ui_preferences.c:835
+msgid "Recursively search for cover"
+msgstr "Tìm ảnh bìa trong thư mục con"
+
+#: src/audacious/ui_preferences.c:845
+msgid "Search depth: "
+msgstr "Độ sâu:"
+
+#: src/audacious/ui_preferences.c:859
+msgid "Use per-file cover"
+msgstr "Mỗi tập tin một ảnh bìa riêng"
+
+#: src/audacious/ui_preferences.c:862
+msgid "<b>Miscellaneous</b>"
+msgstr "<b>Khác</b>"
+
+#: src/audacious/ui_preferences.c:871
+msgid "Show Progress bar for the current track"
+msgstr "Hiện thanh tiến trình cho bài hiện tại"
+
+#: src/audacious/ui_preferences.c:881
+msgid "Delay until filepopup comes up: "
+msgstr "Chờ cho đến khi cửa sổ bật lên hiện ra:"
+
+#: src/audacious/ui_preferences.c:1309
+msgid "Custom"
+msgstr "Tùy chọn"
+
+#: src/audacious/ui_preferences.c:1352
+msgid "<b>Song Display</b>"
+msgstr "<b>Hiển thị bài hát</b>"
+
+#: src/audacious/ui_preferences.c:1361
+msgid "Show song numbers"
+msgstr "Hiện số thứ tự trong danh sách của bài hát"
+
+#: src/audacious/ui_preferences.c:1372
+msgid "Show leading zeroes (02:00 instead of 2:00)"
+msgstr "Hiện số không ở đầu (02:00 thay vì of 2:00)"
+
+#: src/audacious/ui_preferences.c:1394
+msgid "Show information about titlestring format"
+msgstr "Hiện thông tin về định dạng tựa đề"
+
+#: src/audacious/ui_preferences.c:1410
+msgid "Custom string:"
+msgstr "Chuỗi tùy chọn:"
+
+#: src/audacious/ui_preferences.c:1417
+msgid "Title format:"
+msgstr "Định dạng tựa đề:"
+
+#: src/audacious/ui_preferences.c:1428
+msgid "<b>Popup Information</b>"
+msgstr "<b>Cửa sổ thông tin bật lên</b>"
+
+#: src/audacious/ui_preferences.c:1443
+msgid "Show popup information for playlist entries"
+msgstr "Hiện cửa sổ thông tin bật lên cho các mục trong danh sách"
+
+#: src/audacious/ui_preferences.c:1444
+msgid ""
+"Toggles popup information window for the pointed entry in the playlist. The "
+"window shows title of song, name of album, genre, year of publish, track "
+"number, track length, and artwork."
+msgstr ""
+"Bật/tắt cửa sổ thông tin bật lên cho mục được trỏ vào trong danh sách. Cửa "
+"sổ hiện tựa đề bài hát, tên album, thể loại, năm phát hành, số thứ tự của "
+"bài, thời lượng, và ảnh bìa."
+
+#: src/audacious/ui_preferences.c:1455
+msgid "Edit settings for popup information"
+msgstr "Chỉnh sửa thiết lập cho cửa sổ thông tin bật lên"
+
+#: src/audacious/ui_preferences.c:1544
+msgid "Output plugin:"
+msgstr "Trình cắm xuất ra:"
+
+#: src/audacious/ui_preferences.c:1603
+msgid "Transport"
+msgstr "Truyền tải"
+
+#: src/audacious/ui_preferences.c:1603
+msgid "Input"
+msgstr "Đầu vào"
+
+#: src/audacious/ui_preferences.c:1604
+msgid "Effect"
+msgstr "Hiệu ứng"
+
+#: src/audacious/ui_preferences.c:1604
+msgid "Visualization"
+msgstr "Hình ảnh ảo"
+
+#: src/audacious/ui_preferences.c:1604
+msgid "General"
+msgstr "Tổng quát"
+
+#: src/audacious/ui_preferences.c:1644
+msgid "Audacious Preferences"
+msgstr "Tùy chỉnh Audacious"
+
+#: src/audacious/util.c:120
+#, c-format
+msgid "Could not create directory (%s): %s\n"
+msgstr "Không thể tạo thư mục (%s): %s\n"
+
+#: src/audtool/handlers_playlist.c:273
+msgid "Position not found."
+msgstr "Không tìm thấy vị trí."
+
+#: src/audtool/handlers_vitals.c:63
+msgid "No song playing."
+msgstr "Hiện không phát nhạc."
+
+#: src/libaudcore/audstrings.c:194
+#, c-format
+msgid "Audio CD, track %s"
+msgstr "Đĩa nhạc, bài %s"
+
+#: src/libaudcore/tuple.c:536
+msgid "Mono"
+msgstr "Mono"
+
+#: src/libaudcore/tuple.c:538
+msgid "Stereo"
+msgstr "Stereo"
+
+#: src/libaudcore/tuple.c:540
+#, c-format
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] "%d kênh"
+
+#: src/libaudgui/confirm.c:78
+#, c-format
+msgid ""
+"Are you sure you want to close %s?  If you do, any changes made since the "
+"playlist was exported will be lost."
+msgstr ""
+"Bạn có chắc là muốn đóng %s? Nếu bạn làm vậy, các thay đổi kể từ khi danh "
+"sách được xuất ra sẽ bị mất."
+
+#: src/libaudgui/confirm.c:91
+msgid "_Don't show this message again"
+msgstr "_Không hiện tin nhắn này nữa"
+
+#: src/libaudgui/confirm.c:128
+msgid "Rename Playlist"
+msgstr "Đổi tên danh sách"
+
+#: src/libaudgui/effects-menu.c:76
+msgid "settings ..."
+msgstr "thiết lập ..."
+
+#: src/libaudgui/equalizer.c:53
+msgid "_Enable"
+msgstr "_Bật"
+
+#: src/libaudgui/equalizer.c:125
+msgid "31 Hz"
+msgstr "31 Hz"
+
+#: src/libaudgui/equalizer.c:125
+msgid "63 Hz"
+msgstr "63 Hz"
+
+#: src/libaudgui/equalizer.c:126
+msgid "125 Hz"
+msgstr "125 Hz"
+
+#: src/libaudgui/equalizer.c:126
+msgid "250 Hz"
+msgstr "250 Hz"
+
+#: src/libaudgui/equalizer.c:126
+msgid "500 Hz"
+msgstr "500 Hz"
+
+#: src/libaudgui/equalizer.c:126
+msgid "1 kHz"
+msgstr "1 kHz"
+
+#: src/libaudgui/equalizer.c:126
+msgid "2 kHz"
+msgstr "2 kHz"
+
+#: src/libaudgui/equalizer.c:127
+msgid "4 kHz"
+msgstr "4 kHz"
+
+#: src/libaudgui/equalizer.c:127
+msgid "8 kHz"
+msgstr "8 kHz"
+
+#: src/libaudgui/equalizer.c:127
+msgid "16 kHz"
+msgstr "16 kHz"
+
+#: src/libaudgui/equalizer.c:132
+msgid "Equalizer"
+msgstr "Bộ cân chỉnh âm"
+
+#: src/libaudgui/equalizer.c:148
+msgid "Preamp"
+msgstr "Độ lớn"
+
+#: src/libaudgui/infopopup.c:211
+msgid "Track Number"
+msgstr "Số thứ tự"
+
+#: src/libaudgui/infopopup.c:213
+msgid "Track Length"
+msgstr "Thời lượng"
+
+#: src/libaudgui/infowin.c:78
+msgid "Acid Jazz"
+msgstr "Acid Jazz"
+
+#: src/libaudgui/infowin.c:79
+msgid "Acid Rock"
+msgstr "Acid Rock"
+
+#: src/libaudgui/infowin.c:80
+msgid "Ambient"
+msgstr "Ambient"
+
+#: src/libaudgui/infowin.c:81
+msgid "Bebop"
+msgstr "Bebop"
+
+#: src/libaudgui/infowin.c:82
+msgid "Bluegrass"
+msgstr "Bluegrass"
+
+#: src/libaudgui/infowin.c:83
+msgid "Blues"
+msgstr "Blues"
+
+#: src/libaudgui/infowin.c:84
+msgid "Chamber Music"
+msgstr "Chamber Music"
+
+#: src/libaudgui/infowin.c:85
+msgid "Classical"
+msgstr "Classical"
+
+#: src/libaudgui/infowin.c:86
+msgid "Country"
+msgstr "Country"
+
+#: src/libaudgui/infowin.c:87
+msgid "Death Metal"
+msgstr "Death Metal"
+
+#: src/libaudgui/infowin.c:88
+msgid "Disco"
+msgstr "Disco"
+
+#: src/libaudgui/infowin.c:89
+msgid "Easy Listening"
+msgstr "Easy Listening"
+
+#: src/libaudgui/infowin.c:90
+msgid "Folk"
+msgstr "Folk"
+
+#: src/libaudgui/infowin.c:91
+msgid "Funk"
+msgstr "Funk"
+
+#: src/libaudgui/infowin.c:92
+msgid "Gangsta Rap"
+msgstr "Gangsta Rap"
+
+#: src/libaudgui/infowin.c:93
+msgid "Gospel"
+msgstr "Gospel"
+
+#: src/libaudgui/infowin.c:94
+msgid "Grunge"
+msgstr "Grunge"
+
+#: src/libaudgui/infowin.c:95
+msgid "Hard Rock"
+msgstr "Hard Rock"
+
+#: src/libaudgui/infowin.c:96
+msgid "Heavy Metal"
+msgstr "Heavy Metal"
+
+#: src/libaudgui/infowin.c:97
+msgid "Hip-hop"
+msgstr "Hip-hop"
+
+#: src/libaudgui/infowin.c:98
+msgid "House"
+msgstr "House"
+
+#: src/libaudgui/infowin.c:99
+msgid "Jazz"
+msgstr "Jazz"
+
+#: src/libaudgui/infowin.c:100
+msgid "Jungle"
+msgstr "Jungle"
+
+#: src/libaudgui/infowin.c:101
+msgid "Metal"
+msgstr "Metal"
+
+#: src/libaudgui/infowin.c:102
+msgid "New Age"
+msgstr "New Age"
+
+#: src/libaudgui/infowin.c:103
+msgid "New Wave"
+msgstr "New Wave"
+
+#: src/libaudgui/infowin.c:104
+msgid "Noise"
+msgstr "Noise"
+
+#: src/libaudgui/infowin.c:105
+msgid "Pop"
+msgstr "Pop"
+
+#: src/libaudgui/infowin.c:106
+msgid "Punk Rock"
+msgstr "Punk Rock"
+
+#: src/libaudgui/infowin.c:107
+msgid "Rap"
+msgstr "Rap"
+
+#: src/libaudgui/infowin.c:108
+msgid "Reggae"
+msgstr "Reggae"
+
+#: src/libaudgui/infowin.c:109
+msgid "Rock"
+msgstr "Rock"
+
+#: src/libaudgui/infowin.c:110
+msgid "Rock and Roll"
+msgstr "Rock and Roll"
+
+#: src/libaudgui/infowin.c:111
+msgid "Rhythm and Blues"
+msgstr "Rhythm and Blues"
+
+#: src/libaudgui/infowin.c:112
+msgid "Ska"
+msgstr "Ska"
+
+#: src/libaudgui/infowin.c:113
+msgid "Soul"
+msgstr "Soul"
+
+#: src/libaudgui/infowin.c:114
+msgid "Swing"
+msgstr "Swing"
+
+#: src/libaudgui/infowin.c:115
+msgid "Techno"
+msgstr "Techno"
+
+#: src/libaudgui/infowin.c:116
+msgid "Trip-hop"
+msgstr "Trip-hop"
+
+#: src/libaudgui/infowin.c:180 src/libaudgui/infowin.c:366
+#: src/libaudgui/infowin.c:369 src/libaudgui/infowin.c:372
+msgid "<span size=\"small\">n/a</span>"
+msgstr "<span size=\"small\">n/a</span>"
+
+#: src/libaudgui/infowin.c:270
+msgid "Metadata updated successfully"
+msgstr "Đã cập nhật thông tin"
+
+#: src/libaudgui/infowin.c:275
+msgid "Metadata updating failed"
+msgstr "Không thể cập nhật thông tin"
+
+#: src/libaudgui/infowin.c:323
+msgid "Track Information"
+msgstr "Thông tin"
+
+#: src/libaudgui/infowin.c:355
+msgid "<span size=\"small\">Format:</span>"
+msgstr "<span size=\"small\">Định dạng:</span>"
+
+#: src/libaudgui/infowin.c:359
+msgid "<span size=\"small\">Quality:</span>"
+msgstr "<span size=\"small\">Chất lượng:</span>"
+
+#: src/libaudgui/infowin.c:362
+msgid "<span size=\"small\">Bitrate:</span>"
+msgstr "<span size=\"small\">Tỉ lệ bit:</span>"
+
+#: src/libaudgui/infowin.c:392
+msgid "<span size=\"small\">Title</span>"
+msgstr "<span size=\"small\">Tựa đề</span>"
+
+#: src/libaudgui/infowin.c:404
+msgid "<span size=\"small\">Artist</span>"
+msgstr "<span size=\"small\">Nghệ sĩ</span>"
+
+#: src/libaudgui/infowin.c:416
+msgid "<span size=\"small\">Album</span>"
+msgstr "<span size=\"small\">Album</span>"
+
+#: src/libaudgui/infowin.c:428
+msgid "<span size=\"small\">Comment</span>"
+msgstr "<span size=\"small\">Bình luận</span>"
+
+#: src/libaudgui/infowin.c:440
+msgid "<span size=\"small\">Genre</span>"
+msgstr "<span size=\"small\">Thể loại</span>"
+
+#: src/libaudgui/infowin.c:461
+msgid "<span size=\"small\">Year</span>"
+msgstr "<span size=\"small\">Năm</span>"
+
+#: src/libaudgui/infowin.c:472
+msgid "<span size=\"small\">Track Number</span>"
+msgstr "<span size=\"small\">Số thứ tự</span>"
+
+#: src/libaudgui/infowin.c:551
+#, c-format
+msgid "%d kb/s"
+msgstr "%d kb/giây"
+
+#: src/libaudgui/infowin.c:578
+#, c-format
+msgid "No info available for %s.\n"
+msgstr "Không có thông tin của %s.\n"
+
+#: src/libaudgui/jump-to-time.c:75
+msgid "Jump to Time"
+msgstr "Định mốc t.gian phát nhạc"
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr "mm:ss"
+
+#: src/libaudgui/playlists.c:39
+msgid "Export Playlist"
+msgstr "Xuất danh sách"
+
+#: src/libaudgui/playlists.c:39
+msgid "Import Playlist"
+msgstr "Nhập danh sách"
+
+#: src/libaudgui/playlists.c:72
+#, c-format
+msgid "Overwrite %s?"
+msgstr "Ghi đè %s?"
+
+#: src/libaudgui/queue-manager.c:198
+msgid "Queue Manager"
+msgstr "Trình quản lí hàng đợi"
+
+#: src/libaudgui/ui_about.c:69
+msgid "About Audacious"
+msgstr "Giới thiệu Audacious"
+
+#: src/libaudgui/ui_about.c:90 src/libaudgui/ui_credits.c:122
+msgid "Credits"
+msgstr "Đóng góp"
+
+#: src/libaudgui/ui_credits.c:126
+msgid "Translators"
+msgstr "Người dịch"
+
+#: src/libaudgui/ui_fileopener.c:108
+msgid "Open Files"
+msgstr "Mở tập tin"
+
+#: src/libaudgui/ui_fileopener.c:108
+msgid "Add Files"
+msgstr "Thêm tập tin"
+
+#: src/libaudgui/ui_fileopener.c:110
+msgid "Close dialog on Open"
+msgstr "Đóng hộp thoại khi Mở"
+
+#: src/libaudgui/ui_fileopener.c:110
+msgid "Close dialog on Add"
+msgstr "Đóng hộp thoại khi Thêm"
+
+#: src/libaudgui/ui_jumptotrack.c:112 src/libaudgui/ui_jumptotrack.c:120
+#: src/libaudgui/ui_jumptotrack.c:329
+msgid "_Queue"
+msgstr "_Hàng đợi"
+
+#: src/libaudgui/ui_jumptotrack.c:118
+msgid "Un_queue"
+msgstr "Bỏ khỏi _hàng đợi"
+
+#: src/libaudgui/ui_jumptotrack.c:261
+msgid "Jump to Song"
+msgstr "Chuyển đến bài hát"
+
+#: src/libaudgui/ui_jumptotrack.c:284
+msgid "Filter: "
+msgstr "Bộ lọc:"
+
+#: src/libaudgui/ui_jumptotrack.c:285
+msgid "_Filter:"
+msgstr "_Bộ lọc:"
+
+#: src/libaudgui/ui_jumptotrack.c:295
+msgid "Remember"
+msgstr "Ghi nhá»›"
+
+#: src/libaudgui/ui_jumptotrack.c:302
+msgid "Clea_r"
+msgstr "_Xóa trắng"
+
+#: src/libaudgui/ui_jumptotrack.c:322
+msgid "Close on Jump"
+msgstr "Đóng khi chọn xong"
+
+#: src/libaudgui/ui_playlist_manager.c:253
+msgid "Playlist Manager"
+msgstr "Quản lý danh sách"
+
+#: src/libaudgui/ui_playlist_manager.c:280
+msgid "Entries"
+msgstr "Số mục"
+
+#: src/libaudgui/ui_playlist_manager.c:301
+msgid "_Rename"
+msgstr "Đổi _tên"
+
+#: src/libaudgui/ui_playlist_manager.c:325
+msgid "_Close dialog on activating playlist"
+msgstr "Đóng hộp thoại khi _kích hoạt danh sách"
+
+#: src/libaudgui/ui_urlopener.c:51
+msgid "Open URL"
+msgstr "Mở địa chỉ URL"
+
+#: src/libaudgui/ui_urlopener.c:51
+msgid "Add URL"
+msgstr "Thêm URL"
+
+#: src/libaudgui/util.c:97
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+"\n"
+"(Các thông báo khác đã bị ẩn.)"
+
+#: src/libeggsmclient/eggdesktopfile.c:165
+msgid "File is not a valid .desktop file"
+msgstr "Không phải là một tập tin .desktop hợp lệ"
+
+#: src/libeggsmclient/eggdesktopfile.c:191
+#, c-format
+msgid "Unrecognized desktop file Version '%s'"
+msgstr "Phiên bản tập tin desktop không được công nhận '%s'"
+
+#: src/libeggsmclient/eggdesktopfile.c:974
+#, c-format
+msgid "Starting %s"
+msgstr "Đang khởi động %s"
+
+#: src/libeggsmclient/eggdesktopfile.c:1116
+msgid "Application does not accept documents on command line"
+msgstr "Ứng dụng không chấp nhận tài liệu trên dòng lệnh"
+
+#: src/libeggsmclient/eggdesktopfile.c:1184
+#, c-format
+msgid "Unrecognized launch option: %d"
+msgstr "Tùy chọn khởi chạy không được công nhận: %d"
+
+#: src/libeggsmclient/eggdesktopfile.c:1391
+msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
+msgstr "Không thể truyền URI tài liệu đến mục màn hình 'Type=Link'"
+
+#: src/libeggsmclient/eggdesktopfile.c:1412
+msgid "Not a launchable item"
+msgstr "Không phải mục có thể khởi chạy"
+
+#: src/libeggsmclient/eggsmclient.c:226
+msgid "Disable connection to session manager"
+msgstr "Ngắt kết nối đến trình quản lí phiên làm việc"
+
+#: src/libeggsmclient/eggsmclient.c:229
+msgid "Specify file containing saved configuration"
+msgstr "Chỉ định tập tin chứa cấu hình đã lưu"
+
+#: src/libeggsmclient/eggsmclient.c:229
+msgid "FILE"
+msgstr "TẬP TIN"
+
+#: src/libeggsmclient/eggsmclient.c:232
+msgid "Specify session management ID"
+msgstr "Chỉ định ID quản lí phiên"
+
+#: src/libeggsmclient/eggsmclient.c:232
+msgid "ID"
+msgstr "ID"
+
+#: src/libeggsmclient/eggsmclient.c:253
+msgid "Session management options:"
+msgstr "Tùy chọn quản lí phiên:"
+
+#: src/libeggsmclient/eggsmclient.c:254
+msgid "Show session management options"
+msgstr "Hiện các tùy chọn quản lí phiên"
+
+
diff --git a/po/zh_CN.po b/po/zh_CN.po
index 1401d40..3d0d993 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -8,8 +8,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: Audacious\n"
 "Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
-"PO-Revision-Date: 2011-04-11 21:12+0800\n"
+"POT-Creation-Date: 2011-10-09 12:18-0400\n"
+"PO-Revision-Date: 2011-10-16 19:20+0800\n"
 "Last-Translator: Chasye <chasye at gmail.com>\n"
 "Language-Team: Chinese (simplified)\n"
 "Language: zh_CN\n"
@@ -18,7 +18,17 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
-#: src/audacious/chardet.c:37
+#: src/audacious/adder.c:71
+msgid "Searching ..."
+msgstr "搜索中..."
+
+#: src/audacious/adder.c:97
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] "找到%d个文件"
+
+#: src/audacious/chardet.c:38
 msgid "  (invalid UTF-8)"
 msgstr "  (非法的UTF-8编码)"
 
@@ -32,7 +42,7 @@ msgstr "美工:"
 
 #: src/audacious/credits.c:54
 msgid "Default skin:"
-msgstr "默认主题"
+msgstr "默认主题:"
 
 #: src/audacious/credits.c:60
 msgid "Plugin development:"
@@ -62,147 +72,151 @@ msgstr "巴斯克语:"
 msgid "Brazilian Portuguese:"
 msgstr "巴西葡萄牙语:"
 
-#: src/audacious/credits.c:190
+#: src/audacious/credits.c:191
 msgid "Breton:"
 msgstr "布列塔尼语:"
 
-#: src/audacious/credits.c:193
+#: src/audacious/credits.c:194
 msgid "Bulgarian:"
 msgstr "匈牙利语:"
 
-#: src/audacious/credits.c:196
+#: src/audacious/credits.c:197
 msgid "Catalan:"
 msgstr "加泰罗尼亚语:"
 
-#: src/audacious/credits.c:199
+#: src/audacious/credits.c:200
 msgid "Chinese:"
-msgstr "汉语:"
+msgstr "汉语:"
 
-#: src/audacious/credits.c:202
+#: src/audacious/credits.c:203
 msgid "Croatian:"
 msgstr "罗马尼亚语:"
 
-#: src/audacious/credits.c:205
+#: src/audacious/credits.c:206
 msgid "Czech:"
 msgstr "捷克语:"
 
-#: src/audacious/credits.c:208
+#: src/audacious/credits.c:209
 msgid "Dutch:"
 msgstr "荷兰语:"
 
-#: src/audacious/credits.c:212
+#: src/audacious/credits.c:213
 msgid "Estonian:"
 msgstr "爱沙尼亚语:"
 
-#: src/audacious/credits.c:215
+#: src/audacious/credits.c:216
 msgid "Finnish:"
 msgstr "芬兰语:"
 
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:221
 msgid "French:"
 msgstr "法语:"
 
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:227
 msgid "German:"
 msgstr "德语:"
 
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:234
 msgid "Georgian:"
 msgstr "乔治亚语:"
 
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:237
 msgid "Greek:"
 msgstr "希腊语:"
 
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:242
 msgid "Hindi:"
-msgstr "印地语:"
+msgstr "印地语:"
 
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:245
 msgid "Hungarian:"
 msgstr "匈牙利语:"
 
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:249
 msgid "Italian:"
 msgstr "意大利语:"
 
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:253
 msgid "Japanese:"
 msgstr "日语:"
 
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:256
 msgid "Korean:"
 msgstr "韩语:"
 
-#: src/audacious/credits.c:256
+#: src/audacious/credits.c:259
 msgid "Latvian:"
 msgstr "拉脱维亚语:"
 
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:262
 msgid "Lithuanian:"
 msgstr "立陶宛语:"
 
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:267
 msgid "Macedonian:"
 msgstr "马其顿语:"
 
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:270
 msgid "Polish:"
 msgstr "波兰语:"
 
-#: src/audacious/credits.c:271
+#: src/audacious/credits.c:276
 msgid "Portuguese:"
 msgstr "葡萄牙语:"
 
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:279
 msgid "Romanian:"
 msgstr "罗马尼亚语:"
 
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:283
 msgid "Russian:"
 msgstr "俄语:"
 
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:287
 msgid "Serbian (Latin):"
-msgstr "塞尔维亚语(拉丁文)"
+msgstr "塞尔维亚语(拉丁文):"
 
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:290
 msgid "Serbian (Cyrillic):"
-msgstr "塞尔维亚语(斯拉夫文)"
+msgstr "塞尔维亚语(斯拉夫文):"
 
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:293
 msgid "Simplified Chinese:"
 msgstr "简体中文:"
 
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:296
 msgid "Slovak:"
 msgstr "斯洛伐克语:"
 
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:299
 msgid "Spanish:"
 msgstr "西班牙语:"
 
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:306
 msgid "Swedish:"
 msgstr "瑞典语:"
 
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:309
 msgid "Traditional Chinese:"
 msgstr "繁体中文:"
 
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:315
 msgid "Turkish:"
 msgstr "土耳其语:"
 
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:319
 msgid "Ukrainian:"
 msgstr "乌克兰语:"
 
-#: src/audacious/credits.c:316
+#: src/audacious/credits.c:323
+msgid "Vietnamese:"
+msgstr "越南语:"
+
+#: src/audacious/credits.c:326
 msgid "Welsh:"
 msgstr "威尔斯语:"
 
-#: src/audacious/drct.c:254
+#: src/audacious/drct.c:234
 msgid "Temporary Playlist"
 msgstr "临时播放列表"
 
@@ -211,77 +225,67 @@ msgstr "临时播放列表"
 msgid "Error importing Winamp EQF file '%s'"
 msgstr "导入Winamp EQF文件时发生错误 '%s'"
 
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr "搜索中..."
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] "找到%d个文件"
-
-#: src/audacious/main.c:247
+#: src/audacious/main.c:239
 msgid "Skip backwards in playlist"
 msgstr "播放前一首"
 
-#: src/audacious/main.c:248
+#: src/audacious/main.c:240
 msgid "Start playing current playlist"
 msgstr "播放当前列表"
 
-#: src/audacious/main.c:249
+#: src/audacious/main.c:241
 msgid "Pause current song"
 msgstr "暂停播放"
 
-#: src/audacious/main.c:250
+#: src/audacious/main.c:242
 msgid "Stop current song"
 msgstr "停止播放"
 
-#: src/audacious/main.c:251
+#: src/audacious/main.c:243
 msgid "Pause if playing, play otherwise"
 msgstr "暂停/播放"
 
-#: src/audacious/main.c:252
+#: src/audacious/main.c:244
 msgid "Skip forward in playlist"
 msgstr "播放下一首"
 
-#: src/audacious/main.c:253
+#: src/audacious/main.c:245
 msgid "Display Jump to File dialog"
 msgstr "显示“跳到文件”对话框"
 
-#: src/audacious/main.c:254
+#: src/audacious/main.c:246
 msgid "Add files to the playlist"
 msgstr "添加文件到播放列表"
 
-#: src/audacious/main.c:255
+#: src/audacious/main.c:247
 msgid "Add new files to a temporary playlist"
 msgstr "添加文件到临时播放列表"
 
-#: src/audacious/main.c:256
+#: src/audacious/main.c:248
 msgid "Display the main window"
 msgstr "显示主界面"
 
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr "显示所有已打开的Audacious窗口"
-
-#: src/audacious/main.c:258
+#: src/audacious/main.c:249
 msgid "Show version"
 msgstr "显示版本信息"
 
-#: src/audacious/main.c:259
+#: src/audacious/main.c:250
 msgid "Print debugging messages"
 msgstr "输出调试信息"
 
-#: src/audacious/main.c:260
+#: src/audacious/main.c:251
+msgid "Headless mode (beta)"
+msgstr "后台模式(beta)"
+
+#: src/audacious/main.c:252
 msgid "FILE..."
 msgstr "文件..."
 
-#: src/audacious/main.c:272
+#: src/audacious/main.c:264
 msgid "- play multimedia files"
 msgstr "- 播放多媒体文件"
 
-#: src/audacious/main.c:282
+#: src/audacious/main.c:274
 #, c-format
 msgid ""
 "%s: %s\n"
@@ -290,31 +294,20 @@ msgstr ""
 "%s: %s\n"
 "用 `%s --help' 以获取更多信息.\n"
 
-#: src/audacious/main.c:395
-msgid ""
-"Audacious seems to be already running but is not responding.  You can start "
-"another instance of the program, but please be warned that this can cause "
-"data loss.  If Audacious is not running, you can safely ignore this "
-"message.  Press OK to start Audacious or Cancel to quit."
-msgstr ""
-"Audacious似乎已经启动,但未能作出响应。你可以启动多一个进程,但可能会因此引起"
-"数据丢失。如果Audacious未启动,你完全可以忽略此信息。要启动Audacious点击\"确定"
-"\",否则点击\"取消\""
-
-#: src/audacious/main.c:558
+#: src/audacious/main.c:547
 msgid "Audacious"
 msgstr ""
 
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:376
 #, c-format
 msgid "No decoder found for %s."
 msgstr "未能为 %s 找到解码器"
 
-#: src/audacious/playback.c:519
+#: src/audacious/playback.c:526
 msgid "Buffering ..."
 msgstr "缓冲中..."
 
-#: src/audacious/playlist-new.c:288
+#: src/audacious/playlist-new.c:306
 msgid "Untitled Playlist"
 msgstr "新播放列表"
 
@@ -323,67 +316,63 @@ msgid "Audio"
 msgstr "音频"
 
 #: src/audacious/ui_preferences.c:89
-msgid "Replay Gain"
-msgstr "回放增益"
-
-#: src/audacious/ui_preferences.c:90
 msgid "Network"
 msgstr "网络"
 
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:90 src/audacious/ui_preferences.c:1633
 msgid "Playlist"
 msgstr "播放列表"
 
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:91
 msgid "Plugins"
 msgstr "插件"
 
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:97 src/libaudgui/infopopup.c:203
 msgid "Artist"
 msgstr "艺术家"
 
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:205
 msgid "Album"
 msgstr "专辑"
 
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:201
+#: src/libaudgui/ui_playlist_manager.c:276
 msgid "Title"
 msgstr "标题"
 
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:100
 msgid "Tracknumber"
 msgstr "音轨序号"
 
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:101 src/libaudgui/infopopup.c:207
 msgid "Genre"
 msgstr "风格"
 
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:102
 msgid "Filename"
 msgstr "文件名"
 
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:103
 msgid "Filepath"
 msgstr "路径"
 
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:104
 msgid "Date"
 msgstr "时间"
 
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:105 src/libaudgui/infopopup.c:209
 msgid "Year"
 msgstr "年份"
 
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:106
 msgid "Comment"
 msgstr "备注"
 
-#: src/audacious/ui_preferences.c:108
+#: src/audacious/ui_preferences.c:107
 msgid "Codec"
 msgstr "编码"
 
-#: src/audacious/ui_preferences.c:109
+#: src/audacious/ui_preferences.c:108
 msgid "Quality"
 msgstr "音质"
 
@@ -392,217 +381,202 @@ msgid "None"
 msgstr "æ— "
 
 #: src/audacious/ui_preferences.c:115
-msgid "Japanese"
-msgstr "日语"
+msgid "Arabic"
+msgstr "阿拉伯语"
 
 #: src/audacious/ui_preferences.c:116
-msgid "Taiwanese"
-msgstr "台语"
+msgid "Baltic"
+msgstr "波罗的语"
 
 #: src/audacious/ui_preferences.c:117
 msgid "Chinese"
 msgstr "汉语"
 
 #: src/audacious/ui_preferences.c:118
-msgid "Korean"
-msgstr "韩语"
+msgid "Greek"
+msgstr "希腊语"
 
 #: src/audacious/ui_preferences.c:119
-msgid "Russian"
-msgstr "俄语"
+msgid "Hebrew"
+msgstr "希伯来语"
 
 #: src/audacious/ui_preferences.c:120
-msgid "Greek"
-msgstr "希腊语"
+msgid "Japanese"
+msgstr "日语"
 
 #: src/audacious/ui_preferences.c:121
-msgid "Hebrew"
-msgstr "希伯来语"
+msgid "Korean"
+msgstr "韩语"
 
 #: src/audacious/ui_preferences.c:122
-msgid "Turkish"
-msgstr "土耳其语"
+msgid "Polish"
+msgstr "波兰语"
 
 #: src/audacious/ui_preferences.c:123
-msgid "Arabic"
-msgstr "阿拉伯语"
+msgid "Russian"
+msgstr "俄语"
 
 #: src/audacious/ui_preferences.c:124
-msgid "Polish"
-msgstr "波兰语"
+msgid "Taiwanese"
+msgstr "台语"
 
 #: src/audacious/ui_preferences.c:125
-msgid "Baltic"
-msgstr "波罗的语"
-
-#: src/audacious/ui_preferences.c:126
-msgid "Universal"
-msgstr "世界语"
-
-#: src/audacious/ui_preferences.c:146
-msgid "<b>Bit Depth</b>"
-msgstr "<b>位深</b>"
+msgid "Turkish"
+msgstr "土耳其语"
 
 #: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr "输出位深:"
-
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
-"所有音频流将会转换到此位深。\n"
-"此值不应大于您的声卡或输出插件所支持的最大值。"
+msgid "Album mode"
+msgstr "专辑模式"
 
-#: src/audacious/ui_preferences.c:151
-msgid "<b>Volume Control</b>"
-msgstr "<b>音量控制</b>"
+#: src/audacious/ui_preferences.c:150
+msgid "<b>Output Settings</b>"
+msgstr "<b>输出设置</b>"
 
 #: src/audacious/ui_preferences.c:152
-msgid "Use software volume control"
-msgstr "使用软音量控制"
+msgid "Bit depth:"
+msgstr "位深:"
 
-#: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr "使用软音量控制。当你无法调整系统音量时可以启用此设置。"
+#: src/audacious/ui_preferences.c:155
+msgid "Buffer size:"
+msgstr "缓冲大小:"
 
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
-msgstr "应用到文件:"
+#: src/audacious/ui_preferences.c:157
+msgid "ms"
+msgstr ""
 
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
-msgstr "dB"
+#: src/audacious/ui_preferences.c:158
+msgid "Use software volume control (not recommended)"
+msgstr "使用软音量控制(非建议)"
 
 #: src/audacious/ui_preferences.c:160
-msgid "Amplify untagged files:"
-msgstr "应用到无标签文件:"
-
-#: src/audacious/ui_preferences.c:164
 msgid "<b>Replay Gain</b>"
 msgstr "<b>回放增益</b>"
 
-#: src/audacious/ui_preferences.c:165
+#: src/audacious/ui_preferences.c:161
 msgid "Enable Replay Gain"
 msgstr "启用回放增益"
 
-#: src/audacious/ui_preferences.c:167
-msgid "<b>Mode</b>"
-msgstr "<b>模式</b>"
-
-#: src/audacious/ui_preferences.c:168
-msgid "Single track mode"
-msgstr "单音轨模式"
-
-#: src/audacious/ui_preferences.c:170
-msgid "Album mode"
-msgstr "专辑模式"
+#: src/audacious/ui_preferences.c:164
+msgid "Prevent clipping (recommended)"
+msgstr "避免爆音(推荐)"
 
-#: src/audacious/ui_preferences.c:172
+#: src/audacious/ui_preferences.c:166
 msgid "<b>Adjust Levels</b>"
 msgstr "<b>调整幅度</b>"
 
-#: src/audacious/ui_preferences.c:175
-msgid "<b>Clipping Prevention</b>"
-msgstr "<b>避免爆音</b>"
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify all files:"
+msgstr "应用到文件:"
 
-#: src/audacious/ui_preferences.c:176
-msgid "Enable clipping prevention"
-msgstr "启用避免爆音"
+#: src/audacious/ui_preferences.c:169 src/audacious/ui_preferences.c:172
+msgid "dB"
+msgstr "dB"
 
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:170
+msgid "Amplify untagged files:"
+msgstr "应用到无标签文件:"
+
+#: src/audacious/ui_preferences.c:175
 msgid "Proxy hostname:"
 msgstr "主机地址:"
 
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:176
 msgid "Proxy port:"
 msgstr "连接端口:"
 
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:179
 msgid "Proxy username:"
 msgstr "认证用户:"
 
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:180
 msgid "Proxy password:"
 msgstr "认证密码:"
 
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:184
 msgid "<b>Proxy Configuration</b>"
 msgstr "<b>代理服务器设置</b>"
 
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:185
 msgid "Enable proxy usage"
 msgstr "启用代理服务器"
 
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:188
 msgid "Use authentication with proxy"
 msgstr "代理服务器要求认证"
 
-#: src/audacious/ui_preferences.c:197
-msgid ""
-"<span size=\"small\">Changing these settings will require a restart of "
-"Audacious.</span>"
-msgstr "<span size=\"small\">此设置将在Audacious重启后生效</span>"
-
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:196
 msgid "Auto character encoding detector for:"
 msgstr "自动检测下列编码:"
 
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:201
 msgid "Fallback character encodings:"
 msgstr "备用字符编码:"
 
-#: src/audacious/ui_preferences.c:209
-msgid ""
-"List of character encodings used for fall back conversion of metadata. If "
-"automatic character encoding detector failed or has been disabled, encodings "
-"in this list would be treated as candidates of the encoding of metadata, and "
-"fall back conversion from these encodings to UTF-8 would be attempted."
-msgstr ""
-"字符编码列表将用于元数据的后备转换。如果自动编码转换检测器失败或被禁用,列表"
-"中的编码将作为元数据的候选编码,并将试图由此转换到UTF-8。"
-
-#: src/audacious/ui_preferences.c:213
+#: src/audacious/ui_preferences.c:205
 msgid "<b>Behavior</b>"
 msgstr "<b>行为</b>"
 
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:206
 msgid "Continue playback on startup"
 msgstr "启动时恢复播放"
 
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:208
 msgid "Advance when the current song is deleted"
 msgstr "歌曲播放中被删除则播放下一首"
 
-#: src/audacious/ui_preferences.c:218
+#: src/audacious/ui_preferences.c:210
 msgid "Clear the playlist when opening files"
 msgstr "打开文件时清空当前播放列表"
 
-#: src/audacious/ui_preferences.c:220
+#: src/audacious/ui_preferences.c:212
 msgid "Open files in a temporary playlist"
 msgstr "在临时播放列表打开文件"
 
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:214
 msgid "<b>Metadata</b>"
 msgstr "<b>元数据</b>"
 
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:215
+msgid "Do not load metadata for songs until played"
+msgstr "未播放时切勿加载元数据"
+
+#: src/audacious/ui_preferences.c:232
+msgid "TITLE"
+msgstr "标题"
+
+#: src/audacious/ui_preferences.c:233
+msgid "ARTIST - TITLE"
+msgstr "艺术家 - 标题"
+
+#: src/audacious/ui_preferences.c:234
+msgid "ARTIST - ALBUM - TITLE"
+msgstr "艺术家 - 专辑 - 标题"
+
+#: src/audacious/ui_preferences.c:235
+msgid "ARTIST - ALBUM - TRACK. TITLE"
+msgstr "艺术家 - 专辑 - 曲目号. 标题"
+
+#: src/audacious/ui_preferences.c:236
+msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
+msgstr "艺术家 [专辑] - 曲目号. 标题"
+
+#: src/audacious/ui_preferences.c:237
+msgid "ALBUM - TITLE"
+msgstr "专辑 - 标题"
+
+#: src/audacious/ui_preferences.c:576
 msgid "Category"
 msgstr "分类"
 
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:800
 msgid "Popup Information Settings"
 msgstr "弹出信息设置"
 
-#: src/audacious/ui_preferences.c:824
+#: src/audacious/ui_preferences.c:809
 msgid "<b>Cover image retrieve</b>"
 msgstr "<b>专辑封面检索</b>"
 
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:814
 msgid ""
 "While searching for the album's cover, Audacious looks for certain words in "
 "the filename. You can specify those words in the lists below, separated "
@@ -611,99 +585,75 @@ msgstr ""
 "当搜索专辑封面时,Audacious从文件名中找出关键字。您可以在下面列表中指定它们,"
 "用逗号分隔。"
 
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:831
 msgid "Exclude:"
 msgstr "排除:"
 
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:838
 msgid "Include:"
 msgstr "包含:"
 
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:855
 msgid "Recursively search for cover"
 msgstr "递归搜索封面"
 
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:865
 msgid "Search depth: "
 msgstr "搜索深度:"
 
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:879
 msgid "Use per-file cover"
 msgstr "为每个文件使用单独封面"
 
-#: src/audacious/ui_preferences.c:897
+#: src/audacious/ui_preferences.c:882
 msgid "<b>Miscellaneous</b>"
 msgstr "<b>杂项</b>"
 
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:891
 msgid "Show Progress bar for the current track"
 msgstr "显示当前音轨的进度"
 
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:901
 msgid "Delay until filepopup comes up: "
 msgstr "延迟到文件弹出窗口出现:"
 
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1339
+msgid "Custom"
+msgstr "自定义"
+
+#: src/audacious/ui_preferences.c:1382
 msgid "<b>Song Display</b>"
 msgstr "<b>歌曲显示</b>"
 
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1391
 msgid "Show song numbers"
 msgstr "显示歌曲序号"
 
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1402
 msgid "Show leading zeroes (02:00 instead of 2:00)"
-msgstr "显示时间前的0(如:显示2:00为02:00)"
+msgstr "显示时间前的0(如:显示2:00为02:00)"
 
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1424
 msgid "Show information about titlestring format"
 msgstr "标题显示格式"
 
-#: src/audacious/ui_preferences.c:1514
-msgid "TITLE"
-msgstr "标题"
-
-#: src/audacious/ui_preferences.c:1515
-msgid "ARTIST - TITLE"
-msgstr "艺术家 - 标题"
-
-#: src/audacious/ui_preferences.c:1516
-msgid "ARTIST - ALBUM - TITLE"
-msgstr "艺术家 - 专辑 - 标题"
-
-#: src/audacious/ui_preferences.c:1517
-msgid "ARTIST - ALBUM - TRACK. TITLE"
-msgstr "艺术家 - 专辑 - 曲目号. 标题"
-
-#: src/audacious/ui_preferences.c:1518
-msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
-msgstr "艺术家 [专辑] - 曲目号. 标题"
-
-#: src/audacious/ui_preferences.c:1519
-msgid "ALBUM - TITLE"
-msgstr "专辑 - 标题"
-
-#: src/audacious/ui_preferences.c:1520
-msgid "Custom"
-msgstr "自定义"
-
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1440
 msgid "Custom string:"
-msgstr "定制字符:"
+msgstr "自定字符:"
 
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1447
 msgid "Title format:"
 msgstr "标题样式:"
 
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1458
 msgid "<b>Popup Information</b>"
 msgstr "<b>弹出信息</b>"
 
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1473
 msgid "Show popup information for playlist entries"
 msgstr "为播放列表显示弹出信息"
 
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1474
 msgid ""
 "Toggles popup information window for the pointed entry in the playlist. The "
 "window shows title of song, name of album, genre, year of publish, track "
@@ -712,52 +662,44 @@ msgstr ""
 "切换播放列表中指向项目的弹出信息窗口。该窗口显示歌曲标题、专辑、流派、年份,"
 "音轨编号,长度和插图等。"
 
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1485
 msgid "Edit settings for popup information"
 msgstr "修改弹出信息的设置"
 
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>音频系统</b>"
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "缓冲大小:"
-
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
-msgstr "当前输出插件:"
+#: src/audacious/ui_preferences.c:1574
+msgid "Output plugin:"
+msgstr "输出插件:"
 
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1633
 msgid "Transport"
 msgstr "传输"
 
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1633
 msgid "Input"
 msgstr "输入"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1634
 msgid "Effect"
 msgstr "音效"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1634
 msgid "Visualization"
 msgstr "虚拟效果"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1634
 msgid "General"
 msgstr "一般"
 
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1674
 msgid "Audacious Preferences"
 msgstr "Audacious首选项"
 
-#: src/audacious/util.c:161
+#: src/audacious/util.c:129
 #, c-format
 msgid "Could not create directory (%s): %s\n"
-msgstr "无法创建目录(%s): %s\n"
+msgstr "无法创建目录(%s):%s\n"
 
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:274
 msgid "Position not found."
 msgstr "位置不存在"
 
@@ -775,21 +717,22 @@ msgstr "立体声"
 
 #: src/libaudcore/tuple.c:689
 #, c-format
-msgid "%d channels"
-msgstr "%d声道"
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] "%d声道"
 
-#: src/libaudgui/confirm.c:65
+#: src/libaudgui/confirm.c:78
 #, c-format
 msgid ""
 "Are you sure you want to close %s?  If you do, any changes made since the "
 "playlist was exported will be lost."
 msgstr "关闭”%s“将会使所有已改变的设置丢失,要继续吗?"
 
-#: src/libaudgui/confirm.c:77
+#: src/libaudgui/confirm.c:91
 msgid "_Don't show this message again"
-msgstr "不要再提示(_D)"
+msgstr "切勿再提示(_D)"
 
-#: src/libaudgui/confirm.c:115
+#: src/libaudgui/confirm.c:128
 msgid "Rename Playlist"
 msgstr "重命名播放列表"
 
@@ -797,63 +740,63 @@ msgstr "重命名播放列表"
 msgid "settings ..."
 msgstr "设置..."
 
-#: src/libaudgui/equalizer.c:68
+#: src/libaudgui/equalizer.c:52
 msgid "_Enable"
 msgstr "启用(_E)"
 
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:124
 msgid "31 Hz"
 msgstr ""
 
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:124
 msgid "63 Hz"
 msgstr ""
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:125
 msgid "125 Hz"
 msgstr ""
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:125
 msgid "250 Hz"
 msgstr ""
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:125
 msgid "500 Hz"
 msgstr ""
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:125
 msgid "1 kHz"
 msgstr ""
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:125
 msgid "2 kHz"
 msgstr ""
 
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:126
 msgid "4 kHz"
 msgstr ""
 
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:126
 msgid "8 kHz"
 msgstr ""
 
-#: src/libaudgui/equalizer.c:142
+#: src/libaudgui/equalizer.c:126
 msgid "16 kHz"
 msgstr ""
 
-#: src/libaudgui/equalizer.c:147
+#: src/libaudgui/equalizer.c:131
 msgid "Equalizer"
 msgstr "均衡器"
 
-#: src/libaudgui/equalizer.c:163
+#: src/libaudgui/equalizer.c:147
 msgid "Preamp"
 msgstr "前置放大器"
 
-#: src/libaudgui/infopopup.c:249
+#: src/libaudgui/infopopup.c:211
 msgid "Track Number"
 msgstr "音轨序号"
 
-#: src/libaudgui/infopopup.c:251
+#: src/libaudgui/infopopup.c:213
 msgid "Track Length"
 msgstr "音轨长度"
 
@@ -1080,11 +1023,36 @@ msgstr "%d kb/s"
 msgid "No info available for %s.\n"
 msgstr "未找到与‘%s’相关信息。\n"
 
-#: src/libaudgui/ui_about.c:71
+#: src/libaudgui/jump-to-time.c:75
+msgid "Jump to Time"
+msgstr "跳到时间"
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
+msgstr ""
+
+#: src/libaudgui/playlists.c:39
+msgid "Export Playlist"
+msgstr "导出播放列表"
+
+#: src/libaudgui/playlists.c:39
+msgid "Import Playlist"
+msgstr "导入播放列表"
+
+#: src/libaudgui/playlists.c:72
+#, c-format
+msgid "Overwrite %s?"
+msgstr "是否覆盖 %s?"
+
+#: src/libaudgui/queue-manager.c:185
+msgid "Queue Manager"
+msgstr "队列管理器"
+
+#: src/libaudgui/ui_about.c:69
 msgid "About Audacious"
 msgstr "关于Audacious"
 
-#: src/libaudgui/ui_about.c:93 src/libaudgui/ui_credits.c:122
+#: src/libaudgui/ui_about.c:90 src/libaudgui/ui_credits.c:122
 msgid "Credits"
 msgstr "特别鸣谢"
 
@@ -1092,78 +1060,87 @@ msgstr "特别鸣谢"
 msgid "Translators"
 msgstr "翻译人员"
 
-#: src/libaudgui/ui_fileopener.c:108
+#: src/libaudgui/ui_fileopener.c:109
 msgid "Open Files"
 msgstr "打开文件"
 
-#: src/libaudgui/ui_fileopener.c:108
+#: src/libaudgui/ui_fileopener.c:109
 msgid "Add Files"
 msgstr "添加文件"
 
-#: src/libaudgui/ui_fileopener.c:110
+#: src/libaudgui/ui_fileopener.c:111
 msgid "Close dialog on Open"
 msgstr "打开时关闭对话框"
 
-#: src/libaudgui/ui_fileopener.c:110
+#: src/libaudgui/ui_fileopener.c:111
 msgid "Close dialog on Add"
 msgstr "添加时关闭对话框"
 
-#: src/libaudgui/ui_jumptotrack.c:133
-msgid "Un_queue"
-msgstr "出列(_q)"
-
-#: src/libaudgui/ui_jumptotrack.c:135 src/libaudgui/ui_jumptotrack.c:512
+#: src/libaudgui/ui_jumptotrack.c:103 src/libaudgui/ui_jumptotrack.c:111
+#: src/libaudgui/ui_jumptotrack.c:322
 msgid "_Queue"
 msgstr "入队(_Q)"
 
-#: src/libaudgui/ui_jumptotrack.c:399
+#: src/libaudgui/ui_jumptotrack.c:109
+msgid "Un_queue"
+msgstr "出列(_q)"
+
+#: src/libaudgui/ui_jumptotrack.c:239
 msgid "Jump to Track"
 msgstr "跳到"
 
-#: src/libaudgui/ui_jumptotrack.c:442
+#: src/libaudgui/ui_jumptotrack.c:277
 msgid "Filter: "
 msgstr "过滤器:"
 
-#: src/libaudgui/ui_jumptotrack.c:443
+#: src/libaudgui/ui_jumptotrack.c:278
 msgid "_Filter:"
 msgstr "过滤器(_F):"
 
-#: src/libaudgui/ui_jumptotrack.c:461
+#: src/libaudgui/ui_jumptotrack.c:288
 msgid "Remember"
 msgstr "记住"
 
-#: src/libaudgui/ui_jumptotrack.c:470
+#: src/libaudgui/ui_jumptotrack.c:295
 msgid "Clea_r"
 msgstr "清空(_r)"
 
-#: src/libaudgui/ui_jumptotrack.c:504
+#: src/libaudgui/ui_jumptotrack.c:315
 msgid "Close on Jump"
 msgstr "跳转时关闭"
 
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:250
 msgid "Playlist Manager"
 msgstr "播放列表管理器"
 
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:277
 msgid "Entries"
 msgstr "条目"
 
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:298
 msgid "_Rename"
 msgstr "重命名(_R)"
 
-#: src/libaudgui/ui_playlist_manager.c:251
+#: src/libaudgui/ui_playlist_manager.c:322
 msgid "_Close dialog on activating playlist"
 msgstr "激活播放列表时关闭对话框(_C)"
 
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:51
 msgid "Open URL"
 msgstr "打开URL"
 
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:51
 msgid "Add URL"
 msgstr "添加URL"
 
+#: src/libaudgui/util.c:95
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
+msgstr ""
+"\n"
+"(详细信息已隐藏。)"
+
 #: src/libeggsmclient/eggdesktopfile.c:165
 msgid "File is not a valid .desktop file"
 msgstr "非合法的.desktop文件"
@@ -1173,25 +1150,25 @@ msgstr "非合法的.desktop文件"
 msgid "Unrecognized desktop file Version '%s'"
 msgstr "未能识别的.desktop文件版本'%s'"
 
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:967
 #, c-format
 msgid "Starting %s"
 msgstr "正在启动 %s"
 
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1108
 msgid "Application does not accept documents on command line"
 msgstr "程序不支持从命令行获取文档"
 
-#: src/libeggsmclient/eggdesktopfile.c:1178
+#: src/libeggsmclient/eggdesktopfile.c:1176
 #, c-format
 msgid "Unrecognized launch option: %d"
 msgstr "未知启动选项:%d"
 
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1375
 msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
 msgstr "无法传递文档URI到Type=Link的桌面项"
 
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1396
 msgid "Not a launchable item"
 msgstr "非可启动项目"
 
@@ -1222,3 +1199,71 @@ msgstr "会话管理器选项:"
 #: src/libeggsmclient/eggsmclient.c:254
 msgid "Show session management options"
 msgstr "显示会话管理器选项"
+
+#~ msgid ""
+#~ "Audacious seems to be already running but is not responding.  You can "
+#~ "start another instance of the program, but please be warned that this can "
+#~ "cause data loss.  If Audacious is not running, you can safely ignore this "
+#~ "message.  Press OK to start Audacious or Cancel to quit."
+#~ msgstr ""
+#~ "Audacious似乎已经启动,但未能作出响应。你可以启动多一个进程,但可能会因此"
+#~ "引起数据丢失。如果Audacious未启动,你完全可以忽略此信息。要启动Audacious点"
+#~ "击\"确定\",否则点击\"取消\""
+
+#~ msgid "Universal"
+#~ msgstr "世界语"
+
+#~ msgid "Single track mode"
+#~ msgstr "单音轨模式"
+
+#~ msgid ""
+#~ "<span size=\"small\">Changing these settings will require a restart of "
+#~ "Audacious.</span>"
+#~ msgstr "<span size=\"small\">此设置将在Audacious重启后生效</span>"
+
+#~ msgid ""
+#~ "List of character encodings used for fall back conversion of metadata. If "
+#~ "automatic character encoding detector failed or has been disabled, "
+#~ "encodings in this list would be treated as candidates of the encoding of "
+#~ "metadata, and fall back conversion from these encodings to UTF-8 would be "
+#~ "attempted."
+#~ msgstr ""
+#~ "字符编码列表将用于元数据的后备转换。如果自动编码转换检测器失败或被禁用,列"
+#~ "表中的编码将作为元数据的候选编码,并将试图由此转换到UTF-8。"
+
+#~ msgid "Replay Gain"
+#~ msgstr "回放增益"
+
+#~ msgid "<b>Bit Depth</b>"
+#~ msgstr "<b>位深</b>"
+
+#~ msgid ""
+#~ "All streams will be converted to this bit depth.\n"
+#~ "This should be the max supported bit depth of\n"
+#~ "the sound card or output plugin."
+#~ msgstr ""
+#~ "所有音频流将会转换到此位深。\n"
+#~ "此值不应大于您的声卡或输出插件所支持的最大值。"
+
+#~ msgid "<b>Volume Control</b>"
+#~ msgstr "<b>音量控制</b>"
+
+#~ msgid ""
+#~ "Use software volume control. This may be useful for situations where your "
+#~ "audio system does not support controlling the playback volume."
+#~ msgstr "使用软音量控制。当你无法调整系统音量时可以启用此设置。"
+
+#~ msgid "<b>Mode</b>"
+#~ msgstr "<b>模式</b>"
+
+#~ msgid "<b>Clipping Prevention</b>"
+#~ msgstr "<b>避免爆音</b>"
+
+#~ msgid "Enable clipping prevention"
+#~ msgstr "启用避免爆音"
+
+#~ msgid "<b>Audio System</b>"
+#~ msgstr "<b>音频系统</b>"
+
+#~ msgid "Display all open Audacious windows"
+#~ msgstr "显示所有已打开的Audacious窗口"
diff --git a/po/zh_TW.po b/po/zh_TW.po
index cb242ea..87e849d 100644
--- a/po/zh_TW.po
+++ b/po/zh_TW.po
@@ -1,1167 +1,1077 @@
-# traditional Chinese translation of Beep Media Player.
-# Copyright (C) 2001, 03, 2004 Free Software Foundation, Inc.
-# Chao-Hsiung Liao <pesder.liao at msa.hinet.net>, 2003, 2004.
+# Chinese translations for audacious package.
+# Copyright (C) 2011 THE audacious'S COPYRIGHT HOLDER
+# This file is distributed under the same license as the audacious package.
+# Ruei-Yuan Lu <RueiYuan.Lu at gmail.com>, 2011.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: Audacious VERSION\n"
-"Report-Msgid-Bugs-To: http://jira.atheme.org/\n"
-"POT-Creation-Date: 2011-04-16 01:36-0400\n"
-"PO-Revision-Date: 2007-01-31 00:46+0800\n"
-"Last-Translator: Cheng-Wei Chien <e.cwchien at gmail.com>\n"
-"Language-Team: Cheng-Wei Chien <e.cwchien at gmail.com>\n"
+"Project-Id-Version: audacious 3.1\n"
+"Report-Msgid-Bugs-To: http://redmine.audacious-media-player.org/\n"
+"POT-Creation-Date: 2011-12-29 19:27-0500\n"
+"PO-Revision-Date: 2011-11-10 11:36+0800\n"
+"Last-Translator: Ruei-Yuan Lu <RueiYuan.Lu at gmail.com>\n"
+"Language-Team: Chinese (traditional)\n"
 "Language: \n"
 "MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
+"Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Pootle 0.10.1\n"
-"X-Poedit-Language: Chinese\n"
-"X-Poedit-Country: TAIWAN\n"
-"X-Poedit-SourceCharset: utf-8\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
 
-#: src/audacious/chardet.c:37
+#: src/audacious/adder.c:77
+msgid "Searching ..."
+msgstr "搜尋中 ..."
+
+#: src/audacious/adder.c:113
+#, c-format
+msgid "%d file found"
+msgid_plural "%d files found"
+msgstr[0] "找到 %d 個檔案"
+
+#: src/audacious/chardet.c:39
 msgid "  (invalid UTF-8)"
-msgstr "  (無效的 UTF-8 字元)"
+msgstr "  (無效的 UTF-8 字串)"
 
 #: src/audacious/credits.c:35
-#, fuzzy
 msgid "Core developers:"
-msgstr "0.1.x 開發人員:"
+msgstr "核心開發人員:"
 
 #: src/audacious/credits.c:49
 msgid "Graphics:"
-msgstr "美工:"
+msgstr "美工:"
 
 #: src/audacious/credits.c:54
 msgid "Default skin:"
-msgstr "預設面板:"
+msgstr "預設面板:"
 
 #: src/audacious/credits.c:60
 msgid "Plugin development:"
-msgstr "插件開發:"
+msgstr "外掛開發:"
 
 #: src/audacious/credits.c:83
 msgid "Patch authors:"
-msgstr "修正檔作者:"
+msgstr "修正檔作者:"
 
-#: src/audacious/credits.c:126
-#, fuzzy
+#: src/audacious/credits.c:127
 msgid "1.x developers:"
-msgstr "0.1.x 開發人員:"
+msgstr "1.x 開發人員:"
 
-#: src/audacious/credits.c:148
+#: src/audacious/credits.c:149
 msgid "BMP Developers:"
-msgstr "BMP 開發人員:"
+msgstr "BMP 開發人員:"
 
-#: src/audacious/credits.c:180
-#, fuzzy
+#: src/audacious/credits.c:181
 msgid "Belarusian:"
-msgstr "保加利亞語:"
+msgstr "白俄羅斯文:"
 
-#: src/audacious/credits.c:183
+#: src/audacious/credits.c:184
 msgid "Basque:"
-msgstr ""
+msgstr "巴斯克語:"
 
-#: src/audacious/credits.c:186
+#: src/audacious/credits.c:187
 msgid "Brazilian Portuguese:"
-msgstr "巴西葡萄牙語:"
+msgstr "巴西葡萄牙語:"
 
-#: src/audacious/credits.c:190
+#: src/audacious/credits.c:192
 msgid "Breton:"
-msgstr "布列塔尼語:"
+msgstr "布列塔尼語:"
 
-#: src/audacious/credits.c:193
+#: src/audacious/credits.c:195
 msgid "Bulgarian:"
-msgstr "保加利亞語:"
+msgstr "保加利亞語:"
 
-#: src/audacious/credits.c:196
-#, fuzzy
+#: src/audacious/credits.c:198
 msgid "Catalan:"
-msgstr "義大利語:"
+msgstr "加泰羅尼亞語:"
 
-#: src/audacious/credits.c:199
-#, fuzzy
+#: src/audacious/credits.c:202
 msgid "Chinese:"
-msgstr "中文:"
+msgstr "中文:"
 
-#: src/audacious/credits.c:202
-#, fuzzy
+#: src/audacious/credits.c:205
 msgid "Croatian:"
-msgstr "羅馬尼亞語:"
+msgstr "克羅埃西亞語:"
 
-#: src/audacious/credits.c:205
+#: src/audacious/credits.c:208
 msgid "Czech:"
-msgstr "捷克語:"
+msgstr "捷克語:"
 
-#: src/audacious/credits.c:208
+#: src/audacious/credits.c:211
 msgid "Dutch:"
-msgstr "荷蘭語:"
+msgstr "荷蘭語:"
 
-#: src/audacious/credits.c:212
-#, fuzzy
+#: src/audacious/credits.c:215
 msgid "Estonian:"
-msgstr "羅馬尼亞語:"
+msgstr "愛沙尼亞語:"
 
-#: src/audacious/credits.c:215
+#: src/audacious/credits.c:218
 msgid "Finnish:"
-msgstr "芬蘭語:"
+msgstr "芬蘭語:"
 
-#: src/audacious/credits.c:219
+#: src/audacious/credits.c:223
 msgid "French:"
-msgstr "法語:"
+msgstr "法語:"
 
-#: src/audacious/credits.c:224
+#: src/audacious/credits.c:229
 msgid "German:"
-msgstr "德語:"
+msgstr "德語:"
 
-#: src/audacious/credits.c:231
+#: src/audacious/credits.c:236
 msgid "Georgian:"
-msgstr "喬治亞語:"
+msgstr "喬治亞語:"
 
-#: src/audacious/credits.c:234
+#: src/audacious/credits.c:239
 msgid "Greek:"
-msgstr "希臘語:"
+msgstr "希臘語:"
 
-#: src/audacious/credits.c:239
+#: src/audacious/credits.c:244
 msgid "Hindi:"
-msgstr "北印度語:"
+msgstr "印地語:"
 
-#: src/audacious/credits.c:242
+#: src/audacious/credits.c:247
 msgid "Hungarian:"
-msgstr "匈牙利語:"
+msgstr "匈牙利語:"
 
-#: src/audacious/credits.c:246
+#: src/audacious/credits.c:251
 msgid "Italian:"
-msgstr "義大利語:"
+msgstr "義大利語:"
 
-#: src/audacious/credits.c:250
+#: src/audacious/credits.c:256
 msgid "Japanese:"
-msgstr "日語:"
+msgstr "日本語:"
 
-#: src/audacious/credits.c:253
+#: src/audacious/credits.c:259
 msgid "Korean:"
-msgstr "韓語:"
+msgstr "韓語:"
 
-#: src/audacious/credits.c:256
-#, fuzzy
+#: src/audacious/credits.c:262
 msgid "Latvian:"
-msgstr "羅馬尼亞語:"
+msgstr "拉脫維亞語:"
 
-#: src/audacious/credits.c:259
+#: src/audacious/credits.c:265
 msgid "Lithuanian:"
-msgstr "立陶宛語:"
+msgstr "立陶宛語:"
 
-#: src/audacious/credits.c:263
+#: src/audacious/credits.c:270
 msgid "Macedonian:"
-msgstr "馬其頓語:"
+msgstr "馬其頓語:"
 
-#: src/audacious/credits.c:266
+#: src/audacious/credits.c:273
 msgid "Polish:"
-msgstr "波蘭語:"
+msgstr "波蘭語:"
 
-#: src/audacious/credits.c:271
-#, fuzzy
+#: src/audacious/credits.c:279
 msgid "Portuguese:"
-msgstr "巴西葡萄牙語:"
+msgstr "葡萄牙文:"
 
-#: src/audacious/credits.c:274
+#: src/audacious/credits.c:282
 msgid "Romanian:"
-msgstr "羅馬尼亞語:"
+msgstr "羅馬尼亞語:"
 
-#: src/audacious/credits.c:278
+#: src/audacious/credits.c:286
 msgid "Russian:"
-msgstr "俄語:"
+msgstr "俄語:"
 
-#: src/audacious/credits.c:282
+#: src/audacious/credits.c:290
 msgid "Serbian (Latin):"
-msgstr "塞爾維亞 (拉丁語):"
+msgstr "塞爾維亞語 (拉丁):"
 
-#: src/audacious/credits.c:285
+#: src/audacious/credits.c:293
 msgid "Serbian (Cyrillic):"
-msgstr "塞爾維亞 (斯拉夫語):"
+msgstr "塞爾維亞語 (西里爾):"
 
-#: src/audacious/credits.c:288
+#: src/audacious/credits.c:297
 msgid "Simplified Chinese:"
-msgstr "簡體中文:"
+msgstr "簡體中文:"
 
-#: src/audacious/credits.c:291
+#: src/audacious/credits.c:300
 msgid "Slovak:"
-msgstr "斯洛伐克語:"
+msgstr "斯洛伐克語:"
 
-#: src/audacious/credits.c:294
+#: src/audacious/credits.c:303
 msgid "Spanish:"
-msgstr "西班牙語:"
+msgstr "西班牙語:"
 
-#: src/audacious/credits.c:301
+#: src/audacious/credits.c:311
 msgid "Swedish:"
-msgstr "瑞典語:"
+msgstr "瑞典語:"
 
-#: src/audacious/credits.c:304
+#: src/audacious/credits.c:314
 msgid "Traditional Chinese:"
-msgstr "正體中文:"
+msgstr "正體中文:"
 
-#: src/audacious/credits.c:309
+#: src/audacious/credits.c:320
 msgid "Turkish:"
-msgstr ""
+msgstr "土耳其語:"
 
-#: src/audacious/credits.c:313
+#: src/audacious/credits.c:324
 msgid "Ukrainian:"
-msgstr "烏克蘭語:"
+msgstr "烏克蘭語:"
 
-#: src/audacious/credits.c:316
-msgid "Welsh:"
-msgstr "威爾斯語:"
+#: src/audacious/credits.c:328
+msgid "Vietnamese:"
+msgstr "越南語:"
 
-#: src/audacious/drct.c:254
-#, fuzzy
-msgid "Temporary Playlist"
-msgstr "載入播放清單"
+#: src/audacious/credits.c:331
+msgid "Welsh:"
+msgstr "威爾士語:"
 
-#: src/audacious/equalizer_preset.c:186
+#: src/audacious/equalizer_preset.c:180
 #, c-format
 msgid "Error importing Winamp EQF file '%s'"
-msgstr ""
-
-#: src/audacious/folder-add.c:63
-msgid "Searching ..."
-msgstr ""
-
-#: src/audacious/folder-add.c:89
-#, c-format
-msgid "%d file found"
-msgid_plural "%d files found"
-msgstr[0] ""
-msgstr[1] ""
+msgstr "匯入 Winamp EQF 檔時發生錯誤 '%s'"
 
-#: src/audacious/main.c:247
+#: src/audacious/main.c:243
 msgid "Skip backwards in playlist"
-msgstr "跳至播放清單開頭"
+msgstr "切換到播放清單的上一個"
 
-#: src/audacious/main.c:248
+#: src/audacious/main.c:244
 msgid "Start playing current playlist"
 msgstr "開始播放目前的播放清單"
 
-#: src/audacious/main.c:249
+#: src/audacious/main.c:245
 msgid "Pause current song"
-msgstr "暫停目前的歌曲"
+msgstr "暫停播放目前歌曲"
 
-#: src/audacious/main.c:250
+#: src/audacious/main.c:246
 msgid "Stop current song"
-msgstr "停止目前的歌曲"
+msgstr "停止播放目前歌曲"
 
-#: src/audacious/main.c:251
+#: src/audacious/main.c:247
 msgid "Pause if playing, play otherwise"
-msgstr "播放/暫停"
+msgstr "若播放中則暫停,否則繼續播放"
 
-#: src/audacious/main.c:252
+#: src/audacious/main.c:248
 msgid "Skip forward in playlist"
-msgstr "跳至播放清單結尾"
+msgstr "切換到播放清單的下一個"
 
-#: src/audacious/main.c:253
-#, fuzzy
+#: src/audacious/main.c:249
 msgid "Display Jump to File dialog"
-msgstr "顯示跳至檔案對話框"
+msgstr "顯示跳至檔案對話視窗"
 
-#: src/audacious/main.c:254
-#, fuzzy
+#: src/audacious/main.c:250
 msgid "Add files to the playlist"
-msgstr "加入檔案至播放清單。"
+msgstr "加入檔案到播放清單"
 
-#: src/audacious/main.c:255
-#, fuzzy
+#: src/audacious/main.c:251
 msgid "Add new files to a temporary playlist"
-msgstr "加入檔案至播放清單。"
+msgstr "加入檔案到暫存播放清單"
 
-#: src/audacious/main.c:256
-#, fuzzy
+#: src/audacious/main.c:252
 msgid "Display the main window"
 msgstr "顯示主視窗"
 
-#: src/audacious/main.c:257
-msgid "Display all open Audacious windows"
-msgstr ""
-
-#: src/audacious/main.c:258
-#, fuzzy
+#: src/audacious/main.c:253
 msgid "Show version"
-msgstr "顯示播放器"
+msgstr "顯示版本資訊"
 
-#: src/audacious/main.c:259
+#: src/audacious/main.c:254
 msgid "Print debugging messages"
-msgstr ""
+msgstr "顯示除錯訊息"
+
+#: src/audacious/main.c:255
+msgid "Headless mode (beta)"
+msgstr "無頭模式 (beta)"
 
-#: src/audacious/main.c:260
+#: src/audacious/main.c:256
 msgid "FILE..."
-msgstr ""
+msgstr "檔案..."
 
-#: src/audacious/main.c:272
+#: src/audacious/main.c:268
 msgid "- play multimedia files"
-msgstr ""
+msgstr "- 播放多媒體檔案"
 
-#: src/audacious/main.c:282
+#: src/audacious/main.c:278
 #, c-format
 msgid ""
 "%s: %s\n"
 "Try `%s --help' for more information.\n"
 msgstr ""
+"%s: %s\n"
+"請嘗試用 `%s --help' 取得更多資訊。\n"
 
-#: src/audacious/main.c:395
-msgid ""
-"Audacious seems to be already running but is not responding.  You can start "
-"another instance of the program, but please be warned that this can cause "
-"data loss.  If Audacious is not running, you can safely ignore this "
-"message.  Press OK to start Audacious or Cancel to quit."
-msgstr ""
-
-#: src/audacious/main.c:558
+#: src/audacious/main.c:572
 msgid "Audacious"
-msgstr "Audacious"
+msgstr ""
 
-#: src/audacious/playback.c:375
+#: src/audacious/playback.c:307
 #, c-format
 msgid "No decoder found for %s."
-msgstr ""
+msgstr "找不到適用於 %s 的解碼器。"
 
-#: src/audacious/playback.c:519
-msgid "Buffering ..."
-msgstr ""
+#: src/audacious/playlist-new.c:131
+msgid "New Playlist"
+msgstr "新播放清單"
 
-#: src/audacious/playlist-new.c:288
-#, fuzzy
-msgid "Untitled Playlist"
-msgstr "新增播放清單"
+#: src/audacious/playlist-new.c:132
+msgid "Now Playing"
+msgstr "正在播放"
 
-#: src/audacious/ui_preferences.c:88
+#: src/audacious/playlist-new.c:1627
+msgid ""
+"The playlist cannot be sorted because metadata scanning is still in progress "
+"(or has been disabled)."
+msgstr "因為正在進行詮釋資料的掃描,無法對播放清單進行排序。(或者已經被關閉)"
+
+#: src/audacious/ui_preferences.c:85
 msgid "Audio"
 msgstr "音訊"
 
-#: src/audacious/ui_preferences.c:89
-#, fuzzy
-msgid "Replay Gain"
-msgstr "播放增益"
-
-#: src/audacious/ui_preferences.c:90
+#: src/audacious/ui_preferences.c:86
 msgid "Network"
-msgstr ""
+msgstr "網路"
 
-#: src/audacious/ui_preferences.c:91 src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:87 src/audacious/ui_preferences.c:1603
 msgid "Playlist"
 msgstr "播放清單"
 
-#: src/audacious/ui_preferences.c:92
+#: src/audacious/ui_preferences.c:88
 msgid "Plugins"
-msgstr "插件"
+msgstr "外掛"
 
-#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:241
+#: src/audacious/ui_preferences.c:94 src/libaudgui/infopopup.c:203
 msgid "Artist"
 msgstr "藝人"
 
-#: src/audacious/ui_preferences.c:99 src/libaudgui/infopopup.c:243
+#: src/audacious/ui_preferences.c:95 src/libaudgui/infopopup.c:205
 msgid "Album"
 msgstr "專輯"
 
-#: src/audacious/ui_preferences.c:100 src/libaudgui/infopopup.c:239
-#: src/libaudgui/ui_playlist_manager.c:208
+#: src/audacious/ui_preferences.c:96 src/libaudgui/infopopup.c:201
+#: src/libaudgui/ui_playlist_manager.c:279
 msgid "Title"
 msgstr "標題"
 
-#: src/audacious/ui_preferences.c:101
+#: src/audacious/ui_preferences.c:97
 msgid "Tracknumber"
 msgstr "音軌編號"
 
-#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:245
+#: src/audacious/ui_preferences.c:98 src/libaudgui/infopopup.c:207
 msgid "Genre"
-msgstr "樂曲類型"
+msgstr "é¡žåž‹"
 
-#: src/audacious/ui_preferences.c:103
+#: src/audacious/ui_preferences.c:99
 msgid "Filename"
 msgstr "檔案名稱"
 
-#: src/audacious/ui_preferences.c:104
+#: src/audacious/ui_preferences.c:100
 msgid "Filepath"
 msgstr "檔案路徑"
 
-#: src/audacious/ui_preferences.c:105
+#: src/audacious/ui_preferences.c:101
 msgid "Date"
 msgstr "日期"
 
-#: src/audacious/ui_preferences.c:106 src/libaudgui/infopopup.c:247
+#: src/audacious/ui_preferences.c:102 src/libaudgui/infopopup.c:209
 msgid "Year"
 msgstr "年份"
 
-#: src/audacious/ui_preferences.c:107
+#: src/audacious/ui_preferences.c:103
 msgid "Comment"
-msgstr "註解"
+msgstr "備註"
 
-#: src/audacious/ui_preferences.c:108
-#, fuzzy
+#: src/audacious/ui_preferences.c:104
 msgid "Codec"
-msgstr "/關閉"
+msgstr "編解碼器"
 
-#: src/audacious/ui_preferences.c:109
-#, fuzzy
+#: src/audacious/ui_preferences.c:105
 msgid "Quality"
-msgstr "/離開(_Q)"
+msgstr "品質"
 
-#: src/audacious/ui_preferences.c:114
+#: src/audacious/ui_preferences.c:111
 msgid "None"
-msgstr ""
+msgstr "ç„¡"
+
+#: src/audacious/ui_preferences.c:112
+msgid "Arabic"
+msgstr "阿拉伯語"
+
+#: src/audacious/ui_preferences.c:113
+msgid "Baltic"
+msgstr "波羅的海"
+
+#: src/audacious/ui_preferences.c:114
+msgid "Chinese"
+msgstr "中文"
 
 #: src/audacious/ui_preferences.c:115
-#, fuzzy
-msgid "Japanese"
-msgstr "日語:"
+msgid "Greek"
+msgstr "希臘語"
 
 #: src/audacious/ui_preferences.c:116
-#, fuzzy
-msgid "Taiwanese"
-msgstr "日語:"
+msgid "Hebrew"
+msgstr "希伯來語"
 
 #: src/audacious/ui_preferences.c:117
-#, fuzzy
-msgid "Chinese"
-msgstr "中文:"
+msgid "Japanese"
+msgstr "日本語"
 
 #: src/audacious/ui_preferences.c:118
-#, fuzzy
 msgid "Korean"
-msgstr "韓語:"
+msgstr "韓文"
 
 #: src/audacious/ui_preferences.c:119
-#, fuzzy
-msgid "Russian"
-msgstr "俄語:"
+msgid "Polish"
+msgstr "波蘭語"
 
 #: src/audacious/ui_preferences.c:120
-#, fuzzy
-msgid "Greek"
-msgstr "希臘語:"
+msgid "Russian"
+msgstr "俄語"
 
 #: src/audacious/ui_preferences.c:121
-msgid "Hebrew"
-msgstr ""
+msgid "Taiwanese"
+msgstr "正體中文"
 
 #: src/audacious/ui_preferences.c:122
 msgid "Turkish"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:123
-msgid "Arabic"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:124
-#, fuzzy
-msgid "Polish"
-msgstr "波蘭語:"
-
-#: src/audacious/ui_preferences.c:125
-msgid "Baltic"
-msgstr ""
+msgstr "土耳其語"
 
-#: src/audacious/ui_preferences.c:126
-#, fuzzy
-msgid "Universal"
-msgstr "樂曲類型"
-
-# No good translation of bit rate can be found. -- Abel
-#: src/audacious/ui_preferences.c:146
-#, fuzzy
-msgid "<b>Bit Depth</b>"
-msgstr "位元率:"
+#: src/audacious/ui_preferences.c:144
+msgid "Album mode"
+msgstr "專輯模式"
 
 #: src/audacious/ui_preferences.c:147
-msgid "Output bit depth:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:148
-msgid ""
-"All streams will be converted to this bit depth.\n"
-"This should be the max supported bit depth of\n"
-"the sound card or output plugin."
-msgstr ""
+msgid "<b>Output Settings</b>"
+msgstr "<b>輸出設定</b>"
 
-#: src/audacious/ui_preferences.c:151
-#, fuzzy
-msgid "<b>Volume Control</b>"
-msgstr "<b>å­—åž‹(_F)</b>"
+#: src/audacious/ui_preferences.c:149
+msgid "Bit depth:"
+msgstr "取樣格式:"
 
 #: src/audacious/ui_preferences.c:152
-#, fuzzy
-msgid "Use software volume control"
-msgstr "音量控制:"
+msgid "Buffer size:"
+msgstr "緩衝區大小:"
 
 #: src/audacious/ui_preferences.c:154
-msgid ""
-"Use software volume control. This may be useful for situations where your "
-"audio system does not support controlling the playback volume."
-msgstr ""
-
-#: src/audacious/ui_preferences.c:158
-msgid "Amplify all files:"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:159 src/audacious/ui_preferences.c:161
-msgid "dB"
-msgstr ""
+msgid "ms"
+msgstr "毫秒"
 
-#: src/audacious/ui_preferences.c:160
-msgid "Amplify untagged files:"
-msgstr ""
+#: src/audacious/ui_preferences.c:155
+msgid "Use software volume control (not recommended)"
+msgstr "使用軟體音量控制 (不建議開啟)"
 
-#: src/audacious/ui_preferences.c:164
-#, fuzzy
+#: src/audacious/ui_preferences.c:157
 msgid "<b>Replay Gain</b>"
-msgstr "<b>檔案名稱</b>"
+msgstr "<b>播放增益</b>"
 
-#: src/audacious/ui_preferences.c:165
-#, fuzzy
+#: src/audacious/ui_preferences.c:158
 msgid "Enable Replay Gain"
 msgstr "啟用播放增益"
 
-#: src/audacious/ui_preferences.c:167
-#, fuzzy
-msgid "<b>Mode</b>"
-msgstr "<b>檔案名稱</b>"
-
-#: src/audacious/ui_preferences.c:168
-#, fuzzy
-msgid "Single track mode"
-msgstr "檢視音軌細節"
-
-#: src/audacious/ui_preferences.c:170
-#, fuzzy
-msgid "Album mode"
-msgstr "專輯名稱:"
+#: src/audacious/ui_preferences.c:161
+msgid "Prevent clipping (recommended)"
+msgstr "防止訊號裁剪 (建議開啟)"
 
-#: src/audacious/ui_preferences.c:172
-#, fuzzy
+#: src/audacious/ui_preferences.c:163
 msgid "<b>Adjust Levels</b>"
-msgstr "<b>滑鼠滾輪</b>"
+msgstr "<b>調整音量</b>"
 
-#: src/audacious/ui_preferences.c:175
-#, fuzzy
-msgid "<b>Clipping Prevention</b>"
-msgstr "<b>彈出資訊</b>"
+#: src/audacious/ui_preferences.c:164
+msgid "Amplify all files:"
+msgstr "放大所有檔案的音量:"
 
-#: src/audacious/ui_preferences.c:176
-msgid "Enable clipping prevention"
-msgstr ""
+#: src/audacious/ui_preferences.c:166 src/audacious/ui_preferences.c:169
+msgid "dB"
+msgstr "分貝"
+
+#: src/audacious/ui_preferences.c:167
+msgid "Amplify untagged files:"
+msgstr "放大無標籤檔案的音量:"
 
-#: src/audacious/ui_preferences.c:180
+#: src/audacious/ui_preferences.c:172
 msgid "Proxy hostname:"
-msgstr "代理伺服器主機名稱:"
+msgstr "代理伺服器名稱:"
 
-#: src/audacious/ui_preferences.c:181
+#: src/audacious/ui_preferences.c:173
 msgid "Proxy port:"
-msgstr "代理伺服器埠號:"
+msgstr "代理伺服器連接埠:"
 
-#: src/audacious/ui_preferences.c:185
+#: src/audacious/ui_preferences.c:176
 msgid "Proxy username:"
-msgstr "使用者名稱:"
+msgstr "代理伺服器使用者名稱:"
 
-#: src/audacious/ui_preferences.c:186
+#: src/audacious/ui_preferences.c:177
 msgid "Proxy password:"
-msgstr "密碼:"
+msgstr "代理伺服器密碼:"
 
-#: src/audacious/ui_preferences.c:190
+#: src/audacious/ui_preferences.c:181
 msgid "<b>Proxy Configuration</b>"
 msgstr "<b>代理伺服器設定</b>"
 
-#: src/audacious/ui_preferences.c:191
+#: src/audacious/ui_preferences.c:182
 msgid "Enable proxy usage"
-msgstr "啟用透過代理伺服器連線"
+msgstr "啟用代理伺服器"
 
-#: src/audacious/ui_preferences.c:194
+#: src/audacious/ui_preferences.c:185
 msgid "Use authentication with proxy"
-msgstr "使用驗證"
-
-#: src/audacious/ui_preferences.c:197
-msgid ""
-"<span size=\"small\">Changing these settings will require a restart of "
-"Audacious.</span>"
-msgstr "<span size=\"small\">變更這些設定必須重新啟動 Audacious。</span>"
+msgstr "需要認證"
 
-#: src/audacious/ui_preferences.c:201
+#: src/audacious/ui_preferences.c:193
 msgid "Auto character encoding detector for:"
-msgstr "字元編碼自動偵測於:"
+msgstr "自動偵測字元編碼:"
 
-#: src/audacious/ui_preferences.c:209
+#: src/audacious/ui_preferences.c:198
 msgid "Fallback character encodings:"
-msgstr "備用字元編碼:"
-
-#: src/audacious/ui_preferences.c:209
-msgid ""
-"List of character encodings used for fall back conversion of metadata. If "
-"automatic character encoding detector failed or has been disabled, encodings "
-"in this list would be treated as candidates of the encoding of metadata, and "
-"fall back conversion from these encodings to UTF-8 would be attempted."
-msgstr ""
-"歌曲資訊轉碼失敗時所用的字元編碼清單。如果字元編碼自動偵測失敗,或被停用,清"
-"單裡的編碼就會被當成歌曲資訊的候選編碼,而從這些編碼轉到 UTF-8 時將會提示。"
+msgstr "備用字元編碼:"
 
-# No good translation of bit rate can be found. -- Abel
-#: src/audacious/ui_preferences.c:213
-#, fuzzy
+#: src/audacious/ui_preferences.c:202
 msgid "<b>Behavior</b>"
-msgstr "位元率:"
+msgstr "<b>行為</b>"
 
-#: src/audacious/ui_preferences.c:214
+#: src/audacious/ui_preferences.c:203
 msgid "Continue playback on startup"
-msgstr "啟動後接續播放"
+msgstr "啟動後繼續之前的播放"
 
-#: src/audacious/ui_preferences.c:216
+#: src/audacious/ui_preferences.c:205
 msgid "Advance when the current song is deleted"
-msgstr ""
+msgstr "目前的歌曲被刪除時移到下一個"
 
-#: src/audacious/ui_preferences.c:218
-#, fuzzy
+#: src/audacious/ui_preferences.c:207
 msgid "Clear the playlist when opening files"
-msgstr "以符合的項目建立新的播放清單"
+msgstr "開啟檔案後清除播放清單"
 
-#: src/audacious/ui_preferences.c:220
-#, fuzzy
+#: src/audacious/ui_preferences.c:209
 msgid "Open files in a temporary playlist"
-msgstr "加入檔案至播放清單。"
+msgstr "在暫存播放清單中開啟檔案"
 
-#: src/audacious/ui_preferences.c:222
+#: src/audacious/ui_preferences.c:211
 msgid "<b>Metadata</b>"
-msgstr "<b>歌曲資訊</b>"
+msgstr "<b>詮釋資料</b>"
 
-#: src/audacious/ui_preferences.c:501
+#: src/audacious/ui_preferences.c:212
+msgid "Do not load metadata for songs until played"
+msgstr "在歌曲播放以前不要載入詮釋資料"
+
+#: src/audacious/ui_preferences.c:230
+msgid "TITLE"
+msgstr "標題"
+
+#: src/audacious/ui_preferences.c:231
+msgid "ARTIST - TITLE"
+msgstr "藝人 - 標題"
+
+#: src/audacious/ui_preferences.c:232
+msgid "ARTIST - ALBUM - TITLE"
+msgstr "藝人 - 專輯 - 標題"
+
+#: src/audacious/ui_preferences.c:233
+msgid "ARTIST - ALBUM - TRACK. TITLE"
+msgstr "藝人 - 專輯 - 音軌. 標題"
+
+#: src/audacious/ui_preferences.c:234
+msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
+msgstr "藝人 [ 專輯 ] - 音軌. 標題"
+
+#: src/audacious/ui_preferences.c:235
+msgid "ALBUM - TITLE"
+msgstr "專輯 - 標題"
+
+#: src/audacious/ui_preferences.c:556
 msgid "Category"
-msgstr "分類"
+msgstr "目錄"
 
-#: src/audacious/ui_preferences.c:815
+#: src/audacious/ui_preferences.c:780
 msgid "Popup Information Settings"
-msgstr "彈出式資訊設定"
+msgstr "彈出式資訊視窗設定"
 
-#: src/audacious/ui_preferences.c:824
-#, fuzzy
+#: src/audacious/ui_preferences.c:789
 msgid "<b>Cover image retrieve</b>"
-msgstr "<b>自動偵測檔案格式</b>"
+msgstr "<b>擷取封面圖片</b>"
 
-#: src/audacious/ui_preferences.c:829
+#: src/audacious/ui_preferences.c:794
 msgid ""
 "While searching for the album's cover, Audacious looks for certain words in "
 "the filename. You can specify those words in the lists below, separated "
 "using commas."
 msgstr ""
-"搜尋專輯封面時,Audacious 會查詢檔案名稱中的特定字詞。您可以在下列清單中指定"
-"這些字,並以逗號 (,) 隔開。"
+"搜尋專輯封面時,Audacious 會從檔名中尋找特定單字。你可以在底下清單中指定這些"
+"單字,各單字之間用逗點隔開。"
 
-#: src/audacious/ui_preferences.c:846
+#: src/audacious/ui_preferences.c:811
 msgid "Exclude:"
-msgstr "排除:"
+msgstr "排除:"
 
-# This entry is taken from Sun. -- Abel
-#: src/audacious/ui_preferences.c:853
+#: src/audacious/ui_preferences.c:818
 msgid "Include:"
-msgstr "包含:"
+msgstr "包含:"
 
-#: src/audacious/ui_preferences.c:870
+#: src/audacious/ui_preferences.c:835
 msgid "Recursively search for cover"
 msgstr "遞迴地搜尋封面"
 
-#: src/audacious/ui_preferences.c:880
+#: src/audacious/ui_preferences.c:845
 msgid "Search depth: "
-msgstr "搜尋深度:"
+msgstr "搜尋深度:"
 
-#: src/audacious/ui_preferences.c:894
+#: src/audacious/ui_preferences.c:859
 msgid "Use per-file cover"
-msgstr "為每個檔案指定封面"
+msgstr "各檔案使用獨立的封面"
 
-#: src/audacious/ui_preferences.c:897
-#, fuzzy
+#: src/audacious/ui_preferences.c:862
 msgid "<b>Miscellaneous</b>"
-msgstr "<b>其他 (_M)</b>"
+msgstr "<b>雜項</b>"
 
-#: src/audacious/ui_preferences.c:906
+#: src/audacious/ui_preferences.c:871
 msgid "Show Progress bar for the current track"
-msgstr ""
+msgstr "顯示目前歌曲的進度條"
 
-#: src/audacious/ui_preferences.c:916
+#: src/audacious/ui_preferences.c:881
 msgid "Delay until filepopup comes up: "
-msgstr ""
+msgstr "顯示彈出式視窗的延遲時間:"
 
-#: src/audacious/ui_preferences.c:1459
+#: src/audacious/ui_preferences.c:1309
+msgid "Custom"
+msgstr "自訂"
+
+#: src/audacious/ui_preferences.c:1352
 msgid "<b>Song Display</b>"
-msgstr "<b>歌曲顯示</b>"
+msgstr "<b>顯示歌曲</b>"
 
-#: src/audacious/ui_preferences.c:1468
+#: src/audacious/ui_preferences.c:1361
 msgid "Show song numbers"
-msgstr ""
+msgstr "顯示歌曲編號"
 
-#: src/audacious/ui_preferences.c:1479
+#: src/audacious/ui_preferences.c:1372
 msgid "Show leading zeroes (02:00 instead of 2:00)"
-msgstr ""
+msgstr "顯示開頭的數字零 (例:02:00 而不是 2:00)"
 
-#: src/audacious/ui_preferences.c:1501
+#: src/audacious/ui_preferences.c:1394
 msgid "Show information about titlestring format"
 msgstr "顯示關於標題字串格式的資訊"
 
-#: src/audacious/ui_preferences.c:1514
-msgid "TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1515
-msgid "ARTIST - TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1516
-msgid "ARTIST - ALBUM - TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1517
-msgid "ARTIST - ALBUM - TRACK. TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1518
-msgid "ARTIST [ ALBUM ] - TRACK. TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1519
-msgid "ALBUM - TITLE"
-msgstr ""
-
-#: src/audacious/ui_preferences.c:1520
-#, fuzzy
-msgid "Custom"
-msgstr "自訂字串:"
-
-#: src/audacious/ui_preferences.c:1527
+#: src/audacious/ui_preferences.c:1410
 msgid "Custom string:"
-msgstr "自訂字串:"
+msgstr "自訂字串:"
 
-#: src/audacious/ui_preferences.c:1534
+#: src/audacious/ui_preferences.c:1417
 msgid "Title format:"
-msgstr "標題格式:"
+msgstr "標題格式:"
 
-#: src/audacious/ui_preferences.c:1545
+#: src/audacious/ui_preferences.c:1428
 msgid "<b>Popup Information</b>"
-msgstr "<b>彈出資訊</b>"
+msgstr "<b>彈出式資訊視窗</b>"
 
-#: src/audacious/ui_preferences.c:1560
+#: src/audacious/ui_preferences.c:1443
 msgid "Show popup information for playlist entries"
-msgstr "顯示清單項目的彈出資訊"
+msgstr "顯示播放清單項目的彈出式資訊視窗"
 
-#: src/audacious/ui_preferences.c:1562
+#: src/audacious/ui_preferences.c:1444
 msgid ""
 "Toggles popup information window for the pointed entry in the playlist. The "
 "window shows title of song, name of album, genre, year of publish, track "
 "number, track length, and artwork."
 msgstr ""
-"切換播放清單裡指到的項目的彈出式資訊視窗。視窗會顯示歌曲標題,專輯名稱,歌曲"
-"種類,發行年份,音軌編號,音軌長度,以及封面。"
+"切換是否顯示彈出式資訊視窗。視窗將會顯示標題、專輯、類型、發行年份、音軌編"
+"號、長度和美工等資訊。"
 
-#: src/audacious/ui_preferences.c:1568
+#: src/audacious/ui_preferences.c:1455
 msgid "Edit settings for popup information"
-msgstr "編輯彈出式資訊的設定"
-
-#: src/audacious/ui_preferences.c:1698
-msgid "<b>Audio System</b>"
-msgstr "<b>音效系統</b>"
-
-#: src/audacious/ui_preferences.c:1715
-msgid "Buffer size:"
-msgstr "緩衝區大小:"
+msgstr "編輯彈出式資訊視窗的設定值"
 
-#: src/audacious/ui_preferences.c:1734
-msgid "Current output plugin:"
-msgstr "目前的輸出插件:"
+#: src/audacious/ui_preferences.c:1544
+msgid "Output plugin:"
+msgstr "輸出外掛:"
 
-#: src/audacious/ui_preferences.c:1790
-#, fuzzy
+#: src/audacious/ui_preferences.c:1603
 msgid "Transport"
-msgstr "翻譯人員"
+msgstr "傳輸"
 
-#: src/audacious/ui_preferences.c:1790
+#: src/audacious/ui_preferences.c:1603
 msgid "Input"
-msgstr ""
+msgstr "輸入"
 
-#: src/audacious/ui_preferences.c:1791
-#, fuzzy
+#: src/audacious/ui_preferences.c:1604
 msgid "Effect"
-msgstr "<b>效果</b>"
+msgstr "特效"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1604
 msgid "Visualization"
-msgstr "視覺化效果"
+msgstr "視覺化"
 
-#: src/audacious/ui_preferences.c:1791
+#: src/audacious/ui_preferences.c:1604
 msgid "General"
-msgstr ""
+msgstr "一般"
 
-#: src/audacious/ui_preferences.c:1831
+#: src/audacious/ui_preferences.c:1644
 msgid "Audacious Preferences"
 msgstr "Audacious 偏好設定"
 
-#: src/audacious/util.c:161
+#: src/audacious/util.c:120
 #, c-format
 msgid "Could not create directory (%s): %s\n"
-msgstr "無法建立目錄 (%s):%s\n"
+msgstr "無法建立資料夾 (%s): %s\n"
 
-#: src/audtool/handlers_playlist.c:248
+#: src/audtool/handlers_playlist.c:273
 msgid "Position not found."
-msgstr ""
+msgstr "找不到位址。"
 
-#: src/audtool/handlers_vitals.c:64
+#: src/audtool/handlers_vitals.c:63
 msgid "No song playing."
-msgstr ""
+msgstr "無播放中歌曲。"
+
+#: src/libaudcore/audstrings.c:194
+#, c-format
+msgid "Audio CD, track %s"
+msgstr "音樂 CD, 音軌 %s"
 
-#: src/libaudcore/tuple.c:685
+#: src/libaudcore/tuple.c:536
 msgid "Mono"
-msgstr ""
+msgstr "單聲道"
 
-#: src/libaudcore/tuple.c:687
-#, fuzzy
+#: src/libaudcore/tuple.c:538
 msgid "Stereo"
 msgstr "立體聲"
 
-#: src/libaudcore/tuple.c:689
-#, fuzzy, c-format
-msgid "%d channels"
-msgstr "聲道:"
-
-#: src/libaudgui/confirm.c:65
+#: src/libaudcore/tuple.c:540
+#, c-format
+msgid "%d channel"
+msgid_plural "%d channels"
+msgstr[0] "%d 聲道"
+
+# msgid_plural "%d channels"
+# msgstr[0] ""
+# msgstr[1] ""
+#: src/libaudgui/confirm.c:78
 #, c-format
 msgid ""
 "Are you sure you want to close %s?  If you do, any changes made since the "
 "playlist was exported will be lost."
-msgstr ""
+msgstr "您確定要關閉 %s? 所有未匯出的資料將會遺失。"
 
-#: src/libaudgui/confirm.c:77
-#, fuzzy
+#: src/libaudgui/confirm.c:91
 msgid "_Don't show this message again"
-msgstr "以後別再顯示這個警告。"
+msgstr "不要再顯示這個訊息(_D)"
 
-#: src/libaudgui/confirm.c:115
-#, fuzzy
+#: src/libaudgui/confirm.c:128
 msgid "Rename Playlist"
-msgstr "儲存播放清單"
+msgstr "重新命名播放清單"
 
 #: src/libaudgui/effects-menu.c:76
 msgid "settings ..."
-msgstr ""
+msgstr "設定 ..."
 
-#: src/libaudgui/equalizer.c:68
-#, fuzzy
+#: src/libaudgui/equalizer.c:53
 msgid "_Enable"
-msgstr "已啟用"
+msgstr "啟用(_E)"
 
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:125
 msgid "31 Hz"
 msgstr ""
 
-#: src/libaudgui/equalizer.c:140
+#: src/libaudgui/equalizer.c:125
 msgid "63 Hz"
 msgstr ""
 
-#: src/libaudgui/equalizer.c:141
+#: src/libaudgui/equalizer.c:126
 msgid "125 Hz"
 msgstr ""
 
-#: src/libaudgui/equalizer.c:141
-#, fuzzy
+#: src/libaudgui/equalizer.c:126
 msgid "250 Hz"
-msgstr "1:1 (44 kHz)"
+msgstr ""
 
-#: src/libaudgui/equalizer.c:141
-#, fuzzy
+#: src/libaudgui/equalizer.c:126
 msgid "500 Hz"
-msgstr "1:1 (44 kHz)"
+msgstr ""
 
-#: src/libaudgui/equalizer.c:141
-#, fuzzy
+#: src/libaudgui/equalizer.c:126
 msgid "1 kHz"
-msgstr "1:1 (44 kHz)"
+msgstr ""
 
-#: src/libaudgui/equalizer.c:141
-#, fuzzy
+#: src/libaudgui/equalizer.c:126
 msgid "2 kHz"
-msgstr "1:2 (22 kHz)"
+msgstr ""
 
-#: src/libaudgui/equalizer.c:142
-#, fuzzy
+#: src/libaudgui/equalizer.c:127
 msgid "4 kHz"
-msgstr "1:1 (44 kHz)"
+msgstr ""
 
-#: src/libaudgui/equalizer.c:142
-#, fuzzy
+#: src/libaudgui/equalizer.c:127
 msgid "8 kHz"
-msgstr "1:1 (44 kHz)"
+msgstr ""
 
-#: src/libaudgui/equalizer.c:142
-#, fuzzy
+#: src/libaudgui/equalizer.c:127
 msgid "16 kHz"
-msgstr "1:1 (44 kHz)"
+msgstr ""
 
-#: src/libaudgui/equalizer.c:147
+#: src/libaudgui/equalizer.c:132
 msgid "Equalizer"
 msgstr "等化器"
 
-# This entry is taken from Sun. -- Abel
-#: src/libaudgui/equalizer.c:163
-#, fuzzy
+#: src/libaudgui/equalizer.c:148
 msgid "Preamp"
-msgstr "夢幻音樂(Dream)"
+msgstr "前置放大"
 
-#: src/libaudgui/infopopup.c:249
-#, fuzzy
+#: src/libaudgui/infopopup.c:207
+msgid "Track"
+msgstr "音軌"
+
+#: src/libaudgui/infopopup.c:209
+msgid "Length"
+msgstr "長度"
+
+#: src/libaudgui/infopopup.c:211
 msgid "Track Number"
 msgstr "音軌編號"
 
-#: src/libaudgui/infopopup.c:251
-#, fuzzy
+#: src/libaudgui/infopopup.c:213
 msgid "Track Length"
-msgstr "音軌長度:"
+msgstr "音軌長度"
 
-#: src/libaudgui/infowin.c:77
+#: src/libaudgui/infowin.c:78
 msgid "Acid Jazz"
 msgstr ""
 
-#: src/libaudgui/infowin.c:78
+#: src/libaudgui/infowin.c:79
 msgid "Acid Rock"
 msgstr ""
 
-#: src/libaudgui/infowin.c:79
-#, fuzzy
+#: src/libaudgui/infowin.c:80
 msgid "Ambient"
-msgstr "關於 BMP"
+msgstr ""
 
-#: src/libaudgui/infowin.c:80
+#: src/libaudgui/infowin.c:81
 msgid "Bebop"
 msgstr ""
 
-#: src/libaudgui/infowin.c:81
-#, fuzzy
+#: src/libaudgui/infowin.c:82
 msgid "Bluegrass"
-msgstr "藍"
+msgstr ""
 
-#: src/libaudgui/infowin.c:82
-#, fuzzy
+#: src/libaudgui/infowin.c:83
 msgid "Blues"
-msgstr "藍"
+msgstr ""
 
-#: src/libaudgui/infowin.c:83
+#: src/libaudgui/infowin.c:84
 msgid "Chamber Music"
 msgstr ""
 
-#: src/libaudgui/infowin.c:84
+#: src/libaudgui/infowin.c:85
 msgid "Classical"
 msgstr ""
 
-#: src/libaudgui/infowin.c:85
-#, fuzzy
+#: src/libaudgui/infowin.c:86
 msgid "Country"
-msgstr "關於 BMP"
+msgstr ""
 
-#: src/libaudgui/infowin.c:86
-#, fuzzy
+#: src/libaudgui/infowin.c:87
 msgid "Death Metal"
-msgstr "另類音樂Ska死亡金屬(Death Metal)"
+msgstr ""
 
-# 迪斯可 is just a translation in pronunciation, and not widely
-# used. Rejected. -- Abel
-#: src/libaudgui/infowin.c:87
+#: src/libaudgui/infowin.c:88
 msgid "Disco"
-msgstr "Disco"
+msgstr ""
 
-#: src/libaudgui/infowin.c:88
-#, fuzzy
+#: src/libaudgui/infowin.c:89
 msgid "Easy Listening"
-msgstr "已啟用"
+msgstr ""
 
-#: src/libaudgui/infowin.c:89
+#: src/libaudgui/infowin.c:90
 msgid "Folk"
 msgstr ""
 
-#: src/libaudgui/infowin.c:90
+#: src/libaudgui/infowin.c:91
 msgid "Funk"
 msgstr ""
 
-#: src/libaudgui/infowin.c:91
+#: src/libaudgui/infowin.c:92
 msgid "Gangsta Rap"
 msgstr ""
 
-#: src/libaudgui/infowin.c:92
+#: src/libaudgui/infowin.c:93
 msgid "Gospel"
 msgstr ""
 
-# 瘋克 is widely used in Taiwan - Woodman
-#: src/libaudgui/infowin.c:93
-#, fuzzy
+#: src/libaudgui/infowin.c:94
 msgid "Grunge"
-msgstr "放客(Funk)車庫搖滾(Grunge)"
+msgstr ""
 
-#: src/libaudgui/infowin.c:94
+#: src/libaudgui/infowin.c:95
 msgid "Hard Rock"
 msgstr ""
 
-#: src/libaudgui/infowin.c:95
+#: src/libaudgui/infowin.c:96
 msgid "Heavy Metal"
 msgstr ""
 
-#: src/libaudgui/infowin.c:96
+#: src/libaudgui/infowin.c:97
 msgid "Hip-hop"
 msgstr ""
 
-#: src/libaudgui/infowin.c:97
-#, fuzzy
+#: src/libaudgui/infowin.c:98
 msgid "House"
-msgstr "滑鼠"
+msgstr ""
 
-#: src/libaudgui/infowin.c:98
+#: src/libaudgui/infowin.c:99
 msgid "Jazz"
 msgstr ""
 
-#: src/libaudgui/infowin.c:99
+#: src/libaudgui/infowin.c:100
 msgid "Jungle"
 msgstr ""
 
-#: src/libaudgui/infowin.c:100
+#: src/libaudgui/infowin.c:101
 msgid "Metal"
 msgstr ""
 
-#: src/libaudgui/infowin.c:101
+#: src/libaudgui/infowin.c:102
 msgid "New Age"
 msgstr ""
 
-#: src/libaudgui/infowin.c:102
+#: src/libaudgui/infowin.c:103
 msgid "New Wave"
 msgstr ""
 
-#: src/libaudgui/infowin.c:103
-#, fuzzy
+#: src/libaudgui/infowin.c:104
 msgid "Noise"
-msgstr "滑鼠"
+msgstr ""
 
-#: src/libaudgui/infowin.c:104
+#: src/libaudgui/infowin.c:105
 msgid "Pop"
 msgstr ""
 
-#: src/libaudgui/infowin.c:105
+#: src/libaudgui/infowin.c:106
 msgid "Punk Rock"
 msgstr ""
 
-#: src/libaudgui/infowin.c:106
+#: src/libaudgui/infowin.c:107
 msgid "Rap"
 msgstr ""
 
-#: src/libaudgui/infowin.c:107
-#, fuzzy
+#: src/libaudgui/infowin.c:108
 msgid "Reggae"
-msgstr "重新命名 (_R)"
+msgstr ""
 
-#: src/libaudgui/infowin.c:108
+#: src/libaudgui/infowin.c:109
 msgid "Rock"
 msgstr ""
 
-#: src/libaudgui/infowin.c:109
+#: src/libaudgui/infowin.c:110
 msgid "Rock and Roll"
 msgstr ""
 
-#: src/libaudgui/infowin.c:110
+#: src/libaudgui/infowin.c:111
 msgid "Rhythm and Blues"
 msgstr ""
 
-#: src/libaudgui/infowin.c:111
+#: src/libaudgui/infowin.c:112
 msgid "Ska"
 msgstr ""
 
-#: src/libaudgui/infowin.c:112
+#: src/libaudgui/infowin.c:113
 msgid "Soul"
 msgstr ""
 
-#: src/libaudgui/infowin.c:113
+#: src/libaudgui/infowin.c:114
 msgid "Swing"
 msgstr ""
 
-#: src/libaudgui/infowin.c:114
+#: src/libaudgui/infowin.c:115
 msgid "Techno"
 msgstr ""
 
-#: src/libaudgui/infowin.c:115
+#: src/libaudgui/infowin.c:116
 msgid "Trip-hop"
 msgstr ""
 
-#: src/libaudgui/infowin.c:175 src/libaudgui/infowin.c:361
-#: src/libaudgui/infowin.c:364 src/libaudgui/infowin.c:367
-#, fuzzy
+#: src/libaudgui/infowin.c:180 src/libaudgui/infowin.c:366
+#: src/libaudgui/infowin.c:369 src/libaudgui/infowin.c:372
 msgid "<span size=\"small\">n/a</span>"
-msgstr "<span size=\"small\">年份</span>"
-
-#: src/libaudgui/infowin.c:265
-msgid "Metadata updated successfully"
 msgstr ""
 
 #: src/libaudgui/infowin.c:270
+msgid "Metadata updated successfully"
+msgstr "成功地更新了詮釋資料"
+
+#: src/libaudgui/infowin.c:275
 msgid "Metadata updating failed"
-msgstr ""
+msgstr "詮釋資料更新失敗"
 
-#: src/libaudgui/infowin.c:318
+#: src/libaudgui/infowin.c:323
 msgid "Track Information"
-msgstr "音軌資訊:"
+msgstr "音軌資訊"
 
-#: src/libaudgui/infowin.c:350
-#, fuzzy
+#: src/libaudgui/infowin.c:355
 msgid "<span size=\"small\">Format:</span>"
-msgstr "<span size=\"small\">註解</span>"
+msgstr "<span size=\"small\">格式:</span>"
 
-#: src/libaudgui/infowin.c:354
-#, fuzzy
+#: src/libaudgui/infowin.c:359
 msgid "<span size=\"small\">Quality:</span>"
-msgstr "<span size=\"small\">標題</span>"
+msgstr "<span size=\"small\">品質:</span>"
 
-#: src/libaudgui/infowin.c:357
-#, fuzzy
+#: src/libaudgui/infowin.c:362
 msgid "<span size=\"small\">Bitrate:</span>"
-msgstr "<span size=\"small\">註解</span>"
+msgstr "<span size=\"small\">位元率:</span>"
 
-#: src/libaudgui/infowin.c:387
+#: src/libaudgui/infowin.c:392
 msgid "<span size=\"small\">Title</span>"
 msgstr "<span size=\"small\">標題</span>"
 
-#: src/libaudgui/infowin.c:399
+#: src/libaudgui/infowin.c:404
 msgid "<span size=\"small\">Artist</span>"
 msgstr "<span size=\"small\">藝人</span>"
 
-#: src/libaudgui/infowin.c:411
+#: src/libaudgui/infowin.c:416
 msgid "<span size=\"small\">Album</span>"
 msgstr "<span size=\"small\">專輯</span>"
 
-#: src/libaudgui/infowin.c:423
+#: src/libaudgui/infowin.c:428
 msgid "<span size=\"small\">Comment</span>"
-msgstr "<span size=\"small\">註解</span>"
+msgstr "<span size=\"small\">備註</span>"
 
-#: src/libaudgui/infowin.c:435
+#: src/libaudgui/infowin.c:440
 msgid "<span size=\"small\">Genre</span>"
-msgstr "<span size=\"small\">樂曲種類</span>"
+msgstr "<span size=\"small\">é¡žåž‹</span>"
 
-#: src/libaudgui/infowin.c:456
+#: src/libaudgui/infowin.c:461
 msgid "<span size=\"small\">Year</span>"
 msgstr "<span size=\"small\">年份</span>"
 
-#: src/libaudgui/infowin.c:467
+#: src/libaudgui/infowin.c:472
 msgid "<span size=\"small\">Track Number</span>"
 msgstr "<span size=\"small\">音軌編號</span>"
 
-#: src/libaudgui/infowin.c:549
-#, fuzzy, c-format
+#: src/libaudgui/infowin.c:551
+#, c-format
 msgid "%d kb/s"
-msgstr "%d KBit/s"
+msgstr ""
 
-#: src/libaudgui/infowin.c:579
+#: src/libaudgui/infowin.c:578
 #, c-format
 msgid "No info available for %s.\n"
+msgstr "無關於 %s 的資訊。\n"
+
+#: src/libaudgui/jump-to-time.c:75
+msgid "Jump to Time"
+msgstr "跳至時間"
+
+#: src/libaudgui/jump-to-time.c:90
+msgid "mm:ss"
 msgstr ""
 
-#: src/libaudgui/ui_about.c:71
+#: src/libaudgui/playlists.c:39
+msgid "Export Playlist"
+msgstr "匯出播放清單"
+
+#: src/libaudgui/playlists.c:39
+msgid "Import Playlist"
+msgstr "匯入播放清單"
+
+#: src/libaudgui/playlists.c:72
+#, c-format
+msgid "Overwrite %s?"
+msgstr "覆寫 %s?"
+
+#: src/libaudgui/queue-manager.c:198
+msgid "Queue Manager"
+msgstr "佇列管理"
+
+#: src/libaudgui/ui_about.c:69
 msgid "About Audacious"
 msgstr "關於 Audacious"
 
-#: src/libaudgui/ui_about.c:93 src/libaudgui/ui_credits.c:122
+#: src/libaudgui/ui_about.c:90 src/libaudgui/ui_credits.c:122
 msgid "Credits"
-msgstr "工作人員"
+msgstr "開發團隊"
 
 #: src/libaudgui/ui_credits.c:126
 msgid "Translators"
@@ -1177,2814 +1087,141 @@ msgstr "加入檔案"
 
 #: src/libaudgui/ui_fileopener.c:110
 msgid "Close dialog on Open"
-msgstr "開啟後關閉對話框"
+msgstr "開啟後關閉對話視窗"
 
 #: src/libaudgui/ui_fileopener.c:110
 msgid "Close dialog on Add"
-msgstr "加入後關閉對話框"
-
-#: src/libaudgui/ui_jumptotrack.c:133
-msgid "Un_queue"
-msgstr "移出佇列 (_q)"
+msgstr "加入後關閉對話視窗"
 
-#: src/libaudgui/ui_jumptotrack.c:135 src/libaudgui/ui_jumptotrack.c:512
+#: src/libaudgui/ui_jumptotrack.c:112 src/libaudgui/ui_jumptotrack.c:120
+#: src/libaudgui/ui_jumptotrack.c:329
 msgid "_Queue"
 msgstr "排入佇列 (_Q)"
 
-#: src/libaudgui/ui_jumptotrack.c:399
-msgid "Jump to Track"
-msgstr "跳至音軌"
+#: src/libaudgui/ui_jumptotrack.c:118
+msgid "Un_queue"
+msgstr "移出佇列 (_q)"
 
-#: src/libaudgui/ui_jumptotrack.c:442
+#: src/libaudgui/ui_jumptotrack.c:261
+msgid "Jump to Song"
+msgstr "跳至歌曲"
+
+#: src/libaudgui/ui_jumptotrack.c:284
 msgid "Filter: "
-msgstr "濾波器:"
+msgstr "過濾器: "
 
-#: src/libaudgui/ui_jumptotrack.c:443
+#: src/libaudgui/ui_jumptotrack.c:285
 msgid "_Filter:"
-msgstr "濾波器 (_F):"
+msgstr "過濾器(_F):"
 
-#: src/libaudgui/ui_jumptotrack.c:461
+#: src/libaudgui/ui_jumptotrack.c:295
 msgid "Remember"
-msgstr ""
+msgstr "記住"
 
-#: src/libaudgui/ui_jumptotrack.c:470
-#, fuzzy
+#: src/libaudgui/ui_jumptotrack.c:302
 msgid "Clea_r"
-msgstr "清除播放區段"
+msgstr "清除(_R)"
 
-#: src/libaudgui/ui_jumptotrack.c:504
-#, fuzzy
+#: src/libaudgui/ui_jumptotrack.c:322
 msgid "Close on Jump"
-msgstr "開啟後關閉對話框"
+msgstr "切換後關閉"
 
-#: src/libaudgui/ui_playlist_manager.c:185
+#: src/libaudgui/ui_playlist_manager.c:253
 msgid "Playlist Manager"
-msgstr "播放清單管理員"
+msgstr "播放清單管理"
 
-#: src/libaudgui/ui_playlist_manager.c:209
+#: src/libaudgui/ui_playlist_manager.c:280
 msgid "Entries"
-msgstr "é …ç›®"
+msgstr "數量"
 
-#: src/libaudgui/ui_playlist_manager.c:227
+#: src/libaudgui/ui_playlist_manager.c:301
 msgid "_Rename"
-msgstr "重新命名 (_R)"
+msgstr "重新命名(_R)"
 
-#: src/libaudgui/ui_playlist_manager.c:251
-#, fuzzy
+#: src/libaudgui/ui_playlist_manager.c:325
 msgid "_Close dialog on activating playlist"
-msgstr "開啟後關閉對話框"
+msgstr "啟用播放清單後關閉對話視窗(_C)"
 
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:51
 msgid "Open URL"
-msgstr ""
+msgstr "é–‹å•Ÿ URL"
 
-#: src/libaudgui/ui_urlopener.c:58
+#: src/libaudgui/ui_urlopener.c:51
 msgid "Add URL"
+msgstr "加入 URL"
+
+#: src/libaudgui/util.c:97
+msgid ""
+"\n"
+"(Further messages have been hidden.)"
 msgstr ""
+"\n"
+"(詳細訊息已被隱藏。)"
 
 #: src/libeggsmclient/eggdesktopfile.c:165
 msgid "File is not a valid .desktop file"
-msgstr ""
+msgstr "無效的 .desktop 檔案"
 
-#: src/libeggsmclient/eggdesktopfile.c:188
-#, fuzzy, c-format
+#: src/libeggsmclient/eggdesktopfile.c:191
+#, c-format
 msgid "Unrecognized desktop file Version '%s'"
-msgstr "%s:無法辨識的選項 `--%s'\n"
+msgstr "無法辨識捷徑版本 '%s'"
 
-#: src/libeggsmclient/eggdesktopfile.c:968
+#: src/libeggsmclient/eggdesktopfile.c:974
 #, c-format
 msgid "Starting %s"
-msgstr ""
+msgstr "啟動 %s 中"
 
-#: src/libeggsmclient/eggdesktopfile.c:1110
+#: src/libeggsmclient/eggdesktopfile.c:1116
 msgid "Application does not accept documents on command line"
-msgstr ""
+msgstr "應用程式不接受來自命令列的檔案參數"
 
-#: src/libeggsmclient/eggdesktopfile.c:1178
-#, fuzzy, c-format
+#: src/libeggsmclient/eggdesktopfile.c:1184
+#, c-format
 msgid "Unrecognized launch option: %d"
-msgstr "%s:無法辨識的選項 `--%s'\n"
+msgstr "無效的啟動選項: %d"
 
-#: src/libeggsmclient/eggdesktopfile.c:1383
+#: src/libeggsmclient/eggdesktopfile.c:1391
 msgid "Can't pass document URIs to a 'Type=Link' desktop entry"
-msgstr ""
+msgstr "無法將檔案的 URI 參數傳給一個類型為連結的捷徑"
 
-#: src/libeggsmclient/eggdesktopfile.c:1404
+#: src/libeggsmclient/eggdesktopfile.c:1412
 msgid "Not a launchable item"
-msgstr ""
+msgstr "非可執行檔"
 
 #: src/libeggsmclient/eggsmclient.c:226
 msgid "Disable connection to session manager"
-msgstr ""
+msgstr "關閉通往工作階段管理員的連線"
 
 #: src/libeggsmclient/eggsmclient.c:229
 msgid "Specify file containing saved configuration"
-msgstr ""
+msgstr "指定設定檔"
 
 #: src/libeggsmclient/eggsmclient.c:229
 msgid "FILE"
-msgstr ""
+msgstr "檔案"
 
 #: src/libeggsmclient/eggsmclient.c:232
 msgid "Specify session management ID"
-msgstr ""
+msgstr "指定工作階段 ID"
 
 #: src/libeggsmclient/eggsmclient.c:232
 msgid "ID"
 msgstr ""
 
 #: src/libeggsmclient/eggsmclient.c:253
-#, fuzzy
 msgid "Session management options:"
-msgstr "顯示視窗管理員裝飾"
+msgstr "工作階段選項:"
 
 #: src/libeggsmclient/eggsmclient.c:254
-#, fuzzy
 msgid "Show session management options"
-msgstr "顯示視窗管理員裝飾"
-
-#, fuzzy
-#~ msgid "%s: Unable to open display, exiting.\n"
-#~ msgstr "audacious:無法顯示,正在結束。\n"
-
-# This entry is taken from Sun. -- Abel
-#, fuzzy
-#~ msgid "Preamp:"
-#~ msgstr "夢幻音樂(Dream)"
-
-#, fuzzy
-#~ msgid "Default gain:"
-#~ msgstr "預設面板:"
-
-#, fuzzy
-#~ msgid "<b>Replay Gain configuration</b>"
-#~ msgstr "<b>代理伺服器設定</b>"
-
-#, fuzzy
-#~ msgid "Track gain/peak"
-#~ msgstr "音軌尖峰:"
-
-#, fuzzy
-#~ msgid "Album gain/peak"
-#~ msgstr "專輯增益:"
-
-#, fuzzy
-#~ msgid "Dance"
-#~ msgstr "舞曲"
-
-#, fuzzy
-#~ msgid "Oldies"
-#~ msgstr "列"
-
-#, fuzzy
-#~ msgid "Alternative"
-#~ msgstr "另類音樂Ska死亡金屬(Death Metal)"
-
-#, fuzzy
-#~ msgid "Pranks"
-#~ msgstr "波峰"
-
-#, fuzzy
-#~ msgid "Fusion"
-#~ msgstr "Fast-Fusion"
-
-#, fuzzy
-#~ msgid "Trance"
-#~ msgstr "舞曲"
-
-#, fuzzy
-#~ msgid "Instrumental"
-#~ msgstr "樂器演奏"
-
-#, fuzzy
-#~ msgid "Bass"
-#~ msgstr "長條"
-
-#, fuzzy
-#~ msgid "Space"
-#~ msgstr "儲存"
-
-#, fuzzy
-#~ msgid "Instrumental Pop"
-#~ msgstr "樂器演奏"
-
-#, fuzzy
-#~ msgid "Instrumental Rock"
-#~ msgstr "樂器演奏"
-
-#, fuzzy
-#~ msgid "Techno-Industrial"
-#~ msgstr "饒舌樂(Rap)雷鬼樂(Reggae)搖滾樂電子舞曲(Techno)工業搖滾(Industrial)"
-
-# This entry is taken from Sun. -- Abel
-#, fuzzy
-#~ msgid "Dream"
-#~ msgstr "夢幻音樂(Dream)"
-
-#, fuzzy
-#~ msgid "Southern Rock"
-#~ msgstr "夢幻音樂(Dream)南方搖滾(Southern Rock)"
-
-#~ msgid "Comedy"
-#~ msgstr "喜劇音樂"
-
-#, fuzzy
-#~ msgid "Cult"
-#~ msgstr "自訂字串:"
-
-#, fuzzy
-#~ msgid "Rave"
-#~ msgstr "儲存"
-
-#, fuzzy
-#~ msgid "Showtunes"
-#~ msgstr "最慢速"
-
-#, fuzzy
-#~ msgid "Trailer"
-#~ msgstr "標題"
-
-#, fuzzy
-#~ msgid "Polka"
-#~ msgstr "播放"
-
-#, fuzzy
-#~ msgid "Retro"
-#~ msgstr "零值"
-
-#, fuzzy
-#~ msgid "Musical"
-#~ msgstr "復古音樂(Retro)音樂劇"
-
-#~ msgid "Fast-Fusion"
-#~ msgstr "Fast-Fusion"
-
-#, fuzzy
-#~ msgid "Latin"
-#~ msgstr "義大利語:"
-
-#, fuzzy
-#~ msgid "Slow Rock"
-#~ msgstr "慢速"
-
-#, fuzzy
-#~ msgid "Sonata"
-#~ msgstr "奏鳴曲"
-
-#, fuzzy
-#~ msgid "Primus"
-#~ msgstr "上一首"
-
-#, fuzzy
-#~ msgid "Satire"
-#~ msgstr "火焰"
-
-#, fuzzy
-#~ msgid "Slow Jam"
-#~ msgstr "慢速"
-
-#, fuzzy
-#~ msgid "Tango"
-#~ msgstr "銳舞音樂(Rave)"
-
-#, fuzzy
-#~ msgid "Duet"
-#~ msgstr "二重奏"
-
-#, fuzzy
-#~ msgid "Dance Hall"
-#~ msgstr "舞曲"
-
-#, fuzzy
-#~ msgid "Club-House"
-#~ msgstr "滑鼠"
-
-#, fuzzy
-#~ msgid "Terror"
-#~ msgstr "驚悚音樂"
-
-# This entry is taken from Sun. -- Abel
-#, fuzzy
-#~ msgid "Indie"
-#~ msgstr "包含:"
-
-#, fuzzy
-#~ msgid "BritPop"
-#~ msgstr "藝人彈出訊息"
-
-#~ msgid "Beat"
-#~ msgstr "敲擊樂"
-
-#, fuzzy
-#~ msgid "Crossover"
-#~ msgstr "跨界音樂(Crossover)"
-
-#, fuzzy
-#~ msgid "Salsa"
-#~ msgstr "騷沙舞曲(Salsa)"
-
-#, fuzzy
-#~ msgid "Synthpop"
-#~ msgstr "停止"
-
-#, fuzzy
-#~ msgid ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "An audio player for many platforms.\n"
-#~ "Copyright (C) 2005-2011 Audacious Development Team"
-#~ msgstr ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "UNIX 多媒體的未來。\n"
-#~ "\n"
-#~ "版權所有 (C) 2005-2007 Audacious 開發團隊\n"
-
-#~ msgid "Unable to create log file (%s)!\n"
-#~ msgstr "無法建立紀錄檔 (%s)!\n"
-
-#~ msgid "Playback"
-#~ msgstr "播放"
-
-#~ msgid "<b>Playback</b>"
-#~ msgstr "<b>播放</b>"
-
-#~ msgid ""
-#~ "When Audacious starts, automatically begin playing from the point where "
-#~ "we stopped before."
-#~ msgstr "Audacious 啟動時,自動從上次停止的地方開始播放。"
-
-#~ msgid "Don't advance in the playlist"
-#~ msgstr "不捲動播放清單"
-
-#~ msgid ""
-#~ "When finished playing a song, don't automatically advance to the next."
-#~ msgstr "播完一首歌曲後,不要自動前往下一首。"
-
-#~ msgid "Enabled"
-#~ msgstr "已啟用"
-
-#~ msgid "Description"
-#~ msgstr "描述"
-
-#~ msgid "Output Plugin Preferences"
-#~ msgstr "輸出插件偏好設定"
-
-#~ msgid "Output Plugin Information"
-#~ msgstr "輸出插件資訊"
-
-#~ msgid "_Decoder list:"
-#~ msgstr "解碼器清單 (_D):"
-
-#~ msgid "<span size=\"medium\"><b>Decoders</b></span>"
-#~ msgstr "<span size=\"medium\"><b>解碼器</b></span>"
-
-#~ msgid "_General plugin list:"
-#~ msgstr "一般插件清單 (_G):"
-
-#~ msgid "<span size=\"medium\"><b>General</b></span>"
-#~ msgstr "<span size=\"medium\"><b>一般</b></span>"
-
-#~ msgid "_Visualization plugin list:"
-#~ msgstr "視覺化插件清單 (_V):"
-
-#~ msgid "<b>Visualization</b>"
-#~ msgstr "<b>視覺化</b>"
-
-#, fuzzy
-#~ msgid "Effect plugins:"
-#~ msgstr "特效插件清單 (_E):"
-
-#~ msgid "<b>Effects</b>"
-#~ msgstr "<b>特效</b>"
-
-#, fuzzy
-#~ msgid "<span size=\"small\">General</span>"
-#~ msgstr "<span size=\"small\">樂曲種類</span>"
-
-#~ msgid "<span size=\"small\">Location</span>"
-#~ msgstr "<span size=\"small\">位置</span>"
-
-#, fuzzy
-#~ msgid "<span size=\"small\">Raw Metadata</span>"
-#~ msgstr "<span size=\"small\">年份</span>"
-
-#, fuzzy
-#~ msgid "Value"
-#~ msgstr "藍"
-
-#, fuzzy
-#~ msgid "170 Hz"
-#~ msgstr "1:1 (44 kHz)"
-
-#, fuzzy
-#~ msgid "310 Hz"
-#~ msgstr "1:1 (44 kHz)"
-
-#, fuzzy
-#~ msgid "3 kHz"
-#~ msgstr "1:1 (44 kHz)"
-
-#, fuzzy
-#~ msgid "6 kHz"
-#~ msgstr "1:1 (44 kHz)"
-
-#, fuzzy
-#~ msgid ""
-#~ "Available interfaces:\n"
-#~ "\n"
-#~ msgstr "可用的設定組合 (_P):"
-
-#, fuzzy
-#~ msgid "Available Plugin Preferences:\n"
-#~ msgstr "可用的設定組合 (_P):"
-
-#~ msgid "Add/Open URL Dialog"
-#~ msgstr "加入/開啟網址對話框"
-
-#~ msgid "Enter location to play:"
-#~ msgstr "請輸入欲播放的位置"
-
-#~ msgid "Don't clear the playlist"
-#~ msgstr "不要清除此播放清單"
-
-#~ msgid "audacious: %s"
-#~ msgstr "audacious:%s"
-
-#~ msgid "Filename:"
-#~ msgstr "檔案名稱:"
-
-#~ msgid "No input plugin recognized this file"
-#~ msgstr "沒有輸入插件適用此檔"
-
-#~ msgid "Input plugin: %s"
-#~ msgstr "輸入插件:%s"
-
-#~ msgid ""
-#~ "<b><big>No output plugin selected.</big></b>\n"
-#~ "You have not selected an output plugin."
-#~ msgstr ""
-#~ "<b><big>未選取輸出插件。</big></b>\n"
-#~ "您尚未選取一種輸出插件。"
-
-#~ msgid "Connectivity"
-#~ msgstr "連線"
-
-#, fuzzy
-#~ msgid "Sampling Rate [Hz]:"
-#~ msgstr "取樣率:"
-
-#~ msgid "<b>Format Detection</b>"
-#~ msgstr "<b>自動偵測檔案格式</b>"
-
-#~ msgid "Detect file formats by extension."
-#~ msgstr "依副檔名偵測檔案格式。"
-
-#, fuzzy
-#~ msgid ""
-#~ "When checked, Audacious will detect file formats based by extension. Only "
-#~ "files with extensions of supported formats will be loaded."
-#~ msgstr ""
-#~ "一旦勾選,Audacious 將依副檔名偵測檔案格式。這比視情況才偵測來的慢,但仍能"
-#~ "提供最小等級的檔案格式偵測。"
-
-#, fuzzy
-#~ msgid "<b>Sampling Rate Converter</b>"
-#~ msgstr "取樣率:"
-
-#, fuzzy
-#~ msgid "Enable Sampling Rate Converter"
-#~ msgstr "取樣率:"
-
-#, fuzzy
-#~ msgid "<b>Advanced</b>"
-#~ msgstr "進階設定"
-
-#, fuzzy
-#~ msgid ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "\n"
-#~ "Copyright (C) 2005-2009 Audacious Development Team"
-#~ msgstr ""
-#~ "<big><b>Audacious %s</b></big>\n"
-#~ "\n"
-#~ "版權所有 (C) 2005-2007 Audacious 開發團隊"
-
-#~ msgid "Detect file formats on demand, instead of immediately."
-#~ msgstr "視情況才偵測檔案格式而不立即偵測。"
-
-#~ msgid ""
-#~ "When checked, Audacious will detect file formats on demand. This can "
-#~ "result in a messier playlist, but delivers a major speed benefit."
-#~ msgstr ""
-#~ "一旦勾選,Audacious 將視需要偵測檔案格式。這會造成一個比較混亂的播放清單,"
-#~ "但是有顯著的速度提升。"
-
-#~ msgid "Load metadata from playlists and files"
-#~ msgstr "從播放清單與檔案載入歌曲資訊"
-
-#~ msgid "Load metadata (tag information) from music files."
-#~ msgstr "載入音樂檔的歌曲資訊 (標籤資訊)。"
-
-#~ msgid "Jump to Time"
-#~ msgstr "跳至時刻"
-
-#~ msgid "minutes:seconds"
-#~ msgstr "分:秒"
-
-#~ msgid "Track length:"
-#~ msgstr "音軌長度:"
-
-#, fuzzy
-#~ msgid "Save as Static Playlist"
-#~ msgstr "儲存播放清單"
-
-#~ msgid "Error writing playlist \"%s\": %s"
-#~ msgstr "寫入播放清單 \"%s\":%s 時發生錯誤"
-
-#~ msgid "%s already exist. Continue?"
-#~ msgstr "%s 已經存在。是否繼續?"
-
-#~ msgid ""
-#~ "<b><big>Unable to save playlist.</big></b>\n"
-#~ "\n"
-#~ "Unknown file type for '%s'.\n"
-#~ msgstr ""
-#~ "<b><big>無法儲存播放清單。</big></b>\n"
-#~ "\n"
-#~ "'%s' 是未知的檔案型別。\n"
-
-#~ msgid "Presets"
-#~ msgstr "設定組合"
-
-#~ msgid "Mouse"
-#~ msgstr "滑鼠"
-
-#~ msgid "Pause between songs"
-#~ msgstr "歌曲間稍作暫停"
-
-#~ msgid "Pause for"
-#~ msgstr "暫停"
-
-#~ msgid "seconds"
-#~ msgstr "秒"
-
-#~ msgid "<b>Filename</b>"
-#~ msgstr "<b>檔案名稱</b>"
-
-#~ msgid "Convert underscores to blanks"
-#~ msgstr "轉換下劃線為空白"
-
-#~ msgid "Convert %20 to blanks"
-#~ msgstr "轉換 %20 為空白"
-
-#~ msgid "Convert backslash '\\' to forward slash '/'"
-#~ msgstr "轉換反斜線 '\\' 為斜線 '/'"
-
-#~ msgid "<b>File Dialog</b>"
-#~ msgstr "<b>檔案對話框</b>"
-
-#~ msgid "Always refresh directory when opening file dialog"
-#~ msgstr "開啟檔案對話框時總是重新整理目錄"
-
-#~ msgid ""
-#~ "Always refresh the file dialog (this will slow opening the dialog on "
-#~ "large directories, and Gnome VFS should handle automatically)."
-#~ msgstr ""
-#~ "總是重新整理檔案對話框 (在大量目錄下開啟對話框會變慢,而且 Gnome VFS 應該"
-#~ "會自動處理)。"
-
-#~ msgid "Changes volume by"
-#~ msgstr "滑鼠滾輪改變音量以"
-
-#~ msgid "percent"
-#~ msgstr "百分比"
-
-#~ msgid "Scrolls playlist by"
-#~ msgstr "滑鼠捲動播放清單以"
-
-#~ msgid "lines"
-#~ msgstr "列"
-
-#~ msgid "Stop after Current Song"
-#~ msgstr "播完目前的歌曲後停止"
-
-#~ msgid "Peaks"
-#~ msgstr "波峰"
-
-#~ msgid "Repeat"
-#~ msgstr "重複"
-
-#~ msgid "Shuffle"
-#~ msgstr "隨機"
-
-#~ msgid "No Playlist Advance"
-#~ msgstr "不使用播放清單進階項目"
-
-#~ msgid "Play"
-#~ msgstr "播放"
-
-#~ msgid "Pause"
-#~ msgstr "暫停"
-
-#~ msgid "Stop"
-#~ msgstr "停止"
-
-#~ msgid "Previous"
-#~ msgstr "上一首"
-
-#~ msgid "Next"
-#~ msgstr "下一首"
-
-#~ msgid "Visualization Mode"
-#~ msgstr "視覺化模式"
-
-#~ msgid "Analyzer Mode"
-#~ msgstr "分析器模式"
-
-#~ msgid "Scope Mode"
-#~ msgstr "範圍模式"
-
-#~ msgid "Voiceprint Mode"
-#~ msgstr "聲波紋模式"
-
-#~ msgid "WindowShade VU Mode"
-#~ msgstr "視窗陰影 VU 模式"
-
-#~ msgid "Refresh Rate"
-#~ msgstr "重新整理頻率"
-
-#~ msgid "Analyzer Falloff"
-#~ msgstr "分析器下降速度"
-
-#~ msgid "Peaks Falloff"
-#~ msgstr "波峰下降速度"
-
-#~ msgid "New Playlist"
-#~ msgstr "新增播放清單"
-
-#~ msgid "Select Next Playlist"
-#~ msgstr "選擇下個播放清單"
-
-#~ msgid "Select Previous Playlist"
-#~ msgstr "選擇上個播放清單"
-
-#~ msgid "Delete Playlist"
-#~ msgstr "選擇下個播放清單"
-
-#~ msgid "Load List"
-#~ msgstr "載入清單"
-
-#~ msgid "Loads a playlist file into the selected playlist."
-#~ msgstr "載入一個播放清單至所選清單中。"
-
-#~ msgid "Save List"
-#~ msgstr "儲存清單"
-
-#~ msgid "Saves the selected playlist."
-#~ msgstr "儲存所選播放清單"
-
-#~ msgid "Save Default List"
-#~ msgstr "儲存預設清單"
-
-#~ msgid "Saves the selected playlist to the default location."
-#~ msgstr "將所選播放清單存至預設位置。"
-
-#~ msgid "Refresh List"
-#~ msgstr "重新整理清單"
-
-#~ msgid "Refreshes metadata associated with a playlist entry."
-#~ msgstr "重新整理和清單項目相關聯的資訊"
-
-#~ msgid "List Manager"
-#~ msgstr "播放清單管理員"
-
-#~ msgid "Opens the playlist manager."
-#~ msgstr "開啟播放清單管理員。"
-
-#~ msgid "View"
-#~ msgstr "檢視"
-
-#~ msgid "Add Internet Address..."
-#~ msgstr "加入網路位址..."
-
-#~ msgid "Adds a remote track to the playlist."
-#~ msgstr "加入遠端音軌至播放清單。"
-
-#~ msgid "Add Files..."
-#~ msgstr "加入檔案..."
-
-#~ msgid "Search and Select"
-#~ msgstr "搜尋並選取"
-
-#~ msgid ""
-#~ "Searches the playlist and selects playlist entries based on specific "
-#~ "criteria."
-#~ msgstr "在播放清單中搜尋,並依指定的規則選取清單項目。"
-
-#~ msgid "Invert Selection"
-#~ msgstr "反向選取"
-
-#~ msgid "Inverts the selected and unselected entries."
-#~ msgstr "反向已選和未選的項目。"
-
-#~ msgid "Select All"
-#~ msgstr "全選"
-
-#~ msgid "Selects all of the playlist entries."
-#~ msgstr "選取全部清單項目。"
-
-#~ msgid "Select None"
-#~ msgstr "取消選取"
-
-#~ msgid "Deselects all of the playlist entries."
-#~ msgstr "取消全部清單項目的選取"
-
-#~ msgid "Remove All"
-#~ msgstr "全部移除"
-
-#~ msgid "Removes all entries from the playlist."
-#~ msgstr "移除全部的清單項目。"
-
-#~ msgid "Clear Queue"
-#~ msgstr "清除佇列"
+msgstr "顯示工作階段選項"
 
-#~ msgid "Clears the queue associated with this playlist."
-#~ msgstr "清除和此播放清單相關聯的佇列。"
+#~ msgid "Temporary Playlist"
+#~ msgstr "暫存播放清單"
 
-#~ msgid "Remove Unavailable Files"
-#~ msgstr "移除無法使用的檔案"
+#~ msgid "Untitled Playlist"
+#~ msgstr "未命名的播放清單"
 
-#~ msgid "Removes unavailable files from the playlist."
-#~ msgstr "移除清單中無法使用的檔案。"
-
-#~ msgid "Remove Duplicates"
-#~ msgstr "移除重複的項目"
-
-#~ msgid "By Title"
-#~ msgstr "依標題"
-
-#~ msgid "Removes duplicate entries from the playlist by title."
-#~ msgstr "依標題移除清單中重複的項目。"
-
-#~ msgid "By Filename"
-#~ msgstr "依檔名"
-
-#~ msgid "Removes duplicate entries from the playlist by filename."
-#~ msgstr "依檔名移除清單中重複的項目。"
-
-#~ msgid "By Path + Filename"
-#~ msgstr "依路徑 + 檔名"
-
-#~ msgid "Removes duplicate entries from the playlist by their full path."
-#~ msgstr "依完整路徑移除清單中重複的項目。"
-
-#~ msgid "Remove Unselected"
-#~ msgstr "移除未選取的"
-
-#~ msgid "Remove unselected entries from the playlist."
-#~ msgstr "移除清單中未選取的項目。"
-
-#~ msgid "Remove Selected"
-#~ msgstr "移除選取的"
-
-#~ msgid "Remove selected entries from the playlist."
-#~ msgstr "移除清單中選取的項目。"
-
-#~ msgid "Randomize List"
-#~ msgstr "隨機清單"
-
-#~ msgid "Randomizes the playlist."
-#~ msgstr "隨機排序播放清單。"
-
-#~ msgid "Reverse List"
-#~ msgstr "反轉清單"
-
-#~ msgid "Reverses the playlist."
-#~ msgstr "反轉播放清單。"
-
-#~ msgid "Sort List"
-#~ msgstr "排序清單"
-
-#~ msgid "Sorts the list by title."
-#~ msgstr "依標題排序清單。"
-
-#, fuzzy
-#~ msgid "By Album"
-#~ msgstr "專輯"
-
-#, fuzzy
-#~ msgid "Sorts the list by album."
-#~ msgstr "依標題排序清單。"
-
-#~ msgid "By Artist"
-#~ msgstr "依藝人"
-
-#~ msgid "Sorts the list by artist."
-#~ msgstr "依藝人排序清單。"
-
-#~ msgid "Sorts the list by filename."
-#~ msgstr "依檔名排序清單。"
-
-#~ msgid "Sorts the list by full pathname."
-#~ msgstr "依完整路徑排序清單。"
-
-#~ msgid "By Date"
-#~ msgstr "依日期"
-
-#~ msgid "Sorts the list by modification time."
-#~ msgstr "依修改時間排序清單。"
-
-#~ msgid "By Track Number"
-#~ msgstr "依音軌編號"
-
-#~ msgid "Sorts the list by track number."
-#~ msgstr "依音軌編號排序清單。"
-
-#~ msgid "By Playlist Entry"
-#~ msgstr "依清單項目"
-
-#~ msgid "Sorts the list by playlist entry."
-#~ msgstr "依清單項目排序清單。"
-
-#~ msgid "Sort Selected"
-#~ msgstr "排序選取的項目"
-
-#, fuzzy
-#~ msgid "File"
-#~ msgstr "火焰"
-
-#, fuzzy
-#~ msgid "Components"
-#~ msgstr "註解"
-
-#~ msgid "View Track Details"
-#~ msgstr "檢視音軌細節"
-
-#~ msgid "Play File"
-#~ msgstr "播放檔案"
-
-#~ msgid "Load and play a file"
-#~ msgstr "載入並播放檔案"
-
-#~ msgid "Play Location"
-#~ msgstr "播放位置"
-
-#~ msgid "Play media from the selected location"
-#~ msgstr "從選取的位置播放媒體"
-
-#, fuzzy
-#~ msgid "Plugin services"
-#~ msgstr "插件"
-
-#~ msgid "Preferences"
-#~ msgstr "偏好設定"
-
-#~ msgid "Open preferences window"
-#~ msgstr "開啟偏好設定視窗"
-
-#~ msgid "_Quit"
-#~ msgstr "結束 (_Q)"
-
-#~ msgid "Quit Audacious"
-#~ msgstr "結束 Audacious"
-
-#~ msgid "Set A-B"
-#~ msgstr "設定播放區段"
-
-#~ msgid "Clear A-B"
-#~ msgstr "清除播放區段"
-
-#~ msgid "Jump to Playlist Start"
-#~ msgstr "跳至播放清單開頭"
-
-#~ msgid "Jump to File"
-#~ msgstr "跳至檔案"
-
-#~ msgid "Queue Toggle"
-#~ msgstr "佇列切換"
-
-#~ msgid "Enables/disables the entry in the playlist's queue."
-#~ msgstr "啟用/停用清單佇列中的項目。"
-
-#~ msgid "Load"
-#~ msgstr "載入"
-
-#~ msgid "Import"
-#~ msgstr "匯入"
-
-#~ msgid "Save"
-#~ msgstr "儲存"
-
-#~ msgid "Delete"
-#~ msgstr "刪除"
-
-#~ msgid "Preset"
-#~ msgstr "設定組合"
-
-#~ msgid "Load preset"
-#~ msgstr "載入設定組合"
-
-#~ msgid "Auto-load preset"
-#~ msgstr "自動載入設定組合"
-
-#~ msgid "Load auto-load preset"
-#~ msgstr "載入自動設定組合"
-
-#~ msgid "Default"
-#~ msgstr "預設的設定組合"
-
-#~ msgid "Load default preset into equalizer"
-#~ msgstr "載入預設的設定組合至等化器"
-
-#~ msgid "Zero"
-#~ msgstr "零值"
-
-#~ msgid "Set equalizer preset levels to zero"
-#~ msgstr "將等化器設定組合設定為零值"
-
-#~ msgid "From file"
-#~ msgstr "從檔案"
-
-#~ msgid "Load preset from file"
-#~ msgstr "從檔案載入設定組合"
-
-#~ msgid "From WinAMP EQF file"
-#~ msgstr "從 WinAMP EQF 檔案"
-
-#~ msgid "Load preset from WinAMP EQF file"
-#~ msgstr "從 WinAMP EQF 檔案載入設定組合"
-
-#~ msgid "WinAMP Presets"
-#~ msgstr "WinAMP 設定組合"
-
-#~ msgid "Import WinAMP presets"
-#~ msgstr "匯入 WinAMP 設定組合"
-
-#~ msgid "Save preset"
-#~ msgstr "儲存設定組合"
-
-#~ msgid "Save auto-load preset"
-#~ msgstr "儲存自動載入設定組合"
-
-#~ msgid "Save default preset"
-#~ msgstr "存為預設的設定組合"
-
-#~ msgid "To file"
-#~ msgstr "至檔案"
-
-#~ msgid "Save preset to file"
-#~ msgstr "儲存設定組合至檔案"
-
-#~ msgid "To WinAMP EQF file"
-#~ msgstr "至 WinAMP EQF 檔案"
-
-#~ msgid "Save preset to WinAMP EQF file"
-#~ msgstr "儲存設定組合至 WinAMP EQF 檔案"
-
-#~ msgid "Delete preset"
-#~ msgstr "刪除設定組合"
-
-#~ msgid "Delete auto-load preset"
-#~ msgstr "刪除自動載入設定組合"
-
-#, fuzzy
-#~ msgid ""
-#~ "<span size=\"small\">This is the amount of time to prebuffer audio "
-#~ "streams by, in milliseconds.\n"
-#~ "Increase this value if you are experiencing audio skipping.\n"
-#~ "Please note however, that high values will result in Audacious performing "
-#~ "poorly.</span>"
-#~ msgstr ""
-#~ "<span size=\"small\">這是預先存入緩衝區的音訊串流時數,以百萬分之一秒為單"
-#~ "位。\n"
-#~ "若您發現音訊不連續,請增加這數值。\n"
-#~ "然而,請注意!過高的數值將會使 Audacious 效能變差。</span>"
-
-#~ msgid ""
-#~ "<b><big>Unable to load skin.</big></b>\n"
-#~ "\n"
-#~ "Check that skin at '%s' is usable and default skin is properly installed "
-#~ "at '%s'\n"
-#~ msgstr ""
-#~ "<b><big>無法載入面板。</big></b>\n"
-#~ "\n"
-#~ "請確認位於 '%s' 的面板是可用的,且預設面板被正確地安裝於 '%s'\n"
-
-#, fuzzy
-#~ msgid "Headless operation enabled\n"
-#~ msgstr "遠端作業 [尚在測試階段]"
-
-#~ msgid "Audacious core developers:"
-#~ msgstr "Audacious 主要開發人員:"
-
-#~ msgid "Audacious Equalizer"
-#~ msgstr "Audacious 等化器"
-
-#~ msgid "Play files"
-#~ msgstr "播放檔案"
-
-#~ msgid "Load files"
-#~ msgstr "載入檔案"
-
-#~ msgid "%s - Audacious"
-#~ msgstr "%s - Audacious"
-
-#~ msgid "VBR"
-#~ msgstr "VBR"
-
-#~ msgid "mono"
-#~ msgstr "單聲道"
-
-#, fuzzy
-#~ msgid "Show main player window"
-#~ msgstr "請選取主要播放器視窗的字型:"
-
-#, fuzzy
-#~ msgid "Ignore"
-#~ msgstr "ç„¡"
-
-#, fuzzy
-#~ msgid "Seek to: %d:%-2.2d/%d:%-2.2d (%d%%)"
-#~ msgstr "尋至:%d:%-2.2d/%d:%-2.2d (%d%%)"
-
-#, fuzzy
-#~ msgid "Disable 'Always On Top'"
-#~ msgstr "最上層顯示"
-
-#, fuzzy
-#~ msgid "Enable 'Always On Top'"
-#~ msgstr "最上層顯示"
-
-#, fuzzy
-#~ msgid "Visualization Menu"
-#~ msgstr "視覺化模式"
-
-#~ msgid ""
-#~ "<b><big>Couldn't open audio.</big></b>\n"
-#~ "\n"
-#~ "Please check that:\n"
-#~ "1. You have the correct output plugin selected.\n"
-#~ "2. No other programs is blocking the soundcard.\n"
-#~ "3. Your soundcard is configured properly.\n"
-#~ msgstr ""
-#~ "<b><big>無法開啟音訊。</big></b>\n"
-#~ "\n"
-#~ "請確認:\n"
-#~ "1. 您已選擇正確的輸出插件。\n"
-#~ "2. 沒有其他程式佔用音效卡。\n"
-#~ "3. 您的音效卡設定正確。\n"
-
-#~ msgid "Autoscroll Songname"
-#~ msgstr "自動捲動歌曲名稱"
-
-#~ msgid "Show Player"
-#~ msgstr "顯示播放器"
-
-#~ msgid "Show Playlist Editor"
-#~ msgstr "顯示播放清單編輯器"
-
-#~ msgid "Show Equalizer"
-#~ msgstr "顯示等化器"
-
-#~ msgid "Always on Top"
-#~ msgstr "最上層顯示"
-
-#~ msgid "Put on All Workspaces"
-#~ msgstr "置於所有工作區"
-
-#~ msgid "Roll up Player"
-#~ msgstr "捲起播放器"
-
-#~ msgid "Roll up Playlist Editor"
-#~ msgstr "捲起播放清單編輯器"
-
-#~ msgid "Roll up Equalizer"
-#~ msgstr "捲起等化器"
-
-#, fuzzy
-#~ msgid "Scale"
-#~ msgstr "儲存"
-
-#~ msgid "DoubleSize"
-#~ msgstr "雙倍大小"
-
-#~ msgid "Easy Move"
-#~ msgstr "隨意移動"
-
-#~ msgid "Analyzer"
-#~ msgstr "分析器模式"
-
-#~ msgid "Scope"
-#~ msgstr "範圍模式"
-
-#~ msgid "Voiceprint"
-#~ msgstr "聲波紋模式"
-
-#~ msgid "Off"
-#~ msgstr "關閉"
-
-#~ msgid "Normal"
-#~ msgstr "一般"
-
-#~ msgid "Fire"
-#~ msgstr "火焰"
-
-#~ msgid "Vertical Lines"
-#~ msgstr "åž‚ç›´ç·š"
-
-#~ msgid "Lines"
-#~ msgstr "ç·š"
-
-#~ msgid "Bars"
-#~ msgstr "長條"
-
-#~ msgid "Dot Scope"
-#~ msgstr "點狀範圍"
-
-#~ msgid "Line Scope"
-#~ msgstr "線狀範圍"
-
-#~ msgid "Solid Scope"
-#~ msgstr "密實範圍"
-
-#~ msgid "Ice"
-#~ msgstr "寒冰"
-
-#~ msgid "Smooth"
-#~ msgstr "平滑"
-
-#~ msgid "Full (~50 fps)"
-#~ msgstr "全速 (約 50 fps)"
-
-#~ msgid "Half (~25 fps)"
-#~ msgstr "半速 (約 25 fps)"
-
-#~ msgid "Quarter (~13 fps)"
-#~ msgstr "四分之一 (約 13 fps)"
-
-#~ msgid "Eighth (~6 fps)"
-#~ msgstr "八分之一 (約 6 fps)"
-
-#~ msgid "Slowest"
-#~ msgstr "最慢速"
-
-#~ msgid "Slow"
-#~ msgstr "慢速"
-
-#~ msgid "Medium"
-#~ msgstr "中等"
-
-#~ msgid "Fast"
-#~ msgstr "快速"
-
-#~ msgid "Fastest"
-#~ msgstr "最快速"
-
-#~ msgid "Time Elapsed"
-#~ msgstr "經過時間"
-
-#~ msgid "Time Remaining"
-#~ msgstr "剩餘時間"
-
-#, fuzzy
-#~ msgid "Plugin Services"
-#~ msgstr "插件"
-
-#~ msgid "Search entries in active playlist"
-#~ msgstr "在啟用的清單裡搜尋項目"
-
-#~ msgid ""
-#~ "Select entries in playlist by filling one or more fields. Fields use "
-#~ "regular expressions syntax, case-insensitive. If you don't know how "
-#~ "regular expressions work, simply insert a literal portion of what you're "
-#~ "searching for."
-#~ msgstr ""
-#~ "透過填寫一個或多個欄位來選取清單項目。欄位使用正規表示式語法且大小寫相異。"
-#~ "若您不曉得正規表示式如何運作,只要輸入您要搜尋的文字片段。"
-
-#, fuzzy
-#~ msgid "Title: "
-#~ msgstr "標題"
-
-#, fuzzy
-#~ msgid "Album: "
-#~ msgstr "專輯"
-
-#~ msgid "Artist: "
-#~ msgstr "藝人:"
-
-#~ msgid "Filename: "
-#~ msgstr "檔案名稱:"
-
-#~ msgid "Clear previous selection before searching"
-#~ msgstr "搜尋前先清除之前的選取"
-
-#~ msgid "Automatically toggle queue for matching entries"
-#~ msgstr "依符合的項目自動切換佇列"
-
-#~ msgid "Audacious Playlist Editor"
-#~ msgstr "Audacious 播放清單編輯器"
-
-#~ msgid "Appearance"
-#~ msgstr "外觀"
-
-#~ msgid "<b>_Fonts</b>"
-#~ msgstr "<b>å­—åž‹ (_F)</b>"
-
-#~ msgid "_Player:"
-#~ msgstr "播放器 (_P):"
-
-#~ msgid "Select main player window font:"
-#~ msgstr "請選取主要播放器視窗的字型:"
-
-#~ msgid "_Playlist:"
-#~ msgstr "播放清單 (_P):"
-
-#, fuzzy
-#~ msgid "Select playlist font:"
-#~ msgstr "請選取主要播放器視窗的字型:"
-
-#~ msgid "Use Bitmap fonts if available"
-#~ msgstr "使用點陣字 (如果可用)"
-
-#~ msgid ""
-#~ "Use bitmap fonts if they are available. Bitmap fonts do not support "
-#~ "Unicode strings."
-#~ msgstr "可用的話就使用點陣字。但點陣字不支援萬國碼字串。"
-
-#~ msgid "<b>_Miscellaneous</b>"
-#~ msgstr "<b>其他 (_M)</b>"
-
-#~ msgid "Show track numbers in playlist"
-#~ msgstr "顯示播放清單中的音軌編號"
-
-#~ msgid "Show separators in playlist"
-#~ msgstr "顯示播放清單中的分隔符號"
-
-#~ msgid "Show window manager decoration"
-#~ msgstr "顯示視窗管理員裝飾"
-
-#~ msgid "This enables the window manager to show decorations for windows."
-#~ msgstr "這會使得視窗管理員為視窗加上裝飾。"
-
-#~ msgid "Use XMMS-style file selector instead of the default selector"
-#~ msgstr "使用 XMMS 風格的檔案選取對話框而不使用預設的"
-
-#~ msgid ""
-#~ "This enables the XMMS/GTK1-style file selection dialogs. This selector is "
-#~ "provided by Audacious itself and is faster than the default GTK2 selector "
-#~ "(but sadly not as user-friendly)."
-#~ msgstr ""
-#~ "這會啟用 XMMS/GTK1 風格的檔案選取對話框。這個選取器由 Audacious 自身提供,"
-#~ "而且比預設的 GTK2 選取器還快速 (但可惜的是沒有那麼使用者友善)。"
-
-#~ msgid "On load"
-#~ msgstr "載入時"
-
-#~ msgid "Load metadata when adding the file to the playlist or opening it"
-#~ msgstr "當新增檔案到播放清單時或是開啟檔案時,載入歌曲資訊"
-
-#~ msgid "On display"
-#~ msgstr "顯示時"
-
-#, fuzzy
-#~ msgid ""
-#~ "Load metadata on demand when displaying the file in the playlist. You may "
-#~ "need to set \"Detect file formats on demand\" in Audio page for full "
-#~ "benefit."
-#~ msgstr "在播放清單裡顯示檔案時即從伺服程式載入相關歌曲資訊"
-
-#~ msgid "Color Adjustment"
-#~ msgstr "色差調整"
-
-#~ msgid ""
-#~ "Audacious allows you to alter the color balance of the skinned UI. The "
-#~ "sliders below will allow you to do this."
-#~ msgstr ""
-#~ "Audacious 允許您更改面板介面的色彩平衡。您可透過下列的滑桿進行調整。"
-
-#~ msgid "Blue"
-#~ msgstr "藍"
-
-#~ msgid "Green"
-#~ msgstr "綠"
-
-#~ msgid "Red"
-#~ msgstr "ç´…"
-
-#~ msgid "<b>_Skin</b>"
-#~ msgstr "<b>面板 (_S)</b>"
-
-#~ msgid "Refresh skin list"
-#~ msgstr "重新整理面板列表"
-
-#~ msgid "PREAMP"
-#~ msgstr "前置放大器"
-
-#~ msgid "60HZ"
-#~ msgstr "60HZ"
-
-#~ msgid "170HZ"
-#~ msgstr "170HZ"
-
-#~ msgid "310HZ"
-#~ msgstr "310HZ"
-
-#~ msgid "600HZ"
-#~ msgstr "600HZ"
-
-#~ msgid "1KHZ"
-#~ msgstr "1KHZ"
-
-#~ msgid "3KHZ"
-#~ msgstr "3KHZ"
-
-#~ msgid "6KHZ"
-#~ msgstr "6KHZ"
-
-#~ msgid "12KHZ"
-#~ msgstr "12KHZ"
-
-#~ msgid "14KHZ"
-#~ msgstr "14KHZ"
-
-#~ msgid "16KHZ"
-#~ msgstr "16KHZ"
-
-#~ msgid "Archived Winamp 2.x skin"
-#~ msgstr "已壓縮的 Winamp 2.x 面板"
-
-#~ msgid "Unarchived Winamp 2.x skin"
-#~ msgstr "解壓縮的 Winamp 2.x 面板"
-
-#~ msgid "Use custom cursors"
-#~ msgstr "使用自訂游標"
-
-#, fuzzy
-#~ msgid "Reload Plugins"
-#~ msgstr "插件"
-
-#~ msgid ""
-#~ "Sorry, threads isn't supported on your platform.\n"
-#~ "\n"
-#~ "If you're on a libc5 based linux system and installed Glib & GTK+ before "
-#~ "you\n"
-#~ "installed LinuxThreads you need to recompile Glib & GTK+.\n"
-#~ msgstr ""
-#~ "抱歉,您的平台並不支援執行緒。\n"
-#~ "\n"
-#~ "如果您使用基於 libc5 的 linux 系統且已安裝 Glib 與 GTK+。\n"
-#~ "在安裝 LinuxThreads 前,您必須重新編譯 Glib 與 GTK+。\n"
-
-#~ msgid "Error in Audacious."
-#~ msgstr "Audacious 發生錯誤。"
-
-#, fuzzy
-#~ msgid "Enable 6 dB hard limiter"
-#~ msgstr "啟用 6dB 重低音 + 限制"
-
-#, fuzzy
-#~ msgid "Select which Audacious session ID to use"
-#~ msgstr "請選擇 Audacious/BMP/XMMS 作業階段 (預設:0)"
-
-#, fuzzy
-#~ msgid "Disable 'Doublesize'"
-#~ msgstr "雙倍大小"
-
-#, fuzzy
-#~ msgid "Enable 'Doublesize'"
-#~ msgstr "雙倍大小"
-
-#~ msgid "<b>Presets</b>"
-#~ msgstr "<b>設定組合</b>"
-
-#~ msgid "File preset extension:"
-#~ msgstr "設定組合副檔名:"
-
-#~ msgid "Directory preset file:"
-#~ msgstr "目錄設定組合檔:"
-
-#~ msgid "localhost"
-#~ msgstr "本地主機"
-
-#~ msgid ""
-#~ "<b><big>Unable to create %s.</big></b>\n"
-#~ "\n"
-#~ "Could not open glade file (%s). Please check your installation.\n"
-#~ msgstr ""
-#~ "<b><big>無法建立 %s。</big></b>\n"
-#~ "\n"
-#~ "無法開啟 glade 檔 (%s)。請確認是否正確安裝。\n"
-
-#~ msgid ""
-#~ "TITLE\n"
-#~ "ARTIST - TITLE\n"
-#~ "ARTIST - ALBUM - TITLE\n"
-#~ "ARTIST - ALBUM - TRACK. TITLE\n"
-#~ "ARTIST [ ALBUM ] - TRACK. TITLE\n"
-#~ "ALBUM - TITLE\n"
-#~ "Custom"
-#~ msgstr ""
-#~ "標題\n"
-#~ "藝人 - 標題\n"
-#~ "藝人 - 專輯 - 標題\n"
-#~ "藝人 - 專輯 - 音軌編號. 標題\n"
-#~ "藝人 [ 專輯 ] - 音軌編號. 標題\n"
-#~ "專輯 - 標題\n"
-#~ "自訂"
-
-#~ msgid "Track Information Window"
-#~ msgstr "音軌資訊視窗"
-
-#~ msgid "Preferences Window"
-#~ msgstr "偏好設定視窗"
-
-#, fuzzy
-#~ msgid "<b>Artist:</b> %s"
-#~ msgstr "<i>藝人</i>"
-
-#, fuzzy
-#~ msgid "<b>Title:</b> %s"
-#~ msgstr "<i>標題</i>"
-
-#, fuzzy
-#~ msgid "<b>Album:</b> %s"
-#~ msgstr "<i>專輯</i>"
-
-#, fuzzy
-#~ msgid "Audacious last.fm radio tuner"
-#~ msgstr "Audacious 播放清單編輯器"
-
-#, fuzzy
-#~ msgid "<b>Artist:</b>"
-#~ msgstr "<i>藝人</i>"
-
-#, fuzzy
-#~ msgid "<b>Title:</b>"
-#~ msgstr "<i>標題</i>"
-
-#, fuzzy
-#~ msgid "<b>Album:</b>"
-#~ msgstr "<i>專輯</i>"
-
-#~ msgid "VOLUME: %d%%"
-#~ msgstr "音量:%d%%"
-
-#~ msgid "BALANCE: %d%% LEFT"
-#~ msgstr "平衡:%d%% 左"
-
-#~ msgid "BALANCE: CENTER"
-#~ msgstr "平衡:中央"
-
-#~ msgid "BALANCE: %d%% RIGHT"
-#~ msgstr "平衡:%d%% 右"
-
-#, fuzzy
-#~ msgid "Last.fm radio"
-#~ msgstr "播放位置"
-
-#, fuzzy
-#~ msgid "Play Last.fm radio"
-#~ msgstr "播放位置"
-
-#~ msgid ""
-#~ "<b><big>No playable CD found.</big></b>\n"
-#~ "\n"
-#~ "No CD inserted, or inserted CD is not an audio CD.\n"
-#~ msgstr ""
-#~ "<b><big>找不到可供播放的 CD。</big></b>\n"
-#~ "\n"
-#~ "可能是沒放入 CD,或放入的不是音訊 CD。\n"
-
-#~ msgid "Add CD..."
-#~ msgstr "加入 CD..."
-
-#~ msgid "Adds a CD to the playlist."
-#~ msgstr "加入 CD 至播放清單。"
-
-#~ msgid "Play CD"
-#~ msgstr "播放 CD"
-
-#~ msgid "Performer/Artist"
-#~ msgstr "演出者/藝人"
-
-#~ msgid "File name"
-#~ msgstr "檔案名稱"
-
-#~ msgid "File path"
-#~ msgstr "檔案路徑"
-
-#~ msgid "File extension"
-#~ msgstr "副檔名"
-
-#~ msgid "Track name"
-#~ msgstr "音軌名稱"
-
-#~ msgid "Track number"
-#~ msgstr "音軌編號"
-
-#~ msgid "%{n:...%}: Display \"...\" only if element %n is present"
-#~ msgstr "%{n:...%}:只在表示元素 %n 時顯示 \"...\""
-
-#~ msgid ""
-#~ "Sorry, your GTK+ version (%d.%d.%d) does not work with Audacious.\n"
-#~ "Please use GTK+ %s or newer.\n"
-#~ msgstr ""
-#~ "抱歉,您的 GTK+ 版本 (%d.%d.%d) 與 Audacious 不相容。\n"
-#~ "請使用 GTK+ %s 或更新的版本。\n"
-
-#~ msgid "OPTIONS MENU"
-#~ msgstr "選項選單"
-
-#~ msgid "DISABLE ALWAYS ON TOP"
-#~ msgstr "停用最上層顯示"
-
-#~ msgid "ENABLE ALWAYS ON TOP"
-#~ msgstr "啟用最上層顯示"
-
-#~ msgid "FILE INFO BOX"
-#~ msgstr "檔案資訊方塊"
-
-#~ msgid "DISABLE DOUBLESIZE"
-#~ msgstr "停用雙倍大小"
-
-#~ msgid "ENABLE DOUBLESIZE"
-#~ msgstr "啟用雙倍大小"
-
-#~ msgid "VISUALIZATION MENU"
-#~ msgstr "視覺化選單"
-
-#~ msgid "Track name: "
-#~ msgstr "音軌名稱:"
-
-#~ msgid ""
-#~ "<b><big>Unable to play files.</big></b>\n"
-#~ "\n"
-#~ "The following files could not be played. Please check that:\n"
-#~ "1. they are accessible.\n"
-#~ "2. you have enabled the media plugins required."
-#~ msgstr ""
-#~ "<b><big>無法播放檔案。</big></b>\n"
-#~ "\n"
-#~ "無法播放下列檔案。請確認:\n"
-#~ "1. 它們可被存取。\n"
-#~ "2. 您已啟用所需的多媒體插件。"
-
-#~ msgid "Show more _details"
-#~ msgstr "顯示更多細節 (_d)"
-
-#~ msgid ""
-#~ "\n"
-#~ "Received SIGSEGV\n"
-#~ "\n"
-#~ "This could be a bug in Audacious. If you don't know why this happened, "
-#~ "file a bug at http://bugs-meta.atheme.org/\n"
-#~ "\n"
-#~ msgstr ""
-#~ "\n"
-#~ "收到 SIGSEGV\n"
-#~ "\n"
-#~ "這可能是 Audacious 的一個錯誤。如果您不知道為何這會發生,請回報錯誤到 "
-#~ "http://bugs-meta.atheme.org/\n"
-#~ "\n"
-
-#~ msgid ""
-#~ "Enables playlist transparency. This is not recommended for slower "
-#~ "machines as it requires some CPU time to create and cache the pixmaps "
-#~ "used for the transparency."
-#~ msgstr ""
-#~ "啟用透明化播放清單。這並不建議在較慢的機器上使用,因為它需要一些 CPU 時間"
-#~ "來建立並快取透明化要用的點陣圖。"
-
-#~ msgid "Enable playlist transparency"
-#~ msgstr "啟用播放清單透明化"
-
-#~ msgid "%s: option `%s' is ambiguous\n"
-#~ msgstr "%s:選項 `%s' 是模稜兩可的\n"
-
-#~ msgid "%s: option `--%s' doesn't allow an argument\n"
-#~ msgstr "%s:選項 `--%s' 不允許一個引數\n"
-
-#~ msgid "%s: option `%c%s' doesn't allow an argument\n"
-#~ msgstr "%s:選項 `%c%s' 不允許一個引數\n"
-
-#~ msgid "%s: option `%s' requires an argument\n"
-#~ msgstr "%s:選項 `%s' 需要一個引數\n"
-
-#~ msgid "%s: unrecognized option `%c%s'\n"
-#~ msgstr "%s:無法辨識的選項 `%c%s'\n"
-
-#~ msgid "%s: illegal option -- %c\n"
-#~ msgstr "%s:不符規則的選項 -- %c\n"
-
-#~ msgid "%s: invalid option -- %c\n"
-#~ msgstr "%s:無效的選項 -- %c\n"
-
-#~ msgid "%s: option requires an argument -- %c\n"
-#~ msgstr "%s:選項需要一個引數 -- %c\n"
-
-#~ msgid "%s: option `-W %s' is ambiguous\n"
-#~ msgstr "%s:選項 `-W %s' 是模稜兩可的\n"
-
-#~ msgid "%s: option `-W %s' doesn't allow an argument\n"
-#~ msgstr "%s:選項 `-W %s' 不允許一個引數\n"
-
-#~ msgid ""
-#~ "Usage: audacious [options] [files] ...\n"
-#~ "\n"
-#~ "Options:\n"
-#~ "--------\n"
-#~ msgstr ""
-#~ "用法:audacious [選項] [檔案] ...\n"
-#~ "\n"
-#~ "選項:\n"
-#~ "--------\n"
-
-#~ msgid "Display this text and exit"
-#~ msgstr "顯示這段文字後結束"
-
-#~ msgid "Activate Audacious"
-#~ msgstr "å–šèµ· Audacious"
-
-#~ msgid "Previous session ID"
-#~ msgstr "前一個作業階段 ID"
-
-#~ msgid "Disable error/warning interception (logging)"
-#~ msgstr "停用錯誤/警告訊息擷取 (紀錄)"
-
-#~ msgid "Print version number and exit\n"
-#~ msgstr "印出版本編號後結束\n"
-
-#~ msgid "Add/Open Files dialog"
-#~ msgstr "加入/開啟檔案對話框"
-
-#~ msgid "Close Dialog on Add"
-#~ msgstr "加入後關閉對話框"
-
-#~ msgid "Deselect All"
-#~ msgstr "取消全選"
-
-#~ msgid "Track Information Popup"
-#~ msgstr "音軌資訊彈出訊息"
-
-#~ msgid "<i>Genre</i>"
-#~ msgstr "<i>樂曲種類</i>"
-
-#~ msgid "<i>Year</i>"
-#~ msgstr "<i>年份</i>"
-
-#~ msgid "<i>Track Number</i>"
-#~ msgstr "<i>音軌編號</i>"
-
-#~ msgid "<i>Track Length</i>"
-#~ msgstr "<i>音軌長度</i>"
-
-#~ msgid "label65"
-#~ msgstr "label65"
-
-#~ msgid "label76"
-#~ msgstr "label76"
-
-#~ msgid "/View Track Details"
-#~ msgstr "/檢視音軌細節"
-
-#~ msgid "/Visualization Mode/Analyzer"
-#~ msgstr "/視覺化模式/分析器"
-
-#~ msgid "/Visualization Mode/Scope"
-#~ msgstr "/視覺化模式/範圍"
-
-#~ msgid "/Visualization Mode/Voiceprint"
-#~ msgstr "/視覺化模式/聲波紋"
-
-#~ msgid "/Visualization Mode/Off"
-#~ msgstr "/視覺化模式/關閉"
-
-#~ msgid "/Analyzer Mode/Normal"
-#~ msgstr "/分析器模式/一般"
-
-#~ msgid "/Analyzer Mode/Lines"
-#~ msgstr "/分析器模式/線狀"
-
-#~ msgid "/Analyzer Mode/Bars"
-#~ msgstr "/分析器模式/長條"
-
-#~ msgid "/Analyzer Mode/Peaks"
-#~ msgstr "/分析器模式/波峰"
-
-#~ msgid "/Voiceprint mode/Normal"
-#~ msgstr "/分析器模式/一般"
-
-#~ msgid "/Voiceprint mode/Fire"
-#~ msgstr "/分析器模式/火焰"
-
-#~ msgid "/Voiceprint mode/Ice"
-#~ msgstr "/分析器模式/冰柱"
-
-#~ msgid "/WindowShade VU Mode/Normal"
-#~ msgstr "/視窗陰影 VU 模式/一般"
-
-#~ msgid "/WindowShade VU Mode/Smooth"
-#~ msgstr "/視窗陰影 VU 模式/平滑"
-
-#~ msgid "/Analyzer Falloff/Slowest"
-#~ msgstr "/分析器下降速度/最慢"
-
-#~ msgid "/Analyzer Falloff/Slow"
-#~ msgstr "/分析器下降速度/慢"
-
-#~ msgid "/Analyzer Falloff/Medium"
-#~ msgstr "/分析器下降速度/中等"
-
-#~ msgid "/Analyzer Falloff/Fast"
-#~ msgstr "/分析器下降速度/快"
-
-#~ msgid "/Analyzer Falloff/Fastest"
-#~ msgstr "/分析器下降速度/最快"
-
-#~ msgid "/Peaks Falloff/Slowest"
-#~ msgstr "/波峰下降速度/最慢"
-
-#~ msgid "/Peaks Falloff/Slow"
-#~ msgstr "/波峰下降速度/慢"
-
-#~ msgid "/Peaks Falloff/Medium"
-#~ msgstr "/波峰下降速度/中等"
-
-#~ msgid "/Peaks Falloff/Fast"
-#~ msgstr "/波峰下降速度/快"
-
-#~ msgid "/Peaks Falloff/Fastest"
-#~ msgstr "/波峰下降速度/最快"
-
-#~ msgid "/Pause"
-#~ msgstr "/暫停"
-
-#~ msgid "/-"
-#~ msgstr "/-"
-
-#~ msgid "/Jump to Time"
-#~ msgstr "/跳至時刻"
-
-#~ msgid "/About Audacious"
-#~ msgstr "/關於 Audacious"
-
-#~ msgid "/Files..."
-#~ msgstr "/檔案..."
-
-#~ msgid "/Internet location..."
-#~ msgstr "/網路位置..."
-
-#~ msgid "New List"
-#~ msgstr "新增清單"
-
-#~ msgid "Creates a new playlist."
-#~ msgstr "建立一個新的播放清單。"
-
-#~ msgid "Displays track information."
-#~ msgstr "顯示音軌資訊。"
-
-#~ msgid "Georgian: "
-#~ msgstr "喬治亞語:"
-
-#~ msgid "/Load"
-#~ msgstr "/載入"
-
-#~ msgid "/Load/Preset"
-#~ msgstr "/載入/設定組合"
-
-#~ msgid "/Load/Auto-load preset"
-#~ msgstr "/載入/自動載入設定組合"
-
-#~ msgid "/Load/Default"
-#~ msgstr "/載入/預設值"
-
-#~ msgid "/Load/Zero"
-#~ msgstr "/載入/零"
-
-#~ msgid "/Load/From file"
-#~ msgstr "/載入/從檔案"
-
-#~ msgid "/Load/From WinAMP EQF file"
-#~ msgstr "/載入/從 WinAMP EQF 檔案"
-
-#~ msgid "/Import"
-#~ msgstr "/匯入"
-
-#~ msgid "/Import/WinAMP Presets"
-#~ msgstr "/匯入/WinAMP 設定組合"
-
-#~ msgid "/Save"
-#~ msgstr "/儲存"
-
-#~ msgid "/Save/Preset"
-#~ msgstr "/儲存/設定組合"
-
-#~ msgid "/Save/Auto-load preset"
-#~ msgstr "/儲存/自動載入設定組合"
-
-#~ msgid "/Save/Default"
-#~ msgstr "/儲存/預設值"
-
-#~ msgid "/Save/To file"
-#~ msgstr "/儲存/至檔案"
-
-#~ msgid "/Save/To WinAMP EQF file"
-#~ msgstr "/儲存/為 WinAMP E.QF 檔案"
-
-#~ msgid "/Delete"
-#~ msgstr "/刪除"
-
-#~ msgid "/Delete/Preset"
-#~ msgstr "/刪除/設定組合"
-
-#~ msgid "/Delete/Auto-load preset"
-#~ msgstr "/刪除/自動載入設定組合"
-
-#~ msgid "Load auto-preset"
-#~ msgstr "載入自動設定組合"
-
-#~ msgid "Load equalizer preset"
-#~ msgstr "載入等化器設定組合"
-
-#~ msgid "Save auto-preset"
-#~ msgstr "儲存自動設定組合"
-
-#~ msgid "Save equalizer preset"
-#~ msgstr "儲存等化器設定組合"
-
-#~ msgid "Delete auto-preset"
-#~ msgstr "刪除自動設定組合"
-
-#, fuzzy
-#~ msgid "/Remove Duplicates/By Title"
-#~ msgstr "/排序清單/依標題"
-
-#, fuzzy
-#~ msgid ""
-#~ "/Remove Duplicates/By Filename/Load List/Update View/Select All/Sort List/"
-#~ "By Date/Sort Selection/By Title"
-#~ msgstr ""
-#~ "/排序清單/依檔案名稱/載入清單/更新檢視/選擇全部/排序清單/依日期/排序選擇"
-#~ "區/依標題"
-
-#, fuzzy
-#~ msgid ""
-#~ "/Sort Selection/By Artist/Sort Selection/By Filename/Sort Selection/By "
-#~ "Path + Filename/Sort Selection/By Date"
-#~ msgstr ""
-#~ "/排序選擇區/依標題/排序選擇區/依檔案名稱/排序選擇區/依路徑 + 檔案名稱/排序"
-#~ "選擇區/依日期"
-
-#, fuzzy
-#~ msgid "/Sort Selection/By Track Number"
-#~ msgstr "/排序選擇區/依日期"
-
-#, fuzzy
-#~ msgid "/Sort Selection/By Playlist Entry"
-#~ msgstr "/排序選擇區/依標題"
-
-#, fuzzy
-#~ msgid ""
-#~ "<b>_Miscillaneous UI Features</b>Load metadata (tag information) from "
-#~ "music files.Load metadata when adding the file to the playlist or opening "
-#~ "itShow information about titlestring formatWhen finished playing a song, "
-#~ "don't automatically advance to the next."
-#~ msgstr ""
-#~ "<b>雜項(_M)</b>從音樂檔案載入中繼資料(標籤資訊)當加入檔案到播放清單或開啟"
-#~ "它時載入中繼資料顯示有關標題字串格式的資訊當播放完一首歌曲,不要自動進入下"
-#~ "一首。"
-
-#, fuzzy
-#~ msgid "About AudioCompressOk"
-#~ msgstr "關於 MPEG 音效外掛程式確定"
-
-#, fuzzy
-#~ msgid "About Extra Stereo Plugin"
-#~ msgstr "關於 ESounD 外掛程式"
-
-#, fuzzy
-#~ msgid "Effect intensity:"
-#~ msgstr "效果外掛程式清單(_E):"
-
-#, fuzzy
-#~ msgid "About LIRC Audacious Plugin"
-#~ msgstr "關於 ESounD 外掛程式"
-
-#, fuzzy
-#~ msgid "LIRC Plugin "
-#~ msgstr "外掛程式"
-
-#, fuzzy
-#~ msgid "LIRC PluginUsername:Password:"
-#~ msgstr "外掛程式使用者名稱:密碼:"
-
-#, fuzzy
-#~ msgid "About Scrobbler Plugin"
-#~ msgstr "關於 ESounD 外掛程式"
-
-#, fuzzy
-#~ msgid "Scrobbler Plugin"
-#~ msgstr "外掛程式"
-
-#, fuzzy
-#~ msgid "Commands"
-#~ msgstr "註解"
-
-#, fuzzy
-#~ msgid "Command:"
-#~ msgstr "註解:"
-
-#, fuzzy
-#~ msgid "About "
-#~ msgstr "關於 BMP"
-
-#, fuzzy
-#~ msgid "AMIDI-Plug - warning"
-#~ msgstr "MPEG 音效外掛程式組態"
-
-#, fuzzy
-#~ msgid "AMIDI-Plug - select file"
-#~ msgstr "MPEG 音效外掛程式組態"
-
-#, fuzzy
-#~ msgid "AMIDI-Plug - configurationName:"
-#~ msgstr "MPEG 音效外掛程式組態名稱:"
-
-#, fuzzy
-#~ msgid " MIDI Info "
-#~ msgstr "CD 資訊"
-
-#, fuzzy
-#~ msgid "Length (msec):"
-#~ msgstr "長度:"
-
-#, fuzzy
-#~ msgid ""
-#~ "Num of Tracks:CD Audio PluginCD Audio Track %02u(unknown)Drive %dFailed "
-#~ "to open device %s\n"
-#~ "Error: %s\n"
-#~ "\n"
-#~ "Failed to read \"Table of Contents\"\n"
-#~ "Maybe no disc in the drive?\n"
-#~ "\n"
-#~ "Device %s OK.\n"
-#~ "Disc has %d tracks (%d data tracks)\n"
-#~ "Total length: %d:%d\n"
-#~ "Digital audio extraction not tested as the disc has no audio tracks\n"
-#~ "Digital audio extraction test: OK\n"
-#~ "\n"
-#~ "Digital audio extraction test failed: %s\n"
-#~ "\n"
-#~ "Failed to check directory %s\n"
-#~ "Error: %sError: %s exist, but is not a directoryDirectory %s OK.Device:"
-#~ "_Device:Dir_ectory:Play mode:AnalogDigital audio extractionVolume control:"
-#~ "No mixerCDROM driveOSS mixerCheck drive...Remove driveCD Audio Player "
-#~ "ConfigurationAdd driveDeviceCDDB:Use CDDBGet server listShow network "
-#~ "windowCDDB server:CD Index:Use CD IndexCD Index server:Override generic "
-#~ "titlesName format:CD Info"
-#~ msgstr ""
-#~ "跳至音軌CD 音效外掛程式CD 音軌 %02u(未知的)磁碟 %d開啟裝置 %s 失敗\n"
-#~ "錯誤: %s\n"
-#~ "\n"
-#~ "讀取“目錄”時失敗\n"
-#~ "也許磁碟中沒有光碟片?\n"
-#~ "\n"
-#~ "裝置 %s OK。\n"
-#~ "光碟有 %d 個音軌 (%d 個資料段軌)\n"
-#~ "總長度: %d:%d\n"
-#~ "數位音效播放尚未測試或光碟中沒有音軌\n"
-#~ "數位音效播放測試: OK\n"
-#~ "\n"
-#~ "數位音效播放測試失敗: %s\n"
-#~ "\n"
-#~ "檢查目錄 %s 失敗\n"
-#~ "錯誤: %s錯誤: %s 存在,但不是目錄目錄 %s OK。裝置:裝置(_D):目錄(_E):播放模"
-#~ "式:類比數位音效播放音量控制:無混音程式CDROMOSS 混音程式檢查磁碟...移除磁碟"
-#~ "CD 音樂播放器組態加入磁碟裝置CDDB:使用 CDDB取得伺服器清單顯示網路視窗CDDB "
-#~ "伺服器:CD 索引:使用 CD 索引CD 索引伺服器:覆蓋原始標題名稱格式:CD 資訊"
-
-#, fuzzy
-#~ msgid "Japanese (EUC-JP)"
-#~ msgstr "日語:"
-
-#, fuzzy
-#~ msgid "Unicode (UTF-8)"
-#~ msgstr "  (無效的 UTF-8)"
-
-#, fuzzy
-#~ msgid ""
-#~ "Korean (UHC)Select the directory where you want to store the MPEG streams:"
-#~ msgstr "韓語:選擇您想用來儲存 MPEG 串流的目錄:"
-
-#, fuzzy
-#~ msgid "Flac ConfigurationReplayGain"
-#~ msgstr "CD 音樂播放器組態播放增益"
-
-#, fuzzy
-#~ msgid "Resolution"
-#~ msgstr "解析度:"
-
-#, fuzzy
-#~ msgid "Without ReplayGain"
-#~ msgstr "播放增益"
-
-#, fuzzy
-#~ msgid ""
-#~ "16 bpsBuffering:Buffer size (kb):Pre-buffer (percent):Save stream to disk:"
-#~ "Save stream to diskPath:BrowseSHOUT/Icecast:Enable Icecast Metadata UDP "
-#~ "ChannelStreaming"
-#~ msgstr ""
-#~ "16 位元緩衝:緩衝區大小(kb):預先緩衝(百分比):將串流儲存到磁碟:將串流儲存到"
-#~ "磁碟路徑:瀏覽SHOUT/Icecast:啟用 Icecast 中繼資料心 UDP 頻道串流"
-
-#, fuzzy
-#~ msgid "About Flac PluginBluesClassic RockCountryDance"
-#~ msgstr "關於 ESounD 外掛程式藍調古典搖滾鄉村音樂舞曲"
-
-# appropriate enough in meaning. Untranslated here. -- Abel
-#~ msgid "Hip-HopJazzMetalNew Age"
-#~ msgstr "Hip-Hop爵士樂金屬新世紀音樂(New Age)"
-
-#~ msgid "OldiesOtherPopR&B"
-#~ msgstr "懷舊音樂其它流行曲節奏藍調(R&B)"
-
-#~ msgid "PranksSoundtrackEuro-TechnoAmbientTrip-HopVocal"
-#~ msgstr ""
-#~ "惡作劇電影原聲大碟歐陸電子舞曲(Euro-Techno)環境音樂(Ambient)Trip-Hop聲樂"
-
-#~ msgid ""
-#~ "Jazz+FunkFusionTranceClassicalInstrumentalAcidHouseGameSound "
-#~ "ClipGospelNoise"
-#~ msgstr ""
-#~ "爵士+放客(Jazz+Funk)融合爵士樂(Fusion)迷幻電子(Trance)古典音樂樂器演奏迷幻"
-#~ "音樂(Acid)House遊戲音樂音樂選輯福音音樂噪音音樂"
-
-#~ msgid "BassSoulPunkSpaceMeditativeInstrumental PopInstrumental Rock"
-#~ msgstr "貝斯靈魂樂(Soul)龐克音樂(Punk)太空搖滾冥想音樂流行樂演奏搖滾樂演奏"
-
-#~ msgid "EthnicGothicDarkwaveTechno-IndustrialElectronicPop-FolkEurodance"
-#~ msgstr ""
-#~ "少數民族音樂歌德搖滾(Gothic)黑潮音樂(Darkwave)電子工業搖滾電子音樂流行民歌"
-#~ "歐陸舞曲(Eurodance)"
-
-#~ msgid ""
-#~ "CultGangsta RapTop 40Christian RapPop/FunkJungleNative AmericanCabaretNew "
-#~ "WavePsychedelicRaveShowtunesTrailerLo-FiTribalAcid PunkAcid JazzPolka"
-#~ msgstr ""
-#~ "偶像崇拜音樂(Cult)幫派饒舌樂(Gangsta Rap)流行歌曲排行榜頭 40 位基督饒舌樂"
-#~ "流行樂/放客叢林音樂(Jungle)美國本土音樂夜總會音樂(Cabaret)新浪潮音樂(New "
-#~ "Wave)迷幻音樂銳舞音樂(Rave)歌舞劇音樂(Showtunes)電影預告片音樂低傳真(Lo-"
-#~ "Fi)部落音樂迷幻龐克(Acid Punk)迷幻爵士(Acid Jazz)波爾卡舞曲(Polka)"
-
-#~ msgid "Rock & RollHard RockFolkFolk/RockNational FolkSwing"
-#~ msgstr "搖滾樂硬式搖滾(Hard Rock)民謠民謠搖滾國家民謠搖擺樂(Swing)"
-
-#
-# Many Chinese Jazz Web site mentioned this word
-# I think is ok to use "比咆勃" -- Woodman
-#
-#, fuzzy
-#~ msgid ""
-#~ "BebobLatinRevivalCelticBluegrassAvantgardeGothic RockProgressive "
-#~ "RockPsychedelic RockSymphonic Rock"
-#~ msgstr ""
-#~ "比咆勃爵士(Bebop)拉丁音樂復興音樂克爾特音樂(Celtic)草根藍調(Bluegrass)前衛"
-#~ "爵士(Avantgarde)歌德搖滾(Gothic Rock)前衛搖滾(Progressive Rock)迷幻搖滾交"
-#~ "響搖滾"
-
-# Distinguish this from "Soft Rock" -- Abel
-#~ msgid "Slow RockBig BandChorusEasy ListeningAcoustic"
-#~ msgstr "慢搖滾(Slow Rock)大型樂隊合唱輕音樂原音音樂(Acoustic)"
-
-# better -- Abel
-#~ msgid ""
-#~ "HumourSpeechChansonOperaChamber MusicSonataSymphonyBooty BassPrimusPorn "
-#~ "GrooveSatireSlow Jam"
-#~ msgstr ""
-#~ "詼諧樂演說法國香頌歌劇室樂演奏奏鳴曲交響曲Booty BassPrimus情色音樂諷刺曲"
-#~ "Slow Jam"
-
-#~ msgid "ClubTangoSambaFolklore"
-#~ msgstr "俱樂部音樂探戈森巴民俗音樂"
-
-# is much better. -- Abel
-#~ msgid "BalladPower BalladRhythmic Soul"
-#~ msgstr "情歌強力情歌(Power Ballad)節奏靈魂樂"
-
-#~ msgid "FreestyleDuetPunk RockDrum Solo"
-#~ msgstr "自由形式音樂二重奏龐克搖滾(Punk Rock)鼓手獨奏"
-
-#~ msgid "A CappellaEuro-HouseDance HallGoa"
-#~ msgstr "阿卡貝拉(A Cappella)Euro-House舞廳音樂Goa"
-
-#~ msgid "Drum & BassClub-HouseHardcoreTerror"
-#~ msgstr "鼓及貝斯Club-House硬蕊(Hardcore)驚悚音樂"
-
-#~ msgid "IndieBritPopNegerpunkPolsk Punk"
-#~ msgstr "獨立製作唱片(Indie)英式搖滾NegerpunkPolsk Punk"
-
-# so far -- Abel
-#~ msgid ""
-#~ "Christian Gangsta RapHeavy MetalBlack MetalCrossoverContemporary "
-#~ "ChristianChristian RockMerengueSalsaThrash MetalAnimeJPopSynthpop"
-#~ msgstr ""
-#~ "Christian Gangsta Rap重金屬(Heavy Metal)黑金屬(Black Metal)跨界音樂"
-#~ "(Crossover)現代基督教主題音樂基督搖滾美倫格舞曲(Merengue)騷沙舞曲(Salsa)鞭"
-#~ "擊金屬(Thrash Metal)動漫畫(Anime)日本流行曲Synthpop"
-
-#~ msgid "Samplerate: %d Hz"
-#~ msgstr "取樣率:"
-
-#, fuzzy
-#~ msgid ""
-#~ "Samples: %llu\n"
-#~ "Length: %d:%.2d"
-#~ msgstr ""
-#~ "\n"
-#~ "總長度: %d:%d\n"
-
-#, fuzzy
-#~ msgid "Filesize: %ld B"
-#~ msgstr "檔案大小:"
-
-#, fuzzy
-#~ msgid "Tag:Title:Album:Comment:Date:Track number:Genre:"
-#~ msgstr "探戈標題:專輯:註解:日期:音軌號碼:樂曲類型:"
-
-#, fuzzy
-#~ msgid "Remove Tag"
-#~ msgstr "/移除全部"
-
-#, fuzzy
-#~ msgid "FLAC Info:"
-#~ msgstr "CD 資訊"
-
-#, fuzzy
-#~ msgid ""
-#~ "File Info - %sErrorLOOKING UP %sCouldn't look up host %sCONNECTING TO %s:"
-#~ "%dCouldn't connect to host %sCONNECTED: WAITING FOR REPLYCouldn't connect "
-#~ "to host %s\n"
-#~ "Server reported: %sPRE-BUFFERING: %dKB/%dKB"
-#~ msgstr ""
-#~ "檔案資訊錯誤尋找 %s找不到主機 %s連線到 %s:%d無法連線到主機 %s已連線:等待"
-#~ "回應無法連線到主機 %s\n"
-#~ "伺服器回報: %s預先緩衝: %dKB/%dKB"
-
-#, fuzzy
-#~ msgid "FLAC Audio Plugin"
-#~ msgstr "CD 音效外掛程式"
-
-#, fuzzy
-#~ msgid "ModPlug Configuration16 bit8 bit"
-#~ msgstr "MPEG 音效外掛程式組態16 位元8 位元"
-
-#, fuzzy
-#~ msgid "ChannelsStereo"
-#~ msgstr "聲道:立體聲"
-
-#, fuzzy
-#~ msgid "Resampling"
-#~ msgstr "串流"
-
-#, fuzzy
-#~ msgid "Fast Playlist Info"
-#~ msgstr "載入播放清單"
-
-#, fuzzy
-#~ msgid "Reverb"
-#~ msgstr "伺服器"
-
-#, fuzzy
-#~ msgid "MOD Info"
-#~ msgstr "CD 資訊"
-
-#, fuzzy
-#~ msgid ""
-#~ "About ModplugMPEG Audio Plugin ConfigurationResolution:Channels:Stereo "
-#~ "(if available)MonoDown sample:1:1 (44 kHz)1:2 (22 kHz)1:4 (11 kHz)"
-#~ "DecoderID3 Tags:Disable ID3V2 tagsID3 format:Joint stereoDual "
-#~ "channelSingle channel%d KBit/s%ld HzNone50/15 msCCIT J.17NoYes MPEG Info "
-#~ "MPEG Level:"
-#~ msgstr ""
-#~ "關於 ESounD 外掛程式MPEG 音效外掛程式組態解析度:聲道:立體聲(如果可用)單聲"
-#~ "道降低取樣:1:1 (44 kHz)1:2 (22 kHz)1:4 (11 kHz)解碼器ID3 標籤:停用 ID3V2 "
-#~ "標籤ID3 格式:聯合立體聲雙聲道單聲道%d KBit/s%ld Hz無50/15 msCCIT J.17否是"
-#~ "MPEG 資訊MPEG 等級:"
-
-# No good translation of bit rate can be found. -- Abel
-#~ msgid "Bit rate:Sample rate:File size:"
-#~ msgstr "位元率:取樣率:檔案大小:"
-
-#~ msgid ""
-#~ "Mode:Error Protection:Copyright:Original:Emphasis: ID3 Tag Year:N/A%s%lu "
-#~ "Bytes"
-#~ msgstr "解碼器:錯誤防護:版權:原始:增幅: ID3 標籤 年份:N/A%s%lu 位元組"
-
-#, fuzzy
-#~ msgid "Couldn't connect to host %s:%d"
-#~ msgstr "無法連線到主機 %s"
-
-#, fuzzy
-#~ msgid ""
-#~ "PRE-BUFFERING: %zuKB/%zuKBAlternRockAbout MPEG Audio PluginMPEG Audio "
-#~ "Plugin"
-#~ msgstr ""
-#~ "預先緩衝: %dKB/%dKBAlternRock關於 MPEG 音效外掛程式MPEG 音效外掛程式"
-
-#, fuzzy
-#~ msgid "TiMidity Configuration"
-#~ msgstr "MPEG 音效外掛程式組態"
-
-#, fuzzy
-#~ msgid "22000 Hz"
-#~ msgstr "1:2 (22 kHz)"
-
-#, fuzzy
-#~ msgid "44100 Hz"
-#~ msgstr "1:1 (44 kHz)"
-
-#, fuzzy
-#~ msgid "Sample Width"
-#~ msgstr "取樣率:"
-
-#, fuzzy
-#~ msgid "TiMidity Configuration File"
-#~ msgstr "MPEG 音效外掛程式組態"
-
-#, fuzzy
-#~ msgid "TiMidity Plugin %s"
-#~ msgstr "輸入外掛程式: %s"
-
-#, fuzzy
-#~ msgid ""
-#~ "Couldn't load MIDI fileSelect the directory where you want to store the "
-#~ "Ogg Vorbis streams:Ogg Vorbis Audio Plugin ConfigurationOgg Vorbis Tags:"
-#~ "ReplayGain Settings:Enable Clipping PreventionEnable ReplayGainReplayGain "
-#~ "Type:"
-#~ msgstr ""
-#~ "找不到主機 %s選擇您想要用來儲存 Ogg Vorbis 串流的目錄:Ogg Vorbis 音效外掛"
-#~ "程式組態Ogg Vorbis 標籤:重播增益設定值:啟用中斷防護啟用播放增益播放增益類"
-#~ "åž‹:"
-
-#, fuzzy
-#~ msgid "use Track Gain/Peak"
-#~ msgstr "使用音軌增益/尖峰"
-
-#, fuzzy
-#~ msgid "use Album Gain/Peak"
-#~ msgstr "使用專輯增益/尖峰"
-
-#, fuzzy
-#~ msgid ""
-#~ "Enable 6dB Boost + Hard LimitingAn error occured:\n"
-#~ "%sError!Failed to modify tag (open)Failed to modify tag (close)Failed to "
-#~ "modify tag Ogg Vorbis Tag Description:Location:Version:ISRC number:"
-#~ "Organization: Ogg Vorbis ReplayGain "
-#~ msgstr ""
-#~ "啟用 6dB 重低音 + 限制發生錯誤:\n"
-#~ "%s錯誤!編輯標籤失敗(開啟)編輯標籤失敗(關閉)編輯標籤失敗Ogg Vorbis 標籤描"
-#~ "述:位置:版本:ISRC 編號:團體:Ogg Vorbis 播放增益"
-
-#, fuzzy
-#~ msgid ""
-#~ "Album peak: Ogg Vorbis Info Length:%d KBit/s (nominal)%d Hz%d%d:%.2d%d "
-#~ "BytesOgg Vorbis Audio PluginAbout Ogg Vorbis Audio PluginOgg Vorbis "
-#~ "Plugin by the Xiph.org Foundation\n"
-#~ "\n"
-#~ "Original code by\n"
-#~ "Tony Arcieri <bascule at inferno.tusculum.edu>\n"
-#~ "Contributions from\n"
-#~ "Chris Montgomery <monty at xiph.org>\n"
-#~ "Peter Alm <peter at xmms.org>\n"
-#~ "Michael Smith <msmith at labyrinth.edu.au>\n"
-#~ "Jack Moffitt <jack at icecast.org>\n"
-#~ "Jorn Baayen <jorn at nl.linux.org>\n"
-#~ "Haavard Kvaalen <havardk at xmms.org>\n"
-#~ "Gian-Carlo Pascutto <gcp at sjeng.org>\n"
-#~ "\n"
-#~ "Visit the Xiph.org Foundation at http://www.xiph.org/\n"
-#~ msgstr ""
-#~ "專輯尖峰: Ogg Vorbis 資訊長度:%d KBit/s (一般)%d Hz%d%d:%.2d%d 位元組Ogg "
-#~ "Vorbis 音效外掛程式關於是Ogg Vorbis 音效外掛程式Ogg Vorbis 外掛程式來自 "
-#~ "Xiph.org 基金會\n"
-#~ "\n"
-#~ "原始碼來自\n"
-#~ "Tony Arcieri <bascule at inferno.tusculum.edu>\n"
-#~ "由下列人員發佈\n"
-#~ "Chris Montgomery <monty at xiph.org>\n"
-#~ "Peter Alm <peter at xmms.org>\n"
-#~ "Michael Smith <msmith at labyrinth.edu.au>\n"
-#~ "Jack Moffitt <jack at icecast.org>\n"
-#~ "Jorn Baayen <jorn at nl.linux.org>\n"
-#~ "Haavard Kvaalen <havardk at xmms.org>\n"
-#~ "Gian-Carlo Pascutto <gcp at sjeng.org>\n"
-#~ "\n"
-#~ "您可以到 http://www.xiph.org/ 參觀 Xiph.org\n"
-
-#, fuzzy
-#~ msgid ""
-#~ "Adapted for Audacious usage by Tony Vroon <chainsaw at gentoo.org>\n"
-#~ "from the xmms_sndfile plugin which is:\n"
-#~ "Copyright (C) 2000, 2002 Erik de Castro Lopo\n"
-#~ "\n"
-#~ "This program is free software ; you can redistribute it and/or modify \n"
-#~ "it under the terms of the GNU General Public License as published by \n"
-#~ "the Free Software Foundation ; either version 2 of the License, or \n"
-#~ "(at your option) any later version. \n"
-#~ " \n"
-#~ "This program is distributed in the hope that it will be useful, \n"
-#~ "but WITHOUT ANY WARRANTY ; without even the implied warranty of \n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  \n"
-#~ "See the GNU General Public License for more details. \n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public \n"
-#~ "License along with this program ; if not, write to \n"
-#~ "the Free Software Foundation, Inc., \n"
-#~ "51 Franklin Street, Fifth Floor, \n"
-#~ "Boston, MA  02110-1301  USAWAV Audio Plugin"
-#~ msgstr ""
-#~ "XMMS ESounD 外掛程式\n"
-#~ "\n"
-#~ " 本程式是自由軟體,您可以遵照自由軟體基金會 (Free Software Foundation) \n"
-#~ "出版的 GNU 通用公共許可證條款(GNU General Public License) 第二版\n"
-#~ "來修改和重新發佈這一程式,或者自由選擇使用任何更新的\n"
-#~ "版本。\n"
-#~ "\n"
-#~ "發佈這一程式的目的是希望它有用,\n"
-#~ "但沒有任何擔保。甚至沒有適合特定目的\n"
-#~ "而隱含的擔保。更詳細的情況請參閱\n"
-#~ "GNU 通用公共許可證。\n"
-#~ "\n"
-#~ "您應該已經和程式一起收到一份 GNU\n"
-#~ "通用公共許可證的副本。如果還沒有,寫信給: Free Software\n"
-#~ "Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,\n"
-#~ "USA.WAV 音效外掛程式"
-
-#, fuzzy
-#~ msgid "About %s"
-#~ msgstr "關於 BMP"
-
-#, fuzzy
-#~ msgid " Close OSS Output PluginAbout OSS Driver"
-#~ msgstr "/關閉OSS 輸出外掛程式關於 OSS 驅動程式"
-
-#, fuzzy
-#~ msgid ""
-#~ "Audacious OSS Driver\n"
-#~ "\n"
-#~ " This program is free software; you can redistribute it and/or modify\n"
-#~ "it under the terms of the GNU General Public License as published by\n"
-#~ "the Free Software Foundation; either version 2 of the License, or\n"
-#~ "(at your option) any later version.\n"
-#~ "\n"
-#~ "This program is distributed in the hope that it will be useful,\n"
-#~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
-#~ "GNU General Public License for more details.\n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public License\n"
-#~ "along with this program; if not, write to the Free Software\n"
-#~ "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA "
-#~ "02110-1301,\n"
-#~ "USA.Default (%s)DefaultOSS Driver configurationAudio device:Use alternate "
-#~ "device:Mixer device:DevicesBuffer size (ms):BufferingMixer Settings:"
-#~ "Volume controls Master not PCMMixerAbout ALSA Driver"
-#~ msgstr ""
-#~ "XMMS OSS 驅動程式\n"
-#~ "\n"
-#~ " 本程式是自由軟體,您可以遵照自由軟體基金會 (Free Software Foundation) \n"
-#~ "出版的 GNU 通用公共許可證條款(GNU General Public License) 第二版\n"
-#~ "來修改和重新發佈這一程式,或者自由選擇使用任何更新的\n"
-#~ "版本。\n"
-#~ "\n"
-#~ "發佈這一程式的目的是希望它有用,\n"
-#~ "但沒有任何擔保。甚至沒有適合特定目的\n"
-#~ "而隱含的擔保。更詳細的情況請參閱\n"
-#~ "GNU 通用公共許可證。\n"
-#~ "\n"
-#~ "您應該已經和程式一起收到一份 GNU\n"
-#~ "通用公共許可證的副本。如果還沒有,寫信給: Free Software\n"
-#~ "Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,\n"
-#~ "USA.預設值(%s)預設值OSS 驅動程式組態音效裝置:使用替代裝置:混音裝置:裝置緩"
-#~ "衝區大小(ms):緩衝區混音程式設定值:主音量控制不是 PCM混音程式關於 ALSA 驅動"
-#~ "程式"
-
-#, fuzzy
-#~ msgid ""
-#~ "Audacious ALSA Driver\n"
-#~ "\n"
-#~ " This program is free software; you can redistribute it and/or modify\n"
-#~ "it under the terms of the GNU General Public License as published by\n"
-#~ "the Free Software Foundation; either version 2 of the License, or\n"
-#~ "(at your option) any later version.\n"
-#~ "\n"
-#~ "This program is distributed in the hope that it will be useful,\n"
-#~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
-#~ "GNU General Public License for more details.\n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public License\n"
-#~ "along with this program; if not, write to the Free Software\n"
-#~ "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA "
-#~ "02110-1301,\n"
-#~ "USA.\n"
-#~ "Author: Matthieu Sozeau (mattam at altern.org)ALSA %s output pluginUnknown "
-#~ "soundcardDefault PCM device (%s)ALSA Driver configurationMixer:Use "
-#~ "software volume controlMixer card:Device settings"
-#~ msgstr ""
-#~ "XMMS ALSA 驅動程式\n"
-#~ "\n"
-#~ " 本程式是自由軟體,您可以遵照自由軟體基金會 (Free Software Foundation) \n"
-#~ "出版的 GNU 通用公共許可證條款(GNU General Public License) 第二版\n"
-#~ "來修改和重新發佈這一程式,或者自由選擇使用任何更新的\n"
-#~ "版本。\n"
-#~ "\n"
-#~ "發佈這一程式的目的是希望它有用,\n"
-#~ "但沒有任何擔保。甚至沒有適合特定目的\n"
-#~ "而隱含的擔保。更詳細的情況請參閱\n"
-#~ "GNU 通用公共許可證。\n"
-#~ "\n"
-#~ "您應該已經和程式一起收到一份 GNU\n"
-#~ "通用公共許可證的副本。如果還沒有,寫信給: Free Software\n"
-#~ "Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,\n"
-#~ "USA.作者: Matthieu Sozeau (mattam at altern.org)ALSA %s 輸出外掛程式不明的音"
-#~ "效卡預設的 PCM 裝置 (%s)ALSA 驅動程式組態混音程式:使用軟體音量控制混音卡:"
-#~ "裝置設定值"
-
-#, fuzzy
-#~ msgid "Soundcard:Buffer time (ms):Period time (ms):Advanced settings"
-#~ msgstr "電影原聲大碟緩衝時間(ms):期間(ms):進階設定"
-
-#, fuzzy
-#~ msgid "aRts Driver configuration"
-#~ msgstr "OSS 驅動程式組態"
-
-#, fuzzy
-#~ msgid "Select the directory where you want to store the output files:"
-#~ msgstr "選擇您想用來儲存 MPEG 串流的目錄:"
-
-#, fuzzy
-#~ msgid "Disk Writer ConfigurationAbout ESounD Plugin"
-#~ msgstr "OSS 驅動程式組態關於 ESounD 外掛程式"
-
-#, fuzzy
-#~ msgid ""
-#~ "Audacious ESounD Plugin\n"
-#~ "\n"
-#~ " This program is free software; you can redistribute it and/or modify\n"
-#~ "it under the terms of the GNU General Public License as published by\n"
-#~ "the Free Software Foundation; either version 2 of the License, or\n"
-#~ "(at your option) any later version.\n"
-#~ "\n"
-#~ "This program is distributed in the hope that it will be useful,\n"
-#~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
-#~ "GNU General Public License for more details.\n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public License\n"
-#~ "along with this program; if not, write to the Free Software\n"
-#~ "Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA "
-#~ "02110-1301,\n"
-#~ "USA.Host:Use remote hostVolume controls OSS mixerPort:ServereSound Output "
-#~ "Plugin"
-#~ msgstr ""
-#~ "XMMS ESounD 外掛程式\n"
-#~ "\n"
-#~ " 本程式是自由軟體,您可以遵照自由軟體基金會 (Free Software Foundation) \n"
-#~ "出版的 GNU 通用公共許可證條款(GNU General Public License) 第二版\n"
-#~ "來修改和重新發佈這一程式,或者自由選擇使用任何更新的\n"
-#~ "版本。\n"
-#~ "\n"
-#~ "發佈這一程式的目的是希望它有用,\n"
-#~ "但沒有任何擔保。甚至沒有適合特定目的\n"
-#~ "而隱含的擔保。更詳細的情況請參閱\n"
-#~ "GNU 通用公共許可證。\n"
-#~ "\n"
-#~ "您應該已經和程式一起收到一份 GNU\n"
-#~ "通用公共許可證的副本。如果還沒有,寫信給: Free Software\n"
-#~ "Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,\n"
-#~ "USA.主機:使用遠端主機音量控制 OSS 混音程式連接埠:伺服器eSound 輸出外掛程式"
-
-#, fuzzy
-#~ msgid "About JACK Output Plugin 0.15"
-#~ msgstr "eSound 輸出外掛程式"
-
-#, fuzzy
-#~ msgid "About the Sun Driver"
-#~ msgstr "關於 OSS 驅動程式"
-
-#, fuzzy
-#~ msgid "Audio control device:"
-#~ msgstr "音效裝置:"
-
-#, fuzzy
-#~ msgid "Volume controls device:"
-#~ msgstr "音量控制:"
-
-#, fuzzy
-#~ msgid ""
-#~ "Sun driver configuration/Toggle Decorations/CloseBlur scopeBlur Scope: "
-#~ "Color selectionOptions:** DOUBLESIZE HAS BEEN REMOVED **"
-#~ msgstr ""
-#~ "OSS 驅動程式組態/切換裝飾/關閉模糊範圍模糊範圍:色彩選擇選項:** 雙倍大小已"
-#~ "經被移除了 **"
-
-#, fuzzy
-#~ msgid "<b>_Transparency</b>"
-#~ msgstr "<b>播放</b>"
-
-#, fuzzy
-#~ msgid "Scrobbler Configuration"
-#~ msgstr "MPEG 音效外掛程式組態"
-
-#, fuzzy
-#~ msgid "Song Change Configuration"
-#~ msgstr "CD 音樂播放器組態"
-
-#, fuzzy
-#~ msgid "Port"
-#~ msgstr "連接埠:"
-
-#, fuzzy
-#~ msgid "Client name"
-#~ msgstr "檔案名稱"
-
-#, fuzzy
-#~ msgid "Port name"
-#~ msgstr "音軌名稱"
-
-#, fuzzy
-#~ msgid "ALSA output ports"
-#~ msgstr "ALSA %s 輸出外掛程式"
-
-#, fuzzy
-#~ msgid "Mixer settingsConvert non-UTF8 ID3 tags to UTF8ID3 encoding:"
-#~ msgstr "混音程式設定值:將非 UTF8 的 ID3 標籤轉換為 UTF8 格式ID3 編碼:"
-
-#, fuzzy
-#~ msgid "Convert non-UTF8 Vorbis tags to UTF8"
-#~ msgstr "將非 UTF8 的 ID3 標籤轉換為 UTF8 格式"
-
-#, fuzzy
-#~ msgid "Vorbis encoding:"
-#~ msgstr "ID3 編碼:"
-
-#, fuzzy
-#~ msgid "<b>WMA Version:</b>"
-#~ msgstr "<b>視覺化</b>"
-
-#, fuzzy
-#~ msgid "<b>Channels:</b>"
-#~ msgstr "聲道:"
-
-#, fuzzy
-#~ msgid "<b>Filesize:</b>"
-#~ msgstr "<b>檔案名稱</b>"
-
-#, fuzzy
-#~ msgid "WMA Info"
-#~ msgstr "CD 資訊"
-
-#, fuzzy
-#~ msgid "<b>Track:</b>"
-#~ msgstr "<b>播放</b>"
-
-#, fuzzy
-#~ msgid ""
-#~ "TagsArtem BaguinskiEdward BrocklesbyChong Kai XiongMilosz DerezynskiDavid "
-#~ "LauOle Andre Vadla RavnaasMichiel SikkesAndrei BadeaPeter BehrooziBernard "
-#~ "BlackhamOliver BlinTomas BzatekLiviu DanicelJon DowlandArtur "
-#~ "FrysiakSebastian KapferLukas KobersteinDan KorostelevJolan LuffMichael "
-#~ "MarineauTim-Philipp MullerJulien PortalierAndrew RuderOlivier "
-#~ "SamynMartijn VernooijPhilipi PintoThierry VignaudJan NarovecLaurens "
-#~ "BuhlerDavid Le BrunMatthias DebusKouzinopoulos HarisLaszlo DvornikAlessio "
-#~ "D'AscanioDongCheon ParkRimas KudelisArangel AngovJacek WolszczakPavlo "
-#~ "BohmatPavel KanzelsbergerMartin Persenius<span size=\"xx-large"
-#~ "\"><b>Plugins</b></span>_Media plugin list:"
-#~ msgstr ""
-#~ "探戈Artem BaguinskiEdward BrocklesbyChong Kai XiongMilosz DerezynskiDavid "
-#~ "LauOle Andre Vadla RavnaasMichiel SikkesAndrei BadeaPeter BehrooziBernard "
-#~ "BlackhamOliver BlinTomas BzatekLiviu DanicelJon DowlandArtur "
-#~ "FrysiakSebastian KapferLukas KobersteinDan KorostelevJolan LuffMichael "
-#~ "MarineauTim-Philipp MullerJulien PortalierAndrew RuderOlivier "
-#~ "SamynMartijn VernooijPhilipi PintoThierry VignaudJan NarovecLaurens "
-#~ "BuhlerDavid Le BrunMatthias DebusKouzinopoulos HarisLaszlo DvornikAlessio "
-#~ "D'AscanioDongCheon ParkRimas KudelisArangel AngovJacek WolszczakPavlo "
-#~ "BohmatPavel KanzelsbergerMartin Persenius<span size=\"xx-large\"><b>外掛程"
-#~ "式</b></span>媒體外掛程式清單(_M):"
-
-#, fuzzy
-#~ msgid ""
-#~ "The change is now effective in Audacious' configuration database, but "
-#~ "won't take effect for playback until the next song!\n"
-#~ "\n"
-#~ "Optionally, you can stop and restart playback for the change to take "
-#~ "effect.<span size=\"xx-large\"><b>Appearance</b></span><span size=\"xx-"
-#~ "large\"><b>Mouse</b></span><span size=\"xx-large\"><b>Playlist</b></"
-#~ "span><span size=\"xx-large\"><b>Equalizer</b></span>Use proxyFrames:"
-#~ "Variable,\n"
-#~ "avg. bitrate: %d KBit/sFrancisco Javier F. Serrador%s\n"
-#~ "Unable to write to file: %sCouldn't write tag!%s\n"
-#~ "Unable to open file: %sFile Info%s\n"
-#~ "Unable to truncate file: %sCouldn't remove tag!No tag to remove!Copy "
-#~ "album tagsPaste album tags"
-#~ msgstr ""
-#~ "此變更目前只會影響 BMP 的組態資料庫,直到下一首歌曲才會影響播放功能!\n"
-#~ "\n"
-#~ "或者,您也可以停止並重新播放以使變更立刻生效。<span size=\"xx-large\"><b>"
-#~ "外觀</b></span><span size=\"xx-large\"><b>滑鼠</b></span><span size=\"xx-"
-#~ "large\"><b>播放清單</b></span><span size=\"xx-large\"><b>等化器</b></span>"
-#~ "使用代理伺服器影格:可變的,\n"
-#~ "平均位元率: %d KBit/sFrancisco Javier F. Serrador%s\n"
-#~ "無法寫入檔案: %s無法寫入標籤!%s\n"
-#~ "無法開啟檔案: %s檔案資訊%s\n"
-#~ "無法截斷檔案: %s無法移除標籤!沒有標籤可移除!複製專輯標籤貼上專輯標籤"
-
-#, fuzzy
-#~ msgid "About TiMidity Plugin"
-#~ msgstr "關於 MPEG 音效外掛程式"
-
-#, fuzzy
-#~ msgid "TiMidity PluginOptionsContentExtensionExtension and content"
-#~ msgstr "MPEG 音效外掛程式選項內容延伸延伸與內容"
-
-#, fuzzy
-#~ msgid ""
-#~ "\n"
-#~ "Copyright (C) 2000-2004  Peter Eisenlohr <peter at eisenlohr.org>\n"
-#~ "\n"
-#~ "based on the original OSS Output Plugin  Copyright (C) 1998-2000\n"
-#~ "Peter Alm, Mikael Alm, Olle Hallnas, Thomas Nilsson and 4Front "
-#~ "Technologies\n"
-#~ "\n"
-#~ "This program is free software; you can redistribute it and/or modify\n"
-#~ "it under the terms of the GNU General Public License as published by\n"
-#~ "the Free Software Foundation; either version 2 of the License, or\n"
-#~ "(at your option) any later version.\n"
-#~ "\n"
-#~ "This program is distributed in the hope that it will be useful,\n"
-#~ "but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
-#~ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n"
-#~ "GNU General Public License for more details.\n"
-#~ "\n"
-#~ "You should have received a copy of the GNU General Public License\n"
-#~ "along with this program; if not, write to the Free Software\n"
-#~ "Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,\n"
-#~ "USA."
-#~ msgstr ""
-#~ "XMMS ESounD 外掛程式\n"
-#~ "\n"
-#~ " 本程式是自由軟體,您可以遵照自由軟體基金會 (Free Software Foundation) \n"
-#~ "出版的 GNU 通用公共許可證條款(GNU General Public License) 第二版\n"
-#~ "來修改和重新發佈這一程式,或者自由選擇使用任何更新的\n"
-#~ "版本。\n"
-#~ "\n"
-#~ "發佈這一程式的目的是希望它有用,\n"
-#~ "但沒有任何擔保。甚至沒有適合特定目的\n"
-#~ "而隱含的擔保。更詳細的情況請參閱\n"
-#~ "GNU 通用公共許可證。\n"
-#~ "\n"
-#~ "您應該已經和程式一起收到一份 GNU\n"
-#~ "通用公共許可證的副本。如果還沒有,寫信給: Free Software\n"
-#~ "Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,\n"
-#~ "USA."
-
-#, fuzzy
-#~ msgid " Enable"
-#~ msgstr "已啟用"
-
-#, fuzzy
-#~ msgid "About XMMS Crossfade Plugin"
-#~ msgstr "關於 ESounD 外掛程式"
-
-#, fuzzy
-#~ msgid "Additional silence"
-#~ msgstr "和其他的協力者:"
-
-#, fuzzy
-#~ msgid "Advanced XF"
-#~ msgstr "進階設定"
-
-#, fuzzy
-#~ msgid "Advanced options"
-#~ msgstr "進階設定"
-
-#, fuzzy
-#~ msgid "Crossfade"
-#~ msgstr "跨界音樂(Crossover)"
-
-#, fuzzy
-#~ msgid "Limit OP buffer usage (ms):"
-#~ msgstr "緩衝區大小(ms):"
-
-#, fuzzy
-#~ msgid "Mixing buffer size (ms):"
-#~ msgstr "緩衝區大小(ms):"
-
-#, fuzzy
-#~ msgid "Position:"
-#~ msgstr "描述:"
-
-#, fuzzy
-#~ msgid "Quality:"
-#~ msgstr "/離開(_Q)"
-
-#, fuzzy
-#~ msgid "Rate:"
-#~ msgstr "日期:"
-
-#, fuzzy
-#~ msgid "Reopen"
-#~ msgstr "/重複"
-
-#, fuzzy
-#~ msgid "Use plugin"
-#~ msgstr "外掛程式"
-
-#, fuzzy
-#~ msgid "Volume control options"
-#~ msgstr "音量控制:"
-
-#, fuzzy
-#~ msgid "Volume normalizer"
-#~ msgstr "音量控制:"
-
-#, fuzzy
-#~ msgid "same file"
-#~ msgstr "/儲存/至檔案"
-
-#, fuzzy
-#~ msgid "LibVisual Audacious Plugin"
-#~ msgstr "視覺化外掛程式清單(_V):"
-
-#, fuzzy
-#~ msgid "Visualization Plugins"
-#~ msgstr "視覺化外掛程式清單(_V):"
-
-#, fuzzy
-#~ msgid "All plugins"
-#~ msgstr "外掛程式"
-
-#, fuzzy
-#~ msgid " (enabled)"
-#~ msgstr "已啟用"
-
-#, fuzzy
-#~ msgid "Version: "
-#~ msgstr "版本:"
-
-#, fuzzy
-#~ msgid "Audacious plugin"
-#~ msgstr "CD 音效外掛程式"
-
-#, fuzzy
-#~ msgid ""
-#~ "Cannot initialize SDL!\n"
-#~ "Developers:DISABLE ALWAYS ON TOP (N/A)ENABLE ALWAYS ON TOP (N/A)"
-#~ msgstr ""
-#~ "無法初始化 gnome-vfs。\n"
-#~ "開發人員:停用最上層顯示(N/A)啟用最上層顯示(N/A)"
-
-#, fuzzy
-#~ msgid "Downsample:"
-#~ msgstr "降低取樣:"
-
-#, fuzzy
-#~ msgid "Use interpolation%s - BMPbmp: %s"
-#~ msgstr "使用驗證%s - BMPbmp: %s"
-
-#, fuzzy
-#~ msgid "/Play DirectoryAdd Folders"
-#~ msgstr "目錄(_E):加入資料夾"
-
-#, fuzzy
-#~ msgid ""
-#~ "/Add Folders...3DNow! optimized decoderMMX optimized decoderFPU "
-#~ "decodermpg123 decoding engine by Michael Hipp <mh at mpg123.de>\n"
-#~ "Plugin by The XMMS teamAdvanced settings:"
-#~ msgstr ""
-#~ "/加入檔案...3DNow! 最佳化解碼器MMX 最佳化解碼器FPU 解碼器mpg123 解碼引擎來"
-#~ "自 Michael Hipp <mh at mpg123.de>\n"
-#~ "外掛程式來自 XMMS 團隊進階設定:"
-
-# This entry is taken from Sun. -- Abel
-# 迪斯可 is just a translation in pronunciation, and not widely
-# used. Rejected. -- Abel
-# 瘋克 is widely used in Taiwan - Woodman
-# appropriate enough in meaning. Untranslated here. -- Abel
-#
-# Many Chinese Jazz Web site mentioned this word
-# I think is ok to use "比咆勃" -- Woodman
-# Distinguish this from "Soft Rock" -- Abel
-# better -- Abel
-# is much better. -- Abel
-# so far -- Abel
-# No good translation of bit rate can be found. -- Abel
-#, fuzzy
-#~ msgid ""
-#~ "Thread buffer time (ms):Mmap modeHomepage and Graphics:Takeshi AihanaBMP "
-#~ "EqualizerBeep Media Player/About BMPBMPAdd Internet Address*Vlad "
-#~ "Gerasimov/By extension"
-#~ msgstr ""
-#~ "緩衝時間(ms):Mmap 模式首頁與圖片:Takeshi AihanaBMP 等化器Beep Media "
-#~ "Player/關於 BMPBMP加入網路位址*Vlad Gerasimov/依延伸檔名"
+#~ msgid "Jump to Track"
+#~ msgstr "跳至音軌"
diff --git a/src/audacious/Makefile b/src/audacious/Makefile
index 8beefdc..e5055c7 100644
--- a/src/audacious/Makefile
+++ b/src/audacious/Makefile
@@ -1,17 +1,18 @@
 include ../../extra.mk
 
 PROG = audacious${PROG_SUFFIX}
-SRCS = audconfig.c								\
+SRCS = adder.c \
+       art.c \
        chardet.c								\
-       configdb.c								\
+       config.c \
        credits.c							\
        drct.c \
        effect.c									\
        equalizer.c								\
        equalizer_preset.c						\
        fft.c									\
-       folder-add.c \
        general.c \
+       history.c \
        interface.c								\
        main.c									\
        mpris-signals.c \
@@ -39,23 +40,22 @@ ifeq ($(USE_DBUS),yes)
 SRCS += dbus.c
 endif
 
+ifeq ($(HAVE_MSWINDOWS),yes)
+SRCS += audacious.rc
+endif
+
 INCLUDES = api.h \
            api-alias-begin.h \
            api-alias-end.h \
            api-define-begin.h \
            api-define-end.h \
-           audconfig.h \
-           configdb.h			\
-           configdb-api.h \
            dbus.h				\
            dbus-service.h		\
            debug.h \
            drct.h \
            drct-api.h \
-           glib-compat.h \
            gtk-compat.h \
            i18n.h				\
-           interface.h			\
            misc.h \
            misc-api.h \
            playlist.h \
@@ -68,19 +68,16 @@ INCLUDES = api.h \
 
 DATA = images/about-logo.png				\
        images/album.png \
-       images/appearance.png				\
        images/audacious_eq.xpm				\
        images/audacious_player.xpm			\
        images/audacious_playlist.xpm		\
        images/audio.png						\
-       images/blue.png						\
        images/connectivity.png				\
        images/menu_playlist.png				\
        images/menu_plugin.png				\
        images/menu_queue_toggle.png			\
        images/playlist.png					\
-       images/plugins.png					\
-       images/replay_gain.png
+       images/plugins.png
 
 CLEAN = build_stamp.c dbus-client-bindings.h dbus-server-bindings.h
 
@@ -100,24 +97,23 @@ endif
 
 pre-depend: ${DBUS_BINDINGS}
 
-CPPFLAGS += -std=gnu99 \
+CPPFLAGS += \
             -DHAVE_CONFIG_H \
-		${MOWGLI_CFLAGS}		\
 		${GLIB_CFLAGS}			\
-		${GTHREAD_CFLAGS}		\
+		${GTHREAD_CFLAGS} \
 		${GTK_CFLAGS}			\
 		${AUDACIOUS_DEFINES}	\
-		${ARCH_DEFINES}			\
 		${DBUS_CFLAGS}			\
 		${REGEX_CFLAGS}			\
 		${PTHREAD_CFLAGS}		\
-		${LIBMCS_CFLAGS}		\
-		${SIMD_CFLAGS}			\
 		-D_AUDACIOUS_CORE		\
 		${EGGSM_CFLAGS}			\
 		${LIBGUESS_CFLAGS}		\
 		-I.. -I../..
 
+# Essential for efficient FFTs. --jlindgren
+CFLAGS += -ffast-math
+
 LIBS += ${LDADD}						\
         -lm \
 		-L../libaudcore -laudcore	\
@@ -126,17 +122,13 @@ LIBS += ${LDADD}						\
 		${LIBINTL}						\
 		${EGGSM_LIBS}					\
 		${GLIB_LIBS}					\
-		${GTHREAD_LIBS}					\
+		${GTHREAD_LIBS} \
 		${GTK_LIBS}						\
 		${DBUS_LIBS}					\
-		${MOWGLI_LIBS}					\
-		${LIBMCS_LIBS}					\
 		${REGEX_LIBS}					\
 		${PTHREAD_LIBS}					\
 		${LIBGUESS_LIBS}
 
-LDFLAGS += ${PROG_IMPLIB_LDFLAGS} ${AUDLDFLAGS}
-
 DBUS_BINDINGS_SOURCES = objects.xml			\
 			mpris_root.xml			\
 			mpris_tracklist.xml		\
@@ -153,30 +145,3 @@ dbus-server-bindings.h: ${DBUS_BINDINGS_SOURCES}
 
 dbus-client-bindings.h: ${DBUS_BINDINGS_SOURCES}
 	${DBUS_BINDING_TOOL} --mode=glib-client --prefix=audacious_rc objects.xml > $@
-
-install-extra:
-	if test x"${PROG_IMPLIB_NEEDED}" = x"yes"; then \
-		for i in ${PROG}; do \
-			i="lib$$i.a"; \
-			${INSTALL_STATUS}; \
-			if ${MKDIR_P} "${DESTDIR}${libdir}" && ${INSTALL} -m 644 "$$i" "${DESTDIR}${libdir}/$$i"; then \
-				${INSTALL_OK}; \
-			else \
-				${INSTALL_FAILED}; \
-			fi \
-		done \
-	fi
-
-uninstall-extra:
-	if test x"${PROG_IMPLIB_NEEDED}" = x"yes"; then \
-		for i in ${PROG}; do \
-			i="lib$$i.a"; \
-			if test -f "${DESTDIR}${libdir}/$$i"; then \
-				if ${RM} -f "${DESTDIR}${libdir}/$$i"; then \
-					${DELETE_OK}; \
-				else \
-					${DELETE_FAILED}; \
-				fi \
-			fi \
-		done \
-	fi
diff --git a/src/audacious/adder.c b/src/audacious/adder.c
new file mode 100644
index 0000000..4f24429
--- /dev/null
+++ b/src/audacious/adder.c
@@ -0,0 +1,583 @@
+/*
+ * adder.c
+ * Copyright 2011 John Lindgren
+ *
+ * This file is part of Audacious.
+ *
+ * Audacious is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free Software
+ * Foundation, version 2 or version 3 of the License.
+ *
+ * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * Audacious. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * The Audacious team does not consider modular code linking to Audacious or
+ * using our public API to be a derived work.
+ */
+
+#include <dirent.h>
+#include <pthread.h>
+#include <string.h>
+#include <sys/stat.h>
+
+#include <gtk/gtk.h>
+
+#include <libaudcore/audstrings.h>
+#include <libaudcore/hook.h>
+
+#include "config.h"
+#include "i18n.h"
+#include "playback.h"
+#include "playlist.h"
+#include "plugins.h"
+#include "main.h"
+#include "misc.h"
+
+typedef struct {
+    int playlist_id, at;
+    bool_t play;
+    Index * filenames, * tuples;
+    PlaylistFilterFunc filter;
+    void * user;
+} AddTask;
+
+typedef struct {
+    int playlist_id, at;
+    bool_t play;
+    Index * filenames, * tuples, * decoders;
+} AddResult;
+
+static GList * add_tasks = NULL;
+static GList * add_results = NULL;
+static int current_playlist_id = -1;
+
+static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
+static pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
+static bool_t add_quit;
+static pthread_t add_thread;
+static int add_source = 0;
+
+static int status_source = 0;
+static char status_path[512];
+static int status_count;
+static GtkWidget * status_window = NULL, * status_path_label,
+ * status_count_label;
+
+static bool_t status_cb (void * unused)
+{
+    if (! headless && ! status_window)
+    {
+        status_window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+        gtk_window_set_type_hint ((GtkWindow *) status_window,
+         GDK_WINDOW_TYPE_HINT_DIALOG);
+        gtk_window_set_title ((GtkWindow *) status_window, _("Searching ..."));
+        gtk_window_set_resizable ((GtkWindow *) status_window, FALSE);
+        gtk_container_set_border_width ((GtkContainer *) status_window, 6);
+
+        GtkWidget * vbox = gtk_vbox_new (FALSE, 6);
+        gtk_container_add ((GtkContainer *) status_window, vbox);
+
+        status_path_label = gtk_label_new (NULL);
+#if GTK_CHECK_VERSION (3, 0, 0)
+        gtk_label_set_width_chars ((GtkLabel *) status_path_label, 40);
+        gtk_label_set_max_width_chars ((GtkLabel *) status_path_label, 40);
+#else
+        gtk_widget_set_size_request (status_path_label, 320, -1);
+#endif
+        gtk_label_set_ellipsize ((GtkLabel *) status_path_label,
+         PANGO_ELLIPSIZE_MIDDLE);
+        gtk_box_pack_start ((GtkBox *) vbox, status_path_label, FALSE, FALSE, 0);
+
+        status_count_label = gtk_label_new (NULL);
+#if GTK_CHECK_VERSION (3, 0, 0)
+        gtk_label_set_width_chars ((GtkLabel *) status_count_label, 40);
+        gtk_label_set_max_width_chars ((GtkLabel *) status_count_label, 40);
+#else
+        gtk_widget_set_size_request (status_count_label, 320, -1);
+#endif
+        gtk_box_pack_start ((GtkBox *) vbox, status_count_label, FALSE, FALSE, 0);
+
+        gtk_widget_show_all (status_window);
+
+        g_signal_connect (status_window, "destroy", (GCallback)
+         gtk_widget_destroyed, & status_window);
+    }
+
+    pthread_mutex_lock (& mutex);
+
+    char scratch[128];
+    snprintf (scratch, sizeof scratch, dngettext (PACKAGE, "%d file found",
+     "%d files found", status_count), status_count);
+
+    if (headless)
+    {
+        printf ("Searching, %s ...\r", scratch);
+        fflush (stdout);
+    }
+    else
+    {
+        gtk_label_set_text ((GtkLabel *) status_path_label, status_path);
+        gtk_label_set_text ((GtkLabel *) status_count_label, scratch);
+    }
+
+    pthread_mutex_unlock (& mutex);
+    return TRUE;
+}
+
+static void status_update (const char * filename, int found)
+{
+    pthread_mutex_lock (& mutex);
+
+    snprintf (status_path, sizeof status_path, "%s", filename);
+    status_count = found;
+
+    if (! status_source)
+        status_source = g_timeout_add (250, status_cb, NULL);
+
+    pthread_mutex_unlock (& mutex);
+}
+
+static void status_done_locked (void)
+{
+    if (status_source)
+    {
+        g_source_remove (status_source);
+        status_source = 0;
+    }
+
+    if (headless)
+        printf ("\n");
+    else if (status_window)
+        gtk_widget_destroy (status_window);
+}
+
+static void index_free_filenames (Index * filenames)
+{
+    int count = index_count (filenames);
+    for (int i = 0; i < count; i ++)
+        str_unref (index_get (filenames, i));
+
+    index_free (filenames);
+}
+
+static void index_free_tuples (Index * tuples)
+{
+    int count = index_count (tuples);
+    for (int i = 0; i < count; i ++)
+    {
+        Tuple * tuple = index_get (tuples, i);
+        if (tuple)
+            tuple_unref (tuple);
+    }
+
+    index_free (tuples);
+}
+
+static AddTask * add_task_new (int playlist_id, int at, bool_t play,
+ Index * filenames, Index * tuples, PlaylistFilterFunc filter,
+ void * user)
+{
+    AddTask * task = g_slice_new (AddTask);
+    task->playlist_id = playlist_id;
+    task->at = at;
+    task->play = play;
+    task->filenames = filenames;
+    task->tuples = tuples;
+    task->filter = filter;
+    task->user = user;
+    return task;
+}
+
+static void add_task_free (AddTask * task)
+{
+    if (task->filenames)
+        index_free_filenames (task->filenames);
+    if (task->tuples)
+        index_free_tuples (task->tuples);
+
+    g_slice_free (AddTask, task);
+}
+
+static AddResult * add_result_new (int playlist_id, int at, bool_t play)
+{
+    AddResult * result = g_slice_new (AddResult);
+    result->playlist_id = playlist_id;
+    result->at = at;
+    result->play = play;
+    result->filenames = index_new ();
+    result->tuples = index_new ();
+    result->decoders = index_new ();
+    return result;
+}
+
+static void add_result_free (AddResult * result)
+{
+    if (result->filenames)
+        index_free_filenames (result->filenames);
+    if (result->tuples)
+        index_free_tuples (result->tuples);
+    if (result->decoders)
+        index_free (result->decoders);
+
+    g_slice_free (AddResult, result);
+}
+
+static void add_file (char * filename, Tuple * tuple, PluginHandle * decoder,
+ PlaylistFilterFunc filter, void * user, AddResult * result, bool_t validate)
+{
+    g_return_if_fail (filename);
+    if (filter && ! filter (filename, user))
+    {
+        str_unref (filename);
+        return;
+    }
+
+    status_update (filename, index_count (result->filenames));
+
+    if (! tuple && ! decoder)
+    {
+        decoder = file_find_decoder (filename, TRUE);
+        if (validate && ! decoder)
+        {
+            str_unref (filename);
+            return;
+        }
+    }
+
+    if (! tuple && decoder && input_plugin_has_subtunes (decoder) && ! strchr
+     (filename, '?'))
+        tuple = file_read_tuple (filename, decoder);
+
+    int n_subtunes = tuple ? tuple_get_n_subtunes (tuple) : 0;
+
+    if (n_subtunes)
+    {
+        for (int sub = 0; sub < n_subtunes; sub ++)
+        {
+            char * subname = str_printf ("%s?%d", filename,
+             tuple_get_nth_subtune (tuple, sub));
+            add_file (subname, NULL, decoder, filter, user, result, FALSE);
+        }
+
+        str_unref (filename);
+        tuple_unref (tuple);
+        return;
+    }
+
+    index_append (result->filenames, filename);
+    index_append (result->tuples, tuple);
+    index_append (result->decoders, decoder);
+}
+
+static void add_folder (char * filename, PlaylistFilterFunc filter,
+ void * user, AddResult * result)
+{
+    g_return_if_fail (filename);
+    if (filter && ! filter (filename, user))
+    {
+        str_unref (filename);
+        return;
+    }
+
+    status_update (filename, index_count (result->filenames));
+
+    char * unix_name = uri_to_filename (filename);
+    if (! unix_name)
+    {
+        str_unref (filename);
+        return;
+    }
+
+    if (unix_name[strlen (unix_name) - 1] == '/')
+        unix_name[strlen (unix_name) - 1] = 0;
+
+    GList * files = NULL;
+    DIR * folder = opendir (unix_name);
+    if (! folder)
+        goto FREE;
+
+    struct dirent * entry;
+    while ((entry = readdir (folder)))
+    {
+        if (entry->d_name[0] != '.')
+            files = g_list_prepend (files, g_strdup_printf ("%s"
+             G_DIR_SEPARATOR_S "%s", unix_name, entry->d_name));
+    }
+
+    closedir (folder);
+    files = g_list_sort (files, (GCompareFunc) string_compare);
+
+    while (files)
+    {
+        struct stat info;
+        if (stat (files->data, & info) < 0)
+            goto NEXT;
+
+        if (S_ISREG (info.st_mode))
+        {
+            char * item_name = filename_to_uri (files->data);
+            if (item_name)
+            {
+                add_file (str_get (item_name), NULL, NULL, filter, user, result, TRUE);
+                g_free (item_name);
+            }
+        }
+        else if (S_ISDIR (info.st_mode))
+        {
+            char * item_name = filename_to_uri (files->data);
+            if (item_name)
+            {
+                add_folder (str_get (item_name), filter, user, result);
+                g_free (item_name);
+            }
+        }
+
+    NEXT:
+        g_free (files->data);
+        files = g_list_delete_link (files, files);
+    }
+
+FREE:
+    str_unref (filename);
+    g_free (unix_name);
+}
+
+static void add_playlist (char * filename, PlaylistFilterFunc filter,
+ void * user, AddResult * result)
+{
+    g_return_if_fail (filename);
+    if (filter && ! filter (filename, user))
+    {
+        str_unref (filename);
+        return;
+    }
+
+    status_update (filename, index_count (result->filenames));
+
+    char * title = NULL;
+    Index * filenames, * tuples;
+    if (! playlist_load (filename, & title, & filenames, & tuples))
+    {
+        str_unref (filename);
+        return;
+    }
+
+    int count = index_count (filenames);
+    for (int i = 0; i < count; i ++)
+        add_file (index_get (filenames, i), tuples ? index_get (tuples, i) :
+         NULL, NULL, filter, user, result, FALSE);
+
+    str_unref (filename);
+    str_unref (title);
+    index_free (filenames);
+    if (tuples)
+        index_free (tuples);
+}
+
+static void add_generic (char * filename, Tuple * tuple,
+ PlaylistFilterFunc filter, void * user, AddResult * result)
+{
+    g_return_if_fail (filename);
+
+    if (tuple)
+        add_file (filename, tuple, NULL, filter, user, result, FALSE);
+    else if (vfs_file_test (filename, G_FILE_TEST_IS_DIR))
+        add_folder (filename, filter, user, result);
+    else if (filename_is_playlist (filename))
+        add_playlist (filename, filter, user, result);
+    else
+        add_file (filename, NULL, NULL, filter, user, result, FALSE);
+}
+
+static bool_t add_finish (void * unused)
+{
+    pthread_mutex_lock (& mutex);
+
+    while (add_results)
+    {
+        AddResult * result = add_results->data;
+        add_results = g_list_delete_link (add_results, add_results);
+
+        int playlist = playlist_by_unique_id (result->playlist_id);
+        if (playlist < 0) /* playlist deleted */
+            goto FREE;
+
+        int count = playlist_entry_count (playlist);
+        if (result->at < 0 || result->at > count)
+            result->at = count;
+
+        playlist_entry_insert_batch_raw (playlist, result->at,
+         result->filenames, result->tuples, result->decoders);
+        result->filenames = NULL;
+        result->tuples = NULL;
+        result->decoders = NULL;
+
+        if (result->play && playlist_entry_count (playlist) > count)
+        {
+            playlist_set_playing (playlist);
+            if (! get_bool (NULL, "shuffle"))
+                playlist_set_position (playlist, result->at);
+
+            playback_play (0, FALSE);
+        }
+
+    FREE:
+        add_result_free (result);
+    }
+
+    if (add_source)
+    {
+        g_source_remove (add_source);
+        add_source = 0;
+    }
+
+    if (! add_tasks)
+        status_done_locked ();
+
+    pthread_mutex_unlock (& mutex);
+
+    hook_call ("playlist add complete", NULL);
+    return FALSE;
+}
+
+static void * add_worker (void * unused)
+{
+    pthread_mutex_lock (& mutex);
+
+    while (! add_quit)
+    {
+        if (! add_tasks)
+        {
+            pthread_cond_wait (& cond, & mutex);
+            continue;
+        }
+
+        AddTask * task = add_tasks->data;
+        add_tasks = g_list_delete_link (add_tasks, add_tasks);
+
+        current_playlist_id = task->playlist_id;
+        pthread_mutex_unlock (& mutex);
+
+        AddResult * result = add_result_new (task->playlist_id, task->at,
+         task->play);
+
+        int count = index_count (task->filenames);
+        if (task->tuples)
+            count = MIN (count, index_count (task->tuples));
+
+        for (int i = 0; i < count; i ++)
+        {
+            add_generic (index_get (task->filenames, i), task->tuples ?
+             index_get (task->tuples, i) : NULL, task->filter, task->user,
+             result);
+
+            index_set (task->filenames, i, NULL);
+            if (task->tuples)
+                index_set (task->tuples, i, NULL);
+        }
+
+        add_task_free (task);
+
+        pthread_mutex_lock (& mutex);
+        current_playlist_id = -1;
+
+        add_results = g_list_append (add_results, result);
+
+        if (! add_source)
+            add_source = g_timeout_add (0, add_finish, NULL);
+    }
+
+    pthread_mutex_unlock (& mutex);
+    return NULL;
+}
+
+void adder_init (void)
+{
+    pthread_mutex_lock (& mutex);
+    add_quit = FALSE;
+    pthread_create (& add_thread, NULL, add_worker, NULL);
+    pthread_mutex_unlock (& mutex);
+}
+
+void adder_cleanup (void)
+{
+    pthread_mutex_lock (& mutex);
+    add_quit = TRUE;
+    pthread_cond_broadcast (& cond);
+    pthread_mutex_unlock (& mutex);
+    pthread_join (add_thread, NULL);
+
+    if (add_source)
+    {
+        g_source_remove (add_source);
+        add_source = 0;
+    }
+
+    status_done_locked ();
+}
+
+void playlist_entry_insert (int playlist, int at, const char * filename,
+ Tuple * tuple, bool_t play)
+{
+    Index * filenames = index_new ();
+    Index * tuples = index_new ();
+    index_append (filenames, str_get (filename));
+    index_append (tuples, tuple);
+
+    playlist_entry_insert_batch (playlist, at, filenames, tuples, play);
+}
+
+void playlist_entry_insert_batch (int playlist, int at,
+ Index * filenames, Index * tuples, bool_t play)
+{
+    playlist_entry_insert_filtered (playlist, at, filenames, tuples, NULL, NULL, play);
+}
+
+void playlist_entry_insert_filtered (int playlist, int at,
+ Index * filenames, Index * tuples, PlaylistFilterFunc filter,
+ void * user, bool_t play)
+{
+    int playlist_id = playlist_get_unique_id (playlist);
+    g_return_if_fail (playlist_id >= 0);
+
+    AddTask * task = add_task_new (playlist_id, at, play, filenames, tuples, filter, user);
+
+    pthread_mutex_lock (& mutex);
+    add_tasks = g_list_append (add_tasks, task);
+    pthread_cond_broadcast (& cond);
+    pthread_mutex_unlock (& mutex);
+}
+
+bool_t playlist_add_in_progress (int playlist)
+{
+    int playlist_id = playlist_get_unique_id (playlist);
+    g_return_val_if_fail (playlist_id >= 0, FALSE);
+
+    pthread_mutex_lock (& mutex);
+
+    for (GList * node = add_tasks; node; node = node->next)
+    {
+        if (((AddTask *) node->data)->playlist_id == playlist_id)
+            goto YES;
+    }
+
+    if (current_playlist_id == playlist_id)
+        goto YES;
+
+    for (GList * node = add_results; node; node = node->next)
+    {
+        if (((AddResult *) node->data)->playlist_id == playlist_id)
+            goto YES;
+    }
+
+    pthread_mutex_unlock (& mutex);
+    return FALSE;
+
+YES:
+    pthread_mutex_unlock (& mutex);
+    return TRUE;
+}
diff --git a/src/audacious/api-alias-begin.h b/src/audacious/api-alias-begin.h
index 75a01c9..cc7c723 100644
--- a/src/audacious/api-alias-begin.h
+++ b/src/audacious/api-alias-begin.h
@@ -32,5 +32,17 @@ extern AudAPITable * _aud_api_table;
 #define AUD_FUNC2(t,n,t1,n1,t2,n2) static inline t aud_##n(t1 n1, t2 n2) {return _aud_api_table->AUD_API_SYMBOL->n(n1,n2);}
 #define AUD_FUNC3(t,n,t1,n1,t2,n2,t3,n3) static inline t aud_##n(t1 n1, t2 n2, t3 n3) {return _aud_api_table->AUD_API_SYMBOL->n(n1,n2,n3);}
 #define AUD_FUNC4(t,n,t1,n1,t2,n2,t3,n3,t4,n4) static inline t aud_##n(t1 n1, t2 n2, t3 n3, t4 n4) {return _aud_api_table->AUD_API_SYMBOL->n(n1,n2,n3,n4);}
-#define AUD_FUNC5(t,n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5) static inline t aud_##n(t1 n1, t2 n2, t3 n3, t4 n4, t5 n5, t6 n6) {return _aud_api_table->AUD_API_SYMBOL->n(n1,n2,n3,n4,n5);}
+#define AUD_FUNC5(t,n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5) static inline t aud_##n(t1 n1, t2 n2, t3 n3, t4 n4, t5 n5) {return _aud_api_table->AUD_API_SYMBOL->n(n1,n2,n3,n4,n5);}
 #define AUD_FUNC6(t,n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5,t6,n6) static inline t aud_##n(t1 n1, t2 n2, t3 n3, t4 n4, t5 n5, t6 n6) {return _aud_api_table->AUD_API_SYMBOL->n(n1,n2,n3,n4,n5,n6);}
+#define AUD_FUNC7(t,n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5,t6,n6,t7,n7) static inline t aud_##n(t1 n1, t2 n2, t3 n3, t4 n4, t5 n5, t6 n6, t7 n7) {return _aud_api_table->AUD_API_SYMBOL->n(n1,n2,n3,n4,n5,n6,n7);}
+#define AUD_FUNC8(t,n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5,t6,n6,t7,n7,t8,n8) static inline t aud_##n(t1 n1, t2 n2, t3 n3, t4 n4, t5 n5, t6 n6, t7 n7, t8 n8) {return _aud_api_table->AUD_API_SYMBOL->n(n1,n2,n3,n4,n5,n6,n7,n8);}
+
+#define AUD_VFUNC0(n) static inline void aud_##n(void) {_aud_api_table->AUD_API_SYMBOL->n();}
+#define AUD_VFUNC1(n,t1,n1) static inline void aud_##n(t1 n1) {_aud_api_table->AUD_API_SYMBOL->n(n1);}
+#define AUD_VFUNC2(n,t1,n1,t2,n2) static inline void aud_##n(t1 n1, t2 n2) {_aud_api_table->AUD_API_SYMBOL->n(n1,n2);}
+#define AUD_VFUNC3(n,t1,n1,t2,n2,t3,n3) static inline void aud_##n(t1 n1, t2 n2, t3 n3) {_aud_api_table->AUD_API_SYMBOL->n(n1,n2,n3);}
+#define AUD_VFUNC4(n,t1,n1,t2,n2,t3,n3,t4,n4) static inline void aud_##n(t1 n1, t2 n2, t3 n3, t4 n4) {_aud_api_table->AUD_API_SYMBOL->n(n1,n2,n3,n4);}
+#define AUD_VFUNC5(n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5) static inline void aud_##n(t1 n1, t2 n2, t3 n3, t4 n4, t5 n5) {_aud_api_table->AUD_API_SYMBOL->n(n1,n2,n3,n4,n5);}
+#define AUD_VFUNC6(n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5,t6,n6) static inline void aud_##n(t1 n1, t2 n2, t3 n3, t4 n4, t5 n5, t6 n6) {_aud_api_table->AUD_API_SYMBOL->n(n1,n2,n3,n4,n5,n6);}
+#define AUD_VFUNC7(n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5,t6,n6,t7,n7) static inline void aud_##n(t1 n1, t2 n2, t3 n3, t4 n4, t5 n5, t6 n6, t7 n7) {_aud_api_table->AUD_API_SYMBOL->n(n1,n2,n3,n4,n5,n6,n7);}
+#define AUD_VFUNC8(n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5,t6,n6,t7,n7,t8,n8) static inline void aud_##n(t1 n1, t2 n2, t3 n3, t4 n4, t5 n5, t6 n6, t7 n7, t8 n8) {_aud_api_table->AUD_API_SYMBOL->n(n1,n2,n3,n4,n5,n6,n7,n8);}
diff --git a/src/audacious/api-alias-end.h b/src/audacious/api-alias-end.h
index a216294..e7930bc 100644
--- a/src/audacious/api-alias-end.h
+++ b/src/audacious/api-alias-end.h
@@ -32,3 +32,15 @@
 #undef AUD_FUNC4
 #undef AUD_FUNC5
 #undef AUD_FUNC6
+#undef AUD_FUNC7
+#undef AUD_FUNC8
+
+#undef AUD_VFUNC0
+#undef AUD_VFUNC1
+#undef AUD_VFUNC2
+#undef AUD_VFUNC3
+#undef AUD_VFUNC4
+#undef AUD_VFUNC5
+#undef AUD_VFUNC6
+#undef AUD_VFUNC7
+#undef AUD_VFUNC8
diff --git a/src/audacious/api-declare-begin.h b/src/audacious/api-declare-begin.h
index fe9d4f0..cadc79f 100644
--- a/src/audacious/api-declare-begin.h
+++ b/src/audacious/api-declare-begin.h
@@ -32,5 +32,17 @@
 #define AUD_FUNC4(t,n,t1,n1,t2,n2,t3,n3,t4,n4) .n = n,
 #define AUD_FUNC5(t,n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5) .n = n,
 #define AUD_FUNC6(t,n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5,t6,n6) .n = n,
+#define AUD_FUNC7(t,n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5,t6,n6,t7,n7) .n = n,
+#define AUD_FUNC8(t,n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5,t6,n6,t7,n7,t8,n8) .n = n,
+
+#define AUD_VFUNC0(n) .n = n,
+#define AUD_VFUNC1(n,t1,n1) .n = n,
+#define AUD_VFUNC2(n,t1,n1,t2,n2) .n = n,
+#define AUD_VFUNC3(n,t1,n1,t2,n2,t3,n3) .n = n,
+#define AUD_VFUNC4(n,t1,n1,t2,n2,t3,n3,t4,n4) .n = n,
+#define AUD_VFUNC5(n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5) .n = n,
+#define AUD_VFUNC6(n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5,t6,n6) .n = n,
+#define AUD_VFUNC7(n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5,t6,n6,t7,n7) .n = n,
+#define AUD_VFUNC8(n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5,t6,n6,t7,n7,t8,n8) .n = n,
 
 const struct AUD_API_NAME AUD_API_SYMBOL = {
diff --git a/src/audacious/api-declare-end.h b/src/audacious/api-declare-end.h
index 52f3beb..df68a68 100644
--- a/src/audacious/api-declare-end.h
+++ b/src/audacious/api-declare-end.h
@@ -33,3 +33,15 @@
 #undef AUD_FUNC4
 #undef AUD_FUNC5
 #undef AUD_FUNC6
+#undef AUD_FUNC7
+#undef AUD_FUNC8
+
+#undef AUD_VFUNC0
+#undef AUD_VFUNC1
+#undef AUD_VFUNC2
+#undef AUD_VFUNC3
+#undef AUD_VFUNC4
+#undef AUD_VFUNC5
+#undef AUD_VFUNC6
+#undef AUD_VFUNC7
+#undef AUD_VFUNC8
diff --git a/src/audacious/api-define-begin.h b/src/audacious/api-define-begin.h
index e6e5ff6..f193d24 100644
--- a/src/audacious/api-define-begin.h
+++ b/src/audacious/api-define-begin.h
@@ -30,7 +30,19 @@
 #define AUD_FUNC2(t,n,t1,n1,t2,n2) t (* n) (t1 n1, t2 n2);
 #define AUD_FUNC3(t,n,t1,n1,t2,n2,t3,n3) t (* n) (t1 n1, t2 n2, t3 n3);
 #define AUD_FUNC4(t,n,t1,n1,t2,n2,t3,n3,t4,n4) t (* n) (t1 n1, t2 n2, t3 n3, t4 n4);
-#define AUD_FUNC5(t,n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5) t (* n) (t1 n1, t2 n2, t3 n3, t4 n4, t5 n5, t6 n6);
+#define AUD_FUNC5(t,n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5) t (* n) (t1 n1, t2 n2, t3 n3, t4 n4, t5 n5);
 #define AUD_FUNC6(t,n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5,t6,n6) t (* n) (t1 n1, t2 n2, t3 n3, t4 n4, t5 n5, t6 n6);
+#define AUD_FUNC7(t,n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5,t6,n6,t7,n7) t (* n) (t1 n1, t2 n2, t3 n3, t4 n4, t5 n5, t6 n6, t7 n7);
+#define AUD_FUNC8(t,n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5,t6,n6,t7,n7,t8,n8) t (* n) (t1 n1, t2 n2, t3 n3, t4 n4, t5 n5, t6 n6, t7 n7, t8 n8);
+
+#define AUD_VFUNC0(n) void (* n) (void);
+#define AUD_VFUNC1(n,t1,n1) void (* n) (t1 n1);
+#define AUD_VFUNC2(n,t1,n1,t2,n2) void (* n) (t1 n1, t2 n2);
+#define AUD_VFUNC3(n,t1,n1,t2,n2,t3,n3) void (* n) (t1 n1, t2 n2, t3 n3);
+#define AUD_VFUNC4(n,t1,n1,t2,n2,t3,n3,t4,n4) void (* n) (t1 n1, t2 n2, t3 n3, t4 n4);
+#define AUD_VFUNC5(n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5) void (* n) (t1 n1, t2 n2, t3 n3, t4 n4, t5 n5);
+#define AUD_VFUNC6(n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5,t6,n6) void (* n) (t1 n1, t2 n2, t3 n3, t4 n4, t5 n5, t6 n6);
+#define AUD_VFUNC7(n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5,t6,n6,t7,n7) void (* n) (t1 n1, t2 n2, t3 n3, t4 n4, t5 n5, t6 n6, t7 n7);
+#define AUD_VFUNC8(n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5,t6,n6,t7,n7,t8,n8) void (* n) (t1 n1, t2 n2, t3 n3, t4 n4, t5 n5, t6 n6, t7 n7, t8 n8);
 
 struct AUD_API_NAME {
diff --git a/src/audacious/api-define-end.h b/src/audacious/api-define-end.h
index 7bc5f65..e2801b4 100644
--- a/src/audacious/api-define-end.h
+++ b/src/audacious/api-define-end.h
@@ -34,3 +34,15 @@
 #undef AUD_FUNC4
 #undef AUD_FUNC5
 #undef AUD_FUNC6
+#undef AUD_FUNC7
+#undef AUD_FUNC8
+
+#undef AUD_VFUNC0
+#undef AUD_VFUNC1
+#undef AUD_VFUNC2
+#undef AUD_VFUNC3
+#undef AUD_VFUNC4
+#undef AUD_VFUNC5
+#undef AUD_VFUNC6
+#undef AUD_VFUNC7
+#undef AUD_VFUNC8
diff --git a/src/audacious/api-local-begin.h b/src/audacious/api-local-begin.h
index a87d988..9f11713 100644
--- a/src/audacious/api-local-begin.h
+++ b/src/audacious/api-local-begin.h
@@ -30,5 +30,17 @@
 #define AUD_FUNC2(t,n,t1,n1,t2,n2) t n (t1 n1, t2 n2);
 #define AUD_FUNC3(t,n,t1,n1,t2,n2,t3,n3) t n (t1 n1, t2 n2, t3 n3);
 #define AUD_FUNC4(t,n,t1,n1,t2,n2,t3,n3,t4,n4) t n (t1 n1, t2 n2, t3 n3, t4 n4);
-#define AUD_FUNC5(t,n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5) t n (t1 n1, t2 n2, t3 n3, t4 n4, t5 n5, t6 n6);
+#define AUD_FUNC5(t,n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5) t n (t1 n1, t2 n2, t3 n3, t4 n4, t5 n5);
 #define AUD_FUNC6(t,n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5,t6,n6) t n (t1 n1, t2 n2, t3 n3, t4 n4, t5 n5, t6 n6);
+#define AUD_FUNC7(t,n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5,t6,n6,t7,n7) t n (t1 n1, t2 n2, t3 n3, t4 n4, t5 n5, t6 n6, t7 n7);
+#define AUD_FUNC8(t,n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5,t6,n6,t7,n7,t8,n8) t n (t1 n1, t2 n2, t3 n3, t4 n4, t5 n5, t6 n6, t7 n7, t8 n8);
+
+#define AUD_VFUNC0(n) void n (void);
+#define AUD_VFUNC1(n,t1,n1) void n (t1 n1);
+#define AUD_VFUNC2(n,t1,n1,t2,n2) void n (t1 n1, t2 n2);
+#define AUD_VFUNC3(n,t1,n1,t2,n2,t3,n3) void n (t1 n1, t2 n2, t3 n3);
+#define AUD_VFUNC4(n,t1,n1,t2,n2,t3,n3,t4,n4) void n (t1 n1, t2 n2, t3 n3, t4 n4);
+#define AUD_VFUNC5(n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5) void n (t1 n1, t2 n2, t3 n3, t4 n4, t5 n5);
+#define AUD_VFUNC6(n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5,t6,n6) void n (t1 n1, t2 n2, t3 n3, t4 n4, t5 n5, t6 n6);
+#define AUD_VFUNC7(n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5,t6,n6,t7,n7) void n (t1 n1, t2 n2, t3 n3, t4 n4, t5 n5, t6 n6, t7 n7);
+#define AUD_VFUNC8(n,t1,n1,t2,n2,t3,n3,t4,n4,t5,n5,t6,n6,t7,n7,t8,n8) void n (t1 n1, t2 n2, t3 n3, t4 n4, t5 n5, t6 n6, t7 n7, t8 n8);
diff --git a/src/audacious/api-local-end.h b/src/audacious/api-local-end.h
index c9b642f..a22d2c6 100644
--- a/src/audacious/api-local-end.h
+++ b/src/audacious/api-local-end.h
@@ -32,3 +32,15 @@
 #undef AUD_FUNC4
 #undef AUD_FUNC5
 #undef AUD_FUNC6
+#undef AUD_FUNC7
+#undef AUD_FUNC8
+
+#undef AUD_VFUNC0
+#undef AUD_VFUNC1
+#undef AUD_VFUNC2
+#undef AUD_VFUNC3
+#undef AUD_VFUNC4
+#undef AUD_VFUNC5
+#undef AUD_VFUNC6
+#undef AUD_VFUNC7
+#undef AUD_VFUNC8
diff --git a/src/audacious/api.h b/src/audacious/api.h
index 5cd3432..bfbb940 100644
--- a/src/audacious/api.h
+++ b/src/audacious/api.h
@@ -28,10 +28,12 @@ typedef const struct {
     const struct MiscAPI * misc_api;
     const struct PlaylistAPI * playlist_api;
     const struct PluginsAPI * plugins_api;
-    struct _AudConfig * cfg;
+    char * verbose;
 } AudAPITable;
 
-#ifndef _AUDACIOUS_CORE
+#ifdef _AUDACIOUS_CORE
+extern char verbose;
+#else
 extern AudAPITable * _aud_api_table;
 #endif
 
diff --git a/src/audacious/art.c b/src/audacious/art.c
new file mode 100644
index 0000000..3f430f3
--- /dev/null
+++ b/src/audacious/art.c
@@ -0,0 +1,243 @@
+/*
+ * art.c
+ * Copyright 2011 John Lindgren
+ *
+ * This file is part of Audacious.
+ *
+ * Audacious is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free Software
+ * Foundation, version 2 or version 3 of the License.
+ *
+ * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * Audacious. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * The Audacious team does not consider modular code linking to Audacious or
+ * using our public API to be a derived work.
+ */
+
+#include <errno.h>
+#include <glib.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include <libaudcore/audstrings.h>
+#include <libaudcore/hook.h>
+
+#include "main.h"
+#include "misc.h"
+#include "playlist.h"
+#include "util.h"
+
+typedef struct {
+    char * song_file; /* pooled */
+    int refcount;
+
+    /* album art as JPEG or PNG data */
+    void * data;
+    int64_t len;
+
+    /* album art as (possibly a temporary) file */
+    char * art_file;
+    bool_t is_temp;
+} ArtItem;
+
+static GHashTable * art_items;
+static char * current_file; /* pooled */
+
+static void art_item_free (ArtItem * item)
+{
+    /* delete temporary file */
+    if (item->art_file && item->is_temp)
+    {
+        char * unixname = uri_to_filename (item->art_file);
+        if (unixname)
+        {
+            unlink (unixname);
+            g_free (unixname);
+        }
+    }
+
+    str_unref (item->song_file);
+    g_free (item->data);
+    g_free (item->art_file);
+    g_slice_free (ArtItem, item);
+}
+
+static ArtItem * art_item_new (const char * file)
+{
+    /* local files only */
+    if (strncmp (file, "file://", 7))
+        return NULL;
+
+    ArtItem * item = g_slice_new0 (ArtItem);
+    item->song_file = str_get (file);
+
+    /* try to load embedded album art */
+    PluginHandle * decoder = file_find_decoder (file, FALSE);
+    if (decoder)
+        file_read_image (file, decoder, & item->data, & item->len);
+
+    if (item->data)
+        return item;
+
+    /* try to find external image file */
+    char * unixname = get_associated_image_file (file);
+    if (unixname)
+    {
+        item->art_file = filename_to_uri (unixname);
+        g_free (unixname);
+    }
+
+    if (item->art_file)
+        return item;
+
+    /* failed */
+    art_item_free (item);
+    return NULL;
+}
+
+static ArtItem * art_item_get (const char * file)
+{
+    if (! art_items)
+        art_items = g_hash_table_new_full (g_str_hash, g_str_equal,
+         NULL, (GDestroyNotify) art_item_free);
+
+    ArtItem * item = g_hash_table_lookup (art_items, file);
+    if (item)
+    {
+        item->refcount ++;
+        return item;
+    }
+
+    item = art_item_new (file);
+    if (! item)
+        return NULL;
+
+    g_hash_table_insert (art_items, item->song_file, item);
+    item->refcount = 1;
+    return item;
+}
+
+static void art_item_unref (ArtItem * item)
+{
+    if (! -- item->refcount)
+    {
+        /* keep album art for current entry */
+        if (current_file && ! strcmp (current_file, item->song_file))
+            return;
+
+        g_hash_table_remove (art_items, item->song_file);
+    }
+}
+
+static void release_current (void)
+{
+    if (! art_items || ! current_file)
+        return;
+
+    /* free album art for previous entry */
+    ArtItem * item = g_hash_table_lookup (art_items, current_file);
+    if (item && ! item->refcount)
+        g_hash_table_remove (art_items, current_file);
+}
+
+static void position_hook (void * data, void * user)
+{
+    release_current ();
+    str_unref (current_file);
+
+    int list = playlist_get_playing ();
+    int entry = (list >= 0) ? playlist_get_position (list) : -1;
+    current_file = (entry >= 0) ? playlist_entry_get_filename (list, entry) : NULL;
+}
+
+void art_init (void)
+{
+    hook_associate ("playlist position", position_hook, NULL);
+    hook_associate ("playlist set playing", position_hook, NULL);
+}
+
+void art_cleanup (void)
+{
+    hook_dissociate ("playlist position", position_hook);
+    hook_dissociate ("playlist set playing", position_hook);
+
+    release_current ();
+    str_unref (current_file);
+    current_file = NULL;
+
+    if (art_items && g_hash_table_size (art_items))
+    {
+        fprintf (stderr, "Album art not freed\n");
+        abort ();
+    }
+
+    if (art_items)
+    {
+        g_hash_table_destroy (art_items);
+        art_items = NULL;
+    }
+}
+
+void art_get_data (const char * file, const void * * data, int64_t * len)
+{
+    * data = NULL;
+    * len = 0;
+
+    ArtItem * item = art_item_get (file);
+    if (! item)
+        return;
+
+    /* load data from external image file */
+    if (! item->data && item->art_file)
+        vfs_file_get_contents (item->art_file, & item->data, & item->len);
+
+    if (! item->data)
+    {
+        art_item_unref (item);
+        return;
+    }
+
+    * data = item->data;
+    * len = item->len;
+}
+
+const char * art_get_file (const char * file)
+{
+    ArtItem * item = art_item_get (file);
+    if (! item)
+        return NULL;
+
+    /* save data to temporary file */
+    if (item->data && ! item->art_file)
+    {
+        char * unixname = write_temp_file (item->data, item->len);
+        if (unixname)
+        {
+            item->art_file = filename_to_uri (unixname);
+            item->is_temp = TRUE;
+            g_free (unixname);
+        }
+    }
+
+    if (! item->art_file)
+    {
+        art_item_unref (item);
+        return NULL;
+    }
+
+    return item->art_file;
+}
+
+void art_unref (const char * file)
+{
+    ArtItem * item = art_items ? g_hash_table_lookup (art_items, file) : NULL;
+    if (item)
+        art_item_unref (item);
+}
diff --git a/src/audacious/audacious.rc b/src/audacious/audacious.rc
new file mode 100644
index 0000000..b37beeb
--- /dev/null
+++ b/src/audacious/audacious.rc
@@ -0,0 +1,7 @@
+#include <windows.h>
+
+LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
+
+#define IDI_ICON_AUDACIOUS 102
+
+IDI_ICON_AUDACIOUS ICON "../../pixmaps/audacious.ico"
diff --git a/src/audacious/audconfig.c b/src/audacious/audconfig.c
deleted file mode 100644
index 3556c37..0000000
--- a/src/audacious/audconfig.c
+++ /dev/null
@@ -1,326 +0,0 @@
-/*  Audacious - Cross-platform multimedia player
- *  Copyright (C) 2005-2010  Audacious development team.
- *
- *  Based on BMP:
- *  Copyright (C) 2003-2004  BMP development team.
- *
- *  Based on XMMS:
- *  Copyright (C) 1998-2003  XMMS development team.
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; under version 3 of the License.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program.  If not, see <http://www.gnu.org/licenses>.
- *
- *  The Audacious team does not consider modular code linking to
- *  Audacious or using our public API to be a derived work.
- */
-
-#include <glib.h>
-#include <libaudcore/hook.h>
-
-#include "audconfig.h"
-#include "configdb.h"
-#include "playback.h"
-
-AudConfig cfg = {
-    .shuffle = FALSE,
-    .repeat = FALSE,
-    .equalizer_autoload = FALSE,
-    .equalizer_active = FALSE,
-    .playlist_visible = FALSE,
-    .equalizer_visible = FALSE,
-    .player_visible = TRUE,
-    .show_numbers_in_pl = TRUE,
-    .leading_zero = TRUE,
-    .no_playlist_advance = FALSE,
-    .advance_on_delete = FALSE,
-    .clear_playlist = TRUE,
-    .open_to_temporary = FALSE,
-    .stopaftersong = FALSE,
-    .close_dialog_open = TRUE,
-    .equalizer_preamp = 0.0,
-    .equalizer_bands = {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0},
-    .filesel_path = NULL,
-    .playlist_path = NULL,
-    .eqpreset_default_file = NULL,
-    .eqpreset_extension = NULL,
-    .url_history = NULL,
-    .resume_playback_on_startup = FALSE,
-    .resume_state = 0,
-    .resume_playback_on_startup_time = 0,
-    .chardet_detector = NULL,
-    .chardet_fallback = NULL,
-    .chardet_fallback_s = NULL,
-    .output_buffer_size = 500,
-    .show_filepopup_for_tuple = TRUE,
-    .cover_name_include = NULL,        /* words identifying covers */
-    .cover_name_exclude = NULL,        /* words that might not show up in cover names */
-    .recurse_for_cover = FALSE,
-    .recurse_for_cover_depth = 0,
-    .filepopup_pixelsize = 150,        /* short side length of the picture in the filepopup */
-    .filepopup_delay = 20,             /* delay until the filepopup comes up */
-    .use_file_cover = FALSE,           /* use filename.jpg for coverart */
-    .filepopup_showprogressbar = TRUE,
-    .close_jtf_dialog = TRUE,          /* close jtf dialog on jump */
-    .software_volume_control = FALSE,
-    .remember_jtf_entry = TRUE,
-    .output_bit_depth = 16,
-    .enable_replay_gain = TRUE,
-    .enable_clipping_prevention = TRUE,
-    .replay_gain_track = TRUE,         /* track mode */
-    .replay_gain_album = FALSE,        /* album mode */
-    .replay_gain_preamp = 0,
-    .default_gain = 0,
-    .sw_volume_left = 100, .sw_volume_right = 100,
-
-    /* libaudgui stuff */
-    .no_confirm_playlist_delete = FALSE,
-    .playlist_manager_x = 0,
-    .playlist_manager_y = 0,
-    .playlist_manager_width = 0,
-    .playlist_manager_height = 0,
-    .playlist_manager_close_on_activate = FALSE,
-
-    /* not saved */
-    .verbose = FALSE,
-};
-
-typedef struct aud_cfg_boolent_t {
-    char const *be_vname;
-    gboolean *be_vloc;
-    gboolean be_wrt;
-} aud_cfg_boolent;
-
-typedef struct aud_cfg_nument_t {
-    char const *ie_vname;
-    gint *ie_vloc;
-    gboolean ie_wrt;
-} aud_cfg_nument;
-
-typedef struct aud_cfg_strent_t {
-    char const *se_vname;
-    char **se_vloc;
-    gboolean se_wrt;
-} aud_cfg_strent;
-
-static aud_cfg_boolent aud_boolents[] = {
-    {"show_numbers_in_pl", &cfg.show_numbers_in_pl, TRUE},
-    {"leading_zero", & cfg.leading_zero, TRUE},
-    {"no_playlist_advance", &cfg.no_playlist_advance, TRUE},
-    {"advance_on_delete", & cfg.advance_on_delete, TRUE},
-    {"clear_playlist", & cfg.clear_playlist, TRUE},
-    {"open_to_temporary", & cfg.open_to_temporary, TRUE},
-    {"player_visible", &cfg.player_visible, TRUE},
-    {"shuffle", &cfg.shuffle, TRUE},
-    {"repeat", &cfg.repeat, TRUE},
-    {"stop_after_current_song", &cfg.stopaftersong, TRUE},
-    {"playlist_visible", &cfg.playlist_visible, TRUE},
-    {"equalizer_visible", &cfg.equalizer_visible, TRUE},
-    {"equalizer_active", &cfg.equalizer_active, TRUE},
-    {"equalizer_autoload", &cfg.equalizer_autoload, TRUE},
-    {"close_dialog_open", &cfg.close_dialog_open, TRUE},
-    {"resume_playback_on_startup", &cfg.resume_playback_on_startup, TRUE},
-    {"show_filepopup_for_tuple", &cfg.show_filepopup_for_tuple, TRUE},
-    {"recurse_for_cover", &cfg.recurse_for_cover, TRUE},
-    {"use_file_cover", &cfg.use_file_cover, TRUE},
-    {"filepopup_showprogressbar", &cfg.filepopup_showprogressbar, TRUE},
-    {"close_jtf_dialog", &cfg.close_jtf_dialog, TRUE},
-    {"software_volume_control", &cfg.software_volume_control, TRUE},
-    {"remember_jtf_entry", &cfg.remember_jtf_entry, TRUE},
-    {"enable_replay_gain", &cfg.enable_replay_gain, TRUE},
-    {"enable_clipping_prevention", &cfg.enable_clipping_prevention, TRUE},
-    {"replay_gain_track", &cfg.replay_gain_track, TRUE},
-    {"replay_gain_album", &cfg.replay_gain_album, TRUE},
-    {"no_confirm_playlist_delete", &cfg.no_confirm_playlist_delete, TRUE},
-    {"playlist_manager_close_on_activate",
-     & cfg.playlist_manager_close_on_activate, TRUE},
-};
-
-static gint ncfgbent = G_N_ELEMENTS(aud_boolents);
-
-static aud_cfg_nument aud_numents[] = {
-    {"titlestring_preset", &cfg.titlestring_preset, TRUE},
-    {"resume_state", & cfg.resume_state, TRUE},
-    {"resume_playback_on_startup_time", &cfg.resume_playback_on_startup_time, TRUE},
-    {"output_buffer_size", &cfg.output_buffer_size, TRUE},
-    {"recurse_for_cover_depth", &cfg.recurse_for_cover_depth, TRUE},
-    {"filepopup_pixelsize", &cfg.filepopup_pixelsize, TRUE},
-    {"filepopup_delay", &cfg.filepopup_delay, TRUE},
-    {"output_bit_depth", &cfg.output_bit_depth, TRUE},
-    {"sw_volume_left", & cfg.sw_volume_left, TRUE},
-    {"sw_volume_right", & cfg.sw_volume_right, TRUE},
-    {"playlist_manager_x", & cfg.playlist_manager_x, TRUE},
-    {"playlist_manager_y", & cfg.playlist_manager_y, TRUE},
-    {"playlist_manager_width", & cfg.playlist_manager_width, TRUE},
-    {"playlist_manager_height", & cfg.playlist_manager_height, TRUE},
-};
-
-static gint ncfgient = G_N_ELEMENTS(aud_numents);
-
-static aud_cfg_strent aud_strents[] = {
-    {"eqpreset_default_file", &cfg.eqpreset_default_file, TRUE},
-    {"eqpreset_extension", &cfg.eqpreset_extension, TRUE},
-    {"filesel_path", &cfg.filesel_path, FALSE},
-    {"playlist_path", &cfg.playlist_path, FALSE},
-    {"generic_title_format", &cfg.gentitle_format, TRUE},
-    {"chardet_detector", &cfg.chardet_detector, TRUE},
-    {"chardet_fallback", &cfg.chardet_fallback, TRUE},
-    {"cover_name_include", &cfg.cover_name_include, TRUE},
-    {"cover_name_exclude", &cfg.cover_name_exclude, TRUE},
-};
-
-static gint ncfgsent = G_N_ELEMENTS(aud_strents);
-
-void aud_config_chardet_update(void)
-{
-    if (cfg.chardet_fallback_s != NULL)
-        g_strfreev(cfg.chardet_fallback_s);
-    cfg.chardet_fallback_s = g_strsplit_set(cfg.chardet_fallback, " ,:;|/", 0);
-}
-
-
-void
-aud_config_load(void)
-{
-    mcs_handle_t *db;
-    gint i, length;
-
-    if (! (db = cfg_db_open ()))
-        return;
-
-    for (i = 0; i < ncfgbent; ++i) {
-        cfg_db_get_bool(db, NULL,
-                            aud_boolents[i].be_vname,
-                            aud_boolents[i].be_vloc);
-    }
-
-    for (i = 0; i < ncfgient; ++i) {
-        cfg_db_get_int(db, NULL,
-                           aud_numents[i].ie_vname,
-                           aud_numents[i].ie_vloc);
-    }
-
-    for (i = 0; i < ncfgsent; ++i) {
-        cfg_db_get_string(db, NULL,
-                              aud_strents[i].se_vname,
-                              aud_strents[i].se_vloc);
-    }
-
-    /* Preset */
-    cfg_db_get_float(db, NULL, "equalizer_preamp", &cfg.equalizer_preamp);
-    for (i = 0; i < AUD_EQUALIZER_NBANDS; i++) {
-        gchar eqtext[32];
-
-        g_snprintf(eqtext, sizeof(eqtext), "equalizer_band%d", i);
-        cfg_db_get_float(db, NULL, eqtext, &cfg.equalizer_bands[i]);
-    }
-
-    /* History */
-    if (cfg_db_get_int(db, NULL, "url_history_length", &length)) {
-        for (i = 1; i <= length; i++) {
-            gchar str[19], *tmp;
-
-            g_snprintf(str, sizeof(str), "url_history%d", i);
-            if (cfg_db_get_string(db, NULL, str, &tmp))
-                cfg.url_history = g_list_append(cfg.url_history, tmp);
-        }
-    }
-
-    /* RG settings */
-    cfg_db_get_float(db, NULL, "replay_gain_preamp", &cfg.replay_gain_preamp);
-    cfg_db_get_float(db, NULL, "default_gain", &cfg.default_gain);
-
-    cfg_db_close(db);
-
-    if (!cfg.gentitle_format)
-        cfg.gentitle_format = g_strdup("${?artist:${artist} - }${?album:${album} - }${title}");
-
-    if (!cfg.chardet_detector)
-        cfg.chardet_detector = g_strdup("");
-
-    if (!cfg.chardet_fallback)
-        cfg.chardet_fallback = g_strdup("");
-
-    aud_config_chardet_update();
-
-    if (!cfg.cover_name_include)
-        cfg.cover_name_include = g_strdup("album,folder");
-
-    if (!cfg.cover_name_exclude)
-        cfg.cover_name_exclude = g_strdup("back");
-}
-
-void
-aud_config_save(void)
-{
-    GList *node;
-    gchar *str;
-    gint i;
-    mcs_handle_t *db;
-
-    hook_call ("config save", NULL);
-
-    cfg.resume_state = playback_get_playing () ? (playback_get_paused () ? 2 :
-     1) : 0;
-    cfg.resume_playback_on_startup_time = playback_get_playing () ?
-     playback_get_time () : 0;
-
-    if (! (db = cfg_db_open ()))
-        return;
-
-    for (i = 0; i < ncfgbent; ++i)
-        if (aud_boolents[i].be_wrt)
-            cfg_db_set_bool(db, NULL,
-                                aud_boolents[i].be_vname,
-                                *aud_boolents[i].be_vloc);
-
-    for (i = 0; i < ncfgient; ++i)
-        if (aud_numents[i].ie_wrt)
-            cfg_db_set_int(db, NULL,
-                               aud_numents[i].ie_vname,
-                               *aud_numents[i].ie_vloc);
-
-    for (i = 0; i < ncfgsent; ++i) {
-        if (aud_strents[i].se_wrt)
-            cfg_db_set_string(db, NULL,
-                                  aud_strents[i].se_vname,
-                                  *aud_strents[i].se_vloc);
-    }
-
-    cfg_db_set_float(db, NULL, "equalizer_preamp", cfg.equalizer_preamp);
-
-    /* RG settings */
-    cfg_db_set_float(db, NULL, "replay_gain_preamp", cfg.replay_gain_preamp);
-    cfg_db_set_float(db, NULL, "default_gain",       cfg.default_gain);
-
-    for (i = 0; i < 10; i++) {
-        str = g_strdup_printf("equalizer_band%d", i);
-        cfg_db_set_float(db, NULL, str, cfg.equalizer_bands[i]);
-        g_free(str);
-    }
-
-    if (cfg.filesel_path)
-        cfg_db_set_string(db, NULL, "filesel_path", cfg.filesel_path);
-
-    if (cfg.playlist_path)
-        cfg_db_set_string(db, NULL, "playlist_path", cfg.playlist_path);
-
-    cfg_db_set_int(db, NULL, "url_history_length",
-                       g_list_length(cfg.url_history));
-
-    for (node = cfg.url_history, i = 1; node; node = g_list_next(node), i++) {
-        str = g_strdup_printf("url_history%d", i);
-        cfg_db_set_string(db, NULL, str, node->data);
-        g_free(str);
-    }
-
-    cfg_db_close(db);
-}
diff --git a/src/audacious/audconfig.h b/src/audacious/audconfig.h
deleted file mode 100644
index cf38773..0000000
--- a/src/audacious/audconfig.h
+++ /dev/null
@@ -1,100 +0,0 @@
-/*  Audacious - Cross-platform multimedia player
- *  Copyright (C) 2005-2010  Audacious development team
- *
- *  Based on BMP:
- *  Copyright (C) 2003-2004  BMP development team
- *
- *  Based on XMMS:
- *  Copyright (C) 1998-2003  XMMS development team
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; under version 3 of the License.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program.  If not, see <http://www.gnu.org/licenses>.
- *
- *  The Audacious team does not consider modular code linking to
- *  Audacious or using our public API to be a derived work.
- */
-
-#ifndef AUDACIOUS_AUDCONFIG_H
-#define AUDACIOUS_AUDCONFIG_H
-
-#include <glib.h>
-#include <audacious/types.h>
-
-#ifndef _AUDACIOUS_CORE
-#include <audacious/api.h>
-#define aud_cfg (_aud_api_table->cfg)
-#endif
-
-struct _AudConfig {
-    gboolean shuffle, repeat;
-    gboolean equalizer_autoload, equalizer_active;
-    gboolean playlist_visible, equalizer_visible, player_visible;
-    gboolean show_numbers_in_pl, leading_zero;
-    gboolean no_playlist_advance, advance_on_delete, clear_playlist,
-     open_to_temporary;
-    gboolean stopaftersong;
-    gboolean close_dialog_open;
-    gfloat equalizer_preamp, equalizer_bands[AUD_EQUALIZER_NBANDS];
-    gchar *filesel_path;
-    gchar *playlist_path;
-    gchar *eqpreset_default_file, *eqpreset_extension;
-    GList *url_history;
-    gint titlestring_preset;
-    gchar *gentitle_format;
-    gboolean resume_playback_on_startup;
-    gint resume_state;
-    gint resume_playback_on_startup_time;
-    gchar *chardet_detector;
-    gchar *chardet_fallback;
-    gchar **chardet_fallback_s;
-    gint output_buffer_size;
-    gboolean show_filepopup_for_tuple;
-    gchar *cover_name_include, *cover_name_exclude;
-    gboolean recurse_for_cover;
-    gint recurse_for_cover_depth;
-    gint filepopup_pixelsize;
-    gint filepopup_delay;
-    gboolean use_file_cover;
-    gboolean filepopup_showprogressbar;
-    gboolean close_jtf_dialog;
-    gboolean software_volume_control;
-    gboolean remember_jtf_entry;
-    gint output_bit_depth;
-    gboolean enable_replay_gain;
-    gboolean enable_clipping_prevention;
-    gboolean replay_gain_track;
-    gboolean replay_gain_album;
-    gfloat replay_gain_preamp;
-    gfloat default_gain;
-    gint sw_volume_left, sw_volume_right;
-
-    /* libaudgui stuff */
-    gboolean no_confirm_playlist_delete;
-    gint playlist_manager_x, playlist_manager_y, playlist_manager_width,
-     playlist_manager_height;
-    gboolean playlist_manager_close_on_activate;
-
-    /* not saved */
-    gboolean verbose;
-};
-
-typedef struct _AudConfig AudConfig;
-
-extern AudConfig cfg;
-extern AudConfig aud_default_config;
-
-void aud_config_load(void);
-void aud_config_save(void);
-
-void aud_config_chardet_update(void);
-
-#endif /* AUDACIOUS_AUDCONFIG_H */
diff --git a/src/audacious/chardet.c b/src/audacious/chardet.c
index 9010db2..bdbe026 100644
--- a/src/audacious/chardet.c
+++ b/src/audacious/chardet.c
@@ -17,26 +17,28 @@
  *  Audacious or using our public API to be a derived work.
  */
 
+#include <glib.h>
 #include <string.h>
 #include <libaudcore/audstrings.h>
 
-#include "audconfig.h"
 #include "config.h"
-#include "i18n.h"
 #include "debug.h"
+#include "i18n.h"
+#include "main.h"
+#include "misc.h"
 
 #ifdef USE_CHARDET
 #  include <libguess.h>
 #endif
 
-static gchar * cd_chardet_to_utf8 (const gchar * str, gssize len,
- gsize * arg_bytes_read, gsize * arg_bytes_write, GError ** error);
+static char * cd_chardet_to_utf8 (const char * str, int len,
+ int * arg_bytes_read, int * arg_bytes_written);
 
-static gchar * str_to_utf8_fallback (const gchar * str)
+static char * str_to_utf8_fallback (const char * str)
 {
-    gchar * out = g_strconcat (str, _("  (invalid UTF-8)"), NULL);
+    char * out = g_strconcat (str, _("  (invalid UTF-8)"), NULL);
 
-    for (gchar * c = out; * c; c ++)
+    for (char * c = out; * c; c ++)
     {
         if (* c & 0x80)
             * c = '?';
@@ -45,9 +47,9 @@ static gchar * str_to_utf8_fallback (const gchar * str)
     return out;
 }
 
-static gchar * cd_str_to_utf8 (const gchar * str)
+static char * cd_str_to_utf8 (const char * str)
 {
-    gchar *out_str;
+    char *out_str;
 
     if (str == NULL)
         return NULL;
@@ -84,25 +86,19 @@ static gchar * cd_str_to_utf8 (const gchar * str)
 #endif
 
     /* chardet encoding detector */
-    if ((out_str = cd_chardet_to_utf8(str, strlen(str), NULL, NULL, NULL)) != NULL)
+    if ((out_str = cd_chardet_to_utf8 (str, strlen (str), NULL, NULL)))
         return out_str;
 
     /* all else fails, we mask off character codes >= 128, replace with '?' */
     return str_to_utf8_fallback(str);
 }
 
-static gchar * cd_chardet_to_utf8 (const gchar * str, gssize len,
- gsize * arg_bytes_read, gsize * arg_bytes_write, GError ** error)
+static char * cd_chardet_to_utf8 (const char * str, int len,
+ int * arg_bytes_read, int * arg_bytes_write)
 {
-    if (error)
-        * error = NULL;
-
-#ifdef USE_CHARDET
-    gchar *det = NULL, *encoding = NULL;
-#endif
-    gchar *ret = NULL;
-    gsize *bytes_read, *bytes_write;
-    gsize my_bytes_read, my_bytes_write;
+    char *ret = NULL;
+    int * bytes_read, * bytes_write;
+    int my_bytes_read, my_bytes_write;
 
     bytes_read = arg_bytes_read != NULL ? arg_bytes_read : &my_bytes_read;
     bytes_write = arg_bytes_write != NULL ? arg_bytes_write : &my_bytes_write;
@@ -129,33 +125,40 @@ static gchar * cd_chardet_to_utf8 (const gchar * str, gssize len,
 
         return ret;
     }
+
 #ifdef USE_CHARDET
-    if (cfg.chardet_detector)
-        det = cfg.chardet_detector;
+    char * det = get_string (NULL, "chardet_detector");
 
-    if (det)
+    if (det[0])
     {
         AUDDBG("guess encoding (%s) %s\n", det, str);
-        encoding = (gchar *) libguess_determine_encoding(str, len, det);
+        const char * encoding = libguess_determine_encoding (str, len, det);
         AUDDBG("encoding = %s\n", encoding);
-        if (encoding == NULL)
-            goto fallback;
-
-        ret = g_convert (str, len, "UTF-8", encoding, bytes_read, bytes_write,
-         (error && * error) ? NULL : error);
+        if (encoding)
+        {
+            gsize read_gsize = 0, written_gsize = 0;
+            ret = g_convert (str, len, "UTF-8", encoding, & read_gsize, & written_gsize, NULL);
+            * bytes_read = read_gsize;
+            * bytes_write = written_gsize;
+        }
     }
 
-fallback:
+    g_free (det);
 #endif
 
     /* If detection failed or was not enabled, try fallbacks (if there are any) */
-    if (ret == NULL && cfg.chardet_fallback_s != NULL)
+    if (! ret)
     {
-        gchar **enc;
-        for (enc = cfg.chardet_fallback_s; *enc != NULL; enc++)
+        char * fallbacks = get_string (NULL, "chardet_fallback");
+        char * * split = g_strsplit_set (fallbacks, " ,:;|/", -1);
+
+        for (char * * enc = split; * enc; enc ++)
         {
-            ret = g_convert (str, len, "UTF-8", * enc, bytes_read, bytes_write,
-             (error && * error) ? NULL : error);
+            gsize read_gsize = 0, written_gsize = 0;
+            ret = g_convert (str, len, "UTF-8", * enc, & read_gsize, & written_gsize, NULL);
+            * bytes_read = read_gsize;
+            * bytes_write = written_gsize;
+
             if (len == *bytes_read)
                 break;
             else {
@@ -163,17 +166,28 @@ fallback:
                 ret = NULL;
             }
         }
+
+        g_strfreev (split);
+        g_free (fallbacks);
     }
 
     /* First fallback: locale (duh!) */
     if (ret == NULL)
-        ret = g_locale_to_utf8 (str, len, bytes_read, bytes_write,
-         (error && * error) ? NULL : error);
+    {
+        gsize read_gsize = 0, written_gsize = 0;
+        ret = g_locale_to_utf8 (str, len, & read_gsize, & written_gsize, NULL);
+        * bytes_read = read_gsize;
+        * bytes_write = written_gsize;
+    }
 
     /* The final fallback is ISO-8859-1, if no other is specified or conversions fail */
     if (ret == NULL)
-        ret = g_convert (str, len, "UTF-8", "ISO-8859-1", bytes_read,
-         bytes_write, (error && * error) ? NULL : error);
+    {
+        gsize read_gsize = 0, written_gsize = 0;
+        ret = g_convert (str, len, "UTF-8", "ISO-8859-1", & read_gsize, & written_gsize, NULL);
+        * bytes_read = read_gsize;
+        * bytes_write = written_gsize;
+    }
 
     if (ret != NULL)
     {
@@ -192,5 +206,8 @@ fallback:
 
 void chardet_init (void)
 {
+#ifdef USE_CHARDET
+    libguess_determine_encoding(NULL, -1, "");
+#endif
     str_set_utf8_impl (cd_str_to_utf8, cd_chardet_to_utf8);
 }
diff --git a/src/audacious/config.c b/src/audacious/config.c
new file mode 100644
index 0000000..c952e05
--- /dev/null
+++ b/src/audacious/config.c
@@ -0,0 +1,335 @@
+/*
+ * config.c
+ * Copyright 2011 John Lindgren
+ *
+ * This file is part of Audacious.
+ *
+ * Audacious is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free Software
+ * Foundation, version 2 or version 3 of the License.
+ *
+ * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * Audacious. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * The Audacious team does not consider modular code linking to Audacious or
+ * using our public API to be a derived work.
+ */
+
+#include <glib.h>
+#include <pthread.h>
+#include <stdio.h>
+#include <string.h>
+
+#include <libaudcore/audstrings.h>
+#include <libaudcore/hook.h>
+
+#include "main.h"
+#include "misc.h"
+
+#define DEFAULT_SECTION "audacious"
+
+static const char * const core_defaults[] = {
+
+ /* general */
+ "advance_on_delete", "FALSE",
+ "clear_playlist", "TRUE",
+ "open_to_temporary", "TRUE",
+ "resume_playback_on_startup", "FALSE",
+
+ /* equalizer */
+ "eqpreset_default_file", "",
+ "eqpreset_extension", "",
+ "equalizer_active", "FALSE",
+ "equalizer_autoload", "FALSE",
+ "equalizer_bands", "0,0,0,0,0,0,0,0,0,0",
+ "equalizer_preamp", "0",
+
+ /* info popup / info window */
+ "cover_name_exclude", "back",
+ "cover_name_include", "album,cover,front,folder",
+ "filepopup_delay", "5",
+ "filepopup_showprogressbar", "TRUE",
+ "recurse_for_cover", "FALSE",
+ "recurse_for_cover_depth", "0",
+ "show_filepopup_for_tuple", "TRUE",
+ "use_file_cover", "FALSE",
+
+ /* network */
+ "use_proxy", "FALSE",
+ "use_proxy_auth", "FALSE",
+
+ /* output */
+ "default_gain", "0",
+ "enable_replay_gain", "TRUE",
+ "enable_clipping_prevention", "TRUE",
+ "output_bit_depth", "16",
+ "output_buffer_size", "500",
+ "replay_gain_album", "FALSE",
+ "replay_gain_preamp", "0",
+ "software_volume_control", "FALSE",
+ "sw_volume_left", "100",
+ "sw_volume_right", "100",
+
+ /* playback */
+ "no_playlist_advance", "FALSE",
+ "repeat", "FALSE",
+ "shuffle", "FALSE",
+ "stop_after_current_song", "FALSE",
+
+ /* playlist */
+ "generic_title_format", "${?artist:${artist} - }${?album:${album} - }${title}",
+ "leading_zero", "FALSE",
+ "metadata_on_play", "FALSE",
+ "show_numbers_in_pl", "FALSE",
+
+ NULL};
+
+static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
+static GHashTable * defaults;
+static GKeyFile * keyfile;
+static bool_t modified;
+
+/* str_unref() may be a macro */
+static void str_unref_cb (void * str)
+{
+    str_unref (str);
+}
+
+void config_load (void)
+{
+    g_return_if_fail (! defaults && ! keyfile);
+    pthread_mutex_lock (& mutex);
+
+    defaults = g_hash_table_new_full (g_str_hash, g_str_equal, g_free,
+     (GDestroyNotify) g_hash_table_destroy);
+    keyfile = g_key_file_new ();
+
+    char * path = g_strdup_printf ("%s/config", get_path (AUD_PATH_USER_DIR));
+    if (g_file_test (path, G_FILE_TEST_EXISTS))
+    {
+        GError * error = NULL;
+        if (! g_key_file_load_from_file (keyfile, path, 0, & error))
+        {
+            fprintf (stderr, "Error loading config: %s\n", error->message);
+            g_error_free (error);
+        }
+    }
+    g_free (path);
+
+    modified = FALSE;
+    pthread_mutex_unlock (& mutex);
+
+    config_set_defaults (NULL, core_defaults);
+}
+
+void config_save (void)
+{
+    g_return_if_fail (defaults && keyfile);
+    pthread_mutex_lock (& mutex);
+
+    if (! modified)
+    {
+        pthread_mutex_unlock (& mutex);
+        return;
+    }
+
+    char * path = g_strdup_printf ("%s/config", get_path (AUD_PATH_USER_DIR));
+    char * data = g_key_file_to_data (keyfile, NULL, NULL);
+
+    GError * error = NULL;
+    if (! g_file_set_contents (path, data, -1, & error))
+    {
+        fprintf (stderr, "Error saving config: %s\n", error->message);
+        g_error_free (error);
+    }
+
+    g_free (data);
+    g_free (path);
+
+    modified = FALSE;
+    pthread_mutex_unlock (& mutex);
+}
+
+void config_cleanup (void)
+{
+    g_return_if_fail (defaults && keyfile);
+    pthread_mutex_lock (& mutex);
+
+    g_key_file_free (keyfile);
+    keyfile = NULL;
+    g_hash_table_destroy (defaults);
+    defaults = NULL;
+
+    pthread_mutex_unlock (& mutex);
+}
+
+void config_clear_section (const char * section)
+{
+    g_return_if_fail (defaults && keyfile);
+    pthread_mutex_lock (& mutex);
+
+    if (! section)
+        section = DEFAULT_SECTION;
+
+    if (g_key_file_has_group (keyfile, section))
+    {
+        g_key_file_remove_group (keyfile, section, NULL);
+        modified = TRUE;
+    }
+
+    pthread_mutex_unlock (& mutex);
+}
+
+void config_set_defaults (const char * section, const char * const * entries)
+{
+    g_return_if_fail (defaults && keyfile);
+    pthread_mutex_lock (& mutex);
+
+    if (! section)
+        section = DEFAULT_SECTION;
+
+    GHashTable * table = g_hash_table_lookup (defaults, section);
+    if (! table)
+    {
+        table = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, str_unref_cb);
+        g_hash_table_replace (defaults, g_strdup (section), table);
+    }
+
+    while (1)
+    {
+        const char * name = * entries ++;
+        const char * value = * entries ++;
+        if (! name || ! value)
+            break;
+
+        g_hash_table_replace (table, g_strdup (name), str_get (value));
+    }
+
+    pthread_mutex_unlock (& mutex);
+}
+
+static const char * get_default (const char * section, const char * name)
+{
+    GHashTable * table = g_hash_table_lookup (defaults, section);
+    const char * def = table ? g_hash_table_lookup (table, name) : NULL;
+    return def ? def : "";
+}
+
+void set_string (const char * section, const char * name, const char * value)
+{
+    g_return_if_fail (defaults && keyfile);
+    g_return_if_fail (name && value);
+    pthread_mutex_lock (& mutex);
+
+    if (! section)
+        section = DEFAULT_SECTION;
+
+    const char * def = get_default (section, name);
+    bool_t changed = FALSE;
+
+    if (! strcmp (value, def))
+    {
+        if (g_key_file_has_key (keyfile, section, name, NULL))
+        {
+            g_key_file_remove_key (keyfile, section, name, NULL);
+            changed = TRUE;
+        }
+    }
+    else
+    {
+        char * old = g_key_file_has_key (keyfile, section, name, NULL) ?
+         g_key_file_get_value (keyfile, section, name, NULL) : NULL;
+
+        if (! old || strcmp (value, old))
+        {
+            g_key_file_set_value (keyfile, section, name, value);
+            changed = TRUE;
+        }
+
+        g_free (old);
+    }
+
+    if (changed)
+    {
+        modified = TRUE;
+
+        if (! strcmp (section, DEFAULT_SECTION))
+        {
+            char * event = g_strdup_printf ("set %s", name);
+            event_queue (event, NULL);
+            g_free (event);
+        }
+    }
+
+    pthread_mutex_unlock (& mutex);
+}
+
+char * get_string (const char * section, const char * name)
+{
+    g_return_val_if_fail (defaults && keyfile, g_strdup (""));
+    g_return_val_if_fail (name, g_strdup (""));
+    pthread_mutex_lock (& mutex);
+
+    if (! section)
+        section = DEFAULT_SECTION;
+
+    char * value = g_key_file_has_key (keyfile, section, name, NULL) ?
+     g_key_file_get_value (keyfile, section, name, NULL) : NULL;
+
+    if (! value)
+        value = g_strdup (get_default (section, name));
+
+    pthread_mutex_unlock (& mutex);
+    return value;
+}
+
+void set_bool (const char * section, const char * name, bool_t value)
+{
+    set_string (section, name, value ? "TRUE" : "FALSE");
+}
+
+bool_t get_bool (const char * section, const char * name)
+{
+    char * string = get_string (section, name);
+    bool_t value = ! strcmp (string, "TRUE");
+    g_free (string);
+    return value;
+}
+
+void set_int (const char * section, const char * name, int value)
+{
+    char * string = int_to_string (value);
+    g_return_if_fail (string);
+    set_string (section, name, string);
+    g_free (string);
+}
+
+int get_int (const char * section, const char * name)
+{
+    int value = 0;
+    char * string = get_string (section, name);
+    string_to_int (string, & value);
+    g_free (string);
+    return value;
+}
+
+void set_double (const char * section, const char * name, double value)
+{
+    char * string = double_to_string (value);
+    g_return_if_fail (string);
+    set_string (section, name, string);
+    g_free (string);
+}
+
+double get_double (const char * section, const char * name)
+{
+    double value = 0;
+    char * string = get_string (section, name);
+    string_to_double (string, & value);
+    g_free (string);
+    return value;
+}
diff --git a/src/audacious/configdb-api.h b/src/audacious/configdb-api.h
deleted file mode 100644
index 001cefb..0000000
--- a/src/audacious/configdb-api.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * playlist-api.h
- * Copyright 2010 John Lindgren
- *
- * This file is part of Audacious.
- *
- * Audacious is free software: you can redistribute it and/or modify it under
- * the terms of the GNU General Public License as published by the Free Software
- * Foundation, version 2 or version 3 of the License.
- *
- * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * Audacious. If not, see <http://www.gnu.org/licenses/>.
- *
- * The Audacious team does not consider modular code linking to Audacious or
- * using our public API to be a derived work.
- */
-
-/* Do not include this file directly; use playlist.h instead. */
-
-/* CAUTION: These functions are not thread safe. */
-
-AUD_FUNC0 (mcs_handle_t *, cfg_db_open)
-AUD_FUNC1 (void, cfg_db_close, mcs_handle_t *, db)
-
-AUD_FUNC4 (gboolean, cfg_db_get_string, mcs_handle_t *, db, const gchar *,
- section, const gchar *, key, gchar * *, value)
-AUD_FUNC4 (gboolean, cfg_db_get_int, mcs_handle_t *, db, const gchar *, section,
- const gchar *, key, gint *, value)
-AUD_FUNC4 (gboolean, cfg_db_get_bool, mcs_handle_t *, db, const gchar *,
- section, const gchar *, key, gboolean *, value)
-AUD_FUNC4 (gboolean, cfg_db_get_float, mcs_handle_t *, db, const gchar *,
- section, const gchar *, key, gfloat *, value)
-AUD_FUNC4 (gboolean, cfg_db_get_double, mcs_handle_t *, db, const gchar *,
- section, const gchar *, key, gdouble *, value)
-
-AUD_FUNC4 (void, cfg_db_set_string, mcs_handle_t *, db, const gchar *, section,
- const gchar *, key, const gchar *, value)
-AUD_FUNC4 (void, cfg_db_set_int, mcs_handle_t *, db, const gchar *, section,
- const gchar *, key, gint, value)
-AUD_FUNC4 (void, cfg_db_set_bool, mcs_handle_t *, db, const gchar *, section,
- const gchar *, key, gboolean, value)
-AUD_FUNC4 (void, cfg_db_set_float, mcs_handle_t *, db, const gchar *, section,
- const gchar *, key, gfloat, value)
-AUD_FUNC4 (void, cfg_db_set_double, mcs_handle_t *, db, const gchar *, section,
- const gchar *, key, gdouble, value)
-
-AUD_FUNC3 (void, cfg_db_unset_key, mcs_handle_t *, db, const gchar *, section,
- const gchar *, key)
diff --git a/src/audacious/configdb.c b/src/audacious/configdb.c
deleted file mode 100644
index dd9e68d..0000000
--- a/src/audacious/configdb.c
+++ /dev/null
@@ -1,346 +0,0 @@
-/*
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; under version 3 of the License.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program.  If not, see <http://www.gnu.org/licenses>.
- *
- *  The Audacious team does not consider modular code linking to
- *  Audacious or using our public API to be a derived work.
- */
-
-#ifdef HAVE_CONFIG_H
-#  include "config.h"
-#endif
-
-#include "configdb.h"
-#include <libmcs/mcs.h>
-#include <stdlib.h>
-#include <string.h>
-
-
-#define RCFILE_DEFAULT_SECTION_NAME "audacious"
-
-static gboolean mcs_initted = FALSE;
-static mcs_handle_t * config_handle = NULL;
-static gint config_refcount = 0;
-
-/**
- * Opens the configuration database.
- *
- * @return A configuration database handle pointer.
- */
-mcs_handle_t *
-cfg_db_open()
-{
-    if (!mcs_initted)
-    {
-        mcs_init();
-        mcs_initted = TRUE;
-    }
-
-    if (! config_handle)
-    {
-        config_handle = mcs_new (RCFILE_DEFAULT_SECTION_NAME);
-
-        if (! config_handle)
-        {
-            fprintf (stderr, "MCS failure.  Configuration will not be saved.\n");
-            return NULL;
-        }
-    }
-
-    config_refcount ++;
-    return config_handle;
-}
-
-/**
- * Closes the configuration database.
- * @param[in] db A configuration database handle pointer.
- */
-void cfg_db_close (mcs_handle_t * handle)
-{
-    g_return_if_fail (handle && handle == config_handle);
-    g_return_if_fail (config_refcount > 0);
-    config_refcount --;
-}
-
-void cfg_db_flush (void)
-{
-    if (! config_handle)
-        return; /* nothing to do */
-
-    g_return_if_fail (! config_refcount);
-    mcs_destroy (config_handle);
-    config_handle = NULL;
-}
-
-/**
- * Fetches a string from the configuration database.
- *
- * @param[in] db A configuration database handle pointer.
- * @param[in] section The section of the configuration database to search.
- * @param[in] key The name of the field in the configuration database to look up.
- * @param[out] value Pointer to a buffer to put the data in.
- * @return TRUE if successful, FALSE otherwise.
- */
-gboolean
-cfg_db_get_string(mcs_handle_t * db,
-                  const gchar * section,
-                  const gchar * key,
-                  gchar ** value)
-{
-    g_return_val_if_fail (db && db == config_handle, FALSE);
-
-    if (!section)
-        section = RCFILE_DEFAULT_SECTION_NAME;
-
-    if (! mcs_get_string (db, section, key, value))
-        return FALSE;
-
-    /* Prior to 2.3, NULL values were saved as "(null)". -jlindgren */
-    if (! strcmp (* value, "(null)"))
-    {
-        * value = NULL;
-        return FALSE;
-    }
-
-    return TRUE;
-}
-
-/**
- * Fetches a integer value from the configuration database.
- *
- * @param[in] db A configuration database handle pointer.
- * @param[in] section The section of the configuration database to search.
- * @param[in] key The name of the field in the configuration database to look up.
- * @param[out] value Pointer to a buffer to put the data in.
- * @return TRUE if successful, FALSE otherwise.
- */
-gboolean
-cfg_db_get_int(mcs_handle_t * db,
-               const gchar * section, const gchar * key, gint * value)
-{
-    g_return_val_if_fail (db && db == config_handle, FALSE);
-
-    if (!section)
-        section = RCFILE_DEFAULT_SECTION_NAME;
-
-    return mcs_get_int(db, section, key, value);
-}
-
-/**
- * Fetches a boolean value from the configuration database.
- *
- * @param[in] db A configuration database handle pointer.
- * @param[in] section The section of the configuration database to search.
- * @param[in] key The name of the field in the configuration database to look up.
- * @param[out] value Pointer to a buffer to put the data in.
- * @return TRUE if successful, FALSE otherwise.
- */
-gboolean
-cfg_db_get_bool(mcs_handle_t * db,
-                    const gchar * section,
-                    const gchar * key,
-                    gboolean * value)
-{
-    g_return_val_if_fail (db && db == config_handle, FALSE);
-
-    if (!section)
-        section = RCFILE_DEFAULT_SECTION_NAME;
-
-    return mcs_get_bool(db, section, key, value);
-}
-
-/**
- * Fetches a single precision floating point value from the
- * configuration database.
- *
- * @param[in] db A configuration database handle pointer.
- * @param[in] section The section of the configuration database to search.
- * @param[in] key The name of the field in the configuration database to look up.
- * @param[out] value Pointer to a buffer to put the data in.
- * @return TRUE if successful, FALSE otherwise.
- */
-gboolean
-cfg_db_get_float(mcs_handle_t * db,
-                     const gchar * section,
-                     const gchar * key,
-                     gfloat * value)
-{
-    g_return_val_if_fail (db && db == config_handle, FALSE);
-
-    if (!section)
-        section = RCFILE_DEFAULT_SECTION_NAME;
-
-    return mcs_get_float(db, section, key, value);
-}
-
-/**
- * Fetches a double precision floating point value from the
- * configuration database.
- *
- * @param[in] db A configuration database handle pointer.
- * @param[in] section The section of the configuration database to search.
- * @param[in] key The name of the field in the configuration database to look up.
- * @param[out] value Pointer to a buffer to put the data in.
- * @return TRUE if successful, FALSE otherwise.
- */
-gboolean
-cfg_db_get_double(mcs_handle_t * db,
-                      const gchar * section,
-                      const gchar * key,
-                      gdouble * value)
-{
-    g_return_val_if_fail (db && db == config_handle, FALSE);
-
-    if (!section)
-        section = RCFILE_DEFAULT_SECTION_NAME;
-
-    return mcs_get_double(db, section, key, value);
-}
-
-/**
- * Sets string value in given key of given section in
- * the configuration database.
- *
- * @param[in] db A configuration database handle pointer.
- * @param[in] section The section of the configuration database.
- * @param[in] key The name of the field in the configuration database to set.
- * @param[in] value A double precision floating point value.
- */
-void
-cfg_db_set_string(mcs_handle_t * db,
-                      const gchar * section,
-                      const gchar * key,
-                      const gchar * value)
-{
-    g_return_if_fail (db && db == config_handle);
-
-    if (!section)
-        section = RCFILE_DEFAULT_SECTION_NAME;
-
-    if (value == NULL)
-        mcs_unset_key (db, section, key);
-    else
-        mcs_set_string (db, section, key, value);
-}
-
-/**
- * Sets integer value in given key of given section in
- * the configuration database.
- *
- * @param[in] db A configuration database handle pointer.
- * @param[in] section The section of the configuration database.
- * @param[in] key The name of the field in the configuration database to set.
- * @param[in] value A double precision floating point value.
- */
-void
-cfg_db_set_int(mcs_handle_t * db,
-                   const gchar * section,
-                   const gchar * key,
-                   gint value)
-{
-    g_return_if_fail (db && db == config_handle);
-
-    if (!section)
-        section = RCFILE_DEFAULT_SECTION_NAME;
-
-    mcs_set_int(db, section, key, value);
-}
-
-/**
- * Sets boolean value in given key of given section in
- * the configuration database.
- *
- * @param[in] db A configuration database handle pointer.
- * @param[in] section The section of the configuration database.
- * @param[in] key The name of the field in the configuration database to set.
- * @param[in] value A double precision floating point value.
- */
-void
-cfg_db_set_bool(mcs_handle_t * db,
-                    const gchar * section,
-                    const gchar * key,
-                    gboolean value)
-{
-    g_return_if_fail (db && db == config_handle);
-
-    if (!section)
-        section = RCFILE_DEFAULT_SECTION_NAME;
-
-    mcs_set_bool(db, section, key, value);
-}
-
-/**
- * Sets single precision floating point value in given key
- * of given section in the configuration database.
- *
- * @param[in] db A configuration database handle pointer.
- * @param[in] section The section of the configuration database.
- * @param[in] key The name of the field in the configuration database to set.
- * @param[in] value A double precision floating point value.
- */
-void
-cfg_db_set_float(mcs_handle_t * db,
-                     const gchar * section,
-                     const gchar * key,
-                     gfloat value)
-{
-    g_return_if_fail (db && db == config_handle);
-
-    if (!section)
-        section = RCFILE_DEFAULT_SECTION_NAME;
-
-    mcs_set_float(db, section, key, value);
-}
-
-/**
- * Sets double precision floating point value in given key
- * of given section in the configuration database.
- *
- * @param[in] db A configuration database handle pointer.
- * @param[in] section The section of the configuration database.
- * @param[in] key The name of the field in the configuration database to set.
- * @param[in] value A double precision floating point value.
- */
-void
-cfg_db_set_double(mcs_handle_t * db,
-                      const gchar * section,
-                      const gchar * key,
-                      gdouble value)
-{
-    g_return_if_fail (db && db == config_handle);
-
-    if (!section)
-        section = RCFILE_DEFAULT_SECTION_NAME;
-
-    mcs_set_double(db, section, key, value);
-}
-
-/**
- * Removes a value from the configuration database.
- *
- * @param[in] db A configuration database handle pointer.
- * @param[in] section The section of the configuration database to search.
- * @param[in] key The name of the field in the configuration database to set.
- */
-void
-cfg_db_unset_key(mcs_handle_t * db,
-                     const gchar * section,
-                     const gchar * key)
-{
-    g_return_if_fail (db && db == config_handle);
-    g_return_if_fail(key != NULL);
-
-    if (!section)
-        section = RCFILE_DEFAULT_SECTION_NAME;
-
-    mcs_unset_key(db, section, key);
-}
diff --git a/src/audacious/configdb.h b/src/audacious/configdb.h
deleted file mode 100644
index bba3ee4..0000000
--- a/src/audacious/configdb.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * configdb.h
- * Copyright 2010 John Lindgren
- *
- * This file is part of Audacious.
- *
- * Audacious is free software: you can redistribute it and/or modify it under
- * the terms of the GNU General Public License as published by the Free Software
- * Foundation, version 2 or version 3 of the License.
- *
- * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * Audacious. If not, see <http://www.gnu.org/licenses/>.
- *
- * The Audacious team does not consider modular code linking to Audacious or
- * using our public API to be a derived work.
- */
-
-#ifndef AUDACIOUS_CONFIGDB_H
-#define AUDACIOUS_CONFIGDB_H
-
-#include <glib.h>
-#include <libmcs/mcs.h>
-#include <audacious/api.h>
-
-#define AUD_API_NAME ConfigDBAPI
-#define AUD_API_SYMBOL configdb_api
-
-#ifdef _AUDACIOUS_CORE
-
-#include "api-local-begin.h"
-#include "configdb-api.h"
-#include "api-local-end.h"
-
-void cfg_db_flush (void);
-
-#else
-
-#include <audacious/api-define-begin.h>
-#include <audacious/configdb-api.h>
-#include <audacious/api-define-end.h>
-
-#include <audacious/api-alias-begin.h>
-#include <audacious/configdb-api.h>
-#include <audacious/api-alias-end.h>
-
-#endif
-
-#undef AUD_API_NAME
-#undef AUD_API_SYMBOL
-
-#endif
-
-#ifdef AUD_API_DECLARE
-
-#define AUD_API_NAME ConfigDBAPI
-#define AUD_API_SYMBOL configdb_api
-
-#include "api-define-begin.h"
-#include "configdb-api.h"
-#include "api-define-end.h"
-
-#include "api-declare-begin.h"
-#include "configdb-api.h"
-#include "api-declare-end.h"
-
-#undef AUD_API_NAME
-#undef AUD_API_SYMBOL
-
-#endif
diff --git a/src/audacious/credits.c b/src/audacious/credits.c
index 436c1d0..654285e 100644
--- a/src/audacious/credits.c
+++ b/src/audacious/credits.c
@@ -23,15 +23,17 @@
  *  Audacious or using our public API to be a derived work.
  */
 
+#include <stddef.h>
+
 #include "config.h"
 #include "i18n.h"
 #include "misc.h"
 
-static const gchar *audacious_brief =
+static const char * audacious_brief =
  "<big><b>Audacious %s</b></big>\n"
- "Copyright (C) 2005-2011 Audacious Team";
+ "Copyright (C) 2005-2012 Audacious Team";
 
-static const gchar *credit_text[] = {
+static const char * const credit_text[] = {
     N_("Core developers:"),
     "Christian Birchinger",
     "Michael Färber",
@@ -75,13 +77,14 @@ static const gchar *credit_text[] = {
     "William Pitcock",
     "Derek Pomery",
     "Jonathan Schleifer",
-    "Andrew O. Shadoura",
+    "Andrew Shadura",
     "Tony Vroon",
     "Yoshiki Yazawa",
     NULL,
 
     N_("Patch authors:"),
     "Chris Arepantis",
+    "Anatoly Arzhnikov",
     "Alexis Ballier",
     "Eric Barch",
     "Carlo Bramini",
@@ -93,6 +96,7 @@ static const gchar *credit_text[] = {
     "Mike Frysinger",
     "Mark Glines",
     "Hans de Goede",
+    "David Guglielmi",
     "Michael Hanselmann",
     "Juho Heikkinen",
     "Joseph Jezak",
@@ -100,6 +104,7 @@ static const gchar *credit_text[] = {
     "Jussi Judin",
     "Teru Kamogashira",
     "Chris Kehler",
+    "Thomas Lange",
     "Mark Loeser",
     "Alex Maclean",
     "Mikael Magnusson",
@@ -176,7 +181,10 @@ static const gchar *credit_text[] = {
     NULL
 };
 
-static const gchar *translators_text[] = {
+static const char * const translators_text[] = {
+    N_("Argentinian Spanish:"),
+    "Adrián Ramirez Escalante",
+    NULL,
     N_("Belarusian:"),
     "Darafei Praliaskouski",
     NULL,
@@ -185,6 +193,7 @@ static const gchar *translators_text[] = {
     NULL,
     N_("Brazilian Portuguese:"),
     "Fábio Antunes",
+    "Karen Eliot",
     "Philipi Pinto",
     NULL,
     N_("Breton:"),
@@ -195,9 +204,10 @@ static const gchar *translators_text[] = {
     NULL,
     N_("Catalan:"),
     "Ernest Adrogué",
+    "Jordi Amenós",
     NULL,
     N_("Chinese:"),
-    "Chi Chiu Tsu",
+    "Tse Chih Chiu",
     NULL,
     N_("Croatian:"),
     "Marin Glibic",
@@ -213,13 +223,15 @@ static const gchar *translators_text[] = {
     "Ivar Smolin",
     NULL,
     N_("Finnish:"),
-    "Pauli Virtanen",
     "Matti Hämäläinen",
+    "Elias Julkunen",
+    "Pauli Virtanen",
     NULL,
     N_("French:"),
     "Adam Cecile",
     "Stanislas Zeller",
     "Stany Henry",
+    "Jean-Alexandre Anglès d'Auriac",
     NULL,
     N_("German:"),
     "Matthias Debus",
@@ -245,6 +257,7 @@ static const gchar *translators_text[] = {
     NULL,
     N_("Italian:"),
     "Alessio D'Ascanio",
+    "Jacopo Lorenzetti",
     "Diego Pettenò",
     NULL,
     N_("Japanese:"),
@@ -259,13 +272,19 @@ static const gchar *translators_text[] = {
     N_("Lithuanian:"),
     "Paul Daukas",
     "Rimas Kudelis",
+    "Algimantas Margevičius",
     NULL,
     N_("Macedonian:"),
     "Arangel Angov",
     NULL,
+    N_("Mexican Spanish:"),
+    "Jorge A. García Sosa",
+    NULL,
     N_("Polish:"),
-    "Wojciech Myrda",
+    "Artur Czechowski",
     "Michał Kiedrowicz",
+    "Wojciech Myrda",
+    "Piotr Sokół",
     "Szymon Weihs",
     NULL,
     N_("Portuguese:"),
@@ -283,6 +302,7 @@ static const gchar *translators_text[] = {
     "Strahinja Kustudić",
     NULL,
     N_("Serbian (Cyrillic):"),
+    "Мирослав Николић",
     "Strahinja Kustudić",
     NULL,
     N_("Simplified Chinese:"),
@@ -290,13 +310,16 @@ static const gchar *translators_text[] = {
     NULL,
     N_("Slovak:"),
     "Andrej Herceg",
+    "Tomáš Vadina",
     NULL,
     N_("Spanish:"),
+    "Jordi Amenós",
+    "Jorge Andrés",
     "Cosme Domínguez Díaz",
+    "Adrián Ramirez Escalante",
     "Jeki Sinneo Leinos",
     "Francisco Javier F. Serrador",
     "Gustavo D. Vranjes",
-    "Jorge Andrés",
     NULL,
     N_("Swedish:"),
     "Martin Persenius",
@@ -304,6 +327,7 @@ static const gchar *translators_text[] = {
     N_("Traditional Chinese:"),
     "Cheng-Wei Chien",
     "Sylecn Song",
+    "Ruei-Yuan Lu",
     "Yang Zhang",
     NULL,
     N_("Turkish:"),
@@ -311,8 +335,13 @@ static const gchar *translators_text[] = {
     "Eren Turkay",
     NULL,
     N_("Ukrainian:"),
+    "Kostyantyn Fedenko",
+    "Rax Garfield",
     "Mykola Lynnyk",
     NULL,
+    N_("Vietnamese:"),
+    "Lê Trường An",
+    NULL,
     N_("Welsh:"),
     "Edward Brocklesby",
     "William Pitcock",
@@ -321,8 +350,8 @@ static const gchar *translators_text[] = {
     NULL
 };
 
-void
-get_audacious_credits(const gchar ** brief, const gchar *** credits, const gchar ***translators)
+void get_audacious_credits (const char * * brief, const char * const * *
+ credits, const char * const * * translators)
 {
     if (brief != NULL)
         *brief = audacious_brief;
diff --git a/src/audacious/dbus-service.h b/src/audacious/dbus-service.h
index 31c947d..4d17333 100644
--- a/src/audacious/dbus-service.h
+++ b/src/audacious/dbus-service.h
@@ -22,6 +22,7 @@
 #define AUDACIOUS_DBUS_SERVICE_H
 
 #include <glib.h>
+#include <libaudcore/core.h>
 
 #define DBUS_API_SUBJECT_TO_CHANGE
 #include <dbus/dbus-glib.h>
@@ -35,10 +36,6 @@ typedef struct {
     GObjectClass parent_class;
 } RemoteObjectClass, MprisRootClass, MprisPlayerClass, MprisTrackListClass;
 
-void init_dbus();
-void free_dbus();
-DBusGProxy *audacious_get_dbus_proxy();
-
 /* MPRIS API */
 // Capabilities
 enum {
@@ -54,36 +51,37 @@ enum {
 
 // Status
 typedef enum {
-	MPRIS_STATUS_PLAY = 0,
-	MPRIS_STATUS_PAUSE,
-	MPRIS_STATUS_STOP
+    MPRIS_STATUS_INVALID = -1,
+    MPRIS_STATUS_PLAY = 0,
+    MPRIS_STATUS_PAUSE = 1,
+    MPRIS_STATUS_STOP = 2,
 } PlaybackStatus;
 
 extern MprisPlayer * mpris;
 
 // MPRIS /
-gboolean mpris_root_identity(MprisRoot *obj, gchar **identity,
+bool_t mpris_root_identity(MprisRoot *obj, char **identity,
                              GError **error);
-gboolean mpris_root_quit(MprisPlayer *obj, GError **error);
+bool_t mpris_root_quit(MprisPlayer *obj, GError **error);
 
 // MPRIS /Player
-gboolean mpris_player_next(MprisPlayer *obj, GError **error);
-gboolean mpris_player_prev(MprisPlayer *obj, GError **error);
-gboolean mpris_player_pause(MprisPlayer *obj, GError **error);
-gboolean mpris_player_stop(MprisPlayer *obj, GError **error);
-gboolean mpris_player_play(MprisPlayer *obj, GError **error);
-gboolean mpris_player_repeat(MprisPlayer *obj, gboolean rpt, GError **error);
-gboolean mpris_player_get_status(MprisPlayer *obj, GValueArray **status,
+bool_t mpris_player_next(MprisPlayer *obj, GError **error);
+bool_t mpris_player_prev(MprisPlayer *obj, GError **error);
+bool_t mpris_player_pause(MprisPlayer *obj, GError **error);
+bool_t mpris_player_stop(MprisPlayer *obj, GError **error);
+bool_t mpris_player_play(MprisPlayer *obj, GError **error);
+bool_t mpris_player_repeat(MprisPlayer *obj, bool_t rpt, GError **error);
+bool_t mpris_player_get_status(MprisPlayer *obj, GValueArray **status,
                                  GError **error);
-gboolean mpris_player_get_metadata(MprisPlayer *obj, GHashTable **metadata,
+bool_t mpris_player_get_metadata(MprisPlayer *obj, GHashTable **metadata,
                                    GError **error);
-gboolean mpris_player_get_caps(MprisPlayer *obj, gint *capabilities,
+bool_t mpris_player_get_caps(MprisPlayer *obj, int *capabilities,
                                  GError **error);
-gboolean mpris_player_volume_set(MprisPlayer *obj, gint vol, GError **error);
-gboolean mpris_player_volume_get(MprisPlayer *obj, gint *vol,
+bool_t mpris_player_volume_set(MprisPlayer *obj, int vol, GError **error);
+bool_t mpris_player_volume_get(MprisPlayer *obj, int *vol,
                                  GError **error);
-gboolean mpris_player_position_set(MprisPlayer *obj, gint pos, GError **error);
-gboolean mpris_player_position_get(MprisPlayer *obj, gint *pos,
+bool_t mpris_player_position_set(MprisPlayer *obj, int pos, GError **error);
+bool_t mpris_player_position_get(MprisPlayer *obj, int *pos,
                                    GError **error);
 enum {
     TRACK_CHANGE_SIG,
@@ -97,139 +95,143 @@ enum {
     LAST_TRACKLIST_SIG
 };
 
-gboolean mpris_emit_track_change(MprisPlayer *obj);
-gboolean mpris_emit_status_change(MprisPlayer *obj, PlaybackStatus status);
-gboolean mpris_emit_caps_change(MprisPlayer *obj);
-gboolean mpris_emit_tracklist_change(MprisTrackList *obj, gint playlist);
+bool_t mpris_emit_track_change(MprisPlayer *obj);
+bool_t mpris_emit_status_change(MprisPlayer *obj, PlaybackStatus status);
+bool_t mpris_emit_caps_change(MprisPlayer *obj);
+bool_t mpris_emit_tracklist_change(MprisTrackList *obj, int playlist);
 
 // MPRIS /TrackList
-gboolean mpris_tracklist_get_metadata(MprisTrackList *obj, gint pos,
+bool_t mpris_tracklist_get_metadata(MprisTrackList *obj, int pos,
                                       GHashTable **metadata, GError **error);
-gboolean mpris_tracklist_get_current_track(MprisTrackList *obj, gint *pos,
+bool_t mpris_tracklist_get_current_track(MprisTrackList *obj, int *pos,
                                            GError **error);
-gboolean mpris_tracklist_get_length(MprisTrackList *obj, gint *length,
+bool_t mpris_tracklist_get_length(MprisTrackList *obj, int *length,
                                     GError **error);
-gboolean mpris_tracklist_add_track(MprisTrackList *obj, gchar *uri,
-                                   gboolean play, GError **error);
-gboolean mpris_tracklist_del_track(MprisTrackList *obj, gint pos,
+bool_t mpris_tracklist_add_track(MprisTrackList *obj, char *uri,
+                                   bool_t play, GError **error);
+bool_t mpris_tracklist_del_track(MprisTrackList *obj, int pos,
                                    GError **error);
-gboolean mpris_tracklist_loop(MprisTrackList *obj, gboolean loop,
+bool_t mpris_tracklist_loop(MprisTrackList *obj, bool_t loop,
                               GError **error);
-gboolean mpris_tracklist_random(MprisTrackList *obj, gboolean random,
+bool_t mpris_tracklist_random(MprisTrackList *obj, bool_t random,
                                 GError **error);
 
 /* Legacy API */
 // Audacious General Information
-gboolean audacious_rc_version(RemoteObject *obj, gchar **version, GError **error);
-gboolean audacious_rc_quit(RemoteObject *obj, GError **error);
-gboolean audacious_rc_eject(RemoteObject *obj, GError **error);
-gboolean audacious_rc_main_win_visible(RemoteObject *obj,
-                                       gboolean *is_main_win, GError **error);
-gboolean audacious_rc_show_main_win(RemoteObject *obj, gboolean show,
+bool_t audacious_rc_version(RemoteObject *obj, char **version, GError **error);
+bool_t audacious_rc_quit(RemoteObject *obj, GError **error);
+bool_t audacious_rc_eject(RemoteObject *obj, GError **error);
+bool_t audacious_rc_main_win_visible(RemoteObject *obj,
+                                       bool_t *is_main_win, GError **error);
+bool_t audacious_rc_show_main_win(RemoteObject *obj, bool_t show,
                                     GError **error);
-gboolean audacious_rc_equalizer_visible(RemoteObject *obj, gboolean *is_eq_win,
+bool_t audacious_rc_equalizer_visible(RemoteObject *obj, bool_t *is_eq_win,
                                         GError **error);
-gboolean audacious_rc_show_equalizer(RemoteObject *obj, gboolean show,
+bool_t audacious_rc_show_equalizer(RemoteObject *obj, bool_t show,
                                      GError **error);
-gboolean audacious_rc_playlist_visible(RemoteObject *obj,
-                                       gboolean *is_pl_win,
+bool_t audacious_rc_playlist_visible(RemoteObject *obj,
+                                       bool_t *is_pl_win,
                                        GError **error);
-gboolean audacious_rc_show_playlist(RemoteObject *obj, gboolean show,
+bool_t audacious_rc_show_playlist(RemoteObject *obj, bool_t show,
                                     GError **error);
-gboolean audacious_rc_get_tuple_fields(RemoteObject *obj, gchar ***fields,
+bool_t audacious_rc_get_tuple_fields(RemoteObject *obj, char ***fields,
                                     GError **error);
 
 // Playback Information/Manipulation
-gboolean audacious_rc_play(RemoteObject *obj, GError **error);
-gboolean audacious_rc_pause(RemoteObject *obj, GError **error);
-gboolean audacious_rc_stop(RemoteObject *obj, GError **error);
-gboolean audacious_rc_playing(RemoteObject *obj, gboolean *is_playing,
+bool_t audacious_rc_play(RemoteObject *obj, GError **error);
+bool_t audacious_rc_pause(RemoteObject *obj, GError **error);
+bool_t audacious_rc_stop(RemoteObject *obj, GError **error);
+bool_t audacious_rc_playing(RemoteObject *obj, bool_t *is_playing,
                               GError **error);
-gboolean audacious_rc_paused(RemoteObject *obj, gboolean *is_paused,
+bool_t audacious_rc_paused(RemoteObject *obj, bool_t *is_paused,
                              GError **error);
-gboolean audacious_rc_stopped(RemoteObject *obj, gboolean *is_stopped,
+bool_t audacious_rc_stopped(RemoteObject *obj, bool_t *is_stopped,
                               GError **error);
-gboolean audacious_rc_status(RemoteObject *obj, gchar **status,
+bool_t audacious_rc_status(RemoteObject *obj, char **status,
                              GError **error);
-gboolean audacious_rc_info(RemoteObject *obj, gint *rate, gint *freq,
-                           gint *nch, GError **error);
-gboolean audacious_rc_time(RemoteObject *obj, gint *time, GError **error);
-gboolean audacious_rc_seek(RemoteObject *obj, guint pos, GError **error);
-gboolean audacious_rc_volume(RemoteObject *obj, gint *vl, gint *vr,
+bool_t audacious_rc_info(RemoteObject *obj, int *rate, int *freq,
+                           int *nch, GError **error);
+bool_t audacious_rc_time(RemoteObject *obj, int *time, GError **error);
+bool_t audacious_rc_seek(RemoteObject *obj, unsigned int pos, GError **error);
+bool_t audacious_rc_volume(RemoteObject *obj, int *vl, int *vr,
                              GError **error);
-gboolean audacious_rc_set_volume(RemoteObject *obj, gint vl, gint vr,
+bool_t audacious_rc_set_volume(RemoteObject *obj, int vl, int vr,
                                  GError **error);
-gboolean audacious_rc_balance(RemoteObject *obj, gint *balance,
+bool_t audacious_rc_balance(RemoteObject *obj, int *balance,
                               GError **error);
 
 // Playlist Information/Manipulation
-gboolean audacious_rc_position(RemoteObject *obj, int *pos, GError **error);
-gboolean audacious_rc_advance(RemoteObject *obj, GError **error);
-gboolean audacious_rc_reverse(RemoteObject *obj, GError **error);
-gboolean audacious_rc_length(RemoteObject *obj, int *length,
+bool_t audacious_rc_position(RemoteObject *obj, int *pos, GError **error);
+bool_t audacious_rc_advance(RemoteObject *obj, GError **error);
+bool_t audacious_rc_reverse(RemoteObject *obj, GError **error);
+bool_t audacious_rc_length(RemoteObject *obj, int *length,
                              GError **error);
-gboolean audacious_rc_song_title(RemoteObject *obj, guint pos,
-                                 gchar **title, GError **error);
-gboolean audacious_rc_song_filename(RemoteObject *obj, guint pos,
-                                    gchar **filename, GError **error);
-gboolean audacious_rc_song_length(RemoteObject *obj, guint pos, int *length,
+bool_t audacious_rc_song_title(RemoteObject *obj, unsigned int pos,
+                                 char **title, GError **error);
+bool_t audacious_rc_song_filename(RemoteObject *obj, unsigned int pos,
+                                    char **filename, GError **error);
+bool_t audacious_rc_song_length(RemoteObject *obj, unsigned int pos, int *length,
                                   GError **error);
-gboolean audacious_rc_song_frames(RemoteObject *obj, guint pos, int *length,
+bool_t audacious_rc_song_frames(RemoteObject *obj, unsigned int pos, int *length,
                                   GError **error);
-gboolean audacious_rc_song_tuple(RemoteObject *obj, guint pos, gchar *tuple,
+bool_t audacious_rc_song_tuple(RemoteObject *obj, unsigned int pos, char *tuple,
                                  GValue *value, GError **error);
-gboolean audacious_rc_jump(RemoteObject *obj, guint pos, GError **error);
-gboolean audacious_rc_add(RemoteObject *obj, gchar *file, GError **error);
-gboolean audacious_rc_add_url(RemoteObject *obj, gchar *url,
+bool_t audacious_rc_jump(RemoteObject *obj, unsigned int pos, GError **error);
+bool_t audacious_rc_add(RemoteObject *obj, char *file, GError **error);
+bool_t audacious_rc_add_url(RemoteObject *obj, char *url,
                               GError **error);
-gboolean audacious_rc_add_list (RemoteObject * obj, gchar * * filenames,
+bool_t audacious_rc_add_list (RemoteObject * obj, char * * filenames,
  GError * * error);
-gboolean audacious_rc_open_list (RemoteObject * obj, gchar * * filenames,
+bool_t audacious_rc_open_list (RemoteObject * obj, char * * filenames,
  GError * * error);
-gboolean audacious_rc_open_list_to_temp (RemoteObject * obj, gchar * *
+bool_t audacious_rc_open_list_to_temp (RemoteObject * obj, char * *
  filenames, GError * * error);
-gboolean audacious_rc_delete(RemoteObject *obj, guint pos, GError **error);
-gboolean audacious_rc_clear(RemoteObject *obj, GError **error);
-gboolean audacious_rc_auto_advance(RemoteObject *obj, gboolean *is_advance,
+bool_t audacious_rc_delete(RemoteObject *obj, unsigned int pos, GError **error);
+bool_t audacious_rc_clear(RemoteObject *obj, GError **error);
+bool_t audacious_rc_auto_advance(RemoteObject *obj, bool_t *is_advance,
                                    GError **error);
-gboolean audacious_rc_toggle_auto_advance(RemoteObject *obj, GError **error);
-gboolean audacious_rc_repeat(RemoteObject *obj, gboolean *is_repeat,
+bool_t audacious_rc_toggle_auto_advance(RemoteObject *obj, GError **error);
+bool_t audacious_rc_repeat(RemoteObject *obj, bool_t *is_repeat,
                              GError **error);
-gboolean audacious_rc_toggle_repeat(RemoteObject *obj, GError **error);
-gboolean audacious_rc_shuffle(RemoteObject *obj, gboolean *is_shuffle,
+bool_t audacious_rc_toggle_repeat(RemoteObject *obj, GError **error);
+bool_t audacious_rc_shuffle(RemoteObject *obj, bool_t *is_shuffle,
                               GError **error);
-gboolean audacious_rc_toggle_shuffle(RemoteObject *obj, GError **error);
+bool_t audacious_rc_toggle_shuffle(RemoteObject *obj, GError **error);
 
 /* new */
-gboolean audacious_rc_show_prefs_box(RemoteObject *obj, gboolean show, GError **error);
-gboolean audacious_rc_show_about_box(RemoteObject *obj, gboolean show, GError **error);
-gboolean audacious_rc_show_jtf_box(RemoteObject *obj, gboolean show, GError **error);
-gboolean audacious_rc_show_filebrowser(RemoteObject *obj, gboolean show, GError **error); //new Nov 8
-gboolean audacious_rc_play_pause(RemoteObject *obj, GError **error);
-gboolean audacious_rc_activate(RemoteObject *obj, GError **error);
-gboolean audacious_rc_queue_get_list_pos(RemoteObject *obj, gint qpos, gint *pos, GError **error);
-gboolean audacious_rc_queue_get_queue_pos(RemoteObject *obj, gint pos, gint *qpos, GError **error);
-gboolean audacious_rc_get_info(RemoteObject *obj, gint *rate, gint *freq, gint *nch, GError **error);
-gboolean audacious_rc_toggle_aot(RemoteObject *obj, gboolean ontop, GError **error);
-gboolean audacious_rc_get_playqueue_length(RemoteObject *obj, gint *length, GError **error);
-gboolean audacious_rc_playqueue_add(RemoteObject *obj, gint pos, GError **error);
-gboolean audacious_rc_playqueue_remove(RemoteObject *obj, gint pos, GError **error);
-gboolean audacious_rc_playqueue_clear(RemoteObject *obj, GError **error);
-gboolean audacious_rc_playqueue_is_queued(RemoteObject *obj, gint pos, gboolean *is_queued, GError **error);
-gboolean audacious_rc_playlist_ins_url_string(RemoteObject *obj, gchar *url, gint pos, GError **error);
-gboolean audacious_rc_playlist_enqueue_to_temp(RemoteObject *obj, gchar *url, GError **error);
-gboolean audacious_rc_playlist_add(RemoteObject *obj, gpointer list, GError **error);
+bool_t audacious_rc_show_prefs_box(RemoteObject *obj, bool_t show, GError **error);
+bool_t audacious_rc_show_about_box(RemoteObject *obj, bool_t show, GError **error);
+bool_t audacious_rc_show_jtf_box(RemoteObject *obj, bool_t show, GError **error);
+bool_t audacious_rc_show_filebrowser(RemoteObject *obj, bool_t show, GError **error); //new Nov 8
+bool_t audacious_rc_play_pause(RemoteObject *obj, GError **error);
+bool_t audacious_rc_activate(RemoteObject *obj, GError **error);
+bool_t audacious_rc_queue_get_list_pos(RemoteObject *obj, int qpos, int *pos, GError **error);
+bool_t audacious_rc_queue_get_queue_pos(RemoteObject *obj, int pos, int *qpos, GError **error);
+bool_t audacious_rc_get_info(RemoteObject *obj, int *rate, int *freq, int *nch, GError **error);
+bool_t audacious_rc_toggle_aot(RemoteObject *obj, bool_t ontop, GError **error);
+bool_t audacious_rc_get_playqueue_length(RemoteObject *obj, int *length, GError **error);
+bool_t audacious_rc_playqueue_add(RemoteObject *obj, int pos, GError **error);
+bool_t audacious_rc_playqueue_remove(RemoteObject *obj, int pos, GError **error);
+bool_t audacious_rc_playqueue_clear(RemoteObject *obj, GError **error);
+bool_t audacious_rc_playqueue_is_queued(RemoteObject *obj, int pos, bool_t *is_queued, GError **error);
+bool_t audacious_rc_playlist_ins_url_string(RemoteObject *obj, char *url, int pos, GError **error);
+bool_t audacious_rc_playlist_enqueue_to_temp(RemoteObject *obj, char *url, GError **error);
+bool_t audacious_rc_playlist_add(RemoteObject *obj, gpointer list, GError **error);
 
 /* new on nov 7 */
-gboolean audacious_rc_get_eq(RemoteObject *obj, gdouble *preamp, GArray **bands, GError **error);
-gboolean audacious_rc_get_eq_preamp(RemoteObject *obj, gdouble *preamp, GError **error);
-gboolean audacious_rc_get_eq_band(RemoteObject *obj, gint band, gdouble *value, GError **error);
-gboolean audacious_rc_set_eq(RemoteObject *obj, gdouble preamp, GArray *bands, GError **error);
-gboolean audacious_rc_set_eq_preamp(RemoteObject *obj, gdouble preamp, GError **error);
-gboolean audacious_rc_set_eq_band(RemoteObject *obj, gint band, gdouble value, GError **error);
-gboolean audacious_rc_equalizer_activate(RemoteObject *obj, gboolean active, GError **error);
+bool_t audacious_rc_get_eq(RemoteObject *obj, double *preamp, GArray **bands, GError **error);
+bool_t audacious_rc_get_eq_preamp(RemoteObject *obj, double *preamp, GError **error);
+bool_t audacious_rc_get_eq_band(RemoteObject *obj, int band, double *value, GError **error);
+bool_t audacious_rc_set_eq(RemoteObject *obj, double preamp, GArray *bands, GError **error);
+bool_t audacious_rc_set_eq_preamp(RemoteObject *obj, double preamp, GError **error);
+bool_t audacious_rc_set_eq_band(RemoteObject *obj, int band, double value, GError **error);
+bool_t audacious_rc_equalizer_activate(RemoteObject *obj, bool_t active, GError **error);
 
 /* new in 2.4 */
-gboolean audacious_rc_get_active_playlist_name(RemoteObject *obj, gchar **title, GError **error);
+bool_t audacious_rc_get_active_playlist_name(RemoteObject *obj, char **title, GError **error);
+
+/* new in 3.1 */
+bool_t audacious_rc_stop_after (RemoteObject * obj, bool_t * is_stopping, GError * * error);
+bool_t audacious_rc_toggle_stop_after (RemoteObject * obj, GError * * error);
 
 #endif /* AUDACIOUS_DBUS_SERVICE_H */
diff --git a/src/audacious/dbus.c b/src/audacious/dbus.c
index a4549d7..5b13c99 100644
--- a/src/audacious/dbus.c
+++ b/src/audacious/dbus.c
@@ -1,7 +1,7 @@
 /*
  * Audacious: A cross-platform multimedia player
  * Copyright (c) 2007 Ben Tucker
- * Copyright 2009-2010 Audacious development team
+ * Copyright 2009-2011 Audacious development team
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -22,6 +22,8 @@
 #include "config.h"
 
 #include <glib.h>
+#include <string.h>
+
 #include <dbus/dbus.h>
 #include <dbus/dbus-glib.h>
 #include <dbus/dbus-glib-bindings.h>
@@ -31,69 +33,21 @@
 #include "dbus-server-bindings.h"
 
 #include <math.h>
-#include <libaudcore/eventqueue.h>
 
-#include "audconfig.h"
+#include <libaudcore/hook.h>
+
 #include "debug.h"
 #include "drct.h"
-#include "equalizer.h"
-#include "playback.h"
 #include "playlist.h"
 #include "interface.h"
-
-struct StatusRequest
-{
-    gboolean playing, paused;
-    gint time, length;
-    gint bitrate, samplerate, channels;
-};
-
-struct PositionRequest
-{
-    gint playlist;              /* -1 = active, -2 = playing */
-    gint entry;                 /* -1 = current */
-    gint entry_count, queue_count;
-};
-
-struct InfoRequest
-{
-    gint playlist;              /* -1 = active, -2 = playing */
-    gint entry;                 /* -1 = current */
-    gchar *filename, *title, *pltitle;
-    gint length;
-};
-
-struct FieldRequest
-{
-    gint playlist;              /* -1 = active, -2 = playing */
-    gint entry;                 /* -1 = current */
-    const gchar *field;
-    GValue *value;
-};
-
-struct AddRequest
-{
-    gint position;              /* -1 = at end */
-    gchar *filename;
-    gboolean play;
-};
-
-struct MprisMetadataRequest
-{
-    gint playlist;              /* -1 = active, -2 = playing */
-    gint entry;                 /* -1 = current */
-    GHashTable *metadata;
-};
+#include "misc.h"
 
 static DBusGConnection *dbus_conn = NULL;
-static guint signals[LAST_SIG] = { 0 };
-static guint tracklist_signals[LAST_TRACKLIST_SIG] = { 0 };
+static unsigned int signals[LAST_SIG] = { 0 };
+static unsigned int tracklist_signals[LAST_TRACKLIST_SIG] = { 0 };
 
 MprisPlayer * mpris = NULL;
-
-static GThread *main_thread;
-static GMutex *info_mutex;
-static GCond *info_cond;
+MprisTrackList * mpris_tracklist = NULL;
 
 G_DEFINE_TYPE (RemoteObject, audacious_rc, G_TYPE_OBJECT)
 G_DEFINE_TYPE (MprisRoot, mpris_root, G_TYPE_OBJECT)
@@ -118,8 +72,13 @@ void mpris_player_class_init(MprisPlayerClass * klass)
     signals[TRACK_CHANGE_SIG] =
         g_signal_new("track_change",
                      G_OBJECT_CLASS_TYPE(klass), G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED, 0, NULL, NULL, g_cclosure_marshal_VOID__BOXED, G_TYPE_NONE, 1, DBUS_TYPE_G_STRING_VALUE_HASHTABLE);
+
+    GType status_type = dbus_g_type_get_struct ("GValueArray", G_TYPE_INT,
+     G_TYPE_INT, G_TYPE_INT, G_TYPE_INT, G_TYPE_INVALID);
     signals[STATUS_CHANGE_SIG] =
-        g_signal_new("status_change", G_OBJECT_CLASS_TYPE(klass), G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED, 0, NULL, NULL, g_cclosure_marshal_VOID__INT, G_TYPE_NONE, 1, G_TYPE_VALUE_ARRAY);
+     g_signal_new ("status_change", G_OBJECT_CLASS_TYPE (klass),
+     G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED, 0, NULL, NULL,
+     g_cclosure_marshal_VOID__BOXED, G_TYPE_NONE, 1, status_type);
 }
 
 void mpris_tracklist_class_init(MprisTrackListClass * klass)
@@ -132,7 +91,7 @@ void audacious_rc_init(RemoteObject * object)
 {
     GError *error = NULL;
     DBusGProxy *driver_proxy;
-    guint request_ret;
+    unsigned int request_ret;
 
     AUDDBG ("Registering remote D-Bus interfaces.\n");
 
@@ -210,8 +169,6 @@ void mpris_tracklist_init(MprisTrackList * object)
         /* XXX / FIXME: Why does this happen? -- ccr */
         AUDDBG ("object->proxy == NULL, not adding some signals.\n");
     }
-
-    hook_associate("playlist update", (HookFunction) mpris_playlist_update_hook, object);
 }
 
 void init_dbus()
@@ -219,10 +176,6 @@ void init_dbus()
     GError *error = NULL;
     DBusConnection *local_conn;
 
-    main_thread = g_thread_self();
-    info_mutex = g_mutex_new();
-    info_cond = g_cond_new();
-
     AUDDBG ("Trying to initialize D-Bus.\n");
     dbus_conn = dbus_g_bus_get(DBUS_BUS_SESSION, &error);
     if (dbus_conn == NULL)
@@ -236,29 +189,40 @@ void init_dbus()
     g_object_new(audacious_rc_get_type(), NULL);
     g_object_new(mpris_root_get_type(), NULL);
     mpris = g_object_new(mpris_player_get_type(), NULL);
-    g_object_new(mpris_tracklist_get_type(), NULL);
+    mpris_tracklist = g_object_new(mpris_tracklist_get_type(), NULL);
 
     local_conn = dbus_g_connection_get_connection(dbus_conn);
     dbus_connection_set_exit_on_disconnect(local_conn, FALSE);
+
+    hook_associate ("playlist update",
+     (HookFunction) mpris_playlist_update_hook, mpris_tracklist);
 }
 
-static GValue *tuple_value_to_gvalue(const Tuple * tuple, const gchar * key)
+void cleanup_dbus (void)
+{
+    hook_dissociate ("playlist update", (HookFunction) mpris_playlist_update_hook);
+}
+
+static GValue *tuple_value_to_gvalue(const Tuple * tuple, const char * key)
 {
     GValue *val;
-    TupleValueType type = tuple_get_value_type((Tuple *) tuple, -1, key);
+    TupleValueType type = tuple_get_value_type (tuple, -1, key);
 
     if (type == TUPLE_STRING)
     {
         val = g_new0(GValue, 1);
         g_value_init(val, G_TYPE_STRING);
-        g_value_take_string(val, g_strdup(tuple_get_string((Tuple *) tuple, -1, key)));
+        char * str = tuple_get_str (tuple, -1, key);
+        g_value_set_string (val, str);
+        str_unref (str);
         return val;
     }
     else if (type == TUPLE_INT)
     {
         val = g_new0(GValue, 1);
         g_value_init(val, G_TYPE_INT);
-        g_value_set_int(val, tuple_get_int((Tuple *) tuple, -1, key));
+        int x = tuple_get_int (tuple, -1, key);
+        g_value_set_int (val, x);
         return val;
     }
     return NULL;
@@ -273,7 +237,7 @@ static GValue *tuple_value_to_gvalue(const Tuple * tuple, const gchar * key)
  * @param[in] key key used for inserting into hash table.
  */
 static void tuple_insert_to_hash_full(GHashTable * md, const Tuple * tuple,
-                                      const gchar * tuple_key, const gchar *key)
+                                      const char * tuple_key, const char *key)
 {
     GValue *value = tuple_value_to_gvalue(tuple, tuple_key);
     if (value != NULL)
@@ -281,7 +245,7 @@ static void tuple_insert_to_hash_full(GHashTable * md, const Tuple * tuple,
 }
 
 static void tuple_insert_to_hash(GHashTable * md, const Tuple * tuple,
-                                 const gchar *key)
+                                 const char *key)
 {
     tuple_insert_to_hash_full(md, tuple, key, key);
 }
@@ -292,7 +256,7 @@ static void remove_metadata_value(gpointer value)
     g_free((GValue *) value);
 }
 
-static GHashTable *make_mpris_metadata(const gchar * filename, const Tuple * tuple)
+static GHashTable *make_mpris_metadata(const char * filename, const Tuple * tuple)
 {
     GHashTable *md = NULL;
     gpointer value;
@@ -323,368 +287,42 @@ static GHashTable *make_mpris_metadata(const gchar * filename, const Tuple * tup
     return md;
 }
 
-static void real_position(gint * playlist, gint * entry)
-{
-    if (*playlist == -2)
-        *playlist = playlist_get_playing();
-    if (*playlist == -1)
-        *playlist = playlist_get_active();
-    if (*entry == -1)
-        *entry = playlist_get_position(*playlist);
-}
-
-static gboolean get_status_cb(void *data)
-{
-    struct StatusRequest *request = data;
-
-    g_mutex_lock(info_mutex);
-
-    memset (request, 0, sizeof (* request));
-    request->playing = playback_get_playing();
-
-    if (request->playing)
-    {
-        request->paused = playback_get_paused ();
-        request->time = playback_get_time ();
-        request->length = playback_get_length ();
-        playback_get_info (& request->bitrate, & request->samplerate,
-         & request->channels);
-    }
-
-    g_cond_signal(info_cond);
-    g_mutex_unlock(info_mutex);
-    return FALSE;
-}
-
-static void get_status(struct StatusRequest *request)
-{
-    if (g_thread_self() == main_thread)
-        get_status_cb(request);
-    else
-    {
-        g_mutex_lock(info_mutex);
-        g_timeout_add(0, get_status_cb, request);
-        g_cond_wait(info_cond, info_mutex);
-        g_mutex_unlock(info_mutex);
-    }
-}
-
-static gboolean get_position_cb(void *data)
-{
-    struct PositionRequest *request = data;
-
-    g_mutex_lock(info_mutex);
-
-    real_position(&request->playlist, &request->entry);
-    request->entry_count = playlist_entry_count(request->playlist);
-    request->queue_count = playlist_queue_count(request->playlist);
-
-    g_cond_signal(info_cond);
-    g_mutex_unlock(info_mutex);
-    return FALSE;
-}
-
-static void get_position(struct PositionRequest *request)
-{
-    if (g_thread_self() == main_thread)
-        get_position_cb(request);
-    else
-    {
-        g_mutex_lock(info_mutex);
-        g_timeout_add(0, get_position_cb, request);
-        g_cond_wait(info_cond, info_mutex);
-        g_mutex_unlock(info_mutex);
-    }
-}
-
-static gboolean get_info_cb(void *data)
-{
-    struct InfoRequest *request = data;
-    const gchar *filename, *title, *pltitle;
-
-    g_mutex_lock(info_mutex);
-
-    real_position(&request->playlist, &request->entry);
-    filename = playlist_entry_get_filename(request->playlist, request->entry);
-    request->filename = (filename == NULL) ? NULL : g_strdup(filename);
-    title = playlist_entry_get_title (request->playlist, request->entry, FALSE);
-    request->title = (title == NULL) ? NULL : g_strdup(title);
-    request->length = playlist_entry_get_length (request->playlist,
-     request->entry, FALSE);
-    pltitle = playlist_get_title(request->playlist);
-    request->pltitle = (pltitle == NULL) ? NULL : g_strdup(pltitle);
-
-    g_cond_signal(info_cond);
-    g_mutex_unlock(info_mutex);
-    return FALSE;
-}
-
-static void get_info(struct InfoRequest *request)
-{
-    if (g_thread_self() == main_thread)
-        get_info_cb(request);
-    else
-    {
-        g_mutex_lock(info_mutex);
-        g_timeout_add(0, get_info_cb, request);
-        g_cond_wait(info_cond, info_mutex);
-        g_mutex_unlock(info_mutex);
-    }
-}
-
-static gboolean get_field_cb(void *data)
-{
-    struct FieldRequest *request = data;
-    const Tuple *tuple;
-
-    g_mutex_lock(info_mutex);
-
-    real_position(&request->playlist, &request->entry);
-    tuple = playlist_entry_get_tuple (request->playlist, request->entry, FALSE);
-    request->value = (tuple == NULL) ? NULL : tuple_value_to_gvalue(tuple, request->field);
-
-    g_cond_signal(info_cond);
-    g_mutex_unlock(info_mutex);
-    return FALSE;
-}
-
-static void get_field(struct FieldRequest *request)
-{
-    if (g_thread_self() == main_thread)
-        get_field_cb(request);
-    else
-    {
-        g_mutex_lock(info_mutex);
-        g_timeout_add(0, get_field_cb, request);
-        g_cond_wait(info_cond, info_mutex);
-        g_mutex_unlock(info_mutex);
-    }
-}
-
-static gboolean play_cb(void *unused)
-{
-    /* Only the active playlist is visible through DBUS interface, so make sure
-     * to play from it, not another playlist. --jlindgren */
-    if (playlist_get_playing () != playlist_get_active ())
-        playlist_set_playing (playlist_get_active ());
-
-    drct_play();
-    return FALSE;
-}
-
-static gboolean pause_cb(void *unused)
-{
-    playback_pause();
-    return FALSE;
-}
-
-static gboolean play_pause_cb(void *unused)
-{
-    if (playback_get_playing())
-        playback_pause();
-    else
-        playback_play (0, FALSE);
-
-    return FALSE;
-}
-
-static gboolean seek_cb(void *data)
-{
-    playback_seek (GPOINTER_TO_INT (data));
-    return FALSE;
-}
-
-static gboolean stop_cb(void *unused)
-{
-    playback_stop();
-    return FALSE;
-}
-
-static gboolean prev_cb(void *unused)
-{
-    drct_pl_prev();
-    return FALSE;
-}
-
-static gboolean next_cb(void *unused)
-{
-    drct_pl_next();
-    return FALSE;
-}
-
-static gboolean jump_cb(void *data)
-{
-    drct_pl_set_pos(GPOINTER_TO_INT(data));
-    return FALSE;
-}
-
-static gboolean add_cb(void *data)
-{
-    struct AddRequest *request = data;
-    gint playlist = playlist_get_active();
-
-    if (request->position < 0)
-        request->position = playlist_entry_count (playlist);
-
-    drct_pl_add (request->filename, request->position);
-
-    if (request->play)
-    {
-        playlist_set_playing(playlist);
-        playlist_set_position(playlist, request->position);
-        playback_play (0, FALSE);
-    }
-
-    g_free(request);
-    return FALSE;
-}
-
-static gboolean delete_cb(void *data)
-{
-    drct_pl_delete(GPOINTER_TO_INT(data));
-    return FALSE;
-}
-
-static gboolean clear_cb(void *unused)
-{
-    drct_pl_clear();
-    return FALSE;
-}
-
-static gboolean add_to_queue_cb(void *data)
-{
-    drct_pq_add(GPOINTER_TO_INT(data));
-    return FALSE;
-}
-
-static gboolean remove_from_queue_cb(void *data)
+static GValue * get_field (int playlist, int entry, const char * field)
 {
-    drct_pq_remove(GPOINTER_TO_INT(data));
-    return FALSE;
-}
-
-static gboolean clear_queue_cb(void *unused)
-{
-    drct_pq_clear();
-    return FALSE;
-}
+    Tuple * tuple = playlist_entry_get_tuple (playlist, entry, FALSE);
+    GValue * value = tuple ? tuple_value_to_gvalue (tuple, field) : NULL;
 
-static gboolean queue_get_entry_cb(void *data)
-{
-    g_mutex_lock(info_mutex);
-
-    * (gint *) data = drct_pq_get_entry (* (gint *) data);
+    if (tuple)
+        tuple_unref (tuple);
 
-    g_cond_signal(info_cond);
-    g_mutex_unlock(info_mutex);
-    return FALSE;
+    return value;
 }
 
-static gint queue_get_entry(gint position)
+static GHashTable * get_mpris_metadata (int playlist, int entry)
 {
-    if (g_thread_self() == main_thread)
-        queue_get_entry_cb(&position);
-    else
-    {
-        g_mutex_lock(info_mutex);
-        g_timeout_add(0, queue_get_entry_cb, &position);
-        g_cond_wait(info_cond, info_mutex);
-        g_mutex_unlock(info_mutex);
-    }
-
-    return position;
-}
+    char * filename = playlist_entry_get_filename (playlist, entry);
+    Tuple * tuple = playlist_entry_get_tuple (playlist, entry, FALSE);
 
-static gboolean queue_find_entry_cb(void *data)
-{
-    g_mutex_lock(info_mutex);
+    GHashTable * metadata = NULL;
+    if (filename && tuple)
+        metadata = make_mpris_metadata (filename, tuple);
 
-    *(gint *) data = drct_pq_get_queue_position(*(gint *) data);
+    str_unref (filename);
+    if (tuple)
+        tuple_unref (tuple);
 
-    g_cond_signal(info_cond);
-    g_mutex_unlock(info_mutex);
-    return FALSE;
-}
-
-static gint queue_find_entry(gint position)
-{
-    if (g_thread_self() == main_thread)
-        queue_find_entry_cb(&position);
-    else
-    {
-        g_mutex_lock(info_mutex);
-        g_timeout_add(0, queue_find_entry_cb, &position);
-        g_cond_wait(info_cond, info_mutex);
-        g_mutex_unlock(info_mutex);
-    }
-
-    return position;
-}
-
-gboolean add_to_new_playlist_cb(void *data)
-{
-    drct_pl_open_temp (data);
-    g_free(data);
-    return FALSE;
-}
-
-static gboolean get_mpris_metadata_cb(void *data)
-{
-    struct MprisMetadataRequest *request = data;
-    const gchar *filename;
-
-    g_mutex_lock(info_mutex);
-
-    real_position(&request->playlist, &request->entry);
-    filename = playlist_entry_get_filename(request->playlist, request->entry);
-
-    if (filename == NULL)
-        request->metadata = NULL;
-    else
-        request->metadata = make_mpris_metadata (filename,
-         playlist_entry_get_tuple (request->playlist, request->entry, FALSE));
-
-    g_cond_signal(info_cond);
-    g_mutex_unlock(info_mutex);
-    return FALSE;
-}
-
-static void get_mpris_metadata(struct MprisMetadataRequest *request)
-{
-    if (g_thread_self() == main_thread)
-        get_mpris_metadata_cb(request);
-    else
-    {
-        g_mutex_lock(info_mutex);
-        g_timeout_add(0, get_mpris_metadata_cb, request);
-        g_cond_wait(info_cond, info_mutex);
-        g_mutex_unlock(info_mutex);
-    }
-}
-
-static gboolean set_shuffle_cb (void * shuffle)
-{
-    cfg.shuffle = GPOINTER_TO_INT (shuffle);
-    event_queue ("toggle shuffle", NULL);
-    return FALSE;
-}
-
-static gboolean set_repeat_cb (void * repeat)
-{
-    cfg.repeat = GPOINTER_TO_INT (repeat);
-    event_queue ("toggle repeat", NULL);
-    return FALSE;
+    return metadata;
 }
 
 /* MPRIS API */
 // MPRIS /
-gboolean mpris_root_identity(MprisRoot * obj, gchar ** identity, GError ** error)
+bool_t mpris_root_identity(MprisRoot * obj, char ** identity, GError ** error)
 {
     *identity = g_strdup_printf("Audacious %s", VERSION);
     return TRUE;
 }
 
-gboolean mpris_root_quit(MprisPlayer * obj, GError ** error)
+bool_t mpris_root_quit(MprisPlayer * obj, GError ** error)
 {
     event_queue("quit", NULL);
     return TRUE;
@@ -692,43 +330,43 @@ gboolean mpris_root_quit(MprisPlayer * obj, GError ** error)
 
 // MPRIS /Player
 
-gboolean mpris_player_next(MprisPlayer * obj, GError * *error)
+bool_t mpris_player_next (MprisPlayer * obj, GError * * error)
 {
-    g_timeout_add(0, next_cb, NULL);
+    drct_pl_next ();
     return TRUE;
 }
 
-gboolean mpris_player_prev(MprisPlayer * obj, GError * *error)
+bool_t mpris_player_prev (MprisPlayer * obj, GError * * error)
 {
-    g_timeout_add(0, prev_cb, NULL);
+    drct_pl_prev ();
     return TRUE;
 }
 
-gboolean mpris_player_pause(MprisPlayer * obj, GError * *error)
+bool_t mpris_player_pause (MprisPlayer * obj, GError * * error)
 {
-    g_timeout_add(0, pause_cb, NULL);
+    drct_pause ();
     return TRUE;
 }
 
-gboolean mpris_player_stop(MprisPlayer * obj, GError * *error)
+bool_t mpris_player_stop (MprisPlayer * obj, GError * * error)
 {
-    g_timeout_add(0, stop_cb, NULL);
+    drct_stop ();
     return TRUE;
 }
 
-gboolean mpris_player_play(MprisPlayer * obj, GError * *error)
+bool_t mpris_player_play (MprisPlayer * obj, GError * * error)
 {
-    g_timeout_add(0, play_cb, NULL);
+    drct_play ();
     return TRUE;
 }
 
-gboolean mpris_player_repeat(MprisPlayer * obj, gboolean rpt, GError ** error)
+bool_t mpris_player_repeat(MprisPlayer * obj, bool_t rpt, GError ** error)
 {
     fprintf (stderr, "implement me\n");
     return TRUE;
 }
 
-static void append_int_value(GValueArray * ar, gint tmp)
+static void append_int_value(GValueArray * ar, int tmp)
 {
     GValue value;
     memset(&value, 0, sizeof(value));
@@ -737,104 +375,110 @@ static void append_int_value(GValueArray * ar, gint tmp)
     g_value_array_append(ar, &value);
 }
 
-static gint get_playback_status(void)
+static int get_playback_status (void)
 {
-    struct StatusRequest request;
-    get_status(&request);
+    if (! drct_get_playing ())
+        return MPRIS_STATUS_STOP;
 
-    return (!request.playing ? MPRIS_STATUS_STOP : request.paused ? MPRIS_STATUS_PAUSE : MPRIS_STATUS_PLAY);
+    return drct_get_paused () ? MPRIS_STATUS_PAUSE : MPRIS_STATUS_PLAY;
 }
 
-gboolean mpris_player_get_status(MprisPlayer * obj, GValueArray * *status, GError * *error)
+bool_t mpris_player_get_status(MprisPlayer * obj, GValueArray * *status, GError * *error)
 {
     *status = g_value_array_new(4);
 
-    append_int_value(*status, (gint) get_playback_status());
-    append_int_value(*status, (gint) cfg.shuffle);
-    append_int_value(*status, (gint) cfg.no_playlist_advance);
-    append_int_value(*status, (gint) cfg.repeat);
+    append_int_value(*status, (int) get_playback_status());
+    append_int_value (* status, get_bool (NULL, "shuffle"));
+    append_int_value (* status, get_bool (NULL, "no_playlist_advance"));
+    append_int_value (* status, get_bool (NULL, "repeat"));
     return TRUE;
 }
 
-gboolean mpris_player_get_metadata(MprisPlayer * obj, GHashTable * *metadata, GError * *error)
+bool_t mpris_player_get_metadata (MprisPlayer * obj, GHashTable * * metadata,
+ GError * * error)
 {
-    struct MprisMetadataRequest request = {.playlist = -1,.entry = -1 };
+    int playlist = playlist_get_playing ();
+    int entry = (playlist >= 0) ? playlist_get_position (playlist) : -1;
+
+    * metadata = (entry >= 0) ? get_mpris_metadata (playlist, entry) : NULL;
+    if (! * metadata)
+        * metadata = g_hash_table_new (g_str_hash, g_str_equal);
 
-    get_mpris_metadata(&request);
-    *metadata = request.metadata;
     return TRUE;
 }
 
-gboolean mpris_player_get_caps(MprisPlayer * obj, gint * capabilities, GError ** error)
+bool_t mpris_player_get_caps(MprisPlayer * obj, int * capabilities, GError ** error)
 {
     *capabilities = MPRIS_CAPS_CAN_GO_NEXT | MPRIS_CAPS_CAN_GO_PREV | MPRIS_CAPS_CAN_PAUSE | MPRIS_CAPS_CAN_PLAY | MPRIS_CAPS_CAN_SEEK | MPRIS_CAPS_CAN_PROVIDE_METADATA | MPRIS_CAPS_PROVIDES_TIMING;
     return TRUE;
 }
 
-gboolean mpris_player_volume_set(MprisPlayer * obj, gint vol, GError ** error)
+bool_t mpris_player_volume_set(MprisPlayer * obj, int vol, GError ** error)
 {
     drct_set_volume_main (vol);
     return TRUE;
 }
 
-gboolean mpris_player_volume_get(MprisPlayer * obj, gint * vol, GError ** error)
+bool_t mpris_player_volume_get(MprisPlayer * obj, int * vol, GError ** error)
 {
     drct_get_volume_main (vol);
     return TRUE;
 }
 
-gboolean mpris_player_position_set(MprisPlayer * obj, gint pos, GError * *error)
+bool_t mpris_player_position_set (MprisPlayer * obj, int pos, GError * * error)
 {
-    g_timeout_add(0, seek_cb, GINT_TO_POINTER(pos));
+    drct_seek (pos);
     return TRUE;
 }
 
-gboolean mpris_player_position_get(MprisPlayer * obj, gint * pos, GError * *error)
+bool_t mpris_player_position_get (MprisPlayer * obj, int * pos, GError * * error)
 {
-    struct StatusRequest request;
-
-    get_status(&request);
-    *pos = request.time;
+    * pos = drct_get_time ();
     return TRUE;
 }
 
 // MPRIS /Player signals
-gboolean mpris_emit_caps_change(MprisPlayer * obj)
+bool_t mpris_emit_caps_change(MprisPlayer * obj)
 {
     g_signal_emit(obj, signals[CAPS_CHANGE_SIG], 0, 0);
     return TRUE;
 }
 
-gboolean mpris_emit_track_change(MprisPlayer * obj)
+bool_t mpris_emit_track_change(MprisPlayer * obj)
 {
-    gint playlist, entry;
-    const gchar *filename;
+    int playlist, entry;
     GHashTable *metadata;
 
     playlist = playlist_get_playing();
     entry = playlist_get_position(playlist);
-    filename = playlist_entry_get_filename(playlist, entry);
+    char * filename = playlist_entry_get_filename (playlist, entry);
+    Tuple * tuple = playlist_entry_get_tuple (playlist, entry, FALSE);
 
-    if (filename == NULL)
-        return FALSE;
+    if (filename && tuple)
+    {
+        metadata = make_mpris_metadata (filename, tuple);
+        g_signal_emit (obj, signals[TRACK_CHANGE_SIG], 0, metadata);
+        g_hash_table_destroy (metadata);
+    }
 
-    metadata = make_mpris_metadata (filename, playlist_entry_get_tuple
-     (playlist, entry, FALSE));
+    str_unref (filename);
+    if (tuple)
+        tuple_unref (tuple);
 
-    g_signal_emit(obj, signals[TRACK_CHANGE_SIG], 0, metadata);
-    g_hash_table_destroy(metadata);
-    return TRUE;
+    return (filename && tuple);
 }
 
-gboolean mpris_emit_status_change(MprisPlayer * obj, PlaybackStatus status)
+bool_t mpris_emit_status_change(MprisPlayer * obj, PlaybackStatus status)
 {
     GValueArray *ar = g_value_array_new(4);
 
-    if (status < 0) status = get_playback_status();
-    append_int_value(ar, (gint) status);
-    append_int_value(ar, (gint) cfg.shuffle);
-    append_int_value(ar, (gint) cfg.no_playlist_advance);
-    append_int_value(ar, (gint) cfg.repeat);
+    if (status == MPRIS_STATUS_INVALID)
+        status = get_playback_status ();
+
+    append_int_value(ar, (int) status);
+    append_int_value (ar, get_bool (NULL, "shuffle"));
+    append_int_value (ar, get_bool (NULL, "no_playlist_advance"));
+    append_int_value (ar, get_bool (NULL, "repeat"));
 
     g_signal_emit(obj, signals[STATUS_CHANGE_SIG], 0, ar);
     g_value_array_free(ar);
@@ -842,7 +486,7 @@ gboolean mpris_emit_status_change(MprisPlayer * obj, PlaybackStatus status)
 }
 
 // MPRIS /TrackList
-gboolean mpris_emit_tracklist_change(MprisTrackList * obj, gint playlist)
+bool_t mpris_emit_tracklist_change(MprisTrackList * obj, int playlist)
 {
     g_signal_emit(obj, tracklist_signals[TRACKLIST_CHANGE_SIG], 0, playlist_entry_count(playlist));
     return TRUE;
@@ -850,238 +494,186 @@ gboolean mpris_emit_tracklist_change(MprisTrackList * obj, gint playlist)
 
 static void mpris_playlist_update_hook(gpointer unused, MprisTrackList * obj)
 {
-    gint playlist = playlist_get_active();
+    int playlist = playlist_get_active();
 
     mpris_emit_tracklist_change(obj, playlist);
 }
 
-gboolean mpris_tracklist_get_metadata(MprisTrackList * obj, gint pos, GHashTable * *metadata, GError * *error)
+bool_t mpris_tracklist_get_metadata (MprisTrackList * obj, int pos,
+ GHashTable * * metadata, GError * * error)
 {
-    struct MprisMetadataRequest request = {.playlist = -1,.entry = pos };
+    * metadata = get_mpris_metadata (playlist_get_active (), pos);
+    if (! * metadata)
+        * metadata = g_hash_table_new (g_str_hash, g_str_equal);
 
-    get_mpris_metadata(&request);
-    *metadata = request.metadata;
     return TRUE;
 }
 
-gboolean mpris_tracklist_get_current_track(MprisTrackList * obj, gint * pos, GError * *error)
+bool_t mpris_tracklist_get_current_track (MprisTrackList * obj, int * pos,
+ GError * * error)
 {
-    struct PositionRequest request = {.playlist = -1,.entry = -1 };
-
-    get_position(&request);
-    *pos = request.entry;
+    * pos = playlist_get_position (playlist_get_active ());
     return TRUE;
 }
 
-gboolean mpris_tracklist_get_length(MprisTrackList * obj, gint * length, GError * *error)
+bool_t mpris_tracklist_get_length (MprisTrackList * obj, int * length, GError * * error)
 {
-    struct PositionRequest request = {.playlist = -1,.entry = -1 };
-
-    get_position(&request);
-    *length = request.entry_count;
+    * length = playlist_entry_count (playlist_get_active ());
     return TRUE;
 }
 
-gboolean mpris_tracklist_add_track(MprisTrackList * obj, gchar * uri, gboolean play, GError * *error)
+bool_t mpris_tracklist_add_track (MprisTrackList * obj, char * uri, bool_t play,
+ GError * * error)
 {
-    struct AddRequest *request = g_malloc(sizeof(struct AddRequest));
-
-    request->position = -1;
-    request->filename = g_strdup(uri);
-    request->play = play;
-
-    g_timeout_add(0, add_cb, request);
+    playlist_entry_insert (playlist_get_active (), -1, uri, NULL, play);
     return TRUE;
 }
 
-gboolean mpris_tracklist_del_track(MprisTrackList * obj, gint pos, GError * *error)
+bool_t mpris_tracklist_del_track (MprisTrackList * obj, int pos, GError * * error)
 {
-    g_timeout_add(0, delete_cb, GINT_TO_POINTER(pos));
+    playlist_entry_delete (playlist_get_active (), pos, 1);
     return TRUE;
 }
 
-gboolean mpris_tracklist_loop (MprisTrackList * obj, gboolean loop, GError * *
+bool_t mpris_tracklist_loop (MprisTrackList * obj, bool_t loop, GError * *
  error)
 {
-    g_timeout_add (0, set_repeat_cb, GINT_TO_POINTER (loop));
+    set_bool (NULL, "repeat", loop);
     return TRUE;
 }
 
-gboolean mpris_tracklist_random (MprisTrackList * obj, gboolean random,
+bool_t mpris_tracklist_random (MprisTrackList * obj, bool_t random,
  GError * * error)
 {
-    g_timeout_add (0, set_shuffle_cb, GINT_TO_POINTER (random));
+    set_bool (NULL, "shuffle", random);
     return TRUE;
 }
 
 // Audacious General Information
-gboolean audacious_rc_version(RemoteObject * obj, gchar ** version, GError ** error)
+bool_t audacious_rc_version(RemoteObject * obj, char ** version, GError ** error)
 {
     *version = g_strdup(VERSION);
     return TRUE;
 }
 
-gboolean audacious_rc_quit(RemoteObject * obj, GError * *error)
+bool_t audacious_rc_quit(RemoteObject * obj, GError * *error)
 {
     event_queue("quit", NULL);
     return TRUE;
 }
 
-gboolean audacious_rc_eject(RemoteObject * obj, GError ** error)
-{
-    interface_run_filebrowser (TRUE);
-    return TRUE;
-}
-
-gboolean audacious_rc_main_win_visible(RemoteObject * obj, gboolean * is_main_win, GError ** error)
-{
-    *is_main_win = cfg.player_visible;
-    return TRUE;
-}
-
-gboolean audacious_rc_show_main_win(RemoteObject * obj, gboolean show, GError ** error)
-{
-    interface_toggle_visibility ();
-    return TRUE;
-}
-
-gboolean audacious_rc_equalizer_visible(RemoteObject * obj, gboolean * is_eq_win, GError ** error)
+bool_t audacious_rc_eject(RemoteObject * obj, GError ** error)
 {
-    *is_eq_win = cfg.equalizer_visible;
+    interface_show_filebrowser (TRUE);
     return TRUE;
 }
 
-gboolean audacious_rc_show_equalizer(RemoteObject * obj, gboolean show, GError ** error)
+bool_t audacious_rc_main_win_visible (RemoteObject * obj,
+ bool_t * visible, GError ** error)
 {
-#if 0
-    drct_eq_win_toggle(show);
-#endif
+    * visible = interface_is_shown ();
     return TRUE;
 }
 
-gboolean audacious_rc_playlist_visible(RemoteObject * obj, gboolean * is_pl_win, GError ** error)
+bool_t audacious_rc_show_main_win (RemoteObject * obj, bool_t show,
+ GError * * error)
 {
-    *is_pl_win = cfg.playlist_visible;
+    interface_show (show);
     return TRUE;
 }
 
-gboolean audacious_rc_show_playlist(RemoteObject * obj, gboolean show, GError ** error)
+bool_t audacious_rc_get_tuple_fields(RemoteObject * obj, char *** fields, GError ** error)
 {
-#if 0
-    drct_pl_win_toggle(show);
-#endif
-    return TRUE;
-}
+    * fields = g_new (char *, TUPLE_FIELDS);
 
-gboolean audacious_rc_get_tuple_fields(RemoteObject * obj, gchar *** fields, GError ** error)
-{
-    gchar **res = g_new0(gchar *, FIELD_LAST + 1);
-    gint i;
-    for (i = 0; i < FIELD_LAST; i++)
-    {
-        res[i] = g_strdup(tuple_fields[i].name);
-    }
-    *fields = res;
+    for (int i = 0; i < TUPLE_FIELDS; i ++)
+        (* fields)[i] = g_strdup (tuple_field_get_name (i));
 
+    (* fields)[TUPLE_FIELDS] = NULL;
     return TRUE;
 }
 
 
 // Playback Information/Manipulation
 
-gboolean audacious_rc_play(RemoteObject * obj, GError * *error)
+bool_t audacious_rc_play (RemoteObject * obj, GError * * error)
 {
-    g_timeout_add(0, play_cb, NULL);
+    drct_play ();
     return TRUE;
 }
 
-gboolean audacious_rc_pause(RemoteObject * obj, GError * *error)
+bool_t audacious_rc_pause (RemoteObject * obj, GError * * error)
 {
-    g_timeout_add(0, pause_cb, NULL);
+    drct_pause ();
     return TRUE;
 }
 
-gboolean audacious_rc_stop(RemoteObject * obj, GError * *error)
+bool_t audacious_rc_stop (RemoteObject * obj, GError * * error)
 {
-    g_timeout_add(0, stop_cb, NULL);
+    drct_stop ();
     return TRUE;
 }
 
-gboolean audacious_rc_playing(RemoteObject * obj, gboolean * is_playing, GError * *error)
+bool_t audacious_rc_playing (RemoteObject * obj, bool_t * is_playing, GError * * error)
 {
-    struct StatusRequest request;
-
-    get_status(&request);
-    *is_playing = request.playing;
+    * is_playing = drct_get_playing ();
     return TRUE;
 }
 
-gboolean audacious_rc_paused(RemoteObject * obj, gboolean * is_paused, GError * *error)
+bool_t audacious_rc_paused (RemoteObject * obj, bool_t * is_paused, GError * * error)
 {
-    struct StatusRequest request;
-
-    get_status(&request);
-    *is_paused = request.paused;
+    * is_paused = drct_get_paused ();
     return TRUE;
 }
 
-gboolean audacious_rc_stopped(RemoteObject * obj, gboolean * is_stopped, GError * *error)
+bool_t audacious_rc_stopped (RemoteObject * obj, bool_t * is_stopped, GError * * error)
 {
-    struct StatusRequest request;
-
-    get_status(&request);
-    *is_stopped = !request.playing;
+    * is_stopped = ! drct_get_playing ();
     return TRUE;
 }
 
-gboolean audacious_rc_status(RemoteObject * obj, gchar * *status, GError * *error)
+bool_t audacious_rc_status (RemoteObject * obj, char * * status, GError * * error)
 {
-    struct StatusRequest request;
+    if (drct_get_playing ())
+        * status = strdup (drct_get_paused () ? "paused" : "playing");
+    else
+        * status = strdup ("stopped");
 
-    get_status(&request);
-    *status = g_strdup(!request.playing ? "stopped" : request.paused ? "paused" : "playing");
     return TRUE;
 }
 
-gboolean audacious_rc_info(RemoteObject * obj, gint * rate, gint * freq, gint * nch, GError * *error)
+bool_t audacious_rc_info (RemoteObject * obj, int * rate, int * freq, int * nch,
+ GError * * error)
 {
-    struct StatusRequest request;
-
-    get_status(&request);
-    *rate = request.bitrate;
-    *freq = request.samplerate;
-    *nch = request.channels;
+    drct_get_info (rate, freq, nch);
     return TRUE;
 }
 
-gboolean audacious_rc_time(RemoteObject * obj, gint * time, GError * *error)
+bool_t audacious_rc_time (RemoteObject * obj, int * time, GError * * error)
 {
-    struct StatusRequest request;
-
-    get_status(&request);
-    *time = request.time;
+    * time = drct_get_time ();
     return TRUE;
 }
 
-gboolean audacious_rc_seek(RemoteObject * obj, guint pos, GError * *error)
+bool_t audacious_rc_seek (RemoteObject * obj, unsigned int pos, GError * * error)
 {
-    g_timeout_add(0, seek_cb, GINT_TO_POINTER(pos));
+    drct_seek (pos);
     return TRUE;
 }
 
-gboolean audacious_rc_volume(RemoteObject * obj, gint * vl, gint * vr, GError ** error)
+bool_t audacious_rc_volume(RemoteObject * obj, int * vl, int * vr, GError ** error)
 {
     drct_get_volume (vl, vr);
     return TRUE;
 }
 
-gboolean audacious_rc_set_volume(RemoteObject * obj, gint vl, gint vr, GError ** error)
+bool_t audacious_rc_set_volume(RemoteObject * obj, int vl, int vr, GError ** error)
 {
     drct_set_volume (vl, vr);
     return TRUE;
 }
 
-gboolean audacious_rc_balance(RemoteObject * obj, gint * balance, GError ** error)
+bool_t audacious_rc_balance(RemoteObject * obj, int * balance, GError ** error)
 {
     drct_get_volume_balance (balance);
     return TRUE;
@@ -1089,394 +681,362 @@ gboolean audacious_rc_balance(RemoteObject * obj, gint * balance, GError ** erro
 
 // Playlist Information/Manipulation
 
-gboolean audacious_rc_position(RemoteObject * obj, gint * pos, GError * *error)
+bool_t audacious_rc_position (RemoteObject * obj, int * pos, GError * * error)
 {
-    struct PositionRequest request = {.playlist = -1,.entry = -1 };
-
-    get_position(&request);
-    *pos = request.entry;
+    * pos = playlist_get_position (playlist_get_active ());
     return TRUE;
 }
 
-gboolean audacious_rc_advance(RemoteObject * obj, GError * *error)
+bool_t audacious_rc_advance(RemoteObject * obj, GError * *error)
 {
-    g_timeout_add(0, next_cb, NULL);
+    drct_pl_next ();
     return TRUE;
 }
 
-gboolean audacious_rc_reverse(RemoteObject * obj, GError * *error)
+bool_t audacious_rc_reverse (RemoteObject * obj, GError * * error)
 {
-    g_timeout_add(0, prev_cb, NULL);
+    drct_pl_prev ();
     return TRUE;
 }
 
-gboolean audacious_rc_length(RemoteObject * obj, gint * length, GError * *error)
+bool_t audacious_rc_length (RemoteObject * obj, int * length, GError * * error)
 {
-    struct PositionRequest request = {.playlist = -1,.entry = -1 };
-
-    get_position(&request);
-    *length = request.entry_count;
+    * length = playlist_entry_count (playlist_get_active ());
     return TRUE;
 }
 
-gboolean audacious_rc_song_title(RemoteObject * obj, guint pos, gchar * *title, GError * *error)
+bool_t audacious_rc_song_title (RemoteObject * obj, unsigned int pos, char * *
+ title, GError * * error)
 {
-    struct InfoRequest request = {.playlist = -1,.entry = pos };
-
-    get_info(&request);
-    g_free(request.filename);
-    g_free(request.pltitle);
-    *title = request.title;
+    char * title2 = playlist_entry_get_title (playlist_get_active (), pos, FALSE);
+    * title = strdup (title2);
+    str_unref (title2);
     return TRUE;
 }
 
-gboolean audacious_rc_song_filename(RemoteObject * obj, guint pos, gchar * *filename, GError * *error)
+bool_t audacious_rc_song_filename (RemoteObject * obj, unsigned int pos,
+ char * * filename, GError * * error)
 {
-    struct InfoRequest request = {.playlist = -1,.entry = pos };
-
-    get_info(&request);
-    *filename = request.filename;
-    g_free(request.title);
-    g_free(request.pltitle);
+    char * filename2 = playlist_entry_get_filename (playlist_get_active (), pos);
+    * filename = strdup (filename2);
+    str_unref (filename2);
     return TRUE;
 }
 
-gboolean audacious_rc_song_length(RemoteObject * obj, guint pos, gint * length, GError * *error)
+bool_t audacious_rc_song_length(RemoteObject * obj, unsigned int pos, int * length, GError * *error)
 {
     audacious_rc_song_frames(obj, pos, length, error);
     *length /= 1000;
     return TRUE;
 }
 
-gboolean audacious_rc_song_frames(RemoteObject * obj, guint pos, gint * length, GError * *error)
+bool_t audacious_rc_song_frames (RemoteObject * obj, unsigned int pos, int *
+ length, GError * * error)
 {
-    struct InfoRequest request = {.playlist = -1,.entry = pos };
-
-    get_info(&request);
-    g_free(request.filename);
-    g_free(request.title);
-    g_free(request.pltitle);
-    *length = request.length;
+    * length = playlist_entry_get_length (playlist_get_active (), pos, FALSE);
     return TRUE;
 }
 
-gboolean audacious_rc_song_tuple(RemoteObject * obj, guint pos, gchar * field, GValue * value, GError * *error)
+bool_t audacious_rc_song_tuple (RemoteObject * obj, unsigned int pos, char *
+ field, GValue * value, GError * * error)
 {
-    struct FieldRequest request = {.playlist = -1,.entry = pos,.field = field };
-
-    get_field(&request);
-
-    if (request.value == NULL)
+    GValue * value2 = get_field (playlist_get_active (), pos, field);
+    if (! value2)
         return FALSE;
 
-    memset(value, 0, sizeof(GValue));
-    g_value_init(value, G_VALUE_TYPE(request.value));
-    g_value_copy(request.value, value);
-    g_value_unset(request.value);
-    g_free(request.value);
+    memset (value, 0, sizeof (GValue));
+    g_value_init (value, G_VALUE_TYPE (value2));
+    g_value_copy (value2, value);
+    g_value_unset (value2);
+    g_free (value2);
     return TRUE;
 }
 
-gboolean audacious_rc_jump(RemoteObject * obj, guint pos, GError * *error)
+bool_t audacious_rc_jump (RemoteObject * obj, unsigned int pos, GError * * error)
 {
-    g_timeout_add(0, jump_cb, GINT_TO_POINTER(pos));
+    playlist_set_position (playlist_get_active (), pos);
     return TRUE;
 }
 
-gboolean audacious_rc_add(RemoteObject * obj, gchar * file, GError * *error)
+bool_t audacious_rc_add(RemoteObject * obj, char * file, GError * *error)
 {
     return audacious_rc_playlist_ins_url_string(obj, file, -1, error);
 }
 
-gboolean audacious_rc_add_url(RemoteObject * obj, gchar * file, GError * *error)
+bool_t audacious_rc_add_url(RemoteObject * obj, char * file, GError * *error)
 {
     return audacious_rc_playlist_ins_url_string(obj, file, -1, error);
 }
 
-static GList * string_array_to_list (gchar * * strings)
+static Index * strings_to_index (char * * strings)
 {
-    GList * list = NULL;
+    Index * index = index_new ();
 
-    while (* strings != NULL)
-        list = g_list_prepend (list, * strings ++);
+    while (* strings)
+        index_append (index, str_get (* strings ++));
 
-    return g_list_reverse (list);
+    return index;
 }
 
-gboolean audacious_rc_add_list (RemoteObject * obj, gchar * * filenames,
+bool_t audacious_rc_add_list (RemoteObject * obj, char * * filenames,
  GError * * error)
 {
-    GList * list = string_array_to_list (filenames);
-
-    drct_pl_add_list (list, -1);
-    g_list_free (list);
+    drct_pl_add_list (strings_to_index (filenames), -1);
     return TRUE;
 }
 
-gboolean audacious_rc_open_list (RemoteObject * obj, gchar * * filenames,
+bool_t audacious_rc_open_list (RemoteObject * obj, char * * filenames,
  GError * * error)
 {
-    GList * list = string_array_to_list (filenames);
-
-    drct_pl_open_list (list);
-    g_list_free (list);
+    drct_pl_open_list (strings_to_index (filenames));
     return TRUE;
 }
 
-gboolean audacious_rc_open_list_to_temp (RemoteObject * obj, gchar * *
+bool_t audacious_rc_open_list_to_temp (RemoteObject * obj, char * *
  filenames, GError * * error)
 {
-    GList * list = string_array_to_list (filenames);
+    drct_pl_open_temp_list (strings_to_index (filenames));
+    return TRUE;
+}
+
+bool_t audacious_rc_delete (RemoteObject * obj, unsigned int pos, GError * * error)
+{
+    playlist_entry_delete (playlist_get_active (), pos, 1);
+    return TRUE;
+}
 
-    drct_pl_open_temp_list (list);
-    g_list_free (list);
+bool_t audacious_rc_clear (RemoteObject * obj, GError * * error)
+{
+    int playlist = playlist_get_active ();
+    playlist_entry_delete (playlist, 0, playlist_entry_count (playlist));
     return TRUE;
 }
 
-gboolean audacious_rc_delete(RemoteObject * obj, guint pos, GError * *error)
+bool_t audacious_rc_auto_advance(RemoteObject * obj, bool_t * is_advance, GError ** error)
 {
-    g_timeout_add(0, delete_cb, GINT_TO_POINTER(pos));
+    * is_advance = ! get_bool (NULL, "no_playlist_advance");
     return TRUE;
 }
 
-gboolean audacious_rc_clear(RemoteObject * obj, GError * *error)
+bool_t audacious_rc_toggle_auto_advance(RemoteObject * obj, GError ** error)
 {
-    g_timeout_add(0, clear_cb, NULL);
+    set_bool (NULL, "no_playlist_advance", ! get_bool (NULL, "no_playlist_advance"));
     return TRUE;
 }
 
-gboolean audacious_rc_auto_advance(RemoteObject * obj, gboolean * is_advance, GError ** error)
+bool_t audacious_rc_repeat(RemoteObject * obj, bool_t * is_repeating, GError ** error)
 {
-    *is_advance = !cfg.no_playlist_advance;
+    *is_repeating = get_bool (NULL, "repeat");
     return TRUE;
 }
 
-gboolean audacious_rc_toggle_auto_advance(RemoteObject * obj, GError ** error)
+bool_t audacious_rc_toggle_repeat (RemoteObject * obj, GError * * error)
 {
-    cfg.no_playlist_advance = !cfg.no_playlist_advance;
+    set_bool (NULL, "repeat", ! get_bool (NULL, "repeat"));
     return TRUE;
 }
 
-gboolean audacious_rc_repeat(RemoteObject * obj, gboolean * is_repeating, GError ** error)
+bool_t audacious_rc_shuffle(RemoteObject * obj, bool_t * is_shuffling, GError ** error)
 {
-    *is_repeating = cfg.repeat;
+    *is_shuffling = get_bool (NULL, "shuffle");
     return TRUE;
 }
 
-gboolean audacious_rc_toggle_repeat (RemoteObject * obj, GError * * error)
+bool_t audacious_rc_toggle_shuffle (RemoteObject * obj, GError * * error)
 {
-    g_timeout_add (0, set_repeat_cb, GINT_TO_POINTER (! cfg.repeat));
+    set_bool (NULL, "shuffle", ! get_bool (NULL, "shuffle"));
     return TRUE;
 }
 
-gboolean audacious_rc_shuffle(RemoteObject * obj, gboolean * is_shuffling, GError ** error)
+bool_t audacious_rc_stop_after (RemoteObject * obj, bool_t * is_stopping, GError * * error)
 {
-    *is_shuffling = cfg.shuffle;
+    * is_stopping = get_bool (NULL, "stop_after_current_song");
     return TRUE;
 }
 
-gboolean audacious_rc_toggle_shuffle (RemoteObject * obj, GError * * error)
+bool_t audacious_rc_toggle_stop_after (RemoteObject * obj, GError * * error)
 {
-    g_timeout_add (0, set_shuffle_cb, GINT_TO_POINTER (! cfg.shuffle));
+    set_bool (NULL, "stop_after_current_song", ! get_bool (NULL, "stop_after_current_song"));
     return TRUE;
 }
 
 /* New on Oct 5 */
-gboolean audacious_rc_show_prefs_box(RemoteObject * obj, gboolean show, GError ** error)
+bool_t audacious_rc_show_prefs_box(RemoteObject * obj, bool_t show, GError ** error)
 {
     event_queue("prefswin show", GINT_TO_POINTER(show));
     return TRUE;
 }
 
-gboolean audacious_rc_show_about_box(RemoteObject * obj, gboolean show, GError ** error)
+bool_t audacious_rc_show_about_box(RemoteObject * obj, bool_t show, GError ** error)
 {
     event_queue("aboutwin show", GINT_TO_POINTER(show));
     return TRUE;
 }
 
-gboolean audacious_rc_show_jtf_box(RemoteObject * obj, gboolean show, GError ** error)
+bool_t audacious_rc_show_jtf_box(RemoteObject * obj, bool_t show, GError ** error)
 {
     if (show)
-        event_queue("interface show jump to track", NULL);
-    else
-        event_queue("interface hide jump to track", NULL);
+        interface_show_jump_to_track ();
+
     return TRUE;
 }
 
-gboolean audacious_rc_show_filebrowser(RemoteObject * obj, gboolean show, GError ** error)
+bool_t audacious_rc_show_filebrowser(RemoteObject * obj, bool_t show, GError ** error)
 {
     if (show)
-        event_queue("filebrowser show", GINT_TO_POINTER(FALSE));
-    else
-        event_queue("filebrowser hide", NULL);
-    return TRUE;
-}
+        interface_show_filebrowser (FALSE);
 
-gboolean audacious_rc_play_pause(RemoteObject * obj, GError * *error)
-{
-    g_timeout_add(0, play_pause_cb, NULL);
     return TRUE;
 }
 
-gboolean audacious_rc_activate(RemoteObject * obj, GError ** error)
+bool_t audacious_rc_play_pause (RemoteObject * obj, GError * * error)
 {
-    fprintf (stderr, "implement me\n");
+    if (drct_get_playing ())
+        drct_pause ();
+    else
+        drct_play ();
+
     return TRUE;
 }
 
-gboolean audacious_rc_get_info(RemoteObject * obj, gint * rate, gint * freq, gint * nch, GError * *error)
+bool_t audacious_rc_get_info (RemoteObject * obj, int * rate, int * freq,
+ int * nch, GError * * error)
 {
-    struct StatusRequest request;
-
-    get_status(&request);
-    *rate = request.bitrate;
-    *freq = request.samplerate;
-    *nch = request.channels;
+    drct_get_info (rate, freq, nch);
     return TRUE;
 }
 
-gboolean audacious_rc_toggle_aot(RemoteObject * obj, gboolean ontop, GError ** error)
+bool_t audacious_rc_toggle_aot(RemoteObject * obj, bool_t ontop, GError ** error)
 {
     hook_call("mainwin set always on top", &ontop);
     return TRUE;
 }
 
-gboolean audacious_rc_playqueue_add(RemoteObject * obj, gint pos, GError * *error)
+bool_t audacious_rc_playqueue_add (RemoteObject * obj, int pos, GError * * error)
 {
-    g_timeout_add(0, add_to_queue_cb, GINT_TO_POINTER(pos));
+    playlist_queue_insert (playlist_get_active (), -1, pos);
     return TRUE;
 }
 
-gboolean audacious_rc_playqueue_remove(RemoteObject * obj, gint pos, GError * *error)
+bool_t audacious_rc_playqueue_remove (RemoteObject * obj, int pos, GError * * error)
 {
-    g_timeout_add(0, remove_from_queue_cb, GINT_TO_POINTER(pos));
+    int playlist = playlist_get_active ();
+    int at = playlist_queue_find_entry (playlist, pos);
+
+    if (at >= 0)
+        playlist_queue_delete (playlist, at, 1);
+
     return TRUE;
 }
 
-gboolean audacious_rc_playqueue_clear(RemoteObject * obj, GError * *error)
+bool_t audacious_rc_playqueue_clear (RemoteObject * obj, GError * * error)
 {
-    g_timeout_add(0, clear_queue_cb, NULL);
+    int playlist = playlist_get_active ();
+    playlist_queue_delete (playlist, 0, playlist_queue_count (playlist));
     return TRUE;
 }
 
-gboolean audacious_rc_get_playqueue_length(RemoteObject * obj, gint * length, GError * *error)
+bool_t audacious_rc_get_playqueue_length (RemoteObject * obj, int * length,
+ GError * * error)
 {
-    struct PositionRequest request = {.playlist = -1,.entry = -1 };
-
-    get_position(&request);
-    *length = request.queue_count;
+    * length = playlist_queue_count (playlist_get_active ());
     return TRUE;
 }
 
-gboolean audacious_rc_queue_get_list_pos(RemoteObject * obj, gint qpos, gint * pos, GError * *error)
+bool_t audacious_rc_queue_get_list_pos (RemoteObject * obj, int qpos, int * pos,
+ GError * * error)
 {
-    *pos = queue_get_entry(qpos);
+    * pos = playlist_queue_get_entry (playlist_get_active (), qpos);
     return TRUE;
 }
 
-gboolean audacious_rc_queue_get_queue_pos(RemoteObject * obj, gint pos, gint * qpos, GError * *error)
+bool_t audacious_rc_queue_get_queue_pos (RemoteObject * obj, int pos, int *
+ qpos, GError * * error)
 {
-    *qpos = queue_find_entry(pos);
+    * qpos = playlist_queue_find_entry (playlist_get_active (), pos);
     return TRUE;
 }
 
-gboolean audacious_rc_playqueue_is_queued(RemoteObject * obj, gint pos, gboolean * is_queued, GError * *error)
+bool_t audacious_rc_playqueue_is_queued (RemoteObject * obj, int pos, bool_t *
+ is_queued, GError * * error)
 {
-    *is_queued = (queue_find_entry(pos) != -1);
+    * is_queued = (playlist_queue_find_entry (playlist_get_active (), pos) >= 0);
     return TRUE;
 }
 
-gboolean audacious_rc_playlist_ins_url_string(RemoteObject * obj, gchar * url, gint pos, GError * *error)
+bool_t audacious_rc_playlist_ins_url_string (RemoteObject * obj, char * url, int
+ pos, GError * * error)
 {
-    struct AddRequest *request = g_malloc(sizeof(struct AddRequest));
-
-    request->position = pos;
-    request->filename = g_strdup(url);
-    request->play = FALSE;
-
-    g_timeout_add(0, add_cb, request);
+    playlist_entry_insert (playlist_get_active (), pos, url, NULL, FALSE);
     return TRUE;
 }
 
-gboolean audacious_rc_playlist_add(RemoteObject * obj, void *list, GError * *error)
+bool_t audacious_rc_playlist_add(RemoteObject * obj, void *list, GError * *error)
 {
     return audacious_rc_playlist_ins_url_string(obj, list, -1, error);
 }
 
-gboolean audacious_rc_playlist_enqueue_to_temp(RemoteObject * obj, gchar * url, GError * *error)
+bool_t audacious_rc_playlist_enqueue_to_temp (RemoteObject * obj, char * url,
+ GError * * error)
 {
-    g_timeout_add(0, add_to_new_playlist_cb, g_strdup(url));
+    drct_pl_open_temp (url);
     return TRUE;
 }
 
 /* New on Nov 7: Equalizer */
-gboolean audacious_rc_get_eq(RemoteObject * obj, gdouble * preamp, GArray ** bands, GError ** error)
+bool_t audacious_rc_get_eq(RemoteObject * obj, double * preamp, GArray ** bands, GError ** error)
 {
-    int i;
-
-    * preamp = cfg.equalizer_preamp;
-    *bands = g_array_sized_new(FALSE, FALSE, sizeof(gdouble), AUD_EQUALIZER_NBANDS);
-
-    for (i = 0; i < AUD_EQUALIZER_NBANDS; i++)
-        g_array_append_val (* bands, cfg.equalizer_bands[i]);
+    * preamp = get_double (NULL, "equalizer_preamp");
+    * bands = g_array_new (FALSE, FALSE, sizeof (double));
+    g_array_set_size (* bands, AUD_EQUALIZER_NBANDS);
+    eq_get_bands ((double *) (* bands)->data);
 
     return TRUE;
 }
 
-gboolean audacious_rc_get_eq_preamp(RemoteObject * obj, gdouble * preamp, GError ** error)
+bool_t audacious_rc_get_eq_preamp(RemoteObject * obj, double * preamp, GError ** error)
 {
-    * preamp = cfg.equalizer_preamp;
+    * preamp = get_double (NULL, "equalizer_preamp");
     return TRUE;
 }
 
-gboolean audacious_rc_get_eq_band(RemoteObject * obj, gint band, gdouble * value, GError ** error)
+bool_t audacious_rc_get_eq_band(RemoteObject * obj, int band, double * value, GError ** error)
 {
-    * value = cfg.equalizer_bands[band];
+    * value = eq_get_band (band);
     return TRUE;
 }
 
-gboolean audacious_rc_set_eq(RemoteObject * obj, gdouble preamp, GArray * bands, GError ** error)
+bool_t audacious_rc_set_eq(RemoteObject * obj, double preamp, GArray * bands, GError ** error)
 {
-    int i;
-
-    cfg.equalizer_preamp = preamp;
-
-    for (i = 0; i < AUD_EQUALIZER_NBANDS; i++)
-        cfg.equalizer_bands[i] = g_array_index (bands, gdouble, i);
-
-    hook_call ("equalizer changed", NULL);
+    set_double (NULL, "equalizer_preamp", preamp);
+    eq_set_bands ((double *) bands->data);
     return TRUE;
 }
 
-gboolean audacious_rc_set_eq_preamp(RemoteObject * obj, gdouble preamp, GError ** error)
+bool_t audacious_rc_set_eq_preamp(RemoteObject * obj, double preamp, GError ** error)
 {
-    cfg.equalizer_preamp = preamp;
-    hook_call ("equalizer changed", NULL);
+    set_double (NULL, "equalizer_preamp", preamp);
     return TRUE;
 }
 
-gboolean audacious_rc_set_eq_band(RemoteObject * obj, gint band, gdouble value, GError ** error)
+bool_t audacious_rc_set_eq_band(RemoteObject * obj, int band, double value, GError ** error)
 {
-    cfg.equalizer_bands[band] = value;
-    hook_call ("equalizer changed", NULL);
+    eq_set_band (band, value);
     return TRUE;
 }
 
-gboolean audacious_rc_equalizer_activate(RemoteObject * obj, gboolean active, GError ** error)
+bool_t audacious_rc_equalizer_activate(RemoteObject * obj, bool_t active, GError ** error)
 {
-    cfg.equalizer_active = active;
-    hook_call ("equalizer changed", NULL);
+    set_bool (NULL, "equalizer_active", active);
     return TRUE;
 }
 
-gboolean audacious_rc_get_active_playlist_name(RemoteObject * obj, gchar * *title, GError * *error)
+bool_t audacious_rc_get_active_playlist_name (RemoteObject * obj, char * *
+ title, GError * * error)
 {
-    struct InfoRequest request = {.playlist = -2 };
-
-    get_info(&request);
-    g_free(request.title);
-    g_free(request.filename);
-    *title = request.pltitle;
+    char * title2 = playlist_get_title (playlist_get_active ());
+    * title = strdup (title2);
+    str_unref (title2);
     return TRUE;
 }
 
diff --git a/src/audacious/dbus.h b/src/audacious/dbus.h
index a365427..7a2bebf 100644
--- a/src/audacious/dbus.h
+++ b/src/audacious/dbus.h
@@ -21,6 +21,8 @@
 #ifndef AUDACIOUS_DBUS_H
 #define AUDACIOUS_DBUS_H
 
+#include <dbus/dbus-glib.h>
+
 #define AUDACIOUS_DBUS_SERVICE      "org.atheme.audacious"
 #define AUDACIOUS_DBUS_PATH         "/org/atheme/audacious"
 #define AUDACIOUS_DBUS_INTERFACE    "org.atheme.audacious"
@@ -40,5 +42,8 @@
 #define CAN_PROVIDE_METADATA  = 1 << 6
 #define PROVIDES_TIMING       = 1 << 7
 
+void init_dbus (void);
+void cleanup_dbus (void);
+DBusGProxy * audacious_get_dbus_proxy (void);
 
 #endif /* AUDACIOUS_DBUS_H */
diff --git a/src/audacious/debug.h b/src/audacious/debug.h
index 1a84701..bdadf59 100644
--- a/src/audacious/debug.h
+++ b/src/audacious/debug.h
@@ -24,12 +24,12 @@
 
 #include <stdio.h>
 
-#include <audacious/audconfig.h>
+#include <audacious/api.h>
 
 #ifdef _AUDACIOUS_CORE
-#define AUDDBG(...) do {if (cfg.verbose) {printf ("%s:%d [%s]: ", __FILE__, __LINE__, __FUNCTION__); printf (__VA_ARGS__);}} while (0)
+#define AUDDBG(...) do {if (verbose) {printf ("%s:%d [%s]: ", __FILE__, __LINE__, __FUNCTION__); printf (__VA_ARGS__);}} while (0)
 #else
-#define AUDDBG(...) do {if (aud_cfg->verbose) {printf ("%s:%d [%s]: ", __FILE__, __LINE__, __FUNCTION__); printf (__VA_ARGS__);}} while (0)
+#define AUDDBG(...) do {if (* _aud_api_table->verbose) {printf ("%s:%d [%s]: ", __FILE__, __LINE__, __FUNCTION__); printf (__VA_ARGS__);}} while (0)
 #endif
 
 #endif
diff --git a/src/audacious/drct-api.h b/src/audacious/drct-api.h
index 8b78301..fc4c803 100644
--- a/src/audacious/drct-api.h
+++ b/src/audacious/drct-api.h
@@ -25,68 +25,49 @@
 
 /* --- PROGRAM CONTROL --- */
 
-AUD_FUNC0 (void, drct_quit)
+AUD_VFUNC0 (drct_quit)
 
 /* --- PLAYBACK CONTROL --- */
 
-AUD_FUNC0 (void, drct_play)
-AUD_FUNC0 (void, drct_pause)
-AUD_FUNC0 (void, drct_stop)
-AUD_FUNC0 (gboolean, drct_get_playing)
-AUD_FUNC0 (gboolean, drct_get_paused)
-AUD_FUNC0 (gchar *, drct_get_title)
-AUD_FUNC3 (void, drct_get_info, gint *, bitrate, gint *, samplerate, gint *,
- channels)
-AUD_FUNC0 (gint, drct_get_time)
-AUD_FUNC0 (gint, drct_get_length)
-AUD_FUNC1 (void, drct_seek, gint, time)
+/* The strings returned by drct_get_filename() and drct_get_title() are pooled
+ * and must be freed with str_unref(). */
+
+AUD_VFUNC0 (drct_play)
+AUD_VFUNC0 (drct_pause)
+AUD_VFUNC0 (drct_stop)
+AUD_FUNC0 (bool_t, drct_get_playing)
+AUD_FUNC0 (bool_t, drct_get_ready)
+AUD_FUNC0 (bool_t, drct_get_paused)
+AUD_FUNC0 (char *, drct_get_filename)
+AUD_FUNC0 (char *, drct_get_title)
+AUD_VFUNC3 (drct_get_info, int *, bitrate, int *, samplerate, int *, channels)
+AUD_FUNC0 (int, drct_get_time)
+AUD_FUNC0 (int, drct_get_length)
+AUD_VFUNC1 (drct_seek, int, time)
 
 /* --- VOLUME CONTROL --- */
 
-AUD_FUNC2 (void, drct_get_volume, gint *, left, gint *, right)
-AUD_FUNC2 (void, drct_set_volume, gint, left, gint, right)
-AUD_FUNC1 (void, drct_get_volume_main, gint *, volume)
-AUD_FUNC1 (void, drct_set_volume_main, gint, volume)
-AUD_FUNC1 (void, drct_get_volume_balance, gint *, balance)
-AUD_FUNC1 (void, drct_set_volume_balance, gint, balance)
+AUD_VFUNC2 (drct_get_volume, int *, left, int *, right)
+AUD_VFUNC2 (drct_set_volume, int, left, int, right)
+AUD_VFUNC1 (drct_get_volume_main, int *, volume)
+AUD_VFUNC1 (drct_set_volume_main, int, volume)
+AUD_VFUNC1 (drct_get_volume_balance, int *, balance)
+AUD_VFUNC1 (drct_set_volume_balance, int, balance)
 
 /* --- PLAYLIST CONTROL --- */
 
-AUD_FUNC0 (gint, drct_pl_get_length)
-AUD_FUNC0 (void, drct_pl_next)
-AUD_FUNC0 (void, drct_pl_prev)
-AUD_FUNC0 (gint, drct_pl_get_pos)
-AUD_FUNC1 (void, drct_pl_set_pos, gint, pos)
+/* The indexes passed to drct_pl_add_list(), drct_pl_open_list(), and
+ * drct_pl_open_temp_list() contain pooled strings to which the caller gives up
+ * one reference.  The indexes themselves are freed by these functions. */
 
-AUD_FUNC0 (gboolean, drct_pl_repeat_is_enabled)
-AUD_FUNC0 (void, drct_pl_repeat_toggle)
-AUD_FUNC0 (gboolean, drct_pl_shuffle_is_enabled)
-AUD_FUNC0 (void, drct_pl_shuffle_toggle)
+AUD_VFUNC0 (drct_pl_next)
+AUD_VFUNC0 (drct_pl_prev)
 
-AUD_FUNC1 (gchar *, drct_pl_get_file, gint, entry)
-AUD_FUNC1 (gchar *, drct_pl_get_title, gint, entry)
-AUD_FUNC1 (gint, drct_pl_get_time, gint, entry)
+AUD_VFUNC2 (drct_pl_add, const char *, filename, int, at)
+AUD_VFUNC2 (drct_pl_add_list, Index *, filenames, int, at)
+AUD_VFUNC1 (drct_pl_open, const char *, filename)
+AUD_VFUNC1 (drct_pl_open_list, Index *, filenames)
+AUD_VFUNC1 (drct_pl_open_temp, const char *, filename)
+AUD_VFUNC1 (drct_pl_open_temp_list, Index *, filenames)
 
-AUD_FUNC2 (void, drct_pl_add, const gchar *, filename, gint, at)
-AUD_FUNC2 (void, drct_pl_add_list, GList *, list, gint, at)
-AUD_FUNC1 (void, drct_pl_open, const gchar *, filename)
-AUD_FUNC1 (void, drct_pl_open_list, GList *, list)
-AUD_FUNC1 (void, drct_pl_open_temp, const gchar *, filename)
-AUD_FUNC1 (void, drct_pl_open_temp_list, GList *, list)
-
-AUD_FUNC1 (void, drct_pl_delete, gint, entry)
-AUD_FUNC0 (void, drct_pl_delete_selected)
-AUD_FUNC0 (void, drct_pl_clear)
-
-/* --- PLAYLIST QUEUE CONTROL --- */
-
-AUD_FUNC0 (gint, drct_pq_get_length)
-AUD_FUNC1 (gint, drct_pq_get_entry, gint, queue_position)
-AUD_FUNC1 (gboolean, drct_pq_is_queued, gint, entry)
-AUD_FUNC1 (gint, drct_pq_get_queue_position, gint, entry)
-AUD_FUNC1 (void, drct_pq_add, gint, entry)
-AUD_FUNC1 (void, drct_pq_remove, gint, entry)
-AUD_FUNC0 (void, drct_pq_clear)
-
-/* New in 2.5-alpha2 */
-AUD_FUNC0 (gboolean, drct_get_ready)
+AUD_VFUNC1 (drct_pl_delete_selected, int, playlist)
diff --git a/src/audacious/drct.c b/src/audacious/drct.c
index 764295f..6ec0dcf 100644
--- a/src/audacious/drct.c
+++ b/src/audacious/drct.c
@@ -23,11 +23,10 @@
 #include <libaudcore/hook.h>
 #include <libaudcore/vfs.h>
 
-#include "audconfig.h"
 #include "config.h"
 #include "drct.h"
-#include "glib-compat.h"
 #include "i18n.h"
+#include "misc.h"
 #include "playback.h"
 #include "playlist.h"
 
@@ -50,7 +49,10 @@ void drct_play (void)
             playback_seek (0);
     }
     else
+    {
+        playlist_set_playing (playlist_get_active ());
         playback_play (0, FALSE);
+    }
 }
 
 void drct_pause (void)
@@ -65,70 +67,75 @@ void drct_stop (void)
         playback_stop ();
 }
 
-gboolean drct_get_playing (void)
+bool_t drct_get_playing (void)
 {
     return playback_get_playing ();
 }
 
-gboolean drct_get_ready (void)
+bool_t drct_get_ready (void)
 {
     return playback_get_ready ();
 }
 
-gboolean drct_get_paused (void)
+bool_t drct_get_paused (void)
 {
     return playback_get_paused ();
 }
 
-gchar * drct_get_title (void)
+char * drct_get_filename (void)
+{
+    return playback_get_filename ();
+}
+
+char * drct_get_title (void)
 {
     return playback_get_title ();
 }
 
-void drct_get_info (gint * bitrate, gint * samplerate, gint * channels)
+void drct_get_info (int * bitrate, int * samplerate, int * channels)
 {
     playback_get_info (bitrate, samplerate, channels);
 }
 
-gint drct_get_time (void)
+int drct_get_time (void)
 {
     return playback_get_time ();
 }
 
-gint drct_get_length (void)
+int drct_get_length (void)
 {
     return playback_get_length ();
 }
 
-void drct_seek (gint time)
+void drct_seek (int time)
 {
     playback_seek (time);
 }
 
 /* --- VOLUME CONTROL --- */
 
-void drct_get_volume (gint * left, gint * right)
+void drct_get_volume (int * left, int * right)
 {
     playback_get_volume (left, right);
     * left = CLAMP (* left, 0, 100);
     * right = CLAMP (* right, 0, 100);
 }
 
-void drct_set_volume (gint left, gint right)
+void drct_set_volume (int left, int right)
 {
     playback_set_volume (CLAMP (left, 0, 100), CLAMP (right, 0, 100));
 }
 
-void drct_get_volume_main (gint * volume)
+void drct_get_volume_main (int * volume)
 {
-    gint left, right;
+    int left, right;
     drct_get_volume (& left, & right);
     * volume = MAX (left, right);
 }
 
-void drct_set_volume_main (gint volume)
+void drct_set_volume_main (int volume)
 {
-    gint left, right, current;
+    int left, right, current;
     drct_get_volume (& left, & right);
     current = MAX (left, right);
 
@@ -138,9 +145,9 @@ void drct_set_volume_main (gint volume)
         drct_set_volume (volume, volume);
 }
 
-void drct_get_volume_balance (gint * balance)
+void drct_get_volume_balance (int * balance)
 {
-    gint left, right;
+    int left, right;
     drct_get_volume (& left, & right);
 
     if (left == right)
@@ -151,9 +158,9 @@ void drct_get_volume_balance (gint * balance)
         * balance = 100 - left * 100 / right;
 }
 
-void drct_set_volume_balance (gint balance)
+void drct_set_volume_balance (int balance)
 {
-    gint left, right;
+    int left, right;
     drct_get_volume_main (& left);
 
     if (balance < 0)
@@ -169,205 +176,76 @@ void drct_set_volume_balance (gint balance)
 
 /* --- PLAYLIST CONTROL --- */
 
-gint drct_pl_get_length (void)
-{
-    return playlist_entry_count (playlist_get_active ());
-}
-
 void drct_pl_next (void)
 {
-    gboolean play = playback_get_playing ();
-    if (playlist_next_song (playlist_get_playing (), cfg.repeat) && play)
+    bool_t play = playback_get_playing ();
+    if (playlist_get_playing () < 0)
+        playlist_set_playing (playlist_get_active ());
+    if (playlist_next_song (playlist_get_playing (), get_bool (NULL, "repeat")) && play)
         playback_play (0, FALSE);
 }
 
 void drct_pl_prev (void)
 {
-    gboolean play = playback_get_playing ();
+    bool_t play = playback_get_playing ();
+    if (playlist_get_playing () < 0)
+        playlist_set_playing (playlist_get_active ());
     if (playlist_prev_song (playlist_get_playing ()) && play)
         playback_play (0, FALSE);
 }
 
-gint drct_pl_get_pos (void)
-{
-    return playlist_get_position (playlist_get_active ());
-}
-
-void drct_pl_set_pos (gint pos)
-{
-    gint playlist = playlist_get_active ();
-    gboolean play = playback_get_playing ();
-
-    playlist_set_position (playlist, pos);
-
-    if (play)
-    {
-        playlist_set_playing (playlist);
-        playback_play (0, FALSE);
-    }
-}
-
-gboolean drct_pl_repeat_is_enabled (void)
-{
-    return cfg.repeat;
-}
-
-void drct_pl_repeat_toggle (void)
-{
-    cfg.repeat = ! cfg.repeat;
-    hook_call ("toggle repeat", NULL);
-}
-
-gboolean drct_pl_shuffle_is_enabled (void)
-{
-    return cfg.shuffle;
-}
-
-void drct_pl_shuffle_toggle (void)
-{
-    cfg.shuffle = ! cfg.shuffle;
-    hook_call ("toggle shuffle", NULL);
-}
-
-gchar * drct_pl_get_file (gint entry)
-{
-    const gchar * filename = playlist_entry_get_filename
-     (playlist_get_active (), entry);
-    return (filename == NULL) ? NULL : g_strdup (filename);
-}
-
-gchar * drct_pl_get_title (gint entry)
-{
-    const gchar * title = playlist_entry_get_title (playlist_get_active (),
-     entry, FALSE);
-    return (title == NULL) ? NULL : g_strdup (title);
-}
-
-gint drct_pl_get_time (gint pos)
-{
-    return playlist_entry_get_length (playlist_get_active (), pos, FALSE);
-}
-
-static void activate_temp (void)
-{
-    gint playlists = playlist_count ();
-    const gchar * title = _("Temporary Playlist");
-
-    for (gint playlist = 0; playlist < playlists; playlist ++)
-    {
-        if (! strcmp (playlist_get_title (playlist), title))
-        {
-            playlist_set_active (playlist);
-            return;
-        }
-    }
-
-    if (! playlist_entry_count (playlist_get_active ()))
-        playlist_set_title (playlist_get_active (), title);
-    else
-    {
-        playlist_insert (playlists);
-        playlist_set_title (playlists, title);
-        playlist_set_active (playlists);
-    }
-}
-
-static void add_list (GList * list, gint at, gboolean to_temp, gboolean play)
+static void add_list (Index * filenames, int at, bool_t to_temp, bool_t play)
 {
     if (to_temp)
-        activate_temp ();
+        playlist_set_active (playlist_get_temporary ());
 
-    gint playlist = playlist_get_active ();
+    int playlist = playlist_get_active ();
 
     if (play)
     {
-        if (cfg.clear_playlist)
+        if (get_bool (NULL, "clear_playlist"))
             playlist_entry_delete (playlist, 0, playlist_entry_count (playlist));
         else
             playlist_queue_delete (playlist, 0, playlist_queue_count (playlist));
     }
 
-    gint entries = playlist_entry_count (playlist);
-    if (at < 0)
-        at = entries;
-
-    gint added = 0;
-    GQueue folders = G_QUEUE_INIT;
-    struct index * filenames = index_new ();
-
-    for (; list != NULL; list = list->next)
-    {
-        if (filename_is_playlist (list->data))
-        {
-            playlist_insert_playlist (playlist, at + added, list->data);
-            added += playlist_entry_count (playlist) - entries;
-            entries = playlist_entry_count (playlist);
-        }
-        else if (vfs_file_test (list->data, G_FILE_TEST_IS_DIR))
-            g_queue_push_tail (& folders, list->data);
-        else
-            index_append (filenames, g_strdup (list->data));
-    }
-
-    playlist_entry_insert_batch (playlist, at + added, filenames, NULL);
-    added += playlist_entry_count (playlist) - entries;
-
-    if (added && play)
-    {
-        playlist_set_playing (playlist);
-        if (! cfg.shuffle)
-            playlist_set_position (playlist, at);
-        playback_play (0, FALSE);
-        play = FALSE;
-    }
-
-    const gchar * folder;
-    while ((folder = g_queue_pop_head (& folders)) != NULL)
-    {
-        playlist_insert_folder (playlist, at + added, folder, play);
-        play = FALSE;
-    }
+    playlist_entry_insert_batch (playlist, at, filenames, NULL, play);
 }
 
-void drct_pl_add (const gchar * filename, gint at)
+void drct_pl_add (const char * filename, int at)
 {
-    GList * list = g_list_prepend (NULL, (void *) filename);
-    add_list (list, at, FALSE, FALSE);
-    g_list_free (list);
+    Index * filenames = index_new ();
+    index_append (filenames, str_get (filename));
+    add_list (filenames, at, FALSE, FALSE);
 }
 
-void drct_pl_add_list (GList * list, gint at)
+void drct_pl_add_list (Index * filenames, int at)
 {
-    add_list (list, at, FALSE, FALSE);
+    add_list (filenames, at, FALSE, FALSE);
 }
 
-void drct_pl_open (const gchar * filename)
+void drct_pl_open (const char * filename)
 {
-    GList * list = g_list_prepend (NULL, (void *) filename);
-    add_list (list, -1, cfg.open_to_temporary, TRUE);
-    g_list_free (list);
+    Index * filenames = index_new ();
+    index_append (filenames, str_get (filename));
+    add_list (filenames, -1, get_bool (NULL, "open_to_temporary"), TRUE);
 }
 
-void drct_pl_open_list (GList * list)
+void drct_pl_open_list (Index * filenames)
 {
-    add_list (list, -1, cfg.open_to_temporary, TRUE);
+    add_list (filenames, -1, get_bool (NULL, "open_to_temporary"), TRUE);
 }
 
-void drct_pl_open_temp (const gchar * filename)
+void drct_pl_open_temp (const char * filename)
 {
-    GList * list = g_list_prepend (NULL, (void *) filename);
-    add_list (list, -1, TRUE, TRUE);
-    g_list_free (list);
+    Index * filenames = index_new ();
+    index_append (filenames, str_get (filename));
+    add_list (filenames, -1, TRUE, TRUE);
 }
 
-void drct_pl_open_temp_list (GList * list)
+void drct_pl_open_temp_list (Index * filenames)
 {
-    add_list (list, -1, TRUE, TRUE);
-}
-
-void drct_pl_delete (gint entry)
-{
-    playlist_entry_delete (playlist_get_active (), entry, 1);
+    add_list (filenames, -1, TRUE, TRUE);
 }
 
 /* Advancing to the next song when the current one is deleted is tricky.  First,
@@ -375,12 +253,12 @@ void drct_pl_delete (gint entry)
  * to a new song without worrying about picking one that is also selected.
  * Finally, we can delete the former current song without stopping playback. */
 
-void drct_pl_delete_selected (void)
+void drct_pl_delete_selected (int list)
 {
-    gint list = playlist_get_active ();
-    gint pos = playlist_get_position (list);
+    int pos = playlist_get_position (list);
 
-    if (cfg.advance_on_delete && ! cfg.no_playlist_advance
+    if (get_bool (NULL, "advance_on_delete")
+     && ! get_bool (NULL, "no_playlist_advance")
      && playback_get_playing () && list == playlist_get_playing ()
      && pos >= 0 && playlist_entry_get_selected (list, pos))
     {
@@ -388,7 +266,7 @@ void drct_pl_delete_selected (void)
         playlist_delete_selected (list);
         pos = playlist_get_position (list); /* it may have moved */
 
-        if (playlist_next_song (list, cfg.repeat)
+        if (playlist_next_song (list, get_bool (NULL, "repeat"))
          && playlist_get_position (list) != pos)
             playback_play (0, FALSE);
 
@@ -397,49 +275,3 @@ void drct_pl_delete_selected (void)
     else
         playlist_delete_selected (list);
 }
-
-void drct_pl_clear (void)
-{
-    gint playlist = playlist_get_active ();
-    playlist_entry_delete (playlist, 0, playlist_entry_count (playlist));
-}
-
-/* --- PLAYLIST QUEUE CONTROL --- */
-
-gint drct_pq_get_length (void)
-{
-    return playlist_queue_count (playlist_get_active ());
-}
-
-gint drct_pq_get_entry (gint queue_position)
-{
-    return playlist_queue_get_entry (playlist_get_active (), queue_position);
-}
-
-gboolean drct_pq_is_queued (gint entry)
-{
-    return (drct_pq_get_queue_position (entry) >= 0);
-}
-
-gint drct_pq_get_queue_position (gint entry)
-{
-    return playlist_queue_find_entry (playlist_get_active (), entry);
-}
-
-void drct_pq_add (gint entry)
-{
-    playlist_queue_insert (playlist_get_active (), -1, entry);
-}
-
-void drct_pq_remove (gint entry)
-{
-    gint playlist = playlist_get_active ();
-    playlist_queue_delete (playlist, playlist_queue_find_entry (playlist,
-     entry), 1);
-}
-
-void drct_pq_clear (void)
-{
-    gint playlist = playlist_get_active ();
-    playlist_queue_delete (playlist, 0, playlist_queue_count (playlist));
-}
diff --git a/src/audacious/drct.h b/src/audacious/drct.h
index 3d8976d..b909c21 100644
--- a/src/audacious/drct.h
+++ b/src/audacious/drct.h
@@ -22,8 +22,9 @@
 #ifndef AUDACIOUS_DRCT_H
 #define AUDACIOUS_DRCT_H
 
-#include <glib.h>
 #include <audacious/api.h>
+#include <libaudcore/core.h>
+#include <libaudcore/index.h>
 
 #define AUD_API_NAME DRCTAPI
 #define AUD_API_SYMBOL drct_api
diff --git a/src/audacious/effect.c b/src/audacious/effect.c
index f407099..d83c29e 100644
--- a/src/audacious/effect.c
+++ b/src/audacious/effect.c
@@ -20,6 +20,7 @@
  */
 
 #include <glib.h>
+#include <pthread.h>
 
 #include "debug.h"
 #include "effect.h"
@@ -30,19 +31,19 @@
 typedef struct {
     PluginHandle * plugin;
     EffectPlugin * header;
-    gint channels_returned, rate_returned;
-    gboolean remove_flag;
+    int channels_returned, rate_returned;
+    bool_t remove_flag;
 } RunningEffect;
 
-static GStaticMutex mutex = G_STATIC_MUTEX_INIT;
+static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
 static GList * running_effects = NULL; /* (RunningEffect *) */
-static gint input_channels, input_rate;
+static int input_channels, input_rate;
 
 typedef struct {
-    gint * channels, * rate;
+    int * channels, * rate;
 } EffectStartState;
 
-static gboolean effect_start_cb (PluginHandle * plugin, EffectStartState * state)
+static bool_t effect_start_cb (PluginHandle * plugin, EffectStartState * state)
 {
     AUDDBG ("Starting %s at %d channels, %d Hz.\n", plugin_get_name (plugin),
      * state->channels, * state->rate);
@@ -61,9 +62,9 @@ static gboolean effect_start_cb (PluginHandle * plugin, EffectStartState * state
     return TRUE;
 }
 
-void effect_start (gint * channels, gint * rate)
+void effect_start (int * channels, int * rate)
 {
-    g_static_mutex_lock (& mutex);
+    pthread_mutex_lock (& mutex);
 
     AUDDBG ("Starting effects.\n");
     g_list_foreach (running_effects, (GFunc) g_free, NULL);
@@ -78,12 +79,12 @@ void effect_start (gint * channels, gint * rate)
      & state);
     running_effects = g_list_reverse (running_effects);
 
-    g_static_mutex_unlock (& mutex);
+    pthread_mutex_unlock (& mutex);
 }
 
 typedef struct {
-    gfloat * * data;
-    gint * samples;
+    float * * data;
+    int * samples;
 } EffectProcessState;
 
 static void effect_process_cb (RunningEffect * effect, EffectProcessState *
@@ -92,7 +93,6 @@ static void effect_process_cb (RunningEffect * effect, EffectProcessState *
     if (effect->remove_flag)
     {
         effect->header->finish (state->data, state->samples);
-        effect->header->finish (state->data, state->samples);
 
         running_effects = g_list_remove (running_effects, effect);
         g_free (effect);
@@ -101,67 +101,70 @@ static void effect_process_cb (RunningEffect * effect, EffectProcessState *
         effect->header->process (state->data, state->samples);
 }
 
-void effect_process (gfloat * * data, gint * samples)
+void effect_process (float * * data, int * samples)
 {
-    g_static_mutex_lock (& mutex);
+    pthread_mutex_lock (& mutex);
 
     EffectProcessState state = {data, samples};
     g_list_foreach (running_effects, (GFunc) effect_process_cb, & state);
 
-    g_static_mutex_unlock (& mutex);
+    pthread_mutex_unlock (& mutex);
 }
 
 void effect_flush (void)
 {
-    g_static_mutex_lock (& mutex);
+    pthread_mutex_lock (& mutex);
 
     for (GList * node = running_effects; node != NULL; node = node->next)
         ((RunningEffect *) node->data)->header->flush ();
 
-    g_static_mutex_unlock (& mutex);
+    pthread_mutex_unlock (& mutex);
 }
 
-void effect_finish (gfloat * * data, gint * samples)
+void effect_finish (float * * data, int * samples)
 {
-    g_static_mutex_lock (& mutex);
+    pthread_mutex_lock (& mutex);
 
     for (GList * node = running_effects; node != NULL; node = node->next)
         ((RunningEffect *) node->data)->header->finish (data, samples);
 
-    g_static_mutex_unlock (& mutex);
+    pthread_mutex_unlock (& mutex);
 }
 
-gint effect_decoder_to_output_time (gint time)
+int effect_decoder_to_output_time (int time)
 {
-    g_static_mutex_lock (& mutex);
+    pthread_mutex_lock (& mutex);
 
     for (GList * node = running_effects; node != NULL; node = node->next)
-        time = ((RunningEffect *) node->data)->header->decoder_to_output_time
-         (time);
+    {
+        if (PLUGIN_HAS_FUNC (((RunningEffect *) node->data)->header, decoder_to_output_time))
+            time = ((RunningEffect *) node->data)->header->decoder_to_output_time (time);
+    }
 
-    g_static_mutex_unlock (& mutex);
+    pthread_mutex_unlock (& mutex);
     return time;
 }
 
-gint effect_output_to_decoder_time (gint time)
+int effect_output_to_decoder_time (int time)
 {
-    g_static_mutex_lock (& mutex);
+    pthread_mutex_lock (& mutex);
 
-    for (GList * node = g_list_last (running_effects); node != NULL; node =
-     node->prev)
-        time = ((RunningEffect *) node->data)->header->output_to_decoder_time
-         (time);
+    for (GList * node = g_list_last (running_effects); node != NULL; node = node->prev)
+    {
+        if (PLUGIN_HAS_FUNC (((RunningEffect *) node->data)->header, output_to_decoder_time))
+            time = ((RunningEffect *) node->data)->header->output_to_decoder_time (time);
+    }
 
-    g_static_mutex_unlock (& mutex);
+    pthread_mutex_unlock (& mutex);
     return time;
 }
 
-static gint effect_find_cb (RunningEffect * effect, PluginHandle * plugin)
+static int effect_find_cb (RunningEffect * effect, PluginHandle * plugin)
 {
     return (effect->plugin == plugin) ? 0 : -1;
 }
 
-static gint effect_compare (RunningEffect * a, RunningEffect * b)
+static int effect_compare (RunningEffect * a, RunningEffect * b)
 {
     return plugin_compare (a->plugin, b->plugin);
 }
@@ -182,7 +185,7 @@ static void effect_insert (PluginHandle * plugin, EffectPlugin * header)
      (GCompareFunc) effect_compare);
     GList * node = g_list_find (running_effects, effect);
 
-    gint channels, rate;
+    int channels, rate;
     if (node->prev != NULL)
     {
         RunningEffect * prev = node->prev->data;
@@ -216,31 +219,31 @@ static void effect_remove (PluginHandle * plugin)
     ((RunningEffect *) node->data)->remove_flag = TRUE;
 }
 
-static void effect_enable (PluginHandle * plugin, EffectPlugin * ep, gboolean
+static void effect_enable (PluginHandle * plugin, EffectPlugin * ep, bool_t
  enable)
 {
     if (ep->preserves_format)
     {
-        g_static_mutex_lock (& mutex);
+        pthread_mutex_lock (& mutex);
 
         if (enable)
             effect_insert (plugin, ep);
         else
             effect_remove (plugin);
 
-        g_static_mutex_unlock (& mutex);
+        pthread_mutex_unlock (& mutex);
     }
     else
     {
         AUDDBG ("Reset to add/remove %s.\n", plugin_get_name (plugin));
-        gint time = playback_get_time ();
-        gboolean paused = playback_get_paused ();
+        int time = playback_get_time ();
+        bool_t paused = playback_get_paused ();
         playback_stop ();
         playback_play (time, paused);
     }
 }
 
-gboolean effect_plugin_start (PluginHandle * plugin)
+bool_t effect_plugin_start (PluginHandle * plugin)
 {
     if (playback_get_playing ())
     {
diff --git a/src/audacious/effect.h b/src/audacious/effect.h
index 14afce4..c5e6b18 100644
--- a/src/audacious/effect.h
+++ b/src/audacious/effect.h
@@ -23,18 +23,18 @@
 #ifndef AUDACIOUS_EFFECT_H
 #define AUDACIOUS_EFFECT_H
 
-#include <glib.h>
+#include <libaudcore/core.h>
 
 #include "types.h"
 
-void effect_start (gint * channels, gint * rate);
-void effect_process (gfloat * * data, gint * samples);
+void effect_start (int * channels, int * rate);
+void effect_process (float * * data, int * samples);
 void effect_flush (void);
-void effect_finish (gfloat * * data, gint * samples);
-gint effect_decoder_to_output_time (gint time);
-gint effect_output_to_decoder_time (gint time);
+void effect_finish (float * * data, int * samples);
+int effect_decoder_to_output_time (int time);
+int effect_output_to_decoder_time (int time);
 
-gboolean effect_plugin_start (PluginHandle * plugin);
+bool_t effect_plugin_start (PluginHandle * plugin);
 void effect_plugin_stop (PluginHandle * plugin);
 
 #endif
diff --git a/src/audacious/equalizer.c b/src/audacious/equalizer.c
index af13771..36d5ce6 100644
--- a/src/audacious/equalizer.c
+++ b/src/audacious/equalizer.c
@@ -8,17 +8,20 @@
  *
  *  Copyright 2001 Anders Johansson <ajh at atri.curtin.edu.au>
  *
- *  Adapted for Audacious by John Lindgren, 2010
+ *  Adapted for Audacious by John Lindgren, 2010-2011
  */
 
 #include <glib.h>
 #include <math.h>
+#include <pthread.h>
 #include <string.h>
 
+#include <libaudcore/audstrings.h>
 #include <libaudcore/hook.h>
 
-#include "audconfig.h"
 #include "equalizer.h"
+#include "misc.h"
+#include "types.h"
 
 #define EQ_BANDS AUD_EQUALIZER_NBANDS
 #define MAX_CHANNELS 10
@@ -31,23 +34,23 @@
 /* These are not the historical WinAmp frequencies, because the IIR filters used
  * here are designed for each frequency to be twice the previous.  Using WinAmp
  * frequencies leads to too much gain in some bands and too little in others. */
-static const gfloat CF[EQ_BANDS] = {31.25, 62.5, 125, 250, 500, 1000, 2000,
+static const float CF[EQ_BANDS] = {31.25, 62.5, 125, 250, 500, 1000, 2000,
  4000, 8000, 16000};
 
-static GStaticMutex mutex = G_STATIC_MUTEX_INIT;
-static gboolean active;
-static gint channels, rate;
-static gfloat a[EQ_BANDS][2]; /* A weights */
-static gfloat b[EQ_BANDS][2]; /* B weights */
-static gfloat wqv[MAX_CHANNELS][EQ_BANDS][2]; /* Circular buffer for W data */
-static gfloat gv[MAX_CHANNELS][EQ_BANDS]; /* Gain factor for each channel and band */
-static gint K; /* Number of used eq bands */
+static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
+static bool_t active;
+static int channels, rate;
+static float a[EQ_BANDS][2]; /* A weights */
+static float b[EQ_BANDS][2]; /* B weights */
+static float wqv[MAX_CHANNELS][EQ_BANDS][2]; /* Circular buffer for W data */
+static float gv[MAX_CHANNELS][EQ_BANDS]; /* Gain factor for each channel and band */
+static int K; /* Number of used eq bands */
 
 /* 2nd order band-pass filter design */
-static void bp2 (gfloat * a, gfloat * b, gfloat fc, gfloat q)
+static void bp2 (float * a, float * b, float fc, float q)
 {
-    gfloat th = 2 * M_PI * fc;
-    gfloat C = (1 - tanf (th * q / 2)) / (1 + tanf (th * q / 2));
+    float th = 2 * M_PI * fc;
+    float C = (1 - tanf (th * q / 2)) / (1 + tanf (th * q / 2));
 
     a[0] = (1 + C) * cosf (th);
     a[1] = -C;
@@ -55,11 +58,11 @@ static void bp2 (gfloat * a, gfloat * b, gfloat fc, gfloat q)
     b[1] = -1.005;
 }
 
-void eq_set_format (gint new_channels, gint new_rate)
+void eq_set_format (int new_channels, int new_rate)
 {
-    gint k;
+    int k;
 
-    g_static_mutex_lock (& mutex);
+    pthread_mutex_lock (& mutex);
 
     channels = new_channels;
     rate = new_rate;
@@ -67,68 +70,59 @@ void eq_set_format (gint new_channels, gint new_rate)
     /* Calculate number of active filters */
     K = EQ_BANDS;
 
-    while (CF[K - 1] > (gfloat) rate / 2.2)
+    while (CF[K - 1] > (float) rate / 2.2)
         K --;
 
     /* Generate filter taps */
     for (k = 0; k < K; k ++)
-        bp2 (a[k], b[k], CF[k] / (gfloat) rate, Q);
+        bp2 (a[k], b[k], CF[k] / (float) rate, Q);
 
     /* Reset state */
     memset (wqv[0][0], 0, sizeof wqv);
 
-    g_static_mutex_unlock (& mutex);
+    pthread_mutex_unlock (& mutex);
 }
 
-static void eq_set_channel_bands (gint channel, gfloat * bands)
+static void eq_set_bands_real (double preamp, double * values)
 {
-    gint k;
+    float adj[EQ_BANDS];
+    for (int i = 0; i < EQ_BANDS; i ++)
+        adj[i] = preamp + values[i];
 
-    for (k = 0; k < EQ_BANDS; k ++)
-        gv[channel][k] = pow (10, bands[k] / 20) - 1;
+    for (int c = 0; c < MAX_CHANNELS; c ++)
+    for (int i = 0; i < EQ_BANDS; i ++)
+        gv[c][i] = pow (10, adj[i] / 20) - 1;
 }
 
-static void eq_set_bands (gfloat preamp, gfloat * bands)
+void eq_filter (float * data, int samples)
 {
-    gfloat adjusted[EQ_BANDS];
-    gint i;
+    int channel;
 
-    for (i = 0; i < EQ_BANDS; i ++)
-        adjusted[i] = preamp + bands[i];
-
-    for (i = 0; i < MAX_CHANNELS; i ++)
-        eq_set_channel_bands (i, adjusted);
-}
-
-void eq_filter (gfloat * data, gint samples)
-{
-    gint channel;
-
-    g_static_mutex_lock (& mutex);
+    pthread_mutex_lock (& mutex);
 
     if (! active)
     {
-        g_static_mutex_unlock (& mutex);
+        pthread_mutex_unlock (& mutex);
         return;
     }
 
     for (channel = 0; channel < channels; channel ++)
     {
-        gfloat * g = gv[channel]; /* Gain factor */
-        gfloat * end = data + samples;
-        gfloat * f;
+        float * g = gv[channel]; /* Gain factor */
+        float * end = data + samples;
+        float * f;
 
         for (f = data + channel; f < end; f += channels)
         {
-            gint k; /* Frequency band index */
-            gfloat yt = * f; /* Current input sample */
+            int k; /* Frequency band index */
+            float yt = * f; /* Current input sample */
 
             for (k = 0; k < K; k ++)
             {
                 /* Pointer to circular buffer wq */
-                gfloat * wq = wqv[channel][k];
+                float * wq = wqv[channel][k];
                 /* Calculate output from AR part of current filter */
-                gfloat w = yt * b[k][0] + wq[0] * a[k][0] + wq[1] * a[k][1];
+                float w = yt * b[k][0] + wq[0] * a[k][0] + wq[1] * a[k][1];
 
                 /* Calculate output from MA part of current filter */
                 yt += (w + wq[1] * b[k][1]) * g[k];
@@ -143,21 +137,66 @@ void eq_filter (gfloat * data, gint samples)
         }
     }
 
-    g_static_mutex_unlock (& mutex);
+    pthread_mutex_unlock (& mutex);
 }
 
-static void eq_update (void * data, void * user_data)
+static void eq_update (void * data, void * user)
 {
-    g_static_mutex_lock (& mutex);
+    pthread_mutex_lock (& mutex);
+
+    active = get_bool (NULL, "equalizer_active");
 
-    active = cfg.equalizer_active;
-    eq_set_bands (cfg.equalizer_preamp, cfg.equalizer_bands);
+    double values[EQ_BANDS];
+    eq_get_bands (values);
+    eq_set_bands_real (get_double (NULL, "equalizer_preamp"), values);
 
-    g_static_mutex_unlock (& mutex);
+    pthread_mutex_unlock (& mutex);
 }
 
 void eq_init (void)
 {
     eq_update (NULL, NULL);
-    hook_associate ("equalizer changed", eq_update, NULL);
+    hook_associate ("set equalizer_active", eq_update, NULL);
+    hook_associate ("set equalizer_preamp", eq_update, NULL);
+    hook_associate ("set equalizer_bands", eq_update, NULL);
+}
+
+void eq_cleanup (void)
+{
+    hook_dissociate ("set equalizer_active", eq_update);
+    hook_dissociate ("set equalizer_preamp", eq_update);
+    hook_dissociate ("set equalizer_bands", eq_update);
+}
+
+void eq_set_bands (const double * values)
+{
+    char * string = double_array_to_string (values, EQ_BANDS);
+    g_return_if_fail (string);
+    set_string (NULL, "equalizer_bands", string);
+    g_free (string);
+}
+
+void eq_get_bands (double * values)
+{
+    memset (values, 0, sizeof (double) * EQ_BANDS);
+    char * string = get_string (NULL, "equalizer_bands");
+    string_to_double_array (string, values, EQ_BANDS);
+    g_free (string);
+}
+
+void eq_set_band (int band, double value)
+{
+    g_return_if_fail (band >= 0 && band < EQ_BANDS);
+    double values[EQ_BANDS];
+    eq_get_bands (values);
+    values[band] = value;
+    eq_set_bands (values);
+}
+
+double eq_get_band (int band)
+{
+    g_return_val_if_fail (band >= 0 && band < EQ_BANDS, 0);
+    double values[EQ_BANDS];
+    eq_get_bands (values);
+    return values[band];
 }
diff --git a/src/audacious/equalizer.h b/src/audacious/equalizer.h
index 1115066..d5ab4f9 100644
--- a/src/audacious/equalizer.h
+++ b/src/audacious/equalizer.h
@@ -22,10 +22,9 @@
 #ifndef AUDACIOUS_EQUALIZER_H
 #define AUDACIOUS_EQUALIZER_H
 
-#include <glib.h>
-
 void eq_init (void);
-void eq_set_format (gint new_channels, gint new_rate);
-void eq_filter (gfloat * data, gint samples);
+void eq_cleanup (void);
+void eq_set_format (int new_channels, int new_rate);
+void eq_filter (float * data, int samples);
 
 #endif
diff --git a/src/audacious/equalizer_preset.c b/src/audacious/equalizer_preset.c
index 34a564b..6d7560c 100644
--- a/src/audacious/equalizer_preset.c
+++ b/src/audacious/equalizer_preset.c
@@ -1,5 +1,5 @@
 /*  Audacious - Cross-platform multimedia player
- *  Copyright (C) 2005-2008  Audacious team
+ *  Copyright (C) 2005-2011  Audacious team
  *
  *  This program is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
@@ -18,6 +18,7 @@
  */
 
 #include <glib.h>
+#include <string.h>
 
 #include "config.h"
 #include "debug.h"
@@ -25,21 +26,19 @@
 #include "interface.h"
 #include "misc.h"
 
-static EqualizerPreset * equalizer_preset_new (const gchar * name)
+static EqualizerPreset * equalizer_preset_new (const char * name)
 {
     EqualizerPreset *preset = g_new0(EqualizerPreset, 1);
     preset->name = g_strdup(name);
     return preset;
 }
 
-GList *
-equalizer_read_presets(const gchar *basename)
+Index * equalizer_read_presets (const char * basename)
 {
-    gchar *filename, *name;
+    char *filename, *name;
     GKeyFile *rcfile;
     GError *error = NULL;
-    GList *list = NULL;
-    gint i, p = 0;
+    int i, p = 0;
     EqualizerPreset *preset;
 
     filename = g_build_filename (get_path (AUD_PATH_USER_DIR), basename, NULL);
@@ -61,9 +60,11 @@ equalizer_read_presets(const gchar *basename)
 
     g_free(filename);
 
+    Index * list = index_new ();
+
     for (;;)
     {
-        gchar section[32];
+        char section[32];
 
         error = NULL;
         g_snprintf(section, sizeof(section), "Preset%d", p++);
@@ -78,7 +79,7 @@ equalizer_read_presets(const gchar *basename)
 
             for (i = 0; i < AUD_EQUALIZER_NBANDS; i++)
             {
-                gchar band[16];
+                char band[16];
                 g_snprintf(band, sizeof(band), "Band%d", i);
 
                 error = NULL;
@@ -86,37 +87,33 @@ equalizer_read_presets(const gchar *basename)
                 preset->bands[i] = g_key_file_get_double(rcfile, name, band, &error);
             }
 
-            list = g_list_prepend(list, preset);
+            index_append (list, preset);
         }
         else
             break;
     }
 
-    list = g_list_reverse(list);
     g_key_file_free(rcfile);
 
     return list;
 }
 
-gboolean equalizer_write_preset_file (GList * list, const gchar * basename)
+bool_t equalizer_write_preset_file (Index * list, const char * basename)
 {
-    gchar *filename, *tmp;
-    gint i, p;
-    EqualizerPreset *preset;
+    char *filename;
+    int i;
     GKeyFile *rcfile;
-    GList *node;
-    gchar *data;
+    char *data;
     gsize len;
     GError *error = NULL;
 
     rcfile = g_key_file_new();
-    p = 0;
 
-    for (node = list; node; node = g_list_next(node))
+    for (int p = 0; p < index_count (list); p ++)
     {
-        preset = node->data;
+        EqualizerPreset * preset = index_get (list, p);
 
-        tmp = g_strdup_printf("Preset%d", p++);
+        char * tmp = g_strdup_printf ("Preset%d", p);
         g_key_file_set_string(rcfile, "Presets", tmp, preset->name);
         g_free(tmp);
 
@@ -134,7 +131,7 @@ gboolean equalizer_write_preset_file (GList * list, const gchar * basename)
     filename = g_build_filename (get_path (AUD_PATH_USER_DIR), basename, NULL);
 
     data = g_key_file_to_data(rcfile, &len, &error);
-    gboolean success = g_file_set_contents (filename, data, len, & error);
+    bool_t success = g_file_set_contents (filename, data, len, & error);
     g_free(data);
 
     g_key_file_free(rcfile);
@@ -142,16 +139,14 @@ gboolean equalizer_write_preset_file (GList * list, const gchar * basename)
     return success;
 }
 
-GList *
-import_winamp_eqf(VFSFile * file)
+Index * import_winamp_eqf (VFSFile * file)
 {
-    gchar header[31];
-    gchar bands[11];
-    gint i = 0;
+    char header[31];
+    char bands[11];
+    int i = 0;
     EqualizerPreset *preset = NULL;
-    GList *list = NULL;
-    gchar *markup;
-    gchar preset_name[0xb4];
+    char *markup;
+    char preset_name[0xb4];
 
     if (vfs_fread (header, 1, sizeof header, file) != sizeof header || strncmp
      (header, "Winamp EQ library file v1.1", 27))
@@ -161,6 +156,8 @@ import_winamp_eqf(VFSFile * file)
 
     if (vfs_fseek(file, 0x1f, SEEK_SET) == -1) goto error;
 
+    Index * list = index_new ();
+
     while (vfs_fread(preset_name, 1, 0xb4, file) == 0xb4) {
         AUDDBG("The preset name is '%s'\n", preset_name);
         if (vfs_fseek (file, 0x4d, SEEK_CUR)) /* unknown crap --asphyx */
@@ -174,28 +171,25 @@ import_winamp_eqf(VFSFile * file)
         for (i = 0; i < 10; i++)
             preset->bands[i] = EQUALIZER_MAX_GAIN - ((bands[i] * EQUALIZER_MAX_GAIN * 2) / 64.0);
 
-        list = g_list_prepend(list, preset);
+        index_append (list, preset);
     }
 
-    list = g_list_reverse(list);
-    if (list == NULL) goto error;
-
     return list;
 
 error:
     markup = g_strdup_printf (_("Error importing Winamp EQF file '%s'"),
-     file->uri);
-    interface_show_error_message(markup);
+     vfs_get_filename (file));
+    interface_show_error(markup);
 
     g_free(markup);
     return NULL;
 }
 
-gboolean save_preset_file (EqualizerPreset * preset, const gchar * filename)
+bool_t save_preset_file (EqualizerPreset * preset, const char * filename)
 {
     GKeyFile *rcfile;
-    gint i;
-    gchar *data;
+    int i;
+    char *data;
     gsize len;
     GError *error = NULL;
 
@@ -203,7 +197,7 @@ gboolean save_preset_file (EqualizerPreset * preset, const gchar * filename)
     g_key_file_set_double(rcfile, "Equalizer preset", "Preamp", preset->preamp);
 
     for (i = 0; i < 10; i++) {
-        gchar tmp[7];
+        char tmp[7];
         g_snprintf(tmp, sizeof(tmp), "Band%d", i);
         g_key_file_set_double(rcfile, "Equalizer preset", tmp,
                               preset->bands[i]);
@@ -211,7 +205,7 @@ gboolean save_preset_file (EqualizerPreset * preset, const gchar * filename)
 
     data = g_key_file_to_data(rcfile, &len, &error);
 
-    gboolean success = FALSE;
+    bool_t success = FALSE;
 
     VFSFile * file = vfs_fopen (filename, "w");
     if (file == NULL)
@@ -226,9 +220,9 @@ DONE:
     return success;
 }
 
-static EqualizerPreset * equalizer_read_aud_preset (const gchar * filename)
+static EqualizerPreset * equalizer_read_aud_preset (const char * filename)
 {
-    gint i;
+    int i;
     EqualizerPreset *preset;
     GKeyFile *rcfile;
     GError *error = NULL;
@@ -240,13 +234,15 @@ static EqualizerPreset * equalizer_read_aud_preset (const gchar * filename)
     if (!g_key_file_load_from_file(rcfile, filename, G_KEY_FILE_NONE, &error))
     {
         g_key_file_free(rcfile);
+        g_free(preset->name);
+        g_free(preset);
         return NULL;
     }
 
     preset->preamp = g_key_file_get_double(rcfile, "Equalizer preset", "Preamp", &error);
     for (i = 0; i < 10; i++)
     {
-        gchar tmp[7];
+        char tmp[7];
         g_snprintf(tmp, sizeof(tmp), "Band%d", i);
 
         preset->bands[i] = g_key_file_get_double(rcfile, "Equalizer preset", tmp, &error);
@@ -257,7 +253,7 @@ static EqualizerPreset * equalizer_read_aud_preset (const gchar * filename)
 }
 
 EqualizerPreset *
-load_preset_file(const gchar *filename)
+load_preset_file(const char *filename)
 {
     if (filename) {
         EqualizerPreset *preset = equalizer_read_aud_preset(filename);
diff --git a/src/audacious/fft.c b/src/audacious/fft.c
index 70dac78..abe323f 100644
--- a/src/audacious/fft.c
+++ b/src/audacious/fft.c
@@ -1,270 +1,127 @@
-/* Audacious - Cross-platform multimedia player
- * Copyright (C) 2005-2007  Audacious development team
+/*
+ * fft.c
+ * Copyright 2011 John Lindgren
  *
- * Copyright (C) 1999 Richard Boulton <richard at tartarus.org>
- * Convolution stuff by Ralph Loader <suckfish at ihug.co.nz>
+ * This file is part of Audacious.
  *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; under version 3 of the License.
+ * Audacious is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free Software
+ * Foundation, version 2 or version 3 of the License.
  *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
+ * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
  *
- *  You should have received a copy of the GNU General Public License
- *  along with this program.  If not, see <http://www.gnu.org/licenses>.
+ * You should have received a copy of the GNU General Public License along with
+ * Audacious. If not, see <http://www.gnu.org/licenses/>.
  *
- *  The Audacious team does not consider modular code linking to
- *  Audacious or using our public API to be a derived work.
- */
-
-/* fft.c: iterative implementation of a FFT */
-
-/*
- * TODO
- * Remove compiling in of FFT_BUFFER_SIZE?  (Might slow things down, but would
- * be nice to be able to change size at runtime.)
- * Finish making / checking thread-safety.
- * More optimisations.
+ * The Audacious team does not consider modular code linking to Audacious or
+ * using our public API to be a derived work.
  */
 
-#ifdef HAVE_CONFIG_H
-#  include "config.h"
-#endif
+#include <complex.h>
+#include <math.h>
 
+#include "config.h"
 #include "fft.h"
 
-#include <glib.h>
-#include <stdlib.h>
-#include <math.h>
-#ifndef PI
-#ifdef M_PI
-#define PI M_PI
-#else
-#define PI            3.14159265358979323846    /* pi */
-#endif
+#ifndef HAVE_CEXPF
+/* e^(a+bi) = (e^a)(cos(b)+sin(b)i) */
+#define cexpf(x) (expf(crealf(x))*(cosf(cimagf(x))+sinf(cimagf(x))*I))
+#warning Your C library does not have cexpf(). Please update it.
 #endif
 
-/* ########### */
-/* # Structs # */
-/* ########### */
-
-struct _struct_fft_state {
-    /* Temporary data stores to perform FFT in. */
-    float real[FFT_BUFFER_SIZE];
-    float imag[FFT_BUFFER_SIZE];
-};
-
-/* ############################# */
-/* # Local function prototypes # */
-/* ############################# */
-
-static void fft_prepare(const sound_sample * input, float *re, float *im);
-static void fft_calculate(float *re, float *im);
-static void fft_output(const float *re, const float *im, float *output);
-static int reverseBits(unsigned int initial);
+#define N 512                         /* size of the DFT */
+#define LOGN 9                        /* log N (base 2) */
 
-/* #################### */
-/* # Global variables # */
-/* #################### */
+static float hamming[N];              /* hamming window, scaled to sum to 1 */
+static int reversed[N];               /* bit-reversal table */
+static float complex roots[N / 2];    /* N-th roots of unity */
+static char generated = 0;            /* set if tables have been generated */
 
-/* Table to speed up bit reverse copy */
-static unsigned int bitReverse[FFT_BUFFER_SIZE];
+/* Reverse the order of the lowest LOGN bits in an integer. */
 
-/* The next two tables could be made to use less space in memory, since they
- * overlap hugely, but hey. */
-static float sintable[FFT_BUFFER_SIZE / 2];
-static float costable[FFT_BUFFER_SIZE / 2];
-
-/* ############################## */
-/* # Externally called routines # */
-/* ############################## */
-
-/* --------- */
-/* FFT stuff */
-/* --------- */
-
-/*
- * Initialisation routine - sets up tables and space to work in.
- * Returns a pointer to internal state, to be used when performing calls.
- * On error, returns NULL.
- * The pointer should be freed when it is finished with, by fft_close().
- */
-fft_state *
-fft_init(void)
+static int bit_reverse (int x)
 {
-    fft_state *state;
-    unsigned int i;
-
-    state = (fft_state *) g_malloc(sizeof(fft_state));
-    if (!state)
-        return NULL;
+    int y = 0;
 
-    for (i = 0; i < FFT_BUFFER_SIZE; i++) {
-        bitReverse[i] = reverseBits(i);
-    }
-    for (i = 0; i < FFT_BUFFER_SIZE / 2; i++) {
-        float j = 2 * PI * i / FFT_BUFFER_SIZE;
-        costable[i] = cos(j);
-        sintable[i] = sin(j);
+    for (int n = LOGN; n --; )
+    {
+        y = (y << 1) | (x & 1);
+        x >>= 1;
     }
 
-    return state;
+    return y;
 }
 
-/*
- * Do all the steps of the FFT, taking as input sound data (as described in
- * sound.h) and returning the intensities of each frequency as floats in the
- * range 0 to ((FFT_BUFFER_SIZE / 2) * 32768) ^ 2
- *
- * FIXME - the above range assumes no frequencies present have an amplitude
- * larger than that of the sample variation.  But this is false: we could have
- * a wave such that its maximums are always between samples, and it's just
- * inside the representable range at the places samples get taken.
- * Question: what _is_ the maximum value possible.  Twice that value?  Root
- * two times that value?  Hmmm.  Think it depends on the frequency, too.
- *
- * The input array is assumed to have FFT_BUFFER_SIZE elements,
- * and the output array is assumed to have (FFT_BUFFER_SIZE / 2 + 1) elements.
- * state is a (non-NULL) pointer returned by fft_init.
- */
-void
-fft_perform(const sound_sample * input, float *output, fft_state * state)
-{
-    /* Convert data from sound format to be ready for FFT */
-    fft_prepare(input, state->real, state->imag);
+/* Generate lookup tables. */
 
-    /* Do the actual FFT */
-    fft_calculate(state->real, state->imag);
+static void generate_tables (void)
+{
+    if (generated)
+        return;
 
-    /* Convert the FFT output into intensities */
-    fft_output(state->real, state->imag, output);
-}
+    for (int n = 0; n < N; n ++)
+        hamming[n] = 1 - 0.85 * cosf (2 * M_PI * n / N);
+    for (int n = 0; n < N; n ++)
+        reversed[n] = bit_reverse (n);
+    for (int n = 0; n < N / 2; n ++)
+        roots[n] = cexpf (2 * M_PI * I * n / N);
 
-/*
- * Free the state.
- */
-void
-fft_close(fft_state * state)
-{
-    if (state)
-        free(state);
+    generated = 1;
 }
 
-/* ########################### */
-/* # Locally called routines # */
-/* ########################### */
+/* Perform the DFT using the Cooley-Tukey algorithm.  At each step s, where
+ * s=1..log N (base 2), there are N/(2^s) groups of intertwined butterfly
+ * operations.  Each group contains (2^s)/2 butterflies, and each butterfly has
+ * a span of (2^s)/2.  The twiddle factors are nth roots of unity where n = 2^s. */
 
-/*
- * Prepare data to perform an FFT on
- */
-static void
-fft_prepare(const sound_sample * input, float *re, float *im)
+static void do_fft (float complex a[N])
 {
-    unsigned int i;
-    float *realptr = re;
-    float *imagptr = im;
+    int half = 1;       /* (2^s)/2 */
+    int inv = N / 2;    /* N/(2^s) */
+
+    /* loop through steps */
+    while (inv)
+    {
+        /* loop through groups */
+        for (int g = 0; g < N; g += half << 1)
+        {
+            /* loop through butterflies */
+            for (int b = 0, r = 0; b < half; b ++, r += inv)
+            {
+                float complex even = a[g + b];
+                float complex odd = roots[r] * a[g + half + b];
+                a[g + b] = even + odd;
+                a[g + half + b] = even - odd;
+            }
+        }
 
-    /* Get input, in reverse bit order */
-    for (i = 0; i < FFT_BUFFER_SIZE; i++) {
-        *realptr++ = input[bitReverse[i]];
-        *imagptr++ = 0;
+        half <<= 1;
+        inv >>= 1;
     }
 }
 
-/*
- * Take result of an FFT and calculate the intensities of each frequency
- * Note: only produces half as many data points as the input had.
- * This is roughly a consequence of the Nyquist sampling theorm thingy.
- * (FIXME - make this comment better, and helpful.)
- * 
- * The two divisions by 4 are also a consequence of this: the contributions
- * returned for each frequency are split into two parts, one at i in the
- * table, and the other at FFT_BUFFER_SIZE - i, except for i = 0 and
- * FFT_BUFFER_SIZE which would otherwise get float (and then 4* when squared)
- * the contributions.
- */
-static void
-fft_output(const float *re, const float *im, float *output)
-{
-    float *outputptr = output;
-    const float *realptr = re;
-    const float *imagptr = im;
-    float *endptr = output + FFT_BUFFER_SIZE / 2;
+/* Input is N=512 PCM samples.
+ * Output is intensity of frequencies from 1 to N/2=256. */
 
-    while (outputptr <= endptr) {
-        *outputptr = (*realptr * *realptr) + (*imagptr * *imagptr);
-        outputptr++;
-        realptr++;
-        imagptr++;
-    }
-    /* Do divisions to keep the constant and highest frequency terms in scale
-     * with the other terms. */
-    *output /= 4;
-    *endptr /= 4;
-}
-
-/*
- * Actually perform the FFT
- */
-static void
-fft_calculate(float *re, float *im)
+void calc_freq (const float data[N], float freq[N / 2])
 {
-    unsigned int i, j, k;
-    unsigned int exchanges;
-    float fact_real, fact_imag;
-    float tmp_real, tmp_imag;
-    unsigned int factfact;
+    generate_tables ();
 
-    /* Set up some variables to reduce calculation in the loops */
-    exchanges = 1;
-    factfact = FFT_BUFFER_SIZE / 2;
+    /* input is filtered by a Hamming window */
+    /* input values are in bit-reversed order */
+    float complex a[N];
+    for (int n = 0; n < N; n ++)
+        a[reversed[n]] = data[n] * hamming[n];
 
-    /* Loop through the divide and conquer steps */
-    for (i = FFT_BUFFER_SIZE_LOG; i != 0; i--) {
-        /* In this step, we have 2 ^ (i - 1) exchange groups, each with
-         * 2 ^ (FFT_BUFFER_SIZE_LOG - i) exchanges
-         */
-        /* Loop through the exchanges in a group */
-        for (j = 0; j != exchanges; j++) {
-            /* Work out factor for this exchange
-             * factor ^ (exchanges) = -1
-             * So, real = cos(j * PI / exchanges),
-             *     imag = sin(j * PI / exchanges)
-             */
-            fact_real = costable[j * factfact];
-            fact_imag = sintable[j * factfact];
+    do_fft (a);
 
-            /* Loop through all the exchange groups */
-            for (k = j; k < FFT_BUFFER_SIZE; k += exchanges << 1) {
-                int k1 = k + exchanges;
-                /* newval[k]  := val[k] + factor * val[k1]
-                 * newval[k1] := val[k] - factor * val[k1]
-                 **/
-                /* FIXME - potential scope for more optimization here? */
-                tmp_real = fact_real * re[k1] - fact_imag * im[k1];
-                tmp_imag = fact_real * im[k1] + fact_imag * re[k1];
-                re[k1] = re[k] - tmp_real;
-                im[k1] = im[k] - tmp_imag;
-                re[k] += tmp_real;
-                im[k] += tmp_imag;
-            }
-        }
-        exchanges <<= 1;
-        factfact >>= 1;
-    }
-}
+    /* output values are divided by N */
+    /* frequencies from 1 to N/2-1 are doubled */
+    for (int n = 0; n < N / 2 - 1; n ++)
+        freq[n] = 2 * cabsf (a[1 + n]) / N;
 
-static int
-reverseBits(unsigned int initial)
-{
-    unsigned int reversed = 0, loop;
-    for (loop = 0; loop < FFT_BUFFER_SIZE_LOG; loop++) {
-        reversed <<= 1;
-        reversed += (initial & 1);
-        initial >>= 1;
-    }
-    return reversed;
+    /* frequency N/2 is not doubled */
+    freq[N / 2 - 1] = cabsf (a[N / 2]) / N;
 }
diff --git a/src/audacious/fft.h b/src/audacious/fft.h
index 996a5d9..ccd283a 100644
--- a/src/audacious/fft.h
+++ b/src/audacious/fft.h
@@ -1,40 +1,27 @@
-/*  Audacious - Cross-platform multimedia player
- *  Copyright (C) 2005-2007  Audacious development team
+/*
+ * fft.h
+ * Copyright 2011 John Lindgren
  *
- *  Copyright (C) 1999 Richard Boulton <richard at tartarus.org>
+ * This file is part of Audacious.
  *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; under version 3 of the License.
+ * Audacious is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free Software
+ * Foundation, version 2 or version 3 of the License.
  *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
+ * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
  *
- *  You should have received a copy of the GNU General Public License
- *  along with this program.  If not, see <http://www.gnu.org/licenses>.
+ * You should have received a copy of the GNU General Public License along with
+ * Audacious. If not, see <http://www.gnu.org/licenses/>.
  *
- *  The Audacious team does not consider modular code linking to
- *  Audacious or using our public API to be a derived work.
+ * The Audacious team does not consider modular code linking to Audacious or
+ * using our public API to be a derived work.
  */
 
-/* fft.h: header for iterative implementation of a FFT */
-
 #ifndef AUDACIOUS_FFT_H
 #define AUDACIOUS_FFT_H
 
-#include <glib.h>
-
-#define FFT_BUFFER_SIZE_LOG 9
-#define FFT_BUFFER_SIZE (1 << FFT_BUFFER_SIZE_LOG)
-
-/* sound sample - should be a signed 16 bit value */
-typedef gint16 sound_sample;
-
-typedef struct _struct_fft_state fft_state;
-fft_state *fft_init(void);
-void fft_perform(const sound_sample * input, float *output, fft_state * state);
-void fft_close(fft_state * state);
+void calc_freq (const float data[512], float freq[256]);
 
-#endif /* AUDACIOUS_FFT_H */
+#endif
diff --git a/src/audacious/folder-add.c b/src/audacious/folder-add.c
deleted file mode 100644
index 4435872..0000000
--- a/src/audacious/folder-add.c
+++ /dev/null
@@ -1,296 +0,0 @@
-/*
- * folder-add.c
- * Copyright 2009-2011 John Lindgren
- *
- * This file is part of Audacious.
- *
- * Audacious is free software: you can redistribute it and/or modify it under
- * the terms of the GNU General Public License as published by the Free Software
- * Foundation, version 2 or version 3 of the License.
- *
- * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * Audacious. If not, see <http://www.gnu.org/licenses/>.
- *
- * The Audacious team does not consider modular code linking to Audacious or
- * using our public API to be a derived work.
- */
-
-#include <dirent.h>
-#include <stdio.h>
-#include <string.h>
-#include <sys/stat.h>
-
-#include <gtk/gtk.h>
-
-#include <libaudcore/audstrings.h>
-
-#include "audconfig.h"
-#include "config.h"
-#include "glib-compat.h"
-#include "i18n.h"
-#include "misc.h"
-#include "playback.h"
-#include "playlist.h"
-
-typedef struct {
-    gchar * filename;
-    PluginHandle * decoder;
-} AddFile;
-
-typedef struct {
-    gint playlist_id, at;
-    GQueue folders; // (gchar *)
-    gboolean play;
-} AddGroup;
-
-static GQueue add_queue = G_QUEUE_INIT; // (AddGroup *)
-static gint add_source = 0;
-static GtkWidget * add_window = NULL, * add_progress_path, * add_progress_count;
-
-static void show_progress (const gchar * path, gint count)
-{
-    if (add_window == NULL)
-    {
-        GtkWidget * vbox;
-
-        add_window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
-        gtk_window_set_type_hint (GTK_WINDOW(add_window),
-         GDK_WINDOW_TYPE_HINT_DIALOG);
-        gtk_window_set_title (GTK_WINDOW(add_window), _("Searching ..."));
-        gtk_window_set_resizable (GTK_WINDOW(add_window), FALSE);
-        gtk_container_set_border_width (GTK_CONTAINER(add_window), 6);
-
-        vbox = gtk_vbox_new (FALSE, 6);
-        gtk_container_add (GTK_CONTAINER(add_window), vbox);
-
-        add_progress_path = gtk_label_new ("");
-        gtk_widget_set_size_request (add_progress_path, 320, -1);
-        gtk_label_set_ellipsize (GTK_LABEL(add_progress_path),
-         PANGO_ELLIPSIZE_MIDDLE);
-        gtk_box_pack_start (GTK_BOX(vbox), add_progress_path, FALSE, FALSE, 0);
-
-        add_progress_count = gtk_label_new ("");
-        gtk_widget_set_size_request (add_progress_count, 320, -1);
-        gtk_box_pack_start (GTK_BOX(vbox), add_progress_count, FALSE, FALSE, 0);
-
-        gtk_widget_show_all (add_window);
-
-        g_signal_connect (G_OBJECT(add_window), "destroy",
-         G_CALLBACK(gtk_widget_destroyed), & add_window);
-    }
-
-    gtk_label_set_text (GTK_LABEL(add_progress_path), path);
-
-    gchar scratch[128];
-    snprintf (scratch, sizeof scratch, dngettext (PACKAGE, "%d file found",
-     "%d files found", count), count);
-    gtk_label_set_text (GTK_LABEL(add_progress_count), scratch);
-}
-
-static void show_done (void)
-{
-    gtk_widget_destroy (add_window);
-}
-
-static gint sort_cb (const AddFile * a, const AddFile * b)
-{
-    return string_compare_encoded (a->filename, b->filename);
-}
-
-static gboolean add_cb (void * unused)
-{
-    static GList * stack = NULL; // (gchar *) and (DIR *) alternately
-    static GList * big_list = NULL, * little_list = NULL; // (AddFile *)
-
-    if (! stack)
-    {
-        AddGroup * group = g_queue_peek_head (& add_queue);
-        g_return_val_if_fail (group, FALSE);
-        gchar * folder = g_queue_pop_head (& group->folders);
-        g_return_val_if_fail (folder, FALSE);
-        stack = g_list_prepend (NULL, folder);
-    }
-
-    show_progress (stack->data, g_list_length (big_list) + g_list_length
-     (little_list));
-
-    for (gint count = 0; count < 30; count ++)
-    {
-        struct stat info;
-
-        /* top of stack is (gchar *) */
-
-        if (! stat (stack->data, & info))
-        {
-            if (S_ISREG (info.st_mode))
-            {
-                gchar * filename = filename_to_uri (stack->data);
-                PluginHandle * decoder = (filename == NULL) ? NULL :
-                 file_find_decoder (filename, TRUE);
-
-                if (decoder)
-                {
-                    AddFile * file = g_slice_new (AddFile);
-                    file->filename = filename;
-                    file->decoder = decoder;
-                    little_list = g_list_prepend (little_list, file);
-                }
-                else
-                    g_free (filename);
-            }
-            else if (S_ISDIR (info.st_mode))
-            {
-                DIR * folder = opendir (stack->data);
-
-                if (folder)
-                {
-                    stack = g_list_prepend (stack, folder);
-                    goto READ;
-                }
-            }
-        }
-
-        g_free (stack->data);
-        stack = g_list_delete_link (stack, stack);
-
-    READ:
-        if (! stack)
-            break;
-
-        /* top of stack is (DIR *) */
-
-        struct dirent * entry = readdir (stack->data);
-
-        if (entry)
-        {
-            if (entry->d_name[0] == '.')
-                goto READ;
-
-            stack = g_list_prepend (stack, g_strdup_printf ("%s"
-             G_DIR_SEPARATOR_S "%s", (gchar *) stack->next->data, entry->d_name));
-        }
-        else
-        {
-            closedir (stack->data);
-            stack = g_list_delete_link (stack, stack);
-            g_free (stack->data);
-            stack = g_list_delete_link (stack, stack);
-            goto READ;
-        }
-    }
-
-    if (stack)
-        return TRUE; /* not done yet */
-
-    AddGroup * group = g_queue_peek_head (& add_queue);
-    g_return_val_if_fail (group, FALSE);
-
-    little_list = g_list_sort (little_list, (GCompareFunc) sort_cb);
-    big_list = g_list_concat (big_list, little_list);
-    little_list = NULL;
-
-    if (! g_queue_is_empty (& group->folders))
-        return TRUE; /* not done yet */
-
-    gint playlist = playlist_by_unique_id (group->playlist_id);
-
-    if (playlist < 0) /* ouch! playlist deleted */
-    {
-        for (GList * node = big_list; node; node = node->next)
-        {
-            AddFile * file = node->data;
-            g_free (file->filename);
-            g_slice_free (AddFile, file);
-        }
-
-        g_list_free (big_list);
-        big_list = NULL;
-        goto ADDED;
-    }
-
-    struct index * filenames = index_new ();
-    struct index * decoders = index_new ();
-
-    for (GList * node = big_list; node; node = node->next)
-    {
-        AddFile * file = node->data;
-        index_append (filenames, file->filename);
-        index_append (decoders, file->decoder);
-        g_slice_free (AddFile, file);
-    }
-
-    g_list_free (big_list);
-    big_list = NULL;
-
-    gint count = playlist_entry_count (playlist);
-    if (group->at < 0 || group->at > count)
-        group->at = count;
-
-    playlist_entry_insert_batch_with_decoders (playlist, group->at,
-     filenames, decoders, NULL);
-
-    if (group->play && playlist_entry_count (playlist) > count)
-    {
-        playlist_set_playing (playlist);
-        if (! cfg.shuffle)
-            playlist_set_position (playlist, group->at);
-        playback_play (0, FALSE);
-    }
-
-ADDED:
-    g_slice_free (AddGroup, group);
-    g_queue_pop_head (& add_queue);
-
-    if (! g_queue_is_empty (& add_queue))
-        return TRUE; /* not done yet */
-
-    show_done ();
-    add_source = 0;
-    return FALSE;
-}
-
-void playlist_insert_folder (gint playlist, gint at, const gchar * folder,
- gboolean play)
-{
-    gint playlist_id = playlist_get_unique_id (playlist);
-    g_return_if_fail (playlist_id >= 0);
-
-    gchar * unix_name = uri_to_filename (folder);
-    g_return_if_fail (unix_name);
-
-    if (unix_name[strlen (unix_name) - 1] == '/')
-        unix_name[strlen (unix_name) - 1] = 0;
-
-    AddGroup * group = NULL;
-
-    for (GList * node = g_queue_peek_head_link (& add_queue); node; node =
-     node->next)
-    {
-        AddGroup * test = node->data;
-        if (test->playlist_id == playlist_id && test->at == at)
-        {
-            group = test;
-            break;
-        }
-    }
-
-    if (! group)
-    {
-        group = g_slice_new (AddGroup);
-        group->playlist_id = playlist_id;
-        group->at = at;
-        g_queue_init (& group->folders);
-        group->play = FALSE;
-        g_queue_push_tail (& add_queue, group);
-    }
-
-    g_queue_push_tail (& group->folders, unix_name);
-    group->play |= play;
-
-    if (! add_source)
-        add_source = g_idle_add (add_cb, NULL);
-}
diff --git a/src/audacious/general.c b/src/audacious/general.c
index 7c8e60a..f18b5a9 100644
--- a/src/audacious/general.c
+++ b/src/audacious/general.c
@@ -34,10 +34,10 @@ typedef struct {
     GtkWidget * widget;
 } LoadedGeneral;
 
-static gint running = FALSE;
+static int running = FALSE;
 static GList * loaded_general_plugins = NULL;
 
-static gint general_find_cb (LoadedGeneral * general, PluginHandle * plugin)
+static int general_find_cb (LoadedGeneral * general, PluginHandle * plugin)
 {
     return (general->plugin == plugin) ? 0 : -1;
 }
@@ -93,7 +93,7 @@ static void general_unload (PluginHandle * plugin)
     g_slice_free (LoadedGeneral, general);
 }
 
-static gboolean general_init_cb (PluginHandle * plugin)
+static bool_t general_init_cb (PluginHandle * plugin)
 {
     general_load (plugin);
     return TRUE;
@@ -121,7 +121,7 @@ void general_cleanup (void)
     g_list_foreach (loaded_general_plugins, (GFunc) general_cleanup_cb, NULL);
 }
 
-gboolean general_plugin_start (PluginHandle * plugin)
+bool_t general_plugin_start (PluginHandle * plugin)
 {
     GeneralPlugin * gp = plugin_get_header (plugin);
     g_return_val_if_fail (gp != NULL, FALSE);
@@ -159,6 +159,6 @@ PluginHandle * general_plugin_by_widget (/* GtkWidget * */ void * widget)
         if (general->widget == widget)
             return general->plugin;
     }
-    
+
     return NULL;
 }
diff --git a/src/audacious/general.h b/src/audacious/general.h
index b96dbff..a02ff48 100644
--- a/src/audacious/general.h
+++ b/src/audacious/general.h
@@ -22,14 +22,12 @@
 #ifndef AUDACIOUS_GENERAL_H
 #define AUDACIOUS_GENERAL_H
 
-#include <glib.h>
-
 #include "plugins.h"
 
 void general_init (void);
 void general_cleanup (void);
 
-gboolean general_plugin_start (PluginHandle * plugin);
+bool_t general_plugin_start (PluginHandle * plugin);
 void general_plugin_stop (PluginHandle * plugin);
 
 PluginHandle * general_plugin_by_widget (/* GtkWidget * */ void * widget);
diff --git a/src/audacious/glib-compat.h b/src/audacious/glib-compat.h
deleted file mode 100755
index be639d9..0000000
--- a/src/audacious/glib-compat.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Compatibility macros to make supporting multiple GLib versions easier.
- * Public domain. */
-
-#ifndef AUD_GLIB_COMPAT_H
-#define AUD_GLIB_COMPAT_H
-
-#if ! GLIB_CHECK_VERSION (2, 14, 0)
-
-static inline void g_queue_init (GQueue * q)
-{
-	q->head = q->tail = NULL;
-	q->length = 0;
-}
-
-static inline void g_queue_clear (GQueue * q)
-{
-	g_list_free (q->head);
-	q->head = q->tail = NULL;
-	q->length = 0;
-}
-
-#define G_QUEUE_INIT {NULL, NULL, 0}
-#define g_timeout_add_seconds(s, f, d) g_timeout_add (1000 * (s), (f), (d))
-#endif
-
-#endif /* AUD_GLIB_COMPAT_H */
diff --git a/src/audacious/gtk-compat.h b/src/audacious/gtk-compat.h
index 91d8d20..ef07829 100644
--- a/src/audacious/gtk-compat.h
+++ b/src/audacious/gtk-compat.h
@@ -10,25 +10,6 @@
 #include <gdk/gdkkeysyms-compat.h>
 #endif
 
-#if ! GTK_CHECK_VERSION (2, 10, 0)
-#define GDK_WINDOW_TYPE_HINT_TOOLTIP GDK_WINDOW_TYPE_HINT_MENU
-#define gtk_label_set_line_wrap_mode(...)
-#endif
-
-#if ! GTK_CHECK_VERSION (2, 12, 0)
-
-static inline void gtk_tree_view_convert_widget_to_bin_window_coords
- (GtkTreeView * tree, gint wx, gint wy, gint * bx, gint * by)
-{
-    gint bx0, by0;
-    gdk_window_get_position (gtk_tree_view_get_bin_window (tree), & bx0, & by0);
-    * bx = wx - bx0;
-    * by = wy - by0;
-}
-
-#define gtk_widget_set_tooltip_text(...)
-#endif
-
 #if ! GTK_CHECK_VERSION (2, 14, 0)
 #define gtk_adjustment_get_page_size(a) ((a)->page_size)
 #define gtk_adjustment_get_upper(a) ((a)->upper)
@@ -69,8 +50,8 @@ static inline void gtk_widget_set_can_focus (GtkWidget * w, gboolean b)
 
 #if ! GTK_CHECK_VERSION (3, 0, 0)
 
-static inline void gdk_window_get_geometry_compat (GdkWindow * win, gint * x,
- gint * y, gint * w, gint * h)
+static inline void gdk_window_get_geometry_compat (GdkWindow * win, int * x,
+ int * y, int * w, int * h)
 {
     gdk_window_get_geometry (win, x, y, w, h, NULL);
 }
diff --git a/src/audacious/history.c b/src/audacious/history.c
new file mode 100644
index 0000000..9cc9253
--- /dev/null
+++ b/src/audacious/history.c
@@ -0,0 +1,120 @@
+/*
+ * history.c
+ * Copyright 2011 John Lindgren
+ *
+ * This file is part of Audacious.
+ *
+ * Audacious is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free Software
+ * Foundation, version 2 or version 3 of the License.
+ *
+ * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * Audacious. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * The Audacious team does not consider modular code linking to Audacious or
+ * using our public API to be a derived work.
+ */
+
+#include <glib.h>
+#include <stdio.h>
+#include <string.h>
+
+#include <libaudcore/hook.h>
+
+#include "main.h"
+#include "misc.h"
+
+#define MAX_ENTRIES 30
+
+static GQueue history = G_QUEUE_INIT;
+static bool_t loaded, modified;
+
+static void history_save (void)
+{
+    if (! modified)
+        return;
+
+    config_clear_section ("history");
+
+    GList * node = history.head;
+    for (int i = 0; i < MAX_ENTRIES; i ++)
+    {
+        if (! node)
+            break;
+
+        char name[32];
+        snprintf (name, sizeof name, "entry%d", i);
+        set_string ("history", name, node->data);
+
+        node = node->next;
+    }
+
+    modified = FALSE;
+}
+
+static void history_load (void)
+{
+    if (loaded)
+        return;
+
+    for (int i = 0; ; i ++)
+    {
+        char name[32];
+        snprintf (name, sizeof name, "entry%d", i);
+        char * path = get_string ("history", name);
+
+        if (! path[0])
+        {
+            g_free (path);
+            break;
+        }
+
+        g_queue_push_tail (& history, path);
+    }
+
+    loaded = TRUE;
+    hook_associate ("config save", (HookFunction) history_save, NULL);
+}
+
+void history_cleanup (void)
+{
+    if (! loaded)
+        return;
+
+    hook_dissociate ("config save", (HookFunction) history_save);
+
+    g_queue_foreach (& history, (GFunc) g_free, NULL);
+    g_queue_clear (& history);
+
+    loaded = FALSE;
+    modified = FALSE;
+}
+
+const char * history_get (int entry)
+{
+    history_load ();
+    return g_queue_peek_nth (& history, entry);
+}
+
+void history_add (const char * path)
+{
+    history_load ();
+
+    GList * next;
+    for (GList * node = history.head; node; node = next)
+    {
+        next = node->next;
+        if (! strcmp (node->data, path))
+        {
+            g_free (node->data);
+            g_queue_delete_link (& history, node);
+        }
+    }
+
+    g_queue_push_head (& history, g_strdup (path));
+    modified = TRUE;
+}
diff --git a/src/audacious/i18n.h b/src/audacious/i18n.h
index cec9379..4bdb988 100644
--- a/src/audacious/i18n.h
+++ b/src/audacious/i18n.h
@@ -20,11 +20,9 @@
 #ifndef AUDACIOUS_I18N_H
 #define AUDACIOUS_I18N_H
 
-#include <glib.h>
 #include <libintl.h>
 
 #define _(String) dgettext (PACKAGE, String)
-#define Q_(String) g_strip_context ((String), dgettext (PACKAGE, String))
 #ifdef gettext_noop
 #define N_(String) gettext_noop (String)
 #else
diff --git a/src/audacious/images/appearance.png b/src/audacious/images/appearance.png
deleted file mode 100644
index b06f9b6..0000000
Binary files a/src/audacious/images/appearance.png and /dev/null differ
diff --git a/src/audacious/images/blue.png b/src/audacious/images/blue.png
deleted file mode 100644
index 5462d34..0000000
Binary files a/src/audacious/images/blue.png and /dev/null differ
diff --git a/src/audacious/images/replay_gain.png b/src/audacious/images/replay_gain.png
deleted file mode 100644
index 4fce8c3..0000000
Binary files a/src/audacious/images/replay_gain.png and /dev/null differ
diff --git a/src/audacious/interface.c b/src/audacious/interface.c
index e43a33b..58427ef 100644
--- a/src/audacious/interface.c
+++ b/src/audacious/interface.c
@@ -2,7 +2,7 @@
  * Audacious2
  * Copyright (c) 2008 William Pitcock <nenolod at dereferenced.org>
  * Copyright (c) 2008-2009 Tomasz Moń <desowin at gmail.com>
- * Copyright (c) 2010 John Lindgren <john.lindgren at tds.net>
+ * Copyright (c) 2010-2011 John Lindgren <john.lindgren at tds.net>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -20,140 +20,133 @@
  * Audacious or using our public API to be a derived work.
  */
 
-#include <string.h>
 #include <gtk/gtk.h>
+#include <pthread.h>
 
 #include <libaudcore/hook.h>
 
-#include "audconfig.h"
-#include "config.h"
 #include "debug.h"
 #include "general.h"
-#include "i18n.h"
 #include "interface.h"
+#include "main.h"
 #include "misc.h"
+#include "plugin.h"
 #include "plugins.h"
-#include "ui_preferences.h"
 #include "visualization.h"
 
-static Iface *current_interface = NULL;
+static IfacePlugin *current_interface = NULL;
 
-static IfaceOps interface_ops = {
-    .create_prefs_window = create_prefs_window,
-    .show_prefs_window = show_prefs_window,
-    .hide_prefs_window = hide_prefs_window,
-    .destroy_prefs_window = destroy_prefs_window,
-    .prefswin_page_new = prefswin_page_new,
-};
+static pthread_mutex_t error_mutex = PTHREAD_MUTEX_INITIALIZER;
+static GQueue error_queue = G_QUEUE_INIT;
+static int error_source;
 
-static IfaceCbs interface_cbs = { NULL };
-
-gboolean interface_load (PluginHandle * plugin)
+bool_t interface_load (PluginHandle * plugin)
 {
-    Iface * i = (Iface *) plugin_get_header (plugin);
-    g_return_val_if_fail (i != NULL, FALSE);
+    IfacePlugin * i = plugin_get_header (plugin);
+    g_return_val_if_fail (i, FALSE);
+
+    if (PLUGIN_HAS_FUNC (i, init) && ! i->init ())
+        return FALSE;
 
     current_interface = i;
-    i->ops = & interface_ops;
-    return i->init (& interface_cbs);
+    return TRUE;
 }
 
 void interface_unload (void)
 {
-    g_return_if_fail (current_interface != NULL);
+    g_return_if_fail (current_interface);
 
-    if (current_interface->fini != NULL)
-        current_interface->fini ();
+    if (PLUGIN_HAS_FUNC (current_interface, cleanup))
+        current_interface->cleanup ();
 
     current_interface = NULL;
-    memset (& interface_cbs, 0, sizeof interface_cbs);
 }
 
-void
-interface_show_prefs_window(gboolean show)
+void interface_show (bool_t show)
 {
-    if (interface_cbs.show_prefs_window != NULL)
-        interface_cbs.show_prefs_window(show);
-    else
-        AUDDBG ("Interface didn't register show_prefs_window function.\n");
-}
+    g_return_if_fail (current_interface);
 
-/*
- * gboolean play_button
- *       TRUE  - open files
- *       FALSE - add files
- */
-void
-interface_run_filebrowser(gboolean play_button)
-{
-    if (interface_cbs.run_filebrowser != NULL)
-        interface_cbs.run_filebrowser(play_button);
-    else
-        AUDDBG ("Interface didn't register run_filebrowser function.\n");
+    if (PLUGIN_HAS_FUNC (current_interface, show))
+        current_interface->show (show);
 }
 
-void
-interface_hide_filebrowser(void)
+bool_t interface_is_shown (void)
 {
-    if (interface_cbs.hide_filebrowser != NULL)
-        interface_cbs.hide_filebrowser();
-    else
-        AUDDBG ("Interface didn't register hide_filebrowser function.\n");
+    g_return_val_if_fail (current_interface, FALSE);
+
+    if (PLUGIN_HAS_FUNC (current_interface, is_shown))
+        return current_interface->is_shown ();
+    return TRUE;
 }
 
-void
-interface_toggle_visibility(void)
+bool_t interface_is_focused (void)
 {
-    if (interface_cbs.toggle_visibility != NULL)
-        interface_cbs.toggle_visibility();
-    else
-        AUDDBG ("Interface didn't register toggle_visibility function.\n");
+    g_return_val_if_fail (current_interface, FALSE);
+
+    if (PLUGIN_HAS_FUNC (current_interface, is_focused))
+        return current_interface->is_focused ();
+    return TRUE;
 }
 
-void
-interface_show_error_message(const gchar * markup)
+static bool_t error_idle_func (void * unused)
 {
-    if (interface_cbs.show_error != NULL)
-        interface_cbs.show_error(markup);
-    else
-        AUDDBG ("Interface didn't register show_error function.\n");
+    pthread_mutex_lock (& error_mutex);
+
+    char * message;
+    while ((message = g_queue_pop_head (& error_queue)))
+    {
+        pthread_mutex_unlock (& error_mutex);
+
+        if (current_interface && PLUGIN_HAS_FUNC (current_interface, show_error))
+            current_interface->show_error (message);
+        else
+            fprintf (stderr, "ERROR: %s\n", message);
+
+        g_free (message);
+
+        pthread_mutex_lock (& error_mutex);
+    }
+
+    error_source = 0;
+
+    pthread_mutex_unlock (& error_mutex);
+    return FALSE;
 }
 
-void
-interface_show_jump_to_track(void)
+void interface_show_error (const char * message)
 {
-    if (interface_cbs.show_jump_to_track != NULL)
-        interface_cbs.show_jump_to_track();
-    else
-        AUDDBG ("Interface didn't register show_jump_to_track function.\n");
+    pthread_mutex_lock (& error_mutex);
+
+    g_queue_push_tail (& error_queue, g_strdup (message));
+
+    if (! error_source)
+        error_source = g_idle_add (error_idle_func, NULL);
+
+    pthread_mutex_unlock (& error_mutex);
 }
 
-void
-interface_hide_jump_to_track(void)
+/*
+ * bool_t play_button
+ *       TRUE  - open files
+ *       FALSE - add files
+ */
+void interface_show_filebrowser (bool_t play_button)
 {
-    if (interface_cbs.hide_jump_to_track != NULL)
-        interface_cbs.hide_jump_to_track();
-    else
-        AUDDBG ("Interface didn't register hide_jump_to_track function.\n");
+    g_return_if_fail (current_interface);
+
+    if (PLUGIN_HAS_FUNC (current_interface, show_filebrowser))
+        current_interface->show_filebrowser (play_button);
 }
 
-void
-interface_show_about_window(gboolean show)
+void interface_show_jump_to_track (void)
 {
-    if (show == FALSE) {
-        if (interface_cbs.hide_about_window != NULL)
-            interface_cbs.hide_about_window();
-        else
-            AUDDBG ("Interface didn't register hide_about_window function.\n");
-    } else {
-        if (interface_cbs.show_about_window != NULL)
-            interface_cbs.show_about_window();
-        else
-            AUDDBG ("Interface didn't register show_about_window function.\n");
-    }
+    g_return_if_fail (current_interface);
+
+    if (PLUGIN_HAS_FUNC (current_interface, show_jump_to_track))
+        current_interface->show_jump_to_track ();
 }
 
-static gboolean delete_cb (GtkWidget * window, GdkEvent * event, PluginHandle *
+static bool_t delete_cb (GtkWidget * window, GdkEvent * event, PluginHandle *
  plugin)
 {
     plugin_enable (plugin, FALSE);
@@ -162,12 +155,15 @@ static gboolean delete_cb (GtkWidget * window, GdkEvent * event, PluginHandle *
 
 void interface_add_plugin_widget (PluginHandle * plugin, GtkWidget * widget)
 {
-    if (interface_cbs.run_gtk_plugin != NULL)
-        interface_cbs.run_gtk_plugin (widget, plugin_get_name (plugin));
+    g_return_if_fail (current_interface);
+
+    if (PLUGIN_HAS_FUNC (current_interface, run_gtk_plugin))
+        current_interface->run_gtk_plugin (widget, plugin_get_name (plugin));
     else
     {
         GtkWidget * window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
         gtk_window_set_title ((GtkWindow *) window, plugin_get_name (plugin));
+        gtk_window_set_default_size ((GtkWindow *) window, 300, 200);
         gtk_container_add ((GtkContainer *) window, widget);
         g_signal_connect (window, "delete-event", (GCallback) delete_cb, plugin);
         gtk_widget_show_all (window);
@@ -176,130 +172,35 @@ void interface_add_plugin_widget (PluginHandle * plugin, GtkWidget * widget)
 
 void interface_remove_plugin_widget (PluginHandle * plugin, GtkWidget * widget)
 {
-    if (interface_cbs.stop_gtk_plugin != NULL)
-        interface_cbs.stop_gtk_plugin (widget);
+    g_return_if_fail (current_interface);
+
+    if (PLUGIN_HAS_FUNC (current_interface, stop_gtk_plugin))
+        current_interface->stop_gtk_plugin (widget);
     else
         gtk_widget_destroy (gtk_widget_get_parent (widget));
 }
 
-void
-interface_install_toolbar(void *widget)
+void interface_install_toolbar (void * widget)
 {
-    if (interface_cbs.install_toolbar != NULL)
-        interface_cbs.install_toolbar(widget);
-    else
-        AUDDBG ("Interface didn't register install_toolbar function.\n");
-}
+    g_return_if_fail (current_interface);
 
-void
-interface_uninstall_toolbar(void *widget)
-{
-    if (interface_cbs.uninstall_toolbar != NULL)
-        interface_cbs.uninstall_toolbar(widget);
+    if (PLUGIN_HAS_FUNC (current_interface, install_toolbar))
+        current_interface->install_toolbar (widget);
     else
-        AUDDBG ("Interface didn't register uninstall_toolbar function.\n");
+        g_object_ref (widget);
 }
 
-void
-interface_toggle_shuffle(void)
+void interface_uninstall_toolbar (void * widget)
 {
-    if (interface_cbs.toggle_shuffle != NULL)
-        interface_cbs.toggle_shuffle();
-    else
-        AUDDBG ("Interface didn't register toggle_shuffle function.\n");
-}
+    g_return_if_fail (current_interface);
 
-void
-interface_toggle_repeat(void)
-{
-    if (interface_cbs.toggle_repeat != NULL)
-        interface_cbs.toggle_repeat();
+    if (PLUGIN_HAS_FUNC (current_interface, uninstall_toolbar))
+        current_interface->uninstall_toolbar (widget);
     else
-        AUDDBG ("Interface didn't register toggle_repeat function.\n");
-}
-
-typedef enum {
-    HOOK_PREFSWIN_SHOW,
-    HOOK_FILEBROWSER_SHOW,
-    HOOK_FILEBROWSER_HIDE,
-    HOOK_TOGGLE_VISIBILITY,
-    HOOK_SHOW_ERROR,
-    HOOK_JUMPTOTRACK_SHOW,
-    HOOK_JUMPTOTRACK_HIDE,
-    HOOK_ABOUTWIN_SHOW,
-    HOOK_TOGGLE_SHUFFLE,
-    HOOK_TOGGLE_REPEAT,
-} IfaceHookID;
-
-void
-interface_hook_handler(gpointer hook_data, gpointer user_data)
-{
-    switch (GPOINTER_TO_INT(user_data)) {
-        case HOOK_PREFSWIN_SHOW:
-            interface_show_prefs_window(GPOINTER_TO_INT(hook_data));
-            break;
-        case HOOK_FILEBROWSER_SHOW:
-            interface_run_filebrowser(GPOINTER_TO_INT(hook_data));
-            break;
-        case HOOK_FILEBROWSER_HIDE:
-            interface_hide_filebrowser();
-            break;
-        case HOOK_TOGGLE_VISIBILITY:
-            interface_toggle_visibility();
-            break;
-        case HOOK_SHOW_ERROR:
-            interface_show_error_message((const gchar *) hook_data);
-            break;
-        case HOOK_JUMPTOTRACK_SHOW:
-            interface_show_jump_to_track();
-            break;
-        case HOOK_JUMPTOTRACK_HIDE:
-            interface_hide_jump_to_track();
-            break;
-        case HOOK_ABOUTWIN_SHOW:
-            interface_show_about_window(GPOINTER_TO_INT(hook_data));
-            break;
-	case HOOK_TOGGLE_SHUFFLE:
-            interface_toggle_shuffle();
-            break;
-	case HOOK_TOGGLE_REPEAT:
-            interface_toggle_repeat();
-            break;
-        default:
-            break;
-    }
+        g_object_unref (widget);
 }
 
-typedef struct {
-    const gchar *name;
-    IfaceHookID id;
-} IfaceHooks;
-
-static IfaceHooks hooks[] = {
-    {"prefswin show", HOOK_PREFSWIN_SHOW},
-    {"filebrowser show", HOOK_FILEBROWSER_SHOW},
-    {"filebrowser hide", HOOK_FILEBROWSER_HIDE},
-    {"interface toggle visibility", HOOK_TOGGLE_VISIBILITY},
-    {"interface show error", HOOK_SHOW_ERROR},
-    {"interface show jump to track", HOOK_JUMPTOTRACK_SHOW},
-    {"interface hide jump to track", HOOK_JUMPTOTRACK_HIDE},
-    {"aboutwin show", HOOK_ABOUTWIN_SHOW},
-    {"toggle shuffle", HOOK_TOGGLE_SHUFFLE},
-    {"toggle repeat", HOOK_TOGGLE_REPEAT},
-};
-
-void
-register_interface_hooks(void)
-{
-    gint i;
-    for (i=0; i<G_N_ELEMENTS(hooks); i++)
-        hook_associate(hooks[i].name,
-                       (HookFunction) interface_hook_handler,
-                       GINT_TO_POINTER(hooks[i].id));
-
-}
-
-static gboolean probe_cb (PluginHandle * p, PluginHandle * * pp)
+static bool_t probe_cb (PluginHandle * p, PluginHandle * * pp)
 {
     * pp = p;
     return FALSE;
@@ -319,8 +220,10 @@ PluginHandle * iface_plugin_get_current (void)
     return current_plugin;
 }
 
-gboolean iface_plugin_set_current (PluginHandle * plugin)
+bool_t iface_plugin_set_current (PluginHandle * plugin)
 {
+    hook_call ("config save", NULL); /* tell interface to save layout */
+
     if (current_plugin != NULL)
     {
         AUDDBG ("Unloading plugin widgets.\n");
diff --git a/src/audacious/interface.h b/src/audacious/interface.h
index 4ce4c5b..20e413a 100644
--- a/src/audacious/interface.h
+++ b/src/audacious/interface.h
@@ -2,6 +2,7 @@
  * Audacious2
  * Copyright (c) 2008 William Pitcock <nenolod at dereferenced.org>
  * Copyright (c) 2008-2009 Tomasz Moń <desowin at gmail.com>
+ * Copyright (c) 2011 John Lindgren <john.lindgren at tds.net>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -19,88 +20,20 @@
  * Audacious or using our public API to be a derived work.
  */
 
-/*
- * This is the Interface API.
- *
- * Everything here is like totally subject to change.
- *     --nenolod
- */
-
 #ifndef __AUDACIOUS2_INTERFACE_H__
 #define __AUDACIOUS2_INTERFACE_H__
 
-#include <glib.h>
-#include <audacious/types.h>
-
-typedef struct {
-    /* GtkWidget * * (* create_prefs_window) (void); */
-    void * * (* create_prefs_window) (void);
-    void (*show_prefs_window)(void);
-    void (*hide_prefs_window)(void);
-    void (*destroy_prefs_window)(void);
-    /* gint (* prefswin_page_new) (GtkWidget * container, const gchar * name,
-     const gchar * imgurl); */
-    gint (* prefswin_page_new) (void * container, const gchar * name,
-     const gchar * imgurl);
-} IfaceOps;
-
-typedef struct {
-    void (*show_prefs_window)(gboolean show);
-    void (*run_filebrowser)(gboolean play_button);
-    void (*hide_filebrowser)(void);
-    void (*toggle_visibility)(void);
-    void (*show_error)(const gchar * markup);
-    void (*show_jump_to_track)(void);
-    void (*hide_jump_to_track)(void);
-    void (*show_about_window)(void);
-    void (*hide_about_window)(void);
-    void (*toggle_shuffle)(void);
-    void (*toggle_repeat)(void);
-    /* GtkWidget * (* run_gtk_plugin) (GtkWidget * parent, const gchar * name); */
-    void * (* run_gtk_plugin) (void * parent, const gchar * name);
-    /* GtkWidget * (* stop_gtk_plugin) (GtkWidget * parent); */
-    void * (* stop_gtk_plugin) (void * parent);
-
-    void (*install_toolbar)(void * button);
-    void (*uninstall_toolbar)(void * button);
-} IfaceCbs;
-
-struct _Iface {
-    gchar *id;                           /* simple ID like 'skinned' */
-    gchar *desc;                         /* description like 'Skinned Interface' */
-    gboolean (*init)(IfaceCbs *cbs); /* init UI */
-    gboolean (*fini)(void);              /* shutdown UI */
-
-    IfaceOps *ops;
-};
-
-#ifdef _AUDACIOUS_CORE
-
 #include <gtk/gtk.h>
 #include <audacious/plugins.h>
 
-gboolean interface_load (PluginHandle * plugin);
+bool_t interface_load (PluginHandle * plugin);
 void interface_unload (void);
 
-/* These functions have to be called from main thread
-   Use event_queue if you need to call those from other threads */
-void interface_show_prefs_window(gboolean show);
-void interface_run_filebrowser(gboolean play_button);
-void interface_hide_filebrowser(void);
-void interface_toggle_visibility(void);
-void interface_show_error_message(const gchar * markup);
-void interface_show_jump_to_track(void);
 void interface_add_plugin_widget (PluginHandle * plugin, GtkWidget * widget);
 void interface_remove_plugin_widget (PluginHandle * plugin, GtkWidget * widget);
-void interface_stop_gtk_plugin (void * parent);
-void interface_toggle_shuffle(void);
-void interface_toggle_repeat(void);
-
-void register_interface_hooks(void);
 
 PluginHandle * iface_plugin_probe (void);
 PluginHandle * iface_plugin_get_current (void);
-gboolean iface_plugin_set_current (PluginHandle * plugin);
+bool_t iface_plugin_set_current (PluginHandle * plugin);
 
 #endif
-#endif
diff --git a/src/audacious/main.c b/src/audacious/main.c
index 1d0ffce..a6e102a 100644
--- a/src/audacious/main.c
+++ b/src/audacious/main.c
@@ -24,7 +24,11 @@
  */
 
 #include <errno.h>
-#include <limits.h>
+#include <fcntl.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <unistd.h>
 
 #include <gtk/gtk.h>
 
@@ -36,7 +40,7 @@
 
 #ifdef USE_DBUS
 #include "audctrl.h"
-#include "dbus-service.h"
+#include "dbus.h"
 #endif
 
 #ifdef USE_EGGSM
@@ -44,46 +48,34 @@
 #include "eggsmclient.h"
 #endif
 
-#include "audconfig.h"
-#include "configdb.h"
 #include "debug.h"
 #include "drct.h"
 #include "equalizer.h"
-#include "glib-compat.h"
 #include "i18n.h"
 #include "interface.h"
+#include "main.h"
 #include "misc.h"
 #include "playback.h"
 #include "playlist.h"
 #include "plugins.h"
 #include "util.h"
 
-/* chardet.c */
-void chardet_init (void);
-
-/* mpris-signals.c */
-void mpris_signals_init (void);
-void mpris_signals_cleanup (void);
-
-/* signals.c */
-void signals_init (void);
-
-/* smclient.c */
-void smclient_init (void);
-
 #define AUTOSAVE_INTERVAL 300 /* seconds */
 
+bool_t headless;
+
 static struct {
-    gchar **filenames;
-    gint session;
-    gboolean play, stop, pause, fwd, rew, play_pause, show_jump_box;
-    gboolean enqueue, mainwin, remote, activate;
-    gboolean enqueue_to_temp;
-    gboolean version;
-    gchar *previous_session_id;
+    char **filenames;
+    int session;
+    bool_t play, stop, pause, fwd, rew, play_pause, show_jump_box;
+    bool_t enqueue, mainwin, remote;
+    bool_t enqueue_to_temp;
+    bool_t version;
+    bool_t verbose;
+    char *previous_session_id;
 } options;
 
-static gchar * aud_paths[AUD_PATH_COUNT];
+static char * aud_paths[AUD_PATH_COUNT];
 
 static void make_dirs(void)
 {
@@ -94,16 +86,15 @@ static void make_dirs(void)
 #endif
 
     make_directory(aud_paths[AUD_PATH_USER_DIR], mode755);
-    make_directory(aud_paths[AUD_PATH_USER_PLUGIN_DIR], mode755);
     make_directory(aud_paths[AUD_PATH_PLAYLISTS_DIR], mode755);
 }
 
-static void normalize_path (gchar * path)
+static void normalize_path (char * path)
 {
 #ifdef _WIN32
     string_replace_char (path, '/', '\\');
 #endif
-    gint len = strlen (path);
+    int len = strlen (path);
 #ifdef _WIN32
     if (len > 3 && path[len - 1] == '\\') /* leave "C:\" */
 #else
@@ -112,13 +103,13 @@ static void normalize_path (gchar * path)
         path[len - 1] = 0;
 }
 
-static gchar * last_path_element (gchar * path)
+static char * last_path_element (char * path)
 {
-    gchar * slash = strrchr (path, G_DIR_SEPARATOR);
+    char * slash = strrchr (path, G_DIR_SEPARATOR);
     return (slash && slash[1]) ? slash + 1 : NULL;
 }
 
-static void strip_path_element (gchar * path, gchar * elem)
+static void strip_path_element (char * path, char * elem)
 {
 #ifdef _WIN32
     if (elem > path + 3)
@@ -130,15 +121,21 @@ static void strip_path_element (gchar * path, gchar * elem)
         elem[0] = 0; /* leave [drive letter and] leading slash */
 }
 
-static void relocate_path (gchar * * pathp, const gchar * old, const gchar * new)
+static void relocate_path (char * * pathp, const char * old, const char * new)
 {
-    gchar * path = * pathp;
-    gint len = strlen (old);
+    char * path = * pathp;
+    int oldlen = strlen (old);
+    int newlen = strlen (new);
+
+    if (oldlen && old[oldlen - 1] == G_DIR_SEPARATOR)
+        oldlen --;
+    if (newlen && new[newlen - 1] == G_DIR_SEPARATOR)
+        newlen --;
 
 #ifdef _WIN32
-    if (strncasecmp (path, old, len))
+    if (strncasecmp (path, old, oldlen) || (path[oldlen] && path[oldlen] != G_DIR_SEPARATOR))
 #else
-    if (strncmp (path, old, len))
+    if (strncmp (path, old, oldlen) || (path[oldlen] && path[oldlen] != G_DIR_SEPARATOR))
 #endif
     {
         fprintf (stderr, "Failed to relocate a data path.  Falling back to "
@@ -146,7 +143,7 @@ static void relocate_path (gchar * * pathp, const gchar * old, const gchar * new
         return;
     }
 
-    * pathp = g_strconcat (new, path + len, NULL);
+    * pathp = g_strdup_printf ("%.*s%s", newlen, new, path + oldlen);
     g_free (path);
 }
 
@@ -168,8 +165,8 @@ static void relocate_paths (void)
 
     /* Compare the compile-time path to the executable and the actual path to
      * see if we have been moved. */
-    gchar * old = g_strdup (aud_paths[AUD_PATH_BIN_DIR]);
-    gchar * new = get_path_to_self ();
+    char * old = g_strdup (aud_paths[AUD_PATH_BIN_DIR]);
+    char * new = get_path_to_self ();
     if (! new)
     {
 ERR:
@@ -180,14 +177,14 @@ ERR:
     normalize_path (new);
 
     /* Strip the name of the executable file, leaving the path. */
-    gchar * base = last_path_element (new);
+    char * base = last_path_element (new);
     if (! base)
         goto ERR;
     strip_path_element (new, base);
 
     /* Strip innermost folder names from both paths as long as they match.  This
      * leaves a compile-time prefix and a run-time one to replace it with. */
-    gchar * a, * b;
+    char * a, * b;
     while ((a = last_path_element (old)) && (b = last_path_element (new)) &&
 #ifdef _WIN32
      ! strcasecmp (a, b))
@@ -215,8 +212,8 @@ static void init_paths (void)
 {
     relocate_paths ();
 
-    const gchar * xdg_config_home = g_get_user_config_dir ();
-    const gchar * xdg_data_home = g_get_user_data_dir ();
+    const char * xdg_config_home = g_get_user_config_dir ();
+    const char * xdg_data_home = g_get_user_data_dir ();
 
 #ifdef _WIN32
     /* Some libraries (libmcs) and plugins (filewriter) use these variables,
@@ -230,14 +227,13 @@ static void init_paths (void)
     aud_paths[AUD_PATH_USER_DIR] = g_build_filename(xdg_config_home, "audacious", NULL);
     aud_paths[AUD_PATH_USER_PLUGIN_DIR] = g_build_filename(xdg_data_home, "audacious", "Plugins", NULL);
     aud_paths[AUD_PATH_PLAYLISTS_DIR] = g_build_filename(aud_paths[AUD_PATH_USER_DIR], "playlists", NULL);
-    aud_paths[AUD_PATH_PLAYLIST_FILE] = g_build_filename(aud_paths[AUD_PATH_USER_DIR], "playlist.xspf", NULL);
     aud_paths[AUD_PATH_GTKRC_FILE] = g_build_filename(aud_paths[AUD_PATH_USER_DIR], "gtkrc", NULL);
 
-    for (gint i = 0; i < AUD_PATH_COUNT; i ++)
+    for (int i = 0; i < AUD_PATH_COUNT; i ++)
         AUDDBG ("Data path: %s\n", aud_paths[i]);
 }
 
-const gchar * get_path (gint id)
+const char * get_path (int id)
 {
     g_return_val_if_fail (id >= 0 && id < AUD_PATH_COUNT, NULL);
     return aud_paths[id];
@@ -254,14 +250,14 @@ static GOptionEntry cmd_entries[] = {
     {"enqueue", 'e', 0, G_OPTION_ARG_NONE, &options.enqueue, N_("Add files to the playlist"), NULL},
     {"enqueue-to-temp", 'E', 0, G_OPTION_ARG_NONE, &options.enqueue_to_temp, N_("Add new files to a temporary playlist"), NULL},
     {"show-main-window", 'm', 0, G_OPTION_ARG_NONE, &options.mainwin, N_("Display the main window"), NULL},
-    {"activate", 'a', 0, G_OPTION_ARG_NONE, &options.activate, N_("Display all open Audacious windows"), NULL},
     {"version", 'v', 0, G_OPTION_ARG_NONE, &options.version, N_("Show version"), NULL},
-    {"verbose", 'V', 0, G_OPTION_ARG_NONE, &cfg.verbose, N_("Print debugging messages"), NULL},
+    {"verbose", 'V', 0, G_OPTION_ARG_NONE, &options.verbose, N_("Print debugging messages"), NULL},
+    {"headless", 'h', 0, G_OPTION_ARG_NONE, & headless, N_("Headless mode (beta)"), NULL},
     {G_OPTION_REMAINING, 0, 0, G_OPTION_ARG_FILENAME_ARRAY, &options.filenames, N_("FILE..."), NULL},
     {NULL},
 };
 
-static void parse_options (gint * argc, gchar *** argv)
+static void parse_options (int * argc, char *** argv)
 {
     GOptionContext *context;
     GError *error = NULL;
@@ -270,7 +266,7 @@ static void parse_options (gint * argc, gchar *** argv)
     options.session = -1;
 
     context = g_option_context_new(_("- play multimedia files"));
-    g_option_context_add_main_entries(context, cmd_entries, PACKAGE_NAME);
+    g_option_context_add_main_entries(context, cmd_entries, PACKAGE);
     g_option_context_add_group(context, gtk_get_option_group(FALSE));
 #ifdef USE_EGGSM
     g_option_context_add_group(context, egg_sm_client_get_option_group());
@@ -285,65 +281,72 @@ static void parse_options (gint * argc, gchar *** argv)
     }
 
     g_option_context_free (context);
+
+    verbose = options.verbose;
 }
 
-static gboolean get_lock (void)
+static bool_t get_lock (void)
 {
-    gchar path[PATH_MAX];
-    snprintf (path, sizeof path, "%s" G_DIR_SEPARATOR_S "lock",
-     aud_paths[AUD_PATH_USER_DIR]);
-
+    char * path = g_strdup_printf ("%s" G_DIR_SEPARATOR_S "lock", aud_paths[AUD_PATH_USER_DIR]);
     int handle = open (path, O_RDWR | O_CREAT | O_EXCL, S_IRUSR | S_IWUSR);
 
     if (handle < 0)
     {
         if (errno != EEXIST)
             fprintf (stderr, "Cannot create %s: %s.\n", path, strerror (errno));
+
+        g_free (path);
         return FALSE;
     }
 
     close (handle);
+    g_free (path);
     return TRUE;
 }
 
 static void release_lock (void)
 {
-    gchar path[PATH_MAX];
-    snprintf (path, sizeof path, "%s" G_DIR_SEPARATOR_S "lock",
-     aud_paths[AUD_PATH_USER_DIR]);
-
+    char * path = g_strdup_printf ("%s" G_DIR_SEPARATOR_S "lock", aud_paths[AUD_PATH_USER_DIR]);
     unlink (path);
+    g_free (path);
 }
 
-static GList * convert_filenames (void)
+static Index * convert_filenames (void)
 {
     if (! options.filenames)
         return NULL;
 
-    gchar * * f = options.filenames;
-    GList * list = NULL;
-    gchar * cur = g_get_current_dir ();
+    Index * filenames = index_new ();
+    char * * f = options.filenames;
+    char * cur = g_get_current_dir ();
 
-    for (gint i = 0; f[i]; i ++)
+    for (int i = 0; f[i]; i ++)
     {
-        gchar * uri;
+        char * uri = NULL;
 
         if (strstr (f[i], "://"))
-            uri = g_strdup (f[i]);
+            uri = str_get (f[i]);
         else if (g_path_is_absolute (f[i]))
-            uri = filename_to_uri (f[i]);
+        {
+            char * tmp = filename_to_uri (f[i]);
+            uri = str_get (tmp);
+            free (tmp);
+        }
         else
         {
-            gchar * tmp = g_build_filename (cur, f[i], NULL);
-            uri = filename_to_uri (tmp);
-            g_free (tmp);
+            char * tmp = g_build_filename (cur, f[i], NULL);
+            char * tmp2 = filename_to_uri (tmp);
+            uri = str_get (tmp2);
+            free (tmp);
+            free (tmp2);
         }
 
-        list = g_list_prepend (list, uri);
+        if (uri)
+            index_append (filenames, uri);
     }
 
     g_free (cur);
-    return g_list_reverse (list);
+    return filenames;
 }
 
 static void do_remote (void)
@@ -353,10 +356,21 @@ static void do_remote (void)
 
     if (session && audacious_remote_is_running (session))
     {
-        GList * list = convert_filenames ();
+        Index * filenames = convert_filenames ();
 
-        if (list)
+        /* if no command line options, then present running instance */
+        if (! (filenames || options.play || options.pause || options.play_pause ||
+         options.stop || options.rew || options.fwd || options.show_jump_box ||
+         options.mainwin))
+            options.mainwin = TRUE;
+
+        if (filenames)
         {
+            GList * list = NULL;
+
+            for (int f = index_count (filenames); f --; )
+                list = g_list_prepend (list, index_get (filenames, f));
+
             if (options.enqueue_to_temp)
                 audacious_remote_playlist_open_list_to_temp (session, list);
             else if (options.enqueue)
@@ -364,8 +378,12 @@ static void do_remote (void)
             else
                 audacious_remote_playlist_open_list (session, list);
 
-            g_list_foreach (list, (GFunc) g_free, NULL);
             g_list_free (list);
+
+            for (int f = 0; f < index_count (filenames); f ++)
+                str_unref (index_get (filenames, f));
+
+            index_free (filenames);
         }
 
         if (options.play)
@@ -382,8 +400,6 @@ static void do_remote (void)
             audacious_remote_playlist_next (session);
         if (options.show_jump_box)
             audacious_remote_show_jtf_box (session);
-        if (options.activate)
-            audacious_remote_activate (session);
         if (options.mainwin)
             audacious_remote_main_win_toggle (session, TRUE);
 
@@ -391,49 +407,32 @@ static void do_remote (void)
     }
 #endif
 
-    GtkWidget * dialog = gtk_message_dialog_new (NULL, 0, GTK_MESSAGE_WARNING,
-     GTK_BUTTONS_OK_CANCEL, _("Audacious seems to be already running but is "
-     "not responding.  You can start another instance of the program, but "
-     "please be warned that this can cause data loss.  If Audacious is not "
-     "running, you can safely ignore this message.  Press OK to start "
-     "Audacious or Cancel to quit."));
-
-    g_signal_connect (dialog, "destroy", (GCallback) gtk_widget_destroyed,
-     & dialog);
-
-    if (gtk_dialog_run ((GtkDialog *) dialog) != GTK_RESPONSE_OK)
-        exit (EXIT_FAILURE);
-
-    if (dialog)
-        gtk_widget_destroy (dialog);
+    fprintf (stderr, "WARNING: Audacious seems to be already running but is not responding.\n");
 }
 
 static void do_commands (void)
 {
-    GList * list = convert_filenames ();
+    bool_t resume = get_bool (NULL, "resume_playback_on_startup");
 
-    if (list)
+    Index * filenames = convert_filenames ();
+    if (filenames)
     {
         if (options.enqueue_to_temp)
         {
-            drct_pl_open_temp_list (list);
-            cfg.resume_state = 0;
+            drct_pl_open_temp_list (filenames);
+            resume = FALSE;
         }
         else if (options.enqueue)
-            drct_pl_add_list (list, -1);
+            drct_pl_add_list (filenames, -1);
         else
         {
-            drct_pl_open_list (list);
-            cfg.resume_state = 0;
+            drct_pl_open_list (filenames);
+            resume = FALSE;
         }
-
-        g_list_foreach (list, (GFunc) g_free, NULL);
-        g_list_free (list);
     }
 
-    if (cfg.resume_playback_on_startup && cfg.resume_state > 0)
-        playback_play (cfg.resume_playback_on_startup_time, cfg.resume_state ==
-         2);
+    if (resume)
+        playlist_resume ();
 
     if (options.play || options.play_pause)
     {
@@ -446,29 +445,19 @@ static void do_commands (void)
     if (options.show_jump_box)
         interface_show_jump_to_track ();
     if (options.mainwin)
-        interface_toggle_visibility ();
+        interface_show (TRUE);
 }
 
-static void init_one (gint * p_argc, gchar * * * p_argv)
+static void init_one (void)
 {
     init_paths ();
     make_dirs ();
 
-    bindtextdomain (PACKAGE_NAME, aud_paths[AUD_PATH_LOCALE_DIR]);
-    bind_textdomain_codeset (PACKAGE_NAME, "UTF-8");
-    bindtextdomain (PACKAGE_NAME "-plugins", aud_paths[AUD_PATH_LOCALE_DIR]);
-    bind_textdomain_codeset (PACKAGE_NAME "-plugins", "UTF-8");
-    textdomain (PACKAGE_NAME);
-
-    mowgli_init ();
-    chardet_init ();
-
-    g_thread_init (NULL);
-    gdk_threads_init ();
-    gdk_threads_enter ();
-
-    gtk_rc_add_default_file (aud_paths[AUD_PATH_GTKRC_FILE]);
-    gtk_init (p_argc, p_argv);
+    bindtextdomain (PACKAGE, aud_paths[AUD_PATH_LOCALE_DIR]);
+    bind_textdomain_codeset (PACKAGE, "UTF-8");
+    bindtextdomain (PACKAGE "-plugins", aud_paths[AUD_PATH_LOCALE_DIR]);
+    bind_textdomain_codeset (PACKAGE "-plugins", "UTF-8");
+    textdomain (PACKAGE);
 
 #ifdef USE_EGGSM
     egg_sm_client_set_mode (EGG_SM_CLIENT_MODE_NORMAL);
@@ -476,17 +465,25 @@ static void init_one (gint * p_argc, gchar * * * p_argv)
 #endif
 }
 
-static void init_two (void)
+static void init_two (int * p_argc, char * * * p_argv)
 {
-    hook_init ();
-    tag_init ();
+    if (! headless)
+    {
+        g_thread_init (NULL);
+        gdk_threads_init ();
+        gdk_threads_enter ();
 
-    aud_config_load ();
-    tag_set_verbose (cfg.verbose);
-    vfs_set_verbose (cfg.verbose);
+        gtk_rc_add_default_file (aud_paths[AUD_PATH_GTKRC_FILE]);
+        gtk_init (p_argc, p_argv);
+    }
+
+    config_load ();
+    chardet_init ();
+
+    tag_set_verbose (verbose);
+    vfs_set_verbose (verbose);
 
     eq_init ();
-    register_interface_hooks ();
 
 #ifdef HAVE_SIGWAIT
     signals_init ();
@@ -499,6 +496,8 @@ static void init_two (void)
     start_plugins_one ();
 
     playlist_init ();
+    adder_init ();
+    art_init ();
     load_playlists ();
 
 #ifdef USE_DBUS
@@ -518,39 +517,55 @@ static void shut_down (void)
     mpris_signals_cleanup ();
 
     AUDDBG ("Capturing state.\n");
-    aud_config_save ();
-    save_playlists ();
+    hook_call ("config save", NULL);
+    save_playlists (TRUE);
 
     AUDDBG ("Unloading highlevel plugins.\n");
     stop_plugins_two ();
 
     AUDDBG ("Stopping playback.\n");
     if (playback_get_playing ())
+    {
+        bool_t stop_after_song = get_bool (NULL, "stop_after_current_song");
         playback_stop ();
+        set_bool (NULL, "stop_after_current_song", stop_after_song);
+    }
+
+#ifdef USE_DBUS
+    cleanup_dbus ();
+#endif
 
+    adder_cleanup ();
+    art_cleanup ();
+    history_cleanup ();
     playlist_end ();
 
     AUDDBG ("Unloading lowlevel plugins.\n");
     stop_plugins_one ();
 
     AUDDBG ("Saving configuration.\n");
-    cfg_db_flush ();
+    config_save ();
+    config_cleanup ();
+
+    eq_cleanup ();
+
+    strpool_shutdown ();
 
     gdk_threads_leave ();
 }
 
-static gboolean autosave_cb (void * unused)
+bool_t do_autosave (void)
 {
     AUDDBG ("Saving configuration.\n");
-    aud_config_save ();
-    cfg_db_flush ();
-    save_playlists ();
+    hook_call ("config save", NULL);
+    save_playlists (FALSE);
+    config_save ();
     return TRUE;
 }
 
-gint main(gint argc, gchar ** argv)
+int main(int argc, char ** argv)
 {
-    init_one (& argc, & argv);
+    init_one ();
     parse_options (& argc, & argv);
 
     if (options.version)
@@ -563,13 +578,14 @@ gint main(gint argc, gchar ** argv)
         do_remote (); /* may exit */
 
     AUDDBG ("No remote session; starting up.\n");
-    init_two ();
+    init_two (& argc, & argv);
 
     AUDDBG ("Startup complete.\n");
-    g_timeout_add_seconds (AUTOSAVE_INTERVAL, autosave_cb, NULL);
-    hook_associate ("quit", (HookFunction) gtk_main_quit, NULL);
+    g_timeout_add_seconds (AUTOSAVE_INTERVAL, (GSourceFunc) do_autosave, NULL);
 
+    hook_associate ("quit", (HookFunction) gtk_main_quit, NULL);
     gtk_main ();
+    hook_dissociate ("quit", (HookFunction) gtk_main_quit);
 
     shut_down ();
     release_lock ();
diff --git a/src/audacious/general.h b/src/audacious/main.h
similarity index 50%
copy from src/audacious/general.h
copy to src/audacious/main.h
index b96dbff..3b85f08 100644
--- a/src/audacious/general.h
+++ b/src/audacious/main.h
@@ -1,5 +1,5 @@
 /*
- * general.h
+ * main.h
  * Copyright 2011 John Lindgren
  *
  * This file is part of Audacious.
@@ -19,19 +19,47 @@
  * using our public API to be a derived work.
  */
 
-#ifndef AUDACIOUS_GENERAL_H
-#define AUDACIOUS_GENERAL_H
+/* Header for all those files that have just one or two public identifiers. */
 
-#include <glib.h>
+#ifndef _AUDACIOUS_MAIN_H
+#define _AUDACIOUS_MAIN_H
 
-#include "plugins.h"
+#include <libaudcore/core.h>
 
-void general_init (void);
-void general_cleanup (void);
+/* adder.c */
+void adder_init (void);
+void adder_cleanup (void);
 
-gboolean general_plugin_start (PluginHandle * plugin);
-void general_plugin_stop (PluginHandle * plugin);
+/* art.c */
+void art_init (void);
+void art_cleanup (void);
 
-PluginHandle * general_plugin_by_widget (/* GtkWidget * */ void * widget);
+/* chardet.c */
+void chardet_init (void);
+
+/* config.c */
+void config_load (void);
+void config_save (void);
+void config_cleanup (void);
+
+/* history.c */
+void history_cleanup (void);
+
+/* main.c */
+extern bool_t headless;
+bool_t do_autosave (void);
+
+/* mpris-signals.c */
+void mpris_signals_init (void);
+void mpris_signals_cleanup (void);
+
+/* signals.c */
+void signals_init (void);
+
+/* smclient.c */
+void smclient_init (void);
+
+/* ui_albumart.c */
+char * get_associated_image_file (const char * filename);
 
 #endif
diff --git a/src/audacious/misc-api.h b/src/audacious/misc-api.h
index 7dd2a3e..bd24303 100644
--- a/src/audacious/misc-api.h
+++ b/src/audacious/misc-api.h
@@ -1,6 +1,6 @@
 /*
  * misc-api.h
- * Copyright 2010 John Lindgren
+ * Copyright 2010-2011 John Lindgren
  *
  * This file is part of Audacious.
  *
@@ -23,75 +23,108 @@
 
 /* CAUTION: Many of these functions are not thread safe. */
 
+/* art.c */
+
+/* Fetches album art for <file> (the URI of a song file) as JPEG or PNG data.
+ * The data may be embedded in the song file, or it may be loaded from a
+ * separate file.  When the data is no longer needed, art_unref() should be
+ * called.  If an error occurs, <data> is set to NULL and art_unref() need not
+ * be called. */
+AUD_VFUNC3 (art_get_data, const char *, file, const void * *, data, int64_t *, len)
+
+/* Returns the URI of an image file containing album art for <file>.  If the
+ * song file contains embedded album art, the data is saved to a temporary file
+ * and the URI of the temporary file is returned.  When the image file is no
+ * longer needed, art_unref() should be called.  If a temporary file was
+ * created, art_unref() deletes it.  If an error occurs, returns NULL and
+ * art_unref() need not be called. */
+AUD_FUNC1 (const char *, art_get_file, const char *, file)
+
+/* Signals that the data or file returned by art_get_data() or art_get_file() is
+ * no longer needed.  <file> must be the same URI passed to art_get_data() or
+ * art_get_file(). */
+AUD_VFUNC1 (art_unref, const char *, file)
+
+/* config.c */
+
+AUD_VFUNC1 (config_clear_section, const char *, section)
+AUD_VFUNC2 (config_set_defaults, const char *, section, const char * const *, entries)
+
+AUD_VFUNC3 (set_string, const char *, section, const char *, name, const char *, value)
+AUD_FUNC2 (char *, get_string, const char *, section, const char *, name)
+AUD_VFUNC3 (set_bool, const char *, section, const char *, name, bool_t, value)
+AUD_FUNC2 (bool_t, get_bool, const char *, section, const char *, name)
+AUD_VFUNC3 (set_int, const char *, section, const char *, name, int, value)
+AUD_FUNC2 (int, get_int, const char *, section, const char *, name)
+AUD_VFUNC3 (set_double, const char *, section, const char *, name, double, value)
+AUD_FUNC2 (double, get_double, const char *, section, const char *, name)
+
 /* credits.c */
-AUD_FUNC3 (void, get_audacious_credits, const gchar * *, brief,
- const gchar * * *, credits, const gchar * * *, translators)
+AUD_VFUNC3 (get_audacious_credits, const char * *, brief,
+ const char * const * *, credits, const char * const * *, translators)
+
+/* equalizer.c */
+AUD_VFUNC1 (eq_set_bands, const double *, values)
+AUD_VFUNC1 (eq_get_bands, double *, values)
+AUD_VFUNC2 (eq_set_band, int, band, double, value)
+AUD_FUNC1 (double, eq_get_band, int, band)
 
 /* equalizer_preset.c */
-AUD_FUNC1 (GList *, equalizer_read_presets, const gchar *, basename)
-AUD_FUNC2 (gboolean, equalizer_write_preset_file, GList *, list, const gchar *,
- basename)
-AUD_FUNC1 (EqualizerPreset *, load_preset_file, const gchar *, filename)
-AUD_FUNC2 (gboolean, save_preset_file, EqualizerPreset *, preset, const gchar *,
- filename)
-AUD_FUNC1 (GList *, import_winamp_eqf, VFSFile *, file)
+AUD_FUNC1 (Index *, equalizer_read_presets, const char *, basename)
+AUD_FUNC2 (bool_t, equalizer_write_preset_file, Index *, list, const char *, basename)
+AUD_FUNC1 (EqualizerPreset *, load_preset_file, const char *, filename)
+AUD_FUNC2 (bool_t, save_preset_file, EqualizerPreset *, preset, const char *, filename)
+AUD_FUNC1 (Index *, import_winamp_eqf, VFSFile *, file)
 
-/* main.c */
-AUD_FUNC1 (const gchar *, get_path, gint, path)
+/* history.c */
+AUD_FUNC1 (const char *, history_get, int, entry)
+AUD_VFUNC1 (history_add, const char *, path)
+
+/* interface.c */
+AUD_VFUNC1 (interface_show, bool_t, show)
+AUD_FUNC0 (bool_t, interface_is_shown)
+AUD_FUNC0 (bool_t, interface_is_focused)
 
-/* playlist-utils.c */
-AUD_FUNC0 (const gchar *, get_gentitle_format)
-AUD_FUNC0 (void, save_playlists)
+/* interface_show_error() is safe to call from any thread */
+AUD_VFUNC1 (interface_show_error, const char *, message)
 
-/* plugin-registry.c */
-AUD_FUNC2 (void, uri_set_plugin, const gchar *, scheme, InputPlugin *, ip)
-AUD_FUNC2 (void, mime_set_plugin, const gchar *, mimetype, InputPlugin *, ip)
+AUD_VFUNC1 (interface_show_filebrowser, bool_t, play)
+AUD_VFUNC0 (interface_show_jump_to_track)
+
+AUD_VFUNC1 (interface_install_toolbar, void *, button)
+AUD_VFUNC1 (interface_uninstall_toolbar, void *, button)
+
+/* main.c */
+AUD_FUNC1 (const char *, get_path, int, path)
 
 /* probe.c */
-AUD_FUNC2 (PluginHandle *, file_find_decoder, const gchar *, filename, gboolean,
+AUD_FUNC2 (PluginHandle *, file_find_decoder, const char *, filename, bool_t,
  fast)
-AUD_FUNC2 (Tuple *, file_read_tuple, const gchar *, filename, PluginHandle *,
+AUD_FUNC2 (Tuple *, file_read_tuple, const char *, filename, PluginHandle *,
  decoder)
-AUD_FUNC4 (gboolean, file_read_image, const gchar *, filename, PluginHandle *,
- decoder, void * *, data, gint *, size)
-AUD_FUNC2 (gboolean, file_can_write_tuple, const gchar *, filename,
+AUD_FUNC4 (bool_t, file_read_image, const char *, filename, PluginHandle *,
+ decoder, void * *, data, int64_t *, size)
+AUD_FUNC2 (bool_t, file_can_write_tuple, const char *, filename,
  PluginHandle *, decoder)
-AUD_FUNC3 (gboolean, file_write_tuple, const gchar *, filename, PluginHandle *,
+AUD_FUNC3 (bool_t, file_write_tuple, const char *, filename, PluginHandle *,
  decoder, const Tuple *, tuple)
-AUD_FUNC2 (gboolean, custom_infowin, const gchar *, filename, PluginHandle *,
+AUD_FUNC2 (bool_t, custom_infowin, const char *, filename, PluginHandle *,
  decoder)
 
-/* ui_albumart.c */
-AUD_FUNC1 (gchar *, get_associated_image_file, const gchar *, filename)
-
 /* ui_plugin_menu.c */
-AUD_FUNC1 (/* GtkWidget * */ void *, get_plugin_menu, gint, id)
-AUD_FUNC2 (gint, menu_plugin_item_add, gint, menu, /* GtkWidget * */ void *,
- item)
-AUD_FUNC2 (gint, menu_plugin_item_remove, gint, menu, /* GtkWidget * */ void *,
- item)
+AUD_FUNC1 (/* GtkWidget * */ void *, get_plugin_menu, int, id)
+AUD_VFUNC4 (plugin_menu_add, int, id, MenuFunc, func, const char *, name,
+ const char *, icon)
+AUD_VFUNC2 (plugin_menu_remove, int, id, MenuFunc, func)
 
 /* ui_preferences.c */
-AUD_FUNC4 (void, create_widgets_with_domain, /* GtkWidget * */ void *, box,
- PreferencesWidget *, widgets, gint, count, const gchar *, domain)
+AUD_VFUNC4 (create_widgets_with_domain, /* GtkWidget * */ void *, box,
+ PreferencesWidget *, widgets, int, count, const char *, domain)
+AUD_VFUNC0 (show_prefs_window)
 
 /* util.c */
-AUD_FUNC0 (gchar *, util_get_localdir)
-AUD_FUNC1 (void, util_add_url_history_entry, const gchar *, url)
-AUD_FUNC2 (gchar *, construct_uri, const gchar *, base, const gchar *, reference)
-
-/* vis_runner.c */
-AUD_FUNC2 (void, vis_runner_add_hook, VisHookFunc, func, void *, user)
-AUD_FUNC1 (void, vis_runner_remove_hook, VisHookFunc, func)
+AUD_FUNC2 (char *, construct_uri, const char *, base, const char *, reference)
 
 /* visualization.c */
-AUD_FUNC3 (void, calc_mono_freq, VisFreqData, buffer, const VisPCMData, data,
- gint, channels)
-AUD_FUNC3 (void, calc_mono_pcm, VisPCMData, buffer, const VisPCMData, data,
- gint, channels)
-AUD_FUNC3 (void, calc_stereo_pcm, VisPCMData, buffer, const VisPCMData, data,
- gint, channels)
-
-/* New in 2.5-alpha2 */
-AUD_FUNC1 (void, interface_install_toolbar, void *, button)
-AUD_FUNC1 (void, interface_uninstall_toolbar, void *, button)
+AUD_VFUNC2 (vis_func_add, int, type, VisFunc, func)
+AUD_VFUNC1 (vis_func_remove, VisFunc, func)
diff --git a/src/audacious/misc.h b/src/audacious/misc.h
index 386f974..090b607 100644
--- a/src/audacious/misc.h
+++ b/src/audacious/misc.h
@@ -1,6 +1,6 @@
 /*
  * misc.h
- * Copyright 2010 John Lindgren
+ * Copyright 2010-2011 John Lindgren
  *
  * This file is part of Audacious.
  *
@@ -22,21 +22,11 @@
 #ifndef AUDACIOUS_MISC_H
 #define AUDACIOUS_MISC_H
 
-#include <glib.h>
 #include <audacious/api.h>
 #include <audacious/types.h>
-#include <libaudcore/vfs.h>
+#include <libaudcore/index.h>
 #include <libaudcore/tuple.h>
-
-enum {
- AUDACIOUS_MENU_MAIN,
- AUDACIOUS_MENU_PLAYLIST,
- AUDACIOUS_MENU_PLAYLIST_RCLICK,
- AUDACIOUS_MENU_PLAYLIST_ADD,
- AUDACIOUS_MENU_PLAYLIST_REMOVE,
- AUDACIOUS_MENU_PLAYLIST_SELECT,
- AUDACIOUS_MENU_PLAYLIST_MISC,
- TOTAL_PLUGIN_MENUS};
+#include <libaudcore/vfs.h>
 
 enum {
  AUD_PATH_BIN_DIR,
@@ -48,26 +38,36 @@ enum {
  AUD_PATH_USER_DIR,
  AUD_PATH_USER_PLUGIN_DIR,
  AUD_PATH_PLAYLISTS_DIR,
- AUD_PATH_PLAYLIST_FILE,
  AUD_PATH_GTKRC_FILE,
  AUD_PATH_COUNT
 };
 
 typedef struct {
-    gchar * name;
-    gfloat preamp, bands[10];
+    char * name;
+    float preamp, bands[10];
 } EqualizerPreset;
 
-typedef gint16 VisFreqData[2][256];
-typedef gint16 VisPCMData[2][512];
+enum {
+ AUD_MENU_MAIN,
+ AUD_MENU_PLAYLIST,
+ AUD_MENU_PLAYLIST_RCLICK,
+ AUD_MENU_PLAYLIST_ADD,
+ AUD_MENU_PLAYLIST_REMOVE,
+ AUD_MENU_PLAYLIST_SELECT,
+ AUD_MENU_PLAYLIST_MISC,
+ AUD_MENU_COUNT};
 
-typedef struct {
-    gint time, nch;
-    gint length; /* obsolete, always 512 */
-    VisPCMData data;
-} VisNode;
+typedef void (* MenuFunc) (void);
 
-typedef void (* VisHookFunc) (const VisNode * node, void * user);
+enum {
+ AUD_VIS_TYPE_CLEAR,        /* like VisPlugin::clear() */
+ AUD_VIS_TYPE_MONO_PCM,     /* like VisPlugin::render_mono_pcm() */
+ AUD_VIS_TYPE_MULTI_PCM,    /* like VisPlugin::render_multi_pcm() */
+ AUD_VIS_TYPE_FREQ,         /* like VisPlugin::render_freq() */
+ AUD_VIS_TYPES};
+
+/* generic type; does not correspond to actual function types */
+typedef void (* VisFunc) (void);
 
 #define AUD_API_NAME MiscAPI
 #define AUD_API_SYMBOL misc_api
diff --git a/src/audacious/mpris-signals.c b/src/audacious/mpris-signals.c
index 51dda6b..e7f61fb 100644
--- a/src/audacious/mpris-signals.c
+++ b/src/audacious/mpris-signals.c
@@ -26,46 +26,43 @@
 #ifdef USE_DBUS
 
 #include "dbus-service.h"
+#include "main.h"
 
-static void mpris_status_cb1 (void * hook_data, void * user_data)
+static void mpris_status_cb (void * hook_data, void * user_data)
 {
     mpris_emit_status_change (mpris, GPOINTER_TO_INT (user_data));
 }
-
-static void mpris_status_cb2 (void * hook_data, void * user_data)
-{
-    mpris_emit_status_change (mpris, -1);
-}
 #endif
 
 void mpris_signals_init (void)
 {
 #ifdef USE_DBUS
-    hook_associate ("playback begin", mpris_status_cb1, GINT_TO_POINTER
+    hook_associate ("playback begin", mpris_status_cb, GINT_TO_POINTER
      (MPRIS_STATUS_PLAY));
-    hook_associate ("playback pause", mpris_status_cb1, GINT_TO_POINTER
+    hook_associate ("playback pause", mpris_status_cb, GINT_TO_POINTER
      (MPRIS_STATUS_PAUSE));
-    hook_associate ("playback unpause", mpris_status_cb1, GINT_TO_POINTER
+    hook_associate ("playback unpause", mpris_status_cb, GINT_TO_POINTER
      (MPRIS_STATUS_PLAY));
-    hook_associate ("playback stop", mpris_status_cb1, GINT_TO_POINTER
+    hook_associate ("playback stop", mpris_status_cb, GINT_TO_POINTER
      (MPRIS_STATUS_STOP));
 
-    hook_associate ("toggle shuffle", mpris_status_cb2, NULL);
-    hook_associate ("toggle repeat", mpris_status_cb2, NULL);
-/*    hook_associate ("toggle no playlist advance", mpris_status_cb2, NULL); */
+    hook_associate ("set shuffle", mpris_status_cb, GINT_TO_POINTER (MPRIS_STATUS_INVALID));
+    hook_associate ("set repeat", mpris_status_cb, GINT_TO_POINTER (MPRIS_STATUS_INVALID));
+    hook_associate ("set no_playlist_advance", mpris_status_cb, GINT_TO_POINTER
+     (MPRIS_STATUS_INVALID));
 #endif
 }
 
 void mpris_signals_cleanup (void)
 {
 #ifdef USE_DBUS
-    hook_dissociate ("playback begin", mpris_status_cb1);
-    hook_dissociate ("playback pause", mpris_status_cb1);
-    hook_dissociate ("playback unpause", mpris_status_cb1);
-    hook_dissociate ("playback stop", mpris_status_cb1);
+    hook_dissociate ("playback begin", mpris_status_cb);
+    hook_dissociate ("playback pause", mpris_status_cb);
+    hook_dissociate ("playback unpause", mpris_status_cb);
+    hook_dissociate ("playback stop", mpris_status_cb);
 
-    hook_dissociate ("toggle shuffle", mpris_status_cb2, NULL);
-    hook_dissociate ("toggle repeat", mpris_status_cb2, NULL);
-/*    hook_dissociate ("toggle no playlist advance", mpris_status_cb2, NULL); */
+    hook_dissociate ("set shuffle", mpris_status_cb);
+    hook_dissociate ("set repeat", mpris_status_cb);
+    hook_dissociate ("set no_playlist_advance", mpris_status_cb);
 #endif
 }
diff --git a/src/audacious/objects.xml b/src/audacious/objects.xml
index 527171e..1c62c75 100644
--- a/src/audacious/objects.xml
+++ b/src/audacious/objects.xml
@@ -120,28 +120,6 @@
             <arg type="b" name="show"/>
         </method>
 
-        <!-- Equalizer visibility -->
-        <method name="EqualizerVisible">
-            <arg type="b" direction="out" name="is_eq_win"/>
-        </method>
-
-        <!-- Toggle equalizer visibility -->
-        <method name="ShowEqualizer">
-            <annotation name="org.freedesktop.DBus.GLib.NoReply" value=""/>
-            <arg type="b" name="show"/>
-        </method>
-
-        <!-- Playlist visibility -->
-        <method name="PlaylistVisible">
-            <arg type="b" direction="out" name="is_pl_win"/>
-        </method>
-
-        <!-- Toggle playlist visibility -->
-        <method name="ShowPlaylist">
-            <annotation name="org.freedesktop.DBus.GLib.NoReply" value=""/>
-            <arg type="b" name="show"/>
-        </method>
-
         <!-- Get names of available 'standard' tuple fields -->
         <method name="GetTupleFields">
             <!-- Return array of tuple field names -->
@@ -324,7 +302,7 @@
             <!-- URL to add -->
             <arg type="s" name="url"/>
         </method>
-        
+
         <!-- Add a list of files -->
         <method name="AddList">
             <annotation name="org.freedesktop.DBus.GLib.NoReply" value=""/>
@@ -388,6 +366,16 @@
             <annotation name="org.freedesktop.DBus.GLib.NoReply" value=""/>
         </method>
 
+        <!-- Query stop-after-song status -->
+        <method name="StopAfter">
+            <arg type="b" direction="out" name="is_stopping"/>
+        </method>
+
+        <!-- Toggle stop-after-song -->
+        <method name="ToggleStopAfter">
+            <annotation name="org.freedesktop.DBus.GLib.NoReply" value=""/>
+        </method>
+
         <!-- Show preferences window -->
         <method name="ShowPrefsBox">
             <annotation name="org.freedesktop.DBus.GLib.NoReply" value=""/>
@@ -417,11 +405,6 @@
             <annotation name="org.freedesktop.DBus.GLib.NoReply" value=""/>
         </method>
 
-        <!-- Activate -->
-        <method name="Activate">
-            <annotation name="org.freedesktop.DBus.GLib.NoReply" value=""/>
-        </method>
-
         <!-- Playqueue get playlist pos -->
         <method name="QueueGetListPos">
             <arg type="u" name="qpos"/>
diff --git a/src/audacious/output.c b/src/audacious/output.c
index a38eae3..eeee3f5 100644
--- a/src/audacious/output.c
+++ b/src/audacious/output.c
@@ -19,13 +19,15 @@
  * using our public API to be a derived work.
  */
 
+#include <glib.h>
 #include <math.h>
-#include <libaudcore/audio.h>
+#include <pthread.h>
+#include <string.h>
 
-#include "audconfig.h"
 #include "debug.h"
 #include "effect.h"
 #include "equalizer.h"
+#include "misc.h"
 #include "output.h"
 #include "playback.h"
 #include "plugins.h"
@@ -35,12 +37,12 @@
 
 static OutputPlugin * cop = NULL;
 
-void output_get_volume (gint * l, gint * r)
+void output_get_volume (int * l, int * r)
 {
-    if (cfg.software_volume_control)
+    if (get_bool (NULL, "software_volume_control"))
     {
-        * l = cfg.sw_volume_left;
-        * r = cfg.sw_volume_right;
+        * l = get_int (NULL, "sw_volume_left");
+        * r = get_int (NULL, "sw_volume_right");
     }
     else if (cop != NULL && cop->get_volume != NULL)
         cop->get_volume (l, r);
@@ -51,22 +53,22 @@ void output_get_volume (gint * l, gint * r)
     }
 }
 
-void output_set_volume (gint l, gint r)
+void output_set_volume (int l, int r)
 {
-    if (cfg.software_volume_control)
+    if (get_bool (NULL, "software_volume_control"))
     {
-        cfg.sw_volume_left = l;
-        cfg.sw_volume_right = r;
+        set_int (NULL, "sw_volume_left", l);
+        set_int (NULL, "sw_volume_right", r);
     }
     else if (cop != NULL && cop->set_volume != NULL)
         cop->set_volume (l, r);
 }
 
-static GStaticMutex mutex = G_STATIC_MUTEX_INIT;
-static gboolean locked = FALSE;
+static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
+static bool_t locked = FALSE;
 
-#define LOCK do {g_static_mutex_lock (& mutex); locked = TRUE;} while (0)
-#define UNLOCK do {locked = FALSE; g_static_mutex_unlock (& mutex);} while (0)
+#define LOCK do {pthread_mutex_lock (& mutex); locked = TRUE;} while (0)
+#define UNLOCK do {locked = FALSE; pthread_mutex_unlock (& mutex);} while (0)
 #define LOCKED g_return_if_fail (locked)
 #define LOCKED_RET(a) g_return_val_if_fail (locked, a)
 #define LOCK_VIS do {vis_runner_lock (); LOCK;} while (0)
@@ -74,14 +76,14 @@ static gboolean locked = FALSE;
 #define LOCKED_VIS g_return_if_fail (locked && vis_runner_locked ())
 #define LOCKED_VIS_RET(a) g_return_val_if_fail (locked && vis_runner_locked (), a)
 
-static gboolean opened = FALSE;
-static gboolean leave_open = FALSE;
+static bool_t opened = FALSE;
+static bool_t leave_open = FALSE;
 
-static gboolean waiting, aborted, paused;
-static gint decoder_format, decoder_channels, decoder_rate, effect_channels,
+static bool_t waiting, aborted, paused;
+static int decoder_format, decoder_channels, decoder_rate, effect_channels,
  effect_rate, output_format, output_channels, output_rate;
-static gint64 frames_written;
-static gboolean have_replay_gain;
+static int64_t frames_written;
+static bool_t have_replay_gain;
 static ReplayGainInfo replay_gain_info;
 
 static void reset_time (void)
@@ -108,7 +110,7 @@ static void real_close (void)
     leave_open = FALSE;
 }
 
-static gboolean open_audio (gint format, gint rate, gint channels)
+static bool_t open_audio (int format, int rate, int channels)
 {
     LOCKED_VIS_RET (FALSE);
     g_return_val_if_fail (! opened, FALSE);
@@ -135,9 +137,9 @@ static gboolean open_audio (gint format, gint rate, gint channels)
             real_close ();
         }
 
-        output_format = cfg.output_bit_depth == 32 ? FMT_S32_NE :
-         cfg.output_bit_depth == 24 ? FMT_S24_NE : cfg.output_bit_depth == 16 ?
-         FMT_S16_NE : FMT_FLOAT;
+        int depth = get_int (NULL, "output_bit_depth");
+        output_format = (depth == 32) ? FMT_S32_NE : (depth == 24) ? FMT_S24_NE
+         : (depth == 16) ? FMT_S16_NE : FMT_FLOAT;
         output_channels = effect_channels;
         output_rate = effect_rate;
 
@@ -158,11 +160,11 @@ static gboolean open_audio (gint format, gint rate, gint channels)
     return opened;
 }
 
-static gboolean output_open_audio (gint format, gint rate, gint channels)
+static bool_t output_open_audio (int format, int rate, int channels)
 {
     g_return_val_if_fail (cop != NULL, FALSE);
     LOCK_VIS;
-    gboolean success = open_audio (format, rate, channels);
+    bool_t success = open_audio (format, rate, channels);
     UNLOCK_VIS;
     return success;
 }
@@ -190,20 +192,20 @@ static void output_set_replaygain_info (ReplayGainInfo * info)
     UNLOCK;
 }
 
-static void apply_replay_gain (gfloat * data, gint samples)
+static void apply_replay_gain (float * data, int samples)
 {
-    gfloat factor = powf (10, (gfloat) cfg.replay_gain_preamp / 20);
-
-    if (! cfg.enable_replay_gain)
+    if (! get_bool (NULL, "enable_replay_gain"))
         return;
 
+    float factor = powf (10, get_double (NULL, "replay_gain_preamp") / 20);
+
     if (have_replay_gain)
     {
-        if (cfg.replay_gain_album)
+        if (get_bool (NULL, "replay_gain_album"))
         {
             factor *= powf (10, replay_gain_info.album_gain / 20);
 
-            if (cfg.enable_clipping_prevention &&
+            if (get_bool (NULL, "enable_clipping_prevention") &&
              replay_gain_info.album_peak * factor > 1)
                 factor = 1 / replay_gain_info.album_peak;
         }
@@ -211,32 +213,34 @@ static void apply_replay_gain (gfloat * data, gint samples)
         {
             factor *= powf (10, replay_gain_info.track_gain / 20);
 
-            if (cfg.enable_clipping_prevention &&
+            if (get_bool (NULL, "enable_clipping_prevention") &&
              replay_gain_info.track_peak * factor > 1)
                 factor = 1 / replay_gain_info.track_peak;
         }
     }
     else
-        factor *= powf (10, (gfloat) cfg.default_gain / 20);
+        factor *= powf (10, get_double (NULL, "default_gain") / 20);
 
     if (factor < 0.99 || factor > 1.01)
         audio_amplify (data, 1, samples, & factor);
 }
 
-static void apply_software_volume (gfloat * data, gint channels, gint frames)
+static void apply_software_volume (float * data, int channels, int frames)
 {
-    gfloat left_factor, right_factor;
-    gfloat factors[channels];
-    gint channel;
+    float left_factor, right_factor;
+    float factors[channels];
+    int channel;
+
+    if (! get_bool (NULL, "software_volume_control"))
+        return;
 
-    if (! cfg.software_volume_control || (cfg.sw_volume_left == 100 &&
-     cfg.sw_volume_right == 100))
+    int l = get_int (NULL, "sw_volume_left");
+    int r = get_int (NULL, "sw_volume_right");
+    if (l == 100 && r == 100)
         return;
 
-    left_factor = (cfg.sw_volume_left == 0) ? 0 : powf (10, (gfloat)
-     SW_VOLUME_RANGE * (cfg.sw_volume_left - 100) / 100 / 20);
-    right_factor = (cfg.sw_volume_right == 0) ? 0 : powf (10, (gfloat)
-     SW_VOLUME_RANGE * (cfg.sw_volume_right - 100) / 100 / 20);
+    left_factor = (l == 0) ? 0 : powf (10, (float) SW_VOLUME_RANGE * (l - 100) / 100 / 20);
+    right_factor = (r == 0) ? 0 : powf (10, (float) SW_VOLUME_RANGE * (r - 100) / 100 / 20);
 
     if (channels == 2)
     {
@@ -252,7 +256,7 @@ static void apply_software_volume (gfloat * data, gint channels, gint frames)
     audio_amplify (data, channels, frames, factors);
 }
 
-static void write_processed (void * data, gint samples)
+static void write_processed (void * data, int samples)
 {
     LOCKED_VIS;
 
@@ -277,7 +281,7 @@ static void write_processed (void * data, gint samples)
 
     while (! aborted)
     {
-        gint ready = (cop->buffer_free != NULL) ? cop->buffer_free () /
+        int ready = (cop->buffer_free != NULL) ? cop->buffer_free () /
          FMT_SIZEOF (output_format) : output_channels * (output_rate / 50);
         ready = MIN (ready, samples);
         cop->write_audio (data, FMT_SIZEOF (output_format) * ready);
@@ -302,19 +306,19 @@ static void write_processed (void * data, gint samples)
     g_free (allocated);
 }
 
-static void write_audio (void * data, gint size)
+static void write_audio (void * data, int size)
 {
     LOCKED;
     g_return_if_fail (opened && ! waiting);
 
-    gint samples = size / FMT_SIZEOF (decoder_format);
+    int samples = size / FMT_SIZEOF (decoder_format);
     frames_written += samples / decoder_channels;
 
     void * allocated = NULL;
 
     if (decoder_format != FMT_FLOAT)
     {
-        gfloat * new = g_malloc (sizeof (gfloat) * samples);
+        float * new = g_malloc (sizeof (float) * samples);
         audio_from_int (data, decoder_format, new, samples);
         data = new;
         g_free (allocated);
@@ -322,7 +326,7 @@ static void write_audio (void * data, gint size)
     }
 
     apply_replay_gain (data, samples);
-    gfloat * fdata = data;
+    float * fdata = data;
     effect_process (& fdata, & samples);
     data = fdata;
 
@@ -336,7 +340,7 @@ static void write_audio (void * data, gint size)
     g_free (allocated);
 }
 
-static void output_write_audio (void * data, gint size)
+static void output_write_audio (void * data, int size)
 {
     g_return_if_fail (cop != NULL);
     LOCK_VIS;
@@ -365,7 +369,7 @@ static void output_close_audio (void)
     UNLOCK_VIS;
 }
 
-static void do_pause (gboolean p)
+static void do_pause (bool_t p)
 {
     LOCKED_VIS;
     g_return_if_fail (opened);
@@ -374,7 +378,7 @@ static void do_pause (gboolean p)
     paused = p;
 }
 
-static void output_pause (gboolean p)
+static void output_pause (bool_t p)
 {
     g_return_if_fail (cop != NULL);
     LOCK_VIS;
@@ -382,7 +386,7 @@ static void output_pause (gboolean p)
     UNLOCK_VIS;
 }
 
-static void flush (gint time)
+static void flush (int time)
 {
     LOCKED_VIS;
     g_return_if_fail (opened);
@@ -396,6 +400,7 @@ static void flush (gint time)
     if (! frames_written)
     {
         g_return_if_fail (cop->set_written_time != NULL);
+        vis_runner_time_offset (time - cop->written_time ());
         cop->set_written_time (time);
     }
     else
@@ -405,10 +410,10 @@ static void flush (gint time)
         cop->flush (effect_decoder_to_output_time (time));
     }
 
-    frames_written = time * (gint64) decoder_rate / 1000;
+    frames_written = time * (int64_t) decoder_rate / 1000;
 }
 
-static void output_flush (gint time)
+static void output_flush (int time)
 {
     g_return_if_fail (cop != NULL);
     LOCK_VIS;
@@ -416,18 +421,18 @@ static void output_flush (gint time)
     UNLOCK_VIS;
 }
 
-static gint written_time (void)
+static int written_time (void)
 {
     LOCKED_RET (0);
     g_return_val_if_fail (opened && ! waiting, 0);
-    return frames_written * (gint64) 1000 / decoder_rate;
+    return frames_written * (int64_t) 1000 / decoder_rate;
 }
 
-static gint output_written_time (void)
+static int output_written_time (void)
 {
     g_return_val_if_fail (cop != NULL, 0);
     LOCK;
-    gint time = written_time ();
+    int time = written_time ();
     UNLOCK;
     return time;
 }
@@ -435,8 +440,8 @@ static gint output_written_time (void)
 static void write_buffers (void)
 {
     LOCKED;
-    gfloat * data = NULL;
-    gint samples = 0;
+    float * data = NULL;
+    int samples = 0;
     effect_finish (& data, & samples);
     write_processed (data, samples);
 }
@@ -453,7 +458,7 @@ static void set_leave_open (void)
     }
 }
 
-static gboolean output_buffer_playing (void)
+static bool_t output_buffer_playing (void)
 {
     g_return_val_if_fail (cop != NULL, FALSE);
     LOCK_VIS;
@@ -492,19 +497,19 @@ const struct OutputAPI output_api =
     .abort_write = output_abort_write,
 };
 
-static gint output_time (void)
+static int output_time (void)
 {
     LOCKED_RET (0);
     g_return_val_if_fail (opened || leave_open, 0);
     return cop->output_time ();
 }
 
-gint get_output_time (void)
+int get_output_time (void)
 {
     g_return_val_if_fail (cop != NULL, 0);
     LOCK;
 
-    gint time = 0;
+    int time = 0;
     if (opened)
     {
         time = effect_output_to_decoder_time (output_time ());
@@ -515,11 +520,11 @@ gint get_output_time (void)
     return time;
 }
 
-gint get_raw_output_time (void)
+int get_raw_output_time (void)
 {
     g_return_val_if_fail (cop != NULL, 0);
     LOCK;
-    gint time = output_time ();
+    int time = output_time ();
     UNLOCK;
     return time;
 }
@@ -539,7 +544,7 @@ void output_drain (void)
     UNLOCK_VIS;
 }
 
-static gboolean probe_cb (PluginHandle * p, PluginHandle * * pp)
+static bool_t probe_cb (PluginHandle * p, PluginHandle * * pp)
 {
     OutputPlugin * op = plugin_get_header (p);
     g_return_val_if_fail (op != NULL && op->init != NULL, TRUE);
@@ -566,7 +571,7 @@ PluginHandle * output_plugin_get_current (void)
     return (cop != NULL) ? plugin_by_header (cop) : NULL;
 }
 
-gboolean output_plugin_set_current (PluginHandle * plugin)
+bool_t output_plugin_set_current (PluginHandle * plugin)
 {
     if (cop != NULL)
     {
diff --git a/src/audacious/output.h b/src/audacious/output.h
index c7525d5..c096f8e 100644
--- a/src/audacious/output.h
+++ b/src/audacious/output.h
@@ -26,21 +26,19 @@
 #ifndef AUDACIOUS_OUTPUT_H
 #define AUDACIOUS_OUTPUT_H
 
-#include <glib.h>
-
 #include "plugin.h"
 
 extern const struct OutputAPI output_api;
 
-void output_get_volume(gint * l, gint * r);
-void output_set_volume(gint l, gint r);
+void output_get_volume(int * l, int * r);
+void output_set_volume(int l, int r);
 
-gint get_output_time (void);
-gint get_raw_output_time (void);
+int get_output_time (void);
+int get_raw_output_time (void);
 void output_drain (void);
 
 PluginHandle * output_plugin_probe (void);
 PluginHandle * output_plugin_get_current (void);
-gboolean output_plugin_set_current (PluginHandle * plugin);
+bool_t output_plugin_set_current (PluginHandle * plugin);
 
 #endif /* AUDACIOUS_OUTPUT_H */
diff --git a/src/audacious/playback.c b/src/audacious/playback.c
index 9aa239b..eb90209 100644
--- a/src/audacious/playback.c
+++ b/src/audacious/playback.c
@@ -21,112 +21,101 @@
 
 #include <glib.h>
 #include <pthread.h>
+#include <string.h>
 
 #include <libaudcore/audstrings.h>
-#include <libaudcore/eventqueue.h>
 #include <libaudcore/hook.h>
 
-#include "audconfig.h"
 #include "config.h"
 #include "i18n.h"
 #include "interface.h"
+#include "misc.h"
 #include "output.h"
 #include "playback.h"
 #include "playlist.h"
 
-static gboolean playback_start (gint playlist, gint entry, gint seek_time,
- gboolean pause);
+static void playback_start (int playlist, int entry, int seek_time, bool_t pause);
 
 static InputPlayback playback_api;
 
-static gboolean playing = FALSE;
-static gboolean playback_error;
-static gint failed_entries;
+static bool_t playing = FALSE;
+static bool_t playback_error;
+static int failed_entries;
+
+static char * current_filename; /* pooled */
+
+static int current_entry;
+static char * current_title; /* pooled */
+static int current_length;
 
-static gint current_entry;
-static const gchar * current_filename;
 static InputPlugin * current_decoder;
 static void * current_data;
-static gint current_bitrate, current_samplerate, current_channels;
-static gchar * current_title;
-static gint current_length;
+static int current_bitrate, current_samplerate, current_channels;
 
 static ReplayGainInfo gain_from_playlist;
 
-static gint time_offset, start_time, stop_time;
-static gboolean paused;
+static int time_offset, initial_seek;
+static bool_t paused;
 
 static pthread_t playback_thread_handle;
-static gint end_source = 0;
+static int end_source = 0;
 
 static pthread_mutex_t ready_mutex = PTHREAD_MUTEX_INITIALIZER;
 static pthread_cond_t ready_cond = PTHREAD_COND_INITIALIZER;
-static gboolean ready_flag;
-static gint ready_source = 0;
-
-static gint set_tuple_source = 0;
-static Tuple * tuple_to_be_set = NULL;
-
-static void cancel_set_tuple (void)
-{
-    if (set_tuple_source != 0)
-    {
-        g_source_remove (set_tuple_source);
-        set_tuple_source = 0;
-    }
-
-    if (tuple_to_be_set != NULL)
-    {
-        tuple_free (tuple_to_be_set);
-        tuple_to_be_set = NULL;
-    }
-}
+static bool_t ready_flag;
 
 /* clears gain info if tuple == NULL */
 static void read_gain_from_tuple (const Tuple * tuple)
 {
-    gint album_gain, album_peak, track_gain, track_peak, gain_unit, peak_unit;
-
     memset (& gain_from_playlist, 0, sizeof gain_from_playlist);
 
     if (tuple == NULL)
         return;
 
-    album_gain = tuple_get_int (tuple, FIELD_GAIN_ALBUM_GAIN, NULL);
-    album_peak = tuple_get_int (tuple, FIELD_GAIN_ALBUM_PEAK, NULL);
-    track_gain = tuple_get_int (tuple, FIELD_GAIN_TRACK_GAIN, NULL);
-    track_peak = tuple_get_int (tuple, FIELD_GAIN_TRACK_PEAK, NULL);
-    gain_unit = tuple_get_int (tuple, FIELD_GAIN_GAIN_UNIT, NULL);
-    peak_unit = tuple_get_int (tuple, FIELD_GAIN_PEAK_UNIT, NULL);
+    int album_gain = tuple_get_int (tuple, FIELD_GAIN_ALBUM_GAIN, NULL);
+    int album_peak = tuple_get_int (tuple, FIELD_GAIN_ALBUM_PEAK, NULL);
+    int track_gain = tuple_get_int (tuple, FIELD_GAIN_TRACK_GAIN, NULL);
+    int track_peak = tuple_get_int (tuple, FIELD_GAIN_TRACK_PEAK, NULL);
+    int gain_unit = tuple_get_int (tuple, FIELD_GAIN_GAIN_UNIT, NULL);
+    int peak_unit = tuple_get_int (tuple, FIELD_GAIN_PEAK_UNIT, NULL);
 
     if (gain_unit)
     {
-        gain_from_playlist.album_gain = album_gain / (gfloat) gain_unit;
-        gain_from_playlist.track_gain = track_gain / (gfloat) gain_unit;
+        gain_from_playlist.album_gain = album_gain / (float) gain_unit;
+        gain_from_playlist.track_gain = track_gain / (float) gain_unit;
     }
 
     if (peak_unit)
     {
-        gain_from_playlist.album_peak = album_peak / (gfloat) peak_unit;
-        gain_from_playlist.track_peak = track_peak / (gfloat) peak_unit;
+        gain_from_playlist.album_peak = album_peak / (float) peak_unit;
+        gain_from_playlist.track_peak = track_peak / (float) peak_unit;
     }
 }
 
-static gboolean ready_cb (void * unused)
+static bool_t update_from_playlist (void)
 {
-    g_return_val_if_fail (playing, FALSE);
+    int entry = playback_entry_get_position ();
+    char * title = playback_entry_get_title ();
+    int length = playback_entry_get_length ();
 
-    hook_call ("playback ready", NULL);
-    hook_call ("title change", NULL);
-    ready_source = 0;
-    return FALSE;
+    if (entry == current_entry && ! g_strcmp0 (title, current_title) && length == current_length)
+    {
+        str_unref (title);
+        return FALSE;
+    }
+
+    current_entry = entry;
+    str_unref (current_title);
+    current_title = title;
+    current_length = length;
+    return TRUE;
 }
 
-gboolean playback_get_ready (void)
+bool_t playback_get_ready (void)
 {
     g_return_val_if_fail (playing, FALSE);
     pthread_mutex_lock (& ready_mutex);
-    gboolean ready = ready_flag;
+    bool_t ready = ready_flag;
     pthread_mutex_unlock (& ready_mutex);
     return ready;
 }
@@ -134,13 +123,15 @@ gboolean playback_get_ready (void)
 static void set_pb_ready (InputPlayback * p)
 {
     g_return_if_fail (playing);
-
     pthread_mutex_lock (& ready_mutex);
+
+    update_from_playlist ();
     ready_flag = TRUE;
+
     pthread_cond_signal (& ready_cond);
     pthread_mutex_unlock (& ready_mutex);
 
-    ready_source = g_timeout_add (0, ready_cb, NULL);
+    event_queue ("playback ready", NULL);
 }
 
 static void wait_until_ready (void)
@@ -158,41 +149,21 @@ static void update_cb (void * hook_data, void * user_data)
 {
     g_return_if_fail (playing);
 
-    if (GPOINTER_TO_INT (hook_data) < PLAYLIST_UPDATE_METADATA)
+    if (GPOINTER_TO_INT (hook_data) < PLAYLIST_UPDATE_METADATA || ! playback_get_ready ())
         return;
 
-    gint playlist = playlist_get_playing ();
-    gint entry = playlist_get_position (playlist);
-    const gchar * title = playlist_entry_get_title (playlist, entry, FALSE);
-
-    if (title == NULL)
-        title = playlist_entry_get_filename (playlist, entry);
-
-    gint length = playlist_entry_get_length (playlist, entry, FALSE);
-
-    if (entry == current_entry && ! strcmp (title, current_title) && length ==
-     current_length)
-        return;
-
-    current_entry = entry;
-    g_free (current_title);
-    current_title = g_strdup (title);
-    current_length = length;
-
-    if (playback_get_ready ())
-        hook_call ("title change", NULL);
+    if (update_from_playlist ())
+        event_queue ("title change", NULL);
 }
 
-gint playback_get_time (void)
+int playback_get_time (void)
 {
     g_return_val_if_fail (playing, 0);
+    wait_until_ready ();
 
-    if (! playback_get_ready ())
-        return 0;
-
-    gint time = -1;
+    int time = -1;
 
-    if (current_decoder->get_time != NULL)
+    if (current_decoder && current_decoder->get_time)
         time = current_decoder->get_time (& playback_api);
 
     if (time < 0)
@@ -201,11 +172,11 @@ gint playback_get_time (void)
     return time - time_offset;
 }
 
-void playback_play (gint seek_time, gboolean pause)
+void playback_play (int seek_time, bool_t pause)
 {
     g_return_if_fail (! playing);
 
-    gint playlist = playlist_get_playing ();
+    int playlist = playlist_get_playing ();
 
     if (playlist == -1)
     {
@@ -213,7 +184,7 @@ void playback_play (gint seek_time, gboolean pause)
         playlist_set_playing (playlist);
     }
 
-    gint entry = playlist_get_position (playlist);
+    int entry = playlist_get_position (playlist);
 
     if (entry == -1)
     {
@@ -233,9 +204,10 @@ void playback_pause (void)
     g_return_if_fail (playing);
     wait_until_ready ();
 
-    paused = ! paused;
+    if (! current_decoder || ! current_decoder->pause)
+        return;
 
-    g_return_if_fail (current_decoder->pause != NULL);
+    paused = ! paused;
     current_decoder->pause (& playback_api, paused);
 
     if (paused)
@@ -250,17 +222,22 @@ static void playback_cleanup (void)
 
     pthread_join (playback_thread_handle, NULL);
     playing = FALSE;
-    playback_error = FALSE;
 
-    g_free (current_title);
+    event_queue_cancel ("playback ready", NULL);
+    event_queue_cancel ("info change", NULL);
+    event_queue_cancel ("title change", NULL);
 
-    if (ready_source)
+    if (end_source)
     {
-        g_source_remove (ready_source);
-        ready_source = 0;
+        g_source_remove (end_source);
+        end_source = 0;
     }
 
-    cancel_set_tuple ();
+    str_unref (current_filename);
+    current_filename = NULL;
+    str_unref (current_title);
+    current_title = NULL;
+
     hook_dissociate ("playlist update", update_cb);
 }
 
@@ -268,12 +245,7 @@ static void complete_stop (void)
 {
     output_drain ();
     hook_call ("playback stop", NULL);
-
-    if (cfg.stopaftersong)
-    {
-        cfg.stopaftersong = FALSE;
-        hook_call ("toggle stop after song", NULL);
-    }
+    set_bool (NULL, "stop_after_current_song", FALSE);
 }
 
 void playback_stop (void)
@@ -281,18 +253,14 @@ void playback_stop (void)
     g_return_if_fail (playing);
     wait_until_ready ();
 
-    current_decoder->stop (& playback_api);
+    if (current_decoder)
+        current_decoder->stop (& playback_api);
+
     playback_cleanup ();
     complete_stop ();
-
-    if (end_source)
-    {
-        g_source_remove (end_source);
-        end_source = 0;
-    }
 }
 
-static gboolean end_cb (void * unused)
+static bool_t end_cb (void * unused)
 {
     g_return_val_if_fail (playing, FALSE);
 
@@ -305,51 +273,68 @@ static gboolean end_cb (void * unused)
 
     playback_cleanup ();
 
-    gint playlist = playlist_get_playing ();
-
-    while (1)
-    {
-        gboolean play;
-
-        if (cfg.no_playlist_advance)
-            play = cfg.repeat && ! failed_entries;
-        else if (! (play = playlist_next_song (playlist, cfg.repeat)))
-            playlist_set_position (playlist, -1);
-        else if (failed_entries >= 10)
-            play = FALSE;
+    int playlist = playlist_get_playing ();
+    bool_t play;
 
-        if (cfg.stopaftersong)
-            play = FALSE;
+    if (get_bool (NULL, "no_playlist_advance"))
+        play = get_bool (NULL, "repeat") && ! failed_entries;
+    else if (! (play = playlist_next_song (playlist, get_bool (NULL, "repeat"))))
+        playlist_set_position (playlist, -1);
+    else if (failed_entries >= 10)
+        play = FALSE;
 
-        if (! play)
-        {
-            complete_stop ();
-            hook_call ("playlist end reached", NULL);
-            break;
-        }
+    if (get_bool (NULL, "stop_after_current_song"))
+        play = FALSE;
 
-        if (playback_start (playlist, playlist_get_position (playlist), 0, FALSE))
-            break;
-
-        failed_entries ++;
+    if (play)
+        playback_start (playlist, playlist_get_position (playlist), 0, FALSE);
+    else
+    {
+        complete_stop ();
+        hook_call ("playlist end reached", NULL);
     }
 
-    end_source = 0;
     return FALSE;
 }
 
 static void * playback_thread (void * unused)
 {
-    gchar * real = filename_split_subtune (current_filename, NULL);
-    VFSFile * file = vfs_fopen (real, "r");
-    g_free (real);
+    PluginHandle * p = playback_entry_get_decoder ();
+    current_decoder = p ? plugin_get_header (p) : NULL;
+
+    if (! current_decoder)
+    {
+        char * error = g_strdup_printf (_("No decoder found for %s."),
+         current_filename);
+        interface_show_error (error);
+        g_free (error);
+        playback_error = TRUE;
+        goto DONE;
+    }
+
+    current_data = NULL;
+    current_bitrate = 0;
+    current_samplerate = 0;
+    current_channels = 0;
+
+    Tuple * tuple = playback_entry_get_tuple ();
+    read_gain_from_tuple (tuple);
+    if (tuple)
+        tuple_unref (tuple);
 
+    bool_t seekable = (playback_entry_get_length () > 0);
+
+    VFSFile * file = vfs_fopen (current_filename, "r");
+
+    time_offset = seekable ? playback_entry_get_start_time () : 0;
     playback_error = ! current_decoder->play (& playback_api, current_filename,
-     file, start_time, stop_time, paused);
+     file, seekable ? time_offset + initial_seek : 0,
+     seekable ? playback_entry_get_end_time () : -1, paused);
 
-    if (file != NULL)
+    if (file)
         vfs_fclose (file);
 
+DONE:
     if (! ready_flag)
         set_pb_ready (& playback_api);
 
@@ -357,84 +342,47 @@ static void * playback_thread (void * unused)
     return NULL;
 }
 
-static gboolean playback_start (gint playlist, gint entry, gint seek_time,
- gboolean pause)
+static void playback_start (int playlist, int entry, int seek_time, bool_t pause)
 {
-    g_return_val_if_fail (! playing, FALSE);
+    g_return_if_fail (! playing);
 
-    current_entry = entry;
     current_filename = playlist_entry_get_filename (playlist, entry);
-
-    vfs_prepare_filename (current_filename);
-
-    PluginHandle * p = playlist_entry_get_decoder (playlist, entry, FALSE);
-    current_decoder = p ? plugin_get_header (p) : NULL;
-
-    if (current_decoder == NULL)
-    {
-        gchar * error = g_strdup_printf (_("No decoder found for %s."),
-         current_filename);
-        /* The interface may not be up yet at this point. --jlindgren */
-        event_queue_with_data_free ("interface show error", error);
-        return FALSE;
-    }
-
-    current_data = NULL;
-    current_bitrate = 0;
-    current_samplerate = 0;
-    current_channels = 0;
-
-    const gchar * title = playlist_entry_get_title (playlist, entry, FALSE);
-    current_title = g_strdup ((title != NULL) ? title : current_filename);
-
-    current_length = playlist_entry_get_length (playlist, entry, FALSE);
-    read_gain_from_tuple (playlist_entry_get_tuple (playlist, entry, FALSE));
-
-    if (current_length > 0 && playlist_entry_is_segmented (playlist, entry))
-    {
-        time_offset = playlist_entry_get_start_time (playlist, entry);
-        stop_time = playlist_entry_get_end_time (playlist, entry);
-    }
-    else
-    {
-        time_offset = 0;
-        stop_time = -1;
-    }
-
-    if (current_length > 0)
-        start_time = time_offset + seek_time;
-    else
-        start_time = 0;
+    g_return_if_fail (current_filename);
 
     playing = TRUE;
     playback_error = FALSE;
-    paused = pause;
     ready_flag = FALSE;
 
-    pthread_create (& playback_thread_handle, NULL, playback_thread, NULL);
+    current_entry = -1;
+    current_title = NULL;
+    current_length = 0;
+
+    initial_seek = seek_time;
+    paused = pause;
 
     hook_associate ("playlist update", update_cb, NULL);
+    pthread_create (& playback_thread_handle, NULL, playback_thread, NULL);
+
     hook_call ("playback begin", NULL);
-    return TRUE;
 }
 
-gboolean playback_get_playing (void)
+bool_t playback_get_playing (void)
 {
     return playing;
 }
 
-gboolean playback_get_paused (void)
+bool_t playback_get_paused (void)
 {
     g_return_val_if_fail (playing, FALSE);
     return paused;
 }
 
-void playback_seek (gint time)
+void playback_seek (int time)
 {
     g_return_if_fail (playing);
     wait_until_ready ();
 
-    if (current_decoder->mseek == NULL || playback_get_length () < 1)
+    if (! current_decoder || ! current_decoder->mseek || current_length < 1)
         return;
 
     current_decoder->mseek (& playback_api, time_offset + CLAMP (time, 0,
@@ -455,8 +403,8 @@ static void * get_data (InputPlayback * p)
     return current_data;
 }
 
-static void set_params (InputPlayback * p, gint bitrate, gint samplerate,
- gint channels)
+static void set_params (InputPlayback * p, int bitrate, int samplerate,
+ int channels)
 {
     g_return_if_fail (playing);
 
@@ -464,35 +412,15 @@ static void set_params (InputPlayback * p, gint bitrate, gint samplerate,
     current_samplerate = samplerate;
     current_channels = channels;
 
-    event_queue ("info change", NULL);
-}
-
-static gboolean set_tuple_cb (void * unused)
-{
-    g_return_val_if_fail (playing, FALSE);
-    pthread_mutex_lock (& ready_mutex);
-
-    gint playlist = playlist_get_playing ();
-    playlist_entry_set_tuple (playlist, playlist_get_position (playlist),
-     tuple_to_be_set);
-    set_tuple_source = 0;
-    tuple_to_be_set = NULL;
-
-    pthread_mutex_unlock (& ready_mutex);
-    return FALSE;
+    if (playback_get_ready ())
+        event_queue ("info change", NULL);
 }
 
 static void set_tuple (InputPlayback * p, Tuple * tuple)
 {
     g_return_if_fail (playing);
-    pthread_mutex_lock (& ready_mutex);
-
-    cancel_set_tuple ();
-    set_tuple_source = g_timeout_add (0, set_tuple_cb, NULL);
-    tuple_to_be_set = tuple;
-
     read_gain_from_tuple (tuple);
-    pthread_mutex_unlock (& ready_mutex);
+    playback_entry_set_tuple (tuple);
 }
 
 static void set_gain_from_playlist (InputPlayback * p)
@@ -511,22 +439,26 @@ static InputPlayback playback_api = {
     .set_gain_from_playlist = set_gain_from_playlist,
 };
 
-gchar * playback_get_title (void)
+char * playback_get_filename (void)
 {
     g_return_val_if_fail (playing, NULL);
+    return str_ref (current_filename);
+}
 
-    if (! playback_get_ready ())
-        return g_strdup (_("Buffering ..."));
+char * playback_get_title (void)
+{
+    g_return_val_if_fail (playing, NULL);
+    wait_until_ready ();
 
-    gchar s[128];
+    char s[32];
 
     if (current_length)
     {
-        gint len = current_length / 1000;
+        int len = current_length / 1000;
 
         if (len < 3600)
-            snprintf (s, sizeof s, cfg.leading_zero ? " (%02d:%02d)" :
-             " (%d:%02d)", len / 60, len % 60);
+            snprintf (s, sizeof s, get_bool (NULL, "leading_zero") ?
+             " (%02d:%02d)" : " (%d:%02d)", len / 60, len % 60);
         else
             snprintf (s, sizeof s, " (%d:%02d:%02d)", len / 3600, (len / 60) %
              60, len % 60);
@@ -534,44 +466,48 @@ gchar * playback_get_title (void)
     else
         s[0] = 0;
 
-    if (cfg.show_numbers_in_pl)
-        return g_strdup_printf ("%d. %s%s", 1 + playlist_get_position
+    if (get_bool (NULL, "show_numbers_in_pl"))
+        return str_printf ("%d. %s%s", 1 + playlist_get_position
          (playlist_get_playing ()), current_title, s);
 
-    return g_strdup_printf ("%s%s", current_title, s);
+    return str_printf ("%s%s", current_title, s);
 }
 
-gint playback_get_length (void)
+int playback_get_length (void)
 {
     g_return_val_if_fail (playing, 0);
+    wait_until_ready ();
+
     return current_length;
 }
 
-void playback_get_info (gint * bitrate, gint * samplerate, gint * channels)
+void playback_get_info (int * bitrate, int * samplerate, int * channels)
 {
     g_return_if_fail (playing);
+    wait_until_ready ();
+
     * bitrate = current_bitrate;
     * samplerate = current_samplerate;
     * channels = current_channels;
 }
 
-void playback_get_volume (gint * l, gint * r)
+void playback_get_volume (int * l, int * r)
 {
-    if (playing && current_decoder->get_volume != NULL &&
-     current_decoder->get_volume (l, r))
+    if (playing && playback_get_ready () && current_decoder &&
+     current_decoder->get_volume && current_decoder->get_volume (l, r))
         return;
 
     output_get_volume (l, r);
 }
 
-void playback_set_volume(gint l, gint r)
+void playback_set_volume (int l, int r)
 {
-    gint h_vol[2] = {l, r};
+    int h_vol[2] = {l, r};
 
     hook_call ("volume set", h_vol);
 
-    if (playing && current_decoder->set_volume != NULL &&
-     current_decoder->set_volume (l, r))
+    if (playing && playback_get_ready () && current_decoder &&
+     current_decoder->set_volume && current_decoder->set_volume (l, r))
         return;
 
     output_set_volume (l, r);
diff --git a/src/audacious/playback.h b/src/audacious/playback.h
index 2bf7f0d..109f9c9 100644
--- a/src/audacious/playback.h
+++ b/src/audacious/playback.h
@@ -23,22 +23,23 @@
 #ifndef AUDACIOUS_PLAYBACK_H
 #define AUDACIOUS_PLAYBACK_H
 
-#include <glib.h>
+#include <libaudcore/core.h>
 
-void playback_play (gint seek_time, gboolean pause);
-gint playback_get_time(void);
+void playback_play (int seek_time, bool_t pause);
+int playback_get_time(void);
 void playback_pause(void);
 void playback_stop(void);
-gboolean playback_get_playing(void);
-gboolean playback_get_ready (void);
-gboolean playback_get_paused(void);
-void playback_seek(gint time);
+bool_t playback_get_playing(void);
+bool_t playback_get_ready (void);
+bool_t playback_get_paused(void);
+void playback_seek(int time);
 
-gchar * playback_get_title (void);
-gint playback_get_length (void);
-void playback_get_info (gint * bitrate, gint * samplerate, gint * channels);
+char * playback_get_filename (void); /* pooled */
+char * playback_get_title (void); /* pooled */
+int playback_get_length (void);
+void playback_get_info (int * bitrate, int * samplerate, int * channels);
 
-void playback_get_volume (gint * l, gint * r);
-void playback_set_volume (gint l, gint r);
+void playback_get_volume (int * l, int * r);
+void playback_set_volume (int l, int r);
 
 #endif /* AUDACIOUS_PLAYBACK_H */
diff --git a/src/audacious/playlist-api.h b/src/audacious/playlist-api.h
index 39ee7bf..b1886e5 100644
--- a/src/audacious/playlist-api.h
+++ b/src/audacious/playlist-api.h
@@ -21,21 +21,23 @@
 
 /* Do not include this file directly; use playlist.h instead. */
 
-/* CAUTION: These functions are not thread safe. */
+/* Any functions in this API with a return type of (char *) return pooled
+ * strings that must not be modified and must be released with str_unref() when
+ * no longer needed. */
 
 /* --- PLAYLIST CORE API --- */
 
 /* Returns the number of playlists currently open.  There will always be at
  * least one playlist open.  The playlists are numbered starting from zero. */
-AUD_FUNC0 (gint, playlist_count)
+AUD_FUNC0 (int, playlist_count)
 
 /* Adds a new playlist before the one numbered <at>.  If <at> is negative or
  * equal to the number of playlists, adds a new playlist after the last one. */
-AUD_FUNC1 (void, playlist_insert, gint, at)
+AUD_VFUNC1 (playlist_insert, int, at)
 
 /* Moves a contiguous block of <count> playlists starting with the one numbered
  * <from> such that that playlist ends up at the position <to>. */
-AUD_FUNC3 (void, playlist_reorder, gint, from, gint, to, gint, count)
+AUD_VFUNC3 (playlist_reorder, int, from, int, to, int, count)
 
 /* Closes a playlist.  CAUTION: The playlist is not saved, and no confirmation
  * is presented to the user.  If <playlist> is the only playlist, a new playlist
@@ -43,295 +45,308 @@ AUD_FUNC3 (void, playlist_reorder, gint, from, gint, to, gint, count)
  * active.  If <playlist> is the one from which the last song played was taken,
  * playback is stopped.  In this case, calls to playlist_get_playing() will
  * return -1, and the behavior of drct_play() is unspecified. */
-AUD_FUNC1 (void, playlist_delete, gint, playlist)
+AUD_VFUNC1 (playlist_delete, int, playlist)
+
+/* Returns a unique non-negative integer which can be used to identify a given
+ * playlist even if its numbering changes (as when playlists are reordered).
+ * On error, returns -1. */
+AUD_FUNC1 (int, playlist_get_unique_id, int, playlist)
+
+/* Returns the number of the playlist identified by a given integer ID as
+ * returned by playlist_get_unique_id().  If the playlist no longer exists,
+ * returns -1. */
+AUD_FUNC1 (int, playlist_by_unique_id, int, id)
 
 /* Sets the filename associated with a playlist.  (Audacious currently makes no
  * use of the filename.) */
-AUD_FUNC2 (void, playlist_set_filename, gint, playlist, const gchar *, filename)
+AUD_VFUNC2 (playlist_set_filename, int, playlist, const char *, filename)
 
 /* Returns the filename associated with a playlist. */
-AUD_FUNC1 (const gchar *, playlist_get_filename, gint, playlist)
+AUD_FUNC1 (char *, playlist_get_filename, int, playlist)
 
 /* Sets the title associated with a playlist. */
-AUD_FUNC2 (void, playlist_set_title, gint, playlist, const gchar *, title)
+AUD_VFUNC2 (playlist_set_title, int, playlist, const char *, title)
 
 /* Returns the title associated with a playlist. */
-AUD_FUNC1 (const gchar *, playlist_get_title, gint, playlist)
+AUD_FUNC1 (char *, playlist_get_title, int, playlist)
 
 /* Marks a playlist as active.  This is the playlist which the user will see and
  * on which most DRCT functions will take effect. */
-AUD_FUNC1 (void, playlist_set_active, gint, playlist)
+AUD_VFUNC1 (playlist_set_active, int, playlist)
 
 /* Returns the number of the playlist marked active. */
-AUD_FUNC0 (gint, playlist_get_active)
+AUD_FUNC0 (int, playlist_get_active)
 
 /* Sets the playlist in which playback will begin when drct_play() is called.
  * This does not mark the playlist as active.  If a song is already playing, it
  * will be stopped.  If <playlist> is negative, calls to playlist_get_playing()
  * will return -1, and the behavior of drct_play() is unspecified. */
-AUD_FUNC1 (void, playlist_set_playing, gint, playlist)
+AUD_VFUNC1 (playlist_set_playing, int, playlist)
 
 /* Returns the number of the playlist from which the last song played was taken,
  * or -1 if that cannot be determined.  Note that this playlist may not be
  * marked active. */
-AUD_FUNC0 (gint, playlist_get_playing)
+AUD_FUNC0 (int, playlist_get_playing)
+
+/* Returns the number of a "blank" playlist.  The active playlist is returned if
+ * it has the default title and has no entries; otherwise, a new playlist is
+ * added and returned. */
+AUD_FUNC0 (int, playlist_get_blank)
+
+/* Returns the number of the "temporary" playlist (which is no different from
+ * any other playlist except in name).  If the playlist does not exist, a
+ * "blank" playlist is obtained from playlist_get_blank() and is renamed to
+ * become the temporary playlist. */
+AUD_FUNC0 (int, playlist_get_temporary)
 
 /* Returns the number of entries in a playlist.  The entries are numbered
  * starting from zero. */
-AUD_FUNC1 (gint, playlist_entry_count, gint, playlist)
-
-/* Adds a song file to a playlist before the entry numbered <at>.  If <at> is
- * negative or equal to the number of entries, the song is added after the last
- * entry.  <tuple> may be NULL, in which case Audacious will attempt to read
- * metadata from the song file.  Audacious will free the memory used by the
- * filename and the tuple when they are no longer needed.  NOTE: This function
- * cannot be used to insert playlist files or entire folders.  To do that, see
- * playlist_insert_playlist or playlist_insert_folder. */
-AUD_FUNC4 (void, playlist_entry_insert, gint, playlist, gint, at, gchar *,
- filename, Tuple *, tuple)
-
-/* Similar to playlist_entry_insert, adds multiple song files to a playlist.
- * The filenames are stored as (gchar *) in an index (see libaudcore/index.h).
- * Tuples are likewise stored as (Tuple *) in an index of the same length.
- * <tuples> may be NULL, or individual pointers within it may be NULL.
- * Audacious will free both indexes, the filenames, and the tuples when they are
- * no longer needed. */
-AUD_FUNC4 (void, playlist_entry_insert_batch, gint, playlist, gint, at,
- struct index *, filenames, struct index *, tuples)
+AUD_FUNC1 (int, playlist_entry_count, int, playlist)
+
+/* Adds a song file, playlist file, or folder to a playlist before the entry
+ * numbered <at>.  If <at> is negative or equal to the number of entries, the
+ * item is added after the last entry.  <tuple> may be NULL, in which case
+ * Audacious will attempt to read metadata from the song file.  The caller gives
+ * up one reference count to <tuple>.  If <play> is nonzero, Audacious will
+ * begin playback of the items once they have been added.
+ *
+ * Because adding items to the playlist can be a slow process, this function may
+ * return before the process is complete.  Hence, the caller must not assume
+ * that there will be new entries in the playlist immediately. */
+AUD_VFUNC5 (playlist_entry_insert, int, playlist, int, at, const char *,
+ filename, Tuple *, tuple, bool_t, play)
+
+/* Similar to playlist_entry_insert, adds multiple song files, playlist files,
+ * or folders to a playlist.  The filenames, stored as (char *) in an index
+ * (see libaudcore/index.h), must be pooled with str_get(); the caller gives up
+ * one reference count to each filename.  Tuples are likewise stored as
+ * (Tuple *) in an index of the same length; the caller gives up one reference
+ * count to each tuple.  <tuples> may be NULL, or individual pointers within it
+ * may be NULL.  Finally, the caller also gives up ownership of the indexes
+ * themselves and should not access them after the call.   */
+AUD_VFUNC5 (playlist_entry_insert_batch, int, playlist, int, at,
+ Index *, filenames, Index *, tuples, bool_t, play)
+
+/* Similar to playlist_entry_insert_batch, but allows the caller to prevent some
+ * items from being added by returning false from the <filter> callback.  Useful
+ * for searching a folder and adding only new files to the playlist.  <user> is
+ * an untyped pointer passed to the <filter> callback. */
+AUD_VFUNC7 (playlist_entry_insert_filtered, int, playlist, int, at,
+ Index *, filenames, Index *, tuples, PlaylistFilterFunc, filter,
+ void *, user, bool_t, play)
 
 /* Removes a contiguous block of <number> entries starting from the one numbered
  * <at> from a playlist.  If the last song played is in this block, playback is
  * stopped.  In this case, calls to playlist_get_position() will return -1, and
  * the behavior of drct_play() is unspecified. */
-AUD_FUNC3 (void, playlist_entry_delete, gint, playlist, gint, at, gint, number)
+AUD_VFUNC3 (playlist_entry_delete, int, playlist, int, at, int, number)
 
-/* Returns the filename of an entry.  The returned string is valid until another
- * playlist function is called or control returns to the program's main loop. */
-AUD_FUNC2 (const gchar *, playlist_entry_get_filename, gint, playlist, gint,
- entry)
+/* Returns the filename of an entry. */
+AUD_FUNC2 (char *, playlist_entry_get_filename, int, playlist, int, entry)
 
 /* Returns a handle to the decoder plugin associated with an entry, or NULL if
  * none can be found.  If <fast> is nonzero, returns NULL if no decoder plugin
  * has yet been found. */
-AUD_FUNC3 (PluginHandle *, playlist_entry_get_decoder, gint, playlist, gint,
- entry, gboolean, fast)
+AUD_FUNC3 (PluginHandle *, playlist_entry_get_decoder, int, playlist, int,
+ entry, bool_t, fast)
 
 /* Returns the tuple associated with an entry, or NULL if one is not available.
- * The returned tuple is read-only and valid until another playlist function is
- * called or control returns to the program's main loop.  If <fast> is nonzero,
+ * The reference count of the tuple is incremented.  If <fast> is nonzero,
  * returns NULL if metadata for the entry has not yet been read from the song
  * file. */
-AUD_FUNC3 (const Tuple *, playlist_entry_get_tuple, gint, playlist, gint, entry,
- gboolean, fast)
+AUD_FUNC3 (Tuple *, playlist_entry_get_tuple, int, playlist, int, entry,
+ bool_t, fast)
 
 /* Returns a formatted title string for an entry.  This may include information
- * such as the filename, song title, and/or artist.  The returned string is
- * valid until another playlist function is called or control returns to the
- * program's main loop.  If <fast> is nonzero, returns the entry's filename if
- * metadata for the entry has not yet been read. */
-AUD_FUNC3 (const gchar *, playlist_entry_get_title, gint, playlist, gint, entry,
- gboolean, fast)
+ * such as the filename, song title, and/or artist.  If <fast> is nonzero,
+ * returns the entry's filename if metadata for the entry has not yet been read. */
+AUD_FUNC3 (char *, playlist_entry_get_title, int, playlist, int, entry,
+ bool_t, fast)
 
 /* Returns three strings (title, artist, and album) describing an entry.  The
- * returned strings are valid until another playlist function is called or
- * control returns to the program's main loop.  If <fast> is nonzero, return's
- * the entry's filename for <title> and NULL for <artist> and <album> if
- * metadata for the entry has not yet been read. */
-AUD_FUNC6 (void, playlist_entry_describe, gint, playlist, gint, entry,
- const gchar * *, title, const gchar * *, artist, const gchar * *, album,
- gboolean, fast)
+ * strings are pooled, and the usual cautions apply.  If <fast> is nonzero,
+ * returns a "best guess" based on the entry's filename if metadata for the
+ * entry has not yet been read.  May return NULL for any and all values. */
+AUD_VFUNC6 (playlist_entry_describe, int, playlist, int, entry,
+ char * *, title, char * *, artist, char * *, album, bool_t, fast)
 
 /* Returns the length in milliseconds of an entry, or -1 if the length is not
  * known.  <fast> is as in playlist_entry_get_tuple(). */
-AUD_FUNC3 (gint, playlist_entry_get_length, gint, playlist, gint, entry,
- gboolean, fast)
+AUD_FUNC3 (int, playlist_entry_get_length, int, playlist, int, entry,
+ bool_t, fast)
 
 /* Sets the entry which will be played (if this playlist is selected with
  * playlist_set_playing()) when drct_play() is called.  If a song from this
  * playlist is already playing, it will be stopped.  If <position> is negative,
  * calls to playlist_get_position() will return -1, and the behavior of
  * drct_play() is unspecified. */
-AUD_FUNC2 (void, playlist_set_position, gint, playlist, gint, position)
+AUD_VFUNC2 (playlist_set_position, int, playlist, int, position)
 
 /* Returns the number of the entry which was last played from this playlist, or
  * -1 if that cannot be determined. */
-AUD_FUNC1 (gint, playlist_get_position, gint, playlist)
+AUD_FUNC1 (int, playlist_get_position, int, playlist)
 
 /* Sets whether an entry is selected. */
-AUD_FUNC3 (void, playlist_entry_set_selected, gint, playlist, gint, entry,
- gboolean, selected)
+AUD_VFUNC3 (playlist_entry_set_selected, int, playlist, int, entry,
+ bool_t, selected)
 
 /* Returns whether an entry is selected. */
-AUD_FUNC2 (gboolean, playlist_entry_get_selected, gint, playlist, gint, entry)
+AUD_FUNC2 (bool_t, playlist_entry_get_selected, int, playlist, int, entry)
 
 /* Returns the number of selected entries in a playlist. */
-AUD_FUNC1 (gint, playlist_selected_count, gint, playlist)
+AUD_FUNC1 (int, playlist_selected_count, int, playlist)
 
 /* Selects all (or none) of the entries in a playlist. */
-AUD_FUNC2 (void, playlist_select_all, gint, playlist, gboolean, selected)
+AUD_VFUNC2 (playlist_select_all, int, playlist, bool_t, selected)
 
 /* Moves a selected entry within a playlist by an offset of <distance> entries.
  * Other selected entries are gathered around it.  Returns the offset by which
  * the entry was actually moved, which may be less in absolute value than the
  * requested offset. */
-AUD_FUNC3 (gint, playlist_shift, gint, playlist, gint, position, gint, distance)
+AUD_FUNC3 (int, playlist_shift, int, playlist, int, position, int, distance)
 
 /* Removes the selected entries from a playlist.  If the last song played is one
  * of these entries, playback is stopped.  In this case, calls to
  * playlist_get_position() will return -1, and the behavior of drct_play() is
  * unspecified. */
-AUD_FUNC1 (void, playlist_delete_selected, gint, playlist)
+AUD_VFUNC1 (playlist_delete_selected, int, playlist)
 
 /* Sorts the entries in a playlist based on filename.  The callback function
  * should return negative if the first filename comes before the second,
  * positive if it comes after, or zero if the two are indistinguishable. */
-AUD_FUNC2 (void, playlist_sort_by_filename, gint, playlist,
+AUD_VFUNC2 (playlist_sort_by_filename, int, playlist,
  PlaylistStringCompareFunc, compare)
 
-/* Sorts the entries in a playlist based on tuple. */
-AUD_FUNC2 (void, playlist_sort_by_tuple, gint, playlist,
+/* Sorts the entries in a playlist based on tuple.  May fail if metadata
+ * scanning is still in progress (or has been disabled). */
+AUD_VFUNC2 (playlist_sort_by_tuple, int, playlist,
  PlaylistTupleCompareFunc, compare)
 
-/* Sorts the entries in a playlist based on formatted title string. */
-AUD_FUNC2 (void, playlist_sort_by_title, gint, playlist,
+/* Sorts the entries in a playlist based on formatted title string.  May fail if
+ * metadata scanning is still in progress (or has been disabled). */
+AUD_VFUNC2 (playlist_sort_by_title, int, playlist,
  PlaylistStringCompareFunc, compare)
 
 /* Sorts only the selected entries in a playlist based on filename. */
-AUD_FUNC2 (void, playlist_sort_selected_by_filename, gint, playlist,
+AUD_VFUNC2 (playlist_sort_selected_by_filename, int, playlist,
  PlaylistStringCompareFunc, compare)
 
-/* Sorts only the selected entries in a playlist based on tuple. */
-AUD_FUNC2 (void, playlist_sort_selected_by_tuple, gint, playlist,
+/* Sorts only the selected entries in a playlist based on tuple.  May fail if
+ * metadata scanning is still in progress (or has been disabled). */
+AUD_VFUNC2 (playlist_sort_selected_by_tuple, int, playlist,
  PlaylistTupleCompareFunc, compare)
 
-/* Sorts only the selected entries in a playlist based on formatted title string. */
-AUD_FUNC2 (void, playlist_sort_selected_by_title, gint, playlist,
+/* Sorts only the selected entries in a playlist based on formatted title
+ * string.  May fail if metadata scanning is still in progress (or has been
+ * disabled). */
+AUD_VFUNC2 (playlist_sort_selected_by_title, int, playlist,
  PlaylistStringCompareFunc, compare)
 
 /* Reverses the order of the entries in a playlist. */
-AUD_FUNC1 (void, playlist_reverse, gint, playlist)
+AUD_VFUNC1 (playlist_reverse, int, playlist)
 
 /* Reorders the entries in a playlist randomly. */
-AUD_FUNC1 (void, playlist_randomize, gint, playlist)
+AUD_VFUNC1 (playlist_randomize, int, playlist)
 
 /* Discards the metadata stored for all the entries in a playlist and starts
  * reading it afresh from the song files in the background. */
-AUD_FUNC1 (void, playlist_rescan, gint, playlist)
+AUD_VFUNC1 (playlist_rescan, int, playlist)
 
 /* Like playlist_rescan, but applies only to the selected entries in a playlist. */
-AUD_FUNC1 (void, playlist_rescan_selected, gint, playlist)
+AUD_VFUNC1 (playlist_rescan_selected, int, playlist)
 
 /* Discards the metadata stored for all the entries that refer to a particular
  * song file, in whatever playlist they appear, and starts reading it afresh
  * from that file in the background. */
-AUD_FUNC1 (void, playlist_rescan_file, const gchar *, filename)
+AUD_VFUNC1 (playlist_rescan_file, const char *, filename)
 
 /* Calculates the total length in milliseconds of all the entries in a playlist.
- * <fast> is as in playlist_entry_get_tuple(). */
-AUD_FUNC2 (gint64, playlist_get_total_length, gint, playlist, gboolean, fast)
+ * Only takes into account entries for which metadata has already been read. */
+AUD_FUNC1 (int64_t, playlist_get_total_length, int, playlist)
 
 /* Calculates the total length in milliseconds of only the selected entries in a
- * playlist.  <fast> is as in playlist_entry_get_tuple(). */
-AUD_FUNC2 (gint64, playlist_get_selected_length, gint, playlist, gboolean, fast)
+ * playlist.  Only takes into account entries for which metadata has already
+ * been read. */
+AUD_FUNC1 (int64_t, playlist_get_selected_length, int, playlist)
 
 /* Returns the number of entries in a playlist queue.  The entries are numbered
  * starting from zero, lower numbers being played first. */
-AUD_FUNC1 (gint, playlist_queue_count, gint, playlist)
+AUD_FUNC1 (int, playlist_queue_count, int, playlist)
 
 /* Adds an entry to a playlist's queue before the entry numbered <at> in the
  * queue.  If <at> is negative or equal to the number of entries in the queue,
  * adds the entry after the last one in the queue.  The same entry cannot be
  * added to the queue more than once. */
-AUD_FUNC3 (void, playlist_queue_insert, gint, playlist, gint, at, gint, entry)
+AUD_VFUNC3 (playlist_queue_insert, int, playlist, int, at, int, entry)
 
 /* Adds the selected entries in a playlist to the queue, if they are not already
  * in it. */
-AUD_FUNC2 (void, playlist_queue_insert_selected, gint, playlist, gint, at)
+AUD_VFUNC2 (playlist_queue_insert_selected, int, playlist, int, at)
 
 /* Returns the position in the playlist of the entry at a given position in the
  * queue. */
-AUD_FUNC2 (gint, playlist_queue_get_entry, gint, playlist, gint, at)
+AUD_FUNC2 (int, playlist_queue_get_entry, int, playlist, int, at)
 
 /* Returns the position in the queue of the entry at a given position in the
  * playlist.  If it is not in the queue, returns -1. */
-AUD_FUNC2 (gint, playlist_queue_find_entry, gint, playlist, gint, entry)
+AUD_FUNC2 (int, playlist_queue_find_entry, int, playlist, int, entry)
 
 /* Removes a contiguous block of <number> entries starting with the one numbered
  * <at> from the queue. */
-AUD_FUNC3 (void, playlist_queue_delete, gint, playlist, gint, at, gint, number)
+AUD_VFUNC3 (playlist_queue_delete, int, playlist, int, at, int, number)
 
 /* Removes the selected entries in a playlist from the queue, if they are in it. */
-AUD_FUNC1 (void, playlist_queue_delete_selected, gint, playlist)
-
-/* Returns nonzero if any playlist has been changed since the last call of the
- * "playlist update" hook.  If called from within the hook, returns nonzero. */
-AUD_FUNC0 (gboolean, playlist_update_pending)
-
-/* May be called within the "playlist update" hook to determine what range of
- * entries must be updated.  If all entries in all playlists must be updated,
- * returns zero.  If a limited range in a single playlist must be updated,
- * returns nonzero.  In this case, stores the number of that playlist at
- * <playlist>, the number of the first entry to be updated at <at>, and the
- * number of contiguous entries to be updated at <count>.  Note that entries may
- * have been added or removed within this range. */
-AUD_FUNC3 (gboolean, playlist_update_range, gint *, playlist, gint *, at,
- gint *, count)
+AUD_VFUNC1 (playlist_queue_delete_selected, int, playlist)
+
+/* Returns nonzero if a "playlist update" hook call is pending.  If called from
+ * within the hook, the current hook call is not considered pending. */
+AUD_FUNC0 (bool_t, playlist_update_pending)
+
+/* May be called within the "playlist update" hook to determine the update level
+ * and number of entries changed in a playlist.  Returns the update level for
+ * the playlist, storing the number of the first entry changed in <at> and the
+ * number of contiguous entries to be updated in <count>.  Note that entries may
+ * have been added or removed within this range.  If no entries in the playlist
+ * have changed, returns zero. */
+AUD_FUNC3 (int, playlist_updated_range, int, playlist, int *, at, int *, count)
+
+/* Returns nonzero if entries are being added to a playlist in the background. */
+AUD_FUNC1 (bool_t, playlist_add_in_progress, int, playlist)
+
+/* Returns nonzero if entries in a playlist are being scanned for metadata in
+ * the background. */
+AUD_FUNC1 (bool_t, playlist_scan_in_progress, int, playlist)
 
 /* --- PLAYLIST UTILITY API --- */
 
 /* Sorts the entries in a playlist according to one of the schemes listed in
  * playlist.h. */
-AUD_FUNC2 (void, playlist_sort_by_scheme, gint, playlist, gint, scheme)
+AUD_VFUNC2 (playlist_sort_by_scheme, int, playlist, int, scheme)
 
 /* Sorts only the selected entries in a playlist according to one of those
  * schemes. */
-AUD_FUNC2 (void, playlist_sort_selected_by_scheme, gint, playlist, gint, scheme)
+AUD_VFUNC2 (playlist_sort_selected_by_scheme, int, playlist, int, scheme)
 
 /* Removes duplicate entries in a playlist according to one of those schemes.
  * As currently implemented, first sorts the playlist. */
-AUD_FUNC2 (void, playlist_remove_duplicates_by_scheme, gint, playlist, gint,
+AUD_VFUNC2 (playlist_remove_duplicates_by_scheme, int, playlist, int,
  scheme)
 
-/* Removes from a playlist entries of files that do not exists or were not
- * recognized. */
-AUD_FUNC1 (void, playlist_remove_failed, gint, playlist)
+/* Removes all entries referring to unavailable files in a playlist.  ("Remove
+ * failed" is something of a misnomer for the current behavior.)  As currently
+ * implemented, only works for file:// URIs. */
+AUD_VFUNC1 (playlist_remove_failed, int, playlist)
 
 /* Selects all the entries in a playlist that match regular expressions stored
  * in the fields of a tuple.  Does not free the memory used by the tuple.
  * Example: To select all the songs whose title starts with the letter "A",
  * create a blank tuple and set its title field to "^A". */
-AUD_FUNC2 (void, playlist_select_by_patterns, gint, playlist, const Tuple *,
+AUD_VFUNC2 (playlist_select_by_patterns, int, playlist, const Tuple *,
  patterns)
 
 /* Returns nonzero if <filename> refers to a playlist file. */
-AUD_FUNC1 (gboolean, filename_is_playlist, const gchar *, filename)
-
-/* Reads entries from a playlist file and add them to a playlist.  <at> is as in
- * playlist_entry_insert().  Returns nonzero on success. */
-AUD_FUNC3 (gboolean, playlist_insert_playlist, gint, playlist, gint, at,
- const gchar *, filename)
+AUD_FUNC1 (bool_t, filename_is_playlist, const char *, filename)
 
 /* Saves the entries in a playlist to a playlist file.  The format of the file
  * is determined from the file extension.  Returns nonzero on success. */
-AUD_FUNC2 (gboolean, playlist_save, gint, playlist, const gchar *, filename)
-
-/* Begins searching a folder recursively for supported files (including playlist
- * files) and adding them to a playlist.  The search continues in the
- * background.  If <play> is nonzero, begins playback of the first entry added
- * (or a random entry if shuffle is enabled) once the search is complete.
- * CAUTION: Editing the playlist while the search is in progress may lead to
- * unexpected results. */
-AUD_FUNC4 (void, playlist_insert_folder, gint, playlist, gint, at,
- const gchar *, folder, gboolean, play)
-
-/* --- ADDED IN AUDACIOUS 2.5-BETA2 --- */
-
-/* Returns a unique non-negative integer which can be used to identify a given
- * playlist even if its numbering changes (as when playlists are reordered).
- * On error, returns -1. */
-AUD_FUNC1 (gint, playlist_get_unique_id, gint, playlist)
-
-/* Returns the number of the playlist identified by a given integer ID as
- * returned by playlist_get_unique_id().  If the playlist no longer exists,
- * returns -1. */
-AUD_FUNC1 (gint, playlist_by_unique_id, gint, id)
+AUD_FUNC2 (bool_t, playlist_save, int, playlist, const char *, filename)
diff --git a/src/audacious/playlist-files.c b/src/audacious/playlist-files.c
index d2ea3f3..74567ce 100644
--- a/src/audacious/playlist-files.c
+++ b/src/audacious/playlist-files.c
@@ -1,6 +1,6 @@
 /*
  * playlist-files.c
- * Copyright 2010 John Lindgren
+ * Copyright 2010-2011 John Lindgren
  *
  * This file is part of Audacious.
  *
@@ -19,66 +19,154 @@
  * using our public API to be a derived work.
  */
 
+#include <glib.h>
+#include <libaudcore/audstrings.h>
+
+#include "config.h"
 #include "debug.h"
+#include "i18n.h"
+#include "misc.h"
 #include "playlist.h"
 #include "plugin.h"
 #include "plugins.h"
 
-static const gchar * get_extension (const gchar * filename, gboolean quiet)
+static const char * get_extension (const char * filename)
 {
-    const gchar * s = strrchr (filename, '/');
-    if (! s)
-        goto FAIL;
-
-    const gchar * p = strrchr (s + 1, '.');
-    if (! p)
-        goto FAIL;
-
-    return p + 1;
-
-FAIL:
-    if (! quiet)
-        fprintf (stderr, "Failed to parse playlist filename %s.\n", filename);
-    return NULL;
+    const char * ext;
+    uri_parse (filename, NULL, & ext, NULL, NULL);
+    return (ext && ext[0] == '.') ? ext + 1 : NULL;
 }
 
-gboolean filename_is_playlist (const gchar * filename)
+bool_t filename_is_playlist (const char * filename)
 {
-    const gchar * ext = get_extension (filename, TRUE);
-    if (! ext)
-        return FALSE;
-
-    return playlist_plugin_for_extension (ext) ? TRUE : FALSE;
+    const char * ext = get_extension (filename);
+    return (ext && playlist_plugin_for_extension (ext)) ? TRUE : FALSE;
 }
 
-static PlaylistPlugin * get_plugin (const gchar * filename)
+static PluginHandle * get_plugin (const char * filename, bool_t saving)
 {
-    const gchar * ext = get_extension (filename, FALSE);
-    if (! ext)
-        return NULL;
+    const char * ext = get_extension (filename);
+    PluginHandle * plugin = ext ? playlist_plugin_for_extension (ext) : NULL;
 
-    PluginHandle * plugin = playlist_plugin_for_extension (ext);
     if (! plugin)
     {
-        fprintf (stderr, "Unrecognized playlist file type \"%s\".\n", ext);
+        char * error = str_printf (_("Cannot %s %s: unsupported file "
+         "extension."), saving ? _("save") : _("load"), filename);
+        interface_show_error (error);
+        str_unref (error);
         return NULL;
     }
 
-    return plugin_get_header (plugin);
+    return plugin;
 }
 
-gboolean playlist_insert_playlist (gint list, gint at, const gchar * filename)
+bool_t playlist_load (const char * filename, char * * title,
+ Index * * filenames_p, Index * * tuples_p)
 {
     AUDDBG ("Loading playlist %s.\n", filename);
-    PlaylistPlugin * pp = get_plugin (filename);
-    g_return_val_if_fail (pp && pp->load, FALSE);
-    return pp->load (filename, list, at);
+
+    PluginHandle * plugin = get_plugin (filename, FALSE);
+    if (! plugin)
+        return FALSE;
+
+    PlaylistPlugin * pp = plugin_get_header (plugin);
+    g_return_val_if_fail (pp && PLUGIN_HAS_FUNC (pp, load), FALSE);
+
+    VFSFile * file = vfs_fopen (filename, "r");
+    if (! file)
+        return FALSE;
+
+    Index * filenames = index_new ();
+    Index * tuples = index_new ();
+    bool_t success = pp->load (filename, file, title, filenames, tuples);
+
+    vfs_fclose (file);
+
+    if (! success)
+    {
+        index_free (filenames);
+        index_free (tuples);
+        return FALSE;
+    }
+
+    if (index_count (tuples))
+        g_return_val_if_fail (index_count (tuples) == index_count (filenames),
+         FALSE);
+    else
+    {
+        index_free (tuples);
+        tuples = NULL;
+    }
+
+    * filenames_p = filenames;
+    * tuples_p = tuples;
+    return TRUE;
+}
+
+bool_t playlist_insert_playlist_raw (int list, int at,
+ const char * filename)
+{
+    char * title = NULL;
+    Index * filenames, * tuples;
+
+    if (! playlist_load (filename, & title, & filenames, & tuples))
+        return FALSE;
+
+    if (title && ! playlist_entry_count (list))
+        playlist_set_title (list, title);
+
+    playlist_entry_insert_batch_raw (list, at, filenames, tuples, NULL);
+
+    str_unref (title);
+    return TRUE;
 }
 
-gboolean playlist_save (gint list, const gchar * filename)
+bool_t playlist_save (int list, const char * filename)
 {
     AUDDBG ("Saving playlist %s.\n", filename);
-    PlaylistPlugin * pp = get_plugin (filename);
-    g_return_val_if_fail (pp && pp->save, FALSE);
-    return pp->save (filename, list);
+
+    PluginHandle * plugin = get_plugin (filename, TRUE);
+    if (! plugin)
+        return FALSE;
+
+    PlaylistPlugin * pp = plugin_get_header (plugin);
+    g_return_val_if_fail (pp && PLUGIN_HAS_FUNC (pp, load), FALSE);
+
+    bool_t fast = get_bool (NULL, "metadata_on_play");
+
+    VFSFile * file = vfs_fopen (filename, "w");
+    if (! file)
+        return FALSE;
+
+    char * title = playlist_get_title (list);
+
+    int entries = playlist_entry_count (list);
+    Index * filenames = index_new ();
+    index_allocate (filenames, entries);
+    Index * tuples = index_new ();
+    index_allocate (tuples, entries);
+
+    for (int i = 0; i < entries; i ++)
+    {
+        index_append (filenames, playlist_entry_get_filename (list, i));
+        index_append (tuples, playlist_entry_get_tuple (list, i, fast));
+    }
+
+    bool_t success = pp->save (filename, file, title, filenames, tuples);
+
+    vfs_fclose (file);
+    str_unref (title);
+
+    for (int i = 0; i < entries; i ++)
+    {
+        str_unref (index_get (filenames, i));
+        Tuple * tuple = index_get (tuples, i);
+        if (tuple)
+            tuple_unref (tuple);
+    }
+
+    index_free (filenames);
+    index_free (tuples);
+
+    return success;
 }
diff --git a/src/audacious/playlist-new.c b/src/audacious/playlist-new.c
index 0c26db2..af674df 100644
--- a/src/audacious/playlist-new.c
+++ b/src/audacious/playlist-new.c
@@ -19,30 +19,44 @@
  * using our public API to be a derived work.
  */
 
-#include <assert.h>
+#include <pthread.h>
+#include <stdio.h>
 #include <stdlib.h>
+#include <string.h>
 #include <time.h>
 
 #include <glib.h>
 
 #include <libaudcore/audstrings.h>
 #include <libaudcore/hook.h>
-#include <libaudcore/stringpool.h>
-#include <libaudcore/tuple_formatter.h>
+#include <libaudcore/tuple.h>
 
-#include "audconfig.h"
 #include "config.h"
 #include "i18n.h"
 #include "misc.h"
 #include "playback.h"
 #include "playlist.h"
-#include "playlist-utils.h"
 #include "plugins.h"
 #include "util.h"
 
-#define SCAN_THREADS 4
+enum {RESUME_STOP, RESUME_PLAY, RESUME_PAUSE};
+
+#define SCAN_THREADS 2
 #define STATE_FILE "playlist-state"
 
+#define ENTER pthread_mutex_lock (& mutex)
+#define LEAVE pthread_mutex_unlock (& mutex)
+
+#define LEAVE_RET_VOID do { \
+    pthread_mutex_unlock (& mutex); \
+    return; \
+} while (0)
+
+#define LEAVE_RET(ret) do { \
+    pthread_mutex_unlock (& mutex); \
+    return ret; \
+} while (0)
+
 #define DECLARE_PLAYLIST \
     Playlist * playlist
 
@@ -51,141 +65,147 @@
     Entry * entry
 
 #define LOOKUP_PLAYLIST do { \
-    playlist = lookup_playlist (playlist_num); \
-    g_return_if_fail (playlist != NULL); \
+    if (! (playlist = lookup_playlist (playlist_num))) \
+        LEAVE_RET_VOID; \
 } while (0)
 
 #define LOOKUP_PLAYLIST_RET(ret) do { \
-    playlist = lookup_playlist (playlist_num); \
-    g_return_val_if_fail (playlist != NULL, ret); \
+    if (! (playlist = lookup_playlist (playlist_num))) \
+        LEAVE_RET(ret); \
 } while (0)
 
 #define LOOKUP_PLAYLIST_ENTRY do { \
-    playlist = lookup_playlist (playlist_num); \
-    g_return_if_fail (playlist != NULL); \
-    entry = lookup_entry (playlist, entry_num); \
-    g_return_if_fail (entry != NULL); \
+    LOOKUP_PLAYLIST; \
+    if (! (entry = lookup_entry (playlist, entry_num))) \
+        LEAVE_RET_VOID; \
 } while (0)
 
 #define LOOKUP_PLAYLIST_ENTRY_RET(ret) do { \
-    playlist = lookup_playlist (playlist_num); \
-    g_return_val_if_fail (playlist != NULL, ret); \
-    entry = lookup_entry (playlist, entry_num); \
-    g_return_val_if_fail (entry != NULL, ret); \
+    LOOKUP_PLAYLIST_RET(ret); \
+    if (! (entry = lookup_entry (playlist, entry_num))) \
+        LEAVE_RET(ret); \
 } while (0)
 
 #define SELECTION_HAS_CHANGED(p, a, c) \
  queue_update (PLAYLIST_UPDATE_SELECTION, p, a, c)
 
-#define METADATA_WILL_CHANGE scan_stop ()
-
-#define METADATA_HAS_CHANGED(p, a, c) do { \
-    scan_reset (); \
-    queue_update (PLAYLIST_UPDATE_METADATA, p, a, c); \
-} while (0)
+#define METADATA_HAS_CHANGED(p, a, c) \
+ queue_update (PLAYLIST_UPDATE_METADATA, p, a, c)
 
-#define PLAYLIST_WILL_CHANGE scan_stop ()
+#define PLAYLIST_HAS_CHANGED(p, a, c) \
+ queue_update (PLAYLIST_UPDATE_STRUCTURE, p, a, c)
 
-#define PLAYLIST_HAS_CHANGED(p, a, c) do { \
-    scan_reset (); \
-    queue_update (PLAYLIST_UPDATE_STRUCTURE, p, a, c); \
-} while (0)
+typedef struct {
+    int level, before, after;
+} Update;
 
 typedef struct {
-    gint number;
-    gchar *filename;
+    int number;
+    char * filename;
     PluginHandle * decoder;
-    Tuple *tuple;
-    gchar * formatted, * title, * artist, * album;
-    gint length;
-    gboolean failed;
-    gboolean selected;
-    gint shuffle_num;
-    gboolean queued;
-    gboolean segmented;
-    gint start;
-    gint end;
+    Tuple * tuple;
+    char * formatted, * title, * artist, * album;
+    int length;
+    bool_t failed;
+    bool_t selected;
+    int shuffle_num;
+    bool_t queued;
+    bool_t segmented;
+    int start, end;
 } Entry;
 
 typedef struct {
-    gint number;
-    gint unique_id;
-    gchar *filename;
-    gchar *title;
-    struct index *entries;
+    int number, unique_id;
+    char * filename, * title;
+    bool_t modified;
+    Index * entries;
     Entry * position;
-    gint selected_count;
-    gint last_shuffle_num;
-    GList *queued;
-    gint64 total_length;
-    gint64 selected_length;
+    int selected_count;
+    int last_shuffle_num;
+    GList * queued;
+    int64_t total_length, selected_length;
+    bool_t scanning, scan_ending;
+    Update next_update, last_update;
 } Playlist;
 
-static gint next_unique_id = 1000;
+static const char * const default_title = N_("New Playlist");
+static const char * const temp_title = N_("Now Playing");
+
+static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
+static pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
+
+/* The unique ID table contains pointers to Playlist for ID's in use and NULL
+ * for "dead" (previously used and therefore unavailable) ID's. */
+static GHashTable * unique_id_table = NULL;
+static int next_unique_id = 1000;
 
-static struct index * playlists = NULL;
+static Index * playlists = NULL;
 static Playlist * active_playlist = NULL;
 static Playlist * playing_playlist = NULL;
 
-static gint update_source, update_level;
-static Playlist * update_playlist;
-static gint unchanged_before, unchanged_after;
+static int update_source = 0, update_level;
+static int resume_state, resume_time;
 
-static gint scan_source;
-static GMutex * scan_mutex;
-static GCond * scan_conds[SCAN_THREADS];
-static const gchar * scan_filenames[SCAN_THREADS];
-static PluginHandle * scan_decoders[SCAN_THREADS];
-static Tuple * scan_tuples[SCAN_THREADS];
-static gboolean scan_quit;
-static GThread * scan_threads[SCAN_THREADS];
-static gint scan_positions[SCAN_THREADS];
+typedef struct {
+    Playlist * playlist;
+    Entry * entry;
+} ScanItem;
+
+static pthread_t scan_threads[SCAN_THREADS];
+static bool_t scan_quit;
+static int scan_playlist, scan_row;
+static GQueue scan_queue = G_QUEUE_INIT;
+static ScanItem * scan_items[SCAN_THREADS];
 
 static void * scanner (void * unused);
+static void scan_trigger (void);
 
-static gchar *title_from_tuple(Tuple * tuple)
-{
-    const gchar *format = tuple_get_string(tuple, FIELD_FORMATTER, NULL);
+static char * title_format;
 
-    if (format == NULL)
-        format = get_gentitle_format();
+static char * title_from_tuple (Tuple * tuple)
+{
+    if (! title_format)
+        title_format = get_string (NULL, "generic_title_format");
 
-    return tuple_formatter_make_title_string(tuple, format);
+    return tuple_format_title (tuple, title_format);
 }
 
 static void entry_set_tuple_real (Entry * entry, Tuple * tuple)
 {
     /* Hack: We cannot refresh segmented entries (since their info is read from
      * the cue sheet when it is first loaded), so leave them alone. -jlindgren */
-    if (entry->segmented && ! tuple)
+    if (entry->segmented && entry->tuple)
+    {
+        if (tuple)
+            tuple_unref (tuple);
         return;
+    }
 
-    if (entry->tuple != NULL)
-        tuple_free (entry->tuple);
+    if (entry->tuple)
+        tuple_unref (entry->tuple);
     entry->tuple = tuple;
 
-    g_free (entry->formatted);
-    stringpool_unref (entry->title);
-    stringpool_unref (entry->artist);
-    stringpool_unref (entry->album);
+    str_unref (entry->formatted);
+    str_unref (entry->title);
+    str_unref (entry->artist);
+    str_unref (entry->album);
+
+    describe_song (entry->filename, tuple, & entry->title, & entry->artist, & entry->album);
 
-    if (tuple == NULL)
+    if (! tuple)
     {
         entry->formatted = NULL;
-        entry->title = NULL;
-        entry->artist = NULL;
-        entry->album = NULL;
         entry->length = 0;
         entry->segmented = FALSE;
-        entry->start = entry->end = -1;
+        entry->start = 0;
+        entry->end = -1;
     }
     else
     {
         entry->formatted = title_from_tuple (tuple);
-        describe_song (entry->filename, tuple, & entry->title, & entry->artist,
-         & entry->album);
         entry->length = tuple_get_int (tuple, FIELD_LENGTH, NULL);
-        entry->length = MAX (entry->length, 0);
+        if (entry->length < 0)
+            entry->length = 0;
 
         if (tuple_get_value_type (tuple, FIELD_SEGMENT_START, NULL) == TUPLE_INT)
         {
@@ -205,20 +225,18 @@ static void entry_set_tuple_real (Entry * entry, Tuple * tuple)
 
 static void entry_set_tuple (Playlist * playlist, Entry * entry, Tuple * tuple)
 {
-    if (entry->tuple != NULL)
+    if (entry->tuple)
     {
         playlist->total_length -= entry->length;
-
         if (entry->selected)
             playlist->selected_length -= entry->length;
     }
 
     entry_set_tuple_real (entry, tuple);
 
-    if (tuple != NULL)
+    if (tuple)
     {
         playlist->total_length += entry->length;
-
         if (entry->selected)
             playlist->selected_length += entry->length;
     }
@@ -230,10 +248,35 @@ static void entry_set_failed (Playlist * playlist, Entry * entry)
     entry->failed = TRUE;
 }
 
-static Entry * entry_new (gchar * filename, PluginHandle * decoder, Tuple *
- tuple)
+static void entry_cancel_scan (Entry * entry)
+{
+    GList * next;
+    for (GList * node = scan_queue.head; node; node = next)
+    {
+        ScanItem * item = node->data;
+        next = node->next;
+
+        if (item->entry == entry)
+        {
+            g_queue_delete_link (& scan_queue, node);
+            g_slice_free (ScanItem, item);
+        }
+    }
+
+    for (int i = 0; i < SCAN_THREADS; i ++)
+    {
+        if (scan_items[i] && scan_items[i]->entry == entry)
+        {
+            g_slice_free (ScanItem, scan_items[i]);
+            scan_items[i] = NULL;
+        }
+    }
+}
+
+static Entry * entry_new (char * filename, Tuple * tuple,
+ PluginHandle * decoder)
 {
-    Entry * entry = g_malloc (sizeof (Entry));
+    Entry * entry = g_slice_new (Entry);
 
     entry->filename = filename;
     entry->decoder = decoder;
@@ -248,7 +291,8 @@ static Entry * entry_new (gchar * filename, PluginHandle * decoder, Tuple *
     entry->shuffle_num = 0;
     entry->queued = FALSE;
     entry->segmented = FALSE;
-    entry->start = entry->end = -1;
+    entry->start = 0;
+    entry->end = -1;
 
     entry_set_tuple_real (entry, tuple);
     return entry;
@@ -256,36 +300,41 @@ static Entry * entry_new (gchar * filename, PluginHandle * decoder, Tuple *
 
 static void entry_free (Entry * entry)
 {
-    g_free(entry->filename);
+    entry_cancel_scan (entry);
 
-    if (entry->tuple != NULL)
-        tuple_free(entry->tuple);
+    str_unref (entry->filename);
+    if (entry->tuple)
+        tuple_unref (entry->tuple);
 
-    g_free (entry->formatted);
-    stringpool_unref (entry->title);
-    stringpool_unref (entry->artist);
-    stringpool_unref (entry->album);
-    g_free (entry);
+    str_unref (entry->formatted);
+    str_unref (entry->title);
+    str_unref (entry->artist);
+    str_unref (entry->album);
+    g_slice_free (Entry, entry);
 }
 
-static void entry_check_has_decoder (Playlist * playlist, Entry * entry)
+static int new_unique_id (int preferred)
 {
-    if (entry->decoder != NULL || entry->failed)
-        return;
+    if (preferred >= 0 && ! g_hash_table_lookup_extended (unique_id_table,
+     GINT_TO_POINTER (preferred), NULL, NULL))
+        return preferred;
 
-    entry->decoder = file_find_decoder (entry->filename, FALSE);
-    if (! entry->decoder)
-        entry_set_failed (playlist, entry);
+    while (g_hash_table_lookup_extended (unique_id_table,
+     GINT_TO_POINTER (next_unique_id), NULL, NULL))
+        next_unique_id ++;
+
+    return next_unique_id ++;
 }
 
-static Playlist * playlist_new (void)
+static Playlist * playlist_new (int id)
 {
-    Playlist * playlist = g_malloc (sizeof (Playlist));
+    Playlist * playlist = g_slice_new (Playlist);
 
     playlist->number = -1;
-    playlist->unique_id = next_unique_id ++;
+    playlist->unique_id = new_unique_id (id);
     playlist->filename = NULL;
-    playlist->title = g_strdup(_("Untitled Playlist"));
+    playlist->title = str_get (_(default_title));
+    playlist->modified = TRUE;
     playlist->entries = index_new();
     playlist->position = NULL;
     playlist->selected_count = 0;
@@ -293,435 +342,459 @@ static Playlist * playlist_new (void)
     playlist->queued = NULL;
     playlist->total_length = 0;
     playlist->selected_length = 0;
+    playlist->scanning = FALSE;
+    playlist->scan_ending = FALSE;
+
+    memset (& playlist->last_update, 0, sizeof (Update));
+    memset (& playlist->next_update, 0, sizeof (Update));
 
+    g_hash_table_insert (unique_id_table, GINT_TO_POINTER (playlist->unique_id), playlist);
     return playlist;
 }
 
 static void playlist_free (Playlist * playlist)
 {
-    gint count;
+    g_hash_table_insert (unique_id_table, GINT_TO_POINTER (playlist->unique_id), NULL);
 
-    g_free(playlist->filename);
-    g_free(playlist->title);
+    str_unref (playlist->filename);
+    str_unref (playlist->title);
 
-    for (count = 0; count < index_count(playlist->entries); count++)
-        entry_free(index_get(playlist->entries, count));
+    for (int count = 0; count < index_count (playlist->entries); count ++)
+        entry_free (index_get (playlist->entries, count));
 
-    index_free(playlist->entries);
-    g_list_free(playlist->queued);
-    g_free(playlist);
+    index_free (playlist->entries);
+    g_list_free (playlist->queued);
+    g_slice_free (Playlist, playlist);
 }
 
-static void number_playlists(gint at, gint length)
+static void number_playlists (int at, int length)
 {
-    gint count;
-
-    for (count = 0; count < length; count++)
+    for (int count = 0; count < length; count ++)
     {
         Playlist * playlist = index_get (playlists, at + count);
         playlist->number = at + count;
     }
 }
 
-static Playlist * lookup_playlist (gint playlist_num)
+static Playlist * lookup_playlist (int playlist_num)
 {
-    /* Not initted or already shut down */
-    if (! playlists)
-        return NULL;
-
-    if (playlist_num < 0 || playlist_num >= index_count(playlists))
-        return NULL;
-
-    return index_get(playlists, playlist_num);
+    return (playlists && playlist_num >= 0 && playlist_num < index_count
+     (playlists)) ? index_get (playlists, playlist_num) : NULL;
 }
 
-static void number_entries (Playlist * playlist, gint at, gint length)
+static void number_entries (Playlist * playlist, int at, int length)
 {
-    gint count;
-
-    for (count = 0; count < length; count++)
+    for (int count = 0; count < length; count ++)
     {
         Entry * entry = index_get (playlist->entries, at + count);
         entry->number = at + count;
     }
 }
 
-static Entry * lookup_entry (Playlist * playlist, gint entry_num)
+static Entry * lookup_entry (Playlist * playlist, int entry_num)
 {
-    if (entry_num < 0 || entry_num >= index_count(playlist->entries))
-        return NULL;
-
-    return index_get(playlist->entries, entry_num);
+    return (entry_num >= 0 && entry_num < index_count (playlist->entries)) ?
+     index_get (playlist->entries, entry_num) : NULL;
 }
 
-static gboolean update (void * unused)
+static bool_t update (void * unused)
 {
-    hook_call ("playlist update", GINT_TO_POINTER (update_level));
-    update_source = 0;
-    return FALSE;
-}
+    ENTER;
 
-static void queue_update (gint level, Playlist * list, gint at, gint count)
-{
-    if (! update_source)
+    for (int i = 0; i < index_count (playlists); i ++)
     {
-        update_source = g_idle_add_full (G_PRIORITY_HIGH_IDLE, update, NULL,
-         NULL);
-        update_level = 0;
-        update_playlist = list;
-        unchanged_before = list ? index_count (list->entries) : 0;
-        unchanged_after = list ? index_count (list->entries) : 0;
+        Playlist * p = index_get (playlists, i);
+        memcpy (& p->last_update, & p->next_update, sizeof (Update));
+        memset (& p->next_update, 0, sizeof (Update));
     }
 
-    update_level = MAX (update_level, level);
+    int level = update_level;
+    update_level = 0;
 
-    if (list && list == update_playlist)
-    {
-        unchanged_before = MIN (unchanged_before, at);
-        unchanged_after = MIN (unchanged_after, index_count (list->entries) - at
-         - count);
-    }
-    else
+    if (update_source)
     {
-        update_playlist = NULL;
-        unchanged_before = 0;
-        unchanged_after = 0;
+        g_source_remove (update_source);
+        update_source = 0;
     }
-}
-
-gboolean playlist_update_pending (void)
-{
-    return update_source ? TRUE : FALSE;
-}
-
-gboolean playlist_update_range (gint * playlist, gint * at, gint * count)
-{
-    g_return_val_if_fail (update_source, FALSE);
 
-    if (! update_playlist)
-        return FALSE;
+    LEAVE;
 
-    * playlist = update_playlist->number;
-    * at = unchanged_before;
-    * count = index_count (update_playlist->entries) - unchanged_before -
-     unchanged_after;
-    return TRUE;
+    hook_call ("playlist update", GINT_TO_POINTER (level));
+    return FALSE;
 }
 
-/* scan_mutex must be locked! */
-void scan_receive (void)
+static void queue_update (int level, int list, int at, int count)
 {
-    for (gint i = 0; i < SCAN_THREADS; i ++)
+    Playlist * p = lookup_playlist (list);
+
+    if (p)
     {
-        if (! scan_filenames[i] || scan_decoders[i])
-            continue; /* thread not in use or still working */
+        if (level >= PLAYLIST_UPDATE_METADATA)
+        {
+            p->modified = TRUE;
 
-        Entry * entry = index_get (active_playlist->entries, scan_positions[i]);
+            if (! get_bool (NULL, "metadata_on_play"))
+            {
+                p->scanning = TRUE;
+                p->scan_ending = FALSE;
+                scan_trigger ();
+            }
+        }
 
-        if (scan_tuples[i])
-            entry_set_tuple (active_playlist, entry, scan_tuples[i]);
+        if (p->next_update.level)
+        {
+            p->next_update.level = MAX (p->next_update.level, level);
+            p->next_update.before = MIN (p->next_update.before, at);
+            p->next_update.after = MIN (p->next_update.after,
+             index_count (p->entries) - at - count);
+        }
         else
-            entry_set_failed (active_playlist, entry);
+        {
+            p->next_update.level = level;
+            p->next_update.before = at;
+            p->next_update.after = index_count (p->entries) - at - count;
+        }
+    }
 
-        scan_filenames[i] = NULL;
-        scan_tuples[i] = NULL;
+    update_level = MAX (update_level, level);
 
-        queue_update (PLAYLIST_UPDATE_METADATA, active_playlist,
-         scan_positions[i], 1);
-    }
+    if (! update_source)
+        update_source = g_idle_add_full (G_PRIORITY_HIGH, update, NULL, NULL);
 }
 
-static gboolean scan_next (void * unused)
+bool_t playlist_update_pending (void)
 {
-    gint entries = index_count (active_playlist->entries);
-    gint search = 0;
-
-    g_mutex_lock (scan_mutex);
-
-    if (scan_source)
-    {
-        g_source_remove (scan_source);
-        scan_source = 0;
-    }
+    ENTER;
+    bool_t pending = update_level ? TRUE : FALSE;
+    LEAVE_RET (pending);
+}
 
-    scan_receive ();
+int playlist_updated_range (int playlist_num, int * at, int * count)
+{
+    ENTER;
+    DECLARE_PLAYLIST;
+    LOOKUP_PLAYLIST_RET (0);
 
-    for (gint i = 0; i < SCAN_THREADS; i ++)
-        search = MAX (search, scan_positions[i] + 1);
+    Update * u = & playlist->last_update;
 
-    for (gint i = 0; i < SCAN_THREADS; i ++)
-    {
-        if (scan_filenames[i])
-            continue; /* thread already in use */
+    int level = u->level;
+    * at = u->before;
+    * count = index_count (playlist->entries) - u->before - u->after;
 
-        for (; search < entries; search ++)
-        {
-            Entry * entry = index_get (active_playlist->entries, search);
+    LEAVE_RET (level);
+}
 
-            if (entry->tuple)
-                continue;
+bool_t playlist_scan_in_progress (int playlist_num)
+{
+    ENTER;
+    DECLARE_PLAYLIST;
+    LOOKUP_PLAYLIST_RET (FALSE);
 
-            entry_check_has_decoder (active_playlist, entry);
-            if (entry->failed)
-                continue;
+    bool_t scanning = playlist->scanning || playlist->scan_ending;
 
-            vfs_prepare_filename (entry->filename);
+    LEAVE_RET (scanning);
+}
 
-            scan_positions[i] = search;
-            scan_filenames[i] = entry->filename;
-            scan_decoders[i] = entry->decoder;
-            g_cond_signal (scan_conds[i]);
+static bool_t entry_scan_is_queued (Entry * entry)
+{
+    for (GList * node = scan_queue.head; node; node = node->next)
+    {
+        ScanItem * item = node->data;
+        if (item->entry == entry)
+            return TRUE;
+    }
 
-            search ++;
-            break;
-        }
+    for (int i = 0; i < SCAN_THREADS; i ++)
+    {
+        if (scan_items[i] && scan_items[i]->entry == entry)
+            return TRUE;
     }
 
-    g_mutex_unlock (scan_mutex);
     return FALSE;
 }
 
-static void scan_continue (void)
+static void entry_queue_scan (Playlist * playlist, Entry * entry)
 {
-    if (! scan_source)
-        scan_source = g_idle_add_full (G_PRIORITY_LOW, scan_next, NULL, NULL);
+    if (entry_scan_is_queued (entry))
+        return;
+
+    ScanItem * item = g_slice_new (ScanItem);
+    item->playlist = playlist;
+    item->entry = entry;
+    g_queue_push_tail (& scan_queue, item);
+
+    pthread_cond_broadcast (& cond);
 }
 
-static void scan_reset (void)
+static void check_scan_complete (Playlist * p)
 {
-    for (gint i = 0; i < SCAN_THREADS; i ++)
+    if (! p->scan_ending)
+        return;
+
+    for (GList * node = scan_queue.head; node; node = node->next)
+    {
+        ScanItem * item = node->data;
+        if (item->playlist == p)
+            return;
+    }
+
+    for (int i = 0; i < SCAN_THREADS; i ++)
     {
-        assert (! scan_filenames[i]); /* scan in progress == very, very bad */
-        scan_positions[i] = -1;
+        if (scan_items[i] && scan_items[i]->playlist == p)
+            return;
     }
 
-    scan_continue ();
+    p->scan_ending = FALSE;
+
+    event_queue_cancel ("playlist scan complete", NULL);
+    event_queue ("playlist scan complete", NULL);
 }
 
-static void scan_stop (void)
+static ScanItem * entry_find_to_scan (void)
 {
-    g_mutex_lock (scan_mutex);
+    ScanItem * item = g_queue_pop_head (& scan_queue);
+    if (item)
+        return item;
 
-    if (scan_source != 0)
+    while (scan_playlist < index_count (playlists))
     {
-        g_source_remove (scan_source);
-        scan_source = 0;
-    }
+        Playlist * playlist = index_get (playlists, scan_playlist);
 
-    for (gint i = 0; i < SCAN_THREADS; i ++)
-    {
-        if (! scan_filenames[i])
-            continue;
+        if (playlist->scanning)
+        {
+            while (scan_row < index_count (playlist->entries))
+            {
+                Entry * entry = index_get (playlist->entries, scan_row);
+
+                if (! entry->tuple && ! entry_scan_is_queued (entry))
+                {
+                    item = g_slice_new (ScanItem);
+                    item->playlist = playlist;
+                    item->entry = entry;
+                    return item;
+                }
 
-        while (scan_decoders[i])
-            g_cond_wait (scan_conds[i], scan_mutex);
+                scan_row ++;
+            }
+
+            playlist->scanning = FALSE;
+            playlist->scan_ending = TRUE;
+            check_scan_complete (playlist);
+        }
+
+        scan_playlist ++;
+        scan_row = 0;
     }
 
-    scan_receive ();
-    g_mutex_unlock (scan_mutex);
+    return NULL;
 }
 
 static void * scanner (void * data)
 {
-    gint i = GPOINTER_TO_INT (data);
+    ENTER;
 
-    g_mutex_lock (scan_mutex);
-    g_cond_signal (scan_conds[i]);
+    int i = GPOINTER_TO_INT (data);
 
-    while (1)
+    while (! scan_quit)
     {
-        g_cond_wait (scan_conds[i], scan_mutex);
-
-        if (scan_quit)
-            break;
+        if (! scan_items[i])
+            scan_items[i] = entry_find_to_scan ();
 
-        if (! scan_filenames[i])
+        if (! scan_items[i])
+        {
+            pthread_cond_wait (& cond, & mutex);
             continue;
+        }
 
-        scan_tuples[i] = file_read_tuple (scan_filenames[i], scan_decoders[i]);
-        scan_decoders[i] = NULL;
-        g_cond_signal (scan_conds[i]);
-        scan_continue ();
-    }
+        Playlist * playlist = scan_items[i]->playlist;
+        Entry * entry = scan_items[i]->entry;
+        char * filename = str_ref (entry->filename);
+        PluginHandle * decoder = entry->decoder;
+        bool_t need_tuple = entry->tuple ? FALSE : TRUE;
 
-    g_mutex_unlock (scan_mutex);
-    return NULL;
-}
+        LEAVE;
 
-/* As soon as we know the caller is looking for metadata, we start the threaded
- * scanner.  Though it may be faster in the short run simply to scan the entry
- * we are concerned with in the main thread, this is better in the long run
- * because the scanner can work on the following entries while the caller is
- * processing this one. */
-static gboolean scan_threaded (Playlist * playlist, Entry * entry)
-{
-    gint i;
+        if (! decoder)
+            decoder = file_find_decoder (filename, FALSE);
 
-    if (playlist != active_playlist)
-        return FALSE;
+        Tuple * tuple = (need_tuple && decoder) ? file_read_tuple (filename, decoder) : NULL;
 
-    scan_next (NULL);
+        ENTER;
 
-    if (entry->tuple)
-        return TRUE;
+        str_unref (filename);
 
-    for (i = 0; i < SCAN_THREADS; i ++)
-    {
-        if (entry->number == scan_positions[i])
-            goto FOUND;
-    }
+        if (! scan_items[i]) /* scan canceled */
+        {
+            if (tuple)
+                tuple_unref (tuple);
+            continue;
+        }
 
-    return FALSE;
+        entry->decoder = decoder;
 
-FOUND:
-    g_mutex_lock (scan_mutex);
-    scan_receive ();
+        if (tuple)
+        {
+            entry_set_tuple (playlist, entry, tuple);
+            queue_update (PLAYLIST_UPDATE_METADATA, playlist->number, entry->number, 1);
+        }
+        else if (need_tuple || ! decoder)
+        {
+            entry_set_failed (playlist, entry);
+            queue_update (PLAYLIST_UPDATE_METADATA, playlist->number, entry->number, 1);
+        }
 
-    while (scan_filenames[i])
-    {
-        g_cond_wait (scan_conds[i], scan_mutex);
-        scan_receive ();
+        g_slice_free (ScanItem, scan_items[i]);
+        scan_items[i] = NULL;
+
+        pthread_cond_broadcast (& cond);
+        check_scan_complete (playlist);
     }
 
-    g_mutex_unlock (scan_mutex);
-    return TRUE;
+    LEAVE_RET (NULL);
 }
 
-static void check_scanned (Playlist * playlist, Entry * entry)
+static void scan_trigger (void)
 {
-    if (entry->tuple)
-        return;
-    if (scan_threaded (playlist, entry))
-        return;
-
-    entry_check_has_decoder (playlist, entry);
-    if (entry->failed)
-        return;
-
-    entry_set_tuple (playlist, entry, file_read_tuple (entry->filename,
-     entry->decoder));
-    if (! entry->tuple)
-        entry_set_failed (playlist, entry);
-
-    queue_update (PLAYLIST_UPDATE_METADATA, playlist, entry->number, 1);
+    scan_playlist = 0;
+    scan_row = 0;
+    pthread_cond_broadcast (& cond);
 }
 
-static void check_selected_scanned (Playlist * playlist)
+/* mutex may be unlocked during the call */
+static Entry * get_entry (int playlist_num, int entry_num,
+ bool_t need_decoder, bool_t need_tuple)
 {
-    gint entries = index_count (playlist->entries);
-    for (gint count = 0; count < entries; count++)
+    while (1)
     {
-        Entry * entry = index_get (playlist->entries, count);
-        if (entry->selected)
-            check_scanned (playlist, entry);
+        Playlist * playlist = lookup_playlist (playlist_num);
+        Entry * entry = playlist ? lookup_entry (playlist, entry_num) : NULL;
+
+        if (! entry || entry->failed)
+            return entry;
+
+        if ((need_decoder && ! entry->decoder) || (need_tuple && ! entry->tuple))
+        {
+            entry_queue_scan (playlist, entry);
+            pthread_cond_wait (& cond, & mutex);
+            continue;
+        }
+
+        return entry;
     }
 }
 
-static void check_all_scanned (Playlist * playlist)
+/* mutex may be unlocked during the call */
+static Entry * get_playback_entry (bool_t need_decoder, bool_t need_tuple)
 {
-    gint entries = index_count (playlist->entries);
-    for (gint count = 0; count < entries; count++)
-        check_scanned (playlist, index_get (playlist->entries, count));
+    while (1)
+    {
+        Entry * entry = playing_playlist ? playing_playlist->position : NULL;
+
+        if (! entry || entry->failed)
+            return entry;
+
+        if ((need_decoder && ! entry->decoder) || (need_tuple && ! entry->tuple))
+        {
+            entry_queue_scan (playing_playlist, entry);
+            pthread_cond_wait (& cond, & mutex);
+            continue;
+        }
+
+        return entry;
+    }
 }
 
 void playlist_init (void)
 {
     srand (time (NULL));
 
+    ENTER;
+
+    unique_id_table = g_hash_table_new (g_direct_hash, g_direct_equal);
     playlists = index_new ();
-    Playlist * playlist = playlist_new ();
-    index_append (playlists, playlist);
-    playlist->number = 0;
-    active_playlist = playlist;
-    playing_playlist = NULL;
-
-    update_source = 0;
-
-    scan_mutex = g_mutex_new ();
-    memset (scan_filenames, 0, sizeof scan_filenames);
-    memset (scan_decoders, 0, sizeof scan_decoders);
-    memset (scan_tuples, 0, sizeof scan_tuples);
-    scan_source = 0;
-    scan_quit = FALSE;
 
-    g_mutex_lock (scan_mutex);
+    update_level = 0;
 
-    for (gint i = 0; i < SCAN_THREADS; i ++)
-    {
-        scan_conds[i] = g_cond_new ();
-        scan_threads[i] = g_thread_create (scanner, GINT_TO_POINTER (i), TRUE,
-         NULL);
-        g_cond_wait (scan_conds[i], scan_mutex);
-    }
+    scan_quit = FALSE;
+    scan_playlist = scan_row = 0;
 
-    g_mutex_unlock (scan_mutex);
+    for (int i = 0; i < SCAN_THREADS; i ++)
+        pthread_create (& scan_threads[i], NULL, scanner, GINT_TO_POINTER (i));
 
-    scan_reset ();
+    LEAVE;
 }
 
-void playlist_end(void)
+void playlist_end (void)
 {
-    gint count;
+    ENTER;
 
-    scan_stop ();
     scan_quit = TRUE;
+    pthread_cond_broadcast (& cond);
+
+    LEAVE;
+
+    for (int i = 0; i < SCAN_THREADS; i ++)
+        pthread_join (scan_threads[i], NULL);
+
+    ENTER;
 
-    for (gint i = 0; i < SCAN_THREADS; i ++)
+    if (update_source)
     {
-        g_mutex_lock (scan_mutex);
-        g_cond_signal (scan_conds[i]);
-        g_mutex_unlock (scan_mutex);
-        g_thread_join (scan_threads[i]);
-        g_cond_free (scan_conds[i]);
+        g_source_remove (update_source);
+        update_source = 0;
     }
 
-    g_mutex_free (scan_mutex);
+    active_playlist = playing_playlist = NULL;
 
-    if (update_source != 0)
-        g_source_remove(update_source);
+    for (int i = 0; i < index_count (playlists); i ++)
+        playlist_free (index_get (playlists, i));
 
-    for (count = 0; count < index_count(playlists); count++)
-        playlist_free(index_get(playlists, count));
-
-    index_free(playlists);
+    index_free (playlists);
     playlists = NULL;
-    active_playlist = NULL;
-    playing_playlist = NULL;
+
+    g_hash_table_destroy (unique_id_table);
+    unique_id_table = NULL;
+
+    g_free (title_format);
+    title_format = NULL;
+
+    LEAVE;
 }
 
-gint playlist_count(void)
+int playlist_count (void)
 {
-    return index_count(playlists);
+    ENTER;
+    int count = index_count (playlists);
+    LEAVE_RET (count);
 }
 
-void playlist_insert(gint at)
+void playlist_insert_with_id (int at, int id)
 {
-    PLAYLIST_WILL_CHANGE;
+    ENTER;
 
-    if (at < 0 || at > index_count(playlists))
-        at = index_count(playlists);
+    if (at < 0 || at > index_count (playlists))
+        at = index_count (playlists);
 
-    if (at == index_count(playlists))
-        index_append(playlists, playlist_new());
-    else
-        index_insert(playlists, at, playlist_new());
-
-    number_playlists(at, index_count(playlists) - at);
+    index_insert (playlists, at, playlist_new (id));
+    number_playlists (at, index_count (playlists) - at);
 
-    PLAYLIST_HAS_CHANGED (NULL, 0, 0);
+    PLAYLIST_HAS_CHANGED (-1, 0, 0);
+    LEAVE;
 }
 
-void playlist_reorder (gint from, gint to, gint count)
+void playlist_insert (int at)
 {
-    struct index * displaced;
-
-    g_return_if_fail (from >= 0 && from + count <= index_count (playlists));
-    g_return_if_fail (to >= 0 && to + count <= index_count (playlists));
-    g_return_if_fail (count >= 0);
+    playlist_insert_with_id (at, -1);
+}
 
-    PLAYLIST_WILL_CHANGE;
+void playlist_reorder (int from, int to, int count)
+{
+    ENTER;
+    if (from < 0 || from + count > index_count (playlists) || to < 0 || to +
+     count > index_count (playlists) || count < 0)
+        LEAVE_RET_VOID;
 
-    displaced = index_new ();
+    Index * displaced = index_new ();
 
     if (to < from)
         index_copy_append (playlists, to, displaced, from - to);
@@ -743,140 +816,221 @@ void playlist_reorder (gint from, gint to, gint count)
 
     index_free (displaced);
 
-    PLAYLIST_HAS_CHANGED (NULL, 0, 0);
+    PLAYLIST_HAS_CHANGED (-1, 0, 0);
+    LEAVE;
 }
 
-void playlist_delete (gint playlist_num)
+void playlist_delete (int playlist_num)
 {
-    DECLARE_PLAYLIST;
+    if (playback_get_playing () && playlist_num == playlist_get_playing ())
+        playback_stop ();
 
+    ENTER;
+    DECLARE_PLAYLIST;
     LOOKUP_PLAYLIST;
 
-    if (playlist == playing_playlist)
-    {
-        if (playback_get_playing ())
-            playback_stop ();
+    index_delete (playlists, playlist_num, 1);
+    playlist_free (playlist);
 
-        playing_playlist = NULL;
-    }
+    if (! index_count (playlists))
+        index_insert (playlists, 0, playlist_new (-1));
 
-    PLAYLIST_WILL_CHANGE;
-
-    playlist_free(playlist);
-    index_delete(playlists, playlist_num, 1);
-    number_playlists(playlist_num, index_count(playlists) - playlist_num);
-
-    if (index_count(playlists) == 0)
-        playlist_insert(0);
+    number_playlists (playlist_num, index_count (playlists) - playlist_num);
 
     if (playlist == active_playlist)
         active_playlist = index_get (playlists, MIN (playlist_num, index_count
          (playlists) - 1));
+    if (playlist == playing_playlist)
+        playing_playlist = NULL;
 
-    PLAYLIST_HAS_CHANGED (NULL, 0, 0);
+    PLAYLIST_HAS_CHANGED (-1, 0, 0);
+    LEAVE;
 }
 
-gint playlist_get_unique_id (gint playlist_num)
+int playlist_get_unique_id (int playlist_num)
 {
+    ENTER;
     DECLARE_PLAYLIST;
     LOOKUP_PLAYLIST_RET (-1);
-    return playlist->unique_id;
+
+    int unique_id = playlist->unique_id;
+
+    LEAVE_RET (unique_id);
 }
 
-gint playlist_by_unique_id (gint id)
+int playlist_by_unique_id (int id)
 {
-    g_return_val_if_fail (playlists, -1);
-    gint n = index_count (playlists);
+    ENTER;
 
-    for (gint i = 0; i < n; i ++)
-    {
-        Playlist * p = index_get (playlists, i);
-        if (p->unique_id == id)
-            return p->number;
-    }
+    Playlist * p = g_hash_table_lookup (unique_id_table, GINT_TO_POINTER (id));
+    int num = p ? p->number : -1;
 
-    return -1;
+    LEAVE_RET (num);
 }
 
-void playlist_set_filename(gint playlist_num, const gchar * filename)
+void playlist_set_filename (int playlist_num, const char * filename)
 {
+    ENTER;
     DECLARE_PLAYLIST;
-
     LOOKUP_PLAYLIST;
-    PLAYLIST_WILL_CHANGE;
 
-    g_free(playlist->filename);
-    playlist->filename = g_strdup(filename);
+    str_unref (playlist->filename);
+    playlist->filename = str_get (filename);
+    playlist->modified = TRUE;
 
-    PLAYLIST_HAS_CHANGED (NULL, 0, 0);
+    METADATA_HAS_CHANGED (-1, 0, 0);
+    LEAVE;
 }
 
-const gchar *playlist_get_filename(gint playlist_num)
+char * playlist_get_filename (int playlist_num)
 {
+    ENTER;
     DECLARE_PLAYLIST;
-
     LOOKUP_PLAYLIST_RET (NULL);
 
-    return playlist->filename;
+    char * filename = str_ref (playlist->filename);
+
+    LEAVE_RET (filename);
 }
 
-void playlist_set_title(gint playlist_num, const gchar * title)
+void playlist_set_title (int playlist_num, const char * title)
 {
+    ENTER;
     DECLARE_PLAYLIST;
-
     LOOKUP_PLAYLIST;
-    PLAYLIST_WILL_CHANGE;
 
-    g_free(playlist->title);
-    playlist->title = g_strdup(title);
+    str_unref (playlist->title);
+    playlist->title = str_get (title);
+    playlist->modified = TRUE;
 
-    PLAYLIST_HAS_CHANGED (NULL, 0, 0);
+    METADATA_HAS_CHANGED (-1, 0, 0);
+    LEAVE;
 }
 
-const gchar *playlist_get_title(gint playlist_num)
+char * playlist_get_title (int playlist_num)
 {
+    ENTER;
     DECLARE_PLAYLIST;
-
     LOOKUP_PLAYLIST_RET (NULL);
 
-    return playlist->title;
+    char * title = str_ref (playlist->title);
+
+    LEAVE_RET (title);
+}
+
+void playlist_set_modified (int playlist_num, bool_t modified)
+{
+    ENTER;
+    DECLARE_PLAYLIST;
+    LOOKUP_PLAYLIST;
+
+    playlist->modified = modified;
+
+    LEAVE;
 }
 
-void playlist_set_active(gint playlist_num)
+bool_t playlist_get_modified (int playlist_num)
 {
+    ENTER;
     DECLARE_PLAYLIST;
+    LOOKUP_PLAYLIST_RET (FALSE);
+
+    bool_t modified = playlist->modified;
 
+    LEAVE_RET (modified);
+}
+
+void playlist_set_active (int playlist_num)
+{
+    ENTER;
+    DECLARE_PLAYLIST;
     LOOKUP_PLAYLIST;
-    PLAYLIST_WILL_CHANGE;
 
-    active_playlist = playlist;
+    bool_t changed = FALSE;
+
+    if (playlist != active_playlist)
+    {
+        changed = TRUE;
+        active_playlist = playlist;
+    }
 
-    PLAYLIST_HAS_CHANGED (NULL, 0, 0);
+    LEAVE;
+
+    if (changed)
+        hook_call ("playlist activate", NULL);
 }
 
-gint playlist_get_active(void)
+int playlist_get_active (void)
 {
-    return (active_playlist == NULL) ? -1 : active_playlist->number;
+    ENTER;
+    int list = active_playlist ? active_playlist->number : -1;
+    LEAVE_RET (list);
 }
 
-void playlist_set_playing(gint playlist_num)
+void playlist_set_playing (int playlist_num)
 {
+    if (playback_get_playing ())
+        playback_stop ();
+
+    ENTER;
     DECLARE_PLAYLIST;
 
-    if (playlist_num == -1)
+    if (playlist_num < 0)
         playlist = NULL;
     else
         LOOKUP_PLAYLIST;
 
-    if (playing_playlist != NULL && playback_get_playing ())
-        playback_stop();
-
     playing_playlist = playlist;
+
+    LEAVE;
+
+    hook_call ("playlist set playing", NULL);
+}
+
+int playlist_get_playing (void)
+{
+    ENTER;
+    int list = playing_playlist ? playing_playlist->number: -1;
+    LEAVE_RET (list);
 }
 
-gint playlist_get_playing(void)
+int playlist_get_blank (void)
 {
-    return (playing_playlist == NULL) ? -1 : playing_playlist->number;
+    int list = playlist_get_active ();
+    char * title = playlist_get_title (list);
+
+    if (strcmp (title, _(default_title)) || playlist_entry_count (list) > 0)
+    {
+        list = playlist_count ();
+        playlist_insert (list);
+    }
+
+    str_unref (title);
+    return list;
+}
+
+int playlist_get_temporary (void)
+{
+    int list, count = playlist_count ();
+    bool_t found = FALSE;
+
+    for (list = 0; list < count; list ++)
+    {
+        char * title = playlist_get_title (list);
+        found = ! strcmp (title, _(temp_title));
+        str_unref (title);
+
+        if (found)
+            break;
+    }
+
+    if (! found)
+    {
+        list = playlist_get_blank ();
+        playlist_set_title (list, _(temp_title));
+    }
+
+    return list;
 }
 
 /* If we are already at the song or it is already at the top of the shuffle
@@ -888,7 +1042,7 @@ static void set_position (Playlist * playlist, Entry * entry)
 
     playlist->position = entry;
 
-    if (entry == NULL)
+    if (! entry)
         return;
 
     if (! entry->shuffle_num || entry->shuffle_num != playlist->last_shuffle_num)
@@ -898,86 +1052,41 @@ static void set_position (Playlist * playlist, Entry * entry)
     }
 }
 
-gint playlist_entry_count(gint playlist_num)
+int playlist_entry_count (int playlist_num)
 {
+    ENTER;
     DECLARE_PLAYLIST;
-
     LOOKUP_PLAYLIST_RET (0);
 
-    return index_count(playlist->entries);
-}
-
-static void make_entries (gchar * filename, PluginHandle * decoder, Tuple *
- tuple, struct index * list)
-{
-    uri_check_utf8 (& filename, TRUE);
-
-    if (! tuple && ! decoder)
-        decoder = file_find_decoder (filename, TRUE);
-
-    if (! tuple && decoder && input_plugin_has_subtunes (decoder) && ! strchr
-     (filename, '?'))
-        tuple = file_read_tuple (filename, decoder);
+    int count = index_count (playlist->entries);
 
-    if (tuple != NULL && tuple->nsubtunes > 0)
-    {
-        gint subtune;
-
-        for (subtune = 0; subtune < tuple->nsubtunes; subtune++)
-        {
-            gchar *name = g_strdup_printf("%s?%d", filename, (tuple->subtunes == NULL) ? 1 + subtune : tuple->subtunes[subtune]);
-            make_entries(name, decoder, NULL, list);
-        }
-
-        g_free(filename);
-        tuple_free(tuple);
-    }
-    else
-        index_append(list, entry_new(filename, decoder, tuple));
-}
-
-void playlist_entry_insert(gint playlist_num, gint at, gchar * filename, Tuple * tuple)
-{
-    struct index *filenames = index_new();
-    struct index *tuples = index_new();
-
-    index_append(filenames, filename);
-    index_append(tuples, tuple);
-
-    playlist_entry_insert_batch_with_decoders (playlist_num, at, filenames,
-     NULL, tuples);
+    LEAVE_RET (count);
 }
 
-void playlist_entry_insert_batch (gint playlist_num, gint at,
- struct index * filenames, struct index * tuples)
-{
-    playlist_entry_insert_batch_with_decoders (playlist_num, at, filenames,
-     NULL, tuples);
-}
-
-void playlist_entry_insert_batch_with_decoders (gint playlist_num, gint at,
- struct index * filenames, struct index * decoders, struct index * tuples)
+void playlist_entry_insert_batch_raw (int playlist_num, int at,
+ Index * filenames, Index * tuples, Index * decoders)
 {
+    ENTER;
     DECLARE_PLAYLIST;
     LOOKUP_PLAYLIST;
-    PLAYLIST_WILL_CHANGE;
 
-    gint entries = index_count (playlist->entries);
+    int entries = index_count (playlist->entries);
 
     if (at < 0 || at > entries)
         at = entries;
 
-    gint number = index_count (filenames);
-    struct index * add = index_new ();
+    int number = index_count (filenames);
 
-    /* Preallocate space to avoid reallocs.  (The actual number of entries may
-     * turn out to be greater due to subtunes.) */
+    Index * add = index_new ();
     index_allocate (add, number);
 
-    for (gint count = 0; count < number; count ++)
-        make_entries (index_get (filenames, count), decoders ? index_get
-         (decoders, count) : NULL, tuples ? index_get (tuples, count) : NULL,
-         add);
+    for (int i = 0; i < number; i ++)
+    {
+        char * filename = index_get (filenames, i);
+        Tuple * tuple = tuples ? index_get (tuples, i) : NULL;
+        PluginHandle * decoder = decoders ? index_get (decoders, i) : NULL;
+        index_append (add, entry_new (filename, tuple, decoder));
+    }
 
     index_free (filenames);
     if (decoders)
@@ -989,184 +1098,137 @@ void playlist_entry_insert_batch_with_decoders (gint playlist_num, gint at,
     index_merge_insert (playlist->entries, at, add);
     index_free (add);
 
-    number_entries(playlist, at, entries + number - at);
+    number_entries (playlist, at, entries + number - at);
 
-    for (gint count = 0; count < number; count ++)
+    for (int count = 0; count < number; count ++)
     {
         Entry * entry = index_get (playlist->entries, at + count);
         playlist->total_length += entry->length;
     }
 
-    PLAYLIST_HAS_CHANGED (playlist, at, number);
+    PLAYLIST_HAS_CHANGED (playlist->number, at, number);
+    LEAVE;
 }
 
-void playlist_entry_delete(gint playlist_num, gint at, gint number)
+void playlist_entry_delete (int playlist_num, int at, int number)
 {
-    DECLARE_PLAYLIST;
-    gboolean stop = FALSE;
-    gint entries, count;
+    if (playback_get_playing () && playlist_num == playlist_get_playing () &&
+     playlist_get_position (playlist_num) >= at && playlist_get_position
+     (playlist_num) < at + number)
+        playback_stop ();
 
+    ENTER;
+    DECLARE_PLAYLIST;
     LOOKUP_PLAYLIST;
-    PLAYLIST_WILL_CHANGE;
 
-    entries = index_count (playlist->entries);
+    int entries = index_count (playlist->entries);
 
     if (at < 0 || at > entries)
         at = entries;
     if (number < 0 || number > entries - at)
         number = entries - at;
 
-    for (count = 0; count < number; count++)
+    if (playlist->position && playlist->position->number >= at &&
+     playlist->position->number < at + number)
+        set_position (playlist, NULL);
+
+    for (int count = 0; count < number; count ++)
     {
         Entry * entry = index_get (playlist->entries, at + count);
 
-        if (entry == playlist->position)
-        {
-            stop = (playlist == playing_playlist);
-            set_position (playlist, NULL);
-        }
+        if (entry->queued)
+            playlist->queued = g_list_remove (playlist->queued, entry);
 
         if (entry->selected)
         {
-            playlist->selected_count--;
+            playlist->selected_count --;
             playlist->selected_length -= entry->length;
         }
 
-        if (entry->queued)
-            playlist->queued = g_list_remove(playlist->queued, entry);
-
         playlist->total_length -= entry->length;
-
-        entry_free(entry);
+        entry_free (entry);
     }
 
     index_delete (playlist->entries, at, number);
     number_entries (playlist, at, entries - at - number);
 
-    if (stop && playback_get_playing ())
-        playback_stop ();
-
-    PLAYLIST_HAS_CHANGED (playlist, at, 0);
-}
-
-const gchar *playlist_entry_get_filename(gint playlist_num, gint entry_num)
-{
-    DECLARE_PLAYLIST_ENTRY;
-
-    LOOKUP_PLAYLIST_ENTRY_RET (NULL);
-
-    return entry->filename;
+    PLAYLIST_HAS_CHANGED (playlist->number, at, 0);
+    LEAVE;
 }
 
-PluginHandle * playlist_entry_get_decoder (gint playlist_num, gint entry_num,
- gboolean fast)
+char * playlist_entry_get_filename (int playlist_num, int entry_num)
 {
+    ENTER;
     DECLARE_PLAYLIST_ENTRY;
     LOOKUP_PLAYLIST_ENTRY_RET (NULL);
 
-    if (! fast)
-        entry_check_has_decoder (playlist, entry);
-
-    return entry->decoder;
-}
-
-void playlist_entry_set_tuple (gint playlist_num, gint entry_num, Tuple * tuple)
-{
-    DECLARE_PLAYLIST_ENTRY;
-
-    LOOKUP_PLAYLIST_ENTRY;
-    METADATA_WILL_CHANGE;
-
-    entry_set_tuple (playlist, entry, tuple);
+    char * filename = str_ref (entry->filename);
 
-    METADATA_HAS_CHANGED (playlist, entry_num, 1);
+    LEAVE_RET (filename);
 }
 
-const Tuple * playlist_entry_get_tuple (gint playlist_num, gint entry_num,
- gboolean fast)
+PluginHandle * playlist_entry_get_decoder (int playlist_num, int entry_num, bool_t fast)
 {
-    DECLARE_PLAYLIST_ENTRY;
-    LOOKUP_PLAYLIST_ENTRY_RET (NULL);
+    ENTER;
 
-    if (! fast)
-        check_scanned (playlist, entry);
+    Entry * entry = get_entry (playlist_num, entry_num, ! fast, FALSE);
+    PluginHandle * decoder = entry ? entry->decoder : NULL;
 
-    return entry->tuple;
+    LEAVE_RET (decoder);
 }
 
-const gchar * playlist_entry_get_title (gint playlist_num, gint entry_num,
- gboolean fast)
+Tuple * playlist_entry_get_tuple (int playlist_num, int entry_num, bool_t fast)
 {
-    DECLARE_PLAYLIST_ENTRY;
-    LOOKUP_PLAYLIST_ENTRY_RET (NULL);
+    ENTER;
 
-    if (! fast)
-        check_scanned (playlist, entry);
+    Entry * entry = get_entry (playlist_num, entry_num, FALSE, ! fast);
+    Tuple * tuple = entry ? entry->tuple : NULL;
 
-    return (entry->formatted == NULL) ? entry->filename : entry->formatted;
-}
-
-void playlist_entry_describe (gint playlist_num, gint entry_num,
- const gchar * * title, const gchar * * artist, const gchar * * album,
- gboolean fast)
-{
-    * title = * artist = * album = NULL;
-    DECLARE_PLAYLIST_ENTRY;
-    LOOKUP_PLAYLIST_ENTRY;
-
-    if (! fast)
-        check_scanned (playlist, entry);
+    if (tuple)
+        tuple_ref (tuple);
 
-    if (entry->title)
-    {
-        * title = entry->title;
-        * artist = entry->artist;
-        * album = entry->album;
-    }
-    else
-        * title = entry->filename;
+    LEAVE_RET (tuple);
 }
 
-gint playlist_entry_get_length (gint playlist_num, gint entry_num, gboolean fast)
+char * playlist_entry_get_title (int playlist_num, int entry_num, bool_t fast)
 {
-    DECLARE_PLAYLIST_ENTRY;
-    LOOKUP_PLAYLIST_ENTRY_RET (0);
+    ENTER;
 
-    if (! fast)
-        check_scanned (playlist, entry);
+    Entry * entry = get_entry (playlist_num, entry_num, FALSE, ! fast);
+    char * title = entry ? str_ref (entry->formatted ? entry->formatted : entry->filename) : NULL;
 
-    return entry->length;
+    LEAVE_RET (title);
 }
 
-gboolean playlist_entry_is_segmented(gint playlist_num, gint entry_num)
+void playlist_entry_describe (int playlist_num, int entry_num,
+ char * * title, char * * artist, char * * album, bool_t fast)
 {
-    DECLARE_PLAYLIST_ENTRY;
+    ENTER;
 
-    LOOKUP_PLAYLIST_ENTRY_RET (FALSE);
+    Entry * entry = get_entry (playlist_num, entry_num, FALSE, ! fast);
+    * title = (entry && entry->title) ? str_ref (entry->title) : NULL;
+    * artist = (entry && entry->artist) ? str_ref (entry->artist) : NULL;
+    * album = (entry && entry->album) ? str_ref (entry->album) : NULL;
 
-    return entry->segmented;
+    LEAVE;
 }
 
-gint playlist_entry_get_start_time (gint playlist_num, gint entry_num)
+int playlist_entry_get_length (int playlist_num, int entry_num, bool_t fast)
 {
-    DECLARE_PLAYLIST_ENTRY;
+    ENTER;
 
-    LOOKUP_PLAYLIST_ENTRY_RET (-1);
+    Entry * entry = get_entry (playlist_num, entry_num, FALSE, ! fast);
+    int length = entry ? entry->length : 0;
 
-    return entry->start;
+    LEAVE_RET (length);
 }
 
-gint playlist_entry_get_end_time (gint playlist_num, gint entry_num)
+void playlist_set_position (int playlist_num, int entry_num)
 {
-    DECLARE_PLAYLIST_ENTRY;
-
-    LOOKUP_PLAYLIST_ENTRY_RET (-1);
-
-    return entry->end;
-}
+    if (playback_get_playing () && playlist_num == playlist_get_playing ())
+        playback_stop ();
 
-void playlist_set_position (gint playlist_num, gint entry_num)
-{
+    ENTER;
     DECLARE_PLAYLIST_ENTRY;
 
     if (entry_num == -1)
@@ -1177,31 +1239,32 @@ void playlist_set_position (gint playlist_num, gint entry_num)
     else
         LOOKUP_PLAYLIST_ENTRY;
 
-    if (playlist == playing_playlist && playback_get_playing ())
-        playback_stop ();
-
     set_position (playlist, entry);
+    LEAVE;
 
     hook_call ("playlist position", GINT_TO_POINTER (playlist_num));
 }
 
-gint playlist_get_position(gint playlist_num)
+int playlist_get_position (int playlist_num)
 {
+    ENTER;
     DECLARE_PLAYLIST;
-
     LOOKUP_PLAYLIST_RET (-1);
 
-    return (playlist->position == NULL) ? -1 : playlist->position->number;
+    int position = playlist->position ? playlist->position->number : -1;
+
+    LEAVE_RET (position);
 }
 
-void playlist_entry_set_selected(gint playlist_num, gint entry_num, gboolean selected)
+void playlist_entry_set_selected (int playlist_num, int entry_num,
+ bool_t selected)
 {
+    ENTER;
     DECLARE_PLAYLIST_ENTRY;
-
     LOOKUP_PLAYLIST_ENTRY;
 
     if (entry->selected == selected)
-        return;
+        LEAVE_RET_VOID;
 
     entry->selected = selected;
 
@@ -1216,36 +1279,42 @@ void playlist_entry_set_selected(gint playlist_num, gint entry_num, gboolean sel
         playlist->selected_length -= entry->length;
     }
 
-    SELECTION_HAS_CHANGED (playlist, entry_num, 1);
+    SELECTION_HAS_CHANGED (playlist->number, entry_num, 1);
+    LEAVE;
 }
 
-gboolean playlist_entry_get_selected(gint playlist_num, gint entry_num)
+bool_t playlist_entry_get_selected (int playlist_num, int entry_num)
 {
+    ENTER;
     DECLARE_PLAYLIST_ENTRY;
-
     LOOKUP_PLAYLIST_ENTRY_RET (FALSE);
 
-    return entry->selected;
+    bool_t selected = entry->selected;
+
+    LEAVE_RET (selected);
 }
 
-gint playlist_selected_count(gint playlist_num)
+int playlist_selected_count (int playlist_num)
 {
+    ENTER;
     DECLARE_PLAYLIST;
-
     LOOKUP_PLAYLIST_RET (0);
 
-    return playlist->selected_count;
+    int selected_count = playlist->selected_count;
+
+    LEAVE_RET (selected_count);
 }
 
-void playlist_select_all (gint playlist_num, gboolean selected)
+void playlist_select_all (int playlist_num, bool_t selected)
 {
+    ENTER;
     DECLARE_PLAYLIST;
     LOOKUP_PLAYLIST;
 
-    gint entries = index_count (playlist->entries);
-    gint first = entries, last = 0;
+    int entries = index_count (playlist->entries);
+    int first = entries, last = 0;
 
-    for (gint count = 0; count < entries; count ++)
+    for (int count = 0; count < entries; count ++)
     {
         Entry * entry = index_get (playlist->entries, count);
 
@@ -1269,21 +1338,22 @@ void playlist_select_all (gint playlist_num, gboolean selected)
     }
 
     if (first < entries)
-        SELECTION_HAS_CHANGED (playlist, first, last + 1 - first);
+        SELECTION_HAS_CHANGED (playlist->number, first, last + 1 - first);
+
+    LEAVE;
 }
 
-gint playlist_shift (gint playlist_num, gint entry_num, gint distance)
+int playlist_shift (int playlist_num, int entry_num, int distance)
 {
+    ENTER;
     DECLARE_PLAYLIST_ENTRY;
     LOOKUP_PLAYLIST_ENTRY_RET (0);
 
     if (! entry->selected || ! distance)
-        return 0;
-
-    PLAYLIST_WILL_CHANGE;
+        LEAVE_RET (0);
 
-    gint entries = index_count (playlist->entries);
-    gint shift = 0, center, top, bottom;
+    int entries = index_count (playlist->entries);
+    int shift = 0, center, top, bottom;
 
     if (distance < 0)
     {
@@ -1306,37 +1376,37 @@ gint playlist_shift (gint playlist_num, gint entry_num, gint distance)
 
     top = bottom = center;
 
-    for (gint i = 0; i < top; i ++)
+    for (int i = 0; i < top; i ++)
     {
         entry = index_get (playlist->entries, i);
         if (entry->selected)
             top = i;
     }
 
-    for (gint i = entries; i > bottom; i --)
+    for (int i = entries; i > bottom; i --)
     {
         entry = index_get (playlist->entries, i - 1);
         if (entry->selected)
             bottom = i;
     }
 
-    struct index * temp = index_new ();
+    Index * temp = index_new ();
 
-    for (gint i = top; i < center; i ++)
+    for (int i = top; i < center; i ++)
     {
         entry = index_get (playlist->entries, i);
         if (! entry->selected)
             index_append (temp, entry);
     }
 
-    for (gint i = top; i < bottom; i ++)
+    for (int i = top; i < bottom; i ++)
     {
         entry = index_get (playlist->entries, i);
         if (entry->selected)
             index_append (temp, entry);
     }
 
-    for (gint i = center; i < bottom; i ++)
+    for (int i = center; i < bottom; i ++)
     {
         entry = index_get (playlist->entries, i);
         if (! entry->selected)
@@ -1346,95 +1416,107 @@ gint playlist_shift (gint playlist_num, gint entry_num, gint distance)
     index_copy_set (temp, 0, playlist->entries, top, bottom - top);
 
     number_entries (playlist, top, bottom - top);
-    PLAYLIST_HAS_CHANGED (playlist, top, bottom - top);
+    PLAYLIST_HAS_CHANGED (playlist->number, top, bottom - top);
 
-    return shift;
+    LEAVE_RET (shift);
 }
 
-void playlist_delete_selected(gint playlist_num)
+void playlist_delete_selected (int playlist_num)
 {
-    DECLARE_PLAYLIST;
-    gboolean stop = FALSE;
-    gint entries, count;
-    struct index *others;
+    if (playback_get_playing () && playlist_num == playlist_get_playing () &&
+     playlist_get_position (playlist_num) >= 0 && playlist_entry_get_selected
+     (playlist_num, playlist_get_position (playlist_num)))
+        playback_stop ();
 
+    ENTER;
+    DECLARE_PLAYLIST;
     LOOKUP_PLAYLIST;
-    PLAYLIST_WILL_CHANGE;
 
-    entries = index_count (playlist->entries);
-    others = index_new();
+    if (! playlist->selected_count)
+        LEAVE_RET_VOID;
+
+    int entries = index_count (playlist->entries);
+
+    Index * others = index_new ();
+    index_allocate (others, entries - playlist->selected_count);
+
+    if (playlist->position && playlist->position->selected)
+        set_position (playlist, NULL);
 
-    for (count = 0; count < entries; count++)
+    int before = 0, after = 0;
+    bool_t found = FALSE;
+
+    for (int count = 0; count < entries; count++)
     {
         Entry * entry = index_get (playlist->entries, count);
 
         if (entry->selected)
         {
-            if (entry == playlist->position)
-            {
-                stop = (playlist == playing_playlist);
-                set_position (playlist, NULL);
-            }
-
             if (entry->queued)
-                playlist->queued = g_list_remove(playlist->queued, entry);
+                playlist->queued = g_list_remove (playlist->queued, entry);
 
             playlist->total_length -= entry->length;
+            entry_free (entry);
 
-            entry_free(entry);
+            found = TRUE;
+            after = 0;
         }
         else
-            index_append(others, entry);
+        {
+            index_append (others, entry);
+
+            if (found)
+                after ++;
+            else
+                before ++;
+        }
     }
 
-    index_free(playlist->entries);
+    index_free (playlist->entries);
     playlist->entries = others;
 
-    number_entries(playlist, 0, index_count(playlist->entries));
     playlist->selected_count = 0;
     playlist->selected_length = 0;
 
-    if (stop && playback_get_playing ())
-        playback_stop ();
-
-    PLAYLIST_HAS_CHANGED (playlist, 0, index_count (playlist->entries));
+    number_entries (playlist, before, index_count (playlist->entries) - before);
+    PLAYLIST_HAS_CHANGED (playlist->number, before, index_count
+     (playlist->entries) - after - before);
+    LEAVE;
 }
 
-void playlist_reverse(gint playlist_num)
+void playlist_reverse (int playlist_num)
 {
+    ENTER;
     DECLARE_PLAYLIST;
-    gint entries, count;
-    struct index *reversed;
-
     LOOKUP_PLAYLIST;
-    PLAYLIST_WILL_CHANGE;
 
-    entries = index_count(playlist->entries);
-    reversed = index_new();
-    count = entries;
+    int entries = index_count (playlist->entries);
 
-    while (count--)
-        index_append(reversed, index_get(playlist->entries, count));
+    Index * reversed = index_new ();
+    index_allocate (reversed, entries);
 
-    index_free(playlist->entries);
-    playlist->entries = reversed;
+    for (int count = entries; count --; )
+        index_append (reversed, index_get (playlist->entries, count));
 
-    number_entries(playlist, 0, entries);
+    index_free (playlist->entries);
+    playlist->entries = reversed;
 
-    PLAYLIST_HAS_CHANGED (playlist, 0, entries);
+    number_entries (playlist, 0, entries);
+    PLAYLIST_HAS_CHANGED (playlist->number, 0, entries);
+    LEAVE;
 }
 
-void playlist_randomize (gint playlist_num)
+void playlist_randomize (int playlist_num)
 {
+    ENTER;
     DECLARE_PLAYLIST;
     LOOKUP_PLAYLIST;
-    PLAYLIST_WILL_CHANGE;
 
-    gint entries = index_count (playlist->entries);
+    int entries = index_count (playlist->entries);
 
-    for (gint i = 0; i < entries; i ++)
+    for (int i = 0; i < entries; i ++)
     {
-        gint j = i + rand () % (entries - i);
+        int j = i + rand () % (entries - i);
 
         struct entry * entry = index_get (playlist->entries, j);
         index_set (playlist->entries, j, index_get (playlist->entries, i));
@@ -1442,15 +1524,17 @@ void playlist_randomize (gint playlist_num)
     }
 
     number_entries (playlist, 0, entries);
-    PLAYLIST_HAS_CHANGED (playlist, 0, entries);
+    PLAYLIST_HAS_CHANGED (playlist->number, 0, entries);
+    LEAVE;
 }
 
-static gint filename_compare (const void * _a, const void * _b, void * _compare)
+static int filename_compare (const void * _a, const void * _b, void * compare)
 {
     const Entry * a = _a, * b = _b;
-    gint (* compare) (const gchar * a, const gchar * b) = _compare;
 
-    gint diff = compare (a->filename, b->filename);
+    int diff = ((int (*) (const char * a, const char * b)) compare)
+     (a->filename, b->filename);
+
     if (diff)
         return diff;
 
@@ -1458,17 +1542,18 @@ static gint filename_compare (const void * _a, const void * _b, void * _compare)
     return a->number - b->number;
 }
 
-static gint tuple_compare (const void * _a, const void * _b, void * _compare)
+static int tuple_compare (const void * _a, const void * _b, void * compare)
 {
     const Entry * a = _a, * b = _b;
-    gint (* compare) (const Tuple * a, const Tuple * b) = _compare;
 
-    if (a->tuple == NULL)
-        return (b->tuple == NULL) ? 0 : -1;
-    if (b->tuple == NULL)
+    if (! a->tuple)
+        return b->tuple ? -1 : 0;
+    if (! b->tuple)
         return 1;
 
-    gint diff = compare (a->tuple, b->tuple);
+    int diff = ((int (*) (const Tuple * a, const Tuple * b)) compare)
+     (a->tuple, b->tuple);
+
     if (diff)
         return diff;
 
@@ -1476,13 +1561,14 @@ static gint tuple_compare (const void * _a, const void * _b, void * _compare)
     return a->number - b->number;
 }
 
-static gint title_compare (const void * _a, const void * _b, void * _compare)
+static int title_compare (const void * _a, const void * _b, void * compare)
 {
     const Entry * a = _a, * b = _b;
-    gint (* compare) (const gchar * a, const gchar * b) = _compare;
 
-    gint diff = compare (a->formatted ? a->formatted : a->filename, b->formatted
-     ? b->formatted : b->filename);
+    int diff = ((int (*) (const char * a, const char * b)) compare)
+     (a->formatted ? a->formatted : a->filename,
+      b->formatted ? b->formatted : b->filename);
+
     if (diff)
         return diff;
 
@@ -1490,182 +1576,227 @@ static gint title_compare (const void * _a, const void * _b, void * _compare)
     return a->number - b->number;
 }
 
-static void sort (Playlist * playlist, gint (* compare) (const void * a,
+static void sort (Playlist * playlist, int (* compare) (const void * a,
  const void * b, void * inner), void * inner)
 {
-    PLAYLIST_WILL_CHANGE;
-
     index_sort_with_data (playlist->entries, compare, inner);
     number_entries (playlist, 0, index_count (playlist->entries));
 
-    PLAYLIST_HAS_CHANGED (playlist, 0, index_count (playlist->entries));
+    PLAYLIST_HAS_CHANGED (playlist->number, 0, index_count (playlist->entries));
 }
 
-static void sort_selected (Playlist * playlist, gint (* compare) (const void *
+static void sort_selected (Playlist * playlist, int (* compare) (const void *
  a, const void * b, void * inner), void * inner)
 {
-    gint entries, count, count2;
-    struct index *selected;
+    int entries = index_count (playlist->entries);
 
-    PLAYLIST_WILL_CHANGE;
+    Index * selected = index_new ();
+    index_allocate (selected, playlist->selected_count);
 
-    entries = index_count(playlist->entries);
-    selected = index_new();
-
-    for (count = 0; count < entries; count++)
+    for (int count = 0; count < entries; count++)
     {
         Entry * entry = index_get (playlist->entries, count);
         if (entry->selected)
-            index_append(selected, entry);
+            index_append (selected, entry);
     }
 
     index_sort_with_data (selected, compare, inner);
 
-    count2 = 0;
-
-    for (count = 0; count < entries; count++)
+    int count2 = 0;
+    for (int count = 0; count < entries; count++)
     {
         Entry * entry = index_get (playlist->entries, count);
         if (entry->selected)
-            index_set(playlist->entries, count, index_get(selected, count2++));
+            index_set (playlist->entries, count, index_get (selected, count2 ++));
     }
 
-    index_free(selected);
-    number_entries(playlist, 0, entries);
+    index_free (selected);
 
-    PLAYLIST_HAS_CHANGED (playlist, 0, entries);
+    number_entries (playlist, 0, entries);
+    PLAYLIST_HAS_CHANGED (playlist->number, 0, entries);
 }
 
-void playlist_sort_by_filename (gint playlist_num, gint (* compare)
- (const gchar * a, const gchar * b))
+static bool_t entries_are_scanned (Playlist * playlist, bool_t selected)
 {
-    DECLARE_PLAYLIST;
+    int entries = index_count (playlist->entries);
+    for (int count = 0; count < entries; count ++)
+    {
+        Entry * entry = index_get (playlist->entries, count);
+        if (selected && ! entry->selected)
+            continue;
+
+        if (! entry->tuple)
+        {
+            interface_show_error (_("The playlist cannot be sorted because "
+             "metadata scanning is still in progress (or has been disabled)."));
+            return FALSE;
+        }
+    }
+
+    return TRUE;
+}
 
+void playlist_sort_by_filename (int playlist_num, int (* compare)
+ (const char * a, const char * b))
+{
+    ENTER;
+    DECLARE_PLAYLIST;
     LOOKUP_PLAYLIST;
 
-    sort (playlist, filename_compare, compare);
+    sort (playlist, filename_compare, (void *) compare);
+
+    LEAVE;
 }
 
-void playlist_sort_by_tuple (gint playlist_num, gint (* compare)
+void playlist_sort_by_tuple (int playlist_num, int (* compare)
  (const Tuple * a, const Tuple * b))
 {
+    ENTER;
     DECLARE_PLAYLIST;
     LOOKUP_PLAYLIST;
-    check_all_scanned (playlist);
-    sort (playlist, tuple_compare, compare);
+
+    if (entries_are_scanned (playlist, FALSE))
+        sort (playlist, tuple_compare, (void *) compare);
+
+    LEAVE;
 }
 
-void playlist_sort_by_title (gint playlist_num, gint (* compare) (const gchar *
- a, const gchar * b))
+void playlist_sort_by_title (int playlist_num, int (* compare) (const char *
+ a, const char * b))
 {
+    ENTER;
     DECLARE_PLAYLIST;
     LOOKUP_PLAYLIST;
-    check_all_scanned (playlist);
-    sort (playlist, title_compare, compare);
+
+    if (entries_are_scanned (playlist, FALSE))
+        sort (playlist, title_compare, (void *) compare);
+
+    LEAVE;
 }
 
-void playlist_sort_selected_by_filename (gint playlist_num, gint (* compare)
- (const gchar * a, const gchar * b))
+void playlist_sort_selected_by_filename (int playlist_num, int (* compare)
+ (const char * a, const char * b))
 {
+    ENTER;
     DECLARE_PLAYLIST;
-
     LOOKUP_PLAYLIST;
 
-    sort_selected (playlist, filename_compare, compare);
+    sort_selected (playlist, filename_compare, (void *) compare);
+
+    LEAVE;
 }
 
-void playlist_sort_selected_by_tuple (gint playlist_num, gint (* compare)
+void playlist_sort_selected_by_tuple (int playlist_num, int (* compare)
  (const Tuple * a, const Tuple * b))
 {
+    ENTER;
     DECLARE_PLAYLIST;
     LOOKUP_PLAYLIST;
-    check_selected_scanned (playlist);
-    sort_selected (playlist, tuple_compare, compare);
+
+    if (entries_are_scanned (playlist, TRUE))
+        sort_selected (playlist, tuple_compare, (void *) compare);
+
+    LEAVE;
 }
 
-void playlist_sort_selected_by_title (gint playlist_num, gint (* compare)
- (const gchar * a, const gchar * b))
+void playlist_sort_selected_by_title (int playlist_num, int (* compare)
+ (const char * a, const char * b))
 {
+    ENTER;
     DECLARE_PLAYLIST;
     LOOKUP_PLAYLIST;
-    check_selected_scanned (playlist);
-    sort (playlist, title_compare, compare);
+
+    if (entries_are_scanned (playlist, TRUE))
+        sort (playlist, title_compare, (void *) compare);
+
+    LEAVE;
 }
 
 void playlist_reformat_titles (void)
 {
-    gint playlist_num;
+    ENTER;
 
-    METADATA_WILL_CHANGE;
+    g_free (title_format);
+    title_format = NULL;
 
-    for (playlist_num = 0; playlist_num < index_count(playlists); playlist_num++)
+    for (int playlist_num = 0; playlist_num < index_count (playlists);
+     playlist_num ++)
     {
         Playlist * playlist = index_get (playlists, playlist_num);
-        gint entries = index_count(playlist->entries);
-        gint count;
+        int entries = index_count (playlist->entries);
 
-        for (count = 0; count < entries; count++)
+        for (int count = 0; count < entries; count++)
         {
             Entry * entry = index_get (playlist->entries, count);
-            g_free(entry->formatted);
-            entry->formatted = (entry->tuple == NULL) ? NULL : title_from_tuple(entry->tuple);
+            str_unref (entry->formatted);
+            entry->formatted = entry->tuple ? title_from_tuple (entry->tuple) : NULL;
         }
+
+        METADATA_HAS_CHANGED (playlist_num, 0, entries);
     }
 
-    METADATA_HAS_CHANGED (NULL, 0, 0);
+    LEAVE;
 }
 
-void playlist_rescan_real (gint playlist_num, gboolean onlyselected)
+void playlist_trigger_scan (void)
 {
-    DECLARE_PLAYLIST;
-    gint entries, count;
+    ENTER;
+
+    for (int i = 0; i < index_count (playlists); i ++)
+    {
+        Playlist * p = index_get (playlists, i);
+        p->scanning = TRUE;
+    }
+
+    scan_trigger ();
+
+    LEAVE;
+}
 
+static void playlist_rescan_real (int playlist_num, bool_t selected)
+{
+    ENTER;
+    DECLARE_PLAYLIST;
     LOOKUP_PLAYLIST;
-    METADATA_WILL_CHANGE;
 
-    entries = index_count(playlist->entries);
+    int entries = index_count (playlist->entries);
 
-    for (count = 0; count < entries; count++)
+    for (int count = 0; count < entries; count ++)
     {
         Entry * entry = index_get (playlist->entries, count);
-        if (! onlyselected || entry->selected)
+        if (! selected || entry->selected)
         {
             entry_set_tuple (playlist, entry, NULL);
             entry->failed = FALSE;
         }
     }
 
-    METADATA_HAS_CHANGED (playlist, 0, entries);
+    METADATA_HAS_CHANGED (playlist->number, 0, entries);
+    LEAVE;
 }
 
-void playlist_rescan (gint playlist_num)
+void playlist_rescan (int playlist_num)
 {
     playlist_rescan_real (playlist_num, FALSE);
 }
 
-void playlist_rescan_selected (gint playlist_num)
+void playlist_rescan_selected (int playlist_num)
 {
     playlist_rescan_real (playlist_num, TRUE);
 }
 
-void playlist_rescan_file (const gchar * filename)
+void playlist_rescan_file (const char * filename)
 {
-    gint num_playlists = index_count (playlists);
-    gint playlist_num;
+    ENTER;
 
-    METADATA_WILL_CHANGE;
+    int num_playlists = index_count (playlists);
 
-    gchar * copy = NULL;
-    if (! uri_is_utf8 (filename, TRUE))
-        filename = copy = uri_to_utf8 (filename);
-
-    for (playlist_num = 0; playlist_num < num_playlists; playlist_num ++)
+    for (int playlist_num = 0; playlist_num < num_playlists; playlist_num ++)
     {
         Playlist * playlist = index_get (playlists, playlist_num);
-        gint num_entries = index_count (playlist->entries);
-        gint entry_num;
+        int num_entries = index_count (playlist->entries);
 
-        for (entry_num = 0; entry_num < num_entries; entry_num ++)
+        for (int entry_num = 0; entry_num < num_entries; entry_num ++)
         {
             Entry * entry = index_get (playlist->entries, entry_num);
 
@@ -1673,84 +1804,88 @@ void playlist_rescan_file (const gchar * filename)
             {
                 entry_set_tuple (playlist, entry, NULL);
                 entry->failed = FALSE;
+
+                METADATA_HAS_CHANGED (playlist_num, entry_num, 1);
             }
         }
     }
 
-    g_free (copy);
-
-    METADATA_HAS_CHANGED (NULL, 0, 0);
+    LEAVE;
 }
 
-gint64 playlist_get_total_length (gint playlist_num, gboolean fast)
+int64_t playlist_get_total_length (int playlist_num)
 {
+    ENTER;
     DECLARE_PLAYLIST;
     LOOKUP_PLAYLIST_RET (0);
 
-    if (! fast)
-        check_all_scanned (playlist);
+    int64_t length = playlist->total_length;
 
-    return playlist->total_length;
+    LEAVE_RET (length);
 }
 
-gint64 playlist_get_selected_length (gint playlist_num, gboolean fast)
+int64_t playlist_get_selected_length (int playlist_num)
 {
+    ENTER;
     DECLARE_PLAYLIST;
     LOOKUP_PLAYLIST_RET (0);
 
-    if (! fast)
-        check_selected_scanned (playlist);
+    int64_t length = playlist->selected_length;
 
-    return playlist->selected_length;
+    LEAVE_RET (length);
 }
 
-gint playlist_queue_count(gint playlist_num)
+int playlist_queue_count (int playlist_num)
 {
+    ENTER;
     DECLARE_PLAYLIST;
-
     LOOKUP_PLAYLIST_RET (0);
 
-    return g_list_length (playlist->queued);
+    int count = g_list_length (playlist->queued);
+
+    LEAVE_RET (count);
 }
 
-void playlist_queue_insert(gint playlist_num, gint at, gint entry_num)
+void playlist_queue_insert (int playlist_num, int at, int entry_num)
 {
+    ENTER;
     DECLARE_PLAYLIST_ENTRY;
-
     LOOKUP_PLAYLIST_ENTRY;
 
     if (entry->queued)
-        return;
+        LEAVE_RET_VOID;
 
     if (at < 0)
-        playlist->queued = g_list_append(playlist->queued, entry);
+        playlist->queued = g_list_append (playlist->queued, entry);
     else
-        playlist->queued = g_list_insert(playlist->queued, entry, at);
+        playlist->queued = g_list_insert (playlist->queued, entry, at);
 
     entry->queued = TRUE;
 
-    SELECTION_HAS_CHANGED (playlist, entry_num, 1);
+    SELECTION_HAS_CHANGED (playlist->number, entry_num, 1);
+    LEAVE;
 }
 
-void playlist_queue_insert_selected (gint playlist_num, gint at)
+void playlist_queue_insert_selected (int playlist_num, int at)
 {
+    ENTER;
     DECLARE_PLAYLIST;
     LOOKUP_PLAYLIST;
 
-    gint entries = index_count(playlist->entries);
-    gint first = entries, last = 0;
+    int entries = index_count(playlist->entries);
+    int first = entries, last = 0;
 
-    for (gint count = 0; count < entries; count++)
+    for (int count = 0; count < entries; count++)
     {
         Entry * entry = index_get (playlist->entries, count);
 
-        if (!entry->selected || entry->queued)
+        if (! entry->selected || entry->queued)
             continue;
 
         if (at < 0)
-            playlist->queued = g_list_append(playlist->queued, entry);
+            playlist->queued = g_list_append (playlist->queued, entry);
         else
-            playlist->queued = g_list_insert(playlist->queued, entry, at++);
+            playlist->queued = g_list_insert (playlist->queued, entry, at++);
 
         entry->queued = TRUE;
         first = MIN (first, entry->number);
@@ -1758,95 +1893,98 @@ void playlist_queue_insert_selected (gint playlist_num, gint at)
     }
 
     if (first < entries)
-        SELECTION_HAS_CHANGED (playlist, first, last + 1 - first);
+        SELECTION_HAS_CHANGED (playlist->number, first, last + 1 - first);
+
+    LEAVE;
 }
 
-gint playlist_queue_get_entry(gint playlist_num, gint at)
+int playlist_queue_get_entry (int playlist_num, int at)
 {
+    ENTER;
     DECLARE_PLAYLIST;
-    GList *node;
-
     LOOKUP_PLAYLIST_RET (-1);
-    node = g_list_nth(playlist->queued, at);
 
-    if (node == NULL)
-        return -1;
+    GList * node = g_list_nth (playlist->queued, at);
+    int entry_num = node ? ((Entry *) node->data)->number : -1;
 
-    return ((Entry *) node->data)->number;
+    LEAVE_RET (entry_num);
 }
 
-gint playlist_queue_find_entry(gint playlist_num, gint entry_num)
+int playlist_queue_find_entry (int playlist_num, int entry_num)
 {
+    ENTER;
     DECLARE_PLAYLIST_ENTRY;
-
     LOOKUP_PLAYLIST_ENTRY_RET (-1);
 
-    if (! entry->queued)
-        return -1;
+    int pos = entry->queued ? g_list_index (playlist->queued, entry) : -1;
 
-    return g_list_index(playlist->queued, entry);
+    LEAVE_RET (pos);
 }
 
-void playlist_queue_delete(gint playlist_num, gint at, gint number)
+void playlist_queue_delete (int playlist_num, int at, int number)
 {
+    ENTER;
     DECLARE_PLAYLIST;
     LOOKUP_PLAYLIST;
 
-    gint entries = index_count (playlist->entries);
-    gint first = entries, last = 0;
+    int entries = index_count (playlist->entries);
+    int first = entries, last = 0;
 
     if (at == 0)
     {
-        while (playlist->queued != NULL && number--)
+        while (playlist->queued && number --)
         {
             Entry * entry = playlist->queued->data;
-
-            playlist->queued = g_list_delete_link(playlist->queued, playlist->queued);
-
             entry->queued = FALSE;
             first = MIN (first, entry->number);
             last = entry->number;
+
+            playlist->queued = g_list_delete_link (playlist->queued,
+             playlist->queued);
         }
     }
     else
     {
-        GList *anchor = g_list_nth(playlist->queued, at - 1);
-
-        if (anchor == NULL)
+        GList * anchor = g_list_nth (playlist->queued, at - 1);
+        if (! anchor)
             goto DONE;
 
-        while (anchor->next != NULL && number--)
+        while (anchor->next && number --)
         {
             Entry * entry = anchor->next->data;
-
-            playlist->queued = g_list_delete_link(playlist->queued, anchor->next);
-
             entry->queued = FALSE;
             first = MIN (first, entry->number);
             last = entry->number;
+
+            playlist->queued = g_list_delete_link (playlist->queued,
+             anchor->next);
         }
     }
 
 DONE:
     if (first < entries)
-        SELECTION_HAS_CHANGED (playlist, first, last + 1 - first);
+        SELECTION_HAS_CHANGED (playlist->number, first, last + 1 - first);
+
+    LEAVE;
 }
 
-void playlist_queue_delete_selected (gint playlist_num)
+void playlist_queue_delete_selected (int playlist_num)
 {
+    ENTER;
     DECLARE_PLAYLIST;
     LOOKUP_PLAYLIST;
 
-    gint entries = index_count (playlist->entries);
-    gint first = entries, last = 0;
+    int entries = index_count (playlist->entries);
+    int first = entries, last = 0;
 
-    for (GList * node = playlist->queued; node != NULL; )
+    for (GList * node = playlist->queued; node; )
     {
         GList * next = node->next;
         Entry * entry = node->data;
 
         if (entry->selected)
         {
+            entry->queued = FALSE;
             playlist->queued = g_list_delete_link (playlist->queued, node);
             first = MIN (first, entry->number);
             last = entry->number;
@@ -1856,61 +1994,65 @@ void playlist_queue_delete_selected (gint playlist_num)
     }
 
     if (first < entries)
-        SELECTION_HAS_CHANGED (playlist, first, last + 1 - first);
+        SELECTION_HAS_CHANGED (playlist->number, first, last + 1 - first);
+
+    LEAVE;
 }
 
-static gboolean shuffle_prev (Playlist * playlist)
+static bool_t shuffle_prev (Playlist * playlist)
 {
-    gint entries = index_count (playlist->entries), count;
+    int entries = index_count (playlist->entries);
     Entry * found = NULL;
 
-    for (count = 0; count < entries; count ++)
+    for (int count = 0; count < entries; count ++)
     {
         Entry * entry = index_get (playlist->entries, count);
 
-        if (entry->shuffle_num && (playlist->position == NULL ||
-         entry->shuffle_num < playlist->position->shuffle_num) && (found == NULL
+        if (entry->shuffle_num && (! playlist->position ||
+         entry->shuffle_num < playlist->position->shuffle_num) && (! found
          || entry->shuffle_num > found->shuffle_num))
             found = entry;
     }
 
-    if (found == NULL)
+    if (! found)
         return FALSE;
 
     playlist->position = found;
     return TRUE;
 }
 
-gboolean playlist_prev_song(gint playlist_num)
+bool_t playlist_prev_song (int playlist_num)
 {
-    DECLARE_PLAYLIST;
+    if (playback_get_playing () && playlist_num == playlist_get_playing ())
+        playback_stop ();
 
+    ENTER;
+    DECLARE_PLAYLIST;
     LOOKUP_PLAYLIST_RET (FALSE);
 
-    if (cfg.shuffle)
+    if (get_bool (NULL, "shuffle"))
     {
         if (! shuffle_prev (playlist))
-            return FALSE;
+            LEAVE_RET (FALSE);
     }
     else
     {
-        if (playlist->position == NULL || playlist->position->number == 0)
-            return FALSE;
+        if (! playlist->position || playlist->position->number == 0)
+            LEAVE_RET (FALSE);
 
         set_position (playlist, index_get (playlist->entries,
          playlist->position->number - 1));
     }
 
-    if (playlist == playing_playlist && playback_get_playing ())
-        playback_stop();
+    LEAVE;
 
     hook_call ("playlist position", GINT_TO_POINTER (playlist_num));
     return TRUE;
 }
 
-static gboolean shuffle_next (Playlist * playlist)
+static bool_t shuffle_next (Playlist * playlist)
 {
-    gint entries = index_count (playlist->entries), choice = 0, count;
+    int entries = index_count (playlist->entries), choice = 0, count;
     Entry * found = NULL;
 
     for (count = 0; count < entries; count ++)
@@ -1919,13 +2061,13 @@ static gboolean shuffle_next (Playlist * playlist)
 
         if (! entry->shuffle_num)
             choice ++;
-        else if (playlist->position != NULL && entry->shuffle_num >
-         playlist->position->shuffle_num && (found == NULL || entry->shuffle_num
+        else if (playlist->position && entry->shuffle_num >
+         playlist->position->shuffle_num && (! found || entry->shuffle_num
          < found->shuffle_num))
             found = entry;
     }
 
-    if (found != NULL)
+    if (found)
     {
         playlist->position = found;
         return TRUE;
@@ -1955,57 +2097,58 @@ static gboolean shuffle_next (Playlist * playlist)
 
 static void shuffle_reset (Playlist * playlist)
 {
-    gint entries = index_count (playlist->entries), count;
+    int entries = index_count (playlist->entries);
 
     playlist->last_shuffle_num = 0;
 
-    for (count = 0; count < entries; count ++)
+    for (int count = 0; count < entries; count ++)
     {
         Entry * entry = index_get (playlist->entries, count);
         entry->shuffle_num = 0;
     }
 }
 
-gboolean playlist_next_song(gint playlist_num, gboolean repeat)
+bool_t playlist_next_song (int playlist_num, bool_t repeat)
 {
-    DECLARE_PLAYLIST;
-    gint entries;
+    if (playback_get_playing () && playlist_num == playlist_get_playing ())
+        playback_stop ();
 
+    ENTER;
+    DECLARE_PLAYLIST;
     LOOKUP_PLAYLIST_RET (FALSE);
-    entries = index_count(playlist->entries);
 
-    if (entries == 0)
-        return FALSE;
+    int entries = index_count(playlist->entries);
+
+    if (! entries)
+        LEAVE_RET (FALSE);
 
-    /* If we have a song in queue, jump to it, _then_ remove it from queue */
-    if (playlist->queued != NULL)
+    if (playlist->queued)
     {
         set_position (playlist, playlist->queued->data);
-
-        playlist->queued = g_list_remove(playlist->queued, playlist->position);
+        playlist->queued = g_list_remove (playlist->queued, playlist->position);
         playlist->position->queued = FALSE;
     }
-    else if (cfg.shuffle)
+    else if (get_bool (NULL, "shuffle"))
     {
         if (! shuffle_next (playlist))
         {
             if (! repeat)
-                return FALSE;
+                LEAVE_RET (FALSE);
 
             shuffle_reset (playlist);
 
             if (! shuffle_next (playlist))
-                return FALSE;
+                LEAVE_RET (FALSE);
         }
     }
     else
     {
-        if (playlist->position == NULL)
+        if (! playlist->position)
             set_position (playlist, index_get (playlist->entries, 0));
         else if (playlist->position->number == entries - 1)
         {
-            if (!repeat)
-                return FALSE;
+            if (! repeat)
+                LEAVE_RET (FALSE);
 
             set_position (playlist, index_get (playlist->entries, 0));
         }
@@ -2014,105 +2157,199 @@ gboolean playlist_next_song(gint playlist_num, gboolean repeat)
              playlist->position->number + 1));
     }
 
-    if (playlist == playing_playlist && playback_get_playing ())
-        playback_stop();
+    LEAVE;
 
     hook_call ("playlist position", GINT_TO_POINTER (playlist_num));
     return TRUE;
 }
 
+int playback_entry_get_position (void)
+{
+    ENTER;
+
+    Entry * entry = get_playback_entry (FALSE, FALSE);
+    int entry_num = entry ? entry->number : -1;
+
+    LEAVE_RET (entry_num);
+}
+
+PluginHandle * playback_entry_get_decoder (void)
+{
+    ENTER;
+
+    Entry * entry = get_playback_entry (TRUE, FALSE);
+    PluginHandle * decoder = entry ? entry->decoder : NULL;
+
+    LEAVE_RET (decoder);
+}
+
+Tuple * playback_entry_get_tuple (void)
+{
+    ENTER;
+
+    Entry * entry = get_playback_entry (FALSE, TRUE);
+    Tuple * tuple = entry ? entry->tuple : NULL;
+
+    if (tuple)
+        tuple_ref (tuple);
+
+    LEAVE_RET (tuple);
+}
+
+char * playback_entry_get_title (void)
+{
+    ENTER;
+
+    Entry * entry = get_playback_entry (FALSE, TRUE);
+    char * title = entry ? str_ref (entry->formatted ? entry->formatted :
+     entry->filename) : NULL;
+
+    LEAVE_RET (title);
+}
+
+int playback_entry_get_length (void)
+{
+    ENTER;
+
+    Entry * entry = get_playback_entry (FALSE, TRUE);
+    int length = entry->length;
+
+    LEAVE_RET (length);
+}
+
+void playback_entry_set_tuple (Tuple * tuple)
+{
+    ENTER;
+    if (! playing_playlist || ! playing_playlist->position)
+        LEAVE_RET_VOID;
+
+    Entry * entry = playing_playlist->position;
+    entry_cancel_scan (entry);
+    entry_set_tuple (playing_playlist, entry, tuple);
+
+    METADATA_HAS_CHANGED (playing_playlist->number, entry->number, 1);
+    LEAVE;
+}
+
+int playback_entry_get_start_time (void)
+{
+    ENTER;
+    if (! playing_playlist || ! playing_playlist->position)
+        LEAVE_RET (0);
+
+    int start = playing_playlist->position->start;
+    LEAVE_RET (start);
+}
+
+int playback_entry_get_end_time (void)
+{
+    ENTER;
+    if (! playing_playlist || ! playing_playlist->position)
+        LEAVE_RET (-1);
+
+    int end = playing_playlist->position->end;
+    LEAVE_RET (end);
+}
+
 void playlist_save_state (void)
 {
-    gchar scratch[512];
-    FILE * handle;
-    gint playlist_num;
+    ENTER;
 
-    snprintf (scratch, sizeof scratch, "%s/" STATE_FILE,
-     get_path (AUD_PATH_USER_DIR));
-    handle = fopen (scratch, "w");
+    char * path = g_strdup_printf ("%s/" STATE_FILE, get_path (AUD_PATH_USER_DIR));
+    FILE * handle = fopen (path, "w");
+    g_free (path);
+    if (! handle)
+        LEAVE_RET_VOID;
 
-    if (handle == NULL)
-        return;
+    resume_state = playback_get_playing () ? (playback_get_paused () ?
+     RESUME_PAUSE : RESUME_PLAY) : RESUME_STOP;
+    resume_time = playback_get_playing () ? playback_get_time () : 0;
 
-    fprintf (handle, "active %d\n", playlist_get_active ());
-    fprintf (handle, "playing %d\n", playlist_get_playing ());
+    fprintf (handle, "resume-state %d\n", resume_state);
+    fprintf (handle, "resume-time %d\n", resume_time);
 
-    for (playlist_num = 0; playlist_num < index_count (playlists);
+    fprintf (handle, "active %d\n", active_playlist ? active_playlist->number : -1);
+    fprintf (handle, "playing %d\n", playing_playlist ? playing_playlist->number : -1);
+
+    for (int playlist_num = 0; playlist_num < index_count (playlists);
      playlist_num ++)
     {
         Playlist * playlist = index_get (playlists, playlist_num);
-        gint entries = index_count (playlist->entries), count;
 
         fprintf (handle, "playlist %d\n", playlist_num);
-        fprintf (handle, "position %d\n", playlist_get_position (playlist_num));
-        fprintf (handle, "last-shuffled %d\n", playlist->last_shuffle_num);
 
-        for (count = 0; count < entries; count ++)
-        {
-            Entry * entry = index_get (playlist->entries, count);
-            fprintf (handle, "S %d\n", entry->shuffle_num);
-        }
+        if (playlist->filename)
+            fprintf (handle, "filename %s\n", playlist->filename);
+
+        fprintf (handle, "position %d\n", playlist->position ?
+         playlist->position->number : -1);
     }
 
     fclose (handle);
+    LEAVE;
 }
 
-static gchar parse_key[32];
-static gchar * parse_value;
+static char parse_key[512];
+static char * parse_value;
 
 static void parse_next (FILE * handle)
 {
-    gchar * found;
-
     parse_value = NULL;
 
-    if (fgets (parse_key, sizeof parse_key, handle) == NULL)
+    if (! fgets (parse_key, sizeof parse_key, handle))
         return;
 
-    found = strchr (parse_key, ' ');
-
-    if (found == NULL)
+    char * space = strchr (parse_key, ' ');
+    if (! space)
         return;
 
-    * found = 0;
-    parse_value = found + 1;
+    * space = 0;
+    parse_value = space + 1;
 
-    found = strchr (parse_value, '\n');
+    char * newline = strchr (parse_value, '\n');
+    if (newline)
+        * newline = 0;
+}
 
-    if (found != NULL)
-        * found = 0;
+static bool_t parse_integer (const char * key, int * value)
+{
+    return (parse_value && ! strcmp (parse_key, key) && sscanf (parse_value,
+     "%d", value) == 1);
 }
 
-static gboolean parse_integer (const gchar * key, gint * value)
+static char * parse_string (const char * key)
 {
-    return (parse_value != NULL && ! strcmp (parse_key, key) && sscanf
-     (parse_value, "%d", value) == 1);
+    return (parse_value && ! strcmp (parse_key, key)) ? str_get (parse_value) : NULL;
 }
 
 void playlist_load_state (void)
 {
-    gchar scratch[512];
-    FILE * handle;
-    gint playlist_num;
-
-    snprintf (scratch, sizeof scratch, "%s/" STATE_FILE,
-     get_path (AUD_PATH_USER_DIR));
-    handle = fopen (scratch, "r");
+    ENTER;
+    int playlist_num;
 
-    if (handle == NULL)
-        return;
+    char * path = g_strdup_printf ("%s/" STATE_FILE, get_path (AUD_PATH_USER_DIR));
+    FILE * handle = fopen (path, "r");
+    g_free (path);
+    if (! handle)
+        LEAVE_RET_VOID;
 
     parse_next (handle);
 
+    if (parse_integer ("resume-state", & resume_state))
+        parse_next (handle);
+    if (parse_integer ("resume-time", & resume_time))
+        parse_next (handle);
+
     if (parse_integer ("active", & playlist_num))
     {
-        playlist_set_active (playlist_num);
+        if (! (active_playlist = lookup_playlist (playlist_num)))
+            active_playlist = index_get (playlists, 0);
         parse_next (handle);
     }
 
     if (parse_integer ("playing", & playlist_num))
     {
-        playlist_set_playing (playlist_num);
+        playing_playlist = lookup_playlist (playlist_num);
         parse_next (handle);
     }
 
@@ -2120,32 +2357,49 @@ void playlist_load_state (void)
      playlist_num < index_count (playlists))
     {
         Playlist * playlist = index_get (playlists, playlist_num);
-        gint entries = index_count (playlist->entries), position, count;
+        int entries = index_count (playlist->entries), position;
+        char * s;
 
         parse_next (handle);
 
+        if ((s = parse_string ("filename")))
+        {
+            str_unref (playlist->filename);
+            playlist->filename = s;
+            parse_next (handle);
+        }
+
         if (parse_integer ("position", & position))
             parse_next (handle);
 
         if (position >= 0 && position < entries)
-            playlist->position = index_get (playlist->entries, position);
+            set_position (playlist, index_get (playlist->entries, position));
+    }
 
-        gint obsolete = 0;
-        if (parse_integer ("shuffled", & obsolete)) /* compatibility with 2.3 */
-            parse_next (handle);
+    fclose (handle);
 
-        if (parse_integer ("last-shuffled", & playlist->last_shuffle_num))
-            parse_next (handle);
-        else /* compatibility with 2.3 beta */
-            playlist->last_shuffle_num = obsolete;
+    /* clear updates queued during init sequence */
 
-        for (count = 0; count < entries; count ++)
-        {
-            Entry * entry = index_get (playlist->entries, count);
-            if (parse_integer ("S", & entry->shuffle_num))
-                parse_next (handle);
-        }
+    for (int i = 0; i < index_count (playlists); i ++)
+    {
+        Playlist * p = index_get (playlists, i);
+        memset (& p->last_update, 0, sizeof (Update));
+        memset (& p->next_update, 0, sizeof (Update));
     }
 
-    fclose (handle);
+    update_level = 0;
+
+    if (update_source)
+    {
+        g_source_remove (update_source);
+        update_source = 0;
+    }
+
+    LEAVE;
+}
+
+void playlist_resume (void)
+{
+    if (resume_state == RESUME_PLAY || resume_state == RESUME_PAUSE)
+        playback_play (resume_time, resume_state == RESUME_PAUSE);
 }
diff --git a/src/audacious/playlist-utils.c b/src/audacious/playlist-utils.c
index cbb001f..66a879f 100644
--- a/src/audacious/playlist-utils.c
+++ b/src/audacious/playlist-utils.c
@@ -1,6 +1,6 @@
 /*
  * playlist-utils.c
- * Copyright 2009-2010 John Lindgren
+ * Copyright 2009-2011 John Lindgren
  *
  * This file is part of Audacious.
  *
@@ -19,90 +19,83 @@
  * using our public API to be a derived work.
  */
 
+#include <dirent.h>
 #include <glib.h>
 #include <regex.h>
+#include <stdio.h>
+#include <stdlib.h>
 #include <string.h>
 
 #include <libaudcore/audstrings.h>
+#include <libaudcore/hook.h>
 
-#include "audconfig.h"
 #include "misc.h"
 #include "playlist.h"
-#include "playlist-utils.h"
 
-static const gchar * aud_titlestring_presets[] =
+static const char * get_basename (const char * filename)
 {
-    "${title}",
-    "${?artist:${artist} - }${title}",
-    "${?artist:${artist} - }${?album:${album} - }${title}",
-    "${?artist:${artist} - }${?album:${album} - }"
-     "${?track-number:${track-number}. }${title}",
-    "${?artist:${artist} }${?album:[ ${album} ] }${?artist:- }"
-     "${?track-number:${track-number}. }${title}",
-    "${?album:${album} - }${title}",
-};
-
-const gint n_titlestring_presets = G_N_ELEMENTS (aud_titlestring_presets);
-
-static const gchar * get_basename (const gchar * filename)
-{
-    const gchar * slash = strrchr (filename, '/');
+    const char * slash = strrchr (filename, '/');
 
     return (slash == NULL) ? filename : slash + 1;
 }
 
-static gint filename_compare_basename (const gchar * a, const gchar * b)
+static int filename_compare_basename (const char * a, const char * b)
 {
     return string_compare_encoded (get_basename (a), get_basename (b));
 }
 
-static gint tuple_compare_string (const Tuple * a, const Tuple * b, gint field)
+static int tuple_compare_string (const Tuple * a, const Tuple * b, int field)
 {
-    const gchar * string_a = tuple_get_string (a, field, NULL);
-    const gchar * string_b = tuple_get_string (b, field, NULL);
+    char * string_a = tuple_get_str (a, field, NULL);
+    char * string_b = tuple_get_str (b, field, NULL);
+    int ret;
 
     if (string_a == NULL)
-        return (string_b == NULL) ? 0 : -1;
-    if (string_b == NULL)
-        return 1;
-
-    return string_compare (string_a, string_b);
+        ret = (string_b == NULL) ? 0 : -1;
+    else if (string_b == NULL)
+        ret = 1;
+    else
+        ret = string_compare (string_a, string_b);
+
+    str_unref (string_a);
+    str_unref (string_b);
+    return ret;
 }
 
-static gint tuple_compare_int (const Tuple * a, const Tuple * b, gint field)
+static int tuple_compare_int (const Tuple * a, const Tuple * b, int field)
 {
     if (tuple_get_value_type (a, field, NULL) != TUPLE_INT)
         return (tuple_get_value_type (b, field, NULL) != TUPLE_INT) ? 0 : -1;
     if (tuple_get_value_type (b, field, NULL) != TUPLE_INT)
         return 1;
 
-    gint int_a = tuple_get_int (a, field, NULL);
-    gint int_b = tuple_get_int (b, field, NULL);
+    int int_a = tuple_get_int (a, field, NULL);
+    int int_b = tuple_get_int (b, field, NULL);
 
     return (int_a < int_b) ? -1 : (int_a > int_b);
 }
 
-static gint tuple_compare_title (const Tuple * a, const Tuple * b)
+static int tuple_compare_title (const Tuple * a, const Tuple * b)
 {
     return tuple_compare_string (a, b, FIELD_TITLE);
 }
 
-static gint tuple_compare_album (const Tuple * a, const Tuple * b)
+static int tuple_compare_album (const Tuple * a, const Tuple * b)
 {
     return tuple_compare_string (a, b, FIELD_ALBUM);
 }
 
-static gint tuple_compare_artist (const Tuple * a, const Tuple * b)
+static int tuple_compare_artist (const Tuple * a, const Tuple * b)
 {
     return tuple_compare_string (a, b, FIELD_ARTIST);
 }
 
-static gint tuple_compare_date (const Tuple * a, const Tuple * b)
+static int tuple_compare_date (const Tuple * a, const Tuple * b)
 {
     return tuple_compare_int (a, b, FIELD_YEAR);
 }
 
-static gint tuple_compare_track (const Tuple * a, const Tuple * b)
+static int tuple_compare_track (const Tuple * a, const Tuple * b)
 {
     return tuple_compare_int (a, b, FIELD_TRACK_NUMBER);
 }
@@ -137,16 +130,7 @@ static const PlaylistStringCompareFunc title_comparisons[] = {
  [PLAYLIST_SORT_TRACK] = NULL,
  [PLAYLIST_SORT_FORMATTED_TITLE] = string_compare};
 
-const gchar * get_gentitle_format (void)
-{
-    if (cfg.titlestring_preset >= 0 && cfg.titlestring_preset <
-     n_titlestring_presets)
-        return aud_titlestring_presets[cfg.titlestring_preset];
-
-    return cfg.gentitle_format;
-}
-
-void playlist_sort_by_scheme (gint playlist, gint scheme)
+void playlist_sort_by_scheme (int playlist, int scheme)
 {
     if (filename_comparisons[scheme] != NULL)
         playlist_sort_by_filename (playlist, filename_comparisons[scheme]);
@@ -156,7 +140,7 @@ void playlist_sort_by_scheme (gint playlist, gint scheme)
         playlist_sort_by_title (playlist, title_comparisons[scheme]);
 }
 
-void playlist_sort_selected_by_scheme (gint playlist, gint scheme)
+void playlist_sort_selected_by_scheme (int playlist, int scheme)
 {
     if (filename_comparisons[scheme] != NULL)
         playlist_sort_selected_by_filename (playlist,
@@ -168,10 +152,10 @@ void playlist_sort_selected_by_scheme (gint playlist, gint scheme)
 }
 
 /* Fix me:  This considers empty fields as duplicates. */
-void playlist_remove_duplicates_by_scheme (gint playlist, gint scheme)
+void playlist_remove_duplicates_by_scheme (int playlist, int scheme)
 {
-    gint entries = playlist_entry_count (playlist);
-    gint count;
+    int entries = playlist_entry_count (playlist);
+    int count;
 
     if (entries < 1)
         return;
@@ -180,176 +164,328 @@ void playlist_remove_duplicates_by_scheme (gint playlist, gint scheme)
 
     if (filename_comparisons[scheme] != NULL)
     {
-        gint (* compare) (const gchar * a, const gchar * b) =
+        int (* compare) (const char * a, const char * b) =
          filename_comparisons[scheme];
-        const gchar * last, * current;
 
         playlist_sort_by_filename (playlist, compare);
-        last = playlist_entry_get_filename (playlist, 0);
+        char * last = playlist_entry_get_filename (playlist, 0);
 
         for (count = 1; count < entries; count ++)
         {
-            current = playlist_entry_get_filename (playlist, count);
+            char * current = playlist_entry_get_filename (playlist, count);
 
             if (compare (last, current) == 0)
                 playlist_entry_set_selected (playlist, count, TRUE);
 
+            str_unref (last);
             last = current;
         }
+
+        str_unref (last);
     }
     else if (tuple_comparisons[scheme] != NULL)
     {
-        gint (* compare) (const Tuple * a, const Tuple * b) =
+        int (* compare) (const Tuple * a, const Tuple * b) =
          tuple_comparisons[scheme];
-        const Tuple * last, * current;
 
         playlist_sort_by_tuple (playlist, compare);
-        last = playlist_entry_get_tuple (playlist, 0, FALSE);
+        Tuple * last = playlist_entry_get_tuple (playlist, 0, FALSE);
 
         for (count = 1; count < entries; count ++)
         {
-            current = playlist_entry_get_tuple (playlist, count, FALSE);
+            Tuple * current = playlist_entry_get_tuple (playlist, count, FALSE);
 
             if (last != NULL && current != NULL && compare (last, current) == 0)
                 playlist_entry_set_selected (playlist, count, TRUE);
 
+            if (last)
+                tuple_unref (last);
             last = current;
         }
+
+        if (last)
+            tuple_unref (last);
     }
 
     playlist_delete_selected (playlist);
 }
 
-void playlist_remove_failed (gint playlist)
+void playlist_remove_failed (int playlist)
 {
-    gint entries = playlist_entry_count (playlist);
-    gint count;
+    int entries = playlist_entry_count (playlist);
+    int count;
 
-    playlist_rescan (playlist);
     playlist_select_all (playlist, FALSE);
 
     for (count = 0; count < entries; count ++)
     {
-        if (! playlist_entry_get_decoder (playlist, count, FALSE))
+        char * filename = playlist_entry_get_filename (playlist, count);
+
+        /* vfs_file_test() only works for file:// URIs currently */
+        if (! strncmp (filename, "file://", 7) && ! vfs_file_test (filename,
+         G_FILE_TEST_EXISTS))
             playlist_entry_set_selected (playlist, count, TRUE);
+
+        str_unref (filename);
     }
 
     playlist_delete_selected (playlist);
 }
 
-void playlist_select_by_patterns (gint playlist, const Tuple * patterns)
+void playlist_select_by_patterns (int playlist, const Tuple * patterns)
 {
-    const gint fields[] = {FIELD_TITLE, FIELD_ALBUM, FIELD_ARTIST,
+    const int fields[] = {FIELD_TITLE, FIELD_ALBUM, FIELD_ARTIST,
      FIELD_FILE_NAME};
 
-    gint entries = playlist_entry_count (playlist);
-    gint field, entry;
+    int entries = playlist_entry_count (playlist);
+    int field, entry;
 
     playlist_select_all (playlist, TRUE);
 
     for (field = 0; field < G_N_ELEMENTS (fields); field ++)
     {
-        const gchar * pattern = tuple_get_string ((Tuple *) patterns,
-         fields[field], NULL);
+        char * pattern = tuple_get_str (patterns, fields[field], NULL);
         regex_t regex;
 
-        if (pattern == NULL || pattern[0] == 0)
-            continue;
-
-        if (regcomp (& regex, pattern, REG_ICASE) != 0)
+        if (! pattern || ! pattern[0] || regcomp (& regex, pattern, REG_ICASE))
+        {
+            str_unref (pattern);
             continue;
+        }
 
         for (entry = 0; entry < entries; entry ++)
         {
-            const Tuple * tuple;
-            const gchar * string;
-
             if (! playlist_entry_get_selected (playlist, entry))
                 continue;
 
-            tuple = playlist_entry_get_tuple (playlist, entry, FALSE);
-
-            if (tuple == NULL)
-                goto NO_MATCH;
-
-            string = tuple_get_string ((Tuple *) tuple, fields[field], NULL);
+            Tuple * tuple = playlist_entry_get_tuple (playlist, entry, FALSE);
+            char * string = tuple ? tuple_get_str (tuple, fields[field], NULL) : NULL;
 
-            if (string == NULL)
-                goto NO_MATCH;
+            if (! string || regexec (& regex, string, 0, NULL, 0))
+                playlist_entry_set_selected (playlist, entry, FALSE);
 
-            if (regexec (& regex, string, 0, NULL, 0) == 0)
-                continue;
-
-        NO_MATCH:
-            playlist_entry_set_selected (playlist, entry, FALSE);
+            str_unref (string);
+            if (tuple)
+                tuple_unref (tuple);
         }
 
         regfree (& regex);
+        str_unref (pattern);
     }
 }
 
-/* The algorithm is a bit quirky for historical reasons. -jlindgren */
-static gchar * make_playlist_path (gint playlist)
+static char * make_playlist_path (int playlist)
 {
     if (! playlist)
-        return g_strdup (get_path (AUD_PATH_PLAYLIST_FILE));
+        return g_strdup_printf ("%s/playlist.xspf", get_path (AUD_PATH_USER_DIR));
 
     return g_strdup_printf ("%s/playlist_%02d.xspf",
      get_path (AUD_PATH_PLAYLISTS_DIR), 1 + playlist);
 }
 
-void load_playlists (void)
+static void load_playlists_real (void)
 {
-    gboolean done = FALSE;
-    gint count;
+    /* old (v3.1 and earlier) naming scheme */
 
-    for (count = 0; ! done; count ++)
+    int count;
+    for (count = 0; ; count ++)
     {
-        gchar * path = make_playlist_path (count);
+        char * path = make_playlist_path (count);
 
-        if (g_file_test (path, G_FILE_TEST_EXISTS))
+        if (! g_file_test (path, G_FILE_TEST_EXISTS))
         {
-            gchar * uri = filename_to_uri (path);
+            g_free (path);
+            break;
+        }
 
-            if (count)
-                playlist_insert (count);
+        char * uri = filename_to_uri (path);
 
-            playlist_insert_playlist (count, 0, uri);
-            g_free (uri);
+        playlist_insert (count);
+        playlist_insert_playlist_raw (count, 0, uri);
+        playlist_set_modified (count, TRUE);
+
+        g_free (path);
+        g_free (uri);
+    }
+
+    /* unique ID-based naming scheme */
+
+    char * order_path = g_strdup_printf ("%s/order", get_path (AUD_PATH_PLAYLISTS_DIR));
+    char * order_string;
+    g_file_get_contents (order_path, & order_string, NULL, NULL);
+    g_free (order_path);
+
+    if (! order_string)
+        goto DONE;
+
+    char * * order = g_strsplit (order_string, " ", -1);
+    g_free (order_string);
+
+    for (int i = 0; order[i]; i ++)
+    {
+        char * path = g_strdup_printf ("%s/%s.audpl", get_path (AUD_PATH_PLAYLISTS_DIR), order[i]);
+
+        if (! g_file_test (path, G_FILE_TEST_EXISTS))
+        {
+            g_free (path);
+            path = g_strdup_printf ("%s/%s.xspf", get_path (AUD_PATH_PLAYLISTS_DIR), order[i]);
         }
-        else
-            done = TRUE;
+
+        char * uri = filename_to_uri (path);
+
+        playlist_insert_with_id (count + i, atoi (order[i]));
+        playlist_insert_playlist_raw (count + i, 0, uri);
+        playlist_set_modified (count + i, FALSE);
+
+        if (g_str_has_suffix (path, ".xspf"))
+            playlist_set_modified (count + i, TRUE);
 
         g_free (path);
+        g_free (uri);
     }
 
-    playlist_load_state ();
+    g_strfreev (order);
+
+DONE:
+    if (! playlist_count ())
+        playlist_insert (0);
+
+    playlist_set_active (0);
 }
 
-void save_playlists (void)
+static void save_playlists_real (void)
 {
-    gint playlists = playlist_count ();
-    gboolean done = FALSE;
-    gint count;
+    int lists = playlist_count ();
+    const char * folder = get_path (AUD_PATH_PLAYLISTS_DIR);
+
+    /* save playlists */
+
+    char * * order = g_malloc (sizeof (char *) * (lists + 1));
+    GHashTable * saved = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
 
-    for (count = 0; ! done; count ++)
+    for (int i = 0; i < lists; i ++)
     {
-        gchar * path = make_playlist_path (count);
+        int id = playlist_get_unique_id (i);
+        order[i] = g_strdup_printf ("%d", id);
 
-        if (count < playlists)
+        if (playlist_get_modified (i))
         {
-            gchar * uri = filename_to_uri (path);
+            char * path = g_strdup_printf ("%s/%d.audpl", folder, id);
+            char * uri = filename_to_uri (path);
 
-            playlist_save (count, uri);
+            playlist_save (i, uri);
+            playlist_set_modified (i, FALSE);
+
+            g_free (path);
             g_free (uri);
         }
-        else if (g_file_test (path, G_FILE_TEST_EXISTS))
+
+        g_hash_table_insert (saved, g_strdup_printf ("%d.audpl", id), NULL);
+    }
+
+    order[lists] = NULL;
+    char * order_string = g_strjoinv (" ", order);
+    g_strfreev (order);
+
+    GError * error = NULL;
+    char * order_path = g_strdup_printf ("%s/order", get_path (AUD_PATH_PLAYLISTS_DIR));
+
+    char * old_order_string;
+    g_file_get_contents (order_path, & old_order_string, NULL, NULL);
+
+    if (! old_order_string || strcmp (old_order_string, order_string))
+    {
+        if (! g_file_set_contents (order_path, order_string, -1, & error))
+        {
+            fprintf (stderr, "Cannot write to %s: %s\n", order_path, error->message);
+            g_error_free (error);
+        }
+    }
+
+    g_free (order_string);
+    g_free (order_path);
+    g_free (old_order_string);
+
+    /* clean up deleted playlists and files from old naming scheme */
+
+    char * path = make_playlist_path (0);
+    remove (path);
+    g_free (path);
+
+    DIR * dir = opendir (folder);
+    if (! dir)
+        goto DONE;
+
+    struct dirent * entry;
+    while ((entry = readdir (dir)))
+    {
+        if (! g_str_has_suffix (entry->d_name, ".audpl")
+         && ! g_str_has_suffix (entry->d_name, ".xspf"))
+            continue;
+
+        if (! g_hash_table_lookup_extended (saved, entry->d_name, NULL, NULL))
+        {
+            char * path = g_strdup_printf ("%s/%s", folder, entry->d_name);
             remove (path);
-        else
-            done = TRUE;
+            g_free (path);
+        }
+    }
 
-        g_free (path);
+    closedir (dir);
+
+DONE:
+    g_hash_table_destroy (saved);
+}
+
+static bool_t hooks_added, state_changed;
+
+static void update_cb (void * data, void * user)
+{
+    if (GPOINTER_TO_INT (data) < PLAYLIST_UPDATE_METADATA)
+        return;
+
+    state_changed = TRUE;
+}
+
+static void state_cb (void * data, void * user)
+{
+    state_changed = TRUE;
+}
+
+void load_playlists (void)
+{
+    load_playlists_real ();
+    playlist_load_state ();
+
+    state_changed = FALSE;
+
+    if (! hooks_added)
+    {
+        hook_associate ("playlist update", update_cb, NULL);
+        hook_associate ("playlist activate", state_cb, NULL);
+        hook_associate ("playlist position", state_cb, NULL);
+
+        hooks_added = TRUE;
     }
+}
 
-    playlist_save_state ();
+void save_playlists (bool_t exiting)
+{
+    save_playlists_real ();
+
+    /* on exit, save resume time if resume feature is enabled */
+    if (state_changed || (exiting && get_bool (NULL, "resume_playback_on_startup")))
+    {
+        playlist_save_state ();
+        state_changed = FALSE;
+    }
+
+    if (exiting && hooks_added)
+    {
+        hook_dissociate ("playlist update", update_cb);
+        hook_dissociate ("playlist activate", state_cb);
+        hook_dissociate ("playlist position", state_cb);
+
+        hooks_added = FALSE;
+    }
 }
diff --git a/src/audacious/playlist-utils.h b/src/audacious/playlist-utils.h
deleted file mode 100644
index 7b76130..0000000
--- a/src/audacious/playlist-utils.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * playlist-utils.h
- * Copyright 2009 John Lindgren
- *
- * This file is part of Audacious.
- *
- * Audacious is free software: you can redistribute it and/or modify it under
- * the terms of the GNU General Public License as published by the Free Software
- * Foundation, version 3 of the License.
- *
- * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * Audacious. If not, see <http://www.gnu.org/licenses/>.
- *
- * The Audacious team does not consider modular code linking to Audacious or
- * using our public API to be a derived work.
- */
-
-#ifndef AUDACIOUS_PLAYLIST_UTILS_H
-#define AUDACIOUS_PLAYLIST_UTILS_H
-
-#include <glib.h>
-
-extern const gint n_titlestring_presets;
-
-#endif
diff --git a/src/audacious/playlist.h b/src/audacious/playlist.h
index 9b0b555..52cc3b3 100644
--- a/src/audacious/playlist.h
+++ b/src/audacious/playlist.h
@@ -22,7 +22,8 @@
 #ifndef AUDACIOUS_PLAYLIST_H
 #define AUDACIOUS_PLAYLIST_H
 
-#include <glib.h>
+#include <stdint.h>
+
 #include <audacious/api.h>
 #include <audacious/types.h>
 #include <libaudcore/index.h>
@@ -30,17 +31,16 @@
 
 /* The values which can be passed (packed into a pointer) to the "playlist
  * update" hook.  PLAYLIST_UPDATE_SELECTION means that entries have been
- * selected or unselected, entries have been added or removed from the queue,
- * or that the current song has changed.  PLAYLIST_UPDATE_METADATA means that
- * new metadata has been read for some entries, and implies
- * PLAYLIST_UPDATE_SELECTION.  PLAYLIST_UPDATE_STRUCTURE covers any change not
- * listed under the other types, and implies both PLAYLIST_UPDATE_SELECTION and
- * PLAYLIST_UPDATE_METADATA. */
+ * selected or unselected, or that entries have been added to or removed from
+ * the queue.  PLAYLIST_UPDATE_METADATA means that new metadata has been read
+ * for some entries, or that the title or filename of a playlist has changed,
+ * and implies PLAYLIST_UPDATE_SELECTION.  PLAYLIST_UPDATE_STRUCTURE covers any
+ * change not listed under the other types, and implies both
+ * PLAYLIST_UPDATE_SELECTION and PLAYLIST_UPDATE_METADATA. */
 enum {
- PLAYLIST_UPDATE_SELECTION,
+ PLAYLIST_UPDATE_SELECTION = 1,
  PLAYLIST_UPDATE_METADATA,
- PLAYLIST_UPDATE_STRUCTURE,
- PLAYLIST_UPDATE_TYPES};
+ PLAYLIST_UPDATE_STRUCTURE};
 
 /* The values which can be passed to playlist_sort_by_scheme(),
  * playlist_sort_selected_by_scheme(), and
@@ -59,9 +59,9 @@ enum {
  PLAYLIST_SORT_FORMATTED_TITLE,
  PLAYLIST_SORT_SCHEMES};
 
-#define PlaylistFilenameCompareFunc PlaylistStringCompareFunc /* deprecated */
-typedef gint (* PlaylistStringCompareFunc) (const gchar * a, const gchar * b);
-typedef gint (* PlaylistTupleCompareFunc) (const Tuple * a, const Tuple * b);
+typedef bool_t (* PlaylistFilterFunc) (const char * filename, void * user);
+typedef int (* PlaylistStringCompareFunc) (const char * a, const char * b);
+typedef int (* PlaylistTupleCompareFunc) (const Tuple * a, const Tuple * b);
 
 #define AUD_API_NAME PlaylistAPI
 #define AUD_API_SYMBOL playlist_api
@@ -72,28 +72,47 @@ typedef gint (* PlaylistTupleCompareFunc) (const Tuple * a, const Tuple * b);
 #include "playlist-api.h"
 #include "api-local-end.h"
 
+/* playlist-files.c */
+bool_t playlist_load (const char * filename, char * * title,
+ Index * * filenames, Index * * tuples);
+bool_t playlist_insert_playlist_raw (int list, int at,
+ const char * filename);
+
 /* playlist-new.c */
 void playlist_init (void);
 void playlist_end (void);
+
+void playlist_insert_with_id (int at, int id);
+void playlist_set_modified (int playlist, bool_t modified);
+bool_t playlist_get_modified (int playlist);
+
 void playlist_load_state (void);
 void playlist_save_state (void);
+void playlist_resume (void);
 
 void playlist_reformat_titles (void);
+void playlist_trigger_scan (void);
+
+void playlist_entry_insert_batch_raw (int playlist, int at,
+ Index * filenames, Index * tuples, Index * decoders);
+
+bool_t playlist_prev_song (int playlist);
+bool_t playlist_next_song (int playlist, bool_t repeat);
 
-void playlist_entry_insert_batch_with_decoders (gint playlist, gint at,
- struct index * filenames, struct index * decoders, struct index * tuples);
-void playlist_entry_set_tuple (gint playlist, gint entry, Tuple * tuple);
+int playback_entry_get_position (void);
+PluginHandle * playback_entry_get_decoder (void);
+Tuple * playback_entry_get_tuple (void);
+char * playback_entry_get_title (void);
+int playback_entry_get_length (void);
 
-gboolean playlist_entry_is_segmented (gint playlist, gint entry);
-gint playlist_entry_get_start_time (gint playlist, gint entry);
-gint playlist_entry_get_end_time (gint playlist, gint entry);
+void playback_entry_set_tuple (Tuple * tuple);
 
-gboolean playlist_prev_song (gint playlist);
-gboolean playlist_next_song (gint playlist, gboolean repeat);
+int playback_entry_get_start_time (void);
+int playback_entry_get_end_time (void);
 
 /* playlist-utils.c */
-void save_playlists (void);
 void load_playlists (void);
+void save_playlists (bool_t exiting);
 
 #else
 
diff --git a/src/audacious/plugin-init.c b/src/audacious/plugin-init.c
index a12ea11..dd1e692 100644
--- a/src/audacious/plugin-init.c
+++ b/src/audacious/plugin-init.c
@@ -1,6 +1,6 @@
 /*
  * plugin-init.c
- * Copyright 2010 John Lindgren
+ * Copyright 2010-2011 John Lindgren
  *
  * This file is part of Audacious.
  *
@@ -19,6 +19,7 @@
  * using our public API to be a derived work.
  */
 
+#include <errno.h>
 #include <stdio.h>
 #include <stdlib.h>
 
@@ -28,13 +29,14 @@
 #include "effect.h"
 #include "general.h"
 #include "interface.h"
+#include "main.h"
 #include "output.h"
 #include "plugin.h"
 #include "plugins.h"
 #include "ui_preferences.h"
 #include "visualization.h"
 
-static gboolean dummy_plugin_start (PluginHandle * p)
+static bool_t dummy_plugin_start (PluginHandle * p)
 {
     return TRUE;
 }
@@ -44,23 +46,22 @@ static void dummy_plugin_stop (PluginHandle * p)
 }
 
 static const struct {
-    const gchar * name;
-    gboolean is_managed, is_single;
+    const char * name;
+    bool_t is_managed, is_single;
 
     union {
         struct {
-            gboolean (* start) (PluginHandle * plugin);
+            bool_t (* start) (PluginHandle * plugin);
             void (* stop) (PluginHandle * plugin);
         } m;
 
         struct {
             PluginHandle * (* probe) (void);
             PluginHandle * (* get_current) (void);
-            gboolean (* set_current) (PluginHandle * plugin);
+            bool_t (* set_current) (PluginHandle * plugin);
         } s;
     } u;
 } table[PLUGIN_TYPES] = {
- [PLUGIN_TYPE_LOWLEVEL] = {"lowlevel", FALSE},
  [PLUGIN_TYPE_TRANSPORT] = {"transport",  TRUE, FALSE, .u.m =
   {dummy_plugin_start, dummy_plugin_stop}},
  [PLUGIN_TYPE_PLAYLIST] = {"playlist",  TRUE, FALSE, .u.m = {dummy_plugin_start,
@@ -78,20 +79,20 @@ static const struct {
  [PLUGIN_TYPE_IFACE] = {"interface", TRUE, TRUE, .u.s = {iface_plugin_probe,
   iface_plugin_get_current, iface_plugin_set_current}}};
 
-static gboolean find_enabled_cb (PluginHandle * p, PluginHandle * * pp)
+static bool_t find_enabled_cb (PluginHandle * p, PluginHandle * * pp)
 {
     * pp = p;
     return FALSE;
 }
 
-static PluginHandle * find_enabled (gint type)
+static PluginHandle * find_enabled (int type)
 {
     PluginHandle * p = NULL;
     plugin_for_enabled (type, (PluginForEachFunc) find_enabled_cb, & p);
     return p;
 }
 
-static void start_single (gint type)
+static void start_single (int type)
 {
     PluginHandle * p;
 
@@ -126,7 +127,7 @@ static void start_single (gint type)
     }
 }
 
-static gboolean start_multi_cb (PluginHandle * p, void * type)
+static bool_t start_multi_cb (PluginHandle * p, void * type)
 {
     AUDDBG ("Starting %s.\n", plugin_get_name (p));
 
@@ -139,10 +140,12 @@ static gboolean start_multi_cb (PluginHandle * p, void * type)
     return TRUE;
 }
 
-static void start_plugins (gint type)
+static void start_plugins (int type)
 {
     if (! table[type].is_managed)
         return;
+    if (headless && type == PLUGIN_TYPE_IFACE)
+        return;
 
     if (table[type].is_single)
         start_single (type);
@@ -151,14 +154,14 @@ static void start_plugins (gint type)
          GINT_TO_POINTER (type));
 }
 
-static VFSConstructor * lookup_transport (const gchar * scheme)
+static VFSConstructor * lookup_transport (const char * scheme)
 {
     PluginHandle * plugin = transport_plugin_for_scheme (scheme);
     if (! plugin)
         return NULL;
 
     TransportPlugin * tp = plugin_get_header (plugin);
-    return tp->vtable;
+    return tp ? tp->vtable : NULL;
 }
 
 void start_plugins_one (void)
@@ -166,27 +169,29 @@ void start_plugins_one (void)
     plugin_system_init ();
     vfs_set_lookup_func (lookup_transport);
 
-    for (gint i = 0; i < PLUGIN_TYPE_GENERAL; i ++)
+    for (int i = 0; i < PLUGIN_TYPE_GENERAL; i ++)
         start_plugins (i);
 }
 
 void start_plugins_two (void)
 {
-    for (gint i = PLUGIN_TYPE_GENERAL; i < PLUGIN_TYPES; i ++)
+    for (int i = PLUGIN_TYPE_GENERAL; i < PLUGIN_TYPES; i ++)
         start_plugins (i);
 }
 
-static gboolean stop_multi_cb (PluginHandle * p, void * type)
+static bool_t stop_multi_cb (PluginHandle * p, void * type)
 {
     AUDDBG ("Shutting down %s.\n", plugin_get_name (p));
     table[GPOINTER_TO_INT (type)].u.m.stop (p);
     return TRUE;
 }
 
-static void stop_plugins (gint type)
+static void stop_plugins (int type)
 {
     if (! table[type].is_managed)
         return;
+    if (headless && type == PLUGIN_TYPE_IFACE)
+        return;
 
     if (table[type].is_single)
     {
@@ -201,26 +206,26 @@ static void stop_plugins (gint type)
 
 void stop_plugins_two (void)
 {
-    for (gint i = PLUGIN_TYPES - 1; i >= PLUGIN_TYPE_GENERAL; i --)
+    for (int i = PLUGIN_TYPES - 1; i >= PLUGIN_TYPE_GENERAL; i --)
         stop_plugins (i);
 }
 
 void stop_plugins_one (void)
 {
-    for (gint i = PLUGIN_TYPE_GENERAL - 1; i >= 0; i --)
+    for (int i = PLUGIN_TYPE_GENERAL - 1; i >= 0; i --)
         stop_plugins (i);
 
     vfs_set_lookup_func (NULL);
     plugin_system_cleanup ();
 }
 
-PluginHandle * plugin_get_current (gint type)
+PluginHandle * plugin_get_current (int type)
 {
     g_return_val_if_fail (table[type].is_managed && table[type].is_single, NULL);
     return table[type].u.s.get_current ();
 }
 
-static gboolean enable_single (gint type, PluginHandle * p)
+static bool_t enable_single (int type, PluginHandle * p)
 {
     PluginHandle * old = table[type].u.s.get_current ();
 
@@ -245,7 +250,7 @@ static gboolean enable_single (gint type, PluginHandle * p)
     exit (EXIT_FAILURE);
 }
 
-static gboolean enable_multi (gint type, PluginHandle * p, gboolean enable)
+static bool_t enable_multi (int type, PluginHandle * p, bool_t enable)
 {
     AUDDBG ("%sabling %s.\n", enable ? "En" : "Dis", plugin_get_name (p));
     plugin_set_enabled (p, enable);
@@ -265,7 +270,7 @@ static gboolean enable_multi (gint type, PluginHandle * p, gboolean enable)
     return TRUE;
 }
 
-gboolean plugin_enable (PluginHandle * plugin, gboolean enable)
+bool_t plugin_enable (PluginHandle * plugin, bool_t enable)
 {
     if (! enable == ! plugin_get_enabled (plugin))
     {
@@ -274,7 +279,7 @@ gboolean plugin_enable (PluginHandle * plugin, gboolean enable)
         return TRUE;
     }
 
-    gint type = plugin_get_type (plugin);
+    int type = plugin_get_type (plugin);
     g_return_val_if_fail (table[type].is_managed, FALSE);
 
     if (table[type].is_single)
@@ -286,7 +291,8 @@ gboolean plugin_enable (PluginHandle * plugin, gboolean enable)
     return enable_multi (type, plugin, enable);
 }
 
-/* This doesn't really belong here, but it's a bit of an oddball. */
+/* Miscellaneous plugin-related functions ... */
+
 PluginHandle * plugin_by_widget (/* GtkWidget * */ void * widget)
 {
     PluginHandle * p;
@@ -296,3 +302,15 @@ PluginHandle * plugin_by_widget (/* GtkWidget * */ void * widget)
         return p;
     return NULL;
 }
+
+int plugin_send_message (PluginHandle * plugin, const char * code, const void * data, int size)
+{
+    if (! plugin_get_enabled (plugin))
+        return ENOSYS;
+
+    Plugin * header = plugin_get_header (plugin);
+    if (! header || ! PLUGIN_HAS_FUNC (header, take_message))
+        return ENOSYS;
+
+    return header->take_message (code, data, size);
+}
diff --git a/src/audacious/plugin-registry.c b/src/audacious/plugin-registry.c
index 59b5464..7baa2e8 100644
--- a/src/audacious/plugin-registry.c
+++ b/src/audacious/plugin-registry.c
@@ -1,6 +1,6 @@
 /*
  * plugin-registry.c
- * Copyright 2009-2010 John Lindgren
+ * Copyright 2009-2011 John Lindgren
  *
  * This file is part of Audacious.
  *
@@ -19,8 +19,15 @@
  * using our public API to be a derived work.
  */
 
+/* While the registry is being built (during early startup) or destroyed (during
+ * late shutdown), the registry_locked flag will be set.  Once this flag is
+ * cleared, the registry will not be modified and can be read by concurrent
+ * threads.  The one change that can happen during this time is that a plugin is
+ * loaded; hence the mutex must be locked before checking that a plugin is
+ * loaded and while loading it. */
+
 #include <glib.h>
-#include <limits.h>
+#include <pthread.h>
 #include <stdio.h>
 #include <string.h>
 
@@ -34,15 +41,7 @@
 #include "util.h"
 
 #define FILENAME "plugin-registry"
-#define FORMAT 5
-
-typedef struct {
-    gchar * path;
-    gboolean confirmed;
-    gint timestamp;
-    gboolean loaded;
-    GList * plugin_list;
-} ModuleData;
+#define FORMAT 6
 
 typedef struct {
     GList * schemes;
@@ -54,17 +53,17 @@ typedef struct {
 
 typedef struct {
     GList * keys[INPUT_KEYS];
-    gboolean has_images, has_subtunes, can_write_tuple, has_infowin;
+    bool_t has_images, has_subtunes, can_write_tuple, has_infowin;
 } InputPluginData;
 
 struct PluginHandle {
-    ModuleData * module;
-    gint type, number;
-    gboolean confirmed;
-    const void * header;
-    gchar * name;
-    gint priority;
-    gboolean has_about, has_configure, enabled;
+    char * path;
+    bool_t confirmed, loaded;
+    int timestamp, type;
+    Plugin * header;
+    char * name;
+    int priority;
+    bool_t has_about, has_configure, enabled;
     GList * watches;
 
     union {
@@ -79,8 +78,7 @@ typedef struct {
     void * data;
 } PluginWatch;
 
-static const gchar * plugin_type_names[] = {
- [PLUGIN_TYPE_LOWLEVEL] = NULL,
+static const char * plugin_type_names[] = {
  [PLUGIN_TYPE_TRANSPORT] = "transport",
  [PLUGIN_TYPE_PLAYLIST] = "playlist",
  [PLUGIN_TYPE_INPUT] = "input",
@@ -89,39 +87,26 @@ static const gchar * plugin_type_names[] = {
  [PLUGIN_TYPE_VIS] = "vis",
  [PLUGIN_TYPE_GENERAL] = "general",
  [PLUGIN_TYPE_IFACE] = "iface"};
-static const gchar * input_key_names[] = {
+
+static const char * input_key_names[] = {
  [INPUT_KEY_SCHEME] = "scheme",
  [INPUT_KEY_EXTENSION] = "ext",
  [INPUT_KEY_MIME] = "mime"};
-static GList * module_list = NULL;
-static GList * plugin_list = NULL;
-static gboolean registry_locked = TRUE;
-
-static ModuleData * module_new (gchar * path, gboolean confirmed, gint
- timestamp, gboolean loaded)
-{
-    ModuleData * module = g_malloc (sizeof (ModuleData));
-
-    module->path = path;
-    module->confirmed = confirmed;
-    module->timestamp = timestamp;
-    module->loaded = loaded;
-    module->plugin_list = NULL;
 
-    module_list = g_list_prepend (module_list, module);
-
-    return module;
-}
+static GList * plugin_list = NULL;
+static bool_t registry_locked = TRUE;
+static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
 
-static PluginHandle * plugin_new (ModuleData * module, gint type, gint number,
- gboolean confirmed, const void * header)
+static PluginHandle * plugin_new (char * path, bool_t confirmed, bool_t
+ loaded, int timestamp, int type, Plugin * header)
 {
     PluginHandle * plugin = g_malloc (sizeof (PluginHandle));
 
-    plugin->module = module;
-    plugin->type = type;
-    plugin->number = number;
+    plugin->path = path;
     plugin->confirmed = confirmed;
+    plugin->loaded = loaded;
+    plugin->timestamp = timestamp;
+    plugin->type = type;
     plugin->header = header;
     plugin->name = NULL;
     plugin->priority = 0;
@@ -151,15 +136,12 @@ static PluginHandle * plugin_new (ModuleData * module, gint type, gint number,
     }
 
     plugin_list = g_list_prepend (plugin_list, plugin);
-    module->plugin_list = g_list_prepend (module->plugin_list, plugin);
-
     return plugin;
 }
 
-static void plugin_free (PluginHandle * plugin, ModuleData * module)
+static void plugin_free (PluginHandle * plugin)
 {
     plugin_list = g_list_remove (plugin_list, plugin);
-    module->plugin_list = g_list_remove (module->plugin_list, plugin);
 
     g_list_foreach (plugin->watches, (GFunc) g_free, NULL);
     g_list_free (plugin->watches);
@@ -176,53 +158,44 @@ static void plugin_free (PluginHandle * plugin, ModuleData * module)
     }
     else if (plugin->type == PLUGIN_TYPE_INPUT)
     {
-        for (gint key = 0; key < INPUT_KEYS; key ++)
+        for (int key = 0; key < INPUT_KEYS; key ++)
         {
             g_list_foreach (plugin->u.i.keys[key], (GFunc) g_free, NULL);
             g_list_free (plugin->u.i.keys[key]);
         }
     }
 
+    g_free (plugin->path);
     g_free (plugin->name);
     g_free (plugin);
 }
 
-static void module_free (ModuleData * module)
+static FILE * open_registry_file (const char * mode)
 {
-    module_list = g_list_remove (module_list, module);
-
-    g_list_foreach (module->plugin_list, (GFunc) plugin_free, module);
-
-    g_free (module->path);
-    g_free (module);
-}
-
-static FILE * open_registry_file (const gchar * mode)
-{
-    gchar path[PATH_MAX];
-    snprintf (path, sizeof path, "%s/" FILENAME, get_path (AUD_PATH_USER_DIR));
-    return fopen (path, mode);
+    char * path = g_strdup_printf ("%s/" FILENAME, get_path (AUD_PATH_USER_DIR));
+    FILE * file = fopen (path, mode);
+    g_free (path);
+    return file;
 }
 
 static void transport_plugin_save (PluginHandle * plugin, FILE * handle)
 {
     for (GList * node = plugin->u.t.schemes; node; node = node->next)
-        fprintf (handle, "scheme %s\n", (const gchar *) node->data);
+        fprintf (handle, "scheme %s\n", (const char *) node->data);
 }
 
 static void playlist_plugin_save (PluginHandle * plugin, FILE * handle)
 {
     for (GList * node = plugin->u.p.exts; node; node = node->next)
-        fprintf (handle, "ext %s\n", (const gchar *) node->data);
+        fprintf (handle, "ext %s\n", (const char *) node->data);
 }
 
 static void input_plugin_save (PluginHandle * plugin, FILE * handle)
 {
-    for (gint key = 0; key < INPUT_KEYS; key ++)
+    for (int key = 0; key < INPUT_KEYS; key ++)
     {
-        for (GList * node = plugin->u.i.keys[key]; node != NULL; node =
-         node->next)
-            fprintf (handle, "%s %s\n", input_key_names[key], (const gchar *)
+        for (GList * node = plugin->u.i.keys[key]; node; node = node->next)
+            fprintf (handle, "%s %s\n", input_key_names[key], (const char *)
              node->data);
     }
 
@@ -234,7 +207,8 @@ static void input_plugin_save (PluginHandle * plugin, FILE * handle)
 
 static void plugin_save (PluginHandle * plugin, FILE * handle)
 {
-    fprintf (handle, "%s %d\n", plugin_type_names[plugin->type], plugin->number);
+    fprintf (handle, "%s %s\n", plugin_type_names[plugin->type], plugin->path);
+    fprintf (handle, "stamp %d\n", plugin->timestamp);
     fprintf (handle, "name %s\n", plugin->name);
     fprintf (handle, "priority %d\n", plugin->priority);
     fprintf (handle, "about %d\n", plugin->has_about);
@@ -249,78 +223,57 @@ static void plugin_save (PluginHandle * plugin, FILE * handle)
         input_plugin_save (plugin, handle);
 }
 
-static gint plugin_not_handled_cb (PluginHandle * plugin)
-{
-    return (plugin_type_names[plugin->type] == NULL) ? 0 : -1;
-}
-
-static void module_save (ModuleData * module, FILE * handle)
-{
-    /* If the module contains any plugins that we do not handle, we do not save
-     * it, thereby forcing it to be loaded on next startup.  If the module
-     * appears to contain no plugins at all, we can assume that it failed to
-     * load, in which case we also want to try to load it again. */
-    if (! module->plugin_list || g_list_find_custom (module->plugin_list, NULL,
-     (GCompareFunc) plugin_not_handled_cb) != NULL)
-        return;
-
-    fprintf (handle, "module %s\n", module->path);
-    fprintf (handle, "stamp %d\n", module->timestamp);
-
-    g_list_foreach (module->plugin_list, (GFunc) plugin_save, handle);
-}
-
 void plugin_registry_save (void)
 {
     FILE * handle = open_registry_file ("w");
-    g_return_if_fail (handle != NULL);
+    g_return_if_fail (handle);
 
     fprintf (handle, "format %d\n", FORMAT);
 
-    g_list_foreach (module_list, (GFunc) module_save, handle);
+    g_list_foreach (plugin_list, (GFunc) plugin_save, handle);
     fclose (handle);
 
-    g_list_foreach (module_list, (GFunc) module_free, NULL);
+    g_list_foreach (plugin_list, (GFunc) plugin_free, NULL);
     registry_locked = TRUE;
 }
 
-static gchar parse_key[512];
-static gchar * parse_value;
+static char parse_key[512];
+static char * parse_value;
 
 static void parse_next (FILE * handle)
 {
     parse_value = NULL;
 
-    if (fgets (parse_key, sizeof parse_key, handle) == NULL)
+    if (! fgets (parse_key, sizeof parse_key, handle))
         return;
 
-    gchar * space = strchr (parse_key, ' ');
-    if (space == NULL)
+    char * space = strchr (parse_key, ' ');
+    if (! space)
         return;
 
     * space = 0;
     parse_value = space + 1;
 
-    gchar * newline = strchr (parse_value, '\n');
-    if (newline != NULL)
+    char * newline = strchr (parse_value, '\n');
+    if (newline)
         * newline = 0;
 }
 
-static gboolean parse_integer (const gchar * key, gint * value)
+static bool_t parse_integer (const char * key, int * value)
 {
-    return (parse_value != NULL && ! strcmp (parse_key, key) && sscanf
-     (parse_value, "%d", value) == 1);
+    return (parse_value && ! strcmp (parse_key, key) && sscanf (parse_value,
+     "%d", value) == 1);
 }
 
-static gchar * parse_string (const gchar * key)
+static char * parse_string (const char * key)
 {
-    return (parse_value != NULL && ! strcmp (parse_key, key)) ? g_strdup
-     (parse_value) : NULL;
+    return (parse_value && ! strcmp (parse_key, key)) ? g_strdup (parse_value) :
+     NULL;
 }
 
 static void transport_plugin_parse (PluginHandle * plugin, FILE * handle)
 {
-    gchar * value;
+    char * value;
     while ((value = parse_string ("scheme")))
     {
         plugin->u.t.schemes = g_list_prepend (plugin->u.t.schemes, value);
@@ -330,7 +283,7 @@ static void transport_plugin_parse (PluginHandle * plugin, FILE * handle)
 
 static void playlist_plugin_parse (PluginHandle * plugin, FILE * handle)
 {
-    gchar * value;
+    char * value;
     while ((value = parse_string ("ext")))
     {
         plugin->u.p.exts = g_list_prepend (plugin->u.p.exts, value);
@@ -340,10 +293,10 @@ static void playlist_plugin_parse (PluginHandle * plugin, FILE * handle)
 
 static void input_plugin_parse (PluginHandle * plugin, FILE * handle)
 {
-    for (gint key = 0; key < INPUT_KEYS; key ++)
+    for (int key = 0; key < INPUT_KEYS; key ++)
     {
-        gchar * value;
-        while ((value = parse_string (input_key_names[key])) != NULL)
+        char * value;
+        while ((value = parse_string (input_key_names[key])))
         {
             plugin->u.i.keys[key] = g_list_prepend (plugin->u.i.keys[key],
              value);
@@ -361,23 +314,34 @@ static void input_plugin_parse (PluginHandle * plugin, FILE * handle)
         parse_next (handle);
 }
 
-static gboolean plugin_parse (ModuleData * module, FILE * handle)
+static bool_t plugin_parse (FILE * handle)
 {
-    gint type, number;
+    char * path = NULL;
+
+    int type;
     for (type = 0; type < PLUGIN_TYPES; type ++)
     {
-        if (plugin_type_names[type] != NULL && parse_integer
-         (plugin_type_names[type], & number))
+        if ((path = parse_string (plugin_type_names[type])))
             goto FOUND;
     }
 
     return FALSE;
 
-FOUND:;
-    PluginHandle * plugin = plugin_new (module, type, number, FALSE, NULL);
+FOUND:
     parse_next (handle);
 
-    if ((plugin->name = parse_string ("name")) != NULL)
+    int timestamp;
+    if (! parse_integer ("stamp", & timestamp))
+    {
+        g_free (path);
+        return FALSE;
+    }
+
+    PluginHandle * plugin = plugin_new (path, FALSE, FALSE, timestamp, type,
+     NULL);
+    parse_next (handle);
+
+    if ((plugin->name = parse_string ("name")))
         parse_next (handle);
     if (parse_integer ("priority", & plugin->priority))
         parse_next (handle);
@@ -398,45 +362,21 @@ FOUND:;
     return TRUE;
 }
 
-static gboolean module_parse (FILE * handle)
-{
-    gchar * path = parse_string ("module");
-    if (path == NULL)
-        return FALSE;
-
-    parse_next (handle);
-
-    gint timestamp;
-    if (! parse_integer ("stamp", & timestamp))
-    {
-        g_free (path);
-        return FALSE;
-    }
-
-    ModuleData * module = module_new (path, FALSE, timestamp, FALSE);
-    parse_next (handle);
-
-    while (plugin_parse (module, handle))
-        ;
-
-    return TRUE;
-}
-
 void plugin_registry_load (void)
 {
     FILE * handle = open_registry_file ("r");
-    if (handle == NULL)
+    if (! handle)
         goto UNLOCK;
 
     parse_next (handle);
 
-    gint format;
+    int format;
     if (! parse_integer ("format", & format) || format != FORMAT)
         goto ERR;
 
     parse_next (handle);
 
-    while (module_parse (handle))
+    while (plugin_parse (handle))
         ;
 
 ERR:
@@ -445,30 +385,16 @@ UNLOCK:
     registry_locked = FALSE;
 }
 
-static void plugin_prune (PluginHandle * plugin, ModuleData * module)
+static void plugin_prune (PluginHandle * plugin)
 {
     if (plugin->confirmed)
         return;
 
-    AUDDBG ("Plugin not found: %s %d:%d\n", plugin->module->path, plugin->type,
-     plugin->number);
-    plugin_free (plugin, module);
+    AUDDBG ("Plugin not found: %s\n", plugin->path);
+    plugin_free (plugin);
 }
 
-static void module_prune (ModuleData * module)
-{
-    if (! module->confirmed)
-    {
-        AUDDBG ("Module not found: %s\n", module->path);
-        module_free (module);
-        return;
-    }
-
-    if (module->loaded)
-        g_list_foreach (module->plugin_list, (GFunc) plugin_prune, module);
-}
-
-gint plugin_compare (PluginHandle * a, PluginHandle * b)
+int plugin_compare (PluginHandle * a, PluginHandle * b)
 {
     if (a->type < b->type)
         return -1;
@@ -479,205 +405,209 @@ gint plugin_compare (PluginHandle * a, PluginHandle * b)
     if (a->priority > b->priority)
         return 1;
 
-    gint diff;
+    int diff;
     if ((diff = string_compare (a->name, b->name)))
         return diff;
-    if ((diff = string_compare (a->module->path, b->module->path)))
-        return diff;
-
-    if (a->number < b->number)
-        return -1;
-    if (a->number > b->number)
-        return 1;
 
-    return 0;
+    return string_compare (a->path, b->path);
 }
 
 void plugin_registry_prune (void)
 {
-    g_list_foreach (module_list, (GFunc) module_prune, NULL);
+    g_list_foreach (plugin_list, (GFunc) plugin_prune, NULL);
     plugin_list = g_list_sort (plugin_list, (GCompareFunc) plugin_compare);
     registry_locked = TRUE;
 }
 
-static gint module_lookup_cb (ModuleData * module, const gchar * path)
+static int plugin_lookup_cb (PluginHandle * plugin, const char * path)
 {
-    return strcmp (module->path, path);
+    return strcmp (plugin->path, path);
 }
 
-static ModuleData * module_lookup (const gchar * path)
+PluginHandle * plugin_lookup (const char * path)
 {
-    GList * node = g_list_find_custom (module_list, path, (GCompareFunc)
-     module_lookup_cb);
-    return (node != NULL) ? node->data : NULL;
+    GList * node = g_list_find_custom (plugin_list, path, (GCompareFunc)
+     plugin_lookup_cb);
+    return node ? node->data : NULL;
 }
 
-void module_register (const gchar * path)
+static int plugin_lookup_basename_cb (PluginHandle * plugin, const char * basename)
 {
-    gint timestamp = file_get_mtime (path);
-    g_return_if_fail (timestamp >= 0);
+    char * test = g_path_get_basename (plugin->path);
 
-    ModuleData * module = module_lookup (path);
-    if (module == NULL)
-    {
-        AUDDBG ("New module: %s\n", path);
-        g_return_if_fail (! registry_locked);
-        module = module_new (g_strdup (path), TRUE, timestamp, TRUE);
-        module_load (path);
-        module->loaded = TRUE;
-        return;
-    }
+    char * dot = strrchr (test, '.');
+    if (dot)
+        * dot = 0;
 
-    AUDDBG ("Register module: %s\n", path);
-    module->confirmed = TRUE;
-    if (module->timestamp == timestamp)
-        return;
+    int ret = strcmp (test, basename);
 
-    AUDDBG ("Rescan module: %s\n", path);
-    module->timestamp = timestamp;
-    module_load (path);
-    module->loaded = TRUE;
+    g_free (test);
+    return ret;
 }
 
-typedef struct {
-    gint type, number;
-} PluginLookupState;
-
-static gint plugin_lookup_cb (PluginHandle * plugin, PluginLookupState * state)
+/* Note: If there are multiple plugins with the same basename, this returns only
+ * one of them. So give different plugins different basenames. --jlindgren */
+PluginHandle * plugin_lookup_basename (const char * basename)
 {
-    return (plugin->type == state->type && plugin->number == state->number) ? 0
-     : -1;
+    GList * node = g_list_find_custom (plugin_list, basename, (GCompareFunc)
+     plugin_lookup_basename_cb);
+    return node ? node->data : NULL;
 }
 
-static PluginHandle * plugin_lookup_real (ModuleData * module, gint type, gint
- number)
+void plugin_register (const char * path)
 {
-    PluginLookupState state = {type, number};
-    GList * node = g_list_find_custom (module->plugin_list, & state,
-     (GCompareFunc) plugin_lookup_cb);
-    return (node != NULL) ? node->data : NULL;
+    PluginHandle * plugin = plugin_lookup (path);
+    if (! plugin)
+    {
+        AUDDBG ("New plugin: %s\n", path);
+        plugin_load (path);
+        return;
+    }
+
+    int timestamp = file_get_mtime (path);
+    g_return_if_fail (timestamp >= 0);
+
+    AUDDBG ("Register plugin: %s\n", path);
+    plugin->confirmed = TRUE;
+
+    if (plugin->timestamp == timestamp)
+        return;
+
+    AUDDBG ("Rescan plugin: %s\n", path);
+    plugin->timestamp = timestamp;
+    plugin_load (path);
 }
 
-void plugin_register (gint type, const gchar * path, gint number, const void *
- header)
+void plugin_register_loaded (const char * path, Plugin * header)
 {
-    ModuleData * module = module_lookup (path);
-    g_return_if_fail (module != NULL);
+    AUDDBG ("Loaded plugin: %s\n", path);
+    PluginHandle * plugin = plugin_lookup (path);
+    bool_t new = FALSE;
 
-    PluginHandle * plugin = plugin_lookup_real (module, type, number);
-    if (plugin == NULL)
+    if (plugin)
     {
-        AUDDBG ("New plugin: %s %d:%d\n", path, type, number);
-        g_return_if_fail (! registry_locked);
-        plugin = plugin_new (module, type, number, TRUE, header);
-    }
+        g_return_if_fail (plugin->type == header->type);
 
-    AUDDBG ("Register plugin: %s %d:%d\n", path, type, number);
-    plugin->confirmed = TRUE;
-    plugin->header = header;
+        plugin->loaded = TRUE;
+        plugin->header = header;
 
-    if (type != PLUGIN_TYPE_LOWLEVEL && type != PLUGIN_TYPE_IFACE)
+        if (registry_locked)
+            return;
+    }
+    else
     {
-        Plugin * gp = header;
-        g_free (plugin->name);
-        plugin->name = g_strdup (gp->description);
-        plugin->has_about = (gp->about != NULL);
-        plugin->has_configure = (gp->configure != NULL || gp->settings != NULL);
+        g_return_if_fail (! registry_locked);
+
+        int timestamp = file_get_mtime (path);
+        g_return_if_fail (timestamp >= 0);
+
+        plugin = plugin_new (g_strdup (path), TRUE, TRUE, timestamp,
+         header->type, header);
+        new = TRUE;
     }
 
-    if (type == PLUGIN_TYPE_TRANSPORT)
+    g_free (plugin->name);
+    plugin->name = g_strdup (header->name);
+    plugin->has_about = PLUGIN_HAS_FUNC (header, about);
+    plugin->has_configure = PLUGIN_HAS_FUNC (header, configure) ||
+     PLUGIN_HAS_FUNC (header, settings);
+
+    if (header->type == PLUGIN_TYPE_TRANSPORT)
     {
-        TransportPlugin * tp = header;
-        for (gint i = 0; tp->schemes[i]; i ++)
+        TransportPlugin * tp = (TransportPlugin *) header;
+        for (int i = 0; tp->schemes[i]; i ++)
             plugin->u.t.schemes = g_list_prepend (plugin->u.t.schemes, g_strdup
              (tp->schemes[i]));
     }
-    else if (type == PLUGIN_TYPE_PLAYLIST)
+    else if (header->type == PLUGIN_TYPE_PLAYLIST)
     {
-        PlaylistPlugin * pp = header;
-        for (gint i = 0; pp->extensions[i]; i ++)
+        PlaylistPlugin * pp = (PlaylistPlugin *) header;
+        for (int i = 0; pp->extensions[i]; i ++)
             plugin->u.p.exts = g_list_prepend (plugin->u.p.exts, g_strdup
              (pp->extensions[i]));
     }
-    else if (type == PLUGIN_TYPE_INPUT)
+    else if (header->type == PLUGIN_TYPE_INPUT)
     {
-        InputPlugin * ip = header;
+        InputPlugin * ip = (InputPlugin *) header;
         plugin->priority = ip->priority;
 
-        for (gint key = 0; key < INPUT_KEYS; key ++)
+        for (int key = 0; key < INPUT_KEYS; key ++)
         {
             g_list_foreach (plugin->u.i.keys[key], (GFunc) g_free, NULL);
             g_list_free (plugin->u.i.keys[key]);
             plugin->u.i.keys[key] = NULL;
         }
 
-        if (ip->vfs_extensions != NULL)
+        if (PLUGIN_HAS_FUNC (ip, extensions))
         {
-            for (gint i = 0; ip->vfs_extensions[i] != NULL; i ++)
+            for (int i = 0; ip->extensions[i]; i ++)
                 plugin->u.i.keys[INPUT_KEY_EXTENSION] = g_list_prepend
                  (plugin->u.i.keys[INPUT_KEY_EXTENSION], g_strdup
-                 (ip->vfs_extensions[i]));
+                 (ip->extensions[i]));
         }
 
-        plugin->u.i.has_images = (ip->get_song_image != NULL);
+        if (PLUGIN_HAS_FUNC (ip, mimes))
+        {
+            for (int i = 0; ip->mimes[i]; i ++)
+                plugin->u.i.keys[INPUT_KEY_MIME] = g_list_prepend
+                 (plugin->u.i.keys[INPUT_KEY_MIME], g_strdup (ip->mimes[i]));
+        }
+
+        if (PLUGIN_HAS_FUNC (ip, schemes))
+        {
+            for (int i = 0; ip->schemes[i]; i ++)
+                plugin->u.i.keys[INPUT_KEY_SCHEME] = g_list_prepend
+                 (plugin->u.i.keys[INPUT_KEY_SCHEME], g_strdup (ip->schemes[i]));
+        }
+
+        plugin->u.i.has_images = PLUGIN_HAS_FUNC (ip, get_song_image);
         plugin->u.i.has_subtunes = ip->have_subtune;
-        plugin->u.i.can_write_tuple = (ip->update_song_tuple != NULL);
-        plugin->u.i.has_infowin = (ip->file_info_box != NULL);
+        plugin->u.i.can_write_tuple = PLUGIN_HAS_FUNC (ip, update_song_tuple);
+        plugin->u.i.has_infowin = PLUGIN_HAS_FUNC (ip, file_info_box);
     }
-    else if (type == PLUGIN_TYPE_OUTPUT)
+    else if (header->type == PLUGIN_TYPE_OUTPUT)
     {
-        OutputPlugin * op = header;
+        OutputPlugin * op = (OutputPlugin *) header;
         plugin->priority = 10 - op->probe_priority;
     }
-    else if (type == PLUGIN_TYPE_EFFECT)
+    else if (header->type == PLUGIN_TYPE_EFFECT)
     {
-        EffectPlugin * ep = header;
+        EffectPlugin * ep = (EffectPlugin *) header;
         plugin->priority = ep->order;
     }
-    else if (type == PLUGIN_TYPE_IFACE)
+    else if (header->type == PLUGIN_TYPE_GENERAL)
     {
-        Iface * i = (void *) header;
-        g_free (plugin->name);
-        plugin->name = g_strdup (i->desc);
+        GeneralPlugin * gp = (GeneralPlugin *) header;
+        if (new)
+            plugin->enabled = gp->enabled_by_default;
     }
 }
 
-gint plugin_get_type (PluginHandle * plugin)
+int plugin_get_type (PluginHandle * plugin)
 {
     return plugin->type;
 }
 
-const gchar * plugin_get_filename (PluginHandle * plugin)
-{
-    return plugin->module->path;
-}
-
-gint plugin_get_number (PluginHandle * plugin)
+const char * plugin_get_filename (PluginHandle * plugin)
 {
-    return plugin->number;
-}
-
-PluginHandle * plugin_lookup (gint type, const gchar * path, gint number)
-{
-    ModuleData * module = module_lookup (path);
-    if (module == NULL)
-        return NULL;
-
-    return plugin_lookup_real (module, type, number);
+    return plugin->path;
 }
 
 const void * plugin_get_header (PluginHandle * plugin)
 {
-    if (! plugin->module->loaded)
+    pthread_mutex_lock (& mutex);
+
+    if (! plugin->loaded)
     {
-        module_load (plugin->module->path);
-        plugin->module->loaded = TRUE;
+        plugin_load (plugin->path);
+        plugin->loaded = TRUE;
     }
 
+    pthread_mutex_unlock (& mutex);
     return plugin->header;
 }
 
-static gint plugin_by_header_cb (PluginHandle * plugin, const void * header)
+static int plugin_by_header_cb (PluginHandle * plugin, const void * header)
 {
     return (plugin->header == header) ? 0 : -1;
 }
@@ -686,12 +616,12 @@ PluginHandle * plugin_by_header (const void * header)
 {
     GList * node = g_list_find_custom (plugin_list, header, (GCompareFunc)
      plugin_by_header_cb);
-    return (node != NULL) ? node->data : NULL;
+    return node ? node->data : NULL;
 }
 
-void plugin_for_each (gint type, PluginForEachFunc func, void * data)
+void plugin_for_each (int type, PluginForEachFunc func, void * data)
 {
-    for (GList * node = plugin_list; node != NULL; node = node->next)
+    for (GList * node = plugin_list; node; node = node->next)
     {
         if (((PluginHandle *) node->data)->type != type)
             continue;
@@ -700,29 +630,29 @@ void plugin_for_each (gint type, PluginForEachFunc func, void * data)
     }
 }
 
-const gchar * plugin_get_name (PluginHandle * plugin)
+const char * plugin_get_name (PluginHandle * plugin)
 {
     return plugin->name;
 }
 
-gboolean plugin_has_about (PluginHandle * plugin)
+bool_t plugin_has_about (PluginHandle * plugin)
 {
     return plugin->has_about;
 }
 
-gboolean plugin_has_configure (PluginHandle * plugin)
+bool_t plugin_has_configure (PluginHandle * plugin)
 {
     return plugin->has_configure;
 }
 
-gboolean plugin_get_enabled (PluginHandle * plugin)
+bool_t plugin_get_enabled (PluginHandle * plugin)
 {
     return plugin->enabled;
 }
 
 static void plugin_call_watches (PluginHandle * plugin)
 {
-    for (GList * node = plugin->watches; node != NULL; )
+    for (GList * node = plugin->watches; node; )
     {
         GList * next = node->next;
         PluginWatch * watch = node->data;
@@ -737,7 +667,7 @@ static void plugin_call_watches (PluginHandle * plugin)
     }
 }
 
-void plugin_set_enabled (PluginHandle * plugin, gboolean enabled)
+void plugin_set_enabled (PluginHandle * plugin, bool_t enabled)
 {
     plugin->enabled = enabled;
     plugin_call_watches (plugin);
@@ -748,7 +678,7 @@ typedef struct {
     void * data;
 } PluginForEnabledState;
 
-static gboolean plugin_for_enabled_cb (PluginHandle * plugin,
+static bool_t plugin_for_enabled_cb (PluginHandle * plugin,
  PluginForEnabledState * state)
 {
     if (! plugin->enabled)
@@ -756,7 +686,7 @@ static gboolean plugin_for_enabled_cb (PluginHandle * plugin,
     return state->func (plugin, state->data);
 }
 
-void plugin_for_enabled (gint type, PluginForEachFunc func, void * data)
+void plugin_for_enabled (int type, PluginForEachFunc func, void * data)
 {
     PluginForEnabledState state = {func, data};
     plugin_for_each (type, (PluginForEachFunc) plugin_for_enabled_cb, & state);
@@ -774,7 +704,7 @@ void plugin_add_watch (PluginHandle * plugin, PluginForEachFunc func, void *
 void plugin_remove_watch (PluginHandle * plugin, PluginForEachFunc func, void *
  data)
 {
-    for (GList * node = plugin->watches; node != NULL; )
+    for (GList * node = plugin->watches; node; )
     {
         GList * next = node->next;
         PluginWatch * watch = node->data;
@@ -789,24 +719,23 @@ void plugin_remove_watch (PluginHandle * plugin, PluginForEachFunc func, void *
     }
 }
 
-
 typedef struct {
-    const gchar * scheme;
+    const char * scheme;
     PluginHandle * plugin;
 } TransportPluginForSchemeState;
 
-static gboolean transport_plugin_for_scheme_cb (PluginHandle * plugin,
+static bool_t transport_plugin_for_scheme_cb (PluginHandle * plugin,
  TransportPluginForSchemeState * state)
 {
-    if (! g_list_find_custom (plugin->u.t.schemes, state->scheme, (GCompareFunc)
-     strcasecmp))
+    if (! g_list_find_custom (plugin->u.t.schemes, state->scheme,
+     (GCompareFunc) g_ascii_strcasecmp))
         return TRUE;
 
     state->plugin = plugin;
     return FALSE;
 }
 
-PluginHandle * transport_plugin_for_scheme (const gchar * scheme)
+PluginHandle * transport_plugin_for_scheme (const char * scheme)
 {
     TransportPluginForSchemeState state = {scheme, NULL};
     plugin_for_enabled (PLUGIN_TYPE_TRANSPORT, (PluginForEachFunc)
@@ -815,22 +744,22 @@ PluginHandle * transport_plugin_for_scheme (const gchar * scheme)
 }
 
 typedef struct {
-    const gchar * ext;
+    const char * ext;
     PluginHandle * plugin;
 } PlaylistPluginForExtState;
 
-static gboolean playlist_plugin_for_ext_cb (PluginHandle * plugin,
+static bool_t playlist_plugin_for_ext_cb (PluginHandle * plugin,
  PlaylistPluginForExtState * state)
 {
-    if (! g_list_find_custom (plugin->u.p.exts, state->ext, (GCompareFunc)
-     strcasecmp))
+    if (! g_list_find_custom (plugin->u.p.exts, state->ext,
+     (GCompareFunc) g_ascii_strcasecmp))
         return TRUE;
 
     state->plugin = plugin;
     return FALSE;
 }
 
-PluginHandle * playlist_plugin_for_extension (const gchar * extension)
+PluginHandle * playlist_plugin_for_extension (const char * extension)
 {
     PlaylistPluginForExtState state = {extension, NULL};
     plugin_for_enabled (PLUGIN_TYPE_PLAYLIST, (PluginForEachFunc)
@@ -839,23 +768,23 @@ PluginHandle * playlist_plugin_for_extension (const gchar * extension)
 }
 
 typedef struct {
-    gint key;
-    const gchar * value;
+    int key;
+    const char * value;
     PluginForEachFunc func;
     void * data;
 } InputPluginForKeyState;
 
-static gboolean input_plugin_for_key_cb (PluginHandle * plugin,
+static bool_t input_plugin_for_key_cb (PluginHandle * plugin,
  InputPluginForKeyState * state)
 {
-    if (g_list_find_custom (plugin->u.i.keys[state->key], state->value,
-     (GCompareFunc) strcasecmp) == NULL)
+    if (! g_list_find_custom (plugin->u.i.keys[state->key], state->value,
+     (GCompareFunc) g_ascii_strcasecmp))
         return TRUE;
 
     return state->func (plugin, state->data);
 }
 
-void input_plugin_for_key (gint key, const gchar * value, PluginForEachFunc
+void input_plugin_for_key (int key, const char * value, PluginForEachFunc
  func, void * data)
 {
     InputPluginForKeyState state = {key, value, func, data};
@@ -863,44 +792,25 @@ void input_plugin_for_key (gint key, const gchar * value, PluginForEachFunc
      input_plugin_for_key_cb, & state);
 }
 
-static void input_plugin_add_key (InputPlugin * header, gint key, const gchar *
- value)
-{
-    PluginHandle * plugin = plugin_by_header (header);
-    g_return_if_fail (plugin != NULL);
-    plugin->u.i.keys[key] = g_list_prepend (plugin->u.i.keys[key], g_strdup
-     (value));
-}
-
-void uri_set_plugin (const gchar * scheme, InputPlugin * header)
-{
-    input_plugin_add_key (header, INPUT_KEY_SCHEME, scheme);
-}
-
-void mime_set_plugin (const gchar * mime, InputPlugin * header)
-{
-    input_plugin_add_key (header, INPUT_KEY_MIME, mime);
-}
-
-gboolean input_plugin_has_images (PluginHandle * plugin)
+bool_t input_plugin_has_images (PluginHandle * plugin)
 {
     g_return_val_if_fail (plugin->type == PLUGIN_TYPE_INPUT, FALSE);
     return plugin->u.i.has_images;
 }
 
-gboolean input_plugin_has_subtunes (PluginHandle * plugin)
+bool_t input_plugin_has_subtunes (PluginHandle * plugin)
 {
     g_return_val_if_fail (plugin->type == PLUGIN_TYPE_INPUT, FALSE);
     return plugin->u.i.has_subtunes;
 }
 
-gboolean input_plugin_can_write_tuple (PluginHandle * plugin)
+bool_t input_plugin_can_write_tuple (PluginHandle * plugin)
 {
     g_return_val_if_fail (plugin->type == PLUGIN_TYPE_INPUT, FALSE);
     return plugin->u.i.can_write_tuple;
 }
 
-gboolean input_plugin_has_infowin (PluginHandle * plugin)
+bool_t input_plugin_has_infowin (PluginHandle * plugin)
 {
     g_return_val_if_fail (plugin->type == PLUGIN_TYPE_INPUT, FALSE);
     return plugin->u.i.has_infowin;
diff --git a/src/audacious/plugin-view.c b/src/audacious/plugin-view.c
index 818adc1..f8a88f2 100644
--- a/src/audacious/plugin-view.c
+++ b/src/audacious/plugin-view.c
@@ -60,7 +60,7 @@ static Plugin * get_selected_header (GtkTreeView * tree)
     return plugin_get_header (p);
 }
 
-static void do_enable (GtkCellRendererToggle * cell, const gchar * path_str,
+static void do_enable (GtkCellRendererToggle * cell, const char * path_str,
  GtkTreeModel * model)
 {
     GtkTreePath * path = gtk_tree_path_new_from_string (path_str);
@@ -69,7 +69,7 @@ static void do_enable (GtkCellRendererToggle * cell, const gchar * path_str,
     gtk_tree_path_free (path);
 
     Node * n = NULL;
-    gboolean enabled;
+    bool_t enabled;
     gtk_tree_model_get (model, & iter, PVIEW_COL_NODE, & n,
      PVIEW_COL_ENABLED, & enabled, -1);
     g_return_if_fail (n != NULL);
@@ -77,7 +77,7 @@ static void do_enable (GtkCellRendererToggle * cell, const gchar * path_str,
     plugin_enable (n->p, ! enabled);
 }
 
-static gboolean list_watcher (PluginHandle * p, Node * n)
+static bool_t list_watcher (PluginHandle * p, Node * n)
 {
     GtkTreeIter iter;
     gtk_tree_model_get_iter (n->model, & iter, n->path);
@@ -86,7 +86,7 @@ static gboolean list_watcher (PluginHandle * p, Node * n)
     return TRUE;
 }
 
-static gboolean fill_cb (PluginHandle * p, GtkTreeModel * model)
+static bool_t fill_cb (PluginHandle * p, GtkTreeModel * model)
 {
     Node * n = g_slice_new (Node);
 
@@ -122,7 +122,7 @@ static void list_fill (GtkTreeView * tree, void * type)
     gtk_tree_view_column_set_attributes (col, rend, "active", PVIEW_COL_ENABLED,
      NULL);
 
-    for (gint i = PVIEW_COL_NAME; i <= PVIEW_COL_PATH; i ++)
+    for (int i = PVIEW_COL_NAME; i <= PVIEW_COL_PATH; i ++)
     {
         col = gtk_tree_view_column_new ();
         gtk_tree_view_column_set_sizing (col, GTK_TREE_VIEW_COLUMN_GROW_ONLY);
@@ -162,14 +162,14 @@ static void list_destroy (GtkTreeView * tree)
     g_object_unref ((GObject *) model);
 }
 
-static gboolean config_watcher (PluginHandle * p, GtkWidget * config)
+static bool_t config_watcher (PluginHandle * p, GtkWidget * config)
 {
     gtk_widget_set_sensitive (config, plugin_has_configure (p) &&
      plugin_get_enabled (p));
     return TRUE;
 }
 
-static gboolean about_watcher (PluginHandle * p, GtkWidget * about)
+static bool_t about_watcher (PluginHandle * p, GtkWidget * about)
 {
     gtk_widget_set_sensitive (about, plugin_has_about (p) && plugin_get_enabled
      (p));
@@ -178,7 +178,8 @@ static gboolean about_watcher (PluginHandle * p, GtkWidget * about)
 
 static void button_update (GtkTreeView * tree, GtkWidget * b)
 {
-    PluginForEachFunc watcher = g_object_get_data ((GObject *) b, "watcher");
+    PluginForEachFunc watcher = (PluginForEachFunc) g_object_get_data
+     ((GObject *) b, "watcher");
     g_return_if_fail (watcher != NULL);
 
     PluginHandle * p = g_object_steal_data ((GObject *) b, "plugin");
@@ -218,7 +219,8 @@ static void do_about (GtkTreeView * tree)
 
 static void button_destroy (GtkWidget * b)
 {
-    PluginForEachFunc watcher = g_object_get_data ((GObject *) b, "watcher");
+    PluginForEachFunc watcher = (PluginForEachFunc) g_object_get_data
+     ((GObject *) b, "watcher");
     g_return_if_fail (watcher != NULL);
 
     PluginHandle * p = g_object_steal_data ((GObject *) b, "plugin");
@@ -226,7 +228,7 @@ static void button_destroy (GtkWidget * b)
         plugin_remove_watch (p, watcher, b);
 }
 
-GtkWidget * plugin_view_new (gint type)
+GtkWidget * plugin_view_new (int type)
 {
     GtkWidget * vbox = gtk_vbox_new (FALSE, 6);
     gtk_container_set_border_width ((GtkContainer *) vbox, 6);
@@ -251,7 +253,7 @@ GtkWidget * plugin_view_new (gint type)
     GtkWidget * config = gtk_button_new_from_stock (GTK_STOCK_PREFERENCES);
     gtk_box_pack_start ((GtkBox *) hbox, config, FALSE, FALSE, 0);
     gtk_widget_set_sensitive (config, FALSE);
-    g_object_set_data ((GObject *) config, "watcher", config_watcher);
+    g_object_set_data ((GObject *) config, "watcher", (void *) config_watcher);
     g_signal_connect (tree, "cursor-changed", (GCallback) button_update, config);
     g_signal_connect_swapped (config, "clicked", (GCallback)
      do_config, tree);
@@ -260,7 +262,7 @@ GtkWidget * plugin_view_new (gint type)
     GtkWidget * about = gtk_button_new_from_stock (GTK_STOCK_ABOUT);
     gtk_box_pack_start ((GtkBox *) hbox, about, FALSE, FALSE, 0);
     gtk_widget_set_sensitive (about, FALSE);
-    g_object_set_data ((GObject *) about, "watcher", about_watcher);
+    g_object_set_data ((GObject *) about, "watcher", (void *) about_watcher);
     g_signal_connect (tree, "cursor-changed", (GCallback) button_update, about);
     g_signal_connect_swapped (about, "clicked", (GCallback) do_about, tree);
     g_signal_connect (about, "destroy", (GCallback) button_destroy, NULL);
diff --git a/src/audacious/plugin.h b/src/audacious/plugin.h
index d8958c5..e77dbbf 100644
--- a/src/audacious/plugin.h
+++ b/src/audacious/plugin.h
@@ -22,12 +22,10 @@
 #ifndef AUDACIOUS_PLUGIN_H
 #define AUDACIOUS_PLUGIN_H
 
-#include <glib.h>
-#include <gmodule.h>
-
 #include <audacious/api.h>
 #include <audacious/types.h>
 #include <libaudcore/audio.h>
+#include <libaudcore/index.h>
 #include <libaudcore/tuple.h>
 #include <libaudcore/vfs.h>
 
@@ -47,100 +45,117 @@
  * the API tables), increment _AUD_PLUGIN_VERSION *and* set
  * _AUD_PLUGIN_VERSION_MIN to the same value. */
 
-#define _AUD_PLUGIN_VERSION_MIN 18 /* 2.5-alpha1 */
-#define _AUD_PLUGIN_VERSION     20 /* 2.5-beta2 */
+#define _AUD_PLUGIN_VERSION_MIN 38 /* 3.2-alpha2 */
+#define _AUD_PLUGIN_VERSION     38
 
-/**
- * The plugin module header. Each module can contain several plugins,
- * of any supported type.
- */
-typedef const struct {
-    gint magic; /* checked against _AUD_PLUGIN_MAGIC */
-    gint version; /* checked against _AUD_PLUGIN_VERSION */
-    const gchar * name;
-    void (* init) (void);
-    void (* fini) (void);
-
-    /* These are arrays of pointers, ending with NULL: */
-    InputPlugin * const * ip_list;
-    OutputPlugin * const * op_list;
-    EffectPlugin * const * ep_list;
-    GeneralPlugin * const * gp_list;
-    VisPlugin * const * vp_list;
-    TransportPlugin * const * tp_list;
-    PlaylistPlugin * const * pp_list;
-
-    Iface * iface;
-} PluginHeader;
-
-#define DECLARE_PLUGIN(name, ...) \
- AudAPITable * _aud_api_table = NULL; \
- G_MODULE_EXPORT PluginHeader * get_plugin_info (AudAPITable * table) { \
-    static PluginHeader h = {_AUD_PLUGIN_MAGIC, _AUD_PLUGIN_VERSION, #name, \
-     __VA_ARGS__}; \
-    _aud_api_table = table; \
-    return & h; \
- }
-
-#define SIMPLE_TRANSPORT_PLUGIN(name, t) DECLARE_PLUGIN(name, .tp_list = t)
-#define SIMPLE_PLAYLIST_PLUGIN(name, p) DECLARE_PLUGIN(name, .pp_list = p)
-#define SIMPLE_INPUT_PLUGIN(name, i) DECLARE_PLUGIN (name, .ip_list = i)
-#define SIMPLE_EFFECT_PLUGIN(name, e) DECLARE_PLUGIN (name, .ep_list = e)
-#define SIMPLE_OUTPUT_PLUGIN(name, o) DECLARE_PLUGIN (name, .op_list = o)
-#define SIMPLE_VIS_PLUGIN(name, v) DECLARE_PLUGIN(name, .vp_list = v)
-#define SIMPLE_GENERAL_PLUGIN(name, g) DECLARE_PLUGIN (name, .gp_list = g)
-#define SIMPLE_IFACE_PLUGIN(name, i) DECLARE_PLUGIN(name, .iface = i)
-
-#define SIMPLE_VISUAL_PLUGIN SIMPLE_VIS_PLUGIN /* deprecated */
-
-#define PLUGIN_COMMON_FIELDS        \
-    gchar *description;            \
-    gboolean (* init) (void); \
-    void (*cleanup) (void);        \
-    void (*about) (void);        \
-    void (*configure) (void);        \
-    PluginPreferences *settings;
-
-struct _Plugin {
+/* A NOTE ON THREADS
+ *
+ * How thread-safe a plugin must be depends on the type of plugin.  Note that
+ * some parts of the Audacious API are *not* thread-safe and therefore cannot be
+ * used in some parts of some plugins; for example, input plugins cannot use
+ * GUI-related calls or access the playlist except in about() and configure().
+ *
+ * Thread-safe plugins: transport, playlist, input, effect, and output.  These
+ * must be mostly thread-safe.  init() and cleanup() may be called from
+ * secondary threads; however, no other functions provided by the plugin will be
+ * called at the same time.  about() and configure() will be called only from
+ * the main thread.  All other functions provided by the plugin may be called
+ * from any thread and from multiple threads simultaneously.
+ *
+ * Exceptions:
+ * - Because many existing input plugins are not coded to handle simultaneous
+ *   calls to play(), play() will only be called from one thread at a time.  New
+ *   plugins should not rely on this exception, though.
+ * - Some combinations of calls, especially for output and effect plugins, make
+ *   no sense; for example, flush() in an output plugin will only be called
+ *   after open_audio() and before close_audio().
+ *
+ * Single-thread plugins: visualization, general, and interface.  Functions
+ * provided by these plugins will only be called from the main thread. */
+
+/* CROSS-PLUGIN MESSAGES
+ *
+ * Since 3.2, Audacious implements a basic messaging system between plugins.
+ * Messages are sent using aud_plugin_send_message() and received through the
+ * take_message() method specified in the header of the receiving plugin.
+ * Plugins that do not need to receive messages can set take_message() to NULL.
+ *
+ * Each message includes a code indicating the type of message, a pointer to
+ * some data, and a value indicating the size of that data. What the message
+ * data contains is entirely up to the two plugins involved. For this reason, it
+ * is crucial that both plugins agree on the meaning of the message codes used.
+ *
+ * Once the message is sent, an integer error code is returned. If the receiving
+ * plugin does not provide the take_message() method, ENOSYS is returned. If
+ * take_message() does not recognize the message code, it should ignore the
+ * message and return EINVAL. An error code of zero represents success. Other
+ * error codes may be used with more specific meanings.
+ *
+ * For the time being, aud_plugin_send_message() should only be called from the
+ * program's main thread. */
+
+#define PLUGIN_COMMON_FIELDS \
+    int magic; /* checked against _AUD_PLUGIN_MAGIC */ \
+    int version; /* checked against _AUD_PLUGIN_VERSION */ \
+    int type; /* PLUGIN_TYPE_XXX */ \
+    int size; /* size in bytes of the struct */ \
+    const char * name; \
+    bool_t (* init) (void); \
+    void (* cleanup) (void); \
+    int (* take_message) (const char * code, const void * data, int size); \
+    void (* about) (void); \
+    void (* configure) (void); \
+    PluginPreferences * settings;
+
+struct _Plugin
+{
     PLUGIN_COMMON_FIELDS
 };
 
-struct _TransportPlugin {
+struct _TransportPlugin
+{
     PLUGIN_COMMON_FIELDS
-    const gchar * const * schemes; /* array ending with NULL */
+    const char * const * schemes; /* array ending with NULL */
     const VFSConstructor * vtable;
 };
 
-struct _PlaylistPlugin {
+struct _PlaylistPlugin
+{
     PLUGIN_COMMON_FIELDS
-	const gchar * const * extensions; /* array ending with NULL */
-	gboolean (* load) (const gchar * filename, gint list, gint at);
-	gboolean (* save) (const gchar * filename, gint list);
+	const char * const * extensions; /* array ending with NULL */
+	bool_t (* load) (const char * path, VFSFile * file,
+     char * * title, /* pooled */
+     Index * filenames, /* of (char *), pooled */
+     Index * tuples); /* of (Tuple *) */
+	bool_t (* save) (const char * path, VFSFile * file, const char * title,
+     Index * filenames, /* of (char *) */
+     Index * tuples); /* of (Tuple *) */
 };
 
-struct _OutputPlugin {
+struct _OutputPlugin
+{
     PLUGIN_COMMON_FIELDS
 
     /* During probing, plugins with higher priority (10 to 0) are tried first. */
-    gint probe_priority;
+    int probe_priority;
 
     /* Returns current volume for left and right channels (0 to 100). */
-    void (* get_volume) (gint * l, gint * r);
+    void (* get_volume) (int * l, int * r);
 
     /* Changes volume for left and right channels (0 to 100). */
-    void (* set_volume) (gint l, gint r);
+    void (* set_volume) (int l, int r);
 
     /* Begins playback of a PCM stream.  <format> is one of the FMT_*
      * enumeration values defined in libaudcore/audio.h.  Returns nonzero on
      * success. */
-    gboolean (* open_audio) (gint format, gint rate, gint chans);
+    bool_t (* open_audio) (int format, int rate, int chans);
 
     /* Ends playback.  Any buffered audio data is discarded. */
     void (* close_audio) (void);
 
     /* Returns how many bytes of data may be passed to a following write_audio()
      * call.  NULL if the plugin supports only blocking writes (not recommended). */
-    gint (* buffer_free) (void);
+    int (* buffer_free) (void);
 
     /* Waits until buffer_free() will return a size greater than zero.
      * output_time(), pause(), and flush() may be called meanwhile; if flush()
@@ -149,47 +164,48 @@ struct _OutputPlugin {
     void (* period_wait) (void);
 
     /* Buffers <size> bytes of data, in the format given to open_audio(). */
-    void (* write_audio) (void * data, gint size);
+    void (* write_audio) (void * data, int size);
 
     /* Waits until all buffered data has been heard by the user. */
     void (* drain) (void);
 
     /* Returns time count (in milliseconds) of how much data has been written. */
-    gint (* written_time) (void);
+    int (* written_time) (void);
 
     /* Returns time count (in milliseconds) of how much data has been heard by
      * the user. */
-    gint (* output_time) (void);
+    int (* output_time) (void);
 
     /* Pauses the stream if <p> is nonzero; otherwise unpauses it.
      * write_audio() will not be called while the stream is paused. */
-    void (* pause) (gboolean p);
+    void (* pause) (bool_t p);
 
     /* Discards any buffered audio data and sets the time counter (in
      * milliseconds) of data written. */
-    void (* flush) (gint time);
+    void (* flush) (int time);
 
     /* Sets the time counter (in milliseconds) of data written without
      * discarding any buffered audio data.  If <time> is less than the amount of
      * buffered data, following calls to output_time() will return negative
      * values. */
-    void (* set_written_time) (gint time);
+    void (* set_written_time) (int time);
 };
 
-struct _EffectPlugin {
+struct _EffectPlugin
+{
     PLUGIN_COMMON_FIELDS
 
     /* All processing is done in floating point.  If the effect plugin wants to
      * change the channel count or sample rate, it can change the parameters
      * passed to start().  They cannot be changed in the middle of a song. */
-    void (* start) (gint * channels, gint * rate);
+    void (* start) (int * channels, int * rate);
 
     /* process() has two options: modify the samples in place and leave the data
      * pointer unchanged or copy them into a buffer of its own.  If it sets the
      * pointer to dynamically allocated memory, it is the plugin's job to free
      * that memory.  process() may return different lengths of audio than it is
      * passed, even a zero length. */
-    void (* process) (gfloat * * data, gint * samples);
+    void (* process) (float * * data, int * samples);
 
     /* A seek is taking place; any buffers should be discarded. */
     void (* flush) (void);
@@ -197,19 +213,19 @@ struct _EffectPlugin {
     /* Exactly like process() except that any buffers should be drained (i.e.
      * the data processed and returned).  finish() will be called a second time
      * at the end of the last song in the playlist. */
-    void (* finish) (gfloat * * data, gint * samples);
+    void (* finish) (float * * data, int * samples);
 
-    /* For effects that change the length of the song, these functions allow the
-     * correct time to be displayed. */
-    gint (* decoder_to_output_time) (gint time);
-    gint (* output_to_decoder_time) (gint time);
+    /* Optional.  For effects that change the length of the song, these
+     * functions allow the correct time to be displayed. */
+    int (* decoder_to_output_time) (int time);
+    int (* output_to_decoder_time) (int time);
 
     /* Effects with lowest order (0 to 9) are applied first. */
-    gint order;
+    int order;
 
     /* If the effect does not change the number of channels or the sampling
      * rate, it can be enabled and disabled more smoothly. */
-    gboolean preserves_format;
+    bool_t preserves_format;
 };
 
 struct OutputAPI
@@ -220,7 +236,7 @@ struct OutputAPI
     /* Prepare the output system for playback in the specified format.  Returns
      * nonzero on success.  If the call fails, no other output functions may be
      * called. */
-    gint (* open_audio) (gint format, gint rate, gint channels);
+    int (* open_audio) (int format, int rate, int channels);
 
     /* Informs the output system of replay gain values for the current song so
      * that volume levels can be adjusted accordingly, if the user so desires.
@@ -233,7 +249,7 @@ struct OutputAPI
      * been written (though it may not yet be heard by the user); if the output
      * system is paused; this may be indefinitely.  See abort_write for a way to
      * interrupt a blocked call. */
-    void (* write_audio) (void * data, gint length);
+    void (* write_audio) (void * data, int length);
 
     /* End playback.  Any audio data currently buffered by the output system
      * will be discarded.  After the call, no other output functions, except
@@ -243,12 +259,12 @@ struct OutputAPI
     /* Pause or unpause playback.  This function may be called during a call to
      * write_audio, in which write_audio will block until playback is unpaused
      * (but see abort_write to prevent the call from blocking). */
-    void (* pause) (gboolean pause);
+    void (* pause) (bool_t pause);
 
     /* Discard any audio data currently buffered by the output system, and set
      * the time counter to a new value.  This function is intended to be used
      * for seeking. */
-    void (* flush) (gint time);
+    void (* flush) (int time);
 
     /* Returns the time counter.  Note that this represents the amount of audio
      * data passed to the output system, not the amount actually heard by the
@@ -256,7 +272,7 @@ struct OutputAPI
      * First, save the time counter using this function.  Second, call
      * close_audio and then open_audio with the new format (note that the call
      * may fail).  Finally, restore the time counter using flush. */
-    gint (* written_time) (void);
+    int (* written_time) (void);
 
     /* Returns TRUE if there is data remaining in the output buffer; FALSE if
      * all data written to the output system has been heard by the user.  This
@@ -264,7 +280,7 @@ struct OutputAPI
      * calls) at the end of a song before calling close_audio.  Once it returns
      * FALSE, close_audio can be called without cutting off any of the end of
      * the song. */
-    gboolean (* buffer_playing) (void);
+    bool_t (* buffer_playing) (void);
 
     /* Interrupt a call to write_audio so that it returns immediately.  This
      * works even when the call is blocked by pause.  Buffered audio data is
@@ -281,7 +297,8 @@ struct OutputAPI
 
 typedef const struct _InputPlayback InputPlayback;
 
-struct _InputPlayback {
+struct _InputPlayback
+{
     /* Pointer to the output API functions. */
     const struct OutputAPI * output;
 
@@ -297,15 +314,12 @@ struct _InputPlayback {
 
     /* Updates attributes of the stream.  "bitrate" is in bits per second.
      * "samplerate" is in hertz. */
-    void (* set_params) (InputPlayback * p, gint bitrate, gint samplerate,
-     gint channels);
+    void (* set_params) (InputPlayback * p, int bitrate, int samplerate,
+     int channels);
 
-    /**
-     * Sets / updates playback entry #Tuple.
-     * @attention Caller gives up ownership of one reference to the tuple.
-     * @since Added in Audacious 2.2.
-     */
-    void (*set_tuple) (InputPlayback * playback, Tuple * tuple);
+    /* Updates metadata for the stream.  Caller gives up ownership of one
+     * reference to the tuple. */
+    void (* set_tuple) (InputPlayback * playback, Tuple * tuple);
 
     /* If replay gain settings are stored in the tuple associated with the
      * current song, this function can be called (after opening audio) to apply
@@ -314,7 +328,8 @@ struct _InputPlayback {
     void (* set_gain_from_playlist) (InputPlayback * playback);
 };
 
-struct _InputPlugin {
+struct _InputPlugin
+{
     PLUGIN_COMMON_FIELDS
 
     /* Nonzero if the files handled by the plugin may contain more than one
@@ -334,38 +349,44 @@ struct _InputPlugin {
      * 3. When one of the songs is played, Audacious opens the file and calls
      * play() with a file name modified in this way.
      */
-    gboolean have_subtune;
+    bool_t have_subtune;
 
     /* Pointer to an array (terminated with NULL) of file extensions associated
      * with file types the plugin can handle. */
-    const gchar * const * vfs_extensions;
+    const char * const * extensions;
+    /* Pointer to an array (terminated with NULL) of MIME types the plugin can
+     * handle. */
+    const char * const * mimes;
+    /* Pointer to an array (terminated with NULL) of custom URI schemes the
+     * plugin can handle. */
+    const char * const * schemes;
 
     /* How quickly the plugin should be tried in searching for a plugin to
      * handle a file which could not be identified from its extension.  Plugins
      * with priority 0 are tried first, 10 last. */
-    gint priority;
+    int priority;
 
     /* Must return nonzero if the plugin can handle this file.  If the file
      * could not be opened, "file" will be NULL.  (This is normal in the case of
      * special URI schemes like cdda:// that do not represent actual files.) */
-    gboolean (* is_our_file_from_vfs) (const gchar * filename, VFSFile * file);
+    bool_t (* is_our_file_from_vfs) (const char * filename, VFSFile * file);
 
     /* Must return a tuple containing metadata for this file, or NULL if no
      * metadata could be read.  If the file could not be opened, "file" will be
      * NULL.  Audacious takes over one reference to the tuple returned. */
-    Tuple * (* probe_for_tuple) (const gchar * filename, VFSFile * file);
+    Tuple * (* probe_for_tuple) (const char * filename, VFSFile * file);
 
     /* Optional.  Must write metadata from a tuple to this file.  Must return
      * nonzero on success or zero on failure.  "file" will never be NULL. */
     /* Bug: This function does not support special URI schemes like cdda://,
      * since no file name is passed. */
-    gboolean (* update_song_tuple) (const Tuple * tuple, VFSFile * file);
+    bool_t (* update_song_tuple) (const Tuple * tuple, VFSFile * file);
 
     /* Optional, and not recommended.  Must show a window with information about
      * this file.  If this function is provided, update_song_tuple should not be. */
     /* Bug: Implementing this function duplicates user interface code and code
      * to open the file in each and every plugin. */
-    void (* file_info_box) (const gchar * filename);
+    void (* file_info_box) (const char * filename);
 
     /* Optional.  Must try to read an "album art" image embedded in this file.
      * Must return nonzero on success or zero on failure.  If the file could not
@@ -373,8 +394,8 @@ struct _InputPlugin {
      * pointer to a block of data allocated with g_malloc and "size" with the
      * size in bytes of that block.  The data may be in any format supported by
      * GTK.  Audacious will free the data when it is no longer needed. */
-    gboolean (* get_song_image) (const gchar * filename, VFSFile * file,
-     void * * data, gint * size);
+    bool_t (* get_song_image) (const char * filename, VFSFile * file,
+     void * * data, int64_t * size);
 
     /* Must try to play this file.  "playback" is a structure containing output-
      * related functions which the plugin may make use of.  It also contains a
@@ -387,19 +408,19 @@ struct _InputPlugin {
      * file.  "paused" specifies whether playback should immediately be paused.
      * Must return nonzero if some of the file was successfully played or zero
      * on failure. */
-    gboolean (* play) (InputPlayback * playback, const gchar * filename,
-     VFSFile * file, gint start_time, gint stop_time, gboolean pause);
+    bool_t (* play) (InputPlayback * playback, const char * filename,
+     VFSFile * file, int start_time, int stop_time, bool_t pause);
 
     /* Must pause or unpause a file currently being played.  This function will
      * be called from a different thread than play, but it will not be called
      * before the plugin calls set_pb_ready or after stop is called. */
-    void (* pause) (InputPlayback * playback, gboolean paused);
+    void (* pause) (InputPlayback * playback, bool_t paused);
 
     /* Optional.  Must seek to the given position in milliseconds within a file
      * currently being played.  This function will be called from a different
      * thread than play, but it will not be called before the plugin calls
      * set_pb_ready or after stop is called. */
-    void (* mseek) (InputPlayback * playback, gint time);
+    void (* mseek) (InputPlayback * playback, int time);
 
     /* Must signal a currently playing song to stop and cause play to return.
      * This function will be called from a different thread than play.  It will
@@ -409,40 +430,94 @@ struct _InputPlugin {
 
     /* Advanced, for plugins that do not use Audacious's output system.  Use at
      * your own risk. */
-    gint (* get_time) (InputPlayback * playback);
-    gint (* get_volume) (gint * l, gint * r);
-    gint (* set_volume) (gint l, gint r);
+    int (* get_time) (InputPlayback * playback);
+    int (* get_volume) (int * l, int * r);
+    int (* set_volume) (int l, int r);
 };
 
-struct _GeneralPlugin {
+struct _GeneralPlugin
+{
     PLUGIN_COMMON_FIELDS
 
+    bool_t enabled_by_default;
+
     /* GtkWidget * (* get_widget) (void); */
     void * (* get_widget) (void);
 };
 
-struct _VisPlugin {
+struct _VisPlugin
+{
     PLUGIN_COMMON_FIELDS
 
-    gint num_pcm_chs_wanted;
-    gint num_freq_chs_wanted;
+    /* reset internal state and clear display */
+    void (* clear) (void);
 
-    void (*playback_start) (void);
-    void (*playback_stop) (void);
-    void (*render_pcm) (gint16 pcm_data[2][512]);
+    /* 512 frames of a single-channel PCM signal */
+    void (* render_mono_pcm) (const float * pcm);
 
-    /* The range of intensities is 0 - 32767 (though theoretically it is
-     * possible for the FFT to result in bigger values, making the final
-     * intensity negative due to overflowing the 16bit signed integer.)
-     *
-     * If output is mono, only freq_data[0] is filled.
-     */
-    void (*render_freq) (gint16 freq_data[2][256]);
+    /* 512 frames of an interleaved multi-channel PCM signal */
+    void (* render_multi_pcm) (const float * pcm, int channels);
+
+    /* intensity of frequencies 1/512, 2/512, ..., 256/512 of sample rate */
+    void (* render_freq) (const float * freq);
 
     /* GtkWidget * (* get_widget) (void); */
     void * (* get_widget) (void);
 };
 
+struct _IfacePlugin
+{
+    PLUGIN_COMMON_FIELDS
+
+    /* is_shown() may return nonzero even if the interface is not actually
+     * visible; for example, if it is obscured by other windows or minimized.
+     * is_focused() only returns nonzero if the interface is actually visible;
+     * in X11, this should be determined by whether the interface has the
+     * toplevel focus.  show() should show and raise the interface, so that both
+     * is_shown() and is_focused() will return nonzero. */
+    void (* show) (bool_t show);
+    bool_t (* is_shown) (void);
+
+    void (* show_error) (const char * markup);
+    void (* show_filebrowser) (bool_t play_button);
+    void (* show_jump_to_track) (void);
+
+    void /* GtkWidget */ * (* run_gtk_plugin) (void /* GtkWidget */ * widget,
+     const char * name);
+    void * (* stop_gtk_plugin) (void /* GtkWidget */ * widget);
+
+    void (* install_toolbar) (void /* GtkWidget */ * button);
+    void (* uninstall_toolbar) (void /* GtkWidget */ * button);
+
+    /* added after 3.0-alpha1 */
+    bool_t (* is_focused) (void);
+};
+
 #undef PLUGIN_COMMON_FIELDS
 
+#define AUD_PLUGIN(stype, itype, ...) \
+AudAPITable * _aud_api_table = NULL; \
+stype _aud_plugin_self = { \
+ .magic = _AUD_PLUGIN_MAGIC, \
+ .version = _AUD_PLUGIN_VERSION, \
+ .type = itype, \
+ .size = sizeof (stype), \
+ __VA_ARGS__}; \
+stype * get_plugin_info (AudAPITable * table) { \
+    _aud_api_table = table; \
+    return & _aud_plugin_self; \
+}
+
+#define AUD_TRANSPORT_PLUGIN(...) AUD_PLUGIN (TransportPlugin, PLUGIN_TYPE_TRANSPORT, __VA_ARGS__)
+#define AUD_PLAYLIST_PLUGIN(...) AUD_PLUGIN (PlaylistPlugin, PLUGIN_TYPE_PLAYLIST, __VA_ARGS__)
+#define AUD_INPUT_PLUGIN(...) AUD_PLUGIN (InputPlugin, PLUGIN_TYPE_INPUT, __VA_ARGS__)
+#define AUD_EFFECT_PLUGIN(...) AUD_PLUGIN (EffectPlugin, PLUGIN_TYPE_EFFECT, __VA_ARGS__)
+#define AUD_OUTPUT_PLUGIN(...) AUD_PLUGIN (OutputPlugin, PLUGIN_TYPE_OUTPUT, __VA_ARGS__)
+#define AUD_VIS_PLUGIN(...) AUD_PLUGIN (VisPlugin, PLUGIN_TYPE_VIS, __VA_ARGS__)
+#define AUD_GENERAL_PLUGIN(...) AUD_PLUGIN (GeneralPlugin, PLUGIN_TYPE_GENERAL, __VA_ARGS__)
+#define AUD_IFACE_PLUGIN(...) AUD_PLUGIN (IfacePlugin, PLUGIN_TYPE_IFACE, __VA_ARGS__)
+
+#define PLUGIN_HAS_FUNC(p, func) \
+ ((p)->size > (char *) & (p)->func - (char *) (p) && (p)->func)
+
 #endif /* AUDACIOUS_PLUGIN_H */
diff --git a/src/audacious/pluginenum.c b/src/audacious/pluginenum.c
index e4b8641..869e9ff 100644
--- a/src/audacious/pluginenum.c
+++ b/src/audacious/pluginenum.c
@@ -1,5 +1,5 @@
 /*  Audacious - Cross-platform multimedia player
- *  Copyright (C) 2005-2009  Audacious development team
+ *  Copyright (C) 2005-2011  Audacious development team
  *
  *  Based on BMP:
  *  Copyright (C) 2003-2004  BMP development team
@@ -24,9 +24,9 @@
  */
 
 #include <assert.h>
-
 #include <glib.h>
 #include <gmodule.h>
+#include <pthread.h>
 
 #include <libaudcore/audstrings.h>
 #include <libaudgui/init.h>
@@ -37,38 +37,38 @@
 # define SHARED_SUFFIX G_MODULE_SUFFIX
 #endif
 
-#include "audconfig.h"
 #include "debug.h"
 #include "plugin.h"
 #include "ui_preferences.h"
 #include "util.h"
 
 #define AUD_API_DECLARE
-#include "configdb.h"
 #include "drct.h"
 #include "misc.h"
 #include "playlist.h"
 #include "plugins.h"
 #undef AUD_API_DECLARE
 
-static const gchar * plugin_dir_list[] = {PLUGINSUBS, NULL};
+static const char * plugin_dir_list[] = {PLUGINSUBS, NULL};
+
+char verbose = 0;
 
-static AudAPITable api_table = {
- .configdb_api = & configdb_api,
+AudAPITable api_table = {
  .drct_api = & drct_api,
  .misc_api = & misc_api,
  .playlist_api = & playlist_api,
  .plugins_api = & plugins_api,
- .cfg = & cfg};
+ .verbose = & verbose};
 
 typedef struct {
-    PluginHeader * header;
+    Plugin * header;
     GModule * module;
 } LoadedModule;
 
 static GList * loaded_modules = NULL;
+static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
 
-static void plugin2_process (PluginHeader * header, GModule * module, const gchar * filename)
+static void plugin2_process (Plugin * header, GModule * module, const char * filename)
 {
     if (header->magic != _AUD_PLUGIN_MAGIC)
     {
@@ -84,151 +84,60 @@ static void plugin2_process (PluginHeader * header, GModule * module, const gcha
         return;
     }
 
-    LoadedModule * loaded = g_slice_new (LoadedModule);
-    loaded->header = header;
-    loaded->module = module;
-    loaded_modules = g_list_prepend (loaded_modules, loaded);
-
-    if (header->init != NULL)
-    {
-        plugin_register (PLUGIN_TYPE_LOWLEVEL, filename, 0, NULL);
-        header->init ();
-    }
-
-    if (header->tp_list)
-    {
-        TransportPlugin * tp;
-        for (gint i = 0; (tp = header->tp_list[i]); i ++)
-        {
-            plugin_register (PLUGIN_TYPE_TRANSPORT, filename, i, tp);
-            if (tp->init != NULL)
-                tp->init (); /* FIXME: Pay attention to the return value. */
-        }
-    }
-
-    if (header->pp_list)
-    {
-        PlaylistPlugin * pp;
-        for (gint i = 0; (pp = header->pp_list[i]); i ++)
-        {
-            plugin_register (PLUGIN_TYPE_PLAYLIST, filename, i, pp);
-            if (pp->init != NULL)
-                pp->init (); /* FIXME: Pay attention to the return value. */
-        }
-    }
-
-    if (header->ip_list != NULL)
-    {
-        InputPlugin * ip;
-        for (gint i = 0; (ip = header->ip_list[i]) != NULL; i ++)
-        {
-            plugin_register (PLUGIN_TYPE_INPUT, filename, i, ip);
-            if (ip->init != NULL)
-                ip->init (); /* FIXME: Pay attention to the return value. */
-        }
-    }
-
-    if (header->ep_list != NULL)
+    switch (header->type)
     {
-        EffectPlugin * ep;
-        for (gint i = 0; (ep = header->ep_list[i]) != NULL; i ++)
+    case PLUGIN_TYPE_TRANSPORT:
+    case PLUGIN_TYPE_PLAYLIST:
+    case PLUGIN_TYPE_INPUT:
+    case PLUGIN_TYPE_EFFECT:
+        if (PLUGIN_HAS_FUNC (header, init) && ! header->init ())
         {
-            plugin_register (PLUGIN_TYPE_EFFECT, filename, i, ep);
-            if (ep->init != NULL)
-                ep->init (); /* FIXME: Pay attention to the return value. */
+            fprintf (stderr, " *** ERROR: %s failed to initialize.\n", filename);
+            g_module_close (module);
+            return;
         }
+        break;
     }
 
-    if (header->op_list != NULL)
-    {
-        OutputPlugin * op;
-        for (gint i = 0; (op = header->op_list[i]) != NULL; i ++)
-            plugin_register (PLUGIN_TYPE_OUTPUT, filename, i, op);
-    }
-
-    if (header->vp_list != NULL)
-    {
-        VisPlugin * vp;
-        for (gint i = 0; (vp = header->vp_list[i]) != NULL; i ++)
-            plugin_register (PLUGIN_TYPE_VIS, filename, i, vp);
-    }
-
-    if (header->gp_list != NULL)
-    {
-        GeneralPlugin * gp;
-        for (gint i = 0; (gp = header->gp_list[i]) != NULL; i ++)
-            plugin_register (PLUGIN_TYPE_GENERAL, filename, i, gp);
-    }
+    pthread_mutex_lock (& mutex);
+    LoadedModule * loaded = g_slice_new (LoadedModule);
+    loaded->header = header;
+    loaded->module = module;
+    loaded_modules = g_list_prepend (loaded_modules, loaded);
+    pthread_mutex_unlock (& mutex);
 
-    if (header->iface != NULL)
-        plugin_register (PLUGIN_TYPE_IFACE, filename, 0, header->iface);
+    plugin_register_loaded (filename, header);
 }
 
 static void plugin2_unload (LoadedModule * loaded)
 {
-    PluginHeader * header = loaded->header;
-
-    if (header->ip_list != NULL)
-    {
-        InputPlugin * ip;
-        for (gint i = 0; (ip = header->ip_list[i]) != NULL; i ++)
-        {
-            if (ip->settings != NULL)
-                plugin_preferences_cleanup (ip->settings);
-            if (ip->cleanup != NULL)
-                ip->cleanup ();
-        }
-    }
+    Plugin * header = loaded->header;
 
-    if (header->ep_list != NULL)
+    switch (header->type)
     {
-        EffectPlugin * ep;
-        for (gint i = 0; (ep = header->ep_list[i]) != NULL; i ++)
-        {
-            if (ep->settings != NULL)
-                plugin_preferences_cleanup (ep->settings);
-            if (ep->cleanup != NULL)
-                ep->cleanup ();
-        }
-    }
-
-    if (header->pp_list != NULL)
-    {
-        PlaylistPlugin * pp;
-        for (gint i = 0; (pp = header->pp_list[i]) != NULL; i ++)
-        {
-            if (pp->settings != NULL)
-                plugin_preferences_cleanup (pp->settings);
-            if (pp->cleanup != NULL)
-                pp->cleanup ();
-        }
+    case PLUGIN_TYPE_TRANSPORT:
+    case PLUGIN_TYPE_PLAYLIST:
+    case PLUGIN_TYPE_INPUT:
+    case PLUGIN_TYPE_EFFECT:
+        if (PLUGIN_HAS_FUNC (header, settings))
+            plugin_preferences_cleanup (header->settings);
+        if (PLUGIN_HAS_FUNC (header, cleanup))
+            header->cleanup ();
+        break;
     }
 
-    if (header->tp_list != NULL)
-    {
-        TransportPlugin * tp;
-        for (gint i = 0; (tp = header->tp_list[i]) != NULL; i ++)
-        {
-            if (tp->settings != NULL)
-                plugin_preferences_cleanup (tp->settings);
-            if (tp->cleanup != NULL)
-                tp->cleanup ();
-        }
-    }
-
-    if (header->fini != NULL)
-        header->fini ();
-
+    pthread_mutex_lock (& mutex);
     g_module_close (loaded->module);
     g_slice_free (LoadedModule, loaded);
+    pthread_mutex_unlock (& mutex);
 }
 
 /******************************************************************/
 
-void module_load (const gchar * filename)
+void plugin_load (const char * filename)
 {
     GModule *module;
-    PluginHeader * (* func) (AudAPITable * table);
+    Plugin * (* func) (AudAPITable * table);
 
     AUDDBG ("Loading plugin: %s.\n", filename);
 
@@ -241,7 +150,7 @@ void module_load (const gchar * filename)
     /* v2 plugin loading */
     if (g_module_symbol (module, "get_plugin_info", (void *) & func))
     {
-        PluginHeader * header = func (& api_table);
+        Plugin * header = func (& api_table);
         g_return_if_fail (header != NULL);
         plugin2_process(header, module, filename);
         return;
@@ -251,7 +160,7 @@ void module_load (const gchar * filename)
     g_module_close(module);
 }
 
-static gboolean scan_plugin_func(const gchar * path, const gchar * basename, gpointer data)
+static bool_t scan_plugin_func(const char * path, const char * basename, gpointer data)
 {
     if (!str_has_suffix_nocase(basename, SHARED_SUFFIX))
         return FALSE;
@@ -259,22 +168,22 @@ static gboolean scan_plugin_func(const gchar * path, const gchar * basename, gpo
     if (!g_file_test(path, G_FILE_TEST_IS_REGULAR))
         return FALSE;
 
-    module_register (path);
+    plugin_register (path);
 
     return FALSE;
 }
 
-static void scan_plugins(const gchar * path)
+static void scan_plugins(const char * path)
 {
-    dir_foreach(path, scan_plugin_func, NULL, NULL);
+    dir_foreach (path, scan_plugin_func, NULL);
 }
 
 void plugin_system_init(void)
 {
     assert (g_module_supported ());
 
-    gchar *dir;
-    gint dirsel = 0;
+    char *dir;
+    int dirsel = 0;
 
     audgui_init (& api_table);
 
@@ -317,4 +226,6 @@ void plugin_system_cleanup(void)
 
     g_list_free (loaded_modules);
     loaded_modules = NULL;
+
+    audgui_cleanup ();
 }
diff --git a/src/audacious/plugins-api.h b/src/audacious/plugins-api.h
index 6d0d875..b39566e 100644
--- a/src/audacious/plugins-api.h
+++ b/src/audacious/plugins-api.h
@@ -24,35 +24,34 @@
 /* CAUTION: These functions are not thread safe. */
 
 /* plugin-init.c */
-AUD_FUNC1 (PluginHandle *, plugin_get_current, gint, type)
-AUD_FUNC2 (gboolean, plugin_enable, PluginHandle *, plugin, gboolean, enable)
+AUD_FUNC1 (PluginHandle *, plugin_get_current, int, type)
+AUD_FUNC2 (bool_t, plugin_enable, PluginHandle *, plugin, bool_t, enable)
+AUD_FUNC1 (PluginHandle *, plugin_by_widget, void /* GtkWidget */ *, widget)
+AUD_FUNC4 (int, plugin_send_message, PluginHandle *, plugin,
+ const char *, code, const void *, data, int, size)
 
 /* plugin-registry.c */
-AUD_FUNC1 (gint, plugin_get_type, PluginHandle *, plugin)
-AUD_FUNC1 (const gchar *, plugin_get_filename, PluginHandle *, plugin)
-AUD_FUNC1 (gint, plugin_get_number, PluginHandle *, plugin)
-AUD_FUNC3 (PluginHandle *, plugin_lookup, gint, type, const gchar *, filename,
- gint, number)
+AUD_FUNC1 (int, plugin_get_type, PluginHandle *, plugin)
+AUD_FUNC1 (const char *, plugin_get_filename, PluginHandle *, plugin)
+AUD_FUNC1 (PluginHandle *, plugin_lookup, const char *, filename)
+AUD_FUNC1 (PluginHandle *, plugin_lookup_basename, const char *, basename)
 
 AUD_FUNC1 (const void *, plugin_get_header, PluginHandle *, plugin)
 AUD_FUNC1 (PluginHandle *, plugin_by_header, const void *, header)
 
-AUD_FUNC2 (gint, plugin_compare, PluginHandle *, a, PluginHandle *, b)
-AUD_FUNC3 (void, plugin_for_each, gint, type, PluginForEachFunc, func, void *,
+AUD_FUNC2 (int, plugin_compare, PluginHandle *, a, PluginHandle *, b)
+AUD_VFUNC3 (plugin_for_each, int, type, PluginForEachFunc, func, void *,
  data)
 
-AUD_FUNC1 (gboolean, plugin_get_enabled, PluginHandle *, plugin)
-AUD_FUNC3 (void, plugin_for_enabled, gint, type, PluginForEachFunc, func,
+AUD_FUNC1 (bool_t, plugin_get_enabled, PluginHandle *, plugin)
+AUD_VFUNC3 (plugin_for_enabled, int, type, PluginForEachFunc, func,
  void *, data)
 
-AUD_FUNC1 (const gchar *, plugin_get_name, PluginHandle *, plugin)
-AUD_FUNC1 (gboolean, plugin_has_about, PluginHandle *, plugin)
-AUD_FUNC1 (gboolean, plugin_has_configure, PluginHandle *, plugin)
+AUD_FUNC1 (const char *, plugin_get_name, PluginHandle *, plugin)
+AUD_FUNC1 (bool_t, plugin_has_about, PluginHandle *, plugin)
+AUD_FUNC1 (bool_t, plugin_has_configure, PluginHandle *, plugin)
 
-AUD_FUNC3 (void, plugin_add_watch, PluginHandle *, plugin, PluginForEachFunc,
+AUD_VFUNC3 (plugin_add_watch, PluginHandle *, plugin, PluginForEachFunc,
  func, void *, data)
-AUD_FUNC3 (void, plugin_remove_watch, PluginHandle *, plugin, PluginForEachFunc,
+AUD_VFUNC3 (plugin_remove_watch, PluginHandle *, plugin, PluginForEachFunc,
  func, void *, data)
-
-/* New in 2.5-alpha2 */
-AUD_FUNC1 (PluginHandle *, plugin_by_widget, /* GtkWidget * */ void *, widget)
diff --git a/src/audacious/plugins.h b/src/audacious/plugins.h
index 01dc6b5..af821dc 100644
--- a/src/audacious/plugins.h
+++ b/src/audacious/plugins.h
@@ -22,24 +22,11 @@
 #ifndef AUDACIOUS_PLUGINS_H
 #define AUDACIOUS_PLUGINS_H
 
-#include <glib.h>
-
 #include <audacious/api.h>
 #include <audacious/types.h>
+#include <libaudcore/core.h>
 
-enum {
- PLUGIN_TYPE_LOWLEVEL,
- PLUGIN_TYPE_TRANSPORT,
- PLUGIN_TYPE_PLAYLIST,
- PLUGIN_TYPE_INPUT,
- PLUGIN_TYPE_EFFECT,
- PLUGIN_TYPE_OUTPUT,
- PLUGIN_TYPE_VIS,
- PLUGIN_TYPE_GENERAL,
- PLUGIN_TYPE_IFACE,
- PLUGIN_TYPES};
-
-typedef gboolean (* PluginForEachFunc) (PluginHandle * plugin, void * data);
+typedef bool_t (* PluginForEachFunc) (PluginHandle * plugin, void * data);
 
 #define AUD_API_NAME PluginsAPI
 #define AUD_API_SYMBOL plugins_api
@@ -67,25 +54,24 @@ void plugin_registry_load (void);
 void plugin_registry_prune (void);
 void plugin_registry_save (void);
 
-void module_register (const gchar * path);
-void plugin_register (gint type, const gchar * path, gint number, const void *
- header);
+void plugin_register (const char * path);
+void plugin_register_loaded (const char * path, Plugin * header);
 
-void plugin_set_enabled (PluginHandle * plugin, gboolean enabled);
+void plugin_set_enabled (PluginHandle * plugin, bool_t enabled);
 
-PluginHandle * transport_plugin_for_scheme (const gchar * scheme);
-PluginHandle * playlist_plugin_for_extension (const gchar * extension);
-void input_plugin_for_key (gint key, const gchar * value, PluginForEachFunc
+PluginHandle * transport_plugin_for_scheme (const char * scheme);
+PluginHandle * playlist_plugin_for_extension (const char * extension);
+void input_plugin_for_key (int key, const char * value, PluginForEachFunc
  func, void * data);
-gboolean input_plugin_has_images (PluginHandle * plugin);
-gboolean input_plugin_has_subtunes (PluginHandle * plugin);
-gboolean input_plugin_can_write_tuple (PluginHandle * plugin);
-gboolean input_plugin_has_infowin (PluginHandle * plugin);
+bool_t input_plugin_has_images (PluginHandle * plugin);
+bool_t input_plugin_has_subtunes (PluginHandle * plugin);
+bool_t input_plugin_can_write_tuple (PluginHandle * plugin);
+bool_t input_plugin_has_infowin (PluginHandle * plugin);
 
 /* pluginenum.c */
 void plugin_system_init (void);
 void plugin_system_cleanup (void);
-void module_load (const gchar * path);
+void plugin_load (const char * path);
 
 #else
 
diff --git a/src/audacious/preferences.h b/src/audacious/preferences.h
index f82bbf0..eb44893 100644
--- a/src/audacious/preferences.h
+++ b/src/audacious/preferences.h
@@ -20,9 +20,6 @@
 #ifndef AUDACIOUS_PREFERENCES_H
 #define AUDACIOUS_PREFERENCES_H
 
-#include <glib.h>
-#include <audacious/types.h>
-
 typedef enum {
     WIDGET_NONE,
     WIDGET_CHK_BTN,
@@ -44,14 +41,12 @@ typedef enum {
     VALUE_FLOAT,
     VALUE_BOOLEAN,
     VALUE_STRING,
-    VALUE_CFG_BOOLEAN,   /* cfg holds config database key for bool option */
-    VALUE_CFG_STRING,    /* cfg holds config database key for gchar* option */
     VALUE_NULL,
 } ValueType;
 
 typedef struct {
     gpointer value;
-    const gchar *label;
+    const char *label;
 } ComboBoxElements;
 
 struct _NotebookTab;
@@ -62,21 +57,25 @@ struct _PreferencesWidget {
     gpointer cfg;            /* connected config value */
     void (*callback) (void); /* this func will be called after value change, can be NULL */
     char *tooltip;           /* widget tooltip, can be NULL */
-    gboolean child;
+    bool_t child;
+    ValueType cfg_type;      /* connected value type */
+    const char * csect;     /* config file section */
+    const char * cname;     /* config file key name */
+
     union {
         struct {
-            gdouble min, max, step;
+            double min, max, step;
             char *right_label;      /* text right to widget */
         } spin_btn;
 
         struct {
             struct _PreferencesWidget *elem;
-            gint rows;
+            int rows;
         } table;
 
         struct {
             char *stock_id;
-            gboolean single_line; /* FALSE to enable line wrap */
+            bool_t single_line; /* FALSE to enable line wrap */
         } label;
 
         struct {
@@ -84,43 +83,42 @@ struct _PreferencesWidget {
         } font_btn;
 
         struct {
-            gboolean password;
+            bool_t password;
         } entry;
 
         struct {
             ComboBoxElements *elements;
-            gint n_elements;
-            gboolean enabled;
+            int n_elements;
+            bool_t enabled;
         } combo;
 
         struct {
             struct _PreferencesWidget *elem;
-            gint n_elem;
+            int n_elem;
 
-            gboolean horizontal;  /* FALSE gives vertical, TRUE gives horizontal aligment of child widgets */
-            gboolean frame;       /* whether to draw frame around box */
+            bool_t horizontal;  /* FALSE gives vertical, TRUE gives horizontal aligment of child widgets */
+            bool_t frame;       /* whether to draw frame around box */
         } box;
 
         struct {
             struct _NotebookTab *tabs;
-            gint n_tabs;
+            int n_tabs;
         } notebook;
 
         struct {
-            gboolean horizontal; /* FALSE gives vertical, TRUE gives horizontal separator */
+            bool_t horizontal; /* FALSE gives vertical, TRUE gives horizontal separator */
         } separator;
 
         /* for WIDGET_CUSTOM --nenolod */
         /* GtkWidget * (* populate) (void); */
         void * (* populate) (void);
     } data;
-    ValueType cfg_type;      /* connected value type */
 };
 
 typedef struct _NotebookTab {
-    gchar *name;
+    char *name;
     PreferencesWidget *settings;
-    gint n_settings;
+    int n_settings;
 } NotebookTab;
 
 typedef enum {
@@ -128,11 +126,12 @@ typedef enum {
 } PreferencesType;
 
 struct _PluginPreferences {
-    gchar *title;
-    gchar *imgurl;        /* Optional */
+    const char * domain;
+    const char * title;
+    const char * imgurl;
 
     PreferencesWidget *prefs;
-    gint n_prefs;
+    int n_prefs;
 
     PreferencesType type;
 
diff --git a/src/audacious/probe-buffer.c b/src/audacious/probe-buffer.c
index e9621e1..3c0fe43 100644
--- a/src/audacious/probe-buffer.c
+++ b/src/audacious/probe-buffer.c
@@ -1,6 +1,6 @@
 /*
  * probe-buffer.c
- * Copyright 2010 John Lindgren
+ * Copyright 2010-2011 John Lindgren
  *
  * This file is part of Audacious.
  *
@@ -19,91 +19,74 @@
  * using our public API to be a derived work.
  */
 
-#include <stdio.h>
+#include <glib.h>
 #include <stdlib.h>
 #include <string.h>
 
+#include "debug.h"
 #include "probe-buffer.h"
 
 typedef struct
 {
-    const gchar * filename, * decoder;
     VFSFile * file;
-    guchar buffer[16384];
-    gint filled, at;
-    const gchar * read_warned, * seek_warned;
+    unsigned char buffer[16384];
+    int filled, at;
 }
 ProbeBuffer;
 
-static gint probe_buffer_fclose (VFSFile * file)
+static int probe_buffer_fclose (VFSFile * file)
 {
-    gint ret = vfs_fclose (((ProbeBuffer *) file->handle)->file);
-    g_free (file->handle);
+    ProbeBuffer * p = vfs_get_handle (file);
+
+    int ret = vfs_fclose (p->file);
+    g_slice_free (ProbeBuffer, p);
     return ret;
 }
 
-static void increase_buffer (ProbeBuffer * p, gint64 size)
+static void increase_buffer (ProbeBuffer * p, int64_t size)
 {
     size = (size + 0xFF) & ~0xFF;
 
     if (size > sizeof p->buffer)
-    {
-        if (p->read_warned != p->decoder)
-        {
-            fprintf (stderr, "%s tried to read past end of buffer while "
-             "probing %s.\n", p->decoder, p->filename);
-            p->read_warned = p->decoder;
-        }
-
         size = sizeof p->buffer;
-    }
 
     if (p->filled < size)
         p->filled += vfs_fread (p->buffer + p->filled, 1, size - p->filled,
          p->file);
 }
 
-static gint64 probe_buffer_fread (void * buffer, gint64 size, gint64 count,
+static int64_t probe_buffer_fread (void * buffer, int64_t size, int64_t count,
  VFSFile * file)
 {
-    ProbeBuffer * p = file->handle;
+    ProbeBuffer * p = vfs_get_handle (file);
 
     increase_buffer (p, p->at + size * count);
-    gint readed = (size > 0) ? MIN (count, (p->filled - p->at) / size) : 0;
+    int readed = (size > 0) ? MIN (count, (p->filled - p->at) / size) : 0;
     memcpy (buffer, p->buffer + p->at, size * readed);
 
     p->at += size * readed;
     return readed;
 }
 
-static gint64 probe_buffer_fwrite (const void * data, gint64 size, gint64 count,
+static int64_t probe_buffer_fwrite (const void * data, int64_t size, int64_t count,
  VFSFile * file)
 {
     /* not implemented */
     return 0;
 }
 
-static gint probe_buffer_getc (VFSFile * file)
+static int probe_buffer_getc (VFSFile * file)
 {
-    guchar c;
+    unsigned char c;
     return (probe_buffer_fread (& c, 1, 1, file) == 1) ? c : EOF;
 }
 
-static gint probe_buffer_fseek (VFSFile * file, gint64 offset, gint whence)
+static int probe_buffer_fseek (VFSFile * file, int64_t offset, int whence)
 {
-    ProbeBuffer * p = file->handle;
+    ProbeBuffer * p = vfs_get_handle (file);
 
     if (whence == SEEK_END)
-    {
-        if (p->seek_warned != p->decoder)
-        {
-            fprintf (stderr, "%s tried to seek to end of file while probing "
-             "%s.\n", p->decoder, p->filename);
-            p->seek_warned = p->decoder;
-        }
-
         return -1;
-    }
 
     if (whence == SEEK_CUR)
         offset += p->at;
@@ -118,7 +101,7 @@ static gint probe_buffer_fseek (VFSFile * file, gint64 offset, gint whence)
     return 0;
 }
 
-static gint probe_buffer_ungetc (gint c, VFSFile * file)
+static int probe_buffer_ungetc (int c, VFSFile * file)
 {
     return (! probe_buffer_fseek (file, -1, SEEK_CUR)) ? c : EOF;
 }
@@ -128,31 +111,31 @@ static void probe_buffer_rewind (VFSFile * file)
     probe_buffer_fseek (file, 0, SEEK_SET);
 }
 
-static gint64 probe_buffer_ftell (VFSFile * file)
+static int64_t probe_buffer_ftell (VFSFile * file)
 {
-    return ((ProbeBuffer *) file->handle)->at;
+    return ((ProbeBuffer *) vfs_get_handle (file))->at;
 }
 
-static gboolean probe_buffer_feof (VFSFile * file)
+static bool_t probe_buffer_feof (VFSFile * file)
 {
-    ProbeBuffer * p = file->handle;
+    ProbeBuffer * p = vfs_get_handle (file);
     return (p->at < p->filled) ? FALSE : vfs_feof (p->file);
 }
 
-static gint probe_buffer_ftruncate (VFSFile * file, gint64 size)
+static int probe_buffer_ftruncate (VFSFile * file, int64_t size)
 {
     /* not implemented */
     return -1;
 }
 
-static gint64 probe_buffer_fsize (VFSFile * file)
+static int64_t probe_buffer_fsize (VFSFile * file)
 {
-    return vfs_fsize (((ProbeBuffer *) file->handle)->file);
+    return vfs_fsize (((ProbeBuffer *) vfs_get_handle (file))->file);
 }
 
-static gchar * probe_buffer_get_metadata (VFSFile * file, const gchar * field)
+static char * probe_buffer_get_metadata (VFSFile * file, const char * field)
 {
-    return vfs_get_metadata (((ProbeBuffer *) file->handle)->file, field);
+    return vfs_get_metadata (((ProbeBuffer *) vfs_get_handle (file))->file, field);
 }
 
 static VFSConstructor probe_buffer_table =
@@ -172,34 +155,17 @@ static VFSConstructor probe_buffer_table =
 	.vfs_get_metadata_impl = probe_buffer_get_metadata,
 };
 
-VFSFile * probe_buffer_new (const gchar * filename)
+VFSFile * probe_buffer_new (const char * filename)
 {
     VFSFile * file = vfs_fopen (filename, "r");
 
     if (! file)
         return NULL;
 
-    ProbeBuffer * p = g_malloc (sizeof (ProbeBuffer));
-    p->decoder = NULL;
-    p->filename = filename;
+    ProbeBuffer * p = g_slice_new (ProbeBuffer);
     p->file = file;
     p->filled = 0;
     p->at = 0;
-    p->read_warned = NULL;
-    p->seek_warned = NULL;
-
-    VFSFile * file2 = g_malloc (sizeof (VFSFile));
-    file2->base = & probe_buffer_table;
-    file2->handle = p;
-    file2->uri = g_strdup (filename);
-    file2->ref = 1;
-    file2->sig = VFS_SIG;
 
-    return file2;
-}
-
-void probe_buffer_set_decoder (VFSFile * file, const gchar * decoder)
-{
-    ProbeBuffer * p = file->handle;
-    p->decoder = decoder;
+    return vfs_new (filename, & probe_buffer_table, p);
 }
diff --git a/src/audacious/probe-buffer.h b/src/audacious/probe-buffer.h
index 2c1b110..9c4405f 100644
--- a/src/audacious/probe-buffer.h
+++ b/src/audacious/probe-buffer.h
@@ -22,10 +22,8 @@
 #ifndef AUDACIOUS_PROBE_BUFFER_H
 #define AUDACIOUS_PROBE_BUFFER_H
 
-#include <glib.h>
 #include <libaudcore/vfs.h>
 
-VFSFile * probe_buffer_new (const gchar * filename);
-void probe_buffer_set_decoder (VFSFile * file, const gchar * decoder);
+VFSFile * probe_buffer_new (const char * filename);
 
 #endif
diff --git a/src/audacious/probe.c b/src/audacious/probe.c
index 9c15789..b24abe4 100644
--- a/src/audacious/probe.c
+++ b/src/audacious/probe.c
@@ -19,6 +19,7 @@
  * using our public API to be a derived work.
  */
 
+#include <glib.h>
 #include <stdio.h>
 #include <string.h>
 
@@ -33,17 +34,19 @@
 
 typedef struct
 {
-    gchar * filename;
+    const char * filename;
     VFSFile * handle;
-    gboolean buffered;
+    bool_t buffered, failed;
     PluginHandle * plugin;
 }
 ProbeState;
 
-static gboolean check_opened (ProbeState * state)
+static bool_t check_opened (ProbeState * state)
 {
     if (state->handle != NULL)
         return TRUE;
+    if (state->failed)
+        return FALSE;
 
     AUDDBG ("Opening %s.\n", state->filename);
     if ((state->buffered = vfs_is_remote (state->filename)))
@@ -55,10 +58,11 @@ static gboolean check_opened (ProbeState * state)
         return TRUE;
 
     AUDDBG ("FAILED.\n");
+    state->failed = TRUE;
     return FALSE;
 }
 
-static gboolean probe_func (PluginHandle * plugin, ProbeState * state)
+static bool_t probe_func (PluginHandle * plugin, ProbeState * state)
 {
     AUDDBG ("Trying %s.\n", plugin_get_name (plugin));
     InputPlugin * decoder = plugin_get_header (plugin);
@@ -70,9 +74,6 @@ static gboolean probe_func (PluginHandle * plugin, ProbeState * state)
         if (! check_opened (state))
             return FALSE;
 
-        if (state->buffered)
-            probe_buffer_set_decoder (state->handle, plugin_get_name (plugin));
-
         if (decoder->is_our_file_from_vfs (state->filename, state->handle))
         {
             state->plugin = plugin;
@@ -98,7 +99,7 @@ static gboolean probe_func (PluginHandle * plugin, ProbeState * state)
  *    similarly that the plugin passed in this call is the last one.
  */
 
-static gboolean probe_func_fast (PluginHandle * plugin, ProbeState * state)
+static bool_t probe_func_fast (PluginHandle * plugin, ProbeState * state)
 {
     if (state->plugin != NULL)
     {
@@ -116,42 +117,38 @@ static gboolean probe_func_fast (PluginHandle * plugin, ProbeState * state)
 
 static void probe_by_scheme (ProbeState * state)
 {
-    gchar * s = strstr (state->filename, "://");
-    gchar c;
+    const char * s = strstr (state->filename, "://");
 
     if (s == NULL)
         return;
 
     AUDDBG ("Probing by scheme.\n");
-    c = s[3];
-    s[3] = 0;
-    input_plugin_for_key (INPUT_KEY_SCHEME, state->filename, (PluginForEachFunc)
-     probe_func_fast, state);
-    s[3] = c;
+    char buf[s - state->filename + 1];
+    memcpy (buf, state->filename, s - state->filename);
+    buf[s - state->filename] = 0;
+
+    input_plugin_for_key (INPUT_KEY_SCHEME, buf, (PluginForEachFunc) probe_func_fast, state);
 }
 
 static void probe_by_extension (ProbeState * state)
 {
-    gchar * s = strrchr (state->filename, '.');
+    const char * ext, * sub;
+    uri_parse (state->filename, NULL, & ext, & sub, NULL);
 
-    if (s == NULL)
+    if (ext == sub)
         return;
 
     AUDDBG ("Probing by extension.\n");
-    s = g_ascii_strdown (s + 1, -1);
-
-    gchar * q = strrchr (s, '?');
-    if (q != NULL)
-        * q = 0;
+    char buf[sub - ext];
+    memcpy (buf, ext + 1, sub - ext - 1);
+    buf[sub - ext - 1] = 0;
 
-    input_plugin_for_key (INPUT_KEY_EXTENSION, s, (PluginForEachFunc)
-     probe_func_fast, state);
-    g_free (s);
+    input_plugin_for_key (INPUT_KEY_EXTENSION, buf, (PluginForEachFunc) probe_func_fast, state);
 }
 
 static void probe_by_mime (ProbeState * state)
 {
-    gchar * mime;
+    char * mime;
 
     if (! check_opened (state))
         return;
@@ -171,14 +168,15 @@ static void probe_by_content (ProbeState * state)
     plugin_for_enabled (PLUGIN_TYPE_INPUT, (PluginForEachFunc) probe_func, state);
 }
 
-PluginHandle * file_find_decoder (const gchar * filename, gboolean fast)
+PluginHandle * file_find_decoder (const char * filename, bool_t fast)
 {
     ProbeState state;
 
     AUDDBG ("Probing %s.\n", filename);
     state.plugin = NULL;
-    state.filename = filename_split_subtune (filename, NULL);
+    state.filename = filename;
     state.handle = NULL;
+    state.failed = FALSE;
 
     probe_by_scheme (& state);
 
@@ -198,24 +196,19 @@ PluginHandle * file_find_decoder (const gchar * filename, gboolean fast)
     probe_by_content (& state);
 
 DONE:
-    g_free (state.filename);
-
     if (state.handle != NULL)
         vfs_fclose (state.handle);
 
     return state.plugin;
 }
 
-Tuple * file_read_tuple (const gchar * filename, PluginHandle * decoder)
+Tuple * file_read_tuple (const char * filename, PluginHandle * decoder)
 {
     InputPlugin * ip = plugin_get_header (decoder);
     g_return_val_if_fail (ip, NULL);
     g_return_val_if_fail (ip->probe_for_tuple, NULL);
 
-    gchar * real = filename_split_subtune (filename, NULL);
-    VFSFile * handle = vfs_fopen (real, "r");
-    g_free (real);
-
+    VFSFile * handle = vfs_fopen (filename, "r");
     Tuple * tuple = ip->probe_for_tuple (filename, handle);
 
     if (handle)
@@ -224,8 +217,8 @@ Tuple * file_read_tuple (const gchar * filename, PluginHandle * decoder)
     return tuple;
 }
 
-gboolean file_read_image (const gchar * filename, PluginHandle * decoder,
- void * * data, gint * size)
+bool_t file_read_image (const char * filename, PluginHandle * decoder,
+ void * * data, int64_t * size)
 {
     if (! input_plugin_has_images (decoder))
         return FALSE;
@@ -234,38 +227,39 @@ gboolean file_read_image (const gchar * filename, PluginHandle * decoder,
     g_return_val_if_fail (ip, FALSE);
     g_return_val_if_fail (ip->get_song_image, FALSE);
 
-    gchar * real = filename_split_subtune (filename, NULL);
-    VFSFile * handle = vfs_fopen (real, "r");
-    g_free (real);
-
-    gboolean success = ip->get_song_image (filename, handle, data, size);
+    VFSFile * handle = vfs_fopen (filename, "r");
+    bool_t success = ip->get_song_image (filename, handle, data, size);
 
     if (handle)
         vfs_fclose (handle);
 
+    if (! success)
+    {
+        * data = NULL;
+        * size = 0;
+    }
+
     return success;
 }
 
-gboolean file_can_write_tuple (const gchar * filename, PluginHandle * decoder)
+bool_t file_can_write_tuple (const char * filename, PluginHandle * decoder)
 {
     return input_plugin_can_write_tuple (decoder);
 }
 
-gboolean file_write_tuple (const gchar * filename, PluginHandle * decoder,
+bool_t file_write_tuple (const char * filename, PluginHandle * decoder,
  const Tuple * tuple)
 {
     InputPlugin * ip = plugin_get_header (decoder);
     g_return_val_if_fail (ip, FALSE);
     g_return_val_if_fail (ip->update_song_tuple, FALSE);
 
-    gchar * real = filename_split_subtune (filename, NULL);
-    VFSFile * handle = vfs_fopen (real, "r+");
-    g_free (real);
+    VFSFile * handle = vfs_fopen (filename, "r+");
 
     if (! handle)
         return FALSE;
 
-    gboolean success = ip->update_song_tuple (tuple, handle);
+    bool_t success = ip->update_song_tuple (tuple, handle);
 
     if (handle)
         vfs_fclose (handle);
@@ -276,7 +270,7 @@ gboolean file_write_tuple (const gchar * filename, PluginHandle * decoder,
     return success;
 }
 
-gboolean custom_infowin (const gchar * filename, PluginHandle * decoder)
+bool_t custom_infowin (const char * filename, PluginHandle * decoder)
 {
     if (! input_plugin_has_infowin (decoder))
         return FALSE;
diff --git a/src/audacious/signals.c b/src/audacious/signals.c
index 99fbbc5..7fda12c 100644
--- a/src/audacious/signals.c
+++ b/src/audacious/signals.c
@@ -21,16 +21,18 @@
 
 #include <signal.h>
 #include <glib.h>
-#include <libaudcore/eventqueue.h>
+
+#include <libaudcore/hook.h>
 
 #include "config.h"
+#include "main.h"
 
 #ifdef HAVE_SIGWAIT
 static sigset_t signal_set;
 
 static void * signal_thread (void * data)
 {
-    gint signal;
+    int signal;
 
     while (! sigwait (& signal_set, & signal))
         event_queue ("quit", NULL);
diff --git a/src/audacious/smclient.c b/src/audacious/smclient.c
index bb5e2ff..846efed 100644
--- a/src/audacious/smclient.c
+++ b/src/audacious/smclient.c
@@ -21,17 +21,16 @@
 #include <gdk/gdk.h>
 #include <libaudcore/hook.h>
 
-#include "audconfig.h"
 #include "config.h"
+#include "main.h"
 
 #ifdef USE_EGGSM
-
 #include "eggsmclient.h"
 
 static void
 signal_session_quit_cb(EggSMClient *client, gpointer user_data)
 {
-    const gchar * argv[2];
+    const char * argv[2];
 
     g_print("Session quit requested. Saving state and shutting down.\n");
 
@@ -45,7 +44,7 @@ signal_session_quit_cb(EggSMClient *client, gpointer user_data)
 static void
 signal_session_save_cb(EggSMClient *client, GKeyFile *state_file, gpointer user_data)
 {
-    const gchar * argv[2];
+    const char * argv[2];
 
     g_print("Session save requested. Saving state.\n");
 
@@ -53,7 +52,7 @@ signal_session_save_cb(EggSMClient *client, GKeyFile *state_file, gpointer user_
     argv[1] = g_strdup_printf ("--display=%s", gdk_display_get_name (gdk_display_get_default()));
     egg_sm_client_set_restart_command (client, 2, argv);
 
-    aud_config_save();
+    do_autosave ();
 }
 #endif
 
diff --git a/src/audacious/types.h b/src/audacious/types.h
index 50faaba..6e789c3 100644
--- a/src/audacious/types.h
+++ b/src/audacious/types.h
@@ -22,34 +22,40 @@
 #ifndef AUDACIOUS_TYPES_H
 #define AUDACIOUS_TYPES_H
 
-#include <glib.h>
-
 #define AUD_EQUALIZER_NBANDS 10
 #define EQUALIZER_MAX_GAIN 12
 
+enum {
+ PLUGIN_TYPE_TRANSPORT,
+ PLUGIN_TYPE_PLAYLIST,
+ PLUGIN_TYPE_INPUT,
+ PLUGIN_TYPE_EFFECT,
+ PLUGIN_TYPE_OUTPUT,
+ PLUGIN_TYPE_VIS,
+ PLUGIN_TYPE_GENERAL,
+ PLUGIN_TYPE_IFACE,
+ PLUGIN_TYPES};
+
 typedef struct PluginHandle PluginHandle;
 
-#ifdef _AUDACIOUS_CORE
 typedef const struct _Plugin Plugin;
-#endif
-
+typedef const struct _TransportPlugin TransportPlugin;
+typedef const struct _PlaylistPlugin PlaylistPlugin;
 typedef const struct _InputPlugin InputPlugin;
-typedef const struct _OutputPlugin OutputPlugin;
 typedef const struct _EffectPlugin EffectPlugin;
-typedef const struct _GeneralPlugin GeneralPlugin;
+typedef const struct _OutputPlugin OutputPlugin;
 typedef const struct _VisPlugin VisPlugin;
-typedef const struct _TransportPlugin TransportPlugin;
-typedef const struct _PlaylistPlugin PlaylistPlugin;
+typedef const struct _GeneralPlugin GeneralPlugin;
+typedef const struct _IfacePlugin IfacePlugin;
 
-typedef struct _Iface Iface;
 typedef struct _PluginPreferences PluginPreferences;
 typedef struct _PreferencesWidget PreferencesWidget;
 
 typedef struct {
-    gfloat track_gain; /* dB */
-    gfloat track_peak; /* 0-1 */
-    gfloat album_gain; /* dB */
-    gfloat album_peak; /* 0-1 */
+    float track_gain; /* dB */
+    float track_peak; /* 0-1 */
+    float album_gain; /* dB */
+    float album_peak; /* 0-1 */
 } ReplayGainInfo;
 
 #endif
diff --git a/src/audacious/ui_albumart.c b/src/audacious/ui_albumart.c
index 6675f8d..45dd5dd 100644
--- a/src/audacious/ui_albumart.c
+++ b/src/audacious/ui_albumart.c
@@ -20,18 +20,16 @@
  */
 
 #include <glib.h>
-#include <gtk/gtk.h>
 #include <string.h>
 
 #include <libaudcore/audstrings.h>
 
-#include "audconfig.h"
 #include "config.h"
 #include "i18n.h"
 #include "misc.h"
 
-static gboolean
-has_front_cover_extension(const gchar *name)
+static bool_t
+has_front_cover_extension(const char *name)
 {
     char *ext;
 
@@ -46,14 +44,14 @@ has_front_cover_extension(const gchar *name)
            g_strcasecmp(ext, ".png") == 0;
 }
 
-static gboolean
-cover_name_filter(const gchar *name, const gchar *filter, const gboolean ret_on_empty)
+static bool_t
+cover_name_filter(const char *name, const char *filter, const bool_t ret_on_empty)
 {
-    gboolean result = FALSE;
-    gchar **splitted;
-    gchar *current;
-    gchar *lname;
-    gint i;
+    bool_t result = FALSE;
+    char **splitted;
+    char *current;
+    char *lname;
+    int i;
 
     if (!filter || strlen(filter) == 0) {
         return ret_on_empty;
@@ -65,7 +63,7 @@ cover_name_filter(const gchar *name, const gchar *filter, const gboolean ret_on_
     g_strdown(lname);
 
     for (i = 0; !result && (current = splitted[i]); i++) {
-        gchar *stripped = g_strstrip(g_strdup(current));
+        char *stripped = g_strstrip(g_strdup(current));
         g_strdown(stripped);
 
         result = result || strstr(lname, stripped);
@@ -80,15 +78,19 @@ cover_name_filter(const gchar *name, const gchar *filter, const gboolean ret_on_
 }
 
 /* Check wether it's an image we want */
-static gboolean
-is_front_cover_image(const gchar *imgfile)
+static bool_t is_front_cover_image (const char * file)
 {
-    return cover_name_filter(imgfile, cfg.cover_name_include, TRUE) &&
-           !cover_name_filter(imgfile, cfg.cover_name_exclude, FALSE);
+    char * include = get_string (NULL, "cover_name_include");
+    char * exclude = get_string (NULL, "cover_name_exclude");
+    bool_t accept = cover_name_filter (file, include, TRUE) &&
+     ! cover_name_filter (file, exclude, FALSE);
+    g_free (include);
+    g_free (exclude);
+    return accept;
 }
 
-static gboolean
-is_file_image(const gchar *imgfile, const gchar *file_name)
+static bool_t
+is_file_image(const char *imgfile, const char *file_name)
 {
     char *imgfile_ext, *file_name_ext;
     size_t imgfile_len, file_name_len;
@@ -115,23 +117,24 @@ is_file_image(const gchar *imgfile, const gchar *file_name)
     }
 }
 
-static gchar * fileinfo_recursive_get_image (const gchar * path, const gchar *
- file_name, gint depth)
+static char * fileinfo_recursive_get_image (const char * path, const char *
+ file_name, int depth)
 {
     GDir *d;
 
-    if (cfg.recurse_for_cover && depth > cfg.recurse_for_cover_depth)
+    if (get_bool (NULL, "recurse_for_cover") && depth > get_int (NULL, "recurse_for_cover_depth"))
         return NULL;
 
     d = g_dir_open(path, 0, NULL);
 
     if (d) {
-        const gchar *f;
+        const char *f;
 
-        if (cfg.use_file_cover && file_name) {
+        if (get_bool (NULL, "use_file_cover") && file_name)
+        {
             /* Look for images matching file name */
             while((f = g_dir_read_name(d))) {
-                gchar *newpath = g_strconcat(path, "/", f, NULL);
+                char *newpath = g_strconcat(path, "/", f, NULL);
 
                 if (!g_file_test(newpath, G_FILE_TEST_IS_DIR) &&
                     has_front_cover_extension(f) &&
@@ -147,7 +150,7 @@ static gchar * fileinfo_recursive_get_image (const gchar * path, const gchar *
 
         /* Search for files using filter */
         while ((f = g_dir_read_name(d))) {
-            gchar *newpath = g_strconcat(path, "/", f, NULL);
+            char *newpath = g_strconcat(path, "/", f, NULL);
 
             if (!g_file_test(newpath, G_FILE_TEST_IS_DIR) &&
                 has_front_cover_extension(f) &&
@@ -161,17 +164,18 @@ static gchar * fileinfo_recursive_get_image (const gchar * path, const gchar *
         g_dir_rewind(d);
 
         /* checks whether recursive or not. */
-        if (!cfg.recurse_for_cover) {
+        if (! get_bool (NULL, "recurse_for_cover"))
+        {
             g_dir_close(d);
             return NULL;
         }
 
         /* Descend into directories recursively. */
         while ((f = g_dir_read_name(d))) {
-            gchar *newpath = g_strconcat(path, "/", f, NULL);
+            char *newpath = g_strconcat(path, "/", f, NULL);
 
             if(g_file_test(newpath, G_FILE_TEST_IS_DIR)) {
-                gchar *tmp = fileinfo_recursive_get_image(newpath,
+                char *tmp = fileinfo_recursive_get_image(newpath,
                     NULL, depth + 1);
                 if(tmp) {
                     g_free(newpath);
@@ -189,18 +193,18 @@ static gchar * fileinfo_recursive_get_image (const gchar * path, const gchar *
     return NULL;
 }
 
-gchar * get_associated_image_file (const gchar * filename)
+char * get_associated_image_file (const char * filename)
 {
     if (strncmp (filename, "file://", 7))
         return NULL;
 
-    gchar * unesc = uri_to_filename (filename);
+    char * unesc = uri_to_filename (filename);
     if (! unesc)
         return NULL;
 
-    gchar * path = g_path_get_dirname (unesc);
-    gchar * base = g_path_get_basename (unesc);
-    gchar * image_file = fileinfo_recursive_get_image (path, base, 0);
+    char * path = g_path_get_dirname (unesc);
+    char * base = g_path_get_basename (unesc);
+    char * image_file = fileinfo_recursive_get_image (path, base, 0);
 
     g_free (unesc);
     g_free (path);
diff --git a/src/audacious/ui_plugin_menu.c b/src/audacious/ui_plugin_menu.c
index bb43ed9..a614735 100644
--- a/src/audacious/ui_plugin_menu.c
+++ b/src/audacious/ui_plugin_menu.c
@@ -1,12 +1,12 @@
 /*
  * ui_plugin_menu.c
- * Copyright 2009-2010 John Lindgren
+ * Copyright 2009-2011 John Lindgren
  *
  * This file is part of Audacious.
  *
  * Audacious is free software: you can redistribute it and/or modify it under
  * the terms of the GNU General Public License as published by the Free Software
- * Foundation, version 3 of the License.
+ * Foundation, version 2 or version 3 of the License.
  *
  * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
  * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
@@ -24,45 +24,80 @@
 
 #include "misc.h"
 
-static void destroy_warning (void)
-{
-    fprintf (stderr, "Interface destroyed a plugin services menu!\n");
-}
+struct Item {
+    MenuFunc func;
+    const char * name;
+    const char * icon;
+};
+
+static GList * items[AUD_MENU_COUNT];
+static GtkWidget * menus[AUD_MENU_COUNT];
 
-/* GtkWidget * get_plugin_menu (gint id) */
-void * get_plugin_menu (gint id)
+static void add_to_menu (GtkWidget * menu, struct Item * item)
 {
-    static gboolean initted = FALSE;
-    static GtkWidget * menus[TOTAL_PLUGIN_MENUS];
+    GtkWidget * widget = gtk_image_menu_item_new_with_mnemonic (item->name);
+    g_object_set_data ((GObject *) widget, "func", (void *) item->func);
+    g_signal_connect (widget, "activate", item->func, NULL);
 
-    if (! initted)
-    {
-        memset (menus, 0, sizeof menus);
-        initted = TRUE;
-    }
+    if (item->icon)
+        gtk_image_menu_item_set_image ((GtkImageMenuItem *) widget,
+         gtk_image_new_from_stock (item->icon, GTK_ICON_SIZE_MENU));
 
-    if (menus[id] == NULL)
+    gtk_widget_show (widget);
+    gtk_menu_shell_append ((GtkMenuShell *) menu, widget);
+}
+
+/* GtkWidget * get_plugin_menu (int id) */
+void * get_plugin_menu (int id)
+{
+    if (! menus[id])
     {
         menus[id] = gtk_menu_new ();
-        g_object_ref ((GObject *) menus[id]);
-        g_signal_connect (menus[id], "destroy", (GCallback) destroy_warning,
-         NULL);
-        gtk_widget_show (menus[id]);
+        g_signal_connect (menus[id], "destroy", (GCallback)
+         gtk_widget_destroyed, & menus[id]);
+
+        for (GList * node = items[id]; node; node = node->next)
+            add_to_menu (menus[id], node->data);
     }
 
     return menus[id];
 }
 
-/* gint menu_plugin_item_add (gint id, GtkWidget * item) */
-gint menu_plugin_item_add (gint id, void * item)
+void plugin_menu_add (int id, MenuFunc func, const char * name,
+ const char * icon)
 {
-    gtk_menu_shell_append ((GtkMenuShell *) get_plugin_menu (id), item);
-    return 0;
+    struct Item * item = g_slice_new (struct Item);
+    item->name = name;
+    item->icon = icon;
+    item->func = func;
+
+    items[id] = g_list_append (items[id], item);
+
+    if (menus[id])
+        add_to_menu (menus[id], item);
+}
+
+static void remove_cb (GtkWidget * widget, MenuFunc func)
+{
+    if ((MenuFunc) g_object_get_data ((GObject *) widget, "func") == func)
+        gtk_widget_destroy (widget);
 }
 
-/* gint menu_plugin_item_remove (gint id, GtkWidget * item) */
-gint menu_plugin_item_remove (gint id, void * item)
+void plugin_menu_remove (int id, MenuFunc func)
 {
-    gtk_container_remove ((GtkContainer *) get_plugin_menu (id), item);
-    return 0;
+    if (menus[id])
+        gtk_container_foreach ((GtkContainer *) menus[id], (GtkCallback)
+         remove_cb, (void *) func);
+
+    GList * next;
+    for (GList * node = items[id]; node; node = next)
+    {
+        next = node->next;
+
+        if (((struct Item *) node->data)->func == func)
+        {
+            g_slice_free (struct Item, node->data);
+            items[id] = g_list_delete_link (items[id], node);
+        }
+    }
 }
diff --git a/src/audacious/ui_preferences.c b/src/audacious/ui_preferences.c
index 7dbc2f9..ec905ed 100644
--- a/src/audacious/ui_preferences.c
+++ b/src/audacious/ui_preferences.c
@@ -1,5 +1,5 @@
 /*  Audacious - Cross-platform multimedia player
- *  Copyright (C) 2005-2010  Audacious development team.
+ *  Copyright (C) 2005-2011  Audacious development team.
  *
  *  This program is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
@@ -25,24 +25,22 @@
 
 #include <libaudcore/hook.h>
 
-#include "audconfig.h"
 #include "config.h"
-#include "configdb.h"
 #include "debug.h"
-#include "glib-compat.h"
 #include "gtk-compat.h"
 #include "i18n.h"
 #include "misc.h"
 #include "output.h"
 #include "playback.h"
 #include "playlist.h"
-#include "playlist-utils.h"
 #include "plugin.h"
 #include "plugins.h"
 #include "preferences.h"
 #include "ui_preferences.h"
 
-#define TITLESTRING_UPDATE_TIMEOUT 3
+#ifdef USE_CHARDET
+#include <libguess.h>
+#endif
 
 static void sw_volume_toggled (void);
 
@@ -54,13 +52,13 @@ enum CategoryViewCols {
 };
 
 typedef struct {
-    const gchar *icon_path;
-    const gchar *name;
+    const char *icon_path;
+    const char *name;
 } Category;
 
 typedef struct {
-    const gchar *name;
-    const gchar *tag;
+    const char *name;
+    const char *tag;
 } TitleFieldTag;
 
 static /* GtkWidget * */ void * prefswin = NULL;
@@ -70,29 +68,27 @@ static GtkWidget *category_notebook = NULL;
 GtkWidget *filepopupbutton = NULL;
 
 /* filepopup settings widgets */
-GtkWidget *filepopup_settings_cover_name_include;
-GtkWidget *filepopup_settings_cover_name_exclude;
-GtkWidget *filepopup_settings_recurse_for_cover;
-GtkWidget *filepopup_settings_recurse_for_cover_depth;
-GtkWidget *filepopup_settings_recurse_for_cover_depth_box;
-GtkWidget *filepopup_settings_use_file_cover;
-GtkWidget *filepopup_settings_showprogressbar;
-GtkWidget *filepopup_settings_delay;
+GtkWidget *filepopup_cover_name_include;
+GtkWidget *filepopup_cover_name_exclude;
+GtkWidget *filepopup_recurse;
+GtkWidget *filepopup_recurse_depth;
+GtkWidget *filepopup_recurse_depth_box;
+GtkWidget *filepopup_use_file_cover;
+GtkWidget *filepopup_showprogressbar;
+GtkWidget *filepopup_delay;
 
 /* prefswin widgets */
 GtkWidget *titlestring_entry;
-GtkWidget *filepopup_for_tuple_settings_button;
-static gint titlestring_timeout_counter = 0;
+GtkWidget *filepopup_settings_button;
 
 static Category categories[] = {
  {"audio.png", N_("Audio")},
- {"replay_gain.png", N_("Replay Gain")},
  {"connectivity.png", N_("Network")},
  {"playlist.png", N_("Playlist")},
  {"plugins.png", N_("Plugins")},
 };
 
-static gint n_categories = G_N_ELEMENTS(categories);
+static int n_categories = G_N_ELEMENTS(categories);
 
 static TitleFieldTag title_field_tags[] = {
     { N_("Artist")     , "${artist}" },
@@ -108,23 +104,23 @@ static TitleFieldTag title_field_tags[] = {
     { N_("Codec")      , "${codec}" },
     { N_("Quality")    , "${quality}" },
 };
-static const guint n_title_field_tags = G_N_ELEMENTS(title_field_tags);
+static const unsigned int n_title_field_tags = G_N_ELEMENTS(title_field_tags);
 
+#ifdef USE_CHARDET
 static ComboBoxElements chardet_detector_presets[] = {
-    { N_("None")     , N_("None") },
-    { N_("Japanese") , N_("Japanese") },
-    { N_("Taiwanese"), N_("Taiwanese") },
-    { N_("Chinese")  , N_("Chinese") },
-    { N_("Korean")   , N_("Korean") },
-    { N_("Russian")  , N_("Russian") },
-    { N_("Greek")    , N_("Greek") },
-    { N_("Hebrew")   , N_("Hebrew") },
-    { N_("Turkish")  , N_("Turkish") },
-    { N_("Arabic")   , N_("Arabic") },
-    { N_("Polish")   , N_("Polish") },
-    { N_("Baltic")   , N_("Baltic") },
-    { N_("Universal"), N_("Universal") }
-};
+ {"", N_("None")},
+ {GUESS_REGION_AR, N_("Arabic")},
+ {GUESS_REGION_BL, N_("Baltic")},
+ {GUESS_REGION_CN, N_("Chinese")},
+ {GUESS_REGION_GR, N_("Greek")},
+ {GUESS_REGION_HW, N_("Hebrew")},
+ {GUESS_REGION_JP, N_("Japanese")},
+ {GUESS_REGION_KR, N_("Korean")},
+ {GUESS_REGION_PL, N_("Polish")},
+ {GUESS_REGION_RU, N_("Russian")},
+ {GUESS_REGION_TW, N_("Taiwanese")},
+ {GUESS_REGION_TR, N_("Turkish")}};
+#endif
 
 static ComboBoxElements bitdepth_elements[] = {
     { GINT_TO_POINTER(16), "16" },
@@ -136,93 +132,108 @@ static ComboBoxElements bitdepth_elements[] = {
 typedef struct {
     void *next;
     GtkWidget *container;
-    const gchar * pg_name;
-    const gchar * img_url;
+    const char * pg_name;
+    const char * img_url;
 } CategoryQueueEntry;
 
 CategoryQueueEntry *category_queue = NULL;
 
-static PreferencesWidget audio_page_widgets[] = {
-    {WIDGET_LABEL, N_("<b>Bit Depth</b>"), NULL, NULL, NULL, FALSE},
-    {WIDGET_COMBO_BOX, N_("Output bit depth:"), &cfg.output_bit_depth, NULL,
-                       N_("All streams will be converted to this bit depth.\n"
-                          "This should be the max supported bit depth of\nthe sound card or output plugin."), FALSE,
-                       {.combo = {bitdepth_elements, G_N_ELEMENTS(bitdepth_elements), TRUE}}, VALUE_INT},
-    {WIDGET_LABEL, N_("<b>Volume Control</b>"), NULL, NULL, NULL, FALSE},
-    {WIDGET_CHK_BTN, N_("Use software volume control"),
-     & cfg.software_volume_control, sw_volume_toggled,
-                     N_("Use software volume control. This may be useful for situations where your audio system does not support controlling the playback volume."), FALSE},
-};
+static void * create_output_plugin_box (void);
 
-static PreferencesWidget rg_params_elements[] =
-{{WIDGET_SPIN_BTN, N_("Amplify all files:"), & cfg.replay_gain_preamp, NULL,
- NULL, FALSE, {.spin_btn = {-15, 15, 0.01, N_("dB")}}, VALUE_FLOAT},
-{WIDGET_SPIN_BTN, N_("Amplify untagged files:"), & cfg.default_gain, NULL,
- NULL, FALSE, {.spin_btn = {-15, 15, 0.01, N_("dB")}}, VALUE_FLOAT}};
-
-static PreferencesWidget replay_gain_page_widgets[] =
- {{WIDGET_LABEL, N_("<b>Replay Gain</b>"), NULL, NULL, NULL, FALSE},
- {WIDGET_CHK_BTN, N_("Enable Replay Gain"), &cfg.enable_replay_gain, NULL,
-  NULL, FALSE},
- {WIDGET_LABEL, N_("<b>Mode</b>"), NULL, NULL, NULL, TRUE},
- {WIDGET_RADIO_BTN, N_("Single track mode"), &cfg.replay_gain_track, NULL,
-  NULL, TRUE},
- {WIDGET_RADIO_BTN, N_("Album mode"), &cfg.replay_gain_album, NULL, NULL,
-  TRUE},
- {WIDGET_LABEL, N_("<b>Adjust Levels</b>"), NULL, NULL, NULL, TRUE},
- {WIDGET_TABLE, NULL, NULL, NULL, NULL, TRUE, {.table = {rg_params_elements,
-  G_N_ELEMENTS (rg_params_elements)}}},
- {WIDGET_LABEL, N_("<b>Clipping Prevention</b>"), NULL, NULL, NULL, TRUE},
- {WIDGET_CHK_BTN, N_("Enable clipping prevention"),
-  & cfg.enable_clipping_prevention, NULL, NULL, TRUE}};
+static PreferencesWidget rg_mode_widgets[] = {
+ {WIDGET_CHK_BTN, N_("Album mode"), .cfg_type = VALUE_BOOLEAN, .cname = "replay_gain_album"}};
+
+static PreferencesWidget audio_page_widgets[] = {
+ {WIDGET_LABEL, N_("<b>Output Settings</b>")},
+ {WIDGET_CUSTOM, .data = {.populate = create_output_plugin_box}},
+ {WIDGET_COMBO_BOX, N_("Bit depth:"),
+  .cfg_type = VALUE_INT, .cname = "output_bit_depth",
+  .data = {.combo = {bitdepth_elements, G_N_ELEMENTS (bitdepth_elements), TRUE}}},
+ {WIDGET_SPIN_BTN, N_("Buffer size:"),
+  .cfg_type = VALUE_INT, .cname = "output_buffer_size",
+  .data = {.spin_btn = {100, 10000, 1000, N_("ms")}}},
+ {WIDGET_CHK_BTN, N_("Use software volume control (not recommended)"),
+  .cfg_type = VALUE_BOOLEAN, .cname = "software_volume_control", .callback = sw_volume_toggled},
+ {WIDGET_LABEL, N_("<b>Replay Gain</b>")},
+ {WIDGET_CHK_BTN, N_("Enable Replay Gain"),
+  .cfg_type = VALUE_BOOLEAN, .cname = "enable_replay_gain"},
+ {WIDGET_BOX, .child = TRUE, .data = {.box = {rg_mode_widgets, G_N_ELEMENTS (rg_mode_widgets), TRUE}}},
+ {WIDGET_CHK_BTN, N_("Prevent clipping (recommended)"), .child = TRUE,
+  .cfg_type = VALUE_BOOLEAN, .cname = "enable_clipping_prevention"},
+ {WIDGET_LABEL, N_("<b>Adjust Levels</b>"), .child = TRUE},
+ {WIDGET_SPIN_BTN, N_("Amplify all files:"), .child = TRUE,
+  .cfg_type = VALUE_FLOAT, .cname = "replay_gain_preamp",
+  .data = {.spin_btn = {-15, 15, 0.1, N_("dB")}}},
+ {WIDGET_SPIN_BTN, N_("Amplify untagged files:"), .child = TRUE,
+  .cfg_type = VALUE_FLOAT, .cname = "default_gain",
+  .data = {.spin_btn = {-15, 15, 0.1, N_("dB")}}}};
 
 static PreferencesWidget proxy_host_port_elements[] = {
-    {WIDGET_ENTRY, N_("Proxy hostname:"), "proxy_host", NULL, NULL, FALSE, {.entry = {FALSE}}, VALUE_CFG_STRING},
-    {WIDGET_ENTRY, N_("Proxy port:"), "proxy_port", NULL, NULL, FALSE, {.entry = {FALSE}}, VALUE_CFG_STRING},
-};
+ {WIDGET_ENTRY, N_("Proxy hostname:"), .cfg_type = VALUE_STRING, .cname = "proxy_host"},
+ {WIDGET_ENTRY, N_("Proxy port:"), .cfg_type = VALUE_STRING, .cname = "proxy_port"}};
 
 static PreferencesWidget proxy_auth_elements[] = {
-    {WIDGET_ENTRY, N_("Proxy username:"), "proxy_user", NULL, NULL, FALSE, {.entry = {FALSE}}, VALUE_CFG_STRING},
-    {WIDGET_ENTRY, N_("Proxy password:"), "proxy_pass", NULL, NULL, FALSE, {.entry = {TRUE}}, VALUE_CFG_STRING},
-};
+ {WIDGET_ENTRY, N_("Proxy username:"), .cfg_type = VALUE_STRING, .cname = "proxy_user"},
+ {WIDGET_ENTRY, N_("Proxy password:"), .cfg_type = VALUE_STRING, .cname = "proxy_pass",
+  .data = {.entry = {.password = TRUE}}}};
 
 static PreferencesWidget connectivity_page_widgets[] = {
     {WIDGET_LABEL, N_("<b>Proxy Configuration</b>"), NULL, NULL, NULL, FALSE},
-    {WIDGET_CHK_BTN, N_("Enable proxy usage"), "use_proxy", NULL, NULL, FALSE,
-     .cfg_type = VALUE_CFG_BOOLEAN},
-    {WIDGET_TABLE, NULL, NULL, NULL, NULL, TRUE, {.table = {proxy_host_port_elements, G_N_ELEMENTS(proxy_host_port_elements)}}},
-    {WIDGET_CHK_BTN, N_("Use authentication with proxy"), "proxy_use_auth",
-     NULL, NULL, FALSE, .cfg_type = VALUE_CFG_BOOLEAN},
-    {WIDGET_TABLE, NULL, NULL, NULL, NULL, TRUE, {.table = {proxy_auth_elements, G_N_ELEMENTS(proxy_auth_elements)}}},
-    {WIDGET_LABEL, N_("<span size=\"small\">Changing these settings will require a restart of Audacious.</span>"), NULL, NULL, NULL, FALSE, {.label = {"gtk-dialog-warning"}}},
+    {WIDGET_CHK_BTN, N_("Enable proxy usage"), .cfg_type = VALUE_BOOLEAN, .cname = "use_proxy"},
+    {WIDGET_TABLE, .child = TRUE, .data = {.table = {proxy_host_port_elements,
+     G_N_ELEMENTS (proxy_host_port_elements)}}},
+    {WIDGET_CHK_BTN, N_("Use authentication with proxy"),
+     .cfg_type = VALUE_BOOLEAN, .cname = "use_proxy_auth"},
+    {WIDGET_TABLE, .child = TRUE, .data = {.table = {proxy_auth_elements,
+     G_N_ELEMENTS (proxy_auth_elements)}}}
 };
 
 static PreferencesWidget chardet_elements[] = {
-    {WIDGET_COMBO_BOX, N_("Auto character encoding detector for:"), &cfg.chardet_detector, NULL, NULL, TRUE,
-        {.combo = {chardet_detector_presets, G_N_ELEMENTS(chardet_detector_presets),
-                   #ifdef USE_CHARDET
-                   TRUE
-                   #else
-                   FALSE
-                   #endif
-                   }}, VALUE_STRING},
-    {WIDGET_ENTRY, N_("Fallback character encodings:"), &cfg.chardet_fallback, aud_config_chardet_update, N_("List of character encodings used for fall back conversion of metadata. If automatic character encoding detector failed or has been disabled, encodings in this list would be treated as candidates of the encoding of metadata, and fall back conversion from these encodings to UTF-8 would be attempted."), TRUE, {.entry = {FALSE}}, VALUE_STRING},
-};
+#ifdef USE_CHARDET
+ {WIDGET_COMBO_BOX, N_("Auto character encoding detector for:"),
+  .cfg_type = VALUE_STRING, .cname = "chardet_detector", .child = TRUE,
+  .data = {.combo = {chardet_detector_presets,
+  G_N_ELEMENTS (chardet_detector_presets), TRUE}}},
+#endif
+ {WIDGET_ENTRY, N_("Fallback character encodings:"), .cfg_type = VALUE_STRING,
+  .cname = "chardet_fallback", .child = TRUE}};
 
 static PreferencesWidget playlist_page_widgets[] = {
     {WIDGET_LABEL, N_("<b>Behavior</b>"), NULL, NULL, NULL, FALSE},
     {WIDGET_CHK_BTN, N_("Continue playback on startup"),
-     & cfg.resume_playback_on_startup, NULL, NULL, FALSE},
+     .cfg_type = VALUE_BOOLEAN, .cname = "resume_playback_on_startup"},
     {WIDGET_CHK_BTN, N_("Advance when the current song is deleted"),
-     & cfg.advance_on_delete, NULL, NULL, FALSE},
+     .cfg_type = VALUE_BOOLEAN, .cname = "advance_on_delete"},
     {WIDGET_CHK_BTN, N_("Clear the playlist when opening files"),
-     & cfg.clear_playlist, NULL, NULL, FALSE},
+     .cfg_type = VALUE_BOOLEAN, .cname = "clear_playlist"},
     {WIDGET_CHK_BTN, N_("Open files in a temporary playlist"),
-     & cfg.open_to_temporary, NULL, NULL, FALSE},
+     .cfg_type = VALUE_BOOLEAN, .cname = "open_to_temporary"},
     {WIDGET_LABEL, N_("<b>Metadata</b>"), NULL, NULL, NULL, FALSE},
-    {WIDGET_TABLE, NULL, NULL, NULL, NULL, TRUE, {.table = {chardet_elements, G_N_ELEMENTS(chardet_elements)}}},
+    {WIDGET_CHK_BTN, N_("Do not load metadata for songs until played"),
+     .cfg_type = VALUE_BOOLEAN, .cname = "metadata_on_play",
+     .callback = playlist_trigger_scan},
+    {WIDGET_TABLE, .data = {.table = {chardet_elements,
+     G_N_ELEMENTS (chardet_elements)}}}
 };
 
+#define TITLESTRING_NPRESETS 6
+
+static const char * const titlestring_presets[TITLESTRING_NPRESETS] = {
+ "${title}",
+ "${?artist:${artist} - }${title}",
+ "${?artist:${artist} - }${?album:${album} - }${title}",
+ "${?artist:${artist} - }${?album:${album} - }${?track-number:${track-number}. }${title}",
+ "${?artist:${artist} }${?album:[ ${album} ] }${?artist:- }${?track-number:${track-number}. }${title}",
+ "${?album:${album} - }${title}"};
+
+static const char * const titlestring_preset_names[TITLESTRING_NPRESETS] = {
+ N_("TITLE"),
+ N_("ARTIST - TITLE"),
+ N_("ARTIST - ALBUM - TITLE"),
+ N_("ARTIST - ALBUM - TRACK. TITLE"),
+ N_("ARTIST [ ALBUM ] - TRACK. TITLE"),
+ N_("ALBUM - TITLE")};
+
 static void prefswin_page_queue_destroy(CategoryQueueEntry *ent);
 
 static void
@@ -231,7 +242,7 @@ change_category(GtkNotebook * notebook,
 {
     GtkTreeModel *model;
     GtkTreeIter iter;
-    gint index;
+    int index;
 
     if (!gtk_tree_selection_get_selected(selection, &model, &iter))
         return;
@@ -242,8 +253,8 @@ change_category(GtkNotebook * notebook,
 
 static void
 editable_insert_text(GtkEditable * editable,
-                     const gchar * text,
-                     gint * pos)
+                     const char * text,
+                     int * pos)
 {
     gtk_editable_insert_text(editable, text, strlen(text), pos);
 }
@@ -252,9 +263,9 @@ static void
 titlestring_tag_menu_callback(GtkMenuItem * menuitem,
                               gpointer data)
 {
-    const gchar *separator = " - ";
-    gint item = GPOINTER_TO_INT(data);
-    gint pos;
+    const char *separator = " - ";
+    int item = GPOINTER_TO_INT(data);
+    int pos;
 
     pos = gtk_editable_get_position(GTK_EDITABLE(titlestring_entry));
 
@@ -276,77 +287,140 @@ on_titlestring_help_button_clicked(GtkButton * button,
     gtk_menu_popup (menu, NULL, NULL, NULL, NULL, 0, GDK_CURRENT_TIME);
 }
 
+static void update_titlestring_cbox (GtkComboBox * cbox, const char * format)
+{
+    int preset;
+    for (preset = 0; preset < TITLESTRING_NPRESETS; preset ++)
+    {
+        if (! strcmp (titlestring_presets[preset], format))
+            break;
+    }
 
-static void
-on_titlestring_entry_realize(GtkWidget * entry,
-                             gpointer data)
+    if (gtk_combo_box_get_active (cbox) != preset)
+        gtk_combo_box_set_active (cbox, preset);
+}
+
+static void on_titlestring_entry_changed (GtkEntry * entry, GtkComboBox * cbox)
 {
-    gtk_entry_set_text(GTK_ENTRY(entry), cfg.gentitle_format);
+    const char * format = gtk_entry_get_text (entry);
+    set_string (NULL, "generic_title_format", format);
+    update_titlestring_cbox (cbox, format);
+    playlist_reformat_titles ();
+}
+
+static void on_titlestring_cbox_changed (GtkComboBox * cbox, GtkEntry * entry)
+{
+    int preset = gtk_combo_box_get_active (cbox);
+    if (preset < TITLESTRING_NPRESETS)
+        gtk_entry_set_text (entry, titlestring_presets[preset]);
+}
+
+static void widget_set_bool (PreferencesWidget * widget, bool_t value)
+{
+    g_return_if_fail (widget->cfg_type == VALUE_BOOLEAN);
+
+    if (widget->cfg)
+        * (bool_t *) widget->cfg = value;
+    else if (widget->cname)
+        set_bool (widget->csect, widget->cname, value);
+
+    if (widget->callback)
+        widget->callback ();
 }
 
-static gboolean
-titlestring_timeout_proc (gpointer data)
+static bool_t widget_get_bool (PreferencesWidget * widget)
 {
-    titlestring_timeout_counter--;
+    g_return_val_if_fail (widget->cfg_type == VALUE_BOOLEAN, FALSE);
 
-    if(titlestring_timeout_counter <= 0) {
-        titlestring_timeout_counter = 0;
-        playlist_reformat_titles ();
+    if (widget->cfg)
+        return * (bool_t *) widget->cfg;
+    else if (widget->cname)
+        return get_bool (widget->csect, widget->cname);
+    else
         return FALSE;
-    } else {
-        return TRUE;
-    }
 }
 
-static void
-on_titlestring_entry_changed(GtkWidget * entry,
-                             gpointer data)
+static void widget_set_int (PreferencesWidget * widget, int value)
 {
-    g_free(cfg.gentitle_format);
-    cfg.gentitle_format = g_strdup(gtk_entry_get_text(GTK_ENTRY(entry)));
+    g_return_if_fail (widget->cfg_type == VALUE_INT);
 
-    if(titlestring_timeout_counter == 0) {
-        g_timeout_add_seconds (1, (GSourceFunc) titlestring_timeout_proc, NULL);
-    }
+    if (widget->cfg)
+        * (int *) widget->cfg = value;
+    else if (widget->cname)
+        set_int (widget->csect, widget->cname, value);
 
-    titlestring_timeout_counter = TITLESTRING_UPDATE_TIMEOUT;
+    if (widget->callback)
+        widget->callback ();
 }
 
-static void
-on_titlestring_cbox_realize(GtkWidget * cbox,
-                            gpointer data)
+static int widget_get_int (PreferencesWidget * widget)
 {
-    gtk_combo_box_set_active(GTK_COMBO_BOX(cbox), cfg.titlestring_preset);
-    gtk_widget_set_sensitive(GTK_WIDGET(data),
-                             (cfg.titlestring_preset == (gint)n_titlestring_presets));
+    g_return_val_if_fail (widget->cfg_type == VALUE_INT, 0);
+
+    if (widget->cfg)
+        return * (int *) widget->cfg;
+    else if (widget->cname)
+        return get_int (widget->csect, widget->cname);
+    else
+        return 0;
 }
 
-static void
-on_titlestring_cbox_changed(GtkWidget * cbox,
-                            gpointer data)
+static void widget_set_double (PreferencesWidget * widget, double value)
 {
-    gint position = gtk_combo_box_get_active(GTK_COMBO_BOX(cbox));
+    g_return_if_fail (widget->cfg_type == VALUE_FLOAT);
 
-    cfg.titlestring_preset = position;
-    gtk_widget_set_sensitive(GTK_WIDGET(data), (position == 6));
+    if (widget->cfg)
+        * (float *) widget->cfg = value;
+    else if (widget->cname)
+        set_double (widget->csect, widget->cname, value);
 
-    playlist_reformat_titles ();
+    if (widget->callback)
+        widget->callback ();
 }
 
-static void
-on_font_btn_realize(GtkFontButton * button, gchar **cfg)
+static double widget_get_double (PreferencesWidget * widget)
 {
-    gtk_font_button_set_font_name(button, *cfg);
+    g_return_val_if_fail (widget->cfg_type == VALUE_FLOAT, 0);
+
+    if (widget->cfg)
+        return * (float *) widget->cfg;
+    else if (widget->cname)
+        return get_double (widget->csect, widget->cname);
+    else
+        return 0;
 }
 
-static void
-on_font_btn_font_set(GtkFontButton * button, gchar **config)
+static void widget_set_string (PreferencesWidget * widget, const char * value)
 {
-    g_free(*config);
-    *config = g_strdup(gtk_font_button_get_font_name(button));
-    AUDDBG("Returned font name: \"%s\"\n", *config);
-    void (*callback) (void) = g_object_get_data(G_OBJECT(button), "callback");
-    if (callback != NULL) callback();
+    g_return_if_fail (widget->cfg_type == VALUE_STRING);
+
+    if (widget->cfg)
+    {
+        g_free (* (char * *) widget->cfg);
+        * (char * *) widget->cfg = g_strdup (value);
+    }
+    else if (widget->cname)
+        set_string (widget->csect, widget->cname, value);
+
+    if (widget->callback)
+        widget->callback ();
+}
+
+static char * widget_get_string (PreferencesWidget * widget)
+{
+    g_return_val_if_fail (widget->cfg_type == VALUE_STRING, NULL);
+
+    if (widget->cfg)
+        return g_strdup (* (char * *) widget->cfg);
+    else if (widget->cname)
+        return get_string (widget->csect, widget->cname);
+    else
+        return NULL;
+}
+
+static void on_font_btn_font_set (GtkFontButton * button, PreferencesWidget * widget)
+{
+    widget_set_string (widget, gtk_font_button_get_font_name (button));
 }
 
 static void
@@ -397,16 +471,28 @@ void plugin_preferences_show (PluginPreferences * settings)
     if (settings->init)
         settings->init();
 
+    const char * d = settings->domain;
+    if (! d)
+    {
+        printf ("WARNING: PluginPreferences window with title \"%s\" did not "
+         "declare its gettext domain.  Text may not be translated correctly.\n",
+         settings->title);
+        d = "audacious-plugins";
+    }
+
     window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
     gtk_window_set_type_hint(GTK_WINDOW(window), GDK_WINDOW_TYPE_HINT_DIALOG);
-    gtk_window_set_title(GTK_WINDOW(window), _(settings->title));
-    gtk_container_set_border_width(GTK_CONTAINER(window), 10);
 
+    if (settings->title)
+        gtk_window_set_title ((GtkWindow *) window, dgettext (d, settings->title));
+
+    gtk_container_set_border_width(GTK_CONTAINER(window), 10);
     g_signal_connect(G_OBJECT(window), "destroy",
                      G_CALLBACK(plugin_preferences_destroy), settings);
 
     vbox = gtk_vbox_new(FALSE, 10);
-    create_widgets(GTK_BOX(vbox), settings->prefs, settings->n_prefs);
+    create_widgets_with_domain ((GtkBox *) vbox, settings->prefs,
+     settings->n_prefs, d);
     gtk_container_add(GTK_CONTAINER(window), vbox);
 
     bbox = gtk_hbutton_box_new();
@@ -445,48 +531,17 @@ void plugin_preferences_cleanup (PluginPreferences * p)
     }
 }
 
-static void
-on_output_plugin_bufsize_realize(GtkSpinButton *button,
-                                 gpointer data)
-{
-    gtk_spin_button_set_value(button, cfg.output_buffer_size);
-}
-
-static void
-on_output_plugin_bufsize_value_changed(GtkSpinButton *button,
-                                       gpointer data)
+static void on_spin_btn_changed_int (GtkSpinButton * button, PreferencesWidget * widget)
 {
-    cfg.output_buffer_size = gtk_spin_button_get_value_as_int(button);
+    widget_set_int (widget, gtk_spin_button_get_value_as_int (button));
 }
 
-static void
-on_spin_btn_realize_gint(GtkSpinButton *button, gint *cfg)
+static void on_spin_btn_changed_float (GtkSpinButton * button, PreferencesWidget * widget)
 {
-    gtk_spin_button_set_value(button, *cfg);
+    widget_set_double (widget, gtk_spin_button_get_value (button));
 }
 
-static void
-on_spin_btn_changed_gint(GtkSpinButton *button, gint *cfg)
-{
-    *cfg = gtk_spin_button_get_value_as_int(button);
-}
-
-static void
-on_spin_btn_realize_gfloat(GtkSpinButton *button, gfloat *cfg)
-{
-     gtk_spin_button_set_value(button, (gdouble) *cfg);
-}
-
-static void
-on_spin_btn_changed_gfloat(GtkSpinButton *button, gfloat *cfg)
-{
-    *cfg = (gfloat) gtk_spin_button_get_value(button);
-}
-
-
-static void
-on_category_treeview_realize(GtkTreeView * treeview,
-                             GtkNotebook * notebook)
+static void fill_category_list (GtkTreeView * treeview, GtkNotebook * notebook)
 {
     GtkListStore *store;
     GtkCellRenderer *renderer;
@@ -495,7 +550,7 @@ on_category_treeview_realize(GtkTreeView * treeview,
     GtkTreeIter iter;
     GdkPixbuf *img;
     CategoryQueueEntry *qlist;
-    gint i;
+    int i;
 
     column = gtk_tree_view_column_new();
     gtk_tree_view_column_set_title(column, _("Category"));
@@ -510,9 +565,7 @@ on_category_treeview_realize(GtkTreeView * treeview,
     gtk_tree_view_column_pack_start(column, renderer, FALSE);
     gtk_tree_view_column_set_attributes(column, renderer, "text", 1, NULL);
 
-    gint width, height;
-    gtk_widget_get_size_request(GTK_WIDGET(treeview), &width, &height);
-    g_object_set(G_OBJECT(renderer), "wrap-width", width - 64 - 24, "wrap-mode",
+    g_object_set ((GObject *) renderer, "wrap-width", 96, "wrap-mode",
      PANGO_WRAP_WORD_CHAR, NULL);
 
     store = gtk_list_store_new(CATEGORY_VIEW_N_COLS,
@@ -521,7 +574,7 @@ on_category_treeview_realize(GtkTreeView * treeview,
 
     for (i = 0; i < n_categories; i ++)
     {
-        gchar * path = g_strdup_printf ("%s/images/%s",
+        char * path = g_strdup_printf ("%s/images/%s",
          get_path (AUD_PATH_DATA_DIR), categories[i].icon_path);
         img = gdk_pixbuf_new_from_file (path, NULL);
         g_free (path);
@@ -553,200 +606,105 @@ on_category_treeview_realize(GtkTreeView * treeview,
     }
 }
 
-static void
-on_show_filepopup_for_tuple_realize(GtkToggleButton * button, gpointer data)
+static void on_show_filepopup_toggled (GtkToggleButton * button)
 {
-    gtk_toggle_button_set_active(button, cfg.show_filepopup_for_tuple);
-    filepopupbutton = GTK_WIDGET(button);
-
-    gtk_widget_set_sensitive(filepopup_for_tuple_settings_button, cfg.show_filepopup_for_tuple);
+    bool_t active = gtk_toggle_button_get_active (button);
+    set_bool (NULL, "show_filepopup_for_tuple", active);
+    gtk_widget_set_sensitive (filepopup_settings_button, active);
 }
 
-static void
-on_show_filepopup_for_tuple_toggled(GtkToggleButton * button, gpointer data)
+static void on_filepopup_settings_clicked (void)
 {
-    cfg.show_filepopup_for_tuple = gtk_toggle_button_get_active(button);
+    char * string = get_string (NULL, "cover_name_include");
+    gtk_entry_set_text ((GtkEntry *) filepopup_cover_name_include, string);
+    g_free (string);
 
-    gtk_widget_set_sensitive(filepopup_for_tuple_settings_button, cfg.show_filepopup_for_tuple);
-}
+    string = get_string (NULL, "cover_name_exclude");
+    gtk_entry_set_text ((GtkEntry *) filepopup_cover_name_exclude, string);
+    g_free (string);
 
-static void
-on_recurse_for_cover_toggled(GtkToggleButton *button, gpointer data)
-{
-    gtk_widget_set_sensitive(GTK_WIDGET(data),
-                             gtk_toggle_button_get_active(button));
-}
+    gtk_toggle_button_set_active ((GtkToggleButton *) filepopup_recurse,
+     get_bool (NULL, "recurse_for_cover"));
+    gtk_spin_button_set_value ((GtkSpinButton *) filepopup_recurse_depth,
+     get_int (NULL, "recurse_for_cover_depth"));
+    gtk_toggle_button_set_active ((GtkToggleButton *) filepopup_use_file_cover,
+     get_bool (NULL, "use_file_cover"));
 
-static void
-on_filepopup_for_tuple_settings_clicked(GtkButton *button, gpointer data)
-{
-    gtk_entry_set_text(GTK_ENTRY(filepopup_settings_cover_name_include), cfg.cover_name_include);
-    gtk_entry_set_text(GTK_ENTRY(filepopup_settings_cover_name_exclude), cfg.cover_name_exclude);
-    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filepopup_settings_recurse_for_cover), cfg.recurse_for_cover);
-    gtk_spin_button_set_value(GTK_SPIN_BUTTON(filepopup_settings_recurse_for_cover_depth), cfg.recurse_for_cover_depth);
-    on_recurse_for_cover_toggled(GTK_TOGGLE_BUTTON(filepopup_settings_recurse_for_cover), filepopup_settings_recurse_for_cover_depth_box);
-    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filepopup_settings_use_file_cover), cfg.use_file_cover);
-    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(filepopup_settings_showprogressbar), cfg.filepopup_showprogressbar);
-    gtk_spin_button_set_value(GTK_SPIN_BUTTON(filepopup_settings_delay), cfg.filepopup_delay);
+    gtk_toggle_button_set_active ((GtkToggleButton *) filepopup_showprogressbar,
+     get_bool (NULL, "filepopup_showprogressbar"));
+    gtk_spin_button_set_value ((GtkSpinButton *) filepopup_delay,
+     get_int (NULL, "filepopup_delay"));
 
-    gtk_widget_show(filepopup_settings);
+    gtk_widget_show (filepopup_settings);
 }
 
-static void
-on_filepopup_settings_ok_clicked(GtkButton *button, gpointer data)
+static void on_filepopup_ok_clicked (void)
 {
-    g_free(cfg.cover_name_include);
-    cfg.cover_name_include = g_strdup(gtk_entry_get_text(GTK_ENTRY(filepopup_settings_cover_name_include)));
+    set_string (NULL, "cover_name_include",
+     gtk_entry_get_text ((GtkEntry *) filepopup_cover_name_include));
+    set_string (NULL, "cover_name_exclude",
+     gtk_entry_get_text ((GtkEntry *) filepopup_cover_name_exclude));
 
-    g_free(cfg.cover_name_exclude);
-    cfg.cover_name_exclude = g_strdup(gtk_entry_get_text(GTK_ENTRY(filepopup_settings_cover_name_exclude)));
+    set_bool (NULL, "recurse_for_cover",
+     gtk_toggle_button_get_active ((GtkToggleButton *) filepopup_recurse));
+    set_int (NULL, "recurse_for_cover_depth",
+     gtk_spin_button_get_value_as_int ((GtkSpinButton *) filepopup_recurse_depth));
+    set_bool (NULL, "use_file_cover",
+     gtk_toggle_button_get_active ((GtkToggleButton *) filepopup_use_file_cover));
 
-    cfg.recurse_for_cover = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filepopup_settings_recurse_for_cover));
-    cfg.recurse_for_cover_depth = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(filepopup_settings_recurse_for_cover_depth));
-    cfg.use_file_cover = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filepopup_settings_use_file_cover));
-    cfg.filepopup_showprogressbar = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(filepopup_settings_showprogressbar));
-    cfg.filepopup_delay = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(filepopup_settings_delay));
+    set_bool (NULL, "filepopup_showprogressbar",
+     gtk_toggle_button_get_active ((GtkToggleButton *) filepopup_showprogressbar));
+    set_int (NULL, "filepopup_delay",
+     gtk_spin_button_get_value_as_int ((GtkSpinButton *) filepopup_delay));
 
-    gtk_widget_hide(filepopup_settings);
+    gtk_widget_hide (filepopup_settings);
 }
 
 static void
-on_filepopup_settings_cancel_clicked(GtkButton *button, gpointer data)
+on_filepopup_cancel_clicked(GtkButton *button, gpointer data)
 {
     gtk_widget_hide(filepopup_settings);
 }
 
-static void
-on_toggle_button_toggled(GtkToggleButton * button, gboolean *cfg)
-{
-    *cfg = gtk_toggle_button_get_active(button);
-    void (*callback) (void) = g_object_get_data(G_OBJECT(button), "callback");
-    if (callback != NULL) callback();
-    GtkWidget *child = g_object_get_data(G_OBJECT(button), "child");
-    if (child) gtk_widget_set_sensitive(GTK_WIDGET(child), *cfg);
-}
-
-static void
-on_toggle_button_realize(GtkToggleButton * button, gboolean *cfg)
-{
-    gtk_toggle_button_set_active(button, cfg ? *cfg : FALSE);
-    GtkWidget *child = g_object_get_data(G_OBJECT(button), "child");
-    if (child) gtk_widget_set_sensitive(GTK_WIDGET(child), cfg ? *cfg : FALSE);
-}
-
-static void
-on_toggle_button_cfg_toggled(GtkToggleButton *button, gchar *cfg)
-{
-    g_return_if_fail(cfg != NULL);
-
-    mcs_handle_t *db;
-    gboolean ret = gtk_toggle_button_get_active(button);
-
-    db = cfg_db_open();
-    cfg_db_set_bool(db, NULL, cfg, ret);
-    cfg_db_close(db);
-}
-
-static void
-on_toggle_button_cfg_realize(GtkToggleButton *button, gchar *cfg)
-{
-    mcs_handle_t *db;
-    gboolean ret;
-
-    g_return_if_fail(cfg != NULL);
-
-    db = cfg_db_open();
-
-    if (cfg_db_get_bool(db, NULL, cfg, &ret) != FALSE)
-        gtk_toggle_button_set_active(button, ret);
-
-    cfg_db_close(db);
-}
-
-static void
-on_entry_realize(GtkEntry *entry, gchar **cfg)
+static void on_toggle_button_toggled (GtkToggleButton * button, PreferencesWidget * widget)
 {
-    g_return_if_fail(cfg != NULL);
+    bool_t active = gtk_toggle_button_get_active (button);
+    widget_set_bool (widget, active);
 
-    if (*cfg)
-        gtk_entry_set_text(entry, *cfg);
+    GtkWidget * child = g_object_get_data ((GObject *) button, "child");
+    if (child)
+        gtk_widget_set_sensitive (child, active);
 }
 
-static void
-on_entry_changed(GtkEntry *entry, gchar **cfg)
+static void init_toggle_button (GtkWidget * button, PreferencesWidget * widget)
 {
-    void (*callback) (void) = g_object_get_data(G_OBJECT(entry), "callback");
-    const gchar *ret;
-
-    g_return_if_fail(cfg != NULL);
-
-    g_free(*cfg);
-
-    ret = gtk_entry_get_text(entry);
-
-    if (ret == NULL)
-        *cfg = g_strdup("");
-    else
-        *cfg = g_strdup(ret);
-
-    if (callback != NULL) callback();
-}
-
-static void
-on_entry_cfg_realize(GtkEntry *entry, gchar *cfg)
-{
-    mcs_handle_t *db;
-    gchar *ret;
-
-    g_return_if_fail(cfg != NULL);
-
-    db = cfg_db_open();
-
-    if (cfg_db_get_string(db, NULL, cfg, &ret) != FALSE)
-        gtk_entry_set_text(entry, ret);
+    if (widget->cfg_type != VALUE_BOOLEAN)
+        return;
 
-    cfg_db_close(db);
+    gtk_toggle_button_set_active ((GtkToggleButton *) button, widget_get_bool (widget));
+    g_signal_connect (button, "toggled", (GCallback) on_toggle_button_toggled, widget);
 }
 
-static void
-on_entry_cfg_changed(GtkEntry *entry, gchar *cfg)
+static void on_entry_changed (GtkEntry * entry, PreferencesWidget * widget)
 {
-    mcs_handle_t *db;
-    gchar *ret = g_strdup(gtk_entry_get_text(entry));
-
-    g_return_if_fail(cfg != NULL);
-
-    db = cfg_db_open();
-    cfg_db_set_string(db, NULL, cfg, ret);
-    cfg_db_close(db);
-
-    g_free(ret);
+    widget_set_string (widget, gtk_entry_get_text (entry));
 }
 
-static void
-on_cbox_changed_int(GtkComboBox * combobox, PreferencesWidget *widget)
+static void on_cbox_changed_int (GtkComboBox * combobox, PreferencesWidget * widget)
 {
-    gint position = 0;
-
-    position = gtk_combo_box_get_active(GTK_COMBO_BOX(combobox));
-    *((gint *)widget->cfg) = GPOINTER_TO_INT(widget->data.combo.elements[position].value);
+    int position = gtk_combo_box_get_active (combobox);
+    widget_set_int (widget, GPOINTER_TO_INT (widget->data.combo.elements[position].value));
 }
 
-static void
-on_cbox_changed_string(GtkComboBox * combobox, PreferencesWidget *widget)
+static void on_cbox_changed_string (GtkComboBox * combobox, PreferencesWidget * widget)
 {
-    gint position = 0;
-
-    position = gtk_combo_box_get_active(GTK_COMBO_BOX(combobox));
-
-    g_free(*((gchar **)widget->cfg));
-
-    *((gchar **)widget->cfg) = g_strdup(widget->data.combo.elements[position].value);
+    int position = gtk_combo_box_get_active (combobox);
+    widget_set_string (widget, widget->data.combo.elements[position].value);
 }
 
-static void on_cbox_realize (GtkWidget * combobox, PreferencesWidget * widget)
+static void fill_cbox (GtkWidget * combobox, PreferencesWidget * widget)
 {
-    guint i=0,index=0;
+    unsigned int i=0,index=0;
 
     for (i = 0; i < widget->data.combo.n_elements; i ++)
         gtk_combo_box_text_append_text ((GtkComboBoxText *) combobox,
@@ -757,8 +715,12 @@ static void on_cbox_realize (GtkWidget * combobox, PreferencesWidget * widget)
             case VALUE_INT:
                 g_signal_connect(combobox, "changed",
                                  G_CALLBACK(on_cbox_changed_int), widget);
+
+                int ivalue = widget_get_int (widget);
+
                 for(i=0; i<widget->data.combo.n_elements; i++) {
-                    if (GPOINTER_TO_INT(widget->data.combo.elements[i].value) == *((gint *) widget->cfg)) {
+                    if (GPOINTER_TO_INT (widget->data.combo.elements[i].value) == ivalue)
+                    {
                         index = i;
                         break;
                     }
@@ -767,17 +729,20 @@ static void on_cbox_realize (GtkWidget * combobox, PreferencesWidget * widget)
             case VALUE_STRING:
                 g_signal_connect(combobox, "changed",
                                  G_CALLBACK(on_cbox_changed_string), widget);
+
+                char * value = widget_get_string (widget);
+
                 for(i=0; i<widget->data.combo.n_elements; i++) {
-                    if(!strcmp((gchar *)widget->data.combo.elements[i].value, *((gchar **)widget->cfg))) {
+                    if (value && ! strcmp ((char *) widget->data.combo.elements[i].value, value))
+                    {
                         index = i;
                         break;
                     }
                 }
-                break;
-            case VALUE_NULL:
+
+                g_free (value);
                 break;
             default:
-                g_warning("Unhandled cbox value type");
                 break;
         }
         gtk_combo_box_set_active(GTK_COMBO_BOX(combobox), index);
@@ -837,11 +802,11 @@ create_filepopup_settings(void)
     gtk_table_set_row_spacings(GTK_TABLE(table), 4);
     gtk_table_set_col_spacings(GTK_TABLE(table), 4);
 
-    filepopup_settings_cover_name_include = gtk_entry_new();
-    gtk_table_attach(GTK_TABLE(table), filepopup_settings_cover_name_include, 1, 2, 0, 1,
+    filepopup_cover_name_include = gtk_entry_new();
+    gtk_table_attach(GTK_TABLE(table), filepopup_cover_name_include, 1, 2, 0, 1,
                      (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
                      (GtkAttachOptions) (0), 0, 0);
-    gtk_entry_set_activates_default(GTK_ENTRY(filepopup_settings_cover_name_include), TRUE);
+    gtk_entry_set_activates_default(GTK_ENTRY(filepopup_cover_name_include), TRUE);
 
     label_exclude = gtk_label_new(_("Exclude:"));
     gtk_table_attach(GTK_TABLE(table), label_exclude, 0, 1, 1, 2,
@@ -857,42 +822,42 @@ create_filepopup_settings(void)
     gtk_misc_set_alignment(GTK_MISC(label_include), 0, 0.5);
     gtk_misc_set_padding(GTK_MISC(label_include), 12, 0);
 
-    filepopup_settings_cover_name_exclude = gtk_entry_new();
-    gtk_table_attach(GTK_TABLE(table), filepopup_settings_cover_name_exclude, 1, 2, 1, 2,
+    filepopup_cover_name_exclude = gtk_entry_new();
+    gtk_table_attach(GTK_TABLE(table), filepopup_cover_name_exclude, 1, 2, 1, 2,
                      (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
                      (GtkAttachOptions) (0), 0, 0);
-    gtk_entry_set_activates_default(GTK_ENTRY(filepopup_settings_cover_name_exclude), TRUE);
+    gtk_entry_set_activates_default(GTK_ENTRY(filepopup_cover_name_exclude), TRUE);
 
     alignment = gtk_alignment_new(0.5, 0.5, 1, 1);
     gtk_box_pack_start(GTK_BOX(vbox), alignment, TRUE, TRUE, 0);
     gtk_alignment_set_padding(GTK_ALIGNMENT(alignment), 0, 0, 12, 0);
 
-    filepopup_settings_recurse_for_cover = gtk_check_button_new_with_mnemonic(_("Recursively search for cover"));
-    gtk_container_add(GTK_CONTAINER(alignment), filepopup_settings_recurse_for_cover);
+    filepopup_recurse = gtk_check_button_new_with_mnemonic(_("Recursively search for cover"));
+    gtk_container_add(GTK_CONTAINER(alignment), filepopup_recurse);
 
     alignment = gtk_alignment_new(0.5, 0.5, 1, 1);
     gtk_box_pack_start(GTK_BOX(vbox), alignment, FALSE, FALSE, 0);
     gtk_alignment_set_padding(GTK_ALIGNMENT(alignment), 0, 0, 45, 0);
 
-    filepopup_settings_recurse_for_cover_depth_box = gtk_hbox_new(FALSE, 0);
-    gtk_container_add(GTK_CONTAINER(alignment), filepopup_settings_recurse_for_cover_depth_box);
+    filepopup_recurse_depth_box = gtk_hbox_new(FALSE, 0);
+    gtk_container_add(GTK_CONTAINER(alignment), filepopup_recurse_depth_box);
 
     label_search_depth = gtk_label_new(_("Search depth: "));
-    gtk_box_pack_start(GTK_BOX(filepopup_settings_recurse_for_cover_depth_box), label_search_depth, TRUE, TRUE, 0);
+    gtk_box_pack_start(GTK_BOX(filepopup_recurse_depth_box), label_search_depth, TRUE, TRUE, 0);
     gtk_misc_set_padding(GTK_MISC(label_search_depth), 4, 0);
 
     recurse_for_cover_depth_adj = (GtkAdjustment *) gtk_adjustment_new (0, 0,
      100, 1, 10, 0);
-    filepopup_settings_recurse_for_cover_depth = gtk_spin_button_new(GTK_ADJUSTMENT(recurse_for_cover_depth_adj), 1, 0);
-    gtk_box_pack_start(GTK_BOX(filepopup_settings_recurse_for_cover_depth_box), filepopup_settings_recurse_for_cover_depth, TRUE, TRUE, 0);
-    gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(filepopup_settings_recurse_for_cover_depth), TRUE);
+    filepopup_recurse_depth = gtk_spin_button_new(GTK_ADJUSTMENT(recurse_for_cover_depth_adj), 1, 0);
+    gtk_box_pack_start(GTK_BOX(filepopup_recurse_depth_box), filepopup_recurse_depth, TRUE, TRUE, 0);
+    gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(filepopup_recurse_depth), TRUE);
 
     alignment = gtk_alignment_new(0.5, 0.5, 1, 1);
     gtk_box_pack_start(GTK_BOX(vbox), alignment, TRUE, TRUE, 0);
     gtk_alignment_set_padding(GTK_ALIGNMENT(alignment), 0, 0, 12, 0);
 
-    filepopup_settings_use_file_cover = gtk_check_button_new_with_mnemonic(_("Use per-file cover"));
-    gtk_container_add(GTK_CONTAINER(alignment), filepopup_settings_use_file_cover);
+    filepopup_use_file_cover = gtk_check_button_new_with_mnemonic(_("Use per-file cover"));
+    gtk_container_add(GTK_CONTAINER(alignment), filepopup_use_file_cover);
 
     label_misc = gtk_label_new(_("<b>Miscellaneous</b>"));
     gtk_box_pack_start(GTK_BOX(vbox), label_misc, FALSE, FALSE, 0);
@@ -903,8 +868,8 @@ create_filepopup_settings(void)
     gtk_box_pack_start(GTK_BOX(vbox), alignment, FALSE, FALSE, 0);
     gtk_alignment_set_padding(GTK_ALIGNMENT(alignment), 0, 0, 12, 0);
 
-    filepopup_settings_showprogressbar = gtk_check_button_new_with_mnemonic(_("Show Progress bar for the current track"));
-    gtk_container_add(GTK_CONTAINER(alignment), filepopup_settings_showprogressbar);
+    filepopup_showprogressbar = gtk_check_button_new_with_mnemonic(_("Show Progress bar for the current track"));
+    gtk_container_add(GTK_CONTAINER(alignment), filepopup_showprogressbar);
 
     alignment = gtk_alignment_new(0, 0.5, 1, 1);
     gtk_box_pack_start(GTK_BOX(vbox), alignment, TRUE, TRUE, 0);
@@ -919,9 +884,9 @@ create_filepopup_settings(void)
     gtk_misc_set_padding(GTK_MISC(label_delay), 12, 0);
 
     delay_adj = (GtkAdjustment *) gtk_adjustment_new (0, 0, 100, 1, 10, 0);
-    filepopup_settings_delay = gtk_spin_button_new(GTK_ADJUSTMENT(delay_adj), 1, 0);
-    gtk_box_pack_start(GTK_BOX(hbox), filepopup_settings_delay, TRUE, TRUE, 0);
-    gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(filepopup_settings_delay), TRUE);
+    filepopup_delay = gtk_spin_button_new(GTK_ADJUSTMENT(delay_adj), 1, 0);
+    gtk_box_pack_start(GTK_BOX(hbox), filepopup_delay, TRUE, TRUE, 0);
+    gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(filepopup_delay), TRUE);
 
     hbuttonbox = gtk_hbutton_box_new();
     gtk_box_pack_start(GTK_BOX(vbox), hbuttonbox, FALSE, FALSE, 0);
@@ -939,28 +904,23 @@ create_filepopup_settings(void)
                      G_CALLBACK(gtk_widget_hide_on_delete),
                      NULL);
     g_signal_connect(G_OBJECT(btn_cancel), "clicked",
-                     G_CALLBACK(on_filepopup_settings_cancel_clicked),
+                     G_CALLBACK(on_filepopup_cancel_clicked),
                      NULL);
     g_signal_connect(G_OBJECT(btn_ok), "clicked",
-                     G_CALLBACK(on_filepopup_settings_ok_clicked),
+                     G_CALLBACK(on_filepopup_ok_clicked),
                      NULL);
-    g_signal_connect(G_OBJECT(filepopup_settings_recurse_for_cover), "toggled",
-                     G_CALLBACK(on_recurse_for_cover_toggled),
-                     filepopup_settings_recurse_for_cover_depth_box);
 
     gtk_widget_grab_default(btn_ok);
     gtk_widget_show_all(vbox);
 }
 
 static void create_spin_button (PreferencesWidget * widget, GtkWidget * *
- label_pre, GtkWidget * * spin_btn, GtkWidget * * label_past, const gchar *
+ label_pre, GtkWidget * * spin_btn, GtkWidget * * label_past, const char *
  domain)
 {
      g_return_if_fail(widget->type == WIDGET_SPIN_BTN);
 
      * label_pre = gtk_label_new (dgettext (domain, widget->label));
-     gtk_misc_set_alignment(GTK_MISC(*label_pre), 0, 0.5);
-     gtk_misc_set_padding(GTK_MISC(*label_pre), 4, 0);
 
      *spin_btn = gtk_spin_button_new_with_range(widget->data.spin_btn.min,
                                                 widget->data.spin_btn.max,
@@ -974,36 +934,26 @@ static void create_spin_button (PreferencesWidget * widget, GtkWidget * *
      if (widget->data.spin_btn.right_label) {
          * label_past = gtk_label_new (dgettext (domain,
           widget->data.spin_btn.right_label));
-         gtk_misc_set_alignment(GTK_MISC(*label_past), 0, 0.5);
-         gtk_misc_set_padding(GTK_MISC(*label_past), 4, 0);
      }
 
-     switch (widget->cfg_type) {
-         case VALUE_INT:
-             g_signal_connect(G_OBJECT(*spin_btn), "value_changed",
-                              G_CALLBACK(on_spin_btn_changed_gint),
-                              widget->cfg);
-             g_signal_connect(G_OBJECT(*spin_btn), "realize",
-                              G_CALLBACK(on_spin_btn_realize_gint),
-                              widget->cfg);
-             break;
-         case VALUE_FLOAT:
-             g_signal_connect(G_OBJECT(*spin_btn), "value_changed",
-                              G_CALLBACK(on_spin_btn_changed_gfloat),
-                              widget->cfg);
-             g_signal_connect(G_OBJECT(*spin_btn), "realize",
-                              G_CALLBACK(on_spin_btn_realize_gfloat),
-                              widget->cfg);
-             break;
-         case VALUE_NULL:
-             break;
-         default:
-             g_warning("Unsupported value type for spin button");
-     }
+    switch (widget->cfg_type)
+    {
+    case VALUE_INT:
+        gtk_spin_button_set_value ((GtkSpinButton *) * spin_btn, widget_get_int (widget));
+        g_signal_connect (* spin_btn, "value_changed", (GCallback) on_spin_btn_changed_int, widget);
+        break;
+    case VALUE_FLOAT:
+        gtk_spin_button_set_value ((GtkSpinButton *) * spin_btn, widget_get_double (widget));
+        g_signal_connect (* spin_btn, "value_changed", (GCallback)
+         on_spin_btn_changed_float, widget);
+        break;
+    default:
+        break;
+    }
 }
 
 void create_font_btn (PreferencesWidget * widget, GtkWidget * * label,
- GtkWidget * * font_btn, const gchar * domain)
+ GtkWidget * * font_btn, const char * domain)
 {
     *font_btn = gtk_font_button_new();
     gtk_font_button_set_use_font(GTK_FONT_BUTTON(*font_btn), TRUE);
@@ -1020,19 +970,18 @@ void create_font_btn (PreferencesWidget * widget, GtkWidget * * label,
         gtk_font_button_set_title (GTK_FONT_BUTTON (* font_btn),
          dgettext (domain, widget->data.font_btn.title));
 
-    g_object_set_data ((GObject *) (* font_btn), "callback", (void *)
-     widget->callback);
+    char * name = widget_get_string (widget);
+    if (name)
+    {
+        gtk_font_button_set_font_name ((GtkFontButton *) * font_btn, name);
+        g_free (name);
+    }
 
-    g_signal_connect(G_OBJECT(*font_btn), "font_set",
-                     G_CALLBACK(on_font_btn_font_set),
-                     (gchar**)widget->cfg);
-    g_signal_connect(G_OBJECT(*font_btn), "realize",
-                     G_CALLBACK(on_font_btn_realize),
-                     (gchar**)widget->cfg);
+    g_signal_connect (* font_btn, "font_set", (GCallback) on_font_btn_font_set, widget);
 }
 
 static void create_entry (PreferencesWidget * widget, GtkWidget * * label,
- GtkWidget * * entry, const gchar * domain)
+ GtkWidget * * entry, const char * domain)
 {
     *entry = gtk_entry_new();
     gtk_entry_set_visibility(GTK_ENTRY(*entry), !widget->data.entry.password);
@@ -1043,33 +992,21 @@ static void create_entry (PreferencesWidget * widget, GtkWidget * * label,
     if (widget->tooltip)
         gtk_widget_set_tooltip_text (* entry, dgettext (domain, widget->tooltip));
 
-    g_object_set_data ((GObject *) (* entry), "callback", (void *)
-     widget->callback);
-
-    switch (widget->cfg_type) {
-        case VALUE_STRING:
-            g_signal_connect(G_OBJECT(*entry), "realize",
-                             G_CALLBACK(on_entry_realize),
-                             widget->cfg);
-            g_signal_connect(G_OBJECT(*entry), "changed",
-                             G_CALLBACK(on_entry_changed),
-                             widget->cfg);
-            break;
-        case VALUE_CFG_STRING:
-            g_signal_connect(G_OBJECT(*entry), "realize",
-                             G_CALLBACK(on_entry_cfg_realize),
-                             widget->cfg);
-            g_signal_connect(G_OBJECT(*entry), "changed",
-                             G_CALLBACK(on_entry_cfg_changed),
-                             widget->cfg);
-            break;
-        default:
-            g_warning("Unhandled entry value type %d", widget->cfg_type);
+    if (widget->cfg_type == VALUE_STRING)
+    {
+        char * value = widget_get_string (widget);
+        if (value)
+        {
+            gtk_entry_set_text ((GtkEntry *) * entry, value);
+            g_free (value);
+        }
+
+        g_signal_connect (* entry, "changed", (GCallback) on_entry_changed, widget);
     }
 }
 
 static void create_label (PreferencesWidget * widget, GtkWidget * * label,
- GtkWidget * * icon, const gchar * domain)
+ GtkWidget * * icon, const char * domain)
 {
     if (widget->data.label.stock_id)
         *icon = gtk_image_new_from_stock(widget->data.label.stock_id, GTK_ICON_SIZE_BUTTON);
@@ -1084,24 +1021,21 @@ static void create_label (PreferencesWidget * widget, GtkWidget * * label,
 }
 
 static void create_cbox (PreferencesWidget * widget, GtkWidget * * label,
- GtkWidget * * combobox, const gchar * domain)
+ GtkWidget * * combobox, const char * domain)
 {
     * combobox = gtk_combo_box_text_new ();
 
     if (widget->label) {
         * label = gtk_label_new (dgettext (domain, widget->label));
-        gtk_misc_set_alignment(GTK_MISC(*label), 1, 0.5);
     }
 
-    g_signal_connect_after(G_OBJECT(*combobox), "realize",
-                           G_CALLBACK(on_cbox_realize),
-                           widget);
+    fill_cbox (* combobox, widget);
 }
 
-static void fill_table (GtkWidget * table, PreferencesWidget * elements, gint
- amt, const gchar * domain)
+static void fill_table (GtkWidget * table, PreferencesWidget * elements, int
+ amt, const char * domain)
 {
-    gint x;
+    int x;
     GtkWidget *widget_left, *widget_middle, *widget_right;
     GtkAttachOptions middle_policy = (GtkAttachOptions) (0);
 
@@ -1155,29 +1089,34 @@ static void fill_table (GtkWidget * table, PreferencesWidget * elements, gint
 }
 
 /* void create_widgets_with_domain (GtkBox * box, PreferencesWidget * widgets,
- gint amt, const gchar * domain) */
-void create_widgets_with_domain (void * box, PreferencesWidget * widgets, gint
- amt, const gchar * domain)
+ int amt, const char * domain) */
+void create_widgets_with_domain (void * box, PreferencesWidget * widgets, int
+ amt, const char * domain)
 {
-    gint x;
+    int x;
     GtkWidget *alignment = NULL, *widget = NULL;
     GtkWidget *child_box = NULL;
     GSList *radio_btn_group = NULL;
 
     for (x = 0; x < amt; ++x) {
-        if (widgets[x].child) { /* perhaps this logic can be better */
+        if (widget && widgets[x].child)
+        {
             if (!child_box) {
                 child_box = gtk_vbox_new(FALSE, 0);
                 g_object_set_data(G_OBJECT(widget), "child", child_box);
                 alignment = gtk_alignment_new (0.5, 0.5, 1, 1);
                 gtk_box_pack_start(box, alignment, FALSE, FALSE, 0);
-                gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 0, 0, 24, 0);
+                gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 0, 0, 12, 0);
                 gtk_container_add (GTK_CONTAINER (alignment), child_box);
+
+                if (GTK_IS_TOGGLE_BUTTON (widget))
+                    gtk_widget_set_sensitive (child_box, gtk_toggle_button_get_active ((GtkToggleButton *) widget));
             }
         } else
             child_box = NULL;
 
         alignment = gtk_alignment_new (0.5, 0.5, 1, 1);
+        gtk_alignment_set_padding ((GtkAlignment *) alignment, 6, 0, 12, 0);
         gtk_box_pack_start(child_box ? GTK_BOX(child_box) : box, alignment, FALSE, FALSE, 0);
 
         if (radio_btn_group && widgets[x].type != WIDGET_RADIO_BTN)
@@ -1185,34 +1124,11 @@ void create_widgets_with_domain (void * box, PreferencesWidget * widgets, gint
 
         switch(widgets[x].type) {
             case WIDGET_CHK_BTN:
-                gtk_alignment_set_padding(GTK_ALIGNMENT(alignment), 0, 0, 12, 0);
-                widget = gtk_check_button_new_with_mnemonic (dgettext (domain,
-                 widgets[x].label));
-                g_object_set_data ((GObject *) widget, "callback",
-                 (void *) widgets[x].callback);
-
-                if (widgets[x].cfg_type == VALUE_CFG_BOOLEAN) {
-                    g_signal_connect(G_OBJECT(widget), "toggled",
-                                     G_CALLBACK(on_toggle_button_cfg_toggled),
-                                     widgets[x].cfg);
-                    g_signal_connect(G_OBJECT(widget), "realize",
-                                     G_CALLBACK(on_toggle_button_cfg_realize),
-                                     widgets[x].cfg);
-                } else {
-                    if (widgets[x].cfg) {
-                        g_signal_connect(G_OBJECT(widget), "toggled",
-                                         G_CALLBACK(on_toggle_button_toggled),
-                                         widgets[x].cfg);
-                    } else {
-                        gtk_widget_set_sensitive(widget, FALSE);
-                    }
-                    g_signal_connect(G_OBJECT(widget), "realize",
-                                     G_CALLBACK(on_toggle_button_realize),
-                                     widgets[x].cfg);
-                }
+                widget = gtk_check_button_new_with_mnemonic (dgettext (domain, widgets[x].label));
+                init_toggle_button (widget, & widgets[x]);
                 break;
             case WIDGET_LABEL:
-                gtk_alignment_set_padding(GTK_ALIGNMENT(alignment), 12, 6, 0, 0);
+                gtk_alignment_set_padding(GTK_ALIGNMENT(alignment), 12, 0, 0, 0);
 
                 GtkWidget *label = NULL, *icon = NULL;
                 create_label (& widgets[x], & label, & icon, domain);
@@ -1226,20 +1142,12 @@ void create_widgets_with_domain (void * box, PreferencesWidget * widgets, gint
                 }
                 break;
             case WIDGET_RADIO_BTN:
-                gtk_alignment_set_padding(GTK_ALIGNMENT(alignment), 0, 0, 12, 0);
                 widget = gtk_radio_button_new_with_mnemonic (radio_btn_group,
                  dgettext (domain, widgets[x].label));
-                radio_btn_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (widget));
-                g_signal_connect(G_OBJECT(widget), "toggled",
-                                 G_CALLBACK(on_toggle_button_toggled),
-                                 widgets[x].cfg);
-                g_signal_connect(G_OBJECT(widget), "realize",
-                                 G_CALLBACK(on_toggle_button_realize),
-                                 widgets[x].cfg);
+                radio_btn_group = gtk_radio_button_get_group ((GtkRadioButton *) widget);
+                init_toggle_button (widget, & widgets[x]);
                 break;
             case WIDGET_SPIN_BTN:
-                gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 6, 0, 12, 0);
-
                 widget = gtk_hbox_new(FALSE, 6);
 
                 GtkWidget *label_pre = NULL, *spin_btn = NULL, *label_past = NULL;
@@ -1262,8 +1170,6 @@ void create_widgets_with_domain (void * box, PreferencesWidget * widgets, gint
 
                 break;
             case WIDGET_FONT_BTN:
-                gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 0, 0, 12, 0);
-
                 widget = gtk_hbox_new(FALSE, 6);
 
                 GtkWidget *font_btn = NULL;
@@ -1275,16 +1181,12 @@ void create_widgets_with_domain (void * box, PreferencesWidget * widgets, gint
                     gtk_box_pack_start(GTK_BOX(widget), font_btn, FALSE, FALSE, 0);
                 break;
             case WIDGET_TABLE:
-                gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 0, 0, 12, 0);
-
                 widget = gtk_table_new(widgets[x].data.table.rows, 3, FALSE);
                 fill_table (widget, widgets[x].data.table.elem,
                  widgets[x].data.table.rows, domain);
                 gtk_table_set_row_spacings(GTK_TABLE(widget), 6);
                 break;
             case WIDGET_ENTRY:
-                gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 6, 0, 6, 12);
-
                 widget = gtk_hbox_new(FALSE, 6);
 
                 GtkWidget *entry = NULL;
@@ -1296,9 +1198,7 @@ void create_widgets_with_domain (void * box, PreferencesWidget * widgets, gint
                     gtk_box_pack_start(GTK_BOX(widget), entry, TRUE, TRUE, 0);
                 break;
             case WIDGET_COMBO_BOX:
-                gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 0, 0, 12, 0);
-
-                widget = gtk_hbox_new(FALSE, 10);
+                widget = gtk_hbox_new(FALSE, 6);
 
                 GtkWidget *combo = NULL;
                 create_cbox (& widgets[x], & label, & combo, domain);
@@ -1309,7 +1209,7 @@ void create_widgets_with_domain (void * box, PreferencesWidget * widgets, gint
                     gtk_box_pack_start(GTK_BOX(widget), combo, FALSE, FALSE, 0);
                 break;
             case WIDGET_BOX:
-                gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 0, 0, 3, 0);
+                gtk_alignment_set_padding(GTK_ALIGNMENT(alignment), 0, 0, 0, 0);
 
                 if (widgets[x].data.box.horizontal) {
                     widget = gtk_hbox_new(FALSE, 0);
@@ -1317,7 +1217,8 @@ void create_widgets_with_domain (void * box, PreferencesWidget * widgets, gint
                     widget = gtk_vbox_new(FALSE, 0);
                 }
 
-                create_widgets(GTK_BOX(widget), widgets[x].data.box.elem, widgets[x].data.box.n_elem);
+                create_widgets_with_domain ((GtkBox *) widget,
+                 widgets[x].data.box.elem, widgets[x].data.box.n_elem, domain);
 
                 if (widgets[x].data.box.frame) {
                     GtkWidget *tmp;
@@ -1328,15 +1229,17 @@ void create_widgets_with_domain (void * box, PreferencesWidget * widgets, gint
                 }
                 break;
             case WIDGET_NOTEBOOK:
-                gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 0, 0, 3, 0);
+                gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 6, 0, 0, 0);
 
                 widget = gtk_notebook_new();
 
-                gint i;
+                int i;
                 for (i = 0; i<widgets[x].data.notebook.n_tabs; i++) {
                     GtkWidget *vbox;
                     vbox = gtk_vbox_new(FALSE, 5);
-                    create_widgets(GTK_BOX(vbox), widgets[x].data.notebook.tabs[i].settings, widgets[x].data.notebook.tabs[i].n_settings);
+                    create_widgets_with_domain ((GtkBox *) vbox,
+                     widgets[x].data.notebook.tabs[i].settings,
+                     widgets[x].data.notebook.tabs[i].n_settings, domain);
 
                     gtk_notebook_append_page (GTK_NOTEBOOK (widget), vbox,
                      gtk_label_new (dgettext (domain,
@@ -1353,9 +1256,7 @@ void create_widgets_with_domain (void * box, PreferencesWidget * widgets, gint
                 }
                 break;
             default:
-                /* shouldn't ever happen - expect things to break */
-                g_error("This shouldn't ever happen - expect things to break.");
-                continue;
+                break;
         }
 
         if (widget && !gtk_widget_get_parent(widget))
@@ -1371,7 +1272,7 @@ static GtkWidget *
 create_titlestring_tag_menu(void)
 {
     GtkWidget *titlestring_tag_menu, *menu_item;
-    guint i;
+    unsigned int i;
 
     titlestring_tag_menu = gtk_menu_new();
     for(i = 0; i < n_title_field_tags; i++) {
@@ -1386,42 +1287,36 @@ create_titlestring_tag_menu(void)
     return titlestring_tag_menu;
 }
 
-static void
-create_replay_gain_category(void)
+static void show_numbers_cb (GtkToggleButton * numbers, void * unused)
 {
-    GtkWidget *rg_page_vbox;
-    GtkWidget *widgets_vbox;
-
-    rg_page_vbox = gtk_vbox_new (FALSE, 0);
-    gtk_container_add (GTK_CONTAINER (category_notebook), rg_page_vbox);
+    set_bool (NULL, "show_numbers_in_pl", gtk_toggle_button_get_active (numbers));
 
-    widgets_vbox = gtk_vbox_new (FALSE, 0);
-    create_widgets(GTK_BOX(widgets_vbox), replay_gain_page_widgets, G_N_ELEMENTS(replay_gain_page_widgets));
-    gtk_box_pack_start (GTK_BOX (rg_page_vbox), widgets_vbox, TRUE, TRUE, 0);
+    hook_call ("title change", NULL);
 }
 
-static void show_numbers_cb (GtkToggleButton * numbers, void * unused)
+static void leading_zero_cb (GtkToggleButton * leading)
 {
-    cfg.show_numbers_in_pl = gtk_toggle_button_get_active (numbers);
+    set_bool (NULL, "leading_zero", gtk_toggle_button_get_active (leading));
 
     hook_call ("title change", NULL);
-
-    /* trigger playlist update */
-    gchar * t = g_strdup (playlist_get_title (playlist_get_active ()));
-    playlist_set_title (playlist_get_active (), t);
-    g_free (t);
 }
 
-static void leading_zero_cb (GtkToggleButton * leading)
+static void create_titlestring_widgets (GtkWidget * * cbox, GtkWidget * * entry)
 {
-    cfg.leading_zero = gtk_toggle_button_get_active (leading);
+    * cbox = gtk_combo_box_text_new ();
+    for (int i = 0; i < TITLESTRING_NPRESETS; i ++)
+        gtk_combo_box_text_append_text ((GtkComboBoxText *) * cbox, _(titlestring_preset_names[i]));
+    gtk_combo_box_text_append_text ((GtkComboBoxText *) * cbox, _("Custom"));
 
-    hook_call ("title change", NULL);
+    * entry = gtk_entry_new ();
+
+    char * format = get_string (NULL, "generic_title_format");
+    update_titlestring_cbox ((GtkComboBox *) * cbox, format);
+    gtk_entry_set_text ((GtkEntry *) * entry, format);
+    g_free (format);
 
-    /* trigger playlist update */
-    gchar * t = g_strdup (playlist_get_title (playlist_get_active ()));
-    playlist_set_title (playlist_get_active (), t);
-    g_free (t);
+    g_signal_connect (* cbox, "changed", (GCallback) on_titlestring_cbox_changed, * entry);
+    g_signal_connect (* entry, "changed", (GCallback) on_titlestring_entry_changed, * cbox);
 }
 
 static void
@@ -1434,7 +1329,6 @@ create_playlist_category(void)
     GtkWidget *table6;
     GtkWidget *titlestring_help_button;
     GtkWidget *image1;
-    GtkWidget *titlestring_cbox;
     GtkWidget *label62;
     GtkWidget *label61;
     GtkWidget *alignment85;
@@ -1442,7 +1336,6 @@ create_playlist_category(void)
     GtkWidget *alignment86;
     GtkWidget *hbox9;
     GtkWidget *vbox34;
-    GtkWidget *checkbutton10;
     GtkWidget *image8;
     GtkWidget *titlestring_tag_menu = create_titlestring_tag_menu();
     GtkWidget * numbers_alignment, * numbers;
@@ -1467,7 +1360,7 @@ create_playlist_category(void)
 
     numbers = gtk_check_button_new_with_label (_("Show song numbers"));
     gtk_toggle_button_set_active ((GtkToggleButton *) numbers,
-     cfg.show_numbers_in_pl);
+     get_bool (NULL, "show_numbers_in_pl"));
     g_signal_connect ((GObject *) numbers, "toggled", (GCallback)
      show_numbers_cb, 0);
     gtk_container_add ((GtkContainer *) numbers_alignment, numbers);
@@ -1478,7 +1371,7 @@ create_playlist_category(void)
 
     numbers = gtk_check_button_new_with_label (_("Show leading zeroes (02:00 "
      "instead of 2:00)"));
-    gtk_toggle_button_set_active ((GtkToggleButton *) numbers, cfg.leading_zero);
+    gtk_toggle_button_set_active ((GtkToggleButton *) numbers, get_bool (NULL, "leading_zero"));
     g_signal_connect ((GObject *) numbers, "toggled", (GCallback)
      leading_zero_cb, 0);
     gtk_container_add ((GtkContainer *) numbers_alignment, numbers);
@@ -1505,21 +1398,11 @@ create_playlist_category(void)
     image1 = gtk_image_new_from_stock ("gtk-index", GTK_ICON_SIZE_BUTTON);
     gtk_container_add (GTK_CONTAINER (titlestring_help_button), image1);
 
-    titlestring_cbox = gtk_combo_box_text_new ();
-
+    GtkWidget * titlestring_cbox;
+    create_titlestring_widgets (& titlestring_cbox, & titlestring_entry);
     gtk_table_attach (GTK_TABLE (table6), titlestring_cbox, 1, 3, 0, 1,
                       (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
                       (GtkAttachOptions) (0), 0, 0);
-
-    gtk_combo_box_text_append_text ((GtkComboBoxText *) titlestring_cbox, _("TITLE"));
-    gtk_combo_box_text_append_text ((GtkComboBoxText *) titlestring_cbox, _("ARTIST - TITLE"));
-    gtk_combo_box_text_append_text ((GtkComboBoxText *) titlestring_cbox, _("ARTIST - ALBUM - TITLE"));
-    gtk_combo_box_text_append_text ((GtkComboBoxText *) titlestring_cbox, _("ARTIST - ALBUM - TRACK. TITLE"));
-    gtk_combo_box_text_append_text ((GtkComboBoxText *) titlestring_cbox, _("ARTIST [ ALBUM ] - TRACK. TITLE"));
-    gtk_combo_box_text_append_text ((GtkComboBoxText *) titlestring_cbox, _("ALBUM - TITLE"));
-    gtk_combo_box_text_append_text ((GtkComboBoxText *) titlestring_cbox, _("Custom"));
-
-    titlestring_entry = gtk_entry_new ();
     gtk_table_attach (GTK_TABLE (table6), titlestring_entry, 1, 2, 1, 2,
                       (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
                       (GtkAttachOptions) (0), 0, 0);
@@ -1557,62 +1440,44 @@ create_playlist_category(void)
     vbox34 = gtk_vbox_new (FALSE, 0);
     gtk_box_pack_start (GTK_BOX (hbox9), vbox34, TRUE, TRUE, 0);
 
-    checkbutton10 = gtk_check_button_new_with_mnemonic (_("Show popup information for playlist entries"));
-    gtk_box_pack_start (GTK_BOX (vbox34), checkbutton10, TRUE, FALSE, 0);
-    gtk_widget_set_tooltip_text (checkbutton10, _("Toggles popup information window for the pointed entry in the playlist. The window shows title of song, name of album, genre, year of publish, track number, track length, and artwork."));
+    filepopupbutton = gtk_check_button_new_with_mnemonic (_("Show popup information for playlist entries"));
+    gtk_widget_set_tooltip_text (filepopupbutton, _("Toggles popup information window for the pointed entry in the playlist. The window shows title of song, name of album, genre, year of publish, track number, track length, and artwork."));
+    gtk_toggle_button_set_active ((GtkToggleButton *) filepopupbutton,
+     get_bool (NULL, "show_filepopup_for_tuple"));
+    gtk_box_pack_start ((GtkBox *) vbox34, filepopupbutton, TRUE, FALSE, 0);
 
-    filepopup_for_tuple_settings_button = gtk_button_new ();
-    gtk_box_pack_start (GTK_BOX (hbox9), filepopup_for_tuple_settings_button, FALSE, FALSE, 0);
+    filepopup_settings_button = gtk_button_new ();
+    gtk_widget_set_sensitive (filepopup_settings_button,
+     get_bool (NULL, "show_filepopup_for_tuple"));
+    gtk_box_pack_start (GTK_BOX (hbox9), filepopup_settings_button, FALSE, FALSE, 0);
 
-    gtk_widget_set_can_focus (filepopup_for_tuple_settings_button, FALSE);
-    gtk_widget_set_tooltip_text (filepopup_for_tuple_settings_button, _("Edit settings for popup information"));
-    gtk_button_set_relief (GTK_BUTTON (filepopup_for_tuple_settings_button), GTK_RELIEF_HALF);
+    gtk_widget_set_can_focus (filepopup_settings_button, FALSE);
+    gtk_widget_set_tooltip_text (filepopup_settings_button, _("Edit settings for popup information"));
+    gtk_button_set_relief (GTK_BUTTON (filepopup_settings_button), GTK_RELIEF_HALF);
 
     image8 = gtk_image_new_from_stock ("gtk-properties", GTK_ICON_SIZE_BUTTON);
-    gtk_container_add (GTK_CONTAINER (filepopup_for_tuple_settings_button), image8);
+    gtk_container_add (GTK_CONTAINER (filepopup_settings_button), image8);
 
 
 
-    g_signal_connect(G_OBJECT(checkbutton10), "toggled",
-                     G_CALLBACK(on_show_filepopup_for_tuple_toggled),
+    g_signal_connect (filepopupbutton, "toggled",
+                     G_CALLBACK(on_show_filepopup_toggled),
                      NULL);
-    g_signal_connect_after(G_OBJECT(checkbutton10), "realize",
-                           G_CALLBACK(on_show_filepopup_for_tuple_realize),
-                           NULL);
-    g_signal_connect(G_OBJECT(filepopup_for_tuple_settings_button), "clicked",
-                     G_CALLBACK(on_filepopup_for_tuple_settings_clicked),
+    g_signal_connect(G_OBJECT(filepopup_settings_button), "clicked",
+                     G_CALLBACK(on_filepopup_settings_clicked),
                      NULL);
 
-    g_signal_connect(titlestring_cbox, "realize",
-                     G_CALLBACK(on_titlestring_cbox_realize),
-                     titlestring_entry);
-    g_signal_connect(titlestring_cbox, "changed",
-                     G_CALLBACK(on_titlestring_cbox_changed),
-                     titlestring_entry);
-
-    g_signal_connect(titlestring_cbox, "changed",
-                     G_CALLBACK(on_titlestring_cbox_changed),
-                     titlestring_help_button);
     g_signal_connect(titlestring_help_button, "clicked",
                      G_CALLBACK(on_titlestring_help_button_clicked),
                      titlestring_tag_menu);
 
-    g_signal_connect(G_OBJECT(titlestring_entry), "changed",
-                     G_CALLBACK(on_titlestring_entry_changed),
-                     NULL);
-    g_signal_connect_after(G_OBJECT(titlestring_entry), "realize",
-                           G_CALLBACK(on_titlestring_entry_realize),
-                           NULL);
-
-
-
     /* Create window for filepopup settings */
     create_filepopup_settings();
 }
 
 static GtkWidget * output_config_button, * output_about_button;
 
-static gboolean output_enum_cb (PluginHandle * plugin, GList * * list)
+static bool_t output_enum_cb (PluginHandle * plugin, GList * * list)
 {
     * list = g_list_prepend (* list, plugin);
     return TRUE;
@@ -1673,96 +1538,44 @@ static void output_do_about (void)
         op->about ();
 }
 
-static void
-create_audio_category(void)
-{
-    GtkWidget *audio_page_vbox;
-    GtkWidget *alignment74;
-    GtkWidget *label77;
-    GtkWidget *alignment73;
-    GtkWidget *vbox33;
-    GtkWidget *table11;
-    GtkWidget *label79;
-    GtkAdjustment * output_plugin_bufsize_adj;
-    GtkWidget *output_plugin_bufsize;
-    GtkWidget *output_plugin_cbox;
-    GtkWidget *label78;
-
-    audio_page_vbox = gtk_vbox_new (FALSE, 0);
-    gtk_container_add (GTK_CONTAINER (category_notebook), audio_page_vbox);
-
-    alignment74 = gtk_alignment_new (0.5, 0.5, 1, 1);
-    gtk_box_pack_start (GTK_BOX (audio_page_vbox), alignment74, FALSE, FALSE, 0);
-    gtk_alignment_set_padding (GTK_ALIGNMENT (alignment74), 0, 12, 0, 0);
-
-    label77 = gtk_label_new (_("<b>Audio System</b>"));
-    gtk_container_add (GTK_CONTAINER (alignment74), label77);
-    gtk_label_set_use_markup (GTK_LABEL (label77), TRUE);
-    gtk_misc_set_alignment (GTK_MISC (label77), 0, 0.5);
-
-    alignment73 = gtk_alignment_new (0.5, 0.5, 1, 1);
-    gtk_box_pack_start (GTK_BOX (audio_page_vbox), alignment73, FALSE, FALSE, 0);
-    gtk_alignment_set_padding (GTK_ALIGNMENT (alignment73), 0, 6, 12, 0);
-
-    vbox33 = gtk_vbox_new (FALSE, 0);
-    gtk_container_add (GTK_CONTAINER (alignment73), vbox33);
-
-    table11 = gtk_table_new (3, 2, FALSE);
-    gtk_box_pack_start (GTK_BOX (vbox33), table11, FALSE, FALSE, 0);
-    gtk_table_set_row_spacings (GTK_TABLE (table11), 6);
-    gtk_table_set_col_spacings (GTK_TABLE (table11), 6);
-
-    label79 = gtk_label_new (_("Buffer size:"));
-    gtk_table_attach (GTK_TABLE (table11), label79, 0, 1, 1, 2,
-                      (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
-                      (GtkAttachOptions) (0), 0, 0);
-    gtk_misc_set_alignment (GTK_MISC (label79), 1, 0.5);
-
-    output_plugin_bufsize_adj = (GtkAdjustment *) gtk_adjustment_new (0, 100,
-     10000, 100, 1000, 0);
-    output_plugin_bufsize = gtk_spin_button_new (GTK_ADJUSTMENT (output_plugin_bufsize_adj), 100, 0);
-    gtk_table_attach (GTK_TABLE (table11), output_plugin_bufsize, 1, 2, 1, 2,
-                      (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
-                      (GtkAttachOptions) (0), 0, 0);
+static void * create_output_plugin_box (void)
+{
+    GtkWidget * hbox1 = gtk_hbox_new (FALSE, 6);
+    gtk_box_pack_start ((GtkBox *) hbox1, gtk_label_new (_("Output plugin:")), FALSE, FALSE, 0);
 
-    output_plugin_cbox = gtk_combo_box_text_new ();
+    GtkWidget * vbox = gtk_vbox_new (FALSE, 6);
+    gtk_box_pack_start ((GtkBox *) hbox1, vbox, FALSE, FALSE, 0);
 
-    gtk_table_attach (GTK_TABLE (table11), output_plugin_cbox, 1, 2, 0, 1,
-                      (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
-                      (GtkAttachOptions) (0), 0, 0);
+    GtkWidget * hbox2 = gtk_hbox_new (FALSE, 6);
+    gtk_box_pack_start ((GtkBox *) vbox, hbox2, FALSE, FALSE, 0);
 
-    label78 = gtk_label_new (_("Current output plugin:"));
-    gtk_table_attach (GTK_TABLE (table11), label78, 0, 1, 0, 1,
-                      (GtkAttachOptions) (0),
-                      (GtkAttachOptions) (0), 0, 0);
-    gtk_misc_set_alignment (GTK_MISC (label78), 0, 0.5);
+    GtkWidget * output_plugin_cbox = gtk_combo_box_text_new ();
+    gtk_box_pack_start ((GtkBox *) hbox2, output_plugin_cbox, FALSE, FALSE, 0);
 
-    GtkWidget * hbox = gtk_hbox_new (FALSE, 6);
-    gtk_box_pack_start ((GtkBox *) audio_page_vbox, hbox, FALSE, FALSE, 0);
+    GtkWidget * hbox3 = gtk_hbox_new (FALSE, 6);
+    gtk_box_pack_start ((GtkBox *) vbox, hbox3, FALSE, FALSE, 0);
 
     output_config_button = gtk_button_new_from_stock (GTK_STOCK_PREFERENCES);
-    output_about_button = gtk_button_new_from_stock (GTK_STOCK_ABOUT);
-
-    gtk_box_pack_end ((GtkBox *) hbox, output_about_button, FALSE, FALSE, 0);
-    gtk_box_pack_end ((GtkBox *) hbox, output_config_button, FALSE, FALSE, 0);
+    gtk_box_pack_start ((GtkBox *) hbox3, output_config_button, FALSE, FALSE, 0);
 
-    create_widgets(GTK_BOX(audio_page_vbox), audio_page_widgets, G_N_ELEMENTS(audio_page_widgets));
+    output_about_button = gtk_button_new_from_stock (GTK_STOCK_ABOUT);
+    gtk_box_pack_start ((GtkBox *) hbox3, output_about_button, FALSE, FALSE, 0);
 
     output_combo_fill ((GtkComboBox *) output_plugin_cbox);
     output_combo_update ((GtkComboBox *) output_plugin_cbox);
-    g_signal_connect (output_plugin_cbox, "changed", (GCallback)
-     output_combo_changed, NULL);
-    g_signal_connect (output_config_button, "clicked", (GCallback)
-     output_do_config, NULL);
-    g_signal_connect (output_about_button, "clicked", (GCallback)
-     output_do_about, NULL);
-
-    g_signal_connect(G_OBJECT(output_plugin_bufsize), "value_changed",
-                     G_CALLBACK(on_output_plugin_bufsize_value_changed),
-                     NULL);
-    g_signal_connect_after(G_OBJECT(output_plugin_bufsize), "realize",
-                           G_CALLBACK(on_output_plugin_bufsize_realize),
-                           NULL);
+
+    g_signal_connect (output_plugin_cbox, "changed", (GCallback) output_combo_changed, NULL);
+    g_signal_connect (output_config_button, "clicked", (GCallback) output_do_config, NULL);
+    g_signal_connect (output_about_button, "clicked", (GCallback) output_do_about, NULL);
+
+    return hbox1;
+}
+
+static void create_audio_category (void)
+{
+    GtkWidget * audio_page_vbox = gtk_vbox_new (FALSE, 0);
+    create_widgets ((GtkBox *) audio_page_vbox, audio_page_widgets, G_N_ELEMENTS (audio_page_widgets));
+    gtk_container_add ((GtkContainer *) category_notebook, audio_page_vbox);
 }
 
 static void
@@ -1785,17 +1598,17 @@ static void create_plugin_category (void)
     GtkWidget * notebook = gtk_notebook_new ();
     gtk_container_add ((GtkContainer *) category_notebook, notebook);
 
-    gint types[] = {PLUGIN_TYPE_TRANSPORT, PLUGIN_TYPE_PLAYLIST,
+    int types[] = {PLUGIN_TYPE_TRANSPORT, PLUGIN_TYPE_PLAYLIST,
      PLUGIN_TYPE_INPUT, PLUGIN_TYPE_EFFECT, PLUGIN_TYPE_VIS, PLUGIN_TYPE_GENERAL};
-    const gchar * names[] = {N_("Transport"), N_("Playlist"), N_("Input"),
+    const char * names[] = {N_("Transport"), N_("Playlist"), N_("Input"),
      N_("Effect"), N_("Visualization"), N_("General")};
 
-    for (gint i = 0; i < G_N_ELEMENTS (types); i ++)
+    for (int i = 0; i < G_N_ELEMENTS (types); i ++)
         gtk_notebook_append_page ((GtkNotebook *) notebook, plugin_view_new
          (types[i]), gtk_label_new (_(names[i])));
 }
 
-static gboolean
+static bool_t
 prefswin_destroy(GtkWidget *window, GdkEvent *event, gpointer data)
 {
     prefswin = NULL;
@@ -1809,7 +1622,7 @@ prefswin_destroy(GtkWidget *window, GdkEvent *event, gpointer data)
 /* GtkWidget * * create_prefs_window (void) */
 void * * create_prefs_window (void)
 {
-    gchar *aud_version_string;
+    char *aud_version_string;
 
     GtkWidget *vbox;
     GtkWidget *hbox1;
@@ -1839,13 +1652,13 @@ void * * create_prefs_window (void)
     gtk_box_pack_start (GTK_BOX (vbox), hbox1, TRUE, TRUE, 0);
 
     scrolledwindow6 = gtk_scrolled_window_new (NULL, NULL);
-    gtk_box_pack_start (GTK_BOX (hbox1), scrolledwindow6, TRUE, TRUE, 0);
+    gtk_box_pack_start (GTK_BOX (hbox1), scrolledwindow6, FALSE, FALSE, 0);
     gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow6), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
     gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow6), GTK_SHADOW_IN);
 
     category_treeview = gtk_tree_view_new ();
     gtk_container_add (GTK_CONTAINER (scrolledwindow6), category_treeview);
-    gtk_widget_set_size_request (category_treeview, 172, -1);
+    gtk_widget_set_size_request (scrolledwindow6, 168, -1);
     gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (category_treeview), FALSE);
 
     category_notebook = gtk_notebook_new ();
@@ -1856,10 +1669,7 @@ void * * create_prefs_window (void)
     gtk_notebook_set_show_border (GTK_NOTEBOOK (category_notebook), FALSE);
     gtk_notebook_set_scrollable (GTK_NOTEBOOK (category_notebook), TRUE);
 
-
-
     create_audio_category();
-    create_replay_gain_category();
     create_connectivity_category();
     create_playlist_category();
     create_plugin_category();
@@ -1903,14 +1713,12 @@ void * * create_prefs_window (void)
                              prefswin);
 
     /* create category view */
-    on_category_treeview_realize ((GtkTreeView *) category_treeview,
-     (GtkNotebook *) category_notebook);
+    fill_category_list ((GtkTreeView *) category_treeview, (GtkNotebook *) category_notebook);
 
     /* audacious version label */
 
     aud_version_string = g_strdup_printf
-     ("<span size='small'>%s (%s)</span>", "Audacious " PACKAGE_VERSION,
-     BUILDSTAMP);
+     ("<span size='small'>%s (%s)</span>", "Audacious " VERSION, BUILDSTAMP);
 
     gtk_label_set_markup( GTK_LABEL(audversionlabel) , aud_version_string );
     g_free(aud_version_string);
@@ -1925,10 +1733,12 @@ destroy_prefs_window(void)
     prefswin_destroy(prefswin, NULL, NULL);
 }
 
-void
-show_prefs_window(void)
+void show_prefs_window (void)
 {
-    gtk_window_present(GTK_WINDOW(prefswin)); /* show or raise prefs window */
+    if (! prefswin)
+        create_prefs_window ();
+
+    gtk_window_present ((GtkWindow *) prefswin);
 }
 
 void
@@ -1938,8 +1748,8 @@ hide_prefs_window(void)
     gtk_widget_hide(GTK_WIDGET(prefswin));
 }
 
-static void prefswin_page_queue_new (GtkWidget * container, const gchar * name,
- const gchar * imgurl)
+static void prefswin_page_queue_new (GtkWidget * container, const char * name,
+ const char * imgurl)
 {
     CategoryQueueEntry *ent = g_new0(CategoryQueueEntry, 1);
 
@@ -1971,16 +1781,16 @@ prefswin_page_queue_destroy(CategoryQueueEntry *ent)
  *
  *    - nenolod
  */
-/* gint prefswin_page_new (GtkWidget * container, const gchar * name,
- const gchar * imgurl) */
-gint prefswin_page_new (void * container, const gchar * name, const gchar *
+/* int prefswin_page_new (GtkWidget * container, const char * name,
+ const char * imgurl) */
+int prefswin_page_new (void * container, const char * name, const char *
  imgurl)
 {
     GtkTreeModel *model;
     GtkTreeIter iter;
     GdkPixbuf *img = NULL;
     GtkTreeView *treeview = GTK_TREE_VIEW(category_treeview);
-    gint id;
+    int id;
 
     if (treeview == NULL || category_notebook == NULL)
     {
@@ -2024,9 +1834,9 @@ prefswin_page_destroy(GtkWidget *container)
     GtkTreeModel *model;
     GtkTreeIter iter;
     GtkTreeView *treeview = GTK_TREE_VIEW(category_treeview);
-    gboolean ret;
-    gint id;
-    gint index = -1;
+    bool_t ret;
+    int id;
+    int index = -1;
 
     if (category_notebook == NULL || treeview == NULL || container == NULL)
         return;
@@ -2068,12 +1878,12 @@ prefswin_page_destroy(GtkWidget *container)
 
 static void sw_volume_toggled (void)
 {
-    gint vol[2];
+    int vol[2];
 
-    if (cfg.software_volume_control)
+    if (get_bool (NULL, "software_volume_control"))
     {
-        vol[0] = cfg.sw_volume_left;
-        vol[1] = cfg.sw_volume_right;
+        vol[0] = get_int (NULL, "sw_volume_left");
+        vol[1] = get_int (NULL, "sw_volume_right");
     }
     else
         playback_get_volume (& vol[0], & vol[1]);
diff --git a/src/audacious/ui_preferences.h b/src/audacious/ui_preferences.h
index c41a62f..21a01bb 100644
--- a/src/audacious/ui_preferences.h
+++ b/src/audacious/ui_preferences.h
@@ -20,7 +20,6 @@
 #ifndef AUDACIOUS_UI_PREFERENCES_H
 #define AUDACIOUS_UI_PREFERENCES_H
 
-#include <glib.h>
 #include <gtk/gtk.h>
 
 #include "preferences.h"
@@ -31,9 +30,9 @@ void destroy_prefs_window(void);
 void show_prefs_window(void);
 void hide_prefs_window(void);
 
-/* gint prefswin_page_new (GtkWidget * container, const gchar * name,
- const gchar * imgurl); */
-gint prefswin_page_new (void * container, const gchar * name, const gchar *
+/* int prefswin_page_new (GtkWidget * container, const char * name,
+ const char * imgurl); */
+int prefswin_page_new (void * container, const char * name, const char *
  imgurl);
 void prefswin_page_destroy(GtkWidget *container);
 
@@ -41,6 +40,6 @@ void plugin_preferences_show (PluginPreferences * p);
 void plugin_preferences_cleanup (PluginPreferences * p);
 
 /* plugin-view.c */
-GtkWidget * plugin_view_new (gint type);
+GtkWidget * plugin_view_new (int type);
 
 #endif /* AUDACIOUS_UI_PREFERENCES_H */
diff --git a/src/audacious/util.c b/src/audacious/util.c
index 2c2445b..96c1492 100644
--- a/src/audacious/util.c
+++ b/src/audacious/util.c
@@ -23,7 +23,8 @@
  *  Audacious or using our public API to be a derived work.
  */
 
-#include <limits.h>
+#include <dirent.h>
+#include <sys/stat.h>
 #include <unistd.h>
 
 #ifdef _WIN32
@@ -41,108 +42,66 @@
 
 #include <errno.h>
 
-#ifdef HAVE_FTS_H
-#  include <sys/types.h>
-#  include <sys/stat.h>
-#  include <fts.h>
-#endif
-
 #include <libaudcore/audstrings.h>
-#include <libaudcore/stringpool.h>
 
-#include "audconfig.h"
 #include "debug.h"
 #include "i18n.h"
 #include "misc.h"
 #include "plugins.h"
 #include "util.h"
 
-gboolean
-dir_foreach(const gchar * path, DirForeachFunc function,
-            gpointer user_data, GError ** error)
+bool_t dir_foreach (const char * path, DirForeachFunc func, void * user)
 {
-    GError *error_out = NULL;
-    GDir *dir;
-    const gchar *entry;
-    gchar *entry_fullpath;
-
-    if (!(dir = g_dir_open(path, 0, &error_out))) {
-        g_propagate_error(error, error_out);
+    DIR * dir = opendir (path);
+    if (! dir)
         return FALSE;
-    }
 
-    while ((entry = g_dir_read_name(dir))) {
-        entry_fullpath = g_build_filename(path, entry, NULL);
+    struct dirent * entry;
+    while ((entry = readdir (dir)))
+    {
+        if (entry->d_name[0] == '.')
+            continue;
 
-        if ((*function) (entry_fullpath, entry, user_data)) {
-            g_free(entry_fullpath);
-            break;
-        }
+        char * full = g_strdup_printf ("%s" G_DIR_SEPARATOR_S "%s", path, entry->d_name);
+        bool_t stop = func (full, entry->d_name, user);
+        g_free (full);
 
-        g_free(entry_fullpath);
+        if (stop)
+            break;
     }
 
-    g_dir_close(dir);
-
+    closedir (dir);
     return TRUE;
 }
 
-/**
- * util_get_localdir:
- *
- * Returns a string with the full path of Audacious local datadir (where config files are placed).
- * It's useful in order to put in the right place custom config files for audacious plugins.
- *
- * Return value: a string with full path of Audacious local datadir (should be freed after use)
- **/
-gchar*
-util_get_localdir(void)
+char * construct_uri (const char * string, const char * playlist_name)
 {
-  gchar *datadir;
-  gchar *tmp;
+    /* URI */
+    if (strstr (string, "://"))
+        return strdup (string);
 
-  if ( (tmp = getenv("XDG_CONFIG_HOME")) == NULL )
-    datadir = g_build_filename( g_get_home_dir() , ".config" , "audacious" ,  NULL );
-  else
-    datadir = g_build_filename( tmp , "audacious" , NULL );
-
-  return datadir;
-}
-
-
-gchar * construct_uri (const gchar * string, const gchar * playlist_name)
-{
-    gchar *filename = g_strdup(string);
-    gchar *uri = NULL;
-
-    /* try to translate dos path */
-    convert_dos_path(filename); /* in place replacement */
-
-    // make full path uri here
-    // case 1: filename is raw full path or uri
-    if (filename[0] == '/' || strstr(filename, "://")) {
-        uri = g_filename_to_uri(filename, NULL, NULL);
-        if(!uri)
-            uri = g_strdup(filename);
-    }
-    // case 2: filename is not raw full path nor uri
-    // make full path by replacing last part of playlist path with filename.
-    else
-    {
-        const gchar * fslash = strrchr (filename, '/');
-        const gchar * pslash = strrchr (playlist_name, '/');
+    /* absolute filename (assumed UTF-8) */
+#ifdef _WIN32
+    if (string[0] && string[1] == ':' && string[2] == '\\')
+#else
+    if (string[0] == '/')
+#endif
+        return filename_to_uri (string);
 
-        if (pslash)
-            uri = g_strdup_printf ("%.*s/%s", (gint) (pslash - playlist_name),
-             playlist_name, fslash ? fslash + 1 : filename);
-    }
+    /* relative filename (assumed UTF-8) */
+    const char * slash = strrchr (playlist_name, '/');
+    if (! slash)
+        return NULL;
 
-    g_free (filename);
-    return uri;
+    int pathlen = slash + 1 - playlist_name;
+    char buf[pathlen + 3 * strlen (string) + 1];
+    memcpy (buf, playlist_name, pathlen);
+    str_encode_percent (string, -1, buf + pathlen);
+    return strdup (buf);
 }
 
 /* local files -- not URI's */
-gint file_get_mtime (const gchar * filename)
+int file_get_mtime (const char * filename)
 {
     struct stat info;
 
@@ -153,7 +112,7 @@ gint file_get_mtime (const gchar * filename)
 }
 
 void
-make_directory(const gchar * path, mode_t mode)
+make_directory(const char * path, mode_t mode)
 {
     if (g_mkdir_with_parents(path, mode) == 0)
         return;
@@ -162,79 +121,117 @@ make_directory(const gchar * path, mode_t mode)
                g_strerror(errno));
 }
 
-gchar * get_path_to_self (void)
+char * write_temp_file (void * data, int64_t len)
 {
-    gchar buf[PATH_MAX];
-    gint len;
+    char * name = g_strdup_printf ("%s/audacious-temp-XXXXXX", g_get_tmp_dir ());
 
-#ifdef _WIN32
-    if (! (len = GetModuleFileName (NULL, buf, sizeof buf)) || len == sizeof buf)
+    int handle = g_mkstemp (name);
+    if (handle < 0)
     {
-        fprintf (stderr, "GetModuleFileName failed.\n");
+        fprintf (stderr, "Error creating temporary file: %s\n", strerror (errno));
+        g_free (name);
         return NULL;
     }
-#else
-    if ((len = readlink ("/proc/self/exe", buf, sizeof buf)) < 0)
+
+    while (len)
+    {
+        int64_t written = write (handle, data, len);
+        if (written < 0)
+        {
+            fprintf (stderr, "Error writing %s: %s\n", name, strerror (errno));
+            close (handle);
+            g_free (name);
+            return NULL;
+        }
+
+        data += written;
+        len -= written;
+    }
+
+    if (close (handle) < 0)
     {
-        fprintf (stderr, "Cannot access /proc/self/exe: %s.\n", strerror (errno));
+        fprintf (stderr, "Error closing %s: %s\n", name, strerror (errno));
+        g_free (name);
         return NULL;
     }
-#endif
 
-    return g_strndup (buf, len);
+    return name;
 }
 
-#define URL_HISTORY_MAX_SIZE 30
-
-void
-util_add_url_history_entry(const gchar * url)
+char * get_path_to_self (void)
 {
-    if (g_list_find_custom(cfg.url_history, url, (GCompareFunc) strcasecmp))
-        return;
+#if defined _WIN32 || defined HAVE_PROC_SELF_EXE
+    int size = 256;
+    char * buf = g_malloc (size);
 
-    cfg.url_history = g_list_prepend(cfg.url_history, g_strdup(url));
+    while (1)
+    {
+        int len;
 
-    while (g_list_length(cfg.url_history) > URL_HISTORY_MAX_SIZE) {
-        GList *node = g_list_last(cfg.url_history);
-        g_free(node->data);
-        cfg.url_history = g_list_delete_link(cfg.url_history, node);
+#ifdef _WIN32
+        if (! (len = GetModuleFileName (NULL, buf, size)))
+        {
+            fprintf (stderr, "GetModuleFileName failed.\n");
+            g_free (buf);
+            return NULL;
+        }
+#else
+        if ((len = readlink ("/proc/self/exe", buf, size)) < 0)
+        {
+            fprintf (stderr, "Cannot access /proc/self/exe: %s.\n", strerror (errno));
+            g_free (buf);
+            return NULL;
+        }
+#endif
+
+        if (len < size)
+        {
+            buf[len] = 0;
+            return buf;
+        }
+
+        size += size;
+        buf = g_realloc (buf, size);
     }
+#else
+    return NULL;
+#endif
 }
 
-/* Strips various common top-level folders from a file name (not URI).  The
- * string passed will not be modified, but the string returned will share the
- * same memory.  Examples:
- *     "/home/john/folder/file.mp3"    -> "folder/file.mp3"
- *     "/folder/file.mp3"              -> "folder/file.mp3"
- *     "C:\Users\John\folder\file.mp3" -> "folder\file.mp3"
- *     "E:\folder\file.mp3"            -> "folder\file.mp3" */
+/* Strips various common top-level folders from a URI.  The string passed will
+ * not be modified, but the string returned will share the same memory.
+ * Examples:
+ *     "file:///home/john/folder/file.mp3" -> "folder/file.mp3"
+ *     "file:///folder/file.mp3"           -> "folder/file.mp3" */
 
-static gchar * skip_top_folders (gchar * name)
+static char * skip_top_folders (char * name)
 {
-    const gchar * home = getenv ("HOME");
+    static char * home;
+    static int len;
+
     if (! home)
-        goto NO_HOME;
+    {
+        home = filename_to_uri (g_get_home_dir ());
+        len = strlen (home);
 
-    gint len = strlen (home);
-    if (len > 0 && home[len - 1] == G_DIR_SEPARATOR)
-        len --;
+        if (len > 0 && home[len - 1] == '/')
+            len --;
+    }
 
 #ifdef _WIN32
-    if (! strncasecmp (name, home, len) && name[len] == '\\')
+    if (! g_ascii_strncasecmp (name, home, len) && name[len] == '/')
 #else
     if (! strncmp (name, home, len) && name[len] == '/')
 #endif
         return name + len + 1;
 
-NO_HOME:
-#ifdef _WIN32
-    return (name[0] && name[1] == ':' && name[2] == '\\') ? name + 3 : name;
-#else
-    return (name[0] == '/') ? name + 1 : name;
-#endif
+    if (! strncmp (name, "file:///", 8))
+        return name + 8;
+
+    return name;
 }
 
-/* Divides a file name (not URI) into the base name, the lowest folder, and the
+/* Divides a URI into the base name, the lowest folder, and the
  * second lowest folder.  The string passed will be modified, and the strings
  * returned will use the same memory.  May return NULL for <first> and <second>.
  * Examples:
@@ -242,14 +239,14 @@ NO_HOME:
  *     "d/e.mp3"       -> "e", "d",  NULL
  *     "e.mp3"         -> "e", NULL, NULL */
 
-static void split_filename (gchar * name, gchar * * base, gchar * * first,
- gchar * * second)
+static void split_filename (char * name, char * * base, char * * first,
+ char * * second)
 {
     * first = * second = NULL;
 
-    gchar * c;
+    char * c;
 
-    if ((c = strrchr (name, G_DIR_SEPARATOR)))
+    if ((c = strrchr (name, '/')))
     {
         * base = c + 1;
         * c = 0;
@@ -260,7 +257,7 @@ static void split_filename (gchar * name, gchar * * base, gchar * * first,
         goto DONE;
     }
 
-    if ((c = strrchr (name, G_DIR_SEPARATOR)))
+    if ((c = strrchr (name, '/')))
     {
         * first = c + 1;
         * c = 0;
@@ -271,7 +268,7 @@ static void split_filename (gchar * name, gchar * * base, gchar * * first,
         goto DONE;
     }
 
-    if ((c = strrchr (name, G_DIR_SEPARATOR)))
+    if ((c = strrchr (name, '/')))
         * second = c + 1;
     else
         * second = name;
@@ -287,7 +284,7 @@ DONE:
  *     "http://some.domain.org/folder/file.mp3" -> "some.domain.org"
  *     "http://some.stream.fm:8000"             -> "some.stream.fm" */
 
-static gchar * stream_name (gchar * name)
+static char * stream_name (char * name)
 {
     if (! strncmp (name, "http://", 7))
         name += 7;
@@ -298,7 +295,7 @@ static gchar * stream_name (gchar * name)
     else
         return NULL;
 
-    gchar * c;
+    char * c;
 
     if ((c = strchr (name, '/')))
         * c = 0;
@@ -310,47 +307,66 @@ static gchar * stream_name (gchar * name)
     return name;
 }
 
-/* Derives best guesses of title, artist, and album from a file name (URI) and
- * tuple.  The returned strings are stringpooled or NULL. */
+static char * get_nonblank_field (const Tuple * tuple, int field)
+{
+    char * str = tuple ? tuple_get_str (tuple, field, NULL) : NULL;
+
+    if (str && ! str[0])
+    {
+        str_unref (str);
+        str = NULL;
+    }
+
+    return str;
+}
 
-void describe_song (const gchar * name, const Tuple * tuple, gchar * * _title,
- gchar * * _artist, gchar * * _album)
+static char * str_get_decoded (char * str)
 {
-    /* Common folder names to skip */
-    static const gchar * const skip[] = {"music"};
+    if (! str)
+        return NULL;
 
-    const gchar * title = tuple_get_string (tuple, FIELD_TITLE, NULL);
-    const gchar * artist = tuple_get_string (tuple, FIELD_ARTIST, NULL);
-    const gchar * album = tuple_get_string (tuple, FIELD_ALBUM, NULL);
+    str_decode_percent (str, -1, str);
+    return str_get (str);
+}
+
+/* Derives best guesses of title, artist, and album from a file name (URI) and
+ * tuple (which may be NULL).  The returned strings are stringpooled or NULL. */
 
-    if (title && ! title[0])
-        title = NULL;
-    if (artist && ! artist[0])
-        artist = NULL;
-    if (album && ! album[0])
-        album = NULL;
+void describe_song (const char * name, const Tuple * tuple, char * * _title,
+ char * * _artist, char * * _album)
+{
+    /* Common folder names to skip */
+    static const char * const skip[] = {"music"};
 
-    gchar * copy = NULL;
+    char * title = get_nonblank_field (tuple, FIELD_TITLE);
+    char * artist = get_nonblank_field (tuple, FIELD_ARTIST);
+    char * album = get_nonblank_field (tuple, FIELD_ALBUM);
 
     if (title && artist && album)
-        goto DONE;
+    {
+DONE:
+        * _title = title;
+        * _artist = artist;
+        * _album = album;
+        return;
+    }
 
-    copy = uri_to_display (name);
+    char buf[strlen (name) + 1];
+    memcpy (buf, name, sizeof buf);
 
-    if (! strncmp (name, "file://", 7))
+    if (! strncmp (buf, "file:///", 8))
     {
-        gchar * base, * first, * second;
-        split_filename (skip_top_folders (copy), & base, & first,
-         & second);
+        char * base, * first, * second;
+        split_filename (skip_top_folders (buf), & base, & first, & second);
 
         if (! title)
-            title = base;
+            title = str_get_decoded (base);
 
-        for (gint i = 0; i < G_N_ELEMENTS (skip); i ++)
+        for (int i = 0; i < G_N_ELEMENTS (skip); i ++)
         {
-            if (first && ! strcasecmp (first, skip[i]))
+            if (first && ! g_ascii_strcasecmp (first, skip[i]))
                 first = NULL;
-            if (second && ! strcasecmp (second, skip[i]))
+            if (second && ! g_ascii_strcasecmp (second, skip[i]))
                 second = NULL;
         }
 
@@ -358,29 +374,29 @@ void describe_song (const gchar * name, const Tuple * tuple, gchar * * _title,
         {
             if (second && ! artist && ! album)
             {
-                artist = second;
-                album = first;
+                artist = str_get_decoded (second);
+                album = str_get_decoded (first);
             }
             else if (! artist)
-                artist = first;
+                artist = str_get_decoded (first);
             else if (! album)
-                album = first;
+                album = str_get_decoded (first);
         }
     }
     else
     {
         if (! title)
-            title = stream_name (copy);
+        {
+            title = str_get_decoded (stream_name (buf));
+
+            if (! title)
+                title = str_get_decoded (buf);
+        }
         else if (! artist)
-            artist = stream_name (copy);
+            artist = str_get_decoded (stream_name (buf));
         else if (! album)
-            album = stream_name (copy);
+            album = str_get_decoded (stream_name (buf));
     }
 
-DONE:
-    * _title = title ? stringpool_get ((gchar *) title, FALSE) : NULL;
-    * _artist = artist ? stringpool_get ((gchar *) artist, FALSE) : NULL;
-    * _album = album ? stringpool_get ((gchar *) album, FALSE) : NULL;
-
-    g_free (copy);
+    goto DONE;
 }
diff --git a/src/audacious/util.h b/src/audacious/util.h
index f5edf24..a42a453 100644
--- a/src/audacious/util.h
+++ b/src/audacious/util.h
@@ -27,21 +27,21 @@
 #define AUDACIOUS_UTIL_H
 
 #include <sys/types.h>
-#include <glib.h>
+#include <libaudcore/core.h>
 
-typedef gboolean(*DirForeachFunc) (const gchar * path,
-                                   const gchar * basename,
+typedef bool_t(*DirForeachFunc) (const char * path,
+                                   const char * basename,
                                    gpointer user_data);
 
-gboolean dir_foreach(const gchar * path, DirForeachFunc function,
-                     gpointer user_data, GError ** error);
+bool_t dir_foreach (const char * path, DirForeachFunc func, void * user_data);
 
-gint file_get_mtime (const gchar * filename);
-void make_directory(const gchar * path, mode_t mode);
+int file_get_mtime (const char * filename);
+void make_directory(const char * path, mode_t mode);
+char * write_temp_file (void * data, int64_t len);
 
-gchar * get_path_to_self (void);
+char * get_path_to_self (void);
 
-void describe_song (const gchar * filename, const Tuple * tuple,
- gchar * * title, gchar * * artist, gchar * * album);
+void describe_song (const char * filename, const Tuple * tuple,
+ char * * title, char * * artist, char * * album);
 
 #endif /* AUDACIOUS_UTIL_H */
diff --git a/src/audacious/vis_runner.c b/src/audacious/vis_runner.c
index a82e5f7..a4a6e95 100644
--- a/src/audacious/vis_runner.c
+++ b/src/audacious/vis_runner.c
@@ -1,6 +1,6 @@
 /*
  * vis_runner.c
- * Copyright 2009-2010 John Lindgren
+ * Copyright 2009-2011 John Lindgren
  *
  * This file is part of Audacious.
  *
@@ -20,38 +20,46 @@
  */
 
 #include <glib.h>
-#include <libaudcore/hook.h>
+#include <pthread.h>
+#include <string.h>
 
-#include "glib-compat.h"
-#include "misc.h"
 #include "output.h"
 #include "vis_runner.h"
+#include "visualization.h"
 
 #define INTERVAL 30 /* milliseconds */
 
 typedef struct {
-    VisHookFunc func;
-    void * user;
-} VisHookItem;
-
-G_LOCK_DEFINE_STATIC (mutex);
-static gboolean playing = FALSE, paused = FALSE, active = FALSE;
-static GList * hooks = NULL;
+    int time;
+    float * data;
+    int channels;
+} VisNode;
+
+static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
+static bool_t enabled = FALSE;
+static bool_t playing = FALSE, paused = FALSE, active = FALSE;
 static VisNode * current_node = NULL;
+static int current_frames;
 static GQueue vis_list = G_QUEUE_INIT;
-static gint send_source = 0, clear_source = 0;
+static int send_source = 0, clear_source = 0;
+
+static void vis_node_free (VisNode * node)
+{
+    g_free (node->data);
+    g_free (node);
+}
 
-static gboolean send_audio (void * unused)
+static bool_t send_audio (void * unused)
 {
-    G_LOCK (mutex);
+    pthread_mutex_lock (& mutex);
 
     if (! send_source)
     {
-        G_UNLOCK (mutex);
+        pthread_mutex_unlock (& mutex);
         return FALSE;
     }
 
-    gint outputted = get_raw_output_time ();
+    int outputted = get_raw_output_time ();
 
     VisNode * vis_node = NULL;
     VisNode * next;
@@ -65,69 +73,73 @@ static gboolean send_audio (void * unused)
         if (next->time > outputted + (vis_node ? 0 : INTERVAL))
             break;
 
-        g_free (vis_node);
+        if (vis_node)
+            vis_node_free (vis_node);
+
         vis_node = g_queue_pop_head (& vis_list);
     }
 
-    G_UNLOCK (mutex);
+    pthread_mutex_unlock (& mutex);
 
     if (! vis_node)
         return TRUE;
 
-    for (GList * node = hooks; node; node = node->next)
-    {
-        VisHookItem * item = node->data;
-        item->func (vis_node, item->user);
-    }
+    vis_send_audio (vis_node->data, vis_node->channels);
 
-    g_free (vis_node);
+    vis_node_free (vis_node);
     return TRUE;
 }
 
-static gboolean send_clear (void * unused)
+static bool_t send_clear (void * unused)
 {
-    G_LOCK (mutex);
+    pthread_mutex_lock (& mutex);
     clear_source = 0;
-    G_UNLOCK (mutex);
+    pthread_mutex_unlock (& mutex);
+
+    vis_send_clear ();
 
-    hook_call ("visualization clear", NULL);
     return FALSE;
 }
 
-static gboolean locked = FALSE;
+static bool_t locked = FALSE;
 
 void vis_runner_lock (void)
 {
-    G_LOCK (mutex);
+    pthread_mutex_lock (& mutex);
     locked = TRUE;
 }
 
 void vis_runner_unlock (void)
 {
     locked = FALSE;
-    G_UNLOCK (mutex);
+    pthread_mutex_unlock (& mutex);
 }
 
-gboolean vis_runner_locked (void)
+bool_t vis_runner_locked (void)
 {
     return locked;
 }
 
 void vis_runner_flush (void)
 {
-    g_free (current_node);
-    current_node = NULL;
-    g_queue_foreach (& vis_list, (GFunc) g_free, NULL);
+    if (current_node)
+    {
+        vis_node_free (current_node);
+        current_node = NULL;
+    }
+
+    g_queue_foreach (& vis_list, (GFunc) vis_node_free, NULL);
     g_queue_clear (& vis_list);
 
-    clear_source = g_timeout_add (0, send_clear, NULL);
+    if (! clear_source)
+        clear_source = g_timeout_add (0, send_clear, NULL);
 }
 
-void vis_runner_start_stop (gboolean new_playing, gboolean new_paused)
+void vis_runner_start_stop (bool_t new_playing, bool_t new_paused)
 {
     playing = new_playing;
     paused = new_paused;
-    active = playing && hooks;
+    active = playing && enabled;
 
     if (send_source)
     {
@@ -147,31 +159,42 @@ void vis_runner_start_stop (gboolean new_playing, gboolean new_paused)
         send_source = g_timeout_add (INTERVAL, send_audio, NULL);
 }
 
-void vis_runner_pass_audio (gint time, gfloat * data, gint samples, gint
- channels, gint rate)
+void vis_runner_pass_audio (int time, float * data, int samples, int
+ channels, int rate)
 {
     if (! active)
         return;
 
-    if (current_node && current_node->nch != MIN (channels, 2))
+    /* We can build a single node from multiple calls; we can also build
+     * multiple nodes from the same call.  If current_node is present, it was
+     * partly built in the last call and needs to be finished. */
+
+    if (current_node && current_node->channels != channels)
     {
-        g_free (current_node);
+        vis_node_free (current_node);
         current_node = NULL;
     }
 
-    gint at = 0;
+    int at = 0;
 
     while (1)
     {
         if (! current_node)
         {
-            gint node_time = time;
+            int node_time = time;
             VisNode * last;
 
+            /* There is no partly-built node, so start a new one.  Normally
+             * there will be nodes in the queue already; if so, we want to copy
+             * audio data from the signal starting at 30 milliseconds after the
+             * beginning of the most recent node.  If there are no nodes in the
+             * queue, we are at the beginning of the song or had an underrun,
+             * and we want to copy the earliest audio data we have. */
+
             if ((last = g_queue_peek_tail (& vis_list)))
                 node_time = last->time + INTERVAL;
 
-            at = channels * (gint) ((gint64) (node_time - time) * rate / 1000);
+            at = channels * (int) ((int64_t) (node_time - time) * rate / 1000);
 
             if (at < 0)
                 at = 0;
@@ -180,29 +203,21 @@ void vis_runner_pass_audio (gint time, gfloat * data, gint samples, gint
 
             current_node = g_malloc (sizeof (VisNode));
             current_node->time = node_time;
-            current_node->nch = MIN (channels, 2);
-            current_node->length = 0;
+            current_node->data = g_malloc (sizeof (float) * channels * 512);
+            current_node->channels = channels;
+            current_frames = 0;
         }
 
-        gint copy = MIN (samples - at, channels * (512 - current_node->length));
+        /* Copy as much data as we can, limited by how much we have and how much
+         * space is left in the node.  If we cannot fill the node, we return and
+         * wait for more data to be passed in the next call.  If we do fill the
+         * node, we loop and start building a new one. */
 
-        for (gint channel = 0; channel < current_node->nch; channel ++)
-        {
-            gfloat * from = data + at + channel;
-            gfloat * end = from + copy;
-            gint16 * to = current_node->data[channel] + current_node->length;
-
-            while (from < end)
-            {
-                register gfloat temp = * from;
-                * to ++ = CLAMP (temp, -1, 1) * 32767;
-                from += channels;
-            }
-        }
-
-        current_node->length += copy / channels;
+        int copy = MIN (samples - at, channels * (512 - current_frames));
+        memcpy (current_node->data + channels * current_frames, data + at, sizeof (float) * copy);
+        current_frames += copy / channels;
 
-        if (current_node->length < 512)
+        if (current_frames < 512)
             break;
 
         g_queue_push_tail (& vis_list, current_node);
@@ -215,7 +230,7 @@ static void time_offset_cb (VisNode * vis_node, void * offset)
     vis_node->time += GPOINTER_TO_INT (offset);
 }
 
-void vis_runner_time_offset (gint offset)
+void vis_runner_time_offset (int offset)
 {
     if (current_node)
         current_node->time += offset;
@@ -223,33 +238,10 @@ void vis_runner_time_offset (gint offset)
     g_queue_foreach (& vis_list, (GFunc) time_offset_cb, GINT_TO_POINTER (offset));
 }
 
-void vis_runner_add_hook (VisHookFunc func, void * user)
-{
-    G_LOCK (mutex);
-
-    VisHookItem * item = g_malloc (sizeof (VisHookItem));
-    item->func = func;
-    item->user = user;
-    hooks = g_list_prepend (hooks, item);
-
-    vis_runner_start_stop (playing, paused);
-    G_UNLOCK (mutex);
-}
-
-void vis_runner_remove_hook (VisHookFunc func)
+void vis_runner_enable (bool_t enable)
 {
-    G_LOCK (mutex);
-
-    for (GList * node = hooks; node; node = node->next)
-    {
-        if (((VisHookItem *) node->data)->func == func)
-        {
-            g_free (node->data);
-            hooks = g_list_delete_link (hooks, node);
-            break;
-        }
-    }
-
+    pthread_mutex_lock (& mutex);
+    enabled = enable;
     vis_runner_start_stop (playing, paused);
-    G_UNLOCK (mutex);
+    pthread_mutex_unlock (& mutex);
 }
diff --git a/src/audacious/vis_runner.h b/src/audacious/vis_runner.h
index 30d4e58..c2a2149 100644
--- a/src/audacious/vis_runner.h
+++ b/src/audacious/vis_runner.h
@@ -22,18 +22,22 @@
 #ifndef AUD_VIS_RUNNER_H
 #define AUD_VIS_RUNNER_H
 
+#include <libaudcore/core.h>
+
 /* When the decoder thread wants to send data to the vis runner, it must block
  * the vis timeout before blocking output functions; otherwise, the vis timeout
  * will hang up waiting for those output functions to be unblocked while the
  * decoder thread hangs up waiting for the vis timeout to finish. */
 void vis_runner_lock (void);
 void vis_runner_unlock (void);
-gboolean vis_runner_locked (void);
+bool_t vis_runner_locked (void);
 
-void vis_runner_start_stop (gboolean playing, gboolean paused);
-void vis_runner_pass_audio (gint time, gfloat * data, gint samples, gint
- channels, gint rate);
-void vis_runner_time_offset (gint offset);
+void vis_runner_start_stop (bool_t playing, bool_t paused);
+void vis_runner_pass_audio (int time, float * data, int samples, int
+ channels, int rate);
+void vis_runner_time_offset (int offset);
 void vis_runner_flush (void);
 
+void vis_runner_enable (bool_t enable);
+
 #endif
diff --git a/src/audacious/visualization.c b/src/audacious/visualization.c
index 9310e8b..17f60c2 100644
--- a/src/audacious/visualization.c
+++ b/src/audacious/visualization.c
@@ -1,203 +1,126 @@
-/*  Audacious - Cross-platform multimedia player
- *  Copyright (C) 2005-2010  Audacious development team
+/*
+ * visualization.c
+ * Copyright 2010-2011 John Lindgren
  *
- *  Based on BMP:
- *  Copyright (C) 2003-2004  BMP development team
+ * This file is part of Audacious.
  *
- *  Based on XMMS:
- *  Copyright (C) 1998-2003  XMMS development team
+ * Audacious is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free Software
+ * Foundation, version 2 or version 3 of the License.
  *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; under version 3 of the License.
+ * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
+ * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
  *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License along with
+ * Audacious. If not, see <http://www.gnu.org/licenses/>.
  *
- *  You should have received a copy of the GNU General Public License
- *  along with this program.  If not, see <http://www.gnu.org/licenses>.
- *
- *  The Audacious team does not consider modular code linking to
- *  Audacious or using our public API to be a derived work.
+ * The Audacious team does not consider modular code linking to Audacious or
+ * using our public API to be a derived work.
  */
 
 #include <glib.h>
 #include <gtk/gtk.h>
-#include <math.h>
 #include <string.h>
 
-#include <libaudcore/hook.h>
-
 #include "debug.h"
 #include "fft.h"
 #include "interface.h"
 #include "misc.h"
-#include "playback.h"
 #include "plugin.h"
 #include "plugins.h"
 #include "ui_preferences.h"
 #include "visualization.h"
+#include "vis_runner.h"
+
+static GList * vis_funcs[AUD_VIS_TYPES];
 
 typedef struct {
     PluginHandle * plugin;
     VisPlugin * header;
     GtkWidget * widget;
-    gboolean started;
 } LoadedVis;
 
-static gint running = FALSE;
+static int running = FALSE;
 static GList * loaded_vis_plugins = NULL;
 
-void calc_stereo_pcm (VisPCMData dest, const VisPCMData src, gint nch)
+void vis_func_add (int type, GCallback func)
 {
-    memcpy(dest[0], src[0], 512 * sizeof(gint16));
-    if (nch == 1)
-        memcpy(dest[1], src[0], 512 * sizeof(gint16));
-    else
-        memcpy(dest[1], src[1], 512 * sizeof(gint16));
-}
+    g_return_if_fail (type >= 0 && type < AUD_VIS_TYPES);
+    vis_funcs[type] = g_list_prepend (vis_funcs[type], (void *) func);
 
-void calc_mono_pcm (VisPCMData dest, const VisPCMData src, gint nch)
-{
-    gint i;
-    gint16 *d;
-    const gint16 *sl, *sr;
-
-    if (nch == 1)
-        memcpy(dest[0], src[0], 512 * sizeof(gint16));
-    else {
-        d = dest[0];
-        sl = src[0];
-        sr = src[1];
-        for (i = 0; i < 512; i++) {
-            *(d++) = (*(sl++) + *(sr++)) >> 1;
-        }
-    }
+    vis_runner_enable (TRUE);
 }
 
-static void calc_freq (gint16 * dest, const gint16 * src)
+void vis_func_remove (GCallback func)
 {
-    static fft_state *state = NULL;
-    gfloat tmp_out[257];
-    gint i;
+    bool_t disable = TRUE;
 
-    if (!state)
-        state = fft_init();
-
-    fft_perform(src, tmp_out, state);
+    for (int i = 0; i < AUD_VIS_TYPES; i ++)
+    {
+        vis_funcs[i] = g_list_remove_all (vis_funcs[i], (void *) func);
+        if (vis_funcs[i])
+            disable = FALSE;
+    }
 
-    for (i = 0; i < 256; i++)
-        dest[i] = ((gint) sqrt(tmp_out[i + 1])) >> 8;
+    if (disable)
+        vis_runner_enable (FALSE);
 }
 
-void calc_mono_freq (VisFreqData dest, const VisPCMData src, gint nch)
+void vis_send_clear (void)
 {
-    gint i;
-    gint16 *d, tmp[512];
-    const gint16 *sl, *sr;
-
-    if (nch == 1)
-        calc_freq(dest[0], src[0]);
-    else {
-        d = tmp;
-        sl = src[0];
-        sr = src[1];
-        for (i = 0; i < 512; i++) {
-            *(d++) = (*(sl++) + *(sr++)) >> 1;
-        }
-        calc_freq(dest[0], tmp);
+    for (GList * node = vis_funcs[AUD_VIS_TYPE_CLEAR]; node; node = node->next)
+    {
+        void (* func) (void) = (void (*) (void)) node->data;
+        func ();
     }
 }
 
-void calc_stereo_freq (VisFreqData dest, const VisPCMData src, gint nch)
+static void pcm_to_mono (const float * data, float * mono, int channels)
 {
-    calc_freq(dest[0], src[0]);
-
-    if (nch == 2)
-        calc_freq(dest[1], src[1]);
+    if (channels == 1)
+        memcpy (mono, data, sizeof (float) * 512);
     else
-        memcpy(dest[1], dest[0], 256 * sizeof(gint16));
-}
-
-static void send_audio (const VisNode * vis_node)
-{
-    gint16 mono_freq[2][256], stereo_freq[2][256];
-    gboolean mono_freq_calced = FALSE, stereo_freq_calced = FALSE;
-    gint16 mono_pcm[2][512], stereo_pcm[2][512];
-    gboolean mono_pcm_calced = FALSE, stereo_pcm_calced = FALSE;
-
-    for (GList * node = loaded_vis_plugins; node != NULL; node = node->next)
     {
-        VisPlugin * vp = ((LoadedVis *) node->data)->header;
-
-        if (vp->num_pcm_chs_wanted > 0 && vp->render_pcm) {
-            if (vp->num_pcm_chs_wanted == 1) {
-                if (!mono_pcm_calced) {
-                    calc_mono_pcm(mono_pcm, vis_node->data, vis_node->nch);
-                    mono_pcm_calced = TRUE;
-                }
-                vp->render_pcm(mono_pcm);
-            }
-            else {
-                if (!stereo_pcm_calced) {
-                    calc_stereo_pcm(stereo_pcm, vis_node->data, vis_node->nch);
-                    stereo_pcm_calced = TRUE;
-                }
-                vp->render_pcm(stereo_pcm);
-            }
-        }
-        if (vp->num_freq_chs_wanted > 0 && vp->render_freq) {
-            if (vp->num_freq_chs_wanted == 1) {
-                if (!mono_freq_calced) {
-                    calc_mono_freq(mono_freq, vis_node->data, vis_node->nch);
-                    mono_freq_calced = TRUE;
-                }
-                vp->render_freq(mono_freq);
-            }
-            else {
-                if (!stereo_freq_calced) {
-                    calc_stereo_freq(stereo_freq, vis_node->data, vis_node->nch);
-                    stereo_freq_calced = TRUE;
-                }
-                vp->render_freq(stereo_freq);
-            }
+        float * set = mono;
+        while (set < & mono[512])
+        {
+            * set ++ = (data[0] + data[1]) / 2;
+            data += channels;
         }
     }
 }
 
-static void vis_start (LoadedVis * vis)
+void vis_send_audio (const float * data, int channels)
 {
-    if (vis->started)
-        return;
-    AUDDBG ("Starting %s.\n", plugin_get_name (vis->plugin));
-    if (vis->header->playback_start != NULL)
-        vis->header->playback_start ();
-    vis->started = TRUE;
-}
+    float mono[512];
+    float freq[256];
 
-static void vis_start_all (void)
-{
-    g_list_foreach (loaded_vis_plugins, (GFunc) vis_start, NULL);
-}
+    if (vis_funcs[AUD_VIS_TYPE_MONO_PCM] || vis_funcs[AUD_VIS_TYPE_FREQ])
+        pcm_to_mono (data, mono, channels);
+    if (vis_funcs[AUD_VIS_TYPE_FREQ])
+        calc_freq (mono, freq);
 
-static void vis_stop (LoadedVis * vis)
-{
-    if (! vis->started)
-        return;
-    AUDDBG ("Stopping %s.\n", plugin_get_name (vis->plugin));
-    if (vis->header->playback_stop != NULL)
-        vis->header->playback_stop ();
-    vis->started = FALSE;
-}
+    for (GList * node = vis_funcs[AUD_VIS_TYPE_MONO_PCM]; node; node = node->next)
+    {
+        void (* func) (const float *) = (void (*) (const float *)) node->data;
+        func (mono);
+    }
 
-static void vis_stop_all (void)
-{
-    g_list_foreach (loaded_vis_plugins, (GFunc) vis_stop, NULL);
+    for (GList * node = vis_funcs[AUD_VIS_TYPE_MULTI_PCM]; node; node = node->next)
+    {
+        void (* func) (const float *, int) = (void (*) (const float *, int)) node->data;
+        func (data, channels);
+    }
+
+    for (GList * node = vis_funcs[AUD_VIS_TYPE_FREQ]; node; node = node->next)
+    {
+        void (* func) (const float *) = (void (*) (const float *)) node->data;
+        func (freq);
+    }
 }
 
-static gint vis_find_cb (LoadedVis * vis, PluginHandle * plugin)
+static int vis_find_cb (LoadedVis * vis, PluginHandle * plugin)
 {
     return (vis->plugin == plugin) ? 0 : -1;
 }
@@ -217,7 +140,6 @@ static void vis_load (PluginHandle * plugin)
     vis->plugin = plugin;
     vis->header = header;
     vis->widget = NULL;
-    vis->started = FALSE;
 
     if (header->get_widget != NULL)
         vis->widget = header->get_widget ();
@@ -230,11 +152,14 @@ static void vis_load (PluginHandle * plugin)
         interface_add_plugin_widget (plugin, vis->widget);
     }
 
-    if (playback_get_playing ())
-        vis_start (vis);
-
-    if (loaded_vis_plugins == NULL)
-        vis_runner_add_hook ((VisHookFunc) send_audio, NULL);
+    if (PLUGIN_HAS_FUNC (header, clear))
+        vis_func_add (AUD_VIS_TYPE_CLEAR, (GCallback) header->clear);
+    if (PLUGIN_HAS_FUNC (header, render_mono_pcm))
+        vis_func_add (AUD_VIS_TYPE_MONO_PCM, (GCallback) header->render_mono_pcm);
+    if (PLUGIN_HAS_FUNC (header, render_multi_pcm))
+        vis_func_add (AUD_VIS_TYPE_MULTI_PCM, (GCallback) header->render_multi_pcm);
+    if (PLUGIN_HAS_FUNC (header, render_freq))
+        vis_func_add (AUD_VIS_TYPE_FREQ, (GCallback) header->render_freq);
 
     loaded_vis_plugins = g_list_prepend (loaded_vis_plugins, vis);
 }
@@ -250,8 +175,15 @@ static void vis_unload (PluginHandle * plugin)
     LoadedVis * vis = node->data;
     loaded_vis_plugins = g_list_delete_link (loaded_vis_plugins, node);
 
-    if (loaded_vis_plugins == NULL)
-        vis_runner_remove_hook ((VisHookFunc) send_audio);
+    VisPlugin * header = vis->header;
+    if (PLUGIN_HAS_FUNC (header, clear))
+        vis_func_remove ((GCallback) header->clear);
+    if (PLUGIN_HAS_FUNC (header, render_mono_pcm))
+        vis_func_remove ((GCallback) header->render_mono_pcm);
+    if (PLUGIN_HAS_FUNC (header, render_multi_pcm))
+        vis_func_remove ((GCallback) header->render_multi_pcm);
+    if (PLUGIN_HAS_FUNC (header, render_freq))
+        vis_func_remove ((GCallback) header->render_freq);
 
     if (vis->widget != NULL)
     {
@@ -263,7 +195,7 @@ static void vis_unload (PluginHandle * plugin)
     g_slice_free (LoadedVis, vis);
 }
 
-static gboolean vis_init_cb (PluginHandle * plugin)
+static bool_t vis_init_cb (PluginHandle * plugin)
 {
     vis_load (plugin);
     return TRUE;
@@ -275,9 +207,6 @@ void vis_init (void)
     running = TRUE;
 
     plugin_for_enabled (PLUGIN_TYPE_VIS, (PluginForEachFunc) vis_init_cb, NULL);
-
-    hook_associate ("playback begin", (HookFunction) vis_start_all, NULL);
-    hook_associate ("playback stop", (HookFunction) vis_stop_all, NULL);
 }
 
 static void vis_cleanup_cb (LoadedVis * vis)
@@ -290,13 +219,10 @@ void vis_cleanup (void)
     g_return_if_fail (running);
     running = FALSE;
 
-    hook_dissociate ("playback begin", (HookFunction) vis_start_all);
-    hook_dissociate ("playback stop", (HookFunction) vis_stop_all);
-
     g_list_foreach (loaded_vis_plugins, (GFunc) vis_cleanup_cb, NULL);
 }
 
-gboolean vis_plugin_start (PluginHandle * plugin)
+bool_t vis_plugin_start (PluginHandle * plugin)
 {
     VisPlugin * vp = plugin_get_header (plugin);
     g_return_val_if_fail (vp != NULL, FALSE);
@@ -334,6 +260,6 @@ PluginHandle * vis_plugin_by_widget (/* GtkWidget * */ void * widget)
         if (vis->widget == widget)
             return vis->plugin;
     }
-    
+
     return NULL;
 }
diff --git a/src/audacious/visualization.h b/src/audacious/visualization.h
index f84cb10..78f6ac3 100644
--- a/src/audacious/visualization.h
+++ b/src/audacious/visualization.h
@@ -1,6 +1,6 @@
 /*
  * visualization.h
- * Copyright 2010 John Lindgren
+ * Copyright 2010-2011 John Lindgren
  *
  * This file is part of Audacious.
  *
@@ -22,14 +22,15 @@
 #ifndef AUDACIOUS_VISUALIZATION_H
 #define AUDACIOUS_VISUALIZATION_H
 
-#include <glib.h>
-
 #include "plugins.h"
 
+void vis_send_clear (void);
+void vis_send_audio (const float * data, int channels);
+
 void vis_init (void);
 void vis_cleanup (void);
 
-gboolean vis_plugin_start (PluginHandle * plugin);
+bool_t vis_plugin_start (PluginHandle * plugin);
 void vis_plugin_stop (PluginHandle * plugin);
 
 PluginHandle * vis_plugin_by_widget (/* GtkWidget * */ void * widget);
diff --git a/src/audtool/Makefile b/src/audtool/Makefile
index dbc3c94..2433604 100644
--- a/src/audtool/Makefile
+++ b/src/audtool/Makefile
@@ -11,17 +11,11 @@ SRCS = main.c				\
 include ../../buildsys.mk
 include ../../extra.mk
 
-CPPFLAGS += ${CFLAGS} -I.. -I../.. -I../intl
-CFLAGS += ${GTK_CFLAGS}			\
-		  ${DBUS_CFLAGS}		\
-		  ${AUDACIOUS_DEFINES}	\
-		  ${ARCH_DEFINES}		\
-		  ${MOWGLI_CFLAGS}
-
-LDFLAGS += ${AUDLDFLAGS}
+CPPFLAGS += -I.. -I../.. \
+            ${AUDACIOUS_DEFINES} \
+            ${DBUS_CFLAGS} \
+            ${GTK_CFLAGS}
 
 LIBS += ${DBUS_LIBS}				\
 	-L../libaudclient -laudclient	\
-	${GTK_LIBS}						\
-	${MOWGLI_LIBS}					\
-	${LIBMCS_LIBS}
+	${GTK_LIBS}
diff --git a/src/audtool/audtool.h b/src/audtool/audtool.h
index f21808b..a1282fe 100644
--- a/src/audtool/audtool.h
+++ b/src/audtool/audtool.h
@@ -32,10 +32,8 @@
 #ifndef AUDTOOL_H
 #define AUDTOOL_H
 
-#include <mowgli.h>
 #include <audacious/dbus.h>
 
-extern mowgli_error_context_t *e;
 extern DBusGProxy *dbus_proxy;
 
 struct commandhandler {
@@ -43,7 +41,7 @@ struct commandhandler {
 	void (*handler)(gint argc, gchar **argv);
 	gchar *desc;
 	gint args;
-}; 
+};
 
 extern struct commandhandler handlers[];
 
@@ -74,6 +72,8 @@ extern void set_volume(gint, gchar **);
 
 extern void playlist_position(gint, gchar **);
 extern void playlist_advance(gint, gchar **);
+extern void playlist_auto_advance_status(gint, gchar **);
+extern void playlist_auto_advance_toggle(gint, gchar **);
 extern void playlist_reverse(gint, gchar **);
 extern void playlist_length(gint, gchar **);
 extern void playlist_song(gint, gchar **);
@@ -91,8 +91,9 @@ extern void playlist_repeat_status(gint, gchar **);
 extern void playlist_repeat_toggle(gint, gchar **);
 extern void playlist_shuffle_status(gint, gchar **);
 extern void playlist_shuffle_toggle(gint, gchar **);
+void playlist_stop_after_status (gint argc, gchar * * argv);
+void playlist_stop_after_toggle (gint argc, gchar * * argv);
 extern void playlist_tuple_field_data(gint, gchar **argv);
-extern void playlist_show(gint, gchar **);
 extern void playlist_enqueue_to_temp(gint argc, gchar **argv);
 extern void playlist_ins_url_string(gint argc, gchar **argv);
 extern void playlist_title(gint, gchar **);
@@ -124,7 +125,6 @@ extern void show_filebrowser(gint, gchar **);
 extern void shutdown_audacious_server(gint, gchar **);
 extern void show_about_window(gint, gchar **);
 
-extern void activate(gint argc, gchar **argv);
 extern void toggle_aot(gint argc, gchar **argv);
 extern void get_skin(gint argc, gchar **argv);
 extern void set_skin(gint argc, gchar **argv);
@@ -137,7 +137,6 @@ extern void equalizer_set_eq(gint argc, gchar **argv);
 extern void equalizer_set_eq_preamp(gint argc, gchar **argv);
 extern void equalizer_set_eq_band(gint argc, gchar **argv);
 extern void equalizer_active(gint argc, gchar **argv);
-extern void equalizer_show(gint, gchar **);
 
 extern gint check_args_playlist_pos(gint argc, gchar **argv);
 
diff --git a/src/audtool/examples/infoline.sh b/src/audtool/examples/infoline.sh
old mode 100644
new mode 100755
diff --git a/src/audtool/examples/np-colourful.sh b/src/audtool/examples/np-colourful.sh
deleted file mode 100644
index 54c10e4..0000000
--- a/src/audtool/examples/np-colourful.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/sh
-SONGTITLE=$(audtool current-song | sed 's: - : 09-12 :g')
-SONGELAPSED=$(audtool current-song-output-length)
-SONGLEN=$(audtool current-song-length)
-SONGPOS=$(audtool playlist-position)
-PLAYLEN=$(audtool playlist-length)
-
-printf "\00303-=[\003 \00312$SONGPOS\00309/\00312$PLAYLEN\00309:\00312 $SONGTITLE \00309(\00312$SONGELAPSED\00309/\00312$SONGLEN\00309)\00303 ]=-\003\n"
diff --git a/src/audtool/examples/np.sh b/src/audtool/examples/np.sh
old mode 100644
new mode 100755
diff --git a/src/audtool/handlers_equalizer.c b/src/audtool/handlers_equalizer.c
index e1f822c..22ae8ae 100644
--- a/src/audtool/handlers_equalizer.c
+++ b/src/audtool/handlers_equalizer.c
@@ -29,10 +29,10 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 
+#include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <glib.h>
-#include <mowgli.h>
 #include <locale.h>
 #include "libaudclient/audctrl.h"
 #include "audtool.h"
@@ -79,9 +79,9 @@ void equalizer_get_eq_band(gint argc, gchar **argv)
         audtool_whine("band number out of range\n");
         exit(1);
     }
-    
+
     audtool_report("band %d = %.2f", band, audacious_remote_get_eq_band(dbus_proxy, band));
-    
+
 }
 
 void equalizer_set_eq(gint argc, gchar **argv)
@@ -97,12 +97,12 @@ void equalizer_set_eq(gint argc, gchar **argv)
     }
 
     preamp = atof(argv[1]);
-    
+
     for(i=0; i<10; i++){
         gdouble val = atof(argv[i+2]);
         g_array_append_val(bands, val);
     }
-    
+
     audacious_remote_set_eq(dbus_proxy, preamp, bands);
 }
 
diff --git a/src/audtool/handlers_general.c b/src/audtool/handlers_general.c
index c89448f..a847626 100644
--- a/src/audtool/handlers_general.c
+++ b/src/audtool/handlers_general.c
@@ -32,7 +32,6 @@
 #include <stdlib.h>
 #include <string.h>
 #include <glib.h>
-#include <mowgli.h>
 #include <locale.h>
 #include "libaudclient/audctrl.h"
 #include "audtool.h"
@@ -57,7 +56,7 @@ void set_volume(gint argc, gchar **argv)
 	}
 
 	current_volume = audacious_remote_get_main_volume(dbus_proxy);
-	switch (argv[1][0]) 
+	switch (argv[1][0])
 	{
 		case '+':
 		case '-':
@@ -88,40 +87,6 @@ void mainwin_show(gint argc, gchar **argv)
     }
 }
 
-void playlist_show(gint argc, gchar **argv)
-{
-	if (argc < 2) {
-        audtool_whine_args(argv[0], "<on/off>");
-        exit(1);
-    }
-
-    if (!g_ascii_strcasecmp(argv[1], "on")) {
-        audacious_remote_pl_win_toggle(dbus_proxy, TRUE);
-        return;
-    }
-    else if (!g_ascii_strcasecmp(argv[1], "off")) {
-        audacious_remote_pl_win_toggle(dbus_proxy, FALSE);
-        return;
-    }
-}
-
-void equalizer_show(gint argc, gchar **argv)
-{
-	if (argc < 2) {
-        audtool_whine_args(argv[0], "<on/off>");
-        exit(1);
-    }
-
-    if (!g_ascii_strcasecmp(argv[1] ,"on")) {
-        audacious_remote_eq_win_toggle(dbus_proxy, TRUE);
-        return;
-    }
-    else if (!g_ascii_strcasecmp(argv[1] ,"off")) {
-        audacious_remote_eq_win_toggle(dbus_proxy, FALSE);
-        return;
-    }
-}
-
 void show_preferences_window(gint argc, gchar **argv)
 {
     gboolean show = TRUE;
@@ -244,12 +209,7 @@ void get_handlers_list(gint argc, gchar **argv)
 
     audtool_report("");
 	audtool_report("Handlers may be prefixed with `--' (GNU-style long-options) or not, your choice.");
-	audtool_report("Report bugs to http://bugzilla.atheme.org/");
-}
-
-void activate(gint argc, gchar **argv)
-{
-    audacious_remote_activate(dbus_proxy);
+	audtool_report("Report bugs to http://redmine.audacious-media-player.org/");
 }
 
 void toggle_aot(gint argc, gchar **argv)
diff --git a/src/audtool/handlers_playback.c b/src/audtool/handlers_playback.c
index 90e6b5b..b2d7bac 100644
--- a/src/audtool/handlers_playback.c
+++ b/src/audtool/handlers_playback.c
@@ -32,7 +32,6 @@
 #include <stdlib.h>
 #include <string.h>
 #include <glib.h>
-#include <mowgli.h>
 #include <locale.h>
 #include "libaudclient/audctrl.h"
 #include "audtool.h"
diff --git a/src/audtool/handlers_playlist.c b/src/audtool/handlers_playlist.c
index c30d3e0..ada0461 100644
--- a/src/audtool/handlers_playlist.c
+++ b/src/audtool/handlers_playlist.c
@@ -33,7 +33,6 @@
 #include <string.h>
 #include <glib.h>
 #include <glib/gi18n.h>
-#include <mowgli.h>
 #include <locale.h>
 #include "libaudclient/audctrl.h"
 #include "audtool.h"
@@ -48,6 +47,32 @@ void playlist_advance(gint argc, gchar **argv)
 	audacious_remote_playlist_next(dbus_proxy);
 }
 
+void playlist_auto_advance_status(gint argc, gchar **argv)
+{
+	if (audacious_remote_is_advance(dbus_proxy))
+	{
+		audtool_report("on");
+	}
+	else
+	{
+		audtool_report("off");
+	}
+}
+
+void playlist_auto_advance_toggle(gint argc, gchar **argv)
+{
+	audacious_remote_toggle_advance(dbus_proxy);
+}
+
+void playlist_stop_after_status (gint argc, gchar * * argv)
+{
+    audtool_report (audacious_remote_is_stop_after (dbus_proxy) ? "on" : "off");
+}
+
+void playlist_stop_after_toggle (gint argc, gchar * * argv)
+{
+    audacious_remote_toggle_stop_after (dbus_proxy);
+}
 
 gint check_args_playlist_pos(gint argc, gchar **argv)
 {
diff --git a/src/audtool/handlers_playqueue.c b/src/audtool/handlers_playqueue.c
index e5b0675..ddcf2b8 100644
--- a/src/audtool/handlers_playqueue.c
+++ b/src/audtool/handlers_playqueue.c
@@ -32,7 +32,6 @@
 #include <stdlib.h>
 #include <string.h>
 #include <glib.h>
-#include <mowgli.h>
 #include <locale.h>
 #include "libaudclient/audctrl.h"
 #include "audtool.h"
@@ -95,7 +94,7 @@ void playqueue_display(gint argc, gchar **argv)
 	gchar *songname;
 	gchar *fmt = NULL, *p;
 	gint column;
-	
+
 	i = audacious_remote_get_playqueue_length(dbus_proxy);
 
 	audtool_report("%d queued tracks.", i);
diff --git a/src/audtool/handlers_vitals.c b/src/audtool/handlers_vitals.c
index abc1f09..01b931a 100644
--- a/src/audtool/handlers_vitals.c
+++ b/src/audtool/handlers_vitals.c
@@ -33,7 +33,6 @@
 #include <string.h>
 #include <glib.h>
 #include <glib/gi18n.h>
-#include <mowgli.h>
 #include <locale.h>
 #include "libaudclient/audctrl.h"
 #include "audtool.h"
diff --git a/src/audtool/main.c b/src/audtool/main.c
index 18612fe..8007117 100644
--- a/src/audtool/main.c
+++ b/src/audtool/main.c
@@ -29,10 +29,10 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 
+#include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <glib.h>
-#include <mowgli.h>
 #include <locale.h>
 #include "libaudclient/audctrl.h"
 #include "audtool.h"
@@ -58,10 +58,12 @@ struct commandhandler handlers[] = {
 
 	{"<sep>", NULL, "Playlist manipulation", 0},
 	{"playlist-advance", playlist_advance, "go to the next song in the playlist", 0},
+	{"playlist-auto-advance-status", playlist_auto_advance_status, "returns the status of playlist auto-advance", 0},
+	{"playlist-auto-advance-toggle", playlist_auto_advance_toggle, "toggles playlist auto-advance", 0},
 	{"playlist-reverse", playlist_reverse, "go to the previous song in the playlist", 0},
-	{"playlist-addurl", playlist_add_url_string, "adds a url to the playlist", 1},
-    {"playlist-insurl", playlist_ins_url_string, "inserts a url at specified position in the playlist", 2},
-	{"playlist-addurl-to-new-playlist", playlist_enqueue_to_temp, "adds a url to the newly created playlist", 1},
+	{"playlist-addurl", playlist_add_url_string, "adds a URL to the playlist", 1},
+    {"playlist-insurl", playlist_ins_url_string, "inserts a URL at specified position in the playlist", 2},
+	{"playlist-addurl-to-new-playlist", playlist_enqueue_to_temp, "adds a URL to the newly created playlist", 1},
 	{"playlist-delete", playlist_delete, "deletes a song from the playlist", 1},
 	{"playlist-length", playlist_length, "returns the total length of the playlist", 0},
 	{"playlist-song", playlist_song, "returns the title of a song in the playlist", 1},
@@ -77,6 +79,8 @@ struct commandhandler handlers[] = {
 	{"playlist-repeat-toggle", playlist_repeat_toggle, "toggles playlist repeat", 0},
 	{"playlist-shuffle-status", playlist_shuffle_status, "returns the status of playlist shuffle", 0},
 	{"playlist-shuffle-toggle", playlist_shuffle_toggle, "toggles playlist shuffle", 0},
+	{"playlist-stop-after-status", playlist_stop_after_status, "queries if stopping after current song", 0},
+	{"playlist-stop-after-toggle", playlist_stop_after_toggle, "toggles if stopping after current song", 0},
 	{"playlist-tuple-data", playlist_tuple_field_data, "returns the value of a tuple field for a song in the playlist", 2},
 	{"current-playlist-name", playlist_title, "returns the playlist title of the active playlist", 0},
 
@@ -121,18 +125,14 @@ struct commandhandler handlers[] = {
 
 	{"<sep>", NULL, "Miscellaneous", 0},
 	{"mainwin-show", mainwin_show, "shows/hides the main window", 1},
-	{"playlist-show", playlist_show, "shows/hides the playlist window", 1},
-	{"equalizer-show", equalizer_show, "shows/hides the equalizer window", 1},
-
 	{"filebrowser-show", show_filebrowser, "shows/hides the filebrowser", 1},
 	{"jumptofile-show", show_jtf_window, "shows/hides the jump to file window", 1},
 	{"preferences-show", show_preferences_window, "shows/hides the preferences window", 1},
 	{"about-show", show_about_window, "shows/hides the about window", 1},
 
-	{"activate", activate, "activates and raises audacious", 0},
 	{"always-on-top", toggle_aot, "on/off always on top", 1},
-    {"version", get_version, "shows audaciuos version", 0},
-	{"shutdown", shutdown_audacious_server, "shuts down audacious", 0},
+    {"version", get_version, "shows Audacious version", 0},
+	{"shutdown", shutdown_audacious_server, "shuts down Audacious", 0},
 
 
 	{"<sep>", NULL, "Help system", 0},
@@ -143,7 +143,6 @@ struct commandhandler handlers[] = {
 	{NULL, NULL, NULL, 0}
 };
 
-mowgli_error_context_t *e = NULL;
 DBusGProxy *dbus_proxy = NULL;
 static DBusGConnection *connection = NULL;
 
@@ -152,13 +151,13 @@ audtool_connect(void)
 {
 	GError *error = NULL;
 
-	mowgli_error_context_push(e, "While attempting to connect to the D-Bus session bus");
 	connection = dbus_g_bus_get(DBUS_BUS_SESSION, &error);
 
 	if (connection == NULL)
-		mowgli_error_context_display_with_error(e, ":\n  * ", g_strdup_printf("D-Bus Error: %s", error->message));
-
-	mowgli_error_context_pop(e);
+	{
+		fprintf (stderr, "D-Bus Error: %s\n", error->message);
+		exit (EXIT_FAILURE);
+	}
 
 	dbus_proxy = dbus_g_proxy_new_for_name(connection, AUDACIOUS_DBUS_SERVICE,
                                            AUDACIOUS_DBUS_PATH,
@@ -179,18 +178,14 @@ main(gint argc, gchar **argv)
 
 	setlocale(LC_CTYPE, "");
 	g_type_init();
-	mowgli_init();
-
-	e = mowgli_error_context_create();
-	mowgli_error_context_push(e, "In program %s", argv[0]);
 
 	audtool_connect();
 
-	mowgli_error_context_push(e, "While processing the commandline");
-
 	if (argc < 2)
-		mowgli_error_context_display_with_error (e, ":\n  * ", "not enough "
-         "parameters, use \'audtool help\' for more information.");
+	{
+		fprintf (stderr, "Not enough parameters.  Try \"audtool help\".\n");
+		exit (EXIT_FAILURE);
+	}
 
 	for (j = 1; j < argc; j++)
 	{
@@ -211,9 +206,10 @@ main(gint argc, gchar **argv)
 	}
 
 	if (k == 0)
-		mowgli_error_context_display_with_error (e, ":\n  * ", g_strdup_printf
-         ("Unknown command '%s' encountered, use \'audtool help\' for a "
-         "command list.", argv[1]));
+	{
+		fprintf (stderr, "Unknown command \"%s\".  Try \"audtool help\".\n", argv[1]);
+		exit (EXIT_FAILURE);
+	}
 
 	audtool_disconnect();
 
diff --git a/src/audtool/report.c b/src/audtool/report.c
index 5484727..d996a5d 100644
--- a/src/audtool/report.c
+++ b/src/audtool/report.c
@@ -32,7 +32,6 @@
 #include <stdlib.h>
 #include <string.h>
 #include <glib.h>
-#include <mowgli.h>
 #include <locale.h>
 #include "libaudclient/audctrl.h"
 #include "audtool.h"
@@ -82,11 +81,11 @@ void audtool_whine_tuple_fields(void)
     gint nfields, i;
     gchar **fields = audacious_remote_get_tuple_fields(dbus_proxy),
           **tmp = fields;
-    
+
     audtool_whine("Field names include, but are not limited to:\n");
-    
+
     for (nfields = 0; tmp && *tmp; nfields++, tmp++);
-    
+
     tmp = fields;
     i = 0;
     g_printerr("         ");
@@ -99,13 +98,13 @@ void audtool_whine_tuple_fields(void)
         g_printerr("%s", *tmp);
         if (--nfields > 0)
             g_printerr(", ");
-        
+
         g_free(*tmp);
         tmp++;
     }
-    
+
     g_printerr("\n");
-    
+
     g_free(fields);
 }
 
diff --git a/src/libaudclient/Makefile b/src/libaudclient/Makefile
index e5c74da..d943fa5 100644
--- a/src/libaudclient/Makefile
+++ b/src/libaudclient/Makefile
@@ -15,8 +15,6 @@ pre-depend:
 CPPFLAGS = ${CFLAGS} -D_AUDACIOUS_CORE -I.. -I../..
 CFLAGS += ${LIB_CFLAGS}		\
 	  ${GLIB_CFLAGS}	\
-	  ${MOWGLI_CFLAGS}	\
-	  ${DBUS_CFLAGS}	\
-	  ${LIBMCS_CFLAGS}
+	  ${DBUS_CFLAGS}
 LIBS += ${GLIB_LIBS}	\
 	${DBUS_LIBS}
diff --git a/src/libaudclient/audctrl.c b/src/libaudclient/audctrl.c
index 1e3ca07..98e5b56 100644
--- a/src/libaudclient/audctrl.c
+++ b/src/libaudclient/audctrl.c
@@ -87,10 +87,10 @@ void audacious_remote_playlist_add (DBusGProxy * proxy, GList * list)
 {
     const gchar * filenames[g_list_length (list) + 1];
     int count;
-    
+
     for (count = 0; list != NULL; count ++, list = list->next)
         filenames[count] = list->data;
-    
+
     filenames[count] = NULL;
 
     org_atheme_audacious_add_list (proxy, filenames, & error);
@@ -107,10 +107,10 @@ void audacious_remote_playlist_open_list (DBusGProxy * proxy, GList * list)
 {
     const gchar * filenames[g_list_length (list) + 1];
     int count;
-    
+
     for (count = 0; list != NULL; count ++, list = list->next)
         filenames[count] = list->data;
-    
+
     filenames[count] = NULL;
 
     org_atheme_audacious_open_list (proxy, filenames, & error);
@@ -129,10 +129,10 @@ void audacious_remote_playlist_open_list_to_temp (DBusGProxy * proxy, GList *
 {
     const gchar * filenames[g_list_length (list) + 1];
     int count;
-    
+
     for (count = 0; list != NULL; count ++, list = list->next)
         filenames[count] = list->data;
-    
+
     filenames[count] = NULL;
 
     org_atheme_audacious_open_list_to_temp (proxy, filenames, & error);
@@ -457,28 +457,6 @@ void audacious_remote_main_win_toggle(DBusGProxy *proxy, gboolean show) {
 }
 
 /**
- * Toggles the playlist window's visibility.
- *
- * @param[in] proxy DBus proxy for audacious
- * @param[in] show Whether or not to show the playlist window.
- **/
-void audacious_remote_pl_win_toggle(DBusGProxy *proxy, gboolean show) {
-    org_atheme_audacious_show_playlist(proxy, show, &error);
-    g_clear_error(&error);
-}
-
-/**
- * Toggles the equalizer window's visibility.
- *
- * @param[in] proxy DBus proxy for audacious
- * @param[in] show Whether or not to show the equalizer window.
- **/
-void audacious_remote_eq_win_toggle(DBusGProxy *proxy, gboolean show) {
-    org_atheme_audacious_show_equalizer(proxy, show, &error);
-    g_clear_error(&error);
-}
-
-/**
  * Queries Audacious about the main window's visibility.
  *
  * @param[in] proxy DBus proxy for audacious
@@ -492,32 +470,6 @@ gboolean audacious_remote_is_main_win(DBusGProxy *proxy) {
 }
 
 /**
- * Queries Audacious about the playlist window's visibility.
- *
- * @param[in] proxy DBus proxy for audacious
- * @return TRUE if visible, FALSE otherwise.
- **/
-gboolean audacious_remote_is_pl_win(DBusGProxy *proxy) {
-    gboolean visible = TRUE;
-    org_atheme_audacious_playlist_visible(proxy, &visible, &error);
-    g_clear_error(&error);
-    return visible;
-}
-
-/**
- * Queries Audacious about the equalizer window's visibility.
- *
- * @param[in] proxy DBus proxy for audacious
- * @return TRUE if visible, FALSE otherwise.
- **/
-gboolean audacious_remote_is_eq_win(DBusGProxy *proxy) {
-    gboolean visible = FALSE;
-    org_atheme_audacious_equalizer_visible(proxy, &visible, &error);
-    g_clear_error(&error);
-    return visible;
-}
-
-/**
  * Tells audacious to show the preferences pane.
  *
  * @param[in] proxy DBus proxy for audacious
@@ -649,6 +601,12 @@ void audacious_remote_toggle_shuffle(DBusGProxy *proxy) {
     g_clear_error(&error);
 }
 
+void audacious_remote_toggle_stop_after (DBusGProxy * proxy)
+{
+    org_atheme_audacious_toggle_stop_after (proxy, & error);
+    g_clear_error (& error);
+}
+
 /**
  * Queries audacious about whether or not the repeat feature is active.
  *
@@ -675,6 +633,14 @@ gboolean audacious_remote_is_shuffle(DBusGProxy *proxy) {
     return is_shuffle;
 }
 
+gboolean audacious_remote_is_stop_after (DBusGProxy * proxy)
+{
+    gboolean is_stop_after;
+    org_atheme_audacious_stop_after (proxy, & is_stop_after, & error);
+    g_clear_error (& error);
+    return is_stop_after;
+}
+
 /**
  * Queries audacious about the equalizer settings.
  *
@@ -848,16 +814,6 @@ gboolean audacious_remote_is_advance(DBusGProxy *proxy) {
 }
 
 /**
- * Tells audacious to display the main window and become the selected window.
- *
- * @param[in] proxy DBus proxy for audacious
- **/
-void audacious_remote_activate(DBusGProxy *proxy) {
-    org_atheme_audacious_activate(proxy, &error);
-    g_clear_error(&error);
-}
-
-/**
  * Tells audacious to show the Jump-to-File pane.
  *
  * @param[in] proxy DBus proxy for audacious
diff --git a/src/libaudclient/audctrl.h b/src/libaudclient/audctrl.h
index 6942976..518c3b7 100644
--- a/src/libaudclient/audctrl.h
+++ b/src/libaudclient/audctrl.h
@@ -55,11 +55,7 @@ gint audacious_remote_get_playlist_time(DBusGProxy *proxy, guint pos);
 void audacious_remote_get_info(DBusGProxy *proxy, gint *rate, gint *freq,
                                gint *nch);
 void audacious_remote_main_win_toggle(DBusGProxy *proxy, gboolean show);
-void audacious_remote_pl_win_toggle(DBusGProxy *proxy, gboolean show);
-void audacious_remote_eq_win_toggle(DBusGProxy *proxy, gboolean show);
 gboolean audacious_remote_is_main_win(DBusGProxy *proxy);
-gboolean audacious_remote_is_pl_win(DBusGProxy *proxy);
-gboolean audacious_remote_is_eq_win(DBusGProxy *proxy);
 void audacious_remote_show_prefs_box(DBusGProxy *proxy);
 void audacious_remote_toggle_aot(DBusGProxy *proxy, gboolean ontop);
 void audacious_remote_eject(DBusGProxy *proxy);
@@ -70,8 +66,11 @@ void audacious_remote_playlist_add_url_string(DBusGProxy *proxy,
 gboolean audacious_remote_is_running(DBusGProxy *proxy);
 void audacious_remote_toggle_repeat(DBusGProxy *proxy);
 void audacious_remote_toggle_shuffle(DBusGProxy *proxy);
+void audacious_remote_toggle_stop_after (DBusGProxy * proxy);
 gboolean audacious_remote_is_repeat(DBusGProxy *proxy);
 gboolean audacious_remote_is_shuffle(DBusGProxy *proxy);
+gboolean audacious_remote_is_stop_after (DBusGProxy * proxy);
+
 void audacious_remote_get_eq(DBusGProxy *proxy, gdouble *preamp,
                              GArray **bands);
 gdouble audacious_remote_get_eq_preamp(DBusGProxy *proxy);
@@ -97,9 +96,6 @@ gint audacious_remote_get_playqueue_length(DBusGProxy *proxy);
 void audacious_remote_toggle_advance(DBusGProxy *proxy);
 gboolean audacious_remote_is_advance(DBusGProxy *proxy);
 
-/* Added in BMP 0.9.7 */
-void audacious_remote_activate(DBusGProxy *proxy);
-
 /* Added in Audacious 1.1 */
 void audacious_remote_show_jtf_box(DBusGProxy *proxy);
 void audacious_remote_playqueue_clear(DBusGProxy *proxy);
diff --git a/src/libaudcore/Makefile b/src/libaudcore/Makefile
index 39815f9..886efe3 100644
--- a/src/libaudcore/Makefile
+++ b/src/libaudcore/Makefile
@@ -7,38 +7,29 @@ SRCS = audio.c \
        eventqueue.c \
        hook.c \
        index.c \
-       stringpool.c \
+       strpool.c \
        tuple.c \
        tuple_compiler.c \
        tuple_formatter.c \
        vfs.c \
        vfs_async.c \
-       vfs_buffer.c \
-       vfs_buffered_file.c \
-       vfs_common.c \
-       md5.c
+       vfs_common.c
 
 INCLUDES = audio.h \
            audstrings.h \
-           eventqueue.h \
+           core.h \
            hook.h \
            index.h \
-           stringpool.h \
            tuple.h \
-           tuple_compiler.h \
-           tuple_formatter.h \
            vfs.h \
-           vfs_async.h \
-           vfs_buffer.h \
-           vfs_buffered_file.h \
-           md5.h
+           vfs_async.h
 
 include ../../buildsys.mk
 include ../../extra.mk
 
 includesubdir = libaudcore
 
-CPPFLAGS += -DHAVE_CONFIG_H ${CFLAGS} -I.. -I../..
-CFLAGS += ${LIB_CFLAGS} ${GLIB_CFLAGS} ${MOWGLI_CFLAGS}
+CPPFLAGS += -DHAVE_CONFIG_H ${PTHREAD_CFLAGS} ${GLIB_CFLAGS} -I.. -I../..
+CFLAGS += ${LIB_CFLAGS}
 
-LIBS += ${GLIB_LIBS} ${MOWGLI_LIBS}
+LIBS += ${PTHREAD_LIBS} ${GLIB_LIBS} -lm
diff --git a/src/libaudcore/audio.c b/src/libaudcore/audio.c
index a6b844e..ba01697 100644
--- a/src/libaudcore/audio.c
+++ b/src/libaudcore/audio.c
@@ -1,92 +1,91 @@
 /*
  * audio.c
- * Copyright 2009 John Lindgren
+ * Copyright 2009-2011 John Lindgren
  *
- * This file is part of Audacious.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
  *
- * Audacious is free software: you can redistribute it and/or modify it under
- * the terms of the GNU General Public License as published by the Free Software
- * Foundation, version 2 or version 3 of the License.
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions, and the following disclaimer.
  *
- * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ *    this list of conditions, and the following disclaimer in the documentation
+ *    provided with the distribution.
  *
- * You should have received a copy of the GNU General Public License along with
- * Audacious. If not, see <http://www.gnu.org/licenses/>.
- *
- * The Audacious team does not consider modular code linking to Audacious or
- * using our public API to be a derived work.
+ * This software is provided "as is" and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising from
+ * the use of this software.
  */
 
 #include <glib.h>
+#include <stdint.h>
 
 #include "audio.h"
 
 #define FROM_INT_LOOP(NAME, TYPE, SWAP, OFFSET, RANGE) \
-static void NAME (TYPE * in, gfloat * out, gint samples) \
+static void NAME (const TYPE * in, float * out, int samples) \
 { \
-    TYPE * end = in + samples; \
+    const TYPE * end = in + samples; \
     while (in < end) \
-        * out ++ = (TYPE) (SWAP (* in ++) - OFFSET) / (gdouble) RANGE; \
+        * out ++ = (TYPE) (SWAP (* in ++) - OFFSET) / (double) RANGE; \
 }
 
 #define TO_INT_LOOP(NAME, TYPE, SWAP, OFFSET, RANGE) \
-static void NAME (gfloat * in, TYPE * out, gint samples) \
+static void NAME (const float * in, TYPE * out, int samples) \
 { \
-    gfloat * end = in + samples; \
+    const float * end = in + samples; \
     while (in < end) \
     { \
-        gdouble f = * in ++; \
-        * out ++ = SWAP (OFFSET + (TYPE) (CLAMP (f, -1, 1) * (gdouble) RANGE)); \
+        double f = * in ++; \
+        * out ++ = SWAP (OFFSET + (TYPE) (CLAMP (f, -1, 1) * (double) RANGE)); \
     } \
 }
 
-static inline gint8 noop8 (gint8 i) {return i;}
-static inline gint16 noop16 (gint16 i) {return i;}
-static inline gint32 noop32 (gint32 i) {return i;}
-
-FROM_INT_LOOP (from_s8, gint8, noop8, 0x00, 0x7f)
-FROM_INT_LOOP (from_u8, gint8, noop8, 0x80, 0x7f)
-FROM_INT_LOOP (from_s16, gint16, noop16, 0x0000, 0x7fff)
-FROM_INT_LOOP (from_u16, gint16, noop16, 0x8000, 0x7fff)
-FROM_INT_LOOP (from_s24, gint32, noop32, 0x000000, 0x7fffff)
-FROM_INT_LOOP (from_u24, gint32, noop32, 0x800000, 0x7fffff)
-FROM_INT_LOOP (from_s32, gint32, noop32, 0x00000000, 0x7fffffff)
-FROM_INT_LOOP (from_u32, gint32, noop32, 0x80000000, 0x7fffffff)
-
-TO_INT_LOOP (to_s8, gint8, noop8, 0x00, 0x7f)
-TO_INT_LOOP (to_u8, gint8, noop8, 0x80, 0x7f)
-TO_INT_LOOP (to_s16, gint16, noop16, 0x0000, 0x7fff)
-TO_INT_LOOP (to_u16, gint16, noop16, 0x8000, 0x7fff)
-TO_INT_LOOP (to_s24, gint32, noop32, 0x000000, 0x7fffff)
-TO_INT_LOOP (to_u24, gint32, noop32, 0x800000, 0x7fffff)
-TO_INT_LOOP (to_s32, gint32, noop32, 0x00000000, 0x7fffffff)
-TO_INT_LOOP (to_u32, gint32, noop32, 0x80000000, 0x7fffffff)
-
-static inline gint16 swap16 (gint16 i) {return GUINT16_SWAP_LE_BE (i);}
-static inline gint32 swap32 (gint32 i) {return GUINT32_SWAP_LE_BE (i);}
-
-FROM_INT_LOOP (from_s16_swap, gint16, swap16, 0x0000, 0x7fff)
-FROM_INT_LOOP (from_u16_swap, gint16, swap16, 0x8000, 0x7fff)
-FROM_INT_LOOP (from_s24_swap, gint32, swap32, 0x000000, 0x7fffff)
-FROM_INT_LOOP (from_u24_swap, gint32, swap32, 0x800000, 0x7fffff)
-FROM_INT_LOOP (from_s32_swap, gint32, swap32, 0x00000000, 0x7fffffff)
-FROM_INT_LOOP (from_u32_swap, gint32, swap32, 0x80000000, 0x7fffffff)
-
-TO_INT_LOOP (to_s16_swap, gint16, swap16, 0x0000, 0x7fff)
-TO_INT_LOOP (to_u16_swap, gint16, swap16, 0x8000, 0x7fff)
-TO_INT_LOOP (to_s24_swap, gint32, swap32, 0x000000, 0x7fffff)
-TO_INT_LOOP (to_u24_swap, gint32, swap32, 0x800000, 0x7fffff)
-TO_INT_LOOP (to_s32_swap, gint32, swap32, 0x00000000, 0x7fffffff)
-TO_INT_LOOP (to_u32_swap, gint32, swap32, 0x80000000, 0x7fffffff)
-
-typedef void (* FromFunc) (void * in, gfloat * out, gint samples);
-typedef void (* ToFunc) (gfloat * in, void * out, gint samples);
+static inline int8_t noop8 (int8_t i) {return i;}
+static inline int16_t noop16 (int16_t i) {return i;}
+static inline int32_t noop32 (int32_t i) {return i;}
+
+FROM_INT_LOOP (from_s8, int8_t, noop8, 0x00, 0x7f)
+FROM_INT_LOOP (from_u8, int8_t, noop8, 0x80, 0x7f)
+FROM_INT_LOOP (from_s16, int16_t, noop16, 0x0000, 0x7fff)
+FROM_INT_LOOP (from_u16, int16_t, noop16, 0x8000, 0x7fff)
+FROM_INT_LOOP (from_s24, int32_t, noop32, 0x000000, 0x7fffff)
+FROM_INT_LOOP (from_u24, int32_t, noop32, 0x800000, 0x7fffff)
+FROM_INT_LOOP (from_s32, int32_t, noop32, 0x00000000, 0x7fffffff)
+FROM_INT_LOOP (from_u32, int32_t, noop32, 0x80000000, 0x7fffffff)
+
+TO_INT_LOOP (to_s8, int8_t, noop8, 0x00, 0x7f)
+TO_INT_LOOP (to_u8, int8_t, noop8, 0x80, 0x7f)
+TO_INT_LOOP (to_s16, int16_t, noop16, 0x0000, 0x7fff)
+TO_INT_LOOP (to_u16, int16_t, noop16, 0x8000, 0x7fff)
+TO_INT_LOOP (to_s24, int32_t, noop32, 0x000000, 0x7fffff)
+TO_INT_LOOP (to_u24, int32_t, noop32, 0x800000, 0x7fffff)
+TO_INT_LOOP (to_s32, int32_t, noop32, 0x00000000, 0x7fffffff)
+TO_INT_LOOP (to_u32, int32_t, noop32, 0x80000000, 0x7fffffff)
+
+static inline int16_t swap16 (int16_t i) {return GUINT16_SWAP_LE_BE (i);}
+static inline int32_t swap32 (int32_t i) {return GUINT32_SWAP_LE_BE (i);}
+
+FROM_INT_LOOP (from_s16_swap, int16_t, swap16, 0x0000, 0x7fff)
+FROM_INT_LOOP (from_u16_swap, int16_t, swap16, 0x8000, 0x7fff)
+FROM_INT_LOOP (from_s24_swap, int32_t, swap32, 0x000000, 0x7fffff)
+FROM_INT_LOOP (from_u24_swap, int32_t, swap32, 0x800000, 0x7fffff)
+FROM_INT_LOOP (from_s32_swap, int32_t, swap32, 0x00000000, 0x7fffffff)
+FROM_INT_LOOP (from_u32_swap, int32_t, swap32, 0x80000000, 0x7fffffff)
+
+TO_INT_LOOP (to_s16_swap, int16_t, swap16, 0x0000, 0x7fff)
+TO_INT_LOOP (to_u16_swap, int16_t, swap16, 0x8000, 0x7fff)
+TO_INT_LOOP (to_s24_swap, int32_t, swap32, 0x000000, 0x7fffff)
+TO_INT_LOOP (to_u24_swap, int32_t, swap32, 0x800000, 0x7fffff)
+TO_INT_LOOP (to_s32_swap, int32_t, swap32, 0x00000000, 0x7fffffff)
+TO_INT_LOOP (to_u32_swap, int32_t, swap32, 0x80000000, 0x7fffffff)
+
+typedef void (* FromFunc) (const void * in, float * out, int samples);
+typedef void (* ToFunc) (const float * in, void * out, int samples);
 
 struct
 {
-    gint format;
+    int format;
     FromFunc from;
     ToFunc to;
 }
@@ -126,9 +125,9 @@ convert_table [] =
 #endif
 };
 
-void audio_from_int (void * in, gint format, gfloat * out, gint samples)
+void audio_from_int (const void * in, int format, float * out, int samples)
 {
-    gint entry;
+    int entry;
 
     for (entry = 0; entry < G_N_ELEMENTS (convert_table); entry ++)
     {
@@ -140,9 +139,9 @@ void audio_from_int (void * in, gint format, gfloat * out, gint samples)
     }
 }
 
-void audio_to_int (gfloat * in, void * out, gint format, gint samples)
+void audio_to_int (const float * in, void * out, int format, int samples)
 {
-    gint entry;
+    int entry;
 
     for (entry = 0; entry < G_N_ELEMENTS (convert_table); entry ++)
     {
@@ -154,10 +153,10 @@ void audio_to_int (gfloat * in, void * out, gint format, gint samples)
     }
 }
 
-void audio_amplify (gfloat * data, gint channels, gint frames, gfloat * factors)
+void audio_amplify (float * data, int channels, int frames, float * factors)
 {
-    gfloat * end = data + channels * frames;
-    gint channel;
+    float * end = data + channels * frames;
+    int channel;
 
     while (data < end)
     {
diff --git a/src/libaudcore/audio.h b/src/libaudcore/audio.h
deleted file mode 100644
index 1a61f77..0000000
--- a/src/libaudcore/audio.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * audio.h
- * Copyright 2009 John Lindgren
- *
- * This file is part of Audacious.
- *
- * Audacious is free software: you can redistribute it and/or modify it under
- * the terms of the GNU General Public License as published by the Free Software
- * Foundation, version 2 or version 3 of the License.
- *
- * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * Audacious. If not, see <http://www.gnu.org/licenses/>.
- *
- * The Audacious team does not consider modular code linking to Audacious or
- * using our public API to be a derived work.
- */
-
-#ifndef AUDACIOUS_AUDIO_H
-#define AUDACIOUS_AUDIO_H
-
-#include <glib.h>
-
-/* 24-bit integer samples are padded to 32-bit; high byte is always 0 */
-enum {
- FMT_FLOAT,
- FMT_S8, FMT_U8,
- FMT_S16_LE, FMT_S16_BE, FMT_U16_LE, FMT_U16_BE,
- FMT_S24_LE, FMT_S24_BE, FMT_U24_LE, FMT_U24_BE,
- FMT_S32_LE, FMT_S32_BE, FMT_U32_LE, FMT_U32_BE};
-
-#if G_BYTE_ORDER == G_LITTLE_ENDIAN
-#define FMT_S16_NE FMT_S16_LE
-#define FMT_U16_NE FMT_U16_LE
-#define FMT_S24_NE FMT_S24_LE
-#define FMT_U24_NE FMT_U24_LE
-#define FMT_S32_NE FMT_S32_LE
-#define FMT_U32_NE FMT_U32_LE
-#else
-#define FMT_S16_NE FMT_S16_BE
-#define FMT_U16_NE FMT_U16_BE
-#define FMT_S24_NE FMT_S24_BE
-#define FMT_U24_NE FMT_U24_BE
-#define FMT_S32_NE FMT_S32_BE
-#define FMT_U32_NE FMT_U32_BE
-#endif
-
-#define FMT_SIZEOF(f) \
- (f == FMT_FLOAT ? sizeof (gfloat) : f <= FMT_U8 ? 1 : f <= FMT_U16_BE ? 2 : 4)
-
-void audio_from_int (void * in, gint format, gfloat * out, gint samples);
-void audio_to_int (gfloat * in, void * out, gint format, gint samples);
-void audio_amplify (gfloat * data, gint channels, gint frames, gfloat * factors);
-
-#endif
diff --git a/src/libaudcore/audio.h.in b/src/libaudcore/audio.h.in
new file mode 100644
index 0000000..d7b2cae
--- /dev/null
+++ b/src/libaudcore/audio.h.in
@@ -0,0 +1,53 @@
+/*
+ * audio.h
+ * Copyright 2009-2011 John Lindgren
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions, and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ *    this list of conditions, and the following disclaimer in the documentation
+ *    provided with the distribution.
+ *
+ * This software is provided "as is" and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising from
+ * the use of this software.
+ */
+
+#ifndef LIBAUDCORE_AUDIO_H
+#define LIBAUDCORE_AUDIO_H
+
+/* 24-bit integer samples are padded to 32-bit; high byte is always 0 */
+enum {
+ FMT_FLOAT,
+ FMT_S8, FMT_U8,
+ FMT_S16_LE, FMT_S16_BE, FMT_U16_LE, FMT_U16_BE,
+ FMT_S24_LE, FMT_S24_BE, FMT_U24_LE, FMT_U24_BE,
+ FMT_S32_LE, FMT_S32_BE, FMT_U32_LE, FMT_U32_BE};
+
+#if @BIGENDIAN@
+#define FMT_S16_NE FMT_S16_BE
+#define FMT_U16_NE FMT_U16_BE
+#define FMT_S24_NE FMT_S24_BE
+#define FMT_U24_NE FMT_U24_BE
+#define FMT_S32_NE FMT_S32_BE
+#define FMT_U32_NE FMT_U32_BE
+#else
+#define FMT_S16_NE FMT_S16_LE
+#define FMT_U16_NE FMT_U16_LE
+#define FMT_S24_NE FMT_S24_LE
+#define FMT_U24_NE FMT_U24_LE
+#define FMT_S32_NE FMT_S32_LE
+#define FMT_U32_NE FMT_U32_LE
+#endif
+
+#define FMT_SIZEOF(f) ((f) == FMT_FLOAT ? sizeof (float) : (f) <= FMT_U8 ? 1 : (f) <= FMT_U16_BE ? 2 : 4)
+
+void audio_from_int (const void * in, int format, float * out, int samples);
+void audio_to_int (const float * in, void * out, int format, int samples);
+void audio_amplify (float * data, int channels, int frames, float * factors);
+
+#endif /* LIBAUDCORE_AUDIO_H */
diff --git a/src/libaudcore/audstrings.c b/src/libaudcore/audstrings.c
index b3ef5ff..476311b 100644
--- a/src/libaudcore/audstrings.c
+++ b/src/libaudcore/audstrings.c
@@ -1,547 +1,270 @@
-/*  Audacious
- *  Copyright (C) 2005-2009  Audacious development team.
+/*
+ * audstrings.c
+ * Copyright 2009-2011 John Lindgren
+ * Copyright 2010 William Pitcock
  *
- *  BMP - Cross-platform multimedia player
- *  Copyright (C) 2003-2004  BMP development team.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
  *
- *  Based on XMMS:
- *  Copyright (C) 1998-2003  XMMS development team.
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions, and the following disclaimer.
  *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; under version 3 of the License.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ *    this list of conditions, and the following disclaimer in the documentation
+ *    provided with the distribution.
  *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program.  If not, see <http://www.gnu.org/licenses>.
- *
- *  The Audacious team does not consider modular code linking to
- *  Audacious or using our public API to be a derived work.
+ * This software is provided "as is" and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising from
+ * the use of this software.
  */
 
-#ifdef HAVE_CONFIG_H
-#  include "config.h"
-#endif
-
-#include "audstrings.h"
-
+#include <limits.h>
+#include <math.h>
 #include <stdio.h>
+#include <stdlib.h>
 #include <glib.h>
-#include <audacious/i18n.h>
 #include <string.h>
 #include <ctype.h>
 
-/**
- * Performs in place replacement of Windows-style drive letter with '/' (slash).
- *
- * @param str String to be manipulated.
- * @return Pointer to the string if succesful, NULL if failed or if input was NULL.
- */
-static gchar *
-str_replace_drive_letter(gchar * str)
-{
-    gchar *match, *match_end;
-
-    g_return_val_if_fail(str != NULL, NULL);
-
-    while ((match = strstr(str, ":\\")) != NULL) {
-        match--;
-        match_end = match + 3;
-        *match++ = '/';
-        while (*match_end)
-            *match++ = *match_end++;
-        *match = 0; /* the end of line */
-    }
-
-    return str;
-}
-
-gchar *
-str_append(gchar * str, const gchar * add_str)
-{
-    return str_replace(str, g_strconcat(str, add_str, NULL));
-}
-
-gchar *
-str_replace(gchar * str, gchar * new_str)
-{
-    g_free(str);
-    return new_str;
-}
+#include <audacious/i18n.h>
 
-void
-str_replace_in(gchar ** str, gchar * new_str)
-{
-    *str = str_replace(*str, new_str);
-}
+#include "audstrings.h"
+#include "config.h"
 
-gboolean
-str_has_prefix_nocase(const gchar * str, const gchar * prefix)
-{
-    /* strncasecmp causes segfaults when str is NULL*/
-    return (str != NULL && (strncasecmp(str, prefix, strlen(prefix)) == 0));
-}
+#define FROM_HEX(c) ((c) < 'A' ? (c) - '0' : (c) < 'a' ? 10 + (c) - 'A' : 10 + (c) - 'a')
+#define TO_HEX(i) ((i) < 10 ? '0' + (i) : 'A' + (i) - 10)
+#define IS_LEGAL(c) (((c) >= 'A' && (c) <= 'Z') || ((c) >= 'a' && (c) <= 'z') \
+                  || ((c) >= '0' && (c) <= '9') || (strchr ("-_.~/", (c))))
 
-gboolean str_has_suffix_nocase (const gchar * str, const gchar * suffix)
+bool_t str_has_prefix_nocase (const char * str, const char * prefix)
 {
-    return (str && strlen (str) >= strlen (suffix) && ! strcasecmp (str + strlen
-     (str) - strlen (suffix), suffix));
+    return ! g_ascii_strncasecmp (str, prefix, strlen (prefix));
 }
 
-gboolean
-str_has_suffixes_nocase(const gchar * str, gchar * const *suffixes)
+bool_t str_has_suffix_nocase (const char * str, const char * suffix)
 {
-    gchar *const *suffix;
-
-    g_return_val_if_fail(str != NULL, FALSE);
-    g_return_val_if_fail(suffixes != NULL, FALSE);
+    int len1 = strlen (str);
+    int len2 = strlen (suffix);
 
-    for (suffix = suffixes; *suffix; suffix++)
-        if (str_has_suffix_nocase(str, *suffix))
-            return TRUE;
+    if (len2 > len1)
+        return FALSE;
 
-    return FALSE;
+    return ! g_ascii_strcasecmp (str + len1 - len2, suffix);
 }
 
-static gchar * (* str_to_utf8_impl) (const gchar *) = NULL;
-static gchar * (* str_to_utf8_full_impl) (const gchar *, gssize, gsize *,
- gsize *, GError * *) = NULL;
+static char * (* str_to_utf8_impl) (const char *) = NULL;
+static char * (* str_to_utf8_full_impl) (const char *, int, int *, int *) = NULL;
 
-void str_set_utf8_impl (gchar * (* stu_impl) (const gchar *),
- gchar * (* stuf_impl) (const gchar *, gssize, gsize *, gsize *, GError * *))
+void str_set_utf8_impl (char * (* stu_impl) (const char *),
+ char * (* stuf_impl) (const char *, int, int *, int *))
 {
     str_to_utf8_impl = stu_impl;
     str_to_utf8_full_impl = stuf_impl;
 }
 
-/**
- * Convert given string from nearly any encoding to UTF-8 encoding.
- *
- * @param str Local filename/path to convert.
- * @return String in UTF-8 encoding. Must be freed with g_free().
- */
-
-gchar * str_to_utf8 (const gchar * str)
+char * str_to_utf8 (const char * str)
 {
     g_return_val_if_fail (str_to_utf8_impl, NULL);
     return str_to_utf8_impl (str);
 }
 
-gchar * str_to_utf8_full (const gchar * str, gssize len, gsize * bytes_read,
- gsize * bytes_written, GError * * err)
+char * str_to_utf8_full (const char * str, int len, int * bytes_read, int * bytes_written)
 {
     g_return_val_if_fail (str_to_utf8_full_impl, NULL);
-    return str_to_utf8_full_impl (str, len, bytes_read, bytes_written, err);
-}
-
-#ifdef HAVE_EXECINFO_H
-# include <execinfo.h>
-#endif
-
-/**
- * This function can be used to assert that a given string is valid UTF-8.
- * If it is, a copy of the string is returned. However, if the string is NOT
- * valid UTF-8, a warning and a callstack backtrace is printed in order to
- * see where the problem occured.
- *
- * This is a temporary measure for removing useless str_to_utf8 etc. calls
- * and will be eventually removed. This function should be used in place of
- * #str_to_utf8() calls when it can be reasonably assumed that the input
- * should already be in unicode encoding.
- *
- * @param str String to be tested and converted to UTF-8 encoding.
- * @return String in UTF-8 encoding, or NULL if conversion failed or input was NULL.
- */
-gchar *
-str_assert_utf8(const gchar * str)
-{
-    /* NULL in NULL out */
-    if (str == NULL)
-        return NULL;
-
-    /* already UTF-8? */
-    if (!g_utf8_validate(str, -1, NULL)) {
-#ifdef HAVE_EXECINFO_H
-        gint i, nsymbols;
-        const gint nsymmax = 50;
-        void *addrbuf[nsymmax];
-        gchar **symbols;
-        nsymbols = backtrace(addrbuf, nsymmax);
-        symbols = backtrace_symbols(addrbuf, nsymbols);
-
-        fprintf(stderr, "String '%s' was not UTF-8! Backtrace (%d):\n", str, nsymbols);
-
-        for (i = 0; i < nsymbols; i++)
-            fprintf(stderr, "  #%d: %s\n", i, symbols[i]);
-
-        free(symbols);
-#else
-        g_warning("String '%s' was not UTF-8!", str);
-#endif
-        return str_to_utf8(str);
-    } else
-        return g_strdup(str);
-}
-
-
-const gchar *
-str_skip_chars(const gchar * str, const gchar * chars)
-{
-    while (strchr(chars, *str) != NULL)
-        str++;
-    return str;
+    return str_to_utf8_full_impl (str, len, bytes_read, bytes_written);
 }
 
-gchar *
-convert_dos_path(gchar * path)
-{
-    g_return_val_if_fail(path != NULL, NULL);
-
-    /* replace drive letter with '/' */
-    str_replace_drive_letter(path);
-
-    /* replace '\' with '/' */
-    string_replace_char (path, '\\', '/');
-
-    return path;
-}
-
-/**
- * Checks if given URI contains a subtune indicator/number.
- * If it does, track is set to to it, and position of subtune
- * separator in the URI string is returned.
- *
- * @param filename Filename/URI to split.
- * @param track Pointer to variable where subtune number should be
- * assigned or NULL if it is not needed.
- * @return Position of subtune separator character in filename
- * or NULL if none found. Notice that this value should NOT be modified,
- * even though it is not declared const for technical reasons.
- */
-gchar *
-filename_get_subtune(const gchar * filename, gint * track)
-{
-    gchar *pos;
-
-    if ((pos = strrchr(filename, '?')) != NULL)
-    {
-        const gchar *s = pos + 1;
-        while (*s != '\0' && g_ascii_isdigit(*s)) s++;
-        if (*s == '\0') {
-            if (track != NULL)
-                *track = atoi(pos + 1);
-            return pos;
-        }
-    }
-
-    return NULL;
-}
-
-/**
- * Given file path/URI contains ending indicating subtune number
- * "?<number>", splits the string into filename without subtune value.
- * If given track pointer is non-NULL, subtune number is assigned into it.
- *
- * @param filename Filename/URI to split.
- * @param track Pointer to variable where subtune number should be
- * assigned or NULL if it is not needed.
- * @return Newly allocated splitted filename without the subtune indicator.
- * This string must be freed with g_free(). NULL will be returned if
- * there was any failure.
- */
-gchar *
-filename_split_subtune(const gchar * filename, gint * track)
-{
-    gchar *result;
-    gchar *pos;
-
-    g_return_val_if_fail(filename != NULL, NULL);
-
-    result = g_strdup(filename);
-    g_return_val_if_fail(result != NULL, NULL);
-
-    if ((pos = filename_get_subtune(result, track)) != NULL)
-        *pos = '\0';
-
-    return result;
-}
-
-void string_replace_char (gchar * string, gchar old_str, gchar new_str)
+void string_replace_char (char * string, char old_str, char new_str)
 {
     while ((string = strchr (string, old_str)) != NULL)
         * string = new_str;
 }
 
-static inline gchar get_hex_digit (const gchar * * get)
-{
-    gchar c = * * get;
-
-    if (! c)
-        return 0;
-
-    (* get) ++;
-
-    if (c < 'A')
-        return c - '0';
-    if (c < 'a')
-        return c - 'A' + 10;
-
-    return c - 'a' + 10;
-}
-
-/* Requires that the destination be large enough to hold the decoded string.
- * The source and destination may be the same string.  USE EXTREME CAUTION. */
+/* Percent-decodes up to <len> bytes of <str> to <out>, which must be large
+ * enough to hold the decoded string (i.e., (len + 1) bytes).  If <len> is
+ * negative, decodes all of <str>. */
 
-static void string_decode_percent_2 (const gchar * from, gchar * to)
+void str_decode_percent (const char * str, int len, char * out)
 {
-    gchar c;
-    while ((c = * from ++))
-        * to ++ = (c != '%') ? c : ((get_hex_digit (& from) << 4) | get_hex_digit
-         (& from));
+    if (len < 0)
+        len = INT_MAX;
 
-    * to = 0;
-}
+    while (len --)
+    {
+        char c = * str ++;
+        if (! c)
+            break;
 
-/* Decodes a percent-encoded string in-place. */
+        if (c == '%' && len >= 2 && str[0] && str[1])
+        {
+            c = (FROM_HEX (str[0]) << 4) | FROM_HEX (str[1]);
+            str += 2;
+            len -= 2;
+        }
 
-void string_decode_percent (gchar * s)
-{
-    string_decode_percent_2 (s, s);
-}
+        * out ++ = c;
+    }
 
-/* We encode any character except the "unreserved" characters of RFC 3986 and
- * (optionally) the forward slash.  On Windows, we also (optionally) do not
- * encode the colon. */
-static gboolean is_legal_char (gchar c, gboolean is_filename)
-{
-    return (c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z') || (c >= '0' && c <=
-     '9') || (strchr ("-_.~", c) != NULL) ||
-#ifdef _WIN32
-     (is_filename && strchr ("/:", c) != NULL);
-#else
-     (is_filename && c == '/');
-#endif
+    * out = 0;
 }
 
-static gchar make_hex_digit (gint i)
-{
-    if (i < 10)
-        return '0' + i;
-    else
-        return ('A' - 10) + i;
-}
+/* Percent-encodes up to <len> bytes of <str> to <out>, which must be large
+ * enough to hold the encoded string (i.e., (3 * len + 1) bytes).  If <len> is
+ * negative, decodes all of <str>. */
 
-/* is_filename specifies whether the forward slash should be left intact */
-/* returns string allocated with g_malloc */
-gchar * string_encode_percent (const gchar * string, gboolean is_filename)
+void str_encode_percent (const char * str, int len, char * out)
 {
-    gint length = 0;
-    const gchar * get;
-    gchar c;
-    gchar * new, * set;
+    if (len < 0)
+        len = INT_MAX;
 
-    for (get = string; (c = * get); get ++)
+    while (len --)
     {
-        if (is_legal_char (c, is_filename))
-            length ++;
-        else
-            length += 3;
-    }
-
-    new = g_malloc (length + 1);
-    set = new;
+        char c = * str ++;
+        if (! c)
+            break;
 
-    for (get = string; (c = * get); get ++)
-    {
-        if (is_legal_char (c, is_filename))
-            * set ++ = c;
+        if (IS_LEGAL (c))
+            * out ++ = c;
         else
         {
-            * set ++ = '%';
-            * set ++ = make_hex_digit (((guchar) c) >> 4);
-            * set ++ = make_hex_digit (c & 0xF);
+            * out ++ = '%';
+            * out ++ = TO_HEX ((unsigned char) c >> 4);
+            * out ++ = TO_HEX (c & 0xF);
         }
     }
 
-    * set = 0;
-    return new;
-}
-
-/* Determines whether a URI is valid UTF-8.  If not and <warn> is nonzero,
- * prints a warning to stderr. */
-
-gboolean uri_is_utf8 (const gchar * uri, gboolean warn)
-{
-    gchar buf[strlen (uri) + 1];
-    string_decode_percent_2 (uri, buf);
-
-    if (g_utf8_validate (buf, -1, NULL))
-        return TRUE;
-
-    if (warn)
-        fprintf (stderr, "URI is not UTF-8: %s.\n", buf);
-
-    return FALSE;
-}
-
-/* Converts a URI to UTF-8 encoding.  The returned URI must be freed with g_free.
- *
- * Note: The function intentionally converts only URI's that are encoded in the
- * system locale and refer to local files.
- *
- * Rationale:
- *
- * 1. Local files.  The URI was probably created by percent-encoding a raw
- *    filename.
- *    a. If that filename was in the system locale, then we can convert the URI
- *       to a UTF-8 one, allowing us to display the name correctly and to access
- *       the file by converting back to the system locale.
- *    b. If that filename was in a different locale (perhaps copied from another
- *       machine), then we do not want to convert it to UTF-8 (even assuming we
- *       can do so correctly), because we will not know what encoding to convert
- *       back to when we want to access the file.
- * 2. Remote files.  The URI was probably created by percent-encoding a raw
- *    filename in whatever locale the remote system is using.  We do not want
- *    to convert it to UTF-8 because we do not know whether the remote system
- *    can handle UTF-8 requests. */
-
-gchar * uri_to_utf8 (const gchar * uri)
-{
-    if (strncmp (uri, "file://", 7))
-        return g_strdup (uri);
-
-    /* recover the raw filename */
-    gchar buf[strlen (uri + 7) + 1];
-    string_decode_percent_2 (uri + 7, buf);
-
-    /* convert it to a URI again, in UTF-8 if possible */
-    return filename_to_uri (buf);
-}
-
-/* Check that a URI is valid UTF-8.  If not, prints a warning to stderr if
- * <warn> is nonzero, frees the old URI with g_free, and sets <uri> to the
- * converted URI, which must be freed with g_free when no longer needed. */
-
-void uri_check_utf8 (gchar * * uri, gboolean warn)
-{
-    if (uri_is_utf8 (* uri, warn))
-        return;
-
-    gchar * copy = uri_to_utf8 (* uri);
-    g_free (* uri);
-    * uri = copy;
+    * out = 0;
 }
 
 /* Like g_filename_to_uri, but converts the filename from the system locale to
  * UTF-8 before percent-encoding.  On Windows, replaces '\' with '/' and adds a
  * leading '/'. */
 
-gchar * filename_to_uri (const gchar * name)
+char * filename_to_uri (const char * name)
 {
-    gchar * utf8 = g_locale_to_utf8 (name, -1, NULL, NULL, NULL);
+    char * utf8 = g_locale_to_utf8 (name, -1, NULL, NULL, NULL);
+    if (! utf8)
+    {
+        fprintf (stderr, "Cannot convert filename from system locale: %s\n", name);
+        return NULL;
+    }
+
 #ifdef _WIN32
     string_replace_char (utf8, '\\', '/');
 #endif
-    gchar * enc = string_encode_percent (utf8 ? utf8 : name, TRUE);
+    char enc[3 * strlen (utf8) + 1];
+    str_encode_percent (utf8, -1, enc);
+
     g_free (utf8);
+
 #ifdef _WIN32
-    gchar * uri = g_strdup_printf ("file:///%s", enc);
+    return g_strdup_printf ("file:///%s", enc);
 #else
-    gchar * uri = g_strdup_printf ("file://%s", enc);
+    return g_strdup_printf ("file://%s", enc);
 #endif
-    g_free (enc);
-    return uri;
 }
 
 /* Like g_filename_from_uri, but converts the filename from UTF-8 to the system
  * locale after percent-decoding.  On Windows, strips the leading '/' and
  * replaces '/' with '\'. */
 
-gchar * uri_to_filename (const gchar * uri)
+char * uri_to_filename (const char * uri)
 {
 #ifdef _WIN32
     g_return_val_if_fail (! strncmp (uri, "file:///", 8), NULL);
-    gchar buf[strlen (uri + 8) + 1];
-    string_decode_percent_2 (uri + 8, buf);
+    char buf[strlen (uri + 8) + 1];
+    str_decode_percent (uri + 8, -1, buf);
 #else
     g_return_val_if_fail (! strncmp (uri, "file://", 7), NULL);
-    gchar buf[strlen (uri + 7) + 1];
-    string_decode_percent_2 (uri + 7, buf);
+    char buf[strlen (uri + 7) + 1];
+    str_decode_percent (uri + 7, -1, buf);
 #endif
 #ifdef _WIN32
     string_replace_char (buf, '/', '\\');
 #endif
-    gchar * name = g_locale_from_utf8 (buf, -1, NULL, NULL, NULL);
-    return name ? name : g_strdup (buf);
+
+    char * name = g_locale_from_utf8 (buf, -1, NULL, NULL, NULL);
+    if (! name)
+        fprintf (stderr, "Cannot convert filename to system locale: %s\n", buf);
+
+    return name;
 }
 
-/* Formats a URI for human-readable display.  Percent-decodes and converts to
- * UTF-8 (more aggressively than uri_to_utf8).  For file:// URI's, converts to
- * filename format (but in UTF-8). */
+/* Formats a URI for human-readable display.  Percent-decodes and, for file://
+ * URI's, converts to filename format, but in UTF-8. */
 
-gchar * uri_to_display (const gchar * uri)
+char * uri_to_display (const char * uri)
 {
-    gchar buf[strlen (uri) + 1];
+    if (! strncmp (uri, "cdda://?", 8))
+        return g_strdup_printf (_("Audio CD, track %s"), uri + 8);
+
+    char buf[strlen (uri) + 1];
 
 #ifdef _WIN32
     if (! strncmp (uri, "file:///", 8))
     {
-        string_decode_percent_2 (uri + 8, buf);
+        str_decode_percent (uri + 8, -1, buf);
         string_replace_char (buf, '/', '\\');
     }
 #else
     if (! strncmp (uri, "file://", 7))
-        string_decode_percent_2 (uri + 7, buf);
+        str_decode_percent (uri + 7, -1, buf);
 #endif
     else
-        string_decode_percent_2 (uri, buf);
+        str_decode_percent (uri, -1, buf);
 
-    return str_to_utf8 (buf);
+    return g_strdup (buf);
 }
 
-gchar * uri_get_extension (const gchar * uri)
+void uri_parse (const char * uri, const char * * base_p, const char * * ext_p,
+ const char * * sub_p, int * isub_p)
 {
-    const gchar * slash = strrchr (uri, '/');
-    if (! slash)
-        return NULL;
-    
-    gchar * lower = g_ascii_strdown (slash + 1, -1);
-
-    gchar * qmark = strchr (lower, '?');
-    if (qmark)
-        * qmark = 0;
-
-    gchar * dot = strrchr (lower, '.');
-    gchar * ext = dot ? g_strdup (dot + 1) : NULL;
-    
-    g_free (lower);
-    return ext;
-}
+    const char * end = uri + strlen (uri);
+    const char * base, * ext, * sub, * c;
+    int isub = 0;
+    char junk;
 
-void string_cut_extension(gchar *string)
-{
-    gchar *period = strrchr(string, '.');
+    if ((c = strrchr (uri, '/')))
+        base = c + 1;
+    else
+        base = end;
 
-    if (period != NULL)
-        *period = 0;
+    if ((c = strrchr (base, '?')) && sscanf (c + 1, "%d%c", & isub, & junk) == 1)
+        sub = c;
+    else
+        sub = end;
+
+    char buf[sub - base + 1];
+    memcpy (buf, base, sub - base);
+    buf[sub - base] = 0;
+
+    if ((c = strrchr (buf, '.')))
+        ext = base + (c - buf);
+    else
+        ext = sub;
+
+    if (base_p)
+        * base_p = base;
+    if (ext_p)
+        * ext_p = ext;
+    if (sub_p)
+        * sub_p = sub;
+    if (isub_p)
+        * isub_p = isub;
 }
 
 /* Like strcasecmp, but orders numbers correctly (2 before 10). */
 /* Non-ASCII characters are treated exactly as is. */
 /* Handles NULL gracefully. */
 
-gint string_compare (const gchar * ap, const gchar * bp)
+int string_compare (const char * ap, const char * bp)
 {
     if (ap == NULL)
         return (bp == NULL) ? 0 : -1;
     if (bp == NULL)
         return 1;
 
-    guchar a = * ap ++, b = * bp ++;
+    unsigned char a = * ap ++, b = * bp ++;
     for (; a || b; a = * ap ++, b = * bp ++)
     {
         if (a > '9' || b > '9' || a < '0' || b < '0')
@@ -558,11 +281,11 @@ gint string_compare (const gchar * ap, const gchar * bp)
         }
         else
         {
-            gint x = a - '0';
+            int x = a - '0';
             for (; (a = * ap) <= '9' && a >= '0'; ap ++)
                 x = 10 * x + (a - '0');
 
-            gint y = b - '0';
+            int y = b - '0';
             for (; (b = * bp) >= '0' && b <= '9'; bp ++)
                 y = 10 * y + (b - '0');
 
@@ -578,20 +301,26 @@ gint string_compare (const gchar * ap, const gchar * bp)
 
 /* Decodes percent-encoded strings, then compares then with string_compare. */
 
-gint string_compare_encoded (const gchar * ap, const gchar * bp)
+int string_compare_encoded (const char * ap, const char * bp)
 {
     if (ap == NULL)
         return (bp == NULL) ? 0 : -1;
     if (bp == NULL)
         return 1;
 
-    guchar a = * ap ++, b = * bp ++;
+    unsigned char a = * ap ++, b = * bp ++;
     for (; a || b; a = * ap ++, b = * bp ++)
     {
-        if (a == '%')
-            a = (get_hex_digit (& ap) << 4) | get_hex_digit (& ap);
-        if (b == '%')
-            b = (get_hex_digit (& bp) << 4) | get_hex_digit (& bp);
+        if (a == '%' && ap[0] && ap[1])
+        {
+            a = (FROM_HEX (ap[0]) << 4) | FROM_HEX (ap[1]);
+            ap += 2;
+        }
+        if (b == '%' && bp[0] && bp[1])
+        {
+            b = (FROM_HEX (bp[0]) << 4) | FROM_HEX (bp[1]);
+            bp += 2;
+        }
 
         if (a > '9' || b > '9' || a < '0' || b < '0')
         {
@@ -607,11 +336,11 @@ gint string_compare_encoded (const gchar * ap, const gchar * bp)
         }
         else
         {
-            gint x = a - '0';
+            int x = a - '0';
             for (; (a = * ap) <= '9' && a >= '0'; ap ++)
                 x = 10 * x + (a - '0');
 
-            gint y = b - '0';
+            int y = b - '0';
             for (; (b = * bp) >= '0' && b <= '9'; bp ++)
                 y = 10 * y + (b - '0');
 
@@ -625,40 +354,15 @@ gint string_compare_encoded (const gchar * ap, const gchar * bp)
     return 0;
 }
 
-const void * memfind (const void * mem, gint size, const void * token, gint
- length)
-{
-    if (! length)
-        return mem;
-
-    size -= length - 1;
-
-    while (size > 0)
-    {
-        const void * maybe = memchr (mem, * (guchar *) token, size);
-
-        if (maybe == NULL)
-            return NULL;
-
-        if (! memcmp (maybe, token, length))
-            return maybe;
-
-        size -= (guchar *) maybe + 1 - (guchar *) mem;
-        mem = (guchar *) maybe + 1;
-    }
-
-    return NULL;
-}
-
-gchar *
-str_replace_fragment(gchar *s, gint size, const gchar *old, const gchar *new)
+char *
+str_replace_fragment(char *s, int size, const char *old, const char *new)
 {
-    gchar *ptr = s;
-    gint left = strlen(s);
-    gint avail = size - (left + 1);
-    gint oldlen = strlen(old);
-    gint newlen = strlen(new);
-    gint diff = newlen - oldlen;
+    char *ptr = s;
+    int left = strlen(s);
+    int avail = size - (left + 1);
+    int oldlen = strlen(old);
+    int newlen = strlen(new);
+    int diff = newlen - oldlen;
 
     while (left >= oldlen)
     {
@@ -683,12 +387,173 @@ str_replace_fragment(gchar *s, gint size, const gchar *old, const gchar *new)
     return s;
 }
 
-void
-string_canonize_case(gchar *str)
+/*
+ * Routines to convert numbers between string and binary representations.
+ *
+ * Goals:
+ *
+ *  - Accuracy, meaning that we can convert back and forth between string and
+ *    binary without the number changing slightly each time.
+ *  - Consistency, meaning that we get the same results no matter what
+ *    architecture or locale we have to deal with.
+ *  - Readability, meaning that the number one is rendered "1", not "1.000".
+ *
+ * Values are limited between -1,000,000,000 and 1,000,000,000 (inclusive) and
+ * have an accuracy of 6 decimal places.
+ */
+
+bool_t string_to_int (const char * string, int * addr)
 {
-    while (*str)
+    bool_t neg = (string[0] == '-');
+    if (neg)
+        string ++;
+
+    int val = 0;
+    char c;
+
+    while ((c = * string ++))
     {
-        *str = g_ascii_toupper(*str);
-        str++;
+        if (c < '0' || c > '9' || val > 100000000)
+            goto ERR;
+
+        val = val * 10 + (c - '0');
     }
-}
+
+    if (val > 1000000000)
+        goto ERR;
+
+    * addr = neg ? -val : val;
+    return TRUE;
+
+ERR:
+    return FALSE;
+}
+
+bool_t string_to_double (const char * string, double * addr)
+{
+    bool_t neg = (string[0] == '-');
+    if (neg)
+        string ++;
+
+    const char * p = strchr (string, '.');
+    int i, f;
+
+    if (p)
+    {
+        char buf[11];
+        int len;
+
+        len = p - string;
+        if (len > 10)
+            goto ERR;
+
+        memcpy (buf, string, len);
+        buf[len] = 0;
+
+        if (! string_to_int (buf, & i))
+            goto ERR;
+
+        len = strlen (p + 1);
+        if (len > 6)
+            goto ERR;
+
+        memcpy (buf, p + 1, len);
+        memset (buf + len, '0', 6 - len);
+        buf[6] = 0;
+
+        if (! string_to_int (buf, & f))
+            goto ERR;
+    }
+    else
+    {
+        if (! string_to_int (string, & i))
+            goto ERR;
+
+        f = 0;
+    }
+
+    double val = i + (double) f / 1000000;
+    if (val > 1000000000)
+        goto ERR;
+
+    * addr = neg ? -val : val;
+    return TRUE;
+
+ERR:
+    return FALSE;
+}
+
+char * int_to_string (int val)
+{
+    g_return_val_if_fail (val >= -1000000000 && val <= 1000000000, NULL);
+    return g_strdup_printf ("%d", val);
+}
+
+char * double_to_string (double val)
+{
+    g_return_val_if_fail (val >= -1000000000 && val <= 1000000000, NULL);
+
+    bool_t neg = (val < 0);
+    if (neg)
+        val = -val;
+
+    int i = floor (val);
+    int f = round ((val - i) * 1000000);
+
+    if (f == 1000000)
+    {
+        i ++;
+        f = 0;
+    }
+
+    char * s = neg ? g_strdup_printf ("-%d.%06d", i, f) : g_strdup_printf ("%d.%06d", i, f);
+
+    char * c = s + strlen (s);
+    while (* (c - 1) == '0')
+        c --;
+    if (* (c - 1) == '.')
+        c --;
+    * c = 0;
+
+    return s;
+}
+
+bool_t string_to_double_array (const char * string, double * array, int count)
+{
+    char * * split = g_strsplit (string, ",", -1);
+    if (g_strv_length (split) != count)
+        goto ERR;
+
+    for (int i = 0; i < count; i ++)
+    {
+        if (! string_to_double (split[i], & array[i]))
+            goto ERR;
+    }
+
+    g_strfreev (split);
+    return TRUE;
+
+ERR:
+    g_strfreev (split);
+    return FALSE;
+}
+
+char * double_array_to_string (const double * array, int count)
+{
+    char * * split = g_malloc0 (sizeof (char *) * (count + 1));
+
+    for (int i = 0; i < count; i ++)
+    {
+        split[i] = double_to_string (array[i]);
+        if (! split[i])
+            goto ERR;
+    }
+
+    char * string = g_strjoinv (",", split);
+    g_strfreev (split);
+    return string;
+
+ERR:
+    g_strfreev (split);
+    return NULL;
+}
diff --git a/src/libaudcore/audstrings.h b/src/libaudcore/audstrings.h
index bc64e97..363daf1 100644
--- a/src/libaudcore/audstrings.h
+++ b/src/libaudcore/audstrings.h
@@ -1,83 +1,59 @@
-/*  Audacious
- *  Copyright (C) 2005-2007  Audacious development team.
+/*
+ * audstrings.h
+ * Copyright 2009-2011 John Lindgren
+ * Copyright 2010 William Pitcock
  *
- *  BMP - Cross-platform multimedia player
- *  Copyright (C) 2003-2004  BMP development team.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
  *
- *  Based on XMMS:
- *  Copyright (C) 1998-2003  XMMS development team.
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions, and the following disclaimer.
  *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; under version 3 of the License.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ *    this list of conditions, and the following disclaimer in the documentation
+ *    provided with the distribution.
  *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program.  If not, see <http://www.gnu.org/licenses>.
- *
- *  The Audacious team does not consider modular code linking to
- *  Audacious or using our public API to be a derived work.
+ * This software is provided "as is" and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising from
+ * the use of this software.
  */
 
-#ifndef AUDACIOUS_STRINGS_H
-#define AUDACIOUS_STRINGS_H
-
-#include <stdlib.h>
-#include <glib.h>
-
-G_BEGIN_DECLS
-
-gchar *str_append(gchar * str, const gchar * add_str);
-gchar *str_replace(gchar * str, gchar * new_str);
-void str_replace_in(gchar ** str, gchar * new_str);
-
-gboolean str_has_prefix_nocase(const gchar * str, const gchar * prefix);
-gboolean str_has_suffix_nocase(const gchar * str, const gchar * suffix);
-gboolean str_has_suffixes_nocase(const gchar * str, gchar * const *suffixes);
-
-gchar *str_assert_utf8(const gchar *str);
-
-void str_set_utf8_impl (gchar * (* stu_impl) (const gchar *),
- gchar * (* stuf_impl) (const gchar *, gssize, gsize *, gsize *, GError * *));
-gchar * str_to_utf8 (const gchar * str);
-gchar * str_to_utf8_full (const gchar * str, gssize len, gsize * bytes_read,
- gsize * bytes_written, GError * * err);
+#ifndef LIBAUDCORE_STRINGS_H
+#define LIBAUDCORE_STRINGS_H
 
-const gchar *str_skip_chars(const gchar * str, const gchar * chars);
+#include <libaudcore/core.h>
 
-gchar *convert_dos_path(gchar * text);
+bool_t str_has_prefix_nocase(const char * str, const char * prefix);
+bool_t str_has_suffix_nocase(const char * str, const char * suffix);
 
-gchar *filename_get_subtune(const gchar * filename, gint * track);
-gchar *filename_split_subtune(const gchar * filename, gint * track);
+void str_set_utf8_impl (char * (* stu_impl) (const char *),
+ char * (* stuf_impl) (const char *, int, int *, int *));
+char * str_to_utf8 (const char * str);
+char * str_to_utf8_full (const char * str, int len, int * bytes_read, int * bytes_written);
 
-void string_replace_char (gchar * string, gchar old_str, gchar new_str);
-void string_decode_percent (gchar * string);
-gchar * string_encode_percent (const gchar * string, gboolean is_filename);
+void string_replace_char (char * string, char old_str, char new_str);
 
-gboolean uri_is_utf8 (const gchar * uri, gboolean warn);
-gchar * uri_to_utf8 (const gchar * uri);
-void uri_check_utf8 (gchar * * uri, gboolean warn);
-gchar * filename_to_uri (const gchar * filename);
-gchar * uri_to_filename (const gchar * uri);
-gchar * uri_to_display (const gchar * uri);
+void str_decode_percent (const char * str, int len, char * out);
+void str_encode_percent (const char * str, int len, char * out);
 
-gchar * uri_get_extension (const gchar * uri);
+char * filename_to_uri (const char * filename);
+char * uri_to_filename (const char * uri);
+char * uri_to_display (const char * uri);
 
-void string_cut_extension(gchar *string);
-gint string_compare (const gchar * a, const gchar * b);
-gint string_compare_encoded (const gchar * a, const gchar * b);
+void uri_parse (const char * uri, const char * * base_p, const char * * ext_p,
+ const char * * sub_p, int * isub_p);
 
-const void * memfind (const void * mem, gint size, const void * token, gint
- length);
+int string_compare (const char * a, const char * b);
+int string_compare_encoded (const char * a, const char * b);
 
-gchar *str_replace_fragment(gchar *s, gint size, const gchar *old_str, const gchar *new_str);
+char *str_replace_fragment(char *s, int size, const char *old_str, const char *new_str);
 
-void string_canonize_case(gchar *string);
+bool_t string_to_int (const char * string, int * addr);
+bool_t string_to_double (const char * string, double * addr);
+char * int_to_string (int val);
+char * double_to_string (double val);
 
-G_END_DECLS
+bool_t string_to_double_array (const char * string, double * array, int count);
+char * double_array_to_string (const double * array, int count);
 
-#endif /* AUDACIOUS_STRINGS_H */
+#endif /* LIBAUDCORE_STRINGS_H */
diff --git a/src/libaudcore/core.h b/src/libaudcore/core.h
new file mode 100644
index 0000000..d8bb57a
--- /dev/null
+++ b/src/libaudcore/core.h
@@ -0,0 +1,87 @@
+/*
+ * core.h
+ * Copyright 2011 John Lindgren
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions, and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ *    this list of conditions, and the following disclaimer in the documentation
+ *    provided with the distribution.
+ *
+ * This software is provided "as is" and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising from
+ * the use of this software.
+ */
+
+#ifndef LIBAUDCORE_CORE_H
+#define LIBAUDCORE_CORE_H
+
+/* #define STRPOOL_DEBUG */
+
+/* "bool_t" means "int" for compatibility with GLib */
+#undef bool_t
+#define bool_t int
+
+#undef FALSE
+#define FALSE ((bool_t) 0)
+#undef TRUE
+#define TRUE ((bool_t) 1)
+
+/* Simple sanity check to catch (1) strings that are still in use after their
+ * reference count has dropped to zero and (2) strings that should have been
+ * pooled but never were.  If the check fails, the program is aborted. */
+#define STR_CHECK(str) do {if ((str) && (str)[-1] != '@') strpool_abort (str);} while (0)
+
+/* If the pool contains a copy of <str>, increments its reference count.
+ * Otherwise, adds a copy of <str> to the pool with a reference count of one.
+ * In either case, returns the copy.  Because this copy may be shared by other
+ * parts of the code, it should not be modified.  If <str> is NULL, simply
+ * returns NULL with no side effects. */
+#ifdef STRPOOL_DEBUG
+char * str_get_debug (const char * str, const char * file, int line);
+#define str_get(str) str_get_debug (str, __FILE__, __LINE__)
+#else
+char * str_get (const char * str);
+#endif
+
+/* Increments the reference count of <str>, where <str> is the address of a
+ * string already in the pool.  Faster than calling str_get() a second time.
+ * Returns <str> for convenience.  If <str> is NULL, simply returns NULL with no
+ * side effects. */
+#ifdef STRPOOL_DEBUG
+char * str_ref_debug (char * str, const char * file, int line);
+#define str_ref(str) str_ref_debug (str, __FILE__, __LINE__)
+#else
+char * str_ref (char * str);
+#endif
+
+/* Decrements the reference count of <str>, where <str> is the address of a
+ * string in the pool.  If the reference count drops to zero, releases the
+ * memory used by <str>.   If <str> is NULL, simply returns NULL with no side
+ * effects. */
+#ifdef STRPOOL_DEBUG
+void str_unref_debug (char * str, const char * file, int line);
+#define str_unref(str) str_unref_debug (str, __FILE__, __LINE__)
+#else
+void str_unref (char * str);
+#endif
+
+/* Calls str_get() on the first <len> characters of <str>.  If <str> has less
+ * than or equal to <len> characters, equivalent to str_get(). */
+char * str_nget (const char * str, int len);
+
+/* Calls sprintf() internally, then pools the produced string with str_get(). */
+char * str_printf (const char * format, ...);
+
+/* Used by STR_CHECK; should not be called directly. */
+void strpool_abort (char * str);
+
+/* Releases all memory used by the string pool.  If strings remain in the pool,
+ * a warning may be printed to stderr in order to reveal memory leaks. */
+void strpool_shutdown (void);
+
+#endif /* LIBAUDCORE_CORE_H */
diff --git a/src/libaudcore/eventqueue.c b/src/libaudcore/eventqueue.c
index e10cd16..aa12cf2 100644
--- a/src/libaudcore/eventqueue.c
+++ b/src/libaudcore/eventqueue.c
@@ -1,87 +1,97 @@
 /*
- * Audacious
- * Copyright (c) 2006-2007 Audacious development team.
+ * eventqueue.c
+ * Copyright 2011 John Lindgren
  *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; under version 3 of the License.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
  *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions, and the following disclaimer.
  *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses>.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ *    this list of conditions, and the following disclaimer in the documentation
+ *    provided with the distribution.
  *
- * The Audacious team does not consider modular code linking to
- * Audacious or using our public API to be a derived work.
+ * This software is provided "as is" and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising from
+ * the use of this software.
  */
 
-#include <stdio.h>
+#include <glib.h>
+#include <pthread.h>
+#include <string.h>
 
-#include "eventqueue.h"
+#include "core.h"
+#include "hook.h"
 
-static gboolean eventqueue_handle(gpointer udata)
+typedef struct {
+    char * name;
+    void * data;
+    void (* destroy) (void *);
+    int source;
+} Event;
+
+static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
+static GList * events;
+
+static bool_t event_execute (Event * event)
 {
-    HookCallQueue *hq = (HookCallQueue *) udata;
+    pthread_mutex_lock (& mutex);
+
+    g_source_remove (event->source);
+    events = g_list_remove (events, event);
 
-    hook_call(hq->name, hq->user_data);
+    pthread_mutex_unlock (& mutex);
 
-    g_free(hq->name);
-    if (hq->free_data && hq->user_data)
-        g_free(hq->user_data);
+    hook_call (event->name, event->data);
 
-    g_slice_free(HookCallQueue, hq);
+    g_free (event->name);
+    if (event->destroy)
+        event->destroy (event->data);
 
+    g_slice_free (Event, event);
     return FALSE;
 }
 
-void event_queue(const gchar *name, gpointer user_data)
+void event_queue_full (int time, const char * name, void * data, void (* destroy) (void *))
 {
-    HookCallQueue *hq;
+    Event * event = g_slice_new (Event);
+    event->name = g_strdup (name);
+    event->data = data;
+    event->destroy = destroy;
 
-    hq = g_slice_new0(HookCallQueue);
-    hq->name = g_strdup(name);
-    hq->user_data = user_data;
-    hq->free_data = FALSE;
+    pthread_mutex_lock (& mutex);
 
-    g_idle_add_full(G_PRIORITY_HIGH_IDLE, eventqueue_handle, hq, NULL);
+    event->source = g_timeout_add (time, (GSourceFunc) event_execute, event);
+    events = g_list_prepend (events, event);
+
+    pthread_mutex_unlock (& mutex);
 }
 
-void event_queue_timed(gint time, const gchar *name, gpointer user_data)
+void event_queue_cancel (const char * name, void * data)
 {
-    HookCallQueue *hq;
+    pthread_mutex_lock (& mutex);
 
-    /* event_queue() with a pointer may be unsafe: the data might
-     * get freed or moved before the event is processed. -jlindgren
-     */
-    if (user_data)
+    GList * node = events;
+    while (node)
     {
-        g_warning("Unsafe event_queue of \"%s\" with "
-            "pointer. (Use event_queue_with_data_free instead.)\n", name);
-        return;
-    }
+        Event * event = node->data;
+        GList * next = node->next;
 
-    hq = g_slice_new0(HookCallQueue);
-    hq->name = g_strdup(name);
-    hq->user_data = user_data;
-    hq->free_data = FALSE;
+        if (! strcmp (event->name, name) && (! data || event->data == data))
+        {
+            g_source_remove (event->source);
+            events = g_list_delete_link (events, node);
 
-    g_timeout_add(time, eventqueue_handle, hq);
-}
-
-void event_queue_with_data_free(const gchar *name, gpointer user_data)
-{
-    HookCallQueue *hq;
+            g_free (event->name);
+            if (event->destroy)
+                event->destroy (event->data);
 
-    g_return_if_fail(name != NULL);
-    g_return_if_fail(user_data != NULL);
+            g_slice_free (Event, event);
+        }
 
-    hq = g_slice_new0(HookCallQueue);
-    hq->name = g_strdup(name);
-    hq->user_data = user_data;
-    hq->free_data = TRUE;
+        node = next;
+    }
 
-    g_idle_add_full(G_PRIORITY_HIGH_IDLE, eventqueue_handle, hq, NULL);
+    pthread_mutex_unlock (& mutex);
 }
diff --git a/src/libaudcore/eventqueue.h b/src/libaudcore/eventqueue.h
deleted file mode 100644
index 9b26db3..0000000
--- a/src/libaudcore/eventqueue.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Audacious
- * Copyright (c) 2006-2007 Audacious development team.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; under version 3 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses>.
- *
- * The Audacious team does not consider modular code linking to
- * Audacious or using our public API to be a derived work.
- */
-
-#include <glib.h>
-
-#include "hook.h"
-
-#ifndef AUDACIOUS_EVENTQUEUE_H
-#define AUDACIOUS_EVENTQUEUE_H
-
-typedef struct {
-    gchar *name;
-    gpointer *user_data;
-    gboolean free_data;
-} HookCallQueue;
-
-void event_queue(const gchar *name, gpointer user_data);
-void event_queue_timed(gint time, const gchar *name, gpointer user_data);
-void event_queue_with_data_free(const gchar *name, gpointer user_data);
-
-#endif /* AUDACIOUS_EVENTQUEUE_H */
diff --git a/src/libaudcore/hook.c b/src/libaudcore/hook.c
index d9f9bef..e3011a8 100644
--- a/src/libaudcore/hook.c
+++ b/src/libaudcore/hook.c
@@ -1,182 +1,109 @@
-/*  Audacious
- *  Copyright (c) 2006-2007 William Pitcock
+/*
+ * hook.c
+ * Copyright 2011 John Lindgren
  *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; under version 3 of the License.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
  *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions, and the following disclaimer.
  *
- *  You should have received a copy of the GNU General Public License
- *  along with this program.  If not, see <http://www.gnu.org/licenses>.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ *    this list of conditions, and the following disclaimer in the documentation
+ *    provided with the distribution.
  *
- *  The Audacious team does not consider modular code linking to
- *  Audacious or using our public API to be a derived work.
+ * This software is provided "as is" and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising from
+ * the use of this software.
  */
 
-#include <stdio.h>
+#include <glib.h>
+#include <pthread.h>
 #include <string.h>
 
-#include <glib.h>
+#include "core.h"
 #include "hook.h"
 
-static GThread * hook_thread;
-static GSList *hook_list;
+typedef struct {
+    HookFunction func;
+    void * user;
+} HookItem;
 
-void hook_init (void)
-{
-    hook_thread = g_thread_self ();
-}
+static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
+static GHashTable * hooks;
 
-static Hook *
-hook_find(const gchar *name)
+/* str_unref() may be a macro */
+static void str_unref_cb (void * str)
 {
-    GSList *list;
-
-    for (list = hook_list; list != NULL; list = g_slist_next(list))
-    {
-        Hook *hook = (Hook *) list->data;
-
-        if (!g_ascii_strcasecmp(hook->name, name))
-            return hook;
-    }
-
-    return NULL;
+    str_unref (str);
 }
 
-void
-hook_register(const gchar *name)
+void hook_associate (const char * name, HookFunction func, void * user)
 {
-    Hook *hook;
+    pthread_mutex_lock (& mutex);
 
-    g_return_if_fail(name != NULL);
+    if (! hooks)
+        hooks = g_hash_table_new_full (g_str_hash, g_str_equal, str_unref_cb, NULL);
 
-    if (hook_find(name) != NULL)
-        return;
+    HookItem * item = g_slice_new (HookItem);
+    item->func = func;
+    item->user = user;
 
-    hook = g_new0(Hook, 1);
-    hook->name = g_strdup(name);
-    hook->items = NULL;
+    GList * items = g_hash_table_lookup (hooks, name);
+    items = g_list_prepend (items, item);
+    g_hash_table_insert (hooks, str_get (name), items);
 
-    hook_list = g_slist_append(hook_list, hook);
+    pthread_mutex_unlock (& mutex);
 }
 
-gint
-hook_associate(const gchar *name, HookFunction func, gpointer user_data)
+void hook_dissociate_full (const char * name, HookFunction func, void * user)
 {
-    Hook *hook;
-    HookItem *hookitem;
+    pthread_mutex_lock (& mutex);
 
-    g_return_val_if_fail(name != NULL, -1);
-    g_return_val_if_fail(func != NULL, -1);
+    if (! hooks)
+        goto DONE;
 
-    hook = hook_find(name);
+    GList * items = g_hash_table_lookup (hooks, name);
 
-    if (hook == NULL)
+    GList * node = items;
+    while (node)
     {
-        hook_register(name);
-        hook = hook_find(name);
-    }
-
-    /* this *cant* happen */
-    g_return_val_if_fail(hook != NULL, -1);
-
-    hookitem = g_new0(HookItem, 1);
-    hookitem->func = func;
-    hookitem->user_data = user_data;
-
-    hook->items = g_slist_append(hook->items, hookitem);
-    return 0;
-}
-
-gint
-hook_dissociate(const gchar *name, HookFunction func)
-{
-    Hook *hook;
-    GSList *iter;
-
-    g_return_val_if_fail(name != NULL, -1);
-    g_return_val_if_fail(func != NULL, -1);
-
-    hook = hook_find(name);
+        HookItem * item = node->data;
+        GList * next = node->next;
 
-    if (hook == NULL)
-        return -1;
-
-    iter = hook->items;
-    while (iter != NULL)
-    {
-        HookItem *hookitem = (HookItem*)iter->data;
-        if (hookitem->func == func)
+        if (item->func == func && (! user || item->user == user))
         {
-            hook->items = g_slist_delete_link(hook->items, iter);
-            g_free( hookitem );
-            return 0;
+            items = g_list_delete_link (items, node);
+            g_slice_free (HookItem, item);
         }
-        iter = g_slist_next(iter);
-    }
-    return -1;
-}
 
-gint
-hook_dissociate_full(const gchar *name, HookFunction func, gpointer user_data)
-{
-    Hook *hook;
-    GSList *iter;
-
-    g_return_val_if_fail(name != NULL, -1);
-    g_return_val_if_fail(func != NULL, -1);
-
-    hook = hook_find(name);
+        node = next;
+    }
 
-    if (hook == NULL)
-        return -1;
+    if (items)
+        g_hash_table_insert (hooks, str_get (name), items);
+    else
+        g_hash_table_remove (hooks, name);
 
-    iter = hook->items;
-    while (iter != NULL)
-    {
-        HookItem *hookitem = (HookItem*)iter->data;
-        if (hookitem->func == func && hookitem->user_data == user_data)
-        {
-            hook->items = g_slist_delete_link(hook->items, iter);
-            g_free( hookitem );
-            return 0;
-        }
-        iter = g_slist_next(iter);
-    }
-    return -1;
+DONE:
+    pthread_mutex_unlock (& mutex);
 }
 
-void
-hook_call(const gchar *name, gpointer hook_data)
+void hook_call (const char * name, void * data)
 {
-    Hook *hook;
-    GSList *iter;
+    pthread_mutex_lock (& mutex);
 
-    // Some plugins (skins, cdaudio-ng, maybe others) set up hooks that are not
-    // thread safe. We can disagree about whether that's the way it should be;
-    // but that's the way it is, so live with it. -jlindgren
-    if (g_thread_self () != hook_thread)
-    {
-        fprintf (stderr, "Warning: Unsafe hook_call of \"%s\" from secondary "
-         "thread. (Use event_queue instead.)\n", name);
-        return;
-    }
+    if (! hooks)
+        goto DONE;
 
-    hook = hook_find(name);
+    GList * node = g_hash_table_lookup (hooks, name);
 
-    if (hook == NULL)
-        return;
-
-    for (iter = hook->items; iter != NULL; iter = g_slist_next(iter))
+    for (; node; node = node->next)
     {
-        HookItem *hookitem = (HookItem*)iter->data;
-
-        g_return_if_fail(hookitem->func != NULL);
-
-        hookitem->func(hook_data, hookitem->user_data);
+        HookItem * item = node->data;
+        item->func (data, item->user);
     }
+
+DONE:
+    pthread_mutex_unlock (& mutex);
 }
diff --git a/src/libaudcore/hook.h b/src/libaudcore/hook.h
index a2ae3e9..79fe8ac 100644
--- a/src/libaudcore/hook.h
+++ b/src/libaudcore/hook.h
@@ -1,44 +1,50 @@
-/*  Audacious
- *  Copyright (c) 2006-2007 William Pitcock
+/*
+ * hook.h
+ * Copyright 2011 John Lindgren
  *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; under version 3 of the License.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
  *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions, and the following disclaimer.
  *
- *  You should have received a copy of the GNU General Public License
- *  along with this program.  If not, see <http://www.gnu.org/licenses>.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ *    this list of conditions, and the following disclaimer in the documentation
+ *    provided with the distribution.
  *
- *  The Audacious team does not consider modular code linking to
- *  Audacious or using our public API to be a derived work.
+ * This software is provided "as is" and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising from
+ * the use of this software.
  */
 
-#ifndef AUDACIOUS_HOOK_H
-#define AUDACIOUS_HOOK_H
+#ifndef LIBAUDCORE_HOOK_H
+#define LIBAUDCORE_HOOK_H
 
-#include <glib.h>
+typedef void (* HookFunction) (void * data, void * user);
 
-typedef void (*HookFunction)(gpointer hook_data, gpointer user_data);
+/* Adds <func> to the list of functions to be called when the hook <name> is
+ * triggered. */
+void hook_associate (const char * name, HookFunction func, void * user);
 
-typedef struct {
-    HookFunction func;
-    gpointer user_data;
-} HookItem;
+/* Removes all instances matching <func> and <user> from the list of functions
+ * to be called when the hook <name> is triggered.  If <user> is NULL, all
+ * instances matching <func> are removed. */
+void hook_dissociate_full (const char * name, HookFunction func, void * user);
 
-typedef struct {
-    const gchar *name;
-    GSList *items;
-} Hook;
+#define hook_dissociate(n, f) hook_dissociate_full (n, f, NULL)
 
-void hook_init (void);
-void hook_register(const gchar *name);
-gint hook_associate(const gchar *name, HookFunction func, gpointer user_data);
-gint hook_dissociate(const gchar *name, HookFunction func);
-gint hook_dissociate_full(const gchar *name, HookFunction func, gpointer user_data);
-void hook_call(const gchar *name, gpointer hook_data);
+/* Triggers the hook <name>. */
+void hook_call (const char * name, void * data);
 
-#endif /* AUDACIOUS_HOOK_H */
+/* Schedules a call of the hook <name> from the program's main loop, to be
+ * executed in <time> milliseconds.  If <destroy> is not NULL, it will be called
+ * on <data> after the hook is called. */
+void event_queue_full (int time, const char * name, void * data, void (* destroy) (void *));
+
+#define event_queue(n, d) event_queue_full (0, n, d, NULL)
+
+/* Cancels pending hook calls matching <name> and <data>.  If <data> is NULL,
+ * all hook calls matching <name> are canceled. */
+void event_queue_cancel (const char * name, void * data);
+
+#endif /* LIBAUDCORE_HOOK_H */
diff --git a/src/libaudcore/index.c b/src/libaudcore/index.c
index 0ee66db..4925eba 100644
--- a/src/libaudcore/index.c
+++ b/src/libaudcore/index.c
@@ -1,22 +1,20 @@
 /*
  * index.c
- * Copyright 2009-2010 John Lindgren
+ * Copyright 2009-2011 John Lindgren
  *
- * This file is part of Audacious.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
  *
- * Audacious is free software: you can redistribute it and/or modify it under
- * the terms of the GNU General Public License as published by the Free Software
- * Foundation, version 2 or version 3 of the License.
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions, and the following disclaimer.
  *
- * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ *    this list of conditions, and the following disclaimer in the documentation
+ *    provided with the distribution.
  *
- * You should have received a copy of the GNU General Public License along with
- * Audacious. If not, see <http://www.gnu.org/licenses/>.
- *
- * The Audacious team does not consider modular code linking to Audacious or
- * using our public API to be a derived work.
+ * This software is provided "as is" and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising from
+ * the use of this software.
  */
 
 #include <stdlib.h>
@@ -26,39 +24,43 @@
 
 #include "index.h"
 
-struct index
-{
+struct _Index {
     void * * data;
-    gint count, size;
-    gint (* compare) (const void * a, const void * b, void * data);
-    void * compare_data;
+    int count, size;
 };
 
-struct index * index_new (void)
+typedef struct {
+    int (* compare) (const void * a, const void * b);
+} CompareWrapper;
+
+typedef struct {
+    int (* compare) (const void * a, const void * b, void * data);
+    void * data;
+} CompareWrapper2;
+
+Index * index_new (void)
 {
-    struct index * index = g_slice_new (struct index);
+    Index * index = g_slice_new (Index);
 
     index->data = NULL;
     index->count = 0;
     index->size = 0;
-    index->compare = NULL;
-    index->compare_data = NULL;
 
     return index;
 }
 
-void index_free (struct index * index)
+void index_free (Index * index)
 {
     g_free (index->data);
-    g_slice_free (struct index, index);
+    g_slice_free (Index, index);
 }
 
-gint index_count (struct index * index)
+int index_count (Index * index)
 {
     return index->count;
 }
 
-void index_allocate (struct index * index, gint size)
+void index_allocate (Index * index, int size)
 {
     if (size <= index->size)
         return;
@@ -72,17 +74,17 @@ void index_allocate (struct index * index, gint size)
     index->data = g_realloc (index->data, sizeof (void *) * index->size);
 }
 
-void index_set (struct index * index, gint at, void * value)
+void index_set (Index * index, int at, void * value)
 {
     index->data[at] = value;
 }
 
-void * index_get (struct index * index, gint at)
+void * index_get (Index * index, int at)
 {
     return index->data[at];
 }
 
-static void make_room (struct index * index, gint at, gint count)
+static void make_room (Index * index, int at, int count)
 {
     index_allocate (index, index->count + count);
 
@@ -93,88 +95,81 @@ static void make_room (struct index * index, gint at, gint count)
     index->count += count;
 }
 
-void index_insert (struct index * index, gint at, void * value)
+void index_insert (Index * index, int at, void * value)
 {
     make_room (index, at, 1);
     index->data[at] = value;
 }
 
-void index_append (struct index * index, void * value)
+void index_append (Index * index, void * value)
 {
     index_insert (index, index->count, value);
 }
 
-void index_copy_set (struct index * source, gint from, struct index * target,
- gint to, gint count)
+void index_copy_set (Index * source, int from, Index * target,
+ int to, int count)
 {
     memcpy (target->data + to, source->data + from, sizeof (void *) * count);
 }
 
-void index_copy_insert (struct index * source, gint from, struct index * target,
- gint to, gint count)
+void index_copy_insert (Index * source, int from, Index * target,
+ int to, int count)
 {
     make_room (target, to, count);
     memcpy (target->data + to, source->data + from, sizeof (void *) * count);
 }
 
-void index_copy_append (struct index * source, gint from, struct index * target,
- gint count)
+void index_copy_append (Index * source, int from, Index * target,
+ int count)
 {
     index_copy_insert (source, from, target, target->count, count);
 }
 
-void index_merge_insert (struct index * first, gint at, struct index * second)
+void index_merge_insert (Index * first, int at, Index * second)
 {
     index_copy_insert (second, 0, first, at, second->count);
 }
 
-void index_merge_append (struct index * first, struct index * second)
+void index_merge_append (Index * first, Index * second)
 {
     index_copy_insert (second, 0, first, first->count, second->count);
 }
 
-void index_move (struct index * index, gint from, gint to, gint count)
+void index_move (Index * index, int from, int to, int count)
 {
     memmove (index->data + to, index->data + from, sizeof (void *) * count);
 }
 
-void index_delete (struct index * index, gint at, gint count)
+void index_delete (Index * index, int at, int count)
 {
     index->count -= count;
     memmove (index->data + at, index->data + at + count, sizeof (void *) *
      (index->count - at));
 }
 
-static gint index_compare (const void * a, const void * b, void * _compare)
+static int index_compare (const void * ap, const void * bp, void * _wrapper)
 {
-    gint (* compare) (const void *, const void *) = _compare;
-
-    return compare (* (const void * *) a, * (const void * *) b);
+    CompareWrapper * wrapper = _wrapper;
+    return wrapper->compare (* (const void * *) ap, * (const void * *) bp);
 }
 
-void index_sort (struct index * index, gint (* compare) (const void *, const
- void *))
+void index_sort (Index * index, int (* compare) (const void *, const void *))
 {
+    CompareWrapper wrapper = {compare};
     g_qsort_with_data (index->data, index->count, sizeof (void *),
-     index_compare, compare);
+     index_compare, & wrapper);
 }
 
-static gint index_compare_with_data (const void * a, const void * b, void *
- _index)
+static int index_compare2 (const void * ap, const void * bp, void * _wrapper)
 {
-    struct index * index = _index;
-
-    return index->compare (* (const void * *) a, * (const void * *) b,
-     index->compare_data);
+    CompareWrapper2 * wrapper = _wrapper;
+    return wrapper->compare (* (const void * *) ap, * (const void * *) bp, wrapper->data);
 }
 
-void index_sort_with_data (struct index * index, gint (* compare)
+void index_sort_with_data (Index * index, int (* compare)
  (const void * a, const void * b, void * data), void * data)
 {
-    index->compare = compare;
-    index->compare_data = data;
+    CompareWrapper2 wrapper = {compare, data};
     g_qsort_with_data (index->data, index->count, sizeof (void *),
-     index_compare_with_data, index);
-    index->compare = NULL;
-    index->compare_data = NULL;
+     index_compare2, & wrapper);
 }
diff --git a/src/libaudcore/index.h b/src/libaudcore/index.h
index 0a3499b..68d21a6 100644
--- a/src/libaudcore/index.h
+++ b/src/libaudcore/index.h
@@ -1,50 +1,45 @@
 /*
  * index.h
- * Copyright 2009-2010 John Lindgren
+ * Copyright 2009-2011 John Lindgren
  *
- * This file is part of Audacious.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
  *
- * Audacious is free software: you can redistribute it and/or modify it under
- * the terms of the GNU General Public License as published by the Free Software
- * Foundation, version 2 or version 3 of the License.
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions, and the following disclaimer.
  *
- * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ *    this list of conditions, and the following disclaimer in the documentation
+ *    provided with the distribution.
  *
- * You should have received a copy of the GNU General Public License along with
- * Audacious. If not, see <http://www.gnu.org/licenses/>.
- *
- * The Audacious team does not consider modular code linking to Audacious or
- * using our public API to be a derived work.
+ * This software is provided "as is" and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising from
+ * the use of this software.
  */
 
-#ifndef AUDACIOUS_INDEX_H
-#define AUDACIOUS_INDEX_H
+#ifndef LIBAUDCORE_INDEX_H
+#define LIBAUDCORE_INDEX_H
 
-struct index;
+struct _Index;
+typedef struct _Index Index;
 
-struct index * index_new (void);
-void index_free (struct index * index);
-gint index_count (struct index * index);
-void index_allocate (struct index * index, gint size);
-void index_set (struct index * index, gint at, void * value);
-void * index_get (struct index * index, gint at);
-void index_insert (struct index * index, gint at, void * value);
-void index_append (struct index * index, void * value);
-void index_copy_set (struct index * source, gint from, struct index * target,
- gint to, gint count);
-void index_copy_insert (struct index * source, gint from, struct index * target,
- gint to, gint count);
-void index_copy_append (struct index * source, gint from, struct index * target,
- gint count);
-void index_merge_insert (struct index * first, gint at, struct index * second);
-void index_merge_append (struct index * first, struct index * second);
-void index_move (struct index * index, gint from, gint to, gint count);
-void index_delete (struct index * index, gint at, gint count);
-void index_sort (struct index * index, gint (* compare) (const void * a,
- const void * b));
-void index_sort_with_data (struct index * index, gint (* compare)
- (const void * a, const void * b, void * data), void * data);
+Index * index_new (void);
+void index_free (Index * index);
+int index_count (Index * index);
+void index_allocate (Index * index, int size);
+void index_set (Index * index, int at, void * value);
+void * index_get (Index * index, int at);
+void index_insert (Index * index, int at, void * value);
+void index_append (Index * index, void * value);
+void index_copy_set (Index * source, int from, Index * target, int to, int count);
+void index_copy_insert (Index * source, int from, Index * target, int to, int count);
+void index_copy_append (Index * source, int from, Index * target, int count);
+void index_merge_insert (Index * first, int at, Index * second);
+void index_merge_append (Index * first, Index * second);
+void index_move (Index * index, int from, int to, int count);
+void index_delete (Index * index, int at, int count);
+void index_sort (Index * index, int (* compare) (const void * a, const void * b));
+void index_sort_with_data (Index * index, int (* compare) (const void * a,
+ const void * b, void * data), void * data);
 
-#endif
+#endif /* LIBAUDCORE_INDEX_H */
diff --git a/src/libaudcore/md5.c b/src/libaudcore/md5.c
deleted file mode 100644
index 3f98736..0000000
--- a/src/libaudcore/md5.c
+++ /dev/null
@@ -1,240 +0,0 @@
-/*
- * MD5 implementation, modified for Audacious from
- * Colin Plumb's implementation by Matti 'ccr' Hämäläinen.
- *
- * This code implements the MD5 message-digest algorithm.
- * The algorithm is due to Ron Rivest.  This code was
- * written by Colin Plumb in 1993, no copyright is claimed.
- * This code is in the public domain; do with it what you wish.
- */
-#include "md5.h"
-#include <string.h>
-
-
-#if G_BYTE_ORDER == G_LITTLE_ENDIAN
-#  define aud_md5_bytereverse(buf, len) do { } while (0)
-#else
-#  if G_BYTE_ORDER == G_BIG_ENDIAN
-static void aud_md5_bytereverse(guint8 *buf, guint l)
-{
-    guint32 t;
-    do {
-        t = (guint32) ((guint) buf[3] << 8 | buf[2]) << 16 | ((guint) buf[1] << 8 | buf[0]);
-        *(guint32 *) buf = t;
-        buf += sizeof(guint32);
-    } while (--l);
-}
-#  else
-#    error Unsupported endianess, not G_LITTLE_ENDIAN or G_BIG_ENDIAN!
-#  endif
-#endif
-
-
-/**
- * Start MD5 accumulation. Set bit count to 0 and buffer to mysterious
- * initialization constants. Initializes the given state context.
- *
- * @param ctx Context structure to initialize.
- */
-void aud_md5_init(aud_md5state_t *ctx)
-{
-    ctx->buf[0] = 0x67452301;
-    ctx->buf[1] = 0xefcdab89;
-    ctx->buf[2] = 0x98badcfe;
-    ctx->buf[3] = 0x10325476;
-
-    ctx->bits[0] = 0;
-    ctx->bits[1] = 0;
-}
-
-
-/* The core of the MD5 algorithm, this alters an existing MD5 hash to
- * reflect the addition of 16 longwords of new data.  aud_md5_update blocks
- * the data and converts bytes into longwords for this routine.
- */
-#define F1(x, y, z) (z ^ (x & (y ^ z)))
-#define F2(x, y, z) F1(z, x, y)
-#define F3(x, y, z) (x ^ y ^ z)
-#define F4(x, y, z) (y ^ (x | ~z))
-#define MD5STEP(f, w, x, y, z, data, s) \
-    ( w += f(x, y, z) + data,  w = w<<s | w>>(32-s),  w += x )
-
-static void aud_md5_transform(guint32 buf[4], guint32 const in[16])
-{
-    register guint32 a, b, c, d;
-
-    a = buf[0];
-    b = buf[1];
-    c = buf[2];
-    d = buf[3];
-
-    MD5STEP(F1, a, b, c, d, in[0] + 0xd76aa478, 7);
-    MD5STEP(F1, d, a, b, c, in[1] + 0xe8c7b756, 12);
-    MD5STEP(F1, c, d, a, b, in[2] + 0x242070db, 17);
-    MD5STEP(F1, b, c, d, a, in[3] + 0xc1bdceee, 22);
-    MD5STEP(F1, a, b, c, d, in[4] + 0xf57c0faf, 7);
-    MD5STEP(F1, d, a, b, c, in[5] + 0x4787c62a, 12);
-    MD5STEP(F1, c, d, a, b, in[6] + 0xa8304613, 17);
-    MD5STEP(F1, b, c, d, a, in[7] + 0xfd469501, 22);
-    MD5STEP(F1, a, b, c, d, in[8] + 0x698098d8, 7);
-    MD5STEP(F1, d, a, b, c, in[9] + 0x8b44f7af, 12);
-    MD5STEP(F1, c, d, a, b, in[10] + 0xffff5bb1, 17);
-    MD5STEP(F1, b, c, d, a, in[11] + 0x895cd7be, 22);
-    MD5STEP(F1, a, b, c, d, in[12] + 0x6b901122, 7);
-    MD5STEP(F1, d, a, b, c, in[13] + 0xfd987193, 12);
-    MD5STEP(F1, c, d, a, b, in[14] + 0xa679438e, 17);
-    MD5STEP(F1, b, c, d, a, in[15] + 0x49b40821, 22);
-
-    MD5STEP(F2, a, b, c, d, in[1] + 0xf61e2562, 5);
-    MD5STEP(F2, d, a, b, c, in[6] + 0xc040b340, 9);
-    MD5STEP(F2, c, d, a, b, in[11] + 0x265e5a51, 14);
-    MD5STEP(F2, b, c, d, a, in[0] + 0xe9b6c7aa, 20);
-    MD5STEP(F2, a, b, c, d, in[5] + 0xd62f105d, 5);
-    MD5STEP(F2, d, a, b, c, in[10] + 0x02441453, 9);
-    MD5STEP(F2, c, d, a, b, in[15] + 0xd8a1e681, 14);
-    MD5STEP(F2, b, c, d, a, in[4] + 0xe7d3fbc8, 20);
-    MD5STEP(F2, a, b, c, d, in[9] + 0x21e1cde6, 5);
-    MD5STEP(F2, d, a, b, c, in[14] + 0xc33707d6, 9);
-    MD5STEP(F2, c, d, a, b, in[3] + 0xf4d50d87, 14);
-    MD5STEP(F2, b, c, d, a, in[8] + 0x455a14ed, 20);
-    MD5STEP(F2, a, b, c, d, in[13] + 0xa9e3e905, 5);
-    MD5STEP(F2, d, a, b, c, in[2] + 0xfcefa3f8, 9);
-    MD5STEP(F2, c, d, a, b, in[7] + 0x676f02d9, 14);
-    MD5STEP(F2, b, c, d, a, in[12] + 0x8d2a4c8a, 20);
-
-    MD5STEP(F3, a, b, c, d, in[5] + 0xfffa3942, 4);
-    MD5STEP(F3, d, a, b, c, in[8] + 0x8771f681, 11);
-    MD5STEP(F3, c, d, a, b, in[11] + 0x6d9d6122, 16);
-    MD5STEP(F3, b, c, d, a, in[14] + 0xfde5380c, 23);
-    MD5STEP(F3, a, b, c, d, in[1] + 0xa4beea44, 4);
-    MD5STEP(F3, d, a, b, c, in[4] + 0x4bdecfa9, 11);
-    MD5STEP(F3, c, d, a, b, in[7] + 0xf6bb4b60, 16);
-    MD5STEP(F3, b, c, d, a, in[10] + 0xbebfbc70, 23);
-    MD5STEP(F3, a, b, c, d, in[13] + 0x289b7ec6, 4);
-    MD5STEP(F3, d, a, b, c, in[0] + 0xeaa127fa, 11);
-    MD5STEP(F3, c, d, a, b, in[3] + 0xd4ef3085, 16);
-    MD5STEP(F3, b, c, d, a, in[6] + 0x04881d05, 23);
-    MD5STEP(F3, a, b, c, d, in[9] + 0xd9d4d039, 4);
-    MD5STEP(F3, d, a, b, c, in[12] + 0xe6db99e5, 11);
-    MD5STEP(F3, c, d, a, b, in[15] + 0x1fa27cf8, 16);
-    MD5STEP(F3, b, c, d, a, in[2] + 0xc4ac5665, 23);
-
-    MD5STEP(F4, a, b, c, d, in[0] + 0xf4292244, 6);
-    MD5STEP(F4, d, a, b, c, in[7] + 0x432aff97, 10);
-    MD5STEP(F4, c, d, a, b, in[14] + 0xab9423a7, 15);
-    MD5STEP(F4, b, c, d, a, in[5] + 0xfc93a039, 21);
-    MD5STEP(F4, a, b, c, d, in[12] + 0x655b59c3, 6);
-    MD5STEP(F4, d, a, b, c, in[3] + 0x8f0ccc92, 10);
-    MD5STEP(F4, c, d, a, b, in[10] + 0xffeff47d, 15);
-    MD5STEP(F4, b, c, d, a, in[1] + 0x85845dd1, 21);
-    MD5STEP(F4, a, b, c, d, in[8] + 0x6fa87e4f, 6);
-    MD5STEP(F4, d, a, b, c, in[15] + 0xfe2ce6e0, 10);
-    MD5STEP(F4, c, d, a, b, in[6] + 0xa3014314, 15);
-    MD5STEP(F4, b, c, d, a, in[13] + 0x4e0811a1, 21);
-    MD5STEP(F4, a, b, c, d, in[4] + 0xf7537e82, 6);
-    MD5STEP(F4, d, a, b, c, in[11] + 0xbd3af235, 10);
-    MD5STEP(F4, c, d, a, b, in[2] + 0x2ad7d2bb, 15);
-    MD5STEP(F4, b, c, d, a, in[9] + 0xeb86d391, 21);
-
-    buf[0] += a;
-    buf[1] += b;
-    buf[2] += c;
-    buf[3] += d;
-}
-
-
-/**
- * Appends more data to the MD5 state context. Updates context to
- * reflect the concatenation of another buffer full of bytes.
- *
- * @param ctx State context to add data in.
- * @param buf Pointer to buffer of data.
- * @param len Length/size of the data in buffer.
- */
-void aud_md5_append(aud_md5state_t *ctx, const guint8 *buf, guint len)
-{
-    guint32 t;
-
-    /* Update bitcount */
-    t = ctx->bits[0];
-    if ((ctx->bits[0] = t + ((guint32) len << 3)) < t)
-        ctx->bits[1]++;    /* Carry from low to high */
-    ctx->bits[1] += len >> 29;
-
-    t = (t >> 3) & 0x3f;    /* Bytes already in shsInfo->data */
-
-    /* Handle any leading odd-sized chunks */
-    if (t) {
-        guint8 *p = (guint8 *) ctx->in + t;
-
-        t = 64 - t;
-        if (len < t) {
-            memcpy(p, buf, len);
-            return;
-        }
-        memcpy(p, buf, t);
-        aud_md5_bytereverse(ctx->in, 16);
-        aud_md5_transform(ctx->buf, (guint32 *) ctx->in);
-        buf += t;
-        len -= t;
-    }
-
-    /* Process data in 64-byte chunks */
-    while (len >= 64) {
-        memcpy(ctx->in, buf, 64);
-        aud_md5_bytereverse(ctx->in, 16);
-        aud_md5_transform(ctx->buf, (guint32 *) ctx->in);
-        buf += 64;
-        len -= 64;
-    }
-
-    /* Handle any remaining bytes of data. */
-    memcpy(ctx->in, buf, len);
-}
-
-/**
- * Calculates a MD5 hash digest from the given context.
- *
- * @param ctx State context to be hashed.
- * @param digest Variable where computed MD5 digest is placed.
- */
-void aud_md5_finish(aud_md5state_t *ctx, aud_md5hash_t digest)
-{
-    guint count;
-    guint8 *p;
-
-    /* Compute number of bytes mod 64 */
-    count = (ctx->bits[0] >> 3) & 0x3F;
-
-    /* Set the first char of padding to 0x80.  This is safe since there is
-       always at least one byte free */
-    p = ctx->in + count;
-    *p++ = 0x80;
-
-    /* Bytes of padding needed to make 64 bytes */
-    count = 64 - 1 - count;
-
-    /* Pad out to 56 mod 64 */
-    if (count < 8) {
-        /* Two lots of padding:  Pad the first block to 64 bytes */
-        memset(p, 0, count);
-        aud_md5_bytereverse(ctx->in, 16);
-        aud_md5_transform(ctx->buf, (guint32 *) ctx->in);
-
-        /* Now fill the next block with 56 bytes */
-        memset(ctx->in, 0, 56);
-    } else {
-        /* Pad block to 56 bytes */
-        memset(p, 0, count - 8);
-    }
-    aud_md5_bytereverse(ctx->in, 14);
-
-    /* Append length in bits and transform */
-    ((guint32 *) ctx->in)[14] = ctx->bits[0];
-    ((guint32 *) ctx->in)[15] = ctx->bits[1];
-
-    aud_md5_transform(ctx->buf, (guint32 *) ctx->in);
-    aud_md5_bytereverse((guint8 *) ctx->buf, 4);
-    memcpy(digest, ctx->buf, 16);
-    memset(ctx, 0, sizeof(ctx));    /* In case it's sensitive */
-}
diff --git a/src/libaudcore/md5.h b/src/libaudcore/md5.h
deleted file mode 100644
index 97edc82..0000000
--- a/src/libaudcore/md5.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/**
- * @file md5.h
- * Functions for computing MD5 hashes of given data.
- */
-#ifndef AUDACIOUS_MD5_H
-#define AUDACIOUS_MD5_H
-
-#include <glib.h>
-
-G_BEGIN_DECLS
-
-/** State context structure for MD5 hash calculation */
-typedef struct {
-    guint32 bits[2];    /**< Message length in bits, lsw first */
-    guint32 buf[4];     /**< Message digest buffer */
-    guint8 in[64];      /**< Data accumulation block */
-} aud_md5state_t;
-
-/** Length of MD5 hash in bytes */
-#define AUD_MD5HASH_LENGTH       (16)
-
-/** Length of MD5 hash in ASCII characters */
-#define AUD_MD5HASH_LENGTH_CH    (AUD_MD5HASH_LENGTH * 2)
-
-/** Type for holding calculated MD5 hash digest */
-typedef guint8 aud_md5hash_t[AUD_MD5HASH_LENGTH];
-
-
-void aud_md5_init(aud_md5state_t *ctx);
-void aud_md5_append(aud_md5state_t *ctx, const guint8 *buf, guint len);
-void aud_md5_finish(aud_md5state_t *ctx, aud_md5hash_t digest);
-
-
-G_END_DECLS
-
-#endif /* AUDACIOUS_MD5_H */
diff --git a/src/libaudcore/stringpool.c b/src/libaudcore/stringpool.c
deleted file mode 100644
index b30889d..0000000
--- a/src/libaudcore/stringpool.c
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- * Audacious
- * Copyright © 2009 William Pitcock <nenolod at atheme.org>
- * Copyright © 2010 John Lindgren <john.lindgren at tds.net>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; under version 3 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses>.
- *
- * The Audacious team does not consider modular code linking to
- * Audacious or using our public API to be a derived work.
- */
-
-#include <assert.h>
-#include <glib.h>
-#include <mowgli.h>
-
-static mowgli_patricia_t *stringpool_tree = NULL;
-static GStaticMutex stringpool_mutex = G_STATIC_MUTEX_INIT;
-
-#define MAXLEN 100
-
-gchar *
-stringpool_get(gchar *str, gboolean take)
-{
-    if (str == NULL)
-        return NULL;
-
-    if (strlen(str) > MAXLEN)
-        return take ? str : g_strdup(str);
-
-    g_static_mutex_lock(&stringpool_mutex);
-
-    if (stringpool_tree == NULL)
-        stringpool_tree = mowgli_patricia_create(NULL);
-
-    mowgli_patricia_elem_t *elem = mowgli_patricia_elem_find(stringpool_tree, str);
-    if (elem != NULL)
-    {
-        gint refcount = GPOINTER_TO_INT(mowgli_patricia_elem_get_data(elem));
-        mowgli_patricia_elem_set_data(elem, GINT_TO_POINTER(refcount + 1));
-    }
-    else
-    {
-        elem = mowgli_patricia_elem_add(stringpool_tree, str, GINT_TO_POINTER(1));
-        assert(elem != NULL);
-    }
-
-    if (take)
-        g_free(str);
-    str = (gchar *)mowgli_patricia_elem_get_key(elem);
-
-    g_static_mutex_unlock(&stringpool_mutex);
-
-    return str;
-}
-
-void
-stringpool_unref(gchar *str)
-{
-    if (str == NULL)
-        return;
-
-    if (strlen(str) > MAXLEN)
-        return g_free(str);
-
-    g_return_if_fail(stringpool_tree != NULL);
-
-    g_static_mutex_lock(&stringpool_mutex);
-
-    mowgli_patricia_elem_t *elem = mowgli_patricia_elem_find(stringpool_tree, str);
-    assert(elem != NULL);
-
-    gint refcount = GPOINTER_TO_INT(mowgli_patricia_elem_get_data(elem));
-    if (refcount == 1)
-        mowgli_patricia_elem_delete(stringpool_tree, elem);
-    else
-        mowgli_patricia_elem_set_data(elem, GINT_TO_POINTER(refcount - 1));
-
-    g_static_mutex_unlock(&stringpool_mutex);
-}
diff --git a/src/libaudcore/stringpool.h b/src/libaudcore/stringpool.h
deleted file mode 100644
index 0bd4255..0000000
--- a/src/libaudcore/stringpool.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Audacious
- * Copyright © 2009 William Pitcock <nenolod at atheme.org>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; under version 3 of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses>.
- *
- * The Audacious team does not consider modular code linking to
- * Audacious or using our public API to be a derived work.
- */
-/**
- * @file stringpool.h
- * String pool API for "pooling" identical strings into references
- * instead of keeping multiple copies around.
- */
-
-#ifndef AUDACIOUS_STRINGPOOL_H
-#define AUDACIOUS_STRINGPOOL_H
-
-/**
- * Fetches or allocates a given string from the stringpool.
- * If string already exists in the pool, reference to it is returned.
- * Otherwise, a new string is created in the pool with one reference.
- *
- * @param[in] str String to be poolified.
- * @param[in] take Nonzero if the caller no longer needs str; in this case, the
- * pool will eventually call g_free(str).
- * @return Reference to the pooled string, or NULL if the given
- * string was NULL or an error occured.
- */
-gchar *stringpool_get(gchar *str, gboolean take);
-
-/**
- * Unreference a pooled string. When there are no references left,
- * the string is unallocated and removed from the pool.
- *
- * @param[in] str Pointer to a string in the pool.
- */
-void stringpool_unref(gchar *str);
-
-#endif
-
diff --git a/src/libaudcore/strpool.c b/src/libaudcore/strpool.c
new file mode 100644
index 0000000..34c0b58
--- /dev/null
+++ b/src/libaudcore/strpool.c
@@ -0,0 +1,206 @@
+/*
+ * strpool.c
+ * Copyright 2011 John Lindgren
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions, and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ *    this list of conditions, and the following disclaimer in the documentation
+ *    provided with the distribution.
+ *
+ * This software is provided "as is" and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising from
+ * the use of this software.
+ */
+
+#include <glib.h>
+#include <pthread.h>
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "config.h"
+#include "core.h"
+
+/* Each string in the pool is allocated with five leading bytes: a 32-bit
+ * reference count and a one-byte signature, the '@' character. */
+
+static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
+static GHashTable * table;
+
+#ifdef STRPOOL_DEBUG
+static GHashTable * logged;
+
+static void str_log (const char * str, const char * op, const char * file, int line)
+{
+    if (! logged)
+        logged = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
+
+    GList * list = g_hash_table_lookup (logged, str);
+    list = g_list_prepend (list, g_strdup_printf ("%s by %s:%d", op, file, line));
+    g_hash_table_insert (logged, g_strdup (str), list);
+}
+
+static void str_log_dump (const char * str)
+{
+    if (! logged)
+        return;
+
+    for (GList * node = g_hash_table_lookup (logged, str); node; node = node->next)
+        printf (" - %s\n", (char *) node->data);
+}
+#endif
+
+static void str_destroy (void * str)
+{
+    * ((char *) str - 1) = 0;
+    free ((char *) str - 5);
+}
+
+#ifdef STRPOOL_DEBUG
+char * str_get_debug (const char * str, const char * file, int line)
+#else
+char * str_get (const char * str)
+#endif
+{
+    if (! str)
+        return NULL;
+
+    char * copy;
+    pthread_mutex_lock (& mutex);
+
+#ifdef STRPOOL_DEBUG
+    str_log (str, "get", file, line);
+#endif
+
+    if (! table)
+        table = g_hash_table_new_full (g_str_hash, g_str_equal, NULL, str_destroy);
+
+    if ((copy = g_hash_table_lookup (table, str)))
+    {
+        void * mem = copy - 5;
+        (* (int32_t *) mem) ++;
+    }
+    else
+    {
+        void * mem = malloc (6 + strlen (str));
+        (* (int32_t *) mem) = 1;
+
+        copy = (char *) mem + 5;
+        copy[-1] = '@';
+        strcpy (copy, str);
+
+        g_hash_table_insert (table, copy, copy);
+    }
+
+    pthread_mutex_unlock (& mutex);
+    return copy;
+}
+
+#ifdef STRPOOL_DEBUG
+char * str_ref_debug (char * str, const char * file, int line)
+#else
+char * str_ref (char * str)
+#endif
+{
+    if (! str)
+        return NULL;
+
+    pthread_mutex_lock (& mutex);
+    STR_CHECK (str);
+
+#ifdef STRPOOL_DEBUG
+    str_log (str, "ref", file, line);
+#endif
+
+    void * mem = str - 5;
+    (* (int32_t *) mem) ++;
+
+    pthread_mutex_unlock (& mutex);
+    return str;
+}
+
+#ifdef STRPOOL_DEBUG
+void str_unref_debug (char * str, const char * file, int line)
+#else
+void str_unref (char * str)
+#endif
+{
+    if (! str)
+        return;
+
+    pthread_mutex_lock (& mutex);
+    STR_CHECK (str);
+
+#ifdef STRPOOL_DEBUG
+    str_log (str, "unref", file, line);
+#endif
+
+    void * mem = str - 5;
+    if (! -- (* (int32_t *) mem))
+        g_hash_table_remove (table, str);
+
+    pthread_mutex_unlock (& mutex);
+}
+
+char * str_nget (const char * str, int len)
+{
+    if (strlen (str) <= len)
+        return str_get (str);
+
+    char buf[len + 1];
+    memcpy (buf, str, len);
+    buf[len] = 0;
+
+    return str_get (buf);
+}
+
+char * str_printf (const char * format, ...)
+{
+    va_list args;
+
+    va_start (args, format);
+    int len = vsnprintf (NULL, 0, format, args);
+    va_end (args);
+
+    char buf[len + 1];
+
+    va_start (args, format);
+    vsnprintf (buf, sizeof buf, format, args);
+    va_end (args);
+
+    return str_get (buf);
+}
+
+void strpool_abort (char * str)
+{
+    fprintf (stderr, "String not in pool: %s\n", str);
+#ifdef STRPOOL_DEBUG
+    str_log_dump (str);
+#endif
+    abort ();
+}
+
+static void str_leaked (void * key, void * str, void * unused)
+{
+    fprintf (stderr, "String not freed: %s\n", (char *) str);
+#ifdef STRPOOL_DEBUG
+    str_log_dump (str);
+#endif
+}
+
+void strpool_shutdown (void)
+{
+    if (! table)
+        return;
+
+    g_hash_table_foreach (table, str_leaked, NULL);
+    g_hash_table_destroy (table);
+    table = NULL;
+}
diff --git a/src/libaudcore/tuple.c b/src/libaudcore/tuple.c
index 878b2f8..7c66e44 100644
--- a/src/libaudcore/tuple.c
+++ b/src/libaudcore/tuple.c
@@ -1,6 +1,7 @@
 /*
- * Audacious
- * Copyright (c) 2006-2007 Audacious team
+ * tuple.c
+ * Copyright 2007-2011 William Pitcock, Christian Birchinger, Matti Hämäläinen,
+ *                     Giacomo Lozito, Eugene Zagidullin, and John Lindgren
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -17,34 +18,74 @@
  * The Audacious team does not consider modular code linking to
  * Audacious or using our public API to be a derived work.
  */
+
 /**
  * @file tuple.c
  * @brief Basic Tuple handling API.
  */
 
 #include <glib.h>
-#include <mowgli.h>
+#include <pthread.h>
+#include <stdio.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
 
 #include <audacious/i18n.h>
 
+#include "audstrings.h"
 #include "config.h"
 #include "tuple.h"
-#include "audstrings.h"
-#include "stringpool.h"
+#include "tuple_formatter.h"
+
+#define BLOCK_VALS 4
+
+typedef struct {
+    char *name;
+    TupleValueType type;
+} TupleBasicType;
+
+typedef union {
+    char * str;
+    int x;
+} TupleVal;
+
+typedef struct _TupleBlock TupleBlock;
 
-static gboolean set_string (Tuple * tuple, const gint nfield,
- const gchar * field, gchar * string, gboolean take);
+struct _TupleBlock {
+    TupleBlock * next;
+    char fields[BLOCK_VALS];
+    TupleVal vals[BLOCK_VALS];
+};
+
+/**
+ * Structure for holding and passing around miscellaneous track
+ * metadata. This is not the same as a playlist entry, though.
+ */
+struct _Tuple {
+    int refcount;
+    int64_t setmask;
+    TupleBlock * blocks;
+
+    int nsubtunes;                 /**< Number of subtunes, if any. Values greater than 0
+                                         mean that there are subtunes and #subtunes array
+                                         may be set. */
+    int *subtunes;                 /**< Array of int containing subtune index numbers.
+                                         Can be NULL if indexing is linear or if
+                                         there are no subtunes. */
+};
+
+#define BIT(i) ((int64_t) 1 << (i))
 
 /** Ordered table of basic #Tuple field names and their #TupleValueType.
  */
-const TupleBasicType tuple_fields[FIELD_LAST] = {
+static const TupleBasicType tuple_fields[TUPLE_FIELDS] = {
     { "artist",         TUPLE_STRING },
     { "title",          TUPLE_STRING },
     { "album",          TUPLE_STRING },
     { "comment",        TUPLE_STRING },
     { "genre",          TUPLE_STRING },
 
-    { "track",          TUPLE_STRING },
     { "track-number",   TUPLE_INT },
     { "length",         TUPLE_INT },
     { "year",           TUPLE_INT },
@@ -54,10 +95,9 @@ const TupleBasicType tuple_fields[FIELD_LAST] = {
     { "file-name",      TUPLE_STRING },
     { "file-path",      TUPLE_STRING },
     { "file-ext",       TUPLE_STRING },
-    { "song-artist",    TUPLE_STRING },
 
-    { "mtime",          TUPLE_INT },
-    { "formatter",      TUPLE_STRING },
+    { "song-artist",    TUPLE_STRING },
+    { "composer",       TUPLE_STRING },
     { "performer",      TUPLE_STRING },
     { "copyright",      TUPLE_STRING },
     { "date",           TUPLE_STRING },
@@ -76,113 +116,182 @@ const TupleBasicType tuple_fields[FIELD_LAST] = {
     { "gain-track-peak", TUPLE_INT },
     { "gain-gain-unit", TUPLE_INT },
     { "gain-peak-unit", TUPLE_INT },
-
-    { "composer",       TUPLE_STRING },
 };
 
+typedef struct {
+    const char * name;
+    int field;
+} FieldDictEntry;
+
+/* used for binary search, MUST be in alphabetical order */
+static const FieldDictEntry field_dict[TUPLE_FIELDS] = {
+ {"album", FIELD_ALBUM},
+ {"artist", FIELD_ARTIST},
+ {"bitrate", FIELD_BITRATE},
+ {"codec", FIELD_CODEC},
+ {"comment", FIELD_COMMENT},
+ {"composer", FIELD_COMPOSER},
+ {"copyright", FIELD_COPYRIGHT},
+ {"date", FIELD_DATE},
+ {"file-ext", FIELD_FILE_EXT},
+ {"file-name", FIELD_FILE_NAME},
+ {"file-path", FIELD_FILE_PATH},
+ {"gain-album-gain", FIELD_GAIN_ALBUM_GAIN},
+ {"gain-album-peak", FIELD_GAIN_ALBUM_PEAK},
+ {"gain-gain-unit", FIELD_GAIN_GAIN_UNIT},
+ {"gain-peak-unit", FIELD_GAIN_PEAK_UNIT},
+ {"gain-track-gain", FIELD_GAIN_TRACK_GAIN},
+ {"gain-track-peak", FIELD_GAIN_TRACK_PEAK},
+ {"genre", FIELD_GENRE},
+ {"length", FIELD_LENGTH},
+ {"mime-type", FIELD_MIMETYPE},
+ {"performer", FIELD_PERFORMER},
+ {"quality", FIELD_QUALITY},
+ {"segment-end", FIELD_SEGMENT_END},
+ {"segment-start", FIELD_SEGMENT_START},
+ {"song-artist", FIELD_SONG_ARTIST},
+ {"subsong-id", FIELD_SUBSONG_ID},
+ {"subsong-num", FIELD_SUBSONG_NUM},
+ {"title", FIELD_TITLE},
+ {"track-number", FIELD_TRACK_NUMBER},
+ {"year", FIELD_YEAR}};
+
+static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
+
+
+static int field_dict_compare (const void * a, const void * b)
+{
+    return strcmp (((FieldDictEntry *) a)->name, ((FieldDictEntry *) b)->name);
+}
 
-/** A mowgli heap containing all the allocated tuples. */
-static mowgli_heap_t *tuple_heap = NULL;
-
-/** A mowgli heap containing values contained by tuples. */
-static mowgli_heap_t *tuple_value_heap = NULL;
-static mowgli_object_class_t tuple_klass;
+int tuple_field_by_name (const char * name)
+{
+    FieldDictEntry find = {name, -1};
+    FieldDictEntry * found = bsearch (& find, field_dict, TUPLE_FIELDS,
+     sizeof (FieldDictEntry), field_dict_compare);
 
-/** Global lock to preserve data consistency of heaps */
-static GStaticMutex tuple_mutex = G_STATIC_MUTEX_INIT;
+    if (found)
+        return found->field;
 
-//@{
-/**
- * Convenience macros to lock the globally
- * used internal Tuple system structures.
- */
-#define TUPLE_LOCK_WRITE(X)     g_static_mutex_lock (& tuple_mutex)
-#define TUPLE_UNLOCK_WRITE(X)   g_static_mutex_unlock (& tuple_mutex)
-#define TUPLE_LOCK_READ(X)      g_static_mutex_lock (& tuple_mutex)
-#define TUPLE_UNLOCK_READ(X)    g_static_mutex_unlock (& tuple_mutex)
-//@}
+    fprintf (stderr, "Unknown tuple field name \"%s\".\n", name);
+    return -1;
+}
 
-static void tuple_value_destroy (TupleValue * value)
+const char * tuple_field_get_name (int field)
 {
-    if (value->type == TUPLE_STRING)
-        stringpool_unref (value->value.string);
+    if (field < 0 || field >= TUPLE_FIELDS)
+        return NULL;
 
-    memset (value, 0, sizeof (TupleValue));
-    mowgli_heap_free (tuple_value_heap, value);
+    return tuple_fields[field].name;
 }
 
-/* iterative destructor of tuple values. */
-static void tuple_value_destroy_cb (const gchar * key, void * data, void * priv)
+TupleValueType tuple_field_get_type (int field)
 {
-    tuple_value_destroy (data);
+    if (field < 0 || field >= TUPLE_FIELDS)
+        return TUPLE_UNKNOWN;
+
+    return tuple_fields[field].type;
 }
 
-static void
-tuple_destroy(gpointer data)
+static TupleVal * lookup_val (Tuple * tuple, int field, bool_t add, bool_t remove)
 {
-    Tuple *tuple = (Tuple *) data;
-    gint i;
+    if ((tuple->setmask & BIT (field)))
+    {
+        for (TupleBlock * block = tuple->blocks; block; block = block->next)
+        {
+            for (int i = 0; i < BLOCK_VALS; i ++)
+            {
+                if (block->fields[i] == field)
+                {
+                    if (remove)
+                    {
+                        tuple->setmask &= ~BIT (field);
+                        block->fields[i] = -1;
+                    }
+
+                    return & block->vals[i];
+                }
+            }
+        }
+    }
 
-    TUPLE_LOCK_WRITE();
-    mowgli_patricia_destroy(tuple->dict, tuple_value_destroy_cb, NULL);
+    if (! add)
+        return NULL;
+
+    tuple->setmask |= BIT (field);
 
-    for (i = 0; i < FIELD_LAST; i++)
+    for (TupleBlock * block = tuple->blocks; block; block = block->next)
     {
-        if (tuple->values[i])
-            tuple_value_destroy (tuple->values[i]);
+        for (int i = 0; i < BLOCK_VALS; i ++)
+        {
+            if (block->fields[i] < 0)
+            {
+                block->fields[i] = field;
+                return & block->vals[i];
+            }
+        }
     }
 
-    g_free(tuple->subtunes);
+    TupleBlock * block = g_slice_new0 (TupleBlock);
+    memset (block->fields, -1, BLOCK_VALS);
 
-    memset (tuple, 0, sizeof (Tuple));
-    mowgli_heap_free(tuple_heap, tuple);
-    TUPLE_UNLOCK_WRITE();
+    block->next = tuple->blocks;
+    tuple->blocks = block;
+
+    block->fields[0] = field;
+    return & block->vals[0];
 }
 
-static Tuple *
-tuple_new_unlocked(void)
+static void tuple_destroy_unlocked (Tuple * tuple)
 {
-    Tuple *tuple;
-
-    if (tuple_heap == NULL)
+    TupleBlock * next;
+    for (TupleBlock * block = tuple->blocks; block; block = next)
     {
-        tuple_heap = mowgli_heap_create(sizeof(Tuple), 512, BH_NOW);
-        tuple_value_heap = mowgli_heap_create(sizeof(TupleValue), 1024, BH_NOW);
-        mowgli_object_class_init(&tuple_klass, "audacious.tuple", tuple_destroy, FALSE);
+        next = block->next;
+
+        for (int i = 0; i < BLOCK_VALS; i ++)
+        {
+            int field = block->fields[i];
+            if (field >= 0 && tuple_fields[field].type == TUPLE_STRING)
+                str_unref (block->vals[i].str);
+        }
+
+        memset (block, 0, sizeof (TupleBlock));
+        g_slice_free (TupleBlock, block);
     }
 
-    /* FIXME: use mowgli_object_bless_from_class() in mowgli 0.4
-       when it is released --nenolod */
-    tuple = mowgli_heap_alloc(tuple_heap);
-    memset(tuple, 0, sizeof(Tuple));
-    mowgli_object_init(mowgli_object(tuple), NULL, &tuple_klass, NULL);
+    g_free(tuple->subtunes);
 
-    tuple->dict = mowgli_patricia_create(string_canonize_case);
+    memset (tuple, 0, sizeof (Tuple));
+    g_slice_free (Tuple, tuple);
+}
 
+Tuple * tuple_new (void)
+{
+    Tuple * tuple = g_slice_new0 (Tuple);
+    tuple->refcount = 1;
     return tuple;
 }
 
-/**
- * Allocates a new empty #Tuple structure. Must be freed via tuple_free().
- *
- * @return Pointer to newly allocated Tuple.
- */
-Tuple *
-tuple_new(void)
+Tuple * tuple_ref (Tuple * tuple)
 {
-    Tuple *tuple;
-
-    TUPLE_LOCK_WRITE();
+    pthread_mutex_lock (& mutex);
 
-    tuple = tuple_new_unlocked();
+    tuple->refcount ++;
 
-    TUPLE_UNLOCK_WRITE();
+    pthread_mutex_unlock (& mutex);
     return tuple;
 }
 
-static TupleValue *
-tuple_associate_data(Tuple *tuple, const gint cnfield, const gchar *field, TupleValueType ftype);
+void tuple_unref (Tuple * tuple)
+{
+    pthread_mutex_lock (& mutex);
+
+    if (! -- tuple->refcount)
+        tuple_destroy_unlocked (tuple);
 
+    pthread_mutex_unlock (& mutex);
+}
 
 /**
  * Sets filename/URI related fields of a #Tuple structure, based
@@ -192,70 +301,30 @@ tuple_associate_data(Tuple *tuple, const gint cnfield, const gchar *field, Tuple
  * @param[in] filename Filename URI.
  * @param[in,out] tuple Tuple structure to manipulate.
  */
-void tuple_set_filename (Tuple * tuple, const gchar * name)
+void tuple_set_filename (Tuple * tuple, const char * filename)
 {
-    const gchar * slash;
-    if ((slash = strrchr (name, '/')))
-    {
-        gchar path[slash - name + 2];
-        memcpy (path, name, slash - name + 1);
-        path[slash - name + 1] = 0;
+    const char * base, * ext, * sub;
+    int isub;
 
-        set_string (tuple, FIELD_FILE_PATH, NULL, uri_to_display (path), TRUE);
-        name = slash + 1;
-    }
+    uri_parse (filename, & base, & ext, & sub, & isub);
 
-    gchar buf[strlen (name) + 1];
-    strcpy (buf, name);
+    char path[base - filename + 1];
+    str_decode_percent (filename, base - filename, path);
+    tuple_set_str (tuple, FIELD_FILE_PATH, NULL, path);
 
-    gchar * c;
-    if ((c = strrchr (buf, '?')))
-    {
-        gint sub;
-        if (sscanf (c + 1, "%d", & sub) == 1)
-            tuple_associate_int (tuple, FIELD_SUBSONG_ID, NULL, sub);
+    char name[ext - base + 1];
+    str_decode_percent (base, ext - base, name);
+    tuple_set_str (tuple, FIELD_FILE_NAME, NULL, name);
 
-        * c = 0;
+    if (ext < sub)
+    {
+        char extbuf[sub - ext];
+        str_decode_percent (ext + 1, sub - ext - 1, extbuf);
+        tuple_set_str (tuple, FIELD_FILE_EXT, NULL, extbuf);
     }
 
-    gchar * base = uri_to_display (buf);
-
-    if ((c = strrchr (base, '.')))
-        set_string (tuple, FIELD_FILE_EXT, NULL, c + 1, FALSE);
-
-    set_string (tuple, FIELD_FILE_NAME, NULL, base, TRUE);
-}
-
-/**
- * Creates a copy of given TupleValue structure, with copied data.
- *
- * @param[in] src TupleValue structure to be made a copy of.
- * @return Pointer to newly allocated TupleValue or NULL
- *         if error occured or source was NULL.
- */
-static TupleValue *
-tuple_copy_value(TupleValue *src)
-{
-    TupleValue *res;
-
-    if (src == NULL) return NULL;
-
-    res = mowgli_heap_alloc(tuple_value_heap);
-    g_strlcpy(res->name, src->name, TUPLE_NAME_MAX);
-    res->type = src->type;
-
-    switch (src->type) {
-    case TUPLE_STRING:
-        res->value.string = stringpool_get (src->value.string, FALSE);
-        break;
-    case TUPLE_INT:
-        res->value.integer = src->value.integer;
-        break;
-    default:
-        mowgli_heap_free (tuple_value_heap, res);
-        return NULL;
-    }
-    return res;
+    if (sub[0])
+        tuple_set_int (tuple, FIELD_SUBSONG_ID, NULL, isub);
 }
 
 /**
@@ -264,41 +333,32 @@ tuple_copy_value(TupleValue *src)
  * @param[in] src Tuple structure to be made a copy of.
  * @return Pointer to newly allocated Tuple.
  */
-Tuple *
-tuple_copy(const Tuple *src)
+Tuple * tuple_copy (const Tuple * old)
 {
-    Tuple *dst;
-    TupleValue * tv, * copied;
-    mowgli_patricia_iteration_state_t state;
-    gint i;
-
-    g_return_val_if_fail(src != NULL, NULL);
+    pthread_mutex_lock (& mutex);
 
-    TUPLE_LOCK_WRITE();
+    Tuple * new = tuple_new ();
 
-    dst = tuple_new_unlocked();
-
-    /* Copy basic fields */
-    for (i = 0; i < FIELD_LAST; i++)
-        dst->values[i] = tuple_copy_value(src->values[i]);
-
-    /* Copy dictionary contents */
-    MOWGLI_PATRICIA_FOREACH (tv, & state, src->dict)
+    for (int f = 0; f < TUPLE_FIELDS; f ++)
     {
-        if ((copied = tuple_copy_value (tv)) != NULL)
-            mowgli_patricia_add (dst->dict, copied->name, copied);
+        TupleVal * oldval = lookup_val ((Tuple *) old, f, FALSE, FALSE);
+        if (oldval)
+        {
+            TupleVal * newval = lookup_val (new, f, TRUE, FALSE);
+            if (tuple_fields[f].type == TUPLE_STRING)
+                newval->str = str_ref (oldval->str);
+            else
+                newval->x = oldval->x;
+        }
     }
 
-    /* Copy subtune number information */
-    if (src->subtunes && src->nsubtunes > 0)
-    {
-        dst->nsubtunes = src->nsubtunes;
-        dst->subtunes = g_new(gint, dst->nsubtunes);
-        memcpy(dst->subtunes, src->subtunes, sizeof(gint) * dst->nsubtunes);
-    }
+    new->nsubtunes = old->nsubtunes;
+
+    if (old->subtunes)
+        new->subtunes = g_memdup (old->subtunes, sizeof (int) * old->nsubtunes);
 
-    TUPLE_UNLOCK_WRITE();
-    return dst;
+    pthread_mutex_unlock (& mutex);
+    return new;
 }
 
 /**
@@ -309,7 +369,7 @@ tuple_copy(const Tuple *src)
  * @return Pointer to newly allocated Tuple.
  */
 Tuple *
-tuple_new_from_filename(const gchar *filename)
+tuple_new_from_filename(const char *filename)
 {
     Tuple *tuple = tuple_new();
 
@@ -317,236 +377,66 @@ tuple_new_from_filename(const gchar *filename)
     return tuple;
 }
 
-
-static gint
-tuple_get_nfield(const gchar *field)
-{
-    gint i;
-    for (i = 0; i < FIELD_LAST; i++)
-        if (!strcmp(field, tuple_fields[i].name))
-            return i;
-    return -1;
-}
-
-
-/**
- * (Re)associates data into given #Tuple field.
- * If specified field already exists in the #Tuple, any data from it
- * is freed and this current TupleValue struct is returned.
- *
- * If field does NOT exist, a new structure is allocated from global
- * heap, added to Tuple and returned.
- *
- * @attention This function has (unbalanced) Tuple structure unlocking,
- * so please make sure you use it only exactly like it is used in
- * #tuple_associate_string(), etc.
- *
- * @param[in] tuple Tuple structure to be manipulated.
- * @param[in] cnfield #TupleBasicType index or -1 if key name is to be used instead.
- * @param[in] field String acting as key name or NULL if nfield is used.
- * @param[in] ftype Type of the field to be associated.
- * @return Pointer to associated TupleValue structure.
- */
-static TupleValue *
-tuple_associate_data(Tuple *tuple, const gint cnfield, const gchar *field, TupleValueType ftype)
-{
-    const gchar *tfield = field;
-    gint nfield = cnfield;
-    TupleValue *value = NULL;
-
-    g_return_val_if_fail(tuple != NULL, NULL);
-    g_return_val_if_fail(cnfield < FIELD_LAST, NULL);
-
-    /* Check for known fields */
-    if (nfield < 0) {
-        nfield = tuple_get_nfield(field);
-        if (nfield >= 0)
-            g_warning("Tuple FIELD_* not used for '%s'!\n", field);
-    }
-
-    /* Check if field was known */
-    if (nfield >= 0) {
-        tfield = tuple_fields[nfield].name;
-        value = tuple->values[nfield];
-
-        if (ftype != tuple_fields[nfield].type) {
-            g_warning("Invalid type for [%s](%d->%d), %d != %d\n",
-                tfield, cnfield, nfield, ftype, tuple_fields[nfield].type);
-            //mowgli_throw_exception_val(audacious.tuple.invalid_type_request, 0);
-            TUPLE_UNLOCK_WRITE();
-            return NULL;
-        }
-    } else {
-        value = mowgli_patricia_retrieve(tuple->dict, tfield);
-    }
-
-    if (value != NULL) {
-        /* Value exists, just delete old associated data */
-        if (value->type == TUPLE_STRING) {
-            stringpool_unref(value->value.string);
-            value->value.string = NULL;
-        }
-    } else {
-        /* Allocate a new value */
-        value = mowgli_heap_alloc(tuple_value_heap);
-        value->type = ftype;
-
-        if (nfield >= 0)
-        {
-            value->name[0] = 0;
-            tuple->values[nfield] = value;
-        }
-        else
-        {
-            g_strlcpy (value->name, tfield, TUPLE_NAME_MAX);
-            mowgli_patricia_add(tuple->dict, tfield, value);
-        }
-    }
-
-    return value;
-}
-
-static gboolean set_string (Tuple * tuple, const gint nfield,
- const gchar * field, gchar * string, gboolean take)
+void tuple_set_int (Tuple * tuple, int nfield, const char * field, int x)
 {
-    TUPLE_LOCK_WRITE ();
-
-    TupleValue * value = tuple_associate_data (tuple, nfield, field,
-     TUPLE_STRING);
-    if (! value)
-    {
-        if (take)
-            g_free (string);
-        return FALSE;
-    }
-
-    if (! string)
-        value->value.string = NULL;
-    else
-        value->value.string = stringpool_get (string, take);
-
-    TUPLE_UNLOCK_WRITE ();
-    return TRUE;
-}
+    if (nfield < 0)
+        nfield = tuple_field_by_name (field);
+    if (nfield < 0 || nfield >= TUPLE_FIELDS || tuple_fields[nfield].type != TUPLE_INT)
+        return;
 
-/**
- * Associates copy of given string to a field in specified #Tuple.
- * If field already exists, old value is freed and replaced.
- *
- * Desired field can be specified either by key name or if it is
- * one of basic fields, by #TupleBasicType index.
- *
- * @param[in] tuple #Tuple structure pointer.
- * @param[in] nfield #TupleBasicType index or -1 if key name is to be used instead.
- * @param[in] field String acting as key name or NULL if nfield is used.
- * @param[in] string String to be associated to given field in Tuple.
- * @return TRUE if operation was succesful, FALSE if not.
- */
+    pthread_mutex_lock (& mutex);
 
-gboolean tuple_associate_string (Tuple * tuple, const gint nfield,
- const gchar * field, const gchar * string)
-{
-    if (string && ! g_utf8_validate (string, -1, NULL))
-    {
-        fprintf (stderr, "Invalid UTF-8: %s.\n", string);
-        return set_string (tuple, nfield, field, str_to_utf8 (string), TRUE);
-    }
+    TupleVal * val = lookup_val (tuple, nfield, TRUE, FALSE);
+    val->x = x;
 
-    gboolean ret = set_string (tuple, nfield, field, (gchar *) string, FALSE);
-    return ret;
+    pthread_mutex_unlock (& mutex);
 }
 
-/**
- * Associates given string to a field in specified #Tuple. The caller
- * gives up ownership of the string. If field already exists, old
- * value is freed and replaced.
- *
- * Desired field can be specified either by key name or if it is
- * one of basic fields, by #TupleBasicType index.
- *
- * @param[in] tuple #Tuple structure pointer.
- * @param[in] nfield #TupleBasicType index or -1 if key name is to be used instead.
- * @param[in] field String acting as key name or NULL if nfield is used.
- * @param[in] string String to be associated to given field in Tuple.
- * @return TRUE if operation was succesful, FALSE if not.
- */
-
-gboolean tuple_associate_string_rel (Tuple * tuple, const gint nfield,
- const gchar * field, gchar * string)
+void tuple_set_str (Tuple * tuple, int nfield, const char * field, const char * str)
 {
-    if (string && ! g_utf8_validate (string, -1, NULL))
+    if (! str)
     {
-        fprintf (stderr, "Invalid UTF-8: %s.\n", string);
-        gchar * copy = str_to_utf8 (string);
-        g_free (string);
-        string = copy;
+        tuple_unset (tuple, nfield, field);
+        return;
     }
 
-    return set_string (tuple, nfield, field, string, TRUE);
-}
-
-/**
- * Associates given integer to a field in specified #Tuple.
- * If field already exists, old value is freed and replaced.
- *
- * Desired field can be specified either by key name or if it is
- * one of basic fields, by #TupleBasicType index.
- *
- * @param[in] tuple #Tuple structure pointer.
- * @param[in] nfield #TupleBasicType index or -1 if key name is to be used instead.
- * @param[in] field String acting as key name or NULL if nfield is used.
- * @param[in] integer Integer to be associated to given field in Tuple.
- * @return TRUE if operation was succesful, FALSE if not.
- */
-gboolean
-tuple_associate_int(Tuple *tuple, const gint nfield, const gchar *field, gint integer)
-{
-    TupleValue *value;
+    if (nfield < 0)
+        nfield = tuple_field_by_name (field);
+    if (nfield < 0 || nfield >= TUPLE_FIELDS || tuple_fields[nfield].type != TUPLE_STRING)
+        return;
 
-    TUPLE_LOCK_WRITE();
-    if ((value = tuple_associate_data(tuple, nfield, field, TUPLE_INT)) == NULL)
-        return FALSE;
+    pthread_mutex_lock (& mutex);
 
-    value->value.integer = integer;
+    TupleVal * val = lookup_val (tuple, nfield, TRUE, FALSE);
+    if (val->str)
+        str_unref (val->str);
+    val->str = str_get (str);
 
-    TUPLE_UNLOCK_WRITE();
-    return TRUE;
+    pthread_mutex_unlock (& mutex);
 }
 
-/**
- * Disassociates given field from specified #Tuple structure.
- * Desired field can be specified either by key name or if it is
- * one of basic fields, by #TupleBasicType index.
- *
- * @param[in] tuple #Tuple structure pointer.
- * @param[in] cnfield #TupleBasicType index or -1 if key name is to be used instead.
- * @param[in] field String acting as key name or NULL if nfield is used.
- */
-void
-tuple_disassociate(Tuple *tuple, const gint cnfield, const gchar *field)
+void tuple_unset (Tuple * tuple, int nfield, const char * field)
 {
-    TupleValue *value;
-    gint nfield = cnfield;
-
-    g_return_if_fail(tuple != NULL);
-    g_return_if_fail(nfield < FIELD_LAST);
-
     if (nfield < 0)
-        nfield = tuple_get_nfield(field);
+        nfield = tuple_field_by_name (field);
+    if (nfield < 0 || nfield >= TUPLE_FIELDS)
+        return;
 
-    TUPLE_LOCK_WRITE();
-    if (nfield < 0)
-        /* why _delete()? because _delete() returns the dictnode's data on success */
-        value = mowgli_patricia_delete(tuple->dict, field);
-    else {
-        value = tuple->values[nfield];
-        tuple->values[nfield] = NULL;
-    }
+    pthread_mutex_lock (& mutex);
 
-    if (value)
-        tuple_value_destroy (value);
+    TupleVal * val = lookup_val (tuple, nfield, FALSE, TRUE);
+    if (val)
+    {
+        if (tuple_fields[nfield].type == TUPLE_STRING)
+        {
+            str_unref (val->str);
+            val->str = NULL;
+        }
+        else
+            val->x = 0;
+    }
 
-    TUPLE_UNLOCK_WRITE();
+    pthread_mutex_unlock (& mutex);
 }
 
 /**
@@ -559,71 +449,42 @@ tuple_disassociate(Tuple *tuple, const gint cnfield, const gchar *field)
  * @param[in] field String acting as key name or NULL if nfield is used.
  * @return #TupleValueType of the field or TUPLE_UNKNOWN if there was an error.
  */
-TupleValueType tuple_get_value_type (const Tuple * tuple, gint cnfield,
- const gchar * field)
+TupleValueType tuple_get_value_type (const Tuple * tuple, int nfield, const char * field)
 {
-    TupleValueType type = TUPLE_UNKNOWN;
-    gint nfield = cnfield;
+    if (nfield < 0)
+        nfield = tuple_field_by_name (field);
+    if (nfield < 0 || nfield >= TUPLE_FIELDS)
+        return TUPLE_UNKNOWN;
 
-    g_return_val_if_fail(tuple != NULL, TUPLE_UNKNOWN);
-    g_return_val_if_fail(nfield < FIELD_LAST, TUPLE_UNKNOWN);
+    pthread_mutex_lock (& mutex);
 
-    if (nfield < 0)
-        nfield = tuple_get_nfield(field);
-
-    TUPLE_LOCK_READ();
-    if (nfield < 0) {
-        TupleValue *value;
-        if ((value = mowgli_patricia_retrieve(tuple->dict, field)) != NULL)
-            type = value->type;
-    } else {
-        if (tuple->values[nfield])
-            type = tuple->values[nfield]->type;
-    }
+    TupleValueType type = TUPLE_UNKNOWN;
+
+    TupleVal * val = lookup_val ((Tuple *) tuple, nfield, FALSE, FALSE);
+    if (val)
+        type = tuple_fields[nfield].type;
 
-    TUPLE_UNLOCK_READ();
+    pthread_mutex_unlock (& mutex);
     return type;
 }
 
-/**
- * Returns pointer to a string associated to #Tuple field.
- * Desired field can be specified either by key name or if it is
- * one of basic fields, by #TupleBasicType index.
- *
- * @param[in] tuple #Tuple structure pointer.
- * @param[in] cnfield #TupleBasicType index or -1 if key name is to be used instead.
- * @param[in] field String acting as key name or NULL if nfield is used.
- * @return Pointer to string or NULL if the field/key did not exist.
- * The returned string is const, and must not be freed or modified.
- */
-const gchar * tuple_get_string (const Tuple * tuple, gint cnfield, const gchar *
- field)
+char * tuple_get_str (const Tuple * tuple, int nfield, const char * field)
 {
-    TupleValue *value;
-    gint nfield = cnfield;
+    if (nfield < 0)
+        nfield = tuple_field_by_name (field);
+    if (nfield < 0 || nfield >= TUPLE_FIELDS || tuple_fields[nfield].type != TUPLE_STRING)
+        return NULL;
 
-    g_return_val_if_fail(tuple != NULL, NULL);
-    g_return_val_if_fail(nfield < FIELD_LAST, NULL);
+    pthread_mutex_lock (& mutex);
 
-    if (nfield < 0)
-        nfield = tuple_get_nfield(field);
+    char * str = NULL;
 
-    TUPLE_LOCK_READ();
-    if (nfield < 0)
-        value = mowgli_patricia_retrieve(tuple->dict, field);
-    else
-        value = tuple->values[nfield];
-
-    if (value) {
-        if (value->type != TUPLE_STRING)
-            mowgli_throw_exception_val(audacious.tuple.invalid_type_request, NULL);
-
-        TUPLE_UNLOCK_READ();
-        return value->value.string;
-    } else {
-        TUPLE_UNLOCK_READ();
-        return NULL;
-    }
+    TupleVal * val = lookup_val ((Tuple *) tuple, nfield, FALSE, FALSE);
+    if (val)
+        str = str_ref (val->str);
+
+    pthread_mutex_unlock (& mutex);
+    return str;
 }
 
 /**
@@ -638,45 +499,35 @@ const gchar * tuple_get_string (const Tuple * tuple, gint cnfield, const gchar *
  *
  * @bug There is no way to distinguish error situations if the associated value is zero.
  */
-gint tuple_get_int (const Tuple * tuple, gint cnfield, const gchar * field)
+int tuple_get_int (const Tuple * tuple, int nfield, const char * field)
 {
-    TupleValue *value;
-    gint nfield = cnfield;
+    if (nfield < 0)
+        nfield = tuple_field_by_name (field);
+    if (nfield < 0 || nfield >= TUPLE_FIELDS || tuple_fields[nfield].type != TUPLE_INT)
+        return 0;
 
-    g_return_val_if_fail(tuple != NULL, 0);
-    g_return_val_if_fail(nfield < FIELD_LAST, 0);
+    pthread_mutex_lock (& mutex);
 
-    if (nfield < 0)
-        nfield = tuple_get_nfield(field);
+    int x = 0;
 
-    TUPLE_LOCK_READ();
-    if (nfield < 0)
-        value = mowgli_patricia_retrieve(tuple->dict, field);
-    else
-        value = tuple->values[nfield];
-
-    if (value) {
-        if (value->type != TUPLE_INT)
-            mowgli_throw_exception_val(audacious.tuple.invalid_type_request, 0);
-
-        TUPLE_UNLOCK_READ();
-        return value->value.integer;
-    } else {
-        TUPLE_UNLOCK_READ();
-        return 0;
-    }
+    TupleVal * val = lookup_val ((Tuple *) tuple, nfield, FALSE, FALSE);
+    if (val)
+        x = val->x;
+
+    pthread_mutex_unlock (& mutex);
+    return x;
 }
 
 #define APPEND(b, ...) snprintf (b + strlen (b), sizeof b - strlen (b), \
  __VA_ARGS__)
 
-void tuple_set_format (Tuple * t, const gchar * format, gint chans, gint rate,
- gint brate)
+void tuple_set_format (Tuple * t, const char * format, int chans, int rate,
+ int brate)
 {
     if (format)
-        tuple_associate_string (t, FIELD_CODEC, NULL, format);
+        tuple_set_str (t, FIELD_CODEC, NULL, format);
 
-    gchar buf[32];
+    char buf[32];
     buf[0] = 0;
 
     if (chans > 0)
@@ -686,7 +537,8 @@ void tuple_set_format (Tuple * t, const gchar * format, gint chans, gint rate,
         else if (chans == 2)
             APPEND (buf, _("Stereo"));
         else
-            APPEND (buf, _("%d channels"), chans);
+            APPEND (buf, dngettext (PACKAGE, "%d channel", "%d channels",
+             chans), chans);
 
         if (rate > 0)
             APPEND (buf, ", ");
@@ -696,8 +548,62 @@ void tuple_set_format (Tuple * t, const gchar * format, gint chans, gint rate,
         APPEND (buf, "%d kHz", rate / 1000);
 
     if (buf[0])
-        tuple_associate_string (t, FIELD_QUALITY, NULL, buf);
-    
+        tuple_set_str (t, FIELD_QUALITY, NULL, buf);
+
     if (brate > 0)
-        tuple_associate_int (t, FIELD_BITRATE, NULL, brate);
+        tuple_set_int (t, FIELD_BITRATE, NULL, brate);
+}
+
+void tuple_set_subtunes (Tuple * tuple, int n_subtunes, const int * subtunes)
+{
+    pthread_mutex_lock (& mutex);
+
+    g_free (tuple->subtunes);
+    tuple->subtunes = NULL;
+
+    tuple->nsubtunes = n_subtunes;
+    if (subtunes)
+        tuple->subtunes = g_memdup (subtunes, sizeof (int) * n_subtunes);
+
+    pthread_mutex_unlock (& mutex);
+}
+
+int tuple_get_n_subtunes (Tuple * tuple)
+{
+    pthread_mutex_lock (& mutex);
+
+    int n_subtunes = tuple->nsubtunes;
+
+    pthread_mutex_unlock (& mutex);
+    return n_subtunes;
+}
+
+int tuple_get_nth_subtune (Tuple * tuple, int n)
+{
+    pthread_mutex_lock (& mutex);
+
+    int subtune = -1;
+    if (n >= 0 && n < tuple->nsubtunes)
+        subtune = tuple->subtunes ? tuple->subtunes[n] : 1 + n;
+
+    pthread_mutex_unlock (& mutex);
+    return subtune;
+}
+
+char * tuple_format_title (Tuple * tuple, const char * format)
+{
+    static const gint fallbacks[] = {FIELD_TITLE, FIELD_FILE_NAME, FIELD_FILE_PATH};
+
+    char * title = tuple_formatter_process_string (tuple, format);
+
+    for (int i = 0; i < G_N_ELEMENTS (fallbacks); i ++)
+    {
+        if (title && title[0])
+            break;
+
+        str_unref (title);
+        title = tuple_get_str (tuple, fallbacks[i], NULL);
+    }
+
+    return title ? title : str_get ("");
 }
diff --git a/src/libaudcore/tuple.h b/src/libaudcore/tuple.h
index bb277bf..f202c1d 100644
--- a/src/libaudcore/tuple.h
+++ b/src/libaudcore/tuple.h
@@ -1,6 +1,7 @@
 /*
- * Audacious
- * Copyright (c) 2006-2007 Audacious team
+ * tuple.h
+ * Copyright 2007-2011 William Pitcock, Christian Birchinger, Matti Hämäläinen,
+ *                     Giacomo Lozito, Eugene Zagidullin, and John Lindgren
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -17,18 +18,16 @@
  * The Audacious team does not consider modular code linking to
  * Audacious or using our public API to be a derived work.
  */
+
 /**
  * @file tuple.h
  * @brief Basic Tuple handling API.
  */
 
-#ifndef AUDACIOUS_TUPLE_H
-#define AUDACIOUS_TUPLE_H
-
-#include <glib.h>
-#include <mowgli.h>
+#ifndef LIBAUDCORE_TUPLE_H
+#define LIBAUDCORE_TUPLE_H
 
-G_BEGIN_DECLS
+#include <libaudcore/core.h>
 
 /** Ordered enum for basic #Tuple fields.
  * @sa TupleBasicType
@@ -40,9 +39,8 @@ enum {
     FIELD_COMMENT,      /**< Freeform comment */
     FIELD_GENRE,        /**< Song's genre */
 
-    FIELD_TRACK,
     FIELD_TRACK_NUMBER,
-    FIELD_LENGTH,       /**< Track length in seconds */
+    FIELD_LENGTH,       /**< Track length in milliseconds */
     FIELD_YEAR,         /**< Year of production/performance/etc */
     FIELD_QUALITY,      /**< String representing quality, such as
                              "lossy", "lossless", "sequenced"  */
@@ -51,10 +49,9 @@ enum {
     FIELD_FILE_NAME,    /**< File name part of the location URI */
     FIELD_FILE_PATH,    /**< Path part of the location URI */
     FIELD_FILE_EXT,     /**< Filename extension part of the location URI */
-    FIELD_SONG_ARTIST,
 
-    FIELD_MTIME,        /**< Playlist entry modification time for internal use */
-    FIELD_FORMATTER,    /**< Playlist entry Tuplez formatting string */
+    FIELD_SONG_ARTIST,
+    FIELD_COMPOSER,     /**< Composer of song, if different than artist. */
     FIELD_PERFORMER,
     FIELD_COPYRIGHT,
     FIELD_DATE,
@@ -80,10 +77,7 @@ enum {
     FIELD_GAIN_GAIN_UNIT,
     FIELD_GAIN_PEAK_UNIT,
 
-    FIELD_COMPOSER,     /**< Composer of song, if different than artist. */
-
-    /* Special field, must always be last */
-    FIELD_LAST
+    TUPLE_FIELDS
 };
 
 typedef enum {
@@ -92,66 +86,92 @@ typedef enum {
     TUPLE_UNKNOWN
 } TupleValueType;
 
-typedef struct {
-    gchar *name;
-    TupleValueType type;
-} TupleBasicType;
+int tuple_field_by_name (const char * name);
+const char * tuple_field_get_name (int field);
+TupleValueType tuple_field_get_type (int field);
 
-extern const TupleBasicType tuple_fields[FIELD_LAST];
+typedef struct _Tuple Tuple;
 
-#define TUPLE_NAME_MAX 20
+/* Creates a new, blank tuple with a reference count of one. */
+Tuple * tuple_new (void);
 
-typedef struct {
-    gchar name[TUPLE_NAME_MAX]; /* for standard fields, the empty string */
-    TupleValueType type;
-    union {
-        gchar *string;
-        gint integer;
-    } value;
-} TupleValue;
+/* Increments the reference count of <tuple> by one. */
+Tuple * tuple_ref (Tuple * tuple);
 
-/**
- * Structure for holding and passing around miscellaneous track
- * metadata. This is not the same as a playlist entry, though.
- */
-typedef struct _Tuple {
-    mowgli_object_t parent;
-    mowgli_patricia_t *dict;        /**< Mowgli dictionary for holding other than basic values. */
-    TupleValue *values[FIELD_LAST]; /**< Basic #Tuple values, entry is NULL if not set. */
-    gint nsubtunes;                 /**< Number of subtunes, if any. Values greater than 0
-                                         mean that there are subtunes and #subtunes array
-                                         may be set. */
-    gint *subtunes;                 /**< Array of gint containing subtune index numbers.
-                                         Can be NULL if indexing is linear or if
-                                         there are no subtunes. */
-} Tuple;
-
-
-Tuple *tuple_new(void);
+/* Decrements the reference count of <tuple> by one.  If the reference count
+ * drops to zero, releases all memory used by <tuple>. */
+void tuple_unref (Tuple * tuple);
+
+/* Makes a copy of <tuple>.  Only use tuple_copy() if you need to modify one
+ * copy of the tuple while not modifying the other.  In most cases, tuple_ref()
+ * is more appropriate. */
 Tuple *tuple_copy(const Tuple *);
-void tuple_set_filename(Tuple *tuple, const gchar *filename);
-Tuple *tuple_new_from_filename(const gchar *filename);
-gboolean tuple_associate_string_rel(Tuple *tuple, const gint nfield, const gchar *field, gchar *string);
-gboolean tuple_associate_string(Tuple *tuple, const gint nfield, const gchar *field, const gchar *string);
-gboolean tuple_associate_int(Tuple *tuple, const gint nfield, const gchar *field, gint integer);
-void tuple_disassociate(Tuple *tuple, const gint nfield, const gchar *field);
-void tuple_disassociate_now(TupleValue *value);
-TupleValueType tuple_get_value_type (const Tuple * tuple, gint nfield,
- const gchar * field);
-const gchar * tuple_get_string (const Tuple * tuple, gint nfield, const gchar *
- field);
-gint tuple_get_int (const Tuple * tuple, gint nfield, const gchar * field);
-#define tuple_free(x) mowgli_object_unref(x);
+
+/* Parses the URI <filename> and sets FIELD_FILE_NAME, FIELD_FILE_PATH,
+ * FIELD_FILE_EXT, and FIELD_SUBSONG_ID accordingly. */
+void tuple_set_filename(Tuple *tuple, const char *filename);
+
+/* Convenience function, equivalent to calling tuple_new() and then
+ * tuple_set_filename(). */
+Tuple *tuple_new_from_filename(const char *filename);
+
+/* Sets a field to the integer value <x>. */
+void tuple_set_int (Tuple * tuple, int nfield, const char * field, int x);
+
+/* Sets the field specified by <nfield> (one of the FIELD_* constants) or
+ * <field> (one of the names returned by tuple_field_get_name() to the string
+ * value <str>.  Only one of <nfield> or <field> may be set.  If <nfield> is
+ * set, <field> must be NULL; if <field> is set, <nfield> must be -1.  As a
+ * special case, if <str> is NULL, the result is equivalent to calling
+ * tuple_unset(). */
+void tuple_set_str (Tuple * tuple, int nfield, const char * field, const char * str);
+
+/* Clears any value that a field is currently set to. */
+void tuple_unset (Tuple * tuple, int nfield, const char * field);
+
+/* Returns the value type of a field, or TUPLE_UNKNOWN if the field has not been
+ * set to any value. */
+TupleValueType tuple_get_value_type (const Tuple * tuple, int nfield,
+ const char * field);
+
+/* Returns the string value of a field.  The returned string is pooled and must
+ * be released with str_unref() when no longer needed.  If the field has not
+ * been set to any value, returns NULL. */
+char * tuple_get_str (const Tuple * tuple, int nfield, const char * field);
+
+/* Returns the integer value of a field.  If the field has not been set to any
+ * value, returns 0.  (In hindsight, it would have been better to return -1 in
+ * this case.  If you need to distinguish between a value of 0 and a field not
+ * set to any value, use tuple_get_value_type().) */
+int tuple_get_int (const Tuple * tuple, int nfield, const char * field);
 
 /* Fills in format-related fields (specifically FIELD_CODEC, FIELD_QUALITY, and
- * FIELD_BITRATE.  Plugins should use this function instead of setting these
+ * FIELD_BITRATE).  Plugins should use this function instead of setting these
  * fields individually so that the style is consistent across file formats.
  * <format> should be a brief description such as "Microsoft WAV", "MPEG-1 layer
  * 3", "Audio CD", and so on.  <samplerate> is in Hertz.  <bitrate> is in 1000
  * bits per second. */
-void tuple_set_format (Tuple * tuple, const gchar * format, gint channels, gint
- samplerate, gint bitrate);
-
-G_END_DECLS
-
-#endif /* AUDACIOUS_TUPLE_H */
+void tuple_set_format (Tuple * tuple, const char * format, int channels, int
+ samplerate, int bitrate);
+
+/* In addition to the normal fields, tuples contain an integer array of subtune
+ * ID numbers.  This function sets that array.  It also sets FIELD_SUBSONG_NUM
+ * to the value <n_subtunes>. */
+void tuple_set_subtunes (Tuple * tuple, int n_subtunes, const int * subtunes);
+
+/* Returns the length of the subtune array.  If the array has not been set,
+ * returns zero.  Note that if FIELD_SUBSONG_NUM is changed after
+ * tuple_set_subtunes() is called, this function returns the value <n_subtunes>
+ * passed to tuple_set_subtunes(), not the value of FIELD_SUBSONG_NUM. */
+int tuple_get_n_subtunes (Tuple * tuple);
+
+/* Returns the <n>th member of the subtune array. */
+int tuple_get_nth_subtune (Tuple * tuple, int n);
+
+/* Generates a formatted title string for <tuple> according to <format>.  The
+ * syntax of <format> is documented in tuple_formatter.c.  The returned string
+ * is pooled and must be released with str_unref() when no longer need.  The
+ * returned string is never NULL, though it may be the empty string. */
+char * tuple_format_title (Tuple * tuple, const char * format);
+
+#endif /* LIBAUDCORE_TUPLE_H */
diff --git a/src/libaudcore/tuple_compiler.c b/src/libaudcore/tuple_compiler.c
index c930f5b..eeef443 100644
--- a/src/libaudcore/tuple_compiler.c
+++ b/src/libaudcore/tuple_compiler.c
@@ -1,6 +1,7 @@
 /*
  * Audacious - Tuplez compiler
  * Copyright (c) 2007 Matti 'ccr' Hämäläinen
+ * Copyright (c) 2011 John Lindgren
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -31,46 +32,73 @@
  *   currently there is just a single context, is a "global" context needed?
  */
 
-#include "config.h"
-#include <assert.h>
+#include <ctype.h>
 #include <stdarg.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+#include <glib.h>
+
 #include "tuple_compiler.h"
 
 #define MAX_STR		(256)
 #define MIN_ALLOC_NODES (8)
 #define MIN_ALLOC_BUF	(64)
-
-
-void tuple_error(TupleEvalContext *ctx, const gchar *fmt, ...)
-{
-  va_list ap;
-  g_free(ctx->errmsg);
-  va_start(ap, fmt);
-  ctx->errmsg = g_strdup_vprintf(fmt, ap);
-  va_end(ap);
-  ctx->iserror = TRUE;
-}
+#define TUPLEZ_MAX_VARS (4)
+
+#define tuple_error(ctx, ...) fprintf (stderr, "Tuple compiler: " __VA_ARGS__)
+
+enum {
+    OP_RAW = 0,		/* plain text */
+    OP_FIELD,		/* a field/variable */
+    OP_EXISTS,
+    OP_EQUALS,
+    OP_NOT_EQUALS,
+    OP_GT,
+    OP_GTEQ,
+    OP_LT,
+    OP_LTEQ,
+    OP_IS_EMPTY
+};
+
+enum {
+    TUPLE_VAR_FIELD = 0,
+    TUPLE_VAR_CONST
+};
+
+struct _TupleEvalNode {
+    int opcode;		/* operator, see OP_ enums */
+    int var[TUPLEZ_MAX_VARS];	/* tuple variable references */
+    char *text;		/* raw text, if any (OP_RAW) */
+    struct _TupleEvalNode *children, *next, *prev; /* children of this struct, and pointer to next node. */
+};
+
+typedef struct {
+    char *name;
+    int type;			/* Type of variable, see VAR_* */
+    int defvali;
+    TupleValueType ctype;	/* Type of constant/def value */
+
+    int fieldidx;		/* if >= 0: Index # of "pre-defined" Tuple fields */
+    bool_t fieldread, fieldvalid;
+    char * fieldstr;
+} TupleEvalVar;
+
+struct _TupleEvalContext {
+    int nvariables;
+    TupleEvalVar **variables;
+};
 
 
 static void tuple_evalctx_free_var(TupleEvalVar *var)
 {
-  assert(var != NULL);
-  var->fieldidx = -1;
-  g_free(var->defvals);
   g_free(var->name);
+  str_unref (var->fieldstr);
   g_free(var);
 }
 
 
-static void tuple_evalctx_free_function(TupleEvalFunc *func)
-{
-  assert(func != NULL);
-
-  g_free(func->name);
-  g_free(func);
-}
-
-
 /* Initialize an evaluation context
  */
 TupleEvalContext * tuple_evalctx_new(void)
@@ -79,21 +107,19 @@ TupleEvalContext * tuple_evalctx_new(void)
 }
 
 
-/* "Reset" the evaluation context, clean up temporary variables.
+/* "Reset" the evaluation context
  */
 void tuple_evalctx_reset(TupleEvalContext *ctx)
 {
-  gint i;
+  int i;
 
   for (i = 0; i < ctx->nvariables; i++)
     if (ctx->variables[i]) {
-      ctx->variables[i]->fieldref = NULL;
-
-      if (ctx->variables[i]->istemp)
-        tuple_evalctx_free_var(ctx->variables[i]);
+      ctx->variables[i]->fieldread = FALSE;
+      ctx->variables[i]->fieldvalid = FALSE;
+      str_unref (ctx->variables[i]->fieldstr);
+      ctx->variables[i]->fieldstr = NULL;
     }
-
-  ctx->iserror = FALSE;
 }
 
 
@@ -101,7 +127,7 @@ void tuple_evalctx_reset(TupleEvalContext *ctx)
  */
 void tuple_evalctx_free(TupleEvalContext *ctx)
 {
-  gint i;
+  int i;
 
   if (!ctx) return;
 
@@ -111,36 +137,26 @@ void tuple_evalctx_free(TupleEvalContext *ctx)
       tuple_evalctx_free_var(ctx->variables[i]);
 
   g_free(ctx->variables);
-
-  /* Deallocate functions */
-  for (i = 0; i < ctx->nfunctions; i++)
-    if (ctx->functions[i])
-      tuple_evalctx_free_function(ctx->functions[i]);
-
-  g_free(ctx->functions);
   g_free(ctx);
 }
 
 
-gint tuple_evalctx_add_var(TupleEvalContext *ctx, const gchar *name, const gboolean istemp, const gint type, const TupleValueType ctype)
+static int tuple_evalctx_add_var (TupleEvalContext * ctx, const char * name,
+ const int type, const TupleValueType ctype)
 {
-  gint i, ref = -1;
+  int i;
   TupleEvalVar *tmp = g_new0(TupleEvalVar, 1);
-  assert(tmp != NULL);
 
   tmp->name = g_strdup(name);
-  tmp->istemp = istemp;
   tmp->type = type;
-  tmp->fieldidx = ref;
+  tmp->fieldidx = -1;
   tmp->ctype = ctype;
 
   /* Find fieldidx, if any */
   switch (type) {
     case TUPLE_VAR_FIELD:
-      for (i = 0; i < FIELD_LAST && ref < 0; i++)
-        if (strcmp(tuple_fields[i].name, name) == 0) ref = i;
-
-        tmp->fieldidx = ref;
+      tmp->fieldidx = tuple_field_by_name (name);
+      tmp->ctype = tuple_field_get_type (tmp->fieldidx);
       break;
 
     case TUPLE_VAR_CONST:
@@ -166,20 +182,8 @@ gint tuple_evalctx_add_var(TupleEvalContext *ctx, const gchar *name, const gbool
 }
 
 
-gint tuple_evalctx_add_function(TupleEvalContext *ctx, gchar *name)
-{
-  assert(ctx != NULL);
-  assert(name != NULL);
-
-  return -1;
-}
-
-
 static void tuple_evalnode_insert(TupleEvalNode **nodes, TupleEvalNode *node)
 {
-  assert(nodes != NULL);
-  assert(node != NULL);
-
   if (*nodes) {
     node->prev = (*nodes)->prev;
     (*nodes)->prev->next = node;
@@ -218,17 +222,15 @@ void tuple_evalnode_free(TupleEvalNode *expr)
 }
 
 
-static TupleEvalNode *tuple_compiler_pass1(gint *level, TupleEvalContext *ctx, gchar **expression);
+static TupleEvalNode *tuple_compiler_pass1(int *level, TupleEvalContext *ctx, char **expression);
 
 
-static gboolean tc_get_item(TupleEvalContext *ctx,
-    gchar **str, gchar *buf, gssize max,
-    gchar endch, gboolean *literal, gchar *errstr, gchar *item)
+static bool_t tc_get_item(TupleEvalContext *ctx,
+    char **str, char *buf, gssize max,
+    char endch, bool_t *literal, char *errstr, char *item)
 {
   gssize i = 0;
-  gchar *s = *str, tmpendch;
-  assert(str != NULL);
-  assert(buf != NULL);
+  char *s = *str, tmpendch;
 
   if (*s == '"') {
     if (*literal == FALSE) {
@@ -282,9 +284,9 @@ static gboolean tc_get_item(TupleEvalContext *ctx,
 }
 
 
-static gint tc_get_variable(TupleEvalContext *ctx, gchar *name, gint type)
+static int tc_get_variable(TupleEvalContext *ctx, char *name, int type)
 {
-  gint i;
+  int i;
   TupleValueType ctype = TUPLE_UNKNOWN;
 
   if (name == '\0') return -1;
@@ -301,14 +303,14 @@ static gint tc_get_variable(TupleEvalContext *ctx, gchar *name, gint type)
         return i;
   }
 
-  return tuple_evalctx_add_var(ctx, name, FALSE, type, ctype);
+  return tuple_evalctx_add_var(ctx, name, type, ctype);
 }
 
 
-static gboolean tc_parse_construct(TupleEvalContext *ctx, TupleEvalNode **res, gchar *item, gchar **c, gint *level, gint opcode)
+static bool_t tc_parse_construct(TupleEvalContext *ctx, TupleEvalNode **res, char *item, char **c, int *level, int opcode)
 {
-  gchar tmps1[MAX_STR], tmps2[MAX_STR];
-  gboolean literal1 = TRUE, literal2 = TRUE;
+  char tmps1[MAX_STR], tmps2[MAX_STR];
+  bool_t literal1 = TRUE, literal2 = TRUE;
 
   (*c)++;
   if (tc_get_item(ctx, c, tmps1, MAX_STR, ',', &literal1, "tag1", item)) {
@@ -343,13 +345,11 @@ static gboolean tc_parse_construct(TupleEvalContext *ctx, TupleEvalNode **res, g
  * A "simple" straight compilation is sufficient in first pass, later
  * passes can perform subexpression removal and other optimizations.
  */
-static TupleEvalNode *tuple_compiler_pass1(gint *level, TupleEvalContext *ctx, gchar **expression)
+static TupleEvalNode *tuple_compiler_pass1(int *level, TupleEvalContext *ctx, char **expression)
 {
   TupleEvalNode *res = NULL, *tmp = NULL;
-  gchar *c = *expression, *item, tmps1[MAX_STR];
-  gboolean literal, end = FALSE;
-  assert(ctx != NULL);
-  assert(expression != NULL);
+  char *c = *expression, *item, tmps1[MAX_STR];
+  bool_t literal, end = FALSE;
 
   (*level)++;
 
@@ -363,8 +363,8 @@ static TupleEvalNode *tuple_compiler_pass1(gint *level, TupleEvalContext *ctx, g
       /* Expression? */
       item = c++;
       if (*c == '{') {
-        gint opcode;
-        gchar *expr = ++c;
+        int opcode;
+        char *expr = ++c;
 
         switch (*c) {
           case '?': c++;
@@ -536,22 +536,11 @@ ret_error:
 }
 
 
-static TupleEvalNode *tuple_compiler_pass2(gboolean *changed, TupleEvalContext *ctx, TupleEvalNode *expr)
-{
-  /* TupleEvalNode *curr = expr; */
-  TupleEvalNode *res = NULL;
-  assert(ctx != NULL);
-
-  return res;
-}
-
-
-TupleEvalNode *tuple_formatter_compile(TupleEvalContext *ctx, gchar *expr)
+TupleEvalNode *tuple_formatter_compile(TupleEvalContext *ctx, char *expr)
 {
-  gint level = 0;
-  gboolean changed = FALSE;
-  gchar *tmpexpr = expr;
-  TupleEvalNode *res1, *res2;
+  int level = 0;
+  char *tmpexpr = expr;
+  TupleEvalNode *res1;
 
   res1 = tuple_compiler_pass1(&level, ctx, &tmpexpr);
 
@@ -561,38 +550,40 @@ TupleEvalNode *tuple_formatter_compile(TupleEvalContext *ctx, gchar *expr)
     return NULL;
   }
 
-  res2 = tuple_compiler_pass2(&changed, ctx, res1);
-
-  if (changed) {
-    tuple_evalnode_free(res1);
-    return res2;
-  } else {
-    tuple_evalnode_free(res2);
-    return res1;
-  }
+  return res1;
 }
 
 
-/* Fetch a reference to a tuple field for given variable by fieldidx or dict.
- * Return pointer to field, NULL if not available.
- */
-static TupleValue * tf_get_fieldref (TupleEvalVar * var, const Tuple * tuple)
+/* Fetch a tuple field value.  Return TRUE if found. */
+static bool_t tf_get_fieldval (TupleEvalVar * var, const Tuple * tuple)
 {
-  if (var->type == TUPLE_VAR_FIELD && var->fieldref == NULL) {
-    if (var->fieldidx < 0)
-      var->fieldref = mowgli_patricia_retrieve(tuple->dict, var->name);
-    else
-      var->fieldref = tuple->values[var->fieldidx];
+  if (var->type != TUPLE_VAR_FIELD || var->fieldidx < 0)
+    return FALSE;
+
+  if (var->fieldread)
+    return var->fieldvalid;
+
+  if (tuple_get_value_type (tuple, var->fieldidx, NULL) != var->ctype) {
+    var->fieldread = TRUE;
+    var->fieldvalid = FALSE;
+    return FALSE;
   }
 
-  return var->fieldref;
+  if (var->ctype == TUPLE_INT)
+    var->defvali = tuple_get_int (tuple, var->fieldidx, NULL);
+  else if (var->ctype == TUPLE_STRING)
+    var->fieldstr = tuple_get_str (tuple, var->fieldidx, NULL);
+
+  var->fieldread = TRUE;
+  var->fieldvalid = TRUE;
+  return TRUE;
 }
 
 
 /* Fetch string or int value of given variable, whatever type it might be.
  * Return VAR_* type for the variable.
  */
-static TupleValueType tf_get_var (gchar * * tmps, gint * tmpi, TupleEvalVar *
+static TupleValueType tf_get_var (char * * tmps, int * tmpi, TupleEvalVar *
  var, const Tuple * tuple)
 {
   TupleValueType type = TUPLE_UNKNOWN;
@@ -600,15 +591,6 @@ static TupleValueType tf_get_var (gchar * * tmps, gint * tmpi, TupleEvalVar *
   *tmpi = 0;
 
   switch (var->type) {
-    case TUPLE_VAR_DEF:
-      switch (var->ctype) {
-        case TUPLE_STRING: *tmps = var->defvals; break;
-        case TUPLE_INT: *tmpi = var->defvali; break;
-        default: /* Possible, but should be prevented elsewhere */ break;
-      }
-      type = var->ctype;
-      break;
-
     case TUPLE_VAR_CONST:
       switch (var->ctype) {
         case TUPLE_STRING: *tmps = var->name; break;
@@ -619,12 +601,12 @@ static TupleValueType tf_get_var (gchar * * tmps, gint * tmpi, TupleEvalVar *
       break;
 
     case TUPLE_VAR_FIELD:
-      if (tf_get_fieldref(var, tuple)) {
-        if (var->fieldref->type == TUPLE_STRING)
-          *tmps = var->fieldref->value.string;
-        else
-          *tmpi = var->fieldref->value.integer;
-        type = var->fieldref->type;
+      if (tf_get_fieldval (var, tuple)) {
+        type = var->ctype;
+        if (type == TUPLE_INT)
+          * tmpi = var->defvali;
+        else if (type == TUPLE_STRING)
+          * tmps = var->fieldstr;
       }
       break;
   }
@@ -636,21 +618,21 @@ static TupleValueType tf_get_var (gchar * * tmps, gint * tmpi, TupleEvalVar *
 /* Evaluate tuple in given TupleEval expression in given
  * context and return resulting string.
  */
-static gboolean tuple_formatter_eval_do (TupleEvalContext * ctx, TupleEvalNode *
- expr, const Tuple * tuple, gchar * * res, gssize * resmax, gssize * reslen)
+static bool_t tuple_formatter_eval_do (TupleEvalContext * ctx, TupleEvalNode *
+ expr, const Tuple * tuple, GString * out)
 {
   TupleEvalNode *curr = expr;
   TupleEvalVar *var0, *var1;
   TupleValueType type0, type1;
-  gint tmpi0, tmpi1;
-  gchar tmps[MAX_STR], *tmps0, *tmps1, *tmps2;
-  gboolean result;
-  gint resulti;
+  int tmpi0, tmpi1;
+  char tmps[MAX_STR], *tmps0, *tmps1, *tmps2;
+  bool_t result;
+  int resulti;
 
   if (!expr) return FALSE;
 
   while (curr) {
-    const gchar *str = NULL;
+    const char *str = NULL;
 
     switch (curr->opcode) {
       case OP_RAW:
@@ -661,31 +643,15 @@ static gboolean tuple_formatter_eval_do (TupleEvalContext * ctx, TupleEvalNode *
         var0 = ctx->variables[curr->var[0]];
 
         switch (var0->type) {
-          case TUPLE_VAR_DEF:
-            switch (var0->ctype) {
-              case TUPLE_STRING:
-                str = var0->defvals;
-                break;
-
-              case TUPLE_INT:
-                g_snprintf(tmps, sizeof(tmps), "%d", var0->defvali);
-                str = tmps;
-                break;
-
-              default:
-                break;
-            }
-            break;
-
           case TUPLE_VAR_FIELD:
-            if (tf_get_fieldref(var0, tuple)) {
-              switch (var0->fieldref->type) {
+            if (tf_get_fieldval (var0, tuple)) {
+              switch (var0->ctype) {
                 case TUPLE_STRING:
-                  str = var0->fieldref->value.string;
+                  str = var0->fieldstr;
                   break;
 
                 case TUPLE_INT:
-                  g_snprintf(tmps, sizeof(tmps), "%d", var0->fieldref->value.integer);
+                  g_snprintf (tmps, sizeof (tmps), "%d", var0->defvali);
                   str = tmps;
                   break;
 
@@ -732,32 +698,29 @@ static gboolean tuple_formatter_eval_do (TupleEvalContext * ctx, TupleEvalNode *
           }
         }
 
-        if (result && !tuple_formatter_eval_do(ctx, curr->children, tuple, res, resmax, reslen))
+        if (result && ! tuple_formatter_eval_do (ctx, curr->children, tuple, out))
           return FALSE;
         break;
 
       case OP_EXISTS:
-#ifdef NO_EXISTS_HACK
-        if (tf_get_fieldref(ctx->variables[curr->var[0]], tuple)) {
-          if (!tuple_formatter_eval_do(ctx, curr->children, tuple, res, resmax, reslen))
+        if (tf_get_fieldval (ctx->variables[curr->var[0]], tuple)) {
+          if (! tuple_formatter_eval_do (ctx, curr->children, tuple, out))
             return FALSE;
         }
         break;
-#endif
 
       case OP_IS_EMPTY:
         var0 = ctx->variables[curr->var[0]];
 
-        if (tf_get_fieldref(var0, tuple)) {
-
-          switch (var0->fieldref->type) {
+        if (tf_get_fieldval (var0, tuple)) {
+          switch (var0->ctype) {
           case TUPLE_INT:
-            result = (var0->fieldref->value.integer == 0);
+            result = (var0->defvali == 0);
             break;
 
           case TUPLE_STRING:
             result = TRUE;
-            tmps2 = var0->fieldref->value.string;
+            tmps2 = var0->fieldstr;
 
             while (result && tmps2 && *tmps2 != '\0') {
               gunichar uc = g_utf8_get_char(tmps2);
@@ -774,15 +737,8 @@ static gboolean tuple_formatter_eval_do (TupleEvalContext * ctx, TupleEvalNode *
         } else
           result = TRUE;
 
-#ifdef NO_EXISTS_HACK
-        if (result && !tuple_formatter_eval_do(ctx, curr->children, tuple, res, resmax, reslen))
+        if (result && ! tuple_formatter_eval_do (ctx, curr->children, tuple, out))
           return FALSE;
-#else
-        if ((curr->opcode == OP_EXISTS && !result) || (curr->opcode == OP_IS_EMPTY && result)) {
-          if (!tuple_formatter_eval_do(ctx, curr->children, tuple, res, resmax, reslen))
-            return FALSE;
-        }
-#endif
         break;
 
       default:
@@ -791,23 +747,8 @@ static gboolean tuple_formatter_eval_do (TupleEvalContext * ctx, TupleEvalNode *
         break;
     }
 
-    if (str) {
-      /* (Re)allocate res for more space, if needed. */
-      *reslen += strlen(str);
-      if (*res) {
-        if (*reslen >= *resmax) {
-          *resmax += *reslen + MIN_ALLOC_BUF;
-          *res = g_realloc(*res, *resmax);
-        }
-
-        strcat(*res, str);
-      } else {
-        *resmax = *reslen + MIN_ALLOC_BUF;
-        *res = g_malloc(*resmax);
-
-        g_strlcpy(*res, str, *resmax);
-      }
-    }
+    if (str)
+      g_string_append (out, str);
 
     curr = curr->next;
   }
@@ -815,120 +756,9 @@ static gboolean tuple_formatter_eval_do (TupleEvalContext * ctx, TupleEvalNode *
   return TRUE;
 }
 
-
-gchar * tuple_formatter_eval (TupleEvalContext * ctx, TupleEvalNode * expr,
- const Tuple * tuple)
-{
-  gchar *res = NULL;
-  gssize resmax = 0, reslen = 0;
-  assert(ctx != NULL);
-  assert(tuple != NULL);
-
-  if (!expr) return res;
-
-  tuple_formatter_eval_do(ctx, expr, tuple, &res, &resmax, &reslen);
-
-  return res;
-}
-
-
-static void print_vars(FILE *f, TupleEvalContext *ctx, TupleEvalNode *node, gint start, gint end)
-{
-  gint i;
-
-  for (i = start; i <= end; i++) {
-    TupleEvalVar *v = NULL;
-    gchar *s = NULL;
-    gint n = node->var[i];
-
-    if (n >= 0) {
-      v = ctx->variables[n];
-      if (v) {
-        s = v->name;
-
-        if (v->type == TUPLE_VAR_CONST)
-          fprintf(f, "(const)");
-        else if (v->type == TUPLE_VAR_DEF)
-          fprintf(f, "(def)");
-      }
-    }
-
-    fprintf(f, "var[%d]=(%d),\"%s\" ", i, n, s);
-  }
-}
-
-
-gint tuple_formatter_print(FILE *f, gint *level, TupleEvalContext *ctx, TupleEvalNode *expr)
+void tuple_formatter_eval (TupleEvalContext * ctx, TupleEvalNode * expr,
+ const Tuple * tuple, GString * out)
 {
-  TupleEvalNode *curr = expr;
-
-  if (!expr) return -1;
-
-  (*level)++;
-
-  while (curr) {
-    gint i;
-    for (i = 0; i < *level; i++)
-      fprintf(f, "  ");
-
-    switch (curr->opcode) {
-      case OP_RAW:
-        fprintf(f, "OP_RAW text=\"%s\"\n", curr->text);
-        break;
-
-      case OP_FIELD:
-        fprintf(f, "OP_FIELD ");
-        print_vars(f, ctx, curr, 0, 0);
-        fprintf(f, "\n");
-        break;
-
-      case OP_EXISTS:
-        fprintf(f, "OP_EXISTS ");
-        print_vars(f, ctx, curr, 0, 0);
-        fprintf(f, "\n");
-        tuple_formatter_print(f, level, ctx, curr->children);
-        break;
-
-      case OP_DEF_STRING:
-        fprintf(f, "OP_DEF_STRING ");
-        fprintf(f, "\n");
-        break;
-
-      case OP_DEF_INT:
-        fprintf(f, "OP_DEF_INT ");
-        fprintf(f, "\n");
-        break;
-
-      case OP_EQUALS:
-        fprintf(f, "OP_EQUALS ");
-        print_vars(f, ctx, curr, 0, 1);
-        fprintf(f, "\n");
-        tuple_formatter_print(f, level, ctx, curr->children);
-        break;
-
-      case OP_NOT_EQUALS:
-        fprintf(f, "OP_NOT_EQUALS ");
-        print_vars(f, ctx, curr, 0, 1);
-        fprintf(f, "\n");
-        tuple_formatter_print(f, level, ctx, curr->children);
-        break;
-
-      case OP_IS_EMPTY:
-        fprintf(f, "OP_IS_EMPTY ");
-        print_vars(f, ctx, curr, 0, 0);
-        fprintf(f, "\n");
-        tuple_formatter_print(f, level, ctx, curr->children);
-        break;
-
-      default:
-        fprintf(f, "Unimplemented opcode %d!\n", curr->opcode);
-        break;
-    }
-
-    curr = curr->next;
-  }
-
-  (*level)--;
-
-  return 0;
+    g_string_truncate (out, 0);
+    tuple_formatter_eval_do (ctx, expr, tuple, out);
 }
diff --git a/src/libaudcore/tuple_compiler.h b/src/libaudcore/tuple_compiler.h
index 62a0729..9aaacbf 100644
--- a/src/libaudcore/tuple_compiler.h
+++ b/src/libaudcore/tuple_compiler.h
@@ -17,100 +17,27 @@
  * The Audacious team does not consider modular code linking to
  * Audacious or using our public API to be a derived work.
  */
-#ifndef AUDACIOUS_TUPLE_COMPILER_H
-#define AUDACIOUS_TUPLE_COMPILER_H
-
-#include <glib.h>
-#include <mowgli.h>
-#include "tuple.h"
-
-G_BEGIN_DECLS
-
-#define TUPLEZ_MAX_VARS (4)
-
-
-enum {
-    OP_RAW = 0,		/* plain text */
-    OP_FIELD,		/* a field/variable */
-    OP_EXISTS,
-    OP_DEF_STRING,
-    OP_DEF_INT,
-    OP_EQUALS,
-    OP_NOT_EQUALS,
-    OP_GT,
-    OP_GTEQ,
-    OP_LT,
-    OP_LTEQ,
-    OP_IS_EMPTY,
-
-    OP_FUNCTION,	/* function */
-    OP_EXPRESSION	/* additional registered expressions */
-};
-
-
-enum {
-    TUPLE_VAR_FIELD = 0,
-    TUPLE_VAR_CONST,
-    TUPLE_VAR_DEF
-};
-
-
-/* Caching structure for deterministic functions
- */
-typedef struct {
-    gchar *name;
-    gboolean istemp;		/* Scope of variable - TRUE = temporary */
-    gint type;			/* Type of variable, see VAR_* */
-    gchar *defvals;		/* Defined value ${=foo,bar} */
-    gint defvali;
-    TupleValueType ctype;	/* Type of constant/def value */
-
-    gint fieldidx;		/* if >= 0: Index # of "pre-defined" Tuple fields */
-    TupleValue *fieldref;	/* Cached tuple field ref */
-} TupleEvalVar;
-
-
-typedef struct {
-    gchar *name;
-    gboolean isdeterministic;
-    gchar *(*func)(Tuple *tuple, TupleEvalVar **argument);
-} TupleEvalFunc;
 
+#ifndef LIBAUDCORE_TUPLE_COMPILER_H
+#define LIBAUDCORE_TUPLE_COMPILER_H
 
-typedef struct _TupleEvalNode {
-    gint opcode;		/* operator, see OP_ enums */
-    gint var[TUPLEZ_MAX_VARS];	/* tuple / global variable references */
-    gboolean global[TUPLEZ_MAX_VARS];
-    gchar *text;		/* raw text, if any (OP_RAW) */
-    gint function, expression;	/* for OP_FUNCTION and OP_EXPRESSION */
-    struct _TupleEvalNode *children, *next, *prev; /* children of this struct, and pointer to next node. */
-} TupleEvalNode;
-
-
-typedef struct {
-    gint nvariables, nfunctions, nexpressions;
-    TupleEvalVar **variables;
-    TupleEvalFunc **functions;
+#include <glib.h>
+#include <libaudcore/tuple.h>
 
-    /* Error context */
-    gboolean iserror;
-    gchar *errmsg;
-} TupleEvalContext;
+struct _TupleEvalNode;
+typedef struct _TupleEvalNode TupleEvalNode;
 
+struct _TupleEvalContext;
+typedef struct _TupleEvalContext TupleEvalContext;
 
 TupleEvalContext * tuple_evalctx_new(void);
 void tuple_evalctx_reset(TupleEvalContext *ctx);
 void tuple_evalctx_free(TupleEvalContext *ctx);
-gint tuple_evalctx_add_var(TupleEvalContext *ctx, const gchar *name, const gboolean istemp, const gint type, const TupleValueType ctype);
 
 void tuple_evalnode_free(TupleEvalNode *expr);
 
-gint tuple_formatter_print(FILE *f, gint *level, TupleEvalContext *ctx, TupleEvalNode *expr);
-TupleEvalNode *tuple_formatter_compile(TupleEvalContext *ctx, gchar *expr);
-gchar * tuple_formatter_eval (TupleEvalContext * ctx, TupleEvalNode * expr,
- const Tuple * tuple);
-
-
-G_END_DECLS
+TupleEvalNode *tuple_formatter_compile(TupleEvalContext *ctx, char *expr);
+void tuple_formatter_eval (TupleEvalContext * ctx, TupleEvalNode * expr,
+ const Tuple * tuple, GString * out);
 
-#endif /* AUDACIOUS_TUPLE_COMPILER_H */
+#endif /* LIBAUDCORE_TUPLE_COMPILER_H */
diff --git a/src/libaudcore/tuple_formatter.c b/src/libaudcore/tuple_formatter.c
index 4738ecb..04ea555 100644
--- a/src/libaudcore/tuple_formatter.c
+++ b/src/libaudcore/tuple_formatter.c
@@ -1,55 +1,28 @@
 /*
- * Audacious
+ * tuple_formatter.c
  * Copyright (c) 2007 William Pitcock
  *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; under version 3 of the License.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
  *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions, and the following disclaimer.
  *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses>.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ *    this list of conditions, and the following disclaimer in the documentation
+ *    provided with the distribution.
  *
- * The Audacious team does not consider modular code linking to
- * Audacious or using our public API to be a derived work.
+ * This software is provided "as is" and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising from
+ * the use of this software.
  */
 
 #include <glib.h>
-#include <mowgli.h>
+#include <pthread.h>
+#include <string.h>
 
-#include "config.h"
-#include "tuple.h"
+#include "tuple_compiler.h"
 #include "tuple_formatter.h"
-#include "audstrings.h"
-
-/*
- * TUPLE_USE_COMPILER:
- *  Undefine this to disable usage of the Tuplez compiler implementation.
- *  This may be useful for prototyping new features of the language.
- */
-#define TUPLE_USE_COMPILER
-
-/*
- * TUPLE_COMPILER_DEBUG:
- *  Define this to debug the execution process of the Tuplez compiled
- *  bytecode. This may be useful if bugs creep in.
- */
-#undef TUPLE_COMPILER_DEBUG
-
-#ifdef TUPLE_USE_COMPILER
-# include "tuple_compiler.h"
-static GStaticMutex tuplec_mutex = G_STATIC_MUTEX_INIT;
-#endif
-
-#ifdef _DEBUG
-# define _TRACE(fmt, ...) g_print("[tuple-fmt] %s(%d) " fmt "\n", __FILE__, __LINE__, __VA_ARGS__);
-#else
-# define _TRACE(fmt, ...)
-#endif
 
 /*
  * the tuple formatter:
@@ -77,477 +50,22 @@ static GStaticMutex tuplec_mutex = G_STATIC_MUTEX_INIT;
  * additionally, plugins can add additional instructions and functions!
  */
 
-typedef struct {
-    Tuple *tuple;
-    GString *str;
-} TupleFormatterContext;
-
-/* processes a construct, e.g. "${?artist:artist is defined}" would
-   return "artist is defined" if artist is defined. */
-gchar *
-tuple_formatter_process_construct(Tuple *tuple, const gchar *string)
-{
-    TupleFormatterContext *ctx;
-    const gchar *iter;
-    gchar *out;
-    gint level = 0;
-
-    g_return_val_if_fail(tuple != NULL, NULL);
-    g_return_val_if_fail(string != NULL, NULL);
-
-    ctx = g_new0(TupleFormatterContext, 1);
-    ctx->str = g_string_new("");
-
-    _TRACE("parsing <%s>", string);
-
-    /* parsers are ugly */
-    for (iter = string; *iter != '\0'; iter++)
-    {
-        /* if it's raw text, just copy the byte */
-        if (*iter != '$' && *iter != '%' && *iter != '}' )
-        {
-            g_string_append_c(ctx->str, *iter);
-        }
-        else if (*iter == '}' && level > 0)
-        {
-            level--;
-        }
-        else if (g_str_has_prefix(iter, "${") == TRUE)
-        {
-            GString *expression = g_string_new("");
-            GString *argument = g_string_new("");
-            GString *sel = expression;
-            gchar *result;
-            level++;
-
-            for (iter += 2; *iter != '\0'; iter++)
-            {
-                if (*iter == ':')
-                {
-                    if (sel != argument)
-                    {
-                        sel = argument;
-                        continue;
-                    }
-                    else
-                        g_string_append_c(sel, *iter);
-                    continue;
-                }
-
-                if (g_str_has_prefix(iter, "${") == TRUE || g_str_has_prefix(iter, "%{") == TRUE)
-                {
-                    if (sel == argument)
-                    {
-                        g_string_append_c(sel, *iter);
-                        level++;
-                    }
-                }
-                else if (*iter == '}')
-                {
-                    level--;
-                    if (sel == argument)
-                    {
-                        if (level == 0)
-                            break;
-                        else
-                            g_string_append_c(sel, *iter);
-                    }
-                    else
-                        break;
-                }
-                else
-                    g_string_append_c(sel, *iter);
-            }
-
-            if (expression->len == 0)
-            {
-                g_string_free(expression, TRUE);
-                g_string_free(argument, TRUE);
-                continue;
-            }
-
-            result = tuple_formatter_process_expr(tuple, expression->str, argument->len ? argument->str : NULL);
-            if (result != NULL)
-            {
-                g_string_append(ctx->str, result);
-                g_free(result);
-            }
-
-            g_string_free(expression, TRUE);
-            g_string_free(argument, TRUE);
-
-            if (*iter == '\0')
-                break;
-        }
-        else if (g_str_has_prefix(iter, "%{") == TRUE)
-        {
-            GString *expression = g_string_new("");
-            GString *argument = g_string_new("");
-            GString *sel = expression;
-            gchar *result;
-            level++;
-
-            for (iter += 2; *iter != '\0'; iter++)
-            {
-                if (*iter == ':')
-                {
-                    if (sel != argument)
-                    {
-                        sel = argument;
-                        continue;
-                    }
-                    else
-                        g_string_append_c(sel, *iter);
-                    continue;
-                }
-
-                if (g_str_has_prefix(iter, "${") == TRUE || g_str_has_prefix(iter, "%{") == TRUE)
-                {
-                    if (sel == argument)
-                    {
-                        g_string_append_c(sel, *iter);
-                        level++;
-                    }
-                }
-                else if (*iter == '}')
-                {
-                    level--;
-                    if (sel == argument)
-                    {
-                        if (level == 0)
-                            break;
-                        else
-                            g_string_append_c(sel, *iter);
-                    }
-                    else
-                        break;
-                }
-                else
-                    g_string_append_c(sel, *iter);
-            }
-
-            if (expression->len == 0)
-            {
-                g_string_free(expression, TRUE);
-                g_string_free(argument, TRUE);
-                continue;
-            }
-
-            result = tuple_formatter_process_function(tuple, expression->str, argument->len ? argument->str : NULL);
-            if (result != NULL)
-            {
-                g_string_append(ctx->str, result);
-                g_free(result);
-            }
-
-            g_string_free(expression, TRUE);
-            g_string_free(argument, TRUE);
-
-            if (*iter == '\0')
-                break;
-        }
-    }
-
-    out = g_strdup(ctx->str->str);
-    g_string_free(ctx->str, TRUE);
-    g_free(ctx);
-
-    _TRACE("parsed <%s> as <%s>", string, out);
-
-    return out;
-}
-
-static GList *tuple_formatter_expr_list = NULL;
-
-typedef struct {
-    const gchar *name;
-    gboolean (*func)(Tuple *tuple, const gchar *expression);
-} TupleFormatterExpression;
-
-/* processes an expression and optional argument pair. */
-gchar *
-tuple_formatter_process_expr(Tuple *tuple, const gchar *expression,
-    const gchar *argument)
-{
-    TupleFormatterExpression *expr = NULL;
-    GList *iter;
-
-    g_return_val_if_fail(tuple != NULL, NULL);
-    g_return_val_if_fail(expression != NULL, NULL);
-
-    for (iter = tuple_formatter_expr_list; iter != NULL; iter = iter->next)
-    {
-        TupleFormatterExpression *tmp = (TupleFormatterExpression *) iter->data;
-
-        if (g_str_has_prefix(expression, tmp->name) == TRUE)
-        {
-            expr = tmp;
-            expression += strlen(tmp->name);
-        }
-    }
-
-    /* ${artist} */
-    if (expr == NULL && argument == NULL)
-    {
-        TupleValueType type = tuple_get_value_type(tuple, -1, expression);
-
-        switch(type)
-        {
-        case TUPLE_STRING:
-             return g_strdup(tuple_get_string(tuple, -1, expression));
-             break;
-        case TUPLE_INT:
-             return g_strdup_printf("%d", tuple_get_int(tuple, -1, expression));
-             break;
-        case TUPLE_UNKNOWN:
-        default:
-             return NULL;
-        }
-    }
-    else if (expr != NULL)
-    {
-        if (expr->func(tuple, expression) == TRUE && argument != NULL)
-            return tuple_formatter_process_construct(tuple, argument);
-    }
-
-    return NULL;
-}
-
-static GList *tuple_formatter_func_list = NULL;
-
-typedef struct {
-    const gchar *name;
-    gchar *(*func)(Tuple *tuple, gchar **args);
-} TupleFormatterFunction;
-
-/* processes a function */
-gchar *
-tuple_formatter_process_function(Tuple *tuple, const gchar *expression,
-    const gchar *argument)
-{
-    TupleFormatterFunction *expr = NULL;
-    GList *iter;
-
-    g_return_val_if_fail(tuple != NULL, NULL);
-    g_return_val_if_fail(expression != NULL, NULL);
-
-    for (iter = tuple_formatter_func_list; iter != NULL; iter = iter->next)
-    {
-        TupleFormatterFunction *tmp = (TupleFormatterFunction *) iter->data;
-
-        if (g_str_has_prefix(expression, tmp->name) == TRUE)
-        {
-            expr = tmp;
-            expression += strlen(tmp->name);
-        }
-    }
-
-    if (expr != NULL)
-    {
-        gchar **args;
-        gchar *ret;
-
-        if (argument)
-            args = g_strsplit(argument, ",", 10);
-        else
-            args = NULL;
-
-        ret = expr->func(tuple, args);
-
-        if (args)
-            g_strfreev(args);
-
-        return ret;
-    }
-
-    return NULL;
-}
-
-/* registers a formatter */
-void
-tuple_formatter_register_expression(const gchar *keyword,
-	gboolean (*func)(Tuple *tuple, const gchar *argument))
-{
-    TupleFormatterExpression *expr;
-
-    g_return_if_fail(keyword != NULL);
-    g_return_if_fail(func != NULL);
-
-    expr = g_new0(TupleFormatterExpression, 1);
-    expr->name = keyword;
-    expr->func = func;
-
-    tuple_formatter_expr_list = g_list_append(tuple_formatter_expr_list, expr);
-}
-
-/* registers a function */
-void
-tuple_formatter_register_function(const gchar *keyword,
-	gchar *(*func)(Tuple *tuple, gchar **argument))
-{
-    TupleFormatterFunction *expr;
-
-    g_return_if_fail(keyword != NULL);
-    g_return_if_fail(func != NULL);
-
-    expr = g_new0(TupleFormatterFunction, 1);
-    expr->name = keyword;
-    expr->func = func;
-
-    tuple_formatter_func_list = g_list_append(tuple_formatter_func_list, expr);
-}
-
-/* builtin-keyword: ${==arg1,arg2}, returns TRUE if <arg1> and <arg2> match.
-   <arg1> and <arg2> can also be raw text, which should be enclosed in "double quotes". */
-static gboolean
-tuple_formatter_expression_match(Tuple *tuple, const gchar *expression)
-{
-    gchar **args = g_strsplit(expression, ",", 2);
-    gchar *arg1 = NULL, *arg2 = NULL;
-    gint ret;
-
-    if (args[0][0] == '\"') /* check if arg1 is "raw text" */
-    {
-        if ( strlen(args[0]) > 1 )
-        {
-            args[0][strlen(args[0]) - 1] = '\0';
-            arg1 = g_strdup(&(args[0][1]));
-            args[0][strlen(args[0]) - 1] = '\"';
-        }
-        else /* bad formatted arg */
-            return FALSE;
-    }
-    else if (tuple_get_value_type(tuple, -1, args[0]) == TUPLE_UNKNOWN)
-    {
-        g_strfreev(args);
-        return FALSE;
-    }
-
-    if (args[1][0] == '\"') /* check if arg2 is "raw text" */
-    {
-        if ( strlen(args[1]) > 1 )
-        {
-            args[1][strlen(args[1]) - 1] = '\0';
-            arg2 = g_strdup(&(args[1][1]));
-            args[1][strlen(args[1]) - 1] = '\"';
-        }
-        else /* bad formatted arg */
-            return FALSE;
-    }
-    else if (tuple_get_value_type(tuple, -1, args[1]) == TUPLE_UNKNOWN)
-    {
-        g_strfreev(args);
-        return FALSE;
-    }
-
-    if (!arg1) /* if arg1 is not "raw text", get the tuple value */
-    {
-        if (tuple_get_value_type(tuple, -1, args[0]) == TUPLE_STRING)
-            arg1 = g_strdup(tuple_get_string(tuple, -1, args[0]));
-        else
-            arg1 = g_strdup_printf("%d", tuple_get_int(tuple, -1, args[0]));
-    }
-
-    if (!arg2) /* if arg2 is not "raw text", get the tuple value */
-    {
-        if (tuple_get_value_type(tuple, -1, args[1]) == TUPLE_STRING)
-            arg2 = g_strdup(tuple_get_string(tuple, -1, args[1]));
-        else
-            arg2 = g_strdup_printf("%d", tuple_get_int(tuple, -1, args[1]));
-    }
-
-    ret = g_ascii_strcasecmp(arg1, arg2);
-    g_free(arg1);
-    g_free(arg2);
-    g_strfreev(args);
-
-    return ret ? FALSE : TRUE;
-}
-
-/* builtin-keyword: ${!=arg1,arg2}. returns TRUE if <arg1> and <arg2> don't match.
-   <arg1> and <arg2> can also be raw text, which should be enclosed in "double quotes". */
-static gboolean
-tuple_formatter_expression_nonmatch(Tuple *tuple, const gchar *expression)
-{
-    return tuple_formatter_expression_match(tuple, expression) ^ 1;
-}
-
-/* builtin-keyword: ${(empty)?}. returns TRUE if <arg> is empty. */
-static gboolean
-tuple_formatter_expression_empty(Tuple *tuple, const gchar *expression)
-{
-    gboolean ret = TRUE;
-    const gchar *iter;
-    TupleValueType type = tuple_get_value_type(tuple, -1, expression);
-
-    if (type == TUPLE_UNKNOWN)
-        return TRUE;
-
-    if (type == TUPLE_INT)
-        return (tuple_get_int(tuple, -1, expression) == 0);
-
-    iter = tuple_get_string(tuple, -1, expression);
-    if (!iter)
-        return TRUE;
-
-    while (ret && *iter != '\0')
-    {
-        if (*iter == ' ')
-            iter++;
-        else
-            ret = FALSE;
-    }
-
-    return ret;
-}
-
-/* builtin-keyword: ${?arg}, returns TRUE if <arg> exists. */
-static gboolean
-tuple_formatter_expression_exists(Tuple *tuple, const gchar *expression)
-{
-    return !tuple_formatter_expression_empty(tuple, expression);
-}
-
-/* builtin function: %{audacious-version} */
-static gchar *
-tuple_formatter_function_version(Tuple *tuple, gchar **args)
-{
-    return g_strdup(PACKAGE_NAME " " PACKAGE_VERSION);
-}
-
 /*
  * Compile a tuplez string and cache the result.
  * This caches the result for the last string, so that
  * successive calls are sped up.
- *
- * TODO/1.5: Implement a more efficient use of the compiler.
  */
-gchar * tuple_formatter_process_string (const Tuple * tuple, const gchar * string)
+
+char * tuple_formatter_process_string (const Tuple * tuple, const char * string)
 {
-    static gboolean initialized = FALSE;
-    static gchar *last_string = NULL;
-#ifdef TUPLE_USE_COMPILER
+    static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
+    pthread_mutex_lock (& mutex);
+
+    static char *last_string = NULL;
     static TupleEvalContext *last_ctx = NULL;
     static TupleEvalNode *last_ev = NULL;
-    gchar *result = NULL;
-#endif
 
-    if (initialized == FALSE)
-    {
-        tuple_formatter_register_expression("?", tuple_formatter_expression_exists);
-        tuple_formatter_register_expression("==", tuple_formatter_expression_match);
-        tuple_formatter_register_expression("!=", tuple_formatter_expression_nonmatch);
-        tuple_formatter_register_expression("(empty)?", tuple_formatter_expression_empty);
-
-        tuple_formatter_register_function("audacious-version", tuple_formatter_function_version);
-        initialized = TRUE;
-    }
-
-#ifdef TUPLE_USE_COMPILER
-    g_static_mutex_lock (& tuplec_mutex);
-
-    if (last_string == NULL ||
-        (last_string != NULL && strcmp(last_string, string)))
+    if (! last_string || strcmp (string, last_string))
     {
         g_free(last_string);
 
@@ -560,50 +78,17 @@ gchar * tuple_formatter_process_string (const Tuple * tuple, const gchar * strin
         last_ctx = tuple_evalctx_new();
         last_string = g_strdup(string);
         last_ev = tuple_formatter_compile(last_ctx, last_string);
-        if (last_ctx->iserror) {
-            g_warning("[TuplezCC]: %s", last_ctx->errmsg);
-        }
-        if (!last_ev) {
-            g_warning("[TuplezCC]: Compilation failed!\n");
-        }
-    }
-
-#ifdef TUPLE_COMPILER_DEBUG
-    {
-        gint level = 0;
-
-        tuple_formatter_print(stderr, &level, last_ctx, last_ev);
     }
-#endif
 
-    tuple_evalctx_reset(last_ctx);
+    static GString * buf;
+    if (! buf)
+        buf = g_string_sized_new (255);
 
-    result = tuple_formatter_eval(last_ctx, last_ev, tuple);
-    if (last_ctx->iserror) {
-        g_warning("[TuplezEV]: %s", last_ctx->errmsg);
-    }
+    tuple_formatter_eval (last_ctx, last_ev, tuple, buf);
+    tuple_evalctx_reset (last_ctx);
 
-    g_static_mutex_unlock (& tuplec_mutex);
+    char * result = str_get (buf->str);
 
+    pthread_mutex_unlock (& mutex);
     return result;
-#else
-    return tuple_formatter_process_construct(tuple, string);
-#endif
-}
-
-gchar * tuple_formatter_make_title_string (const Tuple * tuple, const gchar *
- string)
-{
-    gchar *title = tuple_formatter_process_string(tuple, string);
-
-    if (title == NULL || !title[0])
-    {
-        const char *filename = tuple_get_string(tuple, FIELD_FILE_NAME, NULL);
-
-        g_free(title);
-        title = g_strdup((filename != NULL) ? filename : "");
-        string_cut_extension(title);
-    }
-
-    return title;
 }
diff --git a/src/libaudcore/tuple_formatter.h b/src/libaudcore/tuple_formatter.h
index dc64e27..bb3052b 100644
--- a/src/libaudcore/tuple_formatter.h
+++ b/src/libaudcore/tuple_formatter.h
@@ -1,47 +1,28 @@
 /*
- * Audacious
+ * tuple_formatter.h
  * Copyright (c) 2007 William Pitcock
  *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; under version 3 of the License.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
  *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions, and the following disclaimer.
  *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses>.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ *    this list of conditions, and the following disclaimer in the documentation
+ *    provided with the distribution.
  *
- * The Audacious team does not consider modular code linking to
- * Audacious or using our public API to be a derived work.
+ * This software is provided "as is" and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising from
+ * the use of this software.
  */
 
-#ifndef AUDACIOUS_TUPLE_FORMATTER_H
-#define AUDACIOUS_TUPLE_FORMATTER_H
+#ifndef LIBAUDCORE_TUPLE_FORMATTER_H
+#define LIBAUDCORE_TUPLE_FORMATTER_H
 
-#include <glib.h>
-#include <mowgli.h>
+#include <libaudcore/tuple.h>
 
-#include "tuple.h"
+/* returned string be released with str_unref() */
+char * tuple_formatter_process_string (const Tuple * tuple, const char * string);
 
-G_BEGIN_DECLS
-
-gchar * tuple_formatter_process_string (const Tuple * tuple, const gchar *
- string);
-gchar * tuple_formatter_make_title_string (const Tuple * tuple, const gchar *
- string);
-void tuple_formatter_register_expression(const gchar *keyword,
-        gboolean (*func)(Tuple *tuple, const gchar *argument));
-void tuple_formatter_register_function(const gchar *keyword,
-        gchar *(*func)(Tuple *tuple, gchar **argument));
-gchar *tuple_formatter_process_expr(Tuple *tuple, const gchar *expression,
-    const gchar *argument);
-gchar *tuple_formatter_process_function(Tuple *tuple, const gchar *expression,
-    const gchar *argument);
-gchar *tuple_formatter_process_construct(Tuple *tuple, const gchar *string);
-
-G_END_DECLS
-
-#endif /* AUDACIOUS_TUPLE_FORMATTER_H */
+#endif /* LIBAUDCORE_TUPLE_FORMATTER_H */
diff --git a/src/libaudcore/vfs.c b/src/libaudcore/vfs.c
index b05b47e..9d1dcbc 100644
--- a/src/libaudcore/vfs.c
+++ b/src/libaudcore/vfs.c
@@ -1,5 +1,7 @@
-/*  Audacious
- *  Copyright (c) 2006-2007 William Pitcock
+/*
+ *  vfs.c
+ *  Copyright 2006-2011 William Pitcock, Daniel Barkalow, Ralf Ertzinger,
+ *                      Yoshiki Yazawa, Matti Hämäläinen, and John Lindgren
  *
  *  This program is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
@@ -17,6 +19,7 @@
  *  Audacious or using our public API to be a derived work.
  */
 
+#include <glib.h>
 #include <inttypes.h>
 
 #include "vfs.h"
@@ -27,7 +30,19 @@
 #include <sys/types.h>
 #include <string.h>
 
-#include <mowgli.h>
+#define VFS_SIG ('V' | ('F' << 8) | ('S' << 16))
+
+/**
+ * @struct _VFSFile
+ * #VFSFile objects describe an opened VFS stream, basically being
+ * similar in purpose as stdio FILE
+ */
+struct _VFSFile {
+    char * uri;               /**< The URI of the stream */
+    VFSConstructor * base;    /**< The base vtable used for VFS functions */
+    void * handle;            /**< Opaque data used by the transport plugins */
+    int sig;                  /**< Used to detect invalid or twice-closed objects */
+};
 
 /* Audacious core provides us with a function that looks up a VFS transport for
  * a given URI scheme.  Since this function will load plugins as needed, it can
@@ -35,93 +50,26 @@
  * vfs_prepare must be called from the main thread to look up any needed
  * transports beforehand. */
 
-typedef struct {
-    VFSConstructor * transport;
-    gboolean prepared;
-} LookupNode;
+static VFSConstructor * (* lookup_func) (const char * scheme) = NULL;
 
-static GStaticMutex mutex = G_STATIC_MUTEX_INIT;
-static GThread * lookup_thread = NULL;
-static VFSConstructor * (* lookup_func) (const gchar * scheme) = NULL;
-static mowgli_patricia_t * lookup_table = NULL;
-
-void vfs_set_lookup_func (VFSConstructor * (* func) (const gchar * scheme))
+void vfs_set_lookup_func (VFSConstructor * (* func) (const char * scheme))
 {
-    g_static_mutex_lock (& mutex);
-
-    lookup_thread = g_thread_self ();
     lookup_func = func;
-
-    if (! lookup_table)
-        lookup_table = mowgli_patricia_create (NULL);
-
-    g_static_mutex_unlock (& mutex);
 }
 
-static VFSConstructor * do_lookup (const gchar * scheme, gboolean prepare)
-{
-    g_return_val_if_fail (lookup_thread && lookup_func && lookup_table, NULL);
-
-    LookupNode * node = mowgli_patricia_retrieve (lookup_table, scheme);
-    if (! node)
-    {
-        node = g_slice_new (LookupNode);
-        node->transport = NULL;
-        node->prepared = FALSE;
-        mowgli_patricia_add (lookup_table, scheme, node);
-    }
-
-    if (prepare)
-        node->prepared = TRUE;
-
-    /* vfs_prepare can only be called from the main thread.  vfs_fopen can only
-     * be called from the main thread unless vfs_prepare has been called. */
-    if (prepare || ! node->prepared)
-        g_return_val_if_fail (g_thread_self () == lookup_thread, NULL);
-
-    /* do the actual lookup if needed, but only in the main thread */
-    if (! node->transport && g_thread_self () == lookup_thread)
-    {
-        node->transport = lookup_func (scheme);
-        /* This is normal for custom URI schemes.
-        if (! node->transport)
-            fprintf (stderr, "No transport plugin found for URI scheme \"%s\".\n", scheme); */
-    }
-
-    return node->transport;
-}
+static bool_t verbose = FALSE;
 
-void vfs_prepare (const gchar * scheme)
-{
-    g_static_mutex_lock (& mutex);
-    do_lookup (scheme, TRUE);
-    g_static_mutex_unlock (& mutex);
-}
-
-void vfs_prepare_filename (const gchar * path)
-{
-    const gchar * s = strstr (path, "://");
-    g_return_if_fail (s);
-    gchar scheme[s - path + 1];
-    strncpy (scheme, path, s - path);
-    scheme[s - path] = 0;
-
-    vfs_prepare (scheme);
-}
-
-static gboolean verbose = FALSE;
-
-void vfs_set_verbose (gboolean set)
+void vfs_set_verbose (bool_t set)
 {
     verbose = set;
 }
 
-static void logger (const gchar * format, ...)
+static void logger (const char * format, ...)
 {
-    static gchar last[256] = "";
-    static gint repeated = 0;
+    static char last[256] = "";
+    static int repeated = 0;
 
-    gchar buf[256];
+    char buf[256];
 
     va_list args;
     va_start (args, format);
@@ -137,12 +85,32 @@ static void logger (const gchar * format, ...)
             printf ("VFS: (last message repeated %d times)\n", repeated);
             repeated = 0;
         }
-        
+
         fputs (buf, stdout);
         strcpy (last, buf);
     }
 }
 
+VFSFile * vfs_new (const char * path, VFSConstructor * vtable, void * handle)
+{
+    VFSFile * file = g_slice_new (VFSFile);
+    file->uri = str_get (path);
+    file->base = vtable;
+    file->handle = handle;
+    file->sig = VFS_SIG;
+    return file;
+}
+
+const char * vfs_get_filename (VFSFile * file)
+{
+    return file->uri;
+}
+
+void * vfs_get_handle (VFSFile * file)
+{
+    return file->handle;
+}
+
 /**
  * Opens a stream from a VFS transport using one of the registered
  * #VFSConstructor handlers.
@@ -152,40 +120,37 @@ static void logger (const gchar * format, ...)
  * @return On success, a #VFSFile object representing the stream.
  */
 VFSFile *
-vfs_fopen(const gchar * path,
-          const gchar * mode)
+vfs_fopen(const char * path,
+          const char * mode)
 {
     g_return_val_if_fail (path && mode, NULL);
     g_return_val_if_fail (lookup_func, NULL);
 
-    VFSFile *file;
-    VFSConstructor *vtable = NULL;
-
-    const gchar * s = strstr (path, "://");
+    const char * s = strstr (path, "://");
     g_return_val_if_fail (s, NULL);
-    gchar scheme[s - path + 1];
+    char scheme[s - path + 1];
     strncpy (scheme, path, s - path);
     scheme[s - path] = 0;
 
-    g_static_mutex_lock (& mutex);
-    vtable = do_lookup (scheme, FALSE);
-    g_static_mutex_unlock (& mutex);
-
+    VFSConstructor * vtable = lookup_func (scheme);
     if (! vtable)
         return NULL;
 
-    file = vtable->vfs_fopen_impl(path, mode);
+    const gchar * sub;
+    uri_parse (path, NULL, NULL, & sub, NULL);
 
-    if (verbose)
-        logger ("VFS: <%p> open (mode %s) %s\n", file, mode, path);
+    gchar buf[sub - path + 1];
+    memcpy (buf, path, sub - path);
+    buf[sub - path] = 0;
 
-    if (file == NULL)
+    void * handle = vtable->vfs_fopen_impl (buf, mode);
+    if (! handle)
         return NULL;
 
-    file->uri = g_strdup(path);
-    file->base = vtable;
-    file->ref = 1;
-    file->sig = VFS_SIG;
+    VFSFile * file = vfs_new (path, vtable, handle);
+
+    if (verbose)
+        logger ("VFS: <%p> open (mode %s) %s\n", file, mode, path);
 
     return file;
 }
@@ -196,26 +161,23 @@ vfs_fopen(const gchar * path,
  * @param file A #VFSFile object to destroy.
  * @return -1 on failure, 0 on success.
  */
-gint
+int
 vfs_fclose(VFSFile * file)
 {
     g_return_val_if_fail (file && file->sig == VFS_SIG, -1);
 
     if (verbose)
-        printf ("VFS: <%p> close\n", file);
+        logger ("VFS: <%p> close\n", file);
 
-    gint ret = 0;
-
-    if (--file->ref > 0)
-        return -1;
+    int ret = 0;
 
     if (file->base->vfs_fclose_impl(file) != 0)
         ret = -1;
 
-    g_free(file->uri);
+    str_unref (file->uri);
 
     memset (file, 0, sizeof (VFSFile));
-    g_free (file);
+    g_slice_free (VFSFile, file);
 
     return ret;
 }
@@ -229,15 +191,15 @@ vfs_fclose(VFSFile * file)
  * @param file #VFSFile object that represents the VFS stream.
  * @return The number of elements succesfully read.
  */
-gint64 vfs_fread (void * ptr, gint64 size, gint64 nmemb, VFSFile * file)
+int64_t vfs_fread (void * ptr, int64_t size, int64_t nmemb, VFSFile * file)
 {
     g_return_val_if_fail (file && file->sig == VFS_SIG, 0);
 
-    gint64 readed = file->base->vfs_fread_impl (ptr, size, nmemb, file);
-    
-    if (verbose)
+    int64_t readed = file->base->vfs_fread_impl (ptr, size, nmemb, file);
+
+/*    if (verbose)
         logger ("VFS: <%p> read %"PRId64" elements of size %"PRId64" = "
-         "%"PRId64"\n", file, nmemb, size, readed);
+         "%"PRId64"\n", file, nmemb, size, readed); */
 
     return readed;
 }
@@ -251,11 +213,11 @@ gint64 vfs_fread (void * ptr, gint64 size, gint64 nmemb, VFSFile * file)
  * @param file #VFSFile object that represents the VFS stream.
  * @return The number of elements succesfully written.
  */
-gint64 vfs_fwrite (const void * ptr, gint64 size, gint64 nmemb, VFSFile * file)
+int64_t vfs_fwrite (const void * ptr, int64_t size, int64_t nmemb, VFSFile * file)
 {
     g_return_val_if_fail (file && file->sig == VFS_SIG, 0);
 
-    gint64 written = file->base->vfs_fwrite_impl (ptr, size, nmemb, file);
+    int64_t written = file->base->vfs_fwrite_impl (ptr, size, nmemb, file);
 
     if (verbose)
         logger ("VFS: <%p> write %"PRId64" elements of size %"PRId64" = "
@@ -270,7 +232,7 @@ gint64 vfs_fwrite (const void * ptr, gint64 size, gint64 nmemb, VFSFile * file)
  * @param file #VFSFile object that represents the VFS stream.
  * @return On success, a character. Otherwise, EOF.
  */
-gint
+int
 vfs_getc(VFSFile *file)
 {
     g_return_val_if_fail (file && file->sig == VFS_SIG, EOF);
@@ -288,8 +250,8 @@ vfs_getc(VFSFile *file)
  * @param file #VFSFile object that represents the VFS stream.
  * @return On success, 0. Otherwise, EOF.
  */
-gint
-vfs_ungetc(gint c, VFSFile *file)
+int
+vfs_ungetc(int c, VFSFile *file)
 {
     g_return_val_if_fail (file && file->sig == VFS_SIG, EOF);
 
@@ -312,10 +274,10 @@ vfs_ungetc(gint c, VFSFile *file)
  * @param whence Type of the seek: SEEK_CUR, SEEK_SET or SEEK_END.
  * @return On success, 0. Otherwise, -1.
  */
-gint
+int
 vfs_fseek(VFSFile * file,
-          gint64 offset,
-          gint whence)
+          int64_t offset,
+          int whence)
 {
     g_return_val_if_fail (file && file->sig == VFS_SIG, -1);
 
@@ -349,12 +311,12 @@ vfs_rewind(VFSFile * file)
  * @param file #VFSFile object that represents the VFS stream.
  * @return On success, the current position. Otherwise, -1.
  */
-gint64
+int64_t
 vfs_ftell(VFSFile * file)
 {
     g_return_val_if_fail (file && file->sig == VFS_SIG, -1);
 
-    gint64 told = file->base->vfs_ftell_impl (file);
+    int64_t told = file->base->vfs_ftell_impl (file);
 
     if (verbose)
         logger ("VFS: <%p> tell = %"PRId64"\n", file, told);
@@ -368,12 +330,12 @@ vfs_ftell(VFSFile * file)
  * @param file #VFSFile object that represents the VFS stream.
  * @return On success, whether or not the VFS stream is at EOF. Otherwise, FALSE.
  */
-gboolean
+bool_t
 vfs_feof(VFSFile * file)
 {
     g_return_val_if_fail (file && file->sig == VFS_SIG, TRUE);
 
-    gboolean eof = file->base->vfs_feof_impl (file);
+    bool_t eof = file->base->vfs_feof_impl (file);
 
     if (verbose)
         logger ("VFS: <%p> eof = %s\n", file, eof ? "yes" : "no");
@@ -388,7 +350,7 @@ vfs_feof(VFSFile * file)
  * @param length The length to truncate at.
  * @return On success, 0. Otherwise, -1.
  */
-gint vfs_ftruncate (VFSFile * file, gint64 length)
+int vfs_ftruncate (VFSFile * file, int64_t length)
 {
     g_return_val_if_fail (file && file->sig == VFS_SIG, -1);
 
@@ -404,11 +366,11 @@ gint vfs_ftruncate (VFSFile * file, gint64 length)
  * @param file #VFSFile object that represents the VFS stream.
  * @return On success, the size of the file in bytes. Otherwise, -1.
  */
-gint64 vfs_fsize (VFSFile * file)
+int64_t vfs_fsize (VFSFile * file)
 {
     g_return_val_if_fail (file && file->sig == VFS_SIG, -1);
 
-    gint64 size = file->base->vfs_fsize_impl (file);
+    int64_t size = file->base->vfs_fsize_impl (file);
 
     if (verbose)
         logger ("VFS: <%p> size = %"PRId64"\n", file, size);
@@ -423,8 +385,8 @@ gint64 vfs_fsize (VFSFile * file)
  * @param field The string constant field name to get.
  * @return On success, a copy of the value of the field. Otherwise, NULL.
  */
-gchar *
-vfs_get_metadata(VFSFile * file, const gchar * field)
+char *
+vfs_get_metadata(VFSFile * file, const char * field)
 {
     if (file == NULL)
         return NULL;
@@ -441,18 +403,18 @@ vfs_get_metadata(VFSFile * file, const gchar * field)
  * @param test A GFileTest to run.
  * @return The result of g_file_test().
  */
-gboolean
-vfs_file_test(const gchar * path, GFileTest test)
+bool_t
+vfs_file_test(const char * path, int test)
 {
     if (strncmp (path, "file://", 7))
         return FALSE; /* only local files are handled */
 
-    gchar * path2 = uri_to_filename (path);
+    char * path2 = uri_to_filename (path);
 
     if (path2 == NULL)
         path2 = g_strdup(path);
 
-    gboolean ret = g_file_test (path2, test);
+    bool_t ret = g_file_test (path2, test);
 
     g_free(path2);
 
@@ -465,11 +427,11 @@ vfs_file_test(const gchar * path, GFileTest test)
  * @param path A path to test.
  * @return TRUE if the file is writeable, otherwise FALSE.
  */
-gboolean
-vfs_is_writeable(const gchar * path)
+bool_t
+vfs_is_writeable(const char * path)
 {
     struct stat info;
-    gchar * realfn = uri_to_filename (path);
+    char * realfn = uri_to_filename (path);
 
     if (stat(realfn, &info) == -1)
         return FALSE;
@@ -480,34 +442,14 @@ vfs_is_writeable(const gchar * path)
 }
 
 /**
- * Increments the amount of references that are using this FD.
- * References are removed by calling vfs_fclose on the handle returned
- * from this function. If the amount of references reaches zero, then
- * the file will be closed.
- *
- * @param in The VFSFile handle to mark as duplicated.
- * @return VFSFile handle, which is same as given input.
- */
-VFSFile *
-vfs_dup(VFSFile *in)
-{
-    g_return_val_if_fail(in != NULL, NULL);
-
-    in->ref++;
-
-    return in;
-}
-
-/**
  * Tests if a path is remote uri.
  *
  * @param path A path to test.
  * @return TRUE if the file is remote, otherwise FALSE.
  */
-gboolean
-vfs_is_remote(const gchar * path)
+bool_t vfs_is_remote (const char * path)
 {
-    return strncasecmp (path, "file://", 7) ? TRUE : FALSE;
+    return strncmp (path, "file://", 7) ? TRUE : FALSE;
 }
 
 /**
@@ -516,18 +458,7 @@ vfs_is_remote(const gchar * path)
  * @param file A #VFSFile object to test.
  * @return TRUE if the file is streaming, otherwise FALSE.
  */
-gboolean
-vfs_is_streaming(VFSFile *file)
+bool_t vfs_is_streaming (VFSFile * file)
 {
-    off_t size = 0;
-
-    if (file == NULL)
-        return FALSE;
-
-    size = file->base->vfs_fsize_impl(file);
-
-    if (size == -1)
-        return TRUE;
-    else
-        return FALSE;
+    return (vfs_fsize (file) < 0);
 }
diff --git a/src/libaudcore/vfs.h b/src/libaudcore/vfs.h
index b9d2cca..24179ea 100644
--- a/src/libaudcore/vfs.h
+++ b/src/libaudcore/vfs.h
@@ -1,6 +1,7 @@
 /*
- * Audacious
- * Copyright (c) 2006-2010 Audacious team
+ * vfs.h
+ * Copyright 2006-2011 William Pitcock, Daniel Barkalow, Ralf Ertzinger,
+ *                     Yoshiki Yazawa, Matti Hämäläinen, and John Lindgren
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -24,35 +25,18 @@
  * file access.
  */
 
-#ifndef AUDACIOUS_VFS_H
-#define AUDACIOUS_VFS_H
+#ifndef LIBAUDCORE_VFS_H
+#define LIBAUDCORE_VFS_H
 
-#include <glib.h>
-#include <stdio.h>
-#include <sys/types.h>
+#include <stdint.h>
 
-G_BEGIN_DECLS
+#include <libaudcore/core.h>
 
 /** @struct VFSFile */
 typedef struct _VFSFile VFSFile;
 /** @struct VFSConstructor */
 typedef const struct _VFSConstructor VFSConstructor;
 
-#define VFS_SIG ('V' | ('F' << 8) | ('S' << 16))
-
-/**
- * @struct _VFSFile
- * #VFSFile objects describe an opened VFS stream, basically being
- * similar in purpose as stdio FILE
- */
-struct _VFSFile {
-    gchar *uri;             /**< The URI of the stream */
-    gpointer handle;        /**< Opaque data used by the transport plugins */
-    VFSConstructor *base;   /**< The base vtable used for VFS functions */
-    gint ref;               /**< The amount of references that the VFSFile object has */
-    gint sig;               /**< Used to detect invalid or twice-closed objects */
-};
-
 /**
  * @struct _VFSConstructor
  * #VFSConstructor objects contain the base vtables used for extrapolating
@@ -61,37 +45,37 @@ struct _VFSFile {
  */
 struct _VFSConstructor {
     /** A function pointer which points to a fopen implementation. */
-    VFSFile * (* vfs_fopen_impl) (const gchar * filename, const gchar * mode);
+    void * (* vfs_fopen_impl) (const char * filename, const char * mode);
     /** A function pointer which points to a fclose implementation. */
-    gint (* vfs_fclose_impl) (VFSFile * file);
+    int (* vfs_fclose_impl) (VFSFile * file);
 
     /** A function pointer which points to a fread implementation. */
-    gint64 (* vfs_fread_impl) (void * ptr, gint64 size, gint64 nmemb, VFSFile *
+    int64_t (* vfs_fread_impl) (void * ptr, int64_t size, int64_t nmemb, VFSFile *
      file);
     /** A function pointer which points to a fwrite implementation. */
-    gint64 (* vfs_fwrite_impl) (const void * ptr, gint64 size, gint64 nmemb,
+    int64_t (* vfs_fwrite_impl) (const void * ptr, int64_t size, int64_t nmemb,
      VFSFile * file);
 
     /** A function pointer which points to a getc implementation. */
-    gint (* vfs_getc_impl) (VFSFile * stream);
+    int (* vfs_getc_impl) (VFSFile * stream);
     /** A function pointer which points to an ungetc implementation. */
-    gint (* vfs_ungetc_impl) (gint c, VFSFile * stream);
+    int (* vfs_ungetc_impl) (int c, VFSFile * stream);
 
     /** A function pointer which points to a fseek implementation. */
-    gint (* vfs_fseek_impl) (VFSFile * file, gint64 offset, gint whence);
+    int (* vfs_fseek_impl) (VFSFile * file, int64_t offset, int whence);
     /** function pointer which points to a rewind implementation. */
     void (* vfs_rewind_impl) (VFSFile * file);
     /** A function pointer which points to a ftell implementation. */
-    gint64 (* vfs_ftell_impl) (VFSFile * file);
+    int64_t (* vfs_ftell_impl) (VFSFile * file);
     /** A function pointer which points to a feof implementation. */
-    gboolean (* vfs_feof_impl) (VFSFile * file);
+    bool_t (* vfs_feof_impl) (VFSFile * file);
     /** A function pointer which points to a ftruncate implementation. */
-    gint (* vfs_ftruncate_impl) (VFSFile * file, gint64 length);
+    int (* vfs_ftruncate_impl) (VFSFile * file, int64_t length);
     /** A function pointer which points to a fsize implementation. */
-    gint64 (* vfs_fsize_impl) (VFSFile * file);
+    int64_t (* vfs_fsize_impl) (VFSFile * file);
 
     /** A function pointer which points to a (stream) metadata fetching implementation. */
-    gchar * (* vfs_get_metadata_impl) (VFSFile * file, const gchar * field);
+    char * (* vfs_get_metadata_impl) (VFSFile * file, const char * field);
 };
 
 #ifdef __GNUC__
@@ -100,60 +84,58 @@ struct _VFSConstructor {
 #define WARN_RETURN
 #endif
 
-VFSFile * vfs_fopen (const gchar * path, const gchar * mode) WARN_RETURN;
-VFSFile * vfs_dup (VFSFile * in) WARN_RETURN;
-gint vfs_fclose (VFSFile * file);
+VFSFile * vfs_new (const char * path, VFSConstructor * vtable, void * handle) WARN_RETURN;
+const char * vfs_get_filename (VFSFile * file) WARN_RETURN;
+void * vfs_get_handle (VFSFile * file) WARN_RETURN;
+
+VFSFile * vfs_fopen (const char * path, const char * mode) WARN_RETURN;
+int vfs_fclose (VFSFile * file);
 
-gint64 vfs_fread (void * ptr, gint64 size, gint64 nmemb, VFSFile * file)
+int64_t vfs_fread (void * ptr, int64_t size, int64_t nmemb, VFSFile * file)
  WARN_RETURN;
-gint64 vfs_fwrite (const void * ptr, gint64 size, gint64 nmemb, VFSFile * file)
+int64_t vfs_fwrite (const void * ptr, int64_t size, int64_t nmemb, VFSFile * file)
  WARN_RETURN;
 
-gint vfs_getc (VFSFile * stream) WARN_RETURN;
-gint vfs_ungetc (gint c, VFSFile * stream) WARN_RETURN;
-gchar * vfs_fgets (gchar * s, gint n, VFSFile * stream) WARN_RETURN;
-gboolean vfs_feof (VFSFile * file) WARN_RETURN;
-gint vfs_fprintf (VFSFile * stream, gchar const * format, ...) __attribute__
+int vfs_getc (VFSFile * stream) WARN_RETURN;
+int vfs_ungetc (int c, VFSFile * stream) WARN_RETURN;
+char * vfs_fgets (char * s, int n, VFSFile * stream) WARN_RETURN;
+bool_t vfs_feof (VFSFile * file) WARN_RETURN;
+int vfs_fprintf (VFSFile * stream, char const * format, ...) __attribute__
  ((__format__ (__printf__, 2, 3)));
 
-gint vfs_fseek (VFSFile * file, gint64 offset, gint whence) WARN_RETURN;
+int vfs_fseek (VFSFile * file, int64_t offset, int whence) WARN_RETURN;
 void vfs_rewind (VFSFile * file);
-gint64 vfs_ftell (VFSFile * file) WARN_RETURN;
-gint64 vfs_fsize (VFSFile * file) WARN_RETURN;
-gint vfs_ftruncate (VFSFile * file, gint64 length) WARN_RETURN;
-
-gboolean vfs_fget_le16 (guint16 * value, VFSFile * stream) WARN_RETURN;
-gboolean vfs_fget_le32 (guint32 * value, VFSFile * stream) WARN_RETURN;
-gboolean vfs_fget_le64 (guint64 * value, VFSFile * stream) WARN_RETURN;
-gboolean vfs_fget_be16 (guint16 * value, VFSFile * stream) WARN_RETURN;
-gboolean vfs_fget_be32 (guint32 * value, VFSFile * stream) WARN_RETURN;
-gboolean vfs_fget_be64 (guint64 * value, VFSFile * stream) WARN_RETURN;
-
-gboolean vfs_fput_le16 (guint16 value, VFSFile * stream) WARN_RETURN;
-gboolean vfs_fput_le32 (guint32 value, VFSFile * stream) WARN_RETURN;
-gboolean vfs_fput_le64 (guint64 value, VFSFile * stream) WARN_RETURN;
-gboolean vfs_fput_be16 (guint16 value, VFSFile * stream) WARN_RETURN;
-gboolean vfs_fput_be32 (guint32 value, VFSFile * stream) WARN_RETURN;
-gboolean vfs_fput_be64 (guint64 value, VFSFile * stream) WARN_RETURN;
-
-gboolean vfs_is_streaming (VFSFile * file) WARN_RETURN;
-gchar * vfs_get_metadata (VFSFile * file, const gchar * field) WARN_RETURN;
-
-gboolean vfs_file_test (const gchar * path, GFileTest test) WARN_RETURN;
-gboolean vfs_is_writeable (const gchar * path) WARN_RETURN;
-gboolean vfs_is_remote (const gchar * path) WARN_RETURN;
-
-void vfs_file_get_contents (const gchar * filename, void * * buf, gint64 *
+int64_t vfs_ftell (VFSFile * file) WARN_RETURN;
+int64_t vfs_fsize (VFSFile * file) WARN_RETURN;
+int vfs_ftruncate (VFSFile * file, int64_t length) WARN_RETURN;
+
+bool_t vfs_fget_le16 (uint16_t * value, VFSFile * stream) WARN_RETURN;
+bool_t vfs_fget_le32 (uint32_t * value, VFSFile * stream) WARN_RETURN;
+bool_t vfs_fget_le64 (uint64_t * value, VFSFile * stream) WARN_RETURN;
+bool_t vfs_fget_be16 (uint16_t * value, VFSFile * stream) WARN_RETURN;
+bool_t vfs_fget_be32 (uint32_t * value, VFSFile * stream) WARN_RETURN;
+bool_t vfs_fget_be64 (uint64_t * value, VFSFile * stream) WARN_RETURN;
+
+bool_t vfs_fput_le16 (uint16_t value, VFSFile * stream) WARN_RETURN;
+bool_t vfs_fput_le32 (uint32_t value, VFSFile * stream) WARN_RETURN;
+bool_t vfs_fput_le64 (uint64_t value, VFSFile * stream) WARN_RETURN;
+bool_t vfs_fput_be16 (uint16_t value, VFSFile * stream) WARN_RETURN;
+bool_t vfs_fput_be32 (uint32_t value, VFSFile * stream) WARN_RETURN;
+bool_t vfs_fput_be64 (uint64_t value, VFSFile * stream) WARN_RETURN;
+
+bool_t vfs_is_streaming (VFSFile * file) WARN_RETURN;
+char * vfs_get_metadata (VFSFile * file, const char * field) WARN_RETURN;
+
+bool_t vfs_file_test (const char * path, int test) WARN_RETURN;
+bool_t vfs_is_writeable (const char * path) WARN_RETURN;
+bool_t vfs_is_remote (const char * path) WARN_RETURN;
+
+void vfs_file_get_contents (const char * filename, void * * buf, int64_t *
  size);
 
-void vfs_set_lookup_func (VFSConstructor * (* func) (const gchar * scheme));
-void vfs_prepare (const gchar * scheme);
-void vfs_prepare_filename (const gchar * filename);
-
-void vfs_set_verbose (gboolean verbose);
+void vfs_set_lookup_func (VFSConstructor * (* func) (const char * scheme));
+void vfs_set_verbose (bool_t verbose);
 
 #undef WARN_RETURN
 
-G_END_DECLS
-
-#endif /* AUDACIOUS_VFS_H */
+#endif /* LIBAUDCORE_VFS_H */
diff --git a/src/libaudcore/vfs_async.c b/src/libaudcore/vfs_async.c
index cb4acd5..52d7457 100644
--- a/src/libaudcore/vfs_async.c
+++ b/src/libaudcore/vfs_async.c
@@ -1,37 +1,38 @@
 /*
- * Audacious
- * Copyright (c) 2010 William Pitcock <nenolod at dereferenced.org>
+ * vfs_async.c
+ * Copyright 2010 William Pitcock
  *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; under version 3 of the License.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
  *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions, and the following disclaimer.
  *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses>.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ *    this list of conditions, and the following disclaimer in the documentation
+ *    provided with the distribution.
  *
- * The Audacious team does not consider modular code linking to
- * Audacious or using our public API to be a derived work.
+ * This software is provided "as is" and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising from
+ * the use of this software.
  */
 
+#include <glib.h>
+
 #include <libaudcore/vfs_async.h>
 
 typedef struct {
-    gchar *filename;
+    char *filename;
     void *buf;
-    gint64 size;
+    int64_t size;
     GThread *thread;
-    gpointer userdata;
+    void * userdata;
 
     VFSConsumer cons_f;
 } VFSAsyncTrampoline;
 
-gboolean
-vfs_async_file_get_contents_trampoline(gpointer data)
+bool_t
+vfs_async_file_get_contents_trampoline(void * data)
 {
     VFSAsyncTrampoline *tr = data;
 
@@ -41,8 +42,8 @@ vfs_async_file_get_contents_trampoline(gpointer data)
     return FALSE;
 }
 
-gpointer
-vfs_async_file_get_contents_worker(gpointer data)
+void *
+vfs_async_file_get_contents_worker(void * data)
 {
     VFSAsyncTrampoline *tr = data;
 
@@ -54,10 +55,8 @@ vfs_async_file_get_contents_worker(gpointer data)
 }
 
 void
-vfs_async_file_get_contents(const gchar *filename, VFSConsumer cons_f, gpointer userdata)
+vfs_async_file_get_contents(const char *filename, VFSConsumer cons_f, void * userdata)
 {
-    vfs_prepare_filename (filename);
-
     VFSAsyncTrampoline *tr;
 
     tr = g_slice_new0(VFSAsyncTrampoline);
diff --git a/src/libaudcore/vfs_async.h b/src/libaudcore/vfs_async.h
index f4ee3c0..9503013 100644
--- a/src/libaudcore/vfs_async.h
+++ b/src/libaudcore/vfs_async.h
@@ -1,30 +1,29 @@
 /*
- * Audacious
- * Copyright (c) 2010 William Pitcock <nenolod at dereferenced.org>
+ * vfs_async.c
+ * Copyright 2010 William Pitcock
  *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; under version 3 of the License.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
  *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions, and the following disclaimer.
  *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses>.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ *    this list of conditions, and the following disclaimer in the documentation
+ *    provided with the distribution.
  *
- * The Audacious team does not consider modular code linking to
- * Audacious or using our public API to be a derived work.
+ * This software is provided "as is" and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising from
+ * the use of this software.
  */
 
-#ifndef AUDACIOUS_VFS_ASYNC_H
-#define AUDACIOUS_VFS_ASYNC_H
+#ifndef LIBAUDCORE_VFS_ASYNC_H
+#define LIBAUDCORE_VFS_ASYNC_H
 
 #include <libaudcore/vfs.h>
 
-typedef gboolean (*VFSConsumer)(gpointer buf, gint64 size, gpointer userdata);
+typedef bool_t (*VFSConsumer)(void * buf, int64_t size, void * userdata);
 
-void vfs_async_file_get_contents(const gchar *filename, VFSConsumer cons_f, gpointer userdata);
+void vfs_async_file_get_contents(const char *filename, VFSConsumer cons_f, void * userdata);
 
 #endif
diff --git a/src/libaudcore/vfs_buffer.c b/src/libaudcore/vfs_buffer.c
deleted file mode 100644
index 33240f3..0000000
--- a/src/libaudcore/vfs_buffer.c
+++ /dev/null
@@ -1,249 +0,0 @@
-/*  Audacious
- *  Copyright (c) 2006-2007 William Pitcock
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; under version 3 of the License.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program.  If not, see <http://www.gnu.org/licenses>.
- *
- *  The Audacious team does not consider modular code linking to
- *  Audacious or using our public API to be a derived work.
- */
-
-#include <glib.h>
-#include <string.h>
-#include "vfs.h"
-#include "vfs_buffer.h"
-
-
-static VFSFile *
-buffer_vfs_fopen_impl(const gchar * path,
-          const gchar * mode)
-{
-    return NULL;
-}
-
-static gint
-buffer_vfs_fclose_impl(VFSFile * file)
-{
-    g_return_val_if_fail(file != NULL, -1);
-
-    g_free(file->handle);
-
-    return 0;
-}
-
-static gint64 buffer_vfs_fread_impl (void * i_ptr, gint64 size, gint64 nmemb,
- VFSFile * file)
-{
-    VFSBuffer *handle;
-    guchar *i;
-    gsize read = 0;
-    guchar *ptr = (guchar *) i_ptr;
-
-    if (file == NULL)
-        return 0;
-
-    handle = (VFSBuffer *) file->handle;
-
-    for (i = ptr; (gsize) (i - ptr) < nmemb * size &&
-	 (gsize) (i - ptr) <= handle->size;
-	 i++, handle->iter++)
-    {
-       *i = *handle->iter;
-       read++;
-    }
-
-    return (read / size);
-}
-
-static gint64 buffer_vfs_fwrite_impl (const void * i_ptr, gint64 size, gint64
- nmemb, VFSFile * file)
-{
-    VFSBuffer *handle;
-    const guchar *i;
-    gsize written = 0;
-    const guchar *ptr = (const guchar *) i_ptr;
-
-    if (file == NULL)
-        return 0;
-
-    handle = (VFSBuffer *) file->handle;
-
-    for (i = ptr; (gsize) (i - ptr) < nmemb * size &&
-	 (gsize) (i - ptr) <= handle->size;
-	 i++, handle->iter++)
-    {
-       *handle->iter = *i;
-       written++;
-    }
-
-    return (written / size);
-}
-
-static gint
-buffer_vfs_getc_impl(VFSFile *stream)
-{
-    VFSBuffer *handle = (VFSBuffer *) stream->handle;
-    gint c;
-
-    c = *handle->iter;
-    handle->iter++;
-
-    return c;
-}
-
-static gint
-buffer_vfs_ungetc_impl(gint c, VFSFile *stream)
-{
-    return -1;
-}
-
-static gint
-buffer_vfs_fseek_impl(VFSFile * file,
-          gint64 offset,
-          gint whence)
-{
-    VFSBuffer *handle;
-
-    if (file == NULL)
-        return 0;
-
-    handle = (VFSBuffer *) file->handle;
-
-    switch(whence)
-    {
-       case SEEK_CUR:
-          handle->iter = handle->iter + offset;
-          break;
-       case SEEK_END:
-          handle->iter = handle->end;
-          break;
-       case SEEK_SET:
-       default:
-          handle->iter = handle->data + offset;
-          break;
-    }
-
-    return 0;
-}
-
-static void
-buffer_vfs_rewind_impl(VFSFile * file)
-{
-    VFSBuffer *handle;
-
-    if (file == NULL)
-        return;
-
-    handle = (VFSBuffer *) file->handle;
-
-    handle->iter = handle->data;
-}
-
-static gint64
-buffer_vfs_ftell_impl(VFSFile * file)
-{
-    VFSBuffer *handle;
-
-    if (file == NULL)
-        return 0;
-
-    handle = (VFSBuffer *) file->handle;
-
-    return handle->iter - handle->data;
-}
-
-static gboolean
-buffer_vfs_feof_impl(VFSFile * file)
-{
-    VFSBuffer *handle;
-
-    if (file == NULL)
-        return FALSE;
-
-    handle = (VFSBuffer *) file->handle;
-
-    return (gboolean) (handle->iter == handle->end);
-}
-
-static gint
-buffer_vfs_truncate_impl (VFSFile * file, gint64 size)
-{
-    return 0;
-}
-
-static gint64
-buffer_vfs_fsize_impl(VFSFile * file)
-{
-    VFSBuffer *handle;
-
-    if (file == NULL)
-        return -1;
-
-    handle = (VFSBuffer *) file->handle;
-
-    return (off_t) (handle->end - handle->data);
-}
-
-static VFSConstructor buffer_const = {
-	buffer_vfs_fopen_impl,
-	buffer_vfs_fclose_impl,
-	buffer_vfs_fread_impl,
-	buffer_vfs_fwrite_impl,
-	buffer_vfs_getc_impl,
-	buffer_vfs_ungetc_impl,
-	buffer_vfs_fseek_impl,
-	buffer_vfs_rewind_impl,
-	buffer_vfs_ftell_impl,
-	buffer_vfs_feof_impl,
-	buffer_vfs_truncate_impl,
-	buffer_vfs_fsize_impl,
-	NULL
-};
-
-VFSFile *
-vfs_buffer_new(gpointer data, gsize size)
-{
-    VFSFile *handle;
-    VFSBuffer *buffer;
-
-    g_return_val_if_fail(data != NULL, NULL);
-    g_return_val_if_fail(size > 0, NULL);
-
-    if ((handle = g_new0(VFSFile, 1)) == NULL)
-        return NULL;
-
-    if ((buffer = g_new0(VFSBuffer, 1)) == NULL)
-    {
-        g_free(handle);
-        return NULL;
-    }
-
-    buffer->data = data;
-    buffer->iter = data;
-    buffer->end = (guchar *) data + size;
-    buffer->size = size;
-
-    handle->handle = buffer;
-    handle->base = &buffer_const;
-    handle->ref = 1;
-    handle->sig = VFS_SIG;
-
-    return handle;
-}
-
-VFSFile *
-vfs_buffer_new_from_string(gchar *str)
-{
-    g_return_val_if_fail(str != NULL, NULL);
-
-    return vfs_buffer_new(str, strlen(str));
-}
diff --git a/src/libaudcore/vfs_buffer.h b/src/libaudcore/vfs_buffer.h
deleted file mode 100644
index d505ef7..0000000
--- a/src/libaudcore/vfs_buffer.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*  Audacious
- *  Copyright (c) 2006-2007 William Pitcock
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; under version 3 of the License.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program.  If not, see <http://www.gnu.org/licenses>.
- *
- *  The Audacious team does not consider modular code linking to
- *  Audacious or using our public API to be a derived work.
- */
-
-#ifndef AUDACIOUS_VFS_BUFFER_H
-#define AUDACIOUS_VFS_BUFFER_H
-
-#include <glib.h>
-#include "vfs.h"
-
-G_BEGIN_DECLS
-
-/** Private data for the VFS memorybuffer class. */
-typedef struct {
-	guchar *data;   /**< The data inside the VFSBuffer. */
-	guchar *iter;   /**< The current position of the VFS buffer iterator. */
-	guchar *end;    /**< The end of the memory segment that the VFS buffer uses. */
-	gsize   size;   /**< The size of the memory segment. */
-} VFSBuffer;
-
-/**
- * Creates a VFS buffer for reading/writing to a memory segment.
- *
- * @param data Pointer to data to use.
- * @param size Size of data to use.
- * @return A VFSFile handle for the memory segment's stream representation.
- */
-VFSFile *vfs_buffer_new(gpointer data, gsize size);
-
-/**
- * Creates a VFS buffer for reading/writing to a string.
- *
- * @param str String to use.
- * @return A VFSFile handle for the memory segment's stream representation.
- */
-VFSFile *vfs_buffer_new_from_string(gchar *str);
-
-G_END_DECLS
-
-#endif /* AUDACIOUS_VFS_BUFFER_H */
diff --git a/src/libaudcore/vfs_buffered_file.c b/src/libaudcore/vfs_buffered_file.c
deleted file mode 100644
index 064d697..0000000
--- a/src/libaudcore/vfs_buffered_file.c
+++ /dev/null
@@ -1,288 +0,0 @@
-/*
- *  Copyright (c) 2006-2007 William Pitcock
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; under version 3 of the License.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program.  If not, see <http://www.gnu.org/licenses>.
- *
- *  The Audacious team does not consider modular code linking to
- *  Audacious or using our public API to be a derived work.
- */
-
-#include <glib.h>
-#include <string.h>
-#include "vfs.h"
-#include "vfs_buffer.h"
-#include "vfs_buffered_file.h"
-
-VFSFile *
-buffered_file_vfs_fopen_impl(const gchar * path,
-          const gchar * mode)
-{
-    return NULL;
-}
-
-gint
-buffered_file_vfs_fclose_impl(VFSFile * file)
-{
-    g_return_val_if_fail(file != NULL, -1);
-
-    if (file->handle)
-    {
-        VFSBufferedFile *handle = (VFSBufferedFile *) file->handle;
-
-        if (handle->fd != NULL)
-            vfs_fclose(handle->fd);
-
-        vfs_fclose(handle->buffer);
-        g_free(handle->mem);
-        g_free(handle);
-    }
-
-    return 0;
-}
-
-gint64 buffered_file_vfs_fread_impl (void * i_ptr, gint64 size, gint64 nmemb,
- VFSFile * file)
-{
-    VFSBufferedFile *handle = (VFSBufferedFile *) file->handle;
-
-    /* is this request within the buffered area, or should we switch to
-     * an FD? --nenolod
-     */
-    if (handle->which == FALSE &&
-	(vfs_ftell(handle->buffer)) + (size * nmemb) >
-	((VFSBuffer *) handle->buffer->handle)->size)
-    {
-        if (vfs_fseek (handle->fd, vfs_ftell (handle->buffer), SEEK_SET))
-            return 0;
-        handle->which = TRUE;
-    }
-
-    return vfs_fread(i_ptr, size, nmemb, handle->which == TRUE ? handle->fd : handle->buffer);
-}
-
-gint64 buffered_file_vfs_fwrite_impl (const void * i_ptr, gint64 size, gint64
- nmemb, VFSFile * file)
-{
-    VFSBufferedFile *handle = (VFSBufferedFile *) file->handle;
-
-    return vfs_fwrite(i_ptr, size, nmemb, handle->fd);
-}
-
-gint
-buffered_file_vfs_getc_impl(VFSFile *stream)
-{
-    VFSBufferedFile *handle = (VFSBufferedFile *) stream->handle;
-
-    /* is this request within the buffered area, or should we switch to
-     * an FD? --nenolod
-     */
-    if ((vfs_ftell(handle->buffer)) + 1 >
-	((VFSBuffer *) handle->buffer->handle)->size)
-    {
-        if (vfs_fseek (handle->fd, vfs_ftell (handle->buffer), SEEK_SET))
-            return EOF;
-        handle->which = TRUE;
-    }
-
-    return vfs_getc(handle->which == TRUE ? handle->fd : handle->buffer);
-}
-
-gint
-buffered_file_vfs_ungetc_impl(gint c, VFSFile *stream)
-{
-    return -1;
-}
-
-gint
-buffered_file_vfs_fseek_impl(VFSFile * file,
-          gint64 offset,
-          gint whence)
-{
-    VFSBufferedFile *handle = (VFSBufferedFile *) file->handle;
-
-    if (vfs_fseek (handle->buffer, offset, whence))
-        return -1;
-
-    switch(whence)
-    {
-        case SEEK_END:
-            handle->which = TRUE;
-            return vfs_fseek (handle->fd, offset, whence);
-        case SEEK_CUR:
-            if (vfs_ftell(handle->buffer) + offset >= ((VFSBuffer *) handle->buffer->handle)->size)
-            {
-                handle->which = TRUE;
-                return vfs_fseek (handle->fd, offset, whence);
-            }
-            else
-            {
-                gint64 noff;
-
-                handle->which = FALSE;
-                noff = ((VFSBuffer *) handle->buffer->handle)->size - (vfs_ftell(handle->buffer) + offset);
-                return vfs_fseek (handle->buffer, noff, whence);
-            }
-            break;
-        case SEEK_SET:
-        default:
-            if (offset > ((VFSBuffer *) handle->buffer->handle)->size)
-            {
-                handle->which = TRUE;
-                return vfs_fseek (handle->fd, offset, whence);
-            }
-            else
-            {
-                handle->which = FALSE;
-                return vfs_fseek (handle->buffer, offset, whence);
-            }
-            break;
-    }
-    return 0;
-}
-
-void
-buffered_file_vfs_rewind_impl(VFSFile * file)
-{
-    VFSBufferedFile *handle = (VFSBufferedFile *) file->handle;
-
-    vfs_rewind(handle->buffer);
-    vfs_rewind(handle->fd);
-    handle->which = FALSE;
-}
-
-gint64
-buffered_file_vfs_ftell_impl(VFSFile * file)
-{
-    VFSBufferedFile *handle = (VFSBufferedFile *) file->handle;
-
-    return vfs_ftell(handle->which == TRUE ? handle->fd : handle->buffer);
-}
-
-gboolean
-buffered_file_vfs_feof_impl(VFSFile * file)
-{
-    VFSBufferedFile *handle = (VFSBufferedFile *) file->handle;
-
-    return vfs_feof(handle->which == TRUE ? handle->fd : handle->buffer);
-}
-
-gint
-buffered_file_vfs_truncate_impl (VFSFile * file, gint64 size)
-{
-    return 0;
-}
-
-gint64
-buffered_file_vfs_fsize_impl(VFSFile * file)
-{
-    VFSBufferedFile *handle = (VFSBufferedFile *) file->handle;
-
-    return vfs_fsize(handle->fd);
-}
-
-gchar *
-buffered_file_vfs_metadata_impl(VFSFile * file, const gchar * field)
-{
-    VFSBufferedFile *handle = (VFSBufferedFile *) file->handle;
-
-    return vfs_get_metadata(handle->fd, field);
-}
-
-VFSConstructor buffered_file_const = {
-	buffered_file_vfs_fopen_impl,
-	buffered_file_vfs_fclose_impl,
-	buffered_file_vfs_fread_impl,
-	buffered_file_vfs_fwrite_impl,
-	buffered_file_vfs_getc_impl,
-	buffered_file_vfs_ungetc_impl,
-	buffered_file_vfs_fseek_impl,
-	buffered_file_vfs_rewind_impl,
-	buffered_file_vfs_ftell_impl,
-	buffered_file_vfs_feof_impl,
-	buffered_file_vfs_truncate_impl,
-	buffered_file_vfs_fsize_impl,
-	buffered_file_vfs_metadata_impl
-};
-
-/**
- * Creates a VFSBufferedFile. VFSBufferedFile is read-only.
- *
- * @param uri URI locator pointing to the file to open.
- * @return A VFSFile handle for the VFSBufferedFile.
- **/
-VFSFile *
-vfs_buffered_file_new_from_uri(const gchar *uri)
-{
-    VFSFile *handle;
-    VFSBufferedFile *fd;
-    gsize sz;
-
-    g_return_val_if_fail(uri != NULL, NULL);
-
-    handle = g_new0(VFSFile, 1);
-    fd = g_new0(VFSBufferedFile, 1);
-    fd->mem = g_malloc0(128000);
-    fd->fd = vfs_fopen(uri, "rb");
-
-    if (fd->fd == NULL)
-    {
-	g_free(fd->mem);
-	g_free(fd);
-	g_free(handle);
-
-	return NULL;
-    }
-
-    sz = vfs_fread(fd->mem, 1, 128000, fd->fd);
-    vfs_rewind(fd->fd);
-
-    if (!sz)
-    {
-	vfs_fclose(fd->fd);
-	g_free(fd->mem);
-	g_free(fd);
-	g_free(handle);
-
-	return NULL;
-    }
-
-    fd->buffer = vfs_buffer_new(fd->mem, sz);
-
-    handle->handle = fd;
-    handle->base = &buffered_file_const;
-    handle->uri = g_strdup(uri);
-    handle->ref = 1;
-    handle->sig = VFS_SIG;
-
-    return handle;
-}
-
-/**
- * @bug Is this function used for anything? -- ccr
- * @deprecated This function probably should not be used.
- */
-VFSFile *
-vfs_buffered_file_release_live_fd(VFSFile *fd)
-{
-    VFSBufferedFile *file = (VFSBufferedFile *) fd;
-    VFSFile *out;
-
-    g_return_val_if_fail(file != NULL, NULL);
-
-    out = file->fd;
-    file->fd = NULL;
-
-    vfs_fclose(fd);
-
-    return out;
-}
diff --git a/src/libaudcore/vfs_buffered_file.h b/src/libaudcore/vfs_buffered_file.h
deleted file mode 100644
index e1ec7d8..0000000
--- a/src/libaudcore/vfs_buffered_file.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*  Audacious
- *  Copyright (c) 2006-2007 William Pitcock
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; under version 3 of the License.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program.  If not, see <http://www.gnu.org/licenses>.
- *
- *  The Audacious team does not consider modular code linking to
- *  Audacious or using our public API to be a derived work.
- */
-/**
- * @file vfs_buffered_file.h
- * Functions and structures for buffered file access over VFS.
- */
-
-#ifndef AUDACIOUS_VFS_BUFFERED_FILE_H
-#define AUDACIOUS_VFS_BUFFERED_FILE_H
-
-#include <glib.h>
-#include "vfs.h"
-#include "vfs_buffer.h"
-
-G_BEGIN_DECLS
-
-/** Private data for the VFS memorybuffer class. */
-typedef struct {
-	VFSFile    *fd;     /**< VFS handle for the active FD. */
-	VFSFile    *buffer; /**< First 32kb read from the FD. */
-	gchar      *mem;    /**< The memory for the buffer. */
-	gboolean    which;  /**< Whether to use the live FD or the buffer. */
-} VFSBufferedFile;
-
-VFSFile *vfs_buffered_file_new_from_uri(const gchar *uri);
-VFSFile *vfs_buffered_file_release_live_fd(VFSFile *fd);
-
-G_END_DECLS
-
-#endif /* AUDACIOUS_VFS_BUFFERED_FILE_H */
diff --git a/src/libaudcore/vfs_common.c b/src/libaudcore/vfs_common.c
index d554964..da1f4ea 100644
--- a/src/libaudcore/vfs_common.c
+++ b/src/libaudcore/vfs_common.c
@@ -1,4 +1,9 @@
-/*  This program is free software; you can redistribute it and/or modify
+/*
+ *  vfs_common.c
+ *  Copyright 2006-2010 Tony Vroon, William Pitcock, Maciej Grela,
+ *                      Matti Hämäläinen, and John Lindgren
+ *
+ *  This program is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
  *  the Free Software Foundation; under version 3 of the License.
  *
@@ -13,10 +18,15 @@
  *  The Audacious team does not consider modular code linking to
  *  Audacious or using our public API to be a derived work.
  */
-#include "vfs.h"
-#include <string.h>
-#include <stdlib.h>
+
+#include <glib.h>
 #include <glib/gprintf.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "vfs.h"
+
 /**
  * @file vfs_common.c
  * Common code for various VFS-stream related operations.
@@ -32,9 +42,9 @@
  * @param stream A #VFSFile object representing the stream.
  * @return The character on success, or EOF.
  */
-gint vfs_fputc(gint c, VFSFile *stream)
+int vfs_fputc(int c, VFSFile *stream)
 {
-    guchar uc = (guchar) c;
+    unsigned char uc = (unsigned char) c;
 
     if (!vfs_fwrite(&uc, 1, 1, stream)) {
         return EOF;
@@ -51,10 +61,10 @@ gint vfs_fputc(gint c, VFSFile *stream)
  * @param stream A #VFSFile object representing the stream.
  * @return The string on success, or NULL.
  */
-gchar *vfs_fgets(gchar *s, gint n, VFSFile *stream)
+char *vfs_fgets(char *s, int n, VFSFile *stream)
 {
-    gint c;
-    register gchar *p;
+    int c;
+    register char *p;
 
     if (n <= 0) return NULL;
 
@@ -83,7 +93,7 @@ gchar *vfs_fgets(gchar *s, gint n, VFSFile *stream)
  * @param stream A #VFSFile object representing the stream.
  * @return The amount of bytes written.
  */
-gint vfs_fputs(const gchar *s, VFSFile *stream)
+int vfs_fputs(const char *s, VFSFile *stream)
 {
     gsize n = strlen(s);
 
@@ -98,10 +108,10 @@ gint vfs_fputs(const gchar *s, VFSFile *stream)
  * @param args A va_list of args to use.
  * @return value The amount of bytes written.
  */
-gint vfs_vfprintf(VFSFile *stream, gchar const *format, va_list args)
+int vfs_vfprintf(VFSFile *stream, char const *format, va_list args)
 {
-    gchar *string;
-    gint rv = g_vasprintf(&string, format, args);
+    char *string;
+    int rv = g_vasprintf(&string, format, args);
     if (rv < 0) return rv;
     rv = vfs_fputs(string, stream);
     g_free(string);
@@ -116,10 +126,10 @@ gint vfs_vfprintf(VFSFile *stream, gchar const *format, va_list args)
  * @param ... Optional list of arguments.
  * @return The amount of bytes written.
  */
-gint vfs_fprintf(VFSFile *stream, gchar const *format, ...)
+int vfs_fprintf(VFSFile *stream, char const *format, ...)
 {
     va_list arg;
-    gint rv;
+    int rv;
 
     va_start(arg, format);
     rv = vfs_vfprintf(stream, format, arg);
@@ -137,14 +147,14 @@ gint vfs_fprintf(VFSFile *stream, gchar const *format, ...)
  * @param size Pointer to gsize variable that will hold the amount of
  * read data e.g. filesize.
  */
-void vfs_file_get_contents (const gchar * filename, void * * buf, gint64 * size)
+void vfs_file_get_contents (const char * filename, void * * buf, int64_t * size)
 {
     * buf = NULL;
     * size = 0;
 
     VFSFile *fd;
     gsize filled_size = 0, buf_size = 4096;
-    guchar * ptr;
+    unsigned char * ptr;
 
     if ((fd = vfs_fopen(filename, "rb")) == NULL)
         return;
@@ -175,7 +185,7 @@ void vfs_file_get_contents (const gchar * filename, void * * buf, gint64 * size)
             if (*buf == NULL)
                 goto close_handle;
 
-            ptr = *buf + filled_size;
+            ptr = (unsigned char *) (* buf) + filled_size;
         }
     }
 
@@ -194,9 +204,9 @@ close_handle:
  * @param stream A #VFSFile object representing the stream.
  * @return TRUE if read was succesful, FALSE if there was an error.
  */
-gboolean vfs_fget_le16(guint16 *value, VFSFile *stream)
+bool_t vfs_fget_le16(uint16_t *value, VFSFile *stream)
 {
-    guint16 tmp;
+    uint16_t tmp;
     if (vfs_fread(&tmp, sizeof(tmp), 1, stream) != 1)
         return FALSE;
     *value = GUINT16_FROM_LE(tmp);
@@ -210,9 +220,9 @@ gboolean vfs_fget_le16(guint16 *value, VFSFile *stream)
  * @param stream A #VFSFile object representing the stream.
  * @return TRUE if read was succesful, FALSE if there was an error.
  */
-gboolean vfs_fget_le32(guint32 *value, VFSFile *stream)
+bool_t vfs_fget_le32(uint32_t *value, VFSFile *stream)
 {
-    guint32 tmp;
+    uint32_t tmp;
     if (vfs_fread(&tmp, sizeof(tmp), 1, stream) != 1)
         return FALSE;
     *value = GUINT32_FROM_LE(tmp);
@@ -226,9 +236,9 @@ gboolean vfs_fget_le32(guint32 *value, VFSFile *stream)
  * @param stream A #VFSFile object representing the stream.
  * @return TRUE if read was succesful, FALSE if there was an error.
  */
-gboolean vfs_fget_le64(guint64 *value, VFSFile *stream)
+bool_t vfs_fget_le64(uint64_t *value, VFSFile *stream)
 {
-    guint64 tmp;
+    uint64_t tmp;
     if (vfs_fread(&tmp, sizeof(tmp), 1, stream) != 1)
         return FALSE;
     *value = GUINT64_FROM_LE(tmp);
@@ -243,9 +253,9 @@ gboolean vfs_fget_le64(guint64 *value, VFSFile *stream)
  * @param stream A #VFSFile object representing the stream.
  * @return TRUE if read was succesful, FALSE if there was an error.
  */
-gboolean vfs_fget_be16(guint16 *value, VFSFile *stream)
+bool_t vfs_fget_be16(uint16_t *value, VFSFile *stream)
 {
-    guint16 tmp;
+    uint16_t tmp;
     if (vfs_fread(&tmp, sizeof(tmp), 1, stream) != 1)
         return FALSE;
     *value = GUINT16_FROM_BE(tmp);
@@ -259,9 +269,9 @@ gboolean vfs_fget_be16(guint16 *value, VFSFile *stream)
  * @param stream A #VFSFile object representing the stream.
  * @return TRUE if read was succesful, FALSE if there was an error.
  */
-gboolean vfs_fget_be32(guint32 *value, VFSFile *stream)
+bool_t vfs_fget_be32(uint32_t *value, VFSFile *stream)
 {
-    guint32 tmp;
+    uint32_t tmp;
     if (vfs_fread(&tmp, sizeof(tmp), 1, stream) != 1)
         return FALSE;
     *value = GUINT32_FROM_BE(tmp);
@@ -275,9 +285,9 @@ gboolean vfs_fget_be32(guint32 *value, VFSFile *stream)
  * @param stream A #VFSFile object representing the stream.
  * @return TRUE if read was succesful, FALSE if there was an error.
  */
-gboolean vfs_fget_be64(guint64 *value, VFSFile *stream)
+bool_t vfs_fget_be64(uint64_t *value, VFSFile *stream)
 {
-    guint64 tmp;
+    uint64_t tmp;
     if (vfs_fread(&tmp, sizeof(tmp), 1, stream) != 1)
         return FALSE;
     *value = GUINT64_FROM_BE(tmp);
@@ -292,9 +302,9 @@ gboolean vfs_fget_be64(guint64 *value, VFSFile *stream)
  * @param stream A #VFSFile object representing the stream.
  * @return TRUE if read was succesful, FALSE if there was an error.
  */
-gboolean vfs_fput_le16(guint16 value, VFSFile *stream)
+bool_t vfs_fput_le16(uint16_t value, VFSFile *stream)
 {
-    guint16 tmp = GUINT16_TO_LE(value);
+    uint16_t tmp = GUINT16_TO_LE(value);
     return vfs_fwrite(&tmp, sizeof(tmp), 1, stream) == 1;
 }
 
@@ -306,9 +316,9 @@ gboolean vfs_fput_le16(guint16 value, VFSFile *stream)
  * @param stream A #VFSFile object representing the stream.
  * @return TRUE if read was succesful, FALSE if there was an error.
  */
-gboolean vfs_fput_le32(guint32 value, VFSFile *stream)
+bool_t vfs_fput_le32(uint32_t value, VFSFile *stream)
 {
-    guint32 tmp = GUINT32_TO_LE(value);
+    uint32_t tmp = GUINT32_TO_LE(value);
     return vfs_fwrite(&tmp, sizeof(tmp), 1, stream) == 1;
 }
 
@@ -320,9 +330,9 @@ gboolean vfs_fput_le32(guint32 value, VFSFile *stream)
  * @param stream A #VFSFile object representing the stream.
  * @return TRUE if read was succesful, FALSE if there was an error.
  */
-gboolean vfs_fput_le64(guint64 value, VFSFile *stream)
+bool_t vfs_fput_le64(uint64_t value, VFSFile *stream)
 {
-    guint64 tmp = GUINT64_TO_LE(value);
+    uint64_t tmp = GUINT64_TO_LE(value);
     return vfs_fwrite(&tmp, sizeof(tmp), 1, stream) == 1;
 }
 
@@ -334,9 +344,9 @@ gboolean vfs_fput_le64(guint64 value, VFSFile *stream)
  * @param stream A #VFSFile object representing the stream.
  * @return TRUE if read was succesful, FALSE if there was an error.
  */
-gboolean vfs_fput_be16(guint16 value, VFSFile *stream)
+bool_t vfs_fput_be16(uint16_t value, VFSFile *stream)
 {
-    guint16 tmp = GUINT16_TO_BE(value);
+    uint16_t tmp = GUINT16_TO_BE(value);
     return vfs_fwrite(&tmp, sizeof(tmp), 1, stream) == 1;
 }
 
@@ -348,9 +358,9 @@ gboolean vfs_fput_be16(guint16 value, VFSFile *stream)
  * @param stream A #VFSFile object representing the stream.
  * @return TRUE if read was succesful, FALSE if there was an error.
  */
-gboolean vfs_fput_be32(guint32 value, VFSFile *stream)
+bool_t vfs_fput_be32(uint32_t value, VFSFile *stream)
 {
-    guint32 tmp = GUINT32_TO_BE(value);
+    uint32_t tmp = GUINT32_TO_BE(value);
     return vfs_fwrite(&tmp, sizeof(tmp), 1, stream) == 1;
 }
 
@@ -362,8 +372,8 @@ gboolean vfs_fput_be32(guint32 value, VFSFile *stream)
  * @param stream A #VFSFile object representing the stream.
  * @return TRUE if read was succesful, FALSE if there was an error.
  */
-gboolean vfs_fput_be64(guint64 value, VFSFile *stream)
+bool_t vfs_fput_be64(uint64_t value, VFSFile *stream)
 {
-    guint64 tmp = GUINT64_TO_BE(value);
+    uint64_t tmp = GUINT64_TO_BE(value);
     return vfs_fwrite(&tmp, sizeof(tmp), 1, stream) == 1;
 }
diff --git a/src/libaudgui/Makefile b/src/libaudgui/Makefile
index cbf6678..07f7eb4 100644
--- a/src/libaudgui/Makefile
+++ b/src/libaudgui/Makefile
@@ -2,22 +2,23 @@ LIB = ${LIB_PREFIX}audgui${LIB_SUFFIX}
 LIB_MAJOR = 1
 LIB_MINOR = 0
 
-SRCS = confirm.c \
+SRCS = about.c \
+       confirm.c \
        effects-menu.c \
        equalizer.c \
        iface-menu.c \
        infopopup.c \
        infowin.c \
        init.c \
+       jump-to-time.c \
        list.c \
-       ui_gtk.c \
+       playlists.c \
+       queue-manager.c \
        ui_fileopener.c \
        ui_urlopener.c \
        ui_jumptotrack.c \
        ui_jumptotrack_cache.c \
        icons-stock.c \
-       ui_about.c \
-       ui_credits.c \
        ui_playlist_manager.c \
        urilist.c \
        util.c
@@ -31,7 +32,6 @@ include ../../extra.mk
 
 includesubdir = libaudgui
 
-CPPFLAGS += -DHAVE_CONFIG_H -I.. -I../.. ${GLIB_CFLASG} ${GTK_CFLAGS} ${DBUS_CFLAGS} ${LIBMCS_CFLAGS} ${AUDACIOUS_DEFINES} ${REGEX_CFLAGS}
-CFLAGS += -std=gnu99 ${LIB_CFLAGS}
-LDFLAGS += $(AUDLDFLAGS)
-LIBS += -lm ${GLIB_LIBS} ${MOWGLI_LIBS} ${GTK_LIBS} ${REGEX_LIBS} -L../libaudcore -laudcore
+CPPFLAGS += -DHAVE_CONFIG_H -I.. -I../.. ${GLIB_CFLASG} ${GTK_CFLAGS} ${DBUS_CFLAGS} ${AUDACIOUS_DEFINES} ${REGEX_CFLAGS}
+CFLAGS += ${LIB_CFLAGS}
+LIBS += -lm ${GLIB_LIBS} ${GTK_LIBS} ${REGEX_LIBS} -L../libaudcore -laudcore
diff --git a/src/libaudgui/about.c b/src/libaudgui/about.c
new file mode 100644
index 0000000..1121ce2
--- /dev/null
+++ b/src/libaudgui/about.c
@@ -0,0 +1,121 @@
+/*
+ * about.c
+ * Copyright 2011-2012 John Lindgren
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions, and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ *    this list of conditions, and the following disclaimer in the documentation
+ *    provided with the distribution.
+ *
+ * This software is provided "as is" and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising from
+ * the use of this software.
+ */
+
+#include <gtk/gtk.h>
+
+#include <audacious/gtk-compat.h>
+#include <audacious/i18n.h>
+#include <audacious/misc.h>
+
+#include "config.h"
+#include "libaudgui-gtk.h"
+
+static GtkWidget * about_window;
+
+static GtkTextBuffer * create_text_buffer (const char * const * items)
+{
+    GString * string = g_string_new ("");
+
+    for (; items[0] || items[1]; items ++)
+    {
+        if (items[0])
+            g_string_append (string, _(items[0]));
+
+        g_string_append_c (string, '\n');
+    }
+
+    GtkTextBuffer * buffer = gtk_text_buffer_new (NULL);
+    gtk_text_buffer_set_text (buffer, string->str, string->len - 1);
+    g_string_free (string, TRUE);
+    return buffer;
+}
+
+static GtkWidget * create_credits_notebook (const char * const * credits,
+ const char * const * translators)
+{
+    const char * titles[2] = {_("Credits"), _("Translators")};
+    const char * const * lists[2] = {credits, translators};
+
+    GtkWidget * notebook = gtk_notebook_new ();
+
+    for (int i = 0; i < 2; i ++)
+    {
+        GtkWidget * label = gtk_label_new (titles[i]);
+
+        GtkWidget * scrolled = gtk_scrolled_window_new (NULL, NULL);
+        gtk_scrolled_window_set_shadow_type ((GtkScrolledWindow *) scrolled,
+         GTK_SHADOW_IN);
+        gtk_widget_set_size_request (scrolled, -1, 200);
+
+        GtkWidget * text = gtk_text_view_new_with_buffer (create_text_buffer (lists[i]));
+        gtk_text_view_set_editable ((GtkTextView *) text, FALSE);
+        gtk_text_view_set_cursor_visible ((GtkTextView *) text, FALSE);
+        gtk_text_view_set_left_margin ((GtkTextView *) text, 6);
+        gtk_text_view_set_right_margin ((GtkTextView *) text, 6);
+        gtk_container_add ((GtkContainer *) scrolled, text);
+
+        gtk_notebook_append_page ((GtkNotebook *) notebook, scrolled, label);
+    }
+
+    return notebook;
+}
+
+void audgui_show_about_window (void)
+{
+    if (about_window)
+    {
+        gtk_window_present ((GtkWindow *) about_window);
+        return;
+    }
+
+    const char * brief, * const * credits, * const * translators;
+    aud_get_audacious_credits (& brief, & credits, & translators);
+
+    about_window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+    gtk_window_set_title ((GtkWindow *) about_window, _("About Audacious"));
+    gtk_window_set_resizable ((GtkWindow *) about_window, FALSE);
+    gtk_container_set_border_width ((GtkContainer *) about_window, 3);
+
+    audgui_destroy_on_escape (about_window);
+    g_signal_connect (about_window, "destroy", (GCallback) gtk_widget_destroyed,
+     & about_window);
+
+    GtkWidget * vbox = gtk_vbox_new (FALSE, 6);
+    gtk_container_add ((GtkContainer *) about_window, vbox);
+
+    char * name = g_strdup_printf ("%s/images/about-logo.png", aud_get_path
+     (AUD_PATH_DATA_DIR));
+    GtkWidget * image = gtk_image_new_from_file (name);
+    gtk_box_pack_start ((GtkBox *) vbox, image, FALSE, FALSE, 0);
+    g_free (name);
+
+    char * markup = g_strdup_printf (brief, VERSION);
+    GtkWidget * label = gtk_label_new (NULL);
+    gtk_label_set_markup ((GtkLabel *) label, markup);
+    gtk_label_set_justify ((GtkLabel *) label, GTK_JUSTIFY_CENTER);
+    gtk_box_pack_start ((GtkBox *) vbox, label, FALSE, FALSE, 0);
+    g_free (markup);
+
+    GtkWidget * exp = gtk_expander_new (_("Credits"));
+    GtkWidget * notebook = create_credits_notebook (credits, translators);
+    gtk_container_add ((GtkContainer *) exp, notebook);
+    gtk_box_pack_start ((GtkBox *) vbox, exp, TRUE, TRUE, 0);
+
+    gtk_widget_show_all (about_window);
+}
diff --git a/src/libaudgui/confirm.c b/src/libaudgui/confirm.c
index 2330c07..a919ff1 100644
--- a/src/libaudgui/confirm.c
+++ b/src/libaudgui/confirm.c
@@ -1,48 +1,58 @@
 /*
- * libaudgui/confirm.c
+ * confirm.c
  * Copyright 2010-2011 John Lindgren
  *
- * This file is part of Audacious.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
  *
- * Audacious is free software: you can redistribute it and/or modify it under
- * the terms of the GNU General Public License as published by the Free Software
- * Foundation, version 2 or version 3 of the License.
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions, and the following disclaimer.
  *
- * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ *    this list of conditions, and the following disclaimer in the documentation
+ *    provided with the distribution.
  *
- * You should have received a copy of the GNU General Public License along with
- * Audacious. If not, see <http://www.gnu.org/licenses/>.
- *
- * The Audacious team does not consider modular code linking to Audacious or
- * using our public API to be a derived work.
+ * This software is provided "as is" and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising from
+ * the use of this software.
  */
 
 #include <gtk/gtk.h>
 
-#include <audacious/audconfig.h>
 #include <audacious/gtk-compat.h>
 #include <audacious/i18n.h>
+#include <audacious/misc.h>
 #include <audacious/playlist.h>
 
 #include "config.h"
 #include "libaudgui-gtk.h"
 
+static void no_confirm_cb (GtkToggleButton * toggle)
+{
+    aud_set_bool ("audgui", "no_confirm_playlist_delete", gtk_toggle_button_get_active (toggle));
+}
+
 static void confirm_delete_cb (GtkButton * button, void * data)
 {
-    if (GPOINTER_TO_INT (data) < aud_playlist_count ())
-        aud_playlist_delete (GPOINTER_TO_INT (data));
+    int list = aud_playlist_by_unique_id (GPOINTER_TO_INT (data));
+    if (list < 0)
+        return;
+
+    aud_playlist_delete (list);
+    if (list > 0)
+        aud_playlist_set_active (list - 1);
 }
 
-void audgui_confirm_playlist_delete (gint playlist)
+void audgui_confirm_playlist_delete (int playlist)
 {
     GtkWidget * window, * vbox, * hbox, * label, * button;
-    gchar * message;
+    char * message;
 
-    if (aud_cfg->no_confirm_playlist_delete)
+    if (aud_get_bool ("audgui", "no_confirm_playlist_delete"))
     {
         aud_playlist_delete (playlist);
+        if (playlist > 0)
+            aud_playlist_set_active (playlist - 1);
         return;
     }
 
@@ -62,9 +72,11 @@ void audgui_confirm_playlist_delete (gint playlist)
     gtk_box_pack_start ((GtkBox *) hbox, gtk_image_new_from_stock
      (GTK_STOCK_DIALOG_QUESTION, GTK_ICON_SIZE_DIALOG), FALSE, FALSE, 0);
 
+    char * title = aud_playlist_get_title (playlist);
     message = g_strdup_printf (_("Are you sure you want to close %s?  If you "
      "do, any changes made since the playlist was exported will be lost."),
-     aud_playlist_get_title (playlist));
+     title);
+    str_unref (title);
     label = gtk_label_new (message);
     g_free (message);
     gtk_label_set_line_wrap ((GtkLabel *) label, TRUE);
@@ -74,10 +86,9 @@ void audgui_confirm_playlist_delete (gint playlist)
     hbox = gtk_hbox_new (FALSE, 6);
     gtk_box_pack_start ((GtkBox *) vbox, hbox, FALSE, FALSE, 0);
 
-    button = gtk_check_button_new_with_mnemonic (_("_Don't show this message "
-     "again"));
+    button = gtk_check_button_new_with_mnemonic (_("_Don't show this message again"));
     gtk_box_pack_start ((GtkBox *) hbox, button, FALSE, FALSE, 0);
-    audgui_connect_check_box (button, & aud_cfg->no_confirm_playlist_delete);
+    g_signal_connect (button, "toggled", (GCallback) no_confirm_cb, NULL);
 
     hbox = gtk_hbox_new (FALSE, 6);
     gtk_box_pack_start ((GtkBox *) vbox, hbox, FALSE, FALSE, 0);
@@ -93,16 +104,16 @@ void audgui_confirm_playlist_delete (gint playlist)
     gtk_widget_grab_default (button);
     gtk_widget_grab_focus (button);
     g_signal_connect ((GObject *) button, "clicked", (GCallback)
-     confirm_delete_cb, GINT_TO_POINTER (playlist));
+     confirm_delete_cb, GINT_TO_POINTER (aud_playlist_get_unique_id (playlist)));
     g_signal_connect_swapped ((GObject *) button, "clicked", (GCallback)
      gtk_widget_destroy, window);
 
     gtk_widget_show_all (window);
 }
 
-static void rename_cb (GtkDialog * dialog, gint resp, void * list)
+static void rename_cb (GtkDialog * dialog, int resp, void * list)
 {
-    if (resp == GTK_RESPONSE_ACCEPT && GPOINTER_TO_INT (list) < 
+    if (resp == GTK_RESPONSE_ACCEPT && GPOINTER_TO_INT (list) <
      aud_playlist_count ())
         aud_playlist_set_title (GPOINTER_TO_INT (list), gtk_entry_get_text
          ((GtkEntry *) g_object_get_data ((GObject *) dialog, "entry")));
@@ -110,7 +121,7 @@ static void rename_cb (GtkDialog * dialog, gint resp, void * list)
     gtk_widget_destroy ((GtkWidget *) dialog);
 }
 
-void audgui_show_playlist_rename (gint playlist)
+void audgui_show_playlist_rename (int playlist)
 {
     GtkWidget * dialog = gtk_dialog_new_with_buttons (_("Rename Playlist"),
      NULL, 0, GTK_STOCK_OK, GTK_RESPONSE_ACCEPT, GTK_STOCK_CANCEL,
@@ -118,7 +129,9 @@ void audgui_show_playlist_rename (gint playlist)
     gtk_dialog_set_default_response ((GtkDialog *) dialog, GTK_RESPONSE_ACCEPT);
 
     GtkWidget * entry = gtk_entry_new ();
-    gtk_entry_set_text ((GtkEntry *) entry, aud_playlist_get_title (playlist));
+    char * title = aud_playlist_get_title (playlist);
+    gtk_entry_set_text ((GtkEntry *) entry, title);
+    str_unref (title);
     gtk_entry_set_activates_default ((GtkEntry *) entry, TRUE);
     gtk_box_pack_start ((GtkBox *) gtk_dialog_get_content_area ((GtkDialog *)
      dialog), entry, FALSE, FALSE, 0);
diff --git a/src/libaudgui/effects-menu.c b/src/libaudgui/effects-menu.c
index 67cc118..cb8f968 100644
--- a/src/libaudgui/effects-menu.c
+++ b/src/libaudgui/effects-menu.c
@@ -1,22 +1,20 @@
 /*
  * effects-menu.c
- * Copyright 2010 John Lindgren
+ * Copyright 2010-2011 John Lindgren
  *
- * This file is part of Audacious.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
  *
- * Audacious is free software: you can redistribute it and/or modify it under
- * the terms of the GNU General Public License as published by the Free Software
- * Foundation, version 2 or version 3 of the License.
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions, and the following disclaimer.
  *
- * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ *    this list of conditions, and the following disclaimer in the documentation
+ *    provided with the distribution.
  *
- * You should have received a copy of the GNU General Public License along with
- * Audacious. If not, see <http://www.gnu.org/licenses/>.
- *
- * The Audacious team does not consider modular code linking to Audacious or
- * using our public API to be a derived work.
+ * This software is provided "as is" and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising from
+ * the use of this software.
  */
 
 #include "config.h"
@@ -27,9 +25,9 @@
 
 #include "libaudgui-gtk.h"
 
-static gboolean watch_cb (PluginHandle * plugin, GtkCheckMenuItem * item)
+static bool_t watch_cb (PluginHandle * plugin, GtkCheckMenuItem * item)
 {
-    gboolean enabled = aud_plugin_get_enabled (plugin);
+    bool_t enabled = aud_plugin_get_enabled (plugin);
     gtk_check_menu_item_set_active (item, enabled);
 
     GtkWidget * settings = g_object_get_data ((GObject *) item, "settings");
@@ -54,12 +52,12 @@ static void settings_cb (GtkMenuItem * settings, PluginHandle * plugin)
     if (! aud_plugin_get_enabled (plugin))
         return;
 
-    EffectPlugin * header = aud_plugin_get_header (plugin);
+    Plugin * header = aud_plugin_get_header (plugin);
     g_return_if_fail (header != NULL);
     header->configure ();
 }
 
-static gboolean add_item_cb (PluginHandle * plugin, GtkWidget * menu)
+static bool_t add_item_cb (PluginHandle * plugin, GtkWidget * menu)
 {
     GtkWidget * item = gtk_check_menu_item_new_with_label (aud_plugin_get_name
      (plugin));
@@ -91,3 +89,10 @@ GtkWidget * audgui_create_effects_menu (void)
      menu);
     return menu;
 }
+
+GtkWidget * audgui_create_vis_menu (void)
+{
+    GtkWidget * menu = gtk_menu_new ();
+    aud_plugin_for_each (PLUGIN_TYPE_VIS, (PluginForEachFunc) add_item_cb, menu);
+    return menu;
+}
diff --git a/src/libaudgui/equalizer.c b/src/libaudgui/equalizer.c
index 6b642df..eab11f3 100644
--- a/src/libaudgui/equalizer.c
+++ b/src/libaudgui/equalizer.c
@@ -1,22 +1,20 @@
 /*
- * libaudgui/equalizer.c
- * Copyright 2010 John Lindgren
+ * equalizer.c
+ * Copyright 2010-2011 John Lindgren
  *
- * This file is part of Audacious.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
  *
- * Audacious is free software: you can redistribute it and/or modify it under
- * the terms of the GNU General Public License as published by the Free Software
- * Foundation, version 2 or version 3 of the License.
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions, and the following disclaimer.
  *
- * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ *    this list of conditions, and the following disclaimer in the documentation
+ *    provided with the distribution.
  *
- * You should have received a copy of the GNU General Public License along with
- * Audacious. If not, see <http://www.gnu.org/licenses/>.
- *
- * The Audacious team does not consider modular code linking to Audacious or
- * using our public API to be a derived work.
+ * This software is provided "as is" and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising from
+ * the use of this software.
  */
 
 /*
@@ -27,38 +25,23 @@
 
 #include <math.h>
 
-#include <audacious/audconfig.h>
 #include <audacious/i18n.h>
+#include <audacious/misc.h>
+#include <audacious/types.h>
 #include <libaudcore/hook.h>
 
 #include "config.h"
 #include "libaudgui-gtk.h"
 
-typedef struct
-{
-    GtkWidget * slider;
-    gfloat * setting;
-}
-SliderPair;
-
 static void on_off_cb (GtkToggleButton * on_off, void * unused)
 {
-    gboolean active = gtk_toggle_button_get_active (on_off);
-
-    if (aud_cfg->equalizer_active != active)
-    {
-        aud_cfg->equalizer_active = active;
-        hook_call ("equalizer changed", NULL);
-    }
+    aud_set_bool (NULL, "equalizer_active", gtk_toggle_button_get_active (on_off));
 }
 
 static void on_off_update (void * unused, GtkWidget * on_off)
 {
-    gboolean active = gtk_toggle_button_get_active ((GtkToggleButton *) on_off);
-
-    if (active != aud_cfg->equalizer_active)
-        gtk_toggle_button_set_active ((GtkToggleButton *) on_off,
-         aud_cfg->equalizer_active);
+    gtk_toggle_button_set_active ((GtkToggleButton *) on_off, aud_get_bool
+     (NULL, "equalizer_active"));
 }
 
 static GtkWidget * create_on_off (void)
@@ -67,50 +50,44 @@ static GtkWidget * create_on_off (void)
 
     on_off = gtk_check_button_new_with_mnemonic (_("_Enable"));
     g_signal_connect ((GObject *) on_off, "toggled", (GCallback) on_off_cb, NULL);
-    hook_associate ("equalizer changed", (HookFunction) on_off_update, on_off);
+    hook_associate ("set equalizer_active", (HookFunction) on_off_update, on_off);
 
     on_off_update (NULL, on_off);
     return on_off;
 }
 
-static void slider_cb (GtkRange * slider, gfloat * setting)
-{
-    gint old = roundf (* setting);
-    gint new = round (-gtk_range_get_value (slider));
-
-    if (old != new)
-    {
-        * setting = new;
-        hook_call ("equalizer changed", NULL);
-    }
-}
-
-static void slider_update (void * unused, SliderPair * pair)
+static void slider_moved (GtkRange * slider, void * unused)
 {
-    gint old = round (-gtk_range_get_value ((GtkRange *) pair->slider));
-    gint new = roundf (* pair->setting);
+    int band = GPOINTER_TO_INT (g_object_get_data ((GObject *) slider, "band"));
+    double value = round (-gtk_range_get_value (slider));
 
-    if (old != new)
-        gtk_range_set_value ((GtkRange *) pair->slider, -new);
+    if (band == -1)
+        aud_set_double (NULL, "equalizer_preamp", value);
+    else
+        aud_eq_set_band (band, value);
 }
 
-static void set_slider_update (GtkWidget * slider, gfloat * setting)
+static void slider_update (void * unused, GtkRange * slider)
 {
-    SliderPair * pair = g_slice_new (SliderPair);
+    int band = GPOINTER_TO_INT (g_object_get_data ((GObject *) slider, "band"));
+    double value;
 
-    pair->slider = slider;
-    pair->setting = setting;
+    if (band == -1)
+        value = round (aud_get_double (NULL, "equalizer_preamp"));
+    else
+        value = round (aud_eq_get_band (band));
 
-    hook_associate ("equalizer changed", (HookFunction) slider_update, pair);
-    slider_update (NULL, pair);
+    g_signal_handlers_block_by_func (slider, (void *) slider_moved, NULL);
+    gtk_range_set_value (slider, -value);
+    g_signal_handlers_unblock_by_func (slider, (void *) slider_moved, NULL);
 }
 
-static gchar * format_value (GtkScale * slider, gdouble value, void * unused)
+static char * format_value (GtkScale * slider, double value, void * unused)
 {
-    return g_strdup_printf ("%d", (gint) -value);
+    return g_strdup_printf ("%d", (int) -value);
 }
 
-static GtkWidget * create_slider (const gchar * name, gfloat * setting)
+static GtkWidget * create_slider (const char * name, int band)
 {
     GtkWidget * vbox, * slider, * label;
 
@@ -120,16 +97,22 @@ static GtkWidget * create_slider (const gchar * name, gfloat * setting)
     gtk_label_set_angle ((GtkLabel *) label, 90);
     gtk_box_pack_start ((GtkBox *) vbox, label, TRUE, FALSE, 0);
 
-    slider = gtk_vscale_new_with_range (-EQUALIZER_MAX_GAIN, EQUALIZER_MAX_GAIN,
-     1);
+    slider = gtk_vscale_new_with_range (-EQUALIZER_MAX_GAIN, EQUALIZER_MAX_GAIN, 1);
     gtk_scale_set_draw_value ((GtkScale *) slider, TRUE);
     gtk_scale_set_value_pos ((GtkScale *) slider, GTK_POS_BOTTOM);
     gtk_widget_set_size_request (slider, -1, 120);
-    g_signal_connect ((GObject *) slider, "format-value", (GCallback)
-     format_value, NULL);
-    g_signal_connect ((GObject *) slider, "value-changed", (GCallback)
-     slider_cb, setting);
-    set_slider_update (slider, setting);
+
+    g_object_set_data ((GObject *) slider, "band", GINT_TO_POINTER (band));
+    g_signal_connect ((GObject *) slider, "format-value", (GCallback) format_value, NULL);
+    g_signal_connect ((GObject *) slider, "value-changed", (GCallback) slider_moved, NULL);
+
+    slider_update (NULL, (GtkRange *) slider);
+
+    if (band == -1)
+        hook_associate ("set equalizer_preamp", (HookFunction) slider_update, slider);
+    else
+        hook_associate ("set equalizer_bands", (HookFunction) slider_update, slider);
+
     gtk_box_pack_start ((GtkBox *) vbox, slider, FALSE, FALSE, 0);
 
     return vbox;
@@ -137,11 +120,11 @@ static GtkWidget * create_slider (const gchar * name, gfloat * setting)
 
 static GtkWidget * create_window (void)
 {
-    const gchar * const names[AUD_EQUALIZER_NBANDS] = {N_("31 Hz"), N_("63 Hz"),
+    const char * const names[AUD_EQUALIZER_NBANDS] = {N_("31 Hz"), N_("63 Hz"),
      N_("125 Hz"), N_("250 Hz"), N_("500 Hz"), N_("1 kHz"), N_("2 kHz"),
      N_("4 kHz"), N_("8 kHz"), N_("16 kHz")};
     GtkWidget * window, * vbox, * hbox;
-    gint i;
+    int i;
 
     window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
     gtk_window_set_title ((GtkWindow *) window, _("Equalizer"));
@@ -160,14 +143,11 @@ static GtkWidget * create_window (void)
     hbox = gtk_hbox_new (FALSE, 6);
     gtk_box_pack_start ((GtkBox *) vbox, hbox, FALSE, FALSE, 0);
 
-    gtk_box_pack_start ((GtkBox *) hbox, create_slider (_("Preamp"),
-     & aud_cfg->equalizer_preamp), FALSE, FALSE, 0);
-
+    gtk_box_pack_start ((GtkBox *) hbox, create_slider (_("Preamp"), -1), FALSE, FALSE, 0);
     gtk_box_pack_start ((GtkBox *) hbox, gtk_vseparator_new (), FALSE, FALSE, 0);
 
     for (i = 0; i < AUD_EQUALIZER_NBANDS; i ++)
-        gtk_box_pack_start ((GtkBox *) hbox, create_slider (_(names[i]),
-         & aud_cfg->equalizer_bands[i]), FALSE, FALSE, 0);
+        gtk_box_pack_start ((GtkBox *) hbox, create_slider (_(names[i]), i), FALSE, FALSE, 0);
 
     gtk_widget_show_all (vbox);
     return window;
@@ -185,6 +165,13 @@ void audgui_show_equalizer_window (void)
 
 void audgui_hide_equalizer_window (void)
 {
-    if (equalizer_window != NULL)
-        gtk_widget_hide (equalizer_window);
+    if (! equalizer_window)
+        return;
+
+    hook_dissociate ("set equalizer_active", (HookFunction) on_off_update);
+    hook_dissociate ("set equalizer_bands", (HookFunction) slider_update);
+    hook_dissociate ("set equalizer_preamp", (HookFunction) slider_update);
+
+    gtk_widget_destroy (equalizer_window);
+    equalizer_window = NULL;
 }
diff --git a/src/libaudgui/icons-stock.c b/src/libaudgui/icons-stock.c
index fd25c94..6ec4e84 100644
--- a/src/libaudgui/icons-stock.c
+++ b/src/libaudgui/icons-stock.c
@@ -1,34 +1,32 @@
-/*  Audacious - Cross-platform multimedia player
- *  Copyright (C) 2005-2008  Audacious development team.
+/*
+ * icons-stock.c
+ * Copyright 2007-2010 Michael Färber and John Lindgren
  *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; under version 3 of the License.
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; under version 3 of the License.
  *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
  *
- *  You should have received a copy of the GNU General Public License
- *  along with this program.  If not, see <http://www.gnu.org/licenses>.
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses>.
  *
- *  The Audacious team does not consider modular code linking to
- *  Audacious or using our public API to be a derived work.
+ * The Audacious team does not consider modular code linking to
+ * Audacious or using our public API to be a derived work.
  */
 
-
-#include "icons-stock.h"
-
-#include <gdk/gdk.h>
 #include <gtk/gtk.h>
-
 #include <audacious/misc.h>
 
-static void load_stock_icon (gchar * id, gchar * filename,
+#include "libaudgui.h"
+
+static void load_stock_icon (char * id, char * filename,
  GtkIconFactory * iconfactory)
 {
-    gchar * path = g_strdup_printf ("%s/images/%s",
+    char * path = g_strdup_printf ("%s/images/%s",
      aud_get_path (AUD_PATH_DATA_DIR), filename);
 
     GdkPixbuf * pixbuf = gdk_pixbuf_new_from_file (path, NULL);
@@ -61,4 +59,3 @@ audgui_register_stock_icons(void)
     gtk_icon_factory_add_default( iconfactory );
     g_object_unref( iconfactory );
 }
-
diff --git a/src/libaudgui/icons-stock.h b/src/libaudgui/icons-stock.h
deleted file mode 100644
index f1f32f6..0000000
--- a/src/libaudgui/icons-stock.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*  Audacious - Cross-platform multimedia player
- *  Copyright (C) 2005-2007  Audacious development team.
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; under version 3 of the License.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program.  If not, see <http://www.gnu.org/licenses>.
- *
- *  The Audacious team does not consider modular code linking to
- *  Audacious or using our public API to be a derived work.
- */
-
-#ifndef AUDACIOUS_ICONS_STOCK_H
-#define AUDACIOUS_ICONS_STOCK_H
-
-void audgui_register_stock_icons(void);
-
-/* this header contains macro defines for Audacious stock icons */
-
-#define AUD_STOCK_PLAYLIST			"aud-playlist"
-#define AUD_STOCK_PLUGIN			"aud-plugin"
-#define AUD_STOCK_QUEUETOGGLE		"aud-queuetoggle"
-#define AUD_STOCK_RANDOMIZEPL		"aud-randomizepl"
-
-#endif /* AUDACIOUS_ICONS_STOCK_H */
diff --git a/src/libaudgui/iface-menu.c b/src/libaudgui/iface-menu.c
index 24b2834..3e36cb4 100644
--- a/src/libaudgui/iface-menu.c
+++ b/src/libaudgui/iface-menu.c
@@ -2,21 +2,19 @@
  * iface-menu.c
  * Copyright 2010 John Lindgren
  *
- * This file is part of Audacious.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
  *
- * Audacious is free software: you can redistribute it and/or modify it under
- * the terms of the GNU General Public License as published by the Free Software
- * Foundation, version 2 or version 3 of the License.
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions, and the following disclaimer.
  *
- * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ *    this list of conditions, and the following disclaimer in the documentation
+ *    provided with the distribution.
  *
- * You should have received a copy of the GNU General Public License along with
- * Audacious. If not, see <http://www.gnu.org/licenses/>.
- *
- * The Audacious team does not consider modular code linking to Audacious or
- * using our public API to be a derived work.
+ * This software is provided "as is" and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising from
+ * the use of this software.
  */
 
 #include <gtk/gtk.h>
@@ -36,7 +34,7 @@ typedef struct {
     GSList * group;
 } IfaceMenuAddState;
 
-static gboolean add_item_cb (PluginHandle * plugin, IfaceMenuAddState * state)
+static bool_t add_item_cb (PluginHandle * plugin, IfaceMenuAddState * state)
 {
     GtkWidget * item = gtk_radio_menu_item_new_with_label (state->group,
      aud_plugin_get_name (plugin));
diff --git a/src/libaudgui/infopopup.c b/src/libaudgui/infopopup.c
index f9c42eb..c649605 100644
--- a/src/libaudgui/infopopup.c
+++ b/src/libaudgui/infopopup.c
@@ -1,30 +1,25 @@
 /*
- * libaudgui/infopopup.c
- * Copyright 2006 William Pitcock, Tony Vroon, George Averill, Giacomo Lozito,
- *  Derek Pomery and Yoshiki Yazawa.
- * Copyright 2010 John Lindgren
+ * infopopup.c
+ * Copyright 2006-2011 William Pitcock, Giacomo Lozito, and John Lindgren
  *
- * This file is part of Audacious.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
  *
- * Audacious is free software: you can redistribute it and/or modify it under
- * the terms of the GNU General Public License as published by the Free Software
- * Foundation, version 2 or version 3 of the License.
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions, and the following disclaimer.
  *
- * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ *    this list of conditions, and the following disclaimer in the documentation
+ *    provided with the distribution.
  *
- * You should have received a copy of the GNU General Public License along with
- * Audacious. If not, see <http://www.gnu.org/licenses/>.
- *
- * The Audacious team does not consider modular code linking to Audacious or
- * using our public API to be a derived work.
+ * This software is provided "as is" and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising from
+ * the use of this software.
  */
 
 #include <gtk/gtk.h>
 #include <string.h>
 
-#include <audacious/audconfig.h>
 #include <audacious/drct.h>
 #include <audacious/gtk-compat.h>
 #include <audacious/i18n.h>
@@ -35,20 +30,9 @@
 #include "libaudgui.h"
 #include "libaudgui-gtk.h"
 
-static const gchar * get_default_artwork (void)
-{
-    static gchar * path = NULL;
-    if (! path)
-        path = g_strdup_printf ("%s/images/audio.png",
-         aud_get_path (AUD_PATH_DATA_DIR));
-    return path;
-}
-
-#define DEFAULT_ARTWORK (get_default_artwork ())
-
 static GtkWidget * infopopup = NULL;
 
-static void infopopup_entry_set_text (const gchar * entry_name, const gchar *
+static void infopopup_entry_set_text (const char * entry_name, const char *
  text)
 {
     GtkWidget * widget = g_object_get_data ((GObject *) infopopup, entry_name);
@@ -57,62 +41,37 @@ static void infopopup_entry_set_text (const gchar * entry_name, const gchar *
     gtk_label_set_text ((GtkLabel *) widget, text);
 }
 
-static void infopopup_entry_set_image (const gchar * entry_name, const gchar *
- text)
+static void infopopup_entry_set_image (int playlist, int entry)
 {
-    GtkWidget * widget = g_object_get_data ((GObject *) infopopup, entry_name);
-    GdkPixbuf * pixbuf;
-    gint width, height;
-    gfloat aspect;
+    GtkWidget * widget = g_object_get_data ((GObject *) infopopup, "image");
+    g_return_if_fail (widget);
 
-    pixbuf = gdk_pixbuf_new_from_file (text, NULL);
-    g_return_if_fail (pixbuf != NULL);
+    GdkPixbuf * pixbuf = audgui_pixbuf_for_entry (playlist, entry);
 
-    width = gdk_pixbuf_get_width (pixbuf);
-    height = gdk_pixbuf_get_height (pixbuf);
-
-    if (strcmp (DEFAULT_ARTWORK, text))
+    if (pixbuf)
     {
-        GdkPixbuf * pixbuf2;
-
-        aspect = height / (gfloat) width;
-
-        if (aspect > 1)
-        {
-            height = aud_cfg->filepopup_pixelsize * aspect;
-            width = aud_cfg->filepopup_pixelsize;
-        }
-        else
-        {
-            height = aud_cfg->filepopup_pixelsize;
-            width = aud_cfg->filepopup_pixelsize / aspect;
-        }
-
-        pixbuf2 = gdk_pixbuf_scale_simple (pixbuf, width, height,
-         GDK_INTERP_BILINEAR);
+        audgui_pixbuf_scale_within (& pixbuf, 96);
+        gtk_image_set_from_pixbuf ((GtkImage *) widget, pixbuf);
         g_object_unref (pixbuf);
-        pixbuf = pixbuf2;
     }
-
-    gtk_image_set_from_pixbuf ((GtkImage *) widget, pixbuf);
-    g_object_unref (pixbuf);
+    else
+        gtk_image_clear ((GtkImage *) widget);
 }
 
-static gboolean infopopup_progress_cb (void * unused)
+static bool_t infopopup_progress_cb (void * unused)
 {
     GtkWidget * progressbar = g_object_get_data ((GObject *) infopopup,
      "progressbar");
-    gchar * tooltip_file = g_object_get_data ((GObject *) infopopup, "file");
-    gint length = GPOINTER_TO_INT (g_object_get_data ((GObject *) infopopup,
+    char * tooltip_file = g_object_get_data ((GObject *) infopopup, "file");
+    int length = GPOINTER_TO_INT (g_object_get_data ((GObject *) infopopup,
      "length"));
-    gint playlist, entry, time;
-    const gchar * filename;
-    gchar * progress_time;
+    int playlist, entry, time;
+    char * progress_time;
 
     g_return_val_if_fail (tooltip_file != NULL, FALSE);
     g_return_val_if_fail (length > 0, FALSE);
 
-    if (! aud_cfg->filepopup_showprogressbar || ! aud_drct_get_playing ())
+    if (! aud_get_bool (NULL, "filepopup_showprogressbar") || ! aud_drct_get_playing ())
         goto HIDE;
 
     playlist = aud_playlist_get_playing ();
@@ -125,14 +84,17 @@ static gboolean infopopup_progress_cb (void * unused)
     if (entry == -1)
         goto HIDE;
 
-    filename = aud_playlist_entry_get_filename (playlist, entry);
-
+    char * filename = aud_playlist_entry_get_filename (playlist, entry);
     if (strcmp (filename, tooltip_file))
+    {
+        str_unref (filename);
         goto HIDE;
+    }
+    str_unref (filename);
 
     time = aud_drct_get_time ();
     gtk_progress_bar_set_fraction ((GtkProgressBar *) progressbar, time /
-     (gfloat) length);
+     (float) length);
     progress_time = g_strdup_printf ("%d:%02d", time / 60000, (time / 1000) % 60);
     gtk_progress_bar_set_text ((GtkProgressBar *) progressbar, progress_time);
     g_free (progress_time);
@@ -154,7 +116,7 @@ static void infopopup_progress_init (void)
 
 static void infopopup_progress_start (void)
 {
-    gint sid = g_timeout_add (500, (GSourceFunc) infopopup_progress_cb, NULL);
+    int sid = g_timeout_add (500, (GSourceFunc) infopopup_progress_cb, NULL);
 
     g_object_set_data ((GObject *) infopopup, "progress_sid", GINT_TO_POINTER
      (sid));
@@ -162,7 +124,7 @@ static void infopopup_progress_start (void)
 
 static void infopopup_progress_stop (void)
 {
-    gint sid = GPOINTER_TO_INT (g_object_get_data ((GObject *) infopopup,
+    int sid = GPOINTER_TO_INT (g_object_get_data ((GObject *) infopopup,
      "progress_sid"));
 
     if (! sid)
@@ -174,12 +136,12 @@ static void infopopup_progress_stop (void)
 }
 
 static void infopopup_add_category (GtkWidget * infopopup_data_table,
- const gchar * category, const gchar * header_data, const gchar * label_data,
- gint position)
+ const char * category, const char * header_data, const char * label_data,
+ int position)
 {
     GtkWidget * infopopup_data_info_header = gtk_label_new ("");
     GtkWidget * infopopup_data_info_label = gtk_label_new ("");
-    gchar * markup;
+    char * markup;
 
     gtk_misc_set_alignment ((GtkMisc *) infopopup_data_info_header, 0, 0.5);
     gtk_misc_set_alignment ((GtkMisc *) infopopup_data_info_label, 0, 0.5);
@@ -219,11 +181,7 @@ static void infopopup_create (void)
 
     infopopup_data_image = gtk_image_new ();
     gtk_misc_set_alignment ((GtkMisc *) infopopup_data_image, 0.5, 0);
-    gtk_image_set_from_file ((GtkImage *) infopopup_data_image, DEFAULT_ARTWORK);
-
-    g_object_set_data ((GObject *) infopopup, "image_artwork",
-     infopopup_data_image);
-    g_object_set_data ((GObject *) infopopup, "last_artwork", NULL);
+    g_object_set_data ((GObject *) infopopup, "image", infopopup_data_image);
     gtk_box_pack_start ((GtkBox *) infopopup_hbox, infopopup_data_image, FALSE,
      FALSE, 0);
 
@@ -267,21 +225,15 @@ static void infopopup_create (void)
     gtk_widget_show_all (infopopup_hbox);
 }
 
-#if 0
-static void infopopup_destroy (void)
+/* calls str_unref() on <text> */
+static void infopopup_update_data (char * text, const char * label_data,
+ const char * header_data)
 {
-    infopopup_progress_stop (infopopup);
-    g_free (g_object_get_data ((GObject *) infopopup, "last_artwork"));
-    gtk_widget_destroy (infopopup);
-}
-#endif
-
-static void infopopup_update_data (const gchar * text, const gchar * label_data,
- const gchar * header_data)
-{
-    if (text != NULL)
+    if (text)
     {
         infopopup_entry_set_text (label_data, text);
+        str_unref (text);
+
         gtk_widget_show ((GtkWidget *) g_object_get_data ((GObject *) infopopup,
          header_data));
         gtk_widget_show ((GtkWidget *) g_object_get_data ((GObject *) infopopup,
@@ -311,14 +263,12 @@ static void infopopup_clear (void)
     gtk_window_resize ((GtkWindow *) infopopup, 1, 1);
 }
 
-static void infopopup_show (const gchar * filename, const Tuple * tuple,
- const gchar * title)
+static void infopopup_show (int playlist, int entry, const char * filename,
+ const Tuple * tuple, const char * title)
 {
-    gint x, y, h, w;
-    gchar * last_artwork;
-    gint length, value;
-    gchar * tmp;
-    const gchar * title2;
+    int x, y, h, w;
+    int length, value;
+    char * tmp;
 
     if (infopopup == NULL)
         infopopup_create ();
@@ -329,49 +279,30 @@ static void infopopup_show (const gchar * filename, const Tuple * tuple,
     g_object_set_data ((GObject *) infopopup, "file", g_strdup (filename));
 
     /* use title from tuple if possible */
-    if ((title2 = tuple_get_string (tuple, FIELD_TITLE, NULL)))
-        title = title2;
+    char * title2 = tuple_get_str (tuple, FIELD_TITLE, NULL);
+    if (! title2)
+        title2 = str_get (title);
 
-    infopopup_update_data (title, "label_title", "header_title");
-    infopopup_update_data (tuple_get_string (tuple, FIELD_ARTIST, NULL),
-     "label_artist", "header_artist");
-    infopopup_update_data (tuple_get_string (tuple, FIELD_ALBUM, NULL),
-     "label_album", "header_album");
-    infopopup_update_data (tuple_get_string (tuple, FIELD_GENRE, NULL),
-     "label_genre", "header_genre");
+    infopopup_update_data (title2, "label_title", "header_title");
+    infopopup_update_data (tuple_get_str (tuple, FIELD_ARTIST, NULL), "label_artist", "header_artist");
+    infopopup_update_data (tuple_get_str (tuple, FIELD_ALBUM, NULL), "label_album", "header_album");
+    infopopup_update_data (tuple_get_str (tuple, FIELD_GENRE, NULL), "label_genre", "header_genre");
 
     length = tuple_get_int (tuple, FIELD_LENGTH, NULL);
-    tmp = (length > 0) ? g_strdup_printf ("%d:%02d", length / 60000, length /
-     1000 % 60) : NULL;
+    tmp = (length > 0) ? str_printf ("%d:%02d", length / 60000, length / 1000 % 60) : NULL;
     infopopup_update_data (tmp, "label_tracklen", "header_tracklen");
-    g_free (tmp);
 
     g_object_set_data ((GObject *) infopopup, "length" , GINT_TO_POINTER (length));
 
     value = tuple_get_int (tuple, FIELD_YEAR, NULL);
-    tmp = (value > 0) ? g_strdup_printf ("%d", value) : NULL;
+    tmp = (value > 0) ? str_printf ("%d", value) : NULL;
     infopopup_update_data (tmp, "label_year", "header_year");
-    g_free (tmp);
 
     value = tuple_get_int (tuple, FIELD_TRACK_NUMBER, NULL);
-    tmp = (value > 0) ? g_strdup_printf ("%d", value) : NULL;
+    tmp = (value > 0) ? str_printf ("%d", value) : NULL;
     infopopup_update_data (tmp, "label_tracknum", "header_tracknum");
-    g_free (tmp);
 
-    last_artwork = g_object_get_data ((GObject *) infopopup, "last_artwork");
-    tmp = aud_get_associated_image_file (filename);
-
-    if (tmp == NULL)
-        tmp = g_strdup (DEFAULT_ARTWORK);
-
-    if (last_artwork == NULL || strcmp (tmp, last_artwork))
-    {
-        infopopup_entry_set_image ("image_artwork", tmp);
-        g_free (last_artwork);
-        g_object_set_data ((GObject *) infopopup, "last_artwork", tmp);
-    }
-    else
-        g_free (tmp);
+    infopopup_entry_set_image (playlist, entry);
 
     /* start a timer that updates a progress bar if the tooltip
        is shown for the song that is being currently played */
@@ -402,24 +333,25 @@ static void infopopup_show (const gchar * filename, const Tuple * tuple,
     gtk_widget_show (infopopup);
 }
 
-void audgui_infopopup_show (gint playlist, gint entry)
+void audgui_infopopup_show (int playlist, int entry)
 {
-    const gchar * filename = aud_playlist_entry_get_filename (playlist, entry);
-    const Tuple * tuple = aud_playlist_entry_get_tuple (playlist, entry, FALSE);
-
-    g_return_if_fail (filename != NULL);
+    char * filename = aud_playlist_entry_get_filename (playlist, entry);
+    char * title = aud_playlist_entry_get_title (playlist, entry, FALSE);
+    Tuple * tuple = aud_playlist_entry_get_tuple (playlist, entry, FALSE);
 
-    if (tuple == NULL) /* FIXME: show an error popup if this happens */
-        return;
+    if (filename && title && tuple)
+        infopopup_show (playlist, entry, filename, tuple, title);
 
-    infopopup_show (filename, tuple, aud_playlist_entry_get_title (playlist,
-     entry, FALSE));
+    str_unref (filename);
+    str_unref (title);
+    if (tuple)
+        tuple_unref (tuple);
 }
 
 void audgui_infopopup_show_current (void)
 {
-    gint playlist = aud_playlist_get_playing ();
-    gint position;
+    int playlist = aud_playlist_get_playing ();
+    int position;
 
     if (playlist == -1)
         playlist = aud_playlist_get_active ();
@@ -434,6 +366,9 @@ void audgui_infopopup_show_current (void)
 
 void audgui_infopopup_hide (void)
 {
+    if (! infopopup)
+        return;
+
     infopopup_progress_stop ();
     gtk_widget_hide (infopopup);
 }
diff --git a/src/libaudgui/infowin.c b/src/libaudgui/infowin.c
index 13d1c47..866717b 100644
--- a/src/libaudgui/infowin.c
+++ b/src/libaudgui/infowin.c
@@ -1,31 +1,28 @@
 /*
  * libaudgui/infowin.c
- * Copyright 2006 William Pitcock, Tony Vroon, George Averill, Giacomo Lozito,
- *  Derek Pomery and Yoshiki Yazawa.
- * Copyright 2008 Eugene Zagidullin
- * Copyright 2010 John Lindgren
+ * Copyright 2006-2011 William Pitcock, Tomasz Moń, Eugene Zagidullin, and
+ *                     John Lindgren
  *
- * This file is part of Audacious.
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; under version 3 of the License.
  *
- * Audacious is free software: you can redistribute it and/or modify it under
- * the terms of the GNU General Public License as published by the Free Software
- * Foundation, version 2 or version 3 of the License.
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
  *
- * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses>.
  *
- * You should have received a copy of the GNU General Public License along with
- * Audacious. If not, see <http://www.gnu.org/licenses/>.
- *
- * The Audacious team does not consider modular code linking to Audacious or
- * using our public API to be a derived work.
+ * The Audacious team does not consider modular code linking to
+ * Audacious or using our public API to be a derived work.
  */
 
 #include <gtk/gtk.h>
 #include <stdarg.h>
+#include <stdlib.h>
 
-#include <audacious/audconfig.h>
 #include <audacious/gtk-compat.h>
 #include <audacious/i18n.h>
 #include <audacious/misc.h>
@@ -38,6 +35,7 @@
 #include "libaudgui-gtk.h"
 
 #define AUDGUI_STATUS_TIMEOUT 3000
+#define IMAGE_SIZE 150
 
 static GtkWidget * infowin = NULL;
 
@@ -65,15 +63,15 @@ enum
     RAWDATA_N_COLS
 };
 
-static gchar * current_file = NULL;
+static char * current_file = NULL;
 static PluginHandle * current_decoder = NULL;
-static gboolean can_write = FALSE, something_changed = FALSE;
+static bool_t can_write = FALSE, something_changed = FALSE;
 
 /* This is by no means intended to be a complete list.  If it is not short, it
  * is useless: scrolling through ten pages of dropdown list is more work than
  * typing out the genre. */
 
-static const gchar * genre_table[] = {
+static const char * genre_table[] = {
  N_("Acid Jazz"),
  N_("Acid Rock"),
  N_("Ambient"),
@@ -115,18 +113,20 @@ static const gchar * genre_table[] = {
  N_("Trip-hop")};
 
 static void set_entry_str_from_field (GtkWidget * widget, const Tuple * tuple,
- gint fieldn, gboolean editable)
+ int fieldn, bool_t editable)
 {
-    const gchar * text = tuple_get_string (tuple, fieldn, NULL);
+    char * text = tuple_get_str (tuple, fieldn, NULL);
 
     gtk_entry_set_text ((GtkEntry *) widget, text != NULL ? text : "");
     gtk_editable_set_editable ((GtkEditable *) widget, editable);
+
+    str_unref (text);
 }
 
 static void set_entry_int_from_field (GtkWidget * widget, const Tuple * tuple,
- gint fieldn, gboolean editable)
+ int fieldn, bool_t editable)
 {
-    gchar scratch[32];
+    char scratch[32];
 
     if (tuple_get_value_type (tuple, fieldn, NULL) == TUPLE_INT)
         snprintf (scratch, sizeof scratch, "%d", tuple_get_int (tuple, fieldn,
@@ -138,37 +138,39 @@ static void set_entry_int_from_field (GtkWidget * widget, const Tuple * tuple,
     gtk_editable_set_editable ((GtkEditable *) widget, editable);
 }
 
-static void set_field_str_from_entry (Tuple * tuple, gint fieldn, GtkWidget *
+static void set_field_str_from_entry (Tuple * tuple, int fieldn, GtkWidget *
  widget)
 {
-    const gchar * text = gtk_entry_get_text ((GtkEntry *) widget);
+    const char * text = gtk_entry_get_text ((GtkEntry *) widget);
 
     if (text[0])
-        tuple_associate_string (tuple, fieldn, NULL, text);
+        tuple_set_str (tuple, fieldn, NULL, text);
     else
-        tuple_disassociate (tuple, fieldn, NULL);
+        tuple_unset (tuple, fieldn, NULL);
 }
 
-static void set_field_int_from_entry (Tuple * tuple, gint fieldn, GtkWidget *
+static void set_field_int_from_entry (Tuple * tuple, int fieldn, GtkWidget *
  widget)
 {
-    const gchar * text = gtk_entry_get_text ((GtkEntry *) widget);
+    const char * text = gtk_entry_get_text ((GtkEntry *) widget);
 
     if (text[0])
-        tuple_associate_int (tuple, fieldn, NULL, atoi (text));
+        tuple_set_int (tuple, fieldn, NULL, atoi (text));
     else
-        tuple_disassociate (tuple, fieldn, NULL);
+        tuple_unset (tuple, fieldn, NULL);
 }
 
-static void infowin_label_set_text (GtkWidget * widget, const gchar * text)
+/* call str_unref() on <text> */
+static void infowin_label_set_text (GtkWidget * widget, char * text)
 {
-    gchar * tmp;
+    char * tmp;
 
-    if (text != NULL)
+    if (text)
     {
         tmp = g_strdup_printf("<span size=\"small\">%s</span>", text);
         gtk_label_set_text ((GtkLabel *) widget, tmp);
         g_free (tmp);
+        str_unref (text);
     }
     else
         gtk_label_set_text ((GtkLabel *) widget,
@@ -177,12 +179,12 @@ static void infowin_label_set_text (GtkWidget * widget, const gchar * text)
     gtk_label_set_use_markup ((GtkLabel *) widget, TRUE);
 }
 
-static void infowin_entry_set_image (GtkWidget * widget, gint list, gint entry)
+static void infowin_entry_set_image (GtkWidget * widget, int list, int entry)
 {
     GdkPixbuf * p = audgui_pixbuf_for_entry (list, entry);
     g_return_if_fail (p);
 
-    audgui_pixbuf_scale_within (& p, aud_cfg->filepopup_pixelsize);
+    audgui_pixbuf_scale_within (& p, IMAGE_SIZE);
     gtk_image_set_from_pixbuf ((GtkImage *) widget, p);
     g_object_unref ((GObject *) p);
 }
@@ -225,7 +227,7 @@ static void entry_changed (GtkEditable * editable, void * unused)
     }
 }
 
-static gboolean ministatus_timeout_proc (void * data)
+static bool_t ministatus_timeout_proc (void * data)
 {
     GtkLabel * status = data;
 
@@ -235,9 +237,9 @@ static gboolean ministatus_timeout_proc (void * data)
     return FALSE;
 }
 
-static void ministatus_display_message (const gchar * text)
+static void ministatus_display_message (const char * text)
 {
-    gchar * tmp = g_strdup_printf ("<span size=\"small\">%s</span>", text);
+    char * tmp = g_strdup_printf ("<span size=\"small\">%s</span>", text);
 
     gtk_label_set_text ((GtkLabel *) label_mini_status, tmp);
     gtk_label_set_use_markup ((GtkLabel *) label_mini_status, TRUE);
@@ -269,14 +271,14 @@ static void infowin_update_tuple (void * unused)
     else
         ministatus_display_message (_("Metadata updating failed"));
 
-    mowgli_object_unref (tuple);
+    tuple_unref (tuple);
 }
 
-gboolean genre_fill (GtkWidget * combo)
+bool_t genre_fill (GtkWidget * combo)
 {
     GList * list = NULL;
     GList * node;
-    gint i;
+    int i;
 
     for (i = 0; i < G_N_ELEMENTS (genre_table); i ++)
         list = g_list_prepend (list, _(genre_table[i]));
@@ -508,10 +510,10 @@ void create_infowin (void)
     gtk_widget_grab_focus (entry_title);
 }
 
-static void infowin_show (gint list, gint entry, const gchar * filename,
- const Tuple * tuple, PluginHandle * decoder, gboolean updating_enabled)
+static void infowin_show (int list, int entry, const char * filename,
+ const Tuple * tuple, PluginHandle * decoder, bool_t updating_enabled)
 {
-    gchar * tmp;
+    char * tmp;
 
     if (infowin == NULL)
         create_infowin ();
@@ -539,18 +541,12 @@ static void infowin_show (gint list, gint entry, const gchar * filename,
     set_entry_int_from_field (entry_track, tuple, FIELD_TRACK_NUMBER,
      updating_enabled);
 
-    infowin_label_set_text (label_format_name, tuple_get_string (tuple,
-     FIELD_CODEC, NULL));
-    infowin_label_set_text (label_quality, tuple_get_string (tuple,
-     FIELD_QUALITY, NULL));
+    infowin_label_set_text (label_format_name, tuple_get_str (tuple, FIELD_CODEC, NULL));
+    infowin_label_set_text (label_quality, tuple_get_str (tuple, FIELD_QUALITY, NULL));
 
     if (tuple_get_value_type (tuple, FIELD_BITRATE, NULL) == TUPLE_INT)
-    {
-        tmp = g_strdup_printf (_("%d kb/s"), tuple_get_int (tuple,
-         FIELD_BITRATE, NULL));
-        infowin_label_set_text (label_bitrate, tmp);
-        g_free (tmp);
-    }
+        infowin_label_set_text (label_bitrate, str_printf (_("%d kb/s"),
+         tuple_get_int (tuple, FIELD_BITRATE, NULL)));
     else
         infowin_label_set_text (label_bitrate, NULL);
 
@@ -559,38 +555,42 @@ static void infowin_show (gint list, gint entry, const gchar * filename,
     gtk_window_present ((GtkWindow *) infowin);
 }
 
-void audgui_infowin_show (gint playlist, gint entry)
+void audgui_infowin_show (int playlist, int entry)
 {
-    const gchar * filename = aud_playlist_entry_get_filename (playlist, entry);
+    char * filename = aud_playlist_entry_get_filename (playlist, entry);
     g_return_if_fail (filename != NULL);
 
     PluginHandle * decoder = aud_playlist_entry_get_decoder (playlist, entry,
      FALSE);
     if (decoder == NULL)
-        return;
+        goto FREE;
 
     if (aud_custom_infowin (filename, decoder))
-        return;
+        goto FREE;
 
-    const Tuple * tuple = aud_playlist_entry_get_tuple (playlist, entry, FALSE);
+    Tuple * tuple = aud_playlist_entry_get_tuple (playlist, entry, FALSE);
 
     if (tuple == NULL)
     {
-        gchar * message = g_strdup_printf (_("No info available for %s.\n"),
+        char * message = g_strdup_printf (_("No info available for %s.\n"),
          filename);
-        hook_call ("interface show error", message);
+        aud_interface_show_error (message);
         g_free (message);
-        return;
+        goto FREE;
     }
 
     infowin_show (playlist, entry, filename, tuple, decoder,
      aud_file_can_write_tuple (filename, decoder));
+    tuple_unref (tuple);
+
+FREE:
+    str_unref (filename);
 }
 
 void audgui_infowin_show_current (void)
 {
-    gint playlist = aud_playlist_get_playing ();
-    gint position;
+    int playlist = aud_playlist_get_playing ();
+    int position;
 
     if (playlist == -1)
         playlist = aud_playlist_get_active ();
diff --git a/src/libaudgui/init.c b/src/libaudgui/init.c
index ed0a277..6362c38 100644
--- a/src/libaudgui/init.c
+++ b/src/libaudgui/init.c
@@ -1,29 +1,70 @@
 /*
- * libaudgui/init.c
- * Copyright 2010 John Lindgren
+ * init.c
+ * Copyright 2010-2011 John Lindgren
  *
- * This file is part of Audacious.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
  *
- * Audacious is free software: you can redistribute it and/or modify it under
- * the terms of the GNU General Public License as published by the Free Software
- * Foundation, version 2 or version 3 of the License.
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions, and the following disclaimer.
  *
- * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ *    this list of conditions, and the following disclaimer in the documentation
+ *    provided with the distribution.
  *
- * You should have received a copy of the GNU General Public License along with
- * Audacious. If not, see <http://www.gnu.org/licenses/>.
- *
- * The Audacious team does not consider modular code linking to Audacious or
- * using our public API to be a derived work.
+ * This software is provided "as is" and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising from
+ * the use of this software.
  */
 
-#include <audacious/plugin.h>
+#include <audacious/misc.h>
+#include <audacious/playlist.h>
+#include <libaudcore/hook.h>
+
+#include "init.h"
+#include "libaudgui.h"
+#include "libaudgui-gtk.h"
+
+static const char * const audgui_defaults[] = {
+ "close_dialog_add", "FALSE",
+ "close_dialog_open", "TRUE",
+ "close_jtf_dialog", "TRUE",
+ "playlist_manager_close_on_activate", "FALSE",
+ "remember_jtf_entry", "TRUE",
+ NULL};
 
 AudAPITable * _aud_api_table = NULL;
 
+static void playlist_set_playing_cb (void * unused, void * unused2)
+{
+    audgui_pixbuf_uncache ();
+}
+
+static void playlist_position_cb (void * list, void * unused)
+{
+    if (GPOINTER_TO_INT (list) == aud_playlist_get_playing ())
+        audgui_pixbuf_uncache ();
+}
+
 void audgui_init (AudAPITable * table)
 {
     _aud_api_table = table;
+    aud_config_set_defaults ("audgui", audgui_defaults);
+
+    hook_associate ("playlist set playing", playlist_set_playing_cb, NULL);
+    hook_associate ("playlist position", playlist_position_cb, NULL);
+}
+
+void audgui_cleanup (void)
+{
+    hook_dissociate ("playlist set playing", playlist_set_playing_cb);
+    hook_dissociate ("playlist position", playlist_position_cb);
+
+    audgui_hide_equalizer_window ();
+    audgui_jump_to_track_hide ();
+    audgui_pixbuf_uncache ();
+    audgui_playlist_manager_cleanup ();
+    audgui_queue_manager_cleanup ();
+
+    _aud_api_table = NULL;
 }
diff --git a/src/libaudgui/init.h b/src/libaudgui/init.h
index 1fa0e4e..ac0c945 100644
--- a/src/libaudgui/init.h
+++ b/src/libaudgui/init.h
@@ -1,24 +1,33 @@
 /*
- * libaudgui/init.h
- * Copyright 2010 John Lindgren
+ * init.h
+ * Copyright 2010-2011 John Lindgren
  *
- * This file is part of Audacious.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
  *
- * Audacious is free software: you can redistribute it and/or modify it under
- * the terms of the GNU General Public License as published by the Free Software
- * Foundation, version 2 or version 3 of the License.
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions, and the following disclaimer.
  *
- * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ *    this list of conditions, and the following disclaimer in the documentation
+ *    provided with the distribution.
  *
- * You should have received a copy of the GNU General Public License along with
- * Audacious. If not, see <http://www.gnu.org/licenses/>.
- *
- * The Audacious team does not consider modular code linking to Audacious or
- * using our public API to be a derived work.
+ * This software is provided "as is" and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising from
+ * the use of this software.
  */
 
 #include <audacious/plugin.h>
 
+/* init.c */
 void audgui_init (AudAPITable * table);
+void audgui_cleanup (void);
+
+/* queue-manager.c */
+void audgui_queue_manager_cleanup (void);
+
+/* ui_playlist_manager.c */
+void audgui_playlist_manager_cleanup (void);
+
+/* util.c */
+void audgui_pixbuf_uncache (void);
diff --git a/src/libaudgui/jump-to-time.c b/src/libaudgui/jump-to-time.c
new file mode 100644
index 0000000..8a95b42
--- /dev/null
+++ b/src/libaudgui/jump-to-time.c
@@ -0,0 +1,113 @@
+/*
+ * jump-to-time.c
+ * Copyright 1998-2003 XMMS development team
+ * Copyright 2003-2004 BMP development team
+ * Copyright 2011 John Lindgren
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; under version 2 or version 3 of the License.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses>.
+ *
+ * The Audacious team does not consider modular code linking to
+ * Audacious or using our public API to be a derived work.
+ */
+
+#include <stdio.h>
+#include <gtk/gtk.h>
+
+#include <audacious/drct.h>
+#include <audacious/gtk-compat.h>
+#include <audacious/i18n.h>
+
+#include "config.h"
+#include "libaudgui.h"
+#include "libaudgui-gtk.h"
+
+static GtkWidget * window = NULL;
+
+static void jump_to_time_cb (GtkWidget * widget, GtkWidget * entry)
+{
+    unsigned int min = 0, sec = 0;
+    int params = sscanf (gtk_entry_get_text ((GtkEntry *) entry), "%u:%u", & min,
+     & sec);
+
+    int time;
+    if (params == 2)
+        time = 60 * min + sec;
+    else if (params == 1)
+        time = min;
+    else
+        return;
+
+    if (aud_drct_get_playing ())
+        aud_drct_seek (1000 * time);
+
+    if (window)
+        gtk_widget_destroy (window);
+}
+
+void audgui_jump_to_time (void)
+{
+    if (! aud_drct_get_playing ())
+        return;
+
+    if (window)
+    {
+        gtk_window_present ((GtkWindow *) window);
+        return;
+    }
+
+    window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+    g_signal_connect (window, "destroy", (GCallback) gtk_widget_destroyed,
+     & window);
+    gtk_window_set_type_hint ((GtkWindow *) window, GDK_WINDOW_TYPE_HINT_DIALOG);
+    gtk_window_set_title ((GtkWindow *) window, _("Jump to Time"));
+    gtk_window_set_resizable ((GtkWindow *) window, FALSE);
+    gtk_container_set_border_width ((GtkContainer *) window, 6);
+    audgui_destroy_on_escape (window);
+
+    GtkWidget * vbox = gtk_vbox_new (FALSE, 6);
+    gtk_container_add ((GtkContainer *) window, vbox);
+
+    GtkWidget * hbox_new = gtk_hbox_new (FALSE, 6);
+    gtk_box_pack_start ((GtkBox *) vbox, hbox_new, FALSE, FALSE, 0);
+
+    GtkWidget * time_entry = gtk_entry_new ();
+    gtk_entry_set_activates_default ((GtkEntry *) time_entry, TRUE);
+    gtk_box_pack_start ((GtkBox *) hbox_new, time_entry, FALSE, FALSE, 0);
+
+    GtkWidget * label = gtk_label_new (_("mm:ss"));
+    gtk_box_pack_start ((GtkBox *) hbox_new, label, FALSE, FALSE, 0);
+
+    GtkWidget * bbox = gtk_hbutton_box_new ();
+    gtk_box_pack_start ((GtkBox *) vbox, bbox, TRUE, TRUE, 0);
+    gtk_button_box_set_layout ((GtkButtonBox *) bbox, GTK_BUTTONBOX_END);
+    gtk_box_set_spacing ((GtkBox *) bbox, 6);
+
+    GtkWidget * cancel = gtk_button_new_from_stock (GTK_STOCK_CANCEL);
+    gtk_container_add ((GtkContainer *) bbox, cancel);
+    g_signal_connect_swapped (cancel, "clicked", (GCallback) gtk_widget_destroy,
+     window);
+
+    GtkWidget * jump = gtk_button_new_from_stock (GTK_STOCK_JUMP_TO);
+    gtk_widget_set_can_default (jump, TRUE);
+    gtk_container_add ((GtkContainer *) bbox, jump);
+    g_signal_connect (jump, "clicked", (GCallback) jump_to_time_cb, time_entry);
+
+    unsigned int tindex = aud_drct_get_time () / 1000;
+    char time_str[10];
+    snprintf (time_str, sizeof time_str, "%u:%2.2u", tindex / 60, tindex % 60);
+    gtk_entry_set_text ((GtkEntry *) time_entry, time_str);
+    gtk_editable_select_region ((GtkEditable *) time_entry, 0, -1);
+
+    gtk_widget_show_all (window);
+    gtk_widget_grab_default (jump);
+}
diff --git a/src/libaudgui/libaudgui-gtk.h b/src/libaudgui/libaudgui-gtk.h
index f093851..c54fd36 100644
--- a/src/libaudgui/libaudgui-gtk.h
+++ b/src/libaudgui/libaudgui-gtk.h
@@ -1,50 +1,47 @@
 /*
  * libaudgui-gtk.h
- * Copyright 2010 Audacious Development Team
+ * Copyright 2010-2011 John Lindgren
  *
- * This file is part of Audacious.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
  *
- * Audacious is free software: you can redistribute it and/or modify it under
- * the terms of the GNU General Public License as published by the Free Software
- * Foundation, version 2 or version 3 of the License.
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions, and the following disclaimer.
  *
- * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ *    this list of conditions, and the following disclaimer in the documentation
+ *    provided with the distribution.
  *
- * You should have received a copy of the GNU General Public License along with
- * Audacious. If not, see <http://www.gnu.org/licenses/>.
- *
- * The Audacious team does not consider modular code linking to Audacious or
- * using our public API to be a derived work.
+ * This software is provided "as is" and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising from
+ * the use of this software.
  */
 
 #ifndef LIBAUDGUI_GTK_H
 #define LIBAUDGUI_GTK_H
 
+#include <stdint.h>
 #include <gtk/gtk.h>
+#include <libaudcore/core.h>
 
 /* effects-menu.c */
 GtkWidget * audgui_create_effects_menu (void);
+GtkWidget * audgui_create_vis_menu (void);
 
 /* iface-menu.c */
 GtkWidget * audgui_create_iface_menu (void);
 
-void audgui_playlist_manager_update(void);
-void audgui_playlist_manager_ui_show(GtkWidget *mainwin);
-void audgui_playlist_manager_destroy(void);
-
 /* util.c */
 void audgui_hide_on_delete (GtkWidget * widget);
 void audgui_hide_on_escape (GtkWidget * widget);
 void audgui_destroy_on_escape (GtkWidget * widget);
 void audgui_simple_message (GtkWidget * * widget, GtkMessageType type,
- const gchar * title, const gchar * text);
-void audgui_connect_check_box (GtkWidget * box, gboolean * setting);
+ const char * title, const char * text);
+void audgui_connect_check_box (GtkWidget * box, bool_t * setting);
 
-GdkPixbuf * audgui_pixbuf_from_data (void * data, gint size);
-GdkPixbuf * audgui_pixbuf_for_entry (gint playlist, gint entry);
+GdkPixbuf * audgui_pixbuf_from_data (const void * data, int64_t size);
+GdkPixbuf * audgui_pixbuf_for_entry (int playlist, int entry);
 GdkPixbuf * audgui_pixbuf_for_current (void);
-void audgui_pixbuf_scale_within (GdkPixbuf * * pixbuf, gint size);
+void audgui_pixbuf_scale_within (GdkPixbuf * * pixbuf, int size);
 
 #endif
diff --git a/src/libaudgui/libaudgui.h b/src/libaudgui/libaudgui.h
index d96c933..3f4aebc 100644
--- a/src/libaudgui/libaudgui.h
+++ b/src/libaudgui/libaudgui.h
@@ -1,26 +1,27 @@
-/*  Audacious - Cross-platform multimedia player
- *  Copyright (C) 2005-2010  Audacious development team.
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; under version 3 of the License.
+/*
+ * libaudgui.h
+ * Copyright 2007-2009 Giacomo Lozito and Tomasz Moń
+
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; under version 3 of the License.
  *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
  *
- *  You should have received a copy of the GNU General Public License
- *  along with this program.  If not, see <http://www.gnu.org/licenses>.
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses>.
  *
- *  The Audacious team does not consider modular code linking to
- *  Audacious or using our public API to be a derived work.
+ * The Audacious team does not consider modular code linking to
+ * Audacious or using our public API to be a derived work.
  */
 
 #ifndef LIBAUDGUI_H
 #define LIBAUDGUI_H
 
-#include <glib.h>
+#include <libaudcore/core.h>
 
 /* macro defines for Audacious stock icons */
 #define AUD_STOCK_PLAYLIST    "aud-playlist"
@@ -30,39 +31,53 @@
 
 void audgui_register_stock_icons(void);
 
-void audgui_show_add_url_window(gboolean open);
+void audgui_show_add_url_window(bool_t open);
 
 void audgui_jump_to_track(void);
 void audgui_jump_to_track_hide(void);
 
-void audgui_set_default_icon(void);
-
-void audgui_run_filebrowser(gboolean clear_pl_on_ok);
+void audgui_run_filebrowser(bool_t clear_pl_on_ok);
 void audgui_hide_filebrowser(void);
 
-void audgui_show_about_window(void);
-void audgui_hide_about_window(void);
+/* about.c */
+void audgui_show_about_window (void);
 
 /* confirm.c */
-void audgui_confirm_playlist_delete (gint playlist);
-void audgui_show_playlist_rename (gint playlist);
+void audgui_confirm_playlist_delete (int playlist);
+void audgui_show_playlist_rename (int playlist);
 
 /* equalizer.c */
 void audgui_show_equalizer_window (void);
 void audgui_hide_equalizer_window (void);
 
 /* infopopup.c */
-void audgui_infopopup_show (gint playlist, gint entry);
+void audgui_infopopup_show (int playlist, int entry);
 void audgui_infopopup_show_current (void);
 void audgui_infopopup_hide (void);
 
 /* infowin.c */
-void audgui_infowin_show (gint playlist, gint entry);
+void audgui_infowin_show (int playlist, int entry);
 void audgui_infowin_show_current (void);
 
+/* jump-to-time.c */
+void audgui_jump_to_time (void);
+
+/* playlists.c */
+void audgui_import_playlist (void);
+void audgui_export_playlist (void);
+
+/* queue-manager.c */
+void audgui_queue_manager_show (void);
+
+/* ui_playlist_manager.c */
+void audgui_playlist_manager (void);
+
 /* urilist.c */
-void audgui_urilist_open (const gchar * list);
-void audgui_urilist_insert (gint playlist, gint position, const gchar * list);
-gchar * audgui_urilist_create_from_selected (gint playlist);
+void audgui_urilist_open (const char * list);
+void audgui_urilist_insert (int playlist, int position, const char * list);
+char * audgui_urilist_create_from_selected (int playlist);
+
+/* util.c */
+void audgui_set_default_icon (void);
 
 #endif /* LIBAUDGUI_H */
diff --git a/src/libaudgui/list.c b/src/libaudgui/list.c
old mode 100755
new mode 100644
index 7a39cde..034056d
--- a/src/libaudgui/list.c
+++ b/src/libaudgui/list.c
@@ -2,27 +2,28 @@
  * list.c
  * Copyright 2011 John Lindgren
  *
- * This file is part of Audacious.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
  *
- * Audacious is free software: you can redistribute it and/or modify it under
- * the terms of the GNU General Public License as published by the Free Software
- * Foundation, version 2 or version 3 of the License.
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions, and the following disclaimer.
  *
- * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ *    this list of conditions, and the following disclaimer in the documentation
+ *    provided with the distribution.
  *
- * You should have received a copy of the GNU General Public License along with
- * Audacious. If not, see <http://www.gnu.org/licenses/>.
- *
- * The Audacious team does not consider modular code linking to Audacious or
- * using our public API to be a derived work.
+ * This software is provided "as is" and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising from
+ * the use of this software.
  */
 
 #include "list.h"
 
 #include <audacious/gtk-compat.h>
 
+#define CHAR_WIDTH 12
+#define SPACING 4
+
 enum {HIGHLIGHT_COLUMN, RESERVED_COLUMNS};
 
 #define PATH_IS_SELECTED(w, p) (gtk_tree_selection_path_is_selected \
@@ -32,13 +33,13 @@ typedef struct {
     GObject parent;
     const AudguiListCallbacks * cbs;
     void * user;
-    gint rows, highlight;
-    gint columns;
+    int rows, highlight;
+    int columns;
     GList * column_types;
-    gboolean frozen, blocked;
-    gboolean dragging;
-    gboolean clicked_row, receive_row;
-    gint scroll_source, scroll_speed;
+    bool_t frozen, blocked;
+    bool_t dragging;
+    bool_t clicked_row, receive_row;
+    int scroll_source, scroll_speed;
 } ListModel;
 
 /* ==== MODEL ==== */
@@ -48,12 +49,12 @@ static GtkTreeModelFlags list_model_get_flags (GtkTreeModel * model)
     return GTK_TREE_MODEL_LIST_ONLY;
 }
 
-static gint list_model_get_n_columns (GtkTreeModel * model)
+static int list_model_get_n_columns (GtkTreeModel * model)
 {
     return ((ListModel *) model)->columns;
 }
 
-static GType list_model_get_column_type (GtkTreeModel * _model, gint column)
+static GType list_model_get_column_type (GtkTreeModel * _model, int column)
 {
     ListModel * model = (ListModel *) _model;
     g_return_val_if_fail (column >= 0 && column < model->columns, G_TYPE_INVALID);
@@ -65,10 +66,10 @@ static GType list_model_get_column_type (GtkTreeModel * _model, gint column)
      RESERVED_COLUMNS));
 }
 
-static gboolean list_model_get_iter (GtkTreeModel * model, GtkTreeIter * iter,
+static bool_t list_model_get_iter (GtkTreeModel * model, GtkTreeIter * iter,
  GtkTreePath * path)
 {
-    gint row = gtk_tree_path_get_indices (path)[0];
+    int row = gtk_tree_path_get_indices (path)[0];
     if (row < 0 || row >= ((ListModel *) model)->rows)
         return FALSE;
     iter->user_data = GINT_TO_POINTER (row);
@@ -78,16 +79,16 @@ static gboolean list_model_get_iter (GtkTreeModel * model, GtkTreeIter * iter,
 static GtkTreePath * list_model_get_path (GtkTreeModel * model,
  GtkTreeIter * iter)
 {
-    gint row = GPOINTER_TO_INT (iter->user_data);
+    int row = GPOINTER_TO_INT (iter->user_data);
     g_return_val_if_fail (row >= 0 && row < ((ListModel *) model)->rows, NULL);
     return gtk_tree_path_new_from_indices (row, -1);
 }
 
 static void list_model_get_value (GtkTreeModel * _model, GtkTreeIter * iter,
- gint column, GValue * value)
+ int column, GValue * value)
 {
     ListModel * model = (ListModel *) _model;
-    gint row = GPOINTER_TO_INT (iter->user_data);
+    int row = GPOINTER_TO_INT (iter->user_data);
     g_return_if_fail (column >= 0 && column < model->columns);
     g_return_if_fail (row >= 0 && row < model->rows);
 
@@ -104,10 +105,10 @@ static void list_model_get_value (GtkTreeModel * _model, GtkTreeIter * iter,
     model->cbs->get_value (model->user, row, column - RESERVED_COLUMNS, value);
 }
 
-static gboolean list_model_iter_next (GtkTreeModel * _model, GtkTreeIter * iter)
+static bool_t list_model_iter_next (GtkTreeModel * _model, GtkTreeIter * iter)
 {
     ListModel * model = (ListModel *) _model;
-    gint row = GPOINTER_TO_INT (iter->user_data);
+    int row = GPOINTER_TO_INT (iter->user_data);
     g_return_val_if_fail (row >= 0 && row < model->rows, FALSE);
     if (row + 1 >= model->rows)
         return FALSE;
@@ -115,7 +116,7 @@ static gboolean list_model_iter_next (GtkTreeModel * _model, GtkTreeIter * iter)
     return TRUE;
 }
 
-static gboolean list_model_iter_children (GtkTreeModel * model,
+static bool_t list_model_iter_children (GtkTreeModel * model,
  GtkTreeIter * iter, GtkTreeIter * parent)
 {
     if (parent || ((ListModel *) model)->rows < 1)
@@ -124,19 +125,19 @@ static gboolean list_model_iter_children (GtkTreeModel * model,
     return TRUE;
 }
 
-static gboolean list_model_iter_has_child (GtkTreeModel * model,
+static bool_t list_model_iter_has_child (GtkTreeModel * model,
  GtkTreeIter * iter)
 {
     return FALSE;
 }
 
-static gint list_model_iter_n_children (GtkTreeModel * model, GtkTreeIter * iter)
+static int list_model_iter_n_children (GtkTreeModel * model, GtkTreeIter * iter)
 {
     return iter ? 0 : ((ListModel *) model)->rows;
 }
 
-static gboolean list_model_iter_nth_child (GtkTreeModel * model,
- GtkTreeIter * iter, GtkTreeIter * parent, gint n)
+static bool_t list_model_iter_nth_child (GtkTreeModel * model,
+ GtkTreeIter * iter, GtkTreeIter * parent, int n)
 {
     if (parent || n < 0 || n >= ((ListModel *) model)->rows)
         return FALSE;
@@ -144,7 +145,7 @@ static gboolean list_model_iter_nth_child (GtkTreeModel * model,
     return TRUE;
 }
 
-static gboolean list_model_iter_parent (GtkTreeModel * model,
+static bool_t list_model_iter_parent (GtkTreeModel * model,
  GtkTreeIter * iter, GtkTreeIter * child)
 {
     return FALSE;
@@ -187,8 +188,8 @@ static GType list_model_get_type (void)
 
 /* ==== CALLBACKS ==== */
 
-static gboolean select_allow_cb (GtkTreeSelection * sel, GtkTreeModel * model,
- GtkTreePath * path, gboolean was, void * user)
+static bool_t select_allow_cb (GtkTreeSelection * sel, GtkTreeModel * model,
+ GtkTreePath * path, bool_t was, void * user)
 {
     return ! ((ListModel *) model)->frozen;
 }
@@ -197,7 +198,7 @@ static void select_row_cb (GtkTreeModel * _model, GtkTreePath * path,
  GtkTreeIter * iter, void * user)
 {
     ListModel * model = (ListModel *) _model;
-    gint row = gtk_tree_path_get_indices (path)[0];
+    int row = gtk_tree_path_get_indices (path)[0];
     g_return_if_fail (row >= 0 && row < model->rows);
     model->cbs->set_selected (model->user, row, TRUE);
 }
@@ -213,12 +214,12 @@ static void select_cb (GtkTreeSelection * sel, ListModel * model)
 static void activate_cb (GtkTreeView * tree, GtkTreePath * path,
  GtkTreeViewColumn * col, ListModel * model)
 {
-    gint row = gtk_tree_path_get_indices (path)[0];
+    int row = gtk_tree_path_get_indices (path)[0];
     g_return_if_fail (row >= 0 && row < model->rows);
     model->cbs->activate_row (model->user, row);
 }
 
-static gboolean button_press_cb (GtkWidget * widget, GdkEventButton * event,
+static bool_t button_press_cb (GtkWidget * widget, GdkEventButton * event,
  ListModel * model)
 {
     GtkTreePath * path = NULL;
@@ -264,7 +265,7 @@ static gboolean button_press_cb (GtkWidget * widget, GdkEventButton * event,
     return FALSE;
 }
 
-static gboolean button_release_cb (GtkWidget * widget, GdkEventButton * event,
+static bool_t button_release_cb (GtkWidget * widget, GdkEventButton * event,
  ListModel * model)
 {
     /* If button_press_cb set "frozen", and we were not dragging, we need to
@@ -282,6 +283,15 @@ static gboolean button_release_cb (GtkWidget * widget, GdkEventButton * event,
     return FALSE;
 }
 
+static bool_t key_press_cb (GtkWidget * widget, GdkEventKey * event, ListModel * model)
+{
+    /* GTK thinks the spacebar should activate a row; I (jlindgren) disagree */
+    if (event->keyval == ' ' && ! (event->state & GDK_CONTROL_MASK))
+        return TRUE;
+
+    return FALSE;
+}
+
 /* ==== DRAG AND DROP ==== */
 
 static void drag_begin (GtkWidget * widget, GdkDragContext * context,
@@ -302,21 +312,21 @@ static void drag_end (GtkWidget * widget, GdkDragContext * context,
 }
 
 static void drag_data_get (GtkWidget * widget, GdkDragContext * context,
- GtkSelectionData * sel, guint info, guint time, ListModel * model)
+ GtkSelectionData * sel, unsigned int info, unsigned int time, ListModel * model)
 {
     g_signal_stop_emission_by_name (widget, "drag-data-get");
 
     void * data = NULL;
-    gint length = 0;
+    int length = 0;
     model->cbs->get_data (model->user, & data, & length);
     gtk_selection_data_set (sel, gdk_atom_intern (model->cbs->data_type, FALSE),
      8, data, length);
     g_free (data);
 }
 
-static gint calc_drop_row (ListModel * model, GtkWidget * widget, gint x, gint y)
+static int calc_drop_row (ListModel * model, GtkWidget * widget, int x, int y)
 {
-    gint row = audgui_list_row_at_point (widget, x, y);
+    int row = audgui_list_row_at_point (widget, x, y);
     if (row < 0)
         row = model->rows;
     return row;
@@ -332,7 +342,7 @@ static void stop_autoscroll (ListModel * model)
     model->scroll_speed = 0;
 }
 
-static gboolean autoscroll (GtkWidget * widget)
+static bool_t autoscroll (GtkWidget * widget)
 {
     ListModel * model = (ListModel *) gtk_tree_view_get_model
      ((GtkTreeView *) widget);
@@ -341,8 +351,8 @@ static gboolean autoscroll (GtkWidget * widget)
     if (! adj)
         return FALSE;
 
-    gint new = gtk_adjustment_get_value (adj) + model->scroll_speed;
-    gint clamped = CLAMP (new, 0, gtk_adjustment_get_upper (adj) -
+    int new = gtk_adjustment_get_value (adj) + model->scroll_speed;
+    int clamped = CLAMP (new, 0, gtk_adjustment_get_upper (adj) -
      gtk_adjustment_get_page_size (adj));
     gtk_adjustment_set_value (adj, clamped);
 
@@ -357,7 +367,7 @@ static gboolean autoscroll (GtkWidget * widget)
     return TRUE;
 }
 
-static void start_autoscroll (ListModel * model, GtkWidget * widget, gint speed)
+static void start_autoscroll (ListModel * model, GtkWidget * widget, int speed)
 {
     if (model->scroll_source)
         return;
@@ -366,8 +376,8 @@ static void start_autoscroll (ListModel * model, GtkWidget * widget, gint speed)
     model->scroll_speed = speed;
 }
 
-static gboolean drag_motion (GtkWidget * widget, GdkDragContext * context,
- gint x, gint y, guint time, ListModel * model)
+static bool_t drag_motion (GtkWidget * widget, GdkDragContext * context,
+ int x, int y, unsigned int time, ListModel * model)
 {
     g_signal_stop_emission_by_name (widget, "drag-motion");
 
@@ -384,7 +394,7 @@ static gboolean drag_motion (GtkWidget * widget, GdkDragContext * context,
 
     if (model->rows > 0)
     {
-        gint row = calc_drop_row (model, widget, x, y);
+        int row = calc_drop_row (model, widget, x, y);
         if (row == model->rows)
         {
             GtkTreePath * path = gtk_tree_path_new_from_indices (row - 1, -1);
@@ -401,7 +411,7 @@ static gboolean drag_motion (GtkWidget * widget, GdkDragContext * context,
         }
     }
 
-    gint height;
+    int height;
     gdk_window_get_geometry (gtk_tree_view_get_bin_window ((GtkTreeView *)
      widget), NULL, NULL, NULL, & height);
     gtk_tree_view_convert_widget_to_bin_window_coords ((GtkTreeView *) widget,
@@ -418,7 +428,7 @@ static gboolean drag_motion (GtkWidget * widget, GdkDragContext * context,
 }
 
 static void drag_leave (GtkWidget * widget, GdkDragContext * context,
- guint time, ListModel * model)
+ unsigned int time, ListModel * model)
 {
     g_signal_stop_emission_by_name (widget, "drag-leave");
 
@@ -426,13 +436,13 @@ static void drag_leave (GtkWidget * widget, GdkDragContext * context,
     stop_autoscroll (model);
 }
 
-static gboolean drag_drop (GtkWidget * widget, GdkDragContext * context, gint x,
- gint y, guint time, ListModel * model)
+static bool_t drag_drop (GtkWidget * widget, GdkDragContext * context, int x,
+ int y, unsigned int time, ListModel * model)
 {
     g_signal_stop_emission_by_name (widget, "drag-drop");
 
-    gboolean success = TRUE;
-    gint row = calc_drop_row (model, widget, x, y);
+    bool_t success = TRUE;
+    int row = calc_drop_row (model, widget, x, y);
 
     if (model->dragging && model->cbs->shift_rows) /* dragging within same list */
     {
@@ -456,16 +466,16 @@ static gboolean drag_drop (GtkWidget * widget, GdkDragContext * context, gint x,
     return TRUE;
 }
 
-static void drag_data_received (GtkWidget * widget, GdkDragContext * context, gint x,
- gint y, GtkSelectionData * sel, guint info, guint time, ListModel * model)
+static void drag_data_received (GtkWidget * widget, GdkDragContext * context, int x,
+ int y, GtkSelectionData * sel, unsigned int info, unsigned int time, ListModel * model)
 {
     g_signal_stop_emission_by_name (widget, "drag-data-received");
 
     g_return_if_fail (model->receive_row >= 0 && model->receive_row <=
      model->rows);
 
-    const guchar * data = gtk_selection_data_get_data (sel);
-    gint length = gtk_selection_data_get_length (sel);
+    const unsigned char * data = gtk_selection_data_get_data (sel);
+    int length = gtk_selection_data_get_length (sel);
 
     if (data && length)
         model->cbs->receive_data (model->user, model->receive_row, data, length);
@@ -481,13 +491,13 @@ static void destroy_cb (ListModel * model)
     g_object_unref (model);
 }
 
-static void update_selection (GtkWidget * list, ListModel * model, gint at,
- gint rows)
+static void update_selection (GtkWidget * list, ListModel * model, int at,
+ int rows)
 {
     model->blocked = TRUE;
     GtkTreeSelection * sel = gtk_tree_view_get_selection ((GtkTreeView *) list);
 
-    for (gint i = at; i < at + rows; i ++)
+    for (int i = at; i < at + rows; i ++)
     {
         GtkTreeIter iter = {.user_data = GINT_TO_POINTER (i)};
         if (model->cbs->get_selected (model->user, i))
@@ -500,7 +510,7 @@ static void update_selection (GtkWidget * list, ListModel * model, gint at,
 }
 
 GtkWidget * audgui_list_new (const AudguiListCallbacks * cbs, void * user,
- gint rows)
+ int rows)
 {
     g_return_val_if_fail (cbs->get_value, NULL);
     if (cbs->get_selected)
@@ -524,6 +534,7 @@ GtkWidget * audgui_list_new (const AudguiListCallbacks * cbs, void * user,
     model->scroll_speed = 0;
 
     GtkWidget * list = gtk_tree_view_new_with_model ((GtkTreeModel *) model);
+    gtk_tree_view_set_fixed_height_mode ((GtkTreeView *) list, TRUE);
     g_signal_connect_swapped (list, "destroy", (GCallback) destroy_cb, model);
 
     if (cbs->get_selected)
@@ -540,14 +551,13 @@ GtkWidget * audgui_list_new (const AudguiListCallbacks * cbs, void * user,
     if (cbs->activate_row)
         g_signal_connect (list, "row-activated", (GCallback) activate_cb, model);
 
-    g_signal_connect (list, "button-press-event", (GCallback) button_press_cb,
-     model);
-    g_signal_connect (list, "button-release-event", (GCallback)
-     button_release_cb, model);
+    g_signal_connect (list, "button-press-event", (GCallback) button_press_cb, model);
+    g_signal_connect (list, "button-release-event", (GCallback) button_release_cb, model);
+    g_signal_connect (list, "key-press-event", (GCallback) key_press_cb, model);
 
     if (cbs->data_type)
     {
-        const GtkTargetEntry target = {(gchar *) cbs->data_type, 0, 0};
+        const GtkTargetEntry target = {(char *) cbs->data_type, 0, 0};
 
         gtk_drag_source_set (list, GDK_BUTTON1_MASK, & target, 1,
          GDK_ACTION_COPY);
@@ -583,8 +593,8 @@ void * audgui_list_get_user (GtkWidget * list)
     return model->user;
 }
 
-void audgui_list_add_column (GtkWidget * list, const gchar * title,
- gint column, GType type, gboolean expand)
+void audgui_list_add_column (GtkWidget * list, const char * title,
+ int column, GType type, int width)
 {
     ListModel * model = (ListModel *) gtk_tree_view_get_model
      ((GtkTreeView *) list);
@@ -598,30 +608,30 @@ void audgui_list_add_column (GtkWidget * list, const gchar * title,
     GtkTreeViewColumn * tree_column = gtk_tree_view_column_new_with_attributes
      (title, renderer, "text", RESERVED_COLUMNS + column, "weight",
      HIGHLIGHT_COLUMN, NULL);
+    gtk_tree_view_column_set_sizing (tree_column, GTK_TREE_VIEW_COLUMN_FIXED);
 
-    if (expand)
+    if (width < 1)
     {
-        gtk_tree_view_column_set_resizable (tree_column, TRUE);
+        gtk_tree_view_column_set_fixed_width (tree_column, 6 * CHAR_WIDTH + SPACING);
         gtk_tree_view_column_set_expand (tree_column, TRUE);
         g_object_set ((GObject *) renderer, "ellipsize-set", TRUE, "ellipsize",
          PANGO_ELLIPSIZE_END, NULL);
     }
     else
     {
-        gtk_tree_view_column_set_sizing (tree_column,
-         GTK_TREE_VIEW_COLUMN_GROW_ONLY);
-        g_object_set ((GObject *) renderer, "xalign", (gfloat) 1, NULL);
+        gtk_tree_view_column_set_fixed_width (tree_column, width * CHAR_WIDTH + SPACING);
+        g_object_set ((GObject *) renderer, "xalign", (float) 1, NULL);
     }
 
     gtk_tree_view_append_column ((GtkTreeView *) list, tree_column);
 }
 
-gint audgui_list_row_count (GtkWidget * list)
+int audgui_list_row_count (GtkWidget * list)
 {
     return ((ListModel *) gtk_tree_view_get_model ((GtkTreeView *) list))->rows;
 }
 
-void audgui_list_insert_rows (GtkWidget * list, gint at, gint rows)
+void audgui_list_insert_rows (GtkWidget * list, int at, int rows)
 {
     ListModel * model = (ListModel *) gtk_tree_view_get_model
      ((GtkTreeView *) list);
@@ -634,15 +644,16 @@ void audgui_list_insert_rows (GtkWidget * list, gint at, gint rows)
     GtkTreeIter iter = {.user_data = GINT_TO_POINTER (at)};
     GtkTreePath * path = gtk_tree_path_new_from_indices (at, -1);
 
-    for (gint i = rows; i --; )
+    for (int i = rows; i --; )
         gtk_tree_model_row_inserted ((GtkTreeModel *) model, path, & iter);
 
     gtk_tree_path_free (path);
 
-    update_selection (list, model, at, rows);
+    if (model->cbs->get_selected)
+        update_selection (list, model, at, rows);
 }
 
-void audgui_list_update_rows (GtkWidget * list, gint at, gint rows)
+void audgui_list_update_rows (GtkWidget * list, int at, int rows)
 {
     ListModel * model = (ListModel *) gtk_tree_view_get_model
      ((GtkTreeView *) list);
@@ -661,7 +672,7 @@ void audgui_list_update_rows (GtkWidget * list, gint at, gint rows)
     gtk_tree_path_free (path);
 }
 
-void audgui_list_delete_rows (GtkWidget * list, gint at, gint rows)
+void audgui_list_delete_rows (GtkWidget * list, int at, int rows)
 {
     ListModel * model = (ListModel *) gtk_tree_view_get_model
      ((GtkTreeView *) list);
@@ -683,7 +694,7 @@ void audgui_list_delete_rows (GtkWidget * list, gint at, gint rows)
     model->blocked = FALSE;
 }
 
-void audgui_list_update_selection (GtkWidget * list, gint at, gint rows)
+void audgui_list_update_selection (GtkWidget * list, int at, int rows)
 {
     ListModel * model = (ListModel *) gtk_tree_view_get_model
      ((GtkTreeView *) list);
@@ -692,13 +703,20 @@ void audgui_list_update_selection (GtkWidget * list, gint at, gint rows)
     update_selection (list, model, at, rows);
 }
 
-void audgui_list_set_highlight (GtkWidget * list, gint row)
+int audgui_list_get_highlight (GtkWidget * list)
+{
+    ListModel * model = (ListModel *) gtk_tree_view_get_model
+     ((GtkTreeView *) list);
+    return model->highlight;
+}
+
+void audgui_list_set_highlight (GtkWidget * list, int row)
 {
     ListModel * model = (ListModel *) gtk_tree_view_get_model
      ((GtkTreeView *) list);
     g_return_if_fail (row >= -1 && row < model->rows);
 
-    gint old = model->highlight;
+    int old = model->highlight;
     if (row == old)
         return;
     model->highlight = row;
@@ -709,7 +727,21 @@ void audgui_list_set_highlight (GtkWidget * list, gint row)
         audgui_list_update_rows (list, row, 1);
 }
 
-void audgui_list_set_focus (GtkWidget * list, gint row)
+int audgui_list_get_focus (GtkWidget * list)
+{
+    GtkTreePath * path = NULL;
+    gtk_tree_view_get_cursor ((GtkTreeView *) list, & path, NULL);
+
+    if (! path)
+        return -1;
+
+    int row = gtk_tree_path_get_indices (path)[0];
+
+    gtk_tree_path_free (path);
+    return row;
+}
+
+void audgui_list_set_focus (GtkWidget * list, int row)
 {
     ListModel * model = (ListModel *) gtk_tree_view_get_model
      ((GtkTreeView *) list);
@@ -730,7 +762,7 @@ void audgui_list_set_focus (GtkWidget * list, gint row)
     model->frozen = FALSE;
 }
 
-gint audgui_list_row_at_point (GtkWidget * list, gint x, gint y)
+int audgui_list_row_at_point (GtkWidget * list, int x, int y)
 {
     ListModel * model = (ListModel *) gtk_tree_view_get_model ((GtkTreeView *)
      list);
@@ -744,7 +776,7 @@ gint audgui_list_row_at_point (GtkWidget * list, gint x, gint y)
     if (! path)
         return -1;
 
-    gint row = gtk_tree_path_get_indices (path)[0];
+    int row = gtk_tree_path_get_indices (path)[0];
     g_return_val_if_fail (row >= 0 && row < model->rows, -1);
 
     GdkRectangle rect;
diff --git a/src/libaudgui/list.h b/src/libaudgui/list.h
index 0eb1cef..4f92d6a 100644
--- a/src/libaudgui/list.h
+++ b/src/libaudgui/list.h
@@ -2,60 +2,63 @@
  * list.h
  * Copyright 2011 John Lindgren
  *
- * This file is part of Audacious.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
  *
- * Audacious is free software: you can redistribute it and/or modify it under
- * the terms of the GNU General Public License as published by the Free Software
- * Foundation, version 2 or version 3 of the License.
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions, and the following disclaimer.
  *
- * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ *    this list of conditions, and the following disclaimer in the documentation
+ *    provided with the distribution.
  *
- * You should have received a copy of the GNU General Public License along with
- * Audacious. If not, see <http://www.gnu.org/licenses/>.
- *
- * The Audacious team does not consider modular code linking to Audacious or
- * using our public API to be a derived work.
+ * This software is provided "as is" and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising from
+ * the use of this software.
  */
 
 #ifndef AUDGUI_LIST_H
 #define AUDGUI_LIST_H
 
 #include <gtk/gtk.h>
+#include <libaudcore/core.h>
 
 typedef struct {
-    void (* get_value) (void * user, gint row, gint column, GValue * value);
+    void (* get_value) (void * user, int row, int column, GValue * value);
 
     /* selection (optional) */
-    gboolean (* get_selected) (void * user, gint row);
-    void (* set_selected) (void * user, gint row, gboolean selected);
-    void (* select_all) (void * user, gboolean selected);
+    bool_t (* get_selected) (void * user, int row);
+    void (* set_selected) (void * user, int row, bool_t selected);
+    void (* select_all) (void * user, bool_t selected);
 
-    void (* activate_row) (void * user, gint row); /* optional */
+    void (* activate_row) (void * user, int row); /* optional */
     void (* right_click) (void * user, GdkEventButton * event); /* optional */
-    void (* shift_rows) (void * user, gint row, gint before); /* optional */
+    void (* shift_rows) (void * user, int row, int before); /* optional */
 
     /* cross-widget drag and drop (optional) */
-    const gchar * data_type;
-    void (* get_data) (void * user, void * * data, gint * length); /* data will
+    const char * data_type;
+    void (* get_data) (void * user, void * * data, int * length); /* data will
      be freed */
-    void (* receive_data) (void * user, gint row, const void * data, gint length);
+    void (* receive_data) (void * user, int row, const void * data, int length);
 } AudguiListCallbacks;
 
 GtkWidget * audgui_list_new (const AudguiListCallbacks * cbs, void * user,
- gint rows);
+ int rows);
 void * audgui_list_get_user (GtkWidget * list);
-void audgui_list_add_column (GtkWidget * list, const gchar * title,
- gint column, GType type, gboolean expand);
-
-gint audgui_list_row_count (GtkWidget * list);
-void audgui_list_insert_rows (GtkWidget * list, gint at, gint rows);
-void audgui_list_update_rows (GtkWidget * list, gint at, gint rows);
-void audgui_list_delete_rows (GtkWidget * list, gint at, gint rows);
-void audgui_list_update_selection (GtkWidget * list, gint at, gint rows);
-void audgui_list_set_highlight (GtkWidget * list, gint row);
-void audgui_list_set_focus (GtkWidget * list, gint row);
-gint audgui_list_row_at_point (GtkWidget * list, gint x, gint y);
+void audgui_list_add_column (GtkWidget * list, const char * title,
+ int column, GType type, int width);
+
+int audgui_list_row_count (GtkWidget * list);
+void audgui_list_insert_rows (GtkWidget * list, int at, int rows);
+void audgui_list_update_rows (GtkWidget * list, int at, int rows);
+void audgui_list_delete_rows (GtkWidget * list, int at, int rows);
+void audgui_list_update_selection (GtkWidget * list, int at, int rows);
+
+int audgui_list_get_highlight (GtkWidget * list);
+void audgui_list_set_highlight (GtkWidget * list, int row);
+int audgui_list_get_focus (GtkWidget * list);
+void audgui_list_set_focus (GtkWidget * list, int row);
+
+int audgui_list_row_at_point (GtkWidget * list, int x, int y);
 
 #endif
diff --git a/src/libaudgui/playlists.c b/src/libaudgui/playlists.c
new file mode 100644
index 0000000..8c5a517
--- /dev/null
+++ b/src/libaudgui/playlists.c
@@ -0,0 +1,109 @@
+/*
+ * playlists.c
+ * Copyright 2011 John Lindgren
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions, and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ *    this list of conditions, and the following disclaimer in the documentation
+ *    provided with the distribution.
+ *
+ * This software is provided "as is" and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising from
+ * the use of this software.
+ */
+
+#include <gtk/gtk.h>
+
+#include <audacious/i18n.h>
+#include <audacious/misc.h>
+#include <audacious/playlist.h>
+#include <libaudcore/vfs.h>
+
+#include "config.h"
+#include "libaudgui.h"
+
+static char * select_file (bool_t save, const char * default_filename)
+{
+    GtkWidget * dialog = gtk_file_chooser_dialog_new (save ?
+     _("Export Playlist") : _("Import Playlist"), NULL, save ?
+     GTK_FILE_CHOOSER_ACTION_SAVE : GTK_FILE_CHOOSER_ACTION_OPEN, NULL, NULL);
+
+    if (default_filename)
+        gtk_file_chooser_set_uri ((GtkFileChooser *) dialog, default_filename);
+
+    gtk_dialog_add_button ((GtkDialog *) dialog, GTK_STOCK_CANCEL,
+     GTK_RESPONSE_REJECT);
+    gtk_dialog_add_button ((GtkDialog *) dialog, save ? GTK_STOCK_SAVE :
+     GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT);
+
+    gtk_dialog_set_default_response ((GtkDialog *) dialog, GTK_RESPONSE_ACCEPT);
+
+    char * path = aud_get_string ("audgui", "playlist_path");
+    if (path[0])
+        gtk_file_chooser_set_current_folder_uri ((GtkFileChooser *) dialog, path);
+    g_free (path);
+
+    char * filename = NULL;
+    if (gtk_dialog_run ((GtkDialog *) dialog) == GTK_RESPONSE_ACCEPT)
+        filename = gtk_file_chooser_get_uri ((GtkFileChooser *) dialog);
+
+    path = gtk_file_chooser_get_current_folder_uri ((GtkFileChooser *) dialog);
+    aud_set_string ("audgui", "playlist_path", path);
+    g_free (path);
+
+    gtk_widget_destroy (dialog);
+    return filename;
+}
+
+static bool_t confirm_overwrite (const char * filename)
+{
+    GtkWidget * dialog = gtk_message_dialog_new (NULL, 0, GTK_MESSAGE_QUESTION,
+     GTK_BUTTONS_YES_NO, _("Overwrite %s?"), filename);
+
+    int result = gtk_dialog_run ((GtkDialog *) dialog);
+    gtk_widget_destroy (dialog);
+    return (result == GTK_RESPONSE_YES);
+}
+
+void audgui_import_playlist (void)
+{
+    int list = aud_playlist_get_active ();
+    int id = aud_playlist_get_unique_id (list);
+
+    char * filename = select_file (FALSE, NULL);
+    if (! filename)
+        return;
+
+    if ((list = aud_playlist_by_unique_id (id)) < 0)
+        return;
+
+    aud_playlist_entry_delete (list, 0, aud_playlist_entry_count (list));
+    aud_playlist_entry_insert (list, 0, filename, NULL, FALSE);
+    aud_playlist_set_filename (list, filename);
+    g_free (filename);
+}
+
+void audgui_export_playlist (void)
+{
+    int list = aud_playlist_get_active ();
+    int id = aud_playlist_get_unique_id (list);
+
+    char * def = aud_playlist_get_filename (list);
+    char * filename = select_file (TRUE, def);
+    str_unref (def);
+
+    if (! filename || (vfs_file_test (filename, G_FILE_TEST_EXISTS) &&
+     ! confirm_overwrite (filename)))
+        return;
+
+    if ((list = aud_playlist_by_unique_id (id)) < 0)
+        return;
+
+    aud_playlist_save (list, filename);
+    g_free (filename);
+}
diff --git a/src/libaudgui/queue-manager.c b/src/libaudgui/queue-manager.c
new file mode 100644
index 0000000..1d74c42
--- /dev/null
+++ b/src/libaudgui/queue-manager.c
@@ -0,0 +1,228 @@
+/*
+ * queue-manager.c
+ * Copyright 2011 John Lindgren
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions, and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ *    this list of conditions, and the following disclaimer in the documentation
+ *    provided with the distribution.
+ *
+ * This software is provided "as is" and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising from
+ * the use of this software.
+ */
+
+#include <gdk/gdkkeysyms.h>
+#include <gtk/gtk.h>
+
+#include <audacious/gtk-compat.h>
+#include <audacious/i18n.h>
+#include <audacious/playlist.h>
+#include <libaudcore/hook.h>
+
+#include "config.h"
+#include "init.h"
+#include "libaudgui.h"
+#include "list.h"
+
+enum {
+ COLUMN_ENTRY,
+ COLUMN_TITLE};
+
+#define RESPONSE_REMOVE 1
+
+static GtkWidget * qm_win;
+static GtkWidget * qm_list;
+
+static void get_value (void * user, int row, int column, GValue * value)
+{
+    int list = aud_playlist_get_active ();
+    int entry = aud_playlist_queue_get_entry (list, row);
+
+    switch (column)
+    {
+    case COLUMN_ENTRY:
+        g_value_set_int (value, 1 + entry);
+        break;
+    case COLUMN_TITLE:;
+        char * title = aud_playlist_entry_get_title (list, entry, TRUE);
+        g_value_set_string (value, title);
+        str_unref (title);
+        break;
+    }
+}
+
+static bool_t get_selected (void * user, int row)
+{
+    int list = aud_playlist_get_active ();
+    return aud_playlist_entry_get_selected (list, aud_playlist_queue_get_entry (list, row));
+}
+
+static void set_selected (void * user, int row, bool_t selected)
+{
+    int list = aud_playlist_get_active ();
+    aud_playlist_entry_set_selected (list, aud_playlist_queue_get_entry (list, row), selected);
+}
+
+static void select_all (void * user, bool_t selected)
+{
+    int list = aud_playlist_get_active ();
+    int count = aud_playlist_queue_count (list);
+
+    for (int i = 0; i < count; i ++)
+        aud_playlist_entry_set_selected (list, aud_playlist_queue_get_entry (list, i), selected);
+}
+
+static void shift_rows (void * user, int row, int before)
+{
+    GArray * shift = g_array_new (FALSE, FALSE, sizeof (int));
+    int list = aud_playlist_get_active ();
+    int count = aud_playlist_queue_count (list);
+
+    for (int i = 0; i < count; i ++)
+    {
+        int entry = aud_playlist_queue_get_entry (list, i);
+
+        if (aud_playlist_entry_get_selected (list, entry))
+        {
+            g_array_append_val (shift, entry);
+
+            if (i < before)
+                before --;
+        }
+    }
+
+    aud_playlist_queue_delete_selected (list);
+
+    for (int i = 0; i < shift->len; i ++)
+        aud_playlist_queue_insert (list, before + i, g_array_index (shift, int, i));
+
+    g_array_free (shift, TRUE);
+}
+
+static const AudguiListCallbacks callbacks = {
+ .get_value = get_value,
+ .get_selected = get_selected,
+ .set_selected = set_selected,
+ .select_all = select_all,
+ .shift_rows = shift_rows};
+
+static void remove_selected (void)
+{
+    int list = aud_playlist_get_active ();
+    int count = aud_playlist_queue_count (list);
+
+    for (int i = 0; i < count; )
+    {
+        int entry = aud_playlist_queue_get_entry (list, i);
+
+        if (aud_playlist_entry_get_selected (list, entry))
+        {
+            aud_playlist_queue_delete (list, i, 1);
+            aud_playlist_entry_set_selected (list, entry, FALSE);
+            count --;
+        }
+        else
+            i ++;
+    }
+}
+
+static void update_hook (void * data, void * user)
+{
+    int oldrows = audgui_list_row_count (qm_list);
+    int newrows = aud_playlist_queue_count (aud_playlist_get_active ());
+    int focus = audgui_list_get_focus (qm_list);
+
+    audgui_list_update_rows (qm_list, 0, MIN (oldrows, newrows));
+    audgui_list_update_selection (qm_list, 0, MIN (oldrows, newrows));
+
+    if (newrows > oldrows)
+        audgui_list_insert_rows (qm_list, oldrows, newrows - oldrows);
+    if (newrows < oldrows)
+        audgui_list_delete_rows (qm_list, newrows, oldrows - newrows);
+
+    if (focus > newrows - 1)
+        audgui_list_set_focus (qm_list, newrows - 1);
+}
+
+static void destroy_cb (void)
+{
+    hook_dissociate ("playlist activate", update_hook);
+    hook_dissociate ("playlist update", update_hook);
+
+    qm_win = NULL;
+    qm_list = NULL;
+}
+
+static bool_t keypress_cb (GtkWidget * widget, GdkEventKey * event)
+{
+    if (event->keyval == GDK_A && (event->state & GDK_CONTROL_MASK))
+        select_all (NULL, TRUE);
+    else if (event->keyval == GDK_Delete)
+        remove_selected ();
+    else if (event->keyval == GDK_Escape)
+        gtk_widget_destroy (qm_win);
+    else
+        return FALSE;
+
+    return TRUE;
+}
+
+static void response_cb (GtkDialog * dialog, int response)
+{
+    switch (response)
+    {
+    case RESPONSE_REMOVE:;
+        remove_selected ();
+        break;
+    case GTK_RESPONSE_CLOSE:
+        gtk_widget_destroy (qm_win);
+        break;
+    }
+}
+void audgui_queue_manager_show (void)
+{
+    if (qm_win)
+    {
+        gtk_window_present ((GtkWindow *) qm_win);
+        return;
+    }
+
+    qm_win = gtk_dialog_new_with_buttons (_("Queue Manager"), NULL, 0,
+     GTK_STOCK_REMOVE, RESPONSE_REMOVE, GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE,
+     NULL);
+    gtk_window_set_default_size ((GtkWindow *) qm_win, 400, 250);
+
+    GtkWidget * vbox = gtk_dialog_get_content_area ((GtkDialog *) qm_win);
+
+    GtkWidget * scrolled = gtk_scrolled_window_new (NULL, NULL);
+    gtk_scrolled_window_set_shadow_type ((GtkScrolledWindow *) scrolled, GTK_SHADOW_IN);
+    gtk_box_pack_start ((GtkBox *) vbox, scrolled, TRUE, TRUE, 0);
+
+    int count = aud_playlist_queue_count (aud_playlist_get_active ());
+    qm_list = audgui_list_new (& callbacks, NULL, count);
+    gtk_tree_view_set_headers_visible ((GtkTreeView *) qm_list, FALSE);
+    audgui_list_add_column (qm_list, NULL, 0, G_TYPE_INT, 7);
+    audgui_list_add_column (qm_list, NULL, 1, G_TYPE_STRING, -1);
+    gtk_container_add ((GtkContainer *) scrolled, qm_list);
+
+    hook_associate ("playlist activate", update_hook, NULL);
+    hook_associate ("playlist update", update_hook, NULL);
+
+    g_signal_connect (qm_win, "destroy", (GCallback) destroy_cb, NULL);
+    g_signal_connect (qm_win, "key-press-event", (GCallback) keypress_cb, NULL);
+    g_signal_connect (qm_win, "response", (GCallback) response_cb, NULL);
+
+    gtk_widget_show_all (qm_win);
+}
+
+void audgui_queue_manager_cleanup (void)
+{
+    if (qm_win)
+        gtk_widget_destroy (qm_win);
+}
diff --git a/src/libaudgui/ui_about.c b/src/libaudgui/ui_about.c
deleted file mode 100644
index caeac03..0000000
--- a/src/libaudgui/ui_about.c
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- *  Audacious - Cross-platform multimedia player
- *  Copyright (C) 2005-2007  Audacious development team
- *
- *  Based on BMP:
- *  Copyright (C) 2003-2004  BMP development team
- *
- *  Based on XMMS:
- *  Copyright (C) 1998-2003  XMMS development team
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; under version 3 of the License.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program.  If not, see <http://www.gnu.org/licenses>.
- *
- *  The Audacious team does not consider modular code linking to
- *  Audacious or using our public API to be a derived work.
- */
-
-#include <limits.h>
-
-#ifdef HAVE_CONFIG_H
-#  include "config.h"
-#endif
-
-#include <glib.h>
-#include <gtk/gtk.h>
-
-#include <gdk/gdk.h>
-#include <gdk/gdkkeysyms.h>
-
-#include <audacious/gtk-compat.h>
-#include <audacious/i18n.h>
-#include <audacious/misc.h>
-
-#include "libaudgui-gtk.h"
-
-/* ui_credits.c */
-GtkWidget * audgui_get_credits_widget (void);
-
-static GtkWidget *about_window = NULL;
-
-void
-audgui_show_about_window(void)
-{
-    GtkWidget *brief_label;
-    gchar *text;
-    static const gchar *audacious_brief;
-
-    if (about_window != NULL)
-    {
-        gtk_window_present(GTK_WINDOW(about_window));
-        return;
-    }
-
-    aud_get_audacious_credits(&audacious_brief, NULL, NULL);
-
-    about_window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
-    gtk_container_set_border_width ((GtkContainer *) about_window, 3);
-
-    g_signal_connect(about_window, "destroy",
-                     G_CALLBACK(gtk_widget_destroyed), &about_window);
-
-    gtk_window_set_title(GTK_WINDOW(about_window), _("About Audacious"));
-    gtk_window_set_resizable(GTK_WINDOW(about_window), FALSE);
-    audgui_destroy_on_escape (about_window);
-
-    GtkWidget * vbox = gtk_vbox_new (FALSE, 6);
-    gtk_container_add ((GtkContainer *) about_window, vbox);
-
-    gchar name[PATH_MAX];
-    snprintf (name, sizeof name, "%s/images/about-logo.png", aud_get_path
-     (AUD_PATH_DATA_DIR));
-    GtkWidget * image = gtk_image_new_from_file (name);
-    gtk_box_pack_start ((GtkBox *) vbox, image, FALSE, FALSE, 0);
-
-    brief_label = gtk_label_new(NULL);
-    text = g_strdup_printf(_(audacious_brief), VERSION);
-
-    gtk_label_set_markup(GTK_LABEL(brief_label), text);
-    gtk_label_set_justify(GTK_LABEL(brief_label), GTK_JUSTIFY_CENTER);
-    g_free(text);
-    
-    gtk_box_pack_start ((GtkBox *) vbox, brief_label, FALSE, FALSE, 0);
-
-    GtkWidget * exp = gtk_expander_new (_("Credits"));
-    gtk_container_add ((GtkContainer *) exp, audgui_get_credits_widget ());
-    gtk_box_pack_start ((GtkBox *) vbox, exp, TRUE, TRUE, 0);
-
-    gtk_widget_show_all(about_window);
-}
-
-void
-audgui_hide_about_window(void)
-{
-    g_return_if_fail(about_window);
-    gtk_widget_hide(GTK_WIDGET(about_window));
-}
diff --git a/src/libaudgui/ui_credits.c b/src/libaudgui/ui_credits.c
deleted file mode 100644
index ec7f0f6..0000000
--- a/src/libaudgui/ui_credits.c
+++ /dev/null
@@ -1,129 +0,0 @@
-/*  Audacious - Cross-platform multimedia player
- *  Copyright (C) 2005-2007  Audacious Team
- *
- *  Based on BMP:
- *  Copyright (C) 2003-2004  BMP development team
- *
- *  Based on XMMS:
- *  Copyright (C) 1998-2003  XMMS development team
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; under version 3 of the License.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program.  If not, see <http://www.gnu.org/licenses>.
- *
- *  The Audacious team does not consider modular code linking to
- *  Audacious or using our public API to be a derived work.
- */
-
-#ifdef HAVE_CONFIG_H
-#  include "config.h"
-#endif
-
-#include <glib.h>
-#include <gtk/gtk.h>
-
-#include <audacious/gtk-compat.h>
-#include <audacious/i18n.h>
-#include <audacious/misc.h>
-
-enum {
-    COL_LEFT,
-    COL_RIGHT,
-    N_COLS
-};
-
-static GtkWidget *
-generate_credit_list(const gchar * text[], gboolean sec_space)
-{
-    GtkWidget *scrollwin;
-    GtkWidget *treeview;
-    GtkListStore *list_store;
-    GtkTreeIter iter;
-    GtkTreeViewColumn *column;
-    GtkCellRenderer *renderer;
-    const gchar *const *item;
-
-    list_store = gtk_list_store_new(N_COLS, G_TYPE_STRING, G_TYPE_STRING);
-
-    item = text;
-
-    while (*item) {
-        gtk_list_store_append(list_store, &iter);
-        gtk_list_store_set(list_store, &iter,
-                           COL_LEFT, _(item[0]), COL_RIGHT, _(item[1]), -1);
-        item += 2;
-
-        while (*item) {
-            gtk_list_store_append(list_store, &iter);
-            gtk_list_store_set(list_store, &iter,
-                               COL_LEFT, "", COL_RIGHT, _(*item++), -1);
-        }
-
-        ++item;
-
-        if (*item && sec_space) {
-            gtk_list_store_append(list_store, &iter);
-            gtk_list_store_set(list_store, &iter,
-                               COL_LEFT, "", COL_RIGHT, "", -1);
-        }
-    }
-
-    treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(list_store));
-    gtk_tree_view_set_headers_clickable(GTK_TREE_VIEW(treeview), FALSE);
-    gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(treeview), FALSE);
-    gtk_tree_selection_set_mode(gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)),
-        GTK_SELECTION_NONE);
-
-    renderer = gtk_cell_renderer_text_new();
-    g_object_set(renderer, "xalign", 1.0, NULL);
-    column = gtk_tree_view_column_new_with_attributes("Left", renderer,
-                                                      "text", COL_LEFT, NULL);
-    gtk_tree_view_append_column(GTK_TREE_VIEW(treeview), column);
-
-    renderer = gtk_cell_renderer_text_new();
-    g_object_set(renderer, "xalign", 0.0, NULL);
-    column = gtk_tree_view_column_new_with_attributes("Right", renderer,
-                                                      "text", COL_RIGHT,
-                                                      NULL);
-    gtk_tree_view_append_column(GTK_TREE_VIEW(treeview), column);
-
-    scrollwin = gtk_scrolled_window_new(NULL, NULL);
-    gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrollwin),
-                                   GTK_POLICY_NEVER, GTK_POLICY_ALWAYS);
-    gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scrollwin), GTK_SHADOW_IN);
-    gtk_container_add(GTK_CONTAINER(scrollwin), treeview);
-    gtk_container_set_border_width ((GtkContainer *) scrollwin, 4);
-
-    return scrollwin;
-}
-
-GtkWidget * audgui_get_credits_widget (void)
-{
-    GtkWidget *about_notebook;
-    GtkWidget *list;
-    const gchar **credit_text;
-    const gchar **translators;
-
-    aud_get_audacious_credits (NULL, &credit_text, &translators);
-
-    about_notebook = gtk_notebook_new();
-    gtk_widget_set_size_request (about_notebook, -1, 250);
-
-    list = generate_credit_list(credit_text, TRUE);
-    gtk_notebook_append_page(GTK_NOTEBOOK(about_notebook), list,
-                             gtk_label_new(_("Credits")));
-
-    list = generate_credit_list(translators, FALSE);
-    gtk_notebook_append_page(GTK_NOTEBOOK(about_notebook), list,
-                             gtk_label_new(_("Translators")));
-
-    return about_notebook;
-}
diff --git a/src/libaudgui/ui_fileopener.c b/src/libaudgui/ui_fileopener.c
old mode 100755
new mode 100644
index b7d6794..93e9e3e
--- a/src/libaudgui/ui_fileopener.c
+++ b/src/libaudgui/ui_fileopener.c
@@ -1,53 +1,53 @@
-/*  Audacious - Cross-platform multimedia player
- *  Copyright (C) 2005-2007  Audacious development team
+/*
+ * ui_fileopener.c
+ * Copyright 2007-2011 Michael Färber and John Lindgren
  *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; under version 3 of the License.
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; under version 3 of the License.
  *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
  *
- *  You should have received a copy of the GNU General Public License
- *  along with this program.  If not, see <http://www.gnu.org/licenses>.
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses>.
  *
- *  The Audacious team does not consider modular code linking to
- *  Audacious or using our public API to be a derived work.
+ * The Audacious team does not consider modular code linking to
+ * Audacious or using our public API to be a derived work.
  */
 
 #include <gtk/gtk.h>
 
-#include <audacious/audconfig.h>
 #include <audacious/i18n.h>
 #include <audacious/drct.h>
 #include <audacious/gtk-compat.h>
+#include <audacious/misc.h>
 
 #include "config.h"
 #include "libaudgui.h"
 #include "libaudgui-gtk.h"
 
 static void filebrowser_add_files (GtkFileChooser * browser, GSList * files,
- gboolean play)
+ bool_t play)
 {
-    GSList * node;
-    GList * list = NULL;
-
-    for (node = files; node != NULL; node = node->next)
-        list = g_list_prepend (list, node->data);
+    Index * list = index_new ();
 
-    list = g_list_reverse (list);
+    for (GSList * node = files; node; node = node->next)
+        index_append (list, str_get (node->data));
 
     if (play)
         aud_drct_pl_open_list (list);
     else
         aud_drct_pl_add_list (list, -1);
 
-    g_list_free (list);
-
-    g_free (aud_cfg->filesel_path);
-    aud_cfg->filesel_path = gtk_file_chooser_get_current_folder (browser);
+    char * path = gtk_file_chooser_get_current_folder (browser);
+    if (path)
+    {
+        aud_set_string ("audgui", "filesel_path", path);
+        g_free (path);
+    }
 }
 
 static void
@@ -56,22 +56,23 @@ action_button_cb(GtkWidget *widget, gpointer data)
     GtkWidget *window = g_object_get_data(data, "window");
     GtkWidget *chooser = g_object_get_data(data, "chooser");
     GtkWidget *toggle = g_object_get_data(data, "toggle-button");
-    GSList *files;
-    aud_cfg->close_dialog_open =
-        gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(toggle));
 
-    files = gtk_file_chooser_get_uris ((GtkFileChooser *) chooser);
+    GSList * files = gtk_file_chooser_get_uris ((GtkFileChooser *) chooser);
 
-    filebrowser_add_files ((GtkFileChooser *) chooser, files, GPOINTER_TO_INT
-     (g_object_get_data (data, "play-button")));
+    bool_t play = GPOINTER_TO_INT (g_object_get_data (data, "play-button"));
+    filebrowser_add_files ((GtkFileChooser *) chooser, files, play);
 
     g_slist_foreach(files, (GFunc) g_free, NULL);
     g_slist_free(files);
 
-    if (aud_cfg->close_dialog_open)
-        gtk_widget_destroy(window);
+    if (gtk_toggle_button_get_active ((GtkToggleButton *) toggle))
+        gtk_widget_destroy (window);
 }
 
+static void toggled_cb (GtkToggleButton * toggle, void * option)
+{
+    aud_set_bool ("audgui", (const char *) option, gtk_toggle_button_get_active (toggle));
+}
 
 static void
 close_button_cb(GtkWidget *widget, gpointer data)
@@ -80,14 +81,14 @@ close_button_cb(GtkWidget *widget, gpointer data)
 }
 
 static void
-run_filebrowser_gtk2style(gboolean play_button, gboolean show)
+run_filebrowser_gtk2style(bool_t play_button, bool_t show)
 {
     static GtkWidget *window = NULL;
     GtkWidget *vbox, *hbox, *bbox;
     GtkWidget *chooser;
     GtkWidget *action_button, *close_button;
     GtkWidget *toggle;
-    gchar *window_title, *toggle_text;
+    char *window_title, *toggle_text;
     gpointer action_stock, storage;
 
     if (!show) {
@@ -122,17 +123,22 @@ run_filebrowser_gtk2style(gboolean play_button, gboolean show)
 
     chooser = gtk_file_chooser_widget_new(GTK_FILE_CHOOSER_ACTION_OPEN);
     gtk_file_chooser_set_select_multiple(GTK_FILE_CHOOSER(chooser), TRUE);
-    if (aud_cfg->filesel_path)
-        gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(chooser),
-                                            aud_cfg->filesel_path);
+
+    char * path = aud_get_string ("audgui", "filesel_path");
+    if (path[0])
+        gtk_file_chooser_set_current_folder ((GtkFileChooser *) chooser, path);
+    g_free (path);
+
     gtk_box_pack_start(GTK_BOX(vbox), chooser, TRUE, TRUE, 3);
 
     hbox = gtk_hbox_new(TRUE, 0);
     gtk_box_pack_end(GTK_BOX(vbox), hbox, FALSE, FALSE, 3);
 
+    const char * option = play_button ? "close_dialog_open" : "close_dialog_add";
     toggle = gtk_check_button_new_with_label(toggle_text);
-    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toggle),
-                                 aud_cfg->close_dialog_open ? TRUE : FALSE);
+    gtk_toggle_button_set_active ((GtkToggleButton *) toggle, aud_get_bool
+     ("audgui", option));
+    g_signal_connect (toggle, "toggled", (GCallback) toggled_cb, (void *) option);
     gtk_box_pack_start(GTK_BOX(hbox), toggle, TRUE, TRUE, 3);
 
     bbox = gtk_hbutton_box_new();
@@ -140,7 +146,7 @@ run_filebrowser_gtk2style(gboolean play_button, gboolean show)
     gtk_box_set_spacing(GTK_BOX(bbox), 6);
     gtk_box_pack_end(GTK_BOX(hbox), bbox, TRUE, TRUE, 3);
 
-    close_button = gtk_button_new_from_stock(GTK_STOCK_CANCEL);
+    close_button = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
     action_button = gtk_button_new_from_stock(action_stock);
     gtk_container_add(GTK_CONTAINER(bbox), close_button);
     gtk_container_add(GTK_CONTAINER(bbox), action_button);
@@ -171,10 +177,10 @@ run_filebrowser_gtk2style(gboolean play_button, gboolean show)
 }
 
 /*
- * run_filebrowser(gboolean play_button)
+ * run_filebrowser(bool_t play_button)
  *
  * Inputs:
- *     - gboolean play_button
+ *     - bool_t play_button
  *       TRUE  - open files
  *       FALSE - add files
  *
@@ -182,7 +188,7 @@ run_filebrowser_gtk2style(gboolean play_button, gboolean show)
  *     - none
  */
 void
-audgui_run_filebrowser(gboolean play_button)
+audgui_run_filebrowser(bool_t play_button)
 {
     run_filebrowser_gtk2style(play_button, TRUE);
 }
diff --git a/src/libaudgui/ui_gtk.c b/src/libaudgui/ui_gtk.c
deleted file mode 100644
index 24d2fe5..0000000
--- a/src/libaudgui/ui_gtk.c
+++ /dev/null
@@ -1,32 +0,0 @@
-/*  Audacious - Cross-platform multimedia player
- *  Copyright (C) 2005-2009  Audacious development team.
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; under version 3 of the License.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program.  If not, see <http://www.gnu.org/licenses>.
- *
- *  The Audacious team does not consider modular code linking to
- *  Audacious or using our public API to be a derived work.
- */
-
-#include <gtk/gtk.h>
-
-#include <audacious/misc.h>
-
-void audgui_set_default_icon (void)
-{
-#ifdef _WIN32
-    gtk_window_set_default_icon_from_file (aud_get_path (AUD_PATH_ICON_FILE),
-     NULL);
-#else
-    gtk_window_set_default_icon_name ("audacious");
-#endif
-}
diff --git a/src/libaudgui/ui_gtk.h b/src/libaudgui/ui_gtk.h
deleted file mode 100644
index 3859cf9..0000000
--- a/src/libaudgui/ui_gtk.h
+++ /dev/null
@@ -1,25 +0,0 @@
-/*  Audacious - Cross-platform multimedia player
- *  Copyright (C) 2005-2009  Audacious development team.
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; under version 3 of the License.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program.  If not, see <http://www.gnu.org/licenses>.
- *
- *  The Audacious team does not consider modular code linking to
- *  Audacious or using our public API to be a derived work.
- */
-
-#ifndef AUDACIOUS_UI_GTK_H
-#define AUDACIOUS_UI_GTK_H
-
-void audgui_set_default_icon(void);
-
-#endif /* AUDACIOUS_UI_GTK_H */
diff --git a/src/libaudgui/ui_jumptotrack.c b/src/libaudgui/ui_jumptotrack.c
index 52f3f24..9eaaeda 100644
--- a/src/libaudgui/ui_jumptotrack.c
+++ b/src/libaudgui/ui_jumptotrack.c
@@ -1,74 +1,56 @@
-/*  Audacious - Cross-platform multimedia player
- *  Copyright (C) 2005-2006  Audacious development team.
+/*
+ * ui_jumptotrack.c
+ * Copyright 1998-2003 XMMS development team
+ * Copyright 2003-2004 BMP development team
+ * Copyright 2007-2011 Yoshiki Yazawa and John Lindgren
  *
- *  BMP - Cross-platform multimedia player
- *  Copyright (C) 2003-2004  BMP development team.
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; under version 3 of the License.
  *
- *  Based on XMMS:
- *  Copyright (C) 1998-2003  XMMS development team.
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
  *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; under version 3 of the License.
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses>.
  *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program.  If not, see <http://www.gnu.org/licenses>.
- *
- *  The Audacious team does not consider modular code linking to
- *  Audacious or using our public API to be a derived work.
+ * The Audacious team does not consider modular code linking to
+ * Audacious or using our public API to be a derived work.
  */
 
-#ifdef HAVE_CONFIG_H
-#  include "config.h"
-#endif
-
-#include <math.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include <sys/types.h>
-
 #include <gdk/gdkkeysyms.h>
 #include <gtk/gtk.h>
 
-#include <audacious/audconfig.h>
 #include <audacious/drct.h>
 #include <audacious/gtk-compat.h>
 #include <audacious/i18n.h>
+#include <audacious/misc.h>
 #include <audacious/playlist.h>
 #include <libaudcore/hook.h>
 
-#include "icons-stock.h"
+#include "config.h"
+#include "libaudgui.h"
+#include "list.h"
 #include "ui_jumptotrack_cache.h"
-#include "ui_regex.h"
 
-static void watchdog (void * hook_data, void * user_data);
+static void update_cb (void * data, void * user);
+static void activate_cb (void * data, void * user);
 
 static GtkWidget *jump_to_track_win = NULL;
 static JumpToTrackCache* cache = NULL;
-static void * storage = NULL;
-static gboolean watching = FALSE;
-
-static void change_song (guint pos)
-{
-    gint playlist = aud_playlist_get_active ();
-
-    aud_playlist_set_playing (playlist);
-    aud_playlist_set_position (playlist, pos);
-    aud_drct_play ();
-}
+static const GArray * search_matches;
+static GtkWidget * treeview, * filter_entry, * queue_button;
+static bool_t watching = FALSE;
 
 void
 audgui_jump_to_track_hide(void)
 {
     if (watching)
     {
-        hook_dissociate ("playlist update", watchdog);
+        hook_dissociate ("playlist update", update_cb);
+        hook_dissociate ("playlist activate", activate_cb);
         watching = FALSE;
     }
 
@@ -80,242 +62,126 @@ audgui_jump_to_track_hide(void)
         ui_jump_to_track_cache_free (cache);
         cache = NULL;
     }
+
+    search_matches = NULL;
 }
 
-static void
-ui_jump_to_track_jump(GtkTreeView * treeview)
+static int get_selected_entry (void)
 {
-    GtkTreeModel *model;
-    GtkTreeSelection *selection;
-    GtkTreeIter iter;
-    guint pos;
-
-    model = gtk_tree_view_get_model(treeview);
-    selection = gtk_tree_view_get_selection(treeview);
-
-    if (!gtk_tree_selection_get_selected(selection, NULL, &iter))
-        return;
+    g_return_val_if_fail (treeview && search_matches, -1);
 
-    gtk_tree_model_get(model, &iter, 0, &pos, -1);
+    GtkTreeModel * model = gtk_tree_view_get_model ((GtkTreeView *) treeview);
+    GtkTreeSelection * selection = gtk_tree_view_get_selection ((GtkTreeView *) treeview);
+    GtkTreeIter iter;
 
-    change_song(pos - 1);
+    if (! gtk_tree_selection_get_selected (selection, NULL, & iter))
+        return -1;
 
-    if(aud_cfg->close_jtf_dialog)
-        audgui_jump_to_track_hide();
-}
+    GtkTreePath * path = gtk_tree_model_get_path (model, & iter);
+    int row = gtk_tree_path_get_indices (path)[0];
+    gtk_tree_path_free (path);
 
-static void
-ui_jump_to_track_toggle_cb(GtkWidget * toggle)
-{
-    aud_cfg->close_jtf_dialog =
-        gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(toggle));
+    g_return_val_if_fail (row >= 0 && row < search_matches->len, -1);
+    return g_array_index (search_matches, int, row);
 }
 
-static void
-ui_jump_to_track_toggle2_cb(GtkWidget * toggle)
+static void do_jump (void)
 {
-    aud_cfg->remember_jtf_entry =
-        gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(toggle));
-}
+    int entry = get_selected_entry ();
+    if (entry < 0)
+        return;
 
-static void
-ui_jump_to_track_jump_cb(GtkTreeView * treeview,
-                             gpointer data)
-{
-    ui_jump_to_track_jump(treeview);
-}
+    int playlist = aud_playlist_get_active ();
+    aud_playlist_set_playing (playlist);
+    aud_playlist_set_position (playlist, entry);
+    aud_drct_play ();
 
-static void
-ui_jump_to_track_set_queue_button_label(GtkButton * button,
-                                      guint pos)
-{
-    if (aud_playlist_queue_find_entry (aud_playlist_get_active (), pos) != -1)
-        gtk_button_set_label(button, _("Un_queue"));
-    else
-        gtk_button_set_label(button, _("_Queue"));
+    if (aud_get_bool ("audgui", "close_jtf_dialog"))
+        audgui_jump_to_track_hide();
 }
 
-static void
-ui_jump_to_track_queue_cb(GtkButton * button,
-                              gpointer data)
+static void update_queue_button (int entry)
 {
-    GtkTreeView *treeview;
-    GtkTreeModel *model;
-    GtkTreeSelection *selection;
-    GtkTreeIter iter;
-    guint pos;
-
-    treeview = GTK_TREE_VIEW(data);
-    model = gtk_tree_view_get_model(treeview);
-    selection = gtk_tree_view_get_selection(treeview);
+    g_return_if_fail (queue_button);
 
-    if (!gtk_tree_selection_get_selected(selection, NULL, &iter))
-        return;
-
-    gtk_tree_model_get(model, &iter, 0, &pos, -1);
-
-    if (aud_drct_pq_is_queued (pos - 1))
-        aud_drct_pq_remove (pos - 1);
+    if (entry < 0)
+    {
+        gtk_button_set_label ((GtkButton *) queue_button, _("_Queue"));
+        gtk_widget_set_sensitive (queue_button, FALSE);
+    }
     else
-        aud_drct_pq_add (pos - 1);
+    {
+        if (aud_playlist_queue_find_entry (aud_playlist_get_active (), entry) != -1)
+            gtk_button_set_label ((GtkButton *) queue_button, _("Un_queue"));
+        else
+            gtk_button_set_label ((GtkButton *) queue_button, _("_Queue"));
 
-    ui_jump_to_track_set_queue_button_label(button, (pos - 1));
+        gtk_widget_set_sensitive (queue_button, TRUE);
+    }
 }
 
-static void
-ui_jump_to_track_selection_changed_cb(GtkTreeSelection *treesel,
-                                          gpointer data)
+static void do_queue (void)
 {
-    GtkTreeView *treeview;
-    GtkTreeModel *model;
-    GtkTreeSelection *selection;
-    GtkTreeIter iter;
-    guint pos;
-
-    treeview = gtk_tree_selection_get_tree_view(treesel);
-    model = gtk_tree_view_get_model(treeview);
-    selection = gtk_tree_view_get_selection(treeview);
-
-    if (!gtk_tree_selection_get_selected(selection, NULL, &iter))
+    int playlist = aud_playlist_get_active ();
+    int entry = get_selected_entry ();
+    if (entry < 0)
         return;
 
-    gtk_tree_model_get(model, &iter, 0, &pos, -1);
+    int queued = aud_playlist_queue_find_entry (playlist, entry);
+    if (queued >= 0)
+        aud_playlist_queue_delete (playlist, queued, 1);
+    else
+        aud_playlist_queue_insert (playlist, -1, entry);
 
-    ui_jump_to_track_set_queue_button_label(GTK_BUTTON(data), (pos - 1));
+    update_queue_button (entry);
 }
 
-static gboolean
-ui_jump_to_track_edit_keypress_cb(GtkWidget * object,
-                 GdkEventKey * event,
-                 gpointer data)
+static void selection_changed (void)
 {
-    switch (event->keyval) {
-    case GDK_Return:
-        ui_jump_to_track_jump(GTK_TREE_VIEW(data));
-        return TRUE;
-    default:
-        return FALSE;
-    }
+    update_queue_button (get_selected_entry ());
 }
 
-static gboolean
-ui_jump_to_track_keypress_cb(GtkWidget * object,
-                                 GdkEventKey * event,
-                                 gpointer data)
+static bool_t keypress_cb (GtkWidget * widget, GdkEventKey * event)
 {
-    switch (event->keyval) {
-    case GDK_Escape:
+    if (event->keyval == GDK_Escape)
+    {
         audgui_jump_to_track_hide();
         return TRUE;
-    case GDK_KP_Enter:
-        ui_jump_to_track_queue_cb(NULL, data);
-        return TRUE;
-    default:
-        return FALSE;
-    };
+    }
 
     return FALSE;
 }
 
-static void
-ui_jump_to_track_edit_cb(GtkEntry * entry, gpointer user_data)
+static void fill_list (void)
 {
-    GtkTreeView *treeview = GTK_TREE_VIEW(user_data);
-    GtkTreeIter iter;
-    gint playlist;
-    GtkListStore *store;
+    g_return_if_fail (treeview && filter_entry);
 
-    const GArray *search_matches;
-    int i;
-
-    if (cache == NULL) {
+    if (! cache)
         cache = ui_jump_to_track_cache_new();
-    }
-
-    /* FIXME: Remove the connected signals before clearing
-     * (row-selected will still eventually arrive once) */
-    store = GTK_LIST_STORE(gtk_tree_view_get_model(treeview));
-
-    /* detach model from treeview */
-    g_object_ref( store );
-    gtk_tree_view_set_model( GTK_TREE_VIEW(treeview) , NULL );
-
-    gtk_list_store_clear(store);
-
-    search_matches = ui_jump_to_track_cache_search(cache,
-                                                   gtk_entry_get_text(entry));
 
-    playlist = aud_playlist_get_active ();
+    search_matches = ui_jump_to_track_cache_search (cache, gtk_entry_get_text
+     ((GtkEntry *) filter_entry));
 
-    for (i = 0; i < search_matches->len; i++)
-    {
-        gint entry = g_array_index (search_matches, gint, i);
-        const gchar * title = aud_playlist_entry_get_title (playlist, entry,
-         TRUE);
-
-        if (title == NULL)
-            continue;
-
-        gtk_list_store_append(store, &iter);
-        gtk_list_store_set (store, & iter, 0, 1 + entry, 1, title, -1);
-    }
-
-    /* attach the model again to the treeview */
-    gtk_tree_view_set_model( GTK_TREE_VIEW(treeview) , GTK_TREE_MODEL(store) );
-    g_object_unref( store );
-
-    if (gtk_tree_model_get_iter_first ((GtkTreeModel *) store, & iter))
-        gtk_tree_selection_select_iter (gtk_tree_view_get_selection (treeview),
-         & iter);
+    audgui_list_delete_rows (treeview, 0, audgui_list_row_count (treeview));
+    audgui_list_insert_rows (treeview, 0, search_matches->len);
 }
 
-static gboolean
-ui_jump_to_track_fill(gpointer treeview)
+static void clear_cb (GtkWidget * widget)
 {
-    gint playlist, entries, entry;
-    GtkTreeIter iter;
-    GtkListStore *jtf_store = (GtkListStore*)gtk_tree_view_get_model( GTK_TREE_VIEW(treeview) );
-
-    /* detach model from treeview before fill */
-    g_object_ref(jtf_store);
-    gtk_tree_view_set_model( GTK_TREE_VIEW(treeview), NULL );
-
-    gtk_list_store_clear(jtf_store);
-
-    playlist = aud_playlist_get_active ();
-    entries = aud_playlist_entry_count (playlist);
-
-    for (entry = 0; entry < entries; entry ++)
-    {
-        gtk_list_store_append(GTK_LIST_STORE(jtf_store), &iter);
-        gtk_list_store_set(GTK_LIST_STORE(jtf_store), &iter,
-         0, 1 + entry, 1, aud_playlist_entry_get_title (playlist, entry, TRUE),
-          -1);
-    }
-
-    /* attach liststore to treeview */
-    gtk_tree_view_set_model(GTK_TREE_VIEW(treeview), GTK_TREE_MODEL(jtf_store));
-    g_object_unref(jtf_store);
-    return FALSE;
+    g_return_if_fail (filter_entry);
+    gtk_entry_set_text ((GtkEntry *) filter_entry, "");
+    gtk_widget_grab_focus (filter_entry);
 }
 
-static void clear_cb (GtkWidget * widget, void * data)
+static void update_cb (void * data, void * user)
 {
-    GtkWidget * entry = g_object_get_data (data, "edit");
+    g_return_if_fail (treeview);
 
-    gtk_entry_set_text ((GtkEntry *) entry, "");
-    gtk_widget_grab_focus (entry);
-}
-
-static void watchdog (void * hook_data, void * user_data)
-{
-    GtkTreeView * tree;
     GtkTreeModel * model;
     GtkTreeIter iter;
     GtkTreePath * path = NULL;
 
-    if (GPOINTER_TO_INT (hook_data) <= PLAYLIST_UPDATE_SELECTION || storage ==
-     NULL)
+    if (GPOINTER_TO_INT (data) <= PLAYLIST_UPDATE_SELECTION)
         return;
 
     if (cache != NULL)
@@ -324,167 +190,119 @@ static void watchdog (void * hook_data, void * user_data)
         cache = NULL;
     }
 
-    tree = g_object_get_data (storage, "treeview");
-
     /* If it's only a metadata update, save and restore the cursor position. */
-    if (GPOINTER_TO_INT (hook_data) <= PLAYLIST_UPDATE_METADATA &&
-     gtk_tree_selection_get_selected (gtk_tree_view_get_selection (tree),
-     & model, & iter))
+    if (GPOINTER_TO_INT (data) <= PLAYLIST_UPDATE_METADATA &&
+     gtk_tree_selection_get_selected (gtk_tree_view_get_selection
+     ((GtkTreeView *) treeview), & model, & iter))
         path = gtk_tree_model_get_path (model, & iter);
 
-    /* Redo the search. */
-    ui_jump_to_track_edit_cb (g_object_get_data (storage, "edit"), tree);
+    fill_list ();
 
     if (path != NULL)
     {
-        gtk_tree_selection_select_path (gtk_tree_view_get_selection (tree), path);
-        gtk_tree_view_scroll_to_cell (tree, path, NULL, TRUE, 0.5, 0);
+        gtk_tree_selection_select_path (gtk_tree_view_get_selection
+         ((GtkTreeView *) treeview), path);
+        gtk_tree_view_scroll_to_cell ((GtkTreeView *) treeview, path, NULL, TRUE, 0.5, 0);
         gtk_tree_path_free (path);
     }
 }
 
-static gboolean delete_cb (GtkWidget * widget, GdkEvent * event, void * unused)
+static void activate_cb (void * data, void * user)
 {
-    audgui_jump_to_track_hide ();
-    return TRUE;
+    update_cb (GINT_TO_POINTER (PLAYLIST_UPDATE_STRUCTURE), NULL);
 }
 
-void
-audgui_jump_to_track(void)
+static void toggle_button_cb (GtkToggleButton * toggle, const char * setting)
 {
-    GtkWidget *scrollwin;
-    GtkWidget *vbox, *bbox, *sep;
-    GtkWidget *toggle, *toggle2;
-    GtkWidget *jump, *queue, *close;
-    GtkWidget *rescan;
-    GtkWidget *search_label, *hbox;
-    static GtkWidget *edit;
+    aud_set_bool ("audgui", setting, gtk_toggle_button_get_active (toggle));
+}
 
-    GtkWidget *treeview = NULL;
-    GtkListStore *jtf_store;
+static bool_t delete_cb (void)
+{
+    audgui_jump_to_track_hide ();
+    return TRUE;
+}
 
-    GtkCellRenderer *renderer;
-    GtkTreeViewColumn *column;
+static void list_get_value (void * user, int row, int column, GValue * value)
+{
+    g_return_if_fail (search_matches);
+    g_return_if_fail (column >= 0 && column < 2);
+    g_return_if_fail (row >= 0 && row < search_matches->len);
 
-    if (cache == NULL)
-        cache = ui_jump_to_track_cache_new ();
+    int playlist = aud_playlist_get_active ();
+    int entry = g_array_index (search_matches, int, row);
 
-    if (! watching)
+    switch (column)
     {
-        hook_associate ("playlist update", watchdog, NULL);
-        watching = TRUE;
-    }
-
-    if (jump_to_track_win) {
-        gtk_window_present(GTK_WINDOW(jump_to_track_win));
-
-        if(!aud_cfg->remember_jtf_entry)
-            gtk_entry_set_text(GTK_ENTRY(edit), "");
-
-        gtk_widget_grab_focus(edit);
-        gtk_editable_select_region(GTK_EDITABLE(edit), 0, -1);
-        return;
+    case 0:
+        g_value_set_int (value, 1 + entry);
+        break;
+    case 1:;
+        char * title = aud_playlist_entry_get_title (playlist, entry, TRUE);
+        g_return_if_fail (title);
+        g_value_set_string (value, title);
+        str_unref (title);
+        break;
     }
+}
 
-    #if defined(USE_REGEX_ONIGURUMA)
-    /* set encoding for Oniguruma regex to UTF-8 */
-    reg_set_encoding( REG_POSIX_ENCODING_UTF8 );
-    onig_set_default_syntax( ONIG_SYNTAX_POSIX_BASIC );
-    #endif
+static const AudguiListCallbacks callbacks = {
+ .get_value = list_get_value};
 
+static void create_window (void)
+{
     jump_to_track_win = gtk_window_new(GTK_WINDOW_TOPLEVEL);
     gtk_window_set_type_hint(GTK_WINDOW(jump_to_track_win),
                              GDK_WINDOW_TYPE_HINT_DIALOG);
 
-    gtk_window_set_title(GTK_WINDOW(jump_to_track_win), _("Jump to Track"));
+    gtk_window_set_title(GTK_WINDOW(jump_to_track_win), _("Jump to Song"));
 
-    gtk_window_set_position(GTK_WINDOW(jump_to_track_win), GTK_WIN_POS_CENTER);
-    g_signal_connect (jump_to_track_win, "delete-event", (GCallback) delete_cb,
-     NULL);
+    g_signal_connect (jump_to_track_win, "key_press_event", (GCallback) keypress_cb, NULL);
+    g_signal_connect (jump_to_track_win, "delete-event", (GCallback) delete_cb, NULL);
 
     gtk_container_set_border_width(GTK_CONTAINER(jump_to_track_win), 10);
     gtk_window_set_default_size(GTK_WINDOW(jump_to_track_win), 600, 500);
 
-    vbox = gtk_vbox_new(FALSE, 5);
+    GtkWidget * vbox = gtk_vbox_new (FALSE, 5);
     gtk_container_add(GTK_CONTAINER(jump_to_track_win), vbox);
 
-    jtf_store = gtk_list_store_new(2, G_TYPE_UINT, G_TYPE_STRING);
-    treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(jtf_store));
-    g_object_unref(jtf_store);
-
-    gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(treeview), TRUE);
-
-    column = gtk_tree_view_column_new();
-    gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(treeview), FALSE);
-    gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
-
-    renderer = gtk_cell_renderer_text_new();
-    gtk_tree_view_column_pack_start(column, renderer, FALSE);
-    gtk_tree_view_column_set_attributes(column, renderer, "text", 0, NULL);
-    gtk_tree_view_column_set_spacing(column, 4);
+    treeview = audgui_list_new (& callbacks, NULL, 0);
+    audgui_list_add_column (treeview, NULL, 0, G_TYPE_INT, 7);
+    audgui_list_add_column (treeview, NULL, 1, G_TYPE_STRING, -1);
 
-    renderer = gtk_cell_renderer_text_new();
-    gtk_tree_view_column_pack_start(column, renderer, FALSE);
-    gtk_tree_view_column_set_attributes(column, renderer, "text", 1, NULL);
-    gtk_tree_view_column_set_spacing(column, 4);
-    gtk_tree_view_append_column(GTK_TREE_VIEW(treeview), column);
+    g_signal_connect (gtk_tree_view_get_selection ((GtkTreeView *) treeview),
+     "changed", (GCallback) selection_changed, NULL);
+    g_signal_connect (treeview, "row-activated", (GCallback) do_jump, NULL);
 
-    gtk_tree_view_set_search_column(GTK_TREE_VIEW(treeview), 1);
-
-    g_signal_connect(treeview, "row-activated",
-                     G_CALLBACK(ui_jump_to_track_jump), NULL);
-
-    hbox = gtk_hbox_new(FALSE, 3);
+    GtkWidget * hbox = gtk_hbox_new (FALSE, 3);
     gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 3);
 
-
     /* filter box */
-    search_label = gtk_label_new(_("Filter: "));
+    GtkWidget * search_label = gtk_label_new (_("Filter: "));
     gtk_label_set_markup_with_mnemonic(GTK_LABEL(search_label), _("_Filter:"));
     gtk_box_pack_start(GTK_BOX(hbox), search_label, FALSE, FALSE, 0);
 
-    edit = gtk_entry_new();
-    gtk_editable_set_editable(GTK_EDITABLE(edit), TRUE);
-    gtk_label_set_mnemonic_widget(GTK_LABEL(search_label), edit);
-    g_signal_connect(edit, "changed",
-                     G_CALLBACK(ui_jump_to_track_edit_cb), treeview);
-
-    g_signal_connect(edit, "key_press_event",
-                     G_CALLBACK(ui_jump_to_track_edit_keypress_cb), treeview);
-
-    g_signal_connect(jump_to_track_win, "key_press_event",
-                     G_CALLBACK(ui_jump_to_track_keypress_cb), treeview);
-
-    gtk_box_pack_start(GTK_BOX(hbox), edit, TRUE, TRUE, 3);
+    filter_entry = gtk_entry_new ();
+    gtk_label_set_mnemonic_widget ((GtkLabel *) search_label, filter_entry);
+    g_signal_connect (filter_entry, "changed", (GCallback) fill_list, NULL);
+    gtk_entry_set_activates_default ((GtkEntry *) filter_entry, TRUE);
+    gtk_box_pack_start ((GtkBox *) hbox, filter_entry, TRUE, TRUE, 3);
 
     /* remember text entry */
-    toggle2 = gtk_check_button_new_with_label(_("Remember"));
-    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toggle2),
-                                 aud_cfg->remember_jtf_entry ? TRUE : FALSE);
+    GtkWidget * toggle2 = gtk_check_button_new_with_label (_("Remember"));
+    gtk_toggle_button_set_active ((GtkToggleButton *) toggle2, aud_get_bool
+     ("audgui", "remember_jtf_entry"));
     gtk_box_pack_start(GTK_BOX(hbox), toggle2, FALSE, FALSE, 0);
-    g_signal_connect(toggle2, "clicked",
-                     G_CALLBACK(ui_jump_to_track_toggle2_cb),
-                     toggle2);
+    g_signal_connect (toggle2, "clicked", (GCallback) toggle_button_cb, "remember_jtf_entry");
 
     /* clear button */
-    rescan = gtk_button_new_with_mnemonic (_("Clea_r"));
+    GtkWidget * rescan = gtk_button_new_with_mnemonic (_("Clea_r"));
     gtk_button_set_image ((GtkButton *) rescan, gtk_image_new_from_stock
      (GTK_STOCK_CLEAR, GTK_ICON_SIZE_BUTTON));
     gtk_box_pack_start(GTK_BOX(hbox), rescan, FALSE, FALSE, 0);
+    g_signal_connect (rescan, "clicked", (GCallback) clear_cb, NULL);
 
-
-    /* pack to container */
-    storage = g_object_new(G_TYPE_OBJECT, NULL);
-    g_object_set_data(storage, "widget", rescan);
-    g_object_set_data(storage, "treeview", treeview);
-    g_object_set_data(storage, "edit", edit);
-
-    g_signal_connect (rescan, "clicked", (GCallback) clear_cb, storage);
-
-    gtk_widget_set_can_default(rescan, TRUE);
-    gtk_widget_grab_default(rescan);
-
-    scrollwin = gtk_scrolled_window_new(NULL, NULL);
+    GtkWidget * scrollwin = gtk_scrolled_window_new (NULL, NULL);
     gtk_container_add(GTK_CONTAINER(scrollwin), treeview);
     gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrollwin),
                                    GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
@@ -492,54 +310,68 @@ audgui_jump_to_track(void)
                                         GTK_SHADOW_IN);
     gtk_box_pack_start(GTK_BOX(vbox), scrollwin, TRUE, TRUE, 0);
 
-    sep = gtk_hseparator_new();
-    gtk_box_pack_start(GTK_BOX(vbox), sep, FALSE, FALSE, 0);
-
-    bbox = gtk_hbutton_box_new();
+    GtkWidget * bbox = gtk_hbutton_box_new ();
     gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_END);
     gtk_box_set_spacing(GTK_BOX(bbox), 4);
     gtk_box_pack_start(GTK_BOX(vbox), bbox, FALSE, FALSE, 0);
 
     /* close dialog toggle */
-    toggle = gtk_check_button_new_with_label(_("Close on Jump"));
-    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(toggle),
-                                 aud_cfg->close_jtf_dialog ? TRUE : FALSE);
+    GtkWidget * toggle = gtk_check_button_new_with_label(_("Close on Jump"));
+    gtk_toggle_button_set_active ((GtkToggleButton *) toggle, aud_get_bool
+     ("audgui", "close_jtf_dialog"));
     gtk_box_pack_start(GTK_BOX(bbox), toggle, FALSE, FALSE, 0);
-    g_signal_connect(toggle, "clicked",
-                     G_CALLBACK(ui_jump_to_track_toggle_cb),
-                     toggle);
-
-    queue = gtk_button_new_with_mnemonic(_("_Queue"));
-    gtk_button_set_image(GTK_BUTTON(queue),
-                     gtk_image_new_from_stock(AUD_STOCK_QUEUETOGGLE, GTK_ICON_SIZE_BUTTON));
-    gtk_box_pack_start(GTK_BOX(bbox), queue, FALSE, FALSE, 0);
-
-    gtk_widget_set_can_default(queue, TRUE);
-    g_signal_connect(queue, "clicked",
-                     G_CALLBACK(ui_jump_to_track_queue_cb),
-                     treeview);
-    g_signal_connect(gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)), "changed",
-                     G_CALLBACK(ui_jump_to_track_selection_changed_cb),
-                     queue);
-
-    jump = gtk_button_new_from_stock(GTK_STOCK_JUMP_TO);
+    g_signal_connect (toggle, "clicked", (GCallback) toggle_button_cb, "close_jtf_dialog");
+
+    /* queue button */
+    queue_button = gtk_button_new_with_mnemonic(_("_Queue"));
+    gtk_button_set_image ((GtkButton *) queue_button, gtk_image_new_from_stock
+     (AUD_STOCK_QUEUETOGGLE, GTK_ICON_SIZE_BUTTON));
+    gtk_box_pack_start ((GtkBox *) bbox, queue_button, FALSE, FALSE, 0);
+
+    g_signal_connect (queue_button, "clicked", (GCallback) do_queue, NULL);
+
+    /* jump button */
+    GtkWidget * jump = gtk_button_new_from_stock (GTK_STOCK_JUMP_TO);
     gtk_box_pack_start(GTK_BOX(bbox), jump, FALSE, FALSE, 0);
 
-    g_signal_connect_swapped(jump, "clicked",
-                             G_CALLBACK(ui_jump_to_track_jump_cb),
-                             treeview);
+    g_signal_connect (jump, "clicked", (GCallback) do_jump, NULL);
 
     gtk_widget_set_can_default(jump, TRUE);
     gtk_widget_grab_default(jump);
 
-    close = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
+    /* close button */
+    GtkWidget * close = gtk_button_new_from_stock (GTK_STOCK_CLOSE);
     gtk_box_pack_start(GTK_BOX(bbox), close, FALSE, FALSE, 0);
     g_signal_connect (close, "clicked", (GCallback) audgui_jump_to_track_hide,
      NULL);
     gtk_widget_set_can_default(close, TRUE);
+}
 
-    g_timeout_add(100, (GSourceFunc)ui_jump_to_track_fill, treeview);
+void audgui_jump_to_track (void)
+{
+    bool_t create = (! jump_to_track_win);
+    if (create)
+        create_window ();
+
+    g_return_if_fail (filter_entry);
+
+    if (aud_get_bool ("audgui", "remember_jtf_entry"))
+        gtk_editable_select_region ((GtkEditable *) filter_entry, 0, -1);
+    else
+        gtk_entry_set_text ((GtkEntry *) filter_entry, "");
+
+    if (! watching)
+    {
+        fill_list ();
+        hook_associate ("playlist update", update_cb, NULL);
+        hook_associate ("playlist activate", activate_cb, NULL);
+        watching = TRUE;
+    }
+
+    if (create)
+        gtk_widget_show_all (jump_to_track_win);
+    else
+        gtk_window_present ((GtkWindow *) jump_to_track_win);
 
-    gtk_widget_show_all(jump_to_track_win);
-    gtk_widget_grab_focus(edit);
+    gtk_widget_grab_focus (filter_entry);
 }
diff --git a/src/libaudgui/ui_jumptotrack.h b/src/libaudgui/ui_jumptotrack.h
deleted file mode 100644
index 244ee24..0000000
--- a/src/libaudgui/ui_jumptotrack.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*  Audacious - Cross-platform multimedia player
- *  Copyright (C) 2005-2006  Audacious development team.
- *
- *  BMP - Cross-platform multimedia player
- *  Copyright (C) 2003-2004  BMP development team.
- *
- *  Based on XMMS:
- *  Copyright (C) 1998-2003  XMMS development team.
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; under version 3 of the License.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program.  If not, see <http://www.gnu.org/licenses>.
- *
- *  The Audacious team does not consider modular code linking to
- *  Audacious or using our public API to be a derived work.
- */
-
-#ifndef AUDACIOUS_UI_JUMPTOTRACK_H
-#define AUDACIOUS_UI_JUMPTOTRACK_H
-
-void ui_jump_to_track_update(GtkWidget * widget, gpointer user_data);
-void audgui_jump_to_track(void);
-void audgui_jump_to_track_hide(void);
-
-#endif /* AUDACIOUS_UI_JUMPTOTRACK_H */
diff --git a/src/libaudgui/ui_jumptotrack_cache.c b/src/libaudgui/ui_jumptotrack_cache.c
index 97202d0..9eed947 100644
--- a/src/libaudgui/ui_jumptotrack_cache.c
+++ b/src/libaudgui/ui_jumptotrack_cache.c
@@ -1,20 +1,21 @@
-/*  Audacious - Cross-platform multimedia player
- *  Copyright (C) 2008 Audacious development team.
+/*
+ * ui_jumptotrack_cache.c
+ * Copyright 2008-2011 Jussi Judin and John Lindgren
  *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; under version 3 of the License.
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; under version 3 of the License.
  *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
  *
- *  You should have received a copy of the GNU General Public License
- *  along with this program.  If not, see <http://www.gnu.org/licenses>.
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses>.
  *
- *  The Audacious team does not consider modular code linking to
- *  Audacious or using our public API to be a derived work.
+ * The Audacious team does not consider modular code linking to
+ * Audacious or using our public API to be a derived work.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -22,6 +23,8 @@
 #endif
 
 #include <glib.h>
+
+#include <stdlib.h>
 #include <string.h>
 #include <assert.h>
 #ifdef HAVE_SYS_TYPES_H
@@ -32,17 +35,40 @@
 #include <audacious/playlist.h>
 
 #include "ui_jumptotrack_cache.h"
-#include "ui_regex.h"
+#include "ui_regex.h"
 
 // Struct to keep information about matches from searches.
 typedef struct
 {
-    GArray* track_entries; // JumpToTrackEntry*
-    GArray* normalized_titles; // gchar*
+    GArray * entries; // int
+    GArray * titles, * artists, * albums, * paths, * filenames; // char *
 } KeywordMatches;
 
 static void ui_jump_to_track_cache_init (JumpToTrackCache * cache);
 
+static KeywordMatches * keyword_matches_new (void)
+{
+    KeywordMatches * k = g_malloc (sizeof (KeywordMatches));
+    k->entries = g_array_new (FALSE, FALSE, sizeof (int));
+    k->titles = g_array_new (FALSE, FALSE, sizeof (char *));
+    k->artists = g_array_new (FALSE, FALSE, sizeof (char *));
+    k->albums = g_array_new (FALSE, FALSE, sizeof (char *));
+    k->paths = g_array_new (FALSE, FALSE, sizeof (char *));
+    k->filenames = g_array_new (FALSE, FALSE, sizeof (char *));
+    return k;
+}
+
+static void keyword_matches_free (KeywordMatches * k)
+{
+    g_array_free (k->entries, TRUE);
+    g_array_free (k->titles, TRUE);
+    g_array_free (k->artists, TRUE);
+    g_array_free (k->albums, TRUE);
+    g_array_free (k->paths, TRUE);
+    g_array_free (k->filenames, TRUE);
+    g_free (k);
+}
+
 /**
  * Creates an regular expression list usable in searches from search keyword.
  *
@@ -57,7 +83,7 @@ static GSList*
 ui_jump_to_track_cache_regex_list_create(const GString* keyword)
 {
     GSList *regex_list = NULL;
-    gchar **words = NULL;
+    char **words = NULL;
     int i = -1;
     /* Chop the key string into ' '-separated key regex-pattern strings */
     words = g_strsplit(keyword->str, " ", 0);
@@ -108,8 +134,8 @@ ui_jump_to_track_cache_regex_list_free(GSList* regex_list)
 /**
  * Checks if 'song' matches all regular expressions in 'regex_list'.
  */
-static gboolean
-ui_jump_to_track_match(const gchar * song, GSList *regex_list)
+static bool_t
+ui_jump_to_track_match(const char * song, GSList *regex_list)
 {
     if ( song == NULL )
         return FALSE;
@@ -140,37 +166,41 @@ ui_jump_to_track_cache_match_keyword(JumpToTrackCache* cache,
                                      const GString* keyword)
 {
     GSList* regex_list = ui_jump_to_track_cache_regex_list_create(keyword);
-    GArray * track_entries = g_array_new (FALSE, FALSE, sizeof (gint));
-    GArray* normalized_titles = g_array_new(FALSE, FALSE, sizeof(gchar*));
-    gboolean match = FALSE;
-    int i = 0;
 
-    for (i = 0; i < search_space->normalized_titles->len; i++)
+    KeywordMatches * k = keyword_matches_new ();
+
+    for (int i = 0; i < search_space->entries->len; i ++)
     {
-        gchar* title = g_array_index(search_space->normalized_titles, gchar*, i);
+        char * title = g_array_index (search_space->titles, char *, i);
+        char * artist = g_array_index (search_space->artists, char *, i);
+        char * album = g_array_index (search_space->albums, char *, i);
+        char * path = g_array_index (search_space->paths, char *, i);
+        char * filename = g_array_index (search_space->filenames, char *, i);
+        bool_t match;
 
         if (regex_list != NULL)
-            match = ui_jump_to_track_match(title, regex_list);
+            match = ui_jump_to_track_match (title, regex_list)
+             || ui_jump_to_track_match (artist, regex_list)
+             || ui_jump_to_track_match (album, regex_list)
+             || ui_jump_to_track_match (path, regex_list)
+             || ui_jump_to_track_match (filename, regex_list);
         else
             match = TRUE;
 
         if (match) {
-            g_array_append_val (track_entries, g_array_index
-             (search_space->track_entries, gint, i));
-            g_array_append_val(normalized_titles, title);
+            g_array_append_val (k->entries, g_array_index (search_space->entries, int, i));
+            g_array_append_val (k->titles, title);
+            g_array_append_val (k->artists, artist);
+            g_array_append_val (k->albums, album);
+            g_array_append_val (k->paths, path);
+            g_array_append_val (k->filenames, filename);
         }
     }
 
-    KeywordMatches* keyword_matches = g_new(KeywordMatches, 1);
-    keyword_matches->track_entries = track_entries;
-    keyword_matches->normalized_titles = normalized_titles;
-
-    g_hash_table_insert(cache->keywords,
-                        GINT_TO_POINTER(g_string_hash(keyword)),
-                        keyword_matches);
+    g_hash_table_insert (cache->keywords, GINT_TO_POINTER (g_string_hash (keyword)), k);
 
     ui_jump_to_track_cache_regex_list_free(regex_list);
-    return track_entries;
+    return k->entries;
 }
 
 /**
@@ -182,12 +212,18 @@ ui_jump_to_track_cache_match_keyword(JumpToTrackCache* cache,
  *
  * String returned by this function should be freed manually.
  */
-static gchar *
-normalize_search_string(const gchar* string)
+
+/* calls str_unref() on <string> */
+static char * normalize_search_string (char * string)
 {
-    gchar* normalized_string = g_utf8_normalize(string, -1, G_NORMALIZE_NFKD);
-    gchar* folded_string = g_utf8_casefold(normalized_string, -1);
+    if (! string)
+        return NULL;
+
+    char* normalized_string = g_utf8_normalize(string, -1, G_NORMALIZE_NFKD);
+    char* folded_string = g_utf8_casefold(normalized_string, -1);
     g_free(normalized_string);
+    str_unref (string);
+
     return folded_string;
 }
 
@@ -197,21 +233,14 @@ normalize_search_string(const gchar* string)
 static void
 ui_jump_to_track_cache_free_keywordmatch_data(KeywordMatches* match_entry)
 {
-    int i = 0;
-    assert(match_entry->normalized_titles->len == match_entry->track_entries->len);
-    for (i = 0; i < match_entry->normalized_titles->len; i++)
-        g_free(g_array_index(match_entry->normalized_titles, gchar*, i));
-}
-
-/**
- * Frees the memory reserved for an search result.
- */
-static void
-ui_jump_to_track_cache_free_cache_entry(gpointer entry)
-{
-    KeywordMatches* match_entry = (KeywordMatches*)entry;
-    g_array_free(match_entry->track_entries, TRUE);
-    g_array_free(match_entry->normalized_titles, TRUE);
+    for (int i = 0; i < match_entry->entries->len; i ++)
+    {
+        g_free (g_array_index (match_entry->titles, char *, i));
+        g_free (g_array_index (match_entry->artists, char *, i));
+        g_free (g_array_index (match_entry->albums, char *, i));
+        g_free (g_array_index (match_entry->paths, char *, i));
+        g_free (g_array_index (match_entry->filenames, char *, i));
+    }
 }
 
 /**
@@ -224,8 +253,7 @@ ui_jump_to_track_cache_new()
 {
     JumpToTrackCache* cache = g_new(JumpToTrackCache, 1);
 
-    cache->keywords = g_hash_table_new_full(NULL, NULL, NULL,
-                                            ui_jump_to_track_cache_free_cache_entry);
+    cache->keywords = g_hash_table_new_full (NULL, NULL, NULL, (GDestroyNotify) keyword_matches_free);
     ui_jump_to_track_cache_init (cache);
     return cache;
 }
@@ -260,37 +288,39 @@ ui_jump_to_track_cache_clear(JumpToTrackCache* cache)
  */
 static void ui_jump_to_track_cache_init (JumpToTrackCache * cache)
 {
-        gint playlist, entries, entry;
-        GArray * track_entries = g_array_new (FALSE, FALSE, sizeof (gint));
-        GArray* normalized_titles = g_array_new(FALSE, FALSE, sizeof(gchar*));
-        GString* empty_keyword = g_string_new("");
-
-        // Reset cache state
-        ui_jump_to_track_cache_clear(cache);
+    // Reset cache state
+    ui_jump_to_track_cache_clear(cache);
 
-        // Initialize cache with playlist data
-        playlist = aud_playlist_get_active ();
-        entries = aud_playlist_entry_count (playlist);
+    // Initialize cache with playlist data
+    int playlist = aud_playlist_get_active ();
+    int entries = aud_playlist_entry_count (playlist);
 
-        for (entry = 0; entry < entries; entry ++)
-        {
-            gchar * title = normalize_search_string (aud_playlist_entry_get_title
-             (playlist, entry, TRUE));
+    KeywordMatches * k = keyword_matches_new ();
 
-            g_array_append_val (track_entries, entry);
-            g_array_append_val (normalized_titles, title);
-        }
+    for (int entry = 0; entry < entries; entry ++)
+    {
+        Tuple * tuple = aud_playlist_entry_get_tuple (playlist, entry, TRUE);
+        char * title = normalize_search_string (tuple ? tuple_get_str (tuple, FIELD_TITLE, NULL) : NULL);
+        char * artist = normalize_search_string (tuple ? tuple_get_str (tuple, FIELD_ARTIST, NULL) : NULL);
+        char * album = normalize_search_string (tuple ? tuple_get_str (tuple, FIELD_ALBUM, NULL) : NULL);
+        char * path = normalize_search_string (tuple ? tuple_get_str (tuple, FIELD_FILE_PATH, NULL) : NULL);
+        char * filename = normalize_search_string (tuple ? tuple_get_str (tuple, FIELD_FILE_NAME, NULL) : NULL);
+        if (tuple)
+            tuple_unref (tuple);
+
+        g_array_append_val (k->entries, entry);
+        g_array_append_val (k->titles, title);
+        g_array_append_val (k->artists, artist);
+        g_array_append_val (k->albums, album);
+        g_array_append_val (k->paths, path);
+        g_array_append_val (k->filenames, filename);
+    }
 
-        // Finally insert all titles into cache into an empty key "" so that
-        // the matchable data has specified place to be.
-        KeywordMatches* keyword_data = g_new(KeywordMatches, 1);
-        keyword_data->track_entries = track_entries;
-        keyword_data->normalized_titles = normalized_titles;
-        g_hash_table_insert(cache->keywords,
-                            GINT_TO_POINTER(g_string_hash(empty_keyword)),
-                            keyword_data);
-        g_string_free(empty_keyword,
-                      TRUE);
+    // Finally insert all titles into cache into an empty key "" so that
+    // the matchable data has specified place to be.
+    GString * empty_keyword = g_string_new ("");
+    g_hash_table_insert (cache->keywords, GINT_TO_POINTER (g_string_hash (empty_keyword)), k);
+    g_string_free (empty_keyword, TRUE);
 }
 
 /**
@@ -341,15 +371,15 @@ static void ui_jump_to_track_cache_init (JumpToTrackCache * cache)
  * after a few letters typed on playlists with thousands of songs and
  * reduce useless iteration quite a lot.
  *
- * Return: GArray of gint
+ * Return: GArray of int
  */
 const GArray * ui_jump_to_track_cache_search (JumpToTrackCache * cache, const
- gchar * keyword)
+ char * keyword)
 {
-    gchar* normalized_keyword = normalize_search_string(keyword);
+    char * normalized_keyword = normalize_search_string (str_get (keyword));
     GString* keyword_string = g_string_new(normalized_keyword);
     GString* match_string = g_string_new(normalized_keyword);
-    gsize match_string_length = keyword_string->len;
+    int match_string_length = keyword_string->len;
 
     while (match_string_length >= 0)
     {
@@ -365,7 +395,7 @@ const GArray * ui_jump_to_track_cache_search (JumpToTrackCache * cache, const
                 g_string_free(keyword_string, TRUE);
                 g_string_free(match_string, TRUE);
                 g_free(normalized_keyword);
-                return matched_entries->track_entries;
+                return matched_entries->entries;
             }
 
             // Do normal search by using the result of previous search
@@ -385,8 +415,7 @@ const GArray * ui_jump_to_track_cache_search (JumpToTrackCache * cache, const
     // the empty string to match against.
     AUDDBG("One should never get to this point. Something is really wrong with \
 cache->keywords hash table.");
-    assert(FALSE);
-    g_return_val_if_fail(FALSE, (GArray*)-1);
+    abort ();
 }
 
 void ui_jump_to_track_cache_free (JumpToTrackCache * cache)
diff --git a/src/libaudgui/ui_jumptotrack_cache.h b/src/libaudgui/ui_jumptotrack_cache.h
index f3c4163..26c8114 100644
--- a/src/libaudgui/ui_jumptotrack_cache.h
+++ b/src/libaudgui/ui_jumptotrack_cache.h
@@ -1,24 +1,25 @@
-/*  Audacious - Cross-platform multimedia player
- *  Copyright (C) 2008  Audacious development team.
+/*
+ * ui_jumptotrack_cache.h
+ * Copyright 2008 Jussi Judin
  *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; under version 3 of the License.
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; under version 3 of the License.
  *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
  *
- *  You should have received a copy of the GNU General Public License
- *  along with this program.  If not, see <http://www.gnu.org/licenses>.
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses>.
  *
- *  The Audacious team does not consider modular code linking to
- *  Audacious or using our public API to be a derived work.
+ * The Audacious team does not consider modular code linking to
+ * Audacious or using our public API to be a derived work.
  */
 
-#ifndef AUDACIOUS_UI_JUMPTOTRACK_CACHE_H
-#define AUDACIOUS_UI_JUMPTOTRACK_CACHE_H
+#ifndef LIBAUDGUI_UI_JUMPTOTRACK_CACHE_H
+#define LIBAUDGUI_UI_JUMPTOTRACK_CACHE_H
 
 #include <glib.h>
 
@@ -31,7 +32,7 @@ struct _JumpToTrackCache
 
 extern JumpToTrackCache* ui_jump_to_track_cache_new(void);
 extern const GArray * ui_jump_to_track_cache_search (JumpToTrackCache * cache,
- const gchar * keyword);
+ const char * keyword);
 extern void ui_jump_to_track_cache_free(JumpToTrackCache* cache);
 
-#endif /* AUDACIOUS_UI_JUMPTOTRACK_CACHE_H */
+#endif
diff --git a/src/libaudgui/ui_playlist_manager.c b/src/libaudgui/ui_playlist_manager.c
index 09ec102..8a43df5 100644
--- a/src/libaudgui/ui_playlist_manager.c
+++ b/src/libaudgui/ui_playlist_manager.c
@@ -1,31 +1,32 @@
-/*  Audacious - Cross-platform multimedia player
- *  Copyright (C) 2005-2011  Audacious development team.
+/*
+ * ui_playlist_manager.c
+ * Copyright 2006-2011 Giacomo Lozito and John Lindgren
  *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; under version 3 of the License.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
  *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions, and the following disclaimer.
  *
- *  You should have received a copy of the GNU General Public License
- *  along with this program.  If not, see <http://www.gnu.org/licenses>.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ *    this list of conditions, and the following disclaimer in the documentation
+ *    provided with the distribution.
  *
- *  The Audacious team does not consider modular code linking to
- *  Audacious or using our public API to be a derived work.
+ * This software is provided "as is" and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising from
+ * the use of this software.
  */
 
 #include <gtk/gtk.h>
 
-#include <audacious/audconfig.h>
 #include <audacious/gtk-compat.h>
 #include <audacious/i18n.h>
+#include <audacious/misc.h>
 #include <audacious/playlist.h>
 #include <libaudcore/hook.h>
 
 #include "config.h"
+#include "init.h"
 #include "libaudgui.h"
 #include "libaudgui-gtk.h"
 #include "list.h"
@@ -34,13 +35,17 @@ static GtkWidget * playman_win = NULL;
 
 static void save_position (GtkWidget * window)
 {
-    gtk_window_get_position ((GtkWindow *) window,
-     & aud_cfg->playlist_manager_x, & aud_cfg->playlist_manager_y);
-    gtk_window_get_size ((GtkWindow *) window,
-     & aud_cfg->playlist_manager_width, & aud_cfg->playlist_manager_height);
+    int x, y, w, h;
+    gtk_window_get_position ((GtkWindow *) window, & x, & y);
+    gtk_window_get_size ((GtkWindow *) window, & w, & h);
+
+    aud_set_int ("audgui", "playlist_manager_x", x);
+    aud_set_int ("audgui", "playlist_manager_y", y);
+    aud_set_int ("audgui", "playlist_manager_w", w);
+    aud_set_int ("audgui", "playlist_manager_h", h);
 }
 
-static gboolean hide_cb (GtkWidget * window)
+static bool_t hide_cb (GtkWidget * window)
 {
     save_position (window);
     gtk_widget_hide (window);
@@ -54,7 +59,8 @@ static void rename_cb (void)
 
 static void new_cb (GtkButton * button, void * unused)
 {
-    aud_playlist_insert (-1);
+    aud_playlist_insert (aud_playlist_get_active () + 1);
+    aud_playlist_set_active (aud_playlist_get_active () + 1);
 }
 
 static void delete_cb (GtkButton * button, GtkWidget * list)
@@ -68,12 +74,14 @@ static void save_config_cb (void * hook_data, void * user_data)
         save_position ((GtkWidget *) user_data);
 }
 
-static void get_value (void * user, gint row, gint column, GValue * value)
+static void get_value (void * user, int row, int column, GValue * value)
 {
     switch (column)
     {
-    case 0:
-        g_value_set_string (value, aud_playlist_get_title (row));
+    case 0:;
+        char * title = aud_playlist_get_title (row);
+        g_value_set_string (value, title);
+        str_unref (title);
         break;
     case 1:
         g_value_set_int (value, aud_playlist_entry_count (row));
@@ -81,30 +89,30 @@ static void get_value (void * user, gint row, gint column, GValue * value)
     }
 }
 
-static gboolean get_selected (void * user, gint row)
+static bool_t get_selected (void * user, int row)
 {
     return (row == aud_playlist_get_active ());
 }
 
-static void set_selected (void * user, gint row, gboolean selected)
+static void set_selected (void * user, int row, bool_t selected)
 {
     if (selected)
         aud_playlist_set_active (row);
 }
 
-static void select_all (void * user, gboolean selected)
+static void select_all (void * user, bool_t selected)
 {
 }
 
-static void activate_row (void * user, gint row)
+static void activate_row (void * user, int row)
 {
     aud_playlist_set_active (row);
 
-    if (aud_cfg->playlist_manager_close_on_activate)
+    if (aud_get_bool ("audgui", "playlist_manager_close_on_activate"))
         hide_cb (playman_win);
 }
 
-static void shift_rows (void * user, gint row, gint before)
+static void shift_rows (void * user, int row, int before)
 {
     if (before < row)
         aud_playlist_reorder (row, before, 1);
@@ -124,37 +132,93 @@ static const AudguiListCallbacks callbacks = {
  .get_data = NULL,
  .receive_data = NULL};
 
-static gboolean position_changed = FALSE;
+static bool_t search_cb (GtkTreeModel * model, int column, const char * key,
+ GtkTreeIter * iter, void * user)
+{
+    GtkTreePath * path = gtk_tree_model_get_path (model, iter);
+    g_return_val_if_fail (path, TRUE);
+    int row = gtk_tree_path_get_indices (path)[0];
+    gtk_tree_path_free (path);
+
+    char * temp = aud_playlist_get_title (row);
+    g_return_val_if_fail (temp, TRUE);
+    char * title = g_utf8_strdown (temp, -1);
+    str_unref (temp);
+
+    temp = g_utf8_strdown (key, -1);
+    char * * keys = g_strsplit (temp, " ", 0);
+    g_free (temp);
+
+    bool_t match = FALSE;
+
+    for (int i = 0; keys[i]; i ++)
+    {
+        if (! keys[i][0])
+            continue;
+
+        if (strstr (title, keys[i]))
+            match = TRUE;
+        else
+        {
+            match = FALSE;
+            break;
+        }
+    }
+
+    g_free (title);
+    g_strfreev (keys);
+
+    return ! match; /* TRUE == not matched, FALSE == matched */
+}
+
+static bool_t position_changed = FALSE;
+static bool_t playlist_activated = FALSE;
 
 static void update_hook (void * data, void * list)
 {
-    if (GPOINTER_TO_INT (data) >= PLAYLIST_UPDATE_STRUCTURE)
+    int rows = aud_playlist_count ();
+
+    if (GPOINTER_TO_INT (data) == PLAYLIST_UPDATE_STRUCTURE)
     {
-        gint old_rows = audgui_list_row_count (list);
-        gint rows = aud_playlist_count ();
+        int old_rows = audgui_list_row_count (list);
 
         if (rows < old_rows)
-        {
             audgui_list_delete_rows (list, rows, old_rows - rows);
-            old_rows = rows;
-        }
+        else if (rows > old_rows)
+            audgui_list_insert_rows (list, old_rows, rows - old_rows);
 
-        audgui_list_update_rows (list, 0, old_rows);
-        audgui_list_update_selection (list, 0, old_rows);
+        position_changed = TRUE;
+        playlist_activated = TRUE;
+    }
 
-        if (rows > old_rows)
-            audgui_list_insert_rows (list, old_rows, rows - old_rows);
+    if (GPOINTER_TO_INT (data) >= PLAYLIST_UPDATE_METADATA)
+        audgui_list_update_rows (list, 0, rows);
 
+    if (playlist_activated)
+    {
         audgui_list_set_focus (list, aud_playlist_get_active ());
+        audgui_list_update_selection (list, 0, rows);
+        playlist_activated = FALSE;
     }
-    
-    if (GPOINTER_TO_INT (data) >= PLAYLIST_UPDATE_STRUCTURE || position_changed)
+
+    if (position_changed)
     {
         audgui_list_set_highlight (list, aud_playlist_get_playing ());
         position_changed = FALSE;
     }
 }
 
+static void activate_hook (void * data, void * list)
+{
+    if (aud_playlist_update_pending ())
+        playlist_activated = TRUE;
+    else
+    {
+        audgui_list_set_focus (list, aud_playlist_get_active ());
+        audgui_list_update_selection (list, 0, aud_playlist_count ());
+    }
+}
+
 static void position_hook (void * data, void * list)
 {
     if (aud_playlist_update_pending ())
@@ -163,8 +227,13 @@ static void position_hook (void * data, void * list)
         audgui_list_set_highlight (list, aud_playlist_get_playing ());
 }
 
-void
-audgui_playlist_manager_ui_show (GtkWidget *mainwin)
+static void close_on_activate_cb (GtkToggleButton * toggle)
+{
+    aud_set_bool ("audgui", "playlist_manager_close_on_activate",
+     gtk_toggle_button_get_active (toggle));
+}
+
+void audgui_playlist_manager (void)
 {
     GtkWidget *playman_vbox;
     GtkWidget * playman_pl_lv, * playman_pl_lv_sw;
@@ -181,7 +250,6 @@ audgui_playlist_manager_ui_show (GtkWidget *mainwin)
 
     playman_win = gtk_window_new( GTK_WINDOW_TOPLEVEL );
     gtk_window_set_type_hint( GTK_WINDOW(playman_win), GDK_WINDOW_TYPE_HINT_DIALOG );
-    gtk_window_set_transient_for( GTK_WINDOW(playman_win) , GTK_WINDOW(mainwin) );
     gtk_window_set_title( GTK_WINDOW(playman_win), _("Playlist Manager") );
     gtk_container_set_border_width ((GtkContainer *) playman_win, 6);
     playman_win_hints.min_width = 400;
@@ -189,12 +257,15 @@ audgui_playlist_manager_ui_show (GtkWidget *mainwin)
     gtk_window_set_geometry_hints( GTK_WINDOW(playman_win) , GTK_WIDGET(playman_win) ,
                                    &playman_win_hints , GDK_HINT_MIN_SIZE );
 
-    if (aud_cfg->playlist_manager_width)
+    int x = aud_get_int ("audgui", "playlist_manager_x");
+    int y = aud_get_int ("audgui", "playlist_manager_y");
+    int w = aud_get_int ("audgui", "playlist_manager_w");
+    int h = aud_get_int ("audgui", "playlist_manager_h");
+
+    if (w && h)
     {
-        gtk_window_move ((GtkWindow *) playman_win, aud_cfg->playlist_manager_x,
-         aud_cfg->playlist_manager_y);
-        gtk_window_set_default_size ((GtkWindow *) playman_win,
-         aud_cfg->playlist_manager_width, aud_cfg->playlist_manager_height);
+        gtk_window_move ((GtkWindow *) playman_win, x, y);
+        gtk_window_set_default_size ((GtkWindow *) playman_win, w, h);
     }
 
     g_signal_connect ((GObject *) playman_win, "delete-event", (GCallback)
@@ -205,11 +276,14 @@ audgui_playlist_manager_ui_show (GtkWidget *mainwin)
     gtk_container_add( GTK_CONTAINER(playman_win) , playman_vbox );
 
     playman_pl_lv = audgui_list_new (& callbacks, NULL, aud_playlist_count ());
-    audgui_list_add_column (playman_pl_lv, _("Title"), 0, G_TYPE_STRING, TRUE);
-    audgui_list_add_column (playman_pl_lv, _("Entries"), 1, G_TYPE_INT, FALSE);
+    audgui_list_add_column (playman_pl_lv, _("Title"), 0, G_TYPE_STRING, -1);
+    audgui_list_add_column (playman_pl_lv, _("Entries"), 1, G_TYPE_INT, 7);
     audgui_list_set_highlight (playman_pl_lv, aud_playlist_get_playing ());
+    gtk_tree_view_set_search_equal_func ((GtkTreeView *) playman_pl_lv,
+     search_cb, NULL, NULL);
     hook_associate ("playlist update", update_hook, playman_pl_lv);
-    hook_associate ("playlist position", position_hook, playman_pl_lv);
+    hook_associate ("playlist activate", activate_hook, playman_pl_lv);
+    hook_associate ("playlist set playing", position_hook, playman_pl_lv);
 
     playman_pl_lv_sw = gtk_scrolled_window_new( NULL , NULL );
     gtk_scrolled_window_set_shadow_type ((GtkScrolledWindow *) playman_pl_lv_sw,
@@ -250,16 +324,25 @@ audgui_playlist_manager_ui_show (GtkWidget *mainwin)
     button = gtk_check_button_new_with_mnemonic
      (_("_Close dialog on activating playlist"));
     gtk_box_pack_start ((GtkBox *) hbox, button, FALSE, FALSE, 0);
-    audgui_connect_check_box (button,
-     & aud_cfg->playlist_manager_close_on_activate);
+    gtk_toggle_button_set_active ((GtkToggleButton *) button, aud_get_bool
+     ("audgui", "playlist_manager_close_on_activate"));
+    g_signal_connect (button, "toggled", (GCallback) close_on_activate_cb, NULL);
 
     gtk_widget_show_all( playman_win );
 
     hook_associate ("config save", save_config_cb, playman_win);
 }
 
-void audgui_playlist_manager_destroy(void)
+void audgui_playlist_manager_cleanup (void)
 {
-    if (playman_win)
-        hide_cb (playman_win);
+    if (! playman_win)
+        return;
+
+    hook_dissociate ("playlist update", update_hook);
+    hook_dissociate ("playlist activate", activate_hook);
+    hook_dissociate ("playlist set playing", position_hook);
+    hook_dissociate ("config save", save_config_cb);
+
+    gtk_widget_destroy (playman_win);
+    playman_win = NULL;
 }
diff --git a/src/libaudgui/ui_regex.h b/src/libaudgui/ui_regex.h
index 587f8d3..aecf3fa 100644
--- a/src/libaudgui/ui_regex.h
+++ b/src/libaudgui/ui_regex.h
@@ -1,20 +1,21 @@
-/*  Audacious - Cross-platform multimedia player
- *  Copyright (C) 2005-2006  Audacious development team.
+/*
+ * ui_regex.h
+ * Copyright 2010 Carlo Bramini
  *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; under version 3 of the License.
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; under version 3 of the License.
  *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
  *
- *  You should have received a copy of the GNU General Public License
- *  along with this program.  If not, see <http://www.gnu.org/licenses>.
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses>.
  *
- *  The Audacious team does not consider modular code linking to
- *  Audacious or using our public API to be a derived work.
+ * The Audacious team does not consider modular code linking to
+ * Audacious or using our public API to be a derived work.
  */
 
 #ifndef __UI_REGEX_H__
diff --git a/src/libaudgui/ui_urlopener.c b/src/libaudgui/ui_urlopener.c
index 45e39c0..2750013 100644
--- a/src/libaudgui/ui_urlopener.c
+++ b/src/libaudgui/ui_urlopener.c
@@ -1,26 +1,23 @@
-/*  Audacious - Cross-platform multimedia player
- *  Copyright (C) 2005-2010  Audacious development team
+/*
+ * ui_urlopener.c
+ * Copyright 1998-2003 XMMS development team
+ * Copyright 2003-2004 BMP development team
+ * Copyright 2008-2011 Tomasz Moń and John Lindgren
  *
- *  Based on BMP:
- *  Copyright (C) 2003-2004  BMP development team.
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; under version 3 of the License.
  *
- *  Based on XMMS:
- *  Copyright (C) 1998-2003  XMMS development team.
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
  *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; under version 3 of the License.
+ * You should have received a copy of the GNU General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses>.
  *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program.  If not, see <http://www.gnu.org/licenses>.
- *
- *  The Audacious team does not consider modular code linking to
- *  Audacious or using our public API to be a derived work.
+ * The Audacious team does not consider modular code linking to
+ * Audacious or using our public API to be a derived work.
  */
 
 #ifdef HAVE_CONFIG_H
@@ -30,7 +27,6 @@
 #include <glib.h>
 #include <gtk/gtk.h>
 
-#include <audacious/audconfig.h>
 #include <audacious/gtk-compat.h>
 #include <audacious/i18n.h>
 #include <audacious/drct.h>
@@ -39,20 +35,14 @@
 #include "libaudgui.h"
 #include "libaudgui-gtk.h"
 
-static void
-urlopener_add_url_callback(GtkWidget * widget,
-                      GtkEntry * entry)
+static void urlopener_add_url_callback (GtkWidget * widget, GtkEntry * entry)
 {
-    const gchar *text;
-
-    text = gtk_entry_get_text(entry);
-    aud_util_add_url_history_entry(text);
+    aud_history_add (gtk_entry_get_text (entry));
 }
 
-GtkWidget * urlopener_add_url_dialog_new (GCallback func, gboolean open)
+GtkWidget * urlopener_add_url_dialog_new (GCallback func, bool_t open)
 {
     GtkWidget * win, * vbox, * bbox, * cancel, * ok, * combo, * entry;
-    GList *url;
 
     win = gtk_window_new(GTK_WINDOW_TOPLEVEL);
     gtk_window_set_title ((GtkWindow *) win, open ? _("Open URL") : _("Add URL"));
@@ -71,9 +61,9 @@ GtkWidget * urlopener_add_url_dialog_new (GCallback func, gboolean open)
     gtk_window_set_focus(GTK_WINDOW(win), entry);
     gtk_entry_set_text(GTK_ENTRY(entry), "");
 
-    for (url = aud_cfg->url_history; url; url = g_list_next(url))
-        gtk_combo_box_text_append_text ((GtkComboBoxText *) combo,
-         (const gchar *) url->data);
+    const char * path;
+    for (int i = 0; (path = aud_history_get (i)); i ++)
+        gtk_combo_box_text_append_text ((GtkComboBoxText *) combo, path);
 
     g_signal_connect(entry, "activate",
                      G_CALLBACK(urlopener_add_url_callback),
@@ -114,7 +104,7 @@ static void
 on_add_url_add_clicked(GtkWidget * widget,
                        GtkWidget * entry)
 {
-    const gchar *text = gtk_entry_get_text(GTK_ENTRY(entry));
+    const char *text = gtk_entry_get_text(GTK_ENTRY(entry));
 
     if (text != NULL && * text)
         aud_drct_pl_add (text, -1);
@@ -124,13 +114,13 @@ static void
 on_add_url_ok_clicked(GtkWidget * widget,
                       GtkWidget * entry)
 {
-    const gchar *text = gtk_entry_get_text(GTK_ENTRY(entry));
+    const char *text = gtk_entry_get_text(GTK_ENTRY(entry));
 
     if (text != NULL && * text)
         aud_drct_pl_open (text);
 }
 
-void audgui_show_add_url_window (gboolean open)
+void audgui_show_add_url_window (bool_t open)
 {
     static GtkWidget *url_window = NULL;
 
diff --git a/src/libaudgui/urilist.c b/src/libaudgui/urilist.c
index a7def39..9e81394 100644
--- a/src/libaudgui/urilist.c
+++ b/src/libaudgui/urilist.c
@@ -1,22 +1,20 @@
 /*
- * libaudgui/urilist.c
+ * urilist.c
  * Copyright 2010 John Lindgren
  *
- * This file is part of Audacious.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
  *
- * Audacious is free software: you can redistribute it and/or modify it under
- * the terms of the GNU General Public License as published by the Free Software
- * Foundation, version 2 or version 3 of the License.
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions, and the following disclaimer.
  *
- * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ *    this list of conditions, and the following disclaimer in the documentation
+ *    provided with the distribution.
  *
- * You should have received a copy of the GNU General Public License along with
- * Audacious. If not, see <http://www.gnu.org/licenses/>.
- *
- * The Audacious team does not consider modular code linking to Audacious or
- * using our public API to be a derived work.
+ * This software is provided "as is" and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising from
+ * the use of this software.
  */
 
 #include <string.h>
@@ -29,18 +27,11 @@
 
 #include "libaudgui.h"
 
-typedef void (* ForEachFunc) (gchar *, void *);
-
-typedef struct
-{
-    gint playlist, at;
-    struct index * index;
-}
-AddState;
+typedef void (* ForEachFunc) (char *, void *);
 
-static gchar * check_uri (gchar * name)
+static char * check_uri (char * name)
 {
-    gchar * new;
+    char * new;
 
     if (strstr (name, "://") || ! (new = filename_to_uri (name)))
         return name;
@@ -49,9 +40,9 @@ static gchar * check_uri (gchar * name)
     return new;
 }
 
-static void urilist_for_each (const gchar * list, ForEachFunc func, void * user)
+static void urilist_for_each (const char * list, ForEachFunc func, void * user)
 {
-    const gchar * end, * next;
+    const char * end, * next;
 
     while (list[0])
     {
@@ -67,56 +58,33 @@ static void urilist_for_each (const gchar * list, ForEachFunc func, void * user)
     }
 }
 
-static void add_to_glist (gchar * name, GList * * listp)
+static void add_to_index (char * name, Index * index)
 {
-    * listp = g_list_prepend (* listp, name);
-}
-
-void audgui_urilist_open (const gchar * list)
-{
-    GList * glist = NULL;
-
-    urilist_for_each (list, (ForEachFunc) add_to_glist, & glist);
-    glist = g_list_reverse (glist);
-
-    aud_drct_pl_open_list (glist);
-
-    g_list_foreach (glist, (GFunc) g_free, NULL);
-    g_list_free (glist);
+    index_append (index, str_get (name));
+    g_free (name);
 }
 
-static void add_full (gchar * name, AddState * state)
+void audgui_urilist_open (const char * list)
 {
-    if (vfs_file_test (name, G_FILE_TEST_IS_DIR))
-    {
-        aud_playlist_insert_folder (state->playlist, state->at, name, FALSE);
-        g_free (name);
-    }
-    else if (aud_filename_is_playlist (name))
-    {
-        gint entries = aud_playlist_entry_count (state->playlist);
-        aud_playlist_insert_playlist (state->playlist, state->at, name);
-        state->at += aud_playlist_entry_count (state->playlist) - entries;
-    }
-    else
-        index_append (state->index, name);
+    Index * filenames = index_new ();
+    urilist_for_each (list, (ForEachFunc) add_to_index, filenames);
+    aud_drct_pl_open_list (filenames);
 }
 
-void audgui_urilist_insert (gint playlist, gint at, const gchar * list)
+void audgui_urilist_insert (int playlist, int at, const char * list)
 {
-    AddState state = {playlist, at, index_new ()};
-
-    urilist_for_each (list, (ForEachFunc) add_full, & state);
-    aud_playlist_entry_insert_batch (playlist, state.at, state.index, NULL);
+    Index * filenames = index_new ();
+    urilist_for_each (list, (ForEachFunc) add_to_index, filenames);
+    aud_playlist_entry_insert_batch (playlist, at, filenames, NULL, FALSE);
 }
 
-gchar * audgui_urilist_create_from_selected (gint playlist)
+char * audgui_urilist_create_from_selected (int playlist)
 {
-    gint entries = aud_playlist_entry_count (playlist);
-    gint space = 0;
-    gint count, length;
-    const gchar * name;
-    gchar * buffer, * set;
+    int entries = aud_playlist_entry_count (playlist);
+    int space = 0;
+    int count, length;
+    char * name;
+    char * buffer, * set;
 
     for (count = 0; count < entries; count ++)
     {
@@ -126,6 +94,7 @@ gchar * audgui_urilist_create_from_selected (gint playlist)
         name = aud_playlist_entry_get_filename (playlist, count);
         g_return_val_if_fail (name != NULL, NULL);
         space += strlen (name) + 1;
+        str_unref (name);
     }
 
     if (! space)
@@ -147,6 +116,7 @@ gchar * audgui_urilist_create_from_selected (gint playlist)
         set += length;
         * set ++ = '\n';
         space -= length + 1;
+        str_unref (name);
     }
 
     * -- set = 0; /* last newline replaced with null */
diff --git a/src/libaudgui/util.c b/src/libaudgui/util.c
index ac3667a..e1322ed 100644
--- a/src/libaudgui/util.c
+++ b/src/libaudgui/util.c
@@ -1,22 +1,20 @@
 /*
- * libaudgui/util.c
- * Copyright 2010 John Lindgren
+ * util.c
+ * Copyright 2010-2011 John Lindgren
  *
- * This file is part of Audacious.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
  *
- * Audacious is free software: you can redistribute it and/or modify it under
- * the terms of the GNU General Public License as published by the Free Software
- * Foundation, version 2 or version 3 of the License.
+ * 1. Redistributions of source code must retain the above copyright notice,
+ *    this list of conditions, and the following disclaimer.
  *
- * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
+ *    this list of conditions, and the following disclaimer in the documentation
+ *    provided with the distribution.
  *
- * You should have received a copy of the GNU General Public License along with
- * Audacious. If not, see <http://www.gnu.org/licenses/>.
- *
- * The Audacious team does not consider modular code linking to Audacious or
- * using our public API to be a derived work.
+ * This software is provided "as is" and without any warranty, express or
+ * implied. In no event shall the authors be liable for any damages arising from
+ * the use of this software.
  */
 
 #include <gdk/gdkkeysyms.h>
@@ -25,22 +23,26 @@
 
 #include <audacious/debug.h>
 #include <audacious/gtk-compat.h>
+#include <audacious/i18n.h>
 #include <audacious/playlist.h>
-#include <audacious/plugin.h>
 #include <audacious/misc.h>
 #include <libaudcore/audstrings.h>
 #include <libaudcore/hook.h>
 
+#include "config.h"
+#include "init.h"
 #include "libaudgui.h"
 #include "libaudgui-gtk.h"
 
+static GdkPixbuf * current_pixbuf;
+
 void audgui_hide_on_delete (GtkWidget * widget)
 {
     g_signal_connect (widget, "delete-event", (GCallback)
      gtk_widget_hide_on_delete, NULL);
 }
 
-static gboolean escape_cb (GtkWidget * widget, GdkEventKey * event, void
+static bool_t escape_cb (GtkWidget * widget, GdkEventKey * event, void
  (* action) (GtkWidget * widget))
 {
     if (event->keyval == GDK_Escape)
@@ -55,51 +57,61 @@ static gboolean escape_cb (GtkWidget * widget, GdkEventKey * event, void
 void audgui_hide_on_escape (GtkWidget * widget)
 {
     g_signal_connect (widget, "key-press-event", (GCallback) escape_cb,
-     gtk_widget_hide);
+     (void *) gtk_widget_hide);
 }
 
 void audgui_destroy_on_escape (GtkWidget * widget)
 {
     g_signal_connect (widget, "key-press-event", (GCallback) escape_cb,
-     gtk_widget_destroy);
+     (void *) gtk_widget_destroy);
 }
 
-static void toggle_cb (GtkToggleButton * toggle, gboolean * setting)
+static void toggle_cb (GtkToggleButton * toggle, bool_t * setting)
 {
     * setting = gtk_toggle_button_get_active (toggle);
 }
 
-void audgui_connect_check_box (GtkWidget * box, gboolean * setting)
+void audgui_connect_check_box (GtkWidget * box, bool_t * setting)
 {
     gtk_toggle_button_set_active ((GtkToggleButton *) box, * setting);
     g_signal_connect ((GObject *) box, "toggled", (GCallback) toggle_cb, setting);
 }
 
 void audgui_simple_message (GtkWidget * * widget, GtkMessageType type,
- const gchar * title, const gchar * text)
+ const char * title, const char * text)
 {
     AUDDBG ("%s\n", text);
 
     if (* widget != NULL)
     {
-#if GTK_CHECK_VERSION (2, 10, 0)
-        const gchar * old = NULL;
+        const char * old = NULL;
         g_object_get ((GObject *) * widget, "text", & old, NULL);
         g_return_if_fail (old);
 
-        if (! strcmp (old, text))
+        int messages = GPOINTER_TO_INT (g_object_get_data ((GObject *)
+         * widget, "messages"));
+
+        if (messages > 10)
+            text = _("\n(Further messages have been hidden.)");
+
+        if (strstr (old, text))
             goto CREATED;
 
-        gchar both[strlen (old) + strlen (text) + 2];
+        char both[strlen (old) + strlen (text) + 2];
         snprintf (both, sizeof both, "%s\n%s", old, text);
         g_object_set ((GObject *) * widget, "text", both, NULL);
-#endif
+
+        g_object_set_data ((GObject *) * widget, "messages", GINT_TO_POINTER
+         (messages + 1));
+
         goto CREATED;
     }
 
     * widget = gtk_message_dialog_new (NULL, 0, type, GTK_BUTTONS_OK, "%s", text);
     gtk_window_set_title ((GtkWindow *) * widget, title);
 
+    g_object_set_data ((GObject *) * widget, "messages", GINT_TO_POINTER (1));
+
     g_signal_connect (* widget, "response", (GCallback) gtk_widget_destroy, NULL);
     audgui_destroy_on_escape (* widget);
     g_signal_connect (* widget, "destroy", (GCallback) gtk_widget_destroyed,
@@ -109,63 +121,54 @@ CREATED:
     gtk_window_present ((GtkWindow *) * widget);
 }
 
-GdkPixbuf * audgui_pixbuf_from_data (void * data, gint size)
+GdkPixbuf * audgui_pixbuf_from_data (const void * data, int64_t size)
 {
     GdkPixbuf * pixbuf = NULL;
     GdkPixbufLoader * loader = gdk_pixbuf_loader_new ();
     GError * error = NULL;
 
-    if (gdk_pixbuf_loader_write (loader, data, size, &error))
-        pixbuf = gdk_pixbuf_loader_get_pixbuf (loader);
+    if (gdk_pixbuf_loader_write (loader, data, size, & error) &&
+     gdk_pixbuf_loader_close (loader, & error))
+    {
+        if ((pixbuf = gdk_pixbuf_loader_get_pixbuf (loader)))
+            g_object_ref (pixbuf);
+    }
     else
         AUDDBG("error while loading pixbuf: %s\n", error->message);
 
-    gdk_pixbuf_loader_close (loader, NULL);
+    g_object_unref (loader);
     return pixbuf;
 }
 
-GdkPixbuf * audgui_pixbuf_for_entry (gint list, gint entry)
+GdkPixbuf * audgui_pixbuf_for_entry (int list, int entry)
 {
-    const gchar * name = aud_playlist_entry_get_filename (list, entry);
+    char * name = aud_playlist_entry_get_filename (list, entry);
     g_return_val_if_fail (name, NULL);
 
-    /* Don't get album art for network files -- too slow. */
-    if (! strncmp (name, "http://", 7) || ! strncmp (name, "https://", 8) ||
-     ! strncmp (name, "mms://", 6))
-        goto FALLBACK;
+    const void * data;
+    int64_t size;
 
-    AUDDBG ("Trying to load pixbuf for %s.\n", name);
-    PluginHandle * decoder = aud_playlist_entry_get_decoder (list, entry, FALSE);
-    if (! decoder)
-        goto FALLBACK;
+    aud_art_get_data (name, & data, & size);
 
-    void * data;
-    gint size;
-
-    if (aud_file_read_image (name, decoder, & data, & size))
+    if (data)
     {
         GdkPixbuf * p = audgui_pixbuf_from_data (data, size);
-        g_free (data);
-        if (p)
-            return p;
-    }
-
-    gchar * assoc = aud_get_associated_image_file (name);
+        aud_art_unref (name);
 
-    if (assoc)
-    {
-        GdkPixbuf * p = gdk_pixbuf_new_from_file (assoc, NULL);
-        g_free (assoc);
         if (p)
+        {
+            str_unref (name);
             return p;
+        }
     }
 
-FALLBACK:;
+    str_unref (name);
+
     AUDDBG ("Using fallback pixbuf.\n");
     static GdkPixbuf * fallback = NULL;
     if (! fallback)
     {
-        gchar * path = g_strdup_printf ("%s/images/album.png",
+        char * path = g_strdup_printf ("%s/images/album.png",
          aud_get_path (AUD_PATH_DATA_DIR));
         fallback = gdk_pixbuf_new_from_file (path, NULL);
         g_free (path);
@@ -175,44 +178,33 @@ FALLBACK:;
     return fallback;
 }
 
-
-static void clear_cached_pixbuf (void * list, GdkPixbuf * * pixbuf)
+void audgui_pixbuf_uncache (void)
 {
-    if (GPOINTER_TO_INT (list) != aud_playlist_get_playing () || ! * pixbuf)
-        return;
-
-    AUDDBG ("Clearing cached pixbuf.\n");
-    g_object_unref ((GObject *) * pixbuf);
-    * pixbuf = NULL;
+    if (current_pixbuf)
+    {
+        g_object_unref ((GObject *) current_pixbuf);
+        current_pixbuf = NULL;
+    }
 }
 
 GdkPixbuf * audgui_pixbuf_for_current (void)
 {
-    static GdkPixbuf * pixbuf = NULL;
-    static gboolean hooked = FALSE;
-
-    if (! hooked)
+    if (! current_pixbuf)
     {
-        hook_associate ("playlist position", (HookFunction) clear_cached_pixbuf,
-         & pixbuf);
-        hooked = TRUE;
+        int list = aud_playlist_get_playing ();
+        current_pixbuf = audgui_pixbuf_for_entry (list, aud_playlist_get_position (list));
     }
 
-    if (! pixbuf)
-    {
-        gint list = aud_playlist_get_playing ();
-        pixbuf = audgui_pixbuf_for_entry (list, aud_playlist_get_position (list));
-    }
+    if (current_pixbuf)
+        g_object_ref ((GObject *) current_pixbuf);
 
-    if (pixbuf)
-        g_object_ref ((GObject *) pixbuf);
-    return pixbuf;
+    return current_pixbuf;
 }
 
-void audgui_pixbuf_scale_within (GdkPixbuf * * pixbuf, gint size)
+void audgui_pixbuf_scale_within (GdkPixbuf * * pixbuf, int size)
 {
-    gint width = gdk_pixbuf_get_width (* pixbuf);
-    gint height = gdk_pixbuf_get_height (* pixbuf);
+    int width = gdk_pixbuf_get_width (* pixbuf);
+    int height = gdk_pixbuf_get_height (* pixbuf);
     GdkPixbuf * pixbuf2;
 
     if (width > height)
@@ -236,3 +228,10 @@ void audgui_pixbuf_scale_within (GdkPixbuf * * pixbuf, gint size)
     g_object_unref (* pixbuf);
     * pixbuf = pixbuf2;
 }
+
+void audgui_set_default_icon (void)
+{
+#ifndef _WIN32
+    gtk_window_set_default_icon_name ("audacious");
+#endif
+}
diff --git a/src/libaudtag/Makefile b/src/libaudtag/Makefile
index db21388..0b7cef5 100644
--- a/src/libaudtag/Makefile
+++ b/src/libaudtag/Makefile
@@ -16,6 +16,6 @@ INCLUDES = audtag.h
 include ../../buildsys.mk
 include ../../extra.mk
 
-CPPFLAGS += ${GLIB_CFLAGS} ${MOWGLI_CFLAGS} -D_AUDACIOUS_CORE -I.. -I../..
+CPPFLAGS += ${GLIB_CFLAGS} -D_AUDACIOUS_CORE -I.. -I../..
 CFLAGS += ${LIB_CFLAGS}
-LIBS += ${GLIB_LIBS} ${MOWGLI_LIBS} -L../libaudcore -laudcore
+LIBS += ${GLIB_LIBS} -L../libaudcore -laudcore
diff --git a/src/libaudtag/aac/aac.c b/src/libaudtag/aac/aac.c
deleted file mode 100644
index 8751d8a..0000000
--- a/src/libaudtag/aac/aac.c
+++ /dev/null
@@ -1,479 +0,0 @@
-/*
- * Copyright 2009 Paula Stanciu
- *
- * This file is part of Audacious.
- *
- * Audacious is free software: you can redistribute it and/or modify it under
- * the terms of the GNU General Public License as published by the Free Software
- * Foundation, version 3 of the License.
- *
- * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * Audacious. If not, see <http://www.gnu.org/licenses/>.
- *
- * The Audacious team does not consider modular code linking to Audacious or
- * using our public API to be a derived work.
- */
-
-#include <glib/gstdio.h>
-#include <libaudcore/tuple.h>
-#include <libaudcore/vfs.h>
-#include "../tag_module.h"
-#include "aac.h"
-#include "../util.h"
-
-static const char *ID3v1GenreList[] = {
-    "Blues", "Classic Rock", "Country", "Dance", "Disco", "Funk",
-    "Grunge", "Hip-Hop", "Jazz", "Metal", "New Age", "Oldies",
-    "Other", "Pop", "R&B", "Rap", "Reggae", "Rock",
-    "Techno", "Industrial", "Alternative", "Ska", "Death Metal", "Pranks",
-    "Soundtrack", "Euro-Techno", "Ambient", "Trip-Hop", "Vocal", "Jazz+Funk",
-    "Fusion", "Trance", "Classical", "Instrumental", "Acid", "House",
-    "Game", "Sound Clip", "Gospel", "Noise", "AlternRock", "Bass",
-    "Soul", "Punk", "Space", "Meditative", "Instrumental Pop", "Instrumental Rock",
-    "Ethnic", "Gothic", "Darkwave", "Techno-Industrial", "Electronic", "Pop-Folk",
-    "Eurodance", "Dream", "Southern Rock", "Comedy", "Cult", "Gangsta",
-    "Top 40", "Christian Rap", "Pop/Funk", "Jungle", "Native American", "Cabaret",
-    "New Wave", "Psychedelic", "Rave", "Showtunes", "Trailer", "Lo-Fi",
-    "Tribal", "Acid Punk", "Acid Jazz", "Polka", "Retro", "Musical",
-    "Rock & Roll", "Hard Rock", "Folk", "Folk/Rock", "National Folk", "Swing",
-    "Fast-Fusion", "Bebob", "Latin", "Revival", "Celtic", "Bluegrass", "Avantgarde",
-    "Gothic Rock", "Progressive Rock", "Psychedelic Rock", "Symphonic Rock", "Slow Rock", "Big Band",
-    "Chorus", "Easy Listening", "Acoustic", "Humour", "Speech", "Chanson",
-    "Opera", "Chamber Music", "Sonata", "Symphony", "Booty Bass", "Primus",
-    "Porn Groove", "Satire", "Slow Jam", "Club", "Tango", "Samba",
-    "Folklore", "Ballad", "Power Ballad", "Rhythmic Soul", "Freestyle", "Duet",
-    "Punk Rock", "Drum Solo", "A capella", "Euro-House", "Dance Hall",
-    "Goa", "Drum & Bass", "Club House", "Hardcore", "Terror",
-    "Indie", "BritPop", "NegerPunk", "Polsk Punk", "Beat",
-    "Christian Gangsta", "Heavy Metal", "Black Metal", "Crossover", "Contemporary C",
-    "Christian Rock", "Merengue", "Salsa", "Thrash Metal", "Anime", "JPop",
-    "SynthPop",
-};
-
-gchar *atom_types[] = { "\251alb", "\251nam", "cprt", "\251art", "\251ART", "trkn", "\251day", "gnre", "desc" };
-
-Atom *readAtom(VFSFile * fd)
-{
-    guint32 size = read_BEuint32(fd);
-    if (size > vfs_fsize(fd))
-        return NULL;
-
-    Atom *atom = g_new0(Atom, 1);
-    atom->size = size;
-    atom->name = read_char_data(fd, 4);
-    atom->body = read_char_data(fd, atom->size - 8);
-    atom->type = 0;
-    return atom;
-}
-
-void writeAtom(VFSFile * fd, Atom * atom)
-{
-    write_BEuint32(fd, atom->size);
-    vfs_fwrite(atom->name, 4, 1, fd);
-    vfs_fwrite(atom->body, atom->size - 8, 1, fd);
-}
-
-void printAtom(Atom * atom)
-{
-    TAGDBG("size = %x\n", atom->size);
-    TAGDBG("name = %s\n", atom->name);
-}
-
-StrDataAtom *readStrDataAtom(VFSFile * fd)
-{
-    StrDataAtom *atom = g_new0(StrDataAtom, 1);
-    atom->atomsize = read_BEuint32(fd);
-    atom->name = read_char_data(fd, 4);
-    atom->datasize = read_BEuint32(fd);
-    atom->dataname = read_char_data(fd, 4);
-    atom->vflag = read_BEuint32(fd);
-    atom->nullData = read_BEuint32(fd);
-    atom->data = read_char_data(fd, atom->datasize - 16);
-    atom->type = 1;
-    return atom;
-}
-
-void writeStrDataAtom(VFSFile * fd, StrDataAtom * atom)
-{
-    write_BEuint32(fd, atom->atomsize);
-    vfs_fwrite(atom->name, 4, 1, fd);
-    write_BEuint32(fd, atom->datasize);
-    vfs_fwrite(atom->dataname, 4, 1, fd);
-    write_BEuint32(fd, atom->vflag);
-    write_BEuint32(fd, atom->nullData);
-    vfs_fwrite(atom->data, atom->datasize - 16, 1, fd);
-}
-
-Atom *findAtom(VFSFile * fd, gchar * name)
-{
-    Atom *atom = readAtom(fd);
-    while (strcmp(atom->name, name) && !vfs_feof(fd))
-    {
-        g_free(atom);
-        atom = readAtom(fd);
-    }
-    if (vfs_feof(fd))
-    {
-        g_free(atom);
-        TAGDBG("The atom %s could not be found\n", name);
-        return NULL;
-    }
-    return atom;
-}
-
-Atom *getilstAtom(VFSFile * fd)
-{
-    Atom *moov = findAtom(fd, MOOV);
-
-    // search atom childs
-    vfs_fseek(fd, -(moov->size - 7), SEEK_CUR);
-    Atom *udta = findAtom(fd, UDTA);
-
-
-    vfs_fseek(fd, -(udta->size - 7), SEEK_CUR);
-    Atom *meta = findAtom(fd, META);
-
-    vfs_fseek(fd, -(meta->size - 11), SEEK_CUR);
-    Atom *ilst = findAtom(fd, ILST);
-
-    TAGDBG("zzz = %d\n", vfs_ftell(fd));
-    ilstFileOffset = vfs_ftell(fd) - ilst->size;
-    vfs_fseek(fd, -(ilst->size - 7), SEEK_CUR);
-
-    return ilst;
-
-}
-
-int getAtomID(gchar * name)
-{
-    g_return_val_if_fail(name != NULL, -1);
-    int i = 0;
-    for (i = 0; i < MP4_ITEMS_NO; i++)
-    {
-        if (!strcmp(name, atom_types[i]))
-            return i;
-    }
-    return -1;
-}
-
-StrDataAtom *makeAtomWithData(const gchar * data, StrDataAtom * atom, int field)
-{
-    guint32 charsize = strlen(data);
-    atom->atomsize = charsize + 24;
-    atom->name = atom_types[field];
-    atom->datasize = charsize + 16;
-    atom->dataname = "data";
-    atom->vflag = 0x0;
-    atom->nullData = 0x0;
-    atom->data = (gchar *) data;
-    atom->type = 1;
-    return atom;
-
-}
-
-void writeAtomListToFile(VFSFile * from, VFSFile * to, int offset, mowgli_list_t * list)
-{
-    //read free atom if we have any :D
-    guint32 oset = ilstFileOffset + ilstAtom->size;
-    vfs_fseek(from, oset, SEEK_SET);
-    mowgli_list_t *atoms_before_free = mowgli_list_create();
-    Atom *atom = readAtom(from);
-    while (strcmp(atom->name, "free") && !vfs_feof(from))
-    {
-        mowgli_node_add(atom, mowgli_node_create(), atoms_before_free);
-        g_free(atom);
-        atom = readAtom(from);
-    }
-    g_free(atom);
-    if (vfs_feof(from))
-    {
-        TAGDBG("No free atoms\n");
-        g_free(atom);
-        atom = NULL;
-    }
-
-    //write ilst atom header
-    gchar il[4] = ILST;
-    vfs_fwrite(&newilstSize, 4, 1, to);
-    vfs_fwrite(il, 4, 1, to);
-    //write ilst
-
-    mowgli_node_t *n, *tn;
-
-    MOWGLI_LIST_FOREACH_SAFE(n, tn, list->head)
-    {
-        if (((Atom *) (n->data))->type == 0)
-        {
-            writeAtom(to, (Atom *) (n->data));
-        }
-        else
-        {
-            writeStrDataAtom(to, (StrDataAtom *) (n->data));
-        }
-    }
-
-    //write all atoms before free
-    if (atoms_before_free->count != 0)
-    {
-
-        MOWGLI_LIST_FOREACH_SAFE(n, tn, list->head)
-        {
-            writeAtom(to, (Atom *) (n->data));
-        }
-    }
-    if (atom != NULL)
-    {
-        atom->size -= newilstSize - ilstAtom->size;
-    }
-    writeAtom(to, atom);
-}
-
-gboolean aac_can_handle_file(VFSFile * f)
-{
-    Atom *first_atom = readAtom(f);
-    if (first_atom == NULL)
-        return FALSE;
-    if (!strcmp(first_atom->name, FTYP))
-        return TRUE;
-    return FALSE;
-}
-
-gboolean aac_read_tag (Tuple * tuple, VFSFile * f)
-{
-    if (ilstAtom)
-        g_free(ilstAtom);
-    ilstAtom = getilstAtom(f);
-    int size_read = 0;
-
-    if (dataAtoms != NULL)
-    {
-        mowgli_node_t *n, *tn;
-
-        MOWGLI_LIST_FOREACH_SAFE(n, tn, dataAtoms->head)
-        {
-            mowgli_node_delete(n, dataAtoms);
-        }
-    }
-    dataAtoms = mowgli_list_create();
-
-    while (size_read < ilstAtom->size)
-    {
-        Atom *at = readAtom(f);
-        mowgli_node_add(at, mowgli_node_create(), dataAtoms);
-        int atomtype = getAtomID(at->name);
-        if (atomtype == -1)
-        {
-            size_read += at->size;
-            continue;
-        }
-        g_free(at);
-        vfs_fseek(f, -(at->size), SEEK_CUR);
-        StrDataAtom *a = readStrDataAtom(f);
-        size_read += a->atomsize;
-
-        switch (atomtype)
-        {
-          case MP4_ALBUM:
-          {
-              tuple_associate_string(tuple, FIELD_ALBUM, NULL, a->data);
-          }
-              break;
-          case MP4_TITLE:
-          {
-              tuple_associate_string(tuple, FIELD_TITLE, NULL, a->data);
-          }
-              break;
-          case MP4_COPYRIGHT:
-          {
-              tuple_associate_string(tuple, FIELD_COPYRIGHT, NULL, a->data);
-          }
-              break;
-          case MP4_ARTIST:
-          case MP4_ARTIST2:
-          {
-              tuple_associate_string(tuple, FIELD_ARTIST, NULL, a->data);
-          }
-              break;
-          case MP4_TRACKNR:
-          {
-              //tuple_associate_string(tuple,FIELD_ALBUM,NULL,a->data);
-          }
-              break;
-          case MP4_YEAR:
-          {
-              tuple_associate_int(tuple, FIELD_YEAR, NULL, atoi(a->data));
-          }
-              break;
-          case MP4_GENRE:
-          {
-              guint8 *val = (guint8 *) (a->data + (a->datasize - 17));
-              const gchar *genre = ID3v1GenreList[*val - 1];
-              tuple_associate_string(tuple, FIELD_GENRE, NULL, genre);
-          }
-              break;
-          case MP4_COMMENT:
-          {
-              tuple_associate_string(tuple, FIELD_COMMENT, NULL, a->data);
-          }
-              break;
-        }
-    }
-
-    return TRUE;
-}
-
-gboolean aac_write_tag (Tuple * tuple, VFSFile * f)
-{
-#ifdef BROKEN
-    return FALSE;
-#endif
-    newilstSize = 0;
-    mowgli_node_t *n, *tn;
-    mowgli_list_t *newdataAtoms;
-    newdataAtoms = mowgli_list_create();
-
-    MOWGLI_LIST_FOREACH_SAFE(n, tn, dataAtoms->head)
-    {
-        int atomtype = getAtomID(((StrDataAtom *) (n->data))->name);
-        switch (atomtype)
-        {
-          case MP4_ALBUM:
-          {
-              const gchar *strVal = tuple_get_string(tuple, FIELD_ALBUM, NULL);
-              if (strVal != NULL)
-              {
-                  StrDataAtom *atom = g_new0(StrDataAtom, 1);
-                  atom = makeAtomWithData(strVal, atom, MP4_ALBUM);
-                  mowgli_node_add(atom, mowgli_node_create(), newdataAtoms);
-                  newilstSize += atom->atomsize;
-              }
-              else
-              {
-                  mowgli_node_add(n->data, mowgli_node_create(), newdataAtoms);
-                  newilstSize += ((Atom *) (n->data))->size;
-              }
-          }
-              break;
-          case MP4_TITLE:
-          {
-              const gchar *strVal = tuple_get_string(tuple, FIELD_TITLE, NULL);
-              if (strVal != NULL)
-              {
-                  StrDataAtom *atom = g_new0(StrDataAtom, 1);
-                  atom = makeAtomWithData(strVal, atom, MP4_TITLE);
-                  mowgli_node_add(atom, mowgli_node_create(), newdataAtoms);
-                  newilstSize += atom->atomsize;
-              }
-              else
-              {
-                  mowgli_node_add(n->data, mowgli_node_create(), newdataAtoms);
-                  newilstSize += ((Atom *) (n->data))->size;
-              }
-          }
-              break;
-          case MP4_COPYRIGHT:
-          {
-              const gchar *strVal = tuple_get_string(tuple, FIELD_COPYRIGHT, NULL);
-              if (strVal != NULL)
-              {
-                  StrDataAtom *atom = g_new0(StrDataAtom, 1);
-                  atom = makeAtomWithData(strVal, atom, MP4_COPYRIGHT);
-                  mowgli_node_add(atom, mowgli_node_create(), newdataAtoms);
-                  newilstSize += atom->atomsize;
-              }
-              else
-              {
-                  mowgli_node_add(n->data, mowgli_node_create(), newdataAtoms);
-                  newilstSize += ((Atom *) (n->data))->size;
-              }
-          }
-              break;
-          case MP4_ARTIST:
-          case MP4_ARTIST2:
-          {
-              const gchar *strVal = tuple_get_string(tuple, FIELD_ARTIST, NULL);
-              if (strVal != NULL)
-              {
-                  StrDataAtom *atom = g_new0(StrDataAtom, 1);
-                  atom = makeAtomWithData(strVal, atom, MP4_ARTIST2);
-                  mowgli_node_add(atom, mowgli_node_create(), newdataAtoms);
-                  newilstSize += atom->atomsize;
-              }
-              else
-              {
-                  mowgli_node_add(n->data, mowgli_node_create(), newdataAtoms);
-                  newilstSize += ((Atom *) (n->data))->size;
-              }
-          }
-              break;
-          case MP4_TRACKNR:
-          {
-              //tuple_associate_string(tuple,FIELD_ALBUM,NULL,a->data);
-          }
-              break;
-          case MP4_YEAR:
-          {
-              int iyear = tuple_get_int(tuple, FIELD_YEAR, NULL);
-              gchar *strVal = g_strdup_printf("%d", iyear);
-              if (strVal != NULL)
-              {
-                  StrDataAtom *atom = g_new0(StrDataAtom, 1);
-                  atom = makeAtomWithData(strVal, atom, MP4_YEAR);
-                  mowgli_node_add(atom, mowgli_node_create(), newdataAtoms);
-                  newilstSize += atom->atomsize;
-              }
-              else
-              {
-                  mowgli_node_add(n->data, mowgli_node_create(), newdataAtoms);
-                  newilstSize += ((Atom *) (n->data))->size;
-              }
-          }
-              break;
-              /*
-                 case MP4_GENRE:
-                 {
-
-                 guint8 *val = (guint8*)(a->data + (a->datasize-17));
-                 const gchar* genre = ID3v1GenreList[*val-1];
-                 tuple_associate_string(tuple,FIELD_GENRE,NULL,genre);
-
-                 }break;
-               */
-          case MP4_COMMENT:
-          {
-              const gchar *strVal = tuple_get_string(tuple, FIELD_COMMENT, NULL);
-              if (strVal != NULL)
-              {
-                  StrDataAtom *atom = g_new0(StrDataAtom, 1);
-                  atom = makeAtomWithData(strVal, atom, MP4_COMMENT);
-                  mowgli_node_add(atom, mowgli_node_create(), newdataAtoms);
-                  newilstSize += atom->atomsize;
-              }
-              else
-              {
-                  mowgli_node_add(n->data, mowgli_node_create(), newdataAtoms);
-                  newilstSize += ((Atom *) (n->data))->size;
-              }
-          }
-              break;
-          default:
-          {
-              mowgli_node_add(n->data, mowgli_node_create(), newdataAtoms);
-              newilstSize += ((Atom *) (n->data))->size;
-          }
-              break;
-        }
-    }
-
-    VFSFile *tmp;
-    const gchar *tmpdir = g_get_tmp_dir();
-    gchar *tmp_path = g_strdup_printf("file://%s/%s", tmpdir, "tmp.mp4");
-    tmp = vfs_fopen(tmp_path, "w");
-    copyAudioData(f, tmp, 0, ilstFileOffset);
-    writeAtomListToFile(f, tmp, ilstFileOffset, newdataAtoms);
-    return TRUE;
-}
diff --git a/src/libaudtag/aac/aac.h b/src/libaudtag/aac/aac.h
deleted file mode 100644
index 8f4d57d..0000000
--- a/src/libaudtag/aac/aac.h
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright 2009 Paula Stanciu
- *
- * This file is part of Audacious.
- *
- * Audacious is free software: you can redistribute it and/or modify it under
- * the terms of the GNU General Public License as published by the Free Software
- * Foundation, version 3 of the License.
- *
- * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * Audacious. If not, see <http://www.gnu.org/licenses/>.
- *
- * The Audacious team does not consider modular code linking to Audacious or
- * using our public API to be a derived work.
- */
-
-#ifndef AAC_H
-#define	AAC_H
-#include <libaudcore/tuple.h>
-#include <libaudcore/vfs.h>
-#include "../tag_module.h"
-
-#define FTYP    "ftyp"
-#define MOOV    "moov"
-#define ILST    "ilst"
-#define UDTA    "udta"
-#define META    "meta"
-#define ILST    "ilst"
-#define FREE    "free"
-
-enum {
-    MP4_ALBUM = 0,
-    MP4_TITLE,
-    MP4_COPYRIGHT,
-    MP4_ARTIST,
-    MP4_ARTIST2,
-    MP4_TRACKNR,
-    MP4_YEAR,
-    MP4_GENRE,
-    MP4_COMMENT,
-    MP4_ITEMS_NO
-};
-
-typedef struct mp4atom
-{
-    guint32 size;
-    gchar* name; //4 bytes
-    gchar* body;
-    int type;
-}Atom;
-
-
-typedef struct strdataatom
-{
-    guint32 atomsize;
-    gchar* name;
-    guint32 datasize;
-    gchar* dataname;
-    guint32 vflag;
-    guint32 nullData;
-    gchar*  data;
-    int type;
-}StrDataAtom;
-
-Atom *ilstAtom;
-guint64 ilstFileOffset;
-guint32 newilstSize ;
-mowgli_list_t *dataAtoms;
-mowgli_dictionary_t *ilstAtoms;
-
-/* TAG plugin API */
-gboolean aac_can_handle_file(VFSFile *f);
-gboolean aac_read_tag (Tuple * tuple, VFSFile * handle);
-gboolean aac_write_tag (Tuple * tuple, VFSFile * handle);
-
-static const tag_module_t aac = {
-    .name = "AAC",
-    .can_handle_file = aac_can_handle_file,
-    .read_tag = aac_read_tag,
-    .write_tag = aac_write_tag,
-};
-#endif
diff --git a/src/libaudtag/ape/ape.c b/src/libaudtag/ape/ape.c
old mode 100755
new mode 100644
index f1f5d8e..80ed420
--- a/src/libaudtag/ape/ape.c
+++ b/src/libaudtag/ape/ape.c
@@ -35,19 +35,19 @@
 #pragma pack(1)
 typedef struct
 {
-    gchar magic[8];
-    guint32 version; /* LE */
-    guint32 length; /* LE */
-    guint32 items; /* LE */
-    guint32 flags; /* LE */
-    guint64 reserved;
+    char magic[8];
+    uint32_t version; /* LE */
+    uint32_t length; /* LE */
+    uint32_t items; /* LE */
+    uint32_t flags; /* LE */
+    uint64_t reserved;
 }
 APEHeader;
 #pragma pack(pop)
 
 typedef struct
 {
-    gchar * key, * value;
+    char * key, * value;
 }
 ValuePair;
 
@@ -55,7 +55,7 @@ ValuePair;
 #define APE_FLAG_HAS_NO_FOOTER (1 << 30)
 #define APE_FLAG_IS_HEADER (1 << 29)
 
-static gboolean ape_read_header (VFSFile * handle, APEHeader * header)
+static bool_t ape_read_header (VFSFile * handle, APEHeader * header)
 {
     if (vfs_fread (header, 1, sizeof (APEHeader), handle) != sizeof (APEHeader))
         return FALSE;
@@ -74,8 +74,8 @@ static gboolean ape_read_header (VFSFile * handle, APEHeader * header)
     return TRUE;
 }
 
-static gboolean ape_find_header (VFSFile * handle, APEHeader * header, gint *
- start, gint * length, gint * data_start, gint * data_length)
+static bool_t ape_find_header (VFSFile * handle, APEHeader * header, int *
+ start, int * length, int * data_start, int * data_length)
 {
     APEHeader secondary;
 
@@ -84,8 +84,8 @@ static gboolean ape_find_header (VFSFile * handle, APEHeader * header, gint *
 
     if (ape_read_header (handle, header))
     {
-        TAGDBG ("Found header at 0, length = %d, version = %d.\n", (gint)
-         header->length, (gint) header->version);
+        TAGDBG ("Found header at 0, length = %d, version = %d.\n", (int)
+         header->length, (int) header->version);
         * start = 0;
         * length = header->length;
         * data_start = sizeof (APEHeader);
@@ -94,7 +94,7 @@ static gboolean ape_find_header (VFSFile * handle, APEHeader * header, gint *
         if (! (header->flags & APE_FLAG_HAS_HEADER) || ! (header->flags &
          APE_FLAG_IS_HEADER))
         {
-            TAGDBG ("Invalid header flags (%u).\n", (guint) header->flags);
+            TAGDBG ("Invalid header flags (%u).\n", (unsigned int) header->flags);
             return FALSE;
         }
 
@@ -115,14 +115,14 @@ static gboolean ape_find_header (VFSFile * handle, APEHeader * header, gint *
         return TRUE;
     }
 
-    if (vfs_fseek (handle, -sizeof (APEHeader), SEEK_END))
+    if (vfs_fseek (handle, -(int) sizeof (APEHeader), SEEK_END))
         return FALSE;
 
     if (ape_read_header (handle, header))
     {
-        TAGDBG ("Found footer at %d, length = %d, version = %d.\n", (gint)
-         vfs_ftell (handle) - (gint) sizeof (APEHeader), (gint) header->length,
-         (gint) header->version);
+        TAGDBG ("Found footer at %d, length = %d, version = %d.\n", (int)
+         vfs_ftell (handle) - (int) sizeof (APEHeader), (int) header->length,
+         (int) header->version);
         * start = vfs_ftell (handle) - header->length;
         * length = header->length;
         * data_start = vfs_ftell (handle) - header->length;
@@ -131,13 +131,13 @@ static gboolean ape_find_header (VFSFile * handle, APEHeader * header, gint *
         if ((header->flags & APE_FLAG_HAS_NO_FOOTER) || (header->flags &
          APE_FLAG_IS_HEADER))
         {
-            TAGDBG ("Invalid footer flags (%u).\n", (guint) header->flags);
+            TAGDBG ("Invalid footer flags (%u).\n", (unsigned int) header->flags);
             return FALSE;
         }
 
         if (header->flags & APE_FLAG_HAS_HEADER)
         {
-            if (vfs_fseek (handle, -(gint) header->length - sizeof (APEHeader),
+            if (vfs_fseek (handle, -(int) header->length - sizeof (APEHeader),
              SEEK_CUR))
                 return FALSE;
 
@@ -158,19 +158,19 @@ static gboolean ape_find_header (VFSFile * handle, APEHeader * header, gint *
     return FALSE;
 }
 
-static gboolean ape_is_our_file (VFSFile * handle)
+static bool_t ape_is_our_file (VFSFile * handle)
 {
     APEHeader header;
-    gint start, length, data_start, data_length;
+    int start, length, data_start, data_length;
 
     return ape_find_header (handle, & header, & start, & length, & data_start,
      & data_length);
 }
 
-static ValuePair * ape_read_item (void * * data, gint length)
+static ValuePair * ape_read_item (void * * data, int length)
 {
-    guint32 * header = * data;
-    gchar * value;
+    uint32_t * header = * data;
+    char * value;
     ValuePair * pair;
 
     if (length < 8)
@@ -179,7 +179,7 @@ static ValuePair * ape_read_item (void * * data, gint length)
         return NULL;
     }
 
-    value = memchr ((gchar *) (* data) + 8, 0, length - 8);
+    value = memchr ((char *) (* data) + 8, 0, length - 8);
 
     if (value == NULL)
     {
@@ -189,15 +189,15 @@ static ValuePair * ape_read_item (void * * data, gint length)
 
     value ++;
 
-    if (header[0] > (gchar *) (* data) + length - value)
+    if (header[0] > (char *) (* data) + length - value)
     {
         TAGDBG ("Item value of length %d, but only %d bytes remain in tag.\n",
-         (gint) header[0], (gint) ((gchar *) (* data) + length - value));
+         (int) header[0], (int) ((char *) (* data) + length - value));
         return NULL;
     }
 
     pair = g_malloc (sizeof (ValuePair));
-    pair->key = g_strdup ((gchar *) (* data) + 8);
+    pair->key = g_strdup ((char *) (* data) + 8);
     pair->value = g_strndup (value, header[0]);
 
     * data = value + header[0];
@@ -209,7 +209,7 @@ static GList * ape_read_items (VFSFile * handle)
 {
     GList * list = NULL;
     APEHeader header;
-    gint start, length, data_start, data_length;
+    int start, length, data_start, data_length;
     void * data, * item;
 
     if (! ape_find_header (handle, & header, & start, & length, & data_start,
@@ -232,8 +232,8 @@ static GList * ape_read_items (VFSFile * handle)
 
     while (header.items --)
     {
-        ValuePair * pair = ape_read_item (& item, (gchar *) data + data_length -
-         (gchar *) item);
+        ValuePair * pair = ape_read_item (& item, (char *) data + data_length -
+         (char *) item);
 
         if (pair == NULL)
             break;
@@ -257,9 +257,9 @@ static void free_tag_list (GList * list)
     }
 }
 
-static void parse_gain_text (const gchar * text, gint * value, gint * unit)
+static void parse_gain_text (const char * text, int * value, int * unit)
 {
-    gint sign = 1;
+    int sign = 1;
 
     * value = 0;
     * unit = 1;
@@ -291,54 +291,54 @@ static void parse_gain_text (const gchar * text, gint * value, gint * unit)
     * value = * value * sign;
 }
 
-static void set_gain_info (Tuple * tuple, gint field, gint unit_field,
- const gchar * text)
+static void set_gain_info (Tuple * tuple, int field, int unit_field,
+ const char * text)
 {
-    gint value, unit;
+    int value, unit;
 
     parse_gain_text (text, & value, & unit);
 
     if (tuple_get_value_type (tuple, unit_field, NULL) == TUPLE_INT)
-        value = value * (gint64) tuple_get_int (tuple, unit_field, NULL) / unit;
+        value = value * (int64_t) tuple_get_int (tuple, unit_field, NULL) / unit;
     else
-        tuple_associate_int (tuple, unit_field, NULL, unit);
+        tuple_set_int (tuple, unit_field, NULL, unit);
 
-    tuple_associate_int (tuple, field, NULL, value);
+    tuple_set_int (tuple, field, NULL, value);
 }
 
-static gboolean ape_read_tag (Tuple * tuple, VFSFile * handle)
+static bool_t ape_read_tag (Tuple * tuple, VFSFile * handle)
 {
     GList * list = ape_read_items (handle), * node;
 
     for (node = list; node != NULL; node = node->next)
     {
-        gchar * key = ((ValuePair *) node->data)->key;
-        gchar * value = ((ValuePair *) node->data)->value;
+        char * key = ((ValuePair *) node->data)->key;
+        char * value = ((ValuePair *) node->data)->value;
 
         if (! strcmp (key, "Artist"))
-            tuple_associate_string (tuple, FIELD_ARTIST, NULL, value);
+            tuple_set_str (tuple, FIELD_ARTIST, NULL, value);
         else if (! strcmp (key, "Title"))
-            tuple_associate_string (tuple, FIELD_TITLE, NULL, value);
+            tuple_set_str (tuple, FIELD_TITLE, NULL, value);
         else if (! strcmp (key, "Album"))
-            tuple_associate_string (tuple, FIELD_ALBUM, NULL, value);
+            tuple_set_str (tuple, FIELD_ALBUM, NULL, value);
         else if (! strcmp (key, "Comment"))
-            tuple_associate_string (tuple, FIELD_COMMENT, NULL, value);
+            tuple_set_str (tuple, FIELD_COMMENT, NULL, value);
         else if (! strcmp (key, "Genre"))
-            tuple_associate_string (tuple, FIELD_GENRE, NULL, value);
+            tuple_set_str (tuple, FIELD_GENRE, NULL, value);
         else if (! strcmp (key, "Track"))
-            tuple_associate_int (tuple, FIELD_TRACK_NUMBER, NULL, atoi (value));
+            tuple_set_int (tuple, FIELD_TRACK_NUMBER, NULL, atoi (value));
         else if (! strcmp (key, "Year"))
-            tuple_associate_int (tuple, FIELD_YEAR, NULL, atoi (value));
-        else if (! strcasecmp (key, "REPLAYGAIN_TRACK_GAIN"))
+            tuple_set_int (tuple, FIELD_YEAR, NULL, atoi (value));
+        else if (! g_ascii_strcasecmp (key, "REPLAYGAIN_TRACK_GAIN"))
             set_gain_info (tuple, FIELD_GAIN_TRACK_GAIN, FIELD_GAIN_GAIN_UNIT,
              value);
-        else if (! strcasecmp (key, "REPLAYGAIN_TRACK_PEAK"))
+        else if (! g_ascii_strcasecmp (key, "REPLAYGAIN_TRACK_PEAK"))
             set_gain_info (tuple, FIELD_GAIN_TRACK_PEAK, FIELD_GAIN_PEAK_UNIT,
              value);
-        else if (! strcasecmp (key, "REPLAYGAIN_ALBUM_GAIN"))
+        else if (! g_ascii_strcasecmp (key, "REPLAYGAIN_ALBUM_GAIN"))
             set_gain_info (tuple, FIELD_GAIN_ALBUM_GAIN, FIELD_GAIN_GAIN_UNIT,
              value);
-        else if (! strcasecmp (key, "REPLAYGAIN_ALBUM_PEAK"))
+        else if (! g_ascii_strcasecmp (key, "REPLAYGAIN_ALBUM_PEAK"))
             set_gain_info (tuple, FIELD_GAIN_ALBUM_PEAK, FIELD_GAIN_PEAK_UNIT,
              value);
     }
@@ -347,12 +347,12 @@ static gboolean ape_read_tag (Tuple * tuple, VFSFile * handle)
     return TRUE;
 }
 
-static gboolean ape_write_item (VFSFile * handle, const gchar * key,
- const gchar * value, int * written_length)
+static bool_t ape_write_item (VFSFile * handle, const char * key,
+ const char * value, int * written_length)
 {
-    gint key_len = strlen (key) + 1;
-    gint value_len = strlen (value);
-    guint32 header[2];
+    int key_len = strlen (key) + 1;
+    int value_len = strlen (value);
+    uint32_t header[2];
 
     TAGDBG ("Write: %s = %s.\n", key, value);
 
@@ -372,26 +372,28 @@ static gboolean ape_write_item (VFSFile * handle, const gchar * key,
     return TRUE;
 }
 
-static gboolean write_string_item (const Tuple * tuple, int field, VFSFile *
- handle, const gchar * key, int * written_length, int * written_items)
+static bool_t write_string_item (const Tuple * tuple, int field, VFSFile *
+ handle, const char * key, int * written_length, int * written_items)
 {
-    const gchar * value = tuple_get_string (tuple, field, NULL);
+    char * value = tuple_get_str (tuple, field, NULL);
 
     if (value == NULL)
         return TRUE;
 
-    if (! ape_write_item (handle, key, value, written_length))
-        return FALSE;
+    bool_t success = ape_write_item (handle, key, value, written_length);
 
-    (* written_items) ++;
-    return TRUE;
+    if (success)
+        (* written_items) ++;
+
+    str_unref (value);
+    return success;
 }
 
-static gboolean write_integer_item (const Tuple * tuple, int field, VFSFile *
- handle, const gchar * key, int * written_length, int * written_items)
+static bool_t write_integer_item (const Tuple * tuple, int field, VFSFile *
+ handle, const char * key, int * written_length, int * written_items)
 {
-    gint value = tuple_get_int (tuple, field, NULL);
-    gchar scratch[32];
+    int value = tuple_get_int (tuple, field, NULL);
+    char scratch[32];
 
     if (! value)
         return TRUE;
@@ -405,7 +407,7 @@ static gboolean write_integer_item (const Tuple * tuple, int field, VFSFile *
     return TRUE;
 }
 
-static gboolean write_header (gint data_length, gint items, gboolean is_header,
+static bool_t write_header (int data_length, int items, bool_t is_header,
  VFSFile * handle)
 {
     APEHeader header;
@@ -422,11 +424,11 @@ static gboolean write_header (gint data_length, gint items, gboolean is_header,
      (APEHeader);
 }
 
-static gboolean ape_write_tag (const Tuple * tuple, VFSFile * handle)
+static bool_t ape_write_tag (const Tuple * tuple, VFSFile * handle)
 {
     GList * list = ape_read_items (handle), * node;
     APEHeader header;
-    gint start, length, data_start, data_length, items;
+    int start, length, data_start, data_length, items;
 
     if (ape_find_header (handle, & header, & start, & length, & data_start,
      & data_length))
@@ -467,8 +469,8 @@ static gboolean ape_write_tag (const Tuple * tuple, VFSFile * handle)
 
     for (node = list; node != NULL; node = node->next)
     {
-        gchar * key = ((ValuePair *) node->data)->key;
-        gchar * value = ((ValuePair *) node->data)->value;
+        char * key = ((ValuePair *) node->data)->key;
+        char * value = ((ValuePair *) node->data)->value;
 
         if (! strcmp (key, "Artist") || ! strcmp (key, "Title") || ! strcmp
          (key, "Album") || ! strcmp (key, "Comment") || ! strcmp (key, "Genre")
diff --git a/src/libaudtag/audtag.c b/src/libaudtag/audtag.c
index 6db71d9..3e8a3bb 100644
--- a/src/libaudtag/audtag.c
+++ b/src/libaudtag/audtag.c
@@ -18,26 +18,23 @@
  * using our public API to be a derived work.
  */
 
+#include <glib.h>
+
 #include "libaudcore/tuple.h"
 #include "audtag.h"
 #include "tag_module.h"
 #include "util.h"
 
-gboolean tag_verbose = FALSE;
-
-void tag_init(void)
-{
-    init_tag_modules();
-}
+bool_t tag_verbose = FALSE;
 
-void tag_set_verbose (gboolean verbose)
+void tag_set_verbose (bool_t verbose)
 {
     tag_verbose = verbose;
 }
 
 /* The tuple's file-related attributes are already set */
 
-gboolean tag_tuple_read (Tuple * tuple, VFSFile * handle)
+bool_t tag_tuple_read (Tuple * tuple, VFSFile * handle)
 {
     tag_module_t * module = find_tag_module (handle, TAG_TYPE_NONE);
 
@@ -47,7 +44,7 @@ gboolean tag_tuple_read (Tuple * tuple, VFSFile * handle)
     return module->read_tag (tuple, handle);
 }
 
-gboolean tag_image_read (VFSFile * handle, void * * data, gint * size)
+bool_t tag_image_read (VFSFile * handle, void * * data, int64_t * size)
 {
     tag_module_t * module = find_tag_module (handle, TAG_TYPE_NONE);
 
@@ -57,7 +54,7 @@ gboolean tag_image_read (VFSFile * handle, void * * data, gint * size)
     return module->read_image (handle, data, size);
 }
 
-gboolean tag_tuple_write (const Tuple * tuple, VFSFile * handle, gint new_type)
+bool_t tag_tuple_write (const Tuple * tuple, VFSFile * handle, int new_type)
 {
     tag_module_t * module = find_tag_module (handle, new_type);
 
@@ -68,7 +65,7 @@ gboolean tag_tuple_write (const Tuple * tuple, VFSFile * handle, gint new_type)
 }
 
 /* deprecated */
-gboolean tag_tuple_write_to_file (Tuple * tuple, VFSFile * handle)
+bool_t tag_tuple_write_to_file (Tuple * tuple, VFSFile * handle)
 {
     return tag_tuple_write (tuple, handle, TAG_TYPE_NONE);
 }
diff --git a/src/libaudtag/audtag.h b/src/libaudtag/audtag.h
index 725cf5c..dbb4e57 100644
--- a/src/libaudtag/audtag.h
+++ b/src/libaudtag/audtag.h
@@ -23,13 +23,8 @@
 #ifndef AUDTAG_H
 #define AUDTAG_H
 
-G_BEGIN_DECLS
-
-#include <glib.h>
-#include <mowgli.h>
-#include "libaudcore/tuple.h"
-#include "libaudcore/vfs.h"
-#include "config.h"
+#include <libaudcore/tuple.h>
+#include <libaudcore/vfs.h>
 
 enum
 {
@@ -37,18 +32,16 @@ enum
     TAG_TYPE_APE,
 };
 
-void tag_init (void);
-void tag_set_verbose (gboolean verbose);
+void tag_set_verbose (bool_t verbose);
 
-gboolean tag_tuple_read (Tuple * tuple, VFSFile *fd);
-gboolean tag_image_read (VFSFile * handle, void * * data, gint * size);
+bool_t tag_tuple_read (Tuple * tuple, VFSFile *fd);
+bool_t tag_image_read (VFSFile * handle, void * * data, int64_t * size);
 
 /* new_type specifies the type of tag (see the TAG_TYPE_* enum) that should be
  * written if the file does not have any existing tag. */
-gboolean tag_tuple_write (const Tuple * tuple, VFSFile * handle, gint new_type);
+bool_t tag_tuple_write (const Tuple * tuple, VFSFile * handle, int new_type);
 
 /* deprecated, use tag_tuple_write */
-gboolean tag_tuple_write_to_file (Tuple * tuple, VFSFile * handle);
+bool_t tag_tuple_write_to_file (Tuple * tuple, VFSFile * handle);
 
-G_END_DECLS
 #endif /* AUDTAG_H */
diff --git a/src/libaudtag/id3/id3-common.c b/src/libaudtag/id3/id3-common.c
index ea7c587..dbad9be 100644
--- a/src/libaudtag/id3/id3-common.c
+++ b/src/libaudtag/id3/id3-common.c
@@ -1,6 +1,6 @@
 /*
  * id3-common.c
- * Copyright 2010 John Lindgren
+ * Copyright 2010-2011 John Lindgren
  *
  * This file is part of Audacious.
  *
@@ -19,6 +19,7 @@
  * using our public API to be a derived work.
  */
 
+#include <stdio.h>
 #include <string.h>
 
 #include <glib.h>
@@ -28,10 +29,24 @@
 #include "../util.h"
 #include "id3-common.h"
 
-gchar * convert_text (const gchar * text, gint length, gint encoding, gboolean
- nulled, gint * _converted, const gchar * * after)
+static void * memchr16 (const void * mem, int16_t chr, int len)
 {
-    gchar * buffer = NULL;
+    while (len >= 2)
+    {
+        if (* (int16_t *) mem == chr)
+            return (void *) mem;
+
+        mem = (char *) mem + 2;
+        len -= 2;
+    }
+
+    return NULL;
+}
+
+char * convert_text (const char * text, int length, int encoding, bool_t
+ nulled, int * _converted, const char * * after)
+{
+    char * buffer = NULL;
     gsize converted = 0;
 
     TAGDBG ("length = %d, encoding = %d, nulled = %d\n", length, encoding,
@@ -39,8 +54,7 @@ gchar * convert_text (const gchar * text, gint length, gint encoding, gboolean
 
     if (nulled)
     {
-        const guchar null16[] = {0, 0};
-        const gchar * null;
+        const char * null;
 
         switch (encoding)
         {
@@ -58,7 +72,7 @@ gchar * convert_text (const gchar * text, gint length, gint encoding, gboolean
             break;
           case 1:
           case 2:
-            if ((null = memfind (text, length, null16, 2)) == NULL)
+            if ((null = memchr16 (text, 0, length)) == NULL)
                 return NULL;
 
             length = null - text;
@@ -74,11 +88,13 @@ gchar * convert_text (const gchar * text, gint length, gint encoding, gboolean
     switch (encoding)
     {
       case 0:
-      case 3:
-        buffer = str_to_utf8_full (text, length, NULL, & converted, NULL);
+      case 3:;
+        int converted_int = 0;
+        buffer = str_to_utf8_full (text, length, NULL, & converted_int);
+        converted = converted_int;
         break;
       case 1:
-        if (text[0] == (gchar) 0xff)
+        if (text[0] == (char) 0xff)
             buffer = g_convert (text + 2, length - 2, "UTF-8", "UTF-16LE", NULL,
              & converted, NULL);
         else
@@ -92,7 +108,7 @@ gchar * convert_text (const gchar * text, gint length, gint encoding, gboolean
         break;
     }
 
-    TAGDBG ("length converted: %d\n", (gint) converted);
+    TAGDBG ("length converted: %d\n", (int) converted);
     TAGDBG ("string: %s\n", buffer);
 
     if (_converted != NULL)
diff --git a/src/libaudtag/id3/id3-common.h b/src/libaudtag/id3/id3-common.h
index b3e53e5..9ad88a3 100644
--- a/src/libaudtag/id3/id3-common.h
+++ b/src/libaudtag/id3/id3-common.h
@@ -22,8 +22,6 @@
 #ifndef AUDTAG_ID3_COMMON_H
 #define AUDTAG_ID3_COMMON_H
 
-#include <glib.h>
-
 /*
  * text: A pointer to the text data to be converted.
  * length: The size in bytes of the text data.
@@ -42,7 +40,7 @@
  * returns: A pointer to the converted text with a null character appended, or
  *  NULL if an error occurs.  The text must be freed when no longer needed.
  */
-gchar * convert_text (const gchar * text, gint length, gint encoding, gboolean
- nulled, gint * _converted, const gchar * * after);
+char * convert_text (const char * text, int length, int encoding, bool_t
+ nulled, int * _converted, const char * * after);
 
 #endif
diff --git a/src/libaudtag/id3/id3v1.c b/src/libaudtag/id3/id3v1.c
index f6426ef..bc53f1f 100644
--- a/src/libaudtag/id3/id3v1.c
+++ b/src/libaudtag/id3/id3v1.c
@@ -21,6 +21,8 @@
 
 #include <glib.h>
 #include <glib/gstdio.h>
+#include <stdlib.h>
+#include <string.h>
 
 #include <libaudcore/audstrings.h>
 
@@ -29,29 +31,14 @@
 #include <inttypes.h>
 #include "../tag_module.h"
 
-static gboolean has_id3v1_ext;
-
-gboolean id3v1_can_handle_file(VFSFile *f)
+bool_t id3v1_can_handle_file(VFSFile *f)
 {
-    gchar *tag;
-
-    if (vfs_fseek(f, -355, SEEK_END))
-        return FALSE;
-
-    tag = read_char_data(f, 4);
-
-    if (!strncmp(tag, "TAG+", 4))
-        has_id3v1_ext = TRUE;
-    else
-        has_id3v1_ext = FALSE;
-    g_free(tag);
-
     if (vfs_fseek(f, -128, SEEK_END))
         return FALSE;
 
-    tag = read_char_data(f, 3);
+    char *tag = read_char_data(f, 3);
 
-    if (!strncmp(tag, "TAG", 3))
+    if (tag && !strncmp(tag, "TAG", 3))
     {
         g_free(tag);
         return TRUE;
@@ -61,31 +48,34 @@ gboolean id3v1_can_handle_file(VFSFile *f)
     return FALSE;
 }
 
-static gchar *convert_to_utf8(gchar *str)
+static char *convert_to_utf8(char *str)
 {
-    gchar *tmp = str;
+    if (!str)
+        return NULL;
+
+    char *tmp = str;
     str = str_to_utf8(str);
     g_free(tmp);
 
     return g_strchomp(str);
 }
 
-gboolean id3v1_read_tag (Tuple * tuple, VFSFile * f)
+bool_t id3v1_read_tag (Tuple * tuple, VFSFile * f)
 {
-    gboolean genre_set = FALSE;
+    bool_t genre_set = FALSE;
 
     if (vfs_fseek(f, -125, SEEK_END))
         return FALSE;
 
-    gchar *title = read_char_data(f, 30);
-    gchar *artist = read_char_data(f, 30);
-    gchar *album = read_char_data(f, 30);
-    gchar *year = read_char_data(f, 4);
-    gchar *comment = read_char_data(f, 30);
-    gchar *genre = read_char_data(f, 1);
-    gchar track = 0;
+    char *title = read_char_data(f, 30);
+    char *artist = read_char_data(f, 30);
+    char *album = read_char_data(f, 30);
+    char *year = read_char_data(f, 4);
+    char *comment = read_char_data(f, 30);
+    char *genre = read_char_data(f, 1);
+    char track = 0;
 
-    if (comment[28] == 0 && comment[29] != 0)
+    if (comment && comment[28] == 0 && comment[29] != 0)
         track = comment[29];
 
     title = convert_to_utf8(title);
@@ -93,17 +83,19 @@ gboolean id3v1_read_tag (Tuple * tuple, VFSFile * f)
     album = convert_to_utf8(album);
     comment = convert_to_utf8(comment);
 
-    if (has_id3v1_ext)
-    {
-        if (vfs_fseek (f, -351, SEEK_END))
-            goto ERR;
+    if (vfs_fseek(f, -355, SEEK_END))
+        return FALSE;
 
-        gchar *ext_title = convert_to_utf8(read_char_data(f, 60));
-        gchar *ext_artist = convert_to_utf8(read_char_data(f, 60));
-        gchar *ext_album = convert_to_utf8(read_char_data(f, 60));
-        gchar *tmp_title = g_strconcat(title, ext_title, NULL);
-        gchar *tmp_artist = g_strconcat(artist, ext_artist, NULL);
-        gchar *tmp_album = g_strconcat(album, ext_album, NULL);
+    char *tag = read_char_data(f, 4);
+
+    if (tag && ! strncmp (tag, "TAG+", 4))
+    {
+        char *ext_title = convert_to_utf8(read_char_data(f, 60));
+        char *ext_artist = convert_to_utf8(read_char_data(f, 60));
+        char *ext_album = convert_to_utf8(read_char_data(f, 60));
+        char *tmp_title = title ? g_strconcat(title, ext_title, NULL) : NULL;
+        char *tmp_artist = artist ? g_strconcat(artist, ext_artist, NULL) : NULL;
+        char *tmp_album = album ? g_strconcat(album, ext_album, NULL) : NULL;
         g_free(title);
         g_free(artist);
         g_free(album);
@@ -117,25 +109,31 @@ gboolean id3v1_read_tag (Tuple * tuple, VFSFile * f)
         if (vfs_fseek (f, -170, SEEK_END))
             goto ERR;
 
-        gchar *ext_genre = convert_to_utf8(read_char_data(f, 30));
+        char *ext_genre = convert_to_utf8(read_char_data(f, 30));
 
-        if (ext_genre != NULL)
+        if (ext_genre)
         {
-            tuple_associate_string(tuple, FIELD_GENRE, NULL, ext_genre);
+            tuple_set_str(tuple, FIELD_GENRE, NULL, ext_genre);
             genre_set = TRUE;
             g_free(ext_genre);
         }
     }
 
-    tuple_associate_string(tuple, FIELD_TITLE, NULL, title);
-    tuple_associate_string(tuple, FIELD_ARTIST, NULL, artist);
-    tuple_associate_string(tuple, FIELD_ALBUM, NULL, album);
-    tuple_associate_int(tuple, FIELD_YEAR, NULL, atoi(year));
-    tuple_associate_string(tuple, FIELD_COMMENT, NULL, comment);
-    tuple_associate_int(tuple, FIELD_TRACK_NUMBER, NULL, track);
-
-    if (!genre_set)
-        tuple_associate_string(tuple, FIELD_GENRE, NULL, convert_numericgenre_to_text(*genre));
+    if (title)
+        tuple_set_str(tuple, FIELD_TITLE, NULL, title);
+    if (artist)
+        tuple_set_str(tuple, FIELD_ARTIST, NULL, artist);
+    if (album)
+        tuple_set_str(tuple, FIELD_ALBUM, NULL, album);
+    if (year)
+        tuple_set_int(tuple, FIELD_YEAR, NULL, atoi(year));
+    if (comment)
+        tuple_set_str(tuple, FIELD_COMMENT, NULL, comment);
+    if (track)
+        tuple_set_int(tuple, FIELD_TRACK_NUMBER, NULL, track);
+
+    if (genre && !genre_set)
+        tuple_set_str(tuple, FIELD_GENRE, NULL, convert_numericgenre_to_text(*genre));
 
     g_free(title);
     g_free(artist);
@@ -156,7 +154,7 @@ ERR:
     return FALSE;
 }
 
-static gboolean id3v1_write_tag (const Tuple * tuple, VFSFile * handle)
+static bool_t id3v1_write_tag (const Tuple * tuple, VFSFile * handle)
 {
     fprintf (stderr, "Writing ID3v1 tags is not implemented yet, sorry.\n");
     return FALSE;
@@ -168,4 +166,3 @@ tag_module_t id3v1 = {
     .read_tag = id3v1_read_tag,
     .write_tag = id3v1_write_tag,
 };
-
diff --git a/src/libaudtag/id3/id3v22.c b/src/libaudtag/id3/id3v22.c
index 65e6796..909ad94 100644
--- a/src/libaudtag/id3/id3v22.c
+++ b/src/libaudtag/id3/id3v22.c
@@ -22,6 +22,9 @@
  */
 
 #include <glib.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
 
 #include <libaudcore/audstrings.h>
 
@@ -49,34 +52,34 @@ enum
     ID3_TAGS_NO
 };
 
-static const gchar * id3_frames[ID3_TAGS_NO] = {"TAL", "TT2", "TCM", "TCR",
+static const char * id3_frames[ID3_TAGS_NO] = {"TAL", "TT2", "TCM", "TCR",
 "TDA", "TLE", "TPE", "TRK", "TYE", "TCO", "COM", "TSS", "TXX", "RVA", "TP1"};
 
 #pragma pack(push) /* must be byte-aligned */
 #pragma pack(1)
 typedef struct
 {
-    gchar magic[3];
-    guchar version;
-    guchar revision;
-    guchar flags;
-    guint32 size;
+    char magic[3];
+    unsigned char version;
+    unsigned char revision;
+    unsigned char flags;
+    uint32_t size;
 }
 ID3v2Header;
 
 typedef struct
 {
-    guchar key[3];
-    guchar size[3];
+    unsigned char key[3];
+    unsigned char size[3];
 }
 ID3v2FrameHeader;
 #pragma pack(pop)
 
 typedef struct
 {
-    gchar key[5];
-    guchar * data;
-    gint size;
+    char key[5];
+    unsigned char * data;
+    int size;
 }
 GenericFrame;
 
@@ -87,7 +90,7 @@ GenericFrame;
 
 #define write_syncsafe_int32(x) vfs_fput_be32 (syncsafe32 (x))
 
-static gboolean validate_header (ID3v2Header * header)
+static bool_t validate_header (ID3v2Header * header)
 {
     if (memcmp (header->magic, "ID3", 3))
         return FALSE;
@@ -99,15 +102,15 @@ static gboolean validate_header (ID3v2Header * header)
 
     TAGDBG ("Found ID3v2 header:\n");
     TAGDBG (" magic = %.3s\n", header->magic);
-    TAGDBG (" version = %d\n", (gint) header->version);
-    TAGDBG (" revision = %d\n", (gint) header->revision);
-    TAGDBG (" flags = %x\n", (gint) header->flags);
-    TAGDBG (" size = %d\n", (gint) header->size);
+    TAGDBG (" version = %d\n", (int) header->version);
+    TAGDBG (" revision = %d\n", (int) header->revision);
+    TAGDBG (" flags = %x\n", (int) header->flags);
+    TAGDBG (" size = %d\n", (int) header->size);
     return TRUE;
 }
 
-static gboolean read_header (VFSFile * handle, gint * version, gboolean *
- syncsafe, gsize * offset, gint * header_size, gint * data_size)
+static bool_t read_header (VFSFile * handle, int * version, bool_t *
+ syncsafe, gsize * offset, int * header_size, int * data_size)
 {
     ID3v2Header header;
 
@@ -129,17 +132,17 @@ static gboolean read_header (VFSFile * handle, gint * version, gboolean *
     * syncsafe = (header.flags & ID3_HEADER_SYNCSAFE) ? TRUE : FALSE;
 
     TAGDBG ("Offset = %d, header size = %d, data size = %d\n",
-     (gint) * offset, * header_size, * data_size);
+     (int) * offset, * header_size, * data_size);
 
     return TRUE;
 }
 
-static gboolean read_frame (VFSFile * handle, gint max_size, gint version,
- gboolean syncsafe, gint * frame_size, gchar * key, guchar * * data, gint * size)
+static bool_t read_frame (VFSFile * handle, int max_size, int version,
+ bool_t syncsafe, int * frame_size, char * key, unsigned char * * data, int * size)
 {
     ID3v2FrameHeader header;
-    gint i;
-    guint32 hdrsz = 0;
+    int i;
+    uint32_t hdrsz = 0;
 
     if ((max_size -= sizeof (ID3v2FrameHeader)) < 0)
         return FALSE;
@@ -153,7 +156,7 @@ static gboolean read_frame (VFSFile * handle, gint max_size, gint version,
 
     for (i = 0; i < 3; i++)
     {
-        hdrsz |= (guint32) header.size[i] << ((2 - i) * 8);
+        hdrsz |= (uint32_t) header.size[i] << ((2 - i) * 8);
         TAGDBG("header.size[%d] = %d hdrsz %d slot %d\n", i, header.size[i], hdrsz, 2 - i);
     }
 
@@ -163,7 +166,7 @@ static gboolean read_frame (VFSFile * handle, gint max_size, gint version,
 
     TAGDBG ("Found frame:\n");
     TAGDBG (" key = %.3s\n", header.key);
-    TAGDBG (" size = %d\n", (gint) hdrsz);
+    TAGDBG (" size = %d\n", (int) hdrsz);
 
     * frame_size = sizeof (ID3v2FrameHeader) + hdrsz;
     sprintf (key, "%.3s", header.key);
@@ -178,18 +181,18 @@ static gboolean read_frame (VFSFile * handle, gint max_size, gint version,
     return TRUE;
 }
 
-static gchar * decode_text_frame (const guchar * data, gint size)
+static char * decode_text_frame (const unsigned char * data, int size)
 {
-    return convert_text ((const gchar *) data + 1, size - 1, data[0], FALSE,
+    return convert_text ((const char *) data + 1, size - 1, data[0], FALSE,
      NULL, NULL);
 }
 
-static gboolean decode_comment_frame (const guchar * _data, gint size, gchar * *
- lang, gchar * * type, gchar * * value)
+static bool_t decode_comment_frame (const unsigned char * _data, int size, char * *
+ lang, char * * type, char * * value)
 {
-    const gchar * data = (const gchar *) _data;
-    gchar * pair, * sep;
-    gint converted;
+    const char * data = (const char *) _data;
+    char * pair, * sep;
+    int converted;
 
     pair = convert_text (data + 4, size - 4, data[0], FALSE, & converted, NULL);
 
@@ -204,9 +207,9 @@ static gboolean decode_comment_frame (const guchar * _data, gint size, gchar * *
     return TRUE;
 }
 
-static gint get_frame_id (const gchar * key)
+static int get_frame_id (const char * key)
 {
-    gint id;
+    int id;
 
     for (id = 0; id < ID3_TAGS_NO; id ++)
     {
@@ -217,43 +220,49 @@ static gint get_frame_id (const gchar * key)
     return -1;
 }
 
-static void associate_string (Tuple * tuple, gint field, const gchar *
- customfield, const guchar * data, gint size)
+static void associate_string (Tuple * tuple, int field, const char *
+ customfield, const unsigned char * data, int size)
 {
-    gchar * text = decode_text_frame (data, size);
+    char * text = decode_text_frame (data, size);
 
-    if (text == NULL)
+    if (text == NULL || ! text[0])
+    {
+        g_free (text);
         return;
+    }
 
     if (customfield != NULL)
         TAGDBG ("Custom field %s = %s.\n", customfield, text);
     else
         TAGDBG ("Field %i = %s.\n", field, text);
 
-    tuple_associate_string (tuple, field, customfield, text);
+    tuple_set_str (tuple, field, customfield, text);
     g_free (text);
 }
 
-static void associate_int (Tuple * tuple, gint field, const gchar *
- customfield, const guchar * data, gint size)
+static void associate_int (Tuple * tuple, int field, const char *
+ customfield, const unsigned char * data, int size)
 {
-    gchar * text = decode_text_frame (data, size);
+    char * text = decode_text_frame (data, size);
 
-    if (text == NULL)
+    if (text == NULL || atoi (text) < 1)
+    {
+        g_free (text);
         return;
+    }
 
     if (customfield != NULL)
         TAGDBG ("Custom field %s = %s.\n", customfield, text);
     else
         TAGDBG ("Field %i = %s.\n", field, text);
 
-    tuple_associate_int (tuple, field, customfield, atoi (text));
+    tuple_set_int (tuple, field, customfield, atoi (text));
     g_free (text);
 }
 
-static void decode_comment (Tuple * tuple, const guchar * data, gint size)
+static void decode_comment (Tuple * tuple, const unsigned char * data, int size)
 {
-    gchar * lang, * type, * value;
+    char * lang, * type, * value;
 
     if (! decode_comment_frame (data, size, & lang, & type, & value))
         return;
@@ -261,45 +270,45 @@ static void decode_comment (Tuple * tuple, const guchar * data, gint size)
     TAGDBG ("Comment: lang = %s, type = %s, value = %s.\n", lang, type, value);
 
     if (! type[0]) /* blank type == actual comment */
-        tuple_associate_string (tuple, FIELD_COMMENT, NULL, value);
+        tuple_set_str (tuple, FIELD_COMMENT, NULL, value);
 
     g_free (lang);
     g_free (type);
     g_free (value);
 }
 
-static void decode_txx (Tuple * tuple, const guchar * data, gint size)
+static void decode_txx (Tuple * tuple, const unsigned char * data, int size)
 {
-    gchar * text = decode_text_frame (data, size);
+    char * text = decode_text_frame (data, size);
 
     if (text == NULL)
         return;
 
-    gchar *separator = strchr(text, 0);
+    char *separator = strchr(text, 0);
 
     if (separator == NULL)
         return;
 
-    gchar * value = separator + 1;
+    char * value = separator + 1;
     TAGDBG ("TXX: %s = %s.\n", text, value);
-    tuple_associate_string (tuple, -1, text, value);
+    tuple_set_str (tuple, -1, text, value);
 
     g_free (text);
 }
 
-static gboolean decode_rva_block (const guchar * * _data, gint * _size, gint *
- channel, gint * adjustment, gint * adjustment_unit, gint * peak, gint *
+static bool_t decode_rva_block (const unsigned char * * _data, int * _size, int *
+ channel, int * adjustment, int * adjustment_unit, int * peak, int *
  peak_unit)
 {
-    const guchar * data = * _data;
-    gint size = * _size;
-    gint peak_bits;
+    const unsigned char * data = * _data;
+    int size = * _size;
+    int peak_bits;
 
     if (size < 4)
         return FALSE;
 
     * channel = data[0];
-    * adjustment = (gchar) data[1]; /* first byte is signed */
+    * adjustment = (char) data[1]; /* first byte is signed */
     * adjustment = (* adjustment << 8) | data[2];
     * adjustment_unit = 512;
     peak_bits = data[3];
@@ -310,10 +319,10 @@ static gboolean decode_rva_block (const guchar * * _data, gint * _size, gint *
     TAGDBG ("RVA block: channel = %d, adjustment = %d/%d, peak bits = %d\n",
      * channel, * adjustment, * adjustment_unit, peak_bits);
 
-    if (peak_bits > 0 && peak_bits < sizeof (gint) * 8)
+    if (peak_bits > 0 && peak_bits < sizeof (int) * 8)
     {
-        gint bytes = (peak_bits + 7) / 8;
-        gint count;
+        int bytes = (peak_bits + 7) / 8;
+        int count;
 
         if (bytes > size)
             return FALSE;
@@ -340,15 +349,15 @@ static gboolean decode_rva_block (const guchar * * _data, gint * _size, gint *
     return TRUE;
 }
 
-static void decode_rva (Tuple * tuple, const guchar * data, gint size)
+static void decode_rva (Tuple * tuple, const unsigned char * data, int size)
 {
-    const gchar * domain;
-    gint channel, adjustment, adjustment_unit, peak, peak_unit;
+    const char * domain;
+    int channel, adjustment, adjustment_unit, peak, peak_unit;
 
     if (memchr (data, 0, size) == NULL)
         return;
 
-    domain = (const gchar *) data;
+    domain = (const char *) data;
 
     TAGDBG ("RVA domain: %s\n", domain);
 
@@ -366,44 +375,44 @@ static void decode_rva (Tuple * tuple, const guchar * data, gint size)
 
         if (tuple_get_value_type (tuple, FIELD_GAIN_GAIN_UNIT, NULL) ==
          TUPLE_INT)
-            adjustment = adjustment * (gint64) tuple_get_int (tuple,
+            adjustment = adjustment * (int64_t) tuple_get_int (tuple,
              FIELD_GAIN_GAIN_UNIT, NULL) / adjustment_unit;
         else
-            tuple_associate_int (tuple, FIELD_GAIN_GAIN_UNIT, NULL,
+            tuple_set_int (tuple, FIELD_GAIN_GAIN_UNIT, NULL,
              adjustment_unit);
 
         if (peak_unit)
         {
             if (tuple_get_value_type (tuple, FIELD_GAIN_PEAK_UNIT, NULL) ==
              TUPLE_INT)
-                peak = peak * (gint64) tuple_get_int (tuple,
+                peak = peak * (int64_t) tuple_get_int (tuple,
                  FIELD_GAIN_PEAK_UNIT, NULL) / peak_unit;
             else
-                tuple_associate_int (tuple, FIELD_GAIN_PEAK_UNIT, NULL,
+                tuple_set_int (tuple, FIELD_GAIN_PEAK_UNIT, NULL,
                  peak_unit);
         }
 
-        if (! strcasecmp (domain, "album"))
+        if (! g_ascii_strcasecmp (domain, "album"))
         {
-            tuple_associate_int (tuple, FIELD_GAIN_ALBUM_GAIN, NULL, adjustment);
+            tuple_set_int (tuple, FIELD_GAIN_ALBUM_GAIN, NULL, adjustment);
 
             if (peak_unit)
-                tuple_associate_int (tuple, FIELD_GAIN_ALBUM_PEAK, NULL, peak);
+                tuple_set_int (tuple, FIELD_GAIN_ALBUM_PEAK, NULL, peak);
         }
-        else if (! strcasecmp (domain, "track"))
+        else if (! g_ascii_strcasecmp (domain, "track"))
         {
-            tuple_associate_int (tuple, FIELD_GAIN_TRACK_GAIN, NULL, adjustment);
+            tuple_set_int (tuple, FIELD_GAIN_TRACK_GAIN, NULL, adjustment);
 
             if (peak_unit)
-                tuple_associate_int (tuple, FIELD_GAIN_TRACK_PEAK, NULL, peak);
+                tuple_set_int (tuple, FIELD_GAIN_TRACK_PEAK, NULL, peak);
         }
     }
 }
 
-static void decode_genre (Tuple * tuple, const guchar * data, gint size)
+static void decode_genre (Tuple * tuple, const unsigned char * data, int size)
 {
-    gint numericgenre;
-    gchar * text = decode_text_frame (data, size);
+    int numericgenre;
+    char * text = decode_text_frame (data, size);
 
     if (text == NULL)
         return;
@@ -415,42 +424,43 @@ static void decode_genre (Tuple * tuple, const guchar * data, gint size)
 
     if (numericgenre > 0)
     {
-        tuple_associate_string(tuple, FIELD_GENRE, NULL, convert_numericgenre_to_text(numericgenre));
+        tuple_set_str(tuple, FIELD_GENRE, NULL, convert_numericgenre_to_text(numericgenre));
         return;
     }
-    tuple_associate_string(tuple, FIELD_GENRE, NULL, text);
+    tuple_set_str(tuple, FIELD_GENRE, NULL, text);
     g_free (text);
     return;
 }
 
-static gboolean id3v22_can_handle_file (VFSFile * handle)
+static bool_t id3v22_can_handle_file (VFSFile * handle)
 {
-    gint version, header_size, data_size;
-    gboolean syncsafe;
+    int version, header_size, data_size;
+    bool_t syncsafe;
     gsize offset;
 
     return read_header (handle, & version, & syncsafe, & offset, & header_size,
      & data_size);
 }
 
-gboolean id3v22_read_tag (Tuple * tuple, VFSFile * handle)
+bool_t id3v22_read_tag (Tuple * tuple, VFSFile * handle)
 {
-    gint version, header_size, data_size;
-    gboolean syncsafe;
+    int version, header_size, data_size;
+    bool_t syncsafe;
     gsize offset;
-    gint pos;
+    int pos;
 
     if (! read_header (handle, & version, & syncsafe, & offset, & header_size,
      & data_size))
         return FALSE;
 
-    TAGDBG("Reading tags from %i bytes of ID3 data in %s\n", data_size, handle->uri);
+    TAGDBG ("Reading tags from %i bytes of ID3 data in %s\n", data_size,
+     vfs_get_filename (handle));
 
     for (pos = 0; pos < data_size; )
     {
-        gint frame_size, size, id;
-        gchar key[5];
-        guchar * data;
+        int frame_size, size, id;
+        char key[5];
+        unsigned char * data;
 
         if (! read_frame (handle, data_size - pos, version, syncsafe,
          & frame_size, key, & data, & size))
@@ -518,17 +528,17 @@ gboolean id3v22_read_tag (Tuple * tuple, VFSFile * handle)
     return TRUE;
 }
 
-static gboolean parse_pic (const guchar * data, gint size, gchar * * mime,
- gint * type, void * * image_data, gint * image_size)
+static bool_t parse_pic (const unsigned char * data, int size, char * * mime,
+ int * type, void * * image_data, int * image_size)
 {
-    const guchar * sep;
-    const guchar * after;
+    const unsigned char * sep;
+    const unsigned char * after;
 
     if (size < 2 || (sep = memchr (data + 1, 0, size - 2)) == NULL)
         return FALSE;
 
     after = sep + 2;
-    * mime = g_strdup ((const gchar *) data + 1);
+    * mime = g_strdup ((const char *) data + 1);
     * type = sep[1];
     * image_data = g_memdup (after, data + size - after);
     * image_size = data + size - after;
@@ -538,13 +548,13 @@ static gboolean parse_pic (const guchar * data, gint size, gchar * * mime,
     return TRUE;
 }
 
-static gboolean id3v22_read_image (VFSFile * handle, void * * image_data, gint *
- image_size)
+static bool_t id3v22_read_image (VFSFile * handle, void * * image_data,
+ int64_t * image_size64)
 {
-    gint version, header_size, data_size, parsed;
-    gboolean syncsafe;
+    int version, header_size, data_size, parsed, image_size = 0;
+    bool_t syncsafe;
     gsize offset;
-    gboolean found = FALSE;
+    bool_t found = FALSE;
 
     if (! read_header (handle, & version, & syncsafe, & offset, & header_size,
      & data_size))
@@ -552,11 +562,11 @@ static gboolean id3v22_read_image (VFSFile * handle, void * * image_data, gint *
 
     for (parsed = 0; parsed < data_size && ! found; )
     {
-        gint frame_size, size, type;
-        gchar key[5];
-        guchar * data;
-        gchar * mime;
-        gint frame_length;
+        int frame_size, size, type;
+        char key[5];
+        unsigned char * data;
+        char * mime;
+        int frame_length;
 
         if (! read_frame (handle, data_size - parsed, version, syncsafe,
          & frame_size, key, & data, & size))
@@ -565,7 +575,7 @@ static gboolean id3v22_read_image (VFSFile * handle, void * * image_data, gint *
         frame_length = size;
 
         if (! strcmp (key, "PIC") && parse_pic (data, frame_length, & mime, & type,
-         image_data, image_size))
+         image_data, & image_size))
         {
             g_free (mime);
 
@@ -584,10 +594,13 @@ static gboolean id3v22_read_image (VFSFile * handle, void * * image_data, gint *
         parsed += frame_size;
     }
 
+    if (found)
+        * image_size64 = image_size;
+
     return found;
 }
 
-static gboolean id3v22_write_tag (const Tuple * tuple, VFSFile * f)
+static bool_t id3v22_write_tag (const Tuple * tuple, VFSFile * f)
 {
     fprintf (stderr, "Writing ID3v2.2 tags is not implemented yet, sorry.\n");
     return FALSE;
diff --git a/src/libaudtag/id3/id3v24.c b/src/libaudtag/id3/id3v24.c
index d655ce8..5d492ca 100644
--- a/src/libaudtag/id3/id3v24.c
+++ b/src/libaudtag/id3/id3v24.c
@@ -20,6 +20,9 @@
  */
 
 #include <glib.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
 
 #include <libaudcore/audstrings.h>
 
@@ -49,53 +52,53 @@ enum
     ID3_TAGS_NO
 };
 
-static const gchar * id3_frames[ID3_TAGS_NO] = {"TALB","TIT2","TCOM", "TCOP",
+static const char * id3_frames[ID3_TAGS_NO] = {"TALB","TIT2","TCOM", "TCOP",
  "TDAT", "TIME", "TLEN", "TPE1", "TRCK", "TYER","TCON", "COMM", "PRIV", "TSSE",
  "TDRC", "TXXX", "RVA2"};
 
-static const guchar PRIMARY_CLASS_MUSIC[16] = {0xBC, 0x7D, 0x60, 0xD1, 0x23,
+static const unsigned char PRIMARY_CLASS_MUSIC[16] = {0xBC, 0x7D, 0x60, 0xD1, 0x23,
  0xE3, 0xE2, 0x4B, 0x86, 0xA1, 0x48, 0xA4, 0x2A, 0x28, 0x44, 0x1E};
-static const guchar PRIMARY_CLASS_AUDIO[16] = {0x29, 0x0F, 0xCD, 0x01, 0x4E,
+static const unsigned char PRIMARY_CLASS_AUDIO[16] = {0x29, 0x0F, 0xCD, 0x01, 0x4E,
  0xDA, 0x57, 0x41, 0x89, 0x7B, 0x62, 0x75, 0xD5, 0x0C, 0x4F, 0x11};
-static const guchar SECONDARY_CLASS_AUDIOBOOK[16] = {0xEB, 0x6B, 0x23, 0xE0,
+static const unsigned char SECONDARY_CLASS_AUDIOBOOK[16] = {0xEB, 0x6B, 0x23, 0xE0,
  0x81, 0xC2, 0xDE, 0x4E, 0xA3, 0x6D, 0x7A, 0xF7, 0x6A, 0x3D, 0x45, 0xB5};
-static const guchar SECONDARY_CLASS_SPOKENWORD[16] = {0x13, 0x2A, 0x17, 0x3A,
+static const unsigned char SECONDARY_CLASS_SPOKENWORD[16] = {0x13, 0x2A, 0x17, 0x3A,
  0xD9, 0x2B, 0x31, 0x48, 0x83, 0x5B, 0x11, 0x4F, 0x6A, 0x95, 0x94, 0x3F};
-static const guchar SECONDARY_CLASS_NEWS[16] = {0x9B, 0xDB, 0x77, 0x66, 0xA0,
+static const unsigned char SECONDARY_CLASS_NEWS[16] = {0x9B, 0xDB, 0x77, 0x66, 0xA0,
  0xE5, 0x63, 0x40, 0xA1, 0xAD, 0xAC, 0xEB, 0x52, 0x84, 0x0C, 0xF1};
-static const guchar SECONDARY_CLASS_TALKSHOW[16] = {0x67, 0x4A, 0x82, 0x1B,
+static const unsigned char SECONDARY_CLASS_TALKSHOW[16] = {0x67, 0x4A, 0x82, 0x1B,
  0x80, 0x3F, 0x3E, 0x4E, 0x9C, 0xDE, 0xF7, 0x36, 0x1B, 0x0F, 0x5F, 0x1B};
-static const guchar SECONDARY_CLASS_GAMES_CLIP[16] = {0x68, 0x33, 0x03, 0x00,
+static const unsigned char SECONDARY_CLASS_GAMES_CLIP[16] = {0x68, 0x33, 0x03, 0x00,
  0x09, 0x50, 0xC3, 0x4A, 0xA8, 0x20, 0x5D, 0x2D, 0x09, 0xA4, 0xE7, 0xC1};
-static const guchar SECONDARY_CLASS_GAMES_SONG[16] = {0x31, 0xF7, 0x4F, 0xF2,
+static const unsigned char SECONDARY_CLASS_GAMES_SONG[16] = {0x31, 0xF7, 0x4F, 0xF2,
  0xFC, 0x96, 0x0F, 0x4D, 0xA2, 0xF5, 0x5A, 0x34, 0x83, 0x68, 0x2B, 0x1A};
 
 #pragma pack(push) /* must be byte-aligned */
 #pragma pack(1)
 typedef struct
 {
-    gchar magic[3];
-    guchar version;
-    guchar revision;
-    guchar flags;
-    guint32 size;
+    char magic[3];
+    unsigned char version;
+    unsigned char revision;
+    unsigned char flags;
+    uint32_t size;
 }
 ID3v2Header;
 
 typedef struct
 {
-    gchar key[4];
-    guint32 size;
-    guint16 flags;
+    char key[4];
+    uint32_t size;
+    uint16_t flags;
 }
 ID3v2FrameHeader;
 #pragma pack(pop)
 
 typedef struct
 {
-    gchar key[5];
-    guchar * data;
-    gint size;
+    char key[5];
+    unsigned char * data;
+    int size;
 }
 GenericFrame;
 
@@ -109,16 +112,22 @@ GenericFrame;
 #define ID3_FRAME_SYNCSAFE    0x0002
 #define ID3_FRAME_HAS_LENGTH  0x0001
 
-static gboolean skip_extended_header_3 (VFSFile * handle, gint * _size)
+/* str_unref() may be a macro */
+static void str_unref_cb (void * str)
 {
-    guint32 size;
+    str_unref (str);
+}
+
+static bool_t skip_extended_header_3 (VFSFile * handle, int * _size)
+{
+    uint32_t size;
 
     if (vfs_fread (& size, 1, 4, handle) != 4)
         return FALSE;
 
     size = GUINT32_FROM_BE (size);
 
-    TAGDBG ("Found v2.3 extended header, size = %d.\n", (gint) size);
+    TAGDBG ("Found v2.3 extended header, size = %d.\n", (int) size);
 
     if (vfs_fseek (handle, size, SEEK_CUR))
         return FALSE;
@@ -127,16 +136,16 @@ static gboolean skip_extended_header_3 (VFSFile * handle, gint * _size)
     return TRUE;
 }
 
-static gboolean skip_extended_header_4 (VFSFile * handle, gint * _size)
+static bool_t skip_extended_header_4 (VFSFile * handle, int * _size)
 {
-    guint32 size;
+    uint32_t size;
 
     if (vfs_fread (& size, 1, 4, handle) != 4)
         return FALSE;
 
     size = unsyncsafe32 (GUINT32_FROM_BE (size));
 
-    TAGDBG ("Found v2.4 extended header, size = %d.\n", (gint) size);
+    TAGDBG ("Found v2.4 extended header, size = %d.\n", (int) size);
 
     if (vfs_fseek (handle, size - 4, SEEK_CUR))
         return FALSE;
@@ -145,7 +154,7 @@ static gboolean skip_extended_header_4 (VFSFile * handle, gint * _size)
     return TRUE;
 }
 
-static gboolean validate_header (ID3v2Header * header, gboolean is_footer)
+static bool_t validate_header (ID3v2Header * header, bool_t is_footer)
 {
     if (memcmp (header->magic, is_footer ? "3DI" : "ID3", 3))
         return FALSE;
@@ -157,15 +166,15 @@ static gboolean validate_header (ID3v2Header * header, gboolean is_footer)
 
     TAGDBG ("Found ID3v2 %s:\n", is_footer ? "footer" : "header");
     TAGDBG (" magic = %.3s\n", header->magic);
-    TAGDBG (" version = %d\n", (gint) header->version);
-    TAGDBG (" revision = %d\n", (gint) header->revision);
-    TAGDBG (" flags = %x\n", (gint) header->flags);
-    TAGDBG (" size = %d\n", (gint) header->size);
+    TAGDBG (" version = %d\n", (int) header->version);
+    TAGDBG (" revision = %d\n", (int) header->revision);
+    TAGDBG (" flags = %x\n", (int) header->flags);
+    TAGDBG (" size = %d\n", (int) header->size);
     return TRUE;
 }
 
-static gboolean read_header (VFSFile * handle, gint * version, gboolean *
- syncsafe, gsize * offset, gint * header_size, gint * data_size, gint *
+static bool_t read_header (VFSFile * handle, int * version, bool_t *
+ syncsafe, int64_t * offset, int * header_size, int * data_size, int *
  footer_size)
 {
     ID3v2Header header, footer;
@@ -203,7 +212,7 @@ static gboolean read_header (VFSFile * handle, gint * version, gboolean *
     }
     else
     {
-        gsize end = vfs_fsize (handle);
+        int64_t end = vfs_fsize (handle);
 
         if (end < 0)
             return FALSE;
@@ -239,7 +248,7 @@ static gboolean read_header (VFSFile * handle, gint * version, gboolean *
 
     if (header.flags & ID3_HEADER_HAS_EXTENDED_HEADER)
     {
-        gint extended_size = 0;
+        int extended_size = 0;
 
         if (header.version == 3)
         {
@@ -257,18 +266,18 @@ static gboolean read_header (VFSFile * handle, gint * version, gboolean *
     }
 
     TAGDBG ("Offset = %d, header size = %d, data size = %d, footer size = "
-     "%d.\n", (gint) * offset, * header_size, * data_size, * footer_size);
+     "%d.\n", (int) * offset, * header_size, * data_size, * footer_size);
 
     return TRUE;
 }
 
-static gint unsyncsafe (guchar * data, gint size)
+static int unsyncsafe (unsigned char * data, int size)
 {
-    guchar * get = data, * set = data;
+    unsigned char * get = data, * set = data;
 
     while (size --)
     {
-        guchar c = * set ++ = * get ++;
+        unsigned char c = * set ++ = * get ++;
 
         if (c == 0xff && size && ! get[0])
         {
@@ -280,11 +289,11 @@ static gint unsyncsafe (guchar * data, gint size)
     return set - data;
 }
 
-static gboolean read_frame (VFSFile * handle, gint max_size, gint version,
- gboolean syncsafe, gint * frame_size, gchar * key, guchar * * data, gint * size)
+static bool_t read_frame (VFSFile * handle, int max_size, int version,
+ bool_t syncsafe, int * frame_size, char * key, unsigned char * * data, int * size)
 {
     ID3v2FrameHeader header;
-    gint skip = 0;
+    int skip = 0;
 
     if ((max_size -= sizeof (ID3v2FrameHeader)) < 0)
         return FALSE;
@@ -305,8 +314,8 @@ static gboolean read_frame (VFSFile * handle, gint max_size, gint version,
 
     TAGDBG ("Found frame:\n");
     TAGDBG (" key = %.4s\n", header.key);
-    TAGDBG (" size = %d\n", (gint) header.size);
-    TAGDBG (" flags = %x\n", (gint) header.flags);
+    TAGDBG (" size = %d\n", (int) header.size);
+    TAGDBG (" flags = %x\n", (int) header.flags);
 
     * frame_size = sizeof (ID3v2FrameHeader) + header.size;
     sprintf (key, "%.4s", header.key);
@@ -338,18 +347,18 @@ static gboolean read_frame (VFSFile * handle, gint max_size, gint version,
     return TRUE;
 }
 
-static gchar * decode_text_frame (const guchar * data, gint size)
+static char * decode_text_frame (const unsigned char * data, int size)
 {
-    return convert_text ((const gchar *) data + 1, size - 1, data[0], FALSE,
+    return convert_text ((const char *) data + 1, size - 1, data[0], FALSE,
      NULL, NULL);
 }
 
-static gboolean decode_comment_frame (const guchar * _data, gint size, gchar * *
- lang, gchar * * type, gchar * * value)
+static bool_t decode_comment_frame (const unsigned char * _data, int size, char * *
+ lang, char * * type, char * * value)
 {
-    const gchar * data = (const gchar *) _data;
-    gchar * pair, * sep;
-    gint converted;
+    const char * data = (const char *) _data;
+    char * pair, * sep;
+    int converted;
 
     pair = convert_text (data + 4, size - 4, data[0], FALSE, & converted, NULL);
 
@@ -364,22 +373,30 @@ static gboolean decode_comment_frame (const guchar * _data, gint size, gchar * *
     return TRUE;
 }
 
-static void free_generic_frame (GenericFrame * frame)
+static void free_frame (GenericFrame * frame)
 {
     g_free (frame->data);
     g_free (frame);
 }
 
-static void read_all_frames (VFSFile * handle, gint version, gboolean syncsafe,
- gint data_size, mowgli_dictionary_t * dict)
+static void free_frame_list (GList * list)
+{
+    for (GList * node = list; node; node = node->next)
+        free_frame (node->data);
+
+    g_list_free (list);
+}
+
+static void read_all_frames (VFSFile * handle, int version, bool_t syncsafe,
+ int data_size, GHashTable * dict)
 {
-    gint pos;
+    int pos;
 
     for (pos = 0; pos < data_size; )
     {
-        gint frame_size, size;
-        gchar key[5];
-        guchar * data;
+        int frame_size, size;
+        char key[5];
+        unsigned char * data;
         GenericFrame * frame;
 
         if (! read_frame (handle, data_size - pos, version, syncsafe,
@@ -388,23 +405,24 @@ static void read_all_frames (VFSFile * handle, gint version, gboolean syncsafe,
 
         pos += frame_size;
 
-        if (mowgli_dictionary_retrieve (dict, key) != NULL)
-        {
-            TAGDBG ("Discarding duplicate frame %s.\n", key);
-            g_free (data);
-            continue;
-        }
-
         frame = g_malloc (sizeof (GenericFrame));
         strcpy (frame->key, key);
         frame->data = data;
         frame->size = size;
 
-        mowgli_dictionary_add (dict, key, frame);
+        void * key2, * list = NULL;
+
+        if (g_hash_table_lookup_extended (dict, key, & key2, & list))
+            g_hash_table_steal (dict, key);
+        else
+            key2 = str_get (key);
+
+        list = g_list_append (list, frame);
+        g_hash_table_insert (dict, key2, list);
     }
 }
 
-static gboolean write_frame (VFSFile * handle, GenericFrame * frame, gint *
+static bool_t write_frame (VFSFile * handle, GenericFrame * frame, int *
  frame_size)
 {
     TAGDBG ("Writing frame %s, size %d\n", frame->key, frame->size);
@@ -429,29 +447,31 @@ static gboolean write_frame (VFSFile * handle, GenericFrame * frame, gint *
 
 typedef struct {
     VFSFile * file;
-    gint written_size;
+    int written_size;
 } WriteState;
 
-static gint write_frame_cb (mowgli_dictionary_elem_t * elem, void * user)
+static void write_frame_list (void * key, void * list, void * user)
 {
     WriteState * state = user;
-    gint size;
-    if (! write_frame (state->file, elem->data, & size))
-        return -1;
-    state->written_size += size;
-    return 0;
+
+    for (GList * node = list; node; node = node->next)
+    {
+        int size;
+        if (write_frame (state->file, node->data, & size))
+            state->written_size += size;
+    }
 }
 
-static gint writeAllFramesToFile (VFSFile * fd, mowgli_dictionary_t * dict)
+static int write_all_frames (VFSFile * handle, GHashTable * dict)
 {
-    WriteState state = {fd, 0};
-    mowgli_dictionary_foreach (dict, write_frame_cb, & state);
+    WriteState state = {handle, 0};
+    g_hash_table_foreach (dict, write_frame_list, & state);
 
     TAGDBG ("Total frame bytes written = %d.\n", state.written_size);
     return state.written_size;
 }
 
-static gboolean write_header (VFSFile * handle, gint size, gboolean is_footer)
+static bool_t write_header (VFSFile * handle, int size, bool_t is_footer)
 {
     ID3v2Header header;
 
@@ -466,9 +486,9 @@ static gboolean write_header (VFSFile * handle, gint size, gboolean is_footer)
      (ID3v2Header);
 }
 
-static gint get_frame_id (const gchar * key)
+static int get_frame_id (const char * key)
 {
-    gint id;
+    int id;
 
     for (id = 0; id < ID3_TAGS_NO; id ++)
     {
@@ -479,10 +499,10 @@ static gint get_frame_id (const gchar * key)
     return -1;
 }
 
-static void associate_string (Tuple * tuple, gint field, const gchar *
- customfield, const guchar * data, gint size)
+static void associate_string (Tuple * tuple, int field, const char *
+ customfield, const unsigned char * data, int size)
 {
-    gchar * text = decode_text_frame (data, size);
+    char * text = decode_text_frame (data, size);
 
     if (text == NULL || ! text[0])
     {
@@ -495,58 +515,61 @@ static void associate_string (Tuple * tuple, gint field, const gchar *
     else
         TAGDBG ("Field %i = %s.\n", field, text);
 
-    tuple_associate_string (tuple, field, customfield, text);
+    tuple_set_str (tuple, field, customfield, text);
     g_free (text);
 }
 
-static void associate_int (Tuple * tuple, gint field, const gchar *
- customfield, const guchar * data, gint size)
+static void associate_int (Tuple * tuple, int field, const char *
+ customfield, const unsigned char * data, int size)
 {
-    gchar * text = decode_text_frame (data, size);
+    char * text = decode_text_frame (data, size);
 
-    if (text == NULL || ! text[0])
+    if (text == NULL || atoi (text) < 1)
+    {
+        g_free (text);
         return;
+    }
 
     if (customfield != NULL)
         TAGDBG ("Custom field %s = %s.\n", customfield, text);
     else
         TAGDBG ("Field %i = %s.\n", field, text);
 
-    tuple_associate_int (tuple, field, customfield, atoi (text));
+    tuple_set_int (tuple, field, customfield, atoi (text));
     g_free (text);
 }
 
-static void decode_private_info (Tuple * tuple, const guchar * data, gint size)
+static void decode_private_info (Tuple * tuple, const unsigned char * data, int size)
 {
-    gchar * text = g_strndup ((const gchar *) data, size);
+    char * text = g_strndup ((const char *) data, size);
 
     if (!strncmp(text, "WM/", 3))
     {
-        gchar *separator = strchr(text, 0);
+        char *separator = strchr(text, 0);
         if (separator == NULL)
             goto DONE;
 
-        gchar * value = separator + 1;
+        char * value = separator + 1;
         if (!strncmp(text, "WM/MediaClassPrimaryID", 22))
         {
             if (!memcmp(value, PRIMARY_CLASS_MUSIC, 16))
-                tuple_associate_string (tuple, -1, "media-class", "Music");
+                tuple_set_str (tuple, -1, "media-class", "Music");
             if (!memcmp(value, PRIMARY_CLASS_AUDIO, 16))
-                tuple_associate_string (tuple, -1, "media-class", "Audio (non-music)");
+                tuple_set_str (tuple, -1, "media-class", "Audio (non-music)");
         } else if (!strncmp(text, "WM/MediaClassSecondaryID", 24))
         {
             if (!memcmp(value, SECONDARY_CLASS_AUDIOBOOK, 16))
-                tuple_associate_string (tuple, -1, "media-class", "Audio Book");
+                tuple_set_str (tuple, -1, "media-class", "Audio Book");
             if (!memcmp(value, SECONDARY_CLASS_SPOKENWORD, 16))
-                tuple_associate_string (tuple, -1, "media-class", "Spoken Word");
+                tuple_set_str (tuple, -1, "media-class", "Spoken Word");
             if (!memcmp(value, SECONDARY_CLASS_NEWS, 16))
-                tuple_associate_string (tuple, -1, "media-class", "News");
+                tuple_set_str (tuple, -1, "media-class", "News");
             if (!memcmp(value, SECONDARY_CLASS_TALKSHOW, 16))
-                tuple_associate_string (tuple, -1, "media-class", "Talk Show");
+                tuple_set_str (tuple, -1, "media-class", "Talk Show");
             if (!memcmp(value, SECONDARY_CLASS_GAMES_CLIP, 16))
-                tuple_associate_string (tuple, -1, "media-class", "Game Audio (clip)");
+                tuple_set_str (tuple, -1, "media-class", "Game Audio (clip)");
             if (!memcmp(value, SECONDARY_CLASS_GAMES_SONG, 16))
-                tuple_associate_string (tuple, -1, "media-class", "Game Soundtrack");
+                tuple_set_str (tuple, -1, "media-class", "Game Soundtrack");
         } else {
             TAGDBG("Unrecognised tag %s (Windows Media) ignored\n", text);
         }
@@ -558,9 +581,9 @@ DONE:
     g_free (text);
 }
 
-static void decode_comment (Tuple * tuple, const guchar * data, gint size)
+static void decode_comment (Tuple * tuple, const unsigned char * data, int size)
 {
-    gchar * lang, * type, * value;
+    char * lang, * type, * value;
 
     if (! decode_comment_frame (data, size, & lang, & type, & value))
         return;
@@ -568,45 +591,26 @@ static void decode_comment (Tuple * tuple, const guchar * data, gint size)
     TAGDBG ("Comment: lang = %s, type = %s, value = %s.\n", lang, type, value);
 
     if (! type[0]) /* blank type == actual comment */
-        tuple_associate_string (tuple, FIELD_COMMENT, NULL, value);
+        tuple_set_str (tuple, FIELD_COMMENT, NULL, value);
 
     g_free (lang);
     g_free (type);
     g_free (value);
 }
 
-static void decode_txxx (Tuple * tuple, const guchar * data, gint size)
-{
-    gchar * text = decode_text_frame (data, size);
-
-    if (text == NULL)
-        return;
-
-    gchar *separator = strchr(text, 0);
-
-    if (separator == NULL)
-        return;
-
-    gchar * value = separator + 1;
-    TAGDBG ("TXXX: %s = %s.\n", text, value);
-    tuple_associate_string (tuple, -1, text, value);
-
-    g_free (text);
-}
-
-static gboolean decode_rva2_block (const guchar * * _data, gint * _size, gint *
- channel, gint * adjustment, gint * adjustment_unit, gint * peak, gint *
+static bool_t decode_rva2_block (const unsigned char * * _data, int * _size, int *
+ channel, int * adjustment, int * adjustment_unit, int * peak, int *
  peak_unit)
 {
-    const guchar * data = * _data;
-    gint size = * _size;
-    gint peak_bits;
+    const unsigned char * data = * _data;
+    int size = * _size;
+    int peak_bits;
 
     if (size < 4)
         return FALSE;
 
     * channel = data[0];
-    * adjustment = (gchar) data[1]; /* first byte is signed */
+    * adjustment = (char) data[1]; /* first byte is signed */
     * adjustment = (* adjustment << 8) | data[2];
     * adjustment_unit = 512;
     peak_bits = data[3];
@@ -617,10 +621,10 @@ static gboolean decode_rva2_block (const guchar * * _data, gint * _size, gint *
     TAGDBG ("RVA2 block: channel = %d, adjustment = %d/%d, peak bits = %d\n",
      * channel, * adjustment, * adjustment_unit, peak_bits);
 
-    if (peak_bits > 0 && peak_bits < sizeof (gint) * 8)
+    if (peak_bits > 0 && peak_bits < sizeof (int) * 8)
     {
-        gint bytes = (peak_bits + 7) / 8;
-        gint count;
+        int bytes = (peak_bits + 7) / 8;
+        int count;
 
         if (bytes > size)
             return FALSE;
@@ -647,15 +651,15 @@ static gboolean decode_rva2_block (const guchar * * _data, gint * _size, gint *
     return TRUE;
 }
 
-static void decode_rva2 (Tuple * tuple, const guchar * data, gint size)
+static void decode_rva2 (Tuple * tuple, const unsigned char * data, int size)
 {
-    const gchar * domain;
-    gint channel, adjustment, adjustment_unit, peak, peak_unit;
+    const char * domain;
+    int channel, adjustment, adjustment_unit, peak, peak_unit;
 
     if (memchr (data, 0, size) == NULL)
         return;
 
-    domain = (const gchar *) data;
+    domain = (const char *) data;
 
     TAGDBG ("RVA2 domain: %s\n", domain);
 
@@ -673,44 +677,44 @@ static void decode_rva2 (Tuple * tuple, const guchar * data, gint size)
 
         if (tuple_get_value_type (tuple, FIELD_GAIN_GAIN_UNIT, NULL) ==
          TUPLE_INT)
-            adjustment = adjustment * (gint64) tuple_get_int (tuple,
+            adjustment = adjustment * (int64_t) tuple_get_int (tuple,
              FIELD_GAIN_GAIN_UNIT, NULL) / adjustment_unit;
         else
-            tuple_associate_int (tuple, FIELD_GAIN_GAIN_UNIT, NULL,
+            tuple_set_int (tuple, FIELD_GAIN_GAIN_UNIT, NULL,
              adjustment_unit);
 
         if (peak_unit)
         {
             if (tuple_get_value_type (tuple, FIELD_GAIN_PEAK_UNIT, NULL) ==
              TUPLE_INT)
-                peak = peak * (gint64) tuple_get_int (tuple,
+                peak = peak * (int64_t) tuple_get_int (tuple,
                  FIELD_GAIN_PEAK_UNIT, NULL) / peak_unit;
             else
-                tuple_associate_int (tuple, FIELD_GAIN_PEAK_UNIT, NULL,
+                tuple_set_int (tuple, FIELD_GAIN_PEAK_UNIT, NULL,
                  peak_unit);
         }
 
-        if (! strcasecmp (domain, "album"))
+        if (! g_ascii_strcasecmp (domain, "album"))
         {
-            tuple_associate_int (tuple, FIELD_GAIN_ALBUM_GAIN, NULL, adjustment);
+            tuple_set_int (tuple, FIELD_GAIN_ALBUM_GAIN, NULL, adjustment);
 
             if (peak_unit)
-                tuple_associate_int (tuple, FIELD_GAIN_ALBUM_PEAK, NULL, peak);
+                tuple_set_int (tuple, FIELD_GAIN_ALBUM_PEAK, NULL, peak);
         }
-        else if (! strcasecmp (domain, "track"))
+        else if (! g_ascii_strcasecmp (domain, "track"))
         {
-            tuple_associate_int (tuple, FIELD_GAIN_TRACK_GAIN, NULL, adjustment);
+            tuple_set_int (tuple, FIELD_GAIN_TRACK_GAIN, NULL, adjustment);
 
             if (peak_unit)
-                tuple_associate_int (tuple, FIELD_GAIN_TRACK_PEAK, NULL, peak);
+                tuple_set_int (tuple, FIELD_GAIN_TRACK_PEAK, NULL, peak);
         }
     }
 }
 
-static void decode_genre (Tuple * tuple, const guchar * data, gint size)
+static void decode_genre (Tuple * tuple, const unsigned char * data, int size)
 {
-    gint numericgenre;
-    gchar * text = decode_text_frame (data, size);
+    int numericgenre;
+    char * text = decode_text_frame (data, size);
 
     if (text == NULL)
         return;
@@ -721,47 +725,37 @@ static void decode_genre (Tuple * tuple, const guchar * data, gint size)
         numericgenre = atoi (text);
 
     if (numericgenre > 0)
-        tuple_associate_string (tuple, FIELD_GENRE, NULL,
+        tuple_set_str (tuple, FIELD_GENRE, NULL,
          convert_numericgenre_to_text (numericgenre));
     else
-        tuple_associate_string (tuple, FIELD_GENRE, NULL, text);
+        tuple_set_str (tuple, FIELD_GENRE, NULL, text);
 
     g_free (text);
     return;
 }
 
-static GenericFrame * add_generic_frame (gint id, gint size,
- mowgli_dictionary_t * dict)
+static GenericFrame * add_generic_frame (int id, int size,
+ GHashTable * dict)
 {
-    GenericFrame * frame = mowgli_dictionary_retrieve (dict, id3_frames[id]);
-
-    if (frame == NULL)
-    {
-        frame = g_malloc (sizeof (GenericFrame));
-        strcpy (frame->key, id3_frames[id]);
-        mowgli_dictionary_add (dict, frame->key, frame);
-    }
-    else
-        g_free (frame->data);
+    GenericFrame * frame = g_malloc (sizeof (GenericFrame));
 
+    strcpy (frame->key, id3_frames[id]);
     frame->data = g_malloc (size);
     frame->size = size;
+
+    GList * list = g_list_append (NULL, frame);
+    g_hash_table_insert (dict, str_get (id3_frames[id]), list);
+
     return frame;
 }
 
-static void remove_frame (gint id, mowgli_dictionary_t * dict)
+static void remove_frame (int id, GHashTable * dict)
 {
-    GenericFrame * frame = mowgli_dictionary_retrieve (dict, id3_frames[id]);
-    if (frame == NULL)
-        return;
-
     TAGDBG ("Deleting frame %s.\n", id3_frames[id]);
-    mowgli_dictionary_delete (dict, id3_frames[id]);
-    free_generic_frame (frame);
+    g_hash_table_remove (dict, id3_frames[id]);
 }
 
-static void add_text_frame (gint id, const gchar * text, mowgli_dictionary_t *
- dict)
+static void add_text_frame (int id, const char * text, GHashTable * dict)
 {
     if (text == NULL)
     {
@@ -770,14 +764,14 @@ static void add_text_frame (gint id, const gchar * text, mowgli_dictionary_t *
     }
 
     TAGDBG ("Adding text frame %s = %s.\n", id3_frames[id], text);
-    gint length = strlen (text);
+    int length = strlen (text);
 
     GenericFrame * frame = add_generic_frame (id, length + 1, dict);
     frame->data[0] = 3; /* UTF-8 encoding */
     memcpy (frame->data + 1, text, length);
 }
 
-static void add_comment_frame (const gchar * text, mowgli_dictionary_t * dict)
+static void add_comment_frame (const char * text, GHashTable * dict)
 {
     if (text == NULL)
     {
@@ -786,22 +780,24 @@ static void add_comment_frame (const gchar * text, mowgli_dictionary_t * dict)
     }
 
     TAGDBG ("Adding comment frame = %s.\n", text);
-    gint length = strlen (text);
+    int length = strlen (text);
     GenericFrame * frame = add_generic_frame (ID3_COMMENT, length + 5, dict);
 
     frame->data[0] = 3; /* UTF-8 encoding */
-    strcpy ((gchar *) frame->data + 1, "eng"); /* well, it *might* be English */
+    strcpy ((char *) frame->data + 1, "eng"); /* well, it *might* be English */
     memcpy (frame->data + 5, text, length);
 }
 
-static void add_frameFromTupleStr (const Tuple * tuple, gint field, gint
- id3_field, mowgli_dictionary_t * dict)
+static void add_frameFromTupleStr (const Tuple * tuple, int field, int
+ id3_field, GHashTable * dict)
 {
-    add_text_frame (id3_field, tuple_get_string (tuple, field, NULL), dict);
+    char * str = tuple_get_str (tuple, field, NULL);
+    add_text_frame (id3_field, str, dict);
+    str_unref (str);
 }
 
-static void add_frameFromTupleInt (const Tuple * tuple, gint field, gint
- id3_field, mowgli_dictionary_t * dict)
+static void add_frameFromTupleInt (const Tuple * tuple, int field, int
+ id3_field, GHashTable * dict)
 {
     if (tuple_get_value_type (tuple, field, NULL) != TUPLE_INT)
     {
@@ -809,27 +805,27 @@ static void add_frameFromTupleInt (const Tuple * tuple, gint field, gint
         return;
     }
 
-    gchar scratch[16];
+    char scratch[16];
     snprintf (scratch, sizeof scratch, "%d", tuple_get_int (tuple, field, NULL));
     add_text_frame (id3_field, scratch, dict);
 }
 
-static gboolean id3v24_can_handle_file (VFSFile * handle)
+static bool_t id3v24_can_handle_file (VFSFile * handle)
 {
-    gint version, header_size, data_size, footer_size;
-    gboolean syncsafe;
-    gsize offset;
+    int version, header_size, data_size, footer_size;
+    bool_t syncsafe;
+    int64_t offset;
 
     return read_header (handle, & version, & syncsafe, & offset, & header_size,
      & data_size, & footer_size);
 }
 
-static gboolean id3v24_read_tag (Tuple * tuple, VFSFile * handle)
+static bool_t id3v24_read_tag (Tuple * tuple, VFSFile * handle)
 {
-    gint version, header_size, data_size, footer_size;
-    gboolean syncsafe;
-    gsize offset;
-    gint pos;
+    int version, header_size, data_size, footer_size;
+    bool_t syncsafe;
+    int64_t offset;
+    int pos;
 
     if (! read_header (handle, & version, & syncsafe, & offset, & header_size,
      & data_size, & footer_size))
@@ -837,9 +833,9 @@ static gboolean id3v24_read_tag (Tuple * tuple, VFSFile * handle)
 
     for (pos = 0; pos < data_size; )
     {
-        gint frame_size, size, id;
-        gchar key[5];
-        guchar * data;
+        int frame_size, size, id;
+        char key[5];
+        unsigned char * data;
 
         if (! read_frame (handle, data_size - pos, version, syncsafe,
          & frame_size, key, & data, & size))
@@ -892,9 +888,6 @@ static gboolean id3v24_read_tag (Tuple * tuple, VFSFile * handle)
           case ID3_ENCODER:
             associate_string (tuple, -1, "encoder", data, size);
             break;
-          case ID3_TXXX:
-            decode_txxx (tuple, data, size);
-            break;
           case ID3_RVA2:
             decode_rva2 (tuple, data, size);
             break;
@@ -910,11 +903,11 @@ static gboolean id3v24_read_tag (Tuple * tuple, VFSFile * handle)
     return TRUE;
 }
 
-static gboolean parse_apic (const guchar * _data, gint size, gchar * * mime,
- gint * type, gchar * * desc, void * * image_data, gint * image_size)
+static bool_t parse_apic (const unsigned char * _data, int size, char * * mime,
+ int * type, char * * desc, void * * image_data, int * image_size)
 {
-    const gchar * data = (const gchar *) _data;
-    const gchar * sep, * after;
+    const char * data = (const char *) _data;
+    const char * sep, * after;
 
     if (size < 2 || (sep = memchr (data + 1, 0, size - 2)) == NULL)
         return FALSE;
@@ -933,13 +926,13 @@ static gboolean parse_apic (const guchar * _data, gint size, gchar * * mime,
     return TRUE;
 }
 
-static gboolean id3v24_read_image (VFSFile * handle, void * * image_data, gint *
- image_size)
+static bool_t id3v24_read_image (VFSFile * handle, void * * image_data,
+ int64_t * image_size64)
 {
-    gint version, header_size, data_size, footer_size, parsed;
-    gboolean syncsafe;
-    gsize offset;
-    gboolean found = FALSE;
+    int version, header_size, data_size, footer_size, parsed, image_size = 0;
+    bool_t syncsafe;
+    int64_t offset;
+    bool_t found = FALSE;
 
     if (! read_header (handle, & version, & syncsafe, & offset, & header_size,
      & data_size, & footer_size))
@@ -947,17 +940,17 @@ static gboolean id3v24_read_image (VFSFile * handle, void * * image_data, gint *
 
     for (parsed = 0; parsed < data_size && ! found; )
     {
-        gint frame_size, size, type;
-        gchar key[5];
-        guchar * data;
-        gchar * mime, * desc;
+        int frame_size, size, type;
+        char key[5];
+        unsigned char * data;
+        char * mime, * desc;
 
         if (! read_frame (handle, data_size - parsed, version, syncsafe,
          & frame_size, key, & data, & size))
             break;
 
         if (! strcmp (key, "APIC") && parse_apic (data, size, & mime, & type,
-         & desc, image_data, image_size))
+         & desc, image_data, & image_size))
         {
             g_free (mime);
             g_free (desc);
@@ -977,26 +970,25 @@ static gboolean id3v24_read_image (VFSFile * handle, void * * image_data, gint *
         parsed += frame_size;
     }
 
-    return found;
-}
+    if (found)
+        * image_size64 = image_size;
 
-static void free_frame_cb (mowgli_dictionary_elem_t * element, void * unused)
-{
-    free_generic_frame (element->data);
+    return found;
 }
 
-static gboolean id3v24_write_tag (const Tuple * tuple, VFSFile * f)
+static bool_t id3v24_write_tag (const Tuple * tuple, VFSFile * f)
 {
-    gint version, header_size, data_size, footer_size;
-    gboolean syncsafe;
-    gsize offset;
+    int version, header_size, data_size, footer_size;
+    bool_t syncsafe;
+    int64_t offset;
 
     if (! read_header (f, & version, & syncsafe, & offset, & header_size,
      & data_size, & footer_size))
         return FALSE;
 
     //read all frames into generic frames;
-    mowgli_dictionary_t * dict = mowgli_dictionary_create (strcasecmp);
+    GHashTable * dict = g_hash_table_new_full (g_str_hash, g_str_equal,
+     str_unref_cb, (GDestroyNotify) free_frame_list);
     read_all_frames (f, version, syncsafe, data_size, dict);
 
     //make the new frames from tuple and replace in the dictionary the old frames with the new ones
@@ -1006,7 +998,10 @@ static gboolean id3v24_write_tag (const Tuple * tuple, VFSFile * f)
     add_frameFromTupleInt (tuple, FIELD_YEAR, ID3_YEAR, dict);
     add_frameFromTupleInt (tuple, FIELD_TRACK_NUMBER, ID3_TRACKNR, dict);
     add_frameFromTupleStr (tuple, FIELD_GENRE, ID3_GENRE, dict);
-    add_comment_frame (tuple_get_string (tuple, FIELD_COMMENT, NULL), dict);
+
+    char * comment = tuple_get_str (tuple, FIELD_COMMENT, NULL);
+    add_comment_frame (comment, dict);
+    str_unref (comment);
 
     if (! offset)
     {
@@ -1027,17 +1022,17 @@ static gboolean id3v24_write_tag (const Tuple * tuple, VFSFile * f)
      FALSE))
         goto ERR;
 
-    data_size = writeAllFramesToFile (f, dict);
+    data_size = write_all_frames (f, dict);
 
     if (! write_header (f, data_size, TRUE) || vfs_fseek (f, offset, SEEK_SET)
      || ! write_header (f, data_size, FALSE))
         goto ERR;
 
-    mowgli_dictionary_destroy (dict, free_frame_cb, NULL);
+    g_hash_table_destroy (dict);
     return TRUE;
 
 ERR:
-    mowgli_dictionary_destroy (dict, free_frame_cb, NULL);
+    g_hash_table_destroy (dict);
     return FALSE;
 }
 
diff --git a/src/libaudtag/tag_module.c b/src/libaudtag/tag_module.c
index 0b2f743..0ba7ec3 100644
--- a/src/libaudtag/tag_module.c
+++ b/src/libaudtag/tag_module.c
@@ -19,31 +19,27 @@
  */
 
 #include <glib.h>
+#include <stdio.h>
+
 #include <libaudcore/tuple.h>
 #include <libaudcore/vfs.h>
 
 #include "audtag.h"
 #include "util.h"
 #include "tag_module.h"
-#include "wma/module.h"
 #include "id3/id3v1.h"
 #include "id3/id3v22.h"
 #include "id3/id3v24.h"
 #include "ape/ape.h"
-/* #include "aac/aac.h" */
 
-void init_tag_modules(void)
-{
-    mowgli_node_add((void *)&id3v24, &id3v24.node, &tag_modules);
-    mowgli_node_add((void *)&id3v22, &id3v22.node, &tag_modules);
-    mowgli_node_add((void *)&ape, &ape.node, &tag_modules);
-    mowgli_node_add((void *)&id3v1, &id3v1.node, &tag_modules);
-}
+static tag_module_t * const modules[] = {& id3v24, & id3v22, & ape, & id3v1};
+#define N_MODULES (sizeof modules / sizeof modules[0])
 
-tag_module_t * find_tag_module (VFSFile * fd, gint new_type)
+tag_module_t * find_tag_module (VFSFile * fd, int new_type)
 {
-    mowgli_node_t *mod, *tmod;
-    MOWGLI_LIST_FOREACH_SAFE(mod, tmod, tag_modules.head)
+    int i;
+
+    for (i = 0; i < N_MODULES; i ++)
     {
         if (vfs_fseek(fd, 0, SEEK_SET))
         {
@@ -51,21 +47,20 @@ tag_module_t * find_tag_module (VFSFile * fd, gint new_type)
             return NULL;
         }
 
-        if (((tag_module_t *) mod->data)->can_handle_file (fd))
+        if (modules[i]->can_handle_file (fd))
         {
-            TAGDBG ("Module %s accepted file.\n", ((tag_module_t *)
-             mod->data)->name);
-            return mod->data;
+            TAGDBG ("Module %s accepted file.\n", modules[i]->name);
+            return modules[i];
         }
     }
 
     /* No existing tag; see if we can create a new one. */
     if (new_type != TAG_TYPE_NONE)
     {
-        MOWGLI_LIST_FOREACH_SAFE (mod, tmod, tag_modules.head)
+        for (i = 0; i < N_MODULES; i ++)
         {
-            if (((tag_module_t *) (mod->data))->type == new_type)
-                return mod->data;
+            if (modules[i]->type == new_type)
+                return modules[i];
         }
     }
 
diff --git a/src/libaudtag/tag_module.h b/src/libaudtag/tag_module.h
index 6884228..dee3be2 100644
--- a/src/libaudtag/tag_module.h
+++ b/src/libaudtag/tag_module.h
@@ -23,32 +23,20 @@
 #ifndef TAG_MODULE_H
 #define TAG_MODULE_H
 
-G_BEGIN_DECLS
-
-#include <glib.h>
-#include <mowgli.h>
 #include "libaudcore/tuple.h"
 #include "libaudcore/vfs.h"
 
-mowgli_list_t tag_modules;
-int number_of_modules;
 typedef Tuple* pTuple;
 
 typedef struct _module {
-    gchar *name;
-    gint type; /* set to TAG_TYPE_NONE if the module cannot create new tags */
-    gboolean(*can_handle_file) (VFSFile *fd);
-    gboolean (* read_tag) (Tuple * tuple, VFSFile * handle);
-    gboolean (* read_image) (VFSFile * handle, void * * data, gint * size);
-    gboolean (* write_tag) (const Tuple * tuple, VFSFile * handle);
-
-    mowgli_node_t node;
+    char *name;
+    int type; /* set to TAG_TYPE_NONE if the module cannot create new tags */
+    bool_t(*can_handle_file) (VFSFile *fd);
+    bool_t (* read_tag) (Tuple * tuple, VFSFile * handle);
+    bool_t (* read_image) (VFSFile * handle, void * * data, int64_t * size);
+    bool_t (* write_tag) (const Tuple * tuple, VFSFile * handle);
 } tag_module_t;
 
-/* this function must be modified when including new modules */
-void init_tag_modules(void);
-
-tag_module_t * find_tag_module (VFSFile * handle, gint new_type);
+tag_module_t * find_tag_module (VFSFile * handle, int new_type);
 
-G_END_DECLS
 #endif /* TAG_MODULE_H */
diff --git a/src/libaudtag/util.c b/src/libaudtag/util.c
index 5d75777..9fbf28a 100644
--- a/src/libaudtag/util.c
+++ b/src/libaudtag/util.c
@@ -19,114 +19,30 @@
  */
 
 #include <glib.h>
+#include <stdio.h>
+
 #include "util.h"
 #include <inttypes.h>
 
 /* convert windows time to unix time */
-time_t unix_time(guint64 win_time)
+time_t unix_time(uint64_t win_time)
 {
-    guint64 t = (guint64) ((win_time / 10000000LL) - 11644473600LL);
+    uint64_t t = (uint64_t) ((win_time / 10000000LL) - 11644473600LL);
     return (time_t) t;
 }
 
-guint16 get_year(guint64 win_time)
+uint16_t get_year(uint64_t win_time)
 {
     GDate *d = g_date_new();
     g_date_set_time_t(d, unix_time(win_time));
-    guint16 year = g_date_get_year(d);
+    uint16_t year = g_date_get_year(d);
     g_date_free(d);
     return year;
 }
 
-Tuple *makeTuple(Tuple * tuple, const gchar * title, const gchar * artist, const gchar * comment, const gchar * album, const gchar * genre, const gchar * year, const gchar * filePath, int tracnr)
-{
-
-    tuple_associate_string(tuple, FIELD_ARTIST, NULL, artist);
-    tuple_associate_string(tuple, FIELD_TITLE, NULL, title);
-    tuple_associate_string(tuple, FIELD_COMMENT, NULL, comment);
-    tuple_associate_string(tuple, FIELD_ALBUM, NULL, album);
-    tuple_associate_string(tuple, FIELD_GENRE, NULL, genre);
-    tuple_associate_string(tuple, FIELD_YEAR, NULL, year);
-    tuple_associate_int(tuple, FIELD_TRACK_NUMBER, NULL, tracnr);
-    tuple_associate_string(tuple, FIELD_FILE_PATH, NULL, filePath);
-    return tuple;
-}
-
-const gchar *get_complete_filepath(Tuple * tuple)
-{
-    const gchar *filepath;
-    const gchar *dir;
-    const gchar *file;
-
-    dir = tuple_get_string(tuple, FIELD_FILE_PATH, NULL);
-    file = tuple_get_string(tuple, FIELD_FILE_NAME, NULL);
-    filepath = g_strdup_printf("%s/%s", dir, file);
-    TAGDBG("file path = %s\n", filepath);
-    return filepath;
-}
-
-void print_tuple(Tuple * tuple)
-{
-#if WMA_DEBUG
-    TAGDBG("--------------TUPLE PRINT --------------------\n");
-    const gchar *title = tuple_get_string(tuple, FIELD_TITLE, NULL);
-    TAGDBG("title = %s\n", title);
-    /* artist */
-    const gchar *artist = tuple_get_string(tuple, FIELD_ARTIST, NULL);
-    TAGDBG("artist = %s\n", artist);
-
-    /* copyright */
-    const gchar *copyright = tuple_get_string(tuple, FIELD_COPYRIGHT, NULL);
-    TAGDBG("copyright = %s\n", copyright);
-
-    /* comment / description */
-
-    const gchar *comment = tuple_get_string(tuple, FIELD_COMMENT, NULL);
-    TAGDBG("comment = %s\n", comment);
-
-    /* codec name */
-    const gchar *codec_name = tuple_get_string(tuple, FIELD_CODEC, NULL);
-    TAGDBG("codec = %s\n", codec_name);
-
-    /* album */
-    const gchar *album = tuple_get_string(tuple, FIELD_ALBUM, NULL);
-    TAGDBG("Album = %s\n", album);
-
-    /*track number */
-    gint track_nr = tuple_get_int(tuple, FIELD_TRACK_NUMBER, NULL);
-    TAGDBG("Track nr = %d\n", track_nr);
-
-    /* genre */
-    const gchar *genre = tuple_get_string(tuple, FIELD_GENRE, NULL);
-    TAGDBG("Genre = %s \n", genre);
-
-    /* length */
-    gint length = tuple_get_int(tuple, FIELD_LENGTH, NULL);
-    TAGDBG("Length = %d\n", length);
-
-    /* year */
-    gint year = tuple_get_int(tuple, FIELD_YEAR, NULL);
-    TAGDBG("Year = %d\n", year);
-
-    /* quality */
-    const gchar *quality = tuple_get_string(tuple, FIELD_QUALITY, NULL);
-    TAGDBG("quality = %s\n", quality);
-
-    /* path */
-    const gchar *path = tuple_get_string(tuple, FIELD_FILE_PATH, NULL);
-    TAGDBG("path = %s\n", path);
-
-    /* filename */
-    const gchar *filename = tuple_get_string(tuple, FIELD_FILE_NAME, NULL);
-    TAGDBG("filename = %s\n", filename);
-
-    TAGDBG("-----------------END---------------------\n");
-#endif
-}
-
-gchar * read_char_data (VFSFile * file, int size)
+char * read_char_data (VFSFile * file, int size)
 {
-    gchar * value = g_malloc (size + 1);
+    char * value = g_malloc (size + 1);
     if (vfs_fread (value, 1, size, file) < size)
     {
         g_free (value);
@@ -136,39 +52,14 @@ gchar * read_char_data (VFSFile * file, int size)
     return value;
 }
 
-gboolean write_char_data(VFSFile * f, gchar * data, size_t i)
-{
-    return (vfs_fwrite(data, i, 1, f) == i);
-}
-
-gchar *utf8(gunichar2 * s)
-{
-    g_return_val_if_fail(s != NULL, NULL);
-    return g_utf16_to_utf8(s, -1, NULL, NULL, NULL);
-}
-
-gunichar2 *fread_utf16(VFSFile * f, guint64 size)
-{
-    gunichar2 *p = (gunichar2 *) g_malloc0(size);
-    if (vfs_fread(p, 1, size, f) != size)
-    {
-        g_free(p);
-        p = NULL;
-    }
-    gchar *s = utf8(p);
-    TAGDBG("Converted to UTF8: '%s'\n", s);
-    g_free(s);
-    return p;
-}
-
-gboolean write_utf16(VFSFile * f, gunichar2 * data, size_t i)
+bool_t write_char_data(VFSFile * f, char * data, size_t i)
 {
     return (vfs_fwrite(data, i, 1, f) == i);
 }
 
-guint8 read_uint8(VFSFile * fd)
+uint8_t read_uint8(VFSFile * fd)
 {
-    guint16 i;
+    uint16_t i;
     if (vfs_fread(&i, 1, 1, fd) == 1)
     {
         return i;
@@ -176,92 +67,92 @@ guint8 read_uint8(VFSFile * fd)
     return -1;
 }
 
-guint16 read_LEuint16(VFSFile * fd)
+uint16_t read_LEuint16(VFSFile * fd)
 {
-    guint16 a;
+    uint16_t a;
     if (vfs_fget_le16(&a, fd))
         return a;
     else
         return -1;
 }
 
-guint16 read_BEuint16(VFSFile * fd)
+uint16_t read_BEuint16(VFSFile * fd)
 {
-    guint16 a;
+    uint16_t a;
     if (vfs_fget_be16(&a, fd))
         return a;
     else
         return -1;
 }
 
-guint32 read_LEuint32(VFSFile * fd)
+uint32_t read_LEuint32(VFSFile * fd)
 {
-    guint32 a;
+    uint32_t a;
     if (vfs_fget_le32(&a, fd))
         return a;
     else
         return -1;
 }
 
-guint32 read_BEuint32(VFSFile * fd)
+uint32_t read_BEuint32(VFSFile * fd)
 {
-    guint32 a;
+    uint32_t a;
     if (vfs_fget_be32(&a, fd))
         return a;
     else
         return -1;
 }
 
-guint64 read_LEuint64(VFSFile * fd)
+uint64_t read_LEuint64(VFSFile * fd)
 {
-    guint64 a;
+    uint64_t a;
     if (vfs_fget_le64(&a, fd))
         return a;
     else
         return -1;
 }
 
-guint64 read_BEuint64(VFSFile * fd)
+uint64_t read_BEuint64(VFSFile * fd)
 {
-    guint64 a;
+    uint64_t a;
     if (vfs_fget_be64(&a, fd))
         return a;
     else
         return 1;
 }
 
-gboolean write_uint8(VFSFile * fd, guint8 val)
+bool_t write_uint8(VFSFile * fd, uint8_t val)
 {
     return (vfs_fwrite(&val, 1, 1, fd) == 1);
 }
 
-gboolean write_LEuint16(VFSFile * fd, guint16 val)
+bool_t write_LEuint16(VFSFile * fd, uint16_t val)
 {
-    guint16 le_val = GUINT32_TO_LE(val);
+    uint16_t le_val = GUINT32_TO_LE(val);
     return (vfs_fwrite(&le_val, 2, 1, fd) == 2);
 }
 
-gboolean write_BEuint32(VFSFile * fd, guint32 val)
+bool_t write_BEuint32(VFSFile * fd, uint32_t val)
 {
-    guint32 be_val = GUINT32_TO_BE(val);
+    uint32_t be_val = GUINT32_TO_BE(val);
     return (vfs_fwrite(&be_val, 4, 1, fd) == 4);
 }
 
-gboolean write_LEuint32(VFSFile * fd, guint32 val)
+bool_t write_LEuint32(VFSFile * fd, uint32_t val)
 {
-    guint32 le_val = GUINT32_TO_LE(val);
+    uint32_t le_val = GUINT32_TO_LE(val);
     return (vfs_fwrite(&le_val, 4, 1, fd) == 4);
 }
 
-gboolean write_LEuint64(VFSFile * fd, guint64 val)
+bool_t write_LEuint64(VFSFile * fd, uint64_t val)
 {
-    guint64 le_val = GUINT64_TO_LE(val);
+    uint64_t le_val = GUINT64_TO_LE(val);
     return (vfs_fwrite(&le_val, 8, 1, fd) == 8);
 }
 
-gboolean cut_beginning_tag (VFSFile * handle, gsize tag_size)
+bool_t cut_beginning_tag (VFSFile * handle, int64_t tag_size)
 {
-    guchar buffer[16384];
+    unsigned char buffer[16384];
     gsize offset = 0, readed;
 
     if (! tag_size)
@@ -287,12 +178,12 @@ gboolean cut_beginning_tag (VFSFile * handle, gsize tag_size)
     return vfs_ftruncate (handle, offset) == 0;
 }
 
-gchar *convert_numericgenre_to_text(gint numericgenre)
+char *convert_numericgenre_to_text(int numericgenre)
 {
     const struct
     {
-        gint numericgenre;
-        gchar *genre;
+        int numericgenre;
+        char *genre;
     }
     table[] =
     {
@@ -423,7 +314,7 @@ gchar *convert_numericgenre_to_text(gint numericgenre)
         {GENRE_EURO_HOUSE, "Euro-House"},
     };
 
-    gint count;
+    int count;
 
     for (count = 0; count < G_N_ELEMENTS(table); count++)
     {
@@ -436,13 +327,13 @@ gchar *convert_numericgenre_to_text(gint numericgenre)
     return "Unknown";
 }
 
-guint32 unsyncsafe32 (guint32 x)
+uint32_t unsyncsafe32 (uint32_t x)
 {
     return (x & 0x7f) | ((x & 0x7f00) >> 1) | ((x & 0x7f0000) >> 2) | ((x &
      0x7f000000) >> 3);
 }
 
-guint32 syncsafe32 (guint32 x)
+uint32_t syncsafe32 (uint32_t x)
 {
     return (x & 0x7f) | ((x & 0x3f80) << 1) | ((x & 0x1fc000) << 2) | ((x &
      0xfe00000) << 3);
diff --git a/src/libaudtag/util.h b/src/libaudtag/util.h
index 4692cfd..c3808ad 100644
--- a/src/libaudtag/util.h
+++ b/src/libaudtag/util.h
@@ -22,7 +22,8 @@
 
 #define TAGUTIL_H
 
-#include <glib.h>
+#include <stdint.h>
+#include <time.h>
 
 #include "libaudcore/tuple.h"
 #include "libaudcore/vfs.h"
@@ -157,53 +158,40 @@ enum {
     GENRE_EURO_HOUSE
 };
 
-extern gboolean tag_verbose;
+extern bool_t tag_verbose;
 
 #define TAGDBG(...) do {if (tag_verbose) {printf ("%s:%d [%s]: ", __FILE__, __LINE__, __FUNCTION__); printf (__VA_ARGS__);}} while (0)
 
-time_t unix_time(guint64 win_time);
+time_t unix_time(uint64_t win_time);
 
-guint16 get_year(guint64 win_time);
+uint16_t get_year(uint64_t win_time);
 
-void print_tuple(Tuple *tuple);
+char *read_char_data(VFSFile *fd, int size);
+bool_t write_char_data(VFSFile *f, char *data, size_t i);
 
-//Tuple *makeTuple(Tuple *tuple, const gchar* title, const gchar* artist,
-//        const gchar* comment, const gchar* album,
-//        const gchar * genre, const gchar* year,
-//        const gchar* filePath, int tracnr);
+uint8_t read_uint8(VFSFile *fd);
+uint16_t read_LEuint16(VFSFile *fd);
+uint16_t read_BEuint16(VFSFile *fd);
+uint32_t read_LEuint32(VFSFile *fd);
+uint32_t read_BEuint32(VFSFile *fd);
+uint64_t read_LEuint64(VFSFile *fd);
+uint64_t read_BEuint64(VFSFile *fd);
 
-gchar *utf8(gunichar2* s);
-const gchar* get_complete_filepath(Tuple *tuple);
 
-gchar *read_char_data(VFSFile *fd, int size);
-gboolean write_char_data(VFSFile *f, gchar *data, size_t i);
+bool_t write_uint8(VFSFile *fd, uint8_t val);
+bool_t write_BEuint16(VFSFile *fd, uint16_t val);
+bool_t write_LEuint16(VFSFile *fd, uint16_t val);
+bool_t write_BEuint32(VFSFile *fd, uint32_t val);
+bool_t write_LEuint32(VFSFile *fd, uint32_t val);
+bool_t write_BEuint64(VFSFile *fd, uint64_t val);
+bool_t write_LEuint64(VFSFile *fd, uint64_t val);
 
-gunichar2 *fread_utf16(VFSFile* f, guint64 size);
-gboolean write_utf16(VFSFile *f, gunichar2 *data, size_t i);
+uint64_t read_LEint64(VFSFile *fd);
+bool_t cut_beginning_tag (VFSFile * handle, int64_t tag_size);
 
-guint8 read_uint8(VFSFile *fd);
-guint16 read_LEuint16(VFSFile *fd);
-guint16 read_BEuint16(VFSFile *fd);
-guint32 read_LEuint32(VFSFile *fd);
-guint32 read_BEuint32(VFSFile *fd);
-guint64 read_LEuint64(VFSFile *fd);
-guint64 read_BEuint64(VFSFile *fd);
+char *convert_numericgenre_to_text(int numericgenre);
 
-
-gboolean write_uint8(VFSFile *fd, guint8 val);
-gboolean write_BEuint16(VFSFile *fd, guint16 val);
-gboolean write_LEuint16(VFSFile *fd, guint16 val);
-gboolean write_BEuint32(VFSFile *fd, guint32 val);
-gboolean write_LEuint32(VFSFile *fd, guint32 val);
-gboolean write_BEuint64(VFSFile *fd, guint64 val);
-gboolean write_LEuint64(VFSFile *fd, guint64 val);
-
-guint64 read_LEint64(VFSFile *fd);
-gboolean cut_beginning_tag (VFSFile * handle, gsize tag_size);
-
-gchar *convert_numericgenre_to_text(gint numericgenre);
-
-guint32 unsyncsafe32 (guint32 x);
-guint32 syncsafe32 (guint32 x);
+uint32_t unsyncsafe32 (uint32_t x);
+uint32_t syncsafe32 (uint32_t x);
 
 #endif
diff --git a/src/libaudtag/wma/guid.c b/src/libaudtag/wma/guid.c
deleted file mode 100644
index f464335..0000000
--- a/src/libaudtag/wma/guid.c
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Copyright 2009 Paula Stanciu
- *
- * This file is part of Audacious.
- *
- * Audacious is free software: you can redistribute it and/or modify it under
- * the terms of the GNU General Public License as published by the Free Software
- * Foundation, version 3 of the License.
- *
- * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * Audacious. If not, see <http://www.gnu.org/licenses/>.
- *
- * The Audacious team does not consider modular code linking to Audacious or
- * using our public API to be a derived work.
- */
-
-/* this stuff may be moved to ../util.h if needed by other formats */
-
-#include <inttypes.h>
-
-#include "libaudcore/vfs.h"
-#include "../util.h"
-#include "guid.h"
-#include "wma_fmt.h"
-
-GUID_t *guid_read_from_file(VFSFile * f)
-{
-    GUID_t temp;
-
-    if ((f == NULL) || (vfs_fread(&temp, sizeof(GUID_t), 1, f) != 1))
-        return NULL;
-
-    temp.le32 = GUINT32_FROM_LE(temp.le32);
-    temp.le16_1 = GUINT16_FROM_LE(temp.le16_1);
-    temp.le16_2 = GUINT16_FROM_LE(temp.le16_2);
-    temp.be64 = GUINT64_FROM_BE(temp.be64);
-
-    return g_memdup(&temp, sizeof(GUID_t));
-}
-
-gboolean guid_write_to_file(VFSFile * f, int guid_type)
-{
-    g_return_val_if_fail(f != NULL, FALSE);
-
-    GUID_t *g = guid_convert_from_string(wma_guid_map(guid_type));
-
-    gboolean ret = write_LEuint32(f, g->le32) && write_LEuint16(f, g->le16_1) && write_LEuint16(f, g->le16_1) && write_LEuint64(f, g->be64);
-    g_free(g);
-    return ret;
-}
-
-GUID_t *guid_convert_from_string(const gchar * string)
-{
-    GUID_t temp;
-
-    if (sscanf(string, "%" SCNx32 "-%" SCNx16 "-%" SCNx16 "-%" SCNx64, &temp.le32, &temp.le16_1, &temp.le16_2, &temp.be64) != 4)
-        return NULL;
-    return g_memdup(&temp, sizeof(GUID_t));
-}
-
-gchar *guid_convert_to_string(const GUID_t * g)
-{
-
-    return g_strdup_printf("%8x-%hx-%hx-%" PRIx64 "\n", GUINT32_TO_LE(g->le32), GUINT16_TO_LE(g->le16_1), GUINT16_TO_LE(g->le16_2), GUINT64_TO_BE(g->be64));
-}
-
-gboolean guid_equal(GUID_t * g1, GUID_t * g2)
-{
-    /*
-       TAGDBG("GUID 1 = %8x-%hx-%hx-%"PRIx64"\n", g1->le32, g1->le16_1, g1->le16_2, g1->be64);
-       TAGDBG("GUID 2 = %8x-%hx-%hx-%"PRIx64"\n", g2->le32, g2->le16_1, g2->le16_2, g2->be64);
-     */
-
-    g_return_val_if_fail((g1 != NULL) && (g2 != NULL), FALSE);
-    if (!memcmp(g1, g2, 16))
-    {
-        //        TAGDBG("equal\n");
-
-        return TRUE;
-    }
-    /* TAGDBG("not equal\n"); */
-    return FALSE;
-}
-
-int get_guid_type(GUID_t * g)
-{
-    GUID_t *g1;
-    int i;
-    for (i = 0; i < ASF_OBJECT_LAST - 1; i++)
-    {
-        g1 = guid_convert_from_string(wma_guid_map(i));
-        if (guid_equal(g, g1))
-        {
-
-            g_free(g1);
-            return i;
-        }
-    }
-    return -1;
-}
-
-const gchar *wma_guid_map(int i)
-{
-    const gchar *_guid_map[ASF_OBJECT_LAST] = {
-        ASF_HEADER_OBJECT_GUID,
-        ASF_FILE_PROPERTIES_OBJECT_GUID,
-        ASF_STREAM_PROPERTIES_OBJECT_GUID,
-        ASF_HEADER_EXTENSION_OBJECT_GUID,
-        ASF_CODEC_LIST_OBJECT_GUID,
-        ASF_SCRIPT_COMMAND_OBJECT_GUID,
-        ASF_MARKER_OBJECT_GUID,
-        ASF_BITRATE_MUTUAL_EXCLUSION_OBJECT_GUID,
-        ASF_ERROR_CORRECTION_OBJECT_GUID,
-        ASF_CONTENT_DESCRIPTION_OBJECT_GUID,
-        ASF_EXTENDED_CONTENT_DESCRIPTION_OBJECT_GUID,
-        ASF_CONTENT_BRANDING_OBJECT_GUID,
-        ASF_STREAM_BITRATE_PROPERTIES_OBJECT_GUID,
-        ASF_CONTENT_ENCRYPTION_OBJECT_GUID,
-        ASF_EXTENDED_CONTENT_ENCRYPTION_OBJECT_GUID,
-        ASF_DIGITAL_SIGNATURE_OBJECT_GUID,
-        ASF_PADDING_OBJECT_GUID
-    };
-    return _guid_map[i];
-}
diff --git a/src/libaudtag/wma/guid.h b/src/libaudtag/wma/guid.h
deleted file mode 100644
index 8d68d49..0000000
--- a/src/libaudtag/wma/guid.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright 2009 Paula Stanciu
- *
- * This file is part of Audacious.
- *
- * Audacious is free software: you can redistribute it and/or modify it under
- * the terms of the GNU General Public License as published by the Free Software
- * Foundation, version 3 of the License.
- *
- * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * Audacious. If not, see <http://www.gnu.org/licenses/>.
- *
- * The Audacious team does not consider modular code linking to Audacious or
- * using our public API to be a derived work.
- */
-
-#ifndef _GUID_H
-#define _GUID_H
-
-#include <glib.h>
-#include <libaudcore/vfs.h>
-
-/* this stuff may be moved to ../util.h if needed by other formats */
-typedef struct _guid {
-    guint32 le32;
-    guint16 le16_1;
-    guint16 le16_2;
-    guint64 be64;
-}GUID_t;
-
-
-GUID_t *guid_read_from_file(VFSFile *);
-gboolean guid_write_to_file(VFSFile *, int);
-
-GUID_t *guid_convert_from_string(const gchar *);
-gchar *guid_convert_to_string(const GUID_t*);
-gboolean guid_equal(GUID_t *, GUID_t *);
-int get_guid_type(GUID_t *);
-const gchar *wma_guid_map(int);
-
-#endif /* _GUID_H */
diff --git a/src/libaudtag/wma/module.h b/src/libaudtag/wma/module.h
deleted file mode 100644
index 62670cb..0000000
--- a/src/libaudtag/wma/module.h
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright 2009 Paula Stanciu
- *
- * This file is part of Audacious.
- *
- * Audacious is free software: you can redistribute it and/or modify it under
- * the terms of the GNU General Public License as published by the Free Software
- * Foundation, version 3 of the License.
- *
- * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * Audacious. If not, see <http://www.gnu.org/licenses/>.
- *
- * The Audacious team does not consider modular code linking to Audacious or
- * using our public API to be a derived work.
- */
-
-#ifndef TAG_WMA_MODULE_H
-
-#define TAG_WMA_MODULE_H
-#include "../tag_module.h"
-#include "wma.h"
-
-extern tag_module_t wma;
-
-#endif
diff --git a/src/libaudtag/wma/wma.c b/src/libaudtag/wma/wma.c
deleted file mode 100644
index 94e181e..0000000
--- a/src/libaudtag/wma/wma.c
+++ /dev/null
@@ -1,436 +0,0 @@
-/*
- * Copyright 2009 Paula Stanciu
- *
- * This file is part of Audacious.
- *
- * Audacious is free software: you can redistribute it and/or modify it under
- * the terms of the GNU General Public License as published by the Free Software
- * Foundation, version 3 of the License.
- *
- * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * Audacious. If not, see <http://www.gnu.org/licenses/>.
- *
- * The Audacious team does not consider modular code linking to Audacious or
- * using our public API to be a derived work.
- */
-
-#include <inttypes.h>
-#include <glib-2.0/glib/gstdio.h>
-#include <libaudcore/tuple.h>
-
-#include "guid.h"
-#include "wma.h"
-#include "wma_fmt.h"
-#include "module.h"
-#include "../util.h"
-
-/* static functions */
-static GenericHeader *read_generic_header(VFSFile * f, gboolean read_data)
-{
-    TAGDBG("read top-level header object\n");
-    g_return_val_if_fail((f != NULL), NULL);
-    GenericHeader *header = g_new0(GenericHeader, 1);
-    header->guid = guid_read_from_file(f);
-    header->size = read_LEuint64(f);
-    if (read_data)
-        header->data = (gchar *) read_char_data(f, header->size);
-    else
-        header->data = NULL;
-
-    gchar *s = guid_convert_to_string(header->guid);
-    TAGDBG("read GUID: %s\n", s);
-    g_free(s);
-
-    return header;
-}
-
-static HeaderObj *read_top_header_object(VFSFile * f)
-{
-    TAGDBG("read top-level header object\n");
-    g_return_val_if_fail((f != NULL), NULL);
-    HeaderObj *header = g_new0(HeaderObj, 1);
-
-    //we have already read the GUID so we skip it (16 bytes)
-    vfs_fseek(f, 16, SEEK_SET);
-
-    header->size = read_LEuint64(f);
-    header->objectsNr = read_LEuint32(f);
-    TAGDBG("Number of child objects: %d\n", header->objectsNr);
-
-    header->res1 = read_uint8(f);
-    header->res2 = read_uint8(f);
-
-    if ((header->size == -1) || (header->objectsNr == -1) || (header->res2 != 2))
-    {
-        g_free(header);
-        return NULL;
-    }
-    return header;
-}
-
-static ContentDescrObj *read_content_descr_obj(VFSFile * f)
-{
-    ContentDescrObj *cdo = g_new0(ContentDescrObj, 1);
-    cdo->guid = guid_read_from_file(f);
-    cdo->size = read_LEuint64(f);
-    cdo->title_length = read_LEuint16(f);
-    cdo->author_length = read_LEuint16(f);
-    cdo->copyright_length = read_LEuint16(f);
-    cdo->desc_length = read_LEuint16(f);
-    cdo->rating_length = read_LEuint16(f);
-    cdo->title = fread_utf16(f, cdo->title_length);
-    cdo->author = fread_utf16(f, cdo->author_length);
-    cdo->copyright = fread_utf16(f, cdo->copyright_length);
-    cdo->description = fread_utf16(f, cdo->desc_length);
-    cdo->rating = fread_utf16(f, cdo->rating_length);
-    return cdo;
-}
-
-static ExtContentDescrObj *read_ext_content_descr_obj(VFSFile * f, Tuple * t, gboolean populate_tuple)
-{
-    ExtContentDescrObj *ecdo = g_new0(ExtContentDescrObj, 1);
-    ecdo->guid = guid_read_from_file(f);
-    ecdo->size = read_LEuint64(f);
-    ecdo->content_desc_count = read_LEuint16(f);
-    ecdo->descriptors = read_descriptors(f, ecdo->content_desc_count, t, populate_tuple);
-    return ecdo;
-}
-
-static guint find_descriptor_id(gchar * s)
-{
-    TAGDBG("finding descriptor id for '%s'\n", s);
-    g_return_val_if_fail(s != NULL, -1);
-    gchar *l[DESC_LAST] = { DESC_ALBUM_STR, DESC_YEAR_STR, DESC_GENRE_STR, DESC_TRACK_STR };
-    guint i;
-    for (i = 0; i < DESC_LAST; i++)
-        if (!strcmp(l[i], s))
-        {
-            TAGDBG("found descriptor %s\n", s);
-            return i;
-        }
-    return -1;
-}
-
-static ContentDescriptor *read_descriptor(VFSFile * f, Tuple * t, gboolean populate_tuple)
-{
-    ContentDescriptor *cd = g_new0(ContentDescriptor, 1);
-    gchar *val = NULL, *name = NULL;
-    guint32 intval = -1;
-    gint dtype;
-    TAGDBG("reading name_len\n");
-    cd->name_len = read_LEuint16(f);
-    TAGDBG("reading name\n");
-    cd->name = fread_utf16(f, cd->name_len);
-    TAGDBG("reading val_type\n");
-    cd->val_type = read_LEuint16(f);
-    TAGDBG("reading val_len\n");
-    cd->val_len = read_LEuint16(f);
-
-    name = utf8(cd->name);
-    dtype = find_descriptor_id(name);
-    g_free(name);
-
-    TAGDBG("reading val\n");
-
-    if (populate_tuple)
-    {
-        /*we only parse int's and UTF strings, everything else is handled as raw data */
-        if (cd->val_type == 0)
-        {                       /*UTF16 */
-            cd->val = read_char_data(f, cd->val_len);
-            val = utf8((gunichar2 *) cd->val);
-            TAGDBG("val: '%s' dtype: %d\n", val, dtype);
-            if (dtype == DESC_ALBUM)
-                tuple_associate_string(t, FIELD_ALBUM, NULL, val);
-            if (dtype == DESC_GENRE)
-                tuple_associate_string(t, FIELD_GENRE, NULL, val);
-            if (dtype == DESC_TRACK)
-                tuple_associate_int(t, FIELD_TRACK_NUMBER, NULL, atoi(val));
-            if (dtype == DESC_YEAR)
-                tuple_associate_int(t, FIELD_YEAR, NULL, atoi(val));
-        }
-        else
-        {
-            if (cd->val_type == 3)
-            {
-                intval = read_LEuint32(f);
-                TAGDBG("intval: %d, dtype: %d\n", intval, dtype);
-                if (dtype == DESC_TRACK)
-                    tuple_associate_int(t, FIELD_TRACK_NUMBER, NULL, intval);
-            }
-            else
-                cd->val = read_char_data(f, cd->val_len);
-        }
-    }
-    else
-        cd->val = read_char_data(f, cd->val_len);
-    TAGDBG("read str_val: '%s', intval: %d\n", val, intval);
-    TAGDBG("exiting read_descriptor \n\n");
-    return cd;
-}
-
-static ContentDescriptor **read_descriptors(VFSFile * f, guint count, Tuple * t, gboolean populate_tuple)
-{
-    if (count == 0)
-        return NULL;
-    ContentDescriptor **descs = g_new0(ContentDescriptor *, count);
-    int i;
-    for (i = 0; i < count; i++)
-        descs[i] = read_descriptor(f, t, populate_tuple);
-    return descs;
-}
-
-void free_content_descr_obj(ContentDescrObj * c)
-{
-    g_free(c->guid);
-    g_free(c->title);
-    g_free(c->author);
-    g_free(c->copyright);
-    g_free(c->description);
-    g_free(c->rating);
-    g_free(c);
-}
-
-void free_content_descr(ContentDescriptor * cd)
-{
-    g_free(cd->name);
-    g_free(cd->val);
-    g_free(cd);
-}
-
-void free_ext_content_descr_obj(ExtContentDescrObj * ecdo)
-{
-    int i;
-    g_free(ecdo->guid);
-    for (i = 0; i < ecdo->content_desc_count; i++)
-        free_content_descr(ecdo->descriptors[i]);
-    g_free(ecdo);
-}
-
-/* returns the offset of the object in the file */
-static long ftell_object_by_guid(VFSFile * f, GUID_t * g)
-{
-    TAGDBG("seeking object %s, with ID %d \n", guid_convert_to_string(g), get_guid_type(g));
-    HeaderObj *h = read_top_header_object(f);
-    g_return_val_if_fail((f != NULL) && (g != NULL) && (h != NULL), -1);
-
-    gint i = 0;
-    while (i < h->objectsNr)
-    {
-        GenericHeader *gen_hdr = read_generic_header(f, FALSE);
-        TAGDBG("encountered GUID %s, with ID %d\n", guid_convert_to_string(gen_hdr->guid), get_guid_type(gen_hdr->guid));
-        if (guid_equal(gen_hdr->guid, g))
-        {
-            g_free(h);
-            g_free(gen_hdr);
-            guint64 ret = vfs_ftell(f) - 24;
-            TAGDBG("at offset %" PRIx64 "\n", ret);
-            return ret;
-        }
-        vfs_fseek(f, gen_hdr->size - 24, SEEK_CUR);     //most headers have a size as their second field"
-        i++;
-    }
-    TAGDBG("The object was not found\n");
-
-    g_free(h);
-    return -1;
-}
-
-VFSFile *make_temp_file()
-{
-    /* create a temporary file */
-    const gchar *tmpdir = g_get_tmp_dir();
-    gchar *tmp_path = g_strdup_printf("file://%s/%s", tmpdir, "wmatmp.wma");
-    return vfs_fopen(tmp_path, "w+");
-}
-
-long ftell_object_by_str(VFSFile * f, gchar * s)
-{
-    GUID_t *g = guid_convert_from_string(s);
-    long res = ftell_object_by_guid(f, g);
-    g_free(g);
-    return res;
-}
-
-static void write_content_descr_obj_from_tuple(VFSFile * f, ContentDescrObj * cdo, Tuple * t)
-{
-    glong size;
-    gboolean free_cdo = FALSE;
-    if (cdo == NULL)
-    {
-        cdo = g_new0(ContentDescrObj, 1);
-        free_cdo = TRUE;
-    }
-
-    cdo->title = g_utf8_to_utf16(tuple_get_string(t, FIELD_TITLE, NULL), -1, NULL, &size, NULL);
-    cdo->title_length = 2 * (size + 1);
-    cdo->author = g_utf8_to_utf16(tuple_get_string(t, FIELD_ARTIST, NULL), -1, NULL, &size, NULL);
-    cdo->author_length = 2 * (size + 1);
-    cdo->copyright = g_utf8_to_utf16(tuple_get_string(t, FIELD_COPYRIGHT, NULL), -1, NULL, &size, NULL);
-    cdo->copyright_length = 2 * (size + 1);
-    cdo->description = g_utf8_to_utf16(tuple_get_string(t, FIELD_COMMENT, NULL), -1, NULL, &size, NULL);
-    cdo->desc_length = 2 * (size + 1);
-    cdo->size = 34 + cdo->title_length + cdo->author_length + cdo->copyright_length + cdo->desc_length;
-    guid_write_to_file(f, ASF_CONTENT_DESCRIPTION_OBJECT);
-    write_LEuint64(f, cdo->size);
-    write_LEuint16(f, cdo->title_length);
-    write_LEuint16(f, cdo->author_length);
-    write_LEuint16(f, cdo->copyright_length);
-    write_LEuint16(f, cdo->desc_length);
-    write_LEuint16(f, 2);       // rating_length = 2
-    write_utf16(f, cdo->title, cdo->title_length);
-    write_utf16(f, cdo->title, cdo->title_length);
-    write_utf16(f, cdo->author, cdo->author_length);
-    write_utf16(f, cdo->copyright, cdo->copyright_length);
-    write_utf16(f, cdo->description, cdo->desc_length);
-    write_utf16(f, NULL, 2);    //rating == NULL
-
-    if (free_cdo)
-        free_content_descr_obj(cdo);
-}
-
-static void write_ext_content_descr_obj_from_tuple(VFSFile * f, ExtContentDescrObj * ecdo, Tuple * tuple)
-{
-}
-
-static gboolean write_generic_header(VFSFile * f, GenericHeader * gh)
-{
-    TAGDBG("Writing generic header\n");
-    guid_write_to_file(f, get_guid_type(gh->guid));
-    return write_char_data(f, gh->data, gh->size);
-}
-
-static void free_generic_header(GenericHeader * gh)
-{
-    g_free(gh->guid);
-    g_free(gh->data);
-    g_free(gh);
-}
-
-static gboolean write_top_header_object(VFSFile * f, HeaderObj * header)
-{
-    TAGDBG("write header object\n");
-    vfs_fseek(f, 0, SEEK_SET);
-    return (guid_write_to_file(f, ASF_HEADER_OBJECT) && write_LEuint64(f, header->size) && write_LEuint32(f, header->objectsNr) && write_uint8(f, header->res1) &&      /* the reserved fields */
-            write_uint8(f, header->res2));
-}
-
-/* interface functions */
-gboolean wma_can_handle_file(VFSFile * f)
-{
-    GUID_t *guid1 = guid_read_from_file(f);
-    GUID_t *guid2 = guid_convert_from_string(ASF_HEADER_OBJECT_GUID);
-    gboolean equal = ((guid1 != NULL) && guid_equal(guid1, guid2));
-
-    g_free(guid1);
-    g_free(guid2);
-
-    return equal;
-}
-
-gboolean wma_read_tag (Tuple * t, VFSFile * f)
-{
-    gchar *artist = NULL, *title = NULL, *comment = NULL;
-
-    print_tuple(t);
-    gint seek_res = vfs_fseek(f, ftell_object_by_str(f, ASF_CONTENT_DESCRIPTION_OBJECT_GUID), SEEK_SET);
-    if (seek_res == 0)
-    {                           //if the CONTENT_DESCRIPTION_OBJECT was found
-        ContentDescrObj *cdo = read_content_descr_obj(f);
-        artist = utf8(cdo->author);
-        title = utf8(cdo->title);
-        comment = utf8(cdo->description);
-        free_content_descr_obj(cdo);
-        tuple_associate_string(t, FIELD_ARTIST, NULL, artist);
-        tuple_associate_string(t, FIELD_TITLE, NULL, title);
-        tuple_associate_string(t, FIELD_COMMENT, NULL, comment);
-    }
-    seek_res = vfs_fseek(f, ftell_object_by_str(f, ASF_EXTENDED_CONTENT_DESCRIPTION_OBJECT_GUID), SEEK_SET);
-    /*this populates the tuple with the attributes stored as extended descriptors */
-    ExtContentDescrObj *ecdo = read_ext_content_descr_obj(f, t, TRUE);
-    free_ext_content_descr_obj(ecdo);
-    print_tuple(t);
-    return TRUE;
-}
-
-gboolean wma_write_tag (Tuple * tuple, VFSFile * f)
-{
-#if BROKEN
-    return FALSE;
-#endif
-
-    HeaderObj *top_ho = read_top_header_object(f);
-    VFSFile *tmpfile = make_temp_file();
-    gint i, cdo_pos, ecdo_pos;
-    GUID_t *g;
-    /*read all the headers and write them to the new file */
-    /*the headers that contain tuple data will be overwritten */
-    TAGDBG("Header Object size: %" PRId64 "\n", top_ho->size);
-    //vfs_fseek(tmpfile, )
-    for (i = 0; i < top_ho->objectsNr; i++)
-    {
-        GenericHeader *gh = read_generic_header(f, TRUE);
-        g = guid_convert_from_string(ASF_CONTENT_DESCRIPTION_OBJECT_GUID);
-        if (guid_equal(gh->guid, g))
-        {
-            write_content_descr_obj_from_tuple(tmpfile, (ContentDescrObj *) gh, tuple);
-            g_free(g);
-        }
-        else
-        {
-            g = guid_convert_from_string(ASF_EXTENDED_CONTENT_DESCRIPTION_OBJECT_GUID);
-            if (guid_equal(gh->guid, g))
-                write_ext_content_descr_obj_from_tuple(tmpfile, (ExtContentDescrObj *) gh, tuple);
-            else
-            {
-                write_generic_header(tmpfile, gh);
-                g_free(g);
-            }
-        }
-        free_generic_header(gh);
-    }
-    /*check wether these headers existed in the  original file */
-    cdo_pos = ftell_object_by_str(f, ASF_CONTENT_DESCRIPTION_OBJECT_GUID);
-    ecdo_pos = ftell_object_by_str(f, ASF_EXTENDED_CONTENT_DESCRIPTION_OBJECT_GUID);
-    if (cdo_pos == -1)
-    {
-        write_content_descr_obj_from_tuple(tmpfile, NULL, tuple);
-        top_ho->objectsNr++;
-    }
-    if (ecdo_pos != -1)
-    {
-        write_ext_content_descr_obj_from_tuple(tmpfile, NULL, tuple);
-        top_ho->objectsNr++;
-    }
-    write_top_header_object(tmpfile, top_ho);
-
-    gchar *f1 = g_filename_from_uri(tmpfile->uri, NULL, NULL);
-    gchar *f2 = g_filename_from_uri(f->uri, NULL, NULL);
-    vfs_fclose(tmpfile);
-    /*
-       if (g_rename(f1, f2) == 0)
-       {
-       TAGDBG("the tag was updated successfully\n");
-       }
-       else
-       {
-       TAGDBG("an error has occured\n");
-       }
-     */
-    g_free(f1);
-    g_free(f2);
-
-    return TRUE;
-}
-
-tag_module_t wma = {
-    .name = "WMA",
-    .can_handle_file = wma_can_handle_file,
-    .read_tag = wma_read_tag,
-    .write_tag = wma_write_tag,
-};
-
diff --git a/src/libaudtag/wma/wma.h b/src/libaudtag/wma/wma.h
deleted file mode 100644
index 2743a7b..0000000
--- a/src/libaudtag/wma/wma.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright 2009 Paula Stanciu
- *
- * This file is part of Audacious.
- *
- * Audacious is free software: you can redistribute it and/or modify it under
- * the terms of the GNU General Public License as published by the Free Software
- * Foundation, version 3 of the License.
- *
- * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * Audacious. If not, see <http://www.gnu.org/licenses/>.
- *
- * The Audacious team does not consider modular code linking to Audacious or
- * using our public API to be a derived work.
- */
-
-#ifndef _WMA_H
-
-#define _WMA_H
-
-#include "libaudcore/tuple.h"
-#include "libaudcore/vfs.h"
-#include "wma_fmt.h"
-
-/* TAG plugin API */
-gboolean wma_can_handle_file(VFSFile *f);
-gboolean wma_read_tag (Tuple * tuple, VFSFile * handle);
-gboolean wma_write_tag (Tuple * tuple, VFSFile * handle);
-
-#endif /* _WMA_H */
diff --git a/src/libaudtag/wma/wma_fmt.h b/src/libaudtag/wma/wma_fmt.h
deleted file mode 100644
index 17d859f..0000000
--- a/src/libaudtag/wma/wma_fmt.h
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
- * Copyright 2009 Paula Stanciu
- *
- * This file is part of Audacious.
- *
- * Audacious is free software: you can redistribute it and/or modify it under
- * the terms of the GNU General Public License as published by the Free Software
- * Foundation, version 3 of the License.
- *
- * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * Audacious. If not, see <http://www.gnu.org/licenses/>.
- *
- * The Audacious team does not consider modular code linking to Audacious or
- * using our public API to be a derived work.
- */
-
-#ifndef _WMA_FMT_H
-#define _WMA_FMT_H
-
-#include "guid.h"
-
-
-#define ASF_HEADER_OBJECT_GUID				"75B22630-668E-11CF-A6D900AA0062CE6C"
-#define ASF_FILE_PROPERTIES_OBJECT_GUID			"8CABDCA1-A947-11CF-8EE400C00C205365"
-#define ASF_STREAM_PROPERTIES_OBJECT_GUID		"B7DC0791-A9B7-11CF-8EE600C00C205365"
-#define ASF_HEADER_EXTENSION_OBJECT_GUID		"5FBF03B5-A92E-11CF-8EE300C00C205365"
-#define ASF_CODEC_LIST_OBJECT_GUID			"86D15240-311D-11D0-A3A400A0C90348F6"
-#define ASF_SCRIPT_COMMAND_OBJECT_GUID			"1EFB1A30-0B62-11D0-A39B00A0C90348F6"
-#define ASF_MARKER_OBJECT_GUID				"F487CD01-A951-11CF-8EE600C00C205365"
-#define ASF_BITRATE_MUTUAL_EXCLUSION_OBJECT_GUID	"D6E229DC-35DA-11D1-903400A0C90349BE"
-#define ASF_ERROR_CORRECTION_OBJECT_GUID		"75B22635-668E-11CF-A6D900AA0062CE6C"
-#define ASF_CONTENT_DESCRIPTION_OBJECT_GUID		"75B22633-668E-11CF-A6D900AA0062CE6C"
-#define ASF_EXTENDED_CONTENT_DESCRIPTION_OBJECT_GUID	"D2D0A440-E307-11D2-97F000A0C95EA850"
-#define ASF_CONTENT_BRANDING_OBJECT_GUID		"2211B3FA-BD23-11D2-B4B700A0C955FC6E"
-#define ASF_STREAM_BITRATE_PROPERTIES_OBJECT_GUID	"7BF875CE-468D-11D1-8D82006097C9A2B2"
-#define ASF_CONTENT_ENCRYPTION_OBJECT_GUID		"2211B3FB-BD23-11D2-B4B700A0C955FC6E"
-#define ASF_EXTENDED_CONTENT_ENCRYPTION_OBJECT_GUID	"298AE614-2622-4C17-B935DAE07EE9289C"
-#define ASF_DIGITAL_SIGNATURE_OBJECT_GUID		"2211B3FC-BD23-11D2-B4B700A0C955FC6E"
-#define ASF_PADDING_OBJECT_GUID				"1806D474-CADF-4509-A4BA9AABCB96AAE8"
-
-typedef enum {
-    ASF_HEADER_OBJECT = 0,
-    ASF_FILE_PROPERTIES_OBJECT, /*              1 */
-    ASF_STREAM_PROPERTIES_OBJECT,
-    ASF_HEADER_EXTENSION_OBJECT,
-    ASF_CODEC_LIST_OBJECT,
-    ASF_SCRIPT_COMMAND_OBJECT, /*               5 */
-    ASF_MARKER_OBJECT,
-    ASF_BITRATE_MUTUAL_EXCLUSION_OBJECT,
-    ASF_ERROR_CORRECTION_OBJECT,
-    ASF_CONTENT_DESCRIPTION_OBJECT,
-    ASF_EXTENDED_CONTENT_DESCRIPTION_OBJECT, /* 10*/
-    ASF_CONTENT_BRANDING_OBJECT,
-    ASF_STREAM_BITRATE_PROPERTIES_OBJECT,
-    ASF_CONTENT_ENCRYPTION_OBJECT,
-    ASF_EXTENDED_CONTENT_ENCRYPTION_OBJECT,
-    ASF_DIGITAL_SIGNATURE_OBJECT, /*            15 */
-    ASF_PADDING_OBJECT,
-    ASF_OBJECT_LAST /*                          dummy */
-} ObjectType;
-
-#define DESC_ALBUM_STR "WM/AlbumTitle"
-#define DESC_YEAR_STR "WM/Year"
-#define DESC_GENRE_STR "WM/Genre"
-#define DESC_TRACK_STR "WM/TrackNumber"
-
-typedef enum {
-    DESC_ALBUM = 0,
-    DESC_YEAR,
-    DESC_GENRE,
-    DESC_TRACK,
-    DESC_LAST
-} DescrIndexes;
-
-/*
- * this should be fine for all headers whose content is irrelevant,
- * but the size is needed so that we can skip it
- */
-typedef struct _generic_header {
-    GUID_t *guid;
-    guint64 size;
-    gchar *data;
-} GenericHeader;
-
-typedef struct _header_object {
-    GUID_t *guid;
-    guint64 size;
-    guint32 objectsNr;
-    guint8 res1;
-    guint8 res2;
-} HeaderObj;
-
-/*
- * this is special, its size does not include the size of the ext_data
- */
-typedef struct _header_extension_object {
-    GUID_t *guid;
-    guint64 size;
-    guint32 objects_count;
-    guint8 res1;
-    guint8 res2;
-    guint32 ext_data_size;
-    gchar *ext_data;
-} HeaderExtensionObject;
-
-typedef struct _file_properties_header {
-    GUID_t *guid;
-    guint64 size;
-    gchar dontcare1[16];
-    guint64 duration; //expressed as the count of 100ns intervals
-    gchar dontcare2[32];
-} FilePropertiesHeader;
-
-typedef struct _content_description_object {
-    GUID_t *guid;
-    guint64 size;
-    guint16 title_length;
-    guint16 author_length;
-    guint16 copyright_length; /* dontcare*/
-    guint16 desc_length;
-    guint16 rating_length; /* dontcare*/
-    gunichar2 *title;
-    gunichar2 *author;
-    gunichar2 *copyright; /* dontcare*/
-    gunichar2 *description;
-    gunichar2 *rating; /* dontcare*/
-} ContentDescrObj;
-
-/* descr_val_type's meaning
- * Value  Type           length
- * 0x0000 Unicode string varies
- * 0x0001 BYTE array     varies
- * 0x0002 BOOL           32
- * 0x0003 DWORD          32
- * 0x0004 QWORD          64
- * 0x0005 WORD           16
- */
-typedef struct _content_descriptor {
-    guint16 name_len;
-    gunichar2 *name;
-    guint16 val_type;
-    guint16 val_len;
-    gchar * val;
-} ContentDescriptor;
-
-typedef struct _extended_content_description_object {
-    GUID_t *guid;
-    guint64 size;
-    guint16 content_desc_count;
-    ContentDescriptor **descriptors;
-} ExtContentDescrObj;
-
-typedef struct _content_field {
-    guint16 size;
-    gunichar2 *strValue;
-} ContentField;
-
-#endif /* _WMA_FMT_H */
diff --git a/src/libeggsmclient/ChangeLog b/src/libeggsmclient/ChangeLog
deleted file mode 100644
index da16c8d..0000000
--- a/src/libeggsmclient/ChangeLog
+++ /dev/null
@@ -1,167 +0,0 @@
-2008-03-23  Jussi Judin  <jjudin+audacious at iki.fi>
-
-	* eggdesktopfile.c (egg_desktop_file_new_from_key_file): do not 
-	leak the type.
-
-2008-03-15  Dan Winship  <danw at gnome.org>
-
-	* eggsmclient-xsmp.c: Reorganize; we have to call
-	gdk_set_sm_client_id() before the application creates any windows
-	(you're not allowed to change SM_CLIENT_ID while you have windows
-	mapped), which means that to be safe, we have to do it at startup
-	time, not after the main loop starts.
-	(EggSMClientXSMP): add a waiting_to_set_initial_properties flag.
-	(sm_client_xsmp_startup): Move the begining of the old
-	sm_client_xsmp_connect to here. Set
-	waiting_to_set_initial_properties and set up an idle handler to do
-	that.
-	(sm_client_xsmp_set_initial_properties): The rest of the old
-	sm_client_xsmp_connect.
-	(sm_client_xsmp_end_session): XSMP_STATE_START no longer exists,
-	but we have to deal with waiting_to_set_initial_properties now.
-	(xsmp_save_yourself): Likewise, if this arrives before we get a
-	chance to set the initial properties, set them now.
-
-	Based on a patch from Ivan N. Zlatev.
-
-2007-05-02  Dan Winship  <danw at novell.com>
-
-	* egglauncher.c:
-	* eggdesktopfile.c: Replace EggLauncher with EggDesktopFile,
-	which is more like GnomeDesktopItem, but with a nicer launching
-	API.
-
-	* eggsmclient.c (egg_sm_client_register): Gone; apps can use
-	egg_set_desktop_file() to set the global desktop file, and
-	egg_sm_client_set_mode() to indicate they don't want to be
-	restarted.
-	(egg_sm_client_set_mode): New, lets an app indicate that it wants
-	to not connect to the SM, or that it wants to not be restarted.
-	(The common case--wanting to be restarted if the session is
-	resumed--is now automatic.)
-	(egg_sm_client_get): Update docs and code for those changes.
-
-	* eggsmclient-libgnomeui.c: add more stuff to make it possible to
-	set desktop file and EggSMClientMode from gnome_program_new().
-
-	* eggsmclient-win32.c: Remove unused untested "#ifdef VISTA" stuff
-	involving state saving. It works in theory, someone else can
-	implement it later if we actually end up wanting it to work.
-
-	* eggsmclient-xsmp.c (sm_client_xsmp_connect, save_state): Use
-	egg_get_desktop_file() to see if a desktop file has been set for
-	the app, and that and egg_sm_client_get_mode() to see what
-	restart_style to use.
-
-	* egg-launch.c: update for EggDesktopFile
-
-	* README:
-	* gedit.diff: update
-	
-	* NEWS: add this to make it easier for people to see what has
-	changed API-wise when they grab a new source snapshot.
-
-2007-04-02  Dan Winship  <danw at novell.com>
-
-	* eggsmclient.c (egg_sm_client_end_session): Remove the "client"
-	argument; eventually this method will not be visibly attached to
-	the rest of the sm client API.
-	(EggSMClientPrivate, egg_sm_client_get_state_file): oops, fix bugs
-	in previous commit
-
-	* egg-session-end.c (main): update
-
-2007-04-02  Dan Winship  <danw at novell.com>
-
-	* eggsmclient.c (egg_sm_client_save_state): Change this signal to
-	use a GKeyFile rather than a directory name (and return that to
-	the caller).
-	(egg_sm_client_get_state_file): replaces get_state_dir, and
-	returns a GKeyFile
-	(egg_sm_client_get_config_prefix): Kill for now. Maybe will be
-	resurrected X11-only later.
-
-	* eggsmclient-xsmp.c (sm_client_xsmp_connect): move some stuff
-	here from other places; the caller has to call _register() and/or
-	_set_restart_command() before the main loop starts, so they'll
-	always have been run before sm_client_xsmp_connect is reached, so
-	we can do everything from here.
-	(save_state): update to use a GKeyFile for state rather than a
-	directory. Merge the app's state into its .desktop file and update
-	the Exec key in that combined file using %k to point to itself,
-	thus creating a self-contained launcher/saved state.
-
-	* README:
-	* gedit.diff: update
-
-2007-03-16  Dan Winship  <danw at novell.com>
-
-	* egglauncher.c (egg_launcher_add_document): use
-	g_filename_to_uri() and g_filename_from_uri() rather than rolling
-	our own.
-
-	* egglauncher.h: add two missing prototypes
-
-2007-03-04  Dan Winship  <danw at novell.com>
-
-	* eggsmclient-win32.c: Redo this to fix quit_requested handling,
-	by listening for WM_QUERYENDSESSION messages in another thread
-	that can then block waiting for the main thread to handle it. More
-	of #399315.
-	(sm_client_win32_end_session): EWX_FORCE means "don't allow
-	clients to cancel", not "don't show a logout dialog" (which
-	ExitWindowsEx never does), so don't use it to implement the
-	request_confirmation flag.
-
-	* Makefile.am: make this work on both unix and windows
-
-	* README: Update. In particular, note that EggSMClientWin32
-	requires "-mwindows" and g_thread_init().
-
-	* egg-session-end.c (main): call g_thread_init
-
-	* logout-test.c (main): call g_thread_init, fix window-closed
-	handler
-
-	* eggsmclient.c (egg_sm_client_save_state): don't try to compile
-	this on Windows. (Temporary workaround)
-
-2007-02-10  Dan Winship  <danw at novell.com>
-
-	* egglauncher.c: New, replaces EggDesktopFile (as a replacement
-	for GnomeDesktopItem...)
-
-	* eggdesktopfile.c: gone
-
-	* egg-launch.c: test program
-
-	* eggsmclient-xsmp.c (set_restart_properties): use EggLauncher
-
-2007-02-10  Dan Winship  <danw at novell.com>
-
-	* eggsmclient-win32.c: Make this compile and at least partially
-	work (quit_requested doesn't work and probably needs to be
-	rewritten using a second thread as suggested in the comments in
-	will_quit()). Patch from Yevgen Muntyan, #399315.
-
-	* eggsmclient-xsmp.c: Use gdk_threads_enter/_leave around gtk
-	calls and EggSMClient signal emissions. Based on a patch from
-	Yevgen Muntyan.
-
-	* Makefile.am:
-	* eggsmclient.c (egg_sm_client_get): Change the #defines from
-	HAVE_XSMP and HAVE_DBUS to EGG_SM_CLIENT_BACKEND_XSMP and
-	EGG_SM_CLIENT_BACKEND_DBUS, to avoid being tricked by the app
-	having its own HAVE_DBUS define. Needs to be fixed better though.
-	Also change the win32 check from G_OS_WIN32 to
-	GDK_WINDOWING_WIN32, since it assumes the win32 gdk backend.
-
-	* logout-test.c: New test program to test logout
-	notification/cancellation support (and demonstrate that it doesn't
-	really work on Windows).
-
-2007-01-18  Dan Winship  <danw at novell.com>
-
-	* README: add more GnomeClient porting notes based on an email
-	exchange with Jani Monoses
-
diff --git a/src/libeggsmclient/Makefile b/src/libeggsmclient/Makefile
index fbe40e7..bd5999b 100644
--- a/src/libeggsmclient/Makefile
+++ b/src/libeggsmclient/Makefile
@@ -1,21 +1,9 @@
-ifdef PLATFORM_WIN32
-platform_sources = eggsmclient-win32.c
-platform_defines =
-platform_libs =
-else
-platform_sources = eggsmclient-xsmp.c \
-                   eggdesktopfile.c
-platform_defines = -DEGG_SM_CLIENT_BACKEND_XSMP ${SM_CFLAGS}
-platform_libs = ${SM_LIBS}
-endif
-
 STATIC_LIB_NOINST = libeggsmclient.a
 
-SRCS = eggsmclient.c         \
-       ${platform_sources}
+SRCS = eggdesktopfile.c eggsmclient.c eggsmclient-xsmp.c
 
 include ../../buildsys.mk
 include ../../extra.mk
 
-CPPFLAGS += ${INCLUDES} ${GLIB_CFLAGS} ${GTK_CFLAGS} -I../.. -I. -I../audacious/platform ${platform_defines}
-LIBS += ${GLIB_LIBS} ${GTK_LIBS} ${platform_libs}
+CPPFLAGS += ${GLIB_CFLAGS} ${GTK_CFLAGS} ${SM_CFLAGS} -I../.. -DEGG_SM_CLIENT_BACKEND_XSMP
+LIBS += ${GLIB_LIBS} ${GTK_LIBS} ${SM_LIBS}
diff --git a/src/libeggsmclient/NEWS b/src/libeggsmclient/NEWS
deleted file mode 100644
index 2a8a7da..0000000
--- a/src/libeggsmclient/NEWS
+++ /dev/null
@@ -1,22 +0,0 @@
-2007-05-02
-
-	* EggLauncher is now replaced by EggDesktopFile
-
-	* egg_sm_client_register() is now gone, replaced by
-          egg_set_desktop_file() and egg_sm_client_set_mode(). See the
-          beginning of the "Using EggSMClient" section of README for
-          details of how these work.
-
-2007-04-02
-
-	* The state-saving machinery has changed; it's all based on
-          keyfiles now. See the "More notes" section of README for an
-          explanation of why this is cool.
-
-	* egg_sm_client_end_session() no longer takes an EggSMClient;
-          eventually it could be put somewhere entirely
-          non-EggSMClient-related in the public API.
-
-2007-03-04
-
-	* The win32 backend works now.
diff --git a/src/libeggsmclient/README b/src/libeggsmclient/README
deleted file mode 100644
index 0d897e2..0000000
--- a/src/libeggsmclient/README
+++ /dev/null
@@ -1,245 +0,0 @@
-This is a draft of a replacement for GnomeClient. See also
-http://live.gnome.org/SessionManagement and
-http://bugzilla.gnome.org/show_bug.cgi?id=79285.
-
-The eventual target of this code is gtk, gdk, glib, or some
-combination of them. Having it entirely in gtk/gdk may not be the best
-option, because non-GUI apps like beagled want a chance to exit
-cleanly when the session ends too. OTOH, making glib depend on libSM
-would obviously suck. Using dlopen may be a good solution.
-
-EggDesktopItem is proposed gtk-level rewrite of GnomeDesktopItem. See
-http://bugzilla.gnome.org/show_bug.cgi?id=415070
-
-
-Building your app with EggSMClient
-----------------------------------
-
-If you are using libgnomeui:
-
-	Link to libeggsmclient-gnome.la, #include
-	"eggsmclient-libgnomeui.h" in your main .c file (and
-	"eggsmclient.h" elsewhere).
-
-If you are using plain gtk:
-
-	Link to libeggsmclient.la, and #include "eggsmclient.h".
-
-If you are building on Windows:
-
-	You need to make sure to link your application as a Windows
-        GUI binary. (If using GNU tools, use "-mwindows".) If you
-        build it as a console binary, Windows won't send it the
-        WM_QUERYENDSESSION (quit_requested) and WM_ENDSESSION (quit)
-        messages.
-
-	You need to call g_thread_null(NULL) to initialize threads.
-
-
-Using EggSMClient
------------------
-
-Initialization with libgnomeui and GnomeProgram:
-
-	Change the gnome_program_new() invocation to use
-	EGG_SM_CLIENT_LIBGNOMEUI_MODULE instead of LIBGNOMEUI_MODULE.
-	If you haven't yet switched from popt to GOption for option
-	parsing, you have to do that now.
-
-	You should also add an EGG_SM_CLIENT_PARAM_DESKTOP_FILE
-	parameter to the gnome_program_new() invocation, and pass it
-	the path to your application's installed .desktop file. (This
-	will be used for some SM-related purposes and will also be
-	used to initialize your application's localized name and
-	default window icon. If you are currently calling
-	g_set_application_name(), gtk_window_set_default_icon(), or
-	gtk_window_set_default_icon_name(), you can remove those
-	calls.)
-
-	If you only want to use the logout notification/cancellation
-	API, and don't want to participate in session saving, you can
-	pass the EGGSMCLIENT_PARAM_MODE parameter as well, with the
-	value EGG_SM_CLIENT_MODE_NO_RESTART.
-
-Initialization with plain gtk:
-
-	Add the GOptionGroup returned by
-        egg_sm_client_get_option_group() to your GOptionContext when
-        parsing command line arguments. (If you were previously just
-        using gtk_init() or the like, you will have to create your own
-        option context now and also add the group returned by
-        gtk_get_option_group() to it. See egg-session-end.c for an
-        example.)
-
-	You should also call egg_set_desktop_file() (in
-	"eggdesktopfile.h"), passing it the path to your application's
-	installed .desktop file. (This will be used for some
-	SM-related purposes and will also be used to initialize your
-	application's localized name and default window icon. If you
-	are currently calling g_set_application_name(),
-	gtk_window_set_default_icon(), or
-	gtk_window_set_default_icon_name(), you can remove those
-	calls.)
-
-	If you only want to use the logout notification/cancellation
-	API, and don't want to participate in session saving, you can
-	call egg_sm_client_set_mode(EGG_SM_CLIENT_MODE_NO_RESTART).
-
-After parsing the command-line arguments, call
-egg_sm_client_get() to get the EggSMClient object.
-
-Use egg_sm_client_is_resumed() on the EggSMClient to see if you need
-to resume a saved state, and egg_sm_client_get_state_file() to find
-that saved state.
-
-Connect to the client's "save_state" signal if you want to be able to
-save your state and be resumed in future sessions. Connect to
-"quit_requested" if you want to get a chance to save files before
-shutdown (and/or cancel shutting down).
-
-See the gtk-doc comments in eggsmclient.c for more details.
-
-
-Notes on porting from GnomeClient or raw libSM
-----------------------------------------------
-
-There's no way to manually set most of the XSMP properties using
-EggSMClient (and no need to). Program, ProcessID, and UserID are set
-automatically. RestartCommand and CloneCommand are set from the
-.desktop file (or from a call to egg_sm_client_set_restart_command),
-and DiscardCommand is set automatically as needed after save_state is
-emitted.
-
-RestartStyleHint is set automatically based on a few things:
-
-	- SmRestartNever if you set the mode to
-          EGG_SM_CLIENT_MODE_NO_RESTART
-
-	- SmRestartImmediately if you initialize with a desktop file
-	  containing the entry "X-GNOME-AutoRestart=true"
-
-	- SmRestartIfRunning if you initialize with no desktop_file,
-	  or with a desktop_file that doesn't set
-	  "X-GNOME-AutoRestart=true". (This is the normal case.)
-
-There's no way to set the restart style hint to SmRestartAnyway
-("restart the client in the resumed session even if it wasn't running
-in the saved session"). FDO Autostart is a much better solution for
-that class of program. If your program is configured to do autostart,
-you don't need to also register for XSMP restart (unless you want to
-have it save and resume its state as well).
-
-CurrentDirectory and Environment are never set. GnomeClient sets
-CurrentDirectory, but KDE doesn't restore either of those properties
-when resuming a saved session, so it's better for apps to not depend
-on them. (If the application must have its working directory restored,
-it can just save and restore it itself.)
-
-(There probably needs to be a way to set _GSM_Priority, for
-compatibility with the current gnome-session; this will probably be
-done via another .desktop key.)
-
-The "save_yourself" signal/callback is split into two signals in
-EggSMClient: save_state and quit_requested. Most GnomeClient-based
-apps only implement the state-saving functionality currently, so they
-would only connect to "save_state" in EggSMClient, not
-"quit_requested".
-
-When saving state, EggSMClient provides you with a GKeyFile to store
-data in. If you write any data to the key file, EggSMClient will save
-it to disk and set an XSMP DiscardCommand to make sure that the
-session manager deletes it when it is no longer needed. If you can
-record your entire state on the command line, you can use
-egg_sm_client_set_restart_command() instead, to set the command that
-will be used to restart the app.
-
-If you implement the "quit_requested" side of the functionality as
-well, you don't need to "request interaction" like in
-GnomeClient/libSM. You can just start interacting with the user right
-away when the signal is emitted. Note that the argument to
-egg_sm_client_will_quit() is TRUE if you're willing to quit, and FALSE
-if not, which is the opposite of gnome_interaction_key_return() /
-SmcInteractDone().
-
-quit_requested is only for saving user files and preparing to quit. DO
-NOT save the current state from the quit_requested signal. If the user
-chooses the "save current session" option when logging out,
-EggSMClient will emit quit_requested, let you deal with all of that,
-and *then* after you're done, it will emit save_state to give you a
-chance to deal with saving the state as well.
-
-There are a bunch of other bits of GnomeClient API with no analogs:
-
-	- GNOME_CLIENT_IS_CONNECTED - Is this really ever needed?
-
-	- gnome_client_request_phase_2 - This is only needed by window
-          managers... if someone really wanted it, it could be added
-          as an EggSMClientXSMP-specific call. (You'd just call it
-          once, at startup time, to register the fact that you were a
-          phase2 client, and then when EggSMClientXSMP got a
-          SaveYourself, it would automatically respond with a
-          SaveYourselfPhase2Request, and it wouldn't emit the
-          quit_requested/save_state signals until phase 2.)
-
-	- gnome_client_request_save - Shutdown saves are now done via
-	  egg_sm_client_end_session. There is no way to request a
-	  non-shutdown save, either for yourself, or for the whole
-	  session. (Requesting a local SaveYourself for yourself won't
-	  actually have any effect under most session managers, and
-	  requesting it for the whole session is something that only a
-	  program directly associated with the session manager ought
-	  to do, so there doesn't seem to be a need for a public API
-	  for this.)
-
-	- gnome_client_flush - In most cases this is a no-op. Where
-          it's not, EggSMClientXSMP should do it automatically
-          whenever you change anything. (FIXME!)
-
-	- gnome_client_get_id - Why would you need to know?
-
-
-More notes
-----------
-
-Assuming you provide a .desktop file to gnome_program_init() or
-egg_set_desktop_file(), the state file that gets saved when you save
-the application state will actually be a copy of that .desktop file,
-with the state information appended to the end, and the Exec key
-adjusted to include "--sm-client-state-file %k" (where "%k" means "the
-path to this .desktop file"). So if you want to, you can move the
-state file out of ~/.config/session-state/ and use it directly as a
-launcher to restart the application with that saved state.
-
-Set EGG_SM_CLIENT_DEBUG=1 to debug
-
-Example code:
-
-	- egg-session-end.c: A replacement for gnome-session-save.
-	  (Well, actually only for "gnome-session-save --kill".)
-	  Yes, the --reboot and --shutdown arguments are only there to
-	  tease you.
-
-	- logout-test.c: Sits around waiting for you to try to log
-          out, and then asks "are you sure", to test
-          quit_requested/will_quit handling.
-
-	- gedit.diff: A patch to SVN gedit to make it use EggSMClient
-          instead of GnomeClient.
-
-Non-functional backends:
-
-	- OS X: eggsmclient-osx.c is not quite a proof-of-concept.
-          It's more of a handwave-of-concept. I don't have a working
-          OS X machine at the moment, so I can't test/finish this.
-
-	  See http://developer.apple.com/documentation/MacOSX/Conceptual/BPSystemStartup/Articles/BootProcess.html#//apple_ref/doc/uid/20002130-114618
-	  and other URLs linked from it for more info on the OS X
-	  logout process.
-
-	- D-Bus: There are a few references in the code to a
-          non-existent D-Bus session management client. The idea is
-          that once we have a session manager that implements that,
-          EggSMClient will pick between the (sane) D-Bus and (nasty)
-          XSMP backends at runtime depending on what session manager
-          is running. Or in special environments, it could be compiled
-          with just XSMP or just D-Bus.
diff --git a/src/libeggsmclient/eggdesktopfile.c b/src/libeggsmclient/eggdesktopfile.c
index 9b12af5..443d5ec 100644
--- a/src/libeggsmclient/eggdesktopfile.c
+++ b/src/libeggsmclient/eggdesktopfile.c
@@ -185,6 +185,9 @@ egg_desktop_file_new_from_key_file (GKeyFile    *key_file,
 	{
 	  g_set_error (error, EGG_DESKTOP_FILE_ERROR,
 		       EGG_DESKTOP_FILE_ERROR_INVALID,
+		       /* translators: 'Version' is from a desktop file, and
+			* should not be translated. '%s' would probably be a
+			* version number. */
 		       _("Unrecognized desktop file Version '%s'"), version);
 	  g_free (version);
 	  g_key_file_free (key_file);
@@ -201,8 +204,11 @@ egg_desktop_file_new_from_key_file (GKeyFile    *key_file,
   else
     desktop_file->source = g_strdup (source);
 
-  desktop_file->name = g_key_file_get_string (key_file, EGG_DESKTOP_FILE_GROUP,
-					      EGG_DESKTOP_FILE_KEY_NAME, error);
+  desktop_file->name = g_key_file_get_locale_string (key_file,
+						     EGG_DESKTOP_FILE_GROUP,
+						     EGG_DESKTOP_FILE_KEY_NAME,
+						     NULL,
+						     error);
   if (!desktop_file->name)
     {
       egg_desktop_file_free (desktop_file);
@@ -1380,6 +1386,8 @@ egg_desktop_file_launch (EggDesktopFile *desktop_file,
 	{
 	  g_set_error (error, EGG_DESKTOP_FILE_ERROR,
 		       EGG_DESKTOP_FILE_ERROR_NOT_LAUNCHABLE,
+		       /* translators: The 'Type=Link' string is found in a
+			* desktop file, and should not be translated. */
 		       _("Can't pass document URIs to a 'Type=Link' desktop entry"));
 	  return FALSE;
 	}	  
diff --git a/src/libeggsmclient/eggsmclient-win32.c b/src/libeggsmclient/eggsmclient-win32.c
deleted file mode 100644
index 49e63ae..0000000
--- a/src/libeggsmclient/eggsmclient-win32.c
+++ /dev/null
@@ -1,347 +0,0 @@
-/*
- * Copyright (C) 2007 Novell, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/* EggSMClientWin32
- *
- * For details on the Windows XP logout process, see:
- * http://msdn.microsoft.com/en-us/library/aa376876.aspx.
- *
- * Vista adds some new APIs which EggSMClient does not make use of; see
- * http://msdn.microsoft.com/en-us/library/ms700677(VS.85).aspx
- *
- * When shutting down, Windows sends every top-level window a
- * WM_QUERYENDSESSION event, which the application must respond to
- * synchronously, saying whether or not it will quit. To avoid main
- * loop re-entrancy problems (and to avoid having to muck about too
- * much with the guts of the gdk-win32 main loop), we watch for this
- * event in a separate thread, which then signals the main thread and
- * waits for the main thread to handle the event. Since we don't want
- * to require g_thread_init() to be called, we do this all using
- * Windows-specific thread methods.
- *
- * After the application handles the WM_QUERYENDSESSION event,
- * Windows then sends it a WM_ENDSESSION event with a TRUE or FALSE
- * parameter indicating whether the session is or is not actually
- * going to end now. We handle this from the other thread as well.
- *
- * As mentioned above, Vista introduces several additional new APIs
- * that don't fit into the (current) EggSMClient API. Windows also has
- * an entirely separate shutdown-notification scheme for non-GUI apps,
- * which we also don't handle here.
- */
-
-#include "config.h"
-
-#include "eggsmclient-private.h"
-#include <gdk/gdk.h>
-
-#define WIN32_LEAN_AND_MEAN
-#define UNICODE
-#include <windows.h>
-#include <process.h>
-
-#define EGG_TYPE_SM_CLIENT_WIN32            (egg_sm_client_win32_get_type ())
-#define EGG_SM_CLIENT_WIN32(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), EGG_TYPE_SM_CLIENT_WIN32, EggSMClientWin32))
-#define EGG_SM_CLIENT_WIN32_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), EGG_TYPE_SM_CLIENT_WIN32, EggSMClientWin32Class))
-#define EGG_IS_SM_CLIENT_WIN32(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), EGG_TYPE_SM_CLIENT_WIN32))
-#define EGG_IS_SM_CLIENT_WIN32_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EGG_TYPE_SM_CLIENT_WIN32))
-#define EGG_SM_CLIENT_WIN32_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), EGG_TYPE_SM_CLIENT_WIN32, EggSMClientWin32Class))
-
-typedef struct _EggSMClientWin32        EggSMClientWin32;
-typedef struct _EggSMClientWin32Class   EggSMClientWin32Class;
-
-struct _EggSMClientWin32 {
-  EggSMClient parent;
-
-  HANDLE message_event, response_event;
-
-  volatile GSourceFunc event;
-  volatile gboolean will_quit;
-};
-
-struct _EggSMClientWin32Class
-{
-  EggSMClientClass parent_class;
-
-};
-
-static void     sm_client_win32_startup (EggSMClient *client,
-					 const char  *client_id);
-static void     sm_client_win32_will_quit (EggSMClient *client,
-					   gboolean     will_quit);
-static gboolean sm_client_win32_end_session (EggSMClient         *client,
-					     EggSMClientEndStyle  style,
-					     gboolean  request_confirmation);
-
-static GSource *g_win32_handle_source_add (HANDLE handle, GSourceFunc callback,
-					gpointer user_data);
-static gboolean got_message (gpointer user_data);
-static void sm_client_thread (gpointer data);
-
-G_DEFINE_TYPE (EggSMClientWin32, egg_sm_client_win32, EGG_TYPE_SM_CLIENT)
-
-static void
-egg_sm_client_win32_init (EggSMClientWin32 *win32)
-{
-  ;
-}
-
-static void
-egg_sm_client_win32_class_init (EggSMClientWin32Class *klass)
-{
-  EggSMClientClass *sm_client_class = EGG_SM_CLIENT_CLASS (klass);
-
-  sm_client_class->startup             = sm_client_win32_startup;
-  sm_client_class->will_quit           = sm_client_win32_will_quit;
-  sm_client_class->end_session         = sm_client_win32_end_session;
-}
-
-EggSMClient *
-egg_sm_client_win32_new (void)
-{
-  return g_object_new (EGG_TYPE_SM_CLIENT_WIN32, NULL);
-}
-
-static void
-sm_client_win32_startup (EggSMClient *client,
-			 const char  *client_id)
-{
-  EggSMClientWin32 *win32 = (EggSMClientWin32 *)client;
-
-  win32->message_event = CreateEvent (NULL, FALSE, FALSE, NULL);
-  win32->response_event = CreateEvent (NULL, FALSE, FALSE, NULL);
-  g_win32_handle_source_add (win32->message_event, got_message, win32);
-  _beginthread (sm_client_thread, 0, client);
-}
-
-static void
-sm_client_win32_will_quit (EggSMClient *client,
-			   gboolean     will_quit)
-{
-  EggSMClientWin32 *win32 = (EggSMClientWin32 *)client;
-
-  win32->will_quit = will_quit;
-  SetEvent (win32->response_event);
-}
-
-static gboolean
-sm_client_win32_end_session (EggSMClient         *client,
-			     EggSMClientEndStyle  style,
-			     gboolean             request_confirmation)
-{
-  UINT uFlags = EWX_LOGOFF;
-
-  switch (style)
-    {
-    case EGG_SM_CLIENT_END_SESSION_DEFAULT:
-    case EGG_SM_CLIENT_LOGOUT:
-      uFlags = EWX_LOGOFF;
-      break;
-    case EGG_SM_CLIENT_REBOOT:
-      uFlags = EWX_REBOOT;
-      break;
-    case EGG_SM_CLIENT_SHUTDOWN:
-      uFlags = EWX_POWEROFF;
-      break;
-    }
-
-  /* There's no way to make ExitWindowsEx() show a logout dialog, so
-   * we ignore @request_confirmation.
-   */
-
-#ifdef SHTDN_REASON_FLAG_PLANNED
-  ExitWindowsEx (uFlags, SHTDN_REASON_FLAG_PLANNED);
-#else
-  ExitWindowsEx (uFlags, 0);
-#endif
-
-  return TRUE;
-}
-
-
-/* callbacks from logout-listener thread */
-
-static gboolean
-emit_quit_requested (gpointer smclient)
-{
-  egg_sm_client_quit_requested (smclient);
-
-  return FALSE;
-}
-
-static gboolean
-emit_quit (gpointer smclient)
-{
-  EggSMClientWin32 *win32 = smclient;
-
-  egg_sm_client_quit (smclient);
-
-  SetEvent (win32->response_event);
-  return FALSE;
-}
-
-static gboolean
-emit_quit_cancelled (gpointer smclient)
-{
-  EggSMClientWin32 *win32 = smclient;
-
-  egg_sm_client_quit_cancelled (smclient);
-
-  SetEvent (win32->response_event);
-  return FALSE;
-}
-
-static gboolean
-got_message (gpointer smclient)
-{
-  EggSMClientWin32 *win32 = smclient;
-
-  win32->event (win32);
-  return TRUE;
-}
-
-/* Windows HANDLE GSource */
-
-typedef struct {
-  GSource source;
-  GPollFD pollfd;
-} GWin32HandleSource;
-
-static gboolean
-g_win32_handle_source_prepare (GSource *source, gint *timeout)
-{
-  *timeout = -1;
-  return FALSE;
-}
-
-static gboolean
-g_win32_handle_source_check (GSource *source)
-{
-  GWin32HandleSource *hsource = (GWin32HandleSource *)source;
-
-  return hsource->pollfd.revents;
-}
-
-static gboolean
-g_win32_handle_source_dispatch (GSource *source, GSourceFunc callback, gpointer user_data)
-{
-  return (*callback) (user_data);
-}
-
-static void
-g_win32_handle_source_finalize (GSource *source)
-{
-  ;
-}
-
-GSourceFuncs g_win32_handle_source_funcs = {
-  g_win32_handle_source_prepare,
-  g_win32_handle_source_check,
-  g_win32_handle_source_dispatch,
-  g_win32_handle_source_finalize
-};
-
-static GSource *
-g_win32_handle_source_add (HANDLE handle, GSourceFunc callback, gpointer user_data)
-{
-  GWin32HandleSource *hsource;
-  GSource *source;
-
-  source = g_source_new (&g_win32_handle_source_funcs, sizeof (GWin32HandleSource));
-  hsource = (GWin32HandleSource *)source;
-  hsource->pollfd.fd = (int)handle;
-  hsource->pollfd.events = G_IO_IN;
-  hsource->pollfd.revents = 0;
-  g_source_add_poll (source, &hsource->pollfd);
-
-  g_source_set_callback (source, callback, user_data, NULL);
-  g_source_attach (source, NULL);
-  return source;
-}
-
-/* logout-listener thread */
-
-LRESULT CALLBACK
-sm_client_win32_window_procedure (HWND   hwnd,
-				  UINT   message,
-				  WPARAM wParam,
-				  LPARAM lParam)
-{
-  EggSMClientWin32 *win32 =
-    (EggSMClientWin32 *)GetWindowLongPtr (hwnd, GWLP_USERDATA);
-
-  switch (message)
-    {
-    case WM_QUERYENDSESSION:
-      win32->event = emit_quit_requested;
-      SetEvent (win32->message_event);
-
-      WaitForSingleObject (win32->response_event, INFINITE);
-      return win32->will_quit;
-
-    case WM_ENDSESSION:
-      if (wParam)
-	{
-	  /* The session is ending */
-	  win32->event = emit_quit;
-	}
-      else
-	{
-	  /* Nope, the session *isn't* ending */
-	  win32->event = emit_quit_cancelled;
-	}
-
-      SetEvent (win32->message_event);
-      WaitForSingleObject (win32->response_event, INFINITE);
-
-      return 0;
-
-    default:
-      return DefWindowProc (hwnd, message, wParam, lParam);
-    }
-}
-
-static void
-sm_client_thread (gpointer smclient)
-{
-  HINSTANCE instance;
-  WNDCLASSEXW wcl;
-  ATOM klass;
-  HWND window;
-  MSG msg;
-
-  instance = GetModuleHandle (NULL);
-
-  memset (&wcl, 0, sizeof (WNDCLASSEX));
-  wcl.cbSize = sizeof (WNDCLASSEX);
-  wcl.lpfnWndProc = sm_client_win32_window_procedure;
-  wcl.hInstance = instance;
-  wcl.lpszClassName = L"EggSmClientWindow";
-  klass = RegisterClassEx (&wcl);
-
-  window = CreateWindowEx (0, MAKEINTRESOURCE (klass),
-			   L"EggSmClientWindow", 0,
-			   10, 10, 50, 50, GetDesktopWindow (),
-			   NULL, instance, NULL);
-  SetWindowLongPtr (window, GWLP_USERDATA, (LONG_PTR)smclient);
-
-  /* main loop */
-  while (GetMessage (&msg, NULL, 0, 0))
-    DispatchMessage (&msg);
-}
diff --git a/src/libeggsmclient/eggsmclient-xsmp.c b/src/libeggsmclient/eggsmclient-xsmp.c
index 84a8eb8..d5cf3b5 100644
--- a/src/libeggsmclient/eggsmclient-xsmp.c
+++ b/src/libeggsmclient/eggsmclient-xsmp.c
@@ -193,6 +193,11 @@ egg_sm_client_xsmp_class_init (EggSMClientXSMPClass *klass)
 EggSMClient *
 egg_sm_client_xsmp_new (void)
 {
+#if GTK_CHECK_VERSION(3,0,0)
+  if (!GDK_IS_X11_DISPLAY_MANAGER (gdk_display_manager_get ()))
+    return NULL;
+#endif
+
   if (!g_getenv ("SESSION_MANAGER"))
     return NULL;
 
@@ -227,7 +232,7 @@ sm_client_xsmp_set_initial_properties (gpointer user_data)
 
       if (xsmp->restart_style == SmRestartIfRunning)
 	{
-	  if (egg_desktop_file_get_boolean (desktop_file,
+	  if (egg_desktop_file_get_boolean (desktop_file, 
 					    "X-GNOME-AutoRestart", NULL))
 	    xsmp->restart_style = SmRestartImmediately;
 	}
@@ -367,11 +372,13 @@ sm_client_xsmp_startup (EggSMClient *client,
       xsmp->client_id = g_strdup (ret_client_id);
       free (ret_client_id);
 
-#if !GTK_CHECK_VERSION(2,91,7) && !GTK_CHECK_VERSION(3,0,0)
+      gdk_threads_enter ();
+#if !GTK_CHECK_VERSION(2,23,3) && !GTK_CHECK_VERSION(3,0,0)
       gdk_set_sm_client_id (xsmp->client_id);
 #else
       gdk_x11_set_sm_client_id (xsmp->client_id);
 #endif
+      gdk_threads_leave ();
 
       g_debug ("Got client ID \"%s\"", xsmp->client_id);
     }
@@ -539,6 +546,8 @@ idle_do_pending_events (gpointer data)
   EggSMClientXSMP *xsmp = data;
   EggSMClient *client = data;
 
+  gdk_threads_enter ();
+
   xsmp->idle = 0;
 
   if (xsmp->waiting_to_emit_quit)
@@ -562,6 +571,7 @@ idle_do_pending_events (gpointer data)
     }
 
  out:
+  gdk_threads_leave ();
   return FALSE;
 }
 
@@ -1131,7 +1141,7 @@ delete_properties (EggSMClientXSMP *xsmp, ...)
  * until you're done with the SmProp.
  */
 static SmProp *
-array_prop (const char *name, ...)
+array_prop (const char *name, ...) 
 {
   SmProp *prop;
   SmPropValue pv;
@@ -1282,7 +1292,9 @@ process_ice_messages (IceConn ice_conn)
 {
   IceProcessMessagesStatus status;
 
+  gdk_threads_enter ();
   status = IceProcessMessages (ice_conn, NULL, NULL);
+  gdk_threads_leave ();
 
   switch (status)
     {
@@ -1347,13 +1359,13 @@ ice_error_handler (IceConn       ice_conn,
 		   IcePointer    values)
 {
   /* Do nothing */
-}
+} 
 
 static void
 ice_io_error_handler (IceConn ice_conn)
 {
   /* Do nothing */
-}
+} 
 
 static void
 smc_error_handler (SmcConn       smc_conn,

-- 
Small and fast audio player which supports lots of formats



More information about the pkg-multimedia-commits mailing list