[Pkg-gtkpod-devel] r139 - in gtkpod/branches/upstream/current: . po scripts src

Frank Lichtenheld djpig at costa.debian.org
Sat Sep 30 00:00:40 UTC 2006


Author: djpig
Date: 2006-09-30 00:00:17 +0000 (Sat, 30 Sep 2006)
New Revision: 139

Added:
   gtkpod/branches/upstream/current/po/es.gmo
   gtkpod/branches/upstream/current/po/es.po
   gtkpod/branches/upstream/current/scripts/sync-thunderbird-nano.sh
   gtkpod/branches/upstream/current/scripts/sync-tomboy.sh
   gtkpod/branches/upstream/current/src/ipod_init.c
   gtkpod/branches/upstream/current/src/ipod_init.h
   gtkpod/branches/upstream/current/src/repository.c
   gtkpod/branches/upstream/current/src/repository.h
   gtkpod/branches/upstream/current/src/syncdir.c
   gtkpod/branches/upstream/current/src/syncdir.h
Modified:
   gtkpod/branches/upstream/current/ChangeLog
   gtkpod/branches/upstream/current/INSTALL
   gtkpod/branches/upstream/current/Makefile.in
   gtkpod/branches/upstream/current/README
   gtkpod/branches/upstream/current/TODOandBUGS.txt
   gtkpod/branches/upstream/current/TROUBLESHOOTING
   gtkpod/branches/upstream/current/aclocal.m4
   gtkpod/branches/upstream/current/config.guess
   gtkpod/branches/upstream/current/config.sub
   gtkpod/branches/upstream/current/configure
   gtkpod/branches/upstream/current/configure.in
   gtkpod/branches/upstream/current/gtkpod.glade
   gtkpod/branches/upstream/current/po/POTFILES.in
   gtkpod/branches/upstream/current/po/de.gmo
   gtkpod/branches/upstream/current/po/de.po
   gtkpod/branches/upstream/current/po/fr.gmo
   gtkpod/branches/upstream/current/po/fr.po
   gtkpod/branches/upstream/current/po/gtkpod.pot
   gtkpod/branches/upstream/current/po/he.gmo
   gtkpod/branches/upstream/current/po/he.po
   gtkpod/branches/upstream/current/po/it.gmo
   gtkpod/branches/upstream/current/po/it.po
   gtkpod/branches/upstream/current/po/ja.gmo
   gtkpod/branches/upstream/current/po/ja.po
   gtkpod/branches/upstream/current/po/sv.gmo
   gtkpod/branches/upstream/current/po/sv.po
   gtkpod/branches/upstream/current/scripts/Makefile.am
   gtkpod/branches/upstream/current/scripts/Makefile.in
   gtkpod/branches/upstream/current/scripts/sync-evocalendar.sh
   gtkpod/branches/upstream/current/src/Makefile.am
   gtkpod/branches/upstream/current/src/Makefile.in
   gtkpod/branches/upstream/current/src/charset.c
   gtkpod/branches/upstream/current/src/confirmation.c
   gtkpod/branches/upstream/current/src/confirmation.h
   gtkpod/branches/upstream/current/src/context_menus.c
   gtkpod/branches/upstream/current/src/details.c
   gtkpod/branches/upstream/current/src/display.c
   gtkpod/branches/upstream/current/src/display.h
   gtkpod/branches/upstream/current/src/display_itdb.c
   gtkpod/branches/upstream/current/src/display_itdb.h
   gtkpod/branches/upstream/current/src/display_playlists.c
   gtkpod/branches/upstream/current/src/display_songs.c
   gtkpod/branches/upstream/current/src/display_sorttabs.c
   gtkpod/branches/upstream/current/src/display_spl.c
   gtkpod/branches/upstream/current/src/file.c
   gtkpod/branches/upstream/current/src/file.h
   gtkpod/branches/upstream/current/src/file_export.c
   gtkpod/branches/upstream/current/src/file_itunesdb.c
   gtkpod/branches/upstream/current/src/fileselection.c
   gtkpod/branches/upstream/current/src/fileselection.h
   gtkpod/branches/upstream/current/src/info.c
   gtkpod/branches/upstream/current/src/info.h
   gtkpod/branches/upstream/current/src/itdb.h
   gtkpod/branches/upstream/current/src/main.c
   gtkpod/branches/upstream/current/src/md5.c
   gtkpod/branches/upstream/current/src/md5.h
   gtkpod/branches/upstream/current/src/misc.c
   gtkpod/branches/upstream/current/src/misc.h
   gtkpod/branches/upstream/current/src/misc_confirm.c
   gtkpod/branches/upstream/current/src/misc_conversion.c
   gtkpod/branches/upstream/current/src/misc_input.c
   gtkpod/branches/upstream/current/src/misc_playlist.c
   gtkpod/branches/upstream/current/src/misc_track.c
   gtkpod/branches/upstream/current/src/misc_track.h
   gtkpod/branches/upstream/current/src/mp3file.c
   gtkpod/branches/upstream/current/src/mp3file.h
   gtkpod/branches/upstream/current/src/mp4file.c
   gtkpod/branches/upstream/current/src/mp4file.h
   gtkpod/branches/upstream/current/src/podcast.c
   gtkpod/branches/upstream/current/src/podcast.h
   gtkpod/branches/upstream/current/src/prefs.c
   gtkpod/branches/upstream/current/src/prefs.h
   gtkpod/branches/upstream/current/src/prefs_window.c
   gtkpod/branches/upstream/current/src/prefs_window.h
   gtkpod/branches/upstream/current/src/tools.c
   gtkpod/branches/upstream/current/src/tools.h
Log:
Load /tmp/tmp.jaQGxG8308/gtkpod-0.99.8 into
gtkpod/branches/upstream/current.


Modified: gtkpod/branches/upstream/current/ChangeLog
===================================================================
--- gtkpod/branches/upstream/current/ChangeLog	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/ChangeLog	2006-09-30 00:00:17 UTC (rev 139)
@@ -1,3 +1,81 @@
+gtkpod V0.99.8
+
+       NEW FEATURE: Support of several iPods (currently you need to
+       edit the itdb_* entries in ~/.gtkpod/prefs to add
+       repositories). Each iPod can be loaded/ejected
+       individually. Scripts are called before loading (gtkpod.load)
+       and after saving (gtkpod.eject) with the mountpoint as the
+       first argument. If you need to mount the iPod manually, put the
+       mount command in gtkpod.load.
+
+       NEW FEATURE: Support for mobile phones supporting iTunes (see
+       Changelog_detailed for details)
+
+       NEW FEATURE: Lyrics are displayed on the iPod when available.
+
+       NEW FEATURE: Preliminary (no meta data) support of h.264 video
+       format via the libmp4v2 interface. Thanks to Peter Lieverdink.
+
+       NEW FEATURE: Script to sync notes from Tomboy to the
+       iPod. Thanks to Tejas Dinkar.
+
+       NEW FEATURE: Support of iTunes iTunNORM tag for volume
+       normalisation of mp4 tracks.
+
+       NEW FEATURE: Support of aacgain's replay gain tag for volume
+       normalisation of mp4 tracks (takes precedence over the iTunNORM
+       tag, see http://altosdesign.com/aacgain/)
+
+       NEW FEATURE: Support for start time, stop time, skip when
+       shuffling and remember playback position.
+
+       IMPROVEMENT: Support for coverart has been improved. You may
+       have to select your iPod model from a list of available models
+       if your iPod cannot be identified automatically, as is the case
+       for iTunes mobile phones or the new 6th generation iPod Nanos.
+       Coverart embedded in the music file (APIC tag) can now also
+       read. Support to read the coverart from specified files is
+       still available though. Please note that at present APIC
+       support only works when adding tracks directly to the iPod. It
+       does not work when you add tracks to a LOCAL repository first
+       and use Drag and Drop to move the track to your iPod.
+
+       IMPROVEMENT: Podcasts are marked as unplayed (on the iPod, with
+       a bullet in front of the title) when newly added to the podcast
+       list, and unmarked once they have been played once on the iPod.
+
+       IMPROVEMENT: Support to sync thunderbird's address book to an
+       iPod Nano with old firmware that would otherwise only display
+       the first address. This script may be useful to other users as
+       well as it writes out one vcf file per contact instead of just
+       one big file containing all contacts. Thanks to Paul Oremland.
+
+       IMPROVEMENT: Handle multiple calendar and task files in
+       sync-evocalendar script. Thanks to Michele C. Soccio
+
+       NEW: Spanish translation. Thanks to Alejandro Lamas.
+
+       BUGFIX: Pressing 'OK' when syncing directories several times
+       could crash gtkpod. Thanks to dforsi.
+
+       BUGFIX: Exporting tracks did not work if the template
+       extensions (.mp3...) did not match case-sensitively, possibly
+       leading to non-exported tracks. Thanks to Mattias Wadman.
+
+       BUGFIX: When updating tracks, the filename of the music file
+       and the filename of the thumbnail could be messed up. Fixed.
+
+       BUGFIX: The Edit Detail dialog did not handle the 'Year' field
+       correctly.
+
+       BUGFIX: When updating tracks, files were not copied to the iPod
+       even if the file was changed.
+
+       BUGFIX: Removing playlists could crash gtkpod.
+
+       WORKAROUND: Disable sorting of playlist view as this crashed
+       gtkpod.
+
 gtkpod V0.99.4
 
        BUGFIX: Options for exporting playlist files could not be

Modified: gtkpod/branches/upstream/current/INSTALL
===================================================================
--- gtkpod/branches/upstream/current/INSTALL	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/INSTALL	2006-09-30 00:00:17 UTC (rev 139)
@@ -10,8 +10,8 @@
    library -- they are not related. libid3tag is part of the MAD
    project (http://sourceforge.net/projects/mad/).
 
-   Starting with version 0.96 gtkpod is using the gpod library. The
-   gpod library should soon be available as a standard package for
+   Starting with version 0.96 gtkpod is using the gpod
+   library. libgpod should soon be available as a standard package for
    major linux distributions. You can also install the library from
    source. Download instructions for the tarball or CVS snapshot can
    be found at http://www.gtkpod.org/libgpod.html
@@ -27,6 +27,24 @@
 
    ./bootstrap --disable-server ; make ; make install
 
+
+   The following packages are required for building gtkpod:
+
+        autoconf (at least 2.55)
+        flex (or lex)
+	glib (at least 2.4.0)
+        gtk+ (at least 2.4.0)
+        libglade (at least 2.4.0)
+        libgpod (at least 0.4.0)
+        libid3tag (at least 0.15)
+        pkgconfig
+
+   Optional packages:
+
+        gettext (for internationalization)
+        libmpv4 (for AAC/M4A support)
+
+
 2. If you install libraries to /usr/local/lib please don't forget to
    add the path to LD_LIBRARY_PATH and PKG_CONFIG_PATH
 
@@ -42,6 +60,7 @@
    that you will need to install the "-dev" packages as well to be
    able to compile.
 
+
 3. Run the gtkpod 'configure' script to set up the compile
 
    ./configure
@@ -50,10 +69,12 @@
 
    ./configure --help
 
+
 4. Compile the gtkpod software:
 
    make
 
+
 5. Install the gtkpod software (may require root privileges):
 
    make install
@@ -83,19 +104,3 @@
    install gtkpod into $HOME/Applications/gtkpod.  Do this instead:
 
     CFLAGS="-I$HOME/Applications/mpeg4ip/include -L$HOME/Applications/mpeg4ip/lib -I$HOME/Applications/libid3tag/include -L$HOME/Applications/libid3tag/lib" ./configure --prefix=$HOME/Applications/gtkpod ; make ; make install 
-
-
-
-----------------------------------------------------------------------
-Version of libraries used by jcsjcs at users dot sourceforge dot net
-to compile gtkpod-0.80:
-
-	libgtk2 (2.4.3 -- at least 2.0.0)
-	libglib2 (2.4.2 -- at least 2.0.0)
-	libid3tag (0.15.0b -- 0.14 will not work)
-	libmp4v2 (1.0RC1, needed only for aac files)
-	C compiler (gcc 3.3.4)
-	libstdc++5 (3.3.4)
-	gettext (0.14.1)  for internationalization
-
-------------------------------------------------------------

Modified: gtkpod/branches/upstream/current/Makefile.in
===================================================================
--- gtkpod/branches/upstream/current/Makefile.in	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/Makefile.in	2006-09-30 00:00:17 UTC (rev 139)
@@ -63,6 +63,7 @@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GMOFILES = @GMOFILES@
 GMSGFMT = @GMSGFMT@
+GREP = @GREP@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
@@ -106,8 +107,6 @@
 VERSION = @VERSION@
 XGETTEXT = @XGETTEXT@
 ac_ct_CC = @ac_ct_CC@
-ac_ct_STRIP = @ac_ct_STRIP@
-ac_pt_PKG_CONFIG = @ac_pt_PKG_CONFIG@
 am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
 am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
 am__include = @am__include@
@@ -120,6 +119,9 @@
 build_os = @build_os@
 build_vendor = @build_vendor@
 datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
 exec_prefix = @exec_prefix@
 have_pkgconfig = @have_pkgconfig@
 host = @host@
@@ -127,16 +129,20 @@
 host_cpu = @host_cpu@
 host_os = @host_os@
 host_vendor = @host_vendor@
+htmldir = @htmldir@
 includedir = @includedir@
 infodir = @infodir@
 install_sh = @install_sh@
 libdir = @libdir@
 libexecdir = @libexecdir@
+localedir = @localedir@
 localstatedir = @localstatedir@
 mandir = @mandir@
 oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
+psdir = @psdir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 sysconfdir = @sysconfdir@

Modified: gtkpod/branches/upstream/current/README
===================================================================
--- gtkpod/branches/upstream/current/README	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/README	2006-09-30 00:00:17 UTC (rev 139)
@@ -24,6 +24,7 @@
      - Duplicate Detection
      - Preferences File
      - Startup and Shutdown scripts
+     - Load iPod and eject iPod scripts
      - Extended Information File
      - Refresh (Update) Track Info From File
      - Synchronize Directories
@@ -168,20 +169,37 @@
 
 After reading the preferences file gtkpod will try to execute
 ~/.gtkpod/gtkpod.in (or /etc/gtkpod/gtkpod.in if the former doesn't
-exist) during startup. This is done before attempting to mount the
-iPod directory (optional) or read the iTunesDB (optional)).
+exist) during startup.
 
-When leaving the program, gtkpod can unmount the iPod for you
-(option). In this case, gtkpod will also try to send an "eject"
-command to the iPod. For this to work, however, you need write access
-to the device file (e.g. /dev/sda2). After this the following scripts
-will be executed: ~/.gtkpod/gtkpod.out (or /etc/gtkpod/gtkpod.out if
-the former doesn't exist).
+Just before exiting the program, gtkpod will try to execute
+~/.gtkpod/gtkpod.out (or /etc/gtkpod/gtkpod.out if the former doesn't
+exist).
 
 Please see the section "Sick of loading the sbp2 modules by hand?" for
 an example of how to use this functionality.
 
 
+
+Load iPod and eject iPod scripts
+--------------------------------
+
+Before loading the contents of an iPod, gtkpod will call
+~/.gtkpod/gtkpod.load with the iPod's mountpoint as the only
+command line argument. Put any commands here needed to access the
+iPod, for example if you need to mount the iPod manually.
+
+When ejecting an iPod, gtkpod will call ~/.gtkpod/gtkpod.eject
+with the the iPod's mountpoint as the only command line argument. Put
+any commands here you want to execute after gtkpod has written the
+changes to the iPod. One major candidate will probably be 
+
+sudo eject $1
+
+gtkpod will not attempt to do any magic of it's own to
+mount/unmount/eject the iPod.
+
+
+
 Duplicate Detection
 -------------------
 
@@ -663,7 +681,8 @@
 
 4) Write rules for udev (/etc/udev/udev.rules, add at the beginning)
    to recognize your iPod automatically (mind the spaces within
-   "iPod..."):
+   "iPod...", and be aware that some distributions require a double
+   equal after the BUS keyworkd (BUS=="scsi"...)):
 
 BUS="scsi", SYSFS{model}="iPod            ", KERNEL="sd?2", NAME="%k", SYMLINK="ipod"
 

Modified: gtkpod/branches/upstream/current/TODOandBUGS.txt
===================================================================
--- gtkpod/branches/upstream/current/TODOandBUGS.txt	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/TODOandBUGS.txt	2006-09-30 00:00:17 UTC (rev 139)
@@ -1,9 +1,28 @@
 TODO:
 
->         {"S492", 30 * GB, MODEL_TYPE_REGULAR, FOURTH_GENERATION},
-HP-iPod.
+- cddb lookup (http://freedb.freedb.org). See also
+  http://musicbrainz.org/doc/libmusicbrainzDownload
 
+- wildcards for filename templates (automatic setting of tags from
+  filename/cover art).
 
+- Actually, there is an option to see all the dirs that
+are going to be synced but it's impossible to change
+them.It would be nice to have a tree whit all the dirs
+and sub-dirs, like in the amarok colection maker, so we
+can have a full control of the sync dirs.
+
+- set flag3/4 automatically for podcasts.
+
+- support for www.last.fm
+
+  http://www.last.fm is a web site that you report your listening
+  habits to.  The site can then give you recommendations on other
+  music that you may also like. The site also has music charts for
+  users and also for the entire site.  You can tag music and they also
+  have a Radio that you can download and it plays songs for you. -
+  Joshua
+
 - retag tracks with database information
 
 - photo support
@@ -273,6 +292,11 @@
 
 
 -----------------------------------------
+Coverart (JCS):
+Dragging tracks with coverart from Local to iPod may not work. It will
+definitely not work for coverart embedded in the MP3 file.
+
+
 Equalizer: (Julien Oster)
 As you certainly have noticed, the internal iPod equalizer is causing 
 ugly clipping (and thus horrible bass distortion) when using bass 

Modified: gtkpod/branches/upstream/current/TROUBLESHOOTING
===================================================================
--- gtkpod/branches/upstream/current/TROUBLESHOOTING	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/TROUBLESHOOTING	2006-09-30 00:00:17 UTC (rev 139)
@@ -12,6 +12,8 @@
 - Filenames on the iPod appear in DOS 8.3 format and syncing to the iPod
   is not working as expected.
 
+- ./autogen.sh does not work
+
 - The following error message is displayed when accessing the device
   (Markus Gaugusch, Justin Thiessen):
      ieee1394: sbp2: aborting sbp2 command
@@ -36,6 +38,8 @@
 
 - gtkpod crashes when reading the iTunesDB (Fedora)
 
+- Problems connecting the iPod to Solaris/SPARC
+
 ----------------------------------------------------------------------
 
 Installed libmp4v2 or libgpod from source to /usr/local/lib, but
@@ -80,6 +84,15 @@
 details.
 
 ----------------------------------------------------------------------
+./autogen.sh does not work
+
+A ubunto user has reported that he had to set
+
+ACLOCAL_FLAGS=" -I /usr/share/aclocal/"
+
+in order to get ./autogen.sh to work.
+
+----------------------------------------------------------------------
 The following error message is displayed when accessing the device:
 
      ieee1394: sbp2: aborting sbp2 command
@@ -204,3 +217,29 @@
 It appears that crashes were observed with kernel version
 2.6.11-1.35_FC3. An upgrade to 2.6.12-1.1376_FC3 got rid of the
 problem. This was with gtkpod-0.94.0 and Athlon64 3000+. 
+
+
+----------------------------------------------------------------------
+Problems connecting the iPod to Solaris/SPARC
+
+Current (as of 2006/03/30) versions of the Solaris pcfs SPARC driver
+have a bug where the correct filesystem/partition layout may not be
+recognized, and this is true for iPods.  This prevents the iPod
+partition from being mounted on Solaris SPARC.  In order to work
+around this, one must prevent pcfs from detecting the first FAT32
+filesystem, forcing it to move on to the second one.  This can be done
+by changing the filesystem identifier like so:
+
+# dd if=/dev/rdsk/c3t0d0s2 of=/tmp/ipod.orig count=1
+# cp /tmp/ipod.orig /tmp/ipod.modified
+<edit /tmp/ipod.modified and change the first occurance of "FAT32" (at
+offset 0x52 for me) to something else like "CAT32">
+# dd if=/tmp/ipod.modified of=/dev/rdsk/c3t0d0s2 count=1
+
+The above modification may or may not affect usage on other systems. 
+Some reports encounter no problems using the iPod or iTunes after
+making it.  In my own experience, my iPod hard locked moving from a
+SPARC system to an x86 system, and I had to undo the change.  Wrapper
+scripts to handle this may be desirable on SPARC.
+
+Eric Enright
\ No newline at end of file

Modified: gtkpod/branches/upstream/current/aclocal.m4
===================================================================
--- gtkpod/branches/upstream/current/aclocal.m4	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/aclocal.m4	2006-09-30 00:00:17 UTC (rev 139)
@@ -1064,7 +1064,7 @@
 	AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
 fi
 if test -n "$PKG_CONFIG"; then
-	_pkg_min_version=m4_ifval([$1], [$1], [0.9.0])
+	_pkg_min_version=m4_default([$1], [0.9.0])
 	AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version])
 	if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
 		AC_MSG_RESULT([yes])
@@ -1076,29 +1076,61 @@
 fi[]dnl
 ])# PKG_PROG_PKG_CONFIG
 
+# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+#
+# Check to see whether a particular set of modules exists.  Similar
+# to PKG_CHECK_MODULES(), but does not set variables or print errors.
+#
+#
+# Similar to PKG_CHECK_MODULES, make sure that the first instance of
+# this or PKG_CHECK_MODULES is called, or make sure to call
+# PKG_CHECK_EXISTS manually
+# --------------------------------------------------------------
+AC_DEFUN([PKG_CHECK_EXISTS],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+if test -n "$PKG_CONFIG" && \
+    AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
+  m4_ifval([$2], [$2], [:])
+m4_ifvaln([$3], [else
+  $3])dnl
+fi])
+
+
 # _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
 # ---------------------------------------------
 m4_define([_PKG_CONFIG],
-[if test "x$ac_cv_env_[]$1[]_set" = "xset"; then
-	pkg_cv_[]$1=$ac_cv_env_[]$1[]_value
-elif test -n "$PKG_CONFIG"; then
-	if AC_RUN_LOG([$PKG_CONFIG --exists "$3" >/dev/null 2>&1]); then
-		pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`
-	else
-		pkg_failed=yes
-	fi
+[if test -n "$PKG_CONFIG"; then
+    if test -n "$$1"; then
+        pkg_cv_[]$1="$$1"
+    else
+        PKG_CHECK_EXISTS([$3],
+                         [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`],
+			 [pkg_failed=yes])
+    fi
 else
 	pkg_failed=untried
 fi[]dnl
 ])# _PKG_CONFIG
 
+# _PKG_SHORT_ERRORS_SUPPORTED
+# -----------------------------
+AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+        _pkg_short_errors_supported=yes
+else
+        _pkg_short_errors_supported=no
+fi[]dnl
+])# _PKG_SHORT_ERRORS_SUPPORTED
+
+
 # PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
 # [ACTION-IF-NOT-FOUND])
 #
 #
 # Note that if there is a possibility the first call to
 # PKG_CHECK_MODULES might not happen, you should be sure to include an
-# explicit call to PKG_PROG_PKG_CONFIG in your configure.in
+# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
 #
 #
 # --------------------------------------------------------------
@@ -1108,40 +1140,51 @@
 AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
 
 pkg_failed=no
-AC_CACHE_CHECK([for $1][_CFLAGS], [pkg_cv_][$1][_CFLAGS],
-	[_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])])
-AC_CACHE_CHECK([for $1][_LIBS], [pkg_cv_][$1][_LIBS],
-	[_PKG_CONFIG([$1][_LIBS], [libs], [$2])])
+AC_MSG_CHECKING([for $1])
 
+_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
+_PKG_CONFIG([$1][_LIBS], [libs], [$2])
+
+m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS
+and $1[]_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.])
+
 if test $pkg_failed = yes; then
-	$1[]_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
+        _PKG_SHORT_ERRORS_SUPPORTED
+        if test $_pkg_short_errors_supported = yes; then
+	        $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$2"`
+        else 
+	        $1[]_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
+        fi
 	# Put the nasty error message in config.log where it belongs
-	echo "$$1[]_PKG_ERRORS" 1>&AS_MESSAGE_LOG_FD
+	echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
 
 	ifelse([$4], , [AC_MSG_ERROR(dnl
-[Package requirements ($2) were not met.
+[Package requirements ($2) were not met:
+
+$$1_PKG_ERRORS
+
 Consider adjusting the PKG_CONFIG_PATH environment variable if you
 installed software in a non-standard prefix.
 
-Alternatively you may set the $1_CFLAGS and $1_LIBS environment variables
-to avoid the need to call pkg-config.  See the pkg-config man page for
-more details.])],
-		[$4])
+_PKG_TEXT
+])],
+		[AC_MSG_RESULT([no])
+                $4])
 elif test $pkg_failed = untried; then
 	ifelse([$4], , [AC_MSG_FAILURE(dnl
 [The pkg-config script could not be found or is too old.  Make sure it
 is in your PATH or set the PKG_CONFIG environment variable to the full
 path to pkg-config.
 
-Alternatively you may set the $1_CFLAGS and $1_LIBS environment variables
-to avoid the need to call pkg-config.  See the pkg-config man page for
-more details.
+_PKG_TEXT
 
 To get pkg-config, see <http://www.freedesktop.org/software/pkgconfig>.])],
 		[$4])
 else
 	$1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
 	$1[]_LIBS=$pkg_cv_[]$1[]_LIBS
+        AC_MSG_RESULT([yes])
 	ifelse([$3], , :, [$3])
 fi[]dnl
 ])# PKG_CHECK_MODULES

Modified: gtkpod/branches/upstream/current/config.guess
===================================================================
--- gtkpod/branches/upstream/current/config.guess	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/config.guess	2006-09-30 00:00:17 UTC (rev 139)
@@ -1,9 +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 Free Software Foundation, Inc.
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
+#   Inc.
 
-timestamp='2005-04-22'
+timestamp='2006-07-02'
 
 # 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
@@ -17,13 +18,15 @@
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+# 02110-1301, USA.
 #
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
 # configuration script generated by Autoconf, you may include it under
 # 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.
@@ -66,11 +69,11 @@
 while test $# -gt 0 ; do
   case $1 in
     --time-stamp | --time* | -t )
-       echo "$timestamp" ; exit 0 ;;
+       echo "$timestamp" ; exit ;;
     --version | -v )
-       echo "$version" ; exit 0 ;;
+       echo "$version" ; exit ;;
     --help | --h* | -h )
-       echo "$usage"; exit 0 ;;
+       echo "$usage"; exit ;;
     -- )     # Stop option processing
        shift; break ;;
     - )	# Use stdin as input.
@@ -104,7 +107,7 @@
 trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
 trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
 : ${TMPDIR=/tmp} ;
- { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
  { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
  { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
  { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
@@ -123,7 +126,7 @@
 	;;
  ,,*)   CC_FOR_BUILD=$CC ;;
  ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
-esac ;'
+esac ; set_cc_for_build= ;'
 
 # This is needed to find uname on a Pyramid OSx when run in the BSD universe.
 # (ghazi at noc.rutgers.edu 1994-08-24)
@@ -196,55 +199,23 @@
 	# contains redundant information, the shorter form:
 	# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
 	echo "${machine}-${os}${release}"
-	exit 0 ;;
-    amd64:OpenBSD:*:*)
-	echo x86_64-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    amiga:OpenBSD:*:*)
-	echo m68k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    cats:OpenBSD:*:*)
-	echo arm-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    hp300:OpenBSD:*:*)
-	echo m68k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    luna88k:OpenBSD:*:*)
-    	echo m88k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    mac68k:OpenBSD:*:*)
-	echo m68k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    macppc:OpenBSD:*:*)
-	echo powerpc-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    mvme68k:OpenBSD:*:*)
-	echo m68k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    mvme88k:OpenBSD:*:*)
-	echo m88k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    mvmeppc:OpenBSD:*:*)
-	echo powerpc-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    sgi:OpenBSD:*:*)
-	echo mips64-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
-    sun3:OpenBSD:*:*)
-	echo m68k-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     *:OpenBSD:*:*)
-	echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
-	exit 0 ;;
+	UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
+	echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
+	exit ;;
     *:ekkoBSD:*:*)
 	echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
+    *:SolidBSD:*:*)
+	echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
+	exit ;;
     macppc:MirBSD:*:*)
-	echo powerppc-unknown-mirbsd${UNAME_RELEASE}
-	exit 0 ;;
+	echo powerpc-unknown-mirbsd${UNAME_RELEASE}
+	exit ;;
     *:MirBSD:*:*)
 	echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     alpha:OSF1:*:*)
 	case $UNAME_RELEASE in
 	*4.0)
@@ -297,40 +268,43 @@
 	# A Xn.n version is an unreleased experimental baselevel.
 	# 1.2 uses "1.2" for uname -r.
 	echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
-	exit 0 ;;
+	exit ;;
     Alpha\ *:Windows_NT*:*)
 	# How do we know it's Interix rather than the generic POSIX subsystem?
 	# Should we change UNAME_MACHINE based on the output of uname instead
 	# of the specific Alpha model?
 	echo alpha-pc-interix
-	exit 0 ;;
+	exit ;;
     21064:Windows_NT:50:3)
 	echo alpha-dec-winnt3.5
-	exit 0 ;;
+	exit ;;
     Amiga*:UNIX_System_V:4.0:*)
 	echo m68k-unknown-sysv4
-	exit 0;;
+	exit ;;
     *:[Aa]miga[Oo][Ss]:*:*)
 	echo ${UNAME_MACHINE}-unknown-amigaos
-	exit 0 ;;
+	exit ;;
     *:[Mm]orph[Oo][Ss]:*:*)
 	echo ${UNAME_MACHINE}-unknown-morphos
-	exit 0 ;;
+	exit ;;
     *:OS/390:*:*)
 	echo i370-ibm-openedition
-	exit 0 ;;
+	exit ;;
     *:z/VM:*:*)
 	echo s390-ibm-zvmoe
-	exit 0 ;;
+	exit ;;
     *:OS400:*:*)
         echo powerpc-ibm-os400
-	exit 0 ;;
+	exit ;;
     arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
 	echo arm-acorn-riscix${UNAME_RELEASE}
-	exit 0;;
+	exit ;;
+    arm:riscos:*:*|arm:RISCOS:*:*)
+	echo arm-unknown-riscos
+	exit ;;
     SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
 	echo hppa1.1-hitachi-hiuxmpp
-	exit 0;;
+	exit ;;
     Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
 	# akee at wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
 	if test "`(/bin/universe) 2>/dev/null`" = att ; then
@@ -338,32 +312,32 @@
 	else
 		echo pyramid-pyramid-bsd
 	fi
-	exit 0 ;;
+	exit ;;
     NILE*:*:*:dcosx)
 	echo pyramid-pyramid-svr4
-	exit 0 ;;
+	exit ;;
     DRS?6000:unix:4.0:6*)
 	echo sparc-icl-nx6
-	exit 0 ;;
+	exit ;;
     DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
 	case `/usr/bin/uname -p` in
-	    sparc) echo sparc-icl-nx7 && exit 0 ;;
+	    sparc) echo sparc-icl-nx7; exit ;;
 	esac ;;
     sun4H:SunOS:5.*:*)
 	echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit 0 ;;
+	exit ;;
     sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
 	echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit 0 ;;
+	exit ;;
     i86pc:SunOS:5.*:*)
 	echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit 0 ;;
+	exit ;;
     sun4*:SunOS:6*:*)
 	# According to config.sub, this is the proper way to canonicalize
 	# SunOS6.  Hard to guess exactly what SunOS6 will be like, but
 	# it's likely to be more like Solaris than SunOS4.
 	echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit 0 ;;
+	exit ;;
     sun4*:SunOS:*:*)
 	case "`/usr/bin/arch -k`" in
 	    Series*|S4*)
@@ -372,10 +346,10 @@
 	esac
 	# Japanese Language versions have a version number like `4.1.3-JL'.
 	echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
-	exit 0 ;;
+	exit ;;
     sun3*:SunOS:*:*)
 	echo m68k-sun-sunos${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     sun*:*:4.2BSD:*)
 	UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
 	test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
@@ -387,10 +361,10 @@
 		echo sparc-sun-sunos${UNAME_RELEASE}
 		;;
 	esac
-	exit 0 ;;
+	exit ;;
     aushp:SunOS:*:*)
 	echo sparc-auspex-sunos${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     # The situation for MiNT is a little confusing.  The machine name
     # can be virtually everything (everything which is not
     # "atarist" or "atariste" at least should have a processor
@@ -401,40 +375,40 @@
     # be no problem.
     atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
         echo m68k-atari-mint${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
 	echo m68k-atari-mint${UNAME_RELEASE}
-        exit 0 ;;
+        exit ;;
     *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
         echo m68k-atari-mint${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
         echo m68k-milan-mint${UNAME_RELEASE}
-        exit 0 ;;
+        exit ;;
     hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
         echo m68k-hades-mint${UNAME_RELEASE}
-        exit 0 ;;
+        exit ;;
     *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
         echo m68k-unknown-mint${UNAME_RELEASE}
-        exit 0 ;;
+        exit ;;
     m68k:machten:*:*)
 	echo m68k-apple-machten${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     powerpc:machten:*:*)
 	echo powerpc-apple-machten${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     RISC*:Mach:*:*)
 	echo mips-dec-mach_bsd4.3
-	exit 0 ;;
+	exit ;;
     RISC*:ULTRIX:*:*)
 	echo mips-dec-ultrix${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     VAX*:ULTRIX*:*:*)
 	echo vax-dec-ultrix${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     2020:CLIX:*:* | 2430:CLIX:*:*)
 	echo clipper-intergraph-clix${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     mips:*:*:UMIPS | mips:*:*:RISCos)
 	eval $set_cc_for_build
 	sed 's/^	//' << EOF >$dummy.c
@@ -458,32 +432,33 @@
 	  exit (-1);
 	}
 EOF
-	$CC_FOR_BUILD -o $dummy $dummy.c \
-	  && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
-	  && exit 0
+	$CC_FOR_BUILD -o $dummy $dummy.c &&
+	  dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
+	  SYSTEM_NAME=`$dummy $dummyarg` &&
+	    { echo "$SYSTEM_NAME"; exit; }
 	echo mips-mips-riscos${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     Motorola:PowerMAX_OS:*:*)
 	echo powerpc-motorola-powermax
-	exit 0 ;;
+	exit ;;
     Motorola:*:4.3:PL8-*)
 	echo powerpc-harris-powermax
-	exit 0 ;;
+	exit ;;
     Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
 	echo powerpc-harris-powermax
-	exit 0 ;;
+	exit ;;
     Night_Hawk:Power_UNIX:*:*)
 	echo powerpc-harris-powerunix
-	exit 0 ;;
+	exit ;;
     m88k:CX/UX:7*:*)
 	echo m88k-harris-cxux7
-	exit 0 ;;
+	exit ;;
     m88k:*:4*:R4*)
 	echo m88k-motorola-sysv4
-	exit 0 ;;
+	exit ;;
     m88k:*:3*:R3*)
 	echo m88k-motorola-sysv3
-	exit 0 ;;
+	exit ;;
     AViiON:dgux:*:*)
         # DG/UX returns AViiON for all architectures
         UNAME_PROCESSOR=`/usr/bin/uname -p`
@@ -499,29 +474,29 @@
 	else
 	    echo i586-dg-dgux${UNAME_RELEASE}
 	fi
- 	exit 0 ;;
+ 	exit ;;
     M88*:DolphinOS:*:*)	# DolphinOS (SVR3)
 	echo m88k-dolphin-sysv3
-	exit 0 ;;
+	exit ;;
     M88*:*:R3*:*)
 	# Delta 88k system running SVR3
 	echo m88k-motorola-sysv3
-	exit 0 ;;
+	exit ;;
     XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
 	echo m88k-tektronix-sysv3
-	exit 0 ;;
+	exit ;;
     Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
 	echo m68k-tektronix-bsd
-	exit 0 ;;
+	exit ;;
     *:IRIX*:*:*)
 	echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
-	exit 0 ;;
+	exit ;;
     ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
-	echo romp-ibm-aix      # uname -m gives an 8 hex-code CPU id
-	exit 0 ;;              # Note that: echo "'`uname -s`'" gives 'AIX '
+	echo romp-ibm-aix     # uname -m gives an 8 hex-code CPU id
+	exit ;;               # Note that: echo "'`uname -s`'" gives 'AIX '
     i*86:AIX:*:*)
 	echo i386-ibm-aix
-	exit 0 ;;
+	exit ;;
     ia64:AIX:*:*)
 	if [ -x /usr/bin/oslevel ] ; then
 		IBM_REV=`/usr/bin/oslevel`
@@ -529,7 +504,7 @@
 		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
 	fi
 	echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
-	exit 0 ;;
+	exit ;;
     *:AIX:2:3)
 	if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
 		eval $set_cc_for_build
@@ -544,14 +519,18 @@
 			exit(0);
 			}
 EOF
-		$CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
-		echo rs6000-ibm-aix3.2.5
+		if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
+		then
+			echo "$SYSTEM_NAME"
+		else
+			echo rs6000-ibm-aix3.2.5
+		fi
 	elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
 		echo rs6000-ibm-aix3.2.4
 	else
 		echo rs6000-ibm-aix3.2
 	fi
-	exit 0 ;;
+	exit ;;
     *:AIX:*:[45])
 	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
@@ -565,28 +544,28 @@
 		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
 	fi
 	echo ${IBM_ARCH}-ibm-aix${IBM_REV}
-	exit 0 ;;
+	exit ;;
     *:AIX:*:*)
 	echo rs6000-ibm-aix
-	exit 0 ;;
+	exit ;;
     ibmrt:4.4BSD:*|romp-ibm:BSD:*)
 	echo romp-ibm-bsd4.4
-	exit 0 ;;
+	exit ;;
     ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
 	echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
-	exit 0 ;;                           # report: romp-ibm BSD 4.3
+	exit ;;                             # report: romp-ibm BSD 4.3
     *:BOSX:*:*)
 	echo rs6000-bull-bosx
-	exit 0 ;;
+	exit ;;
     DPX/2?00:B.O.S.:*:*)
 	echo m68k-bull-sysv3
-	exit 0 ;;
+	exit ;;
     9000/[34]??:4.3bsd:1.*:*)
 	echo m68k-hp-bsd
-	exit 0 ;;
+	exit ;;
     hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
 	echo m68k-hp-bsd4.4
-	exit 0 ;;
+	exit ;;
     9000/[34678]??:HP-UX:*:*)
 	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
 	case "${UNAME_MACHINE}" in
@@ -648,9 +627,19 @@
 	esac
 	if [ ${HP_ARCH} = "hppa2.0w" ]
 	then
-	    # avoid double evaluation of $set_cc_for_build
-	    test -n "$CC_FOR_BUILD" || eval $set_cc_for_build
-	    if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null
+	    eval $set_cc_for_build
+
+	    # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
+	    # 32-bit code.  hppa64-hp-hpux* has the same kernel and a compiler
+	    # generating 64-bit code.  GNU and HP use different nomenclature:
+	    #
+	    # $ CC_FOR_BUILD=cc ./config.guess
+	    # => hppa2.0w-hp-hpux11.23
+	    # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
+	    # => hppa64-hp-hpux11.23
+
+	    if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
+		grep __LP64__ >/dev/null
 	    then
 		HP_ARCH="hppa2.0w"
 	    else
@@ -658,11 +647,11 @@
 	    fi
 	fi
 	echo ${HP_ARCH}-hp-hpux${HPUX_REV}
-	exit 0 ;;
+	exit ;;
     ia64:HP-UX:*:*)
 	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
 	echo ia64-hp-hpux${HPUX_REV}
-	exit 0 ;;
+	exit ;;
     3050*:HI-UX:*:*)
 	eval $set_cc_for_build
 	sed 's/^	//' << EOF >$dummy.c
@@ -690,161 +679,179 @@
 	  exit (0);
 	}
 EOF
-	$CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
+	$CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
+		{ echo "$SYSTEM_NAME"; exit; }
 	echo unknown-hitachi-hiuxwe2
-	exit 0 ;;
+	exit ;;
     9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
 	echo hppa1.1-hp-bsd
-	exit 0 ;;
+	exit ;;
     9000/8??:4.3bsd:*:*)
 	echo hppa1.0-hp-bsd
-	exit 0 ;;
+	exit ;;
     *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
 	echo hppa1.0-hp-mpeix
-	exit 0 ;;
+	exit ;;
     hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
 	echo hppa1.1-hp-osf
-	exit 0 ;;
+	exit ;;
     hp8??:OSF1:*:*)
 	echo hppa1.0-hp-osf
-	exit 0 ;;
+	exit ;;
     i*86:OSF1:*:*)
 	if [ -x /usr/sbin/sysversion ] ; then
 	    echo ${UNAME_MACHINE}-unknown-osf1mk
 	else
 	    echo ${UNAME_MACHINE}-unknown-osf1
 	fi
-	exit 0 ;;
+	exit ;;
     parisc*:Lites*:*:*)
 	echo hppa1.1-hp-lites
-	exit 0 ;;
+	exit ;;
     C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
 	echo c1-convex-bsd
-        exit 0 ;;
+        exit ;;
     C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
 	if getsysinfo -f scalar_acc
 	then echo c32-convex-bsd
 	else echo c2-convex-bsd
 	fi
-        exit 0 ;;
+        exit ;;
     C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
 	echo c34-convex-bsd
-        exit 0 ;;
+        exit ;;
     C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
 	echo c38-convex-bsd
-        exit 0 ;;
+        exit ;;
     C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
 	echo c4-convex-bsd
-        exit 0 ;;
+        exit ;;
     CRAY*Y-MP:*:*:*)
 	echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-	exit 0 ;;
+	exit ;;
     CRAY*[A-Z]90:*:*:*)
 	echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
 	| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
 	      -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
 	      -e 's/\.[^.]*$/.X/'
-	exit 0 ;;
+	exit ;;
     CRAY*TS:*:*:*)
 	echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-	exit 0 ;;
+	exit ;;
     CRAY*T3E:*:*:*)
 	echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-	exit 0 ;;
+	exit ;;
     CRAY*SV1:*:*:*)
 	echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-	exit 0 ;;
+	exit ;;
     *:UNICOS/mp:*:*)
 	echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-	exit 0 ;;
+	exit ;;
     F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
 	FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
         FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
         FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
         echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
-        exit 0 ;;
+        exit ;;
     5000:UNIX_System_V:4.*:*)
         FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
         FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
         echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
-	exit 0 ;;
+	exit ;;
     i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
 	echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     sparc*:BSD/OS:*:*)
 	echo sparc-unknown-bsdi${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     *:BSD/OS:*:*)
 	echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     *:FreeBSD:*:*)
-	echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
-	exit 0 ;;
+	case ${UNAME_MACHINE} in
+	    pc98)
+		echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+	    amd64)
+		echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+	    *)
+		echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
+	esac
+	exit ;;
     i*:CYGWIN*:*)
 	echo ${UNAME_MACHINE}-pc-cygwin
-	exit 0 ;;
+	exit ;;
     i*:MINGW*:*)
 	echo ${UNAME_MACHINE}-pc-mingw32
-	exit 0 ;;
+	exit ;;
+    i*:windows32*:*)
+    	# uname -m includes "-pc" on this system.
+    	echo ${UNAME_MACHINE}-mingw32
+	exit ;;
     i*:PW*:*)
 	echo ${UNAME_MACHINE}-pc-pw32
-	exit 0 ;;
-    x86:Interix*:[34]*)
-	echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//'
-	exit 0 ;;
+	exit ;;
+    x86:Interix*:[3456]*)
+	echo i586-pc-interix${UNAME_RELEASE}
+	exit ;;
+    EM64T:Interix*:[3456]*)
+	echo x86_64-unknown-interix${UNAME_RELEASE}
+	exit ;;
     [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
 	echo i${UNAME_MACHINE}-pc-mks
-	exit 0 ;;
+	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
 	# UNAME_MACHINE based on the output of uname instead of i386?
 	echo i586-pc-interix
-	exit 0 ;;
+	exit ;;
     i*:UWIN*:*)
 	echo ${UNAME_MACHINE}-pc-uwin
-	exit 0 ;;
-    amd64:CYGWIN*:*:*)
+	exit ;;
+    amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
 	echo x86_64-unknown-cygwin
-	exit 0 ;;
+	exit ;;
     p*:CYGWIN*:*)
 	echo powerpcle-unknown-cygwin
-	exit 0 ;;
+	exit ;;
     prep*:SunOS:5.*:*)
 	echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit 0 ;;
+	exit ;;
     *:GNU:*:*)
 	# the GNU system
 	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
-	exit 0 ;;
+	exit ;;
     *:GNU/*:*:*)
 	# other systems with GNU libc and userland
 	echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
-	exit 0 ;;
+	exit ;;
     i*86:Minix:*:*)
 	echo ${UNAME_MACHINE}-pc-minix
-	exit 0 ;;
+	exit ;;
     arm*:Linux:*:*)
 	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit 0 ;;
+	exit ;;
+    avr32*:Linux:*:*)
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
     cris:Linux:*:*)
 	echo cris-axis-linux-gnu
-	exit 0 ;;
+	exit ;;
     crisv32:Linux:*:*)
 	echo crisv32-axis-linux-gnu
-	exit 0 ;;
+	exit ;;
     frv:Linux:*:*)
     	echo frv-unknown-linux-gnu
-	exit 0 ;;
+	exit ;;
     ia64:Linux:*:*)
 	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit 0 ;;
+	exit ;;
     m32r*:Linux:*:*)
 	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit 0 ;;
+	exit ;;
     m68*:Linux:*:*)
 	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit 0 ;;
+	exit ;;
     mips:Linux:*:*)
 	eval $set_cc_for_build
 	sed 's/^	//' << EOF >$dummy.c
@@ -861,8 +868,12 @@
 	#endif
 	#endif
 EOF
-	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
-	test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
+	eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
+	    /^CPU/{
+		s: ::g
+		p
+	    }'`"
+	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
 	;;
     mips64:Linux:*:*)
 	eval $set_cc_for_build
@@ -880,15 +891,22 @@
 	#endif
 	#endif
 EOF
-	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
-	test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
+	eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
+	    /^CPU/{
+		s: ::g
+		p
+	    }'`"
+	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
 	;;
+    or32:Linux:*:*)
+	echo or32-unknown-linux-gnu
+	exit ;;
     ppc:Linux:*:*)
 	echo powerpc-unknown-linux-gnu
-	exit 0 ;;
+	exit ;;
     ppc64:Linux:*:*)
 	echo powerpc64-unknown-linux-gnu
-	exit 0 ;;
+	exit ;;
     alpha:Linux:*:*)
 	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
 	  EV5)   UNAME_MACHINE=alphaev5 ;;
@@ -902,7 +920,7 @@
 	objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
 	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
 	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
-	exit 0 ;;
+	exit ;;
     parisc:Linux:*:* | hppa:Linux:*:*)
 	# Look for CPU level
 	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
@@ -910,25 +928,28 @@
 	  PA8*) echo hppa2.0-unknown-linux-gnu ;;
 	  *)    echo hppa-unknown-linux-gnu ;;
 	esac
-	exit 0 ;;
+	exit ;;
     parisc64:Linux:*:* | hppa64:Linux:*:*)
 	echo hppa64-unknown-linux-gnu
-	exit 0 ;;
+	exit ;;
     s390:Linux:*:* | s390x:Linux:*:*)
 	echo ${UNAME_MACHINE}-ibm-linux
-	exit 0 ;;
+	exit ;;
     sh64*:Linux:*:*)
     	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit 0 ;;
+	exit ;;
     sh*:Linux:*:*)
 	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit 0 ;;
+	exit ;;
     sparc:Linux:*:* | sparc64:Linux:*:*)
 	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit 0 ;;
+	exit ;;
+    vax:Linux:*:*)
+	echo ${UNAME_MACHINE}-dec-linux-gnu
+	exit ;;
     x86_64:Linux:*:*)
 	echo x86_64-unknown-linux-gnu
-	exit 0 ;;
+	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
@@ -946,15 +967,15 @@
 		;;
 	  a.out-i386-linux)
 		echo "${UNAME_MACHINE}-pc-linux-gnuaout"
-		exit 0 ;;
+		exit ;;
 	  coff-i386)
 		echo "${UNAME_MACHINE}-pc-linux-gnucoff"
-		exit 0 ;;
+		exit ;;
 	  "")
 		# Either a pre-BFD a.out linker (linux-gnuoldld) or
 		# one that does not give us useful --help.
 		echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
-		exit 0 ;;
+		exit ;;
 	esac
 	# Determine whether the default compiler is a.out or elf
 	eval $set_cc_for_build
@@ -971,7 +992,7 @@
 	LIBC=gnulibc1
 	# endif
 	#else
-	#ifdef __INTEL_COMPILER
+	#if defined(__INTEL_COMPILER) || defined(__PGI) || defined(__SUNPRO_C) || defined(__SUNPRO_CC)
 	LIBC=gnu
 	#else
 	LIBC=gnuaout
@@ -981,16 +1002,23 @@
 	LIBC=dietlibc
 	#endif
 EOF
-	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
-	test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
-	test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
+	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
 	# sysname and nodename.
 	echo i386-sequent-sysv4
-	exit 0 ;;
+	exit ;;
     i*86:UNIX_SV:4.2MP:2.*)
         # Unixware is an offshoot of SVR4, but it has its own version
         # number series starting with 2...
@@ -998,27 +1026,27 @@
 	# I just have to hope.  -- rms.
         # Use sysv4.2uw... so that sysv4* matches it.
 	echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
-	exit 0 ;;
+	exit ;;
     i*86:OS/2:*:*)
 	# If we were able to find `uname', then EMX Unix compatibility
 	# is probably installed.
 	echo ${UNAME_MACHINE}-pc-os2-emx
-	exit 0 ;;
+	exit ;;
     i*86:XTS-300:*:STOP)
 	echo ${UNAME_MACHINE}-unknown-stop
-	exit 0 ;;
+	exit ;;
     i*86:atheos:*:*)
 	echo ${UNAME_MACHINE}-unknown-atheos
-	exit 0 ;;
-	i*86:syllable:*:*)
+	exit ;;
+    i*86:syllable:*:*)
 	echo ${UNAME_MACHINE}-pc-syllable
-	exit 0 ;;
+	exit ;;
     i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
 	echo i386-unknown-lynxos${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     i*86:*DOS:*:*)
 	echo ${UNAME_MACHINE}-pc-msdosdjgpp
-	exit 0 ;;
+	exit ;;
     i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
 	UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
 	if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
@@ -1026,15 +1054,16 @@
 	else
 		echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
 	fi
-	exit 0 ;;
-    i*86:*:5:[78]*)
+	exit ;;
+    i*86:*:5:[678]*)
+    	# UnixWare 7.x, OpenUNIX and OpenServer 6.
 	case `/bin/uname -X | grep "^Machine"` in
 	    *486*)	     UNAME_MACHINE=i486 ;;
 	    *Pentium)	     UNAME_MACHINE=i586 ;;
 	    *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
 	esac
 	echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
-	exit 0 ;;
+	exit ;;
     i*86:*:3.2:*)
 	if test -f /usr/options/cb.name; then
 		UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
@@ -1052,73 +1081,73 @@
 	else
 		echo ${UNAME_MACHINE}-pc-sysv32
 	fi
-	exit 0 ;;
+	exit ;;
     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
-        exit 0 ;;
+        exit ;;
     Intel:Mach:3*:*)
 	echo i386-pc-mach3
-	exit 0 ;;
+	exit ;;
     paragon:*:*:*)
 	echo i860-intel-osf1
-	exit 0 ;;
+	exit ;;
     i860:*:4.*:*) # i860-SVR4
 	if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
 	  echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
 	else # Add other i860-SVR4 vendors below as they are discovered.
 	  echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
 	fi
-	exit 0 ;;
+	exit ;;
     mini*:CTIX:SYS*5:*)
 	# "miniframe"
 	echo m68010-convergent-sysv
-	exit 0 ;;
+	exit ;;
     mc68k:UNIX:SYSTEM5:3.51m)
 	echo m68k-convergent-sysv
-	exit 0 ;;
+	exit ;;
     M680?0:D-NIX:5.3:*)
 	echo m68k-diab-dnix
-	exit 0 ;;
+	exit ;;
     M68*:*:R3V[5678]*:*)
-	test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
+	test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
     3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
 	OS_REL=''
 	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 0
+	  && { 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 0 ;;
+	  && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
     3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
         /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-          && echo i486-ncr-sysv4 && exit 0 ;;
+          && { echo i486-ncr-sysv4; exit; } ;;
     m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
 	echo m68k-unknown-lynxos${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     mc68030:UNIX_System_V:4.*:*)
 	echo m68k-atari-sysv4
-	exit 0 ;;
+	exit ;;
     TSUNAMI:LynxOS:2.*:*)
 	echo sparc-unknown-lynxos${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     rs6000:LynxOS:2.*:*)
 	echo rs6000-unknown-lynxos${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
 	echo powerpc-unknown-lynxos${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     SM[BE]S:UNIX_SV:*:*)
 	echo mips-dde-sysv${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     RM*:ReliantUNIX-*:*:*)
 	echo mips-sni-sysv4
-	exit 0 ;;
+	exit ;;
     RM*:SINIX-*:*:*)
 	echo mips-sni-sysv4
-	exit 0 ;;
+	exit ;;
     *:SINIX-*:*:*)
 	if uname -p 2>/dev/null >/dev/null ; then
 		UNAME_MACHINE=`(uname -p) 2>/dev/null`
@@ -1126,73 +1155,72 @@
 	else
 		echo ns32k-sni-sysv
 	fi
-	exit 0 ;;
+	exit ;;
     PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
                       # says <Richard.M.Bartel at ccMail.Census.GOV>
         echo i586-unisys-sysv4
-        exit 0 ;;
+        exit ;;
     *:UNIX_System_V:4*:FTX*)
 	# From Gerald Hewes <hewes at openmarket.com>.
 	# How about differentiating between stratus architectures? -djm
 	echo hppa1.1-stratus-sysv4
-	exit 0 ;;
+	exit ;;
     *:*:*:FTX*)
 	# From seanf at swdc.stratus.com.
 	echo i860-stratus-sysv4
-	exit 0 ;;
+	exit ;;
     i*86:VOS:*:*)
 	# From Paul.Green at stratus.com.
 	echo ${UNAME_MACHINE}-stratus-vos
-	exit 0 ;;
+	exit ;;
     *:VOS:*:*)
 	# From Paul.Green at stratus.com.
 	echo hppa1.1-stratus-vos
-	exit 0 ;;
+	exit ;;
     mc68*:A/UX:*:*)
 	echo m68k-apple-aux${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     news*:NEWS-OS:6*:*)
 	echo mips-sony-newsos6
-	exit 0 ;;
+	exit ;;
     R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
 	if [ -d /usr/nec ]; then
 	        echo mips-nec-sysv${UNAME_RELEASE}
 	else
 	        echo mips-unknown-sysv${UNAME_RELEASE}
 	fi
-        exit 0 ;;
+        exit ;;
     BeBox:BeOS:*:*)	# BeOS running on hardware made by Be, PPC only.
 	echo powerpc-be-beos
-	exit 0 ;;
+	exit ;;
     BeMac:BeOS:*:*)	# BeOS running on Mac or Mac clone, PPC only.
 	echo powerpc-apple-beos
-	exit 0 ;;
+	exit ;;
     BePC:BeOS:*:*)	# BeOS running on Intel PC compatible.
 	echo i586-pc-beos
-	exit 0 ;;
+	exit ;;
     SX-4:SUPER-UX:*:*)
 	echo sx4-nec-superux${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     SX-5:SUPER-UX:*:*)
 	echo sx5-nec-superux${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     SX-6:SUPER-UX:*:*)
 	echo sx6-nec-superux${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     Power*:Rhapsody:*:*)
 	echo powerpc-apple-rhapsody${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     *:Rhapsody:*:*)
 	echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     *:Darwin:*:*)
 	UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
 	case $UNAME_PROCESSOR in
-	    *86) UNAME_PROCESSOR=i686 ;;
 	    unknown) UNAME_PROCESSOR=powerpc ;;
 	esac
 	echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     *:procnto*:*:* | *:QNX:[0123456789]*:*)
 	UNAME_PROCESSOR=`uname -p`
 	if test "$UNAME_PROCESSOR" = "x86"; then
@@ -1200,25 +1228,25 @@
 		UNAME_MACHINE=pc
 	fi
 	echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     *:QNX:*:4*)
 	echo i386-pc-qnx
-	exit 0 ;;
+	exit ;;
     NSE-?:NONSTOP_KERNEL:*:*)
 	echo nse-tandem-nsk${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     NSR-?:NONSTOP_KERNEL:*:*)
 	echo nsr-tandem-nsk${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     *:NonStop-UX:*:*)
 	echo mips-compaq-nonstopux
-	exit 0 ;;
+	exit ;;
     BS2000:POSIX*:*:*)
 	echo bs2000-siemens-sysv
-	exit 0 ;;
+	exit ;;
     DS/*:UNIX_System_V:*:*)
 	echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     *:Plan9:*:*)
 	# "uname -m" is not consistent, so use $cputype instead. 386
 	# is converted to i386 for consistency with other x86
@@ -1229,41 +1257,47 @@
 	    UNAME_MACHINE="$cputype"
 	fi
 	echo ${UNAME_MACHINE}-unknown-plan9
-	exit 0 ;;
+	exit ;;
     *:TOPS-10:*:*)
 	echo pdp10-unknown-tops10
-	exit 0 ;;
+	exit ;;
     *:TENEX:*:*)
 	echo pdp10-unknown-tenex
-	exit 0 ;;
+	exit ;;
     KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
 	echo pdp10-dec-tops20
-	exit 0 ;;
+	exit ;;
     XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
 	echo pdp10-xkl-tops20
-	exit 0 ;;
+	exit ;;
     *:TOPS-20:*:*)
 	echo pdp10-unknown-tops20
-	exit 0 ;;
+	exit ;;
     *:ITS:*:*)
 	echo pdp10-unknown-its
-	exit 0 ;;
+	exit ;;
     SEI:*:*:SEIUX)
         echo mips-sei-seiux${UNAME_RELEASE}
-	exit 0 ;;
+	exit ;;
     *:DragonFly:*:*)
 	echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
-	exit 0 ;;
+	exit ;;
     *:*VMS:*:*)
     	UNAME_MACHINE=`(uname -p) 2>/dev/null`
 	case "${UNAME_MACHINE}" in
-	    A*) echo alpha-dec-vms && exit 0 ;;
-	    I*) echo ia64-dec-vms && exit 0 ;;
-	    V*) echo vax-dec-vms && exit 0 ;;
+	    A*) echo alpha-dec-vms ; exit ;;
+	    I*) echo ia64-dec-vms ; exit ;;
+	    V*) echo vax-dec-vms ; exit ;;
 	esac ;;
     *:XENIX:*:SysV)
 	echo i386-pc-xenix
-	exit 0 ;;
+	exit ;;
+    i*86:skyos:*:*)
+	echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
+	exit ;;
+    i*86:rdos:*:*)
+	echo ${UNAME_MACHINE}-pc-rdos
+	exit ;;
 esac
 
 #echo '(No uname command or uname output not recognized.)' 1>&2
@@ -1295,7 +1329,7 @@
 #endif
 
 #if defined (__arm) && defined (__acorn) && defined (__unix)
-  printf ("arm-acorn-riscix"); exit (0);
+  printf ("arm-acorn-riscix\n"); exit (0);
 #endif
 
 #if defined (hp300) && !defined (hpux)
@@ -1384,11 +1418,12 @@
 }
 EOF
 
-$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0
+$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
+	{ echo "$SYSTEM_NAME"; exit; }
 
 # Apollos put the system type in the environment.
 
-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
 
 # Convex versions that predate uname can use getsysinfo(1)
 
@@ -1397,22 +1432,22 @@
     case `getsysinfo -f cpu_type` in
     c1*)
 	echo c1-convex-bsd
-	exit 0 ;;
+	exit ;;
     c2*)
 	if getsysinfo -f scalar_acc
 	then echo c32-convex-bsd
 	else echo c2-convex-bsd
 	fi
-	exit 0 ;;
+	exit ;;
     c34*)
 	echo c34-convex-bsd
-	exit 0 ;;
+	exit ;;
     c38*)
 	echo c38-convex-bsd
-	exit 0 ;;
+	exit ;;
     c4*)
 	echo c4-convex-bsd
-	exit 0 ;;
+	exit ;;
     esac
 fi
 

Modified: gtkpod/branches/upstream/current/config.sub
===================================================================
--- gtkpod/branches/upstream/current/config.sub	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/config.sub	2006-09-30 00:00:17 UTC (rev 139)
@@ -1,9 +1,10 @@
 #! /bin/sh
 # Configuration validation subroutine script.
 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
+#   Inc.
 
-timestamp='2005-04-22'
+timestamp='2006-07-02'
 
 # This file is (in principle) common to ALL GNU software.
 # The presence of a machine in this file suggests that SOME GNU software
@@ -21,14 +22,15 @@
 #
 # You should have received a copy of the GNU General Public License
 # along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.
-
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
+# 02110-1301, USA.
+#
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
 # configuration script generated by Autoconf, you may include it under
 # the same distribution terms that you use for the rest of that program.
 
+
 # Please send patches to <config-patches at gnu.org>.  Submit a context
 # diff and a properly formatted ChangeLog entry.
 #
@@ -83,11 +85,11 @@
 while test $# -gt 0 ; do
   case $1 in
     --time-stamp | --time* | -t )
-       echo "$timestamp" ; exit 0 ;;
+       echo "$timestamp" ; exit ;;
     --version | -v )
-       echo "$version" ; exit 0 ;;
+       echo "$version" ; exit ;;
     --help | --h* | -h )
-       echo "$usage"; exit 0 ;;
+       echo "$usage"; exit ;;
     -- )     # Stop option processing
        shift; break ;;
     - )	# Use stdin as input.
@@ -99,7 +101,7 @@
     *local*)
        # First pass through any local machine types.
        echo $1
-       exit 0;;
+       exit ;;
 
     * )
        break ;;
@@ -118,8 +120,9 @@
 # Here we must recognize all the valid KERNEL-OS combinations.
 maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
 case $maybe_os in
-  nto-qnx* | linux-gnu* | linux-dietlibc | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | \
-  kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*)
+  nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
+  uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
+  storm-chaos* | os2-emx* | rtmk-nova*)
     os=-$maybe_os
     basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
     ;;
@@ -170,6 +173,10 @@
 	-hiux*)
 		os=-hiuxwe2
 		;;
+	-sco6)
+		os=-sco5v6
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
 	-sco5)
 		os=-sco3.2v5
 		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
@@ -186,6 +193,10 @@
 		# Don't forget version if it is 3.2v4 or newer.
 		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
 		;;
+	-sco5v6*)
+		# Don't forget version if it is 3.2v4 or newer.
+		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+		;;
 	-sco*)
 		os=-sco3.2v2
 		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
@@ -230,7 +241,7 @@
 	| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
 	| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
 	| am33_2.0 \
-	| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
+	| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
 	| bfin \
 	| c4x | clipper \
 	| d10v | d30v | dlx | dsp16xx \
@@ -238,7 +249,8 @@
 	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
 	| i370 | i860 | i960 | ia64 \
 	| ip2k | iq2000 \
-	| m32r | m32rle | m68000 | m68k | m88k | maxq | mcore \
+	| m32c | m32r | m32rle | m68000 | m68k | m88k \
+	| maxq | mb | microblaze | mcore \
 	| mips | mipsbe | mipseb | mipsel | mipsle \
 	| mips16 \
 	| mips64 | mips64el \
@@ -247,6 +259,7 @@
 	| mips64vr4100 | mips64vr4100el \
 	| mips64vr4300 | mips64vr4300el \
 	| mips64vr5000 | mips64vr5000el \
+	| mips64vr5900 | mips64vr5900el \
 	| mipsisa32 | mipsisa32el \
 	| mipsisa32r2 | mipsisa32r2el \
 	| mipsisa64 | mipsisa64el \
@@ -255,17 +268,19 @@
 	| mipsisa64sr71k | mipsisa64sr71kel \
 	| mipstx39 | mipstx39el \
 	| mn10200 | mn10300 \
+	| mt \
 	| msp430 \
+	| nios | nios2 \
 	| ns16k | ns32k \
-	| openrisc | or32 \
+	| or32 \
 	| pdp10 | pdp11 | pj | pjl \
 	| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
 	| pyramid \
-	| sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
+	| sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
 	| sh64 | sh64le \
-	| sparc | sparc64 | sparc64b | sparc86x | sparclet | sparclite \
-	| sparcv8 | sparcv9 | sparcv9b \
-	| strongarm \
+	| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
+	| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
+	| spu | strongarm \
 	| tahoe | thumb | tic4x | tic80 | tron \
 	| v850 | v850e \
 	| we32k \
@@ -280,6 +295,9 @@
 		;;
 	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
 		;;
+	ms1)
+		basic_machine=mt-unknown
+		;;
 
 	# We use `pc' rather than `unknown'
 	# because (1) that's what they normally are, and
@@ -299,7 +317,7 @@
 	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
 	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
 	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
-	| avr-* \
+	| avr-* | avr32-* \
 	| bfin-* | bs2000-* \
 	| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
 	| clipper-* | craynv-* | cydra-* \
@@ -310,7 +328,7 @@
 	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
 	| i*86-* | i860-* | i960-* | ia64-* \
 	| ip2k-* | iq2000-* \
-	| m32r-* | m32rle-* \
+	| m32c-* | m32r-* | m32rle-* \
 	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
 	| m88110-* | m88k-* | maxq-* | mcore-* \
 	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
@@ -321,6 +339,7 @@
 	| mips64vr4100-* | mips64vr4100el-* \
 	| mips64vr4300-* | mips64vr4300el-* \
 	| mips64vr5000-* | mips64vr5000el-* \
+	| mips64vr5900-* | mips64vr5900el-* \
 	| mipsisa32-* | mipsisa32el-* \
 	| mipsisa32r2-* | mipsisa32r2el-* \
 	| mipsisa64-* | mipsisa64el-* \
@@ -329,18 +348,20 @@
 	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
 	| mipstx39-* | mipstx39el-* \
 	| mmix-* \
+	| mt-* \
 	| msp430-* \
+	| nios-* | nios2-* \
 	| none-* | np1-* | ns16k-* | ns32k-* \
 	| orion-* \
 	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
 	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
 	| pyramid-* \
 	| romp-* | rs6000-* \
-	| sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \
+	| sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
 	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
-	| sparc-* | sparc64-* | sparc64b-* | sparc86x-* | sparclet-* \
+	| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
 	| sparclite-* \
-	| sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
+	| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
 	| tahoe-* | thumb-* \
 	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
 	| tron-* \
@@ -686,6 +707,9 @@
 		basic_machine=i386-pc
 		os=-msdos
 		;;
+	ms1-*)
+		basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
+		;;
 	mvs)
 		basic_machine=i370-ibm
 		os=-mvs
@@ -761,9 +785,8 @@
 		basic_machine=hppa1.1-oki
 		os=-proelf
 		;;
-	or32 | or32-*)
+	openrisc | openrisc-*)
 		basic_machine=or32-unknown
-		os=-coff
 		;;
 	os400)
 		basic_machine=powerpc-ibm
@@ -794,6 +817,12 @@
 	pc532 | pc532-*)
 		basic_machine=ns32k-pc532
 		;;
+	pc98)
+		basic_machine=i386-pc
+		;;
+	pc98-*)
+		basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
+		;;
 	pentium | p5 | k5 | k6 | nexgen | viac3)
 		basic_machine=i586-pc
 		;;
@@ -850,6 +879,10 @@
 		basic_machine=i586-unknown
 		os=-pw32
 		;;
+	rdos)
+		basic_machine=i386-pc
+		os=-rdos
+		;;
 	rom68k)
 		basic_machine=m68k-rom68k
 		os=-coff
@@ -1089,13 +1122,10 @@
 	we32k)
 		basic_machine=we32k-att
 		;;
-	sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele)
+	sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele)
 		basic_machine=sh-unknown
 		;;
-	sh64)
-		basic_machine=sh64-unknown
-		;;
-	sparc | sparcv8 | sparcv9 | sparcv9b)
+	sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
 		basic_machine=sparc-sun
 		;;
 	cydra)
@@ -1168,20 +1198,23 @@
 	      | -aos* \
 	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
 	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
-	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \
+	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
+	      | -openbsd* | -solidbsd* \
 	      | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
 	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
 	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
 	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
 	      | -chorusos* | -chorusrdb* \
 	      | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
-	      | -mingw32* | -linux-gnu* | -linux-uclibc* | -uxpv* | -beos* | -mpeix* | -udk* \
+	      | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
+	      | -uxpv* | -beos* | -mpeix* | -udk* \
 	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
 	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
 	      | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
 	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
 	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
-	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly*)
+	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
+	      | -skyos* | -haiku* | -rdos* | -toppers*)
 	# Remember, each alternative MUST END IN *, to match a version number.
 		;;
 	-qnx*)
@@ -1199,7 +1232,7 @@
 		os=`echo $os | sed -e 's|nto|nto-qnx|'`
 		;;
 	-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
-	      | -windows* | -osx | -abug | -netware* | -os9* | -beos* \
+	      | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
 	      | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
 		;;
 	-mac*)
@@ -1333,6 +1366,9 @@
 # system, and we'll never get to this point.
 
 case $basic_machine in
+        spu-*)
+		os=-elf
+		;;
 	*-acorn)
 		os=-riscix1.2
 		;;
@@ -1342,9 +1378,9 @@
 	arm*-semi)
 		os=-aout
 		;;
-    c4x-* | tic4x-*)
-        os=-coff
-        ;;
+        c4x-* | tic4x-*)
+        	os=-coff
+		;;
 	# This must come before the *-dec entry.
 	pdp10-*)
 		os=-tops20
@@ -1388,6 +1424,9 @@
 	*-be)
 		os=-beos
 		;;
+	*-haiku)
+		os=-haiku
+		;;
 	*-ibm)
 		os=-aix
 		;;
@@ -1559,7 +1598,7 @@
 esac
 
 echo $basic_machine$os
-exit 0
+exit
 
 # Local variables:
 # eval: (add-hook 'write-file-hooks 'time-stamp)

Modified: gtkpod/branches/upstream/current/configure
===================================================================
--- gtkpod/branches/upstream/current/configure	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/configure	2006-09-30 00:00:17 UTC (rev 139)
@@ -1,8 +1,9 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.59.
+# Generated by GNU Autoconf 2.60a.
 #
-# Copyright (C) 2003 Free Software Foundation, Inc.
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
+# 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
 # This configure script is free software; the Free Software Foundation
 # gives unlimited permission to copy, distribute and modify it.
 ## --------------------- ##
@@ -16,11 +17,35 @@
   # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
   # is contrary to our usage.  Disable this feature.
   alias -g '${1+"$@"}'='"$@"'
-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
-  set -o posix
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
 fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
 DUALCASE=1; export DUALCASE # for MKS sh
 
+
+# PATH needs CR
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+# 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
+
 # Support unset when possible.
 if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
   as_unset=unset
@@ -29,8 +54,43 @@
 fi
 
 
+# IFS
+# We need space, tab and new line, in precisely that order.  Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+as_nl='
+'
+IFS=" ""	$as_nl"
+
+# Find who we are.  Look in the path if we contain no directory separator.
+case $0 in
+  *[\\/]* ) as_myself=$0 ;;
+  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+done
+IFS=$as_save_IFS
+
+     ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+  as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+  echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+  { (exit 1); exit 1; }
+fi
+
 # Work around bugs in pre-3.0 UWIN ksh.
-$as_unset ENV MAIL MAILPATH
+for as_var in ENV MAIL MAILPATH
+do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
+done
 PS1='$ '
 PS2='> '
 PS4='+ '
@@ -44,18 +104,19 @@
   if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
     eval $as_var=C; export $as_var
   else
-    $as_unset $as_var
+    ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
   fi
 done
 
 # Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1; then
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
   as_expr=expr
 else
   as_expr=false
 fi
 
-if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
   as_basename=basename
 else
   as_basename=false
@@ -63,157 +124,386 @@
 
 
 # Name of the executable.
-as_me=`$as_basename "$0" ||
+as_me=`$as_basename -- "$0" ||
 $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
 	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)$' \| \
-	 .     : '\(.\)' 2>/dev/null ||
+	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
 echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
-  	  /^X\/\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\/\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
+    sed '/^.*\/\([^/][^/]*\)\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
 
+# CDPATH.
+$as_unset CDPATH
 
-# PATH needs CR, and LINENO needs CR and PATH.
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
 
-# 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
+if test "x$CONFIG_SHELL" = x; then
+  if (eval ":") 2>/dev/null; then
+  as_have_required=yes
+else
+  as_have_required=no
 fi
 
+  if test $as_have_required = yes && 	 (eval ":
+(as_func_return () {
+  (exit \$1)
+}
+as_func_success () {
+  as_func_return 0
+}
+as_func_failure () {
+  as_func_return 1
+}
+as_func_ret_success () {
+  return 0
+}
+as_func_ret_failure () {
+  return 1
+}
 
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
-  # Find who we are.  Look in the path if we contain no path at all
-  # relative or not.
-  case $0 in
-    *[\\/]* ) as_myself=$0 ;;
-    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
+exitcode=0
+if as_func_success; then
+  :
+else
+  exitcode=1
+  echo as_func_success failed.
+fi
 
-       ;;
-  esac
-  # We did not find ourselves, most probably we were run as `sh COMMAND'
-  # in which case we are not to be found in the path.
-  if test "x$as_myself" = x; then
-    as_myself=$0
-  fi
-  if test ! -f "$as_myself"; then
-    { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
-   { (exit 1); exit 1; }; }
-  fi
-  case $CONFIG_SHELL in
-  '')
+if as_func_failure; then
+  exitcode=1
+  echo as_func_failure succeeded.
+fi
+
+if as_func_ret_success; then
+  :
+else
+  exitcode=1
+  echo as_func_ret_success failed.
+fi
+
+if as_func_ret_failure; then
+  exitcode=1
+  echo as_func_ret_failure succeeded.
+fi
+
+if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
+  :
+else
+  exitcode=1
+  echo positional parameters were not saved.
+fi
+
+test \$exitcode = 0) || { (exit 1); exit 1; }
+
+(
+  as_lineno_1=\$LINENO
+  as_lineno_2=\$LINENO
+  test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" &&
+  test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; }
+") 2> /dev/null; then
+  :
+else
+  as_candidate_shells=
     as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+for as_dir in /usr/bin/posix$PATH_SEPARATOR/bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for as_base in sh bash ksh sh5; do
-	 case $as_dir in
+  case $as_dir in
 	 /*)
-	   if ("$as_dir/$as_base" -c '
+	   for as_base in sh bash ksh sh5; do
+	     as_candidate_shells="$as_candidate_shells $as_dir/$as_base"
+	   done;;
+       esac
+done
+IFS=$as_save_IFS
+
+
+      for as_shell in $as_candidate_shells $SHELL; do
+	 # Try only shells that exist, to save several forks.
+	 if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+		{ ("$as_shell") 2> /dev/null <<\_ASEOF
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
+:
+_ASEOF
+}; then
+  CONFIG_SHELL=$as_shell
+	       as_have_required=yes
+	       if { "$as_shell" 2> /dev/null <<\_ASEOF
+# Be Bourne compatible
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+  emulate sh
+  NULLCMD=:
+  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '${1+"$@"}'='"$@"'
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
+:
+(as_func_return () {
+  (exit $1)
+}
+as_func_success () {
+  as_func_return 0
+}
+as_func_failure () {
+  as_func_return 1
+}
+as_func_ret_success () {
+  return 0
+}
+as_func_ret_failure () {
+  return 1
+}
+
+exitcode=0
+if as_func_success; then
+  :
+else
+  exitcode=1
+  echo as_func_success failed.
+fi
+
+if as_func_failure; then
+  exitcode=1
+  echo as_func_failure succeeded.
+fi
+
+if as_func_ret_success; then
+  :
+else
+  exitcode=1
+  echo as_func_ret_success failed.
+fi
+
+if as_func_ret_failure; then
+  exitcode=1
+  echo as_func_ret_failure succeeded.
+fi
+
+if ( set x; as_func_ret_success y && test x = "$1" ); then
+  :
+else
+  exitcode=1
+  echo positional parameters were not saved.
+fi
+
+test $exitcode = 0) || { (exit 1); exit 1; }
+
+(
   as_lineno_1=$LINENO
   as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
   test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
-	     $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
-	     $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
-	     CONFIG_SHELL=$as_dir/$as_base
-	     export CONFIG_SHELL
-	     exec "$CONFIG_SHELL" "$0" ${1+"$@"}
-	   fi;;
-	 esac
-       done
-done
-;;
-  esac
+  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; }
 
+_ASEOF
+}; then
+  break
+fi
+
+fi
+
+      done
+
+      if test "x$CONFIG_SHELL" != x; then
+  for as_var in BASH_ENV ENV
+        do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
+        done
+        export CONFIG_SHELL
+        exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
+fi
+
+
+    if test $as_have_required = no; then
+  echo This script requires a shell more modern than all the
+      echo shells that I found on your system.  Please install a
+      echo modern shell, or manually run the script under such a
+      echo shell if you do have one.
+      { (exit 1); exit 1; }
+fi
+
+
+fi
+
+fi
+
+
+
+(eval "as_func_return () {
+  (exit \$1)
+}
+as_func_success () {
+  as_func_return 0
+}
+as_func_failure () {
+  as_func_return 1
+}
+as_func_ret_success () {
+  return 0
+}
+as_func_ret_failure () {
+  return 1
+}
+
+exitcode=0
+if as_func_success; then
+  :
+else
+  exitcode=1
+  echo as_func_success failed.
+fi
+
+if as_func_failure; then
+  exitcode=1
+  echo as_func_failure succeeded.
+fi
+
+if as_func_ret_success; then
+  :
+else
+  exitcode=1
+  echo as_func_ret_success failed.
+fi
+
+if as_func_ret_failure; then
+  exitcode=1
+  echo as_func_ret_failure succeeded.
+fi
+
+if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
+  :
+else
+  exitcode=1
+  echo positional parameters were not saved.
+fi
+
+test \$exitcode = 0") || {
+  echo No shell found that supports shell functions.
+  echo Please tell autoconf at gnu.org about your system,
+  echo including any error possibly output before this
+  echo message
+}
+
+
+
+  as_lineno_1=$LINENO
+  as_lineno_2=$LINENO
+  test "x$as_lineno_1" != "x$as_lineno_2" &&
+  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
+
   # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
   # uniformly replaced by the line number.  The first 'sed' inserts a
-  # line-number line before each line; the second 'sed' does the real
-  # work.  The second script uses 'N' to pair each line-number line
-  # with the numbered line, and appends trailing '-' during
-  # substitution so that $LINENO is not a special case at line end.
+  # line-number line after each line using $LINENO; the second 'sed'
+  # does the real work.  The second script uses 'N' to pair each
+  # line-number line with the line containing $LINENO, and appends
+  # trailing '-' during substitution so that $LINENO is not a special
+  # case at line end.
   # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
-  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
-  sed '=' <$as_myself |
+  # scripts with optimization help from Paolo Bonzini.  Blame Lee
+  # E. McMahon (1931-1989) for sed's syntax.  :-)
+  sed -n '
+    p
+    /[$]LINENO/=
+  ' <$as_myself |
     sed '
+      s/[$]LINENO.*/&-/
+      t lineno
+      b
+      :lineno
       N
-      s,$,-,
-      : loop
-      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
+      :loop
+      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
       t loop
-      s,-$,,
-      s,^['$as_cr_digits']*\n,,
+      s/-\n.*//
     ' >$as_me.lineno &&
-  chmod +x $as_me.lineno ||
+  chmod +x "$as_me.lineno" ||
     { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
    { (exit 1); exit 1; }; }
 
   # Don't try to exec as it changes $[0], causing all sort of problems
   # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensible to this).
-  . ./$as_me.lineno
+  # original and so on.  Autoconf is especially sensitive to this).
+  . "./$as_me.lineno"
   # Exit status is that of the last command.
   exit
 }
 
 
-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
-  *c*,-n*) ECHO_N= ECHO_C='
-' ECHO_T='	' ;;
-  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
-  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+  as_dirname=dirname
+else
+  as_dirname=false
+fi
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in
+-n*)
+  case `echo 'x\c'` in
+  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
+  *)   ECHO_C='\c';;
+  esac;;
+*)
+  ECHO_N='-n';;
 esac
 
-if expr a : '\(a\)' >/dev/null 2>&1; then
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
   as_expr=expr
 else
   as_expr=false
 fi
 
 rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+  rm -f conf$$.dir/conf$$.file
+else
+  rm -f conf$$.dir
+  mkdir conf$$.dir
+fi
 echo >conf$$.file
 if ln -s conf$$.file conf$$ 2>/dev/null; then
-  # We could just check for DJGPP; but this test a) works b) is more generic
-  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
-  if test -f conf$$.exe; then
-    # Don't use ln at all; we don't have any links
+  as_ln_s='ln -s'
+  # ... but there are two gotchas:
+  # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+  # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+  # In both cases, we have to default to `cp -p'.
+  ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
     as_ln_s='cp -p'
-  else
-    as_ln_s='ln -s'
-  fi
 elif ln conf$$.file conf$$ 2>/dev/null; then
   as_ln_s=ln
 else
   as_ln_s='cp -p'
 fi
-rm -f conf$$ conf$$.exe conf$$.file
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
 
 if mkdir -p . 2>/dev/null; then
   as_mkdir_p=:
@@ -222,7 +512,19 @@
   as_mkdir_p=false
 fi
 
-as_executable_p="test -f"
+# Find out whether ``test -x'' works.  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
+  as_executable_p="test -x"
+else
+  as_executable_p=:
+fi
+rm -f conf$$.file
 
 # Sed expression to map a string onto a valid CPP name.
 as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
@@ -231,39 +533,27 @@
 as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
 
 
-# IFS
-# We need space, tab and new line, in precisely that order.
-as_nl='
-'
-IFS=" 	$as_nl"
 
-# CDPATH.
-$as_unset CDPATH
+exec 7<&0 </dev/null 6>&1
 
-
 # Name of the host.
 # hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
 # so uname gets run too.
 ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
 
-exec 6>&1
-
 #
 # Initializations.
 #
 ac_default_prefix=/usr/local
+ac_clean_files=
 ac_config_libobj_dir=.
+LIBOBJS=
 cross_compiling=no
 subdirs=
 MFLAGS=
 MAKEFLAGS=
 SHELL=${CONFIG_SHELL-/bin/sh}
 
-# Maximum number of lines to put in a shell here document.
-# This variable seems obsolete.  It should probably be removed, and
-# only ac_max_sed_lines should be used.
-: ${ac_max_here_lines=38}
-
 # Identity of this package.
 PACKAGE_NAME=
 PACKAGE_TARNAME=
@@ -275,43 +565,165 @@
 # Factoring default headers for most tests.
 ac_includes_default="\
 #include <stdio.h>
-#if HAVE_SYS_TYPES_H
+#ifdef HAVE_SYS_TYPES_H
 # include <sys/types.h>
 #endif
-#if HAVE_SYS_STAT_H
+#ifdef HAVE_SYS_STAT_H
 # include <sys/stat.h>
 #endif
-#if STDC_HEADERS
+#ifdef STDC_HEADERS
 # include <stdlib.h>
 # include <stddef.h>
 #else
-# if HAVE_STDLIB_H
+# ifdef HAVE_STDLIB_H
 #  include <stdlib.h>
 # endif
 #endif
-#if HAVE_STRING_H
-# if !STDC_HEADERS && HAVE_MEMORY_H
+#ifdef HAVE_STRING_H
+# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
 #  include <memory.h>
 # endif
 # include <string.h>
 #endif
-#if HAVE_STRINGS_H
+#ifdef HAVE_STRINGS_H
 # include <strings.h>
 #endif
-#if HAVE_INTTYPES_H
+#ifdef HAVE_INTTYPES_H
 # include <inttypes.h>
-#else
-# if HAVE_STDINT_H
-#  include <stdint.h>
-# endif
 #endif
-#if HAVE_UNISTD_H
+#ifdef HAVE_STDINT_H
+# include <stdint.h>
+#endif
+#ifdef HAVE_UNISTD_H
 # include <unistd.h>
 #endif"
 
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO AMTAR install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM AWK SET_MAKE am__leading_dot MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT build build_cpu build_vendor build_os host host_cpu host_vendor host_os CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE GETTEXT_PACKAGE have_pkgconfig PKG_CONFIG ac_pt_PKG_CONFIG PACKAGE_CFLAGS PACKAGE_LIBS LEX LEXLIB LEX_OUTPUT_ROOT MOUNT UMOUNT CPP EGREP USE_NLS MSGFMT GMSGFMT XGETTEXT CATALOGS CATOBJEXT DATADIRNAME GMOFILES INSTOBJEXT INTLLIBS PO_IN_DATADIR_TRUE PO_IN_DATADIR_FALSE POFILES POSUB MKINSTALLDIRS LIBOBJS LTLIBOBJS'
+ac_subst_vars='SHELL
+PATH_SEPARATOR
+PACKAGE_NAME
+PACKAGE_TARNAME
+PACKAGE_VERSION
+PACKAGE_STRING
+PACKAGE_BUGREPORT
+exec_prefix
+prefix
+program_transform_name
+bindir
+sbindir
+libexecdir
+datarootdir
+datadir
+sysconfdir
+sharedstatedir
+localstatedir
+includedir
+oldincludedir
+docdir
+infodir
+htmldir
+dvidir
+pdfdir
+psdir
+libdir
+localedir
+mandir
+DEFS
+ECHO_C
+ECHO_N
+ECHO_T
+LIBS
+build_alias
+host_alias
+target_alias
+INSTALL_PROGRAM
+INSTALL_SCRIPT
+INSTALL_DATA
+CYGPATH_W
+PACKAGE
+VERSION
+ACLOCAL
+AUTOCONF
+AUTOMAKE
+AUTOHEADER
+MAKEINFO
+AMTAR
+install_sh
+STRIP
+INSTALL_STRIP_PROGRAM
+AWK
+SET_MAKE
+am__leading_dot
+MAINTAINER_MODE_TRUE
+MAINTAINER_MODE_FALSE
+MAINT
+build
+build_cpu
+build_vendor
+build_os
+host
+host_cpu
+host_vendor
+host_os
+CC
+CFLAGS
+LDFLAGS
+CPPFLAGS
+ac_ct_CC
+EXEEXT
+OBJEXT
+DEPDIR
+am__include
+am__quote
+AMDEP_TRUE
+AMDEP_FALSE
+AMDEPBACKSLASH
+CCDEPMODE
+am__fastdepCC_TRUE
+am__fastdepCC_FALSE
+GETTEXT_PACKAGE
+have_pkgconfig
+PKG_CONFIG
+PACKAGE_CFLAGS
+PACKAGE_LIBS
+LEX
+LEX_OUTPUT_ROOT
+LEXLIB
+MOUNT
+UMOUNT
+CPP
+GREP
+EGREP
+USE_NLS
+MSGFMT
+GMSGFMT
+XGETTEXT
+CATALOGS
+CATOBJEXT
+DATADIRNAME
+GMOFILES
+INSTOBJEXT
+INTLLIBS
+PO_IN_DATADIR_TRUE
+PO_IN_DATADIR_FALSE
+POFILES
+POSUB
+MKINSTALLDIRS
+LIBOBJS
+LTLIBOBJS'
 ac_subst_files=''
+      ac_precious_vars='build_alias
+host_alias
+target_alias
+CC
+CFLAGS
+LDFLAGS
+CPPFLAGS
+PKG_CONFIG
+PACKAGE_CFLAGS
+PACKAGE_LIBS
+CPP'
 
+
 # Initialize some variables set by options.
 ac_init_help=
 ac_init_version=false
@@ -337,34 +749,48 @@
 # and all the variables that are supposed to be based on exec_prefix
 # by default will actually change.
 # Use braces instead of parens because sh, perl, etc. also accept them.
+# (The list follows the same order as the GNU Coding Standards.)
 bindir='${exec_prefix}/bin'
 sbindir='${exec_prefix}/sbin'
 libexecdir='${exec_prefix}/libexec'
-datadir='${prefix}/share'
+datarootdir='${prefix}/share'
+datadir='${datarootdir}'
 sysconfdir='${prefix}/etc'
 sharedstatedir='${prefix}/com'
 localstatedir='${prefix}/var'
-libdir='${exec_prefix}/lib'
 includedir='${prefix}/include'
 oldincludedir='/usr/include'
-infodir='${prefix}/info'
-mandir='${prefix}/man'
+docdir='${datarootdir}/doc/${PACKAGE}'
+infodir='${datarootdir}/info'
+htmldir='${docdir}'
+dvidir='${docdir}'
+pdfdir='${docdir}'
+psdir='${docdir}'
+libdir='${exec_prefix}/lib'
+localedir='${datarootdir}/locale'
+mandir='${datarootdir}/man'
 
 ac_prev=
+ac_dashdash=
 for ac_option
 do
   # If the previous option needs an argument, assign it.
   if test -n "$ac_prev"; then
-    eval "$ac_prev=\$ac_option"
+    eval $ac_prev=\$ac_option
     ac_prev=
     continue
   fi
 
-  ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
+  case $ac_option in
+  *=*)	ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+  *)	ac_optarg=yes ;;
+  esac
 
   # Accept the important Cygnus configure options, so we can diagnose typos.
 
-  case $ac_option in
+  case $ac_dashdash$ac_option in
+  --)
+    ac_dashdash=yes ;;
 
   -bindir | --bindir | --bindi | --bind | --bin | --bi)
     ac_prev=bindir ;;
@@ -386,12 +812,18 @@
   --config-cache | -C)
     cache_file=config.cache ;;
 
-  -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
+  -datadir | --datadir | --datadi | --datad)
     ac_prev=datadir ;;
-  -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
-  | --da=*)
+  -datadir=* | --datadir=* | --datadi=* | --datad=*)
     datadir=$ac_optarg ;;
 
+  -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
+  | --dataroo | --dataro | --datar)
+    ac_prev=datarootdir ;;
+  -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
+  | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
+    datarootdir=$ac_optarg ;;
+
   -disable-* | --disable-*)
     ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
     # Reject names that are not valid shell variable names.
@@ -399,8 +831,18 @@
       { echo "$as_me: error: invalid feature name: $ac_feature" >&2
    { (exit 1); exit 1; }; }
     ac_feature=`echo $ac_feature | sed 's/-/_/g'`
-    eval "enable_$ac_feature=no" ;;
+    eval enable_$ac_feature=no ;;
 
+  -docdir | --docdir | --docdi | --doc | --do)
+    ac_prev=docdir ;;
+  -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
+    docdir=$ac_optarg ;;
+
+  -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
+    ac_prev=dvidir ;;
+  -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
+    dvidir=$ac_optarg ;;
+
   -enable-* | --enable-*)
     ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
     # Reject names that are not valid shell variable names.
@@ -408,11 +850,7 @@
       { echo "$as_me: error: invalid feature name: $ac_feature" >&2
    { (exit 1); exit 1; }; }
     ac_feature=`echo $ac_feature | sed 's/-/_/g'`
-    case $ac_option in
-      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
-      *) ac_optarg=yes ;;
-    esac
-    eval "enable_$ac_feature='$ac_optarg'" ;;
+    eval enable_$ac_feature=\$ac_optarg ;;
 
   -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
   | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
@@ -439,6 +877,12 @@
   -host=* | --host=* | --hos=* | --ho=*)
     host_alias=$ac_optarg ;;
 
+  -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
+    ac_prev=htmldir ;;
+  -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
+  | --ht=*)
+    htmldir=$ac_optarg ;;
+
   -includedir | --includedir | --includedi | --included | --include \
   | --includ | --inclu | --incl | --inc)
     ac_prev=includedir ;;
@@ -463,13 +907,16 @@
   | --libexe=* | --libex=* | --libe=*)
     libexecdir=$ac_optarg ;;
 
+  -localedir | --localedir | --localedi | --localed | --locale)
+    ac_prev=localedir ;;
+  -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
+    localedir=$ac_optarg ;;
+
   -localstatedir | --localstatedir | --localstatedi | --localstated \
-  | --localstate | --localstat | --localsta | --localst \
-  | --locals | --local | --loca | --loc | --lo)
+  | --localstate | --localstat | --localsta | --localst | --locals)
     ac_prev=localstatedir ;;
   -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
-  | --localstate=* | --localstat=* | --localsta=* | --localst=* \
-  | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
+  | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
     localstatedir=$ac_optarg ;;
 
   -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
@@ -534,6 +981,16 @@
   | --progr-tra=* | --program-tr=* | --program-t=*)
     program_transform_name=$ac_optarg ;;
 
+  -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
+    ac_prev=pdfdir ;;
+  -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
+    pdfdir=$ac_optarg ;;
+
+  -psdir | --psdir | --psdi | --psd | --ps)
+    ac_prev=psdir ;;
+  -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
+    psdir=$ac_optarg ;;
+
   -q | -quiet | --quiet | --quie | --qui | --qu | --q \
   | -silent | --silent | --silen | --sile | --sil)
     silent=yes ;;
@@ -590,11 +1047,7 @@
       { echo "$as_me: error: invalid package name: $ac_package" >&2
    { (exit 1); exit 1; }; }
     ac_package=`echo $ac_package| sed 's/-/_/g'`
-    case $ac_option in
-      *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
-      *) ac_optarg=yes ;;
-    esac
-    eval "with_$ac_package='$ac_optarg'" ;;
+    eval with_$ac_package=\$ac_optarg ;;
 
   -without-* | --without-*)
     ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
@@ -603,7 +1056,7 @@
       { echo "$as_me: error: invalid package name: $ac_package" >&2
    { (exit 1); exit 1; }; }
     ac_package=`echo $ac_package | sed 's/-/_/g'`
-    eval "with_$ac_package=no" ;;
+    eval with_$ac_package=no ;;
 
   --x)
     # Obsolete; use --with-x.
@@ -634,8 +1087,7 @@
     expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
       { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
    { (exit 1); exit 1; }; }
-    ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
-    eval "$ac_envvar='$ac_optarg'"
+    eval $ac_envvar=\$ac_optarg
     export $ac_envvar ;;
 
   *)
@@ -655,29 +1107,21 @@
    { (exit 1); exit 1; }; }
 fi
 
-# Be sure to have absolute paths.
-for ac_var in exec_prefix prefix
+# Be sure to have absolute directory names.
+for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
+		datadir sysconfdir sharedstatedir localstatedir includedir \
+		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
+		libdir localedir mandir
 do
-  eval ac_val=$`echo $ac_var`
+  eval ac_val=\$$ac_var
   case $ac_val in
-    [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
-    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
-   { (exit 1); exit 1; }; };;
+    [\\/$]* | ?:[\\/]* )  continue;;
+    NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
   esac
+  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
+   { (exit 1); exit 1; }; }
 done
 
-# Be sure to have absolute paths.
-for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
-	      localstatedir libdir includedir oldincludedir infodir mandir
-do
-  eval ac_val=$`echo $ac_var`
-  case $ac_val in
-    [\\/$]* | ?:[\\/]* ) ;;
-    *)  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
-   { (exit 1); exit 1; }; };;
-  esac
-done
-
 # There might be people who depend on the old broken behavior: `$host'
 # used to hold the argument of --host etc.
 # FIXME: To remove some day.
@@ -702,86 +1146,76 @@
 test "$silent" = yes && exec 6>/dev/null
 
 
+ac_pwd=`pwd` && test -n "$ac_pwd" &&
+ac_ls_di=`ls -di .` &&
+ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
+  { echo "$as_me: error: Working directory cannot be determined" >&2
+   { (exit 1); exit 1; }; }
+test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
+  { echo "$as_me: error: pwd does not report name of working directory" >&2
+   { (exit 1); exit 1; }; }
+
+
 # Find the source files, if location was not specified.
 if test -z "$srcdir"; then
   ac_srcdir_defaulted=yes
-  # Try the directory containing this script, then its parent.
-  ac_confdir=`(dirname "$0") 2>/dev/null ||
+  # Try the directory containing this script, then the parent directory.
+  ac_confdir=`$as_dirname -- "$0" ||
 $as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 	 X"$0" : 'X\(//\)[^/]' \| \
 	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
+	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
 echo X"$0" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
   srcdir=$ac_confdir
-  if test ! -r $srcdir/$ac_unique_file; then
+  if test ! -r "$srcdir/$ac_unique_file"; then
     srcdir=..
   fi
 else
   ac_srcdir_defaulted=no
 fi
-if test ! -r $srcdir/$ac_unique_file; then
-  if test "$ac_srcdir_defaulted" = yes; then
-    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
+if test ! -r "$srcdir/$ac_unique_file"; then
+  test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
+  { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
    { (exit 1); exit 1; }; }
-  else
-    { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
+fi
+ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
+ac_abs_confdir=`(
+	cd "$srcdir" && test -r "./$ac_unique_file" || { echo "$as_me: error: $ac_msg" >&2
    { (exit 1); exit 1; }; }
-  fi
+	pwd)`
+# When building in place, set srcdir=.
+if test "$ac_abs_confdir" = "$ac_pwd"; then
+  srcdir=.
 fi
-(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null ||
-  { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2
-   { (exit 1); exit 1; }; }
-srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
-ac_env_build_alias_set=${build_alias+set}
-ac_env_build_alias_value=$build_alias
-ac_cv_env_build_alias_set=${build_alias+set}
-ac_cv_env_build_alias_value=$build_alias
-ac_env_host_alias_set=${host_alias+set}
-ac_env_host_alias_value=$host_alias
-ac_cv_env_host_alias_set=${host_alias+set}
-ac_cv_env_host_alias_value=$host_alias
-ac_env_target_alias_set=${target_alias+set}
-ac_env_target_alias_value=$target_alias
-ac_cv_env_target_alias_set=${target_alias+set}
-ac_cv_env_target_alias_value=$target_alias
-ac_env_CC_set=${CC+set}
-ac_env_CC_value=$CC
-ac_cv_env_CC_set=${CC+set}
-ac_cv_env_CC_value=$CC
-ac_env_CFLAGS_set=${CFLAGS+set}
-ac_env_CFLAGS_value=$CFLAGS
-ac_cv_env_CFLAGS_set=${CFLAGS+set}
-ac_cv_env_CFLAGS_value=$CFLAGS
-ac_env_LDFLAGS_set=${LDFLAGS+set}
-ac_env_LDFLAGS_value=$LDFLAGS
-ac_cv_env_LDFLAGS_set=${LDFLAGS+set}
-ac_cv_env_LDFLAGS_value=$LDFLAGS
-ac_env_CPPFLAGS_set=${CPPFLAGS+set}
-ac_env_CPPFLAGS_value=$CPPFLAGS
-ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set}
-ac_cv_env_CPPFLAGS_value=$CPPFLAGS
-ac_env_PKG_CONFIG_set=${PKG_CONFIG+set}
-ac_env_PKG_CONFIG_value=$PKG_CONFIG
-ac_cv_env_PKG_CONFIG_set=${PKG_CONFIG+set}
-ac_cv_env_PKG_CONFIG_value=$PKG_CONFIG
-ac_env_PACKAGE_CFLAGS_set=${PACKAGE_CFLAGS+set}
-ac_env_PACKAGE_CFLAGS_value=$PACKAGE_CFLAGS
-ac_cv_env_PACKAGE_CFLAGS_set=${PACKAGE_CFLAGS+set}
-ac_cv_env_PACKAGE_CFLAGS_value=$PACKAGE_CFLAGS
-ac_env_PACKAGE_LIBS_set=${PACKAGE_LIBS+set}
-ac_env_PACKAGE_LIBS_value=$PACKAGE_LIBS
-ac_cv_env_PACKAGE_LIBS_set=${PACKAGE_LIBS+set}
-ac_cv_env_PACKAGE_LIBS_value=$PACKAGE_LIBS
-ac_env_CPP_set=${CPP+set}
-ac_env_CPP_value=$CPP
-ac_cv_env_CPP_set=${CPP+set}
-ac_cv_env_CPP_value=$CPP
+# Remove unnecessary trailing slashes from srcdir.
+# Double slashes in file names in object file debugging info
+# mess up M-x gdb in Emacs.
+case $srcdir in
+*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
+esac
+for ac_var in $ac_precious_vars; do
+  eval ac_env_${ac_var}_set=\${${ac_var}+set}
+  eval ac_env_${ac_var}_value=\$${ac_var}
+  eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
+  eval ac_cv_env_${ac_var}_value=\$${ac_var}
+done
 
 #
 # Report the --help message.
@@ -810,9 +1244,6 @@
   -n, --no-create         do not create output files
       --srcdir=DIR        find the sources in DIR [configure dir or \`..']
 
-_ACEOF
-
-  cat <<_ACEOF
 Installation directories:
   --prefix=PREFIX         install architecture-independent files in PREFIX
 			  [$ac_default_prefix]
@@ -830,15 +1261,22 @@
   --bindir=DIR           user executables [EPREFIX/bin]
   --sbindir=DIR          system admin executables [EPREFIX/sbin]
   --libexecdir=DIR       program executables [EPREFIX/libexec]
-  --datadir=DIR          read-only architecture-independent data [PREFIX/share]
   --sysconfdir=DIR       read-only single-machine data [PREFIX/etc]
   --sharedstatedir=DIR   modifiable architecture-independent data [PREFIX/com]
   --localstatedir=DIR    modifiable single-machine data [PREFIX/var]
   --libdir=DIR           object code libraries [EPREFIX/lib]
   --includedir=DIR       C header files [PREFIX/include]
   --oldincludedir=DIR    C header files for non-gcc [/usr/include]
-  --infodir=DIR          info documentation [PREFIX/info]
-  --mandir=DIR           man documentation [PREFIX/man]
+  --datarootdir=DIR      read-only arch.-independent data root [PREFIX/share]
+  --datadir=DIR          read-only architecture-independent data [DATAROOTDIR]
+  --infodir=DIR          info documentation [DATAROOTDIR/info]
+  --localedir=DIR        locale-dependent data [DATAROOTDIR/locale]
+  --mandir=DIR           man documentation [DATAROOTDIR/man]
+  --docdir=DIR           documentation root [DATAROOTDIR/doc/PACKAGE]
+  --htmldir=DIR          html documentation [DOCDIR]
+  --dvidir=DIR           dvi documentation [DOCDIR]
+  --pdfdir=DIR           pdf documentation [DOCDIR]
+  --psdir=DIR            ps documentation [DOCDIR]
 _ACEOF
 
   cat <<\_ACEOF
@@ -871,8 +1309,8 @@
   CFLAGS      C compiler flags
   LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
               nonstandard directory <lib dir>
-  CPPFLAGS    C/C++ preprocessor flags, e.g. -I<include dir> if you have
-              headers in a nonstandard directory <include dir>
+  CPPFLAGS    C/C++/Objective C preprocessor flags, e.g. -I<include dir> if
+              you have headers in a nonstandard directory <include dir>
   PKG_CONFIG  path to pkg-config utility
   PACKAGE_CFLAGS
               C compiler flags for PACKAGE, overriding pkg-config
@@ -884,118 +1322,86 @@
 it to find libraries and programs with nonstandard names/locations.
 
 _ACEOF
+ac_status=$?
 fi
 
 if test "$ac_init_help" = "recursive"; then
   # If there are subdirs, report their specific --help.
-  ac_popdir=`pwd`
   for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
-    test -d $ac_dir || continue
+    test -d "$ac_dir" || continue
     ac_builddir=.
 
-if test "$ac_dir" != .; then
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
   ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
-  # A "../" for each directory in $ac_dir_suffix.
-  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
-  ac_dir_suffix= ac_top_builddir=
-fi
+  # A ".." for each directory in $ac_dir_suffix.
+  ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'`
+  case $ac_top_builddir_sub in
+  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+  esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
 
 case $srcdir in
-  .)  # No --srcdir option.  We are building in place.
+  .)  # We are building in place.
     ac_srcdir=.
-    if test -z "$ac_top_builddir"; then
-       ac_top_srcdir=.
-    else
-       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
-    fi ;;
-  [\\/]* | ?:[\\/]* )  # Absolute path.
+    ac_top_srcdir=$ac_top_builddir_sub
+    ac_abs_top_srcdir=$ac_pwd ;;
+  [\\/]* | ?:[\\/]* )  # Absolute name.
     ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir ;;
-  *) # Relative path.
-    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_builddir$srcdir ;;
+    ac_top_srcdir=$srcdir
+    ac_abs_top_srcdir=$srcdir ;;
+  *) # Relative name.
+    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_build_prefix$srcdir
+    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
 esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
 
-# Do not use `cd foo && pwd` to compute absolute paths, because
-# the directories may not exist.
-case `pwd` in
-.) ac_abs_builddir="$ac_dir";;
-*)
-  case "$ac_dir" in
-  .) ac_abs_builddir=`pwd`;;
-  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
-  *) ac_abs_builddir=`pwd`/"$ac_dir";;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_builddir=${ac_top_builddir}.;;
-*)
-  case ${ac_top_builddir}. in
-  .) ac_abs_top_builddir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
-  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_srcdir=$ac_srcdir;;
-*)
-  case $ac_srcdir in
-  .) ac_abs_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
-  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_srcdir=$ac_top_srcdir;;
-*)
-  case $ac_top_srcdir in
-  .) ac_abs_top_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
-  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
-  esac;;
-esac
-
-    cd $ac_dir
-    # Check for guested configure; otherwise get Cygnus style configure.
-    if test -f $ac_srcdir/configure.gnu; then
-      echo
-      $SHELL $ac_srcdir/configure.gnu  --help=recursive
-    elif test -f $ac_srcdir/configure; then
-      echo
-      $SHELL $ac_srcdir/configure  --help=recursive
-    elif test -f $ac_srcdir/configure.ac ||
-	   test -f $ac_srcdir/configure.in; then
-      echo
-      $ac_configure --help
+    cd "$ac_dir" || { ac_status=$?; continue; }
+    # Check for guested configure.
+    if test -f "$ac_srcdir/configure.gnu"; then
+      echo &&
+      $SHELL "$ac_srcdir/configure.gnu" --help=recursive
+    elif test -f "$ac_srcdir/configure"; then
+      echo &&
+      $SHELL "$ac_srcdir/configure" --help=recursive
     else
       echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
-    fi
-    cd "$ac_popdir"
+    fi || ac_status=$?
+    cd "$ac_pwd" || { ac_status=$?; break; }
   done
 fi
 
-test -n "$ac_init_help" && exit 0
+test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
+configure
+generated by GNU Autoconf 2.60a
 
-Copyright (C) 2003 Free Software Foundation, Inc.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
+2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
 This configure script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it.
 _ACEOF
-  exit 0
+  exit
 fi
-exec 5>config.log
-cat >&5 <<_ACEOF
+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 $as_me, which was
-generated by GNU Autoconf 2.59.  Invocation command line was
+generated by GNU Autoconf 2.60a.  Invocation command line was
 
   $ $0 $@
 
 _ACEOF
+exec 5>>config.log
 {
 cat <<_ASUNAME
 ## --------- ##
@@ -1014,7 +1420,7 @@
 /bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
 /usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
 /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-hostinfo               = `(hostinfo) 2>/dev/null               || echo unknown`
+/usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`
 /bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
 /usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
 /bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
@@ -1028,6 +1434,7 @@
   test -z "$as_dir" && as_dir=.
   echo "PATH: $as_dir"
 done
+IFS=$as_save_IFS
 
 } >&5
 
@@ -1049,7 +1456,6 @@
 ac_configure_args=
 ac_configure_args0=
 ac_configure_args1=
-ac_sep=
 ac_must_keep_next=false
 for ac_pass in 1 2
 do
@@ -1060,7 +1466,7 @@
     -q | -quiet | --quiet | --quie | --qui | --qu | --q \
     | -silent | --silent | --silen | --sile | --sil)
       continue ;;
-    *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
+    *\'*)
       ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
     esac
     case $ac_pass in
@@ -1082,9 +1488,7 @@
 	  -* ) ac_must_keep_next=true ;;
 	esac
       fi
-      ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
-      # Get rid of the leading space.
-      ac_sep=" "
+      ac_configure_args="$ac_configure_args '$ac_arg'"
       ;;
     esac
   done
@@ -1095,8 +1499,8 @@
 # When interrupted or exit'd, cleanup temporary files, and complete
 # config.log.  We remove comments because anyway the quotes in there
 # would cause problems or look ugly.
-# WARNING: Be sure not to use single quotes in there, as some shells,
-# such as our DU 5.0 friend, will then `close' the trap.
+# WARNING: Use '\'' to represent an apostrophe within the trap.
+# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
 trap 'exit_status=$?
   # Save into config.log some information that might help in debugging.
   {
@@ -1109,20 +1513,34 @@
 _ASBOX
     echo
     # The following way of writing the cache mishandles newlines in values,
-{
+(
+  for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
+    eval ac_val=\$$ac_var
+    case $ac_val in #(
+    *${as_nl}*)
+      case $ac_var in #(
+      *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5
+echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;;
+      esac
+      case $ac_var in #(
+      _ | IFS | as_nl) ;; #(
+      *) $as_unset $ac_var ;;
+      esac ;;
+    esac
+  done
   (set) 2>&1 |
-    case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
-    *ac_space=\ *)
+    case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
+    *${as_nl}ac_space=\ *)
       sed -n \
-	"s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
-	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
-      ;;
+	"s/'\''/'\''\\\\'\'''\''/g;
+	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
+      ;; #(
     *)
-      sed -n \
-	"s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
+      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
       ;;
-    esac;
-}
+    esac |
+    sort
+)
     echo
 
     cat <<\_ASBOX
@@ -1133,22 +1551,28 @@
     echo
     for ac_var in $ac_subst_vars
     do
-      eval ac_val=$`echo $ac_var`
-      echo "$ac_var='"'"'$ac_val'"'"'"
+      eval ac_val=\$$ac_var
+      case $ac_val in
+      *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+      esac
+      echo "$ac_var='\''$ac_val'\''"
     done | sort
     echo
 
     if test -n "$ac_subst_files"; then
       cat <<\_ASBOX
-## ------------- ##
-## Output files. ##
-## ------------- ##
+## ------------------- ##
+## File substitutions. ##
+## ------------------- ##
 _ASBOX
       echo
       for ac_var in $ac_subst_files
       do
-	eval ac_val=$`echo $ac_var`
-	echo "$ac_var='"'"'$ac_val'"'"'"
+	eval ac_val=\$$ac_var
+	case $ac_val in
+	*\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+	esac
+	echo "$ac_var='\''$ac_val'\''"
       done | sort
       echo
     fi
@@ -1160,26 +1584,24 @@
 ## ----------- ##
 _ASBOX
       echo
-      sed "/^$/d" confdefs.h | sort
+      cat confdefs.h
       echo
     fi
     test "$ac_signal" != 0 &&
       echo "$as_me: caught signal $ac_signal"
     echo "$as_me: exit $exit_status"
   } >&5
-  rm -f core *.core &&
-  rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
+  rm -f core *.core core.conftest.* &&
+    rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
     exit $exit_status
-     ' 0
+' 0
 for ac_signal in 1 2 13 15; do
   trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
 done
 ac_signal=0
 
 # confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -rf conftest* confdefs.h
-# AIX cpp loses on an empty file, so make sure it contains at least a newline.
-echo >confdefs.h
+rm -f -r conftest* confdefs.h
 
 # Predefined preprocessor variables.
 
@@ -1210,14 +1632,17 @@
 
 # Let the site file select an alternate cache file if it wants to.
 # Prefer explicitly selected file to automatically selected ones.
-if test -z "$CONFIG_SITE"; then
-  if test "x$prefix" != xNONE; then
-    CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
-  else
-    CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
-  fi
+if test -n "$CONFIG_SITE"; then
+  set x "$CONFIG_SITE"
+elif test "x$prefix" != xNONE; then
+  set x "$prefix/share/config.site" "$prefix/etc/config.site"
+else
+  set x "$ac_default_prefix/share/config.site" \
+	"$ac_default_prefix/etc/config.site"
 fi
-for ac_site_file in $CONFIG_SITE; do
+shift
+for ac_site_file
+do
   if test -r "$ac_site_file"; then
     { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
 echo "$as_me: loading site script $ac_site_file" >&6;}
@@ -1233,8 +1658,8 @@
     { echo "$as_me:$LINENO: loading cache $cache_file" >&5
 echo "$as_me: loading cache $cache_file" >&6;}
     case $cache_file in
-      [\\/]* | ?:[\\/]* ) . $cache_file;;
-      *)                      . ./$cache_file;;
+      [\\/]* | ?:[\\/]* ) . "$cache_file";;
+      *)                      . "./$cache_file";;
     esac
   fi
 else
@@ -1246,12 +1671,11 @@
 # Check that the precious variables saved in the cache have kept the same
 # value.
 ac_cache_corrupted=false
-for ac_var in `(set) 2>&1 |
-	       sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
+for ac_var in $ac_precious_vars; do
   eval ac_old_set=\$ac_cv_env_${ac_var}_set
   eval ac_new_set=\$ac_env_${ac_var}_set
-  eval ac_old_val="\$ac_cv_env_${ac_var}_value"
-  eval ac_new_val="\$ac_env_${ac_var}_value"
+  eval ac_old_val=\$ac_cv_env_${ac_var}_value
+  eval ac_new_val=\$ac_env_${ac_var}_value
   case $ac_old_set,$ac_new_set in
     set,)
       { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
@@ -1276,8 +1700,7 @@
   # Pass precious variables to config.status.
   if test "$ac_new_set" = set; then
     case $ac_new_val in
-    *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
-      ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+    *\'*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
     *) ac_arg=$ac_var=$ac_new_val ;;
     esac
     case " $ac_configure_args " in
@@ -1294,11 +1717,6 @@
    { (exit 1); exit 1; }; }
 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
 
 
 
@@ -1315,35 +1733,45 @@
 
 
 
+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
 
 
-
 am__api_version="1.7"
 ac_aux_dir=
-for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
-  if test -f $ac_dir/install-sh; then
+for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
+  if test -f "$ac_dir/install-sh"; then
     ac_aux_dir=$ac_dir
     ac_install_sh="$ac_aux_dir/install-sh -c"
     break
-  elif test -f $ac_dir/install.sh; then
+  elif test -f "$ac_dir/install.sh"; then
     ac_aux_dir=$ac_dir
     ac_install_sh="$ac_aux_dir/install.sh -c"
     break
-  elif test -f $ac_dir/shtool; then
+  elif test -f "$ac_dir/shtool"; then
     ac_aux_dir=$ac_dir
     ac_install_sh="$ac_aux_dir/shtool install -c"
     break
   fi
 done
 if test -z "$ac_aux_dir"; then
-  { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
-echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;}
+  { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5
+echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;}
    { (exit 1); exit 1; }; }
 fi
-ac_config_guess="$SHELL $ac_aux_dir/config.guess"
-ac_config_sub="$SHELL $ac_aux_dir/config.sub"
-ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
 
+# These three variables are undocumented and unsupported,
+# and are intended to be withdrawn in a future Autoconf release.
+# They can cause serious problems if a builder's source tree is in a directory
+# whose full name contains unusual characters.
+ac_config_guess="$SHELL $ac_aux_dir/config.guess"  # Please don't use this var.
+ac_config_sub="$SHELL $ac_aux_dir/config.sub"  # Please don't use this var.
+ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
+
+
 # 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:
@@ -1357,8 +1785,8 @@
 # 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.
-echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
-echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
+echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; }
 if test -z "$INSTALL"; then
 if test "${ac_cv_path_install+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
@@ -1380,7 +1808,7 @@
     # by default.
     for ac_prog in ginstall scoinst install; do
       for ac_exec_ext in '' $ac_executable_extensions; do
-	if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
+	if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_executable_p "$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.
@@ -1399,21 +1827,22 @@
     ;;
 esac
 done
+IFS=$as_save_IFS
 
 
 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.  We don't cache a
-    # path for INSTALL within a source directory, because that will
+    # 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 path is relative.
+    # removed, or if the value is a relative name.
     INSTALL=$ac_install_sh
   fi
 fi
-echo "$as_me:$LINENO: result: $INSTALL" >&5
-echo "${ECHO_T}$INSTALL" >&6
+{ echo "$as_me:$LINENO: result: $INSTALL" >&5
+echo "${ECHO_T}$INSTALL" >&6; }
 
 # Use test -z because SunOS4 sh mishandles braces in ${var-val}.
 # It thinks the first close brace ends the variable substitution.
@@ -1423,8 +1852,8 @@
 
 test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
 
-echo "$as_me:$LINENO: checking whether build environment is sane" >&5
-echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking whether build environment is sane" >&5
+echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6; }
 # Just in case
 sleep 1
 echo timestamp > conftest.file
@@ -1466,20 +1895,20 @@
 Check your system clock" >&2;}
    { (exit 1); exit 1; }; }
 fi
-echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
+{ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
 test "$program_prefix" != NONE &&
-  program_transform_name="s,^,$program_prefix,;$program_transform_name"
+  program_transform_name="s&^&$program_prefix&;$program_transform_name"
 # Use a double $ so make ignores it.
 test "$program_suffix" != NONE &&
-  program_transform_name="s,\$,$program_suffix,;$program_transform_name"
+  program_transform_name="s&\$&$program_suffix&;$program_transform_name"
 # Double any \ or $.  echo might interpret backslashes.
 # By default was `s,x,x', remove it if useless.
 cat <<\_ACEOF >conftest.sed
 s/[\\$]/&&/g;s/;s,x,x,$//
 _ACEOF
 program_transform_name=`echo $program_transform_name | sed -f conftest.sed`
-rm conftest.sed
+rm -f conftest.sed
 
 
 # expand $ac_aux_dir to an absolute path
@@ -1499,8 +1928,8 @@
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_prog_AWK+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -1513,54 +1942,57 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_AWK="$ac_prog"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 done
+IFS=$as_save_IFS
 
 fi
 fi
 AWK=$ac_cv_prog_AWK
 if test -n "$AWK"; then
-  echo "$as_me:$LINENO: result: $AWK" >&5
-echo "${ECHO_T}$AWK" >&6
+  { echo "$as_me:$LINENO: result: $AWK" >&5
+echo "${ECHO_T}$AWK" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
+
   test -n "$AWK" && break
 done
 
-echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
-echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6
-set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'`
-if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then
+{ echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6; }
+set x ${MAKE-make}; ac_make=`echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
+if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.make <<\_ACEOF
+SHELL = /bin/sh
 all:
-	@echo 'ac_maketemp="$(MAKE)"'
+	@echo '@@@%%%=$(MAKE)=@@@%%%'
 _ACEOF
 # GNU make sometimes prints "make[1]: Entering...", which would confuse us.
-eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=`
-if test -n "$ac_maketemp"; then
-  eval ac_cv_prog_make_${ac_make}_set=yes
-else
-  eval ac_cv_prog_make_${ac_make}_set=no
-fi
+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 \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
-  echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
+if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
+  { echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
   SET_MAKE=
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
   SET_MAKE="MAKE=${MAKE-make}"
 fi
 
@@ -1593,7 +2025,7 @@
 
 # Define the identity of the package.
  PACKAGE=gtkpod
- VERSION=0.99.4
+ VERSION=0.99.8
 
 
 cat >>confdefs.h <<_ACEOF
@@ -1634,8 +2066,8 @@
   if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
 set dummy ${ac_tool_prefix}strip; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_prog_STRIP+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -1648,32 +2080,34 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_STRIP="${ac_tool_prefix}strip"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 done
+IFS=$as_save_IFS
 
 fi
 fi
 STRIP=$ac_cv_prog_STRIP
 if test -n "$STRIP"; then
-  echo "$as_me:$LINENO: result: $STRIP" >&5
-echo "${ECHO_T}$STRIP" >&6
+  { echo "$as_me:$LINENO: result: $STRIP" >&5
+echo "${ECHO_T}$STRIP" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
+
 fi
 if test -z "$ac_cv_prog_STRIP"; then
   ac_ct_STRIP=$STRIP
   # Extract the first word of "strip", so it can be a program name with args.
 set dummy strip; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -1686,27 +2120,41 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_STRIP="strip"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 done
+IFS=$as_save_IFS
 
-  test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":"
 fi
 fi
 ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
 if test -n "$ac_ct_STRIP"; then
-  echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
-echo "${ECHO_T}$ac_ct_STRIP" >&6
+  { echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
+echo "${ECHO_T}$ac_ct_STRIP" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
-  STRIP=$ac_ct_STRIP
+  if test "x$ac_ct_STRIP" = x; then
+    STRIP=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf at gnu.org." >&5
+echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf at gnu.org." >&2;}
+ac_tool_warned=yes ;;
+esac
+    STRIP=$ac_ct_STRIP
+  fi
 else
   STRIP="$ac_cv_prog_STRIP"
 fi
@@ -1719,21 +2167,21 @@
 
 
 
-          ac_config_headers="$ac_config_headers config.h"
+ac_config_headers="$ac_config_headers config.h"
 
-echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5
-echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6
-    # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
+{ echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5
+echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6; }
+    # Check whether --enable-maintainer-mode was given.
 if test "${enable_maintainer_mode+set}" = set; then
-  enableval="$enable_maintainer_mode"
-  USE_MAINTAINER_MODE=$enableval
+  enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval
 else
   USE_MAINTAINER_MODE=no
-fi;
-  echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5
-echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6
+fi
 
+  { echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5
+echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6; }
 
+
 if test $USE_MAINTAINER_MODE = yes; then
   MAINTAINER_MODE_TRUE=
   MAINTAINER_MODE_FALSE='#'
@@ -1746,62 +2194,91 @@
 
 
 # Make sure we can run config.sub.
-$ac_config_sub sun4 >/dev/null 2>&1 ||
-  { { echo "$as_me:$LINENO: error: cannot run $ac_config_sub" >&5
-echo "$as_me: error: cannot run $ac_config_sub" >&2;}
+$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
+  { { echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5
+echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;}
    { (exit 1); exit 1; }; }
 
-echo "$as_me:$LINENO: checking build system type" >&5
-echo $ECHO_N "checking build system type... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking build system type" >&5
+echo $ECHO_N "checking build system type... $ECHO_C" >&6; }
 if test "${ac_cv_build+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_cv_build_alias=$build_alias
-test -z "$ac_cv_build_alias" &&
-  ac_cv_build_alias=`$ac_config_guess`
-test -z "$ac_cv_build_alias" &&
+  ac_build_alias=$build_alias
+test "x$ac_build_alias" = x &&
+  ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
+test "x$ac_build_alias" = x &&
   { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
 echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
    { (exit 1); exit 1; }; }
-ac_cv_build=`$ac_config_sub $ac_cv_build_alias` ||
-  { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_build_alias failed" >&5
-echo "$as_me: error: $ac_config_sub $ac_cv_build_alias failed" >&2;}
+ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
+  { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5
+echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;}
    { (exit 1); exit 1; }; }
 
 fi
-echo "$as_me:$LINENO: result: $ac_cv_build" >&5
-echo "${ECHO_T}$ac_cv_build" >&6
+{ echo "$as_me:$LINENO: result: $ac_cv_build" >&5
+echo "${ECHO_T}$ac_cv_build" >&6; }
+case $ac_cv_build in
+*-*-*) ;;
+*) { { echo "$as_me:$LINENO: error: invalid value of canonical build" >&5
+echo "$as_me: error: invalid value of canonical build" >&2;}
+   { (exit 1); exit 1; }; };;
+esac
 build=$ac_cv_build
-build_cpu=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-build_vendor=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-build_os=`echo $ac_cv_build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_build
+shift
+build_cpu=$1
+build_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+build_os=$*
+IFS=$ac_save_IFS
+case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
 
 
-echo "$as_me:$LINENO: checking host system type" >&5
-echo $ECHO_N "checking host system type... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking host system type" >&5
+echo $ECHO_N "checking host system type... $ECHO_C" >&6; }
 if test "${ac_cv_host+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_cv_host_alias=$host_alias
-test -z "$ac_cv_host_alias" &&
-  ac_cv_host_alias=$ac_cv_build_alias
-ac_cv_host=`$ac_config_sub $ac_cv_host_alias` ||
-  { { echo "$as_me:$LINENO: error: $ac_config_sub $ac_cv_host_alias failed" >&5
-echo "$as_me: error: $ac_config_sub $ac_cv_host_alias failed" >&2;}
+  if test "x$host_alias" = x; then
+  ac_cv_host=$ac_cv_build
+else
+  ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
+    { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5
+echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;}
    { (exit 1); exit 1; }; }
+fi
 
 fi
-echo "$as_me:$LINENO: result: $ac_cv_host" >&5
-echo "${ECHO_T}$ac_cv_host" >&6
+{ echo "$as_me:$LINENO: result: $ac_cv_host" >&5
+echo "${ECHO_T}$ac_cv_host" >&6; }
+case $ac_cv_host in
+*-*-*) ;;
+*) { { echo "$as_me:$LINENO: error: invalid value of canonical host" >&5
+echo "$as_me: error: invalid value of canonical host" >&2;}
+   { (exit 1); exit 1; }; };;
+esac
 host=$ac_cv_host
-host_cpu=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
-host_vendor=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
-host_os=`echo $ac_cv_host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_host
+shift
+host_cpu=$1
+host_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+host_os=$*
+IFS=$ac_save_IFS
+case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
 
 
 DEPDIR="${am__leading_dot}deps"
 
-          ac_config_commands="$ac_config_commands depfiles"
+ac_config_commands="$ac_config_commands depfiles"
 
 
 am_make=${MAKE-make}
@@ -1811,8 +2288,8 @@
 .PHONY: am__doit
 END
 # If we don't find an include directive, just comment out the code.
-echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5
-echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5
+echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6; }
 am__include="#"
 am__quote=
 _am_result=none
@@ -1839,15 +2316,15 @@
 fi
 
 
-echo "$as_me:$LINENO: result: $_am_result" >&5
-echo "${ECHO_T}$_am_result" >&6
+{ echo "$as_me:$LINENO: result: $_am_result" >&5
+echo "${ECHO_T}$_am_result" >&6; }
 rm -f confinc confmf
 
-# Check whether --enable-dependency-tracking or --disable-dependency-tracking was given.
+# Check whether --enable-dependency-tracking was given.
 if test "${enable_dependency_tracking+set}" = set; then
-  enableval="$enable_dependency_tracking"
+  enableval=$enable_dependency_tracking;
+fi
 
-fi;
 if test "x$enable_dependency_tracking" != xno; then
   am_depcomp="$ac_aux_dir/depcomp"
   AMDEPBACKSLASH='\'
@@ -1872,8 +2349,8 @@
 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
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_prog_CC+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -1886,32 +2363,34 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_CC="${ac_tool_prefix}gcc"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 done
+IFS=$as_save_IFS
 
 fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
+  { echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}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
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -1924,36 +2403,51 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_CC="gcc"
     echo "$as_me:$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
-  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
+  { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
-  CC=$ac_ct_CC
+  if test "x$ac_ct_CC" = x; then
+    CC=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf at gnu.org." >&5
+echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf at gnu.org." >&2;}
+ac_tool_warned=yes ;;
+esac
+    CC=$ac_ct_CC
+  fi
 else
   CC="$ac_cv_prog_CC"
 fi
 
 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.
+          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
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_prog_CC+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -1966,74 +2460,34 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_CC="${ac_tool_prefix}cc"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 done
+IFS=$as_save_IFS
 
 fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
+  { echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
-fi
-if test -z "$ac_cv_prog_CC"; then
-  ac_ct_CC=$CC
-  # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_CC="cc"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
+
   fi
-done
-done
-
 fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-  CC=$ac_ct_CC
-else
-  CC="$ac_cv_prog_CC"
-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
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_prog_CC+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -2047,7 +2501,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$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
@@ -2058,6 +2512,7 @@
   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.
@@ -2075,22 +2530,23 @@
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
+  { echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
+
 fi
 if test -z "$CC"; then
   if test -n "$ac_tool_prefix"; then
-  for ac_prog in cl
+  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
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_prog_CC+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -2103,36 +2559,38 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 done
+IFS=$as_save_IFS
 
 fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
+  { echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
+
     test -n "$CC" && break
   done
 fi
 if test -z "$CC"; then
   ac_ct_CC=$CC
-  for ac_prog in cl
+  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
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -2145,29 +2603,45 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_CC="$ac_prog"
     echo "$as_me:$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
-  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
+  { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
+
   test -n "$ac_ct_CC" && break
 done
 
-  CC=$ac_ct_CC
+  if test "x$ac_ct_CC" = x; then
+    CC=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf at gnu.org." >&5
+echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf at gnu.org." >&2;}
+ac_tool_warned=yes ;;
+esac
+    CC=$ac_ct_CC
+  fi
 fi
 
 fi
@@ -2180,21 +2654,35 @@
    { (exit 1); exit 1; }; }
 
 # Provide some information about the compiler.
-echo "$as_me:$LINENO:" \
-     "checking for C compiler version" >&5
+echo "$as_me:$LINENO: checking for C compiler version" >&5
 ac_compiler=`set X $ac_compile; echo $2`
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
-  (eval $ac_compiler --version </dev/null >&5) 2>&5
+{ (ac_try="$ac_compiler --version >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compiler --version >&5") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
-  (eval $ac_compiler -v </dev/null >&5) 2>&5
+{ (ac_try="$ac_compiler -v >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compiler -v >&5") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
-  (eval $ac_compiler -V </dev/null >&5) 2>&5
+{ (ac_try="$ac_compiler -V >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compiler -V >&5") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }
@@ -2219,47 +2707,77 @@
 # Try to create an executable without -o first, disregard a.out.
 # It will help us diagnose broken compilers, and finding out an intuition
 # of exeext.
-echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
-echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
+echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6; }
 ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
-if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5
-  (eval $ac_link_default) 2>&5
+#
+# List of possible output files, starting from the most likely.
+# The algorithm is not robust to junk in `.', hence go to wildcards (a.*)
+# only as a last resort.  b.out is created by i960 compilers.
+ac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out'
+#
+# The IRIX 6 linker writes into existing files which may not be
+# executable, retaining their permissions.  Remove them first so a
+# subsequent execution test works.
+ac_rmfiles=
+for ac_file in $ac_files
+do
+  case $ac_file in
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;;
+    * ) ac_rmfiles="$ac_rmfiles $ac_file";;
+  esac
+done
+rm -f $ac_rmfiles
+
+if { (ac_try="$ac_link_default"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link_default") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; then
-  # Find the output, starting from the most likely.  This scheme is
-# not robust to junk in `.', hence go to wildcards (a.*) only as a last
-# resort.
-
-# Be careful to initialize this variable, since it used to be cached.
-# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile.
-ac_cv_exeext=
-# b.out is created by i960 compilers.
-for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out
+  # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
+# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
+# in a Makefile.  We should not override ac_cv_exeext if it was cached,
+# so that the user can short-circuit this test for compilers unknown to
+# Autoconf.
+for ac_file in $ac_files ''
 do
   test -f "$ac_file" || continue
   case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj )
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj )
 	;;
-    conftest.$ac_ext )
-	# This is the source file.
-	;;
     [ab].out )
 	# We found the default executable, but exeext='' is most
 	# certainly right.
 	break;;
     *.* )
-	ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
-	# FIXME: I believe we export ac_cv_exeext for Libtool,
-	# but it would be cool to find out if it's true.  Does anybody
-	# maintain Libtool? --akim.
-	export ac_cv_exeext
+        if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
+	then :; else
+	   ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+	fi
+	# We set ac_cv_exeext here because the later test for it is not
+	# safe: cross compilers may not add the suffix if given an `-o'
+	# argument, so we may need to know it at that point already.
+	# Even if this section looks crufty: it has the advantage of
+	# actually working.
 	break;;
     * )
 	break;;
   esac
 done
+test "$ac_cv_exeext" = no && ac_cv_exeext=
+
 else
+  ac_file=''
+fi
+
+{ echo "$as_me:$LINENO: result: $ac_file" >&5
+echo "${ECHO_T}$ac_file" >&6; }
+if test -z "$ac_file"; then
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
@@ -2271,19 +2789,21 @@
 fi
 
 ac_exeext=$ac_cv_exeext
-echo "$as_me:$LINENO: result: $ac_file" >&5
-echo "${ECHO_T}$ac_file" >&6
 
-# Check the compiler produces executables we can run.  If not, either
+# Check that the compiler produces executables we can run.  If not, either
 # the compiler is broken, or we cross compile.
-echo "$as_me:$LINENO: checking whether the C compiler works" >&5
-echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking whether the C compiler works" >&5
+echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6; }
 # FIXME: These cross compiler hacks should be removed for Autoconf 3.0
 # If not cross compiling, check that we can run a simple program.
 if test "$cross_compiling" != yes; then
   if { ac_try='./$ac_file'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -2302,22 +2822,27 @@
     fi
   fi
 fi
-echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
+{ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
 
 rm -f a.out a.exe conftest$ac_cv_exeext b.out
 ac_clean_files=$ac_clean_files_save
-# Check the compiler produces executables we can run.  If not, either
+# Check that the compiler produces executables we can run.  If not, either
 # the compiler is broken, or we cross compile.
-echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
-echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
-echo "$as_me:$LINENO: result: $cross_compiling" >&5
-echo "${ECHO_T}$cross_compiling" >&6
+{ echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
+echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6; }
+{ echo "$as_me:$LINENO: result: $cross_compiling" >&5
+echo "${ECHO_T}$cross_compiling" >&6; }
 
-echo "$as_me:$LINENO: checking for suffix of executables" >&5
-echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
+{ echo "$as_me:$LINENO: checking for suffix of executables" >&5
+echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6; }
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; then
@@ -2328,9 +2853,8 @@
 for ac_file in conftest.exe conftest conftest.*; do
   test -f "$ac_file" || continue
   case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;;
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;;
     *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
-	  export ac_cv_exeext
 	  break;;
     * ) break;;
   esac
@@ -2344,14 +2868,14 @@
 fi
 
 rm -f conftest$ac_cv_exeext
-echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
-echo "${ECHO_T}$ac_cv_exeext" >&6
+{ echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
+echo "${ECHO_T}$ac_cv_exeext" >&6; }
 
 rm -f conftest.$ac_ext
 EXEEXT=$ac_cv_exeext
 ac_exeext=$EXEEXT
-echo "$as_me:$LINENO: checking for suffix of object files" >&5
-echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for suffix of object files" >&5
+echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6; }
 if test "${ac_cv_objext+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -2371,14 +2895,20 @@
 }
 _ACEOF
 rm -f conftest.o conftest.obj
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>&5
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; then
-  for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
+  for ac_file in conftest.o conftest.obj conftest.*; do
+  test -f "$ac_file" || continue;
   case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;;
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf ) ;;
     *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
        break;;
   esac
@@ -2396,12 +2926,12 @@
 
 rm -f conftest.$ac_cv_objext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
-echo "${ECHO_T}$ac_cv_objext" >&6
+{ echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
+echo "${ECHO_T}$ac_cv_objext" >&6; }
 OBJEXT=$ac_cv_objext
 ac_objext=$OBJEXT
-echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
-echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
+echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; }
 if test "${ac_cv_c_compiler_gnu+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -2424,23 +2954,36 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+	 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
 	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -2449,24 +2992,28 @@
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_compiler_gnu=no
+	ac_compiler_gnu=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 ac_cv_c_compiler_gnu=$ac_compiler_gnu
 
 fi
-echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
-echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
+{ echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
+echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; }
 GCC=`test $ac_compiler_gnu = yes && echo yes`
 ac_test_CFLAGS=${CFLAGS+set}
 ac_save_CFLAGS=$CFLAGS
-CFLAGS="-g"
-echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
-echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
+echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; }
 if test "${ac_cv_prog_cc_g+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
+  ac_save_c_werror_flag=$ac_c_werror_flag
+   ac_c_werror_flag=yes
+   ac_cv_prog_cc_g=no
+   CFLAGS="-g"
+   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -2482,23 +3029,36 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+	 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
 	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -2507,12 +3067,131 @@
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_prog_cc_g=no
+	CFLAGS=""
+      cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  :
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_c_werror_flag=$ac_save_c_werror_flag
+	 CFLAGS="-g"
+	 cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_prog_cc_g=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
-echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
+
+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
+{ echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
+echo "${ECHO_T}$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
@@ -2528,12 +3207,12 @@
     CFLAGS=
   fi
 fi
-echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5
-echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
-if test "${ac_cv_prog_cc_stdc+set}" = set; then
+{ echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5
+echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; }
+if test "${ac_cv_prog_cc_c89+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_cv_prog_cc_stdc=no
+  ac_cv_prog_cc_c89=no
 ac_save_CC=$CC
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -2567,12 +3246,17 @@
 /* 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 -std1 is added to get
+   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 -std1.  */
+   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];
+
 int test (int i, double x);
 struct s1 {int (*f) (int a);};
 struct s2 {int (*f) (double a);};
@@ -2587,201 +3271,74 @@
   return 0;
 }
 _ACEOF
-# Don't try gcc -ansi; that turns off useful extensions and
-# breaks some systems' header files.
-# AIX			-qlanglvl=ansi
-# Ultrix and OSF/1	-std1
-# HP-UX 10.20 and later	-Ae
-# HP-UX older versions	-Aa -D_HPUX_SOURCE
-# SVR4			-Xc -D__EXTENSIONS__
-for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+	-Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
 do
   CC="$ac_save_CC $ac_arg"
   rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+	 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
 	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
-  ac_cv_prog_cc_stdc=$ac_arg
-break
+  ac_cv_prog_cc_c89=$ac_arg
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
+
 fi
-rm -f conftest.err conftest.$ac_objext
+
+rm -f core conftest.err conftest.$ac_objext
+  test "x$ac_cv_prog_cc_c89" != "xno" && break
 done
-rm -f conftest.$ac_ext conftest.$ac_objext
+rm -f conftest.$ac_ext
 CC=$ac_save_CC
 
 fi
-
-case "x$ac_cv_prog_cc_stdc" in
-  x|xno)
-    echo "$as_me:$LINENO: result: none needed" >&5
-echo "${ECHO_T}none needed" >&6 ;;
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c89" in
+  x)
+    { echo "$as_me:$LINENO: result: none needed" >&5
+echo "${ECHO_T}none needed" >&6; } ;;
+  xno)
+    { echo "$as_me:$LINENO: result: unsupported" >&5
+echo "${ECHO_T}unsupported" >&6; } ;;
   *)
-    echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5
-echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
-    CC="$CC $ac_cv_prog_cc_stdc" ;;
+    CC="$CC $ac_cv_prog_cc_c89"
+    { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5
+echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;;
 esac
 
-# Some people use a C++ compiler to compile C.  Since we use `exit',
-# in C++ we need to declare it.  In case someone uses the same compiler
-# for both compiling C and C++ we need to have the C++ compiler decide
-# the declaration of exit, since it's the most demanding environment.
-cat >conftest.$ac_ext <<_ACEOF
-#ifndef __cplusplus
-  choke me
-#endif
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  for ac_declaration in \
-   '' \
-   'extern "C" void std::exit (int) throw (); using std::exit;' \
-   'extern "C" void std::exit (int); using std::exit;' \
-   'extern "C" void exit (int) throw ();' \
-   'extern "C" void exit (int);' \
-   'void exit (int);'
-do
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_declaration
-#include <stdlib.h>
-int
-main ()
-{
-exit (42);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  :
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-continue
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_declaration
-int
-main ()
-{
-exit (42);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  break
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-done
-rm -f conftest*
-if test -n "$ac_declaration"; then
-  echo '#ifdef __cplusplus' >>confdefs.h
-  echo $ac_declaration      >>confdefs.h
-  echo '#endif'             >>confdefs.h
-fi
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -2790,8 +3347,8 @@
 
 depcc="$CC"   am_compiler_list=
 
-echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
-echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
+echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; }
 if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -2873,8 +3430,8 @@
 fi
 
 fi
-echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5
-echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6
+{ echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5
+echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6; }
 CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
 
 
@@ -2892,8 +3449,8 @@
 
 
 
-        echo "$as_me:$LINENO: checking for strerror in -lcposix" >&5
-echo $ECHO_N "checking for strerror in -lcposix... $ECHO_C" >&6
+        { echo "$as_me:$LINENO: checking for strerror in -lcposix" >&5
+echo $ECHO_N "checking for strerror in -lcposix... $ECHO_C" >&6; }
 if test "${ac_cv_lib_cposix_strerror+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -2906,39 +3463,52 @@
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* 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
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char strerror ();
 int
 main ()
 {
-strerror ();
+return strerror ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+	 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
 	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -2947,14 +3517,15 @@
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_cposix_strerror=no
+	ac_cv_lib_cposix_strerror=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_cposix_strerror" >&5
-echo "${ECHO_T}$ac_cv_lib_cposix_strerror" >&6
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_cposix_strerror" >&5
+echo "${ECHO_T}$ac_cv_lib_cposix_strerror" >&6; }
 if test $ac_cv_lib_cposix_strerror = yes; then
   LIBS="$LIBS -lcposix"
 fi
@@ -2969,8 +3540,8 @@
 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
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_prog_CC+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -2983,32 +3554,34 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_CC="${ac_tool_prefix}gcc"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 done
+IFS=$as_save_IFS
 
 fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
+  { echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}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
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -3021,36 +3594,51 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_CC="gcc"
     echo "$as_me:$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
-  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
+  { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
-  CC=$ac_ct_CC
+  if test "x$ac_ct_CC" = x; then
+    CC=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf at gnu.org." >&5
+echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf at gnu.org." >&2;}
+ac_tool_warned=yes ;;
+esac
+    CC=$ac_ct_CC
+  fi
 else
   CC="$ac_cv_prog_CC"
 fi
 
 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.
+          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
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_prog_CC+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -3063,74 +3651,34 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_CC="${ac_tool_prefix}cc"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 done
+IFS=$as_save_IFS
 
 fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
+  { echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
-fi
-if test -z "$ac_cv_prog_CC"; then
-  ac_ct_CC=$CC
-  # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_CC="cc"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
+
   fi
-done
-done
-
 fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
-else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
-fi
-
-  CC=$ac_ct_CC
-else
-  CC="$ac_cv_prog_CC"
-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
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_prog_CC+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -3144,7 +3692,7 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$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
@@ -3155,6 +3703,7 @@
   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.
@@ -3172,22 +3721,23 @@
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
+  { echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
+
 fi
 if test -z "$CC"; then
   if test -n "$ac_tool_prefix"; then
-  for ac_prog in cl
+  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
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_prog_CC+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -3200,36 +3750,38 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 done
+IFS=$as_save_IFS
 
 fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6
+  { echo "$as_me:$LINENO: result: $CC" >&5
+echo "${ECHO_T}$CC" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
+
     test -n "$CC" && break
   done
 fi
 if test -z "$CC"; then
   ac_ct_CC=$CC
-  for ac_prog in cl
+  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
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -3242,29 +3794,45 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_CC="$ac_prog"
     echo "$as_me:$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
-  echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6
+  { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+echo "${ECHO_T}$ac_ct_CC" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
+
   test -n "$ac_ct_CC" && break
 done
 
-  CC=$ac_ct_CC
+  if test "x$ac_ct_CC" = x; then
+    CC=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf at gnu.org." >&5
+echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf at gnu.org." >&2;}
+ac_tool_warned=yes ;;
+esac
+    CC=$ac_ct_CC
+  fi
 fi
 
 fi
@@ -3277,27 +3845,41 @@
    { (exit 1); exit 1; }; }
 
 # Provide some information about the compiler.
-echo "$as_me:$LINENO:" \
-     "checking for C compiler version" >&5
+echo "$as_me:$LINENO: checking for C compiler version" >&5
 ac_compiler=`set X $ac_compile; echo $2`
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
-  (eval $ac_compiler --version </dev/null >&5) 2>&5
+{ (ac_try="$ac_compiler --version >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compiler --version >&5") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5
-  (eval $ac_compiler -v </dev/null >&5) 2>&5
+{ (ac_try="$ac_compiler -v >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compiler -v >&5") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }
-{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V </dev/null >&5\"") >&5
-  (eval $ac_compiler -V </dev/null >&5) 2>&5
+{ (ac_try="$ac_compiler -V >&5"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compiler -V >&5") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }
 
-echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
-echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
+echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; }
 if test "${ac_cv_c_compiler_gnu+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -3320,23 +3902,36 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+	 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
 	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -3345,24 +3940,28 @@
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_compiler_gnu=no
+	ac_compiler_gnu=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 ac_cv_c_compiler_gnu=$ac_compiler_gnu
 
 fi
-echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
-echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
+{ echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
+echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; }
 GCC=`test $ac_compiler_gnu = yes && echo yes`
 ac_test_CFLAGS=${CFLAGS+set}
 ac_save_CFLAGS=$CFLAGS
-CFLAGS="-g"
-echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
-echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
+echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; }
 if test "${ac_cv_prog_cc_g+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
+  ac_save_c_werror_flag=$ac_c_werror_flag
+   ac_c_werror_flag=yes
+   ac_cv_prog_cc_g=no
+   CFLAGS="-g"
+   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
 cat confdefs.h >>conftest.$ac_ext
@@ -3378,23 +3977,36 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+	 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
 	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -3403,12 +4015,131 @@
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_prog_cc_g=no
+	CFLAGS=""
+      cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  :
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_c_werror_flag=$ac_save_c_werror_flag
+	 CFLAGS="-g"
+	 cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_cv_prog_cc_g=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
-echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
+
+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
+{ echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
+echo "${ECHO_T}$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
@@ -3424,12 +4155,12 @@
     CFLAGS=
   fi
 fi
-echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5
-echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
-if test "${ac_cv_prog_cc_stdc+set}" = set; then
+{ echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5
+echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; }
+if test "${ac_cv_prog_cc_c89+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_cv_prog_cc_stdc=no
+  ac_cv_prog_cc_c89=no
 ac_save_CC=$CC
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -3463,12 +4194,17 @@
 /* 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 -std1 is added to get
+   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 -std1.  */
+   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];
+
 int test (int i, double x);
 struct s1 {int (*f) (int a);};
 struct s2 {int (*f) (double a);};
@@ -3483,201 +4219,74 @@
   return 0;
 }
 _ACEOF
-# Don't try gcc -ansi; that turns off useful extensions and
-# breaks some systems' header files.
-# AIX			-qlanglvl=ansi
-# Ultrix and OSF/1	-std1
-# HP-UX 10.20 and later	-Ae
-# HP-UX older versions	-Aa -D_HPUX_SOURCE
-# SVR4			-Xc -D__EXTENSIONS__
-for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
+	-Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
 do
   CC="$ac_save_CC $ac_arg"
   rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+	 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
 	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
-  ac_cv_prog_cc_stdc=$ac_arg
-break
+  ac_cv_prog_cc_c89=$ac_arg
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
+
 fi
-rm -f conftest.err conftest.$ac_objext
+
+rm -f core conftest.err conftest.$ac_objext
+  test "x$ac_cv_prog_cc_c89" != "xno" && break
 done
-rm -f conftest.$ac_ext conftest.$ac_objext
+rm -f conftest.$ac_ext
 CC=$ac_save_CC
 
 fi
-
-case "x$ac_cv_prog_cc_stdc" in
-  x|xno)
-    echo "$as_me:$LINENO: result: none needed" >&5
-echo "${ECHO_T}none needed" >&6 ;;
+# AC_CACHE_VAL
+case "x$ac_cv_prog_cc_c89" in
+  x)
+    { echo "$as_me:$LINENO: result: none needed" >&5
+echo "${ECHO_T}none needed" >&6; } ;;
+  xno)
+    { echo "$as_me:$LINENO: result: unsupported" >&5
+echo "${ECHO_T}unsupported" >&6; } ;;
   *)
-    echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5
-echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
-    CC="$CC $ac_cv_prog_cc_stdc" ;;
+    CC="$CC $ac_cv_prog_cc_c89"
+    { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5
+echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;;
 esac
 
-# Some people use a C++ compiler to compile C.  Since we use `exit',
-# in C++ we need to declare it.  In case someone uses the same compiler
-# for both compiling C and C++ we need to have the C++ compiler decide
-# the declaration of exit, since it's the most demanding environment.
-cat >conftest.$ac_ext <<_ACEOF
-#ifndef __cplusplus
-  choke me
-#endif
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  for ac_declaration in \
-   '' \
-   'extern "C" void std::exit (int) throw (); using std::exit;' \
-   'extern "C" void std::exit (int); using std::exit;' \
-   'extern "C" void exit (int) throw ();' \
-   'extern "C" void exit (int);' \
-   'void exit (int);'
-do
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_declaration
-#include <stdlib.h>
-int
-main ()
-{
-exit (42);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  :
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-continue
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_declaration
-int
-main ()
-{
-exit (42);
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  break
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-done
-rm -f conftest*
-if test -n "$ac_declaration"; then
-  echo '#ifdef __cplusplus' >>confdefs.h
-  echo $ac_declaration      >>confdefs.h
-  echo '#endif'             >>confdefs.h
-fi
-
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -3686,8 +4295,8 @@
 
 depcc="$CC"   am_compiler_list=
 
-echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
-echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
+echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; }
 if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -3769,8 +4378,8 @@
 fi
 
 fi
-echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5
-echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6
+{ echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5
+echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6; }
 CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
 
 
@@ -3789,8 +4398,8 @@
 
 
 
-echo "$as_me:$LINENO: checking for ${CC-cc} option to accept ANSI C" >&5
-echo $ECHO_N "checking for ${CC-cc} option to accept ANSI C... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for ${CC-cc} option to accept ANSI C" >&5
+echo $ECHO_N "checking for ${CC-cc} option to accept ANSI C... $ECHO_C" >&6; }
 if test "${am_cv_prog_cc_stdc+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -3852,23 +4461,36 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+	 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
 	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -3877,19 +4499,21 @@
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
+
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 done
 CC="$ac_save_CC"
 
 fi
 
 if test -z "$am_cv_prog_cc_stdc"; then
-  echo "$as_me:$LINENO: result: none needed" >&5
-echo "${ECHO_T}none needed" >&6
+  { echo "$as_me:$LINENO: result: none needed" >&5
+echo "${ECHO_T}none needed" >&6; }
 else
-  echo "$as_me:$LINENO: result: $am_cv_prog_cc_stdc" >&5
-echo "${ECHO_T}$am_cv_prog_cc_stdc" >&6
+  { echo "$as_me:$LINENO: result: $am_cv_prog_cc_stdc" >&5
+echo "${ECHO_T}$am_cv_prog_cc_stdc" >&6; }
 fi
 case "x$am_cv_prog_cc_stdc" in
   x|xno) ;;
@@ -3901,8 +4525,70 @@
   if test -z "`echo "$CFLAGS" | grep "\-Wall" 2> /dev/null`" ; then
     CFLAGS="$CFLAGS -Wall"
   fi
+  # gcc < 4.0 does not know '-Wno-pointer-sign'. Try to find out
+  # whether we can set this option or not.
+  CFLAGS_orig=$CFLAGS
+  CFLAGS="$CFLAGS -Wno-pointer-sign"
+  cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <stdio.h>
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  :
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	CFLAGS=$CFLAGS_orig
 fi
 
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+
 GETTEXT_PACKAGE=gtkpod
 
 
@@ -3913,8 +4599,8 @@
 
 # Extract the first word of "pkg-config", so it can be a program name with args.
 set dummy pkg-config; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_prog_have_pkgconfig+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -3927,26 +4613,28 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_have_pkgconfig=""ok""
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 done
+IFS=$as_save_IFS
 
 fi
 fi
 have_pkgconfig=$ac_cv_prog_have_pkgconfig
 if test -n "$have_pkgconfig"; then
-  echo "$as_me:$LINENO: result: $have_pkgconfig" >&5
-echo "${ECHO_T}$have_pkgconfig" >&6
+  { echo "$as_me:$LINENO: result: $have_pkgconfig" >&5
+echo "${ECHO_T}$have_pkgconfig" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
 
+
 if test "y$have_pkgconfig" = "y"; then
 	{ { echo "$as_me:$LINENO: error: **** pkg-config required (http://www.freedesktop.org/software/pkgconfig)
 See \`config.log' for more details." >&5
@@ -3961,8 +4649,8 @@
 	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
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_path_PKG_CONFIG+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -3977,34 +4665,35 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
     echo "$as_me:$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
-  echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5
-echo "${ECHO_T}$PKG_CONFIG" >&6
+  { echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5
+echo "${ECHO_T}$PKG_CONFIG" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
+
 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
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -4019,28 +4708,42 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 done
+IFS=$as_save_IFS
 
   ;;
 esac
 fi
 ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
-
 if test -n "$ac_pt_PKG_CONFIG"; then
-  echo "$as_me:$LINENO: result: $ac_pt_PKG_CONFIG" >&5
-echo "${ECHO_T}$ac_pt_PKG_CONFIG" >&6
+  { echo "$as_me:$LINENO: result: $ac_pt_PKG_CONFIG" >&5
+echo "${ECHO_T}$ac_pt_PKG_CONFIG" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
-  PKG_CONFIG=$ac_pt_PKG_CONFIG
+  if test "x$ac_pt_PKG_CONFIG" = x; then
+    PKG_CONFIG=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf at gnu.org." >&5
+echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
+whose name does not start with the host triplet.  If you think this
+configuration is useful to you, please write to autoconf at gnu.org." >&2;}
+ac_tool_warned=yes ;;
+esac
+    PKG_CONFIG=$ac_pt_PKG_CONFIG
+  fi
 else
   PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
 fi
@@ -4048,73 +4751,80 @@
 fi
 if test -n "$PKG_CONFIG"; then
 	_pkg_min_version=0.9.0
-	echo "$as_me:$LINENO: checking pkg-config is at least version $_pkg_min_version" >&5
-echo $ECHO_N "checking pkg-config is at least version $_pkg_min_version... $ECHO_C" >&6
+	{ echo "$as_me:$LINENO: checking pkg-config is at least version $_pkg_min_version" >&5
+echo $ECHO_N "checking pkg-config is at least version $_pkg_min_version... $ECHO_C" >&6; }
 	if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
-		echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6
+		{ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
 	else
-		echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+		{ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 		PKG_CONFIG=""
 	fi
 
 fi
 
 pkg_failed=no
-echo "$as_me:$LINENO: checking for PACKAGE_CFLAGS" >&5
-echo $ECHO_N "checking for PACKAGE_CFLAGS... $ECHO_C" >&6
-if test "${pkg_cv_PACKAGE_CFLAGS+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test "x$ac_cv_env_PACKAGE_CFLAGS_set" = "xset"; then
-	pkg_cv_PACKAGE_CFLAGS=$ac_cv_env_PACKAGE_CFLAGS_value
-elif test -n "$PKG_CONFIG"; then
-	if { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists \"gtk+-2.0 >= 2.4.0 gthread-2.0 >= 0.14.0 glib-2.0 > 2.4.0 libglade-2.0  >=  2.4.0 gmodule-2.0 libgpod-1.0 >= 0.3.0\" >/dev/null 2>&1") >&5
-  ($PKG_CONFIG --exists "gtk+-2.0 >= 2.4.0 gthread-2.0 >= 0.14.0 glib-2.0 > 2.4.0 libglade-2.0  >=  2.4.0 gmodule-2.0 libgpod-1.0 >= 0.3.0" >/dev/null 2>&1) 2>&5
+{ echo "$as_me:$LINENO: checking for PACKAGE" >&5
+echo $ECHO_N "checking for PACKAGE... $ECHO_C" >&6; }
+
+if test -n "$PKG_CONFIG"; then
+    if test -n "$PACKAGE_CFLAGS"; then
+        pkg_cv_PACKAGE_CFLAGS="$PACKAGE_CFLAGS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= 2.4.0 gthread-2.0 >= 0.14.0 glib-2.0 > 2.4.0 libglade-2.0  >=  2.4.0 gmodule-2.0 libgpod-1.0 >= 0.4.0\"") >&5
+  ($PKG_CONFIG --exists --print-errors "gtk+-2.0 >= 2.4.0 gthread-2.0 >= 0.14.0 glib-2.0 > 2.4.0 libglade-2.0  >=  2.4.0 gmodule-2.0 libgpod-1.0 >= 0.4.0") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; then
-		pkg_cv_PACKAGE_CFLAGS=`$PKG_CONFIG --cflags "gtk+-2.0 >= 2.4.0 gthread-2.0 >= 0.14.0 glib-2.0 > 2.4.0 libglade-2.0  >=  2.4.0 gmodule-2.0 libgpod-1.0 >= 0.3.0" 2>/dev/null`
-	else
-		pkg_failed=yes
-	fi
+  pkg_cv_PACKAGE_CFLAGS=`$PKG_CONFIG --cflags "gtk+-2.0 >= 2.4.0 gthread-2.0 >= 0.14.0 glib-2.0 > 2.4.0 libglade-2.0  >=  2.4.0 gmodule-2.0 libgpod-1.0 >= 0.4.0" 2>/dev/null`
 else
+  pkg_failed=yes
+fi
+    fi
+else
 	pkg_failed=untried
 fi
-fi
-echo "$as_me:$LINENO: result: $pkg_cv_PACKAGE_CFLAGS" >&5
-echo "${ECHO_T}$pkg_cv_PACKAGE_CFLAGS" >&6
-echo "$as_me:$LINENO: checking for PACKAGE_LIBS" >&5
-echo $ECHO_N "checking for PACKAGE_LIBS... $ECHO_C" >&6
-if test "${pkg_cv_PACKAGE_LIBS+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  if test "x$ac_cv_env_PACKAGE_LIBS_set" = "xset"; then
-	pkg_cv_PACKAGE_LIBS=$ac_cv_env_PACKAGE_LIBS_value
-elif test -n "$PKG_CONFIG"; then
-	if { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists \"gtk+-2.0 >= 2.4.0 gthread-2.0 >= 0.14.0 glib-2.0 > 2.4.0 libglade-2.0  >=  2.4.0 gmodule-2.0 libgpod-1.0 >= 0.3.0\" >/dev/null 2>&1") >&5
-  ($PKG_CONFIG --exists "gtk+-2.0 >= 2.4.0 gthread-2.0 >= 0.14.0 glib-2.0 > 2.4.0 libglade-2.0  >=  2.4.0 gmodule-2.0 libgpod-1.0 >= 0.3.0" >/dev/null 2>&1) 2>&5
+if test -n "$PKG_CONFIG"; then
+    if test -n "$PACKAGE_LIBS"; then
+        pkg_cv_PACKAGE_LIBS="$PACKAGE_LIBS"
+    else
+        if test -n "$PKG_CONFIG" && \
+    { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gtk+-2.0 >= 2.4.0 gthread-2.0 >= 0.14.0 glib-2.0 > 2.4.0 libglade-2.0  >=  2.4.0 gmodule-2.0 libgpod-1.0 >= 0.4.0\"") >&5
+  ($PKG_CONFIG --exists --print-errors "gtk+-2.0 >= 2.4.0 gthread-2.0 >= 0.14.0 glib-2.0 > 2.4.0 libglade-2.0  >=  2.4.0 gmodule-2.0 libgpod-1.0 >= 0.4.0") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; then
-		pkg_cv_PACKAGE_LIBS=`$PKG_CONFIG --libs "gtk+-2.0 >= 2.4.0 gthread-2.0 >= 0.14.0 glib-2.0 > 2.4.0 libglade-2.0  >=  2.4.0 gmodule-2.0 libgpod-1.0 >= 0.3.0" 2>/dev/null`
-	else
-		pkg_failed=yes
-	fi
+  pkg_cv_PACKAGE_LIBS=`$PKG_CONFIG --libs "gtk+-2.0 >= 2.4.0 gthread-2.0 >= 0.14.0 glib-2.0 > 2.4.0 libglade-2.0  >=  2.4.0 gmodule-2.0 libgpod-1.0 >= 0.4.0" 2>/dev/null`
 else
+  pkg_failed=yes
+fi
+    fi
+else
 	pkg_failed=untried
 fi
-fi
-echo "$as_me:$LINENO: result: $pkg_cv_PACKAGE_LIBS" >&5
-echo "${ECHO_T}$pkg_cv_PACKAGE_LIBS" >&6
 
+
+
 if test $pkg_failed = yes; then
-	PACKAGE_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gtk+-2.0 >= 2.4.0 gthread-2.0 >= 0.14.0 glib-2.0 > 2.4.0 libglade-2.0  >=  2.4.0 gmodule-2.0 libgpod-1.0 >= 0.3.0"`
+
+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
+	        PACKAGE_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "gtk+-2.0 >= 2.4.0 gthread-2.0 >= 0.14.0 glib-2.0 > 2.4.0 libglade-2.0  >=  2.4.0 gmodule-2.0 libgpod-1.0 >= 0.4.0"`
+        else
+	        PACKAGE_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gtk+-2.0 >= 2.4.0 gthread-2.0 >= 0.14.0 glib-2.0 > 2.4.0 libglade-2.0  >=  2.4.0 gmodule-2.0 libgpod-1.0 >= 0.4.0"`
+        fi
 	# Put the nasty error message in config.log where it belongs
-	echo "$PACKAGE_PKG_ERRORS" 1>&5
+	echo "$PACKAGE_PKG_ERRORS" >&5
 
-	{ { echo "$as_me:$LINENO: error: *** $PACKAGE_PKG_ERRORS
+	{ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
+                { { echo "$as_me:$LINENO: error: *** $PACKAGE_PKG_ERRORS
 See \`config.log' for more details." >&5
 echo "$as_me: error: *** $PACKAGE_PKG_ERRORS
 See \`config.log' for more details." >&2;}
@@ -4128,6 +4838,8 @@
 else
 	PACKAGE_CFLAGS=$pkg_cv_PACKAGE_CFLAGS
 	PACKAGE_LIBS=$pkg_cv_PACKAGE_LIBS
+        { echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6; }
 	:
 fi
 
@@ -4137,8 +4849,8 @@
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_prog_LEX+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -4151,233 +4863,196 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_LEX="$ac_prog"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 done
+IFS=$as_save_IFS
 
 fi
 fi
 LEX=$ac_cv_prog_LEX
 if test -n "$LEX"; then
-  echo "$as_me:$LINENO: result: $LEX" >&5
-echo "${ECHO_T}$LEX" >&6
+  { echo "$as_me:$LINENO: result: $LEX" >&5
+echo "${ECHO_T}$LEX" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
+
   test -n "$LEX" && break
 done
 test -n "$LEX" || LEX=":"
 
-if test -z "$LEXLIB"
-then
-  echo "$as_me:$LINENO: checking for yywrap in -lfl" >&5
-echo $ECHO_N "checking for yywrap in -lfl... $ECHO_C" >&6
-if test "${ac_cv_lib_fl_yywrap+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lfl  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
+if test "x$LEX" != "x:"; then
+  cat >conftest.l <<_ACEOF
+%%
+a { ECHO; }
+b { REJECT; }
+c { yymore (); }
+d { yyless (1); }
+e { yyless (input () != 0); }
+f { unput (yytext[0]); }
+. { BEGIN INITIAL; }
+%%
+#ifdef YYTEXT_POINTER
+extern char *yytext;
 #endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char yywrap ();
 int
-main ()
+main (void)
 {
-yywrap ();
-  ;
-  return 0;
+  return ! yylex () + ! yywrap ();
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+{ (ac_try="$LEX conftest.l"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$LEX conftest.l") 2>&5
   ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_lib_fl_yywrap=yes
+  (exit $ac_status); }
+{ echo "$as_me:$LINENO: checking lex output file root" >&5
+echo $ECHO_N "checking lex output file root... $ECHO_C" >&6; }
+if test "${ac_cv_prog_lex_root+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_fl_yywrap=no
+if test -f lex.yy.c; then
+  ac_cv_prog_lex_root=lex.yy
+elif test -f lexyy.c; then
+  ac_cv_prog_lex_root=lexyy
+else
+  { { echo "$as_me:$LINENO: error: cannot find output from $LEX; giving up" >&5
+echo "$as_me: error: cannot find output from $LEX; giving up" >&2;}
+   { (exit 1); exit 1; }; }
 fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_fl_yywrap" >&5
-echo "${ECHO_T}$ac_cv_lib_fl_yywrap" >&6
-if test $ac_cv_lib_fl_yywrap = yes; then
-  LEXLIB="-lfl"
-else
-  echo "$as_me:$LINENO: checking for yywrap in -ll" >&5
-echo $ECHO_N "checking for yywrap in -ll... $ECHO_C" >&6
-if test "${ac_cv_lib_l_yywrap+set}" = set; then
+{ echo "$as_me:$LINENO: result: $ac_cv_prog_lex_root" >&5
+echo "${ECHO_T}$ac_cv_prog_lex_root" >&6; }
+LEX_OUTPUT_ROOT=$ac_cv_prog_lex_root
+
+if test -z "${LEXLIB+set}"; then
+  { echo "$as_me:$LINENO: checking lex library" >&5
+echo $ECHO_N "checking lex library... $ECHO_C" >&6; }
+if test "${ac_cv_lib_lex+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ll  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char yywrap ();
-int
-main ()
-{
-yywrap ();
-  ;
-  return 0;
-}
+    ac_save_LIBS=$LIBS
+    ac_cv_lib_lex='none needed'
+    for ac_lib in '' -lfl -ll; do
+      LIBS="$ac_lib $ac_save_LIBS"
+      cat >conftest.$ac_ext <<_ACEOF
+`cat $LEX_OUTPUT_ROOT.c`
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+	 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
 	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
-  ac_cv_lib_l_yywrap=yes
+  ac_cv_lib_lex=$ac_lib
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_l_yywrap=no
-fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_l_yywrap" >&5
-echo "${ECHO_T}$ac_cv_lib_l_yywrap" >&6
-if test $ac_cv_lib_l_yywrap = yes; then
-  LEXLIB="-ll"
-fi
 
 fi
 
-fi
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+      test "$ac_cv_lib_lex" != 'none needed' && break
+    done
+    LIBS=$ac_save_LIBS
 
-if test "x$LEX" != "x:"; then
-  echo "$as_me:$LINENO: checking lex output file root" >&5
-echo $ECHO_N "checking lex output file root... $ECHO_C" >&6
-if test "${ac_cv_prog_lex_root+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  # The minimal lex program is just a single line: %%.  But some broken lexes
-# (Solaris, I think it was) want two %% lines, so accommodate them.
-cat >conftest.l <<_ACEOF
-%%
-%%
-_ACEOF
-{ (eval echo "$as_me:$LINENO: \"$LEX conftest.l\"") >&5
-  (eval $LEX conftest.l) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-if test -f lex.yy.c; then
-  ac_cv_prog_lex_root=lex.yy
-elif test -f lexyy.c; then
-  ac_cv_prog_lex_root=lexyy
-else
-  { { echo "$as_me:$LINENO: error: cannot find output from $LEX; giving up" >&5
-echo "$as_me: error: cannot find output from $LEX; giving up" >&2;}
-   { (exit 1); exit 1; }; }
 fi
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_lex" >&5
+echo "${ECHO_T}$ac_cv_lib_lex" >&6; }
+  test "$ac_cv_lib_lex" != 'none needed' && LEXLIB=$ac_cv_lib_lex
 fi
-echo "$as_me:$LINENO: result: $ac_cv_prog_lex_root" >&5
-echo "${ECHO_T}$ac_cv_prog_lex_root" >&6
-rm -f conftest.l
-LEX_OUTPUT_ROOT=$ac_cv_prog_lex_root
 
-echo "$as_me:$LINENO: checking whether yytext is a pointer" >&5
-echo $ECHO_N "checking whether yytext is a pointer... $ECHO_C" >&6
+
+{ echo "$as_me:$LINENO: checking whether yytext is a pointer" >&5
+echo $ECHO_N "checking whether yytext is a pointer... $ECHO_C" >&6; }
 if test "${ac_cv_prog_lex_yytext_pointer+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   # POSIX says lex can declare yytext either as a pointer or an array; the
-# default is implementation-dependent. Figure out which it is, since
+# default is implementation-dependent.  Figure out which it is, since
 # not all implementations provide the %pointer and %array declarations.
 ac_cv_prog_lex_yytext_pointer=no
-echo 'extern char *yytext;' >>$LEX_OUTPUT_ROOT.c
 ac_save_LIBS=$LIBS
-LIBS="$LIBS $LEXLIB"
+LIBS="$LEXLIB $ac_save_LIBS"
 cat >conftest.$ac_ext <<_ACEOF
+#define YYTEXT_POINTER 1
 `cat $LEX_OUTPUT_ROOT.c`
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+	 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
 	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -4386,15 +5061,16 @@
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
+
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_save_LIBS
-rm -f "${LEX_OUTPUT_ROOT}.c"
 
 fi
-echo "$as_me:$LINENO: result: $ac_cv_prog_lex_yytext_pointer" >&5
-echo "${ECHO_T}$ac_cv_prog_lex_yytext_pointer" >&6
+{ echo "$as_me:$LINENO: result: $ac_cv_prog_lex_yytext_pointer" >&5
+echo "${ECHO_T}$ac_cv_prog_lex_yytext_pointer" >&6; }
 if test $ac_cv_prog_lex_yytext_pointer = yes; then
 
 cat >>confdefs.h <<\_ACEOF
@@ -4402,6 +5078,7 @@
 _ACEOF
 
 fi
+rm -f conftest.l $LEX_OUTPUT_ROOT.c
 
 fi
 if test "$LEX" = :; then
@@ -4419,8 +5096,8 @@
 
 # Extract the first word of "mount", so it can be a program name with args.
 set dummy mount; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_path_MOUNT+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -4435,32 +5112,33 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_MOUNT="$as_dir/$ac_word$ac_exec_ext"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 done
+IFS=$as_save_IFS
 
   ;;
 esac
 fi
 MOUNT=$ac_cv_path_MOUNT
-
 if test -n "$MOUNT"; then
-  echo "$as_me:$LINENO: result: $MOUNT" >&5
-echo "${ECHO_T}$MOUNT" >&6
+  { echo "$as_me:$LINENO: result: $MOUNT" >&5
+echo "${ECHO_T}$MOUNT" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
 
+
 # Extract the first word of "umount", so it can be a program name with args.
 set dummy umount; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_path_UMOUNT+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -4475,37 +5153,38 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_UMOUNT="$as_dir/$ac_word$ac_exec_ext"
     echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
 done
+IFS=$as_save_IFS
 
   ;;
 esac
 fi
 UMOUNT=$ac_cv_path_UMOUNT
-
 if test -n "$UMOUNT"; then
-  echo "$as_me:$LINENO: result: $UMOUNT" >&5
-echo "${ECHO_T}$UMOUNT" >&6
+  { echo "$as_me:$LINENO: result: $UMOUNT" >&5
+echo "${ECHO_T}$UMOUNT" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
 
 
-ALL_LINGUAS="de fr he it ja sv"
+
+ALL_LINGUAS="de es fr he it ja sv"
 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
-echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
-echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
+echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6; }
 # On Suns, sometimes $CPP names a directory.
 if test -n "$CPP" && test -d "$CPP"; then
   CPP=
@@ -4539,8 +5218,13 @@
 #endif
 		     Syntax error
 _ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
@@ -4565,9 +5249,10 @@
   # Broken: fails on valid input.
 continue
 fi
+
 rm -f conftest.err conftest.$ac_ext
 
-  # OK, works on sane cases.  Now check whether non-existent headers
+  # OK, works on sane cases.  Now check whether nonexistent headers
   # can be detected and how.
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -4577,8 +5262,13 @@
 /* end confdefs.h.  */
 #include <ac_nonexistent.h>
 _ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
@@ -4605,6 +5295,7 @@
 ac_preproc_ok=:
 break
 fi
+
 rm -f conftest.err conftest.$ac_ext
 
 done
@@ -4622,8 +5313,8 @@
 else
   ac_cv_prog_CPP=$CPP
 fi
-echo "$as_me:$LINENO: result: $CPP" >&5
-echo "${ECHO_T}$CPP" >&6
+{ echo "$as_me:$LINENO: result: $CPP" >&5
+echo "${ECHO_T}$CPP" >&6; }
 ac_preproc_ok=false
 for ac_c_preproc_warn_flag in '' yes
 do
@@ -4646,8 +5337,13 @@
 #endif
 		     Syntax error
 _ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
@@ -4672,9 +5368,10 @@
   # Broken: fails on valid input.
 continue
 fi
+
 rm -f conftest.err conftest.$ac_ext
 
-  # OK, works on sane cases.  Now check whether non-existent headers
+  # OK, works on sane cases.  Now check whether nonexistent headers
   # can be detected and how.
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -4684,8 +5381,13 @@
 /* end confdefs.h.  */
 #include <ac_nonexistent.h>
 _ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
@@ -4712,6 +5414,7 @@
 ac_preproc_ok=:
 break
 fi
+
 rm -f conftest.err conftest.$ac_ext
 
 done
@@ -4734,23 +5437,170 @@
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
-echo "$as_me:$LINENO: checking for egrep" >&5
-echo $ECHO_N "checking for egrep... $ECHO_C" >&6
-if test "${ac_cv_prog_egrep+set}" = set; then
+{ echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5
+echo $ECHO_N "checking for grep that handles long lines and -e... $ECHO_C" >&6; }
+if test "${ac_cv_path_GREP+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
-  if echo a | (grep -E '(a|b)') >/dev/null 2>&1
-    then ac_cv_prog_egrep='grep -E'
-    else ac_cv_prog_egrep='egrep'
+  # Extract the first word of "grep ggrep" to use in msg output
+if test -z "$GREP"; then
+set dummy grep ggrep; ac_prog_name=$2
+if test "${ac_cv_path_GREP+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  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_executable_p "$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
+  echo $ECHO_N "0123456789$ECHO_C" >"conftest.in"
+  while :
+  do
+    cat "conftest.in" "conftest.in" >"conftest.tmp"
+    mv "conftest.tmp" "conftest.in"
+    cp "conftest.in" "conftest.nl"
+    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
+    ac_count=`expr $ac_count + 1`
+    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
+
+done
+IFS=$as_save_IFS
+
+
 fi
-echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5
-echo "${ECHO_T}$ac_cv_prog_egrep" >&6
- EGREP=$ac_cv_prog_egrep
 
+GREP="$ac_cv_path_GREP"
+if test -z "$GREP"; then
+  { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
+echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
+   { (exit 1); exit 1; }; }
+fi
 
-echo "$as_me:$LINENO: checking for ANSI C header files" >&5
-echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
+else
+  ac_cv_path_GREP=$GREP
+fi
+
+
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5
+echo "${ECHO_T}$ac_cv_path_GREP" >&6; }
+ GREP="$ac_cv_path_GREP"
+
+
+{ echo "$as_me:$LINENO: checking for egrep" >&5
+echo $ECHO_N "checking for egrep... $ECHO_C" >&6; }
+if test "${ac_cv_path_EGREP+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
+   then ac_cv_path_EGREP="$GREP -E"
+   else
+     # Extract the first word of "egrep" to use in msg output
+if test -z "$EGREP"; then
+set dummy egrep; ac_prog_name=$2
+if test "${ac_cv_path_EGREP+set}" = set; then
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  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_executable_p "$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
+  echo $ECHO_N "0123456789$ECHO_C" >"conftest.in"
+  while :
+  do
+    cat "conftest.in" "conftest.in" >"conftest.tmp"
+    mv "conftest.tmp" "conftest.in"
+    cp "conftest.in" "conftest.nl"
+    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
+    ac_count=`expr $ac_count + 1`
+    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
+
+
+    $ac_path_EGREP_found && break 3
+  done
+done
+
+done
+IFS=$as_save_IFS
+
+
+fi
+
+EGREP="$ac_cv_path_EGREP"
+if test -z "$EGREP"; then
+  { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
+echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
+   { (exit 1); exit 1; }; }
+fi
+
+else
+  ac_cv_path_EGREP=$EGREP
+fi
+
+
+   fi
+fi
+{ echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5
+echo "${ECHO_T}$ac_cv_path_EGREP" >&6; }
+ EGREP="$ac_cv_path_EGREP"
+
+
+{ echo "$as_me:$LINENO: checking for ANSI C header files" >&5
+echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; }
 if test "${ac_cv_header_stdc+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -4774,23 +5624,36 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+	 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
 	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -4799,10 +5662,11 @@
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_header_stdc=no
+	ac_cv_header_stdc=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
 
+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 >conftest.$ac_ext <<_ACEOF
@@ -4857,6 +5721,7 @@
 cat >>conftest.$ac_ext <<_ACEOF
 /* 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))
@@ -4876,18 +5741,27 @@
   for (i = 0; i < 256; i++)
     if (XOR (islower (i), ISLOWER (i))
 	|| toupper (i) != TOUPPER (i))
-      exit(2);
-  exit (0);
+      return 2;
+  return 0;
 }
 _ACEOF
 rm -f conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>&5
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -4900,12 +5774,14 @@
 ( exit $ac_status )
 ac_cv_header_stdc=no
 fi
-rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
+
+
 fi
 fi
-echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
-echo "${ECHO_T}$ac_cv_header_stdc" >&6
+{ echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
+echo "${ECHO_T}$ac_cv_header_stdc" >&6; }
 if test $ac_cv_header_stdc = yes; then
 
 cat >>confdefs.h <<\_ACEOF
@@ -4928,9 +5804,9 @@
 		  inttypes.h stdint.h unistd.h
 do
 as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
+{ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
@@ -4944,23 +5820,36 @@
 #include <$ac_header>
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+	 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
 	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -4969,12 +5858,14 @@
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-eval "$as_ac_Header=no"
+	eval "$as_ac_Header=no"
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
 if test `eval echo '${'$as_ac_Header'}'` = yes; then
   cat >>confdefs.h <<_ACEOF
 #define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
@@ -4990,18 +5881,19 @@
 for ac_header in locale.h
 do
 as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
-  echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
 else
   # Is the header compilable?
-echo "$as_me:$LINENO: checking $ac_header usability" >&5
-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -5012,23 +5904,36 @@
 #include <$ac_header>
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+	 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
 	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -5037,15 +5942,16 @@
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_header_compiler=no
+	ac_header_compiler=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
 
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
 # Is the header present?
-echo "$as_me:$LINENO: checking $ac_header presence" >&5
-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -5054,8 +5960,13 @@
 /* end confdefs.h.  */
 #include <$ac_header>
 _ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
@@ -5079,9 +5990,10 @@
 
   ac_header_preproc=no
 fi
+
 rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
 
 # So?  What about this header?
 case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
@@ -5105,25 +6017,19 @@
 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
     { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-    (
-      cat <<\_ASBOX
-## ------------------------------------------ ##
-## Report this to the AC_PACKAGE_NAME lists.  ##
-## ------------------------------------------ ##
-_ASBOX
-    ) |
-      sed "s/^/$as_me: WARNING:     /" >&2
+
     ;;
 esac
-echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
+{ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   eval "$as_ac_Header=\$ac_header_preproc"
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
 
 fi
 if test `eval echo '${'$as_ac_Header'}'` = yes; then
@@ -5136,8 +6042,8 @@
 done
 
     if test $ac_cv_header_locale_h = yes; then
-    echo "$as_me:$LINENO: checking for LC_MESSAGES" >&5
-echo $ECHO_N "checking for LC_MESSAGES... $ECHO_C" >&6
+    { echo "$as_me:$LINENO: checking for LC_MESSAGES" >&5
+echo $ECHO_N "checking for LC_MESSAGES... $ECHO_C" >&6; }
 if test "${am_cv_val_LC_MESSAGES+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -5157,23 +6063,36 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+	 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
 	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -5182,13 +6101,14 @@
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-am_cv_val_LC_MESSAGES=no
+	am_cv_val_LC_MESSAGES=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: $am_cv_val_LC_MESSAGES" >&5
-echo "${ECHO_T}$am_cv_val_LC_MESSAGES" >&6
+{ echo "$as_me:$LINENO: result: $am_cv_val_LC_MESSAGES" >&5
+echo "${ECHO_T}$am_cv_val_LC_MESSAGES" >&6; }
     if test $am_cv_val_LC_MESSAGES = yes; then
 
 cat >>confdefs.h <<\_ACEOF
@@ -5207,17 +6127,17 @@
     INTLLIBS=
 
     if test "${ac_cv_header_libintl_h+set}" = set; then
-  echo "$as_me:$LINENO: checking for libintl.h" >&5
-echo $ECHO_N "checking for libintl.h... $ECHO_C" >&6
+  { echo "$as_me:$LINENO: checking for libintl.h" >&5
+echo $ECHO_N "checking for libintl.h... $ECHO_C" >&6; }
 if test "${ac_cv_header_libintl_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 fi
-echo "$as_me:$LINENO: result: $ac_cv_header_libintl_h" >&5
-echo "${ECHO_T}$ac_cv_header_libintl_h" >&6
+{ echo "$as_me:$LINENO: result: $ac_cv_header_libintl_h" >&5
+echo "${ECHO_T}$ac_cv_header_libintl_h" >&6; }
 else
   # Is the header compilable?
-echo "$as_me:$LINENO: checking libintl.h usability" >&5
-echo $ECHO_N "checking libintl.h usability... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking libintl.h usability" >&5
+echo $ECHO_N "checking libintl.h usability... $ECHO_C" >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -5228,23 +6148,36 @@
 #include <libintl.h>
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+	 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
 	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -5253,15 +6186,16 @@
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_header_compiler=no
+	ac_header_compiler=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
 
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
 # Is the header present?
-echo "$as_me:$LINENO: checking libintl.h presence" >&5
-echo $ECHO_N "checking libintl.h presence... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking libintl.h presence" >&5
+echo $ECHO_N "checking libintl.h presence... $ECHO_C" >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -5270,8 +6204,13 @@
 /* end confdefs.h.  */
 #include <libintl.h>
 _ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
@@ -5295,9 +6234,10 @@
 
   ac_header_preproc=no
 fi
+
 rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
 
 # So?  What about this header?
 case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
@@ -5321,25 +6261,18 @@
 echo "$as_me: WARNING: libintl.h: proceeding with the preprocessor's result" >&2;}
     { echo "$as_me:$LINENO: WARNING: libintl.h: in the future, the compiler will take precedence" >&5
 echo "$as_me: WARNING: libintl.h: in the future, the compiler will take precedence" >&2;}
-    (
-      cat <<\_ASBOX
-## ------------------------------------------ ##
-## Report this to the AC_PACKAGE_NAME lists.  ##
-## ------------------------------------------ ##
-_ASBOX
-    ) |
-      sed "s/^/$as_me: WARNING:     /" >&2
+
     ;;
 esac
-echo "$as_me:$LINENO: checking for libintl.h" >&5
-echo $ECHO_N "checking for libintl.h... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for libintl.h" >&5
+echo $ECHO_N "checking for libintl.h... $ECHO_C" >&6; }
 if test "${ac_cv_header_libintl_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   ac_cv_header_libintl_h=$ac_header_preproc
 fi
-echo "$as_me:$LINENO: result: $ac_cv_header_libintl_h" >&5
-echo "${ECHO_T}$ac_cv_header_libintl_h" >&6
+{ echo "$as_me:$LINENO: result: $ac_cv_header_libintl_h" >&5
+echo "${ECHO_T}$ac_cv_header_libintl_h" >&6; }
 
 fi
 if test $ac_cv_header_libintl_h = yes; then
@@ -5349,8 +6282,8 @@
       #
       # First check in libc
       #
-      echo "$as_me:$LINENO: checking for ngettext in libc" >&5
-echo $ECHO_N "checking for ngettext in libc... $ECHO_C" >&6
+      { echo "$as_me:$LINENO: checking for ngettext in libc" >&5
+echo $ECHO_N "checking for ngettext in libc... $ECHO_C" >&6; }
 if test "${gt_cv_func_ngettext_libc+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -5372,23 +6305,36 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+	 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
 	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -5397,18 +6343,19 @@
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-gt_cv_func_ngettext_libc=no
+	gt_cv_func_ngettext_libc=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 
 fi
-echo "$as_me:$LINENO: result: $gt_cv_func_ngettext_libc" >&5
-echo "${ECHO_T}$gt_cv_func_ngettext_libc" >&6
+{ echo "$as_me:$LINENO: result: $gt_cv_func_ngettext_libc" >&5
+echo "${ECHO_T}$gt_cv_func_ngettext_libc" >&6; }
 
       if test "$gt_cv_func_ngettext_libc" = "yes" ; then
-	      echo "$as_me:$LINENO: checking for dgettext in libc" >&5
-echo $ECHO_N "checking for dgettext in libc... $ECHO_C" >&6
+	      { echo "$as_me:$LINENO: checking for dgettext in libc" >&5
+echo $ECHO_N "checking for dgettext in libc... $ECHO_C" >&6; }
 if test "${gt_cv_func_dgettext_libc+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -5430,23 +6377,36 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+	 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
 	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -5455,14 +6415,15 @@
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-gt_cv_func_dgettext_libc=no
+	gt_cv_func_dgettext_libc=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 
 fi
-echo "$as_me:$LINENO: result: $gt_cv_func_dgettext_libc" >&5
-echo "${ECHO_T}$gt_cv_func_dgettext_libc" >&6
+{ echo "$as_me:$LINENO: result: $gt_cv_func_dgettext_libc" >&5
+echo "${ECHO_T}$gt_cv_func_dgettext_libc" >&6; }
       fi
 
       if test "$gt_cv_func_ngettext_libc" = "yes" ; then
@@ -5470,9 +6431,9 @@
 for ac_func in bind_textdomain_codeset
 do
 as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
+{ echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
@@ -5498,52 +6459,59 @@
 
 #undef $ac_func
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* 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
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char $ac_func ();
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
     something starting with __ and the normal name is an alias.  */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+#if defined __stub_$ac_func || defined __stub___$ac_func
 choke me
-#else
-char (*f) () = $ac_func;
 #endif
-#ifdef __cplusplus
-}
-#endif
 
 int
 main ()
 {
-return f != $ac_func;
+return $ac_func ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+	 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
 	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -5552,13 +6520,15 @@
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-eval "$as_ac_var=no"
+	eval "$as_ac_var=no"
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+ac_res=`eval echo '${'$as_ac_var'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
 if test `eval echo '${'$as_ac_var'}'` = yes; then
   cat >>confdefs.h <<_ACEOF
 #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
@@ -5576,8 +6546,8 @@
 	 || test "$gt_cv_func_ngettext_libc" != "yes" \
          || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then
 
-        echo "$as_me:$LINENO: checking for bindtextdomain in -lintl" >&5
-echo $ECHO_N "checking for bindtextdomain in -lintl... $ECHO_C" >&6
+        { echo "$as_me:$LINENO: checking for bindtextdomain in -lintl" >&5
+echo $ECHO_N "checking for bindtextdomain in -lintl... $ECHO_C" >&6; }
 if test "${ac_cv_lib_intl_bindtextdomain+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -5590,39 +6560,52 @@
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* 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
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char bindtextdomain ();
 int
 main ()
 {
-bindtextdomain ();
+return bindtextdomain ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+	 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
 	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -5631,17 +6614,18 @@
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_intl_bindtextdomain=no
+	ac_cv_lib_intl_bindtextdomain=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_intl_bindtextdomain" >&5
-echo "${ECHO_T}$ac_cv_lib_intl_bindtextdomain" >&6
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_intl_bindtextdomain" >&5
+echo "${ECHO_T}$ac_cv_lib_intl_bindtextdomain" >&6; }
 if test $ac_cv_lib_intl_bindtextdomain = yes; then
-  echo "$as_me:$LINENO: checking for ngettext in -lintl" >&5
-echo $ECHO_N "checking for ngettext in -lintl... $ECHO_C" >&6
+  { echo "$as_me:$LINENO: checking for ngettext in -lintl" >&5
+echo $ECHO_N "checking for ngettext in -lintl... $ECHO_C" >&6; }
 if test "${ac_cv_lib_intl_ngettext+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -5654,39 +6638,52 @@
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* 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
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char ngettext ();
 int
 main ()
 {
-ngettext ();
+return ngettext ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+	 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
 	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -5695,17 +6692,18 @@
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_intl_ngettext=no
+	ac_cv_lib_intl_ngettext=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_intl_ngettext" >&5
-echo "${ECHO_T}$ac_cv_lib_intl_ngettext" >&6
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_intl_ngettext" >&5
+echo "${ECHO_T}$ac_cv_lib_intl_ngettext" >&6; }
 if test $ac_cv_lib_intl_ngettext = yes; then
-  echo "$as_me:$LINENO: checking for dgettext in -lintl" >&5
-echo $ECHO_N "checking for dgettext in -lintl... $ECHO_C" >&6
+  { echo "$as_me:$LINENO: checking for dgettext in -lintl" >&5
+echo $ECHO_N "checking for dgettext in -lintl... $ECHO_C" >&6; }
 if test "${ac_cv_lib_intl_dgettext+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -5718,39 +6716,52 @@
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* 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
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char dgettext ();
 int
 main ()
 {
-dgettext ();
+return dgettext ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+	 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
 	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -5759,14 +6770,15 @@
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_intl_dgettext=no
+	ac_cv_lib_intl_dgettext=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_intl_dgettext" >&5
-echo "${ECHO_T}$ac_cv_lib_intl_dgettext" >&6
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_intl_dgettext" >&5
+echo "${ECHO_T}$ac_cv_lib_intl_dgettext" >&6; }
 if test $ac_cv_lib_intl_dgettext = yes; then
   gt_cv_func_dgettext_libintl=yes
 fi
@@ -5777,12 +6789,12 @@
 
 
 	if test "$gt_cv_func_dgettext_libintl" != "yes" ; then
-	  echo "$as_me:$LINENO: checking if -liconv is needed to use gettext" >&5
-echo $ECHO_N "checking if -liconv is needed to use gettext... $ECHO_C" >&6
-	  echo "$as_me:$LINENO: result: " >&5
-echo "${ECHO_T}" >&6
-  	  echo "$as_me:$LINENO: checking for ngettext in -lintl" >&5
-echo $ECHO_N "checking for ngettext in -lintl... $ECHO_C" >&6
+	  { echo "$as_me:$LINENO: checking if -liconv is needed to use gettext" >&5
+echo $ECHO_N "checking if -liconv is needed to use gettext... $ECHO_C" >&6; }
+	  { echo "$as_me:$LINENO: result: " >&5
+echo "${ECHO_T}" >&6; }
+  	  { echo "$as_me:$LINENO: checking for ngettext in -lintl" >&5
+echo $ECHO_N "checking for ngettext in -lintl... $ECHO_C" >&6; }
 if test "${ac_cv_lib_intl_ngettext+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -5795,39 +6807,52 @@
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* 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
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char ngettext ();
 int
 main ()
 {
-ngettext ();
+return ngettext ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+	 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
 	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -5836,17 +6861,18 @@
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_intl_ngettext=no
+	ac_cv_lib_intl_ngettext=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_intl_ngettext" >&5
-echo "${ECHO_T}$ac_cv_lib_intl_ngettext" >&6
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_intl_ngettext" >&5
+echo "${ECHO_T}$ac_cv_lib_intl_ngettext" >&6; }
 if test $ac_cv_lib_intl_ngettext = yes; then
-  echo "$as_me:$LINENO: checking for dcgettext in -lintl" >&5
-echo $ECHO_N "checking for dcgettext in -lintl... $ECHO_C" >&6
+  { echo "$as_me:$LINENO: checking for dcgettext in -lintl" >&5
+echo $ECHO_N "checking for dcgettext in -lintl... $ECHO_C" >&6; }
 if test "${ac_cv_lib_intl_dcgettext+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -5859,39 +6885,52 @@
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* 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
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char dcgettext ();
 int
 main ()
 {
-dcgettext ();
+return dcgettext ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+	 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
 	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -5900,14 +6939,15 @@
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_intl_dcgettext=no
+	ac_cv_lib_intl_dcgettext=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_intl_dcgettext" >&5
-echo "${ECHO_T}$ac_cv_lib_intl_dcgettext" >&6
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_intl_dcgettext" >&5
+echo "${ECHO_T}$ac_cv_lib_intl_dcgettext" >&6; }
 if test $ac_cv_lib_intl_dcgettext = yes; then
   gt_cv_func_dgettext_libintl=yes
 			libintl_extra_libs=-liconv
@@ -5934,9 +6974,9 @@
 for ac_func in bind_textdomain_codeset
 do
 as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
+{ echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
@@ -5962,52 +7002,59 @@
 
 #undef $ac_func
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* 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
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char $ac_func ();
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
     something starting with __ and the normal name is an alias.  */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+#if defined __stub_$ac_func || defined __stub___$ac_func
 choke me
-#else
-char (*f) () = $ac_func;
 #endif
-#ifdef __cplusplus
-}
-#endif
 
 int
 main ()
 {
-return f != $ac_func;
+return $ac_func ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+	 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
 	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -6016,13 +7063,15 @@
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-eval "$as_ac_var=no"
+	eval "$as_ac_var=no"
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+ac_res=`eval echo '${'$as_ac_var'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
 if test `eval echo '${'$as_ac_var'}'` = yes; then
   cat >>confdefs.h <<_ACEOF
 #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
@@ -6061,8 +7110,8 @@
 
 	# Extract the first word of "msgfmt", so it can be a program name with args.
 set dummy msgfmt; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_path_MSGFMT+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -6088,11 +7137,11 @@
 fi
 MSGFMT="$ac_cv_path_MSGFMT"
 if test "$MSGFMT" != "no"; then
-  echo "$as_me:$LINENO: result: $MSGFMT" >&5
-echo "${ECHO_T}$MSGFMT" >&6
+  { echo "$as_me:$LINENO: result: $MSGFMT" >&5
+echo "${ECHO_T}$MSGFMT" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 	if test "$MSGFMT" != "no"; then
           glib_save_LIBS="$LIBS"
@@ -6101,9 +7150,9 @@
 for ac_func in dcgettext
 do
 as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
+{ echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
@@ -6129,52 +7178,59 @@
 
 #undef $ac_func
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* 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
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char $ac_func ();
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
     something starting with __ and the normal name is an alias.  */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+#if defined __stub_$ac_func || defined __stub___$ac_func
 choke me
-#else
-char (*f) () = $ac_func;
 #endif
-#ifdef __cplusplus
-}
-#endif
 
 int
 main ()
 {
-return f != $ac_func;
+return $ac_func ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+	 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
 	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -6183,13 +7239,15 @@
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-eval "$as_ac_var=no"
+	eval "$as_ac_var=no"
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+ac_res=`eval echo '${'$as_ac_var'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
 if test `eval echo '${'$as_ac_var'}'` = yes; then
   cat >>confdefs.h <<_ACEOF
 #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
@@ -6200,8 +7258,8 @@
 
 	  # Extract the first word of "gmsgfmt", so it can be a program name with args.
 set dummy gmsgfmt; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_path_GMSGFMT+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -6216,32 +7274,33 @@
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_exec_ext in '' $ac_executable_extensions; do
-  if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext"
     echo "$as_me:$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
 GMSGFMT=$ac_cv_path_GMSGFMT
-
 if test -n "$GMSGFMT"; then
-  echo "$as_me:$LINENO: result: $GMSGFMT" >&5
-echo "${ECHO_T}$GMSGFMT" >&6
+  { echo "$as_me:$LINENO: result: $GMSGFMT" >&5
+echo "${ECHO_T}$GMSGFMT" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
+
 	  # Extract the first word of "xgettext", so it can be a program name with args.
 set dummy xgettext; ac_word=$2
-echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for $ac_word" >&5
+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
 if test "${ac_cv_path_XGETTEXT+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -6267,11 +7326,11 @@
 fi
 XGETTEXT="$ac_cv_path_XGETTEXT"
 if test "$XGETTEXT" != ":"; then
-  echo "$as_me:$LINENO: result: $XGETTEXT" >&5
-echo "${ECHO_T}$XGETTEXT" >&6
+  { echo "$as_me:$LINENO: result: $XGETTEXT" >&5
+echo "${ECHO_T}$XGETTEXT" >&6; }
 else
-  echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6
+  { echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6; }
 fi
 
 	  cat >conftest.$ac_ext <<_ACEOF
@@ -6291,23 +7350,36 @@
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+	 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
 	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -6317,10 +7389,10 @@
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-case $host in
+	case $host in
 	    *-*-solaris*)
-	    	                	    	                echo "$as_me:$LINENO: checking for bind_textdomain_codeset" >&5
-echo $ECHO_N "checking for bind_textdomain_codeset... $ECHO_C" >&6
+	    	                	    	                { echo "$as_me:$LINENO: checking for bind_textdomain_codeset" >&5
+echo $ECHO_N "checking for bind_textdomain_codeset... $ECHO_C" >&6; }
 if test "${ac_cv_func_bind_textdomain_codeset+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -6347,52 +7419,59 @@
 
 #undef bind_textdomain_codeset
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* 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
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char bind_textdomain_codeset ();
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
     something starting with __ and the normal name is an alias.  */
-#if defined (__stub_bind_textdomain_codeset) || defined (__stub___bind_textdomain_codeset)
+#if defined __stub_bind_textdomain_codeset || defined __stub___bind_textdomain_codeset
 choke me
-#else
-char (*f) () = bind_textdomain_codeset;
 #endif
-#ifdef __cplusplus
-}
-#endif
 
 int
 main ()
 {
-return f != bind_textdomain_codeset;
+return bind_textdomain_codeset ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+	 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
 	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -6401,13 +7480,14 @@
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_func_bind_textdomain_codeset=no
+	ac_cv_func_bind_textdomain_codeset=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: $ac_cv_func_bind_textdomain_codeset" >&5
-echo "${ECHO_T}$ac_cv_func_bind_textdomain_codeset" >&6
+{ echo "$as_me:$LINENO: result: $ac_cv_func_bind_textdomain_codeset" >&5
+echo "${ECHO_T}$ac_cv_func_bind_textdomain_codeset" >&6; }
 if test $ac_cv_func_bind_textdomain_codeset = yes; then
   CATOBJEXT=.gmo
                DATADIRNAME=share
@@ -6423,7 +7503,8 @@
 	    ;;
 	    esac
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
           LIBS="$glib_save_LIBS"
 	  INSTOBJEXT=.mo
@@ -6448,8 +7529,8 @@
                   if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
         : ;
       else
-        echo "$as_me:$LINENO: result: found xgettext program is not GNU xgettext; ignore it" >&5
-echo "${ECHO_T}found xgettext program is not GNU xgettext; ignore it" >&6
+        { echo "$as_me:$LINENO: result: found xgettext program is not GNU xgettext; ignore it" >&5
+echo "${ECHO_T}found xgettext program is not GNU xgettext; ignore it" >&6; }
         XGETTEXT=":"
       fi
     fi
@@ -6457,7 +7538,7 @@
     # We need to process the po/ directory.
     POSUB=po
 
-              ac_config_commands="$ac_config_commands default-1"
+    ac_config_commands="$ac_config_commands default-1"
 
 
                 for lang in $ALL_LINGUAS; do
@@ -6481,8 +7562,8 @@
      if test "x$ALL_LINGUAS" = "x"; then
        LINGUAS=
      else
-       echo "$as_me:$LINENO: checking for catalogs to be installed" >&5
-echo $ECHO_N "checking for catalogs to be installed... $ECHO_C" >&6
+       { echo "$as_me:$LINENO: checking for catalogs to be installed" >&5
+echo $ECHO_N "checking for catalogs to be installed... $ECHO_C" >&6; }
        NEW_LINGUAS=
        for presentlang in $ALL_LINGUAS; do
          useit=no
@@ -6506,8 +7587,8 @@
          fi
        done
        LINGUAS=$NEW_LINGUAS
-       echo "$as_me:$LINENO: result: $LINGUAS" >&5
-echo "${ECHO_T}$LINGUAS" >&6
+       { echo "$as_me:$LINENO: result: $LINGUAS" >&5
+echo "${ECHO_T}$LINGUAS" >&6; }
      fi
 
           if test -n "$LINGUAS"; then
@@ -6543,9 +7624,9 @@
 for ac_func in getopt_long_only
 do
 as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
+{ echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
@@ -6571,52 +7652,59 @@
 
 #undef $ac_func
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* 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
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char $ac_func ();
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
     something starting with __ and the normal name is an alias.  */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+#if defined __stub_$ac_func || defined __stub___$ac_func
 choke me
-#else
-char (*f) () = $ac_func;
 #endif
-#ifdef __cplusplus
-}
-#endif
 
 int
 main ()
 {
-return f != $ac_func;
+return $ac_func ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+	 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
 	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -6625,25 +7713,25 @@
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-eval "$as_ac_var=no"
+	eval "$as_ac_var=no"
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+ac_res=`eval echo '${'$as_ac_var'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
 if test `eval echo '${'$as_ac_var'}'` = yes; then
   cat >>confdefs.h <<_ACEOF
 #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
 
 else
-  case $LIBOBJS in
-    "getopt.$ac_objext"   | \
-  *" getopt.$ac_objext"   | \
-    "getopt.$ac_objext "* | \
+  case " $LIBOBJS " in
   *" getopt.$ac_objext "* ) ;;
-  *) LIBOBJS="$LIBOBJS getopt.$ac_objext" ;;
+  *) LIBOBJS="$LIBOBJS getopt.$ac_objext"
+ ;;
 esac
 
 fi
@@ -6653,9 +7741,9 @@
 for ac_func in getopt_long_only
 do
 as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
+{ echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
@@ -6681,52 +7769,59 @@
 
 #undef $ac_func
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* 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
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char $ac_func ();
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
     something starting with __ and the normal name is an alias.  */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+#if defined __stub_$ac_func || defined __stub___$ac_func
 choke me
-#else
-char (*f) () = $ac_func;
 #endif
-#ifdef __cplusplus
-}
-#endif
 
 int
 main ()
 {
-return f != $ac_func;
+return $ac_func ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+	 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
 	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -6735,25 +7830,25 @@
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-eval "$as_ac_var=no"
+	eval "$as_ac_var=no"
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+ac_res=`eval echo '${'$as_ac_var'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
 if test `eval echo '${'$as_ac_var'}'` = yes; then
   cat >>confdefs.h <<_ACEOF
 #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
 
 else
-  case $LIBOBJS in
-    "getopt1.$ac_objext"   | \
-  *" getopt1.$ac_objext"   | \
-    "getopt1.$ac_objext "* | \
+  case " $LIBOBJS " in
   *" getopt1.$ac_objext "* ) ;;
-  *) LIBOBJS="$LIBOBJS getopt1.$ac_objext" ;;
+  *) LIBOBJS="$LIBOBJS getopt1.$ac_objext"
+ ;;
 esac
 
 fi
@@ -6764,9 +7859,9 @@
 for ac_func in flock
 do
 as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
+{ echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
@@ -6792,52 +7887,59 @@
 
 #undef $ac_func
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* 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
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char $ac_func ();
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
     something starting with __ and the normal name is an alias.  */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+#if defined __stub_$ac_func || defined __stub___$ac_func
 choke me
-#else
-char (*f) () = $ac_func;
 #endif
-#ifdef __cplusplus
-}
-#endif
 
 int
 main ()
 {
-return f != $ac_func;
+return $ac_func ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+	 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
 	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -6846,13 +7948,15 @@
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-eval "$as_ac_var=no"
+	eval "$as_ac_var=no"
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+ac_res=`eval echo '${'$as_ac_var'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
 if test `eval echo '${'$as_ac_var'}'` = yes; then
   cat >>confdefs.h <<_ACEOF
 #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
@@ -6866,9 +7970,9 @@
 for ac_func in statvfs
 do
 as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-echo "$as_me:$LINENO: checking for $ac_func" >&5
-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-if eval "test \"\${$as_ac_var+set}\" = set"; then
+{ echo "$as_me:$LINENO: checking for $ac_func" >&5
+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }
+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
@@ -6894,52 +7998,59 @@
 
 #undef $ac_func
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* 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
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char $ac_func ();
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
     something starting with __ and the normal name is an alias.  */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+#if defined __stub_$ac_func || defined __stub___$ac_func
 choke me
-#else
-char (*f) () = $ac_func;
 #endif
-#ifdef __cplusplus
-}
-#endif
 
 int
 main ()
 {
-return f != $ac_func;
+return $ac_func ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+	 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
 	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -6948,13 +8059,15 @@
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-eval "$as_ac_var=no"
+	eval "$as_ac_var=no"
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
+ac_res=`eval echo '${'$as_ac_var'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
 if test `eval echo '${'$as_ac_var'}'` = yes; then
   cat >>confdefs.h <<_ACEOF
 #define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
@@ -6965,8 +8078,8 @@
 
 
 
-echo "$as_me:$LINENO: checking for id3_frame_field in -lid3tag" >&5
-echo $ECHO_N "checking for id3_frame_field in -lid3tag... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for id3_frame_field in -lid3tag" >&5
+echo $ECHO_N "checking for id3_frame_field in -lid3tag... $ECHO_C" >&6; }
 if test "${ac_cv_lib_id3tag_id3_frame_field+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
@@ -6979,39 +8092,52 @@
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* 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
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char id3_frame_field ();
 int
 main ()
 {
-id3_frame_field ();
+return id3_frame_field ();
   ;
   return 0;
 }
 _ACEOF
 rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+	 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
 	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -7020,14 +8146,15 @@
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_cv_lib_id3tag_id3_frame_field=no
+	ac_cv_lib_id3tag_id3_frame_field=no
 fi
-rm -f conftest.err conftest.$ac_objext \
+
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_lib_id3tag_id3_frame_field" >&5
-echo "${ECHO_T}$ac_cv_lib_id3tag_id3_frame_field" >&6
+{ echo "$as_me:$LINENO: result: $ac_cv_lib_id3tag_id3_frame_field" >&5
+echo "${ECHO_T}$ac_cv_lib_id3tag_id3_frame_field" >&6; }
 if test $ac_cv_lib_id3tag_id3_frame_field = yes; then
   cat >>confdefs.h <<_ACEOF
 #define HAVE_LIBID3TAG 1
@@ -7046,13 +8173,12 @@
 # AC_CHECK_LIB([curl],  [curl_easy_init], ,
 #	     AC_MSG_ERROR([*** curl lib not found!]))
 
-echo "$as_me:$LINENO: checking for library containing MP4FileInfo" >&5
-echo $ECHO_N "checking for library containing MP4FileInfo... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for library containing MP4FileInfo" >&5
+echo $ECHO_N "checking for library containing MP4FileInfo... $ECHO_C" >&6; }
 if test "${ac_cv_search_MP4FileInfo+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   ac_func_search_save_LIBS=$LIBS
-ac_cv_search_MP4FileInfo=no
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -7060,125 +8186,101 @@
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* 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
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char MP4FileInfo ();
 int
 main ()
 {
-MP4FileInfo ();
+return MP4FileInfo ();
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+for ac_lib in '' "mp4v2" "mp4v2 -lstdc++" "mp4v2 -lz" "mp4v2 -lz -lstdc++"; do
+  if test -z "$ac_lib"; then
+    ac_res="none required"
+  else
+    ac_res=-l$ac_lib
+    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
+  fi
+  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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+	 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
 	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
-  ac_cv_search_MP4FileInfo="none required"
+  ac_cv_search_MP4FileInfo=$ac_res
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
+
 fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-if test "$ac_cv_search_MP4FileInfo" = no; then
-  for ac_lib in "mp4v2" "mp4v2 -lstdc++" "mp4v2 -lz" "mp4v2 -lz -lstdc++"; do
-    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char MP4FileInfo ();
-int
-main ()
-{
-MP4FileInfo ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_search_MP4FileInfo="-l$ac_lib"
-break
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext
+  if test "${ac_cv_search_MP4FileInfo+set}" = set; then
+  break
+fi
+done
+if test "${ac_cv_search_MP4FileInfo+set}" = set; then
+  :
 else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
+  ac_cv_search_MP4FileInfo=no
 fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-  done
-fi
+rm conftest.$ac_ext
 LIBS=$ac_func_search_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_search_MP4FileInfo" >&5
-echo "${ECHO_T}$ac_cv_search_MP4FileInfo" >&6
-if test "$ac_cv_search_MP4FileInfo" != no; then
-  test "$ac_cv_search_MP4FileInfo" = "none required" || LIBS="$ac_cv_search_MP4FileInfo $LIBS"
+{ echo "$as_me:$LINENO: result: $ac_cv_search_MP4FileInfo" >&5
+echo "${ECHO_T}$ac_cv_search_MP4FileInfo" >&6; }
+ac_res=$ac_cv_search_MP4FileInfo
+if test "$ac_res" != no; then
+  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
   if test "${ac_cv_header_mp4_h+set}" = set; then
-  echo "$as_me:$LINENO: checking for mp4.h" >&5
-echo $ECHO_N "checking for mp4.h... $ECHO_C" >&6
+  { echo "$as_me:$LINENO: checking for mp4.h" >&5
+echo $ECHO_N "checking for mp4.h... $ECHO_C" >&6; }
 if test "${ac_cv_header_mp4_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 fi
-echo "$as_me:$LINENO: result: $ac_cv_header_mp4_h" >&5
-echo "${ECHO_T}$ac_cv_header_mp4_h" >&6
+{ echo "$as_me:$LINENO: result: $ac_cv_header_mp4_h" >&5
+echo "${ECHO_T}$ac_cv_header_mp4_h" >&6; }
 else
   # Is the header compilable?
-echo "$as_me:$LINENO: checking mp4.h usability" >&5
-echo $ECHO_N "checking mp4.h usability... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking mp4.h usability" >&5
+echo $ECHO_N "checking mp4.h usability... $ECHO_C" >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -7189,23 +8291,36 @@
 #include <mp4.h>
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+	 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
 	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -7214,15 +8329,16 @@
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_header_compiler=no
+	ac_header_compiler=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
 
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
 # Is the header present?
-echo "$as_me:$LINENO: checking mp4.h presence" >&5
-echo $ECHO_N "checking mp4.h presence... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking mp4.h presence" >&5
+echo $ECHO_N "checking mp4.h presence... $ECHO_C" >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -7231,8 +8347,13 @@
 /* end confdefs.h.  */
 #include <mp4.h>
 _ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
@@ -7256,9 +8377,10 @@
 
   ac_header_preproc=no
 fi
+
 rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
 
 # So?  What about this header?
 case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
@@ -7282,25 +8404,18 @@
 echo "$as_me: WARNING: mp4.h: proceeding with the preprocessor's result" >&2;}
     { echo "$as_me:$LINENO: WARNING: mp4.h: in the future, the compiler will take precedence" >&5
 echo "$as_me: WARNING: mp4.h: in the future, the compiler will take precedence" >&2;}
-    (
-      cat <<\_ASBOX
-## ------------------------------------------ ##
-## Report this to the AC_PACKAGE_NAME lists.  ##
-## ------------------------------------------ ##
-_ASBOX
-    ) |
-      sed "s/^/$as_me: WARNING:     /" >&2
+
     ;;
 esac
-echo "$as_me:$LINENO: checking for mp4.h" >&5
-echo $ECHO_N "checking for mp4.h... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for mp4.h" >&5
+echo $ECHO_N "checking for mp4.h... $ECHO_C" >&6; }
 if test "${ac_cv_header_mp4_h+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   ac_cv_header_mp4_h=$ac_header_preproc
 fi
-echo "$as_me:$LINENO: result: $ac_cv_header_mp4_h" >&5
-echo "${ECHO_T}$ac_cv_header_mp4_h" >&6
+{ echo "$as_me:$LINENO: result: $ac_cv_header_mp4_h" >&5
+echo "${ECHO_T}$ac_cv_header_mp4_h" >&6; }
 
 fi
 if test $ac_cv_header_mp4_h = yes; then
@@ -7321,13 +8436,12 @@
 	have_mp4v2="*** no -- will build without aac support"
 fi
 
-echo "$as_me:$LINENO: checking for library containing bind" >&5
-echo $ECHO_N "checking for library containing bind... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking for library containing bind" >&5
+echo $ECHO_N "checking for library containing bind... $ECHO_C" >&6; }
 if test "${ac_cv_search_bind+set}" = set; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   ac_func_search_save_LIBS=$LIBS
-ac_cv_search_bind=no
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -7335,113 +8449,89 @@
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
+/* 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
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
 char bind ();
 int
 main ()
 {
-bind ();
+return bind ();
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
+for ac_lib in '' "socket" "nsl" "socket -lnsl"; do
+  if test -z "$ac_lib"; then
+    ac_res="none required"
+  else
+    ac_res=-l$ac_lib
+    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
+  fi
+  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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+	 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
 	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
-  ac_cv_search_bind="none required"
+  ac_cv_search_bind=$ac_res
 else
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
+
 fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-if test "$ac_cv_search_bind" = no; then
-  for ac_lib in "socket" "nsl" "socket -lnsl"; do
-    LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
 
-/* Override any gcc2 internal prototype to avoid an error.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-/* We use char because int might match the return type of a gcc2
-   builtin and then its argument prototype would still apply.  */
-char bind ();
-int
-main ()
-{
-bind ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-  (eval $ac_link) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest$ac_exeext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_search_bind="-l$ac_lib"
-break
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext
+  if test "${ac_cv_search_bind+set}" = set; then
+  break
+fi
+done
+if test "${ac_cv_search_bind+set}" = set; then
+  :
 else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
+  ac_cv_search_bind=no
 fi
-rm -f conftest.err conftest.$ac_objext \
-      conftest$ac_exeext conftest.$ac_ext
-  done
-fi
+rm conftest.$ac_ext
 LIBS=$ac_func_search_save_LIBS
 fi
-echo "$as_me:$LINENO: result: $ac_cv_search_bind" >&5
-echo "${ECHO_T}$ac_cv_search_bind" >&6
-if test "$ac_cv_search_bind" != no; then
-  test "$ac_cv_search_bind" = "none required" || LIBS="$ac_cv_search_bind $LIBS"
+{ echo "$as_me:$LINENO: result: $ac_cv_search_bind" >&5
+echo "${ECHO_T}$ac_cv_search_bind" >&6; }
+ac_res=$ac_cv_search_bind
+if test "$ac_res" != no; then
+  test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
 
 fi
 
@@ -7453,18 +8543,19 @@
 for ac_header in linux/cdrom.h scsi/sg.h scsi/scsi.h scsi/scsi_ioctl.h
 do
 as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
-  echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
+  { echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
 else
   # Is the header compilable?
-echo "$as_me:$LINENO: checking $ac_header usability" >&5
-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -7475,23 +8566,36 @@
 #include <$ac_header>
 _ACEOF
 rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
+if { (ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+	 { ac_try='test -z "$ac_c_werror_flag" || test ! -s conftest.err'
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
 	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
+  { (case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_try") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
@@ -7500,15 +8604,16 @@
   echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-ac_header_compiler=no
+	ac_header_compiler=no
 fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
 
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6; }
+
 # Is the header present?
-echo "$as_me:$LINENO: checking $ac_header presence" >&5
-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
+{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -7517,8 +8622,13 @@
 /* end confdefs.h.  */
 #include <$ac_header>
 _ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+if { (ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
@@ -7542,9 +8652,10 @@
 
   ac_header_preproc=no
 fi
+
 rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
+{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6; }
 
 # So?  What about this header?
 case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
@@ -7568,25 +8679,19 @@
 echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
     { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
 echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-    (
-      cat <<\_ASBOX
-## ------------------------------------------ ##
-## Report this to the AC_PACKAGE_NAME lists.  ##
-## ------------------------------------------ ##
-_ASBOX
-    ) |
-      sed "s/^/$as_me: WARNING:     /" >&2
+
     ;;
 esac
-echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-if eval "test \"\${$as_ac_Header+set}\" = set"; then
+{ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
   echo $ECHO_N "(cached) $ECHO_C" >&6
 else
   eval "$as_ac_Header=\$ac_header_preproc"
 fi
-echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
+ac_res=`eval echo '${'$as_ac_Header'}'`
+	       { echo "$as_me:$LINENO: result: $ac_res" >&5
+echo "${ECHO_T}$ac_res" >&6; }
 
 fi
 if test `eval echo '${'$as_ac_Header'}'` = yes; then
@@ -7599,7 +8704,8 @@
 done
 
 
-                                        ac_config_files="$ac_config_files Makefile src/Makefile po/Makefile.in scripts/Makefile"
+ac_config_files="$ac_config_files Makefile src/Makefile po/Makefile.in scripts/Makefile"
+
 cat >confcache <<\_ACEOF
 # This file is a shell script that caches the results of configure
 # tests run on this system so they can be shared between configure
@@ -7618,39 +8724,58 @@
 
 # The following way of writing the cache mishandles newlines in values,
 # but we know of no workaround that is simple, portable, and efficient.
-# So, don't put newlines in cache variables' values.
+# So, we kill variables containing newlines.
 # Ultrix sh set writes to stderr and can't be redirected directly,
 # and sets the high bit in the cache file unless we assign to the vars.
-{
+(
+  for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
+    eval ac_val=\$$ac_var
+    case $ac_val in #(
+    *${as_nl}*)
+      case $ac_var in #(
+      *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5
+echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;;
+      esac
+      case $ac_var in #(
+      _ | IFS | as_nl) ;; #(
+      *) $as_unset $ac_var ;;
+      esac ;;
+    esac
+  done
+
   (set) 2>&1 |
-    case `(ac_space=' '; set | grep ac_space) 2>&1` in
-    *ac_space=\ *)
+    case $as_nl`(ac_space=' '; set) 2>&1` in #(
+    *${as_nl}ac_space=\ *)
       # `set' does not quote correctly, so add quotes (double-quote
       # substitution turns \\\\ into \\, and sed turns \\ into \).
       sed -n \
 	"s/'/'\\\\''/g;
 	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
-      ;;
+      ;; #(
     *)
       # `set' quotes correctly as required by POSIX, so do not add quotes.
-      sed -n \
-	"s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
+      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
       ;;
-    esac;
-} |
+    esac |
+    sort
+) |
   sed '
+     /^ac_cv_env_/b end
      t clear
-     : clear
+     :clear
      s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
      t end
-     /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
-     : end' >>confcache
-if diff $cache_file confcache >/dev/null 2>&1; then :; else
-  if test -w $cache_file; then
-    test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
+     s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+     :end' >>confcache
+if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
+  if test -w "$cache_file"; then
+    test "x$cache_file" != "x/dev/null" &&
+      { echo "$as_me:$LINENO: updating cache $cache_file" >&5
+echo "$as_me: updating cache $cache_file" >&6;}
     cat confcache >$cache_file
   else
-    echo "not updating unwritable cache $cache_file"
+    { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5
+echo "$as_me: not updating unwritable cache $cache_file" >&6;}
   fi
 fi
 rm -f confcache
@@ -7659,32 +8784,18 @@
 # Let make expand exec_prefix.
 test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
 
-# VPATH may cause trouble with some makes, so we remove $(srcdir),
-# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
-# trailing colons and then remove the whole line if VPATH becomes empty
-# (actually we leave an empty line to preserve line numbers).
-if test "x$srcdir" = x.; then
-  ac_vpsub='/^[	 ]*VPATH[	 ]*=/{
-s/:*\$(srcdir):*/:/;
-s/:*\${srcdir}:*/:/;
-s/:*@srcdir@:*/:/;
-s/^\([^=]*=[	 ]*\):*/\1/;
-s/:*$//;
-s/^[^=]*=[	 ]*$//;
-}'
-fi
-
 DEFS=-DHAVE_CONFIG_H
 
 ac_libobjs=
 ac_ltlibobjs=
 for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
   # 1. Remove the extension, and $U if already installed.
-  ac_i=`echo "$ac_i" |
-	 sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
-  # 2. Add them.
-  ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
-  ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
+  ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
+  ac_i=`echo "$ac_i" | sed "$ac_script"`
+  # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
+  #    will be set to the directory where LIBOBJS objects are built.
+  ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext"
+  ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo'
 done
 LIBOBJS=$ac_libobjs
 
@@ -7750,11 +8861,35 @@
   # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
   # is contrary to our usage.  Disable this feature.
   alias -g '${1+"$@"}'='"$@"'
-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
-  set -o posix
+  setopt NO_GLOB_SUBST
+else
+  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
 fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
 DUALCASE=1; export DUALCASE # for MKS sh
 
+
+# PATH needs CR
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+# 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
+
 # Support unset when possible.
 if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
   as_unset=unset
@@ -7763,8 +8898,43 @@
 fi
 
 
+# IFS
+# We need space, tab and new line, in precisely that order.  Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+as_nl='
+'
+IFS=" ""	$as_nl"
+
+# Find who we are.  Look in the path if we contain no directory separator.
+case $0 in
+  *[\\/]* ) as_myself=$0 ;;
+  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+done
+IFS=$as_save_IFS
+
+     ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+  as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+  echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+  { (exit 1); exit 1; }
+fi
+
 # Work around bugs in pre-3.0 UWIN ksh.
-$as_unset ENV MAIL MAILPATH
+for as_var in ENV MAIL MAILPATH
+do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
+done
 PS1='$ '
 PS2='> '
 PS4='+ '
@@ -7778,18 +8948,19 @@
   if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
     eval $as_var=C; export $as_var
   else
-    $as_unset $as_var
+    ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
   fi
 done
 
 # Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1; then
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
   as_expr=expr
 else
   as_expr=false
 fi
 
-if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
   as_basename=basename
 else
   as_basename=false
@@ -7797,159 +8968,120 @@
 
 
 # Name of the executable.
-as_me=`$as_basename "$0" ||
+as_me=`$as_basename -- "$0" ||
 $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
 	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)$' \| \
-	 .     : '\(.\)' 2>/dev/null ||
+	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
 echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
-  	  /^X\/\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\/\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
+    sed '/^.*\/\([^/][^/]*\)\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
 
+# CDPATH.
+$as_unset CDPATH
 
-# PATH needs CR, and LINENO needs CR and PATH.
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
 
-# 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_lineno_1=$LINENO
   as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
   test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2"  || {
-  # Find who we are.  Look in the path if we contain no path at all
-  # relative or not.
-  case $0 in
-    *[\\/]* ) as_myself=$0 ;;
-    *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
+  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
 
-       ;;
-  esac
-  # We did not find ourselves, most probably we were run as `sh COMMAND'
-  # in which case we are not to be found in the path.
-  if test "x$as_myself" = x; then
-    as_myself=$0
-  fi
-  if test ! -f "$as_myself"; then
-    { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
-echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
-   { (exit 1); exit 1; }; }
-  fi
-  case $CONFIG_SHELL in
-  '')
-    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for as_base in sh bash ksh sh5; do
-	 case $as_dir in
-	 /*)
-	   if ("$as_dir/$as_base" -c '
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x$as_lineno_3"  = "x$as_lineno_2" ') 2>/dev/null; then
-	     $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
-	     $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
-	     CONFIG_SHELL=$as_dir/$as_base
-	     export CONFIG_SHELL
-	     exec "$CONFIG_SHELL" "$0" ${1+"$@"}
-	   fi;;
-	 esac
-       done
-done
-;;
-  esac
-
   # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
   # uniformly replaced by the line number.  The first 'sed' inserts a
-  # line-number line before each line; the second 'sed' does the real
-  # work.  The second script uses 'N' to pair each line-number line
-  # with the numbered line, and appends trailing '-' during
-  # substitution so that $LINENO is not a special case at line end.
+  # line-number line after each line using $LINENO; the second 'sed'
+  # does the real work.  The second script uses 'N' to pair each
+  # line-number line with the line containing $LINENO, and appends
+  # trailing '-' during substitution so that $LINENO is not a special
+  # case at line end.
   # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
-  # second 'sed' script.  Blame Lee E. McMahon for sed's syntax.  :-)
-  sed '=' <$as_myself |
+  # scripts with optimization help from Paolo Bonzini.  Blame Lee
+  # E. McMahon (1931-1989) for sed's syntax.  :-)
+  sed -n '
+    p
+    /[$]LINENO/=
+  ' <$as_myself |
     sed '
+      s/[$]LINENO.*/&-/
+      t lineno
+      b
+      :lineno
       N
-      s,$,-,
-      : loop
-      s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
+      :loop
+      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
       t loop
-      s,-$,,
-      s,^['$as_cr_digits']*\n,,
+      s/-\n.*//
     ' >$as_me.lineno &&
-  chmod +x $as_me.lineno ||
-    { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
-echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
+  chmod +x "$as_me.lineno" ||
+    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
    { (exit 1); exit 1; }; }
 
   # Don't try to exec as it changes $[0], causing all sort of problems
   # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensible to this).
-  . ./$as_me.lineno
+  # original and so on.  Autoconf is especially sensitive to this).
+  . "./$as_me.lineno"
   # Exit status is that of the last command.
   exit
 }
 
 
-case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
-  *c*,-n*) ECHO_N= ECHO_C='
-' ECHO_T='	' ;;
-  *c*,*  ) ECHO_N=-n ECHO_C= ECHO_T= ;;
-  *)       ECHO_N= ECHO_C='\c' ECHO_T= ;;
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+  as_dirname=dirname
+else
+  as_dirname=false
+fi
+
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in
+-n*)
+  case `echo 'x\c'` in
+  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
+  *)   ECHO_C='\c';;
+  esac;;
+*)
+  ECHO_N='-n';;
 esac
 
-if expr a : '\(a\)' >/dev/null 2>&1; then
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
   as_expr=expr
 else
   as_expr=false
 fi
 
 rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+  rm -f conf$$.dir/conf$$.file
+else
+  rm -f conf$$.dir
+  mkdir conf$$.dir
+fi
 echo >conf$$.file
 if ln -s conf$$.file conf$$ 2>/dev/null; then
-  # We could just check for DJGPP; but this test a) works b) is more generic
-  # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
-  if test -f conf$$.exe; then
-    # Don't use ln at all; we don't have any links
+  as_ln_s='ln -s'
+  # ... but there are two gotchas:
+  # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+  # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+  # In both cases, we have to default to `cp -p'.
+  ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
     as_ln_s='cp -p'
-  else
-    as_ln_s='ln -s'
-  fi
 elif ln conf$$.file conf$$ 2>/dev/null; then
   as_ln_s=ln
 else
   as_ln_s='cp -p'
 fi
-rm -f conf$$ conf$$.exe conf$$.file
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
 
 if mkdir -p . 2>/dev/null; then
   as_mkdir_p=:
@@ -7958,7 +9090,19 @@
   as_mkdir_p=false
 fi
 
-as_executable_p="test -f"
+# Find out whether ``test -x'' works.  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
+  as_executable_p="test -x"
+else
+  as_executable_p=:
+fi
+rm -f conf$$.file
 
 # Sed expression to map a string onto a valid CPP name.
 as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
@@ -7967,31 +9111,14 @@
 as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
 
 
-# IFS
-# We need space, tab and new line, in precisely that order.
-as_nl='
-'
-IFS=" 	$as_nl"
-
-# CDPATH.
-$as_unset CDPATH
-
 exec 6>&1
 
-# Open the log real soon, to keep \$[0] and so on meaningful, and to
+# Save the log message, to keep $[0] and so on meaningful, and to
 # report actual input values of CONFIG_FILES etc. instead of their
-# values after options handling.  Logging --version etc. is OK.
-exec 5>>config.log
-{
-  echo
-  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## Running $as_me. ##
-_ASBOX
-} >&5
-cat >&5 <<_CSEOF
-
+# values after options handling.
+ac_log="
 This file was extended by $as_me, which was
-generated by GNU Autoconf 2.59.  Invocation command line was
+generated by GNU Autoconf 2.60a.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
   CONFIG_HEADERS  = $CONFIG_HEADERS
@@ -7999,30 +9126,20 @@
   CONFIG_COMMANDS = $CONFIG_COMMANDS
   $ $0 $@
 
-_CSEOF
-echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
-echo >&5
+on `(hostname || uname -n) 2>/dev/null | sed 1q`
+"
+
 _ACEOF
 
+cat >>$CONFIG_STATUS <<_ACEOF
 # Files that config.status was made for.
-if test -n "$ac_config_files"; then
-  echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
-fi
+config_files="$ac_config_files"
+config_headers="$ac_config_headers"
+config_commands="$ac_config_commands"
 
-if test -n "$ac_config_headers"; then
-  echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
-fi
+_ACEOF
 
-if test -n "$ac_config_links"; then
-  echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
-fi
-
-if test -n "$ac_config_commands"; then
-  echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
-fi
-
 cat >>$CONFIG_STATUS <<\_ACEOF
-
 ac_cs_usage="\
 \`$as_me' instantiates files from templates according to the
 current configuration.
@@ -8030,7 +9147,7 @@
 Usage: $0 [OPTIONS] [FILE]...
 
   -h, --help       print this help, then exit
-  -V, --version    print version number, then exit
+  -V, --version    print version number and configuration settings, then exit
   -q, --quiet      do not print progress messages
   -d, --debug      don't remove temporary files
       --recheck    update $as_me by reconfiguring in the same conditions
@@ -8049,19 +9166,21 @@
 $config_commands
 
 Report bugs to <bug-autoconf at gnu.org>."
+
 _ACEOF
-
 cat >>$CONFIG_STATUS <<_ACEOF
 ac_cs_version="\\
 config.status
-configured by $0, generated by GNU Autoconf 2.59,
-  with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
+configured by $0, generated by GNU Autoconf 2.60a,
+  with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
 
-Copyright (C) 2003 Free Software Foundation, Inc.
+Copyright (C) 2006 Free Software Foundation, Inc.
 This config.status script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it."
-srcdir=$srcdir
-INSTALL="$INSTALL"
+
+ac_pwd='$ac_pwd'
+srcdir='$srcdir'
+INSTALL='$INSTALL'
 _ACEOF
 
 cat >>$CONFIG_STATUS <<\_ACEOF
@@ -8072,39 +9191,24 @@
 do
   case $1 in
   --*=*)
-    ac_option=`expr "x$1" : 'x\([^=]*\)='`
-    ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
+    ac_option=`expr "X$1" : 'X\([^=]*\)='`
+    ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
     ac_shift=:
     ;;
-  -*)
+  *)
     ac_option=$1
     ac_optarg=$2
     ac_shift=shift
     ;;
-  *) # This is not an option, so the user has probably given explicit
-     # arguments.
-     ac_option=$1
-     ac_need_defaults=false;;
   esac
 
   case $ac_option in
   # Handling of the options.
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
   -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
     ac_cs_recheck=: ;;
-  --version | --vers* | -V )
-    echo "$ac_cs_version"; exit 0 ;;
-  --he | --h)
-    # Conflict between --help and --header
-    { { echo "$as_me:$LINENO: error: ambiguous option: $1
-Try \`$0 --help' for more information." >&5
-echo "$as_me: error: ambiguous option: $1
-Try \`$0 --help' for more information." >&2;}
-   { (exit 1); exit 1; }; };;
-  --help | --hel | -h )
-    echo "$ac_cs_usage"; exit 0 ;;
-  --debug | --d* | -d )
+  --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
+    echo "$ac_cs_version"; exit ;;
+  --debug | --debu | --deb | --de | --d | -d )
     debug=: ;;
   --file | --fil | --fi | --f )
     $ac_shift
@@ -8114,18 +9218,24 @@
     $ac_shift
     CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
     ac_need_defaults=false;;
+  --he | --h)
+    # Conflict between --help and --header
+    { echo "$as_me: error: ambiguous option: $1
+Try \`$0 --help' for more information." >&2
+   { (exit 1); exit 1; }; };;
+  --help | --hel | -h )
+    echo "$ac_cs_usage"; exit ;;
   -q | -quiet | --quiet | --quie | --qui | --qu | --q \
   | -silent | --silent | --silen | --sile | --sil | --si | --s)
     ac_cs_silent=: ;;
 
   # This is an error.
-  -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&5
-echo "$as_me: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&2;}
+  -*) { echo "$as_me: error: unrecognized option: $1
+Try \`$0 --help' for more information." >&2
    { (exit 1); exit 1; }; } ;;
 
-  *) ac_config_targets="$ac_config_targets $1" ;;
+  *) ac_config_targets="$ac_config_targets $1"
+     ac_need_defaults=false ;;
 
   esac
   shift
@@ -8141,42 +9251,54 @@
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF
 if \$ac_cs_recheck; then
-  echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
-  exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+  echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
+  CONFIG_SHELL=$SHELL
+  export CONFIG_SHELL
+  exec $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
 fi
 
 _ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF
+exec 5>>config.log
+{
+  echo
+  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## Running $as_me. ##
+_ASBOX
+  echo "$ac_log"
+} >&5
 
+_ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF
 #
-# INIT-COMMANDS section.
+# INIT-COMMANDS
 #
-
 AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
 
 
 _ACEOF
 
+cat >>$CONFIG_STATUS <<\_ACEOF
 
-
-cat >>$CONFIG_STATUS <<\_ACEOF
+# Handling of arguments.
 for ac_config_target in $ac_config_targets
 do
-  case "$ac_config_target" in
-  # Handling of arguments.
-  "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
-  "src/Makefile" ) CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
-  "po/Makefile.in" ) CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;;
-  "scripts/Makefile" ) CONFIG_FILES="$CONFIG_FILES scripts/Makefile" ;;
-  "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
-  "default-1" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;;
-  "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
+  case $ac_config_target in
+    "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
+    "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
+    "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;;
+    "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+    "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
+    "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;;
+    "scripts/Makefile") CONFIG_FILES="$CONFIG_FILES scripts/Makefile" ;;
+
   *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
 echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
    { (exit 1); exit 1; }; };;
   esac
 done
 
+
 # If the user did not use the arguments to specify the items to instantiate,
 # then the envvar interface is used.  Set only those that are not.
 # We use the long form for the default assignment because of an extremely
@@ -8188,610 +9310,598 @@
 fi
 
 # Have a temporary directory for convenience.  Make it in the build tree
-# simply because there is no reason to put it here, and in addition,
+# simply because there is no reason against having it here, and in addition,
 # creating and moving files from /tmp can sometimes cause problems.
-# Create a temporary directory, and hook for its removal unless debugging.
+# Hook for its removal unless debugging.
+# Note that there is a small window in which the directory will not be cleaned:
+# after its creation but before its name has been assigned to `$tmp'.
 $debug ||
 {
-  trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
+  tmp=
+  trap 'exit_status=$?
+  { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
+' 0
   trap '{ (exit 1); exit 1; }' 1 2 13 15
 }
-
 # Create a (secure) tmp directory for tmp files.
 
 {
-  tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &&
+  tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
   test -n "$tmp" && test -d "$tmp"
 }  ||
 {
-  tmp=./confstat$$-$RANDOM
-  (umask 077 && mkdir $tmp)
+  tmp=./conf$$-$RANDOM
+  (umask 077 && mkdir "$tmp")
 } ||
 {
    echo "$me: cannot create a temporary directory in ." >&2
    { (exit 1); exit 1; }
 }
 
-_ACEOF
-
-cat >>$CONFIG_STATUS <<_ACEOF
-
 #
-# CONFIG_FILES section.
+# Set up the sed scripts for CONFIG_FILES section.
 #
 
 # No need to generate the scripts if there are no CONFIG_FILES.
 # This happens for instance when ./config.status config.h
-if test -n "\$CONFIG_FILES"; then
-  # Protect against being on the right side of a sed subst in config.status.
-  sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
-   s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
-s, at SHELL@,$SHELL,;t t
-s, at PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
-s, at PACKAGE_NAME@,$PACKAGE_NAME,;t t
-s, at PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
-s, at PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
-s, at PACKAGE_STRING@,$PACKAGE_STRING,;t t
-s, at PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
-s, at exec_prefix@,$exec_prefix,;t t
-s, at prefix@,$prefix,;t t
-s, at program_transform_name@,$program_transform_name,;t t
-s, at bindir@,$bindir,;t t
-s, at sbindir@,$sbindir,;t t
-s, at libexecdir@,$libexecdir,;t t
-s, at datadir@,$datadir,;t t
-s, at sysconfdir@,$sysconfdir,;t t
-s, at sharedstatedir@,$sharedstatedir,;t t
-s, at localstatedir@,$localstatedir,;t t
-s, at libdir@,$libdir,;t t
-s, at includedir@,$includedir,;t t
-s, at oldincludedir@,$oldincludedir,;t t
-s, at infodir@,$infodir,;t t
-s, at mandir@,$mandir,;t t
-s, at build_alias@,$build_alias,;t t
-s, at host_alias@,$host_alias,;t t
-s, at target_alias@,$target_alias,;t t
-s, at DEFS@,$DEFS,;t t
-s, at ECHO_C@,$ECHO_C,;t t
-s, at ECHO_N@,$ECHO_N,;t t
-s, at ECHO_T@,$ECHO_T,;t t
-s, at LIBS@,$LIBS,;t t
-s, at INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
-s, at INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
-s, at INSTALL_DATA@,$INSTALL_DATA,;t t
-s, at CYGPATH_W@,$CYGPATH_W,;t t
-s, at PACKAGE@,$PACKAGE,;t t
-s, at VERSION@,$VERSION,;t t
-s, at ACLOCAL@,$ACLOCAL,;t t
-s, at AUTOCONF@,$AUTOCONF,;t t
-s, at AUTOMAKE@,$AUTOMAKE,;t t
-s, at AUTOHEADER@,$AUTOHEADER,;t t
-s, at MAKEINFO@,$MAKEINFO,;t t
-s, at AMTAR@,$AMTAR,;t t
-s, at install_sh@,$install_sh,;t t
-s, at STRIP@,$STRIP,;t t
-s, at ac_ct_STRIP@,$ac_ct_STRIP,;t t
-s, at INSTALL_STRIP_PROGRAM@,$INSTALL_STRIP_PROGRAM,;t t
-s, at AWK@,$AWK,;t t
-s, at SET_MAKE@,$SET_MAKE,;t t
-s, at am__leading_dot@,$am__leading_dot,;t t
-s, at MAINTAINER_MODE_TRUE@,$MAINTAINER_MODE_TRUE,;t t
-s, at MAINTAINER_MODE_FALSE@,$MAINTAINER_MODE_FALSE,;t t
-s, at MAINT@,$MAINT,;t t
-s, at build@,$build,;t t
-s, at build_cpu@,$build_cpu,;t t
-s, at build_vendor@,$build_vendor,;t t
-s, at build_os@,$build_os,;t t
-s, at host@,$host,;t t
-s, at host_cpu@,$host_cpu,;t t
-s, at host_vendor@,$host_vendor,;t t
-s, at host_os@,$host_os,;t t
-s, at CC@,$CC,;t t
-s, at CFLAGS@,$CFLAGS,;t t
-s, at LDFLAGS@,$LDFLAGS,;t t
-s, at CPPFLAGS@,$CPPFLAGS,;t t
-s, at ac_ct_CC@,$ac_ct_CC,;t t
-s, at EXEEXT@,$EXEEXT,;t t
-s, at OBJEXT@,$OBJEXT,;t t
-s, at DEPDIR@,$DEPDIR,;t t
-s, at am__include@,$am__include,;t t
-s, at am__quote@,$am__quote,;t t
-s, at AMDEP_TRUE@,$AMDEP_TRUE,;t t
-s, at AMDEP_FALSE@,$AMDEP_FALSE,;t t
-s, at AMDEPBACKSLASH@,$AMDEPBACKSLASH,;t t
-s, at CCDEPMODE@,$CCDEPMODE,;t t
-s, at am__fastdepCC_TRUE@,$am__fastdepCC_TRUE,;t t
-s, at am__fastdepCC_FALSE@,$am__fastdepCC_FALSE,;t t
-s, at GETTEXT_PACKAGE@,$GETTEXT_PACKAGE,;t t
-s, at have_pkgconfig@,$have_pkgconfig,;t t
-s, at PKG_CONFIG@,$PKG_CONFIG,;t t
-s, at ac_pt_PKG_CONFIG@,$ac_pt_PKG_CONFIG,;t t
-s, at PACKAGE_CFLAGS@,$PACKAGE_CFLAGS,;t t
-s, at PACKAGE_LIBS@,$PACKAGE_LIBS,;t t
-s, at LEX@,$LEX,;t t
-s, at LEXLIB@,$LEXLIB,;t t
-s, at LEX_OUTPUT_ROOT@,$LEX_OUTPUT_ROOT,;t t
-s, at MOUNT@,$MOUNT,;t t
-s, at UMOUNT@,$UMOUNT,;t t
-s, at CPP@,$CPP,;t t
-s, at EGREP@,$EGREP,;t t
-s, at USE_NLS@,$USE_NLS,;t t
-s, at MSGFMT@,$MSGFMT,;t t
-s, at GMSGFMT@,$GMSGFMT,;t t
-s, at XGETTEXT@,$XGETTEXT,;t t
-s, at CATALOGS@,$CATALOGS,;t t
-s, at CATOBJEXT@,$CATOBJEXT,;t t
-s, at DATADIRNAME@,$DATADIRNAME,;t t
-s, at GMOFILES@,$GMOFILES,;t t
-s, at INSTOBJEXT@,$INSTOBJEXT,;t t
-s, at INTLLIBS@,$INTLLIBS,;t t
-s, at PO_IN_DATADIR_TRUE@,$PO_IN_DATADIR_TRUE,;t t
-s, at PO_IN_DATADIR_FALSE@,$PO_IN_DATADIR_FALSE,;t t
-s, at POFILES@,$POFILES,;t t
-s, at POSUB@,$POSUB,;t t
-s, at MKINSTALLDIRS@,$MKINSTALLDIRS,;t t
-s, at LIBOBJS@,$LIBOBJS,;t t
-s, at LTLIBOBJS@,$LTLIBOBJS,;t t
-CEOF
+if test -n "$CONFIG_FILES"; then
 
 _ACEOF
 
-  cat >>$CONFIG_STATUS <<\_ACEOF
-  # Split the substitutions into bite-sized pieces for seds with
-  # small command number limits, like on Digital OSF/1 and HP-UX.
-  ac_max_sed_lines=48
-  ac_sed_frag=1 # Number of current file.
-  ac_beg=1 # First line for current file.
-  ac_end=$ac_max_sed_lines # Line after last line for current file.
-  ac_more_lines=:
-  ac_sed_cmds=
-  while $ac_more_lines; do
-    if test $ac_beg -gt 1; then
-      sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
-    else
-      sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
-    fi
-    if test ! -s $tmp/subs.frag; then
-      ac_more_lines=false
-    else
-      # The purpose of the label and of the branching condition is to
-      # speed up the sed processing (if there are no `@' at all, there
-      # is no need to browse any of the substitutions).
-      # These are the two extra sed commands mentioned above.
-      (echo ':t
-  /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
-      if test -z "$ac_sed_cmds"; then
-	ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
-      else
-	ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
-      fi
-      ac_sed_frag=`expr $ac_sed_frag + 1`
-      ac_beg=$ac_end
-      ac_end=`expr $ac_end + $ac_max_sed_lines`
-    fi
-  done
-  if test -z "$ac_sed_cmds"; then
-    ac_sed_cmds=cat
+
+
+ac_delim='%!_!# '
+for ac_last_try in false false false false false :; do
+  cat >conf$$subs.sed <<_ACEOF
+SHELL!$SHELL$ac_delim
+PATH_SEPARATOR!$PATH_SEPARATOR$ac_delim
+PACKAGE_NAME!$PACKAGE_NAME$ac_delim
+PACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim
+PACKAGE_VERSION!$PACKAGE_VERSION$ac_delim
+PACKAGE_STRING!$PACKAGE_STRING$ac_delim
+PACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim
+exec_prefix!$exec_prefix$ac_delim
+prefix!$prefix$ac_delim
+program_transform_name!$program_transform_name$ac_delim
+bindir!$bindir$ac_delim
+sbindir!$sbindir$ac_delim
+libexecdir!$libexecdir$ac_delim
+datarootdir!$datarootdir$ac_delim
+datadir!$datadir$ac_delim
+sysconfdir!$sysconfdir$ac_delim
+sharedstatedir!$sharedstatedir$ac_delim
+localstatedir!$localstatedir$ac_delim
+includedir!$includedir$ac_delim
+oldincludedir!$oldincludedir$ac_delim
+docdir!$docdir$ac_delim
+infodir!$infodir$ac_delim
+htmldir!$htmldir$ac_delim
+dvidir!$dvidir$ac_delim
+pdfdir!$pdfdir$ac_delim
+psdir!$psdir$ac_delim
+libdir!$libdir$ac_delim
+localedir!$localedir$ac_delim
+mandir!$mandir$ac_delim
+DEFS!$DEFS$ac_delim
+ECHO_C!$ECHO_C$ac_delim
+ECHO_N!$ECHO_N$ac_delim
+ECHO_T!$ECHO_T$ac_delim
+LIBS!$LIBS$ac_delim
+build_alias!$build_alias$ac_delim
+host_alias!$host_alias$ac_delim
+target_alias!$target_alias$ac_delim
+INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim
+INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim
+INSTALL_DATA!$INSTALL_DATA$ac_delim
+CYGPATH_W!$CYGPATH_W$ac_delim
+PACKAGE!$PACKAGE$ac_delim
+VERSION!$VERSION$ac_delim
+ACLOCAL!$ACLOCAL$ac_delim
+AUTOCONF!$AUTOCONF$ac_delim
+AUTOMAKE!$AUTOMAKE$ac_delim
+AUTOHEADER!$AUTOHEADER$ac_delim
+MAKEINFO!$MAKEINFO$ac_delim
+AMTAR!$AMTAR$ac_delim
+install_sh!$install_sh$ac_delim
+STRIP!$STRIP$ac_delim
+INSTALL_STRIP_PROGRAM!$INSTALL_STRIP_PROGRAM$ac_delim
+AWK!$AWK$ac_delim
+SET_MAKE!$SET_MAKE$ac_delim
+am__leading_dot!$am__leading_dot$ac_delim
+MAINTAINER_MODE_TRUE!$MAINTAINER_MODE_TRUE$ac_delim
+MAINTAINER_MODE_FALSE!$MAINTAINER_MODE_FALSE$ac_delim
+MAINT!$MAINT$ac_delim
+build!$build$ac_delim
+build_cpu!$build_cpu$ac_delim
+build_vendor!$build_vendor$ac_delim
+build_os!$build_os$ac_delim
+host!$host$ac_delim
+host_cpu!$host_cpu$ac_delim
+host_vendor!$host_vendor$ac_delim
+host_os!$host_os$ac_delim
+CC!$CC$ac_delim
+CFLAGS!$CFLAGS$ac_delim
+LDFLAGS!$LDFLAGS$ac_delim
+CPPFLAGS!$CPPFLAGS$ac_delim
+ac_ct_CC!$ac_ct_CC$ac_delim
+EXEEXT!$EXEEXT$ac_delim
+OBJEXT!$OBJEXT$ac_delim
+DEPDIR!$DEPDIR$ac_delim
+am__include!$am__include$ac_delim
+am__quote!$am__quote$ac_delim
+AMDEP_TRUE!$AMDEP_TRUE$ac_delim
+AMDEP_FALSE!$AMDEP_FALSE$ac_delim
+AMDEPBACKSLASH!$AMDEPBACKSLASH$ac_delim
+CCDEPMODE!$CCDEPMODE$ac_delim
+am__fastdepCC_TRUE!$am__fastdepCC_TRUE$ac_delim
+am__fastdepCC_FALSE!$am__fastdepCC_FALSE$ac_delim
+GETTEXT_PACKAGE!$GETTEXT_PACKAGE$ac_delim
+have_pkgconfig!$have_pkgconfig$ac_delim
+PKG_CONFIG!$PKG_CONFIG$ac_delim
+PACKAGE_CFLAGS!$PACKAGE_CFLAGS$ac_delim
+PACKAGE_LIBS!$PACKAGE_LIBS$ac_delim
+LEX!$LEX$ac_delim
+LEX_OUTPUT_ROOT!$LEX_OUTPUT_ROOT$ac_delim
+LEXLIB!$LEXLIB$ac_delim
+MOUNT!$MOUNT$ac_delim
+UMOUNT!$UMOUNT$ac_delim
+CPP!$CPP$ac_delim
+GREP!$GREP$ac_delim
+EGREP!$EGREP$ac_delim
+USE_NLS!$USE_NLS$ac_delim
+MSGFMT!$MSGFMT$ac_delim
+_ACEOF
+
+  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
+    break
+  elif $ac_last_try; then
+    { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
+echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
+   { (exit 1); exit 1; }; }
+  else
+    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
   fi
-fi # test -n "$CONFIG_FILES"
+done
 
+ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed`
+if test -n "$ac_eof"; then
+  ac_eof=`echo "$ac_eof" | sort -nru | sed 1q`
+  ac_eof=`expr $ac_eof + 1`
+fi
+
+cat >>$CONFIG_STATUS <<_ACEOF
+cat >"\$tmp/subs-1.sed" <<\CEOF$ac_eof
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
 _ACEOF
+sed '
+s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g
+s/^/s,@/; s/!/@,|#_!!_#|/
+:n
+t n
+s/'"$ac_delim"'$/,g/; t
+s/$/\\/; p
+N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n
+' >>$CONFIG_STATUS <conf$$subs.sed
+rm -f conf$$subs.sed
+cat >>$CONFIG_STATUS <<_ACEOF
+CEOF$ac_eof
+_ACEOF
+
+
+ac_delim='%!_!# '
+for ac_last_try in false false false false false :; do
+  cat >conf$$subs.sed <<_ACEOF
+GMSGFMT!$GMSGFMT$ac_delim
+XGETTEXT!$XGETTEXT$ac_delim
+CATALOGS!$CATALOGS$ac_delim
+CATOBJEXT!$CATOBJEXT$ac_delim
+DATADIRNAME!$DATADIRNAME$ac_delim
+GMOFILES!$GMOFILES$ac_delim
+INSTOBJEXT!$INSTOBJEXT$ac_delim
+INTLLIBS!$INTLLIBS$ac_delim
+PO_IN_DATADIR_TRUE!$PO_IN_DATADIR_TRUE$ac_delim
+PO_IN_DATADIR_FALSE!$PO_IN_DATADIR_FALSE$ac_delim
+POFILES!$POFILES$ac_delim
+POSUB!$POSUB$ac_delim
+MKINSTALLDIRS!$MKINSTALLDIRS$ac_delim
+LIBOBJS!$LIBOBJS$ac_delim
+LTLIBOBJS!$LTLIBOBJS$ac_delim
+_ACEOF
+
+  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 15; then
+    break
+  elif $ac_last_try; then
+    { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
+echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
+   { (exit 1); exit 1; }; }
+  else
+    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+  fi
+done
+
+ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed`
+if test -n "$ac_eof"; then
+  ac_eof=`echo "$ac_eof" | sort -nru | sed 1q`
+  ac_eof=`expr $ac_eof + 1`
+fi
+
+cat >>$CONFIG_STATUS <<_ACEOF
+cat >"\$tmp/subs-2.sed" <<\CEOF$ac_eof
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b end
+_ACEOF
+sed '
+s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g
+s/^/s,@/; s/!/@,|#_!!_#|/
+:n
+t n
+s/'"$ac_delim"'$/,g/; t
+s/$/\\/; p
+N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n
+' >>$CONFIG_STATUS <conf$$subs.sed
+rm -f conf$$subs.sed
+cat >>$CONFIG_STATUS <<_ACEOF
+:end
+s/|#_!!_#|//g
+CEOF$ac_eof
+_ACEOF
+
+
+# VPATH may cause trouble with some makes, so we remove $(srcdir),
+# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
+if test "x$srcdir" = x.; then
+  ac_vpsub='/^[	 ]*VPATH[	 ]*=/{
+s/:*\$(srcdir):*/:/
+s/:*\${srcdir}:*/:/
+s/:*@srcdir@:*/:/
+s/^\([^=]*=[	 ]*\):*/\1/
+s/:*$//
+s/^[^=]*=[	 ]*$//
+}'
+fi
+
 cat >>$CONFIG_STATUS <<\_ACEOF
-for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
-  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
-  case $ac_file in
-  - | *:- | *:-:* ) # input from stdin
-	cat >$tmp/stdin
-	ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-  *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-  * )   ac_file_in=$ac_file.in ;;
+fi # test -n "$CONFIG_FILES"
+
+
+for ac_tag in  :F $CONFIG_FILES  :H $CONFIG_HEADERS    :C $CONFIG_COMMANDS
+do
+  case $ac_tag in
+  :[FHLC]) ac_mode=$ac_tag; continue;;
   esac
+  case $ac_mode$ac_tag in
+  :[FHL]*:*);;
+  :L* | :C*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5
+echo "$as_me: error: Invalid tag $ac_tag." >&2;}
+   { (exit 1); exit 1; }; };;
+  :[FH]-) ac_tag=-:-;;
+  :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
+  esac
+  ac_save_IFS=$IFS
+  IFS=:
+  set x $ac_tag
+  IFS=$ac_save_IFS
+  shift
+  ac_file=$1
+  shift
 
-  # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
-  ac_dir=`(dirname "$ac_file") 2>/dev/null ||
+  case $ac_mode in
+  :L) ac_source=$1;;
+  :[FH])
+    ac_file_inputs=
+    for ac_f
+    do
+      case $ac_f in
+      -) ac_f="$tmp/stdin";;
+      *) # Look for the file first in the build tree, then in the source tree
+	 # (if the path is not absolute).  The absolute path cannot be DOS-style,
+	 # because $ac_f cannot contain `:'.
+	 test -f "$ac_f" ||
+	   case $ac_f in
+	   [\\/$]*) false;;
+	   *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
+	   esac ||
+	   { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5
+echo "$as_me: error: cannot find input file: $ac_f" >&2;}
+   { (exit 1); exit 1; }; };;
+      esac
+      ac_file_inputs="$ac_file_inputs $ac_f"
+    done
+
+    # Let's still pretend it is `configure' which instantiates (i.e., don't
+    # use $as_me), people would be surprised to read:
+    #    /* config.h.  Generated by config.status.  */
+    configure_input="Generated from "`IFS=:
+	  echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure."
+    if test x"$ac_file" != x-; then
+      configure_input="$ac_file.  $configure_input"
+      { echo "$as_me:$LINENO: creating $ac_file" >&5
+echo "$as_me: creating $ac_file" >&6;}
+    fi
+
+    case $ac_tag in
+    *:-:* | *:-) cat >"$tmp/stdin";;
+    esac
+    ;;
+  esac
+
+  ac_dir=`$as_dirname -- "$ac_file" ||
 $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 	 X"$ac_file" : 'X\(//\)[^/]' \| \
 	 X"$ac_file" : 'X\(//\)$' \| \
-	 X"$ac_file" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
+	 X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
 echo X"$ac_file" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-  { if $as_mkdir_p; then
-    mkdir -p "$ac_dir"
-  else
-    as_dir="$ac_dir"
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+  { as_dir="$ac_dir"
+  case $as_dir in #(
+  -*) as_dir=./$as_dir;;
+  esac
+  test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || {
     as_dirs=
-    while test ! -d "$as_dir"; do
-      as_dirs="$as_dir $as_dirs"
-      as_dir=`(dirname "$as_dir") 2>/dev/null ||
+    while :; do
+      case $as_dir in #(
+      *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #(
+      *) as_qdir=$as_dir;;
+      esac
+      as_dirs="'$as_qdir' $as_dirs"
+      as_dir=`$as_dirname -- "$as_dir" ||
 $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 	 X"$as_dir" : 'X\(//\)[^/]' \| \
 	 X"$as_dir" : 'X\(//\)$' \| \
-	 X"$as_dir" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
+	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
 echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+      test -d "$as_dir" && break
     done
-    test ! -n "$as_dirs" || mkdir $as_dirs
-  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
+    test -z "$as_dirs" || eval "mkdir $as_dirs"
+  } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
+echo "$as_me: error: cannot create directory $as_dir" >&2;}
    { (exit 1); exit 1; }; }; }
-
   ac_builddir=.
 
-if test "$ac_dir" != .; then
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
   ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
-  # A "../" for each directory in $ac_dir_suffix.
-  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
-  ac_dir_suffix= ac_top_builddir=
-fi
+  # A ".." for each directory in $ac_dir_suffix.
+  ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'`
+  case $ac_top_builddir_sub in
+  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+  esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
 
 case $srcdir in
-  .)  # No --srcdir option.  We are building in place.
+  .)  # We are building in place.
     ac_srcdir=.
-    if test -z "$ac_top_builddir"; then
-       ac_top_srcdir=.
-    else
-       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
-    fi ;;
-  [\\/]* | ?:[\\/]* )  # Absolute path.
+    ac_top_srcdir=$ac_top_builddir_sub
+    ac_abs_top_srcdir=$ac_pwd ;;
+  [\\/]* | ?:[\\/]* )  # Absolute name.
     ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir ;;
-  *) # Relative path.
-    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_builddir$srcdir ;;
+    ac_top_srcdir=$srcdir
+    ac_abs_top_srcdir=$srcdir ;;
+  *) # Relative name.
+    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+    ac_top_srcdir=$ac_top_build_prefix$srcdir
+    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
 esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
 
-# Do not use `cd foo && pwd` to compute absolute paths, because
-# the directories may not exist.
-case `pwd` in
-.) ac_abs_builddir="$ac_dir";;
-*)
-  case "$ac_dir" in
-  .) ac_abs_builddir=`pwd`;;
-  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
-  *) ac_abs_builddir=`pwd`/"$ac_dir";;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_builddir=${ac_top_builddir}.;;
-*)
-  case ${ac_top_builddir}. in
-  .) ac_abs_top_builddir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
-  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_srcdir=$ac_srcdir;;
-*)
-  case $ac_srcdir in
-  .) ac_abs_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
-  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_srcdir=$ac_top_srcdir;;
-*)
-  case $ac_top_srcdir in
-  .) ac_abs_top_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
-  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
-  esac;;
-esac
 
+  case $ac_mode in
+  :F)
+  #
+  # CONFIG_FILE
+  #
 
   case $INSTALL in
   [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
-  *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
+  *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
   esac
+_ACEOF
 
-  # Let's still pretend it is `configure' which instantiates (i.e., don't
-  # use $as_me), people would be surprised to read:
-  #    /* config.h.  Generated by config.status.  */
-  if test x"$ac_file" = x-; then
-    configure_input=
-  else
-    configure_input="$ac_file.  "
-  fi
-  configure_input=$configure_input"Generated from `echo $ac_file_in |
-				     sed 's,.*/,,'` by configure."
+cat >>$CONFIG_STATUS <<\_ACEOF
+# If the template does not know about datarootdir, expand it.
+# FIXME: This hack should be removed a few years after 2.60.
+ac_datarootdir_hack=; ac_datarootdir_seen=
 
-  # First look for the input files in the build tree, otherwise in the
-  # src tree.
-  ac_file_inputs=`IFS=:
-    for f in $ac_file_in; do
-      case $f in
-      -) echo $tmp/stdin ;;
-      [\\/$]*)
-	 # Absolute (can't be DOS-style, as IFS=:)
-	 test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
-   { (exit 1); exit 1; }; }
-	 echo "$f";;
-      *) # Relative
-	 if test -f "$f"; then
-	   # Build tree
-	   echo "$f"
-	 elif test -f "$srcdir/$f"; then
-	   # Source tree
-	   echo "$srcdir/$f"
-	 else
-	   # /dev/null tree
-	   { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
-   { (exit 1); exit 1; }; }
-	 fi;;
-      esac
-    done` || { (exit 1); exit 1; }
-
-  if test x"$ac_file" != x-; then
-    { echo "$as_me:$LINENO: creating $ac_file" >&5
-echo "$as_me: creating $ac_file" >&6;}
-    rm -f "$ac_file"
-  fi
+case `sed -n '/datarootdir/ {
+  p
+  q
+}
+/@datadir@/p
+/@docdir@/p
+/@infodir@/p
+/@localedir@/p
+/@mandir@/p
+' $ac_file_inputs` in
+*datarootdir*) ac_datarootdir_seen=yes;;
+*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
+  { echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF
+  ac_datarootdir_hack='
+  s&@datadir@&$datadir&g
+  s&@docdir@&$docdir&g
+  s&@infodir@&$infodir&g
+  s&@localedir@&$localedir&g
+  s&@mandir@&$mandir&g
+    s&\\\${datarootdir}&$datarootdir&g' ;;
+esac
+_ACEOF
+
+# Neutralize VPATH when `$srcdir' = `.'.
+# Shell code in configure.ac might set extrasub.
+# FIXME: do we really want to maintain this feature?
+cat >>$CONFIG_STATUS <<_ACEOF
   sed "$ac_vpsub
 $extrasub
 _ACEOF
 cat >>$CONFIG_STATUS <<\_ACEOF
 :t
 /@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-s, at configure_input@,$configure_input,;t t
-s, at srcdir@,$ac_srcdir,;t t
-s, at abs_srcdir@,$ac_abs_srcdir,;t t
-s, at top_srcdir@,$ac_top_srcdir,;t t
-s, at abs_top_srcdir@,$ac_abs_top_srcdir,;t t
-s, at builddir@,$ac_builddir,;t t
-s, at abs_builddir@,$ac_abs_builddir,;t t
-s, at top_builddir@,$ac_top_builddir,;t t
-s, at abs_top_builddir@,$ac_abs_top_builddir,;t t
-s, at INSTALL@,$ac_INSTALL,;t t
-" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
-  rm -f $tmp/stdin
-  if test x"$ac_file" != x-; then
-    mv $tmp/out $ac_file
-  else
-    cat $tmp/out
-    rm -f $tmp/out
-  fi
+s&@configure_input@&$configure_input&;t t
+s&@top_builddir@&$ac_top_builddir_sub&;t t
+s&@srcdir@&$ac_srcdir&;t t
+s&@abs_srcdir@&$ac_abs_srcdir&;t t
+s&@top_srcdir@&$ac_top_srcdir&;t t
+s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
+s&@builddir@&$ac_builddir&;t t
+s&@abs_builddir@&$ac_abs_builddir&;t t
+s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
+s&@INSTALL@&$ac_INSTALL&;t t
+$ac_datarootdir_hack
+" $ac_file_inputs | sed -f "$tmp/subs-1.sed" | sed -f "$tmp/subs-2.sed" >$tmp/out
 
-done
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
+test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
+  { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
+  { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
+  { echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined.  Please make sure it is defined." >&5
+echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined.  Please make sure it is defined." >&2;}
 
-#
-# CONFIG_HEADER section.
-#
-
-# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
-# NAME is the cpp macro being defined and VALUE is the value it is being given.
-#
-# ac_d sets the value in "#define NAME VALUE" lines.
-ac_dA='s,^\([	 ]*\)#\([	 ]*define[	 ][	 ]*\)'
-ac_dB='[	 ].*$,\1#\2'
-ac_dC=' '
-ac_dD=',;t'
-# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
-ac_uA='s,^\([	 ]*\)#\([	 ]*\)undef\([	 ][	 ]*\)'
-ac_uB='$,\1#\2define\3'
-ac_uC=' '
-ac_uD=',;t'
-
-for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue
-  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+  rm -f "$tmp/stdin"
   case $ac_file in
-  - | *:- | *:-:* ) # input from stdin
-	cat >$tmp/stdin
-	ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-  *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-	ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-  * )   ac_file_in=$ac_file.in ;;
+  -) cat "$tmp/out"; rm -f "$tmp/out";;
+  *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;;
   esac
+ ;;
+  :H)
+  #
+  # CONFIG_HEADER
+  #
+_ACEOF
 
-  test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5
-echo "$as_me: creating $ac_file" >&6;}
+# Transform confdefs.h into a sed script `conftest.defines', that
+# substitutes the proper values into config.h.in to produce config.h.
+rm -f conftest.defines conftest.tail
+# First, append a space to every undef/define line, to ease matching.
+echo 's/$/ /' >conftest.defines
+# Then, protect against being on the right side of a sed subst, or in
+# an unquoted here document, in config.status.  If some macros were
+# called several times there might be several #defines for the same
+# symbol, which is useless.  But do not sort them, since the last
+# AC_DEFINE must be honored.
+ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
+# These sed commands are passed to sed as "A NAME B PARAMS C VALUE D", where
+# NAME is the cpp macro being defined, VALUE is the value it is being given.
+# PARAMS is the parameter list in the macro definition--in most cases, it's
+# just an empty string.
+ac_dA='s,^\\([	 #]*\\)[^	 ]*\\([	 ]*'
+ac_dB='\\)[	 (].*,\\1define\\2'
+ac_dC=' '
+ac_dD=' ,'
 
-  # First look for the input files in the build tree, otherwise in the
-  # src tree.
-  ac_file_inputs=`IFS=:
-    for f in $ac_file_in; do
-      case $f in
-      -) echo $tmp/stdin ;;
-      [\\/$]*)
-	 # Absolute (can't be DOS-style, as IFS=:)
-	 test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
-   { (exit 1); exit 1; }; }
-	 # Do quote $f, to prevent DOS paths from being IFS'd.
-	 echo "$f";;
-      *) # Relative
-	 if test -f "$f"; then
-	   # Build tree
-	   echo "$f"
-	 elif test -f "$srcdir/$f"; then
-	   # Source tree
-	   echo "$srcdir/$f"
-	 else
-	   # /dev/null tree
-	   { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-echo "$as_me: error: cannot find input file: $f" >&2;}
-   { (exit 1); exit 1; }; }
-	 fi;;
-      esac
-    done` || { (exit 1); exit 1; }
-  # Remove the trailing spaces.
-  sed 's/[	 ]*$//' $ac_file_inputs >$tmp/in
+uniq confdefs.h |
+  sed -n '
+	t rset
+	:rset
+	s/^[	 ]*#[	 ]*define[	 ][	 ]*//
+	t ok
+	d
+	:ok
+	s/[\\&,]/\\&/g
+	s/^\('"$ac_word_re"'\)\(([^()]*)\)[	 ]*\(.*\)/ '"$ac_dA"'\1'"$ac_dB"'\2'"${ac_dC}"'\3'"$ac_dD"'/p
+	s/^\('"$ac_word_re"'\)[	 ]*\(.*\)/'"$ac_dA"'\1'"$ac_dB$ac_dC"'\2'"$ac_dD"'/p
+  ' >>conftest.defines
 
-_ACEOF
-
-# Transform confdefs.h into two sed scripts, `conftest.defines' and
-# `conftest.undefs', that substitutes the proper values into
-# config.h.in to produce config.h.  The first handles `#define'
-# templates, and the second `#undef' templates.
-# And first: Protect against being on the right side of a sed subst in
-# config.status.  Protect against being in an unquoted here document
-# in config.status.
-rm -f conftest.defines conftest.undefs
-# Using a here document instead of a string reduces the quoting nightmare.
-# Putting comments in sed scripts is not portable.
-#
-# `end' is used to avoid that the second main sed command (meant for
-# 0-ary CPP macros) applies to n-ary macro definitions.
-# See the Autoconf documentation for `clear'.
-cat >confdef2sed.sed <<\_ACEOF
-s/[\\&,]/\\&/g
-s,[\\$`],\\&,g
-t clear
-: clear
-s,^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 (][^	 (]*\)\(([^)]*)\)[	 ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp
-t end
-s,^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 ][^	 ]*\)[	 ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp
-: end
-_ACEOF
-# If some macros were called several times there might be several times
-# the same #defines, which is useless.  Nevertheless, we may not want to
-# sort them, since we want the *last* AC-DEFINE to be honored.
-uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines
-sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs
-rm -f confdef2sed.sed
-
-# This sed command replaces #undef with comments.  This is necessary, for
+# Remove the space that was appended to ease matching.
+# Then replace #undef with comments.  This is necessary, for
 # example, in the case of _POSIX_SOURCE, which is predefined and required
 # on some systems where configure will not decide to define it.
-cat >>conftest.undefs <<\_ACEOF
-s,^[	 ]*#[	 ]*undef[	 ][	 ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */,
-_ACEOF
+# (The regexp can be short, since the line contains either #define or #undef.)
+echo 's/ $//
+s,^[	 #]*u.*,/* & */,' >>conftest.defines
 
-# Break up conftest.defines because some shells have a limit on the size
-# of here documents, and old seds have small limits too (100 cmds).
-echo '  # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS
-echo '  if grep "^[	 ]*#[	 ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS
-echo '  # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS
-echo '  :' >>$CONFIG_STATUS
-rm -f conftest.tail
-while grep . conftest.defines >/dev/null
+# Break up conftest.defines:
+ac_max_sed_lines=50
+
+# First sed command is:	 sed -f defines.sed $ac_file_inputs >"$tmp/out1"
+# Second one is:	 sed -f defines.sed "$tmp/out1" >"$tmp/out2"
+# Third one will be:	 sed -f defines.sed "$tmp/out2" >"$tmp/out1"
+# et cetera.
+ac_in='$ac_file_inputs'
+ac_out='"$tmp/out1"'
+ac_nxt='"$tmp/out2"'
+
+while :
 do
-  # Write a limited-size here document to $tmp/defines.sed.
-  echo '  cat >$tmp/defines.sed <<CEOF' >>$CONFIG_STATUS
-  # Speed up: don't consider the non `#define' lines.
-  echo '/^[	 ]*#[	 ]*define/!b' >>$CONFIG_STATUS
-  # Work around the forget-to-reset-the-flag bug.
-  echo 't clr' >>$CONFIG_STATUS
-  echo ': clr' >>$CONFIG_STATUS
-  sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS
+  # Write a here document:
+    cat >>$CONFIG_STATUS <<_ACEOF
+    # First, check the format of the line:
+    cat >"\$tmp/defines.sed" <<\\CEOF
+/^[	 ]*#[	 ]*undef[	 ][	 ]*$ac_word_re[	 ]*\$/b def
+/^[	 ]*#[	 ]*define[	 ][	 ]*$ac_word_re[(	 ]/b def
+b
+:def
+_ACEOF
+  sed ${ac_max_sed_lines}q conftest.defines >>$CONFIG_STATUS
   echo 'CEOF
-  sed -f $tmp/defines.sed $tmp/in >$tmp/out
-  rm -f $tmp/in
-  mv $tmp/out $tmp/in
-' >>$CONFIG_STATUS
-  sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail
+    sed -f "$tmp/defines.sed"' "$ac_in >$ac_out" >>$CONFIG_STATUS
+  ac_in=$ac_out; ac_out=$ac_nxt; ac_nxt=$ac_in
+  sed 1,${ac_max_sed_lines}d conftest.defines >conftest.tail
+  grep . conftest.tail >/dev/null || break
   rm -f conftest.defines
   mv conftest.tail conftest.defines
 done
-rm -f conftest.defines
-echo '  fi # grep' >>$CONFIG_STATUS
-echo >>$CONFIG_STATUS
+rm -f conftest.defines conftest.tail
 
-# Break up conftest.undefs because some shells have a limit on the size
-# of here documents, and old seds have small limits too (100 cmds).
-echo '  # Handle all the #undef templates' >>$CONFIG_STATUS
-rm -f conftest.tail
-while grep . conftest.undefs >/dev/null
-do
-  # Write a limited-size here document to $tmp/undefs.sed.
-  echo '  cat >$tmp/undefs.sed <<CEOF' >>$CONFIG_STATUS
-  # Speed up: don't consider the non `#undef'
-  echo '/^[	 ]*#[	 ]*undef/!b' >>$CONFIG_STATUS
-  # Work around the forget-to-reset-the-flag bug.
-  echo 't clr' >>$CONFIG_STATUS
-  echo ': clr' >>$CONFIG_STATUS
-  sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS
-  echo 'CEOF
-  sed -f $tmp/undefs.sed $tmp/in >$tmp/out
-  rm -f $tmp/in
-  mv $tmp/out $tmp/in
-' >>$CONFIG_STATUS
-  sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail
-  rm -f conftest.undefs
-  mv conftest.tail conftest.undefs
-done
-rm -f conftest.undefs
-
+echo "ac_result=$ac_in" >>$CONFIG_STATUS
 cat >>$CONFIG_STATUS <<\_ACEOF
-  # Let's still pretend it is `configure' which instantiates (i.e., don't
-  # use $as_me), people would be surprised to read:
-  #    /* config.h.  Generated by config.status.  */
-  if test x"$ac_file" = x-; then
-    echo "/* Generated by configure.  */" >$tmp/config.h
-  else
-    echo "/* $ac_file.  Generated by configure.  */" >$tmp/config.h
-  fi
-  cat $tmp/in >>$tmp/config.h
-  rm -f $tmp/in
   if test x"$ac_file" != x-; then
-    if diff $ac_file $tmp/config.h >/dev/null 2>&1; then
+    echo "/* $configure_input  */" >"$tmp/config.h"
+    cat "$ac_result" >>"$tmp/config.h"
+    if diff $ac_file "$tmp/config.h" >/dev/null 2>&1; then
       { echo "$as_me:$LINENO: $ac_file is unchanged" >&5
 echo "$as_me: $ac_file is unchanged" >&6;}
     else
-      ac_dir=`(dirname "$ac_file") 2>/dev/null ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$ac_file" : 'X\(//\)[^/]' \| \
-	 X"$ac_file" : 'X\(//\)$' \| \
-	 X"$ac_file" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X"$ac_file" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-      { if $as_mkdir_p; then
-    mkdir -p "$ac_dir"
-  else
-    as_dir="$ac_dir"
-    as_dirs=
-    while test ! -d "$as_dir"; do
-      as_dirs="$as_dir $as_dirs"
-      as_dir=`(dirname "$as_dir") 2>/dev/null ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$as_dir" : 'X\(//\)[^/]' \| \
-	 X"$as_dir" : 'X\(//\)$' \| \
-	 X"$as_dir" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-    done
-    test ! -n "$as_dirs" || mkdir $as_dirs
-  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
-   { (exit 1); exit 1; }; }; }
-
       rm -f $ac_file
-      mv $tmp/config.h $ac_file
+      mv "$tmp/config.h" $ac_file
     fi
   else
-    cat $tmp/config.h
-    rm -f $tmp/config.h
+    echo "/* $configure_input  */"
+    cat "$ac_result"
   fi
+  rm -f "$tmp/out12"
 # Compute $ac_file's index in $config_headers.
 _am_stamp_count=1
 for _am_header in $config_headers :; do
@@ -8802,135 +9912,39 @@
       _am_stamp_count=`expr $_am_stamp_count + 1` ;;
   esac
 done
-echo "timestamp for $ac_file" >`(dirname $ac_file) 2>/dev/null ||
+echo "timestamp for $ac_file" >`$as_dirname -- $ac_file ||
 $as_expr X$ac_file : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 	 X$ac_file : 'X\(//\)[^/]' \| \
 	 X$ac_file : 'X\(//\)$' \| \
-	 X$ac_file : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
+	 X$ac_file : 'X\(/\)' \| . 2>/dev/null ||
 echo X$ac_file |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`/stamp-h$_am_stamp_count
-done
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`/stamp-h$_am_stamp_count
+ ;;
 
-#
-# CONFIG_COMMANDS section.
-#
-for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue
-  ac_dest=`echo "$ac_file" | sed 's,:.*,,'`
-  ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'`
-  ac_dir=`(dirname "$ac_dest") 2>/dev/null ||
-$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$ac_dest" : 'X\(//\)[^/]' \| \
-	 X"$ac_dest" : 'X\(//\)$' \| \
-	 X"$ac_dest" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X"$ac_dest" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-  { if $as_mkdir_p; then
-    mkdir -p "$ac_dir"
-  else
-    as_dir="$ac_dir"
-    as_dirs=
-    while test ! -d "$as_dir"; do
-      as_dirs="$as_dir $as_dirs"
-      as_dir=`(dirname "$as_dir") 2>/dev/null ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$as_dir" : 'X\(//\)[^/]' \| \
-	 X"$as_dir" : 'X\(//\)$' \| \
-	 X"$as_dir" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
-echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-    done
-    test ! -n "$as_dirs" || mkdir $as_dirs
-  fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
-echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
-   { (exit 1); exit 1; }; }; }
+  :C)  { echo "$as_me:$LINENO: executing $ac_file commands" >&5
+echo "$as_me: executing $ac_file commands" >&6;}
+ ;;
+  esac
 
-  ac_builddir=.
 
-if test "$ac_dir" != .; then
-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
-  # A "../" for each directory in $ac_dir_suffix.
-  ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-else
-  ac_dir_suffix= ac_top_builddir=
-fi
-
-case $srcdir in
-  .)  # No --srcdir option.  We are building in place.
-    ac_srcdir=.
-    if test -z "$ac_top_builddir"; then
-       ac_top_srcdir=.
-    else
-       ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
-    fi ;;
-  [\\/]* | ?:[\\/]* )  # Absolute path.
-    ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir ;;
-  *) # Relative path.
-    ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_builddir$srcdir ;;
-esac
-
-# Do not use `cd foo && pwd` to compute absolute paths, because
-# the directories may not exist.
-case `pwd` in
-.) ac_abs_builddir="$ac_dir";;
-*)
-  case "$ac_dir" in
-  .) ac_abs_builddir=`pwd`;;
-  [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
-  *) ac_abs_builddir=`pwd`/"$ac_dir";;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_builddir=${ac_top_builddir}.;;
-*)
-  case ${ac_top_builddir}. in
-  .) ac_abs_top_builddir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
-  *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_srcdir=$ac_srcdir;;
-*)
-  case $ac_srcdir in
-  .) ac_abs_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
-  *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
-  esac;;
-esac
-case $ac_abs_builddir in
-.) ac_abs_top_srcdir=$ac_top_srcdir;;
-*)
-  case $ac_top_srcdir in
-  .) ac_abs_top_srcdir=$ac_abs_builddir;;
-  [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
-  *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
-  esac;;
-esac
-
-
-  { echo "$as_me:$LINENO: executing $ac_dest commands" >&5
-echo "$as_me: executing $ac_dest commands" >&6;}
-  case $ac_dest in
-    depfiles ) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do
+  case $ac_file$ac_mode in
+    "depfiles":C) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; 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.
@@ -8940,18 +9954,29 @@
   # each Makefile.in and add a new line on top of each file to say so.
   # So let's grep whole file.
   if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
-    dirpart=`(dirname "$mf") 2>/dev/null ||
+    dirpart=`$as_dirname -- "$mf" ||
 $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 	 X"$mf" : 'X\(//\)[^/]' \| \
 	 X"$mf" : 'X\(//\)$' \| \
-	 X"$mf" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
+	 X"$mf" : 'X\(/\)' \| . 2>/dev/null ||
 echo X"$mf" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
   else
     continue
   fi
@@ -8979,56 +10004,82 @@
        sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
     # Make sure the directory exists.
     test -f "$dirpart/$file" && continue
-    fdir=`(dirname "$file") 2>/dev/null ||
+    fdir=`$as_dirname -- "$file" ||
 $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 	 X"$file" : 'X\(//\)[^/]' \| \
 	 X"$file" : 'X\(//\)$' \| \
-	 X"$file" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
+	 X"$file" : 'X\(/\)' \| . 2>/dev/null ||
 echo X"$file" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
-    { if $as_mkdir_p; then
-    mkdir -p $dirpart/$fdir
-  else
-    as_dir=$dirpart/$fdir
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+    { as_dir=$dirpart/$fdir
+  case $as_dir in #(
+  -*) as_dir=./$as_dir;;
+  esac
+  test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || {
     as_dirs=
-    while test ! -d "$as_dir"; do
-      as_dirs="$as_dir $as_dirs"
-      as_dir=`(dirname "$as_dir") 2>/dev/null ||
+    while :; do
+      case $as_dir in #(
+      *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #(
+      *) as_qdir=$as_dir;;
+      esac
+      as_dirs="'$as_qdir' $as_dirs"
+      as_dir=`$as_dirname -- "$as_dir" ||
 $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 	 X"$as_dir" : 'X\(//\)[^/]' \| \
 	 X"$as_dir" : 'X\(//\)$' \| \
-	 X"$as_dir" : 'X\(/\)' \| \
-	 .     : '\(.\)' 2>/dev/null ||
+	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
 echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-  	  /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-  	  /^X\(\/\/\)$/{ s//\1/; q; }
-  	  /^X\(\/\).*/{ s//\1/; q; }
-  	  s/.*/./; q'`
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+      test -d "$as_dir" && break
     done
-    test ! -n "$as_dirs" || mkdir $as_dirs
-  fi || { { echo "$as_me:$LINENO: error: cannot create directory $dirpart/$fdir" >&5
-echo "$as_me: error: cannot create directory $dirpart/$fdir" >&2;}
+    test -z "$as_dirs" || eval "mkdir $as_dirs"
+  } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
+echo "$as_me: error: cannot create directory $as_dir" >&2;}
    { (exit 1); exit 1; }; }; }
-
     # echo "creating $dirpart/$file"
     echo '# dummy' > "$dirpart/$file"
   done
 done
  ;;
-    default-1 ) case "$CONFIG_FILES" in *po/Makefile.in*)
+    "default-1":C) case "$CONFIG_FILES" in *po/Makefile.in*)
         sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile
       esac ;;
+
   esac
-done
-_ACEOF
+done # for ac_tag
 
-cat >>$CONFIG_STATUS <<\_ACEOF
 
 { (exit 0); exit 0; }
 _ACEOF

Modified: gtkpod/branches/upstream/current/configure.in
===================================================================
--- gtkpod/branches/upstream/current/configure.in	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/configure.in	2006-09-30 00:00:17 UTC (rev 139)
@@ -4,7 +4,7 @@
 AC_PREREQ(2.55)
 
 AC_INIT(configure.in)
-AM_INIT_AUTOMAKE(gtkpod, 0.99.4)
+AM_INIT_AUTOMAKE(gtkpod, 0.99.8)
 AM_CONFIG_HEADER(config.h)
 AM_MAINTAINER_MODE
 AC_CANONICAL_HOST
@@ -17,6 +17,12 @@
   if test -z "`echo "$CFLAGS" | grep "\-Wall" 2> /dev/null`" ; then
     CFLAGS="$CFLAGS -Wall"
   fi
+  # gcc < 4.0 does not know '-Wno-pointer-sign'. Try to find out
+  # whether we can set this option or not.
+  CFLAGS_orig=$CFLAGS
+  CFLAGS="$CFLAGS -Wno-pointer-sign"
+  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdio.h>]])],
+                    [], [CFLAGS=$CFLAGS_orig])
 fi
 
 GETTEXT_PACKAGE=gtkpod
@@ -31,7 +37,7 @@
 fi
 
 dnl check for libs that are managed with pkg-config
-PKG_CHECK_MODULES(PACKAGE, [gtk+-2.0 >= 2.4.0 gthread-2.0 >= 0.14.0 glib-2.0 > 2.4.0 libglade-2.0  >=  2.4.0 gmodule-2.0 libgpod-1.0 >= 0.3.0],,[AC_MSG_FAILURE([*** $PACKAGE_PKG_ERRORS])])
+PKG_CHECK_MODULES(PACKAGE, [gtk+-2.0 >= 2.4.0 gthread-2.0 >= 0.14.0 glib-2.0 > 2.4.0 libglade-2.0  >=  2.4.0 gmodule-2.0 libgpod-1.0 >= 0.4.0],,[AC_MSG_FAILURE([*** $PACKAGE_PKG_ERRORS])])
 AC_SUBST(PACKAGE_CFLAGS)
 AC_SUBST(PACKAGE_LIBS)
 
@@ -50,7 +56,7 @@
 AC_SUBST(UMOUNT)
 
 dnl Add the languages which your application supports here.
-ALL_LINGUAS="de fr he it ja sv"
+ALL_LINGUAS="de es fr he it ja sv"
 AM_GLIB_GNU_GETTEXT
 
 dnl Check if we have to supply getopt_long

Modified: gtkpod/branches/upstream/current/gtkpod.glade
===================================================================
--- gtkpod/branches/upstream/current/gtkpod.glade	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/gtkpod.glade	2006-09-30 00:00:17 UTC (rev 139)
@@ -18,6 +18,8 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
+  <property name="urgency_hint">False</property>
   <signal name="delete_event" handler="on_gtkpod_delete_event" last_modification_time="Sun, 24 Nov 2002 13:00:13 GMT"/>
 
   <child>
@@ -29,6 +31,8 @@
       <child>
 	<widget class="GtkMenuBar" id="menubar">
 	  <property name="visible">True</property>
+	  <property name="pack_direction">GTK_PACK_DIRECTION_LTR</property>
+	  <property name="child_pack_direction">GTK_PACK_DIRECTION_LTR</property>
 
 	  <child>
 	    <widget class="GtkMenuItem" id="menuitem10">
@@ -40,17 +44,16 @@
 		<widget class="GtkMenu" id="menuitem10_menu">
 
 		  <child>
-		    <widget class="GtkImageMenuItem" id="import_itunes_mi">
+		    <widget class="GtkImageMenuItem" id="load_ipods_mi">
 		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">_Read iTunesDB</property>
+		      <property name="label" translatable="yes">_Load iPod(s)</property>
 		      <property name="use_underline">True</property>
-		      <signal name="activate" handler="on_import_itunes_mi_activate" last_modification_time="Tue, 07 Jan 2003 20:31:20 GMT"/>
+		      <signal name="activate" handler="on_load_ipods_mi" last_modification_time="Sat, 20 May 2006 14:21:46 GMT"/>
 
 		      <child internal-child="image">
-			<widget class="GtkImage" id="image3449">
+			<widget class="GtkImage" id="image3836">
 			  <property name="visible">True</property>
-			  <property name="stock">gtk-goto-top</property>
-			  <property name="icon_size">1</property>
+			  <property name="pixbuf">gtkpod-read.png</property>
 			  <property name="xalign">0.5</property>
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
@@ -61,16 +64,16 @@
 		  </child>
 
 		  <child>
-		    <widget class="GtkImageMenuItem" id="add_files1">
+		    <widget class="GtkImageMenuItem" id="save_changes_mi">
 		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">Add _Files</property>
+		      <property name="label" translatable="yes">_Save Changes</property>
 		      <property name="use_underline">True</property>
-		      <signal name="activate" handler="create_add_files_dialog" last_modification_time="Sun, 05 Jun 2005 13:03:47 GMT"/>
+		      <signal name="activate" handler="on_save_changes_mi" last_modification_time="Sat, 20 May 2006 14:22:12 GMT"/>
 
 		      <child internal-child="image">
-			<widget class="GtkImage" id="image3450">
+			<widget class="GtkImage" id="image3837">
 			  <property name="visible">True</property>
-			  <property name="stock">gtk-add</property>
+			  <property name="stock">gtk-save</property>
 			  <property name="icon_size">1</property>
 			  <property name="xalign">0.5</property>
 			  <property name="yalign">0.5</property>
@@ -82,14 +85,14 @@
 		  </child>
 
 		  <child>
-		    <widget class="GtkImageMenuItem" id="add_directory1">
+		    <widget class="GtkImageMenuItem" id="add_files1">
 		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">Add _Directory</property>
+		      <property name="label" translatable="yes">Add _Files</property>
 		      <property name="use_underline">True</property>
-		      <signal name="activate" handler="dirbrowser_create" last_modification_time="Sun, 05 Jun 2005 13:09:31 GMT"/>
+		      <signal name="activate" handler="create_add_files_dialog" last_modification_time="Sun, 05 Jun 2005 13:03:47 GMT"/>
 
 		      <child internal-child="image">
-			<widget class="GtkImage" id="image3451">
+			<widget class="GtkImage" id="image3838">
 			  <property name="visible">True</property>
 			  <property name="stock">gtk-add</property>
 			  <property name="icon_size">1</property>
@@ -103,14 +106,14 @@
 		  </child>
 
 		  <child>
-		    <widget class="GtkImageMenuItem" id="add_playlist1">
+		    <widget class="GtkImageMenuItem" id="add_directory1">
 		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">Add _Playlist</property>
+		      <property name="label" translatable="yes">Add _Directory</property>
 		      <property name="use_underline">True</property>
-		      <signal name="activate" handler="create_add_playlists_dialog" last_modification_time="Sun, 05 Jun 2005 13:14:57 GMT"/>
+		      <signal name="activate" handler="dirbrowser_create" last_modification_time="Sun, 05 Jun 2005 13:09:31 GMT"/>
 
 		      <child internal-child="image">
-			<widget class="GtkImage" id="image3452">
+			<widget class="GtkImage" id="image3839">
 			  <property name="visible">True</property>
 			  <property name="stock">gtk-add</property>
 			  <property name="icon_size">1</property>
@@ -124,16 +127,16 @@
 		  </child>
 
 		  <child>
-		    <widget class="GtkImageMenuItem" id="export_itunes1">
+		    <widget class="GtkImageMenuItem" id="add_playlist1">
 		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">Synchronize _iTunesDB</property>
+		      <property name="label" translatable="yes">Add _Playlist</property>
 		      <property name="use_underline">True</property>
-		      <signal name="activate" handler="handle_export" last_modification_time="Sun, 05 Jun 2005 13:09:31 GMT"/>
+		      <signal name="activate" handler="create_add_playlists_dialog" last_modification_time="Sun, 05 Jun 2005 13:14:57 GMT"/>
 
 		      <child internal-child="image">
-			<widget class="GtkImage" id="image3453">
+			<widget class="GtkImage" id="image3840">
 			  <property name="visible">True</property>
-			  <property name="stock">gtk-goto-bottom</property>
+			  <property name="stock">gtk-add</property>
 			  <property name="icon_size">1</property>
 			  <property name="xalign">0.5</property>
 			  <property name="yalign">0.5</property>
@@ -151,40 +154,13 @@
 		  </child>
 
 		  <child>
-		    <widget class="GtkImageMenuItem" id="update_podcasts">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">Update Podcasts</property>
-		      <property name="use_underline">True</property>
-		      <signal name="activate" handler="on_update_podcasts_activate" last_modification_time="Sat, 12 Nov 2005 08:41:04 GMT"/>
-
-		      <child internal-child="image">
-			<widget class="GtkImage" id="image3454">
-			  <property name="visible">True</property>
-			  <property name="stock">gtk-refresh</property>
-			  <property name="icon_size">1</property>
-			  <property name="xalign">0.5</property>
-			  <property name="yalign">0.5</property>
-			  <property name="xpad">0</property>
-			  <property name="ypad">0</property>
-			</widget>
-		      </child>
-		    </widget>
-		  </child>
-
-		  <child>
-		    <widget class="GtkSeparatorMenuItem" id="update_podcasts_sep">
-		      <property name="visible">True</property>
-		    </widget>
-		  </child>
-
-		  <child>
 		    <widget class="GtkImageMenuItem" id="update_menu">
 		      <property name="visible">True</property>
 		      <property name="label" translatable="yes">_Update Tracks from File</property>
 		      <property name="use_underline">True</property>
 
 		      <child internal-child="image">
-			<widget class="GtkImage" id="image3455">
+			<widget class="GtkImage" id="image3841">
 			  <property name="visible">True</property>
 			  <property name="stock">gtk-refresh</property>
 			  <property name="icon_size">1</property>
@@ -236,7 +212,7 @@
 		      <property name="use_underline">True</property>
 
 		      <child internal-child="image">
-			<widget class="GtkImage" id="image3456">
+			<widget class="GtkImage" id="image3842">
 			  <property name="visible">True</property>
 			  <property name="stock">gtk-refresh</property>
 			  <property name="icon_size">1</property>
@@ -284,11 +260,12 @@
 		  <child>
 		    <widget class="GtkImageMenuItem" id="sync_menu">
 		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">_Synchronize Directories</property>
+		      <property name="label" translatable="yes">_Synchronize Playlist</property>
 		      <property name="use_underline">True</property>
+		      <signal name="activate" handler="on_sync_playlist_activate" last_modification_time="Mon, 15 May 2006 15:39:05 GMT"/>
 
 		      <child internal-child="image">
-			<widget class="GtkImage" id="image3457">
+			<widget class="GtkImage" id="image3843">
 			  <property name="visible">True</property>
 			  <property name="stock">gtk-refresh</property>
 			  <property name="icon_size">1</property>
@@ -298,38 +275,6 @@
 			  <property name="ypad">0</property>
 			</widget>
 		      </child>
-
-		      <child>
-			<widget class="GtkMenu" id="sync_menu_menu">
-
-			  <child>
-			    <widget class="GtkMenuItem" id="sync_playlist_menu">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">Selected _Playlist</property>
-			      <property name="use_underline">True</property>
-			      <signal name="activate" handler="on_sync_playlist_activate" last_modification_time="Sun, 23 Mar 2003 09:00:04 GMT"/>
-			    </widget>
-			  </child>
-
-			  <child>
-			    <widget class="GtkMenuItem" id="sync_tab_entry_menu">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">Selected Tab _Entry</property>
-			      <property name="use_underline">True</property>
-			      <signal name="activate" handler="on_sync_tab_entry_activate" last_modification_time="Sat, 15 Mar 2003 03:49:29 GMT"/>
-			    </widget>
-			  </child>
-
-			  <child>
-			    <widget class="GtkMenuItem" id="sync_tracks_menu">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">Selected _Tracks</property>
-			      <property name="use_underline">True</property>
-			      <signal name="activate" handler="on_sync_tracks_activate" last_modification_time="Sun, 23 Mar 2003 09:00:04 GMT"/>
-			    </widget>
-			  </child>
-			</widget>
-		      </child>
 		    </widget>
 		  </child>
 
@@ -346,9 +291,9 @@
 		      <property name="use_underline">True</property>
 
 		      <child internal-child="image">
-			<widget class="GtkImage" id="image3458">
+			<widget class="GtkImage" id="image3844">
 			  <property name="visible">True</property>
-			  <property name="stock">gtk-floppy</property>
+			  <property name="stock">gtk-save-as</property>
 			  <property name="icon_size">1</property>
 			  <property name="xalign">0.5</property>
 			  <property name="yalign">0.5</property>
@@ -398,9 +343,9 @@
 		      <property name="use_underline">True</property>
 
 		      <child internal-child="image">
-			<widget class="GtkImage" id="image3459">
+			<widget class="GtkImage" id="image3845">
 			  <property name="visible">True</property>
-			  <property name="stock">gtk-floppy</property>
+			  <property name="stock">gtk-save-as</property>
 			  <property name="icon_size">1</property>
 			  <property name="xalign">0.5</property>
 			  <property name="yalign">0.5</property>
@@ -450,22 +395,6 @@
 		  </child>
 
 		  <child>
-		    <widget class="GtkCheckMenuItem" id="offline_menu">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">_Offline</property>
-		      <property name="use_underline">True</property>
-		      <property name="active">False</property>
-		      <signal name="activate" handler="on_offline1_activate" last_modification_time="Sat, 04 Jan 2003 16:51:55 GMT"/>
-		    </widget>
-		  </child>
-
-		  <child>
-		    <widget class="GtkSeparatorMenuItem" id="trennlinie1">
-		      <property name="visible">True</property>
-		    </widget>
-		  </child>
-
-		  <child>
 		    <widget class="GtkImageMenuItem" id="ipod_directories">
 		      <property name="visible">True</property>
 		      <property name="label" translatable="yes">_Create iPod's Directories</property>
@@ -473,7 +402,7 @@
 		      <signal name="activate" handler="on_ipod_directories_menu" last_modification_time="Sat, 18 Jan 2003 02:10:39 GMT"/>
 
 		      <child internal-child="image">
-			<widget class="GtkImage" id="image3460">
+			<widget class="GtkImage" id="image3846">
 			  <property name="visible">True</property>
 			  <property name="stock">gtk-execute</property>
 			  <property name="icon_size">1</property>
@@ -525,13 +454,13 @@
 		<widget class="GtkMenu" id="edit_menu_menu">
 
 		  <child>
-		    <widget class="GtkImageMenuItem" id="edit_menu">
+		    <widget class="GtkImageMenuItem" id="edit_details_menu">
 		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">Edit</property>
+		      <property name="label" translatable="yes">Edit Track Details</property>
 		      <property name="use_underline">True</property>
 
 		      <child internal-child="image">
-			<widget class="GtkImage" id="image3461">
+			<widget class="GtkImage" id="image3847">
 			  <property name="visible">True</property>
 			  <property name="stock">gtk-edit</property>
 			  <property name="icon_size">1</property>
@@ -543,7 +472,7 @@
 		      </child>
 
 		      <child>
-			<widget class="GtkMenu" id="edit_menu_menu">
+			<widget class="GtkMenu" id="edit_details_menu_menu">
 
 			  <child>
 			    <widget class="GtkMenuItem" id="edit_details_selected_playlist">
@@ -571,28 +500,28 @@
 			      <signal name="activate" handler="on_edit_details_selected_tracks" last_modification_time="Fri, 09 Dec 2005 15:42:30 GMT"/>
 			    </widget>
 			  </child>
-
-			  <child>
-			    <widget class="GtkMenuItem" id="edit_smart_playlist">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">Smart Playlist</property>
-			      <property name="use_underline">True</property>
-			      <signal name="activate" handler="on_edit_smart_playlist" last_modification_time="Sat, 10 Dec 2005 07:48:01 GMT"/>
-			    </widget>
-			  </child>
 			</widget>
 		      </child>
 		    </widget>
 		  </child>
 
 		  <child>
+		    <widget class="GtkMenuItem" id="edit_smart_playlist">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes">Edit Smart Playlist</property>
+		      <property name="use_underline">True</property>
+		      <signal name="activate" handler="on_edit_smart_playlist" last_modification_time="Sat, 10 Dec 2005 07:48:01 GMT"/>
+		    </widget>
+		  </child>
+
+		  <child>
 		    <widget class="GtkImageMenuItem" id="delete_menu">
 		      <property name="visible">True</property>
 		      <property name="label" translatable="yes">_Delete</property>
 		      <property name="use_underline">True</property>
 
 		      <child internal-child="image">
-			<widget class="GtkImage" id="image3462">
+			<widget class="GtkImage" id="image3848">
 			  <property name="visible">True</property>
 			  <property name="stock">gtk-delete</property>
 			  <property name="icon_size">1</property>
@@ -737,13 +666,13 @@
 		  </child>
 
 		  <child>
-		    <widget class="GtkImageMenuItem" id="item2">
+		    <widget class="GtkImageMenuItem" id="create_playlists_menu">
 		      <property name="visible">True</property>
 		      <property name="label" translatable="yes">_Create Playlists</property>
 		      <property name="use_underline">True</property>
 
 		      <child internal-child="image">
-			<widget class="GtkImage" id="image3463">
+			<widget class="GtkImage" id="image3849">
 			  <property name="visible">True</property>
 			  <property name="stock">gtk-copy</property>
 			  <property name="icon_size">1</property>
@@ -755,7 +684,7 @@
 		      </child>
 
 		      <child>
-			<widget class="GtkMenu" id="item2_menu">
+			<widget class="GtkMenu" id="create_playlists_menu_menu">
 
 			  <child>
 			    <widget class="GtkMenuItem" id="new_playlist1">
@@ -776,6 +705,12 @@
 			  </child>
 
 			  <child>
+			    <widget class="GtkSeparatorMenuItem" id="separator8">
+			      <property name="visible">True</property>
+			    </widget>
+			  </child>
+
+			  <child>
 			    <widget class="GtkMenuItem" id="random_playlist">
 			      <property name="visible">True</property>
 			      <property name="label" translatable="yes">Random Playlist from Displayed Tracks</property>
@@ -915,15 +850,6 @@
 		  </child>
 
 		  <child>
-		    <widget class="GtkMenuItem" id="randomize_current_playlist">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">Randomize Current Playlist</property>
-		      <property name="use_underline">True</property>
-		      <signal name="activate" handler="on_randomize_current_playlist_activate" last_modification_time="Fri, 19 Mar 2004 17:27:51 GMT"/>
-		    </widget>
-		  </child>
-
-		  <child>
 		    <widget class="GtkSeparatorMenuItem" id="separator1">
 		      <property name="visible">True</property>
 		    </widget>
@@ -938,7 +864,7 @@
 		      <accelerator key="s" modifiers="GDK_CONTROL_MASK" signal="activate"/>
 
 		      <child internal-child="image">
-			<widget class="GtkImage" id="image3464">
+			<widget class="GtkImage" id="image3850">
 			  <property name="visible">True</property>
 			  <property name="stock">gtk-sort-ascending</property>
 			  <property name="icon_size">1</property>
@@ -952,15 +878,24 @@
 		  </child>
 
 		  <child>
-		    <widget class="GtkImageMenuItem" id="save_track_order1">
+		    <widget class="GtkMenuItem" id="randomize_current_playlist_menu">
 		      <property name="visible">True</property>
+		      <property name="label" translatable="yes">Randomize Current Playlist</property>
+		      <property name="use_underline">True</property>
+		      <signal name="activate" handler="on_randomize_current_playlist_activate" last_modification_time="Fri, 19 Mar 2004 17:27:51 GMT"/>
+		    </widget>
+		  </child>
+
+		  <child>
+		    <widget class="GtkImageMenuItem" id="save_track_order_menu">
+		      <property name="visible">True</property>
 		      <property name="label" translatable="yes">_Save Displayed Track Order</property>
 		      <property name="use_underline">True</property>
 		      <signal name="activate" handler="on_save_track_order1_activate" last_modification_time="Sat, 08 Mar 2003 13:45:01 GMT"/>
 		      <accelerator key="s" modifiers="GDK_CONTROL_MASK | GDK_SHIFT_MASK" signal="activate"/>
 
 		      <child internal-child="image">
-			<widget class="GtkImage" id="image3465">
+			<widget class="GtkImage" id="image3851">
 			  <property name="visible">True</property>
 			  <property name="stock">gtk-justify-fill</property>
 			  <property name="icon_size">1</property>
@@ -980,15 +915,36 @@
 		  </child>
 
 		  <child>
-		    <widget class="GtkImageMenuItem" id="edit_preferences1">
+		    <widget class="GtkImageMenuItem" id="edit_repository_options">
 		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">_Edit Preferences</property>
+		      <property name="label" translatable="yes">Edit Repository/iPod Options</property>
 		      <property name="use_underline">True</property>
-		      <signal name="activate" handler="on_edit_preferences1_activate" last_modification_time="Sat, 21 Dec 2002 23:32:23 GMT"/>
+		      <signal name="activate" handler="on_edit_repository_options_activate" last_modification_time="Sun, 21 May 2006 03:40:14 GMT"/>
+
+		      <child internal-child="image">
+			<widget class="GtkImage" id="image3852">
+			  <property name="visible">True</property>
+			  <property name="stock">gtk-preferences</property>
+			  <property name="icon_size">1</property>
+			  <property name="xalign">0.5</property>
+			  <property name="yalign">0.5</property>
+			  <property name="xpad">0</property>
+			  <property name="ypad">0</property>
+			</widget>
+		      </child>
+		    </widget>
+		  </child>
+
+		  <child>
+		    <widget class="GtkImageMenuItem" id="edit_preferences">
+		      <property name="visible">True</property>
+		      <property name="label" translatable="yes">Edit _Preferences</property>
+		      <property name="use_underline">True</property>
+		      <signal name="activate" handler="on_edit_preferences_activate" last_modification_time="Sun, 21 May 2006 03:41:05 GMT"/>
 		      <accelerator key="p" modifiers="GDK_CONTROL_MASK" signal="activate"/>
 
 		      <child internal-child="image">
-			<widget class="GtkImage" id="image3466">
+			<widget class="GtkImage" id="image3853">
 			  <property name="visible">True</property>
 			  <property name="stock">gtk-preferences</property>
 			  <property name="icon_size">1</property>
@@ -1053,7 +1009,7 @@
 		      <signal name="activate" handler="on_more_sort_tabs_activate" last_modification_time="Fri, 14 Mar 2003 11:57:43 GMT"/>
 
 		      <child internal-child="image">
-			<widget class="GtkImage" id="image3467">
+			<widget class="GtkImage" id="image3854">
 			  <property name="visible">True</property>
 			  <property name="stock">gtk-add</property>
 			  <property name="icon_size">1</property>
@@ -1074,7 +1030,7 @@
 		      <signal name="activate" handler="on_less_sort_tabs_activate" last_modification_time="Fri, 14 Mar 2003 11:57:43 GMT"/>
 
 		      <child internal-child="image">
-			<widget class="GtkImage" id="image3468">
+			<widget class="GtkImage" id="image3855">
 			  <property name="visible">True</property>
 			  <property name="stock">gtk-remove</property>
 			  <property name="icon_size">1</property>
@@ -1116,7 +1072,7 @@
 		      <property name="use_underline">True</property>
 
 		      <child internal-child="image">
-			<widget class="GtkImage" id="image3469">
+			<widget class="GtkImage" id="image3856">
 			  <property name="visible">True</property>
 			  <property name="stock">gtk-cdrom</property>
 			  <property name="icon_size">1</property>
@@ -1168,7 +1124,7 @@
 		      <property name="use_underline">True</property>
 
 		      <child internal-child="image">
-			<widget class="GtkImage" id="image3470">
+			<widget class="GtkImage" id="image3857">
 			  <property name="visible">True</property>
 			  <property name="stock">gtk-cdrom</property>
 			  <property name="icon_size">1</property>
@@ -1350,7 +1306,7 @@
 		      <signal name="activate" handler="open_about_window" last_modification_time="Sun, 05 Jun 2005 13:09:31 GMT"/>
 
 		      <child internal-child="image">
-			<widget class="GtkImage" id="image3471">
+			<widget class="GtkImage" id="image3858">
 			  <property name="visible">True</property>
 			  <property name="stock">gtk-dialog-info</property>
 			  <property name="icon_size">1</property>
@@ -1383,16 +1339,16 @@
 	  <property name="show_arrow">True</property>
 
 	  <child>
-	    <widget class="GtkToolButton" id="import_button">
+	    <widget class="GtkToolButton" id="load_ipods_button">
 	      <property name="visible">True</property>
-	      <property name="tooltip" translatable="yes">Read Existing Database from Disk/iPod</property>
-	      <property name="label" translatable="yes">Read</property>
+	      <property name="tooltip" translatable="yes">Try to load contents of all connected iPods. For each iPod a separate repository must be set up.</property>
+	      <property name="label" translatable="yes">Load iPod(s)</property>
 	      <property name="use_underline">True</property>
 	      <property name="icon">gtkpod-read.png</property>
 	      <property name="visible_horizontal">True</property>
 	      <property name="visible_vertical">True</property>
 	      <property name="is_important">False</property>
-	      <signal name="clicked" handler="on_import_button_clicked" last_modification_time="Tue, 07 Jan 2003 20:32:12 GMT"/>
+	      <signal name="clicked" handler="on_load_ipods_clicked" last_modification_time="Sat, 20 May 2006 14:20:43 GMT"/>
 	    </widget>
 	    <packing>
 	      <property name="expand">False</property>
@@ -1401,6 +1357,24 @@
 	  </child>
 
 	  <child>
+	    <widget class="GtkToolButton" id="save_changes_button">
+	      <property name="visible">True</property>
+	      <property name="tooltip" translatable="yes">Write all changes made to the disk and the iPod(s).</property>
+	      <property name="label" translatable="yes">Save Changes</property>
+	      <property name="use_underline">True</property>
+	      <property name="stock_id">gtk-save</property>
+	      <property name="visible_horizontal">True</property>
+	      <property name="visible_vertical">True</property>
+	      <property name="is_important">False</property>
+	      <signal name="clicked" handler="on_save_changes_clicked" last_modification_time="Sat, 20 May 2006 14:20:33 GMT"/>
+	    </widget>
+	    <packing>
+	      <property name="expand">False</property>
+	      <property name="homogeneous">True</property>
+	    </packing>
+	  </child>
+
+	  <child>
 	    <widget class="GtkToolButton" id="add_files_button">
 	      <property name="visible">True</property>
 	      <property name="tooltip" translatable="yes">Add Files or Directories</property>
@@ -1473,24 +1447,6 @@
 	  </child>
 
 	  <child>
-	    <widget class="GtkToolButton" id="export_button">
-	      <property name="visible">True</property>
-	      <property name="tooltip" translatable="yes">Write Changes to Disk/iPod</property>
-	      <property name="label" translatable="yes">Sync</property>
-	      <property name="use_underline">True</property>
-	      <property name="icon">gtkpod-sync.png</property>
-	      <property name="visible_horizontal">True</property>
-	      <property name="visible_vertical">True</property>
-	      <property name="is_important">False</property>
-	      <signal name="clicked" handler="handle_export" last_modification_time="Sun, 05 Jun 2005 13:11:12 GMT"/>
-	    </widget>
-	    <packing>
-	      <property name="expand">False</property>
-	      <property name="homogeneous">True</property>
-	    </packing>
-	  </child>
-
-	  <child>
 	    <widget class="GtkToolButton" id="stop_button">
 	      <property name="tooltip" translatable="yes">Stop Display Update</property>
 	      <property name="label" translatable="yes">Stop</property>
@@ -1680,6 +1636,8 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
+  <property name="urgency_hint">False</property>
   <signal name="delete_event" handler="on_about_window_close" last_modification_time="Sat, 30 Nov 2002 16:10:01 GMT"/>
 
   <child>
@@ -1723,6 +1681,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="padding">0</property>
@@ -1797,6 +1759,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="type">tab</property>
@@ -1851,6 +1817,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="type">tab</property>
@@ -1901,12 +1871,13 @@
   <property name="modal">False</property>
   <property name="resizable">True</property>
   <property name="destroy_with_parent">False</property>
-  <property name="icon">gtkpod-icon-48.png</property>
   <property name="decorated">True</property>
   <property name="skip_taskbar_hint">False</property>
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
+  <property name="urgency_hint">False</property>
 
   <child>
     <widget class="GtkViewport" id="special_viewport">
@@ -1939,6 +1910,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -2188,6 +2163,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -2272,6 +2251,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -2345,6 +2328,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -2511,6 +2498,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -2646,6 +2637,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -2712,6 +2707,8 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
+  <property name="urgency_hint">False</property>
 
   <child>
     <widget class="GtkScrolledWindow" id="scrolledwindow4">
@@ -2753,6 +2750,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">3</property>
@@ -2793,6 +2794,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -2815,6 +2820,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">3</property>
@@ -2892,6 +2901,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">3</property>
@@ -2937,6 +2950,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">2</property>
@@ -3027,6 +3044,10 @@
 				      <property name="yalign">0.5</property>
 				      <property name="xpad">0</property>
 				      <property name="ypad">0</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">0</property>
 				    </widget>
 				    <packing>
 				      <property name="padding">0</property>
@@ -3143,6 +3164,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">2</property>
@@ -3233,6 +3258,10 @@
 				      <property name="yalign">0.5</property>
 				      <property name="xpad">0</property>
 				      <property name="ypad">0</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">0</property>
 				    </widget>
 				    <packing>
 				      <property name="padding">0</property>
@@ -3406,6 +3435,8 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
+  <property name="urgency_hint">False</property>
   <signal name="delete_event" handler="on_sort_window_delete_event" last_modification_time="Mon, 22 Sep 2003 11:54:32 GMT"/>
 
   <child>
@@ -3434,6 +3465,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="padding">0</property>
@@ -3461,6 +3496,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -3489,6 +3528,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">4</property>
@@ -3661,7 +3704,6 @@
 
 			      <child>
 				<widget class="GtkRadioButton" id="pm_none">
-				  <property name="visible">True</property>
 				  <property name="can_focus">True</property>
 				  <property name="relief">GTK_RELIEF_NORMAL</property>
 				  <property name="focus_on_click">True</property>
@@ -3700,7 +3742,6 @@
 
 			  <child>
 			    <widget class="GtkHBox" id="hbox32">
-			      <property name="visible">True</property>
 			      <property name="homogeneous">True</property>
 			      <property name="spacing">0</property>
 
@@ -3747,7 +3788,6 @@
 
 			  <child>
 			    <widget class="GtkHBox" id="hbox37">
-			      <property name="visible">True</property>
 			      <property name="homogeneous">True</property>
 			      <property name="spacing">0</property>
 
@@ -3872,6 +3912,10 @@
 				  <property name="yalign">0.5</property>
 				  <property name="xpad">0</property>
 				  <property name="ypad">0</property>
+				  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				  <property name="width_chars">-1</property>
+				  <property name="single_line_mode">False</property>
+				  <property name="angle">0</property>
 				</widget>
 				<packing>
 				  <property name="left_attach">0</property>
@@ -3916,6 +3960,10 @@
 				  <property name="yalign">0.5</property>
 				  <property name="xpad">0</property>
 				  <property name="ypad">0</property>
+				  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				  <property name="width_chars">-1</property>
+				  <property name="single_line_mode">False</property>
+				  <property name="angle">0</property>
 				</widget>
 				<packing>
 				  <property name="left_attach">0</property>
@@ -3960,6 +4008,10 @@
 				  <property name="yalign">0.5</property>
 				  <property name="xpad">0</property>
 				  <property name="ypad">0</property>
+				  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				  <property name="width_chars">-1</property>
+				  <property name="single_line_mode">False</property>
+				  <property name="angle">0</property>
 				</widget>
 				<packing>
 				  <property name="left_attach">0</property>
@@ -3992,7 +4044,6 @@
 
 			      <child>
 				<widget class="GtkLabel" id="label87">
-				  <property name="visible">True</property>
 				  <property name="can_focus">True</property>
 				  <property name="label" translatable="yes">Playlists</property>
 				  <property name="use_underline">False</property>
@@ -4004,6 +4055,10 @@
 				  <property name="yalign">0.5</property>
 				  <property name="xpad">0</property>
 				  <property name="ypad">0</property>
+				  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				  <property name="width_chars">-1</property>
+				  <property name="single_line_mode">False</property>
+				  <property name="angle">0</property>
 				</widget>
 				<packing>
 				  <property name="left_attach">0</property>
@@ -4049,6 +4104,10 @@
 				  <property name="yalign">0.5</property>
 				  <property name="xpad">0</property>
 				  <property name="ypad">0</property>
+				  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				  <property name="width_chars">-1</property>
+				  <property name="single_line_mode">False</property>
+				  <property name="angle">0</property>
 				</widget>
 				<packing>
 				  <property name="left_attach">0</property>
@@ -4094,6 +4153,10 @@
 				  <property name="yalign">0.5</property>
 				  <property name="xpad">0</property>
 				  <property name="ypad">0</property>
+				  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				  <property name="width_chars">-1</property>
+				  <property name="single_line_mode">False</property>
+				  <property name="angle">0</property>
 				</widget>
 				<packing>
 				  <property name="left_attach">0</property>
@@ -4128,6 +4191,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="left_attach">1</property>
@@ -4183,7 +4250,6 @@
 
 			  <child>
 			    <widget class="GtkHSeparator" id="hseparator12">
-			      <property name="visible">True</property>
 			    </widget>
 			    <packing>
 			      <property name="left_attach">1</property>
@@ -4247,6 +4313,10 @@
 				  <property name="yalign">0.5</property>
 				  <property name="xpad">0</property>
 				  <property name="ypad">0</property>
+				  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				  <property name="width_chars">-1</property>
+				  <property name="single_line_mode">False</property>
+				  <property name="angle">0</property>
 				</widget>
 				<packing>
 				  <property name="left_attach">0</property>
@@ -4268,58 +4338,6 @@
 			  </child>
 
 			  <child>
-			    <widget class="GtkHBox" id="hbox40">
-			      <property name="visible">True</property>
-			      <property name="homogeneous">True</property>
-			      <property name="spacing">0</property>
-
-			      <child>
-				<widget class="GtkHBox" id="hbox42">
-				  <property name="visible">True</property>
-				  <property name="homogeneous">True</property>
-				  <property name="spacing">0</property>
-
-				  <child>
-				    <widget class="GtkCheckButton" id="pm_autostore">
-				      <property name="visible">True</property>
-				      <property name="tooltip" translatable="yes">Please refer to the notice below.</property>
-				      <property name="can_focus">True</property>
-				      <property name="relief">GTK_RELIEF_NORMAL</property>
-				      <property name="focus_on_click">True</property>
-				      <property name="active">False</property>
-				      <property name="inconsistent">False</property>
-				      <property name="draw_indicator">True</property>
-				      <signal name="toggled" handler="on_pm_autostore_toggled" last_modification_time="Mon, 22 Sep 2003 11:26:46 GMT"/>
-
-				      <child>
-					<placeholder/>
-				      </child>
-				    </widget>
-				    <packing>
-				      <property name="padding">0</property>
-				      <property name="expand">False</property>
-				      <property name="fill">False</property>
-				    </packing>
-				  </child>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">False</property>
-				</packing>
-			      </child>
-			    </widget>
-			    <packing>
-			      <property name="left_attach">9</property>
-			      <property name="right_attach">10</property>
-			      <property name="top_attach">3</property>
-			      <property name="bottom_attach">4</property>
-			      <property name="x_options">fill</property>
-			      <property name="y_options">fill</property>
-			    </packing>
-			  </child>
-
-			  <child>
 			    <widget class="GtkHBox" id="hbox41">
 			      <property name="visible">True</property>
 			      <property name="homogeneous">True</property>
@@ -4372,6 +4390,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="left_attach">9</property>
@@ -4535,6 +4557,34 @@
 			      <property name="y_options">fill</property>
 			    </packing>
 			  </child>
+
+			  <child>
+			    <widget class="GtkLabel" id="label431">
+			      <property name="can_focus">True</property>
+			      <property name="label" translatable="yes">n/a</property>
+			      <property name="use_underline">False</property>
+			      <property name="use_markup">False</property>
+			      <property name="justify">GTK_JUSTIFY_CENTER</property>
+			      <property name="wrap">False</property>
+			      <property name="selectable">True</property>
+			      <property name="xalign">0.5</property>
+			      <property name="yalign">0.5</property>
+			      <property name="xpad">0</property>
+			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
+			    </widget>
+			    <packing>
+			      <property name="left_attach">9</property>
+			      <property name="right_attach">10</property>
+			      <property name="top_attach">3</property>
+			      <property name="bottom_attach">4</property>
+			      <property name="x_options">fill</property>
+			      <property name="y_options"></property>
+			    </packing>
+			  </child>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -4570,6 +4620,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">4</property>
@@ -4684,6 +4738,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="padding">0</property>
@@ -4711,6 +4769,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -4776,6 +4838,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">4</property>
@@ -5049,6 +5115,8 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
+  <property name="urgency_hint">False</property>
   <signal name="delete_event" handler="on_gtkpod_info_delete_event" last_modification_time="Sun, 16 May 2004 04:40:47 GMT"/>
 
   <child>
@@ -5125,6 +5193,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="left_attach">3</property>
@@ -5150,6 +5222,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="left_attach">3</property>
@@ -5188,6 +5264,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="left_attach">3</property>
@@ -5269,6 +5349,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="left_attach">3</property>
@@ -5294,6 +5378,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="left_attach">3</property>
@@ -5346,6 +5434,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="left_attach">3</property>
@@ -5371,6 +5463,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="left_attach">3</property>
@@ -5396,6 +5492,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="left_attach">3</property>
@@ -5421,6 +5521,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="left_attach">3</property>
@@ -5446,6 +5550,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="left_attach">7</property>
@@ -5471,6 +5579,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="left_attach">7</property>
@@ -5496,6 +5608,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="left_attach">7</property>
@@ -5521,6 +5637,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="left_attach">9</property>
@@ -5546,6 +5666,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="left_attach">9</property>
@@ -5571,6 +5695,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="left_attach">9</property>
@@ -5610,6 +5738,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="left_attach">11</property>
@@ -5635,6 +5767,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="left_attach">11</property>
@@ -5660,6 +5796,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="left_attach">11</property>
@@ -5699,6 +5839,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="left_attach">1</property>
@@ -5725,6 +5869,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="left_attach">1</property>
@@ -5752,6 +5900,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="left_attach">1</property>
@@ -5778,6 +5930,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="left_attach">1</property>
@@ -5804,6 +5960,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="left_attach">1</property>
@@ -5830,6 +5990,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="left_attach">1</property>
@@ -5856,6 +6020,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="left_attach">1</property>
@@ -5882,6 +6050,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="left_attach">1</property>
@@ -5908,6 +6080,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="left_attach">1</property>
@@ -5935,6 +6111,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="left_attach">3</property>
@@ -5963,6 +6143,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="left_attach">7</property>
@@ -5991,6 +6175,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="left_attach">9</property>
@@ -6019,6 +6207,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="left_attach">11</property>
@@ -6047,6 +6239,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="left_attach">5</property>
@@ -6072,6 +6268,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="left_attach">5</property>
@@ -6097,6 +6297,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="left_attach">5</property>
@@ -6122,6 +6326,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="left_attach">5</property>
@@ -6205,6 +6413,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="left_attach">5</property>
@@ -6358,11 +6570,14 @@
   <property name="modal">False</property>
   <property name="resizable">True</property>
   <property name="destroy_with_parent">False</property>
+  <property name="icon">gtkpod-icon-48.png</property>
   <property name="decorated">True</property>
   <property name="skip_taskbar_hint">False</property>
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
+  <property name="urgency_hint">False</property>
   <property name="has_separator">True</property>
 
   <child internal-child="vbox">
@@ -6443,6 +6658,10 @@
 	      <property name="yalign">0</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="padding">6</property>
@@ -6580,6 +6799,8 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
+  <property name="urgency_hint">False</property>
 
   <child>
     <widget class="GtkFrame" id="options_frame">
@@ -6769,6 +6990,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="left_attach">0</property>
@@ -6794,6 +7019,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="left_attach">0</property>
@@ -6833,6 +7062,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -6885,6 +7118,10 @@
 	  <property name="yalign">0.5</property>
 	  <property name="xpad">0</property>
 	  <property name="ypad">0</property>
+	  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	  <property name="width_chars">-1</property>
+	  <property name="single_line_mode">False</property>
+	  <property name="angle">0</property>
 	</widget>
 	<packing>
 	  <property name="type">label_item</property>
@@ -6906,6 +7143,8 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
+  <property name="urgency_hint">False</property>
 
   <child>
     <widget class="GtkFrame" id="options_frame">
@@ -6941,6 +7180,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -7048,6 +7291,10 @@
 		  <property name="yalign">0</property>
 		  <property name="xpad">0</property>
 		  <property name="ypad">0</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
@@ -7115,6 +7362,10 @@
 	  <property name="yalign">0.5</property>
 	  <property name="xpad">0</property>
 	  <property name="ypad">0</property>
+	  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	  <property name="width_chars">-1</property>
+	  <property name="single_line_mode">False</property>
+	  <property name="angle">0</property>
 	</widget>
 	<packing>
 	  <property name="type">label_item</property>
@@ -7131,11 +7382,14 @@
   <property name="modal">False</property>
   <property name="resizable">True</property>
   <property name="destroy_with_parent">False</property>
+  <property name="icon">gtkpod-icon-48.png</property>
   <property name="decorated">True</property>
   <property name="skip_taskbar_hint">False</property>
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
+  <property name="urgency_hint">False</property>
 
   <child>
     <widget class="GtkScrolledWindow" id="spl_scroll">
@@ -7176,6 +7430,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">5</property>
@@ -7350,6 +7608,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="type">label_item</property>
@@ -7411,6 +7673,8 @@
 		  <child>
 		    <widget class="GtkComboBox" id="spl_limittype_combobox">
 		      <property name="visible">True</property>
+		      <property name="add_tearoffs">False</property>
+		      <property name="focus_on_click">True</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -7432,6 +7696,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">5</property>
@@ -7443,6 +7711,8 @@
 		  <child>
 		    <widget class="GtkComboBox" id="spl_limitsort_combobox">
 		      <property name="visible">True</property>
+		      <property name="add_tearoffs">False</property>
+		      <property name="focus_on_click">True</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -7603,6 +7873,8 @@
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
+  <property name="urgency_hint">False</property>
   <signal name="delete_event" handler="on_prefs_window_delete_event" last_modification_time="Fri, 13 May 2005 17:19:54 GMT"/>
 
   <child>
@@ -7644,15 +7916,15 @@
 		      <property name="spacing">18</property>
 
 		      <child>
-			<widget class="GtkVBox" id="vbox112">
+			<widget class="GtkVBox" id="vbox166">
 			  <property name="visible">True</property>
 			  <property name="homogeneous">False</property>
 			  <property name="spacing">6</property>
 
 			  <child>
-			    <widget class="GtkLabel" id="label253">
+			    <widget class="GtkLabel" id="label418">
 			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">&lt;b&gt;Import&lt;/b&gt;</property>
+			      <property name="label" translatable="yes">&lt;b&gt;Mountpoint and individual repository/playlist options&lt;/b&gt;</property>
 			      <property name="use_underline">False</property>
 			      <property name="use_markup">True</property>
 			      <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -7662,6 +7934,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -7671,15 +7947,15 @@
 			  </child>
 
 			  <child>
-			    <widget class="GtkHBox" id="hbox107">
+			    <widget class="GtkHBox" id="hbox202">
 			      <property name="visible">True</property>
 			      <property name="homogeneous">False</property>
-			      <property name="spacing">0</property>
+			      <property name="spacing">8</property>
 
 			      <child>
-				<widget class="GtkLabel" id="label254">
+				<widget class="GtkLabel" id="label419">
 				  <property name="visible">True</property>
-				  <property name="label" translatable="yes">    </property>
+				  <property name="label">    </property>
 				  <property name="use_underline">False</property>
 				  <property name="use_markup">False</property>
 				  <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -7689,6 +7965,10 @@
 				  <property name="yalign">0.5</property>
 				  <property name="xpad">0</property>
 				  <property name="ypad">0</property>
+				  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				  <property name="width_chars">-1</property>
+				  <property name="single_line_mode">False</property>
+				  <property name="angle">0</property>
 				</widget>
 				<packing>
 				  <property name="padding">0</property>
@@ -7698,93 +7978,134 @@
 			      </child>
 
 			      <child>
-				<widget class="GtkVBox" id="vbox113">
+				<widget class="GtkVBox" id="vbox167">
 				  <property name="visible">True</property>
 				  <property name="homogeneous">False</property>
 				  <property name="spacing">6</property>
 
 				  <child>
-				    <widget class="GtkHBox" id="hbox108">
+				    <widget class="GtkButton" id="cfg_edit_repository_button">
 				      <property name="visible">True</property>
-				      <property name="homogeneous">False</property>
-				      <property name="spacing">8</property>
-
-				      <child>
-					<widget class="GtkLabel" id="label255">
-					  <property name="visible">True</property>
-					  <property name="label" translatable="yes">iPod Mount _Point:</property>
-					  <property name="use_underline">True</property>
-					  <property name="use_markup">False</property>
-					  <property name="justify">GTK_JUSTIFY_LEFT</property>
-					  <property name="wrap">False</property>
-					  <property name="selectable">False</property>
-					  <property name="xalign">0.5</property>
-					  <property name="yalign">0.5</property>
-					  <property name="xpad">0</property>
-					  <property name="ypad">0</property>
-					  <property name="mnemonic_widget">cfg_mount_point</property>
-					</widget>
-					<packing>
-					  <property name="padding">0</property>
-					  <property name="expand">False</property>
-					  <property name="fill">False</property>
-					</packing>
-				      </child>
-
-				      <child>
-					<widget class="GtkEntry" id="cfg_mount_point">
-					  <property name="visible">True</property>
-					  <property name="tooltip" translatable="yes">Where you mounted your iPod's filesystem. Usually '/mnt/ipod/' or similar.</property>
-					  <property name="can_focus">True</property>
-					  <property name="editable">True</property>
-					  <property name="visibility">True</property>
-					  <property name="max_length">0</property>
-					  <property name="text" translatable="yes"></property>
-					  <property name="has_frame">True</property>
-					  <property name="invisible_char">*</property>
-					  <property name="activates_default">False</property>
-					  <signal name="changed" handler="on_cfg_mount_point_changed" last_modification_time="Thu, 14 Apr 2005 19:37:39 GMT"/>
-					</widget>
-					<packing>
-					  <property name="padding">0</property>
-					  <property name="expand">True</property>
-					  <property name="fill">True</property>
-					</packing>
-				      </child>
-				    </widget>
-				    <packing>
-				      <property name="padding">0</property>
-				      <property name="expand">False</property>
-				      <property name="fill">True</property>
-				    </packing>
-				  </child>
-
-				  <child>
-				    <widget class="GtkCheckButton" id="cfg_automount_ipod">
-				      <property name="visible">True</property>
-				      <property name="tooltip" translatable="yes">On startup gtkpod will call 'mount &lt;ipod mountpoint&gt;', on exit a 'umount &lt;ipod mountpoint&gt;' call is carried out. For more complicated arrangements please use the ~/.gtkpod/gtkpod.in and ~/.gtkpod/gtkpod.out scripts.</property>
 				      <property name="can_focus">True</property>
-				      <property name="label" translatable="yes">Handle mounting/unmounting of iPod drive</property>
+				      <property name="label" translatable="yes">Set mountpoint or edit repository options</property>
 				      <property name="use_underline">True</property>
 				      <property name="relief">GTK_RELIEF_NORMAL</property>
 				      <property name="focus_on_click">True</property>
-				      <property name="active">False</property>
-				      <property name="inconsistent">False</property>
-				      <property name="draw_indicator">True</property>
-				      <signal name="toggled" handler="on_cfg_automount_ipod_toggled" last_modification_time="Thu, 14 Apr 2005 19:38:02 GMT"/>
+				      <signal name="clicked" handler="on_edit_repository_clicked" last_modification_time="Mon, 01 May 2006 11:37:56 GMT"/>
 				    </widget>
 				    <packing>
-				      <property name="padding">0</property>
+				      <property name="padding">3</property>
 				      <property name="expand">False</property>
 				      <property name="fill">False</property>
 				    </packing>
 				  </child>
 
 				  <child>
+				    <placeholder/>
+				  </child>
+				</widget>
+				<packing>
+				  <property name="padding">0</property>
+				  <property name="expand">True</property>
+				  <property name="fill">True</property>
+				</packing>
+			      </child>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">True</property>
+			      <property name="fill">True</property>
+			    </packing>
+			  </child>
+			</widget>
+			<packing>
+			  <property name="padding">0</property>
+			  <property name="expand">False</property>
+			  <property name="fill">False</property>
+			</packing>
+		      </child>
+
+		      <child>
+			<widget class="GtkVBox" id="vbox112">
+			  <property name="visible">True</property>
+			  <property name="homogeneous">False</property>
+			  <property name="spacing">6</property>
+
+			  <child>
+			    <widget class="GtkLabel" id="label253">
+			      <property name="visible">True</property>
+			      <property name="label" translatable="yes">&lt;b&gt;Import&lt;/b&gt;</property>
+			      <property name="use_underline">False</property>
+			      <property name="use_markup">True</property>
+			      <property name="justify">GTK_JUSTIFY_LEFT</property>
+			      <property name="wrap">False</property>
+			      <property name="selectable">False</property>
+			      <property name="xalign">0</property>
+			      <property name="yalign">0.5</property>
+			      <property name="xpad">0</property>
+			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">False</property>
+			      <property name="fill">False</property>
+			    </packing>
+			  </child>
+
+			  <child>
+			    <widget class="GtkHBox" id="hbox107">
+			      <property name="visible">True</property>
+			      <property name="homogeneous">False</property>
+			      <property name="spacing">8</property>
+
+			      <child>
+				<widget class="GtkLabel" id="label254">
+				  <property name="visible">True</property>
+				  <property name="label">    </property>
+				  <property name="use_underline">False</property>
+				  <property name="use_markup">False</property>
+				  <property name="justify">GTK_JUSTIFY_LEFT</property>
+				  <property name="wrap">False</property>
+				  <property name="selectable">False</property>
+				  <property name="xalign">0.5</property>
+				  <property name="yalign">0.5</property>
+				  <property name="xpad">0</property>
+				  <property name="ypad">0</property>
+				  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				  <property name="width_chars">-1</property>
+				  <property name="single_line_mode">False</property>
+				  <property name="angle">0</property>
+				</widget>
+				<packing>
+				  <property name="padding">0</property>
+				  <property name="expand">False</property>
+				  <property name="fill">False</property>
+				</packing>
+			      </child>
+
+			      <child>
+				<widget class="GtkVBox" id="vbox113">
+				  <property name="visible">True</property>
+				  <property name="homogeneous">False</property>
+				  <property name="spacing">6</property>
+
+				  <child>
+				    <placeholder/>
+				  </child>
+
+				  <child>
+				    <placeholder/>
+				  </child>
+
+				  <child>
 				    <widget class="GtkCheckButton" id="cfg_autoimport">
 				      <property name="visible">True</property>
 				      <property name="can_focus">True</property>
-				      <property name="label" translatable="yes">Automatically import iTunesDB on startup</property>
+				      <property name="label" translatable="yes">Automatically import iTunesDBs on startup</property>
 				      <property name="use_underline">True</property>
 				      <property name="relief">GTK_RELIEF_NORMAL</property>
 				      <property name="focus_on_click">True</property>
@@ -7840,6 +8161,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -7857,7 +8182,7 @@
 			      <child>
 				<widget class="GtkLabel" id="label257">
 				  <property name="visible">True</property>
-				  <property name="label" translatable="yes">    </property>
+				  <property name="label">    </property>
 				  <property name="use_underline">False</property>
 				  <property name="use_markup">False</property>
 				  <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -7867,6 +8192,10 @@
 				  <property name="yalign">0.5</property>
 				  <property name="xpad">0</property>
 				  <property name="ypad">0</property>
+				  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				  <property name="width_chars">-1</property>
+				  <property name="single_line_mode">False</property>
+				  <property name="angle">0</property>
 				</widget>
 				<packing>
 				  <property name="padding">0</property>
@@ -7882,6 +8211,69 @@
 				  <property name="spacing">6</property>
 
 				  <child>
+				    <placeholder/>
+				  </child>
+
+				  <child>
+				    <widget class="GtkHBox" id="hbox205">
+				      <property name="visible">True</property>
+				      <property name="homogeneous">False</property>
+				      <property name="spacing">8</property>
+
+				      <child>
+					<widget class="GtkLabel" id="label435">
+					  <property name="visible">True</property>
+					  <property name="label" translatable="yes">Exclude file mask(s)</property>
+					  <property name="use_underline">False</property>
+					  <property name="use_markup">False</property>
+					  <property name="justify">GTK_JUSTIFY_LEFT</property>
+					  <property name="wrap">False</property>
+					  <property name="selectable">False</property>
+					  <property name="xalign">0</property>
+					  <property name="yalign">0.5</property>
+					  <property name="xpad">0</property>
+					  <property name="ypad">0</property>
+					  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+					  <property name="width_chars">-1</property>
+					  <property name="single_line_mode">False</property>
+					  <property name="angle">0</property>
+					</widget>
+					<packing>
+					  <property name="padding">0</property>
+					  <property name="expand">False</property>
+					  <property name="fill">False</property>
+					</packing>
+				      </child>
+
+				      <child>
+					<widget class="GtkEntry" id="exclude_file_mask_entry">
+					  <property name="visible">True</property>
+					  <property name="tooltip" translatable="yes">Semicolon seperated list of file exclusion masks, e.g. '*.mp3'</property>
+					  <property name="can_focus">True</property>
+					  <property name="editable">True</property>
+					  <property name="visibility">True</property>
+					  <property name="max_length">0</property>
+					  <property name="text" translatable="yes"></property>
+					  <property name="has_frame">True</property>
+					  <property name="invisible_char">*</property>
+					  <property name="activates_default">False</property>
+					  <signal name="changed" handler="on_exclude_file_mask_entry_changed" last_modification_time="Mon, 21 Aug 2006 10:37:14 GMT"/>
+					</widget>
+					<packing>
+					  <property name="padding">0</property>
+					  <property name="expand">True</property>
+					  <property name="fill">True</property>
+					</packing>
+				      </child>
+				    </widget>
+				    <packing>
+				      <property name="padding">0</property>
+				      <property name="expand">True</property>
+				      <property name="fill">True</property>
+				    </packing>
+				  </child>
+
+				  <child>
 				    <widget class="GtkHBox" id="hbox110">
 				      <property name="visible">True</property>
 				      <property name="homogeneous">False</property>
@@ -7901,6 +8293,10 @@
 					  <property name="xpad">0</property>
 					  <property name="ypad">0</property>
 					  <property name="mnemonic_widget">charset_combo_entry</property>
+					  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+					  <property name="width_chars">-1</property>
+					  <property name="single_line_mode">False</property>
+					  <property name="angle">0</property>
 					</widget>
 					<packing>
 					  <property name="padding">0</property>
@@ -8028,7 +8424,7 @@
 				      <child>
 					<widget class="GtkLabel" id="label259">
 					  <property name="visible">True</property>
-					  <property name="label" translatable="yes">    </property>
+					  <property name="label">    </property>
 					  <property name="use_underline">False</property>
 					  <property name="use_markup">False</property>
 					  <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -8038,6 +8434,10 @@
 					  <property name="yalign">0.5</property>
 					  <property name="xpad">0</property>
 					  <property name="ypad">0</property>
+					  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+					  <property name="width_chars">-1</property>
+					  <property name="single_line_mode">False</property>
+					  <property name="angle">0</property>
 					</widget>
 					<packing>
 					  <property name="padding">0</property>
@@ -8105,7 +8505,7 @@
 				      <child>
 					<widget class="GtkLabel" id="label260">
 					  <property name="visible">True</property>
-					  <property name="label" translatable="yes">    </property>
+					  <property name="label">    </property>
 					  <property name="use_underline">False</property>
 					  <property name="use_markup">False</property>
 					  <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -8115,6 +8515,10 @@
 					  <property name="yalign">0.5</property>
 					  <property name="xpad">0</property>
 					  <property name="ypad">0</property>
+					  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+					  <property name="width_chars">-1</property>
+					  <property name="single_line_mode">False</property>
+					  <property name="angle">0</property>
 					</widget>
 					<packing>
 					  <property name="padding">0</property>
@@ -8160,7 +8564,7 @@
 				      <child>
 					<widget class="GtkLabel" id="label261">
 					  <property name="visible">True</property>
-					  <property name="label" translatable="yes">    </property>
+					  <property name="label">    </property>
 					  <property name="use_underline">False</property>
 					  <property name="use_markup">False</property>
 					  <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -8170,6 +8574,10 @@
 					  <property name="yalign">0.5</property>
 					  <property name="xpad">0</property>
 					  <property name="ypad">0</property>
+					  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+					  <property name="width_chars">-1</property>
+					  <property name="single_line_mode">False</property>
+					  <property name="angle">0</property>
 					</widget>
 					<packing>
 					  <property name="padding">0</property>
@@ -8209,7 +8617,7 @@
 				  <child>
 				    <widget class="GtkLabel" id="label262">
 				      <property name="visible">True</property>
-				      <property name="label" translatable="yes">When syncing directories</property>
+				      <property name="label" translatable="yes">When syncing playlists</property>
 				      <property name="use_underline">False</property>
 				      <property name="use_markup">False</property>
 				      <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -8219,6 +8627,10 @@
 				      <property name="yalign">0.5</property>
 				      <property name="xpad">0</property>
 				      <property name="ypad">0</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">0</property>
 				    </widget>
 				    <packing>
 				      <property name="padding">0</property>
@@ -8236,7 +8648,7 @@
 				      <child>
 					<widget class="GtkLabel" id="label263">
 					  <property name="visible">True</property>
-					  <property name="label" translatable="yes">    </property>
+					  <property name="label">    </property>
 					  <property name="use_underline">False</property>
 					  <property name="use_markup">False</property>
 					  <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -8246,6 +8658,10 @@
 					  <property name="yalign">0.5</property>
 					  <property name="xpad">0</property>
 					  <property name="ypad">0</property>
+					  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+					  <property name="width_chars">-1</property>
+					  <property name="single_line_mode">False</property>
+					  <property name="angle">0</property>
 					</widget>
 					<packing>
 					  <property name="padding">0</property>
@@ -8255,71 +8671,105 @@
 				      </child>
 
 				      <child>
-					<widget class="GtkVBox" id="vbox116">
+					<widget class="GtkAlignment" id="alignment13">
 					  <property name="visible">True</property>
-					  <property name="homogeneous">False</property>
-					  <property name="spacing">0</property>
+					  <property name="xalign">0.5</property>
+					  <property name="yalign">0.5</property>
+					  <property name="xscale">1</property>
+					  <property name="yscale">1</property>
+					  <property name="top_padding">0</property>
+					  <property name="bottom_padding">0</property>
+					  <property name="left_padding">0</property>
+					  <property name="right_padding">0</property>
 
 					  <child>
-					    <widget class="GtkCheckButton" id="cfg_show_sync_dirs">
+					    <widget class="GtkVBox" id="vbox116">
 					      <property name="visible">True</property>
-					      <property name="can_focus">True</property>
-					      <property name="label" translatable="yes">Confirm lists of directories</property>
-					      <property name="use_underline">True</property>
-					      <property name="relief">GTK_RELIEF_NORMAL</property>
-					      <property name="focus_on_click">True</property>
-					      <property name="active">False</property>
-					      <property name="inconsistent">False</property>
-					      <property name="draw_indicator">True</property>
-					      <signal name="toggled" handler="on_cfg_show_sync_dirs_toggled" last_modification_time="Thu, 14 Apr 2005 19:39:27 GMT"/>
-					    </widget>
-					    <packing>
-					      <property name="padding">0</property>
-					      <property name="expand">False</property>
-					      <property name="fill">False</property>
-					    </packing>
-					  </child>
+					      <property name="homogeneous">False</property>
+					      <property name="spacing">4</property>
 
-					  <child>
-					    <widget class="GtkCheckButton" id="cfg_sync_remove">
-					      <property name="visible">True</property>
-					      <property name="tooltip" translatable="yes">If you check this option, tracks that have been removed from the synced directories will be removed from the iPod as well.</property>
-					      <property name="can_focus">True</property>
-					      <property name="label" translatable="yes">Delete tracks that have been removed</property>
-					      <property name="use_underline">True</property>
-					      <property name="relief">GTK_RELIEF_NORMAL</property>
-					      <property name="focus_on_click">True</property>
-					      <property name="active">False</property>
-					      <property name="inconsistent">False</property>
-					      <property name="draw_indicator">True</property>
-					      <signal name="toggled" handler="on_cfg_sync_remove_toggled" last_modification_time="Thu, 14 Apr 2005 19:39:46 GMT"/>
-					    </widget>
-					    <packing>
-					      <property name="padding">0</property>
-					      <property name="expand">False</property>
-					      <property name="fill">False</property>
-					    </packing>
-					  </child>
+					      <child>
+						<widget class="GtkCheckButton" id="sync_confirm_dirs_toggle">
+						  <property name="can_focus">True</property>
+						  <property name="label" translatable="yes">Confirm lists of directories</property>
+						  <property name="use_underline">True</property>
+						  <property name="relief">GTK_RELIEF_NORMAL</property>
+						  <property name="focus_on_click">True</property>
+						  <property name="active">False</property>
+						  <property name="inconsistent">False</property>
+						  <property name="draw_indicator">True</property>
+						</widget>
+						<packing>
+						  <property name="padding">0</property>
+						  <property name="expand">False</property>
+						  <property name="fill">False</property>
+						</packing>
+					      </child>
 
-					  <child>
-					    <widget class="GtkCheckButton" id="cfg_sync_remove_confirm">
-					      <property name="visible">True</property>
-					      <property name="tooltip" translatable="yes">This is the same option as in 'Edit/Delete Confirmation'</property>
-					      <property name="can_focus">True</property>
-					      <property name="label" translatable="yes">Confirm before removing tracks</property>
-					      <property name="use_underline">True</property>
-					      <property name="relief">GTK_RELIEF_NORMAL</property>
-					      <property name="focus_on_click">True</property>
-					      <property name="active">False</property>
-					      <property name="inconsistent">False</property>
-					      <property name="draw_indicator">True</property>
-					      <signal name="toggled" handler="on_cfg_sync_remove_confirm_toggled" last_modification_time="Thu, 14 Apr 2005 19:39:50 GMT"/>
+					      <child>
+						<widget class="GtkCheckButton" id="sync_delete_tracks_toggle">
+						  <property name="visible">True</property>
+						  <property name="tooltip" translatable="yes">Normally, if a track is no longer present in the sync directory, it will be removed from the playlist, but not from the iPod or local repository.
+If this option is checked, tracks will be completely removed from the iPod or local repository, unless the track is a member of other playlists as well.
+NOTE: if you sync with the master playlist, you must check this option if you want tracks to be removed, because removing from the master playlist means removing from the iPod.</property>
+						  <property name="can_focus">True</property>
+						  <property name="label" translatable="yes">Delete tracks that are no longer present from the
+ipod or repository</property>
+						  <property name="use_underline">True</property>
+						  <property name="relief">GTK_RELIEF_NORMAL</property>
+						  <property name="focus_on_click">True</property>
+						  <property name="active">False</property>
+						  <property name="inconsistent">False</property>
+						  <property name="draw_indicator">True</property>
+						</widget>
+						<packing>
+						  <property name="padding">0</property>
+						  <property name="expand">False</property>
+						  <property name="fill">False</property>
+						</packing>
+					      </child>
+
+					      <child>
+						<widget class="GtkCheckButton" id="sync_confirm_delete_toggle">
+						  <property name="visible">True</property>
+						  <property name="tooltip" translatable="yes">This is the same option as in 'Edit/Delete Confirmation'</property>
+						  <property name="can_focus">True</property>
+						  <property name="label" translatable="yes">Confirm before removing tracks from the iPod or repository</property>
+						  <property name="use_underline">True</property>
+						  <property name="relief">GTK_RELIEF_NORMAL</property>
+						  <property name="focus_on_click">True</property>
+						  <property name="active">False</property>
+						  <property name="inconsistent">False</property>
+						  <property name="draw_indicator">True</property>
+						  <signal name="toggled" handler="on_sync_confirm_delete_toggled" last_modification_time="Mon, 15 May 2006 15:28:49 GMT"/>
+						</widget>
+						<packing>
+						  <property name="padding">0</property>
+						  <property name="expand">False</property>
+						  <property name="fill">False</property>
+						</packing>
+					      </child>
+
+					      <child>
+						<widget class="GtkCheckButton" id="sync_show_summary_toggle">
+						  <property name="visible">True</property>
+						  <property name="tooltip" translatable="yes">Will show a list of tracks removed and a list of tracks newly added or updated.</property>
+						  <property name="can_focus">True</property>
+						  <property name="label" translatable="yes">Show summary of sync result</property>
+						  <property name="use_underline">True</property>
+						  <property name="relief">GTK_RELIEF_NORMAL</property>
+						  <property name="focus_on_click">True</property>
+						  <property name="active">False</property>
+						  <property name="inconsistent">False</property>
+						  <property name="draw_indicator">True</property>
+						</widget>
+						<packing>
+						  <property name="padding">0</property>
+						  <property name="expand">False</property>
+						  <property name="fill">False</property>
+						</packing>
+					      </child>
 					    </widget>
-					    <packing>
-					      <property name="padding">0</property>
-					      <property name="expand">False</property>
-					      <property name="fill">False</property>
-					    </packing>
 					  </child>
 					</widget>
 					<packing>
@@ -8376,6 +8826,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -8388,12 +8842,12 @@
 			    <widget class="GtkHBox" id="hbox115">
 			      <property name="visible">True</property>
 			      <property name="homogeneous">False</property>
-			      <property name="spacing">0</property>
+			      <property name="spacing">8</property>
 
 			      <child>
 				<widget class="GtkLabel" id="label265">
 				  <property name="visible">True</property>
-				  <property name="label" translatable="yes">    </property>
+				  <property name="label">    </property>
 				  <property name="use_underline">False</property>
 				  <property name="use_markup">False</property>
 				  <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -8403,6 +8857,10 @@
 				  <property name="yalign">0.5</property>
 				  <property name="xpad">0</property>
 				  <property name="ypad">0</property>
+				  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				  <property name="width_chars">-1</property>
+				  <property name="single_line_mode">False</property>
+				  <property name="angle">0</property>
 				</widget>
 				<packing>
 				  <property name="padding">0</property>
@@ -8470,6 +8928,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="type">tab</property>
@@ -8502,6 +8964,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -8514,12 +8980,12 @@
 		    <widget class="GtkHBox" id="hbox75">
 		      <property name="visible">True</property>
 		      <property name="homogeneous">False</property>
-		      <property name="spacing">0</property>
+		      <property name="spacing">8</property>
 
 		      <child>
 			<widget class="GtkLabel" id="label192">
 			  <property name="visible">True</property>
-			  <property name="label" translatable="yes">    </property>
+			  <property name="label">    </property>
 			  <property name="use_underline">False</property>
 			  <property name="use_markup">False</property>
 			  <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -8529,6 +8995,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -8603,6 +9073,10 @@
 				  <property name="yalign">0.5</property>
 				  <property name="xpad">0</property>
 				  <property name="ypad">0</property>
+				  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				  <property name="width_chars">-1</property>
+				  <property name="single_line_mode">False</property>
+				  <property name="angle">0</property>
 				</widget>
 				<packing>
 				  <property name="padding">0</property>
@@ -8685,6 +9159,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -8849,7 +9327,7 @@
 		  <child>
 		    <widget class="GtkLabel" id="label394">
 		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">&lt;b&gt;Artwork&lt;/b&gt;</property>
+		      <property name="label" translatable="yes">&lt;b&gt;Coverart&lt;/b&gt;</property>
 		      <property name="use_underline">False</property>
 		      <property name="use_markup">True</property>
 		      <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -8859,6 +9337,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -8871,12 +9353,12 @@
 		    <widget class="GtkHBox" id="hbox195">
 		      <property name="visible">True</property>
 		      <property name="homogeneous">False</property>
-		      <property name="spacing">0</property>
+		      <property name="spacing">8</property>
 
 		      <child>
 			<widget class="GtkLabel" id="label395">
 			  <property name="visible">True</property>
-			  <property name="label" translatable="yes">    </property>
+			  <property name="label">    </property>
 			  <property name="use_underline">False</property>
 			  <property name="use_markup">False</property>
 			  <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -8886,6 +9368,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -8901,18 +9387,39 @@
 			  <property name="spacing">0</property>
 
 			  <child>
-			    <widget class="GtkCheckButton" id="coverart">
+			    <widget class="GtkCheckButton" id="coverart_apic">
 			      <property name="visible">True</property>
+			      <property name="tooltip" translatable="yes">Music files can have images embedded in the APIC tag. Currently this is only supported for MP3 files.</property>
+			      <property name="can_focus">True</property>
+			      <property name="label" translatable="yes">Read coverart from embedded APIC data</property>
+			      <property name="use_underline">True</property>
+			      <property name="relief">GTK_RELIEF_NORMAL</property>
+			      <property name="focus_on_click">True</property>
+			      <property name="active">False</property>
+			      <property name="inconsistent">False</property>
+			      <property name="draw_indicator">True</property>
+			      <signal name="toggled" handler="on_coverart_apic_toggled" last_modification_time="Mon, 18 Sep 2006 06:14:57 GMT"/>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">False</property>
+			      <property name="fill">False</property>
+			    </packing>
+			  </child>
+
+			  <child>
+			    <widget class="GtkCheckButton" id="coverart_file">
+			      <property name="visible">True</property>
 			      <property name="tooltip" translatable="yes">artist: %a, album: %A, composer: %c, title: %t, genre: %G, track nr: %T, CD nr: %C, year: %Y, skip data: %*, the character '%': %%. You can separate several templates by a ';'. The first one matching the filename will be used. Example: '%a - %A/%T %t.mp3;%t.wav'.</property>
 			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">Add artwork from file using the following template</property>
+			      <property name="label" translatable="yes">Add coverart from file using the following template</property>
 			      <property name="use_underline">True</property>
 			      <property name="relief">GTK_RELIEF_NORMAL</property>
 			      <property name="focus_on_click">True</property>
 			      <property name="active">False</property>
 			      <property name="inconsistent">False</property>
 			      <property name="draw_indicator">True</property>
-			      <signal name="toggled" handler="on_coverart_toggled" last_modification_time="Sat, 10 Dec 2005 13:46:30 GMT"/>
+			      <signal name="toggled" handler="on_coverart_file_toggled" last_modification_time="Mon, 18 Sep 2006 06:14:44 GMT"/>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -8940,6 +9447,10 @@
 				  <property name="yalign">0.5</property>
 				  <property name="xpad">0</property>
 				  <property name="ypad">0</property>
+				  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				  <property name="width_chars">-1</property>
+				  <property name="single_line_mode">False</property>
+				  <property name="angle">0</property>
 				</widget>
 				<packing>
 				  <property name="padding">0</property>
@@ -8988,6 +9499,10 @@
 				      <property name="yalign">0.5</property>
 				      <property name="xpad">0</property>
 				      <property name="ypad">0</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">0</property>
 				    </widget>
 				    <packing>
 				      <property name="padding">0</property>
@@ -9018,6 +9533,10 @@
 					  <property name="yalign">0.5</property>
 					  <property name="xpad">0</property>
 					  <property name="ypad">0</property>
+					  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+					  <property name="width_chars">-1</property>
+					  <property name="single_line_mode">False</property>
+					  <property name="angle">0</property>
 					</widget>
 					<packing>
 					  <property name="left_attach">0</property>
@@ -9042,6 +9561,10 @@
 					  <property name="yalign">0.5</property>
 					  <property name="xpad">0</property>
 					  <property name="ypad">0</property>
+					  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+					  <property name="width_chars">-1</property>
+					  <property name="single_line_mode">False</property>
+					  <property name="angle">0</property>
 					</widget>
 					<packing>
 					  <property name="left_attach">0</property>
@@ -9066,6 +9589,10 @@
 					  <property name="yalign">0.5</property>
 					  <property name="xpad">0</property>
 					  <property name="ypad">0</property>
+					  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+					  <property name="width_chars">-1</property>
+					  <property name="single_line_mode">False</property>
+					  <property name="angle">0</property>
 					</widget>
 					<packing>
 					  <property name="left_attach">0</property>
@@ -9090,6 +9617,10 @@
 					  <property name="yalign">0.5</property>
 					  <property name="xpad">0</property>
 					  <property name="ypad">0</property>
+					  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+					  <property name="width_chars">-1</property>
+					  <property name="single_line_mode">False</property>
+					  <property name="angle">0</property>
 					</widget>
 					<packing>
 					  <property name="left_attach">0</property>
@@ -9114,6 +9645,10 @@
 					  <property name="yalign">0.5</property>
 					  <property name="xpad">0</property>
 					  <property name="ypad">0</property>
+					  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+					  <property name="width_chars">-1</property>
+					  <property name="single_line_mode">False</property>
+					  <property name="angle">0</property>
 					</widget>
 					<packing>
 					  <property name="left_attach">1</property>
@@ -9138,6 +9673,10 @@
 					  <property name="yalign">0.5</property>
 					  <property name="xpad">0</property>
 					  <property name="ypad">0</property>
+					  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+					  <property name="width_chars">-1</property>
+					  <property name="single_line_mode">False</property>
+					  <property name="angle">0</property>
 					</widget>
 					<packing>
 					  <property name="left_attach">1</property>
@@ -9162,6 +9701,10 @@
 					  <property name="yalign">0.5</property>
 					  <property name="xpad">0</property>
 					  <property name="ypad">0</property>
+					  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+					  <property name="width_chars">-1</property>
+					  <property name="single_line_mode">False</property>
+					  <property name="angle">0</property>
 					</widget>
 					<packing>
 					  <property name="left_attach">1</property>
@@ -9186,6 +9729,10 @@
 					  <property name="yalign">0.5</property>
 					  <property name="xpad">0</property>
 					  <property name="ypad">0</property>
+					  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+					  <property name="width_chars">-1</property>
+					  <property name="single_line_mode">False</property>
+					  <property name="angle">0</property>
 					</widget>
 					<packing>
 					  <property name="left_attach">1</property>
@@ -9210,6 +9757,10 @@
 					  <property name="yalign">0.5</property>
 					  <property name="xpad">0</property>
 					  <property name="ypad">0</property>
+					  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+					  <property name="width_chars">-1</property>
+					  <property name="single_line_mode">False</property>
+					  <property name="angle">0</property>
 					</widget>
 					<packing>
 					  <property name="left_attach">0</property>
@@ -9234,6 +9785,10 @@
 					  <property name="yalign">0.5</property>
 					  <property name="xpad">0</property>
 					  <property name="ypad">0</property>
+					  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+					  <property name="width_chars">-1</property>
+					  <property name="single_line_mode">False</property>
+					  <property name="angle">0</property>
 					</widget>
 					<packing>
 					  <property name="left_attach">1</property>
@@ -9275,7 +9830,28 @@
 			  </child>
 
 			  <child>
-			    <placeholder/>
+			    <widget class="GtkLabel" id="label436">
+			      <property name="visible">True</property>
+			      <property name="label" translatable="yes">If both options are selected, embedded APIC data takes precedence.</property>
+			      <property name="use_underline">False</property>
+			      <property name="use_markup">False</property>
+			      <property name="justify">GTK_JUSTIFY_LEFT</property>
+			      <property name="wrap">False</property>
+			      <property name="selectable">False</property>
+			      <property name="xalign">0</property>
+			      <property name="yalign">0.5</property>
+			      <property name="xpad">0</property>
+			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
+			    </widget>
+			    <packing>
+			      <property name="padding">4</property>
+			      <property name="expand">False</property>
+			      <property name="fill">False</property>
+			    </packing>
 			  </child>
 			</widget>
 			<packing>
@@ -9318,6 +9894,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -9330,12 +9910,12 @@
 		    <widget class="GtkHBox" id="hbox77">
 		      <property name="visible">True</property>
 		      <property name="homogeneous">False</property>
-		      <property name="spacing">0</property>
+		      <property name="spacing">8</property>
 
 		      <child>
 			<widget class="GtkLabel" id="label196">
 			  <property name="visible">True</property>
-			  <property name="label" translatable="yes">    </property>
+			  <property name="label">    </property>
 			  <property name="use_underline">False</property>
 			  <property name="use_markup">False</property>
 			  <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -9345,6 +9925,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -9402,6 +9986,10 @@
 				  <property name="yalign">0.5</property>
 				  <property name="xpad">0</property>
 				  <property name="ypad">0</property>
+				  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				  <property name="width_chars">-1</property>
+				  <property name="single_line_mode">False</property>
+				  <property name="angle">0</property>
 				</widget>
 				<packing>
 				  <property name="left_attach">0</property>
@@ -9448,6 +10036,10 @@
 				  <property name="yalign">0.5</property>
 				  <property name="xpad">0</property>
 				  <property name="ypad">0</property>
+				  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				  <property name="width_chars">-1</property>
+				  <property name="single_line_mode">False</property>
+				  <property name="angle">0</property>
 				</widget>
 				<packing>
 				  <property name="left_attach">0</property>
@@ -9494,6 +10086,10 @@
 				  <property name="yalign">0.5</property>
 				  <property name="xpad">0</property>
 				  <property name="ypad">0</property>
+				  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				  <property name="width_chars">-1</property>
+				  <property name="single_line_mode">False</property>
+				  <property name="angle">0</property>
 				</widget>
 				<packing>
 				  <property name="left_attach">0</property>
@@ -9634,6 +10230,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="type">tab</property>
@@ -9680,6 +10280,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -9692,12 +10296,12 @@
 			    <widget class="GtkHBox" id="hbox116">
 			      <property name="visible">True</property>
 			      <property name="homogeneous">False</property>
-			      <property name="spacing">0</property>
+			      <property name="spacing">8</property>
 
 			      <child>
 				<widget class="GtkLabel" id="label268">
 				  <property name="visible">True</property>
-				  <property name="label" translatable="yes">    </property>
+				  <property name="label">    </property>
 				  <property name="use_underline">False</property>
 				  <property name="use_markup">False</property>
 				  <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -9707,6 +10311,10 @@
 				  <property name="yalign">0.5</property>
 				  <property name="xpad">0</property>
 				  <property name="ypad">0</property>
+				  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				  <property name="width_chars">-1</property>
+				  <property name="single_line_mode">False</property>
+				  <property name="angle">0</property>
 				</widget>
 				<packing>
 				  <property name="padding">0</property>
@@ -10248,7 +10856,22 @@
 				      </child>
 
 				      <child>
-					<placeholder/>
+					<widget class="GtkCheckButton" id="col_visible34">
+					  <property name="visible">True</property>
+					  <property name="can_focus">True</property>
+					  <property name="label" translatable="yes"></property>
+					  <property name="use_underline">True</property>
+					  <property name="relief">GTK_RELIEF_NORMAL</property>
+					  <property name="focus_on_click">True</property>
+					  <property name="active">False</property>
+					  <property name="inconsistent">False</property>
+					  <property name="draw_indicator">True</property>
+					</widget>
+					<packing>
+					  <property name="padding">0</property>
+					  <property name="expand">False</property>
+					  <property name="fill">False</property>
+					</packing>
 				      </child>
 				    </widget>
 				    <packing>
@@ -10467,6 +11090,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -10479,12 +11106,12 @@
 			    <widget class="GtkHBox" id="hbox118">
 			      <property name="visible">True</property>
 			      <property name="homogeneous">False</property>
-			      <property name="spacing">0</property>
+			      <property name="spacing">8</property>
 
 			      <child>
 				<widget class="GtkLabel" id="label270">
 				  <property name="visible">True</property>
-				  <property name="label" translatable="yes">    </property>
+				  <property name="label">    </property>
 				  <property name="use_underline">False</property>
 				  <property name="use_markup">False</property>
 				  <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -10494,6 +11121,10 @@
 				  <property name="yalign">0.5</property>
 				  <property name="xpad">0</property>
 				  <property name="ypad">0</property>
+				  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				  <property name="width_chars">-1</property>
+				  <property name="single_line_mode">False</property>
+				  <property name="angle">0</property>
 				</widget>
 				<packing>
 				  <property name="padding">0</property>
@@ -10549,6 +11180,10 @@
 					  <property name="xpad">0</property>
 					  <property name="ypad">0</property>
 					  <property name="mnemonic_widget">cfg_sort_tab_num_sb</property>
+					  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+					  <property name="width_chars">-1</property>
+					  <property name="single_line_mode">False</property>
+					  <property name="angle">0</property>
 					</widget>
 					<packing>
 					  <property name="padding">0</property>
@@ -10624,6 +11259,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -10636,12 +11275,12 @@
 			    <widget class="GtkHBox" id="hbox121">
 			      <property name="visible">True</property>
 			      <property name="homogeneous">False</property>
-			      <property name="spacing">0</property>
+			      <property name="spacing">8</property>
 
 			      <child>
 				<widget class="GtkLabel" id="label273">
 				  <property name="visible">True</property>
-				  <property name="label" translatable="yes">    </property>
+				  <property name="label">    </property>
 				  <property name="use_underline">False</property>
 				  <property name="use_markup">False</property>
 				  <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -10651,6 +11290,10 @@
 				  <property name="yalign">0.5</property>
 				  <property name="xpad">0</property>
 				  <property name="ypad">0</property>
+				  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				  <property name="width_chars">-1</property>
+				  <property name="single_line_mode">False</property>
+				  <property name="angle">0</property>
 				</widget>
 				<packing>
 				  <property name="padding">0</property>
@@ -10700,6 +11343,10 @@
 				      <property name="yalign">0.5</property>
 				      <property name="xpad">20</property>
 				      <property name="ypad">0</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">0</property>
 				    </widget>
 				    <packing>
 				      <property name="padding">0</property>
@@ -10781,6 +11428,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -10793,12 +11444,12 @@
 			    <widget class="GtkHBox" id="hbox123">
 			      <property name="visible">True</property>
 			      <property name="homogeneous">False</property>
-			      <property name="spacing">0</property>
+			      <property name="spacing">8</property>
 
 			      <child>
 				<widget class="GtkLabel" id="label276">
 				  <property name="visible">True</property>
-				  <property name="label" translatable="yes">    </property>
+				  <property name="label">    </property>
 				  <property name="use_underline">False</property>
 				  <property name="use_markup">False</property>
 				  <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -10808,6 +11459,10 @@
 				  <property name="yalign">0.5</property>
 				  <property name="xpad">0</property>
 				  <property name="ypad">0</property>
+				  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				  <property name="width_chars">-1</property>
+				  <property name="single_line_mode">False</property>
+				  <property name="angle">0</property>
 				</widget>
 				<packing>
 				  <property name="padding">0</property>
@@ -10902,6 +11557,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -10914,12 +11573,12 @@
 			    <widget class="GtkHBox" id="hbox126">
 			      <property name="visible">True</property>
 			      <property name="homogeneous">False</property>
-			      <property name="spacing">0</property>
+			      <property name="spacing">8</property>
 
 			      <child>
 				<widget class="GtkLabel" id="label281">
 				  <property name="visible">True</property>
-				  <property name="label" translatable="yes">    </property>
+				  <property name="label">    </property>
 				  <property name="use_underline">False</property>
 				  <property name="use_markup">False</property>
 				  <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -10929,6 +11588,10 @@
 				  <property name="yalign">0.5</property>
 				  <property name="xpad">0</property>
 				  <property name="ypad">0</property>
+				  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				  <property name="width_chars">-1</property>
+				  <property name="single_line_mode">False</property>
+				  <property name="angle">0</property>
 				</widget>
 				<packing>
 				  <property name="padding">0</property>
@@ -10982,6 +11645,10 @@
 					  <property name="yalign">0.5</property>
 					  <property name="xpad">0</property>
 					  <property name="ypad">0</property>
+					  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+					  <property name="width_chars">-1</property>
+					  <property name="single_line_mode">False</property>
+					  <property name="angle">0</property>
 					</widget>
 					<packing>
 					  <property name="padding">0</property>
@@ -11112,6 +11779,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -11124,12 +11795,12 @@
 			    <widget class="GtkHBox" id="hbox124">
 			      <property name="visible">True</property>
 			      <property name="homogeneous">False</property>
-			      <property name="spacing">0</property>
+			      <property name="spacing">8</property>
 
 			      <child>
 				<widget class="GtkLabel" id="label278">
 				  <property name="visible">True</property>
-				  <property name="label" translatable="yes">    </property>
+				  <property name="label">    </property>
 				  <property name="use_underline">False</property>
 				  <property name="use_markup">False</property>
 				  <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -11139,6 +11810,10 @@
 				  <property name="yalign">0.5</property>
 				  <property name="xpad">0</property>
 				  <property name="ypad">0</property>
+				  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				  <property name="width_chars">-1</property>
+				  <property name="single_line_mode">False</property>
+				  <property name="angle">0</property>
 				</widget>
 				<packing>
 				  <property name="padding">0</property>
@@ -11274,6 +11949,10 @@
 						  <property name="yalign">0.5</property>
 						  <property name="xpad">0</property>
 						  <property name="ypad">0</property>
+						  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+						  <property name="width_chars">-1</property>
+						  <property name="single_line_mode">False</property>
+						  <property name="angle">0</property>
 						</widget>
 						<packing>
 						  <property name="padding">0</property>
@@ -11337,6 +12016,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="type">tab</property>
@@ -11369,6 +12052,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -11381,12 +12068,12 @@
 		    <widget class="GtkHBox" id="hbox79">
 		      <property name="visible">True</property>
 		      <property name="homogeneous">False</property>
-		      <property name="spacing">0</property>
+		      <property name="spacing">8</property>
 
 		      <child>
 			<widget class="GtkLabel" id="label203">
 			  <property name="visible">True</property>
-			  <property name="label" translatable="yes">    </property>
+			  <property name="label">    </property>
 			  <property name="use_underline">False</property>
 			  <property name="use_markup">False</property>
 			  <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -11396,6 +12083,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -11450,6 +12141,10 @@
 				  <property name="yalign">0.5</property>
 				  <property name="xpad">0</property>
 				  <property name="ypad">0</property>
+				  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				  <property name="width_chars">-1</property>
+				  <property name="single_line_mode">False</property>
+				  <property name="angle">0</property>
 				</widget>
 				<packing>
 				  <property name="padding">0</property>
@@ -11561,6 +12256,10 @@
 				  <property name="yalign">0.5</property>
 				  <property name="xpad">0</property>
 				  <property name="ypad">0</property>
+				  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				  <property name="width_chars">-1</property>
+				  <property name="single_line_mode">False</property>
+				  <property name="angle">0</property>
 				</widget>
 				<packing>
 				  <property name="padding">0</property>
@@ -11637,6 +12336,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -11649,12 +12352,12 @@
 		    <widget class="GtkHBox" id="hbox82">
 		      <property name="visible">True</property>
 		      <property name="homogeneous">False</property>
-		      <property name="spacing">0</property>
+		      <property name="spacing">8</property>
 
 		      <child>
 			<widget class="GtkLabel" id="label207">
 			  <property name="visible">True</property>
-			  <property name="label" translatable="yes">    </property>
+			  <property name="label">    </property>
 			  <property name="use_underline">False</property>
 			  <property name="use_markup">False</property>
 			  <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -11664,6 +12367,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -11697,6 +12404,10 @@
 				  <property name="yalign">0.5</property>
 				  <property name="xpad">0</property>
 				  <property name="ypad">0</property>
+				  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				  <property name="width_chars">-1</property>
+				  <property name="single_line_mode">False</property>
+				  <property name="angle">0</property>
 				</widget>
 				<packing>
 				  <property name="padding">0</property>
@@ -11793,6 +12504,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -11805,12 +12520,12 @@
 		    <widget class="GtkHBox" id="hbox84">
 		      <property name="visible">True</property>
 		      <property name="homogeneous">False</property>
-		      <property name="spacing">0</property>
+		      <property name="spacing">8</property>
 
 		      <child>
 			<widget class="GtkLabel" id="label210">
 			  <property name="visible">True</property>
-			  <property name="label" translatable="yes">    </property>
+			  <property name="label">    </property>
 			  <property name="use_underline">False</property>
 			  <property name="use_markup">False</property>
 			  <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -11820,6 +12535,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -11915,18 +12634,18 @@
 			  </child>
 
 			  <child>
-			    <widget class="GtkCheckButton" id="cfg_sync_remove_confirm2">
+			    <widget class="GtkCheckButton" id="sync_confirm_delete_toggle2">
 			      <property name="visible">True</property>
 			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">Before removing tracks completely when
-synchronizing directories</property>
+			      <property name="label" translatable="yes">Confirm before removing tracks from the iPod or repository
+when syncing playlists</property>
 			      <property name="use_underline">True</property>
 			      <property name="relief">GTK_RELIEF_NORMAL</property>
 			      <property name="focus_on_click">True</property>
 			      <property name="active">False</property>
 			      <property name="inconsistent">False</property>
 			      <property name="draw_indicator">True</property>
-			      <signal name="toggled" handler="on_cfg_sync_remove_confirm_toggled" last_modification_time="Thu, 28 Apr 2005 18:10:20 GMT"/>
+			      <signal name="toggled" handler="on_sync_confirm_delete_toggled" last_modification_time="Mon, 15 May 2006 15:29:44 GMT"/>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -11975,6 +12694,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="type">tab</property>
@@ -12007,6 +12730,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -12024,7 +12751,7 @@
 		      <child>
 			<widget class="GtkLabel" id="label213">
 			  <property name="visible">True</property>
-			  <property name="label" translatable="yes">    </property>
+			  <property name="label">    </property>
 			  <property name="use_underline">False</property>
 			  <property name="use_markup">False</property>
 			  <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -12034,6 +12761,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -12043,257 +12774,74 @@
 		      </child>
 
 		      <child>
-			<widget class="GtkVBox" id="vbox88">
+			<widget class="GtkTable" id="table50">
 			  <property name="visible">True</property>
+			  <property name="n_rows">2</property>
+			  <property name="n_columns">3</property>
 			  <property name="homogeneous">False</property>
-			  <property name="spacing">6</property>
+			  <property name="row_spacing">8</property>
+			  <property name="column_spacing">8</property>
 
 			  <child>
-			    <widget class="GtkHBox" id="hbox86">
+			    <widget class="GtkLabel" id="label214">
 			      <property name="visible">True</property>
-			      <property name="homogeneous">False</property>
-			      <property name="spacing">8</property>
-
-			      <child>
-				<widget class="GtkLabel" id="label214">
-				  <property name="visible">True</property>
-				  <property name="label" translatable="yes">Command for 'Play now':</property>
-				  <property name="use_underline">False</property>
-				  <property name="use_markup">False</property>
-				  <property name="justify">GTK_JUSTIFY_LEFT</property>
-				  <property name="wrap">False</property>
-				  <property name="selectable">False</property>
-				  <property name="xalign">0.5</property>
-				  <property name="yalign">0.5</property>
-				  <property name="xpad">0</property>
-				  <property name="ypad">0</property>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">False</property>
-				</packing>
-			      </child>
-
-			      <child>
-				<widget class="GtkEntry" id="play_now_path_entry">
-				  <property name="visible">True</property>
-				  <property name="tooltip" translatable="yes">For example, 'xmms %s' will clear xmms' current playlist, add the selected tracks and start playing.</property>
-				  <property name="can_focus">True</property>
-				  <property name="editable">True</property>
-				  <property name="visibility">True</property>
-				  <property name="max_length">0</property>
-				  <property name="text" translatable="yes"></property>
-				  <property name="has_frame">True</property>
-				  <property name="invisible_char">*</property>
-				  <property name="activates_default">False</property>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">True</property>
-				  <property name="fill">True</property>
-				</packing>
-			      </child>
-
-			      <child>
-				<widget class="GtkButton" id="play_now_path_button">
-				  <property name="visible">True</property>
-				  <property name="can_focus">True</property>
-				  <property name="label" translatable="yes">Browse</property>
-				  <property name="use_underline">True</property>
-				  <property name="relief">GTK_RELIEF_NORMAL</property>
-				  <property name="focus_on_click">True</property>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">False</property>
-				</packing>
-			      </child>
+			      <property name="label" translatable="yes">Command for 'Play now':</property>
+			      <property name="use_underline">False</property>
+			      <property name="use_markup">False</property>
+			      <property name="justify">GTK_JUSTIFY_LEFT</property>
+			      <property name="wrap">False</property>
+			      <property name="selectable">False</property>
+			      <property name="xalign">0</property>
+			      <property name="yalign">0.5</property>
+			      <property name="xpad">0</property>
+			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">True</property>
-			      <property name="fill">True</property>
+			      <property name="left_attach">0</property>
+			      <property name="right_attach">1</property>
+			      <property name="top_attach">0</property>
+			      <property name="bottom_attach">1</property>
+			      <property name="x_options">fill</property>
+			      <property name="y_options"></property>
 			    </packing>
 			  </child>
 
 			  <child>
-			    <widget class="GtkHBox" id="hbox87">
+			    <widget class="GtkLabel" id="label215">
 			      <property name="visible">True</property>
-			      <property name="homogeneous">False</property>
-			      <property name="spacing">8</property>
-
-			      <child>
-				<widget class="GtkLabel" id="label215">
-				  <property name="visible">True</property>
-				  <property name="label" translatable="yes">Command for 'Enqueue':</property>
-				  <property name="use_underline">False</property>
-				  <property name="use_markup">False</property>
-				  <property name="justify">GTK_JUSTIFY_LEFT</property>
-				  <property name="wrap">False</property>
-				  <property name="selectable">False</property>
-				  <property name="xalign">0.5</property>
-				  <property name="yalign">0.5</property>
-				  <property name="xpad">0</property>
-				  <property name="ypad">0</property>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">False</property>
-				</packing>
-			      </child>
-
-			      <child>
-				<widget class="GtkEntry" id="play_enqueue_path_entry">
-				  <property name="visible">True</property>
-				  <property name="tooltip" translatable="yes">For example, 'xmms -e %s' will append (enqueue) the selected tracks to xmms' current playlist.</property>
-				  <property name="can_focus">True</property>
-				  <property name="editable">True</property>
-				  <property name="visibility">True</property>
-				  <property name="max_length">0</property>
-				  <property name="text" translatable="yes"></property>
-				  <property name="has_frame">True</property>
-				  <property name="invisible_char">*</property>
-				  <property name="activates_default">False</property>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">True</property>
-				  <property name="fill">True</property>
-				</packing>
-			      </child>
-
-			      <child>
-				<widget class="GtkButton" id="play_enqueue_path_button">
-				  <property name="visible">True</property>
-				  <property name="can_focus">True</property>
-				  <property name="label" translatable="yes">Browse</property>
-				  <property name="use_underline">True</property>
-				  <property name="relief">GTK_RELIEF_NORMAL</property>
-				  <property name="focus_on_click">True</property>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">False</property>
-				</packing>
-			      </child>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">True</property>
-			      <property name="fill">True</property>
-			    </packing>
-			  </child>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">True</property>
-			  <property name="fill">True</property>
-			</packing>
-		      </child>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">True</property>
-		      <property name="fill">True</property>
-		    </packing>
-		  </child>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">True</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkVBox" id="vbox89">
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">6</property>
-
-		  <child>
-		    <widget class="GtkLabel" id="label216">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">&lt;b&gt;Volume Normalization&lt;/b&gt;</property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">True</property>
-		      <property name="justify">GTK_JUSTIFY_LEFT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">0</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">0</property>
-		      <property name="ypad">0</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkHBox" id="hbox88">
-		      <property name="visible">True</property>
-		      <property name="homogeneous">False</property>
-		      <property name="spacing">0</property>
-
-		      <child>
-			<widget class="GtkLabel" id="label218">
-			  <property name="visible">True</property>
-			  <property name="label" translatable="yes">    </property>
-			  <property name="use_underline">False</property>
-			  <property name="use_markup">False</property>
-			  <property name="justify">GTK_JUSTIFY_LEFT</property>
-			  <property name="wrap">False</property>
-			  <property name="selectable">False</property>
-			  <property name="xalign">0.5</property>
-			  <property name="yalign">0.5</property>
-			  <property name="xpad">0</property>
-			  <property name="ypad">0</property>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-
-		      <child>
-			<widget class="GtkHBox" id="hbox89">
-			  <property name="visible">True</property>
-			  <property name="homogeneous">False</property>
-			  <property name="spacing">8</property>
-
-			  <child>
-			    <widget class="GtkLabel" id="label219">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">'mp3gain' executable:</property>
+			      <property name="label" translatable="yes">Command for 'Enqueue':</property>
 			      <property name="use_underline">False</property>
 			      <property name="use_markup">False</property>
 			      <property name="justify">GTK_JUSTIFY_LEFT</property>
 			      <property name="wrap">False</property>
 			      <property name="selectable">False</property>
-			      <property name="xalign">0.5</property>
+			      <property name="xalign">0</property>
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">False</property>
+			      <property name="left_attach">0</property>
+			      <property name="right_attach">1</property>
+			      <property name="top_attach">1</property>
+			      <property name="bottom_attach">2</property>
+			      <property name="x_options">fill</property>
+			      <property name="y_options"></property>
 			    </packing>
 			  </child>
 
 			  <child>
-			    <widget class="GtkEntry" id="mp3gain_path_entry">
+			    <widget class="GtkEntry" id="play_now_path_entry">
 			      <property name="visible">True</property>
-			      <property name="tooltip" translatable="yes">You only need to specify this if your 'mp3gain' executable is not in your default path. Example: '/usr/local/foo/mp3gain'. mp3gain will write the calculated gain value back to the file -- if you don't want this, set this entry to /bin/true or similar. mp3gain is only called if appropriate tags are not already set by your encoder. E.g. lame version 0.95 already writes the gain values into tags. The exact conversion factor between mp3gain's gain value and iPod's volume tag is not known yet -- your input is appreciated.</property>
+			      <property name="tooltip" translatable="yes">For example, 'xmms %s' will clear xmms' current playlist, add the selected tracks and start playing.</property>
 			      <property name="can_focus">True</property>
 			      <property name="editable">True</property>
 			      <property name="visibility">True</property>
@@ -12304,359 +12852,71 @@
 			      <property name="activates_default">False</property>
 			    </widget>
 			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">True</property>
-			      <property name="fill">True</property>
+			      <property name="left_attach">1</property>
+			      <property name="right_attach">2</property>
+			      <property name="top_attach">0</property>
+			      <property name="bottom_attach">1</property>
+			      <property name="y_options"></property>
 			    </packing>
 			  </child>
 
 			  <child>
-			    <widget class="GtkButton" id="mp3gain_path_button">
+			    <widget class="GtkEntry" id="play_enqueue_path_entry">
 			      <property name="visible">True</property>
+			      <property name="tooltip" translatable="yes">For example, 'xmms -e %s' will append (enqueue) the selected tracks to xmms' current playlist.</property>
 			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">Browse</property>
-			      <property name="use_underline">True</property>
-			      <property name="relief">GTK_RELIEF_NORMAL</property>
-			      <property name="focus_on_click">True</property>
+			      <property name="editable">True</property>
+			      <property name="visibility">True</property>
+			      <property name="max_length">0</property>
+			      <property name="text" translatable="yes"></property>
+			      <property name="has_frame">True</property>
+			      <property name="invisible_char">*</property>
+			      <property name="activates_default">False</property>
 			    </widget>
 			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">False</property>
+			      <property name="left_attach">1</property>
+			      <property name="right_attach">2</property>
+			      <property name="top_attach">1</property>
+			      <property name="bottom_attach">2</property>
+			      <property name="y_options"></property>
 			    </packing>
 			  </child>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">True</property>
-			  <property name="fill">True</property>
-			</packing>
-		      </child>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">True</property>
-		      <property name="fill">True</property>
-		    </packing>
-		  </child>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">True</property>
-		</packing>
-	      </child>
 
-	      <child>
-		<widget class="GtkVBox" id="vbox90">
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">6</property>
-
-		  <child>
-		    <widget class="GtkLabel" id="label220">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">&lt;b&gt;Synchronization&lt;/b&gt;</property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">True</property>
-		      <property name="justify">GTK_JUSTIFY_LEFT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">0</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">0</property>
-		      <property name="ypad">0</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkHBox" id="hbox90">
-		      <property name="visible">True</property>
-		      <property name="homogeneous">False</property>
-		      <property name="spacing">8</property>
-
-		      <child>
-			<widget class="GtkLabel" id="label221">
-			  <property name="visible">True</property>
-			  <property name="label" translatable="yes">    </property>
-			  <property name="use_underline">False</property>
-			  <property name="use_markup">False</property>
-			  <property name="justify">GTK_JUSTIFY_LEFT</property>
-			  <property name="wrap">False</property>
-			  <property name="selectable">False</property>
-			  <property name="xalign">0.5</property>
-			  <property name="yalign">0.5</property>
-			  <property name="xpad">0</property>
-			  <property name="ypad">0</property>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-
-		      <child>
-			<widget class="GtkVBox" id="vbox91">
-			  <property name="visible">True</property>
-			  <property name="homogeneous">False</property>
-			  <property name="spacing">6</property>
-
 			  <child>
-			    <widget class="GtkLabel" id="prefs_label_syncexamples">
+			    <widget class="GtkButton" id="play_now_path_button">
 			      <property name="visible">True</property>
 			      <property name="can_focus">True</property>
-			      <property name="label">&lt;i&gt;label&lt;/i&gt;</property>
-			      <property name="use_underline">False</property>
-			      <property name="use_markup">True</property>
-			      <property name="justify">GTK_JUSTIFY_LEFT</property>
-			      <property name="wrap">True</property>
-			      <property name="selectable">True</property>
-			      <property name="xalign">0</property>
-			      <property name="yalign">0.5</property>
-			      <property name="xpad">10</property>
-			      <property name="ypad">3</property>
+			      <property name="label" translatable="yes">Browse</property>
+			      <property name="use_underline">True</property>
+			      <property name="relief">GTK_RELIEF_NORMAL</property>
+			      <property name="focus_on_click">True</property>
 			    </widget>
 			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">False</property>
+			      <property name="left_attach">2</property>
+			      <property name="right_attach">3</property>
+			      <property name="top_attach">0</property>
+			      <property name="bottom_attach">1</property>
+			      <property name="x_options">fill</property>
+			      <property name="y_options"></property>
 			    </packing>
 			  </child>
 
 			  <child>
-			    <widget class="GtkTable" id="table34">
+			    <widget class="GtkButton" id="play_enqueue_path_button">
 			      <property name="visible">True</property>
-			      <property name="n_rows">3</property>
-			      <property name="n_columns">3</property>
-			      <property name="homogeneous">False</property>
-			      <property name="row_spacing">6</property>
-			      <property name="column_spacing">12</property>
-
-			      <child>
-				<widget class="GtkLabel" id="label222">
-				  <property name="visible">True</property>
-				  <property name="label" translatable="yes">Contacts sync command:</property>
-				  <property name="use_underline">False</property>
-				  <property name="use_markup">False</property>
-				  <property name="justify">GTK_JUSTIFY_LEFT</property>
-				  <property name="wrap">False</property>
-				  <property name="selectable">False</property>
-				  <property name="xalign">0</property>
-				  <property name="yalign">0.5</property>
-				  <property name="xpad">0</property>
-				  <property name="ypad">0</property>
-				</widget>
-				<packing>
-				  <property name="left_attach">0</property>
-				  <property name="right_attach">1</property>
-				  <property name="top_attach">0</property>
-				  <property name="bottom_attach">1</property>
-				  <property name="x_options">fill</property>
-				  <property name="y_options"></property>
-				</packing>
-			      </child>
-
-			      <child>
-				<widget class="GtkEntry" id="sync_contacts_path_entry">
-				  <property name="visible">True</property>
-				  <property name="tooltip" translatable="yes">Specify exact path including command line options. '%i' will be replaced with the mount point of the iPod.</property>
-				  <property name="can_focus">True</property>
-				  <property name="editable">True</property>
-				  <property name="visibility">True</property>
-				  <property name="max_length">0</property>
-				  <property name="text" translatable="yes"></property>
-				  <property name="has_frame">True</property>
-				  <property name="invisible_char">*</property>
-				  <property name="activates_default">False</property>
-				</widget>
-				<packing>
-				  <property name="left_attach">1</property>
-				  <property name="right_attach">2</property>
-				  <property name="top_attach">0</property>
-				  <property name="bottom_attach">1</property>
-				  <property name="y_options"></property>
-				</packing>
-			      </child>
-
-			      <child>
-				<widget class="GtkButton" id="sync_contacts_path_button">
-				  <property name="visible">True</property>
-				  <property name="can_focus">True</property>
-				  <property name="label" translatable="yes">Browse</property>
-				  <property name="use_underline">True</property>
-				  <property name="relief">GTK_RELIEF_NORMAL</property>
-				  <property name="focus_on_click">True</property>
-				</widget>
-				<packing>
-				  <property name="left_attach">2</property>
-				  <property name="right_attach">3</property>
-				  <property name="top_attach">0</property>
-				  <property name="bottom_attach">1</property>
-				  <property name="x_options">fill</property>
-				  <property name="y_options"></property>
-				</packing>
-			      </child>
-
-			      <child>
-				<widget class="GtkLabel" id="label223">
-				  <property name="visible">True</property>
-				  <property name="label" translatable="yes">Calendar sync command:</property>
-				  <property name="use_underline">False</property>
-				  <property name="use_markup">False</property>
-				  <property name="justify">GTK_JUSTIFY_LEFT</property>
-				  <property name="wrap">False</property>
-				  <property name="selectable">False</property>
-				  <property name="xalign">0</property>
-				  <property name="yalign">0.5</property>
-				  <property name="xpad">0</property>
-				  <property name="ypad">0</property>
-				</widget>
-				<packing>
-				  <property name="left_attach">0</property>
-				  <property name="right_attach">1</property>
-				  <property name="top_attach">1</property>
-				  <property name="bottom_attach">2</property>
-				  <property name="x_options">fill</property>
-				  <property name="y_options"></property>
-				</packing>
-			      </child>
-
-			      <child>
-				<widget class="GtkEntry" id="sync_calendar_path_entry">
-				  <property name="visible">True</property>
-				  <property name="tooltip" translatable="yes">Specify exact path including command line options. '%i' will be replaced with the mount point of the iPod.</property>
-				  <property name="can_focus">True</property>
-				  <property name="editable">True</property>
-				  <property name="visibility">True</property>
-				  <property name="max_length">0</property>
-				  <property name="text" translatable="yes"></property>
-				  <property name="has_frame">True</property>
-				  <property name="invisible_char">*</property>
-				  <property name="activates_default">False</property>
-				</widget>
-				<packing>
-				  <property name="left_attach">1</property>
-				  <property name="right_attach">2</property>
-				  <property name="top_attach">1</property>
-				  <property name="bottom_attach">2</property>
-				  <property name="y_options"></property>
-				</packing>
-			      </child>
-
-			      <child>
-				<widget class="GtkButton" id="sync_calendar_path_button">
-				  <property name="visible">True</property>
-				  <property name="can_focus">True</property>
-				  <property name="label" translatable="yes">Browse</property>
-				  <property name="use_underline">True</property>
-				  <property name="relief">GTK_RELIEF_NORMAL</property>
-				  <property name="focus_on_click">True</property>
-				</widget>
-				<packing>
-				  <property name="left_attach">2</property>
-				  <property name="right_attach">3</property>
-				  <property name="top_attach">1</property>
-				  <property name="bottom_attach">2</property>
-				  <property name="x_options">fill</property>
-				  <property name="y_options"></property>
-				</packing>
-			      </child>
-
-			      <child>
-				<widget class="GtkLabel" id="label224">
-				  <property name="visible">True</property>
-				  <property name="label" translatable="yes">Notes sync command:</property>
-				  <property name="use_underline">False</property>
-				  <property name="use_markup">False</property>
-				  <property name="justify">GTK_JUSTIFY_LEFT</property>
-				  <property name="wrap">False</property>
-				  <property name="selectable">False</property>
-				  <property name="xalign">0</property>
-				  <property name="yalign">0.5</property>
-				  <property name="xpad">0</property>
-				  <property name="ypad">0</property>
-				</widget>
-				<packing>
-				  <property name="left_attach">0</property>
-				  <property name="right_attach">1</property>
-				  <property name="top_attach">2</property>
-				  <property name="bottom_attach">3</property>
-				  <property name="x_options">fill</property>
-				  <property name="y_options"></property>
-				</packing>
-			      </child>
-
-			      <child>
-				<widget class="GtkEntry" id="sync_notes_path_entry">
-				  <property name="visible">True</property>
-				  <property name="tooltip" translatable="yes">Specify exact path including command line options. '%i' will be replaced with the mount point of the iPod.</property>
-				  <property name="can_focus">True</property>
-				  <property name="editable">True</property>
-				  <property name="visibility">True</property>
-				  <property name="max_length">0</property>
-				  <property name="text" translatable="yes"></property>
-				  <property name="has_frame">True</property>
-				  <property name="invisible_char">*</property>
-				  <property name="activates_default">False</property>
-				</widget>
-				<packing>
-				  <property name="left_attach">1</property>
-				  <property name="right_attach">2</property>
-				  <property name="top_attach">2</property>
-				  <property name="bottom_attach">3</property>
-				  <property name="y_options"></property>
-				</packing>
-			      </child>
-
-			      <child>
-				<widget class="GtkButton" id="sync_notes_path_button">
-				  <property name="visible">True</property>
-				  <property name="can_focus">True</property>
-				  <property name="label" translatable="yes">Browse</property>
-				  <property name="use_underline">True</property>
-				  <property name="relief">GTK_RELIEF_NORMAL</property>
-				  <property name="focus_on_click">True</property>
-				</widget>
-				<packing>
-				  <property name="left_attach">2</property>
-				  <property name="right_attach">3</property>
-				  <property name="top_attach">2</property>
-				  <property name="bottom_attach">3</property>
-				  <property name="x_options">fill</property>
-				  <property name="y_options"></property>
-				</packing>
-			      </child>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">True</property>
-			      <property name="fill">True</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkCheckButton" id="concal_autosync">
-			      <property name="visible">True</property>
 			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">Call automatically when synchronizing iTunesDB</property>
+			      <property name="label" translatable="yes">Browse</property>
 			      <property name="use_underline">True</property>
 			      <property name="relief">GTK_RELIEF_NORMAL</property>
 			      <property name="focus_on_click">True</property>
-			      <property name="active">False</property>
-			      <property name="inconsistent">False</property>
-			      <property name="draw_indicator">True</property>
-			      <signal name="toggled" handler="on_concal_autosync_toggled" last_modification_time="Thu, 28 Apr 2005 18:12:10 GMT"/>
 			    </widget>
 			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">False</property>
+			      <property name="left_attach">2</property>
+			      <property name="right_attach">3</property>
+			      <property name="top_attach">1</property>
+			      <property name="bottom_attach">2</property>
+			      <property name="x_options">fill</property>
+			      <property name="y_options"></property>
 			    </packing>
 			  </child>
 			</widget>
@@ -12680,49 +12940,17 @@
 		  <property name="fill">True</property>
 		</packing>
 	      </child>
-	    </widget>
-	    <packing>
-	      <property name="tab_expand">False</property>
-	      <property name="tab_fill">True</property>
-	    </packing>
-	  </child>
 
-	  <child>
-	    <widget class="GtkLabel" id="label211">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">_Tools</property>
-	      <property name="use_underline">True</property>
-	      <property name="use_markup">False</property>
-	      <property name="justify">GTK_JUSTIFY_LEFT</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0.5</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	    </widget>
-	    <packing>
-	      <property name="type">tab</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkVBox" id="vbox141">
-	      <property name="border_width">12</property>
-	      <property name="visible">True</property>
-	      <property name="homogeneous">False</property>
-	      <property name="spacing">18</property>
-
 	      <child>
-		<widget class="GtkVBox" id="vbox142">
+		<widget class="GtkVBox" id="vbox89">
 		  <property name="visible">True</property>
 		  <property name="homogeneous">False</property>
-		  <property name="spacing">0</property>
+		  <property name="spacing">6</property>
 
 		  <child>
-		    <widget class="GtkLabel" id="label312">
+		    <widget class="GtkLabel" id="label216">
 		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">&lt;b&gt;Podcast subscriptions&lt;/b&gt;</property>
+		      <property name="label" translatable="yes">&lt;b&gt;Volume Normalization&lt;/b&gt;</property>
 		      <property name="use_underline">False</property>
 		      <property name="use_markup">True</property>
 		      <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -12732,6 +12960,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -12741,15 +12973,15 @@
 		  </child>
 
 		  <child>
-		    <widget class="GtkHBox" id="hbox159">
+		    <widget class="GtkHBox" id="hbox88">
 		      <property name="visible">True</property>
 		      <property name="homogeneous">False</property>
-		      <property name="spacing">0</property>
+		      <property name="spacing">8</property>
 
 		      <child>
-			<widget class="GtkLabel" id="label313">
+			<widget class="GtkLabel" id="label218">
 			  <property name="visible">True</property>
-			  <property name="label" translatable="yes">    </property>
+			  <property name="label">    </property>
 			  <property name="use_underline">False</property>
 			  <property name="use_markup">False</property>
 			  <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -12759,6 +12991,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -12768,149 +13004,76 @@
 		      </child>
 
 		      <child>
-			<widget class="GtkScrolledWindow" id="pc_subs_window">
+			<widget class="GtkTable" id="table49">
 			  <property name="visible">True</property>
-			  <property name="can_focus">True</property>
-			  <property name="hscrollbar_policy">GTK_POLICY_ALWAYS</property>
-			  <property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
-			  <property name="shadow_type">GTK_SHADOW_IN</property>
-			  <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
-			  <child>
-			    <placeholder/>
-			  </child>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">True</property>
-			  <property name="fill">True</property>
-			</packing>
-		      </child>
-
-		      <child>
-			<widget class="GtkVBox" id="vbox143">
-			  <property name="visible">True</property>
+			  <property name="n_rows">2</property>
+			  <property name="n_columns">3</property>
 			  <property name="homogeneous">False</property>
-			  <property name="spacing">0</property>
+			  <property name="row_spacing">8</property>
+			  <property name="column_spacing">8</property>
 
 			  <child>
-			    <widget class="GtkButton" id="pc_add_button">
+			    <widget class="GtkLabel" id="label219">
 			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">Add</property>
-			      <property name="use_underline">True</property>
-			      <property name="relief">GTK_RELIEF_NORMAL</property>
-			      <property name="focus_on_click">True</property>
-			      <signal name="clicked" handler="on_pc_add_button_clicked" last_modification_time="Mon, 19 Sep 2005 11:26:32 GMT"/>
+			      <property name="label" translatable="yes">'mp3gain' executable:</property>
+			      <property name="use_underline">False</property>
+			      <property name="use_markup">False</property>
+			      <property name="justify">GTK_JUSTIFY_LEFT</property>
+			      <property name="wrap">False</property>
+			      <property name="selectable">False</property>
+			      <property name="xalign">0</property>
+			      <property name="yalign">0.5</property>
+			      <property name="xpad">0</property>
+			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">False</property>
+			      <property name="left_attach">0</property>
+			      <property name="right_attach">1</property>
+			      <property name="top_attach">0</property>
+			      <property name="bottom_attach">1</property>
+			      <property name="x_options">fill</property>
+			      <property name="y_options"></property>
 			    </packing>
 			  </child>
 
 			  <child>
-			    <widget class="GtkButton" id="pc_update_button">
+			    <widget class="GtkEntry" id="mp3gain_path_entry">
 			      <property name="visible">True</property>
+			      <property name="tooltip" translatable="yes">Set this to 'mp3gain -q -k' to use the 'Normalize volume' functionality in the Tools Menu. If this is set, missing normalization data for mp3 files will be calculated and written to your mp3 file using this command.</property>
 			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">Update</property>
-			      <property name="use_underline">True</property>
-			      <property name="relief">GTK_RELIEF_NORMAL</property>
-			      <property name="focus_on_click">True</property>
-			      <signal name="clicked" handler="on_pc_update_button_clicked" last_modification_time="Mon, 19 Sep 2005 17:28:32 GMT"/>
+			      <property name="editable">True</property>
+			      <property name="visibility">True</property>
+			      <property name="max_length">0</property>
+			      <property name="text" translatable="yes"></property>
+			      <property name="has_frame">True</property>
+			      <property name="invisible_char">*</property>
+			      <property name="activates_default">False</property>
 			    </widget>
 			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">False</property>
+			      <property name="left_attach">1</property>
+			      <property name="right_attach">2</property>
+			      <property name="top_attach">0</property>
+			      <property name="bottom_attach">1</property>
+			      <property name="y_options"></property>
 			    </packing>
 			  </child>
 
 			  <child>
-			    <widget class="GtkButton" id="pc_delete_button">
+			    <widget class="GtkButton" id="mp3gain_path_button">
 			      <property name="visible">True</property>
 			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">Delete</property>
+			      <property name="label" translatable="yes">Browse</property>
 			      <property name="use_underline">True</property>
 			      <property name="relief">GTK_RELIEF_NORMAL</property>
 			      <property name="focus_on_click">True</property>
-			      <signal name="clicked" handler="on_pc_delete_button_clicked" last_modification_time="Mon, 19 Sep 2005 15:40:04 GMT"/>
 			    </widget>
 			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">False</property>
-			    </packing>
-			  </child>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">True</property>
-			  <property name="fill">True</property>
-			</packing>
-		      </child>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">True</property>
-		      <property name="fill">True</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkHBox" id="hbox167">
-		      <property name="visible">True</property>
-		      <property name="homogeneous">False</property>
-		      <property name="spacing">0</property>
-
-		      <child>
-			<widget class="GtkLabel" id="label322">
-			  <property name="visible">True</property>
-			  <property name="label" translatable="yes">    </property>
-			  <property name="use_underline">False</property>
-			  <property name="use_markup">False</property>
-			  <property name="justify">GTK_JUSTIFY_LEFT</property>
-			  <property name="wrap">False</property>
-			  <property name="selectable">False</property>
-			  <property name="xalign">0.5</property>
-			  <property name="yalign">0.5</property>
-			  <property name="xpad">0</property>
-			  <property name="ypad">0</property>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-
-		      <child>
-			<widget class="GtkTable" id="table35">
-			  <property name="visible">True</property>
-			  <property name="n_rows">2</property>
-			  <property name="n_columns">2</property>
-			  <property name="homogeneous">False</property>
-			  <property name="row_spacing">0</property>
-			  <property name="column_spacing">0</property>
-
-			  <child>
-			    <widget class="GtkLabel" id="label323">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">Name: </property>
-			      <property name="use_underline">False</property>
-			      <property name="use_markup">False</property>
-			      <property name="justify">GTK_JUSTIFY_LEFT</property>
-			      <property name="wrap">False</property>
-			      <property name="selectable">False</property>
-			      <property name="xalign">0</property>
-			      <property name="yalign">0.5</property>
-			      <property name="xpad">0</property>
-			      <property name="ypad">0</property>
-			    </widget>
-			    <packing>
-			      <property name="left_attach">0</property>
-			      <property name="right_attach">1</property>
+			      <property name="left_attach">2</property>
+			      <property name="right_attach">3</property>
 			      <property name="top_attach">0</property>
 			      <property name="bottom_attach">1</property>
 			      <property name="x_options">fill</property>
@@ -12919,9 +13082,9 @@
 			  </child>
 
 			  <child>
-			    <widget class="GtkLabel" id="label324">
+			    <widget class="GtkLabel" id="label432">
 			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">URL: </property>
+			      <property name="label" translatable="yes">'aacgain' executable:</property>
 			      <property name="use_underline">False</property>
 			      <property name="use_markup">False</property>
 			      <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -12931,6 +13094,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="left_attach">0</property>
@@ -12943,8 +13110,9 @@
 			  </child>
 
 			  <child>
-			    <widget class="GtkEntry" id="pc_name">
+			    <widget class="GtkEntry" id="aacgain_path_entry">
 			      <property name="visible">True</property>
+			      <property name="tooltip" translatable="yes">Set this to 'aacgain -q -k' to use the 'Normalize volume' functionality in the Tools Menu. If this is set, missing normalization data for .m4a and .m4b files will be calculated and written to your music file using this command.</property>
 			      <property name="can_focus">True</property>
 			      <property name="editable">True</property>
 			      <property name="visibility">True</property>
@@ -12957,369 +13125,30 @@
 			    <packing>
 			      <property name="left_attach">1</property>
 			      <property name="right_attach">2</property>
-			      <property name="top_attach">0</property>
-			      <property name="bottom_attach">1</property>
-			      <property name="y_options"></property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkEntry" id="pc_url">
-			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="editable">True</property>
-			      <property name="visibility">True</property>
-			      <property name="max_length">0</property>
-			      <property name="text" translatable="yes"></property>
-			      <property name="has_frame">True</property>
-			      <property name="invisible_char">*</property>
-			      <property name="activates_default">False</property>
-			    </widget>
-			    <packing>
-			      <property name="left_attach">1</property>
-			      <property name="right_attach">2</property>
 			      <property name="top_attach">1</property>
 			      <property name="bottom_attach">2</property>
 			      <property name="y_options"></property>
 			    </packing>
 			  </child>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">True</property>
-			  <property name="fill">True</property>
-			</packing>
-		      </child>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">True</property>
-		      <property name="fill">True</property>
-		    </packing>
-		  </child>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">True</property>
-		  <property name="fill">True</property>
-		</packing>
-	      </child>
 
-	      <child>
-		<widget class="GtkVBox" id="vbox144">
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">0</property>
-
-		  <child>
-		    <widget class="GtkLabel" id="label315">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">&lt;b&gt;File options&lt;/b&gt;</property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">True</property>
-		      <property name="justify">GTK_JUSTIFY_LEFT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">0</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">0</property>
-		      <property name="ypad">0</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkHBox" id="hbox160">
-		      <property name="visible">True</property>
-		      <property name="homogeneous">False</property>
-		      <property name="spacing">0</property>
-
-		      <child>
-			<widget class="GtkLabel" id="label314">
-			  <property name="visible">True</property>
-			  <property name="label" translatable="yes">    </property>
-			  <property name="use_underline">False</property>
-			  <property name="use_markup">False</property>
-			  <property name="justify">GTK_JUSTIFY_LEFT</property>
-			  <property name="wrap">False</property>
-			  <property name="selectable">False</property>
-			  <property name="xalign">0.5</property>
-			  <property name="yalign">0.5</property>
-			  <property name="xpad">0</property>
-			  <property name="ypad">0</property>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-
-		      <child>
-			<widget class="GtkVBox" id="vbox145">
-			  <property name="visible">True</property>
-			  <property name="homogeneous">False</property>
-			  <property name="spacing">0</property>
-
 			  <child>
-			    <widget class="GtkHBox" id="hbox161">
+			    <widget class="GtkButton" id="aacgain_path_button">
 			      <property name="visible">True</property>
-			      <property name="homogeneous">False</property>
-			      <property name="spacing">0</property>
-
-			      <child>
-				<widget class="GtkLabel" id="label316">
-				  <property name="visible">True</property>
-				  <property name="label" translatable="yes">Save podcasts to: </property>
-				  <property name="use_underline">False</property>
-				  <property name="use_markup">False</property>
-				  <property name="justify">GTK_JUSTIFY_LEFT</property>
-				  <property name="wrap">False</property>
-				  <property name="selectable">False</property>
-				  <property name="xalign">0.5</property>
-				  <property name="yalign">0.5</property>
-				  <property name="xpad">0</property>
-				  <property name="ypad">0</property>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">False</property>
-				</packing>
-			      </child>
-
-			      <child>
-				<widget class="GtkEntry" id="pc_dir">
-				  <property name="visible">True</property>
-				  <property name="can_focus">True</property>
-				  <property name="editable">True</property>
-				  <property name="visibility">True</property>
-				  <property name="max_length">0</property>
-				  <property name="text" translatable="yes"></property>
-				  <property name="has_frame">True</property>
-				  <property name="invisible_char">*</property>
-				  <property name="activates_default">False</property>
-				  <signal name="changed" handler="on_pc_dir_changed" last_modification_time="Sat, 17 Sep 2005 20:23:44 GMT"/>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">True</property>
-				  <property name="fill">True</property>
-				</packing>
-			      </child>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">True</property>
-			      <property name="fill">True</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkHBox" id="hbox163">
-			      <property name="visible">True</property>
-			      <property name="homogeneous">False</property>
-			      <property name="spacing">0</property>
-
-			      <child>
-				<widget class="GtkCheckButton" id="pc_del_age">
-				  <property name="visible">True</property>
-				  <property name="can_focus">True</property>
-				  <property name="label" translatable="yes">Delete from computer when </property>
-				  <property name="use_underline">True</property>
-				  <property name="relief">GTK_RELIEF_NORMAL</property>
-				  <property name="focus_on_click">True</property>
-				  <property name="active">False</property>
-				  <property name="inconsistent">False</property>
-				  <property name="draw_indicator">True</property>
-				  <signal name="toggled" handler="on_pc_del_age_toggled" last_modification_time="Sat, 17 Sep 2005 21:41:16 GMT"/>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">False</property>
-				</packing>
-			      </child>
-
-			      <child>
-				<widget class="GtkSpinButton" id="pc_del_age_val">
-				  <property name="width_request">52</property>
-				  <property name="visible">True</property>
-				  <property name="can_focus">True</property>
-				  <property name="climb_rate">1</property>
-				  <property name="digits">0</property>
-				  <property name="numeric">False</property>
-				  <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-				  <property name="snap_to_ticks">False</property>
-				  <property name="wrap">False</property>
-				  <property name="adjustment">1 1 100 1 10 10</property>
-				  <signal name="value_changed" handler="on_pc_del_age_val_value_changed" last_modification_time="Sat, 17 Sep 2005 21:42:03 GMT"/>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">True</property>
-				</packing>
-			      </child>
-
-			      <child>
-				<widget class="GtkLabel" id="label339">
-				  <property name="visible">True</property>
-				  <property name="label" translatable="yes"> days old</property>
-				  <property name="use_underline">False</property>
-				  <property name="use_markup">False</property>
-				  <property name="justify">GTK_JUSTIFY_LEFT</property>
-				  <property name="wrap">False</property>
-				  <property name="selectable">False</property>
-				  <property name="xalign">0.5</property>
-				  <property name="yalign">0.5</property>
-				  <property name="xpad">0</property>
-				  <property name="ypad">0</property>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">False</property>
-				</packing>
-			      </child>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">True</property>
-			      <property name="fill">True</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkCheckButton" id="pc_del_copied">
-			      <property name="visible">True</property>
 			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">Delete once copied to iPod</property>
+			      <property name="label" translatable="yes">Browse</property>
 			      <property name="use_underline">True</property>
 			      <property name="relief">GTK_RELIEF_NORMAL</property>
 			      <property name="focus_on_click">True</property>
-			      <property name="active">False</property>
-			      <property name="inconsistent">False</property>
-			      <property name="draw_indicator">True</property>
-			      <signal name="toggled" handler="on_pc_del_copied_toggled" last_modification_time="Mon, 19 Sep 2005 10:10:09 GMT"/>
 			    </widget>
 			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">False</property>
+			      <property name="left_attach">2</property>
+			      <property name="right_attach">3</property>
+			      <property name="top_attach">1</property>
+			      <property name="bottom_attach">2</property>
+			      <property name="x_options">fill</property>
+			      <property name="y_options"></property>
 			    </packing>
 			  </child>
-
-			  <child>
-			    <widget class="GtkHBox" id="hbox162">
-			      <property name="visible">True</property>
-			      <property name="homogeneous">False</property>
-			      <property name="spacing">0</property>
-
-			      <child>
-				<widget class="GtkCheckButton" id="pc_auto_fetch">
-				  <property name="visible">True</property>
-				  <property name="can_focus">True</property>
-				  <property name="label" translatable="yes">Automatically fetch podcasts on startup</property>
-				  <property name="use_underline">True</property>
-				  <property name="relief">GTK_RELIEF_NORMAL</property>
-				  <property name="focus_on_click">True</property>
-				  <property name="active">False</property>
-				  <property name="inconsistent">False</property>
-				  <property name="draw_indicator">True</property>
-				  <signal name="toggled" handler="on_pc_auto_fetch_toggled" last_modification_time="Sat, 17 Sep 2005 22:00:55 GMT"/>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">False</property>
-				</packing>
-			      </child>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">True</property>
-			      <property name="fill">True</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkCheckButton" id="pc_log">
-			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">Create podcast logfile at:</property>
-			      <property name="use_underline">True</property>
-			      <property name="relief">GTK_RELIEF_NORMAL</property>
-			      <property name="focus_on_click">True</property>
-			      <property name="active">False</property>
-			      <property name="inconsistent">False</property>
-			      <property name="draw_indicator">True</property>
-			      <signal name="toggled" handler="on_pc_log_toggled" last_modification_time="Sat, 17 Sep 2005 22:01:03 GMT"/>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">False</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkHBox" id="hbox166">
-			      <property name="visible">True</property>
-			      <property name="homogeneous">False</property>
-			      <property name="spacing">0</property>
-
-			      <child>
-				<widget class="GtkLabel" id="label321">
-				  <property name="visible">True</property>
-				  <property name="label" translatable="yes">    </property>
-				  <property name="use_underline">False</property>
-				  <property name="use_markup">False</property>
-				  <property name="justify">GTK_JUSTIFY_LEFT</property>
-				  <property name="wrap">False</property>
-				  <property name="selectable">False</property>
-				  <property name="xalign">0.5</property>
-				  <property name="yalign">0.5</property>
-				  <property name="xpad">0</property>
-				  <property name="ypad">0</property>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">False</property>
-				</packing>
-			      </child>
-
-			      <child>
-				<widget class="GtkEntry" id="pc_log_file">
-				  <property name="visible">True</property>
-				  <property name="can_focus">True</property>
-				  <property name="editable">True</property>
-				  <property name="visibility">True</property>
-				  <property name="max_length">0</property>
-				  <property name="text" translatable="yes"></property>
-				  <property name="has_frame">True</property>
-				  <property name="invisible_char">*</property>
-				  <property name="activates_default">False</property>
-				  <signal name="changed" handler="on_pc_log_file_changed" last_modification_time="Sat, 17 Sep 2005 22:01:14 GMT"/>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">True</property>
-				  <property name="fill">True</property>
-				</packing>
-			      </child>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">True</property>
-			      <property name="fill">True</property>
-			    </packing>
-			  </child>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -13337,21 +13166,21 @@
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
-		  <property name="expand">True</property>
+		  <property name="expand">False</property>
 		  <property name="fill">True</property>
 		</packing>
 	      </child>
 
 	      <child>
-		<widget class="GtkVBox" id="vbox146">
+		<widget class="GtkVBox" id="vbox90">
 		  <property name="visible">True</property>
 		  <property name="homogeneous">False</property>
-		  <property name="spacing">0</property>
+		  <property name="spacing">6</property>
 
 		  <child>
-		    <widget class="GtkLabel" id="label318">
+		    <widget class="GtkLabel" id="label220">
 		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">&lt;b&gt;iPod options&lt;/b&gt;</property>
+		      <property name="label" translatable="yes">&lt;b&gt;Calendar/Contacts/Notes&lt;/b&gt;</property>
 		      <property name="use_underline">False</property>
 		      <property name="use_markup">True</property>
 		      <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -13361,6 +13190,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">0</property>
@@ -13370,15 +13203,15 @@
 		  </child>
 
 		  <child>
-		    <widget class="GtkHBox" id="hbox164">
+		    <widget class="GtkHBox" id="hbox90">
 		      <property name="visible">True</property>
 		      <property name="homogeneous">False</property>
-		      <property name="spacing">0</property>
+		      <property name="spacing">8</property>
 
 		      <child>
-			<widget class="GtkLabel" id="label319">
+			<widget class="GtkLabel" id="label221">
 			  <property name="visible">True</property>
-			  <property name="label" translatable="yes">    </property>
+			  <property name="label">    </property>
 			  <property name="use_underline">False</property>
 			  <property name="use_markup">False</property>
 			  <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -13388,6 +13221,10 @@
 			  <property name="yalign">0.5</property>
 			  <property name="xpad">0</property>
 			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -13397,23 +13234,20 @@
 		      </child>
 
 		      <child>
-			<widget class="GtkVBox" id="vbox147">
+			<widget class="GtkVBox" id="vbox91">
 			  <property name="visible">True</property>
 			  <property name="homogeneous">False</property>
-			  <property name="spacing">0</property>
+			  <property name="spacing">6</property>
 
 			  <child>
-			    <widget class="GtkCheckButton" id="pc_auto_sync">
+			    <widget class="GtkButton" id="button23">
 			      <property name="visible">True</property>
 			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">Automatically sync to iPod</property>
+			      <property name="label" translatable="yes">Set options for Calendar/Contacts/Notes</property>
 			      <property name="use_underline">True</property>
 			      <property name="relief">GTK_RELIEF_NORMAL</property>
 			      <property name="focus_on_click">True</property>
-			      <property name="active">False</property>
-			      <property name="inconsistent">False</property>
-			      <property name="draw_indicator">True</property>
-			      <signal name="toggled" handler="on_pc_auto_sync_toggled" last_modification_time="Sat, 17 Sep 2005 22:01:21 GMT"/>
+			      <signal name="clicked" handler="on_calendar_contact_notes_options_clicked" last_modification_time="Tue, 09 May 2006 15:54:43 GMT"/>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -13423,138 +13257,12 @@
 			  </child>
 
 			  <child>
-			    <widget class="GtkHBox" id="hbox165">
-			      <property name="visible">True</property>
-			      <property name="homogeneous">False</property>
-			      <property name="spacing">0</property>
-
-			      <child>
-				<widget class="GtkCheckButton" id="pc_ipod_del_age">
-				  <property name="visible">True</property>
-				  <property name="can_focus">True</property>
-				  <property name="label" translatable="yes">Delete from iPod when </property>
-				  <property name="use_underline">True</property>
-				  <property name="relief">GTK_RELIEF_NORMAL</property>
-				  <property name="focus_on_click">True</property>
-				  <property name="active">False</property>
-				  <property name="inconsistent">False</property>
-				  <property name="draw_indicator">True</property>
-				  <signal name="toggled" handler="on_pc_ipod_del_age_toggled" last_modification_time="Sat, 17 Sep 2005 22:02:32 GMT"/>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">False</property>
-				</packing>
-			      </child>
-
-			      <child>
-				<widget class="GtkSpinButton" id="pc_ipod_del_age_val">
-				  <property name="visible">True</property>
-				  <property name="can_focus">True</property>
-				  <property name="climb_rate">1</property>
-				  <property name="digits">0</property>
-				  <property name="numeric">False</property>
-				  <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-				  <property name="snap_to_ticks">False</property>
-				  <property name="wrap">False</property>
-				  <property name="adjustment">0 0 100 1 10 10</property>
-				  <signal name="value_changed" handler="on_pc_ipod_del_age_val_value_changed" last_modification_time="Sat, 17 Sep 2005 22:01:46 GMT"/>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">True</property>
-				</packing>
-			      </child>
-
-			      <child>
-				<widget class="GtkLabel" id="label320">
-				  <property name="visible">True</property>
-				  <property name="label" translatable="yes"> days old</property>
-				  <property name="use_underline">False</property>
-				  <property name="use_markup">False</property>
-				  <property name="justify">GTK_JUSTIFY_LEFT</property>
-				  <property name="wrap">False</property>
-				  <property name="selectable">False</property>
-				  <property name="xalign">0.5</property>
-				  <property name="yalign">0.5</property>
-				  <property name="xpad">0</property>
-				  <property name="ypad">0</property>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">False</property>
-				</packing>
-			      </child>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">False</property>
-			    </packing>
+			    <placeholder/>
 			  </child>
 
 			  <child>
-			    <widget class="GtkCheckButton" id="pc_ipod_del_played">
-			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">Delete from iPod if podcast has been played</property>
-			      <property name="use_underline">True</property>
-			      <property name="relief">GTK_RELIEF_NORMAL</property>
-			      <property name="focus_on_click">True</property>
-			      <property name="active">False</property>
-			      <property name="inconsistent">False</property>
-			      <property name="draw_indicator">True</property>
-			      <signal name="toggled" handler="on_pc_ipod_del_played_toggled" last_modification_time="Sat, 17 Sep 2005 22:02:25 GMT"/>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">False</property>
-			    </packing>
+			    <placeholder/>
 			  </child>
-
-			  <child>
-			    <widget class="GtkCheckButton" id="pc_ipod_inc_date">
-			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">Include broadcast date in track title</property>
-			      <property name="use_underline">True</property>
-			      <property name="relief">GTK_RELIEF_NORMAL</property>
-			      <property name="focus_on_click">True</property>
-			      <property name="active">False</property>
-			      <property name="inconsistent">False</property>
-			      <property name="draw_indicator">True</property>
-			      <signal name="toggled" handler="on_pc_ipod_inc_date_toggled" last_modification_time="Sat, 17 Sep 2005 22:02:18 GMT"/>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">False</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkCheckButton" id="pc_change_genre">
-			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">Set all podcast genres to 'Podcast'</property>
-			      <property name="use_underline">True</property>
-			      <property name="relief">GTK_RELIEF_NORMAL</property>
-			      <property name="focus_on_click">True</property>
-			      <property name="active">False</property>
-			      <property name="inconsistent">False</property>
-			      <property name="draw_indicator">True</property>
-			      <signal name="toggled" handler="on_pc_change_genre_toggled" last_modification_time="Sat, 17 Sep 2005 22:02:10 GMT"/>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">False</property>
-			      <property name="fill">False</property>
-			    </packing>
-			  </child>
 			</widget>
 			<packing>
 			  <property name="padding">0</property>
@@ -13572,7 +13280,7 @@
 		</widget>
 		<packing>
 		  <property name="padding">0</property>
-		  <property name="expand">True</property>
+		  <property name="expand">False</property>
 		  <property name="fill">True</property>
 		</packing>
 	      </child>
@@ -13584,9 +13292,9 @@
 	  </child>
 
 	  <child>
-	    <widget class="GtkLabel" id="label311">
+	    <widget class="GtkLabel" id="label211">
 	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">_Podcasts</property>
+	      <property name="label" translatable="yes">_Tools</property>
 	      <property name="use_underline">True</property>
 	      <property name="use_markup">False</property>
 	      <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -13596,6 +13304,10 @@
 	      <property name="yalign">0.5</property>
 	      <property name="xpad">0</property>
 	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
 	    </widget>
 	    <packing>
 	      <property name="type">tab</property>
@@ -13664,181 +13376,6 @@
   </child>
 </widget>
 
-<widget class="GtkWindow" id="podcast_window">
-  <property name="visible">True</property>
-  <property name="title" translatable="yes">Podcasts</property>
-  <property name="type">GTK_WINDOW_TOPLEVEL</property>
-  <property name="window_position">GTK_WIN_POS_NONE</property>
-  <property name="modal">False</property>
-  <property name="resizable">False</property>
-  <property name="destroy_with_parent">False</property>
-  <property name="decorated">True</property>
-  <property name="skip_taskbar_hint">False</property>
-  <property name="skip_pager_hint">False</property>
-  <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
-  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-
-  <child>
-    <widget class="GtkVBox" id="vbox148">
-      <property name="border_width">18</property>
-      <property name="visible">True</property>
-      <property name="homogeneous">False</property>
-      <property name="spacing">18</property>
-
-      <child>
-	<widget class="GtkScrolledWindow" id="podcast_list_window">
-	  <property name="height_request">236</property>
-	  <property name="visible">True</property>
-	  <property name="can_focus">True</property>
-	  <property name="hscrollbar_policy">GTK_POLICY_ALWAYS</property>
-	  <property name="vscrollbar_policy">GTK_POLICY_ALWAYS</property>
-	  <property name="shadow_type">GTK_SHADOW_IN</property>
-	  <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
-	  <child>
-	    <placeholder/>
-	  </child>
-	</widget>
-	<packing>
-	  <property name="padding">0</property>
-	  <property name="expand">True</property>
-	  <property name="fill">True</property>
-	</packing>
-      </child>
-
-      <child>
-	<widget class="GtkVBox" id="vbox149">
-	  <property name="visible">True</property>
-	  <property name="homogeneous">False</property>
-	  <property name="spacing">0</property>
-
-	  <child>
-	    <widget class="GtkProgressBar" id="file_progressbar">
-	      <property name="visible">True</property>
-	      <property name="orientation">GTK_PROGRESS_LEFT_TO_RIGHT</property>
-	      <property name="fraction">0</property>
-	      <property name="pulse_step">0.10000000149</property>
-	      <property name="text" translatable="yes"></property>
-	    </widget>
-	    <packing>
-	      <property name="padding">0</property>
-	      <property name="expand">False</property>
-	      <property name="fill">False</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkProgressBar" id="total_progressbar">
-	      <property name="visible">True</property>
-	      <property name="orientation">GTK_PROGRESS_LEFT_TO_RIGHT</property>
-	      <property name="fraction">0</property>
-	      <property name="pulse_step">0.10000000149</property>
-	    </widget>
-	    <packing>
-	      <property name="padding">0</property>
-	      <property name="expand">False</property>
-	      <property name="fill">False</property>
-	    </packing>
-	  </child>
-	</widget>
-	<packing>
-	  <property name="padding">0</property>
-	  <property name="expand">True</property>
-	  <property name="fill">True</property>
-	</packing>
-      </child>
-
-      <child>
-	<widget class="GtkLabel" id="status_label">
-	  <property name="visible">True</property>
-	  <property name="label" translatable="yes">
-
-</property>
-	  <property name="use_underline">False</property>
-	  <property name="use_markup">False</property>
-	  <property name="justify">GTK_JUSTIFY_LEFT</property>
-	  <property name="wrap">True</property>
-	  <property name="selectable">False</property>
-	  <property name="xalign">0.5</property>
-	  <property name="yalign">0.5</property>
-	  <property name="xpad">0</property>
-	  <property name="ypad">0</property>
-	</widget>
-	<packing>
-	  <property name="padding">0</property>
-	  <property name="expand">True</property>
-	  <property name="fill">True</property>
-	</packing>
-      </child>
-
-      <child>
-	<widget class="GtkHBox" id="hbox168">
-	  <property name="visible">True</property>
-	  <property name="homogeneous">False</property>
-	  <property name="spacing">18</property>
-
-	  <child>
-	    <placeholder/>
-	  </child>
-
-	  <child>
-	    <widget class="GtkButton" id="button11">
-	      <property name="visible">True</property>
-	      <property name="can_focus">True</property>
-	      <property name="label" translatable="yes">Abort selected</property>
-	      <property name="use_underline">True</property>
-	      <property name="relief">GTK_RELIEF_NORMAL</property>
-	      <property name="focus_on_click">True</property>
-	    </widget>
-	    <packing>
-	      <property name="padding">0</property>
-	      <property name="expand">False</property>
-	      <property name="fill">False</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkButton" id="button10">
-	      <property name="visible">True</property>
-	      <property name="can_focus">True</property>
-	      <property name="label" translatable="yes">Abort current</property>
-	      <property name="use_underline">True</property>
-	      <property name="relief">GTK_RELIEF_NORMAL</property>
-	      <property name="focus_on_click">True</property>
-	    </widget>
-	    <packing>
-	      <property name="padding">0</property>
-	      <property name="expand">False</property>
-	      <property name="fill">False</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkButton" id="pc_abort_button">
-	      <property name="visible">True</property>
-	      <property name="can_focus">True</property>
-	      <property name="label" translatable="yes">Abort all</property>
-	      <property name="use_underline">True</property>
-	      <property name="relief">GTK_RELIEF_NORMAL</property>
-	      <property name="focus_on_click">True</property>
-	    </widget>
-	    <packing>
-	      <property name="padding">0</property>
-	      <property name="expand">False</property>
-	      <property name="fill">False</property>
-	    </packing>
-	  </child>
-	</widget>
-	<packing>
-	  <property name="padding">0</property>
-	  <property name="expand">True</property>
-	  <property name="fill">True</property>
-	</packing>
-      </child>
-    </widget>
-  </child>
-</widget>
-
 <widget class="GtkWindow" id="details_window">
   <property name="visible">True</property>
   <property name="title" translatable="yes">Details</property>
@@ -13847,11 +13384,14 @@
   <property name="modal">False</property>
   <property name="resizable">True</property>
   <property name="destroy_with_parent">False</property>
+  <property name="icon">gtkpod-icon-48.png</property>
   <property name="decorated">True</property>
   <property name="skip_taskbar_hint">False</property>
   <property name="skip_pager_hint">False</property>
   <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
+  <property name="urgency_hint">False</property>
 
   <child>
     <widget class="GtkVBox" id="vbox150">
@@ -13873,6 +13413,10 @@
 	  <property name="yalign">0.5</property>
 	  <property name="xpad">0</property>
 	  <property name="ypad">3</property>
+	  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	  <property name="width_chars">-1</property>
+	  <property name="single_line_mode">False</property>
+	  <property name="angle">0</property>
 	</widget>
 	<packing>
 	  <property name="padding">0</property>
@@ -13912,6 +13456,10 @@
 		      <property name="yalign">0.5</property>
 		      <property name="xpad">0</property>
 		      <property name="ypad">6</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="padding">2</property>
@@ -13997,6 +13545,10 @@
 				  <property name="yalign">0.5</property>
 				  <property name="xpad">0</property>
 				  <property name="ypad">0</property>
+				  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				  <property name="width_chars">-1</property>
+				  <property name="single_line_mode">False</property>
+				  <property name="angle">0</property>
 				</widget>
 				<packing>
 				  <property name="padding">0</property>
@@ -14077,6 +13629,10 @@
 				  <property name="yalign">0.5</property>
 				  <property name="xpad">0</property>
 				  <property name="ypad">0</property>
+				  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				  <property name="width_chars">-1</property>
+				  <property name="single_line_mode">False</property>
+				  <property name="angle">0</property>
 				</widget>
 				<packing>
 				  <property name="padding">0</property>
@@ -14164,6 +13720,10 @@
 				  <property name="yalign">0.5</property>
 				  <property name="xpad">0</property>
 				  <property name="ypad">0</property>
+				  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				  <property name="width_chars">-1</property>
+				  <property name="single_line_mode">False</property>
+				  <property name="angle">0</property>
 				</widget>
 				<packing>
 				  <property name="padding">0</property>
@@ -14225,7 +13785,7 @@
 			      <child>
 				<widget class="GtkTable" id="table36">
 				  <property name="visible">True</property>
-				  <property name="n_rows">10</property>
+				  <property name="n_rows">12</property>
 				  <property name="n_columns">5</property>
 				  <property name="homogeneous">False</property>
 				  <property name="row_spacing">2</property>
@@ -14244,6 +13804,10 @@
 				      <property name="yalign">0.5</property>
 				      <property name="xpad">0</property>
 				      <property name="ypad">0</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">0</property>
 				    </widget>
 				    <packing>
 				      <property name="left_attach">0</property>
@@ -14268,6 +13832,10 @@
 				      <property name="yalign">0.5</property>
 				      <property name="xpad">0</property>
 				      <property name="ypad">0</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">0</property>
 				    </widget>
 				    <packing>
 				      <property name="left_attach">0</property>
@@ -14292,6 +13860,10 @@
 				      <property name="yalign">0.5</property>
 				      <property name="xpad">0</property>
 				      <property name="ypad">0</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">0</property>
 				    </widget>
 				    <packing>
 				      <property name="left_attach">0</property>
@@ -14316,6 +13888,10 @@
 				      <property name="yalign">0.5</property>
 				      <property name="xpad">0</property>
 				      <property name="ypad">0</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">0</property>
 				    </widget>
 				    <packing>
 				      <property name="left_attach">0</property>
@@ -14340,6 +13916,10 @@
 				      <property name="yalign">0.5</property>
 				      <property name="xpad">0</property>
 				      <property name="ypad">0</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">0</property>
 				    </widget>
 				    <packing>
 				      <property name="left_attach">0</property>
@@ -14469,6 +14049,10 @@
 				      <property name="yalign">0.5</property>
 				      <property name="xpad">0</property>
 				      <property name="ypad">0</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">0</property>
 				    </widget>
 				    <packing>
 				      <property name="left_attach">0</property>
@@ -14503,7 +14087,7 @@
 				  </child>
 
 				  <child>
-				    <widget class="GtkEntry" id="details_entry_14">
+				    <widget class="GtkEntry" id="details_entry_19">
 				      <property name="visible">True</property>
 				      <property name="can_focus">True</property>
 				      <property name="editable">True</property>
@@ -14537,6 +14121,10 @@
 				      <property name="yalign">0.5</property>
 				      <property name="xpad">0</property>
 				      <property name="ypad">0</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">0</property>
 				    </widget>
 				    <packing>
 				      <property name="left_attach">4</property>
@@ -14548,7 +14136,7 @@
 				  </child>
 
 				  <child>
-				    <widget class="GtkLabel" id="details_label_14">
+				    <widget class="GtkLabel" id="details_label_19">
 				      <property name="visible">True</property>
 				      <property name="label">label</property>
 				      <property name="use_underline">False</property>
@@ -14560,6 +14148,10 @@
 				      <property name="yalign">0.5</property>
 				      <property name="xpad">0</property>
 				      <property name="ypad">0</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">0</property>
 				    </widget>
 				    <packing>
 				      <property name="left_attach">2</property>
@@ -14584,6 +14176,10 @@
 				      <property name="yalign">0.5</property>
 				      <property name="xpad">0</property>
 				      <property name="ypad">0</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">0</property>
 				    </widget>
 				    <packing>
 				      <property name="left_attach">4</property>
@@ -14608,6 +14204,10 @@
 				      <property name="yalign">0.5</property>
 				      <property name="xpad">0</property>
 				      <property name="ypad">0</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">0</property>
 				    </widget>
 				    <packing>
 				      <property name="left_attach">4</property>
@@ -14632,6 +14232,10 @@
 				      <property name="yalign">0.5</property>
 				      <property name="xpad">0</property>
 				      <property name="ypad">0</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">0</property>
 				    </widget>
 				    <packing>
 				      <property name="left_attach">4</property>
@@ -14656,6 +14260,10 @@
 				      <property name="yalign">0.5</property>
 				      <property name="xpad">0</property>
 				      <property name="ypad">0</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">0</property>
 				    </widget>
 				    <packing>
 				      <property name="left_attach">4</property>
@@ -14680,6 +14288,10 @@
 				      <property name="yalign">0.5</property>
 				      <property name="xpad">0</property>
 				      <property name="ypad">0</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">0</property>
 				    </widget>
 				    <packing>
 				      <property name="left_attach">0</property>
@@ -14704,6 +14316,10 @@
 				      <property name="yalign">0.5</property>
 				      <property name="xpad">0</property>
 				      <property name="ypad">0</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">0</property>
 				    </widget>
 				    <packing>
 				      <property name="left_attach">0</property>
@@ -14716,7 +14332,7 @@
 				  </child>
 
 				  <child>
-				    <widget class="GtkLabel" id="details_label_28">
+				    <widget class="GtkLabel" id="details_label_14">
 				      <property name="visible">True</property>
 				      <property name="label">label</property>
 				      <property name="use_underline">False</property>
@@ -14728,32 +14344,102 @@
 				      <property name="yalign">0.5</property>
 				      <property name="xpad">0</property>
 				      <property name="ypad">0</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">0</property>
 				    </widget>
 				    <packing>
-				      <property name="left_attach">0</property>
-				      <property name="right_attach">1</property>
-				      <property name="top_attach">8</property>
-				      <property name="bottom_attach">9</property>
+				      <property name="left_attach">2</property>
+				      <property name="right_attach">3</property>
+				      <property name="top_attach">6</property>
+				      <property name="bottom_attach">7</property>
 				      <property name="x_options">fill</property>
 				      <property name="y_options"></property>
 				    </packing>
 				  </child>
 
 				  <child>
-				    <widget class="GtkCheckButton" id="details_checkbutton_28">
+				    <widget class="GtkEntry" id="details_entry_18">
 				      <property name="visible">True</property>
 				      <property name="can_focus">True</property>
-				      <property name="label" translatable="yes"></property>
-				      <property name="use_underline">True</property>
-				      <property name="relief">GTK_RELIEF_NORMAL</property>
-				      <property name="focus_on_click">True</property>
-				      <property name="active">False</property>
-				      <property name="inconsistent">False</property>
-				      <property name="draw_indicator">True</property>
+				      <property name="editable">True</property>
+				      <property name="visibility">True</property>
+				      <property name="max_length">0</property>
+				      <property name="text" translatable="yes"></property>
+				      <property name="has_frame">True</property>
+				      <property name="invisible_char">*</property>
+				      <property name="activates_default">False</property>
 				    </widget>
 				    <packing>
 				      <property name="left_attach">1</property>
 				      <property name="right_attach">2</property>
+				      <property name="top_attach">6</property>
+				      <property name="bottom_attach">7</property>
+				      <property name="x_options">fill</property>
+				      <property name="y_options"></property>
+				    </packing>
+				  </child>
+
+				  <child>
+				    <widget class="GtkEntry" id="details_entry_26">
+				      <property name="visible">True</property>
+				      <property name="can_focus">True</property>
+				      <property name="editable">True</property>
+				      <property name="visibility">True</property>
+				      <property name="max_length">0</property>
+				      <property name="text" translatable="yes"></property>
+				      <property name="has_frame">True</property>
+				      <property name="invisible_char">*</property>
+				      <property name="activates_default">False</property>
+				    </widget>
+				    <packing>
+				      <property name="left_attach">1</property>
+				      <property name="right_attach">2</property>
+				      <property name="top_attach">7</property>
+				      <property name="bottom_attach">8</property>
+				      <property name="x_options">fill</property>
+				      <property name="y_options"></property>
+				    </packing>
+				  </child>
+
+				  <child>
+				    <widget class="GtkEntry" id="details_entry_14">
+				      <property name="visible">True</property>
+				      <property name="can_focus">True</property>
+				      <property name="editable">True</property>
+				      <property name="visibility">True</property>
+				      <property name="max_length">0</property>
+				      <property name="text" translatable="yes"></property>
+				      <property name="has_frame">True</property>
+				      <property name="invisible_char">*</property>
+				      <property name="activates_default">False</property>
+				    </widget>
+				    <packing>
+				      <property name="left_attach">3</property>
+				      <property name="right_attach">4</property>
+				      <property name="top_attach">6</property>
+				      <property name="bottom_attach">7</property>
+				      <property name="x_options">fill</property>
+				      <property name="y_options"></property>
+				    </packing>
+				  </child>
+
+				  <child>
+				    <widget class="GtkEntry" id="details_entry_11">
+				      <property name="visible">True</property>
+				      <property name="can_focus">True</property>
+				      <property name="editable">True</property>
+				      <property name="visibility">True</property>
+				      <property name="max_length">0</property>
+				      <property name="text" translatable="yes"></property>
+				      <property name="has_frame">True</property>
+				      <property name="invisible_char">*</property>
+				      <property name="activates_default">False</property>
+				    </widget>
+				    <packing>
+				      <property name="left_attach">1</property>
+				      <property name="right_attach">2</property>
 				      <property name="top_attach">8</property>
 				      <property name="bottom_attach">9</property>
 				      <property name="x_options">fill</property>
@@ -14762,7 +14448,7 @@
 				  </child>
 
 				  <child>
-				    <widget class="GtkLabel" id="details_label_19">
+				    <widget class="GtkLabel" id="details_label_11">
 				      <property name="visible">True</property>
 				      <property name="label">label</property>
 				      <property name="use_underline">False</property>
@@ -14774,19 +14460,23 @@
 				      <property name="yalign">0.5</property>
 				      <property name="xpad">0</property>
 				      <property name="ypad">0</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">0</property>
 				    </widget>
 				    <packing>
-				      <property name="left_attach">2</property>
-				      <property name="right_attach">3</property>
-				      <property name="top_attach">6</property>
-				      <property name="bottom_attach">7</property>
+				      <property name="left_attach">0</property>
+				      <property name="right_attach">1</property>
+				      <property name="top_attach">8</property>
+				      <property name="bottom_attach">9</property>
 				      <property name="x_options">fill</property>
 				      <property name="y_options"></property>
 				    </packing>
 				  </child>
 
 				  <child>
-				    <widget class="GtkLabel" id="details_label_11">
+				    <widget class="GtkLabel" id="details_label_36">
 				      <property name="visible">True</property>
 				      <property name="label">label</property>
 				      <property name="use_underline">False</property>
@@ -14798,6 +14488,10 @@
 				      <property name="yalign">0.5</property>
 				      <property name="xpad">0</property>
 				      <property name="ypad">0</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">0</property>
 				    </widget>
 				    <packing>
 				      <property name="left_attach">2</property>
@@ -14810,7 +14504,7 @@
 				  </child>
 
 				  <child>
-				    <widget class="GtkLabel" id="details_label_35">
+				    <widget class="GtkLabel" id="details_label_37">
 				      <property name="visible">True</property>
 				      <property name="label">label</property>
 				      <property name="use_underline">False</property>
@@ -14822,6 +14516,10 @@
 				      <property name="yalign">0.5</property>
 				      <property name="xpad">0</property>
 				      <property name="ypad">0</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">0</property>
 				    </widget>
 				    <packing>
 				      <property name="left_attach">2</property>
@@ -14834,29 +14532,28 @@
 				  </child>
 
 				  <child>
-				    <widget class="GtkCheckButton" id="details_checkbutton_35">
+				    <widget class="GtkEntry" id="details_entry_36">
 				      <property name="visible">True</property>
 				      <property name="can_focus">True</property>
-				      <property name="label" translatable="yes"></property>
-				      <property name="use_underline">True</property>
-				      <property name="relief">GTK_RELIEF_NORMAL</property>
-				      <property name="focus_on_click">True</property>
-				      <property name="active">False</property>
-				      <property name="inconsistent">False</property>
-				      <property name="draw_indicator">True</property>
+				      <property name="editable">True</property>
+				      <property name="visibility">True</property>
+				      <property name="max_length">0</property>
+				      <property name="text" translatable="yes"></property>
+				      <property name="has_frame">True</property>
+				      <property name="invisible_char">*</property>
+				      <property name="activates_default">False</property>
 				    </widget>
 				    <packing>
 				      <property name="left_attach">3</property>
 				      <property name="right_attach">4</property>
-				      <property name="top_attach">8</property>
-				      <property name="bottom_attach">9</property>
-				      <property name="x_options">fill</property>
+				      <property name="top_attach">7</property>
+				      <property name="bottom_attach">8</property>
 				      <property name="y_options"></property>
 				    </packing>
 				  </child>
 
 				  <child>
-				    <widget class="GtkEntry" id="details_entry_18">
+				    <widget class="GtkEntry" id="details_entry_37">
 				      <property name="visible">True</property>
 				      <property name="can_focus">True</property>
 				      <property name="editable">True</property>
@@ -14868,76 +14565,97 @@
 				      <property name="activates_default">False</property>
 				    </widget>
 				    <packing>
-				      <property name="left_attach">1</property>
-				      <property name="right_attach">2</property>
-				      <property name="top_attach">6</property>
-				      <property name="bottom_attach">7</property>
-				      <property name="x_options">fill</property>
+				      <property name="left_attach">3</property>
+				      <property name="right_attach">4</property>
+				      <property name="top_attach">8</property>
+				      <property name="bottom_attach">9</property>
 				      <property name="y_options"></property>
 				    </packing>
 				  </child>
 
 				  <child>
-				    <widget class="GtkEntry" id="details_entry_26">
+				    <widget class="GtkCheckButton" id="details_checkbutton_39">
 				      <property name="visible">True</property>
 				      <property name="can_focus">True</property>
-				      <property name="editable">True</property>
-				      <property name="visibility">True</property>
-				      <property name="max_length">0</property>
-				      <property name="text" translatable="yes"></property>
-				      <property name="has_frame">True</property>
-				      <property name="invisible_char">*</property>
-				      <property name="activates_default">False</property>
+				      <property name="label">(Skip when shuffling)</property>
+				      <property name="use_underline">True</property>
+				      <property name="relief">GTK_RELIEF_NORMAL</property>
+				      <property name="focus_on_click">True</property>
+				      <property name="active">False</property>
+				      <property name="inconsistent">False</property>
+				      <property name="draw_indicator">True</property>
 				    </widget>
 				    <packing>
-				      <property name="left_attach">1</property>
+				      <property name="left_attach">0</property>
 				      <property name="right_attach">2</property>
-				      <property name="top_attach">7</property>
-				      <property name="bottom_attach">8</property>
+				      <property name="top_attach">9</property>
+				      <property name="bottom_attach">10</property>
 				      <property name="x_options">fill</property>
 				      <property name="y_options"></property>
 				    </packing>
 				  </child>
 
 				  <child>
-				    <widget class="GtkEntry" id="details_entry_19">
+				    <widget class="GtkCheckButton" id="details_checkbutton_38">
 				      <property name="visible">True</property>
 				      <property name="can_focus">True</property>
-				      <property name="editable">True</property>
-				      <property name="visibility">True</property>
-				      <property name="max_length">0</property>
-				      <property name="text" translatable="yes"></property>
-				      <property name="has_frame">True</property>
-				      <property name="invisible_char">*</property>
-				      <property name="activates_default">False</property>
+				      <property name="label">(Remember playback position)</property>
+				      <property name="use_underline">True</property>
+				      <property name="relief">GTK_RELIEF_NORMAL</property>
+				      <property name="focus_on_click">True</property>
+				      <property name="active">False</property>
+				      <property name="inconsistent">False</property>
+				      <property name="draw_indicator">True</property>
 				    </widget>
 				    <packing>
-				      <property name="left_attach">3</property>
+				      <property name="left_attach">2</property>
 				      <property name="right_attach">4</property>
-				      <property name="top_attach">6</property>
-				      <property name="bottom_attach">7</property>
+				      <property name="top_attach">9</property>
+				      <property name="bottom_attach">10</property>
 				      <property name="x_options">fill</property>
 				      <property name="y_options"></property>
 				    </packing>
 				  </child>
 
 				  <child>
-				    <widget class="GtkEntry" id="details_entry_11">
+				    <widget class="GtkCheckButton" id="details_checkbutton_28">
 				      <property name="visible">True</property>
 				      <property name="can_focus">True</property>
-				      <property name="editable">True</property>
-				      <property name="visibility">True</property>
-				      <property name="max_length">0</property>
-				      <property name="text" translatable="yes"></property>
-				      <property name="has_frame">True</property>
-				      <property name="invisible_char">*</property>
-				      <property name="activates_default">False</property>
+				      <property name="label">(Compilation)</property>
+				      <property name="use_underline">True</property>
+				      <property name="relief">GTK_RELIEF_NORMAL</property>
+				      <property name="focus_on_click">True</property>
+				      <property name="active">False</property>
+				      <property name="inconsistent">False</property>
+				      <property name="draw_indicator">True</property>
 				    </widget>
 				    <packing>
-				      <property name="left_attach">3</property>
+				      <property name="left_attach">0</property>
+				      <property name="right_attach">2</property>
+				      <property name="top_attach">10</property>
+				      <property name="bottom_attach">11</property>
+				      <property name="x_options">fill</property>
+				      <property name="y_options"></property>
+				    </packing>
+				  </child>
+
+				  <child>
+				    <widget class="GtkCheckButton" id="details_checkbutton_35">
+				      <property name="visible">True</property>
+				      <property name="can_focus">True</property>
+				      <property name="label" translatable="yes">(Checked)</property>
+				      <property name="use_underline">True</property>
+				      <property name="relief">GTK_RELIEF_NORMAL</property>
+				      <property name="focus_on_click">True</property>
+				      <property name="active">False</property>
+				      <property name="inconsistent">False</property>
+				      <property name="draw_indicator">True</property>
+				    </widget>
+				    <packing>
+				      <property name="left_attach">2</property>
 				      <property name="right_attach">4</property>
-				      <property name="top_attach">7</property>
-				      <property name="bottom_attach">8</property>
+				      <property name="top_attach">10</property>
+				      <property name="bottom_attach">11</property>
 				      <property name="x_options">fill</property>
 				      <property name="y_options"></property>
 				    </packing>
@@ -14978,6 +14696,10 @@
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
 		      <property name="mnemonic_widget">scrolledwindow20</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="type">tab</property>
@@ -15021,6 +14743,10 @@
 				  <property name="yalign">0.5</property>
 				  <property name="xpad">0</property>
 				  <property name="ypad">0</property>
+				  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				  <property name="width_chars">-1</property>
+				  <property name="single_line_mode">False</property>
+				  <property name="angle">0</property>
 				</widget>
 				<packing>
 				  <property name="left_attach">0</property>
@@ -15045,6 +14771,10 @@
 				  <property name="yalign">0.5</property>
 				  <property name="xpad">0</property>
 				  <property name="ypad">0</property>
+				  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				  <property name="width_chars">-1</property>
+				  <property name="single_line_mode">False</property>
+				  <property name="angle">0</property>
 				</widget>
 				<packing>
 				  <property name="left_attach">0</property>
@@ -15069,6 +14799,10 @@
 				  <property name="yalign">0.5</property>
 				  <property name="xpad">0</property>
 				  <property name="ypad">0</property>
+				  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				  <property name="width_chars">-1</property>
+				  <property name="single_line_mode">False</property>
+				  <property name="angle">0</property>
 				</widget>
 				<packing>
 				  <property name="left_attach">0</property>
@@ -15093,6 +14827,10 @@
 				  <property name="yalign">0.5</property>
 				  <property name="xpad">0</property>
 				  <property name="ypad">0</property>
+				  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				  <property name="width_chars">-1</property>
+				  <property name="single_line_mode">False</property>
+				  <property name="angle">0</property>
 				</widget>
 				<packing>
 				  <property name="left_attach">0</property>
@@ -15117,6 +14855,10 @@
 				  <property name="yalign">0.5</property>
 				  <property name="xpad">0</property>
 				  <property name="ypad">0</property>
+				  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				  <property name="width_chars">-1</property>
+				  <property name="single_line_mode">False</property>
+				  <property name="angle">0</property>
 				</widget>
 				<packing>
 				  <property name="left_attach">0</property>
@@ -15141,6 +14883,10 @@
 				  <property name="yalign">0.5</property>
 				  <property name="xpad">0</property>
 				  <property name="ypad">0</property>
+				  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				  <property name="width_chars">-1</property>
+				  <property name="single_line_mode">False</property>
+				  <property name="angle">0</property>
 				</widget>
 				<packing>
 				  <property name="left_attach">0</property>
@@ -15350,6 +15096,10 @@
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
 		      <property name="mnemonic_widget">scrolledwindow20</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="type">tab</property>
@@ -15380,7 +15130,7 @@
 				<widget class="GtkTable" id="table37">
 				  <property name="border_width">6</property>
 				  <property name="visible">True</property>
-				  <property name="n_rows">12</property>
+				  <property name="n_rows">13</property>
 				  <property name="n_columns">5</property>
 				  <property name="homogeneous">False</property>
 				  <property name="row_spacing">2</property>
@@ -15399,6 +15149,10 @@
 				      <property name="yalign">0.5</property>
 				      <property name="xpad">0</property>
 				      <property name="ypad">0</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">0</property>
 				    </widget>
 				    <packing>
 				      <property name="left_attach">0</property>
@@ -15423,6 +15177,10 @@
 				      <property name="yalign">0.5</property>
 				      <property name="xpad">0</property>
 				      <property name="ypad">0</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">0</property>
 				    </widget>
 				    <packing>
 				      <property name="left_attach">0</property>
@@ -15447,6 +15205,10 @@
 				      <property name="yalign">0.5</property>
 				      <property name="xpad">0</property>
 				      <property name="ypad">0</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">0</property>
 				    </widget>
 				    <packing>
 				      <property name="left_attach">0</property>
@@ -15471,6 +15233,10 @@
 				      <property name="yalign">0.5</property>
 				      <property name="xpad">0</property>
 				      <property name="ypad">0</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">0</property>
 				    </widget>
 				    <packing>
 				      <property name="left_attach">0</property>
@@ -15495,6 +15261,10 @@
 				      <property name="yalign">0.5</property>
 				      <property name="xpad">0</property>
 				      <property name="ypad">0</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">0</property>
 				    </widget>
 				    <packing>
 				      <property name="left_attach">0</property>
@@ -15624,6 +15394,10 @@
 				      <property name="yalign">0.5</property>
 				      <property name="xpad">0</property>
 				      <property name="ypad">0</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">0</property>
 				    </widget>
 				    <packing>
 				      <property name="left_attach">4</property>
@@ -15647,6 +15421,10 @@
 				      <property name="yalign">0.5</property>
 				      <property name="xpad">0</property>
 				      <property name="ypad">0</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">0</property>
 				    </widget>
 				    <packing>
 				      <property name="left_attach">0</property>
@@ -15671,6 +15449,10 @@
 				      <property name="yalign">0.5</property>
 				      <property name="xpad">0</property>
 				      <property name="ypad">0</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">0</property>
 				    </widget>
 				    <packing>
 				      <property name="left_attach">0</property>
@@ -15683,9 +15465,9 @@
 				  </child>
 
 				  <child>
-				    <widget class="GtkLabel" id="details_label_23">
+				    <widget class="GtkLabel" id="label386">
 				      <property name="visible">True</property>
-				      <property name="label">label</property>
+				      <property name="label"></property>
 				      <property name="use_underline">False</property>
 				      <property name="use_markup">False</property>
 				      <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -15695,10 +15477,14 @@
 				      <property name="yalign">0.5</property>
 				      <property name="xpad">0</property>
 				      <property name="ypad">0</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">0</property>
 				    </widget>
 				    <packing>
-				      <property name="left_attach">0</property>
-				      <property name="right_attach">1</property>
+				      <property name="left_attach">4</property>
+				      <property name="right_attach">5</property>
 				      <property name="top_attach">8</property>
 				      <property name="bottom_attach">9</property>
 				      <property name="x_options">fill</property>
@@ -15707,31 +15493,37 @@
 				  </child>
 
 				  <child>
-				    <widget class="GtkEntry" id="details_entry_23">
+				    <widget class="GtkLabel" id="label387">
 				      <property name="visible">True</property>
-				      <property name="can_focus">True</property>
-				      <property name="editable">True</property>
-				      <property name="visibility">True</property>
-				      <property name="max_length">0</property>
-				      <property name="text" translatable="yes"></property>
-				      <property name="has_frame">True</property>
-				      <property name="invisible_char">*</property>
-				      <property name="activates_default">False</property>
+				      <property name="label"></property>
+				      <property name="use_underline">False</property>
+				      <property name="use_markup">False</property>
+				      <property name="justify">GTK_JUSTIFY_LEFT</property>
+				      <property name="wrap">False</property>
+				      <property name="selectable">False</property>
+				      <property name="xalign">0</property>
+				      <property name="yalign">0.5</property>
+				      <property name="xpad">0</property>
+				      <property name="ypad">0</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">0</property>
 				    </widget>
 				    <packing>
-				      <property name="left_attach">1</property>
-				      <property name="right_attach">2</property>
-				      <property name="top_attach">8</property>
-				      <property name="bottom_attach">9</property>
+				      <property name="left_attach">4</property>
+				      <property name="right_attach">5</property>
+				      <property name="top_attach">9</property>
+				      <property name="bottom_attach">10</property>
 				      <property name="x_options">fill</property>
 				      <property name="y_options"></property>
 				    </packing>
 				  </child>
 
 				  <child>
-				    <widget class="GtkLabel" id="details_label_24">
+				    <widget class="GtkLabel" id="label388">
 				      <property name="visible">True</property>
-				      <property name="label">label</property>
+				      <property name="label"></property>
 				      <property name="use_underline">False</property>
 				      <property name="use_markup">False</property>
 				      <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -15741,43 +15533,71 @@
 				      <property name="yalign">0.5</property>
 				      <property name="xpad">0</property>
 				      <property name="ypad">0</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">0</property>
 				    </widget>
 				    <packing>
-				      <property name="left_attach">2</property>
-				      <property name="right_attach">3</property>
-				      <property name="top_attach">8</property>
-				      <property name="bottom_attach">9</property>
+				      <property name="left_attach">4</property>
+				      <property name="right_attach">5</property>
+				      <property name="top_attach">10</property>
+				      <property name="bottom_attach">11</property>
 				      <property name="x_options">fill</property>
 				      <property name="y_options"></property>
 				    </packing>
 				  </child>
 
 				  <child>
-				    <widget class="GtkEntry" id="details_entry_24">
+				    <widget class="GtkEntry" id="details_entry_8">
 				      <property name="visible">True</property>
 				      <property name="can_focus">True</property>
-				      <property name="editable">True</property>
+				      <property name="editable">False</property>
 				      <property name="visibility">True</property>
 				      <property name="max_length">0</property>
 				      <property name="text" translatable="yes"></property>
-				      <property name="has_frame">True</property>
+				      <property name="has_frame">False</property>
 				      <property name="invisible_char">*</property>
 				      <property name="activates_default">False</property>
 				    </widget>
 				    <packing>
-				      <property name="left_attach">3</property>
-				      <property name="right_attach">4</property>
-				      <property name="top_attach">8</property>
-				      <property name="bottom_attach">9</property>
-				      <property name="x_options">fill</property>
+				      <property name="left_attach">1</property>
+				      <property name="right_attach">5</property>
+				      <property name="top_attach">5</property>
+				      <property name="bottom_attach">6</property>
+				      <property name="x_padding">1</property>
+				      <property name="y_padding">1</property>
 				      <property name="y_options"></property>
 				    </packing>
 				  </child>
 
 				  <child>
-				    <widget class="GtkLabel" id="label386">
+				    <widget class="GtkEntry" id="details_entry_9">
 				      <property name="visible">True</property>
-				      <property name="label"></property>
+				      <property name="can_focus">True</property>
+				      <property name="editable">False</property>
+				      <property name="visibility">True</property>
+				      <property name="max_length">0</property>
+				      <property name="text" translatable="yes"></property>
+				      <property name="has_frame">False</property>
+				      <property name="invisible_char">*</property>
+				      <property name="activates_default">False</property>
+				    </widget>
+				    <packing>
+				      <property name="left_attach">1</property>
+				      <property name="right_attach">5</property>
+				      <property name="top_attach">6</property>
+				      <property name="bottom_attach">7</property>
+				      <property name="x_padding">1</property>
+				      <property name="y_padding">1</property>
+				      <property name="y_options"></property>
+				    </packing>
+				  </child>
+
+				  <child>
+				    <widget class="GtkLabel" id="details_label_12">
+				      <property name="visible">True</property>
+				      <property name="label">label</property>
 				      <property name="use_underline">False</property>
 				      <property name="use_markup">False</property>
 				      <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -15787,21 +15607,47 @@
 				      <property name="yalign">0.5</property>
 				      <property name="xpad">0</property>
 				      <property name="ypad">0</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">0</property>
 				    </widget>
 				    <packing>
-				      <property name="left_attach">4</property>
-				      <property name="right_attach">5</property>
-				      <property name="top_attach">8</property>
-				      <property name="bottom_attach">9</property>
+				      <property name="left_attach">0</property>
+				      <property name="right_attach">1</property>
+				      <property name="top_attach">12</property>
+				      <property name="bottom_attach">13</property>
 				      <property name="x_options">fill</property>
 				      <property name="y_options"></property>
 				    </packing>
 				  </child>
 
 				  <child>
-				    <widget class="GtkLabel" id="label387">
+				    <widget class="GtkCheckButton" id="details_checkbutton_12">
 				      <property name="visible">True</property>
-				      <property name="label"></property>
+				      <property name="can_focus">True</property>
+				      <property name="label" translatable="yes"></property>
+				      <property name="use_underline">True</property>
+				      <property name="relief">GTK_RELIEF_NORMAL</property>
+				      <property name="focus_on_click">True</property>
+				      <property name="active">False</property>
+				      <property name="inconsistent">False</property>
+				      <property name="draw_indicator">True</property>
+				    </widget>
+				    <packing>
+				      <property name="left_attach">1</property>
+				      <property name="right_attach">2</property>
+				      <property name="top_attach">12</property>
+				      <property name="bottom_attach">13</property>
+				      <property name="x_options">fill</property>
+				      <property name="y_options"></property>
+				    </packing>
+				  </child>
+
+				  <child>
+				    <widget class="GtkLabel" id="details_label_17">
+				      <property name="visible">True</property>
+				      <property name="label">label</property>
 				      <property name="use_underline">False</property>
 				      <property name="use_markup">False</property>
 				      <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -15811,21 +15657,25 @@
 				      <property name="yalign">0.5</property>
 				      <property name="xpad">0</property>
 				      <property name="ypad">0</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">0</property>
 				    </widget>
 				    <packing>
-				      <property name="left_attach">4</property>
-				      <property name="right_attach">5</property>
-				      <property name="top_attach">9</property>
-				      <property name="bottom_attach">10</property>
+				      <property name="left_attach">0</property>
+				      <property name="right_attach">1</property>
+				      <property name="top_attach">11</property>
+				      <property name="bottom_attach">12</property>
 				      <property name="x_options">fill</property>
 				      <property name="y_options"></property>
 				    </packing>
 				  </child>
 
 				  <child>
-				    <widget class="GtkLabel" id="label388">
+				    <widget class="GtkLabel" id="details_label_15">
 				      <property name="visible">True</property>
-				      <property name="label"></property>
+				      <property name="label">label</property>
 				      <property name="use_underline">False</property>
 				      <property name="use_markup">False</property>
 				      <property name="justify">GTK_JUSTIFY_LEFT</property>
@@ -15835,10 +15685,14 @@
 				      <property name="yalign">0.5</property>
 				      <property name="xpad">0</property>
 				      <property name="ypad">0</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">0</property>
 				    </widget>
 				    <packing>
-				      <property name="left_attach">4</property>
-				      <property name="right_attach">5</property>
+				      <property name="left_attach">0</property>
+				      <property name="right_attach">1</property>
 				      <property name="top_attach">10</property>
 				      <property name="bottom_attach">11</property>
 				      <property name="x_options">fill</property>
@@ -15847,7 +15701,7 @@
 				  </child>
 
 				  <child>
-				    <widget class="GtkLabel" id="details_label_7">
+				    <widget class="GtkLabel" id="details_label_23">
 				      <property name="visible">True</property>
 				      <property name="label">label</property>
 				      <property name="use_underline">False</property>
@@ -15859,19 +15713,23 @@
 				      <property name="yalign">0.5</property>
 				      <property name="xpad">0</property>
 				      <property name="ypad">0</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">0</property>
 				    </widget>
 				    <packing>
 				      <property name="left_attach">0</property>
 				      <property name="right_attach">1</property>
-				      <property name="top_attach">7</property>
-				      <property name="bottom_attach">8</property>
+				      <property name="top_attach">9</property>
+				      <property name="bottom_attach">10</property>
 				      <property name="x_options">fill</property>
 				      <property name="y_options"></property>
 				    </packing>
 				  </child>
 
 				  <child>
-				    <widget class="GtkLabel" id="details_label_10">
+				    <widget class="GtkLabel" id="details_label_7">
 				      <property name="visible">True</property>
 				      <property name="label">label</property>
 				      <property name="use_underline">False</property>
@@ -15883,18 +15741,88 @@
 				      <property name="yalign">0.5</property>
 				      <property name="xpad">0</property>
 				      <property name="ypad">0</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">0</property>
 				    </widget>
 				    <packing>
-				      <property name="left_attach">2</property>
-				      <property name="right_attach">3</property>
-				      <property name="top_attach">7</property>
-				      <property name="bottom_attach">8</property>
+				      <property name="left_attach">0</property>
+				      <property name="right_attach">1</property>
+				      <property name="top_attach">8</property>
+				      <property name="bottom_attach">9</property>
 				      <property name="x_options">fill</property>
 				      <property name="y_options"></property>
 				    </packing>
 				  </child>
 
 				  <child>
+				    <widget class="GtkEntry" id="details_entry_17">
+				      <property name="visible">True</property>
+				      <property name="can_focus">True</property>
+				      <property name="editable">True</property>
+				      <property name="visibility">True</property>
+				      <property name="max_length">0</property>
+				      <property name="text" translatable="yes"></property>
+				      <property name="has_frame">True</property>
+				      <property name="invisible_char">*</property>
+				      <property name="activates_default">False</property>
+				    </widget>
+				    <packing>
+				      <property name="left_attach">1</property>
+				      <property name="right_attach">2</property>
+				      <property name="top_attach">11</property>
+				      <property name="bottom_attach">12</property>
+				      <property name="x_options">fill</property>
+				      <property name="y_options"></property>
+				    </packing>
+				  </child>
+
+				  <child>
+				    <widget class="GtkEntry" id="details_entry_15">
+				      <property name="visible">True</property>
+				      <property name="can_focus">True</property>
+				      <property name="editable">True</property>
+				      <property name="visibility">True</property>
+				      <property name="max_length">0</property>
+				      <property name="text" translatable="yes"></property>
+				      <property name="has_frame">True</property>
+				      <property name="invisible_char">*</property>
+				      <property name="activates_default">False</property>
+				    </widget>
+				    <packing>
+				      <property name="left_attach">1</property>
+				      <property name="right_attach">2</property>
+				      <property name="top_attach">10</property>
+				      <property name="bottom_attach">11</property>
+				      <property name="x_options">fill</property>
+				      <property name="y_options"></property>
+				    </packing>
+				  </child>
+
+				  <child>
+				    <widget class="GtkEntry" id="details_entry_23">
+				      <property name="visible">True</property>
+				      <property name="can_focus">True</property>
+				      <property name="editable">True</property>
+				      <property name="visibility">True</property>
+				      <property name="max_length">0</property>
+				      <property name="text" translatable="yes"></property>
+				      <property name="has_frame">True</property>
+				      <property name="invisible_char">*</property>
+				      <property name="activates_default">False</property>
+				    </widget>
+				    <packing>
+				      <property name="left_attach">1</property>
+				      <property name="right_attach">2</property>
+				      <property name="top_attach">9</property>
+				      <property name="bottom_attach">10</property>
+				      <property name="x_options">fill</property>
+				      <property name="y_options"></property>
+				    </packing>
+				  </child>
+
+				  <child>
 				    <widget class="GtkEntry" id="details_entry_7">
 				      <property name="visible">True</property>
 				      <property name="can_focus">True</property>
@@ -15909,15 +15837,15 @@
 				    <packing>
 				      <property name="left_attach">1</property>
 				      <property name="right_attach">2</property>
-				      <property name="top_attach">7</property>
-				      <property name="bottom_attach">8</property>
+				      <property name="top_attach">8</property>
+				      <property name="bottom_attach">9</property>
 				      <property name="x_options">fill</property>
 				      <property name="y_options"></property>
 				    </packing>
 				  </child>
 
 				  <child>
-				    <widget class="GtkLabel" id="details_label_15">
+				    <widget class="GtkLabel" id="details_label_13">
 				      <property name="visible">True</property>
 				      <property name="label">label</property>
 				      <property name="use_underline">False</property>
@@ -15929,19 +15857,23 @@
 				      <property name="yalign">0.5</property>
 				      <property name="xpad">0</property>
 				      <property name="ypad">0</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">0</property>
 				    </widget>
 				    <packing>
-				      <property name="left_attach">0</property>
-				      <property name="right_attach">1</property>
-				      <property name="top_attach">9</property>
-				      <property name="bottom_attach">10</property>
+				      <property name="left_attach">2</property>
+				      <property name="right_attach">3</property>
+				      <property name="top_attach">11</property>
+				      <property name="bottom_attach">12</property>
 				      <property name="x_options">fill</property>
 				      <property name="y_options"></property>
 				    </packing>
 				  </child>
 
 				  <child>
-				    <widget class="GtkLabel" id="details_label_17">
+				    <widget class="GtkLabel" id="details_label_16">
 				      <property name="visible">True</property>
 				      <property name="label">label</property>
 				      <property name="use_underline">False</property>
@@ -15953,10 +15885,14 @@
 				      <property name="yalign">0.5</property>
 				      <property name="xpad">0</property>
 				      <property name="ypad">0</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">0</property>
 				    </widget>
 				    <packing>
-				      <property name="left_attach">0</property>
-				      <property name="right_attach">1</property>
+				      <property name="left_attach">2</property>
+				      <property name="right_attach">3</property>
 				      <property name="top_attach">10</property>
 				      <property name="bottom_attach">11</property>
 				      <property name="x_options">fill</property>
@@ -15965,7 +15901,7 @@
 				  </child>
 
 				  <child>
-				    <widget class="GtkLabel" id="details_label_16">
+				    <widget class="GtkLabel" id="details_label_24">
 				      <property name="visible">True</property>
 				      <property name="label">label</property>
 				      <property name="use_underline">False</property>
@@ -15977,6 +15913,10 @@
 				      <property name="yalign">0.5</property>
 				      <property name="xpad">0</property>
 				      <property name="ypad">0</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">0</property>
 				    </widget>
 				    <packing>
 				      <property name="left_attach">2</property>
@@ -15989,29 +15929,35 @@
 				  </child>
 
 				  <child>
-				    <widget class="GtkEntry" id="details_entry_15">
+				    <widget class="GtkLabel" id="details_label_10">
 				      <property name="visible">True</property>
-				      <property name="can_focus">True</property>
-				      <property name="editable">True</property>
-				      <property name="visibility">True</property>
-				      <property name="max_length">0</property>
-				      <property name="text" translatable="yes"></property>
-				      <property name="has_frame">True</property>
-				      <property name="invisible_char">*</property>
-				      <property name="activates_default">False</property>
+				      <property name="label">label</property>
+				      <property name="use_underline">False</property>
+				      <property name="use_markup">False</property>
+				      <property name="justify">GTK_JUSTIFY_LEFT</property>
+				      <property name="wrap">False</property>
+				      <property name="selectable">False</property>
+				      <property name="xalign">0</property>
+				      <property name="yalign">0.5</property>
+				      <property name="xpad">0</property>
+				      <property name="ypad">0</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">0</property>
 				    </widget>
 				    <packing>
-				      <property name="left_attach">1</property>
-				      <property name="right_attach">2</property>
-				      <property name="top_attach">9</property>
-				      <property name="bottom_attach">10</property>
+				      <property name="left_attach">2</property>
+				      <property name="right_attach">3</property>
+				      <property name="top_attach">8</property>
+				      <property name="bottom_attach">9</property>
 				      <property name="x_options">fill</property>
 				      <property name="y_options"></property>
 				    </packing>
 				  </child>
 
 				  <child>
-				    <widget class="GtkEntry" id="details_entry_16">
+				    <widget class="GtkEntry" id="details_entry_13">
 				      <property name="visible">True</property>
 				      <property name="can_focus">True</property>
 				      <property name="editable">True</property>
@@ -16025,15 +15971,14 @@
 				    <packing>
 				      <property name="left_attach">3</property>
 				      <property name="right_attach">4</property>
-				      <property name="top_attach">9</property>
-				      <property name="bottom_attach">10</property>
-				      <property name="x_options">fill</property>
+				      <property name="top_attach">11</property>
+				      <property name="bottom_attach">12</property>
 				      <property name="y_options"></property>
 				    </packing>
 				  </child>
 
 				  <child>
-				    <widget class="GtkEntry" id="details_entry_17">
+				    <widget class="GtkEntry" id="details_entry_16">
 				      <property name="visible">True</property>
 				      <property name="can_focus">True</property>
 				      <property name="editable">True</property>
@@ -16045,8 +15990,8 @@
 				      <property name="activates_default">False</property>
 				    </widget>
 				    <packing>
-				      <property name="left_attach">1</property>
-				      <property name="right_attach">2</property>
+				      <property name="left_attach">3</property>
+				      <property name="right_attach">4</property>
 				      <property name="top_attach">10</property>
 				      <property name="bottom_attach">11</property>
 				      <property name="x_options">fill</property>
@@ -16055,52 +16000,28 @@
 				  </child>
 
 				  <child>
-				    <widget class="GtkEntry" id="details_entry_8">
+				    <widget class="GtkEntry" id="details_entry_24">
 				      <property name="visible">True</property>
 				      <property name="can_focus">True</property>
-				      <property name="editable">False</property>
+				      <property name="editable">True</property>
 				      <property name="visibility">True</property>
 				      <property name="max_length">0</property>
 				      <property name="text" translatable="yes"></property>
-				      <property name="has_frame">False</property>
+				      <property name="has_frame">True</property>
 				      <property name="invisible_char">*</property>
 				      <property name="activates_default">False</property>
 				    </widget>
 				    <packing>
-				      <property name="left_attach">1</property>
-				      <property name="right_attach">5</property>
-				      <property name="top_attach">5</property>
-				      <property name="bottom_attach">6</property>
-				      <property name="x_padding">1</property>
-				      <property name="y_padding">1</property>
+				      <property name="left_attach">3</property>
+				      <property name="right_attach">4</property>
+				      <property name="top_attach">9</property>
+				      <property name="bottom_attach">10</property>
+				      <property name="x_options">fill</property>
 				      <property name="y_options"></property>
 				    </packing>
 				  </child>
 
 				  <child>
-				    <widget class="GtkEntry" id="details_entry_9">
-				      <property name="visible">True</property>
-				      <property name="can_focus">True</property>
-				      <property name="editable">False</property>
-				      <property name="visibility">True</property>
-				      <property name="max_length">0</property>
-				      <property name="text" translatable="yes"></property>
-				      <property name="has_frame">False</property>
-				      <property name="invisible_char">*</property>
-				      <property name="activates_default">False</property>
-				    </widget>
-				    <packing>
-				      <property name="left_attach">1</property>
-				      <property name="right_attach">5</property>
-				      <property name="top_attach">6</property>
-				      <property name="bottom_attach">7</property>
-				      <property name="x_padding">1</property>
-				      <property name="y_padding">1</property>
-				      <property name="y_options"></property>
-				    </packing>
-				  </child>
-
-				  <child>
 				    <widget class="GtkEntry" id="details_entry_10">
 				      <property name="visible">True</property>
 				      <property name="can_focus">True</property>
@@ -16115,8 +16036,8 @@
 				    <packing>
 				      <property name="left_attach">3</property>
 				      <property name="right_attach">4</property>
-				      <property name="top_attach">7</property>
-				      <property name="bottom_attach">8</property>
+				      <property name="top_attach">8</property>
+				      <property name="bottom_attach">9</property>
 				      <property name="x_padding">1</property>
 				      <property name="y_padding">1</property>
 				      <property name="x_options">fill</property>
@@ -16125,7 +16046,7 @@
 				  </child>
 
 				  <child>
-				    <widget class="GtkLabel" id="details_label_12">
+				    <widget class="GtkLabel" id="details_label_40">
 				      <property name="visible">True</property>
 				      <property name="label">label</property>
 				      <property name="use_underline">False</property>
@@ -16137,80 +16058,40 @@
 				      <property name="yalign">0.5</property>
 				      <property name="xpad">0</property>
 				      <property name="ypad">0</property>
+				      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				      <property name="width_chars">-1</property>
+				      <property name="single_line_mode">False</property>
+				      <property name="angle">0</property>
 				    </widget>
 				    <packing>
 				      <property name="left_attach">0</property>
 				      <property name="right_attach">1</property>
-				      <property name="top_attach">11</property>
-				      <property name="bottom_attach">12</property>
+				      <property name="top_attach">7</property>
+				      <property name="bottom_attach">8</property>
 				      <property name="x_options">fill</property>
 				      <property name="y_options"></property>
 				    </packing>
 				  </child>
 
 				  <child>
-				    <widget class="GtkCheckButton" id="details_checkbutton_12">
+				    <widget class="GtkEntry" id="details_entry_40">
 				      <property name="visible">True</property>
 				      <property name="can_focus">True</property>
-				      <property name="label" translatable="yes"></property>
-				      <property name="use_underline">True</property>
-				      <property name="relief">GTK_RELIEF_NORMAL</property>
-				      <property name="focus_on_click">True</property>
-				      <property name="active">False</property>
-				      <property name="inconsistent">False</property>
-				      <property name="draw_indicator">True</property>
-				    </widget>
-				    <packing>
-				      <property name="left_attach">1</property>
-				      <property name="right_attach">2</property>
-				      <property name="top_attach">11</property>
-				      <property name="bottom_attach">12</property>
-				      <property name="x_options">fill</property>
-				      <property name="y_options"></property>
-				    </packing>
-				  </child>
-
-				  <child>
-				    <widget class="GtkLabel" id="details_label_13">
-				      <property name="visible">True</property>
-				      <property name="label">label</property>
-				      <property name="use_underline">False</property>
-				      <property name="use_markup">False</property>
-				      <property name="justify">GTK_JUSTIFY_LEFT</property>
-				      <property name="wrap">False</property>
-				      <property name="selectable">False</property>
-				      <property name="xalign">0</property>
-				      <property name="yalign">0.5</property>
-				      <property name="xpad">0</property>
-				      <property name="ypad">0</property>
-				    </widget>
-				    <packing>
-				      <property name="left_attach">2</property>
-				      <property name="right_attach">3</property>
-				      <property name="top_attach">10</property>
-				      <property name="bottom_attach">11</property>
-				      <property name="x_options">fill</property>
-				      <property name="y_options"></property>
-				    </packing>
-				  </child>
-
-				  <child>
-				    <widget class="GtkEntry" id="details_entry_13">
-				      <property name="visible">True</property>
-				      <property name="can_focus">True</property>
-				      <property name="editable">True</property>
+				      <property name="editable">False</property>
 				      <property name="visibility">True</property>
 				      <property name="max_length">0</property>
 				      <property name="text" translatable="yes"></property>
-				      <property name="has_frame">True</property>
+				      <property name="has_frame">False</property>
 				      <property name="invisible_char">*</property>
 				      <property name="activates_default">False</property>
 				    </widget>
 				    <packing>
-				      <property name="left_attach">3</property>
-				      <property name="right_attach">4</property>
-				      <property name="top_attach">10</property>
-				      <property name="bottom_attach">11</property>
+				      <property name="left_attach">1</property>
+				      <property name="right_attach">5</property>
+				      <property name="top_attach">7</property>
+				      <property name="bottom_attach">8</property>
+				      <property name="x_padding">1</property>
+				      <property name="y_padding">1</property>
 				      <property name="y_options"></property>
 				    </packing>
 				  </child>
@@ -16254,6 +16135,10 @@
 		      <property name="xpad">0</property>
 		      <property name="ypad">0</property>
 		      <property name="mnemonic_widget">scrolledwindow20</property>
+		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		      <property name="width_chars">-1</property>
+		      <property name="single_line_mode">False</property>
+		      <property name="angle">0</property>
 		    </widget>
 		    <packing>
 		      <property name="type">tab</property>
@@ -16364,6 +16249,10 @@
 		  <property name="yalign">0.5</property>
 		  <property name="xpad">5</property>
 		  <property name="ypad">4</property>
+		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+		  <property name="width_chars">-1</property>
+		  <property name="single_line_mode">False</property>
+		  <property name="angle">0</property>
 		</widget>
 		<packing>
 		  <property name="padding">5</property>
@@ -16543,6 +16432,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -16613,6 +16506,10 @@
 			      <property name="yalign">0.5</property>
 			      <property name="xpad">0</property>
 			      <property name="ypad">0</property>
+			      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			      <property name="width_chars">-1</property>
+			      <property name="single_line_mode">False</property>
+			      <property name="angle">0</property>
 			    </widget>
 			    <packing>
 			      <property name="padding">0</property>
@@ -16644,4 +16541,2456 @@
   </child>
 </widget>
 
+<widget class="GtkWindow" id="repository_window">
+  <property name="visible">True</property>
+  <property name="title" translatable="yes">Repository Options</property>
+  <property name="type">GTK_WINDOW_TOPLEVEL</property>
+  <property name="window_position">GTK_WIN_POS_NONE</property>
+  <property name="modal">False</property>
+  <property name="resizable">True</property>
+  <property name="destroy_with_parent">False</property>
+  <property name="icon">gtkpod-icon-48.png</property>
+  <property name="decorated">True</property>
+  <property name="skip_taskbar_hint">False</property>
+  <property name="skip_pager_hint">False</property>
+  <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
+  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
+  <property name="urgency_hint">False</property>
+
+  <child>
+    <widget class="GtkVBox" id="vbox159">
+      <property name="border_width">12</property>
+      <property name="visible">True</property>
+      <property name="homogeneous">False</property>
+      <property name="spacing">4</property>
+
+      <child>
+	<widget class="GtkScrolledWindow" id="scrolledwindow27">
+	  <property name="visible">True</property>
+	  <property name="can_focus">True</property>
+	  <property name="hscrollbar_policy">GTK_POLICY_NEVER</property>
+	  <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
+	  <property name="shadow_type">GTK_SHADOW_NONE</property>
+	  <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
+
+	  <child>
+	    <widget class="GtkViewport" id="viewport19">
+	      <property name="visible">True</property>
+	      <property name="shadow_type">GTK_SHADOW_NONE</property>
+
+	      <child>
+		<widget class="GtkVBox" id="vbox168">
+		  <property name="visible">True</property>
+		  <property name="homogeneous">False</property>
+		  <property name="spacing">10</property>
+
+		  <child>
+		    <widget class="GtkFrame" id="frame1">
+		      <property name="visible">True</property>
+		      <property name="label_xalign">0</property>
+		      <property name="label_yalign">0.5</property>
+		      <property name="shadow_type">GTK_SHADOW_IN</property>
+
+		      <child>
+			<widget class="GtkAlignment" id="alignment11">
+			  <property name="visible">True</property>
+			  <property name="xalign">0.5</property>
+			  <property name="yalign">0.5</property>
+			  <property name="xscale">1</property>
+			  <property name="yscale">1</property>
+			  <property name="top_padding">0</property>
+			  <property name="bottom_padding">0</property>
+			  <property name="left_padding">0</property>
+			  <property name="right_padding">0</property>
+
+			  <child>
+			    <widget class="GtkViewport" id="viewport21">
+			      <property name="visible">True</property>
+			      <property name="shadow_type">GTK_SHADOW_NONE</property>
+
+			      <child>
+				<widget class="GtkVBox" id="vbox160">
+				  <property name="border_width">6</property>
+				  <property name="visible">True</property>
+				  <property name="homogeneous">False</property>
+				  <property name="spacing">4</property>
+
+				  <child>
+				    <widget class="GtkHBox" id="hbox198">
+				      <property name="visible">True</property>
+				      <property name="homogeneous">False</property>
+				      <property name="spacing">6</property>
+
+				      <child>
+					<widget class="GtkComboBox" id="repository_combo">
+					  <property name="visible">True</property>
+					  <property name="add_tearoffs">False</property>
+					  <property name="focus_on_click">True</property>
+					</widget>
+					<packing>
+					  <property name="padding">0</property>
+					  <property name="expand">False</property>
+					  <property name="fill">True</property>
+					</packing>
+				      </child>
+
+				      <child>
+					<widget class="GtkLabel" id="repository_type_label">
+					  <property name="visible">True</property>
+					  <property name="label">&lt;i&gt;Repository type&lt;/i&gt;</property>
+					  <property name="use_underline">False</property>
+					  <property name="use_markup">True</property>
+					  <property name="justify">GTK_JUSTIFY_LEFT</property>
+					  <property name="wrap">False</property>
+					  <property name="selectable">False</property>
+					  <property name="xalign">0.5</property>
+					  <property name="yalign">0.5</property>
+					  <property name="xpad">0</property>
+					  <property name="ypad">0</property>
+					  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+					  <property name="width_chars">-1</property>
+					  <property name="single_line_mode">False</property>
+					  <property name="angle">0</property>
+					</widget>
+					<packing>
+					  <property name="padding">6</property>
+					  <property name="expand">False</property>
+					  <property name="fill">False</property>
+					</packing>
+				      </child>
+
+				      <child>
+					<widget class="GtkButton" id="new_repository_button">
+					  <property name="visible">True</property>
+					  <property name="can_focus">True</property>
+					  <property name="label" translatable="yes">Add new repository/iPod</property>
+					  <property name="use_underline">True</property>
+					  <property name="relief">GTK_RELIEF_NORMAL</property>
+					  <property name="focus_on_click">True</property>
+					</widget>
+					<packing>
+					  <property name="padding">0</property>
+					  <property name="expand">False</property>
+					  <property name="fill">False</property>
+					  <property name="pack_type">GTK_PACK_END</property>
+					</packing>
+				      </child>
+				    </widget>
+				    <packing>
+				      <property name="padding">0</property>
+				      <property name="expand">False</property>
+				      <property name="fill">False</property>
+				    </packing>
+				  </child>
+
+				  <child>
+				    <widget class="GtkHBox" id="hbox197">
+				      <property name="visible">True</property>
+				      <property name="homogeneous">False</property>
+				      <property name="spacing">8</property>
+
+				      <child>
+					<widget class="GtkLabel" id="label408">
+					  <property name="visible">True</property>
+					  <property name="label">    </property>
+					  <property name="use_underline">False</property>
+					  <property name="use_markup">False</property>
+					  <property name="justify">GTK_JUSTIFY_LEFT</property>
+					  <property name="wrap">False</property>
+					  <property name="selectable">False</property>
+					  <property name="xalign">0.5</property>
+					  <property name="yalign">0.5</property>
+					  <property name="xpad">0</property>
+					  <property name="ypad">0</property>
+					  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+					  <property name="width_chars">-1</property>
+					  <property name="single_line_mode">False</property>
+					  <property name="angle">0</property>
+					</widget>
+					<packing>
+					  <property name="padding">0</property>
+					  <property name="expand">False</property>
+					  <property name="fill">False</property>
+					</packing>
+				      </child>
+
+				      <child>
+					<widget class="GtkVBox" id="repository_vbox">
+					  <property name="visible">True</property>
+					  <property name="homogeneous">False</property>
+					  <property name="spacing">4</property>
+
+					  <child>
+					    <widget class="GtkTable" id="path_table_ipod">
+					      <property name="visible">True</property>
+					      <property name="n_rows">10</property>
+					      <property name="n_columns">3</property>
+					      <property name="homogeneous">False</property>
+					      <property name="row_spacing">0</property>
+					      <property name="column_spacing">0</property>
+
+					      <child>
+						<widget class="GtkLabel" id="mountpoint_label">
+						  <property name="visible">True</property>
+						  <property name="label" translatable="yes">iPod mountpoint:</property>
+						  <property name="use_underline">False</property>
+						  <property name="use_markup">False</property>
+						  <property name="justify">GTK_JUSTIFY_LEFT</property>
+						  <property name="wrap">False</property>
+						  <property name="selectable">False</property>
+						  <property name="xalign">0</property>
+						  <property name="yalign">0.5</property>
+						  <property name="xpad">10</property>
+						  <property name="ypad">0</property>
+						  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+						  <property name="width_chars">-1</property>
+						  <property name="single_line_mode">False</property>
+						  <property name="angle">0</property>
+						</widget>
+						<packing>
+						  <property name="left_attach">0</property>
+						  <property name="right_attach">1</property>
+						  <property name="top_attach">0</property>
+						  <property name="bottom_attach">1</property>
+						  <property name="x_options">fill</property>
+						  <property name="y_options">fill</property>
+						</packing>
+					      </child>
+
+					      <child>
+						<widget class="GtkLabel" id="backup_label">
+						  <property name="visible">True</property>
+						  <property name="label" translatable="yes">iTunesDB backup:</property>
+						  <property name="use_underline">False</property>
+						  <property name="use_markup">False</property>
+						  <property name="justify">GTK_JUSTIFY_LEFT</property>
+						  <property name="wrap">False</property>
+						  <property name="selectable">False</property>
+						  <property name="xalign">0</property>
+						  <property name="yalign">0.5</property>
+						  <property name="xpad">10</property>
+						  <property name="ypad">0</property>
+						  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+						  <property name="width_chars">-1</property>
+						  <property name="single_line_mode">False</property>
+						  <property name="angle">0</property>
+						</widget>
+						<packing>
+						  <property name="left_attach">0</property>
+						  <property name="right_attach">1</property>
+						  <property name="top_attach">1</property>
+						  <property name="bottom_attach">2</property>
+						  <property name="x_options">fill</property>
+						  <property name="y_options">fill</property>
+						</packing>
+					      </child>
+
+					      <child>
+						<widget class="GtkLabel" id="ipod_model_label">
+						  <property name="visible">True</property>
+						  <property name="label" translatable="yes">Model:</property>
+						  <property name="use_underline">False</property>
+						  <property name="use_markup">False</property>
+						  <property name="justify">GTK_JUSTIFY_LEFT</property>
+						  <property name="wrap">False</property>
+						  <property name="selectable">False</property>
+						  <property name="xalign">0</property>
+						  <property name="yalign">0.5</property>
+						  <property name="xpad">10</property>
+						  <property name="ypad">0</property>
+						  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+						  <property name="width_chars">-1</property>
+						  <property name="single_line_mode">False</property>
+						  <property name="angle">0</property>
+						</widget>
+						<packing>
+						  <property name="left_attach">0</property>
+						  <property name="right_attach">1</property>
+						  <property name="top_attach">2</property>
+						  <property name="bottom_attach">3</property>
+						  <property name="x_options">fill</property>
+						  <property name="y_options">fill</property>
+						</packing>
+					      </child>
+
+					      <child>
+						<widget class="GtkLabel" id="local_path_label">
+						  <property name="visible">True</property>
+						  <property name="label" translatable="yes">Path:</property>
+						  <property name="use_underline">False</property>
+						  <property name="use_markup">False</property>
+						  <property name="justify">GTK_JUSTIFY_LEFT</property>
+						  <property name="wrap">False</property>
+						  <property name="selectable">False</property>
+						  <property name="xalign">0</property>
+						  <property name="yalign">0.5</property>
+						  <property name="xpad">10</property>
+						  <property name="ypad">0</property>
+						  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+						  <property name="width_chars">-1</property>
+						  <property name="single_line_mode">False</property>
+						  <property name="angle">0</property>
+						</widget>
+						<packing>
+						  <property name="left_attach">0</property>
+						  <property name="right_attach">1</property>
+						  <property name="top_attach">3</property>
+						  <property name="bottom_attach">4</property>
+						  <property name="x_options">fill</property>
+						  <property name="y_options">fill</property>
+						</packing>
+					      </child>
+
+					      <child>
+						<widget class="GtkLabel" id="ipod_sync_label">
+						  <property name="visible">True</property>
+						  <property name="label" translatable="yes">&lt;b&gt;Synchronization&lt;/b&gt;</property>
+						  <property name="use_underline">False</property>
+						  <property name="use_markup">True</property>
+						  <property name="justify">GTK_JUSTIFY_LEFT</property>
+						  <property name="wrap">False</property>
+						  <property name="selectable">False</property>
+						  <property name="xalign">0</property>
+						  <property name="yalign">1</property>
+						  <property name="xpad">0</property>
+						  <property name="ypad">0</property>
+						  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+						  <property name="width_chars">-1</property>
+						  <property name="single_line_mode">False</property>
+						  <property name="angle">0</property>
+						</widget>
+						<packing>
+						  <property name="left_attach">0</property>
+						  <property name="right_attach">1</property>
+						  <property name="top_attach">4</property>
+						  <property name="bottom_attach">5</property>
+						  <property name="y_padding">4</property>
+						  <property name="x_options">fill</property>
+						  <property name="y_options">fill</property>
+						</packing>
+					      </child>
+
+					      <child>
+						<widget class="GtkLabel" id="spacer_label1">
+						  <property name="visible">True</property>
+						  <property name="label"></property>
+						  <property name="use_underline">False</property>
+						  <property name="use_markup">False</property>
+						  <property name="justify">GTK_JUSTIFY_LEFT</property>
+						  <property name="wrap">False</property>
+						  <property name="selectable">False</property>
+						  <property name="xalign">0</property>
+						  <property name="yalign">0.5</property>
+						  <property name="xpad">0</property>
+						  <property name="ypad">0</property>
+						  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+						  <property name="width_chars">-1</property>
+						  <property name="single_line_mode">False</property>
+						  <property name="angle">0</property>
+						</widget>
+						<packing>
+						  <property name="left_attach">1</property>
+						  <property name="right_attach">2</property>
+						  <property name="top_attach">4</property>
+						  <property name="bottom_attach">5</property>
+						  <property name="y_padding">6</property>
+						  <property name="x_options">fill</property>
+						  <property name="y_options">fill</property>
+						</packing>
+					      </child>
+
+					      <child>
+						<widget class="GtkLabel" id="ipod_sync_contacts_label">
+						  <property name="visible">True</property>
+						  <property name="label" translatable="yes">Contacts sync command:</property>
+						  <property name="use_underline">False</property>
+						  <property name="use_markup">False</property>
+						  <property name="justify">GTK_JUSTIFY_LEFT</property>
+						  <property name="wrap">False</property>
+						  <property name="selectable">False</property>
+						  <property name="xalign">0</property>
+						  <property name="yalign">0.5</property>
+						  <property name="xpad">10</property>
+						  <property name="ypad">0</property>
+						  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+						  <property name="width_chars">-1</property>
+						  <property name="single_line_mode">False</property>
+						  <property name="angle">0</property>
+						</widget>
+						<packing>
+						  <property name="left_attach">0</property>
+						  <property name="right_attach">1</property>
+						  <property name="top_attach">5</property>
+						  <property name="bottom_attach">6</property>
+						  <property name="x_options">fill</property>
+						  <property name="y_options">fill</property>
+						</packing>
+					      </child>
+
+					      <child>
+						<widget class="GtkLabel" id="ipod_sync_calendar_label">
+						  <property name="visible">True</property>
+						  <property name="label" translatable="yes">Calendar sync command:</property>
+						  <property name="use_underline">False</property>
+						  <property name="use_markup">False</property>
+						  <property name="justify">GTK_JUSTIFY_LEFT</property>
+						  <property name="wrap">False</property>
+						  <property name="selectable">False</property>
+						  <property name="xalign">0</property>
+						  <property name="yalign">0.5</property>
+						  <property name="xpad">10</property>
+						  <property name="ypad">0</property>
+						  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+						  <property name="width_chars">-1</property>
+						  <property name="single_line_mode">False</property>
+						  <property name="angle">0</property>
+						</widget>
+						<packing>
+						  <property name="left_attach">0</property>
+						  <property name="right_attach">1</property>
+						  <property name="top_attach">6</property>
+						  <property name="bottom_attach">7</property>
+						  <property name="x_options">fill</property>
+						  <property name="y_options">fill</property>
+						</packing>
+					      </child>
+
+					      <child>
+						<widget class="GtkLabel" id="ipod_sync_notes_label">
+						  <property name="visible">True</property>
+						  <property name="label" translatable="yes">Notes sync command:</property>
+						  <property name="use_underline">False</property>
+						  <property name="use_markup">False</property>
+						  <property name="justify">GTK_JUSTIFY_LEFT</property>
+						  <property name="wrap">False</property>
+						  <property name="selectable">False</property>
+						  <property name="xalign">0</property>
+						  <property name="yalign">0.5</property>
+						  <property name="xpad">10</property>
+						  <property name="ypad">0</property>
+						  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+						  <property name="width_chars">-1</property>
+						  <property name="single_line_mode">False</property>
+						  <property name="angle">0</property>
+						</widget>
+						<packing>
+						  <property name="left_attach">0</property>
+						  <property name="right_attach">1</property>
+						  <property name="top_attach">7</property>
+						  <property name="bottom_attach">8</property>
+						  <property name="x_options">fill</property>
+						  <property name="y_options">fill</property>
+						</packing>
+					      </child>
+
+					      <child>
+						<widget class="GtkCheckButton" id="ipod_concal_autosync_toggle">
+						  <property name="visible">True</property>
+						  <property name="can_focus">True</property>
+						  <property name="label" translatable="yes">Call automatically when synchronizing iTunesDB</property>
+						  <property name="use_underline">True</property>
+						  <property name="relief">GTK_RELIEF_NORMAL</property>
+						  <property name="focus_on_click">True</property>
+						  <property name="active">False</property>
+						  <property name="inconsistent">False</property>
+						  <property name="draw_indicator">True</property>
+						  <signal name="toggled" handler="on_concal_autosync_toggled" last_modification_time="Thu, 28 Apr 2005 18:12:10 GMT"/>
+						</widget>
+						<packing>
+						  <property name="left_attach">0</property>
+						  <property name="right_attach">3</property>
+						  <property name="top_attach">8</property>
+						  <property name="bottom_attach">9</property>
+						  <property name="x_padding">10</property>
+						  <property name="x_options">fill</property>
+						  <property name="y_options"></property>
+						</packing>
+					      </child>
+
+					      <child>
+						<widget class="GtkEntry" id="mountpoint_entry">
+						  <property name="visible">True</property>
+						  <property name="tooltip" translatable="yes">Specify exact path including command line options. '%i' will be replaced with the mount point of the iPod.</property>
+						  <property name="can_focus">True</property>
+						  <property name="editable">True</property>
+						  <property name="visibility">True</property>
+						  <property name="max_length">0</property>
+						  <property name="text" translatable="yes"></property>
+						  <property name="has_frame">True</property>
+						  <property name="invisible_char">*</property>
+						  <property name="activates_default">False</property>
+						</widget>
+						<packing>
+						  <property name="left_attach">1</property>
+						  <property name="right_attach">2</property>
+						  <property name="top_attach">0</property>
+						  <property name="bottom_attach">1</property>
+						  <property name="x_padding">3</property>
+						  <property name="y_padding">3</property>
+						  <property name="y_options"></property>
+						</packing>
+					      </child>
+
+					      <child>
+						<widget class="GtkEntry" id="backup_entry">
+						  <property name="visible">True</property>
+						  <property name="tooltip" translatable="yes">Specify exact path including command line options. '%i' will be replaced with the mount point of the iPod.</property>
+						  <property name="can_focus">True</property>
+						  <property name="editable">True</property>
+						  <property name="visibility">True</property>
+						  <property name="max_length">0</property>
+						  <property name="text" translatable="yes"></property>
+						  <property name="has_frame">True</property>
+						  <property name="invisible_char">*</property>
+						  <property name="activates_default">False</property>
+						</widget>
+						<packing>
+						  <property name="left_attach">1</property>
+						  <property name="right_attach">2</property>
+						  <property name="top_attach">1</property>
+						  <property name="bottom_attach">2</property>
+						  <property name="x_padding">3</property>
+						  <property name="y_padding">3</property>
+						  <property name="y_options"></property>
+						</packing>
+					      </child>
+
+					      <child>
+						<widget class="GtkEntry" id="local_path_entry">
+						  <property name="visible">True</property>
+						  <property name="tooltip" translatable="yes">Specify exact path including command line options. '%i' will be replaced with the mount point of the iPod.</property>
+						  <property name="can_focus">True</property>
+						  <property name="editable">False</property>
+						  <property name="visibility">True</property>
+						  <property name="max_length">0</property>
+						  <property name="text" translatable="yes"></property>
+						  <property name="has_frame">True</property>
+						  <property name="invisible_char">*</property>
+						  <property name="activates_default">False</property>
+						</widget>
+						<packing>
+						  <property name="left_attach">1</property>
+						  <property name="right_attach">2</property>
+						  <property name="top_attach">3</property>
+						  <property name="bottom_attach">4</property>
+						  <property name="x_padding">3</property>
+						  <property name="y_padding">3</property>
+						  <property name="y_options"></property>
+						</packing>
+					      </child>
+
+					      <child>
+						<widget class="GtkEntry" id="ipod_sync_contacts_entry">
+						  <property name="visible">True</property>
+						  <property name="tooltip" translatable="yes">Specify exact path including command line options. '%i' will be replaced with the mount point of the iPod.</property>
+						  <property name="can_focus">True</property>
+						  <property name="editable">True</property>
+						  <property name="visibility">True</property>
+						  <property name="max_length">0</property>
+						  <property name="text" translatable="yes"></property>
+						  <property name="has_frame">True</property>
+						  <property name="invisible_char">*</property>
+						  <property name="activates_default">False</property>
+						</widget>
+						<packing>
+						  <property name="left_attach">1</property>
+						  <property name="right_attach">2</property>
+						  <property name="top_attach">5</property>
+						  <property name="bottom_attach">6</property>
+						  <property name="x_padding">3</property>
+						  <property name="y_padding">3</property>
+						  <property name="y_options"></property>
+						</packing>
+					      </child>
+
+					      <child>
+						<widget class="GtkEntry" id="ipod_sync_calendar_entry">
+						  <property name="visible">True</property>
+						  <property name="tooltip" translatable="yes">Specify exact path including command line options. '%i' will be replaced with the mount point of the iPod.</property>
+						  <property name="can_focus">True</property>
+						  <property name="editable">True</property>
+						  <property name="visibility">True</property>
+						  <property name="max_length">0</property>
+						  <property name="text" translatable="yes"></property>
+						  <property name="has_frame">True</property>
+						  <property name="invisible_char">*</property>
+						  <property name="activates_default">False</property>
+						</widget>
+						<packing>
+						  <property name="left_attach">1</property>
+						  <property name="right_attach">2</property>
+						  <property name="top_attach">6</property>
+						  <property name="bottom_attach">7</property>
+						  <property name="x_padding">3</property>
+						  <property name="y_padding">3</property>
+						  <property name="y_options"></property>
+						</packing>
+					      </child>
+
+					      <child>
+						<widget class="GtkEntry" id="ipod_sync_notes_entry">
+						  <property name="visible">True</property>
+						  <property name="tooltip" translatable="yes">Specify exact path including command line options. '%i' will be replaced with the mount point of the iPod.</property>
+						  <property name="can_focus">True</property>
+						  <property name="editable">True</property>
+						  <property name="visibility">True</property>
+						  <property name="max_length">0</property>
+						  <property name="text" translatable="yes"></property>
+						  <property name="has_frame">True</property>
+						  <property name="invisible_char">*</property>
+						  <property name="activates_default">False</property>
+						</widget>
+						<packing>
+						  <property name="left_attach">1</property>
+						  <property name="right_attach">2</property>
+						  <property name="top_attach">7</property>
+						  <property name="bottom_attach">8</property>
+						  <property name="x_padding">3</property>
+						  <property name="y_padding">3</property>
+						  <property name="y_options"></property>
+						</packing>
+					      </child>
+
+					      <child>
+						<widget class="GtkButton" id="mountpoint_button">
+						  <property name="visible">True</property>
+						  <property name="can_focus">True</property>
+						  <property name="label" translatable="yes">Browse</property>
+						  <property name="use_underline">True</property>
+						  <property name="relief">GTK_RELIEF_NORMAL</property>
+						  <property name="focus_on_click">True</property>
+						</widget>
+						<packing>
+						  <property name="left_attach">2</property>
+						  <property name="right_attach">3</property>
+						  <property name="top_attach">0</property>
+						  <property name="bottom_attach">1</property>
+						  <property name="x_padding">3</property>
+						  <property name="x_options">fill</property>
+						  <property name="y_options"></property>
+						</packing>
+					      </child>
+
+					      <child>
+						<widget class="GtkButton" id="ipod_sync_contacts_button">
+						  <property name="visible">True</property>
+						  <property name="can_focus">True</property>
+						  <property name="label" translatable="yes">Browse</property>
+						  <property name="use_underline">True</property>
+						  <property name="relief">GTK_RELIEF_NORMAL</property>
+						  <property name="focus_on_click">True</property>
+						</widget>
+						<packing>
+						  <property name="left_attach">2</property>
+						  <property name="right_attach">3</property>
+						  <property name="top_attach">5</property>
+						  <property name="bottom_attach">6</property>
+						  <property name="x_padding">3</property>
+						  <property name="x_options">fill</property>
+						  <property name="y_options"></property>
+						</packing>
+					      </child>
+
+					      <child>
+						<widget class="GtkButton" id="ipod_sync_calendar_button">
+						  <property name="visible">True</property>
+						  <property name="can_focus">True</property>
+						  <property name="label" translatable="yes">Browse</property>
+						  <property name="use_underline">True</property>
+						  <property name="relief">GTK_RELIEF_NORMAL</property>
+						  <property name="focus_on_click">True</property>
+						</widget>
+						<packing>
+						  <property name="left_attach">2</property>
+						  <property name="right_attach">3</property>
+						  <property name="top_attach">6</property>
+						  <property name="bottom_attach">7</property>
+						  <property name="x_padding">3</property>
+						  <property name="x_options">fill</property>
+						  <property name="y_options"></property>
+						</packing>
+					      </child>
+
+					      <child>
+						<widget class="GtkButton" id="ipod_sync_notes_button">
+						  <property name="visible">True</property>
+						  <property name="can_focus">True</property>
+						  <property name="label" translatable="yes">Browse</property>
+						  <property name="use_underline">True</property>
+						  <property name="relief">GTK_RELIEF_NORMAL</property>
+						  <property name="focus_on_click">True</property>
+						</widget>
+						<packing>
+						  <property name="left_attach">2</property>
+						  <property name="right_attach">3</property>
+						  <property name="top_attach">7</property>
+						  <property name="bottom_attach">8</property>
+						  <property name="x_padding">3</property>
+						  <property name="x_options">fill</property>
+						  <property name="y_options"></property>
+						</packing>
+					      </child>
+
+					      <child>
+						<widget class="GtkButton" id="backup_button">
+						  <property name="visible">True</property>
+						  <property name="can_focus">True</property>
+						  <property name="label" translatable="yes">Browse</property>
+						  <property name="use_underline">True</property>
+						  <property name="relief">GTK_RELIEF_NORMAL</property>
+						  <property name="focus_on_click">True</property>
+						</widget>
+						<packing>
+						  <property name="left_attach">2</property>
+						  <property name="right_attach">3</property>
+						  <property name="top_attach">1</property>
+						  <property name="bottom_attach">2</property>
+						  <property name="x_padding">3</property>
+						  <property name="x_options">fill</property>
+						  <property name="y_options"></property>
+						</packing>
+					      </child>
+
+					      <child>
+						<widget class="GtkComboBoxEntry" id="ipod_model_combo">
+						  <property name="visible">True</property>
+						  <property name="add_tearoffs">False</property>
+						  <property name="has_frame">True</property>
+						  <property name="focus_on_click">True</property>
+						</widget>
+						<packing>
+						  <property name="left_attach">1</property>
+						  <property name="right_attach">2</property>
+						  <property name="top_attach">2</property>
+						  <property name="bottom_attach">3</property>
+						  <property name="x_padding">3</property>
+						  <property name="y_padding">3</property>
+						  <property name="x_options">fill</property>
+						  <property name="y_options">fill</property>
+						</packing>
+					      </child>
+					    </widget>
+					    <packing>
+					      <property name="padding">6</property>
+					      <property name="expand">False</property>
+					      <property name="fill">False</property>
+					    </packing>
+					  </child>
+
+					  <child>
+					    <widget class="GtkTable" id="table45">
+					      <property name="visible">True</property>
+					      <property name="n_rows">2</property>
+					      <property name="n_columns">2</property>
+					      <property name="homogeneous">False</property>
+					      <property name="row_spacing">0</property>
+					      <property name="column_spacing">12</property>
+
+					      <child>
+						<widget class="GtkButton" id="update_all_playlists_button">
+						  <property name="visible">True</property>
+						  <property name="can_focus">True</property>
+						  <property name="label" translatable="yes">Update/Sync all playlists now</property>
+						  <property name="use_underline">True</property>
+						  <property name="relief">GTK_RELIEF_NORMAL</property>
+						  <property name="focus_on_click">True</property>
+						</widget>
+						<packing>
+						  <property name="left_attach">0</property>
+						  <property name="right_attach">1</property>
+						  <property name="top_attach">0</property>
+						  <property name="bottom_attach">1</property>
+						  <property name="y_padding">3</property>
+						  <property name="x_options">fill</property>
+						  <property name="y_options"></property>
+						</packing>
+					      </child>
+
+					      <child>
+						<widget class="GtkButton" id="delete_repository_button">
+						  <property name="visible">True</property>
+						  <property name="can_focus">True</property>
+						  <property name="label" translatable="yes">Delete repository</property>
+						  <property name="use_underline">True</property>
+						  <property name="relief">GTK_RELIEF_NORMAL</property>
+						  <property name="focus_on_click">True</property>
+						</widget>
+						<packing>
+						  <property name="left_attach">0</property>
+						  <property name="right_attach">1</property>
+						  <property name="top_attach">1</property>
+						  <property name="bottom_attach">2</property>
+						  <property name="y_padding">3</property>
+						  <property name="x_options">fill</property>
+						  <property name="y_options"></property>
+						</packing>
+					      </child>
+
+					      <child>
+						<widget class="GtkCheckButton" id="delete_repository_checkbutton">
+						  <property name="visible">True</property>
+						  <property name="can_focus">True</property>
+						  <property name="label" translatable="yes">I'm sure</property>
+						  <property name="use_underline">True</property>
+						  <property name="relief">GTK_RELIEF_NORMAL</property>
+						  <property name="focus_on_click">True</property>
+						  <property name="active">False</property>
+						  <property name="inconsistent">False</property>
+						  <property name="draw_indicator">True</property>
+						</widget>
+						<packing>
+						  <property name="left_attach">1</property>
+						  <property name="right_attach">2</property>
+						  <property name="top_attach">1</property>
+						  <property name="bottom_attach">2</property>
+						  <property name="x_options">fill</property>
+						  <property name="y_options"></property>
+						</packing>
+					      </child>
+					    </widget>
+					    <packing>
+					      <property name="padding">6</property>
+					      <property name="expand">False</property>
+					      <property name="fill">False</property>
+					    </packing>
+					  </child>
+
+					  <child>
+					    <placeholder/>
+					  </child>
+					</widget>
+					<packing>
+					  <property name="padding">0</property>
+					  <property name="expand">True</property>
+					  <property name="fill">True</property>
+					</packing>
+				      </child>
+				    </widget>
+				    <packing>
+				      <property name="padding">0</property>
+				      <property name="expand">False</property>
+				      <property name="fill">True</property>
+				    </packing>
+				  </child>
+
+				  <child>
+				    <placeholder/>
+				  </child>
+				</widget>
+			      </child>
+			    </widget>
+			  </child>
+			</widget>
+		      </child>
+
+		      <child>
+			<widget class="GtkLabel" id="label423">
+			  <property name="visible">True</property>
+			  <property name="label" translatable="yes">&lt;b&gt;Repositories&lt;/b&gt;</property>
+			  <property name="use_underline">False</property>
+			  <property name="use_markup">True</property>
+			  <property name="justify">GTK_JUSTIFY_LEFT</property>
+			  <property name="wrap">False</property>
+			  <property name="selectable">False</property>
+			  <property name="xalign">0.5</property>
+			  <property name="yalign">0.5</property>
+			  <property name="xpad">0</property>
+			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
+			</widget>
+			<packing>
+			  <property name="type">label_item</property>
+			</packing>
+		      </child>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">False</property>
+		      <property name="fill">True</property>
+		    </packing>
+		  </child>
+
+		  <child>
+		    <widget class="GtkHBox" id="hbox203">
+		      <property name="visible">True</property>
+		      <property name="homogeneous">False</property>
+		      <property name="spacing">8</property>
+
+		      <child>
+			<widget class="GtkLabel" id="label421">
+			  <property name="visible">True</property>
+			  <property name="label">    </property>
+			  <property name="use_underline">False</property>
+			  <property name="use_markup">False</property>
+			  <property name="justify">GTK_JUSTIFY_LEFT</property>
+			  <property name="wrap">False</property>
+			  <property name="selectable">False</property>
+			  <property name="xalign">0.5</property>
+			  <property name="yalign">0.5</property>
+			  <property name="xpad">0</property>
+			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
+			</widget>
+			<packing>
+			  <property name="padding">0</property>
+			  <property name="expand">False</property>
+			  <property name="fill">False</property>
+			</packing>
+		      </child>
+
+		      <child>
+			<widget class="GtkVBox" id="vbox169">
+			  <property name="visible">True</property>
+			  <property name="homogeneous">False</property>
+			  <property name="spacing">0</property>
+
+			  <child>
+			    <widget class="GtkFrame" id="playlist_frame">
+			      <property name="visible">True</property>
+			      <property name="label_xalign">0</property>
+			      <property name="label_yalign">0.5</property>
+			      <property name="shadow_type">GTK_SHADOW_IN</property>
+
+			      <child>
+				<widget class="GtkAlignment" id="alignment12">
+				  <property name="visible">True</property>
+				  <property name="xalign">0.5</property>
+				  <property name="yalign">0.5</property>
+				  <property name="xscale">1</property>
+				  <property name="yscale">1</property>
+				  <property name="top_padding">0</property>
+				  <property name="bottom_padding">0</property>
+				  <property name="left_padding">0</property>
+				  <property name="right_padding">0</property>
+
+				  <child>
+				    <widget class="GtkViewport" id="viewport20">
+				      <property name="visible">True</property>
+				      <property name="shadow_type">GTK_SHADOW_NONE</property>
+
+				      <child>
+					<widget class="GtkVBox" id="vbox162">
+					  <property name="border_width">6</property>
+					  <property name="visible">True</property>
+					  <property name="homogeneous">False</property>
+					  <property name="spacing">4</property>
+
+					  <child>
+					    <widget class="GtkHBox" id="hbox199">
+					      <property name="visible">True</property>
+					      <property name="homogeneous">False</property>
+					      <property name="spacing">6</property>
+
+					      <child>
+						<widget class="GtkComboBox" id="playlist_combo">
+						  <property name="visible">True</property>
+						  <property name="add_tearoffs">False</property>
+						  <property name="focus_on_click">True</property>
+						</widget>
+						<packing>
+						  <property name="padding">0</property>
+						  <property name="expand">False</property>
+						  <property name="fill">True</property>
+						</packing>
+					      </child>
+
+					      <child>
+						<widget class="GtkLabel" id="playlist_type_label">
+						  <property name="visible">True</property>
+						  <property name="label">&lt;i&gt;Playlist type&lt;/i&gt;</property>
+						  <property name="use_underline">False</property>
+						  <property name="use_markup">True</property>
+						  <property name="justify">GTK_JUSTIFY_LEFT</property>
+						  <property name="wrap">False</property>
+						  <property name="selectable">False</property>
+						  <property name="xalign">0.5</property>
+						  <property name="yalign">0.5</property>
+						  <property name="xpad">0</property>
+						  <property name="ypad">0</property>
+						  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+						  <property name="width_chars">-1</property>
+						  <property name="single_line_mode">False</property>
+						  <property name="angle">0</property>
+						</widget>
+						<packing>
+						  <property name="padding">6</property>
+						  <property name="expand">False</property>
+						  <property name="fill">False</property>
+						</packing>
+					      </child>
+
+					      <child>
+						<placeholder/>
+					      </child>
+					    </widget>
+					    <packing>
+					      <property name="padding">3</property>
+					      <property name="expand">False</property>
+					      <property name="fill">False</property>
+					    </packing>
+					  </child>
+
+					  <child>
+					    <widget class="GtkHBox" id="hbox200">
+					      <property name="border_width">4</property>
+					      <property name="visible">True</property>
+					      <property name="homogeneous">False</property>
+					      <property name="spacing">8</property>
+
+					      <child>
+						<widget class="GtkLabel" id="label416">
+						  <property name="visible">True</property>
+						  <property name="label">    </property>
+						  <property name="use_underline">False</property>
+						  <property name="use_markup">False</property>
+						  <property name="justify">GTK_JUSTIFY_LEFT</property>
+						  <property name="wrap">False</property>
+						  <property name="selectable">False</property>
+						  <property name="xalign">0.5</property>
+						  <property name="yalign">0.5</property>
+						  <property name="xpad">0</property>
+						  <property name="ypad">0</property>
+						  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+						  <property name="width_chars">-1</property>
+						  <property name="single_line_mode">False</property>
+						  <property name="angle">0</property>
+						</widget>
+						<packing>
+						  <property name="padding">0</property>
+						  <property name="expand">False</property>
+						  <property name="fill">False</property>
+						</packing>
+					      </child>
+
+					      <child>
+						<widget class="GtkVBox" id="vbox164">
+						  <property name="visible">True</property>
+						  <property name="homogeneous">False</property>
+						  <property name="spacing">8</property>
+
+						  <child>
+						    <widget class="GtkVBox" id="standard_playlist_vbox">
+						      <property name="visible">True</property>
+						      <property name="homogeneous">False</property>
+						      <property name="spacing">8</property>
+
+						      <child>
+							<widget class="GtkRadioButton" id="sync_playlist_mode_automatic_radio">
+							  <property name="visible">True</property>
+							  <property name="tooltip" translatable="yes">Directories to sync with are determined from the filenames of the tracks in the playlist.</property>
+							  <property name="can_focus">True</property>
+							  <property name="label" translatable="yes">On startup automatically sync with playlist directories</property>
+							  <property name="use_underline">True</property>
+							  <property name="relief">GTK_RELIEF_NORMAL</property>
+							  <property name="focus_on_click">True</property>
+							  <property name="active">False</property>
+							  <property name="inconsistent">False</property>
+							  <property name="draw_indicator">True</property>
+							</widget>
+							<packing>
+							  <property name="padding">0</property>
+							  <property name="expand">False</property>
+							  <property name="fill">False</property>
+							</packing>
+						      </child>
+
+						      <child>
+							<widget class="GtkRadioButton" id="sync_playlist_mode_manual_radio">
+							  <property name="visible">True</property>
+							  <property name="can_focus">True</property>
+							  <property name="label" translatable="yes">On startup automatically sync with the following directory</property>
+							  <property name="use_underline">True</property>
+							  <property name="relief">GTK_RELIEF_NORMAL</property>
+							  <property name="focus_on_click">True</property>
+							  <property name="active">False</property>
+							  <property name="inconsistent">False</property>
+							  <property name="draw_indicator">True</property>
+							  <property name="group">sync_playlist_mode_automatic_radio</property>
+							</widget>
+							<packing>
+							  <property name="padding">0</property>
+							  <property name="expand">False</property>
+							  <property name="fill">False</property>
+							</packing>
+						      </child>
+
+						      <child>
+							<widget class="GtkHBox" id="hbox201">
+							  <property name="visible">True</property>
+							  <property name="homogeneous">False</property>
+							  <property name="spacing">0</property>
+
+							  <child>
+							    <widget class="GtkLabel" id="label417">
+							      <property name="visible">True</property>
+							      <property name="label">   </property>
+							      <property name="use_underline">False</property>
+							      <property name="use_markup">False</property>
+							      <property name="justify">GTK_JUSTIFY_LEFT</property>
+							      <property name="wrap">False</property>
+							      <property name="selectable">False</property>
+							      <property name="xalign">0.5</property>
+							      <property name="yalign">0.5</property>
+							      <property name="xpad">0</property>
+							      <property name="ypad">0</property>
+							      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+							      <property name="width_chars">-1</property>
+							      <property name="single_line_mode">False</property>
+							      <property name="angle">0</property>
+							    </widget>
+							    <packing>
+							      <property name="padding">1</property>
+							      <property name="expand">False</property>
+							      <property name="fill">False</property>
+							    </packing>
+							  </child>
+
+							  <child>
+							    <widget class="GtkEntry" id="manual_syncdir_entry">
+							      <property name="visible">True</property>
+							      <property name="tooltip" translatable="yes">Specify exact path including command line options. '%i' will be replaced with the mount point of the iPod.</property>
+							      <property name="can_focus">True</property>
+							      <property name="editable">True</property>
+							      <property name="visibility">True</property>
+							      <property name="max_length">0</property>
+							      <property name="text" translatable="yes"></property>
+							      <property name="has_frame">True</property>
+							      <property name="invisible_char">*</property>
+							      <property name="activates_default">False</property>
+							    </widget>
+							    <packing>
+							      <property name="padding">3</property>
+							      <property name="expand">True</property>
+							      <property name="fill">True</property>
+							    </packing>
+							  </child>
+
+							  <child>
+							    <widget class="GtkButton" id="manual_syncdir_button">
+							      <property name="visible">True</property>
+							      <property name="can_focus">True</property>
+							      <property name="label" translatable="yes">Browse</property>
+							      <property name="use_underline">True</property>
+							      <property name="relief">GTK_RELIEF_NORMAL</property>
+							      <property name="focus_on_click">True</property>
+							    </widget>
+							    <packing>
+							      <property name="padding">3</property>
+							      <property name="expand">False</property>
+							      <property name="fill">False</property>
+							    </packing>
+							  </child>
+							</widget>
+							<packing>
+							  <property name="padding">2</property>
+							  <property name="expand">False</property>
+							  <property name="fill">False</property>
+							</packing>
+						      </child>
+
+						      <child>
+							<widget class="GtkRadioButton" id="sync_playlist_mode_none_radio">
+							  <property name="visible">True</property>
+							  <property name="can_focus">True</property>
+							  <property name="label" translatable="yes">Don't automatically sync on startup</property>
+							  <property name="use_underline">True</property>
+							  <property name="relief">GTK_RELIEF_NORMAL</property>
+							  <property name="focus_on_click">True</property>
+							  <property name="active">False</property>
+							  <property name="inconsistent">False</property>
+							  <property name="draw_indicator">True</property>
+							  <property name="group">sync_playlist_mode_automatic_radio</property>
+							</widget>
+							<packing>
+							  <property name="padding">0</property>
+							  <property name="expand">False</property>
+							  <property name="fill">False</property>
+							</packing>
+						      </child>
+
+						      <child>
+							<widget class="GtkHBox" id="sync_options_hbox">
+							  <property name="visible">True</property>
+							  <property name="homogeneous">False</property>
+							  <property name="spacing">0</property>
+
+							  <child>
+							    <widget class="GtkLabel" id="label422">
+							      <property name="visible">True</property>
+							      <property name="label">  </property>
+							      <property name="use_underline">False</property>
+							      <property name="use_markup">False</property>
+							      <property name="justify">GTK_JUSTIFY_LEFT</property>
+							      <property name="wrap">False</property>
+							      <property name="selectable">False</property>
+							      <property name="xalign">0.5</property>
+							      <property name="yalign">0.5</property>
+							      <property name="xpad">0</property>
+							      <property name="ypad">0</property>
+							      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+							      <property name="width_chars">-1</property>
+							      <property name="single_line_mode">False</property>
+							      <property name="angle">0</property>
+							    </widget>
+							    <packing>
+							      <property name="padding">0</property>
+							      <property name="expand">False</property>
+							      <property name="fill">False</property>
+							    </packing>
+							  </child>
+
+							  <child>
+							    <widget class="GtkVBox" id="vbox_720">
+							      <property name="visible">True</property>
+							      <property name="homogeneous">False</property>
+							      <property name="spacing">8</property>
+
+							      <child>
+								<widget class="GtkCheckButton" id="playlist_sync_delete_tracks_toggle">
+								  <property name="visible">True</property>
+								  <property name="tooltip" translatable="yes">Normally, if a track is no longer present in the sync directory, it will be removed from the playlist, but not from the iPod or local repository.
+If this option is checked, tracks will be completely removed from the iPod or local repository, unless the track is a member of other playlists as well.
+NOTE: if you sync with the master playlist, you must check this option if you want tracks to be removed, because removing from the master playlist means removing from the iPod.</property>
+								  <property name="can_focus">True</property>
+								  <property name="label" translatable="yes">Delete tracks that are no longer present from the
+ipod or repository</property>
+								  <property name="use_underline">True</property>
+								  <property name="relief">GTK_RELIEF_NORMAL</property>
+								  <property name="focus_on_click">True</property>
+								  <property name="active">False</property>
+								  <property name="inconsistent">False</property>
+								  <property name="draw_indicator">True</property>
+								</widget>
+								<packing>
+								  <property name="padding">0</property>
+								  <property name="expand">False</property>
+								  <property name="fill">False</property>
+								</packing>
+							      </child>
+
+							      <child>
+								<widget class="GtkCheckButton" id="playlist_sync_confirm_delete_toggle">
+								  <property name="visible">True</property>
+								  <property name="can_focus">True</property>
+								  <property name="label" translatable="yes">Confirm before removing tracks from the iPod or repository</property>
+								  <property name="use_underline">True</property>
+								  <property name="relief">GTK_RELIEF_NORMAL</property>
+								  <property name="focus_on_click">True</property>
+								  <property name="active">False</property>
+								  <property name="inconsistent">False</property>
+								  <property name="draw_indicator">True</property>
+								</widget>
+								<packing>
+								  <property name="padding">0</property>
+								  <property name="expand">False</property>
+								  <property name="fill">False</property>
+								</packing>
+							      </child>
+
+							      <child>
+								<widget class="GtkCheckButton" id="playlist_sync_show_summary_toggle">
+								  <property name="visible">True</property>
+								  <property name="tooltip" translatable="yes">Will show a list of tracks removed and a list of tracks newly added or updated.</property>
+								  <property name="can_focus">True</property>
+								  <property name="label" translatable="yes">Show summary of sync result</property>
+								  <property name="use_underline">True</property>
+								  <property name="relief">GTK_RELIEF_NORMAL</property>
+								  <property name="focus_on_click">True</property>
+								  <property name="active">False</property>
+								  <property name="inconsistent">False</property>
+								  <property name="draw_indicator">True</property>
+								</widget>
+								<packing>
+								  <property name="padding">0</property>
+								  <property name="expand">False</property>
+								  <property name="fill">False</property>
+								</packing>
+							      </child>
+							    </widget>
+							    <packing>
+							      <property name="padding">0</property>
+							      <property name="expand">True</property>
+							      <property name="fill">True</property>
+							    </packing>
+							  </child>
+							</widget>
+							<packing>
+							  <property name="padding">4</property>
+							  <property name="expand">True</property>
+							  <property name="fill">True</property>
+							</packing>
+						      </child>
+						    </widget>
+						    <packing>
+						      <property name="padding">0</property>
+						      <property name="expand">False</property>
+						      <property name="fill">False</property>
+						    </packing>
+						  </child>
+
+						  <child>
+						    <widget class="GtkVBox" id="spl_vbox">
+						      <property name="visible">True</property>
+						      <property name="homogeneous">False</property>
+						      <property name="spacing">8</property>
+
+						      <child>
+							<widget class="GtkCheckButton" id="spl_live_update_toggle">
+							  <property name="visible">True</property>
+							  <property name="can_focus">True</property>
+							  <property name="label" translatable="yes">On startup automatically update (Live Playlist)</property>
+							  <property name="use_underline">True</property>
+							  <property name="relief">GTK_RELIEF_NORMAL</property>
+							  <property name="focus_on_click">True</property>
+							  <property name="active">False</property>
+							  <property name="inconsistent">False</property>
+							  <property name="draw_indicator">True</property>
+							</widget>
+							<packing>
+							  <property name="padding">0</property>
+							  <property name="expand">False</property>
+							  <property name="fill">False</property>
+							</packing>
+						      </child>
+
+						      <child>
+							<placeholder/>
+						      </child>
+						    </widget>
+						    <packing>
+						      <property name="padding">0</property>
+						      <property name="expand">False</property>
+						      <property name="fill">False</property>
+						    </packing>
+						  </child>
+
+						  <child>
+						    <widget class="GtkButton" id="update_playlist_button">
+						      <property name="visible">True</property>
+						      <property name="can_focus">True</property>
+						      <property name="label" translatable="yes">Update/Sync playlist now</property>
+						      <property name="use_underline">True</property>
+						      <property name="relief">GTK_RELIEF_NORMAL</property>
+						      <property name="focus_on_click">True</property>
+						    </widget>
+						    <packing>
+						      <property name="padding">0</property>
+						      <property name="expand">False</property>
+						      <property name="fill">False</property>
+						    </packing>
+						  </child>
+
+						  <child>
+						    <placeholder/>
+						  </child>
+
+						  <child>
+						    <placeholder/>
+						  </child>
+						</widget>
+						<packing>
+						  <property name="padding">0</property>
+						  <property name="expand">True</property>
+						  <property name="fill">True</property>
+						</packing>
+					      </child>
+					    </widget>
+					    <packing>
+					      <property name="padding">0</property>
+					      <property name="expand">True</property>
+					      <property name="fill">True</property>
+					    </packing>
+					  </child>
+
+					  <child>
+					    <placeholder/>
+					  </child>
+					</widget>
+				      </child>
+				    </widget>
+				  </child>
+				</widget>
+			      </child>
+
+			      <child>
+				<widget class="GtkLabel" id="label424">
+				  <property name="visible">True</property>
+				  <property name="label" translatable="yes">&lt;b&gt;Playlists&lt;/b&gt;</property>
+				  <property name="use_underline">False</property>
+				  <property name="use_markup">True</property>
+				  <property name="justify">GTK_JUSTIFY_LEFT</property>
+				  <property name="wrap">False</property>
+				  <property name="selectable">False</property>
+				  <property name="xalign">0.5</property>
+				  <property name="yalign">0.5</property>
+				  <property name="xpad">0</property>
+				  <property name="ypad">0</property>
+				  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+				  <property name="width_chars">-1</property>
+				  <property name="single_line_mode">False</property>
+				  <property name="angle">0</property>
+				</widget>
+				<packing>
+				  <property name="type">label_item</property>
+				</packing>
+			      </child>
+			    </widget>
+			    <packing>
+			      <property name="padding">0</property>
+			      <property name="expand">False</property>
+			      <property name="fill">True</property>
+			    </packing>
+			  </child>
+			</widget>
+			<packing>
+			  <property name="padding">0</property>
+			  <property name="expand">True</property>
+			  <property name="fill">True</property>
+			</packing>
+		      </child>
+		    </widget>
+		    <packing>
+		      <property name="padding">0</property>
+		      <property name="expand">False</property>
+		      <property name="fill">True</property>
+		    </packing>
+		  </child>
+		</widget>
+	      </child>
+	    </widget>
+	  </child>
+	</widget>
+	<packing>
+	  <property name="padding">0</property>
+	  <property name="expand">True</property>
+	  <property name="fill">True</property>
+	</packing>
+      </child>
+
+      <child>
+	<widget class="GtkHSeparator" id="hseparator57">
+	  <property name="visible">True</property>
+	</widget>
+	<packing>
+	  <property name="padding">2</property>
+	  <property name="expand">False</property>
+	  <property name="fill">False</property>
+	</packing>
+      </child>
+
+      <child>
+	<widget class="GtkHButtonBox" id="hbuttonbox15">
+	  <property name="visible">True</property>
+	  <property name="layout_style">GTK_BUTTONBOX_END</property>
+	  <property name="spacing">7</property>
+
+	  <child>
+	    <widget class="GtkButton" id="apply_button">
+	      <property name="visible">True</property>
+	      <property name="can_default">True</property>
+	      <property name="can_focus">True</property>
+	      <property name="label">gtk-apply</property>
+	      <property name="use_stock">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	    </widget>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="cancel_button">
+	      <property name="visible">True</property>
+	      <property name="can_default">True</property>
+	      <property name="can_focus">True</property>
+	      <property name="label">gtk-cancel</property>
+	      <property name="use_stock">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	    </widget>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="ok_button">
+	      <property name="visible">True</property>
+	      <property name="can_default">True</property>
+	      <property name="can_focus">True</property>
+	      <property name="label">gtk-ok</property>
+	      <property name="use_stock">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	    </widget>
+	  </child>
+	</widget>
+	<packing>
+	  <property name="padding">0</property>
+	  <property name="expand">False</property>
+	  <property name="fill">True</property>
+	</packing>
+      </child>
+    </widget>
+  </child>
+</widget>
+
+<widget class="GtkWindow" id="create_repository_window">
+  <property name="visible">True</property>
+  <property name="title" translatable="yes">Create Repository</property>
+  <property name="type">GTK_WINDOW_TOPLEVEL</property>
+  <property name="window_position">GTK_WIN_POS_NONE</property>
+  <property name="modal">True</property>
+  <property name="resizable">True</property>
+  <property name="destroy_with_parent">False</property>
+  <property name="decorated">True</property>
+  <property name="skip_taskbar_hint">False</property>
+  <property name="skip_pager_hint">False</property>
+  <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
+  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
+  <property name="urgency_hint">False</property>
+
+  <child>
+    <widget class="GtkVBox" id="vbox170">
+      <property name="border_width">6</property>
+      <property name="visible">True</property>
+      <property name="homogeneous">False</property>
+      <property name="spacing">4</property>
+
+      <child>
+	<placeholder/>
+      </child>
+
+      <child>
+	<widget class="GtkTable" id="table46">
+	  <property name="visible">True</property>
+	  <property name="n_rows">7</property>
+	  <property name="n_columns">3</property>
+	  <property name="homogeneous">False</property>
+	  <property name="row_spacing">0</property>
+	  <property name="column_spacing">0</property>
+
+	  <child>
+	    <widget class="GtkLabel" id="local_path_label">
+	      <property name="visible">True</property>
+	      <property name="label" translatable="yes">Path:</property>
+	      <property name="use_underline">False</property>
+	      <property name="use_markup">False</property>
+	      <property name="justify">GTK_JUSTIFY_LEFT</property>
+	      <property name="wrap">False</property>
+	      <property name="selectable">False</property>
+	      <property name="xalign">0</property>
+	      <property name="yalign">0.5</property>
+	      <property name="xpad">10</property>
+	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">0</property>
+	      <property name="right_attach">1</property>
+	      <property name="top_attach">5</property>
+	      <property name="bottom_attach">6</property>
+	      <property name="x_options">fill</property>
+	      <property name="y_options">fill</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkLabel" id="ipod_model_label">
+	      <property name="visible">True</property>
+	      <property name="label" translatable="yes">Model:</property>
+	      <property name="use_underline">False</property>
+	      <property name="use_markup">False</property>
+	      <property name="justify">GTK_JUSTIFY_LEFT</property>
+	      <property name="wrap">False</property>
+	      <property name="selectable">False</property>
+	      <property name="xalign">0</property>
+	      <property name="yalign">0.5</property>
+	      <property name="xpad">10</property>
+	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">0</property>
+	      <property name="right_attach">1</property>
+	      <property name="top_attach">4</property>
+	      <property name="bottom_attach">5</property>
+	      <property name="x_options">fill</property>
+	      <property name="y_options">fill</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkLabel" id="backup_label">
+	      <property name="visible">True</property>
+	      <property name="label" translatable="yes">iTunesDB backup:</property>
+	      <property name="use_underline">False</property>
+	      <property name="use_markup">False</property>
+	      <property name="justify">GTK_JUSTIFY_LEFT</property>
+	      <property name="wrap">False</property>
+	      <property name="selectable">False</property>
+	      <property name="xalign">0</property>
+	      <property name="yalign">0.5</property>
+	      <property name="xpad">10</property>
+	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">0</property>
+	      <property name="right_attach">1</property>
+	      <property name="top_attach">3</property>
+	      <property name="bottom_attach">4</property>
+	      <property name="x_options">fill</property>
+	      <property name="y_options">fill</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkLabel" id="mountpoint_label">
+	      <property name="visible">True</property>
+	      <property name="label" translatable="yes">iPod mountpoint:</property>
+	      <property name="use_underline">False</property>
+	      <property name="use_markup">False</property>
+	      <property name="justify">GTK_JUSTIFY_LEFT</property>
+	      <property name="wrap">False</property>
+	      <property name="selectable">False</property>
+	      <property name="xalign">0</property>
+	      <property name="yalign">0.5</property>
+	      <property name="xpad">10</property>
+	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">0</property>
+	      <property name="right_attach">1</property>
+	      <property name="top_attach">2</property>
+	      <property name="bottom_attach">3</property>
+	      <property name="x_options">fill</property>
+	      <property name="y_options">fill</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkEntry" id="local_path_entry">
+	      <property name="visible">True</property>
+	      <property name="can_focus">True</property>
+	      <property name="editable">False</property>
+	      <property name="visibility">True</property>
+	      <property name="max_length">0</property>
+	      <property name="text" translatable="yes"></property>
+	      <property name="has_frame">True</property>
+	      <property name="invisible_char">*</property>
+	      <property name="activates_default">False</property>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">1</property>
+	      <property name="right_attach">2</property>
+	      <property name="top_attach">5</property>
+	      <property name="bottom_attach">6</property>
+	      <property name="x_padding">3</property>
+	      <property name="y_padding">3</property>
+	      <property name="y_options"></property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkEntry" id="backup_entry">
+	      <property name="visible">True</property>
+	      <property name="can_focus">True</property>
+	      <property name="editable">False</property>
+	      <property name="visibility">True</property>
+	      <property name="max_length">0</property>
+	      <property name="text" translatable="yes"></property>
+	      <property name="has_frame">True</property>
+	      <property name="invisible_char">*</property>
+	      <property name="activates_default">False</property>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">1</property>
+	      <property name="right_attach">2</property>
+	      <property name="top_attach">3</property>
+	      <property name="bottom_attach">4</property>
+	      <property name="x_padding">3</property>
+	      <property name="y_padding">3</property>
+	      <property name="y_options"></property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="mountpoint_button">
+	      <property name="visible">True</property>
+	      <property name="can_focus">True</property>
+	      <property name="label" translatable="yes">Browse</property>
+	      <property name="use_underline">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">2</property>
+	      <property name="right_attach">3</property>
+	      <property name="top_attach">2</property>
+	      <property name="bottom_attach">3</property>
+	      <property name="x_padding">3</property>
+	      <property name="x_options">fill</property>
+	      <property name="y_options"></property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkEntry" id="mountpoint_entry">
+	      <property name="visible">True</property>
+	      <property name="can_focus">True</property>
+	      <property name="editable">True</property>
+	      <property name="visibility">True</property>
+	      <property name="max_length">0</property>
+	      <property name="text" translatable="yes"></property>
+	      <property name="has_frame">True</property>
+	      <property name="invisible_char">*</property>
+	      <property name="activates_default">False</property>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">1</property>
+	      <property name="right_attach">2</property>
+	      <property name="top_attach">2</property>
+	      <property name="bottom_attach">3</property>
+	      <property name="x_padding">3</property>
+	      <property name="y_padding">3</property>
+	      <property name="y_options"></property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="backup_button">
+	      <property name="visible">True</property>
+	      <property name="can_focus">True</property>
+	      <property name="label" translatable="yes">Browse</property>
+	      <property name="use_underline">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">2</property>
+	      <property name="right_attach">3</property>
+	      <property name="top_attach">3</property>
+	      <property name="bottom_attach">4</property>
+	      <property name="x_padding">3</property>
+	      <property name="x_options">fill</property>
+	      <property name="y_options"></property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="local_path_button">
+	      <property name="visible">True</property>
+	      <property name="can_focus">True</property>
+	      <property name="label" translatable="yes">Browse</property>
+	      <property name="use_underline">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">2</property>
+	      <property name="right_attach">3</property>
+	      <property name="top_attach">5</property>
+	      <property name="bottom_attach">6</property>
+	      <property name="x_padding">3</property>
+	      <property name="x_options">fill</property>
+	      <property name="y_options"></property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkComboBox" id="insert_before_after_combo">
+	      <property name="visible">True</property>
+	      <property name="items" translatable="yes">Insert before
+Insert after</property>
+	      <property name="add_tearoffs">False</property>
+	      <property name="focus_on_click">True</property>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">0</property>
+	      <property name="right_attach">1</property>
+	      <property name="top_attach">6</property>
+	      <property name="bottom_attach">7</property>
+	      <property name="x_padding">3</property>
+	      <property name="y_padding">3</property>
+	      <property name="x_options">fill</property>
+	      <property name="y_options">fill</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkComboBox" id="repository_combo">
+	      <property name="visible">True</property>
+	      <property name="add_tearoffs">False</property>
+	      <property name="focus_on_click">True</property>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">1</property>
+	      <property name="right_attach">2</property>
+	      <property name="top_attach">6</property>
+	      <property name="bottom_attach">7</property>
+	      <property name="x_padding">3</property>
+	      <property name="y_padding">3</property>
+	      <property name="x_options">fill</property>
+	      <property name="y_options">fill</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkLabel" id="repository_type_label">
+	      <property name="visible">True</property>
+	      <property name="label" translatable="yes">Repository type:</property>
+	      <property name="use_underline">False</property>
+	      <property name="use_markup">False</property>
+	      <property name="justify">GTK_JUSTIFY_LEFT</property>
+	      <property name="wrap">False</property>
+	      <property name="selectable">False</property>
+	      <property name="xalign">0</property>
+	      <property name="yalign">0.5</property>
+	      <property name="xpad">10</property>
+	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">0</property>
+	      <property name="right_attach">1</property>
+	      <property name="top_attach">0</property>
+	      <property name="bottom_attach">1</property>
+	      <property name="x_options">fill</property>
+	      <property name="y_options"></property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkComboBox" id="repository_type_combo">
+	      <property name="visible">True</property>
+	      <property name="items" translatable="yes" comments="These are the items for the 'Repository type' combo in the 'Create Repository' dialog. Keep the three items in order!">iPod
+Local Repository (Standard)
+Local Repository (Podcasts)
+</property>
+	      <property name="add_tearoffs">False</property>
+	      <property name="focus_on_click">True</property>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">1</property>
+	      <property name="right_attach">2</property>
+	      <property name="top_attach">0</property>
+	      <property name="bottom_attach">1</property>
+	      <property name="x_padding">3</property>
+	      <property name="x_options">fill</property>
+	      <property name="y_options">fill</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkLabel" id="repository_name_label">
+	      <property name="visible">True</property>
+	      <property name="label" translatable="yes">Repository name:</property>
+	      <property name="use_underline">False</property>
+	      <property name="use_markup">False</property>
+	      <property name="justify">GTK_JUSTIFY_LEFT</property>
+	      <property name="wrap">False</property>
+	      <property name="selectable">False</property>
+	      <property name="xalign">0</property>
+	      <property name="yalign">0.5</property>
+	      <property name="xpad">10</property>
+	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">0</property>
+	      <property name="right_attach">1</property>
+	      <property name="top_attach">1</property>
+	      <property name="bottom_attach">2</property>
+	      <property name="x_options">fill</property>
+	      <property name="y_options"></property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkEntry" id="repository_name_entry">
+	      <property name="visible">True</property>
+	      <property name="tooltip" translatable="yes">Specify exact path including command line options. '%i' will be replaced with the mount point of the iPod.</property>
+	      <property name="can_focus">True</property>
+	      <property name="editable">True</property>
+	      <property name="visibility">True</property>
+	      <property name="max_length">0</property>
+	      <property name="text" translatable="yes"></property>
+	      <property name="has_frame">True</property>
+	      <property name="invisible_char">*</property>
+	      <property name="activates_default">False</property>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">1</property>
+	      <property name="right_attach">2</property>
+	      <property name="top_attach">1</property>
+	      <property name="bottom_attach">2</property>
+	      <property name="x_padding">3</property>
+	      <property name="y_padding">3</property>
+	      <property name="y_options"></property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkComboBoxEntry" id="ipod_model_combo">
+	      <property name="visible">True</property>
+	      <property name="add_tearoffs">False</property>
+	      <property name="has_frame">True</property>
+	      <property name="focus_on_click">True</property>
+	    </widget>
+	    <packing>
+	      <property name="left_attach">1</property>
+	      <property name="right_attach">2</property>
+	      <property name="top_attach">4</property>
+	      <property name="bottom_attach">5</property>
+	      <property name="x_padding">3</property>
+	      <property name="y_padding">3</property>
+	      <property name="x_options">fill</property>
+	      <property name="y_options">fill</property>
+	    </packing>
+	  </child>
+	</widget>
+	<packing>
+	  <property name="padding">0</property>
+	  <property name="expand">True</property>
+	  <property name="fill">True</property>
+	</packing>
+      </child>
+
+      <child>
+	<placeholder/>
+      </child>
+
+      <child>
+	<placeholder/>
+      </child>
+
+      <child>
+	<widget class="GtkHSeparator" id="hseparator58">
+	  <property name="visible">True</property>
+	</widget>
+	<packing>
+	  <property name="padding">2</property>
+	  <property name="expand">False</property>
+	  <property name="fill">False</property>
+	</packing>
+      </child>
+
+      <child>
+	<widget class="GtkHButtonBox" id="hbuttonbox16">
+	  <property name="visible">True</property>
+	  <property name="layout_style">GTK_BUTTONBOX_END</property>
+	  <property name="spacing">7</property>
+
+	  <child>
+	    <widget class="GtkButton" id="cancel_button">
+	      <property name="visible">True</property>
+	      <property name="can_default">True</property>
+	      <property name="can_focus">True</property>
+	      <property name="label">gtk-cancel</property>
+	      <property name="use_stock">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	    </widget>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="ok_button">
+	      <property name="visible">True</property>
+	      <property name="can_default">True</property>
+	      <property name="can_focus">True</property>
+	      <property name="label">gtk-ok</property>
+	      <property name="use_stock">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	    </widget>
+	  </child>
+	</widget>
+	<packing>
+	  <property name="padding">0</property>
+	  <property name="expand">False</property>
+	  <property name="fill">False</property>
+	</packing>
+      </child>
+    </widget>
+  </child>
+</widget>
+
+<widget class="GtkDialog" id="ipod_init_dialog">
+  <property name="visible">True</property>
+  <property name="title" translatable="yes">Initialize iPod</property>
+  <property name="type">GTK_WINDOW_TOPLEVEL</property>
+  <property name="window_position">GTK_WIN_POS_NONE</property>
+  <property name="modal">False</property>
+  <property name="resizable">True</property>
+  <property name="destroy_with_parent">False</property>
+  <property name="decorated">True</property>
+  <property name="skip_taskbar_hint">False</property>
+  <property name="skip_pager_hint">False</property>
+  <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
+  <property name="urgency_hint">False</property>
+  <property name="has_separator">True</property>
+
+  <child internal-child="vbox">
+    <widget class="GtkVBox" id="dialog-vbox2">
+      <property name="visible">True</property>
+      <property name="homogeneous">False</property>
+      <property name="spacing">0</property>
+
+      <child internal-child="action_area">
+	<widget class="GtkHButtonBox" id="dialog-action_area2">
+	  <property name="visible">True</property>
+	  <property name="layout_style">GTK_BUTTONBOX_END</property>
+
+	  <child>
+	    <widget class="GtkButton" id="cancelbutton1">
+	      <property name="visible">True</property>
+	      <property name="can_default">True</property>
+	      <property name="can_focus">True</property>
+	      <property name="label">gtk-cancel</property>
+	      <property name="use_stock">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <property name="response_id">-6</property>
+	    </widget>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="okbutton1">
+	      <property name="visible">True</property>
+	      <property name="can_default">True</property>
+	      <property name="can_focus">True</property>
+	      <property name="label">gtk-ok</property>
+	      <property name="use_stock">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <property name="response_id">-5</property>
+	    </widget>
+	  </child>
+	</widget>
+	<packing>
+	  <property name="padding">0</property>
+	  <property name="expand">False</property>
+	  <property name="fill">True</property>
+	  <property name="pack_type">GTK_PACK_END</property>
+	</packing>
+      </child>
+
+      <child>
+	<widget class="GtkVBox" id="vbox172">
+	  <property name="border_width">5</property>
+	  <property name="visible">True</property>
+	  <property name="homogeneous">False</property>
+	  <property name="spacing">0</property>
+
+	  <child>
+	    <widget class="GtkLabel" id="ipod_init_label">
+	      <property name="visible">True</property>
+	      <property name="label" translatable="yes">&lt;b&gt;Please select mountpoint and your iPod model&lt;/b&gt;</property>
+	      <property name="use_underline">False</property>
+	      <property name="use_markup">True</property>
+	      <property name="justify">GTK_JUSTIFY_LEFT</property>
+	      <property name="wrap">False</property>
+	      <property name="selectable">False</property>
+	      <property name="xalign">0.5</property>
+	      <property name="yalign">0.5</property>
+	      <property name="xpad">0</property>
+	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
+	    </widget>
+	    <packing>
+	      <property name="padding">5</property>
+	      <property name="expand">False</property>
+	      <property name="fill">False</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkViewport" id="viewport22">
+	      <property name="visible">True</property>
+	      <property name="shadow_type">GTK_SHADOW_IN</property>
+
+	      <child>
+		<widget class="GtkVBox" id="vbox173">
+		  <property name="border_width">6</property>
+		  <property name="visible">True</property>
+		  <property name="homogeneous">False</property>
+		  <property name="spacing">4</property>
+
+		  <child>
+		    <widget class="GtkTable" id="table48">
+		      <property name="visible">True</property>
+		      <property name="n_rows">2</property>
+		      <property name="n_columns">3</property>
+		      <property name="homogeneous">False</property>
+		      <property name="row_spacing">0</property>
+		      <property name="column_spacing">0</property>
+
+		      <child>
+			<widget class="GtkLabel" id="label428">
+			  <property name="visible">True</property>
+			  <property name="label" translatable="yes">iPod mountpoint:</property>
+			  <property name="use_underline">False</property>
+			  <property name="use_markup">False</property>
+			  <property name="justify">GTK_JUSTIFY_LEFT</property>
+			  <property name="wrap">False</property>
+			  <property name="selectable">False</property>
+			  <property name="xalign">0</property>
+			  <property name="yalign">0.5</property>
+			  <property name="xpad">10</property>
+			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
+			</widget>
+			<packing>
+			  <property name="left_attach">0</property>
+			  <property name="right_attach">1</property>
+			  <property name="top_attach">0</property>
+			  <property name="bottom_attach">1</property>
+			  <property name="x_options">fill</property>
+			  <property name="y_options">fill</property>
+			</packing>
+		      </child>
+
+		      <child>
+			<widget class="GtkEntry" id="mountpoint_entry">
+			  <property name="visible">True</property>
+			  <property name="can_focus">True</property>
+			  <property name="editable">True</property>
+			  <property name="visibility">True</property>
+			  <property name="max_length">0</property>
+			  <property name="text" translatable="yes"></property>
+			  <property name="has_frame">True</property>
+			  <property name="invisible_char">*</property>
+			  <property name="activates_default">False</property>
+			</widget>
+			<packing>
+			  <property name="left_attach">1</property>
+			  <property name="right_attach">2</property>
+			  <property name="top_attach">0</property>
+			  <property name="bottom_attach">1</property>
+			  <property name="x_padding">3</property>
+			  <property name="y_padding">3</property>
+			  <property name="y_options"></property>
+			</packing>
+		      </child>
+
+		      <child>
+			<widget class="GtkButton" id="mountpoint_button">
+			  <property name="visible">True</property>
+			  <property name="can_focus">True</property>
+			  <property name="label" translatable="yes">Browse</property>
+			  <property name="use_underline">True</property>
+			  <property name="relief">GTK_RELIEF_NORMAL</property>
+			  <property name="focus_on_click">True</property>
+			</widget>
+			<packing>
+			  <property name="left_attach">2</property>
+			  <property name="right_attach">3</property>
+			  <property name="top_attach">0</property>
+			  <property name="bottom_attach">1</property>
+			  <property name="x_padding">3</property>
+			  <property name="x_options">fill</property>
+			  <property name="y_options"></property>
+			</packing>
+		      </child>
+
+		      <child>
+			<widget class="GtkLabel" id="label430">
+			  <property name="visible">True</property>
+			  <property name="label" translatable="yes">Model:</property>
+			  <property name="use_underline">False</property>
+			  <property name="use_markup">False</property>
+			  <property name="justify">GTK_JUSTIFY_LEFT</property>
+			  <property name="wrap">False</property>
+			  <property name="selectable">False</property>
+			  <property name="xalign">0</property>
+			  <property name="yalign">0.5</property>
+			  <property name="xpad">10</property>
+			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
+			</widget>
+			<packing>
+			  <property name="left_attach">0</property>
+			  <property name="right_attach">1</property>
+			  <property name="top_attach">1</property>
+			  <property name="bottom_attach">2</property>
+			  <property name="x_options">fill</property>
+			  <property name="y_options">fill</property>
+			</packing>
+		      </child>
+
+		      <child>
+			<widget class="GtkComboBoxEntry" id="model_combo">
+			  <property name="visible">True</property>
+			  <property name="add_tearoffs">False</property>
+			  <property name="has_frame">True</property>
+			  <property name="focus_on_click">True</property>
+			</widget>
+			<packing>
+			  <property name="left_attach">1</property>
+			  <property name="right_attach">3</property>
+			  <property name="top_attach">1</property>
+			  <property name="bottom_attach">2</property>
+			  <property name="x_padding">3</property>
+			  <property name="y_padding">3</property>
+			  <property name="x_options">fill</property>
+			  <property name="y_options">fill</property>
+			</packing>
+		      </child>
+		    </widget>
+		    <packing>
+		      <property name="padding">6</property>
+		      <property name="expand">False</property>
+		      <property name="fill">False</property>
+		    </packing>
+		  </child>
+
+		  <child>
+		    <placeholder/>
+		  </child>
+		</widget>
+	      </child>
+	    </widget>
+	    <packing>
+	      <property name="padding">0</property>
+	      <property name="expand">True</property>
+	      <property name="fill">True</property>
+	    </packing>
+	  </child>
+	</widget>
+	<packing>
+	  <property name="padding">0</property>
+	  <property name="expand">True</property>
+	  <property name="fill">True</property>
+	</packing>
+      </child>
+    </widget>
+  </child>
+</widget>
+
+<widget class="GtkDialog" id="set_ipod_model_dialog">
+  <property name="visible">True</property>
+  <property name="title" translatable="yes">Initialize iPod</property>
+  <property name="type">GTK_WINDOW_TOPLEVEL</property>
+  <property name="window_position">GTK_WIN_POS_NONE</property>
+  <property name="modal">False</property>
+  <property name="resizable">True</property>
+  <property name="destroy_with_parent">False</property>
+  <property name="decorated">True</property>
+  <property name="skip_taskbar_hint">False</property>
+  <property name="skip_pager_hint">False</property>
+  <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
+  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
+  <property name="focus_on_map">True</property>
+  <property name="urgency_hint">False</property>
+  <property name="has_separator">True</property>
+
+  <child internal-child="vbox">
+    <widget class="GtkVBox" id="dialog-vbox2">
+      <property name="visible">True</property>
+      <property name="homogeneous">False</property>
+      <property name="spacing">0</property>
+
+      <child internal-child="action_area">
+	<widget class="GtkHButtonBox" id="dialog-action_area2">
+	  <property name="visible">True</property>
+	  <property name="layout_style">GTK_BUTTONBOX_END</property>
+
+	  <child>
+	    <widget class="GtkButton" id="cancelbutton1">
+	      <property name="visible">True</property>
+	      <property name="can_default">True</property>
+	      <property name="can_focus">True</property>
+	      <property name="label">gtk-cancel</property>
+	      <property name="use_stock">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <property name="response_id">-6</property>
+	    </widget>
+	  </child>
+
+	  <child>
+	    <widget class="GtkButton" id="okbutton1">
+	      <property name="visible">True</property>
+	      <property name="can_default">True</property>
+	      <property name="can_focus">True</property>
+	      <property name="label">gtk-ok</property>
+	      <property name="use_stock">True</property>
+	      <property name="relief">GTK_RELIEF_NORMAL</property>
+	      <property name="focus_on_click">True</property>
+	      <property name="response_id">-5</property>
+	    </widget>
+	  </child>
+	</widget>
+	<packing>
+	  <property name="padding">0</property>
+	  <property name="expand">False</property>
+	  <property name="fill">True</property>
+	  <property name="pack_type">GTK_PACK_END</property>
+	</packing>
+      </child>
+
+      <child>
+	<widget class="GtkVBox" id="vbox172">
+	  <property name="border_width">5</property>
+	  <property name="visible">True</property>
+	  <property name="homogeneous">False</property>
+	  <property name="spacing">0</property>
+
+	  <child>
+	    <widget class="GtkLabel" id="label">
+	      <property name="visible">True</property>
+	      <property name="label">label set by application</property>
+	      <property name="use_underline">False</property>
+	      <property name="use_markup">True</property>
+	      <property name="justify">GTK_JUSTIFY_LEFT</property>
+	      <property name="wrap">True</property>
+	      <property name="selectable">False</property>
+	      <property name="xalign">0.5</property>
+	      <property name="yalign">0.5</property>
+	      <property name="xpad">0</property>
+	      <property name="ypad">0</property>
+	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+	      <property name="width_chars">-1</property>
+	      <property name="single_line_mode">False</property>
+	      <property name="angle">0</property>
+	    </widget>
+	    <packing>
+	      <property name="padding">5</property>
+	      <property name="expand">False</property>
+	      <property name="fill">False</property>
+	    </packing>
+	  </child>
+
+	  <child>
+	    <widget class="GtkViewport" id="viewport22">
+	      <property name="visible">True</property>
+	      <property name="shadow_type">GTK_SHADOW_IN</property>
+
+	      <child>
+		<widget class="GtkVBox" id="vbox173">
+		  <property name="border_width">6</property>
+		  <property name="visible">True</property>
+		  <property name="homogeneous">False</property>
+		  <property name="spacing">4</property>
+
+		  <child>
+		    <widget class="GtkTable" id="table48">
+		      <property name="visible">True</property>
+		      <property name="n_rows">2</property>
+		      <property name="n_columns">3</property>
+		      <property name="homogeneous">False</property>
+		      <property name="row_spacing">0</property>
+		      <property name="column_spacing">0</property>
+
+		      <child>
+			<widget class="GtkLabel" id="label430">
+			  <property name="visible">True</property>
+			  <property name="label" translatable="yes">Model:</property>
+			  <property name="use_underline">False</property>
+			  <property name="use_markup">False</property>
+			  <property name="justify">GTK_JUSTIFY_LEFT</property>
+			  <property name="wrap">False</property>
+			  <property name="selectable">False</property>
+			  <property name="xalign">0</property>
+			  <property name="yalign">0.5</property>
+			  <property name="xpad">10</property>
+			  <property name="ypad">0</property>
+			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+			  <property name="width_chars">-1</property>
+			  <property name="single_line_mode">False</property>
+			  <property name="angle">0</property>
+			</widget>
+			<packing>
+			  <property name="left_attach">0</property>
+			  <property name="right_attach">1</property>
+			  <property name="top_attach">1</property>
+			  <property name="bottom_attach">2</property>
+			  <property name="x_options">fill</property>
+			  <property name="y_options">fill</property>
+			</packing>
+		      </child>
+
+		      <child>
+			<widget class="GtkComboBoxEntry" id="model_combo">
+			  <property name="width_request">250</property>
+			  <property name="visible">True</property>
+			  <property name="add_tearoffs">False</property>
+			  <property name="has_frame">True</property>
+			  <property name="focus_on_click">True</property>
+			</widget>
+			<packing>
+			  <property name="left_attach">1</property>
+			  <property name="right_attach">3</property>
+			  <property name="top_attach">1</property>
+			  <property name="bottom_attach">2</property>
+			  <property name="x_padding">3</property>
+			  <property name="y_padding">3</property>
+			  <property name="y_options">fill</property>
+			</packing>
+		      </child>
+		    </widget>
+		    <packing>
+		      <property name="padding">6</property>
+		      <property name="expand">False</property>
+		      <property name="fill">False</property>
+		    </packing>
+		  </child>
+
+		  <child>
+		    <placeholder/>
+		  </child>
+		</widget>
+	      </child>
+	    </widget>
+	    <packing>
+	      <property name="padding">0</property>
+	      <property name="expand">True</property>
+	      <property name="fill">True</property>
+	    </packing>
+	  </child>
+	</widget>
+	<packing>
+	  <property name="padding">0</property>
+	  <property name="expand">True</property>
+	  <property name="fill">True</property>
+	</packing>
+      </child>
+    </widget>
+  </child>
+</widget>
+
 </glade-interface>

Modified: gtkpod/branches/upstream/current/po/POTFILES.in
===================================================================
--- gtkpod/branches/upstream/current/po/POTFILES.in	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/po/POTFILES.in	2006-09-30 00:00:17 UTC (rev 139)
@@ -1,11 +1,15 @@
-# List of source files containing translatable strings.
+# List of source files containing translatable strings (output of
+# ls src/*.[cl] gtkpod.glade)
 
+gtkpod.glade
 src/charset.c
 src/clientserver.c
 src/confirmation.c
 src/context_menus.c
+#src/date_parser2.c
+src/date_parser2.l
+#src/date_parser.c
 src/date_parser.l
-src/date_parser2.l
 src/details.c
 src/display.c
 src/display_itdb.c
@@ -30,8 +34,11 @@
 src/misc_track.c
 src/mp3file.c
 src/mp4file.c
+#src/podcast.c
 src/prefs.c
 src/prefs_window.c
+src/repository.c
+src/support.c
+src/syncdir.c
 src/tools.c
 src/wavfile.c
-gtkpod.glade

Modified: gtkpod/branches/upstream/current/po/de.gmo
===================================================================
(Binary files differ)

Modified: gtkpod/branches/upstream/current/po/de.po
===================================================================
--- gtkpod/branches/upstream/current/po/de.po	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/po/de.po	2006-09-30 00:00:17 UTC (rev 139)
@@ -7,8 +7,8 @@
 msgstr ""
 "Project-Id-Version: gtkpod 0.52\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-03-05 23:01+0900\n"
-"PO-Revision-Date: 2005-12-14 23:22+0900\n"
+"POT-Creation-Date: 2006-09-24 23:08+0900\n"
+"PO-Revision-Date: 2006-09-17 16:41+0900\n"
 "Last-Translator: Jörg Schuler <jcsjcs at users.sourceforge.net>\n"
 "Language-Team: none\n"
 "MIME-Version: 1.0\n"
@@ -16,6 +16,1888 @@
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
 
+#: gtkpod.glade:7
+msgid "gtkpod"
+msgstr "gtkpod"
+
+#: gtkpod.glade:40
+msgid "_File"
+msgstr "_Datei"
+
+#: gtkpod.glade:49
+#, fuzzy
+msgid "_Load iPod(s)"
+msgstr "_iPod"
+
+#: gtkpod.glade:69
+msgid "_Save Changes"
+msgstr ""
+
+#: gtkpod.glade:90
+msgid "Add _Files"
+msgstr "_Files hinzufügen"
+
+#: gtkpod.glade:111
+msgid "Add _Directory"
+msgstr "_Verzeichnisse hinzufügen"
+
+#: gtkpod.glade:132
+msgid "Add _Playlist"
+msgstr "_Wiedergabeliste hinzufügen"
+
+#: gtkpod.glade:159
+msgid "_Update Tracks from File"
+msgstr "_Aktualiere Stücke aus der Datei"
+
+#: gtkpod.glade:180 gtkpod.glade:232 gtkpod.glade:311 gtkpod.glade:363
+#: gtkpod.glade:1092 gtkpod.glade:1144 gtkpod.glade:1190
+msgid "Selected _Playlist"
+msgstr "Ausgewählte _Wiedergabeliste"
+
+#: gtkpod.glade:189 gtkpod.glade:241 gtkpod.glade:320 gtkpod.glade:372
+#: gtkpod.glade:1101 gtkpod.glade:1153 gtkpod.glade:1199
+msgid "Selected Tab _Entry"
+msgstr "Ausgewählten _Tab Eintrag"
+
+#: gtkpod.glade:198 gtkpod.glade:250 gtkpod.glade:329 gtkpod.glade:381
+#: gtkpod.glade:498 gtkpod.glade:1110 gtkpod.glade:1162 gtkpod.glade:1208
+msgid "Selected _Tracks"
+msgstr "Ausgewählte _Stücke"
+
+#: gtkpod.glade:211
+msgid "Update _mserv Data from File"
+msgstr "_mserv-Daten aktualisieren"
+
+#: gtkpod.glade:263
+#, fuzzy
+msgid "_Synchronize Playlist"
+msgstr "Alle abgleichen"
+
+#: gtkpod.glade:290
+msgid "_Export Tracks from Database"
+msgstr "Stücke aus der Datenbank _exportieren"
+
+#: gtkpod.glade:342
+msgid "Create _Playlist File"
+msgstr "_Wiedergabelistendatei erstellen"
+
+#: gtkpod.glade:400
+msgid "_Create iPod's Directories"
+msgstr "iPod-_Verzeichnisstruktur erstellen"
+
+#: gtkpod.glade:421
+msgid ""
+"Find orphan files (files with no track info in DB) and dangling tracks "
+"(tracks with no corresponding files on iPOD)"
+msgstr ""
+"Verwaiste Stücke (Stücke, für die kein Eintrag in der iTunesDB erscheint) "
+"und verlorene Stücke (Stücke ohne Datei auf dem iPod) finden"
+
+#: gtkpod.glade:422
+msgid "_Check iPod's Files"
+msgstr "iPod Dateien _überprüfen"
+
+#: gtkpod.glade:450 gtkpod.glade:12687
+msgid "_Edit"
+msgstr "_Bearbeiten"
+
+#: gtkpod.glade:459 src/context_menus.c:480
+#, fuzzy
+msgid "Edit Track Details"
+msgstr "Details editieren"
+
+#: gtkpod.glade:480
+msgid "Tracks in Selected _Playlist"
+msgstr "Stücke in ausgewählter _Wiedergabeliste"
+
+#: gtkpod.glade:489
+msgid "Tracks in Selected Tab _Entry"
+msgstr "Stücke im ausgewählten _Tab Eintrag"
+
+#: gtkpod.glade:511 src/context_menus.c:407
+msgid "Edit Smart Playlist"
+msgstr "Intelligente Wiedergabeliste editieren"
+
+#: gtkpod.glade:520
+msgid "_Delete"
+msgstr "_Löschen"
+
+#: gtkpod.glade:541
+msgid "Selected playlist"
+msgstr "Ausgewählte _Wiedergabeliste"
+
+#: gtkpod.glade:550
+msgid "Selected playlist including tracks from iPod"
+msgstr "Ausgewählte Wiedergabeliste einschließlich der Stücke vom iPod"
+
+#: gtkpod.glade:559
+msgid "Selected playlist including tracks from database"
+msgstr ""
+"Ausgewählte Wiedergabeliste einschließlich der Stücke von der Datenbank"
+
+#: gtkpod.glade:568
+msgid "Selected playlist including tracks from harddisk"
+msgstr ""
+"Ausgewählte Wiedergabeliste einschließlich der Stücke von der Festplatte"
+
+#: gtkpod.glade:583
+msgid "Selected filter tab entry from playlist"
+msgstr "Ausgewählten Filter-Tab von der Wiedergabeliste"
+
+#: gtkpod.glade:592
+msgid "Selected filter tab entry from iPod"
+msgstr "Ausgewählten Filter-Tab vom iPod"
+
+#: gtkpod.glade:601
+msgid "Selected filter tab entry from database"
+msgstr "Ausgewählten Filter-Tab aus der lokalen Datenbank"
+
+#: gtkpod.glade:610
+msgid "Selected filter tab entry from harddisk"
+msgstr "Ausgwählten Filter-Tab von der Festplatte"
+
+#: gtkpod.glade:625
+msgid "Selected tracks from playlist"
+msgstr "Ausgewählte Stücke von der Wiedergabeliste"
+
+#: gtkpod.glade:634
+msgid "Selected tracks from iPod"
+msgstr "Ausgewählte Stücke vom iPod"
+
+#: gtkpod.glade:643
+msgid "Selected tracks from database"
+msgstr "Ausgewählte Stücke von der Datenbank"
+
+#: gtkpod.glade:652
+msgid "Selected tracks from harddisk"
+msgstr "Ausgewählte Stücke von der Festplatte"
+
+#: gtkpod.glade:671
+msgid "_Create Playlists"
+msgstr "_Wiedergabelisten erstellen"
+
+#: gtkpod.glade:692
+msgid "Empty Playlist"
+msgstr "Leere Wiedergabeliste"
+
+#: gtkpod.glade:701 gtkpod.glade:7379 src/misc_playlist.c:97
+#: src/repository.c:1359
+msgid "Smart Playlist"
+msgstr "Intelligente Wiedergabeliste"
+
+#: gtkpod.glade:716
+msgid "Random Playlist from Displayed Tracks"
+msgstr "Zufällig aus den angezeigten Tracks"
+
+#: gtkpod.glade:725
+msgid "Containing Displayed Tracks"
+msgstr "Aus den angezeigten Stücken"
+
+#: gtkpod.glade:734
+msgid "Containing Selected Tracks"
+msgstr "Aus den ausgewählten Stücken"
+
+#: gtkpod.glade:743
+msgid "One for each Artist"
+msgstr "Eine für jeden Künstler"
+
+#: gtkpod.glade:752
+msgid "One for each Album"
+msgstr "Eine für jedes Album"
+
+#: gtkpod.glade:761
+msgid "One for each Genre"
+msgstr "Eine für jedes Genre"
+
+#: gtkpod.glade:770
+msgid "One for each Composer"
+msgstr "Eine für jeden Komponisten"
+
+#: gtkpod.glade:779
+msgid "One for each Year"
+msgstr "Eine für jedes Jahr"
+
+#: gtkpod.glade:788
+msgid "One for each Rating"
+msgstr "Eine für jede Bewertung"
+
+#: gtkpod.glade:797
+msgid "Best Rated Tracks"
+msgstr "Höchstgewertete Stücke"
+
+#: gtkpod.glade:806
+msgid "Tracks Most Often Listened To"
+msgstr "Am häufigsten gehörte Stücke"
+
+#: gtkpod.glade:815
+msgid "Most Recently Played Tracks"
+msgstr "Zuletzt gespielte Stücke"
+
+#: gtkpod.glade:824
+msgid "All Tracks Played Since Last Time"
+msgstr "Seit dem letzten Mal gespielte Stücke"
+
+#: gtkpod.glade:833
+msgid "All Tracks Never Listened To"
+msgstr "Nie gehörte Stücke"
+
+#: gtkpod.glade:842
+msgid "All Tracks not Listed in any Playlist"
+msgstr "In keiner Wiedergabeliste aufgeführte Stücke"
+
+#: gtkpod.glade:861
+msgid "_Sorting"
+msgstr "_Sortierung"
+
+#: gtkpod.glade:883
+msgid "Randomize Current Playlist"
+msgstr "Aktuelle Wiedergabeliste zufällig sortieren"
+
+#: gtkpod.glade:892
+msgid "_Save Displayed Track Order"
+msgstr "_Dargestellte Reihenfolge der Stücke speichern"
+
+#: gtkpod.glade:920
+#, fuzzy
+msgid "Edit Repository/iPod Options"
+msgstr "Sortieroptionen"
+
+#: gtkpod.glade:941
+#, fuzzy
+msgid "Edit _Preferences"
+msgstr "_Einstellungen"
+
+#: gtkpod.glade:967
+msgid "_View"
+msgstr "_Ansicht"
+
+#: gtkpod.glade:976
+msgid "_Toolbar"
+msgstr "_Toolbar"
+
+#: gtkpod.glade:986
+msgid "_Tooltips"
+msgstr "_Tooltips"
+
+#: gtkpod.glade:996
+msgid "_Info Window"
+msgstr "_Info Fenster"
+
+#: gtkpod.glade:1007
+msgid "_More Sort Tabs"
+msgstr "_Mehr Sort Tabs"
+
+#: gtkpod.glade:1028
+msgid "_Less Sort Tabs"
+msgstr "_Weniger Sort Tabs"
+
+#: gtkpod.glade:1049
+msgid "_Arrange Sort Tabs"
+msgstr "Sort Tabs _Anordnen"
+
+#: gtkpod.glade:1062 gtkpod.glade:13297
+msgid "_Tools"
+msgstr "_Werkzeuge"
+
+#: gtkpod.glade:1071
+msgid "_Play Now"
+msgstr "_Jetzt Abspielen"
+
+#: gtkpod.glade:1123
+msgid "_Enqueue"
+msgstr "Zum Abspielen _Vormerken"
+
+#: gtkpod.glade:1181
+msgid "_Normalize Volume"
+msgstr "_Lautstärke normalisieren"
+
+#: gtkpod.glade:1217
+msgid "_Displayed Tracks"
+msgstr "_Angezeigte Stücke"
+
+#: gtkpod.glade:1226
+msgid "_All Tracks"
+msgstr "_Alle Stücke"
+
+#: gtkpod.glade:1235
+msgid "_Newly Added Tracks"
+msgstr "_Neu hinzugefügte Stücke"
+
+#: gtkpod.glade:1254
+msgid "Synchronise Contacts, Calendar and Notes"
+msgstr "Kontakte, Kalender und Notizen abgleichen"
+
+#: gtkpod.glade:1255
+msgid "Synchronize All"
+msgstr "Alle abgleichen"
+
+#: gtkpod.glade:1264
+msgid "Synchronize Contacts"
+msgstr "Kontakte abgleichen"
+
+#: gtkpod.glade:1273
+msgid "Synchronize Calendar"
+msgstr "Kalender abgleichen"
+
+#: gtkpod.glade:1282
+msgid "Synchronize Notes"
+msgstr "Notizen abgleichen"
+
+#: gtkpod.glade:1295
+msgid "_Help"
+msgstr "_Hilfe"
+
+#: gtkpod.glade:1304
+msgid "_About"
+msgstr "_Ãœber"
+
+#: gtkpod.glade:1344
+msgid ""
+"Try to load contents of all connected iPods. For each iPod a separate "
+"repository must be set up."
+msgstr ""
+
+#: gtkpod.glade:1345
+#, fuzzy
+msgid "Load iPod(s)"
+msgstr "_iPod"
+
+#: gtkpod.glade:1362
+msgid "Write all changes made to the disk and the iPod(s)."
+msgstr ""
+
+#: gtkpod.glade:1363 src/context_menus.c:507
+msgid "Save Changes"
+msgstr ""
+
+#: gtkpod.glade:1380
+msgid "Add Files or Directories"
+msgstr "Wählen Sie hinzuzufügende Dateien oder Verzeichnisse aus."
+
+#: gtkpod.glade:1381
+msgid "Files"
+msgstr "Dateien"
+
+#: gtkpod.glade:1398
+msgid "Add Directories Recursively"
+msgstr "Verzeichnisse rekursiv hinzufügen"
+
+#: gtkpod.glade:1399
+msgid "Dirs"
+msgstr "Verzeichnisse"
+
+#: gtkpod.glade:1416
+msgid "Add playlist from file"
+msgstr "Wiedergabeliste aus Datei hinzufügen"
+
+#: gtkpod.glade:1417 src/display_spl.c:105
+msgid "Playlist"
+msgstr "Wiedergabeliste"
+
+#: gtkpod.glade:1434
+msgid "Create New Playlist"
+msgstr "Neue Wiedergabeliste erstellen"
+
+#: gtkpod.glade:1435
+msgid "New PL"
+msgstr "Neue PL"
+
+#: gtkpod.glade:1451
+msgid "Stop Display Update"
+msgstr "Aktualisierung der Anzeige abbrechen"
+
+#: gtkpod.glade:1452
+msgid "Stop"
+msgstr "Stopp"
+
+#: gtkpod.glade:1625
+msgid "About gtkpod"
+msgstr "Ãœber gtkpod"
+
+#: gtkpod.glade:1752
+msgid "Credits"
+msgstr "Danksagung"
+
+#: gtkpod.glade:1810
+msgid "Translators"
+msgstr "Ãœbersetzer"
+
+#: gtkpod.glade:1868
+msgid "special_sorttab -- Don't translate!"
+msgstr "special_sorttab -- Don't translate!\""
+
+#: gtkpod.glade:1903
+msgid " Logic: "
+msgstr "Logik:"
+
+#: gtkpod.glade:1929
+msgid "Any (OR)"
+msgstr "Eines (ODER)"
+
+#: gtkpod.glade:1948
+msgid "All (AND)"
+msgstr "Alle (UND)"
+
+#: gtkpod.glade:2001
+msgid "0"
+msgstr "0"
+
+#: gtkpod.glade:2020
+msgid "1"
+msgstr "1"
+
+#: gtkpod.glade:2039
+msgid "2"
+msgstr "2"
+
+#: gtkpod.glade:2058
+msgid "3"
+msgstr "3"
+
+#: gtkpod.glade:2077
+msgid "4"
+msgstr "4"
+
+#: gtkpod.glade:2096
+msgid "5"
+msgstr "5"
+
+#: gtkpod.glade:2135
+msgid "Select '0' for no lower limit."
+msgstr "'0' wählen für 'keine untere Schranke'."
+
+#: gtkpod.glade:2156
+msgid " <= cts <= "
+msgstr " <= num <= "
+
+#: gtkpod.glade:2181
+msgid "Select '-1' for no upper limit."
+msgstr "'-1' wählen für 'keine obere Schranke'."
+
+#: gtkpod.glade:2224 gtkpod.glade:2301 gtkpod.glade:2471
+msgid ""
+"'DD/MM/YYYY HH:MM < d < DD/MM/YYYY HH:MM' or similar. Press 'enter' when "
+"finished."
+msgstr ""
+"z.B. 'TT/MM/JJJJ SS:MM < d < TT/MM/JJJJ SS:MM' oder ähnliches. Nach der "
+"Eingabe bitte 'Return' drücken."
+
+#: gtkpod.glade:2270 gtkpod.glade:2347 gtkpod.glade:2517 gtkpod.glade:2696
+msgid "Calendar"
+msgstr "Kalender"
+
+#: gtkpod.glade:2372
+msgid "Specify interval"
+msgstr "Intervall angeben"
+
+#: gtkpod.glade:2374 src/display_spl.c:98 src/misc_conversion.c:78
+msgid "Playcount"
+msgstr "Playcount"
+
+#: gtkpod.glade:2397 src/display_spl.c:101 src/misc_conversion.c:79
+msgid "Rating"
+msgstr "Bewertung"
+
+#: gtkpod.glade:2420 src/display_songs.c:1951
+msgid "Played"
+msgstr "Gespielt"
+
+#: gtkpod.glade:2443 src/display_songs.c:1954
+msgid "Modified"
+msgstr "Modifiziert"
+
+#: gtkpod.glade:2542 src/display_songs.c:1957 src/display_sorttabs.c:3218
+msgid "Added"
+msgstr "Hinzugefügt"
+
+#: gtkpod.glade:2587
+msgid "Display tracks that match the criteria entered above."
+msgstr "Stücke anzeigen, welche die oben genannten Kriterien erfüllen."
+
+#: gtkpod.glade:2630 gtkpod.glade:12009
+msgid "_Display"
+msgstr "_Anzeige"
+
+#: gtkpod.glade:2666
+msgid ""
+"Automatically start displaying tracks that match the criteria entered above. "
+"If not selected, you must press 'Display' to start displaying."
+msgstr ""
+"Die Anzeige der Stücke, welche die oben genannten Kriterien erfüllen, "
+"automatisch starten. Wenn diese Option nicht aktiviert ist, müssen Sie "
+"'Anzeigen' drücken."
+
+#: gtkpod.glade:2668
+msgid "Start display automatically"
+msgstr "Anzeige automatisch starten"
+
+#: gtkpod.glade:2743
+msgid "Sorttab: "
+msgstr "Sort Tab: "
+
+#: gtkpod.glade:2787
+msgid "     "
+msgstr "     "
+
+#: gtkpod.glade:2813
+msgid "Category: "
+msgstr "Kategorie: "
+
+#: gtkpod.glade:2894
+msgid "Please specify a time interval"
+msgstr "Intervall angeben"
+
+#: gtkpod.glade:2943
+msgid "Lower Margin"
+msgstr "Untere Grenze"
+
+#: gtkpod.glade:2994 gtkpod.glade:3208
+msgid "Time:"
+msgstr "Zeit:"
+
+#: gtkpod.glade:3037 gtkpod.glade:3251
+msgid ":"
+msgstr ":"
+
+#: gtkpod.glade:3114
+msgid "No lower margin"
+msgstr "Keine untere Grenze"
+
+#: gtkpod.glade:3157
+msgid "Upper margin"
+msgstr "Obere Grenze"
+
+#: gtkpod.glade:3328
+msgid "No upper margin"
+msgstr "Keine obere Grenze"
+
+#: gtkpod.glade:3426
+msgid "Sorting Options"
+msgstr "Sortieroptionen"
+
+#: gtkpod.glade:3458
+msgid "<b>Sort Order</b>"
+msgstr "<b>Sortier-Reihenfolge</b>"
+
+#: gtkpod.glade:3489 gtkpod.glade:4762 gtkpod.glade:11638 gtkpod.glade:12134
+#: gtkpod.glade:12249
+msgid "    "
+msgstr "    "
+
+#: gtkpod.glade:3521
+msgid ""
+"In order to save the displayed track order to the iPod choose 'Save "
+"Displayed Track Order' from the 'Edit' menu or select 'Auto Store' below."
+msgstr ""
+"Um die angezeigte Reihenfolge der Stücke zu speichern, benutzen Sie "
+"'Dargestellte Reihenfolge speichern' im 'Bearbeiten'-Menü oder wählen die "
+"Option \"Auto-Speichern\" unten aus."
+
+#: gtkpod.glade:3905
+msgid "Ascending"
+msgstr "Aufsteigend"
+
+#: gtkpod.glade:3953
+msgid "Descending"
+msgstr "Absteigend"
+
+#: gtkpod.glade:4001
+msgid "None"
+msgstr "Keine"
+
+#: gtkpod.glade:4048 src/display_playlists.c:2106
+msgid "Playlists"
+msgstr "Wiedergabelisten"
+
+#: gtkpod.glade:4097
+msgid "Sorttabs"
+msgstr "Sort Tabs"
+
+#: gtkpod.glade:4146
+msgid "Tracks"
+msgstr "Stücke"
+
+#: gtkpod.glade:4306
+msgid "Auto Store"
+msgstr "Auto-Speichern"
+
+#: gtkpod.glade:4349
+msgid "Please refer to the notice below."
+msgstr "Bitte beachten Sie den Hinweis weiter unten."
+
+#: gtkpod.glade:4383 gtkpod.glade:4564 src/details.c:1118
+msgid "n/a"
+msgstr "---"
+
+#: gtkpod.glade:4613
+msgid "Sort tracks according to: "
+msgstr "Sortiere Stücke nach: "
+
+#: gtkpod.glade:4647
+msgid ""
+"You can also use the table headers, but this allows you to sort according to "
+"a column that is not displayed."
+msgstr ""
+"Sie können auch die Spaltenköpfe anklicken, aber diese Option ermöglicht es "
+"auch nach Spalten zu sortieren, die nicht angezeigt werden."
+
+#: gtkpod.glade:4683
+msgid ""
+"If checked, sorting will be case sensitive. Please note that case sensitive "
+"sorting will not work well with most charsets."
+msgstr ""
+"Wenn diese Option aktiviert ist, wird beim Sortieren die Groß-/"
+"Kleinschreibung beachtet. Mit den meisten Zeichensätzen funktioniert diese "
+"Funktion jedoch nicht wie gewünscht."
+
+#: gtkpod.glade:4685
+msgid "Sorting case sensitive"
+msgstr "Beim Sortieren Groß-/Kleinschreibung beachten"
+
+#: gtkpod.glade:4731
+msgid "<b>Ignore Frequent Words</b>"
+msgstr "<b>Ignoriere oft verwendete Wörter</b>"
+
+#: gtkpod.glade:4831
+msgid "Ignore these words when at the beginning of the following fields:"
+msgstr "Ignoriere folgende Wörter, wenn Sie am Anfang von Feldern stehen:"
+
+#: gtkpod.glade:5106
+msgid "gtkpod Info"
+msgstr "gtkpod Info"
+
+#: gtkpod.glade:5427 gtkpod.glade:5514 gtkpod.glade:5543 gtkpod.glade:6261
+#: gtkpod.glade:6406
+msgid "      "
+msgstr "     "
+
+#: gtkpod.glade:5832
+msgid "Number of tracks"
+msgstr "Anzahl der Stücke"
+
+#: gtkpod.glade:5862
+msgid "Play time"
+msgstr "Spielzeit"
+
+#: gtkpod.glade:5893
+msgid "File size"
+msgstr "Dateigröße"
+
+#: gtkpod.glade:5923
+msgid "Number of playlists"
+msgstr "Anzahl der Wiedergabelisten"
+
+#: gtkpod.glade:5953
+msgid "Deleted tracks"
+msgstr "Gelöschte Stücke"
+
+#: gtkpod.glade:5983
+msgid "File size (deleted)"
+msgstr "Dateigröße (gelöscht)"
+
+#: gtkpod.glade:6013
+msgid "Non-transferred tracks"
+msgstr "Nicht übertragene Stücke"
+
+#: gtkpod.glade:6043
+msgid "File size (non-transferred)"
+msgstr "Dateigröße (nicht übertragen)"
+
+#: gtkpod.glade:6073
+msgid "Effective free space"
+msgstr "Effektiv freier Platz"
+
+#: gtkpod.glade:6103
+msgid ""
+"Total\n"
+"(iPod)"
+msgstr ""
+"Insgesamt\n"
+"(iPod)"
+
+#: gtkpod.glade:6135
+msgid ""
+"Selected\n"
+"Playlist"
+msgstr ""
+"Ausgewählte\n"
+"Wiedergabeliste"
+
+#: gtkpod.glade:6167
+msgid ""
+"Displayed\n"
+"Tracks"
+msgstr ""
+"Angezeigte\n"
+"Stücke"
+
+#: gtkpod.glade:6199
+msgid ""
+"Selected\n"
+"Tracks"
+msgstr ""
+"Ausgewählte\n"
+"Stücke"
+
+#: gtkpod.glade:6231
+msgid ""
+"Total\n"
+"(local)"
+msgstr ""
+"Insgesamt\n"
+"(lokal)"
+
+#: gtkpod.glade:6651
+msgid "label21"
+msgstr "label21"
+
+#: gtkpod.glade:6746
+msgid "Never show this dialogue again"
+msgstr "Diesen Dialog nie wieder zeigen"
+
+#: gtkpod.glade:6791 gtkpod.glade:7135
+msgid "window1"
+msgstr "window1"
+
+#: gtkpod.glade:6850
+msgid "_M3U"
+msgstr "_M3U"
+
+#: gtkpod.glade:6869
+msgid "_PLS"
+msgstr "_PLS"
+
+#: gtkpod.glade:6907
+msgid ""
+"If available, the local copy of the track is referenced in the playlist. "
+"Otherwise the file on the iPod is used."
+msgstr ""
+"Wenn verfügbar, die lokale Kopie des Tracks wird in die Wiedergabeliste "
+"eingetragen. Andernfalls die Datei auf dem iPod wird verwendet."
+
+#: gtkpod.glade:6909
+msgid "_Prefer Local"
+msgstr "Lokal _bevorzugen"
+
+#: gtkpod.glade:6927
+msgid ""
+"The local copy of the track is referenced in the playlist. If the track is "
+"not available locally, an error message is displayed."
+msgstr ""
+"Die lokale Kopie des Tracks wird in der Wiedergabeliste eingetragen. Falls "
+"der Track lokal nicht verfügbar ist, wird eine Fehlermeldung ausgegeben."
+
+#: gtkpod.glade:6929
+msgid "_Local"
+msgstr "_Lokal"
+
+#: gtkpod.glade:6948
+msgid "The track on the iPod is referenced in the playlist file."
+msgstr "Die Datei auf dem iPod wird in die Wiedergabeliste eingetragen."
+
+#: gtkpod.glade:6950
+msgid "_iPod"
+msgstr "_iPod"
+
+#: gtkpod.glade:6983
+msgid "Playlist type:"
+msgstr "Art der Wiedergabeliste:"
+
+#: gtkpod.glade:7012
+msgid "Source:"
+msgstr "Quelle:"
+
+#: gtkpod.glade:7055
+msgid "Template for info field: "
+msgstr "Schablone für dieses Feld: "
+
+#: gtkpod.glade:7080
+msgid ""
+"Determines how the string for the info field should be constructed, e.g '%a/%"
+"A/%T - %t.mp3' or '%o'.  You can separate several templates by semicolons -- "
+"gtkpod will determine which one to use by the filename extension given. "
+"Artist: %a, album: %A, composer: %c, title: %t, genre: %G, track nr: %T, CD "
+"nr: %C, year: %Y, original filename (requires extended information file): %"
+"o, the character '%': %%."
+msgstr ""
+"Bestimmt, wie der Text des Info-Feldes erstellt werden soll, z.B. '%a/%A/%T "
+"- %t.mp3' oder '%o'. Mehrere Schablonen können durch Semikolons getrennt "
+"werden -- gtkpod ermittelt die passende Schablone anhand des "
+"Dateinamensuffix. Künstler: %a, Album: %A, Komponist: %c, Titel: %t, "
+"Musikrichtung: %G, Stück-Nr.: %T, CD-Nr.: %C, Jahr: %Y,  ursprünglicher "
+"Dateiname (benötigt 'Erweiterte Informationen'): %o, das Zeichen '%': %%."
+
+#: gtkpod.glade:7111 gtkpod.glade:7355
+msgid "gtkpod options"
+msgstr "gtkpod Optionen"
+
+#: gtkpod.glade:7173
+msgid "Filename Format: "
+msgstr "Format für Dateinamen: "
+
+#: gtkpod.glade:7198
+msgid ""
+"Determines the filename of tracks you copy from the iPod, e.g '%a/%A/%T - %t."
+"mp3' or '%o'.  You can separate several patterns by semicolons -- gtkpod "
+"will determine which one to use by the filename extension given. Artist: %a, "
+"album: %A, composer: %c, title: %t, genre: %G, track nr: %T, CD nr: %C, "
+"year: %Y, original filename (requires extended information file): %o, "
+"current playlist: %p, the character '%': %%."
+msgstr ""
+"Bestimmt, wie der Dateiname von Stücken gewählt wird, die vom iPod kopiert "
+"werden. Bsp.: '%a/%A/%T - %t.mp3' oder '%o'. Mehrere Schablonen können durch "
+"Semikolons getrennt werden -- gtkpod ermittelt die passende Schablone anhand "
+"des Dateinamensuffix. Künstler: %a, Album: %A, Komponist: %c, Titel: %t, "
+"Musikrichtung: %G, Stück-Nr.: %T, CD-Nr.: %C, Jahr: %Y,  ursprünglicher "
+"Dateiname (benötigt 'Erweiterte Informationen'): %o, die aktuelle "
+"Wiedergabelist: %p, das Zeichen '%': %%."
+
+#: gtkpod.glade:7203
+msgid " "
+msgstr " "
+
+#: gtkpod.glade:7225
+msgid ""
+"Normally the charset specified when first importing the track will be used "
+"for the filename. If you set this option you can set a different charset "
+"with the charset selector (Preferences/'Adding/Updating/Syncing'). Note: the "
+"charset info is stored in the extended information file (see "
+"Preferences/'Writing of the iTunesDB'). Tracks imported before V0.51 will "
+"have no charset stored. Instead the charset specified will be used."
+msgstr ""
+"Normalerweise wird der Zeichensatz, der beim ersten Einlesen spezifiziert "
+"wurde, auch für den Dateinamen verwendet. Wenn Sie diese Option aktivieren, "
+"können Sie einen anderen Zeichensatz auswählen (Einstellungen/'Hinzufügen/"
+"Aktualisieren/Abgleichen'). Bitte beachten Sie: die Information über den "
+"verwendeten Zeichensatz wird mit den erweiterten Informationen gespeichert "
+"(siehe Einstellungen/'Schreiben der iTunesDB'). Stücke, die vor Version 0.51 "
+"eingelesen wurden, haben keine Informationen über den Zeichensatz "
+"gespeichert und der oben spezifizierte Zeichensatz wird verwendet."
+
+#: gtkpod.glade:7227
+msgid ""
+"Use selected charset (Preferences/'Adding/Updating/ Syncing')\n"
+"for this filename."
+msgstr ""
+"Gewählten Zeichensatz (Einstellungen/'Hinzufügen/Aktualisieren/Abgleichen') "
+"für diesen Dateinamen verwenden."
+
+#: gtkpod.glade:7246
+msgid ""
+"When copying from iPod no check is performed on whether the destination file "
+"exists. Enabling this option will make gtkpod check whether the length of "
+"the destination file is the same as the file in the iPod. If so the file is "
+"skipped, allowing a quick sync of the iPod's contents."
+msgstr ""
+"Wenn ein Stück vom iPod kopiert wird, wird normalerweise nicht überprüft, ob "
+"die Datei im Zielverzeichnis bereits vorhanden ist. Wenn Sie diese Option "
+"aktivieren, wird gtkpod anhand der Dateigröße überprüfen, ob die Datei "
+"bereits existiert. Wenn ja, wird das Kopieren übersprungen. Dies erlaubt es, "
+"einen schnellen Abgleich der Daten auf Ihrer Festplatte mit denen des iPods "
+"vorzunehmen."
+
+#: gtkpod.glade:7248
+msgid "Check for existing files when copying from iPod."
+msgstr "Bei Kopieren vom iPod Überprüfen, ob Datei bereits existiert."
+
+#: gtkpod.glade:7423
+msgid "Playlist name:"
+msgstr "Name der Wiedergabeliste:"
+
+#: gtkpod.glade:7492
+msgid "Match al_l of the following"
+msgstr "_Alle der folgenden Regeln"
+
+#: gtkpod.glade:7511
+msgid "Match an_y of the following"
+msgstr "Mindestens _eine der folgenden Regeln"
+
+#: gtkpod.glade:7531
+msgid "_Ignore rules"
+msgstr "_Regeln nicht verwenden"
+
+#: gtkpod.glade:7601
+msgid "Rules"
+msgstr "Regeln"
+
+#: gtkpod.glade:7638
+msgid "_Limit to"
+msgstr "_Limitieren auf"
+
+#: gtkpod.glade:7689
+msgid "   Sort by:"
+msgstr "   Sortieren nach:"
+
+#: gtkpod.glade:7741
+msgid "Match only _checked tracks"
+msgstr "_Nur ausgewählte Stücke einbeziehen"
+
+#: gtkpod.glade:7773
+msgid "Live _updating"
+msgstr "_Live-Update"
+
+#: gtkpod.glade:7864
+msgid "Preferences"
+msgstr "Einstellungen"
+
+#: gtkpod.glade:7927
+msgid "<b>Mountpoint and individual repository/playlist options</b>"
+msgstr ""
+
+#: gtkpod.glade:7990
+msgid "Set mountpoint or edit repository options"
+msgstr ""
+
+#: gtkpod.glade:8037
+msgid "<b>Import</b>"
+msgstr "<b>Importieren</b>"
+
+#: gtkpod.glade:8108
+#, fuzzy
+msgid "Automatically import iTunesDBs on startup"
+msgstr "Beim Starten iTunes-Datenbank automatisch importieren?"
+
+#: gtkpod.glade:8154
+msgid "<b>Adding/Updating/Syncing</b>"
+msgstr "<b>Hinzufügen/Aktualisieren/Abgleichen</b>"
+
+#: gtkpod.glade:8226
+msgid "Exclude file mask(s)"
+msgstr ""
+
+#: gtkpod.glade:8251
+msgid "Semicolon seperated list of file exclusion masks, e.g. '*.mp3'"
+msgstr ""
+
+#: gtkpod.glade:8285
+msgid "_Encoding (ID3, files):"
+msgstr "_Kodierung (ID3, Dateinamen):"
+
+#: gtkpod.glade:8320
+msgid ""
+"gtkpod expects the ID3 tags and the filenames to be in the encoding "
+"specified here. You can change it for consecutive 'Add Files' and 'Add Dirs' "
+"operation. 'System Charset' is the charset used by your current locale."
+msgstr ""
+"gtkpod erwartet, daß die Filenamen und ID3 tags in der Kodierung vorliegen, "
+"die hier angegeben wird. Diese kann natürlich zwischen zwei Aufrufen von "
+"'Files hinzufügen' oder 'Verzeichnisse hinzufügen' geändert werden. "
+"'Systemzeichensatz' bezeichnet die Standardkodierung der aktuellen Locale."
+
+#: gtkpod.glade:8357
+msgid ""
+"Normally the charset specified when first importing the track will be used "
+"to update the track information. If you have chosen a wrong charset when "
+"first importing a track and want to correct it using the 'Update Track' "
+"function, you must check this option. Note: the charset info is stored in "
+"the extended information file (see 'Writing of iTunesDB' below) and tracks "
+"imported before V0.51 will have no charset stored. Instead the charset "
+"specified above will be used then."
+msgstr ""
+"Normalerweise wird der Zeichensatz, der beim ersten Einlesen spezifiziert "
+"wurde, auch verwendet, um ein Stück zu aktualisieren. Wenn Sie beim ersten "
+"Einlesen einen falschen Zeichensatz angegeben haben und dies nun mittels "
+"'Stücke aktualisieren' korrigieren wollen, müssen Sie diese Option "
+"auswählen. Bitte beachten Sie: die Information über den verwendeten "
+"Zeichensatz wird mit den erweiterten Informationen gespeichert (siehe "
+"'Schreiben der iTunesDB' weiter unten). Stücke, die vor Version 0.51 "
+"eingelesen wurden, haben keine Informationen über den Zeichensatz "
+"gespeichert und der oben spezifizierte Zeichensatz wird verwendet."
+
+#: gtkpod.glade:8359
+msgid ""
+"Use selected encoding also when updating \n"
+"or syncing tracks"
+msgstr ""
+"Gewählte Kodierung auch verwenden wenn Stücke\n"
+"aktualisiert oder Verzeichnisse abgeglichen werden"
+
+#: gtkpod.glade:8379
+msgid "If you check this, gtkpod will descend into subdirectories recursively."
+msgstr "Wenn Sie diese Option wählen werden Verzeichnisse rekursiv eingelesen."
+
+#: gtkpod.glade:8381
+msgid "Add directories recursively"
+msgstr "Verzeichnisse rekursiv hinzufügen"
+
+#: gtkpod.glade:8400
+msgid "Duplicate Recognition is based on a (modified) md5 hash over the file."
+msgstr ""
+"Die Duplikatenerkennung basiert auf einem (modifizierten) md5-Hash über die "
+"Dateien."
+
+#: gtkpod.glade:8402
+msgid "Don't allow file duplication"
+msgstr "Mehrfaches Einlesen von Stücken verhindern"
+
+#: gtkpod.glade:8452
+msgid ""
+"Display the list of duplicates that have been detected after adding files."
+msgstr ""
+"Eine Liste der Duplikate anzeigen, die während des Hinzufügens von Stücken "
+"erkannt wurden."
+
+#: gtkpod.glade:8454
+msgid "Display info about detected duplicates"
+msgstr "Information über erkannte Duplikate anzeigen"
+
+#: gtkpod.glade:8480
+msgid ""
+"If the filename (full path) of an existing track matches that of a track to "
+"be added, this option allows you to update the information about the "
+"existing track rather than just skipping the track altogether. No update "
+"will take place if the file hasn't changed and you have selected the 'Don't "
+"allow file duplication' option above."
+msgstr ""
+"Wenn der Dateiname (inkl. Pfad) eines bereits eingelesenen Stückes identisch "
+"ist zum Dateinamen eines neu einzulesenden Stückes, dann erlaubt diese "
+"Option Ihnen das alte Stück zu überschreiben. Normalerweise wird das "
+"Einlesen des Stückes einfach übersprungen. Wenn sich das File nicht geändert "
+"hat, und Sie die Option 'Mehrfaches Einlesen von Stücken verhindern' "
+"aktiviert haben, wird das Einlesen ebenfalls übersprungen."
+
+#: gtkpod.glade:8482
+msgid ""
+"When adding dirs/files, update information of\n"
+"existing tracks with identical filenames"
+msgstr ""
+"Beim Hinzufügen von Stücken bereits eingelesene\n"
+"Stücke mit demselben Dateinamen aktualisieren."
+
+#: gtkpod.glade:8533
+msgid "Display a list of tracks that could actually be updated."
+msgstr ""
+"Nach dem Aktualisieren eine Liste derer Stücke anzeigen, die tatsächlich "
+"aktualisiert wurden."
+
+#: gtkpod.glade:8535
+msgid "Display info about updated tracks"
+msgstr "Informationen über aktualisierte Stücke anzeigen"
+
+#: gtkpod.glade:8592
+msgid "Display a list of tracks that could not be updated."
+msgstr ""
+"Nach dem Aktualisieren eine Liste derer Stücke anzeigen, bei denen die "
+"Aktualisierung nicht vorgenommen werden konnte."
+
+#: gtkpod.glade:8594
+msgid "Display info about non-updated tracks"
+msgstr "Informationen über nicht aktualisierte Stücke anzeigen"
+
+#: gtkpod.glade:8620
+#, fuzzy
+msgid "When syncing playlists"
+msgstr "Beim Abgleich von Verzeichnissen"
+
+#: gtkpod.glade:8694
+msgid "Confirm lists of directories"
+msgstr "Liste der Verzeichnisse bestätigen"
+
+#: gtkpod.glade:8712 gtkpod.glade:17758
+msgid ""
+"Normally, if a track is no longer present in the sync directory, it will be "
+"removed from the playlist, but not from the iPod or local repository.\n"
+"If this option is checked, tracks will be completely removed from the iPod "
+"or local repository, unless the track is a member of other playlists as "
+"well.\n"
+"NOTE: if you sync with the master playlist, you must check this option if "
+"you want tracks to be removed, because removing from the master playlist "
+"means removing from the iPod."
+msgstr ""
+
+#: gtkpod.glade:8716 gtkpod.glade:17762
+msgid ""
+"Delete tracks that are no longer present from the\n"
+"ipod or repository"
+msgstr ""
+
+#: gtkpod.glade:8735
+msgid "This is the same option as in 'Edit/Delete Confirmation'"
+msgstr ""
+"Diese Option ist identisch zu der in 'Bearbeiten/Sicherheitsabfrage beim "
+"Löschen'"
+
+#: gtkpod.glade:8737 gtkpod.glade:17782
+#, fuzzy
+msgid "Confirm before removing tracks from the iPod or repository"
+msgstr "Vor dem vollständigen Löschen vom iPod"
+
+#: gtkpod.glade:8756 gtkpod.glade:17800
+msgid ""
+"Will show a list of tracks removed and a list of tracks newly added or "
+"updated."
+msgstr ""
+
+#: gtkpod.glade:8758 gtkpod.glade:17802
+msgid "Show summary of sync result"
+msgstr ""
+
+#: gtkpod.glade:8819
+msgid "<b>Sync</b>"
+msgstr "<b>Abgleichen</b>"
+
+#: gtkpod.glade:8875
+msgid ""
+"Highly recommended for faster import when taking advantage of the "
+"duplication recognition. Also, having the PC filenames allows writing "
+"changed ID3 tags to disk, and even to reconstruct your ipod's contents in "
+"case of file system corruption (change the \"transferred=\" entries in your "
+"backuped database)."
+msgstr ""
+"Diese Option wird dringend empfohlen, um einen schnelleren Import der "
+"iTunesDB bei eingeschalteter Duplikatenerkennung zu erreichen. Da außerdem "
+"die Originalfilenamen gespeichert werden, können Tag-Änderungen in das "
+"Originalfile übernommen werden, und es ist sogar möglich, den Inhalt Ihres "
+"iPods im Falle eines Filesystemschadens (Neuformatierung des iPods) zu "
+"rekonstruieren (dazu müssen die 'transferred=' Einträge in der gesicherten "
+"Datenbank auf '0' gesetzt werden und 'offline' eingelesen werden)."
+
+#: gtkpod.glade:8877
+msgid ""
+"Write extended information (PC filenames,\n"
+" MD5 hashes, encoding). Recommended."
+msgstr ""
+"Erweiterte Informationen schreiben (PC Dateinamen,\n"
+"MD5-Prüfsummen, Kodierung). Empfohlen."
+
+#: gtkpod.glade:8921 gtkpod.glade:14688
+msgid "_General"
+msgstr "_Allgemein"
+
+#: gtkpod.glade:8957
+msgid "<b>Tag Reading</b>"
+msgstr "<b>Lesen von Tags</b>"
+
+#: gtkpod.glade:9020
+msgid "Read tags from file contents (e.g. ID3 tags in MP3 files)"
+msgstr "Tags aus der Datei lesen (z.B. ID3 Tags bei MP3 Dateien)"
+
+#: gtkpod.glade:9039 gtkpod.glade:9413
+msgid ""
+"artist: %a, album: %A, composer: %c, title: %t, genre: %G, track nr: %T, CD "
+"nr: %C, year: %Y, skip data: %*, the character '%': %%. You can separate "
+"several templates by a ';'. The first one matching the filename will be "
+"used. Example: '%a - %A/%T %t.mp3;%t.wav'."
+msgstr ""
+"Künstler: %a, Album: %A, Komponist: %c, Titel: %t, Musikrichtung: %G, Stück-"
+"Nr.: %T, CD-Nr.: %C, Jahr: %Y, Platzhalter: %*, das Zeichen '%': %%. Mehrere "
+"Schablonen können durch ein Semikolon (';') getrennt werden -- die erste, "
+"die auf den Filenamen paßt, wird verwendet. Beispiel: '%a - %A/%T %t.mp3;%t."
+"wav'."
+
+#: gtkpod.glade:9041
+msgid "Use this template to parse filename for tag information:"
+msgstr ""
+"Diese Schablone verwenden, um aus dem Dateinamen die Tags zu bestimmen:"
+
+#: gtkpod.glade:9118
+msgid "Overwrite tags that are already set"
+msgstr "Tags, die bereits gesetzt sind, überschreiben."
+
+#: gtkpod.glade:9151
+msgid ""
+"As a last resort set the following tags to the\n"
+"filename if they are (still) empty:"
+msgstr ""
+"Falls Tags (immer noch) nicht gesetzt sind, die \n"
+"folgenden Tags mit dem Dateinamen initialisieren:"
+
+#: gtkpod.glade:9187 src/display_sorttabs.c:2942 src/display_spl.c:85
+#: src/misc_conversion.c:62
+msgid "Artist"
+msgstr "Künstler"
+
+#: gtkpod.glade:9209 src/display_sorttabs.c:2948 src/display_spl.c:89
+#: src/misc_conversion.c:64
+msgid "Genre"
+msgstr "Genre"
+
+#. 0
+#: gtkpod.glade:9231 src/display_sorttabs.c:2945 src/display_spl.c:84
+#: src/misc_conversion.c:61
+msgid "Album"
+msgstr "Album"
+
+#. 5
+#: gtkpod.glade:9253 src/display_spl.c:97 src/misc_conversion.c:66
+msgid "Composer"
+msgstr "Komponist"
+
+#: gtkpod.glade:9275 src/display_sorttabs.c:2954 src/display_spl.c:83
+#: src/misc_conversion.c:63
+msgid "Title"
+msgstr "Titel"
+
+#: gtkpod.glade:9330
+#, fuzzy
+msgid "<b>Coverart</b>"
+msgstr "<b>Importieren</b>"
+
+#: gtkpod.glade:9392
+msgid ""
+"Music files can have images embedded in the APIC tag. Currently this is only "
+"supported for MP3 files."
+msgstr ""
+
+#: gtkpod.glade:9394
+msgid "Read coverart from embedded APIC data"
+msgstr ""
+
+#: gtkpod.glade:9415
+#, fuzzy
+msgid "Add coverart from file using the following template"
+msgstr "Artwork nach folgender Schablone aus Datei einlesen"
+
+#: gtkpod.glade:9471
+msgid ""
+"Determines the name of the file with the cover art. You can separate several "
+"patterns by semicolons which will be tried in order. Artist: %a, album: %A, "
+"composer: %c, title: %t, genre: %G, track nr: %T, CD nr: %C, year: %Y, "
+"original filename (requires extended information file): %o, original "
+"filename without file extension: %O, current playlist: %p, the character "
+"'%': %%."
+msgstr ""
+"Bestimmt, wie der Dateiname von Stücken gewählt wird, die vom iPod kopiert "
+"werden. Bsp.: '%a/%A/%T - %t.mp3' oder '%o'. Mehrere Schablonen können durch "
+"Semikolons getrennt werden -- gtkpod ermittelt die passende Schablone anhand "
+"des Dateinamensuffix. Künstler: %a, Album: %A, Komponist: %c, Titel: %t, "
+"Musikrichtung: %G, Stück-Nr.: %T, CD-Nr.: %C, Jahr: %Y,  ursprünglicher "
+"Dateiname (benötigt 'Erweiterte Informationen'): %o, ursprügnlicher "
+"Dateiname ohne Erweiterung: %O, die aktuelle Wiedergabelist: %p, das Zeichen "
+"'%': %%."
+
+#: gtkpod.glade:9492
+msgid "<b>Examples</b>"
+msgstr "<b>Beispiele</b>"
+
+#: gtkpod.glade:9526
+msgid "folder.jpg"
+msgstr "folder.jpg"
+
+#: gtkpod.glade:9554
+msgid "folder"
+msgstr "folder"
+
+#: gtkpod.glade:9582
+msgid "../%A.jpg"
+msgstr "../%A.jpg"
+
+#: gtkpod.glade:9610
+msgid "%A"
+msgstr "%A"
+
+#: gtkpod.glade:9638
+msgid "Use <i>folder.jpg</i> as cover art."
+msgstr "Benutze <i>folder.jpg</i> als Cover-Art"
+
+#: gtkpod.glade:9666
+msgid "Use <i>folder.jpg</i>, <i>folder.png</i>..."
+msgstr "Benutze <i>folder.jpg</i>, <i>folder.png</i>..."
+
+#: gtkpod.glade:9694
+msgid "Use <i>&lt;Album&gt;.jpg</i> in the parent directory"
+msgstr "Benutze <i>&lt;Album&gt;.jpg</i> im übergeordneten Verzeichnis"
+
+#: gtkpod.glade:9722
+msgid "Use <i>&lt;Album&gt;.jpg</i>, <i>&lt;Album&gt;.png</i>..."
+msgstr "Benutze <i>&lt;Album&gt;.jpg</i>, <i>&lt;Album&gt;.png</i>..."
+
+#: gtkpod.glade:9750
+msgid "folder.jpg;%a.jpg"
+msgstr "folder.jpg;%a.jpg"
+
+#: gtkpod.glade:9778
+msgid "First try <i>folder.jpg</i>, then <i>&lt;artist&gt;.jpg</i>"
+msgstr "Versuche zuerst <i>folder.jpg</i>, dann <i>&lt;Künstler&gt;.jpg</i>"
+
+#: gtkpod.glade:9835
+msgid "If both options are selected, embedded APIC data takes precedence."
+msgstr ""
+
+#: gtkpod.glade:9887
+msgid "<b>mserv</b>"
+msgstr "<b>mserv</b>"
+
+#: gtkpod.glade:9949 gtkpod.glade:10175
+msgid "Currently only rating is supported."
+msgstr "Gegenwärtig wird nur 'Bewertung' unterstützt."
+
+#: gtkpod.glade:9951
+msgid "Use mserv database to fill additional information"
+msgstr "mserv Datenbank für zusätzliche Informationen verwenden"
+
+#: gtkpod.glade:9979
+msgid "Music Root:"
+msgstr "Stammverzeichnis für Musik:"
+
+#: gtkpod.glade:10007
+msgid "mserv database lookup will be done for music in this directory."
+msgstr "Die mserv Datenbank wird für Tracks in diesem Verzeichnis verwendet."
+
+#: gtkpod.glade:10029
+msgid "mserv Root:"
+msgstr "mserv Stammverzeichnis:"
+
+#: gtkpod.glade:10057
+msgid "Root directory of mserv database (trackinfo root)."
+msgstr "Stammverzeichnis für die mserv Datenbank (trackinfo root)."
+
+#: gtkpod.glade:10079
+msgid "Username:"
+msgstr "Benutzername:"
+
+#: gtkpod.glade:10107
+msgid "Username to be used for mserv database lookup."
+msgstr ""
+"Benutzername, der zum Nachschlagen in der mserv-Datenbank verwendet wird."
+
+#: gtkpod.glade:10131 gtkpod.glade:10150 gtkpod.glade:12889 gtkpod.glade:12908
+#: gtkpod.glade:13069 gtkpod.glade:13138 gtkpod.glade:17159 gtkpod.glade:17179
+#: gtkpod.glade:17199 gtkpod.glade:17219 gtkpod.glade:17239 gtkpod.glade:17679
+#: gtkpod.glade:18238 gtkpod.glade:18281 gtkpod.glade:18301 gtkpod.glade:18711
+msgid "Browse"
+msgstr "Durchsuchen"
+
+#: gtkpod.glade:10177
+msgid "Show information about problems when accessing mserv"
+msgstr ""
+"Informationen über Probleme während des Zugriffs auf die\n"
+"mserv-Datenbank anzeigen."
+
+#: gtkpod.glade:10223
+msgid "_Track Info"
+msgstr "_Meta-Infos"
+
+#: gtkpod.glade:10273
+msgid "<b>Displayed Track Attributes</b>"
+msgstr "<b>Angezeigte Informationen</b>"
+
+#: gtkpod.glade:11083
+msgid "<b>Sort Tabs</b>"
+msgstr "<b>Filter-Tabs</b>"
+
+#: gtkpod.glade:11145
+msgid "Keeps all compilation CDs grouped together in the artists sort tab."
+msgstr "Alle Sampler-CDs im Künstler-Filtertab als 'Sampler' gruppieren."
+
+#: gtkpod.glade:11147
+msgid "Group artists on compilation CDs"
+msgstr "Künstler auf Sampler-CDs gruppieren"
+
+#: gtkpod.glade:11172
+msgid "_Number of sort tabs:"
+msgstr "_Anzahl der Filter-Tabs:"
+
+#: gtkpod.glade:11252
+msgid "<b>Automatically select...</b>"
+msgstr "<b>Wähle automatisch...</b>"
+
+#: gtkpod.glade:11314
+msgid ""
+"If you don't select the master playlist automatically, the initial database "
+"import is much faster because the display dosn't have to be updated."
+msgstr ""
+"Wenn die Haupt-Wiedergabeliste nicht automatisch ausgewählt wird, verläuft "
+"der Import der iTunes-Datenbank zu Beginn deutlich schneller, da die Anzeige "
+"nicht aktualisiert werden muß."
+
+#: gtkpod.glade:11316
+msgid "...master playlist"
+msgstr "...Hauptplayliste"
+
+#: gtkpod.glade:11336
+msgid "...entry 'All' in sort tab..."
+msgstr "Eintrag 'Alle' im Sort Tab..."
+
+#: gtkpod.glade:11421
+msgid "<b>Tooltips</b>"
+msgstr "<b>Tooltips</b>"
+
+#: gtkpod.glade:11484
+msgid "Display tooltips in main window"
+msgstr "Tooltips im Hauptfenster anzeigen"
+
+#: gtkpod.glade:11504
+msgid "Display tooltips in prefs window"
+msgstr "Tooltips im Einstellungs-Fenster anzeigen"
+
+#: gtkpod.glade:11550
+msgid "<b>Toolbar</b>"
+msgstr "<b>Toolbar</b>"
+
+#: gtkpod.glade:11613
+msgid "Display toolbar..."
+msgstr "Toolbar anzeigen..."
+
+#: gtkpod.glade:11670
+msgid "...as icons"
+msgstr "...als Graphik"
+
+#: gtkpod.glade:11690
+msgid "...as text"
+msgstr "...als Text"
+
+#: gtkpod.glade:11711
+msgid "...both as icons and text"
+msgstr "...als Text und Graphik"
+
+#: gtkpod.glade:11772
+msgid "<b>Misc</b>"
+msgstr "<b>Verschiedenes</b>"
+
+#: gtkpod.glade:11834
+msgid ""
+"It is much faster to sort the display after all tracks have been added. Some "
+"people might feel irritated by this behaviour and should uncheck this option."
+msgstr ""
+"Es ist deutlich schneller, die Sortierung vorzunehmen nachdem alle Tracks "
+"hinzugefügt wurde. Wen dieses Verhalten irritiert, sollte diese Option "
+"jedoch nicht wählen."
+
+#: gtkpod.glade:11836
+msgid ""
+"Temporarily disable sorting when changing playlist\n"
+"or tab entry (faster!)"
+msgstr ""
+"Sortieren vorübergehend deaktivieren wenn die\n"
+"Wiedergabeliste oder Tab Entry gewechselt wird (schneller!)"
+
+#: gtkpod.glade:11856
+msgid ""
+"The display can be blocked after changing a selection. The display update is "
+"faster, but you have to wait until it's finished. When using this option, "
+"sorting is also temporarily disabled (see option above)."
+msgstr ""
+"Die Anzeige kann bis zur vollständigen Aktualisierung nach einer Änderung "
+"der Auswahl blockiert werden. Die Aktualisierung ist dann schneller, aber es "
+"muß gewartet werden, bis sich gtkpod wieder meldet. Mit dieser Option wird "
+"automatisch auch das Sortieren vorübergehend deaktiviert (siehe Option "
+"weiter oben)."
+
+#: gtkpod.glade:11858
+msgid ""
+"Block display when changing playlist or tab\n"
+" entry (faster!)"
+msgstr ""
+"Anzeige nicht aktualisieren wenn eine neue Wiedergabeliste\n"
+"oder ein neuer Tab-Eintrag gewählt wird (schneller!)"
+
+#: gtkpod.glade:11878
+msgid "This option will be re-activated when you upgrade gtkpod."
+msgstr ""
+"Diese Option wird automatisch aktiviert, wenn ein Update von gtkpod "
+"durchgeführt wird."
+
+#: gtkpod.glade:11880
+msgid "Display messages and warnings at startup"
+msgstr "Nachrichten und Warnungen beim Start des Programms anzeigen"
+
+#: gtkpod.glade:11942
+msgid "Advanced Sorting Options"
+msgstr "Sortieroptionen"
+
+#: gtkpod.glade:12045
+msgid "<b>Track Editing</b>"
+msgstr "<b>Bearbeiten von Stücken</b>"
+
+#: gtkpod.glade:12107
+msgid ""
+"The tags are written to the files on your harddrive and on the ipod (if "
+"available)."
+msgstr ""
+"Die Tags werden in die Originalfiles auf der Festplatte und auch auf dem "
+"iPod (wenn angeschlossen) geschrieben."
+
+#: gtkpod.glade:12109
+msgid "Write ID3 tags to disk when modified in gtkpod"
+msgstr ""
+"ID3 Tags bei Änderungen in gtkpod ebenfalls auf\n"
+"der Festplatte und auf dem iPod ändern"
+
+#: gtkpod.glade:12165
+msgid ""
+"Normally the charset specified when first importing the track will be used "
+"to write the tags. If you have chosen a wrong charset when first importing a "
+"track, you should select this option along with the correct charset.  Note: "
+"uses the extended information file to store the charset information (see "
+"'Writing of the iTunesDB' on the 'Input/Output' page) and tracks imported "
+"before V0.51 will have no charset stored -- the charset specified on the "
+"'Input/Output' page will be used."
+msgstr ""
+"Normalerweise wird der Zeichensatz, der beim ersten Einlesen des Stückes "
+"angegeben wurde, auch beim Schreiben der ID3-Tags verwendet. Wenn Sie beim "
+"ersten Einlesen einen falschen Zeichensatz angegeben haben, müssen Sie diese "
+"Option zusammen mit dem richtigen Zeichensatz auswählen. Bitte beachten Sie: "
+"die Information über den verwendeten Zeichensatz wird mit den erweiterten "
+"Informationen gespeichert (siehe 'Schreiben der iTunesDB' auf der 'Eingabe-"
+"Ausgabe' Seite). Stücke, die vor Version 0.51 eingelesen wurden, haben keine "
+"Informationen über den Zeichensatz gespeichert und der auf der 'Eingabe/"
+"Ausgabe'-Seite eingestellte Zeichensatz wird verwendet."
+
+#: gtkpod.glade:12167
+msgid ""
+"Use selected encoding (on the 'General' page)\n"
+"when writing tags"
+msgstr ""
+"Ausgewählte Kodierung (auf der Allgemein-Seite)\n"
+"beim Schreiben von ID3-Tags verwenden"
+
+#: gtkpod.glade:12187
+msgid ""
+"This is the way to go, but maybe not all programs support it yet. ID3v2.4 "
+"uses unicode to store the tags, so you won't have to worry about charsets "
+"any more. gtkpod will use UTF8 encoding as this will not increase the size "
+"of pure ASCII tags. ID3v2.2/4 tags will also be written if they are already "
+"present in the file to write to."
+msgstr ""
+"Es wird empfohlen, Tags als V2.4 Tags zu schreiben. Allerdings unterstützen "
+"eventuell einige Programme diesen Standard noch nicht. ID3v2.4 verwendet "
+"Unicode, um die Tags zu speichern. Dies bedeutet, daß Sie sich keine "
+"Gedanken mehr über den verwendeten Zeichensatz machen zu brauchen. gtkpod "
+"verwendet UTF8, da dies die Tag-Länge reiner ASCII-Tags nicht verlängert. "
+"ID3v2.4 wird ebenfalls beim Schreiben verwendet, falls die Tags in der Datei "
+"bereits als V2.4 vorliegen."
+
+#: gtkpod.glade:12189
+msgid "Always write ID3v2.4 tags (only applies to MP3)"
+msgstr "Immer ID3v2.4 Tags schreiben (trifft nur auf MP3 zu)"
+
+#: gtkpod.glade:12222
+msgid ""
+"If you select several tracks in the track list and edit a tag of the first "
+"track, the tags in the other tracks are updated as well."
+msgstr ""
+"Wenn mehrere Stücke im der Stücke-Anzeige ausgewählt sind und ein Tag im "
+"ersten Stück geändert wird, wird das entsprechende Tag auch in den anderen "
+"Stücken aktualisiert."
+
+#: gtkpod.glade:12224
+msgid "Use 'Multi-Edit' for tracks selections"
+msgstr "'Multi-Edit' bei markierten Stücken verwenden"
+
+#: gtkpod.glade:12274
+msgid ""
+"Usually you don't want to set the title of several tracks to the same text. "
+"This option might avoid unwanted results (especially since there is no "
+"'undo' yet)."
+msgstr ""
+"Es kommt selten vor, daß die Titel mehrerer Stücke auf den selben Text "
+"gesetzt werden sollen. Diese Option verhindert möglicherweise ungewünschte "
+"Resultate, insbesondere da noch keine 'Undo'-Funktion existiert."
+
+#: gtkpod.glade:12276
+msgid "Use 'Multi-Edit' also for title field"
+msgstr "'Multi-Edit' auch für das Titel-Feld verwenden"
+
+#: gtkpod.glade:12329
+msgid "<b>Auto-Generated Playlists</b>"
+msgstr "<b>Automatisch generierte Wiedergabelisten</b>"
+
+#: gtkpod.glade:12397
+msgid "Number of tracks in generated playlists:"
+msgstr "Anzahl der Stücke in generierten Wiedergabelisten:"
+
+#: gtkpod.glade:12422
+msgid ""
+"Number of tracks in the generated playlists 'Most Often Listened', 'Best "
+"Rated' and 'Most Recently Played'. Choose '0' for 'no limit'."
+msgstr ""
+"Anzahl der Stücke in den generierten Wiedergabelisten 'Am häufigsten gehörte "
+"Stücke', 'Höchstgewertete Stücke' und 'Zuletzt gespielte Stücke'. Wählen Sie "
+"'0', wenn Sie die Anzahl nicht begrenzen wollen."
+
+#: gtkpod.glade:12451
+msgid "Also include tracks never played in \"Best Rated\" playlist"
+msgstr ""
+"Auch Stücke in die 'am besten bewertete' Wiedergabeliste aufnehmen,\n"
+"die nie gespielt wurden"
+
+#: gtkpod.glade:12497
+msgid "<b>Delete Confirmation</b>"
+msgstr "<b>Sicherheitsabfrage beim Löschen</b>"
+
+#: gtkpod.glade:12560
+msgid "Before removing playlists or tracks from a playlist"
+msgstr ""
+"Vor dem Entfernen von Wiedergabelisten oder Stücken aus einer Wiedergabeliste"
+
+#: gtkpod.glade:12580
+msgid "Before removing tracks from the iPod"
+msgstr "Vor dem vollständigen Löschen vom iPod"
+
+#: gtkpod.glade:12600
+msgid "Before removing tracks from the harddisk"
+msgstr "Vor dem vollständigen Löschen auf der Festplatte"
+
+#: gtkpod.glade:12620
+msgid "Before removing tracks from the local database"
+msgstr "Vor dem Entfernen aus der lokalen Datenbank"
+
+#: gtkpod.glade:12640
+msgid ""
+"Confirm before removing tracks from the iPod or repository\n"
+"when syncing playlists"
+msgstr ""
+
+#: gtkpod.glade:12723
+msgid "<b>Play</b>"
+msgstr "<b>Wiedergabe</b>"
+
+#: gtkpod.glade:12788
+msgid "Command for 'Play now':"
+msgstr "Befehl für 'Jetzt abspielen':"
+
+#: gtkpod.glade:12816
+msgid "Command for 'Enqueue':"
+msgstr "Befehl für 'Zum Abspielen Vormerken':"
+
+#: gtkpod.glade:12844
+msgid ""
+"For example, 'xmms %s' will clear xmms' current playlist, add the selected "
+"tracks and start playing."
+msgstr ""
+"'xmms %s', z.B., löscht die aktuelle Wiedergabeliste von xmms, fügt die "
+"ausgewählten Stücke hinzu und beginnt mit der Wiedergabe."
+
+#: gtkpod.glade:12866
+msgid ""
+"For example, 'xmms -e %s' will append (enqueue) the selected tracks to xmms' "
+"current playlist."
+msgstr ""
+"'xmms -e %s', z.B., fügt die ausgewählten Stücke zur aktuellen Playlist von "
+"xmms hinzu."
+
+#: gtkpod.glade:12953
+msgid "<b>Volume Normalization</b>"
+msgstr "<b>Lautstärkenormalisierung</b>"
+
+#: gtkpod.glade:13018
+msgid "'mp3gain' executable:"
+msgstr "'mp3gain'-Programm:"
+
+#: gtkpod.glade:13046
+msgid ""
+"Set this to 'mp3gain -q -k' to use the 'Normalize volume' functionality in "
+"the Tools Menu. If this is set, missing normalization data for mp3 files "
+"will be calculated and written to your mp3 file using this command."
+msgstr ""
+
+#: gtkpod.glade:13087
+#, fuzzy
+msgid "'aacgain' executable:"
+msgstr "'mp3gain'-Programm:"
+
+#: gtkpod.glade:13115
+msgid ""
+"Set this to 'aacgain -q -k' to use the 'Normalize volume' functionality in "
+"the Tools Menu. If this is set, missing normalization data for .m4a and .m4b "
+"files will be calculated and written to your music file using this command."
+msgstr ""
+
+#: gtkpod.glade:13183
+msgid "<b>Calendar/Contacts/Notes</b>"
+msgstr ""
+
+#: gtkpod.glade:13246
+msgid "Set options for Calendar/Contacts/Notes"
+msgstr ""
+
+#: gtkpod.glade:13381
+msgid "Details"
+msgstr "Details"
+
+#: gtkpod.glade:13449
+msgid "Cover"
+msgstr "Artwork"
+
+#: gtkpod.glade:13538
+msgid "Set Cover Art"
+msgstr "Artwork setzen"
+
+#: gtkpod.glade:13575
+msgid ""
+"If you check this, information (cover art and meta information) changed for "
+"this track will be copied to all other selected tracks as well. Use with "
+"care."
+msgstr ""
+"Wenn diese Option gewählt wird, werden alle Änderungen für das dargestellte "
+"Stück (Artwork und sonstige Angaben) automatisch in alle ausgweählten Stücke "
+"kopiert. Bitte mit Vorsicht verwenden."
+
+#: gtkpod.glade:13621
+msgid ""
+"Change all tracks\n"
+"simultaneously"
+msgstr "Alle Stücke simultan modifizieren"
+
+#: gtkpod.glade:13713
+msgid "Remove Cover Art"
+msgstr "Artwork entfernen"
+
+#: gtkpod.glade:14646
+#, fuzzy
+msgid "(Checked)"
+msgstr "Ausgewählt"
+
+#: gtkpod.glade:15088
+msgid "_Podcasts"
+msgstr ""
+
+#: gtkpod.glade:16127
+msgid "_Other"
+msgstr "_Sonstiges"
+
+#: gtkpod.glade:16425
+msgid "_Undo All"
+msgstr "_Alles Rückgängig"
+
+#: gtkpod.glade:16499
+msgid "_Undo Track"
+msgstr "_Track Rückgängig"
+
+#: gtkpod.glade:16546
+#, fuzzy
+msgid "Repository Options"
+msgstr "Sortieroptionen"
+
+#: gtkpod.glade:16667
+msgid "Add new repository/iPod"
+msgstr ""
+
+#: gtkpod.glade:16736 gtkpod.glade:18163 gtkpod.glade:18659
+#, fuzzy
+msgid "iPod mountpoint:"
+msgstr "iPod Mount _Point:"
+
+#: gtkpod.glade:16764 gtkpod.glade:18135
+msgid "iTunesDB backup:"
+msgstr ""
+
+#: gtkpod.glade:16792 gtkpod.glade:18107 gtkpod.glade:18730 gtkpod.glade:18922
+msgid "Model:"
+msgstr ""
+
+#: gtkpod.glade:16820 gtkpod.glade:18079
+msgid "Path:"
+msgstr ""
+
+#: gtkpod.glade:16848
+msgid "<b>Synchronization</b>"
+msgstr "<b>Synchronisierung</b>"
+
+#: gtkpod.glade:16906
+msgid "Contacts sync command:"
+msgstr "Befehl zum Abgleich der Kontakte:"
+
+#: gtkpod.glade:16934
+msgid "Calendar sync command:"
+msgstr "Befehl zum Abgleich des Kalenders:"
+
+#: gtkpod.glade:16962
+msgid "Notes sync command:"
+msgstr "Befehl zum Abgleich der Notizen:"
+
+#: gtkpod.glade:16991
+msgid "Call automatically when synchronizing iTunesDB"
+msgstr "Automatisch aufrufen wenn die iTunesDB abgeglichen wird"
+
+#: gtkpod.glade:17014 gtkpod.glade:17038 gtkpod.glade:17062 gtkpod.glade:17086
+#: gtkpod.glade:17110 gtkpod.glade:17134 gtkpod.glade:17658 gtkpod.glade:18435
+msgid ""
+"Specify exact path including command line options. '%i' will be replaced "
+"with the mount point of the iPod."
+msgstr ""
+"Geben sie den genauen Pfad einschließlich Kommandozeilenoptionen an. '%i' "
+"wird mit dem Mountpoint des iPods ersetzt."
+
+#: gtkpod.glade:17294
+msgid "Update/Sync all playlists now"
+msgstr ""
+
+#: gtkpod.glade:17314
+#, fuzzy
+msgid "Delete repository"
+msgstr "Vom iPod entfernen "
+
+#: gtkpod.glade:17334 src/context_menus.c:430 src/context_menus.c:448
+#: src/context_menus.c:523
+msgid "I'm sure"
+msgstr ""
+
+#: gtkpod.glade:17390
+#, fuzzy
+msgid "<b>Repositories</b>"
+msgstr "<b>Tooltips</b>"
+
+#: gtkpod.glade:17587
+msgid ""
+"Directories to sync with are determined from the filenames of the tracks in "
+"the playlist."
+msgstr ""
+
+#: gtkpod.glade:17589
+msgid "On startup automatically sync with playlist directories"
+msgstr ""
+
+#: gtkpod.glade:17608
+#, fuzzy
+msgid "On startup automatically sync with the following directory"
+msgstr "Sollen die folgenden Verzeichnisse abgeglichen werden?"
+
+#: gtkpod.glade:17702
+#, fuzzy
+msgid "Don't automatically sync on startup"
+msgstr "Beim Starten iTunes-Datenbank automatisch importieren?"
+
+#: gtkpod.glade:17848
+msgid "On startup automatically update (Live Playlist)"
+msgstr ""
+
+#: gtkpod.glade:17878
+msgid "Update/Sync playlist now"
+msgstr ""
+
+#: gtkpod.glade:17925
+#, fuzzy
+msgid "<b>Playlists</b>"
+msgstr "<b>Wiedergabe</b>"
+
+#: gtkpod.glade:18042
+#, fuzzy
+msgid "Create Repository"
+msgstr "Vom iPod entfernen "
+
+#: gtkpod.glade:18320
+msgid ""
+"Insert before\n"
+"Insert after"
+msgstr ""
+
+#: gtkpod.glade:18358
+#, fuzzy
+msgid "Repository type:"
+msgstr "Sortieroptionen"
+
+#: gtkpod.glade:18386
+msgid ""
+"iPod\n"
+"Local Repository (Standard)\n"
+"Local Repository (Podcasts)\n"
+msgstr ""
+
+#: gtkpod.glade:18407
+#, fuzzy
+msgid "Repository name:"
+msgstr "Sortieroptionen"
+
+#: gtkpod.glade:18543 gtkpod.glade:18806
+msgid "Initialize iPod"
+msgstr ""
+
+#: gtkpod.glade:18613
+msgid "<b>Please select mountpoint and your iPod model</b>"
+msgstr ""
+
 #: src/charset.c:53
 msgid "Arabic (IBM-864)"
 msgstr "Arabisch (IBM-864)"
@@ -218,7 +2100,7 @@
 
 #. sanity!
 #. check for "System Charset" and return NULL
-#: src/charset.c:160 src/charset.c:170 src/charset.c:222
+#: src/charset.c:160 src/charset.c:170 src/charset.c:223
 msgid "System Charset"
 msgstr "System-Zeichensatz"
 
@@ -231,239 +2113,227 @@
 "Eine Instanz von gtkpod läuft bereits. Der Playcount-Server wird nicht "
 "gestartet.\n"
 
-#: src/confirmation.c:361
+#: src/confirmation.c:376
 msgid "Confirmation Dialogue"
 msgstr "Sicherheitsabfrage"
 
-#: src/context_menus.c:352 src/tools.c:634
+#: src/context_menus.c:367 src/tools.c:852
 msgid "Play Now"
 msgstr "Jetzt Spielen"
 
-#: src/context_menus.c:354 src/tools.c:645
+#: src/context_menus.c:373 src/tools.c:865
 msgid "Enqueue"
 msgstr "Zum Abspielen Vormerken"
 
-#: src/context_menus.c:357
+#: src/context_menus.c:379
 #, fuzzy
 msgid "Copy Tracks to Filesystem"
 msgstr "_Aktualiere Stücke aus der Datei"
 
-#: src/context_menus.c:359 src/file_export.c:1069
+#: src/context_menus.c:386 src/file_export.c:1081
 msgid "Create Playlist File"
 msgstr "Wiedergabelistendatei erstellen"
 
-#: src/context_menus.c:361
-msgid "Edit Details"
-msgstr "Details editieren"
+#: src/context_menus.c:393
+msgid "Create new Playlist"
+msgstr "Neue Wiedergabeliste erstellen"
 
-#: src/context_menus.c:363 gtkpod.glade:12817
-msgid "Update"
-msgstr "Aktualisieren"
+#: src/context_menus.c:400
+#, fuzzy
+msgid "Update Tracks from File"
+msgstr "_Aktualiere Stücke aus der Datei"
 
-#: src/context_menus.c:365
-msgid "Sync Dirs"
-msgstr "Verzeichnisse abgleichen"
+#: src/context_menus.c:414
+msgid "Sync Playlist with Dir(s)"
+msgstr ""
 
-#: src/context_menus.c:367
-msgid "Normalize"
-msgstr "Lautstärkenormalisierung"
+#: src/context_menus.c:424
+msgid "Remove All Tracks from iPod"
+msgstr "Alle Stücke vom iPod entfernen"
 
-#: src/context_menus.c:369
-msgid "Create new Playlist"
-msgstr "Neue Wiedergabeliste erstellen"
+#: src/context_menus.c:442
+msgid "Remove All Podcasts from iPod"
+msgstr "Alle Podcasts vom iPod entfernen"
 
-#: src/context_menus.c:372
-msgid "Edit Smart Playlist"
-msgstr "Intelligente Wiedergabeliste editieren"
+#: src/context_menus.c:457
+msgid "Delete Including Tracks"
+msgstr "Löschen inklusive der Stücke"
 
-#: src/context_menus.c:378
-msgid "Alphabetize"
-msgstr "Sortieren"
+#: src/context_menus.c:465
+msgid "Delete But Keep Tracks"
+msgstr "Löschen aber Stücke behalten"
 
-#: src/context_menus.c:402
-msgid "Delete From iPod"
-msgstr "Vom iPod entfernen "
+#: src/context_menus.c:473
+#, fuzzy
+msgid "Edit iPod Properties"
+msgstr "iPod-Verzeichnisstruktur erstellen"
 
-#: src/context_menus.c:408
-msgid "Delete From Harddisk"
-msgstr "Von der Festplatte löschen"
+#: src/context_menus.c:493
+#, fuzzy
+msgid "Load iPod"
+msgstr "_iPod"
 
-#: src/context_menus.c:414
-msgid "Delete From Database"
-msgstr "Aus der Datenbank entfernen"
+#: src/context_menus.c:500
+msgid "Eject iPod"
+msgstr ""
 
-#: src/context_menus.c:420
-msgid "Delete From Playlist"
-msgstr "Von der Wiedergabeliste entfernen"
+#: src/context_menus.c:517
+msgid "Remove All Tracks from Database"
+msgstr "Alle Stücke aus der Datenbank entfernen"
 
-#: src/context_menus.c:439
-msgid "Delete Including Tracks"
-msgstr "Löschen inklusive der Stücke"
-
-#: src/context_menus.c:445
+#: src/context_menus.c:532
 msgid "Delete Including Tracks (Harddisk)"
 msgstr "Löschen inklusive der Stücke (Festplatte)"
 
-#: src/context_menus.c:451
+#: src/context_menus.c:540
 msgid "Delete Including Tracks (Database)"
 msgstr "Löschen inklusive der Stücke (Datenbank)"
 
-#: src/context_menus.c:457
-msgid "Delete But Keep Tracks"
-msgstr "Löschen aber Stücke behalten"
+#: src/context_menus.c:548
+msgid "Delete From iPod"
+msgstr "Vom iPod entfernen "
 
-#: src/context_menus.c:463
-msgid "Remove All Tracks from iPod"
-msgstr "Alle Stücke vom iPod entfernen"
+#: src/context_menus.c:556
+msgid "Delete From Playlist"
+msgstr "Von der Wiedergabeliste entfernen"
 
-#: src/context_menus.c:469
-msgid "Remove All Tracks from Database"
-msgstr "Alle Stücke aus der Datenbank entfernen"
+#: src/context_menus.c:564
+msgid "Delete From Harddisk"
+msgstr "Von der Festplatte löschen"
 
-#: src/context_menus.c:476
-msgid "Remove All Podcasts from iPod"
-msgstr "Alle Podcasts vom iPod entfernen"
+#: src/context_menus.c:572
+msgid "Delete From Database"
+msgstr "Aus der Datenbank entfernen"
 
-#: src/context_menus.c:487 gtkpod.glade:156
-msgid "Update Podcasts"
-msgstr "Podcasts erneuern"
+#: src/context_menus.c:580
+msgid "Alphabetize"
+msgstr "Sortieren"
 
-#: src/context_menus.c:494
-msgid "Podcasts Preferences"
-msgstr "Podcasts Einstellungen"
+#: src/context_menus.c:596
+#, fuzzy
+msgid "Edit Playlist Properties"
+msgstr "Wiedergabeliste aus Datei hinzufügen"
 
 #: src/date_parser.l:269
 #, c-format
 msgid "Date format error: unrecognized character: '%s'\n"
 msgstr "Datums Formatvorgabefehler: unbekanntes Zeichen: '%s'\n"
 
-#: src/details.c:1035 gtkpod.glade:4365
-msgid "n/a"
-msgstr "---"
-
-#: src/details.c:1099
+#: src/details.c:1182
 msgid "<b>n/a</b>"
 msgstr "<b>---</b>"
 
-#: src/display.c:924 src/display.c:1022 src/display.c:1071 src/display.c:1302
-#: src/display.c:1358 src/display.c:1413 src/display.c:1464 src/display.c:1628
-#: src/misc_playlist.c:274
-msgid "No playlist selected"
-msgstr "Keine Wiedergabeliste ausgewählt"
-
-#: src/display.c:934
+#: src/display.c:891
 msgid "Edit selected entry of which sort tab?"
 msgstr "Markierten Eintrag aus welchem Filter-Tab editieren?"
 
 #. no entry selected
-#: src/display.c:941 src/misc_confirm.c:441 src/misc_track.c:1482
+#: src/display.c:898 src/misc_confirm.c:431 src/misc_track.c:1613
 msgid "No entry selected."
 msgstr "Kein Tab-Eintrag ausgewählt."
 
-#: src/display.c:960 src/display.c:1040 src/display.c:1345 src/display.c:1401
-#: src/display.c:1452 src/display.c:1503
-msgid "No tracks selected"
-msgstr "Keine Stücke ausgewählt"
-
-#: src/display.c:1056 src/display.c:1322 src/display.c:1378 src/display.c:1430
-#: src/display.c:1481 src/display.c:1650
+#: src/display.c:1057 src/display.c:1384 src/display.c:1440 src/display.c:1494
+#: src/display.c:1549 src/display.c:1810
 #, c-format
 msgid "No entry selected in Sort Tab %d"
 msgstr "Kein Eintrag im Sort Tab %d ausgewählt"
 
-#: src/display.c:1095
+#: src/display.c:1096
 msgid "Remove entry of which sort tab from database?"
 msgstr "Markierten Eintrag aus welchem Filter-Tab entfernen?"
 
-#: src/display.c:1103
+#: src/display.c:1104
 msgid "Remove tracks in selected entry of which filter tab from the iPod?"
 msgstr ""
 "Stücke im ausgewählten Eintrag aus welchem Filter-Tab vom iPod löschen?"
 
-#: src/display.c:1125
+#: src/display.c:1126
 msgid "Remove tracks in selected entry of which filter tab from the harddisk?"
 msgstr ""
 "Stücke im ausgewählten Eintrag aus welchem Filter-Tab von der Festplatte "
 "löschen?"
 
-#: src/display.c:1155
+#: src/display.c:1156
 msgid "Remove tracks in selected entry of which filter tab from playlist?"
 msgstr ""
 "Stücke im ausgewählten Eintrag aus welchem Filter-Tab von der "
 "Wiedergabeliste löschen?"
 
-#: src/display.c:1174
-msgid "Currently no iPod database selected"
-msgstr "Keine iPod Datenbank ausgewählt"
+#: src/display.c:1183 src/display.c:1221
+#, c-format
+msgid ""
+"iPod at '%s' is not loaded.\n"
+"Please load it first."
+msgstr ""
 
-#: src/display.c:1202 src/display.c:1229
+#: src/display.c:1265 src/display.c:1292
 msgid "Update selected entry of which sort tab?"
 msgstr "Markierten Eintrag aus welchem Sort Tab aktualisieren?"
 
-#: src/display.c:1248
-msgid "Sync dirs of selected entry in which sort tab?"
-msgstr "Verzeichnisse aus welchem Sort Tab abgleichen?"
-
-#: src/display.c:1316
+#: src/display.c:1378
 msgid "Export selected entry of which sort tab?"
 msgstr "Markierten Eintrag aus welchem Sort Tab aktualisieren?"
 
-#: src/display.c:1372
+#: src/display.c:1434
 msgid "Create playlist file from selected entry of which sort tab?"
 msgstr ""
 "Datei mit Wiedergabeliste für ausgewählten Eintrag aus welchem Sort Tab "
 "erstellen?"
 
-#: src/display.c:1424
+#: src/display.c:1488
 msgid "Play tracks in selected entry of which sort tab?"
 msgstr "Stücke aus welchem Sort Tab abspielen?"
 
-#: src/display.c:1475
+#: src/display.c:1543
 msgid "Enqueue tracks in selected entry of which sort tab?"
 msgstr "Stücke aus welchem Sort Tab zum abspielen vormerken?"
 
-#: src/display.c:1640
+#: src/display.c:1800
 msgid "Normalize tracks in selected entry of which sort tab?"
 msgstr "Stücke aus welchem Sort Tab normalisieren?"
 
-#: src/display_itdb.c:319
-#, c-format
-msgid "Failed to set cover art: '%s'"
+#: src/display_itdb.c:355
+#, fuzzy, c-format
+msgid "Failed to set cover art: '%s'\n"
 msgstr "Konnte Artwork nicht setzen: '%s'"
 
+#: src/display_itdb.c:835 src/display_itdb.c:967 src/repository.c:1189
+#, fuzzy
+msgid "iPod"
+msgstr "_iPod"
+
+#: src/display_itdb.c:844 src/display_itdb.c:965
+msgid "Local"
+msgstr "Lokal"
+
 #. add podcast playlist
-#: src/display_itdb.c:843 src/display_itdb.c:871 src/display_itdb.c:975
-#: gtkpod.glade:13669
+#: src/display_itdb.c:852 src/display_itdb.c:963 src/display_itdb.c:991
 msgid "Podcasts"
 msgstr "Podcasts"
 
-#: src/display_itdb.c:845 src/display_itdb.c:941
-msgid "Local"
-msgstr "Lokal"
-
-#: src/display_itdb.c:1081
+#: src/display_itdb.c:1050
 #, c-format
 msgid "Increased playcount for '%s'"
 msgstr "Playcount für '%s' wurde erhöht"
 
 #. give a notice on the statusbar -- otherwise the user
 #. * will never know why the drag is not possible
-#: src/display_playlists.c:498 src/display_playlists.c:540
+#: src/display_playlists.c:496 src/display_playlists.c:538
 msgid "Error: drag from iPod not possible in offline mode."
 msgstr "Fehler: Ein Drag vom iPod ist im Offline-Modus nicht möglich."
 
-#: src/display_playlists.c:567 src/display_songs.c:285
+#: src/display_playlists.c:565 src/display_songs.c:287
 #, c-format
 msgid "Copied one track"
 msgid_plural "Copied %d tracks"
 msgstr[0] "Ein Stück kopiert"
 msgstr[1] "%d Stücke kopiert"
 
-#: src/display_playlists.c:856
+#: src/display_playlists.c:851
 msgid "Can't reorder sorted treeview."
 msgstr "Die Anzeige kann nicht umgeordnet werden."
 
-#: src/display_playlists.c:947
+#: src/display_playlists.c:944
 #, c-format
 msgid ""
 "This DND type (%d) is not (yet) supported. If you feel implementing this "
@@ -474,18 +2344,14 @@
 "denken eine Unterstützung wäre sinnvoll, kontaktieren Sie bitten den Autor.\n"
 "\n"
 
-#: src/display_playlists.c:1830 gtkpod.glade:3997
-msgid "Playlists"
-msgstr "Wiedergabelisten"
-
-#: src/display_songs.c:280
+#: src/display_songs.c:282
 #, c-format
 msgid "Moved one track"
 msgid_plural "Moved %d tracks"
 msgstr[0] "Ein Stück verschoben"
 msgstr[1] "%d Stücke verschoben"
 
-#: src/display_songs.c:1669
+#: src/display_songs.c:1690
 #, c-format
 msgid ""
 "Cannot unsort track view because of a bug in the GTK lib you are using (%d.%"
@@ -497,123 +2363,90 @@
 "möglich, die Track-Ansicht in den unsortierten Zustand zurückzusetzen.\n"
 "\n"
 
-#: src/display_songs.c:1922
+#: src/display_songs.c:1923
 msgid "Rtng"
 msgstr "Bwrtng"
 
-#: src/display_songs.c:1925
+#: src/display_songs.c:1926
 msgid "#"
 msgstr "#"
 
-#: src/display_songs.c:1928
+#: src/display_songs.c:1929
 msgid "CD"
 msgstr "CD"
 
-#: src/display_songs.c:1931
+#: src/display_songs.c:1932
 msgid "ID"
 msgstr "ID"
 
-#: src/display_songs.c:1934
+#: src/display_songs.c:1935
 msgid "Trnsfrd"
 msgstr "Ãœbertragen"
 
-#: src/display_songs.c:1938
+#: src/display_songs.c:1939
 msgid "Cmpl"
 msgstr "Smpl"
 
-#: src/display_songs.c:1942 src/display_spl.c:94
+#: src/display_songs.c:1945 src/display_spl.c:94
 msgid "Time"
 msgstr "Zeit"
 
-#: src/display_songs.c:1945
+#: src/display_songs.c:1948
 msgid "Plycnt"
 msgstr "Plycnt"
 
-#: src/display_songs.c:1948 gtkpod.glade:2433
-msgid "Played"
-msgstr "Gespielt"
-
-#: src/display_songs.c:1951 gtkpod.glade:2456
-msgid "Modified"
-msgstr "Modifiziert"
-
-#: src/display_songs.c:1954 src/display_sorttabs.c:3117 gtkpod.glade:2551
-msgid "Added"
-msgstr "Hinzugefügt"
-
-#: src/display_songs.c:1957
+#: src/display_songs.c:1960
 msgid "Released"
 msgstr "Veröffentlicht"
 
-#: src/display_songs.c:1960 src/display_sorttabs.c:2856 src/display_spl.c:88
+#: src/display_songs.c:1963 src/display_sorttabs.c:2957 src/display_spl.c:88
 #: src/misc_conversion.c:85
 msgid "Year"
 msgstr "Jahr"
 
-#: src/display_songs.c:1963
+#: src/display_songs.c:1966
 msgid "Vol."
 msgstr "Ltst."
 
-#: src/display_songs.c:1966
+#: src/display_songs.c:1969
 msgid "Sndchk."
 msgstr "Sndchk."
 
-#: src/display_sorttabs.c:400
+#: src/display_sorttabs.c:456
 msgid "'Played' condition ignored because of error."
 msgstr ""
 "Die Bedingung 'Zuletzt abgespielt' wurde aufgrund eines Fehlers ignoriert."
 
-#: src/display_sorttabs.c:403
+#: src/display_sorttabs.c:459
 msgid "'Modified' condition ignored because of error."
 msgstr ""
 "Die Bedingung 'Zuletzt modifiziert' wurde aufgrund eines Fehlers ignoriert."
 
-#: src/display_sorttabs.c:406
+#: src/display_sorttabs.c:462
 msgid "'Added' condition ignored because of error."
 msgstr "Die Bedingung 'Hinzugefügt' wurde aufgrund eines Fehlers ignoriert."
 
-#: src/display_sorttabs.c:1492 src/misc_conversion.c:60
+#: src/display_sorttabs.c:1582 src/misc_conversion.c:60
 msgid "All"
 msgstr "Alle"
 
-#: src/display_sorttabs.c:1518
+#: src/display_sorttabs.c:1608
 msgid "Compilations"
 msgstr "Sampler"
 
-#: src/display_sorttabs.c:2841 src/display_spl.c:85 src/misc_conversion.c:62
-#: gtkpod.glade:8709
-msgid "Artist"
-msgstr "Künstler"
-
-#. 0
-#: src/display_sorttabs.c:2844 src/display_spl.c:84 src/misc_conversion.c:61
-#: gtkpod.glade:8753
-msgid "Album"
-msgstr "Album"
-
-#: src/display_sorttabs.c:2847 src/display_spl.c:89 src/misc_conversion.c:64
-#: gtkpod.glade:8731
-msgid "Genre"
-msgstr "Genre"
-
-#: src/display_sorttabs.c:2850
+#: src/display_sorttabs.c:2951
 msgid "Comp."
 msgstr "Komp."
 
-#: src/display_sorttabs.c:2853 src/display_spl.c:83 src/misc_conversion.c:63
-#: gtkpod.glade:8797
-msgid "Title"
-msgstr "Titel"
-
-#: src/display_sorttabs.c:2859
+#: src/display_sorttabs.c:2960
 msgid "Special"
 msgstr "Spezial"
 
-#: src/display_sorttabs.c:3115
+#: src/display_sorttabs.c:3216
 msgid "Last Played"
 msgstr "Zuletzt Gespielt"
 
-#: src/display_sorttabs.c:3116
+#: src/display_sorttabs.c:3217
 msgid "Last Modified"
 msgstr "Zuletzt Modifiziert"
 
@@ -637,7 +2470,7 @@
 msgid "Hz"
 msgstr "Hz"
 
-#: src/display_spl.c:75 src/display_spl.c:160 src/info.c:732
+#: src/display_spl.c:75 src/display_spl.c:160 src/info.c:777
 msgid "MB"
 msgstr "MB"
 
@@ -678,15 +2511,6 @@
 msgid "Date added"
 msgstr "Hinzugefügt"
 
-#. 5
-#: src/display_spl.c:97 src/misc_conversion.c:66 gtkpod.glade:8775
-msgid "Composer"
-msgstr "Komponist"
-
-#: src/display_spl.c:98 src/misc_conversion.c:78 gtkpod.glade:2387
-msgid "Playcount"
-msgstr "Playcount"
-
 #: src/display_spl.c:99
 msgid "Last played"
 msgstr "Zuletzt Gespielt"
@@ -695,10 +2519,6 @@
 msgid "Disc number"
 msgstr "CD-Nummer"
 
-#: src/display_spl.c:101 src/misc_conversion.c:79 gtkpod.glade:2410
-msgid "Rating"
-msgstr "Bewertung"
-
 #: src/display_spl.c:102 src/misc_conversion.c:88
 msgid "Compilation"
 msgstr "Sampler"
@@ -711,10 +2531,6 @@
 msgid "Grouping"
 msgstr "Gruppierung"
 
-#: src/display_spl.c:105 gtkpod.glade:1443
-msgid "Playlist"
-msgstr "Wiedergabeliste"
-
 #: src/display_spl.c:111
 msgid "contains"
 msgstr "enthält"
@@ -789,7 +2605,7 @@
 msgid "hours"
 msgstr "Stunden"
 
-#: src/display_spl.c:163 src/info.c:732
+#: src/display_spl.c:163 src/info.c:777
 msgid "GB"
 msgstr "GB"
 
@@ -845,25 +2661,25 @@
 msgid "lowest rating"
 msgstr "niedrigste Bewertung"
 
-#: src/display_spl.c:1049 src/display_spl.c:1064
+#: src/display_spl.c:1047 src/display_spl.c:1062
 msgid "to"
 msgstr "bis"
 
-#: src/display_spl.c:1276
+#: src/display_spl.c:1279
 msgid "-"
 msgstr "-"
 
-#: src/display_spl.c:1286
+#: src/display_spl.c:1294
 msgid "+"
 msgstr "+"
 
-#: src/display_spl.c:1503 src/misc_playlist.c:67 src/misc_playlist.c:69
-#: src/misc_playlist.c:94 src/misc_playlist.c:96 src/misc_playlist.c:415
-#: src/misc_playlist.c:417
+#: src/display_spl.c:1513 src/misc_playlist.c:67 src/misc_playlist.c:69
+#: src/misc_playlist.c:94 src/misc_playlist.c:96 src/misc_playlist.c:429
+#: src/misc_playlist.c:431
 msgid "New Playlist"
 msgstr "Neue Wiedergabeliste"
 
-#: src/file.c:195
+#: src/file.c:230
 #, c-format
 msgid ""
 "'%s' is a directory, not a playlist file.\n"
@@ -872,14 +2688,14 @@
 "'%s' ist ein Verzeichnis und keine Wiedergabelistendatei.\n"
 "\n"
 
-#: src/file.c:222
+#: src/file.c:258
 #, c-format
 msgid ""
 "'%s' is a not a known playlist file.\n"
 "\n"
 msgstr "'%s' ist keine bekannte Wiedergabelistendatei.\n"
 
-#: src/file.c:239
+#: src/file.c:275
 #, c-format
 msgid ""
 "Cannot open '%s' for reading.\n"
@@ -888,44 +2704,44 @@
 "Datei '%s' konnte nicht zum Lesen geöffnet werden.\n"
 "\n"
 
-#: src/file.c:322
+#: src/file.c:359
 #, c-format
 msgid "Skipping '%s' because it is a directory.\n"
 msgstr "Ãœberspringe '%s' da es sich um ein Verzeichnis handelt.\n"
 
-#: src/file.c:327
+#: src/file.c:364
 #, c-format
 msgid "Skipping '%s' to avoid adding playlist file recursively\n"
 msgstr ""
 "Ãœberspringe '%s' um eine Endloseschleife zu vermeiden (Playliste kann sich "
 "nicht selbst indizieren).\n"
 
-#: src/file.c:582
+#: src/file.c:619
 #, c-format
 msgid "Unknown token '%s' in template '%s'\n"
 msgstr "Unbekanntes Token '%s' in der Schablone '%s'\n"
 
-#: src/file.c:817
+#: src/file.c:871
 #, c-format
 msgid "Local filename not valid (%s)"
 msgstr "Lokaler Dateiname ist nicht gültig (%s)"
 
-#: src/file.c:870
+#: src/file.c:930
 #, c-format
 msgid "No information found for user '%s' in '%s'"
 msgstr "Keine Informationen für den Benutzer '%s' gefunden in '%s'"
 
-#: src/file.c:877
+#: src/file.c:939
 #, c-format
 msgid "mserv data file (%s) not available for track (%s)"
 msgstr "mserv Datei (%s) nicht verfügbar für Track (%s)"
 
-#: src/file.c:885
+#: src/file.c:947
 #, c-format
 msgid "Track (%s) not in mserv music root directory (%s)"
 msgstr "Track (%s) ist nicht im mserv Root-Verzeichnis (%s)"
 
-#: src/file.c:990
+#: src/file.c:1055
 #, c-format
 msgid ""
 "The following track could not be processed (file does not exist): '%s'\n"
@@ -933,14 +2749,14 @@
 "Das folgende Stück konnte nicht bearbeitet werden (Datei existiert nicht): '%"
 "s'\n"
 
-#: src/file.c:1039
+#: src/file.c:1118
 #, c-format
 msgid "The following track could not be processed (filetype unknown): '%s'\n"
 msgstr ""
 "Das folgende Stück konnte nicht bearbeitet werden (Dateityp unbekannt): '%"
 "s'\n"
 
-#: src/file.c:1121
+#: src/file.c:1211
 #, c-format
 msgid ""
 "The following track could not be processed (filetype is known but analysis "
@@ -949,127 +2765,37 @@
 "Das folgende Stück konnte nicht bearbeitet werden (Dateityp ist bekannt aber "
 "die Analyse schlug fehl): '%s'\n"
 
-#: src/file.c:1150 src/file.c:1205
+#: src/file.c:1241 src/file.c:1295
 msgid "Nothing to update"
 msgstr "Nichts zum Aktualisieren"
 
-#: src/file.c:1170
+#: src/file.c:1262
 #, c-format
 msgid "Updating %s"
 msgstr "Aktualisiere '%s'"
 
-#: src/file.c:1186
+#: src/file.c:1276
 msgid "Updated selected tracks with info from file."
 msgstr ""
 "Die ausgewählten Stücke wurden mit Informationen aus der Datei aktualisiert."
 
-#: src/file.c:1218
+#: src/file.c:1310
 #, c-format
 msgid "Retrieving mserv data %s"
 msgstr "Hole mserv Daten %s"
 
-#. no path available
-#: src/file.c:1224 src/file.c:1902
+#: src/file.c:1315
 msgid "no filename available"
 msgstr "Es steht kein Dateiname zur Verfügung"
 
-#: src/file.c:1229
+#: src/file.c:1320
 msgid "Updated selected tracks with data from mserv."
 msgstr ""
 "Die ausgewählten Stücke wurden mit Informationen aus der mserv-Datenbank "
 "aktualisiert."
 
-#: src/file.c:1296
+#: src/file.c:1341
 #, c-format
-msgid "Syncing directory '%s'"
-msgstr "Verzeichnis '%s' wird abgeglichen"
-
-#: src/file.c:1321
-msgid "Syncing completed. No files deleted."
-msgstr "Abgleich beendet. Keine Dateien gelöscht."
-
-#. gint id,
-#. gboolean modal,
-#. title
-#. label
-#. scrolled text
-#: src/file.c:1434
-msgid "Never delete any files when syncing"
-msgstr "Beim Abgleich nie Dateien löschen"
-
-#: src/file.c:1463
-msgid "Syncing completed."
-msgstr "Abgleich beendet."
-
-#: src/file.c:1483
-msgid "Syncing aborted"
-msgstr "Abgleich abgebrochen."
-
-#: src/file.c:1521
-msgid "No tracks in selection"
-msgstr "Keine Stücke ausgewählt"
-
-#: src/file.c:1571
-#, c-format
-msgid "'%s' is not a directory. Ignored.\n"
-msgstr "'%s' ist kein Verzeichnis und wird ignoriert.\n"
-
-#. no directory names available
-#: src/file.c:1601
-msgid ""
-"No directory names were stored. Make sure that you enable 'Write extended "
-"information' in the Export section of the preferences at the time of "
-"importing files.\n"
-"\n"
-"To synchronize directories now, activate the duplicate detection ('Don't "
-"allow file duplication') in the Import section and add the directories you "
-"want to sync again.\n"
-msgstr ""
-"Es wurden keine Verzeichnisnamen gespeichert. Stellen Sie sicher, daß die "
-"Option 'Erweiterte Informationen Schreiben' in der Export-Sektion der "
-"Einstellungen zum Zeitpunkt des Dateiimports aktiviert ist.\n"
-"\n"
-"Wenn Sie jetzt ein Verzeichnis abgleichen wollen, aktivieren Sie bitte die "
-"Option 'Mehrfaches Einlesen von Stücken verhindern' in der Import-Sektion "
-"und fügen anschließend die gewünschten Verzeichnisse erneut hinzu.\n"
-
-#: src/file.c:1605
-msgid "No valid directories have been found. Sync aborted.\n"
-msgstr ""
-"Es wurden keine gültigen Verzeichnisse gefunden. Abgleich wurde "
-"abgebrochen.\n"
-
-#: src/file.c:1614
-msgid ""
-"The (former) contents of the following directories will be removed from the "
-"database:\n"
-"\n"
-msgstr ""
-"Die (ehemaligen) Inhalte folgender Verzeichnisse werden aus der Datenbank "
-"entfernt:\n"
-"\n"
-
-#: src/file.c:1622
-msgid ""
-"The following directories will be synchronized:\n"
-"\n"
-msgstr ""
-"Die folgenden Verzeichnisse werden synchronisiert:\n"
-"\n"
-
-#. gint id,
-#. gboolean modal,
-#: src/file.c:1633
-msgid "Synchronize directories"
-msgstr "Verzeichnisse abgleichen"
-
-#. title
-#: src/file.c:1634
-msgid "OK to synchronize the following directories?"
-msgstr "Sollen die folgenden Verzeichnisse abgeglichen werden?"
-
-#: src/file.c:1672
-#, c-format
 msgid "The following track could not be updated"
 msgid_plural "The following %d tracks could not be updated"
 msgstr[0] "Das folgende Stück konnte nicht aktualisiert werden"
@@ -1077,11 +2803,11 @@
 
 #. gint id,
 #. gboolean modal,
-#: src/file.c:1678
+#: src/file.c:1347
 msgid "Failed Track Update"
 msgstr "Aktualisierung fehlgeschlagen"
 
-#: src/file.c:1736
+#: src/file.c:1405
 #, c-format
 msgid "The following track has been updated"
 msgid_plural "The following %d tracks have been updated"
@@ -1090,11 +2816,11 @@
 
 #. gint id,
 #. gboolean modal,
-#: src/file.c:1742
+#: src/file.c:1411
 msgid "Successful Track Update"
 msgstr "Aktualisierung erfolgreich"
 
-#: src/file.c:1801
+#: src/file.c:1470
 #, c-format
 msgid "No mserv information could be retrieved for the following track"
 msgid_plural ""
@@ -1106,66 +2832,90 @@
 
 #. gint id,
 #. gboolean modal,
-#: src/file.c:1807
+#: src/file.c:1476
 msgid "mserv data retrieval problem"
 msgstr "Problem beim Nachschlagen der mserv Daten"
 
-#: src/file.c:1948
-msgid "file not found"
-msgstr "Datei nicht gefunden"
+#: src/file.c:1565
+msgid "no local filename available, file on the iPod will be used instead"
+msgstr ""
 
-#: src/file.c:1952
-msgid "format not supported"
+#: src/file.c:1571
+msgid "no local filename available and copy on iPod cannot be found"
+msgstr ""
+
+#: src/file.c:1575 src/file.c:1593
+#, fuzzy
+msgid "no local filename available"
+msgstr "Es steht kein Dateiname zur Verfügung"
+
+#: src/file.c:1583
+msgid "local file could not be found, file on the iPod will be used instead"
+msgstr ""
+
+#: src/file.c:1589
+msgid "local file as well as copy on the iPod cannot be found"
+msgstr ""
+
+#. update not successful -- log this track for later display
+#: src/file.c:1651
+#, fuzzy
+msgid "update failed (format no supported?)"
 msgstr "Format wird nicht unterstützt"
 
-#: src/file.c:2033
+#: src/file.c:1734
 #, c-format
 msgid "Processing '%s'..."
 msgstr "Bearbeite '%s'..."
 
-#: src/file.c:2137 src/misc_track.c:1169 src/misc_track.c:1225
+#: src/file.c:1740
 #, c-format
+msgid "File skipped. match exclude masks: '%s'\n"
+msgstr ""
+
+#: src/file.c:1852 src/misc_track.c:1299 src/misc_track.c:1355
+#, c-format
 msgid ""
 "Podcast already present: '%s'\n"
 "\n"
 msgstr "Podcast ist bereits vorhanden: '%s'\n"
 
-#: src/file.c:2198
+#: src/file.c:1913
 #, c-format
 msgid ""
 "Writing to video files not yet supported (%s).\n"
 "\n"
 msgstr "Schreiben in Videodateien wird noch nicht unterstützt (%s).\n"
 
-#: src/file.c:2252 src/file.c:2266
+#: src/file.c:1965 src/file.c:1979
 #, c-format
 msgid "Couldn't change tags of file: %s\n"
 msgstr "Konnte Tags der Datei '%s' nicht ändern\n"
 
-#: src/file.c:2550
+#: src/file.c:2076
 #, c-format
 msgid "Could not open '%s' for reading and writing.\n"
 msgstr "Datei '%s' konnte nicht zum Lesen und Schreiben geöffnet werden.\n"
 
-#: src/file.c:2557
+#: src/file.c:2083
 #, c-format
 msgid "Could not obtain lock on '%s'.\n"
 msgstr "Lock auf '%s' konnte nicht erstellt werden.\n"
 
 #. error!
-#: src/file.c:2574 src/file.c:2583 src/file.c:2594 src/file.c:2604
+#: src/file.c:2100 src/file.c:2109 src/file.c:2120 src/file.c:2130
 #, c-format
 msgid "Malformed line in '%s': %s\n"
 msgstr "Ungültige Zeile in '%s': %s\n"
 
 #. gint id,
 #. gboolean modal,
-#: src/file.c:2633
+#: src/file.c:2159
 msgid "Remove offline playcounts?"
 msgstr "Sollen Offline-Playcounts gelöscht werden?"
 
 #. title
-#: src/file.c:2634
+#: src/file.c:2160
 msgid ""
 "Some tracks played offline could not be found in the iTunesDB. Press 'OK' to "
 "remove them from the offline playcount file, 'Cancel' to keep them."
@@ -1174,106 +2924,106 @@
 "werden. Wählen Sie 'OK', um diese aus der Playcount-Datei zu entfernen, "
 "'Abbrechen' um sie beizubehalten."
 
-#: src/file.c:2651
+#: src/file.c:2177
 #, c-format
 msgid "Error writing to '%s'.\n"
 msgstr "Fehler beim Schreiben in die Datei '%s'.\n"
 
-#: src/file.c:2700
+#: src/file.c:2232 src/tools.c:269
 #, c-format
 msgid ""
 "Normalization failed: file type not supported (%s).\n"
 "\n"
 msgstr "Normalisierung fehlgeschlagen: Dateityp nicht unterstützt (%s).\n"
 
-#: src/file.c:2715
+#: src/file.c:2248 src/tools.c:286
 #, c-format
 msgid ""
 "Normalization failed: file not available (%s).\n"
 "\n"
 msgstr "Normalisierung fehlgeschlagen: Datei ist nicht verfügbar (%s).\n"
 
-#: src/file_export.c:181
+#: src/file_export.c:182
 #, c-format
 msgid "Skipping existing file with same length: '%s'\n"
 msgstr "Überspringe existierende Datei mit gleicher Dateilänge: '%s'\n"
 
-#: src/file_export.c:189
+#: src/file_export.c:190
 #, c-format
 msgid "Overwriting existing file: '%s'\n"
 msgstr "Ãœberschreibe die vorhandene Datei: '%s'\n"
 
-#: src/file_export.c:206
+#: src/file_export.c:207
 #, c-format
 msgid "Error copying '%s' to '%s': Permission Error (%s)\n"
 msgstr "Fehler beim Kopieren von '%s' nach '%s': Zugriffsfehler (%s)\n"
 
-#: src/file_export.c:208
+#: src/file_export.c:209
 #, c-format
 msgid "Error copying '%s' to '%s' (%s)\n"
 msgstr "Fehler beim Kopieren von '%s' nach '%s' (%s)\n"
 
-#: src/file_export.c:216
+#: src/file_export.c:217
 #, c-format
 msgid "Unable to open '%s' for reading\n"
 msgstr "Kann '%s' nicht zum Lesen öffnen.\n"
 
-#: src/file_export.c:323
+#: src/file_export.c:327
 #, c-format
 msgid "Could find file for '%s' on the iPod\n"
 msgstr "Konnte Datei für '%s' auf dem iPod nicht finden\n"
 
 #. create the dialog window
-#: src/file_export.c:390 src/file_itunesdb.c:1062 src/tools.c:148
+#: src/file_export.c:395 src/file_itunesdb.c:1230 src/tools.c:359
 msgid "Information"
 msgstr "Information"
 
-#: src/file_export.c:401 src/tools.c:160
+#: src/file_export.c:406 src/tools.c:371
 msgid "Press button to abort."
 msgstr "Zum Abbrechen bitte anklicken."
 
-#: src/file_export.c:414
+#: src/file_export.c:419
 msgid "copying..."
 msgstr "kopiere..."
 
-#: src/file_export.c:468
+#: src/file_export.c:472
 #, c-format
 msgid "Failed to write '%s-%s'\n"
 msgstr "Konnte '%s-%s' nicht schreiben\n"
 
-#: src/file_export.c:476
+#: src/file_export.c:485
 #, c-format
 msgid "Copied %d of %d track."
 msgid_plural "Copied %d of %d tracks."
 msgstr[0] "%d von insgesamt %d Stück kopiert."
 msgstr[1] "%d von insgesamt %d Stücken kopiert."
 
-#: src/file_export.c:494 src/file_itunesdb.c:1326 src/tools.c:307
+#: src/file_export.c:501 src/file_itunesdb.c:1495 src/tools.c:517
 #, c-format
 msgid "%d%% (%d:%02d:%02d left)"
 msgstr "%d%% (noch %d:%02d:%02d)"
 
-#: src/file_export.c:503
+#: src/file_export.c:510
 msgid "Some tracks were not copied."
 msgstr "Einige Stücke wurden nicht kopiert."
 
-#: src/file_export.c:560
+#: src/file_export.c:575
 msgid "Export from iPod database not possible in offline mode."
 msgstr "Ein Export vom iPod ist im Offline-Modus nicht möglich."
 
-#: src/file_export.c:568
+#: src/file_export.c:583
 msgid "Select Export Destination Directory"
 msgstr "Wählen Sie das Zielverzeichnis für den Export aus"
 
-#: src/file_export.c:717
+#: src/file_export.c:732
 msgid "Drag from iPod database not possible in offline mode."
 msgstr "Ein Drag vom iPod ist im Offline-Modus nicht möglich."
 
-#: src/file_export.c:751
+#: src/file_export.c:766
 msgid "The following tracks have to be copied to your harddisk"
 msgstr "Die folgende Stücke müssen auf Ihre Festplatte kopiert werden"
 
-#: src/file_export.c:796
+#: src/file_export.c:811
 msgid ""
 "Some tracks were not copied to your harddisk. Only the copied tracks will be "
 "included in the current drag and drop operation.\n"
@@ -1283,7 +3033,7 @@
 "Stücke werden in der momentanen Drag-And-Drop-Aktion beachtet werden.\n"
 "\n"
 
-#: src/file_export.c:992
+#: src/file_export.c:1006
 #, c-format
 msgid ""
 "No valid filename for: %s\n"
@@ -1292,14 +3042,14 @@
 "Kein gültiger Dateiname für %s\n"
 "\n"
 
-#: src/file_export.c:1008
+#: src/file_export.c:1022
 #, c-format
 msgid "Created playlist with one track."
 msgid_plural "Created playlist with %d tracks."
 msgstr[0] "Wiedergabeliste mit einem Stück erstellt."
 msgstr[1] "Wiedergabeliste mit %d Stücken erstellt."
 
-#: src/file_export.c:1015
+#: src/file_export.c:1027
 #, c-format
 msgid ""
 "Could not open '%s' for writing (%s).\n"
@@ -1308,27 +3058,27 @@
 "Datei '%s' konnte nicht zum Schreiben geöffnet werden. (%s)\n"
 "\n"
 
-#: src/file_itunesdb.c:114
+#: src/file_itunesdb.c:115
 #, c-format
 msgid "Matching MD5 checksum for file %d/%d"
 msgstr "Suche passende MD5 Prüfsumme für Datei %d/%d"
 
-#: src/file_itunesdb.c:242
+#: src/file_itunesdb.c:223
 msgid "Could not open \"iTunesDB.ext\" for reading extended info.\n"
 msgstr ""
 "Datei 'iTunesDB.ext' mit den erweiterten Infos konnte nicht zum Lesen "
 "geöffnet werden.\n"
 
-#: src/file_itunesdb.c:249
+#: src/file_itunesdb.c:230
 msgid "Could not create hash value from itunesdb\n"
 msgstr "Konnte keine Checksumme für die iTunesDB bilden\n"
 
-#: src/file_itunesdb.c:263
+#: src/file_itunesdb.c:244
 #, c-format
 msgid "Error while reading extended info: %s\n"
 msgstr "Fehler beim Lesen der erweiterten Informationen: '%s'\n"
 
-#: src/file_itunesdb.c:280
+#: src/file_itunesdb.c:261
 #, c-format
 msgid ""
 "iTunesDB '%s' does not match checksum in extended information file '%s'\n"
@@ -1342,7 +3092,7 @@
 "Zeit in Anspruch nehmen.\n"
 "\n"
 
-#: src/file_itunesdb.c:292
+#: src/file_itunesdb.c:273
 #, c-format
 msgid ""
 "%s:\n"
@@ -1351,7 +3101,7 @@
 "%s:\n"
 "'itunesdb_hash=' erwartet, aber '%s' gefunden\n"
 
-#: src/file_itunesdb.c:352
+#: src/file_itunesdb.c:333
 #, c-format
 msgid ""
 "%s:\n"
@@ -1360,7 +3110,7 @@
 "%s:\n"
 "Formatfehler: %s\n"
 
-#: src/file_itunesdb.c:407
+#: src/file_itunesdb.c:377
 msgid ""
 "No MD5 checksums on individual tracks are available.\n"
 "\n"
@@ -1376,7 +3126,7 @@
 "iPod außer mit gtkpod noch mit anderen Programmen zu verwenden.\n"
 "\n"
 
-#: src/file_itunesdb.c:462
+#: src/file_itunesdb.c:439
 msgid ""
 "Extended info will not be used. If you have non-transferred tracks,\n"
 "these will be lost.\n"
@@ -1384,15 +3134,15 @@
 "Die erweiterten Informationen werden nicht verwendet. Nicht auf den iPod "
 "übertragene Stücke gehen verloren.\n"
 
-#: src/file_itunesdb.c:470
+#: src/file_itunesdb.c:447
 msgid "Offline iPod database successfully imported"
 msgstr "Die Offline-iPod-Datenbank wurde erfolgreich eingelesen"
 
-#: src/file_itunesdb.c:473
+#: src/file_itunesdb.c:450
 msgid "Local database successfully imported"
 msgstr "Lokale Datenbank wurde erfolgreich eingelesen"
 
-#: src/file_itunesdb.c:481
+#: src/file_itunesdb.c:458
 #, c-format
 msgid ""
 "Offline iPod database import failed: '%s'\n"
@@ -1401,7 +3151,7 @@
 "Das Einlesen der Offline-iPod-Datenbank schlug fehl: '%s'\n"
 "\n"
 
-#: src/file_itunesdb.c:485
+#: src/file_itunesdb.c:462
 #, c-format
 msgid ""
 "Local database import failed: '%s'\n"
@@ -1410,7 +3160,7 @@
 "Das Einlesen der lokalen Datenbank schlug fehl: '%s'\n"
 "\n"
 
-#: src/file_itunesdb.c:492
+#: src/file_itunesdb.c:469
 msgid ""
 "Offline iPod database import failed: \n"
 "\n"
@@ -1418,7 +3168,7 @@
 "Das Einlesen der Offline-iPod-Datenbank schlug fehl:\n"
 "\n"
 
-#: src/file_itunesdb.c:495
+#: src/file_itunesdb.c:472
 msgid ""
 "Local database import failed: \n"
 "\n"
@@ -1426,7 +3176,7 @@
 "Das Einlesen der lokalen Datenbank schlug fehl:\n"
 "\n"
 
-#: src/file_itunesdb.c:502 src/file_itunesdb.c:550
+#: src/file_itunesdb.c:479
 #, c-format
 msgid ""
 "'%s' does not exist. Import aborted.\n"
@@ -1435,15 +3185,15 @@
 "'%s' existiert nicht. Einlesen abgebrochen.\n"
 "\n"
 
-#: src/file_itunesdb.c:521
+#: src/file_itunesdb.c:502
 msgid "Extended info will not be used.\n"
 msgstr "Erweiterte Informationen werden nicht verwendet.\n"
 
-#: src/file_itunesdb.c:528
+#: src/file_itunesdb.c:509
 msgid "iPod Database Successfully Imported"
 msgstr "iPod Datenbank wurde erfolgreich eingelesen"
 
-#: src/file_itunesdb.c:535
+#: src/file_itunesdb.c:516
 #, c-format
 msgid ""
 "iPod Database Import Failed: '%s'\n"
@@ -1452,7 +3202,7 @@
 "Das Einlesen der iPod Datenbank schlug fehl: '%s'\n"
 "\n"
 
-#: src/file_itunesdb.c:541
+#: src/file_itunesdb.c:522
 msgid ""
 "iPod Database Import Failed.\n"
 "\n"
@@ -1460,18 +3210,37 @@
 "Das Einlesen der iPod Datenbank schlug fehl\n"
 "\n"
 
-#: src/file_itunesdb.c:890
+#: src/file_itunesdb.c:531
+#, fuzzy, c-format
+msgid ""
+"'%s' (or similar) does not exist. Import aborted.\n"
+"\n"
+msgstr ""
+"'%s' existiert nicht. Einlesen abgebrochen.\n"
+"\n"
+
+#: src/file_itunesdb.c:817
 #, c-format
+msgid ""
+"Could not find iPod directory structure at '%s'.\n"
+"If you are sure that the iPod is properly mounted at '%s', gtkpod can create "
+"the directory structure for you.\n"
+"\n"
+"Do you want to create the directory structure now?\n"
+msgstr ""
+
+#: src/file_itunesdb.c:1071
+#, c-format
 msgid "Could not open \"%s\" for writing extended info.\n"
 msgstr ""
 "Datei '%s' konnte nicht zum Schreiben der erweiterten Infos geöffnet "
 "werden.\n"
 
-#: src/file_itunesdb.c:905
+#: src/file_itunesdb.c:1086
 msgid "Aborted writing of extended info.\n"
 msgstr "Schreiben der erweiterten Infos abgebrochen.\n"
 
-#: src/file_itunesdb.c:1073
+#: src/file_itunesdb.c:1241
 msgid ""
 "Press button to abort.\n"
 "Export can be continued at a later time."
@@ -1479,27 +3248,27 @@
 "Zum Abbrechen bitte anklicken.\n"
 "Der Export kann zu einem späteren Zeitpunkt fortgesetzt werden."
 
-#: src/file_itunesdb.c:1142
+#: src/file_itunesdb.c:1310
 msgid "deleting..."
 msgstr "Entferne gelöschte Tracks..."
 
-#: src/file_itunesdb.c:1246
+#: src/file_itunesdb.c:1413
 msgid "preparing to copy..."
 msgstr "Vorbereitung zum Kopieren..."
 
-#: src/file_itunesdb.c:1309
+#: src/file_itunesdb.c:1480
 #, c-format
 msgid "Copied %d of %d new track."
 msgid_plural "Copied %d of %d new tracks."
 msgstr[0] "%d von insgesamt %d Stück kopiert."
 msgstr[1] "%d von insgesamt %d Stücken kopiert."
 
-#: src/file_itunesdb.c:1336
+#: src/file_itunesdb.c:1506
 msgid "Some tracks were not written to iPod. Export aborted!"
 msgstr ""
 "Einige Stücke wurden nicht auf den iPod übertragen. Export abgebrochen!"
 
-#: src/file_itunesdb.c:1389
+#: src/file_itunesdb.c:1557
 #, c-format
 msgid ""
 "You did not import the existing iTunesDB ('%s'). This is most likely "
@@ -1517,7 +3286,7 @@
 "'Abbrechen', um jetzt nicht zu speichern. Wenn Sie den Vorgang abbrechen, "
 "können Sie die existierende Datenbank einlesen und dann erneut abgleichen.\n"
 
-#: src/file_itunesdb.c:1419
+#: src/file_itunesdb.c:1588
 msgid ""
 "iPod directory structure must be present before synching to the iPod can be "
 "performed.\n"
@@ -1525,60 +3294,63 @@
 "Die iPod Verzeichnisstruktur muß vorhanden sein bevor Daten auf den iPod "
 "kopiert werden können.\n"
 
-#: src/file_itunesdb.c:1428
+#: src/file_itunesdb.c:1597
 msgid "Some tracks could not be deleted from the iPod. Export aborted!"
 msgstr ""
 "Einige Dateien konnten nicht vom iPod gelöscht werden. Export abgebrochen!"
 
-#: src/file_itunesdb.c:1444
-msgid "Now writing iTunesDB. Please wait..."
+#: src/file_itunesdb.c:1613
+#, fuzzy
+msgid "Now writing database. Please wait..."
 msgstr "Schreibe iTunesDB. Bitte warten..."
 
-#: src/file_itunesdb.c:1490
+#: src/file_itunesdb.c:1659
 #, c-format
 msgid "Extended information file not deleted: '%s'"
 msgstr "Die Datei mit den erweiterten Informationen wurde nicht gefunden: '%s'"
 
-#: src/file_itunesdb.c:1577
-msgid "iPod Database Saved"
+#: src/file_itunesdb.c:1745
+#, fuzzy, c-format
+msgid "%s: Database saved"
 msgstr "iPod Datenbank gespeichert"
 
-#: src/file_itunesdb.c:1636
-msgid "Syncing contacts, calendar and notes..."
-msgstr "Gleiche Kontakte, Kalender und Notizen ab..."
+#: src/file_itunesdb.c:1749
+#, c-format
+msgid "%s: Changes saved"
+msgstr ""
 
-#: src/fileselection.c:123
+#: src/fileselection.c:127
 msgid "Successfully added files"
 msgstr "Dateien wurden erfolgreich hinzugefügt"
 
-#: src/fileselection.c:125
+#: src/fileselection.c:129
 msgid "Some files were not added successfully"
 msgstr "Einige Dateien wurden nicht erfolgreich eingelesen"
 
 #. Create the file chooser, and handle the response
-#: src/fileselection.c:148
+#: src/fileselection.c:157
 msgid "Add Files"
 msgstr "Files hinzufügen"
 
 #. Create the file chooser, and handle the response
-#: src/fileselection.c:227
+#: src/fileselection.c:250
 msgid "Add Playlists"
 msgstr "Wiedergabeliste hinzufügen"
 
 #. Create the file chooser, and handle the response
-#: src/fileselection.c:270
+#: src/fileselection.c:297
 msgid "Set Cover"
 msgstr "Cover auswählen"
 
-#: src/fileselection.c:491
+#: src/fileselection.c:718
 msgid "Select directory to add recursively"
 msgstr "Wählen Sie Verzeichnisse zum Hinzufügen"
 
-#: src/fileselection.c:759
+#: src/fileselection.c:989
 msgid "Ok"
 msgstr "OK"
 
-#: src/fileselection.c:768
+#: src/fileselection.c:998
 msgid "Cancel"
 msgstr "Abbrechen"
 
@@ -1641,55 +3413,73 @@
 msgid "%s: option `-W %s' doesn't allow an argument\n"
 msgstr "%s: die Option '-W %s' läßt keine Argumente zu\n"
 
-#: src/info.c:377
+#: src/info.c:383
 msgid "n/c"
 msgstr "---"
 
-#: src/info.c:382 src/info.c:793
+#: src/info.c:388 src/info.c:835
 msgid "offline"
 msgstr "offline"
 
-#: src/info.c:469
+#: src/info.c:483
 #, c-format
 msgid " P:%d T:%d/%d"
 msgstr " P:%d S:%d/%d"
 
-#: src/info.c:732
+#: src/info.c:777
 msgid "B"
 msgstr "B"
 
-#: src/info.c:732
+#: src/info.c:777
 msgid "kB"
 msgstr "kB"
 
-#: src/info.c:732
+#: src/info.c:777
 msgid "TB"
 msgstr "TB"
 
-#: src/info.c:778
+#: src/info.c:820
 #, c-format
 msgid " %s Free"
 msgstr " %s frei"
 
-#: src/info.c:783
+#: src/info.c:825
 #, c-format
 msgid " %s Pending"
 msgstr " %s voll"
 
-#: src/info.c:788
+#: src/info.c:830
 msgid " disconnected"
 msgstr " nicht verbunden"
 
-#: src/md5.c:159
+#: src/info.c:881
+#, fuzzy
+msgid "No database or playlist selected"
+msgstr "Keine Wiedergabeliste ausgewählt"
+
+#: src/info.c:886
+msgid "No tracks selected"
+msgstr "Keine Stücke ausgewählt"
+
+#: src/info.c:891
+msgid "No playlist selected"
+msgstr "Keine Wiedergabeliste ausgewählt"
+
+#: src/info.c:896
+#, fuzzy
+msgid "No iPod or iPod playlist selected"
+msgstr "Keine Wiedergabeliste ausgewählt"
+
+#: src/md5.c:187
 msgid "Hashed file is 0 bytes long\n"
 msgstr "Das Files, für das eine Prüfsumme berechnet werden soll, ist leer.\n"
 
-#: src/md5.c:208
+#: src/md5.c:240
 #, c-format
 msgid "Could not open '%s' to calculate MD5 checksum: %s\n"
 msgstr "Konnte '%s' zum Berechnen der MD5-Prüfsumme nicht öffnen: %s\n"
 
-#: src/misc.c:78
+#: src/misc.c:79
 #, c-format
 msgid ""
 "gtkpod Version %s: Cross-Platform Multi-Lingual Interface to Apple's iPod"
@@ -1698,7 +3488,7 @@
 "gtkpod Version %s: Plattformübergreifendes internationalisiertes GUI für "
 "Apples iPod(tm)."
 
-#: src/misc.c:82
+#: src/misc.c:83
 msgid ""
 "(C) 2002 - 2005\n"
 "Jorg Schuler (jcsjcs at users dot sourceforge dot net)\n"
@@ -1712,7 +3502,7 @@
 "\n"
 "\n"
 
-#: src/misc.c:88
+#: src/misc.c:89
 msgid ""
 "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 "
@@ -1746,7 +3536,7 @@
 "\n"
 "\n"
 
-#: src/misc.c:96
+#: src/misc.c:97
 msgid ""
 "Patches were supplied by the following people (list may be incomplete -- "
 "please contact me)\n"
@@ -1756,36 +3546,36 @@
 "please contact me)\n"
 "\n"
 
-#: src/misc.c:98
+#: src/misc.c:99
 msgid "Ramesh Dharan: Multi-Edit (edit tags of several tracks in one run)\n"
 msgstr "Ramesh Dharan: 'Multi-Edit' (Tags mehrerer Stücke auf einmal ändern)\n"
 
-#: src/misc.c:100
+#: src/misc.c:101
 msgid "Hiroshi Kawashima: Japanese charset autodetecion feature\n"
 msgstr "Hiroshi Kawashima: Automatische Erkennung japanischer Zeichensätze\n"
 
-#: src/misc.c:102
+#: src/misc.c:103
 msgid "Adrian Ulrich: porting of playlist code from mktunes.pl to itunesdb.c\n"
 msgstr ""
 "Adrian Ulrich: Portierung des Wiedergabelisten-Codes von mktunes.pl nach "
 "itunesdb.c\n"
 
-#: src/misc.c:104
+#: src/misc.c:105
 msgid ""
 "Walter Bell: correct handling of DND URIs with escaped characters and/or cr/"
 "newlines at the end\n"
 msgstr "Walter Bell: Korrekte Handhabung der kodierten DND URIs\n"
 
-#: src/misc.c:106
+#: src/misc.c:107
 msgid "Sam Clegg: user defined filenames when exporting tracks from the iPod\n"
 msgstr ""
 "Sam Clegg: benutzerdefinierte Dateinamen beim Kopieren von Stücken vom iPod\n"
 
-#: src/misc.c:108
+#: src/misc.c:109
 msgid "Chris Cutler: automatic creation of various playlist types\n"
 msgstr "Chris Cutler: automatische Erstellung diverser Wiedergabelisten\n"
 
-#: src/misc.c:110
+#: src/misc.c:111
 msgid ""
 "Graeme Wilford: reading and writing of the 'Composer' ID3 tags, progress "
 "dialogue during sync\n"
@@ -1793,7 +3583,7 @@
 "Graeme Wilford: Lesen und Schreiben der 'Komponisten' ID3-Tags, "
 "Fortschrittsbalken während iTunesDB-Abgleich.\n"
 
-#: src/misc.c:112
+#: src/misc.c:113
 msgid ""
 "Edward Matteucci: debugging, special playlist creation, most of the volume "
 "normalizing code\n"
@@ -1801,27 +3591,27 @@
 "Edward Matteucci: Debugging, diverse Wiedergabelistengenerierung, Hauptteil "
 "des Codes für Lautstärkenormalisierung\n"
 
-#: src/misc.c:114
+#: src/misc.c:115
 msgid "Jens Lautenbach: some optical improvements\n"
 msgstr "Jens Lautenbach: optische Verbesserungen\n"
 
-#: src/misc.c:116
+#: src/misc.c:117
 msgid "Alex Tribble: iPod eject patch\n"
 msgstr "Alex Tribble: Patch zum Auswurf des iPods\n"
 
-#: src/misc.c:118
+#: src/misc.c:119
 msgid "Yaroslav Halchenko: Orphaned and dangling tracks handling\n"
 msgstr ""
 "Yaroslav Halchenko: Bearbeitung von verwaisten und verlorenen Stücken\n"
 
-#: src/misc.c:120
+#: src/misc.c:121
 msgid ""
 "Andrew Huntwork: Filename case sensitivity fix and various other bugfixes\n"
 msgstr ""
 "Andrew Huntwork: Fix zur Groß-/Kleinschreibung von Dateinamen und "
 "verschiedene Andere Korrekturen\n"
 
-#: src/misc.c:122
+#: src/misc.c:123
 msgid ""
 "Ero Carrera: Filename validation and quick sync when copying tracks from the "
 "iPod\n"
@@ -1829,27 +3619,27 @@
 "Ero Carrera: Dateinamenverifizierung und Schnellabgleich beim Kopieren von "
 "Tracks vom iPod\n"
 
-#: src/misc.c:124
+#: src/misc.c:125
 msgid "Jens Taprogge: Support for LAME's replay gain tag to normalize volume\n"
 msgstr ""
 "Jens Taprogge: Unterstützung für LAMEs Replay-Gain-Tag zur "
 "Lautstärkenormalisierung.\n"
 
-#: src/misc.c:126
+#: src/misc.c:127
 msgid "Armando Atienza: Support with external playcounts\n"
 msgstr "Armando Atienza: Unterstützung bezüglich externer Playcounts\n"
 
-#: src/misc.c:128
+#: src/misc.c:129
 msgid "D.L. Sharp: Support for m4b files (bookmarkable AAC files)\n"
 msgstr ""
 "D.L. Sharp: Unterstützung von m4b Dateien (AAC Dateien mit Bookmark-"
 "Funktion)\n"
 
-#: src/misc.c:130
+#: src/misc.c:131
 msgid "Jim Hall: Decent INSTALL file\n"
 msgstr "Jim Hall: Ausführliche INSTALL Anleitung\n"
 
-#: src/misc.c:132
+#: src/misc.c:133
 msgid ""
 "Juergen Helmers, Markus Gaugusch: Conversion scripts to sync calendar/"
 "contacts to the iPod\n"
@@ -1858,11 +3648,11 @@
 "der Kontakte auf den iPod\n"
 
 #. J"urgen!
-#: src/misc.c:134
+#: src/misc.c:135
 msgid "Flavio Stanchina: bugfixes\n"
 msgstr "Flavio Stanchina: Bugfixes\n"
 
-#: src/misc.c:136
+#: src/misc.c:137
 msgid ""
 "Chris Micacchi: when sorting ignore 'the' and similar at the beginning of "
 "the title\n"
@@ -1870,13 +3660,13 @@
 "Chris Micacchi: beim Sortieren wird \"the\" und ähnliches am Beginn des "
 "Titels ignoriert\n"
 
-#: src/misc.c:138
+#: src/misc.c:139
 msgid "Steve Jay: use statvfs() instead of df (better portability, faster)\n"
 msgstr ""
 "Steve Jay: Verwendung von statvfs() anstelle von df (bessere Portierung, "
 "schneller)\n"
 
-#: src/misc.c:141
+#: src/misc.c:142
 msgid ""
 "Christoph Kunz: address compatibility issues when writing id3v2.4 type mp3 "
 "tags\n"
@@ -1884,41 +3674,44 @@
 "Christoph Kunz: Beiträge zur Kompatibilität wenn MP3-Tags als id3v2.4 "
 "geschrieben werden.\n"
 
-#: src/misc.c:144
+#: src/misc.c:145
+#, fuzzy
 msgid ""
-"James Ligget: replacement of old GTK file selection dialogs with new GTK "
-"filechooser dialogs\n"
+"James Liggett:\n"
+"     replacement of old GTK file selection dialogs with new GTK filechooser "
+"dialogs\n"
+"     refactored user preferences system.\n"
 msgstr ""
 "James Ligget: Ersetzen der alten GTK Dateidialoge durch die neuen GTK "
 "Filechooser-Dialoge.\n"
 
-#: src/misc.c:147
+#: src/misc.c:150
 msgid "Daniel Kercher: sync scripts for abook and webcalendar\n"
 msgstr ""
 "Daniel Kercher: Synchronisationsskripte für 'abook' und 'webcalendar'\n"
 
-#: src/misc.c:150
+#: src/misc.c:153
 msgid "Clinton Gormley: sync scripts for thunderbird\n"
 msgstr "Clinton Gormley: Snychronisationsskripte für 'tunderbird'\n"
 
-#: src/misc.c:153
+#: src/misc.c:156
 msgid "Sebastien Beridot: sync script for ldif addressbook format\n"
 msgstr ""
 "Sebastien Beridot: Snychronisationsskripte für das ldif Adressbuchformat\n"
 
-#: src/misc.c:156
+#: src/misc.c:159
 msgid "Sebastian Scherer: sync script for kNotes\n"
 msgstr "Sebastian Scherer: Synchronisationsskripte für 'kNotes'\n"
 
-#: src/misc.c:159
+#: src/misc.c:162
 msgid "Nick Piper: sync script for Palm, type-ahead search\n"
 msgstr "Nick Piper: Synchronisationsskript für Palm, 'type-ahead' Suche\n"
 
-#: src/misc.c:162
+#: src/misc.c:165
 msgid "Uwe Hermann: help with support for iPod Video\n"
 msgstr "Uwe Hermann: Hilfe mit iPod Video Unterstützung\n"
 
-#: src/misc.c:165
+#: src/misc.c:168
 msgid ""
 "Iain Benson: support for compilation tag in mp3 files and separate display "
 "of compilations in the sort tab.\n"
@@ -1926,7 +3719,7 @@
 "Iain Benson: Unterstützung für Sampler-Tags in mp3 Dateien und Darstellung "
 "von Sampler in den Filter-Tabs.\n"
 
-#: src/misc.c:167
+#: src/misc.c:170
 msgid ""
 "Nicolas Chariot: icons of buttons\n"
 "\n"
@@ -1936,11 +3729,11 @@
 "\n"
 "\n"
 
-#: src/misc.c:171
+#: src/misc.c:174
 msgid "This program borrows code from the following projects:\n"
 msgstr "Dieses Programm verwendet Code der folgenden Projekte:\n"
 
-#: src/misc.c:173
+#: src/misc.c:176
 msgid ""
 "    gnutools: (mktunes.pl, ported to C) reading and writing of iTunesDB "
 "(http://www.gnu.org/software/gnupod/)\n"
@@ -1948,7 +3741,7 @@
 "    gnutools: (mktunes.pl, nach C portiert) Schreiben und Lesen der iTunesDB "
 "(http://www.gnu.org/software/gnupod/)\n"
 
-#: src/misc.c:175
+#: src/misc.c:178
 msgid ""
 "    iPod.cpp, iPod.h by Samuel Wood (sam dot wood at gmail dot com): some "
 "code for smart playlists is based on his C++-classes.\n"
@@ -1957,37 +3750,37 @@
 "einiger Code für intelligente Wiedergabelisten basiert auf seinen C++-"
 "Klassen.\n"
 
-#: src/misc.c:177
+#: src/misc.c:180
 msgid "    mp3info:  mp3 playlength detection (http://ibiblio.org/mp3info/)\n"
 msgstr "    mp3info:  MP3-Spielzeit-Ermittlung (http://ibiblio.org/mp3info/)\n"
 
-#: src/misc.c:179
+#: src/misc.c:182
 msgid ""
 "    xmms:     dirbrowser, mp3 playlength detection (http://www.xmms.org)\n"
 msgstr ""
 "xmms:     Verzeichnisbaum-Anzeige, MP3-Spielzeit-Ermittlung (http://www.xmms."
 "org)\n"
 
-#: src/misc.c:182
+#: src/misc.c:185
 msgid ""
 "The GUI was created with the help of glade-2 (http://glade.gnome.org/).\n"
 msgstr ""
 "Die graphische Benutzeroberfläche wurde mit Hilfe von glade-2 (http://glade."
 "gnome.org/) erstellt.\n"
 
-#: src/misc.c:197
+#: src/misc.c:200
 msgid "French:   David Le Brun (david at dyn-ns dot net)\n"
 msgstr "Französisch: David Le Brun (david at dyn-ns dot net)\n"
 
-#: src/misc.c:199
+#: src/misc.c:202
 msgid "German:   Jorg Schuler (jcsjcs at users dot sourceforge dot net)\n"
 msgstr "Deutsch:     Jörg Schuler (jcsjcs at users dot sourceforge dot net)\n"
 
-#: src/misc.c:201
+#: src/misc.c:204
 msgid "Hebrew: Assaf Gillat (gillata at gmail dot com)\n"
 msgstr "Hebräisch: Assaf Gillat (gillata at gmail dot com)\n"
 
-#: src/misc.c:203
+#: src/misc.c:206
 msgid ""
 "Italian:  Edward Matteucci (edward_matteucc at users dot sourceforge dot "
 "net)\n"
@@ -1995,45 +3788,35 @@
 "Italienisch: Edward Matteucci (edward_matteucc at users dot sourceforge dot "
 "net\n"
 
-#: src/misc.c:205
+#: src/misc.c:208
 msgid "Japanese: Ayako Sano\n"
 msgstr "Japanisch:   Ayako Sano\n"
 
-#: src/misc.c:207
+#: src/misc.c:210
 msgid "Japanese: Kentaro Fukuchi (fukuchi at users dot sourceforge dot net)\n"
 msgstr ""
 "Japanisch:   Kentaro Fukuchi (fukuchi at users dot sourceforge dot net)\n"
 
-#: src/misc.c:209
+#: src/misc.c:212
 msgid "Swedish: Stefan Asserhall (stefan asserhall at comhem dot se)\n"
 msgstr "Schwedisch: Stefan Asserhall (stefan asserhall at comhem dot se)\n"
 
-#: src/misc.c:332
-#, c-format
-msgid "Could not delete backup file: \"%s\"\n"
-msgstr "Konnte Sicherheitskopie nicht löschen: '%s'\n"
+#: src/misc.c:936
+#, fuzzy, c-format
+msgid "Could not process '%s' (no filename available)"
+msgstr "Es steht kein Dateiname zur Verfügung"
 
-#: src/misc.c:452
+#: src/misc.c:1084
 #, c-format
-msgid "Unmounting of '%s' (%s) unsuccessful."
-msgstr "Unmount von '%s' (%s) war nicht erfolgreich."
-
-#: src/misc.c:456
-#, c-format
-msgid "Unmounting of '%s' unsuccessful."
-msgstr "Unmount von '%s' war erfolgreich."
-
-#: src/misc.c:1219
-#, c-format
 msgid "Unknown token '%%%c' in template '%s'"
 msgstr "Unbekanntes Token '%%%c' in der Schablone '%s'"
 
-#: src/misc.c:1301
+#: src/misc.c:1166
 #, c-format
 msgid "Template ('%s') does not match file type '%s'\n"
 msgstr "Schablone ('%s') paßt nicht auf den Dateinamen '%s'\n"
 
-#: src/misc.c:1382
+#: src/misc.c:1247
 #, c-format
 msgid "Error creating %s: %s\n"
 msgstr "Fehler beim Erstellen von '%s': %s\n"
@@ -2049,7 +3832,7 @@
 msgid "The following has occured:"
 msgstr "Folgendes ist passiert:"
 
-#: src/misc_confirm.c:124
+#: src/misc_confirm.c:123
 msgid ""
 "Are you sure you want to delete the following track completely from your "
 "iPod? The number of playlists this track is a member of is indicated in "
@@ -2067,13 +3850,13 @@
 "wollen? Die Anzahl der Wiedergabelisten, in denen die Stücke jeweils geführt "
 "werden, ist in Klammern angegeben."
 
-#: src/misc_confirm.c:128
+#: src/misc_confirm.c:127
 msgid "Delete Track Completely from iPod?"
 msgid_plural "Delete Tracks Completey from iPod?"
 msgstr[0] "Soll das Stück vollständig vom iPod entfernt werden?"
 msgstr[1] "Sollen die Stücke vollständig vom iPod entfernt werden?"
 
-#: src/misc_confirm.c:138 src/misc_confirm.c:178
+#: src/misc_confirm.c:138 src/misc_confirm.c:179
 #, c-format
 msgid ""
 "Are you sure you want to remove the following track from the playlist \"%s\"?"
@@ -2087,7 +3870,7 @@
 "Sind Sie sicher, daß Sie die folgenden Stücke von der Wiedergabeliste \"%s\" "
 "entfernen wollen?"
 
-#: src/misc_confirm.c:142 src/misc_confirm.c:182
+#: src/misc_confirm.c:142 src/misc_confirm.c:183
 msgid "Remove Track From Playlist?"
 msgid_plural "Remove Tracks From Playlist?"
 msgstr[0] "Stück von der Wiedergabeliste entfernen?"
@@ -2117,7 +3900,7 @@
 msgstr[0] "Stück von der Festplatte löschen?"
 msgstr[1] "Stücke von der Festplatte löschen?"
 
-#: src/misc_confirm.c:192
+#: src/misc_confirm.c:193
 msgid ""
 "Are you sure you want to remove the following track completely from your "
 "local database? The number of playlists this track is a member of is "
@@ -2135,7 +3918,7 @@
 "Datenbank entfernen wollen? Die Anzahl der Wiedergabelisten, in denen die "
 "Stücke jeweils geführt werden, ist in Klammern angegeben."
 
-#: src/misc_confirm.c:196
+#: src/misc_confirm.c:197
 msgid "Remove Track from Local Database?"
 msgid_plural "Remove Tracks from Local Database?"
 msgstr[0] ""
@@ -2169,44 +3952,33 @@
 msgstr[0] "Stück wurde aus der der lokalen Datenbank entfernt"
 msgstr[1] "%d Stücke wurden aus der lokalen Datenbank entfernt"
 
-#. no playlist??? Cannot happen, but...
-#. no playlist selected
-#: src/misc_confirm.c:336 src/misc_confirm.c:432 src/misc_confirm.c:674
-#: src/misc_track.c:1509
-msgid "No playlist selected."
-msgstr "Keine Wiedergabeliste ausgewählt."
-
-#. no tracks selected
-#: src/misc_confirm.c:345
-msgid "No tracks selected."
-msgstr "Keine Stücke ausgewählt."
-
-#: src/misc_confirm.c:448
+#: src/misc_confirm.c:438
 msgid "Cannot remove entry 'All'"
 msgstr "Der Eintrag 'Alle' kann nicht entfernt werden"
 
-#: src/misc_confirm.c:541
+#: src/misc_confirm.c:532
 #, c-format
 msgid "Removed all %d tracks from the iPod"
 msgstr "Alle %d Stücke wurden vom iPod entfernt"
 
-#: src/misc_confirm.c:546
+#: src/misc_confirm.c:537
 msgid "Removed all podcasts from the iPod"
 msgstr "Alle Podcasts wurden vom iPod entfernt"
 
-#: src/misc_confirm.c:556 src/misc_confirm.c:626
+#: src/misc_confirm.c:546 src/misc_confirm.c:620
 #, c-format
 msgid "Deleted playlist '%s' including %d member track"
 msgid_plural "Deleted playlist '%s' including %d member tracks"
 msgstr[0] "Wiedergabeliste '%s' einschließlich eines Stückes gelöscht"
 msgstr[1] "Wiedergabeliste '%s' einschließlich %d Stücken entfernt"
 
-#: src/misc_confirm.c:570 src/misc_confirm.c:640
+#. first use playlist name
+#: src/misc_confirm.c:562 src/misc_confirm.c:636
 #, c-format
 msgid "Deleted playlist '%s'"
 msgstr "Wiedergabeliste '%s' gelöscht."
 
-#: src/misc_confirm.c:603
+#: src/misc_confirm.c:596
 #, c-format
 msgid "Deleted playlist '%s' including %d member track on harddisk"
 msgid_plural "Deleted playlist '%s' including %d member tracks on harddisk"
@@ -2217,20 +3989,20 @@
 "Wiedergabeliste '%s' wurde einschließlich %d Stücken auf der Festplatte "
 "gelöscht"
 
-#: src/misc_confirm.c:618
+#: src/misc_confirm.c:613
 #, c-format
 msgid "Removed all %d tracks from the database"
 msgstr "Alle %d Stücke wurden aus der Datenbank entfernt"
 
-#: src/misc_confirm.c:693
+#: src/misc_confirm.c:691
 msgid "Are you sure you want to remove all tracks from your iPod?"
 msgstr "Sind Sie sicher, daß sie alle Stücke vom iPod entfernen wollen?"
 
-#: src/misc_confirm.c:698
+#: src/misc_confirm.c:696
 msgid "Are you sure you want to remove all podcasts from your iPod?"
 msgstr "Sind Sie sicher, daß sie alle Podcasts vom iPod entfernen wollen?"
 
-#: src/misc_confirm.c:706
+#: src/misc_confirm.c:704
 #, c-format
 msgid ""
 "Are you sure you want to delete playlist '%s' and the following track "
@@ -2250,12 +4022,12 @@
 "Wiedergabelisten, in denen die Stücke jeweils geführt werden, ist in "
 "Klammern angegeben."
 
-#: src/misc_confirm.c:717 src/misc_confirm.c:772
+#: src/misc_confirm.c:715 src/misc_confirm.c:770
 #, c-format
 msgid "Are you sure you want to delete the playlist '%s'?"
 msgstr "Sind Sie sicher, daß Sie die Wiedergabeliste \"%s\" entfernen wollen?"
 
-#: src/misc_confirm.c:743
+#: src/misc_confirm.c:741
 #, c-format
 msgid ""
 "Are you sure you want to delete playlist '%s' and remove the following track "
@@ -2275,12 +4047,12 @@
 "Wiedergabelisten, in denen die Stücke jeweils geführt werden, ist in "
 "Klammern angegeben."
 
-#: src/misc_confirm.c:751
+#: src/misc_confirm.c:749
 msgid "Are you sure you want to remove all tracks from the database?"
 msgstr ""
 "Sind Sie sicher, daß Sie alle Stücke von der Datenbank entfernen wollen?"
 
-#: src/misc_confirm.c:760
+#: src/misc_confirm.c:758
 #, c-format
 msgid ""
 "Are you sure you want to delete playlist '%s' and remove the following track "
@@ -2299,28 +4071,7 @@
 "Stücke aus der Datenbank entfernen wollen? Die Anzahl der Wiedergabelisten, "
 "in denen die Stücke jeweils geführt werden, ist in Klammern angegeben."
 
-#: src/misc_confirm.c:960
-#, c-format
-msgid "Problem creating iPod directory: '%s'."
-msgstr "Es trat ein Problem beim Erzeugen des iPod-Verzeichnisses auf: '%s'."
-
-#: src/misc_confirm.c:962
-#, c-format
-msgid "Successfully created iPod directories in '%s'."
-msgstr "Die iPod-Verzeichnisstruktur wurde erfolgreich in '%s' angelegt."
-
-#. gint id,
-#. gboolean modal,
-#: src/misc_confirm.c:1001
-msgid "Create iPod directories"
-msgstr "iPod-Verzeichnisstruktur erstellen"
-
-#. title
-#: src/misc_confirm.c:1002
-msgid "OK to create the following directories?"
-msgstr "Sollen die folgenden Verzeichnisse erstellt werden?"
-
-#: src/misc_confirm.c:1066
+#: src/misc_confirm.c:859
 msgid ""
 "Data has been changed and not been saved.\n"
 "OK to exit gtkpod?"
@@ -2408,24 +4159,47 @@
 msgid "Checked"
 msgstr "Ausgewählt"
 
-#: src/misc_conversion.c:108
+#. 35
+#: src/misc_conversion.c:96
+#, fuzzy
+msgid "Start time"
+msgstr "Zuletzt"
+
+#: src/misc_conversion.c:97
+#, fuzzy
+msgid "Stop time"
+msgstr "Stopp"
+
+#: src/misc_conversion.c:98
+msgid "Remember Playback Position"
+msgstr ""
+
+#: src/misc_conversion.c:99
+msgid "Skip when Shuffling"
+msgstr ""
+
+#: src/misc_conversion.c:100
+msgid "Artwork Path"
+msgstr ""
+
+#: src/misc_conversion.c:113
 msgid "Name of file on PC, if available"
 msgstr "Dateiname auf dem PC, falls verfügbar"
 
-#: src/misc_conversion.c:109
+#: src/misc_conversion.c:114
 msgid "Name of file on the iPod"
 msgstr "Name der Datei auf dem iPod"
 
 #. 10
-#: src/misc_conversion.c:111
+#: src/misc_conversion.c:116
 msgid "Track Nr. and total number of tracks on CD"
 msgstr "Track-Nr. und Gesamtzahl der Tracks auf der CD"
 
-#: src/misc_conversion.c:112
+#: src/misc_conversion.c:117
 msgid "Whether the file has already been transferred to the iPod or not"
 msgstr "Ob die Datei bereits zum iPod übertragen wurde oder nicht."
 
-#: src/misc_conversion.c:118
+#: src/misc_conversion.c:123
 msgid ""
 "Supposedly something that tells the iPod to increase or decrease the "
 "playback speed"
@@ -2433,32 +4207,32 @@
 "Anscheinend ein Feld, das den iPod anweist, die Wiedergabe zu beschleunigen "
 "oder zu verlangsamen"
 
-#: src/misc_conversion.c:120
+#: src/misc_conversion.c:125
 msgid "Number of times the track has been played"
 msgstr "Wie oft dieses Stück bereits gespielt wurde"
 
-#: src/misc_conversion.c:121
+#: src/misc_conversion.c:126
 msgid "Star rating from 0 to 5"
 msgstr "Beurteilung von 0 bis 5 Sterne"
 
-#: src/misc_conversion.c:122
+#: src/misc_conversion.c:127
 msgid "Date and time track has been added"
 msgstr "Zeitpunkt zu dem das Stück hinzugefügt wurde"
 
 #. 20
-#: src/misc_conversion.c:123
+#: src/misc_conversion.c:128
 msgid "Date and time track has last been played"
 msgstr "Zeitpunkt des letzten Abspielens des Stücks"
 
-#: src/misc_conversion.c:124
+#: src/misc_conversion.c:129
 msgid "Date and time track has last been modified"
 msgstr "Zeitpunkt der letzten Modifikation des Stücks"
 
-#: src/misc_conversion.c:125
+#: src/misc_conversion.c:130
 msgid "Manual volume adjust"
 msgstr "Manuelle Lautstärkeanpassung"
 
-#: src/misc_conversion.c:126
+#: src/misc_conversion.c:131
 msgid ""
 "Volume adjust in dB (replay gain) -- you need to activate 'soundcheck' on "
 "the iPod"
@@ -2467,90 +4241,86 @@
 "aktiviert sein"
 
 #. 25
-#: src/misc_conversion.c:129
+#: src/misc_conversion.c:134
 msgid "CD Nr. and total number of CDS in set"
 msgstr "CD-Nummer und Gesamtzahl der CDs im Set"
 
-#: src/misc_conversion.c:132
+#: src/misc_conversion.c:137
 msgid ""
 "The category (e.g. 'Technology' or 'Music') where the podcast was located."
 msgstr ""
 "Die Kategorie (z.B. 'Technologie' oder 'Musik') wo das Podcast eingeordnet "
 "war."
 
-#: src/misc_conversion.c:133
+#: src/misc_conversion.c:138
 msgid "Accessible by selecting the center button on the iPod."
 msgstr "Wird angezeigt, wenn der mittlere Knopf auf dem iPod gedrückt wird."
 
-#: src/misc_conversion.c:137
+#: src/misc_conversion.c:142
 msgid "Release date (for podcasts displayed next to the title on the iPod)"
 msgstr ""
 "Veröffentlichungsdatum (wird bei Podcasts auf dem iPod neben dem Titel "
 "angezeigt)"
 
-#: src/misc_conversion.c:639
+#: src/misc_conversion.c:649
 #, c-format
 msgid "The URI '%s' is not an absolute URI using the file scheme"
 msgstr "Der URI »%s« ist kein absoluter URI, der das Dateischema verwendet"
 
-#: src/misc_conversion.c:649
+#: src/misc_conversion.c:659
 #, c-format
 msgid "The local file URI '%s' may not include a '#'"
 msgstr "Der lokale URI »%s« darf kein »#« enthalten"
 
-#: src/misc_conversion.c:666
+#: src/misc_conversion.c:676
 #, c-format
 msgid "The URI '%s' is invalid"
 msgstr "Der URI »%s« ist ungültig"
 
-#: src/misc_conversion.c:678
+#: src/misc_conversion.c:688
 #, c-format
 msgid "The hostname of the URI '%s' is invalid"
 msgstr "Der Rechnername der URI »%s« ist ungültig"
 
-#: src/misc_conversion.c:694
+#: src/misc_conversion.c:704
 #, c-format
 msgid "The URI '%s' contains invalidly escaped characters"
 msgstr "Der URI »%s« enthält ungültige Escape-Zeichen"
 
-#: src/misc_playlist.c:68 src/misc_playlist.c:95 src/misc_playlist.c:416
+#: src/misc_playlist.c:68 src/misc_playlist.c:95 src/misc_playlist.c:430
 msgid "Please enter a name for the new playlist"
 msgstr "Bitte geben Sie einen Namen für die neue Wiedergabeliste ein"
 
-#: src/misc_playlist.c:97 gtkpod.glade:578 gtkpod.glade:772 gtkpod.glade:7128
-msgid "Smart Playlist"
-msgstr "Intelligente Wiedergabeliste"
-
-#: src/misc_playlist.c:146
+#: src/misc_playlist.c:155
 msgid "AR:"
 msgstr "Kü:"
 
-#: src/misc_playlist.c:149
+#: src/misc_playlist.c:158
 msgid "AL:"
 msgstr "Al:"
 
-#: src/misc_playlist.c:152
+#: src/misc_playlist.c:161
 msgid "GE:"
 msgstr "Ge:"
 
-#: src/misc_playlist.c:155
+#: src/misc_playlist.c:164
 msgid "CO:"
 msgstr "Ko:"
 
-#: src/misc_playlist.c:158
+#: src/misc_playlist.c:167
 msgid "YE:"
 msgstr "Ja:"
 
-#: src/misc_playlist.c:186
+#: src/misc_playlist.c:195
 msgid "Unknown"
 msgstr "Unbekannt"
 
-#: src/misc_playlist.c:256
+#: src/misc_playlist.c:273
 #, c-format
 msgid "Random (%d)"
 msgstr "Zufällig (%d)"
 
-#: src/misc_playlist.c:281
+#: src/misc_playlist.c:298
 msgid ""
 "Auto Store of track view disabled.\n"
 "\n"
@@ -2558,11 +4328,11 @@
 "Automatisch Speichern der Reihenfolge der Trackanzeige ausgeschaltet.\n"
 "\n"
 
-#: src/misc_playlist.c:340
+#: src/misc_playlist.c:357
 msgid "Not Listed"
 msgstr "Nicht eingetragen"
 
-#: src/misc_playlist.c:391
+#: src/misc_playlist.c:407
 #, c-format
 msgid "Created playlist '%s' with %d track."
 msgid_plural "Created playlist '%s' with %d tracks."
@@ -2570,76 +4340,75 @@
 msgstr[1] "Wiedergabeliste '%s' mit %d Stücken erstellt."
 
 #. n==0
-#: src/misc_playlist.c:402
+#: src/misc_playlist.c:418
 msgid "No tracks available, playlist not created"
 msgstr ""
 "Keine passenden Stücke vorhanden -- Wiedergabeliste wurde nicht erstellt."
 
-#: src/misc_playlist.c:530
+#: src/misc_playlist.c:544
 #, c-format
 msgid "Most Listened (%d)"
 msgstr "Häufig (%d)"
 
-#: src/misc_playlist.c:571
+#: src/misc_playlist.c:585
 msgid "Never Listened"
 msgstr "Nie gehört"
 
-#: src/misc_playlist.c:611
+#: src/misc_playlist.c:625
 #, c-format
 msgid "Best Rated (%d)"
 msgstr "Gewertet (%d)"
 
-#: src/misc_playlist.c:653
+#: src/misc_playlist.c:667
 msgid "Unrated tracks"
 msgstr "Unbewertet"
 
-#: src/misc_playlist.c:658
+#: src/misc_playlist.c:672
 #, c-format
 msgid "Rated %d"
 msgstr "Bewertet (%d)"
 
-#: src/misc_playlist.c:701
+#: src/misc_playlist.c:715
 #, c-format
 msgid "Recent (%d)"
 msgstr "Zuletzt (%d)"
 
-#: src/misc_playlist.c:740
+#: src/misc_playlist.c:754
 msgid "Last Time"
 msgstr "Zuletzt"
 
-#: src/misc_playlist.c:831
+#: src/misc_playlist.c:845
 msgid "Removal of dangling tracks with no files on PC was canceled."
 msgstr ""
 "Das Entfernen von verlorenen Stücken ohne entsprechende Datei auf dem "
 "Computer wurde abgebrochen."
 
-#: src/misc_playlist.c:841
+#: src/misc_playlist.c:855
 msgid "Handling of dangling tracks with files on PC was canceled."
 msgstr ""
 "Das Bearbeiten von verlorenen Stücken, deren zugehörige Datei auf dem "
 "Computer vorhanden ist, wurde abgebrochen."
 
-#: src/misc_playlist.c:869
+#: src/misc_playlist.c:883
 msgid "Dangling tracks with no files on PC were removed."
 msgstr ""
 "Verlorene Stücke ohne entsprechende Datei auf dem Computer wurden entfernt."
 
-#. printf("Handling track %d\n", track->ipod_id);
-#: src/misc_playlist.c:902
+#: src/misc_playlist.c:917
 #, c-format
 msgid "Processing '%s'"
 msgstr "Bearbeite '%s'"
 
-#: src/misc_playlist.c:927
+#: src/misc_playlist.c:941
 msgid "Dangling tracks with files on PC were handled."
 msgstr ""
 "Verlorene Stücke mit zugehöriger Datei auf dem Computer wurden korrigiert."
 
-#: src/misc_playlist.c:960
+#: src/misc_playlist.c:974
 msgid "Track"
 msgstr "Stück"
 
-#: src/misc_playlist.c:1005
+#: src/misc_playlist.c:1017
 msgid ""
 "You did not import the existing iTunesDB. This is most likely incorrect and "
 "will result in the loss of the existing database.\n"
@@ -2656,19 +4425,19 @@
 "'Abbrechen', um abzubrechen. Wenn Sie den Vorgang abbrechen, können Sie die "
 "existierende Datenbank einlesen, bevor Sie erneut abgleichen.\n"
 
-#: src/misc_playlist.c:1021
+#: src/misc_playlist.c:1031
 msgid "Creating a tree of known files"
 msgstr "Erstelle eine Liste der vorhandenen Dateien"
 
-#: src/misc_playlist.c:1065
+#: src/misc_playlist.c:1075
 msgid "Checking iPOD files against known files in DB"
 msgstr "Vergleiche Dateien auf dem iPod mit der iTunesDB"
 
-#: src/misc_playlist.c:1110
+#: src/misc_playlist.c:1118
 msgid "Orphaned"
 msgstr "Verwaist"
 
-#: src/misc_playlist.c:1131
+#: src/misc_playlist.c:1145
 #, c-format
 msgid ""
 "The following orphaned file had already been added to the iPod again. It "
@@ -2681,12 +4450,12 @@
 "%s\n"
 "\n"
 
-#: src/misc_playlist.c:1160
+#: src/misc_playlist.c:1173
 #, c-format
 msgid "Found %d orphaned and %d dangling files. Processing..."
 msgstr "'%d' verwaiste und '%d' verlorene Dateien gefunden. Bearbeite..."
 
-#: src/misc_playlist.c:1183
+#: src/misc_playlist.c:1197
 #, c-format
 msgid ""
 "The following dangling track has a file on PC.\n"
@@ -2705,7 +4474,7 @@
 "Klicken Sie auf OK, um sie beim nächsten Abgleich zu übertragen oder auf "
 "'Abbrechen' um nichts zu tun."
 
-#: src/misc_playlist.c:1188
+#: src/misc_playlist.c:1202
 #, c-format
 msgid ""
 "The following dangling track doesn't have file on PC. \n"
@@ -2724,31 +4493,31 @@
 
 #. we want unique window for each
 #. gboolean modal,
-#: src/misc_playlist.c:1195
+#: src/misc_playlist.c:1209
 msgid "Dangling Tracks"
 msgstr "Verlorene Stücke"
 
-#: src/misc_playlist.c:1219
+#: src/misc_playlist.c:1232
 #, c-format
 msgid "Found %d orphaned and %d dangling files. Done."
 msgstr "'%d' verwaiste und '%d' verlorene Dateien gefunden. Fertig."
 
 #. update for count == 1, 21, 41 ... and for count == n
-#: src/misc_track.c:91 src/misc_track.c:368
+#: src/misc_track.c:90 src/misc_track.c:364
 #, c-format
 msgid "Hashed %d of %d track."
 msgid_plural "Hashed %d of %d tracks."
 msgstr[0] "%d von insgesamt %d Stück indiziert."
 msgstr[1] "%d von insgesamt %d Stücken indiziert."
 
-#: src/misc_track.c:202
+#: src/misc_track.c:199
 #, c-format
 msgid "The following duplicate track has been removed."
 msgid_plural "The following %d duplicate tracks have been removed."
 msgstr[0] "Das folgende doppelt eingelesene Stück wurde entfernt."
 msgstr[1] "Die folgenden %d doppelt eingelesenen Stücke wurden entfernt."
 
-#: src/misc_track.c:209
+#: src/misc_track.c:206
 #, c-format
 msgid ""
 "The following duplicate track has not been added to the master play list."
@@ -2764,86 +4533,70 @@
 
 #. gint id,
 #. gboolean modal,
-#: src/misc_track.c:216
+#: src/misc_track.c:213
 msgid "Duplicate detection"
 msgstr "Duplikaterkennung"
 
-#: src/misc_track.c:844
+#: src/misc_track.c:904
 msgid "Local Database"
 msgstr "Lokale Datenbank"
 
-#: src/misc_track.c:1396
+#. artwork is set
+#: src/misc_track.c:915
+msgid "Embedded or filename was lost"
+msgstr ""
+
+#: src/misc_track.c:919
+#, fuzzy
+msgid "Artwork not set"
+msgstr "ist nicht gesetzt"
+
+#: src/misc_track.c:1527
 #, c-format
 msgid "drag and drop: ignored '%s'\n"
 msgstr "Drag und Drop: '%s' ignoriert\n"
 
-#: src/mp3file.c:1118
+#: src/mp3file.c:1276
 #, c-format
 msgid "Error setting ID3 field: %s\n"
 msgstr "Fehler beim Setzen des ID3 Feldes: '%s'\n"
 
-#: src/mp3file.c:1143 src/mp3file.c:1290 src/mp3file.c:2036
+#: src/mp3file.c:1300 src/mp3file.c:1373 src/mp3file.c:1522 src/mp3file.c:2160
 #, c-format
 msgid "ERROR while opening file: '%s' (%s).\n"
 msgstr "FEHLER beim Öffnen der Datei: '%s' (%s).\n"
 
-#: src/mp3file.c:1357
+#: src/mp3file.c:1593
 #, c-format
 msgid "ERROR while writing tag to file: '%s' (%s).\n"
 msgstr "FEHLER beim Schreiben eines Tags: '%s' (%s).\n"
 
-#: src/mp3file.c:1880
-#, c-format
-msgid ""
-"Could not find mp3gain. I tried to use the following executable: '%s'.\n"
-"\n"
-"If the mp3gain executable is not in your path or named differently, you can "
-"set the full path in the 'Tools' section of the preferences dialog.\n"
-"\n"
-"If you do not have mp3gain installed, you can download it from http://www."
-"sourceforge.net/projects/mp3gain."
-msgstr ""
-"'mp3gain' konnte nicht gefunden werden. Es wurde versucht, das folgende "
-"Programm zu starten: '%s'.\n"
-"\n"
-"Wenn 'mp3gain' anders heißt oder nicht im Standard-Suchpfad enthalten ist, "
-"können Sie den vollen Programmnamen unter 'Werkzeuge' im Einstellungsdialog "
-"angeben.\n"
-"\n"
-"Wenn Sie 'mp3gain' nicht installiert haben, können Sie es von 'http://www."
-"sourceforge.net/projects/mp3gain' herunterladen."
-
-#: src/mp3file.c:1920
-#, c-format
-msgid "Execution of mp3gain ('%s') failed."
-msgstr "Der Aufruf von mp3gain ('%s') schlug fehl."
-
 #. Tracks with zero play length are ignored by iPod...
-#: src/mp3file.c:2179
+#: src/mp3file.c:2326
 #, c-format
 msgid "File \"%s\" has zero play length. Ignoring.\n"
 msgstr "Die Datei '%s' hat Null-Spielzeit und wird ignoriert.\n"
 
-#: src/mp4file.c:243 src/mp4file.c:362
+#: src/mp4file.c:221 src/mp4file.c:342 src/mp4file.c:461
 #, c-format
 msgid "'%s' does not appear to be a mp4 audio file.\n"
 msgstr "'%s' scheint keine MP4-Audio-Datei zu sein.\n"
 
-#: src/mp4file.c:253
+#: src/mp4file.c:231 src/mp4file.c:352
 #, c-format
 msgid "Could not open '%s' for reading, or file is not an mp4 file.\n"
 msgstr ""
 "'%s' konnte nicht gelesen werden, oder die Datei ist keine gültige mp4-"
 "Datei.\n"
 
-#: src/mp4file.c:373
+#: src/mp4file.c:472
 #, c-format
 msgid "Could not open '%s' for writing, or file is not an mp4 file.\n"
 msgstr ""
 "'%s' konnte nicht zum Schreiben geöffnet werden, oder die Datei ist keine "
 "gültige mp4-Datei.\n"
 
-#: src/mp4file.c:386
+#: src/mp4file.c:485
 #, c-format
 msgid ""
 "Import of '%s' failed: m4a/m4p/m4b not supported without the mp4v2 library. "
@@ -2853,7 +4606,7 @@
 "mp4v2 Bibliothek nicht unterstützt. Sie müssen gtkpod zusammen mit der mp4v2 "
 "Bibliothek übersetzen.\n"
 
-#: src/mp4file.c:392
+#: src/mp4file.c:491
 #, c-format
 msgid ""
 "m4a/m4p/m4b metadata update for '%s' failed: m4a/m4p/m4b not supported "
@@ -2864,240 +4617,283 @@
 "werden ohne die mp4v2 Bibliothek nicht unterstützt. Sie müssen gtkpod "
 "zusammen mit der mp4v2 Bibliothek übersetzen.\n"
 
-#: src/prefs.c:128
+#: src/mp4file.c:497
+#, fuzzy, c-format
+msgid ""
+"m4a/m4p/m4b soundcheck update for '%s' failed: m4a/m4p/m4b not supported "
+"without the mp4v2 library. You must compile the gtkpod source together with "
+"the mp4v2 library.\n"
+msgstr ""
+"Schreiben von m4a/m4p Metadaten für '%s' fehlgeschlagen: m4a/m4p/m4b-Dateien "
+"werden ohne die mp4v2 Bibliothek nicht unterstützt. Sie müssen gtkpod "
+"zusammen mit der mp4v2 Bibliothek übersetzen.\n"
+
+#: src/prefs.c:307
 #, c-format
 msgid "gtkpod version %s usage:\n"
 msgstr "Benutzung von gtkpod %s:\n"
 
-#: src/prefs.c:129
+#: src/prefs.c:308
 msgid "  -h, --help:   display this message\n"
 msgstr "  -h, --help:   diesen Text anzeigen\n"
 
-#: src/prefs.c:130
+#: src/prefs.c:309
 msgid "  -p <filename>:increment playcount for file by one\n"
 msgstr "  -p <Dateiname>:Playcount für 'Datainame' um eins erhöhen\n"
 
-#: src/prefs.c:131
+#: src/prefs.c:310
 msgid "  -m path:      define the mountpoint of your iPod\n"
 msgstr "  -m <Pfad>:    Mountpoint für iPod angeben\n"
 
-#: src/prefs.c:132
+#: src/prefs.c:311
 msgid "  --mountpoint: same as '-m'.\n"
 msgstr "  --mountpoint: wie '-m'.\n"
 
-#: src/prefs.c:133
+#: src/prefs.c:312
 msgid "  -a:           import database automatically after start.\n"
 msgstr "  -a:           iTunesDB automatisch importieren\n"
 
-#: src/prefs.c:134
+#: src/prefs.c:313
 msgid "  --auto:       same as '-a'.\n"
 msgstr "  --auto:       wie '-a'.\n"
 
-#: src/prefs.c:135
-msgid ""
-"  -o:           use offline mode. No changes are exported to the iPod,\n"
-"                but to ~/.gtkpod/ instead. iPod is updated if 'Sync' is\n"
-"                used with 'Offline' deactivated.\n"
-msgstr ""
-"  -o:        Offline-Modus benutzen. Änderungen werden nicht auf den iPod\n"
-"             geschrieben, sondern nach '~/.gtkpod/'. Der iPod wird "
-"aktualisiert,\n"
-"             wenn nicht im Offline-Modus die iTunesDB abgeglichen wird.\n"
+#: src/prefs_window.c:119
+msgid "Please select command for 'Play Now'"
+msgstr "Programm für 'Jetzt abspielen'"
 
-#: src/prefs.c:136
-msgid "  --offline:    same as '-o'.\n"
-msgstr "  --offline:    wie '-o'.\n"
+#: src/prefs_window.c:120
+msgid "Please select command for 'Enqueue'"
+msgstr "Programm für 'Zum Abspielen Vormerken':"
 
-#: src/prefs.c:401
-#, c-format
-msgid "Error while reading prefs: %s\n"
-msgstr "Fehler beim Lesen der Vor-Einstellungen: %s\n"
+#: src/prefs_window.c:121
+msgid "Please select the mp3gain executable"
+msgstr "Genauer Pfad des mp3gain-Programms"
 
-#: src/prefs.c:1030
-#, c-format
-msgid "Unable to open config file '%s' for reading\n"
-msgstr "Kann Datei '%s' mit den Einstellungen nicht lesen.\n"
+#: src/prefs_window.c:124
+msgid "Select the mserv music root directory"
+msgstr "Wählen Sie das mserv Stammverzeichnis für Musik"
 
-#: src/prefs.c:1137
-#, c-format
-msgid "Unknown option: %s\n"
-msgstr "Unbekannte Option: %s\n"
+#: src/prefs_window.c:125
+msgid "Select the mserv trackinfo root directory"
+msgstr "Wählen Sie das mserv Stammverzeichnis (trackinfo)"
 
-#: src/prefs.c:1190
-#, c-format
-msgid "# delete confirmation\n"
-msgstr "# Sicherheitsabfrage beim Löschen\n"
+#: src/prefs_window.c:127
+#, fuzzy
+msgid "Please select the aacgain executable"
+msgstr "Genauer Pfad des mp3gain-Programms"
 
-#: src/prefs.c:1197
-#, c-format
-msgid "# sort tab: select 'All', last selected page (=category)\n"
+#: src/prefs_window.c:911 src/prefs_window.c:929
+msgid "Preferences not updated"
+msgstr "Die Einstellungen wurden nicht übernommen"
+
+#: src/prefs_window.c:938
+msgid "Preferences applied"
+msgstr "Die Einstellungen wurden übernommen"
+
+#: src/repository.c:549 src/repository.c:2372
+#, fuzzy
+msgid "Select mountpoint"
+msgstr "iPod Mount _Point:"
+
+#: src/repository.c:576 src/repository.c:2398
+msgid "Set backup file"
 msgstr ""
-"# Sort Tab: 'Alle' automatisch wählen, letze gewählte Seite (=Kategorie)\n"
 
-#: src/prefs.c:1216
-#, c-format
-msgid "# autoselect master playlist?\n"
-msgstr "# Hauptplayliste automatisch auswählen?\n"
+#: src/repository.c:615
+#, fuzzy
+msgid "Select directory for synchronization"
+msgstr "Wählen Sie Verzeichnisse zum Hinzufügen"
 
-#: src/prefs.c:1218
-#, c-format
-msgid "# title=0, artist, album, genre, composer\n"
-msgstr "# Titel=0, Künstler, Album, Musikrichtung, Komponist\n"
+#: src/repository.c:641
+msgid "Please select command to sync contacts"
+msgstr "Skript zum Exportieren der Kontakte"
 
-#: src/prefs.c:1219
-#, c-format
-msgid "# track_nr=5, ipod_id, pc_path, transferred\n"
-msgstr "# Track_Nr=5, iPod_ID, PC_Pfad, Transferred\n"
+#: src/repository.c:647
+msgid "Please select command to sync calendar"
+msgstr "Skript zum Exportieren des Terminkalenders"
 
-#: src/prefs.c:1220
-#, c-format
-msgid "# autoset: set empty tag to filename?\n"
-msgstr "# autoset: Leere ID3-Tags mit dem Filenamen initialiseren?\n"
+#: src/repository.c:653
+#, fuzzy
+msgid "Please select command to sync notes"
+msgstr "Skript zum Exportieren der Kontakte"
 
-#: src/prefs.c:1235
+#: src/repository.c:665
 #, c-format
 msgid ""
-"# position of sliders (paned): playlists, above tracks,\n"
-"# between sort tabs, and in statusbar.\n"
+"<i>Have a look at the scripts provided in '%s'. If you write a new script, "
+"please send it to jcsjcs at users.sourceforge.net for inclusion into the "
+"next release.</i>"
 msgstr ""
-"# Position der Schiebeelemente (paned): Wiedergabelisten,\n"
-"# über der Stückanzeige, zwischen den Sort Tabs\n"
+"<i>Schauen Sie sich die Skipte an, die in '%s' zur Verfügung gestellt "
+"wurden. Wenn Sie ein neues Script schreiben, schicken Sie es bitte an jcsjcs "
+"at users.sourceforge.net, damit es in die nächste Version aufgenommen werden "
+"kann.</i>"
 
-#: src/prefs.c:1271
-#, c-format
-msgid ""
-"# window sizes: main window, confirmation scrolled,\n"
-"#               confirmation non-scrolled, dirbrowser, prefs\n"
-msgstr ""
-"# Fenstergrößen: Hauptfenster, Bestätigungsfenster (gescrollt),\n"
-"#                Bestätigungsfenster (ungescrollt), Verzeichnisbaum\n"
-"#                Einstellungsfenster\n"
+#: src/repository.c:732
+#, fuzzy
+msgid "Smart playlist updated."
+msgstr "Intelligente Wiedergabeliste"
 
-#: src/prefs.c:1328
-#, c-format
-msgid "Unable to open '%s' for writing\n"
-msgstr "Kann '%s' nicht zum schreiben öffnen.\n"
+#: src/repository.c:1193
+#, fuzzy
+msgid "Podcasts Repository"
+msgstr "Vom iPod entfernen "
 
-#: src/prefs.c:1682
-#, c-format
-msgid ""
-" Preferences: Category nr (%d<%d?) or sorttab nr (%d<%d?) out of range.\n"
-msgstr ""
-" Voreinstellungen: Kategorie (%d<%d?) oder SortTab (%d<%d?) außerhalb des "
-"erlaubten Bereichs.\n"
+#: src/repository.c:1197
+#, fuzzy
+msgid "Local Repository"
+msgstr "Vom iPod entfernen "
 
-#: src/prefs.c:1731
-#, c-format
-msgid "Unable to 'mkdir %s'\n"
-msgstr "Kann 'mkdir %s' nicht ausführen.\n"
+#: src/repository.c:1351
+#, fuzzy
+msgid "Master Playlist"
+msgstr "...Hauptplayliste"
 
-#. illegal -- ignore
-#: src/prefs.c:2157
-#, c-format
-msgid "prefs_set_toolbar_style: illegal style '%d' ignored\n"
-msgstr "prefs_set_toolbar_style: ungültiger Stil '%d' ignoriert\n"
+#: src/repository.c:1355
+#, fuzzy
+msgid "Podcasts Playlist"
+msgstr "Intelligente Wiedergabeliste"
 
-#. illegal -- ignore
-#: src/prefs.c:2199
-#, c-format
-msgid "prefs_set_pm_sort: illegal type '%d' ignored\n"
-msgstr "prefs_set_toolbar_style: ungültiger Typ '%d' ignoriert\n"
+#: src/repository.c:1363
+#, fuzzy
+msgid "Regular Playlist"
+msgstr "Intelligente Wiedergabeliste"
 
-#: src/prefs.c:2354
-#, c-format
-msgid "'%s': no arguments (%%...) allowed.\n"
-msgstr "'%s': keine Argumente (%%...) erlaubt.\n"
+#: src/repository.c:2426
+#, fuzzy
+msgid "Set local repository file"
+msgstr "Vom iPod entfernen "
 
-#: src/prefs.c:2359
+#: src/repository.c:2525
+#, fuzzy
+msgid "New Repository"
+msgstr "Vom iPod entfernen "
+
+#: src/support.c:90 src/support.c:114
+#, fuzzy, c-format
+msgid "Couldn't find pixmap file: %s"
+msgstr "Konnte Tags der Datei '%s' nicht ändern\n"
+
+#: src/syncdir.c:237
 #, c-format
-msgid "'%s': only '%%[%s]' allowed.\n"
-msgstr "'%s': nur '%%[%s]' erlaubt.\n"
+msgid "Sync summary for %s/%s\n"
+msgstr ""
 
-#: src/prefs_window.c:108
-msgid "Please select command for 'Play Now'"
-msgstr "Programm für 'Jetzt abspielen'"
+#: src/syncdir.c:246
+#, fuzzy
+msgid "The following track has been added or updated:\n"
+msgid_plural "The following tracks have been added or updated:\n"
+msgstr[0] "Das folgende Stück wurde aktualisiert"
+msgstr[1] "Die folgenden %d Stücke wurden aktualisiert"
 
-#: src/prefs_window.c:109
-msgid "Please select command for 'Enqueue'"
-msgstr "Programm für 'Zum Abspielen Vormerken':"
+#: src/syncdir.c:255
+#, fuzzy
+msgid "The following track has been completely removed from the iPod:\n"
+msgid_plural ""
+"The following tracks have been completely removed from the iPod:\n"
+msgstr[0] "Das folgende Stück wurde aktualisiert"
+msgstr[1] "Die folgenden %d Stücke wurden aktualisiert"
 
-#: src/prefs_window.c:110
-msgid "Please select the mp3gain executable"
-msgstr "Genauer Pfad des mp3gain-Programms"
+#: src/syncdir.c:264
+#, fuzzy
+msgid "The following track has been removed from the repository:\n"
+msgid_plural "The following tracks have been removed from the repository:\n"
+msgstr[0] "Das folgende doppelt eingelesene Stück wurde entfernt."
+msgstr[1] "Die folgenden %d doppelt eingelesenen Stücke wurden entfernt."
 
-#: src/prefs_window.c:111
-msgid "Please select command to sync contacts"
-msgstr "Skript zum Exportieren der Kontakte"
+#: src/syncdir.c:271
+#, fuzzy
+msgid "The following track has been removed from the playlist:\n"
+msgid_plural "The following tracks have been removed from the playlist:\n"
+msgstr[0] ""
+"Das folgende doppelt eingelesene Stück wurde nicht erneut zur Hauptplayliste "
+"hinzugefügt."
+msgstr[1] ""
+"Die folgenden %d doppelt eingelesenen Stücke wurden nicht erneut zur "
+"Hauptplayliste hinzugefügt."
 
-#: src/prefs_window.c:112
-msgid "Please select command to sync calendar"
-msgstr "Skript zum Exportieren des Terminkalenders"
+#: src/syncdir.c:277
+msgid "Nothing was changed.\n"
+msgstr ""
 
-#: src/prefs_window.c:113
-msgid "Select the mserv music root directory"
-msgstr "Wählen Sie das mserv Stammverzeichnis für Musik"
+#: src/syncdir.c:282
+msgid "Sync summary"
+msgstr ""
 
-#: src/prefs_window.c:114
-msgid "Select the mserv trackinfo root directory"
-msgstr "Wählen Sie das mserv Stammverzeichnis (trackinfo)"
+#: src/tools.c:119
+#, fuzzy, c-format
+msgid ""
+"Could not find '%s'\n"
+". Please specifiy the exact path in the Tools section of the preference "
+"dialog or install the programm if it is not installed on your system.\n"
+"\n"
+msgstr ""
+"Das Kommando '%s' konnte nicht gefunden werden.\n"
+"\n"
+"Bitte überprüfen Sie die Angabe im Einstellungsdialog unter 'Werkzeuge'\n"
+"\n"
 
-#: src/prefs_window.c:115
-#, fuzzy
-msgid "Please select command to sync notes"
-msgstr "Skript zum Exportieren der Kontakte"
+#: src/tools.c:204
+#, fuzzy, c-format
+msgid ""
+"Execution of '%s' failed.\n"
+"\n"
+msgstr "Der Aufruf von mp3gain ('%s') schlug fehl."
 
-#: src/prefs_window.c:854
-#, c-format
+#: src/tools.c:249
+#, fuzzy, c-format
 msgid ""
-"<i>Have a look at the scripts provided in '%s'. If you write a new script, "
-"please send it to jcsjcs at users.sourceforge.net for inclusion into the "
-"next release.</i>"
+"Did not normalize '%s'. Set mp3gain path in the Tools section of the "
+"preferences.\n"
 msgstr ""
-"<i>Schauen Sie sich die Skipte an, die in '%s' zur Verfügung gestellt "
-"wurden. Wenn Sie ein neues Script schreiben, schicken Sie es bitte an jcsjcs "
-"at users.sourceforge.net, damit es in die nächste Version aufgenommen werden "
-"kann.</i>"
+"Das Kommando '%s' konnte nicht gefunden werden.\n"
+"\n"
+"Bitte überprüfen Sie die Angabe im Einstellungsdialog unter 'Werkzeuge'\n"
+"\n"
 
-#: src/prefs_window.c:1287 src/prefs_window.c:1305
-msgid "Preferences not updated"
-msgstr "Die Einstellungen wurden nicht übernommen"
+#: src/tools.c:259
+#, fuzzy, c-format
+msgid ""
+"Did not normalize '%s'. Set aacgain path in the Tools section of the "
+"preferences.\n"
+msgstr ""
+"Das Kommando '%s' konnte nicht gefunden werden.\n"
+"\n"
+"Bitte überprüfen Sie die Angabe im Einstellungsdialog unter 'Werkzeuge'\n"
+"\n"
 
-#: src/prefs_window.c:1314
-msgid "Preferences applied"
-msgstr "Die Einstellungen wurden übernommen"
-
-#: src/tools.c:173
+#: src/tools.c:384
 msgid "Normalizing..."
 msgstr "Lautstärke wird normalisiert..."
 
-#: src/tools.c:220
+#: src/tools.c:434
 #, c-format
 msgid "%s - %s"
 msgstr "%s - %s"
 
-#: src/tools.c:247
+#: src/tools.c:460
 msgid "Aborting..."
 msgstr "Breche ab..."
 
-#: src/tools.c:251
+#: src/tools.c:464
 msgid "Will abort after current mp3gain process ends."
 msgstr "Abbruch erfolgt nachdem der mp3gain-Prozeß beendet ist."
 
-#: src/tools.c:277
+#: src/tools.c:490
 #, c-format
 msgid ""
 "'%s-%s' (%s) could not be normalized.\n"
 "\n"
 msgstr "'%s-%s (%s) konnte nicht normalisiert werden.\n"
 
-#: src/tools.c:319
+#: src/tools.c:529
 #, c-format
 msgid "Normalized %d of %d tracks."
 msgid_plural "Normalized %d of %d tracks."
 msgstr[0] "%d von insgesamt %d Stück normalisiert."
 msgstr[1] "%d von insgesamt %d Stücken normalisiert."
 
-#: src/tools.c:413
+#: src/tools.c:632
 msgid ""
 "Please specify the command to be called on the 'Tools' section of the "
 "preferences dialog.\n"
@@ -3105,7 +4901,7 @@
 "Bitte geben Sie das aufzurufene Programm im Einstellungsdialog unter "
 "'Werkzeuge' an.\n"
 
-#: src/tools.c:425
+#: src/tools.c:644
 #, c-format
 msgid ""
 "Could not find the command '%s'.\n"
@@ -3118,7 +4914,7 @@
 "Bitte überprüfen Sie die Angabe im Einstellungsdialog unter 'Werkzeuge'\n"
 "\n"
 
-#: src/tools.c:466
+#: src/tools.c:685
 #, c-format
 msgid ""
 "'%s' returned the following output:\n"
@@ -3127,12 +4923,12 @@
 "'%s' lieferte folgende Ausgabe:\n"
 "%s\n"
 
-#: src/tools.c:535
+#: src/tools.c:752
 #, c-format
 msgid "No command set for '%s'"
 msgstr "Keine Befehlszeile spezifiziert für '%s'"
 
-#: src/tools.c:556
+#: src/tools.c:772
 #, c-format
 msgid "Could not find command '%s' specified for '%s'"
 msgstr "Konnte das Kommando '%s' nicht finden (gesetzt für '%s')."
@@ -3147,1757 +4943,348 @@
 msgid "%s does not appear to be a supported wav file.\n"
 msgstr "'%s' scheint keine unterstützte WAV-Datei zu sein.\n"
 
-#: gtkpod.glade:7
-msgid "gtkpod"
-msgstr "gtkpod"
+#~ msgid ""
+#~ "On startup gtkpod will call 'mount <ipod mountpoint>', on exit a 'umount "
+#~ "<ipod mountpoint>' call is carried out. For more complicated arrangements "
+#~ "please use the ~/.gtkpod/gtkpod.in and ~/.gtkpod/gtkpod.out scripts."
+#~ msgstr ""
+#~ "Beim Start von gtkpod wird 'mount <ipod mountpoint>' ausgeführt, beim "
+#~ "Beenden 'umount <ipod mountpoint>'. Für weitergehende Aktionen verwenden "
+#~ "Sie bitte die Skripte '~/.gtkpod/gtkpod.in' und '~/.gtkpod/gtkpod.out'."
 
-#: gtkpod.glade:36
-msgid "_File"
-msgstr "_Datei"
+#~ msgid "Handle mounting/unmounting of iPod drive"
+#~ msgstr "Mount/Unmount des iPod-Verzeichnisses"
 
-#: gtkpod.glade:45
-msgid "_Read iTunesDB"
-msgstr "iTunesDB _importieren"
+#~ msgid "<b>Artwork</b>"
+#~ msgstr "<b>Artwork</b>"
 
-#: gtkpod.glade:66
-msgid "Add _Files"
-msgstr "_Files hinzufügen"
+#~ msgid "_Offline"
+#~ msgstr "_Offline"
 
-#: gtkpod.glade:87
-msgid "Add _Directory"
-msgstr "_Verzeichnisse hinzufügen"
+#~ msgid ""
+#~ "You only need to specify this if your 'mp3gain' executable is not in your "
+#~ "default path. Example: '/usr/local/foo/mp3gain'. mp3gain will write the "
+#~ "calculated gain value back to the file -- if you don't want this, set "
+#~ "this entry to /bin/true or similar. mp3gain is only called if appropriate "
+#~ "tags are not already set by your encoder. E.g. lame version 0.95 already "
+#~ "writes the gain values into tags. The exact conversion factor between "
+#~ "mp3gain's gain value and iPod's volume tag is not known yet -- your input "
+#~ "is appreciated."
+#~ msgstr ""
+#~ "Sie müssen diese Angabe nur machen, wenn sich Ihr 'mp3gain' Programm "
+#~ "nicht im Suchpfad befinden. Zum Beispiel: '/usr/local/foo/mp3gain'. "
+#~ "mp3gain schreibt den berechneten Gain-Wert zurück in die mp3-Datei -- "
+#~ "wenn Sie dies nicht wünschen, setzen Sie diesen Eintrag auf '/bin/true' "
+#~ "oder ähnliches. mp3gain wird nur aufgerufen, wenn die benötigten Tags "
+#~ "nicht bereits von Ihrem Encoder gesetzt wurden. Z.B. speichert lame ab "
+#~ "Version 0.95 standardmäßig die Gain-Werte in Tags. Der genaue "
+#~ "Umrechnungsfaktor zwischen mp3gains Gain-Wert und iPods Volume-Tag ist "
+#~ "noch nicht bekannt -- falls Sie mehr wissen kontaktieren Sie mich bitte."
 
-#: gtkpod.glade:108
-msgid "Add _Playlist"
-msgstr "_Wiedergabeliste hinzufügen"
+#, fuzzy
+#~ msgid "Edit Repository Properties"
+#~ msgstr "Sortieroptionen"
 
-#: gtkpod.glade:129
-msgid "Synchronize _iTunesDB"
-msgstr "_iTunesDB abgleichen"
+#~ msgid "Currently no iPod database selected"
+#~ msgstr "Keine iPod Datenbank ausgewählt"
 
-#: gtkpod.glade:183
-msgid "_Update Tracks from File"
-msgstr "_Aktualiere Stücke aus der Datei"
+#~ msgid "No playlist selected."
+#~ msgstr "Keine Wiedergabeliste ausgewählt."
 
-#: gtkpod.glade:204 gtkpod.glade:256 gtkpod.glade:308 gtkpod.glade:366
-#: gtkpod.glade:418 gtkpod.glade:1136 gtkpod.glade:1188 gtkpod.glade:1234
-msgid "Selected _Playlist"
-msgstr "Ausgewählte _Wiedergabeliste"
+#~ msgid "Could not delete backup file: \"%s\"\n"
+#~ msgstr "Konnte Sicherheitskopie nicht löschen: '%s'\n"
 
-#: gtkpod.glade:213 gtkpod.glade:265 gtkpod.glade:317 gtkpod.glade:375
-#: gtkpod.glade:427 gtkpod.glade:1145 gtkpod.glade:1197 gtkpod.glade:1243
-msgid "Selected Tab _Entry"
-msgstr "Ausgewählten _Tab Eintrag"
+#~ msgid "No tracks selected."
+#~ msgstr "Keine Stücke ausgewählt."
 
-#: gtkpod.glade:222 gtkpod.glade:274 gtkpod.glade:326 gtkpod.glade:384
-#: gtkpod.glade:436 gtkpod.glade:569 gtkpod.glade:1154 gtkpod.glade:1206
-#: gtkpod.glade:1252
-msgid "Selected _Tracks"
-msgstr "Ausgewählte _Stücke"
+#~ msgid "Problem creating iPod directory: '%s'."
+#~ msgstr ""
+#~ "Es trat ein Problem beim Erzeugen des iPod-Verzeichnisses auf: '%s'."
 
-#: gtkpod.glade:235
-msgid "Update _mserv Data from File"
-msgstr "_mserv-Daten aktualisieren"
+#~ msgid "Successfully created iPod directories in '%s'."
+#~ msgstr "Die iPod-Verzeichnisstruktur wurde erfolgreich in '%s' angelegt."
 
-#: gtkpod.glade:287
-msgid "_Synchronize Directories"
-msgstr "_Verzeichnisse abgleichen"
+#~ msgid "Create iPod directories"
+#~ msgstr "iPod-Verzeichnisstruktur erstellen"
 
-#: gtkpod.glade:345
-msgid "_Export Tracks from Database"
-msgstr "Stücke aus der Datenbank _exportieren"
+#~ msgid "OK to create the following directories?"
+#~ msgstr "Sollen die folgenden Verzeichnisse erstellt werden?"
 
-#: gtkpod.glade:397
-msgid "Create _Playlist File"
-msgstr "_Wiedergabelistendatei erstellen"
+#~ msgid ""
+#~ "Could not find mp3gain. I tried to use the following executable: '%s'.\n"
+#~ "\n"
+#~ "If the mp3gain executable is not in your path or named differently, you "
+#~ "can set the full path in the 'Tools' section of the preferences dialog.\n"
+#~ "\n"
+#~ "If you do not have mp3gain installed, you can download it from http://www."
+#~ "sourceforge.net/projects/mp3gain."
+#~ msgstr ""
+#~ "'mp3gain' konnte nicht gefunden werden. Es wurde versucht, das folgende "
+#~ "Programm zu starten: '%s'.\n"
+#~ "\n"
+#~ "Wenn 'mp3gain' anders heißt oder nicht im Standard-Suchpfad enthalten "
+#~ "ist, können Sie den vollen Programmnamen unter 'Werkzeuge' im "
+#~ "Einstellungsdialog angeben.\n"
+#~ "\n"
+#~ "Wenn Sie 'mp3gain' nicht installiert haben, können Sie es von 'http://www."
+#~ "sourceforge.net/projects/mp3gain' herunterladen."
 
-#: gtkpod.glade:455
-msgid "_Offline"
-msgstr "_Offline"
+#~ msgid ""
+#~ "  -o:           use offline mode. No changes are exported to the iPod,\n"
+#~ "                but to ~/.gtkpod/ instead. iPod is updated if 'Sync' is\n"
+#~ "                used with 'Offline' deactivated.\n"
+#~ msgstr ""
+#~ "  -o:        Offline-Modus benutzen. Änderungen werden nicht auf den "
+#~ "iPod\n"
+#~ "             geschrieben, sondern nach '~/.gtkpod/'. Der iPod wird "
+#~ "aktualisiert,\n"
+#~ "             wenn nicht im Offline-Modus die iTunesDB abgeglichen wird.\n"
 
-#: gtkpod.glade:471
-msgid "_Create iPod's Directories"
-msgstr "iPod-_Verzeichnisstruktur erstellen"
+#~ msgid "  --offline:    same as '-o'.\n"
+#~ msgstr "  --offline:    wie '-o'.\n"
 
-#: gtkpod.glade:492
-msgid ""
-"Find orphan files (files with no track info in DB) and dangling tracks "
-"(tracks with no corresponding files on iPOD)"
-msgstr ""
-"Verwaiste Stücke (Stücke, für die kein Eintrag in der iTunesDB erscheint) "
-"und verlorene Stücke (Stücke ohne Datei auf dem iPod) finden"
+#~ msgid "Error while reading prefs: %s\n"
+#~ msgstr "Fehler beim Lesen der Vor-Einstellungen: %s\n"
 
-#: gtkpod.glade:493
-msgid "_Check iPod's Files"
-msgstr "iPod Dateien _überprüfen"
+#~ msgid "Unable to open config file '%s' for reading\n"
+#~ msgstr "Kann Datei '%s' mit den Einstellungen nicht lesen.\n"
 
-#: gtkpod.glade:521 gtkpod.glade:11968
-msgid "_Edit"
-msgstr "_Bearbeiten"
+#~ msgid "Unknown option: %s\n"
+#~ msgstr "Unbekannte Option: %s\n"
 
-#: gtkpod.glade:530
-msgid "Edit"
-msgstr "Bearbeiten"
+#~ msgid "# delete confirmation\n"
+#~ msgstr "# Sicherheitsabfrage beim Löschen\n"
 
-#: gtkpod.glade:551
-msgid "Tracks in Selected _Playlist"
-msgstr "Stücke in ausgewählter _Wiedergabeliste"
+#~ msgid "# sort tab: select 'All', last selected page (=category)\n"
+#~ msgstr ""
+#~ "# Sort Tab: 'Alle' automatisch wählen, letze gewählte Seite (=Kategorie)\n"
 
-#: gtkpod.glade:560
-msgid "Tracks in Selected Tab _Entry"
-msgstr "Stücke im ausgewählten _Tab Eintrag"
+#~ msgid "# autoselect master playlist?\n"
+#~ msgstr "# Hauptplayliste automatisch auswählen?\n"
 
-#: gtkpod.glade:591
-msgid "_Delete"
-msgstr "_Löschen"
+#~ msgid "# title=0, artist, album, genre, composer\n"
+#~ msgstr "# Titel=0, Künstler, Album, Musikrichtung, Komponist\n"
 
-#: gtkpod.glade:612
-msgid "Selected playlist"
-msgstr "Ausgewählte _Wiedergabeliste"
+#~ msgid "# track_nr=5, ipod_id, pc_path, transferred\n"
+#~ msgstr "# Track_Nr=5, iPod_ID, PC_Pfad, Transferred\n"
 
-#: gtkpod.glade:621
-msgid "Selected playlist including tracks from iPod"
-msgstr "Ausgewählte Wiedergabeliste einschließlich der Stücke vom iPod"
+#~ msgid "# autoset: set empty tag to filename?\n"
+#~ msgstr "# autoset: Leere ID3-Tags mit dem Filenamen initialiseren?\n"
 
-#: gtkpod.glade:630
-msgid "Selected playlist including tracks from database"
-msgstr ""
-"Ausgewählte Wiedergabeliste einschließlich der Stücke von der Datenbank"
+#~ msgid ""
+#~ "# position of sliders (paned): playlists, above tracks,\n"
+#~ "# between sort tabs, and in statusbar.\n"
+#~ msgstr ""
+#~ "# Position der Schiebeelemente (paned): Wiedergabelisten,\n"
+#~ "# über der Stückanzeige, zwischen den Sort Tabs\n"
 
-#: gtkpod.glade:639
-msgid "Selected playlist including tracks from harddisk"
-msgstr ""
-"Ausgewählte Wiedergabeliste einschließlich der Stücke von der Festplatte"
+#~ msgid ""
+#~ "# window sizes: main window, confirmation scrolled,\n"
+#~ "#               confirmation non-scrolled, dirbrowser, prefs\n"
+#~ msgstr ""
+#~ "# Fenstergrößen: Hauptfenster, Bestätigungsfenster (gescrollt),\n"
+#~ "#                Bestätigungsfenster (ungescrollt), Verzeichnisbaum\n"
+#~ "#                Einstellungsfenster\n"
 
-#: gtkpod.glade:654
-msgid "Selected filter tab entry from playlist"
-msgstr "Ausgewählten Filter-Tab von der Wiedergabeliste"
+#~ msgid "Unable to open '%s' for writing\n"
+#~ msgstr "Kann '%s' nicht zum schreiben öffnen.\n"
 
-#: gtkpod.glade:663
-msgid "Selected filter tab entry from iPod"
-msgstr "Ausgewählten Filter-Tab vom iPod"
+#~ msgid ""
+#~ " Preferences: Category nr (%d<%d?) or sorttab nr (%d<%d?) out of range.\n"
+#~ msgstr ""
+#~ " Voreinstellungen: Kategorie (%d<%d?) oder SortTab (%d<%d?) außerhalb des "
+#~ "erlaubten Bereichs.\n"
 
-#: gtkpod.glade:672
-msgid "Selected filter tab entry from database"
-msgstr "Ausgewählten Filter-Tab aus der lokalen Datenbank"
+#~ msgid "Unable to 'mkdir %s'\n"
+#~ msgstr "Kann 'mkdir %s' nicht ausführen.\n"
 
-#: gtkpod.glade:681
-msgid "Selected filter tab entry from harddisk"
-msgstr "Ausgwählten Filter-Tab von der Festplatte"
+#~ msgid "prefs_set_toolbar_style: illegal style '%d' ignored\n"
+#~ msgstr "prefs_set_toolbar_style: ungültiger Stil '%d' ignoriert\n"
 
-#: gtkpod.glade:696
-msgid "Selected tracks from playlist"
-msgstr "Ausgewählte Stücke von der Wiedergabeliste"
+#~ msgid "prefs_set_pm_sort: illegal type '%d' ignored\n"
+#~ msgstr "prefs_set_toolbar_style: ungültiger Typ '%d' ignoriert\n"
 
-#: gtkpod.glade:705
-msgid "Selected tracks from iPod"
-msgstr "Ausgewählte Stücke vom iPod"
+#~ msgid "'%s': no arguments (%%...) allowed.\n"
+#~ msgstr "'%s': keine Argumente (%%...) erlaubt.\n"
 
-#: gtkpod.glade:714
-msgid "Selected tracks from database"
-msgstr "Ausgewählte Stücke von der Datenbank"
+#~ msgid "'%s': only '%%[%s]' allowed.\n"
+#~ msgstr "'%s': nur '%%[%s]' erlaubt.\n"
 
-#: gtkpod.glade:723
-msgid "Selected tracks from harddisk"
-msgstr "Ausgewählte Stücke von der Festplatte"
+#~ msgid "_Read iTunesDB"
+#~ msgstr "iTunesDB _importieren"
 
-#: gtkpod.glade:742
-msgid "_Create Playlists"
-msgstr "_Wiedergabelisten erstellen"
+#~ msgid "Synchronize _iTunesDB"
+#~ msgstr "_iTunesDB abgleichen"
 
-#: gtkpod.glade:763
-msgid "Empty Playlist"
-msgstr "Leere Wiedergabeliste"
+#~ msgid "Edit"
+#~ msgstr "Bearbeiten"
 
-#: gtkpod.glade:781
-msgid "Random Playlist from Displayed Tracks"
-msgstr "Zufällig aus den angezeigten Tracks"
+#~ msgid "Read Existing Database from Disk/iPod"
+#~ msgstr "iTunes Datenbank von der Festplatte / dem iPod einlesen"
 
-#: gtkpod.glade:790
-msgid "Containing Displayed Tracks"
-msgstr "Aus den angezeigten Stücken"
+#~ msgid "Read"
+#~ msgstr "Einlesen"
 
-#: gtkpod.glade:799
-msgid "Containing Selected Tracks"
-msgstr "Aus den ausgewählten Stücken"
+#~ msgid "Write Changes to Disk/iPod"
+#~ msgstr "Änderungen auf Festplatte / den iPod übertragen"
 
-#: gtkpod.glade:808
-msgid "One for each Artist"
-msgstr "Eine für jeden Künstler"
+#~ msgid "Sync"
+#~ msgstr "Abgleichen"
 
-#: gtkpod.glade:817
-msgid "One for each Album"
-msgstr "Eine für jedes Album"
+#, fuzzy
+#~ msgid "Update Tracks"
+#~ msgstr "Unbewertet"
 
-#: gtkpod.glade:826
-msgid "One for each Genre"
-msgstr "Eine für jedes Genre"
+#~ msgid "Normalize"
+#~ msgstr "Lautstärkenormalisierung"
 
-#: gtkpod.glade:835
-msgid "One for each Composer"
-msgstr "Eine für jeden Komponisten"
+#~ msgid "Update Podcasts"
+#~ msgstr "Podcasts erneuern"
 
-#: gtkpod.glade:844
-msgid "One for each Year"
-msgstr "Eine für jedes Jahr"
+#~ msgid "Podcasts Preferences"
+#~ msgstr "Podcasts Einstellungen"
 
-#: gtkpod.glade:853
-msgid "One for each Rating"
-msgstr "Eine für jede Bewertung"
+#~ msgid "file not found"
+#~ msgstr "Datei nicht gefunden"
 
-#: gtkpod.glade:862
-msgid "Best Rated Tracks"
-msgstr "Höchstgewertete Stücke"
+#~ msgid "Unmounting of '%s' (%s) unsuccessful."
+#~ msgstr "Unmount von '%s' (%s) war nicht erfolgreich."
 
-#: gtkpod.glade:871
-msgid "Tracks Most Often Listened To"
-msgstr "Am häufigsten gehörte Stücke"
+#~ msgid "Unmounting of '%s' unsuccessful."
+#~ msgstr "Unmount von '%s' war erfolgreich."
 
-#: gtkpod.glade:880
-msgid "Most Recently Played Tracks"
-msgstr "Zuletzt gespielte Stücke"
+#~ msgid "Update"
+#~ msgstr "Aktualisieren"
 
-#: gtkpod.glade:889
-msgid "All Tracks Played Since Last Time"
-msgstr "Seit dem letzten Mal gespielte Stücke"
+#~ msgid "Sync Dirs"
+#~ msgstr "Verzeichnisse abgleichen"
 
-#: gtkpod.glade:898
-msgid "All Tracks Never Listened To"
-msgstr "Nie gehörte Stücke"
+#~ msgid "Sync dirs of selected entry in which sort tab?"
+#~ msgstr "Verzeichnisse aus welchem Sort Tab abgleichen?"
 
-#: gtkpod.glade:907
-msgid "All Tracks not Listed in any Playlist"
-msgstr "In keiner Wiedergabeliste aufgeführte Stücke"
+#~ msgid "Syncing directory '%s'"
+#~ msgstr "Verzeichnis '%s' wird abgeglichen"
 
-#: gtkpod.glade:920
-msgid "Randomize Current Playlist"
-msgstr "Aktuelle Wiedergabeliste zufällig sortieren"
+#~ msgid "Syncing completed. No files deleted."
+#~ msgstr "Abgleich beendet. Keine Dateien gelöscht."
 
-#: gtkpod.glade:935
-msgid "_Sorting"
-msgstr "_Sortierung"
+#~ msgid "Never delete any files when syncing"
+#~ msgstr "Beim Abgleich nie Dateien löschen"
 
-#: gtkpod.glade:957
-msgid "_Save Displayed Track Order"
-msgstr "_Dargestellte Reihenfolge der Stücke speichern"
+#~ msgid "Syncing completed."
+#~ msgstr "Abgleich beendet."
 
-#: gtkpod.glade:985
-msgid "_Edit Preferences"
-msgstr "_Einstellungen"
+#~ msgid "Syncing aborted"
+#~ msgstr "Abgleich abgebrochen."
 
-#: gtkpod.glade:1011
-msgid "_View"
-msgstr "_Ansicht"
+#~ msgid "No tracks in selection"
+#~ msgstr "Keine Stücke ausgewählt"
 
-#: gtkpod.glade:1020
-msgid "_Toolbar"
-msgstr "_Toolbar"
+#~ msgid "'%s' is not a directory. Ignored.\n"
+#~ msgstr "'%s' ist kein Verzeichnis und wird ignoriert.\n"
 
-#: gtkpod.glade:1030
-msgid "_Tooltips"
-msgstr "_Tooltips"
+#~ msgid ""
+#~ "No directory names were stored. Make sure that you enable 'Write extended "
+#~ "information' in the Export section of the preferences at the time of "
+#~ "importing files.\n"
+#~ "\n"
+#~ "To synchronize directories now, activate the duplicate detection ('Don't "
+#~ "allow file duplication') in the Import section and add the directories "
+#~ "you want to sync again.\n"
+#~ msgstr ""
+#~ "Es wurden keine Verzeichnisnamen gespeichert. Stellen Sie sicher, daß die "
+#~ "Option 'Erweiterte Informationen Schreiben' in der Export-Sektion der "
+#~ "Einstellungen zum Zeitpunkt des Dateiimports aktiviert ist.\n"
+#~ "\n"
+#~ "Wenn Sie jetzt ein Verzeichnis abgleichen wollen, aktivieren Sie bitte "
+#~ "die Option 'Mehrfaches Einlesen von Stücken verhindern' in der Import-"
+#~ "Sektion und fügen anschließend die gewünschten Verzeichnisse erneut "
+#~ "hinzu.\n"
 
-#: gtkpod.glade:1040
-msgid "_Info Window"
-msgstr "_Info Fenster"
+#~ msgid "No valid directories have been found. Sync aborted.\n"
+#~ msgstr ""
+#~ "Es wurden keine gültigen Verzeichnisse gefunden. Abgleich wurde "
+#~ "abgebrochen.\n"
 
-#: gtkpod.glade:1051
-msgid "_More Sort Tabs"
-msgstr "_Mehr Sort Tabs"
+#~ msgid ""
+#~ "The (former) contents of the following directories will be removed from "
+#~ "the database:\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Die (ehemaligen) Inhalte folgender Verzeichnisse werden aus der Datenbank "
+#~ "entfernt:\n"
+#~ "\n"
 
-#: gtkpod.glade:1072
-msgid "_Less Sort Tabs"
-msgstr "_Weniger Sort Tabs"
+#~ msgid ""
+#~ "The following directories will be synchronized:\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Die folgenden Verzeichnisse werden synchronisiert:\n"
+#~ "\n"
 
-#: gtkpod.glade:1093
-msgid "_Arrange Sort Tabs"
-msgstr "Sort Tabs _Anordnen"
+#~ msgid "Synchronize directories"
+#~ msgstr "Verzeichnisse abgleichen"
 
-#: gtkpod.glade:1106 gtkpod.glade:12693
-msgid "_Tools"
-msgstr "_Werkzeuge"
+#~ msgid "Syncing contacts, calendar and notes..."
+#~ msgstr "Gleiche Kontakte, Kalender und Notizen ab..."
 
-#: gtkpod.glade:1115
-msgid "_Play Now"
-msgstr "_Jetzt Abspielen"
+#~ msgid "_Synchronize Directories"
+#~ msgstr "_Verzeichnisse abgleichen"
 
-#: gtkpod.glade:1167
-msgid "_Enqueue"
-msgstr "Zum Abspielen _Vormerken"
+#~ msgid ""
+#~ "Where you mounted your iPod's filesystem. Usually '/mnt/ipod/' or similar."
+#~ msgstr "Wo ist Ihr iPod gemountet? Für gewöhnlich unter '/mnt/ipod/'."
 
-#: gtkpod.glade:1225
-msgid "_Normalize Volume"
-msgstr "_Lautstärke normalisieren"
+#~ msgid ""
+#~ "If you check this option, tracks that have been removed from the synced "
+#~ "directories will be removed from the iPod as well."
+#~ msgstr ""
+#~ "Wenn Sie diese Option wählen, werden Stücke, die aus den abzugleichenden "
+#~ "Verzeichnissen entfernt wurden, auch auf dem iPod gelöscht."
 
-#: gtkpod.glade:1261
-msgid "_Displayed Tracks"
-msgstr "_Angezeigte Stücke"
+#~ msgid "Delete tracks that have been removed"
+#~ msgstr "Stücke, die entfernt wurden, löschen"
 
-#: gtkpod.glade:1270
-msgid "_All Tracks"
-msgstr "_Alle Stücke"
+#~ msgid "Confirm before removing tracks"
+#~ msgstr "Vor dem Entfernen von Stücken bestätigen"
 
-#: gtkpod.glade:1279
-msgid "_Newly Added Tracks"
-msgstr "_Neu hinzugefügte Stücke"
+#~ msgid ""
+#~ "Before removing tracks completely when\n"
+#~ "synchronizing directories"
+#~ msgstr ""
+#~ "Vor dem vollständigen Löschen vom iPod beim\n"
+#~ "Abgleich von Verzeichnissen"
 
-#: gtkpod.glade:1298
-msgid "Synchronise Contacts, Calendar and Notes"
-msgstr "Kontakte, Kalender und Notizen abgleichen"
+#~ msgid "Add"
+#~ msgstr "Hinzufügen"
 
-#: gtkpod.glade:1299
-msgid "Synchronize All"
-msgstr "Alle abgleichen"
+#~ msgid "Delete"
+#~ msgstr "Löschen"
 
-#: gtkpod.glade:1308
-msgid "Synchronize Contacts"
-msgstr "Kontakte abgleichen"
+#~ msgid "Name: "
+#~ msgstr "Name: "
 
-#: gtkpod.glade:1317
-msgid "Synchronize Calendar"
-msgstr "Kalender abgleichen"
+#~ msgid "<b>File options</b>"
+#~ msgstr "<b>Datei-Optionen</b>"
 
-#: gtkpod.glade:1326
-msgid "Synchronize Notes"
-msgstr "Notizen abgleichen"
+#~ msgid " days old"
+#~ msgstr "Tage alt"
 
-#: gtkpod.glade:1339
-msgid "_Help"
-msgstr "_Hilfe"
+#~ msgid "<b>iPod options</b>"
+#~ msgstr "<b>iPod Optionen</b>"
 
-#: gtkpod.glade:1348
-msgid "_About"
-msgstr "_Ãœber"
+#~ msgid "Delete from iPod when "
+#~ msgstr "Vom iPod entfernen wenn "
 
-#: gtkpod.glade:1388
-msgid "Read Existing Database from Disk/iPod"
-msgstr "iTunes Datenbank von der Festplatte / dem iPod einlesen"
+#~ msgid ""
+#~ "\n"
+#~ "\n"
+#~ msgstr ""
+#~ "\n"
+#~ "\n"
 
-#: gtkpod.glade:1389
-msgid "Read"
-msgstr "Einlesen"
+#~ msgid "Abort selected"
+#~ msgstr "Abrechen gewählt"
 
-#: gtkpod.glade:1406
-msgid "Add Files or Directories"
-msgstr "Wählen Sie hinzuzufügende Dateien oder Verzeichnisse aus."
-
-#: gtkpod.glade:1407
-msgid "Files"
-msgstr "Dateien"
-
-#: gtkpod.glade:1424
-msgid "Add Directories Recursively"
-msgstr "Verzeichnisse rekursiv hinzufügen"
-
-#: gtkpod.glade:1425
-msgid "Dirs"
-msgstr "Verzeichnisse"
-
-#: gtkpod.glade:1442
-msgid "Add playlist from file"
-msgstr "Wiedergabeliste aus Datei hinzufügen"
-
-#: gtkpod.glade:1460
-msgid "Create New Playlist"
-msgstr "Neue Wiedergabeliste erstellen"
-
-#: gtkpod.glade:1461
-msgid "New PL"
-msgstr "Neue PL"
-
-#: gtkpod.glade:1478
-msgid "Write Changes to Disk/iPod"
-msgstr "Änderungen auf Festplatte / den iPod übertragen"
-
-#: gtkpod.glade:1479
-msgid "Sync"
-msgstr "Abgleichen"
-
-#: gtkpod.glade:1495
-msgid "Stop Display Update"
-msgstr "Aktualisierung der Anzeige abbrechen"
-
-#: gtkpod.glade:1496
-msgid "Stop"
-msgstr "Stopp"
-
-#: gtkpod.glade:1669
-msgid "About gtkpod"
-msgstr "Ãœber gtkpod"
-
-#: gtkpod.glade:1790
-msgid "Credits"
-msgstr "Danksagung"
-
-#: gtkpod.glade:1844
-msgid "Translators"
-msgstr "Ãœbersetzer"
-
-#: gtkpod.glade:1898
-msgid "special_sorttab -- Don't translate!"
-msgstr "special_sorttab -- Don't translate!\""
-
-#: gtkpod.glade:1932
-msgid " Logic: "
-msgstr "Logik:"
-
-#: gtkpod.glade:1954
-msgid "Any (OR)"
-msgstr "Eines (ODER)"
-
-#: gtkpod.glade:1973
-msgid "All (AND)"
-msgstr "Alle (UND)"
-
-#: gtkpod.glade:2026
-msgid "0"
-msgstr "0"
-
-#: gtkpod.glade:2045
-msgid "1"
-msgstr "1"
-
-#: gtkpod.glade:2064
-msgid "2"
-msgstr "2"
-
-#: gtkpod.glade:2083
-msgid "3"
-msgstr "3"
-
-#: gtkpod.glade:2102
-msgid "4"
-msgstr "4"
-
-#: gtkpod.glade:2121
-msgid "5"
-msgstr "5"
-
-#: gtkpod.glade:2160
-msgid "Select '0' for no lower limit."
-msgstr "'0' wählen für 'keine untere Schranke'."
-
-#: gtkpod.glade:2181
-msgid " <= cts <= "
-msgstr " <= num <= "
-
-#: gtkpod.glade:2202
-msgid "Select '-1' for no upper limit."
-msgstr "'-1' wählen für 'keine obere Schranke'."
-
-#: gtkpod.glade:2245 gtkpod.glade:2318 gtkpod.glade:2484
-msgid ""
-"'DD/MM/YYYY HH:MM < d < DD/MM/YYYY HH:MM' or similar. Press 'enter' when "
-"finished."
-msgstr ""
-"z.B. 'TT/MM/JJJJ SS:MM < d < TT/MM/JJJJ SS:MM' oder ähnliches. Nach der "
-"Eingabe bitte 'Return' drücken."
-
-#: gtkpod.glade:2287 gtkpod.glade:2360 gtkpod.glade:2526 gtkpod.glade:2701
-msgid "Calendar"
-msgstr "Kalender"
-
-#: gtkpod.glade:2385
-msgid "Specify interval"
-msgstr "Intervall angeben"
-
-#: gtkpod.glade:2596
-msgid "Display tracks that match the criteria entered above."
-msgstr "Stücke anzeigen, welche die oben genannten Kriterien erfüllen."
-
-#: gtkpod.glade:2639 gtkpod.glade:11330
-msgid "_Display"
-msgstr "_Anzeige"
-
-#: gtkpod.glade:2671
-msgid ""
-"Automatically start displaying tracks that match the criteria entered above. "
-"If not selected, you must press 'Display' to start displaying."
-msgstr ""
-"Die Anzeige der Stücke, welche die oben genannten Kriterien erfüllen, "
-"automatisch starten. Wenn diese Option nicht aktiviert ist, müssen Sie "
-"'Anzeigen' drücken."
-
-#: gtkpod.glade:2673
-msgid "Start display automatically"
-msgstr "Anzeige automatisch starten"
-
-#: gtkpod.glade:2746
-msgid "Sorttab: "
-msgstr "Sort Tab: "
-
-#: gtkpod.glade:2786
-msgid "     "
-msgstr "     "
-
-#: gtkpod.glade:2808
-msgid "Category: "
-msgstr "Kategorie: "
-
-#: gtkpod.glade:2885
-msgid "Please specify a time interval"
-msgstr "Intervall angeben"
-
-#: gtkpod.glade:2930
-msgid "Lower Margin"
-msgstr "Untere Grenze"
-
-#: gtkpod.glade:2977 gtkpod.glade:3183
-msgid "Time:"
-msgstr "Zeit:"
-
-#: gtkpod.glade:3020 gtkpod.glade:3226
-msgid ":"
-msgstr ":"
-
-#: gtkpod.glade:3093
-msgid "No lower margin"
-msgstr "Keine untere Grenze"
-
-#: gtkpod.glade:3136
-msgid "Upper margin"
-msgstr "Obere Grenze"
-
-#: gtkpod.glade:3299
-msgid "No upper margin"
-msgstr "Keine obere Grenze"
-
-#: gtkpod.glade:3397
-msgid "Sorting Options"
-msgstr "Sortieroptionen"
-
-#: gtkpod.glade:3427
-msgid "<b>Sort Order</b>"
-msgstr "<b>Sortier-Reihenfolge</b>"
-
-#: gtkpod.glade:3454 gtkpod.glade:4704 gtkpod.glade:7682 gtkpod.glade:7860
-#: gtkpod.glade:8031 gtkpod.glade:8108 gtkpod.glade:8163 gtkpod.glade:8239
-#: gtkpod.glade:8396 gtkpod.glade:8522 gtkpod.glade:8879 gtkpod.glade:9338
-#: gtkpod.glade:9700 gtkpod.glade:10487 gtkpod.glade:10644 gtkpod.glade:10801
-#: gtkpod.glade:10922 gtkpod.glade:10975 gtkpod.glade:11132 gtkpod.glade:11389
-#: gtkpod.glade:11443 gtkpod.glade:11554 gtkpod.glade:11657 gtkpod.glade:11813
-#: gtkpod.glade:12027 gtkpod.glade:12248 gtkpod.glade:12386 gtkpod.glade:12752
-#: gtkpod.glade:12870 gtkpod.glade:13044 gtkpod.glade:13279 gtkpod.glade:13381
-msgid "    "
-msgstr "    "
-
-#: gtkpod.glade:3482
-msgid ""
-"In order to save the displayed track order to the iPod choose 'Save "
-"Displayed Track Order' from the 'Edit' menu or select 'Auto Store' below."
-msgstr ""
-"Um die angezeigte Reihenfolge der Stücke zu speichern, benutzen Sie "
-"'Dargestellte Reihenfolge speichern' im 'Bearbeiten'-Menü oder wählen die "
-"Option \"Auto-Speichern\" unten aus."
-
-#: gtkpod.glade:3865
-msgid "Ascending"
-msgstr "Aufsteigend"
-
-#: gtkpod.glade:3909
-msgid "Descending"
-msgstr "Absteigend"
-
-#: gtkpod.glade:3953
-msgid "None"
-msgstr "Keine"
-
-#: gtkpod.glade:4042
-msgid "Sorttabs"
-msgstr "Sort Tabs"
-
-#: gtkpod.glade:4087
-msgid "Tracks"
-msgstr "Stücke"
-
-#: gtkpod.glade:4240
-msgid "Auto Store"
-msgstr "Auto-Speichern"
-
-#: gtkpod.glade:4285 gtkpod.glade:4331
-msgid "Please refer to the notice below."
-msgstr "Bitte beachten Sie den Hinweis weiter unten."
-
-#: gtkpod.glade:4563
-msgid "Sort tracks according to: "
-msgstr "Sortiere Stücke nach: "
-
-#: gtkpod.glade:4593
-msgid ""
-"You can also use the table headers, but this allows you to sort according to "
-"a column that is not displayed."
-msgstr ""
-"Sie können auch die Spaltenköpfe anklicken, aber diese Option ermöglicht es "
-"auch nach Spalten zu sortieren, die nicht angezeigt werden."
-
-#: gtkpod.glade:4629
-msgid ""
-"If checked, sorting will be case sensitive. Please note that case sensitive "
-"sorting will not work well with most charsets."
-msgstr ""
-"Wenn diese Option aktiviert ist, wird beim Sortieren die Groß-/"
-"Kleinschreibung beachtet. Mit den meisten Zeichensätzen funktioniert diese "
-"Funktion jedoch nicht wie gewünscht."
-
-#: gtkpod.glade:4631
-msgid "Sorting case sensitive"
-msgstr "Beim Sortieren Groß-/Kleinschreibung beachten"
-
-#: gtkpod.glade:4677
-msgid "<b>Ignore Frequent Words</b>"
-msgstr "<b>Ignoriere oftverwendete Wörter</b>"
-
-#: gtkpod.glade:4769
-msgid "Ignore these words when at the beginning of the following fields:"
-msgstr "Ignoriere folgende Wörter, wenn Sie am Anfang von Feldern stehen:"
-
-#: gtkpod.glade:5040
-msgid "gtkpod Info"
-msgstr "gtkpod Info"
-
-#: gtkpod.glade:5339 gtkpod.glade:5414 gtkpod.glade:5439 gtkpod.glade:6065
-#: gtkpod.glade:6198
-msgid "      "
-msgstr "     "
-
-#: gtkpod.glade:5692
-msgid "Number of tracks"
-msgstr "Anzahl der Stücke"
-
-#: gtkpod.glade:5718
-msgid "Play time"
-msgstr "Spielzeit"
-
-#: gtkpod.glade:5745
-msgid "File size"
-msgstr "Dateigröße"
-
-#: gtkpod.glade:5771
-msgid "Number of playlists"
-msgstr "Anzahl der Wiedergabelisten"
-
-#: gtkpod.glade:5797
-msgid "Deleted tracks"
-msgstr "Gelöschte Stücke"
-
-#: gtkpod.glade:5823
-msgid "File size (deleted)"
-msgstr "Dateigröße (gelöscht)"
-
-#: gtkpod.glade:5849
-msgid "Non-transferred tracks"
-msgstr "Nicht übertragene Stücke"
-
-#: gtkpod.glade:5875
-msgid "File size (non-transferred)"
-msgstr "Dateigröße (nicht übertragen)"
-
-#: gtkpod.glade:5901
-msgid "Effective free space"
-msgstr "Effektiv freier Platz"
-
-#: gtkpod.glade:5927
-msgid ""
-"Total\n"
-"(iPod)"
-msgstr ""
-"Insgesamt\n"
-"(iPod)"
-
-#: gtkpod.glade:5955
-msgid ""
-"Selected\n"
-"Playlist"
-msgstr ""
-"Ausgewählte\n"
-"Wiedergabeliste"
-
-#: gtkpod.glade:5983
-msgid ""
-"Displayed\n"
-"Tracks"
-msgstr ""
-"Angezeigte\n"
-"Stücke"
-
-#: gtkpod.glade:6011
-msgid ""
-"Selected\n"
-"Tracks"
-msgstr ""
-"Ausgewählte\n"
-"Stücke"
-
-#: gtkpod.glade:6039
-msgid ""
-"Total\n"
-"(local)"
-msgstr ""
-"Insgesamt\n"
-"(lokal)"
-
-#: gtkpod.glade:6436
-msgid "label21"
-msgstr "label21"
-
-#: gtkpod.glade:6527
-msgid "Never show this dialogue again"
-msgstr "Diesen Dialog nie wieder zeigen"
-
-#: gtkpod.glade:6572 gtkpod.glade:6898
-msgid "window1"
-msgstr "window1"
-
-#: gtkpod.glade:6629
-msgid "_M3U"
-msgstr "_M3U"
-
-#: gtkpod.glade:6648
-msgid "_PLS"
-msgstr "_PLS"
-
-#: gtkpod.glade:6686
-msgid ""
-"If available, the local copy of the track is referenced in the playlist. "
-"Otherwise the file on the iPod is used."
-msgstr ""
-"Wenn verfügbar, die lokale Kopie des Tracks wird in die Wiedergabeliste "
-"eingetragen. Andernfalls die Datei auf dem iPod wird verwendet."
-
-#: gtkpod.glade:6688
-msgid "_Prefer Local"
-msgstr "Lokal _bevorzugen"
-
-#: gtkpod.glade:6706
-msgid ""
-"The local copy of the track is referenced in the playlist. If the track is "
-"not available locally, an error message is displayed."
-msgstr ""
-"Die lokale Kopie des Tracks wird in der Wiedergabeliste eingetragen. Falls "
-"der Track lokal nicht verfügbar ist, wird eine Fehlermeldung ausgegeben."
-
-#: gtkpod.glade:6708
-msgid "_Local"
-msgstr "_Lokal"
-
-#: gtkpod.glade:6727
-msgid "The track on the iPod is referenced in the playlist file."
-msgstr "Die Datei auf dem iPod wird in die Wiedergabeliste eingetragen."
-
-#: gtkpod.glade:6729
-msgid "_iPod"
-msgstr "_iPod"
-
-#: gtkpod.glade:6762
-msgid "Playlist type:"
-msgstr "Art der Wiedergabeliste:"
-
-#: gtkpod.glade:6787
-msgid "Source:"
-msgstr "Quelle:"
-
-#: gtkpod.glade:6826
-msgid "Template for info field: "
-msgstr "Schablone für dieses Feld: "
-
-#: gtkpod.glade:6847
-msgid ""
-"Determines how the string for the info field should be constructed, e.g '%a/%"
-"A/%T - %t.mp3' or '%o'.  You can separate several templates by semicolons -- "
-"gtkpod will determine which one to use by the filename extension given. "
-"Artist: %a, album: %A, composer: %c, title: %t, genre: %G, track nr: %T, CD "
-"nr: %C, year: %Y, original filename (requires extended information file): %"
-"o, the character '%': %%."
-msgstr ""
-"Bestimmt, wie der Text des Info-Feldes erstellt werden soll, z.B. '%a/%A/%T "
-"- %t.mp3' oder '%o'. Mehrere Schablonen können durch Semikolons getrennt "
-"werden -- gtkpod ermittelt die passende Schablone anhand des "
-"Dateinamensuffix. Künstler: %a, Album: %A, Komponist: %c, Titel: %t, "
-"Musikrichtung: %G, Stück-Nr.: %T, CD-Nr.: %C, Jahr: %Y,  ursprünglicher "
-"Dateiname (benötigt 'Erweiterte Informationen'): %o, das Zeichen '%': %%."
-
-#: gtkpod.glade:6878 gtkpod.glade:7108
-msgid "gtkpod options"
-msgstr "gtkpod Optionen"
-
-#: gtkpod.glade:6934
-msgid "Filename Format: "
-msgstr "Format für Dateinamen: "
-
-#: gtkpod.glade:6955
-msgid ""
-"Determines the filename of tracks you copy from the iPod, e.g '%a/%A/%T - %t."
-"mp3' or '%o'.  You can separate several patterns by semicolons -- gtkpod "
-"will determine which one to use by the filename extension given. Artist: %a, "
-"album: %A, composer: %c, title: %t, genre: %G, track nr: %T, CD nr: %C, "
-"year: %Y, original filename (requires extended information file): %o, "
-"current playlist: %p, the character '%': %%."
-msgstr ""
-"Bestimmt, wie der Dateiname von Stücken gewählt wird, die vom iPod kopiert "
-"werden. Bsp.: '%a/%A/%T - %t.mp3' oder '%o'. Mehrere Schablonen können durch "
-"Semikolons getrennt werden -- gtkpod ermittelt die passende Schablone anhand "
-"des Dateinamensuffix. Künstler: %a, Album: %A, Komponist: %c, Titel: %t, "
-"Musikrichtung: %G, Stück-Nr.: %T, CD-Nr.: %C, Jahr: %Y,  ursprünglicher "
-"Dateiname (benötigt 'Erweiterte Informationen'): %o, die aktuelle "
-"Wiedergabelist: %p, das Zeichen '%': %%."
-
-#: gtkpod.glade:6960
-msgid " "
-msgstr " "
-
-#: gtkpod.glade:6982
-msgid ""
-"Normally the charset specified when first importing the track will be used "
-"for the filename. If you set this option you can set a different charset "
-"with the charset selector (Preferences/'Adding/Updating/Syncing'). Note: the "
-"charset info is stored in the extended information file (see "
-"Preferences/'Writing of the iTunesDB'). Tracks imported before V0.51 will "
-"have no charset stored. Instead the charset specified will be used."
-msgstr ""
-"Normalerweise wird der Zeichensatz, der beim ersten Einlesen spezifiziert "
-"wurde, auch für den Dateinamen verwendet. Wenn Sie diese Option aktivieren, "
-"können Sie einen anderen Zeichensatz auswählen (Einstellungen/'Hinzufügen/"
-"Aktualisieren/Abgleichen'). Bitte beachten Sie: die Information über den "
-"verwendeten Zeichensatz wird mit den erweiterten Informationen gespeichert "
-"(siehe Einstellungen/'Schreiben der iTunesDB'). Stücke, die vor Version 0.51 "
-"eingelesen wurden, haben keine Informationen über den Zeichensatz "
-"gespeichert und der oben spezifizierte Zeichensatz wird verwendet."
-
-#: gtkpod.glade:6984
-msgid ""
-"Use selected charset (Preferences/'Adding/Updating/ Syncing')\n"
-"for this filename."
-msgstr ""
-"Gewählten Zeichensatz (Einstellungen/'Hinzufügen/Aktualisieren/Abgleichen') "
-"für diesen Dateinamen verwenden."
-
-#: gtkpod.glade:7003
-msgid ""
-"When copying from iPod no check is performed on whether the destination file "
-"exists. Enabling this option will make gtkpod check whether the length of "
-"the destination file is the same as the file in the iPod. If so the file is "
-"skipped, allowing a quick sync of the iPod's contents."
-msgstr ""
-"Wenn ein Stück vom iPod kopiert wird, wird normalerweise nicht überprüft, ob "
-"die Datei im Zielverzeichnis bereits vorhanden ist. Wenn Sie diese Option "
-"aktivieren, wird gtkpod anhand der Dateigröße überprüfen, ob die Datei "
-"bereits existiert. Wenn ja, wird das Kopieren übersprungen. Dies erlaubt es, "
-"einen schnellen Abgleich der Daten auf Ihrer Festplatte mit denen des iPods "
-"vorzunehmen."
-
-#: gtkpod.glade:7005
-msgid "Check for existing files when copying from iPod."
-msgstr "Bei Kopieren vom iPod Überprüfen, ob Datei bereits existiert."
-
-#: gtkpod.glade:7169
-msgid "Playlist name:"
-msgstr "Name der Wiedergabeliste:"
-
-#: gtkpod.glade:7234
-msgid "Match al_l of the following"
-msgstr "_Alle der folgenden Regeln"
-
-#: gtkpod.glade:7253
-msgid "Match an_y of the following"
-msgstr "Mindestens _eine der folgenden Regeln"
-
-#: gtkpod.glade:7273
-msgid "_Ignore rules"
-msgstr "_Regeln nicht verwenden"
-
-#: gtkpod.glade:7343
-msgid "Rules"
-msgstr "Regeln"
-
-#: gtkpod.glade:7376
-msgid "_Limit to"
-msgstr "_Limitieren auf"
-
-#: gtkpod.glade:7425
-msgid "   Sort by:"
-msgstr "   Sortieren nach:"
-
-#: gtkpod.glade:7471
-msgid "Match only _checked tracks"
-msgstr "_Nur ausgewählte Stücke einbeziehen"
-
-#: gtkpod.glade:7503
-msgid "Live _updating"
-msgstr "_Live-Update"
-
-#: gtkpod.glade:7594
-msgid "Preferences"
-msgstr "Einstellungen"
-
-#: gtkpod.glade:7655
-msgid "<b>Import</b>"
-msgstr "<b>Importieren</b>"
-
-#: gtkpod.glade:7715
-msgid "iPod Mount _Point:"
-msgstr "iPod Mount _Point:"
-
-#: gtkpod.glade:7737
-msgid ""
-"Where you mounted your iPod's filesystem. Usually '/mnt/ipod/' or similar."
-msgstr "Wo ist Ihr iPod gemountet? Für gewöhnlich unter '/mnt/ipod/'."
-
-#: gtkpod.glade:7765
-msgid ""
-"On startup gtkpod will call 'mount <ipod mountpoint>', on exit a 'umount "
-"<ipod mountpoint>' call is carried out. For more complicated arrangements "
-"please use the ~/.gtkpod/gtkpod.in and ~/.gtkpod/gtkpod.out scripts."
-msgstr ""
-"Beim Start von gtkpod wird 'mount <ipod mountpoint>' ausgeführt, beim "
-"Beenden 'umount <ipod mountpoint>'. Für weitergehende Aktionen verwenden Sie "
-"bitte die Skripte '~/.gtkpod/gtkpod.in' und '~/.gtkpod/gtkpod.out'."
-
-#: gtkpod.glade:7767
-msgid "Handle mounting/unmounting of iPod drive"
-msgstr "Mount/Unmount des iPod-Verzeichnisses"
-
-#: gtkpod.glade:7787
-msgid "Automatically import iTunesDB on startup"
-msgstr "Beim Starten iTunes-Datenbank automatisch importieren?"
-
-#: gtkpod.glade:7833
-msgid "<b>Adding/Updating/Syncing</b>"
-msgstr "<b>Hinzufügen/Aktualisieren/Abgleichen</b>"
-
-#: gtkpod.glade:7893
-msgid "_Encoding (ID3, files):"
-msgstr "_Kodierung (ID3, Dateinamen):"
-
-#: gtkpod.glade:7924
-msgid ""
-"gtkpod expects the ID3 tags and the filenames to be in the encoding "
-"specified here. You can change it for consecutive 'Add Files' and 'Add Dirs' "
-"operation. 'System Charset' is the charset used by your current locale."
-msgstr ""
-"gtkpod erwartet, daß die Filenamen und ID3 tags in der Kodierung vorliegen, "
-"die hier angegeben wird. Diese kann natürlich zwischen zwei Aufrufen von "
-"'Files hinzufügen' oder 'Verzeichnisse hinzufügen' geändert werden. "
-"'Systemzeichensatz' bezeichnet die Standardkodierung der aktuellen Locale."
-
-#: gtkpod.glade:7961
-msgid ""
-"Normally the charset specified when first importing the track will be used "
-"to update the track information. If you have chosen a wrong charset when "
-"first importing a track and want to correct it using the 'Update Track' "
-"function, you must check this option. Note: the charset info is stored in "
-"the extended information file (see 'Writing of iTunesDB' below) and tracks "
-"imported before V0.51 will have no charset stored. Instead the charset "
-"specified above will be used then."
-msgstr ""
-"Normalerweise wird der Zeichensatz, der beim ersten Einlesen spezifiziert "
-"wurde, auch verwendet, um ein Stück zu aktualisieren. Wenn Sie beim ersten "
-"Einlesen einen falschen Zeichensatz angegeben haben und dies nun mittels "
-"'Stücke aktualisieren' korrigieren wollen, müssen Sie diese Option "
-"auswählen. Bitte beachten Sie: die Information über den verwendeten "
-"Zeichensatz wird mit den erweiterten Informationen gespeichert (siehe "
-"'Schreiben der iTunesDB' weiter unten). Stücke, die vor Version 0.51 "
-"eingelesen wurden, haben keine Informationen über den Zeichensatz "
-"gespeichert und der oben spezifizierte Zeichensatz wird verwendet."
-
-#: gtkpod.glade:7963
-msgid ""
-"Use selected encoding also when updating \n"
-"or syncing tracks"
-msgstr ""
-"Gewählte Kodierung auch verwenden wenn Stücke\n"
-"aktualisiert oder Verzeichnisse abgeglichen werden"
-
-#: gtkpod.glade:7983
-msgid "If you check this, gtkpod will descend into subdirectories recursively."
-msgstr "Wenn Sie diese Option wählen werden Verzeichnisse rekursiv eingelesen."
-
-#: gtkpod.glade:7985
-msgid "Add directories recursively"
-msgstr "Verzeichnisse rekursiv hinzufügen"
-
-#: gtkpod.glade:8004
-msgid "Duplicate Recognition is based on a (modified) md5 hash over the file."
-msgstr ""
-"Die Duplikatenerkennung basiert auf einem (modifizierten) md5-Hash über die "
-"Dateien."
-
-#: gtkpod.glade:8006
-msgid "Don't allow file duplication"
-msgstr "Mehrfaches Einlesen von Stücken verhindern"
-
-#: gtkpod.glade:8052
-msgid ""
-"Display the list of duplicates that have been detected after adding files."
-msgstr ""
-"Eine Liste der Duplikate anzeigen, die während des Hinzufügens von Stücken "
-"erkannt wurden."
-
-#: gtkpod.glade:8054
-msgid "Display info about detected duplicates"
-msgstr "Information über erkannte Duplikate anzeigen"
-
-#: gtkpod.glade:8080
-msgid ""
-"If the filename (full path) of an existing track matches that of a track to "
-"be added, this option allows you to update the information about the "
-"existing track rather than just skipping the track altogether. No update "
-"will take place if the file hasn't changed and you have selected the 'Don't "
-"allow file duplication' option above."
-msgstr ""
-"Wenn der Dateiname (inkl. Pfad) eines bereits eingelesenen Stückes identisch "
-"ist zum Dateinamen eines neu einzulesenden Stückes, dann erlaubt diese "
-"Option Ihnen das alte Stück zu überschreiben. Normalerweise wird das "
-"Einlesen des Stückes einfach übersprungen. Wenn sich das File nicht geändert "
-"hat, und Sie die Option 'Mehrfaches Einlesen von Stücken verhindern' "
-"aktiviert haben, wird das Einlesen ebenfalls übersprungen."
-
-#: gtkpod.glade:8082
-msgid ""
-"When adding dirs/files, update information of\n"
-"existing tracks with identical filenames"
-msgstr ""
-"Beim Hinzufügen von Stücken bereits eingelesene\n"
-"Stücke mit demselben Dateinamen aktualisieren."
-
-#: gtkpod.glade:8129
-msgid "Display a list of tracks that could actually be updated."
-msgstr ""
-"Nach dem Aktualisieren eine Liste derer Stücke anzeigen, die tatsächlich "
-"aktualisiert wurden."
-
-#: gtkpod.glade:8131
-msgid "Display info about updated tracks"
-msgstr "Informationen über aktualisierte Stücke anzeigen"
-
-#: gtkpod.glade:8184
-msgid "Display a list of tracks that could not be updated."
-msgstr ""
-"Nach dem Aktualisieren eine Liste derer Stücke anzeigen, bei denen die "
-"Aktualisierung nicht vorgenommen werden konnte."
-
-#: gtkpod.glade:8186
-msgid "Display info about non-updated tracks"
-msgstr "Informationen über nicht aktualisierte Stücke anzeigen"
-
-#: gtkpod.glade:8212
-msgid "When syncing directories"
-msgstr "Beim Abgleich von Verzeichnissen"
-
-#: gtkpod.glade:8267
-msgid "Confirm lists of directories"
-msgstr "Liste der Verzeichnisse bestätigen"
-
-#: gtkpod.glade:8286
-msgid ""
-"If you check this option, tracks that have been removed from the synced "
-"directories will be removed from the iPod as well."
-msgstr ""
-"Wenn Sie diese Option wählen, werden Stücke, die aus den abzugleichenden "
-"Verzeichnissen entfernt wurden, auch auf dem iPod gelöscht."
-
-#: gtkpod.glade:8288
-msgid "Delete tracks that have been removed"
-msgstr "Stücke, die entfernt wurden, löschen"
-
-#: gtkpod.glade:8307
-msgid "This is the same option as in 'Edit/Delete Confirmation'"
-msgstr ""
-"Diese Option ist identisch zu der in 'Bearbeiten/Sicherheitsabfrage beim "
-"Löschen'"
-
-#: gtkpod.glade:8309
-msgid "Confirm before removing tracks"
-msgstr "Vor dem Entfernen von Stücken bestätigen"
-
-#: gtkpod.glade:8369
-msgid "<b>Sync</b>"
-msgstr "<b>Abgleichen</b>"
-
-#: gtkpod.glade:8417
-msgid ""
-"Highly recommended for faster import when taking advantage of the "
-"duplication recognition. Also, having the PC filenames allows writing "
-"changed ID3 tags to disk, and even to reconstruct your ipod's contents in "
-"case of file system corruption (change the \"transferred=\" entries in your "
-"backuped database)."
-msgstr ""
-"Diese Option wird dringend empfohlen, um einen schnelleren Import der "
-"iTunesDB bei eingeschalteter Duplikatenerkennung zu erreichen. Da außerdem "
-"die Originalfilenamen gespeichert werden, können Tag-Änderungen in das "
-"Originalfile übernommen werden, und es ist sogar möglich, den Inhalt Ihres "
-"iPods im Falle eines Filesystemschadens (Neuformatierung des iPods) zu "
-"rekonstruieren (dazu müssen die 'transferred=' Einträge in der gesicherten "
-"Datenbank auf '0' gesetzt werden und 'offline' eingelesen werden)."
-
-#: gtkpod.glade:8419
-msgid ""
-"Write extended information (PC filenames,\n"
-" MD5 hashes, encoding). Recommended."
-msgstr ""
-"Erweiterte Informationen schreiben (PC Dateinamen,\n"
-"MD5-Prüfsummen, Kodierung). Empfohlen."
-
-#: gtkpod.glade:8463 gtkpod.glade:14970
-msgid "_General"
-msgstr "_Allgemein"
-
-#: gtkpod.glade:8495
-msgid "<b>Tag Reading</b>"
-msgstr "<b>Lesen von Tags</b>"
-
-#: gtkpod.glade:8550
-msgid "Read tags from file contents (e.g. ID3 tags in MP3 files)"
-msgstr "Tags aus der Datei lesen (z.B. ID3 Tags bei MP3 Dateien)"
-
-#: gtkpod.glade:8569 gtkpod.glade:8906
-msgid ""
-"artist: %a, album: %A, composer: %c, title: %t, genre: %G, track nr: %T, CD "
-"nr: %C, year: %Y, skip data: %*, the character '%': %%. You can separate "
-"several templates by a ';'. The first one matching the filename will be "
-"used. Example: '%a - %A/%T %t.mp3;%t.wav'."
-msgstr ""
-"Künstler: %a, Album: %A, Komponist: %c, Titel: %t, Musikrichtung: %G, Stück-"
-"Nr.: %T, CD-Nr.: %C, Jahr: %Y, Platzhalter: %*, das Zeichen '%': %%. Mehrere "
-"Schablonen können durch ein Semikolon (';') getrennt werden -- die erste, "
-"die auf den Filenamen paßt, wird verwendet. Beispiel: '%a - %A/%T %t.mp3;%t."
-"wav'."
-
-#: gtkpod.glade:8571
-msgid "Use this template to parse filename for tag information:"
-msgstr ""
-"Diese Schablone verwenden, um aus dem Dateinamen die Tags zu bestimmen:"
-
-#: gtkpod.glade:8644
-msgid "Overwrite tags that are already set"
-msgstr "Tags, die bereits gesetzt sind, überschreiben."
-
-#: gtkpod.glade:8677
-msgid ""
-"As a last resort set the following tags to the\n"
-"filename if they are (still) empty:"
-msgstr ""
-"Falls Tags (immer noch) nicht gesetzt sind, die \n"
-"folgenden Tags mit dem Dateinamen initialisieren:"
-
-#: gtkpod.glade:8852
-msgid "<b>Artwork</b>"
-msgstr "<b>Artwork</b>"
-
-#: gtkpod.glade:8908
-msgid "Add artwork from file using the following template"
-msgstr "Artwork nach folgender Schablone aus Datei einlesen"
-
-#: gtkpod.glade:8960
-msgid ""
-"Determines the name of the file with the cover art. You can separate several "
-"patterns by semicolons which will be tried in order. Artist: %a, album: %A, "
-"composer: %c, title: %t, genre: %G, track nr: %T, CD nr: %C, year: %Y, "
-"original filename (requires extended information file): %o, original "
-"filename without file extension: %O, current playlist: %p, the character "
-"'%': %%."
-msgstr ""
-"Bestimmt, wie der Dateiname von Stücken gewählt wird, die vom iPod kopiert "
-"werden. Bsp.: '%a/%A/%T - %t.mp3' oder '%o'. Mehrere Schablonen können durch "
-"Semikolons getrennt werden -- gtkpod ermittelt die passende Schablone anhand "
-"des Dateinamensuffix. Künstler: %a, Album: %A, Komponist: %c, Titel: %t, "
-"Musikrichtung: %G, Stück-Nr.: %T, CD-Nr.: %C, Jahr: %Y,  ursprünglicher "
-"Dateiname (benötigt 'Erweiterte Informationen'): %o, ursprügnlicher "
-"Dateiname ohne Erweiterung: %O, die aktuelle Wiedergabelist: %p, das Zeichen "
-"'%': %%."
-
-#: gtkpod.glade:8981
-msgid "<b>Examples</b>"
-msgstr "<b>Beispiele</b>"
-
-#: gtkpod.glade:9011
-msgid "folder.jpg"
-msgstr "folder.jpg"
-
-#: gtkpod.glade:9035
-msgid "folder"
-msgstr "folder"
-
-#: gtkpod.glade:9059
-msgid "../%A.jpg"
-msgstr "../%A.jpg"
-
-#: gtkpod.glade:9083
-msgid "%A"
-msgstr "%A"
-
-#: gtkpod.glade:9107
-msgid "Use <i>folder.jpg</i> as cover art."
-msgstr "Benutze <i>folder.jpg</i> als Cover-Art"
-
-#: gtkpod.glade:9131
-msgid "Use <i>folder.jpg</i>, <i>folder.png</i>..."
-msgstr "Benutze <i>folder.jpg</i>, <i>folder.png</i>..."
-
-#: gtkpod.glade:9155
-msgid "Use <i>&lt;Album&gt;.jpg</i> in the parent directory"
-msgstr "Benutze <i>&lt;Album&gt;.jpg</i> im übergeordneten Verzeichnis"
-
-#: gtkpod.glade:9179
-msgid "Use <i>&lt;Album&gt;.jpg</i>, <i>&lt;Album&gt;.png</i>..."
-msgstr "Benutze <i>&lt;Album&gt;.jpg</i>, <i>&lt;Album&gt;.png</i>..."
-
-#: gtkpod.glade:9203
-msgid "folder.jpg;%a.jpg"
-msgstr "folder.jpg;%a.jpg"
-
-#: gtkpod.glade:9227
-msgid "First try <i>folder.jpg</i>, then <i>&lt;artist&gt;.jpg</i>"
-msgstr "Versuche zuerst <i>folder.jpg</i>, dann <i>&lt;Künstler&gt;.jpg</i>"
-
-#: gtkpod.glade:9311
-msgid "<b>mserv</b>"
-msgstr "<b>mserv</b>"
-
-#: gtkpod.glade:9365 gtkpod.glade:9579
-msgid "Currently only rating is supported."
-msgstr "Gegenwärtig wird nur 'Bewertung' unterstützt."
-
-#: gtkpod.glade:9367
-msgid "Use mserv database to fill additional information"
-msgstr "mserv Datenbank für zusätzliche Informationen verwenden"
-
-#: gtkpod.glade:9395
-msgid "Music Root:"
-msgstr "Stammverzeichnis für Musik:"
-
-#: gtkpod.glade:9419
-msgid "mserv database lookup will be done for music in this directory."
-msgstr "Die mserv Datenbank wird für Tracks in diesem Verzeichnis verwendet."
-
-#: gtkpod.glade:9441
-msgid "mserv Root:"
-msgstr "mserv Stammverzeichnis:"
-
-#: gtkpod.glade:9465
-msgid "Root directory of mserv database (trackinfo root)."
-msgstr "Stammverzeichnis für die mserv Datenbank (trackinfo root)."
-
-#: gtkpod.glade:9487
-msgid "Username:"
-msgstr "Benutzername:"
-
-#: gtkpod.glade:9511
-msgid "Username to be used for mserv database lookup."
-msgstr ""
-"Benutzername, der zum Nachschlagen in der mserv-Datenbank verwendet wird."
-
-#: gtkpod.glade:9535 gtkpod.glade:9554 gtkpod.glade:12102 gtkpod.glade:12172
-#: gtkpod.glade:12317 gtkpod.glade:12491 gtkpod.glade:12556 gtkpod.glade:12621
-msgid "Browse"
-msgstr "Durchsuchen"
-
-#: gtkpod.glade:9581
-msgid "Show information about problems when accessing mserv"
-msgstr ""
-"Informationen über Probleme während des Zugriffs auf die\n"
-"mserv-Datenbank anzeigen."
-
-#: gtkpod.glade:9627
-msgid "_Track Info"
-msgstr "_Meta-Infos"
-
-#: gtkpod.glade:9673
-msgid "<b>Displayed Track Attributes</b>"
-msgstr "<b>Angezeigte Informationen</b>"
-
-#: gtkpod.glade:10460
-msgid "<b>Sort Tabs</b>"
-msgstr "<b>Filter-Tabs</b>"
-
-#: gtkpod.glade:10514
-msgid "Keeps all compilation CDs grouped together in the artists sort tab."
-msgstr "Alle Sampler-CDs im Künstler-Filtertab als 'Sampler' gruppieren."
-
-#: gtkpod.glade:10516
-msgid "Group artists on compilation CDs"
-msgstr "Künstler auf Sampler-CDs gruppieren"
-
-#: gtkpod.glade:10541
-msgid "_Number of sort tabs:"
-msgstr "_Anzahl der Filter-Tabs:"
-
-#: gtkpod.glade:10617
-msgid "<b>Automatically select...</b>"
-msgstr "<b>Wähle automatisch...</b>"
-
-#: gtkpod.glade:10671
-msgid ""
-"If you don't select the master playlist automatically, the initial database "
-"import is much faster because the display dosn't have to be updated."
-msgstr ""
-"Wenn die Haupt-Wiedergabeliste nicht automatisch ausgewählt wird, verläuft "
-"der Import der iTunes-Datenbank zu Beginn deutlich schneller, da die Anzeige "
-"nicht aktualisiert werden muß."
-
-#: gtkpod.glade:10673
-msgid "...master playlist"
-msgstr "...Hauptplayliste"
-
-#: gtkpod.glade:10693
-msgid "...entry 'All' in sort tab..."
-msgstr "Eintrag 'Alle' im Sort Tab..."
-
-#: gtkpod.glade:10774
-msgid "<b>Tooltips</b>"
-msgstr "<b>Tooltips</b>"
-
-#: gtkpod.glade:10829
-msgid "Display tooltips in main window"
-msgstr "Tooltips im Hauptfenster anzeigen"
-
-#: gtkpod.glade:10849
-msgid "Display tooltips in prefs window"
-msgstr "Tooltips im Einstellungs-Fenster anzeigen"
-
-#: gtkpod.glade:10895
-msgid "<b>Toolbar</b>"
-msgstr "<b>Toolbar</b>"
-
-#: gtkpod.glade:10950
-msgid "Display toolbar..."
-msgstr "Toolbar anzeigen..."
-
-#: gtkpod.glade:11003
-msgid "...as icons"
-msgstr "...als Graphik"
-
-#: gtkpod.glade:11023
-msgid "...as text"
-msgstr "...als Text"
-
-#: gtkpod.glade:11044
-msgid "...both as icons and text"
-msgstr "...als Text und Graphik"
-
-#: gtkpod.glade:11105
-msgid "<b>Misc</b>"
-msgstr "<b>Verschiedenes</b>"
-
-#: gtkpod.glade:11159
-msgid ""
-"It is much faster to sort the display after all tracks have been added. Some "
-"people might feel irritated by this behaviour and should uncheck this option."
-msgstr ""
-"Es ist deutlich schneller, die Sortierung vorzunehmen nachdem alle Tracks "
-"hinzugefügt wurde. Wen dieses Verhalten irritiert, sollte diese Option "
-"jedoch nicht wählen."
-
-#: gtkpod.glade:11161
-msgid ""
-"Temporarily disable sorting when changing playlist\n"
-"or tab entry (faster!)"
-msgstr ""
-"Sortieren vorübergehend deaktivieren wenn die\n"
-"Wiedergabeliste oder Tab Entry gewechselt wird (schneller!)"
-
-#: gtkpod.glade:11181
-msgid ""
-"The display can be blocked after changing a selection. The display update is "
-"faster, but you have to wait until it's finished. When using this option, "
-"sorting is also temporarily disabled (see option above)."
-msgstr ""
-"Die Anzeige kann bis zur vollständigen Aktualisierung nach einer Änderung "
-"der Auswahl blockiert werden. Die Aktualisierung ist dann schneller, aber es "
-"muß gewartet werden, bis sich gtkpod wieder meldet. Mit dieser Option wird "
-"automatisch auch das Sortieren vorübergehend deaktiviert (siehe Option "
-"weiter oben)."
-
-#: gtkpod.glade:11183
-msgid ""
-"Block display when changing playlist or tab\n"
-" entry (faster!)"
-msgstr ""
-"Anzeige nicht aktualisieren wenn eine neue Wiedergabeliste\n"
-"oder ein neuer Tab-Eintrag gewählt wird (schneller!)"
-
-#: gtkpod.glade:11203
-msgid "This option will be re-activated when you upgrade gtkpod."
-msgstr ""
-"Diese Option wird automatisch aktiviert, wenn ein Update von gtkpod "
-"durchgeführt wird."
-
-#: gtkpod.glade:11205
-msgid "Display messages and warnings at startup"
-msgstr "Nachrichten und Warnungen beim Start des Programms anzeigen"
-
-#: gtkpod.glade:11267
-msgid "Advanced Sorting Options"
-msgstr "Sortieroptionen"
-
-#: gtkpod.glade:11362
-msgid "<b>Track Editing</b>"
-msgstr "<b>Bearbeiten von Stücken</b>"
-
-#: gtkpod.glade:11416
-msgid ""
-"The tags are written to the files on your harddrive and on the ipod (if "
-"available)."
-msgstr ""
-"Die Tags werden in die Originalfiles auf der Festplatte und auch auf dem "
-"iPod (wenn angeschlossen) geschrieben."
-
-#: gtkpod.glade:11418
-msgid "Write ID3 tags to disk when modified in gtkpod"
-msgstr ""
-"ID3 Tags bei Änderungen in gtkpod ebenfalls auf\n"
-"der Festplatte und auf dem iPod ändern"
-
-#: gtkpod.glade:11470
-msgid ""
-"Normally the charset specified when first importing the track will be used "
-"to write the tags. If you have chosen a wrong charset when first importing a "
-"track, you should select this option along with the correct charset.  Note: "
-"uses the extended information file to store the charset information (see "
-"'Writing of the iTunesDB' on the 'Input/Output' page) and tracks imported "
-"before V0.51 will have no charset stored -- the charset specified on the "
-"'Input/Output' page will be used."
-msgstr ""
-"Normalerweise wird der Zeichensatz, der beim ersten Einlesen des Stückes "
-"angegeben wurde, auch beim Schreiben der ID3-Tags verwendet. Wenn Sie beim "
-"ersten Einlesen einen falschen Zeichensatz angegeben haben, müssen Sie diese "
-"Option zusammen mit dem richtigen Zeichensatz auswählen. Bitte beachten Sie: "
-"die Information über den verwendeten Zeichensatz wird mit den erweiterten "
-"Informationen gespeichert (siehe 'Schreiben der iTunesDB' auf der 'Eingabe-"
-"Ausgabe' Seite). Stücke, die vor Version 0.51 eingelesen wurden, haben keine "
-"Informationen über den Zeichensatz gespeichert und der auf der 'Eingabe/"
-"Ausgabe'-Seite eingestellte Zeichensatz wird verwendet."
-
-#: gtkpod.glade:11472
-msgid ""
-"Use selected encoding (on the 'General' page)\n"
-"when writing tags"
-msgstr ""
-"Ausgewählte Kodierung (auf der Allgemein-Seite)\n"
-"beim Schreiben von ID3-Tags verwenden"
-
-#: gtkpod.glade:11492
-msgid ""
-"This is the way to go, but maybe not all programs support it yet. ID3v2.4 "
-"uses unicode to store the tags, so you won't have to worry about charsets "
-"any more. gtkpod will use UTF8 encoding as this will not increase the size "
-"of pure ASCII tags. ID3v2.2/4 tags will also be written if they are already "
-"present in the file to write to."
-msgstr ""
-"Es wird empfohlen, Tags als V2.4 Tags zu schreiben. Allerdings unterstützen "
-"eventuell einige Programme diesen Standard noch nicht. ID3v2.4 verwendet "
-"Unicode, um die Tags zu speichern. Dies bedeutet, daß Sie sich keine "
-"Gedanken mehr über den verwendeten Zeichensatz machen zu brauchen. gtkpod "
-"verwendet UTF8, da dies die Tag-Länge reiner ASCII-Tags nicht verlängert. "
-"ID3v2.4 wird ebenfalls beim Schreiben verwendet, falls die Tags in der Datei "
-"bereits als V2.4 vorliegen."
-
-#: gtkpod.glade:11494
-msgid "Always write ID3v2.4 tags (only applies to MP3)"
-msgstr "Immer ID3v2.4 Tags schreiben (trifft nur auf MP3 zu)"
-
-#: gtkpod.glade:11527
-msgid ""
-"If you select several tracks in the track list and edit a tag of the first "
-"track, the tags in the other tracks are updated as well."
-msgstr ""
-"Wenn mehrere Stücke im der Stücke-Anzeige ausgewählt sind und ein Tag im "
-"ersten Stück geändert wird, wird das entsprechende Tag auch in den anderen "
-"Stücken aktualisiert."
-
-#: gtkpod.glade:11529
-msgid "Use 'Multi-Edit' for tracks selections"
-msgstr "'Multi-Edit' bei markierten Stücken verwenden"
-
-#: gtkpod.glade:11575
-msgid ""
-"Usually you don't want to set the title of several tracks to the same text. "
-"This option might avoid unwanted results (especially since there is no "
-"'undo' yet)."
-msgstr ""
-"Es kommt selten vor, daß die Titel mehrerer Stücke auf den selben Text "
-"gesetzt werden sollen. Diese Option verhindert möglicherweise ungewünschte "
-"Resultate, insbesondere da noch keine 'Undo'-Funktion existiert."
-
-#: gtkpod.glade:11577
-msgid "Use 'Multi-Edit' also for title field"
-msgstr "'Multi-Edit' auch für das Titel-Feld verwenden"
-
-#: gtkpod.glade:11630
-msgid "<b>Auto-Generated Playlists</b>"
-msgstr "<b>Automatisch generierte Wiedergabelisten</b>"
-
-#: gtkpod.glade:11690
-msgid "Number of tracks in generated playlists:"
-msgstr "Anzahl der Stücke in generierten Wiedergabelisten:"
-
-#: gtkpod.glade:11711
-msgid ""
-"Number of tracks in the generated playlists 'Most Often Listened', 'Best "
-"Rated' and 'Most Recently Played'. Choose '0' for 'no limit'."
-msgstr ""
-"Anzahl der Stücke in den generierten Wiedergabelisten 'Am häufigsten gehörte "
-"Stücke', 'Höchstgewertete Stücke' und 'Zuletzt gespielte Stücke'. Wählen Sie "
-"'0', wenn Sie die Anzahl nicht begrenzen wollen."
-
-#: gtkpod.glade:11740
-msgid "Also include tracks never played in \"Best Rated\" playlist"
-msgstr ""
-"Auch Stücke in die 'am besten bewertete' Wiedergabeliste aufnehmen,\n"
-"die nie gespielt wurden"
-
-#: gtkpod.glade:11786
-msgid "<b>Delete Confirmation</b>"
-msgstr "<b>Sicherheitsabfrage beim Löschen</b>"
-
-#: gtkpod.glade:11841
-msgid "Before removing playlists or tracks from a playlist"
-msgstr ""
-"Vor dem Entfernen von Wiedergabelisten oder Stücken aus einer Wiedergabeliste"
-
-#: gtkpod.glade:11861
-msgid "Before removing tracks from the iPod"
-msgstr "Vor dem vollständigen Löschen vom iPod"
-
-#: gtkpod.glade:11881
-msgid "Before removing tracks from the harddisk"
-msgstr "Vor dem vollständigen Löschen auf der Festplatte"
-
-#: gtkpod.glade:11901
-msgid "Before removing tracks from the local database"
-msgstr "Vor dem Entfernen aus der lokalen Datenbank"
-
-#: gtkpod.glade:11921
-msgid ""
-"Before removing tracks completely when\n"
-"synchronizing directories"
-msgstr ""
-"Vor dem vollständigen Löschen vom iPod beim\n"
-"Abgleich von Verzeichnissen"
-
-#: gtkpod.glade:12000
-msgid "<b>Play</b>"
-msgstr "<b>Wiedergabe</b>"
-
-#: gtkpod.glade:12060
-msgid "Command for 'Play now':"
-msgstr "Befehl für 'Jetzt abspielen':"
-
-#: gtkpod.glade:12081
-msgid ""
-"For example, 'xmms %s' will clear xmms' current playlist, add the selected "
-"tracks and start playing."
-msgstr ""
-"'xmms %s', z.B., löscht die aktuelle Wiedergabeliste von xmms, fügt die "
-"ausgewählten Stücke hinzu und beginnt mit der Wiedergabe."
-
-#: gtkpod.glade:12130
-msgid "Command for 'Enqueue':"
-msgstr "Befehl für 'Zum Abspielen Vormerken':"
-
-#: gtkpod.glade:12151
-msgid ""
-"For example, 'xmms -e %s' will append (enqueue) the selected tracks to xmms' "
-"current playlist."
-msgstr ""
-"'xmms -e %s', z.B., fügt die ausgewählten Stücke zur aktuellen Playlist von "
-"xmms hinzu."
-
-#: gtkpod.glade:12221
-msgid "<b>Volume Normalization</b>"
-msgstr "<b>Lautstärkenormalisierung</b>"
-
-#: gtkpod.glade:12275
-msgid "'mp3gain' executable:"
-msgstr "'mp3gain'-Programm:"
-
-#: gtkpod.glade:12296
-msgid ""
-"You only need to specify this if your 'mp3gain' executable is not in your "
-"default path. Example: '/usr/local/foo/mp3gain'. mp3gain will write the "
-"calculated gain value back to the file -- if you don't want this, set this "
-"entry to /bin/true or similar. mp3gain is only called if appropriate tags "
-"are not already set by your encoder. E.g. lame version 0.95 already writes "
-"the gain values into tags. The exact conversion factor between mp3gain's "
-"gain value and iPod's volume tag is not known yet -- your input is "
-"appreciated."
-msgstr ""
-"Sie müssen diese Angabe nur machen, wenn sich Ihr 'mp3gain' Programm nicht "
-"im Suchpfad befinden. Zum Beispiel: '/usr/local/foo/mp3gain'. mp3gain "
-"schreibt den berechneten Gain-Wert zurück in die mp3-Datei -- wenn Sie dies "
-"nicht wünschen, setzen Sie diesen Eintrag auf '/bin/true' oder ähnliches. "
-"mp3gain wird nur aufgerufen, wenn die benötigten Tags nicht bereits von "
-"Ihrem Encoder gesetzt wurden. Z.B. speichert lame ab Version 0.95 "
-"standardmäßig die Gain-Werte in Tags. Der genaue Umrechnungsfaktor zwischen "
-"mp3gains Gain-Wert und iPods Volume-Tag ist noch nicht bekannt -- falls Sie "
-"mehr wissen kontaktieren Sie mich bitte."
-
-#: gtkpod.glade:12359
-msgid "<b>Synchronization</b>"
-msgstr "<b>Synchronisierung</b>"
-
-#: gtkpod.glade:12444
-msgid "Contacts sync command:"
-msgstr "Befehl zum Abgleich der Kontakte:"
-
-#: gtkpod.glade:12468 gtkpod.glade:12533 gtkpod.glade:12598
-msgid ""
-"Specify exact path including command line options. '%i' will be replaced "
-"with the mount point of the iPod."
-msgstr ""
-"Geben sie den genauen Pfad einschließlich Kommandozeilenoptionen an. '%i' "
-"wird mit dem Mountpoint des iPods ersetzt."
-
-#: gtkpod.glade:12509
-msgid "Calendar sync command:"
-msgstr "Befehl zum Abgleich des Kalenders:"
-
-#: gtkpod.glade:12574
-msgid "Notes sync command:"
-msgstr "Befehl zum Abgleich der Notizen:"
-
-#: gtkpod.glade:12647
-msgid "Call automatically when synchronizing iTunesDB"
-msgstr "Automatisch aufrufen wenn die iTunesDB abgeglichen wird"
-
-#: gtkpod.glade:12725
-msgid "<b>Podcast subscriptions</b>"
-msgstr ""
-
-#: gtkpod.glade:12800
-msgid "Add"
-msgstr "Hinzufügen"
-
-#: gtkpod.glade:12834
-msgid "Delete"
-msgstr "Löschen"
-
-#: gtkpod.glade:12900
-msgid "Name: "
-msgstr "Name: "
-
-#: gtkpod.glade:12924
-msgid "URL: "
-msgstr ""
-
-#: gtkpod.glade:13017
-msgid "<b>File options</b>"
-msgstr "<b>Datei-Optionen</b>"
-
-#: gtkpod.glade:13077
-msgid "Save podcasts to: "
-msgstr ""
-
-#: gtkpod.glade:13132
-msgid "Delete from computer when "
-msgstr ""
-
-#: gtkpod.glade:13172 gtkpod.glade:13474
-msgid " days old"
-msgstr "Tage alt"
-
-#: gtkpod.glade:13201
-msgid "Delete once copied to iPod"
-msgstr ""
-
-#: gtkpod.glade:13227
-msgid "Automatically fetch podcasts on startup"
-msgstr ""
-
-#: gtkpod.glade:13254
-msgid "Create podcast logfile at:"
-msgstr ""
-
-#: gtkpod.glade:13354
-msgid "<b>iPod options</b>"
-msgstr "<b>iPod Optionen</b>"
-
-#: gtkpod.glade:13409
-msgid "Automatically sync to iPod"
-msgstr ""
-
-#: gtkpod.glade:13435
-msgid "Delete from iPod when "
-msgstr "Vom iPod entfernen wenn "
-
-#: gtkpod.glade:13503
-msgid "Delete from iPod if podcast has been played"
-msgstr ""
-
-#: gtkpod.glade:13523
-msgid "Include broadcast date in track title"
-msgstr ""
-
-#: gtkpod.glade:13543
-msgid "Set all podcast genres to 'Podcast'"
-msgstr ""
-
-#: gtkpod.glade:13589 gtkpod.glade:15342
-msgid "_Podcasts"
-msgstr ""
-
-#: gtkpod.glade:13754
-msgid ""
-"\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-
-#: gtkpod.glade:13788
-msgid "Abort selected"
-msgstr "Abrechen gewählt"
-
-#: gtkpod.glade:13804
-msgid "Abort current"
-msgstr ""
-
-#: gtkpod.glade:13820
-msgid "Abort all"
-msgstr ""
-
-#: gtkpod.glade:13844
-msgid "Details"
-msgstr "Details"
-
-#: gtkpod.glade:13905
-msgid "Cover"
-msgstr "Artwork"
-
-#: gtkpod.glade:13990
-msgid "Set Cover Art"
-msgstr "Artwork setzen"
-
-#: gtkpod.glade:14023
-msgid ""
-"If you check this, information (cover art and meta information) changed for "
-"this track will be copied to all other selected tracks as well. Use with "
-"care."
-msgstr ""
-"Wenn diese Option gewählt wird, werden alle Änderungen für das dargestellte "
-"Stück (Artwork und sonstige Angaben) automatisch in alle ausgweählten Stücke "
-"kopiert. Bitte mit Vorsicht verwenden."
-
-#: gtkpod.glade:14069
-msgid ""
-"Change all tracks\n"
-"simultaneously"
-msgstr "Alle Stücke simultan modifizieren"
-
-#: gtkpod.glade:14157
-msgid "Remove Cover Art"
-msgstr "Artwork entfernen"
-
-#: gtkpod.glade:16246
-msgid "_Other"
-msgstr "_Anderes"
-
-#: gtkpod.glade:16536
-msgid "_Undo All"
-msgstr "_Alles Rückgängig"
-
-#: gtkpod.glade:16606
-msgid "_Undo Track"
-msgstr "_Track Rückgängig"
-
 #~ msgid "Export Tracks"
 #~ msgstr "Stücke Exportieren"

Added: gtkpod/branches/upstream/current/po/es.gmo
===================================================================
(Binary files differ)


Property changes on: gtkpod/branches/upstream/current/po/es.gmo
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: gtkpod/branches/upstream/current/po/es.po
===================================================================
--- gtkpod/branches/upstream/current/po/es.po	                        (rev 0)
+++ gtkpod/branches/upstream/current/po/es.po	2006-09-30 00:00:17 UTC (rev 139)
@@ -0,0 +1,4942 @@
+# translation of gtkpod.po to Spanish
+# This file is distributed under the same license as the PACKAGE package.
+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER.
+# Alejandro Lamas Daviña <alejandro.lamas at ific.uv.es>, 2006.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: es\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2006-09-24 23:08+0900\n"
+"PO-Revision-Date: 2006-07-29 21:59+0200\n"
+"Last-Translator: Alejandro Lamas Daviña <alejandro.lamas at ific.uv.es>\n"
+"Language-Team:  <es_ES>\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-Generator: KBabel 1.9.1\n"
+
+#: gtkpod.glade:7
+msgid "gtkpod"
+msgstr "gtkpod"
+
+#: gtkpod.glade:40
+msgid "_File"
+msgstr "_Fichero"
+
+#: gtkpod.glade:49
+msgid "_Load iPod(s)"
+msgstr "Cargar _iPod(s)"
+
+#: gtkpod.glade:69
+msgid "_Save Changes"
+msgstr "_Guardar cambios"
+
+#: gtkpod.glade:90
+msgid "Add _Files"
+msgstr "Añadir _ficheros"
+
+#: gtkpod.glade:111
+msgid "Add _Directory"
+msgstr "Añadir _directorio"
+
+#: gtkpod.glade:132
+msgid "Add _Playlist"
+msgstr "Añadir lista de _reproducción"
+
+#: gtkpod.glade:159
+msgid "_Update Tracks from File"
+msgstr "Act_ualizar pistas desde fichero"
+
+#: gtkpod.glade:180 gtkpod.glade:232 gtkpod.glade:311 gtkpod.glade:363
+#: gtkpod.glade:1092 gtkpod.glade:1144 gtkpod.glade:1190
+msgid "Selected _Playlist"
+msgstr "_Lista de reproducción seleccionada"
+
+#: gtkpod.glade:189 gtkpod.glade:241 gtkpod.glade:320 gtkpod.glade:372
+#: gtkpod.glade:1101 gtkpod.glade:1153 gtkpod.glade:1199
+msgid "Selected Tab _Entry"
+msgstr "_Entrada de pestaña seleccionada"
+
+#: gtkpod.glade:198 gtkpod.glade:250 gtkpod.glade:329 gtkpod.glade:381
+#: gtkpod.glade:498 gtkpod.glade:1110 gtkpod.glade:1162 gtkpod.glade:1208
+msgid "Selected _Tracks"
+msgstr "_Pistas seleccionadas"
+
+#: gtkpod.glade:211
+msgid "Update _mserv Data from File"
+msgstr "Actualizar datos de _mserv desde fichero"
+
+#: gtkpod.glade:263
+msgid "_Synchronize Playlist"
+msgstr "_Sincronizar lista de reproducción"
+
+#: gtkpod.glade:290
+msgid "_Export Tracks from Database"
+msgstr "_Exportar pistas de la base de datos"
+
+#: gtkpod.glade:342
+msgid "Create _Playlist File"
+msgstr "Crear lista de re_producción"
+
+#: gtkpod.glade:400
+msgid "_Create iPod's Directories"
+msgstr "_Crear estructura de directorios del iPod"
+
+#: gtkpod.glade:421
+msgid ""
+"Find orphan files (files with no track info in DB) and dangling tracks "
+"(tracks with no corresponding files on iPOD)"
+msgstr ""
+"Buscar ficheros huérfanos (ficheros sin información de la pista en la base "
+"de datos) y pistas pendientes (pistas sin sus correspondientes ficheros en "
+"el iPod)"
+
+#: gtkpod.glade:422
+msgid "_Check iPod's Files"
+msgstr "_Comprobar ficheros del iPod"
+
+#: gtkpod.glade:450 gtkpod.glade:12687
+msgid "_Edit"
+msgstr "_Editar"
+
+#: gtkpod.glade:459 src/context_menus.c:480
+msgid "Edit Track Details"
+msgstr "Editar detalles de la pista"
+
+#: gtkpod.glade:480
+msgid "Tracks in Selected _Playlist"
+msgstr "Pistas en la lista de re_producción seleccionada"
+
+#: gtkpod.glade:489
+msgid "Tracks in Selected Tab _Entry"
+msgstr "Pistas en la pestaña s_eleccionada"
+
+#: gtkpod.glade:511 src/context_menus.c:407
+msgid "Edit Smart Playlist"
+msgstr "Editar lista de reproducción inteligente."
+
+#: gtkpod.glade:520
+msgid "_Delete"
+msgstr "_Borrar"
+
+#: gtkpod.glade:541
+msgid "Selected playlist"
+msgstr "Lista de reproducción seleccionada"
+
+#: gtkpod.glade:550
+msgid "Selected playlist including tracks from iPod"
+msgstr "Lista de reproducción seleccionada incluyendo pistas del iPod"
+
+#: gtkpod.glade:559
+msgid "Selected playlist including tracks from database"
+msgstr ""
+"Lista de reproducción seleccionada incluyendo pistas de la base de datos"
+
+#: gtkpod.glade:568
+msgid "Selected playlist including tracks from harddisk"
+msgstr "Lista de reproducción seleccionada incluyendo pistas del disco duro"
+
+#: gtkpod.glade:583
+msgid "Selected filter tab entry from playlist"
+msgstr "Pestaña seleccionada de la lista de reproducción"
+
+#: gtkpod.glade:592
+msgid "Selected filter tab entry from iPod"
+msgstr "Borrar selección del iPod"
+
+#: gtkpod.glade:601
+msgid "Selected filter tab entry from database"
+msgstr "Borrar selección de la base de datos"
+
+#: gtkpod.glade:610
+msgid "Selected filter tab entry from harddisk"
+msgstr "Borrar selección del disco duro"
+
+#: gtkpod.glade:625
+msgid "Selected tracks from playlist"
+msgstr "Pistas seleccionadas de la lista de reproducción"
+
+#: gtkpod.glade:634
+msgid "Selected tracks from iPod"
+msgstr "Pistas seleccionadas del iPod"
+
+#: gtkpod.glade:643
+msgid "Selected tracks from database"
+msgstr "Pistas seleccionadas de la base de datos"
+
+#: gtkpod.glade:652
+msgid "Selected tracks from harddisk"
+msgstr "Pistas seleccionadas del disco duro"
+
+#: gtkpod.glade:671
+msgid "_Create Playlists"
+msgstr "_Crear lista de reproducción"
+
+#: gtkpod.glade:692
+msgid "Empty Playlist"
+msgstr "Lista de reproducción vacía"
+
+#: gtkpod.glade:701 gtkpod.glade:7379 src/misc_playlist.c:97
+#: src/repository.c:1359
+msgid "Smart Playlist"
+msgstr "Lista de reproducción inteligente"
+
+#: gtkpod.glade:716
+msgid "Random Playlist from Displayed Tracks"
+msgstr "Lista de reproducción aleatoria de las pistas mostradas"
+
+#: gtkpod.glade:725
+msgid "Containing Displayed Tracks"
+msgstr "Conteniendo pistas mostradas"
+
+#: gtkpod.glade:734
+msgid "Containing Selected Tracks"
+msgstr "Conteniendo pistas seleccionadas"
+
+#: gtkpod.glade:743
+msgid "One for each Artist"
+msgstr "Una para cada artista"
+
+#: gtkpod.glade:752
+msgid "One for each Album"
+msgstr "Una para cada álbum"
+
+#: gtkpod.glade:761
+msgid "One for each Genre"
+msgstr "Una para cada género"
+
+#: gtkpod.glade:770
+msgid "One for each Composer"
+msgstr "Una para cada compositor"
+
+#: gtkpod.glade:779
+msgid "One for each Year"
+msgstr "Una para cada año"
+
+#: gtkpod.glade:788
+msgid "One for each Rating"
+msgstr "Una para cada puntuación"
+
+#: gtkpod.glade:797
+msgid "Best Rated Tracks"
+msgstr "Pistas con mayor puntuación"
+
+#: gtkpod.glade:806
+msgid "Tracks Most Often Listened To"
+msgstr "Pistas escuchadas más a menudo"
+
+#: gtkpod.glade:815
+msgid "Most Recently Played Tracks"
+msgstr "Pistas más recientemente escuchadas"
+
+#: gtkpod.glade:824
+msgid "All Tracks Played Since Last Time"
+msgstr "Todas las pistas reproducidas desde la última vez"
+
+#: gtkpod.glade:833
+msgid "All Tracks Never Listened To"
+msgstr "Todas las pistas nunca escuchadas"
+
+#: gtkpod.glade:842
+msgid "All Tracks not Listed in any Playlist"
+msgstr "Todas las pistas no incluidas en otras listas de reproducción"
+
+#: gtkpod.glade:861
+msgid "_Sorting"
+msgstr "_Ordenar"
+
+#: gtkpod.glade:883
+msgid "Randomize Current Playlist"
+msgstr "Lista de reproducción actual aleatoria"
+
+#: gtkpod.glade:892
+msgid "_Save Displayed Track Order"
+msgstr "Guardar orden de pista_s mostrado"
+
+#: gtkpod.glade:920
+msgid "Edit Repository/iPod Options"
+msgstr "Editar opciones del iPod/repositorio"
+
+#: gtkpod.glade:941
+msgid "Edit _Preferences"
+msgstr "Editar _preferencias"
+
+#: gtkpod.glade:967
+msgid "_View"
+msgstr "_Ver"
+
+#: gtkpod.glade:976
+msgid "_Toolbar"
+msgstr "Barra de _Herramientas"
+
+#: gtkpod.glade:986
+msgid "_Tooltips"
+msgstr "_Sugerencias"
+
+#: gtkpod.glade:996
+msgid "_Info Window"
+msgstr "Ventana de _información"
+
+#: gtkpod.glade:1007
+msgid "_More Sort Tabs"
+msgstr "_Mas pestañas"
+
+#: gtkpod.glade:1028
+msgid "_Less Sort Tabs"
+msgstr "M_enos pestañas"
+
+#: gtkpod.glade:1049
+msgid "_Arrange Sort Tabs"
+msgstr "_Ordenar pestañas"
+
+#: gtkpod.glade:1062 gtkpod.glade:13297
+msgid "_Tools"
+msgstr "_Herramientas"
+
+#: gtkpod.glade:1071
+msgid "_Play Now"
+msgstr "Re_producir"
+
+#: gtkpod.glade:1123
+msgid "_Enqueue"
+msgstr "_Encolar"
+
+#: gtkpod.glade:1181
+msgid "_Normalize Volume"
+msgstr "_Normalizar el volumen"
+
+#: gtkpod.glade:1217
+msgid "_Displayed Tracks"
+msgstr "Pistas mostra_das"
+
+#: gtkpod.glade:1226
+msgid "_All Tracks"
+msgstr "Tod_as las pistas"
+
+#: gtkpod.glade:1235
+msgid "_Newly Added Tracks"
+msgstr "Pistas añadidas recie_ntemente"
+
+#: gtkpod.glade:1254
+msgid "Synchronise Contacts, Calendar and Notes"
+msgstr "Sincronizar contactos, calendarios y notas"
+
+#: gtkpod.glade:1255
+msgid "Synchronize All"
+msgstr "Sincronizar todo"
+
+#: gtkpod.glade:1264
+msgid "Synchronize Contacts"
+msgstr "Sincronizar contactos"
+
+#: gtkpod.glade:1273
+msgid "Synchronize Calendar"
+msgstr "Sincronizar calendario"
+
+#: gtkpod.glade:1282
+msgid "Synchronize Notes"
+msgstr "Sincronizar notas"
+
+#: gtkpod.glade:1295
+msgid "_Help"
+msgstr "_Ayuda"
+
+#: gtkpod.glade:1304
+msgid "_About"
+msgstr "_Sobre"
+
+#: gtkpod.glade:1344
+msgid ""
+"Try to load contents of all connected iPods. For each iPod a separate "
+"repository must be set up."
+msgstr ""
+"Intentar cargar los contenidos de todos los iPods. Debe configurarse un "
+"repositorio individual para cada iPod."
+
+#: gtkpod.glade:1345
+msgid "Load iPod(s)"
+msgstr "Cargar iPod(s)"
+
+#: gtkpod.glade:1362
+msgid "Write all changes made to the disk and the iPod(s)."
+msgstr "Escribir todos los cambios hechos al disco y al/los iPod(s)."
+
+#: gtkpod.glade:1363 src/context_menus.c:507
+msgid "Save Changes"
+msgstr "Guardar cambios"
+
+#: gtkpod.glade:1380
+msgid "Add Files or Directories"
+msgstr "Añadir ficheros o directorios"
+
+#: gtkpod.glade:1381
+msgid "Files"
+msgstr "Ficheros"
+
+#: gtkpod.glade:1398
+msgid "Add Directories Recursively"
+msgstr "Añadir directorios recursivamente"
+
+#: gtkpod.glade:1399
+msgid "Dirs"
+msgstr "Directorios"
+
+#: gtkpod.glade:1416
+msgid "Add playlist from file"
+msgstr "Añadir lista de reproducción desde fichero"
+
+#: gtkpod.glade:1417 src/display_spl.c:105
+msgid "Playlist"
+msgstr "Lista de reproducción"
+
+#: gtkpod.glade:1434
+msgid "Create New Playlist"
+msgstr "Crear nueva lista de reproducción"
+
+#: gtkpod.glade:1435
+msgid "New PL"
+msgstr "Nueva lista de reproducción"
+
+#: gtkpod.glade:1451
+msgid "Stop Display Update"
+msgstr "No mostrar la actualización"
+
+#: gtkpod.glade:1452
+msgid "Stop"
+msgstr "Detener"
+
+#: gtkpod.glade:1625
+msgid "About gtkpod"
+msgstr "Sobre gtkpod"
+
+#: gtkpod.glade:1752
+msgid "Credits"
+msgstr "Créditos"
+
+#: gtkpod.glade:1810
+msgid "Translators"
+msgstr "Traductores"
+
+#: gtkpod.glade:1868
+msgid "special_sorttab -- Don't translate!"
+msgstr ""
+
+#: gtkpod.glade:1903
+msgid " Logic: "
+msgstr "Operadores lógicos:"
+
+#: gtkpod.glade:1929
+msgid "Any (OR)"
+msgstr "o (OR)"
+
+#: gtkpod.glade:1948
+msgid "All (AND)"
+msgstr "y (AND)"
+
+#: gtkpod.glade:2001
+msgid "0"
+msgstr "0"
+
+#: gtkpod.glade:2020
+msgid "1"
+msgstr "1"
+
+#: gtkpod.glade:2039
+msgid "2"
+msgstr "2"
+
+#: gtkpod.glade:2058
+msgid "3"
+msgstr "3"
+
+#: gtkpod.glade:2077
+msgid "4"
+msgstr "4"
+
+#: gtkpod.glade:2096
+msgid "5"
+msgstr "5"
+
+#: gtkpod.glade:2135
+msgid "Select '0' for no lower limit."
+msgstr "Seleccionar '0' para eliminar el límite inferior."
+
+#: gtkpod.glade:2156
+msgid " <= cts <= "
+msgstr " <= cts <= "
+
+#: gtkpod.glade:2181
+msgid "Select '-1' for no upper limit."
+msgstr "Seleccionar '-1' para eliminar el límite superior."
+
+#: gtkpod.glade:2224 gtkpod.glade:2301 gtkpod.glade:2471
+msgid ""
+"'DD/MM/YYYY HH:MM < d < DD/MM/YYYY HH:MM' or similar. Press 'enter' when "
+"finished."
+msgstr ""
+"'DD/MM/AAAA HH:MM < d < DD/MM/AAAA HH:MM' o similar. Pulse 'Intro' al "
+"terminar."
+
+#: gtkpod.glade:2270 gtkpod.glade:2347 gtkpod.glade:2517 gtkpod.glade:2696
+msgid "Calendar"
+msgstr "Calendario"
+
+#: gtkpod.glade:2372
+msgid "Specify interval"
+msgstr "Especificar intervalo"
+
+#: gtkpod.glade:2374 src/display_spl.c:98 src/misc_conversion.c:78
+msgid "Playcount"
+msgstr "Contador"
+
+#: gtkpod.glade:2397 src/display_spl.c:101 src/misc_conversion.c:79
+msgid "Rating"
+msgstr "Puntuación"
+
+#: gtkpod.glade:2420 src/display_songs.c:1951
+msgid "Played"
+msgstr "Reproducido"
+
+#: gtkpod.glade:2443 src/display_songs.c:1954
+msgid "Modified"
+msgstr "Modificado"
+
+#: gtkpod.glade:2542 src/display_songs.c:1957 src/display_sorttabs.c:3218
+msgid "Added"
+msgstr "Añadido"
+
+#: gtkpod.glade:2587
+msgid "Display tracks that match the criteria entered above."
+msgstr "Mostrar las pistas que concuerden con el criterio de búsqueda."
+
+#: gtkpod.glade:2630 gtkpod.glade:12009
+msgid "_Display"
+msgstr "_Mostrar"
+
+#: gtkpod.glade:2666
+msgid ""
+"Automatically start displaying tracks that match the criteria entered above. "
+"If not selected, you must press 'Display' to start displaying."
+msgstr ""
+"Mostrar automáticamente las pistas que concuerden con el criterio de "
+"búsqueda. Si no está seleccionado se deberá pulsar 'Mostar' para que "
+"comiencen a visualizarse."
+
+#: gtkpod.glade:2668
+msgid "Start display automatically"
+msgstr "Mostrar automáticamente"
+
+#: gtkpod.glade:2743
+msgid "Sorttab: "
+msgstr "Pestaña:"
+
+#: gtkpod.glade:2787
+msgid "     "
+msgstr "     "
+
+#: gtkpod.glade:2813
+msgid "Category: "
+msgstr "Categoría: "
+
+#: gtkpod.glade:2894
+msgid "Please specify a time interval"
+msgstr "Especificar un intervalo de tiempo"
+
+#: gtkpod.glade:2943
+msgid "Lower Margin"
+msgstr "Margen inferior"
+
+#: gtkpod.glade:2994 gtkpod.glade:3208
+msgid "Time:"
+msgstr "Tiempo:"
+
+#: gtkpod.glade:3037 gtkpod.glade:3251
+msgid ":"
+msgstr ":"
+
+#: gtkpod.glade:3114
+msgid "No lower margin"
+msgstr "Sin margen inferior"
+
+#: gtkpod.glade:3157
+msgid "Upper margin"
+msgstr "Margen superior"
+
+#: gtkpod.glade:3328
+msgid "No upper margin"
+msgstr "Sin margen superior"
+
+#: gtkpod.glade:3426
+msgid "Sorting Options"
+msgstr "Opciones de ordenamiento"
+
+#: gtkpod.glade:3458
+msgid "<b>Sort Order</b>"
+msgstr "<b>Opción de ordenamiento</b>"
+
+#: gtkpod.glade:3489 gtkpod.glade:4762 gtkpod.glade:11638 gtkpod.glade:12134
+#: gtkpod.glade:12249
+msgid "    "
+msgstr "    "
+
+#: gtkpod.glade:3521
+msgid ""
+"In order to save the displayed track order to the iPod choose 'Save "
+"Displayed Track Order' from the 'Edit' menu or select 'Auto Store' below."
+msgstr ""
+"Pulse 'Guardar' para salvar el orden de las pistas mostradas al iPod. Orden "
+"de las pistas mostradas del menú 'Editar' o seleccionar 'Guardar "
+"automáticamente' más abajo."
+
+#: gtkpod.glade:3905
+msgid "Ascending"
+msgstr "Ascendiente"
+
+#: gtkpod.glade:3953
+msgid "Descending"
+msgstr "Descendiente"
+
+#: gtkpod.glade:4001
+msgid "None"
+msgstr "Ninguno"
+
+#: gtkpod.glade:4048 src/display_playlists.c:2106
+msgid "Playlists"
+msgstr "Listas de reproducción"
+
+#: gtkpod.glade:4097
+msgid "Sorttabs"
+msgstr "Pestañas de orden"
+
+#: gtkpod.glade:4146
+msgid "Tracks"
+msgstr "Pistas"
+
+#: gtkpod.glade:4306
+msgid "Auto Store"
+msgstr "Guardar automáticamente"
+
+#: gtkpod.glade:4349
+msgid "Please refer to the notice below."
+msgstr "Leer nota inferior"
+
+#: gtkpod.glade:4383 gtkpod.glade:4564 src/details.c:1118
+msgid "n/a"
+msgstr "no disponible"
+
+#: gtkpod.glade:4613
+msgid "Sort tracks according to: "
+msgstr "Ordenar pistas respecto a:"
+
+#: gtkpod.glade:4647
+msgid ""
+"You can also use the table headers, but this allows you to sort according to "
+"a column that is not displayed."
+msgstr ""
+"También se pueden usar las cabeceras de la tabla,pero esto le permite "
+"ordenar respecto a columnas no mostradas."
+
+#: gtkpod.glade:4683
+msgid ""
+"If checked, sorting will be case sensitive. Please note that case sensitive "
+"sorting will not work well with most charsets."
+msgstr ""
+"En caso de estar marcado, la ordenación distinguirá mayúsculas y minúsculas. "
+"Tenga en cuenta que una ordenación de este tipo no funciona bien con todos "
+"los juegos de caracteres."
+
+#: gtkpod.glade:4685
+msgid "Sorting case sensitive"
+msgstr "Ordenamiento distinguiendo mayúsculas y minúsculas"
+
+#: gtkpod.glade:4731
+msgid "<b>Ignore Frequent Words</b>"
+msgstr "<b>Ignorar palabras comunes (p.e: artículos)</b>"
+
+#: gtkpod.glade:4831
+msgid "Ignore these words when at the beginning of the following fields:"
+msgstr ""
+"Ignorar estas palabras cuando se encuentren al principio de los siguientes "
+"campos:"
+
+#: gtkpod.glade:5106
+msgid "gtkpod Info"
+msgstr "Información sobre gtkpod"
+
+#: gtkpod.glade:5427 gtkpod.glade:5514 gtkpod.glade:5543 gtkpod.glade:6261
+#: gtkpod.glade:6406
+msgid "      "
+msgstr "      "
+
+#: gtkpod.glade:5832
+msgid "Number of tracks"
+msgstr "Número de pistas"
+
+#: gtkpod.glade:5862
+msgid "Play time"
+msgstr "Tiempo de reproducción"
+
+#: gtkpod.glade:5893
+msgid "File size"
+msgstr "Tamaño de fichero"
+
+#: gtkpod.glade:5923
+msgid "Number of playlists"
+msgstr "Número de listas de reproducción"
+
+#: gtkpod.glade:5953
+msgid "Deleted tracks"
+msgstr "Pistas borradas"
+
+#: gtkpod.glade:5983
+msgid "File size (deleted)"
+msgstr "Tamaño de fichero (borrado)"
+
+#: gtkpod.glade:6013
+msgid "Non-transferred tracks"
+msgstr "Pistas no transferidas"
+
+#: gtkpod.glade:6043
+msgid "File size (non-transferred)"
+msgstr "Tamaño de fichero (no transferido)"
+
+#: gtkpod.glade:6073
+msgid "Effective free space"
+msgstr "Espacio disponible"
+
+#: gtkpod.glade:6103
+msgid ""
+"Total\n"
+"(iPod)"
+msgstr ""
+"Total\n"
+"(iPod)"
+
+#: gtkpod.glade:6135
+msgid ""
+"Selected\n"
+"Playlist"
+msgstr ""
+"Lista de reproducción\n"
+"seleccionada"
+
+#: gtkpod.glade:6167
+msgid ""
+"Displayed\n"
+"Tracks"
+msgstr ""
+"Pistas\n"
+"mostradas"
+
+#: gtkpod.glade:6199
+msgid ""
+"Selected\n"
+"Tracks"
+msgstr ""
+"Pistas\n"
+"seleccionadas"
+
+#: gtkpod.glade:6231
+msgid ""
+"Total\n"
+"(local)"
+msgstr ""
+"Total\n"
+"(local)"
+
+#: gtkpod.glade:6651
+msgid "label21"
+msgstr "etiqueta21"
+
+#: gtkpod.glade:6746
+msgid "Never show this dialogue again"
+msgstr "No volver a mostrar este diálogo"
+
+#: gtkpod.glade:6791 gtkpod.glade:7135
+msgid "window1"
+msgstr "ventana1"
+
+#: gtkpod.glade:6850
+msgid "_M3U"
+msgstr "_M3U"
+
+#: gtkpod.glade:6869
+msgid "_PLS"
+msgstr "_PLS"
+
+#: gtkpod.glade:6907
+msgid ""
+"If available, the local copy of the track is referenced in the playlist. "
+"Otherwise the file on the iPod is used."
+msgstr ""
+"En caso de estar disponible se usará en la lista de reproducción la copia "
+"local de la pista, sino se usará el fichero del iPod."
+
+#: gtkpod.glade:6909
+msgid "_Prefer Local"
+msgstr "_Preferir local"
+
+#: gtkpod.glade:6927
+msgid ""
+"The local copy of the track is referenced in the playlist. If the track is "
+"not available locally, an error message is displayed."
+msgstr ""
+"La copia local de la pista se usará en la lista de reproducción. Si la pista "
+"no está disponible localmente, se producirá un error."
+
+#: gtkpod.glade:6929
+msgid "_Local"
+msgstr "_Local"
+
+#: gtkpod.glade:6948
+msgid "The track on the iPod is referenced in the playlist file."
+msgstr "La pista del iPod será usada en la lista de reproducción."
+
+#: gtkpod.glade:6950
+msgid "_iPod"
+msgstr "_iPod"
+
+#: gtkpod.glade:6983
+msgid "Playlist type:"
+msgstr "Tipo de lista de reproducción:"
+
+#: gtkpod.glade:7012
+msgid "Source:"
+msgstr "Fuente:"
+
+#: gtkpod.glade:7055
+msgid "Template for info field: "
+msgstr "Plantilla para el campo de información:"
+
+#: gtkpod.glade:7080
+msgid ""
+"Determines how the string for the info field should be constructed, e.g '%a/%"
+"A/%T - %t.mp3' or '%o'.  You can separate several templates by semicolons -- "
+"gtkpod will determine which one to use by the filename extension given. "
+"Artist: %a, album: %A, composer: %c, title: %t, genre: %G, track nr: %T, CD "
+"nr: %C, year: %Y, original filename (requires extended information file): %"
+"o, the character '%': %%."
+msgstr ""
+"Indica como debe construirse la cadena del campo de información, p.e: '%a/%A/"
+"%T-%t.mp3' o '%o'. Se pueden separar varias plantillas con puto y coma (;) "
+"-- gtkpod determinará cual usar según la extensión del fichero. Artista: %a, "
+"álbum: %A, compositor: %c, título: %t, género: %G, número de pista: %T, "
+"número de CD: %C, año: %Y, nombre original (necesita el fichero de "
+"información extendida): %o, el carácter '%': %%."
+
+#: gtkpod.glade:7111 gtkpod.glade:7355
+msgid "gtkpod options"
+msgstr "Opciones de gtkpod"
+
+#: gtkpod.glade:7173
+msgid "Filename Format: "
+msgstr "Formato de nombre de fichero:"
+
+#: gtkpod.glade:7198
+msgid ""
+"Determines the filename of tracks you copy from the iPod, e.g '%a/%A/%T - %t."
+"mp3' or '%o'.  You can separate several patterns by semicolons -- gtkpod "
+"will determine which one to use by the filename extension given. Artist: %a, "
+"album: %A, composer: %c, title: %t, genre: %G, track nr: %T, CD nr: %C, "
+"year: %Y, original filename (requires extended information file): %o, "
+"current playlist: %p, the character '%': %%."
+msgstr ""
+"Indica el nombre de las pistas que se copian del iPod, p.e: '%a/%A/%T - %t."
+"mp3' o '%o'. Se pueden separar varios patrones con punto y coma (;) -- "
+"gtkpod determinará cual usar según la extensión del fichero. Artista:%a, "
+"álbum: %A, compositor: %c, título: %t, género: %G, número de pista: %T, "
+"número de CD: %C, año: %Y, nombre original (necesita el fichero de "
+"información extendida): %o, lista de reproducción actual: %p, el caracter "
+"'%': %%."
+
+#: gtkpod.glade:7203
+msgid " "
+msgstr " "
+
+#: gtkpod.glade:7225
+msgid ""
+"Normally the charset specified when first importing the track will be used "
+"for the filename. If you set this option you can set a different charset "
+"with the charset selector (Preferences/'Adding/Updating/Syncing'). Note: the "
+"charset info is stored in the extended information file (see "
+"Preferences/'Writing of the iTunesDB'). Tracks imported before V0.51 will "
+"have no charset stored. Instead the charset specified will be used."
+msgstr ""
+"Por defecto para el nombre del fichero se usará el juego de caracteres "
+"especificado en el momento de importar la pista. Con esta opción se puede "
+"configurar un juego de carácteres diferente (Preferencias/'Añadir/Actualizar/"
+"Sincronizar'). Nota: la información del juego de caracteres se guarda en el "
+"fichero de información (ver Preferencias/'Escribiendo la base de datos "
+"iTunes'). Las pistas importadas con versiones previas a la 0.51 no tienen "
+"almacenado el juego de caracteres."
+
+#: gtkpod.glade:7227
+msgid ""
+"Use selected charset (Preferences/'Adding/Updating/ Syncing')\n"
+"for this filename."
+msgstr ""
+"Usar juego de caracteres especificado (Preferencias/'Añadir/Actualizar/"
+"Sincronizar')\n"
+"para este nombre de fichero."
+
+#: gtkpod.glade:7246
+msgid ""
+"When copying from iPod no check is performed on whether the destination file "
+"exists. Enabling this option will make gtkpod check whether the length of "
+"the destination file is the same as the file in the iPod. If so the file is "
+"skipped, allowing a quick sync of the iPod's contents."
+msgstr ""
+"Al copiar del iPod no se comprueba si el fichero destino existe. Activando "
+"esta opción gtkpod comparará el tamaño del fichero destino con el del "
+"origen. Si son iguales, el fichero será ignorado permitiendo una rápida "
+"sincronización de los contenidos del iPod."
+
+#: gtkpod.glade:7248
+msgid "Check for existing files when copying from iPod."
+msgstr "Comprobar la existencia previa de ficheros al copiar del iPod."
+
+#: gtkpod.glade:7423
+msgid "Playlist name:"
+msgstr "Nombre de la lista de reproducción:"
+
+#: gtkpod.glade:7492
+msgid "Match al_l of the following"
+msgstr "Encontrar todo _lo siguiente"
+
+#: gtkpod.glade:7511
+msgid "Match an_y of the following"
+msgstr "Encontrar algo de lo siguiente (_y)"
+
+#: gtkpod.glade:7531
+msgid "_Ignore rules"
+msgstr "_Ignorar reglas"
+
+#: gtkpod.glade:7601
+msgid "Rules"
+msgstr "Reglas"
+
+#: gtkpod.glade:7638
+msgid "_Limit to"
+msgstr "_Limitar a"
+
+#: gtkpod.glade:7689
+msgid "   Sort by:"
+msgstr "   Ordenar por:"
+
+#: gtkpod.glade:7741
+msgid "Match only _checked tracks"
+msgstr "Encontrar sólo pistas verifi_cadas"
+
+#: gtkpod.glade:7773
+msgid "Live _updating"
+msgstr "Act_ualización directa"
+
+#: gtkpod.glade:7864
+msgid "Preferences"
+msgstr "Preferencias"
+
+#: gtkpod.glade:7927
+msgid "<b>Mountpoint and individual repository/playlist options</b>"
+msgstr ""
+"<b>Opciones de punto de montaje y repositorio/lista de reproducción "
+"individual</b>"
+
+#: gtkpod.glade:7990
+msgid "Set mountpoint or edit repository options"
+msgstr "Configurar el punto de montaje o editar las opciones de repositorio"
+
+#: gtkpod.glade:8037
+msgid "<b>Import</b>"
+msgstr "<b>Importar</b>"
+
+#: gtkpod.glade:8108
+#, fuzzy
+msgid "Automatically import iTunesDBs on startup"
+msgstr ""
+"Importar automáticamente la base de datos iTunes del iPod en el arranque"
+
+#: gtkpod.glade:8154
+msgid "<b>Adding/Updating/Syncing</b>"
+msgstr "<b>Añadir/Actualizar/Sincronizar</b>"
+
+#: gtkpod.glade:8226
+msgid "Exclude file mask(s)"
+msgstr ""
+
+#: gtkpod.glade:8251
+msgid "Semicolon seperated list of file exclusion masks, e.g. '*.mp3'"
+msgstr ""
+
+#: gtkpod.glade:8285
+msgid "_Encoding (ID3, files):"
+msgstr "Codificación(ID3, fich_eros):"
+
+#: gtkpod.glade:8320
+msgid ""
+"gtkpod expects the ID3 tags and the filenames to be in the encoding "
+"specified here. You can change it for consecutive 'Add Files' and 'Add Dirs' "
+"operation. 'System Charset' is the charset used by your current locale."
+msgstr ""
+"gtkpod espera que las etiquetas ID3 y los nombres de fichero estén en la "
+"codificación aquí especificada. Se puede modificar para las operaciones de "
+"'Añadir ficheros' y 'Añadir directorios'. El juego de caracteres del sistema "
+"es el de la localización en uso."
+
+#: gtkpod.glade:8357
+msgid ""
+"Normally the charset specified when first importing the track will be used "
+"to update the track information. If you have chosen a wrong charset when "
+"first importing a track and want to correct it using the 'Update Track' "
+"function, you must check this option. Note: the charset info is stored in "
+"the extended information file (see 'Writing of iTunesDB' below) and tracks "
+"imported before V0.51 will have no charset stored. Instead the charset "
+"specified above will be used then."
+msgstr ""
+"Por defecto al actualizar la información de las pistas se usa el juego de "
+"caracteres de su importación. Si se ha elegido un juego de caracteres "
+"erroneo y se quiere corregir al actualizar la información de las pistas se "
+"debe marcar esta opción. Nota: la información del juego de caracteres se "
+"guarda en el fichero de información extendida (ver 'Escribir la base de "
+"datos iTunes' mas abajo). Las pistas importadas con versiones previas a la "
+"0.51 no tienen almacenado el juego de caracteres."
+
+#: gtkpod.glade:8359
+msgid ""
+"Use selected encoding also when updating \n"
+"or syncing tracks"
+msgstr ""
+"Usar codificación seleccionada al actualizar\n"
+"o sincronizar las pistas"
+
+#: gtkpod.glade:8379
+msgid "If you check this, gtkpod will descend into subdirectories recursively."
+msgstr ""
+"Con esta opción, gtkpod descenderá recursivamente en los subdirectorios."
+
+#: gtkpod.glade:8381
+msgid "Add directories recursively"
+msgstr "Añadir directorios recursivamente"
+
+#: gtkpod.glade:8400
+msgid "Duplicate Recognition is based on a (modified) md5 hash over the file."
+msgstr ""
+"El reconocimiento de duplicados está basado en una función de resumen MD5 "
+"(modificada) sobre el fichero."
+
+#: gtkpod.glade:8402
+msgid "Don't allow file duplication"
+msgstr "No permitir ficheros duplicados"
+
+#: gtkpod.glade:8452
+msgid ""
+"Display the list of duplicates that have been detected after adding files."
+msgstr ""
+"Mostrar la lista de ficheros duplicados que han sido detectados al añadir "
+"ficheros."
+
+#: gtkpod.glade:8454
+msgid "Display info about detected duplicates"
+msgstr "Mostar información sobre los ficheros duplicados detectados"
+
+#: gtkpod.glade:8480
+msgid ""
+"If the filename (full path) of an existing track matches that of a track to "
+"be added, this option allows you to update the information about the "
+"existing track rather than just skipping the track altogether. No update "
+"will take place if the file hasn't changed and you have selected the 'Don't "
+"allow file duplication' option above."
+msgstr ""
+"Si el nombre (ruta completa) de una pista existente concuerda con una a "
+"añadir, esta opción permite actualizar la información de la pista existente "
+"en vez de ignorar la pista a añadir. No se actualizará la información si el "
+"fichero no ha cambiado y está seleccionada la opción 'No permitir ficheros "
+"duplicados' más abajo."
+
+#: gtkpod.glade:8482
+msgid ""
+"When adding dirs/files, update information of\n"
+"existing tracks with identical filenames"
+msgstr ""
+"Actualizar la información de las pistas existentes al añadir directorios/"
+"ficheros con el mismo nombre"
+
+#: gtkpod.glade:8533
+msgid "Display a list of tracks that could actually be updated."
+msgstr "Mostrar las pistas que pueden ser actualizadas."
+
+#: gtkpod.glade:8535
+msgid "Display info about updated tracks"
+msgstr "Mostrar información sobre las pistas actualizadas"
+
+#: gtkpod.glade:8592
+msgid "Display a list of tracks that could not be updated."
+msgstr "Mostrar las pistas que no pueden ser actualizadas."
+
+#: gtkpod.glade:8594
+msgid "Display info about non-updated tracks"
+msgstr "Mostrar información sobre las pistas no actualizadas"
+
+#: gtkpod.glade:8620
+msgid "When syncing playlists"
+msgstr "Al sincronizar listas de reproducción"
+
+#: gtkpod.glade:8694
+msgid "Confirm lists of directories"
+msgstr "Confirmar la lista de directorios"
+
+#: gtkpod.glade:8712 gtkpod.glade:17758
+msgid ""
+"Normally, if a track is no longer present in the sync directory, it will be "
+"removed from the playlist, but not from the iPod or local repository.\n"
+"If this option is checked, tracks will be completely removed from the iPod "
+"or local repository, unless the track is a member of other playlists as "
+"well.\n"
+"NOTE: if you sync with the master playlist, you must check this option if "
+"you want tracks to be removed, because removing from the master playlist "
+"means removing from the iPod."
+msgstr ""
+"Normalmente, si una pista no se encuentra presente en el directorio de "
+"sincronización, esta será borrada de la lista de reproducción, pero no del "
+"iPod o del repositorio local.\n"
+"Si esta opción está marcada, las pistas serán borradas por completo del iPod "
+"o del repositorio local a no ser que la pista pertenezca también a otras "
+"listas de reproducción.\n"
+"Nota: si se sincroniza con la lista de reproducción maestra, esta opción "
+"debe estar seleccionada, porque borrar de la lista de reproducción maestra "
+"significa borrar del iPod."
+
+#: gtkpod.glade:8716 gtkpod.glade:17762
+msgid ""
+"Delete tracks that are no longer present from the\n"
+"ipod or repository"
+msgstr ""
+"Borrar las pistas que no se encuentran presentes\n"
+"del iPod o del repositorio"
+
+#: gtkpod.glade:8735
+msgid "This is the same option as in 'Edit/Delete Confirmation'"
+msgstr "Esta es la misma opcion que en 'Confirmar Editar/Borrar'"
+
+#: gtkpod.glade:8737 gtkpod.glade:17782
+msgid "Confirm before removing tracks from the iPod or repository"
+msgstr "Confirmar antes de borrar pistas del iPod o del repositorio"
+
+#: gtkpod.glade:8756 gtkpod.glade:17800
+msgid ""
+"Will show a list of tracks removed and a list of tracks newly added or "
+"updated."
+msgstr ""
+"Se mostrará una lista de las pistas eliminadas y una lista de las pistas "
+"añadidas o actualizadas."
+
+#: gtkpod.glade:8758 gtkpod.glade:17802
+msgid "Show summary of sync result"
+msgstr "Mostrar resumen del resultado de la sincronización"
+
+#: gtkpod.glade:8819
+msgid "<b>Sync</b>"
+msgstr "<b>Sincronizar</b>"
+
+#: gtkpod.glade:8875
+msgid ""
+"Highly recommended for faster import when taking advantage of the "
+"duplication recognition. Also, having the PC filenames allows writing "
+"changed ID3 tags to disk, and even to reconstruct your ipod's contents in "
+"case of file system corruption (change the \"transferred=\" entries in your "
+"backuped database)."
+msgstr ""
+"Recomendado para conseguir una importación más rápida cuando se está usando "
+"la detección de duplicados."
+
+#: gtkpod.glade:8877
+msgid ""
+"Write extended information (PC filenames,\n"
+" MD5 hashes, encoding). Recommended."
+msgstr ""
+"Escribir la información extendida (nombre de fichero en PC,\n"
+"función resumen MD5, codificación). Recomendado."
+
+#: gtkpod.glade:8921 gtkpod.glade:14688
+msgid "_General"
+msgstr "_General"
+
+#: gtkpod.glade:8957
+msgid "<b>Tag Reading</b>"
+msgstr "<b>Lectura de los atributos</b>"
+
+#: gtkpod.glade:9020
+msgid "Read tags from file contents (e.g. ID3 tags in MP3 files)"
+msgstr ""
+"Leer atributos del contenido del fichero (p.e: atributos ID3 en ficheros MP3)"
+
+#: gtkpod.glade:9039 gtkpod.glade:9413
+msgid ""
+"artist: %a, album: %A, composer: %c, title: %t, genre: %G, track nr: %T, CD "
+"nr: %C, year: %Y, skip data: %*, the character '%': %%. You can separate "
+"several templates by a ';'. The first one matching the filename will be "
+"used. Example: '%a - %A/%T %t.mp3;%t.wav'."
+msgstr ""
+"artista: %a, álbum: %A, compositor: %c, título: %t, género: %G, número de "
+"pista: %T, número de CD: %C, año: %Y, ignorar dato: %*, el carácter '%': %%. "
+"Se pueden separar varias plantillas con punto y coma ';'. La primera que "
+"concuerde con el nombre de fichero será usada. Ejemplo: '%a - %A/%T %t.mp3;%"
+"t.wav'."
+
+#: gtkpod.glade:9041
+msgid "Use this template to parse filename for tag information:"
+msgstr ""
+"Usar esta plantilla para analizar sintácticamente el nombre de fichero para "
+"la información de los atributos."
+
+#: gtkpod.glade:9118
+msgid "Overwrite tags that are already set"
+msgstr "Sobreescribir atributos ya establecidos"
+
+#: gtkpod.glade:9151
+msgid ""
+"As a last resort set the following tags to the\n"
+"filename if they are (still) empty:"
+msgstr ""
+"Como último recurso, establecer los siguientes\n"
+" atributos al nombre de fichero si (todavía) están vacíos."
+
+#: gtkpod.glade:9187 src/display_sorttabs.c:2942 src/display_spl.c:85
+#: src/misc_conversion.c:62
+msgid "Artist"
+msgstr "Artista"
+
+#: gtkpod.glade:9209 src/display_sorttabs.c:2948 src/display_spl.c:89
+#: src/misc_conversion.c:64
+msgid "Genre"
+msgstr "Género"
+
+#. 0
+#: gtkpod.glade:9231 src/display_sorttabs.c:2945 src/display_spl.c:84
+#: src/misc_conversion.c:61
+msgid "Album"
+msgstr "Álbum"
+
+#. 5
+#: gtkpod.glade:9253 src/display_spl.c:97 src/misc_conversion.c:66
+msgid "Composer"
+msgstr "Compositor"
+
+#: gtkpod.glade:9275 src/display_sorttabs.c:2954 src/display_spl.c:83
+#: src/misc_conversion.c:63
+msgid "Title"
+msgstr "Título"
+
+#: gtkpod.glade:9330
+#, fuzzy
+msgid "<b>Coverart</b>"
+msgstr "<b>Importar</b>"
+
+#: gtkpod.glade:9392
+msgid ""
+"Music files can have images embedded in the APIC tag. Currently this is only "
+"supported for MP3 files."
+msgstr ""
+
+#: gtkpod.glade:9394
+msgid "Read coverart from embedded APIC data"
+msgstr ""
+
+#: gtkpod.glade:9415
+#, fuzzy
+msgid "Add coverart from file using the following template"
+msgstr "Añadir carátulas desde fichero usando la siguiente plantilla"
+
+#: gtkpod.glade:9471
+msgid ""
+"Determines the name of the file with the cover art. You can separate several "
+"patterns by semicolons which will be tried in order. Artist: %a, album: %A, "
+"composer: %c, title: %t, genre: %G, track nr: %T, CD nr: %C, year: %Y, "
+"original filename (requires extended information file): %o, original "
+"filename without file extension: %O, current playlist: %p, the character "
+"'%': %%."
+msgstr ""
+"Determina el nombre de fichero con la carátula. Se pueden separar diferentes "
+"cadenas con punto y coma (;) que serán probadas en orden. Artista: %a, "
+"álbum: %A, compositor: %c, título: %t, género: %G, número de pista: %T, "
+"número de CD: %C, año: %Y, nombre del fichero original (necesita el fichero "
+"de información extendida): %o, nombre de fichero sin extensión: %O, actual "
+"lista de reproducción: %p, el carácter '%': %%."
+
+#: gtkpod.glade:9492
+msgid "<b>Examples</b>"
+msgstr "<b>Ejemplos</b>"
+
+#: gtkpod.glade:9526
+msgid "folder.jpg"
+msgstr "folder.jpg"
+
+#: gtkpod.glade:9554
+msgid "folder"
+msgstr "folder"
+
+#: gtkpod.glade:9582
+msgid "../%A.jpg"
+msgstr "../%A.jpg"
+
+#: gtkpod.glade:9610
+msgid "%A"
+msgstr "%A"
+
+#: gtkpod.glade:9638
+msgid "Use <i>folder.jpg</i> as cover art."
+msgstr "Usar <i>folder.jpg</i> como carátula."
+
+#: gtkpod.glade:9666
+msgid "Use <i>folder.jpg</i>, <i>folder.png</i>..."
+msgstr "Usar <i>folder.jpg</i>, <i>folder.png</i>..."
+
+#: gtkpod.glade:9694
+msgid "Use <i>&lt;Album&gt;.jpg</i> in the parent directory"
+msgstr "Usar <i>&lt;Álbum&gt;.jpg</i> en el directorio padre"
+
+#: gtkpod.glade:9722
+msgid "Use <i>&lt;Album&gt;.jpg</i>, <i>&lt;Album&gt;.png</i>..."
+msgstr "Usar <i>&lt;Álbum&gt;.jpg</i>, <i>&lt;Álbum&gt;.png</i>..."
+
+#: gtkpod.glade:9750
+msgid "folder.jpg;%a.jpg"
+msgstr "folder.jpg;%a.jpg"
+
+#: gtkpod.glade:9778
+msgid "First try <i>folder.jpg</i>, then <i>&lt;artist&gt;.jpg</i>"
+msgstr "Intentar primero <i>folder.jpg</i>, después <i>&lt;artist&gt;.jpg</i>"
+
+#: gtkpod.glade:9835
+msgid "If both options are selected, embedded APIC data takes precedence."
+msgstr ""
+
+#: gtkpod.glade:9887
+msgid "<b>mserv</b>"
+msgstr "<b>mserv</b>"
+
+#: gtkpod.glade:9949 gtkpod.glade:10175
+msgid "Currently only rating is supported."
+msgstr "De momento sólo se puede puntuar."
+
+#: gtkpod.glade:9951
+msgid "Use mserv database to fill additional information"
+msgstr "Usar la base de datos mserv para rellenar la información adicional"
+
+#: gtkpod.glade:9979
+msgid "Music Root:"
+msgstr "Directorio raíz de la música:"
+
+#: gtkpod.glade:10007
+msgid "mserv database lookup will be done for music in this directory."
+msgstr "La base de datos mserv buscará música en este directorio."
+
+#: gtkpod.glade:10029
+msgid "mserv Root:"
+msgstr "Directorio raíz de mserv:"
+
+#: gtkpod.glade:10057
+msgid "Root directory of mserv database (trackinfo root)."
+msgstr ""
+"Directorio raíz de la base de datos mserv (raíz de la información sobre las "
+"pistas)."
+
+#: gtkpod.glade:10079
+msgid "Username:"
+msgstr "Nombre de usuario:"
+
+#: gtkpod.glade:10107
+msgid "Username to be used for mserv database lookup."
+msgstr ""
+"Nombre de usuario que se usará en la búsqueda de la base de datos mserv."
+
+#: gtkpod.glade:10131 gtkpod.glade:10150 gtkpod.glade:12889 gtkpod.glade:12908
+#: gtkpod.glade:13069 gtkpod.glade:13138 gtkpod.glade:17159 gtkpod.glade:17179
+#: gtkpod.glade:17199 gtkpod.glade:17219 gtkpod.glade:17239 gtkpod.glade:17679
+#: gtkpod.glade:18238 gtkpod.glade:18281 gtkpod.glade:18301 gtkpod.glade:18711
+msgid "Browse"
+msgstr "Examinar"
+
+#: gtkpod.glade:10177
+msgid "Show information about problems when accessing mserv"
+msgstr "Mostrar errores en el acceso a mserv"
+
+#: gtkpod.glade:10223
+msgid "_Track Info"
+msgstr "_Información de la pista"
+
+#: gtkpod.glade:10273
+msgid "<b>Displayed Track Attributes</b>"
+msgstr "<b>Atributos de la pista mostrados</b>"
+
+#: gtkpod.glade:11083
+msgid "<b>Sort Tabs</b>"
+msgstr "<b>Pestañas</b>"
+
+#: gtkpod.glade:11145
+msgid "Keeps all compilation CDs grouped together in the artists sort tab."
+msgstr "Mantiene agrupados en la pestaña de artistas todos los CDs generados."
+
+#: gtkpod.glade:11147
+msgid "Group artists on compilation CDs"
+msgstr "Agrupar los artistas en los CDs generados"
+
+#: gtkpod.glade:11172
+msgid "_Number of sort tabs:"
+msgstr "_Número de pestañas:"
+
+#: gtkpod.glade:11252
+msgid "<b>Automatically select...</b>"
+msgstr "<b>Seleccionar automáticamente...</b>"
+
+#: gtkpod.glade:11314
+msgid ""
+"If you don't select the master playlist automatically, the initial database "
+"import is much faster because the display dosn't have to be updated."
+msgstr ""
+"Si no se selecciona la lista de reproducción principal automáticamente, la "
+"importación inicial de la base de datos es mucho más rápida porque no es "
+"necesario actualizar la pantalla."
+
+#: gtkpod.glade:11316
+msgid "...master playlist"
+msgstr "...lista de reproducción principal"
+
+#: gtkpod.glade:11336
+msgid "...entry 'All' in sort tab..."
+msgstr "...entrada 'Todo' en la pestaña..."
+
+#: gtkpod.glade:11421
+msgid "<b>Tooltips</b>"
+msgstr "<b>Sugerencias</b>"
+
+#: gtkpod.glade:11484
+msgid "Display tooltips in main window"
+msgstr "Mostrar sugerencias en la ventana principal"
+
+#: gtkpod.glade:11504
+msgid "Display tooltips in prefs window"
+msgstr "Mostrar sugerencias en la ventana de preferencias"
+
+#: gtkpod.glade:11550
+msgid "<b>Toolbar</b>"
+msgstr "<b>Barra de herramientas</b>"
+
+#: gtkpod.glade:11613
+msgid "Display toolbar..."
+msgstr "Mostrar barra de herramientas..."
+
+#: gtkpod.glade:11670
+msgid "...as icons"
+msgstr "...como iconos"
+
+#: gtkpod.glade:11690
+msgid "...as text"
+msgstr "...como texto"
+
+#: gtkpod.glade:11711
+msgid "...both as icons and text"
+msgstr "...ambos. Como iconos y como texto"
+
+#: gtkpod.glade:11772
+msgid "<b>Misc</b>"
+msgstr "<b>Miscelaneo</b>"
+
+#: gtkpod.glade:11834
+msgid ""
+"It is much faster to sort the display after all tracks have been added. Some "
+"people might feel irritated by this behaviour and should uncheck this option."
+msgstr ""
+"Es mucho más rápido ordenar la pantalla después de haber añadido todas las "
+"pistas. A las personas que les moleste este comportamiento no deben usar "
+"esta opción."
+
+#: gtkpod.glade:11836
+msgid ""
+"Temporarily disable sorting when changing playlist\n"
+"or tab entry (faster!)"
+msgstr ""
+"Deshabilitar temporalmente la ordenación en los cambios \n"
+"de lista de reproducción o de pestañas (¡más rápido!)"
+
+#: gtkpod.glade:11856
+msgid ""
+"The display can be blocked after changing a selection. The display update is "
+"faster, but you have to wait until it's finished. When using this option, "
+"sorting is also temporarily disabled (see option above)."
+msgstr ""
+"La visualización puede bloquearse al cambiar la selección. La actualización "
+"de la visualización es más rápida, pero se ha de esperar a que termine. Al "
+"usar esta opción, también el ordenamiento está desactivado temporalmente "
+"(ver opción superior)."
+
+#: gtkpod.glade:11858
+msgid ""
+"Block display when changing playlist or tab\n"
+" entry (faster!)"
+msgstr ""
+"Bloquear la visualización al cambiar de lista de\n"
+" reproducción o de pestaña (¡más rápido!)"
+
+#: gtkpod.glade:11878
+msgid "This option will be re-activated when you upgrade gtkpod."
+msgstr "Esta opción se reactivará al acualizar gtkpod."
+
+#: gtkpod.glade:11880
+msgid "Display messages and warnings at startup"
+msgstr "Mostrar mensajes y avisos al inicio"
+
+#: gtkpod.glade:11942
+msgid "Advanced Sorting Options"
+msgstr "Opciones de ordenación avanzadas"
+
+#: gtkpod.glade:12045
+msgid "<b>Track Editing</b>"
+msgstr "<b>Edición de pistas</b>"
+
+#: gtkpod.glade:12107
+msgid ""
+"The tags are written to the files on your harddrive and on the ipod (if "
+"available)."
+msgstr ""
+"Los atributos son escritos en los ficheros del disco duro y en el iPod (si "
+"está disponible)."
+
+#: gtkpod.glade:12109
+msgid "Write ID3 tags to disk when modified in gtkpod"
+msgstr "Escribir los atributos ID3 al disco cuando se modifiquen en gtkpod"
+
+#: gtkpod.glade:12165
+msgid ""
+"Normally the charset specified when first importing the track will be used "
+"to write the tags. If you have chosen a wrong charset when first importing a "
+"track, you should select this option along with the correct charset.  Note: "
+"uses the extended information file to store the charset information (see "
+"'Writing of the iTunesDB' on the 'Input/Output' page) and tracks imported "
+"before V0.51 will have no charset stored -- the charset specified on the "
+"'Input/Output' page will be used."
+msgstr ""
+"Por defecto se usará el juego de caracteres especificado en la importación "
+"al escribir los atributos. Si se ha elegido un juego de caracteres erroneo "
+"en la importación de la pista, se puede seleccionar esta opción junto con el "
+"juego de caracteres correcto. Nota: usa el fichero de información extendida "
+"para almacenar la información del juego de caracteres (ver 'Escribiendo la "
+"base de datos iTunes' en el apartado de 'Entrada/Salida'). Las pistas "
+"importadas con versiones anteriores a la 0.51 no tendrán el juego de "
+"caracteres almacenado, el juego de caracteres usado será el especificado en "
+"el apartado de 'Entrada/Salida'."
+
+#: gtkpod.glade:12167
+msgid ""
+"Use selected encoding (on the 'General' page)\n"
+"when writing tags"
+msgstr ""
+"Usar la condificación seleccionada (en la pestaña 'General')\n"
+"al escribir los atributos"
+
+#: gtkpod.glade:12187
+msgid ""
+"This is the way to go, but maybe not all programs support it yet. ID3v2.4 "
+"uses unicode to store the tags, so you won't have to worry about charsets "
+"any more. gtkpod will use UTF8 encoding as this will not increase the size "
+"of pure ASCII tags. ID3v2.2/4 tags will also be written if they are already "
+"present in the file to write to."
+msgstr ""
+"Esta es la forma de hacerlo, pero quizás no todos los programas lo soporten "
+"todavía: ID3v2.4 usa unicode para guardar los atributos, por lo que nunca "
+"más será necesario preocuparse por los juegos de caracteres. gtkpod va a "
+"usar codificación UTF8 porque esta no aumentará el tamaño de los atributos "
+"en ASCII. Los atributos ID·v2.2/4 también serán escritos si se encuentran "
+"previamente en el fichero a escribir."
+
+#: gtkpod.glade:12189
+msgid "Always write ID3v2.4 tags (only applies to MP3)"
+msgstr "Escribir siempre atributos ID3v2.4 (aplicable sólo a ficheros MP3)"
+
+#: gtkpod.glade:12222
+msgid ""
+"If you select several tracks in the track list and edit a tag of the first "
+"track, the tags in the other tracks are updated as well."
+msgstr ""
+"Si se seleccionan varias pistas en la lista de pistas y se edita un atributo "
+"en una de las pistas, el atributo también es actualizado en el resto de las "
+"pistas seleccionadas."
+
+#: gtkpod.glade:12224
+msgid "Use 'Multi-Edit' for tracks selections"
+msgstr "Usar 'Multi-Edición' en la selección de las pistas"
+
+#: gtkpod.glade:12274
+msgid ""
+"Usually you don't want to set the title of several tracks to the same text. "
+"This option might avoid unwanted results (especially since there is no "
+"'undo' yet)."
+msgstr ""
+"Normalmente no se quiere modificar el título de varias pistas con el mismo "
+"texto. Esta opción evita resultados no deseados (especialmente al no "
+"disponer de la opción 'deshacer')"
+
+#: gtkpod.glade:12276
+msgid "Use 'Multi-Edit' also for title field"
+msgstr "Usar 'Multi-Edición' también para el campo título"
+
+#: gtkpod.glade:12329
+msgid "<b>Auto-Generated Playlists</b>"
+msgstr "<b>Listas de reproducción generadas automáticamente</b>"
+
+#: gtkpod.glade:12397
+msgid "Number of tracks in generated playlists:"
+msgstr ""
+"Número de pistas en las listas de reproducción generadas automáticamente:"
+
+#: gtkpod.glade:12422
+msgid ""
+"Number of tracks in the generated playlists 'Most Often Listened', 'Best "
+"Rated' and 'Most Recently Played'. Choose '0' for 'no limit'."
+msgstr ""
+"Número de pistas en las listas de reproducción 'Más frecuentemente usadas', "
+"'Mejor puntuadas' y 'Más recientemente reproducidas' generadas "
+"automáticamente. Elegir '0' para suprimir el límite."
+
+#: gtkpod.glade:12451
+msgid "Also include tracks never played in \"Best Rated\" playlist"
+msgstr ""
+"Incluir también las pistas nunca reproducidas en las listas de reproducción "
+"\"Mejor puntuadas\""
+
+#: gtkpod.glade:12497
+msgid "<b>Delete Confirmation</b>"
+msgstr "<b>Confirmación de borrado</b>"
+
+#: gtkpod.glade:12560
+msgid "Before removing playlists or tracks from a playlist"
+msgstr ""
+"Antes de borrar listas de reproducción o pistas de una lista de reproducción"
+
+#: gtkpod.glade:12580
+msgid "Before removing tracks from the iPod"
+msgstr "Antes de borrar pistas del iPod"
+
+#: gtkpod.glade:12600
+msgid "Before removing tracks from the harddisk"
+msgstr "Antes de borrar pistas del disco duro"
+
+#: gtkpod.glade:12620
+msgid "Before removing tracks from the local database"
+msgstr "Antes de borrar pistas de la base de datos"
+
+#: gtkpod.glade:12640
+msgid ""
+"Confirm before removing tracks from the iPod or repository\n"
+"when syncing playlists"
+msgstr ""
+"Confirmar antes de borrar pistas del iPod o del repositorio\n"
+"al sincronizar las listas de reproducción"
+
+#: gtkpod.glade:12723
+msgid "<b>Play</b>"
+msgstr "<b>Reproducir</b>"
+
+#: gtkpod.glade:12788
+msgid "Command for 'Play now':"
+msgstr "Programa para 'Reproducir':"
+
+#: gtkpod.glade:12816
+msgid "Command for 'Enqueue':"
+msgstr "Programa para 'Encolar':"
+
+#: gtkpod.glade:12844
+msgid ""
+"For example, 'xmms %s' will clear xmms' current playlist, add the selected "
+"tracks and start playing."
+msgstr ""
+"Por ejemplo, 'xmms %s' limpiará la actual lista de reproducción, añadirá las "
+"pistas seleccionadas y comenzará su reproducción."
+
+#: gtkpod.glade:12866
+msgid ""
+"For example, 'xmms -e %s' will append (enqueue) the selected tracks to xmms' "
+"current playlist."
+msgstr ""
+"Por ejemplo, 'xmms -e %s' añadirá las pistas seleccionadas al final de la "
+"actual lista de reproducción de xmms."
+
+#: gtkpod.glade:12953
+msgid "<b>Volume Normalization</b>"
+msgstr "<b>Normalización del volumen</b>"
+
+#: gtkpod.glade:13018
+msgid "'mp3gain' executable:"
+msgstr "programa 'mp3gain':"
+
+#: gtkpod.glade:13046
+msgid ""
+"Set this to 'mp3gain -q -k' to use the 'Normalize volume' functionality in "
+"the Tools Menu. If this is set, missing normalization data for mp3 files "
+"will be calculated and written to your mp3 file using this command."
+msgstr ""
+"Configurar a 'mp3gain -q -k' para usar la función 'Normalizar el volumen' en "
+"el menú Herramientas. En caso de estar configurado, los datos de "
+"normalización serán calculados y escritos a los ficheros mp3 que no los "
+"tengan usando este comando."
+
+#: gtkpod.glade:13087
+msgid "'aacgain' executable:"
+msgstr "programa 'aacgain':"
+
+#: gtkpod.glade:13115
+msgid ""
+"Set this to 'aacgain -q -k' to use the 'Normalize volume' functionality in "
+"the Tools Menu. If this is set, missing normalization data for .m4a and .m4b "
+"files will be calculated and written to your music file using this command."
+msgstr ""
+"Configurar esto a 'aacgain -q -k' para usar la función 'Normalizar el "
+"volumen' en el menú Herramientas. En caso de estar configurado, los datos de "
+"normalización serán calculados y escritos a los ficheros .m4a y m4b que no "
+"los tengan usando este comando."
+
+#: gtkpod.glade:13183
+msgid "<b>Calendar/Contacts/Notes</b>"
+msgstr "<b>Calendario/Contactos/Notas</b>"
+
+#: gtkpod.glade:13246
+msgid "Set options for Calendar/Contacts/Notes"
+msgstr "Configurar opciones para Calendario/Contactos/Notas"
+
+#: gtkpod.glade:13381
+msgid "Details"
+msgstr "Detalles"
+
+#: gtkpod.glade:13449
+msgid "Cover"
+msgstr "Portada"
+
+#: gtkpod.glade:13538
+msgid "Set Cover Art"
+msgstr "Configurar portada"
+
+#: gtkpod.glade:13575
+msgid ""
+"If you check this, information (cover art and meta information) changed for "
+"this track will be copied to all other selected tracks as well. Use with "
+"care."
+msgstr ""
+"Si está seleccionado, la información (portada o meta-información) de la "
+"pista que se modifique será copiada a la vez a todas las otras pistas "
+"seleccionadas. Usar con precaución."
+
+#: gtkpod.glade:13621
+msgid ""
+"Change all tracks\n"
+"simultaneously"
+msgstr ""
+"Cambiar todas las pistas\n"
+"a la vez"
+
+#: gtkpod.glade:13713
+msgid "Remove Cover Art"
+msgstr "Borrar portada"
+
+#: gtkpod.glade:14646
+msgid "(Checked)"
+msgstr "(Revisado)"
+
+#: gtkpod.glade:15088
+msgid "_Podcasts"
+msgstr "_Podcasts"
+
+#: gtkpod.glade:16127
+msgid "_Other"
+msgstr "_Otro"
+
+#: gtkpod.glade:16425
+msgid "_Undo All"
+msgstr "_Deshacer Todo"
+
+#: gtkpod.glade:16499
+msgid "_Undo Track"
+msgstr "_Deshacer pista"
+
+#: gtkpod.glade:16546
+msgid "Repository Options"
+msgstr "Opciones de repositorio"
+
+#: gtkpod.glade:16667
+msgid "Add new repository/iPod"
+msgstr "Añadir nuevo repositorio/iPod"
+
+#: gtkpod.glade:16736 gtkpod.glade:18163 gtkpod.glade:18659
+msgid "iPod mountpoint:"
+msgstr "Punto de montaje del iPod:"
+
+#: gtkpod.glade:16764 gtkpod.glade:18135
+msgid "iTunesDB backup:"
+msgstr "Copia de seguridad de iTunesDB:"
+
+#: gtkpod.glade:16792 gtkpod.glade:18107 gtkpod.glade:18730 gtkpod.glade:18922
+msgid "Model:"
+msgstr "Modelo:"
+
+#: gtkpod.glade:16820 gtkpod.glade:18079
+msgid "Path:"
+msgstr "Ruta:"
+
+#: gtkpod.glade:16848
+msgid "<b>Synchronization</b>"
+msgstr "<b>Sincronización</b>"
+
+#: gtkpod.glade:16906
+msgid "Contacts sync command:"
+msgstr "Programa de sincronización de contactos:"
+
+#: gtkpod.glade:16934
+msgid "Calendar sync command:"
+msgstr "Programa de sincronización del calendario:"
+
+#: gtkpod.glade:16962
+msgid "Notes sync command:"
+msgstr "Programa de sincronización de notas:"
+
+#: gtkpod.glade:16991
+msgid "Call automatically when synchronizing iTunesDB"
+msgstr "Llamar automáticamente al sincronizar la base de datos iTunes"
+
+#: gtkpod.glade:17014 gtkpod.glade:17038 gtkpod.glade:17062 gtkpod.glade:17086
+#: gtkpod.glade:17110 gtkpod.glade:17134 gtkpod.glade:17658 gtkpod.glade:18435
+msgid ""
+"Specify exact path including command line options. '%i' will be replaced "
+"with the mount point of the iPod."
+msgstr ""
+"Especificar la ruta completa del programa, incluyendo opciones del "
+"intérprete de órdenes. '%i' será reemplazado con el directorio de montaje "
+"del iPod."
+
+#: gtkpod.glade:17294
+msgid "Update/Sync all playlists now"
+msgstr "Actualizar/sincronizar ahora todas las listas de reproducción."
+
+#: gtkpod.glade:17314
+msgid "Delete repository"
+msgstr "Borrar repositorio"
+
+#: gtkpod.glade:17334 src/context_menus.c:430 src/context_menus.c:448
+#: src/context_menus.c:523
+msgid "I'm sure"
+msgstr "Estoy seguro"
+
+#: gtkpod.glade:17390
+msgid "<b>Repositories</b>"
+msgstr "<b>Repositorios</b>"
+
+#: gtkpod.glade:17587
+msgid ""
+"Directories to sync with are determined from the filenames of the tracks in "
+"the playlist."
+msgstr ""
+"Los directorios con los que sincronizar son determinados mediante los "
+"nombres de fichero de las pistas en la lista de reproducción."
+
+#: gtkpod.glade:17589
+msgid "On startup automatically sync with playlist directories"
+msgstr ""
+"Sincronizar automáticamente con los directorios de las listas de "
+"reproducción en el inicio."
+
+#: gtkpod.glade:17608
+msgid "On startup automatically sync with the following directory"
+msgstr "Sincronizar automáticamente al inicio con el siguiente directorio"
+
+#: gtkpod.glade:17702
+msgid "Don't automatically sync on startup"
+msgstr "No sincronizar automáticamente al inicio"
+
+#: gtkpod.glade:17848
+msgid "On startup automatically update (Live Playlist)"
+msgstr "Actualizar automáticamente en el inicio (listas de reproducción vivas)"
+
+#: gtkpod.glade:17878
+msgid "Update/Sync playlist now"
+msgstr "Actualizar/sincronizar ahora las listas de reproducción"
+
+#: gtkpod.glade:17925
+msgid "<b>Playlists</b>"
+msgstr "<b>Listas de reproducción</b>"
+
+#: gtkpod.glade:18042
+msgid "Create Repository"
+msgstr "Crear repositorio"
+
+#: gtkpod.glade:18320
+msgid ""
+"Insert before\n"
+"Insert after"
+msgstr ""
+"Insertar antes\n"
+"Insertar después"
+
+#: gtkpod.glade:18358
+msgid "Repository type:"
+msgstr "Tipo de repositorio:"
+
+#: gtkpod.glade:18386
+msgid ""
+"iPod\n"
+"Local Repository (Standard)\n"
+"Local Repository (Podcasts)\n"
+msgstr ""
+"iPod\n"
+"Repositorio local (Standard)\n"
+"Repositorio local (Podcasts)\n"
+
+#: gtkpod.glade:18407
+msgid "Repository name:"
+msgstr "Nombre del repositorio:"
+
+#: gtkpod.glade:18543 gtkpod.glade:18806
+msgid "Initialize iPod"
+msgstr "Inicializar iPod"
+
+#: gtkpod.glade:18613
+msgid "<b>Please select mountpoint and your iPod model</b>"
+msgstr "<b>Por favor, seleccionar el punto de montaje y el modelo de iPod</b>"
+
+#: src/charset.c:53
+msgid "Arabic (IBM-864)"
+msgstr "Árabe (IBM-864)"
+
+#: src/charset.c:54
+msgid "Arabic (ISO-8859-6)"
+msgstr "Árabe (ISO-8859-6)"
+
+#: src/charset.c:55
+msgid "Arabic (Windows-1256)"
+msgstr "Árabe (Windows-1256)"
+
+#: src/charset.c:56
+msgid "Baltic (ISO-8859-13)"
+msgstr "Báltico (ISO-8859-13)"
+
+#: src/charset.c:57
+msgid "Baltic (ISO-8859-4)"
+msgstr "Báltico (ISO-8859-4)"
+
+#: src/charset.c:58
+msgid "Baltic (Windows-1257)"
+msgstr "Báltico (Windows-1257)"
+
+#: src/charset.c:59
+msgid "Celtic (ISO-8859-14)"
+msgstr "Celta (ISO-8859-14)"
+
+#: src/charset.c:60
+msgid "Central European (IBM-852)"
+msgstr "Europa Central (IBM-852)"
+
+#: src/charset.c:61
+msgid "Central European (ISO-8859-2)"
+msgstr "Europa Central (ISO-8859-2)"
+
+#: src/charset.c:62
+msgid "Central European (Windows-1250)"
+msgstr "Europa Central (Windows-1250)"
+
+#: src/charset.c:63
+msgid "Chinese Simplified (GB18030)"
+msgstr "Chino Simplificado (GB18030)"
+
+#: src/charset.c:64
+msgid "Chinese Simplified (GB2312)"
+msgstr "Chino Simplificado (GB2312)"
+
+#: src/charset.c:65
+msgid "Chinese Traditional (Big5)"
+msgstr "Chino Tradicional (Big5)"
+
+#: src/charset.c:66
+msgid "Chinese Traditional (Big5-HKSCS)"
+msgstr "Chino Tradicional (Big5-HKSCS)"
+
+#: src/charset.c:67
+msgid "Cyrillic (IBM-855)"
+msgstr "Cirílico (IBM-855)"
+
+#: src/charset.c:68
+msgid "Cyrillic (ISO-8859-5)"
+msgstr "Cirílico (ISO-8859-5)"
+
+#: src/charset.c:69
+msgid "Cyrillic (ISO-IR-111)"
+msgstr "Cirílico (ISO-IR-111)"
+
+#: src/charset.c:70
+msgid "Cyrillic (KOI8-R)"
+msgstr "Cirílico (KOI8-R)"
+
+#: src/charset.c:71
+msgid "Cyrillic (Windows-1251)"
+msgstr "Cirílico (Windows-1251)"
+
+#: src/charset.c:72
+msgid "Cyrillic/Russian (CP-866)"
+msgstr "Cirílico/Ruso (CP-866)"
+
+#: src/charset.c:73
+msgid "Cyrillic/Ukrainian (KOI8-U)"
+msgstr "Cirílico/Ucraniano (KOI8-U)"
+
+#: src/charset.c:74
+msgid "English (US-ASCII)"
+msgstr "Inglés (US-ASCII)"
+
+#: src/charset.c:75
+msgid "Greek (ISO-8859-7)"
+msgstr "Griego (ISO-8859-7)"
+
+#: src/charset.c:76
+msgid "Greek (Windows-1253)"
+msgstr "Griego (Windows-1253)"
+
+#: src/charset.c:77
+msgid "Hebrew (IBM-862)"
+msgstr "Hebreo (IBM-862)"
+
+#: src/charset.c:78
+msgid "Hebrew (Windows-1255)"
+msgstr "Hebreo (Windows-1255)"
+
+#: src/charset.c:79
+msgid "Japanese (automatic detection)"
+msgstr "Japonés (automático)"
+
+#: src/charset.c:80
+msgid "Japanese (EUC-JP)"
+msgstr "Japonés (EUC-JP)"
+
+#: src/charset.c:81
+msgid "Japanese (ISO-2022-JP)"
+msgstr "Japonés (ISO-2022-JP)"
+
+#: src/charset.c:82
+msgid "Japanese (Shift_JIS)"
+msgstr "Japonés (Shift_JIS)"
+
+#: src/charset.c:83
+msgid "Korean (EUC-KR)"
+msgstr "Coreano (EUC-KR)"
+
+#: src/charset.c:84
+msgid "Nordic (ISO-8859-10)"
+msgstr "Nórdico (ISO-8859-10)"
+
+#: src/charset.c:85
+msgid "South European (ISO-8859-3)"
+msgstr "Europa del sur (ISO-8859-3)"
+
+#: src/charset.c:86
+msgid "Thai (TIS-620)"
+msgstr "Tailandés (TIS-620)"
+
+#: src/charset.c:87
+msgid "Turkish (IBM-857)"
+msgstr "Turco (IBM-857)"
+
+#: src/charset.c:88
+msgid "Turkish (ISO-8859-9)"
+msgstr "Turco (ISO-8859-9)"
+
+#: src/charset.c:89
+msgid "Turkish (Windows-1254)"
+msgstr "Turco (Windows-1254)"
+
+#: src/charset.c:90
+msgid "Unicode (UTF-7)"
+msgstr "Unicode (UTF-7)"
+
+#: src/charset.c:91
+msgid "Unicode (UTF-8)"
+msgstr "Unicode (UTF-8)"
+
+#: src/charset.c:92
+msgid "Unicode (UTF-16BE)"
+msgstr "Unicode (UTF-16BE)"
+
+#: src/charset.c:93
+msgid "Unicode (UTF-16LE)"
+msgstr "Unicode (UTF-16LE)"
+
+#: src/charset.c:94
+msgid "Unicode (UTF-32BE)"
+msgstr "Unicode (UTF-32BE)"
+
+#: src/charset.c:95
+msgid "Unicode (UTF-32LE)"
+msgstr "Unicode (UTF-32LE)"
+
+#: src/charset.c:96
+msgid "Vietnamese (VISCII)"
+msgstr "Vietnamita (VISCII)"
+
+#: src/charset.c:97
+msgid "Vietnamese (Windows-1258)"
+msgstr "Vietnamita (Windows-1258)"
+
+#: src/charset.c:98
+msgid "Visual Hebrew (ISO-8859-8)"
+msgstr "Hebreo Visual (ISO-8859-8)"
+
+#: src/charset.c:99
+msgid "Western (IBM-850)"
+msgstr "Europa occidental (IBM-850)"
+
+#: src/charset.c:100
+msgid "Western (ISO-8859-1)"
+msgstr "Europa occidental (ISO-8859-1)"
+
+#: src/charset.c:101
+msgid "Western (ISO-8859-15)"
+msgstr "Europa occidental (ISO-8859-15)"
+
+#: src/charset.c:102
+msgid "Western (Windows-1252)"
+msgstr "Europa occidental (Windows-1252)"
+
+#. sanity!
+#. check for "System Charset" and return NULL
+#: src/charset.c:160 src/charset.c:170 src/charset.c:223
+msgid "System Charset"
+msgstr "Juego de caracteres del sistema"
+
+#. we are not the first instance of gtkpod -- the socket is
+#. already being used, so we pass
+#: src/clientserver.c:215
+msgid ""
+"Another instance of gtkpod was detected. Playcount server not started.\n"
+msgstr ""
+"Se ha detectado otra instancia de gtkpod. No se ha arrancado el servidor de "
+"contadores.\n"
+
+#: src/confirmation.c:376
+msgid "Confirmation Dialogue"
+msgstr "Diálogo de confirmación"
+
+#: src/context_menus.c:367 src/tools.c:852
+msgid "Play Now"
+msgstr "Reproducir"
+
+#: src/context_menus.c:373 src/tools.c:865
+msgid "Enqueue"
+msgstr "Encolar"
+
+#: src/context_menus.c:379
+msgid "Copy Tracks to Filesystem"
+msgstr "Copiar pistas al sistema de ficheros"
+
+#: src/context_menus.c:386 src/file_export.c:1081
+msgid "Create Playlist File"
+msgstr "Crear lista de reproducción"
+
+#: src/context_menus.c:393
+msgid "Create new Playlist"
+msgstr "Crear nueva lista de reproducción"
+
+#: src/context_menus.c:400
+msgid "Update Tracks from File"
+msgstr "Actualizar pistas desde fichero"
+
+#: src/context_menus.c:414
+msgid "Sync Playlist with Dir(s)"
+msgstr "Sincronizar la lista de reproducción con el/los directorio(s)"
+
+#: src/context_menus.c:424
+msgid "Remove All Tracks from iPod"
+msgstr "Borrar todas las pistas del iPod"
+
+#: src/context_menus.c:442
+msgid "Remove All Podcasts from iPod"
+msgstr "Borrar todos los podcasts del iPod"
+
+#: src/context_menus.c:457
+msgid "Delete Including Tracks"
+msgstr "Borrar incluyendo pistas"
+
+#: src/context_menus.c:465
+msgid "Delete But Keep Tracks"
+msgstr "Borrar manteniendo las pistas"
+
+#: src/context_menus.c:473
+msgid "Edit iPod Properties"
+msgstr "Editar las propiedades del iPod"
+
+#: src/context_menus.c:493
+msgid "Load iPod"
+msgstr "Cargar iPod"
+
+#: src/context_menus.c:500
+msgid "Eject iPod"
+msgstr "Expulsar iPod"
+
+#: src/context_menus.c:517
+msgid "Remove All Tracks from Database"
+msgstr "Borrar todas las pistas de la base de datos"
+
+#: src/context_menus.c:532
+msgid "Delete Including Tracks (Harddisk)"
+msgstr "Borrar incluyendo pistas (disco duro)"
+
+#: src/context_menus.c:540
+msgid "Delete Including Tracks (Database)"
+msgstr "Borrar incluyendo pistas (base de datos)"
+
+#: src/context_menus.c:548
+msgid "Delete From iPod"
+msgstr "Borrar del iPod"
+
+#: src/context_menus.c:556
+msgid "Delete From Playlist"
+msgstr "Borrar de la lista de reproducción"
+
+#: src/context_menus.c:564
+msgid "Delete From Harddisk"
+msgstr "Borrar del disco duro"
+
+#: src/context_menus.c:572
+msgid "Delete From Database"
+msgstr "Borrar de la base de datos"
+
+#: src/context_menus.c:580
+msgid "Alphabetize"
+msgstr "Orden alfabético"
+
+#: src/context_menus.c:596
+msgid "Edit Playlist Properties"
+msgstr "Editar propiedades de la lista de reproducción"
+
+#: src/date_parser.l:269
+#, c-format
+msgid "Date format error: unrecognized character: '%s'\n"
+msgstr "Error en el formato de la fecha: carácter desconocido:'%s'\n"
+
+#: src/details.c:1182
+msgid "<b>n/a</b>"
+msgstr "<b>no disponible</b>"
+
+#: src/display.c:891
+msgid "Edit selected entry of which sort tab?"
+msgstr "¿De qué pestaña desea editar la entrada seleccionada?"
+
+#. no entry selected
+#: src/display.c:898 src/misc_confirm.c:431 src/misc_track.c:1613
+msgid "No entry selected."
+msgstr "No se ha seleccionado ninguna entrada"
+
+#: src/display.c:1057 src/display.c:1384 src/display.c:1440 src/display.c:1494
+#: src/display.c:1549 src/display.c:1810
+#, c-format
+msgid "No entry selected in Sort Tab %d"
+msgstr "No se ha seleccionado ninguna entrada en la pestaña %d"
+
+#: src/display.c:1096
+msgid "Remove entry of which sort tab from database?"
+msgstr "¿De qué pestaña desea borrar su entrada en la base de datos?"
+
+#: src/display.c:1104
+msgid "Remove tracks in selected entry of which filter tab from the iPod?"
+msgstr "¿De qué pestaña desea borrar la entrada en el iPod?"
+
+#: src/display.c:1126
+msgid "Remove tracks in selected entry of which filter tab from the harddisk?"
+msgstr "¿De qué pestaña desea borrar la entrada en el disco duro?"
+
+#: src/display.c:1156
+msgid "Remove tracks in selected entry of which filter tab from playlist?"
+msgstr "¿De qué pestaña desea borrar la entrada en la lista de reproducción?"
+
+#: src/display.c:1183 src/display.c:1221
+#, c-format
+msgid ""
+"iPod at '%s' is not loaded.\n"
+"Please load it first."
+msgstr ""
+"El iPod de '%s' no está cargado.\n"
+"Por favor, cargar primero."
+
+#: src/display.c:1265 src/display.c:1292
+msgid "Update selected entry of which sort tab?"
+msgstr "¿De qué pestaña desea actualizar la entrada seleccionada?"
+
+#: src/display.c:1378
+msgid "Export selected entry of which sort tab?"
+msgstr "¿De qué pestaña desea exportar su selección?"
+
+#: src/display.c:1434
+msgid "Create playlist file from selected entry of which sort tab?"
+msgstr "¿De qué pestaña desea crear la lista de reproducción con su selección?"
+
+#: src/display.c:1488
+msgid "Play tracks in selected entry of which sort tab?"
+msgstr "¿De qué pestaña desea reproducir las pistas seleccionadas?"
+
+#: src/display.c:1543
+msgid "Enqueue tracks in selected entry of which sort tab?"
+msgstr "¿De qué pestaña desea encolar las pistas seleccionadas?"
+
+#: src/display.c:1800
+msgid "Normalize tracks in selected entry of which sort tab?"
+msgstr ""
+"¿De qué pestaña desea normalizar el volumen de las pistas seleccionadas?"
+
+#: src/display_itdb.c:355
+#, fuzzy, c-format
+msgid "Failed to set cover art: '%s'\n"
+msgstr "Error al configurar la carátula: '%s'"
+
+#: src/display_itdb.c:835 src/display_itdb.c:967 src/repository.c:1189
+msgid "iPod"
+msgstr "iPod"
+
+#: src/display_itdb.c:844 src/display_itdb.c:965
+msgid "Local"
+msgstr "Local"
+
+#. add podcast playlist
+#: src/display_itdb.c:852 src/display_itdb.c:963 src/display_itdb.c:991
+msgid "Podcasts"
+msgstr "Podcasts"
+
+#: src/display_itdb.c:1050
+#, c-format
+msgid "Increased playcount for '%s'"
+msgstr "Contador incrementado en '%s'"
+
+#. give a notice on the statusbar -- otherwise the user
+#. * will never know why the drag is not possible
+#: src/display_playlists.c:496 src/display_playlists.c:538
+msgid "Error: drag from iPod not possible in offline mode."
+msgstr "Error: arrastrar desde el iPod no es posible en el modo desconectado"
+
+#: src/display_playlists.c:565 src/display_songs.c:287
+#, c-format
+msgid "Copied one track"
+msgid_plural "Copied %d tracks"
+msgstr[0] "Copiada una pista"
+msgstr[1] "Copiadas %d pistas"
+
+#: src/display_playlists.c:851
+msgid "Can't reorder sorted treeview."
+msgstr "No se puede reordenar una vista en árbol ya ordenada"
+
+#: src/display_playlists.c:944
+#, c-format
+msgid ""
+"This DND type (%d) is not (yet) supported. If you feel implementing this "
+"would be useful, please contact the author.\n"
+"\n"
+msgstr ""
+"Este tipo DND (%d) todavía no está soportado. Si piensa que implementarlo "
+"puede ser útil, por favor, contacte con el autor.\n"
+
+#: src/display_songs.c:282
+#, c-format
+msgid "Moved one track"
+msgid_plural "Moved %d tracks"
+msgstr[0] "Movida una pista"
+msgstr[1] "Movidas %d pistas"
+
+#: src/display_songs.c:1690
+#, c-format
+msgid ""
+"Cannot unsort track view because of a bug in the GTK lib you are using (%d.%"
+"d.%d < 2.5.4). Once you sort the track view, you cannot go back to the "
+"unsorted state.\n"
+"\n"
+msgstr ""
+"No se puede desordenar la vista debido a un error en la biblioteca GTK que "
+"está siendo usada (%d %d %d < 2.5.4). Una vez se ordena la vista no se puede "
+"volver al estado anterior.\n"
+"\n"
+
+#: src/display_songs.c:1923
+msgid "Rtng"
+msgstr "Puntuación"
+
+#: src/display_songs.c:1926
+msgid "#"
+msgstr "#"
+
+#: src/display_songs.c:1929
+msgid "CD"
+msgstr "CD"
+
+#: src/display_songs.c:1932
+msgid "ID"
+msgstr "ID"
+
+#: src/display_songs.c:1935
+msgid "Trnsfrd"
+msgstr "Transferido"
+
+#: src/display_songs.c:1939
+msgid "Cmpl"
+msgstr "Cmpl"
+
+#: src/display_songs.c:1945 src/display_spl.c:94
+msgid "Time"
+msgstr "Duración"
+
+#: src/display_songs.c:1948
+msgid "Plycnt"
+msgstr "Contador"
+
+#: src/display_songs.c:1960
+msgid "Released"
+msgstr "Liberado"
+
+#: src/display_songs.c:1963 src/display_sorttabs.c:2957 src/display_spl.c:88
+#: src/misc_conversion.c:85
+msgid "Year"
+msgstr "Año"
+
+#: src/display_songs.c:1966
+msgid "Vol."
+msgstr "Vol."
+
+#: src/display_songs.c:1969
+msgid "Sndchk."
+msgstr "Control de sonido"
+
+#: src/display_sorttabs.c:456
+msgid "'Played' condition ignored because of error."
+msgstr "Ignorada la condición de «reproducido» debido a un error"
+
+#: src/display_sorttabs.c:459
+msgid "'Modified' condition ignored because of error."
+msgstr "Ignorada la condición de «modificado» debido a un error"
+
+#: src/display_sorttabs.c:462
+msgid "'Added' condition ignored because of error."
+msgstr "Ignorada la condición de «añadido» debido a un error"
+
+#: src/display_sorttabs.c:1582 src/misc_conversion.c:60
+msgid "All"
+msgstr "Todo"
+
+#: src/display_sorttabs.c:1608
+msgid "Compilations"
+msgstr "Compilaciones"
+
+#: src/display_sorttabs.c:2951
+msgid "Comp."
+msgstr "Comp."
+
+#: src/display_sorttabs.c:2960
+msgid "Special"
+msgstr "Especial"
+
+#: src/display_sorttabs.c:3216
+msgid "Last Played"
+msgstr "Última reproducción"
+
+#: src/display_sorttabs.c:3217
+msgid "Last Modified"
+msgstr "Última modificación"
+
+#: src/display_spl.c:64
+msgid "days"
+msgstr "días"
+
+#: src/display_spl.c:65
+msgid "weeks"
+msgstr "semanas"
+
+#: src/display_spl.c:66
+msgid "months"
+msgstr "meses"
+
+#: src/display_spl.c:73
+msgid "kbps"
+msgstr "kbps"
+
+#: src/display_spl.c:74
+msgid "Hz"
+msgstr "Hz"
+
+#: src/display_spl.c:75 src/display_spl.c:160 src/info.c:777
+msgid "MB"
+msgstr "MB"
+
+#: src/display_spl.c:76
+msgid "secs"
+msgstr "segundos"
+
+#: src/display_spl.c:86 src/misc_conversion.c:75
+msgid "Bitrate"
+msgstr "ratio de bits"
+
+#. 15
+#: src/display_spl.c:87 src/misc_conversion.c:76
+msgid "Samplerate"
+msgstr "ratio de muestras"
+
+#: src/display_spl.c:90
+msgid "Kind"
+msgstr "Tipo"
+
+#: src/display_spl.c:91 src/misc_conversion.c:82
+msgid "Date modified"
+msgstr "Fecha de modificación"
+
+#: src/display_spl.c:92
+msgid "Track number"
+msgstr "Número de pista"
+
+#: src/display_spl.c:93
+msgid "Size"
+msgstr "Tamaño"
+
+#: src/display_spl.c:95 src/misc_conversion.c:65
+msgid "Comment"
+msgstr "Comentario"
+
+#: src/display_spl.c:96 src/misc_conversion.c:80
+msgid "Date added"
+msgstr "Añadida fecha"
+
+#: src/display_spl.c:99
+msgid "Last played"
+msgstr "Última reproducción"
+
+#: src/display_spl.c:100
+msgid "Disc number"
+msgstr "Número de disco"
+
+#: src/display_spl.c:102 src/misc_conversion.c:88
+msgid "Compilation"
+msgstr "Compilación"
+
+#: src/display_spl.c:103 src/misc_conversion.c:77
+msgid "BPM"
+msgstr "BPM"
+
+#: src/display_spl.c:104 src/misc_conversion.c:87
+msgid "Grouping"
+msgstr "Agrupando"
+
+#: src/display_spl.c:111
+msgid "contains"
+msgstr "contiene"
+
+#: src/display_spl.c:112
+msgid "does not contain"
+msgstr "no contiene"
+
+#: src/display_spl.c:113 src/display_spl.c:122 src/display_spl.c:132
+#: src/display_spl.c:151
+msgid "is"
+msgstr "es"
+
+#: src/display_spl.c:114 src/display_spl.c:123 src/display_spl.c:133
+#: src/display_spl.c:152
+msgid "is not"
+msgstr "no es"
+
+#: src/display_spl.c:115
+msgid "starts with"
+msgstr "empieza con"
+
+#: src/display_spl.c:116
+msgid "ends with"
+msgstr "termina con"
+
+#: src/display_spl.c:124
+msgid "is greater than"
+msgstr "es mayor que"
+
+#: src/display_spl.c:125
+msgid "is less than"
+msgstr "es menor que"
+
+#: src/display_spl.c:126 src/display_spl.c:138
+msgid "is in the range"
+msgstr "está en el rango"
+
+#: src/display_spl.c:134
+msgid "is after"
+msgstr "está después"
+
+#: src/display_spl.c:135
+msgid "is before"
+msgstr "está antes"
+
+#: src/display_spl.c:136
+msgid "in the last"
+msgstr "al final"
+
+#: src/display_spl.c:137
+msgid "not in the last"
+msgstr "no al final"
+
+#: src/display_spl.c:144
+msgid "is set"
+msgstr "configurado"
+
+#: src/display_spl.c:145
+msgid "is not set"
+msgstr "no configurado"
+
+#: src/display_spl.c:159
+msgid "minutes"
+msgstr "minutos"
+
+#: src/display_spl.c:161
+msgid "tracks"
+msgstr "pistas"
+
+#: src/display_spl.c:162
+msgid "hours"
+msgstr "horas"
+
+#: src/display_spl.c:163 src/info.c:777
+msgid "GB"
+msgstr "GiB"
+
+#: src/display_spl.c:170
+msgid "random order"
+msgstr "orden aleatorio"
+
+#: src/display_spl.c:171
+msgid "title"
+msgstr "título"
+
+#: src/display_spl.c:172
+msgid "album"
+msgstr "álbum"
+
+#: src/display_spl.c:173
+msgid "artist"
+msgstr "artista"
+
+#: src/display_spl.c:174
+msgid "genre"
+msgstr "género"
+
+#: src/display_spl.c:175
+msgid "most recently added"
+msgstr "más recientemente añadido"
+
+#: src/display_spl.c:176
+msgid "least recently added"
+msgstr "menos recientemente añadido"
+
+#: src/display_spl.c:177
+msgid "most often played"
+msgstr "más frecuentemente reproducido"
+
+#: src/display_spl.c:178
+msgid "least often played"
+msgstr "menos frecuentemente reproducido"
+
+#: src/display_spl.c:179
+msgid "most recently played"
+msgstr "más recientemente reproducido"
+
+#: src/display_spl.c:180
+msgid "least recently played"
+msgstr "menos recientemente reproducido"
+
+#: src/display_spl.c:181
+msgid "highest rating"
+msgstr "mayor puntuación"
+
+#: src/display_spl.c:182
+msgid "lowest rating"
+msgstr "menor puntuación"
+
+#: src/display_spl.c:1047 src/display_spl.c:1062
+msgid "to"
+msgstr "a"
+
+#: src/display_spl.c:1279
+msgid "-"
+msgstr "-"
+
+#: src/display_spl.c:1294
+msgid "+"
+msgstr "+"
+
+#: src/display_spl.c:1513 src/misc_playlist.c:67 src/misc_playlist.c:69
+#: src/misc_playlist.c:94 src/misc_playlist.c:96 src/misc_playlist.c:429
+#: src/misc_playlist.c:431
+msgid "New Playlist"
+msgstr "Nueva lista de reproducción"
+
+#: src/file.c:230
+#, c-format
+msgid ""
+"'%s' is a directory, not a playlist file.\n"
+"\n"
+msgstr ""
+"'%s' es un directorio, no una lista de reproducción.\n"
+"\n"
+
+#: src/file.c:258
+#, c-format
+msgid ""
+"'%s' is a not a known playlist file.\n"
+"\n"
+msgstr ""
+"'%s' no es una lista de reproducción conocida.\n"
+"\n"
+
+#: src/file.c:275
+#, c-format
+msgid ""
+"Cannot open '%s' for reading.\n"
+"\n"
+msgstr ""
+"No se puede leer '%s'.\n"
+"\n"
+
+#: src/file.c:359
+#, c-format
+msgid "Skipping '%s' because it is a directory.\n"
+msgstr "Ignorando '%s' porque es un directorio.\n"
+
+#: src/file.c:364
+#, c-format
+msgid "Skipping '%s' to avoid adding playlist file recursively\n"
+msgstr ""
+"Ignorando '%s' para evitar añadir lista de reproducción recursivamente\n"
+
+#: src/file.c:619
+#, c-format
+msgid "Unknown token '%s' in template '%s'\n"
+msgstr "Testigo '%s' desconocido en la plantilla '%s'\n"
+
+#: src/file.c:871
+#, c-format
+msgid "Local filename not valid (%s)"
+msgstr "Nombre de fichero local no válido (%s)"
+
+#: src/file.c:930
+#, c-format
+msgid "No information found for user '%s' in '%s'"
+msgstr "No se ha encontrado información para el usuario '%s' en '%s'"
+
+#: src/file.c:939
+#, c-format
+msgid "mserv data file (%s) not available for track (%s)"
+msgstr "fichero de datos mserv (%s) no disponible para la pista (%s)"
+
+#: src/file.c:947
+#, c-format
+msgid "Track (%s) not in mserv music root directory (%s)"
+msgstr "La pista (%s) no está en el directorio raíz mserv (%s)"
+
+#: src/file.c:1055
+#, c-format
+msgid ""
+"The following track could not be processed (file does not exist): '%s'\n"
+msgstr ""
+"La siguiente pista no pudo ser procesada (no existe el fichero): '%s'\n"
+
+#: src/file.c:1118
+#, c-format
+msgid "The following track could not be processed (filetype unknown): '%s'\n"
+msgstr ""
+"La siguiente pista no pudo ser procesada (tipo de fichero desconocido): '%"
+"s'\n"
+
+#: src/file.c:1211
+#, c-format
+msgid ""
+"The following track could not be processed (filetype is known but analysis "
+"failed): '%s'\n"
+msgstr ""
+"La siguiente pista no pudo ser procesada (se ha reconocido el tipo de "
+"fichero, pero ha fallado el análisis): '%s'\n"
+
+#: src/file.c:1241 src/file.c:1295
+msgid "Nothing to update"
+msgstr "Nada que actualizar"
+
+#: src/file.c:1262
+#, c-format
+msgid "Updating %s"
+msgstr "Actualizando %s"
+
+#: src/file.c:1276
+msgid "Updated selected tracks with info from file."
+msgstr "Actualizadas las pistas seleccionadas con la información del fichero."
+
+#: src/file.c:1310
+#, c-format
+msgid "Retrieving mserv data %s"
+msgstr "Recibiendo datos mserv %s"
+
+#: src/file.c:1315
+msgid "no filename available"
+msgstr "Ningún nombre de fichero disponible"
+
+#: src/file.c:1320
+msgid "Updated selected tracks with data from mserv."
+msgstr "Actualizadas las pistas seleccionadas con la información de mserv"
+
+#: src/file.c:1341
+#, c-format
+msgid "The following track could not be updated"
+msgid_plural "The following %d tracks could not be updated"
+msgstr[0] "La siguiente pista no ha podido ser actualizada"
+msgstr[1] "Las siguientes %d pistas no han podido ser actualizadas"
+
+#. gint id,
+#. gboolean modal,
+#: src/file.c:1347
+msgid "Failed Track Update"
+msgstr "Error al actualizar la pista"
+
+#: src/file.c:1405
+#, c-format
+msgid "The following track has been updated"
+msgid_plural "The following %d tracks have been updated"
+msgstr[0] "La siguiente pista ha sido actualizada"
+msgstr[1] "Las siguientes pistas %d han sido actualizadas"
+
+#. gint id,
+#. gboolean modal,
+#: src/file.c:1411
+msgid "Successful Track Update"
+msgstr "Actualización exitosa de la pista"
+
+#: src/file.c:1470
+#, c-format
+msgid "No mserv information could be retrieved for the following track"
+msgid_plural ""
+"No mserv information could be retrieved for the following %d tracks"
+msgstr[0] "No se ha podido conseguir información mserv para la siguiente pista"
+msgstr[1] ""
+"No se ha podido conseguir información mserv para las siguientes %d pistas"
+
+#. gint id,
+#. gboolean modal,
+#: src/file.c:1476
+msgid "mserv data retrieval problem"
+msgstr "Problema al recoger datos mserv"
+
+#: src/file.c:1565
+msgid "no local filename available, file on the iPod will be used instead"
+msgstr ""
+"No está disponible el nombre local, se usará el nombre del iPod en su lugar"
+
+#: src/file.c:1571
+msgid "no local filename available and copy on iPod cannot be found"
+msgstr ""
+"No está disponible el nombre local y no se encuentra la copia en el iPod"
+
+#: src/file.c:1575 src/file.c:1593
+msgid "no local filename available"
+msgstr "No se encuentra disponible el nombre de fichero local"
+
+#: src/file.c:1583
+msgid "local file could not be found, file on the iPod will be used instead"
+msgstr ""
+"No se encuentra el fichero local, se usará el fichero del iPod en su lugar"
+
+#: src/file.c:1589
+msgid "local file as well as copy on the iPod cannot be found"
+msgstr "No se encuentran ni el fichero local ni la copia del iPod"
+
+#. update not successful -- log this track for later display
+#: src/file.c:1651
+msgid "update failed (format no supported?)"
+msgstr "Error al actualizar (¿formato no soportado?)"
+
+#: src/file.c:1734
+#, c-format
+msgid "Processing '%s'..."
+msgstr "Procesando '%s'..."
+
+#: src/file.c:1740
+#, c-format
+msgid "File skipped. match exclude masks: '%s'\n"
+msgstr ""
+
+#: src/file.c:1852 src/misc_track.c:1299 src/misc_track.c:1355
+#, c-format
+msgid ""
+"Podcast already present: '%s'\n"
+"\n"
+msgstr ""
+"Podcast ya almacenado: '%s'\n"
+"\n"
+
+#: src/file.c:1913
+#, c-format
+msgid ""
+"Writing to video files not yet supported (%s).\n"
+"\n"
+msgstr ""
+"Escribir a ficheros de video no está todavía soportado (%s). \n"
+"\n"
+
+#: src/file.c:1965 src/file.c:1979
+#, c-format
+msgid "Couldn't change tags of file: %s\n"
+msgstr "No se pueden modificar las etiquetas del fichero: %s\n"
+
+#: src/file.c:2076
+#, c-format
+msgid "Could not open '%s' for reading and writing.\n"
+msgstr "No se puede abrir '%s' para lectura escritura.\n"
+
+#: src/file.c:2083
+#, c-format
+msgid "Could not obtain lock on '%s'.\n"
+msgstr "No se pudo bloquear '%s'.\n"
+
+#. error!
+#: src/file.c:2100 src/file.c:2109 src/file.c:2120 src/file.c:2130
+#, c-format
+msgid "Malformed line in '%s': %s\n"
+msgstr "Linea incorrecta en '%s':%s\n"
+
+#. gint id,
+#. gboolean modal,
+#: src/file.c:2159
+#, fuzzy
+msgid "Remove offline playcounts?"
+msgstr "¿Borrar cuenta reproducciones no en linea?"
+
+#. title
+#: src/file.c:2160
+msgid ""
+"Some tracks played offline could not be found in the iTunesDB. Press 'OK' to "
+"remove them from the offline playcount file, 'Cancel' to keep them."
+msgstr ""
+"Algunas pistas reproducidas en modo desconectado no han sido encontradas en "
+"la base de datos de iTunes. Pulsa «Aceptar» para borrarlas del contador de "
+"modo desconectado, o «Cancelar» para mantenerlas."
+
+#: src/file.c:2177
+#, c-format
+msgid "Error writing to '%s'.\n"
+msgstr "Error al escribir a '%s'.\n"
+
+#: src/file.c:2232 src/tools.c:269
+#, c-format
+msgid ""
+"Normalization failed: file type not supported (%s).\n"
+"\n"
+msgstr ""
+"Error al normalizar: tipo de fichero no soportado (%s)\n"
+"\n"
+
+#: src/file.c:2248 src/tools.c:286
+#, c-format
+msgid ""
+"Normalization failed: file not available (%s).\n"
+"\n"
+msgstr ""
+"Error al normalizar: fichero no disponible (%s).\n"
+"\n"
+
+#: src/file_export.c:182
+#, c-format
+msgid "Skipping existing file with same length: '%s'\n"
+msgstr "Ignorando fichero existente con la misma longitud:'%s'\n"
+
+#: src/file_export.c:190
+#, c-format
+msgid "Overwriting existing file: '%s'\n"
+msgstr "Sobreescribiendo fichero:'%s'\n"
+
+#: src/file_export.c:207
+#, c-format
+msgid "Error copying '%s' to '%s': Permission Error (%s)\n"
+msgstr "Error al copiar '%s' a '%s': Error en los permisos (%s)\n"
+
+#: src/file_export.c:209
+#, c-format
+msgid "Error copying '%s' to '%s' (%s)\n"
+msgstr "Error copiando '%s' a '%s' (%s)\n"
+
+#: src/file_export.c:217
+#, c-format
+msgid "Unable to open '%s' for reading\n"
+msgstr "Imposible abrir '%s' para lectura\n"
+
+#: src/file_export.c:327
+#, c-format
+msgid "Could find file for '%s' on the iPod\n"
+msgstr "No se encuentra el fichero de '%s' en el iPod\n"
+
+#. create the dialog window
+#: src/file_export.c:395 src/file_itunesdb.c:1230 src/tools.c:359
+msgid "Information"
+msgstr "Información"
+
+#: src/file_export.c:406 src/tools.c:371
+msgid "Press button to abort."
+msgstr "Pulsar botón para cancelar."
+
+#: src/file_export.c:419
+msgid "copying..."
+msgstr "copiando..."
+
+#: src/file_export.c:472
+#, c-format
+msgid "Failed to write '%s-%s'\n"
+msgstr "Error al escribir '%s-%s'\n"
+
+#: src/file_export.c:485
+#, c-format
+msgid "Copied %d of %d track."
+msgid_plural "Copied %d of %d tracks."
+msgstr[0] "Copiada %d de %d pista."
+msgstr[1] "Copiadas %d de %d pistas."
+
+#: src/file_export.c:501 src/file_itunesdb.c:1495 src/tools.c:517
+#, c-format
+msgid "%d%% (%d:%02d:%02d left)"
+msgstr "%d%% (%d:%02d:%02d restantes)"
+
+#: src/file_export.c:510
+msgid "Some tracks were not copied."
+msgstr "Algunas pistas no han sido copiadas."
+
+#: src/file_export.c:575
+msgid "Export from iPod database not possible in offline mode."
+msgstr ""
+"Exportar de la base de datos iPod no es posible en el modo desconectado."
+
+#: src/file_export.c:583
+msgid "Select Export Destination Directory"
+msgstr "Seleccionar directorio de destino de la exportación"
+
+#: src/file_export.c:732
+msgid "Drag from iPod database not possible in offline mode."
+msgstr ""
+"Arrastrar de la base de datos iPod no es posible en el modo desconectado."
+
+#: src/file_export.c:766
+msgid "The following tracks have to be copied to your harddisk"
+msgstr "Las siguientes pistas serán copiadas al disco duro."
+
+#: src/file_export.c:811
+msgid ""
+"Some tracks were not copied to your harddisk. Only the copied tracks will be "
+"included in the current drag and drop operation.\n"
+"\n"
+msgstr ""
+"Algunas pistas no fueron copiadas al disco duro. Solo las pistas copiadas "
+"serán incluidas en la actual operación de arrastrar y soltar.\n"
+"\n"
+
+#: src/file_export.c:1006
+#, c-format
+msgid ""
+"No valid filename for: %s\n"
+"\n"
+msgstr ""
+"Ningún nombre de fichero valido para:%s\n"
+"\n"
+
+#: src/file_export.c:1022
+#, c-format
+msgid "Created playlist with one track."
+msgid_plural "Created playlist with %d tracks."
+msgstr[0] "Creada lista de reproducción con una pista."
+msgstr[1] "Creada lista de reproducción con %d pistas."
+
+#: src/file_export.c:1027
+#, c-format
+msgid ""
+"Could not open '%s' for writing (%s).\n"
+"\n"
+msgstr ""
+"No se puede abrir '%s' para escritura (%s).\n"
+"\n"
+
+#: src/file_itunesdb.c:115
+#, c-format
+msgid "Matching MD5 checksum for file %d/%d"
+msgstr ""
+"Buscando concordancias de la suma de comprobación MD5 para el fichero %d/%d"
+
+#: src/file_itunesdb.c:223
+msgid "Could not open \"iTunesDB.ext\" for reading extended info.\n"
+msgstr "No se puede abrir \"iTunesDB.ext\" para leer información extendida.\n"
+
+#: src/file_itunesdb.c:230
+msgid "Could not create hash value from itunesdb\n"
+msgstr "No se puede crear valor de resumen (hash) de la base de datos iTunes\n"
+
+#: src/file_itunesdb.c:244
+#, c-format
+msgid "Error while reading extended info: %s\n"
+msgstr "Error al leer la información extendida: %s\n"
+
+#: src/file_itunesdb.c:261
+#, c-format
+msgid ""
+"iTunesDB '%s' does not match checksum in extended information file '%s'\n"
+"gtkpod will try to match the information using MD5 checksums. This may take "
+"a long time.\n"
+"\n"
+msgstr ""
+"La suma de comprobación de la base de datos iTunes '%s' no concuerda con la "
+"del fichero de información extendida '%s'\n"
+"gtkpod intentará comprobar la información usando sumas de comprobación MD5. "
+"Esto puede durar bastante tiempo.\n"
+"\n"
+
+#: src/file_itunesdb.c:273
+#, c-format
+msgid ""
+"%s:\n"
+"Expected \"itunesdb_hash=\" but got:\"%s\"\n"
+msgstr ""
+"%s:\n"
+"Esperado \"itunesdb_hash=\" , pero encontrado:\"%s\"\n"
+
+#: src/file_itunesdb.c:333
+#, c-format
+msgid ""
+"%s:\n"
+"Format error: %s\n"
+msgstr ""
+"%s:\n"
+"Error de formato: %s\n"
+
+#: src/file_itunesdb.c:377
+msgid ""
+"No MD5 checksums on individual tracks are available.\n"
+"\n"
+"To avoid this situation in the future either switch on duplicate detection "
+"(will provide MD5 checksums) or avoid using the iPod with programs other "
+"than gtkpod.\n"
+"\n"
+msgstr ""
+"No hay disponibles sumas de comprobación (checksums) de pistas "
+"individuales.\n"
+"\n"
+"Para evitar esta situación en el futuro activar la detección de duplicados "
+"(generará sumas de comprobación MD5) o evitar usar el iPod con otros "
+"programas que no sean gtkpod.\n"
+"\n"
+
+#: src/file_itunesdb.c:439
+msgid ""
+"Extended info will not be used. If you have non-transferred tracks,\n"
+"these will be lost.\n"
+msgstr ""
+"La información extendida no será usada. Las pistas no transferidas serán "
+"perdidas.\n"
+
+#: src/file_itunesdb.c:447
+msgid "Offline iPod database successfully imported"
+msgstr "Base de datos del iPod en modo desconectado importada con éxito."
+
+#: src/file_itunesdb.c:450
+msgid "Local database successfully imported"
+msgstr "Base de datos local importada con éxito."
+
+#: src/file_itunesdb.c:458
+#, c-format
+msgid ""
+"Offline iPod database import failed: '%s'\n"
+"\n"
+msgstr ""
+"Error en la importación de la base de datos del iPod en modo desconectado: '%"
+"s'\n"
+"\n"
+
+#: src/file_itunesdb.c:462
+#, c-format
+msgid ""
+"Local database import failed: '%s'\n"
+"\n"
+msgstr ""
+"Error en la importación de la base de datos local: '%s'\n"
+"\n"
+
+#: src/file_itunesdb.c:469
+msgid ""
+"Offline iPod database import failed: \n"
+"\n"
+msgstr ""
+"Error en la importación de la base de datos del iPod en modo desconectado:\n"
+"\n"
+
+#: src/file_itunesdb.c:472
+msgid ""
+"Local database import failed: \n"
+"\n"
+msgstr ""
+"Error en la importación de la base de datos local:\n"
+"\n"
+
+#: src/file_itunesdb.c:479
+#, c-format
+msgid ""
+"'%s' does not exist. Import aborted.\n"
+"\n"
+msgstr ""
+"'%s' no existe. Importación cancelada.\n"
+"\n"
+
+#: src/file_itunesdb.c:502
+msgid "Extended info will not be used.\n"
+msgstr "La información extendida no será usada.\n"
+
+#: src/file_itunesdb.c:509
+msgid "iPod Database Successfully Imported"
+msgstr "Base de datos del iPod importada con éxito"
+
+#: src/file_itunesdb.c:516
+#, c-format
+msgid ""
+"iPod Database Import Failed: '%s'\n"
+"\n"
+msgstr ""
+"Error en la importación de la base de datos del iPod:'%s'\n"
+"\n"
+
+#: src/file_itunesdb.c:522
+msgid ""
+"iPod Database Import Failed.\n"
+"\n"
+msgstr ""
+"Error en la importación de la base de datos del iPod.\n"
+"\n"
+
+#: src/file_itunesdb.c:531
+#, c-format
+msgid ""
+"'%s' (or similar) does not exist. Import aborted.\n"
+"\n"
+msgstr ""
+"'%s' (o similar) no existe. Importación cancelada.\n"
+"\n"
+
+#: src/file_itunesdb.c:817
+#, c-format
+msgid ""
+"Could not find iPod directory structure at '%s'.\n"
+"If you are sure that the iPod is properly mounted at '%s', gtkpod can create "
+"the directory structure for you.\n"
+"\n"
+"Do you want to create the directory structure now?\n"
+msgstr ""
+"No se ha encontrado la estructura del iPod en '%s'.\n"
+"Si estás seguro que el iPod está montado correctamente en '%s', gtkpod puede "
+"crear la esctructura de directorios para ti.\n"
+"\n"
+"¿Quieres crear la estructura de directorios ahora?\n"
+
+#: src/file_itunesdb.c:1071
+#, c-format
+msgid "Could not open \"%s\" for writing extended info.\n"
+msgstr "No es posible abrir \"%s\" para escribir la información extendida.\n"
+
+#: src/file_itunesdb.c:1086
+msgid "Aborted writing of extended info.\n"
+msgstr "Cancelada la escritura de la información extendida.\n"
+
+#: src/file_itunesdb.c:1241
+msgid ""
+"Press button to abort.\n"
+"Export can be continued at a later time."
+msgstr ""
+"Pulsar boton para cancelar.\n"
+"La exportación podrá continuar más tarde."
+
+#: src/file_itunesdb.c:1310
+msgid "deleting..."
+msgstr "borrando..."
+
+#: src/file_itunesdb.c:1413
+msgid "preparing to copy..."
+msgstr "preparandose para copiar..."
+
+#: src/file_itunesdb.c:1480
+#, c-format
+msgid "Copied %d of %d new track."
+msgid_plural "Copied %d of %d new tracks."
+msgstr[0] "Copiada %d de %d nueva pista."
+msgstr[1] "Copiadas %d de %d nuevas pistas."
+
+#: src/file_itunesdb.c:1506
+msgid "Some tracks were not written to iPod. Export aborted!"
+msgstr ""
+"Algunas pistas no han sido escritas en el iPod. ¡Cancelada la exportación!"
+
+#: src/file_itunesdb.c:1557
+#, c-format
+msgid ""
+"You did not import the existing iTunesDB ('%s'). This is most likely "
+"incorrect and will result in the loss of the existing database.\n"
+"\n"
+"Press 'OK' if you want to proceed anyhow or 'Cancel' to skip storing. If you "
+"cancel, you can import the existing database before calling this function "
+"again.\n"
+msgstr ""
+"La base de datos iTunes ('%s') no ha sido importada. Esto no es correcto y "
+"puede ocasionar la pérdida de la base de datos actual.\n"
+"\n"
+"Pulsar «Aceptar» para continuar o «Cancelar» para detener la copia. Si se "
+"cancela, se podrá importar la base de datos iTunes antes de usar de nuevo "
+"esta función.\n"
+
+#: src/file_itunesdb.c:1588
+msgid ""
+"iPod directory structure must be present before synching to the iPod can be "
+"performed.\n"
+msgstr ""
+"La estructura de directorios del iPod debe estar creada antes de que se "
+"pueda sincronizar con el iPod.\n"
+
+#: src/file_itunesdb.c:1597
+msgid "Some tracks could not be deleted from the iPod. Export aborted!"
+msgstr ""
+"No ha sido posible borrar algunas pistas del iPod. ¡La exportación ha sido "
+"cancelada!"
+
+#: src/file_itunesdb.c:1613
+msgid "Now writing database. Please wait..."
+msgstr "Escribiendo la base de datos. Espere, por favor."
+
+#: src/file_itunesdb.c:1659
+#, c-format
+msgid "Extended information file not deleted: '%s'"
+msgstr "El fichero de información extendida '%s' no ha sido borrado."
+
+#: src/file_itunesdb.c:1745
+#, c-format
+msgid "%s: Database saved"
+msgstr "Guardada la base de datos: %s"
+
+#: src/file_itunesdb.c:1749
+#, c-format
+msgid "%s: Changes saved"
+msgstr "%s: Cambios guardados"
+
+#: src/fileselection.c:127
+msgid "Successfully added files"
+msgstr "Ficheros añadidos con éxito."
+
+#: src/fileselection.c:129
+msgid "Some files were not added successfully"
+msgstr "Algunos ficheros no han sido añadidos con exito"
+
+#. Create the file chooser, and handle the response
+#: src/fileselection.c:157
+msgid "Add Files"
+msgstr "Añadir ficheros"
+
+#. Create the file chooser, and handle the response
+#: src/fileselection.c:250
+msgid "Add Playlists"
+msgstr "Añadir listas de reproducción"
+
+#. Create the file chooser, and handle the response
+#: src/fileselection.c:297
+msgid "Set Cover"
+msgstr "Configurar portada"
+
+#: src/fileselection.c:718
+msgid "Select directory to add recursively"
+msgstr "Seleccionar directorio para añadir recursivamente"
+
+#: src/fileselection.c:989
+msgid "Ok"
+msgstr "Aceptar"
+
+#: src/fileselection.c:998
+msgid "Cancel"
+msgstr "Cancelar"
+
+#: src/getopt.c:681
+#, c-format
+msgid "%s: option `%s' is ambiguous\n"
+msgstr "%s: la opción `%s' es ambigua\n"
+
+#: src/getopt.c:706
+#, c-format
+msgid "%s: option `--%s' doesn't allow an argument\n"
+msgstr "%s: la opción `--%s' no permite un argumento\n"
+
+#: src/getopt.c:711
+#, c-format
+msgid "%s: option `%c%s' doesn't allow an argument\n"
+msgstr "%s: la opción `%c%s' no permite un argumento\n"
+
+#: src/getopt.c:729 src/getopt.c:902
+#, c-format
+msgid "%s: option `%s' requires an argument\n"
+msgstr "%s: la opción `%s' necesita un argumento\n"
+
+#. --option
+#: src/getopt.c:758
+#, c-format
+msgid "%s: unrecognized option `--%s'\n"
+msgstr "%s: opción desconocida `--%s'\n"
+
+#. +option or -option
+#: src/getopt.c:762
+#, c-format
+msgid "%s: unrecognized option `%c%s'\n"
+msgstr "%s: opción desconocida `%c%s'\n"
+
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:788
+#, c-format
+msgid "%s: illegal option -- %c\n"
+msgstr "%s: opción no permitida -- %c\n"
+
+#: src/getopt.c:791
+#, c-format
+msgid "%s: invalid option -- %c\n"
+msgstr "%s: opción no válida -- %c\n"
+
+#. 1003.2 specifies the format of this message.
+#: src/getopt.c:821 src/getopt.c:951
+#, c-format
+msgid "%s: option requires an argument -- %c\n"
+msgstr "%s: la opción necesita un argumento -- %c\n"
+
+#: src/getopt.c:868
+#, c-format
+msgid "%s: option `-W %s' is ambiguous\n"
+msgstr "%s: la opción `-W %s' es ambigua \n"
+
+#: src/getopt.c:886
+#, c-format
+msgid "%s: option `-W %s' doesn't allow an argument\n"
+msgstr "%s: la opción `-W %s' no permite un argumento\n"
+
+#: src/info.c:383
+msgid "n/c"
+msgstr "n/c"
+
+#: src/info.c:388 src/info.c:835
+msgid "offline"
+msgstr "modo desconectado"
+
+#: src/info.c:483
+#, c-format
+msgid " P:%d T:%d/%d"
+msgstr " P:%d T:%d/%d"
+
+#: src/info.c:777
+msgid "B"
+msgstr "B"
+
+#: src/info.c:777
+msgid "kB"
+msgstr "KiB"
+
+#: src/info.c:777
+msgid "TB"
+msgstr "TiB"
+
+#: src/info.c:820
+#, c-format
+msgid " %s Free"
+msgstr " %s Libre"
+
+#: src/info.c:825
+#, c-format
+msgid " %s Pending"
+msgstr " %s Pendiente"
+
+#: src/info.c:830
+msgid " disconnected"
+msgstr " desconectado"
+
+#: src/info.c:881
+msgid "No database or playlist selected"
+msgstr "No se ha seleccionado ninguna base de datos o lista de reproducción"
+
+#: src/info.c:886
+msgid "No tracks selected"
+msgstr "No se ha seleccionado ninguna pista"
+
+#: src/info.c:891
+msgid "No playlist selected"
+msgstr "No se ha seleccionado ninguna lista de reproducción"
+
+#: src/info.c:896
+msgid "No iPod or iPod playlist selected"
+msgstr "No se ha seleccionado ningún iPod o lista de reproducción del iPod."
+
+#: src/md5.c:187
+msgid "Hashed file is 0 bytes long\n"
+msgstr "El fichero de resumen tiene una longitud de 0 bytes\n"
+
+#: src/md5.c:240
+#, c-format
+msgid "Could not open '%s' to calculate MD5 checksum: %s\n"
+msgstr "No se puede abrir '%s' para calcuar la suma de comprobación MD5: %s\n"
+
+#: src/misc.c:79
+#, c-format
+msgid ""
+"gtkpod Version %s: Cross-Platform Multi-Lingual Interface to Apple's iPod"
+"(tm)."
+msgstr ""
+"gtkpod versión %s: Interfaz multi-plataforma y multi-idioma para iPods Apple."
+
+#: src/misc.c:83
+msgid ""
+"(C) 2002 - 2005\n"
+"Jorg Schuler (jcsjcs at users dot sourceforge dot net)\n"
+"Corey Donohoe (atmos at atmos dot org)\n"
+"\n"
+"\n"
+msgstr ""
+"(C) 2002 - 2005\n"
+"Jorg Schuler (jcsjcs en users punto sourceforge punto net)\n"
+"Corey Donohoe (atmos en atmos punto org)\n"
+"\n"
+"\n"
+
+#: src/misc.c:89
+msgid ""
+"This program is free software; you can redistribute it and/or modify it "
+"under the terms of the GNU General Public License as published by the Free "
+"Software Foundation; either version 2 of the License, or (at your option) "
+"any later version.\n"
+"\n"
+"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.\n"
+"\n"
+"You should have received a copy of the GNU General Public License along with "
+"this program; if not, write to the Free Software Foundation, Inc., 59 Temple "
+"Place, Suite 330, Boston, MA 02111-1307, USA.\n"
+"\n"
+"\n"
+msgstr ""
+"Este programa es software libre. Puede redistribuirlo y/o modificarlo bajo "
+"los términos de la Licencia Pública General de GNU según es publicada por la "
+"Free Software Foundation, bien de la versión 2 de dicha Licencia o bien "
+"(según su elección) de cualquier versión posterior.\n"
+"\n"
+"Este programa se distribuye con la esperanza de que sea útil, pero SIN "
+"NINGUNA GARANTÍA, incluso sin la garantía MERCANTIL implícita o sin "
+"garantizar la CONVENIENCIA PARA UN PROPÓSITO PARTICULAR. Véase la Licencia "
+"Pública General de GNU para más detalles.\n"
+"\n"
+"Debería haber recibido una copia de la Licencia Pública General junto con "
+"este programa. Si no ha sido así, escriba a la Free Software Foundation, "
+"Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.\n"
+"\n"
+"\n"
+
+#: src/misc.c:97
+msgid ""
+"Patches were supplied by the following people (list may be incomplete -- "
+"please contact me)\n"
+"\n"
+msgstr ""
+"Los parches fueron proveídos por: (la lista puede estar incompleta-- por "
+"favor, contactar conmigo)\n"
+"\n"
+
+#: src/misc.c:99
+msgid "Ramesh Dharan: Multi-Edit (edit tags of several tracks in one run)\n"
+msgstr ""
+"Ramesh Dharan: Multi-Edición (editar etiquetas de varias pistas al al vez)\n"
+
+#: src/misc.c:101
+msgid "Hiroshi Kawashima: Japanese charset autodetecion feature\n"
+msgstr ""
+"Hiroshi Kawashima: Función de autodetección del juego de caracteres "
+"japonés.\n"
+
+#: src/misc.c:103
+msgid "Adrian Ulrich: porting of playlist code from mktunes.pl to itunesdb.c\n"
+msgstr ""
+"Adrian Ulrich: paso del código de las listas de reproducción de mktunes.pl a "
+"itunesdb.c\n"
+
+#: src/misc.c:105
+msgid ""
+"Walter Bell: correct handling of DND URIs with escaped characters and/or cr/"
+"newlines at the end\n"
+msgstr ""
+"Walter Bell: manejo correcto de URIs DND con la presencia de \"caracteres de "
+"escape\" y/o \"cr/nueva linea\" al final\n"
+
+#: src/misc.c:107
+msgid "Sam Clegg: user defined filenames when exporting tracks from the iPod\n"
+msgstr ""
+"Sam Clegg: Nombre de ficheros definidos por el usuario al exportar pistas "
+"desde el iPod\n"
+
+#: src/misc.c:109
+msgid "Chris Cutler: automatic creation of various playlist types\n"
+msgstr ""
+"Chris Cutler: creación automática de varios tipos de listas de reproducción\n"
+
+#: src/misc.c:111
+msgid ""
+"Graeme Wilford: reading and writing of the 'Composer' ID3 tags, progress "
+"dialogue during sync\n"
+msgstr ""
+"Graeme Wilford: lectura y escritura del compositor de etiquetas  ID3, "
+"diálogo de progreso durante la sincronización\n"
+
+#: src/misc.c:113
+msgid ""
+"Edward Matteucci: debugging, special playlist creation, most of the volume "
+"normalizing code\n"
+msgstr ""
+"Edward Matteucci: depuración, creación de listas de reproducción especiales, "
+"mayor parte del código de normalización del volumen\n"
+
+#: src/misc.c:115
+msgid "Jens Lautenbach: some optical improvements\n"
+msgstr "Jens Lautenbach: algunas mejoras visuales\n"
+
+#: src/misc.c:117
+msgid "Alex Tribble: iPod eject patch\n"
+msgstr "Alex Tribble: parche de expulsion del iPod mediante \"eject\"\n"
+
+#: src/misc.c:119
+msgid "Yaroslav Halchenko: Orphaned and dangling tracks handling\n"
+msgstr "Yaroslav Halchenko: manejo de pistas en estado huérfano y pendiente\n"
+
+#: src/misc.c:121
+msgid ""
+"Andrew Huntwork: Filename case sensitivity fix and various other bugfixes\n"
+msgstr ""
+"Andrew Huntwork: Corrección de la distinción de mayúsculas y minúsculas en "
+"los nombres de fichero y otras correcciones varias\n"
+
+#: src/misc.c:123
+msgid ""
+"Ero Carrera: Filename validation and quick sync when copying tracks from the "
+"iPod\n"
+msgstr ""
+"Ero Carrera: Validación de los nombres de fichero y sincronización rápida al "
+"copiar pistas desde el iPod\n"
+
+#: src/misc.c:125
+msgid "Jens Taprogge: Support for LAME's replay gain tag to normalize volume\n"
+msgstr ""
+"Jens Taprogge: Soporte de la etiqueta de reproducción de ganancia de LAME "
+"para normalizar el volumen\n"
+
+#: src/misc.c:127
+msgid "Armando Atienza: Support with external playcounts\n"
+msgstr "Armando Atienza: Soporte para contadores externos\n"
+
+#: src/misc.c:129
+msgid "D.L. Sharp: Support for m4b files (bookmarkable AAC files)\n"
+msgstr "D.L. Sharp: Soporte para ficheros m4b (audio libros AAC )\n"
+
+#: src/misc.c:131
+msgid "Jim Hall: Decent INSTALL file\n"
+msgstr "Jim Hall: Fichero INSTALL decente\n"
+
+#: src/misc.c:133
+msgid ""
+"Juergen Helmers, Markus Gaugusch: Conversion scripts to sync calendar/"
+"contacts to the iPod\n"
+msgstr ""
+"Juergen Helmers, Markus Gaugusch: guiones de conversión para sincronizar "
+"calendario/contactos al iPod\n"
+
+#. J"urgen!
+#: src/misc.c:135
+msgid "Flavio Stanchina: bugfixes\n"
+msgstr "Flavio Stanchina: corrección de errores\n"
+
+#: src/misc.c:137
+msgid ""
+"Chris Micacchi: when sorting ignore 'the' and similar at the beginning of "
+"the title\n"
+msgstr ""
+"Chris Micacchi: Ignorar artículos al principio de los títulos al ordenar\n"
+
+#: src/misc.c:139
+msgid "Steve Jay: use statvfs() instead of df (better portability, faster)\n"
+msgstr ""
+"Steve Jay: uso de statvfs() en vez de df (mejor portabilidad, más rápido)\n"
+
+#: src/misc.c:142
+msgid ""
+"Christoph Kunz: address compatibility issues when writing id3v2.4 type mp3 "
+"tags\n"
+msgstr ""
+"Christoph Kunz: resolución de los problemas de compatibilidad en la "
+"escritura de la etiquetas de tipo mp3 id3v2.4\n"
+
+#: src/misc.c:145
+msgid ""
+"James Liggett:\n"
+"     replacement of old GTK file selection dialogs with new GTK filechooser "
+"dialogs\n"
+"     refactored user preferences system.\n"
+msgstr ""
+"James Liggett:\n"
+"      reemplazo de los antiguos diálogos GTK de selección de ficheros por "
+"los nuevos GTK\n"
+"     rehecho el sistema de preferencias del usuario.\n"
+
+#: src/misc.c:150
+msgid "Daniel Kercher: sync scripts for abook and webcalendar\n"
+msgstr "Daniel Kercher: guiones de sincronización para abook y webcalendar\n"
+
+#: src/misc.c:153
+msgid "Clinton Gormley: sync scripts for thunderbird\n"
+msgstr "Clinton Gormley: guión de sincronización para thunderbird\n"
+
+#: src/misc.c:156
+msgid "Sebastien Beridot: sync script for ldif addressbook format\n"
+msgstr ""
+"Sebastien Beridot: guión de sincronización para formato de contactos ldif\n"
+
+#: src/misc.c:159
+msgid "Sebastian Scherer: sync script for kNotes\n"
+msgstr "Sebastian Scherer: guión de sincronización para kNotes\n"
+
+#: src/misc.c:162
+msgid "Nick Piper: sync script for Palm, type-ahead search\n"
+msgstr "Nick Piper: guión de sincronización para Palm, búsqueda type-ahead\n"
+
+#: src/misc.c:165
+msgid "Uwe Hermann: help with support for iPod Video\n"
+msgstr "Uwe Hermann: ayuda con el soporte para el iPod Video\n"
+
+#: src/misc.c:168
+msgid ""
+"Iain Benson: support for compilation tag in mp3 files and separate display "
+"of compilations in the sort tab.\n"
+msgstr ""
+"Iain Benson: soporte para compilar etiquetas en ficheros mp3 y visualización "
+"separada de las compilaciones en las pestañas.\n"
+
+#: src/misc.c:170
+msgid ""
+"Nicolas Chariot: icons of buttons\n"
+"\n"
+"\n"
+msgstr ""
+"Nicolas Chariot: botones de los iconos\n"
+"\n"
+"\n"
+
+#: src/misc.c:174
+msgid "This program borrows code from the following projects:\n"
+msgstr "Este programa usa código de los siguientes proyectos:\n"
+
+#: src/misc.c:176
+msgid ""
+"    gnutools: (mktunes.pl, ported to C) reading and writing of iTunesDB "
+"(http://www.gnu.org/software/gnupod/)\n"
+msgstr ""
+"    gnutools: (mktunes.pl, portado a C) lectura y escritura de la base de "
+"datos iTunes (http://www.gnu.org/software/gnupod/)\n"
+
+#: src/misc.c:178
+msgid ""
+"    iPod.cpp, iPod.h by Samuel Wood (sam dot wood at gmail dot com): some "
+"code for smart playlists is based on his C++-classes.\n"
+msgstr ""
+"    iPod.cpp, iPod.h de Samuel Wood (sam punto wood en gmail punto com): "
+"parte del código de las listas de reproducción inteligentes está basado en "
+"sus clases C++.\n"
+
+#: src/misc.c:180
+msgid "    mp3info:  mp3 playlength detection (http://ibiblio.org/mp3info/)\n"
+msgstr ""
+"    mp3info:  detección de la duración de los mp3 (http://ibiblio.org/"
+"mp3info/)\n"
+
+#: src/misc.c:182
+msgid ""
+"    xmms:     dirbrowser, mp3 playlength detection (http://www.xmms.org)\n"
+msgstr ""
+"    xmms:     exploración de directorios, detección de la duración de los "
+"mp3 (http://www.xmms.org)\n"
+
+#: src/misc.c:185
+msgid ""
+"The GUI was created with the help of glade-2 (http://glade.gnome.org/).\n"
+msgstr ""
+"El interfaz gráfico ha sido creado con la ayuda de glade-2 (http://glade."
+"gnome.org/).\n"
+
+#: src/misc.c:200
+msgid "French:   David Le Brun (david at dyn-ns dot net)\n"
+msgstr "Francés:   David Le Brun (david en dyn-ns punto net)\n"
+
+#: src/misc.c:202
+msgid "German:   Jorg Schuler (jcsjcs at users dot sourceforge dot net)\n"
+msgstr "Alemán:   Jorg Schuler (jcsjcs en users punto sourceforge punto net)\n"
+
+#: src/misc.c:204
+msgid "Hebrew: Assaf Gillat (gillata at gmail dot com)\n"
+msgstr "Hebreo: Assaf Gillat (gillata en gmail punto com)\n"
+
+#: src/misc.c:206
+msgid ""
+"Italian:  Edward Matteucci (edward_matteucc at users dot sourceforge dot "
+"net)\n"
+msgstr ""
+"Italiano:  Edward Matteucci (edward_matteucc en users punto sourceforge "
+"punto net)\n"
+
+#: src/misc.c:208
+msgid "Japanese: Ayako Sano\n"
+msgstr "Japonés: Ayako Sano\n"
+
+#: src/misc.c:210
+msgid "Japanese: Kentaro Fukuchi (fukuchi at users dot sourceforge dot net)\n"
+msgstr ""
+"Japonés: Kentaro Fukuchi (fukuchi en users punto sourceforge punto net)\n"
+
+#: src/misc.c:212
+msgid "Swedish: Stefan Asserhall (stefan asserhall at comhem dot se)\n"
+msgstr "Sueco: Stefan Asserhall (stefan asserhall en comhem punto se)\n"
+
+#: src/misc.c:936
+#, c-format
+msgid "Could not process '%s' (no filename available)"
+msgstr "No se puede procesar '%s' (ningún nombre de fichero disponible)"
+
+#: src/misc.c:1084
+#, c-format
+msgid "Unknown token '%%%c' in template '%s'"
+msgstr "Testigo desconocido '%%%c' en la plantilla '%s'"
+
+#: src/misc.c:1166
+#, c-format
+msgid "Template ('%s') does not match file type '%s'\n"
+msgstr "La plantilla ('%s') no concuerda con el tipo de fichero '%s'\n"
+
+#: src/misc.c:1247
+#, c-format
+msgid "Error creating %s: %s\n"
+msgstr "Error al crear %s: %s\n"
+
+#. gint id,
+#. gboolean modal,
+#: src/misc_confirm.c:71
+msgid "Warning"
+msgstr "Atención"
+
+#. title
+#: src/misc_confirm.c:72
+msgid "The following has occured:"
+msgstr "Se ha producido un error:"
+
+#: src/misc_confirm.c:123
+msgid ""
+"Are you sure you want to delete the following track completely from your "
+"iPod? The number of playlists this track is a member of is indicated in "
+"parentheses."
+msgid_plural ""
+"Are you sure you want to delete the following tracks completely from your "
+"iPod? The number of playlists the tracks are member of is indicated in "
+"parentheses."
+msgstr[0] ""
+"¿Desea realmente borrar la siguiente pista del iPod? El número de listas de "
+"reproducción a las que pertenece esta pista está indicado entre paréntesis."
+msgstr[1] ""
+"¿Desea realmente borrar las siguientes pistas del iPod? El número de listas "
+"de reproducción a las que pertenecen estas pistas está indicado entre "
+"paréntesis."
+
+#: src/misc_confirm.c:127
+msgid "Delete Track Completely from iPod?"
+msgid_plural "Delete Tracks Completey from iPod?"
+msgstr[0] "¿Borrar por completo la pista del iPod?"
+msgstr[1] "¿Borrar por completo las pistas del iPod?"
+
+#: src/misc_confirm.c:138 src/misc_confirm.c:179
+#, c-format
+msgid ""
+"Are you sure you want to remove the following track from the playlist \"%s\"?"
+msgid_plural ""
+"Are you sure you want to remove the following tracks from the playlist \"%s"
+"\"?"
+msgstr[0] ""
+"¿Desea realmente borrar la siguiente pista de la lista de reproducción \"%s"
+"\"?"
+msgstr[1] ""
+"¿Desea realmente borrar las siguientes pistas de la lista de reproducción \"%"
+"s\"?"
+
+#: src/misc_confirm.c:142 src/misc_confirm.c:183
+msgid "Remove Track From Playlist?"
+msgid_plural "Remove Tracks From Playlist?"
+msgstr[0] "¿Borrar la pista de la lista de reproducción?"
+msgstr[1] "¿Borrar las pistas de la lista de reproducción?"
+
+#: src/misc_confirm.c:164
+msgid ""
+"Are you sure you want to delete the following track completely from your "
+"harddisk? The number of playlists this track is a member of is indicated in "
+"parentheses."
+msgid_plural ""
+"Are you sure you want to delete the following tracks completely from your "
+"harddisk? The number of playlists the tracks are member of is indicated in "
+"parentheses."
+msgstr[0] ""
+"¿Desea realmente borrar la siguiente pista del disco duro? El número de "
+"listas de reproducción a las que pertenece esta pista está indicado entre "
+"paréntesis."
+msgstr[1] ""
+"¿Desea realmente borrar las siguientes pistas del disco duro? El número de "
+"listas de reproducción a las que pertenecen estas pistas está indicado entre "
+"paréntesis."
+
+#: src/misc_confirm.c:168
+msgid "Delete Track from Harddisk?"
+msgid_plural "Delete Tracks from Harddisk?"
+msgstr[0] "¿Borrar la pista del disco duro?"
+msgstr[1] "¿Borrar las pistas del disco duro?"
+
+#: src/misc_confirm.c:193
+msgid ""
+"Are you sure you want to remove the following track completely from your "
+"local database? The number of playlists this track is a member of is "
+"indicated in parentheses."
+msgid_plural ""
+"Are you sure you want to remove the following tracks completely from your "
+"local database? The number of playlists the tracks are member of is "
+"indicated in parentheses."
+msgstr[0] ""
+"¿Desea realmente borrar la siguiente pista de la base de datos local? El "
+"número de listas de reproducción a las que pertenece esta pista está "
+"indicado entre paréntesis."
+msgstr[1] ""
+"¿Desea realmente borrar las siguientes pistas de la base de datos local? El "
+"número de listas de reproducción a las que pertenecen estas pistas está "
+"indicado entre paréntesis."
+
+#: src/misc_confirm.c:197
+msgid "Remove Track from Local Database?"
+msgid_plural "Remove Tracks from Local Database?"
+msgstr[0] "¿Borrar la pista de la base de datos local?"
+msgstr[1] "¿Borrar las pistas de la base de datos local?"
+
+#: src/misc_confirm.c:259
+#, c-format
+msgid "Deleted one track completely from iPod"
+msgid_plural "Deleted %d tracks completely from iPod"
+msgstr[0] "Una pista ha sido borrada por completo del iPod"
+msgstr[1] "%d pistas han sido borradas por completo del iPod"
+
+#: src/misc_confirm.c:265 src/misc_confirm.c:289
+#, c-format
+msgid "Deleted %d track from playlist '%s'"
+msgid_plural "Deleted %d tracks from playlist '%s'"
+msgstr[0] "%d pista ha sido borrada de la lista de reproducción '%s'"
+msgstr[1] "%d pistas han sido borradas de la lista de reproducción '%s'"
+
+#: src/misc_confirm.c:283
+#, c-format
+msgid "Deleted one track from harddisk"
+msgid_plural "Deleted %d tracks from harddisk"
+msgstr[0] "Una pista ha sido borrada del disco duro"
+msgstr[1] "%d pistas han sido borradas del disco duro"
+
+#: src/misc_confirm.c:295
+#, c-format
+msgid "Deleted track from local database"
+msgid_plural "Deleted %d tracks from local database"
+msgstr[0] "Una pista ha sido borrada de la base de datos local"
+msgstr[1] "%d pistas han sido borradas de la base de datos local"
+
+#: src/misc_confirm.c:438
+msgid "Cannot remove entry 'All'"
+msgstr "No se puede borrar la entrada 'Todo'"
+
+#: src/misc_confirm.c:532
+#, c-format
+msgid "Removed all %d tracks from the iPod"
+msgstr "Todas las %d pistas han sido borradas del iPod"
+
+#: src/misc_confirm.c:537
+msgid "Removed all podcasts from the iPod"
+msgstr "Todos los podcasts han sido borrados del iPod"
+
+#: src/misc_confirm.c:546 src/misc_confirm.c:620
+#, c-format
+msgid "Deleted playlist '%s' including %d member track"
+msgid_plural "Deleted playlist '%s' including %d member tracks"
+msgstr[0] "Borrada la lista de reproducción '%s' conteniendo %d pista"
+msgstr[1] "Borrada la lista de reproducción '%s' conteniendo %d pistas"
+
+#. first use playlist name
+#: src/misc_confirm.c:562 src/misc_confirm.c:636
+#, c-format
+msgid "Deleted playlist '%s'"
+msgstr "Borrada la lista de reproducción '%s'"
+
+#: src/misc_confirm.c:596
+#, c-format
+msgid "Deleted playlist '%s' including %d member track on harddisk"
+msgid_plural "Deleted playlist '%s' including %d member tracks on harddisk"
+msgstr[0] ""
+"Borrada la lista de reproducción '%s' conteniendo %d pista en el disco duro"
+msgstr[1] ""
+"Borrada la lista de reproducción '%s' conteniendo %d pistas en el disco duro"
+
+#: src/misc_confirm.c:613
+#, c-format
+msgid "Removed all %d tracks from the database"
+msgstr "Borradas todas las %d pistas de la base de datos"
+
+#: src/misc_confirm.c:691
+msgid "Are you sure you want to remove all tracks from your iPod?"
+msgstr "¿Desea realmente borrar todas las pistas del iPod?"
+
+#: src/misc_confirm.c:696
+msgid "Are you sure you want to remove all podcasts from your iPod?"
+msgstr "¿Desea realmente borrar todos los podcasts del iPod?"
+
+#: src/misc_confirm.c:704
+#, c-format
+msgid ""
+"Are you sure you want to delete playlist '%s' and the following track "
+"completely from your ipod? The number of playlists this track is a member of "
+"is indicated in parentheses."
+msgid_plural ""
+"Are you sure you want to delete playlist '%s' and the following tracks "
+"completely from your ipod? The number of playlists the tracks are member of "
+"is indicated in parentheses."
+msgstr[0] ""
+"¿Desea realmente borrar la lista de reproducción '%s' y la siguiente pista "
+"del iPod? El número de listas de reproducción a las que pertenece esta pista "
+"está indicado entre paréntesis."
+msgstr[1] ""
+"¿Desea realmente borrar la lista de reproducción '%s' y las siguientes "
+"pistas del iPod? El número de listas de reproducción a las que pertenecen "
+"estas pistas está indicado entre paréntesis."
+
+#: src/misc_confirm.c:715 src/misc_confirm.c:770
+#, c-format
+msgid "Are you sure you want to delete the playlist '%s'?"
+msgstr "¿Está seguro de querer borrar la lista de reproducción '%s'?"
+
+#: src/misc_confirm.c:741
+#, c-format
+msgid ""
+"Are you sure you want to delete playlist '%s' and remove the following track "
+"from your harddisk? The number of playlists this track is a member of is "
+"indicated in parentheses."
+msgid_plural ""
+"Are you sure you want to delete playlist '%s' and remove the following "
+"tracks from your harddisk? The number of playlists the tracks are member of "
+"is indicated in parentheses."
+msgstr[0] ""
+"¿Desea realmente borrar la lista de reproducción '%s' y la siguiente pista "
+"del disco duro? El número de listas de reproducción a las que pertenece esta "
+"pista está indicado entre paréntesis."
+msgstr[1] ""
+"¿Desea realmente borrar la lista de reproducción '%s' y la siguiente pista "
+"del disco duro? El número de listas de reproducción a las que pertenecen "
+"estas pistas está indicado entre paréntesis."
+
+#: src/misc_confirm.c:749
+msgid "Are you sure you want to remove all tracks from the database?"
+msgstr "¿Está seguro de querer borrar todas las pistas de la base de datos?"
+
+#: src/misc_confirm.c:758
+#, c-format
+msgid ""
+"Are you sure you want to delete playlist '%s' and remove the following track "
+"from the database? The number of playlists this track is a member of is "
+"indicated in parentheses."
+msgid_plural ""
+"Are you sure you want to delete playlist '%s' and remove the following "
+"tracks from the database? The number of playlists the tracks are member of "
+"is indicated in parentheses."
+msgstr[0] ""
+"¿Desea realmente borrar la lista de reproducción '%s' y la siguiente pista "
+"de la base de datos? El número de listas de reproducción a las que pertenece "
+"esta pista está indicado entre paréntesis."
+msgstr[1] ""
+"¿Desea realmente borrar la lista de reproducción '%s' y la siguiente pista "
+"de la base de datos? El número de listas de reproducción a las que "
+"pertenecen estas pistas está indicado entre paréntesis."
+
+#: src/misc_confirm.c:859
+msgid ""
+"Data has been changed and not been saved.\n"
+"OK to exit gtkpod?"
+msgstr ""
+"Algunos datos han sido modificados y no se han guardado ¿está seguro de que "
+"desea cerrar gtkpod?"
+
+#: src/misc_conversion.c:67
+msgid "File type"
+msgstr "Tipo de fichero"
+
+#: src/misc_conversion.c:68
+msgid "PC File"
+msgstr "Fichero PC"
+
+#: src/misc_conversion.c:69
+msgid "iPod File"
+msgstr "Fichero iPod"
+
+#: src/misc_conversion.c:70
+msgid "iPod ID"
+msgstr "ID iPod"
+
+#. 10
+#: src/misc_conversion.c:71
+msgid "Track Nr (#)"
+msgstr "Número de pista (#)"
+
+#: src/misc_conversion.c:72
+msgid "Transferred"
+msgstr "Transferido"
+
+#: src/misc_conversion.c:73
+msgid "File Size"
+msgstr "Tamaño del fichero"
+
+#: src/misc_conversion.c:74
+msgid "Play Time"
+msgstr "Tiempo de reproducción"
+
+#. 20
+#: src/misc_conversion.c:81
+msgid "Date played"
+msgstr "Fecha de reproducción"
+
+#: src/misc_conversion.c:83
+msgid "Volume"
+msgstr "Volumen"
+
+#: src/misc_conversion.c:84
+msgid "Soundcheck"
+msgstr "Control de sonido"
+
+#. 25
+#: src/misc_conversion.c:86
+msgid "CD Nr"
+msgstr "Número de CD"
+
+#: src/misc_conversion.c:89
+msgid "Category"
+msgstr "Categoría"
+
+#: src/misc_conversion.c:90
+msgid "Description"
+msgstr "Descripción"
+
+#. 30
+#: src/misc_conversion.c:91
+msgid "Podcast URL"
+msgstr "URL del podcast"
+
+#: src/misc_conversion.c:92
+msgid "Podcast RSS"
+msgstr "RSS del podcast"
+
+#: src/misc_conversion.c:93
+msgid "Subtitle"
+msgstr "Subtítulo"
+
+#: src/misc_conversion.c:94
+msgid "Date released"
+msgstr "Fecha de publicación"
+
+#: src/misc_conversion.c:95
+msgid "Checked"
+msgstr "Revisado"
+
+#. 35
+#: src/misc_conversion.c:96
+msgid "Start time"
+msgstr "Hora de inicio"
+
+#: src/misc_conversion.c:97
+msgid "Stop time"
+msgstr "Hora de finalización"
+
+#: src/misc_conversion.c:98
+msgid "Remember Playback Position"
+msgstr "Recordar posición de la lista de reproducción"
+
+#: src/misc_conversion.c:99
+#, fuzzy
+msgid "Skip when Shuffling"
+msgstr "Ignorar en modo aleatorio"
+
+#: src/misc_conversion.c:100
+msgid "Artwork Path"
+msgstr ""
+
+#: src/misc_conversion.c:113
+msgid "Name of file on PC, if available"
+msgstr "Nombre del fichero en el PC, si está disponible"
+
+#: src/misc_conversion.c:114
+msgid "Name of file on the iPod"
+msgstr "Nombre del fichero en el iPod"
+
+#. 10
+#: src/misc_conversion.c:116
+msgid "Track Nr. and total number of tracks on CD"
+msgstr "Número de pista y número total de pistas en el CD"
+
+#: src/misc_conversion.c:117
+msgid "Whether the file has already been transferred to the iPod or not"
+msgstr "Si el fichero ha sido transferido al iPod o no"
+
+#: src/misc_conversion.c:123
+msgid ""
+"Supposedly something that tells the iPod to increase or decrease the "
+"playback speed"
+msgstr ""
+"Supuestamente, algo que le dice al iPod que incremente o reduzca la "
+"velocidad de reproducción"
+
+#: src/misc_conversion.c:125
+msgid "Number of times the track has been played"
+msgstr "Número de veces que la pista ha sido reproducida"
+
+#: src/misc_conversion.c:126
+msgid "Star rating from 0 to 5"
+msgstr "Puntuación de estrellas del 0 al 5"
+
+#: src/misc_conversion.c:127
+msgid "Date and time track has been added"
+msgstr "Fecha y hora en la que la pista ha sido añadida"
+
+#. 20
+#: src/misc_conversion.c:128
+msgid "Date and time track has last been played"
+msgstr "Fecha y hora en la que la pista ha sido reproducida por última vez"
+
+#: src/misc_conversion.c:129
+msgid "Date and time track has last been modified"
+msgstr "Fecha y hora en la que la pista ha sido modificada por última vez"
+
+#: src/misc_conversion.c:130
+msgid "Manual volume adjust"
+msgstr "Ajuste manual del volumen"
+
+#: src/misc_conversion.c:131
+msgid ""
+"Volume adjust in dB (replay gain) -- you need to activate 'soundcheck' on "
+"the iPod"
+msgstr ""
+"Ajuste del volumen en dB (ganancia de reproducción) -- Es necesario activar "
+"el control de volumen en el iPod"
+
+#. 25
+#: src/misc_conversion.c:134
+msgid "CD Nr. and total number of CDS in set"
+msgstr "Número de CD y número total de CDS en conjunto"
+
+#: src/misc_conversion.c:137
+msgid ""
+"The category (e.g. 'Technology' or 'Music') where the podcast was located."
+msgstr ""
+"La categoría (p.e. 'Tecnología' o 'Música') en la que el podcast estaba "
+"ubicado."
+
+#: src/misc_conversion.c:138
+msgid "Accessible by selecting the center button on the iPod."
+msgstr "Accesible al seleccionar el botón central en el iPod"
+
+#: src/misc_conversion.c:142
+msgid "Release date (for podcasts displayed next to the title on the iPod)"
+msgstr ""
+"Fecha de publicación (para podcasts. Mostrada junto al título en el iPod)"
+
+#: src/misc_conversion.c:649
+#, c-format
+msgid "The URI '%s' is not an absolute URI using the file scheme"
+msgstr "Usando el esquema del fichero, el URI '%s' no es un URI absoluto"
+
+#: src/misc_conversion.c:659
+#, c-format
+msgid "The local file URI '%s' may not include a '#'"
+msgstr "El URI de fichero local '%s' no puede contener '#'"
+
+#: src/misc_conversion.c:676
+#, c-format
+msgid "The URI '%s' is invalid"
+msgstr "El URI '%s' no es válido"
+
+#: src/misc_conversion.c:688
+#, c-format
+msgid "The hostname of the URI '%s' is invalid"
+msgstr "El nombre de máquina del URI '%s' no es válido"
+
+#: src/misc_conversion.c:704
+#, c-format
+msgid "The URI '%s' contains invalidly escaped characters"
+msgstr "El URI '%s' contiene caracteres de escape no válidos"
+
+#: src/misc_playlist.c:68 src/misc_playlist.c:95 src/misc_playlist.c:430
+msgid "Please enter a name for the new playlist"
+msgstr "Introducir el nombre de la nueva lista de reproducción"
+
+#: src/misc_playlist.c:155
+msgid "AR:"
+msgstr "AR:"
+
+#: src/misc_playlist.c:158
+msgid "AL:"
+msgstr "AL:"
+
+#: src/misc_playlist.c:161
+msgid "GE:"
+msgstr "GE:"
+
+#: src/misc_playlist.c:164
+#, fuzzy
+msgid "CO:"
+msgstr "CO:"
+
+#: src/misc_playlist.c:167
+#, fuzzy
+msgid "YE:"
+msgstr "YE:"
+
+#: src/misc_playlist.c:195
+msgid "Unknown"
+msgstr "Desconocido"
+
+#: src/misc_playlist.c:273
+#, c-format
+msgid "Random (%d)"
+msgstr "Aleatorio (%d)"
+
+#: src/misc_playlist.c:298
+msgid ""
+"Auto Store of track view disabled.\n"
+"\n"
+msgstr ""
+"Memorización automática de la vista desactivada.\n"
+"\n"
+
+#: src/misc_playlist.c:357
+msgid "Not Listed"
+msgstr "No escuchado"
+
+#: src/misc_playlist.c:407
+#, c-format
+msgid "Created playlist '%s' with %d track."
+msgid_plural "Created playlist '%s' with %d tracks."
+msgstr[0] "Creada lista de reproducción '%s' con %d pista."
+msgstr[1] "Creada lista de reproducción '%s' con %d pistas."
+
+#. n==0
+#: src/misc_playlist.c:418
+msgid "No tracks available, playlist not created"
+msgstr "Ninguna pista disponible, lista de reproducción no creada"
+
+#: src/misc_playlist.c:544
+#, c-format
+msgid "Most Listened (%d)"
+msgstr "La más escuchada (%d)"
+
+#: src/misc_playlist.c:585
+msgid "Never Listened"
+msgstr "Nunca escuchada"
+
+#: src/misc_playlist.c:625
+#, c-format
+msgid "Best Rated (%d)"
+msgstr "Mejor puntuada (%d)"
+
+#: src/misc_playlist.c:667
+msgid "Unrated tracks"
+msgstr "Pistas sin puntuar"
+
+#: src/misc_playlist.c:672
+#, c-format
+msgid "Rated %d"
+msgstr "Puntuación %d"
+
+#: src/misc_playlist.c:715
+#, c-format
+msgid "Recent (%d)"
+msgstr "Reciente (%d)"
+
+#: src/misc_playlist.c:754
+msgid "Last Time"
+msgstr "Última vez"
+
+#: src/misc_playlist.c:845
+msgid "Removal of dangling tracks with no files on PC was canceled."
+msgstr ""
+"La eliminación de pistas pendientes sin su fichero correspondiente en el PC "
+"ha sido cancelada."
+
+#: src/misc_playlist.c:855
+msgid "Handling of dangling tracks with files on PC was canceled."
+msgstr ""
+"El manejo de pistas pendientes con sus correspondientes ficheros en el PC ha "
+"sido cancelada."
+
+#: src/misc_playlist.c:883
+msgid "Dangling tracks with no files on PC were removed."
+msgstr ""
+"Las pistas pendientes sin su correspondiente fichero en el PC han sido "
+"eliminadas."
+
+#: src/misc_playlist.c:917
+#, c-format
+msgid "Processing '%s'"
+msgstr "Procesando '%s'"
+
+#: src/misc_playlist.c:941
+msgid "Dangling tracks with files on PC were handled."
+msgstr ""
+"Las pistas pendientes con ficheros correspondientes en el PC han sido "
+"procesadas."
+
+#: src/misc_playlist.c:974
+msgid "Track"
+msgstr "Pista"
+
+#: src/misc_playlist.c:1017
+msgid ""
+"You did not import the existing iTunesDB. This is most likely incorrect and "
+"will result in the loss of the existing database.\n"
+"\n"
+"Press 'OK' if you want to proceed anyhow or 'Cancel' to abort. If you "
+"cancel, you can import the existing database before calling this function "
+"again.\n"
+msgstr ""
+"No se ha importado la base de datos iTunes. Esto puede dar lugar a la "
+"pérdida de la actual base de datos.\n"
+"\n"
+"Pulsar 'Aceptar' para continuar o 'Cancelar' para detener la operación. Si "
+"se cancela ahora, se podrá importar la actual base de datos antes de usar de "
+"nuevo esta función.\n"
+
+#: src/misc_playlist.c:1031
+msgid "Creating a tree of known files"
+msgstr "Creando un árbol de ficheros conocidos"
+
+#: src/misc_playlist.c:1075
+msgid "Checking iPOD files against known files in DB"
+msgstr ""
+"Comprobando los ficheros del iPod con los ficheros conocidos en la base de "
+"datos"
+
+#: src/misc_playlist.c:1118
+msgid "Orphaned"
+msgstr "Huérfano"
+
+#: src/misc_playlist.c:1145
+#, c-format
+msgid ""
+"The following orphaned file had already been added to the iPod again. It "
+"will be removed with the next sync:\n"
+"%s\n"
+"\n"
+msgstr ""
+"El siguiente fichero huérfano ha sido añadido de nuevo al iPod. Será borrado "
+"en la siguiente sincronización:\n"
+"%s\n"
+"\n"
+
+#: src/misc_playlist.c:1173
+#, c-format
+msgid "Found %d orphaned and %d dangling files. Processing..."
+msgstr "Encontrados %d ficheros huerfanos y %d pendientes. Procesando..."
+
+#: src/misc_playlist.c:1197
+#, c-format
+msgid ""
+"The following dangling track has a file on PC.\n"
+"Press OK to have them transfered from the file on next Sync, CANCEL to leave "
+"it as is."
+msgid_plural ""
+"The following %d dangling tracks have files on PC.\n"
+"Press OK to have them transfered from the files on next Sync, CANCEL to "
+"leave them as is."
+msgstr[0] ""
+"La siguiente pista pendiente tiene un fichero en el PC.\n"
+" Pulse «Aceptar» para transferir el fichero en la siguiente sincronización, "
+"«Cancelar» para dejarla como está."
+msgstr[1] ""
+"Las siguientes %d pistas pendientes tienen ficheros en el PC.\n"
+"Pulse «Aceptar» para transferir los ficheros en la siguiente sincronización, "
+"«Cancelar» para dejarlos como están."
+
+#: src/misc_playlist.c:1202
+#, c-format
+msgid ""
+"The following dangling track doesn't have file on PC. \n"
+"Press OK to remove it, CANCEL to leave it as is."
+msgid_plural ""
+"The following %d dangling tracks do not have files on PC. \n"
+"Press OK to remove them, CANCEL to leave them. as is"
+msgstr[0] ""
+"La siguiente pista pendiente no tiene su fichero correspondiente en el PC.\n"
+"Pulse «Aceptar» para borrarla, «Cancelar» para dejarla como está."
+msgstr[1] ""
+"Las siguientes %d pistas pendientes no tienen sus ficheros correspondientes "
+"en el PC.\n"
+"Pulse «Aceptar» para borrarlas, «Cancelar» para dejarlas como están."
+
+#. we want unique window for each
+#. gboolean modal,
+#: src/misc_playlist.c:1209
+msgid "Dangling Tracks"
+msgstr "Pistas pendientes"
+
+#: src/misc_playlist.c:1232
+#, c-format
+msgid "Found %d orphaned and %d dangling files. Done."
+msgstr "Encontradas %d huérfanos y %d ficheros pendientes. Finalizado."
+
+#. update for count == 1, 21, 41 ... and for count == n
+#: src/misc_track.c:90 src/misc_track.c:364
+#, c-format
+msgid "Hashed %d of %d track."
+msgid_plural "Hashed %d of %d tracks."
+msgstr[0] "Calculada %d función resumen de %d pista"
+msgstr[1] "Calculadas %d funciones resumen de %d pistas"
+
+#: src/misc_track.c:199
+#, c-format
+msgid "The following duplicate track has been removed."
+msgid_plural "The following %d duplicate tracks have been removed."
+msgstr[0] "La siguiente pista duplicada ha sido borrada."
+msgstr[1] "Las siguientes %d pistas duplicadas han sido borradas."
+
+#: src/misc_track.c:206
+#, c-format
+msgid ""
+"The following duplicate track has not been added to the master play list."
+msgid_plural ""
+"The following %d duplicate tracks have not been added to the master play "
+"list."
+msgstr[0] ""
+"La siguiente pista duplicada no ha sido añadida a la lista de reproducción "
+"principal."
+msgstr[1] ""
+"Las siguientes %d pistas duplicadas no han sido añadidas a la lista de "
+"reproducción principal."
+
+#. gint id,
+#. gboolean modal,
+#: src/misc_track.c:213
+msgid "Duplicate detection"
+msgstr "Detección de duplicados"
+
+#: src/misc_track.c:904
+msgid "Local Database"
+msgstr "Base de datos local"
+
+#. artwork is set
+#: src/misc_track.c:915
+msgid "Embedded or filename was lost"
+msgstr ""
+
+#: src/misc_track.c:919
+#, fuzzy
+msgid "Artwork not set"
+msgstr "no configurado"
+
+#: src/misc_track.c:1527
+#, c-format
+msgid "drag and drop: ignored '%s'\n"
+msgstr "Operación de arrastrar y soltar ignorada '%s'\n"
+
+#: src/mp3file.c:1276
+#, c-format
+msgid "Error setting ID3 field: %s\n"
+msgstr "Error al rellenar campo ID3: %s\n"
+
+#: src/mp3file.c:1300 src/mp3file.c:1373 src/mp3file.c:1522 src/mp3file.c:2160
+#, c-format
+msgid "ERROR while opening file: '%s' (%s).\n"
+msgstr "Error al abrir el fichero: '%s' (%s).\n"
+
+#: src/mp3file.c:1593
+#, c-format
+msgid "ERROR while writing tag to file: '%s' (%s).\n"
+msgstr "Error al escribir etiqueta al fichero: '%s' (%s).\n"
+
+#. Tracks with zero play length are ignored by iPod...
+#: src/mp3file.c:2326
+#, c-format
+msgid "File \"%s\" has zero play length. Ignoring.\n"
+msgstr ""
+"El fichero \"%s\" tiene una duración de reproducción nula. Será ignorado.\n"
+
+#: src/mp4file.c:221 src/mp4file.c:342 src/mp4file.c:461
+#, c-format
+msgid "'%s' does not appear to be a mp4 audio file.\n"
+msgstr "'%s' no parece ser un fichero de audio mp4.\n"
+
+#: src/mp4file.c:231 src/mp4file.c:352
+#, c-format
+msgid "Could not open '%s' for reading, or file is not an mp4 file.\n"
+msgstr ""
+"No se ha podido abrir '%s' para su lectura o el fichero no es de tipo mp4.\n"
+
+#: src/mp4file.c:472
+#, c-format
+msgid "Could not open '%s' for writing, or file is not an mp4 file.\n"
+msgstr ""
+"No se ha podido abrir '%s' para su escritura o el fichero no es de tipo "
+"mp4.\n"
+
+#: src/mp4file.c:485
+#, c-format
+msgid ""
+"Import of '%s' failed: m4a/m4p/m4b not supported without the mp4v2 library. "
+"You must compile the gtkpod source together with the mp4v2 library.\n"
+msgstr ""
+"Error en la importación de '%s': m4a/m4p/m4b no están soportados sin la "
+"biblioteca mp4v2. gtkpod debe estar compilado junto con la biblioteca "
+"mp4v2.\n"
+
+#: src/mp4file.c:491
+#, c-format
+msgid ""
+"m4a/m4p/m4b metadata update for '%s' failed: m4a/m4p/m4b not supported "
+"without the mp4v2 library. You must compile the gtkpod source together with "
+"the mp4v2 library.\n"
+msgstr ""
+"Error al actualizar los metadatos m4a/m4p/m4b para '%s': m4a/m4p/m4b no "
+"están soportados sin la biblioteca mp4v2. gtkpod debe estar compilado junto "
+"con la biblioteca mp4v2.\n"
+
+#: src/mp4file.c:497
+#, c-format
+msgid ""
+"m4a/m4p/m4b soundcheck update for '%s' failed: m4a/m4p/m4b not supported "
+"without the mp4v2 library. You must compile the gtkpod source together with "
+"the mp4v2 library.\n"
+msgstr ""
+"Error al actualizar el control de volumen m4a/m4p/m4b para '%s': m4a/m4p/m4b "
+"no están soportados sin la biblioteca mp4v2. gtkpod debe estar compilado "
+"junto con la biblioteca mp4v2.\n"
+
+#: src/prefs.c:307
+#, c-format
+msgid "gtkpod version %s usage:\n"
+msgstr "Uso de gtkpod versión %s:\n"
+
+#: src/prefs.c:308
+msgid "  -h, --help:   display this message\n"
+msgstr "  -h, --help:   muestra este mensaje\n"
+
+#: src/prefs.c:309
+msgid "  -p <filename>:increment playcount for file by one\n"
+msgstr "  -p <fichero>:incrementa el contador del fichero en uno\n"
+
+#: src/prefs.c:310
+msgid "  -m path:      define the mountpoint of your iPod\n"
+msgstr "  -m ruta:      define el punto de montaje del iPod\n"
+
+#: src/prefs.c:311
+msgid "  --mountpoint: same as '-m'.\n"
+msgstr "  --mountpoint: igual que '-m'.\n"
+
+#: src/prefs.c:312
+msgid "  -a:           import database automatically after start.\n"
+msgstr ""
+"  -a:           importa automáticamente la base de datos al arrancar.\n"
+
+#: src/prefs.c:313
+msgid "  --auto:       same as '-a'.\n"
+msgstr "  --auto:       igual que '-a'.\n"
+
+#: src/prefs_window.c:119
+msgid "Please select command for 'Play Now'"
+msgstr "Seleccionar programa para 'Reproducir'"
+
+#: src/prefs_window.c:120
+msgid "Please select command for 'Enqueue'"
+msgstr "Seleccionar programa para 'Encolar'"
+
+#: src/prefs_window.c:121
+msgid "Please select the mp3gain executable"
+msgstr "Seleccionar el ejecutable mp3gain"
+
+#: src/prefs_window.c:124
+msgid "Select the mserv music root directory"
+msgstr "Seleccionar el directorio raíz de música de mserv"
+
+#: src/prefs_window.c:125
+msgid "Select the mserv trackinfo root directory"
+msgstr ""
+"Seleccionar el directorio raíz de la información de las pistas de mserv"
+
+#: src/prefs_window.c:127
+msgid "Please select the aacgain executable"
+msgstr "Seleccionar el ejecutable aacgain"
+
+#: src/prefs_window.c:911 src/prefs_window.c:929
+msgid "Preferences not updated"
+msgstr "Preferencias no actualizadas"
+
+#: src/prefs_window.c:938
+msgid "Preferences applied"
+msgstr "Preferencias actualizadas"
+
+#: src/repository.c:549 src/repository.c:2372
+msgid "Select mountpoint"
+msgstr "Seleccionar el punto de montaje del iPod"
+
+#: src/repository.c:576 src/repository.c:2398
+msgid "Set backup file"
+msgstr "Configurar fichero de copia de seguridad"
+
+#: src/repository.c:615
+msgid "Select directory for synchronization"
+msgstr "Seleccionar directorio a sincronizar"
+
+#: src/repository.c:641
+msgid "Please select command to sync contacts"
+msgstr "Seleccionar programa para sincronizar contactos"
+
+#: src/repository.c:647
+msgid "Please select command to sync calendar"
+msgstr "Seleccionar programa para sincronizar calendario"
+
+#: src/repository.c:653
+msgid "Please select command to sync notes"
+msgstr "Seleccionar programa para sincronizar notas"
+
+#: src/repository.c:665
+#, c-format
+msgid ""
+"<i>Have a look at the scripts provided in '%s'. If you write a new script, "
+"please send it to jcsjcs at users.sourceforge.net for inclusion into the "
+"next release.</i>"
+msgstr ""
+"<i>Heche un vistazo a los guiones de '%s'. En caso de escribir un nuevo "
+"guión, por favor, envielo a jcsjcs en users.sourceforge.net para añadirlo en "
+"la siguiente publicación.</i>"
+
+#: src/repository.c:732
+msgid "Smart playlist updated."
+msgstr "Lista de reproducción inteligente actualizada."
+
+#: src/repository.c:1193
+msgid "Podcasts Repository"
+msgstr "Repositorio de podcasts"
+
+#: src/repository.c:1197
+msgid "Local Repository"
+msgstr "Repositorio local"
+
+#: src/repository.c:1351
+msgid "Master Playlist"
+msgstr "Lista de reproducción principal"
+
+#: src/repository.c:1355
+msgid "Podcasts Playlist"
+msgstr "Lista de reproducción de podcasts"
+
+#: src/repository.c:1363
+msgid "Regular Playlist"
+msgstr "Lista de reproducción regular"
+
+#: src/repository.c:2426
+msgid "Set local repository file"
+msgstr "Configurar el fichero de repositorio local"
+
+#: src/repository.c:2525
+msgid "New Repository"
+msgstr "Nuevo repositorio"
+
+#: src/support.c:90 src/support.c:114
+#, c-format
+msgid "Couldn't find pixmap file: %s"
+msgstr "No se puede encontrar el fichero de mapa de píxeles: %s"
+
+#: src/syncdir.c:237
+#, c-format
+msgid "Sync summary for %s/%s\n"
+msgstr "Sincronizar resumen para %s/%s\n"
+
+#: src/syncdir.c:246
+msgid "The following track has been added or updated:\n"
+msgid_plural "The following tracks have been added or updated:\n"
+msgstr[0] "La siguiente pista ha sido añadida o actualizada:\n"
+msgstr[1] "Las siguientes pistas han sido añadidas o actualizadas:\n"
+
+#: src/syncdir.c:255
+msgid "The following track has been completely removed from the iPod:\n"
+msgid_plural ""
+"The following tracks have been completely removed from the iPod:\n"
+msgstr[0] "La siguiente pista ha sido borrada por completo del iPod:\n"
+msgstr[1] "Las siguientes pistas han sido borradas por completo del iPod:\n"
+
+#: src/syncdir.c:264
+msgid "The following track has been removed from the repository:\n"
+msgid_plural "The following tracks have been removed from the repository:\n"
+msgstr[0] "La siguiente pista ha sido borrada del repositorio:\n"
+msgstr[1] ""
+"Las siguientes pistas duplicadas han sido borradas del repositorio:\n"
+
+#: src/syncdir.c:271
+msgid "The following track has been removed from the playlist:\n"
+msgid_plural "The following tracks have been removed from the playlist:\n"
+msgstr[0] "La siguiente pista ha sido borrada de la lista de reproducción:\n"
+msgstr[1] ""
+"Las siguientes pistas han sido borradas de la lista de reproducción:\n"
+
+#: src/syncdir.c:277
+msgid "Nothing was changed.\n"
+msgstr "No ha habido cambios.\n"
+
+#: src/syncdir.c:282
+msgid "Sync summary"
+msgstr "Sincronizar resumen"
+
+#: src/tools.c:119
+#, c-format
+msgid ""
+"Could not find '%s'\n"
+". Please specifiy the exact path in the Tools section of the preference "
+"dialog or install the programm if it is not installed on your system.\n"
+"\n"
+msgstr ""
+"No se ha encontrado '%s'.\n"
+" Especificar la ruta exacta en en el apartado 'Herramientas' del diálogo de "
+"edición de preferencias o instalar el programa si no está instalado en el "
+"sistema.\n"
+"\n"
+
+#: src/tools.c:204
+#, c-format
+msgid ""
+"Execution of '%s' failed.\n"
+"\n"
+msgstr ""
+"Error al ejecutar '%s'.\n"
+"\n"
+
+#: src/tools.c:249
+#, c-format
+msgid ""
+"Did not normalize '%s'. Set mp3gain path in the Tools section of the "
+"preferences.\n"
+msgstr ""
+"No se ha normalizado '%s'. Configurar la ruta de mp3gain en el apartado "
+"'Herramientas' del diálogo de edición de preferencias.\n"
+
+#: src/tools.c:259
+#, c-format
+msgid ""
+"Did not normalize '%s'. Set aacgain path in the Tools section of the "
+"preferences.\n"
+msgstr ""
+"No se ha normalizado '%s'. Configurar la ruta de aacgain en el apartado "
+"'Herramientas' del diálogo de edición de preferencias.\n"
+
+#: src/tools.c:384
+msgid "Normalizing..."
+msgstr "Normalizando..."
+
+#: src/tools.c:434
+#, c-format
+msgid "%s - %s"
+msgstr "%s - %s"
+
+#: src/tools.c:460
+msgid "Aborting..."
+msgstr "Cancelando..."
+
+#: src/tools.c:464
+msgid "Will abort after current mp3gain process ends."
+msgstr "Se cancelará al termino del actual proceso de mp3gain."
+
+#: src/tools.c:490
+#, c-format
+msgid ""
+"'%s-%s' (%s) could not be normalized.\n"
+"\n"
+msgstr ""
+"'%s-%s' (%s) no se ha podido normalizar.\n"
+"\n"
+
+#: src/tools.c:529
+#, c-format
+msgid "Normalized %d of %d tracks."
+msgid_plural "Normalized %d of %d tracks."
+msgstr[0] "Normalizada %d de %d pista."
+msgstr[1] "Normalizadas %d de %d pistas."
+
+#: src/tools.c:632
+msgid ""
+"Please specify the command to be called on the 'Tools' section of the "
+"preferences dialog.\n"
+msgstr ""
+"Seleccionar el programa a ser ejecutado en la sección de 'Herramientas' del "
+"diálogo de edición de preferencias.\n"
+
+#: src/tools.c:644
+#, c-format
+msgid ""
+"Could not find the command '%s'.\n"
+"\n"
+"Please verify the setting in the 'Tools' section of the preferences dialog.\n"
+"\n"
+msgstr ""
+"No se ha encontrado el programa '%s'.\n"
+"\n"
+"Conprobar la configuración en el apartado 'Herramientas' del diálogo de "
+"edición de preferencias.\n"
+"\n"
+
+#: src/tools.c:685
+#, c-format
+msgid ""
+"'%s' returned the following output:\n"
+"%s\n"
+msgstr ""
+"'%s' ha devuelto:\n"
+"%s\n"
+
+#: src/tools.c:752
+#, c-format
+msgid "No command set for '%s'"
+msgstr "No hay programa configurado para '%s'"
+
+#: src/tools.c:772
+#, c-format
+msgid "Could not find command '%s' specified for '%s'"
+msgstr "No se ha encontrado el programa '%s' usado para '%s'"
+
+#: src/wavfile.c:107
+#, c-format
+msgid "Could not open '%s' for reading.\n"
+msgstr "No se ha podido abrir '%s' para su lectura.\n"
+
+#: src/wavfile.c:181
+#, c-format
+msgid "%s does not appear to be a supported wav file.\n"
+msgstr "%s no parece ser un fichero wav soportado.\n"
+
+#~ msgid ""
+#~ "On startup gtkpod will call 'mount <ipod mountpoint>', on exit a 'umount "
+#~ "<ipod mountpoint>' call is carried out. For more complicated arrangements "
+#~ "please use the ~/.gtkpod/gtkpod.in and ~/.gtkpod/gtkpod.out scripts."
+#~ msgstr ""
+#~ "En el arranque de gtkpod, éste intentará montar el ipod y al terminar "
+#~ "intentará desmontarlo. Usar los guiones ~/.gtkpod/gtkpod.in y ~/.gtkpod/"
+#~ "gtkpod.out para configuraciones avanzadas."
+
+#~ msgid "Handle mounting/unmounting of iPod drive"
+#~ msgstr "Manejo del montaje/desmontaje del iPod"
+
+#~ msgid "<b>Artwork</b>"
+#~ msgstr "<b>Trabajo artístico</b>"

Modified: gtkpod/branches/upstream/current/po/fr.gmo
===================================================================
(Binary files differ)

Modified: gtkpod/branches/upstream/current/po/fr.po
===================================================================
--- gtkpod/branches/upstream/current/po/fr.po	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/po/fr.po	2006-09-30 00:00:17 UTC (rev 139)
@@ -9,7 +9,7 @@
 msgstr ""
 "Project-Id-Version: gtkpod 0.94\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-03-05 23:01+0900\n"
+"POT-Creation-Date: 2006-09-24 23:08+0900\n"
 "PO-Revision-Date: 2005-09-14 21:46+0900\n"
 "Last-Translator: Éric Lassauge <lassauge at users.sf.net>\n"
 "Language-Team: FR\n"
@@ -18,6 +18,1878 @@
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n>1;\n"
 
+#: gtkpod.glade:7
+msgid "gtkpod"
+msgstr "gtkpod"
+
+#: gtkpod.glade:40
+msgid "_File"
+msgstr "_Fichier"
+
+#: gtkpod.glade:49
+#, fuzzy
+msgid "_Load iPod(s)"
+msgstr "_iPod"
+
+#: gtkpod.glade:69
+msgid "_Save Changes"
+msgstr ""
+
+#: gtkpod.glade:90
+msgid "Add _Files"
+msgstr "Ajouter des _fichiers"
+
+#: gtkpod.glade:111
+msgid "Add _Directory"
+msgstr "Ajouter un _répertoire"
+
+#: gtkpod.glade:132
+msgid "Add _Playlist"
+msgstr "Ajouter une _liste de lecture"
+
+#: gtkpod.glade:159
+msgid "_Update Tracks from File"
+msgstr "_Mettre à jour les morceaux à partir des fichiers"
+
+#: gtkpod.glade:180 gtkpod.glade:232 gtkpod.glade:311 gtkpod.glade:363
+#: gtkpod.glade:1092 gtkpod.glade:1144 gtkpod.glade:1190
+msgid "Selected _Playlist"
+msgstr "_Liste de lecture sélectionnée"
+
+#: gtkpod.glade:189 gtkpod.glade:241 gtkpod.glade:320 gtkpod.glade:372
+#: gtkpod.glade:1101 gtkpod.glade:1153 gtkpod.glade:1199
+msgid "Selected Tab _Entry"
+msgstr "Zon_e de tri sélectionnée"
+
+#: gtkpod.glade:198 gtkpod.glade:250 gtkpod.glade:329 gtkpod.glade:381
+#: gtkpod.glade:498 gtkpod.glade:1110 gtkpod.glade:1162 gtkpod.glade:1208
+msgid "Selected _Tracks"
+msgstr "Morceaux sélec_tionnés"
+
+#: gtkpod.glade:211
+msgid "Update _mserv Data from File"
+msgstr "_Mettre à jour les données mserv à partir des fichiers"
+
+#: gtkpod.glade:263
+#, fuzzy
+msgid "_Synchronize Playlist"
+msgstr "Tout synchroniser"
+
+#: gtkpod.glade:290
+msgid "_Export Tracks from Database"
+msgstr "_Exporter les morceaux de la base de données"
+
+#: gtkpod.glade:342
+msgid "Create _Playlist File"
+msgstr "Créer un _fichier de liste"
+
+#: gtkpod.glade:400
+msgid "_Create iPod's Directories"
+msgstr "_Créer les répertoires système de l'iPod"
+
+#: gtkpod.glade:421
+msgid ""
+"Find orphan files (files with no track info in DB) and dangling tracks "
+"(tracks with no corresponding files on iPOD)"
+msgstr ""
+"Trouver les fichiers orphelins (fichiers sans entrée dans la base iTunesDB) "
+"et les morceaux fictifs (morceaux sans fichier correspondant sur l'iPod)"
+
+#: gtkpod.glade:422
+msgid "_Check iPod's Files"
+msgstr "_Contrôler les fichiers de l'iPod"
+
+#: gtkpod.glade:450 gtkpod.glade:12687
+msgid "_Edit"
+msgstr "_Édition"
+
+#: gtkpod.glade:459 src/context_menus.c:480
+msgid "Edit Track Details"
+msgstr ""
+
+#: gtkpod.glade:480
+#, fuzzy
+msgid "Tracks in Selected _Playlist"
+msgstr "_Liste de lecture sélectionnée"
+
+#: gtkpod.glade:489
+#, fuzzy
+msgid "Tracks in Selected Tab _Entry"
+msgstr "Zon_e de tri sélectionnée"
+
+#: gtkpod.glade:511 src/context_menus.c:407
+msgid "Edit Smart Playlist"
+msgstr "Éditer la liste intelligente"
+
+#: gtkpod.glade:520
+msgid "_Delete"
+msgstr ""
+
+#: gtkpod.glade:541
+#, fuzzy
+msgid "Selected playlist"
+msgstr "_Liste de lecture sélectionnée"
+
+#: gtkpod.glade:550
+#, fuzzy
+msgid "Selected playlist including tracks from iPod"
+msgstr "Liste de lecture «%s» supprimée avec %d morceau"
+
+#: gtkpod.glade:559
+#, fuzzy
+msgid "Selected playlist including tracks from database"
+msgstr "Supprimer les morceaux inclus (base de données)"
+
+#: gtkpod.glade:568
+#, fuzzy
+msgid "Selected playlist including tracks from harddisk"
+msgstr "Liste de lecture «%s» supprimée avec %d morceau sur le disque dur."
+
+#: gtkpod.glade:583
+#, fuzzy
+msgid "Selected filter tab entry from playlist"
+msgstr "%d morceau supprimé de la liste de lecture «%s»"
+
+#: gtkpod.glade:592
+#, fuzzy
+msgid "Selected filter tab entry from iPod"
+msgstr "Suppression d'un morceau de l'iPod"
+
+#: gtkpod.glade:601
+#, fuzzy
+msgid "Selected filter tab entry from database"
+msgstr "1 morceau supprimé de la base de données locale"
+
+#: gtkpod.glade:610
+#, fuzzy
+msgid "Selected filter tab entry from harddisk"
+msgstr "%d morceau supprimé du disque dur"
+
+#: gtkpod.glade:625
+#, fuzzy
+msgid "Selected tracks from playlist"
+msgstr "%d morceau supprimé de la liste de lecture «%s»"
+
+#: gtkpod.glade:634
+#, fuzzy
+msgid "Selected tracks from iPod"
+msgstr "Suppression d'un morceau de l'iPod"
+
+#: gtkpod.glade:643
+#, fuzzy
+msgid "Selected tracks from database"
+msgstr "1 morceau supprimé de la base de données locale"
+
+#: gtkpod.glade:652
+#, fuzzy
+msgid "Selected tracks from harddisk"
+msgstr "%d morceau supprimé du disque dur"
+
+#: gtkpod.glade:671
+msgid "_Create Playlists"
+msgstr "_Créer une liste de lecture"
+
+#: gtkpod.glade:692
+msgid "Empty Playlist"
+msgstr "Vide"
+
+#: gtkpod.glade:701 gtkpod.glade:7379 src/misc_playlist.c:97
+#: src/repository.c:1359
+msgid "Smart Playlist"
+msgstr "Intelligente"
+
+#: gtkpod.glade:716
+msgid "Random Playlist from Displayed Tracks"
+msgstr "Contenant les morceaux affichés aléatoirement"
+
+#: gtkpod.glade:725
+msgid "Containing Displayed Tracks"
+msgstr "Contenant les morceaux affichés"
+
+#: gtkpod.glade:734
+msgid "Containing Selected Tracks"
+msgstr "Contenant les morceaux sélectionnés"
+
+#: gtkpod.glade:743
+msgid "One for each Artist"
+msgstr "Par artiste"
+
+#: gtkpod.glade:752
+msgid "One for each Album"
+msgstr "Par album"
+
+#: gtkpod.glade:761
+msgid "One for each Genre"
+msgstr "Par genre"
+
+#: gtkpod.glade:770
+msgid "One for each Composer"
+msgstr "Par compositeur"
+
+#: gtkpod.glade:779
+msgid "One for each Year"
+msgstr "Par année"
+
+#: gtkpod.glade:788
+msgid "One for each Rating"
+msgstr "Par note"
+
+#: gtkpod.glade:797
+msgid "Best Rated Tracks"
+msgstr "Contenant les morceaux les mieux notés"
+
+#: gtkpod.glade:806
+msgid "Tracks Most Often Listened To"
+msgstr "Contenant les morceaux les plus écoutés"
+
+#: gtkpod.glade:815
+msgid "Most Recently Played Tracks"
+msgstr "Contenant les morceaux dernièrement joués"
+
+#: gtkpod.glade:824
+msgid "All Tracks Played Since Last Time"
+msgstr "Contenant les morceaux joués depuis la dernière fois"
+
+#: gtkpod.glade:833
+msgid "All Tracks Never Listened To"
+msgstr "Contenant les morceaux qui n'ont jamais été écoutés"
+
+#: gtkpod.glade:842
+msgid "All Tracks not Listed in any Playlist"
+msgstr "Contenant tous les morceaux qui n'appartiennent à aucune liste"
+
+#: gtkpod.glade:861
+msgid "_Sorting"
+msgstr "_Tri"
+
+#: gtkpod.glade:883
+msgid "Randomize Current Playlist"
+msgstr "Mélanger l'ordre de la liste de lecture actuelle"
+
+#: gtkpod.glade:892
+msgid "_Save Displayed Track Order"
+msgstr "_Sauver l'ordre de tri des morceaux affichés"
+
+#: gtkpod.glade:920
+#, fuzzy
+msgid "Edit Repository/iPod Options"
+msgstr "Options de tri"
+
+#: gtkpod.glade:941
+#, fuzzy
+msgid "Edit _Preferences"
+msgstr "_Préférences"
+
+#: gtkpod.glade:967
+msgid "_View"
+msgstr "_Affichage"
+
+#: gtkpod.glade:976
+msgid "_Toolbar"
+msgstr "_Barre d'outils"
+
+#: gtkpod.glade:986
+msgid "_Tooltips"
+msgstr "_Infobulles"
+
+#: gtkpod.glade:996
+msgid "_Info Window"
+msgstr "_Fenêtre d'infos"
+
+#: gtkpod.glade:1007
+msgid "_More Sort Tabs"
+msgstr "_Ajouter une zone de tri"
+
+#: gtkpod.glade:1028
+msgid "_Less Sort Tabs"
+msgstr "_Supprimer une zone de tri"
+
+#: gtkpod.glade:1049
+msgid "_Arrange Sort Tabs"
+msgstr "_Organiser les zones de tri"
+
+#: gtkpod.glade:1062 gtkpod.glade:13297
+msgid "_Tools"
+msgstr "_Outils"
+
+#: gtkpod.glade:1071
+msgid "_Play Now"
+msgstr "_Jouer maintenant"
+
+#: gtkpod.glade:1123
+msgid "_Enqueue"
+msgstr "_Ajouter à la file d'attente"
+
+#: gtkpod.glade:1181
+msgid "_Normalize Volume"
+msgstr "_Normaliser le volume"
+
+#: gtkpod.glade:1217
+msgid "_Displayed Tracks"
+msgstr "_Morceaux affichés"
+
+#: gtkpod.glade:1226
+msgid "_All Tracks"
+msgstr "_Tous les morceaux"
+
+#: gtkpod.glade:1235
+msgid "_Newly Added Tracks"
+msgstr "_Nouveaux morceaux ajoutés"
+
+#: gtkpod.glade:1254
+msgid "Synchronise Contacts, Calendar and Notes"
+msgstr "Synchroniser le calendrier, contacts et notes"
+
+#: gtkpod.glade:1255
+msgid "Synchronize All"
+msgstr "Tout synchroniser"
+
+#: gtkpod.glade:1264
+msgid "Synchronize Contacts"
+msgstr "Synchroniser les contacts"
+
+#: gtkpod.glade:1273
+msgid "Synchronize Calendar"
+msgstr "Synchroniser le calendrier"
+
+#: gtkpod.glade:1282
+msgid "Synchronize Notes"
+msgstr "Synchroniser les notes"
+
+#: gtkpod.glade:1295
+msgid "_Help"
+msgstr "A_ide"
+
+#: gtkpod.glade:1304
+msgid "_About"
+msgstr "A _propos"
+
+#: gtkpod.glade:1344
+msgid ""
+"Try to load contents of all connected iPods. For each iPod a separate "
+"repository must be set up."
+msgstr ""
+
+#: gtkpod.glade:1345
+#, fuzzy
+msgid "Load iPod(s)"
+msgstr "_iPod"
+
+#: gtkpod.glade:1362
+msgid "Write all changes made to the disk and the iPod(s)."
+msgstr ""
+
+#: gtkpod.glade:1363 src/context_menus.c:507
+msgid "Save Changes"
+msgstr ""
+
+#: gtkpod.glade:1380
+msgid "Add Files or Directories"
+msgstr "Ajouter des fichiers ou répertoires"
+
+#: gtkpod.glade:1381
+msgid "Files"
+msgstr "Fichiers"
+
+#: gtkpod.glade:1398
+msgid "Add Directories Recursively"
+msgstr "Ajouter récursivement des répertoires"
+
+#: gtkpod.glade:1399
+msgid "Dirs"
+msgstr "Répertoires"
+
+#: gtkpod.glade:1416
+msgid "Add playlist from file"
+msgstr "Ajouter une liste de lecture"
+
+#: gtkpod.glade:1417 src/display_spl.c:105
+msgid "Playlist"
+msgstr "Liste de lecture"
+
+#: gtkpod.glade:1434
+msgid "Create New Playlist"
+msgstr "Créer une liste de lecture"
+
+#: gtkpod.glade:1435
+msgid "New PL"
+msgstr "Nouvelle liste"
+
+#: gtkpod.glade:1451
+msgid "Stop Display Update"
+msgstr "Annuler la mise à jour de l'affichage"
+
+#: gtkpod.glade:1452
+msgid "Stop"
+msgstr "Interrompre"
+
+#: gtkpod.glade:1625
+msgid "About gtkpod"
+msgstr "A propos de gtkpod"
+
+#: gtkpod.glade:1752
+msgid "Credits"
+msgstr "Crédits"
+
+#: gtkpod.glade:1810
+msgid "Translators"
+msgstr "Traducteurs"
+
+#: gtkpod.glade:1868
+msgid "special_sorttab -- Don't translate!"
+msgstr ""
+
+#: gtkpod.glade:1903
+msgid " Logic: "
+msgstr " Opérateur logique : "
+
+#: gtkpod.glade:1929
+msgid "Any (OR)"
+msgstr "Ou"
+
+#: gtkpod.glade:1948
+msgid "All (AND)"
+msgstr "Et"
+
+#: gtkpod.glade:2001
+msgid "0"
+msgstr "0"
+
+#: gtkpod.glade:2020
+msgid "1"
+msgstr "1"
+
+#: gtkpod.glade:2039
+msgid "2"
+msgstr "2"
+
+#: gtkpod.glade:2058
+msgid "3"
+msgstr "3"
+
+#: gtkpod.glade:2077
+msgid "4"
+msgstr "4"
+
+#: gtkpod.glade:2096
+msgid "5"
+msgstr "5"
+
+#: gtkpod.glade:2135
+msgid "Select '0' for no lower limit."
+msgstr "Choisissez «0» pour aucune limite inférieure."
+
+#: gtkpod.glade:2156
+msgid " <= cts <= "
+msgstr " <= et <= "
+
+#: gtkpod.glade:2181
+msgid "Select '-1' for no upper limit."
+msgstr "Choisissez «-1» pour aucune limite supérieure."
+
+#: gtkpod.glade:2224 gtkpod.glade:2301 gtkpod.glade:2471
+msgid ""
+"'DD/MM/YYYY HH:MM < d < DD/MM/YYYY HH:MM' or similar. Press 'enter' when "
+"finished."
+msgstr ""
+"'JJ/MM/AAAA HH:MM < d < JJ/MM/AAAA HH:MM' ou similaire. Appuyez 'Entrée' "
+"pour valider."
+
+#: gtkpod.glade:2270 gtkpod.glade:2347 gtkpod.glade:2517 gtkpod.glade:2696
+msgid "Calendar"
+msgstr "Calendrier"
+
+#: gtkpod.glade:2372
+msgid "Specify interval"
+msgstr "Spécifier un intervalle"
+
+#: gtkpod.glade:2374 src/display_spl.c:98 src/misc_conversion.c:78
+msgid "Playcount"
+msgstr "Cpt. lecture"
+
+#: gtkpod.glade:2397 src/display_spl.c:101 src/misc_conversion.c:79
+msgid "Rating"
+msgstr "Note"
+
+#: gtkpod.glade:2420 src/display_songs.c:1951
+msgid "Played"
+msgstr "Joué le"
+
+#: gtkpod.glade:2443 src/display_songs.c:1954
+msgid "Modified"
+msgstr "Modifié le"
+
+#: gtkpod.glade:2542 src/display_songs.c:1957 src/display_sorttabs.c:3218
+msgid "Added"
+msgstr "Ajouté"
+
+#: gtkpod.glade:2587
+msgid "Display tracks that match the criteria entered above."
+msgstr "Afficher les morceaux qui correspondent aux critères saisis."
+
+#: gtkpod.glade:2630 gtkpod.glade:12009
+msgid "_Display"
+msgstr "_Affichage"
+
+#: gtkpod.glade:2666
+msgid ""
+"Automatically start displaying tracks that match the criteria entered above. "
+"If not selected, you must press 'Display' to start displaying."
+msgstr ""
+"Affiche automatiquement les morceaux qui correspondent aux critères saisis."
+"En désactivant cette option, vous devrez appuyer sur 'Afficher'."
+
+#: gtkpod.glade:2668
+msgid "Start display automatically"
+msgstr "Afficher automatiquement"
+
+#: gtkpod.glade:2743
+msgid "Sorttab: "
+msgstr "Zone de tri :"
+
+#: gtkpod.glade:2787
+msgid "     "
+msgstr "     "
+
+#: gtkpod.glade:2813
+msgid "Category: "
+msgstr "Catégorie : "
+
+#: gtkpod.glade:2894
+msgid "Please specify a time interval"
+msgstr "Spécifiez un intervalle de temps"
+
+#: gtkpod.glade:2943
+msgid "Lower Margin"
+msgstr "Borne inférieure"
+
+#: gtkpod.glade:2994 gtkpod.glade:3208
+msgid "Time:"
+msgstr "Heure :"
+
+#: gtkpod.glade:3037 gtkpod.glade:3251
+msgid ":"
+msgstr ":"
+
+#: gtkpod.glade:3114
+msgid "No lower margin"
+msgstr "Pas de borne inférieure"
+
+#: gtkpod.glade:3157
+msgid "Upper margin"
+msgstr "Borne supérieure"
+
+#: gtkpod.glade:3328
+msgid "No upper margin"
+msgstr "Pas de borne supérieure"
+
+#: gtkpod.glade:3426
+msgid "Sorting Options"
+msgstr "Options de tri"
+
+#: gtkpod.glade:3458
+msgid "<b>Sort Order</b>"
+msgstr "<b>Ordre de tri</b>"
+
+#: gtkpod.glade:3489 gtkpod.glade:4762 gtkpod.glade:11638 gtkpod.glade:12134
+#: gtkpod.glade:12249
+msgid "    "
+msgstr "     "
+
+#: gtkpod.glade:3521
+msgid ""
+"In order to save the displayed track order to the iPod choose 'Save "
+"Displayed Track Order' from the 'Edit' menu or select 'Auto Store' below."
+msgstr ""
+"Afin de trier par ordre alphabétique sur l'iPod, vous devez cliquer sur le "
+"menu 'Édition' puis 'Sauver l'ordre de tri des morceaux affichés' ou "
+"l'option 'Sauver automatiquement' ci-dessus."
+
+#: gtkpod.glade:3905
+msgid "Ascending"
+msgstr "Croissant"
+
+#: gtkpod.glade:3953
+msgid "Descending"
+msgstr "Décroissant"
+
+#: gtkpod.glade:4001
+msgid "None"
+msgstr "Aucun"
+
+#: gtkpod.glade:4048 src/display_playlists.c:2106
+msgid "Playlists"
+msgstr "Listes de lecture"
+
+#: gtkpod.glade:4097
+msgid "Sorttabs"
+msgstr "Zones de tri :"
+
+#: gtkpod.glade:4146
+msgid "Tracks"
+msgstr "Morceaux"
+
+#: gtkpod.glade:4306
+msgid "Auto Store"
+msgstr "Sauver automatiquement"
+
+#: gtkpod.glade:4349
+msgid "Please refer to the notice below."
+msgstr "Référez vous à la règle ci-dessous."
+
+#: gtkpod.glade:4383 gtkpod.glade:4564 src/details.c:1118
+msgid "n/a"
+msgstr "-"
+
+#: gtkpod.glade:4613
+msgid "Sort tracks according to: "
+msgstr "Trier les morceaux suivant :"
+
+#: gtkpod.glade:4647
+msgid ""
+"You can also use the table headers, but this allows you to sort according to "
+"a column that is not displayed."
+msgstr ""
+"Vous pouvez aussi utiliser le tableau des entêtes, mais cela permet de trier "
+"sur une colonne qui n'est pas affichée."
+
+#: gtkpod.glade:4683
+msgid ""
+"If checked, sorting will be case sensitive. Please note that case sensitive "
+"sorting will not work well with most charsets."
+msgstr ""
+"En cochant cette option, le tri tiendra compte de la casse (minuscule/"
+"majuscule). Le tri dépend du jeu de caractères."
+
+#: gtkpod.glade:4685
+msgid "Sorting case sensitive"
+msgstr "Trier en tenant compte de la casse"
+
+#: gtkpod.glade:4731
+msgid "<b>Ignore Frequent Words</b>"
+msgstr "<b>Ignorer les mots courants</b>"
+
+#: gtkpod.glade:4831
+msgid "Ignore these words when at the beginning of the following fields:"
+msgstr "Ignorer ces mots au début des champs suivants :"
+
+#: gtkpod.glade:5106
+msgid "gtkpod Info"
+msgstr "Info gtkpod"
+
+#: gtkpod.glade:5427 gtkpod.glade:5514 gtkpod.glade:5543 gtkpod.glade:6261
+#: gtkpod.glade:6406
+msgid "      "
+msgstr "      "
+
+#: gtkpod.glade:5832
+msgid "Number of tracks"
+msgstr "Nombre de morceaux"
+
+#: gtkpod.glade:5862
+msgid "Play time"
+msgstr "Temps de lecture"
+
+#: gtkpod.glade:5893
+msgid "File size"
+msgstr "Taille du fichier"
+
+#: gtkpod.glade:5923
+msgid "Number of playlists"
+msgstr "Nombre de listes de lecture"
+
+#: gtkpod.glade:5953
+msgid "Deleted tracks"
+msgstr "Morceaux supprimés"
+
+#: gtkpod.glade:5983
+msgid "File size (deleted)"
+msgstr "Taille des fichiers (supprimés)"
+
+#: gtkpod.glade:6013
+msgid "Non-transferred tracks"
+msgstr "Morceaux non transférés"
+
+#: gtkpod.glade:6043
+msgid "File size (non-transferred)"
+msgstr "Taille des fichiers (non transférés)"
+
+#: gtkpod.glade:6073
+msgid "Effective free space"
+msgstr "Espace libre effectif"
+
+#: gtkpod.glade:6103
+msgid ""
+"Total\n"
+"(iPod)"
+msgstr ""
+"Total\n"
+"(iPod)"
+
+#: gtkpod.glade:6135
+msgid ""
+"Selected\n"
+"Playlist"
+msgstr ""
+"Liste de lecture\n"
+"Sélectionnée"
+
+#: gtkpod.glade:6167
+msgid ""
+"Displayed\n"
+"Tracks"
+msgstr ""
+"Morceaux\n"
+"Affichés"
+
+#: gtkpod.glade:6199
+msgid ""
+"Selected\n"
+"Tracks"
+msgstr ""
+"Morceaux\n"
+"Sélec_tionnés"
+
+#: gtkpod.glade:6231
+msgid ""
+"Total\n"
+"(local)"
+msgstr ""
+"Total\n"
+"(local)"
+
+#: gtkpod.glade:6651
+msgid "label21"
+msgstr "label21"
+
+#: gtkpod.glade:6746
+msgid "Never show this dialogue again"
+msgstr "Ne plus afficher ce message"
+
+#: gtkpod.glade:6791 gtkpod.glade:7135
+msgid "window1"
+msgstr "window1"
+
+#: gtkpod.glade:6850
+msgid "_M3U"
+msgstr "_M3U"
+
+#: gtkpod.glade:6869
+msgid "_PLS"
+msgstr "_PLS"
+
+#: gtkpod.glade:6907
+msgid ""
+"If available, the local copy of the track is referenced in the playlist. "
+"Otherwise the file on the iPod is used."
+msgstr ""
+"Si possible, c'est la copie locale du fichier qui est référencée dans la "
+"liste. Autrement, le fichier de l'iPod est utilisé."
+
+#: gtkpod.glade:6909
+msgid "_Prefer Local"
+msgstr "Locale de _préférence"
+
+#: gtkpod.glade:6927
+msgid ""
+"The local copy of the track is referenced in the playlist. If the track is "
+"not available locally, an error message is displayed."
+msgstr ""
+"Le fichier local du morceau est référencé dans la liste. Si le fichier "
+"n'existe pas, un message d'erreur est affiché."
+
+#: gtkpod.glade:6929
+msgid "_Local"
+msgstr "_Locale"
+
+#: gtkpod.glade:6948
+msgid "The track on the iPod is referenced in the playlist file."
+msgstr ""
+"Le morceau de l'iPod est référencé dans le fichier de liste de lecture."
+
+#: gtkpod.glade:6950
+msgid "_iPod"
+msgstr "_iPod"
+
+#: gtkpod.glade:6983
+msgid "Playlist type:"
+msgstr "Type de liste :"
+
+#: gtkpod.glade:7012
+msgid "Source:"
+msgstr "Source :"
+
+#: gtkpod.glade:7055
+msgid "Template for info field: "
+msgstr "Modèle pour le champ d'info :"
+
+#: gtkpod.glade:7080
+msgid ""
+"Determines how the string for the info field should be constructed, e.g '%a/%"
+"A/%T - %t.mp3' or '%o'.  You can separate several templates by semicolons -- "
+"gtkpod will determine which one to use by the filename extension given. "
+"Artist: %a, album: %A, composer: %c, title: %t, genre: %G, track nr: %T, CD "
+"nr: %C, year: %Y, original filename (requires extended information file): %"
+"o, the character '%': %%."
+msgstr ""
+"Détermine comment le champ d'information doit être construit, par exemple '%"
+"a/%A/%T - %t' or '%o'. Vous pouvez séparer les expressions par des points-"
+"virgules -- gtkpod déterminera laquelle utiliser suivant l'extension du "
+"fichier donnée. Artiste: %a, album: %A, compositeur; %c, titre: %t, genre: %"
+"G, numéro de piste: %T, numéro de CD: %C, anné: %Y, le nom de fichier "
+"original (nécessite le fichier d'infos étendues): %o, le caractère '%': %%."
+
+#: gtkpod.glade:7111 gtkpod.glade:7355
+msgid "gtkpod options"
+msgstr "Options gtkpod"
+
+#: gtkpod.glade:7173
+msgid "Filename Format: "
+msgstr "Format du nom des fichiers : "
+
+#: gtkpod.glade:7198
+msgid ""
+"Determines the filename of tracks you copy from the iPod, e.g '%a/%A/%T - %t."
+"mp3' or '%o'.  You can separate several patterns by semicolons -- gtkpod "
+"will determine which one to use by the filename extension given. Artist: %a, "
+"album: %A, composer: %c, title: %t, genre: %G, track nr: %T, CD nr: %C, "
+"year: %Y, original filename (requires extended information file): %o, "
+"current playlist: %p, the character '%': %%."
+msgstr ""
+"Détermine le nom de fichier des morceaux que vous copiez de l'iPod, par "
+"exemple '%a/%A/%T - %t' ou '%o'. Vous pouvez séparer les expressions par des "
+"points-virgules -- gtkpod déterminera laquelle utiliser suivant l'extension "
+"du fichier donnée. Artiste: %a, album: %A, compositeur; %c, titre: %t, "
+"genre: %G, numéro de piste: %T, numéro de CD: %C, année: %Y, le nom de "
+"fichier original (nécessite le fichier d'infos étendues): %o, le caractère "
+"'%': %%."
+
+#: gtkpod.glade:7203
+msgid " "
+msgstr " "
+
+#: gtkpod.glade:7225
+msgid ""
+"Normally the charset specified when first importing the track will be used "
+"for the filename. If you set this option you can set a different charset "
+"with the charset selector (Preferences/'Adding/Updating/Syncing'). Note: the "
+"charset info is stored in the extended information file (see "
+"Preferences/'Writing of the iTunesDB'). Tracks imported before V0.51 will "
+"have no charset stored. Instead the charset specified will be used."
+msgstr ""
+"Par défaut, le jeu de caractères spécifié lors du premier import d'un "
+"morceau sera celui utilisé pour la mise à jour. Si vous cochez cette option, "
+"vous pouvez utiliser un jeu de caractère différent de ci-dessus. Note : les "
+"infos sur les caractères sont stockées dans un fichier d'informations "
+"étendues. Les morceaux importés avant la version 0.51 de gtkpod n'utilisait "
+"pas ce fichier. Ce sera le jeu de caractère spécifié ici qui sera utilisé en "
+"cas de mise à jour de ces morceaux."
+
+#: gtkpod.glade:7227
+msgid ""
+"Use selected charset (Preferences/'Adding/Updating/ Syncing')\n"
+"for this filename."
+msgstr ""
+"Utilise le jeu de caractère sélectionné pour ce fichier\n"
+"(voir la section ci-dessus : 'Ajout/Mise à jour/Synchronisation')"
+
+#: gtkpod.glade:7246
+msgid ""
+"When copying from iPod no check is performed on whether the destination file "
+"exists. Enabling this option will make gtkpod check whether the length of "
+"the destination file is the same as the file in the iPod. If so the file is "
+"skipped, allowing a quick sync of the iPod's contents."
+msgstr ""
+"Lors de la copie de morceaux à partir de l'iPod, aucun contrôle n'est fait "
+"pour déterminer si le fichier existe déjà. En activant cette option, gtkpod "
+"vérifiera que la taille du fichier de destination est identique à la taille "
+"du fichier sur l'iPod. En ce cas, le fichier n'est pas recopié pour "
+"accélérer la synchronisation du contenu de l'iPod."
+
+#: gtkpod.glade:7248
+msgid "Check for existing files when copying from iPod."
+msgstr ""
+"Contrôler l'existence des fichiers lors de la copie à partir de l'ipod."
+
+#: gtkpod.glade:7423
+msgid "Playlist name:"
+msgstr "Nom de la liste :"
+
+#: gtkpod.glade:7492
+msgid "Match al_l of the following"
+msgstr "Répondant à toutes les règ_les"
+
+#: gtkpod.glade:7511
+msgid "Match an_y of the following"
+msgstr "Répondant à quelques _règles"
+
+#: gtkpod.glade:7531
+msgid "_Ignore rules"
+msgstr "Ne respectant _pas les règles"
+
+#: gtkpod.glade:7601
+msgid "Rules"
+msgstr "Règles"
+
+#: gtkpod.glade:7638
+msgid "_Limit to"
+msgstr "_Limiter à"
+
+#: gtkpod.glade:7689
+msgid "   Sort by:"
+msgstr "   Trier par :"
+
+#: gtkpod.glade:7741
+msgid "Match only _checked tracks"
+msgstr "Seulement les morceaux _cochés"
+
+#: gtkpod.glade:7773
+msgid "Live _updating"
+msgstr "Mise à jour automatique"
+
+#: gtkpod.glade:7864
+msgid "Preferences"
+msgstr "Préférences"
+
+#: gtkpod.glade:7927
+msgid "<b>Mountpoint and individual repository/playlist options</b>"
+msgstr ""
+
+#: gtkpod.glade:7990
+msgid "Set mountpoint or edit repository options"
+msgstr ""
+
+#: gtkpod.glade:8037
+msgid "<b>Import</b>"
+msgstr "<b>Importer</b>"
+
+#: gtkpod.glade:8108
+#, fuzzy
+msgid "Automatically import iTunesDBs on startup"
+msgstr "Importer les données de l'iPod au démarrage de gtkpod"
+
+#: gtkpod.glade:8154
+msgid "<b>Adding/Updating/Syncing</b>"
+msgstr "<b>Ajout/Mise à jour/Synchronisation</b>"
+
+#: gtkpod.glade:8226
+msgid "Exclude file mask(s)"
+msgstr ""
+
+#: gtkpod.glade:8251
+msgid "Semicolon seperated list of file exclusion masks, e.g. '*.mp3'"
+msgstr ""
+
+#: gtkpod.glade:8285
+#, fuzzy
+msgid "_Encoding (ID3, files):"
+msgstr "Jeu de _caractères (ID3, fichiers) :"
+
+#: gtkpod.glade:8320
+msgid ""
+"gtkpod expects the ID3 tags and the filenames to be in the encoding "
+"specified here. You can change it for consecutive 'Add Files' and 'Add Dirs' "
+"operation. 'System Charset' is the charset used by your current locale."
+msgstr ""
+"gtkpod utilisera le jeu de caractères spécifié ici pour les attributs ID3 et "
+"les fichiers. Vous pouvez le modifier entre chaque opération d'ajout.'Jeu de "
+"caractères du système' est le jeu de caractère défini par les locales de "
+"votre système."
+
+#: gtkpod.glade:8357
+msgid ""
+"Normally the charset specified when first importing the track will be used "
+"to update the track information. If you have chosen a wrong charset when "
+"first importing a track and want to correct it using the 'Update Track' "
+"function, you must check this option. Note: the charset info is stored in "
+"the extended information file (see 'Writing of iTunesDB' below) and tracks "
+"imported before V0.51 will have no charset stored. Instead the charset "
+"specified above will be used then."
+msgstr ""
+"Par défaut, le jeu de caractère spécifié lors du premier import d'un morceau "
+"sera celui utilisé pour la mise à jour. Pour corriger un mauvais jeu de car. "
+"sélectionné à l'import initial d'un morceau, cocher cette option pour le "
+"modifier lors de la mise à jour de ce morceau. Note : les infos sur les "
+"caractères sont stockées dans un fichier d'informations étendues et les "
+"morceaux importés.avant la version 0.51 de gtkpod n'utilisait pas ce "
+"fichier. Ce sera le jeu de caractères spécifié ici qui sera utilisé en cas "
+"de mise à jour de ces morceaux."
+
+#: gtkpod.glade:8359
+#, fuzzy
+msgid ""
+"Use selected encoding also when updating \n"
+"or syncing tracks"
+msgstr ""
+"Le jeu de caractères sélectionné sera utilisé pour\n"
+"la mise à jour ou la synchronisation des morceaux"
+
+#: gtkpod.glade:8379
+msgid "If you check this, gtkpod will descend into subdirectories recursively."
+msgstr ""
+"Si vous cochez cette case, gtkpod parcourera les sous-répertoires "
+"récursivement."
+
+#: gtkpod.glade:8381
+msgid "Add directories recursively"
+msgstr "Ajouter les répertoires récursivement"
+
+#: gtkpod.glade:8400
+#, fuzzy
+msgid "Duplicate Recognition is based on a (modified) md5 hash over the file."
+msgstr ""
+"La détection de doublons est basé sur la somme de contrôle md5 des fichiers"
+
+#: gtkpod.glade:8402
+msgid "Don't allow file duplication"
+msgstr "Ne pas autoriser de doublons de fichiers"
+
+#: gtkpod.glade:8452
+msgid ""
+"Display the list of duplicates that have been detected after adding files."
+msgstr "Afficher la liste des doublons détectés lors de l'ajout de fichier."
+
+#: gtkpod.glade:8454
+msgid "Display info about detected duplicates"
+msgstr "Afficher les infos au sujet des doublons"
+
+#: gtkpod.glade:8480
+msgid ""
+"If the filename (full path) of an existing track matches that of a track to "
+"be added, this option allows you to update the information about the "
+"existing track rather than just skipping the track altogether. No update "
+"will take place if the file hasn't changed and you have selected the 'Don't "
+"allow file duplication' option above."
+msgstr ""
+"Si le fichier (chemin complet) d'un morceau existant correspond au morceau à "
+"ajouter, cette option vous permet de mettre à jour les informations du "
+"morceau existant plutôt que de l'écraser. Notez que cette option est "
+"différente de l'option ci-dessus : les doublons sont des fichiers "
+"strictement identiques (même taille, mêmes tags)"
+
+#: gtkpod.glade:8482
+msgid ""
+"When adding dirs/files, update information of\n"
+"existing tracks with identical filenames"
+msgstr ""
+"Lors de l'ajout de fichiers/répertoires, mettre à jour\n"
+"les informations des morceaux existants avec les doublons"
+
+#: gtkpod.glade:8533
+msgid "Display a list of tracks that could actually be updated."
+msgstr "Afficher la liste des morceaux qui peuvent être mis à jour."
+
+#: gtkpod.glade:8535
+msgid "Display info about updated tracks"
+msgstr "Afficher les infos des morceaux mis à jour"
+
+#: gtkpod.glade:8592
+msgid "Display a list of tracks that could not be updated."
+msgstr "Afficher la liste des morceaux qui ne peuvent pas être mis à jour."
+
+#: gtkpod.glade:8594
+msgid "Display info about non-updated tracks"
+msgstr "Afficher les infos des morceaux qui n'ont pas été mis à jour"
+
+#: gtkpod.glade:8620
+#, fuzzy
+msgid "When syncing playlists"
+msgstr "Lors de la synchronisation des répertoires"
+
+#: gtkpod.glade:8694
+msgid "Confirm lists of directories"
+msgstr "Confirmer la liste des répertoires"
+
+#: gtkpod.glade:8712 gtkpod.glade:17758
+msgid ""
+"Normally, if a track is no longer present in the sync directory, it will be "
+"removed from the playlist, but not from the iPod or local repository.\n"
+"If this option is checked, tracks will be completely removed from the iPod "
+"or local repository, unless the track is a member of other playlists as "
+"well.\n"
+"NOTE: if you sync with the master playlist, you must check this option if "
+"you want tracks to be removed, because removing from the master playlist "
+"means removing from the iPod."
+msgstr ""
+
+#: gtkpod.glade:8716 gtkpod.glade:17762
+msgid ""
+"Delete tracks that are no longer present from the\n"
+"ipod or repository"
+msgstr ""
+
+#: gtkpod.glade:8735
+msgid "This is the same option as in 'Edit/Delete Confirmation'"
+msgstr "C'est la même option que dans «Édition/Confirmation de suppression»"
+
+#: gtkpod.glade:8737 gtkpod.glade:17782
+#, fuzzy
+msgid "Confirm before removing tracks from the iPod or repository"
+msgstr "Avant de supprimer complètement les morceaux de l'iPod"
+
+#: gtkpod.glade:8756 gtkpod.glade:17800
+msgid ""
+"Will show a list of tracks removed and a list of tracks newly added or "
+"updated."
+msgstr ""
+
+#: gtkpod.glade:8758 gtkpod.glade:17802
+msgid "Show summary of sync result"
+msgstr ""
+
+#: gtkpod.glade:8819
+msgid "<b>Sync</b>"
+msgstr "<b>Synchroniser</b>"
+
+#: gtkpod.glade:8875
+msgid ""
+"Highly recommended for faster import when taking advantage of the "
+"duplication recognition. Also, having the PC filenames allows writing "
+"changed ID3 tags to disk, and even to reconstruct your ipod's contents in "
+"case of file system corruption (change the \"transferred=\" entries in your "
+"backuped database)."
+msgstr ""
+"Cette option est plus que recommandée pour des raisons de performance lors "
+"de l'import en prenant en compte les doublons. De plus, cela permet de "
+"mettre à jour les attributs ID3 des fichiers sur disque, et de restaurer le "
+"contenu de votre iPod en cas de corruption du système de fichiers."
+
+#: gtkpod.glade:8877
+#, fuzzy
+msgid ""
+"Write extended information (PC filenames,\n"
+" MD5 hashes, encoding). Recommended."
+msgstr ""
+"Écrire les infos supplémentaires (noms de fichiers PC, somme de contrôle "
+"MD5,\n"
+" jeu des caractères). Recommandé."
+
+#: gtkpod.glade:8921 gtkpod.glade:14688
+#, fuzzy
+msgid "_General"
+msgstr "Général"
+
+#: gtkpod.glade:8957
+msgid "<b>Tag Reading</b>"
+msgstr "<b>Lecture des attributs</b>"
+
+#: gtkpod.glade:9020
+msgid "Read tags from file contents (e.g. ID3 tags in MP3 files)"
+msgstr ""
+"Lire les attributs à partir du contenu des fichiers (attributs ID3 dans les "
+"fichiers)"
+
+#: gtkpod.glade:9039 gtkpod.glade:9413
+msgid ""
+"artist: %a, album: %A, composer: %c, title: %t, genre: %G, track nr: %T, CD "
+"nr: %C, year: %Y, skip data: %*, the character '%': %%. You can separate "
+"several templates by a ';'. The first one matching the filename will be "
+"used. Example: '%a - %A/%T %t.mp3;%t.wav'."
+msgstr ""
+"artiste: %a, album: %A, compositeur: %c, titre: %t, genre: %G, numéro de "
+"piste: %T, numéro de CD: %C, ignore: %*, le caractère '%': %%. Vous pouvez "
+"séparer plusieurs masques par un ';'. Le premier masque concordant sera "
+"utilisé. Exemple : '%a - %A/%T %t.mp3;%t.wav'."
+
+#: gtkpod.glade:9041
+msgid "Use this template to parse filename for tag information:"
+msgstr ""
+"Utiliser ce masque pour générer les attributs à partir du nom de fichier :"
+
+#: gtkpod.glade:9118
+msgid "Overwrite tags that are already set"
+msgstr "Écraser les attributs déjà présents"
+
+#: gtkpod.glade:9151
+msgid ""
+"As a last resort set the following tags to the\n"
+"filename if they are (still) empty:"
+msgstr ""
+"Mettre un attribut par défaut au cas où les attributs restent\n"
+"vides après l'extraction à partir du nom de fichier :"
+
+#: gtkpod.glade:9187 src/display_sorttabs.c:2942 src/display_spl.c:85
+#: src/misc_conversion.c:62
+msgid "Artist"
+msgstr "Artiste"
+
+#: gtkpod.glade:9209 src/display_sorttabs.c:2948 src/display_spl.c:89
+#: src/misc_conversion.c:64
+msgid "Genre"
+msgstr "Genre"
+
+#. 0
+#: gtkpod.glade:9231 src/display_sorttabs.c:2945 src/display_spl.c:84
+#: src/misc_conversion.c:61
+msgid "Album"
+msgstr "Album"
+
+#. 5
+#: gtkpod.glade:9253 src/display_spl.c:97 src/misc_conversion.c:66
+msgid "Composer"
+msgstr "Compositeur"
+
+#: gtkpod.glade:9275 src/display_sorttabs.c:2954 src/display_spl.c:83
+#: src/misc_conversion.c:63
+msgid "Title"
+msgstr "Titre"
+
+#: gtkpod.glade:9330
+#, fuzzy
+msgid "<b>Coverart</b>"
+msgstr "<b>Importer</b>"
+
+#: gtkpod.glade:9392
+msgid ""
+"Music files can have images embedded in the APIC tag. Currently this is only "
+"supported for MP3 files."
+msgstr ""
+
+#: gtkpod.glade:9394
+msgid "Read coverart from embedded APIC data"
+msgstr ""
+
+#: gtkpod.glade:9415
+msgid "Add coverart from file using the following template"
+msgstr ""
+
+#: gtkpod.glade:9471
+#, fuzzy
+msgid ""
+"Determines the name of the file with the cover art. You can separate several "
+"patterns by semicolons which will be tried in order. Artist: %a, album: %A, "
+"composer: %c, title: %t, genre: %G, track nr: %T, CD nr: %C, year: %Y, "
+"original filename (requires extended information file): %o, original "
+"filename without file extension: %O, current playlist: %p, the character "
+"'%': %%."
+msgstr ""
+"Détermine le nom de fichier des morceaux que vous copiez de l'iPod, par "
+"exemple '%a/%A/%T - %t' ou '%o'. Vous pouvez séparer les expressions par des "
+"points-virgules -- gtkpod déterminera laquelle utiliser suivant l'extension "
+"du fichier donnée. Artiste: %a, album: %A, compositeur; %c, titre: %t, "
+"genre: %G, numéro de piste: %T, numéro de CD: %C, année: %Y, le nom de "
+"fichier original (nécessite le fichier d'infos étendues): %o, le caractère "
+"'%': %%."
+
+#: gtkpod.glade:9492
+#, fuzzy
+msgid "<b>Examples</b>"
+msgstr "<b>mserv</b>"
+
+#: gtkpod.glade:9526
+msgid "folder.jpg"
+msgstr ""
+
+#: gtkpod.glade:9554
+msgid "folder"
+msgstr ""
+
+#: gtkpod.glade:9582
+msgid "../%A.jpg"
+msgstr ""
+
+#: gtkpod.glade:9610
+msgid "%A"
+msgstr ""
+
+#: gtkpod.glade:9638
+msgid "Use <i>folder.jpg</i> as cover art."
+msgstr ""
+
+#: gtkpod.glade:9666
+msgid "Use <i>folder.jpg</i>, <i>folder.png</i>..."
+msgstr ""
+
+#: gtkpod.glade:9694
+msgid "Use <i>&lt;Album&gt;.jpg</i> in the parent directory"
+msgstr ""
+
+#: gtkpod.glade:9722
+msgid "Use <i>&lt;Album&gt;.jpg</i>, <i>&lt;Album&gt;.png</i>..."
+msgstr ""
+
+#: gtkpod.glade:9750
+msgid "folder.jpg;%a.jpg"
+msgstr ""
+
+#: gtkpod.glade:9778
+msgid "First try <i>folder.jpg</i>, then <i>&lt;artist&gt;.jpg</i>"
+msgstr ""
+
+#: gtkpod.glade:9835
+msgid "If both options are selected, embedded APIC data takes precedence."
+msgstr ""
+
+#: gtkpod.glade:9887
+msgid "<b>mserv</b>"
+msgstr "<b>mserv</b>"
+
+#: gtkpod.glade:9949 gtkpod.glade:10175
+msgid "Currently only rating is supported."
+msgstr "Actuellement, seule la notation est supportée."
+
+#: gtkpod.glade:9951
+msgid "Use mserv database to fill additional information"
+msgstr "Utiliser la base mserv pour remplir les autres informations"
+
+#: gtkpod.glade:9979
+msgid "Music Root:"
+msgstr "Racine musique :"
+
+#: gtkpod.glade:10007
+msgid "mserv database lookup will be done for music in this directory."
+msgstr "La base mserv utilise ce répertoire pour chercher une musique."
+
+#: gtkpod.glade:10029
+msgid "mserv Root:"
+msgstr "Racine mserv :"
+
+#: gtkpod.glade:10057
+msgid "Root directory of mserv database (trackinfo root)."
+msgstr "Rép. de la base mserv (infos)."
+
+#: gtkpod.glade:10079
+msgid "Username:"
+msgstr "Utilisateur :"
+
+#: gtkpod.glade:10107
+msgid "Username to be used for mserv database lookup."
+msgstr "Utilisateur pour se connecter à la base mserv."
+
+#: gtkpod.glade:10131 gtkpod.glade:10150 gtkpod.glade:12889 gtkpod.glade:12908
+#: gtkpod.glade:13069 gtkpod.glade:13138 gtkpod.glade:17159 gtkpod.glade:17179
+#: gtkpod.glade:17199 gtkpod.glade:17219 gtkpod.glade:17239 gtkpod.glade:17679
+#: gtkpod.glade:18238 gtkpod.glade:18281 gtkpod.glade:18301 gtkpod.glade:18711
+msgid "Browse"
+msgstr "Parcourir"
+
+#: gtkpod.glade:10177
+msgid "Show information about problems when accessing mserv"
+msgstr "Afficher les informations sur les problèmes liés à mserv"
+
+#: gtkpod.glade:10223
+#, fuzzy
+msgid "_Track Info"
+msgstr "Morceau"
+
+#: gtkpod.glade:10273
+msgid "<b>Displayed Track Attributes</b>"
+msgstr "<b>Attributs des morceaux affichés</b>"
+
+#: gtkpod.glade:11083
+msgid "<b>Sort Tabs</b>"
+msgstr "<b>Zones de tri</b>"
+
+#: gtkpod.glade:11145
+msgid "Keeps all compilation CDs grouped together in the artists sort tab."
+msgstr ""
+
+#: gtkpod.glade:11147
+msgid "Group artists on compilation CDs"
+msgstr ""
+
+#: gtkpod.glade:11172
+msgid "_Number of sort tabs:"
+msgstr "_Nombre de zones de tri :"
+
+#: gtkpod.glade:11252
+msgid "<b>Automatically select...</b>"
+msgstr "<b>Sélection automatique...</b>"
+
+#: gtkpod.glade:11314
+msgid ""
+"If you don't select the master playlist automatically, the initial database "
+"import is much faster because the display dosn't have to be updated."
+msgstr ""
+"Si vous ne choisissez pas de liste de lecture principale automatiquement, "
+"l'import initial sera beaucoup plus rapide car l'affichage n'aura pas à être "
+"mis à jour à chaque morceau."
+
+#: gtkpod.glade:11316
+msgid "...master playlist"
+msgstr "...liste de lecture principale"
+
+#: gtkpod.glade:11336
+msgid "...entry 'All' in sort tab..."
+msgstr "...onglet «Tous» dans l'onglet de tri..."
+
+#: gtkpod.glade:11421
+msgid "<b>Tooltips</b>"
+msgstr "<b>Infobulles</b>"
+
+#: gtkpod.glade:11484
+msgid "Display tooltips in main window"
+msgstr "Afficher les infobulles dans la fenêtre principale"
+
+#: gtkpod.glade:11504
+msgid "Display tooltips in prefs window"
+msgstr "Afficher les infobulles dans la fenêtre des préférences"
+
+#: gtkpod.glade:11550
+msgid "<b>Toolbar</b>"
+msgstr "<b>Barre d'outils</b>"
+
+#: gtkpod.glade:11613
+msgid "Display toolbar..."
+msgstr "Afficher la barre d'outils..."
+
+#: gtkpod.glade:11670
+msgid "...as icons"
+msgstr "...avec seulement les icônes"
+
+#: gtkpod.glade:11690
+msgid "...as text"
+msgstr "...avec seulement les libellés"
+
+#: gtkpod.glade:11711
+msgid "...both as icons and text"
+msgstr "...avec les icônes et libellés"
+
+#: gtkpod.glade:11772
+msgid "<b>Misc</b>"
+msgstr "<b>Divers</b>"
+
+#: gtkpod.glade:11834
+msgid ""
+"It is much faster to sort the display after all tracks have been added. Some "
+"people might feel irritated by this behaviour and should uncheck this option."
+msgstr ""
+"Il est plus rapide d'effectuer le tri après que tous les fichiers aient été "
+"ajoutés. Certaines personnes peuvent être génées par ce comportement et "
+"peuvent désactiver cette option."
+
+#: gtkpod.glade:11836
+msgid ""
+"Temporarily disable sorting when changing playlist\n"
+"or tab entry (faster!)"
+msgstr ""
+"Bloquer le tri lors du changement de liste\n"
+"ou d'onglet (plus rapide !)"
+
+#: gtkpod.glade:11856
+msgid ""
+"The display can be blocked after changing a selection. The display update is "
+"faster, but you have to wait until it's finished. When using this option, "
+"sorting is also temporarily disabled (see option above)."
+msgstr ""
+"L'application peut se trouver figée lors d'un changement de sélection. "
+"L'affichage est plus rapide, mais vous devez attendre la fin de l'opération."
+"En activant l'option, le tri est sésactivé temporairement (voir ci-dessus)."
+
+#: gtkpod.glade:11858
+msgid ""
+"Block display when changing playlist or tab\n"
+" entry (faster!)"
+msgstr ""
+"Bloquer l'affichage lors du changement de liste de lecture ou d'entrée\n"
+"(plus rapide !)"
+
+#: gtkpod.glade:11878
+msgid "This option will be re-activated when you upgrade gtkpod."
+msgstr "Cette option se réactivera quans vous mettrez à jour gtkpod"
+
+#: gtkpod.glade:11880
+msgid "Display messages and warnings at startup"
+msgstr "Afficher les messages et avertissements au démarrage"
+
+#: gtkpod.glade:11942
+msgid "Advanced Sorting Options"
+msgstr "Options de tri avancées"
+
+#: gtkpod.glade:12045
+msgid "<b>Track Editing</b>"
+msgstr "<b>Édition de morceau</b>"
+
+#: gtkpod.glade:12107
+msgid ""
+"The tags are written to the files on your harddrive and on the ipod (if "
+"available)."
+msgstr ""
+"Les tags ID3 seront écrits dans les fichiers sur votre disque et l'iPod (si "
+"disponible)"
+
+#: gtkpod.glade:12109
+msgid "Write ID3 tags to disk when modified in gtkpod"
+msgstr ""
+"Écrire les attributs ID3 sur le disque lors de leur modification dans gtkpod"
+
+#: gtkpod.glade:12165
+msgid ""
+"Normally the charset specified when first importing the track will be used "
+"to write the tags. If you have chosen a wrong charset when first importing a "
+"track, you should select this option along with the correct charset.  Note: "
+"uses the extended information file to store the charset information (see "
+"'Writing of the iTunesDB' on the 'Input/Output' page) and tracks imported "
+"before V0.51 will have no charset stored -- the charset specified on the "
+"'Input/Output' page will be used."
+msgstr ""
+"Par défaut, le jeu de caractère spécifié lors du premier import d'un morceau "
+"sera celui utilisé pour la mise à jour. Pour corriger un mauvais jeu de car. "
+"sélectionné à l'import initial d'un morceau, cocher cette option pour le "
+"modifier lors de la mise à jour de ce morceau. Note : les infos sur les "
+"caractères sont stockées dans un fichier d'information étendu et les "
+"morceaux importés avant la version 0.51 de gtkpod n'utilisait pas ce "
+"fichier. Ce sera le jeu spécifié ici qui sera utilisé en cas de mise à jour "
+"de ces morceaux."
+
+#: gtkpod.glade:12167
+#, fuzzy
+msgid ""
+"Use selected encoding (on the 'General' page)\n"
+"when writing tags"
+msgstr ""
+"Utiliser le jeu de caractère sélectionné (sur l'onglet 'Général') pour "
+"l'écriture des attributs"
+
+#: gtkpod.glade:12187
+msgid ""
+"This is the way to go, but maybe not all programs support it yet. ID3v2.4 "
+"uses unicode to store the tags, so you won't have to worry about charsets "
+"any more. gtkpod will use UTF8 encoding as this will not increase the size "
+"of pure ASCII tags. ID3v2.2/4 tags will also be written if they are already "
+"present in the file to write to."
+msgstr ""
+"Les tags ID3v2.4 utilisent l'unicode pour stocker les attributs de façon à "
+"ce que vous n'ayez pas à gérer vous même les jeux de caractères. gtkpod "
+"utilise UTF8 afin de ne pas augmenter la taille des tags en ASCII."
+
+#: gtkpod.glade:12189
+msgid "Always write ID3v2.4 tags (only applies to MP3)"
+msgstr "Toujours écrire les attributs ID3v2.4 (s'applique seulement aux MP3)"
+
+#: gtkpod.glade:12222
+msgid ""
+"If you select several tracks in the track list and edit a tag of the first "
+"track, the tags in the other tracks are updated as well."
+msgstr ""
+"Si vous sélectionnez plusieurs chansons et éditez le tag du premier morceau "
+"les attributs des autres morceaux seront aussi mis à jour."
+
+#: gtkpod.glade:12224
+msgid "Use 'Multi-Edit' for tracks selections"
+msgstr "Utiliser «Édition multiple» pour les morceaux sélectionnés"
+
+#: gtkpod.glade:12274
+msgid ""
+"Usually you don't want to set the title of several tracks to the same text. "
+"This option might avoid unwanted results (especially since there is no "
+"'undo' yet)."
+msgstr ""
+"Généralement, vous ne devriez pas avoir à utiliser cette option, car elle "
+"peut avoir des effets inattendus (pas d'annulation possible)."
+
+#: gtkpod.glade:12276
+msgid "Use 'Multi-Edit' also for title field"
+msgstr "Utiliser «Édition multiple» aussi pour les titres"
+
+#: gtkpod.glade:12329
+msgid "<b>Auto-Generated Playlists</b>"
+msgstr "<b>Listes de lecture générées automatiquement</b>"
+
+#: gtkpod.glade:12397
+msgid "Number of tracks in generated playlists:"
+msgstr "Nombre de morceaux dans les listes de lecture générées :"
+
+#: gtkpod.glade:12422
+msgid ""
+"Number of tracks in the generated playlists 'Most Often Listened', 'Best "
+"Rated' and 'Most Recently Played'. Choose '0' for 'no limit'."
+msgstr ""
+"Nombre de morceaux dans les listes de lecture générées automatiquement."
+"Mettre '0' pour ne pas spécifier de limite."
+
+#: gtkpod.glade:12451
+msgid "Also include tracks never played in \"Best Rated\" playlist"
+msgstr ""
+"Inclure aussi les morceaux qui n'ont jamais été joués dans la liste de \n"
+"lecture des morceaux les mieux notés"
+
+#: gtkpod.glade:12497
+msgid "<b>Delete Confirmation</b>"
+msgstr "<b>Confirmation de suppression</b>"
+
+#: gtkpod.glade:12560
+msgid "Before removing playlists or tracks from a playlist"
+msgstr "Avant de supprimer les listes ou morceaux d'une liste de lecture"
+
+#: gtkpod.glade:12580
+msgid "Before removing tracks from the iPod"
+msgstr "Avant de supprimer complètement les morceaux de l'iPod"
+
+#: gtkpod.glade:12600
+msgid "Before removing tracks from the harddisk"
+msgstr "Avant de supprimer complètement les morceaux du disque dur"
+
+#: gtkpod.glade:12620
+msgid "Before removing tracks from the local database"
+msgstr ""
+"Avant de supprimer complètement les morceaux de la base de données locale"
+
+#: gtkpod.glade:12640
+msgid ""
+"Confirm before removing tracks from the iPod or repository\n"
+"when syncing playlists"
+msgstr ""
+
+#: gtkpod.glade:12723
+msgid "<b>Play</b>"
+msgstr "<b>Jouer</b>"
+
+#: gtkpod.glade:12788
+msgid "Command for 'Play now':"
+msgstr "Ligne de commande pour «Jouer maintenant» :"
+
+#: gtkpod.glade:12816
+msgid "Command for 'Enqueue':"
+msgstr "Ligne de commande pour «Mettre dans la file d'attente» :"
+
+#: gtkpod.glade:12844
+#, fuzzy
+msgid ""
+"For example, 'xmms %s' will clear xmms' current playlist, add the selected "
+"tracks and start playing."
+msgstr ""
+"Par exemple 'xmms %s» videra la liste de lecture actuelle et ajoutera les "
+"morceaux sélectionnés et commencera la lecture."
+
+#: gtkpod.glade:12866
+#, fuzzy
+msgid ""
+"For example, 'xmms -e %s' will append (enqueue) the selected tracks to xmms' "
+"current playlist."
+msgstr ""
+"Par exemple «xmms -e %s» ajoutera à la liste de lecture de xmms les morceaux "
+"sélectionnés."
+
+#: gtkpod.glade:12953
+msgid "<b>Volume Normalization</b>"
+msgstr "<b>Normalisation du volume</b>"
+
+#: gtkpod.glade:13018
+msgid "'mp3gain' executable:"
+msgstr "Chemin de l'exécutable «mp3gain» :"
+
+#: gtkpod.glade:13046
+msgid ""
+"Set this to 'mp3gain -q -k' to use the 'Normalize volume' functionality in "
+"the Tools Menu. If this is set, missing normalization data for mp3 files "
+"will be calculated and written to your mp3 file using this command."
+msgstr ""
+
+#: gtkpod.glade:13087
+#, fuzzy
+msgid "'aacgain' executable:"
+msgstr "Chemin de l'exécutable «mp3gain» :"
+
+#: gtkpod.glade:13115
+msgid ""
+"Set this to 'aacgain -q -k' to use the 'Normalize volume' functionality in "
+"the Tools Menu. If this is set, missing normalization data for .m4a and .m4b "
+"files will be calculated and written to your music file using this command."
+msgstr ""
+
+#: gtkpod.glade:13183
+msgid "<b>Calendar/Contacts/Notes</b>"
+msgstr ""
+
+#: gtkpod.glade:13246
+msgid "Set options for Calendar/Contacts/Notes"
+msgstr ""
+
+#: gtkpod.glade:13381
+msgid "Details"
+msgstr ""
+
+#: gtkpod.glade:13449
+#, fuzzy
+msgid "Cover"
+msgstr "Compositeur"
+
+#: gtkpod.glade:13538
+msgid "Set Cover Art"
+msgstr ""
+
+#: gtkpod.glade:13575
+msgid ""
+"If you check this, information (cover art and meta information) changed for "
+"this track will be copied to all other selected tracks as well. Use with "
+"care."
+msgstr ""
+
+#: gtkpod.glade:13621
+msgid ""
+"Change all tracks\n"
+"simultaneously"
+msgstr ""
+
+#: gtkpod.glade:13713
+msgid "Remove Cover Art"
+msgstr ""
+
+#: gtkpod.glade:14646
+msgid "(Checked)"
+msgstr ""
+
+#: gtkpod.glade:15088
+msgid "_Podcasts"
+msgstr ""
+
+#: gtkpod.glade:16127
+msgid "_Other"
+msgstr ""
+
+#: gtkpod.glade:16425
+msgid "_Undo All"
+msgstr ""
+
+#: gtkpod.glade:16499
+#, fuzzy
+msgid "_Undo Track"
+msgstr "Morceaux non notés"
+
+#: gtkpod.glade:16546
+#, fuzzy
+msgid "Repository Options"
+msgstr "Options de tri"
+
+#: gtkpod.glade:16667
+msgid "Add new repository/iPod"
+msgstr ""
+
+#: gtkpod.glade:16736 gtkpod.glade:18163 gtkpod.glade:18659
+#, fuzzy
+msgid "iPod mountpoint:"
+msgstr "Point de montage de l'iPod :"
+
+#: gtkpod.glade:16764 gtkpod.glade:18135
+msgid "iTunesDB backup:"
+msgstr ""
+
+#: gtkpod.glade:16792 gtkpod.glade:18107 gtkpod.glade:18730 gtkpod.glade:18922
+msgid "Model:"
+msgstr ""
+
+#: gtkpod.glade:16820 gtkpod.glade:18079
+msgid "Path:"
+msgstr ""
+
+#: gtkpod.glade:16848
+msgid "<b>Synchronization</b>"
+msgstr "<b>Synchronization</b>"
+
+#: gtkpod.glade:16906
+msgid "Contacts sync command:"
+msgstr "Commande pour la synchronisation des contacts :"
+
+#: gtkpod.glade:16934
+msgid "Calendar sync command:"
+msgstr "Commande pour la synchronisation du calendrier :"
+
+#: gtkpod.glade:16962
+msgid "Notes sync command:"
+msgstr "Commande pour la synchronisation des notes :"
+
+#: gtkpod.glade:16991
+msgid "Call automatically when synchronizing iTunesDB"
+msgstr "Exécuter en même temps que la synchronisation de la base iTunesDB"
+
+#: gtkpod.glade:17014 gtkpod.glade:17038 gtkpod.glade:17062 gtkpod.glade:17086
+#: gtkpod.glade:17110 gtkpod.glade:17134 gtkpod.glade:17658 gtkpod.glade:18435
+msgid ""
+"Specify exact path including command line options. '%i' will be replaced "
+"with the mount point of the iPod."
+msgstr ""
+"Indiquer le chemin exact ainsi que les paramètres de ligne de commande. '%i' "
+"sera remplacé par le point de montage de l'iPod."
+
+#: gtkpod.glade:17294
+msgid "Update/Sync all playlists now"
+msgstr ""
+
+#: gtkpod.glade:17314
+#, fuzzy
+msgid "Delete repository"
+msgstr "Supprimer de l'iPod"
+
+#: gtkpod.glade:17334 src/context_menus.c:430 src/context_menus.c:448
+#: src/context_menus.c:523
+msgid "I'm sure"
+msgstr ""
+
+#: gtkpod.glade:17390
+#, fuzzy
+msgid "<b>Repositories</b>"
+msgstr "<b>Infobulles</b>"
+
+#: gtkpod.glade:17587
+msgid ""
+"Directories to sync with are determined from the filenames of the tracks in "
+"the playlist."
+msgstr ""
+
+#: gtkpod.glade:17589
+msgid "On startup automatically sync with playlist directories"
+msgstr ""
+
+#: gtkpod.glade:17608
+#, fuzzy
+msgid "On startup automatically sync with the following directory"
+msgstr "Prêt à synchroniser les répertoires suivants ?"
+
+#: gtkpod.glade:17702
+#, fuzzy
+msgid "Don't automatically sync on startup"
+msgstr "Importer les données de l'iPod au démarrage de gtkpod"
+
+#: gtkpod.glade:17848
+msgid "On startup automatically update (Live Playlist)"
+msgstr ""
+
+#: gtkpod.glade:17878
+msgid "Update/Sync playlist now"
+msgstr ""
+
+#: gtkpod.glade:17925
+#, fuzzy
+msgid "<b>Playlists</b>"
+msgstr "<b>Jouer</b>"
+
+#: gtkpod.glade:18042
+#, fuzzy
+msgid "Create Repository"
+msgstr "Supprimer de l'iPod"
+
+#: gtkpod.glade:18320
+msgid ""
+"Insert before\n"
+"Insert after"
+msgstr ""
+
+#: gtkpod.glade:18358
+#, fuzzy
+msgid "Repository type:"
+msgstr "Options de tri"
+
+#: gtkpod.glade:18386
+msgid ""
+"iPod\n"
+"Local Repository (Standard)\n"
+"Local Repository (Podcasts)\n"
+msgstr ""
+
+#: gtkpod.glade:18407
+#, fuzzy
+msgid "Repository name:"
+msgstr "Options de tri"
+
+#: gtkpod.glade:18543 gtkpod.glade:18806
+msgid "Initialize iPod"
+msgstr ""
+
+#: gtkpod.glade:18613
+msgid "<b>Please select mountpoint and your iPod model</b>"
+msgstr ""
+
 #: src/charset.c:53
 msgid "Arabic (IBM-864)"
 msgstr "Arabe (IBM-864)"
@@ -220,7 +2092,7 @@
 
 #. sanity!
 #. check for "System Charset" and return NULL
-#: src/charset.c:160 src/charset.c:170 src/charset.c:222
+#: src/charset.c:160 src/charset.c:170 src/charset.c:223
 msgid "System Charset"
 msgstr "Jeu de caractères du système"
 
@@ -232,250 +2104,236 @@
 msgstr ""
 "Une autre instance de gtkpod tourne déjà. Serveur de compteur non démarré.\n"
 
-#: src/confirmation.c:361
+#: src/confirmation.c:376
 msgid "Confirmation Dialogue"
 msgstr "Message de confirmation"
 
-#: src/context_menus.c:352 src/tools.c:634
+#: src/context_menus.c:367 src/tools.c:852
 msgid "Play Now"
 msgstr "Jouer maintenant"
 
-#: src/context_menus.c:354 src/tools.c:645
+#: src/context_menus.c:373 src/tools.c:865
 msgid "Enqueue"
 msgstr "Mettre dans la file d'attente"
 
-#: src/context_menus.c:357
+#: src/context_menus.c:379
 #, fuzzy
 msgid "Copy Tracks to Filesystem"
 msgstr "_Mettre à jour les morceaux à partir des fichiers"
 
-#: src/context_menus.c:359 src/file_export.c:1069
+#: src/context_menus.c:386 src/file_export.c:1081
 msgid "Create Playlist File"
 msgstr "Créer un fichier de liste"
 
-#: src/context_menus.c:361
-msgid "Edit Details"
-msgstr ""
+#: src/context_menus.c:393
+msgid "Create new Playlist"
+msgstr "Créer une nouvelle liste"
 
-#: src/context_menus.c:363 gtkpod.glade:12817
-msgid "Update"
-msgstr "Mettre à jour"
+#: src/context_menus.c:400
+#, fuzzy
+msgid "Update Tracks from File"
+msgstr "_Mettre à jour les morceaux à partir des fichiers"
 
-#: src/context_menus.c:365
-msgid "Sync Dirs"
-msgstr "Synchroniser les répertoires"
+#: src/context_menus.c:414
+msgid "Sync Playlist with Dir(s)"
+msgstr ""
 
-#: src/context_menus.c:367
-msgid "Normalize"
-msgstr "Normaliser"
+#: src/context_menus.c:424
+msgid "Remove All Tracks from iPod"
+msgstr "Supprimer tout les morceaux du iPod"
 
-#: src/context_menus.c:369
-msgid "Create new Playlist"
-msgstr "Créer une nouvelle liste"
+#: src/context_menus.c:442
+#, fuzzy
+msgid "Remove All Podcasts from iPod"
+msgstr "Supprimer tout les morceaux du iPod"
 
-#: src/context_menus.c:372
-msgid "Edit Smart Playlist"
-msgstr "Éditer la liste intelligente"
+#: src/context_menus.c:457
+msgid "Delete Including Tracks"
+msgstr "Supprimer avec les morceaux"
 
-#: src/context_menus.c:378
-msgid "Alphabetize"
-msgstr "Trier"
+#: src/context_menus.c:465
+msgid "Delete But Keep Tracks"
+msgstr "Supprimer mais garder les morceaux"
 
-#: src/context_menus.c:402
-msgid "Delete From iPod"
-msgstr "Supprimer de l'iPod"
+#: src/context_menus.c:473
+#, fuzzy
+msgid "Edit iPod Properties"
+msgstr "Créer les répertoires de l'iPod"
 
-#: src/context_menus.c:408
-msgid "Delete From Harddisk"
-msgstr "Supprimer du disque dur"
+#: src/context_menus.c:493
+#, fuzzy
+msgid "Load iPod"
+msgstr "_iPod"
 
-#: src/context_menus.c:414
-msgid "Delete From Database"
-msgstr "Supprimer de la base de données"
+#: src/context_menus.c:500
+msgid "Eject iPod"
+msgstr ""
 
-#: src/context_menus.c:420
-msgid "Delete From Playlist"
-msgstr "Supprimer de la liste de lecture"
+#: src/context_menus.c:517
+msgid "Remove All Tracks from Database"
+msgstr "Supprimer tout les morceaux de la base de données"
 
-#: src/context_menus.c:439
-msgid "Delete Including Tracks"
-msgstr "Supprimer avec les morceaux"
-
-#: src/context_menus.c:445
+#: src/context_menus.c:532
 msgid "Delete Including Tracks (Harddisk)"
 msgstr "Supprimer les morceaux inclus (disque dur)"
 
-#: src/context_menus.c:451
+#: src/context_menus.c:540
 msgid "Delete Including Tracks (Database)"
 msgstr "Supprimer les morceaux inclus (base de données)"
 
-#: src/context_menus.c:457
-msgid "Delete But Keep Tracks"
-msgstr "Supprimer mais garder les morceaux"
+#: src/context_menus.c:548
+msgid "Delete From iPod"
+msgstr "Supprimer de l'iPod"
 
-#: src/context_menus.c:463
-msgid "Remove All Tracks from iPod"
-msgstr "Supprimer tout les morceaux du iPod"
+#: src/context_menus.c:556
+msgid "Delete From Playlist"
+msgstr "Supprimer de la liste de lecture"
 
-#: src/context_menus.c:469
-msgid "Remove All Tracks from Database"
-msgstr "Supprimer tout les morceaux de la base de données"
+#: src/context_menus.c:564
+msgid "Delete From Harddisk"
+msgstr "Supprimer du disque dur"
 
-#: src/context_menus.c:476
-#, fuzzy
-msgid "Remove All Podcasts from iPod"
-msgstr "Supprimer tout les morceaux du iPod"
+#: src/context_menus.c:572
+msgid "Delete From Database"
+msgstr "Supprimer de la base de données"
 
-#: src/context_menus.c:487 gtkpod.glade:156
-msgid "Update Podcasts"
-msgstr ""
+#: src/context_menus.c:580
+msgid "Alphabetize"
+msgstr "Trier"
 
-#: src/context_menus.c:494
+#: src/context_menus.c:596
 #, fuzzy
-msgid "Podcasts Preferences"
-msgstr "_Préférences"
+msgid "Edit Playlist Properties"
+msgstr "Ajouter une liste de lecture"
 
 #: src/date_parser.l:269
 #, c-format
 msgid "Date format error: unrecognized character: '%s'\n"
 msgstr "Erreur dans le format de date : caractère inconnu : «%s»\n"
 
-#: src/details.c:1035 gtkpod.glade:4365
-msgid "n/a"
-msgstr "-"
-
-#: src/details.c:1099
+#: src/details.c:1182
 #, fuzzy
 msgid "<b>n/a</b>"
 msgstr "<b>Jouer</b>"
 
-#: src/display.c:924 src/display.c:1022 src/display.c:1071 src/display.c:1302
-#: src/display.c:1358 src/display.c:1413 src/display.c:1464 src/display.c:1628
-#: src/misc_playlist.c:274
-msgid "No playlist selected"
-msgstr "Aucune liste de lecture sélectionnée"
-
-#: src/display.c:934
+#: src/display.c:891
 #, fuzzy
 msgid "Edit selected entry of which sort tab?"
 msgstr "Mettre à jour l'entrée sélectionnée de quelle zone de tri ?"
 
 #. no entry selected
-#: src/display.c:941 src/misc_confirm.c:441 src/misc_track.c:1482
+#: src/display.c:898 src/misc_confirm.c:431 src/misc_track.c:1613
 msgid "No entry selected."
 msgstr "Aucun élément sélectionné."
 
-#: src/display.c:960 src/display.c:1040 src/display.c:1345 src/display.c:1401
-#: src/display.c:1452 src/display.c:1503
-msgid "No tracks selected"
-msgstr "Aucun morceau sélectionné"
-
-#: src/display.c:1056 src/display.c:1322 src/display.c:1378 src/display.c:1430
-#: src/display.c:1481 src/display.c:1650
+#: src/display.c:1057 src/display.c:1384 src/display.c:1440 src/display.c:1494
+#: src/display.c:1549 src/display.c:1810
 #, c-format
 msgid "No entry selected in Sort Tab %d"
 msgstr "Aucune entrée sélectionnée dans la zone de tri %d"
 
-#: src/display.c:1095
+#: src/display.c:1096
 #, fuzzy
 msgid "Remove entry of which sort tab from database?"
 msgstr "Exporter l'entrée sélectionnée de quelle zone de tri ?"
 
-#: src/display.c:1103
+#: src/display.c:1104
 #, fuzzy
 msgid "Remove tracks in selected entry of which filter tab from the iPod?"
 msgstr ""
 "Ajouter dans la file d'attente les morceaux de l'entrée sélectionnée de "
 "quelle zone de tri ?"
 
-#: src/display.c:1125
+#: src/display.c:1126
 #, fuzzy
 msgid "Remove tracks in selected entry of which filter tab from the harddisk?"
 msgstr ""
 "Ajouter dans la file d'attente les morceaux de l'entrée sélectionnée de "
 "quelle zone de tri ?"
 
-#: src/display.c:1155
+#: src/display.c:1156
 #, fuzzy
 msgid "Remove tracks in selected entry of which filter tab from playlist?"
 msgstr ""
 "Ajouter dans la file d'attente les morceaux de l'entrée sélectionnée de "
 "quelle zone de tri ?"
 
-#: src/display.c:1174
-msgid "Currently no iPod database selected"
-msgstr "Pas de base de données iPod sélectionnée"
+#: src/display.c:1183 src/display.c:1221
+#, c-format
+msgid ""
+"iPod at '%s' is not loaded.\n"
+"Please load it first."
+msgstr ""
 
-#: src/display.c:1202 src/display.c:1229
+#: src/display.c:1265 src/display.c:1292
 msgid "Update selected entry of which sort tab?"
 msgstr "Mettre à jour l'entrée sélectionnée de quelle zone de tri ?"
 
-#: src/display.c:1248
-msgid "Sync dirs of selected entry in which sort tab?"
-msgstr ""
-"Synchroniser les répertoires de l'entrée sélectionnée de quelle zone de tri ?"
-
-#: src/display.c:1316
+#: src/display.c:1378
 msgid "Export selected entry of which sort tab?"
 msgstr "Exporter l'entrée sélectionnée de quelle zone de tri ?"
 
-#: src/display.c:1372
+#: src/display.c:1434
 msgid "Create playlist file from selected entry of which sort tab?"
 msgstr "Créer un fichier de liste à partir de quelle zone de tri ?"
 
-#: src/display.c:1424
+#: src/display.c:1488
 msgid "Play tracks in selected entry of which sort tab?"
 msgstr "Jouer les morceaux de l'entrée sélectionnée de quelle zone de tri ?"
 
-#: src/display.c:1475
+#: src/display.c:1543
 msgid "Enqueue tracks in selected entry of which sort tab?"
 msgstr ""
 "Ajouter dans la file d'attente les morceaux de l'entrée sélectionnée de "
 "quelle zone de tri ?"
 
-#: src/display.c:1640
+#: src/display.c:1800
 msgid "Normalize tracks in selected entry of which sort tab?"
 msgstr ""
 "Normaliser les morceaux de l'entrée sélectionnée de quelle zone de tri ?"
 
-#: src/display_itdb.c:319
+#: src/display_itdb.c:355
 #, fuzzy, c-format
-msgid "Failed to set cover art: '%s'"
+msgid "Failed to set cover art: '%s'\n"
 msgstr "Impossible d'écrire «%s-%s»\n"
 
+#: src/display_itdb.c:835 src/display_itdb.c:967 src/repository.c:1189
+#, fuzzy
+msgid "iPod"
+msgstr "_iPod"
+
+#: src/display_itdb.c:844 src/display_itdb.c:965
+msgid "Local"
+msgstr "Local"
+
 #. add podcast playlist
-#: src/display_itdb.c:843 src/display_itdb.c:871 src/display_itdb.c:975
-#: gtkpod.glade:13669
+#: src/display_itdb.c:852 src/display_itdb.c:963 src/display_itdb.c:991
 msgid "Podcasts"
 msgstr ""
 
-#: src/display_itdb.c:845 src/display_itdb.c:941
-msgid "Local"
-msgstr "Local"
-
-#: src/display_itdb.c:1081
+#: src/display_itdb.c:1050
 #, c-format
 msgid "Increased playcount for '%s'"
 msgstr "Compteur de lecture incrémenté pour «%s»"
 
 #. give a notice on the statusbar -- otherwise the user
 #. * will never know why the drag is not possible
-#: src/display_playlists.c:498 src/display_playlists.c:540
+#: src/display_playlists.c:496 src/display_playlists.c:538
 msgid "Error: drag from iPod not possible in offline mode."
 msgstr "Erreur : glisser-déposer depuis l'iPod impossible en mode hors-ligne."
 
-#: src/display_playlists.c:567 src/display_songs.c:285
+#: src/display_playlists.c:565 src/display_songs.c:287
 #, c-format
 msgid "Copied one track"
 msgid_plural "Copied %d tracks"
 msgstr[0] "Un morceau copié"
 msgstr[1] "%d morceaux copiés"
 
-#: src/display_playlists.c:856
+#: src/display_playlists.c:851
 msgid "Can't reorder sorted treeview."
 msgstr "Impossíble de réorganiser la vue arborescente triée."
 
-#: src/display_playlists.c:947
+#: src/display_playlists.c:944
 #, c-format
 msgid ""
 "This DND type (%d) is not (yet) supported. If you feel implementing this "
@@ -485,18 +2343,14 @@
 "Ce type de glisser-déposer (%d) n'est pas (encore) supporté. Si vous vous "
 "sentez prêt à l'implémenter, veuillez contacter l'auteur.\n"
 
-#: src/display_playlists.c:1830 gtkpod.glade:3997
-msgid "Playlists"
-msgstr "Listes de lecture"
-
-#: src/display_songs.c:280
+#: src/display_songs.c:282
 #, c-format
 msgid "Moved one track"
 msgid_plural "Moved %d tracks"
 msgstr[0] "Un morceau déplacé"
 msgstr[1] "%d morceaux déplacés"
 
-#: src/display_songs.c:1669
+#: src/display_songs.c:1690
 #, c-format
 msgid ""
 "Cannot unsort track view because of a bug in the GTK lib you are using (%d.%"
@@ -509,124 +2363,91 @@
 "précédent.\n"
 "\n"
 
-#: src/display_songs.c:1922
+#: src/display_songs.c:1923
 #, fuzzy
 msgid "Rtng"
 msgstr "Note"
 
-#: src/display_songs.c:1925
+#: src/display_songs.c:1926
 msgid "#"
 msgstr "#"
 
-#: src/display_songs.c:1928
+#: src/display_songs.c:1929
 msgid "CD"
 msgstr "CD"
 
-#: src/display_songs.c:1931
+#: src/display_songs.c:1932
 msgid "ID"
 msgstr "Id"
 
-#: src/display_songs.c:1934
+#: src/display_songs.c:1935
 msgid "Trnsfrd"
 msgstr "Transféré"
 
-#: src/display_songs.c:1938
+#: src/display_songs.c:1939
 msgid "Cmpl"
 msgstr "Cmpl"
 
-#: src/display_songs.c:1942 src/display_spl.c:94
+#: src/display_songs.c:1945 src/display_spl.c:94
 msgid "Time"
 msgstr "Durée"
 
-#: src/display_songs.c:1945
+#: src/display_songs.c:1948
 msgid "Plycnt"
 msgstr "Cpt. lect"
 
-#: src/display_songs.c:1948 gtkpod.glade:2433
-msgid "Played"
-msgstr "Joué le"
-
-#: src/display_songs.c:1951 gtkpod.glade:2456
-msgid "Modified"
-msgstr "Modifié le"
-
-#: src/display_songs.c:1954 src/display_sorttabs.c:3117 gtkpod.glade:2551
-msgid "Added"
-msgstr "Ajouté"
-
-#: src/display_songs.c:1957
+#: src/display_songs.c:1960
 #, fuzzy
 msgid "Released"
 msgstr "Lire"
 
-#: src/display_songs.c:1960 src/display_sorttabs.c:2856 src/display_spl.c:88
+#: src/display_songs.c:1963 src/display_sorttabs.c:2957 src/display_spl.c:88
 #: src/misc_conversion.c:85
 msgid "Year"
 msgstr "Année"
 
-#: src/display_songs.c:1963
+#: src/display_songs.c:1966
 msgid "Vol."
 msgstr "Vol."
 
-#: src/display_songs.c:1966
+#: src/display_songs.c:1969
 msgid "Sndchk."
 msgstr "Ctrl. Son"
 
-#: src/display_sorttabs.c:400
+#: src/display_sorttabs.c:456
 msgid "'Played' condition ignored because of error."
 msgstr "Condition «Joué le» ignorée à cause d'une erreur."
 
-#: src/display_sorttabs.c:403
+#: src/display_sorttabs.c:459
 msgid "'Modified' condition ignored because of error."
 msgstr "Condition «Modifié le» ignorée à cause d'une erreur."
 
-#: src/display_sorttabs.c:406
+#: src/display_sorttabs.c:462
 msgid "'Added' condition ignored because of error."
 msgstr "Condition «Ajouté le» ignorée à cause d'une erreur."
 
-#: src/display_sorttabs.c:1492 src/misc_conversion.c:60
+#: src/display_sorttabs.c:1582 src/misc_conversion.c:60
 msgid "All"
 msgstr "Tous"
 
-#: src/display_sorttabs.c:1518
+#: src/display_sorttabs.c:1608
 #, fuzzy
 msgid "Compilations"
 msgstr "Compilation"
 
-#: src/display_sorttabs.c:2841 src/display_spl.c:85 src/misc_conversion.c:62
-#: gtkpod.glade:8709
-msgid "Artist"
-msgstr "Artiste"
-
-#. 0
-#: src/display_sorttabs.c:2844 src/display_spl.c:84 src/misc_conversion.c:61
-#: gtkpod.glade:8753
-msgid "Album"
-msgstr "Album"
-
-#: src/display_sorttabs.c:2847 src/display_spl.c:89 src/misc_conversion.c:64
-#: gtkpod.glade:8731
-msgid "Genre"
-msgstr "Genre"
-
-#: src/display_sorttabs.c:2850
+#: src/display_sorttabs.c:2951
 msgid "Comp."
 msgstr "Comp."
 
-#: src/display_sorttabs.c:2853 src/display_spl.c:83 src/misc_conversion.c:63
-#: gtkpod.glade:8797
-msgid "Title"
-msgstr "Titre"
-
-#: src/display_sorttabs.c:2859
+#: src/display_sorttabs.c:2960
 msgid "Special"
 msgstr "Spécial"
 
-#: src/display_sorttabs.c:3115
+#: src/display_sorttabs.c:3216
 msgid "Last Played"
 msgstr "Dernière fois joué"
 
-#: src/display_sorttabs.c:3116
+#: src/display_sorttabs.c:3217
 msgid "Last Modified"
 msgstr "Dernière fois modifié"
 
@@ -650,7 +2471,7 @@
 msgid "Hz"
 msgstr "Hz"
 
-#: src/display_spl.c:75 src/display_spl.c:160 src/info.c:732
+#: src/display_spl.c:75 src/display_spl.c:160 src/info.c:777
 msgid "MB"
 msgstr "Mo"
 
@@ -691,15 +2512,6 @@
 msgid "Date added"
 msgstr "Ajouté le"
 
-#. 5
-#: src/display_spl.c:97 src/misc_conversion.c:66 gtkpod.glade:8775
-msgid "Composer"
-msgstr "Compositeur"
-
-#: src/display_spl.c:98 src/misc_conversion.c:78 gtkpod.glade:2387
-msgid "Playcount"
-msgstr "Cpt. lecture"
-
 #: src/display_spl.c:99
 msgid "Last played"
 msgstr "Dernière fois joué"
@@ -708,10 +2520,6 @@
 msgid "Disc number"
 msgstr "Numéro de disque"
 
-#: src/display_spl.c:101 src/misc_conversion.c:79 gtkpod.glade:2410
-msgid "Rating"
-msgstr "Note"
-
 #: src/display_spl.c:102 src/misc_conversion.c:88
 msgid "Compilation"
 msgstr "Compilation"
@@ -724,10 +2532,6 @@
 msgid "Grouping"
 msgstr "Grouping"
 
-#: src/display_spl.c:105 gtkpod.glade:1443
-msgid "Playlist"
-msgstr "Liste de lecture"
-
 #: src/display_spl.c:111
 msgid "contains"
 msgstr "contient"
@@ -802,7 +2606,7 @@
 msgid "hours"
 msgstr "heures"
 
-#: src/display_spl.c:163 src/info.c:732
+#: src/display_spl.c:163 src/info.c:777
 msgid "GB"
 msgstr "Go"
 
@@ -858,25 +2662,25 @@
 msgid "lowest rating"
 msgstr "les moins bien notés"
 
-#: src/display_spl.c:1049 src/display_spl.c:1064
+#: src/display_spl.c:1047 src/display_spl.c:1062
 msgid "to"
 msgstr "à"
 
-#: src/display_spl.c:1276
+#: src/display_spl.c:1279
 msgid "-"
 msgstr "-"
 
-#: src/display_spl.c:1286
+#: src/display_spl.c:1294
 msgid "+"
 msgstr "+"
 
-#: src/display_spl.c:1503 src/misc_playlist.c:67 src/misc_playlist.c:69
-#: src/misc_playlist.c:94 src/misc_playlist.c:96 src/misc_playlist.c:415
-#: src/misc_playlist.c:417
+#: src/display_spl.c:1513 src/misc_playlist.c:67 src/misc_playlist.c:69
+#: src/misc_playlist.c:94 src/misc_playlist.c:96 src/misc_playlist.c:429
+#: src/misc_playlist.c:431
 msgid "New Playlist"
 msgstr "Nouvelle liste de lecture"
 
-#: src/file.c:195
+#: src/file.c:230
 #, c-format
 msgid ""
 "'%s' is a directory, not a playlist file.\n"
@@ -885,7 +2689,7 @@
 "'%s' est un répertoire, pas un fichier de liste.\n"
 "\n"
 
-#: src/file.c:222
+#: src/file.c:258
 #, c-format
 msgid ""
 "'%s' is a not a known playlist file.\n"
@@ -894,7 +2698,7 @@
 "'%s' n'est pas un fichier connu de liste\n"
 "\n"
 
-#: src/file.c:239
+#: src/file.c:275
 #, c-format
 msgid ""
 "Cannot open '%s' for reading.\n"
@@ -903,57 +2707,57 @@
 "Ne peut ouvrir en lecture le fichier '%s'.\n"
 "\n"
 
-#: src/file.c:322
+#: src/file.c:359
 #, c-format
 msgid "Skipping '%s' because it is a directory.\n"
 msgstr "Saut de «%s» parce qu'il s'agit d'un répertoire.\n"
 
-#: src/file.c:327
+#: src/file.c:364
 #, c-format
 msgid "Skipping '%s' to avoid adding playlist file recursively\n"
 msgstr ""
 "Saut de  '%s' pour éviter d'ajouter une liste de lecture récursivement\n"
 
-#: src/file.c:582
+#: src/file.c:619
 #, c-format
 msgid "Unknown token '%s' in template '%s'\n"
 msgstr "Paramètre «%s» dans le modèle «%s» inexistant\n"
 
-#: src/file.c:817
+#: src/file.c:871
 #, c-format
 msgid "Local filename not valid (%s)"
 msgstr "Nom de fichier local invalide (%s)"
 
-#: src/file.c:870
+#: src/file.c:930
 #, c-format
 msgid "No information found for user '%s' in '%s'"
 msgstr "Aucune info pour l'utilisateur «%s» dans «%s»"
 
-#: src/file.c:877
+#: src/file.c:939
 #, c-format
 msgid "mserv data file (%s) not available for track (%s)"
 msgstr "Fichier de données mserv (%s) non présent pour le morceau (%s)"
 
-#: src/file.c:885
+#: src/file.c:947
 #, c-format
 msgid "Track (%s) not in mserv music root directory (%s)"
 msgstr "Morceau (%s) non présent dans le répertoire de musique mserv (%s)"
 
-#: src/file.c:990
+#: src/file.c:1055
 #, c-format
 msgid ""
 "The following track could not be processed (file does not exist): '%s'\n"
 msgstr ""
 "Le morceau suivant ne peut pas être mis à jour (fichier inexistant) : '%s'\n"
 
-#: src/file.c:1039
+#: src/file.c:1118
 #, c-format
 msgid "The following track could not be processed (filetype unknown): '%s'\n"
 msgstr ""
 "Le morceau suivant ne peut pas être mis à jour (type de fichier inconnu) : '%"
 "s'\n"
 
-#: src/file.c:1121
+#: src/file.c:1211
 #, c-format
 msgid ""
 "The following track could not be processed (filetype is known but analysis "
@@ -962,123 +2766,35 @@
 "Le morceau suivant ne peut pas être mis à jour (type de fichier connu mais "
 "échec de l'analyse) : '%s'\n"
 
-#: src/file.c:1150 src/file.c:1205
+#: src/file.c:1241 src/file.c:1295
 msgid "Nothing to update"
 msgstr "Rien à mettre à jour"
 
-#: src/file.c:1170
+#: src/file.c:1262
 #, c-format
 msgid "Updating %s"
 msgstr "%s en cours de mise à jour"
 
-#: src/file.c:1186
+#: src/file.c:1276
 msgid "Updated selected tracks with info from file."
 msgstr "Les morceaux sélectionnés ont été mis à jour à partir des fichiers."
 
-#: src/file.c:1218
+#: src/file.c:1310
 #, c-format
 msgid "Retrieving mserv data %s"
 msgstr "Récupération des données mserv %s"
 
-#. no path available
-#: src/file.c:1224 src/file.c:1902
+#: src/file.c:1315
 msgid "no filename available"
 msgstr "pas de nom de fichier disponible"
 
-#: src/file.c:1229
+#: src/file.c:1320
 msgid "Updated selected tracks with data from mserv."
 msgstr ""
 "Les morceaux sélectionnés ont été mis à jour à partir des données mserv."
 
-#: src/file.c:1296
+#: src/file.c:1341
 #, c-format
-msgid "Syncing directory '%s'"
-msgstr "Synchronisation du répertoires «%s»"
-
-#: src/file.c:1321
-msgid "Syncing completed. No files deleted."
-msgstr "Synchronisation terminée. Aucun fichier effacé."
-
-#. gint id,
-#. gboolean modal,
-#. title
-#. label
-#. scrolled text
-#: src/file.c:1434
-msgid "Never delete any files when syncing"
-msgstr "Ne jamais effacer les fichiers lors des synchronisations"
-
-#: src/file.c:1463
-msgid "Syncing completed."
-msgstr "Synchronisation terminée."
-
-#: src/file.c:1483
-msgid "Syncing aborted"
-msgstr "Synchronisation annulée"
-
-#: src/file.c:1521
-msgid "No tracks in selection"
-msgstr "Aucun morceau sélectionné"
-
-#: src/file.c:1571
-#, c-format
-msgid "'%s' is not a directory. Ignored.\n"
-msgstr "«%s» n'est pas un répertoire. Ignoré.\n"
-
-#. no directory names available
-#: src/file.c:1601
-msgid ""
-"No directory names were stored. Make sure that you enable 'Write extended "
-"information' in the Export section of the preferences at the time of "
-"importing files.\n"
-"\n"
-"To synchronize directories now, activate the duplicate detection ('Don't "
-"allow file duplication') in the Import section and add the directories you "
-"want to sync again.\n"
-msgstr ""
-"Aucun nom de répertoire n'est stocké. Soyez sûr que vous avez activé "
-"'Écriture des infos étendues' dans l'onglet Export des préférences lors de "
-"l'import des fichiers.\n"
-"\n"
-"Maintenant, pour synchroniser les répertoires, activez la 'détection des "
-"doublons' dans l'onglet Import des préférences et ajoutez les répertoires "
-"que vous souhaitez synchroniser de nouveau.\n"
-
-#: src/file.c:1605
-msgid "No valid directories have been found. Sync aborted.\n"
-msgstr "Aucun répertoire valide n'a été trouvé. Synchro annulée.\n"
-
-#: src/file.c:1614
-msgid ""
-"The (former) contents of the following directories will be removed from the "
-"database:\n"
-"\n"
-msgstr ""
-"Le contenu (actuel) des répertoires suivants sera éliminé de la base de "
-"données :\n"
-"\n"
-
-#: src/file.c:1622
-msgid ""
-"The following directories will be synchronized:\n"
-"\n"
-msgstr ""
-"Les répertoires suivant seront synchronisés :\n"
-"\n"
-
-#. gint id,
-#. gboolean modal,
-#: src/file.c:1633
-msgid "Synchronize directories"
-msgstr "Synchroniser les répertoires"
-
-#. title
-#: src/file.c:1634
-msgid "OK to synchronize the following directories?"
-msgstr "Prêt à synchroniser les répertoires suivants ?"
-
-#: src/file.c:1672
-#, c-format
 msgid "The following track could not be updated"
 msgid_plural "The following %d tracks could not be updated"
 msgstr[0] "Le morceau suivant ne peut pas être mis à jour."
@@ -1086,11 +2802,11 @@
 
 #. gint id,
 #. gboolean modal,
-#: src/file.c:1678
+#: src/file.c:1347
 msgid "Failed Track Update"
 msgstr "Échec de la mise à jour du morceau"
 
-#: src/file.c:1736
+#: src/file.c:1405
 #, c-format
 msgid "The following track has been updated"
 msgid_plural "The following %d tracks have been updated"
@@ -1099,11 +2815,11 @@
 
 #. gint id,
 #. gboolean modal,
-#: src/file.c:1742
+#: src/file.c:1411
 msgid "Successful Track Update"
 msgstr "Morceau mis à jour"
 
-#: src/file.c:1801
+#: src/file.c:1470
 #, c-format
 msgid "No mserv information could be retrieved for the following track"
 msgid_plural ""
@@ -1114,66 +2830,90 @@
 
 #. gint id,
 #. gboolean modal,
-#: src/file.c:1807
+#: src/file.c:1476
 msgid "mserv data retrieval problem"
 msgstr "problème de récupération des données mserv"
 
-#: src/file.c:1948
-msgid "file not found"
-msgstr "fichier introuvable"
+#: src/file.c:1565
+msgid "no local filename available, file on the iPod will be used instead"
+msgstr ""
 
-#: src/file.c:1952
-msgid "format not supported"
+#: src/file.c:1571
+msgid "no local filename available and copy on iPod cannot be found"
+msgstr ""
+
+#: src/file.c:1575 src/file.c:1593
+#, fuzzy
+msgid "no local filename available"
+msgstr "pas de nom de fichier disponible"
+
+#: src/file.c:1583
+msgid "local file could not be found, file on the iPod will be used instead"
+msgstr ""
+
+#: src/file.c:1589
+msgid "local file as well as copy on the iPod cannot be found"
+msgstr ""
+
+#. update not successful -- log this track for later display
+#: src/file.c:1651
+#, fuzzy
+msgid "update failed (format no supported?)"
 msgstr "format non supporté"
 
-#: src/file.c:2033
+#: src/file.c:1734
 #, c-format
 msgid "Processing '%s'..."
 msgstr "Traitement de «%s»..."
 
-#: src/file.c:2137 src/misc_track.c:1169 src/misc_track.c:1225
+#: src/file.c:1740
 #, c-format
+msgid "File skipped. match exclude masks: '%s'\n"
+msgstr ""
+
+#: src/file.c:1852 src/misc_track.c:1299 src/misc_track.c:1355
+#, c-format
 msgid ""
 "Podcast already present: '%s'\n"
 "\n"
 msgstr ""
 
-#: src/file.c:2198
+#: src/file.c:1913
 #, fuzzy, c-format
 msgid ""
 "Writing to video files not yet supported (%s).\n"
 "\n"
 msgstr "Échec de la normalisation : type de fichier non supporté.\n"
 
-#: src/file.c:2252 src/file.c:2266
+#: src/file.c:1965 src/file.c:1979
 #, c-format
 msgid "Couldn't change tags of file: %s\n"
 msgstr "Ne peut changer les attributs du fichier : %s\n"
 
-#: src/file.c:2550
+#: src/file.c:2076
 #, c-format
 msgid "Could not open '%s' for reading and writing.\n"
 msgstr "Ne peut ouvrir en lecture/écriture le fichier «%s».\n"
 
-#: src/file.c:2557
+#: src/file.c:2083
 #, c-format
 msgid "Could not obtain lock on '%s'.\n"
 msgstr "Impossible de verrouiller «%s»\n"
 
 #. error!
-#: src/file.c:2574 src/file.c:2583 src/file.c:2594 src/file.c:2604
+#: src/file.c:2100 src/file.c:2109 src/file.c:2120 src/file.c:2130
 #, c-format
 msgid "Malformed line in '%s': %s\n"
 msgstr "Ligne incomplète dans «%s» : %s\n"
 
 #. gint id,
 #. gboolean modal,
-#: src/file.c:2633
+#: src/file.c:2159
 msgid "Remove offline playcounts?"
 msgstr "Supprimer les compteurs de lecture hors-ligne ?"
 
 #. title
-#: src/file.c:2634
+#: src/file.c:2160
 msgid ""
 "Some tracks played offline could not be found in the iTunesDB. Press 'OK' to "
 "remove them from the offline playcount file, 'Cancel' to keep them."
@@ -1181,107 +2921,107 @@
 "Certains morceaux joués hors-ligne ne peuvent être trouvés dans iTunesDB.\n"
 "OK pour les supprimer du fichier de compteur de lecture hors-ligne ?"
 
-#: src/file.c:2651
+#: src/file.c:2177
 #, c-format
 msgid "Error writing to '%s'.\n"
 msgstr "Erreur d'écriture du fichier «%s».\n"
 
-#: src/file.c:2700
+#: src/file.c:2232 src/tools.c:269
 #, fuzzy, c-format
 msgid ""
 "Normalization failed: file type not supported (%s).\n"
 "\n"
 msgstr "Échec de la normalisation : type de fichier non supporté.\n"
 
-#: src/file.c:2715
+#: src/file.c:2248 src/tools.c:286
 #, fuzzy, c-format
 msgid ""
 "Normalization failed: file not available (%s).\n"
 "\n"
 msgstr "Échec de la normalisation : fichier non disponible.\n"
 
-#: src/file_export.c:181
+#: src/file_export.c:182
 #, c-format
 msgid "Skipping existing file with same length: '%s'\n"
 msgstr "Saut du fichier existant de même taille : «%s»\n"
 
-#: src/file_export.c:189
+#: src/file_export.c:190
 #, c-format
 msgid "Overwriting existing file: '%s'\n"
 msgstr "Ecrasement du fichier existant : «%s»\n"
 
-#: src/file_export.c:206
+#: src/file_export.c:207
 #, c-format
 msgid "Error copying '%s' to '%s': Permission Error (%s)\n"
 msgstr "Impossible de copier «%s» vers «%s» : Autorisation refusée (%s)\n"
 
-#: src/file_export.c:208
+#: src/file_export.c:209
 #, c-format
 msgid "Error copying '%s' to '%s' (%s)\n"
 msgstr "Impossible de copier «%s» vers «%s» (erreur : %s)\n"
 
-#: src/file_export.c:216
+#: src/file_export.c:217
 #, c-format
 msgid "Unable to open '%s' for reading\n"
 msgstr "Impossible d'ouvrir le fichier «%s»\n"
 
-#: src/file_export.c:323
+#: src/file_export.c:327
 #, c-format
 msgid "Could find file for '%s' on the iPod\n"
 msgstr "Impossible de trouver le fichier pour «%s» sur l'iPod\n"
 
 #. create the dialog window
-#: src/file_export.c:390 src/file_itunesdb.c:1062 src/tools.c:148
+#: src/file_export.c:395 src/file_itunesdb.c:1230 src/tools.c:359
 msgid "Information"
 msgstr "Information"
 
-#: src/file_export.c:401 src/tools.c:160
+#: src/file_export.c:406 src/tools.c:371
 msgid "Press button to abort."
 msgstr "Appuyer sur le bouton pour interrompre"
 
-#: src/file_export.c:414
+#: src/file_export.c:419
 msgid "copying..."
 msgstr "copie..."
 
-#: src/file_export.c:468
+#: src/file_export.c:472
 #, c-format
 msgid "Failed to write '%s-%s'\n"
 msgstr "Impossible d'écrire «%s-%s»\n"
 
-#: src/file_export.c:476
+#: src/file_export.c:485
 #, c-format
 msgid "Copied %d of %d track."
 msgid_plural "Copied %d of %d tracks."
 msgstr[0] "%d morceau copiés sur %d."
 msgstr[1] "%d morceaux copiés sur %d."
 
-#: src/file_export.c:494 src/file_itunesdb.c:1326 src/tools.c:307
+#: src/file_export.c:501 src/file_itunesdb.c:1495 src/tools.c:517
 #, c-format
 msgid "%d%% (%d:%02d:%02d left)"
 msgstr "%d%% (%d:%02d :%02d restant)"
 
-#: src/file_export.c:503
+#: src/file_export.c:510
 msgid "Some tracks were not copied."
 msgstr "Certains morceaux n'ont pas été copiés."
 
-#: src/file_export.c:560
+#: src/file_export.c:575
 msgid "Export from iPod database not possible in offline mode."
 msgstr ""
 "Exportation depuis la base de données iPod impossible en mode déconnecté."
 
-#: src/file_export.c:568
+#: src/file_export.c:583
 msgid "Select Export Destination Directory"
 msgstr "Sélectionner le répertoire de destination d'export"
 
-#: src/file_export.c:717
+#: src/file_export.c:732
 msgid "Drag from iPod database not possible in offline mode."
 msgstr "Glisser depuis la base de données iPod impossible en mode déconnecté."
 
-#: src/file_export.c:751
+#: src/file_export.c:766
 msgid "The following tracks have to be copied to your harddisk"
 msgstr "Les morceaux suivants doivent être copiés sur votre disque dur"
 
-#: src/file_export.c:796
+#: src/file_export.c:811
 msgid ""
 "Some tracks were not copied to your harddisk. Only the copied tracks will be "
 "included in the current drag and drop operation.\n"
@@ -1291,7 +3031,7 @@
 "copiés seront inclus dans l'opération de glisser-déposer en cours.\n"
 "\n"
 
-#: src/file_export.c:992
+#: src/file_export.c:1006
 #, c-format
 msgid ""
 "No valid filename for: %s\n"
@@ -1300,40 +3040,40 @@
 "Pas de nom de fichier valide pour : %s\n"
 "\n"
 
-#: src/file_export.c:1008
+#: src/file_export.c:1022
 #, c-format
 msgid "Created playlist with one track."
 msgid_plural "Created playlist with %d tracks."
 msgstr[0] "Liste de lecture créée avec un morceau."
 msgstr[1] "Liste de lecture créée avec %d morceaux."
 
-#: src/file_export.c:1015
+#: src/file_export.c:1027
 #, c-format
 msgid ""
 "Could not open '%s' for writing (%s).\n"
 "\n"
 msgstr "Ne peut ouvrir en lecture le fichier «%s» (%s).\n"
 
-#: src/file_itunesdb.c:114
+#: src/file_itunesdb.c:115
 #, c-format
 msgid "Matching MD5 checksum for file %d/%d"
 msgstr ""
 
-#: src/file_itunesdb.c:242
+#: src/file_itunesdb.c:223
 msgid "Could not open \"iTunesDB.ext\" for reading extended info.\n"
 msgstr ""
 "Ne peut ouvrir le fichier \"iTunesDB.ext\" pour lire les infos étendues.\n"
 
-#: src/file_itunesdb.c:249
+#: src/file_itunesdb.c:230
 msgid "Could not create hash value from itunesdb\n"
 msgstr "Ne peut pas créer de hachage à partir de itunesdb\n"
 
-#: src/file_itunesdb.c:263
+#: src/file_itunesdb.c:244
 #, c-format
 msgid "Error while reading extended info: %s\n"
 msgstr "Erreur lors de la lecture des infos étendues : %s\n"
 
-#: src/file_itunesdb.c:280
+#: src/file_itunesdb.c:261
 #, c-format
 msgid ""
 "iTunesDB '%s' does not match checksum in extended information file '%s'\n"
@@ -1347,7 +3087,7 @@
 "contrôle MD5. Cela peut prendre du temps.\n"
 "\n"
 
-#: src/file_itunesdb.c:292
+#: src/file_itunesdb.c:273
 #, c-format
 msgid ""
 "%s:\n"
@@ -1356,7 +3096,7 @@
 "%s:\n"
 "\"itunesdb_hash=\" attendue mais reçue :\"%s\"\n"
 
-#: src/file_itunesdb.c:352
+#: src/file_itunesdb.c:333
 #, c-format
 msgid ""
 "%s:\n"
@@ -1365,7 +3105,7 @@
 "%s:\n"
 "Erreur de format : %s\n"
 
-#: src/file_itunesdb.c:407
+#: src/file_itunesdb.c:377
 msgid ""
 "No MD5 checksums on individual tracks are available.\n"
 "\n"
@@ -1381,7 +3121,7 @@
 "iPod avec d'autres programmes que gtkpod.\n"
 "\n"
 
-#: src/file_itunesdb.c:462
+#: src/file_itunesdb.c:439
 msgid ""
 "Extended info will not be used. If you have non-transferred tracks,\n"
 "these will be lost.\n"
@@ -1389,17 +3129,17 @@
 "Les infos étendues ne seront pas utilisées. Si vous avez des morceaux non,\n"
 "transférés, elles seront perdues.\n"
 
-#: src/file_itunesdb.c:470
+#: src/file_itunesdb.c:447
 msgid "Offline iPod database successfully imported"
 msgstr ""
 "La base de données de l'iPod (mode déconnecté) a été importée avec succès"
 
-#: src/file_itunesdb.c:473
+#: src/file_itunesdb.c:450
 msgid "Local database successfully imported"
 msgstr "La base de données locale a été importée avec succès"
 
 # y, c-format
-#: src/file_itunesdb.c:481
+#: src/file_itunesdb.c:458
 #, c-format
 msgid ""
 "Offline iPod database import failed: '%s'\n"
@@ -1408,7 +3148,7 @@
 "Échec de l'import de la base de l'iPod en mode déconnecté : '%s'\n"
 "\n"
 
-#: src/file_itunesdb.c:485
+#: src/file_itunesdb.c:462
 #, c-format
 msgid ""
 "Local database import failed: '%s'\n"
@@ -1417,7 +3157,7 @@
 "Échec de l'import de la base de données locale : '%s'\n"
 "\n"
 
-#: src/file_itunesdb.c:492
+#: src/file_itunesdb.c:469
 msgid ""
 "Offline iPod database import failed: \n"
 "\n"
@@ -1425,7 +3165,7 @@
 "Échec de l'import de la base de données de l'iPod en mode déconnecté : \n"
 "\n"
 
-#: src/file_itunesdb.c:495
+#: src/file_itunesdb.c:472
 msgid ""
 "Local database import failed: \n"
 "\n"
@@ -1433,7 +3173,7 @@
 "Échec de l'import de la base données locale : \n"
 "\n"
 
-#: src/file_itunesdb.c:502 src/file_itunesdb.c:550
+#: src/file_itunesdb.c:479
 #, c-format
 msgid ""
 "'%s' does not exist. Import aborted.\n"
@@ -1442,15 +3182,15 @@
 "'%s' n'existe pas. Import annulé.\n"
 "\n"
 
-#: src/file_itunesdb.c:521
+#: src/file_itunesdb.c:502
 msgid "Extended info will not be used.\n"
 msgstr "Les infos étendues ne seront pas utilisées.\n"
 
-#: src/file_itunesdb.c:528
+#: src/file_itunesdb.c:509
 msgid "iPod Database Successfully Imported"
 msgstr "La base de l'iPod a été importée avec succès"
 
-#: src/file_itunesdb.c:535
+#: src/file_itunesdb.c:516
 #, c-format
 msgid ""
 "iPod Database Import Failed: '%s'\n"
@@ -1459,7 +3199,7 @@
 "Échec de l'import de la base de l'iPod : '%s'\n"
 "\n"
 
-#: src/file_itunesdb.c:541
+#: src/file_itunesdb.c:522
 msgid ""
 "iPod Database Import Failed.\n"
 "\n"
@@ -1467,16 +3207,35 @@
 "Échec de l'import de la base de l'iPod.\n"
 "\n"
 
-#: src/file_itunesdb.c:890
+#: src/file_itunesdb.c:531
+#, fuzzy, c-format
+msgid ""
+"'%s' (or similar) does not exist. Import aborted.\n"
+"\n"
+msgstr ""
+"'%s' n'existe pas. Import annulé.\n"
+"\n"
+
+#: src/file_itunesdb.c:817
 #, c-format
+msgid ""
+"Could not find iPod directory structure at '%s'.\n"
+"If you are sure that the iPod is properly mounted at '%s', gtkpod can create "
+"the directory structure for you.\n"
+"\n"
+"Do you want to create the directory structure now?\n"
+msgstr ""
+
+#: src/file_itunesdb.c:1071
+#, c-format
 msgid "Could not open \"%s\" for writing extended info.\n"
 msgstr "Ne peut ouvrir en écriture le fichier d'infos étendues «%s».\n"
 
-#: src/file_itunesdb.c:905
+#: src/file_itunesdb.c:1086
 msgid "Aborted writing of extended info.\n"
 msgstr "Écriture des infos étendues interrompue.\n"
 
-#: src/file_itunesdb.c:1073
+#: src/file_itunesdb.c:1241
 msgid ""
 "Press button to abort.\n"
 "Export can be continued at a later time."
@@ -1484,26 +3243,26 @@
 "Appuyer sur le bouton pour Interrompre.\n"
 "L'export peut être repris plus tard."
 
-#: src/file_itunesdb.c:1142
+#: src/file_itunesdb.c:1310
 msgid "deleting..."
 msgstr "suppression..."
 
-#: src/file_itunesdb.c:1246
+#: src/file_itunesdb.c:1413
 msgid "preparing to copy..."
 msgstr "préparation de la copie..."
 
-#: src/file_itunesdb.c:1309
+#: src/file_itunesdb.c:1480
 #, c-format
 msgid "Copied %d of %d new track."
 msgid_plural "Copied %d of %d new tracks."
 msgstr[0] "%d sur %d du nouveau morceau copié."
 msgstr[1] "%d sur %d des nouveaux morceaux copiés."
 
-#: src/file_itunesdb.c:1336
+#: src/file_itunesdb.c:1506
 msgid "Some tracks were not written to iPod. Export aborted!"
 msgstr "Des morceaux n'ont pas été copiés sur l'iPod. Export annulé!"
 
-#: src/file_itunesdb.c:1389
+#: src/file_itunesdb.c:1557
 #, c-format
 msgid ""
 "You did not import the existing iTunesDB ('%s'). This is most likely "
@@ -1520,7 +3279,7 @@
 "annulez, vous pouvez importer la base existante avant d'appeler de nouveau "
 "cette fonction.\n"
 
-#: src/file_itunesdb.c:1419
+#: src/file_itunesdb.c:1588
 msgid ""
 "iPod directory structure must be present before synching to the iPod can be "
 "performed.\n"
@@ -1528,59 +3287,62 @@
 "Les répertoires systèmes de l'iPod doivent exister avant de pouvoir "
 "synchroniser l'ipod.\n"
 
-#: src/file_itunesdb.c:1428
+#: src/file_itunesdb.c:1597
 msgid "Some tracks could not be deleted from the iPod. Export aborted!"
 msgstr "Des morceaux ne peuvent pas être supprimés de l'iPod. Export annulé!"
 
-#: src/file_itunesdb.c:1444
-msgid "Now writing iTunesDB. Please wait..."
+#: src/file_itunesdb.c:1613
+#, fuzzy
+msgid "Now writing database. Please wait..."
 msgstr "Écriture de la base iTunesDB. Veuillez patienter..."
 
-#: src/file_itunesdb.c:1490
+#: src/file_itunesdb.c:1659
 #, c-format
 msgid "Extended information file not deleted: '%s'"
 msgstr "Fichier d'infos étendues non supprimé : «%s»"
 
-#: src/file_itunesdb.c:1577
-msgid "iPod Database Saved"
+#: src/file_itunesdb.c:1745
+#, fuzzy, c-format
+msgid "%s: Database saved"
 msgstr "Base de l'iPod sauvegardée"
 
-#: src/file_itunesdb.c:1636
-msgid "Syncing contacts, calendar and notes..."
-msgstr "Synchronisation du calendrier, contacts et notes..."
+#: src/file_itunesdb.c:1749
+#, c-format
+msgid "%s: Changes saved"
+msgstr ""
 
-#: src/fileselection.c:123
+#: src/fileselection.c:127
 msgid "Successfully added files"
 msgstr "Les fichiers ont bien été ajoutés"
 
-#: src/fileselection.c:125
+#: src/fileselection.c:129
 msgid "Some files were not added successfully"
 msgstr "Echec de l'ajout de quelques fichiers"
 
 #. Create the file chooser, and handle the response
-#: src/fileselection.c:148
+#: src/fileselection.c:157
 msgid "Add Files"
 msgstr "Ajouter des fichiers"
 
 #. Create the file chooser, and handle the response
-#: src/fileselection.c:227
+#: src/fileselection.c:250
 msgid "Add Playlists"
 msgstr "Ajouter une liste de lecture"
 
 #. Create the file chooser, and handle the response
-#: src/fileselection.c:270
+#: src/fileselection.c:297
 msgid "Set Cover"
 msgstr ""
 
-#: src/fileselection.c:491
+#: src/fileselection.c:718
 msgid "Select directory to add recursively"
 msgstr "Sélectionner un répertoire à ajouter récursivement"
 
-#: src/fileselection.c:759
+#: src/fileselection.c:989
 msgid "Ok"
 msgstr "Ok"
 
-#: src/fileselection.c:768
+#: src/fileselection.c:998
 msgid "Cancel"
 msgstr "Annuler"
 
@@ -1643,55 +3405,73 @@
 msgid "%s: option `-W %s' doesn't allow an argument\n"
 msgstr "%s : l'option «-W %s» n'autorise pas d'argument\n"
 
-#: src/info.c:377
+#: src/info.c:383
 msgid "n/c"
 msgstr "n/c"
 
-#: src/info.c:382 src/info.c:793
+#: src/info.c:388 src/info.c:835
 msgid "offline"
 msgstr "déconnecté"
 
-#: src/info.c:469
+#: src/info.c:483
 #, c-format
 msgid " P:%d T:%d/%d"
 msgstr "L:%d M:%d/%d"
 
-#: src/info.c:732
+#: src/info.c:777
 msgid "B"
 msgstr "o"
 
-#: src/info.c:732
+#: src/info.c:777
 msgid "kB"
 msgstr "ko"
 
-#: src/info.c:732
+#: src/info.c:777
 msgid "TB"
 msgstr "To"
 
-#: src/info.c:778
+#: src/info.c:820
 #, c-format
 msgid " %s Free"
 msgstr " %s de libre"
 
-#: src/info.c:783
+#: src/info.c:825
 #, c-format
 msgid " %s Pending"
 msgstr " %s en cours"
 
-#: src/info.c:788
+#: src/info.c:830
 msgid " disconnected"
 msgstr "déconnecté"
 
-#: src/md5.c:159
+#: src/info.c:881
+#, fuzzy
+msgid "No database or playlist selected"
+msgstr "Aucune liste de lecture sélectionnée"
+
+#: src/info.c:886
+msgid "No tracks selected"
+msgstr "Aucun morceau sélectionné"
+
+#: src/info.c:891
+msgid "No playlist selected"
+msgstr "Aucune liste de lecture sélectionnée"
+
+#: src/info.c:896
+#, fuzzy
+msgid "No iPod or iPod playlist selected"
+msgstr "Aucune liste de lecture sélectionnée"
+
+#: src/md5.c:187
 msgid "Hashed file is 0 bytes long\n"
 msgstr "Le fichier est vide\n"
 
-#: src/md5.c:208
+#: src/md5.c:240
 #, c-format
 msgid "Could not open '%s' to calculate MD5 checksum: %s\n"
 msgstr "N'arrive pas à lire «%s» pour calculer le hachage MD5 : %s\n"
 
-#: src/misc.c:78
+#: src/misc.c:79
 #, c-format
 msgid ""
 "gtkpod Version %s: Cross-Platform Multi-Lingual Interface to Apple's iPod"
@@ -1700,7 +3480,7 @@
 "gtkpod Version %s : Interface multilingue et multi-plateforme pour l'iPod"
 "(tm) d'Apple."
 
-#: src/misc.c:82
+#: src/misc.c:83
 #, fuzzy
 msgid ""
 "(C) 2002 - 2005\n"
@@ -1715,7 +3495,7 @@
 "\n"
 "\n"
 
-#: src/misc.c:88
+#: src/misc.c:89
 msgid ""
 "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 "
@@ -1749,7 +3529,7 @@
 "\n"
 "\n"
 
-#: src/misc.c:96
+#: src/misc.c:97
 msgid ""
 "Patches were supplied by the following people (list may be incomplete -- "
 "please contact me)\n"
@@ -1759,24 +3539,24 @@
 "peut-être incomplète - veuillez me contacter)\n"
 "\n"
 
-#: src/misc.c:98
+#: src/misc.c:99
 msgid "Ramesh Dharan: Multi-Edit (edit tags of several tracks in one run)\n"
 msgstr ""
 "Ramesh Dharan : 'Édition multiple' (édition de tags de plusieurs fichiers en "
 "même temps)\n"
 
-#: src/misc.c:100
+#: src/misc.c:101
 msgid "Hiroshi Kawashima: Japanese charset autodetecion feature\n"
 msgstr ""
 "Hiroshi Kawashima : détection automatique du type de jeu de caractères "
 "japonais\n"
 
-#: src/misc.c:102
+#: src/misc.c:103
 msgid "Adrian Ulrich: porting of playlist code from mktunes.pl to itunesdb.c\n"
 msgstr ""
 "Adrian Ulrich : portage du code de liste de lecture à partir de mktunes.pl\n"
 
-#: src/misc.c:104
+#: src/misc.c:105
 msgid ""
 "Walter Bell: correct handling of DND URIs with escaped characters and/or cr/"
 "newlines at the end\n"
@@ -1784,17 +3564,17 @@
 "Walter Bell : correction de la manipulation des URIs avec des caractères "
 "d'échappement\n"
 
-#: src/misc.c:106
+#: src/misc.c:107
 msgid "Sam Clegg: user defined filenames when exporting tracks from the iPod\n"
 msgstr ""
 "Sam Clegg : définition par un masque des noms de fichier à l'export de "
 "morceaux\n"
 
-#: src/misc.c:108
+#: src/misc.c:109
 msgid "Chris Cutler: automatic creation of various playlist types\n"
 msgstr "Chris Cutler : création automatique de divers listes de lecture\n"
 
-#: src/misc.c:110
+#: src/misc.c:111
 msgid ""
 "Graeme Wilford: reading and writing of the 'Composer' ID3 tags, progress "
 "dialogue during sync\n"
@@ -1802,7 +3582,7 @@
 "Graeme Wilford : lecture et écriture des tags 'Compositeur', barre de "
 "progression durant les synchro\n"
 
-#: src/misc.c:112
+#: src/misc.c:113
 msgid ""
 "Edward Matteucci: debugging, special playlist creation, most of the volume "
 "normalizing code\n"
@@ -1810,26 +3590,26 @@
 "Edward Matteucci : debogage, création de liste de lectures, majeure partie "
 "de la normalisation du volume\n"
 
-#: src/misc.c:114
+#: src/misc.c:115
 msgid "Jens Lautenbach: some optical improvements\n"
 msgstr "Jens Lautenbach : améliorations esthétiques de l'interface\n"
 
-#: src/misc.c:116
+#: src/misc.c:117
 msgid "Alex Tribble: iPod eject patch\n"
 msgstr "Alex Tribble : éjection de l'iPod\n"
 
-#: src/misc.c:118
+#: src/misc.c:119
 msgid "Yaroslav Halchenko: Orphaned and dangling tracks handling\n"
 msgstr ""
 "Yaroslav Halchenko : gestion des fichiers orphelins et morceaux fictifs\n"
 
-#: src/misc.c:120
+#: src/misc.c:121
 msgid ""
 "Andrew Huntwork: Filename case sensitivity fix and various other bugfixes\n"
 msgstr ""
 "Andrew Huntwork : gestion de la casse des noms de fichier et correctifs\n"
 
-#: src/misc.c:122
+#: src/misc.c:123
 msgid ""
 "Ero Carrera: Filename validation and quick sync when copying tracks from the "
 "iPod\n"
@@ -1837,25 +3617,25 @@
 "Ero Carrera : Validation du nom de fichier et synchro rapide lors de la "
 "copie de l'iPod\n"
 
-#: src/misc.c:124
+#: src/misc.c:125
 msgid "Jens Taprogge: Support for LAME's replay gain tag to normalize volume\n"
 msgstr ""
 "Jens Taprogge : Support du tag 'replay gain' de LAME pour normaliser le "
 "volume\n"
 
-#: src/misc.c:126
+#: src/misc.c:127
 msgid "Armando Atienza: Support with external playcounts\n"
 msgstr "Armando Atienza : Suppport pour les compteurs de lecture externes\n"
 
-#: src/misc.c:128
+#: src/misc.c:129
 msgid "D.L. Sharp: Support for m4b files (bookmarkable AAC files)\n"
 msgstr "D.L. Sharp : Support des fichiers m4b\n"
 
-#: src/misc.c:130
+#: src/misc.c:131
 msgid "Jim Hall: Decent INSTALL file\n"
 msgstr "Jim Hall : Fichier INSTALL décent\n"
 
-#: src/misc.c:132
+#: src/misc.c:133
 msgid ""
 "Juergen Helmers, Markus Gaugusch: Conversion scripts to sync calendar/"
 "contacts to the iPod\n"
@@ -1864,78 +3644,81 @@
 "contacts\n"
 
 #. J"urgen!
-#: src/misc.c:134
+#: src/misc.c:135
 msgid "Flavio Stanchina: bugfixes\n"
 msgstr "Flavio Stanchina : correction de bogues\n"
 
-#: src/misc.c:136
+#: src/misc.c:137
 msgid ""
 "Chris Micacchi: when sorting ignore 'the' and similar at the beginning of "
 "the title\n"
 msgstr "Chris Micacchi : lors du tri, gestion de 'the' au début du titre\n"
 
-#: src/misc.c:138
+#: src/misc.c:139
 msgid "Steve Jay: use statvfs() instead of df (better portability, faster)\n"
 msgstr "Steve Jay : utilisation de statvfs pour une meilleure portabilité\n"
 
-#: src/misc.c:141
+#: src/misc.c:142
 msgid ""
 "Christoph Kunz: address compatibility issues when writing id3v2.4 type mp3 "
 "tags\n"
 msgstr "Christoph Kunz : compatibilité des adresses pour attributs id3v2.4\n"
 
-#: src/misc.c:144
+#: src/misc.c:145
+#, fuzzy
 msgid ""
-"James Ligget: replacement of old GTK file selection dialogs with new GTK "
-"filechooser dialogs\n"
+"James Liggett:\n"
+"     replacement of old GTK file selection dialogs with new GTK filechooser "
+"dialogs\n"
+"     refactored user preferences system.\n"
 msgstr ""
 "James Ligget : remplacement de l'ancien dialogue GTK de sélection de "
 "fichiers par le nouveau\n"
 
-#: src/misc.c:147
+#: src/misc.c:150
 msgid "Daniel Kercher: sync scripts for abook and webcalendar\n"
 msgstr "Daniel Kercher : scripts de synchronisation abook et webcalendar\n"
 
-#: src/misc.c:150
+#: src/misc.c:153
 msgid "Clinton Gormley: sync scripts for thunderbird\n"
 msgstr "Clinton Gormley : scripts de synchronisation pour thunderbird\n"
 
-#: src/misc.c:153
+#: src/misc.c:156
 #, fuzzy
 msgid "Sebastien Beridot: sync script for ldif addressbook format\n"
 msgstr "Clinton Gormley : scripts de synchronisation pour thunderbird\n"
 
-#: src/misc.c:156
+#: src/misc.c:159
 #, fuzzy
 msgid "Sebastian Scherer: sync script for kNotes\n"
 msgstr "Clinton Gormley : scripts de synchronisation pour thunderbird\n"
 
-#: src/misc.c:159
+#: src/misc.c:162
 msgid "Nick Piper: sync script for Palm, type-ahead search\n"
 msgstr ""
 
-#: src/misc.c:162
+#: src/misc.c:165
 msgid "Uwe Hermann: help with support for iPod Video\n"
 msgstr ""
 
-#: src/misc.c:165
+#: src/misc.c:168
 msgid ""
 "Iain Benson: support for compilation tag in mp3 files and separate display "
 "of compilations in the sort tab.\n"
 msgstr ""
 
-#: src/misc.c:167
+#: src/misc.c:170
 msgid ""
 "Nicolas Chariot: icons of buttons\n"
 "\n"
 "\n"
 msgstr ""
 
-#: src/misc.c:171
+#: src/misc.c:174
 msgid "This program borrows code from the following projects:\n"
 msgstr "Ce programme emprunte du code des projets suivants :\n"
 
-#: src/misc.c:173
+#: src/misc.c:176
 msgid ""
 "    gnutools: (mktunes.pl, ported to C) reading and writing of iTunesDB "
 "(http://www.gnu.org/software/gnupod/)\n"
@@ -1943,7 +3726,7 @@
 "    gnupod : (mktunes.pl porté en C) pour la lecture et écriture de iTunesDB "
 "(http://www.gnu.org/software/gnupod/)\n"
 
-#: src/misc.c:175
+#: src/misc.c:178
 msgid ""
 "    iPod.cpp, iPod.h by Samuel Wood (sam dot wood at gmail dot com): some "
 "code for smart playlists is based on his C++-classes.\n"
@@ -1952,36 +3735,36 @@
 "certaines parties de code des listes intelligentes sont basées sur ses "
 "classes C++.\n"
 
-#: src/misc.c:177
+#: src/misc.c:180
 msgid "    mp3info:  mp3 playlength detection (http://ibiblio.org/mp3info/)\n"
 msgstr ""
 "    mp3info : détection de la durée du mp3 (http://ibiblio.org/mp3info/)\n"
 
-#: src/misc.c:179
+#: src/misc.c:182
 msgid ""
 "    xmms:     dirbrowser, mp3 playlength detection (http://www.xmms.org)\n"
 msgstr "    xmms : explorateur, détection de la durée (http://www.xmms.org)\n"
 
-#: src/misc.c:182
+#: src/misc.c:185
 msgid ""
 "The GUI was created with the help of glade-2 (http://glade.gnome.org/).\n"
 msgstr ""
 "L'interface utilisateur a été créée avec l'aide de glade-2 (http://glade."
 "gnome.org).\n"
 
-#: src/misc.c:197
+#: src/misc.c:200
 msgid "French:   David Le Brun (david at dyn-ns dot net)\n"
 msgstr "Français : Éric Lassauge (lassauge at users dot sourceforge dot net)\n"
 
-#: src/misc.c:199
+#: src/misc.c:202
 msgid "German:   Jorg Schuler (jcsjcs at users dot sourceforge dot net)\n"
 msgstr "Allemand : Jorg Schuler (jcsjcs at users dot sourceforge dot net)\n"
 
-#: src/misc.c:201
+#: src/misc.c:204
 msgid "Hebrew: Assaf Gillat (gillata at gmail dot com)\n"
 msgstr "Hébreu : Assaf Gillat (gillata at gmail dot com)\n"
 
-#: src/misc.c:203
+#: src/misc.c:206
 msgid ""
 "Italian:  Edward Matteucci (edward_matteucc at users dot sourceforge dot "
 "net)\n"
@@ -1989,45 +3772,35 @@
 "Italien : Edward Matteucci (edward_matteucc at users dot sourceforge dot "
 "net)\n"
 
-#: src/misc.c:205
+#: src/misc.c:208
 msgid "Japanese: Ayako Sano\n"
 msgstr "Japonais : Ayako Sano\n"
 
-#: src/misc.c:207
+#: src/misc.c:210
 msgid "Japanese: Kentaro Fukuchi (fukuchi at users dot sourceforge dot net)\n"
 msgstr ""
 "Japonais : Kentaro Fukuchi (fukuchi at users dot sourceforge dot net)\n"
 
-#: src/misc.c:209
+#: src/misc.c:212
 msgid "Swedish: Stefan Asserhall (stefan asserhall at comhem dot se)\n"
 msgstr "Suèdois : Stefan Asserhall (stefan asserhall at comhem dot se)\n"
 
-#: src/misc.c:332
-#, c-format
-msgid "Could not delete backup file: \"%s\"\n"
-msgstr "Ne peut effacer le fichier de sauvegarde : \"%s\"\n"
+#: src/misc.c:936
+#, fuzzy, c-format
+msgid "Could not process '%s' (no filename available)"
+msgstr "pas de nom de fichier disponible"
 
-#: src/misc.c:452
+#: src/misc.c:1084
 #, c-format
-msgid "Unmounting of '%s' (%s) unsuccessful."
-msgstr "Echec du démontage de «%s» (%s)."
-
-#: src/misc.c:456
-#, c-format
-msgid "Unmounting of '%s' unsuccessful."
-msgstr "Echec du démontage de «%s»."
-
-#: src/misc.c:1219
-#, c-format
 msgid "Unknown token '%%%c' in template '%s'"
 msgstr "Le paramêtre «%%%c» dans le modèle «%s» n'existe pas"
 
-#: src/misc.c:1301
+#: src/misc.c:1166
 #, c-format
 msgid "Template ('%s') does not match file type '%s'\n"
 msgstr "Le modèle ('%s') ne correspond pas au type de fichier «%s»\n"
 
-#: src/misc.c:1382
+#: src/misc.c:1247
 #, c-format
 msgid "Error creating %s: %s\n"
 msgstr "Erreur à la création de \"%s\" (%s)\n"
@@ -2043,7 +3816,7 @@
 msgid "The following has occured:"
 msgstr "Le problème suivant est survenu :"
 
-#: src/misc_confirm.c:124
+#: src/misc_confirm.c:123
 msgid ""
 "Are you sure you want to delete the following track completely from your "
 "iPod? The number of playlists this track is a member of is indicated in "
@@ -2059,13 +3832,13 @@
 "Êtes-vous sûr de vouloir supprimer les morceaux suivants de votre iPod ? Le "
 "nombre de listes dont ces morceaux font partie est indiqué entre parenthèses."
 
-#: src/misc_confirm.c:128
+#: src/misc_confirm.c:127
 msgid "Delete Track Completely from iPod?"
 msgid_plural "Delete Tracks Completey from iPod?"
 msgstr[0] "Suppression d'un morceau de l'iPod ?"
 msgstr[1] "Suppression de %d morceaux de l'iPod ?"
 
-#: src/misc_confirm.c:138 src/misc_confirm.c:178
+#: src/misc_confirm.c:138 src/misc_confirm.c:179
 #, c-format
 msgid ""
 "Are you sure you want to remove the following track from the playlist \"%s\"?"
@@ -2077,7 +3850,7 @@
 msgstr[1] ""
 "Êtes-vous sûr de vouloir supprimer les morceaux suivants de la liste \"%s\" ?"
 
-#: src/misc_confirm.c:142 src/misc_confirm.c:182
+#: src/misc_confirm.c:142 src/misc_confirm.c:183
 msgid "Remove Track From Playlist?"
 msgid_plural "Remove Tracks From Playlist?"
 msgstr[0] "Supprimer le morceau de la liste de lecture ?"
@@ -2107,7 +3880,7 @@
 msgstr[0] "Supprimer le morceau du disque dur ?"
 msgstr[1] "Supprimer les morceaux du disque dur ?"
 
-#: src/misc_confirm.c:192
+#: src/misc_confirm.c:193
 msgid ""
 "Are you sure you want to remove the following track completely from your "
 "local database? The number of playlists this track is a member of is "
@@ -2125,7 +3898,7 @@
 "données locale ? Le nombre de listes dont ces morceaux font partie est "
 "indiqué entre parenthèses."
 
-#: src/misc_confirm.c:196
+#: src/misc_confirm.c:197
 msgid "Remove Track from Local Database?"
 msgid_plural "Remove Tracks from Local Database?"
 msgstr[0] "Supprimer un morceau de la base de données locale ?"
@@ -2159,66 +3932,55 @@
 msgstr[0] "1 morceau supprimé de la base de données locale"
 msgstr[1] "%d morceaux supprimés de la base de données locale"
 
-#. no playlist??? Cannot happen, but...
-#. no playlist selected
-#: src/misc_confirm.c:336 src/misc_confirm.c:432 src/misc_confirm.c:674
-#: src/misc_track.c:1509
-msgid "No playlist selected."
-msgstr "Pas de liste de lecture sélectionnée."
-
-#. no tracks selected
-#: src/misc_confirm.c:345
-msgid "No tracks selected."
-msgstr "Aucun morceau sélectionné."
-
-#: src/misc_confirm.c:448
+#: src/misc_confirm.c:438
 msgid "Cannot remove entry 'All'"
 msgstr "Ne peut enlever l'entrée «Tous»"
 
-#: src/misc_confirm.c:541
+#: src/misc_confirm.c:532
 #, c-format
 msgid "Removed all %d tracks from the iPod"
 msgstr "Suppression des %d morceaux de l'iPod"
 
-#: src/misc_confirm.c:546
+#: src/misc_confirm.c:537
 #, fuzzy
 msgid "Removed all podcasts from the iPod"
 msgstr "Suppression des %d morceaux de l'iPod"
 
-#: src/misc_confirm.c:556 src/misc_confirm.c:626
+#: src/misc_confirm.c:546 src/misc_confirm.c:620
 #, c-format
 msgid "Deleted playlist '%s' including %d member track"
 msgid_plural "Deleted playlist '%s' including %d member tracks"
 msgstr[0] "Liste de lecture «%s» supprimée avec %d morceau"
 msgstr[1] "Liste de lecture «%s» supprimée avec %d morceaux"
 
-#: src/misc_confirm.c:570 src/misc_confirm.c:640
+#. first use playlist name
+#: src/misc_confirm.c:562 src/misc_confirm.c:636
 #, c-format
 msgid "Deleted playlist '%s'"
 msgstr "Liste de lecture effacée «%s»"
 
-#: src/misc_confirm.c:603
+#: src/misc_confirm.c:596
 #, c-format
 msgid "Deleted playlist '%s' including %d member track on harddisk"
 msgid_plural "Deleted playlist '%s' including %d member tracks on harddisk"
 msgstr[0] "Liste de lecture «%s» supprimée avec %d morceau sur le disque dur."
 msgstr[1] "Liste de lecture «%s» supprimée avec %d morceaux sur le disque dur."
 
-#: src/misc_confirm.c:618
+#: src/misc_confirm.c:613
 #, c-format
 msgid "Removed all %d tracks from the database"
 msgstr "Suppression des %d morceaux de la base de données"
 
-#: src/misc_confirm.c:693
+#: src/misc_confirm.c:691
 msgid "Are you sure you want to remove all tracks from your iPod?"
 msgstr "Êtes-vous sûr de vouloir supprimer tous les morceaux de votre iPod ?"
 
-#: src/misc_confirm.c:698
+#: src/misc_confirm.c:696
 #, fuzzy
 msgid "Are you sure you want to remove all podcasts from your iPod?"
 msgstr "Êtes-vous sûr de vouloir supprimer tous les morceaux de votre iPod ?"
 
-#: src/misc_confirm.c:706
+#: src/misc_confirm.c:704
 #, c-format
 msgid ""
 "Are you sure you want to delete playlist '%s' and the following track "
@@ -2237,12 +3999,12 @@
 "votre iPod ? Le nombre de liste dont ces morceaux font partie est indiqué "
 "entre parenthèses."
 
-#: src/misc_confirm.c:717 src/misc_confirm.c:772
+#: src/misc_confirm.c:715 src/misc_confirm.c:770
 #, c-format
 msgid "Are you sure you want to delete the playlist '%s'?"
 msgstr "Êtes-vous sûr de vouloir supprimer la liste de lecture «%s» ?"
 
-#: src/misc_confirm.c:743
+#: src/misc_confirm.c:741
 #, c-format
 msgid ""
 "Are you sure you want to delete playlist '%s' and remove the following track "
@@ -2261,12 +4023,12 @@
 "votre disque dur ? Le nombre de liste dont ces morceaux font partie est "
 "indiqué entre parenthèses."
 
-#: src/misc_confirm.c:751
+#: src/misc_confirm.c:749
 msgid "Are you sure you want to remove all tracks from the database?"
 msgstr ""
 "Êtes-vous sûr de vouloir supprimer tous les morceaux de la base de données ?"
 
-#: src/misc_confirm.c:760
+#: src/misc_confirm.c:758
 #, c-format
 msgid ""
 "Are you sure you want to delete playlist '%s' and remove the following track "
@@ -2285,28 +4047,7 @@
 "votre base de données ? Le nombre de liste dont ces morceaux font partie est "
 "indiqué entre parenthèses."
 
-#: src/misc_confirm.c:960
-#, c-format
-msgid "Problem creating iPod directory: '%s'."
-msgstr "Problème à la création du répertoire de l'iPod : «%s»."
-
-#: src/misc_confirm.c:962
-#, c-format
-msgid "Successfully created iPod directories in '%s'."
-msgstr "Création réussie des répertoires de l'iPod dans «%s»."
-
-#. gint id,
-#. gboolean modal,
-#: src/misc_confirm.c:1001
-msgid "Create iPod directories"
-msgstr "Créer les répertoires de l'iPod"
-
-#. title
-#: src/misc_confirm.c:1002
-msgid "OK to create the following directories?"
-msgstr "Créer les répertoires suivants ?"
-
-#: src/misc_confirm.c:1066
+#: src/misc_confirm.c:859
 msgid ""
 "Data has been changed and not been saved.\n"
 "OK to exit gtkpod?"
@@ -2398,24 +4139,47 @@
 msgid "Checked"
 msgstr ""
 
-#: src/misc_conversion.c:108
+#. 35
+#: src/misc_conversion.c:96
+#, fuzzy
+msgid "Start time"
+msgstr "Dernière fois"
+
+#: src/misc_conversion.c:97
+#, fuzzy
+msgid "Stop time"
+msgstr "Interrompre"
+
+#: src/misc_conversion.c:98
+msgid "Remember Playback Position"
+msgstr ""
+
+#: src/misc_conversion.c:99
+msgid "Skip when Shuffling"
+msgstr ""
+
+#: src/misc_conversion.c:100
+msgid "Artwork Path"
+msgstr ""
+
+#: src/misc_conversion.c:113
 msgid "Name of file on PC, if available"
 msgstr "Nom du fichier sur le PC, si disponible"
 
-#: src/misc_conversion.c:109
+#: src/misc_conversion.c:114
 msgid "Name of file on the iPod"
 msgstr "Nom du fichier sur l'iPod"
 
 #. 10
-#: src/misc_conversion.c:111
+#: src/misc_conversion.c:116
 msgid "Track Nr. and total number of tracks on CD"
 msgstr "N° de piste et nombre total de pistes du CD"
 
-#: src/misc_conversion.c:112
+#: src/misc_conversion.c:117
 msgid "Whether the file has already been transferred to the iPod or not"
 msgstr "Fichier déjà transféré sur l'iPod ou non"
 
-#: src/misc_conversion.c:118
+#: src/misc_conversion.c:123
 msgid ""
 "Supposedly something that tells the iPod to increase or decrease the "
 "playback speed"
@@ -2423,32 +4187,32 @@
 "Un réglage qui est supposé indiquer à l'iPod d'augmenter ou diminuer la "
 "vitesse de lecture"
 
-#: src/misc_conversion.c:120
+#: src/misc_conversion.c:125
 msgid "Number of times the track has been played"
 msgstr "Nombre de fois où le fichier a été joué"
 
-#: src/misc_conversion.c:121
+#: src/misc_conversion.c:126
 msgid "Star rating from 0 to 5"
 msgstr "Notation en étoiles de 0 à 5"
 
-#: src/misc_conversion.c:122
+#: src/misc_conversion.c:127
 msgid "Date and time track has been added"
 msgstr "Date et heure de l'ajout du morceau"
 
 #. 20
-#: src/misc_conversion.c:123
+#: src/misc_conversion.c:128
 msgid "Date and time track has last been played"
 msgstr "La dernière fois que le fichier a été joué"
 
-#: src/misc_conversion.c:124
+#: src/misc_conversion.c:129
 msgid "Date and time track has last been modified"
 msgstr "La dernière fois que le fichier a été modifié"
 
-#: src/misc_conversion.c:125
+#: src/misc_conversion.c:130
 msgid "Manual volume adjust"
 msgstr "Ajustement manuel du volume"
 
-#: src/misc_conversion.c:126
+#: src/misc_conversion.c:131
 msgid ""
 "Volume adjust in dB (replay gain) -- you need to activate 'soundcheck' on "
 "the iPod"
@@ -2457,86 +4221,82 @@
 "son' sur l'iPod"
 
 #. 25
-#: src/misc_conversion.c:129
+#: src/misc_conversion.c:134
 msgid "CD Nr. and total number of CDS in set"
 msgstr "N° de CD et nombre total de CD"
 
-#: src/misc_conversion.c:132
+#: src/misc_conversion.c:137
 msgid ""
 "The category (e.g. 'Technology' or 'Music') where the podcast was located."
 msgstr ""
 
-#: src/misc_conversion.c:133
+#: src/misc_conversion.c:138
 msgid "Accessible by selecting the center button on the iPod."
 msgstr ""
 
-#: src/misc_conversion.c:137
+#: src/misc_conversion.c:142
 msgid "Release date (for podcasts displayed next to the title on the iPod)"
 msgstr ""
 
-#: src/misc_conversion.c:639
+#: src/misc_conversion.c:649
 #, c-format
 msgid "The URI '%s' is not an absolute URI using the file scheme"
 msgstr "L'URI «%s» n'est pas une URI absolue utilisant le schema de fichier"
 
-#: src/misc_conversion.c:649
+#: src/misc_conversion.c:659
 #, c-format
 msgid "The local file URI '%s' may not include a '#'"
 msgstr "L'URI de fichier local «%s» peut ne pas inclure un '#'"
 
-#: src/misc_conversion.c:666
+#: src/misc_conversion.c:676
 #, c-format
 msgid "The URI '%s' is invalid"
 msgstr "L'URI «%s» est invalide"
 
-#: src/misc_conversion.c:678
+#: src/misc_conversion.c:688
 #, c-format
 msgid "The hostname of the URI '%s' is invalid"
 msgstr "Le nom d'hôte de l'URI «%s» est invalide"
 
-#: src/misc_conversion.c:694
+#: src/misc_conversion.c:704
 #, c-format
 msgid "The URI '%s' contains invalidly escaped characters"
 msgstr "L'URI «%s» contient des caractères d'échappements invalides"
 
-#: src/misc_playlist.c:68 src/misc_playlist.c:95 src/misc_playlist.c:416
+#: src/misc_playlist.c:68 src/misc_playlist.c:95 src/misc_playlist.c:430
 msgid "Please enter a name for the new playlist"
 msgstr "Entrer le nom de la nouvelle liste de lecture"
 
-#: src/misc_playlist.c:97 gtkpod.glade:578 gtkpod.glade:772 gtkpod.glade:7128
-msgid "Smart Playlist"
-msgstr "Intelligente"
-
-#: src/misc_playlist.c:146
+#: src/misc_playlist.c:155
 msgid "AR:"
 msgstr "AR :"
 
-#: src/misc_playlist.c:149
+#: src/misc_playlist.c:158
 msgid "AL:"
 msgstr "AL :"
 
-#: src/misc_playlist.c:152
+#: src/misc_playlist.c:161
 msgid "GE:"
 msgstr "GE :"
 
-#: src/misc_playlist.c:155
+#: src/misc_playlist.c:164
 msgid "CO:"
 msgstr "CO :"
 
-#: src/misc_playlist.c:158
+#: src/misc_playlist.c:167
 msgid "YE:"
 msgstr "AN :"
 
-#: src/misc_playlist.c:186
+#: src/misc_playlist.c:195
 msgid "Unknown"
 msgstr "Inconnu"
 
-#: src/misc_playlist.c:256
+#: src/misc_playlist.c:273
 #, c-format
 msgid "Random (%d)"
 msgstr "Aléatoirement (%d)"
 
-#: src/misc_playlist.c:281
+#: src/misc_playlist.c:298
 msgid ""
 "Auto Store of track view disabled.\n"
 "\n"
@@ -2544,11 +4304,11 @@
 "Mémorisation automatique de la vue désactivée.\n"
 "\n"
 
-#: src/misc_playlist.c:340
+#: src/misc_playlist.c:357
 msgid "Not Listed"
 msgstr "Jamais écoutés"
 
-#: src/misc_playlist.c:391
+#: src/misc_playlist.c:407
 #, c-format
 msgid "Created playlist '%s' with %d track."
 msgid_plural "Created playlist '%s' with %d tracks."
@@ -2556,76 +4316,75 @@
 msgstr[1] "Liste de lecture «%s» créée avec %d morceaux."
 
 #. n==0
-#: src/misc_playlist.c:402
+#: src/misc_playlist.c:418
 msgid "No tracks available, playlist not created"
 msgstr "Aucun morceau disponible, liste de lecture non créée"
 
-#: src/misc_playlist.c:530
+#: src/misc_playlist.c:544
 #, c-format
 msgid "Most Listened (%d)"
 msgstr "Les plus écoutés (%d)"
 
-#: src/misc_playlist.c:571
+#: src/misc_playlist.c:585
 msgid "Never Listened"
 msgstr "Jamais écoutés"
 
-#: src/misc_playlist.c:611
+#: src/misc_playlist.c:625
 #, c-format
 msgid "Best Rated (%d)"
 msgstr "Mieux notés (%d)"
 
-#: src/misc_playlist.c:653
+#: src/misc_playlist.c:667
 msgid "Unrated tracks"
 msgstr "Morceaux non notés"
 
-#: src/misc_playlist.c:658
+#: src/misc_playlist.c:672
 #, c-format
 msgid "Rated %d"
 msgstr "Notés %d"
 
-#: src/misc_playlist.c:701
+#: src/misc_playlist.c:715
 #, c-format
 msgid "Recent (%d)"
 msgstr "Récents (%d)"
 
-#: src/misc_playlist.c:740
+#: src/misc_playlist.c:754
 msgid "Last Time"
 msgstr "Dernière fois"
 
-#: src/misc_playlist.c:831
+#: src/misc_playlist.c:845
 msgid "Removal of dangling tracks with no files on PC was canceled."
 msgstr ""
 "La suppression des morceaux fictifs sans fichier correspondant sur le PC a "
 "été annulée."
 
-#: src/misc_playlist.c:841
+#: src/misc_playlist.c:855
 msgid "Handling of dangling tracks with files on PC was canceled."
 msgstr ""
 "La récupération des morceaux fictifs à partir des fichiers du PC a été "
 "annulée."
 
-#: src/misc_playlist.c:869
+#: src/misc_playlist.c:883
 msgid "Dangling tracks with no files on PC were removed."
 msgstr ""
 "Les morceaux fictifs sans fichier correspondant sur le PC ont été supprimés."
 
-#. printf("Handling track %d\n", track->ipod_id);
-#: src/misc_playlist.c:902
+#: src/misc_playlist.c:917
 #, c-format
 msgid "Processing '%s'"
 msgstr "Traitement de «%s»"
 
-#: src/misc_playlist.c:927
+#: src/misc_playlist.c:941
 msgid "Dangling tracks with files on PC were handled."
 msgstr ""
 "Les morceaux fictifs avec leur fichier correspondant sur le PC ont été "
 "récupérés."
 
-#: src/misc_playlist.c:960
+#: src/misc_playlist.c:974
 msgid "Track"
 msgstr "Morceau"
 
-#: src/misc_playlist.c:1005
+#: src/misc_playlist.c:1017
 msgid ""
 "You did not import the existing iTunesDB. This is most likely incorrect and "
 "will result in the loss of the existing database.\n"
@@ -2641,20 +4400,20 @@
 "annulez, vous pouvez importer la base existante avant d'appeler de nouveau "
 "cette fonction.\n"
 
-#: src/misc_playlist.c:1021
+#: src/misc_playlist.c:1031
 msgid "Creating a tree of known files"
 msgstr "Création l'arborescence des fichiers reconnus"
 
-#: src/misc_playlist.c:1065
+#: src/misc_playlist.c:1075
 msgid "Checking iPOD files against known files in DB"
 msgstr ""
 "Contrôle des fichiers sur l'iPod par rapport a ceux de la base iTunesDB"
 
-#: src/misc_playlist.c:1110
+#: src/misc_playlist.c:1118
 msgid "Orphaned"
 msgstr "Orphelin"
 
-#: src/misc_playlist.c:1131
+#: src/misc_playlist.c:1145
 #, c-format
 msgid ""
 "The following orphaned file had already been added to the iPod again. It "
@@ -2667,12 +4426,12 @@
 "%s\n"
 "\n"
 
-#: src/misc_playlist.c:1160
+#: src/misc_playlist.c:1173
 #, c-format
 msgid "Found %d orphaned and %d dangling files. Processing..."
 msgstr "%d orphelins et %d morceaux fictifs. Traitement en cours..."
 
-#: src/misc_playlist.c:1183
+#: src/misc_playlist.c:1197
 #, c-format
 msgid ""
 "The following dangling track has a file on PC.\n"
@@ -2692,7 +4451,7 @@
 "Choisissez OK pour le transférer à la prochaine synchro, Annuler pour "
 "laisser tel quel."
 
-#: src/misc_playlist.c:1188
+#: src/misc_playlist.c:1202
 #, c-format
 msgid ""
 "The following dangling track doesn't have file on PC. \n"
@@ -2710,17 +4469,17 @@
 
 #. we want unique window for each
 #. gboolean modal,
-#: src/misc_playlist.c:1195
+#: src/misc_playlist.c:1209
 msgid "Dangling Tracks"
 msgstr "Morceaux fictifs"
 
-#: src/misc_playlist.c:1219
+#: src/misc_playlist.c:1232
 #, c-format
 msgid "Found %d orphaned and %d dangling files. Done."
 msgstr "Trouvé %d orphelins et %d morceaux fictifs. Fini."
 
 #. update for count == 1, 21, 41 ... and for count == n
-#: src/misc_track.c:91 src/misc_track.c:368
+#: src/misc_track.c:90 src/misc_track.c:364
 #, c-format
 msgid "Hashed %d of %d track."
 msgid_plural "Hashed %d of %d tracks."
@@ -2728,14 +4487,14 @@
 msgstr[1] "%d morceaux traités sur %d."
 
 # y, c-format
-#: src/misc_track.c:202
+#: src/misc_track.c:199
 #, c-format
 msgid "The following duplicate track has been removed."
 msgid_plural "The following %d duplicate tracks have been removed."
 msgstr[0] "Le morceau suivant est en double et a été supprimé."
 msgstr[1] "Les %d morceaux suivants sont en double et ont été supprimés."
 
-#: src/misc_track.c:209
+#: src/misc_track.c:206
 #, c-format
 msgid ""
 "The following duplicate track has not been added to the master play list."
@@ -2750,82 +4509,66 @@
 
 #. gint id,
 #. gboolean modal,
-#: src/misc_track.c:216
+#: src/misc_track.c:213
 msgid "Duplicate detection"
 msgstr "Détection de doublon"
 
-#: src/misc_track.c:844
+#: src/misc_track.c:904
 msgid "Local Database"
 msgstr "Base de données locale"
 
-#: src/misc_track.c:1396
+#. artwork is set
+#: src/misc_track.c:915
+msgid "Embedded or filename was lost"
+msgstr ""
+
+#: src/misc_track.c:919
+#, fuzzy
+msgid "Artwork not set"
+msgstr "n'est pas rempli"
+
+#: src/misc_track.c:1527
 #, c-format
 msgid "drag and drop: ignored '%s'\n"
 msgstr "Glisser/déposer : «%s» ignoré\n"
 
-#: src/mp3file.c:1118
+#: src/mp3file.c:1276
 #, c-format
 msgid "Error setting ID3 field: %s\n"
 msgstr "Erreur en remplissant le champ ID3 : %s\n"
 
-#: src/mp3file.c:1143 src/mp3file.c:1290 src/mp3file.c:2036
+#: src/mp3file.c:1300 src/mp3file.c:1373 src/mp3file.c:1522 src/mp3file.c:2160
 #, c-format
 msgid "ERROR while opening file: '%s' (%s).\n"
 msgstr "Erreur à l'ouverture du fichier : «%s» (%s).\n"
 
-#: src/mp3file.c:1357
+#: src/mp3file.c:1593
 #, c-format
 msgid "ERROR while writing tag to file: '%s' (%s).\n"
 msgstr "ERREUR pour écrire l'attribut dans le fichier : «%s» (%s).\n"
 
-#: src/mp3file.c:1880
-#, c-format
-msgid ""
-"Could not find mp3gain. I tried to use the following executable: '%s'.\n"
-"\n"
-"If the mp3gain executable is not in your path or named differently, you can "
-"set the full path in the 'Tools' section of the preferences dialog.\n"
-"\n"
-"If you do not have mp3gain installed, you can download it from http://www."
-"sourceforge.net/projects/mp3gain."
-msgstr ""
-"Impossible de trouver mp3gain. Éxecutable testé : '%s'.\n"
-"\n"
-"Si le chemin de mp3gain n'est pas défini dans $PATH ou est nommé "
-"différemment, vous pouvez spécifier le chemin complet dans l'onglet 'Outils' "
-"des préférences.\n"
-"\n"
-"Si mp3gain n'est pas installé, vous pouvez le télécharger sur le site "
-"officiel http://mp3gain.sourceforge.net ou dans les paquetages de votre "
-"système."
-
-#: src/mp3file.c:1920
-#, c-format
-msgid "Execution of mp3gain ('%s') failed."
-msgstr "Échec de l'exécution de mp3gain («%s»)."
-
 #. Tracks with zero play length are ignored by iPod...
-#: src/mp3file.c:2179
+#: src/mp3file.c:2326
 #, c-format
 msgid "File \"%s\" has zero play length. Ignoring.\n"
 msgstr "Fichier \"%s\" à une durée de zéro. Ignoré.\n"
 
-#: src/mp4file.c:243 src/mp4file.c:362
+#: src/mp4file.c:221 src/mp4file.c:342 src/mp4file.c:461
 #, c-format
 msgid "'%s' does not appear to be a mp4 audio file.\n"
 msgstr "«%s» n»est pas un fichier audio mp4.\n"
 
-#: src/mp4file.c:253
+#: src/mp4file.c:231 src/mp4file.c:352
 #, c-format
 msgid "Could not open '%s' for reading, or file is not an mp4 file.\n"
 msgstr "Ne peut pas lire le fichier «%s» ou n'est pas un fichier mp4.\n"
 
-#: src/mp4file.c:373
+#: src/mp4file.c:472
 #, c-format
 msgid "Could not open '%s' for writing, or file is not an mp4 file.\n"
 msgstr "Ne peut écrire le fichier «%s» ou n'est pas un fichier mp4.\n"
 
-#: src/mp4file.c:386
+#: src/mp4file.c:485
 #, c-format
 msgid ""
 "Import of '%s' failed: m4a/m4p/m4b not supported without the mp4v2 library. "
@@ -2834,7 +4577,7 @@
 "Import de '%s' annulé : pas de support des formats m4a/m4p.Vous devez "
 "compiler gtkpod avec la bibliothèque mp4v2.\n"
 
-#: src/mp4file.c:392
+#: src/mp4file.c:491
 #, c-format
 msgid ""
 "m4a/m4p/m4b metadata update for '%s' failed: m4a/m4p/m4b not supported "
@@ -2844,228 +4587,270 @@
 "Mise à jour des données m4a/m4p annulée (\"%s\") : pas de support des "
 "formats m4a/m4p.Vous devez compiler gtkpod avec la bibliothèque mp4v2.\n"
 
-#: src/prefs.c:128
+#: src/mp4file.c:497
+#, fuzzy, c-format
+msgid ""
+"m4a/m4p/m4b soundcheck update for '%s' failed: m4a/m4p/m4b not supported "
+"without the mp4v2 library. You must compile the gtkpod source together with "
+"the mp4v2 library.\n"
+msgstr ""
+"Mise à jour des données m4a/m4p annulée (\"%s\") : pas de support des "
+"formats m4a/m4p.Vous devez compiler gtkpod avec la bibliothèque mp4v2.\n"
+
+#: src/prefs.c:307
 #, c-format
 msgid "gtkpod version %s usage:\n"
 msgstr "gtkpod version %s usage :\n"
 
-#: src/prefs.c:129
+#: src/prefs.c:308
 msgid "  -h, --help:   display this message\n"
 msgstr "  -h, --help :   affiche ce message\n"
 
-#: src/prefs.c:130
+#: src/prefs.c:309
 msgid "  -p <filename>:increment playcount for file by one\n"
 msgstr "  -p <fichier> : incrémente le compteur de lecture du fichier\n"
 
-#: src/prefs.c:131
+#: src/prefs.c:310
 msgid "  -m path:      define the mountpoint of your iPod\n"
 msgstr "  -m chemin :    définit le point de montage de votre iPod\n"
 
-#: src/prefs.c:132
+#: src/prefs.c:311
 msgid "  --mountpoint: same as '-m'.\n"
 msgstr "  --mountpoint : identique à «-m».\n"
 
-#: src/prefs.c:133
+#: src/prefs.c:312
 msgid "  -a:           import database automatically after start.\n"
 msgstr ""
 "  -a :           importe les données de l'iPod automatiquement au "
 "démarrage.\n"
 
-#: src/prefs.c:134
+#: src/prefs.c:313
 msgid "  --auto:       same as '-a'.\n"
 msgstr "  --auto :       identique à «-a».\n"
 
-#: src/prefs.c:135
-msgid ""
-"  -o:           use offline mode. No changes are exported to the iPod,\n"
-"                but to ~/.gtkpod/ instead. iPod is updated if 'Sync' is\n"
-"                used with 'Offline' deactivated.\n"
-msgstr ""
-"  -o :           mode déconnecté. Aucun changement ne sera exporté vers \n"
-"                l'iPod, mais vers ~/.gtkpod/. L'iPod sera mis à jour si \n"
-"                \"Exporter\" est appelé et le mode \"deconnecté\" n'est \n"
-"                pas activé\n"
+#: src/prefs_window.c:119
+msgid "Please select command for 'Play Now'"
+msgstr "Ligne de commande pour «Jouer maintenant»"
 
-#: src/prefs.c:136
-msgid "  --offline:    same as '-o'.\n"
-msgstr "  --offline     identique à «-o».\n"
+#: src/prefs_window.c:120
+msgid "Please select command for 'Enqueue'"
+msgstr "Ligne de commande pour «Mettre dans la file d'attente»"
 
-#: src/prefs.c:401
-#, c-format
-msgid "Error while reading prefs: %s\n"
-msgstr "Erreur lors de la lecture des options : %s\n"
+#: src/prefs_window.c:121
+msgid "Please select the mp3gain executable"
+msgstr "Chemin de l'exécutable «mp3gain»"
 
-#: src/prefs.c:1030
-#, c-format
-msgid "Unable to open config file '%s' for reading\n"
-msgstr "Impossible d'ouvrir en lecture le fichier des options «%s»\n"
+#: src/prefs_window.c:124
+msgid "Select the mserv music root directory"
+msgstr "Sélectionner le répertoire racine de musique mserv"
 
-#: src/prefs.c:1137
-#, c-format
-msgid "Unknown option: %s\n"
-msgstr "Option inconnue : %s\n"
+#: src/prefs_window.c:125
+msgid "Select the mserv trackinfo root directory"
+msgstr "Sélectionner le répertoire racine d'infos mserv"
 
-#: src/prefs.c:1190
-#, c-format
-msgid "# delete confirmation\n"
-msgstr "# confirmation de suppression\n"
+#: src/prefs_window.c:127
+#, fuzzy
+msgid "Please select the aacgain executable"
+msgstr "Chemin de l'exécutable «mp3gain»"
 
-#: src/prefs.c:1197
-#, c-format
-msgid "# sort tab: select 'All', last selected page (=category)\n"
-msgstr "# zones : choix «Tous», dernière page sélectionnée (=catégorie)\n"
+#: src/prefs_window.c:911 src/prefs_window.c:929
+msgid "Preferences not updated"
+msgstr "Préférences non mises à jour"
 
-#: src/prefs.c:1216
-#, c-format
-msgid "# autoselect master playlist?\n"
-msgstr "# sélection automatique de liste de lecture principale ?\n"
+#: src/prefs_window.c:938
+msgid "Preferences applied"
+msgstr "Préférences mises à jour"
 
-#: src/prefs.c:1218
-#, c-format
-msgid "# title=0, artist, album, genre, composer\n"
-msgstr "# titre=0, artiste, album, genre, compositeur\n"
+#: src/repository.c:549 src/repository.c:2372
+#, fuzzy
+msgid "Select mountpoint"
+msgstr "Point de montage de l'iPod :"
 
-#: src/prefs.c:1219
-#, c-format
-msgid "# track_nr=5, ipod_id, pc_path, transferred\n"
-msgstr "# no_piste=5, ipod_id, pc_path, transféré\n"
-
-#: src/prefs.c:1220
-#, c-format
-msgid "# autoset: set empty tag to filename?\n"
+#: src/repository.c:576 src/repository.c:2398
+msgid "Set backup file"
 msgstr ""
-"# Définition automatique : mettre à vide les attributs dans le fichier ?\n"
 
-#: src/prefs.c:1235
-#, c-format
-msgid ""
-"# position of sliders (paned): playlists, above tracks,\n"
-"# between sort tabs, and in statusbar.\n"
-msgstr ""
-"# position des sliders (dans le panneau) : listes de lecture, parmi les "
-"morceaux,\n"
-"# entre les zones et dans la barre d'état.\n"
+#: src/repository.c:615
+#, fuzzy
+msgid "Select directory for synchronization"
+msgstr "Sélectionner un répertoire à ajouter récursivement"
 
-#: src/prefs.c:1271
-#, c-format
-msgid ""
-"# window sizes: main window, confirmation scrolled,\n"
-"#               confirmation non-scrolled, dirbrowser, prefs\n"
-msgstr ""
-"# tailles de fenêtres : fenêtre principale, confirmation avec défilement,\n"
-"#                       confirmation sans défilement, explorateur de "
-"fichiers\n"
+#: src/repository.c:641
+msgid "Please select command to sync contacts"
+msgstr "Ligne de commande pour synchroniser les contacts"
 
-#: src/prefs.c:1328
-#, c-format
-msgid "Unable to open '%s' for writing\n"
-msgstr "Impossible d'ouvrir en écriture «%s»\n"
+#: src/repository.c:647
+msgid "Please select command to sync calendar"
+msgstr "Ligne de commande pour synchroniser le calendrier"
 
-#: src/prefs.c:1682
-#, c-format
+#: src/repository.c:653
+#, fuzzy
+msgid "Please select command to sync notes"
+msgstr "Ligne de commande pour synchroniser les contacts"
+
+#: src/repository.c:665
+#, fuzzy, c-format
 msgid ""
-" Preferences: Category nr (%d<%d?) or sorttab nr (%d<%d?) out of range.\n"
+"<i>Have a look at the scripts provided in '%s'. If you write a new script, "
+"please send it to jcsjcs at users.sourceforge.net for inclusion into the "
+"next release.</i>"
 msgstr ""
-" Préférences : N° de catégorie (%d<%d?) ou n° de zone (%d<%d ?) inexistant.\n"
+"Des scripts d'exemple sont présents dans le répertoire '%s'.Si vous écrivez "
+"un nouveau script, veuillez s'il vous plait l'envoyer à jcsjcs at users."
+"sourceforge.net afin qu'il soit ajouté dans les prochaines versions de "
+"gtkpod."
 
-#: src/prefs.c:1731
-#, c-format
-msgid "Unable to 'mkdir %s'\n"
-msgstr "Impossible de lancer «mkdir %s»\n"
+#: src/repository.c:732
+#, fuzzy
+msgid "Smart playlist updated."
+msgstr "Intelligente"
 
-#. illegal -- ignore
-#: src/prefs.c:2157
-#, c-format
-msgid "prefs_set_toolbar_style: illegal style '%d' ignored\n"
-msgstr "prefs_set_toolbar_style : style «%d» non reconnu\n"
+#: src/repository.c:1193
+#, fuzzy
+msgid "Podcasts Repository"
+msgstr "Supprimer de l'iPod"
 
-#. illegal -- ignore
-#: src/prefs.c:2199
-#, c-format
-msgid "prefs_set_pm_sort: illegal type '%d' ignored\n"
-msgstr "prefs_set_pm_sort : style «%d» non reconnu\n"
+#: src/repository.c:1197
+#, fuzzy
+msgid "Local Repository"
+msgstr "Supprimer de l'iPod"
 
-#: src/prefs.c:2354
-#, c-format
-msgid "'%s': no arguments (%%...) allowed.\n"
-msgstr "«%s» : aucun argument autorisé (%%s...).\n"
+#: src/repository.c:1351
+#, fuzzy
+msgid "Master Playlist"
+msgstr "...liste de lecture principale"
 
-#: src/prefs.c:2359
-#, c-format
-msgid "'%s': only '%%[%s]' allowed.\n"
-msgstr "«%s» : seulement «%%s[%s]» autorisé.\n"
+#: src/repository.c:1355
+#, fuzzy
+msgid "Podcasts Playlist"
+msgstr "Intelligente"
 
-#: src/prefs_window.c:108
-msgid "Please select command for 'Play Now'"
-msgstr "Ligne de commande pour «Jouer maintenant»"
+#: src/repository.c:1363
+#, fuzzy
+msgid "Regular Playlist"
+msgstr "Intelligente"
 
-#: src/prefs_window.c:109
-msgid "Please select command for 'Enqueue'"
-msgstr "Ligne de commande pour «Mettre dans la file d'attente»"
+#: src/repository.c:2426
+#, fuzzy
+msgid "Set local repository file"
+msgstr "Supprimer de l'iPod"
 
-#: src/prefs_window.c:110
-msgid "Please select the mp3gain executable"
-msgstr "Chemin de l'exécutable «mp3gain»"
+#: src/repository.c:2525
+#, fuzzy
+msgid "New Repository"
+msgstr "Supprimer de l'iPod"
 
-#: src/prefs_window.c:111
-msgid "Please select command to sync contacts"
-msgstr "Ligne de commande pour synchroniser les contacts"
+#: src/support.c:90 src/support.c:114
+#, fuzzy, c-format
+msgid "Couldn't find pixmap file: %s"
+msgstr "Ne peut changer les attributs du fichier : %s\n"
 
-#: src/prefs_window.c:112
-msgid "Please select command to sync calendar"
-msgstr "Ligne de commande pour synchroniser le calendrier"
+#: src/syncdir.c:237
+#, c-format
+msgid "Sync summary for %s/%s\n"
+msgstr ""
 
-#: src/prefs_window.c:113
-msgid "Select the mserv music root directory"
-msgstr "Sélectionner le répertoire racine de musique mserv"
+#: src/syncdir.c:246
+#, fuzzy
+msgid "The following track has been added or updated:\n"
+msgid_plural "The following tracks have been added or updated:\n"
+msgstr[0] "Le morceau suivant a été mis à jour"
+msgstr[1] "Les %d morceaux suivants ont été mis à jour"
 
-#: src/prefs_window.c:114
-msgid "Select the mserv trackinfo root directory"
-msgstr "Sélectionner le répertoire racine d'infos mserv"
+#: src/syncdir.c:255
+#, fuzzy
+msgid "The following track has been completely removed from the iPod:\n"
+msgid_plural ""
+"The following tracks have been completely removed from the iPod:\n"
+msgstr[0] "Avant de supprimer complètement les morceaux de l'iPod"
+msgstr[1] "Avant de supprimer complètement les morceaux de l'iPod"
 
-#: src/prefs_window.c:115
+# y, c-format
+#: src/syncdir.c:264
 #, fuzzy
-msgid "Please select command to sync notes"
-msgstr "Ligne de commande pour synchroniser les contacts"
+msgid "The following track has been removed from the repository:\n"
+msgid_plural "The following tracks have been removed from the repository:\n"
+msgstr[0] "Le morceau suivant est en double et a été supprimé."
+msgstr[1] "Les %d morceaux suivants sont en double et ont été supprimés."
 
-#: src/prefs_window.c:854
+#: src/syncdir.c:271
+#, fuzzy
+msgid "The following track has been removed from the playlist:\n"
+msgid_plural "The following tracks have been removed from the playlist:\n"
+msgstr[0] ""
+"Le morceau (doublon) n'a pas été ajouté à la liste de lecture principale."
+msgstr[1] ""
+"Les %d morceaux (doublons) n'ont pas été ajoutés à la liste de lecture "
+"principale."
+
+#: src/syncdir.c:277
+msgid "Nothing was changed.\n"
+msgstr ""
+
+#: src/syncdir.c:282
+msgid "Sync summary"
+msgstr ""
+
+#: src/tools.c:119
 #, fuzzy, c-format
 msgid ""
-"<i>Have a look at the scripts provided in '%s'. If you write a new script, "
-"please send it to jcsjcs at users.sourceforge.net for inclusion into the "
-"next release.</i>"
+"Could not find '%s'\n"
+". Please specifiy the exact path in the Tools section of the preference "
+"dialog or install the programm if it is not installed on your system.\n"
+"\n"
 msgstr ""
-"Des scripts d'exemple sont présents dans le répertoire '%s'.Si vous écrivez "
-"un nouveau script, veuillez s'il vous plait l'envoyer à jcsjcs at users."
-"sourceforge.net afin qu'il soit ajouté dans les prochaines versions de "
-"gtkpod."
+"Impossible de trouver le fichier '%s'.\n"
+"\n"
+"Veuillez contrôler la section 'Outils' dans les préférences.\n"
+"\n"
 
-#: src/prefs_window.c:1287 src/prefs_window.c:1305
-msgid "Preferences not updated"
-msgstr "Préférences non mises à jour"
+#: src/tools.c:204
+#, fuzzy, c-format
+msgid ""
+"Execution of '%s' failed.\n"
+"\n"
+msgstr "Échec de l'exécution de mp3gain («%s»)."
 
-#: src/prefs_window.c:1314
-msgid "Preferences applied"
-msgstr "Préférences mises à jour"
+#: src/tools.c:249
+#, fuzzy, c-format
+msgid ""
+"Did not normalize '%s'. Set mp3gain path in the Tools section of the "
+"preferences.\n"
+msgstr ""
+"Impossible de trouver le fichier '%s'.\n"
+"\n"
+"Veuillez contrôler la section 'Outils' dans les préférences.\n"
+"\n"
 
-#: src/tools.c:173
+#: src/tools.c:259
+#, fuzzy, c-format
+msgid ""
+"Did not normalize '%s'. Set aacgain path in the Tools section of the "
+"preferences.\n"
+msgstr ""
+"Impossible de trouver le fichier '%s'.\n"
+"\n"
+"Veuillez contrôler la section 'Outils' dans les préférences.\n"
+"\n"
+
+#: src/tools.c:384
 msgid "Normalizing..."
 msgstr "Normalisation..."
 
-#: src/tools.c:220
+#: src/tools.c:434
 #, c-format
 msgid "%s - %s"
 msgstr "%s - %s"
 
-#: src/tools.c:247
+#: src/tools.c:460
 msgid "Aborting..."
 msgstr "Annulation..."
 
-#: src/tools.c:251
+#: src/tools.c:464
 msgid "Will abort after current mp3gain process ends."
 msgstr "S'interrompra après la fin du traitement courant de mp3gain."
 
-#: src/tools.c:277
+#: src/tools.c:490
 #, fuzzy, c-format
 msgid ""
 "'%s-%s' (%s) could not be normalized.\n"
@@ -3074,14 +4859,14 @@
 "'%s-%s» (%s) ne peut pas être normalisé.\n"
 "\n"
 
-#: src/tools.c:319
+#: src/tools.c:529
 #, c-format
 msgid "Normalized %d of %d tracks."
 msgid_plural "Normalized %d of %d tracks."
 msgstr[0] "%d nouveau morceau normalisé sur %d."
 msgstr[1] "%d nouveaux morceaux normalisés sur %d."
 
-#: src/tools.c:413
+#: src/tools.c:632
 msgid ""
 "Please specify the command to be called on the 'Tools' section of the "
 "preferences dialog.\n"
@@ -3089,7 +4874,7 @@
 "Veuillez renseigner la commande à appeler dans la section 'Outils' de la "
 "fenêtre de préférences.\n"
 
-#: src/tools.c:425
+#: src/tools.c:644
 #, c-format
 msgid ""
 "Could not find the command '%s'.\n"
@@ -3102,7 +4887,7 @@
 "Veuillez contrôler la section 'Outils' dans les préférences.\n"
 "\n"
 
-#: src/tools.c:466
+#: src/tools.c:685
 #, c-format
 msgid ""
 "'%s' returned the following output:\n"
@@ -3111,12 +4896,12 @@
 "'%s' a retourné le résultat suivant :\n"
 "%s\n"
 
-#: src/tools.c:535
+#: src/tools.c:752
 #, c-format
 msgid "No command set for '%s'"
 msgstr "Aucune commande renseignée pour «%s»"
 
-#: src/tools.c:556
+#: src/tools.c:772
 #, c-format
 msgid "Could not find command '%s' specified for '%s'"
 msgstr "Impossible d'exécuter la commande «%s» spécifiée pour «%s»"
@@ -3131,1762 +4916,364 @@
 msgid "%s does not appear to be a supported wav file.\n"
 msgstr "%s ne semble pas être un format wav supporté.\n"
 
-#: gtkpod.glade:7
-msgid "gtkpod"
-msgstr "gtkpod"
+#~ msgid ""
+#~ "On startup gtkpod will call 'mount <ipod mountpoint>', on exit a 'umount "
+#~ "<ipod mountpoint>' call is carried out. For more complicated arrangements "
+#~ "please use the ~/.gtkpod/gtkpod.in and ~/.gtkpod/gtkpod.out scripts."
+#~ msgstr ""
+#~ "Au démarrage, gtkpod appelera la commande 'mount <point de montage de "
+#~ "l'iPod>', et à la fermeture 'umount <point de montage de l'iPod>'. Pour "
+#~ "des scripts, vous pouvez utiliser les fichiers ~/.gtkpod/gtkpod.in et ~/."
+#~ "gtkpod/gtkpod.out."
 
-#: gtkpod.glade:36
-msgid "_File"
-msgstr "_Fichier"
+#~ msgid "Handle mounting/unmounting of iPod drive"
+#~ msgstr "Gérer automatiquement le montage/démontage de l'iPod"
 
-#: gtkpod.glade:45
-msgid "_Read iTunesDB"
-msgstr "_Lire les infos de la base iTunesDB"
-
-#: gtkpod.glade:66
-msgid "Add _Files"
-msgstr "Ajouter des _fichiers"
-
-#: gtkpod.glade:87
-msgid "Add _Directory"
-msgstr "Ajouter un _répertoire"
-
-#: gtkpod.glade:108
-msgid "Add _Playlist"
-msgstr "Ajouter une _liste de lecture"
-
-#: gtkpod.glade:129
-msgid "Synchronize _iTunesDB"
-msgstr "Synchroniser la base _iTunesDB"
-
-#: gtkpod.glade:183
-msgid "_Update Tracks from File"
-msgstr "_Mettre à jour les morceaux à partir des fichiers"
-
-#: gtkpod.glade:204 gtkpod.glade:256 gtkpod.glade:308 gtkpod.glade:366
-#: gtkpod.glade:418 gtkpod.glade:1136 gtkpod.glade:1188 gtkpod.glade:1234
-msgid "Selected _Playlist"
-msgstr "_Liste de lecture sélectionnée"
-
-#: gtkpod.glade:213 gtkpod.glade:265 gtkpod.glade:317 gtkpod.glade:375
-#: gtkpod.glade:427 gtkpod.glade:1145 gtkpod.glade:1197 gtkpod.glade:1243
-msgid "Selected Tab _Entry"
-msgstr "Zon_e de tri sélectionnée"
-
-#: gtkpod.glade:222 gtkpod.glade:274 gtkpod.glade:326 gtkpod.glade:384
-#: gtkpod.glade:436 gtkpod.glade:569 gtkpod.glade:1154 gtkpod.glade:1206
-#: gtkpod.glade:1252
-msgid "Selected _Tracks"
-msgstr "Morceaux sélec_tionnés"
-
-#: gtkpod.glade:235
-msgid "Update _mserv Data from File"
-msgstr "_Mettre à jour les données mserv à partir des fichiers"
-
-#: gtkpod.glade:287
-msgid "_Synchronize Directories"
-msgstr "_Synchroniser les répertoires"
-
-#: gtkpod.glade:345
-msgid "_Export Tracks from Database"
-msgstr "_Exporter les morceaux de la base de données"
-
-#: gtkpod.glade:397
-msgid "Create _Playlist File"
-msgstr "Créer un _fichier de liste"
-
-#: gtkpod.glade:455
-msgid "_Offline"
-msgstr "M_ode Déconnecté"
-
-#: gtkpod.glade:471
-msgid "_Create iPod's Directories"
-msgstr "_Créer les répertoires système de l'iPod"
-
-#: gtkpod.glade:492
-msgid ""
-"Find orphan files (files with no track info in DB) and dangling tracks "
-"(tracks with no corresponding files on iPOD)"
-msgstr ""
-"Trouver les fichiers orphelins (fichiers sans entrée dans la base iTunesDB) "
-"et les morceaux fictifs (morceaux sans fichier correspondant sur l'iPod)"
-
-#: gtkpod.glade:493
-msgid "_Check iPod's Files"
-msgstr "_Contrôler les fichiers de l'iPod"
-
-#: gtkpod.glade:521 gtkpod.glade:11968
-msgid "_Edit"
-msgstr "_Édition"
-
-#: gtkpod.glade:530
-msgid "Edit"
-msgstr "Édition"
-
-#: gtkpod.glade:551
 #, fuzzy
-msgid "Tracks in Selected _Playlist"
-msgstr "_Liste de lecture sélectionnée"
+#~ msgid "<b>Artwork</b>"
+#~ msgstr "<b>Importer</b>"
 
-#: gtkpod.glade:560
-#, fuzzy
-msgid "Tracks in Selected Tab _Entry"
-msgstr "Zon_e de tri sélectionnée"
+#~ msgid "_Offline"
+#~ msgstr "M_ode Déconnecté"
 
-#: gtkpod.glade:591
-msgid "_Delete"
-msgstr ""
+#~ msgid ""
+#~ "You only need to specify this if your 'mp3gain' executable is not in your "
+#~ "default path. Example: '/usr/local/foo/mp3gain'. mp3gain will write the "
+#~ "calculated gain value back to the file -- if you don't want this, set "
+#~ "this entry to /bin/true or similar. mp3gain is only called if appropriate "
+#~ "tags are not already set by your encoder. E.g. lame version 0.95 already "
+#~ "writes the gain values into tags. The exact conversion factor between "
+#~ "mp3gain's gain value and iPod's volume tag is not known yet -- your input "
+#~ "is appreciated."
+#~ msgstr ""
+#~ "Vous devez seulement préciser le chemin de mp3gain si l'exécutable "
+#~ "mp3gain n'est pas défini dans vos chemins prédéfinis. Exemple : '/usr/"
+#~ "local/test/mp3gain'. mp3gain écrira le gain évalué dans le fichier -- si "
+#~ "vous ne souhaitez pas ce comportement, mettez /bin/true ou autre. mp3gain "
+#~ "appelé uniquement si le tag approprié n'a pas été rempli par votre "
+#~ "encodeur.Ainsi Lame 0.95 utilise déjà ce tag. La conversion exact entre "
+#~ "la valeur définie par mp3gain et celle définie par l'iPod n'est pas "
+#~ "encore connue."
 
-#: gtkpod.glade:612
 #, fuzzy
-msgid "Selected playlist"
-msgstr "_Liste de lecture sélectionnée"
+#~ msgid "Edit Repository Properties"
+#~ msgstr "Options de tri"
 
-#: gtkpod.glade:621
-#, fuzzy
-msgid "Selected playlist including tracks from iPod"
-msgstr "Liste de lecture «%s» supprimée avec %d morceau"
+#~ msgid "Currently no iPod database selected"
+#~ msgstr "Pas de base de données iPod sélectionnée"
 
-#: gtkpod.glade:630
-#, fuzzy
-msgid "Selected playlist including tracks from database"
-msgstr "Supprimer les morceaux inclus (base de données)"
+#~ msgid "No playlist selected."
+#~ msgstr "Pas de liste de lecture sélectionnée."
 
-#: gtkpod.glade:639
-#, fuzzy
-msgid "Selected playlist including tracks from harddisk"
-msgstr "Liste de lecture «%s» supprimée avec %d morceau sur le disque dur."
+#~ msgid "Could not delete backup file: \"%s\"\n"
+#~ msgstr "Ne peut effacer le fichier de sauvegarde : \"%s\"\n"
 
-#: gtkpod.glade:654
-#, fuzzy
-msgid "Selected filter tab entry from playlist"
-msgstr "%d morceau supprimé de la liste de lecture «%s»"
+#~ msgid "No tracks selected."
+#~ msgstr "Aucun morceau sélectionné."
 
-#: gtkpod.glade:663
-#, fuzzy
-msgid "Selected filter tab entry from iPod"
-msgstr "Suppression d'un morceau de l'iPod"
+#~ msgid "Problem creating iPod directory: '%s'."
+#~ msgstr "Problème à la création du répertoire de l'iPod : «%s»."
 
-#: gtkpod.glade:672
-#, fuzzy
-msgid "Selected filter tab entry from database"
-msgstr "1 morceau supprimé de la base de données locale"
+#~ msgid "Successfully created iPod directories in '%s'."
+#~ msgstr "Création réussie des répertoires de l'iPod dans «%s»."
 
-#: gtkpod.glade:681
-#, fuzzy
-msgid "Selected filter tab entry from harddisk"
-msgstr "%d morceau supprimé du disque dur"
+#~ msgid "Create iPod directories"
+#~ msgstr "Créer les répertoires de l'iPod"
 
-#: gtkpod.glade:696
-#, fuzzy
-msgid "Selected tracks from playlist"
-msgstr "%d morceau supprimé de la liste de lecture «%s»"
+#~ msgid "OK to create the following directories?"
+#~ msgstr "Créer les répertoires suivants ?"
 
-#: gtkpod.glade:705
-#, fuzzy
-msgid "Selected tracks from iPod"
-msgstr "Suppression d'un morceau de l'iPod"
+#~ msgid ""
+#~ "Could not find mp3gain. I tried to use the following executable: '%s'.\n"
+#~ "\n"
+#~ "If the mp3gain executable is not in your path or named differently, you "
+#~ "can set the full path in the 'Tools' section of the preferences dialog.\n"
+#~ "\n"
+#~ "If you do not have mp3gain installed, you can download it from http://www."
+#~ "sourceforge.net/projects/mp3gain."
+#~ msgstr ""
+#~ "Impossible de trouver mp3gain. Éxecutable testé : '%s'.\n"
+#~ "\n"
+#~ "Si le chemin de mp3gain n'est pas défini dans $PATH ou est nommé "
+#~ "différemment, vous pouvez spécifier le chemin complet dans l'onglet "
+#~ "'Outils' des préférences.\n"
+#~ "\n"
+#~ "Si mp3gain n'est pas installé, vous pouvez le télécharger sur le site "
+#~ "officiel http://mp3gain.sourceforge.net ou dans les paquetages de votre "
+#~ "système."
 
-#: gtkpod.glade:714
-#, fuzzy
-msgid "Selected tracks from database"
-msgstr "1 morceau supprimé de la base de données locale"
+#~ msgid ""
+#~ "  -o:           use offline mode. No changes are exported to the iPod,\n"
+#~ "                but to ~/.gtkpod/ instead. iPod is updated if 'Sync' is\n"
+#~ "                used with 'Offline' deactivated.\n"
+#~ msgstr ""
+#~ "  -o :           mode déconnecté. Aucun changement ne sera exporté vers \n"
+#~ "                l'iPod, mais vers ~/.gtkpod/. L'iPod sera mis à jour si \n"
+#~ "                \"Exporter\" est appelé et le mode \"deconnecté\" n'est \n"
+#~ "                pas activé\n"
 
-#: gtkpod.glade:723
-#, fuzzy
-msgid "Selected tracks from harddisk"
-msgstr "%d morceau supprimé du disque dur"
+#~ msgid "  --offline:    same as '-o'.\n"
+#~ msgstr "  --offline     identique à «-o».\n"
 
-#: gtkpod.glade:742
-msgid "_Create Playlists"
-msgstr "_Créer une liste de lecture"
+#~ msgid "Error while reading prefs: %s\n"
+#~ msgstr "Erreur lors de la lecture des options : %s\n"
 
-#: gtkpod.glade:763
-msgid "Empty Playlist"
-msgstr "Vide"
+#~ msgid "Unable to open config file '%s' for reading\n"
+#~ msgstr "Impossible d'ouvrir en lecture le fichier des options «%s»\n"
 
-#: gtkpod.glade:781
-msgid "Random Playlist from Displayed Tracks"
-msgstr "Contenant les morceaux affichés aléatoirement"
+#~ msgid "Unknown option: %s\n"
+#~ msgstr "Option inconnue : %s\n"
 
-#: gtkpod.glade:790
-msgid "Containing Displayed Tracks"
-msgstr "Contenant les morceaux affichés"
+#~ msgid "# delete confirmation\n"
+#~ msgstr "# confirmation de suppression\n"
 
-#: gtkpod.glade:799
-msgid "Containing Selected Tracks"
-msgstr "Contenant les morceaux sélectionnés"
+#~ msgid "# sort tab: select 'All', last selected page (=category)\n"
+#~ msgstr "# zones : choix «Tous», dernière page sélectionnée (=catégorie)\n"
 
-#: gtkpod.glade:808
-msgid "One for each Artist"
-msgstr "Par artiste"
+#~ msgid "# autoselect master playlist?\n"
+#~ msgstr "# sélection automatique de liste de lecture principale ?\n"
 
-#: gtkpod.glade:817
-msgid "One for each Album"
-msgstr "Par album"
+#~ msgid "# title=0, artist, album, genre, composer\n"
+#~ msgstr "# titre=0, artiste, album, genre, compositeur\n"
 
-#: gtkpod.glade:826
-msgid "One for each Genre"
-msgstr "Par genre"
+#~ msgid "# track_nr=5, ipod_id, pc_path, transferred\n"
+#~ msgstr "# no_piste=5, ipod_id, pc_path, transféré\n"
 
-#: gtkpod.glade:835
-msgid "One for each Composer"
-msgstr "Par compositeur"
+#~ msgid "# autoset: set empty tag to filename?\n"
+#~ msgstr ""
+#~ "# Définition automatique : mettre à vide les attributs dans le fichier ?\n"
 
-#: gtkpod.glade:844
-msgid "One for each Year"
-msgstr "Par année"
+#~ msgid ""
+#~ "# position of sliders (paned): playlists, above tracks,\n"
+#~ "# between sort tabs, and in statusbar.\n"
+#~ msgstr ""
+#~ "# position des sliders (dans le panneau) : listes de lecture, parmi les "
+#~ "morceaux,\n"
+#~ "# entre les zones et dans la barre d'état.\n"
 
-#: gtkpod.glade:853
-msgid "One for each Rating"
-msgstr "Par note"
+#~ msgid ""
+#~ "# window sizes: main window, confirmation scrolled,\n"
+#~ "#               confirmation non-scrolled, dirbrowser, prefs\n"
+#~ msgstr ""
+#~ "# tailles de fenêtres : fenêtre principale, confirmation avec "
+#~ "défilement,\n"
+#~ "#                       confirmation sans défilement, explorateur de "
+#~ "fichiers\n"
 
-#: gtkpod.glade:862
-msgid "Best Rated Tracks"
-msgstr "Contenant les morceaux les mieux notés"
+#~ msgid "Unable to open '%s' for writing\n"
+#~ msgstr "Impossible d'ouvrir en écriture «%s»\n"
 
-#: gtkpod.glade:871
-msgid "Tracks Most Often Listened To"
-msgstr "Contenant les morceaux les plus écoutés"
+#~ msgid ""
+#~ " Preferences: Category nr (%d<%d?) or sorttab nr (%d<%d?) out of range.\n"
+#~ msgstr ""
+#~ " Préférences : N° de catégorie (%d<%d?) ou n° de zone (%d<%d ?) "
+#~ "inexistant.\n"
 
-#: gtkpod.glade:880
-msgid "Most Recently Played Tracks"
-msgstr "Contenant les morceaux dernièrement joués"
+#~ msgid "Unable to 'mkdir %s'\n"
+#~ msgstr "Impossible de lancer «mkdir %s»\n"
 
-#: gtkpod.glade:889
-msgid "All Tracks Played Since Last Time"
-msgstr "Contenant les morceaux joués depuis la dernière fois"
+#~ msgid "prefs_set_toolbar_style: illegal style '%d' ignored\n"
+#~ msgstr "prefs_set_toolbar_style : style «%d» non reconnu\n"
 
-#: gtkpod.glade:898
-msgid "All Tracks Never Listened To"
-msgstr "Contenant les morceaux qui n'ont jamais été écoutés"
+#~ msgid "prefs_set_pm_sort: illegal type '%d' ignored\n"
+#~ msgstr "prefs_set_pm_sort : style «%d» non reconnu\n"
 
-#: gtkpod.glade:907
-msgid "All Tracks not Listed in any Playlist"
-msgstr "Contenant tous les morceaux qui n'appartiennent à aucune liste"
+#~ msgid "'%s': no arguments (%%...) allowed.\n"
+#~ msgstr "«%s» : aucun argument autorisé (%%s...).\n"
 
-#: gtkpod.glade:920
-msgid "Randomize Current Playlist"
-msgstr "Mélanger l'ordre de la liste de lecture actuelle"
+#~ msgid "'%s': only '%%[%s]' allowed.\n"
+#~ msgstr "«%s» : seulement «%%s[%s]» autorisé.\n"
 
-#: gtkpod.glade:935
-msgid "_Sorting"
-msgstr "_Tri"
+#~ msgid "_Read iTunesDB"
+#~ msgstr "_Lire les infos de la base iTunesDB"
 
-#: gtkpod.glade:957
-msgid "_Save Displayed Track Order"
-msgstr "_Sauver l'ordre de tri des morceaux affichés"
+#~ msgid "Synchronize _iTunesDB"
+#~ msgstr "Synchroniser la base _iTunesDB"
 
-#: gtkpod.glade:985
-msgid "_Edit Preferences"
-msgstr "_Préférences"
+#~ msgid "Edit"
+#~ msgstr "Édition"
 
-#: gtkpod.glade:1011
-msgid "_View"
-msgstr "_Affichage"
+#~ msgid "Read Existing Database from Disk/iPod"
+#~ msgstr "Lire les données du disque/iPod"
 
-#: gtkpod.glade:1020
-msgid "_Toolbar"
-msgstr "_Barre d'outils"
+#~ msgid "Read"
+#~ msgstr "Lire"
 
-#: gtkpod.glade:1030
-msgid "_Tooltips"
-msgstr "_Infobulles"
+#~ msgid "Write Changes to Disk/iPod"
+#~ msgstr "Écrire les données sur le disque/iPod"
 
-#: gtkpod.glade:1040
-msgid "_Info Window"
-msgstr "_Fenêtre d'infos"
+#~ msgid "Sync"
+#~ msgstr "Synchroniser"
 
-#: gtkpod.glade:1051
-msgid "_More Sort Tabs"
-msgstr "_Ajouter une zone de tri"
-
-#: gtkpod.glade:1072
-msgid "_Less Sort Tabs"
-msgstr "_Supprimer une zone de tri"
-
-#: gtkpod.glade:1093
-msgid "_Arrange Sort Tabs"
-msgstr "_Organiser les zones de tri"
-
-#: gtkpod.glade:1106 gtkpod.glade:12693
-msgid "_Tools"
-msgstr "_Outils"
-
-#: gtkpod.glade:1115
-msgid "_Play Now"
-msgstr "_Jouer maintenant"
-
-#: gtkpod.glade:1167
-msgid "_Enqueue"
-msgstr "_Ajouter à la file d'attente"
-
-#: gtkpod.glade:1225
-msgid "_Normalize Volume"
-msgstr "_Normaliser le volume"
-
-#: gtkpod.glade:1261
-msgid "_Displayed Tracks"
-msgstr "_Morceaux affichés"
-
-#: gtkpod.glade:1270
-msgid "_All Tracks"
-msgstr "_Tous les morceaux"
-
-#: gtkpod.glade:1279
-msgid "_Newly Added Tracks"
-msgstr "_Nouveaux morceaux ajoutés"
-
-#: gtkpod.glade:1298
-msgid "Synchronise Contacts, Calendar and Notes"
-msgstr "Synchroniser le calendrier, contacts et notes"
-
-#: gtkpod.glade:1299
-msgid "Synchronize All"
-msgstr "Tout synchroniser"
-
-#: gtkpod.glade:1308
-msgid "Synchronize Contacts"
-msgstr "Synchroniser les contacts"
-
-#: gtkpod.glade:1317
-msgid "Synchronize Calendar"
-msgstr "Synchroniser le calendrier"
-
-#: gtkpod.glade:1326
-msgid "Synchronize Notes"
-msgstr "Synchroniser les notes"
-
-#: gtkpod.glade:1339
-msgid "_Help"
-msgstr "A_ide"
-
-#: gtkpod.glade:1348
-msgid "_About"
-msgstr "A _propos"
-
-#: gtkpod.glade:1388
-msgid "Read Existing Database from Disk/iPod"
-msgstr "Lire les données du disque/iPod"
-
-#: gtkpod.glade:1389
-msgid "Read"
-msgstr "Lire"
-
-#: gtkpod.glade:1406
-msgid "Add Files or Directories"
-msgstr "Ajouter des fichiers ou répertoires"
-
-#: gtkpod.glade:1407
-msgid "Files"
-msgstr "Fichiers"
-
-#: gtkpod.glade:1424
-msgid "Add Directories Recursively"
-msgstr "Ajouter récursivement des répertoires"
-
-#: gtkpod.glade:1425
-msgid "Dirs"
-msgstr "Répertoires"
-
-#: gtkpod.glade:1442
-msgid "Add playlist from file"
-msgstr "Ajouter une liste de lecture"
-
-#: gtkpod.glade:1460
-msgid "Create New Playlist"
-msgstr "Créer une liste de lecture"
-
-#: gtkpod.glade:1461
-msgid "New PL"
-msgstr "Nouvelle liste"
-
-#: gtkpod.glade:1478
-msgid "Write Changes to Disk/iPod"
-msgstr "Écrire les données sur le disque/iPod"
-
-#: gtkpod.glade:1479
-msgid "Sync"
-msgstr "Synchroniser"
-
-#: gtkpod.glade:1495
-msgid "Stop Display Update"
-msgstr "Annuler la mise à jour de l'affichage"
-
-#: gtkpod.glade:1496
-msgid "Stop"
-msgstr "Interrompre"
-
-#: gtkpod.glade:1669
-msgid "About gtkpod"
-msgstr "A propos de gtkpod"
-
-#: gtkpod.glade:1790
-msgid "Credits"
-msgstr "Crédits"
-
-#: gtkpod.glade:1844
-msgid "Translators"
-msgstr "Traducteurs"
-
-#: gtkpod.glade:1898
-msgid "special_sorttab -- Don't translate!"
-msgstr ""
-
-#: gtkpod.glade:1932
-msgid " Logic: "
-msgstr " Opérateur logique : "
-
-#: gtkpod.glade:1954
-msgid "Any (OR)"
-msgstr "Ou"
-
-#: gtkpod.glade:1973
-msgid "All (AND)"
-msgstr "Et"
-
-#: gtkpod.glade:2026
-msgid "0"
-msgstr "0"
-
-#: gtkpod.glade:2045
-msgid "1"
-msgstr "1"
-
-#: gtkpod.glade:2064
-msgid "2"
-msgstr "2"
-
-#: gtkpod.glade:2083
-msgid "3"
-msgstr "3"
-
-#: gtkpod.glade:2102
-msgid "4"
-msgstr "4"
-
-#: gtkpod.glade:2121
-msgid "5"
-msgstr "5"
-
-#: gtkpod.glade:2160
-msgid "Select '0' for no lower limit."
-msgstr "Choisissez «0» pour aucune limite inférieure."
-
-#: gtkpod.glade:2181
-msgid " <= cts <= "
-msgstr " <= et <= "
-
-#: gtkpod.glade:2202
-msgid "Select '-1' for no upper limit."
-msgstr "Choisissez «-1» pour aucune limite supérieure."
-
-#: gtkpod.glade:2245 gtkpod.glade:2318 gtkpod.glade:2484
-msgid ""
-"'DD/MM/YYYY HH:MM < d < DD/MM/YYYY HH:MM' or similar. Press 'enter' when "
-"finished."
-msgstr ""
-"'JJ/MM/AAAA HH:MM < d < JJ/MM/AAAA HH:MM' ou similaire. Appuyez 'Entrée' "
-"pour valider."
-
-#: gtkpod.glade:2287 gtkpod.glade:2360 gtkpod.glade:2526 gtkpod.glade:2701
-msgid "Calendar"
-msgstr "Calendrier"
-
-#: gtkpod.glade:2385
-msgid "Specify interval"
-msgstr "Spécifier un intervalle"
-
-#: gtkpod.glade:2596
-msgid "Display tracks that match the criteria entered above."
-msgstr "Afficher les morceaux qui correspondent aux critères saisis."
-
-#: gtkpod.glade:2639 gtkpod.glade:11330
-msgid "_Display"
-msgstr "_Affichage"
-
-#: gtkpod.glade:2671
-msgid ""
-"Automatically start displaying tracks that match the criteria entered above. "
-"If not selected, you must press 'Display' to start displaying."
-msgstr ""
-"Affiche automatiquement les morceaux qui correspondent aux critères saisis."
-"En désactivant cette option, vous devrez appuyer sur 'Afficher'."
-
-#: gtkpod.glade:2673
-msgid "Start display automatically"
-msgstr "Afficher automatiquement"
-
-#: gtkpod.glade:2746
-msgid "Sorttab: "
-msgstr "Zone de tri :"
-
-#: gtkpod.glade:2786
-msgid "     "
-msgstr "     "
-
-#: gtkpod.glade:2808
-msgid "Category: "
-msgstr "Catégorie : "
-
-#: gtkpod.glade:2885
-msgid "Please specify a time interval"
-msgstr "Spécifiez un intervalle de temps"
-
-#: gtkpod.glade:2930
-msgid "Lower Margin"
-msgstr "Borne inférieure"
-
-#: gtkpod.glade:2977 gtkpod.glade:3183
-msgid "Time:"
-msgstr "Heure :"
-
-#: gtkpod.glade:3020 gtkpod.glade:3226
-msgid ":"
-msgstr ":"
-
-#: gtkpod.glade:3093
-msgid "No lower margin"
-msgstr "Pas de borne inférieure"
-
-#: gtkpod.glade:3136
-msgid "Upper margin"
-msgstr "Borne supérieure"
-
-#: gtkpod.glade:3299
-msgid "No upper margin"
-msgstr "Pas de borne supérieure"
-
-#: gtkpod.glade:3397
-msgid "Sorting Options"
-msgstr "Options de tri"
-
-#: gtkpod.glade:3427
-msgid "<b>Sort Order</b>"
-msgstr "<b>Ordre de tri</b>"
-
-#: gtkpod.glade:3454 gtkpod.glade:4704 gtkpod.glade:7682 gtkpod.glade:7860
-#: gtkpod.glade:8031 gtkpod.glade:8108 gtkpod.glade:8163 gtkpod.glade:8239
-#: gtkpod.glade:8396 gtkpod.glade:8522 gtkpod.glade:8879 gtkpod.glade:9338
-#: gtkpod.glade:9700 gtkpod.glade:10487 gtkpod.glade:10644 gtkpod.glade:10801
-#: gtkpod.glade:10922 gtkpod.glade:10975 gtkpod.glade:11132 gtkpod.glade:11389
-#: gtkpod.glade:11443 gtkpod.glade:11554 gtkpod.glade:11657 gtkpod.glade:11813
-#: gtkpod.glade:12027 gtkpod.glade:12248 gtkpod.glade:12386 gtkpod.glade:12752
-#: gtkpod.glade:12870 gtkpod.glade:13044 gtkpod.glade:13279 gtkpod.glade:13381
-msgid "    "
-msgstr "     "
-
-#: gtkpod.glade:3482
-msgid ""
-"In order to save the displayed track order to the iPod choose 'Save "
-"Displayed Track Order' from the 'Edit' menu or select 'Auto Store' below."
-msgstr ""
-"Afin de trier par ordre alphabétique sur l'iPod, vous devez cliquer sur le "
-"menu 'Édition' puis 'Sauver l'ordre de tri des morceaux affichés' ou "
-"l'option 'Sauver automatiquement' ci-dessus."
-
-#: gtkpod.glade:3865
-msgid "Ascending"
-msgstr "Croissant"
-
-#: gtkpod.glade:3909
-msgid "Descending"
-msgstr "Décroissant"
-
-#: gtkpod.glade:3953
-msgid "None"
-msgstr "Aucun"
-
-#: gtkpod.glade:4042
-msgid "Sorttabs"
-msgstr "Zones de tri :"
-
-#: gtkpod.glade:4087
-msgid "Tracks"
-msgstr "Morceaux"
-
-#: gtkpod.glade:4240
-msgid "Auto Store"
-msgstr "Sauver automatiquement"
-
-#: gtkpod.glade:4285 gtkpod.glade:4331
-msgid "Please refer to the notice below."
-msgstr "Référez vous à la règle ci-dessous."
-
-#: gtkpod.glade:4563
-msgid "Sort tracks according to: "
-msgstr "Trier les morceaux suivant :"
-
-#: gtkpod.glade:4593
-msgid ""
-"You can also use the table headers, but this allows you to sort according to "
-"a column that is not displayed."
-msgstr ""
-"Vous pouvez aussi utiliser le tableau des entêtes, mais cela permet de trier "
-"sur une colonne qui n'est pas affichée."
-
-#: gtkpod.glade:4629
-msgid ""
-"If checked, sorting will be case sensitive. Please note that case sensitive "
-"sorting will not work well with most charsets."
-msgstr ""
-"En cochant cette option, le tri tiendra compte de la casse (minuscule/"
-"majuscule). Le tri dépend du jeu de caractères."
-
-#: gtkpod.glade:4631
-msgid "Sorting case sensitive"
-msgstr "Trier en tenant compte de la casse"
-
-#: gtkpod.glade:4677
-msgid "<b>Ignore Frequent Words</b>"
-msgstr "<b>Ignorer les mots courants</b>"
-
-#: gtkpod.glade:4769
-msgid "Ignore these words when at the beginning of the following fields:"
-msgstr "Ignorer ces mots au début des champs suivants :"
-
-#: gtkpod.glade:5040
-msgid "gtkpod Info"
-msgstr "Info gtkpod"
-
-#: gtkpod.glade:5339 gtkpod.glade:5414 gtkpod.glade:5439 gtkpod.glade:6065
-#: gtkpod.glade:6198
-msgid "      "
-msgstr "      "
-
-#: gtkpod.glade:5692
-msgid "Number of tracks"
-msgstr "Nombre de morceaux"
-
-#: gtkpod.glade:5718
-msgid "Play time"
-msgstr "Temps de lecture"
-
-#: gtkpod.glade:5745
-msgid "File size"
-msgstr "Taille du fichier"
-
-#: gtkpod.glade:5771
-msgid "Number of playlists"
-msgstr "Nombre de listes de lecture"
-
-#: gtkpod.glade:5797
-msgid "Deleted tracks"
-msgstr "Morceaux supprimés"
-
-#: gtkpod.glade:5823
-msgid "File size (deleted)"
-msgstr "Taille des fichiers (supprimés)"
-
-#: gtkpod.glade:5849
-msgid "Non-transferred tracks"
-msgstr "Morceaux non transférés"
-
-#: gtkpod.glade:5875
-msgid "File size (non-transferred)"
-msgstr "Taille des fichiers (non transférés)"
-
-#: gtkpod.glade:5901
-msgid "Effective free space"
-msgstr "Espace libre effectif"
-
-#: gtkpod.glade:5927
-msgid ""
-"Total\n"
-"(iPod)"
-msgstr ""
-"Total\n"
-"(iPod)"
-
-#: gtkpod.glade:5955
-msgid ""
-"Selected\n"
-"Playlist"
-msgstr ""
-"Liste de lecture\n"
-"Sélectionnée"
-
-#: gtkpod.glade:5983
-msgid ""
-"Displayed\n"
-"Tracks"
-msgstr ""
-"Morceaux\n"
-"Affichés"
-
-#: gtkpod.glade:6011
-msgid ""
-"Selected\n"
-"Tracks"
-msgstr ""
-"Morceaux\n"
-"Sélec_tionnés"
-
-#: gtkpod.glade:6039
-msgid ""
-"Total\n"
-"(local)"
-msgstr ""
-"Total\n"
-"(local)"
-
-#: gtkpod.glade:6436
-msgid "label21"
-msgstr "label21"
-
-#: gtkpod.glade:6527
-msgid "Never show this dialogue again"
-msgstr "Ne plus afficher ce message"
-
-#: gtkpod.glade:6572 gtkpod.glade:6898
-msgid "window1"
-msgstr "window1"
-
-#: gtkpod.glade:6629
-msgid "_M3U"
-msgstr "_M3U"
-
-#: gtkpod.glade:6648
-msgid "_PLS"
-msgstr "_PLS"
-
-#: gtkpod.glade:6686
-msgid ""
-"If available, the local copy of the track is referenced in the playlist. "
-"Otherwise the file on the iPod is used."
-msgstr ""
-"Si possible, c'est la copie locale du fichier qui est référencée dans la "
-"liste. Autrement, le fichier de l'iPod est utilisé."
-
-#: gtkpod.glade:6688
-msgid "_Prefer Local"
-msgstr "Locale de _préférence"
-
-#: gtkpod.glade:6706
-msgid ""
-"The local copy of the track is referenced in the playlist. If the track is "
-"not available locally, an error message is displayed."
-msgstr ""
-"Le fichier local du morceau est référencé dans la liste. Si le fichier "
-"n'existe pas, un message d'erreur est affiché."
-
-#: gtkpod.glade:6708
-msgid "_Local"
-msgstr "_Locale"
-
-#: gtkpod.glade:6727
-msgid "The track on the iPod is referenced in the playlist file."
-msgstr ""
-"Le morceau de l'iPod est référencé dans le fichier de liste de lecture."
-
-#: gtkpod.glade:6729
-msgid "_iPod"
-msgstr "_iPod"
-
-#: gtkpod.glade:6762
-msgid "Playlist type:"
-msgstr "Type de liste :"
-
-#: gtkpod.glade:6787
-msgid "Source:"
-msgstr "Source :"
-
-#: gtkpod.glade:6826
-msgid "Template for info field: "
-msgstr "Modèle pour le champ d'info :"
-
-#: gtkpod.glade:6847
-msgid ""
-"Determines how the string for the info field should be constructed, e.g '%a/%"
-"A/%T - %t.mp3' or '%o'.  You can separate several templates by semicolons -- "
-"gtkpod will determine which one to use by the filename extension given. "
-"Artist: %a, album: %A, composer: %c, title: %t, genre: %G, track nr: %T, CD "
-"nr: %C, year: %Y, original filename (requires extended information file): %"
-"o, the character '%': %%."
-msgstr ""
-"Détermine comment le champ d'information doit être construit, par exemple '%"
-"a/%A/%T - %t' or '%o'. Vous pouvez séparer les expressions par des points-"
-"virgules -- gtkpod déterminera laquelle utiliser suivant l'extension du "
-"fichier donnée. Artiste: %a, album: %A, compositeur; %c, titre: %t, genre: %"
-"G, numéro de piste: %T, numéro de CD: %C, anné: %Y, le nom de fichier "
-"original (nécessite le fichier d'infos étendues): %o, le caractère '%': %%."
-
-#: gtkpod.glade:6878 gtkpod.glade:7108
-msgid "gtkpod options"
-msgstr "Options gtkpod"
-
-#: gtkpod.glade:6934
-msgid "Filename Format: "
-msgstr "Format du nom des fichiers : "
-
-#: gtkpod.glade:6955
-msgid ""
-"Determines the filename of tracks you copy from the iPod, e.g '%a/%A/%T - %t."
-"mp3' or '%o'.  You can separate several patterns by semicolons -- gtkpod "
-"will determine which one to use by the filename extension given. Artist: %a, "
-"album: %A, composer: %c, title: %t, genre: %G, track nr: %T, CD nr: %C, "
-"year: %Y, original filename (requires extended information file): %o, "
-"current playlist: %p, the character '%': %%."
-msgstr ""
-"Détermine le nom de fichier des morceaux que vous copiez de l'iPod, par "
-"exemple '%a/%A/%T - %t' ou '%o'. Vous pouvez séparer les expressions par des "
-"points-virgules -- gtkpod déterminera laquelle utiliser suivant l'extension "
-"du fichier donnée. Artiste: %a, album: %A, compositeur; %c, titre: %t, "
-"genre: %G, numéro de piste: %T, numéro de CD: %C, année: %Y, le nom de "
-"fichier original (nécessite le fichier d'infos étendues): %o, le caractère "
-"'%': %%."
-
-#: gtkpod.glade:6960
-msgid " "
-msgstr " "
-
-#: gtkpod.glade:6982
-msgid ""
-"Normally the charset specified when first importing the track will be used "
-"for the filename. If you set this option you can set a different charset "
-"with the charset selector (Preferences/'Adding/Updating/Syncing'). Note: the "
-"charset info is stored in the extended information file (see "
-"Preferences/'Writing of the iTunesDB'). Tracks imported before V0.51 will "
-"have no charset stored. Instead the charset specified will be used."
-msgstr ""
-"Par défaut, le jeu de caractères spécifié lors du premier import d'un "
-"morceau sera celui utilisé pour la mise à jour. Si vous cochez cette option, "
-"vous pouvez utiliser un jeu de caractère différent de ci-dessus. Note : les "
-"infos sur les caractères sont stockées dans un fichier d'informations "
-"étendues. Les morceaux importés avant la version 0.51 de gtkpod n'utilisait "
-"pas ce fichier. Ce sera le jeu de caractère spécifié ici qui sera utilisé en "
-"cas de mise à jour de ces morceaux."
-
-#: gtkpod.glade:6984
-msgid ""
-"Use selected charset (Preferences/'Adding/Updating/ Syncing')\n"
-"for this filename."
-msgstr ""
-"Utilise le jeu de caractère sélectionné pour ce fichier\n"
-"(voir la section ci-dessus : 'Ajout/Mise à jour/Synchronisation')"
-
-#: gtkpod.glade:7003
-msgid ""
-"When copying from iPod no check is performed on whether the destination file "
-"exists. Enabling this option will make gtkpod check whether the length of "
-"the destination file is the same as the file in the iPod. If so the file is "
-"skipped, allowing a quick sync of the iPod's contents."
-msgstr ""
-"Lors de la copie de morceaux à partir de l'iPod, aucun contrôle n'est fait "
-"pour déterminer si le fichier existe déjà. En activant cette option, gtkpod "
-"vérifiera que la taille du fichier de destination est identique à la taille "
-"du fichier sur l'iPod. En ce cas, le fichier n'est pas recopié pour "
-"accélérer la synchronisation du contenu de l'iPod."
-
-#: gtkpod.glade:7005
-msgid "Check for existing files when copying from iPod."
-msgstr ""
-"Contrôler l'existence des fichiers lors de la copie à partir de l'ipod."
-
-#: gtkpod.glade:7169
-msgid "Playlist name:"
-msgstr "Nom de la liste :"
-
-#: gtkpod.glade:7234
-msgid "Match al_l of the following"
-msgstr "Répondant à toutes les règ_les"
-
-#: gtkpod.glade:7253
-msgid "Match an_y of the following"
-msgstr "Répondant à quelques _règles"
-
-#: gtkpod.glade:7273
-msgid "_Ignore rules"
-msgstr "Ne respectant _pas les règles"
-
-#: gtkpod.glade:7343
-msgid "Rules"
-msgstr "Règles"
-
-#: gtkpod.glade:7376
-msgid "_Limit to"
-msgstr "_Limiter à"
-
-#: gtkpod.glade:7425
-msgid "   Sort by:"
-msgstr "   Trier par :"
-
-#: gtkpod.glade:7471
-msgid "Match only _checked tracks"
-msgstr "Seulement les morceaux _cochés"
-
-#: gtkpod.glade:7503
-msgid "Live _updating"
-msgstr "Mise à jour automatique"
-
-#: gtkpod.glade:7594
-msgid "Preferences"
-msgstr "Préférences"
-
-#: gtkpod.glade:7655
-msgid "<b>Import</b>"
-msgstr "<b>Importer</b>"
-
-#: gtkpod.glade:7715
-msgid "iPod Mount _Point:"
-msgstr "Point de montage de l'iPod :"
-
-#: gtkpod.glade:7737
-msgid ""
-"Where you mounted your iPod's filesystem. Usually '/mnt/ipod/' or similar."
-msgstr "Point de montage de l'iPod. Habituellement «/mnt/ipod»"
-
-#: gtkpod.glade:7765
-msgid ""
-"On startup gtkpod will call 'mount <ipod mountpoint>', on exit a 'umount "
-"<ipod mountpoint>' call is carried out. For more complicated arrangements "
-"please use the ~/.gtkpod/gtkpod.in and ~/.gtkpod/gtkpod.out scripts."
-msgstr ""
-"Au démarrage, gtkpod appelera la commande 'mount <point de montage de "
-"l'iPod>', et à la fermeture 'umount <point de montage de l'iPod>'. Pour des "
-"scripts, vous pouvez utiliser les fichiers ~/.gtkpod/gtkpod.in et ~/.gtkpod/"
-"gtkpod.out."
-
-#: gtkpod.glade:7767
-msgid "Handle mounting/unmounting of iPod drive"
-msgstr "Gérer automatiquement le montage/démontage de l'iPod"
-
-#: gtkpod.glade:7787
-msgid "Automatically import iTunesDB on startup"
-msgstr "Importer les données de l'iPod au démarrage de gtkpod"
-
-#: gtkpod.glade:7833
-msgid "<b>Adding/Updating/Syncing</b>"
-msgstr "<b>Ajout/Mise à jour/Synchronisation</b>"
-
-#: gtkpod.glade:7893
 #, fuzzy
-msgid "_Encoding (ID3, files):"
-msgstr "Jeu de _caractères (ID3, fichiers) :"
+#~ msgid "Update Tracks"
+#~ msgstr "Morceaux non notés"
 
-#: gtkpod.glade:7924
-msgid ""
-"gtkpod expects the ID3 tags and the filenames to be in the encoding "
-"specified here. You can change it for consecutive 'Add Files' and 'Add Dirs' "
-"operation. 'System Charset' is the charset used by your current locale."
-msgstr ""
-"gtkpod utilisera le jeu de caractères spécifié ici pour les attributs ID3 et "
-"les fichiers. Vous pouvez le modifier entre chaque opération d'ajout.'Jeu de "
-"caractères du système' est le jeu de caractère défini par les locales de "
-"votre système."
+#~ msgid "Normalize"
+#~ msgstr "Normaliser"
 
-#: gtkpod.glade:7961
-msgid ""
-"Normally the charset specified when first importing the track will be used "
-"to update the track information. If you have chosen a wrong charset when "
-"first importing a track and want to correct it using the 'Update Track' "
-"function, you must check this option. Note: the charset info is stored in "
-"the extended information file (see 'Writing of iTunesDB' below) and tracks "
-"imported before V0.51 will have no charset stored. Instead the charset "
-"specified above will be used then."
-msgstr ""
-"Par défaut, le jeu de caractère spécifié lors du premier import d'un morceau "
-"sera celui utilisé pour la mise à jour. Pour corriger un mauvais jeu de car. "
-"sélectionné à l'import initial d'un morceau, cocher cette option pour le "
-"modifier lors de la mise à jour de ce morceau. Note : les infos sur les "
-"caractères sont stockées dans un fichier d'informations étendues et les "
-"morceaux importés.avant la version 0.51 de gtkpod n'utilisait pas ce "
-"fichier. Ce sera le jeu de caractères spécifié ici qui sera utilisé en cas "
-"de mise à jour de ces morceaux."
-
-#: gtkpod.glade:7963
 #, fuzzy
-msgid ""
-"Use selected encoding also when updating \n"
-"or syncing tracks"
-msgstr ""
-"Le jeu de caractères sélectionné sera utilisé pour\n"
-"la mise à jour ou la synchronisation des morceaux"
+#~ msgid "Podcasts Preferences"
+#~ msgstr "_Préférences"
 
-#: gtkpod.glade:7983
-msgid "If you check this, gtkpod will descend into subdirectories recursively."
-msgstr ""
-"Si vous cochez cette case, gtkpod parcourera les sous-répertoires "
-"récursivement."
+#~ msgid "file not found"
+#~ msgstr "fichier introuvable"
 
-#: gtkpod.glade:7985
-msgid "Add directories recursively"
-msgstr "Ajouter les répertoires récursivement"
+#~ msgid "Unmounting of '%s' (%s) unsuccessful."
+#~ msgstr "Echec du démontage de «%s» (%s)."
 
-#: gtkpod.glade:8004
-#, fuzzy
-msgid "Duplicate Recognition is based on a (modified) md5 hash over the file."
-msgstr ""
-"La détection de doublons est basé sur la somme de contrôle md5 des fichiers"
+#~ msgid "Unmounting of '%s' unsuccessful."
+#~ msgstr "Echec du démontage de «%s»."
 
-#: gtkpod.glade:8006
-msgid "Don't allow file duplication"
-msgstr "Ne pas autoriser de doublons de fichiers"
+#~ msgid "Update"
+#~ msgstr "Mettre à jour"
 
-#: gtkpod.glade:8052
-msgid ""
-"Display the list of duplicates that have been detected after adding files."
-msgstr "Afficher la liste des doublons détectés lors de l'ajout de fichier."
+#~ msgid "Sync Dirs"
+#~ msgstr "Synchroniser les répertoires"
 
-#: gtkpod.glade:8054
-msgid "Display info about detected duplicates"
-msgstr "Afficher les infos au sujet des doublons"
+#~ msgid "Sync dirs of selected entry in which sort tab?"
+#~ msgstr ""
+#~ "Synchroniser les répertoires de l'entrée sélectionnée de quelle zone de "
+#~ "tri ?"
 
-#: gtkpod.glade:8080
-msgid ""
-"If the filename (full path) of an existing track matches that of a track to "
-"be added, this option allows you to update the information about the "
-"existing track rather than just skipping the track altogether. No update "
-"will take place if the file hasn't changed and you have selected the 'Don't "
-"allow file duplication' option above."
-msgstr ""
-"Si le fichier (chemin complet) d'un morceau existant correspond au morceau à "
-"ajouter, cette option vous permet de mettre à jour les informations du "
-"morceau existant plutôt que de l'écraser. Notez que cette option est "
-"différente de l'option ci-dessus : les doublons sont des fichiers "
-"strictement identiques (même taille, mêmes tags)"
+#~ msgid "Syncing directory '%s'"
+#~ msgstr "Synchronisation du répertoires «%s»"
 
-#: gtkpod.glade:8082
-msgid ""
-"When adding dirs/files, update information of\n"
-"existing tracks with identical filenames"
-msgstr ""
-"Lors de l'ajout de fichiers/répertoires, mettre à jour\n"
-"les informations des morceaux existants avec les doublons"
+#~ msgid "Syncing completed. No files deleted."
+#~ msgstr "Synchronisation terminée. Aucun fichier effacé."
 
-#: gtkpod.glade:8129
-msgid "Display a list of tracks that could actually be updated."
-msgstr "Afficher la liste des morceaux qui peuvent être mis à jour."
+#~ msgid "Never delete any files when syncing"
+#~ msgstr "Ne jamais effacer les fichiers lors des synchronisations"
 
-#: gtkpod.glade:8131
-msgid "Display info about updated tracks"
-msgstr "Afficher les infos des morceaux mis à jour"
+#~ msgid "Syncing completed."
+#~ msgstr "Synchronisation terminée."
 
-#: gtkpod.glade:8184
-msgid "Display a list of tracks that could not be updated."
-msgstr "Afficher la liste des morceaux qui ne peuvent pas être mis à jour."
+#~ msgid "Syncing aborted"
+#~ msgstr "Synchronisation annulée"
 
-#: gtkpod.glade:8186
-msgid "Display info about non-updated tracks"
-msgstr "Afficher les infos des morceaux qui n'ont pas été mis à jour"
+#~ msgid "No tracks in selection"
+#~ msgstr "Aucun morceau sélectionné"
 
-#: gtkpod.glade:8212
-msgid "When syncing directories"
-msgstr "Lors de la synchronisation des répertoires"
+#~ msgid "'%s' is not a directory. Ignored.\n"
+#~ msgstr "«%s» n'est pas un répertoire. Ignoré.\n"
 
-#: gtkpod.glade:8267
-msgid "Confirm lists of directories"
-msgstr "Confirmer la liste des répertoires"
+#~ msgid ""
+#~ "No directory names were stored. Make sure that you enable 'Write extended "
+#~ "information' in the Export section of the preferences at the time of "
+#~ "importing files.\n"
+#~ "\n"
+#~ "To synchronize directories now, activate the duplicate detection ('Don't "
+#~ "allow file duplication') in the Import section and add the directories "
+#~ "you want to sync again.\n"
+#~ msgstr ""
+#~ "Aucun nom de répertoire n'est stocké. Soyez sûr que vous avez activé "
+#~ "'Écriture des infos étendues' dans l'onglet Export des préférences lors "
+#~ "de l'import des fichiers.\n"
+#~ "\n"
+#~ "Maintenant, pour synchroniser les répertoires, activez la 'détection des "
+#~ "doublons' dans l'onglet Import des préférences et ajoutez les répertoires "
+#~ "que vous souhaitez synchroniser de nouveau.\n"
 
-#: gtkpod.glade:8286
-msgid ""
-"If you check this option, tracks that have been removed from the synced "
-"directories will be removed from the iPod as well."
-msgstr ""
-"En cochant cette option, les morceaux qui ont été enlevés des répertoires "
-"synchronisés seront supprimés de l'iPod aussi."
+#~ msgid "No valid directories have been found. Sync aborted.\n"
+#~ msgstr "Aucun répertoire valide n'a été trouvé. Synchro annulée.\n"
 
-#: gtkpod.glade:8288
-msgid "Delete tracks that have been removed"
-msgstr "Supprimer les morceaux qui ont été enlevés"
+#~ msgid ""
+#~ "The (former) contents of the following directories will be removed from "
+#~ "the database:\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Le contenu (actuel) des répertoires suivants sera éliminé de la base de "
+#~ "données :\n"
+#~ "\n"
 
-#: gtkpod.glade:8307
-msgid "This is the same option as in 'Edit/Delete Confirmation'"
-msgstr "C'est la même option que dans «Édition/Confirmation de suppression»"
+#~ msgid ""
+#~ "The following directories will be synchronized:\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Les répertoires suivant seront synchronisés :\n"
+#~ "\n"
 
-#: gtkpod.glade:8309
-msgid "Confirm before removing tracks"
-msgstr "Confirmer avant la suppression des morceaux"
+#~ msgid "Synchronize directories"
+#~ msgstr "Synchroniser les répertoires"
 
-#: gtkpod.glade:8369
-msgid "<b>Sync</b>"
-msgstr "<b>Synchroniser</b>"
+#~ msgid "Syncing contacts, calendar and notes..."
+#~ msgstr "Synchronisation du calendrier, contacts et notes..."
 
-#: gtkpod.glade:8417
-msgid ""
-"Highly recommended for faster import when taking advantage of the "
-"duplication recognition. Also, having the PC filenames allows writing "
-"changed ID3 tags to disk, and even to reconstruct your ipod's contents in "
-"case of file system corruption (change the \"transferred=\" entries in your "
-"backuped database)."
-msgstr ""
-"Cette option est plus que recommandée pour des raisons de performance lors "
-"de l'import en prenant en compte les doublons. De plus, cela permet de "
-"mettre à jour les attributs ID3 des fichiers sur disque, et de restaurer le "
-"contenu de votre iPod en cas de corruption du système de fichiers."
+#~ msgid "_Synchronize Directories"
+#~ msgstr "_Synchroniser les répertoires"
 
-#: gtkpod.glade:8419
-#, fuzzy
-msgid ""
-"Write extended information (PC filenames,\n"
-" MD5 hashes, encoding). Recommended."
-msgstr ""
-"Écrire les infos supplémentaires (noms de fichiers PC, somme de contrôle "
-"MD5,\n"
-" jeu des caractères). Recommandé."
+#~ msgid ""
+#~ "Where you mounted your iPod's filesystem. Usually '/mnt/ipod/' or similar."
+#~ msgstr "Point de montage de l'iPod. Habituellement «/mnt/ipod»"
 
-#: gtkpod.glade:8463 gtkpod.glade:14970
-#, fuzzy
-msgid "_General"
-msgstr "Général"
+#~ msgid ""
+#~ "If you check this option, tracks that have been removed from the synced "
+#~ "directories will be removed from the iPod as well."
+#~ msgstr ""
+#~ "En cochant cette option, les morceaux qui ont été enlevés des répertoires "
+#~ "synchronisés seront supprimés de l'iPod aussi."
 
-#: gtkpod.glade:8495
-msgid "<b>Tag Reading</b>"
-msgstr "<b>Lecture des attributs</b>"
+#~ msgid "Delete tracks that have been removed"
+#~ msgstr "Supprimer les morceaux qui ont été enlevés"
 
-#: gtkpod.glade:8550
-msgid "Read tags from file contents (e.g. ID3 tags in MP3 files)"
-msgstr ""
-"Lire les attributs à partir du contenu des fichiers (attributs ID3 dans les "
-"fichiers)"
+#~ msgid "Confirm before removing tracks"
+#~ msgstr "Confirmer avant la suppression des morceaux"
 
-#: gtkpod.glade:8569 gtkpod.glade:8906
-msgid ""
-"artist: %a, album: %A, composer: %c, title: %t, genre: %G, track nr: %T, CD "
-"nr: %C, year: %Y, skip data: %*, the character '%': %%. You can separate "
-"several templates by a ';'. The first one matching the filename will be "
-"used. Example: '%a - %A/%T %t.mp3;%t.wav'."
-msgstr ""
-"artiste: %a, album: %A, compositeur: %c, titre: %t, genre: %G, numéro de "
-"piste: %T, numéro de CD: %C, ignore: %*, le caractère '%': %%. Vous pouvez "
-"séparer plusieurs masques par un ';'. Le premier masque concordant sera "
-"utilisé. Exemple : '%a - %A/%T %t.mp3;%t.wav'."
+#~ msgid ""
+#~ "Before removing tracks completely when\n"
+#~ "synchronizing directories"
+#~ msgstr ""
+#~ "Avant de supprimer complètement les morceaux lors\n"
+#~ "des synchronisations des répertoires"
 
-#: gtkpod.glade:8571
-msgid "Use this template to parse filename for tag information:"
-msgstr ""
-"Utiliser ce masque pour générer les attributs à partir du nom de fichier :"
-
-#: gtkpod.glade:8644
-msgid "Overwrite tags that are already set"
-msgstr "Écraser les attributs déjà présents"
-
-#: gtkpod.glade:8677
-msgid ""
-"As a last resort set the following tags to the\n"
-"filename if they are (still) empty:"
-msgstr ""
-"Mettre un attribut par défaut au cas où les attributs restent\n"
-"vides après l'extraction à partir du nom de fichier :"
-
-#: gtkpod.glade:8852
 #, fuzzy
-msgid "<b>Artwork</b>"
-msgstr "<b>Importer</b>"
+#~ msgid "Add"
+#~ msgstr "Ajouté"
 
-#: gtkpod.glade:8908
-msgid "Add artwork from file using the following template"
-msgstr ""
-
-#: gtkpod.glade:8960
 #, fuzzy
-msgid ""
-"Determines the name of the file with the cover art. You can separate several "
-"patterns by semicolons which will be tried in order. Artist: %a, album: %A, "
-"composer: %c, title: %t, genre: %G, track nr: %T, CD nr: %C, year: %Y, "
-"original filename (requires extended information file): %o, original "
-"filename without file extension: %O, current playlist: %p, the character "
-"'%': %%."
-msgstr ""
-"Détermine le nom de fichier des morceaux que vous copiez de l'iPod, par "
-"exemple '%a/%A/%T - %t' ou '%o'. Vous pouvez séparer les expressions par des "
-"points-virgules -- gtkpod déterminera laquelle utiliser suivant l'extension "
-"du fichier donnée. Artiste: %a, album: %A, compositeur; %c, titre: %t, "
-"genre: %G, numéro de piste: %T, numéro de CD: %C, année: %Y, le nom de "
-"fichier original (nécessite le fichier d'infos étendues): %o, le caractère "
-"'%': %%."
+#~ msgid "Delete"
+#~ msgstr "Morceaux supprimés"
 
-#: gtkpod.glade:8981
 #, fuzzy
-msgid "<b>Examples</b>"
-msgstr "<b>mserv</b>"
+#~ msgid "Name: "
+#~ msgstr "Utilisateur :"
 
-#: gtkpod.glade:9011
-msgid "folder.jpg"
-msgstr ""
-
-#: gtkpod.glade:9035
-msgid "folder"
-msgstr ""
-
-#: gtkpod.glade:9059
-msgid "../%A.jpg"
-msgstr ""
-
-#: gtkpod.glade:9083
-msgid "%A"
-msgstr ""
-
-#: gtkpod.glade:9107
-msgid "Use <i>folder.jpg</i> as cover art."
-msgstr ""
-
-#: gtkpod.glade:9131
-msgid "Use <i>folder.jpg</i>, <i>folder.png</i>..."
-msgstr ""
-
-#: gtkpod.glade:9155
-msgid "Use <i>&lt;Album&gt;.jpg</i> in the parent directory"
-msgstr ""
-
-#: gtkpod.glade:9179
-msgid "Use <i>&lt;Album&gt;.jpg</i>, <i>&lt;Album&gt;.png</i>..."
-msgstr ""
-
-#: gtkpod.glade:9203
-msgid "folder.jpg;%a.jpg"
-msgstr ""
-
-#: gtkpod.glade:9227
-msgid "First try <i>folder.jpg</i>, then <i>&lt;artist&gt;.jpg</i>"
-msgstr ""
-
-#: gtkpod.glade:9311
-msgid "<b>mserv</b>"
-msgstr "<b>mserv</b>"
-
-#: gtkpod.glade:9365 gtkpod.glade:9579
-msgid "Currently only rating is supported."
-msgstr "Actuellement, seule la notation est supportée."
-
-#: gtkpod.glade:9367
-msgid "Use mserv database to fill additional information"
-msgstr "Utiliser la base mserv pour remplir les autres informations"
-
-#: gtkpod.glade:9395
-msgid "Music Root:"
-msgstr "Racine musique :"
-
-#: gtkpod.glade:9419
-msgid "mserv database lookup will be done for music in this directory."
-msgstr "La base mserv utilise ce répertoire pour chercher une musique."
-
-#: gtkpod.glade:9441
-msgid "mserv Root:"
-msgstr "Racine mserv :"
-
-#: gtkpod.glade:9465
-msgid "Root directory of mserv database (trackinfo root)."
-msgstr "Rép. de la base mserv (infos)."
-
-#: gtkpod.glade:9487
-msgid "Username:"
-msgstr "Utilisateur :"
-
-#: gtkpod.glade:9511
-msgid "Username to be used for mserv database lookup."
-msgstr "Utilisateur pour se connecter à la base mserv."
-
-#: gtkpod.glade:9535 gtkpod.glade:9554 gtkpod.glade:12102 gtkpod.glade:12172
-#: gtkpod.glade:12317 gtkpod.glade:12491 gtkpod.glade:12556 gtkpod.glade:12621
-msgid "Browse"
-msgstr "Parcourir"
-
-#: gtkpod.glade:9581
-msgid "Show information about problems when accessing mserv"
-msgstr "Afficher les informations sur les problèmes liés à mserv"
-
-#: gtkpod.glade:9627
 #, fuzzy
-msgid "_Track Info"
-msgstr "Morceau"
+#~ msgid "<b>File options</b>"
+#~ msgstr "<b>Confirmation de suppression</b>"
 
-#: gtkpod.glade:9673
-msgid "<b>Displayed Track Attributes</b>"
-msgstr "<b>Attributs des morceaux affichés</b>"
-
-#: gtkpod.glade:10460
-msgid "<b>Sort Tabs</b>"
-msgstr "<b>Zones de tri</b>"
-
-#: gtkpod.glade:10514
-msgid "Keeps all compilation CDs grouped together in the artists sort tab."
-msgstr ""
-
-#: gtkpod.glade:10516
-msgid "Group artists on compilation CDs"
-msgstr ""
-
-#: gtkpod.glade:10541
-msgid "_Number of sort tabs:"
-msgstr "_Nombre de zones de tri :"
-
-#: gtkpod.glade:10617
-msgid "<b>Automatically select...</b>"
-msgstr "<b>Sélection automatique...</b>"
-
-#: gtkpod.glade:10671
-msgid ""
-"If you don't select the master playlist automatically, the initial database "
-"import is much faster because the display dosn't have to be updated."
-msgstr ""
-"Si vous ne choisissez pas de liste de lecture principale automatiquement, "
-"l'import initial sera beaucoup plus rapide car l'affichage n'aura pas à être "
-"mis à jour à chaque morceau."
-
-#: gtkpod.glade:10673
-msgid "...master playlist"
-msgstr "...liste de lecture principale"
-
-#: gtkpod.glade:10693
-msgid "...entry 'All' in sort tab..."
-msgstr "...onglet «Tous» dans l'onglet de tri..."
-
-#: gtkpod.glade:10774
-msgid "<b>Tooltips</b>"
-msgstr "<b>Infobulles</b>"
-
-#: gtkpod.glade:10829
-msgid "Display tooltips in main window"
-msgstr "Afficher les infobulles dans la fenêtre principale"
-
-#: gtkpod.glade:10849
-msgid "Display tooltips in prefs window"
-msgstr "Afficher les infobulles dans la fenêtre des préférences"
-
-#: gtkpod.glade:10895
-msgid "<b>Toolbar</b>"
-msgstr "<b>Barre d'outils</b>"
-
-#: gtkpod.glade:10950
-msgid "Display toolbar..."
-msgstr "Afficher la barre d'outils..."
-
-#: gtkpod.glade:11003
-msgid "...as icons"
-msgstr "...avec seulement les icônes"
-
-#: gtkpod.glade:11023
-msgid "...as text"
-msgstr "...avec seulement les libellés"
-
-#: gtkpod.glade:11044
-msgid "...both as icons and text"
-msgstr "...avec les icônes et libellés"
-
-#: gtkpod.glade:11105
-msgid "<b>Misc</b>"
-msgstr "<b>Divers</b>"
-
-#: gtkpod.glade:11159
-msgid ""
-"It is much faster to sort the display after all tracks have been added. Some "
-"people might feel irritated by this behaviour and should uncheck this option."
-msgstr ""
-"Il est plus rapide d'effectuer le tri après que tous les fichiers aient été "
-"ajoutés. Certaines personnes peuvent être génées par ce comportement et "
-"peuvent désactiver cette option."
-
-#: gtkpod.glade:11161
-msgid ""
-"Temporarily disable sorting when changing playlist\n"
-"or tab entry (faster!)"
-msgstr ""
-"Bloquer le tri lors du changement de liste\n"
-"ou d'onglet (plus rapide !)"
-
-#: gtkpod.glade:11181
-msgid ""
-"The display can be blocked after changing a selection. The display update is "
-"faster, but you have to wait until it's finished. When using this option, "
-"sorting is also temporarily disabled (see option above)."
-msgstr ""
-"L'application peut se trouver figée lors d'un changement de sélection. "
-"L'affichage est plus rapide, mais vous devez attendre la fin de l'opération."
-"En activant l'option, le tri est sésactivé temporairement (voir ci-dessus)."
-
-#: gtkpod.glade:11183
-msgid ""
-"Block display when changing playlist or tab\n"
-" entry (faster!)"
-msgstr ""
-"Bloquer l'affichage lors du changement de liste de lecture ou d'entrée\n"
-"(plus rapide !)"
-
-#: gtkpod.glade:11203
-msgid "This option will be re-activated when you upgrade gtkpod."
-msgstr "Cette option se réactivera quans vous mettrez à jour gtkpod"
-
-#: gtkpod.glade:11205
-msgid "Display messages and warnings at startup"
-msgstr "Afficher les messages et avertissements au démarrage"
-
-#: gtkpod.glade:11267
-msgid "Advanced Sorting Options"
-msgstr "Options de tri avancées"
-
-#: gtkpod.glade:11362
-msgid "<b>Track Editing</b>"
-msgstr "<b>Édition de morceau</b>"
-
-#: gtkpod.glade:11416
-msgid ""
-"The tags are written to the files on your harddrive and on the ipod (if "
-"available)."
-msgstr ""
-"Les tags ID3 seront écrits dans les fichiers sur votre disque et l'iPod (si "
-"disponible)"
-
-#: gtkpod.glade:11418
-msgid "Write ID3 tags to disk when modified in gtkpod"
-msgstr ""
-"Écrire les attributs ID3 sur le disque lors de leur modification dans gtkpod"
-
-#: gtkpod.glade:11470
-msgid ""
-"Normally the charset specified when first importing the track will be used "
-"to write the tags. If you have chosen a wrong charset when first importing a "
-"track, you should select this option along with the correct charset.  Note: "
-"uses the extended information file to store the charset information (see "
-"'Writing of the iTunesDB' on the 'Input/Output' page) and tracks imported "
-"before V0.51 will have no charset stored -- the charset specified on the "
-"'Input/Output' page will be used."
-msgstr ""
-"Par défaut, le jeu de caractère spécifié lors du premier import d'un morceau "
-"sera celui utilisé pour la mise à jour. Pour corriger un mauvais jeu de car. "
-"sélectionné à l'import initial d'un morceau, cocher cette option pour le "
-"modifier lors de la mise à jour de ce morceau. Note : les infos sur les "
-"caractères sont stockées dans un fichier d'information étendu et les "
-"morceaux importés avant la version 0.51 de gtkpod n'utilisait pas ce "
-"fichier. Ce sera le jeu spécifié ici qui sera utilisé en cas de mise à jour "
-"de ces morceaux."
-
-#: gtkpod.glade:11472
 #, fuzzy
-msgid ""
-"Use selected encoding (on the 'General' page)\n"
-"when writing tags"
-msgstr ""
-"Utiliser le jeu de caractère sélectionné (sur l'onglet 'Général') pour "
-"l'écriture des attributs"
+#~ msgid " days old"
+#~ msgstr "jours"
 
-#: gtkpod.glade:11492
-msgid ""
-"This is the way to go, but maybe not all programs support it yet. ID3v2.4 "
-"uses unicode to store the tags, so you won't have to worry about charsets "
-"any more. gtkpod will use UTF8 encoding as this will not increase the size "
-"of pure ASCII tags. ID3v2.2/4 tags will also be written if they are already "
-"present in the file to write to."
-msgstr ""
-"Les tags ID3v2.4 utilisent l'unicode pour stocker les attributs de façon à "
-"ce que vous n'ayez pas à gérer vous même les jeux de caractères. gtkpod "
-"utilise UTF8 afin de ne pas augmenter la taille des tags en ASCII."
-
-#: gtkpod.glade:11494
-msgid "Always write ID3v2.4 tags (only applies to MP3)"
-msgstr "Toujours écrire les attributs ID3v2.4 (s'applique seulement aux MP3)"
-
-#: gtkpod.glade:11527
-msgid ""
-"If you select several tracks in the track list and edit a tag of the first "
-"track, the tags in the other tracks are updated as well."
-msgstr ""
-"Si vous sélectionnez plusieurs chansons et éditez le tag du premier morceau "
-"les attributs des autres morceaux seront aussi mis à jour."
-
-#: gtkpod.glade:11529
-msgid "Use 'Multi-Edit' for tracks selections"
-msgstr "Utiliser «Édition multiple» pour les morceaux sélectionnés"
-
-#: gtkpod.glade:11575
-msgid ""
-"Usually you don't want to set the title of several tracks to the same text. "
-"This option might avoid unwanted results (especially since there is no "
-"'undo' yet)."
-msgstr ""
-"Généralement, vous ne devriez pas avoir à utiliser cette option, car elle "
-"peut avoir des effets inattendus (pas d'annulation possible)."
-
-#: gtkpod.glade:11577
-msgid "Use 'Multi-Edit' also for title field"
-msgstr "Utiliser «Édition multiple» aussi pour les titres"
-
-#: gtkpod.glade:11630
-msgid "<b>Auto-Generated Playlists</b>"
-msgstr "<b>Listes de lecture générées automatiquement</b>"
-
-#: gtkpod.glade:11690
-msgid "Number of tracks in generated playlists:"
-msgstr "Nombre de morceaux dans les listes de lecture générées :"
-
-#: gtkpod.glade:11711
-msgid ""
-"Number of tracks in the generated playlists 'Most Often Listened', 'Best "
-"Rated' and 'Most Recently Played'. Choose '0' for 'no limit'."
-msgstr ""
-"Nombre de morceaux dans les listes de lecture générées automatiquement."
-"Mettre '0' pour ne pas spécifier de limite."
-
-#: gtkpod.glade:11740
-msgid "Also include tracks never played in \"Best Rated\" playlist"
-msgstr ""
-"Inclure aussi les morceaux qui n'ont jamais été joués dans la liste de \n"
-"lecture des morceaux les mieux notés"
-
-#: gtkpod.glade:11786
-msgid "<b>Delete Confirmation</b>"
-msgstr "<b>Confirmation de suppression</b>"
-
-#: gtkpod.glade:11841
-msgid "Before removing playlists or tracks from a playlist"
-msgstr "Avant de supprimer les listes ou morceaux d'une liste de lecture"
-
-#: gtkpod.glade:11861
-msgid "Before removing tracks from the iPod"
-msgstr "Avant de supprimer complètement les morceaux de l'iPod"
-
-#: gtkpod.glade:11881
-msgid "Before removing tracks from the harddisk"
-msgstr "Avant de supprimer complètement les morceaux du disque dur"
-
-#: gtkpod.glade:11901
-msgid "Before removing tracks from the local database"
-msgstr ""
-"Avant de supprimer complètement les morceaux de la base de données locale"
-
-#: gtkpod.glade:11921
-msgid ""
-"Before removing tracks completely when\n"
-"synchronizing directories"
-msgstr ""
-"Avant de supprimer complètement les morceaux lors\n"
-"des synchronisations des répertoires"
-
-#: gtkpod.glade:12000
-msgid "<b>Play</b>"
-msgstr "<b>Jouer</b>"
-
-#: gtkpod.glade:12060
-msgid "Command for 'Play now':"
-msgstr "Ligne de commande pour «Jouer maintenant» :"
-
-#: gtkpod.glade:12081
 #, fuzzy
-msgid ""
-"For example, 'xmms %s' will clear xmms' current playlist, add the selected "
-"tracks and start playing."
-msgstr ""
-"Par exemple 'xmms %s» videra la liste de lecture actuelle et ajoutera les "
-"morceaux sélectionnés et commencera la lecture."
+#~ msgid "Delete once copied to iPod"
+#~ msgstr "Suppression d'un morceau de l'iPod"
 
-#: gtkpod.glade:12130
-msgid "Command for 'Enqueue':"
-msgstr "Ligne de commande pour «Mettre dans la file d'attente» :"
-
-#: gtkpod.glade:12151
 #, fuzzy
-msgid ""
-"For example, 'xmms -e %s' will append (enqueue) the selected tracks to xmms' "
-"current playlist."
-msgstr ""
-"Par exemple «xmms -e %s» ajoutera à la liste de lecture de xmms les morceaux "
-"sélectionnés."
+#~ msgid "Create podcast logfile at:"
+#~ msgstr "Créer un fichier de liste"
 
-#: gtkpod.glade:12221
-msgid "<b>Volume Normalization</b>"
-msgstr "<b>Normalisation du volume</b>"
-
-#: gtkpod.glade:12275
-msgid "'mp3gain' executable:"
-msgstr "Chemin de l'exécutable «mp3gain» :"
-
-#: gtkpod.glade:12296
-msgid ""
-"You only need to specify this if your 'mp3gain' executable is not in your "
-"default path. Example: '/usr/local/foo/mp3gain'. mp3gain will write the "
-"calculated gain value back to the file -- if you don't want this, set this "
-"entry to /bin/true or similar. mp3gain is only called if appropriate tags "
-"are not already set by your encoder. E.g. lame version 0.95 already writes "
-"the gain values into tags. The exact conversion factor between mp3gain's "
-"gain value and iPod's volume tag is not known yet -- your input is "
-"appreciated."
-msgstr ""
-"Vous devez seulement préciser le chemin de mp3gain si l'exécutable mp3gain "
-"n'est pas défini dans vos chemins prédéfinis. Exemple : '/usr/local/test/"
-"mp3gain'. mp3gain écrira le gain évalué dans le fichier -- si vous ne "
-"souhaitez pas ce comportement, mettez /bin/true ou autre. mp3gain appelé "
-"uniquement si le tag approprié n'a pas été rempli par votre encodeur.Ainsi "
-"Lame 0.95 utilise déjà ce tag. La conversion exact entre la valeur définie "
-"par mp3gain et celle définie par l'iPod n'est pas encore connue."
-
-#: gtkpod.glade:12359
-msgid "<b>Synchronization</b>"
-msgstr "<b>Synchronization</b>"
-
-#: gtkpod.glade:12444
-msgid "Contacts sync command:"
-msgstr "Commande pour la synchronisation des contacts :"
-
-#: gtkpod.glade:12468 gtkpod.glade:12533 gtkpod.glade:12598
-msgid ""
-"Specify exact path including command line options. '%i' will be replaced "
-"with the mount point of the iPod."
-msgstr ""
-"Indiquer le chemin exact ainsi que les paramètres de ligne de commande. '%i' "
-"sera remplacé par le point de montage de l'iPod."
-
-#: gtkpod.glade:12509
-msgid "Calendar sync command:"
-msgstr "Commande pour la synchronisation du calendrier :"
-
-#: gtkpod.glade:12574
-msgid "Notes sync command:"
-msgstr "Commande pour la synchronisation des notes :"
-
-#: gtkpod.glade:12647
-msgid "Call automatically when synchronizing iTunesDB"
-msgstr "Exécuter en même temps que la synchronisation de la base iTunesDB"
-
-#: gtkpod.glade:12725
-msgid "<b>Podcast subscriptions</b>"
-msgstr ""
-
-#: gtkpod.glade:12800
 #, fuzzy
-msgid "Add"
-msgstr "Ajouté"
+#~ msgid "<b>iPod options</b>"
+#~ msgstr "<b>Infobulles</b>"
 
-#: gtkpod.glade:12834
 #, fuzzy
-msgid "Delete"
-msgstr "Morceaux supprimés"
+#~ msgid "Automatically sync to iPod"
+#~ msgstr "Sélection automatique..."
 
-#: gtkpod.glade:12900
 #, fuzzy
-msgid "Name: "
-msgstr "Utilisateur :"
+#~ msgid "Delete from iPod when "
+#~ msgstr "Supprimer de l'iPod"
 
-#: gtkpod.glade:12924
-msgid "URL: "
-msgstr ""
-
-#: gtkpod.glade:13017
 #, fuzzy
-msgid "<b>File options</b>"
-msgstr "<b>Confirmation de suppression</b>"
+#~ msgid "Delete from iPod if podcast has been played"
+#~ msgstr "La dernière fois que le fichier a été joué"
 
-#: gtkpod.glade:13077
-msgid "Save podcasts to: "
-msgstr ""
-
-#: gtkpod.glade:13132
-msgid "Delete from computer when "
-msgstr ""
-
-#: gtkpod.glade:13172 gtkpod.glade:13474
 #, fuzzy
-msgid " days old"
-msgstr "jours"
+#~ msgid "Abort selected"
+#~ msgstr "Aucun morceau sélectionné"
 
-#: gtkpod.glade:13201
-#, fuzzy
-msgid "Delete once copied to iPod"
-msgstr "Suppression d'un morceau de l'iPod"
-
-#: gtkpod.glade:13227
-#, fuzzy
-msgid "Automatically fetch podcasts on startup"
-msgstr "Importer les données de l'iPod au démarrage de gtkpod"
-
-#: gtkpod.glade:13254
-#, fuzzy
-msgid "Create podcast logfile at:"
-msgstr "Créer un fichier de liste"
-
-#: gtkpod.glade:13354
-#, fuzzy
-msgid "<b>iPod options</b>"
-msgstr "<b>Infobulles</b>"
-
-#: gtkpod.glade:13409
-#, fuzzy
-msgid "Automatically sync to iPod"
-msgstr "Sélection automatique..."
-
-#: gtkpod.glade:13435
-#, fuzzy
-msgid "Delete from iPod when "
-msgstr "Supprimer de l'iPod"
-
-#: gtkpod.glade:13503
-#, fuzzy
-msgid "Delete from iPod if podcast has been played"
-msgstr "La dernière fois que le fichier a été joué"
-
-#: gtkpod.glade:13523
-msgid "Include broadcast date in track title"
-msgstr ""
-
-#: gtkpod.glade:13543
-msgid "Set all podcast genres to 'Podcast'"
-msgstr ""
-
-#: gtkpod.glade:13589 gtkpod.glade:15342
-msgid "_Podcasts"
-msgstr ""
-
-#: gtkpod.glade:13754
-msgid ""
-"\n"
-"\n"
-msgstr ""
-
-#: gtkpod.glade:13788
-#, fuzzy
-msgid "Abort selected"
-msgstr "Aucun morceau sélectionné"
-
-#: gtkpod.glade:13804
-msgid "Abort current"
-msgstr ""
-
-#: gtkpod.glade:13820
-msgid "Abort all"
-msgstr ""
-
-#: gtkpod.glade:13844
-msgid "Details"
-msgstr ""
-
-#: gtkpod.glade:13905
-#, fuzzy
-msgid "Cover"
-msgstr "Compositeur"
-
-#: gtkpod.glade:13990
-msgid "Set Cover Art"
-msgstr ""
-
-#: gtkpod.glade:14023
-msgid ""
-"If you check this, information (cover art and meta information) changed for "
-"this track will be copied to all other selected tracks as well. Use with "
-"care."
-msgstr ""
-
-#: gtkpod.glade:14069
-msgid ""
-"Change all tracks\n"
-"simultaneously"
-msgstr ""
-
-#: gtkpod.glade:14157
-msgid "Remove Cover Art"
-msgstr ""
-
-#: gtkpod.glade:16246
-msgid "_Other"
-msgstr ""
-
-#: gtkpod.glade:16536
-msgid "_Undo All"
-msgstr ""
-
-#: gtkpod.glade:16606
-#, fuzzy
-msgid "_Undo Track"
-msgstr "Morceaux non notés"
-
 #~ msgid "Export Tracks"
 #~ msgstr "Exporter les morceaux"
 
@@ -5019,9 +5406,6 @@
 #~ msgid "Auto-Generated Playlists"
 #~ msgstr "Listes de lecture générées automatiquement"
 
-#~ msgid "Before removing tracks completely from the iPod"
-#~ msgstr "Avant de supprimer complètement les morceaux de l'iPod"
-
 #~ msgid ""
 #~ "This option only has a meaning if you activate the 'Delete Tracks that "
 #~ "have been Removed' option in the 'Adding/Updating/Syncing' section in the "

Modified: gtkpod/branches/upstream/current/po/gtkpod.pot
===================================================================
--- gtkpod/branches/upstream/current/po/gtkpod.pot	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/po/gtkpod.pot	2006-09-30 00:00:17 UTC (rev 139)
@@ -8,7 +8,7 @@
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-03-05 23:01+0900\n"
+"POT-Creation-Date: 2006-09-24 23:08+0900\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"
@@ -17,6 +17,1684 @@
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
 
+#: gtkpod.glade:7
+msgid "gtkpod"
+msgstr ""
+
+#: gtkpod.glade:40
+msgid "_File"
+msgstr ""
+
+#: gtkpod.glade:49
+msgid "_Load iPod(s)"
+msgstr ""
+
+#: gtkpod.glade:69
+msgid "_Save Changes"
+msgstr ""
+
+#: gtkpod.glade:90
+msgid "Add _Files"
+msgstr ""
+
+#: gtkpod.glade:111
+msgid "Add _Directory"
+msgstr ""
+
+#: gtkpod.glade:132
+msgid "Add _Playlist"
+msgstr ""
+
+#: gtkpod.glade:159
+msgid "_Update Tracks from File"
+msgstr ""
+
+#: gtkpod.glade:180 gtkpod.glade:232 gtkpod.glade:311 gtkpod.glade:363
+#: gtkpod.glade:1092 gtkpod.glade:1144 gtkpod.glade:1190
+msgid "Selected _Playlist"
+msgstr ""
+
+#: gtkpod.glade:189 gtkpod.glade:241 gtkpod.glade:320 gtkpod.glade:372
+#: gtkpod.glade:1101 gtkpod.glade:1153 gtkpod.glade:1199
+msgid "Selected Tab _Entry"
+msgstr ""
+
+#: gtkpod.glade:198 gtkpod.glade:250 gtkpod.glade:329 gtkpod.glade:381
+#: gtkpod.glade:498 gtkpod.glade:1110 gtkpod.glade:1162 gtkpod.glade:1208
+msgid "Selected _Tracks"
+msgstr ""
+
+#: gtkpod.glade:211
+msgid "Update _mserv Data from File"
+msgstr ""
+
+#: gtkpod.glade:263
+msgid "_Synchronize Playlist"
+msgstr ""
+
+#: gtkpod.glade:290
+msgid "_Export Tracks from Database"
+msgstr ""
+
+#: gtkpod.glade:342
+msgid "Create _Playlist File"
+msgstr ""
+
+#: gtkpod.glade:400
+msgid "_Create iPod's Directories"
+msgstr ""
+
+#: gtkpod.glade:421
+msgid ""
+"Find orphan files (files with no track info in DB) and dangling tracks "
+"(tracks with no corresponding files on iPOD)"
+msgstr ""
+
+#: gtkpod.glade:422
+msgid "_Check iPod's Files"
+msgstr ""
+
+#: gtkpod.glade:450 gtkpod.glade:12687
+msgid "_Edit"
+msgstr ""
+
+#: gtkpod.glade:459 src/context_menus.c:480
+msgid "Edit Track Details"
+msgstr ""
+
+#: gtkpod.glade:480
+msgid "Tracks in Selected _Playlist"
+msgstr ""
+
+#: gtkpod.glade:489
+msgid "Tracks in Selected Tab _Entry"
+msgstr ""
+
+#: gtkpod.glade:511 src/context_menus.c:407
+msgid "Edit Smart Playlist"
+msgstr ""
+
+#: gtkpod.glade:520
+msgid "_Delete"
+msgstr ""
+
+#: gtkpod.glade:541
+msgid "Selected playlist"
+msgstr ""
+
+#: gtkpod.glade:550
+msgid "Selected playlist including tracks from iPod"
+msgstr ""
+
+#: gtkpod.glade:559
+msgid "Selected playlist including tracks from database"
+msgstr ""
+
+#: gtkpod.glade:568
+msgid "Selected playlist including tracks from harddisk"
+msgstr ""
+
+#: gtkpod.glade:583
+msgid "Selected filter tab entry from playlist"
+msgstr ""
+
+#: gtkpod.glade:592
+msgid "Selected filter tab entry from iPod"
+msgstr ""
+
+#: gtkpod.glade:601
+msgid "Selected filter tab entry from database"
+msgstr ""
+
+#: gtkpod.glade:610
+msgid "Selected filter tab entry from harddisk"
+msgstr ""
+
+#: gtkpod.glade:625
+msgid "Selected tracks from playlist"
+msgstr ""
+
+#: gtkpod.glade:634
+msgid "Selected tracks from iPod"
+msgstr ""
+
+#: gtkpod.glade:643
+msgid "Selected tracks from database"
+msgstr ""
+
+#: gtkpod.glade:652
+msgid "Selected tracks from harddisk"
+msgstr ""
+
+#: gtkpod.glade:671
+msgid "_Create Playlists"
+msgstr ""
+
+#: gtkpod.glade:692
+msgid "Empty Playlist"
+msgstr ""
+
+#: gtkpod.glade:701 gtkpod.glade:7379 src/misc_playlist.c:97
+#: src/repository.c:1359
+msgid "Smart Playlist"
+msgstr ""
+
+#: gtkpod.glade:716
+msgid "Random Playlist from Displayed Tracks"
+msgstr ""
+
+#: gtkpod.glade:725
+msgid "Containing Displayed Tracks"
+msgstr ""
+
+#: gtkpod.glade:734
+msgid "Containing Selected Tracks"
+msgstr ""
+
+#: gtkpod.glade:743
+msgid "One for each Artist"
+msgstr ""
+
+#: gtkpod.glade:752
+msgid "One for each Album"
+msgstr ""
+
+#: gtkpod.glade:761
+msgid "One for each Genre"
+msgstr ""
+
+#: gtkpod.glade:770
+msgid "One for each Composer"
+msgstr ""
+
+#: gtkpod.glade:779
+msgid "One for each Year"
+msgstr ""
+
+#: gtkpod.glade:788
+msgid "One for each Rating"
+msgstr ""
+
+#: gtkpod.glade:797
+msgid "Best Rated Tracks"
+msgstr ""
+
+#: gtkpod.glade:806
+msgid "Tracks Most Often Listened To"
+msgstr ""
+
+#: gtkpod.glade:815
+msgid "Most Recently Played Tracks"
+msgstr ""
+
+#: gtkpod.glade:824
+msgid "All Tracks Played Since Last Time"
+msgstr ""
+
+#: gtkpod.glade:833
+msgid "All Tracks Never Listened To"
+msgstr ""
+
+#: gtkpod.glade:842
+msgid "All Tracks not Listed in any Playlist"
+msgstr ""
+
+#: gtkpod.glade:861
+msgid "_Sorting"
+msgstr ""
+
+#: gtkpod.glade:883
+msgid "Randomize Current Playlist"
+msgstr ""
+
+#: gtkpod.glade:892
+msgid "_Save Displayed Track Order"
+msgstr ""
+
+#: gtkpod.glade:920
+msgid "Edit Repository/iPod Options"
+msgstr ""
+
+#: gtkpod.glade:941
+msgid "Edit _Preferences"
+msgstr ""
+
+#: gtkpod.glade:967
+msgid "_View"
+msgstr ""
+
+#: gtkpod.glade:976
+msgid "_Toolbar"
+msgstr ""
+
+#: gtkpod.glade:986
+msgid "_Tooltips"
+msgstr ""
+
+#: gtkpod.glade:996
+msgid "_Info Window"
+msgstr ""
+
+#: gtkpod.glade:1007
+msgid "_More Sort Tabs"
+msgstr ""
+
+#: gtkpod.glade:1028
+msgid "_Less Sort Tabs"
+msgstr ""
+
+#: gtkpod.glade:1049
+msgid "_Arrange Sort Tabs"
+msgstr ""
+
+#: gtkpod.glade:1062 gtkpod.glade:13297
+msgid "_Tools"
+msgstr ""
+
+#: gtkpod.glade:1071
+msgid "_Play Now"
+msgstr ""
+
+#: gtkpod.glade:1123
+msgid "_Enqueue"
+msgstr ""
+
+#: gtkpod.glade:1181
+msgid "_Normalize Volume"
+msgstr ""
+
+#: gtkpod.glade:1217
+msgid "_Displayed Tracks"
+msgstr ""
+
+#: gtkpod.glade:1226
+msgid "_All Tracks"
+msgstr ""
+
+#: gtkpod.glade:1235
+msgid "_Newly Added Tracks"
+msgstr ""
+
+#: gtkpod.glade:1254
+msgid "Synchronise Contacts, Calendar and Notes"
+msgstr ""
+
+#: gtkpod.glade:1255
+msgid "Synchronize All"
+msgstr ""
+
+#: gtkpod.glade:1264
+msgid "Synchronize Contacts"
+msgstr ""
+
+#: gtkpod.glade:1273
+msgid "Synchronize Calendar"
+msgstr ""
+
+#: gtkpod.glade:1282
+msgid "Synchronize Notes"
+msgstr ""
+
+#: gtkpod.glade:1295
+msgid "_Help"
+msgstr ""
+
+#: gtkpod.glade:1304
+msgid "_About"
+msgstr ""
+
+#: gtkpod.glade:1344
+msgid ""
+"Try to load contents of all connected iPods. For each iPod a separate "
+"repository must be set up."
+msgstr ""
+
+#: gtkpod.glade:1345
+msgid "Load iPod(s)"
+msgstr ""
+
+#: gtkpod.glade:1362
+msgid "Write all changes made to the disk and the iPod(s)."
+msgstr ""
+
+#: gtkpod.glade:1363 src/context_menus.c:507
+msgid "Save Changes"
+msgstr ""
+
+#: gtkpod.glade:1380
+msgid "Add Files or Directories"
+msgstr ""
+
+#: gtkpod.glade:1381
+msgid "Files"
+msgstr ""
+
+#: gtkpod.glade:1398
+msgid "Add Directories Recursively"
+msgstr ""
+
+#: gtkpod.glade:1399
+msgid "Dirs"
+msgstr ""
+
+#: gtkpod.glade:1416
+msgid "Add playlist from file"
+msgstr ""
+
+#: gtkpod.glade:1417 src/display_spl.c:105
+msgid "Playlist"
+msgstr ""
+
+#: gtkpod.glade:1434
+msgid "Create New Playlist"
+msgstr ""
+
+#: gtkpod.glade:1435
+msgid "New PL"
+msgstr ""
+
+#: gtkpod.glade:1451
+msgid "Stop Display Update"
+msgstr ""
+
+#: gtkpod.glade:1452
+msgid "Stop"
+msgstr ""
+
+#: gtkpod.glade:1625
+msgid "About gtkpod"
+msgstr ""
+
+#: gtkpod.glade:1752
+msgid "Credits"
+msgstr ""
+
+#: gtkpod.glade:1810
+msgid "Translators"
+msgstr ""
+
+#: gtkpod.glade:1868
+msgid "special_sorttab -- Don't translate!"
+msgstr ""
+
+#: gtkpod.glade:1903
+msgid " Logic: "
+msgstr ""
+
+#: gtkpod.glade:1929
+msgid "Any (OR)"
+msgstr ""
+
+#: gtkpod.glade:1948
+msgid "All (AND)"
+msgstr ""
+
+#: gtkpod.glade:2001
+msgid "0"
+msgstr ""
+
+#: gtkpod.glade:2020
+msgid "1"
+msgstr ""
+
+#: gtkpod.glade:2039
+msgid "2"
+msgstr ""
+
+#: gtkpod.glade:2058
+msgid "3"
+msgstr ""
+
+#: gtkpod.glade:2077
+msgid "4"
+msgstr ""
+
+#: gtkpod.glade:2096
+msgid "5"
+msgstr ""
+
+#: gtkpod.glade:2135
+msgid "Select '0' for no lower limit."
+msgstr ""
+
+#: gtkpod.glade:2156
+msgid " <= cts <= "
+msgstr ""
+
+#: gtkpod.glade:2181
+msgid "Select '-1' for no upper limit."
+msgstr ""
+
+#: gtkpod.glade:2224 gtkpod.glade:2301 gtkpod.glade:2471
+msgid ""
+"'DD/MM/YYYY HH:MM < d < DD/MM/YYYY HH:MM' or similar. Press 'enter' when "
+"finished."
+msgstr ""
+
+#: gtkpod.glade:2270 gtkpod.glade:2347 gtkpod.glade:2517 gtkpod.glade:2696
+msgid "Calendar"
+msgstr ""
+
+#: gtkpod.glade:2372
+msgid "Specify interval"
+msgstr ""
+
+#: gtkpod.glade:2374 src/display_spl.c:98 src/misc_conversion.c:78
+msgid "Playcount"
+msgstr ""
+
+#: gtkpod.glade:2397 src/display_spl.c:101 src/misc_conversion.c:79
+msgid "Rating"
+msgstr ""
+
+#: gtkpod.glade:2420 src/display_songs.c:1951
+msgid "Played"
+msgstr ""
+
+#: gtkpod.glade:2443 src/display_songs.c:1954
+msgid "Modified"
+msgstr ""
+
+#: gtkpod.glade:2542 src/display_songs.c:1957 src/display_sorttabs.c:3218
+msgid "Added"
+msgstr ""
+
+#: gtkpod.glade:2587
+msgid "Display tracks that match the criteria entered above."
+msgstr ""
+
+#: gtkpod.glade:2630 gtkpod.glade:12009
+msgid "_Display"
+msgstr ""
+
+#: gtkpod.glade:2666
+msgid ""
+"Automatically start displaying tracks that match the criteria entered above. "
+"If not selected, you must press 'Display' to start displaying."
+msgstr ""
+
+#: gtkpod.glade:2668
+msgid "Start display automatically"
+msgstr ""
+
+#: gtkpod.glade:2743
+msgid "Sorttab: "
+msgstr ""
+
+#: gtkpod.glade:2787
+msgid "     "
+msgstr ""
+
+#: gtkpod.glade:2813
+msgid "Category: "
+msgstr ""
+
+#: gtkpod.glade:2894
+msgid "Please specify a time interval"
+msgstr ""
+
+#: gtkpod.glade:2943
+msgid "Lower Margin"
+msgstr ""
+
+#: gtkpod.glade:2994 gtkpod.glade:3208
+msgid "Time:"
+msgstr ""
+
+#: gtkpod.glade:3037 gtkpod.glade:3251
+msgid ":"
+msgstr ""
+
+#: gtkpod.glade:3114
+msgid "No lower margin"
+msgstr ""
+
+#: gtkpod.glade:3157
+msgid "Upper margin"
+msgstr ""
+
+#: gtkpod.glade:3328
+msgid "No upper margin"
+msgstr ""
+
+#: gtkpod.glade:3426
+msgid "Sorting Options"
+msgstr ""
+
+#: gtkpod.glade:3458
+msgid "<b>Sort Order</b>"
+msgstr ""
+
+#: gtkpod.glade:3489 gtkpod.glade:4762 gtkpod.glade:11638 gtkpod.glade:12134
+#: gtkpod.glade:12249
+msgid "    "
+msgstr ""
+
+#: gtkpod.glade:3521
+msgid ""
+"In order to save the displayed track order to the iPod choose 'Save "
+"Displayed Track Order' from the 'Edit' menu or select 'Auto Store' below."
+msgstr ""
+
+#: gtkpod.glade:3905
+msgid "Ascending"
+msgstr ""
+
+#: gtkpod.glade:3953
+msgid "Descending"
+msgstr ""
+
+#: gtkpod.glade:4001
+msgid "None"
+msgstr ""
+
+#: gtkpod.glade:4048 src/display_playlists.c:2106
+msgid "Playlists"
+msgstr ""
+
+#: gtkpod.glade:4097
+msgid "Sorttabs"
+msgstr ""
+
+#: gtkpod.glade:4146
+msgid "Tracks"
+msgstr ""
+
+#: gtkpod.glade:4306
+msgid "Auto Store"
+msgstr ""
+
+#: gtkpod.glade:4349
+msgid "Please refer to the notice below."
+msgstr ""
+
+#: gtkpod.glade:4383 gtkpod.glade:4564 src/details.c:1118
+msgid "n/a"
+msgstr ""
+
+#: gtkpod.glade:4613
+msgid "Sort tracks according to: "
+msgstr ""
+
+#: gtkpod.glade:4647
+msgid ""
+"You can also use the table headers, but this allows you to sort according to "
+"a column that is not displayed."
+msgstr ""
+
+#: gtkpod.glade:4683
+msgid ""
+"If checked, sorting will be case sensitive. Please note that case sensitive "
+"sorting will not work well with most charsets."
+msgstr ""
+
+#: gtkpod.glade:4685
+msgid "Sorting case sensitive"
+msgstr ""
+
+#: gtkpod.glade:4731
+msgid "<b>Ignore Frequent Words</b>"
+msgstr ""
+
+#: gtkpod.glade:4831
+msgid "Ignore these words when at the beginning of the following fields:"
+msgstr ""
+
+#: gtkpod.glade:5106
+msgid "gtkpod Info"
+msgstr ""
+
+#: gtkpod.glade:5427 gtkpod.glade:5514 gtkpod.glade:5543 gtkpod.glade:6261
+#: gtkpod.glade:6406
+msgid "      "
+msgstr ""
+
+#: gtkpod.glade:5832
+msgid "Number of tracks"
+msgstr ""
+
+#: gtkpod.glade:5862
+msgid "Play time"
+msgstr ""
+
+#: gtkpod.glade:5893
+msgid "File size"
+msgstr ""
+
+#: gtkpod.glade:5923
+msgid "Number of playlists"
+msgstr ""
+
+#: gtkpod.glade:5953
+msgid "Deleted tracks"
+msgstr ""
+
+#: gtkpod.glade:5983
+msgid "File size (deleted)"
+msgstr ""
+
+#: gtkpod.glade:6013
+msgid "Non-transferred tracks"
+msgstr ""
+
+#: gtkpod.glade:6043
+msgid "File size (non-transferred)"
+msgstr ""
+
+#: gtkpod.glade:6073
+msgid "Effective free space"
+msgstr ""
+
+#: gtkpod.glade:6103
+msgid ""
+"Total\n"
+"(iPod)"
+msgstr ""
+
+#: gtkpod.glade:6135
+msgid ""
+"Selected\n"
+"Playlist"
+msgstr ""
+
+#: gtkpod.glade:6167
+msgid ""
+"Displayed\n"
+"Tracks"
+msgstr ""
+
+#: gtkpod.glade:6199
+msgid ""
+"Selected\n"
+"Tracks"
+msgstr ""
+
+#: gtkpod.glade:6231
+msgid ""
+"Total\n"
+"(local)"
+msgstr ""
+
+#: gtkpod.glade:6651
+msgid "label21"
+msgstr ""
+
+#: gtkpod.glade:6746
+msgid "Never show this dialogue again"
+msgstr ""
+
+#: gtkpod.glade:6791 gtkpod.glade:7135
+msgid "window1"
+msgstr ""
+
+#: gtkpod.glade:6850
+msgid "_M3U"
+msgstr ""
+
+#: gtkpod.glade:6869
+msgid "_PLS"
+msgstr ""
+
+#: gtkpod.glade:6907
+msgid ""
+"If available, the local copy of the track is referenced in the playlist. "
+"Otherwise the file on the iPod is used."
+msgstr ""
+
+#: gtkpod.glade:6909
+msgid "_Prefer Local"
+msgstr ""
+
+#: gtkpod.glade:6927
+msgid ""
+"The local copy of the track is referenced in the playlist. If the track is "
+"not available locally, an error message is displayed."
+msgstr ""
+
+#: gtkpod.glade:6929
+msgid "_Local"
+msgstr ""
+
+#: gtkpod.glade:6948
+msgid "The track on the iPod is referenced in the playlist file."
+msgstr ""
+
+#: gtkpod.glade:6950
+msgid "_iPod"
+msgstr ""
+
+#: gtkpod.glade:6983
+msgid "Playlist type:"
+msgstr ""
+
+#: gtkpod.glade:7012
+msgid "Source:"
+msgstr ""
+
+#: gtkpod.glade:7055
+msgid "Template for info field: "
+msgstr ""
+
+#: gtkpod.glade:7080
+msgid ""
+"Determines how the string for the info field should be constructed, e.g '%a/%"
+"A/%T - %t.mp3' or '%o'.  You can separate several templates by semicolons -- "
+"gtkpod will determine which one to use by the filename extension given. "
+"Artist: %a, album: %A, composer: %c, title: %t, genre: %G, track nr: %T, CD "
+"nr: %C, year: %Y, original filename (requires extended information file): %"
+"o, the character '%': %%."
+msgstr ""
+
+#: gtkpod.glade:7111 gtkpod.glade:7355
+msgid "gtkpod options"
+msgstr ""
+
+#: gtkpod.glade:7173
+msgid "Filename Format: "
+msgstr ""
+
+#: gtkpod.glade:7198
+msgid ""
+"Determines the filename of tracks you copy from the iPod, e.g '%a/%A/%T - %t."
+"mp3' or '%o'.  You can separate several patterns by semicolons -- gtkpod "
+"will determine which one to use by the filename extension given. Artist: %a, "
+"album: %A, composer: %c, title: %t, genre: %G, track nr: %T, CD nr: %C, "
+"year: %Y, original filename (requires extended information file): %o, "
+"current playlist: %p, the character '%': %%."
+msgstr ""
+
+#: gtkpod.glade:7203
+msgid " "
+msgstr ""
+
+#: gtkpod.glade:7225
+msgid ""
+"Normally the charset specified when first importing the track will be used "
+"for the filename. If you set this option you can set a different charset "
+"with the charset selector (Preferences/'Adding/Updating/Syncing'). Note: the "
+"charset info is stored in the extended information file (see "
+"Preferences/'Writing of the iTunesDB'). Tracks imported before V0.51 will "
+"have no charset stored. Instead the charset specified will be used."
+msgstr ""
+
+#: gtkpod.glade:7227
+msgid ""
+"Use selected charset (Preferences/'Adding/Updating/ Syncing')\n"
+"for this filename."
+msgstr ""
+
+#: gtkpod.glade:7246
+msgid ""
+"When copying from iPod no check is performed on whether the destination file "
+"exists. Enabling this option will make gtkpod check whether the length of "
+"the destination file is the same as the file in the iPod. If so the file is "
+"skipped, allowing a quick sync of the iPod's contents."
+msgstr ""
+
+#: gtkpod.glade:7248
+msgid "Check for existing files when copying from iPod."
+msgstr ""
+
+#: gtkpod.glade:7423
+msgid "Playlist name:"
+msgstr ""
+
+#: gtkpod.glade:7492
+msgid "Match al_l of the following"
+msgstr ""
+
+#: gtkpod.glade:7511
+msgid "Match an_y of the following"
+msgstr ""
+
+#: gtkpod.glade:7531
+msgid "_Ignore rules"
+msgstr ""
+
+#: gtkpod.glade:7601
+msgid "Rules"
+msgstr ""
+
+#: gtkpod.glade:7638
+msgid "_Limit to"
+msgstr ""
+
+#: gtkpod.glade:7689
+msgid "   Sort by:"
+msgstr ""
+
+#: gtkpod.glade:7741
+msgid "Match only _checked tracks"
+msgstr ""
+
+#: gtkpod.glade:7773
+msgid "Live _updating"
+msgstr ""
+
+#: gtkpod.glade:7864
+msgid "Preferences"
+msgstr ""
+
+#: gtkpod.glade:7927
+msgid "<b>Mountpoint and individual repository/playlist options</b>"
+msgstr ""
+
+#: gtkpod.glade:7990
+msgid "Set mountpoint or edit repository options"
+msgstr ""
+
+#: gtkpod.glade:8037
+msgid "<b>Import</b>"
+msgstr ""
+
+#: gtkpod.glade:8108
+msgid "Automatically import iTunesDBs on startup"
+msgstr ""
+
+#: gtkpod.glade:8154
+msgid "<b>Adding/Updating/Syncing</b>"
+msgstr ""
+
+#: gtkpod.glade:8226
+msgid "Exclude file mask(s)"
+msgstr ""
+
+#: gtkpod.glade:8251
+msgid "Semicolon seperated list of file exclusion masks, e.g. '*.mp3'"
+msgstr ""
+
+#: gtkpod.glade:8285
+msgid "_Encoding (ID3, files):"
+msgstr ""
+
+#: gtkpod.glade:8320
+msgid ""
+"gtkpod expects the ID3 tags and the filenames to be in the encoding "
+"specified here. You can change it for consecutive 'Add Files' and 'Add Dirs' "
+"operation. 'System Charset' is the charset used by your current locale."
+msgstr ""
+
+#: gtkpod.glade:8357
+msgid ""
+"Normally the charset specified when first importing the track will be used "
+"to update the track information. If you have chosen a wrong charset when "
+"first importing a track and want to correct it using the 'Update Track' "
+"function, you must check this option. Note: the charset info is stored in "
+"the extended information file (see 'Writing of iTunesDB' below) and tracks "
+"imported before V0.51 will have no charset stored. Instead the charset "
+"specified above will be used then."
+msgstr ""
+
+#: gtkpod.glade:8359
+msgid ""
+"Use selected encoding also when updating \n"
+"or syncing tracks"
+msgstr ""
+
+#: gtkpod.glade:8379
+msgid "If you check this, gtkpod will descend into subdirectories recursively."
+msgstr ""
+
+#: gtkpod.glade:8381
+msgid "Add directories recursively"
+msgstr ""
+
+#: gtkpod.glade:8400
+msgid "Duplicate Recognition is based on a (modified) md5 hash over the file."
+msgstr ""
+
+#: gtkpod.glade:8402
+msgid "Don't allow file duplication"
+msgstr ""
+
+#: gtkpod.glade:8452
+msgid ""
+"Display the list of duplicates that have been detected after adding files."
+msgstr ""
+
+#: gtkpod.glade:8454
+msgid "Display info about detected duplicates"
+msgstr ""
+
+#: gtkpod.glade:8480
+msgid ""
+"If the filename (full path) of an existing track matches that of a track to "
+"be added, this option allows you to update the information about the "
+"existing track rather than just skipping the track altogether. No update "
+"will take place if the file hasn't changed and you have selected the 'Don't "
+"allow file duplication' option above."
+msgstr ""
+
+#: gtkpod.glade:8482
+msgid ""
+"When adding dirs/files, update information of\n"
+"existing tracks with identical filenames"
+msgstr ""
+
+#: gtkpod.glade:8533
+msgid "Display a list of tracks that could actually be updated."
+msgstr ""
+
+#: gtkpod.glade:8535
+msgid "Display info about updated tracks"
+msgstr ""
+
+#: gtkpod.glade:8592
+msgid "Display a list of tracks that could not be updated."
+msgstr ""
+
+#: gtkpod.glade:8594
+msgid "Display info about non-updated tracks"
+msgstr ""
+
+#: gtkpod.glade:8620
+msgid "When syncing playlists"
+msgstr ""
+
+#: gtkpod.glade:8694
+msgid "Confirm lists of directories"
+msgstr ""
+
+#: gtkpod.glade:8712 gtkpod.glade:17758
+msgid ""
+"Normally, if a track is no longer present in the sync directory, it will be "
+"removed from the playlist, but not from the iPod or local repository.\n"
+"If this option is checked, tracks will be completely removed from the iPod "
+"or local repository, unless the track is a member of other playlists as "
+"well.\n"
+"NOTE: if you sync with the master playlist, you must check this option if "
+"you want tracks to be removed, because removing from the master playlist "
+"means removing from the iPod."
+msgstr ""
+
+#: gtkpod.glade:8716 gtkpod.glade:17762
+msgid ""
+"Delete tracks that are no longer present from the\n"
+"ipod or repository"
+msgstr ""
+
+#: gtkpod.glade:8735
+msgid "This is the same option as in 'Edit/Delete Confirmation'"
+msgstr ""
+
+#: gtkpod.glade:8737 gtkpod.glade:17782
+msgid "Confirm before removing tracks from the iPod or repository"
+msgstr ""
+
+#: gtkpod.glade:8756 gtkpod.glade:17800
+msgid ""
+"Will show a list of tracks removed and a list of tracks newly added or "
+"updated."
+msgstr ""
+
+#: gtkpod.glade:8758 gtkpod.glade:17802
+msgid "Show summary of sync result"
+msgstr ""
+
+#: gtkpod.glade:8819
+msgid "<b>Sync</b>"
+msgstr ""
+
+#: gtkpod.glade:8875
+msgid ""
+"Highly recommended for faster import when taking advantage of the "
+"duplication recognition. Also, having the PC filenames allows writing "
+"changed ID3 tags to disk, and even to reconstruct your ipod's contents in "
+"case of file system corruption (change the \"transferred=\" entries in your "
+"backuped database)."
+msgstr ""
+
+#: gtkpod.glade:8877
+msgid ""
+"Write extended information (PC filenames,\n"
+" MD5 hashes, encoding). Recommended."
+msgstr ""
+
+#: gtkpod.glade:8921 gtkpod.glade:14688
+msgid "_General"
+msgstr ""
+
+#: gtkpod.glade:8957
+msgid "<b>Tag Reading</b>"
+msgstr ""
+
+#: gtkpod.glade:9020
+msgid "Read tags from file contents (e.g. ID3 tags in MP3 files)"
+msgstr ""
+
+#: gtkpod.glade:9039 gtkpod.glade:9413
+msgid ""
+"artist: %a, album: %A, composer: %c, title: %t, genre: %G, track nr: %T, CD "
+"nr: %C, year: %Y, skip data: %*, the character '%': %%. You can separate "
+"several templates by a ';'. The first one matching the filename will be "
+"used. Example: '%a - %A/%T %t.mp3;%t.wav'."
+msgstr ""
+
+#: gtkpod.glade:9041
+msgid "Use this template to parse filename for tag information:"
+msgstr ""
+
+#: gtkpod.glade:9118
+msgid "Overwrite tags that are already set"
+msgstr ""
+
+#: gtkpod.glade:9151
+msgid ""
+"As a last resort set the following tags to the\n"
+"filename if they are (still) empty:"
+msgstr ""
+
+#: gtkpod.glade:9187 src/display_sorttabs.c:2942 src/display_spl.c:85
+#: src/misc_conversion.c:62
+msgid "Artist"
+msgstr ""
+
+#: gtkpod.glade:9209 src/display_sorttabs.c:2948 src/display_spl.c:89
+#: src/misc_conversion.c:64
+msgid "Genre"
+msgstr ""
+
+#. 0
+#: gtkpod.glade:9231 src/display_sorttabs.c:2945 src/display_spl.c:84
+#: src/misc_conversion.c:61
+msgid "Album"
+msgstr ""
+
+#. 5
+#: gtkpod.glade:9253 src/display_spl.c:97 src/misc_conversion.c:66
+msgid "Composer"
+msgstr ""
+
+#: gtkpod.glade:9275 src/display_sorttabs.c:2954 src/display_spl.c:83
+#: src/misc_conversion.c:63
+msgid "Title"
+msgstr ""
+
+#: gtkpod.glade:9330
+msgid "<b>Coverart</b>"
+msgstr ""
+
+#: gtkpod.glade:9392
+msgid ""
+"Music files can have images embedded in the APIC tag. Currently this is only "
+"supported for MP3 files."
+msgstr ""
+
+#: gtkpod.glade:9394
+msgid "Read coverart from embedded APIC data"
+msgstr ""
+
+#: gtkpod.glade:9415
+msgid "Add coverart from file using the following template"
+msgstr ""
+
+#: gtkpod.glade:9471
+msgid ""
+"Determines the name of the file with the cover art. You can separate several "
+"patterns by semicolons which will be tried in order. Artist: %a, album: %A, "
+"composer: %c, title: %t, genre: %G, track nr: %T, CD nr: %C, year: %Y, "
+"original filename (requires extended information file): %o, original "
+"filename without file extension: %O, current playlist: %p, the character "
+"'%': %%."
+msgstr ""
+
+#: gtkpod.glade:9492
+msgid "<b>Examples</b>"
+msgstr ""
+
+#: gtkpod.glade:9526
+msgid "folder.jpg"
+msgstr ""
+
+#: gtkpod.glade:9554
+msgid "folder"
+msgstr ""
+
+#: gtkpod.glade:9582
+msgid "../%A.jpg"
+msgstr ""
+
+#: gtkpod.glade:9610
+msgid "%A"
+msgstr ""
+
+#: gtkpod.glade:9638
+msgid "Use <i>folder.jpg</i> as cover art."
+msgstr ""
+
+#: gtkpod.glade:9666
+msgid "Use <i>folder.jpg</i>, <i>folder.png</i>..."
+msgstr ""
+
+#: gtkpod.glade:9694
+msgid "Use <i>&lt;Album&gt;.jpg</i> in the parent directory"
+msgstr ""
+
+#: gtkpod.glade:9722
+msgid "Use <i>&lt;Album&gt;.jpg</i>, <i>&lt;Album&gt;.png</i>..."
+msgstr ""
+
+#: gtkpod.glade:9750
+msgid "folder.jpg;%a.jpg"
+msgstr ""
+
+#: gtkpod.glade:9778
+msgid "First try <i>folder.jpg</i>, then <i>&lt;artist&gt;.jpg</i>"
+msgstr ""
+
+#: gtkpod.glade:9835
+msgid "If both options are selected, embedded APIC data takes precedence."
+msgstr ""
+
+#: gtkpod.glade:9887
+msgid "<b>mserv</b>"
+msgstr ""
+
+#: gtkpod.glade:9949 gtkpod.glade:10175
+msgid "Currently only rating is supported."
+msgstr ""
+
+#: gtkpod.glade:9951
+msgid "Use mserv database to fill additional information"
+msgstr ""
+
+#: gtkpod.glade:9979
+msgid "Music Root:"
+msgstr ""
+
+#: gtkpod.glade:10007
+msgid "mserv database lookup will be done for music in this directory."
+msgstr ""
+
+#: gtkpod.glade:10029
+msgid "mserv Root:"
+msgstr ""
+
+#: gtkpod.glade:10057
+msgid "Root directory of mserv database (trackinfo root)."
+msgstr ""
+
+#: gtkpod.glade:10079
+msgid "Username:"
+msgstr ""
+
+#: gtkpod.glade:10107
+msgid "Username to be used for mserv database lookup."
+msgstr ""
+
+#: gtkpod.glade:10131 gtkpod.glade:10150 gtkpod.glade:12889 gtkpod.glade:12908
+#: gtkpod.glade:13069 gtkpod.glade:13138 gtkpod.glade:17159 gtkpod.glade:17179
+#: gtkpod.glade:17199 gtkpod.glade:17219 gtkpod.glade:17239 gtkpod.glade:17679
+#: gtkpod.glade:18238 gtkpod.glade:18281 gtkpod.glade:18301 gtkpod.glade:18711
+msgid "Browse"
+msgstr ""
+
+#: gtkpod.glade:10177
+msgid "Show information about problems when accessing mserv"
+msgstr ""
+
+#: gtkpod.glade:10223
+msgid "_Track Info"
+msgstr ""
+
+#: gtkpod.glade:10273
+msgid "<b>Displayed Track Attributes</b>"
+msgstr ""
+
+#: gtkpod.glade:11083
+msgid "<b>Sort Tabs</b>"
+msgstr ""
+
+#: gtkpod.glade:11145
+msgid "Keeps all compilation CDs grouped together in the artists sort tab."
+msgstr ""
+
+#: gtkpod.glade:11147
+msgid "Group artists on compilation CDs"
+msgstr ""
+
+#: gtkpod.glade:11172
+msgid "_Number of sort tabs:"
+msgstr ""
+
+#: gtkpod.glade:11252
+msgid "<b>Automatically select...</b>"
+msgstr ""
+
+#: gtkpod.glade:11314
+msgid ""
+"If you don't select the master playlist automatically, the initial database "
+"import is much faster because the display dosn't have to be updated."
+msgstr ""
+
+#: gtkpod.glade:11316
+msgid "...master playlist"
+msgstr ""
+
+#: gtkpod.glade:11336
+msgid "...entry 'All' in sort tab..."
+msgstr ""
+
+#: gtkpod.glade:11421
+msgid "<b>Tooltips</b>"
+msgstr ""
+
+#: gtkpod.glade:11484
+msgid "Display tooltips in main window"
+msgstr ""
+
+#: gtkpod.glade:11504
+msgid "Display tooltips in prefs window"
+msgstr ""
+
+#: gtkpod.glade:11550
+msgid "<b>Toolbar</b>"
+msgstr ""
+
+#: gtkpod.glade:11613
+msgid "Display toolbar..."
+msgstr ""
+
+#: gtkpod.glade:11670
+msgid "...as icons"
+msgstr ""
+
+#: gtkpod.glade:11690
+msgid "...as text"
+msgstr ""
+
+#: gtkpod.glade:11711
+msgid "...both as icons and text"
+msgstr ""
+
+#: gtkpod.glade:11772
+msgid "<b>Misc</b>"
+msgstr ""
+
+#: gtkpod.glade:11834
+msgid ""
+"It is much faster to sort the display after all tracks have been added. Some "
+"people might feel irritated by this behaviour and should uncheck this option."
+msgstr ""
+
+#: gtkpod.glade:11836
+msgid ""
+"Temporarily disable sorting when changing playlist\n"
+"or tab entry (faster!)"
+msgstr ""
+
+#: gtkpod.glade:11856
+msgid ""
+"The display can be blocked after changing a selection. The display update is "
+"faster, but you have to wait until it's finished. When using this option, "
+"sorting is also temporarily disabled (see option above)."
+msgstr ""
+
+#: gtkpod.glade:11858
+msgid ""
+"Block display when changing playlist or tab\n"
+" entry (faster!)"
+msgstr ""
+
+#: gtkpod.glade:11878
+msgid "This option will be re-activated when you upgrade gtkpod."
+msgstr ""
+
+#: gtkpod.glade:11880
+msgid "Display messages and warnings at startup"
+msgstr ""
+
+#: gtkpod.glade:11942
+msgid "Advanced Sorting Options"
+msgstr ""
+
+#: gtkpod.glade:12045
+msgid "<b>Track Editing</b>"
+msgstr ""
+
+#: gtkpod.glade:12107
+msgid ""
+"The tags are written to the files on your harddrive and on the ipod (if "
+"available)."
+msgstr ""
+
+#: gtkpod.glade:12109
+msgid "Write ID3 tags to disk when modified in gtkpod"
+msgstr ""
+
+#: gtkpod.glade:12165
+msgid ""
+"Normally the charset specified when first importing the track will be used "
+"to write the tags. If you have chosen a wrong charset when first importing a "
+"track, you should select this option along with the correct charset.  Note: "
+"uses the extended information file to store the charset information (see "
+"'Writing of the iTunesDB' on the 'Input/Output' page) and tracks imported "
+"before V0.51 will have no charset stored -- the charset specified on the "
+"'Input/Output' page will be used."
+msgstr ""
+
+#: gtkpod.glade:12167
+msgid ""
+"Use selected encoding (on the 'General' page)\n"
+"when writing tags"
+msgstr ""
+
+#: gtkpod.glade:12187
+msgid ""
+"This is the way to go, but maybe not all programs support it yet. ID3v2.4 "
+"uses unicode to store the tags, so you won't have to worry about charsets "
+"any more. gtkpod will use UTF8 encoding as this will not increase the size "
+"of pure ASCII tags. ID3v2.2/4 tags will also be written if they are already "
+"present in the file to write to."
+msgstr ""
+
+#: gtkpod.glade:12189
+msgid "Always write ID3v2.4 tags (only applies to MP3)"
+msgstr ""
+
+#: gtkpod.glade:12222
+msgid ""
+"If you select several tracks in the track list and edit a tag of the first "
+"track, the tags in the other tracks are updated as well."
+msgstr ""
+
+#: gtkpod.glade:12224
+msgid "Use 'Multi-Edit' for tracks selections"
+msgstr ""
+
+#: gtkpod.glade:12274
+msgid ""
+"Usually you don't want to set the title of several tracks to the same text. "
+"This option might avoid unwanted results (especially since there is no "
+"'undo' yet)."
+msgstr ""
+
+#: gtkpod.glade:12276
+msgid "Use 'Multi-Edit' also for title field"
+msgstr ""
+
+#: gtkpod.glade:12329
+msgid "<b>Auto-Generated Playlists</b>"
+msgstr ""
+
+#: gtkpod.glade:12397
+msgid "Number of tracks in generated playlists:"
+msgstr ""
+
+#: gtkpod.glade:12422
+msgid ""
+"Number of tracks in the generated playlists 'Most Often Listened', 'Best "
+"Rated' and 'Most Recently Played'. Choose '0' for 'no limit'."
+msgstr ""
+
+#: gtkpod.glade:12451
+msgid "Also include tracks never played in \"Best Rated\" playlist"
+msgstr ""
+
+#: gtkpod.glade:12497
+msgid "<b>Delete Confirmation</b>"
+msgstr ""
+
+#: gtkpod.glade:12560
+msgid "Before removing playlists or tracks from a playlist"
+msgstr ""
+
+#: gtkpod.glade:12580
+msgid "Before removing tracks from the iPod"
+msgstr ""
+
+#: gtkpod.glade:12600
+msgid "Before removing tracks from the harddisk"
+msgstr ""
+
+#: gtkpod.glade:12620
+msgid "Before removing tracks from the local database"
+msgstr ""
+
+#: gtkpod.glade:12640
+msgid ""
+"Confirm before removing tracks from the iPod or repository\n"
+"when syncing playlists"
+msgstr ""
+
+#: gtkpod.glade:12723
+msgid "<b>Play</b>"
+msgstr ""
+
+#: gtkpod.glade:12788
+msgid "Command for 'Play now':"
+msgstr ""
+
+#: gtkpod.glade:12816
+msgid "Command for 'Enqueue':"
+msgstr ""
+
+#: gtkpod.glade:12844
+msgid ""
+"For example, 'xmms %s' will clear xmms' current playlist, add the selected "
+"tracks and start playing."
+msgstr ""
+
+#: gtkpod.glade:12866
+msgid ""
+"For example, 'xmms -e %s' will append (enqueue) the selected tracks to xmms' "
+"current playlist."
+msgstr ""
+
+#: gtkpod.glade:12953
+msgid "<b>Volume Normalization</b>"
+msgstr ""
+
+#: gtkpod.glade:13018
+msgid "'mp3gain' executable:"
+msgstr ""
+
+#: gtkpod.glade:13046
+msgid ""
+"Set this to 'mp3gain -q -k' to use the 'Normalize volume' functionality in "
+"the Tools Menu. If this is set, missing normalization data for mp3 files "
+"will be calculated and written to your mp3 file using this command."
+msgstr ""
+
+#: gtkpod.glade:13087
+msgid "'aacgain' executable:"
+msgstr ""
+
+#: gtkpod.glade:13115
+msgid ""
+"Set this to 'aacgain -q -k' to use the 'Normalize volume' functionality in "
+"the Tools Menu. If this is set, missing normalization data for .m4a and .m4b "
+"files will be calculated and written to your music file using this command."
+msgstr ""
+
+#: gtkpod.glade:13183
+msgid "<b>Calendar/Contacts/Notes</b>"
+msgstr ""
+
+#: gtkpod.glade:13246
+msgid "Set options for Calendar/Contacts/Notes"
+msgstr ""
+
+#: gtkpod.glade:13381
+msgid "Details"
+msgstr ""
+
+#: gtkpod.glade:13449
+msgid "Cover"
+msgstr ""
+
+#: gtkpod.glade:13538
+msgid "Set Cover Art"
+msgstr ""
+
+#: gtkpod.glade:13575
+msgid ""
+"If you check this, information (cover art and meta information) changed for "
+"this track will be copied to all other selected tracks as well. Use with "
+"care."
+msgstr ""
+
+#: gtkpod.glade:13621
+msgid ""
+"Change all tracks\n"
+"simultaneously"
+msgstr ""
+
+#: gtkpod.glade:13713
+msgid "Remove Cover Art"
+msgstr ""
+
+#: gtkpod.glade:14646
+msgid "(Checked)"
+msgstr ""
+
+#: gtkpod.glade:15088
+msgid "_Podcasts"
+msgstr ""
+
+#: gtkpod.glade:16127
+msgid "_Other"
+msgstr ""
+
+#: gtkpod.glade:16425
+msgid "_Undo All"
+msgstr ""
+
+#: gtkpod.glade:16499
+msgid "_Undo Track"
+msgstr ""
+
+#: gtkpod.glade:16546
+msgid "Repository Options"
+msgstr ""
+
+#: gtkpod.glade:16667
+msgid "Add new repository/iPod"
+msgstr ""
+
+#: gtkpod.glade:16736 gtkpod.glade:18163 gtkpod.glade:18659
+msgid "iPod mountpoint:"
+msgstr ""
+
+#: gtkpod.glade:16764 gtkpod.glade:18135
+msgid "iTunesDB backup:"
+msgstr ""
+
+#: gtkpod.glade:16792 gtkpod.glade:18107 gtkpod.glade:18730 gtkpod.glade:18922
+msgid "Model:"
+msgstr ""
+
+#: gtkpod.glade:16820 gtkpod.glade:18079
+msgid "Path:"
+msgstr ""
+
+#: gtkpod.glade:16848
+msgid "<b>Synchronization</b>"
+msgstr ""
+
+#: gtkpod.glade:16906
+msgid "Contacts sync command:"
+msgstr ""
+
+#: gtkpod.glade:16934
+msgid "Calendar sync command:"
+msgstr ""
+
+#: gtkpod.glade:16962
+msgid "Notes sync command:"
+msgstr ""
+
+#: gtkpod.glade:16991
+msgid "Call automatically when synchronizing iTunesDB"
+msgstr ""
+
+#: gtkpod.glade:17014 gtkpod.glade:17038 gtkpod.glade:17062 gtkpod.glade:17086
+#: gtkpod.glade:17110 gtkpod.glade:17134 gtkpod.glade:17658 gtkpod.glade:18435
+msgid ""
+"Specify exact path including command line options. '%i' will be replaced "
+"with the mount point of the iPod."
+msgstr ""
+
+#: gtkpod.glade:17294
+msgid "Update/Sync all playlists now"
+msgstr ""
+
+#: gtkpod.glade:17314
+msgid "Delete repository"
+msgstr ""
+
+#: gtkpod.glade:17334 src/context_menus.c:430 src/context_menus.c:448
+#: src/context_menus.c:523
+msgid "I'm sure"
+msgstr ""
+
+#: gtkpod.glade:17390
+msgid "<b>Repositories</b>"
+msgstr ""
+
+#: gtkpod.glade:17587
+msgid ""
+"Directories to sync with are determined from the filenames of the tracks in "
+"the playlist."
+msgstr ""
+
+#: gtkpod.glade:17589
+msgid "On startup automatically sync with playlist directories"
+msgstr ""
+
+#: gtkpod.glade:17608
+msgid "On startup automatically sync with the following directory"
+msgstr ""
+
+#: gtkpod.glade:17702
+msgid "Don't automatically sync on startup"
+msgstr ""
+
+#: gtkpod.glade:17848
+msgid "On startup automatically update (Live Playlist)"
+msgstr ""
+
+#: gtkpod.glade:17878
+msgid "Update/Sync playlist now"
+msgstr ""
+
+#: gtkpod.glade:17925
+msgid "<b>Playlists</b>"
+msgstr ""
+
+#: gtkpod.glade:18042
+msgid "Create Repository"
+msgstr ""
+
+#: gtkpod.glade:18320
+msgid ""
+"Insert before\n"
+"Insert after"
+msgstr ""
+
+#: gtkpod.glade:18358
+msgid "Repository type:"
+msgstr ""
+
+#: gtkpod.glade:18386
+msgid ""
+"iPod\n"
+"Local Repository (Standard)\n"
+"Local Repository (Podcasts)\n"
+msgstr ""
+
+#: gtkpod.glade:18407
+msgid "Repository name:"
+msgstr ""
+
+#: gtkpod.glade:18543 gtkpod.glade:18806
+msgid "Initialize iPod"
+msgstr ""
+
+#: gtkpod.glade:18613
+msgid "<b>Please select mountpoint and your iPod model</b>"
+msgstr ""
+
 #: src/charset.c:53
 msgid "Arabic (IBM-864)"
 msgstr ""
@@ -219,7 +1897,7 @@
 
 #. sanity!
 #. check for "System Charset" and return NULL
-#: src/charset.c:160 src/charset.c:170 src/charset.c:222
+#: src/charset.c:160 src/charset.c:170 src/charset.c:223
 msgid "System Charset"
 msgstr ""
 
@@ -230,104 +1908,100 @@
 "Another instance of gtkpod was detected. Playcount server not started.\n"
 msgstr ""
 
-#: src/confirmation.c:361
+#: src/confirmation.c:376
 msgid "Confirmation Dialogue"
 msgstr ""
 
-#: src/context_menus.c:352 src/tools.c:634
+#: src/context_menus.c:367 src/tools.c:852
 msgid "Play Now"
 msgstr ""
 
-#: src/context_menus.c:354 src/tools.c:645
+#: src/context_menus.c:373 src/tools.c:865
 msgid "Enqueue"
 msgstr ""
 
-#: src/context_menus.c:357
+#: src/context_menus.c:379
 msgid "Copy Tracks to Filesystem"
 msgstr ""
 
-#: src/context_menus.c:359 src/file_export.c:1069
+#: src/context_menus.c:386 src/file_export.c:1081
 msgid "Create Playlist File"
 msgstr ""
 
-#: src/context_menus.c:361
-msgid "Edit Details"
+#: src/context_menus.c:393
+msgid "Create new Playlist"
 msgstr ""
 
-#: src/context_menus.c:363 gtkpod.glade:12817
-msgid "Update"
+#: src/context_menus.c:400
+msgid "Update Tracks from File"
 msgstr ""
 
-#: src/context_menus.c:365
-msgid "Sync Dirs"
+#: src/context_menus.c:414
+msgid "Sync Playlist with Dir(s)"
 msgstr ""
 
-#: src/context_menus.c:367
-msgid "Normalize"
+#: src/context_menus.c:424
+msgid "Remove All Tracks from iPod"
 msgstr ""
 
-#: src/context_menus.c:369
-msgid "Create new Playlist"
+#: src/context_menus.c:442
+msgid "Remove All Podcasts from iPod"
 msgstr ""
 
-#: src/context_menus.c:372
-msgid "Edit Smart Playlist"
+#: src/context_menus.c:457
+msgid "Delete Including Tracks"
 msgstr ""
 
-#: src/context_menus.c:378
-msgid "Alphabetize"
+#: src/context_menus.c:465
+msgid "Delete But Keep Tracks"
 msgstr ""
 
-#: src/context_menus.c:402
-msgid "Delete From iPod"
+#: src/context_menus.c:473
+msgid "Edit iPod Properties"
 msgstr ""
 
-#: src/context_menus.c:408
-msgid "Delete From Harddisk"
+#: src/context_menus.c:493
+msgid "Load iPod"
 msgstr ""
 
-#: src/context_menus.c:414
-msgid "Delete From Database"
+#: src/context_menus.c:500
+msgid "Eject iPod"
 msgstr ""
 
-#: src/context_menus.c:420
-msgid "Delete From Playlist"
+#: src/context_menus.c:517
+msgid "Remove All Tracks from Database"
 msgstr ""
 
-#: src/context_menus.c:439
-msgid "Delete Including Tracks"
-msgstr ""
-
-#: src/context_menus.c:445
+#: src/context_menus.c:532
 msgid "Delete Including Tracks (Harddisk)"
 msgstr ""
 
-#: src/context_menus.c:451
+#: src/context_menus.c:540
 msgid "Delete Including Tracks (Database)"
 msgstr ""
 
-#: src/context_menus.c:457
-msgid "Delete But Keep Tracks"
+#: src/context_menus.c:548
+msgid "Delete From iPod"
 msgstr ""
 
-#: src/context_menus.c:463
-msgid "Remove All Tracks from iPod"
+#: src/context_menus.c:556
+msgid "Delete From Playlist"
 msgstr ""
 
-#: src/context_menus.c:469
-msgid "Remove All Tracks from Database"
+#: src/context_menus.c:564
+msgid "Delete From Harddisk"
 msgstr ""
 
-#: src/context_menus.c:476
-msgid "Remove All Podcasts from iPod"
+#: src/context_menus.c:572
+msgid "Delete From Database"
 msgstr ""
 
-#: src/context_menus.c:487 gtkpod.glade:156
-msgid "Update Podcasts"
+#: src/context_menus.c:580
+msgid "Alphabetize"
 msgstr ""
 
-#: src/context_menus.c:494
-msgid "Podcasts Preferences"
+#: src/context_menus.c:596
+msgid "Edit Playlist Properties"
 msgstr ""
 
 #: src/date_parser.l:269
@@ -335,126 +2009,113 @@
 msgid "Date format error: unrecognized character: '%s'\n"
 msgstr ""
 
-#: src/details.c:1035 gtkpod.glade:4365
-msgid "n/a"
-msgstr ""
-
-#: src/details.c:1099
+#: src/details.c:1182
 msgid "<b>n/a</b>"
 msgstr ""
 
-#: src/display.c:924 src/display.c:1022 src/display.c:1071 src/display.c:1302
-#: src/display.c:1358 src/display.c:1413 src/display.c:1464 src/display.c:1628
-#: src/misc_playlist.c:274
-msgid "No playlist selected"
-msgstr ""
-
-#: src/display.c:934
+#: src/display.c:891
 msgid "Edit selected entry of which sort tab?"
 msgstr ""
 
 #. no entry selected
-#: src/display.c:941 src/misc_confirm.c:441 src/misc_track.c:1482
+#: src/display.c:898 src/misc_confirm.c:431 src/misc_track.c:1613
 msgid "No entry selected."
 msgstr ""
 
-#: src/display.c:960 src/display.c:1040 src/display.c:1345 src/display.c:1401
-#: src/display.c:1452 src/display.c:1503
-msgid "No tracks selected"
-msgstr ""
-
-#: src/display.c:1056 src/display.c:1322 src/display.c:1378 src/display.c:1430
-#: src/display.c:1481 src/display.c:1650
+#: src/display.c:1057 src/display.c:1384 src/display.c:1440 src/display.c:1494
+#: src/display.c:1549 src/display.c:1810
 #, c-format
 msgid "No entry selected in Sort Tab %d"
 msgstr ""
 
-#: src/display.c:1095
+#: src/display.c:1096
 msgid "Remove entry of which sort tab from database?"
 msgstr ""
 
-#: src/display.c:1103
+#: src/display.c:1104
 msgid "Remove tracks in selected entry of which filter tab from the iPod?"
 msgstr ""
 
-#: src/display.c:1125
+#: src/display.c:1126
 msgid "Remove tracks in selected entry of which filter tab from the harddisk?"
 msgstr ""
 
-#: src/display.c:1155
+#: src/display.c:1156
 msgid "Remove tracks in selected entry of which filter tab from playlist?"
 msgstr ""
 
-#: src/display.c:1174
-msgid "Currently no iPod database selected"
+#: src/display.c:1183 src/display.c:1221
+#, c-format
+msgid ""
+"iPod at '%s' is not loaded.\n"
+"Please load it first."
 msgstr ""
 
-#: src/display.c:1202 src/display.c:1229
+#: src/display.c:1265 src/display.c:1292
 msgid "Update selected entry of which sort tab?"
 msgstr ""
 
-#: src/display.c:1248
-msgid "Sync dirs of selected entry in which sort tab?"
-msgstr ""
-
-#: src/display.c:1316
+#: src/display.c:1378
 msgid "Export selected entry of which sort tab?"
 msgstr ""
 
-#: src/display.c:1372
+#: src/display.c:1434
 msgid "Create playlist file from selected entry of which sort tab?"
 msgstr ""
 
-#: src/display.c:1424
+#: src/display.c:1488
 msgid "Play tracks in selected entry of which sort tab?"
 msgstr ""
 
-#: src/display.c:1475
+#: src/display.c:1543
 msgid "Enqueue tracks in selected entry of which sort tab?"
 msgstr ""
 
-#: src/display.c:1640
+#: src/display.c:1800
 msgid "Normalize tracks in selected entry of which sort tab?"
 msgstr ""
 
-#: src/display_itdb.c:319
+#: src/display_itdb.c:355
 #, c-format
-msgid "Failed to set cover art: '%s'"
+msgid "Failed to set cover art: '%s'\n"
 msgstr ""
 
-#. add podcast playlist
-#: src/display_itdb.c:843 src/display_itdb.c:871 src/display_itdb.c:975
-#: gtkpod.glade:13669
-msgid "Podcasts"
+#: src/display_itdb.c:835 src/display_itdb.c:967 src/repository.c:1189
+msgid "iPod"
 msgstr ""
 
-#: src/display_itdb.c:845 src/display_itdb.c:941
+#: src/display_itdb.c:844 src/display_itdb.c:965
 msgid "Local"
 msgstr ""
 
-#: src/display_itdb.c:1081
+#. add podcast playlist
+#: src/display_itdb.c:852 src/display_itdb.c:963 src/display_itdb.c:991
+msgid "Podcasts"
+msgstr ""
+
+#: src/display_itdb.c:1050
 #, c-format
 msgid "Increased playcount for '%s'"
 msgstr ""
 
 #. give a notice on the statusbar -- otherwise the user
 #. * will never know why the drag is not possible
-#: src/display_playlists.c:498 src/display_playlists.c:540
+#: src/display_playlists.c:496 src/display_playlists.c:538
 msgid "Error: drag from iPod not possible in offline mode."
 msgstr ""
 
-#: src/display_playlists.c:567 src/display_songs.c:285
+#: src/display_playlists.c:565 src/display_songs.c:287
 #, c-format
 msgid "Copied one track"
 msgid_plural "Copied %d tracks"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/display_playlists.c:856
+#: src/display_playlists.c:851
 msgid "Can't reorder sorted treeview."
 msgstr ""
 
-#: src/display_playlists.c:947
+#: src/display_playlists.c:944
 #, c-format
 msgid ""
 "This DND type (%d) is not (yet) supported. If you feel implementing this "
@@ -462,18 +2123,14 @@
 "\n"
 msgstr ""
 
-#: src/display_playlists.c:1830 gtkpod.glade:3997
-msgid "Playlists"
-msgstr ""
-
-#: src/display_songs.c:280
+#: src/display_songs.c:282
 #, c-format
 msgid "Moved one track"
 msgid_plural "Moved %d tracks"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/display_songs.c:1669
+#: src/display_songs.c:1690
 #, c-format
 msgid ""
 "Cannot unsort track view because of a bug in the GTK lib you are using (%d.%"
@@ -482,121 +2139,88 @@
 "\n"
 msgstr ""
 
-#: src/display_songs.c:1922
+#: src/display_songs.c:1923
 msgid "Rtng"
 msgstr ""
 
-#: src/display_songs.c:1925
+#: src/display_songs.c:1926
 msgid "#"
 msgstr ""
 
-#: src/display_songs.c:1928
+#: src/display_songs.c:1929
 msgid "CD"
 msgstr ""
 
-#: src/display_songs.c:1931
+#: src/display_songs.c:1932
 msgid "ID"
 msgstr ""
 
-#: src/display_songs.c:1934
+#: src/display_songs.c:1935
 msgid "Trnsfrd"
 msgstr ""
 
-#: src/display_songs.c:1938
+#: src/display_songs.c:1939
 msgid "Cmpl"
 msgstr ""
 
-#: src/display_songs.c:1942 src/display_spl.c:94
+#: src/display_songs.c:1945 src/display_spl.c:94
 msgid "Time"
 msgstr ""
 
-#: src/display_songs.c:1945
+#: src/display_songs.c:1948
 msgid "Plycnt"
 msgstr ""
 
-#: src/display_songs.c:1948 gtkpod.glade:2433
-msgid "Played"
-msgstr ""
-
-#: src/display_songs.c:1951 gtkpod.glade:2456
-msgid "Modified"
-msgstr ""
-
-#: src/display_songs.c:1954 src/display_sorttabs.c:3117 gtkpod.glade:2551
-msgid "Added"
-msgstr ""
-
-#: src/display_songs.c:1957
+#: src/display_songs.c:1960
 msgid "Released"
 msgstr ""
 
-#: src/display_songs.c:1960 src/display_sorttabs.c:2856 src/display_spl.c:88
+#: src/display_songs.c:1963 src/display_sorttabs.c:2957 src/display_spl.c:88
 #: src/misc_conversion.c:85
 msgid "Year"
 msgstr ""
 
-#: src/display_songs.c:1963
+#: src/display_songs.c:1966
 msgid "Vol."
 msgstr ""
 
-#: src/display_songs.c:1966
+#: src/display_songs.c:1969
 msgid "Sndchk."
 msgstr ""
 
-#: src/display_sorttabs.c:400
+#: src/display_sorttabs.c:456
 msgid "'Played' condition ignored because of error."
 msgstr ""
 
-#: src/display_sorttabs.c:403
+#: src/display_sorttabs.c:459
 msgid "'Modified' condition ignored because of error."
 msgstr ""
 
-#: src/display_sorttabs.c:406
+#: src/display_sorttabs.c:462
 msgid "'Added' condition ignored because of error."
 msgstr ""
 
-#: src/display_sorttabs.c:1492 src/misc_conversion.c:60
+#: src/display_sorttabs.c:1582 src/misc_conversion.c:60
 msgid "All"
 msgstr ""
 
-#: src/display_sorttabs.c:1518
+#: src/display_sorttabs.c:1608
 msgid "Compilations"
 msgstr ""
 
-#: src/display_sorttabs.c:2841 src/display_spl.c:85 src/misc_conversion.c:62
-#: gtkpod.glade:8709
-msgid "Artist"
-msgstr ""
-
-#. 0
-#: src/display_sorttabs.c:2844 src/display_spl.c:84 src/misc_conversion.c:61
-#: gtkpod.glade:8753
-msgid "Album"
-msgstr ""
-
-#: src/display_sorttabs.c:2847 src/display_spl.c:89 src/misc_conversion.c:64
-#: gtkpod.glade:8731
-msgid "Genre"
-msgstr ""
-
-#: src/display_sorttabs.c:2850
+#: src/display_sorttabs.c:2951
 msgid "Comp."
 msgstr ""
 
-#: src/display_sorttabs.c:2853 src/display_spl.c:83 src/misc_conversion.c:63
-#: gtkpod.glade:8797
-msgid "Title"
-msgstr ""
-
-#: src/display_sorttabs.c:2859
+#: src/display_sorttabs.c:2960
 msgid "Special"
 msgstr ""
 
-#: src/display_sorttabs.c:3115
+#: src/display_sorttabs.c:3216
 msgid "Last Played"
 msgstr ""
 
-#: src/display_sorttabs.c:3116
+#: src/display_sorttabs.c:3217
 msgid "Last Modified"
 msgstr ""
 
@@ -620,7 +2244,7 @@
 msgid "Hz"
 msgstr ""
 
-#: src/display_spl.c:75 src/display_spl.c:160 src/info.c:732
+#: src/display_spl.c:75 src/display_spl.c:160 src/info.c:777
 msgid "MB"
 msgstr ""
 
@@ -661,15 +2285,6 @@
 msgid "Date added"
 msgstr ""
 
-#. 5
-#: src/display_spl.c:97 src/misc_conversion.c:66 gtkpod.glade:8775
-msgid "Composer"
-msgstr ""
-
-#: src/display_spl.c:98 src/misc_conversion.c:78 gtkpod.glade:2387
-msgid "Playcount"
-msgstr ""
-
 #: src/display_spl.c:99
 msgid "Last played"
 msgstr ""
@@ -678,10 +2293,6 @@
 msgid "Disc number"
 msgstr ""
 
-#: src/display_spl.c:101 src/misc_conversion.c:79 gtkpod.glade:2410
-msgid "Rating"
-msgstr ""
-
 #: src/display_spl.c:102 src/misc_conversion.c:88
 msgid "Compilation"
 msgstr ""
@@ -694,10 +2305,6 @@
 msgid "Grouping"
 msgstr ""
 
-#: src/display_spl.c:105 gtkpod.glade:1443
-msgid "Playlist"
-msgstr ""
-
 #: src/display_spl.c:111
 msgid "contains"
 msgstr ""
@@ -772,7 +2379,7 @@
 msgid "hours"
 msgstr ""
 
-#: src/display_spl.c:163 src/info.c:732
+#: src/display_spl.c:163 src/info.c:777
 msgid "GB"
 msgstr ""
 
@@ -828,202 +2435,126 @@
 msgid "lowest rating"
 msgstr ""
 
-#: src/display_spl.c:1049 src/display_spl.c:1064
+#: src/display_spl.c:1047 src/display_spl.c:1062
 msgid "to"
 msgstr ""
 
-#: src/display_spl.c:1276
+#: src/display_spl.c:1279
 msgid "-"
 msgstr ""
 
-#: src/display_spl.c:1286
+#: src/display_spl.c:1294
 msgid "+"
 msgstr ""
 
-#: src/display_spl.c:1503 src/misc_playlist.c:67 src/misc_playlist.c:69
-#: src/misc_playlist.c:94 src/misc_playlist.c:96 src/misc_playlist.c:415
-#: src/misc_playlist.c:417
+#: src/display_spl.c:1513 src/misc_playlist.c:67 src/misc_playlist.c:69
+#: src/misc_playlist.c:94 src/misc_playlist.c:96 src/misc_playlist.c:429
+#: src/misc_playlist.c:431
 msgid "New Playlist"
 msgstr ""
 
-#: src/file.c:195
+#: src/file.c:230
 #, c-format
 msgid ""
 "'%s' is a directory, not a playlist file.\n"
 "\n"
 msgstr ""
 
-#: src/file.c:222
+#: src/file.c:258
 #, c-format
 msgid ""
 "'%s' is a not a known playlist file.\n"
 "\n"
 msgstr ""
 
-#: src/file.c:239
+#: src/file.c:275
 #, c-format
 msgid ""
 "Cannot open '%s' for reading.\n"
 "\n"
 msgstr ""
 
-#: src/file.c:322
+#: src/file.c:359
 #, c-format
 msgid "Skipping '%s' because it is a directory.\n"
 msgstr ""
 
-#: src/file.c:327
+#: src/file.c:364
 #, c-format
 msgid "Skipping '%s' to avoid adding playlist file recursively\n"
 msgstr ""
 
-#: src/file.c:582
+#: src/file.c:619
 #, c-format
 msgid "Unknown token '%s' in template '%s'\n"
 msgstr ""
 
-#: src/file.c:817
+#: src/file.c:871
 #, c-format
 msgid "Local filename not valid (%s)"
 msgstr ""
 
-#: src/file.c:870
+#: src/file.c:930
 #, c-format
 msgid "No information found for user '%s' in '%s'"
 msgstr ""
 
-#: src/file.c:877
+#: src/file.c:939
 #, c-format
 msgid "mserv data file (%s) not available for track (%s)"
 msgstr ""
 
-#: src/file.c:885
+#: src/file.c:947
 #, c-format
 msgid "Track (%s) not in mserv music root directory (%s)"
 msgstr ""
 
-#: src/file.c:990
+#: src/file.c:1055
 #, c-format
 msgid ""
 "The following track could not be processed (file does not exist): '%s'\n"
 msgstr ""
 
-#: src/file.c:1039
+#: src/file.c:1118
 #, c-format
 msgid "The following track could not be processed (filetype unknown): '%s'\n"
 msgstr ""
 
-#: src/file.c:1121
+#: src/file.c:1211
 #, c-format
 msgid ""
 "The following track could not be processed (filetype is known but analysis "
 "failed): '%s'\n"
 msgstr ""
 
-#: src/file.c:1150 src/file.c:1205
+#: src/file.c:1241 src/file.c:1295
 msgid "Nothing to update"
 msgstr ""
 
-#: src/file.c:1170
+#: src/file.c:1262
 #, c-format
 msgid "Updating %s"
 msgstr ""
 
-#: src/file.c:1186
+#: src/file.c:1276
 msgid "Updated selected tracks with info from file."
 msgstr ""
 
-#: src/file.c:1218
+#: src/file.c:1310
 #, c-format
 msgid "Retrieving mserv data %s"
 msgstr ""
 
-#. no path available
-#: src/file.c:1224 src/file.c:1902
+#: src/file.c:1315
 msgid "no filename available"
 msgstr ""
 
-#: src/file.c:1229
+#: src/file.c:1320
 msgid "Updated selected tracks with data from mserv."
 msgstr ""
 
-#: src/file.c:1296
+#: src/file.c:1341
 #, c-format
-msgid "Syncing directory '%s'"
-msgstr ""
-
-#: src/file.c:1321
-msgid "Syncing completed. No files deleted."
-msgstr ""
-
-#. gint id,
-#. gboolean modal,
-#. title
-#. label
-#. scrolled text
-#: src/file.c:1434
-msgid "Never delete any files when syncing"
-msgstr ""
-
-#: src/file.c:1463
-msgid "Syncing completed."
-msgstr ""
-
-#: src/file.c:1483
-msgid "Syncing aborted"
-msgstr ""
-
-#: src/file.c:1521
-msgid "No tracks in selection"
-msgstr ""
-
-#: src/file.c:1571
-#, c-format
-msgid "'%s' is not a directory. Ignored.\n"
-msgstr ""
-
-#. no directory names available
-#: src/file.c:1601
-msgid ""
-"No directory names were stored. Make sure that you enable 'Write extended "
-"information' in the Export section of the preferences at the time of "
-"importing files.\n"
-"\n"
-"To synchronize directories now, activate the duplicate detection ('Don't "
-"allow file duplication') in the Import section and add the directories you "
-"want to sync again.\n"
-msgstr ""
-
-#: src/file.c:1605
-msgid "No valid directories have been found. Sync aborted.\n"
-msgstr ""
-
-#: src/file.c:1614
-msgid ""
-"The (former) contents of the following directories will be removed from the "
-"database:\n"
-"\n"
-msgstr ""
-
-#: src/file.c:1622
-msgid ""
-"The following directories will be synchronized:\n"
-"\n"
-msgstr ""
-
-#. gint id,
-#. gboolean modal,
-#: src/file.c:1633
-msgid "Synchronize directories"
-msgstr ""
-
-#. title
-#: src/file.c:1634
-msgid "OK to synchronize the following directories?"
-msgstr ""
-
-#: src/file.c:1672
-#, c-format
 msgid "The following track could not be updated"
 msgid_plural "The following %d tracks could not be updated"
 msgstr[0] ""
@@ -1031,11 +2562,11 @@
 
 #. gint id,
 #. gboolean modal,
-#: src/file.c:1678
+#: src/file.c:1347
 msgid "Failed Track Update"
 msgstr ""
 
-#: src/file.c:1736
+#: src/file.c:1405
 #, c-format
 msgid "The following track has been updated"
 msgid_plural "The following %d tracks have been updated"
@@ -1044,11 +2575,11 @@
 
 #. gint id,
 #. gboolean modal,
-#: src/file.c:1742
+#: src/file.c:1411
 msgid "Successful Track Update"
 msgstr ""
 
-#: src/file.c:1801
+#: src/file.c:1470
 #, c-format
 msgid "No mserv information could be retrieved for the following track"
 msgid_plural ""
@@ -1058,217 +2589,239 @@
 
 #. gint id,
 #. gboolean modal,
-#: src/file.c:1807
+#: src/file.c:1476
 msgid "mserv data retrieval problem"
 msgstr ""
 
-#: src/file.c:1948
-msgid "file not found"
+#: src/file.c:1565
+msgid "no local filename available, file on the iPod will be used instead"
 msgstr ""
 
-#: src/file.c:1952
-msgid "format not supported"
+#: src/file.c:1571
+msgid "no local filename available and copy on iPod cannot be found"
 msgstr ""
 
-#: src/file.c:2033
+#: src/file.c:1575 src/file.c:1593
+msgid "no local filename available"
+msgstr ""
+
+#: src/file.c:1583
+msgid "local file could not be found, file on the iPod will be used instead"
+msgstr ""
+
+#: src/file.c:1589
+msgid "local file as well as copy on the iPod cannot be found"
+msgstr ""
+
+#. update not successful -- log this track for later display
+#: src/file.c:1651
+msgid "update failed (format no supported?)"
+msgstr ""
+
+#: src/file.c:1734
 #, c-format
 msgid "Processing '%s'..."
 msgstr ""
 
-#: src/file.c:2137 src/misc_track.c:1169 src/misc_track.c:1225
+#: src/file.c:1740
 #, c-format
+msgid "File skipped. match exclude masks: '%s'\n"
+msgstr ""
+
+#: src/file.c:1852 src/misc_track.c:1299 src/misc_track.c:1355
+#, c-format
 msgid ""
 "Podcast already present: '%s'\n"
 "\n"
 msgstr ""
 
-#: src/file.c:2198
+#: src/file.c:1913
 #, c-format
 msgid ""
 "Writing to video files not yet supported (%s).\n"
 "\n"
 msgstr ""
 
-#: src/file.c:2252 src/file.c:2266
+#: src/file.c:1965 src/file.c:1979
 #, c-format
 msgid "Couldn't change tags of file: %s\n"
 msgstr ""
 
-#: src/file.c:2550
+#: src/file.c:2076
 #, c-format
 msgid "Could not open '%s' for reading and writing.\n"
 msgstr ""
 
-#: src/file.c:2557
+#: src/file.c:2083
 #, c-format
 msgid "Could not obtain lock on '%s'.\n"
 msgstr ""
 
 #. error!
-#: src/file.c:2574 src/file.c:2583 src/file.c:2594 src/file.c:2604
+#: src/file.c:2100 src/file.c:2109 src/file.c:2120 src/file.c:2130
 #, c-format
 msgid "Malformed line in '%s': %s\n"
 msgstr ""
 
 #. gint id,
 #. gboolean modal,
-#: src/file.c:2633
+#: src/file.c:2159
 msgid "Remove offline playcounts?"
 msgstr ""
 
 #. title
-#: src/file.c:2634
+#: src/file.c:2160
 msgid ""
 "Some tracks played offline could not be found in the iTunesDB. Press 'OK' to "
 "remove them from the offline playcount file, 'Cancel' to keep them."
 msgstr ""
 
-#: src/file.c:2651
+#: src/file.c:2177
 #, c-format
 msgid "Error writing to '%s'.\n"
 msgstr ""
 
-#: src/file.c:2700
+#: src/file.c:2232 src/tools.c:269
 #, c-format
 msgid ""
 "Normalization failed: file type not supported (%s).\n"
 "\n"
 msgstr ""
 
-#: src/file.c:2715
+#: src/file.c:2248 src/tools.c:286
 #, c-format
 msgid ""
 "Normalization failed: file not available (%s).\n"
 "\n"
 msgstr ""
 
-#: src/file_export.c:181
+#: src/file_export.c:182
 #, c-format
 msgid "Skipping existing file with same length: '%s'\n"
 msgstr ""
 
-#: src/file_export.c:189
+#: src/file_export.c:190
 #, c-format
 msgid "Overwriting existing file: '%s'\n"
 msgstr ""
 
-#: src/file_export.c:206
+#: src/file_export.c:207
 #, c-format
 msgid "Error copying '%s' to '%s': Permission Error (%s)\n"
 msgstr ""
 
-#: src/file_export.c:208
+#: src/file_export.c:209
 #, c-format
 msgid "Error copying '%s' to '%s' (%s)\n"
 msgstr ""
 
-#: src/file_export.c:216
+#: src/file_export.c:217
 #, c-format
 msgid "Unable to open '%s' for reading\n"
 msgstr ""
 
-#: src/file_export.c:323
+#: src/file_export.c:327
 #, c-format
 msgid "Could find file for '%s' on the iPod\n"
 msgstr ""
 
 #. create the dialog window
-#: src/file_export.c:390 src/file_itunesdb.c:1062 src/tools.c:148
+#: src/file_export.c:395 src/file_itunesdb.c:1230 src/tools.c:359
 msgid "Information"
 msgstr ""
 
-#: src/file_export.c:401 src/tools.c:160
+#: src/file_export.c:406 src/tools.c:371
 msgid "Press button to abort."
 msgstr ""
 
-#: src/file_export.c:414
+#: src/file_export.c:419
 msgid "copying..."
 msgstr ""
 
-#: src/file_export.c:468
+#: src/file_export.c:472
 #, c-format
 msgid "Failed to write '%s-%s'\n"
 msgstr ""
 
-#: src/file_export.c:476
+#: src/file_export.c:485
 #, c-format
 msgid "Copied %d of %d track."
 msgid_plural "Copied %d of %d tracks."
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/file_export.c:494 src/file_itunesdb.c:1326 src/tools.c:307
+#: src/file_export.c:501 src/file_itunesdb.c:1495 src/tools.c:517
 #, c-format
 msgid "%d%% (%d:%02d:%02d left)"
 msgstr ""
 
-#: src/file_export.c:503
+#: src/file_export.c:510
 msgid "Some tracks were not copied."
 msgstr ""
 
-#: src/file_export.c:560
+#: src/file_export.c:575
 msgid "Export from iPod database not possible in offline mode."
 msgstr ""
 
-#: src/file_export.c:568
+#: src/file_export.c:583
 msgid "Select Export Destination Directory"
 msgstr ""
 
-#: src/file_export.c:717
+#: src/file_export.c:732
 msgid "Drag from iPod database not possible in offline mode."
 msgstr ""
 
-#: src/file_export.c:751
+#: src/file_export.c:766
 msgid "The following tracks have to be copied to your harddisk"
 msgstr ""
 
-#: src/file_export.c:796
+#: src/file_export.c:811
 msgid ""
 "Some tracks were not copied to your harddisk. Only the copied tracks will be "
 "included in the current drag and drop operation.\n"
 "\n"
 msgstr ""
 
-#: src/file_export.c:992
+#: src/file_export.c:1006
 #, c-format
 msgid ""
 "No valid filename for: %s\n"
 "\n"
 msgstr ""
 
-#: src/file_export.c:1008
+#: src/file_export.c:1022
 #, c-format
 msgid "Created playlist with one track."
 msgid_plural "Created playlist with %d tracks."
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/file_export.c:1015
+#: src/file_export.c:1027
 #, c-format
 msgid ""
 "Could not open '%s' for writing (%s).\n"
 "\n"
 msgstr ""
 
-#: src/file_itunesdb.c:114
+#: src/file_itunesdb.c:115
 #, c-format
 msgid "Matching MD5 checksum for file %d/%d"
 msgstr ""
 
-#: src/file_itunesdb.c:242
+#: src/file_itunesdb.c:223
 msgid "Could not open \"iTunesDB.ext\" for reading extended info.\n"
 msgstr ""
 
-#: src/file_itunesdb.c:249
+#: src/file_itunesdb.c:230
 msgid "Could not create hash value from itunesdb\n"
 msgstr ""
 
-#: src/file_itunesdb.c:263
+#: src/file_itunesdb.c:244
 #, c-format
 msgid "Error while reading extended info: %s\n"
 msgstr ""
 
-#: src/file_itunesdb.c:280
+#: src/file_itunesdb.c:261
 #, c-format
 msgid ""
 "iTunesDB '%s' does not match checksum in extended information file '%s'\n"
@@ -1277,21 +2830,21 @@
 "\n"
 msgstr ""
 
-#: src/file_itunesdb.c:292
+#: src/file_itunesdb.c:273
 #, c-format
 msgid ""
 "%s:\n"
 "Expected \"itunesdb_hash=\" but got:\"%s\"\n"
 msgstr ""
 
-#: src/file_itunesdb.c:352
+#: src/file_itunesdb.c:333
 #, c-format
 msgid ""
 "%s:\n"
 "Format error: %s\n"
 msgstr ""
 
-#: src/file_itunesdb.c:407
+#: src/file_itunesdb.c:377
 msgid ""
 "No MD5 checksums on individual tracks are available.\n"
 "\n"
@@ -1301,109 +2854,126 @@
 "\n"
 msgstr ""
 
-#: src/file_itunesdb.c:462
+#: src/file_itunesdb.c:439
 msgid ""
 "Extended info will not be used. If you have non-transferred tracks,\n"
 "these will be lost.\n"
 msgstr ""
 
-#: src/file_itunesdb.c:470
+#: src/file_itunesdb.c:447
 msgid "Offline iPod database successfully imported"
 msgstr ""
 
-#: src/file_itunesdb.c:473
+#: src/file_itunesdb.c:450
 msgid "Local database successfully imported"
 msgstr ""
 
-#: src/file_itunesdb.c:481
+#: src/file_itunesdb.c:458
 #, c-format
 msgid ""
 "Offline iPod database import failed: '%s'\n"
 "\n"
 msgstr ""
 
-#: src/file_itunesdb.c:485
+#: src/file_itunesdb.c:462
 #, c-format
 msgid ""
 "Local database import failed: '%s'\n"
 "\n"
 msgstr ""
 
-#: src/file_itunesdb.c:492
+#: src/file_itunesdb.c:469
 msgid ""
 "Offline iPod database import failed: \n"
 "\n"
 msgstr ""
 
-#: src/file_itunesdb.c:495
+#: src/file_itunesdb.c:472
 msgid ""
 "Local database import failed: \n"
 "\n"
 msgstr ""
 
-#: src/file_itunesdb.c:502 src/file_itunesdb.c:550
+#: src/file_itunesdb.c:479
 #, c-format
 msgid ""
 "'%s' does not exist. Import aborted.\n"
 "\n"
 msgstr ""
 
-#: src/file_itunesdb.c:521
+#: src/file_itunesdb.c:502
 msgid "Extended info will not be used.\n"
 msgstr ""
 
-#: src/file_itunesdb.c:528
+#: src/file_itunesdb.c:509
 msgid "iPod Database Successfully Imported"
 msgstr ""
 
-#: src/file_itunesdb.c:535
+#: src/file_itunesdb.c:516
 #, c-format
 msgid ""
 "iPod Database Import Failed: '%s'\n"
 "\n"
 msgstr ""
 
-#: src/file_itunesdb.c:541
+#: src/file_itunesdb.c:522
 msgid ""
 "iPod Database Import Failed.\n"
 "\n"
 msgstr ""
 
-#: src/file_itunesdb.c:890
+#: src/file_itunesdb.c:531
 #, c-format
+msgid ""
+"'%s' (or similar) does not exist. Import aborted.\n"
+"\n"
+msgstr ""
+
+#: src/file_itunesdb.c:817
+#, c-format
+msgid ""
+"Could not find iPod directory structure at '%s'.\n"
+"If you are sure that the iPod is properly mounted at '%s', gtkpod can create "
+"the directory structure for you.\n"
+"\n"
+"Do you want to create the directory structure now?\n"
+msgstr ""
+
+#: src/file_itunesdb.c:1071
+#, c-format
 msgid "Could not open \"%s\" for writing extended info.\n"
 msgstr ""
 
-#: src/file_itunesdb.c:905
+#: src/file_itunesdb.c:1086
 msgid "Aborted writing of extended info.\n"
 msgstr ""
 
-#: src/file_itunesdb.c:1073
+#: src/file_itunesdb.c:1241
 msgid ""
 "Press button to abort.\n"
 "Export can be continued at a later time."
 msgstr ""
 
-#: src/file_itunesdb.c:1142
+#: src/file_itunesdb.c:1310
 msgid "deleting..."
 msgstr ""
 
-#: src/file_itunesdb.c:1246
+#: src/file_itunesdb.c:1413
 msgid "preparing to copy..."
 msgstr ""
 
-#: src/file_itunesdb.c:1309
+#: src/file_itunesdb.c:1480
 #, c-format
 msgid "Copied %d of %d new track."
 msgid_plural "Copied %d of %d new tracks."
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/file_itunesdb.c:1336
+#: src/file_itunesdb.c:1506
 msgid "Some tracks were not written to iPod. Export aborted!"
 msgstr ""
 
-#: src/file_itunesdb.c:1389
+#: src/file_itunesdb.c:1557
 #, c-format
 msgid ""
 "You did not import the existing iTunesDB ('%s'). This is most likely "
@@ -1414,65 +2984,67 @@
 "again.\n"
 msgstr ""
 
-#: src/file_itunesdb.c:1419
+#: src/file_itunesdb.c:1588
 msgid ""
 "iPod directory structure must be present before synching to the iPod can be "
 "performed.\n"
 msgstr ""
 
-#: src/file_itunesdb.c:1428
+#: src/file_itunesdb.c:1597
 msgid "Some tracks could not be deleted from the iPod. Export aborted!"
 msgstr ""
 
-#: src/file_itunesdb.c:1444
-msgid "Now writing iTunesDB. Please wait..."
+#: src/file_itunesdb.c:1613
+msgid "Now writing database. Please wait..."
 msgstr ""
 
-#: src/file_itunesdb.c:1490
+#: src/file_itunesdb.c:1659
 #, c-format
 msgid "Extended information file not deleted: '%s'"
 msgstr ""
 
-#: src/file_itunesdb.c:1577
-msgid "iPod Database Saved"
+#: src/file_itunesdb.c:1745
+#, c-format
+msgid "%s: Database saved"
 msgstr ""
 
-#: src/file_itunesdb.c:1636
-msgid "Syncing contacts, calendar and notes..."
+#: src/file_itunesdb.c:1749
+#, c-format
+msgid "%s: Changes saved"
 msgstr ""
 
-#: src/fileselection.c:123
+#: src/fileselection.c:127
 msgid "Successfully added files"
 msgstr ""
 
-#: src/fileselection.c:125
+#: src/fileselection.c:129
 msgid "Some files were not added successfully"
 msgstr ""
 
 #. Create the file chooser, and handle the response
-#: src/fileselection.c:148
+#: src/fileselection.c:157
 msgid "Add Files"
 msgstr ""
 
 #. Create the file chooser, and handle the response
-#: src/fileselection.c:227
+#: src/fileselection.c:250
 msgid "Add Playlists"
 msgstr ""
 
 #. Create the file chooser, and handle the response
-#: src/fileselection.c:270
+#: src/fileselection.c:297
 msgid "Set Cover"
 msgstr ""
 
-#: src/fileselection.c:491
+#: src/fileselection.c:718
 msgid "Select directory to add recursively"
 msgstr ""
 
-#: src/fileselection.c:759
+#: src/fileselection.c:989
 msgid "Ok"
 msgstr ""
 
-#: src/fileselection.c:768
+#: src/fileselection.c:998
 msgid "Cancel"
 msgstr ""
 
@@ -1535,62 +3107,78 @@
 msgid "%s: option `-W %s' doesn't allow an argument\n"
 msgstr ""
 
-#: src/info.c:377
+#: src/info.c:383
 msgid "n/c"
 msgstr ""
 
-#: src/info.c:382 src/info.c:793
+#: src/info.c:388 src/info.c:835
 msgid "offline"
 msgstr ""
 
-#: src/info.c:469
+#: src/info.c:483
 #, c-format
 msgid " P:%d T:%d/%d"
 msgstr ""
 
-#: src/info.c:732
+#: src/info.c:777
 msgid "B"
 msgstr ""
 
-#: src/info.c:732
+#: src/info.c:777
 msgid "kB"
 msgstr ""
 
-#: src/info.c:732
+#: src/info.c:777
 msgid "TB"
 msgstr ""
 
-#: src/info.c:778
+#: src/info.c:820
 #, c-format
 msgid " %s Free"
 msgstr ""
 
-#: src/info.c:783
+#: src/info.c:825
 #, c-format
 msgid " %s Pending"
 msgstr ""
 
-#: src/info.c:788
+#: src/info.c:830
 msgid " disconnected"
 msgstr ""
 
-#: src/md5.c:159
+#: src/info.c:881
+msgid "No database or playlist selected"
+msgstr ""
+
+#: src/info.c:886
+msgid "No tracks selected"
+msgstr ""
+
+#: src/info.c:891
+msgid "No playlist selected"
+msgstr ""
+
+#: src/info.c:896
+msgid "No iPod or iPod playlist selected"
+msgstr ""
+
+#: src/md5.c:187
 msgid "Hashed file is 0 bytes long\n"
 msgstr ""
 
-#: src/md5.c:208
+#: src/md5.c:240
 #, c-format
 msgid "Could not open '%s' to calculate MD5 checksum: %s\n"
 msgstr ""
 
-#: src/misc.c:78
+#: src/misc.c:79
 #, c-format
 msgid ""
 "gtkpod Version %s: Cross-Platform Multi-Lingual Interface to Apple's iPod"
 "(tm)."
 msgstr ""
 
-#: src/misc.c:82
+#: src/misc.c:83
 msgid ""
 "(C) 2002 - 2005\n"
 "Jorg Schuler (jcsjcs at users dot sourceforge dot net)\n"
@@ -1599,7 +3187,7 @@
 "\n"
 msgstr ""
 
-#: src/misc.c:88
+#: src/misc.c:89
 msgid ""
 "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 "
@@ -1618,246 +3206,238 @@
 "\n"
 msgstr ""
 
-#: src/misc.c:96
+#: src/misc.c:97
 msgid ""
 "Patches were supplied by the following people (list may be incomplete -- "
 "please contact me)\n"
 "\n"
 msgstr ""
 
-#: src/misc.c:98
+#: src/misc.c:99
 msgid "Ramesh Dharan: Multi-Edit (edit tags of several tracks in one run)\n"
 msgstr ""
 
-#: src/misc.c:100
+#: src/misc.c:101
 msgid "Hiroshi Kawashima: Japanese charset autodetecion feature\n"
 msgstr ""
 
-#: src/misc.c:102
+#: src/misc.c:103
 msgid "Adrian Ulrich: porting of playlist code from mktunes.pl to itunesdb.c\n"
 msgstr ""
 
-#: src/misc.c:104
+#: src/misc.c:105
 msgid ""
 "Walter Bell: correct handling of DND URIs with escaped characters and/or cr/"
 "newlines at the end\n"
 msgstr ""
 
-#: src/misc.c:106
+#: src/misc.c:107
 msgid "Sam Clegg: user defined filenames when exporting tracks from the iPod\n"
 msgstr ""
 
-#: src/misc.c:108
+#: src/misc.c:109
 msgid "Chris Cutler: automatic creation of various playlist types\n"
 msgstr ""
 
-#: src/misc.c:110
+#: src/misc.c:111
 msgid ""
 "Graeme Wilford: reading and writing of the 'Composer' ID3 tags, progress "
 "dialogue during sync\n"
 msgstr ""
 
-#: src/misc.c:112
+#: src/misc.c:113
 msgid ""
 "Edward Matteucci: debugging, special playlist creation, most of the volume "
 "normalizing code\n"
 msgstr ""
 
-#: src/misc.c:114
+#: src/misc.c:115
 msgid "Jens Lautenbach: some optical improvements\n"
 msgstr ""
 
-#: src/misc.c:116
+#: src/misc.c:117
 msgid "Alex Tribble: iPod eject patch\n"
 msgstr ""
 
-#: src/misc.c:118
+#: src/misc.c:119
 msgid "Yaroslav Halchenko: Orphaned and dangling tracks handling\n"
 msgstr ""
 
-#: src/misc.c:120
+#: src/misc.c:121
 msgid ""
 "Andrew Huntwork: Filename case sensitivity fix and various other bugfixes\n"
 msgstr ""
 
-#: src/misc.c:122
+#: src/misc.c:123
 msgid ""
 "Ero Carrera: Filename validation and quick sync when copying tracks from the "
 "iPod\n"
 msgstr ""
 
-#: src/misc.c:124
+#: src/misc.c:125
 msgid "Jens Taprogge: Support for LAME's replay gain tag to normalize volume\n"
 msgstr ""
 
-#: src/misc.c:126
+#: src/misc.c:127
 msgid "Armando Atienza: Support with external playcounts\n"
 msgstr ""
 
-#: src/misc.c:128
+#: src/misc.c:129
 msgid "D.L. Sharp: Support for m4b files (bookmarkable AAC files)\n"
 msgstr ""
 
-#: src/misc.c:130
+#: src/misc.c:131
 msgid "Jim Hall: Decent INSTALL file\n"
 msgstr ""
 
-#: src/misc.c:132
+#: src/misc.c:133
 msgid ""
 "Juergen Helmers, Markus Gaugusch: Conversion scripts to sync calendar/"
 "contacts to the iPod\n"
 msgstr ""
 
 #. J"urgen!
-#: src/misc.c:134
+#: src/misc.c:135
 msgid "Flavio Stanchina: bugfixes\n"
 msgstr ""
 
-#: src/misc.c:136
+#: src/misc.c:137
 msgid ""
 "Chris Micacchi: when sorting ignore 'the' and similar at the beginning of "
 "the title\n"
 msgstr ""
 
-#: src/misc.c:138
+#: src/misc.c:139
 msgid "Steve Jay: use statvfs() instead of df (better portability, faster)\n"
 msgstr ""
 
-#: src/misc.c:141
+#: src/misc.c:142
 msgid ""
 "Christoph Kunz: address compatibility issues when writing id3v2.4 type mp3 "
 "tags\n"
 msgstr ""
 
-#: src/misc.c:144
+#: src/misc.c:145
 msgid ""
-"James Ligget: replacement of old GTK file selection dialogs with new GTK "
-"filechooser dialogs\n"
+"James Liggett:\n"
+"     replacement of old GTK file selection dialogs with new GTK filechooser "
+"dialogs\n"
+"     refactored user preferences system.\n"
 msgstr ""
 
-#: src/misc.c:147
+#: src/misc.c:150
 msgid "Daniel Kercher: sync scripts for abook and webcalendar\n"
 msgstr ""
 
-#: src/misc.c:150
+#: src/misc.c:153
 msgid "Clinton Gormley: sync scripts for thunderbird\n"
 msgstr ""
 
-#: src/misc.c:153
+#: src/misc.c:156
 msgid "Sebastien Beridot: sync script for ldif addressbook format\n"
 msgstr ""
 
-#: src/misc.c:156
+#: src/misc.c:159
 msgid "Sebastian Scherer: sync script for kNotes\n"
 msgstr ""
 
-#: src/misc.c:159
+#: src/misc.c:162
 msgid "Nick Piper: sync script for Palm, type-ahead search\n"
 msgstr ""
 
-#: src/misc.c:162
+#: src/misc.c:165
 msgid "Uwe Hermann: help with support for iPod Video\n"
 msgstr ""
 
-#: src/misc.c:165
+#: src/misc.c:168
 msgid ""
 "Iain Benson: support for compilation tag in mp3 files and separate display "
 "of compilations in the sort tab.\n"
 msgstr ""
 
-#: src/misc.c:167
+#: src/misc.c:170
 msgid ""
 "Nicolas Chariot: icons of buttons\n"
 "\n"
 "\n"
 msgstr ""
 
-#: src/misc.c:171
+#: src/misc.c:174
 msgid "This program borrows code from the following projects:\n"
 msgstr ""
 
-#: src/misc.c:173
+#: src/misc.c:176
 msgid ""
 "    gnutools: (mktunes.pl, ported to C) reading and writing of iTunesDB "
 "(http://www.gnu.org/software/gnupod/)\n"
 msgstr ""
 
-#: src/misc.c:175
+#: src/misc.c:178
 msgid ""
 "    iPod.cpp, iPod.h by Samuel Wood (sam dot wood at gmail dot com): some "
 "code for smart playlists is based on his C++-classes.\n"
 msgstr ""
 
-#: src/misc.c:177
+#: src/misc.c:180
 msgid "    mp3info:  mp3 playlength detection (http://ibiblio.org/mp3info/)\n"
 msgstr ""
 
-#: src/misc.c:179
+#: src/misc.c:182
 msgid ""
 "    xmms:     dirbrowser, mp3 playlength detection (http://www.xmms.org)\n"
 msgstr ""
 
-#: src/misc.c:182
+#: src/misc.c:185
 msgid ""
 "The GUI was created with the help of glade-2 (http://glade.gnome.org/).\n"
 msgstr ""
 
-#: src/misc.c:197
+#: src/misc.c:200
 msgid "French:   David Le Brun (david at dyn-ns dot net)\n"
 msgstr ""
 
-#: src/misc.c:199
+#: src/misc.c:202
 msgid "German:   Jorg Schuler (jcsjcs at users dot sourceforge dot net)\n"
 msgstr ""
 
-#: src/misc.c:201
+#: src/misc.c:204
 msgid "Hebrew: Assaf Gillat (gillata at gmail dot com)\n"
 msgstr ""
 
-#: src/misc.c:203
+#: src/misc.c:206
 msgid ""
 "Italian:  Edward Matteucci (edward_matteucc at users dot sourceforge dot "
 "net)\n"
 msgstr ""
 
-#: src/misc.c:205
+#: src/misc.c:208
 msgid "Japanese: Ayako Sano\n"
 msgstr ""
 
-#: src/misc.c:207
+#: src/misc.c:210
 msgid "Japanese: Kentaro Fukuchi (fukuchi at users dot sourceforge dot net)\n"
 msgstr ""
 
-#: src/misc.c:209
+#: src/misc.c:212
 msgid "Swedish: Stefan Asserhall (stefan asserhall at comhem dot se)\n"
 msgstr ""
 
-#: src/misc.c:332
+#: src/misc.c:936
 #, c-format
-msgid "Could not delete backup file: \"%s\"\n"
+msgid "Could not process '%s' (no filename available)"
 msgstr ""
 
-#: src/misc.c:452
+#: src/misc.c:1084
 #, c-format
-msgid "Unmounting of '%s' (%s) unsuccessful."
-msgstr ""
-
-#: src/misc.c:456
-#, c-format
-msgid "Unmounting of '%s' unsuccessful."
-msgstr ""
-
-#: src/misc.c:1219
-#, c-format
 msgid "Unknown token '%%%c' in template '%s'"
 msgstr ""
 
-#: src/misc.c:1301
+#: src/misc.c:1166
 #, c-format
 msgid "Template ('%s') does not match file type '%s'\n"
 msgstr ""
 
-#: src/misc.c:1382
+#: src/misc.c:1247
 #, c-format
 msgid "Error creating %s: %s\n"
 msgstr ""
@@ -1873,7 +3453,7 @@
 msgid "The following has occured:"
 msgstr ""
 
-#: src/misc_confirm.c:124
+#: src/misc_confirm.c:123
 msgid ""
 "Are you sure you want to delete the following track completely from your "
 "iPod? The number of playlists this track is a member of is indicated in "
@@ -1885,13 +3465,13 @@
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/misc_confirm.c:128
+#: src/misc_confirm.c:127
 msgid "Delete Track Completely from iPod?"
 msgid_plural "Delete Tracks Completey from iPod?"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/misc_confirm.c:138 src/misc_confirm.c:178
+#: src/misc_confirm.c:138 src/misc_confirm.c:179
 #, c-format
 msgid ""
 "Are you sure you want to remove the following track from the playlist \"%s\"?"
@@ -1901,7 +3481,7 @@
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/misc_confirm.c:142 src/misc_confirm.c:182
+#: src/misc_confirm.c:142 src/misc_confirm.c:183
 msgid "Remove Track From Playlist?"
 msgid_plural "Remove Tracks From Playlist?"
 msgstr[0] ""
@@ -1925,7 +3505,7 @@
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/misc_confirm.c:192
+#: src/misc_confirm.c:193
 msgid ""
 "Are you sure you want to remove the following track completely from your "
 "local database? The number of playlists this track is a member of is "
@@ -1937,7 +3517,7 @@
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/misc_confirm.c:196
+#: src/misc_confirm.c:197
 msgid "Remove Track from Local Database?"
 msgid_plural "Remove Tracks from Local Database?"
 msgstr[0] ""
@@ -1971,64 +3551,53 @@
 msgstr[0] ""
 msgstr[1] ""
 
-#. no playlist??? Cannot happen, but...
-#. no playlist selected
-#: src/misc_confirm.c:336 src/misc_confirm.c:432 src/misc_confirm.c:674
-#: src/misc_track.c:1509
-msgid "No playlist selected."
-msgstr ""
-
-#. no tracks selected
-#: src/misc_confirm.c:345
-msgid "No tracks selected."
-msgstr ""
-
-#: src/misc_confirm.c:448
+#: src/misc_confirm.c:438
 msgid "Cannot remove entry 'All'"
 msgstr ""
 
-#: src/misc_confirm.c:541
+#: src/misc_confirm.c:532
 #, c-format
 msgid "Removed all %d tracks from the iPod"
 msgstr ""
 
-#: src/misc_confirm.c:546
+#: src/misc_confirm.c:537
 msgid "Removed all podcasts from the iPod"
 msgstr ""
 
-#: src/misc_confirm.c:556 src/misc_confirm.c:626
+#: src/misc_confirm.c:546 src/misc_confirm.c:620
 #, c-format
 msgid "Deleted playlist '%s' including %d member track"
 msgid_plural "Deleted playlist '%s' including %d member tracks"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/misc_confirm.c:570 src/misc_confirm.c:640
+#. first use playlist name
+#: src/misc_confirm.c:562 src/misc_confirm.c:636
 #, c-format
 msgid "Deleted playlist '%s'"
 msgstr ""
 
-#: src/misc_confirm.c:603
+#: src/misc_confirm.c:596
 #, c-format
 msgid "Deleted playlist '%s' including %d member track on harddisk"
 msgid_plural "Deleted playlist '%s' including %d member tracks on harddisk"
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/misc_confirm.c:618
+#: src/misc_confirm.c:613
 #, c-format
 msgid "Removed all %d tracks from the database"
 msgstr ""
 
-#: src/misc_confirm.c:693
+#: src/misc_confirm.c:691
 msgid "Are you sure you want to remove all tracks from your iPod?"
 msgstr ""
 
-#: src/misc_confirm.c:698
+#: src/misc_confirm.c:696
 msgid "Are you sure you want to remove all podcasts from your iPod?"
 msgstr ""
 
-#: src/misc_confirm.c:706
+#: src/misc_confirm.c:704
 #, c-format
 msgid ""
 "Are you sure you want to delete playlist '%s' and the following track "
@@ -2041,12 +3610,12 @@
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/misc_confirm.c:717 src/misc_confirm.c:772
+#: src/misc_confirm.c:715 src/misc_confirm.c:770
 #, c-format
 msgid "Are you sure you want to delete the playlist '%s'?"
 msgstr ""
 
-#: src/misc_confirm.c:743
+#: src/misc_confirm.c:741
 #, c-format
 msgid ""
 "Are you sure you want to delete playlist '%s' and remove the following track "
@@ -2059,11 +3628,11 @@
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/misc_confirm.c:751
+#: src/misc_confirm.c:749
 msgid "Are you sure you want to remove all tracks from the database?"
 msgstr ""
 
-#: src/misc_confirm.c:760
+#: src/misc_confirm.c:758
 #, c-format
 msgid ""
 "Are you sure you want to delete playlist '%s' and remove the following track "
@@ -2076,28 +3645,7 @@
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/misc_confirm.c:960
-#, c-format
-msgid "Problem creating iPod directory: '%s'."
-msgstr ""
-
-#: src/misc_confirm.c:962
-#, c-format
-msgid "Successfully created iPod directories in '%s'."
-msgstr ""
-
-#. gint id,
-#. gboolean modal,
-#: src/misc_confirm.c:1001
-msgid "Create iPod directories"
-msgstr ""
-
-#. title
-#: src/misc_confirm.c:1002
-msgid "OK to create the following directories?"
-msgstr ""
-
-#: src/misc_confirm.c:1066
+#: src/misc_confirm.c:859
 msgid ""
 "Data has been changed and not been saved.\n"
 "OK to exit gtkpod?"
@@ -2183,151 +3731,168 @@
 msgid "Checked"
 msgstr ""
 
-#: src/misc_conversion.c:108
+#. 35
+#: src/misc_conversion.c:96
+msgid "Start time"
+msgstr ""
+
+#: src/misc_conversion.c:97
+msgid "Stop time"
+msgstr ""
+
+#: src/misc_conversion.c:98
+msgid "Remember Playback Position"
+msgstr ""
+
+#: src/misc_conversion.c:99
+msgid "Skip when Shuffling"
+msgstr ""
+
+#: src/misc_conversion.c:100
+msgid "Artwork Path"
+msgstr ""
+
+#: src/misc_conversion.c:113
 msgid "Name of file on PC, if available"
 msgstr ""
 
-#: src/misc_conversion.c:109
+#: src/misc_conversion.c:114
 msgid "Name of file on the iPod"
 msgstr ""
 
 #. 10
-#: src/misc_conversion.c:111
+#: src/misc_conversion.c:116
 msgid "Track Nr. and total number of tracks on CD"
 msgstr ""
 
-#: src/misc_conversion.c:112
+#: src/misc_conversion.c:117
 msgid "Whether the file has already been transferred to the iPod or not"
 msgstr ""
 
-#: src/misc_conversion.c:118
+#: src/misc_conversion.c:123
 msgid ""
 "Supposedly something that tells the iPod to increase or decrease the "
 "playback speed"
 msgstr ""
 
-#: src/misc_conversion.c:120
+#: src/misc_conversion.c:125
 msgid "Number of times the track has been played"
 msgstr ""
 
-#: src/misc_conversion.c:121
+#: src/misc_conversion.c:126
 msgid "Star rating from 0 to 5"
 msgstr ""
 
-#: src/misc_conversion.c:122
+#: src/misc_conversion.c:127
 msgid "Date and time track has been added"
 msgstr ""
 
 #. 20
-#: src/misc_conversion.c:123
+#: src/misc_conversion.c:128
 msgid "Date and time track has last been played"
 msgstr ""
 
-#: src/misc_conversion.c:124
+#: src/misc_conversion.c:129
 msgid "Date and time track has last been modified"
 msgstr ""
 
-#: src/misc_conversion.c:125
+#: src/misc_conversion.c:130
 msgid "Manual volume adjust"
 msgstr ""
 
-#: src/misc_conversion.c:126
+#: src/misc_conversion.c:131
 msgid ""
 "Volume adjust in dB (replay gain) -- you need to activate 'soundcheck' on "
 "the iPod"
 msgstr ""
 
 #. 25
-#: src/misc_conversion.c:129
+#: src/misc_conversion.c:134
 msgid "CD Nr. and total number of CDS in set"
 msgstr ""
 
-#: src/misc_conversion.c:132
+#: src/misc_conversion.c:137
 msgid ""
 "The category (e.g. 'Technology' or 'Music') where the podcast was located."
 msgstr ""
 
-#: src/misc_conversion.c:133
+#: src/misc_conversion.c:138
 msgid "Accessible by selecting the center button on the iPod."
 msgstr ""
 
-#: src/misc_conversion.c:137
+#: src/misc_conversion.c:142
 msgid "Release date (for podcasts displayed next to the title on the iPod)"
 msgstr ""
 
-#: src/misc_conversion.c:639
+#: src/misc_conversion.c:649
 #, c-format
 msgid "The URI '%s' is not an absolute URI using the file scheme"
 msgstr ""
 
-#: src/misc_conversion.c:649
+#: src/misc_conversion.c:659
 #, c-format
 msgid "The local file URI '%s' may not include a '#'"
 msgstr ""
 
-#: src/misc_conversion.c:666
+#: src/misc_conversion.c:676
 #, c-format
 msgid "The URI '%s' is invalid"
 msgstr ""
 
-#: src/misc_conversion.c:678
+#: src/misc_conversion.c:688
 #, c-format
 msgid "The hostname of the URI '%s' is invalid"
 msgstr ""
 
-#: src/misc_conversion.c:694
+#: src/misc_conversion.c:704
 #, c-format
 msgid "The URI '%s' contains invalidly escaped characters"
 msgstr ""
 
-#: src/misc_playlist.c:68 src/misc_playlist.c:95 src/misc_playlist.c:416
+#: src/misc_playlist.c:68 src/misc_playlist.c:95 src/misc_playlist.c:430
 msgid "Please enter a name for the new playlist"
 msgstr ""
 
-#: src/misc_playlist.c:97 gtkpod.glade:578 gtkpod.glade:772 gtkpod.glade:7128
-msgid "Smart Playlist"
-msgstr ""
-
-#: src/misc_playlist.c:146
+#: src/misc_playlist.c:155
 msgid "AR:"
 msgstr ""
 
-#: src/misc_playlist.c:149
+#: src/misc_playlist.c:158
 msgid "AL:"
 msgstr ""
 
-#: src/misc_playlist.c:152
+#: src/misc_playlist.c:161
 msgid "GE:"
 msgstr ""
 
-#: src/misc_playlist.c:155
+#: src/misc_playlist.c:164
 msgid "CO:"
 msgstr ""
 
-#: src/misc_playlist.c:158
+#: src/misc_playlist.c:167
 msgid "YE:"
 msgstr ""
 
-#: src/misc_playlist.c:186
+#: src/misc_playlist.c:195
 msgid "Unknown"
 msgstr ""
 
-#: src/misc_playlist.c:256
+#: src/misc_playlist.c:273
 #, c-format
 msgid "Random (%d)"
 msgstr ""
 
-#: src/misc_playlist.c:281
+#: src/misc_playlist.c:298
 msgid ""
 "Auto Store of track view disabled.\n"
 "\n"
 msgstr ""
 
-#: src/misc_playlist.c:340
+#: src/misc_playlist.c:357
 msgid "Not Listed"
 msgstr ""
 
-#: src/misc_playlist.c:391
+#: src/misc_playlist.c:407
 #, c-format
 msgid "Created playlist '%s' with %d track."
 msgid_plural "Created playlist '%s' with %d tracks."
@@ -2335,69 +3900,68 @@
 msgstr[1] ""
 
 #. n==0
-#: src/misc_playlist.c:402
+#: src/misc_playlist.c:418
 msgid "No tracks available, playlist not created"
 msgstr ""
 
-#: src/misc_playlist.c:530
+#: src/misc_playlist.c:544
 #, c-format
 msgid "Most Listened (%d)"
 msgstr ""
 
-#: src/misc_playlist.c:571
+#: src/misc_playlist.c:585
 msgid "Never Listened"
 msgstr ""
 
-#: src/misc_playlist.c:611
+#: src/misc_playlist.c:625
 #, c-format
 msgid "Best Rated (%d)"
 msgstr ""
 
-#: src/misc_playlist.c:653
+#: src/misc_playlist.c:667
 msgid "Unrated tracks"
 msgstr ""
 
-#: src/misc_playlist.c:658
+#: src/misc_playlist.c:672
 #, c-format
 msgid "Rated %d"
 msgstr ""
 
-#: src/misc_playlist.c:701
+#: src/misc_playlist.c:715
 #, c-format
 msgid "Recent (%d)"
 msgstr ""
 
-#: src/misc_playlist.c:740
+#: src/misc_playlist.c:754
 msgid "Last Time"
 msgstr ""
 
-#: src/misc_playlist.c:831
+#: src/misc_playlist.c:845
 msgid "Removal of dangling tracks with no files on PC was canceled."
 msgstr ""
 
-#: src/misc_playlist.c:841
+#: src/misc_playlist.c:855
 msgid "Handling of dangling tracks with files on PC was canceled."
 msgstr ""
 
-#: src/misc_playlist.c:869
+#: src/misc_playlist.c:883
 msgid "Dangling tracks with no files on PC were removed."
 msgstr ""
 
-#. printf("Handling track %d\n", track->ipod_id);
-#: src/misc_playlist.c:902
+#: src/misc_playlist.c:917
 #, c-format
 msgid "Processing '%s'"
 msgstr ""
 
-#: src/misc_playlist.c:927
+#: src/misc_playlist.c:941
 msgid "Dangling tracks with files on PC were handled."
 msgstr ""
 
-#: src/misc_playlist.c:960
+#: src/misc_playlist.c:974
 msgid "Track"
 msgstr ""
 
-#: src/misc_playlist.c:1005
+#: src/misc_playlist.c:1017
 msgid ""
 "You did not import the existing iTunesDB. This is most likely incorrect and "
 "will result in the loss of the existing database.\n"
@@ -2407,19 +3971,19 @@
 "again.\n"
 msgstr ""
 
-#: src/misc_playlist.c:1021
+#: src/misc_playlist.c:1031
 msgid "Creating a tree of known files"
 msgstr ""
 
-#: src/misc_playlist.c:1065
+#: src/misc_playlist.c:1075
 msgid "Checking iPOD files against known files in DB"
 msgstr ""
 
-#: src/misc_playlist.c:1110
+#: src/misc_playlist.c:1118
 msgid "Orphaned"
 msgstr ""
 
-#: src/misc_playlist.c:1131
+#: src/misc_playlist.c:1145
 #, c-format
 msgid ""
 "The following orphaned file had already been added to the iPod again. It "
@@ -2428,12 +3992,12 @@
 "\n"
 msgstr ""
 
-#: src/misc_playlist.c:1160
+#: src/misc_playlist.c:1173
 #, c-format
 msgid "Found %d orphaned and %d dangling files. Processing..."
 msgstr ""
 
-#: src/misc_playlist.c:1183
+#: src/misc_playlist.c:1197
 #, c-format
 msgid ""
 "The following dangling track has a file on PC.\n"
@@ -2446,7 +4010,7 @@
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/misc_playlist.c:1188
+#: src/misc_playlist.c:1202
 #, c-format
 msgid ""
 "The following dangling track doesn't have file on PC. \n"
@@ -2459,31 +4023,31 @@
 
 #. we want unique window for each
 #. gboolean modal,
-#: src/misc_playlist.c:1195
+#: src/misc_playlist.c:1209
 msgid "Dangling Tracks"
 msgstr ""
 
-#: src/misc_playlist.c:1219
+#: src/misc_playlist.c:1232
 #, c-format
 msgid "Found %d orphaned and %d dangling files. Done."
 msgstr ""
 
 #. update for count == 1, 21, 41 ... and for count == n
-#: src/misc_track.c:91 src/misc_track.c:368
+#: src/misc_track.c:90 src/misc_track.c:364
 #, c-format
 msgid "Hashed %d of %d track."
 msgid_plural "Hashed %d of %d tracks."
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/misc_track.c:202
+#: src/misc_track.c:199
 #, c-format
 msgid "The following duplicate track has been removed."
 msgid_plural "The following %d duplicate tracks have been removed."
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/misc_track.c:209
+#: src/misc_track.c:206
 #, c-format
 msgid ""
 "The following duplicate track has not been added to the master play list."
@@ -2495,80 +4059,72 @@
 
 #. gint id,
 #. gboolean modal,
-#: src/misc_track.c:216
+#: src/misc_track.c:213
 msgid "Duplicate detection"
 msgstr ""
 
-#: src/misc_track.c:844
+#: src/misc_track.c:904
 msgid "Local Database"
 msgstr ""
 
-#: src/misc_track.c:1396
+#. artwork is set
+#: src/misc_track.c:915
+msgid "Embedded or filename was lost"
+msgstr ""
+
+#: src/misc_track.c:919
+msgid "Artwork not set"
+msgstr ""
+
+#: src/misc_track.c:1527
 #, c-format
 msgid "drag and drop: ignored '%s'\n"
 msgstr ""
 
-#: src/mp3file.c:1118
+#: src/mp3file.c:1276
 #, c-format
 msgid "Error setting ID3 field: %s\n"
 msgstr ""
 
-#: src/mp3file.c:1143 src/mp3file.c:1290 src/mp3file.c:2036
+#: src/mp3file.c:1300 src/mp3file.c:1373 src/mp3file.c:1522 src/mp3file.c:2160
 #, c-format
 msgid "ERROR while opening file: '%s' (%s).\n"
 msgstr ""
 
-#: src/mp3file.c:1357
+#: src/mp3file.c:1593
 #, c-format
 msgid "ERROR while writing tag to file: '%s' (%s).\n"
 msgstr ""
 
-#: src/mp3file.c:1880
-#, c-format
-msgid ""
-"Could not find mp3gain. I tried to use the following executable: '%s'.\n"
-"\n"
-"If the mp3gain executable is not in your path or named differently, you can "
-"set the full path in the 'Tools' section of the preferences dialog.\n"
-"\n"
-"If you do not have mp3gain installed, you can download it from http://www."
-"sourceforge.net/projects/mp3gain."
-msgstr ""
-
-#: src/mp3file.c:1920
-#, c-format
-msgid "Execution of mp3gain ('%s') failed."
-msgstr ""
-
 #. Tracks with zero play length are ignored by iPod...
-#: src/mp3file.c:2179
+#: src/mp3file.c:2326
 #, c-format
 msgid "File \"%s\" has zero play length. Ignoring.\n"
 msgstr ""
 
-#: src/mp4file.c:243 src/mp4file.c:362
+#: src/mp4file.c:221 src/mp4file.c:342 src/mp4file.c:461
 #, c-format
 msgid "'%s' does not appear to be a mp4 audio file.\n"
 msgstr ""
 
-#: src/mp4file.c:253
+#: src/mp4file.c:231 src/mp4file.c:352
 #, c-format
 msgid "Could not open '%s' for reading, or file is not an mp4 file.\n"
 msgstr ""
 
-#: src/mp4file.c:373
+#: src/mp4file.c:472
 #, c-format
 msgid "Could not open '%s' for writing, or file is not an mp4 file.\n"
 msgstr ""
 
-#: src/mp4file.c:386
+#: src/mp4file.c:485
 #, c-format
 msgid ""
 "Import of '%s' failed: m4a/m4p/m4b not supported without the mp4v2 library. "
 "You must compile the gtkpod source together with the mp4v2 library.\n"
 msgstr ""
 
-#: src/mp4file.c:392
+#: src/mp4file.c:491
 #, c-format
 msgid ""
 "m4a/m4p/m4b metadata update for '%s' failed: m4a/m4p/m4b not supported "
@@ -2576,229 +4132,250 @@
 "the mp4v2 library.\n"
 msgstr ""
 
-#: src/prefs.c:128
+#: src/mp4file.c:497
 #, c-format
+msgid ""
+"m4a/m4p/m4b soundcheck update for '%s' failed: m4a/m4p/m4b not supported "
+"without the mp4v2 library. You must compile the gtkpod source together with "
+"the mp4v2 library.\n"
+msgstr ""
+
+#: src/prefs.c:307
+#, c-format
 msgid "gtkpod version %s usage:\n"
 msgstr ""
 
-#: src/prefs.c:129
+#: src/prefs.c:308
 msgid "  -h, --help:   display this message\n"
 msgstr ""
 
-#: src/prefs.c:130
+#: src/prefs.c:309
 msgid "  -p <filename>:increment playcount for file by one\n"
 msgstr ""
 
-#: src/prefs.c:131
+#: src/prefs.c:310
 msgid "  -m path:      define the mountpoint of your iPod\n"
 msgstr ""
 
-#: src/prefs.c:132
+#: src/prefs.c:311
 msgid "  --mountpoint: same as '-m'.\n"
 msgstr ""
 
-#: src/prefs.c:133
+#: src/prefs.c:312
 msgid "  -a:           import database automatically after start.\n"
 msgstr ""
 
-#: src/prefs.c:134
+#: src/prefs.c:313
 msgid "  --auto:       same as '-a'.\n"
 msgstr ""
 
-#: src/prefs.c:135
-msgid ""
-"  -o:           use offline mode. No changes are exported to the iPod,\n"
-"                but to ~/.gtkpod/ instead. iPod is updated if 'Sync' is\n"
-"                used with 'Offline' deactivated.\n"
+#: src/prefs_window.c:119
+msgid "Please select command for 'Play Now'"
 msgstr ""
 
-#: src/prefs.c:136
-msgid "  --offline:    same as '-o'.\n"
+#: src/prefs_window.c:120
+msgid "Please select command for 'Enqueue'"
 msgstr ""
 
-#: src/prefs.c:401
-#, c-format
-msgid "Error while reading prefs: %s\n"
+#: src/prefs_window.c:121
+msgid "Please select the mp3gain executable"
 msgstr ""
 
-#: src/prefs.c:1030
-#, c-format
-msgid "Unable to open config file '%s' for reading\n"
+#: src/prefs_window.c:124
+msgid "Select the mserv music root directory"
 msgstr ""
 
-#: src/prefs.c:1137
-#, c-format
-msgid "Unknown option: %s\n"
+#: src/prefs_window.c:125
+msgid "Select the mserv trackinfo root directory"
 msgstr ""
 
-#: src/prefs.c:1190
-#, c-format
-msgid "# delete confirmation\n"
+#: src/prefs_window.c:127
+msgid "Please select the aacgain executable"
 msgstr ""
 
-#: src/prefs.c:1197
-#, c-format
-msgid "# sort tab: select 'All', last selected page (=category)\n"
+#: src/prefs_window.c:911 src/prefs_window.c:929
+msgid "Preferences not updated"
 msgstr ""
 
-#: src/prefs.c:1216
-#, c-format
-msgid "# autoselect master playlist?\n"
+#: src/prefs_window.c:938
+msgid "Preferences applied"
 msgstr ""
 
-#: src/prefs.c:1218
-#, c-format
-msgid "# title=0, artist, album, genre, composer\n"
+#: src/repository.c:549 src/repository.c:2372
+msgid "Select mountpoint"
 msgstr ""
 
-#: src/prefs.c:1219
-#, c-format
-msgid "# track_nr=5, ipod_id, pc_path, transferred\n"
+#: src/repository.c:576 src/repository.c:2398
+msgid "Set backup file"
 msgstr ""
 
-#: src/prefs.c:1220
-#, c-format
-msgid "# autoset: set empty tag to filename?\n"
+#: src/repository.c:615
+msgid "Select directory for synchronization"
 msgstr ""
 
-#: src/prefs.c:1235
-#, c-format
-msgid ""
-"# position of sliders (paned): playlists, above tracks,\n"
-"# between sort tabs, and in statusbar.\n"
+#: src/repository.c:641
+msgid "Please select command to sync contacts"
 msgstr ""
 
-#: src/prefs.c:1271
-#, c-format
-msgid ""
-"# window sizes: main window, confirmation scrolled,\n"
-"#               confirmation non-scrolled, dirbrowser, prefs\n"
+#: src/repository.c:647
+msgid "Please select command to sync calendar"
 msgstr ""
 
-#: src/prefs.c:1328
-#, c-format
-msgid "Unable to open '%s' for writing\n"
+#: src/repository.c:653
+msgid "Please select command to sync notes"
 msgstr ""
 
-#: src/prefs.c:1682
+#: src/repository.c:665
 #, c-format
 msgid ""
-" Preferences: Category nr (%d<%d?) or sorttab nr (%d<%d?) out of range.\n"
+"<i>Have a look at the scripts provided in '%s'. If you write a new script, "
+"please send it to jcsjcs at users.sourceforge.net for inclusion into the "
+"next release.</i>"
 msgstr ""
 
-#: src/prefs.c:1731
-#, c-format
-msgid "Unable to 'mkdir %s'\n"
+#: src/repository.c:732
+msgid "Smart playlist updated."
 msgstr ""
 
-#. illegal -- ignore
-#: src/prefs.c:2157
-#, c-format
-msgid "prefs_set_toolbar_style: illegal style '%d' ignored\n"
+#: src/repository.c:1193
+msgid "Podcasts Repository"
 msgstr ""
 
-#. illegal -- ignore
-#: src/prefs.c:2199
-#, c-format
-msgid "prefs_set_pm_sort: illegal type '%d' ignored\n"
+#: src/repository.c:1197
+msgid "Local Repository"
 msgstr ""
 
-#: src/prefs.c:2354
-#, c-format
-msgid "'%s': no arguments (%%...) allowed.\n"
+#: src/repository.c:1351
+msgid "Master Playlist"
 msgstr ""
 
-#: src/prefs.c:2359
-#, c-format
-msgid "'%s': only '%%[%s]' allowed.\n"
+#: src/repository.c:1355
+msgid "Podcasts Playlist"
 msgstr ""
 
-#: src/prefs_window.c:108
-msgid "Please select command for 'Play Now'"
+#: src/repository.c:1363
+msgid "Regular Playlist"
 msgstr ""
 
-#: src/prefs_window.c:109
-msgid "Please select command for 'Enqueue'"
+#: src/repository.c:2426
+msgid "Set local repository file"
 msgstr ""
 
-#: src/prefs_window.c:110
-msgid "Please select the mp3gain executable"
+#: src/repository.c:2525
+msgid "New Repository"
 msgstr ""
 
-#: src/prefs_window.c:111
-msgid "Please select command to sync contacts"
+#: src/support.c:90 src/support.c:114
+#, c-format
+msgid "Couldn't find pixmap file: %s"
 msgstr ""
 
-#: src/prefs_window.c:112
-msgid "Please select command to sync calendar"
+#: src/syncdir.c:237
+#, c-format
+msgid "Sync summary for %s/%s\n"
 msgstr ""
 
-#: src/prefs_window.c:113
-msgid "Select the mserv music root directory"
+#: src/syncdir.c:246
+msgid "The following track has been added or updated:\n"
+msgid_plural "The following tracks have been added or updated:\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: src/syncdir.c:255
+msgid "The following track has been completely removed from the iPod:\n"
+msgid_plural ""
+"The following tracks have been completely removed from the iPod:\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: src/syncdir.c:264
+msgid "The following track has been removed from the repository:\n"
+msgid_plural "The following tracks have been removed from the repository:\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: src/syncdir.c:271
+msgid "The following track has been removed from the playlist:\n"
+msgid_plural "The following tracks have been removed from the playlist:\n"
+msgstr[0] ""
+msgstr[1] ""
+
+#: src/syncdir.c:277
+msgid "Nothing was changed.\n"
 msgstr ""
 
-#: src/prefs_window.c:114
-msgid "Select the mserv trackinfo root directory"
+#: src/syncdir.c:282
+msgid "Sync summary"
 msgstr ""
 
-#: src/prefs_window.c:115
-msgid "Please select command to sync notes"
+#: src/tools.c:119
+#, c-format
+msgid ""
+"Could not find '%s'\n"
+". Please specifiy the exact path in the Tools section of the preference "
+"dialog or install the programm if it is not installed on your system.\n"
+"\n"
 msgstr ""
 
-#: src/prefs_window.c:854
+#: src/tools.c:204
 #, c-format
 msgid ""
-"<i>Have a look at the scripts provided in '%s'. If you write a new script, "
-"please send it to jcsjcs at users.sourceforge.net for inclusion into the "
-"next release.</i>"
+"Execution of '%s' failed.\n"
+"\n"
 msgstr ""
 
-#: src/prefs_window.c:1287 src/prefs_window.c:1305
-msgid "Preferences not updated"
+#: src/tools.c:249
+#, c-format
+msgid ""
+"Did not normalize '%s'. Set mp3gain path in the Tools section of the "
+"preferences.\n"
 msgstr ""
 
-#: src/prefs_window.c:1314
-msgid "Preferences applied"
+#: src/tools.c:259
+#, c-format
+msgid ""
+"Did not normalize '%s'. Set aacgain path in the Tools section of the "
+"preferences.\n"
 msgstr ""
 
-#: src/tools.c:173
+#: src/tools.c:384
 msgid "Normalizing..."
 msgstr ""
 
-#: src/tools.c:220
+#: src/tools.c:434
 #, c-format
 msgid "%s - %s"
 msgstr ""
 
-#: src/tools.c:247
+#: src/tools.c:460
 msgid "Aborting..."
 msgstr ""
 
-#: src/tools.c:251
+#: src/tools.c:464
 msgid "Will abort after current mp3gain process ends."
 msgstr ""
 
-#: src/tools.c:277
+#: src/tools.c:490
 #, c-format
 msgid ""
 "'%s-%s' (%s) could not be normalized.\n"
 "\n"
 msgstr ""
 
-#: src/tools.c:319
+#: src/tools.c:529
 #, c-format
 msgid "Normalized %d of %d tracks."
 msgid_plural "Normalized %d of %d tracks."
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/tools.c:413
+#: src/tools.c:632
 msgid ""
 "Please specify the command to be called on the 'Tools' section of the "
 "preferences dialog.\n"
 msgstr ""
 
-#: src/tools.c:425
+#: src/tools.c:644
 #, c-format
 msgid ""
 "Could not find the command '%s'.\n"
@@ -2807,19 +4384,19 @@
 "\n"
 msgstr ""
 
-#: src/tools.c:466
+#: src/tools.c:685
 #, c-format
 msgid ""
 "'%s' returned the following output:\n"
 "%s\n"
 msgstr ""
 
-#: src/tools.c:535
+#: src/tools.c:752
 #, c-format
 msgid "No command set for '%s'"
 msgstr ""
 
-#: src/tools.c:556
+#: src/tools.c:772
 #, c-format
 msgid "Could not find command '%s' specified for '%s'"
 msgstr ""
@@ -2833,1556 +4410,3 @@
 #, c-format
 msgid "%s does not appear to be a supported wav file.\n"
 msgstr ""
-
-#: gtkpod.glade:7
-msgid "gtkpod"
-msgstr ""
-
-#: gtkpod.glade:36
-msgid "_File"
-msgstr ""
-
-#: gtkpod.glade:45
-msgid "_Read iTunesDB"
-msgstr ""
-
-#: gtkpod.glade:66
-msgid "Add _Files"
-msgstr ""
-
-#: gtkpod.glade:87
-msgid "Add _Directory"
-msgstr ""
-
-#: gtkpod.glade:108
-msgid "Add _Playlist"
-msgstr ""
-
-#: gtkpod.glade:129
-msgid "Synchronize _iTunesDB"
-msgstr ""
-
-#: gtkpod.glade:183
-msgid "_Update Tracks from File"
-msgstr ""
-
-#: gtkpod.glade:204 gtkpod.glade:256 gtkpod.glade:308 gtkpod.glade:366
-#: gtkpod.glade:418 gtkpod.glade:1136 gtkpod.glade:1188 gtkpod.glade:1234
-msgid "Selected _Playlist"
-msgstr ""
-
-#: gtkpod.glade:213 gtkpod.glade:265 gtkpod.glade:317 gtkpod.glade:375
-#: gtkpod.glade:427 gtkpod.glade:1145 gtkpod.glade:1197 gtkpod.glade:1243
-msgid "Selected Tab _Entry"
-msgstr ""
-
-#: gtkpod.glade:222 gtkpod.glade:274 gtkpod.glade:326 gtkpod.glade:384
-#: gtkpod.glade:436 gtkpod.glade:569 gtkpod.glade:1154 gtkpod.glade:1206
-#: gtkpod.glade:1252
-msgid "Selected _Tracks"
-msgstr ""
-
-#: gtkpod.glade:235
-msgid "Update _mserv Data from File"
-msgstr ""
-
-#: gtkpod.glade:287
-msgid "_Synchronize Directories"
-msgstr ""
-
-#: gtkpod.glade:345
-msgid "_Export Tracks from Database"
-msgstr ""
-
-#: gtkpod.glade:397
-msgid "Create _Playlist File"
-msgstr ""
-
-#: gtkpod.glade:455
-msgid "_Offline"
-msgstr ""
-
-#: gtkpod.glade:471
-msgid "_Create iPod's Directories"
-msgstr ""
-
-#: gtkpod.glade:492
-msgid ""
-"Find orphan files (files with no track info in DB) and dangling tracks "
-"(tracks with no corresponding files on iPOD)"
-msgstr ""
-
-#: gtkpod.glade:493
-msgid "_Check iPod's Files"
-msgstr ""
-
-#: gtkpod.glade:521 gtkpod.glade:11968
-msgid "_Edit"
-msgstr ""
-
-#: gtkpod.glade:530
-msgid "Edit"
-msgstr ""
-
-#: gtkpod.glade:551
-msgid "Tracks in Selected _Playlist"
-msgstr ""
-
-#: gtkpod.glade:560
-msgid "Tracks in Selected Tab _Entry"
-msgstr ""
-
-#: gtkpod.glade:591
-msgid "_Delete"
-msgstr ""
-
-#: gtkpod.glade:612
-msgid "Selected playlist"
-msgstr ""
-
-#: gtkpod.glade:621
-msgid "Selected playlist including tracks from iPod"
-msgstr ""
-
-#: gtkpod.glade:630
-msgid "Selected playlist including tracks from database"
-msgstr ""
-
-#: gtkpod.glade:639
-msgid "Selected playlist including tracks from harddisk"
-msgstr ""
-
-#: gtkpod.glade:654
-msgid "Selected filter tab entry from playlist"
-msgstr ""
-
-#: gtkpod.glade:663
-msgid "Selected filter tab entry from iPod"
-msgstr ""
-
-#: gtkpod.glade:672
-msgid "Selected filter tab entry from database"
-msgstr ""
-
-#: gtkpod.glade:681
-msgid "Selected filter tab entry from harddisk"
-msgstr ""
-
-#: gtkpod.glade:696
-msgid "Selected tracks from playlist"
-msgstr ""
-
-#: gtkpod.glade:705
-msgid "Selected tracks from iPod"
-msgstr ""
-
-#: gtkpod.glade:714
-msgid "Selected tracks from database"
-msgstr ""
-
-#: gtkpod.glade:723
-msgid "Selected tracks from harddisk"
-msgstr ""
-
-#: gtkpod.glade:742
-msgid "_Create Playlists"
-msgstr ""
-
-#: gtkpod.glade:763
-msgid "Empty Playlist"
-msgstr ""
-
-#: gtkpod.glade:781
-msgid "Random Playlist from Displayed Tracks"
-msgstr ""
-
-#: gtkpod.glade:790
-msgid "Containing Displayed Tracks"
-msgstr ""
-
-#: gtkpod.glade:799
-msgid "Containing Selected Tracks"
-msgstr ""
-
-#: gtkpod.glade:808
-msgid "One for each Artist"
-msgstr ""
-
-#: gtkpod.glade:817
-msgid "One for each Album"
-msgstr ""
-
-#: gtkpod.glade:826
-msgid "One for each Genre"
-msgstr ""
-
-#: gtkpod.glade:835
-msgid "One for each Composer"
-msgstr ""
-
-#: gtkpod.glade:844
-msgid "One for each Year"
-msgstr ""
-
-#: gtkpod.glade:853
-msgid "One for each Rating"
-msgstr ""
-
-#: gtkpod.glade:862
-msgid "Best Rated Tracks"
-msgstr ""
-
-#: gtkpod.glade:871
-msgid "Tracks Most Often Listened To"
-msgstr ""
-
-#: gtkpod.glade:880
-msgid "Most Recently Played Tracks"
-msgstr ""
-
-#: gtkpod.glade:889
-msgid "All Tracks Played Since Last Time"
-msgstr ""
-
-#: gtkpod.glade:898
-msgid "All Tracks Never Listened To"
-msgstr ""
-
-#: gtkpod.glade:907
-msgid "All Tracks not Listed in any Playlist"
-msgstr ""
-
-#: gtkpod.glade:920
-msgid "Randomize Current Playlist"
-msgstr ""
-
-#: gtkpod.glade:935
-msgid "_Sorting"
-msgstr ""
-
-#: gtkpod.glade:957
-msgid "_Save Displayed Track Order"
-msgstr ""
-
-#: gtkpod.glade:985
-msgid "_Edit Preferences"
-msgstr ""
-
-#: gtkpod.glade:1011
-msgid "_View"
-msgstr ""
-
-#: gtkpod.glade:1020
-msgid "_Toolbar"
-msgstr ""
-
-#: gtkpod.glade:1030
-msgid "_Tooltips"
-msgstr ""
-
-#: gtkpod.glade:1040
-msgid "_Info Window"
-msgstr ""
-
-#: gtkpod.glade:1051
-msgid "_More Sort Tabs"
-msgstr ""
-
-#: gtkpod.glade:1072
-msgid "_Less Sort Tabs"
-msgstr ""
-
-#: gtkpod.glade:1093
-msgid "_Arrange Sort Tabs"
-msgstr ""
-
-#: gtkpod.glade:1106 gtkpod.glade:12693
-msgid "_Tools"
-msgstr ""
-
-#: gtkpod.glade:1115
-msgid "_Play Now"
-msgstr ""
-
-#: gtkpod.glade:1167
-msgid "_Enqueue"
-msgstr ""
-
-#: gtkpod.glade:1225
-msgid "_Normalize Volume"
-msgstr ""
-
-#: gtkpod.glade:1261
-msgid "_Displayed Tracks"
-msgstr ""
-
-#: gtkpod.glade:1270
-msgid "_All Tracks"
-msgstr ""
-
-#: gtkpod.glade:1279
-msgid "_Newly Added Tracks"
-msgstr ""
-
-#: gtkpod.glade:1298
-msgid "Synchronise Contacts, Calendar and Notes"
-msgstr ""
-
-#: gtkpod.glade:1299
-msgid "Synchronize All"
-msgstr ""
-
-#: gtkpod.glade:1308
-msgid "Synchronize Contacts"
-msgstr ""
-
-#: gtkpod.glade:1317
-msgid "Synchronize Calendar"
-msgstr ""
-
-#: gtkpod.glade:1326
-msgid "Synchronize Notes"
-msgstr ""
-
-#: gtkpod.glade:1339
-msgid "_Help"
-msgstr ""
-
-#: gtkpod.glade:1348
-msgid "_About"
-msgstr ""
-
-#: gtkpod.glade:1388
-msgid "Read Existing Database from Disk/iPod"
-msgstr ""
-
-#: gtkpod.glade:1389
-msgid "Read"
-msgstr ""
-
-#: gtkpod.glade:1406
-msgid "Add Files or Directories"
-msgstr ""
-
-#: gtkpod.glade:1407
-msgid "Files"
-msgstr ""
-
-#: gtkpod.glade:1424
-msgid "Add Directories Recursively"
-msgstr ""
-
-#: gtkpod.glade:1425
-msgid "Dirs"
-msgstr ""
-
-#: gtkpod.glade:1442
-msgid "Add playlist from file"
-msgstr ""
-
-#: gtkpod.glade:1460
-msgid "Create New Playlist"
-msgstr ""
-
-#: gtkpod.glade:1461
-msgid "New PL"
-msgstr ""
-
-#: gtkpod.glade:1478
-msgid "Write Changes to Disk/iPod"
-msgstr ""
-
-#: gtkpod.glade:1479
-msgid "Sync"
-msgstr ""
-
-#: gtkpod.glade:1495
-msgid "Stop Display Update"
-msgstr ""
-
-#: gtkpod.glade:1496
-msgid "Stop"
-msgstr ""
-
-#: gtkpod.glade:1669
-msgid "About gtkpod"
-msgstr ""
-
-#: gtkpod.glade:1790
-msgid "Credits"
-msgstr ""
-
-#: gtkpod.glade:1844
-msgid "Translators"
-msgstr ""
-
-#: gtkpod.glade:1898
-msgid "special_sorttab -- Don't translate!"
-msgstr ""
-
-#: gtkpod.glade:1932
-msgid " Logic: "
-msgstr ""
-
-#: gtkpod.glade:1954
-msgid "Any (OR)"
-msgstr ""
-
-#: gtkpod.glade:1973
-msgid "All (AND)"
-msgstr ""
-
-#: gtkpod.glade:2026
-msgid "0"
-msgstr ""
-
-#: gtkpod.glade:2045
-msgid "1"
-msgstr ""
-
-#: gtkpod.glade:2064
-msgid "2"
-msgstr ""
-
-#: gtkpod.glade:2083
-msgid "3"
-msgstr ""
-
-#: gtkpod.glade:2102
-msgid "4"
-msgstr ""
-
-#: gtkpod.glade:2121
-msgid "5"
-msgstr ""
-
-#: gtkpod.glade:2160
-msgid "Select '0' for no lower limit."
-msgstr ""
-
-#: gtkpod.glade:2181
-msgid " <= cts <= "
-msgstr ""
-
-#: gtkpod.glade:2202
-msgid "Select '-1' for no upper limit."
-msgstr ""
-
-#: gtkpod.glade:2245 gtkpod.glade:2318 gtkpod.glade:2484
-msgid ""
-"'DD/MM/YYYY HH:MM < d < DD/MM/YYYY HH:MM' or similar. Press 'enter' when "
-"finished."
-msgstr ""
-
-#: gtkpod.glade:2287 gtkpod.glade:2360 gtkpod.glade:2526 gtkpod.glade:2701
-msgid "Calendar"
-msgstr ""
-
-#: gtkpod.glade:2385
-msgid "Specify interval"
-msgstr ""
-
-#: gtkpod.glade:2596
-msgid "Display tracks that match the criteria entered above."
-msgstr ""
-
-#: gtkpod.glade:2639 gtkpod.glade:11330
-msgid "_Display"
-msgstr ""
-
-#: gtkpod.glade:2671
-msgid ""
-"Automatically start displaying tracks that match the criteria entered above. "
-"If not selected, you must press 'Display' to start displaying."
-msgstr ""
-
-#: gtkpod.glade:2673
-msgid "Start display automatically"
-msgstr ""
-
-#: gtkpod.glade:2746
-msgid "Sorttab: "
-msgstr ""
-
-#: gtkpod.glade:2786
-msgid "     "
-msgstr ""
-
-#: gtkpod.glade:2808
-msgid "Category: "
-msgstr ""
-
-#: gtkpod.glade:2885
-msgid "Please specify a time interval"
-msgstr ""
-
-#: gtkpod.glade:2930
-msgid "Lower Margin"
-msgstr ""
-
-#: gtkpod.glade:2977 gtkpod.glade:3183
-msgid "Time:"
-msgstr ""
-
-#: gtkpod.glade:3020 gtkpod.glade:3226
-msgid ":"
-msgstr ""
-
-#: gtkpod.glade:3093
-msgid "No lower margin"
-msgstr ""
-
-#: gtkpod.glade:3136
-msgid "Upper margin"
-msgstr ""
-
-#: gtkpod.glade:3299
-msgid "No upper margin"
-msgstr ""
-
-#: gtkpod.glade:3397
-msgid "Sorting Options"
-msgstr ""
-
-#: gtkpod.glade:3427
-msgid "<b>Sort Order</b>"
-msgstr ""
-
-#: gtkpod.glade:3454 gtkpod.glade:4704 gtkpod.glade:7682 gtkpod.glade:7860
-#: gtkpod.glade:8031 gtkpod.glade:8108 gtkpod.glade:8163 gtkpod.glade:8239
-#: gtkpod.glade:8396 gtkpod.glade:8522 gtkpod.glade:8879 gtkpod.glade:9338
-#: gtkpod.glade:9700 gtkpod.glade:10487 gtkpod.glade:10644 gtkpod.glade:10801
-#: gtkpod.glade:10922 gtkpod.glade:10975 gtkpod.glade:11132 gtkpod.glade:11389
-#: gtkpod.glade:11443 gtkpod.glade:11554 gtkpod.glade:11657 gtkpod.glade:11813
-#: gtkpod.glade:12027 gtkpod.glade:12248 gtkpod.glade:12386 gtkpod.glade:12752
-#: gtkpod.glade:12870 gtkpod.glade:13044 gtkpod.glade:13279 gtkpod.glade:13381
-msgid "    "
-msgstr ""
-
-#: gtkpod.glade:3482
-msgid ""
-"In order to save the displayed track order to the iPod choose 'Save "
-"Displayed Track Order' from the 'Edit' menu or select 'Auto Store' below."
-msgstr ""
-
-#: gtkpod.glade:3865
-msgid "Ascending"
-msgstr ""
-
-#: gtkpod.glade:3909
-msgid "Descending"
-msgstr ""
-
-#: gtkpod.glade:3953
-msgid "None"
-msgstr ""
-
-#: gtkpod.glade:4042
-msgid "Sorttabs"
-msgstr ""
-
-#: gtkpod.glade:4087
-msgid "Tracks"
-msgstr ""
-
-#: gtkpod.glade:4240
-msgid "Auto Store"
-msgstr ""
-
-#: gtkpod.glade:4285 gtkpod.glade:4331
-msgid "Please refer to the notice below."
-msgstr ""
-
-#: gtkpod.glade:4563
-msgid "Sort tracks according to: "
-msgstr ""
-
-#: gtkpod.glade:4593
-msgid ""
-"You can also use the table headers, but this allows you to sort according to "
-"a column that is not displayed."
-msgstr ""
-
-#: gtkpod.glade:4629
-msgid ""
-"If checked, sorting will be case sensitive. Please note that case sensitive "
-"sorting will not work well with most charsets."
-msgstr ""
-
-#: gtkpod.glade:4631
-msgid "Sorting case sensitive"
-msgstr ""
-
-#: gtkpod.glade:4677
-msgid "<b>Ignore Frequent Words</b>"
-msgstr ""
-
-#: gtkpod.glade:4769
-msgid "Ignore these words when at the beginning of the following fields:"
-msgstr ""
-
-#: gtkpod.glade:5040
-msgid "gtkpod Info"
-msgstr ""
-
-#: gtkpod.glade:5339 gtkpod.glade:5414 gtkpod.glade:5439 gtkpod.glade:6065
-#: gtkpod.glade:6198
-msgid "      "
-msgstr ""
-
-#: gtkpod.glade:5692
-msgid "Number of tracks"
-msgstr ""
-
-#: gtkpod.glade:5718
-msgid "Play time"
-msgstr ""
-
-#: gtkpod.glade:5745
-msgid "File size"
-msgstr ""
-
-#: gtkpod.glade:5771
-msgid "Number of playlists"
-msgstr ""
-
-#: gtkpod.glade:5797
-msgid "Deleted tracks"
-msgstr ""
-
-#: gtkpod.glade:5823
-msgid "File size (deleted)"
-msgstr ""
-
-#: gtkpod.glade:5849
-msgid "Non-transferred tracks"
-msgstr ""
-
-#: gtkpod.glade:5875
-msgid "File size (non-transferred)"
-msgstr ""
-
-#: gtkpod.glade:5901
-msgid "Effective free space"
-msgstr ""
-
-#: gtkpod.glade:5927
-msgid ""
-"Total\n"
-"(iPod)"
-msgstr ""
-
-#: gtkpod.glade:5955
-msgid ""
-"Selected\n"
-"Playlist"
-msgstr ""
-
-#: gtkpod.glade:5983
-msgid ""
-"Displayed\n"
-"Tracks"
-msgstr ""
-
-#: gtkpod.glade:6011
-msgid ""
-"Selected\n"
-"Tracks"
-msgstr ""
-
-#: gtkpod.glade:6039
-msgid ""
-"Total\n"
-"(local)"
-msgstr ""
-
-#: gtkpod.glade:6436
-msgid "label21"
-msgstr ""
-
-#: gtkpod.glade:6527
-msgid "Never show this dialogue again"
-msgstr ""
-
-#: gtkpod.glade:6572 gtkpod.glade:6898
-msgid "window1"
-msgstr ""
-
-#: gtkpod.glade:6629
-msgid "_M3U"
-msgstr ""
-
-#: gtkpod.glade:6648
-msgid "_PLS"
-msgstr ""
-
-#: gtkpod.glade:6686
-msgid ""
-"If available, the local copy of the track is referenced in the playlist. "
-"Otherwise the file on the iPod is used."
-msgstr ""
-
-#: gtkpod.glade:6688
-msgid "_Prefer Local"
-msgstr ""
-
-#: gtkpod.glade:6706
-msgid ""
-"The local copy of the track is referenced in the playlist. If the track is "
-"not available locally, an error message is displayed."
-msgstr ""
-
-#: gtkpod.glade:6708
-msgid "_Local"
-msgstr ""
-
-#: gtkpod.glade:6727
-msgid "The track on the iPod is referenced in the playlist file."
-msgstr ""
-
-#: gtkpod.glade:6729
-msgid "_iPod"
-msgstr ""
-
-#: gtkpod.glade:6762
-msgid "Playlist type:"
-msgstr ""
-
-#: gtkpod.glade:6787
-msgid "Source:"
-msgstr ""
-
-#: gtkpod.glade:6826
-msgid "Template for info field: "
-msgstr ""
-
-#: gtkpod.glade:6847
-msgid ""
-"Determines how the string for the info field should be constructed, e.g '%a/%"
-"A/%T - %t.mp3' or '%o'.  You can separate several templates by semicolons -- "
-"gtkpod will determine which one to use by the filename extension given. "
-"Artist: %a, album: %A, composer: %c, title: %t, genre: %G, track nr: %T, CD "
-"nr: %C, year: %Y, original filename (requires extended information file): %"
-"o, the character '%': %%."
-msgstr ""
-
-#: gtkpod.glade:6878 gtkpod.glade:7108
-msgid "gtkpod options"
-msgstr ""
-
-#: gtkpod.glade:6934
-msgid "Filename Format: "
-msgstr ""
-
-#: gtkpod.glade:6955
-msgid ""
-"Determines the filename of tracks you copy from the iPod, e.g '%a/%A/%T - %t."
-"mp3' or '%o'.  You can separate several patterns by semicolons -- gtkpod "
-"will determine which one to use by the filename extension given. Artist: %a, "
-"album: %A, composer: %c, title: %t, genre: %G, track nr: %T, CD nr: %C, "
-"year: %Y, original filename (requires extended information file): %o, "
-"current playlist: %p, the character '%': %%."
-msgstr ""
-
-#: gtkpod.glade:6960
-msgid " "
-msgstr ""
-
-#: gtkpod.glade:6982
-msgid ""
-"Normally the charset specified when first importing the track will be used "
-"for the filename. If you set this option you can set a different charset "
-"with the charset selector (Preferences/'Adding/Updating/Syncing'). Note: the "
-"charset info is stored in the extended information file (see "
-"Preferences/'Writing of the iTunesDB'). Tracks imported before V0.51 will "
-"have no charset stored. Instead the charset specified will be used."
-msgstr ""
-
-#: gtkpod.glade:6984
-msgid ""
-"Use selected charset (Preferences/'Adding/Updating/ Syncing')\n"
-"for this filename."
-msgstr ""
-
-#: gtkpod.glade:7003
-msgid ""
-"When copying from iPod no check is performed on whether the destination file "
-"exists. Enabling this option will make gtkpod check whether the length of "
-"the destination file is the same as the file in the iPod. If so the file is "
-"skipped, allowing a quick sync of the iPod's contents."
-msgstr ""
-
-#: gtkpod.glade:7005
-msgid "Check for existing files when copying from iPod."
-msgstr ""
-
-#: gtkpod.glade:7169
-msgid "Playlist name:"
-msgstr ""
-
-#: gtkpod.glade:7234
-msgid "Match al_l of the following"
-msgstr ""
-
-#: gtkpod.glade:7253
-msgid "Match an_y of the following"
-msgstr ""
-
-#: gtkpod.glade:7273
-msgid "_Ignore rules"
-msgstr ""
-
-#: gtkpod.glade:7343
-msgid "Rules"
-msgstr ""
-
-#: gtkpod.glade:7376
-msgid "_Limit to"
-msgstr ""
-
-#: gtkpod.glade:7425
-msgid "   Sort by:"
-msgstr ""
-
-#: gtkpod.glade:7471
-msgid "Match only _checked tracks"
-msgstr ""
-
-#: gtkpod.glade:7503
-msgid "Live _updating"
-msgstr ""
-
-#: gtkpod.glade:7594
-msgid "Preferences"
-msgstr ""
-
-#: gtkpod.glade:7655
-msgid "<b>Import</b>"
-msgstr ""
-
-#: gtkpod.glade:7715
-msgid "iPod Mount _Point:"
-msgstr ""
-
-#: gtkpod.glade:7737
-msgid ""
-"Where you mounted your iPod's filesystem. Usually '/mnt/ipod/' or similar."
-msgstr ""
-
-#: gtkpod.glade:7765
-msgid ""
-"On startup gtkpod will call 'mount <ipod mountpoint>', on exit a 'umount "
-"<ipod mountpoint>' call is carried out. For more complicated arrangements "
-"please use the ~/.gtkpod/gtkpod.in and ~/.gtkpod/gtkpod.out scripts."
-msgstr ""
-
-#: gtkpod.glade:7767
-msgid "Handle mounting/unmounting of iPod drive"
-msgstr ""
-
-#: gtkpod.glade:7787
-msgid "Automatically import iTunesDB on startup"
-msgstr ""
-
-#: gtkpod.glade:7833
-msgid "<b>Adding/Updating/Syncing</b>"
-msgstr ""
-
-#: gtkpod.glade:7893
-msgid "_Encoding (ID3, files):"
-msgstr ""
-
-#: gtkpod.glade:7924
-msgid ""
-"gtkpod expects the ID3 tags and the filenames to be in the encoding "
-"specified here. You can change it for consecutive 'Add Files' and 'Add Dirs' "
-"operation. 'System Charset' is the charset used by your current locale."
-msgstr ""
-
-#: gtkpod.glade:7961
-msgid ""
-"Normally the charset specified when first importing the track will be used "
-"to update the track information. If you have chosen a wrong charset when "
-"first importing a track and want to correct it using the 'Update Track' "
-"function, you must check this option. Note: the charset info is stored in "
-"the extended information file (see 'Writing of iTunesDB' below) and tracks "
-"imported before V0.51 will have no charset stored. Instead the charset "
-"specified above will be used then."
-msgstr ""
-
-#: gtkpod.glade:7963
-msgid ""
-"Use selected encoding also when updating \n"
-"or syncing tracks"
-msgstr ""
-
-#: gtkpod.glade:7983
-msgid "If you check this, gtkpod will descend into subdirectories recursively."
-msgstr ""
-
-#: gtkpod.glade:7985
-msgid "Add directories recursively"
-msgstr ""
-
-#: gtkpod.glade:8004
-msgid "Duplicate Recognition is based on a (modified) md5 hash over the file."
-msgstr ""
-
-#: gtkpod.glade:8006
-msgid "Don't allow file duplication"
-msgstr ""
-
-#: gtkpod.glade:8052
-msgid ""
-"Display the list of duplicates that have been detected after adding files."
-msgstr ""
-
-#: gtkpod.glade:8054
-msgid "Display info about detected duplicates"
-msgstr ""
-
-#: gtkpod.glade:8080
-msgid ""
-"If the filename (full path) of an existing track matches that of a track to "
-"be added, this option allows you to update the information about the "
-"existing track rather than just skipping the track altogether. No update "
-"will take place if the file hasn't changed and you have selected the 'Don't "
-"allow file duplication' option above."
-msgstr ""
-
-#: gtkpod.glade:8082
-msgid ""
-"When adding dirs/files, update information of\n"
-"existing tracks with identical filenames"
-msgstr ""
-
-#: gtkpod.glade:8129
-msgid "Display a list of tracks that could actually be updated."
-msgstr ""
-
-#: gtkpod.glade:8131
-msgid "Display info about updated tracks"
-msgstr ""
-
-#: gtkpod.glade:8184
-msgid "Display a list of tracks that could not be updated."
-msgstr ""
-
-#: gtkpod.glade:8186
-msgid "Display info about non-updated tracks"
-msgstr ""
-
-#: gtkpod.glade:8212
-msgid "When syncing directories"
-msgstr ""
-
-#: gtkpod.glade:8267
-msgid "Confirm lists of directories"
-msgstr ""
-
-#: gtkpod.glade:8286
-msgid ""
-"If you check this option, tracks that have been removed from the synced "
-"directories will be removed from the iPod as well."
-msgstr ""
-
-#: gtkpod.glade:8288
-msgid "Delete tracks that have been removed"
-msgstr ""
-
-#: gtkpod.glade:8307
-msgid "This is the same option as in 'Edit/Delete Confirmation'"
-msgstr ""
-
-#: gtkpod.glade:8309
-msgid "Confirm before removing tracks"
-msgstr ""
-
-#: gtkpod.glade:8369
-msgid "<b>Sync</b>"
-msgstr ""
-
-#: gtkpod.glade:8417
-msgid ""
-"Highly recommended for faster import when taking advantage of the "
-"duplication recognition. Also, having the PC filenames allows writing "
-"changed ID3 tags to disk, and even to reconstruct your ipod's contents in "
-"case of file system corruption (change the \"transferred=\" entries in your "
-"backuped database)."
-msgstr ""
-
-#: gtkpod.glade:8419
-msgid ""
-"Write extended information (PC filenames,\n"
-" MD5 hashes, encoding). Recommended."
-msgstr ""
-
-#: gtkpod.glade:8463 gtkpod.glade:14970
-msgid "_General"
-msgstr ""
-
-#: gtkpod.glade:8495
-msgid "<b>Tag Reading</b>"
-msgstr ""
-
-#: gtkpod.glade:8550
-msgid "Read tags from file contents (e.g. ID3 tags in MP3 files)"
-msgstr ""
-
-#: gtkpod.glade:8569 gtkpod.glade:8906
-msgid ""
-"artist: %a, album: %A, composer: %c, title: %t, genre: %G, track nr: %T, CD "
-"nr: %C, year: %Y, skip data: %*, the character '%': %%. You can separate "
-"several templates by a ';'. The first one matching the filename will be "
-"used. Example: '%a - %A/%T %t.mp3;%t.wav'."
-msgstr ""
-
-#: gtkpod.glade:8571
-msgid "Use this template to parse filename for tag information:"
-msgstr ""
-
-#: gtkpod.glade:8644
-msgid "Overwrite tags that are already set"
-msgstr ""
-
-#: gtkpod.glade:8677
-msgid ""
-"As a last resort set the following tags to the\n"
-"filename if they are (still) empty:"
-msgstr ""
-
-#: gtkpod.glade:8852
-msgid "<b>Artwork</b>"
-msgstr ""
-
-#: gtkpod.glade:8908
-msgid "Add artwork from file using the following template"
-msgstr ""
-
-#: gtkpod.glade:8960
-msgid ""
-"Determines the name of the file with the cover art. You can separate several "
-"patterns by semicolons which will be tried in order. Artist: %a, album: %A, "
-"composer: %c, title: %t, genre: %G, track nr: %T, CD nr: %C, year: %Y, "
-"original filename (requires extended information file): %o, original "
-"filename without file extension: %O, current playlist: %p, the character "
-"'%': %%."
-msgstr ""
-
-#: gtkpod.glade:8981
-msgid "<b>Examples</b>"
-msgstr ""
-
-#: gtkpod.glade:9011
-msgid "folder.jpg"
-msgstr ""
-
-#: gtkpod.glade:9035
-msgid "folder"
-msgstr ""
-
-#: gtkpod.glade:9059
-msgid "../%A.jpg"
-msgstr ""
-
-#: gtkpod.glade:9083
-msgid "%A"
-msgstr ""
-
-#: gtkpod.glade:9107
-msgid "Use <i>folder.jpg</i> as cover art."
-msgstr ""
-
-#: gtkpod.glade:9131
-msgid "Use <i>folder.jpg</i>, <i>folder.png</i>..."
-msgstr ""
-
-#: gtkpod.glade:9155
-msgid "Use <i>&lt;Album&gt;.jpg</i> in the parent directory"
-msgstr ""
-
-#: gtkpod.glade:9179
-msgid "Use <i>&lt;Album&gt;.jpg</i>, <i>&lt;Album&gt;.png</i>..."
-msgstr ""
-
-#: gtkpod.glade:9203
-msgid "folder.jpg;%a.jpg"
-msgstr ""
-
-#: gtkpod.glade:9227
-msgid "First try <i>folder.jpg</i>, then <i>&lt;artist&gt;.jpg</i>"
-msgstr ""
-
-#: gtkpod.glade:9311
-msgid "<b>mserv</b>"
-msgstr ""
-
-#: gtkpod.glade:9365 gtkpod.glade:9579
-msgid "Currently only rating is supported."
-msgstr ""
-
-#: gtkpod.glade:9367
-msgid "Use mserv database to fill additional information"
-msgstr ""
-
-#: gtkpod.glade:9395
-msgid "Music Root:"
-msgstr ""
-
-#: gtkpod.glade:9419
-msgid "mserv database lookup will be done for music in this directory."
-msgstr ""
-
-#: gtkpod.glade:9441
-msgid "mserv Root:"
-msgstr ""
-
-#: gtkpod.glade:9465
-msgid "Root directory of mserv database (trackinfo root)."
-msgstr ""
-
-#: gtkpod.glade:9487
-msgid "Username:"
-msgstr ""
-
-#: gtkpod.glade:9511
-msgid "Username to be used for mserv database lookup."
-msgstr ""
-
-#: gtkpod.glade:9535 gtkpod.glade:9554 gtkpod.glade:12102 gtkpod.glade:12172
-#: gtkpod.glade:12317 gtkpod.glade:12491 gtkpod.glade:12556 gtkpod.glade:12621
-msgid "Browse"
-msgstr ""
-
-#: gtkpod.glade:9581
-msgid "Show information about problems when accessing mserv"
-msgstr ""
-
-#: gtkpod.glade:9627
-msgid "_Track Info"
-msgstr ""
-
-#: gtkpod.glade:9673
-msgid "<b>Displayed Track Attributes</b>"
-msgstr ""
-
-#: gtkpod.glade:10460
-msgid "<b>Sort Tabs</b>"
-msgstr ""
-
-#: gtkpod.glade:10514
-msgid "Keeps all compilation CDs grouped together in the artists sort tab."
-msgstr ""
-
-#: gtkpod.glade:10516
-msgid "Group artists on compilation CDs"
-msgstr ""
-
-#: gtkpod.glade:10541
-msgid "_Number of sort tabs:"
-msgstr ""
-
-#: gtkpod.glade:10617
-msgid "<b>Automatically select...</b>"
-msgstr ""
-
-#: gtkpod.glade:10671
-msgid ""
-"If you don't select the master playlist automatically, the initial database "
-"import is much faster because the display dosn't have to be updated."
-msgstr ""
-
-#: gtkpod.glade:10673
-msgid "...master playlist"
-msgstr ""
-
-#: gtkpod.glade:10693
-msgid "...entry 'All' in sort tab..."
-msgstr ""
-
-#: gtkpod.glade:10774
-msgid "<b>Tooltips</b>"
-msgstr ""
-
-#: gtkpod.glade:10829
-msgid "Display tooltips in main window"
-msgstr ""
-
-#: gtkpod.glade:10849
-msgid "Display tooltips in prefs window"
-msgstr ""
-
-#: gtkpod.glade:10895
-msgid "<b>Toolbar</b>"
-msgstr ""
-
-#: gtkpod.glade:10950
-msgid "Display toolbar..."
-msgstr ""
-
-#: gtkpod.glade:11003
-msgid "...as icons"
-msgstr ""
-
-#: gtkpod.glade:11023
-msgid "...as text"
-msgstr ""
-
-#: gtkpod.glade:11044
-msgid "...both as icons and text"
-msgstr ""
-
-#: gtkpod.glade:11105
-msgid "<b>Misc</b>"
-msgstr ""
-
-#: gtkpod.glade:11159
-msgid ""
-"It is much faster to sort the display after all tracks have been added. Some "
-"people might feel irritated by this behaviour and should uncheck this option."
-msgstr ""
-
-#: gtkpod.glade:11161
-msgid ""
-"Temporarily disable sorting when changing playlist\n"
-"or tab entry (faster!)"
-msgstr ""
-
-#: gtkpod.glade:11181
-msgid ""
-"The display can be blocked after changing a selection. The display update is "
-"faster, but you have to wait until it's finished. When using this option, "
-"sorting is also temporarily disabled (see option above)."
-msgstr ""
-
-#: gtkpod.glade:11183
-msgid ""
-"Block display when changing playlist or tab\n"
-" entry (faster!)"
-msgstr ""
-
-#: gtkpod.glade:11203
-msgid "This option will be re-activated when you upgrade gtkpod."
-msgstr ""
-
-#: gtkpod.glade:11205
-msgid "Display messages and warnings at startup"
-msgstr ""
-
-#: gtkpod.glade:11267
-msgid "Advanced Sorting Options"
-msgstr ""
-
-#: gtkpod.glade:11362
-msgid "<b>Track Editing</b>"
-msgstr ""
-
-#: gtkpod.glade:11416
-msgid ""
-"The tags are written to the files on your harddrive and on the ipod (if "
-"available)."
-msgstr ""
-
-#: gtkpod.glade:11418
-msgid "Write ID3 tags to disk when modified in gtkpod"
-msgstr ""
-
-#: gtkpod.glade:11470
-msgid ""
-"Normally the charset specified when first importing the track will be used "
-"to write the tags. If you have chosen a wrong charset when first importing a "
-"track, you should select this option along with the correct charset.  Note: "
-"uses the extended information file to store the charset information (see "
-"'Writing of the iTunesDB' on the 'Input/Output' page) and tracks imported "
-"before V0.51 will have no charset stored -- the charset specified on the "
-"'Input/Output' page will be used."
-msgstr ""
-
-#: gtkpod.glade:11472
-msgid ""
-"Use selected encoding (on the 'General' page)\n"
-"when writing tags"
-msgstr ""
-
-#: gtkpod.glade:11492
-msgid ""
-"This is the way to go, but maybe not all programs support it yet. ID3v2.4 "
-"uses unicode to store the tags, so you won't have to worry about charsets "
-"any more. gtkpod will use UTF8 encoding as this will not increase the size "
-"of pure ASCII tags. ID3v2.2/4 tags will also be written if they are already "
-"present in the file to write to."
-msgstr ""
-
-#: gtkpod.glade:11494
-msgid "Always write ID3v2.4 tags (only applies to MP3)"
-msgstr ""
-
-#: gtkpod.glade:11527
-msgid ""
-"If you select several tracks in the track list and edit a tag of the first "
-"track, the tags in the other tracks are updated as well."
-msgstr ""
-
-#: gtkpod.glade:11529
-msgid "Use 'Multi-Edit' for tracks selections"
-msgstr ""
-
-#: gtkpod.glade:11575
-msgid ""
-"Usually you don't want to set the title of several tracks to the same text. "
-"This option might avoid unwanted results (especially since there is no "
-"'undo' yet)."
-msgstr ""
-
-#: gtkpod.glade:11577
-msgid "Use 'Multi-Edit' also for title field"
-msgstr ""
-
-#: gtkpod.glade:11630
-msgid "<b>Auto-Generated Playlists</b>"
-msgstr ""
-
-#: gtkpod.glade:11690
-msgid "Number of tracks in generated playlists:"
-msgstr ""
-
-#: gtkpod.glade:11711
-msgid ""
-"Number of tracks in the generated playlists 'Most Often Listened', 'Best "
-"Rated' and 'Most Recently Played'. Choose '0' for 'no limit'."
-msgstr ""
-
-#: gtkpod.glade:11740
-msgid "Also include tracks never played in \"Best Rated\" playlist"
-msgstr ""
-
-#: gtkpod.glade:11786
-msgid "<b>Delete Confirmation</b>"
-msgstr ""
-
-#: gtkpod.glade:11841
-msgid "Before removing playlists or tracks from a playlist"
-msgstr ""
-
-#: gtkpod.glade:11861
-msgid "Before removing tracks from the iPod"
-msgstr ""
-
-#: gtkpod.glade:11881
-msgid "Before removing tracks from the harddisk"
-msgstr ""
-
-#: gtkpod.glade:11901
-msgid "Before removing tracks from the local database"
-msgstr ""
-
-#: gtkpod.glade:11921
-msgid ""
-"Before removing tracks completely when\n"
-"synchronizing directories"
-msgstr ""
-
-#: gtkpod.glade:12000
-msgid "<b>Play</b>"
-msgstr ""
-
-#: gtkpod.glade:12060
-msgid "Command for 'Play now':"
-msgstr ""
-
-#: gtkpod.glade:12081
-msgid ""
-"For example, 'xmms %s' will clear xmms' current playlist, add the selected "
-"tracks and start playing."
-msgstr ""
-
-#: gtkpod.glade:12130
-msgid "Command for 'Enqueue':"
-msgstr ""
-
-#: gtkpod.glade:12151
-msgid ""
-"For example, 'xmms -e %s' will append (enqueue) the selected tracks to xmms' "
-"current playlist."
-msgstr ""
-
-#: gtkpod.glade:12221
-msgid "<b>Volume Normalization</b>"
-msgstr ""
-
-#: gtkpod.glade:12275
-msgid "'mp3gain' executable:"
-msgstr ""
-
-#: gtkpod.glade:12296
-msgid ""
-"You only need to specify this if your 'mp3gain' executable is not in your "
-"default path. Example: '/usr/local/foo/mp3gain'. mp3gain will write the "
-"calculated gain value back to the file -- if you don't want this, set this "
-"entry to /bin/true or similar. mp3gain is only called if appropriate tags "
-"are not already set by your encoder. E.g. lame version 0.95 already writes "
-"the gain values into tags. The exact conversion factor between mp3gain's "
-"gain value and iPod's volume tag is not known yet -- your input is "
-"appreciated."
-msgstr ""
-
-#: gtkpod.glade:12359
-msgid "<b>Synchronization</b>"
-msgstr ""
-
-#: gtkpod.glade:12444
-msgid "Contacts sync command:"
-msgstr ""
-
-#: gtkpod.glade:12468 gtkpod.glade:12533 gtkpod.glade:12598
-msgid ""
-"Specify exact path including command line options. '%i' will be replaced "
-"with the mount point of the iPod."
-msgstr ""
-
-#: gtkpod.glade:12509
-msgid "Calendar sync command:"
-msgstr ""
-
-#: gtkpod.glade:12574
-msgid "Notes sync command:"
-msgstr ""
-
-#: gtkpod.glade:12647
-msgid "Call automatically when synchronizing iTunesDB"
-msgstr ""
-
-#: gtkpod.glade:12725
-msgid "<b>Podcast subscriptions</b>"
-msgstr ""
-
-#: gtkpod.glade:12800
-msgid "Add"
-msgstr ""
-
-#: gtkpod.glade:12834
-msgid "Delete"
-msgstr ""
-
-#: gtkpod.glade:12900
-msgid "Name: "
-msgstr ""
-
-#: gtkpod.glade:12924
-msgid "URL: "
-msgstr ""
-
-#: gtkpod.glade:13017
-msgid "<b>File options</b>"
-msgstr ""
-
-#: gtkpod.glade:13077
-msgid "Save podcasts to: "
-msgstr ""
-
-#: gtkpod.glade:13132
-msgid "Delete from computer when "
-msgstr ""
-
-#: gtkpod.glade:13172 gtkpod.glade:13474
-msgid " days old"
-msgstr ""
-
-#: gtkpod.glade:13201
-msgid "Delete once copied to iPod"
-msgstr ""
-
-#: gtkpod.glade:13227
-msgid "Automatically fetch podcasts on startup"
-msgstr ""
-
-#: gtkpod.glade:13254
-msgid "Create podcast logfile at:"
-msgstr ""
-
-#: gtkpod.glade:13354
-msgid "<b>iPod options</b>"
-msgstr ""
-
-#: gtkpod.glade:13409
-msgid "Automatically sync to iPod"
-msgstr ""
-
-#: gtkpod.glade:13435
-msgid "Delete from iPod when "
-msgstr ""
-
-#: gtkpod.glade:13503
-msgid "Delete from iPod if podcast has been played"
-msgstr ""
-
-#: gtkpod.glade:13523
-msgid "Include broadcast date in track title"
-msgstr ""
-
-#: gtkpod.glade:13543
-msgid "Set all podcast genres to 'Podcast'"
-msgstr ""
-
-#: gtkpod.glade:13589 gtkpod.glade:15342
-msgid "_Podcasts"
-msgstr ""
-
-#: gtkpod.glade:13754
-msgid ""
-"\n"
-"\n"
-msgstr ""
-
-#: gtkpod.glade:13788
-msgid "Abort selected"
-msgstr ""
-
-#: gtkpod.glade:13804
-msgid "Abort current"
-msgstr ""
-
-#: gtkpod.glade:13820
-msgid "Abort all"
-msgstr ""
-
-#: gtkpod.glade:13844
-msgid "Details"
-msgstr ""
-
-#: gtkpod.glade:13905
-msgid "Cover"
-msgstr ""
-
-#: gtkpod.glade:13990
-msgid "Set Cover Art"
-msgstr ""
-
-#: gtkpod.glade:14023
-msgid ""
-"If you check this, information (cover art and meta information) changed for "
-"this track will be copied to all other selected tracks as well. Use with "
-"care."
-msgstr ""
-
-#: gtkpod.glade:14069
-msgid ""
-"Change all tracks\n"
-"simultaneously"
-msgstr ""
-
-#: gtkpod.glade:14157
-msgid "Remove Cover Art"
-msgstr ""
-
-#: gtkpod.glade:16246
-msgid "_Other"
-msgstr ""
-
-#: gtkpod.glade:16536
-msgid "_Undo All"
-msgstr ""
-
-#: gtkpod.glade:16606
-msgid "_Undo Track"
-msgstr ""

Modified: gtkpod/branches/upstream/current/po/he.gmo
===================================================================
(Binary files differ)

Modified: gtkpod/branches/upstream/current/po/he.po
===================================================================
--- gtkpod/branches/upstream/current/po/he.po	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/po/he.po	2006-09-30 00:00:17 UTC (rev 139)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gtkpod\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-03-05 23:01+0900\n"
+"POT-Creation-Date: 2006-09-24 23:08+0900\n"
 "PO-Revision-Date: 2005-08-02 21:19+0300\n"
 "Last-Translator: Assaf Gillat\n"
 "Language-Team: HEBREW <kde-il at yahoogroups.com>\n"
@@ -17,6 +17,1838 @@
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
 "X-Generator: KBabel 1.9.1\n"
 
+#: gtkpod.glade:7
+msgid "gtkpod"
+msgstr "gtkpod"
+
+#: gtkpod.glade:40
+msgid "_File"
+msgstr "_קובץ"
+
+#: gtkpod.glade:49
+#, fuzzy
+msgid "_Load iPod(s)"
+msgstr "_iPod"
+
+#: gtkpod.glade:69
+msgid "_Save Changes"
+msgstr ""
+
+#: gtkpod.glade:90
+msgid "Add _Files"
+msgstr "הוספת _קבצים"
+
+#: gtkpod.glade:111
+msgid "Add _Directory"
+msgstr "הוספת _תיקיות"
+
+#: gtkpod.glade:132
+msgid "Add _Playlist"
+msgstr "הוספת _רשימות השמעה"
+
+#: gtkpod.glade:159
+msgid "_Update Tracks from File"
+msgstr "_סנכרון רצועות מקובץ"
+
+#: gtkpod.glade:180 gtkpod.glade:232 gtkpod.glade:311 gtkpod.glade:363
+#: gtkpod.glade:1092 gtkpod.glade:1144 gtkpod.glade:1190
+msgid "Selected _Playlist"
+msgstr "_רשימות השמעה נבחרות"
+
+#: gtkpod.glade:189 gtkpod.glade:241 gtkpod.glade:320 gtkpod.glade:372
+#: gtkpod.glade:1101 gtkpod.glade:1153 gtkpod.glade:1199
+msgid "Selected Tab _Entry"
+msgstr "רשומות _כרטיסיה נבחרות"
+
+#: gtkpod.glade:198 gtkpod.glade:250 gtkpod.glade:329 gtkpod.glade:381
+#: gtkpod.glade:498 gtkpod.glade:1110 gtkpod.glade:1162 gtkpod.glade:1208
+msgid "Selected _Tracks"
+msgstr "ר_צועות נבחרות"
+
+#: gtkpod.glade:211
+msgid "Update _mserv Data from File"
+msgstr "עדכון _נתוני mserv מקובץ"
+
+#: gtkpod.glade:263
+#, fuzzy
+msgid "_Synchronize Playlist"
+msgstr "סנכרן הכל"
+
+#: gtkpod.glade:290
+msgid "_Export Tracks from Database"
+msgstr "_ייצא רצועות ממסד הנתונים"
+
+#: gtkpod.glade:342
+msgid "Create _Playlist File"
+msgstr "יצירת קובץ _רשימת השמעה"
+
+#: gtkpod.glade:400
+msgid "_Create iPod's Directories"
+msgstr "_יצירת תיקיות iPod"
+
+#: gtkpod.glade:421
+msgid ""
+"Find orphan files (files with no track info in DB) and dangling tracks "
+"(tracks with no corresponding files on iPOD)"
+msgstr ""
+"מצא קבצים יתומים (קבצים ללא מידע רצועה במסד הנתונים) ורצועות מתנדנדות "
+"(רצועות ללא קבצים מתאימים על ה-iPod)"
+
+#: gtkpod.glade:422
+msgid "_Check iPod's Files"
+msgstr "_בדיקת קבצי iPod"
+
+#: gtkpod.glade:450 gtkpod.glade:12687
+msgid "_Edit"
+msgstr "_עריכה"
+
+#: gtkpod.glade:459 src/context_menus.c:480
+msgid "Edit Track Details"
+msgstr ""
+
+#: gtkpod.glade:480
+#, fuzzy
+msgid "Tracks in Selected _Playlist"
+msgstr "_רשימות השמעה נבחרות"
+
+#: gtkpod.glade:489
+#, fuzzy
+msgid "Tracks in Selected Tab _Entry"
+msgstr "רשומות _כרטיסיה נבחרות"
+
+#: gtkpod.glade:511 src/context_menus.c:407
+msgid "Edit Smart Playlist"
+msgstr "ערוך רשימת השמעה חכמה"
+
+#: gtkpod.glade:520
+msgid "_Delete"
+msgstr ""
+
+#: gtkpod.glade:541
+#, fuzzy
+msgid "Selected playlist"
+msgstr "_רשימות השמעה נבחרות"
+
+#: gtkpod.glade:550
+#, fuzzy
+msgid "Selected playlist including tracks from iPod"
+msgstr "נמחקה רשימת השמעה '%s' כולל רצועה %d"
+
+#: gtkpod.glade:559
+#, fuzzy
+msgid "Selected playlist including tracks from database"
+msgstr "מחק כולל רצועות (מסד נתונים)"
+
+#: gtkpod.glade:568
+#, fuzzy
+msgid "Selected playlist including tracks from harddisk"
+msgstr "נמחקה רשימת השמעה '%s' כולל רצועה %d מהדיסק הקשיח"
+
+#: gtkpod.glade:583
+#, fuzzy
+msgid "Selected filter tab entry from playlist"
+msgstr "נמחקה %d רצועה מרשימת ההשמעה '%s'"
+
+#: gtkpod.glade:592
+#, fuzzy
+msgid "Selected filter tab entry from iPod"
+msgstr "הרצועה נמחקה לגמרי מה-iPod"
+
+#: gtkpod.glade:601
+#, fuzzy
+msgid "Selected filter tab entry from database"
+msgstr "נמחקה רצועה ממסד הנתונים המקומי"
+
+#: gtkpod.glade:610
+#, fuzzy
+msgid "Selected filter tab entry from harddisk"
+msgstr "נמחקה רצועה אחת מהדיסק הקשיח"
+
+#: gtkpod.glade:625
+#, fuzzy
+msgid "Selected tracks from playlist"
+msgstr "נמחקה %d רצועה מרשימת ההשמעה '%s'"
+
+#: gtkpod.glade:634
+#, fuzzy
+msgid "Selected tracks from iPod"
+msgstr "הרצועה נמחקה לגמרי מה-iPod"
+
+#: gtkpod.glade:643
+#, fuzzy
+msgid "Selected tracks from database"
+msgstr "נמחקה רצועה ממסד הנתונים המקומי"
+
+#: gtkpod.glade:652
+#, fuzzy
+msgid "Selected tracks from harddisk"
+msgstr "נמחקה רצועה אחת מהדיסק הקשיח"
+
+#: gtkpod.glade:671
+msgid "_Create Playlists"
+msgstr "_יצירת רשימות השמעה"
+
+#: gtkpod.glade:692
+msgid "Empty Playlist"
+msgstr "רשימת השמעה ריקה"
+
+#: gtkpod.glade:701 gtkpod.glade:7379 src/misc_playlist.c:97
+#: src/repository.c:1359
+msgid "Smart Playlist"
+msgstr "רשימת השמעה חכמה"
+
+#: gtkpod.glade:716
+msgid "Random Playlist from Displayed Tracks"
+msgstr "רשימת השמעה אקראית מהרצועות הנראות"
+
+#: gtkpod.glade:725
+msgid "Containing Displayed Tracks"
+msgstr "המכילה רצועות נראות"
+
+#: gtkpod.glade:734
+msgid "Containing Selected Tracks"
+msgstr "המכילה רצועות נבחרות"
+
+#: gtkpod.glade:743
+msgid "One for each Artist"
+msgstr "אחת לכל אמן"
+
+#: gtkpod.glade:752
+msgid "One for each Album"
+msgstr "אחת לכל כותר"
+
+#: gtkpod.glade:761
+msgid "One for each Genre"
+msgstr "אחת לכל סגנון"
+
+#: gtkpod.glade:770
+msgid "One for each Composer"
+msgstr "אחת לכל יוצר"
+
+#: gtkpod.glade:779
+msgid "One for each Year"
+msgstr "אחת לכל שנה"
+
+#: gtkpod.glade:788
+msgid "One for each Rating"
+msgstr "אחת לכל מדרוג"
+
+#: gtkpod.glade:797
+msgid "Best Rated Tracks"
+msgstr "הרצועות המדורגות בראש"
+
+#: gtkpod.glade:806
+msgid "Tracks Most Often Listened To"
+msgstr "הרצועות שהכי מאזינים להן"
+
+#: gtkpod.glade:815
+msgid "Most Recently Played Tracks"
+msgstr "הרצועות שהושמעו הכי לאחרונה"
+
+#: gtkpod.glade:824
+msgid "All Tracks Played Since Last Time"
+msgstr "כל הרצועות שהושמעו מאז הפעם האחרונה"
+
+#: gtkpod.glade:833
+msgid "All Tracks Never Listened To"
+msgstr "כל הרצועות שמעולם לא השמיעו אותן"
+
+#: gtkpod.glade:842
+msgid "All Tracks not Listed in any Playlist"
+msgstr "כל הרצועות שלא מופיעות באף רשימת השמעה"
+
+#: gtkpod.glade:861
+msgid "_Sorting"
+msgstr "_מיון"
+
+#: gtkpod.glade:883
+msgid "Randomize Current Playlist"
+msgstr "יצירת רשימת השמעה אקראית"
+
+#: gtkpod.glade:892
+msgid "_Save Displayed Track Order"
+msgstr "_שמירת סדר רצועות נראות"
+
+#: gtkpod.glade:920
+#, fuzzy
+msgid "Edit Repository/iPod Options"
+msgstr "אפשרויות מיון"
+
+#: gtkpod.glade:941
+#, fuzzy
+msgid "Edit _Preferences"
+msgstr "_עריכת העדפות"
+
+#: gtkpod.glade:967
+msgid "_View"
+msgstr "_תצוגה"
+
+#: gtkpod.glade:976
+msgid "_Toolbar"
+msgstr "_סרגל כלים"
+
+#: gtkpod.glade:986
+msgid "_Tooltips"
+msgstr "_תוויות מידע"
+
+#: gtkpod.glade:996
+msgid "_Info Window"
+msgstr "_חלון מידע"
+
+#: gtkpod.glade:1007
+msgid "_More Sort Tabs"
+msgstr "_יותר כרטיסיות מיון"
+
+#: gtkpod.glade:1028
+msgid "_Less Sort Tabs"
+msgstr "_פחות כרטיסיות מיון"
+
+#: gtkpod.glade:1049
+msgid "_Arrange Sort Tabs"
+msgstr "_סדר כרטיסיות מיון"
+
+#: gtkpod.glade:1062 gtkpod.glade:13297
+msgid "_Tools"
+msgstr "_כלים"
+
+#: gtkpod.glade:1071
+msgid "_Play Now"
+msgstr "_נגן עכשיו"
+
+#: gtkpod.glade:1123
+msgid "_Enqueue"
+msgstr "_הכנס לתור"
+
+#: gtkpod.glade:1181
+msgid "_Normalize Volume"
+msgstr "_נרמל עוצמת קול"
+
+#: gtkpod.glade:1217
+msgid "_Displayed Tracks"
+msgstr "_הראה רצועות"
+
+#: gtkpod.glade:1226
+msgid "_All Tracks"
+msgstr "_כל הרצועות"
+
+#: gtkpod.glade:1235
+msgid "_Newly Added Tracks"
+msgstr "_רצועות חדשות שהוספו"
+
+#: gtkpod.glade:1254
+msgid "Synchronise Contacts, Calendar and Notes"
+msgstr "סנכרן אנשי קשר, יומן ופתקים"
+
+#: gtkpod.glade:1255
+msgid "Synchronize All"
+msgstr "סנכרן הכל"
+
+#: gtkpod.glade:1264
+msgid "Synchronize Contacts"
+msgstr "סנכרן אנשי קשר"
+
+#: gtkpod.glade:1273
+msgid "Synchronize Calendar"
+msgstr "סנכרן יומן"
+
+#: gtkpod.glade:1282
+msgid "Synchronize Notes"
+msgstr "סנכרן פתקים"
+
+#: gtkpod.glade:1295
+msgid "_Help"
+msgstr "_עזרה"
+
+#: gtkpod.glade:1304
+msgid "_About"
+msgstr "_אודות"
+
+#: gtkpod.glade:1344
+msgid ""
+"Try to load contents of all connected iPods. For each iPod a separate "
+"repository must be set up."
+msgstr ""
+
+#: gtkpod.glade:1345
+#, fuzzy
+msgid "Load iPod(s)"
+msgstr "_iPod"
+
+#: gtkpod.glade:1362
+msgid "Write all changes made to the disk and the iPod(s)."
+msgstr ""
+
+#: gtkpod.glade:1363 src/context_menus.c:507
+msgid "Save Changes"
+msgstr ""
+
+#: gtkpod.glade:1380
+msgid "Add Files or Directories"
+msgstr "הוספת קבצים או תיקיות"
+
+#: gtkpod.glade:1381
+msgid "Files"
+msgstr "קבצים"
+
+#: gtkpod.glade:1398
+msgid "Add Directories Recursively"
+msgstr "הוספת תיקיות רקורסיבית"
+
+#: gtkpod.glade:1399
+msgid "Dirs"
+msgstr "תיקיות"
+
+#: gtkpod.glade:1416
+msgid "Add playlist from file"
+msgstr "הוספת רשימת השמעה מקובץ"
+
+#: gtkpod.glade:1417 src/display_spl.c:105
+msgid "Playlist"
+msgstr "רשימת השמעה"
+
+#: gtkpod.glade:1434
+msgid "Create New Playlist"
+msgstr "יצירת רשימת השמעה חדשה"
+
+#: gtkpod.glade:1435
+msgid "New PL"
+msgstr "ר\"ה חדשה"
+
+#: gtkpod.glade:1451
+msgid "Stop Display Update"
+msgstr "עצור עדכון תצוגה"
+
+#: gtkpod.glade:1452
+msgid "Stop"
+msgstr "עצור"
+
+#: gtkpod.glade:1625
+msgid "About gtkpod"
+msgstr "אודות gtkpod"
+
+#: gtkpod.glade:1752
+msgid "Credits"
+msgstr "קרדיט"
+
+#: gtkpod.glade:1810
+msgid "Translators"
+msgstr "מתרגמים"
+
+#: gtkpod.glade:1868
+msgid "special_sorttab -- Don't translate!"
+msgstr "special_sorttab -- Don't translate!"
+
+#: gtkpod.glade:1903
+msgid " Logic: "
+msgstr " לוגיקה:"
+
+#: gtkpod.glade:1929
+msgid "Any (OR)"
+msgstr "או (כל אחד)"
+
+#: gtkpod.glade:1948
+msgid "All (AND)"
+msgstr "וגם (הכל)"
+
+#: gtkpod.glade:2001
+msgid "0"
+msgstr "0"
+
+#: gtkpod.glade:2020
+msgid "1"
+msgstr "1"
+
+#: gtkpod.glade:2039
+msgid "2"
+msgstr "2"
+
+#: gtkpod.glade:2058
+msgid "3"
+msgstr "3"
+
+#: gtkpod.glade:2077
+msgid "4"
+msgstr "4"
+
+#: gtkpod.glade:2096
+msgid "5"
+msgstr "5"
+
+#: gtkpod.glade:2135
+msgid "Select '0' for no lower limit."
+msgstr "בחר '0' עבור ביטול גבול תחתון."
+
+#: gtkpod.glade:2156
+msgid " <= cts <= "
+msgstr " <= cts <= "
+
+#: gtkpod.glade:2181
+msgid "Select '-1' for no upper limit."
+msgstr "בחר '-1' עבור ביטול גבול עליון."
+
+#: gtkpod.glade:2224 gtkpod.glade:2301 gtkpod.glade:2471
+msgid ""
+"'DD/MM/YYYY HH:MM < d < DD/MM/YYYY HH:MM' or similar. Press 'enter' when "
+"finished."
+msgstr ""
+"תבנית 'DD/MM/YYYY HH:MM < d < DD/MM/YYYY HH:MM' או דומה. לחץ 'enter' בסיום."
+
+#: gtkpod.glade:2270 gtkpod.glade:2347 gtkpod.glade:2517 gtkpod.glade:2696
+msgid "Calendar"
+msgstr "יומן"
+
+#: gtkpod.glade:2372
+msgid "Specify interval"
+msgstr "ציין מרווח"
+
+#: gtkpod.glade:2374 src/display_spl.c:98 src/misc_conversion.c:78
+msgid "Playcount"
+msgstr "מספור השמעות"
+
+#: gtkpod.glade:2397 src/display_spl.c:101 src/misc_conversion.c:79
+msgid "Rating"
+msgstr "מדרוג"
+
+#: gtkpod.glade:2420 src/display_songs.c:1951
+msgid "Played"
+msgstr "הושמע"
+
+#: gtkpod.glade:2443 src/display_songs.c:1954
+msgid "Modified"
+msgstr "שונה"
+
+#: gtkpod.glade:2542 src/display_songs.c:1957 src/display_sorttabs.c:3218
+msgid "Added"
+msgstr "הוספו"
+
+#: gtkpod.glade:2587
+msgid "Display tracks that match the criteria entered above."
+msgstr "הצג רצועות המתאימות לקריטריונים המוכנסים למעלה."
+
+#: gtkpod.glade:2630 gtkpod.glade:12009
+msgid "_Display"
+msgstr "_תצוגה"
+
+#: gtkpod.glade:2666
+msgid ""
+"Automatically start displaying tracks that match the criteria entered above. "
+"If not selected, you must press 'Display' to start displaying."
+msgstr ""
+"הצג אוטומטית רצועות שמתאימות לקריטריונים המוכנסים למעלה. אם אפשרות זו לא "
+"נבחרה, חובה עליך ללחוץ 'תצוגה' על מנת להראות את הרצועות."
+
+#: gtkpod.glade:2668
+msgid "Start display automatically"
+msgstr "התחל תצוגה אוטומטית"
+
+#: gtkpod.glade:2743
+msgid "Sorttab: "
+msgstr "כרטיסייה מיון:"
+
+#: gtkpod.glade:2787
+msgid "     "
+msgstr "     "
+
+#: gtkpod.glade:2813
+msgid "Category: "
+msgstr "קטגוריה:"
+
+#: gtkpod.glade:2894
+msgid "Please specify a time interval"
+msgstr "אנא ציין מרווח זמן"
+
+#: gtkpod.glade:2943
+msgid "Lower Margin"
+msgstr "שוליים תחתונים"
+
+#: gtkpod.glade:2994 gtkpod.glade:3208
+msgid "Time:"
+msgstr "זמן:"
+
+#: gtkpod.glade:3037 gtkpod.glade:3251
+msgid ":"
+msgstr ":"
+
+#: gtkpod.glade:3114
+msgid "No lower margin"
+msgstr "ללא שוליים תחתונים"
+
+#: gtkpod.glade:3157
+msgid "Upper margin"
+msgstr "שוליים עליונים"
+
+#: gtkpod.glade:3328
+msgid "No upper margin"
+msgstr "ללא שוליים עליונים"
+
+#: gtkpod.glade:3426
+msgid "Sorting Options"
+msgstr "אפשרויות מיון"
+
+#: gtkpod.glade:3458
+msgid "<b>Sort Order</b>"
+msgstr "<b>סדר מיון</b>"
+
+#: gtkpod.glade:3489 gtkpod.glade:4762 gtkpod.glade:11638 gtkpod.glade:12134
+#: gtkpod.glade:12249
+msgid "    "
+msgstr "    "
+
+#: gtkpod.glade:3521
+msgid ""
+"In order to save the displayed track order to the iPod choose 'Save "
+"Displayed Track Order' from the 'Edit' menu or select 'Auto Store' below."
+msgstr ""
+"על מנת לשמור את סדר הרצועות הנראות אל ה-iPod בחר 'שמור סדר רצועות נראות' "
+"מתפריט ה-'עריכה' או בחר 'שמירה אוטומטית' למטה."
+
+#: gtkpod.glade:3905
+msgid "Ascending"
+msgstr "עולה"
+
+#: gtkpod.glade:3953
+msgid "Descending"
+msgstr "יורד"
+
+#: gtkpod.glade:4001
+msgid "None"
+msgstr "ללא"
+
+#: gtkpod.glade:4048 src/display_playlists.c:2106
+msgid "Playlists"
+msgstr "רשימות השמעה"
+
+#: gtkpod.glade:4097
+msgid "Sorttabs"
+msgstr "כרטיסיות מיון"
+
+#: gtkpod.glade:4146
+msgid "Tracks"
+msgstr "רצועות"
+
+#: gtkpod.glade:4306
+msgid "Auto Store"
+msgstr "שמירה אוטומטית"
+
+#: gtkpod.glade:4349
+msgid "Please refer to the notice below."
+msgstr "הסתכל בבקשה בהודעה למטה."
+
+#: gtkpod.glade:4383 gtkpod.glade:4564 src/details.c:1118
+msgid "n/a"
+msgstr "ל/ז"
+
+#: gtkpod.glade:4613
+msgid "Sort tracks according to: "
+msgstr "מיין רצועות לפי:"
+
+#: gtkpod.glade:4647
+msgid ""
+"You can also use the table headers, but this allows you to sort according to "
+"a column that is not displayed."
+msgstr ""
+"אתה גם יכול להשתמש בכותרות הטבלאות, אבל זה יאפשר לך למיין רק לפי העמודה "
+"המוצגת."
+
+#: gtkpod.glade:4683
+msgid ""
+"If checked, sorting will be case sensitive. Please note that case sensitive "
+"sorting will not work well with most charsets."
+msgstr ""
+"אם יסומן, המיון יבחין בין אותיות קטנות לגדולות. שים לב שהבחנה זאת לא תעבוד "
+"היטב ברוב ערכות התווים."
+
+#: gtkpod.glade:4685
+msgid "Sorting case sensitive"
+msgstr "מיון עם תלות בגודל (case)"
+
+#: gtkpod.glade:4731
+msgid "<b>Ignore Frequent Words</b>"
+msgstr "<b>התעלם ממילים תכופות</b>"
+
+#: gtkpod.glade:4831
+msgid "Ignore these words when at the beginning of the following fields:"
+msgstr "התעלם ממילים אלו כאשר הן מופיעות בתחילת השדות הבאים:"
+
+#: gtkpod.glade:5106
+msgid "gtkpod Info"
+msgstr "מידע gtkpod"
+
+#: gtkpod.glade:5427 gtkpod.glade:5514 gtkpod.glade:5543 gtkpod.glade:6261
+#: gtkpod.glade:6406
+msgid "      "
+msgstr "      "
+
+#: gtkpod.glade:5832
+msgid "Number of tracks"
+msgstr "מספר רצועות"
+
+#: gtkpod.glade:5862
+msgid "Play time"
+msgstr "זמן השמעה"
+
+#: gtkpod.glade:5893
+msgid "File size"
+msgstr "גודל קובץ"
+
+#: gtkpod.glade:5923
+msgid "Number of playlists"
+msgstr "מספר רשימות ההשמעה"
+
+#: gtkpod.glade:5953
+msgid "Deleted tracks"
+msgstr "רצועות נמחקות"
+
+#: gtkpod.glade:5983
+msgid "File size (deleted)"
+msgstr "גודל קובץ (נמחק)"
+
+#: gtkpod.glade:6013
+msgid "Non-transferred tracks"
+msgstr "רצועות לא מועברות"
+
+#: gtkpod.glade:6043
+msgid "File size (non-transferred)"
+msgstr "גודל קובץ (לא-מועבר)"
+
+#: gtkpod.glade:6073
+msgid "Effective free space"
+msgstr "מקום פנוי אפקטיבי"
+
+#: gtkpod.glade:6103
+msgid ""
+"Total\n"
+"(iPod)"
+msgstr ""
+"סך הכל\n"
+"(iPod)"
+
+#: gtkpod.glade:6135
+msgid ""
+"Selected\n"
+"Playlist"
+msgstr ""
+"רשימות השמעה\n"
+"נבחרות"
+
+#: gtkpod.glade:6167
+msgid ""
+"Displayed\n"
+"Tracks"
+msgstr ""
+"רצועות\n"
+"מוצגות"
+
+#: gtkpod.glade:6199
+msgid ""
+"Selected\n"
+"Tracks"
+msgstr ""
+"רצועות\n"
+"נבחרות"
+
+#: gtkpod.glade:6231
+msgid ""
+"Total\n"
+"(local)"
+msgstr ""
+"סך הכל\n"
+"(מקומי)"
+
+#: gtkpod.glade:6651
+msgid "label21"
+msgstr "label21"
+
+#: gtkpod.glade:6746
+msgid "Never show this dialogue again"
+msgstr "אל תראה חלון דו-שיח זה בעתיד"
+
+#: gtkpod.glade:6791 gtkpod.glade:7135
+msgid "window1"
+msgstr "חלון1"
+
+#: gtkpod.glade:6850
+msgid "_M3U"
+msgstr "_M3U"
+
+#: gtkpod.glade:6869
+msgid "_PLS"
+msgstr "_PLS"
+
+#: gtkpod.glade:6907
+msgid ""
+"If available, the local copy of the track is referenced in the playlist. "
+"Otherwise the file on the iPod is used."
+msgstr ""
+"אם זמין, העותק המקומי של הרצועה יקושר מרשימת ההשמעה. אחרת נשתמש בקובץ על ה-"
+"iPod."
+
+#: gtkpod.glade:6909
+msgid "_Prefer Local"
+msgstr "_העדף מקומי"
+
+#: gtkpod.glade:6927
+msgid ""
+"The local copy of the track is referenced in the playlist. If the track is "
+"not available locally, an error message is displayed."
+msgstr ""
+"העותק המקומי של הרצועה יקושר מרשימת ההשמעה. אם הרצועה לא זמינה מקומית, תוצג "
+"הודעת שגיאה."
+
+#: gtkpod.glade:6929
+msgid "_Local"
+msgstr "_מקומי"
+
+#: gtkpod.glade:6948
+msgid "The track on the iPod is referenced in the playlist file."
+msgstr "הרצועה על ה-iPod מקושרת בקובץ רשימת ההשמעה."
+
+#: gtkpod.glade:6950
+msgid "_iPod"
+msgstr "_iPod"
+
+#: gtkpod.glade:6983
+msgid "Playlist type:"
+msgstr "סוג רשימת ההשמעה:"
+
+#: gtkpod.glade:7012
+msgid "Source:"
+msgstr "מקור:"
+
+#: gtkpod.glade:7055
+msgid "Template for info field: "
+msgstr "תבנית עבור שדה המידע:"
+
+#: gtkpod.glade:7080
+msgid ""
+"Determines how the string for the info field should be constructed, e.g '%a/%"
+"A/%T - %t.mp3' or '%o'.  You can separate several templates by semicolons -- "
+"gtkpod will determine which one to use by the filename extension given. "
+"Artist: %a, album: %A, composer: %c, title: %t, genre: %G, track nr: %T, CD "
+"nr: %C, year: %Y, original filename (requires extended information file): %"
+"o, the character '%': %%."
+msgstr ""
+"קובע איך מחרוזת המידע תבנה, לדוגמה:\n"
+"'%a/% A/%T - %t.mp3' or '%ס'\n"
+"אתה יכול להפריד מספר תבניות על ידי נקודה־פסיק. היישום gtkpod יקבע באיזה מהם "
+"להשתמש על ידי הסיומת הניתנת.\n"
+"אמן: a%, כותר: A%, יוצר: c%, שם הרצועה: t%, סגנון: G%, מספר רצועה: T%, מספר "
+"תקליטור: C%, שנה: Y%, שם מקורי (דרוש מידע מורחב): o%, הסימן '%': %%."
+
+#: gtkpod.glade:7111 gtkpod.glade:7355
+msgid "gtkpod options"
+msgstr "אפשרויות ה-gtkpod"
+
+#: gtkpod.glade:7173
+msgid "Filename Format: "
+msgstr "תבנית הקובץ:"
+
+#: gtkpod.glade:7198
+msgid ""
+"Determines the filename of tracks you copy from the iPod, e.g '%a/%A/%T - %t."
+"mp3' or '%o'.  You can separate several patterns by semicolons -- gtkpod "
+"will determine which one to use by the filename extension given. Artist: %a, "
+"album: %A, composer: %c, title: %t, genre: %G, track nr: %T, CD nr: %C, "
+"year: %Y, original filename (requires extended information file): %o, "
+"current playlist: %p, the character '%': %%."
+msgstr ""
+"קובע את שם הרצועה שאותה תעתיק מה-iPod. לדוגמה:\n"
+"'%a/%A/%T - %t.mp3' or '%o'.\n"
+"אתה יכול לציין מספר תבניות מופרדות על ידי נקודה־פסיק. היישום gtkpod יקבע "
+"באיזה יעשה שימוש על ידי הסיומת הניתנת.\n"
+"אמן: a%, כותר: A%, יוצר: c%, שם הרצועה: t%, סגנון: G%, מספר רצועה: T%, מספר "
+"תקליטור: C%, שנה: Y%, שם מקורי (דרוש מידע מורחב): o%, רשימת ההשמעה הנוכחית: p"
+"%, הסימן '%': %%."
+
+#: gtkpod.glade:7203
+msgid " "
+msgstr " "
+
+#: gtkpod.glade:7225
+msgid ""
+"Normally the charset specified when first importing the track will be used "
+"for the filename. If you set this option you can set a different charset "
+"with the charset selector (Preferences/'Adding/Updating/Syncing'). Note: the "
+"charset info is stored in the extended information file (see "
+"Preferences/'Writing of the iTunesDB'). Tracks imported before V0.51 will "
+"have no charset stored. Instead the charset specified will be used."
+msgstr ""
+"באופן רגיל ערכת התווים המצוינת כאשר מייבאים לראשונה את הרצועות תהיה זו שיעשה "
+"בה שימוש לעדכן את שם הקובץ. אם סמנת אפשרות זו תוכל לבחור ערכת תווים אחרת "
+"בעזרת בוחר ערכת התווים (העדפות 'הוספה/עדכון/סנכרון'). הערה: מידע ערכת התווים "
+"נשמר במידע המורחב (ראה העדפות כתיבה ל-iTunesDB). רצועות שיובאו לפני גרסה "
+"0.51 לא תהיה להם ערכת תווים שמורה. במקום זאת ערכת התווים המצוינת למעלה תהיה "
+"זו שנשתמש בה."
+
+#: gtkpod.glade:7227
+msgid ""
+"Use selected charset (Preferences/'Adding/Updating/ Syncing')\n"
+"for this filename."
+msgstr ""
+"השתמש בערכת התווים הנבחרת (אפשרויות/'הוספה/עדכון/סנכרון')\n"
+"עבור הקובץ הזה."
+
+#: gtkpod.glade:7246
+msgid ""
+"When copying from iPod no check is performed on whether the destination file "
+"exists. Enabling this option will make gtkpod check whether the length of "
+"the destination file is the same as the file in the iPod. If so the file is "
+"skipped, allowing a quick sync of the iPod's contents."
+msgstr ""
+"בזמן ההעתקה מה-iPod לא מתבצעת בדיקה האם קובץ היעד קיים. אפשר אפשרות זו "
+"והתכנית תבדוק האם גודלו של קובץ היעד הוא זהה לקובץ שעל ה-iPod. אם כן נדלג על "
+"הקובץ, ובכך נאפשר סנכרון מהיר של תוכן ה-iPod."
+
+#: gtkpod.glade:7248
+msgid "Check for existing files when copying from iPod."
+msgstr "בדוק קבצים קיימים בזמן העתקה מה-iPod."
+
+#: gtkpod.glade:7423
+msgid "Playlist name:"
+msgstr "שם רשימת ההשמעה:"
+
+#: gtkpod.glade:7492
+msgid "Match al_l of the following"
+msgstr "התאם את _כל הבאים"
+
+#: gtkpod.glade:7511
+msgid "Match an_y of the following"
+msgstr "התאם _כל אחד מן הבאים"
+
+#: gtkpod.glade:7531
+msgid "_Ignore rules"
+msgstr "_התעלם מחוקים"
+
+#: gtkpod.glade:7601
+msgid "Rules"
+msgstr "חוקים"
+
+#: gtkpod.glade:7638
+msgid "_Limit to"
+msgstr "_הגבל ל"
+
+#: gtkpod.glade:7689
+msgid "   Sort by:"
+msgstr "   מיין על פי:"
+
+#: gtkpod.glade:7741
+msgid "Match only _checked tracks"
+msgstr "התאם רק רצועות _מסומנות"
+
+#: gtkpod.glade:7773
+msgid "Live _updating"
+msgstr "עדכון _חי"
+
+#: gtkpod.glade:7864
+msgid "Preferences"
+msgstr "הגדרות"
+
+#: gtkpod.glade:7927
+msgid "<b>Mountpoint and individual repository/playlist options</b>"
+msgstr ""
+
+#: gtkpod.glade:7990
+msgid "Set mountpoint or edit repository options"
+msgstr ""
+
+#: gtkpod.glade:8037
+msgid "<b>Import</b>"
+msgstr "<b>ייבוא</b>"
+
+#: gtkpod.glade:8108
+#, fuzzy
+msgid "Automatically import iTunesDBs on startup"
+msgstr "יבא אוטומטית iTunesDB בתחילת התוכנית"
+
+#: gtkpod.glade:8154
+msgid "<b>Adding/Updating/Syncing</b>"
+msgstr "<b>הוספה/עדכון/סנכרון</b>"
+
+#: gtkpod.glade:8226
+msgid "Exclude file mask(s)"
+msgstr ""
+
+#: gtkpod.glade:8251
+msgid "Semicolon seperated list of file exclusion masks, e.g. '*.mp3'"
+msgstr ""
+
+#: gtkpod.glade:8285
+#, fuzzy
+msgid "_Encoding (ID3, files):"
+msgstr "_ערכת תווים (ID3, קבצים):"
+
+#: gtkpod.glade:8320
+msgid ""
+"gtkpod expects the ID3 tags and the filenames to be in the encoding "
+"specified here. You can change it for consecutive 'Add Files' and 'Add Dirs' "
+"operation. 'System Charset' is the charset used by your current locale."
+msgstr ""
+"היישום gtkpod מצפה שהתגיות של הID3 והקבצים יהיו בקידוד המצוין כאן. תוכל "
+"לשנות זאת בשביל פעולות עוקבות של 'הוספת קבצים' ו 'הוספת תיקיות'. 'ערכת "
+"התווים של המערכת' היא ערכת התווים בשימוש עבור הלוקל הנוכחי שלך."
+
+#: gtkpod.glade:8357
+msgid ""
+"Normally the charset specified when first importing the track will be used "
+"to update the track information. If you have chosen a wrong charset when "
+"first importing a track and want to correct it using the 'Update Track' "
+"function, you must check this option. Note: the charset info is stored in "
+"the extended information file (see 'Writing of iTunesDB' below) and tracks "
+"imported before V0.51 will have no charset stored. Instead the charset "
+"specified above will be used then."
+msgstr ""
+"באופן רגיל ערכת התווים המצוינת כאשר מייבאים לראשונה את הרצועות תהיה זו שיעשה "
+"בה שימוש לעדכן את מידע הרצועה. אם בחרת ערכת תווים שגויה כאשר ייבאת לראשונה "
+"את הרצועה וברצונך לתקן זאת בעזרת 'עדכן רצועה', אתה תהיה חייב לסמן את האפשרות "
+"הזאת. הערה: מידע ערכת התווים נשמר במידע המורחב (ראה : כתיבה ל-iTunesDB למטה) "
+"ורצועות שיובאו לפני גרסה 0.51 לא תהיה להם ערכת תווים שמורה. במקום זאת ערכת "
+"התווים המצוינת למעלה תהיה זו שנשתמש בה אז."
+
+#: gtkpod.glade:8359
+#, fuzzy
+msgid ""
+"Use selected encoding also when updating \n"
+"or syncing tracks"
+msgstr "השתמש בערכת תווים נבחרת גם בזמן עדכון או סנכרון רצועות"
+
+#: gtkpod.glade:8379
+msgid "If you check this, gtkpod will descend into subdirectories recursively."
+msgstr "אם תסמן אופציה זו, gtkpod יכנס לתוך תיקיות משנה רקורסיבית."
+
+#: gtkpod.glade:8381
+msgid "Add directories recursively"
+msgstr "הוספת תיקיות בצורה רקורסיבית"
+
+#: gtkpod.glade:8400
+#, fuzzy
+msgid "Duplicate Recognition is based on a (modified) md5 hash over the file."
+msgstr "זיהוי כפילויות מתבסס על חישוב קוד ערבוב md5 על הקובץ."
+
+#: gtkpod.glade:8402
+msgid "Don't allow file duplication"
+msgstr "אל תרשה כפילויות של קבצים"
+
+#: gtkpod.glade:8452
+msgid ""
+"Display the list of duplicates that have been detected after adding files."
+msgstr "הצג את רשימת הכפילויות שזוהו אחרי הוספת הקבצים."
+
+#: gtkpod.glade:8454
+msgid "Display info about detected duplicates"
+msgstr "הצג מידע אודות כפילויות מזוהות"
+
+#: gtkpod.glade:8480
+msgid ""
+"If the filename (full path) of an existing track matches that of a track to "
+"be added, this option allows you to update the information about the "
+"existing track rather than just skipping the track altogether. No update "
+"will take place if the file hasn't changed and you have selected the 'Don't "
+"allow file duplication' option above."
+msgstr ""
+"אם הקובץ (נתיב מלא) של רצועה קיימת תואם את זה של רצועה להוספה, אפשרות זאת "
+"מאפשרת לך לעדכן את המידע על הרצועה הקיימת במקום רק לדלג על הרצועה בכלל. שום "
+"עדכון לא יתבצע אם הקובץ לא השתנה ובחרת באפשרות לא לאפשר כפילות בקבצים למעלה."
+
+#: gtkpod.glade:8482
+msgid ""
+"When adding dirs/files, update information of\n"
+"existing tracks with identical filenames"
+msgstr ""
+"בזמן הוספת תיקיות/קבצים, עדכן את המידע על\n"
+"רצועות קיימות עם שמות קבצים זהים"
+
+#: gtkpod.glade:8533
+msgid "Display a list of tracks that could actually be updated."
+msgstr "הצג רשימה של רצועות שאפשר לעדכן אותן."
+
+#: gtkpod.glade:8535
+msgid "Display info about updated tracks"
+msgstr "הצג מידע אודות רצועות מעודכנות"
+
+#: gtkpod.glade:8592
+msgid "Display a list of tracks that could not be updated."
+msgstr "הצג רשימה של רצועות שאי אפשר לעדכן אותן."
+
+#: gtkpod.glade:8594
+msgid "Display info about non-updated tracks"
+msgstr "הצג מידע על רצועות שלא עודכנו בזמן סנכרון תיקיות"
+
+#: gtkpod.glade:8620
+#, fuzzy
+msgid "When syncing playlists"
+msgstr " "
+
+#: gtkpod.glade:8694
+msgid "Confirm lists of directories"
+msgstr "וודא רשימה של תיקיות"
+
+#: gtkpod.glade:8712 gtkpod.glade:17758
+msgid ""
+"Normally, if a track is no longer present in the sync directory, it will be "
+"removed from the playlist, but not from the iPod or local repository.\n"
+"If this option is checked, tracks will be completely removed from the iPod "
+"or local repository, unless the track is a member of other playlists as "
+"well.\n"
+"NOTE: if you sync with the master playlist, you must check this option if "
+"you want tracks to be removed, because removing from the master playlist "
+"means removing from the iPod."
+msgstr ""
+
+#: gtkpod.glade:8716 gtkpod.glade:17762
+msgid ""
+"Delete tracks that are no longer present from the\n"
+"ipod or repository"
+msgstr ""
+
+#: gtkpod.glade:8735
+msgid "This is the same option as in 'Edit/Delete Confirmation'"
+msgstr "זוהי אופציה זהה לזו שב- 'עריכה/ווידוא מחיקה'"
+
+#: gtkpod.glade:8737 gtkpod.glade:17782
+#, fuzzy
+msgid "Confirm before removing tracks from the iPod or repository"
+msgstr "לפני הסרת רצועות מה-iPod"
+
+#: gtkpod.glade:8756 gtkpod.glade:17800
+msgid ""
+"Will show a list of tracks removed and a list of tracks newly added or "
+"updated."
+msgstr ""
+
+#: gtkpod.glade:8758 gtkpod.glade:17802
+msgid "Show summary of sync result"
+msgstr ""
+
+#: gtkpod.glade:8819
+msgid "<b>Sync</b>"
+msgstr "<b>סנכרון</b>"
+
+#: gtkpod.glade:8875
+msgid ""
+"Highly recommended for faster import when taking advantage of the "
+"duplication recognition. Also, having the PC filenames allows writing "
+"changed ID3 tags to disk, and even to reconstruct your ipod's contents in "
+"case of file system corruption (change the \"transferred=\" entries in your "
+"backuped database)."
+msgstr ""
+"מומלץ מאוד לייבוא מהיר יותר ,כאשר מנצלים את מנגנון זיהוי הכפילויות. בנוסף, "
+"על ידי כך שקיים מידע שם הקובץ של הקבצים על ה-PC זה מאפשר כתיבת של תגיות ה-"
+"ID3 לדיסק הקשיח, ואפילו בניה מחדש של תוכן ה-iPod במקרה של בעיה במערכת הקבצים "
+"(שנה את שדה ה-\"הועבר\" במסד הנתונים המגובה)."
+
+#: gtkpod.glade:8877
+#, fuzzy
+msgid ""
+"Write extended information (PC filenames,\n"
+" MD5 hashes, encoding). Recommended."
+msgstr "כתוב מידע מורחב (שמות קבצים ב-PC ערבובי MD5, ערכות תווים). מומלץ."
+
+#: gtkpod.glade:8921 gtkpod.glade:14688
+#, fuzzy
+msgid "_General"
+msgstr "כללי"
+
+#: gtkpod.glade:8957
+msgid "<b>Tag Reading</b>"
+msgstr "<b>קריאת תגיות</b>"
+
+#: gtkpod.glade:9020
+msgid "Read tags from file contents (e.g. ID3 tags in MP3 files)"
+msgstr "קרא תגיות מתוכן הקובץ (כלומר תגיות ID3 של קבצי MP3)"
+
+#: gtkpod.glade:9039 gtkpod.glade:9413
+msgid ""
+"artist: %a, album: %A, composer: %c, title: %t, genre: %G, track nr: %T, CD "
+"nr: %C, year: %Y, skip data: %*, the character '%': %%. You can separate "
+"several templates by a ';'. The first one matching the filename will be "
+"used. Example: '%a - %A/%T %t.mp3;%t.wav'."
+msgstr ""
+"אמן: a%, כותר: A%, יוצר: c%, שם הרצועה: t%, סגנון: G%, מספר רצועה: T%, מספר "
+"תקליטור: C%, שנה: Y%, מידע דילוג: *%, האות '%': %%.\n"
+"אפשר להפריד בין מספר תבניות על ידי ';'. הראשון שיתאים לקובץ יבחר. לדוגמה:\n"
+" '%a - %A/%T %t.mp3;%t.wav'."
+
+#: gtkpod.glade:9041
+msgid "Use this template to parse filename for tag information:"
+msgstr "השתמש בתבנית הזאת על מנת לנתח את הקובץ למידע תגית:"
+
+#: gtkpod.glade:9118
+msgid "Overwrite tags that are already set"
+msgstr "שכתב תגיות שכבר כתובות"
+
+#: gtkpod.glade:9151
+msgid ""
+"As a last resort set the following tags to the\n"
+"filename if they are (still) empty:"
+msgstr ""
+"בתור אפשרות אחרונה קבע את התגיות לשם הקובץ\n"
+"אם הן (עדיין) ריקות:"
+
+#: gtkpod.glade:9187 src/display_sorttabs.c:2942 src/display_spl.c:85
+#: src/misc_conversion.c:62
+msgid "Artist"
+msgstr "אמן"
+
+#: gtkpod.glade:9209 src/display_sorttabs.c:2948 src/display_spl.c:89
+#: src/misc_conversion.c:64
+msgid "Genre"
+msgstr "סגנון"
+
+#. 0
+#: gtkpod.glade:9231 src/display_sorttabs.c:2945 src/display_spl.c:84
+#: src/misc_conversion.c:61
+msgid "Album"
+msgstr "כותר"
+
+#. 5
+#: gtkpod.glade:9253 src/display_spl.c:97 src/misc_conversion.c:66
+msgid "Composer"
+msgstr "יוצר"
+
+#: gtkpod.glade:9275 src/display_sorttabs.c:2954 src/display_spl.c:83
+#: src/misc_conversion.c:63
+msgid "Title"
+msgstr "שם הרצועה"
+
+#: gtkpod.glade:9330
+#, fuzzy
+msgid "<b>Coverart</b>"
+msgstr "<b>ייבוא</b>"
+
+#: gtkpod.glade:9392
+msgid ""
+"Music files can have images embedded in the APIC tag. Currently this is only "
+"supported for MP3 files."
+msgstr ""
+
+#: gtkpod.glade:9394
+msgid "Read coverart from embedded APIC data"
+msgstr ""
+
+#: gtkpod.glade:9415
+msgid "Add coverart from file using the following template"
+msgstr ""
+
+#: gtkpod.glade:9471
+#, fuzzy
+msgid ""
+"Determines the name of the file with the cover art. You can separate several "
+"patterns by semicolons which will be tried in order. Artist: %a, album: %A, "
+"composer: %c, title: %t, genre: %G, track nr: %T, CD nr: %C, year: %Y, "
+"original filename (requires extended information file): %o, original "
+"filename without file extension: %O, current playlist: %p, the character "
+"'%': %%."
+msgstr ""
+"קובע את שם הרצועה שאותה תעתיק מה-iPod. לדוגמה:\n"
+"'%a/%A/%T - %t.mp3' or '%o'.\n"
+"אתה יכול לציין מספר תבניות מופרדות על ידי נקודה־פסיק. היישום gtkpod יקבע "
+"באיזה יעשה שימוש על ידי הסיומת הניתנת.\n"
+"אמן: a%, כותר: A%, יוצר: c%, שם הרצועה: t%, סגנון: G%, מספר רצועה: T%, מספר "
+"תקליטור: C%, שנה: Y%, שם מקורי (דרוש מידע מורחב): o%, רשימת ההשמעה הנוכחית: p"
+"%, הסימן '%': %%."
+
+#: gtkpod.glade:9492
+#, fuzzy
+msgid "<b>Examples</b>"
+msgstr "<b>mserv</b>"
+
+#: gtkpod.glade:9526
+msgid "folder.jpg"
+msgstr ""
+
+#: gtkpod.glade:9554
+msgid "folder"
+msgstr ""
+
+#: gtkpod.glade:9582
+msgid "../%A.jpg"
+msgstr ""
+
+#: gtkpod.glade:9610
+msgid "%A"
+msgstr ""
+
+#: gtkpod.glade:9638
+msgid "Use <i>folder.jpg</i> as cover art."
+msgstr ""
+
+#: gtkpod.glade:9666
+msgid "Use <i>folder.jpg</i>, <i>folder.png</i>..."
+msgstr ""
+
+#: gtkpod.glade:9694
+msgid "Use <i>&lt;Album&gt;.jpg</i> in the parent directory"
+msgstr ""
+
+#: gtkpod.glade:9722
+msgid "Use <i>&lt;Album&gt;.jpg</i>, <i>&lt;Album&gt;.png</i>..."
+msgstr ""
+
+#: gtkpod.glade:9750
+msgid "folder.jpg;%a.jpg"
+msgstr ""
+
+#: gtkpod.glade:9778
+msgid "First try <i>folder.jpg</i>, then <i>&lt;artist&gt;.jpg</i>"
+msgstr ""
+
+#: gtkpod.glade:9835
+msgid "If both options are selected, embedded APIC data takes precedence."
+msgstr ""
+
+#: gtkpod.glade:9887
+msgid "<b>mserv</b>"
+msgstr "<b>mserv</b>"
+
+#: gtkpod.glade:9949 gtkpod.glade:10175
+msgid "Currently only rating is supported."
+msgstr "נכון לעכשיו רק המדרוג נתמך."
+
+#: gtkpod.glade:9951
+msgid "Use mserv database to fill additional information"
+msgstr "השתמש במסד נתונים של mserv על מנת למלא מידע נוסף"
+
+#: gtkpod.glade:9979
+msgid "Music Root:"
+msgstr "שורש המוזיקה:"
+
+#: gtkpod.glade:10007
+msgid "mserv database lookup will be done for music in this directory."
+msgstr "החיפוש במסד הנתונים mserv יתבצע בתיקייה זאת עבור מוזיקה."
+
+#: gtkpod.glade:10029
+msgid "mserv Root:"
+msgstr "שורש ה-mserv:"
+
+#: gtkpod.glade:10057
+msgid "Root directory of mserv database (trackinfo root)."
+msgstr "תיקיית שורש או מסד נתונים mserv (השורש של trackinfo)."
+
+#: gtkpod.glade:10079
+msgid "Username:"
+msgstr "שם משתמש:"
+
+#: gtkpod.glade:10107
+msgid "Username to be used for mserv database lookup."
+msgstr "שם משתמש הנועד לשימוש במסד הנתונים של mserv."
+
+#: gtkpod.glade:10131 gtkpod.glade:10150 gtkpod.glade:12889 gtkpod.glade:12908
+#: gtkpod.glade:13069 gtkpod.glade:13138 gtkpod.glade:17159 gtkpod.glade:17179
+#: gtkpod.glade:17199 gtkpod.glade:17219 gtkpod.glade:17239 gtkpod.glade:17679
+#: gtkpod.glade:18238 gtkpod.glade:18281 gtkpod.glade:18301 gtkpod.glade:18711
+msgid "Browse"
+msgstr "סייר"
+
+#: gtkpod.glade:10177
+msgid "Show information about problems when accessing mserv"
+msgstr "הצג מידע על בעיות בגישה ל-mserv"
+
+#: gtkpod.glade:10223
+#, fuzzy
+msgid "_Track Info"
+msgstr "רצועה"
+
+#: gtkpod.glade:10273
+msgid "<b>Displayed Track Attributes</b>"
+msgstr "<b>מאפייני רצועה נראים</b>"
+
+#: gtkpod.glade:11083
+msgid "<b>Sort Tabs</b>"
+msgstr "<b>כרטיסיות מיון</b>"
+
+#: gtkpod.glade:11145
+msgid "Keeps all compilation CDs grouped together in the artists sort tab."
+msgstr ""
+
+#: gtkpod.glade:11147
+msgid "Group artists on compilation CDs"
+msgstr ""
+
+#: gtkpod.glade:11172
+msgid "_Number of sort tabs:"
+msgstr "_מספר כרטיסיות המיון:"
+
+#: gtkpod.glade:11252
+msgid "<b>Automatically select...</b>"
+msgstr "<b>בחירה אוטומטית...</b>"
+
+#: gtkpod.glade:11314
+msgid ""
+"If you don't select the master playlist automatically, the initial database "
+"import is much faster because the display dosn't have to be updated."
+msgstr ""
+"אם לא תבחר את רשימת ההשמעה הראשית אוטומטית, יבוא מסד הנתונים הראשוני יהיה "
+"יותר מהיר בעקבות כך שהתצוגה לא תהיה חייבת להתעדכן."
+
+#: gtkpod.glade:11316
+msgid "...master playlist"
+msgstr "...רשימת השמעה ראשית"
+
+#: gtkpod.glade:11336
+msgid "...entry 'All' in sort tab..."
+msgstr "...רשומה 'הכל' בכרטיסיית המיון..."
+
+#: gtkpod.glade:11421
+msgid "<b>Tooltips</b>"
+msgstr "<b>תוויות מידע</b>"
+
+#: gtkpod.glade:11484
+msgid "Display tooltips in main window"
+msgstr "הצג תוויות מידע בחלון הראשי"
+
+#: gtkpod.glade:11504
+msgid "Display tooltips in prefs window"
+msgstr "הצג תוויות מידע בחלון האפשרויות"
+
+#: gtkpod.glade:11550
+msgid "<b>Toolbar</b>"
+msgstr "<b>סרגל כלים</b>"
+
+#: gtkpod.glade:11613
+msgid "Display toolbar..."
+msgstr "הראה סרגל כלים..."
+
+#: gtkpod.glade:11670
+msgid "...as icons"
+msgstr "...בתור סמלים"
+
+#: gtkpod.glade:11690
+msgid "...as text"
+msgstr "...בתור טקסט"
+
+#: gtkpod.glade:11711
+msgid "...both as icons and text"
+msgstr "...ביחד גם סמלים וגם טקסט"
+
+#: gtkpod.glade:11772
+msgid "<b>Misc</b>"
+msgstr "<b>אחר</b>"
+
+#: gtkpod.glade:11834
+msgid ""
+"It is much faster to sort the display after all tracks have been added. Some "
+"people might feel irritated by this behaviour and should uncheck this option."
+msgstr ""
+"זה יותר מהיר למיין את התצוגה אחרי שכל הרצועות הוספו. חלק מהאנשים יחשבו "
+"שהתנהגות זו מעצבנת וכנראה יבטלו את הסימון לאפשרות זו."
+
+#: gtkpod.glade:11836
+msgid ""
+"Temporarily disable sorting when changing playlist\n"
+"or tab entry (faster!)"
+msgstr "חסום זמנית מיון בזמן החלפת רשימת השמעה או רשומת כרטיסיה (מהיר)"
+
+#: gtkpod.glade:11856
+msgid ""
+"The display can be blocked after changing a selection. The display update is "
+"faster, but you have to wait until it's finished. When using this option, "
+"sorting is also temporarily disabled (see option above)."
+msgstr ""
+"התצוגה יכולה להינעל אחרי שינוי הבחירה. עדכון התצוגה יהיה מהיר יותר, אך אתה "
+"תצטרך להמתין עד הסיום. בזמן שימוש באפשרות זו, המיון גם הוא זמנית מבוטל (ראה "
+"אפשרות למעלה)."
+
+#: gtkpod.glade:11858
+msgid ""
+"Block display when changing playlist or tab\n"
+" entry (faster!)"
+msgstr "חסום תצוגה בזמן החלפת רשימת השמעה או רשומת כרטיסיה (מהיר)"
+
+#: gtkpod.glade:11878
+msgid "This option will be re-activated when you upgrade gtkpod."
+msgstr "האפשרות הזאת תופעל מחדש בזמן שדרוג gtkpod."
+
+#: gtkpod.glade:11880
+msgid "Display messages and warnings at startup"
+msgstr "הראה הודעות ואזהרות בתחילת התוכנית"
+
+#: gtkpod.glade:11942
+msgid "Advanced Sorting Options"
+msgstr "אפשרויות מיון מתקדמות"
+
+#: gtkpod.glade:12045
+msgid "<b>Track Editing</b>"
+msgstr "<b>עריכת רצועות</b>"
+
+#: gtkpod.glade:12107
+msgid ""
+"The tags are written to the files on your harddrive and on the ipod (if "
+"available)."
+msgstr "התגיות נכתבות לקבצים על הדיסק הקשיח ועל ה-iPod (אם זמין)."
+
+#: gtkpod.glade:12109
+msgid "Write ID3 tags to disk when modified in gtkpod"
+msgstr "כתוב תגיות ID3 לדיסק כאשר הן משתנות ב-gtkpod"
+
+#: gtkpod.glade:12165
+msgid ""
+"Normally the charset specified when first importing the track will be used "
+"to write the tags. If you have chosen a wrong charset when first importing a "
+"track, you should select this option along with the correct charset.  Note: "
+"uses the extended information file to store the charset information (see "
+"'Writing of the iTunesDB' on the 'Input/Output' page) and tracks imported "
+"before V0.51 will have no charset stored -- the charset specified on the "
+"'Input/Output' page will be used."
+msgstr ""
+"בדרך כלל יעשה שימוש בערכת התווים המצוינת בזמן ייבוא הרצועה לשם כתיבת התגיות. "
+"אם בחרת ערכת תווים שגויה בזמן ייבוא רצועה, אתה יכול לבחור אפשרות זו ביחד עם "
+"ערכת התווים הנכונה. הערה: משתמש בקובץ המידע המורחב לשמור את מידע ערכת התווים "
+"(ראה 'כתיבת iTunesDB' בעמוד קלט/פלט) ורצועות שיובאו לפני גרסה 0.51 לא תהייה "
+"להן ערכה שמורה -- הערכה המצוינת בעמוד קלט/פלט יעשה בה שימוש."
+
+#: gtkpod.glade:12167
+#, fuzzy
+msgid ""
+"Use selected encoding (on the 'General' page)\n"
+"when writing tags"
+msgstr ""
+"השתמש בערכת תווים הנבחרת (בעמוד 'כללי')\n"
+"בזמן כתיבת התגיות"
+
+#: gtkpod.glade:12187
+msgid ""
+"This is the way to go, but maybe not all programs support it yet. ID3v2.4 "
+"uses unicode to store the tags, so you won't have to worry about charsets "
+"any more. gtkpod will use UTF8 encoding as this will not increase the size "
+"of pure ASCII tags. ID3v2.2/4 tags will also be written if they are already "
+"present in the file to write to."
+msgstr ""
+"זוהי הדרך הנכונה, אך אולי לא כל התכניות תומכות בזה עדיין. הסימנייה ID3v2.4 "
+"משתמשת ב־unicode לשמור על התגיות, על מנת שלא נצטרך לדאוג לגבי ערכות תווים. "
+"gtkpod ישתמש ב־UTF8 כי זה לא יגדיל את הגודל של תגיות ASCII טהורות. תגיות "
+"ID3V2.2/4 יכתבו גם אם הן כבר קיימות בקובץ שכותבים עליו."
+
+#: gtkpod.glade:12189
+msgid "Always write ID3v2.4 tags (only applies to MP3)"
+msgstr "כתוב תמיד תגיות ID3v2.4 (תקף רק ל-MP3)"
+
+#: gtkpod.glade:12222
+msgid ""
+"If you select several tracks in the track list and edit a tag of the first "
+"track, the tags in the other tracks are updated as well."
+msgstr ""
+"אם אתה בוחר מספר רצועות ברשימת הרצועות ועורך תגית של הרצועה הראשונה, התגיות "
+"ברצועות הממוינות מתעדכנות גם כן."
+
+#: gtkpod.glade:12224
+msgid "Use 'Multi-Edit' for tracks selections"
+msgstr "השתמש ב-'עריכה מרובה' עבור בחירת רצועות"
+
+#: gtkpod.glade:12274
+msgid ""
+"Usually you don't want to set the title of several tracks to the same text. "
+"This option might avoid unwanted results (especially since there is no "
+"'undo' yet)."
+msgstr ""
+"בדרך כלל אתה לא תרצה לקבוע את שם הרצועה של מספר רצועות לאותו טקסט. אפשרות "
+"זאת עלולה למנוע תוצאות לא רצויות (במיוחד שאין עדיין אפשרות 'בטל')"
+
+#: gtkpod.glade:12276
+msgid "Use 'Multi-Edit' also for title field"
+msgstr "השתמש ב-'עריכה מרובה' גם עבור שדה שם הרצועה"
+
+#: gtkpod.glade:12329
+msgid "<b>Auto-Generated Playlists</b>"
+msgstr "<b>יצירה אוטומטית של רשימות השמעה</b>"
+
+#: gtkpod.glade:12397
+msgid "Number of tracks in generated playlists:"
+msgstr "מספר הרצועות ברשימת השמעה:"
+
+#: gtkpod.glade:12422
+msgid ""
+"Number of tracks in the generated playlists 'Most Often Listened', 'Best "
+"Rated' and 'Most Recently Played'. Choose '0' for 'no limit'."
+msgstr ""
+"מספר הרצועות ברשימות ההשמעה הנוצרות 'המושמעים ביותר', 'הדירוג הכי גבוה' "
+"ו-'נוגנו הכי לאחרונה'. בחר '0' עבור 'ללא מגבלה'."
+
+#: gtkpod.glade:12451
+msgid "Also include tracks never played in \"Best Rated\" playlist"
+msgstr "כלול גם רצועות שלעולם לא נוגנו ברשימת השמעה \"הדירוג הכי גבוה\""
+
+#: gtkpod.glade:12497
+msgid "<b>Delete Confirmation</b>"
+msgstr "<b>ווידוא מחיקה</b>"
+
+#: gtkpod.glade:12560
+msgid "Before removing playlists or tracks from a playlist"
+msgstr "לפני הסרת רשימות השמעה או רצועות מרשימת השמעה"
+
+#: gtkpod.glade:12580
+msgid "Before removing tracks from the iPod"
+msgstr "לפני הסרת רצועות מה-iPod"
+
+#: gtkpod.glade:12600
+msgid "Before removing tracks from the harddisk"
+msgstr "לפני הסרת רצועות מהדיסק הקשיח"
+
+#: gtkpod.glade:12620
+msgid "Before removing tracks from the local database"
+msgstr "לפני הסרת רצועות ממסד הנתונים המקומי"
+
+#: gtkpod.glade:12640
+msgid ""
+"Confirm before removing tracks from the iPod or repository\n"
+"when syncing playlists"
+msgstr ""
+
+#: gtkpod.glade:12723
+msgid "<b>Play</b>"
+msgstr "<b>נגן</b>"
+
+#: gtkpod.glade:12788
+msgid "Command for 'Play now':"
+msgstr "פקודה עבור 'נגן עכשיו':"
+
+#: gtkpod.glade:12816
+msgid "Command for 'Enqueue':"
+msgstr "פקודה עבור 'הכנס לתור':"
+
+#: gtkpod.glade:12844
+msgid ""
+"For example, 'xmms %s' will clear xmms' current playlist, add the selected "
+"tracks and start playing."
+msgstr ""
+"לדוגמא, 'xmms %s' ינקה את רשימת ההשמעה הנוכחית של xmms, יוסיף את הרצועות "
+"הנבחרות ויתחיל לנגן."
+
+#: gtkpod.glade:12866
+msgid ""
+"For example, 'xmms -e %s' will append (enqueue) the selected tracks to xmms' "
+"current playlist."
+msgstr ""
+"לדוגמא, 'xmms -e %s' יוסיף את הרצועות הנבחרות לרשימת ההשמעה הנוכחית ב-xmms."
+
+#: gtkpod.glade:12953
+msgid "<b>Volume Normalization</b>"
+msgstr "<b>נרמול עוצמת קול</b>"
+
+#: gtkpod.glade:13018
+msgid "'mp3gain' executable:"
+msgstr "קובץ ריצה של 'mp3gain':"
+
+#: gtkpod.glade:13046
+msgid ""
+"Set this to 'mp3gain -q -k' to use the 'Normalize volume' functionality in "
+"the Tools Menu. If this is set, missing normalization data for mp3 files "
+"will be calculated and written to your mp3 file using this command."
+msgstr ""
+
+#: gtkpod.glade:13087
+#, fuzzy
+msgid "'aacgain' executable:"
+msgstr "קובץ ריצה של 'mp3gain':"
+
+#: gtkpod.glade:13115
+msgid ""
+"Set this to 'aacgain -q -k' to use the 'Normalize volume' functionality in "
+"the Tools Menu. If this is set, missing normalization data for .m4a and .m4b "
+"files will be calculated and written to your music file using this command."
+msgstr ""
+
+#: gtkpod.glade:13183
+msgid "<b>Calendar/Contacts/Notes</b>"
+msgstr ""
+
+#: gtkpod.glade:13246
+msgid "Set options for Calendar/Contacts/Notes"
+msgstr ""
+
+#: gtkpod.glade:13381
+msgid "Details"
+msgstr ""
+
+#: gtkpod.glade:13449
+#, fuzzy
+msgid "Cover"
+msgstr "יוצר"
+
+#: gtkpod.glade:13538
+msgid "Set Cover Art"
+msgstr ""
+
+#: gtkpod.glade:13575
+msgid ""
+"If you check this, information (cover art and meta information) changed for "
+"this track will be copied to all other selected tracks as well. Use with "
+"care."
+msgstr ""
+
+#: gtkpod.glade:13621
+msgid ""
+"Change all tracks\n"
+"simultaneously"
+msgstr ""
+
+#: gtkpod.glade:13713
+msgid "Remove Cover Art"
+msgstr ""
+
+#: gtkpod.glade:14646
+msgid "(Checked)"
+msgstr ""
+
+#: gtkpod.glade:15088
+msgid "_Podcasts"
+msgstr ""
+
+#: gtkpod.glade:16127
+msgid "_Other"
+msgstr ""
+
+#: gtkpod.glade:16425
+msgid "_Undo All"
+msgstr ""
+
+#: gtkpod.glade:16499
+#, fuzzy
+msgid "_Undo Track"
+msgstr "רצועות לא דורגו"
+
+#: gtkpod.glade:16546
+#, fuzzy
+msgid "Repository Options"
+msgstr "אפשרויות מיון"
+
+#: gtkpod.glade:16667
+msgid "Add new repository/iPod"
+msgstr ""
+
+#: gtkpod.glade:16736 gtkpod.glade:18163 gtkpod.glade:18659
+#, fuzzy
+msgid "iPod mountpoint:"
+msgstr "נקודת ה_עיגון של ה-iPod:"
+
+#: gtkpod.glade:16764 gtkpod.glade:18135
+msgid "iTunesDB backup:"
+msgstr ""
+
+#: gtkpod.glade:16792 gtkpod.glade:18107 gtkpod.glade:18730 gtkpod.glade:18922
+msgid "Model:"
+msgstr ""
+
+#: gtkpod.glade:16820 gtkpod.glade:18079
+msgid "Path:"
+msgstr ""
+
+#: gtkpod.glade:16848
+msgid "<b>Synchronization</b>"
+msgstr "<b>סנכרון</b>"
+
+#: gtkpod.glade:16906
+msgid "Contacts sync command:"
+msgstr "פקודת סנכרון לאנשי קשר:"
+
+#: gtkpod.glade:16934
+msgid "Calendar sync command:"
+msgstr "פקודת סנכרון ליומן:"
+
+#: gtkpod.glade:16962
+msgid "Notes sync command:"
+msgstr "פקודת סנכרון לפתקאות (notes):"
+
+#: gtkpod.glade:16991
+msgid "Call automatically when synchronizing iTunesDB"
+msgstr "קרא אוטומטית בזמן סנכרון iTunesDB"
+
+#: gtkpod.glade:17014 gtkpod.glade:17038 gtkpod.glade:17062 gtkpod.glade:17086
+#: gtkpod.glade:17110 gtkpod.glade:17134 gtkpod.glade:17658 gtkpod.glade:18435
+msgid ""
+"Specify exact path including command line options. '%i' will be replaced "
+"with the mount point of the iPod."
+msgstr ""
+"מציין נתיב מלא כולל אפשרויות שורת פקודה. המחרוזת '%i' תוחלף עם נקודת העגינה "
+"של ה-iPod."
+
+#: gtkpod.glade:17294
+msgid "Update/Sync all playlists now"
+msgstr ""
+
+#: gtkpod.glade:17314
+#, fuzzy
+msgid "Delete repository"
+msgstr "מחק מה-iPod"
+
+#: gtkpod.glade:17334 src/context_menus.c:430 src/context_menus.c:448
+#: src/context_menus.c:523
+msgid "I'm sure"
+msgstr ""
+
+#: gtkpod.glade:17390
+#, fuzzy
+msgid "<b>Repositories</b>"
+msgstr "<b>תוויות מידע</b>"
+
+#: gtkpod.glade:17587
+msgid ""
+"Directories to sync with are determined from the filenames of the tracks in "
+"the playlist."
+msgstr ""
+
+#: gtkpod.glade:17589
+msgid "On startup automatically sync with playlist directories"
+msgstr ""
+
+#: gtkpod.glade:17608
+#, fuzzy
+msgid "On startup automatically sync with the following directory"
+msgstr "האם לסנכרן את התיקיות הבאות?"
+
+#: gtkpod.glade:17702
+#, fuzzy
+msgid "Don't automatically sync on startup"
+msgstr "יבא אוטומטית iTunesDB בתחילת התוכנית"
+
+#: gtkpod.glade:17848
+msgid "On startup automatically update (Live Playlist)"
+msgstr ""
+
+#: gtkpod.glade:17878
+msgid "Update/Sync playlist now"
+msgstr ""
+
+#: gtkpod.glade:17925
+#, fuzzy
+msgid "<b>Playlists</b>"
+msgstr "<b>נגן</b>"
+
+#: gtkpod.glade:18042
+#, fuzzy
+msgid "Create Repository"
+msgstr "מחק מה-iPod"
+
+#: gtkpod.glade:18320
+msgid ""
+"Insert before\n"
+"Insert after"
+msgstr ""
+
+#: gtkpod.glade:18358
+#, fuzzy
+msgid "Repository type:"
+msgstr "אפשרויות מיון"
+
+#: gtkpod.glade:18386
+msgid ""
+"iPod\n"
+"Local Repository (Standard)\n"
+"Local Repository (Podcasts)\n"
+msgstr ""
+
+#: gtkpod.glade:18407
+#, fuzzy
+msgid "Repository name:"
+msgstr "אפשרויות מיון"
+
+#: gtkpod.glade:18543 gtkpod.glade:18806
+msgid "Initialize iPod"
+msgstr ""
+
+#: gtkpod.glade:18613
+msgid "<b>Please select mountpoint and your iPod model</b>"
+msgstr ""
+
 #: src/charset.c:53
 msgid "Arabic (IBM-864)"
 msgstr "ערבית (IBM-864)"
@@ -219,7 +2051,7 @@
 
 #. sanity!
 #. check for "System Charset" and return NULL
-#: src/charset.c:160 src/charset.c:170 src/charset.c:222
+#: src/charset.c:160 src/charset.c:170 src/charset.c:223
 msgid "System Charset"
 msgstr "ערכת התווים של המערכת"
 
@@ -230,240 +2062,227 @@
 "Another instance of gtkpod was detected. Playcount server not started.\n"
 msgstr "עותק ריצה נוסף של gtkpod נמצא. שרת ספירה לא יופעל.\n"
 
-#: src/confirmation.c:361
+#: src/confirmation.c:376
 msgid "Confirmation Dialogue"
 msgstr "תיבת דו שיח לאישור"
 
-#: src/context_menus.c:352 src/tools.c:634
+#: src/context_menus.c:367 src/tools.c:852
 msgid "Play Now"
 msgstr "נגן עכשיו"
 
-#: src/context_menus.c:354 src/tools.c:645
+#: src/context_menus.c:373 src/tools.c:865
 msgid "Enqueue"
 msgstr "הכנס לתור"
 
-#: src/context_menus.c:357
+#: src/context_menus.c:379
 #, fuzzy
 msgid "Copy Tracks to Filesystem"
 msgstr "_סנכרון רצועות מקובץ"
 
-#: src/context_menus.c:359 src/file_export.c:1069
+#: src/context_menus.c:386 src/file_export.c:1081
 msgid "Create Playlist File"
 msgstr "יצירת קובץ רשימת השמעה"
 
-#: src/context_menus.c:361
-msgid "Edit Details"
-msgstr ""
+#: src/context_menus.c:393
+msgid "Create new Playlist"
+msgstr "יצירת רשימת השמעה חדשה"
 
-#: src/context_menus.c:363 gtkpod.glade:12817
-msgid "Update"
-msgstr "עדכון"
+#: src/context_menus.c:400
+#, fuzzy
+msgid "Update Tracks from File"
+msgstr "_סנכרון רצועות מקובץ"
 
-#: src/context_menus.c:365
-msgid "Sync Dirs"
-msgstr "סנכרון תיקיות"
+#: src/context_menus.c:414
+msgid "Sync Playlist with Dir(s)"
+msgstr ""
 
-#: src/context_menus.c:367
-msgid "Normalize"
-msgstr "נרמול"
+#: src/context_menus.c:424
+msgid "Remove All Tracks from iPod"
+msgstr "מחק את כל הרצועות מה-iPod"
 
-#: src/context_menus.c:369
-msgid "Create new Playlist"
-msgstr "יצירת רשימת השמעה חדשה"
+#: src/context_menus.c:442
+#, fuzzy
+msgid "Remove All Podcasts from iPod"
+msgstr "מחק את כל הרצועות מה-iPod"
 
-#: src/context_menus.c:372
-msgid "Edit Smart Playlist"
-msgstr "ערוך רשימת השמעה חכמה"
+#: src/context_menus.c:457
+msgid "Delete Including Tracks"
+msgstr "מחק כולל רצועות"
 
-#: src/context_menus.c:378
-msgid "Alphabetize"
-msgstr "סדר אלפאבתי"
+#: src/context_menus.c:465
+msgid "Delete But Keep Tracks"
+msgstr "מחק אבל שמור רצועות"
 
-#: src/context_menus.c:402
-msgid "Delete From iPod"
-msgstr "מחק מה-iPod"
+#: src/context_menus.c:473
+#, fuzzy
+msgid "Edit iPod Properties"
+msgstr "יצירת תיקיות iPod"
 
-#: src/context_menus.c:408
-msgid "Delete From Harddisk"
-msgstr "מחק מהדיסק הקשיח"
+#: src/context_menus.c:493
+#, fuzzy
+msgid "Load iPod"
+msgstr "_iPod"
 
-#: src/context_menus.c:414
-msgid "Delete From Database"
-msgstr "מחק ממסד הנתונים"
+#: src/context_menus.c:500
+msgid "Eject iPod"
+msgstr ""
 
-#: src/context_menus.c:420
-msgid "Delete From Playlist"
-msgstr "מחק מרשימת ההשמעה"
+#: src/context_menus.c:517
+msgid "Remove All Tracks from Database"
+msgstr "מחק את כל הרצועות ממסד הנתונים"
 
-#: src/context_menus.c:439
-msgid "Delete Including Tracks"
-msgstr "מחק כולל רצועות"
-
-#: src/context_menus.c:445
+#: src/context_menus.c:532
 msgid "Delete Including Tracks (Harddisk)"
 msgstr "מחק כולל רצועות (דיסק קשיח)"
 
-#: src/context_menus.c:451
+#: src/context_menus.c:540
 msgid "Delete Including Tracks (Database)"
 msgstr "מחק כולל רצועות (מסד נתונים)"
 
-#: src/context_menus.c:457
-msgid "Delete But Keep Tracks"
-msgstr "מחק אבל שמור רצועות"
+#: src/context_menus.c:548
+msgid "Delete From iPod"
+msgstr "מחק מה-iPod"
 
-#: src/context_menus.c:463
-msgid "Remove All Tracks from iPod"
-msgstr "מחק את כל הרצועות מה-iPod"
+#: src/context_menus.c:556
+msgid "Delete From Playlist"
+msgstr "מחק מרשימת ההשמעה"
 
-#: src/context_menus.c:469
-msgid "Remove All Tracks from Database"
-msgstr "מחק את כל הרצועות ממסד הנתונים"
+#: src/context_menus.c:564
+msgid "Delete From Harddisk"
+msgstr "מחק מהדיסק הקשיח"
 
-#: src/context_menus.c:476
-#, fuzzy
-msgid "Remove All Podcasts from iPod"
-msgstr "מחק את כל הרצועות מה-iPod"
+#: src/context_menus.c:572
+msgid "Delete From Database"
+msgstr "מחק ממסד הנתונים"
 
-#: src/context_menus.c:487 gtkpod.glade:156
-msgid "Update Podcasts"
-msgstr ""
+#: src/context_menus.c:580
+msgid "Alphabetize"
+msgstr "סדר אלפאבתי"
 
-#: src/context_menus.c:494
+#: src/context_menus.c:596
 #, fuzzy
-msgid "Podcasts Preferences"
-msgstr "_עריכת העדפות"
+msgid "Edit Playlist Properties"
+msgstr "הוספת רשימת השמעה מקובץ"
 
 #: src/date_parser.l:269
 #, c-format
 msgid "Date format error: unrecognized character: '%s'\n"
 msgstr "פורמט תאריך שגוי: תו לא מזוהה: '%s'\n"
 
-#: src/details.c:1035 gtkpod.glade:4365
-msgid "n/a"
-msgstr "ל/ז"
-
-#: src/details.c:1099
+#: src/details.c:1182
 #, fuzzy
 msgid "<b>n/a</b>"
 msgstr "<b>נגן</b>"
 
-#: src/display.c:924 src/display.c:1022 src/display.c:1071 src/display.c:1302
-#: src/display.c:1358 src/display.c:1413 src/display.c:1464 src/display.c:1628
-#: src/misc_playlist.c:274
-msgid "No playlist selected"
-msgstr "לא נבחרה רשימת השמעה"
-
-#: src/display.c:934
+#: src/display.c:891
 #, fuzzy
 msgid "Edit selected entry of which sort tab?"
 msgstr "באיזה כרטיסיית מיון של רשומה נבחרת לעדכן?"
 
 #. no entry selected
-#: src/display.c:941 src/misc_confirm.c:441 src/misc_track.c:1482
+#: src/display.c:898 src/misc_confirm.c:431 src/misc_track.c:1613
 msgid "No entry selected."
 msgstr "לא נבחרה רשומה."
 
-#: src/display.c:960 src/display.c:1040 src/display.c:1345 src/display.c:1401
-#: src/display.c:1452 src/display.c:1503
-msgid "No tracks selected"
-msgstr "לא נבחרו רצועות"
-
-#: src/display.c:1056 src/display.c:1322 src/display.c:1378 src/display.c:1430
-#: src/display.c:1481 src/display.c:1650
+#: src/display.c:1057 src/display.c:1384 src/display.c:1440 src/display.c:1494
+#: src/display.c:1549 src/display.c:1810
 #, c-format
 msgid "No entry selected in Sort Tab %d"
 msgstr "לא נבחרה רשומה בכרטיסיית מיון %d"
 
-#: src/display.c:1095
+#: src/display.c:1096
 #, fuzzy
 msgid "Remove entry of which sort tab from database?"
 msgstr "באיזה כרטיסיית מיון של רשומה נבחרת לייצא?"
 
-#: src/display.c:1103
+#: src/display.c:1104
 #, fuzzy
 msgid "Remove tracks in selected entry of which filter tab from the iPod?"
 msgstr "באיזה כרטיסיית מיון של רשומה נבחרת להוסיף רצועות לתור?"
 
-#: src/display.c:1125
+#: src/display.c:1126
 #, fuzzy
 msgid "Remove tracks in selected entry of which filter tab from the harddisk?"
 msgstr "באיזה כרטיסיית מיון של רשומה נבחרת להוסיף רצועות לתור?"
 
-#: src/display.c:1155
+#: src/display.c:1156
 #, fuzzy
 msgid "Remove tracks in selected entry of which filter tab from playlist?"
 msgstr "באיזה כרטיסיית מיון של רשומה נבחרת להוסיף רצועות לתור?"
 
-#: src/display.c:1174
-msgid "Currently no iPod database selected"
-msgstr "מסד נתונים של iPod לא נבחר עדיין."
+#: src/display.c:1183 src/display.c:1221
+#, c-format
+msgid ""
+"iPod at '%s' is not loaded.\n"
+"Please load it first."
+msgstr ""
 
-#: src/display.c:1202 src/display.c:1229
+#: src/display.c:1265 src/display.c:1292
 msgid "Update selected entry of which sort tab?"
 msgstr "באיזה כרטיסיית מיון של רשומה נבחרת לעדכן?"
 
-#: src/display.c:1248
-msgid "Sync dirs of selected entry in which sort tab?"
-msgstr "באיזה כרטיסיית מיון של רשומה נבחרת לסנכרן תיקיות?"
-
-#: src/display.c:1316
+#: src/display.c:1378
 msgid "Export selected entry of which sort tab?"
 msgstr "באיזה כרטיסיית מיון של רשומה נבחרת לייצא?"
 
-#: src/display.c:1372
+#: src/display.c:1434
 msgid "Create playlist file from selected entry of which sort tab?"
 msgstr "באיזה כרטיסיית מיון של רשומה נבחרת ליצור קובץ רשימת השמעה?"
 
-#: src/display.c:1424
+#: src/display.c:1488
 msgid "Play tracks in selected entry of which sort tab?"
 msgstr "באיזה כרטיסיית מיון של רשומה נבחרת לנגן רצועות?"
 
-#: src/display.c:1475
+#: src/display.c:1543
 msgid "Enqueue tracks in selected entry of which sort tab?"
 msgstr "באיזה כרטיסיית מיון של רשומה נבחרת להוסיף רצועות לתור?"
 
-#: src/display.c:1640
+#: src/display.c:1800
 msgid "Normalize tracks in selected entry of which sort tab?"
 msgstr "באיזה כרטיסיית מיון של רשומה נבחרת לנרמל רצועות?"
 
-#: src/display_itdb.c:319
+#: src/display_itdb.c:355
 #, fuzzy, c-format
-msgid "Failed to set cover art: '%s'"
+msgid "Failed to set cover art: '%s'\n"
 msgstr "כישלון בכתיבה ל '%s-%s'\n"
 
+#: src/display_itdb.c:835 src/display_itdb.c:967 src/repository.c:1189
+#, fuzzy
+msgid "iPod"
+msgstr "_iPod"
+
+#: src/display_itdb.c:844 src/display_itdb.c:965
+msgid "Local"
+msgstr "מקומי"
+
 #. add podcast playlist
-#: src/display_itdb.c:843 src/display_itdb.c:871 src/display_itdb.c:975
-#: gtkpod.glade:13669
+#: src/display_itdb.c:852 src/display_itdb.c:963 src/display_itdb.c:991
 msgid "Podcasts"
 msgstr ""
 
-#: src/display_itdb.c:845 src/display_itdb.c:941
-msgid "Local"
-msgstr "מקומי"
-
-#: src/display_itdb.c:1081
+#: src/display_itdb.c:1050
 #, c-format
 msgid "Increased playcount for '%s'"
 msgstr "הועלתה ספירת השמעות עבור '%s'"
 
 #. give a notice on the statusbar -- otherwise the user
 #. * will never know why the drag is not possible
-#: src/display_playlists.c:498 src/display_playlists.c:540
+#: src/display_playlists.c:496 src/display_playlists.c:538
 msgid "Error: drag from iPod not possible in offline mode."
 msgstr "שגיאה: גרירה מה-iPod היא לא אפשרית במצב לא מקוון."
 
-#: src/display_playlists.c:567 src/display_songs.c:285
+#: src/display_playlists.c:565 src/display_songs.c:287
 #, c-format
 msgid "Copied one track"
 msgid_plural "Copied %d tracks"
 msgstr[0] "רצועה אחת הועתקה"
 msgstr[1] "הועתקו %d רצועות"
 
-#: src/display_playlists.c:856
+#: src/display_playlists.c:851
 msgid "Can't reorder sorted treeview."
 msgstr "אי אפשר לסדר מחדש עץ ממוין."
 
-#: src/display_playlists.c:947
+#: src/display_playlists.c:944
 #, c-format
 msgid ""
 "This DND type (%d) is not (yet) supported. If you feel implementing this "
@@ -474,18 +2293,14 @@
 "ראוי, צור קשר עם המחבר.\n"
 "\n"
 
-#: src/display_playlists.c:1830 gtkpod.glade:3997
-msgid "Playlists"
-msgstr "רשימות השמעה"
-
-#: src/display_songs.c:280
+#: src/display_songs.c:282
 #, c-format
 msgid "Moved one track"
 msgid_plural "Moved %d tracks"
 msgstr[0] "רצועה אחת הועברה"
 msgstr[1] "הועברו %d רצועות"
 
-#: src/display_songs.c:1669
+#: src/display_songs.c:1690
 #, c-format
 msgid ""
 "Cannot unsort track view because of a bug in the GTK lib you are using (%d.%"
@@ -497,124 +2312,91 @@
 "< 2.5.4). ברגע שמיינת את תוגת העץ, אי אפשר לחזור חזרה למצב הלא ממוין.\n"
 "\n"
 
-#: src/display_songs.c:1922
+#: src/display_songs.c:1923
 #, fuzzy
 msgid "Rtng"
 msgstr "מדרוג"
 
-#: src/display_songs.c:1925
+#: src/display_songs.c:1926
 msgid "#"
 msgstr "#"
 
-#: src/display_songs.c:1928
+#: src/display_songs.c:1929
 msgid "CD"
 msgstr "דיסק שמע"
 
-#: src/display_songs.c:1931
+#: src/display_songs.c:1932
 msgid "ID"
 msgstr "מזהה"
 
-#: src/display_songs.c:1934
+#: src/display_songs.c:1935
 msgid "Trnsfrd"
 msgstr "העברה"
 
-#: src/display_songs.c:1938
+#: src/display_songs.c:1939
 msgid "Cmpl"
 msgstr "יצירה"
 
-#: src/display_songs.c:1942 src/display_spl.c:94
+#: src/display_songs.c:1945 src/display_spl.c:94
 msgid "Time"
 msgstr "זמן"
 
-#: src/display_songs.c:1945
+#: src/display_songs.c:1948
 msgid "Plycnt"
 msgstr "ספירת שמע"
 
-#: src/display_songs.c:1948 gtkpod.glade:2433
-msgid "Played"
-msgstr "הושמע"
-
-#: src/display_songs.c:1951 gtkpod.glade:2456
-msgid "Modified"
-msgstr "שונה"
-
-#: src/display_songs.c:1954 src/display_sorttabs.c:3117 gtkpod.glade:2551
-msgid "Added"
-msgstr "הוספו"
-
-#: src/display_songs.c:1957
+#: src/display_songs.c:1960
 #, fuzzy
 msgid "Released"
 msgstr "קרא"
 
-#: src/display_songs.c:1960 src/display_sorttabs.c:2856 src/display_spl.c:88
+#: src/display_songs.c:1963 src/display_sorttabs.c:2957 src/display_spl.c:88
 #: src/misc_conversion.c:85
 msgid "Year"
 msgstr "שנה"
 
-#: src/display_songs.c:1963
+#: src/display_songs.c:1966
 msgid "Vol."
 msgstr "עוצמה"
 
-#: src/display_songs.c:1966
+#: src/display_songs.c:1969
 msgid "Sndchk."
 msgstr "בדיקת קול"
 
-#: src/display_sorttabs.c:400
+#: src/display_sorttabs.c:456
 msgid "'Played' condition ignored because of error."
 msgstr "התעלמות ממצב 'הושמע' עקב תקלה"
 
-#: src/display_sorttabs.c:403
+#: src/display_sorttabs.c:459
 msgid "'Modified' condition ignored because of error."
 msgstr "התעלמות ממצב 'שונה' עקב תקלה"
 
-#: src/display_sorttabs.c:406
+#: src/display_sorttabs.c:462
 msgid "'Added' condition ignored because of error."
 msgstr "התעלמות ממצב 'הוספה' עקב תקלה"
 
-#: src/display_sorttabs.c:1492 src/misc_conversion.c:60
+#: src/display_sorttabs.c:1582 src/misc_conversion.c:60
 msgid "All"
 msgstr "הכל"
 
-#: src/display_sorttabs.c:1518
+#: src/display_sorttabs.c:1608
 #, fuzzy
 msgid "Compilations"
 msgstr "יצירה"
 
-#: src/display_sorttabs.c:2841 src/display_spl.c:85 src/misc_conversion.c:62
-#: gtkpod.glade:8709
-msgid "Artist"
-msgstr "אמן"
-
-#. 0
-#: src/display_sorttabs.c:2844 src/display_spl.c:84 src/misc_conversion.c:61
-#: gtkpod.glade:8753
-msgid "Album"
-msgstr "כותר"
-
-#: src/display_sorttabs.c:2847 src/display_spl.c:89 src/misc_conversion.c:64
-#: gtkpod.glade:8731
-msgid "Genre"
-msgstr "סגנון"
-
-#: src/display_sorttabs.c:2850
+#: src/display_sorttabs.c:2951
 msgid "Comp."
 msgstr "יצירה"
 
-#: src/display_sorttabs.c:2853 src/display_spl.c:83 src/misc_conversion.c:63
-#: gtkpod.glade:8797
-msgid "Title"
-msgstr "שם הרצועה"
-
-#: src/display_sorttabs.c:2859
+#: src/display_sorttabs.c:2960
 msgid "Special"
 msgstr "מיוחד"
 
-#: src/display_sorttabs.c:3115
+#: src/display_sorttabs.c:3216
 msgid "Last Played"
 msgstr "הושמע לאחרונה"
 
-#: src/display_sorttabs.c:3116
+#: src/display_sorttabs.c:3217
 msgid "Last Modified"
 msgstr "שונה לאחרונה"
 
@@ -638,7 +2420,7 @@
 msgid "Hz"
 msgstr "הרץ"
 
-#: src/display_spl.c:75 src/display_spl.c:160 src/info.c:732
+#: src/display_spl.c:75 src/display_spl.c:160 src/info.c:777
 msgid "MB"
 msgstr "מ\"ב"
 
@@ -679,15 +2461,6 @@
 msgid "Date added"
 msgstr "תאריך הוספה"
 
-#. 5
-#: src/display_spl.c:97 src/misc_conversion.c:66 gtkpod.glade:8775
-msgid "Composer"
-msgstr "יוצר"
-
-#: src/display_spl.c:98 src/misc_conversion.c:78 gtkpod.glade:2387
-msgid "Playcount"
-msgstr "מספור השמעות"
-
 #: src/display_spl.c:99
 msgid "Last played"
 msgstr "הושמע לאחרונה"
@@ -696,10 +2469,6 @@
 msgid "Disc number"
 msgstr "מספר דיסק"
 
-#: src/display_spl.c:101 src/misc_conversion.c:79 gtkpod.glade:2410
-msgid "Rating"
-msgstr "מדרוג"
-
 #: src/display_spl.c:102 src/misc_conversion.c:88
 msgid "Compilation"
 msgstr "יצירה"
@@ -712,10 +2481,6 @@
 msgid "Grouping"
 msgstr "קיבוץ"
 
-#: src/display_spl.c:105 gtkpod.glade:1443
-msgid "Playlist"
-msgstr "רשימת השמעה"
-
 #: src/display_spl.c:111
 msgid "contains"
 msgstr "מכיל"
@@ -790,7 +2555,7 @@
 msgid "hours"
 msgstr "שעות"
 
-#: src/display_spl.c:163 src/info.c:732
+#: src/display_spl.c:163 src/info.c:777
 msgid "GB"
 msgstr "ג\"ב"
 
@@ -846,25 +2611,25 @@
 msgid "lowest rating"
 msgstr "מדרוג נמוך ביותר"
 
-#: src/display_spl.c:1049 src/display_spl.c:1064
+#: src/display_spl.c:1047 src/display_spl.c:1062
 msgid "to"
 msgstr "אל "
 
-#: src/display_spl.c:1276
+#: src/display_spl.c:1279
 msgid "-"
 msgstr "-"
 
-#: src/display_spl.c:1286
+#: src/display_spl.c:1294
 msgid "+"
 msgstr "+"
 
-#: src/display_spl.c:1503 src/misc_playlist.c:67 src/misc_playlist.c:69
-#: src/misc_playlist.c:94 src/misc_playlist.c:96 src/misc_playlist.c:415
-#: src/misc_playlist.c:417
+#: src/display_spl.c:1513 src/misc_playlist.c:67 src/misc_playlist.c:69
+#: src/misc_playlist.c:94 src/misc_playlist.c:96 src/misc_playlist.c:429
+#: src/misc_playlist.c:431
 msgid "New Playlist"
 msgstr "רשימת השמעה חדשה"
 
-#: src/file.c:195
+#: src/file.c:230
 #, c-format
 msgid ""
 "'%s' is a directory, not a playlist file.\n"
@@ -873,7 +2638,7 @@
 "'%s' הוא תיקייה, לא קובץ רשימת השמעה.\n"
 "\n"
 
-#: src/file.c:222
+#: src/file.c:258
 #, c-format
 msgid ""
 "'%s' is a not a known playlist file.\n"
@@ -882,7 +2647,7 @@
 "'%s' הוא לא קובץ רשימת השמעה מוכר.\n"
 "\n"
 
-#: src/file.c:239
+#: src/file.c:275
 #, c-format
 msgid ""
 "Cannot open '%s' for reading.\n"
@@ -891,172 +2656,87 @@
 "לא מסוגל לפתוח את '%s' לקריאה.\n"
 "\n"
 
-#: src/file.c:322
+#: src/file.c:359
 #, c-format
 msgid "Skipping '%s' because it is a directory.\n"
 msgstr "מדלג על '%s' בגלל שהוא תיקייה.\n"
 
-#: src/file.c:327
+#: src/file.c:364
 #, c-format
 msgid "Skipping '%s' to avoid adding playlist file recursively\n"
 msgstr "מדלג על '%s' על מנת להתחמק מהוספת קובץ רשימת השמעה רקורסיבי\n"
 
-#: src/file.c:582
+#: src/file.c:619
 #, c-format
 msgid "Unknown token '%s' in template '%s'\n"
 msgstr "הסימן '%s' בתבנית '%s' לא ידוע\n"
 
-#: src/file.c:817
+#: src/file.c:871
 #, c-format
 msgid "Local filename not valid (%s)"
 msgstr "שם קובץ מקומי לא תקין (%s)"
 
-#: src/file.c:870
+#: src/file.c:930
 #, c-format
 msgid "No information found for user '%s' in '%s'"
 msgstr "לא קיים מידע למשתמש '%s' ב- '%s'"
 
-#: src/file.c:877
+#: src/file.c:939
 #, c-format
 msgid "mserv data file (%s) not available for track (%s)"
 msgstr "מידע קובץ mserv (%s) לא זמין עבור רצועה (%s)"
 
-#: src/file.c:885
+#: src/file.c:947
 #, c-format
 msgid "Track (%s) not in mserv music root directory (%s)"
 msgstr "הרצועה (%s) לא קיימת בתיקיית השורש של mserv (%s)"
 
-#: src/file.c:990
+#: src/file.c:1055
 #, c-format
 msgid ""
 "The following track could not be processed (file does not exist): '%s'\n"
 msgstr "אי אפשר לעבד את הרצועה הבאה (הקובץ לא קיים): '%s'\n"
 
-#: src/file.c:1039
+#: src/file.c:1118
 #, c-format
 msgid "The following track could not be processed (filetype unknown): '%s'\n"
 msgstr "אי אפשר לעבד את הרצועה הבאה (סוג קובץ לא ידוע): '%s'\n"
 
-#: src/file.c:1121
+#: src/file.c:1211
 #, c-format
 msgid ""
 "The following track could not be processed (filetype is known but analysis "
 "failed): '%s'\n"
 msgstr "אי אפשר לעבד את הרצועה הבאה (סוג קובץ ידוע, אך הבדיקה נכשלה): '%s'\n"
 
-#: src/file.c:1150 src/file.c:1205
+#: src/file.c:1241 src/file.c:1295
 msgid "Nothing to update"
 msgstr "אין מה לעדכן"
 
-#: src/file.c:1170
+#: src/file.c:1262
 #, c-format
 msgid "Updating %s"
 msgstr "מעדכן %s"
 
-#: src/file.c:1186
+#: src/file.c:1276
 msgid "Updated selected tracks with info from file."
 msgstr "מעדכן רצועות נבחרות עם מידע מקובץ."
 
-#: src/file.c:1218
+#: src/file.c:1310
 #, c-format
 msgid "Retrieving mserv data %s"
 msgstr "מאחזר נתוני mserv %s"
 
-#. no path available
-#: src/file.c:1224 src/file.c:1902
+#: src/file.c:1315
 msgid "no filename available"
 msgstr "קובץ לא קיים"
 
-#: src/file.c:1229
+#: src/file.c:1320
 msgid "Updated selected tracks with data from mserv."
 msgstr "עודכנו רצועות נבחרות עם נתונים מ-mserv"
 
-#: src/file.c:1296
+#: src/file.c:1341
 #, c-format
-msgid "Syncing directory '%s'"
-msgstr "מסנכרן תיקיית '%s'"
-
-#: src/file.c:1321
-msgid "Syncing completed. No files deleted."
-msgstr "הסנכרון הושלם. קבצים לא נמחקו."
-
-#. gint id,
-#. gboolean modal,
-#. title
-#. label
-#. scrolled text
-#: src/file.c:1434
-msgid "Never delete any files when syncing"
-msgstr "בזמן סנכרון, אל תמחק שום קובץ"
-
-#: src/file.c:1463
-msgid "Syncing completed."
-msgstr "סנכרון הושלם."
-
-#: src/file.c:1483
-msgid "Syncing aborted"
-msgstr "סנכרון בוטל"
-
-#: src/file.c:1521
-msgid "No tracks in selection"
-msgstr "אין רצועות בבחירה"
-
-#: src/file.c:1571
-#, c-format
-msgid "'%s' is not a directory. Ignored.\n"
-msgstr "'%s' היא לא תיקייה. מתעלם.\n"
-
-#. no directory names available
-#: src/file.c:1601
-msgid ""
-"No directory names were stored. Make sure that you enable 'Write extended "
-"information' in the Export section of the preferences at the time of "
-"importing files.\n"
-"\n"
-"To synchronize directories now, activate the duplicate detection ('Don't "
-"allow file duplication') in the Import section and add the directories you "
-"want to sync again.\n"
-msgstr ""
-"לא נשמרו שמות תיקיות. וודא שאפשרת 'כתיבת מידע מורחב' בחלק ייצוא של ההגדרות "
-"בזמן ייבוא קבצים.\n"
-"\n"
-"על מנת לסנכרן תיקיות עכשיו, הפעל את זיהוי כפילויות ('אל תרשה כפילויות') בחלק "
-"הייבוא והוסף את התיקייה שאתה רוצה לסנכרן שוב.\n"
-
-#: src/file.c:1605
-msgid "No valid directories have been found. Sync aborted.\n"
-msgstr "לא נמצאו תיקיות תקינות. סנכרון בוטל.\n"
-
-#: src/file.c:1614
-msgid ""
-"The (former) contents of the following directories will be removed from the "
-"database:\n"
-"\n"
-msgstr ""
-"התוכן (הקודם) של התיקיות הבאות יוסר ממסד הנתונים:\n"
-"\n"
-
-#: src/file.c:1622
-msgid ""
-"The following directories will be synchronized:\n"
-"\n"
-msgstr ""
-"התיקיות הבאות יסונכרנו:\n"
-"\n"
-
-#. gint id,
-#. gboolean modal,
-#: src/file.c:1633
-msgid "Synchronize directories"
-msgstr "מסנכרן תיקיות"
-
-#. title
-#: src/file.c:1634
-msgid "OK to synchronize the following directories?"
-msgstr "האם לסנכרן את התיקיות הבאות?"
-
-#: src/file.c:1672
-#, c-format
 msgid "The following track could not be updated"
 msgid_plural "The following %d tracks could not be updated"
 msgstr[0] "הרצועה הבאה איננה יכולה להתעדכן"
@@ -1064,11 +2744,11 @@
 
 #. gint id,
 #. gboolean modal,
-#: src/file.c:1678
+#: src/file.c:1347
 msgid "Failed Track Update"
 msgstr "עדכון רצועה נכשל"
 
-#: src/file.c:1736
+#: src/file.c:1405
 #, c-format
 msgid "The following track has been updated"
 msgid_plural "The following %d tracks have been updated"
@@ -1077,11 +2757,11 @@
 
 #. gint id,
 #. gboolean modal,
-#: src/file.c:1742
+#: src/file.c:1411
 msgid "Successful Track Update"
 msgstr "הרצועה עודכנה בהצלחה"
 
-#: src/file.c:1801
+#: src/file.c:1470
 #, c-format
 msgid "No mserv information could be retrieved for the following track"
 msgid_plural ""
@@ -1091,66 +2771,90 @@
 
 #. gint id,
 #. gboolean modal,
-#: src/file.c:1807
+#: src/file.c:1476
 msgid "mserv data retrieval problem"
 msgstr "בעיה בהשגת מידע מ-mserv"
 
-#: src/file.c:1948
-msgid "file not found"
-msgstr "הקובץ לא נמצא"
+#: src/file.c:1565
+msgid "no local filename available, file on the iPod will be used instead"
+msgstr ""
 
-#: src/file.c:1952
-msgid "format not supported"
+#: src/file.c:1571
+msgid "no local filename available and copy on iPod cannot be found"
+msgstr ""
+
+#: src/file.c:1575 src/file.c:1593
+#, fuzzy
+msgid "no local filename available"
+msgstr "קובץ לא קיים"
+
+#: src/file.c:1583
+msgid "local file could not be found, file on the iPod will be used instead"
+msgstr ""
+
+#: src/file.c:1589
+msgid "local file as well as copy on the iPod cannot be found"
+msgstr ""
+
+#. update not successful -- log this track for later display
+#: src/file.c:1651
+#, fuzzy
+msgid "update failed (format no supported?)"
 msgstr "הפורמט לא נתמך"
 
-#: src/file.c:2033
+#: src/file.c:1734
 #, c-format
 msgid "Processing '%s'..."
 msgstr "מעבד '%s'..."
 
-#: src/file.c:2137 src/misc_track.c:1169 src/misc_track.c:1225
+#: src/file.c:1740
 #, c-format
+msgid "File skipped. match exclude masks: '%s'\n"
+msgstr ""
+
+#: src/file.c:1852 src/misc_track.c:1299 src/misc_track.c:1355
+#, c-format
 msgid ""
 "Podcast already present: '%s'\n"
 "\n"
 msgstr ""
 
-#: src/file.c:2198
+#: src/file.c:1913
 #, fuzzy, c-format
 msgid ""
 "Writing to video files not yet supported (%s).\n"
 "\n"
 msgstr "נרמול נכשל: סוג קובץ לא נתמך.\n"
 
-#: src/file.c:2252 src/file.c:2266
+#: src/file.c:1965 src/file.c:1979
 #, c-format
 msgid "Couldn't change tags of file: %s\n"
 msgstr "לא מסוגל לשנות תג של קובץ: %s\n"
 
-#: src/file.c:2550
+#: src/file.c:2076
 #, c-format
 msgid "Could not open '%s' for reading and writing.\n"
 msgstr "אי אפשר לפתוח את '%s' לקריאה וכתיבה.\n"
 
-#: src/file.c:2557
+#: src/file.c:2083
 #, c-format
 msgid "Could not obtain lock on '%s'.\n"
 msgstr "אי אשפר להשיג נעילה על '%s'.\n"
 
 #. error!
-#: src/file.c:2574 src/file.c:2583 src/file.c:2594 src/file.c:2604
+#: src/file.c:2100 src/file.c:2109 src/file.c:2120 src/file.c:2130
 #, c-format
 msgid "Malformed line in '%s': %s\n"
 msgstr "שורה לא תקינה ב '%s' : %s\n"
 
 #. gint id,
 #. gboolean modal,
-#: src/file.c:2633
+#: src/file.c:2159
 msgid "Remove offline playcounts?"
 msgstr "הסר מספור השמעות לא מקוון?"
 
 #. title
-#: src/file.c:2634
+#: src/file.c:2160
 msgid ""
 "Some tracks played offline could not be found in the iTunesDB. Press 'OK' to "
 "remove them from the offline playcount file, 'Cancel' to keep them."
@@ -1158,106 +2862,106 @@
 "אי אפשר לאתר מספר רצועות שנוגנו בצורה לא מקוונת ב-iTunesDB. לחץ על 'אישור' "
 "להסיר אותן ממספור ההשמעה הלא מקוון, ועל 'ביטול' להשאיר אותן."
 
-#: src/file.c:2651
+#: src/file.c:2177
 #, c-format
 msgid "Error writing to '%s'.\n"
 msgstr "תקלה בכתיבה ל-'%s'.\n"
 
-#: src/file.c:2700
+#: src/file.c:2232 src/tools.c:269
 #, fuzzy, c-format
 msgid ""
 "Normalization failed: file type not supported (%s).\n"
 "\n"
 msgstr "נרמול נכשל: סוג קובץ לא נתמך.\n"
 
-#: src/file.c:2715
+#: src/file.c:2248 src/tools.c:286
 #, fuzzy, c-format
 msgid ""
 "Normalization failed: file not available (%s).\n"
 "\n"
 msgstr "נרמול נכשל: קובץ לא קיים.\n"
 
-#: src/file_export.c:181
+#: src/file_export.c:182
 #, c-format
 msgid "Skipping existing file with same length: '%s'\n"
 msgstr "מדלג על קובץ קיים עם אורך זהה: '%s'\n"
 
-#: src/file_export.c:189
+#: src/file_export.c:190
 #, c-format
 msgid "Overwriting existing file: '%s'\n"
 msgstr "כותב על קובץ קיים: '%s'\n"
 
-#: src/file_export.c:206
+#: src/file_export.c:207
 #, c-format
 msgid "Error copying '%s' to '%s': Permission Error (%s)\n"
 msgstr "תקלה בהעתקת '%s' ל '%s': תקלת הרשאות (%s)\n"
 
-#: src/file_export.c:208
+#: src/file_export.c:209
 #, c-format
 msgid "Error copying '%s' to '%s' (%s)\n"
 msgstr "תקלה בהעתקת '%s' ל '%s' (%s)\n"
 
-#: src/file_export.c:216
+#: src/file_export.c:217
 #, c-format
 msgid "Unable to open '%s' for reading\n"
 msgstr "אי אפשר לפתוח את '%s' לקריאה\n"
 
-#: src/file_export.c:323
+#: src/file_export.c:327
 #, c-format
 msgid "Could find file for '%s' on the iPod\n"
 msgstr "אי אפשר למצוא את הקובץ '%s' על ה-iPod\n"
 
 #. create the dialog window
-#: src/file_export.c:390 src/file_itunesdb.c:1062 src/tools.c:148
+#: src/file_export.c:395 src/file_itunesdb.c:1230 src/tools.c:359
 msgid "Information"
 msgstr "מידע"
 
-#: src/file_export.c:401 src/tools.c:160
+#: src/file_export.c:406 src/tools.c:371
 msgid "Press button to abort."
 msgstr "לביטול לחץ על הכפתור."
 
-#: src/file_export.c:414
+#: src/file_export.c:419
 msgid "copying..."
 msgstr "מעתיק..."
 
-#: src/file_export.c:468
+#: src/file_export.c:472
 #, c-format
 msgid "Failed to write '%s-%s'\n"
 msgstr "כישלון בכתיבה ל '%s-%s'\n"
 
-#: src/file_export.c:476
+#: src/file_export.c:485
 #, c-format
 msgid "Copied %d of %d track."
 msgid_plural "Copied %d of %d tracks."
 msgstr[0] "הועתק %d מתוך %d רצועה."
 msgstr[1] "הועתקו %d מתוך %d רצועות."
 
-#: src/file_export.c:494 src/file_itunesdb.c:1326 src/tools.c:307
+#: src/file_export.c:501 src/file_itunesdb.c:1495 src/tools.c:517
 #, c-format
 msgid "%d%% (%d:%02d:%02d left)"
 msgstr "%d%% (%d:%02d:%02d נותרו)"
 
-#: src/file_export.c:503
+#: src/file_export.c:510
 msgid "Some tracks were not copied."
 msgstr "מספר רצועות לא הועתקו."
 
-#: src/file_export.c:560
+#: src/file_export.c:575
 msgid "Export from iPod database not possible in offline mode."
 msgstr "יצוא ממסד הנתונים של ה-iPod הוא לא אפשרי במצב לא מקוון."
 
-#: src/file_export.c:568
+#: src/file_export.c:583
 msgid "Select Export Destination Directory"
 msgstr "בחר נתיב תיקיית יצוא"
 
-#: src/file_export.c:717
+#: src/file_export.c:732
 msgid "Drag from iPod database not possible in offline mode."
 msgstr "גרירה ממסד הנתונים של ה-iPod היא לא אפשרית במצב לא מקוון."
 
-#: src/file_export.c:751
+#: src/file_export.c:766
 msgid "The following tracks have to be copied to your harddisk"
 msgstr "הרצועות הבאות צריכות להיות מועתקות לכונן הקשיח שלך"
 
-#: src/file_export.c:796
+#: src/file_export.c:811
 msgid ""
 "Some tracks were not copied to your harddisk. Only the copied tracks will be "
 "included in the current drag and drop operation.\n"
@@ -1267,7 +2971,7 @@
 "הגרור & שחרר הנוכחית.\n"
 "\n"
 
-#: src/file_export.c:992
+#: src/file_export.c:1006
 #, c-format
 msgid ""
 "No valid filename for: %s\n"
@@ -1276,14 +2980,14 @@
 "קובץ לא תקין עבור: %s\n"
 "\n"
 
-#: src/file_export.c:1008
+#: src/file_export.c:1022
 #, c-format
 msgid "Created playlist with one track."
 msgid_plural "Created playlist with %d tracks."
 msgstr[0] "נוצרה רשימת השמעה עם רצועה אחת."
 msgstr[1] "נוצרה רשימת השמעה עם %d רצועות."
 
-#: src/file_export.c:1015
+#: src/file_export.c:1027
 #, c-format
 msgid ""
 "Could not open '%s' for writing (%s).\n"
@@ -1292,25 +2996,25 @@
 "אי אפשר לפתוח את '%s' לכתיבה (%s).\n"
 "\n"
 
-#: src/file_itunesdb.c:114
+#: src/file_itunesdb.c:115
 #, c-format
 msgid "Matching MD5 checksum for file %d/%d"
 msgstr ""
 
-#: src/file_itunesdb.c:242
+#: src/file_itunesdb.c:223
 msgid "Could not open \"iTunesDB.ext\" for reading extended info.\n"
 msgstr "אי אפשר לפתוח את \"iTunesDB.ext\" לקריאת מידע מורחב.\n"
 
-#: src/file_itunesdb.c:249
+#: src/file_itunesdb.c:230
 msgid "Could not create hash value from itunesdb\n"
 msgstr "אי אפשר ליצור ערך ערבוב עבור itunesdb\n"
 
-#: src/file_itunesdb.c:263
+#: src/file_itunesdb.c:244
 #, c-format
 msgid "Error while reading extended info: %s\n"
 msgstr "תקלה בזמן קריאת מידע מורחב: %s\n"
 
-#: src/file_itunesdb.c:280
+#: src/file_itunesdb.c:261
 #, c-format
 msgid ""
 "iTunesDB '%s' does not match checksum in extended information file '%s'\n"
@@ -1323,7 +3027,7 @@
 "gtkpod ינסה להתאים את המידע על ידי שימוש ב-MD5. דבר זה עלול לקחת זמן רב.\n"
 "\n"
 
-#: src/file_itunesdb.c:292
+#: src/file_itunesdb.c:273
 #, c-format
 msgid ""
 "%s:\n"
@@ -1332,7 +3036,7 @@
 "%s:\n"
 "מצפים ל \"itunesdb_hash=\" אבל קיבלנו:\"%s\"\n"
 
-#: src/file_itunesdb.c:352
+#: src/file_itunesdb.c:333
 #, c-format
 msgid ""
 "%s:\n"
@@ -1341,7 +3045,7 @@
 "%s:\n"
 "תקלת פורמט: %s\n"
 
-#: src/file_itunesdb.c:407
+#: src/file_itunesdb.c:377
 msgid ""
 "No MD5 checksums on individual tracks are available.\n"
 "\n"
@@ -1355,7 +3059,7 @@
 "ביקורת) או הימנע משימוש בתוכנות אחרות מלבד gtkpod.\n"
 "\n"
 
-#: src/file_itunesdb.c:462
+#: src/file_itunesdb.c:439
 msgid ""
 "Extended info will not be used. If you have non-transferred tracks,\n"
 "these will be lost.\n"
@@ -1363,15 +3067,15 @@
 "מידע מורחב לא יהיה בשימוש. אם יש לך רצועות שלא הועברו,\n"
 "הן ילכו לאיבוד.\n"
 
-#: src/file_itunesdb.c:470
+#: src/file_itunesdb.c:447
 msgid "Offline iPod database successfully imported"
 msgstr "מסד נתונים לא מקוון של iPod יובא בהצלחה."
 
-#: src/file_itunesdb.c:473
+#: src/file_itunesdb.c:450
 msgid "Local database successfully imported"
 msgstr "מסד נתונים מקומי יובא בהצלחה"
 
-#: src/file_itunesdb.c:481
+#: src/file_itunesdb.c:458
 #, c-format
 msgid ""
 "Offline iPod database import failed: '%s'\n"
@@ -1380,7 +3084,7 @@
 "כישלון ביבוא מסד נתונים לא מקוון של iPod: '%s'\n"
 "\n"
 
-#: src/file_itunesdb.c:485
+#: src/file_itunesdb.c:462
 #, c-format
 msgid ""
 "Local database import failed: '%s'\n"
@@ -1389,7 +3093,7 @@
 "כישלון ביבוא מסד נתונים מקומי: '%s'\n"
 "\n"
 
-#: src/file_itunesdb.c:492
+#: src/file_itunesdb.c:469
 msgid ""
 "Offline iPod database import failed: \n"
 "\n"
@@ -1397,7 +3101,7 @@
 "כישלון ביבוא מסד נתונים לא מקוון של iPod: \n"
 "\n"
 
-#: src/file_itunesdb.c:495
+#: src/file_itunesdb.c:472
 msgid ""
 "Local database import failed: \n"
 "\n"
@@ -1405,7 +3109,7 @@
 "כישלון ביבוא מסד נתונים מקומי: \n"
 "\n"
 
-#: src/file_itunesdb.c:502 src/file_itunesdb.c:550
+#: src/file_itunesdb.c:479
 #, c-format
 msgid ""
 "'%s' does not exist. Import aborted.\n"
@@ -1414,15 +3118,15 @@
 "יבוא בוטל. לא קיים '%s'\n"
 "\n"
 
-#: src/file_itunesdb.c:521
+#: src/file_itunesdb.c:502
 msgid "Extended info will not be used.\n"
 msgstr "מידע מורחב לא יהיה בשימוש.\n"
 
-#: src/file_itunesdb.c:528
+#: src/file_itunesdb.c:509
 msgid "iPod Database Successfully Imported"
 msgstr "מסד נתונים של iPod יובא בהצלחה."
 
-#: src/file_itunesdb.c:535
+#: src/file_itunesdb.c:516
 #, c-format
 msgid ""
 "iPod Database Import Failed: '%s'\n"
@@ -1431,7 +3135,7 @@
 "כישלון ביבוא מסד נתונים של iPod: '%s'\n"
 "\n"
 
-#: src/file_itunesdb.c:541
+#: src/file_itunesdb.c:522
 msgid ""
 "iPod Database Import Failed.\n"
 "\n"
@@ -1439,16 +3143,35 @@
 "כישלון ביבוא מסד נתונים של iPod: \n"
 "\n"
 
-#: src/file_itunesdb.c:890
+#: src/file_itunesdb.c:531
+#, fuzzy, c-format
+msgid ""
+"'%s' (or similar) does not exist. Import aborted.\n"
+"\n"
+msgstr ""
+"יבוא בוטל. לא קיים '%s'\n"
+"\n"
+
+#: src/file_itunesdb.c:817
 #, c-format
+msgid ""
+"Could not find iPod directory structure at '%s'.\n"
+"If you are sure that the iPod is properly mounted at '%s', gtkpod can create "
+"the directory structure for you.\n"
+"\n"
+"Do you want to create the directory structure now?\n"
+msgstr ""
+
+#: src/file_itunesdb.c:1071
+#, c-format
 msgid "Could not open \"%s\" for writing extended info.\n"
 msgstr "אי אפשר לפתוח \"%s\" לכתיבת מידע מורחב.\n"
 
-#: src/file_itunesdb.c:905
+#: src/file_itunesdb.c:1086
 msgid "Aborted writing of extended info.\n"
 msgstr "כתיבת מידע מורחב בוטלה.\n"
 
-#: src/file_itunesdb.c:1073
+#: src/file_itunesdb.c:1241
 msgid ""
 "Press button to abort.\n"
 "Export can be continued at a later time."
@@ -1456,26 +3179,26 @@
 "לחץ על הכפתור לביטול.\n"
 "בכל עת ניתן להמשיך את היצוא."
 
-#: src/file_itunesdb.c:1142
+#: src/file_itunesdb.c:1310
 msgid "deleting..."
 msgstr "מוחק..."
 
-#: src/file_itunesdb.c:1246
+#: src/file_itunesdb.c:1413
 msgid "preparing to copy..."
 msgstr "מתכונן להעתיק..."
 
-#: src/file_itunesdb.c:1309
+#: src/file_itunesdb.c:1480
 #, c-format
 msgid "Copied %d of %d new track."
 msgid_plural "Copied %d of %d new tracks."
 msgstr[0] "הועתקו %d מתוך %d רצועה חדשה."
 msgstr[1] "הועתקו %d מתוך %d רצועות חדשות."
 
-#: src/file_itunesdb.c:1336
+#: src/file_itunesdb.c:1506
 msgid "Some tracks were not written to iPod. Export aborted!"
 msgstr "מספר רצועות לא נכתבו ל-iPod. יצוא בוטל!"
 
-#: src/file_itunesdb.c:1389
+#: src/file_itunesdb.c:1557
 #, c-format
 msgid ""
 "You did not import the existing iTunesDB ('%s'). This is most likely "
@@ -1491,65 +3214,68 @@
 "לחץ אישור אם תרצה להמשיך בכל זאת או ביטול לדלג על השמירה. אם תבטל, תוכל "
 "לייבא את מסד הנתונים הקיים לפני קריאה לפונקציה זו שוב.\n"
 
-#: src/file_itunesdb.c:1419
+#: src/file_itunesdb.c:1588
 msgid ""
 "iPod directory structure must be present before synching to the iPod can be "
 "performed.\n"
 msgstr "מבנה התיקיות של ה-iPod חייב להיות זמין לפני סנכרון ה-iPod.\n"
 
-#: src/file_itunesdb.c:1428
+#: src/file_itunesdb.c:1597
 msgid "Some tracks could not be deleted from the iPod. Export aborted!"
 msgstr "מספר רצועות לא יכלו להימחק מה-iPod. יצוא בוטל!"
 
-#: src/file_itunesdb.c:1444
-msgid "Now writing iTunesDB. Please wait..."
+#: src/file_itunesdb.c:1613
+#, fuzzy
+msgid "Now writing database. Please wait..."
 msgstr "כותב כעת iTunesDB. אנא המתן..."
 
-#: src/file_itunesdb.c:1490
+#: src/file_itunesdb.c:1659
 #, c-format
 msgid "Extended information file not deleted: '%s'"
 msgstr "קובץ מידע מורחב לא נמחק: '%s'"
 
-#: src/file_itunesdb.c:1577
-msgid "iPod Database Saved"
+#: src/file_itunesdb.c:1745
+#, fuzzy, c-format
+msgid "%s: Database saved"
 msgstr "מסד נתונים של iPod נשמר"
 
-#: src/file_itunesdb.c:1636
-msgid "Syncing contacts, calendar and notes..."
-msgstr "מסנכרן אנשי קשר, יומן ופתקים..."
+#: src/file_itunesdb.c:1749
+#, c-format
+msgid "%s: Changes saved"
+msgstr ""
 
-#: src/fileselection.c:123
+#: src/fileselection.c:127
 msgid "Successfully added files"
 msgstr "קבצים הוספו בהצלחה"
 
-#: src/fileselection.c:125
+#: src/fileselection.c:129
 msgid "Some files were not added successfully"
 msgstr "מספר קבצים לא הוספו בהצלחה"
 
 #. Create the file chooser, and handle the response
-#: src/fileselection.c:148
+#: src/fileselection.c:157
 msgid "Add Files"
 msgstr "הוספת קבצים"
 
 #. Create the file chooser, and handle the response
-#: src/fileselection.c:227
+#: src/fileselection.c:250
 msgid "Add Playlists"
 msgstr "הוספת רשימת השמעה"
 
 #. Create the file chooser, and handle the response
-#: src/fileselection.c:270
+#: src/fileselection.c:297
 msgid "Set Cover"
 msgstr ""
 
-#: src/fileselection.c:491
+#: src/fileselection.c:718
 msgid "Select directory to add recursively"
 msgstr "בחר תיקייה להוספה רקורסיבית"
 
-#: src/fileselection.c:759
+#: src/fileselection.c:989
 msgid "Ok"
 msgstr "אישור"
 
-#: src/fileselection.c:768
+#: src/fileselection.c:998
 msgid "Cancel"
 msgstr "ביטול"
 
@@ -1612,62 +3338,80 @@
 msgid "%s: option `-W %s' doesn't allow an argument\n"
 msgstr "%s: אפשרות`-W %s' אינה מאפשרת ארגומנט\n"
 
-#: src/info.c:377
+#: src/info.c:383
 msgid "n/c"
 msgstr "n/c"
 
-#: src/info.c:382 src/info.c:793
+#: src/info.c:388 src/info.c:835
 msgid "offline"
 msgstr "לא מקוון"
 
-#: src/info.c:469
+#: src/info.c:483
 #, c-format
 msgid " P:%d T:%d/%d"
 msgstr " P:%d T:%d/%d"
 
-#: src/info.c:732
+#: src/info.c:777
 msgid "B"
 msgstr "בתים"
 
-#: src/info.c:732
+#: src/info.c:777
 msgid "kB"
 msgstr "ק\"ב"
 
-#: src/info.c:732
+#: src/info.c:777
 msgid "TB"
 msgstr "ט\"ב"
 
-#: src/info.c:778
+#: src/info.c:820
 #, c-format
 msgid " %s Free"
 msgstr " %s זמין"
 
-#: src/info.c:783
+#: src/info.c:825
 #, c-format
 msgid " %s Pending"
 msgstr " %s ממתין"
 
-#: src/info.c:788
+#: src/info.c:830
 msgid " disconnected"
 msgstr " מנותק"
 
-#: src/md5.c:159
+#: src/info.c:881
+#, fuzzy
+msgid "No database or playlist selected"
+msgstr "לא נבחרה רשימת השמעה"
+
+#: src/info.c:886
+msgid "No tracks selected"
+msgstr "לא נבחרו רצועות"
+
+#: src/info.c:891
+msgid "No playlist selected"
+msgstr "לא נבחרה רשימת השמעה"
+
+#: src/info.c:896
+#, fuzzy
+msgid "No iPod or iPod playlist selected"
+msgstr "לא נבחרה רשימת השמעה"
+
+#: src/md5.c:187
 msgid "Hashed file is 0 bytes long\n"
 msgstr "קובץ מעורבב (Hashed) בעל גודל של 0\n"
 
-#: src/md5.c:208
+#: src/md5.c:240
 #, c-format
 msgid "Could not open '%s' to calculate MD5 checksum: %s\n"
 msgstr "לא יכול לפתוח את '%s' על מנת לחשב סכומי ביקורת: %s\n"
 
-#: src/misc.c:78
+#: src/misc.c:79
 #, c-format
 msgid ""
 "gtkpod Version %s: Cross-Platform Multi-Lingual Interface to Apple's iPod"
 "(tm)."
 msgstr "גרסת gtkpod %s: ממשק חוצה-פלטפורמות רב-שפות לאייפוד(TM) של אפל."
 
-#: src/misc.c:82
+#: src/misc.c:83
 #, fuzzy
 msgid ""
 "(C) 2002 - 2005\n"
@@ -1682,7 +3426,7 @@
 "\n"
 "\n"
 
-#: src/misc.c:88
+#: src/misc.c:89
 msgid ""
 "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 "
@@ -1701,7 +3445,7 @@
 "\n"
 msgstr ""
 
-#: src/misc.c:96
+#: src/misc.c:97
 msgid ""
 "Patches were supplied by the following people (list may be incomplete -- "
 "please contact me)\n"
@@ -1711,19 +3455,19 @@
 "איתי קשר)\n"
 "\n"
 
-#: src/misc.c:98
+#: src/misc.c:99
 msgid "Ramesh Dharan: Multi-Edit (edit tags of several tracks in one run)\n"
 msgstr "רמס דהאראן: עריכה-מרובה (עריכת תגיות של מספר רצועות בו זמנית)\n"
 
-#: src/misc.c:100
+#: src/misc.c:101
 msgid "Hiroshi Kawashima: Japanese charset autodetecion feature\n"
 msgstr "הירושי קאוואשימה: זיהוי אוטומטי של ערכת תווים יפנית.\n"
 
-#: src/misc.c:102
+#: src/misc.c:103
 msgid "Adrian Ulrich: porting of playlist code from mktunes.pl to itunesdb.c\n"
 msgstr "אדריאן אלריך: הסבה של קוד רשימות השמעה מ mktunes.pl ל itunesdb.c\n"
 
-#: src/misc.c:104
+#: src/misc.c:105
 msgid ""
 "Walter Bell: correct handling of DND URIs with escaped characters and/or cr/"
 "newlines at the end\n"
@@ -1731,15 +3475,15 @@
 "וולטר בל: טיפול נכון בנתיבי גרירה ושחרור עם תווים מיוחדים או תווי cr ושורות "
 "חדשות בסוף\n"
 
-#: src/misc.c:106
+#: src/misc.c:107
 msgid "Sam Clegg: user defined filenames when exporting tracks from the iPod\n"
 msgstr "סאם קלאג: קביעת שמות קבצים על ידי משתמש בזמן ייצוא רצועות מה-iPod\n"
 
-#: src/misc.c:108
+#: src/misc.c:109
 msgid "Chris Cutler: automatic creation of various playlist types\n"
 msgstr "כריס קוטלר: יצירת סוגים שונים של רשימות השמעה אוטומטית\n"
 
-#: src/misc.c:110
+#: src/misc.c:111
 msgid ""
 "Graeme Wilford: reading and writing of the 'Composer' ID3 tags, progress "
 "dialogue during sync\n"
@@ -1747,7 +3491,7 @@
 "גרהאם וילפורד: קריאה וכתיבה של תגיות הID3 של ה'יוצר', פקד התקדמות בזמן "
 "סנכרון\n"
 
-#: src/misc.c:112
+#: src/misc.c:113
 msgid ""
 "Edward Matteucci: debugging, special playlist creation, most of the volume "
 "normalizing code\n"
@@ -1755,48 +3499,48 @@
 "אדוארד מאטוצ'י : דיבוג, יצירת רשימות השמעה מיוחדות, רוב הקוד של נירמול "
 "הקול.\n"
 
-#: src/misc.c:114
+#: src/misc.c:115
 msgid "Jens Lautenbach: some optical improvements\n"
 msgstr "ז'אנס לאוטנבאך: מספר שיפורים אופטיים\n"
 
-#: src/misc.c:116
+#: src/misc.c:117
 msgid "Alex Tribble: iPod eject patch\n"
 msgstr "אלכס טריבל: טלאי שחרור iPod\n"
 
-#: src/misc.c:118
+#: src/misc.c:119
 msgid "Yaroslav Halchenko: Orphaned and dangling tracks handling\n"
 msgstr "ירוסלב אלצ'נקו: טיפול ברצועות יתומות ומתנדנדות\n"
 
-#: src/misc.c:120
+#: src/misc.c:121
 msgid ""
 "Andrew Huntwork: Filename case sensitivity fix and various other bugfixes\n"
 msgstr ""
 "אנדרו הנטוורק: טיפול בהבחנה באותיות גדולות/קטנות בשמות קבצים ומספר באגים "
 "נוספים\n"
 
-#: src/misc.c:122
+#: src/misc.c:123
 msgid ""
 "Ero Carrera: Filename validation and quick sync when copying tracks from the "
 "iPod\n"
 msgstr "אירו קאררה: בדיקת קבצים וסנכרון מהיר בזמן העתקת רצועות מה-iPod\n"
 
-#: src/misc.c:124
+#: src/misc.c:125
 msgid "Jens Taprogge: Support for LAME's replay gain tag to normalize volume\n"
 msgstr "ז'אנס טאפרוג: תמיכה בנרמול עוצמת קול של LAME\n"
 
-#: src/misc.c:126
+#: src/misc.c:127
 msgid "Armando Atienza: Support with external playcounts\n"
 msgstr "ארמנדו אטיאנזה: תמיכה בספירה השמעה חיצונית\n"
 
-#: src/misc.c:128
+#: src/misc.c:129
 msgid "D.L. Sharp: Support for m4b files (bookmarkable AAC files)\n"
 msgstr "ד.ה. שרפ: תמיכה בקבצי m4b (קבצי AAC עם תגיות)\n"
 
-#: src/misc.c:130
+#: src/misc.c:131
 msgid "Jim Hall: Decent INSTALL file\n"
 msgstr "ג'ים הול: הליך התקנה נורמלי\n"
 
-#: src/misc.c:132
+#: src/misc.c:133
 msgid ""
 "Juergen Helmers, Markus Gaugusch: Conversion scripts to sync calendar/"
 "contacts to the iPod\n"
@@ -1804,11 +3548,11 @@
 "יורגן הלמרס, מרכוס גאוגושס: תסריטי המרה לסנכרון היומן/אנשי קשר אל ה-iPod\n"
 
 #. J"urgen!
-#: src/misc.c:134
+#: src/misc.c:135
 msgid "Flavio Stanchina: bugfixes\n"
 msgstr "פלאביו סטאנצינה: תיקון באגים\n"
 
-#: src/misc.c:136
+#: src/misc.c:137
 msgid ""
 "Chris Micacchi: when sorting ignore 'the' and similar at the beginning of "
 "the title\n"
@@ -1816,70 +3560,73 @@
 "כריס מיקאצ'י: בזמן מיון התעלם מתחילות כגון ה' הידיעה (the) ואחרים בתחילת שם "
 "הרצועה\n"
 
-#: src/misc.c:138
+#: src/misc.c:139
 msgid "Steve Jay: use statvfs() instead of df (better portability, faster)\n"
 msgstr ""
 "סטיב גאי: השתמש ב-statvfs() במקום ב-df (מהיר יותר, וניתן להמרה לפלטפורמות "
 "שונות בקלות יותר)\n"
 
-#: src/misc.c:141
+#: src/misc.c:142
 msgid ""
 "Christoph Kunz: address compatibility issues when writing id3v2.4 type mp3 "
 "tags\n"
 msgstr "כריסטוף קונץ: טיפול בבעיות תאימות בזמן כתיבת תגיות id3v2.4 בקבצי mp3\n"
 
-#: src/misc.c:144
+#: src/misc.c:145
+#, fuzzy
 msgid ""
-"James Ligget: replacement of old GTK file selection dialogs with new GTK "
-"filechooser dialogs\n"
+"James Liggett:\n"
+"     replacement of old GTK file selection dialogs with new GTK filechooser "
+"dialogs\n"
+"     refactored user preferences system.\n"
 msgstr ""
 "ג'יימס ליגט: החלפה של מסכי בחירת הקבצים הישנים של GTK עם מסכים החדשים של "
 "GTK\n"
 
-#: src/misc.c:147
+#: src/misc.c:150
 msgid "Daniel Kercher: sync scripts for abook and webcalendar\n"
 msgstr "דניאל קרצר: קבצי סנכרון בשביל abook ו-webcalender\n"
 
-#: src/misc.c:150
+#: src/misc.c:153
 msgid "Clinton Gormley: sync scripts for thunderbird\n"
 msgstr "קלינטון גורמלי: קבצי אצווה לסינכרון עם thunderbird\n"
 
-#: src/misc.c:153
+#: src/misc.c:156
 #, fuzzy
 msgid "Sebastien Beridot: sync script for ldif addressbook format\n"
 msgstr "קלינטון גורמלי: קבצי אצווה לסינכרון עם thunderbird\n"
 
-#: src/misc.c:156
+#: src/misc.c:159
 #, fuzzy
 msgid "Sebastian Scherer: sync script for kNotes\n"
 msgstr "קלינטון גורמלי: קבצי אצווה לסינכרון עם thunderbird\n"
 
-#: src/misc.c:159
+#: src/misc.c:162
 msgid "Nick Piper: sync script for Palm, type-ahead search\n"
 msgstr ""
 
-#: src/misc.c:162
+#: src/misc.c:165
 msgid "Uwe Hermann: help with support for iPod Video\n"
 msgstr ""
 
-#: src/misc.c:165
+#: src/misc.c:168
 msgid ""
 "Iain Benson: support for compilation tag in mp3 files and separate display "
 "of compilations in the sort tab.\n"
 msgstr ""
 
-#: src/misc.c:167
+#: src/misc.c:170
 msgid ""
 "Nicolas Chariot: icons of buttons\n"
 "\n"
 "\n"
 msgstr ""
 
-#: src/misc.c:171
+#: src/misc.c:174
 msgid "This program borrows code from the following projects:\n"
 msgstr "התוכנה שואלת קוד מהפרוייקטים הבאים: \n"
 
-#: src/misc.c:173
+#: src/misc.c:176
 msgid ""
 "    gnutools: (mktunes.pl, ported to C) reading and writing of iTunesDB "
 "(http://www.gnu.org/software/gnupod/)\n"
@@ -1887,7 +3634,7 @@
 "    gnutools: (mktunes.pl, ported to C) reading and writing of iTunesDB "
 "(http://www.gnu.org/software/gnupod/)\n"
 
-#: src/misc.c:175
+#: src/misc.c:178
 msgid ""
 "    iPod.cpp, iPod.h by Samuel Wood (sam dot wood at gmail dot com): some "
 "code for smart playlists is based on his C++-classes.\n"
@@ -1895,80 +3642,70 @@
 "    iPod.cpp, iPod.h by Samuel Wood (sam dot wood at gmail dot com): some "
 "code for smart playlists is based on his C++-classes.\n"
 
-#: src/misc.c:177
+#: src/misc.c:180
 msgid "    mp3info:  mp3 playlength detection (http://ibiblio.org/mp3info/)\n"
 msgstr "    mp3info:  mp3 playlength detection (http://ibiblio.org/mp3info/)\n"
 
-#: src/misc.c:179
+#: src/misc.c:182
 msgid ""
 "    xmms:     dirbrowser, mp3 playlength detection (http://www.xmms.org)\n"
 msgstr ""
 "    xmms:     dirbrowser, mp3 playlength detection (http://www.xmms.org)\n"
 
-#: src/misc.c:182
+#: src/misc.c:185
 msgid ""
 "The GUI was created with the help of glade-2 (http://glade.gnome.org/).\n"
 msgstr ""
 "ממשק המשתמש הגרפי נבנה בעזרת glade-2\n"
 " (http://glade.gnome.org/).\n"
 
-#: src/misc.c:197
+#: src/misc.c:200
 msgid "French:   David Le Brun (david at dyn-ns dot net)\n"
 msgstr "צרפתית:\tדיוויד לה-ברון (david at dyn-ns dot net)\n"
 
-#: src/misc.c:199
+#: src/misc.c:202
 msgid "German:   Jorg Schuler (jcsjcs at users dot sourceforge dot net)\n"
 msgstr "גרמנית:\tיורג שולר (jcsjcs at users dot sourceforge dot net)\n"
 
-#: src/misc.c:201
+#: src/misc.c:204
 msgid "Hebrew: Assaf Gillat (gillata at gmail dot com)\n"
 msgstr "עברית:\tאסף גילת (gillata at gmail dot com)\n"
 
-#: src/misc.c:203
+#: src/misc.c:206
 msgid ""
 "Italian:  Edward Matteucci (edward_matteucc at users dot sourceforge dot "
 "net)\n"
 msgstr ""
 "איטלקית:\tאדוארד מאטוצ'י (edward_matteucc at users dot sourceforge dot net)\n"
 
-#: src/misc.c:205
+#: src/misc.c:208
 msgid "Japanese: Ayako Sano\n"
 msgstr "יפנית:\tאייקו סאנו\n"
 
-#: src/misc.c:207
+#: src/misc.c:210
 msgid "Japanese: Kentaro Fukuchi (fukuchi at users dot sourceforge dot net)\n"
 msgstr "יפנית:\tקונטרו פוקוצ'י (fukuchi at users dot sourceforge dot net)\n"
 
-#: src/misc.c:209
+#: src/misc.c:212
 msgid "Swedish: Stefan Asserhall (stefan asserhall at comhem dot se)\n"
 msgstr "שוודית:\tסטפן אסרהול (stefan asserhall at comhem dot se)\n"
 
-#: src/misc.c:332
-#, c-format
-msgid "Could not delete backup file: \"%s\"\n"
-msgstr "לא מסוגל למחוק קובץ גיבוי: \"%s\"\n"
+#: src/misc.c:936
+#, fuzzy, c-format
+msgid "Could not process '%s' (no filename available)"
+msgstr "קובץ לא קיים"
 
-#: src/misc.c:452
+#: src/misc.c:1084
 #, c-format
-msgid "Unmounting of '%s' (%s) unsuccessful."
-msgstr "ביטול עגינה של '%s' (%s) נכשלה."
-
-#: src/misc.c:456
-#, c-format
-msgid "Unmounting of '%s' unsuccessful."
-msgstr "ביטול עגינה של '%s' נכשלה."
-
-#: src/misc.c:1219
-#, c-format
 msgid "Unknown token '%%%c' in template '%s'"
 msgstr "אסימון לא ידוע '%%%c' בתבנית '%s'"
 
-#: src/misc.c:1301
+#: src/misc.c:1166
 #, c-format
 msgid "Template ('%s') does not match file type '%s'\n"
 msgstr "התבנית ('%s') לא מתאימה לסוג הקובץ '%s'\n"
 
-#: src/misc.c:1382
+#: src/misc.c:1247
 #, c-format
 msgid "Error creating %s: %s\n"
 msgstr "תקלה ביצירת %s: %s\n"
@@ -1984,7 +3721,7 @@
 msgid "The following has occured:"
 msgstr "אירע האירוע הבא:"
 
-#: src/misc_confirm.c:124
+#: src/misc_confirm.c:123
 msgid ""
 "Are you sure you want to delete the following track completely from your "
 "iPod? The number of playlists this track is a member of is indicated in "
@@ -2000,13 +3737,13 @@
 "האם אתה בטוח שברצונך למחוק את הרצועות הבאות לגמרי מה-iPod? מספר רשימות "
 "ההשמעה שהרצועות האלו חברות בהן מצוינות בסוגריים."
 
-#: src/misc_confirm.c:128
+#: src/misc_confirm.c:127
 msgid "Delete Track Completely from iPod?"
 msgid_plural "Delete Tracks Completey from iPod?"
 msgstr[0] "מחק את הרצועה לגמרי מה-iPod?"
 msgstr[1] "מחק את הרצועות לגמרי מה-iPod?"
 
-#: src/misc_confirm.c:138 src/misc_confirm.c:178
+#: src/misc_confirm.c:138 src/misc_confirm.c:179
 #, c-format
 msgid ""
 "Are you sure you want to remove the following track from the playlist \"%s\"?"
@@ -2016,7 +3753,7 @@
 msgstr[0] "האם אתה בטוח שברצונך להסיר את הרצועה הבאה מרשימת ההשמעה \"%s\"?"
 msgstr[1] "האם אתה בטוח שברצונך להסיר את הרצועות הבאות מרשימת ההשמעה \"%s\"?"
 
-#: src/misc_confirm.c:142 src/misc_confirm.c:182
+#: src/misc_confirm.c:142 src/misc_confirm.c:183
 msgid "Remove Track From Playlist?"
 msgid_plural "Remove Tracks From Playlist?"
 msgstr[0] "הסר את הרצועה מרשימת ההשמעה?"
@@ -2044,7 +3781,7 @@
 msgstr[0] "מחק את הרצועה מהדיסק הקשיח?"
 msgstr[1] "מחק את הרצועות מהדיסק הקשיח?"
 
-#: src/misc_confirm.c:192
+#: src/misc_confirm.c:193
 msgid ""
 "Are you sure you want to remove the following track completely from your "
 "local database? The number of playlists this track is a member of is "
@@ -2060,7 +3797,7 @@
 "האם אתה בטוח שברצונך למחוק את הרצועות הבאות לגמרי ממסד הנתונים המקומי? מספר "
 "רשימות ההשמעה שהרצועות האלו חברות בהן מצוינות בסוגריים."
 
-#: src/misc_confirm.c:196
+#: src/misc_confirm.c:197
 msgid "Remove Track from Local Database?"
 msgid_plural "Remove Tracks from Local Database?"
 msgstr[0] "הסר את הרצועה ממסד הנתונים המקומי?"
@@ -2094,66 +3831,55 @@
 msgstr[0] "נמחקה רצועה ממסד הנתונים המקומי"
 msgstr[1] "נמחקו %d רצועות ממסד הנתונים המקומי"
 
-#. no playlist??? Cannot happen, but...
-#. no playlist selected
-#: src/misc_confirm.c:336 src/misc_confirm.c:432 src/misc_confirm.c:674
-#: src/misc_track.c:1509
-msgid "No playlist selected."
-msgstr "לא נבחרה רשימת השמעה."
-
-#. no tracks selected
-#: src/misc_confirm.c:345
-msgid "No tracks selected."
-msgstr "לא נבחרו רצועות."
-
-#: src/misc_confirm.c:448
+#: src/misc_confirm.c:438
 msgid "Cannot remove entry 'All'"
 msgstr "לא מסוגל להסיר רשומה 'הכל'"
 
-#: src/misc_confirm.c:541
+#: src/misc_confirm.c:532
 #, c-format
 msgid "Removed all %d tracks from the iPod"
 msgstr "הוסרו כל %d הרצועות מה-iPod"
 
-#: src/misc_confirm.c:546
+#: src/misc_confirm.c:537
 #, fuzzy
 msgid "Removed all podcasts from the iPod"
 msgstr "הוסרו כל %d הרצועות מה-iPod"
 
-#: src/misc_confirm.c:556 src/misc_confirm.c:626
+#: src/misc_confirm.c:546 src/misc_confirm.c:620
 #, c-format
 msgid "Deleted playlist '%s' including %d member track"
 msgid_plural "Deleted playlist '%s' including %d member tracks"
 msgstr[0] "נמחקה רשימת השמעה '%s' כולל רצועה %d"
 msgstr[1] "נמחקה רשימת השמעה '%s' כולל %d רצועות"
 
-#: src/misc_confirm.c:570 src/misc_confirm.c:640
+#. first use playlist name
+#: src/misc_confirm.c:562 src/misc_confirm.c:636
 #, c-format
 msgid "Deleted playlist '%s'"
 msgstr "נמחקה רשומה '%s'"
 
-#: src/misc_confirm.c:603
+#: src/misc_confirm.c:596
 #, c-format
 msgid "Deleted playlist '%s' including %d member track on harddisk"
 msgid_plural "Deleted playlist '%s' including %d member tracks on harddisk"
 msgstr[0] "נמחקה רשימת השמעה '%s' כולל רצועה %d מהדיסק הקשיח"
 msgstr[1] "נמחקה רשימת השמעה '%s' כולל %d רצועות מהדיסק הקשיח"
 
-#: src/misc_confirm.c:618
+#: src/misc_confirm.c:613
 #, c-format
 msgid "Removed all %d tracks from the database"
 msgstr "הסר את כל %d הרצועות ממסד הנתונים"
 
-#: src/misc_confirm.c:693
+#: src/misc_confirm.c:691
 msgid "Are you sure you want to remove all tracks from your iPod?"
 msgstr "האם אתה בטוח שאתה רוצה להסיר את כל הרצועות מה-iPod?"
 
-#: src/misc_confirm.c:698
+#: src/misc_confirm.c:696
 #, fuzzy
 msgid "Are you sure you want to remove all podcasts from your iPod?"
 msgstr "האם אתה בטוח שאתה רוצה להסיר את כל הרצועות מה-iPod?"
 
-#: src/misc_confirm.c:706
+#: src/misc_confirm.c:704
 #, c-format
 msgid ""
 "Are you sure you want to delete playlist '%s' and the following track "
@@ -2170,12 +3896,12 @@
 "האם אתה בטוח שברצונך למחוק את רשימת ההשמעה '%s' ואת הרצועות הבאות לגמרי מה-"
 "iPod? מספר רשימות ההשמעה שהרצועות האלו חברות בהן מצוינות בסוגריים."
 
-#: src/misc_confirm.c:717 src/misc_confirm.c:772
+#: src/misc_confirm.c:715 src/misc_confirm.c:770
 #, c-format
 msgid "Are you sure you want to delete the playlist '%s'?"
 msgstr "האם אתה בטח שאתה רוצה למחוק את רשימת ההשמעה '%s'?"
 
-#: src/misc_confirm.c:743
+#: src/misc_confirm.c:741
 #, c-format
 msgid ""
 "Are you sure you want to delete playlist '%s' and remove the following track "
@@ -2192,11 +3918,11 @@
 "האם אתה בטוח שברצונך למחוק את רשימת ההשמעה '%s' ואת הרצועות הבאות לגמרי "
 "מהדיסק הקשיח? מספר רשימות ההשמעה שהרצועות האלו חברות בהן מצוינות בסוגריים."
 
-#: src/misc_confirm.c:751
+#: src/misc_confirm.c:749
 msgid "Are you sure you want to remove all tracks from the database?"
 msgstr "האם אתה בטוח שאתה רוצה להסיר את כל הרצועות ממסד הנתונים?"
 
-#: src/misc_confirm.c:760
+#: src/misc_confirm.c:758
 #, c-format
 msgid ""
 "Are you sure you want to delete playlist '%s' and remove the following track "
@@ -2213,28 +3939,7 @@
 "האם אתה בטוח שברצונך למחוק את רשימת ההשמעה '%s' ואת הרצועות הבאות לגמרי ממסד "
 "הנתונים? מספר רשימות ההשמעה שהרצועות האלו חברות בהן מצוינות בסוגריים."
 
-#: src/misc_confirm.c:960
-#, c-format
-msgid "Problem creating iPod directory: '%s'."
-msgstr "בעיות ביצירת תיקיית iPod: '%s'."
-
-#: src/misc_confirm.c:962
-#, c-format
-msgid "Successfully created iPod directories in '%s'."
-msgstr "תיקיות ה-iPod נוצרו בהצלחה ב - '%s'."
-
-#. gint id,
-#. gboolean modal,
-#: src/misc_confirm.c:1001
-msgid "Create iPod directories"
-msgstr "יצירת תיקיות iPod"
-
-#. title
-#: src/misc_confirm.c:1002
-msgid "OK to create the following directories?"
-msgstr "האם ליצור את התיקיות הבאות?"
-
-#: src/misc_confirm.c:1066
+#: src/misc_confirm.c:859
 msgid ""
 "Data has been changed and not been saved.\n"
 "OK to exit gtkpod?"
@@ -2326,55 +4031,78 @@
 msgid "Checked"
 msgstr ""
 
-#: src/misc_conversion.c:108
+#. 35
+#: src/misc_conversion.c:96
+#, fuzzy
+msgid "Start time"
+msgstr "בפעם האחרונה"
+
+#: src/misc_conversion.c:97
+#, fuzzy
+msgid "Stop time"
+msgstr "עצור"
+
+#: src/misc_conversion.c:98
+msgid "Remember Playback Position"
+msgstr ""
+
+#: src/misc_conversion.c:99
+msgid "Skip when Shuffling"
+msgstr ""
+
+#: src/misc_conversion.c:100
+msgid "Artwork Path"
+msgstr ""
+
+#: src/misc_conversion.c:113
 msgid "Name of file on PC, if available"
 msgstr "שם הקובץ על ה-PC, אם קיים"
 
-#: src/misc_conversion.c:109
+#: src/misc_conversion.c:114
 msgid "Name of file on the iPod"
 msgstr "שם הקובץ על ה-iPod"
 
 #. 10
-#: src/misc_conversion.c:111
+#: src/misc_conversion.c:116
 msgid "Track Nr. and total number of tracks on CD"
 msgstr "מספר רצועה וסך כל מספר הרצועות על דיסק השמע"
 
-#: src/misc_conversion.c:112
+#: src/misc_conversion.c:117
 msgid "Whether the file has already been transferred to the iPod or not"
 msgstr "האם הקובץ הועבר כבר אל ה-iPod או לא"
 
-#: src/misc_conversion.c:118
+#: src/misc_conversion.c:123
 msgid ""
 "Supposedly something that tells the iPod to increase or decrease the "
 "playback speed"
 msgstr "לכאורה משהו המסמן ל-iPod להגביר או להנמיך את מהירות ההשמעה"
 
-#: src/misc_conversion.c:120
+#: src/misc_conversion.c:125
 msgid "Number of times the track has been played"
 msgstr "מספר הפעמים שהרצועה הושמעה"
 
-#: src/misc_conversion.c:121
+#: src/misc_conversion.c:126
 msgid "Star rating from 0 to 5"
 msgstr "דירוג כוכבים החל מ 0 עד 5"
 
-#: src/misc_conversion.c:122
+#: src/misc_conversion.c:127
 msgid "Date and time track has been added"
 msgstr "תאריך ושעה שהרצועה הוספה"
 
 #. 20
-#: src/misc_conversion.c:123
+#: src/misc_conversion.c:128
 msgid "Date and time track has last been played"
 msgstr "תאריך ושעה שהרצועה הושמעה לאחרונה"
 
-#: src/misc_conversion.c:124
+#: src/misc_conversion.c:129
 msgid "Date and time track has last been modified"
 msgstr "תאריך ושעה שהרצועה שונתה לאחרונה"
 
-#: src/misc_conversion.c:125
+#: src/misc_conversion.c:130
 msgid "Manual volume adjust"
 msgstr "שינוי עוצמת קול ידנית"
 
-#: src/misc_conversion.c:126
+#: src/misc_conversion.c:131
 msgid ""
 "Volume adjust in dB (replay gain) -- you need to activate 'soundcheck' on "
 "the iPod"
@@ -2382,86 +4110,82 @@
 "תיקון עוצמת קול בדציבלים (הגבר השמעה) -- צריך להפעיל 'soundcheck' על ה-iPod"
 
 #. 25
-#: src/misc_conversion.c:129
+#: src/misc_conversion.c:134
 msgid "CD Nr. and total number of CDS in set"
 msgstr "מספר דיסק שמע וסך כל דיסקי השמע בקבוצה"
 
-#: src/misc_conversion.c:132
+#: src/misc_conversion.c:137
 msgid ""
 "The category (e.g. 'Technology' or 'Music') where the podcast was located."
 msgstr ""
 
-#: src/misc_conversion.c:133
+#: src/misc_conversion.c:138
 msgid "Accessible by selecting the center button on the iPod."
 msgstr ""
 
-#: src/misc_conversion.c:137
+#: src/misc_conversion.c:142
 msgid "Release date (for podcasts displayed next to the title on the iPod)"
 msgstr ""
 
-#: src/misc_conversion.c:639
+#: src/misc_conversion.c:649
 #, c-format
 msgid "The URI '%s' is not an absolute URI using the file scheme"
 msgstr "הנתיב '%s' הוא נתיב לא מוחלט המשתמש בתבנית הקובץ"
 
-#: src/misc_conversion.c:649
+#: src/misc_conversion.c:659
 #, c-format
 msgid "The local file URI '%s' may not include a '#'"
 msgstr "שם הקובץ המקומי בנתיב '%s' לא יכול לכלול '#'"
 
-#: src/misc_conversion.c:666
+#: src/misc_conversion.c:676
 #, c-format
 msgid "The URI '%s' is invalid"
 msgstr "הנתיב '%s' הוא לא חוקי"
 
-#: src/misc_conversion.c:678
+#: src/misc_conversion.c:688
 #, c-format
 msgid "The hostname of the URI '%s' is invalid"
 msgstr "שם השרת של הנתיב '%s' הוא לא חוקי."
 
-#: src/misc_conversion.c:694
+#: src/misc_conversion.c:704
 #, c-format
 msgid "The URI '%s' contains invalidly escaped characters"
 msgstr "הנתיב URI '%s' מכיל תווים לא חוקיים"
 
-#: src/misc_playlist.c:68 src/misc_playlist.c:95 src/misc_playlist.c:416
+#: src/misc_playlist.c:68 src/misc_playlist.c:95 src/misc_playlist.c:430
 msgid "Please enter a name for the new playlist"
 msgstr "הכנס בבקשה את השם של רשימת ההשמעה החדשה"
 
-#: src/misc_playlist.c:97 gtkpod.glade:578 gtkpod.glade:772 gtkpod.glade:7128
-msgid "Smart Playlist"
-msgstr "רשימת השמעה חכמה"
-
-#: src/misc_playlist.c:146
+#: src/misc_playlist.c:155
 msgid "AR:"
 msgstr "ביצוע:"
 
-#: src/misc_playlist.c:149
+#: src/misc_playlist.c:158
 msgid "AL:"
 msgstr "כותר:"
 
-#: src/misc_playlist.c:152
+#: src/misc_playlist.c:161
 msgid "GE:"
 msgstr "סוג:"
 
-#: src/misc_playlist.c:155
+#: src/misc_playlist.c:164
 msgid "CO:"
 msgstr "מחבר:"
 
-#: src/misc_playlist.c:158
+#: src/misc_playlist.c:167
 msgid "YE:"
 msgstr "שנה:"
 
-#: src/misc_playlist.c:186
+#: src/misc_playlist.c:195
 msgid "Unknown"
 msgstr "לא ידוע"
 
-#: src/misc_playlist.c:256
+#: src/misc_playlist.c:273
 #, c-format
 msgid "Random (%d)"
 msgstr "אקראי (%d)"
 
-#: src/misc_playlist.c:281
+#: src/misc_playlist.c:298
 msgid ""
 "Auto Store of track view disabled.\n"
 "\n"
@@ -2469,11 +4193,11 @@
 "שמירה אוטומטית של תצוגת הרצועות בוטלה.\n"
 "\n"
 
-#: src/misc_playlist.c:340
+#: src/misc_playlist.c:357
 msgid "Not Listed"
 msgstr "לא רשום"
 
-#: src/misc_playlist.c:391
+#: src/misc_playlist.c:407
 #, c-format
 msgid "Created playlist '%s' with %d track."
 msgid_plural "Created playlist '%s' with %d tracks."
@@ -2481,69 +4205,68 @@
 msgstr[1] "נוצרה רשימת השמעה '%s' עם %d רצועות."
 
 #. n==0
-#: src/misc_playlist.c:402
+#: src/misc_playlist.c:418
 msgid "No tracks available, playlist not created"
 msgstr "רצועות לא זמינות, לא נוצרה רשימת השמעה"
 
-#: src/misc_playlist.c:530
+#: src/misc_playlist.c:544
 #, c-format
 msgid "Most Listened (%d)"
 msgstr "הכי הרבה הושמע (%d)"
 
-#: src/misc_playlist.c:571
+#: src/misc_playlist.c:585
 msgid "Never Listened"
 msgstr "לא הושמע אף פעם"
 
-#: src/misc_playlist.c:611
+#: src/misc_playlist.c:625
 #, c-format
 msgid "Best Rated (%d)"
 msgstr "דורג הכי טוב (%d)"
 
-#: src/misc_playlist.c:653
+#: src/misc_playlist.c:667
 msgid "Unrated tracks"
 msgstr "רצועות לא דורגו"
 
-#: src/misc_playlist.c:658
+#: src/misc_playlist.c:672
 #, c-format
 msgid "Rated %d"
 msgstr "דורגו %d"
 
-#: src/misc_playlist.c:701
+#: src/misc_playlist.c:715
 #, c-format
 msgid "Recent (%d)"
 msgstr "לאחרונה (%d)"
 
-#: src/misc_playlist.c:740
+#: src/misc_playlist.c:754
 msgid "Last Time"
 msgstr "בפעם האחרונה"
 
-#: src/misc_playlist.c:831
+#: src/misc_playlist.c:845
 msgid "Removal of dangling tracks with no files on PC was canceled."
 msgstr "הסרה של רצועות מתנדנדות ללא קבצים על ה-PC בוטלה."
 
-#: src/misc_playlist.c:841
+#: src/misc_playlist.c:855
 msgid "Handling of dangling tracks with files on PC was canceled."
 msgstr "טיפול ברצועות מתנדנדות ללא קבצים על ה-PC בוטל."
 
-#: src/misc_playlist.c:869
+#: src/misc_playlist.c:883
 msgid "Dangling tracks with no files on PC were removed."
 msgstr "רצועות מתנדנדות ללא קבצים על ה-PC הוסרו."
 
-#. printf("Handling track %d\n", track->ipod_id);
-#: src/misc_playlist.c:902
+#: src/misc_playlist.c:917
 #, c-format
 msgid "Processing '%s'"
 msgstr "מעבד '%s'"
 
-#: src/misc_playlist.c:927
+#: src/misc_playlist.c:941
 msgid "Dangling tracks with files on PC were handled."
 msgstr "רצועות מתנדנדות עם קבצים על ה-PC טופלו."
 
-#: src/misc_playlist.c:960
+#: src/misc_playlist.c:974
 msgid "Track"
 msgstr "רצועה"
 
-#: src/misc_playlist.c:1005
+#: src/misc_playlist.c:1017
 msgid ""
 "You did not import the existing iTunesDB. This is most likely incorrect and "
 "will result in the loss of the existing database.\n"
@@ -2558,19 +4281,19 @@
 "לחץ 'אישור' על מנת להמשיך כרגיל או 'ביטול' לביטול. אם אתה תבטל, אתה תוכל "
 "לייבא את מסד הנתונים הקיים לפני קריאה לפעולה זו שוב.\n"
 
-#: src/misc_playlist.c:1021
+#: src/misc_playlist.c:1031
 msgid "Creating a tree of known files"
 msgstr "יוצר עץ של קבצים ידועים"
 
-#: src/misc_playlist.c:1065
+#: src/misc_playlist.c:1075
 msgid "Checking iPOD files against known files in DB"
 msgstr "בודק קבצים על ה-iPod כנגד קבצים ידועים במסד הנתונים"
 
-#: src/misc_playlist.c:1110
+#: src/misc_playlist.c:1118
 msgid "Orphaned"
 msgstr "יתום"
 
-#: src/misc_playlist.c:1131
+#: src/misc_playlist.c:1145
 #, c-format
 msgid ""
 "The following orphaned file had already been added to the iPod again. It "
@@ -2582,12 +4305,12 @@
 "%s\n"
 "\n"
 
-#: src/misc_playlist.c:1160
+#: src/misc_playlist.c:1173
 #, c-format
 msgid "Found %d orphaned and %d dangling files. Processing..."
 msgstr "נמצאו %d קבצים יתומים ו-%d קבצים מתנדנדים. מעבד..."
 
-#: src/misc_playlist.c:1183
+#: src/misc_playlist.c:1197
 #, c-format
 msgid ""
 "The following dangling track has a file on PC.\n"
@@ -2604,7 +4327,7 @@
 "הרצועות המתנדנדות (%d) הבאות הן בעלות קבצים על ה-PC\n"
 "לחץ אישור להעביר אותן מהקבצים בסנכרון הבא, וביטול לעזוב את זה כמו שזה."
 
-#: src/misc_playlist.c:1188
+#: src/misc_playlist.c:1202
 #, c-format
 msgid ""
 "The following dangling track doesn't have file on PC. \n"
@@ -2621,31 +4344,31 @@
 
 #. we want unique window for each
 #. gboolean modal,
-#: src/misc_playlist.c:1195
+#: src/misc_playlist.c:1209
 msgid "Dangling Tracks"
 msgstr "רצועות מתנדנדות"
 
-#: src/misc_playlist.c:1219
+#: src/misc_playlist.c:1232
 #, c-format
 msgid "Found %d orphaned and %d dangling files. Done."
 msgstr "נמצאו %d קבצים יתומים ו-%d קבצים מתנדנדים. בוצע."
 
 #. update for count == 1, 21, 41 ... and for count == n
-#: src/misc_track.c:91 src/misc_track.c:368
+#: src/misc_track.c:90 src/misc_track.c:364
 #, c-format
 msgid "Hashed %d of %d track."
 msgid_plural "Hashed %d of %d tracks."
 msgstr[0] "בוצע ערבוב של %d מתוך %d רצועה."
 msgstr[1] "בוצע ערבוב של %d מתוך %d רצועות."
 
-#: src/misc_track.c:202
+#: src/misc_track.c:199
 #, c-format
 msgid "The following duplicate track has been removed."
 msgid_plural "The following %d duplicate tracks have been removed."
 msgstr[0] "הוסרה הרצועה הכפולה הבאה."
 msgstr[1] "הוסרו %d מן הרצועות הכפולות הבאות."
 
-#: src/misc_track.c:209
+#: src/misc_track.c:206
 #, c-format
 msgid ""
 "The following duplicate track has not been added to the master play list."
@@ -2657,80 +4380,66 @@
 
 #. gint id,
 #. gboolean modal,
-#: src/misc_track.c:216
+#: src/misc_track.c:213
 msgid "Duplicate detection"
 msgstr "זיהוי כפילויות"
 
-#: src/misc_track.c:844
+#: src/misc_track.c:904
 msgid "Local Database"
 msgstr "מסד נתונים מקומי"
 
-#: src/misc_track.c:1396
+#. artwork is set
+#: src/misc_track.c:915
+msgid "Embedded or filename was lost"
+msgstr ""
+
+#: src/misc_track.c:919
+#, fuzzy
+msgid "Artwork not set"
+msgstr "לא מקובע"
+
+#: src/misc_track.c:1527
 #, c-format
 msgid "drag and drop: ignored '%s'\n"
 msgstr "גרור ושחרר: התעלמות מ '%s'\n"
 
-#: src/mp3file.c:1118
+#: src/mp3file.c:1276
 #, c-format
 msgid "Error setting ID3 field: %s\n"
 msgstr "שגיאה בקביעת שדה ID3: %s\n"
 
-#: src/mp3file.c:1143 src/mp3file.c:1290 src/mp3file.c:2036
+#: src/mp3file.c:1300 src/mp3file.c:1373 src/mp3file.c:1522 src/mp3file.c:2160
 #, c-format
 msgid "ERROR while opening file: '%s' (%s).\n"
 msgstr "שגיאה בזמן פתיחת קובץ: '%s' (%s).\n"
 
-#: src/mp3file.c:1357
+#: src/mp3file.c:1593
 #, c-format
 msgid "ERROR while writing tag to file: '%s' (%s).\n"
 msgstr "שגיאה בזמן כתיבת תג לקובץ: '%s' (%s).\n"
 
-#: src/mp3file.c:1880
-#, c-format
-msgid ""
-"Could not find mp3gain. I tried to use the following executable: '%s'.\n"
-"\n"
-"If the mp3gain executable is not in your path or named differently, you can "
-"set the full path in the 'Tools' section of the preferences dialog.\n"
-"\n"
-"If you do not have mp3gain installed, you can download it from http://www."
-"sourceforge.net/projects/mp3gain."
-msgstr ""
-"לא מוצא את mp3gain. ניסיתי להשתמש בקובץ הריצה: '%s'.\n"
-"\n"
-"אם הקובץ mp3gain לא נמצא בנתיב החיפוש או נקרא בשם אחר, אתה יכול לציין את "
-"הנתיב המלא בחלק 'כלים' של חלון דו-שיח ההעדפות.\n"
-"\n"
-"אם אין לך את mp3gain מותקן, אתה יכול להורידו מ: http://www.sourceforge.net/"
-"projects/mp3gain"
-
-#: src/mp3file.c:1920
-#, c-format
-msgid "Execution of mp3gain ('%s') failed."
-msgstr "ביצוע של mp3gain ('%s') נכשל."
-
 #. Tracks with zero play length are ignored by iPod...
-#: src/mp3file.c:2179
+#: src/mp3file.c:2326
 #, c-format
 msgid "File \"%s\" has zero play length. Ignoring.\n"
 msgstr "הקובץ \"%s\" בעל זמן אפס. מתעלם.\n"
 
-#: src/mp4file.c:243 src/mp4file.c:362
+#: src/mp4file.c:221 src/mp4file.c:342 src/mp4file.c:461
 #, c-format
 msgid "'%s' does not appear to be a mp4 audio file.\n"
 msgstr "הקובץ '%s' הוא כנראה לא קובץ שמע mp4.\n"
 
-#: src/mp4file.c:253
+#: src/mp4file.c:231 src/mp4file.c:352
 #, c-format
 msgid "Could not open '%s' for reading, or file is not an mp4 file.\n"
 msgstr "אי אפשר לפתוח את '%s' לקריאה, או הקובץ הוא לא קובץ שמע mp4.\n"
 
-#: src/mp4file.c:373
+#: src/mp4file.c:472
 #, c-format
 msgid "Could not open '%s' for writing, or file is not an mp4 file.\n"
 msgstr "אי אפשר לפתוח את '%s' לכתיבה, או הקובץ הוא לא קובץ שמע mp4.\n"
 
-#: src/mp4file.c:386
+#: src/mp4file.c:485
 #, c-format
 msgid ""
 "Import of '%s' failed: m4a/m4p/m4b not supported without the mp4v2 library. "
@@ -2739,7 +4448,7 @@
 "הייבוא של '%s' נכשל: m4a/m4p/m4b לא נתמך ללא הספריה mp4v2. אתה חייב להדר את "
 "קוד המקור gtkpod ביחד עם הספריה mp4v2.\n"
 
-#: src/mp4file.c:392
+#: src/mp4file.c:491
 #, c-format
 msgid ""
 "m4a/m4p/m4b metadata update for '%s' failed: m4a/m4p/m4b not supported "
@@ -2750,219 +4459,263 @@
 "ללא הספריה mp4v2. אתה חייב להדר את קוד המקור של gtkpod ביחד עם ספריית "
 "mp4v2.\n"
 
-#: src/prefs.c:128
+#: src/mp4file.c:497
+#, fuzzy, c-format
+msgid ""
+"m4a/m4p/m4b soundcheck update for '%s' failed: m4a/m4p/m4b not supported "
+"without the mp4v2 library. You must compile the gtkpod source together with "
+"the mp4v2 library.\n"
+msgstr ""
+"עדכון מטא-מידע של m4a/m4p/m4b עבור '%s' נכשל: הסוגים m4a/m4p/m4b לא נתמכים "
+"ללא הספריה mp4v2. אתה חייב להדר את קוד המקור של gtkpod ביחד עם ספריית "
+"mp4v2.\n"
+
+#: src/prefs.c:307
 #, c-format
 msgid "gtkpod version %s usage:\n"
 msgstr "גרסה %s של gtkpod, שימוש:\n"
 
-#: src/prefs.c:129
+#: src/prefs.c:308
 msgid "  -h, --help:   display this message\n"
 msgstr "  -h, --help:   display this message\n"
 
-#: src/prefs.c:130
+#: src/prefs.c:309
 msgid "  -p <filename>:increment playcount for file by one\n"
 msgstr "  -p <filename>:increment playcount for file by one\n"
 
-#: src/prefs.c:131
+#: src/prefs.c:310
 msgid "  -m path:      define the mountpoint of your iPod\n"
 msgstr "  -m path:      define the mountpoint of your iPod\n"
 
-#: src/prefs.c:132
+#: src/prefs.c:311
 msgid "  --mountpoint: same as '-m'.\n"
 msgstr "  --mountpoint: same as '-m'.\n"
 
-#: src/prefs.c:133
+#: src/prefs.c:312
 msgid "  -a:           import database automatically after start.\n"
 msgstr "  -a:           import database automatically after start.\n"
 
-#: src/prefs.c:134
+#: src/prefs.c:313
 msgid "  --auto:       same as '-a'.\n"
 msgstr "  --auto:       same as '-a'.\n"
 
-#: src/prefs.c:135
-msgid ""
-"  -o:           use offline mode. No changes are exported to the iPod,\n"
-"                but to ~/.gtkpod/ instead. iPod is updated if 'Sync' is\n"
-"                used with 'Offline' deactivated.\n"
-msgstr ""
-"  -o:           use offline mode. No changes are exported to the iPod,\n"
-"                but to ~/.gtkpod/ instead. iPod is updated if 'Sync' is\n"
-"                used with 'Offline' deactivated.\n"
+#: src/prefs_window.c:119
+msgid "Please select command for 'Play Now'"
+msgstr "בחר בבקשה פקודה ל 'נגן עכשיו'"
 
-#: src/prefs.c:136
-msgid "  --offline:    same as '-o'.\n"
-msgstr "  --offline:    same as '-o'.\n"
+#: src/prefs_window.c:120
+msgid "Please select command for 'Enqueue'"
+msgstr "בחר בבקשה פקודה ל 'הכנס לתור'"
 
-#: src/prefs.c:401
-#, c-format
-msgid "Error while reading prefs: %s\n"
-msgstr "שגיאה בזמן קריאת העדפות: %s\n"
+#: src/prefs_window.c:121
+msgid "Please select the mp3gain executable"
+msgstr "בחר בבקשה את קובץ ההרצה ל-mp3gain"
 
-#: src/prefs.c:1030
-#, c-format
-msgid "Unable to open config file '%s' for reading\n"
-msgstr "אי אפשר לפתוח את קובץ הקונפיגורציה '%s' לקריאה\n"
+#: src/prefs_window.c:124
+msgid "Select the mserv music root directory"
+msgstr "בחר את תיקיית השורש ל mserv music"
 
-#: src/prefs.c:1137
-#, c-format
-msgid "Unknown option: %s\n"
-msgstr "אפשרות לא ידועה: %s\n"
+#: src/prefs_window.c:125
+msgid "Select the mserv trackinfo root directory"
+msgstr "בחר את תיקיית השורש ל mserv trackinfo"
 
-#: src/prefs.c:1190
-#, c-format
-msgid "# delete confirmation\n"
-msgstr "# וידוא מחיקה\n"
+#: src/prefs_window.c:127
+#, fuzzy
+msgid "Please select the aacgain executable"
+msgstr "בחר בבקשה את קובץ ההרצה ל-mp3gain"
 
-#: src/prefs.c:1197
-#, c-format
-msgid "# sort tab: select 'All', last selected page (=category)\n"
-msgstr "# כרטיסיית מיון: בחר 'הכל', הדף הנבחר אחרון (=קטגוריה)\n"
+#: src/prefs_window.c:911 src/prefs_window.c:929
+msgid "Preferences not updated"
+msgstr "העדפות לא עודכנו"
 
-#: src/prefs.c:1216
-#, c-format
-msgid "# autoselect master playlist?\n"
-msgstr "# בחירה אוטומטית של רשימת ראשית להשמעה?\n"
+#: src/prefs_window.c:938
+msgid "Preferences applied"
+msgstr "העדפות עודכנו"
 
-#: src/prefs.c:1218
-#, c-format
-msgid "# title=0, artist, album, genre, composer\n"
-msgstr "# שם רצועה=0, אמן, כותר, סגנון, יוצר\n"
+#: src/repository.c:549 src/repository.c:2372
+#, fuzzy
+msgid "Select mountpoint"
+msgstr "נקודת ה_עיגון של ה-iPod:"
 
-#: src/prefs.c:1219
-#, c-format
-msgid "# track_nr=5, ipod_id, pc_path, transferred\n"
-msgstr "# מספר_רצועה=5, מזהה_ipod, נתיב_ב-PC, הועברו\n"
+#: src/repository.c:576 src/repository.c:2398
+msgid "Set backup file"
+msgstr ""
 
-#: src/prefs.c:1220
-#, c-format
-msgid "# autoset: set empty tag to filename?\n"
-msgstr "# קביעה אוטומטית: קבע תג ריקה לקובץ?\n"
+#: src/repository.c:615
+#, fuzzy
+msgid "Select directory for synchronization"
+msgstr "בחר תיקייה להוספה רקורסיבית"
 
-#: src/prefs.c:1235
-#, c-format
-msgid ""
-"# position of sliders (paned): playlists, above tracks,\n"
-"# between sort tabs, and in statusbar.\n"
-msgstr ""
-"# מיקום הגלילות : רשימות השמעה, מעל הרצועות,\n"
-"# בין כרטיסיות מיון, ובסרגל הסטטוס.\n"
+#: src/repository.c:641
+msgid "Please select command to sync contacts"
+msgstr "בחר בבקשה פקודה לסנכרון אנשי קשר"
 
-#: src/prefs.c:1271
-#, c-format
-msgid ""
-"# window sizes: main window, confirmation scrolled,\n"
-"#               confirmation non-scrolled, dirbrowser, prefs\n"
-msgstr ""
-"# גדלי חלונות: חלון ראשי, ווידוא לא נגלל, ווידוא נגלל, סייר תיקיות, הגדרות\n"
+#: src/repository.c:647
+msgid "Please select command to sync calendar"
+msgstr "בחר בבקשה פקודה לסנכרון יומן"
 
-#: src/prefs.c:1328
-#, c-format
-msgid "Unable to open '%s' for writing\n"
-msgstr "אי אפשר לפתוח '%s' לכתיבה\n"
+#: src/repository.c:653
+#, fuzzy
+msgid "Please select command to sync notes"
+msgstr "בחר בבקשה פקודה לסנכרון אנשי קשר"
 
-#: src/prefs.c:1682
-#, c-format
+#: src/repository.c:665
+#, fuzzy, c-format
 msgid ""
-" Preferences: Category nr (%d<%d?) or sorttab nr (%d<%d?) out of range.\n"
+"<i>Have a look at the scripts provided in '%s'. If you write a new script, "
+"please send it to jcsjcs at users.sourceforge.net for inclusion into the "
+"next release.</i>"
 msgstr ""
-" העדפות: מספר קטגוריה (%d<%d?) או מספר כרטיסיית מיון (%d<%d?) מתוך לטווח.\n"
+"הסתכל על קבצי האצווה המופיעים ב-'%s'. אם תכתוב קובץ אצווה חדש, שלח אותו "
+"בבקשה אל jcsjcs ב- users.sourceforge.net להכללה בגרסה הבאה."
 
-#: src/prefs.c:1731
-#, c-format
-msgid "Unable to 'mkdir %s'\n"
-msgstr "אי אפשר לעשות 'mkdir %s'\n"
+#: src/repository.c:732
+#, fuzzy
+msgid "Smart playlist updated."
+msgstr "רשימת השמעה חכמה"
 
-#. illegal -- ignore
-#: src/prefs.c:2157
-#, c-format
-msgid "prefs_set_toolbar_style: illegal style '%d' ignored\n"
-msgstr "prefs_set_toolbar_style: התעלמות מסגנון לא חוקי '%d' \n"
+#: src/repository.c:1193
+#, fuzzy
+msgid "Podcasts Repository"
+msgstr "מחק מה-iPod"
 
-#. illegal -- ignore
-#: src/prefs.c:2199
-#, c-format
-msgid "prefs_set_pm_sort: illegal type '%d' ignored\n"
-msgstr "prefs_set_pm_sort: התעלמות מסוג לא חוקי '%d'\n"
+#: src/repository.c:1197
+#, fuzzy
+msgid "Local Repository"
+msgstr "מחק מה-iPod"
 
-#: src/prefs.c:2354
-#, c-format
-msgid "'%s': no arguments (%%...) allowed.\n"
-msgstr "ארגומנטים לא מותרים (%%...) : '%s'\n"
+#: src/repository.c:1351
+#, fuzzy
+msgid "Master Playlist"
+msgstr "...רשימת השמעה ראשית"
 
-#: src/prefs.c:2359
-#, c-format
-msgid "'%s': only '%%[%s]' allowed.\n"
-msgstr "רק '%%[%s]' מותר : '%s'\n"
+#: src/repository.c:1355
+#, fuzzy
+msgid "Podcasts Playlist"
+msgstr "רשימת השמעה חכמה"
 
-#: src/prefs_window.c:108
-msgid "Please select command for 'Play Now'"
-msgstr "בחר בבקשה פקודה ל 'נגן עכשיו'"
+#: src/repository.c:1363
+#, fuzzy
+msgid "Regular Playlist"
+msgstr "רשימת השמעה חכמה"
 
-#: src/prefs_window.c:109
-msgid "Please select command for 'Enqueue'"
-msgstr "בחר בבקשה פקודה ל 'הכנס לתור'"
+#: src/repository.c:2426
+#, fuzzy
+msgid "Set local repository file"
+msgstr "מחק מה-iPod"
 
-#: src/prefs_window.c:110
-msgid "Please select the mp3gain executable"
-msgstr "בחר בבקשה את קובץ ההרצה ל-mp3gain"
+#: src/repository.c:2525
+#, fuzzy
+msgid "New Repository"
+msgstr "מחק מה-iPod"
 
-#: src/prefs_window.c:111
-msgid "Please select command to sync contacts"
-msgstr "בחר בבקשה פקודה לסנכרון אנשי קשר"
+#: src/support.c:90 src/support.c:114
+#, fuzzy, c-format
+msgid "Couldn't find pixmap file: %s"
+msgstr "לא מסוגל לשנות תג של קובץ: %s\n"
 
-#: src/prefs_window.c:112
-msgid "Please select command to sync calendar"
-msgstr "בחר בבקשה פקודה לסנכרון יומן"
+#: src/syncdir.c:237
+#, c-format
+msgid "Sync summary for %s/%s\n"
+msgstr ""
 
-#: src/prefs_window.c:113
-msgid "Select the mserv music root directory"
-msgstr "בחר את תיקיית השורש ל mserv music"
+#: src/syncdir.c:246
+#, fuzzy
+msgid "The following track has been added or updated:\n"
+msgid_plural "The following tracks have been added or updated:\n"
+msgstr[0] "עודכנה הרצועה הבאה"
+msgstr[1] "עודכנו %d הרצועות הבאות"
 
-#: src/prefs_window.c:114
-msgid "Select the mserv trackinfo root directory"
-msgstr "בחר את תיקיית השורש ל mserv trackinfo"
+#: src/syncdir.c:255
+#, fuzzy
+msgid "The following track has been completely removed from the iPod:\n"
+msgid_plural ""
+"The following tracks have been completely removed from the iPod:\n"
+msgstr[0] "לפני הסרת רצועות לגמרי מן ה-iPod"
+msgstr[1] "לפני הסרת רצועות לגמרי מן ה-iPod"
 
-#: src/prefs_window.c:115
+#: src/syncdir.c:264
 #, fuzzy
-msgid "Please select command to sync notes"
-msgstr "בחר בבקשה פקודה לסנכרון אנשי קשר"
+msgid "The following track has been removed from the repository:\n"
+msgid_plural "The following tracks have been removed from the repository:\n"
+msgstr[0] "הוסרה הרצועה הכפולה הבאה."
+msgstr[1] "הוסרו %d מן הרצועות הכפולות הבאות."
 
-#: src/prefs_window.c:854
+#: src/syncdir.c:271
+#, fuzzy
+msgid "The following track has been removed from the playlist:\n"
+msgid_plural "The following tracks have been removed from the playlist:\n"
+msgstr[0] "הרצועה הכפולה הבאה לא הוספה לרשימת ההשמעה הראשית."
+msgstr[1] "הרצועות הכפולות (%d) הבאות לא הוספו לרשימת ההשמעה הראשית."
+
+#: src/syncdir.c:277
+msgid "Nothing was changed.\n"
+msgstr ""
+
+#: src/syncdir.c:282
+msgid "Sync summary"
+msgstr ""
+
+#: src/tools.c:119
 #, fuzzy, c-format
 msgid ""
-"<i>Have a look at the scripts provided in '%s'. If you write a new script, "
-"please send it to jcsjcs at users.sourceforge.net for inclusion into the "
-"next release.</i>"
+"Could not find '%s'\n"
+". Please specifiy the exact path in the Tools section of the preference "
+"dialog or install the programm if it is not installed on your system.\n"
+"\n"
 msgstr ""
-"הסתכל על קבצי האצווה המופיעים ב-'%s'. אם תכתוב קובץ אצווה חדש, שלח אותו "
-"בבקשה אל jcsjcs ב- users.sourceforge.net להכללה בגרסה הבאה."
+"לא מסוגל למצוא את הפקודה '%s'.\n"
+"\n"
+"אנא בדוק את ההגדרות בחלק 'כלים' של חלון דו-שיח ההעדפות.\n"
+"\n"
 
-#: src/prefs_window.c:1287 src/prefs_window.c:1305
-msgid "Preferences not updated"
-msgstr "העדפות לא עודכנו"
+#: src/tools.c:204
+#, fuzzy, c-format
+msgid ""
+"Execution of '%s' failed.\n"
+"\n"
+msgstr "ביצוע של mp3gain ('%s') נכשל."
 
-#: src/prefs_window.c:1314
-msgid "Preferences applied"
-msgstr "העדפות עודכנו"
+#: src/tools.c:249
+#, fuzzy, c-format
+msgid ""
+"Did not normalize '%s'. Set mp3gain path in the Tools section of the "
+"preferences.\n"
+msgstr ""
+"לא מסוגל למצוא את הפקודה '%s'.\n"
+"\n"
+"אנא בדוק את ההגדרות בחלק 'כלים' של חלון דו-שיח ההעדפות.\n"
+"\n"
 
-#: src/tools.c:173
+#: src/tools.c:259
+#, fuzzy, c-format
+msgid ""
+"Did not normalize '%s'. Set aacgain path in the Tools section of the "
+"preferences.\n"
+msgstr ""
+"לא מסוגל למצוא את הפקודה '%s'.\n"
+"\n"
+"אנא בדוק את ההגדרות בחלק 'כלים' של חלון דו-שיח ההעדפות.\n"
+"\n"
+
+#: src/tools.c:384
 msgid "Normalizing..."
 msgstr "מנרמל..."
 
-#: src/tools.c:220
+#: src/tools.c:434
 #, c-format
 msgid "%s - %s"
 msgstr "%s - %s"
 
-#: src/tools.c:247
+#: src/tools.c:460
 msgid "Aborting..."
 msgstr "מבטל..."
 
-#: src/tools.c:251
+#: src/tools.c:464
 msgid "Will abort after current mp3gain process ends."
 msgstr "יבוטל אחרי שתהליך mp3gain יסתיים."
 
-#: src/tools.c:277
+#: src/tools.c:490
 #, c-format
 msgid ""
 "'%s-%s' (%s) could not be normalized.\n"
@@ -2971,20 +4724,20 @@
 "אי אפשר לנרמל את '%s-%s' (%s)\n"
 "\n"
 
-#: src/tools.c:319
+#: src/tools.c:529
 #, c-format
 msgid "Normalized %d of %d tracks."
 msgid_plural "Normalized %d of %d tracks."
 msgstr[0] "נורמלו %d מתוך %d רצועות."
 msgstr[1] "נורמלו %d מתוך %d רצועות."
 
-#: src/tools.c:413
+#: src/tools.c:632
 msgid ""
 "Please specify the command to be called on the 'Tools' section of the "
 "preferences dialog.\n"
 msgstr "אנא ציין את הפקודה שיקראו לה בחלק 'כלים' בחלון הדו-שיח העדפות.\n"
 
-#: src/tools.c:425
+#: src/tools.c:644
 #, c-format
 msgid ""
 "Could not find the command '%s'.\n"
@@ -2997,7 +4750,7 @@
 "אנא בדוק את ההגדרות בחלק 'כלים' של חלון דו-שיח ההעדפות.\n"
 "\n"
 
-#: src/tools.c:466
+#: src/tools.c:685
 #, c-format
 msgid ""
 "'%s' returned the following output:\n"
@@ -3006,12 +4759,12 @@
 "האובייקט '%s' החזיר את הפלט הבא:\n"
 "%s\n"
 
-#: src/tools.c:535
+#: src/tools.c:752
 #, c-format
 msgid "No command set for '%s'"
 msgstr "אין רשימת פקודות ל-'%s'"
 
-#: src/tools.c:556
+#: src/tools.c:772
 #, c-format
 msgid "Could not find command '%s' specified for '%s'"
 msgstr "לא מסוגל למצוא פקודה '%s' אשר צוינה עבור '%s'"
@@ -3026,1719 +4779,348 @@
 msgid "%s does not appear to be a supported wav file.\n"
 msgstr "הקובץ %s הוא כנראה לא קובץ wav נתמך.\n"
 
-#: gtkpod.glade:7
-msgid "gtkpod"
-msgstr "gtkpod"
+#~ msgid ""
+#~ "On startup gtkpod will call 'mount <ipod mountpoint>', on exit a 'umount "
+#~ "<ipod mountpoint>' call is carried out. For more complicated arrangements "
+#~ "please use the ~/.gtkpod/gtkpod.in and ~/.gtkpod/gtkpod.out scripts."
+#~ msgstr ""
+#~ "בעליית התוכנית gtkpod יבצע 'mount <ipod mountpoint>' ביציאה תבוצע הפקודה "
+#~ "'umount <ipod mountpoint>'. עבור סידורים יותר מתוחכמים אנא השתמש "
+#~ "בסקריפטים: ~/.gtkpod/gtkpod.in ~/.gtkpod/gtkpod.out"
 
-#: gtkpod.glade:36
-msgid "_File"
-msgstr "_קובץ"
+#~ msgid "Handle mounting/unmounting of iPod drive"
+#~ msgstr "טפל בעגינה/ניתוק של כונן ה-iPod"
 
-#: gtkpod.glade:45
-msgid "_Read iTunesDB"
-msgstr "ק_ריאת iTuneDB"
-
-#: gtkpod.glade:66
-msgid "Add _Files"
-msgstr "הוספת _קבצים"
-
-#: gtkpod.glade:87
-msgid "Add _Directory"
-msgstr "הוספת _תיקיות"
-
-#: gtkpod.glade:108
-msgid "Add _Playlist"
-msgstr "הוספת _רשימות השמעה"
-
-#: gtkpod.glade:129
-msgid "Synchronize _iTunesDB"
-msgstr "סנכרון _iTunesDB"
-
-#: gtkpod.glade:183
-msgid "_Update Tracks from File"
-msgstr "_סנכרון רצועות מקובץ"
-
-#: gtkpod.glade:204 gtkpod.glade:256 gtkpod.glade:308 gtkpod.glade:366
-#: gtkpod.glade:418 gtkpod.glade:1136 gtkpod.glade:1188 gtkpod.glade:1234
-msgid "Selected _Playlist"
-msgstr "_רשימות השמעה נבחרות"
-
-#: gtkpod.glade:213 gtkpod.glade:265 gtkpod.glade:317 gtkpod.glade:375
-#: gtkpod.glade:427 gtkpod.glade:1145 gtkpod.glade:1197 gtkpod.glade:1243
-msgid "Selected Tab _Entry"
-msgstr "רשומות _כרטיסיה נבחרות"
-
-#: gtkpod.glade:222 gtkpod.glade:274 gtkpod.glade:326 gtkpod.glade:384
-#: gtkpod.glade:436 gtkpod.glade:569 gtkpod.glade:1154 gtkpod.glade:1206
-#: gtkpod.glade:1252
-msgid "Selected _Tracks"
-msgstr "ר_צועות נבחרות"
-
-#: gtkpod.glade:235
-msgid "Update _mserv Data from File"
-msgstr "עדכון _נתוני mserv מקובץ"
-
-#: gtkpod.glade:287
-msgid "_Synchronize Directories"
-msgstr "_סנכרון תיקיות"
-
-#: gtkpod.glade:345
-msgid "_Export Tracks from Database"
-msgstr "_ייצא רצועות ממסד הנתונים"
-
-#: gtkpod.glade:397
-msgid "Create _Playlist File"
-msgstr "יצירת קובץ _רשימת השמעה"
-
-#: gtkpod.glade:455
-msgid "_Offline"
-msgstr "_מנותק"
-
-#: gtkpod.glade:471
-msgid "_Create iPod's Directories"
-msgstr "_יצירת תיקיות iPod"
-
-#: gtkpod.glade:492
-msgid ""
-"Find orphan files (files with no track info in DB) and dangling tracks "
-"(tracks with no corresponding files on iPOD)"
-msgstr ""
-"מצא קבצים יתומים (קבצים ללא מידע רצועה במסד הנתונים) ורצועות מתנדנדות "
-"(רצועות ללא קבצים מתאימים על ה-iPod)"
-
-#: gtkpod.glade:493
-msgid "_Check iPod's Files"
-msgstr "_בדיקת קבצי iPod"
-
-#: gtkpod.glade:521 gtkpod.glade:11968
-msgid "_Edit"
-msgstr "_עריכה"
-
-#: gtkpod.glade:530
-msgid "Edit"
-msgstr "עריכה"
-
-#: gtkpod.glade:551
 #, fuzzy
-msgid "Tracks in Selected _Playlist"
-msgstr "_רשימות השמעה נבחרות"
+#~ msgid "<b>Artwork</b>"
+#~ msgstr "<b>ייבוא</b>"
 
-#: gtkpod.glade:560
-#, fuzzy
-msgid "Tracks in Selected Tab _Entry"
-msgstr "רשומות _כרטיסיה נבחרות"
+#~ msgid "_Offline"
+#~ msgstr "_מנותק"
 
-#: gtkpod.glade:591
-msgid "_Delete"
-msgstr ""
+#~ msgid ""
+#~ "You only need to specify this if your 'mp3gain' executable is not in your "
+#~ "default path. Example: '/usr/local/foo/mp3gain'. mp3gain will write the "
+#~ "calculated gain value back to the file -- if you don't want this, set "
+#~ "this entry to /bin/true or similar. mp3gain is only called if appropriate "
+#~ "tags are not already set by your encoder. E.g. lame version 0.95 already "
+#~ "writes the gain values into tags. The exact conversion factor between "
+#~ "mp3gain's gain value and iPod's volume tag is not known yet -- your input "
+#~ "is appreciated."
+#~ msgstr ""
+#~ "אתה תצטרך לרשום את הנתיב באופן מפורש רק אם קובץ הריצה של mp3gain הוא לא "
+#~ "בנתיב ברירת המחדל. לדוגמה: '/usr/local/foo/mp3gain'. התכנית mp3gain תכתוב "
+#~ "את ערך ההגברה המחושבת ישר לקובץ -- אם אתה לא מעוניין בזאת, קבע את הרשומה "
+#~ "הזאת ל-/usr/true או דומה. הקריאה ל-mp3gain תתבצע רק אם התגיות המתאימות "
+#~ "עדיין לא נקבעו על ידי המקודד. לדוגמה: מקודד lame גרסה 0.95 כותבת את ערכי "
+#~ "ההגברה לתגיות בזמן הקידוד. רמת ההמרה בין mp3gain לזאת של ה-iPod עדיין לא "
+#~ "ידועה -- מצפים לעזרה מצדכם."
 
-#: gtkpod.glade:612
 #, fuzzy
-msgid "Selected playlist"
-msgstr "_רשימות השמעה נבחרות"
+#~ msgid "Edit Repository Properties"
+#~ msgstr "אפשרויות מיון"
 
-#: gtkpod.glade:621
-#, fuzzy
-msgid "Selected playlist including tracks from iPod"
-msgstr "נמחקה רשימת השמעה '%s' כולל רצועה %d"
+#~ msgid "Currently no iPod database selected"
+#~ msgstr "מסד נתונים של iPod לא נבחר עדיין."
 
-#: gtkpod.glade:630
-#, fuzzy
-msgid "Selected playlist including tracks from database"
-msgstr "מחק כולל רצועות (מסד נתונים)"
+#~ msgid "No playlist selected."
+#~ msgstr "לא נבחרה רשימת השמעה."
 
-#: gtkpod.glade:639
-#, fuzzy
-msgid "Selected playlist including tracks from harddisk"
-msgstr "נמחקה רשימת השמעה '%s' כולל רצועה %d מהדיסק הקשיח"
+#~ msgid "Could not delete backup file: \"%s\"\n"
+#~ msgstr "לא מסוגל למחוק קובץ גיבוי: \"%s\"\n"
 
-#: gtkpod.glade:654
-#, fuzzy
-msgid "Selected filter tab entry from playlist"
-msgstr "נמחקה %d רצועה מרשימת ההשמעה '%s'"
+#~ msgid "No tracks selected."
+#~ msgstr "לא נבחרו רצועות."
 
-#: gtkpod.glade:663
-#, fuzzy
-msgid "Selected filter tab entry from iPod"
-msgstr "הרצועה נמחקה לגמרי מה-iPod"
+#~ msgid "Problem creating iPod directory: '%s'."
+#~ msgstr "בעיות ביצירת תיקיית iPod: '%s'."
 
-#: gtkpod.glade:672
-#, fuzzy
-msgid "Selected filter tab entry from database"
-msgstr "נמחקה רצועה ממסד הנתונים המקומי"
+#~ msgid "Successfully created iPod directories in '%s'."
+#~ msgstr "תיקיות ה-iPod נוצרו בהצלחה ב - '%s'."
 
-#: gtkpod.glade:681
-#, fuzzy
-msgid "Selected filter tab entry from harddisk"
-msgstr "נמחקה רצועה אחת מהדיסק הקשיח"
+#~ msgid "Create iPod directories"
+#~ msgstr "יצירת תיקיות iPod"
 
-#: gtkpod.glade:696
-#, fuzzy
-msgid "Selected tracks from playlist"
-msgstr "נמחקה %d רצועה מרשימת ההשמעה '%s'"
+#~ msgid "OK to create the following directories?"
+#~ msgstr "האם ליצור את התיקיות הבאות?"
 
-#: gtkpod.glade:705
-#, fuzzy
-msgid "Selected tracks from iPod"
-msgstr "הרצועה נמחקה לגמרי מה-iPod"
+#~ msgid ""
+#~ "Could not find mp3gain. I tried to use the following executable: '%s'.\n"
+#~ "\n"
+#~ "If the mp3gain executable is not in your path or named differently, you "
+#~ "can set the full path in the 'Tools' section of the preferences dialog.\n"
+#~ "\n"
+#~ "If you do not have mp3gain installed, you can download it from http://www."
+#~ "sourceforge.net/projects/mp3gain."
+#~ msgstr ""
+#~ "לא מוצא את mp3gain. ניסיתי להשתמש בקובץ הריצה: '%s'.\n"
+#~ "\n"
+#~ "אם הקובץ mp3gain לא נמצא בנתיב החיפוש או נקרא בשם אחר, אתה יכול לציין את "
+#~ "הנתיב המלא בחלק 'כלים' של חלון דו-שיח ההעדפות.\n"
+#~ "\n"
+#~ "אם אין לך את mp3gain מותקן, אתה יכול להורידו מ: http://www.sourceforge."
+#~ "net/projects/mp3gain"
 
-#: gtkpod.glade:714
-#, fuzzy
-msgid "Selected tracks from database"
-msgstr "נמחקה רצועה ממסד הנתונים המקומי"
+#~ msgid ""
+#~ "  -o:           use offline mode. No changes are exported to the iPod,\n"
+#~ "                but to ~/.gtkpod/ instead. iPod is updated if 'Sync' is\n"
+#~ "                used with 'Offline' deactivated.\n"
+#~ msgstr ""
+#~ "  -o:           use offline mode. No changes are exported to the iPod,\n"
+#~ "                but to ~/.gtkpod/ instead. iPod is updated if 'Sync' is\n"
+#~ "                used with 'Offline' deactivated.\n"
 
-#: gtkpod.glade:723
-#, fuzzy
-msgid "Selected tracks from harddisk"
-msgstr "נמחקה רצועה אחת מהדיסק הקשיח"
+#~ msgid "  --offline:    same as '-o'.\n"
+#~ msgstr "  --offline:    same as '-o'.\n"
 
-#: gtkpod.glade:742
-msgid "_Create Playlists"
-msgstr "_יצירת רשימות השמעה"
+#~ msgid "Error while reading prefs: %s\n"
+#~ msgstr "שגיאה בזמן קריאת העדפות: %s\n"
 
-#: gtkpod.glade:763
-msgid "Empty Playlist"
-msgstr "רשימת השמעה ריקה"
+#~ msgid "Unable to open config file '%s' for reading\n"
+#~ msgstr "אי אפשר לפתוח את קובץ הקונפיגורציה '%s' לקריאה\n"
 
-#: gtkpod.glade:781
-msgid "Random Playlist from Displayed Tracks"
-msgstr "רשימת השמעה אקראית מהרצועות הנראות"
+#~ msgid "Unknown option: %s\n"
+#~ msgstr "אפשרות לא ידועה: %s\n"
 
-#: gtkpod.glade:790
-msgid "Containing Displayed Tracks"
-msgstr "המכילה רצועות נראות"
+#~ msgid "# delete confirmation\n"
+#~ msgstr "# וידוא מחיקה\n"
 
-#: gtkpod.glade:799
-msgid "Containing Selected Tracks"
-msgstr "המכילה רצועות נבחרות"
+#~ msgid "# sort tab: select 'All', last selected page (=category)\n"
+#~ msgstr "# כרטיסיית מיון: בחר 'הכל', הדף הנבחר אחרון (=קטגוריה)\n"
 
-#: gtkpod.glade:808
-msgid "One for each Artist"
-msgstr "אחת לכל אמן"
+#~ msgid "# autoselect master playlist?\n"
+#~ msgstr "# בחירה אוטומטית של רשימת ראשית להשמעה?\n"
 
-#: gtkpod.glade:817
-msgid "One for each Album"
-msgstr "אחת לכל כותר"
+#~ msgid "# title=0, artist, album, genre, composer\n"
+#~ msgstr "# שם רצועה=0, אמן, כותר, סגנון, יוצר\n"
 
-#: gtkpod.glade:826
-msgid "One for each Genre"
-msgstr "אחת לכל סגנון"
+#~ msgid "# track_nr=5, ipod_id, pc_path, transferred\n"
+#~ msgstr "# מספר_רצועה=5, מזהה_ipod, נתיב_ב-PC, הועברו\n"
 
-#: gtkpod.glade:835
-msgid "One for each Composer"
-msgstr "אחת לכל יוצר"
+#~ msgid "# autoset: set empty tag to filename?\n"
+#~ msgstr "# קביעה אוטומטית: קבע תג ריקה לקובץ?\n"
 
-#: gtkpod.glade:844
-msgid "One for each Year"
-msgstr "אחת לכל שנה"
+#~ msgid ""
+#~ "# position of sliders (paned): playlists, above tracks,\n"
+#~ "# between sort tabs, and in statusbar.\n"
+#~ msgstr ""
+#~ "# מיקום הגלילות : רשימות השמעה, מעל הרצועות,\n"
+#~ "# בין כרטיסיות מיון, ובסרגל הסטטוס.\n"
 
-#: gtkpod.glade:853
-msgid "One for each Rating"
-msgstr "אחת לכל מדרוג"
+#~ msgid ""
+#~ "# window sizes: main window, confirmation scrolled,\n"
+#~ "#               confirmation non-scrolled, dirbrowser, prefs\n"
+#~ msgstr ""
+#~ "# גדלי חלונות: חלון ראשי, ווידוא לא נגלל, ווידוא נגלל, סייר תיקיות, "
+#~ "הגדרות\n"
 
-#: gtkpod.glade:862
-msgid "Best Rated Tracks"
-msgstr "הרצועות המדורגות בראש"
+#~ msgid "Unable to open '%s' for writing\n"
+#~ msgstr "אי אפשר לפתוח '%s' לכתיבה\n"
 
-#: gtkpod.glade:871
-msgid "Tracks Most Often Listened To"
-msgstr "הרצועות שהכי מאזינים להן"
+#~ msgid ""
+#~ " Preferences: Category nr (%d<%d?) or sorttab nr (%d<%d?) out of range.\n"
+#~ msgstr ""
+#~ " העדפות: מספר קטגוריה (%d<%d?) או מספר כרטיסיית מיון (%d<%d?) מתוך "
+#~ "לטווח.\n"
 
-#: gtkpod.glade:880
-msgid "Most Recently Played Tracks"
-msgstr "הרצועות שהושמעו הכי לאחרונה"
+#~ msgid "Unable to 'mkdir %s'\n"
+#~ msgstr "אי אפשר לעשות 'mkdir %s'\n"
 
-#: gtkpod.glade:889
-msgid "All Tracks Played Since Last Time"
-msgstr "כל הרצועות שהושמעו מאז הפעם האחרונה"
+#~ msgid "prefs_set_toolbar_style: illegal style '%d' ignored\n"
+#~ msgstr "prefs_set_toolbar_style: התעלמות מסגנון לא חוקי '%d' \n"
 
-#: gtkpod.glade:898
-msgid "All Tracks Never Listened To"
-msgstr "כל הרצועות שמעולם לא השמיעו אותן"
+#~ msgid "prefs_set_pm_sort: illegal type '%d' ignored\n"
+#~ msgstr "prefs_set_pm_sort: התעלמות מסוג לא חוקי '%d'\n"
 
-#: gtkpod.glade:907
-msgid "All Tracks not Listed in any Playlist"
-msgstr "כל הרצועות שלא מופיעות באף רשימת השמעה"
+#~ msgid "'%s': no arguments (%%...) allowed.\n"
+#~ msgstr "ארגומנטים לא מותרים (%%...) : '%s'\n"
 
-#: gtkpod.glade:920
-msgid "Randomize Current Playlist"
-msgstr "יצירת רשימת השמעה אקראית"
+#~ msgid "'%s': only '%%[%s]' allowed.\n"
+#~ msgstr "רק '%%[%s]' מותר : '%s'\n"
 
-#: gtkpod.glade:935
-msgid "_Sorting"
-msgstr "_מיון"
+#~ msgid "_Read iTunesDB"
+#~ msgstr "ק_ריאת iTuneDB"
 
-#: gtkpod.glade:957
-msgid "_Save Displayed Track Order"
-msgstr "_שמירת סדר רצועות נראות"
+#~ msgid "Synchronize _iTunesDB"
+#~ msgstr "סנכרון _iTunesDB"
 
-#: gtkpod.glade:985
-msgid "_Edit Preferences"
-msgstr "_עריכת העדפות"
+#~ msgid "Edit"
+#~ msgstr "עריכה"
 
-#: gtkpod.glade:1011
-msgid "_View"
-msgstr "_תצוגה"
+#~ msgid "Read Existing Database from Disk/iPod"
+#~ msgstr "קרא מסד נתונים קיים מהדיסק הקשיח/iPod"
 
-#: gtkpod.glade:1020
-msgid "_Toolbar"
-msgstr "_סרגל כלים"
+#~ msgid "Read"
+#~ msgstr "קרא"
 
-#: gtkpod.glade:1030
-msgid "_Tooltips"
-msgstr "_תוויות מידע"
+#~ msgid "Write Changes to Disk/iPod"
+#~ msgstr "כתוב שינויים אל הדיסק/iPod"
 
-#: gtkpod.glade:1040
-msgid "_Info Window"
-msgstr "_חלון מידע"
+#~ msgid "Sync"
+#~ msgstr "סנכרן"
 
-#: gtkpod.glade:1051
-msgid "_More Sort Tabs"
-msgstr "_יותר כרטיסיות מיון"
-
-#: gtkpod.glade:1072
-msgid "_Less Sort Tabs"
-msgstr "_פחות כרטיסיות מיון"
-
-#: gtkpod.glade:1093
-msgid "_Arrange Sort Tabs"
-msgstr "_סדר כרטיסיות מיון"
-
-#: gtkpod.glade:1106 gtkpod.glade:12693
-msgid "_Tools"
-msgstr "_כלים"
-
-#: gtkpod.glade:1115
-msgid "_Play Now"
-msgstr "_נגן עכשיו"
-
-#: gtkpod.glade:1167
-msgid "_Enqueue"
-msgstr "_הכנס לתור"
-
-#: gtkpod.glade:1225
-msgid "_Normalize Volume"
-msgstr "_נרמל עוצמת קול"
-
-#: gtkpod.glade:1261
-msgid "_Displayed Tracks"
-msgstr "_הראה רצועות"
-
-#: gtkpod.glade:1270
-msgid "_All Tracks"
-msgstr "_כל הרצועות"
-
-#: gtkpod.glade:1279
-msgid "_Newly Added Tracks"
-msgstr "_רצועות חדשות שהוספו"
-
-#: gtkpod.glade:1298
-msgid "Synchronise Contacts, Calendar and Notes"
-msgstr "סנכרן אנשי קשר, יומן ופתקים"
-
-#: gtkpod.glade:1299
-msgid "Synchronize All"
-msgstr "סנכרן הכל"
-
-#: gtkpod.glade:1308
-msgid "Synchronize Contacts"
-msgstr "סנכרן אנשי קשר"
-
-#: gtkpod.glade:1317
-msgid "Synchronize Calendar"
-msgstr "סנכרן יומן"
-
-#: gtkpod.glade:1326
-msgid "Synchronize Notes"
-msgstr "סנכרן פתקים"
-
-#: gtkpod.glade:1339
-msgid "_Help"
-msgstr "_עזרה"
-
-#: gtkpod.glade:1348
-msgid "_About"
-msgstr "_אודות"
-
-#: gtkpod.glade:1388
-msgid "Read Existing Database from Disk/iPod"
-msgstr "קרא מסד נתונים קיים מהדיסק הקשיח/iPod"
-
-#: gtkpod.glade:1389
-msgid "Read"
-msgstr "קרא"
-
-#: gtkpod.glade:1406
-msgid "Add Files or Directories"
-msgstr "הוספת קבצים או תיקיות"
-
-#: gtkpod.glade:1407
-msgid "Files"
-msgstr "קבצים"
-
-#: gtkpod.glade:1424
-msgid "Add Directories Recursively"
-msgstr "הוספת תיקיות רקורסיבית"
-
-#: gtkpod.glade:1425
-msgid "Dirs"
-msgstr "תיקיות"
-
-#: gtkpod.glade:1442
-msgid "Add playlist from file"
-msgstr "הוספת רשימת השמעה מקובץ"
-
-#: gtkpod.glade:1460
-msgid "Create New Playlist"
-msgstr "יצירת רשימת השמעה חדשה"
-
-#: gtkpod.glade:1461
-msgid "New PL"
-msgstr "ר\"ה חדשה"
-
-#: gtkpod.glade:1478
-msgid "Write Changes to Disk/iPod"
-msgstr "כתוב שינויים אל הדיסק/iPod"
-
-#: gtkpod.glade:1479
-msgid "Sync"
-msgstr "סנכרן"
-
-#: gtkpod.glade:1495
-msgid "Stop Display Update"
-msgstr "עצור עדכון תצוגה"
-
-#: gtkpod.glade:1496
-msgid "Stop"
-msgstr "עצור"
-
-#: gtkpod.glade:1669
-msgid "About gtkpod"
-msgstr "אודות gtkpod"
-
-#: gtkpod.glade:1790
-msgid "Credits"
-msgstr "קרדיט"
-
-#: gtkpod.glade:1844
-msgid "Translators"
-msgstr "מתרגמים"
-
-#: gtkpod.glade:1898
-msgid "special_sorttab -- Don't translate!"
-msgstr "special_sorttab -- Don't translate!"
-
-#: gtkpod.glade:1932
-msgid " Logic: "
-msgstr " לוגיקה:"
-
-#: gtkpod.glade:1954
-msgid "Any (OR)"
-msgstr "או (כל אחד)"
-
-#: gtkpod.glade:1973
-msgid "All (AND)"
-msgstr "וגם (הכל)"
-
-#: gtkpod.glade:2026
-msgid "0"
-msgstr "0"
-
-#: gtkpod.glade:2045
-msgid "1"
-msgstr "1"
-
-#: gtkpod.glade:2064
-msgid "2"
-msgstr "2"
-
-#: gtkpod.glade:2083
-msgid "3"
-msgstr "3"
-
-#: gtkpod.glade:2102
-msgid "4"
-msgstr "4"
-
-#: gtkpod.glade:2121
-msgid "5"
-msgstr "5"
-
-#: gtkpod.glade:2160
-msgid "Select '0' for no lower limit."
-msgstr "בחר '0' עבור ביטול גבול תחתון."
-
-#: gtkpod.glade:2181
-msgid " <= cts <= "
-msgstr " <= cts <= "
-
-#: gtkpod.glade:2202
-msgid "Select '-1' for no upper limit."
-msgstr "בחר '-1' עבור ביטול גבול עליון."
-
-#: gtkpod.glade:2245 gtkpod.glade:2318 gtkpod.glade:2484
-msgid ""
-"'DD/MM/YYYY HH:MM < d < DD/MM/YYYY HH:MM' or similar. Press 'enter' when "
-"finished."
-msgstr ""
-"תבנית 'DD/MM/YYYY HH:MM < d < DD/MM/YYYY HH:MM' או דומה. לחץ 'enter' בסיום."
-
-#: gtkpod.glade:2287 gtkpod.glade:2360 gtkpod.glade:2526 gtkpod.glade:2701
-msgid "Calendar"
-msgstr "יומן"
-
-#: gtkpod.glade:2385
-msgid "Specify interval"
-msgstr "ציין מרווח"
-
-#: gtkpod.glade:2596
-msgid "Display tracks that match the criteria entered above."
-msgstr "הצג רצועות המתאימות לקריטריונים המוכנסים למעלה."
-
-#: gtkpod.glade:2639 gtkpod.glade:11330
-msgid "_Display"
-msgstr "_תצוגה"
-
-#: gtkpod.glade:2671
-msgid ""
-"Automatically start displaying tracks that match the criteria entered above. "
-"If not selected, you must press 'Display' to start displaying."
-msgstr ""
-"הצג אוטומטית רצועות שמתאימות לקריטריונים המוכנסים למעלה. אם אפשרות זו לא "
-"נבחרה, חובה עליך ללחוץ 'תצוגה' על מנת להראות את הרצועות."
-
-#: gtkpod.glade:2673
-msgid "Start display automatically"
-msgstr "התחל תצוגה אוטומטית"
-
-#: gtkpod.glade:2746
-msgid "Sorttab: "
-msgstr "כרטיסייה מיון:"
-
-#: gtkpod.glade:2786
-msgid "     "
-msgstr "     "
-
-#: gtkpod.glade:2808
-msgid "Category: "
-msgstr "קטגוריה:"
-
-#: gtkpod.glade:2885
-msgid "Please specify a time interval"
-msgstr "אנא ציין מרווח זמן"
-
-#: gtkpod.glade:2930
-msgid "Lower Margin"
-msgstr "שוליים תחתונים"
-
-#: gtkpod.glade:2977 gtkpod.glade:3183
-msgid "Time:"
-msgstr "זמן:"
-
-#: gtkpod.glade:3020 gtkpod.glade:3226
-msgid ":"
-msgstr ":"
-
-#: gtkpod.glade:3093
-msgid "No lower margin"
-msgstr "ללא שוליים תחתונים"
-
-#: gtkpod.glade:3136
-msgid "Upper margin"
-msgstr "שוליים עליונים"
-
-#: gtkpod.glade:3299
-msgid "No upper margin"
-msgstr "ללא שוליים עליונים"
-
-#: gtkpod.glade:3397
-msgid "Sorting Options"
-msgstr "אפשרויות מיון"
-
-#: gtkpod.glade:3427
-msgid "<b>Sort Order</b>"
-msgstr "<b>סדר מיון</b>"
-
-#: gtkpod.glade:3454 gtkpod.glade:4704 gtkpod.glade:7682 gtkpod.glade:7860
-#: gtkpod.glade:8031 gtkpod.glade:8108 gtkpod.glade:8163 gtkpod.glade:8239
-#: gtkpod.glade:8396 gtkpod.glade:8522 gtkpod.glade:8879 gtkpod.glade:9338
-#: gtkpod.glade:9700 gtkpod.glade:10487 gtkpod.glade:10644 gtkpod.glade:10801
-#: gtkpod.glade:10922 gtkpod.glade:10975 gtkpod.glade:11132 gtkpod.glade:11389
-#: gtkpod.glade:11443 gtkpod.glade:11554 gtkpod.glade:11657 gtkpod.glade:11813
-#: gtkpod.glade:12027 gtkpod.glade:12248 gtkpod.glade:12386 gtkpod.glade:12752
-#: gtkpod.glade:12870 gtkpod.glade:13044 gtkpod.glade:13279 gtkpod.glade:13381
-msgid "    "
-msgstr "    "
-
-#: gtkpod.glade:3482
-msgid ""
-"In order to save the displayed track order to the iPod choose 'Save "
-"Displayed Track Order' from the 'Edit' menu or select 'Auto Store' below."
-msgstr ""
-"על מנת לשמור את סדר הרצועות הנראות אל ה-iPod בחר 'שמור סדר רצועות נראות' "
-"מתפריט ה-'עריכה' או בחר 'שמירה אוטומטית' למטה."
-
-#: gtkpod.glade:3865
-msgid "Ascending"
-msgstr "עולה"
-
-#: gtkpod.glade:3909
-msgid "Descending"
-msgstr "יורד"
-
-#: gtkpod.glade:3953
-msgid "None"
-msgstr "ללא"
-
-#: gtkpod.glade:4042
-msgid "Sorttabs"
-msgstr "כרטיסיות מיון"
-
-#: gtkpod.glade:4087
-msgid "Tracks"
-msgstr "רצועות"
-
-#: gtkpod.glade:4240
-msgid "Auto Store"
-msgstr "שמירה אוטומטית"
-
-#: gtkpod.glade:4285 gtkpod.glade:4331
-msgid "Please refer to the notice below."
-msgstr "הסתכל בבקשה בהודעה למטה."
-
-#: gtkpod.glade:4563
-msgid "Sort tracks according to: "
-msgstr "מיין רצועות לפי:"
-
-#: gtkpod.glade:4593
-msgid ""
-"You can also use the table headers, but this allows you to sort according to "
-"a column that is not displayed."
-msgstr ""
-"אתה גם יכול להשתמש בכותרות הטבלאות, אבל זה יאפשר לך למיין רק לפי העמודה "
-"המוצגת."
-
-#: gtkpod.glade:4629
-msgid ""
-"If checked, sorting will be case sensitive. Please note that case sensitive "
-"sorting will not work well with most charsets."
-msgstr ""
-"אם יסומן, המיון יבחין בין אותיות קטנות לגדולות. שים לב שהבחנה זאת לא תעבוד "
-"היטב ברוב ערכות התווים."
-
-#: gtkpod.glade:4631
-msgid "Sorting case sensitive"
-msgstr "מיון עם תלות בגודל (case)"
-
-#: gtkpod.glade:4677
-msgid "<b>Ignore Frequent Words</b>"
-msgstr "<b>התעלם ממילים תכופות</b>"
-
-#: gtkpod.glade:4769
-msgid "Ignore these words when at the beginning of the following fields:"
-msgstr "התעלם ממילים אלו כאשר הן מופיעות בתחילת השדות הבאים:"
-
-#: gtkpod.glade:5040
-msgid "gtkpod Info"
-msgstr "מידע gtkpod"
-
-#: gtkpod.glade:5339 gtkpod.glade:5414 gtkpod.glade:5439 gtkpod.glade:6065
-#: gtkpod.glade:6198
-msgid "      "
-msgstr "      "
-
-#: gtkpod.glade:5692
-msgid "Number of tracks"
-msgstr "מספר רצועות"
-
-#: gtkpod.glade:5718
-msgid "Play time"
-msgstr "זמן השמעה"
-
-#: gtkpod.glade:5745
-msgid "File size"
-msgstr "גודל קובץ"
-
-#: gtkpod.glade:5771
-msgid "Number of playlists"
-msgstr "מספר רשימות ההשמעה"
-
-#: gtkpod.glade:5797
-msgid "Deleted tracks"
-msgstr "רצועות נמחקות"
-
-#: gtkpod.glade:5823
-msgid "File size (deleted)"
-msgstr "גודל קובץ (נמחק)"
-
-#: gtkpod.glade:5849
-msgid "Non-transferred tracks"
-msgstr "רצועות לא מועברות"
-
-#: gtkpod.glade:5875
-msgid "File size (non-transferred)"
-msgstr "גודל קובץ (לא-מועבר)"
-
-#: gtkpod.glade:5901
-msgid "Effective free space"
-msgstr "מקום פנוי אפקטיבי"
-
-#: gtkpod.glade:5927
-msgid ""
-"Total\n"
-"(iPod)"
-msgstr ""
-"סך הכל\n"
-"(iPod)"
-
-#: gtkpod.glade:5955
-msgid ""
-"Selected\n"
-"Playlist"
-msgstr ""
-"רשימות השמעה\n"
-"נבחרות"
-
-#: gtkpod.glade:5983
-msgid ""
-"Displayed\n"
-"Tracks"
-msgstr ""
-"רצועות\n"
-"מוצגות"
-
-#: gtkpod.glade:6011
-msgid ""
-"Selected\n"
-"Tracks"
-msgstr ""
-"רצועות\n"
-"נבחרות"
-
-#: gtkpod.glade:6039
-msgid ""
-"Total\n"
-"(local)"
-msgstr ""
-"סך הכל\n"
-"(מקומי)"
-
-#: gtkpod.glade:6436
-msgid "label21"
-msgstr "label21"
-
-#: gtkpod.glade:6527
-msgid "Never show this dialogue again"
-msgstr "אל תראה חלון דו-שיח זה בעתיד"
-
-#: gtkpod.glade:6572 gtkpod.glade:6898
-msgid "window1"
-msgstr "חלון1"
-
-#: gtkpod.glade:6629
-msgid "_M3U"
-msgstr "_M3U"
-
-#: gtkpod.glade:6648
-msgid "_PLS"
-msgstr "_PLS"
-
-#: gtkpod.glade:6686
-msgid ""
-"If available, the local copy of the track is referenced in the playlist. "
-"Otherwise the file on the iPod is used."
-msgstr ""
-"אם זמין, העותק המקומי של הרצועה יקושר מרשימת ההשמעה. אחרת נשתמש בקובץ על ה-"
-"iPod."
-
-#: gtkpod.glade:6688
-msgid "_Prefer Local"
-msgstr "_העדף מקומי"
-
-#: gtkpod.glade:6706
-msgid ""
-"The local copy of the track is referenced in the playlist. If the track is "
-"not available locally, an error message is displayed."
-msgstr ""
-"העותק המקומי של הרצועה יקושר מרשימת ההשמעה. אם הרצועה לא זמינה מקומית, תוצג "
-"הודעת שגיאה."
-
-#: gtkpod.glade:6708
-msgid "_Local"
-msgstr "_מקומי"
-
-#: gtkpod.glade:6727
-msgid "The track on the iPod is referenced in the playlist file."
-msgstr "הרצועה על ה-iPod מקושרת בקובץ רשימת ההשמעה."
-
-#: gtkpod.glade:6729
-msgid "_iPod"
-msgstr "_iPod"
-
-#: gtkpod.glade:6762
-msgid "Playlist type:"
-msgstr "סוג רשימת ההשמעה:"
-
-#: gtkpod.glade:6787
-msgid "Source:"
-msgstr "מקור:"
-
-#: gtkpod.glade:6826
-msgid "Template for info field: "
-msgstr "תבנית עבור שדה המידע:"
-
-#: gtkpod.glade:6847
-msgid ""
-"Determines how the string for the info field should be constructed, e.g '%a/%"
-"A/%T - %t.mp3' or '%o'.  You can separate several templates by semicolons -- "
-"gtkpod will determine which one to use by the filename extension given. "
-"Artist: %a, album: %A, composer: %c, title: %t, genre: %G, track nr: %T, CD "
-"nr: %C, year: %Y, original filename (requires extended information file): %"
-"o, the character '%': %%."
-msgstr ""
-"קובע איך מחרוזת המידע תבנה, לדוגמה:\n"
-"'%a/% A/%T - %t.mp3' or '%ס'\n"
-"אתה יכול להפריד מספר תבניות על ידי נקודה־פסיק. היישום gtkpod יקבע באיזה מהם "
-"להשתמש על ידי הסיומת הניתנת.\n"
-"אמן: a%, כותר: A%, יוצר: c%, שם הרצועה: t%, סגנון: G%, מספר רצועה: T%, מספר "
-"תקליטור: C%, שנה: Y%, שם מקורי (דרוש מידע מורחב): o%, הסימן '%': %%."
-
-#: gtkpod.glade:6878 gtkpod.glade:7108
-msgid "gtkpod options"
-msgstr "אפשרויות ה-gtkpod"
-
-#: gtkpod.glade:6934
-msgid "Filename Format: "
-msgstr "תבנית הקובץ:"
-
-#: gtkpod.glade:6955
-msgid ""
-"Determines the filename of tracks you copy from the iPod, e.g '%a/%A/%T - %t."
-"mp3' or '%o'.  You can separate several patterns by semicolons -- gtkpod "
-"will determine which one to use by the filename extension given. Artist: %a, "
-"album: %A, composer: %c, title: %t, genre: %G, track nr: %T, CD nr: %C, "
-"year: %Y, original filename (requires extended information file): %o, "
-"current playlist: %p, the character '%': %%."
-msgstr ""
-"קובע את שם הרצועה שאותה תעתיק מה-iPod. לדוגמה:\n"
-"'%a/%A/%T - %t.mp3' or '%o'.\n"
-"אתה יכול לציין מספר תבניות מופרדות על ידי נקודה־פסיק. היישום gtkpod יקבע "
-"באיזה יעשה שימוש על ידי הסיומת הניתנת.\n"
-"אמן: a%, כותר: A%, יוצר: c%, שם הרצועה: t%, סגנון: G%, מספר רצועה: T%, מספר "
-"תקליטור: C%, שנה: Y%, שם מקורי (דרוש מידע מורחב): o%, רשימת ההשמעה הנוכחית: p"
-"%, הסימן '%': %%."
-
-#: gtkpod.glade:6960
-msgid " "
-msgstr " "
-
-#: gtkpod.glade:6982
-msgid ""
-"Normally the charset specified when first importing the track will be used "
-"for the filename. If you set this option you can set a different charset "
-"with the charset selector (Preferences/'Adding/Updating/Syncing'). Note: the "
-"charset info is stored in the extended information file (see "
-"Preferences/'Writing of the iTunesDB'). Tracks imported before V0.51 will "
-"have no charset stored. Instead the charset specified will be used."
-msgstr ""
-"באופן רגיל ערכת התווים המצוינת כאשר מייבאים לראשונה את הרצועות תהיה זו שיעשה "
-"בה שימוש לעדכן את שם הקובץ. אם סמנת אפשרות זו תוכל לבחור ערכת תווים אחרת "
-"בעזרת בוחר ערכת התווים (העדפות 'הוספה/עדכון/סנכרון'). הערה: מידע ערכת התווים "
-"נשמר במידע המורחב (ראה העדפות כתיבה ל-iTunesDB). רצועות שיובאו לפני גרסה "
-"0.51 לא תהיה להם ערכת תווים שמורה. במקום זאת ערכת התווים המצוינת למעלה תהיה "
-"זו שנשתמש בה."
-
-#: gtkpod.glade:6984
-msgid ""
-"Use selected charset (Preferences/'Adding/Updating/ Syncing')\n"
-"for this filename."
-msgstr ""
-"השתמש בערכת התווים הנבחרת (אפשרויות/'הוספה/עדכון/סנכרון')\n"
-"עבור הקובץ הזה."
-
-#: gtkpod.glade:7003
-msgid ""
-"When copying from iPod no check is performed on whether the destination file "
-"exists. Enabling this option will make gtkpod check whether the length of "
-"the destination file is the same as the file in the iPod. If so the file is "
-"skipped, allowing a quick sync of the iPod's contents."
-msgstr ""
-"בזמן ההעתקה מה-iPod לא מתבצעת בדיקה האם קובץ היעד קיים. אפשר אפשרות זו "
-"והתכנית תבדוק האם גודלו של קובץ היעד הוא זהה לקובץ שעל ה-iPod. אם כן נדלג על "
-"הקובץ, ובכך נאפשר סנכרון מהיר של תוכן ה-iPod."
-
-#: gtkpod.glade:7005
-msgid "Check for existing files when copying from iPod."
-msgstr "בדוק קבצים קיימים בזמן העתקה מה-iPod."
-
-#: gtkpod.glade:7169
-msgid "Playlist name:"
-msgstr "שם רשימת ההשמעה:"
-
-#: gtkpod.glade:7234
-msgid "Match al_l of the following"
-msgstr "התאם את _כל הבאים"
-
-#: gtkpod.glade:7253
-msgid "Match an_y of the following"
-msgstr "התאם _כל אחד מן הבאים"
-
-#: gtkpod.glade:7273
-msgid "_Ignore rules"
-msgstr "_התעלם מחוקים"
-
-#: gtkpod.glade:7343
-msgid "Rules"
-msgstr "חוקים"
-
-#: gtkpod.glade:7376
-msgid "_Limit to"
-msgstr "_הגבל ל"
-
-#: gtkpod.glade:7425
-msgid "   Sort by:"
-msgstr "   מיין על פי:"
-
-#: gtkpod.glade:7471
-msgid "Match only _checked tracks"
-msgstr "התאם רק רצועות _מסומנות"
-
-#: gtkpod.glade:7503
-msgid "Live _updating"
-msgstr "עדכון _חי"
-
-#: gtkpod.glade:7594
-msgid "Preferences"
-msgstr "הגדרות"
-
-#: gtkpod.glade:7655
-msgid "<b>Import</b>"
-msgstr "<b>ייבוא</b>"
-
-#: gtkpod.glade:7715
-msgid "iPod Mount _Point:"
-msgstr "נקודת ה_עיגון של ה-iPod:"
-
-#: gtkpod.glade:7737
-msgid ""
-"Where you mounted your iPod's filesystem. Usually '/mnt/ipod/' or similar."
-msgstr ""
-"היכן שעגנת את מערכת הקבצים של ה-iPod. בדרך כלל '/mnt/ipod' או משהו דומה."
-
-#: gtkpod.glade:7765
-msgid ""
-"On startup gtkpod will call 'mount <ipod mountpoint>', on exit a 'umount "
-"<ipod mountpoint>' call is carried out. For more complicated arrangements "
-"please use the ~/.gtkpod/gtkpod.in and ~/.gtkpod/gtkpod.out scripts."
-msgstr ""
-"בעליית התוכנית gtkpod יבצע 'mount <ipod mountpoint>' ביציאה תבוצע הפקודה "
-"'umount <ipod mountpoint>'. עבור סידורים יותר מתוחכמים אנא השתמש בסקריפטים: "
-"~/.gtkpod/gtkpod.in ~/.gtkpod/gtkpod.out"
-
-#: gtkpod.glade:7767
-msgid "Handle mounting/unmounting of iPod drive"
-msgstr "טפל בעגינה/ניתוק של כונן ה-iPod"
-
-#: gtkpod.glade:7787
-msgid "Automatically import iTunesDB on startup"
-msgstr "יבא אוטומטית iTunesDB בתחילת התוכנית"
-
-#: gtkpod.glade:7833
-msgid "<b>Adding/Updating/Syncing</b>"
-msgstr "<b>הוספה/עדכון/סנכרון</b>"
-
-#: gtkpod.glade:7893
 #, fuzzy
-msgid "_Encoding (ID3, files):"
-msgstr "_ערכת תווים (ID3, קבצים):"
+#~ msgid "Update Tracks"
+#~ msgstr "רצועות לא דורגו"
 
-#: gtkpod.glade:7924
-msgid ""
-"gtkpod expects the ID3 tags and the filenames to be in the encoding "
-"specified here. You can change it for consecutive 'Add Files' and 'Add Dirs' "
-"operation. 'System Charset' is the charset used by your current locale."
-msgstr ""
-"היישום gtkpod מצפה שהתגיות של הID3 והקבצים יהיו בקידוד המצוין כאן. תוכל "
-"לשנות זאת בשביל פעולות עוקבות של 'הוספת קבצים' ו 'הוספת תיקיות'. 'ערכת "
-"התווים של המערכת' היא ערכת התווים בשימוש עבור הלוקל הנוכחי שלך."
+#~ msgid "Normalize"
+#~ msgstr "נרמול"
 
-#: gtkpod.glade:7961
-msgid ""
-"Normally the charset specified when first importing the track will be used "
-"to update the track information. If you have chosen a wrong charset when "
-"first importing a track and want to correct it using the 'Update Track' "
-"function, you must check this option. Note: the charset info is stored in "
-"the extended information file (see 'Writing of iTunesDB' below) and tracks "
-"imported before V0.51 will have no charset stored. Instead the charset "
-"specified above will be used then."
-msgstr ""
-"באופן רגיל ערכת התווים המצוינת כאשר מייבאים לראשונה את הרצועות תהיה זו שיעשה "
-"בה שימוש לעדכן את מידע הרצועה. אם בחרת ערכת תווים שגויה כאשר ייבאת לראשונה "
-"את הרצועה וברצונך לתקן זאת בעזרת 'עדכן רצועה', אתה תהיה חייב לסמן את האפשרות "
-"הזאת. הערה: מידע ערכת התווים נשמר במידע המורחב (ראה : כתיבה ל-iTunesDB למטה) "
-"ורצועות שיובאו לפני גרסה 0.51 לא תהיה להם ערכת תווים שמורה. במקום זאת ערכת "
-"התווים המצוינת למעלה תהיה זו שנשתמש בה אז."
-
-#: gtkpod.glade:7963
 #, fuzzy
-msgid ""
-"Use selected encoding also when updating \n"
-"or syncing tracks"
-msgstr "השתמש בערכת תווים נבחרת גם בזמן עדכון או סנכרון רצועות"
+#~ msgid "Podcasts Preferences"
+#~ msgstr "_עריכת העדפות"
 
-#: gtkpod.glade:7983
-msgid "If you check this, gtkpod will descend into subdirectories recursively."
-msgstr "אם תסמן אופציה זו, gtkpod יכנס לתוך תיקיות משנה רקורסיבית."
+#~ msgid "file not found"
+#~ msgstr "הקובץ לא נמצא"
 
-#: gtkpod.glade:7985
-msgid "Add directories recursively"
-msgstr "הוספת תיקיות בצורה רקורסיבית"
+#~ msgid "Unmounting of '%s' (%s) unsuccessful."
+#~ msgstr "ביטול עגינה של '%s' (%s) נכשלה."
 
-#: gtkpod.glade:8004
-#, fuzzy
-msgid "Duplicate Recognition is based on a (modified) md5 hash over the file."
-msgstr "זיהוי כפילויות מתבסס על חישוב קוד ערבוב md5 על הקובץ."
+#~ msgid "Unmounting of '%s' unsuccessful."
+#~ msgstr "ביטול עגינה של '%s' נכשלה."
 
-#: gtkpod.glade:8006
-msgid "Don't allow file duplication"
-msgstr "אל תרשה כפילויות של קבצים"
+#~ msgid "Update"
+#~ msgstr "עדכון"
 
-#: gtkpod.glade:8052
-msgid ""
-"Display the list of duplicates that have been detected after adding files."
-msgstr "הצג את רשימת הכפילויות שזוהו אחרי הוספת הקבצים."
+#~ msgid "Sync Dirs"
+#~ msgstr "סנכרון תיקיות"
 
-#: gtkpod.glade:8054
-msgid "Display info about detected duplicates"
-msgstr "הצג מידע אודות כפילויות מזוהות"
+#~ msgid "Sync dirs of selected entry in which sort tab?"
+#~ msgstr "באיזה כרטיסיית מיון של רשומה נבחרת לסנכרן תיקיות?"
 
-#: gtkpod.glade:8080
-msgid ""
-"If the filename (full path) of an existing track matches that of a track to "
-"be added, this option allows you to update the information about the "
-"existing track rather than just skipping the track altogether. No update "
-"will take place if the file hasn't changed and you have selected the 'Don't "
-"allow file duplication' option above."
-msgstr ""
-"אם הקובץ (נתיב מלא) של רצועה קיימת תואם את זה של רצועה להוספה, אפשרות זאת "
-"מאפשרת לך לעדכן את המידע על הרצועה הקיימת במקום רק לדלג על הרצועה בכלל. שום "
-"עדכון לא יתבצע אם הקובץ לא השתנה ובחרת באפשרות לא לאפשר כפילות בקבצים למעלה."
+#~ msgid "Syncing directory '%s'"
+#~ msgstr "מסנכרן תיקיית '%s'"
 
-#: gtkpod.glade:8082
-msgid ""
-"When adding dirs/files, update information of\n"
-"existing tracks with identical filenames"
-msgstr ""
-"בזמן הוספת תיקיות/קבצים, עדכן את המידע על\n"
-"רצועות קיימות עם שמות קבצים זהים"
+#~ msgid "Syncing completed. No files deleted."
+#~ msgstr "הסנכרון הושלם. קבצים לא נמחקו."
 
-#: gtkpod.glade:8129
-msgid "Display a list of tracks that could actually be updated."
-msgstr "הצג רשימה של רצועות שאפשר לעדכן אותן."
+#~ msgid "Never delete any files when syncing"
+#~ msgstr "בזמן סנכרון, אל תמחק שום קובץ"
 
-#: gtkpod.glade:8131
-msgid "Display info about updated tracks"
-msgstr "הצג מידע אודות רצועות מעודכנות"
+#~ msgid "Syncing completed."
+#~ msgstr "סנכרון הושלם."
 
-#: gtkpod.glade:8184
-msgid "Display a list of tracks that could not be updated."
-msgstr "הצג רשימה של רצועות שאי אפשר לעדכן אותן."
+#~ msgid "Syncing aborted"
+#~ msgstr "סנכרון בוטל"
 
-#: gtkpod.glade:8186
-msgid "Display info about non-updated tracks"
-msgstr "הצג מידע על רצועות שלא עודכנו בזמן סנכרון תיקיות"
+#~ msgid "No tracks in selection"
+#~ msgstr "אין רצועות בבחירה"
 
-#: gtkpod.glade:8212
-msgid "When syncing directories"
-msgstr " "
+#~ msgid "'%s' is not a directory. Ignored.\n"
+#~ msgstr "'%s' היא לא תיקייה. מתעלם.\n"
 
-#: gtkpod.glade:8267
-msgid "Confirm lists of directories"
-msgstr "וודא רשימה של תיקיות"
+#~ msgid ""
+#~ "No directory names were stored. Make sure that you enable 'Write extended "
+#~ "information' in the Export section of the preferences at the time of "
+#~ "importing files.\n"
+#~ "\n"
+#~ "To synchronize directories now, activate the duplicate detection ('Don't "
+#~ "allow file duplication') in the Import section and add the directories "
+#~ "you want to sync again.\n"
+#~ msgstr ""
+#~ "לא נשמרו שמות תיקיות. וודא שאפשרת 'כתיבת מידע מורחב' בחלק ייצוא של "
+#~ "ההגדרות בזמן ייבוא קבצים.\n"
+#~ "\n"
+#~ "על מנת לסנכרן תיקיות עכשיו, הפעל את זיהוי כפילויות ('אל תרשה כפילויות') "
+#~ "בחלק הייבוא והוסף את התיקייה שאתה רוצה לסנכרן שוב.\n"
 
-#: gtkpod.glade:8286
-msgid ""
-"If you check this option, tracks that have been removed from the synced "
-"directories will be removed from the iPod as well."
-msgstr ""
-"אם תסמן אופציה זאת, רצועות שהוסרו מתיקיות מסונכרנות יוסרו מה-iPod גם כן."
+#~ msgid "No valid directories have been found. Sync aborted.\n"
+#~ msgstr "לא נמצאו תיקיות תקינות. סנכרון בוטל.\n"
 
-#: gtkpod.glade:8288
-msgid "Delete tracks that have been removed"
-msgstr "מחק רצועות שהוסרו"
+#~ msgid ""
+#~ "The (former) contents of the following directories will be removed from "
+#~ "the database:\n"
+#~ "\n"
+#~ msgstr ""
+#~ "התוכן (הקודם) של התיקיות הבאות יוסר ממסד הנתונים:\n"
+#~ "\n"
 
-#: gtkpod.glade:8307
-msgid "This is the same option as in 'Edit/Delete Confirmation'"
-msgstr "זוהי אופציה זהה לזו שב- 'עריכה/ווידוא מחיקה'"
+#~ msgid ""
+#~ "The following directories will be synchronized:\n"
+#~ "\n"
+#~ msgstr ""
+#~ "התיקיות הבאות יסונכרנו:\n"
+#~ "\n"
 
-#: gtkpod.glade:8309
-msgid "Confirm before removing tracks"
-msgstr "וודא לפני הסרת רצועות"
+#~ msgid "Synchronize directories"
+#~ msgstr "מסנכרן תיקיות"
 
-#: gtkpod.glade:8369
-msgid "<b>Sync</b>"
-msgstr "<b>סנכרון</b>"
+#~ msgid "Syncing contacts, calendar and notes..."
+#~ msgstr "מסנכרן אנשי קשר, יומן ופתקים..."
 
-#: gtkpod.glade:8417
-msgid ""
-"Highly recommended for faster import when taking advantage of the "
-"duplication recognition. Also, having the PC filenames allows writing "
-"changed ID3 tags to disk, and even to reconstruct your ipod's contents in "
-"case of file system corruption (change the \"transferred=\" entries in your "
-"backuped database)."
-msgstr ""
-"מומלץ מאוד לייבוא מהיר יותר ,כאשר מנצלים את מנגנון זיהוי הכפילויות. בנוסף, "
-"על ידי כך שקיים מידע שם הקובץ של הקבצים על ה-PC זה מאפשר כתיבת של תגיות ה-"
-"ID3 לדיסק הקשיח, ואפילו בניה מחדש של תוכן ה-iPod במקרה של בעיה במערכת הקבצים "
-"(שנה את שדה ה-\"הועבר\" במסד הנתונים המגובה)."
+#~ msgid "_Synchronize Directories"
+#~ msgstr "_סנכרון תיקיות"
 
-#: gtkpod.glade:8419
-#, fuzzy
-msgid ""
-"Write extended information (PC filenames,\n"
-" MD5 hashes, encoding). Recommended."
-msgstr "כתוב מידע מורחב (שמות קבצים ב-PC ערבובי MD5, ערכות תווים). מומלץ."
+#~ msgid ""
+#~ "Where you mounted your iPod's filesystem. Usually '/mnt/ipod/' or similar."
+#~ msgstr ""
+#~ "היכן שעגנת את מערכת הקבצים של ה-iPod. בדרך כלל '/mnt/ipod' או משהו דומה."
 
-#: gtkpod.glade:8463 gtkpod.glade:14970
-#, fuzzy
-msgid "_General"
-msgstr "כללי"
+#~ msgid ""
+#~ "If you check this option, tracks that have been removed from the synced "
+#~ "directories will be removed from the iPod as well."
+#~ msgstr ""
+#~ "אם תסמן אופציה זאת, רצועות שהוסרו מתיקיות מסונכרנות יוסרו מה-iPod גם כן."
 
-#: gtkpod.glade:8495
-msgid "<b>Tag Reading</b>"
-msgstr "<b>קריאת תגיות</b>"
+#~ msgid "Delete tracks that have been removed"
+#~ msgstr "מחק רצועות שהוסרו"
 
-#: gtkpod.glade:8550
-msgid "Read tags from file contents (e.g. ID3 tags in MP3 files)"
-msgstr "קרא תגיות מתוכן הקובץ (כלומר תגיות ID3 של קבצי MP3)"
+#~ msgid "Confirm before removing tracks"
+#~ msgstr "וודא לפני הסרת רצועות"
 
-#: gtkpod.glade:8569 gtkpod.glade:8906
-msgid ""
-"artist: %a, album: %A, composer: %c, title: %t, genre: %G, track nr: %T, CD "
-"nr: %C, year: %Y, skip data: %*, the character '%': %%. You can separate "
-"several templates by a ';'. The first one matching the filename will be "
-"used. Example: '%a - %A/%T %t.mp3;%t.wav'."
-msgstr ""
-"אמן: a%, כותר: A%, יוצר: c%, שם הרצועה: t%, סגנון: G%, מספר רצועה: T%, מספר "
-"תקליטור: C%, שנה: Y%, מידע דילוג: *%, האות '%': %%.\n"
-"אפשר להפריד בין מספר תבניות על ידי ';'. הראשון שיתאים לקובץ יבחר. לדוגמה:\n"
-" '%a - %A/%T %t.mp3;%t.wav'."
+#~ msgid ""
+#~ "Before removing tracks completely when\n"
+#~ "synchronizing directories"
+#~ msgstr "לפני הסרת רצועות לגמרי כאשר מסנכרנים תיקיות"
 
-#: gtkpod.glade:8571
-msgid "Use this template to parse filename for tag information:"
-msgstr "השתמש בתבנית הזאת על מנת לנתח את הקובץ למידע תגית:"
-
-#: gtkpod.glade:8644
-msgid "Overwrite tags that are already set"
-msgstr "שכתב תגיות שכבר כתובות"
-
-#: gtkpod.glade:8677
-msgid ""
-"As a last resort set the following tags to the\n"
-"filename if they are (still) empty:"
-msgstr ""
-"בתור אפשרות אחרונה קבע את התגיות לשם הקובץ\n"
-"אם הן (עדיין) ריקות:"
-
-#: gtkpod.glade:8852
 #, fuzzy
-msgid "<b>Artwork</b>"
-msgstr "<b>ייבוא</b>"
+#~ msgid "Add"
+#~ msgstr "הוספו"
 
-#: gtkpod.glade:8908
-msgid "Add artwork from file using the following template"
-msgstr ""
-
-#: gtkpod.glade:8960
 #, fuzzy
-msgid ""
-"Determines the name of the file with the cover art. You can separate several "
-"patterns by semicolons which will be tried in order. Artist: %a, album: %A, "
-"composer: %c, title: %t, genre: %G, track nr: %T, CD nr: %C, year: %Y, "
-"original filename (requires extended information file): %o, original "
-"filename without file extension: %O, current playlist: %p, the character "
-"'%': %%."
-msgstr ""
-"קובע את שם הרצועה שאותה תעתיק מה-iPod. לדוגמה:\n"
-"'%a/%A/%T - %t.mp3' or '%o'.\n"
-"אתה יכול לציין מספר תבניות מופרדות על ידי נקודה־פסיק. היישום gtkpod יקבע "
-"באיזה יעשה שימוש על ידי הסיומת הניתנת.\n"
-"אמן: a%, כותר: A%, יוצר: c%, שם הרצועה: t%, סגנון: G%, מספר רצועה: T%, מספר "
-"תקליטור: C%, שנה: Y%, שם מקורי (דרוש מידע מורחב): o%, רשימת ההשמעה הנוכחית: p"
-"%, הסימן '%': %%."
+#~ msgid "Delete"
+#~ msgstr "רצועות נמחקות"
 
-#: gtkpod.glade:8981
 #, fuzzy
-msgid "<b>Examples</b>"
-msgstr "<b>mserv</b>"
+#~ msgid "Name: "
+#~ msgstr "שם משתמש:"
 
-#: gtkpod.glade:9011
-msgid "folder.jpg"
-msgstr ""
-
-#: gtkpod.glade:9035
-msgid "folder"
-msgstr ""
-
-#: gtkpod.glade:9059
-msgid "../%A.jpg"
-msgstr ""
-
-#: gtkpod.glade:9083
-msgid "%A"
-msgstr ""
-
-#: gtkpod.glade:9107
-msgid "Use <i>folder.jpg</i> as cover art."
-msgstr ""
-
-#: gtkpod.glade:9131
-msgid "Use <i>folder.jpg</i>, <i>folder.png</i>..."
-msgstr ""
-
-#: gtkpod.glade:9155
-msgid "Use <i>&lt;Album&gt;.jpg</i> in the parent directory"
-msgstr ""
-
-#: gtkpod.glade:9179
-msgid "Use <i>&lt;Album&gt;.jpg</i>, <i>&lt;Album&gt;.png</i>..."
-msgstr ""
-
-#: gtkpod.glade:9203
-msgid "folder.jpg;%a.jpg"
-msgstr ""
-
-#: gtkpod.glade:9227
-msgid "First try <i>folder.jpg</i>, then <i>&lt;artist&gt;.jpg</i>"
-msgstr ""
-
-#: gtkpod.glade:9311
-msgid "<b>mserv</b>"
-msgstr "<b>mserv</b>"
-
-#: gtkpod.glade:9365 gtkpod.glade:9579
-msgid "Currently only rating is supported."
-msgstr "נכון לעכשיו רק המדרוג נתמך."
-
-#: gtkpod.glade:9367
-msgid "Use mserv database to fill additional information"
-msgstr "השתמש במסד נתונים של mserv על מנת למלא מידע נוסף"
-
-#: gtkpod.glade:9395
-msgid "Music Root:"
-msgstr "שורש המוזיקה:"
-
-#: gtkpod.glade:9419
-msgid "mserv database lookup will be done for music in this directory."
-msgstr "החיפוש במסד הנתונים mserv יתבצע בתיקייה זאת עבור מוזיקה."
-
-#: gtkpod.glade:9441
-msgid "mserv Root:"
-msgstr "שורש ה-mserv:"
-
-#: gtkpod.glade:9465
-msgid "Root directory of mserv database (trackinfo root)."
-msgstr "תיקיית שורש או מסד נתונים mserv (השורש של trackinfo)."
-
-#: gtkpod.glade:9487
-msgid "Username:"
-msgstr "שם משתמש:"
-
-#: gtkpod.glade:9511
-msgid "Username to be used for mserv database lookup."
-msgstr "שם משתמש הנועד לשימוש במסד הנתונים של mserv."
-
-#: gtkpod.glade:9535 gtkpod.glade:9554 gtkpod.glade:12102 gtkpod.glade:12172
-#: gtkpod.glade:12317 gtkpod.glade:12491 gtkpod.glade:12556 gtkpod.glade:12621
-msgid "Browse"
-msgstr "סייר"
-
-#: gtkpod.glade:9581
-msgid "Show information about problems when accessing mserv"
-msgstr "הצג מידע על בעיות בגישה ל-mserv"
-
-#: gtkpod.glade:9627
 #, fuzzy
-msgid "_Track Info"
-msgstr "רצועה"
+#~ msgid "<b>File options</b>"
+#~ msgstr "<b>ווידוא מחיקה</b>"
 
-#: gtkpod.glade:9673
-msgid "<b>Displayed Track Attributes</b>"
-msgstr "<b>מאפייני רצועה נראים</b>"
-
-#: gtkpod.glade:10460
-msgid "<b>Sort Tabs</b>"
-msgstr "<b>כרטיסיות מיון</b>"
-
-#: gtkpod.glade:10514
-msgid "Keeps all compilation CDs grouped together in the artists sort tab."
-msgstr ""
-
-#: gtkpod.glade:10516
-msgid "Group artists on compilation CDs"
-msgstr ""
-
-#: gtkpod.glade:10541
-msgid "_Number of sort tabs:"
-msgstr "_מספר כרטיסיות המיון:"
-
-#: gtkpod.glade:10617
-msgid "<b>Automatically select...</b>"
-msgstr "<b>בחירה אוטומטית...</b>"
-
-#: gtkpod.glade:10671
-msgid ""
-"If you don't select the master playlist automatically, the initial database "
-"import is much faster because the display dosn't have to be updated."
-msgstr ""
-"אם לא תבחר את רשימת ההשמעה הראשית אוטומטית, יבוא מסד הנתונים הראשוני יהיה "
-"יותר מהיר בעקבות כך שהתצוגה לא תהיה חייבת להתעדכן."
-
-#: gtkpod.glade:10673
-msgid "...master playlist"
-msgstr "...רשימת השמעה ראשית"
-
-#: gtkpod.glade:10693
-msgid "...entry 'All' in sort tab..."
-msgstr "...רשומה 'הכל' בכרטיסיית המיון..."
-
-#: gtkpod.glade:10774
-msgid "<b>Tooltips</b>"
-msgstr "<b>תוויות מידע</b>"
-
-#: gtkpod.glade:10829
-msgid "Display tooltips in main window"
-msgstr "הצג תוויות מידע בחלון הראשי"
-
-#: gtkpod.glade:10849
-msgid "Display tooltips in prefs window"
-msgstr "הצג תוויות מידע בחלון האפשרויות"
-
-#: gtkpod.glade:10895
-msgid "<b>Toolbar</b>"
-msgstr "<b>סרגל כלים</b>"
-
-#: gtkpod.glade:10950
-msgid "Display toolbar..."
-msgstr "הראה סרגל כלים..."
-
-#: gtkpod.glade:11003
-msgid "...as icons"
-msgstr "...בתור סמלים"
-
-#: gtkpod.glade:11023
-msgid "...as text"
-msgstr "...בתור טקסט"
-
-#: gtkpod.glade:11044
-msgid "...both as icons and text"
-msgstr "...ביחד גם סמלים וגם טקסט"
-
-#: gtkpod.glade:11105
-msgid "<b>Misc</b>"
-msgstr "<b>אחר</b>"
-
-#: gtkpod.glade:11159
-msgid ""
-"It is much faster to sort the display after all tracks have been added. Some "
-"people might feel irritated by this behaviour and should uncheck this option."
-msgstr ""
-"זה יותר מהיר למיין את התצוגה אחרי שכל הרצועות הוספו. חלק מהאנשים יחשבו "
-"שהתנהגות זו מעצבנת וכנראה יבטלו את הסימון לאפשרות זו."
-
-#: gtkpod.glade:11161
-msgid ""
-"Temporarily disable sorting when changing playlist\n"
-"or tab entry (faster!)"
-msgstr "חסום זמנית מיון בזמן החלפת רשימת השמעה או רשומת כרטיסיה (מהיר)"
-
-#: gtkpod.glade:11181
-msgid ""
-"The display can be blocked after changing a selection. The display update is "
-"faster, but you have to wait until it's finished. When using this option, "
-"sorting is also temporarily disabled (see option above)."
-msgstr ""
-"התצוגה יכולה להינעל אחרי שינוי הבחירה. עדכון התצוגה יהיה מהיר יותר, אך אתה "
-"תצטרך להמתין עד הסיום. בזמן שימוש באפשרות זו, המיון גם הוא זמנית מבוטל (ראה "
-"אפשרות למעלה)."
-
-#: gtkpod.glade:11183
-msgid ""
-"Block display when changing playlist or tab\n"
-" entry (faster!)"
-msgstr "חסום תצוגה בזמן החלפת רשימת השמעה או רשומת כרטיסיה (מהיר)"
-
-#: gtkpod.glade:11203
-msgid "This option will be re-activated when you upgrade gtkpod."
-msgstr "האפשרות הזאת תופעל מחדש בזמן שדרוג gtkpod."
-
-#: gtkpod.glade:11205
-msgid "Display messages and warnings at startup"
-msgstr "הראה הודעות ואזהרות בתחילת התוכנית"
-
-#: gtkpod.glade:11267
-msgid "Advanced Sorting Options"
-msgstr "אפשרויות מיון מתקדמות"
-
-#: gtkpod.glade:11362
-msgid "<b>Track Editing</b>"
-msgstr "<b>עריכת רצועות</b>"
-
-#: gtkpod.glade:11416
-msgid ""
-"The tags are written to the files on your harddrive and on the ipod (if "
-"available)."
-msgstr "התגיות נכתבות לקבצים על הדיסק הקשיח ועל ה-iPod (אם זמין)."
-
-#: gtkpod.glade:11418
-msgid "Write ID3 tags to disk when modified in gtkpod"
-msgstr "כתוב תגיות ID3 לדיסק כאשר הן משתנות ב-gtkpod"
-
-#: gtkpod.glade:11470
-msgid ""
-"Normally the charset specified when first importing the track will be used "
-"to write the tags. If you have chosen a wrong charset when first importing a "
-"track, you should select this option along with the correct charset.  Note: "
-"uses the extended information file to store the charset information (see "
-"'Writing of the iTunesDB' on the 'Input/Output' page) and tracks imported "
-"before V0.51 will have no charset stored -- the charset specified on the "
-"'Input/Output' page will be used."
-msgstr ""
-"בדרך כלל יעשה שימוש בערכת התווים המצוינת בזמן ייבוא הרצועה לשם כתיבת התגיות. "
-"אם בחרת ערכת תווים שגויה בזמן ייבוא רצועה, אתה יכול לבחור אפשרות זו ביחד עם "
-"ערכת התווים הנכונה. הערה: משתמש בקובץ המידע המורחב לשמור את מידע ערכת התווים "
-"(ראה 'כתיבת iTunesDB' בעמוד קלט/פלט) ורצועות שיובאו לפני גרסה 0.51 לא תהייה "
-"להן ערכה שמורה -- הערכה המצוינת בעמוד קלט/פלט יעשה בה שימוש."
-
-#: gtkpod.glade:11472
 #, fuzzy
-msgid ""
-"Use selected encoding (on the 'General' page)\n"
-"when writing tags"
-msgstr ""
-"השתמש בערכת תווים הנבחרת (בעמוד 'כללי')\n"
-"בזמן כתיבת התגיות"
+#~ msgid " days old"
+#~ msgstr "ימים"
 
-#: gtkpod.glade:11492
-msgid ""
-"This is the way to go, but maybe not all programs support it yet. ID3v2.4 "
-"uses unicode to store the tags, so you won't have to worry about charsets "
-"any more. gtkpod will use UTF8 encoding as this will not increase the size "
-"of pure ASCII tags. ID3v2.2/4 tags will also be written if they are already "
-"present in the file to write to."
-msgstr ""
-"זוהי הדרך הנכונה, אך אולי לא כל התכניות תומכות בזה עדיין. הסימנייה ID3v2.4 "
-"משתמשת ב־unicode לשמור על התגיות, על מנת שלא נצטרך לדאוג לגבי ערכות תווים. "
-"gtkpod ישתמש ב־UTF8 כי זה לא יגדיל את הגודל של תגיות ASCII טהורות. תגיות "
-"ID3V2.2/4 יכתבו גם אם הן כבר קיימות בקובץ שכותבים עליו."
-
-#: gtkpod.glade:11494
-msgid "Always write ID3v2.4 tags (only applies to MP3)"
-msgstr "כתוב תמיד תגיות ID3v2.4 (תקף רק ל-MP3)"
-
-#: gtkpod.glade:11527
-msgid ""
-"If you select several tracks in the track list and edit a tag of the first "
-"track, the tags in the other tracks are updated as well."
-msgstr ""
-"אם אתה בוחר מספר רצועות ברשימת הרצועות ועורך תגית של הרצועה הראשונה, התגיות "
-"ברצועות הממוינות מתעדכנות גם כן."
-
-#: gtkpod.glade:11529
-msgid "Use 'Multi-Edit' for tracks selections"
-msgstr "השתמש ב-'עריכה מרובה' עבור בחירת רצועות"
-
-#: gtkpod.glade:11575
-msgid ""
-"Usually you don't want to set the title of several tracks to the same text. "
-"This option might avoid unwanted results (especially since there is no "
-"'undo' yet)."
-msgstr ""
-"בדרך כלל אתה לא תרצה לקבוע את שם הרצועה של מספר רצועות לאותו טקסט. אפשרות "
-"זאת עלולה למנוע תוצאות לא רצויות (במיוחד שאין עדיין אפשרות 'בטל')"
-
-#: gtkpod.glade:11577
-msgid "Use 'Multi-Edit' also for title field"
-msgstr "השתמש ב-'עריכה מרובה' גם עבור שדה שם הרצועה"
-
-#: gtkpod.glade:11630
-msgid "<b>Auto-Generated Playlists</b>"
-msgstr "<b>יצירה אוטומטית של רשימות השמעה</b>"
-
-#: gtkpod.glade:11690
-msgid "Number of tracks in generated playlists:"
-msgstr "מספר הרצועות ברשימת השמעה:"
-
-#: gtkpod.glade:11711
-msgid ""
-"Number of tracks in the generated playlists 'Most Often Listened', 'Best "
-"Rated' and 'Most Recently Played'. Choose '0' for 'no limit'."
-msgstr ""
-"מספר הרצועות ברשימות ההשמעה הנוצרות 'המושמעים ביותר', 'הדירוג הכי גבוה' "
-"ו-'נוגנו הכי לאחרונה'. בחר '0' עבור 'ללא מגבלה'."
-
-#: gtkpod.glade:11740
-msgid "Also include tracks never played in \"Best Rated\" playlist"
-msgstr "כלול גם רצועות שלעולם לא נוגנו ברשימת השמעה \"הדירוג הכי גבוה\""
-
-#: gtkpod.glade:11786
-msgid "<b>Delete Confirmation</b>"
-msgstr "<b>ווידוא מחיקה</b>"
-
-#: gtkpod.glade:11841
-msgid "Before removing playlists or tracks from a playlist"
-msgstr "לפני הסרת רשימות השמעה או רצועות מרשימת השמעה"
-
-#: gtkpod.glade:11861
-msgid "Before removing tracks from the iPod"
-msgstr "לפני הסרת רצועות מה-iPod"
-
-#: gtkpod.glade:11881
-msgid "Before removing tracks from the harddisk"
-msgstr "לפני הסרת רצועות מהדיסק הקשיח"
-
-#: gtkpod.glade:11901
-msgid "Before removing tracks from the local database"
-msgstr "לפני הסרת רצועות ממסד הנתונים המקומי"
-
-#: gtkpod.glade:11921
-msgid ""
-"Before removing tracks completely when\n"
-"synchronizing directories"
-msgstr "לפני הסרת רצועות לגמרי כאשר מסנכרנים תיקיות"
-
-#: gtkpod.glade:12000
-msgid "<b>Play</b>"
-msgstr "<b>נגן</b>"
-
-#: gtkpod.glade:12060
-msgid "Command for 'Play now':"
-msgstr "פקודה עבור 'נגן עכשיו':"
-
-#: gtkpod.glade:12081
-msgid ""
-"For example, 'xmms %s' will clear xmms' current playlist, add the selected "
-"tracks and start playing."
-msgstr ""
-"לדוגמא, 'xmms %s' ינקה את רשימת ההשמעה הנוכחית של xmms, יוסיף את הרצועות "
-"הנבחרות ויתחיל לנגן."
-
-#: gtkpod.glade:12130
-msgid "Command for 'Enqueue':"
-msgstr "פקודה עבור 'הכנס לתור':"
-
-#: gtkpod.glade:12151
-msgid ""
-"For example, 'xmms -e %s' will append (enqueue) the selected tracks to xmms' "
-"current playlist."
-msgstr ""
-"לדוגמא, 'xmms -e %s' יוסיף את הרצועות הנבחרות לרשימת ההשמעה הנוכחית ב-xmms."
-
-#: gtkpod.glade:12221
-msgid "<b>Volume Normalization</b>"
-msgstr "<b>נרמול עוצמת קול</b>"
-
-#: gtkpod.glade:12275
-msgid "'mp3gain' executable:"
-msgstr "קובץ ריצה של 'mp3gain':"
-
-#: gtkpod.glade:12296
-msgid ""
-"You only need to specify this if your 'mp3gain' executable is not in your "
-"default path. Example: '/usr/local/foo/mp3gain'. mp3gain will write the "
-"calculated gain value back to the file -- if you don't want this, set this "
-"entry to /bin/true or similar. mp3gain is only called if appropriate tags "
-"are not already set by your encoder. E.g. lame version 0.95 already writes "
-"the gain values into tags. The exact conversion factor between mp3gain's "
-"gain value and iPod's volume tag is not known yet -- your input is "
-"appreciated."
-msgstr ""
-"אתה תצטרך לרשום את הנתיב באופן מפורש רק אם קובץ הריצה של mp3gain הוא לא "
-"בנתיב ברירת המחדל. לדוגמה: '/usr/local/foo/mp3gain'. התכנית mp3gain תכתוב את "
-"ערך ההגברה המחושבת ישר לקובץ -- אם אתה לא מעוניין בזאת, קבע את הרשומה הזאת "
-"ל-/usr/true או דומה. הקריאה ל-mp3gain תתבצע רק אם התגיות המתאימות עדיין לא "
-"נקבעו על ידי המקודד. לדוגמה: מקודד lame גרסה 0.95 כותבת את ערכי ההגברה "
-"לתגיות בזמן הקידוד. רמת ההמרה בין mp3gain לזאת של ה-iPod עדיין לא ידועה -- "
-"מצפים לעזרה מצדכם."
-
-#: gtkpod.glade:12359
-msgid "<b>Synchronization</b>"
-msgstr "<b>סנכרון</b>"
-
-#: gtkpod.glade:12444
-msgid "Contacts sync command:"
-msgstr "פקודת סנכרון לאנשי קשר:"
-
-#: gtkpod.glade:12468 gtkpod.glade:12533 gtkpod.glade:12598
-msgid ""
-"Specify exact path including command line options. '%i' will be replaced "
-"with the mount point of the iPod."
-msgstr ""
-"מציין נתיב מלא כולל אפשרויות שורת פקודה. המחרוזת '%i' תוחלף עם נקודת העגינה "
-"של ה-iPod."
-
-#: gtkpod.glade:12509
-msgid "Calendar sync command:"
-msgstr "פקודת סנכרון ליומן:"
-
-#: gtkpod.glade:12574
-msgid "Notes sync command:"
-msgstr "פקודת סנכרון לפתקאות (notes):"
-
-#: gtkpod.glade:12647
-msgid "Call automatically when synchronizing iTunesDB"
-msgstr "קרא אוטומטית בזמן סנכרון iTunesDB"
-
-#: gtkpod.glade:12725
-msgid "<b>Podcast subscriptions</b>"
-msgstr ""
-
-#: gtkpod.glade:12800
 #, fuzzy
-msgid "Add"
-msgstr "הוספו"
+#~ msgid "Delete once copied to iPod"
+#~ msgstr "הרצועה נמחקה לגמרי מה-iPod"
 
-#: gtkpod.glade:12834
 #, fuzzy
-msgid "Delete"
-msgstr "רצועות נמחקות"
+#~ msgid "Create podcast logfile at:"
+#~ msgstr "יצירת קובץ רשימת השמעה"
 
-#: gtkpod.glade:12900
 #, fuzzy
-msgid "Name: "
-msgstr "שם משתמש:"
+#~ msgid "<b>iPod options</b>"
+#~ msgstr "<b>תוויות מידע</b>"
 
-#: gtkpod.glade:12924
-msgid "URL: "
-msgstr ""
-
-#: gtkpod.glade:13017
 #, fuzzy
-msgid "<b>File options</b>"
-msgstr "<b>ווידוא מחיקה</b>"
+#~ msgid "Automatically sync to iPod"
+#~ msgstr "בחירה אוטומטית..."
 
-#: gtkpod.glade:13077
-msgid "Save podcasts to: "
-msgstr ""
-
-#: gtkpod.glade:13132
-msgid "Delete from computer when "
-msgstr ""
-
-#: gtkpod.glade:13172 gtkpod.glade:13474
 #, fuzzy
-msgid " days old"
-msgstr "ימים"
+#~ msgid "Delete from iPod when "
+#~ msgstr "מחק מה-iPod"
 
-#: gtkpod.glade:13201
 #, fuzzy
-msgid "Delete once copied to iPod"
-msgstr "הרצועה נמחקה לגמרי מה-iPod"
+#~ msgid "Delete from iPod if podcast has been played"
+#~ msgstr "תאריך ושעה שהרצועה הושמעה לאחרונה"
 
-#: gtkpod.glade:13227
 #, fuzzy
-msgid "Automatically fetch podcasts on startup"
-msgstr "יבא אוטומטית iTunesDB בתחילת התוכנית"
+#~ msgid "Abort selected"
+#~ msgstr "לא נבחרו רצועות"
 
-#: gtkpod.glade:13254
-#, fuzzy
-msgid "Create podcast logfile at:"
-msgstr "יצירת קובץ רשימת השמעה"
-
-#: gtkpod.glade:13354
-#, fuzzy
-msgid "<b>iPod options</b>"
-msgstr "<b>תוויות מידע</b>"
-
-#: gtkpod.glade:13409
-#, fuzzy
-msgid "Automatically sync to iPod"
-msgstr "בחירה אוטומטית..."
-
-#: gtkpod.glade:13435
-#, fuzzy
-msgid "Delete from iPod when "
-msgstr "מחק מה-iPod"
-
-#: gtkpod.glade:13503
-#, fuzzy
-msgid "Delete from iPod if podcast has been played"
-msgstr "תאריך ושעה שהרצועה הושמעה לאחרונה"
-
-#: gtkpod.glade:13523
-msgid "Include broadcast date in track title"
-msgstr ""
-
-#: gtkpod.glade:13543
-msgid "Set all podcast genres to 'Podcast'"
-msgstr ""
-
-#: gtkpod.glade:13589 gtkpod.glade:15342
-msgid "_Podcasts"
-msgstr ""
-
-#: gtkpod.glade:13754
-msgid ""
-"\n"
-"\n"
-msgstr ""
-
-#: gtkpod.glade:13788
-#, fuzzy
-msgid "Abort selected"
-msgstr "לא נבחרו רצועות"
-
-#: gtkpod.glade:13804
-msgid "Abort current"
-msgstr ""
-
-#: gtkpod.glade:13820
-msgid "Abort all"
-msgstr ""
-
-#: gtkpod.glade:13844
-msgid "Details"
-msgstr ""
-
-#: gtkpod.glade:13905
-#, fuzzy
-msgid "Cover"
-msgstr "יוצר"
-
-#: gtkpod.glade:13990
-msgid "Set Cover Art"
-msgstr ""
-
-#: gtkpod.glade:14023
-msgid ""
-"If you check this, information (cover art and meta information) changed for "
-"this track will be copied to all other selected tracks as well. Use with "
-"care."
-msgstr ""
-
-#: gtkpod.glade:14069
-msgid ""
-"Change all tracks\n"
-"simultaneously"
-msgstr ""
-
-#: gtkpod.glade:14157
-msgid "Remove Cover Art"
-msgstr ""
-
-#: gtkpod.glade:16246
-msgid "_Other"
-msgstr ""
-
-#: gtkpod.glade:16536
-msgid "_Undo All"
-msgstr ""
-
-#: gtkpod.glade:16606
-#, fuzzy
-msgid "_Undo Track"
-msgstr "רצועות לא דורגו"
-
 #~ msgid "Export Tracks"
 #~ msgstr "ייצא רצועות"
 
@@ -4867,9 +5249,6 @@
 #~ msgid "Auto-Generated Playlists"
 #~ msgstr "רשימות השמעה הנוצרות-אוטומטית"
 
-#~ msgid "Before removing tracks completely from the iPod"
-#~ msgstr "לפני הסרת רצועות לגמרי מן ה-iPod"
-
 #~ msgid ""
 #~ "This option only has a meaning if you activate the 'Delete Tracks that "
 #~ "have been Removed' option in the 'Adding/Updating/Syncing' section in the "

Modified: gtkpod/branches/upstream/current/po/it.gmo
===================================================================
(Binary files differ)

Modified: gtkpod/branches/upstream/current/po/it.po
===================================================================
--- gtkpod/branches/upstream/current/po/it.po	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/po/it.po	2006-09-30 00:00:17 UTC (rev 139)
@@ -11,7 +11,7 @@
 msgstr ""
 "Project-Id-Version: it2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-03-05 23:01+0900\n"
+"POT-Creation-Date: 2006-09-24 23:08+0900\n"
 "PO-Revision-Date: 2005-09-18 01:54+0900\n"
 "Last-Translator: \n"
 "Language-Team:  <it at li.org>\n"
@@ -21,6 +21,1874 @@
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
 "X-Generator: KBabel 1.9.1\n"
 
+#: gtkpod.glade:7
+msgid "gtkpod"
+msgstr "gtkpod"
+
+#: gtkpod.glade:40
+msgid "_File"
+msgstr "_File"
+
+#: gtkpod.glade:49
+#, fuzzy
+msgid "_Load iPod(s)"
+msgstr "_iPod"
+
+#: gtkpod.glade:69
+msgid "_Save Changes"
+msgstr ""
+
+#: gtkpod.glade:90
+msgid "Add _Files"
+msgstr "Aggiungi _File"
+
+#: gtkpod.glade:111
+msgid "Add _Directory"
+msgstr "Aggiungi _Directory"
+
+#: gtkpod.glade:132
+msgid "Add _Playlist"
+msgstr "Aggiungi _Playlist"
+
+#: gtkpod.glade:159
+msgid "_Update Tracks from File"
+msgstr "_Aggiorna le tracce dai file"
+
+#: gtkpod.glade:180 gtkpod.glade:232 gtkpod.glade:311 gtkpod.glade:363
+#: gtkpod.glade:1092 gtkpod.glade:1144 gtkpod.glade:1190
+msgid "Selected _Playlist"
+msgstr "_Playlist selezionata"
+
+#: gtkpod.glade:189 gtkpod.glade:241 gtkpod.glade:320 gtkpod.glade:372
+#: gtkpod.glade:1101 gtkpod.glade:1153 gtkpod.glade:1199
+msgid "Selected Tab _Entry"
+msgstr "Le voci nel _Blocco selezionato"
+
+#: gtkpod.glade:198 gtkpod.glade:250 gtkpod.glade:329 gtkpod.glade:381
+#: gtkpod.glade:498 gtkpod.glade:1110 gtkpod.glade:1162 gtkpod.glade:1208
+msgid "Selected _Tracks"
+msgstr "_Tracce Selezionate"
+
+#: gtkpod.glade:211
+msgid "Update _mserv Data from File"
+msgstr "Aggiorna i dati _mserv dai File"
+
+#: gtkpod.glade:263
+#, fuzzy
+msgid "_Synchronize Playlist"
+msgstr "Sincronizza tutto"
+
+#: gtkpod.glade:290
+msgid "_Export Tracks from Database"
+msgstr "_Esporta le tracce dal Database"
+
+#: gtkpod.glade:342
+msgid "Create _Playlist File"
+msgstr "Crea un file della _Playlist"
+
+#: gtkpod.glade:400
+msgid "_Create iPod's Directories"
+msgstr "_Crea le directory dell'iPod"
+
+#: gtkpod.glade:421
+msgid ""
+"Find orphan files (files with no track info in DB) and dangling tracks "
+"(tracks with no corresponding files on iPOD)"
+msgstr ""
+"Trova i file orfani (file senza informazioni nel DB) e tracce fantasma "
+"(tracce senza file corrispondente sull'iPod)"
+
+#: gtkpod.glade:422
+msgid "_Check iPod's Files"
+msgstr "_Controlla i file dell'iPod"
+
+#: gtkpod.glade:450 gtkpod.glade:12687
+msgid "_Edit"
+msgstr "_Modifica"
+
+#: gtkpod.glade:459 src/context_menus.c:480
+msgid "Edit Track Details"
+msgstr ""
+
+#: gtkpod.glade:480
+#, fuzzy
+msgid "Tracks in Selected _Playlist"
+msgstr "_Playlist selezionata"
+
+#: gtkpod.glade:489
+#, fuzzy
+msgid "Tracks in Selected Tab _Entry"
+msgstr "Le voci nel _Blocco selezionato"
+
+#: gtkpod.glade:511 src/context_menus.c:407
+msgid "Edit Smart Playlist"
+msgstr "Modifica la playlist intelligente"
+
+#: gtkpod.glade:520
+msgid "_Delete"
+msgstr ""
+
+#: gtkpod.glade:541
+#, fuzzy
+msgid "Selected playlist"
+msgstr "_Playlist selezionata"
+
+#: gtkpod.glade:550
+#, fuzzy
+msgid "Selected playlist including tracks from iPod"
+msgstr "Cancellata la playlist '%s' con la %d traccia appartenente."
+
+#: gtkpod.glade:559
+#, fuzzy
+msgid "Selected playlist including tracks from database"
+msgstr "Cancella le tracce incluse (Database)"
+
+#: gtkpod.glade:568
+#, fuzzy
+msgid "Selected playlist including tracks from harddisk"
+msgstr ""
+"Cancellata la playlist '%s' con la %d traccia appartenente sul disco fisso."
+
+#: gtkpod.glade:583
+#, fuzzy
+msgid "Selected filter tab entry from playlist"
+msgstr "Cancella %d traccia dalla playlist '%s'"
+
+#: gtkpod.glade:592
+#, fuzzy
+msgid "Selected filter tab entry from iPod"
+msgstr "Cancella completamente una traccia dall'iPod"
+
+#: gtkpod.glade:601
+#, fuzzy
+msgid "Selected filter tab entry from database"
+msgstr "Cancella la traccia dal database locale"
+
+#: gtkpod.glade:610
+#, fuzzy
+msgid "Selected filter tab entry from harddisk"
+msgstr "Cancella la traccia dal disco fisso"
+
+#: gtkpod.glade:625
+#, fuzzy
+msgid "Selected tracks from playlist"
+msgstr "Cancella %d traccia dalla playlist '%s'"
+
+#: gtkpod.glade:634
+#, fuzzy
+msgid "Selected tracks from iPod"
+msgstr "Cancella completamente una traccia dall'iPod"
+
+#: gtkpod.glade:643
+#, fuzzy
+msgid "Selected tracks from database"
+msgstr "Cancella la traccia dal database locale"
+
+#: gtkpod.glade:652
+#, fuzzy
+msgid "Selected tracks from harddisk"
+msgstr "Cancella la traccia dal disco fisso"
+
+#: gtkpod.glade:671
+msgid "_Create Playlists"
+msgstr "_Crea nuova Playlist"
+
+#: gtkpod.glade:692
+msgid "Empty Playlist"
+msgstr "Playlist Vuota"
+
+#: gtkpod.glade:701 gtkpod.glade:7379 src/misc_playlist.c:97
+#: src/repository.c:1359
+msgid "Smart Playlist"
+msgstr "Playlist Intelligente"
+
+#: gtkpod.glade:716
+msgid "Random Playlist from Displayed Tracks"
+msgstr "Playlist random dalle tracce mostrate"
+
+#: gtkpod.glade:725
+msgid "Containing Displayed Tracks"
+msgstr "Contenente le tracce visualizzate"
+
+#: gtkpod.glade:734
+msgid "Containing Selected Tracks"
+msgstr "Contenente le tracce selezionate"
+
+#: gtkpod.glade:743
+msgid "One for each Artist"
+msgstr "Una per ogni Artista"
+
+#: gtkpod.glade:752
+msgid "One for each Album"
+msgstr "Una per ogni Album"
+
+#: gtkpod.glade:761
+msgid "One for each Genre"
+msgstr "Una per ogni Genere"
+
+#: gtkpod.glade:770
+msgid "One for each Composer"
+msgstr "Una per ogni Compositore"
+
+#: gtkpod.glade:779
+msgid "One for each Year"
+msgstr "Una per ogni anno"
+
+#: gtkpod.glade:788
+msgid "One for each Rating"
+msgstr "Una per ogni Voto"
+
+#: gtkpod.glade:797
+msgid "Best Rated Tracks"
+msgstr "Tracce con il voto migliore"
+
+#: gtkpod.glade:806
+msgid "Tracks Most Often Listened To"
+msgstr "Tracce ascoltate più spesso"
+
+#: gtkpod.glade:815
+msgid "Most Recently Played Tracks"
+msgstr "Tracce riprodotte più recentemente"
+
+#: gtkpod.glade:824
+msgid "All Tracks Played Since Last Time"
+msgstr "Riprodotte dall'ultima volta"
+
+#: gtkpod.glade:833
+msgid "All Tracks Never Listened To"
+msgstr "Tutte le tracce mai ascoltate"
+
+#: gtkpod.glade:842
+msgid "All Tracks not Listed in any Playlist"
+msgstr "Tutte le tracce non contenute in una Playlist"
+
+#: gtkpod.glade:861
+msgid "_Sorting"
+msgstr "_Ordinamento"
+
+#: gtkpod.glade:883
+msgid "Randomize Current Playlist"
+msgstr "Rendi random la playlist corrente"
+
+#: gtkpod.glade:892
+msgid "_Save Displayed Track Order"
+msgstr "_Salva l'ordine delle tracce"
+
+#: gtkpod.glade:920
+#, fuzzy
+msgid "Edit Repository/iPod Options"
+msgstr "Opzioni di ordinamento"
+
+#: gtkpod.glade:941
+#, fuzzy
+msgid "Edit _Preferences"
+msgstr "_Modifica le preferenze"
+
+#: gtkpod.glade:967
+msgid "_View"
+msgstr "_Visualizza"
+
+#: gtkpod.glade:976
+msgid "_Toolbar"
+msgstr "_Barra degli strumenti"
+
+#: gtkpod.glade:986
+msgid "_Tooltips"
+msgstr "_Suggerimenti"
+
+#: gtkpod.glade:996
+msgid "_Info Window"
+msgstr "_Finestra di informazioni"
+
+#: gtkpod.glade:1007
+msgid "_More Sort Tabs"
+msgstr "_Più blocchi di ordinamento"
+
+#: gtkpod.glade:1028
+msgid "_Less Sort Tabs"
+msgstr "_Meno blocchi di ordinamento"
+
+#: gtkpod.glade:1049
+msgid "_Arrange Sort Tabs"
+msgstr "_Sistema i blocchi di ordinamento"
+
+#: gtkpod.glade:1062 gtkpod.glade:13297
+msgid "_Tools"
+msgstr "_Strumenti"
+
+#: gtkpod.glade:1071
+msgid "_Play Now"
+msgstr "_Suona"
+
+#: gtkpod.glade:1123
+msgid "_Enqueue"
+msgstr "_Metti in coda"
+
+#: gtkpod.glade:1181
+msgid "_Normalize Volume"
+msgstr "_Normalizza il Volume"
+
+#: gtkpod.glade:1217
+msgid "_Displayed Tracks"
+msgstr "_Tracce Visualizzate"
+
+#: gtkpod.glade:1226
+msgid "_All Tracks"
+msgstr "_Tutte le tracce"
+
+#: gtkpod.glade:1235
+msgid "_Newly Added Tracks"
+msgstr "_Tracce Nuove Aggiunte"
+
+#: gtkpod.glade:1254
+msgid "Synchronise Contacts, Calendar and Notes"
+msgstr "Sincronizza Calendario, Contatti e Note"
+
+#: gtkpod.glade:1255
+msgid "Synchronize All"
+msgstr "Sincronizza tutto"
+
+#: gtkpod.glade:1264
+msgid "Synchronize Contacts"
+msgstr "Sincronizza i contatti"
+
+#: gtkpod.glade:1273
+msgid "Synchronize Calendar"
+msgstr "Sincronizza il calendario"
+
+#: gtkpod.glade:1282
+msgid "Synchronize Notes"
+msgstr "Sincronizza le Note"
+
+#: gtkpod.glade:1295
+msgid "_Help"
+msgstr "_Aiuto"
+
+#: gtkpod.glade:1304
+msgid "_About"
+msgstr "_A Proposito"
+
+#: gtkpod.glade:1344
+msgid ""
+"Try to load contents of all connected iPods. For each iPod a separate "
+"repository must be set up."
+msgstr ""
+
+#: gtkpod.glade:1345
+#, fuzzy
+msgid "Load iPod(s)"
+msgstr "_iPod"
+
+#: gtkpod.glade:1362
+msgid "Write all changes made to the disk and the iPod(s)."
+msgstr ""
+
+#: gtkpod.glade:1363 src/context_menus.c:507
+msgid "Save Changes"
+msgstr ""
+
+#: gtkpod.glade:1380
+msgid "Add Files or Directories"
+msgstr "Aggiungi file o directory"
+
+#: gtkpod.glade:1381
+msgid "Files"
+msgstr "File"
+
+#: gtkpod.glade:1398
+msgid "Add Directories Recursively"
+msgstr "Aggiungi directory ricorsivamente"
+
+#: gtkpod.glade:1399
+msgid "Dirs"
+msgstr "Dir"
+
+#: gtkpod.glade:1416
+msgid "Add playlist from file"
+msgstr "Aggiungi playlist dal file"
+
+#: gtkpod.glade:1417 src/display_spl.c:105
+msgid "Playlist"
+msgstr "Playlist"
+
+#: gtkpod.glade:1434
+msgid "Create New Playlist"
+msgstr "Crea nuova Playlist"
+
+#: gtkpod.glade:1435
+msgid "New PL"
+msgstr "Nuova PL"
+
+#: gtkpod.glade:1451
+msgid "Stop Display Update"
+msgstr "Ferma l'aggiornamento della visualizzazione"
+
+#: gtkpod.glade:1452
+msgid "Stop"
+msgstr "Stop"
+
+#: gtkpod.glade:1625
+msgid "About gtkpod"
+msgstr "A proposito di gtkpod"
+
+#: gtkpod.glade:1752
+msgid "Credits"
+msgstr "Crediti"
+
+#: gtkpod.glade:1810
+msgid "Translators"
+msgstr "Traduttori"
+
+#: gtkpod.glade:1868
+msgid "special_sorttab -- Don't translate!"
+msgstr ""
+
+#: gtkpod.glade:1903
+msgid " Logic: "
+msgstr "Operatori logici:"
+
+#: gtkpod.glade:1929
+msgid "Any (OR)"
+msgstr "Ogni (OR)"
+
+#: gtkpod.glade:1948
+msgid "All (AND)"
+msgstr "Tutti (AND)"
+
+#: gtkpod.glade:2001
+msgid "0"
+msgstr "0"
+
+#: gtkpod.glade:2020
+msgid "1"
+msgstr "1"
+
+#: gtkpod.glade:2039
+msgid "2"
+msgstr "2"
+
+#: gtkpod.glade:2058
+msgid "3"
+msgstr "3"
+
+#: gtkpod.glade:2077
+msgid "4"
+msgstr "4"
+
+#: gtkpod.glade:2096
+msgid "5"
+msgstr "5"
+
+#: gtkpod.glade:2135
+msgid "Select '0' for no lower limit."
+msgstr "Seleziona '0' per eliminare il limite inferiore."
+
+#: gtkpod.glade:2156
+msgid " <= cts <= "
+msgstr " <= cts <= "
+
+#: gtkpod.glade:2181
+msgid "Select '-1' for no upper limit."
+msgstr "Seleziona '-l' per nessun limite superire"
+
+#: gtkpod.glade:2224 gtkpod.glade:2301 gtkpod.glade:2471
+msgid ""
+"'DD/MM/YYYY HH:MM < d < DD/MM/YYYY HH:MM' or similar. Press 'enter' when "
+"finished."
+msgstr ""
+"'DD/MM/YYYY HH:MM < d < DD/MM/YYYY HH:MM' o simile. Premi 'enter' quando hai "
+"finito."
+
+#: gtkpod.glade:2270 gtkpod.glade:2347 gtkpod.glade:2517 gtkpod.glade:2696
+msgid "Calendar"
+msgstr "Calendario"
+
+#: gtkpod.glade:2372
+msgid "Specify interval"
+msgstr "Specifica l'intervallo"
+
+#: gtkpod.glade:2374 src/display_spl.c:98 src/misc_conversion.c:78
+msgid "Playcount"
+msgstr "Conta riproduzioni"
+
+#: gtkpod.glade:2397 src/display_spl.c:101 src/misc_conversion.c:79
+msgid "Rating"
+msgstr "Voto"
+
+#: gtkpod.glade:2420 src/display_songs.c:1951
+msgid "Played"
+msgstr "Suonato"
+
+#: gtkpod.glade:2443 src/display_songs.c:1954
+msgid "Modified"
+msgstr "Modificato"
+
+#: gtkpod.glade:2542 src/display_songs.c:1957 src/display_sorttabs.c:3218
+msgid "Added"
+msgstr "Aggiunta"
+
+#: gtkpod.glade:2587
+msgid "Display tracks that match the criteria entered above."
+msgstr "Mostra le tracce che corrispondono ai criteri entrati qui sopra."
+
+#: gtkpod.glade:2630 gtkpod.glade:12009
+msgid "_Display"
+msgstr "_Visualizzazione"
+
+#: gtkpod.glade:2666
+msgid ""
+"Automatically start displaying tracks that match the criteria entered above. "
+"If not selected, you must press 'Display' to start displaying."
+msgstr ""
+"Visualizza automaticamente le tracce che corrispondono ai criteri "
+"specificati qui sopra. Se non selezionati, devi premere 'Mostra' per "
+"attivare la visualizzazione"
+
+#: gtkpod.glade:2668
+msgid "Start display automatically"
+msgstr "Far partire la visualizzazione automaticamente "
+
+#: gtkpod.glade:2743
+msgid "Sorttab: "
+msgstr "Blocco di ordinamento: "
+
+#: gtkpod.glade:2787
+msgid "     "
+msgstr "     "
+
+#: gtkpod.glade:2813
+msgid "Category: "
+msgstr "Categoria: "
+
+#: gtkpod.glade:2894
+msgid "Please specify a time interval"
+msgstr "Specifica un intervallo di tempo"
+
+#: gtkpod.glade:2943
+msgid "Lower Margin"
+msgstr "Margine inferiore"
+
+#: gtkpod.glade:2994 gtkpod.glade:3208
+msgid "Time:"
+msgstr "Durata:"
+
+#: gtkpod.glade:3037 gtkpod.glade:3251
+msgid ":"
+msgstr ":"
+
+#: gtkpod.glade:3114
+msgid "No lower margin"
+msgstr "Nessun margine inferiore"
+
+#: gtkpod.glade:3157
+msgid "Upper margin"
+msgstr "Margine superiore"
+
+#: gtkpod.glade:3328
+msgid "No upper margin"
+msgstr "Nessun margine superiore"
+
+#: gtkpod.glade:3426
+msgid "Sorting Options"
+msgstr "Opzioni di ordinamento"
+
+#: gtkpod.glade:3458
+msgid "<b>Sort Order</b>"
+msgstr "<b>Blocchi di ordinamento</b>"
+
+#: gtkpod.glade:3489 gtkpod.glade:4762 gtkpod.glade:11638 gtkpod.glade:12134
+#: gtkpod.glade:12249
+msgid "    "
+msgstr "     "
+
+#: gtkpod.glade:3521
+msgid ""
+"In order to save the displayed track order to the iPod choose 'Save "
+"Displayed Track Order' from the 'Edit' menu or select 'Auto Store' below."
+msgstr ""
+"Per memorizzare sull'iPod l'ordine delle tracce come visualizzato scegliete "
+"'Salva l'ordine delle tracce' dal menù 'Modifica' o selezionare'Auto Store' "
+"sopra."
+
+#: gtkpod.glade:3905
+msgid "Ascending"
+msgstr "Ascendente"
+
+#: gtkpod.glade:3953
+msgid "Descending"
+msgstr "Discendente"
+
+#: gtkpod.glade:4001
+msgid "None"
+msgstr "Nessuno"
+
+#: gtkpod.glade:4048 src/display_playlists.c:2106
+msgid "Playlists"
+msgstr "Playlist"
+
+#: gtkpod.glade:4097
+msgid "Sorttabs"
+msgstr "Blocco di ordinamento: "
+
+#: gtkpod.glade:4146
+msgid "Tracks"
+msgstr "Tracce"
+
+#: gtkpod.glade:4306
+msgid "Auto Store"
+msgstr "Salvataggio automatico"
+
+#: gtkpod.glade:4349
+msgid "Please refer to the notice below."
+msgstr "Per favore, consultare la nota precedente."
+
+#: gtkpod.glade:4383 gtkpod.glade:4564 src/details.c:1118
+msgid "n/a"
+msgstr "n.d."
+
+#: gtkpod.glade:4613
+msgid "Sort tracks according to: "
+msgstr "Ordina le tracce secondo: "
+
+#: gtkpod.glade:4647
+msgid ""
+"You can also use the table headers, but this allows you to sort according to "
+"a column that is not displayed."
+msgstr ""
+"C'è la possibilità di utilizzare l'intestazione della tabella, questo metodo "
+"permette però l'ordinamento anche secondo colonne che non vengono mostrate"
+
+#: gtkpod.glade:4683
+msgid ""
+"If checked, sorting will be case sensitive. Please note that case sensitive "
+"sorting will not work well with most charsets."
+msgstr ""
+"Se selezionata, l'ordinamento sarà case sensitive. Nota: l'ordinamento case "
+"sensitive non funziona bene con la maggior parte delle codifiche."
+
+#: gtkpod.glade:4685
+msgid "Sorting case sensitive"
+msgstr "Ordinamento case sensitive"
+
+#: gtkpod.glade:4731
+msgid "<b>Ignore Frequent Words</b>"
+msgstr "<b>Ignora le parole frequenti</b>"
+
+#: gtkpod.glade:4831
+msgid "Ignore these words when at the beginning of the following fields:"
+msgstr "Ignora le seguenti parole se sono all'inizio dei campi seguetti:"
+
+#: gtkpod.glade:5106
+msgid "gtkpod Info"
+msgstr "informazioni su gtkpod"
+
+#: gtkpod.glade:5427 gtkpod.glade:5514 gtkpod.glade:5543 gtkpod.glade:6261
+#: gtkpod.glade:6406
+msgid "      "
+msgstr "      "
+
+#: gtkpod.glade:5832
+msgid "Number of tracks"
+msgstr "Numero di tracce"
+
+#: gtkpod.glade:5862
+msgid "Play time"
+msgstr "Durata"
+
+#: gtkpod.glade:5893
+msgid "File size"
+msgstr "Dimensione"
+
+#: gtkpod.glade:5923
+msgid "Number of playlists"
+msgstr "Numero delle playlist"
+
+#: gtkpod.glade:5953
+msgid "Deleted tracks"
+msgstr "_Tracce Cancellate"
+
+#: gtkpod.glade:5983
+msgid "File size (deleted)"
+msgstr "Dimensione dei file (cancellatinon trasferiti)"
+
+#: gtkpod.glade:6013
+msgid "Non-transferred tracks"
+msgstr "Tracce non trasferite"
+
+#: gtkpod.glade:6043
+msgid "File size (non-transferred)"
+msgstr "Dimensione dei file (non trasferiti)"
+
+#: gtkpod.glade:6073
+msgid "Effective free space"
+msgstr "Spazio libero effettivo"
+
+#: gtkpod.glade:6103
+msgid ""
+"Total\n"
+"(iPod)"
+msgstr ""
+"Totale\n"
+"(iPod)"
+
+#: gtkpod.glade:6135
+msgid ""
+"Selected\n"
+"Playlist"
+msgstr ""
+"Playlist\n"
+"selezionata"
+
+#: gtkpod.glade:6167
+msgid ""
+"Displayed\n"
+"Tracks"
+msgstr ""
+"Tracce\n"
+"Visualizzate"
+
+#: gtkpod.glade:6199
+msgid ""
+"Selected\n"
+"Tracks"
+msgstr ""
+"Tracce\n"
+"Selezionate"
+
+#: gtkpod.glade:6231
+msgid ""
+"Total\n"
+"(local)"
+msgstr ""
+"Totale\n"
+"(locale)"
+
+#: gtkpod.glade:6651
+msgid "label21"
+msgstr "label21"
+
+#: gtkpod.glade:6746
+msgid "Never show this dialogue again"
+msgstr "Non mostrare mai più questa finestra"
+
+#: gtkpod.glade:6791 gtkpod.glade:7135
+msgid "window1"
+msgstr "window1"
+
+#: gtkpod.glade:6850
+msgid "_M3U"
+msgstr "_M3U"
+
+#: gtkpod.glade:6869
+msgid "_PLS"
+msgstr "_PLS"
+
+#: gtkpod.glade:6907
+msgid ""
+"If available, the local copy of the track is referenced in the playlist. "
+"Otherwise the file on the iPod is used."
+msgstr ""
+"Se disponibile, la copia locale della traccia è referenziata nella playlist. "
+"Altrimenti è usato il file sul iPod."
+
+#: gtkpod.glade:6909
+msgid "_Prefer Local"
+msgstr "_Preferisci i file locali"
+
+#: gtkpod.glade:6927
+msgid ""
+"The local copy of the track is referenced in the playlist. If the track is "
+"not available locally, an error message is displayed."
+msgstr ""
+"La copia locale della traccia èsegnata nella playlist. Se la traccia non è "
+"disponibile localmente, verrà mostrato un messaggio di errore."
+
+#: gtkpod.glade:6929
+msgid "_Local"
+msgstr "_Locale"
+
+#: gtkpod.glade:6948
+msgid "The track on the iPod is referenced in the playlist file."
+msgstr "La traccia dell'iPod è referenziata nel file della playlist."
+
+#: gtkpod.glade:6950
+msgid "_iPod"
+msgstr "_iPod"
+
+#: gtkpod.glade:6983
+msgid "Playlist type:"
+msgstr "Tipo delle playlist:"
+
+#: gtkpod.glade:7012
+msgid "Source:"
+msgstr "Sorgente:"
+
+#: gtkpod.glade:7055
+msgid "Template for info field: "
+msgstr "Maschera per il campo delle informazioni: "
+
+#: gtkpod.glade:7080
+msgid ""
+"Determines how the string for the info field should be constructed, e.g '%a/%"
+"A/%T - %t.mp3' or '%o'.  You can separate several templates by semicolons -- "
+"gtkpod will determine which one to use by the filename extension given. "
+"Artist: %a, album: %A, composer: %c, title: %t, genre: %G, track nr: %T, CD "
+"nr: %C, year: %Y, original filename (requires extended information file): %"
+"o, the character '%': %%."
+msgstr ""
+"Determina come costruire la stringa per il campo info. es. '%a/%A/%T - %t."
+"mp3'o '%o'. Puoi separare diverse maschere con punto e virgola -- gtkopd "
+"determinerà quale usare a seconda della estensione del nome del file data. %"
+"A: artista; %d: album; %n: titolo; %t: genere %G, num della traccia: %T,  "
+"num disco: %C, anno: %Y, nome del file originale (necessita del file delle "
+"informazioni estese): %o, il carattere '%': %%."
+
+#: gtkpod.glade:7111 gtkpod.glade:7355
+msgid "gtkpod options"
+msgstr "opzioni di gtkpod"
+
+#: gtkpod.glade:7173
+msgid "Filename Format: "
+msgstr "Formato del nome del file: "
+
+#: gtkpod.glade:7198
+msgid ""
+"Determines the filename of tracks you copy from the iPod, e.g '%a/%A/%T - %t."
+"mp3' or '%o'.  You can separate several patterns by semicolons -- gtkpod "
+"will determine which one to use by the filename extension given. Artist: %a, "
+"album: %A, composer: %c, title: %t, genre: %G, track nr: %T, CD nr: %C, "
+"year: %Y, original filename (requires extended information file): %o, "
+"current playlist: %p, the character '%': %%."
+msgstr ""
+"Determina il nome del file della traccia che viene copiata dal iPod. es. '%A/"
+"%A/%T -%t.mp3' or '%o'. Puoi separare diverse maschere con punto e virgola  "
+"-- gtkopd determinerà quale usare a seconda dell'estensione del nome del "
+"file data. Artista: %a, album: %A, compositore: %c, titolo: %t, genere: %G, "
+"num della traccia: %T,num disco: %C, anno: %Y, nome del file originale "
+"(necessita del file delle informazioni estese): %o, playlist attuale: %p, il "
+"carattere '%': %%."
+
+#: gtkpod.glade:7203
+msgid " "
+msgstr " "
+
+#: gtkpod.glade:7225
+msgid ""
+"Normally the charset specified when first importing the track will be used "
+"for the filename. If you set this option you can set a different charset "
+"with the charset selector (Preferences/'Adding/Updating/Syncing'). Note: the "
+"charset info is stored in the extended information file (see "
+"Preferences/'Writing of the iTunesDB'). Tracks imported before V0.51 will "
+"have no charset stored. Instead the charset specified will be used."
+msgstr ""
+"Normalmente la codifica di sistema del carattere specificata la prima volta "
+"che importi una traccia viene utilizzata per il nome del file. Se hai scelto "
+"questa opzione puoi impostare una codifica differente con il selettore delle "
+"codifiche (Preferenze/'Aggiungi/Aggiorna/Sincronizza'). Nota: la codifica è "
+"contenuta all'interno del file delle informazioniestese (consulta "
+"Preferenze/'Scrittura del iTunesDB'). Le tracce importate prima della V0.51 "
+"non avranno alcuna codifica memorizzata. Verrà usato il charset specificato."
+
+#: gtkpod.glade:7227
+msgid ""
+"Use selected charset (Preferences/'Adding/Updating/ Syncing')\n"
+"for this filename."
+msgstr ""
+"Usa la codifica selezionata (vedi sopra: 'Aggiungi/Aggiorna/ Sincronizza')\n"
+" per questo file."
+
+#: gtkpod.glade:7246
+msgid ""
+"When copying from iPod no check is performed on whether the destination file "
+"exists. Enabling this option will make gtkpod check whether the length of "
+"the destination file is the same as the file in the iPod. If so the file is "
+"skipped, allowing a quick sync of the iPod's contents."
+msgstr ""
+"Quando copi dall'iPod non sono effettuati controlli sul fatto che il file di "
+"destinazione esista. Selezionare questa opzione farà in modo che gtkpod "
+"controlli se la dimensione del file di destinazione sia la stessa del file "
+"sull'iPod. Se fosse così il file verrà saltato, permettendo una veloce "
+"sincronizzazione del contenuto dell'iPod."
+
+#: gtkpod.glade:7248
+msgid "Check for existing files when copying from iPod."
+msgstr "Controlla i file esistenti quando copi dall'iPod."
+
+#: gtkpod.glade:7423
+msgid "Playlist name:"
+msgstr "Nome della playlist:"
+
+#: gtkpod.glade:7492
+msgid "Match al_l of the following"
+msgstr "Confronta tut_ti i seguenti"
+
+#: gtkpod.glade:7511
+msgid "Match an_y of the following"
+msgstr "Confronta uno quals_iasi dei seguenti"
+
+#: gtkpod.glade:7531
+msgid "_Ignore rules"
+msgstr "_Ignora le regole"
+
+#: gtkpod.glade:7601
+msgid "Rules"
+msgstr "Regole"
+
+#: gtkpod.glade:7638
+msgid "_Limit to"
+msgstr "_Limita a"
+
+#: gtkpod.glade:7689
+msgid "   Sort by:"
+msgstr "   Ordina per:"
+
+#: gtkpod.glade:7741
+msgid "Match only _checked tracks"
+msgstr "Confronta solo le tracce _selezionate"
+
+#: gtkpod.glade:7773
+msgid "Live _updating"
+msgstr "_aggiornamente in diretta"
+
+#: gtkpod.glade:7864
+msgid "Preferences"
+msgstr "Preferenze"
+
+#: gtkpod.glade:7927
+msgid "<b>Mountpoint and individual repository/playlist options</b>"
+msgstr ""
+
+#: gtkpod.glade:7990
+msgid "Set mountpoint or edit repository options"
+msgstr ""
+
+#: gtkpod.glade:8037
+msgid "<b>Import</b>"
+msgstr "<b>Importa</b>"
+
+#: gtkpod.glade:8108
+#, fuzzy
+msgid "Automatically import iTunesDBs on startup"
+msgstr "Importa automaticamente l'iTunesDB all'avvio"
+
+#: gtkpod.glade:8154
+msgid "<b>Adding/Updating/Syncing</b>"
+msgstr "<b>Aggiungi/Aggiorna/Sincronizza</b>"
+
+#: gtkpod.glade:8226
+msgid "Exclude file mask(s)"
+msgstr ""
+
+#: gtkpod.glade:8251
+msgid "Semicolon seperated list of file exclusion masks, e.g. '*.mp3'"
+msgstr ""
+
+#: gtkpod.glade:8285
+#, fuzzy
+msgid "_Encoding (ID3, files):"
+msgstr "_Charset (ID3, file):"
+
+#: gtkpod.glade:8320
+msgid ""
+"gtkpod expects the ID3 tags and the filenames to be in the encoding "
+"specified here. You can change it for consecutive 'Add Files' and 'Add Dirs' "
+"operation. 'System Charset' is the charset used by your current locale."
+msgstr ""
+"gtkpod si aspetta che i tag ID3 e i nomi dei file siano nella stessa "
+"codifica specificata qui. Puoi cambiarla per operazioni di 'aggiungi file' e "
+"'aggiungi directory'.'Codifica di sistema' è la codifica usata dal tuo "
+"sistema."
+
+#: gtkpod.glade:8357
+msgid ""
+"Normally the charset specified when first importing the track will be used "
+"to update the track information. If you have chosen a wrong charset when "
+"first importing a track and want to correct it using the 'Update Track' "
+"function, you must check this option. Note: the charset info is stored in "
+"the extended information file (see 'Writing of iTunesDB' below) and tracks "
+"imported before V0.51 will have no charset stored. Instead the charset "
+"specified above will be used then."
+msgstr ""
+"Normalmente la codifica di sistema specificata al momento di importare la "
+"traccia verrà usata per aggiornare le informazioni sulla traccia. Se hai "
+"scelto la codifica sbagliata al momento della prima importazione e vuoi "
+"correggerla usando la funzione \"Aggiorna la traccia\" devi selezionare "
+"questa opzione. Nota: le informazioni sul carattere sono memorizzate nel "
+"file delle informazioni estese (vedi Esportazione) e le tracce importate "
+"prima di V0.51 non avranno codifica memorizzata, verrà quindi usata la "
+"codifica specificata qui sopra."
+
+#: gtkpod.glade:8359
+#, fuzzy
+msgid ""
+"Use selected encoding also when updating \n"
+"or syncing tracks"
+msgstr ""
+"Usa la codifica selezionata anche quando aggiorni \n"
+"o sincronizzi le tracce"
+
+#: gtkpod.glade:8379
+msgid "If you check this, gtkpod will descend into subdirectories recursively."
+msgstr "Se selezioni questo, gtkpod discenderà nelle directory ricorsivamente."
+
+#: gtkpod.glade:8381
+msgid "Add directories recursively"
+msgstr "Aggiungi le directory ricorsivamente"
+
+#: gtkpod.glade:8400
+#, fuzzy
+msgid "Duplicate Recognition is based on a (modified) md5 hash over the file."
+msgstr "Il riconoscimento dei file duplicati è basato su un hash md5 sul file."
+
+#: gtkpod.glade:8402
+msgid "Don't allow file duplication"
+msgstr "Non permettere i file duplicati"
+
+#: gtkpod.glade:8452
+msgid ""
+"Display the list of duplicates that have been detected after adding files."
+msgstr ""
+"Mostra la lista dei duplicati che sono stati cancellati dopo l'aggiunta dei "
+"file."
+
+#: gtkpod.glade:8454
+msgid "Display info about detected duplicates"
+msgstr "Mostra informazioni sui duplicati scoperti"
+
+#: gtkpod.glade:8480
+msgid ""
+"If the filename (full path) of an existing track matches that of a track to "
+"be added, this option allows you to update the information about the "
+"existing track rather than just skipping the track altogether. No update "
+"will take place if the file hasn't changed and you have selected the 'Don't "
+"allow file duplication' option above."
+msgstr ""
+"Se il nome del file (path completo) di una traccia esistente corrisponde a "
+"quella di una traccia aggiunta, questa opzione permette di aggiornare le "
+"informazioni della traccia esistente piuttosto che aggiungere di nuovo la "
+"traccia. Il file non verrà aggiornato se non è cambiato e se è attiva "
+"l'opzione 'Non ammettere i file duplicati'."
+
+#: gtkpod.glade:8482
+msgid ""
+"When adding dirs/files, update information of\n"
+"existing tracks with identical filenames"
+msgstr ""
+"Quando aggiungi file/directory, aggiorna anche le informazioni sulle\n"
+"tracce esistenti con nome identico"
+
+#: gtkpod.glade:8533
+msgid "Display a list of tracks that could actually be updated."
+msgstr "Mostra una lista di tracce che potrebbero essere aggiornate."
+
+#: gtkpod.glade:8535
+msgid "Display info about updated tracks"
+msgstr "Mostra informazioni sulle tracce aggiornate"
+
+#: gtkpod.glade:8592
+msgid "Display a list of tracks that could not be updated."
+msgstr "Mostra una lista di tracce che non possono essere aggiornate."
+
+#: gtkpod.glade:8594
+msgid "Display info about non-updated tracks"
+msgstr "Mostra informazioni a proposito di tracce non aggiornate"
+
+#: gtkpod.glade:8620
+#, fuzzy
+msgid "When syncing playlists"
+msgstr "Durante la sincronizzazione delle directory"
+
+#: gtkpod.glade:8694
+msgid "Confirm lists of directories"
+msgstr "Conferma la lista delle directory"
+
+#: gtkpod.glade:8712 gtkpod.glade:17758
+msgid ""
+"Normally, if a track is no longer present in the sync directory, it will be "
+"removed from the playlist, but not from the iPod or local repository.\n"
+"If this option is checked, tracks will be completely removed from the iPod "
+"or local repository, unless the track is a member of other playlists as "
+"well.\n"
+"NOTE: if you sync with the master playlist, you must check this option if "
+"you want tracks to be removed, because removing from the master playlist "
+"means removing from the iPod."
+msgstr ""
+
+#: gtkpod.glade:8716 gtkpod.glade:17762
+msgid ""
+"Delete tracks that are no longer present from the\n"
+"ipod or repository"
+msgstr ""
+
+#: gtkpod.glade:8735
+msgid "This is the same option as in 'Edit/Delete Confirmation'"
+msgstr "Questa è la stessa opzione in 'Edit/Conferma la cancellazione'"
+
+#: gtkpod.glade:8737 gtkpod.glade:17782
+#, fuzzy
+msgid "Confirm before removing tracks from the iPod or repository"
+msgstr "Prima di rimuovere le tracce dall'iPod"
+
+#: gtkpod.glade:8756 gtkpod.glade:17800
+msgid ""
+"Will show a list of tracks removed and a list of tracks newly added or "
+"updated."
+msgstr ""
+
+#: gtkpod.glade:8758 gtkpod.glade:17802
+msgid "Show summary of sync result"
+msgstr ""
+
+#: gtkpod.glade:8819
+msgid "<b>Sync</b>"
+msgstr "<b>Sincronizza</b>"
+
+#: gtkpod.glade:8875
+msgid ""
+"Highly recommended for faster import when taking advantage of the "
+"duplication recognition. Also, having the PC filenames allows writing "
+"changed ID3 tags to disk, and even to reconstruct your ipod's contents in "
+"case of file system corruption (change the \"transferred=\" entries in your "
+"backuped database)."
+msgstr ""
+"È altamente raccomandato per importazioni più veloci se si usa il "
+"riconoscimento dei duplicati. Inoltre, avere il nome del file permette di "
+"scrivere i tag ID3 cambiati anche sul disco, e perfino di ricostruire il "
+"contenuto dell'iPod nel caso di corruzioni del filesystem (cambia la voce "
+"\"transferred=\" nel backup del database)."
+
+#: gtkpod.glade:8877
+#, fuzzy
+msgid ""
+"Write extended information (PC filenames,\n"
+" MD5 hashes, encoding). Recommended."
+msgstr ""
+"Scrivi informazioni estese (nome del file sul PC,\n"
+" hash MD5, codifica dei caratteri). Raccomandato."
+
+#: gtkpod.glade:8921 gtkpod.glade:14688
+#, fuzzy
+msgid "_General"
+msgstr "Generale"
+
+#: gtkpod.glade:8957
+msgid "<b>Tag Reading</b>"
+msgstr "<b>Lettura del Tag</b>"
+
+#: gtkpod.glade:9020
+msgid "Read tags from file contents (e.g. ID3 tags in MP3 files)"
+msgstr "Leggi i tag dal contenuto del file (es. tag ID3 in un file MP3)"
+
+#: gtkpod.glade:9039 gtkpod.glade:9413
+msgid ""
+"artist: %a, album: %A, composer: %c, title: %t, genre: %G, track nr: %T, CD "
+"nr: %C, year: %Y, skip data: %*, the character '%': %%. You can separate "
+"several templates by a ';'. The first one matching the filename will be "
+"used. Example: '%a - %A/%T %t.mp3;%t.wav'."
+msgstr ""
+"artista: %a, album: %A, compositore: %c, titolo: %t, genere: %G, traccia "
+"num: %TCD num: %C, year: %Y,carattere di escape: %*, il carattere '%': %%. "
+"Puoi separare diverse maschere usando ';'. Verrà usata la prima "
+"corrispondente al nome di un file  Esempio: %a - %A/%T %t.mp;%t.wav'."
+
+#: gtkpod.glade:9041
+msgid "Use this template to parse filename for tag information:"
+msgstr ""
+"Usa questa maschera per controllare il nome file per informazioni sul tag"
+
+#: gtkpod.glade:9118
+msgid "Overwrite tags that are already set"
+msgstr "Sovrascrivi i tag che sono giàimpostati."
+
+#: gtkpod.glade:9151
+msgid ""
+"As a last resort set the following tags to the\n"
+"filename if they are (still) empty:"
+msgstr ""
+"Come ultimo tentativo riempi i tag seguenti con\n"
+"il filename se sono (ancora) vuoti:"
+
+#: gtkpod.glade:9187 src/display_sorttabs.c:2942 src/display_spl.c:85
+#: src/misc_conversion.c:62
+msgid "Artist"
+msgstr "Artista"
+
+#: gtkpod.glade:9209 src/display_sorttabs.c:2948 src/display_spl.c:89
+#: src/misc_conversion.c:64
+msgid "Genre"
+msgstr "Genere"
+
+#. 0
+#: gtkpod.glade:9231 src/display_sorttabs.c:2945 src/display_spl.c:84
+#: src/misc_conversion.c:61
+msgid "Album"
+msgstr "Album"
+
+#. 5
+#: gtkpod.glade:9253 src/display_spl.c:97 src/misc_conversion.c:66
+msgid "Composer"
+msgstr "Compositore"
+
+#: gtkpod.glade:9275 src/display_sorttabs.c:2954 src/display_spl.c:83
+#: src/misc_conversion.c:63
+msgid "Title"
+msgstr "Titolo"
+
+#: gtkpod.glade:9330
+#, fuzzy
+msgid "<b>Coverart</b>"
+msgstr "<b>Importa</b>"
+
+#: gtkpod.glade:9392
+msgid ""
+"Music files can have images embedded in the APIC tag. Currently this is only "
+"supported for MP3 files."
+msgstr ""
+
+#: gtkpod.glade:9394
+msgid "Read coverart from embedded APIC data"
+msgstr ""
+
+#: gtkpod.glade:9415
+msgid "Add coverart from file using the following template"
+msgstr ""
+
+#: gtkpod.glade:9471
+#, fuzzy
+msgid ""
+"Determines the name of the file with the cover art. You can separate several "
+"patterns by semicolons which will be tried in order. Artist: %a, album: %A, "
+"composer: %c, title: %t, genre: %G, track nr: %T, CD nr: %C, year: %Y, "
+"original filename (requires extended information file): %o, original "
+"filename without file extension: %O, current playlist: %p, the character "
+"'%': %%."
+msgstr ""
+"Determina il nome del file della traccia che viene copiata dal iPod. es. '%A/"
+"%A/%T -%t.mp3' or '%o'. Puoi separare diverse maschere con punto e virgola  "
+"-- gtkopd determinerà quale usare a seconda dell'estensione del nome del "
+"file data. Artista: %a, album: %A, compositore: %c, titolo: %t, genere: %G, "
+"num della traccia: %T,num disco: %C, anno: %Y, nome del file originale "
+"(necessita del file delle informazioni estese): %o, playlist attuale: %p, il "
+"carattere '%': %%."
+
+#: gtkpod.glade:9492
+#, fuzzy
+msgid "<b>Examples</b>"
+msgstr "<b>Importa</b>"
+
+#: gtkpod.glade:9526
+msgid "folder.jpg"
+msgstr ""
+
+#: gtkpod.glade:9554
+msgid "folder"
+msgstr ""
+
+#: gtkpod.glade:9582
+msgid "../%A.jpg"
+msgstr ""
+
+#: gtkpod.glade:9610
+msgid "%A"
+msgstr ""
+
+#: gtkpod.glade:9638
+msgid "Use <i>folder.jpg</i> as cover art."
+msgstr ""
+
+#: gtkpod.glade:9666
+msgid "Use <i>folder.jpg</i>, <i>folder.png</i>..."
+msgstr ""
+
+#: gtkpod.glade:9694
+msgid "Use <i>&lt;Album&gt;.jpg</i> in the parent directory"
+msgstr ""
+
+#: gtkpod.glade:9722
+msgid "Use <i>&lt;Album&gt;.jpg</i>, <i>&lt;Album&gt;.png</i>..."
+msgstr ""
+
+#: gtkpod.glade:9750
+msgid "folder.jpg;%a.jpg"
+msgstr ""
+
+#: gtkpod.glade:9778
+msgid "First try <i>folder.jpg</i>, then <i>&lt;artist&gt;.jpg</i>"
+msgstr ""
+
+#: gtkpod.glade:9835
+msgid "If both options are selected, embedded APIC data takes precedence."
+msgstr ""
+
+#: gtkpod.glade:9887
+msgid "<b>mserv</b>"
+msgstr ""
+
+#: gtkpod.glade:9949 gtkpod.glade:10175
+msgid "Currently only rating is supported."
+msgstr "Attualmente solo la votazione è supportata."
+
+#: gtkpod.glade:9951
+msgid "Use mserv database to fill additional information"
+msgstr "Usa il database mserv per aggiungere informazioni addizionali"
+
+#: gtkpod.glade:9979
+msgid "Music Root:"
+msgstr "Radice della musica:"
+
+#: gtkpod.glade:10007
+msgid "mserv database lookup will be done for music in this directory."
+msgstr "Verrà consultato il database mserv per la musica in questa directory."
+
+#: gtkpod.glade:10029
+msgid "mserv Root:"
+msgstr "radice del mserv:"
+
+#: gtkpod.glade:10057
+msgid "Root directory of mserv database (trackinfo root)."
+msgstr "Directory radice del database mserv (radice del trackinfo)."
+
+#: gtkpod.glade:10079
+msgid "Username:"
+msgstr "Nome utente:"
+
+#: gtkpod.glade:10107
+msgid "Username to be used for mserv database lookup."
+msgstr "Nome utente da utilizzare per la consultazione del database mserv"
+
+#: gtkpod.glade:10131 gtkpod.glade:10150 gtkpod.glade:12889 gtkpod.glade:12908
+#: gtkpod.glade:13069 gtkpod.glade:13138 gtkpod.glade:17159 gtkpod.glade:17179
+#: gtkpod.glade:17199 gtkpod.glade:17219 gtkpod.glade:17239 gtkpod.glade:17679
+#: gtkpod.glade:18238 gtkpod.glade:18281 gtkpod.glade:18301 gtkpod.glade:18711
+msgid "Browse"
+msgstr ""
+
+#: gtkpod.glade:10177
+msgid "Show information about problems when accessing mserv"
+msgstr "Mostra informazioni sui problemi nell'accesso a mserv"
+
+#: gtkpod.glade:10223
+#, fuzzy
+msgid "_Track Info"
+msgstr "Traccia"
+
+#: gtkpod.glade:10273
+msgid "<b>Displayed Track Attributes</b>"
+msgstr "<b>Attributi delle tracce visualizzati</b>"
+
+#: gtkpod.glade:11083
+msgid "<b>Sort Tabs</b>"
+msgstr "<b>Blocchi di ordinamento</b>"
+
+#: gtkpod.glade:11145
+msgid "Keeps all compilation CDs grouped together in the artists sort tab."
+msgstr ""
+
+#: gtkpod.glade:11147
+msgid "Group artists on compilation CDs"
+msgstr ""
+
+#: gtkpod.glade:11172
+msgid "_Number of sort tabs:"
+msgstr "_Numero dei blocchi di ordinamento:"
+
+#: gtkpod.glade:11252
+msgid "<b>Automatically select...</b>"
+msgstr "<b>Seleziona automaticamente...</b>"
+
+#: gtkpod.glade:11314
+msgid ""
+"If you don't select the master playlist automatically, the initial database "
+"import is much faster because the display dosn't have to be updated."
+msgstr ""
+"Se non selezioni la playlist principale automaticamente, l'importazione "
+"iniziale del database sarà molto più veloce perchè non verrà aggiornata "
+"l'interfaccia."
+
+#: gtkpod.glade:11316
+msgid "...master playlist"
+msgstr "...playlist principale"
+
+#: gtkpod.glade:11336
+msgid "...entry 'All' in sort tab..."
+msgstr "...voce 'Tutti' nel blocco di ordinamento..."
+
+#: gtkpod.glade:11421
+msgid "<b>Tooltips</b>"
+msgstr "<b>Suggerimenti</b>"
+
+#: gtkpod.glade:11484
+msgid "Display tooltips in main window"
+msgstr "Mostra i suggerimenti nella finestra principale"
+
+#: gtkpod.glade:11504
+msgid "Display tooltips in prefs window"
+msgstr "Mostra i suggerimenti nella finestra delle preferenze"
+
+#: gtkpod.glade:11550
+msgid "<b>Toolbar</b>"
+msgstr "<b>Barra degli Strumenti</b>"
+
+#: gtkpod.glade:11613
+msgid "Display toolbar..."
+msgstr "Mostra la barra degli strumenti..."
+
+#: gtkpod.glade:11670
+msgid "...as icons"
+msgstr "...con icone"
+
+#: gtkpod.glade:11690
+msgid "...as text"
+msgstr "...con testo"
+
+#: gtkpod.glade:11711
+msgid "...both as icons and text"
+msgstr "...con icone e testo"
+
+#: gtkpod.glade:11772
+msgid "<b>Misc</b>"
+msgstr "<b>Misc</b>"
+
+#: gtkpod.glade:11834
+msgid ""
+"It is much faster to sort the display after all tracks have been added. Some "
+"people might feel irritated by this behaviour and should uncheck this option."
+msgstr ""
+"Risulta molto più veloce ordinare la visualizzazione dopo che tutte le "
+"tracce sono state aggiunte. Alcune persone possono essere irritate da questo "
+"comportamento e possono de-selezionare questa opzione."
+
+#: gtkpod.glade:11836
+msgid ""
+"Temporarily disable sorting when changing playlist\n"
+"or tab entry (faster!)"
+msgstr ""
+"Blocca temporanemente l'ordinamento mentre cambi playlist o blocco\n"
+" di voci (più veloce!)"
+
+#: gtkpod.glade:11856
+msgid ""
+"The display can be blocked after changing a selection. The display update is "
+"faster, but you have to wait until it's finished. When using this option, "
+"sorting is also temporarily disabled (see option above)."
+msgstr ""
+"La visualizzazione può essere bloccata dopo aver cambiato una selezione. "
+"L'aggiornamento della visualizzazione sarà più veloce, ma bisogna aspettare "
+"il suo completamento. Quando si usa questa opzione, anche l'ordinamento è "
+"temporaneamente disabilitato (vedere l'opzione precedente)."
+
+#: gtkpod.glade:11858
+msgid ""
+"Block display when changing playlist or tab\n"
+" entry (faster!)"
+msgstr ""
+"Blocca l'interfaccia mentre cambi playlist o blocco\n"
+" di voci (più veloce!)"
+
+#: gtkpod.glade:11878
+msgid "This option will be re-activated when you upgrade gtkpod."
+msgstr "Questa opzione verrà riattivata all'aggiornamento di gtkpod."
+
+#: gtkpod.glade:11880
+msgid "Display messages and warnings at startup"
+msgstr "Mostra messaggi e avvertimenti all'avvio"
+
+#: gtkpod.glade:11942
+msgid "Advanced Sorting Options"
+msgstr "Opzioni di ordinamento avanzate"
+
+#: gtkpod.glade:12045
+msgid "<b>Track Editing</b>"
+msgstr "<b>Modifica della traccia</b>"
+
+#: gtkpod.glade:12107
+msgid ""
+"The tags are written to the files on your harddrive and on the ipod (if "
+"available)."
+msgstr ""
+"I tag vengono scritti sui file nel tuo disco e sull'iPod (se disponibile)."
+
+#: gtkpod.glade:12109
+msgid "Write ID3 tags to disk when modified in gtkpod"
+msgstr "Scrivi i tag ID3 sul disco quando vengono modificati in gtkpod"
+
+#: gtkpod.glade:12165
+msgid ""
+"Normally the charset specified when first importing the track will be used "
+"to write the tags. If you have chosen a wrong charset when first importing a "
+"track, you should select this option along with the correct charset.  Note: "
+"uses the extended information file to store the charset information (see "
+"'Writing of the iTunesDB' on the 'Input/Output' page) and tracks imported "
+"before V0.51 will have no charset stored -- the charset specified on the "
+"'Input/Output' page will be used."
+msgstr ""
+"Normalmente la codifica di sistema specificata al momento di importare la "
+"traccia verrà usata per scrivere il tag. Se hai scelto la codifica sbagliata "
+"al momento della prima importazione, devi selezionare questa opzione insieme "
+"alla codifica giusto. Nota: le informazioni sul carattere sono memorizzate "
+"nel file delle informazioni estese (vedi oltre) e le tracce importate prima "
+"della V0.51 non avranno codifica memorizzata, verrà quindi usata la codifica "
+"specificata nella sezione Importazione."
+
+#: gtkpod.glade:12167
+#, fuzzy
+msgid ""
+"Use selected encoding (on the 'General' page)\n"
+"when writing tags"
+msgstr ""
+"Usa la codifica selezionata (nella pagina 'Generale')\n"
+" per la scrittura dei tag"
+
+#: gtkpod.glade:12187
+msgid ""
+"This is the way to go, but maybe not all programs support it yet. ID3v2.4 "
+"uses unicode to store the tags, so you won't have to worry about charsets "
+"any more. gtkpod will use UTF8 encoding as this will not increase the size "
+"of pure ASCII tags. ID3v2.2/4 tags will also be written if they are already "
+"present in the file to write to."
+msgstr ""
+"Questa è la strada da seguire, ma non tutti i programmi probabilmente la "
+"supportano già. ID3v2.4 usa unicode per memorizzare i tag, quindi non c' "
+"èpiù  bisogno di preoccuparsi dei caratteri. gtkpod userà la codifica UTF8 "
+"perchè questa non incrementerà la dimensione dei tag ASCII. I tag ID3v2.2/4 "
+"verranno scritti se sono già presenti sul file su cui si va a scrivere."
+
+#: gtkpod.glade:12189
+msgid "Always write ID3v2.4 tags (only applies to MP3)"
+msgstr "Scrivi sempre tag ID3v2.4 (vale solo per gli MP3)"
+
+#: gtkpod.glade:12222
+msgid ""
+"If you select several tracks in the track list and edit a tag of the first "
+"track, the tags in the other tracks are updated as well."
+msgstr ""
+"Se selezioni diverse tracce nella playlist e modifichi il tag della prima i "
+"tag delle altre verrà aggiornato."
+
+#: gtkpod.glade:12224
+msgid "Use 'Multi-Edit' for tracks selections"
+msgstr "Usa 'Multi-Edit' per la selezione dei file"
+
+#: gtkpod.glade:12274
+msgid ""
+"Usually you don't want to set the title of several tracks to the same text. "
+"This option might avoid unwanted results (especially since there is no "
+"'undo' yet)."
+msgstr ""
+"Di solito non è desiderabile usare lo stesso titolo per diverse tracce. "
+"Questa opzione può evitare effetti non voluti (specialmente vista l'assenza "
+"della opzione 'Annulla')."
+
+#: gtkpod.glade:12276
+msgid "Use 'Multi-Edit' also for title field"
+msgstr "Usa 'Multi-edit' anche per il campo titolo"
+
+#: gtkpod.glade:12329
+msgid "<b>Auto-Generated Playlists</b>"
+msgstr "<b>Playlist Auto-Generata</b>"
+
+#: gtkpod.glade:12397
+msgid "Number of tracks in generated playlists:"
+msgstr "Numero di tracce nelle playlist generate:"
+
+#: gtkpod.glade:12422
+msgid ""
+"Number of tracks in the generated playlists 'Most Often Listened', 'Best "
+"Rated' and 'Most Recently Played'. Choose '0' for 'no limit'."
+msgstr ""
+"Numero delle tracce nelle playlist generate 'Ascoltate più spesso', 'Tracce "
+"con il voto migliore' e 'Tracce riprodotte più recentemente'. Scegliere '0' "
+"per 'nessun limite'"
+
+#: gtkpod.glade:12451
+msgid "Also include tracks never played in \"Best Rated\" playlist"
+msgstr ""
+"Includi le tracce mai ascoltate nella playlist \"Tracce con il voto migliore"
+"\""
+
+#: gtkpod.glade:12497
+msgid "<b>Delete Confirmation</b>"
+msgstr "<b>Conferma la cancellazione</b>"
+
+#: gtkpod.glade:12560
+msgid "Before removing playlists or tracks from a playlist"
+msgstr "Prima di rimuovere le playlist o le tracce dalla playlist"
+
+#: gtkpod.glade:12580
+msgid "Before removing tracks from the iPod"
+msgstr "Prima di rimuovere le tracce dall'iPod"
+
+#: gtkpod.glade:12600
+msgid "Before removing tracks from the harddisk"
+msgstr "Prima di rimuovere completamente le tracce dal disco fisso"
+
+#: gtkpod.glade:12620
+msgid "Before removing tracks from the local database"
+msgstr "Prima di rimuovere le tracce dal database locale"
+
+#: gtkpod.glade:12640
+msgid ""
+"Confirm before removing tracks from the iPod or repository\n"
+"when syncing playlists"
+msgstr ""
+
+#: gtkpod.glade:12723
+msgid "<b>Play</b>"
+msgstr "<b>Riproduzione</b>"
+
+#: gtkpod.glade:12788
+msgid "Command for 'Play now':"
+msgstr "Comando per 'Suona ora':"
+
+#: gtkpod.glade:12816
+msgid "Command for 'Enqueue':"
+msgstr "Comando per 'Metti in coda':"
+
+#: gtkpod.glade:12844
+msgid ""
+"For example, 'xmms %s' will clear xmms' current playlist, add the selected "
+"tracks and start playing."
+msgstr ""
+"Per esempio, 'xmms %s' cancellerà la playlist attuale di xmms, aggiungerà la "
+"traccia selezionata e comincerà a suonarla."
+
+#: gtkpod.glade:12866
+msgid ""
+"For example, 'xmms -e %s' will append (enqueue) the selected tracks to xmms' "
+"current playlist."
+msgstr ""
+"Per esempio, 'xmms -e %s' appenderà (in coda) la traccia selezionata alla "
+"playlist corrente di xmms."
+
+#: gtkpod.glade:12953
+msgid "<b>Volume Normalization</b>"
+msgstr "<b>Normalizzazione del volume</b>"
+
+#: gtkpod.glade:13018
+msgid "'mp3gain' executable:"
+msgstr "eseguibile 'mp3gain':"
+
+#: gtkpod.glade:13046
+msgid ""
+"Set this to 'mp3gain -q -k' to use the 'Normalize volume' functionality in "
+"the Tools Menu. If this is set, missing normalization data for mp3 files "
+"will be calculated and written to your mp3 file using this command."
+msgstr ""
+
+#: gtkpod.glade:13087
+#, fuzzy
+msgid "'aacgain' executable:"
+msgstr "eseguibile 'mp3gain':"
+
+#: gtkpod.glade:13115
+msgid ""
+"Set this to 'aacgain -q -k' to use the 'Normalize volume' functionality in "
+"the Tools Menu. If this is set, missing normalization data for .m4a and .m4b "
+"files will be calculated and written to your music file using this command."
+msgstr ""
+
+#: gtkpod.glade:13183
+msgid "<b>Calendar/Contacts/Notes</b>"
+msgstr ""
+
+#: gtkpod.glade:13246
+msgid "Set options for Calendar/Contacts/Notes"
+msgstr ""
+
+#: gtkpod.glade:13381
+msgid "Details"
+msgstr ""
+
+#: gtkpod.glade:13449
+#, fuzzy
+msgid "Cover"
+msgstr "Compositore"
+
+#: gtkpod.glade:13538
+msgid "Set Cover Art"
+msgstr ""
+
+#: gtkpod.glade:13575
+msgid ""
+"If you check this, information (cover art and meta information) changed for "
+"this track will be copied to all other selected tracks as well. Use with "
+"care."
+msgstr ""
+
+#: gtkpod.glade:13621
+msgid ""
+"Change all tracks\n"
+"simultaneously"
+msgstr ""
+
+#: gtkpod.glade:13713
+msgid "Remove Cover Art"
+msgstr ""
+
+#: gtkpod.glade:14646
+msgid "(Checked)"
+msgstr ""
+
+#: gtkpod.glade:15088
+msgid "_Podcasts"
+msgstr ""
+
+#: gtkpod.glade:16127
+msgid "_Other"
+msgstr ""
+
+#: gtkpod.glade:16425
+msgid "_Undo All"
+msgstr ""
+
+#: gtkpod.glade:16499
+#, fuzzy
+msgid "_Undo Track"
+msgstr "Tracce senza voto"
+
+#: gtkpod.glade:16546
+#, fuzzy
+msgid "Repository Options"
+msgstr "Opzioni di ordinamento"
+
+#: gtkpod.glade:16667
+msgid "Add new repository/iPod"
+msgstr ""
+
+#: gtkpod.glade:16736 gtkpod.glade:18163 gtkpod.glade:18659
+#, fuzzy
+msgid "iPod mountpoint:"
+msgstr " _Punto di montaggio dell'iPod"
+
+#: gtkpod.glade:16764 gtkpod.glade:18135
+msgid "iTunesDB backup:"
+msgstr ""
+
+#: gtkpod.glade:16792 gtkpod.glade:18107 gtkpod.glade:18730 gtkpod.glade:18922
+msgid "Model:"
+msgstr ""
+
+#: gtkpod.glade:16820 gtkpod.glade:18079
+msgid "Path:"
+msgstr ""
+
+#: gtkpod.glade:16848
+msgid "<b>Synchronization</b>"
+msgstr "<b>Sincronizzazione</b>"
+
+#: gtkpod.glade:16906
+msgid "Contacts sync command:"
+msgstr "Comando sincronizzazione contatti:"
+
+#: gtkpod.glade:16934
+msgid "Calendar sync command:"
+msgstr "Comando sincronizzazione calendario:"
+
+#: gtkpod.glade:16962
+msgid "Notes sync command:"
+msgstr "Comando sincronizzazione note:"
+
+#: gtkpod.glade:16991
+msgid "Call automatically when synchronizing iTunesDB"
+msgstr "Chiama automaticamente mentre sincronizzi l'iTunesDB"
+
+#: gtkpod.glade:17014 gtkpod.glade:17038 gtkpod.glade:17062 gtkpod.glade:17086
+#: gtkpod.glade:17110 gtkpod.glade:17134 gtkpod.glade:17658 gtkpod.glade:18435
+msgid ""
+"Specify exact path including command line options. '%i' will be replaced "
+"with the mount point of the iPod."
+msgstr ""
+"Specificare la path esatta incluse le opzioni della linea di comando. '%i' "
+"verrà sostituito con il punto di montaggio dell'iPod."
+
+#: gtkpod.glade:17294
+msgid "Update/Sync all playlists now"
+msgstr ""
+
+#: gtkpod.glade:17314
+#, fuzzy
+msgid "Delete repository"
+msgstr "Cancella dall'iPod"
+
+#: gtkpod.glade:17334 src/context_menus.c:430 src/context_menus.c:448
+#: src/context_menus.c:523
+msgid "I'm sure"
+msgstr ""
+
+#: gtkpod.glade:17390
+#, fuzzy
+msgid "<b>Repositories</b>"
+msgstr "<b>Suggerimenti</b>"
+
+#: gtkpod.glade:17587
+msgid ""
+"Directories to sync with are determined from the filenames of the tracks in "
+"the playlist."
+msgstr ""
+
+#: gtkpod.glade:17589
+msgid "On startup automatically sync with playlist directories"
+msgstr ""
+
+#: gtkpod.glade:17608
+#, fuzzy
+msgid "On startup automatically sync with the following directory"
+msgstr "Vuoi sincronizzare le seguenti directory?"
+
+#: gtkpod.glade:17702
+#, fuzzy
+msgid "Don't automatically sync on startup"
+msgstr "Importa automaticamente l'iTunesDB all'avvio"
+
+#: gtkpod.glade:17848
+msgid "On startup automatically update (Live Playlist)"
+msgstr ""
+
+#: gtkpod.glade:17878
+msgid "Update/Sync playlist now"
+msgstr ""
+
+#: gtkpod.glade:17925
+#, fuzzy
+msgid "<b>Playlists</b>"
+msgstr "<b>Riproduzione</b>"
+
+#: gtkpod.glade:18042
+#, fuzzy
+msgid "Create Repository"
+msgstr "Cancella dall'iPod"
+
+#: gtkpod.glade:18320
+msgid ""
+"Insert before\n"
+"Insert after"
+msgstr ""
+
+#: gtkpod.glade:18358
+#, fuzzy
+msgid "Repository type:"
+msgstr "Opzioni di ordinamento"
+
+#: gtkpod.glade:18386
+msgid ""
+"iPod\n"
+"Local Repository (Standard)\n"
+"Local Repository (Podcasts)\n"
+msgstr ""
+
+#: gtkpod.glade:18407
+#, fuzzy
+msgid "Repository name:"
+msgstr "Opzioni di ordinamento"
+
+#: gtkpod.glade:18543 gtkpod.glade:18806
+msgid "Initialize iPod"
+msgstr ""
+
+#: gtkpod.glade:18613
+msgid "<b>Please select mountpoint and your iPod model</b>"
+msgstr ""
+
 #: src/charset.c:53
 msgid "Arabic (IBM-864)"
 msgstr "Arabo (IBM-864)"
@@ -223,7 +2091,7 @@
 
 #. sanity!
 #. check for "System Charset" and return NULL
-#: src/charset.c:160 src/charset.c:170 src/charset.c:222
+#: src/charset.c:160 src/charset.c:170 src/charset.c:223
 msgid "System Charset"
 msgstr "Codifica di sistema"
 
@@ -236,251 +2104,238 @@
 "E' stata rilevata un'altra istanza di gtkpod. Il server dei conta-"
 "riproduzioni non è partito.\n"
 
-#: src/confirmation.c:361
+#: src/confirmation.c:376
 msgid "Confirmation Dialogue"
 msgstr "Finestra di conferma"
 
-#: src/context_menus.c:352 src/tools.c:634
+#: src/context_menus.c:367 src/tools.c:852
 msgid "Play Now"
 msgstr "Suona"
 
-#: src/context_menus.c:354 src/tools.c:645
+#: src/context_menus.c:373 src/tools.c:865
 msgid "Enqueue"
 msgstr "Metti in coda"
 
-#: src/context_menus.c:357
+#: src/context_menus.c:379
 #, fuzzy
 msgid "Copy Tracks to Filesystem"
 msgstr "_Aggiorna le tracce dai file"
 
-#: src/context_menus.c:359 src/file_export.c:1069
+#: src/context_menus.c:386 src/file_export.c:1081
 msgid "Create Playlist File"
 msgstr "Crea un File Playlist"
 
-#: src/context_menus.c:361
-msgid "Edit Details"
-msgstr ""
+#: src/context_menus.c:393
+msgid "Create new Playlist"
+msgstr "Crea una nuova Playlist"
 
-#: src/context_menus.c:363 gtkpod.glade:12817
-msgid "Update"
-msgstr "Aggiorna"
+#: src/context_menus.c:400
+#, fuzzy
+msgid "Update Tracks from File"
+msgstr "_Aggiorna le tracce dai file"
 
-#: src/context_menus.c:365
-msgid "Sync Dirs"
-msgstr "Sincronizza le directory"
+#: src/context_menus.c:414
+msgid "Sync Playlist with Dir(s)"
+msgstr ""
 
-#: src/context_menus.c:367
-msgid "Normalize"
-msgstr "Normalizza"
+#: src/context_menus.c:424
+msgid "Remove All Tracks from iPod"
+msgstr "Rimuovi tutte le Tracce dall'iPod"
 
-#: src/context_menus.c:369
-msgid "Create new Playlist"
-msgstr "Crea una nuova Playlist"
+#: src/context_menus.c:442
+#, fuzzy
+msgid "Remove All Podcasts from iPod"
+msgstr "Rimuovi tutte le Tracce dall'iPod"
 
-#: src/context_menus.c:372
-msgid "Edit Smart Playlist"
-msgstr "Modifica la playlist intelligente"
+#: src/context_menus.c:457
+msgid "Delete Including Tracks"
+msgstr "Cancella le tracce incluse"
 
-#: src/context_menus.c:378
-msgid "Alphabetize"
-msgstr "Ordine alfabetico"
+#: src/context_menus.c:465
+msgid "Delete But Keep Tracks"
+msgstr "Cancella ma preserva le tracce"
 
-#: src/context_menus.c:402
-msgid "Delete From iPod"
-msgstr "Cancella dall'iPod"
+#: src/context_menus.c:473
+#, fuzzy
+msgid "Edit iPod Properties"
+msgstr "Crea le directory dell'iPod"
 
-#: src/context_menus.c:408
-msgid "Delete From Harddisk"
-msgstr "Cancella dal disco fisso"
+#: src/context_menus.c:493
+#, fuzzy
+msgid "Load iPod"
+msgstr "_iPod"
 
-#: src/context_menus.c:414
-msgid "Delete From Database"
-msgstr "Cancella dal database"
+#: src/context_menus.c:500
+msgid "Eject iPod"
+msgstr ""
 
-#: src/context_menus.c:420
-msgid "Delete From Playlist"
-msgstr "Cancella dalla Playlist"
+#: src/context_menus.c:517
+msgid "Remove All Tracks from Database"
+msgstr "Rimuovi tutte le tracce dal Database"
 
-#: src/context_menus.c:439
-msgid "Delete Including Tracks"
-msgstr "Cancella le tracce incluse"
-
-#: src/context_menus.c:445
+#: src/context_menus.c:532
 msgid "Delete Including Tracks (Harddisk)"
 msgstr "Cancella le tracce incluse (disco fisso)"
 
-#: src/context_menus.c:451
+#: src/context_menus.c:540
 msgid "Delete Including Tracks (Database)"
 msgstr "Cancella le tracce incluse (Database)"
 
-#: src/context_menus.c:457
-msgid "Delete But Keep Tracks"
-msgstr "Cancella ma preserva le tracce"
+#: src/context_menus.c:548
+msgid "Delete From iPod"
+msgstr "Cancella dall'iPod"
 
-#: src/context_menus.c:463
-msgid "Remove All Tracks from iPod"
-msgstr "Rimuovi tutte le Tracce dall'iPod"
+#: src/context_menus.c:556
+msgid "Delete From Playlist"
+msgstr "Cancella dalla Playlist"
 
-#: src/context_menus.c:469
-msgid "Remove All Tracks from Database"
-msgstr "Rimuovi tutte le tracce dal Database"
+#: src/context_menus.c:564
+msgid "Delete From Harddisk"
+msgstr "Cancella dal disco fisso"
 
-#: src/context_menus.c:476
-#, fuzzy
-msgid "Remove All Podcasts from iPod"
-msgstr "Rimuovi tutte le Tracce dall'iPod"
+#: src/context_menus.c:572
+msgid "Delete From Database"
+msgstr "Cancella dal database"
 
-#: src/context_menus.c:487 gtkpod.glade:156
-msgid "Update Podcasts"
-msgstr ""
+#: src/context_menus.c:580
+msgid "Alphabetize"
+msgstr "Ordine alfabetico"
 
-#: src/context_menus.c:494
+#: src/context_menus.c:596
 #, fuzzy
-msgid "Podcasts Preferences"
-msgstr "_Modifica le preferenze"
+msgid "Edit Playlist Properties"
+msgstr "Aggiungi playlist dal file"
 
 #: src/date_parser.l:269
 #, c-format
 msgid "Date format error: unrecognized character: '%s'\n"
 msgstr "Errore nel formato della data: carattere sconosciuto: '%s'\n"
 
-#: src/details.c:1035 gtkpod.glade:4365
-msgid "n/a"
-msgstr "n.d."
-
-#: src/details.c:1099
+#: src/details.c:1182
 #, fuzzy
 msgid "<b>n/a</b>"
 msgstr "<b>Riproduzione</b>"
 
-#: src/display.c:924 src/display.c:1022 src/display.c:1071 src/display.c:1302
-#: src/display.c:1358 src/display.c:1413 src/display.c:1464 src/display.c:1628
-#: src/misc_playlist.c:274
-msgid "No playlist selected"
-msgstr "Nessuna playlist selezionata"
-
-#: src/display.c:934
+#: src/display.c:891
 #, fuzzy
 msgid "Edit selected entry of which sort tab?"
 msgstr "Aggiornare la voce selezionata di quale blocco di ordinamento?"
 
 #. no entry selected
-#: src/display.c:941 src/misc_confirm.c:441 src/misc_track.c:1482
+#: src/display.c:898 src/misc_confirm.c:431 src/misc_track.c:1613
 msgid "No entry selected."
 msgstr "Nessuna voce selezionata."
 
-#: src/display.c:960 src/display.c:1040 src/display.c:1345 src/display.c:1401
-#: src/display.c:1452 src/display.c:1503
-msgid "No tracks selected"
-msgstr "Nessuna traccia selezionata."
-
-#: src/display.c:1056 src/display.c:1322 src/display.c:1378 src/display.c:1430
-#: src/display.c:1481 src/display.c:1650
+#: src/display.c:1057 src/display.c:1384 src/display.c:1440 src/display.c:1494
+#: src/display.c:1549 src/display.c:1810
 #, c-format
 msgid "No entry selected in Sort Tab %d"
 msgstr "Nessuna voce selezionata nel blocco di ordinamento %d"
 
-#: src/display.c:1095
+#: src/display.c:1096
 #, fuzzy
 msgid "Remove entry of which sort tab from database?"
 msgstr "Esportare la voce selezionata di quale blocco di ordinamento?"
 
-#: src/display.c:1103
+#: src/display.c:1104
 #, fuzzy
 msgid "Remove tracks in selected entry of which filter tab from the iPod?"
 msgstr ""
 "Metti in coda le tracce nella voce selezionata di quale blocco di "
 "ordinamento?"
 
-#: src/display.c:1125
+#: src/display.c:1126
 #, fuzzy
 msgid "Remove tracks in selected entry of which filter tab from the harddisk?"
 msgstr ""
 "Metti in coda le tracce nella voce selezionata di quale blocco di "
 "ordinamento?"
 
-#: src/display.c:1155
+#: src/display.c:1156
 #, fuzzy
 msgid "Remove tracks in selected entry of which filter tab from playlist?"
 msgstr ""
 "Metti in coda le tracce nella voce selezionata di quale blocco di "
 "ordinamento?"
 
-#: src/display.c:1174
-msgid "Currently no iPod database selected"
-msgstr "Nessun database iPod è stato selezionato al momento"
+#: src/display.c:1183 src/display.c:1221
+#, c-format
+msgid ""
+"iPod at '%s' is not loaded.\n"
+"Please load it first."
+msgstr ""
 
-#: src/display.c:1202 src/display.c:1229
+#: src/display.c:1265 src/display.c:1292
 msgid "Update selected entry of which sort tab?"
 msgstr "Aggiornare la voce selezionata di quale blocco di ordinamento?"
 
-#: src/display.c:1248
-msgid "Sync dirs of selected entry in which sort tab?"
-msgstr "Sincronizza le directory delle voci di quale blocco di ordinamento?"
-
-#: src/display.c:1316
+#: src/display.c:1378
 msgid "Export selected entry of which sort tab?"
 msgstr "Esportare la voce selezionata di quale blocco di ordinamento?"
 
-#: src/display.c:1372
+#: src/display.c:1434
 msgid "Create playlist file from selected entry of which sort tab?"
 msgstr ""
 "Creare la playlist dalle voci selezionate di quale blocco di ordinamento?"
 
-#: src/display.c:1424
+#: src/display.c:1488
 msgid "Play tracks in selected entry of which sort tab?"
 msgstr ""
 "Riproduci le tracce nella voce selezionata di quale blocco di ordinamento?"
 
-#: src/display.c:1475
+#: src/display.c:1543
 msgid "Enqueue tracks in selected entry of which sort tab?"
 msgstr ""
 "Metti in coda le tracce nella voce selezionata di quale blocco di "
 "ordinamento?"
 
-#: src/display.c:1640
+#: src/display.c:1800
 msgid "Normalize tracks in selected entry of which sort tab?"
 msgstr ""
 "Normalizza le tracce nella voce selezionata di quale blocco di ordinamento?"
 
-#: src/display_itdb.c:319
+#: src/display_itdb.c:355
 #, fuzzy, c-format
-msgid "Failed to set cover art: '%s'"
+msgid "Failed to set cover art: '%s'\n"
 msgstr "Impossibile scrivere %s-%s\n"
 
+#: src/display_itdb.c:835 src/display_itdb.c:967 src/repository.c:1189
+#, fuzzy
+msgid "iPod"
+msgstr "_iPod"
+
+#: src/display_itdb.c:844 src/display_itdb.c:965
+msgid "Local"
+msgstr "Locale"
+
 #. add podcast playlist
-#: src/display_itdb.c:843 src/display_itdb.c:871 src/display_itdb.c:975
-#: gtkpod.glade:13669
+#: src/display_itdb.c:852 src/display_itdb.c:963 src/display_itdb.c:991
 msgid "Podcasts"
 msgstr ""
 
-#: src/display_itdb.c:845 src/display_itdb.c:941
-msgid "Local"
-msgstr "Locale"
-
-#: src/display_itdb.c:1081
+#: src/display_itdb.c:1050
 #, c-format
 msgid "Increased playcount for '%s'"
 msgstr "Aumentati i conta-riproduzione per '%s'"
 
 #. give a notice on the statusbar -- otherwise the user
 #. * will never know why the drag is not possible
-#: src/display_playlists.c:498 src/display_playlists.c:540
+#: src/display_playlists.c:496 src/display_playlists.c:538
 msgid "Error: drag from iPod not possible in offline mode."
 msgstr "Errore: il 'drag' dal iPod non è possibile in modalit offline"
 
-#: src/display_playlists.c:567 src/display_songs.c:285
+#: src/display_playlists.c:565 src/display_songs.c:287
 #, c-format
 msgid "Copied one track"
 msgid_plural "Copied %d tracks"
 msgstr[0] "Copiata una traccia"
 msgstr[1] "Copiate %d tracce"
 
-#: src/display_playlists.c:856
+#: src/display_playlists.c:851
 msgid "Can't reorder sorted treeview."
 msgstr "Impossibile riordinare la vista ad albero ordinata."
 
-#: src/display_playlists.c:947
+#: src/display_playlists.c:944
 #, c-format
 msgid ""
 "This DND type (%d) is not (yet) supported. If you feel implementing this "
@@ -490,19 +2345,15 @@
 "Questo tipo DND (%d) non è (ancora) supportato. Se pensi che possa essere "
 "utile implementarlo, contatta l'autore.\n"
 
-#: src/display_playlists.c:1830 gtkpod.glade:3997
-msgid "Playlists"
-msgstr "Playlist"
-
 # c-format
-#: src/display_songs.c:280
+#: src/display_songs.c:282
 #, c-format
 msgid "Moved one track"
 msgid_plural "Moved %d tracks"
 msgstr[0] "Spostata una traccia"
 msgstr[1] "Spostate %d tracce"
 
-#: src/display_songs.c:1669
+#: src/display_songs.c:1690
 #, c-format
 msgid ""
 "Cannot unsort track view because of a bug in the GTK lib you are using (%d.%"
@@ -515,124 +2366,91 @@
 "delle tracce,non sarà possibile tornare allo stato 'non ordinato'.\n"
 "\n"
 
-#: src/display_songs.c:1922
+#: src/display_songs.c:1923
 #, fuzzy
 msgid "Rtng"
 msgstr "Voto"
 
-#: src/display_songs.c:1925
+#: src/display_songs.c:1926
 msgid "#"
 msgstr "#"
 
-#: src/display_songs.c:1928
+#: src/display_songs.c:1929
 msgid "CD"
 msgstr "CD"
 
-#: src/display_songs.c:1931
+#: src/display_songs.c:1932
 msgid "ID"
 msgstr "ID"
 
-#: src/display_songs.c:1934
+#: src/display_songs.c:1935
 msgid "Trnsfrd"
 msgstr "Trasferito"
 
-#: src/display_songs.c:1938
+#: src/display_songs.c:1939
 msgid "Cmpl"
 msgstr "Comp."
 
-#: src/display_songs.c:1942 src/display_spl.c:94
+#: src/display_songs.c:1945 src/display_spl.c:94
 msgid "Time"
 msgstr "Durata"
 
-#: src/display_songs.c:1945
+#: src/display_songs.c:1948
 msgid "Plycnt"
 msgstr "Conta riproduzioni"
 
-#: src/display_songs.c:1948 gtkpod.glade:2433
-msgid "Played"
-msgstr "Suonato"
-
-#: src/display_songs.c:1951 gtkpod.glade:2456
-msgid "Modified"
-msgstr "Modificato"
-
-#: src/display_songs.c:1954 src/display_sorttabs.c:3117 gtkpod.glade:2551
-msgid "Added"
-msgstr "Aggiunta"
-
-#: src/display_songs.c:1957
+#: src/display_songs.c:1960
 #, fuzzy
 msgid "Released"
 msgstr "Leggi"
 
-#: src/display_songs.c:1960 src/display_sorttabs.c:2856 src/display_spl.c:88
+#: src/display_songs.c:1963 src/display_sorttabs.c:2957 src/display_spl.c:88
 #: src/misc_conversion.c:85
 msgid "Year"
 msgstr "Anno"
 
-#: src/display_songs.c:1963
+#: src/display_songs.c:1966
 msgid "Vol."
 msgstr "Vol."
 
-#: src/display_songs.c:1966
+#: src/display_songs.c:1969
 msgid "Sndchk."
 msgstr "Sndchk"
 
-#: src/display_sorttabs.c:400
+#: src/display_sorttabs.c:456
 msgid "'Played' condition ignored because of error."
 msgstr "La condizione 'Suonato' è stata ignorata a causa di un errore"
 
-#: src/display_sorttabs.c:403
+#: src/display_sorttabs.c:459
 msgid "'Modified' condition ignored because of error."
 msgstr "Condizione 'Modificato' ignorata a causa di un errore."
 
-#: src/display_sorttabs.c:406
+#: src/display_sorttabs.c:462
 msgid "'Added' condition ignored because of error."
 msgstr "Condizione 'Aggiunta' ignorata a causa di un errore."
 
-#: src/display_sorttabs.c:1492 src/misc_conversion.c:60
+#: src/display_sorttabs.c:1582 src/misc_conversion.c:60
 msgid "All"
 msgstr "Tutti"
 
-#: src/display_sorttabs.c:1518
+#: src/display_sorttabs.c:1608
 #, fuzzy
 msgid "Compilations"
 msgstr "Compilation"
 
-#: src/display_sorttabs.c:2841 src/display_spl.c:85 src/misc_conversion.c:62
-#: gtkpod.glade:8709
-msgid "Artist"
-msgstr "Artista"
-
-#. 0
-#: src/display_sorttabs.c:2844 src/display_spl.c:84 src/misc_conversion.c:61
-#: gtkpod.glade:8753
-msgid "Album"
-msgstr "Album"
-
-#: src/display_sorttabs.c:2847 src/display_spl.c:89 src/misc_conversion.c:64
-#: gtkpod.glade:8731
-msgid "Genre"
-msgstr "Genere"
-
-#: src/display_sorttabs.c:2850
+#: src/display_sorttabs.c:2951
 msgid "Comp."
 msgstr "Comp."
 
-#: src/display_sorttabs.c:2853 src/display_spl.c:83 src/misc_conversion.c:63
-#: gtkpod.glade:8797
-msgid "Title"
-msgstr "Titolo"
-
-#: src/display_sorttabs.c:2859
+#: src/display_sorttabs.c:2960
 msgid "Special"
 msgstr "Speciale"
 
-#: src/display_sorttabs.c:3115
+#: src/display_sorttabs.c:3216
 msgid "Last Played"
 msgstr "Suonato"
 
-#: src/display_sorttabs.c:3116
+#: src/display_sorttabs.c:3217
 msgid "Last Modified"
 msgstr "Modificato"
 
@@ -656,7 +2474,7 @@
 msgid "Hz"
 msgstr "Hz"
 
-#: src/display_spl.c:75 src/display_spl.c:160 src/info.c:732
+#: src/display_spl.c:75 src/display_spl.c:160 src/info.c:777
 msgid "MB"
 msgstr "MB"
 
@@ -697,15 +2515,6 @@
 msgid "Date added"
 msgstr "Data di aggiunta"
 
-#. 5
-#: src/display_spl.c:97 src/misc_conversion.c:66 gtkpod.glade:8775
-msgid "Composer"
-msgstr "Compositore"
-
-#: src/display_spl.c:98 src/misc_conversion.c:78 gtkpod.glade:2387
-msgid "Playcount"
-msgstr "Conta riproduzioni"
-
 #: src/display_spl.c:99
 msgid "Last played"
 msgstr "Ultimo Ascolto"
@@ -714,10 +2523,6 @@
 msgid "Disc number"
 msgstr "Numero disco"
 
-#: src/display_spl.c:101 src/misc_conversion.c:79 gtkpod.glade:2410
-msgid "Rating"
-msgstr "Voto"
-
 #: src/display_spl.c:102 src/misc_conversion.c:88
 msgid "Compilation"
 msgstr "Compilation"
@@ -730,10 +2535,6 @@
 msgid "Grouping"
 msgstr "Raggrupamento"
 
-#: src/display_spl.c:105 gtkpod.glade:1443
-msgid "Playlist"
-msgstr "Playlist"
-
 #: src/display_spl.c:111
 msgid "contains"
 msgstr "contiene"
@@ -808,7 +2609,7 @@
 msgid "hours"
 msgstr "ore"
 
-#: src/display_spl.c:163 src/info.c:732
+#: src/display_spl.c:163 src/info.c:777
 msgid "GB"
 msgstr "GB"
 
@@ -864,32 +2665,32 @@
 msgid "lowest rating"
 msgstr "voto peggiore"
 
-#: src/display_spl.c:1049 src/display_spl.c:1064
+#: src/display_spl.c:1047 src/display_spl.c:1062
 msgid "to"
 msgstr "a"
 
-#: src/display_spl.c:1276
+#: src/display_spl.c:1279
 msgid "-"
 msgstr "-"
 
-#: src/display_spl.c:1286
+#: src/display_spl.c:1294
 msgid "+"
 msgstr "+"
 
-#: src/display_spl.c:1503 src/misc_playlist.c:67 src/misc_playlist.c:69
-#: src/misc_playlist.c:94 src/misc_playlist.c:96 src/misc_playlist.c:415
-#: src/misc_playlist.c:417
+#: src/display_spl.c:1513 src/misc_playlist.c:67 src/misc_playlist.c:69
+#: src/misc_playlist.c:94 src/misc_playlist.c:96 src/misc_playlist.c:429
+#: src/misc_playlist.c:431
 msgid "New Playlist"
 msgstr "Nuova Playlist"
 
-#: src/file.c:195
+#: src/file.c:230
 #, c-format
 msgid ""
 "'%s' is a directory, not a playlist file.\n"
 "\n"
 msgstr "'%s' è una directory. non un file playlist.\n"
 
-#: src/file.c:222
+#: src/file.c:258
 #, c-format
 msgid ""
 "'%s' is a not a known playlist file.\n"
@@ -898,7 +2699,7 @@
 "'%s' non sembra essere un file playlist conosciuto.\n"
 "\n"
 
-#: src/file.c:239
+#: src/file.c:275
 #, c-format
 msgid ""
 "Cannot open '%s' for reading.\n"
@@ -907,56 +2708,56 @@
 "Impossibile aprire il file '%s' in lettura.\n"
 "\n"
 
-#: src/file.c:322
+#: src/file.c:359
 #, c-format
 msgid "Skipping '%s' because it is a directory.\n"
 msgstr "Salto '%s' perchè è una directory.\n"
 
-#: src/file.c:327
+#: src/file.c:364
 #, c-format
 msgid "Skipping '%s' to avoid adding playlist file recursively\n"
 msgstr ""
 "Salto '%s' per evitare di aggiungere file delle playlist ricorsivamente\n"
 
-#: src/file.c:582
+#: src/file.c:619
 #, c-format
 msgid "Unknown token '%s' in template '%s'\n"
 msgstr "Token '%s' sconosciuto nel formato '%s'\n"
 
-#: src/file.c:817
+#: src/file.c:871
 #, c-format
 msgid "Local filename not valid (%s)"
 msgstr "Nome del file locale non valido (%s)"
 
-#: src/file.c:870
+#: src/file.c:930
 #, c-format
 msgid "No information found for user '%s' in '%s'"
 msgstr "Nessuna informazioni sull'utente '%s' in '%s'"
 
-#: src/file.c:877
+#: src/file.c:939
 #, c-format
 msgid "mserv data file (%s) not available for track (%s)"
 msgstr "il file dei dati mserv (%s) non è disponibileper la traccia (%s)"
 
-#: src/file.c:885
+#: src/file.c:947
 #, c-format
 msgid "Track (%s) not in mserv music root directory (%s)"
 msgstr "La traccia (%s) è non nella directory radice musicale di mserv (%s)"
 
-#: src/file.c:990
+#: src/file.c:1055
 #, c-format
 msgid ""
 "The following track could not be processed (file does not exist): '%s'\n"
 msgstr ""
 "La traccia seguente non può essereelaborata (il file non esiste): '%s'\n"
 
-#: src/file.c:1039
+#: src/file.c:1118
 #, c-format
 msgid "The following track could not be processed (filetype unknown): '%s'\n"
 msgstr ""
 "La traccia seguente non può essereelaborata (tipo di file conosciuto): '%s'\n"
 
-#: src/file.c:1121
+#: src/file.c:1211
 #, c-format
 msgid ""
 "The following track could not be processed (filetype is known but analysis "
@@ -965,122 +2766,34 @@
 "La traccia seguente non può essere elaborata (tipo di file conosciuto ma "
 "l'analisi è fallita): '%s'\n"
 
-#: src/file.c:1150 src/file.c:1205
+#: src/file.c:1241 src/file.c:1295
 msgid "Nothing to update"
 msgstr "Nulla da aggiornare"
 
-#: src/file.c:1170
+#: src/file.c:1262
 #, c-format
 msgid "Updating %s"
 msgstr "Aggiornamento di %s in corso"
 
-#: src/file.c:1186
+#: src/file.c:1276
 msgid "Updated selected tracks with info from file."
 msgstr "Le tracce sono state aggiornate con le informazioni dal file."
 
-#: src/file.c:1218
+#: src/file.c:1310
 #, c-format
 msgid "Retrieving mserv data %s"
 msgstr "Ricezione dei dati mserv %s"
 
-#. no path available
-#: src/file.c:1224 src/file.c:1902
+#: src/file.c:1315
 msgid "no filename available"
 msgstr "nessun nome di file disponibile"
 
-#: src/file.c:1229
+#: src/file.c:1320
 msgid "Updated selected tracks with data from mserv."
 msgstr "Le tracce sono state aggiornate con le informazioni dal mserv."
 
-#: src/file.c:1296
+#: src/file.c:1341
 #, c-format
-msgid "Syncing directory '%s'"
-msgstr "Sincronizzazione della directory '%s' in corso"
-
-#: src/file.c:1321
-msgid "Syncing completed. No files deleted."
-msgstr "Sincronizzazione completata. Nessun file cancellato."
-
-#. gint id,
-#. gboolean modal,
-#. title
-#. label
-#. scrolled text
-#: src/file.c:1434
-msgid "Never delete any files when syncing"
-msgstr "Non cancellare i file durante la sincronizzazione"
-
-#: src/file.c:1463
-msgid "Syncing completed."
-msgstr "Sincronizzazione completata."
-
-#: src/file.c:1483
-msgid "Syncing aborted"
-msgstr "Sincronizzazione abortita"
-
-#: src/file.c:1521
-msgid "No tracks in selection"
-msgstr "Nessuna traccia selezionata"
-
-#: src/file.c:1571
-#, c-format
-msgid "'%s' is not a directory. Ignored.\n"
-msgstr "'%s' non è una directory. Ignorata.\n"
-
-#. no directory names available
-#: src/file.c:1601
-msgid ""
-"No directory names were stored. Make sure that you enable 'Write extended "
-"information' in the Export section of the preferences at the time of "
-"importing files.\n"
-"\n"
-"To synchronize directories now, activate the duplicate detection ('Don't "
-"allow file duplication') in the Import section and add the directories you "
-"want to sync again.\n"
-msgstr ""
-"Nessun nome di directory è stato memorizzato. Assicurati di aver attivato al "
-"momento dell'importazione dei file 'Scrivi informazioni estese' tra le "
-"preferenze nella sezione Esportazione.\n"
-"\n"
-"Per sincronizzare le directory adesso, attiva la 'Rilevazione dei "
-"duplicati'  ('Non permettere i file duplicati')nella sezione Importazione e "
-"aggiungi le directory che vuoi sincronizzare di nuovo.\n"
-
-#: src/file.c:1605
-msgid "No valid directories have been found. Sync aborted.\n"
-msgstr "Nessuna directory valida è stata trovata. Sincronizzazione abortita.\n"
-
-#: src/file.c:1614
-msgid ""
-"The (former) contents of the following directories will be removed from the "
-"database:\n"
-"\n"
-msgstr ""
-"Il contenuto (precedente) delle directory seguente verrà rimosso dal "
-"database:\n"
-"\n"
-
-#: src/file.c:1622
-msgid ""
-"The following directories will be synchronized:\n"
-"\n"
-msgstr ""
-"La directory seguente verrà sincronizzata:\n"
-"\n"
-
-#. gint id,
-#. gboolean modal,
-#: src/file.c:1633
-msgid "Synchronize directories"
-msgstr "Sincronizza le directory"
-
-#. title
-#: src/file.c:1634
-msgid "OK to synchronize the following directories?"
-msgstr "Vuoi sincronizzare le seguenti directory?"
-
-#: src/file.c:1672
-#, c-format
 msgid "The following track could not be updated"
 msgid_plural "The following %d tracks could not be updated"
 msgstr[0] "La traccia seguente non può essere aggiornata"
@@ -1088,11 +2801,11 @@
 
 #. gint id,
 #. gboolean modal,
-#: src/file.c:1678
+#: src/file.c:1347
 msgid "Failed Track Update"
 msgstr "Aggiornamento delle tracce fallito"
 
-#: src/file.c:1736
+#: src/file.c:1405
 #, c-format
 msgid "The following track has been updated"
 msgid_plural "The following %d tracks have been updated"
@@ -1101,11 +2814,11 @@
 
 #. gint id,
 #. gboolean modal,
-#: src/file.c:1742
+#: src/file.c:1411
 msgid "Successful Track Update"
 msgstr "Aggiornamento delle tracce completato con successo."
 
-#: src/file.c:1801
+#: src/file.c:1470
 #, c-format
 msgid "No mserv information could be retrieved for the following track"
 msgid_plural ""
@@ -1119,66 +2832,90 @@
 
 #. gint id,
 #. gboolean modal,
-#: src/file.c:1807
+#: src/file.c:1476
 msgid "mserv data retrieval problem"
 msgstr "problemi nel raccogliere le informazioni mserv"
 
-#: src/file.c:1948
-msgid "file not found"
-msgstr "file non trovato"
+#: src/file.c:1565
+msgid "no local filename available, file on the iPod will be used instead"
+msgstr ""
 
-#: src/file.c:1952
-msgid "format not supported"
+#: src/file.c:1571
+msgid "no local filename available and copy on iPod cannot be found"
+msgstr ""
+
+#: src/file.c:1575 src/file.c:1593
+#, fuzzy
+msgid "no local filename available"
+msgstr "nessun nome di file disponibile"
+
+#: src/file.c:1583
+msgid "local file could not be found, file on the iPod will be used instead"
+msgstr ""
+
+#: src/file.c:1589
+msgid "local file as well as copy on the iPod cannot be found"
+msgstr ""
+
+#. update not successful -- log this track for later display
+#: src/file.c:1651
+#, fuzzy
+msgid "update failed (format no supported?)"
 msgstr "formato non supportato"
 
-#: src/file.c:2033
+#: src/file.c:1734
 #, c-format
 msgid "Processing '%s'..."
 msgstr "Elaborazione di '%s' in corso..."
 
-#: src/file.c:2137 src/misc_track.c:1169 src/misc_track.c:1225
+#: src/file.c:1740
 #, c-format
+msgid "File skipped. match exclude masks: '%s'\n"
+msgstr ""
+
+#: src/file.c:1852 src/misc_track.c:1299 src/misc_track.c:1355
+#, c-format
 msgid ""
 "Podcast already present: '%s'\n"
 "\n"
 msgstr ""
 
-#: src/file.c:2198
+#: src/file.c:1913
 #, fuzzy, c-format
 msgid ""
 "Writing to video files not yet supported (%s).\n"
 "\n"
 msgstr "Normalizzazione fallita: tipo di file non supportato.\n"
 
-#: src/file.c:2252 src/file.c:2266
+#: src/file.c:1965 src/file.c:1979
 #, c-format
 msgid "Couldn't change tags of file: %s\n"
 msgstr "Impossibile cambiare il tag del file: %s\n"
 
-#: src/file.c:2550
+#: src/file.c:2076
 #, c-format
 msgid "Could not open '%s' for reading and writing.\n"
 msgstr "Impossibile aprire il file \"%s\" in scrittura e lettura.\n"
 
-#: src/file.c:2557
+#: src/file.c:2083
 #, c-format
 msgid "Could not obtain lock on '%s'.\n"
 msgstr "Impossibile ottenere il lock su '%s'.\n"
 
 #. error!
-#: src/file.c:2574 src/file.c:2583 src/file.c:2594 src/file.c:2604
+#: src/file.c:2100 src/file.c:2109 src/file.c:2120 src/file.c:2130
 #, c-format
 msgid "Malformed line in '%s': %s\n"
 msgstr "Linea malformata in '%s': %s\n"
 
 #. gint id,
 #. gboolean modal,
-#: src/file.c:2633
+#: src/file.c:2159
 msgid "Remove offline playcounts?"
 msgstr "Rimuovere i conta-riproduzione offline?"
 
 #. title
-#: src/file.c:2634
+#: src/file.c:2160
 msgid ""
 "Some tracks played offline could not be found in the iTunesDB. Press 'OK' to "
 "remove them from the offline playcount file, 'Cancel' to keep them."
@@ -1187,107 +2924,107 @@
 "'OK' per rimuoverle dal file conta-riproduzioni offline, 'Cancel' per "
 "tenerle."
 
-#: src/file.c:2651
+#: src/file.c:2177
 #, c-format
 msgid "Error writing to '%s'.\n"
 msgstr "Errore nella scrittura verso '%s'.\n"
 
-#: src/file.c:2700
+#: src/file.c:2232 src/tools.c:269
 #, fuzzy, c-format
 msgid ""
 "Normalization failed: file type not supported (%s).\n"
 "\n"
 msgstr "Normalizzazione fallita: tipo di file non supportato.\n"
 
-#: src/file.c:2715
+#: src/file.c:2248 src/tools.c:286
 #, fuzzy, c-format
 msgid ""
 "Normalization failed: file not available (%s).\n"
 "\n"
 msgstr "Normalizzazione fallita: file non disponibile.\n"
 
-#: src/file_export.c:181
+#: src/file_export.c:182
 #, c-format
 msgid "Skipping existing file with same length: '%s'\n"
 msgstr "Saltato il file esistente con la stessa lunghezza: '%s'\n"
 
-#: src/file_export.c:189
+#: src/file_export.c:190
 #, c-format
 msgid "Overwriting existing file: '%s'\n"
 msgstr "Sovrascrittura del file esistente: '%s'\n"
 
-#: src/file_export.c:206
+#: src/file_export.c:207
 #, c-format
 msgid "Error copying '%s' to '%s': Permission Error (%s)\n"
 msgstr "Errore nella copia di '%s' verso '%s': Errore nei permessi (%s)\n"
 
-#: src/file_export.c:208
+#: src/file_export.c:209
 #, c-format
 msgid "Error copying '%s' to '%s' (%s)\n"
 msgstr "Errore nella copia di '%s' verso '%s' (%s)\n"
 
-#: src/file_export.c:216
+#: src/file_export.c:217
 #, c-format
 msgid "Unable to open '%s' for reading\n"
 msgstr "Impossibile aprire '%s' in lettura\n"
 
-#: src/file_export.c:323
+#: src/file_export.c:327
 #, c-format
 msgid "Could find file for '%s' on the iPod\n"
 msgstr "Impossibile trovare il file per '%s' sull'iPod\n"
 
 #. create the dialog window
-#: src/file_export.c:390 src/file_itunesdb.c:1062 src/tools.c:148
+#: src/file_export.c:395 src/file_itunesdb.c:1230 src/tools.c:359
 msgid "Information"
 msgstr "Informazioni"
 
-#: src/file_export.c:401 src/tools.c:160
+#: src/file_export.c:406 src/tools.c:371
 msgid "Press button to abort."
 msgstr "Premi il bottone per interrompere l'operazione"
 
-#: src/file_export.c:414
+#: src/file_export.c:419
 msgid "copying..."
 msgstr "copia in corsa..."
 
-#: src/file_export.c:468
+#: src/file_export.c:472
 #, c-format
 msgid "Failed to write '%s-%s'\n"
 msgstr "Impossibile scrivere %s-%s\n"
 
-#: src/file_export.c:476
+#: src/file_export.c:485
 #, c-format
 msgid "Copied %d of %d track."
 msgid_plural "Copied %d of %d tracks."
 msgstr[0] "Copiato %d di %d della traccia"
 msgstr[1] "Copiato %d di %d delle tracce"
 
-#: src/file_export.c:494 src/file_itunesdb.c:1326 src/tools.c:307
+#: src/file_export.c:501 src/file_itunesdb.c:1495 src/tools.c:517
 #, c-format
 msgid "%d%% (%d:%02d:%02d left)"
 msgstr "%d%% (%d:%02d:%02d rimasti)"
 
-#: src/file_export.c:503
+#: src/file_export.c:510
 msgid "Some tracks were not copied."
 msgstr "Alcune tracce non sono state copiate."
 
-#: src/file_export.c:560
+#: src/file_export.c:575
 msgid "Export from iPod database not possible in offline mode."
 msgstr ""
 "L'esportazione dal database dell'iPod non è possibile in modalità offline"
 
-#: src/file_export.c:568
+#: src/file_export.c:583
 msgid "Select Export Destination Directory"
 msgstr "Seleziona la directory di destinazione dell'esportazione"
 
-#: src/file_export.c:717
+#: src/file_export.c:732
 msgid "Drag from iPod database not possible in offline mode."
 msgstr "Impossibile selezionare dal database dell'iPod in modalità offline"
 
-#: src/file_export.c:751
+#: src/file_export.c:766
 msgid "The following tracks have to be copied to your harddisk"
 msgstr "Le tracce seguente devono essere copiate sul tuo disco fisso"
 
-#: src/file_export.c:796
+#: src/file_export.c:811
 msgid ""
 "Some tracks were not copied to your harddisk. Only the copied tracks will be "
 "included in the current drag and drop operation.\n"
@@ -1297,21 +3034,21 @@
 "saranno incluse nella operazione di 'drag and drop' attuale.\n"
 "\n"
 
-#: src/file_export.c:992
+#: src/file_export.c:1006
 #, c-format
 msgid ""
 "No valid filename for: %s\n"
 "\n"
 msgstr "Nessuno nome di file valido per: %s\n"
 
-#: src/file_export.c:1008
+#: src/file_export.c:1022
 #, c-format
 msgid "Created playlist with one track."
 msgid_plural "Created playlist with %d tracks."
 msgstr[0] "Creata la playlist con una traccia."
 msgstr[1] "Creata la playlist con %d tracce."
 
-#: src/file_export.c:1015
+#: src/file_export.c:1027
 #, c-format
 msgid ""
 "Could not open '%s' for writing (%s).\n"
@@ -1320,26 +3057,26 @@
 "Impossibile aprire il file '%s' in scrittura (%s).\n"
 "\n"
 
-#: src/file_itunesdb.c:114
+#: src/file_itunesdb.c:115
 #, c-format
 msgid "Matching MD5 checksum for file %d/%d"
 msgstr ""
 
-#: src/file_itunesdb.c:242
+#: src/file_itunesdb.c:223
 msgid "Could not open \"iTunesDB.ext\" for reading extended info.\n"
 msgstr ""
 "Impossibile aprire \"iTunesDB.ext\" per leggere le informazioni estese.\n"
 
-#: src/file_itunesdb.c:249
+#: src/file_itunesdb.c:230
 msgid "Could not create hash value from itunesdb\n"
 msgstr "Impossibile creare il valore di hash dal itunesdb\n"
 
-#: src/file_itunesdb.c:263
+#: src/file_itunesdb.c:244
 #, c-format
 msgid "Error while reading extended info: %s\n"
 msgstr "Errore nella lettura delle informazioni estese: %s\n"
 
-#: src/file_itunesdb.c:280
+#: src/file_itunesdb.c:261
 #, c-format
 msgid ""
 "iTunesDB '%s' does not match checksum in extended information file '%s'\n"
@@ -1353,7 +3090,7 @@
 "l'operazione richiede un pò di tempo.\n"
 "\n"
 
-#: src/file_itunesdb.c:292
+#: src/file_itunesdb.c:273
 #, c-format
 msgid ""
 "%s:\n"
@@ -1362,7 +3099,7 @@
 "%s:\n"
 "Era atteso \"itunesdb_hash=\" ma ho trovato:'%s'\n"
 
-#: src/file_itunesdb.c:352
+#: src/file_itunesdb.c:333
 #, c-format
 msgid ""
 "%s:\n"
@@ -1371,7 +3108,7 @@
 "%s:\n"
 "Errore nel formato: %s\n"
 
-#: src/file_itunesdb.c:407
+#: src/file_itunesdb.c:377
 msgid ""
 "No MD5 checksums on individual tracks are available.\n"
 "\n"
@@ -1387,7 +3124,7 @@
 "altri programmi rispetto a gtkpod.\n"
 "\n"
 
-#: src/file_itunesdb.c:462
+#: src/file_itunesdb.c:439
 msgid ""
 "Extended info will not be used. If you have non-transferred tracks,\n"
 "these will be lost.\n"
@@ -1395,15 +3132,15 @@
 "Le informazioni estese non verranno usate. Se hai delle tracce non "
 "trasferite, verranno perse.\n"
 
-#: src/file_itunesdb.c:470
+#: src/file_itunesdb.c:447
 msgid "Offline iPod database successfully imported"
 msgstr "Database offline dell'iPod importato con successo"
 
-#: src/file_itunesdb.c:473
+#: src/file_itunesdb.c:450
 msgid "Local database successfully imported"
 msgstr "Database locale importato con successo"
 
-#: src/file_itunesdb.c:481
+#: src/file_itunesdb.c:458
 #, c-format
 msgid ""
 "Offline iPod database import failed: '%s'\n"
@@ -1412,7 +3149,7 @@
 "Fallita l'importazione del Database offline: '%s' \n"
 "\n"
 
-#: src/file_itunesdb.c:485
+#: src/file_itunesdb.c:462
 #, c-format
 msgid ""
 "Local database import failed: '%s'\n"
@@ -1421,7 +3158,7 @@
 "Importazione del database locale fallito: '%s'\n"
 "\n"
 
-#: src/file_itunesdb.c:492
+#: src/file_itunesdb.c:469
 msgid ""
 "Offline iPod database import failed: \n"
 "\n"
@@ -1429,7 +3166,7 @@
 "Fallita l'importazione del Database offline del iPod: \n"
 "\n"
 
-#: src/file_itunesdb.c:495
+#: src/file_itunesdb.c:472
 msgid ""
 "Local database import failed: \n"
 "\n"
@@ -1437,7 +3174,7 @@
 "Fallita l'importazione del Database locale: \n"
 "\n"
 
-#: src/file_itunesdb.c:502 src/file_itunesdb.c:550
+#: src/file_itunesdb.c:479
 #, c-format
 msgid ""
 "'%s' does not exist. Import aborted.\n"
@@ -1446,15 +3183,15 @@
 "'%s' non esiste. Importazione abortita.\n"
 "\n"
 
-#: src/file_itunesdb.c:521
+#: src/file_itunesdb.c:502
 msgid "Extended info will not be used.\n"
 msgstr "Le informazioni estese non verranno usate.\n"
 
-#: src/file_itunesdb.c:528
+#: src/file_itunesdb.c:509
 msgid "iPod Database Successfully Imported"
 msgstr "Database iPod importato con successo"
 
-#: src/file_itunesdb.c:535
+#: src/file_itunesdb.c:516
 #, c-format
 msgid ""
 "iPod Database Import Failed: '%s'\n"
@@ -1463,7 +3200,7 @@
 "Importazione del database dell'iPod fallito: '%s'\n"
 "\n"
 
-#: src/file_itunesdb.c:541
+#: src/file_itunesdb.c:522
 msgid ""
 "iPod Database Import Failed.\n"
 "\n"
@@ -1471,18 +3208,37 @@
 "Importazione del database dell'iPod fallito.\n"
 "\n"
 
-#: src/file_itunesdb.c:890
+#: src/file_itunesdb.c:531
+#, fuzzy, c-format
+msgid ""
+"'%s' (or similar) does not exist. Import aborted.\n"
+"\n"
+msgstr ""
+"'%s' non esiste. Importazione abortita.\n"
+"\n"
+
+#: src/file_itunesdb.c:817
 #, c-format
+msgid ""
+"Could not find iPod directory structure at '%s'.\n"
+"If you are sure that the iPod is properly mounted at '%s', gtkpod can create "
+"the directory structure for you.\n"
+"\n"
+"Do you want to create the directory structure now?\n"
+msgstr ""
+
+#: src/file_itunesdb.c:1071
+#, c-format
 msgid "Could not open \"%s\" for writing extended info.\n"
 msgstr ""
 "Impossibile aprire \"%s\" per la scrittura delle informazioni estese.\n"
 
-#: src/file_itunesdb.c:905
+#: src/file_itunesdb.c:1086
 msgid "Aborted writing of extended info.\n"
 msgstr ""
 "Impossibile aprire \"%s\" per la scrittura delle informazioni estese.\n"
 
-#: src/file_itunesdb.c:1073
+#: src/file_itunesdb.c:1241
 msgid ""
 "Press button to abort.\n"
 "Export can be continued at a later time."
@@ -1490,26 +3246,26 @@
 "Premi il bottone per abortire.\n"
 "l'esportazione può essere ultimata in un secondo momento."
 
-#: src/file_itunesdb.c:1142
+#: src/file_itunesdb.c:1310
 msgid "deleting..."
 msgstr "cancellazione in corso..."
 
-#: src/file_itunesdb.c:1246
+#: src/file_itunesdb.c:1413
 msgid "preparing to copy..."
 msgstr "copia in preparazione..."
 
-#: src/file_itunesdb.c:1309
+#: src/file_itunesdb.c:1480
 #, c-format
 msgid "Copied %d of %d new track."
 msgid_plural "Copied %d of %d new tracks."
 msgstr[0] "Copiato %d di %d di una nuova traccia"
 msgstr[1] "Copiato %d di %d di nuove tracce"
 
-#: src/file_itunesdb.c:1336
+#: src/file_itunesdb.c:1506
 msgid "Some tracks were not written to iPod. Export aborted!"
 msgstr "Alcune tracce non sono state scritte sull'iPod. Esportazione abortita!"
 
-#: src/file_itunesdb.c:1389
+#: src/file_itunesdb.c:1557
 #, c-format
 msgid ""
 "You did not import the existing iTunesDB ('%s'). This is most likely "
@@ -1526,7 +3282,7 @@
 "interrompere l'operazione. Se la interrompi, puoi importare il database "
 "esistente prima di richiamare di nuovo questa funzione.\n"
 
-#: src/file_itunesdb.c:1419
+#: src/file_itunesdb.c:1588
 msgid ""
 "iPod directory structure must be present before synching to the iPod can be "
 "performed.\n"
@@ -1534,60 +3290,63 @@
 "La struttura delle directory dell'iPod deve essere presente prima che la "
 "sincronizzazione verso l'iPod possa avere inizio.\n"
 
-#: src/file_itunesdb.c:1428
+#: src/file_itunesdb.c:1597
 msgid "Some tracks could not be deleted from the iPod. Export aborted!"
 msgstr ""
 "Alcune tracce non possono essere cancellate dall'iPod. Esportazione abortita!"
 
-#: src/file_itunesdb.c:1444
-msgid "Now writing iTunesDB. Please wait..."
+#: src/file_itunesdb.c:1613
+#, fuzzy
+msgid "Now writing database. Please wait..."
 msgstr "Scrittura del iTunesDB in corso. Attendere prego..."
 
-#: src/file_itunesdb.c:1490
+#: src/file_itunesdb.c:1659
 #, c-format
 msgid "Extended information file not deleted: '%s'"
 msgstr "Il file delle informazioni estese non è stato cancellato: '%s'"
 
-#: src/file_itunesdb.c:1577
-msgid "iPod Database Saved"
+#: src/file_itunesdb.c:1745
+#, fuzzy, c-format
+msgid "%s: Database saved"
 msgstr "Database iPod salvato"
 
-#: src/file_itunesdb.c:1636
-msgid "Syncing contacts, calendar and notes..."
-msgstr "Sincronizzazione di contatti, calendari e note..."
+#: src/file_itunesdb.c:1749
+#, c-format
+msgid "%s: Changes saved"
+msgstr ""
 
-#: src/fileselection.c:123
+#: src/fileselection.c:127
 msgid "Successfully added files"
 msgstr "File aggiunti con successo"
 
-#: src/fileselection.c:125
+#: src/fileselection.c:129
 msgid "Some files were not added successfully"
 msgstr "Alcuni file non sono stati aggiunti con successo"
 
 #. Create the file chooser, and handle the response
-#: src/fileselection.c:148
+#: src/fileselection.c:157
 msgid "Add Files"
 msgstr "Aggiungi _File"
 
 #. Create the file chooser, and handle the response
-#: src/fileselection.c:227
+#: src/fileselection.c:250
 msgid "Add Playlists"
 msgstr "Aggiungi _Playlist"
 
 #. Create the file chooser, and handle the response
-#: src/fileselection.c:270
+#: src/fileselection.c:297
 msgid "Set Cover"
 msgstr ""
 
-#: src/fileselection.c:491
+#: src/fileselection.c:718
 msgid "Select directory to add recursively"
 msgstr "Seleziona una directory da aggiungere ricorsivamente"
 
-#: src/fileselection.c:759
+#: src/fileselection.c:989
 msgid "Ok"
 msgstr "Ok"
 
-#: src/fileselection.c:768
+#: src/fileselection.c:998
 msgid "Cancel"
 msgstr "Cancella"
 
@@ -1650,55 +3409,73 @@
 msgid "%s: option `-W %s' doesn't allow an argument\n"
 msgstr "%s: l'opzione `-W %s' non ammette argomenti\n"
 
-#: src/info.c:377
+#: src/info.c:383
 msgid "n/c"
 msgstr "n.d."
 
-#: src/info.c:382 src/info.c:793
+#: src/info.c:388 src/info.c:835
 msgid "offline"
 msgstr "offline"
 
-#: src/info.c:469
+#: src/info.c:483
 #, c-format
 msgid " P:%d T:%d/%d"
 msgstr " P:%d S:%d/%d"
 
-#: src/info.c:732
+#: src/info.c:777
 msgid "B"
 msgstr "B"
 
-#: src/info.c:732
+#: src/info.c:777
 msgid "kB"
 msgstr "kB"
 
-#: src/info.c:732
+#: src/info.c:777
 msgid "TB"
 msgstr "TB"
 
-#: src/info.c:778
+#: src/info.c:820
 #, c-format
 msgid " %s Free"
 msgstr "%s Liberi"
 
-#: src/info.c:783
+#: src/info.c:825
 #, c-format
 msgid " %s Pending"
 msgstr " %s Pendenti"
 
-#: src/info.c:788
+#: src/info.c:830
 msgid " disconnected"
 msgstr " scollegato"
 
-#: src/md5.c:159
+#: src/info.c:881
+#, fuzzy
+msgid "No database or playlist selected"
+msgstr "Nessuna playlist selezionata"
+
+#: src/info.c:886
+msgid "No tracks selected"
+msgstr "Nessuna traccia selezionata."
+
+#: src/info.c:891
+msgid "No playlist selected"
+msgstr "Nessuna playlist selezionata"
+
+#: src/info.c:896
+#, fuzzy
+msgid "No iPod or iPod playlist selected"
+msgstr "Nessuna playlist selezionata"
+
+#: src/md5.c:187
 msgid "Hashed file is 0 bytes long\n"
 msgstr "Il file di cui è stato calcolato l'hash è lungo 0 byte\n"
 
-#: src/md5.c:208
+#: src/md5.c:240
 #, c-format
 msgid "Could not open '%s' to calculate MD5 checksum: %s\n"
 msgstr "Impossibile aprire '%s' per calcolare il checksum MD5: %s\n"
 
-#: src/misc.c:78
+#: src/misc.c:79
 #, c-format
 msgid ""
 "gtkpod Version %s: Cross-Platform Multi-Lingual Interface to Apple's iPod"
@@ -1707,7 +3484,7 @@
 "gtkpod Versione %s: Interfaccia per l'Apple iPod (tm) multi-lingua e multi-"
 "piattaforma"
 
-#: src/misc.c:82
+#: src/misc.c:83
 msgid ""
 "(C) 2002 - 2005\n"
 "Jorg Schuler (jcsjcs at users dot sourceforge dot net)\n"
@@ -1718,7 +3495,7 @@
 "Jörg Schuler (jcsjcs at users dot sourceforge dot net)\n"
 "Corey Donohoe (atmos at atmos dot org)\n"
 
-#: src/misc.c:88
+#: src/misc.c:89
 msgid ""
 "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 "
@@ -1737,7 +3514,7 @@
 "\n"
 msgstr ""
 
-#: src/misc.c:96
+#: src/misc.c:97
 msgid ""
 "Patches were supplied by the following people (list may be incomplete -- "
 "please contact me)\n"
@@ -1747,22 +3524,22 @@
 "incompleta -- per favore contattatemi)\n"
 "\n"
 
-#: src/misc.c:98
+#: src/misc.c:99
 msgid "Ramesh Dharan: Multi-Edit (edit tags of several tracks in one run)\n"
 msgstr ""
 "Ramesh Dharan: Multi-Edit (modifica i tag di diverse tracce in una volta)\n"
 
-#: src/misc.c:100
+#: src/misc.c:101
 msgid "Hiroshi Kawashima: Japanese charset autodetecion feature\n"
 msgstr ""
 "Hiroshi Kawashima: riconoscimento della codifica di carattere Giapponese\n"
 
-#: src/misc.c:102
+#: src/misc.c:103
 msgid "Adrian Ulrich: porting of playlist code from mktunes.pl to itunesdb.c\n"
 msgstr ""
 "Adrian Ulrich: porting del codice della playlist da mktunes.pl a itunesdb.c\n"
 
-#: src/misc.c:104
+#: src/misc.c:105
 msgid ""
 "Walter Bell: correct handling of DND URIs with escaped characters and/or cr/"
 "newlines at the end\n"
@@ -1770,17 +3547,17 @@
 "Waiter Bell: trattamento corretto dei DND URI con la presenza di caratteri "
 "di escape e/o cr/nuova linea alla fine\n"
 
-#: src/misc.c:106
+#: src/misc.c:107
 msgid "Sam Clegg: user defined filenames when exporting tracks from the iPod\n"
 msgstr ""
 "Sam Clegg: nomi dei file decisi dall'utente per l'esportazione delle tracce "
 "dall'iPod\n"
 
-#: src/misc.c:108
+#: src/misc.c:109
 msgid "Chris Cutler: automatic creation of various playlist types\n"
 msgstr "Chris Cutler: creazione automatica di diversi tipi di playlist\n"
 
-#: src/misc.c:110
+#: src/misc.c:111
 msgid ""
 "Graeme Wilford: reading and writing of the 'Composer' ID3 tags, progress "
 "dialogue during sync\n"
@@ -1788,7 +3565,7 @@
 "Graeme Wilford: lettura e scrittura del tag ID3 'Compositore', barra di "
 "avanzamento durante la sincronizzazione\n"
 
-#: src/misc.c:112
+#: src/misc.c:113
 msgid ""
 "Edward Matteucci: debugging, special playlist creation, most of the volume "
 "normalizing code\n"
@@ -1796,24 +3573,24 @@
 "Edward Matteucci: debugging, creazione delle playlist speciali,buona parte "
 "del codice relativo alla normalizzazione\n"
 
-#: src/misc.c:114
+#: src/misc.c:115
 msgid "Jens Lautenbach: some optical improvements\n"
 msgstr "Jens Lautenbach: alcuni miglioramenti ottici\n"
 
-#: src/misc.c:116
+#: src/misc.c:117
 msgid "Alex Tribble: iPod eject patch\n"
 msgstr "Alex Tribble: patch per l'espulsione del iPod\n"
 
-#: src/misc.c:118
+#: src/misc.c:119
 msgid "Yaroslav Halchenko: Orphaned and dangling tracks handling\n"
 msgstr "Yaroslav Halchenko: Gestione delle tracce orfane e pendenti\n"
 
-#: src/misc.c:120
+#: src/misc.c:121
 msgid ""
 "Andrew Huntwork: Filename case sensitivity fix and various other bugfixes\n"
 msgstr "Andrew Huntwork: Filename case sensitivity fix e vari altri bugfixes\n"
 
-#: src/misc.c:122
+#: src/misc.c:123
 msgid ""
 "Ero Carrera: Filename validation and quick sync when copying tracks from the "
 "iPod\n"
@@ -1821,25 +3598,25 @@
 "Ero Carrera: Validazione dei nomi dei file e sincronizzazione rapida nella "
 "copia delle tracce dall'iPod\n"
 
-#: src/misc.c:124
+#: src/misc.c:125
 msgid "Jens Taprogge: Support for LAME's replay gain tag to normalize volume\n"
 msgstr ""
 "Jens Taprogge: Supporto per il tag per il guadagno di riproduzione di LAME "
 "per normalizzare il volume\n"
 
-#: src/misc.c:126
+#: src/misc.c:127
 msgid "Armando Atienza: Support with external playcounts\n"
 msgstr "Armando Atienza: Supporto per i conta-riproduzioni esterni\n"
 
-#: src/misc.c:128
+#: src/misc.c:129
 msgid "D.L. Sharp: Support for m4b files (bookmarkable AAC files)\n"
 msgstr "D.L. Sharp: Supporto per i file m4b (file AAC con il segnalibro)\n"
 
-#: src/misc.c:130
+#: src/misc.c:131
 msgid "Jim Hall: Decent INSTALL file\n"
 msgstr "Jim Hall: File INSTALL decente\n"
 
-#: src/misc.c:132
+#: src/misc.c:133
 msgid ""
 "Juergen Helmers, Markus Gaugusch: Conversion scripts to sync calendar/"
 "contacts to the iPod\n"
@@ -1848,11 +3625,11 @@
 "sincronizzarei calendari/contatti con l'iPod\n"
 
 #. J"urgen!
-#: src/misc.c:134
+#: src/misc.c:135
 msgid "Flavio Stanchina: bugfixes\n"
 msgstr "Flavio Stanchina: bugfixes\n"
 
-#: src/misc.c:136
+#: src/misc.c:137
 msgid ""
 "Chris Micacchi: when sorting ignore 'the' and similar at the beginning of "
 "the title\n"
@@ -1860,12 +3637,12 @@
 "Chris Micacchi: ignora 'the' e cose simili all'inizio del titolo durante "
 "l'ordinamento\n"
 
-#: src/misc.c:138
+#: src/misc.c:139
 msgid "Steve Jay: use statvfs() instead of df (better portability, faster)\n"
 msgstr ""
 "Steve Jay: usa statvfs() invece di df (migliore portabilità, più veloce)\n"
 
-#: src/misc.c:141
+#: src/misc.c:142
 msgid ""
 "Christoph Kunz: address compatibility issues when writing id3v2.4 type mp3 "
 "tags\n"
@@ -1873,61 +3650,64 @@
 "Christoph Kunz: risoluzione dei problemi di compatibilità nella scrittura "
 "dei tag mp3 di tipo id3v2.4\n"
 
-#: src/misc.c:144
+#: src/misc.c:145
+#, fuzzy
 msgid ""
-"James Ligget: replacement of old GTK file selection dialogs with new GTK "
-"filechooser dialogs\n"
+"James Liggett:\n"
+"     replacement of old GTK file selection dialogs with new GTK filechooser "
+"dialogs\n"
+"     refactored user preferences system.\n"
 msgstr ""
 "James Ligget: Sostituzione della 'GTK file selection dialogs' con la nuova "
 "'GTK filechooser dialogs'\n"
 
-#: src/misc.c:147
+#: src/misc.c:150
 msgid "Daniel Kercher: sync scripts for abook and webcalendar\n"
 msgstr ""
 "Daniel Kercher: script per la sincronizzazione di abook e webcalendar\n"
 
-#: src/misc.c:150
+#: src/misc.c:153
 msgid "Clinton Gormley: sync scripts for thunderbird\n"
 msgstr "Clinton Gormley: script di sincronizzazione per thunderbird\n"
 
-#: src/misc.c:153
+#: src/misc.c:156
 #, fuzzy
 msgid "Sebastien Beridot: sync script for ldif addressbook format\n"
 msgstr ""
 "Sebastien Beridot: script di sincronizzazione per la rubrica in formato  "
 "ldif \n"
 
-#: src/misc.c:156
+#: src/misc.c:159
 #, fuzzy
 msgid "Sebastian Scherer: sync script for kNotes\n"
 msgstr "Sebastian Scherer: script di sincronizzazione per kNotes\n"
 
-#: src/misc.c:159
+#: src/misc.c:162
 msgid "Nick Piper: sync script for Palm, type-ahead search\n"
 msgstr ""
 
-#: src/misc.c:162
+#: src/misc.c:165
 msgid "Uwe Hermann: help with support for iPod Video\n"
 msgstr ""
 
-#: src/misc.c:165
+#: src/misc.c:168
 msgid ""
 "Iain Benson: support for compilation tag in mp3 files and separate display "
 "of compilations in the sort tab.\n"
 msgstr ""
 
-#: src/misc.c:167
+#: src/misc.c:170
 msgid ""
 "Nicolas Chariot: icons of buttons\n"
 "\n"
 "\n"
 msgstr ""
 
-#: src/misc.c:171
+#: src/misc.c:174
 msgid "This program borrows code from the following projects:\n"
 msgstr "Questo programma prende in prestito codice dai seguenti progetti:\n"
 
-#: src/misc.c:173
+#: src/misc.c:176
 msgid ""
 "    gnutools: (mktunes.pl, ported to C) reading and writing of iTunesDB "
 "(http://www.gnu.org/software/gnupod/)\n"
@@ -1935,7 +3715,7 @@
 "    gnutools: (mktunes.pl, portato dal C) lettura e scrittura del iTunesDB "
 "(http://www.gnu.org/software/gnupod/)\n"
 
-#: src/misc.c:175
+#: src/misc.c:178
 msgid ""
 "    iPod.cpp, iPod.h by Samuel Wood (sam dot wood at gmail dot com): some "
 "code for smart playlists is based on his C++-classes.\n"
@@ -1943,83 +3723,73 @@
 "    iPod.cpp, iPod.h da Samuel Wood (sam dot wood at gmail dot com): un po' "
 "di codice per le playlist intelligenti è basata su classi in C++.\n"
 
-#: src/misc.c:177
+#: src/misc.c:180
 msgid "    mp3info:  mp3 playlength detection (http://ibiblio.org/mp3info/)\n"
 msgstr ""
 "mp3info:  rilevazione della durata dei brani mp3 (http://ibiblio.org/"
 "mp3info/)\n"
 
-#: src/misc.c:179
+#: src/misc.c:182
 msgid ""
 "    xmms:     dirbrowser, mp3 playlength detection (http://www.xmms.org)\n"
 msgstr ""
 "    xmms:     browser directory, rilevazione della durata dei brani mp3 "
 "(http://www.xmms.org)\n"
 
-#: src/misc.c:182
+#: src/misc.c:185
 msgid ""
 "The GUI was created with the help of glade-2 (http://glade.gnome.org/).\n"
 msgstr ""
 "La GUI è stata creata con l'aiuto di glade-2 (http://glade.gnome.org/).\n"
 
-#: src/misc.c:197
+#: src/misc.c:200
 msgid "French:   David Le Brun (david at dyn-ns dot net)\n"
 msgstr "Francese:   David Le Brun (david at dyn-ns dot net)\n"
 
-#: src/misc.c:199
+#: src/misc.c:202
 msgid "German:   Jorg Schuler (jcsjcs at users dot sourceforge dot net)\n"
 msgstr "Tedesco:   Jorg Schuler (jcsjcs at users dot sourceforge dot net)\n"
 
-#: src/misc.c:201
+#: src/misc.c:204
 msgid "Hebrew: Assaf Gillat (gillata at gmail dot com)\n"
 msgstr "Ebraico: Assaf Gillat (gillata at gmail dot com)\n"
 
-#: src/misc.c:203
+#: src/misc.c:206
 msgid ""
 "Italian:  Edward Matteucci (edward_matteucc at users dot sourceforge dot "
 "net)\n"
 msgstr ""
 "Italiano:  Edward Matteucci (edward_matteucc at users dot sourceforge dot)\n"
 
-#: src/misc.c:205
+#: src/misc.c:208
 msgid "Japanese: Ayako Sano\n"
 msgstr "Giapponese: Ayako Sano\n"
 
-#: src/misc.c:207
+#: src/misc.c:210
 msgid "Japanese: Kentaro Fukuchi (fukuchi at users dot sourceforge dot net)\n"
 msgstr ""
 "Giapponese: Kentaro Fukuchi (fukuchi at users dot sourceforge dot net)\n"
 
-#: src/misc.c:209
+#: src/misc.c:212
 msgid "Swedish: Stefan Asserhall (stefan asserhall at comhem dot se)\n"
 msgstr "Svedese: Stefan Asserhall (stefan asserhall at comhem dot se)\n"
 
-#: src/misc.c:332
-#, c-format
-msgid "Could not delete backup file: \"%s\"\n"
-msgstr "Impossibile cancellare il file di backup: \"%s\"\n"
+#: src/misc.c:936
+#, fuzzy, c-format
+msgid "Could not process '%s' (no filename available)"
+msgstr "nessun nome di file disponibile"
 
-#: src/misc.c:452
+#: src/misc.c:1084
 #, c-format
-msgid "Unmounting of '%s' (%s) unsuccessful."
-msgstr "Smontaggio di '%s' (%s) fallito."
-
-#: src/misc.c:456
-#, c-format
-msgid "Unmounting of '%s' unsuccessful."
-msgstr "Smontaggio di '%s' fallito."
-
-#: src/misc.c:1219
-#, c-format
 msgid "Unknown token '%%%c' in template '%s'"
 msgstr "Token sconosciuto '%%%c' nella maschera '%s'"
 
-#: src/misc.c:1301
+#: src/misc.c:1166
 #, c-format
 msgid "Template ('%s') does not match file type '%s'\n"
 msgstr "La maschera ('%s') non coincide con il file '%s'\n"
 
-#: src/misc.c:1382
+#: src/misc.c:1247
 #, c-format
 msgid "Error creating %s: %s\n"
 msgstr "Errore nella creazione di %s: %s\n"
@@ -2035,7 +3805,7 @@
 msgid "The following has occured:"
 msgstr "Si è verificato l'errore seguente:"
 
-#: src/misc_confirm.c:124
+#: src/misc_confirm.c:123
 msgid ""
 "Are you sure you want to delete the following track completely from your "
 "iPod? The number of playlists this track is a member of is indicated in "
@@ -2053,13 +3823,13 @@
 "Il numero di playlist di cui ognuna di queste tracce fa parte è indicata tra "
 "parentesi."
 
-#: src/misc_confirm.c:128
+#: src/misc_confirm.c:127
 msgid "Delete Track Completely from iPod?"
 msgid_plural "Delete Tracks Completey from iPod?"
 msgstr[0] "Cancella completamente una traccia dall'iPod"
 msgstr[1] "Cancella completamente le tracce dall'iPod"
 
-#: src/misc_confirm.c:138 src/misc_confirm.c:178
+#: src/misc_confirm.c:138 src/misc_confirm.c:179
 #, c-format
 msgid ""
 "Are you sure you want to remove the following track from the playlist \"%s\"?"
@@ -2073,7 +3843,7 @@
 "Sei sicuro di voler eliminare le seguenti tracce\n"
 "dalla playlist \"%s\"?"
 
-#: src/misc_confirm.c:142 src/misc_confirm.c:182
+#: src/misc_confirm.c:142 src/misc_confirm.c:183
 msgid "Remove Track From Playlist?"
 msgid_plural "Remove Tracks From Playlist?"
 msgstr[0] "Cancella la traccia dalla playlist?"
@@ -2103,7 +3873,7 @@
 msgstr[0] "Cancella la traccia dal disco fisso?"
 msgstr[1] "Cancella le tracce dal disco fisso?"
 
-#: src/misc_confirm.c:192
+#: src/misc_confirm.c:193
 msgid ""
 "Are you sure you want to remove the following track completely from your "
 "local database? The number of playlists this track is a member of is "
@@ -2121,7 +3891,7 @@
 "database locale? Il numero di playlist di cui ognuna di queste tracce fa "
 "parte è indicata tra parentesi."
 
-#: src/misc_confirm.c:196
+#: src/misc_confirm.c:197
 msgid "Remove Track from Local Database?"
 msgid_plural "Remove Tracks from Local Database?"
 msgstr[0] "Rimuovere le traccia dal database locale?"
@@ -2155,45 +3925,34 @@
 msgstr[0] "Cancella la traccia dal database locale"
 msgstr[1] "Cancella %d tracce dal database locale"
 
-#. no playlist??? Cannot happen, but...
-#. no playlist selected
-#: src/misc_confirm.c:336 src/misc_confirm.c:432 src/misc_confirm.c:674
-#: src/misc_track.c:1509
-msgid "No playlist selected."
-msgstr "Nessuna playlist selezionata."
-
-#. no tracks selected
-#: src/misc_confirm.c:345
-msgid "No tracks selected."
-msgstr "Nessuna traccia selezionata."
-
-#: src/misc_confirm.c:448
+#: src/misc_confirm.c:438
 msgid "Cannot remove entry 'All'"
 msgstr "Impossibile rimuovere la voce 'Tutti'"
 
-#: src/misc_confirm.c:541
+#: src/misc_confirm.c:532
 #, c-format
 msgid "Removed all %d tracks from the iPod"
 msgstr "Eliminate tutte le %d tracce dall'iPod"
 
-#: src/misc_confirm.c:546
+#: src/misc_confirm.c:537
 #, fuzzy
 msgid "Removed all podcasts from the iPod"
 msgstr "Eliminate tutte le %d tracce dall'iPod"
 
-#: src/misc_confirm.c:556 src/misc_confirm.c:626
+#: src/misc_confirm.c:546 src/misc_confirm.c:620
 #, c-format
 msgid "Deleted playlist '%s' including %d member track"
 msgid_plural "Deleted playlist '%s' including %d member tracks"
 msgstr[0] "Cancellata la playlist '%s' con la %d traccia appartenente."
 msgstr[1] "Cancellata la playlist '%s' con le %d tracce appartenenti."
 
-#: src/misc_confirm.c:570 src/misc_confirm.c:640
+#. first use playlist name
+#: src/misc_confirm.c:562 src/misc_confirm.c:636
 #, c-format
 msgid "Deleted playlist '%s'"
 msgstr "Playlist cancellata '%s'"
 
-#: src/misc_confirm.c:603
+#: src/misc_confirm.c:596
 #, c-format
 msgid "Deleted playlist '%s' including %d member track on harddisk"
 msgid_plural "Deleted playlist '%s' including %d member tracks on harddisk"
@@ -2202,21 +3961,21 @@
 msgstr[1] ""
 "Cancellata la playlist '%s' con le %d tracce appartenenti sul disco fisso."
 
-#: src/misc_confirm.c:618
+#: src/misc_confirm.c:613
 #, c-format
 msgid "Removed all %d tracks from the database"
 msgstr "Rimosse tutte le %d tracce dal database"
 
-#: src/misc_confirm.c:693
+#: src/misc_confirm.c:691
 msgid "Are you sure you want to remove all tracks from your iPod?"
 msgstr "Sei sicuro di voler eliminare tutte le tracce dal tuo iPod?"
 
-#: src/misc_confirm.c:698
+#: src/misc_confirm.c:696
 #, fuzzy
 msgid "Are you sure you want to remove all podcasts from your iPod?"
 msgstr "Sei sicuro di voler eliminare tutte le tracce dal tuo iPod?"
 
-#: src/misc_confirm.c:706
+#: src/misc_confirm.c:704
 #, c-format
 msgid ""
 "Are you sure you want to delete playlist '%s' and the following track "
@@ -2235,12 +3994,12 @@
 "seguenti dal tuo iPod? Il numero di playlist in cui presente ogni traccia "
 "�indicato tra parentesi."
 
-#: src/misc_confirm.c:717 src/misc_confirm.c:772
+#: src/misc_confirm.c:715 src/misc_confirm.c:770
 #, c-format
 msgid "Are you sure you want to delete the playlist '%s'?"
 msgstr "Sei sicuro di voler cancellare la playlist '%s'"
 
-#: src/misc_confirm.c:743
+#: src/misc_confirm.c:741
 #, c-format
 msgid ""
 "Are you sure you want to delete playlist '%s' and remove the following track "
@@ -2259,11 +4018,11 @@
 "disco fisso? Il numero di playlist in cui presente ogni traccia �indicato "
 "tra parentesi."
 
-#: src/misc_confirm.c:751
+#: src/misc_confirm.c:749
 msgid "Are you sure you want to remove all tracks from the database?"
 msgstr "Sei sicuro di voler eliminare tutte le tracce dal database?"
 
-#: src/misc_confirm.c:760
+#: src/misc_confirm.c:758
 #, c-format
 msgid ""
 "Are you sure you want to delete playlist '%s' and remove the following track "
@@ -2282,28 +4041,7 @@
 "seguente dal database? Il numero di playlist in cui �presen ognita traccia "
 "�indicato tra parensi"
 
-#: src/misc_confirm.c:960
-#, c-format
-msgid "Problem creating iPod directory: '%s'."
-msgstr "Problemi nella creazione delle directory dell'iPod: '%s'."
-
-#: src/misc_confirm.c:962
-#, c-format
-msgid "Successfully created iPod directories in '%s'."
-msgstr "Directory dell'iPod create con successo ('%s')."
-
-#. gint id,
-#. gboolean modal,
-#: src/misc_confirm.c:1001
-msgid "Create iPod directories"
-msgstr "Crea le directory dell'iPod"
-
-#. title
-#: src/misc_confirm.c:1002
-msgid "OK to create the following directories?"
-msgstr "Creare le directory seguenti?"
-
-#: src/misc_confirm.c:1066
+#: src/misc_confirm.c:859
 msgid ""
 "Data has been changed and not been saved.\n"
 "OK to exit gtkpod?"
@@ -2395,24 +4133,47 @@
 msgid "Checked"
 msgstr ""
 
-#: src/misc_conversion.c:108
+#. 35
+#: src/misc_conversion.c:96
+#, fuzzy
+msgid "Start time"
+msgstr "Durata"
+
+#: src/misc_conversion.c:97
+#, fuzzy
+msgid "Stop time"
+msgstr "Stop"
+
+#: src/misc_conversion.c:98
+msgid "Remember Playback Position"
+msgstr ""
+
+#: src/misc_conversion.c:99
+msgid "Skip when Shuffling"
+msgstr ""
+
+#: src/misc_conversion.c:100
+msgid "Artwork Path"
+msgstr ""
+
+#: src/misc_conversion.c:113
 msgid "Name of file on PC, if available"
 msgstr "Nome del file sul pc, se disponibile"
 
-#: src/misc_conversion.c:109
+#: src/misc_conversion.c:114
 msgid "Name of file on the iPod"
 msgstr "Nome del file sull'iPod"
 
 #. 10
-#: src/misc_conversion.c:111
+#: src/misc_conversion.c:116
 msgid "Track Nr. and total number of tracks on CD"
 msgstr "Num. Traccia e numero totale delle tracce sul CD"
 
-#: src/misc_conversion.c:112
+#: src/misc_conversion.c:117
 msgid "Whether the file has already been transferred to the iPod or not"
 msgstr "se il file è stato già trasferito sull'iPod"
 
-#: src/misc_conversion.c:118
+#: src/misc_conversion.c:123
 msgid ""
 "Supposedly something that tells the iPod to increase or decrease the "
 "playback speed"
@@ -2420,32 +4181,32 @@
 "Probabilmente qualcosa che dice all'iPod di aumentare o diminuire la "
 "velocità di riproduzione"
 
-#: src/misc_conversion.c:120
+#: src/misc_conversion.c:125
 msgid "Number of times the track has been played"
 msgstr "Numero di volte in cui la traccia è stata riprodotta"
 
-#: src/misc_conversion.c:121
+#: src/misc_conversion.c:126
 msgid "Star rating from 0 to 5"
 msgstr "Votazione a stelle da 0 a 5"
 
-#: src/misc_conversion.c:122
+#: src/misc_conversion.c:127
 msgid "Date and time track has been added"
 msgstr "Data e ora in cui la traccia è stata aggiunta"
 
 #. 20
-#: src/misc_conversion.c:123
+#: src/misc_conversion.c:128
 msgid "Date and time track has last been played"
 msgstr "Data e ora in cui la traccia è stata riprodotta l'ultima volta"
 
-#: src/misc_conversion.c:124
+#: src/misc_conversion.c:129
 msgid "Date and time track has last been modified"
 msgstr "Data e ora in cui la traccia è stata modificat l'ultima voltaa"
 
-#: src/misc_conversion.c:125
+#: src/misc_conversion.c:130
 msgid "Manual volume adjust"
 msgstr "Aggiustamento manuale del volume"
 
-#: src/misc_conversion.c:126
+#: src/misc_conversion.c:131
 msgid ""
 "Volume adjust in dB (replay gain) -- you need to activate 'soundcheck' on "
 "the iPod"
@@ -2454,86 +4215,82 @@
 "attivare 'soundcheck' sull'iPod"
 
 #. 25
-#: src/misc_conversion.c:129
+#: src/misc_conversion.c:134
 msgid "CD Nr. and total number of CDS in set"
 msgstr "CD num. e numero totale dei cd nell'insieme"
 
-#: src/misc_conversion.c:132
+#: src/misc_conversion.c:137
 msgid ""
 "The category (e.g. 'Technology' or 'Music') where the podcast was located."
 msgstr ""
 
-#: src/misc_conversion.c:133
+#: src/misc_conversion.c:138
 msgid "Accessible by selecting the center button on the iPod."
 msgstr ""
 
-#: src/misc_conversion.c:137
+#: src/misc_conversion.c:142
 msgid "Release date (for podcasts displayed next to the title on the iPod)"
 msgstr ""
 
-#: src/misc_conversion.c:639
+#: src/misc_conversion.c:649
 #, c-format
 msgid "The URI '%s' is not an absolute URI using the file scheme"
 msgstr "La URI '%s' non è una URI assoluto usando lo schema dei file"
 
-#: src/misc_conversion.c:649
+#: src/misc_conversion.c:659
 #, c-format
 msgid "The local file URI '%s' may not include a '#'"
 msgstr "La URI del file locale '%s' non può includere '#'"
 
-#: src/misc_conversion.c:666
+#: src/misc_conversion.c:676
 #, c-format
 msgid "The URI '%s' is invalid"
 msgstr "La URI '%s' non è valida"
 
-#: src/misc_conversion.c:678
+#: src/misc_conversion.c:688
 #, c-format
 msgid "The hostname of the URI '%s' is invalid"
 msgstr "Il nome dell'host della URI '%s' non è valido"
 
-#: src/misc_conversion.c:694
+#: src/misc_conversion.c:704
 #, c-format
 msgid "The URI '%s' contains invalidly escaped characters"
 msgstr "La URI '%s' contiene caratteri non validi che sono stati saltati"
 
-#: src/misc_playlist.c:68 src/misc_playlist.c:95 src/misc_playlist.c:416
+#: src/misc_playlist.c:68 src/misc_playlist.c:95 src/misc_playlist.c:430
 msgid "Please enter a name for the new playlist"
 msgstr "Inserire un nome per la nuova playlist"
 
-#: src/misc_playlist.c:97 gtkpod.glade:578 gtkpod.glade:772 gtkpod.glade:7128
-msgid "Smart Playlist"
-msgstr "Playlist Intelligente"
-
-#: src/misc_playlist.c:146
+#: src/misc_playlist.c:155
 msgid "AR:"
 msgstr "AR:"
 
-#: src/misc_playlist.c:149
+#: src/misc_playlist.c:158
 msgid "AL:"
 msgstr "AL:"
 
-#: src/misc_playlist.c:152
+#: src/misc_playlist.c:161
 msgid "GE:"
 msgstr "GE:"
 
-#: src/misc_playlist.c:155
+#: src/misc_playlist.c:164
 msgid "CO:"
 msgstr "CO:"
 
-#: src/misc_playlist.c:158
+#: src/misc_playlist.c:167
 msgid "YE:"
 msgstr "AN:"
 
-#: src/misc_playlist.c:186
+#: src/misc_playlist.c:195
 msgid "Unknown"
 msgstr "Sconosciuto"
 
-#: src/misc_playlist.c:256
+#: src/misc_playlist.c:273
 #, c-format
 msgid "Random (%d)"
 msgstr "Casuale (%d)"
 
-#: src/misc_playlist.c:281
+#: src/misc_playlist.c:298
 msgid ""
 "Auto Store of track view disabled.\n"
 "\n"
@@ -2541,11 +4298,11 @@
 "Salvataggio automatico dell'ordine delle tracce disabilitato.\n"
 "\n"
 
-#: src/misc_playlist.c:340
+#: src/misc_playlist.c:357
 msgid "Not Listed"
 msgstr "Mai elencati"
 
-#: src/misc_playlist.c:391
+#: src/misc_playlist.c:407
 #, c-format
 msgid "Created playlist '%s' with %d track."
 msgid_plural "Created playlist '%s' with %d tracks."
@@ -2553,72 +4310,71 @@
 msgstr[1] "Creata la playlist '%s' con %d tracce."
 
 #. n==0
-#: src/misc_playlist.c:402
+#: src/misc_playlist.c:418
 msgid "No tracks available, playlist not created"
 msgstr "Nessuna traccia disponibile, la playlist non è stata creata"
 
-#: src/misc_playlist.c:530
+#: src/misc_playlist.c:544
 #, c-format
 msgid "Most Listened (%d)"
 msgstr "Più sentite (%d)"
 
-#: src/misc_playlist.c:571
+#: src/misc_playlist.c:585
 msgid "Never Listened"
 msgstr "Mai riprodotti"
 
-#: src/misc_playlist.c:611
+#: src/misc_playlist.c:625
 #, c-format
 msgid "Best Rated (%d)"
 msgstr "Le meglio votate (%d)"
 
-#: src/misc_playlist.c:653
+#: src/misc_playlist.c:667
 msgid "Unrated tracks"
 msgstr "Tracce senza voto"
 
-#: src/misc_playlist.c:658
+#: src/misc_playlist.c:672
 #, c-format
 msgid "Rated %d"
 msgstr "Voto (%d)"
 
-#: src/misc_playlist.c:701
+#: src/misc_playlist.c:715
 #, c-format
 msgid "Recent (%d)"
 msgstr "Recenti (%d)"
 
-#: src/misc_playlist.c:740
+#: src/misc_playlist.c:754
 msgid "Last Time"
 msgstr "Durata"
 
-#: src/misc_playlist.c:831
+#: src/misc_playlist.c:845
 msgid "Removal of dangling tracks with no files on PC was canceled."
 msgstr ""
 "La rimozione delle tracce pendenti senza file sul PC è stata cancellata."
 
-#: src/misc_playlist.c:841
+#: src/misc_playlist.c:855
 msgid "Handling of dangling tracks with files on PC was canceled."
 msgstr ""
 "La gestione delle tracce pendenti con file presenti sul PC è stata "
 "cancellata."
 
-#: src/misc_playlist.c:869
+#: src/misc_playlist.c:883
 msgid "Dangling tracks with no files on PC were removed."
 msgstr "Le tracce pendenti senza file sul PC sono state rimosse."
 
-#. printf("Handling track %d\n", track->ipod_id);
-#: src/misc_playlist.c:902
+#: src/misc_playlist.c:917
 #, c-format
 msgid "Processing '%s'"
 msgstr "Elaborazione di '%s'"
 
-#: src/misc_playlist.c:927
+#: src/misc_playlist.c:941
 msgid "Dangling tracks with files on PC were handled."
 msgstr "Le tracce con i file sul PC sono state gestite."
 
-#: src/misc_playlist.c:960
+#: src/misc_playlist.c:974
 msgid "Track"
 msgstr "Traccia"
 
-#: src/misc_playlist.c:1005
+#: src/misc_playlist.c:1017
 msgid ""
 "You did not import the existing iTunesDB. This is most likely incorrect and "
 "will result in the loss of the existing database.\n"
@@ -2634,19 +4390,19 @@
 "interrompere l'operazione. Se la interrompi, puoi importare il database "
 "esistente prima di richiamare di nuovo questa funzione.\n"
 
-#: src/misc_playlist.c:1021
+#: src/misc_playlist.c:1031
 msgid "Creating a tree of known files"
 msgstr "Creazione di un albero di file conosciuti"
 
-#: src/misc_playlist.c:1065
+#: src/misc_playlist.c:1075
 msgid "Checking iPOD files against known files in DB"
 msgstr "Controllo dei file dell'iPod verso i file conosciuti nel DB"
 
-#: src/misc_playlist.c:1110
+#: src/misc_playlist.c:1118
 msgid "Orphaned"
 msgstr "Orfani"
 
-#: src/misc_playlist.c:1131
+#: src/misc_playlist.c:1145
 #, c-format
 msgid ""
 "The following orphaned file had already been added to the iPod again. It "
@@ -2659,12 +4415,12 @@
 "%s\n"
 "\n"
 
-#: src/misc_playlist.c:1160
+#: src/misc_playlist.c:1173
 #, c-format
 msgid "Found %d orphaned and %d dangling files. Processing..."
 msgstr "Trovati %d file orfani e %d pendenti. Elaborazione in corso..."
 
-#: src/misc_playlist.c:1183
+#: src/misc_playlist.c:1197
 #, c-format
 msgid ""
 "The following dangling track has a file on PC.\n"
@@ -2683,7 +4439,7 @@
 "Premi OK per trasferirle dai file nella prossima sincronizzazione, CANCEL "
 "per lasciare tutto così"
 
-#: src/misc_playlist.c:1188
+#: src/misc_playlist.c:1202
 #, c-format
 msgid ""
 "The following dangling track doesn't have file on PC. \n"
@@ -2700,31 +4456,31 @@
 
 #. we want unique window for each
 #. gboolean modal,
-#: src/misc_playlist.c:1195
+#: src/misc_playlist.c:1209
 msgid "Dangling Tracks"
 msgstr "Tracce pendenti"
 
-#: src/misc_playlist.c:1219
+#: src/misc_playlist.c:1232
 #, c-format
 msgid "Found %d orphaned and %d dangling files. Done."
 msgstr "Trovati %d file orfani e %d pendenti. Terminato."
 
 #. update for count == 1, 21, 41 ... and for count == n
-#: src/misc_track.c:91 src/misc_track.c:368
+#: src/misc_track.c:90 src/misc_track.c:364
 #, c-format
 msgid "Hashed %d of %d track."
 msgid_plural "Hashed %d of %d tracks."
 msgstr[0] "Calcolato l'hash di %d di %d traccia."
 msgstr[1] "Calcolato l'hash di %d di %d tracce."
 
-#: src/misc_track.c:202
+#: src/misc_track.c:199
 #, c-format
 msgid "The following duplicate track has been removed."
 msgid_plural "The following %d duplicate tracks have been removed."
 msgstr[0] "La seguente traccia duplicata è stata rimossa."
 msgstr[1] "Le seguenti %d tracce duplicate sono state rimosse."
 
-#: src/misc_track.c:209
+#: src/misc_track.c:206
 #, c-format
 msgid ""
 "The following duplicate track has not been added to the master play list."
@@ -2739,81 +4495,66 @@
 
 #. gint id,
 #. gboolean modal,
-#: src/misc_track.c:216
+#: src/misc_track.c:213
 msgid "Duplicate detection"
 msgstr "Rilevazione dei duplicati"
 
-#: src/misc_track.c:844
+#: src/misc_track.c:904
 msgid "Local Database"
 msgstr "Database Locale"
 
-#: src/misc_track.c:1396
+#. artwork is set
+#: src/misc_track.c:915
+msgid "Embedded or filename was lost"
+msgstr ""
+
+#: src/misc_track.c:919
+#, fuzzy
+msgid "Artwork not set"
+msgstr "non è impostato"
+
+#: src/misc_track.c:1527
 #, c-format
 msgid "drag and drop: ignored '%s'\n"
 msgstr "drag and drop: ignorato '%s'\n"
 
-#: src/mp3file.c:1118
+#: src/mp3file.c:1276
 #, c-format
 msgid "Error setting ID3 field: %s\n"
 msgstr "Errore nella impostazione del campo ID3: %s\n"
 
-#: src/mp3file.c:1143 src/mp3file.c:1290 src/mp3file.c:2036
+#: src/mp3file.c:1300 src/mp3file.c:1373 src/mp3file.c:1522 src/mp3file.c:2160
 #, c-format
 msgid "ERROR while opening file: '%s' (%s).\n"
 msgstr "ERRORE nell'apertura del file: '%s' (%s).\n"
 
-#: src/mp3file.c:1357
+#: src/mp3file.c:1593
 #, c-format
 msgid "ERROR while writing tag to file: '%s' (%s).\n"
 msgstr "ERRORE nella scrittura del tag sul file: '%s' (%s).\n"
 
-#: src/mp3file.c:1880
-#, c-format
-msgid ""
-"Could not find mp3gain. I tried to use the following executable: '%s'.\n"
-"\n"
-"If the mp3gain executable is not in your path or named differently, you can "
-"set the full path in the 'Tools' section of the preferences dialog.\n"
-"\n"
-"If you do not have mp3gain installed, you can download it from http://www."
-"sourceforge.net/projects/mp3gain."
-msgstr ""
-"Impossibile trovare mp3gain. È stato provato il seguente esegubile: '%s'.\n"
-"\n"
-"Se l'esegubile mp3gain non è nella path oppure ha un nome differente, si può "
-"indicare la path completa nella sezione 'Strumenti' della finestra di "
-"impostazioni.\n"
-"\n"
-"Se non hai mp3gain installato, puoi scaricarlo da http://www.sourceforge.net/"
-"projects/mp3gain."
-
-#: src/mp3file.c:1920
-#, c-format
-msgid "Execution of mp3gain ('%s') failed."
-msgstr "Esecuzione di mp3gain ('%s') fallita."
-
 #. Tracks with zero play length are ignored by iPod...
-#: src/mp3file.c:2179
+#: src/mp3file.c:2326
 #, c-format
 msgid "File \"%s\" has zero play length. Ignoring.\n"
 msgstr "Il file \"%s\" ha durata zero. Ignorato.\n"
 
-#: src/mp4file.c:243 src/mp4file.c:362
+#: src/mp4file.c:221 src/mp4file.c:342 src/mp4file.c:461
 #, c-format
 msgid "'%s' does not appear to be a mp4 audio file.\n"
 msgstr "'%s' non sembra essere un file audio mp4.\n"
 
-#: src/mp4file.c:253
+#: src/mp4file.c:231 src/mp4file.c:352
 #, c-format
 msgid "Could not open '%s' for reading, or file is not an mp4 file.\n"
 msgstr "Impossibile aprire '%s' in lettura, o il file non è un file mp4.\n"
 
-#: src/mp4file.c:373
+#: src/mp4file.c:472
 #, c-format
 msgid "Could not open '%s' for writing, or file is not an mp4 file.\n"
 msgstr "Impossibile aprire \"%s\" in scrittura, o il file non è un file mp4.\n"
 
-#: src/mp4file.c:386
+#: src/mp4file.c:485
 #, c-format
 msgid ""
 "Import of '%s' failed: m4a/m4p/m4b not supported without the mp4v2 library. "
@@ -2822,7 +4563,7 @@
 "Importazione di '%s' fallita: m4a/m4p/m4b non è supportata senza librerie "
 "mp4v2. Devi compilare i sorgenti di gtkpod insieme alla libreria mp4v2.\n"
 
-#: src/mp4file.c:392
+#: src/mp4file.c:491
 #, c-format
 msgid ""
 "m4a/m4p/m4b metadata update for '%s' failed: m4a/m4p/m4b not supported "
@@ -2833,223 +4574,272 @@
 "supportati senza la libreria mp4v2. Devi compilare i sorgenti gtkpod insieme "
 "alla libreria mp4v2.\n"
 
-#: src/prefs.c:128
+#: src/mp4file.c:497
+#, fuzzy, c-format
+msgid ""
+"m4a/m4p/m4b soundcheck update for '%s' failed: m4a/m4p/m4b not supported "
+"without the mp4v2 library. You must compile the gtkpod source together with "
+"the mp4v2 library.\n"
+msgstr ""
+"aggiornamento fallito del metadata m4a/m4p/m4b per '%s': m4a/m4p non sono "
+"supportati senza la libreria mp4v2. Devi compilare i sorgenti gtkpod insieme "
+"alla libreria mp4v2.\n"
+
+#: src/prefs.c:307
 #, c-format
 msgid "gtkpod version %s usage:\n"
 msgstr "uso di gtkpod versione %s:\n"
 
-#: src/prefs.c:129
+#: src/prefs.c:308
 msgid "  -h, --help:   display this message\n"
 msgstr "  -h, --help:   mostra questo messaggio\n"
 
-#: src/prefs.c:130
+#: src/prefs.c:309
 msgid "  -p <filename>:increment playcount for file by one\n"
 msgstr " -p <nomefile>:incrementa il contatore delle riproduzioni di uno\n"
 
-#: src/prefs.c:131
+#: src/prefs.c:310
 msgid "  -m path:      define the mountpoint of your iPod\n"
 msgstr "  -m path       definisci il punto di montaggio del tuo iPod\n"
 
-#: src/prefs.c:132
+#: src/prefs.c:311
 msgid "  --mountpoint: same as '-m'.\n"
 msgstr "  --mountpoint: come '-m'.\n"
 
-#: src/prefs.c:133
+#: src/prefs.c:312
 msgid "  -a:           import database automatically after start.\n"
 msgstr "  -a:           importa il database automaticamente all'avvio.\n"
 
-#: src/prefs.c:134
+#: src/prefs.c:313
 msgid "  --auto:       same as '-a'.\n"
 msgstr "  --auto:       come '-a'.\n"
 
-#: src/prefs.c:135
-msgid ""
-"  -o:           use offline mode. No changes are exported to the iPod,\n"
-"                but to ~/.gtkpod/ instead. iPod is updated if 'Sync' is\n"
-"                used with 'Offline' deactivated.\n"
-msgstr ""
-"  -o:           usa la modalità offline. I cambiamenti non verranno \n"
-"                esportati sull'iPod, ma su ~/.gtkpod/.                L'iPod "
-"verrà aggiornato se verrà usato 'Sinc'\n"
-"                con 'Offline' de-attivato.\n"
+#: src/prefs_window.c:119
+msgid "Please select command for 'Play Now'"
+msgstr "Selezionare il comando per 'Riproduci Ora'"
 
-#: src/prefs.c:136
-msgid "  --offline:    same as '-o'.\n"
-msgstr " --offline:    come '-o'.\n"
+#: src/prefs_window.c:120
+msgid "Please select command for 'Enqueue'"
+msgstr "Selezionare la riga di comando per 'Metti in coda'"
 
-#: src/prefs.c:401
-#, c-format
-msgid "Error while reading prefs: %s\n"
-msgstr "Errore nella lettura delle preferenze: %s\n"
+#: src/prefs_window.c:121
+msgid "Please select the mp3gain executable"
+msgstr "Selezionare Path esatta per l'eseguibile 'mp3gain'"
 
-#: src/prefs.c:1030
-#, c-format
-msgid "Unable to open config file '%s' for reading\n"
-msgstr "Impossibile aprire il file di configurazione '%s' in lettura\n"
+#: src/prefs_window.c:124
+msgid "Select the mserv music root directory"
+msgstr "Seleziona la directory musicale radice di mserv"
 
-#: src/prefs.c:1137
-#, c-format
-msgid "Unknown option: %s\n"
-msgstr "Opzione sconosciuta: %s\n"
+#: src/prefs_window.c:125
+msgid "Select the mserv trackinfo root directory"
+msgstr "Seleziona la directory trackinfo radice di mserv"
 
-#: src/prefs.c:1190
-#, c-format
-msgid "# delete confirmation\n"
-msgstr "# conferma la cancellazione\n"
+#: src/prefs_window.c:127
+#, fuzzy
+msgid "Please select the aacgain executable"
+msgstr "Selezionare Path esatta per l'eseguibile 'mp3gain'"
 
-#: src/prefs.c:1197
-#, c-format
-msgid "# sort tab: select 'All', last selected page (=category)\n"
+#: src/prefs_window.c:911 src/prefs_window.c:929
+msgid "Preferences not updated"
+msgstr "Preferenze non aggiornate"
+
+#: src/prefs_window.c:938
+msgid "Preferences applied"
+msgstr "Preferenze applicate"
+
+#: src/repository.c:549 src/repository.c:2372
+#, fuzzy
+msgid "Select mountpoint"
+msgstr " _Punto di montaggio dell'iPod"
+
+#: src/repository.c:576 src/repository.c:2398
+msgid "Set backup file"
 msgstr ""
-"#blocco di ordinamento: seleziona 'Tutti', ultima pagina selezionata "
-"(=category)\n"
 
-#: src/prefs.c:1216
-#, c-format
-msgid "# autoselect master playlist?\n"
-msgstr "# seleziona automaticamente la playlist principale?\n"
+#: src/repository.c:615
+#, fuzzy
+msgid "Select directory for synchronization"
+msgstr "Seleziona una directory da aggiungere ricorsivamente"
 
-#: src/prefs.c:1218
-#, c-format
-msgid "# title=0, artist, album, genre, composer\n"
-msgstr "# titolo=0, artista, album, genere, compositore\n"
+#: src/repository.c:641
+msgid "Please select command to sync contacts"
+msgstr "Selezionare il comando per sincronizzare i contatti"
 
-#: src/prefs.c:1219
-#, c-format
-msgid "# track_nr=5, ipod_id, pc_path, transferred\n"
-msgstr "# traccia_num=5, ipod_id, pc_path, trasferita\n"
+#: src/repository.c:647
+msgid "Please select command to sync calendar"
+msgstr "Sincronizzare il comando per sincronizzare i calendari"
 
-#: src/prefs.c:1220
-#, c-format
-msgid "# autoset: set empty tag to filename?\n"
-msgstr "# impostazione: impostare un tag vuoto al posto del nome del file?\n"
+#: src/repository.c:653
+#, fuzzy
+msgid "Please select command to sync notes"
+msgstr "Selezionare il comando per sincronizzare i contatti"
 
-#: src/prefs.c:1235
-#, c-format
+#: src/repository.c:665
+#, fuzzy, c-format
 msgid ""
-"# position of sliders (paned): playlists, above tracks,\n"
-"# between sort tabs, and in statusbar.\n"
+"<i>Have a look at the scripts provided in '%s'. If you write a new script, "
+"please send it to jcsjcs at users.sourceforge.net for inclusion into the "
+"next release.</i>"
 msgstr ""
+"Consultare lo script presente in '%s'. Se scrivi un nuovo script, mandalo "
+"per favore a jcsjcs at users.sourceforge.net per la inclusione nella "
+"prossima release."
 
-#: src/prefs.c:1271
-#, c-format
-msgid ""
-"# window sizes: main window, confirmation scrolled,\n"
-"#               confirmation non-scrolled, dirbrowser, prefs\n"
-msgstr ""
+#: src/repository.c:732
+#, fuzzy
+msgid "Smart playlist updated."
+msgstr "Playlist Intelligente"
 
-#: src/prefs.c:1328
-#, c-format
-msgid "Unable to open '%s' for writing\n"
-msgstr "Impossibile aprire '%s' per la scrittura\n"
+#: src/repository.c:1193
+#, fuzzy
+msgid "Podcasts Repository"
+msgstr "Cancella dall'iPod"
 
-#: src/prefs.c:1682
-#, c-format
-msgid ""
-" Preferences: Category nr (%d<%d?) or sorttab nr (%d<%d?) out of range.\n"
-msgstr ""
-" Preferenze: Categoria num (%d<%d?) o blocco di ordinamento num (%d<%d?) "
-"fuori limite.\n"
+#: src/repository.c:1197
+#, fuzzy
+msgid "Local Repository"
+msgstr "Cancella dall'iPod"
 
-#: src/prefs.c:1731
-#, c-format
-msgid "Unable to 'mkdir %s'\n"
-msgstr "Impossibile eseguire 'mkdir %s'\n"
+#: src/repository.c:1351
+#, fuzzy
+msgid "Master Playlist"
+msgstr "...playlist principale"
 
-#. illegal -- ignore
-#: src/prefs.c:2157
-#, c-format
-msgid "prefs_set_toolbar_style: illegal style '%d' ignored\n"
-msgstr "prefs_set_toolbar_style: stile non legale '%d' ignorato\n"
+#: src/repository.c:1355
+#, fuzzy
+msgid "Podcasts Playlist"
+msgstr "Playlist Intelligente"
 
-#. illegal -- ignore
-#: src/prefs.c:2199
-#, c-format
-msgid "prefs_set_pm_sort: illegal type '%d' ignored\n"
-msgstr "prefs_set_pm_sort: tipo non legale '%d' ignorato\n"
+#: src/repository.c:1363
+#, fuzzy
+msgid "Regular Playlist"
+msgstr "Playlist Intelligente"
 
-#: src/prefs.c:2354
-#, c-format
-msgid "'%s': no arguments (%%...) allowed.\n"
-msgstr "'%s': nessun argomento (%%...) permesso.\n"
+#: src/repository.c:2426
+#, fuzzy
+msgid "Set local repository file"
+msgstr "Cancella dall'iPod"
 
-#: src/prefs.c:2359
+#: src/repository.c:2525
+#, fuzzy
+msgid "New Repository"
+msgstr "Cancella dall'iPod"
+
+#: src/support.c:90 src/support.c:114
+#, fuzzy, c-format
+msgid "Couldn't find pixmap file: %s"
+msgstr "Impossibile cambiare il tag del file: %s\n"
+
+#: src/syncdir.c:237
 #, c-format
-msgid "'%s': only '%%[%s]' allowed.\n"
-msgstr "'%s': è permesso solo '%%[%s]'.\n"
+msgid "Sync summary for %s/%s\n"
+msgstr ""
 
-#: src/prefs_window.c:108
-msgid "Please select command for 'Play Now'"
-msgstr "Selezionare il comando per 'Riproduci Ora'"
+#: src/syncdir.c:246
+#, fuzzy
+msgid "The following track has been added or updated:\n"
+msgid_plural "The following tracks have been added or updated:\n"
+msgstr[0] "La traccia seguente è stata aggiornata"
+msgstr[1] "Le %d tracce seguenti sono state aggiornate"
 
-#: src/prefs_window.c:109
-msgid "Please select command for 'Enqueue'"
-msgstr "Selezionare la riga di comando per 'Metti in coda'"
+#: src/syncdir.c:255
+#, fuzzy
+msgid "The following track has been completely removed from the iPod:\n"
+msgid_plural ""
+"The following tracks have been completely removed from the iPod:\n"
+msgstr[0] "Prima di rimuovere completamente le tracce dall'iPod"
+msgstr[1] "Prima di rimuovere completamente le tracce dall'iPod"
 
-#: src/prefs_window.c:110
-msgid "Please select the mp3gain executable"
-msgstr "Selezionare Path esatta per l'eseguibile 'mp3gain'"
+#: src/syncdir.c:264
+#, fuzzy
+msgid "The following track has been removed from the repository:\n"
+msgid_plural "The following tracks have been removed from the repository:\n"
+msgstr[0] "La seguente traccia duplicata è stata rimossa."
+msgstr[1] "Le seguenti %d tracce duplicate sono state rimosse."
 
-#: src/prefs_window.c:111
-msgid "Please select command to sync contacts"
-msgstr "Selezionare il comando per sincronizzare i contatti"
+#: src/syncdir.c:271
+#, fuzzy
+msgid "The following track has been removed from the playlist:\n"
+msgid_plural "The following tracks have been removed from the playlist:\n"
+msgstr[0] ""
+"La seguente traccia duplicata non è stata aggiunta alla playlist principale"
+msgstr[1] ""
+"Le seguenti %d tracce duplicate non sono state aggiunte alla playlist "
+"principale"
 
-#: src/prefs_window.c:112
-msgid "Please select command to sync calendar"
-msgstr "Sincronizzare il comando per sincronizzare i calendari"
+#: src/syncdir.c:277
+msgid "Nothing was changed.\n"
+msgstr ""
 
-#: src/prefs_window.c:113
-msgid "Select the mserv music root directory"
-msgstr "Seleziona la directory musicale radice di mserv"
+#: src/syncdir.c:282
+msgid "Sync summary"
+msgstr ""
 
-#: src/prefs_window.c:114
-msgid "Select the mserv trackinfo root directory"
-msgstr "Seleziona la directory trackinfo radice di mserv"
+#: src/tools.c:119
+#, fuzzy, c-format
+msgid ""
+"Could not find '%s'\n"
+". Please specifiy the exact path in the Tools section of the preference "
+"dialog or install the programm if it is not installed on your system.\n"
+"\n"
+msgstr ""
+"Impossibile trovare il comando '%s'.\n"
+"\n"
+"Per favore verifica le impostazioni nella sezione 'Strumenti' della "
+"finestradi dialogo.\n"
+"\n"
 
-#: src/prefs_window.c:115
-#, fuzzy
-msgid "Please select command to sync notes"
-msgstr "Selezionare il comando per sincronizzare i contatti"
+#: src/tools.c:204
+#, fuzzy, c-format
+msgid ""
+"Execution of '%s' failed.\n"
+"\n"
+msgstr "Esecuzione di mp3gain ('%s') fallita."
 
-#: src/prefs_window.c:854
+#: src/tools.c:249
 #, fuzzy, c-format
 msgid ""
-"<i>Have a look at the scripts provided in '%s'. If you write a new script, "
-"please send it to jcsjcs at users.sourceforge.net for inclusion into the "
-"next release.</i>"
+"Did not normalize '%s'. Set mp3gain path in the Tools section of the "
+"preferences.\n"
 msgstr ""
-"Consultare lo script presente in '%s'. Se scrivi un nuovo script, mandalo "
-"per favore a jcsjcs at users.sourceforge.net per la inclusione nella "
-"prossima release."
+"Impossibile trovare il comando '%s'.\n"
+"\n"
+"Per favore verifica le impostazioni nella sezione 'Strumenti' della "
+"finestradi dialogo.\n"
+"\n"
 
-#: src/prefs_window.c:1287 src/prefs_window.c:1305
-msgid "Preferences not updated"
-msgstr "Preferenze non aggiornate"
+#: src/tools.c:259
+#, fuzzy, c-format
+msgid ""
+"Did not normalize '%s'. Set aacgain path in the Tools section of the "
+"preferences.\n"
+msgstr ""
+"Impossibile trovare il comando '%s'.\n"
+"\n"
+"Per favore verifica le impostazioni nella sezione 'Strumenti' della "
+"finestradi dialogo.\n"
+"\n"
 
-#: src/prefs_window.c:1314
-msgid "Preferences applied"
-msgstr "Preferenze applicate"
-
-#: src/tools.c:173
+#: src/tools.c:384
 msgid "Normalizing..."
 msgstr "Normalizzazione in corso..."
 
-#: src/tools.c:220
+#: src/tools.c:434
 #, c-format
 msgid "%s - %s"
 msgstr "%s - %s"
 
-#: src/tools.c:247
+#: src/tools.c:460
 msgid "Aborting..."
 msgstr "Interruzione in corso..."
 
-#: src/tools.c:251
+#: src/tools.c:464
 msgid "Will abort after current mp3gain process ends."
 msgstr ""
 "L'operazione verrà interrotta alla conclusione del prossimo  processo di "
 "mp3gain"
 
-#: src/tools.c:277
+#: src/tools.c:490
 #, c-format
 msgid ""
 "'%s-%s' (%s) could not be normalized.\n"
@@ -3058,14 +4848,14 @@
 "'%s-%s' (%s) non può essere normalizzata.\n"
 "\n"
 
-#: src/tools.c:319
+#: src/tools.c:529
 #, c-format
 msgid "Normalized %d of %d tracks."
 msgid_plural "Normalized %d of %d tracks."
 msgstr[0] "Normalizzato %d di %d della traccia"
 msgstr[1] "Normalizzato %d di %d delle tracce"
 
-#: src/tools.c:413
+#: src/tools.c:632
 msgid ""
 "Please specify the command to be called on the 'Tools' section of the "
 "preferences dialog.\n"
@@ -3073,7 +4863,7 @@
 "Specificare il comando da richiamare nella sezione 'Strumenti' della "
 "finestra delle preferenze.\n"
 
-#: src/tools.c:425
+#: src/tools.c:644
 #, c-format
 msgid ""
 "Could not find the command '%s'.\n"
@@ -3087,7 +4877,7 @@
 "finestradi dialogo.\n"
 "\n"
 
-#: src/tools.c:466
+#: src/tools.c:685
 #, c-format
 msgid ""
 "'%s' returned the following output:\n"
@@ -3096,12 +4886,12 @@
 "'%s' ha restituito il seguente output:\n"
 "%s\n"
 
-#: src/tools.c:535
+#: src/tools.c:752
 #, c-format
 msgid "No command set for '%s'"
 msgstr "Nessun comando impostato per '%s'"
 
-#: src/tools.c:556
+#: src/tools.c:772
 #, c-format
 msgid "Could not find command '%s' specified for '%s'"
 msgstr "Impossibile trovare il comando '%s' specificato per '%s'"
@@ -3116,1760 +4906,349 @@
 msgid "%s does not appear to be a supported wav file.\n"
 msgstr "%s non sembra essere un file audio wav supportato.\n"
 
-#: gtkpod.glade:7
-msgid "gtkpod"
-msgstr "gtkpod"
+#~ msgid ""
+#~ "On startup gtkpod will call 'mount <ipod mountpoint>', on exit a 'umount "
+#~ "<ipod mountpoint>' call is carried out. For more complicated arrangements "
+#~ "please use the ~/.gtkpod/gtkpod.in and ~/.gtkpod/gtkpod.out scripts."
+#~ msgstr ""
+#~ "All'avvio gtkpod chiamerà 'mount <punto di montaggio>', all'uscita invece "
+#~ "'umount <punto di montaggio>'. Per arrangiamenti più complessi usare gli "
+#~ "script ~/.gtkpod/gtkpod.in e ~/.gtkpod/gtkpod.out."
 
-#: gtkpod.glade:36
-msgid "_File"
-msgstr "_File"
+#~ msgid "Handle mounting/unmounting of iPod drive"
+#~ msgstr "Gestisci montaggio/smontaggio del drive iPod"
 
-#: gtkpod.glade:45
-msgid "_Read iTunesDB"
-msgstr "_Leggi l'iTunesDB"
-
-#: gtkpod.glade:66
-msgid "Add _Files"
-msgstr "Aggiungi _File"
-
-#: gtkpod.glade:87
-msgid "Add _Directory"
-msgstr "Aggiungi _Directory"
-
-#: gtkpod.glade:108
-msgid "Add _Playlist"
-msgstr "Aggiungi _Playlist"
-
-#: gtkpod.glade:129
-msgid "Synchronize _iTunesDB"
-msgstr "Sincronizza l'_iTunesDB"
-
-#: gtkpod.glade:183
-msgid "_Update Tracks from File"
-msgstr "_Aggiorna le tracce dai file"
-
-#: gtkpod.glade:204 gtkpod.glade:256 gtkpod.glade:308 gtkpod.glade:366
-#: gtkpod.glade:418 gtkpod.glade:1136 gtkpod.glade:1188 gtkpod.glade:1234
-msgid "Selected _Playlist"
-msgstr "_Playlist selezionata"
-
-#: gtkpod.glade:213 gtkpod.glade:265 gtkpod.glade:317 gtkpod.glade:375
-#: gtkpod.glade:427 gtkpod.glade:1145 gtkpod.glade:1197 gtkpod.glade:1243
-msgid "Selected Tab _Entry"
-msgstr "Le voci nel _Blocco selezionato"
-
-#: gtkpod.glade:222 gtkpod.glade:274 gtkpod.glade:326 gtkpod.glade:384
-#: gtkpod.glade:436 gtkpod.glade:569 gtkpod.glade:1154 gtkpod.glade:1206
-#: gtkpod.glade:1252
-msgid "Selected _Tracks"
-msgstr "_Tracce Selezionate"
-
-#: gtkpod.glade:235
-msgid "Update _mserv Data from File"
-msgstr "Aggiorna i dati _mserv dai File"
-
-#: gtkpod.glade:287
-msgid "_Synchronize Directories"
-msgstr "_Sincronizza le directory"
-
-#: gtkpod.glade:345
-msgid "_Export Tracks from Database"
-msgstr "_Esporta le tracce dal Database"
-
-#: gtkpod.glade:397
-msgid "Create _Playlist File"
-msgstr "Crea un file della _Playlist"
-
-#: gtkpod.glade:455
-msgid "_Offline"
-msgstr "_Offline"
-
-#: gtkpod.glade:471
-msgid "_Create iPod's Directories"
-msgstr "_Crea le directory dell'iPod"
-
-#: gtkpod.glade:492
-msgid ""
-"Find orphan files (files with no track info in DB) and dangling tracks "
-"(tracks with no corresponding files on iPOD)"
-msgstr ""
-"Trova i file orfani (file senza informazioni nel DB) e tracce fantasma "
-"(tracce senza file corrispondente sull'iPod)"
-
-#: gtkpod.glade:493
-msgid "_Check iPod's Files"
-msgstr "_Controlla i file dell'iPod"
-
-#: gtkpod.glade:521 gtkpod.glade:11968
-msgid "_Edit"
-msgstr "_Modifica"
-
-#: gtkpod.glade:530
-msgid "Edit"
-msgstr "Modifica"
-
-#: gtkpod.glade:551
 #, fuzzy
-msgid "Tracks in Selected _Playlist"
-msgstr "_Playlist selezionata"
+#~ msgid "<b>Artwork</b>"
+#~ msgstr "<b>Importa</b>"
 
-#: gtkpod.glade:560
-#, fuzzy
-msgid "Tracks in Selected Tab _Entry"
-msgstr "Le voci nel _Blocco selezionato"
+#~ msgid "_Offline"
+#~ msgstr "_Offline"
 
-#: gtkpod.glade:591
-msgid "_Delete"
-msgstr ""
+#~ msgid ""
+#~ "You only need to specify this if your 'mp3gain' executable is not in your "
+#~ "default path. Example: '/usr/local/foo/mp3gain'. mp3gain will write the "
+#~ "calculated gain value back to the file -- if you don't want this, set "
+#~ "this entry to /bin/true or similar. mp3gain is only called if appropriate "
+#~ "tags are not already set by your encoder. E.g. lame version 0.95 already "
+#~ "writes the gain values into tags. The exact conversion factor between "
+#~ "mp3gain's gain value and iPod's volume tag is not known yet -- your input "
+#~ "is appreciated."
+#~ msgstr ""
+#~ "Si deve specificare solo se se l'eseguibile 'mp3gain' non è nella path di "
+#~ "default. Esempio: '/usr/local/foo/mp3gain'. mp3gain scriverà il valore "
+#~ "del guadagno calcolato direttamente sul file -- se non lo vuoi modifica "
+#~ "questa voce con /bin/true o qualcosa di simile. mp3gain è richiamato solo "
+#~ "se non sono statiimpostati impostati i tag giusti dal tuo encoder. Es.  "
+#~ "lame versione 0.95 già scrive il valore del guadagno nei tag. Il fattore "
+#~ "di conversione tra il valore del guadagno di mp3gain e il tag del volume "
+#~ "dell'iPod non è ancora conosciuto -- il tuo contributo è gradito."
 
-#: gtkpod.glade:612
 #, fuzzy
-msgid "Selected playlist"
-msgstr "_Playlist selezionata"
+#~ msgid "Edit Repository Properties"
+#~ msgstr "Opzioni di ordinamento"
 
-#: gtkpod.glade:621
-#, fuzzy
-msgid "Selected playlist including tracks from iPod"
-msgstr "Cancellata la playlist '%s' con la %d traccia appartenente."
+#~ msgid "Currently no iPod database selected"
+#~ msgstr "Nessun database iPod è stato selezionato al momento"
 
-#: gtkpod.glade:630
-#, fuzzy
-msgid "Selected playlist including tracks from database"
-msgstr "Cancella le tracce incluse (Database)"
+#~ msgid "No playlist selected."
+#~ msgstr "Nessuna playlist selezionata."
 
-#: gtkpod.glade:639
-#, fuzzy
-msgid "Selected playlist including tracks from harddisk"
-msgstr ""
-"Cancellata la playlist '%s' con la %d traccia appartenente sul disco fisso."
+#~ msgid "Could not delete backup file: \"%s\"\n"
+#~ msgstr "Impossibile cancellare il file di backup: \"%s\"\n"
 
-#: gtkpod.glade:654
-#, fuzzy
-msgid "Selected filter tab entry from playlist"
-msgstr "Cancella %d traccia dalla playlist '%s'"
+#~ msgid "No tracks selected."
+#~ msgstr "Nessuna traccia selezionata."
 
-#: gtkpod.glade:663
-#, fuzzy
-msgid "Selected filter tab entry from iPod"
-msgstr "Cancella completamente una traccia dall'iPod"
+#~ msgid "Problem creating iPod directory: '%s'."
+#~ msgstr "Problemi nella creazione delle directory dell'iPod: '%s'."
 
-#: gtkpod.glade:672
-#, fuzzy
-msgid "Selected filter tab entry from database"
-msgstr "Cancella la traccia dal database locale"
+#~ msgid "Successfully created iPod directories in '%s'."
+#~ msgstr "Directory dell'iPod create con successo ('%s')."
 
-#: gtkpod.glade:681
-#, fuzzy
-msgid "Selected filter tab entry from harddisk"
-msgstr "Cancella la traccia dal disco fisso"
+#~ msgid "Create iPod directories"
+#~ msgstr "Crea le directory dell'iPod"
 
-#: gtkpod.glade:696
-#, fuzzy
-msgid "Selected tracks from playlist"
-msgstr "Cancella %d traccia dalla playlist '%s'"
+#~ msgid "OK to create the following directories?"
+#~ msgstr "Creare le directory seguenti?"
 
-#: gtkpod.glade:705
-#, fuzzy
-msgid "Selected tracks from iPod"
-msgstr "Cancella completamente una traccia dall'iPod"
+#~ msgid ""
+#~ "Could not find mp3gain. I tried to use the following executable: '%s'.\n"
+#~ "\n"
+#~ "If the mp3gain executable is not in your path or named differently, you "
+#~ "can set the full path in the 'Tools' section of the preferences dialog.\n"
+#~ "\n"
+#~ "If you do not have mp3gain installed, you can download it from http://www."
+#~ "sourceforge.net/projects/mp3gain."
+#~ msgstr ""
+#~ "Impossibile trovare mp3gain. È stato provato il seguente esegubile: '%"
+#~ "s'.\n"
+#~ "\n"
+#~ "Se l'esegubile mp3gain non è nella path oppure ha un nome differente, si "
+#~ "può indicare la path completa nella sezione 'Strumenti' della finestra di "
+#~ "impostazioni.\n"
+#~ "\n"
+#~ "Se non hai mp3gain installato, puoi scaricarlo da http://www.sourceforge."
+#~ "net/projects/mp3gain."
 
-#: gtkpod.glade:714
-#, fuzzy
-msgid "Selected tracks from database"
-msgstr "Cancella la traccia dal database locale"
+#~ msgid ""
+#~ "  -o:           use offline mode. No changes are exported to the iPod,\n"
+#~ "                but to ~/.gtkpod/ instead. iPod is updated if 'Sync' is\n"
+#~ "                used with 'Offline' deactivated.\n"
+#~ msgstr ""
+#~ "  -o:           usa la modalità offline. I cambiamenti non verranno \n"
+#~ "                esportati sull'iPod, ma su ~/.gtkpod/.                "
+#~ "L'iPod verrà aggiornato se verrà usato 'Sinc'\n"
+#~ "                con 'Offline' de-attivato.\n"
 
-#: gtkpod.glade:723
-#, fuzzy
-msgid "Selected tracks from harddisk"
-msgstr "Cancella la traccia dal disco fisso"
+#~ msgid "  --offline:    same as '-o'.\n"
+#~ msgstr " --offline:    come '-o'.\n"
 
-#: gtkpod.glade:742
-msgid "_Create Playlists"
-msgstr "_Crea nuova Playlist"
+#~ msgid "Error while reading prefs: %s\n"
+#~ msgstr "Errore nella lettura delle preferenze: %s\n"
 
-#: gtkpod.glade:763
-msgid "Empty Playlist"
-msgstr "Playlist Vuota"
+#~ msgid "Unable to open config file '%s' for reading\n"
+#~ msgstr "Impossibile aprire il file di configurazione '%s' in lettura\n"
 
-#: gtkpod.glade:781
-msgid "Random Playlist from Displayed Tracks"
-msgstr "Playlist random dalle tracce mostrate"
+#~ msgid "Unknown option: %s\n"
+#~ msgstr "Opzione sconosciuta: %s\n"
 
-#: gtkpod.glade:790
-msgid "Containing Displayed Tracks"
-msgstr "Contenente le tracce visualizzate"
+#~ msgid "# delete confirmation\n"
+#~ msgstr "# conferma la cancellazione\n"
 
-#: gtkpod.glade:799
-msgid "Containing Selected Tracks"
-msgstr "Contenente le tracce selezionate"
+#~ msgid "# sort tab: select 'All', last selected page (=category)\n"
+#~ msgstr ""
+#~ "#blocco di ordinamento: seleziona 'Tutti', ultima pagina selezionata "
+#~ "(=category)\n"
 
-#: gtkpod.glade:808
-msgid "One for each Artist"
-msgstr "Una per ogni Artista"
+#~ msgid "# autoselect master playlist?\n"
+#~ msgstr "# seleziona automaticamente la playlist principale?\n"
 
-#: gtkpod.glade:817
-msgid "One for each Album"
-msgstr "Una per ogni Album"
+#~ msgid "# title=0, artist, album, genre, composer\n"
+#~ msgstr "# titolo=0, artista, album, genere, compositore\n"
 
-#: gtkpod.glade:826
-msgid "One for each Genre"
-msgstr "Una per ogni Genere"
+#~ msgid "# track_nr=5, ipod_id, pc_path, transferred\n"
+#~ msgstr "# traccia_num=5, ipod_id, pc_path, trasferita\n"
 
-#: gtkpod.glade:835
-msgid "One for each Composer"
-msgstr "Una per ogni Compositore"
+#~ msgid "# autoset: set empty tag to filename?\n"
+#~ msgstr ""
+#~ "# impostazione: impostare un tag vuoto al posto del nome del file?\n"
 
-#: gtkpod.glade:844
-msgid "One for each Year"
-msgstr "Una per ogni anno"
+#~ msgid "Unable to open '%s' for writing\n"
+#~ msgstr "Impossibile aprire '%s' per la scrittura\n"
 
-#: gtkpod.glade:853
-msgid "One for each Rating"
-msgstr "Una per ogni Voto"
+#~ msgid ""
+#~ " Preferences: Category nr (%d<%d?) or sorttab nr (%d<%d?) out of range.\n"
+#~ msgstr ""
+#~ " Preferenze: Categoria num (%d<%d?) o blocco di ordinamento num (%d<%d?) "
+#~ "fuori limite.\n"
 
-#: gtkpod.glade:862
-msgid "Best Rated Tracks"
-msgstr "Tracce con il voto migliore"
+#~ msgid "Unable to 'mkdir %s'\n"
+#~ msgstr "Impossibile eseguire 'mkdir %s'\n"
 
-#: gtkpod.glade:871
-msgid "Tracks Most Often Listened To"
-msgstr "Tracce ascoltate più spesso"
+#~ msgid "prefs_set_toolbar_style: illegal style '%d' ignored\n"
+#~ msgstr "prefs_set_toolbar_style: stile non legale '%d' ignorato\n"
 
-#: gtkpod.glade:880
-msgid "Most Recently Played Tracks"
-msgstr "Tracce riprodotte più recentemente"
+#~ msgid "prefs_set_pm_sort: illegal type '%d' ignored\n"
+#~ msgstr "prefs_set_pm_sort: tipo non legale '%d' ignorato\n"
 
-#: gtkpod.glade:889
-msgid "All Tracks Played Since Last Time"
-msgstr "Riprodotte dall'ultima volta"
+#~ msgid "'%s': no arguments (%%...) allowed.\n"
+#~ msgstr "'%s': nessun argomento (%%...) permesso.\n"
 
-#: gtkpod.glade:898
-msgid "All Tracks Never Listened To"
-msgstr "Tutte le tracce mai ascoltate"
+#~ msgid "'%s': only '%%[%s]' allowed.\n"
+#~ msgstr "'%s': è permesso solo '%%[%s]'.\n"
 
-#: gtkpod.glade:907
-msgid "All Tracks not Listed in any Playlist"
-msgstr "Tutte le tracce non contenute in una Playlist"
+#~ msgid "_Read iTunesDB"
+#~ msgstr "_Leggi l'iTunesDB"
 
-#: gtkpod.glade:920
-msgid "Randomize Current Playlist"
-msgstr "Rendi random la playlist corrente"
+#~ msgid "Synchronize _iTunesDB"
+#~ msgstr "Sincronizza l'_iTunesDB"
 
-#: gtkpod.glade:935
-msgid "_Sorting"
-msgstr "_Ordinamento"
+#~ msgid "Edit"
+#~ msgstr "Modifica"
 
-#: gtkpod.glade:957
-msgid "_Save Displayed Track Order"
-msgstr "_Salva l'ordine delle tracce"
+#~ msgid "Read Existing Database from Disk/iPod"
+#~ msgstr "Leggi il database esistente dal disco/iPod"
 
-#: gtkpod.glade:985
-msgid "_Edit Preferences"
-msgstr "_Modifica le preferenze"
+#~ msgid "Read"
+#~ msgstr "Leggi"
 
-#: gtkpod.glade:1011
-msgid "_View"
-msgstr "_Visualizza"
+#~ msgid "Write Changes to Disk/iPod"
+#~ msgstr "Scrivi le modifiche sul disco/iPod"
 
-#: gtkpod.glade:1020
-msgid "_Toolbar"
-msgstr "_Barra degli strumenti"
+#~ msgid "Sync"
+#~ msgstr "Sincronizza"
 
-#: gtkpod.glade:1030
-msgid "_Tooltips"
-msgstr "_Suggerimenti"
-
-#: gtkpod.glade:1040
-msgid "_Info Window"
-msgstr "_Finestra di informazioni"
-
-#: gtkpod.glade:1051
-msgid "_More Sort Tabs"
-msgstr "_Più blocchi di ordinamento"
-
-#: gtkpod.glade:1072
-msgid "_Less Sort Tabs"
-msgstr "_Meno blocchi di ordinamento"
-
-#: gtkpod.glade:1093
-msgid "_Arrange Sort Tabs"
-msgstr "_Sistema i blocchi di ordinamento"
-
-#: gtkpod.glade:1106 gtkpod.glade:12693
-msgid "_Tools"
-msgstr "_Strumenti"
-
-#: gtkpod.glade:1115
-msgid "_Play Now"
-msgstr "_Suona"
-
-#: gtkpod.glade:1167
-msgid "_Enqueue"
-msgstr "_Metti in coda"
-
-#: gtkpod.glade:1225
-msgid "_Normalize Volume"
-msgstr "_Normalizza il Volume"
-
-#: gtkpod.glade:1261
-msgid "_Displayed Tracks"
-msgstr "_Tracce Visualizzate"
-
-#: gtkpod.glade:1270
-msgid "_All Tracks"
-msgstr "_Tutte le tracce"
-
-#: gtkpod.glade:1279
-msgid "_Newly Added Tracks"
-msgstr "_Tracce Nuove Aggiunte"
-
-#: gtkpod.glade:1298
-msgid "Synchronise Contacts, Calendar and Notes"
-msgstr "Sincronizza Calendario, Contatti e Note"
-
-#: gtkpod.glade:1299
-msgid "Synchronize All"
-msgstr "Sincronizza tutto"
-
-#: gtkpod.glade:1308
-msgid "Synchronize Contacts"
-msgstr "Sincronizza i contatti"
-
-#: gtkpod.glade:1317
-msgid "Synchronize Calendar"
-msgstr "Sincronizza il calendario"
-
-#: gtkpod.glade:1326
-msgid "Synchronize Notes"
-msgstr "Sincronizza le Note"
-
-#: gtkpod.glade:1339
-msgid "_Help"
-msgstr "_Aiuto"
-
-#: gtkpod.glade:1348
-msgid "_About"
-msgstr "_A Proposito"
-
-#: gtkpod.glade:1388
-msgid "Read Existing Database from Disk/iPod"
-msgstr "Leggi il database esistente dal disco/iPod"
-
-#: gtkpod.glade:1389
-msgid "Read"
-msgstr "Leggi"
-
-#: gtkpod.glade:1406
-msgid "Add Files or Directories"
-msgstr "Aggiungi file o directory"
-
-#: gtkpod.glade:1407
-msgid "Files"
-msgstr "File"
-
-#: gtkpod.glade:1424
-msgid "Add Directories Recursively"
-msgstr "Aggiungi directory ricorsivamente"
-
-#: gtkpod.glade:1425
-msgid "Dirs"
-msgstr "Dir"
-
-#: gtkpod.glade:1442
-msgid "Add playlist from file"
-msgstr "Aggiungi playlist dal file"
-
-#: gtkpod.glade:1460
-msgid "Create New Playlist"
-msgstr "Crea nuova Playlist"
-
-#: gtkpod.glade:1461
-msgid "New PL"
-msgstr "Nuova PL"
-
-#: gtkpod.glade:1478
-msgid "Write Changes to Disk/iPod"
-msgstr "Scrivi le modifiche sul disco/iPod"
-
-#: gtkpod.glade:1479
-msgid "Sync"
-msgstr "Sincronizza"
-
-#: gtkpod.glade:1495
-msgid "Stop Display Update"
-msgstr "Ferma l'aggiornamento della visualizzazione"
-
-#: gtkpod.glade:1496
-msgid "Stop"
-msgstr "Stop"
-
-#: gtkpod.glade:1669
-msgid "About gtkpod"
-msgstr "A proposito di gtkpod"
-
-#: gtkpod.glade:1790
-msgid "Credits"
-msgstr "Crediti"
-
-#: gtkpod.glade:1844
-msgid "Translators"
-msgstr "Traduttori"
-
-#: gtkpod.glade:1898
-msgid "special_sorttab -- Don't translate!"
-msgstr ""
-
-#: gtkpod.glade:1932
-msgid " Logic: "
-msgstr "Operatori logici:"
-
-#: gtkpod.glade:1954
-msgid "Any (OR)"
-msgstr "Ogni (OR)"
-
-#: gtkpod.glade:1973
-msgid "All (AND)"
-msgstr "Tutti (AND)"
-
-#: gtkpod.glade:2026
-msgid "0"
-msgstr "0"
-
-#: gtkpod.glade:2045
-msgid "1"
-msgstr "1"
-
-#: gtkpod.glade:2064
-msgid "2"
-msgstr "2"
-
-#: gtkpod.glade:2083
-msgid "3"
-msgstr "3"
-
-#: gtkpod.glade:2102
-msgid "4"
-msgstr "4"
-
-#: gtkpod.glade:2121
-msgid "5"
-msgstr "5"
-
-#: gtkpod.glade:2160
-msgid "Select '0' for no lower limit."
-msgstr "Seleziona '0' per eliminare il limite inferiore."
-
-#: gtkpod.glade:2181
-msgid " <= cts <= "
-msgstr " <= cts <= "
-
-#: gtkpod.glade:2202
-msgid "Select '-1' for no upper limit."
-msgstr "Seleziona '-l' per nessun limite superire"
-
-#: gtkpod.glade:2245 gtkpod.glade:2318 gtkpod.glade:2484
-msgid ""
-"'DD/MM/YYYY HH:MM < d < DD/MM/YYYY HH:MM' or similar. Press 'enter' when "
-"finished."
-msgstr ""
-"'DD/MM/YYYY HH:MM < d < DD/MM/YYYY HH:MM' o simile. Premi 'enter' quando hai "
-"finito."
-
-#: gtkpod.glade:2287 gtkpod.glade:2360 gtkpod.glade:2526 gtkpod.glade:2701
-msgid "Calendar"
-msgstr "Calendario"
-
-#: gtkpod.glade:2385
-msgid "Specify interval"
-msgstr "Specifica l'intervallo"
-
-#: gtkpod.glade:2596
-msgid "Display tracks that match the criteria entered above."
-msgstr "Mostra le tracce che corrispondono ai criteri entrati qui sopra."
-
-#: gtkpod.glade:2639 gtkpod.glade:11330
-msgid "_Display"
-msgstr "_Visualizzazione"
-
-#: gtkpod.glade:2671
-msgid ""
-"Automatically start displaying tracks that match the criteria entered above. "
-"If not selected, you must press 'Display' to start displaying."
-msgstr ""
-"Visualizza automaticamente le tracce che corrispondono ai criteri "
-"specificati qui sopra. Se non selezionati, devi premere 'Mostra' per "
-"attivare la visualizzazione"
-
-#: gtkpod.glade:2673
-msgid "Start display automatically"
-msgstr "Far partire la visualizzazione automaticamente "
-
-#: gtkpod.glade:2746
-msgid "Sorttab: "
-msgstr "Blocco di ordinamento: "
-
-#: gtkpod.glade:2786
-msgid "     "
-msgstr "     "
-
-#: gtkpod.glade:2808
-msgid "Category: "
-msgstr "Categoria: "
-
-#: gtkpod.glade:2885
-msgid "Please specify a time interval"
-msgstr "Specifica un intervallo di tempo"
-
-#: gtkpod.glade:2930
-msgid "Lower Margin"
-msgstr "Margine inferiore"
-
-#: gtkpod.glade:2977 gtkpod.glade:3183
-msgid "Time:"
-msgstr "Durata:"
-
-#: gtkpod.glade:3020 gtkpod.glade:3226
-msgid ":"
-msgstr ":"
-
-#: gtkpod.glade:3093
-msgid "No lower margin"
-msgstr "Nessun margine inferiore"
-
-#: gtkpod.glade:3136
-msgid "Upper margin"
-msgstr "Margine superiore"
-
-#: gtkpod.glade:3299
-msgid "No upper margin"
-msgstr "Nessun margine superiore"
-
-#: gtkpod.glade:3397
-msgid "Sorting Options"
-msgstr "Opzioni di ordinamento"
-
-#: gtkpod.glade:3427
-msgid "<b>Sort Order</b>"
-msgstr "<b>Blocchi di ordinamento</b>"
-
-#: gtkpod.glade:3454 gtkpod.glade:4704 gtkpod.glade:7682 gtkpod.glade:7860
-#: gtkpod.glade:8031 gtkpod.glade:8108 gtkpod.glade:8163 gtkpod.glade:8239
-#: gtkpod.glade:8396 gtkpod.glade:8522 gtkpod.glade:8879 gtkpod.glade:9338
-#: gtkpod.glade:9700 gtkpod.glade:10487 gtkpod.glade:10644 gtkpod.glade:10801
-#: gtkpod.glade:10922 gtkpod.glade:10975 gtkpod.glade:11132 gtkpod.glade:11389
-#: gtkpod.glade:11443 gtkpod.glade:11554 gtkpod.glade:11657 gtkpod.glade:11813
-#: gtkpod.glade:12027 gtkpod.glade:12248 gtkpod.glade:12386 gtkpod.glade:12752
-#: gtkpod.glade:12870 gtkpod.glade:13044 gtkpod.glade:13279 gtkpod.glade:13381
-msgid "    "
-msgstr "     "
-
-#: gtkpod.glade:3482
-msgid ""
-"In order to save the displayed track order to the iPod choose 'Save "
-"Displayed Track Order' from the 'Edit' menu or select 'Auto Store' below."
-msgstr ""
-"Per memorizzare sull'iPod l'ordine delle tracce come visualizzato scegliete "
-"'Salva l'ordine delle tracce' dal menù 'Modifica' o selezionare'Auto Store' "
-"sopra."
-
-#: gtkpod.glade:3865
-msgid "Ascending"
-msgstr "Ascendente"
-
-#: gtkpod.glade:3909
-msgid "Descending"
-msgstr "Discendente"
-
-#: gtkpod.glade:3953
-msgid "None"
-msgstr "Nessuno"
-
-#: gtkpod.glade:4042
-msgid "Sorttabs"
-msgstr "Blocco di ordinamento: "
-
-#: gtkpod.glade:4087
-msgid "Tracks"
-msgstr "Tracce"
-
-#: gtkpod.glade:4240
-msgid "Auto Store"
-msgstr "Salvataggio automatico"
-
-#: gtkpod.glade:4285 gtkpod.glade:4331
-msgid "Please refer to the notice below."
-msgstr "Per favore, consultare la nota precedente."
-
-#: gtkpod.glade:4563
-msgid "Sort tracks according to: "
-msgstr "Ordina le tracce secondo: "
-
-#: gtkpod.glade:4593
-msgid ""
-"You can also use the table headers, but this allows you to sort according to "
-"a column that is not displayed."
-msgstr ""
-"C'è la possibilità di utilizzare l'intestazione della tabella, questo metodo "
-"permette però l'ordinamento anche secondo colonne che non vengono mostrate"
-
-#: gtkpod.glade:4629
-msgid ""
-"If checked, sorting will be case sensitive. Please note that case sensitive "
-"sorting will not work well with most charsets."
-msgstr ""
-"Se selezionata, l'ordinamento sarà case sensitive. Nota: l'ordinamento case "
-"sensitive non funziona bene con la maggior parte delle codifiche."
-
-#: gtkpod.glade:4631
-msgid "Sorting case sensitive"
-msgstr "Ordinamento case sensitive"
-
-#: gtkpod.glade:4677
-msgid "<b>Ignore Frequent Words</b>"
-msgstr "<b>Ignora le parole frequenti</b>"
-
-#: gtkpod.glade:4769
-msgid "Ignore these words when at the beginning of the following fields:"
-msgstr "Ignora le seguenti parole se sono all'inizio dei campi seguetti:"
-
-#: gtkpod.glade:5040
-msgid "gtkpod Info"
-msgstr "informazioni su gtkpod"
-
-#: gtkpod.glade:5339 gtkpod.glade:5414 gtkpod.glade:5439 gtkpod.glade:6065
-#: gtkpod.glade:6198
-msgid "      "
-msgstr "      "
-
-#: gtkpod.glade:5692
-msgid "Number of tracks"
-msgstr "Numero di tracce"
-
-#: gtkpod.glade:5718
-msgid "Play time"
-msgstr "Durata"
-
-#: gtkpod.glade:5745
-msgid "File size"
-msgstr "Dimensione"
-
-#: gtkpod.glade:5771
-msgid "Number of playlists"
-msgstr "Numero delle playlist"
-
-#: gtkpod.glade:5797
-msgid "Deleted tracks"
-msgstr "_Tracce Cancellate"
-
-#: gtkpod.glade:5823
-msgid "File size (deleted)"
-msgstr "Dimensione dei file (cancellatinon trasferiti)"
-
-#: gtkpod.glade:5849
-msgid "Non-transferred tracks"
-msgstr "Tracce non trasferite"
-
-#: gtkpod.glade:5875
-msgid "File size (non-transferred)"
-msgstr "Dimensione dei file (non trasferiti)"
-
-#: gtkpod.glade:5901
-msgid "Effective free space"
-msgstr "Spazio libero effettivo"
-
-#: gtkpod.glade:5927
-msgid ""
-"Total\n"
-"(iPod)"
-msgstr ""
-"Totale\n"
-"(iPod)"
-
-#: gtkpod.glade:5955
-msgid ""
-"Selected\n"
-"Playlist"
-msgstr ""
-"Playlist\n"
-"selezionata"
-
-#: gtkpod.glade:5983
-msgid ""
-"Displayed\n"
-"Tracks"
-msgstr ""
-"Tracce\n"
-"Visualizzate"
-
-#: gtkpod.glade:6011
-msgid ""
-"Selected\n"
-"Tracks"
-msgstr ""
-"Tracce\n"
-"Selezionate"
-
-#: gtkpod.glade:6039
-msgid ""
-"Total\n"
-"(local)"
-msgstr ""
-"Totale\n"
-"(locale)"
-
-#: gtkpod.glade:6436
-msgid "label21"
-msgstr "label21"
-
-#: gtkpod.glade:6527
-msgid "Never show this dialogue again"
-msgstr "Non mostrare mai più questa finestra"
-
-#: gtkpod.glade:6572 gtkpod.glade:6898
-msgid "window1"
-msgstr "window1"
-
-#: gtkpod.glade:6629
-msgid "_M3U"
-msgstr "_M3U"
-
-#: gtkpod.glade:6648
-msgid "_PLS"
-msgstr "_PLS"
-
-#: gtkpod.glade:6686
-msgid ""
-"If available, the local copy of the track is referenced in the playlist. "
-"Otherwise the file on the iPod is used."
-msgstr ""
-"Se disponibile, la copia locale della traccia è referenziata nella playlist. "
-"Altrimenti è usato il file sul iPod."
-
-#: gtkpod.glade:6688
-msgid "_Prefer Local"
-msgstr "_Preferisci i file locali"
-
-#: gtkpod.glade:6706
-msgid ""
-"The local copy of the track is referenced in the playlist. If the track is "
-"not available locally, an error message is displayed."
-msgstr ""
-"La copia locale della traccia èsegnata nella playlist. Se la traccia non è "
-"disponibile localmente, verrà mostrato un messaggio di errore."
-
-#: gtkpod.glade:6708
-msgid "_Local"
-msgstr "_Locale"
-
-#: gtkpod.glade:6727
-msgid "The track on the iPod is referenced in the playlist file."
-msgstr "La traccia dell'iPod è referenziata nel file della playlist."
-
-#: gtkpod.glade:6729
-msgid "_iPod"
-msgstr "_iPod"
-
-#: gtkpod.glade:6762
-msgid "Playlist type:"
-msgstr "Tipo delle playlist:"
-
-#: gtkpod.glade:6787
-msgid "Source:"
-msgstr "Sorgente:"
-
-#: gtkpod.glade:6826
-msgid "Template for info field: "
-msgstr "Maschera per il campo delle informazioni: "
-
-#: gtkpod.glade:6847
-msgid ""
-"Determines how the string for the info field should be constructed, e.g '%a/%"
-"A/%T - %t.mp3' or '%o'.  You can separate several templates by semicolons -- "
-"gtkpod will determine which one to use by the filename extension given. "
-"Artist: %a, album: %A, composer: %c, title: %t, genre: %G, track nr: %T, CD "
-"nr: %C, year: %Y, original filename (requires extended information file): %"
-"o, the character '%': %%."
-msgstr ""
-"Determina come costruire la stringa per il campo info. es. '%a/%A/%T - %t."
-"mp3'o '%o'. Puoi separare diverse maschere con punto e virgola -- gtkopd "
-"determinerà quale usare a seconda della estensione del nome del file data. %"
-"A: artista; %d: album; %n: titolo; %t: genere %G, num della traccia: %T,  "
-"num disco: %C, anno: %Y, nome del file originale (necessita del file delle "
-"informazioni estese): %o, il carattere '%': %%."
-
-#: gtkpod.glade:6878 gtkpod.glade:7108
-msgid "gtkpod options"
-msgstr "opzioni di gtkpod"
-
-#: gtkpod.glade:6934
-msgid "Filename Format: "
-msgstr "Formato del nome del file: "
-
-#: gtkpod.glade:6955
-msgid ""
-"Determines the filename of tracks you copy from the iPod, e.g '%a/%A/%T - %t."
-"mp3' or '%o'.  You can separate several patterns by semicolons -- gtkpod "
-"will determine which one to use by the filename extension given. Artist: %a, "
-"album: %A, composer: %c, title: %t, genre: %G, track nr: %T, CD nr: %C, "
-"year: %Y, original filename (requires extended information file): %o, "
-"current playlist: %p, the character '%': %%."
-msgstr ""
-"Determina il nome del file della traccia che viene copiata dal iPod. es. '%A/"
-"%A/%T -%t.mp3' or '%o'. Puoi separare diverse maschere con punto e virgola  "
-"-- gtkopd determinerà quale usare a seconda dell'estensione del nome del "
-"file data. Artista: %a, album: %A, compositore: %c, titolo: %t, genere: %G, "
-"num della traccia: %T,num disco: %C, anno: %Y, nome del file originale "
-"(necessita del file delle informazioni estese): %o, playlist attuale: %p, il "
-"carattere '%': %%."
-
-#: gtkpod.glade:6960
-msgid " "
-msgstr " "
-
-#: gtkpod.glade:6982
-msgid ""
-"Normally the charset specified when first importing the track will be used "
-"for the filename. If you set this option you can set a different charset "
-"with the charset selector (Preferences/'Adding/Updating/Syncing'). Note: the "
-"charset info is stored in the extended information file (see "
-"Preferences/'Writing of the iTunesDB'). Tracks imported before V0.51 will "
-"have no charset stored. Instead the charset specified will be used."
-msgstr ""
-"Normalmente la codifica di sistema del carattere specificata la prima volta "
-"che importi una traccia viene utilizzata per il nome del file. Se hai scelto "
-"questa opzione puoi impostare una codifica differente con il selettore delle "
-"codifiche (Preferenze/'Aggiungi/Aggiorna/Sincronizza'). Nota: la codifica è "
-"contenuta all'interno del file delle informazioniestese (consulta "
-"Preferenze/'Scrittura del iTunesDB'). Le tracce importate prima della V0.51 "
-"non avranno alcuna codifica memorizzata. Verrà usato il charset specificato."
-
-#: gtkpod.glade:6984
-msgid ""
-"Use selected charset (Preferences/'Adding/Updating/ Syncing')\n"
-"for this filename."
-msgstr ""
-"Usa la codifica selezionata (vedi sopra: 'Aggiungi/Aggiorna/ Sincronizza')\n"
-" per questo file."
-
-#: gtkpod.glade:7003
-msgid ""
-"When copying from iPod no check is performed on whether the destination file "
-"exists. Enabling this option will make gtkpod check whether the length of "
-"the destination file is the same as the file in the iPod. If so the file is "
-"skipped, allowing a quick sync of the iPod's contents."
-msgstr ""
-"Quando copi dall'iPod non sono effettuati controlli sul fatto che il file di "
-"destinazione esista. Selezionare questa opzione farà in modo che gtkpod "
-"controlli se la dimensione del file di destinazione sia la stessa del file "
-"sull'iPod. Se fosse così il file verrà saltato, permettendo una veloce "
-"sincronizzazione del contenuto dell'iPod."
-
-#: gtkpod.glade:7005
-msgid "Check for existing files when copying from iPod."
-msgstr "Controlla i file esistenti quando copi dall'iPod."
-
-#: gtkpod.glade:7169
-msgid "Playlist name:"
-msgstr "Nome della playlist:"
-
-#: gtkpod.glade:7234
-msgid "Match al_l of the following"
-msgstr "Confronta tut_ti i seguenti"
-
-#: gtkpod.glade:7253
-msgid "Match an_y of the following"
-msgstr "Confronta uno quals_iasi dei seguenti"
-
-#: gtkpod.glade:7273
-msgid "_Ignore rules"
-msgstr "_Ignora le regole"
-
-#: gtkpod.glade:7343
-msgid "Rules"
-msgstr "Regole"
-
-#: gtkpod.glade:7376
-msgid "_Limit to"
-msgstr "_Limita a"
-
-#: gtkpod.glade:7425
-msgid "   Sort by:"
-msgstr "   Ordina per:"
-
-#: gtkpod.glade:7471
-msgid "Match only _checked tracks"
-msgstr "Confronta solo le tracce _selezionate"
-
-#: gtkpod.glade:7503
-msgid "Live _updating"
-msgstr "_aggiornamente in diretta"
-
-#: gtkpod.glade:7594
-msgid "Preferences"
-msgstr "Preferenze"
-
-#: gtkpod.glade:7655
-msgid "<b>Import</b>"
-msgstr "<b>Importa</b>"
-
-#: gtkpod.glade:7715
-msgid "iPod Mount _Point:"
-msgstr " _Punto di montaggio dell'iPod"
-
-#: gtkpod.glade:7737
-msgid ""
-"Where you mounted your iPod's filesystem. Usually '/mnt/ipod/' or similar."
-msgstr ""
-"Dove monti di solito il filesystem del tuo iPod. Di solito '/mnt/ipod' o "
-"qualcosa di simile."
-
-#: gtkpod.glade:7765
-msgid ""
-"On startup gtkpod will call 'mount <ipod mountpoint>', on exit a 'umount "
-"<ipod mountpoint>' call is carried out. For more complicated arrangements "
-"please use the ~/.gtkpod/gtkpod.in and ~/.gtkpod/gtkpod.out scripts."
-msgstr ""
-"All'avvio gtkpod chiamerà 'mount <punto di montaggio>', all'uscita invece "
-"'umount <punto di montaggio>'. Per arrangiamenti più complessi usare gli "
-"script ~/.gtkpod/gtkpod.in e ~/.gtkpod/gtkpod.out."
-
-#: gtkpod.glade:7767
-msgid "Handle mounting/unmounting of iPod drive"
-msgstr "Gestisci montaggio/smontaggio del drive iPod"
-
-#: gtkpod.glade:7787
-msgid "Automatically import iTunesDB on startup"
-msgstr "Importa automaticamente l'iTunesDB all'avvio"
-
-#: gtkpod.glade:7833
-msgid "<b>Adding/Updating/Syncing</b>"
-msgstr "<b>Aggiungi/Aggiorna/Sincronizza</b>"
-
-#: gtkpod.glade:7893
 #, fuzzy
-msgid "_Encoding (ID3, files):"
-msgstr "_Charset (ID3, file):"
+#~ msgid "Update Tracks"
+#~ msgstr "Tracce senza voto"
 
-#: gtkpod.glade:7924
-msgid ""
-"gtkpod expects the ID3 tags and the filenames to be in the encoding "
-"specified here. You can change it for consecutive 'Add Files' and 'Add Dirs' "
-"operation. 'System Charset' is the charset used by your current locale."
-msgstr ""
-"gtkpod si aspetta che i tag ID3 e i nomi dei file siano nella stessa "
-"codifica specificata qui. Puoi cambiarla per operazioni di 'aggiungi file' e "
-"'aggiungi directory'.'Codifica di sistema' è la codifica usata dal tuo "
-"sistema."
+#~ msgid "Normalize"
+#~ msgstr "Normalizza"
 
-#: gtkpod.glade:7961
-msgid ""
-"Normally the charset specified when first importing the track will be used "
-"to update the track information. If you have chosen a wrong charset when "
-"first importing a track and want to correct it using the 'Update Track' "
-"function, you must check this option. Note: the charset info is stored in "
-"the extended information file (see 'Writing of iTunesDB' below) and tracks "
-"imported before V0.51 will have no charset stored. Instead the charset "
-"specified above will be used then."
-msgstr ""
-"Normalmente la codifica di sistema specificata al momento di importare la "
-"traccia verrà usata per aggiornare le informazioni sulla traccia. Se hai "
-"scelto la codifica sbagliata al momento della prima importazione e vuoi "
-"correggerla usando la funzione \"Aggiorna la traccia\" devi selezionare "
-"questa opzione. Nota: le informazioni sul carattere sono memorizzate nel "
-"file delle informazioni estese (vedi Esportazione) e le tracce importate "
-"prima di V0.51 non avranno codifica memorizzata, verrà quindi usata la "
-"codifica specificata qui sopra."
-
-#: gtkpod.glade:7963
 #, fuzzy
-msgid ""
-"Use selected encoding also when updating \n"
-"or syncing tracks"
-msgstr ""
-"Usa la codifica selezionata anche quando aggiorni \n"
-"o sincronizzi le tracce"
+#~ msgid "Podcasts Preferences"
+#~ msgstr "_Modifica le preferenze"
 
-#: gtkpod.glade:7983
-msgid "If you check this, gtkpod will descend into subdirectories recursively."
-msgstr "Se selezioni questo, gtkpod discenderà nelle directory ricorsivamente."
+#~ msgid "file not found"
+#~ msgstr "file non trovato"
 
-#: gtkpod.glade:7985
-msgid "Add directories recursively"
-msgstr "Aggiungi le directory ricorsivamente"
+#~ msgid "Unmounting of '%s' (%s) unsuccessful."
+#~ msgstr "Smontaggio di '%s' (%s) fallito."
 
-#: gtkpod.glade:8004
-#, fuzzy
-msgid "Duplicate Recognition is based on a (modified) md5 hash over the file."
-msgstr "Il riconoscimento dei file duplicati è basato su un hash md5 sul file."
+#~ msgid "Unmounting of '%s' unsuccessful."
+#~ msgstr "Smontaggio di '%s' fallito."
 
-#: gtkpod.glade:8006
-msgid "Don't allow file duplication"
-msgstr "Non permettere i file duplicati"
+#~ msgid "Update"
+#~ msgstr "Aggiorna"
 
-#: gtkpod.glade:8052
-msgid ""
-"Display the list of duplicates that have been detected after adding files."
-msgstr ""
-"Mostra la lista dei duplicati che sono stati cancellati dopo l'aggiunta dei "
-"file."
+#~ msgid "Sync Dirs"
+#~ msgstr "Sincronizza le directory"
 
-#: gtkpod.glade:8054
-msgid "Display info about detected duplicates"
-msgstr "Mostra informazioni sui duplicati scoperti"
+#~ msgid "Sync dirs of selected entry in which sort tab?"
+#~ msgstr "Sincronizza le directory delle voci di quale blocco di ordinamento?"
 
-#: gtkpod.glade:8080
-msgid ""
-"If the filename (full path) of an existing track matches that of a track to "
-"be added, this option allows you to update the information about the "
-"existing track rather than just skipping the track altogether. No update "
-"will take place if the file hasn't changed and you have selected the 'Don't "
-"allow file duplication' option above."
-msgstr ""
-"Se il nome del file (path completo) di una traccia esistente corrisponde a "
-"quella di una traccia aggiunta, questa opzione permette di aggiornare le "
-"informazioni della traccia esistente piuttosto che aggiungere di nuovo la "
-"traccia. Il file non verrà aggiornato se non è cambiato e se è attiva "
-"l'opzione 'Non ammettere i file duplicati'."
+#~ msgid "Syncing directory '%s'"
+#~ msgstr "Sincronizzazione della directory '%s' in corso"
 
-#: gtkpod.glade:8082
-msgid ""
-"When adding dirs/files, update information of\n"
-"existing tracks with identical filenames"
-msgstr ""
-"Quando aggiungi file/directory, aggiorna anche le informazioni sulle\n"
-"tracce esistenti con nome identico"
+#~ msgid "Syncing completed. No files deleted."
+#~ msgstr "Sincronizzazione completata. Nessun file cancellato."
 
-#: gtkpod.glade:8129
-msgid "Display a list of tracks that could actually be updated."
-msgstr "Mostra una lista di tracce che potrebbero essere aggiornate."
+#~ msgid "Never delete any files when syncing"
+#~ msgstr "Non cancellare i file durante la sincronizzazione"
 
-#: gtkpod.glade:8131
-msgid "Display info about updated tracks"
-msgstr "Mostra informazioni sulle tracce aggiornate"
+#~ msgid "Syncing completed."
+#~ msgstr "Sincronizzazione completata."
 
-#: gtkpod.glade:8184
-msgid "Display a list of tracks that could not be updated."
-msgstr "Mostra una lista di tracce che non possono essere aggiornate."
+#~ msgid "Syncing aborted"
+#~ msgstr "Sincronizzazione abortita"
 
-#: gtkpod.glade:8186
-msgid "Display info about non-updated tracks"
-msgstr "Mostra informazioni a proposito di tracce non aggiornate"
+#~ msgid "No tracks in selection"
+#~ msgstr "Nessuna traccia selezionata"
 
-#: gtkpod.glade:8212
-msgid "When syncing directories"
-msgstr "Durante la sincronizzazione delle directory"
+#~ msgid "'%s' is not a directory. Ignored.\n"
+#~ msgstr "'%s' non è una directory. Ignorata.\n"
 
-#: gtkpod.glade:8267
-msgid "Confirm lists of directories"
-msgstr "Conferma la lista delle directory"
+#~ msgid ""
+#~ "No directory names were stored. Make sure that you enable 'Write extended "
+#~ "information' in the Export section of the preferences at the time of "
+#~ "importing files.\n"
+#~ "\n"
+#~ "To synchronize directories now, activate the duplicate detection ('Don't "
+#~ "allow file duplication') in the Import section and add the directories "
+#~ "you want to sync again.\n"
+#~ msgstr ""
+#~ "Nessun nome di directory è stato memorizzato. Assicurati di aver attivato "
+#~ "al momento dell'importazione dei file 'Scrivi informazioni estese' tra le "
+#~ "preferenze nella sezione Esportazione.\n"
+#~ "\n"
+#~ "Per sincronizzare le directory adesso, attiva la 'Rilevazione dei "
+#~ "duplicati'  ('Non permettere i file duplicati')nella sezione Importazione "
+#~ "e aggiungi le directory che vuoi sincronizzare di nuovo.\n"
 
-#: gtkpod.glade:8286
-msgid ""
-"If you check this option, tracks that have been removed from the synced "
-"directories will be removed from the iPod as well."
-msgstr ""
-"Se selezioni questa opzione, le tracce che sono state rimosse dalle "
-"directory sincronizzate verranno rimosse anche dall'iPod."
+#~ msgid "No valid directories have been found. Sync aborted.\n"
+#~ msgstr ""
+#~ "Nessuna directory valida è stata trovata. Sincronizzazione abortita.\n"
 
-#: gtkpod.glade:8288
-msgid "Delete tracks that have been removed"
-msgstr "Cancella le tracce che sono state rimosse"
+#~ msgid ""
+#~ "The (former) contents of the following directories will be removed from "
+#~ "the database:\n"
+#~ "\n"
+#~ msgstr ""
+#~ "Il contenuto (precedente) delle directory seguente verrà rimosso dal "
+#~ "database:\n"
+#~ "\n"
 
-#: gtkpod.glade:8307
-msgid "This is the same option as in 'Edit/Delete Confirmation'"
-msgstr "Questa è la stessa opzione in 'Edit/Conferma la cancellazione'"
+#~ msgid ""
+#~ "The following directories will be synchronized:\n"
+#~ "\n"
+#~ msgstr ""
+#~ "La directory seguente verrà sincronizzata:\n"
+#~ "\n"
 
-#: gtkpod.glade:8309
-msgid "Confirm before removing tracks"
-msgstr "Conferma prima di rimuovere le tracce"
+#~ msgid "Synchronize directories"
+#~ msgstr "Sincronizza le directory"
 
-#: gtkpod.glade:8369
-msgid "<b>Sync</b>"
-msgstr "<b>Sincronizza</b>"
+#~ msgid "Syncing contacts, calendar and notes..."
+#~ msgstr "Sincronizzazione di contatti, calendari e note..."
 
-#: gtkpod.glade:8417
-msgid ""
-"Highly recommended for faster import when taking advantage of the "
-"duplication recognition. Also, having the PC filenames allows writing "
-"changed ID3 tags to disk, and even to reconstruct your ipod's contents in "
-"case of file system corruption (change the \"transferred=\" entries in your "
-"backuped database)."
-msgstr ""
-"È altamente raccomandato per importazioni più veloci se si usa il "
-"riconoscimento dei duplicati. Inoltre, avere il nome del file permette di "
-"scrivere i tag ID3 cambiati anche sul disco, e perfino di ricostruire il "
-"contenuto dell'iPod nel caso di corruzioni del filesystem (cambia la voce "
-"\"transferred=\" nel backup del database)."
+#~ msgid "_Synchronize Directories"
+#~ msgstr "_Sincronizza le directory"
 
-#: gtkpod.glade:8419
-#, fuzzy
-msgid ""
-"Write extended information (PC filenames,\n"
-" MD5 hashes, encoding). Recommended."
-msgstr ""
-"Scrivi informazioni estese (nome del file sul PC,\n"
-" hash MD5, codifica dei caratteri). Raccomandato."
+#~ msgid ""
+#~ "Where you mounted your iPod's filesystem. Usually '/mnt/ipod/' or similar."
+#~ msgstr ""
+#~ "Dove monti di solito il filesystem del tuo iPod. Di solito '/mnt/ipod' o "
+#~ "qualcosa di simile."
 
-#: gtkpod.glade:8463 gtkpod.glade:14970
-#, fuzzy
-msgid "_General"
-msgstr "Generale"
+#~ msgid ""
+#~ "If you check this option, tracks that have been removed from the synced "
+#~ "directories will be removed from the iPod as well."
+#~ msgstr ""
+#~ "Se selezioni questa opzione, le tracce che sono state rimosse dalle "
+#~ "directory sincronizzate verranno rimosse anche dall'iPod."
 
-#: gtkpod.glade:8495
-msgid "<b>Tag Reading</b>"
-msgstr "<b>Lettura del Tag</b>"
+#~ msgid "Delete tracks that have been removed"
+#~ msgstr "Cancella le tracce che sono state rimosse"
 
-#: gtkpod.glade:8550
-msgid "Read tags from file contents (e.g. ID3 tags in MP3 files)"
-msgstr "Leggi i tag dal contenuto del file (es. tag ID3 in un file MP3)"
+#~ msgid "Confirm before removing tracks"
+#~ msgstr "Conferma prima di rimuovere le tracce"
 
-#: gtkpod.glade:8569 gtkpod.glade:8906
-msgid ""
-"artist: %a, album: %A, composer: %c, title: %t, genre: %G, track nr: %T, CD "
-"nr: %C, year: %Y, skip data: %*, the character '%': %%. You can separate "
-"several templates by a ';'. The first one matching the filename will be "
-"used. Example: '%a - %A/%T %t.mp3;%t.wav'."
-msgstr ""
-"artista: %a, album: %A, compositore: %c, titolo: %t, genere: %G, traccia "
-"num: %TCD num: %C, year: %Y,carattere di escape: %*, il carattere '%': %%. "
-"Puoi separare diverse maschere usando ';'. Verrà usata la prima "
-"corrispondente al nome di un file  Esempio: %a - %A/%T %t.mp;%t.wav'."
+#~ msgid ""
+#~ "Before removing tracks completely when\n"
+#~ "synchronizing directories"
+#~ msgstr ""
+#~ "Prima di rimuovere completamente le tracce durante la\n"
+#~ "sincronizzazione delle directory"
 
-#: gtkpod.glade:8571
-msgid "Use this template to parse filename for tag information:"
-msgstr ""
-"Usa questa maschera per controllare il nome file per informazioni sul tag"
-
-#: gtkpod.glade:8644
-msgid "Overwrite tags that are already set"
-msgstr "Sovrascrivi i tag che sono giàimpostati."
-
-#: gtkpod.glade:8677
-msgid ""
-"As a last resort set the following tags to the\n"
-"filename if they are (still) empty:"
-msgstr ""
-"Come ultimo tentativo riempi i tag seguenti con\n"
-"il filename se sono (ancora) vuoti:"
-
-#: gtkpod.glade:8852
 #, fuzzy
-msgid "<b>Artwork</b>"
-msgstr "<b>Importa</b>"
+#~ msgid "Add"
+#~ msgstr "Aggiunta"
 
-#: gtkpod.glade:8908
-msgid "Add artwork from file using the following template"
-msgstr ""
-
-#: gtkpod.glade:8960
 #, fuzzy
-msgid ""
-"Determines the name of the file with the cover art. You can separate several "
-"patterns by semicolons which will be tried in order. Artist: %a, album: %A, "
-"composer: %c, title: %t, genre: %G, track nr: %T, CD nr: %C, year: %Y, "
-"original filename (requires extended information file): %o, original "
-"filename without file extension: %O, current playlist: %p, the character "
-"'%': %%."
-msgstr ""
-"Determina il nome del file della traccia che viene copiata dal iPod. es. '%A/"
-"%A/%T -%t.mp3' or '%o'. Puoi separare diverse maschere con punto e virgola  "
-"-- gtkopd determinerà quale usare a seconda dell'estensione del nome del "
-"file data. Artista: %a, album: %A, compositore: %c, titolo: %t, genere: %G, "
-"num della traccia: %T,num disco: %C, anno: %Y, nome del file originale "
-"(necessita del file delle informazioni estese): %o, playlist attuale: %p, il "
-"carattere '%': %%."
+#~ msgid "Delete"
+#~ msgstr "_Tracce Cancellate"
 
-#: gtkpod.glade:8981
 #, fuzzy
-msgid "<b>Examples</b>"
-msgstr "<b>Importa</b>"
+#~ msgid "Name: "
+#~ msgstr "Nome utente: "
 
-#: gtkpod.glade:9011
-msgid "folder.jpg"
-msgstr ""
-
-#: gtkpod.glade:9035
-msgid "folder"
-msgstr ""
-
-#: gtkpod.glade:9059
-msgid "../%A.jpg"
-msgstr ""
-
-#: gtkpod.glade:9083
-msgid "%A"
-msgstr ""
-
-#: gtkpod.glade:9107
-msgid "Use <i>folder.jpg</i> as cover art."
-msgstr ""
-
-#: gtkpod.glade:9131
-msgid "Use <i>folder.jpg</i>, <i>folder.png</i>..."
-msgstr ""
-
-#: gtkpod.glade:9155
-msgid "Use <i>&lt;Album&gt;.jpg</i> in the parent directory"
-msgstr ""
-
-#: gtkpod.glade:9179
-msgid "Use <i>&lt;Album&gt;.jpg</i>, <i>&lt;Album&gt;.png</i>..."
-msgstr ""
-
-#: gtkpod.glade:9203
-msgid "folder.jpg;%a.jpg"
-msgstr ""
-
-#: gtkpod.glade:9227
-msgid "First try <i>folder.jpg</i>, then <i>&lt;artist&gt;.jpg</i>"
-msgstr ""
-
-#: gtkpod.glade:9311
-msgid "<b>mserv</b>"
-msgstr ""
-
-#: gtkpod.glade:9365 gtkpod.glade:9579
-msgid "Currently only rating is supported."
-msgstr "Attualmente solo la votazione è supportata."
-
-#: gtkpod.glade:9367
-msgid "Use mserv database to fill additional information"
-msgstr "Usa il database mserv per aggiungere informazioni addizionali"
-
-#: gtkpod.glade:9395
-msgid "Music Root:"
-msgstr "Radice della musica:"
-
-#: gtkpod.glade:9419
-msgid "mserv database lookup will be done for music in this directory."
-msgstr "Verrà consultato il database mserv per la musica in questa directory."
-
-#: gtkpod.glade:9441
-msgid "mserv Root:"
-msgstr "radice del mserv:"
-
-#: gtkpod.glade:9465
-msgid "Root directory of mserv database (trackinfo root)."
-msgstr "Directory radice del database mserv (radice del trackinfo)."
-
-#: gtkpod.glade:9487
-msgid "Username:"
-msgstr "Nome utente:"
-
-#: gtkpod.glade:9511
-msgid "Username to be used for mserv database lookup."
-msgstr "Nome utente da utilizzare per la consultazione del database mserv"
-
-#: gtkpod.glade:9535 gtkpod.glade:9554 gtkpod.glade:12102 gtkpod.glade:12172
-#: gtkpod.glade:12317 gtkpod.glade:12491 gtkpod.glade:12556 gtkpod.glade:12621
-msgid "Browse"
-msgstr ""
-
-#: gtkpod.glade:9581
-msgid "Show information about problems when accessing mserv"
-msgstr "Mostra informazioni sui problemi nell'accesso a mserv"
-
-#: gtkpod.glade:9627
 #, fuzzy
-msgid "_Track Info"
-msgstr "Traccia"
+#~ msgid "<b>File options</b>"
+#~ msgstr "<b>Conferma la cancellazione</b>"
 
-#: gtkpod.glade:9673
-msgid "<b>Displayed Track Attributes</b>"
-msgstr "<b>Attributi delle tracce visualizzati</b>"
-
-#: gtkpod.glade:10460
-msgid "<b>Sort Tabs</b>"
-msgstr "<b>Blocchi di ordinamento</b>"
-
-#: gtkpod.glade:10514
-msgid "Keeps all compilation CDs grouped together in the artists sort tab."
-msgstr ""
-
-#: gtkpod.glade:10516
-msgid "Group artists on compilation CDs"
-msgstr ""
-
-#: gtkpod.glade:10541
-msgid "_Number of sort tabs:"
-msgstr "_Numero dei blocchi di ordinamento:"
-
-#: gtkpod.glade:10617
-msgid "<b>Automatically select...</b>"
-msgstr "<b>Seleziona automaticamente...</b>"
-
-#: gtkpod.glade:10671
-msgid ""
-"If you don't select the master playlist automatically, the initial database "
-"import is much faster because the display dosn't have to be updated."
-msgstr ""
-"Se non selezioni la playlist principale automaticamente, l'importazione "
-"iniziale del database sarà molto più veloce perchè non verrà aggiornata "
-"l'interfaccia."
-
-#: gtkpod.glade:10673
-msgid "...master playlist"
-msgstr "...playlist principale"
-
-#: gtkpod.glade:10693
-msgid "...entry 'All' in sort tab..."
-msgstr "...voce 'Tutti' nel blocco di ordinamento..."
-
-#: gtkpod.glade:10774
-msgid "<b>Tooltips</b>"
-msgstr "<b>Suggerimenti</b>"
-
-#: gtkpod.glade:10829
-msgid "Display tooltips in main window"
-msgstr "Mostra i suggerimenti nella finestra principale"
-
-#: gtkpod.glade:10849
-msgid "Display tooltips in prefs window"
-msgstr "Mostra i suggerimenti nella finestra delle preferenze"
-
-#: gtkpod.glade:10895
-msgid "<b>Toolbar</b>"
-msgstr "<b>Barra degli Strumenti</b>"
-
-#: gtkpod.glade:10950
-msgid "Display toolbar..."
-msgstr "Mostra la barra degli strumenti..."
-
-#: gtkpod.glade:11003
-msgid "...as icons"
-msgstr "...con icone"
-
-#: gtkpod.glade:11023
-msgid "...as text"
-msgstr "...con testo"
-
-#: gtkpod.glade:11044
-msgid "...both as icons and text"
-msgstr "...con icone e testo"
-
-#: gtkpod.glade:11105
-msgid "<b>Misc</b>"
-msgstr "<b>Misc</b>"
-
-#: gtkpod.glade:11159
-msgid ""
-"It is much faster to sort the display after all tracks have been added. Some "
-"people might feel irritated by this behaviour and should uncheck this option."
-msgstr ""
-"Risulta molto più veloce ordinare la visualizzazione dopo che tutte le "
-"tracce sono state aggiunte. Alcune persone possono essere irritate da questo "
-"comportamento e possono de-selezionare questa opzione."
-
-#: gtkpod.glade:11161
-msgid ""
-"Temporarily disable sorting when changing playlist\n"
-"or tab entry (faster!)"
-msgstr ""
-"Blocca temporanemente l'ordinamento mentre cambi playlist o blocco\n"
-" di voci (più veloce!)"
-
-#: gtkpod.glade:11181
-msgid ""
-"The display can be blocked after changing a selection. The display update is "
-"faster, but you have to wait until it's finished. When using this option, "
-"sorting is also temporarily disabled (see option above)."
-msgstr ""
-"La visualizzazione può essere bloccata dopo aver cambiato una selezione. "
-"L'aggiornamento della visualizzazione sarà più veloce, ma bisogna aspettare "
-"il suo completamento. Quando si usa questa opzione, anche l'ordinamento è "
-"temporaneamente disabilitato (vedere l'opzione precedente)."
-
-#: gtkpod.glade:11183
-msgid ""
-"Block display when changing playlist or tab\n"
-" entry (faster!)"
-msgstr ""
-"Blocca l'interfaccia mentre cambi playlist o blocco\n"
-" di voci (più veloce!)"
-
-#: gtkpod.glade:11203
-msgid "This option will be re-activated when you upgrade gtkpod."
-msgstr "Questa opzione verrà riattivata all'aggiornamento di gtkpod."
-
-#: gtkpod.glade:11205
-msgid "Display messages and warnings at startup"
-msgstr "Mostra messaggi e avvertimenti all'avvio"
-
-#: gtkpod.glade:11267
-msgid "Advanced Sorting Options"
-msgstr "Opzioni di ordinamento avanzate"
-
-#: gtkpod.glade:11362
-msgid "<b>Track Editing</b>"
-msgstr "<b>Modifica della traccia</b>"
-
-#: gtkpod.glade:11416
-msgid ""
-"The tags are written to the files on your harddrive and on the ipod (if "
-"available)."
-msgstr ""
-"I tag vengono scritti sui file nel tuo disco e sull'iPod (se disponibile)."
-
-#: gtkpod.glade:11418
-msgid "Write ID3 tags to disk when modified in gtkpod"
-msgstr "Scrivi i tag ID3 sul disco quando vengono modificati in gtkpod"
-
-#: gtkpod.glade:11470
-msgid ""
-"Normally the charset specified when first importing the track will be used "
-"to write the tags. If you have chosen a wrong charset when first importing a "
-"track, you should select this option along with the correct charset.  Note: "
-"uses the extended information file to store the charset information (see "
-"'Writing of the iTunesDB' on the 'Input/Output' page) and tracks imported "
-"before V0.51 will have no charset stored -- the charset specified on the "
-"'Input/Output' page will be used."
-msgstr ""
-"Normalmente la codifica di sistema specificata al momento di importare la "
-"traccia verrà usata per scrivere il tag. Se hai scelto la codifica sbagliata "
-"al momento della prima importazione, devi selezionare questa opzione insieme "
-"alla codifica giusto. Nota: le informazioni sul carattere sono memorizzate "
-"nel file delle informazioni estese (vedi oltre) e le tracce importate prima "
-"della V0.51 non avranno codifica memorizzata, verrà quindi usata la codifica "
-"specificata nella sezione Importazione."
-
-#: gtkpod.glade:11472
 #, fuzzy
-msgid ""
-"Use selected encoding (on the 'General' page)\n"
-"when writing tags"
-msgstr ""
-"Usa la codifica selezionata (nella pagina 'Generale')\n"
-" per la scrittura dei tag"
+#~ msgid " days old"
+#~ msgstr "giorni"
 
-#: gtkpod.glade:11492
-msgid ""
-"This is the way to go, but maybe not all programs support it yet. ID3v2.4 "
-"uses unicode to store the tags, so you won't have to worry about charsets "
-"any more. gtkpod will use UTF8 encoding as this will not increase the size "
-"of pure ASCII tags. ID3v2.2/4 tags will also be written if they are already "
-"present in the file to write to."
-msgstr ""
-"Questa è la strada da seguire, ma non tutti i programmi probabilmente la "
-"supportano già. ID3v2.4 usa unicode per memorizzare i tag, quindi non c' "
-"èpiù  bisogno di preoccuparsi dei caratteri. gtkpod userà la codifica UTF8 "
-"perchè questa non incrementerà la dimensione dei tag ASCII. I tag ID3v2.2/4 "
-"verranno scritti se sono già presenti sul file su cui si va a scrivere."
-
-#: gtkpod.glade:11494
-msgid "Always write ID3v2.4 tags (only applies to MP3)"
-msgstr "Scrivi sempre tag ID3v2.4 (vale solo per gli MP3)"
-
-#: gtkpod.glade:11527
-msgid ""
-"If you select several tracks in the track list and edit a tag of the first "
-"track, the tags in the other tracks are updated as well."
-msgstr ""
-"Se selezioni diverse tracce nella playlist e modifichi il tag della prima i "
-"tag delle altre verrà aggiornato."
-
-#: gtkpod.glade:11529
-msgid "Use 'Multi-Edit' for tracks selections"
-msgstr "Usa 'Multi-Edit' per la selezione dei file"
-
-#: gtkpod.glade:11575
-msgid ""
-"Usually you don't want to set the title of several tracks to the same text. "
-"This option might avoid unwanted results (especially since there is no "
-"'undo' yet)."
-msgstr ""
-"Di solito non è desiderabile usare lo stesso titolo per diverse tracce. "
-"Questa opzione può evitare effetti non voluti (specialmente vista l'assenza "
-"della opzione 'Annulla')."
-
-#: gtkpod.glade:11577
-msgid "Use 'Multi-Edit' also for title field"
-msgstr "Usa 'Multi-edit' anche per il campo titolo"
-
-#: gtkpod.glade:11630
-msgid "<b>Auto-Generated Playlists</b>"
-msgstr "<b>Playlist Auto-Generata</b>"
-
-#: gtkpod.glade:11690
-msgid "Number of tracks in generated playlists:"
-msgstr "Numero di tracce nelle playlist generate:"
-
-#: gtkpod.glade:11711
-msgid ""
-"Number of tracks in the generated playlists 'Most Often Listened', 'Best "
-"Rated' and 'Most Recently Played'. Choose '0' for 'no limit'."
-msgstr ""
-"Numero delle tracce nelle playlist generate 'Ascoltate più spesso', 'Tracce "
-"con il voto migliore' e 'Tracce riprodotte più recentemente'. Scegliere '0' "
-"per 'nessun limite'"
-
-#: gtkpod.glade:11740
-msgid "Also include tracks never played in \"Best Rated\" playlist"
-msgstr ""
-"Includi le tracce mai ascoltate nella playlist \"Tracce con il voto migliore"
-"\""
-
-#: gtkpod.glade:11786
-msgid "<b>Delete Confirmation</b>"
-msgstr "<b>Conferma la cancellazione</b>"
-
-#: gtkpod.glade:11841
-msgid "Before removing playlists or tracks from a playlist"
-msgstr "Prima di rimuovere le playlist o le tracce dalla playlist"
-
-#: gtkpod.glade:11861
-msgid "Before removing tracks from the iPod"
-msgstr "Prima di rimuovere le tracce dall'iPod"
-
-#: gtkpod.glade:11881
-msgid "Before removing tracks from the harddisk"
-msgstr "Prima di rimuovere completamente le tracce dal disco fisso"
-
-#: gtkpod.glade:11901
-msgid "Before removing tracks from the local database"
-msgstr "Prima di rimuovere le tracce dal database locale"
-
-#: gtkpod.glade:11921
-msgid ""
-"Before removing tracks completely when\n"
-"synchronizing directories"
-msgstr ""
-"Prima di rimuovere completamente le tracce durante la\n"
-"sincronizzazione delle directory"
-
-#: gtkpod.glade:12000
-msgid "<b>Play</b>"
-msgstr "<b>Riproduzione</b>"
-
-#: gtkpod.glade:12060
-msgid "Command for 'Play now':"
-msgstr "Comando per 'Suona ora':"
-
-#: gtkpod.glade:12081
-msgid ""
-"For example, 'xmms %s' will clear xmms' current playlist, add the selected "
-"tracks and start playing."
-msgstr ""
-"Per esempio, 'xmms %s' cancellerà la playlist attuale di xmms, aggiungerà la "
-"traccia selezionata e comincerà a suonarla."
-
-#: gtkpod.glade:12130
-msgid "Command for 'Enqueue':"
-msgstr "Comando per 'Metti in coda':"
-
-#: gtkpod.glade:12151
-msgid ""
-"For example, 'xmms -e %s' will append (enqueue) the selected tracks to xmms' "
-"current playlist."
-msgstr ""
-"Per esempio, 'xmms -e %s' appenderà (in coda) la traccia selezionata alla "
-"playlist corrente di xmms."
-
-#: gtkpod.glade:12221
-msgid "<b>Volume Normalization</b>"
-msgstr "<b>Normalizzazione del volume</b>"
-
-#: gtkpod.glade:12275
-msgid "'mp3gain' executable:"
-msgstr "eseguibile 'mp3gain':"
-
-#: gtkpod.glade:12296
-msgid ""
-"You only need to specify this if your 'mp3gain' executable is not in your "
-"default path. Example: '/usr/local/foo/mp3gain'. mp3gain will write the "
-"calculated gain value back to the file -- if you don't want this, set this "
-"entry to /bin/true or similar. mp3gain is only called if appropriate tags "
-"are not already set by your encoder. E.g. lame version 0.95 already writes "
-"the gain values into tags. The exact conversion factor between mp3gain's "
-"gain value and iPod's volume tag is not known yet -- your input is "
-"appreciated."
-msgstr ""
-"Si deve specificare solo se se l'eseguibile 'mp3gain' non è nella path di "
-"default. Esempio: '/usr/local/foo/mp3gain'. mp3gain scriverà il valore del "
-"guadagno calcolato direttamente sul file -- se non lo vuoi modifica questa "
-"voce con /bin/true o qualcosa di simile. mp3gain è richiamato solo se non "
-"sono statiimpostati impostati i tag giusti dal tuo encoder. Es.  lame "
-"versione 0.95 già scrive il valore del guadagno nei tag. Il fattore di "
-"conversione tra il valore del guadagno di mp3gain e il tag del volume "
-"dell'iPod non è ancora conosciuto -- il tuo contributo è gradito."
-
-#: gtkpod.glade:12359
-msgid "<b>Synchronization</b>"
-msgstr "<b>Sincronizzazione</b>"
-
-#: gtkpod.glade:12444
-msgid "Contacts sync command:"
-msgstr "Comando sincronizzazione contatti:"
-
-#: gtkpod.glade:12468 gtkpod.glade:12533 gtkpod.glade:12598
-msgid ""
-"Specify exact path including command line options. '%i' will be replaced "
-"with the mount point of the iPod."
-msgstr ""
-"Specificare la path esatta incluse le opzioni della linea di comando. '%i' "
-"verrà sostituito con il punto di montaggio dell'iPod."
-
-#: gtkpod.glade:12509
-msgid "Calendar sync command:"
-msgstr "Comando sincronizzazione calendario:"
-
-#: gtkpod.glade:12574
-msgid "Notes sync command:"
-msgstr "Comando sincronizzazione note:"
-
-#: gtkpod.glade:12647
-msgid "Call automatically when synchronizing iTunesDB"
-msgstr "Chiama automaticamente mentre sincronizzi l'iTunesDB"
-
-#: gtkpod.glade:12725
-msgid "<b>Podcast subscriptions</b>"
-msgstr ""
-
-#: gtkpod.glade:12800
 #, fuzzy
-msgid "Add"
-msgstr "Aggiunta"
+#~ msgid "Delete once copied to iPod"
+#~ msgstr "Cancella completamente una traccia dall'iPod"
 
-#: gtkpod.glade:12834
 #, fuzzy
-msgid "Delete"
-msgstr "_Tracce Cancellate"
+#~ msgid "Create podcast logfile at:"
+#~ msgstr "Crea un File Playlist"
 
-#: gtkpod.glade:12900
 #, fuzzy
-msgid "Name: "
-msgstr "Nome utente: "
+#~ msgid "<b>iPod options</b>"
+#~ msgstr "<b>Suggerimenti</b>"
 
-#: gtkpod.glade:12924
-msgid "URL: "
-msgstr ""
-
-#: gtkpod.glade:13017
 #, fuzzy
-msgid "<b>File options</b>"
-msgstr "<b>Conferma la cancellazione</b>"
+#~ msgid "Automatically sync to iPod"
+#~ msgstr "Seleziona automaticamente..."
 
-#: gtkpod.glade:13077
-msgid "Save podcasts to: "
-msgstr ""
-
-#: gtkpod.glade:13132
-msgid "Delete from computer when "
-msgstr ""
-
-#: gtkpod.glade:13172 gtkpod.glade:13474
 #, fuzzy
-msgid " days old"
-msgstr "giorni"
+#~ msgid "Delete from iPod when "
+#~ msgstr "Cancella dall'iPod"
 
-#: gtkpod.glade:13201
 #, fuzzy
-msgid "Delete once copied to iPod"
-msgstr "Cancella completamente una traccia dall'iPod"
+#~ msgid "Delete from iPod if podcast has been played"
+#~ msgstr "Data e ora in cui la traccia è stata riprodotta l'ultima volta"
 
-#: gtkpod.glade:13227
 #, fuzzy
-msgid "Automatically fetch podcasts on startup"
-msgstr "Importa automaticamente l'iTunesDB all'avvio"
+#~ msgid "Abort selected"
+#~ msgstr "Nessuna traccia selezionata."
 
-#: gtkpod.glade:13254
-#, fuzzy
-msgid "Create podcast logfile at:"
-msgstr "Crea un File Playlist"
-
-#: gtkpod.glade:13354
-#, fuzzy
-msgid "<b>iPod options</b>"
-msgstr "<b>Suggerimenti</b>"
-
-#: gtkpod.glade:13409
-#, fuzzy
-msgid "Automatically sync to iPod"
-msgstr "Seleziona automaticamente..."
-
-#: gtkpod.glade:13435
-#, fuzzy
-msgid "Delete from iPod when "
-msgstr "Cancella dall'iPod"
-
-#: gtkpod.glade:13503
-#, fuzzy
-msgid "Delete from iPod if podcast has been played"
-msgstr "Data e ora in cui la traccia è stata riprodotta l'ultima volta"
-
-#: gtkpod.glade:13523
-msgid "Include broadcast date in track title"
-msgstr ""
-
-#: gtkpod.glade:13543
-msgid "Set all podcast genres to 'Podcast'"
-msgstr ""
-
-#: gtkpod.glade:13589 gtkpod.glade:15342
-msgid "_Podcasts"
-msgstr ""
-
-#: gtkpod.glade:13754
-msgid ""
-"\n"
-"\n"
-msgstr ""
-
-#: gtkpod.glade:13788
-#, fuzzy
-msgid "Abort selected"
-msgstr "Nessuna traccia selezionata."
-
-#: gtkpod.glade:13804
-msgid "Abort current"
-msgstr ""
-
-#: gtkpod.glade:13820
-msgid "Abort all"
-msgstr ""
-
-#: gtkpod.glade:13844
-msgid "Details"
-msgstr ""
-
-#: gtkpod.glade:13905
-#, fuzzy
-msgid "Cover"
-msgstr "Compositore"
-
-#: gtkpod.glade:13990
-msgid "Set Cover Art"
-msgstr ""
-
-#: gtkpod.glade:14023
-msgid ""
-"If you check this, information (cover art and meta information) changed for "
-"this track will be copied to all other selected tracks as well. Use with "
-"care."
-msgstr ""
-
-#: gtkpod.glade:14069
-msgid ""
-"Change all tracks\n"
-"simultaneously"
-msgstr ""
-
-#: gtkpod.glade:14157
-msgid "Remove Cover Art"
-msgstr ""
-
-#: gtkpod.glade:16246
-msgid "_Other"
-msgstr ""
-
-#: gtkpod.glade:16536
-msgid "_Undo All"
-msgstr ""
-
-#: gtkpod.glade:16606
-#, fuzzy
-msgid "_Undo Track"
-msgstr "Tracce senza voto"
-
 #~ msgid "Export Tracks"
 #~ msgstr "Tracce da esportare"
 
@@ -5001,9 +5380,6 @@
 #~ msgid "Auto-Generated Playlists"
 #~ msgstr "Playlist Auto-Generata"
 
-#~ msgid "Before removing tracks completely from the iPod"
-#~ msgstr "Prima di rimuovere completamente le tracce dall'iPod"
-
 #~ msgid ""
 #~ "This option only has a meaning if you activate the 'Delete Tracks that "
 #~ "have been Removed' option in the 'Adding/Updating/Syncing' section in the "

Modified: gtkpod/branches/upstream/current/po/ja.gmo
===================================================================
(Binary files differ)

Modified: gtkpod/branches/upstream/current/po/ja.po
===================================================================
--- gtkpod/branches/upstream/current/po/ja.po	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/po/ja.po	2006-09-30 00:00:17 UTC (rev 139)
@@ -7,7 +7,7 @@
 msgstr ""
 "Project-Id-Version: gtkpod 0.40\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-03-05 23:01+0900\n"
+"POT-Creation-Date: 2006-09-24 23:08+0900\n"
 "PO-Revision-Date: 2005-06-20 23:25+0900\n"
 "Last-Translator: Kentaro Fukuchi <fukuchi at users.sourceforge.net>\n"
 "Language-Team: n/a\n"
@@ -16,6 +16,1829 @@
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=1; plural=0;\n"
 
+#: gtkpod.glade:7
+msgid "gtkpod"
+msgstr "gtkpod"
+
+#: gtkpod.glade:40
+msgid "_File"
+msgstr "¥Õ¥¡¥¤¥ë(_F)"
+
+#: gtkpod.glade:49
+#, fuzzy
+msgid "_Load iPod(s)"
+msgstr "iPod ¥Õ¥¡¥¤¥ë"
+
+#: gtkpod.glade:69
+msgid "_Save Changes"
+msgstr ""
+
+#: gtkpod.glade:90
+msgid "Add _Files"
+msgstr "¥Õ¥¡¥¤¥ë¤òÄɲ乤ë(_F)"
+
+#: gtkpod.glade:111
+msgid "Add _Directory"
+msgstr "¥Ç¥£¥ì¥¯¥È¥ê¤òÄɲ乤ë(_D)"
+
+#: gtkpod.glade:132
+msgid "Add _Playlist"
+msgstr "¥×¥ì¥¤¥ê¥¹¥È¤òÄɲ乤ë(_P)"
+
+#: gtkpod.glade:159
+msgid "_Update Tracks from File"
+msgstr "¥Õ¥¡¥¤¥ë¤ò¸µ¤Ë¶Ê¤ò¹¹¿·¤¹¤ë(_U)"
+
+#: gtkpod.glade:180 gtkpod.glade:232 gtkpod.glade:311 gtkpod.glade:363
+#: gtkpod.glade:1092 gtkpod.glade:1144 gtkpod.glade:1190
+msgid "Selected _Playlist"
+msgstr "¥×¥ì¥¤¥ê¥¹¥È(_P)"
+
+#: gtkpod.glade:189 gtkpod.glade:241 gtkpod.glade:320 gtkpod.glade:372
+#: gtkpod.glade:1101 gtkpod.glade:1153 gtkpod.glade:1199
+msgid "Selected Tab _Entry"
+msgstr "ÁªÂò¤µ¤ì¤Æ¤¤¤ë¥½¡¼¥È¥¿¥Ö(_E)"
+
+#: gtkpod.glade:198 gtkpod.glade:250 gtkpod.glade:329 gtkpod.glade:381
+#: gtkpod.glade:498 gtkpod.glade:1110 gtkpod.glade:1162 gtkpod.glade:1208
+msgid "Selected _Tracks"
+msgstr "ÁªÂò¤µ¤ì¤Æ¤¤¤ë¶Ê(_S)"
+
+#: gtkpod.glade:211
+msgid "Update _mserv Data from File"
+msgstr "mserv ¥Ç¡¼¥¿¤ò¹¹¿·¤¹¤ë(_m)"
+
+#: gtkpod.glade:263
+#, fuzzy
+msgid "_Synchronize Playlist"
+msgstr "¤¹¤Ù¤ÆƱ´ü"
+
+#: gtkpod.glade:290
+#, fuzzy
+msgid "_Export Tracks from Database"
+msgstr "¤¹¤Ù¤Æ¤Î¶Ê¤ò¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤éºï½ü"
+
+#: gtkpod.glade:342
+msgid "Create _Playlist File"
+msgstr "¥×¥ì¥¤¥ê¥¹¥È¤òºîÀ® (_P)"
+
+#: gtkpod.glade:400
+msgid "_Create iPod's Directories"
+msgstr "iPod¤Î½é´üÀßÄê(_C)"
+
+#: gtkpod.glade:421
+msgid ""
+"Find orphan files (files with no track info in DB) and dangling tracks "
+"(tracks with no corresponding files on iPOD)"
+msgstr ""
+
+#: gtkpod.glade:422
+msgid "_Check iPod's Files"
+msgstr "iPod ¤Î¥Á¥§¥Ã¥¯(_C)"
+
+#: gtkpod.glade:450 gtkpod.glade:12687
+msgid "_Edit"
+msgstr "ÊÔ½¸(_E)"
+
+#: gtkpod.glade:459 src/context_menus.c:480
+#, fuzzy
+msgid "Edit Track Details"
+msgstr "¾ÜºÙ¤òÊÔ½¸"
+
+#: gtkpod.glade:480
+#, fuzzy
+msgid "Tracks in Selected _Playlist"
+msgstr "¥×¥ì¥¤¥ê¥¹¥È(_P)"
+
+#: gtkpod.glade:489
+#, fuzzy
+msgid "Tracks in Selected Tab _Entry"
+msgstr "ÁªÂò¤µ¤ì¤Æ¤¤¤ë¥½¡¼¥È¥¿¥Ö(_E)"
+
+#: gtkpod.glade:511 src/context_menus.c:407
+msgid "Edit Smart Playlist"
+msgstr "¥¹¥Þ¡¼¥È¥×¥ì¥¤¥ê¥¹¥È¤ÎÊÔ½¸"
+
+#: gtkpod.glade:520
+msgid "_Delete"
+msgstr ""
+
+#: gtkpod.glade:541
+#, fuzzy
+msgid "Selected playlist"
+msgstr "¥×¥ì¥¤¥ê¥¹¥È(_P)"
+
+#: gtkpod.glade:550
+#, fuzzy
+msgid "Selected playlist including tracks from iPod"
+msgstr "¥×¥ì¥¤¥ê¥¹¥È '%s'¡Ê%d ¶ÊÆþ¤ê¡Ë¤òºï½ü¤·¤Þ¤·¤¿"
+
+#: gtkpod.glade:559
+#, fuzzy
+msgid "Selected playlist including tracks from database"
+msgstr "Ãæ¤Î¶Ê¤´¤Èºï½ü (¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤é)"
+
+#: gtkpod.glade:568
+#, fuzzy
+msgid "Selected playlist including tracks from harddisk"
+msgstr "¥×¥ì¥¤¥ê¥¹¥È '%s'¡Ê%d ¶ÊÆþ¤ê¡Ë¤òºï½ü¤·¤Þ¤·¤¿"
+
+#: gtkpod.glade:583
+msgid "Selected filter tab entry from playlist"
+msgstr ""
+
+#: gtkpod.glade:592
+#, fuzzy
+msgid "Selected filter tab entry from iPod"
+msgstr "iPod¤«¤é1¶Ê´°Á´¤Ëºï½ü¤·¤Þ¤·¤¿"
+
+#: gtkpod.glade:601
+msgid "Selected filter tab entry from database"
+msgstr ""
+
+#: gtkpod.glade:610
+#, fuzzy
+msgid "Selected filter tab entry from harddisk"
+msgstr "¤³¤Î¶Ê¤ò¥Ï¡¼¥É¥Ç¥£¥¹¥¯¤«¤éºï½ü¤·¤Þ¤¹¤«?"
+
+#: gtkpod.glade:625
+#, fuzzy
+msgid "Selected tracks from playlist"
+msgstr "¥×¥ì¥¤¥ê¥¹¥È¤«¤éºï½ü"
+
+#: gtkpod.glade:634
+#, fuzzy
+msgid "Selected tracks from iPod"
+msgstr "iPod¤«¤é1¶Ê´°Á´¤Ëºï½ü¤·¤Þ¤·¤¿"
+
+#: gtkpod.glade:643
+#, fuzzy
+msgid "Selected tracks from database"
+msgstr "¤¹¤Ù¤Æ¤Î¶Ê¤ò¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤éºï½ü"
+
+#: gtkpod.glade:652
+#, fuzzy
+msgid "Selected tracks from harddisk"
+msgstr "¤³¤Î¶Ê¤ò¥Ï¡¼¥É¥Ç¥£¥¹¥¯¤«¤éºï½ü¤·¤Þ¤¹¤«?"
+
+#: gtkpod.glade:671
+msgid "_Create Playlists"
+msgstr "¥×¥ì¥¤¥ê¥¹¥ÈºîÀ®(_C)"
+
+#: gtkpod.glade:692
+msgid "Empty Playlist"
+msgstr "¶õ¥ê¥¹¥È"
+
+#: gtkpod.glade:701 gtkpod.glade:7379 src/misc_playlist.c:97
+#: src/repository.c:1359
+msgid "Smart Playlist"
+msgstr "¥¹¥Þ¡¼¥È¥×¥ì¥¤¥ê¥¹¥È"
+
+#: gtkpod.glade:716
+msgid "Random Playlist from Displayed Tracks"
+msgstr "ɽ¼¨¤µ¤ì¤Æ¤¤¤ë¶Ê¤«¤é¥é¥ó¥À¥à¤ËºîÀ®"
+
+#: gtkpod.glade:725
+msgid "Containing Displayed Tracks"
+msgstr "ɽ¼¨¤µ¤ì¤Æ¤¤¤ë¶Ê¤«¤éºîÀ®"
+
+#: gtkpod.glade:734
+msgid "Containing Selected Tracks"
+msgstr "ÁªÂò¤µ¤ì¤Æ¤¤¤ë¶Ê¤«¤éºîÀ®"
+
+#: gtkpod.glade:743
+msgid "One for each Artist"
+msgstr "³Æ¥¢¡¼¥Æ¥£¥¹¥È¤´¤È¤Î¥ê¥¹¥È"
+
+#: gtkpod.glade:752
+msgid "One for each Album"
+msgstr "³Æ¥¢¥ë¥Ð¥à¤´¤È¤Î¥ê¥¹¥È"
+
+#: gtkpod.glade:761
+msgid "One for each Genre"
+msgstr "³Æ¥¸¥ã¥ó¥ë¤´¤È¤Î¥ê¥¹¥È"
+
+#: gtkpod.glade:770
+msgid "One for each Composer"
+msgstr "³Æºî¶Ê¼Ô¤´¤È¤Î¥ê¥¹¥È"
+
+#: gtkpod.glade:779
+msgid "One for each Year"
+msgstr "³Æǯ¤´¤È¤Î¥ê¥¹¥È"
+
+#: gtkpod.glade:788
+msgid "One for each Rating"
+msgstr "³Æɾ²ÁÃͤ´¤È¤Î¥ê¥¹¥È"
+
+#: gtkpod.glade:797
+msgid "Best Rated Tracks"
+msgstr "ɾ²Á¤Î¹â¤¤¶Ê"
+
+#: gtkpod.glade:806
+msgid "Tracks Most Often Listened To"
+msgstr "ºÆÀ¸²ó¿ô¤Î¿¤¤¶Ê"
+
+#: gtkpod.glade:815
+msgid "Most Recently Played Tracks"
+msgstr "ºÇ¶áºÆÀ¸¤µ¤ì¤¿¶Ê"
+
+#: gtkpod.glade:824
+msgid "All Tracks Played Since Last Time"
+msgstr "Á°²ó°Ê¹ßºÆÀ¸¤µ¤ì¤¿¶Ê"
+
+#: gtkpod.glade:833
+msgid "All Tracks Never Listened To"
+msgstr "°ìÅÙ¤âÄ°¤¤¤¿»ö¤¬¤Ê¤¤¶Ê"
+
+#: gtkpod.glade:842
+msgid "All Tracks not Listed in any Playlist"
+msgstr "¥×¥ì¥¤¥ê¥¹¥È¤ËºÜ¤Ã¤Æ¤¤¤Ê¤¤¤¹¤Ù¤Æ¤Î¶Ê"
+
+#: gtkpod.glade:861
+msgid "_Sorting"
+msgstr "ʤٴ¹¤¨(_S)"
+
+#: gtkpod.glade:883
+msgid "Randomize Current Playlist"
+msgstr "¸½ºß¤Î¥×¥ì¥¤¥ê¥¹¥È¤ò¥é¥ó¥À¥à¤Ëʤٴ¹¤¨¤ë"
+
+#: gtkpod.glade:892
+msgid "_Save Displayed Track Order"
+msgstr "¸½ºß¤Î¶Ê½ç¤òÊݸ(_S)"
+
+#: gtkpod.glade:920
+#, fuzzy
+msgid "Edit Repository/iPod Options"
+msgstr "¥½¡¼¥È¤ÎÀßÄê"
+
+#: gtkpod.glade:941
+#, fuzzy
+msgid "Edit _Preferences"
+msgstr "ÀßÄê(_E)"
+
+#: gtkpod.glade:967
+msgid "_View"
+msgstr "ɽ¼¨(_V)"
+
+#: gtkpod.glade:976
+msgid "_Toolbar"
+msgstr "¥Ä¡¼¥ë¥Ð¡¼(_T)"
+
+#: gtkpod.glade:986
+msgid "_Tooltips"
+msgstr "¥Ä¡¼¥ë¥Á¥Ã¥×(_T)"
+
+#: gtkpod.glade:996
+msgid "_Info Window"
+msgstr "¾ðÊó(_I)"
+
+#: gtkpod.glade:1007
+msgid "_More Sort Tabs"
+msgstr "¥½¡¼¥È¥¿¥Ö¤ÎÄɲÃ(_M)"
+
+#: gtkpod.glade:1028
+msgid "_Less Sort Tabs"
+msgstr "¥½¡¼¥È¥¿¥Ö¤Îºï½ü(_L)"
+
+#: gtkpod.glade:1049
+msgid "_Arrange Sort Tabs"
+msgstr "¥½¡¼¥È¥¿¥Ö¤òºÆÇÛÃÖ(_A)"
+
+#: gtkpod.glade:1062 gtkpod.glade:13297
+msgid "_Tools"
+msgstr "¥Ä¡¼¥ë(_T)"
+
+#: gtkpod.glade:1071
+msgid "_Play Now"
+msgstr "º£¤¹¤°±éÁÕ(_P)"
+
+#: gtkpod.glade:1123
+msgid "_Enqueue"
+msgstr "±éÁÕ¥­¥å¡¼¤ËÆþ¤ì¤ë(_E)"
+
+#: gtkpod.glade:1181
+msgid "_Normalize Volume"
+msgstr "¥Ü¥ê¥å¡¼¥à¤ÎÊ¿¶Ñ²½"
+
+#: gtkpod.glade:1217
+msgid "_Displayed Tracks"
+msgstr "ɽ¼¨¤µ¤ì¤Æ¤¤¤ë¶Ê(_D)"
+
+#: gtkpod.glade:1226
+msgid "_All Tracks"
+msgstr "¤¹¤Ù¤Æ¤Î¶Ê(_A)"
+
+#: gtkpod.glade:1235
+msgid "_Newly Added Tracks"
+msgstr "¿·¤¿¤ËÄɲ䵤줿¶Ê(_N)"
+
+#: gtkpod.glade:1254
+msgid "Synchronise Contacts, Calendar and Notes"
+msgstr "¶Ê¡¢¥«¥ì¥ó¥À¡¼¡¢¥Î¡¼¥È¤òƱ´ü¤¹¤ë"
+
+#: gtkpod.glade:1255
+msgid "Synchronize All"
+msgstr "¤¹¤Ù¤ÆƱ´ü"
+
+#: gtkpod.glade:1264
+msgid "Synchronize Contacts"
+msgstr "¶Ê¤òƱ´ü"
+
+#: gtkpod.glade:1273
+msgid "Synchronize Calendar"
+msgstr "¥«¥ì¥ó¥À¡¼¤òƱ´ü"
+
+#: gtkpod.glade:1282
+msgid "Synchronize Notes"
+msgstr "¥Î¡¼¥È¤òƱ´ü"
+
+#: gtkpod.glade:1295
+msgid "_Help"
+msgstr "¥Ø¥ë¥×(_H)"
+
+#: gtkpod.glade:1304
+msgid "_About"
+msgstr "gtkpod¤Ë¤Ä¤¤¤Æ(_A)"
+
+#: gtkpod.glade:1344
+msgid ""
+"Try to load contents of all connected iPods. For each iPod a separate "
+"repository must be set up."
+msgstr ""
+
+#: gtkpod.glade:1345
+#, fuzzy
+msgid "Load iPod(s)"
+msgstr "iPod ¥Õ¥¡¥¤¥ë"
+
+#: gtkpod.glade:1362
+msgid "Write all changes made to the disk and the iPod(s)."
+msgstr ""
+
+#: gtkpod.glade:1363 src/context_menus.c:507
+msgid "Save Changes"
+msgstr ""
+
+#: gtkpod.glade:1380
+msgid "Add Files or Directories"
+msgstr "¥Õ¥¡¥¤¥ë¤Þ¤¿¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤òÄɲä·¤Þ¤¹"
+
+#: gtkpod.glade:1381
+msgid "Files"
+msgstr "¥Õ¥¡¥¤¥ë"
+
+#: gtkpod.glade:1398
+msgid "Add Directories Recursively"
+msgstr "¥Ç¥£¥ì¥¯¥È¥ê¤òºÆµ¢Åª¤ËÄɲä·¤Þ¤¹"
+
+#: gtkpod.glade:1399
+msgid "Dirs"
+msgstr "¥Ç¥£¥ì¥¯¥È¥ê"
+
+#: gtkpod.glade:1416
+msgid "Add playlist from file"
+msgstr "¥×¥ì¥¤¥ê¥¹¥È¤ò¥Õ¥¡¥¤¥ë¤«¤éÆɤ߹þ¤ó¤ÇÄɲä·¤Þ¤¹"
+
+#: gtkpod.glade:1417 src/display_spl.c:105
+msgid "Playlist"
+msgstr "¥×¥ì¥¤¥ê¥¹¥È"
+
+#: gtkpod.glade:1434
+msgid "Create New Playlist"
+msgstr "¿·¤·¤¯¥×¥ì¥¤¥ê¥¹¥È¤òºîÀ®¤·¤Þ¤¹"
+
+#: gtkpod.glade:1435
+msgid "New PL"
+msgstr "¿·µ¬¥×¥ì¥¤¥ê¥¹¥È"
+
+#: gtkpod.glade:1451
+msgid "Stop Display Update"
+msgstr "ɽ¼¨¤Î¹¹¿·¤ò»ß¤á¤ë"
+
+#: gtkpod.glade:1452
+msgid "Stop"
+msgstr "̾ȧ"
+
+#: gtkpod.glade:1625
+msgid "About gtkpod"
+msgstr "gtkpod¤Ë¤Ä¤¤¤Æ"
+
+#: gtkpod.glade:1752
+msgid "Credits"
+msgstr "¸¢Íøɽ¼¨"
+
+#: gtkpod.glade:1810
+msgid "Translators"
+msgstr "ËÝÌõôÅö"
+
+#: gtkpod.glade:1868
+msgid "special_sorttab -- Don't translate!"
+msgstr ""
+
+#: gtkpod.glade:1903
+msgid " Logic: "
+msgstr "¾ò·ï: "
+
+#: gtkpod.glade:1929
+msgid "Any (OR)"
+msgstr "¤¤¤º¤ì¤«(OR)"
+
+#: gtkpod.glade:1948
+msgid "All (AND)"
+msgstr "¤¹¤Ù¤Æ(AND)"
+
+#: gtkpod.glade:2001
+msgid "0"
+msgstr ""
+
+#: gtkpod.glade:2020
+msgid "1"
+msgstr ""
+
+#: gtkpod.glade:2039
+msgid "2"
+msgstr ""
+
+#: gtkpod.glade:2058
+msgid "3"
+msgstr ""
+
+#: gtkpod.glade:2077
+msgid "4"
+msgstr ""
+
+#: gtkpod.glade:2096
+msgid "5"
+msgstr ""
+
+#: gtkpod.glade:2135
+msgid "Select '0' for no lower limit."
+msgstr "²¼¸Â¤ò»ØÄꤷ¤Ê¤¤¾ì¹ç¤Ï '0' ¤òÁª¤ó¤Ç¤¯¤À¤µ¤¤¡£"
+
+#: gtkpod.glade:2156
+msgid " <= cts <= "
+msgstr " <= ²ó¿ô <= "
+
+#: gtkpod.glade:2181
+msgid "Select '-1' for no upper limit."
+msgstr "¾å¸Â¤ò»ØÄꤷ¤Ê¤¤¾ì¹ç¤Ï '-1' ¤òÁª¤ó¤Ç¤¯¤À¤µ¤¤¡£"
+
+#: gtkpod.glade:2224 gtkpod.glade:2301 gtkpod.glade:2471
+msgid ""
+"'DD/MM/YYYY HH:MM < d < DD/MM/YYYY HH:MM' or similar. Press 'enter' when "
+"finished."
+msgstr ""
+"'DD/MM/YYYY HH:MM < d < DD/MM/YYYY HH:MM' ¤Î¤è¤¦¤ËÀßÄꤷ¤Æ¤¯¤À¤µ¤¤¡£½ñ¤­¹þ¤ó"
+"¤À¤é 'enter' ¥­¡¼¤ò²¡¤·¤Æ¤¯¤À¤µ¤¤¡£"
+
+#: gtkpod.glade:2270 gtkpod.glade:2347 gtkpod.glade:2517 gtkpod.glade:2696
+msgid "Calendar"
+msgstr "¥«¥ì¥ó¥À¡¼"
+
+#: gtkpod.glade:2372
+msgid "Specify interval"
+msgstr "ÈϰϤò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤"
+
+#: gtkpod.glade:2374 src/display_spl.c:98 src/misc_conversion.c:78
+msgid "Playcount"
+msgstr "ºÆÀ¸²ó¿ô"
+
+#: gtkpod.glade:2397 src/display_spl.c:101 src/misc_conversion.c:79
+msgid "Rating"
+msgstr "ɾ²Á"
+
+#: gtkpod.glade:2420 src/display_songs.c:1951
+msgid "Played"
+msgstr "±éÁÕÆü"
+
+#: gtkpod.glade:2443 src/display_songs.c:1954
+msgid "Modified"
+msgstr "Êѹ¹Æü"
+
+#: gtkpod.glade:2542 src/display_songs.c:1957 src/display_sorttabs.c:3218
+msgid "Added"
+msgstr "ÅÐÏ¿Æü"
+
+#: gtkpod.glade:2587
+msgid "Display tracks that match the criteria entered above."
+msgstr "¾å¤Ç»ØÄꤵ¤ì¤¿¾ò·ï¤Ë¹çÃפ¹¤ë¶Ê¤òɽ¼¨¤·¤Þ¤¹¡£"
+
+#: gtkpod.glade:2630 gtkpod.glade:12009
+msgid "_Display"
+msgstr "ɽ¼¨(_D)"
+
+#: gtkpod.glade:2666
+msgid ""
+"Automatically start displaying tracks that match the criteria entered above. "
+"If not selected, you must press 'Display' to start displaying."
+msgstr ""
+"³Æ¹àÌܤ¬ÆþÎϤµ¤ì¤ë¤È¤¹¤°¤Ëɽ¼¨¤ò¹¹¿·¤·¤Þ¤¹¡£¤³¤Î¹àÌܤ¬ÁªÂò¤µ¤ì¤Æ¤¤¤Ê¤¤»þ¤Ë"
+"¤Ï¡¢¡Öɽ¼¨¡×¥Ü¥¿¥ó¤ò²¡¤¹¤È¹¹¿·¤µ¤ì¤Þ¤¹¡£"
+
+#: gtkpod.glade:2668
+msgid "Start display automatically"
+msgstr "¼«Æ°Åª¤Ëɽ¼¨¤ò¹¹¿·¤¹¤ë"
+
+#: gtkpod.glade:2743
+msgid "Sorttab: "
+msgstr "¥½¡¼¥È¥¿¥Ö: "
+
+#: gtkpod.glade:2787
+msgid "     "
+msgstr ""
+
+#: gtkpod.glade:2813
+msgid "Category: "
+msgstr "¥«¥Æ¥´¥ê: "
+
+#: gtkpod.glade:2894
+msgid "Please specify a time interval"
+msgstr "´ü´Ö¤ò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤"
+
+#: gtkpod.glade:2943
+msgid "Lower Margin"
+msgstr "²¼¸Â"
+
+#: gtkpod.glade:2994 gtkpod.glade:3208
+msgid "Time:"
+msgstr "»þ¹ï:"
+
+#: gtkpod.glade:3037 gtkpod.glade:3251
+msgid ":"
+msgstr ""
+
+#: gtkpod.glade:3114
+msgid "No lower margin"
+msgstr "²¼¸Â¤ò»ØÄꤷ¤Ê¤¤"
+
+#: gtkpod.glade:3157
+msgid "Upper margin"
+msgstr "¾å¸Â"
+
+#: gtkpod.glade:3328
+msgid "No upper margin"
+msgstr "¾å¸Â¤ò»ØÄꤷ¤Ê¤¤"
+
+#: gtkpod.glade:3426
+msgid "Sorting Options"
+msgstr "¥½¡¼¥È¤ÎÀßÄê"
+
+#: gtkpod.glade:3458
+#, fuzzy
+msgid "<b>Sort Order</b>"
+msgstr "<b>¥½¡¼¥È¥¿¥Ö</b>"
+
+#: gtkpod.glade:3489 gtkpod.glade:4762 gtkpod.glade:11638 gtkpod.glade:12134
+#: gtkpod.glade:12249
+msgid "    "
+msgstr ""
+
+#: gtkpod.glade:3521
+#, fuzzy
+msgid ""
+"In order to save the displayed track order to the iPod choose 'Save "
+"Displayed Track Order' from the 'Edit' menu or select 'Auto Store' below."
+msgstr ""
+"Ãí°Õ: ¥É¥é¥Ã¥°¥¢¥ó¥É¥É¥í¥Ã¥×¤ÇÊÔ½¸¤µ¤ì¤¿¶Ê½ç¤Ï¾ï¤Ë iPod ¤ËÊݸ¤µ¤ì¤Þ¤¹¡£¼«Æ°"
+"ʤٴ¹¤¨¤Ë¤è¤ë¶Ê½ç¤ò iPod ¤ËÊݸ¤¹¤ë¤Ë¤Ï¡¢¡ÖÊÔ½¸¡×¥á¥Ë¥å¡¼¤Î¡Ö¸½ºß¤Î¶Ê½ç¤òÊÝ"
+"¸¡×¤Î¹àÌܤ«¡¢¾å¤Î¡Ö¼«Æ°Êݸ¡×¤òÍ­¸ú¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£"
+
+#: gtkpod.glade:3905
+msgid "Ascending"
+msgstr "¾º½ç"
+
+#: gtkpod.glade:3953
+msgid "Descending"
+msgstr "¹ß½ç"
+
+#: gtkpod.glade:4001
+msgid "None"
+msgstr "̵»ØÄê"
+
+#: gtkpod.glade:4048 src/display_playlists.c:2106
+msgid "Playlists"
+msgstr "¥×¥ì¥¤¥ê¥¹¥È"
+
+#: gtkpod.glade:4097
+msgid "Sorttabs"
+msgstr "¥½¡¼¥È¥¿¥Ö"
+
+#: gtkpod.glade:4146
+msgid "Tracks"
+msgstr "¶Ê¥ê¥¹¥È"
+
+#: gtkpod.glade:4306
+msgid "Auto Store"
+msgstr "¼«Æ°Êݸ"
+
+#: gtkpod.glade:4349
+msgid "Please refer to the notice below."
+msgstr "²¼µ­¤ÎÃí°Õ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£"
+
+#: gtkpod.glade:4383 gtkpod.glade:4564 src/details.c:1118
+msgid "n/a"
+msgstr "ÉÔ²Ä"
+
+#: gtkpod.glade:4613
+msgid "Sort tracks according to: "
+msgstr "¶Ê½ç¤ò¼¡¤Î½ç¤Çʤٴ¹¤¨: "
+
+#: gtkpod.glade:4647
+msgid ""
+"You can also use the table headers, but this allows you to sort according to "
+"a column that is not displayed."
+msgstr ""
+"ɽ¤Î¥Ø¥Ã¥À¤òÁàºî¤·¤Æ¤âʤٴ¹¤¨¤Ï¤Ç¤­¤Þ¤¹¤¬¡¢¤³¤Îµ¡Ç½¤ò»È¤¦¤È¡¢É½¼¨¤µ¤ì¤Æ¤¤¤Ê"
+"¤¤¹àÌܤò»È¤Ã¤Æʤٴ¹¤¨¤ë¤³¤È¤¬²Äǽ¤Ë¤Ê¤ê¤Þ¤¹¡£"
+
+#: gtkpod.glade:4683
+msgid ""
+"If checked, sorting will be case sensitive. Please note that case sensitive "
+"sorting will not work well with most charsets."
+msgstr ""
+"ʤٴ¹¤¨¤ÎºÝ¤Ë¡¢¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤ÎÂçʸ»ú¤È¾®Ê¸»ú¤ò¶èÊ̤·¤Þ¤¹¡£¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È°Ê"
+"³°¤Î¤Û¤È¤ó¤É¤Îʸ»ú¤Ë¤ÏÂбþ¤·¤Æ¤¤¤Þ¤»¤ó¡£"
+
+#: gtkpod.glade:4685
+msgid "Sorting case sensitive"
+msgstr "ʤٴ¹¤¨¤ÎºÝ¤ËÂçʸ»ú¾®Ê¸»ú¤ò¶èÊ̤¹¤ë"
+
+#: gtkpod.glade:4731
+msgid "<b>Ignore Frequent Words</b>"
+msgstr ""
+
+#: gtkpod.glade:4831
+msgid "Ignore these words when at the beginning of the following fields:"
+msgstr ""
+
+#: gtkpod.glade:5106
+msgid "gtkpod Info"
+msgstr ""
+
+#: gtkpod.glade:5427 gtkpod.glade:5514 gtkpod.glade:5543 gtkpod.glade:6261
+#: gtkpod.glade:6406
+msgid "      "
+msgstr ""
+
+#: gtkpod.glade:5832
+msgid "Number of tracks"
+msgstr "¶Ê¿ô"
+
+#: gtkpod.glade:5862
+msgid "Play time"
+msgstr "±éÁÕ»þ´Ö"
+
+#: gtkpod.glade:5893
+msgid "File size"
+msgstr "¥Õ¥¡¥¤¥ë¥µ¥¤¥º"
+
+#: gtkpod.glade:5923
+msgid "Number of playlists"
+msgstr "¥×¥ì¥¤¥ê¥¹¥È¤Î¿ô"
+
+#: gtkpod.glade:5953
+msgid "Deleted tracks"
+msgstr "ºï½ü¤µ¤ì¤¿¶Ê"
+
+#: gtkpod.glade:5983
+msgid "File size (deleted)"
+msgstr "ºï½ü¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥µ¥¤¥º"
+
+#: gtkpod.glade:6013
+#, fuzzy
+msgid "Non-transferred tracks"
+msgstr "̤žÁ÷¤Î¶Ê¿ô"
+
+#: gtkpod.glade:6043
+#, fuzzy
+msgid "File size (non-transferred)"
+msgstr "̤žÁ÷¤Î¥Õ¥¡¥¤¥ë¥µ¥¤¥º"
+
+#: gtkpod.glade:6073
+msgid "Effective free space"
+msgstr ""
+
+#: gtkpod.glade:6103
+msgid ""
+"Total\n"
+"(iPod)"
+msgstr ""
+
+#: gtkpod.glade:6135
+#, fuzzy
+msgid ""
+"Selected\n"
+"Playlist"
+msgstr "¥×¥ì¥¤¥ê¥¹¥È(_P)"
+
+#: gtkpod.glade:6167
+#, fuzzy
+msgid ""
+"Displayed\n"
+"Tracks"
+msgstr "ɽ¼¨¤µ¤ì¤Æ¤¤¤ë¶Ê(_D)"
+
+#: gtkpod.glade:6199
+#, fuzzy
+msgid ""
+"Selected\n"
+"Tracks"
+msgstr "ÁªÂò¤µ¤ì¤Æ¤¤¤ë¶Ê(_S)"
+
+#: gtkpod.glade:6231
+msgid ""
+"Total\n"
+"(local)"
+msgstr ""
+
+#: gtkpod.glade:6651
+msgid "label21"
+msgstr ""
+
+#: gtkpod.glade:6746
+msgid "Never show this dialogue again"
+msgstr "¤³¤Î¼ÁÌä¤òÆóÅÙ¤Èɽ¼¨¤·¤Ê¤¤"
+
+#: gtkpod.glade:6791 gtkpod.glade:7135
+msgid "window1"
+msgstr ""
+
+#: gtkpod.glade:6850
+msgid "_M3U"
+msgstr ""
+
+#: gtkpod.glade:6869
+msgid "_PLS"
+msgstr ""
+
+#: gtkpod.glade:6907
+msgid ""
+"If available, the local copy of the track is referenced in the playlist. "
+"Otherwise the file on the iPod is used."
+msgstr ""
+
+#: gtkpod.glade:6909
+msgid "_Prefer Local"
+msgstr ""
+
+#: gtkpod.glade:6927
+msgid ""
+"The local copy of the track is referenced in the playlist. If the track is "
+"not available locally, an error message is displayed."
+msgstr ""
+
+#: gtkpod.glade:6929
+msgid "_Local"
+msgstr ""
+
+#: gtkpod.glade:6948
+msgid "The track on the iPod is referenced in the playlist file."
+msgstr ""
+
+#: gtkpod.glade:6950
+msgid "_iPod"
+msgstr ""
+
+#: gtkpod.glade:6983
+#, fuzzy
+msgid "Playlist type:"
+msgstr "¥×¥ì¥¤¥ê¥¹¥È"
+
+#: gtkpod.glade:7012
+msgid "Source:"
+msgstr ""
+
+#: gtkpod.glade:7055
+msgid "Template for info field: "
+msgstr ""
+
+#: gtkpod.glade:7080
+#, fuzzy
+msgid ""
+"Determines how the string for the info field should be constructed, e.g '%a/%"
+"A/%T - %t.mp3' or '%o'.  You can separate several templates by semicolons -- "
+"gtkpod will determine which one to use by the filename extension given. "
+"Artist: %a, album: %A, composer: %c, title: %t, genre: %G, track nr: %T, CD "
+"nr: %C, year: %Y, original filename (requires extended information file): %"
+"o, the character '%': %%."
+msgstr ""
+"iPod¤«¤é¥³¥Ô¡¼¤·¤¿¶Ê¤ËÉÕ¤±¤é¤ì¤ë¥Õ¥¡¥¤¥ë̾¤òÀßÄꤷ¤Þ¤¹¡£Îã:'%A/%d%t - %n' ¤ä "
+"'%o' ¤Ê¤É¡£%A: ¥¢¡¼¥Æ¥£¥¹¥È; %n: ¥¿¥¤¥È¥ë; %t: ¥È¥é¥Ã¥¯No.; %o: ¸µ¤Î¥Õ¥¡¥¤¥ë"
+"̾ (³ÈÄ¥¾ðÊó¥Õ¥¡¥¤¥ë¤¬É¬Í×)"
+
+#: gtkpod.glade:7111 gtkpod.glade:7355
+#, fuzzy
+msgid "gtkpod options"
+msgstr "ÉÔÌÀ¤Ê¥ª¥×¥·¥ç¥ó: %s\n"
+
+#: gtkpod.glade:7173
+msgid "Filename Format: "
+msgstr "¥Õ¥¡¥¤¥ë̾¤Î½ñ¼°: "
+
+#: gtkpod.glade:7198
+#, fuzzy
+msgid ""
+"Determines the filename of tracks you copy from the iPod, e.g '%a/%A/%T - %t."
+"mp3' or '%o'.  You can separate several patterns by semicolons -- gtkpod "
+"will determine which one to use by the filename extension given. Artist: %a, "
+"album: %A, composer: %c, title: %t, genre: %G, track nr: %T, CD nr: %C, "
+"year: %Y, original filename (requires extended information file): %o, "
+"current playlist: %p, the character '%': %%."
+msgstr ""
+"iPod¤«¤é¥³¥Ô¡¼¤·¤¿¶Ê¤ËÉÕ¤±¤é¤ì¤ë¥Õ¥¡¥¤¥ë̾¤òÀßÄꤷ¤Þ¤¹¡£Îã:'%A/%d%t - %n' ¤ä "
+"'%o' ¤Ê¤É¡£%A: ¥¢¡¼¥Æ¥£¥¹¥È; %n: ¥¿¥¤¥È¥ë; %t: ¥È¥é¥Ã¥¯No.; %o: ¸µ¤Î¥Õ¥¡¥¤¥ë"
+"̾ (³ÈÄ¥¾ðÊó¥Õ¥¡¥¤¥ë¤¬É¬Í×)"
+
+#: gtkpod.glade:7203
+msgid " "
+msgstr " "
+
+#: gtkpod.glade:7225
+#, fuzzy
+msgid ""
+"Normally the charset specified when first importing the track will be used "
+"for the filename. If you set this option you can set a different charset "
+"with the charset selector (Preferences/'Adding/Updating/Syncing'). Note: the "
+"charset info is stored in the extended information file (see "
+"Preferences/'Writing of the iTunesDB'). Tracks imported before V0.51 will "
+"have no charset stored. Instead the charset specified will be used."
+msgstr ""
+"Ä̾ï¤Ï¡¢ºÇ½é¤Ë¶Ê¤òÊݸ¤·¤¿»þ¤Ë»ØÄꤵ¤ì¤¿Ê¸»ú¥³¡¼¥É¤ò¥Õ¥¡¥¤¥ë̾¤Ë¤â»ÈÍѤ·¤Þ¤¹"
+"¤¬¡¢¤³¤Î¹àÌܤòÍ­¸ú¤Ë¤¹¤ë¤È¡¢¡ÖÄɲÃ/¹¹¿·/Ʊ´ü¡×¤Î¹àÌܤǻØÄꤷ¤¿Ê¸»ú¥³¡¼¥É¤ò¤«"
+"¤ï¤ê¤Ë»ÈÍѤǤ­¤Þ¤¹¡£Ãí°Õ: ʸ»ú¥³¡¼¥É¤Î¾ðÊó¤Ï³ÈÄ¥¾ðÊó¥Õ¥¡¥¤¥ë(¡ÖiTunesDB¤Ø¤Î½ñ"
+"¤­¹þ¤ß¡×¤ò»²¾È)¤Ëµ­Ï¿¤µ¤ì¤Þ¤¹¡£¥Ð¡¼¥¸¥ç¥ó0.51°ÊÁ°¤Îgtkpod¤ÇÅÐÏ¿¤µ¤ì¤¿¶Ê¤Ë¤Ï¤³"
+"¤Î¾ðÊ󤬵­Ï¿¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£¤³¤Î¾ì¹ç¡¢¾å¤Ç»ØÄꤵ¤ì¤¿Ê¸»ú¥³¡¼¥É¤¬º£¸å»È¤ï¤ì¤ë"
+"¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£"
+
+#: gtkpod.glade:7227
+msgid ""
+"Use selected charset (Preferences/'Adding/Updating/ Syncing')\n"
+"for this filename."
+msgstr ""
+"»ØÄꤵ¤ì¤¿Ê¸»ú¥³¡¼¥É (¡ÖÀßÄê¡×Æâ¡ÖÅÐÏ¿/¹¹¿·/Ʊ´ü¡×¤ò»²¾È)\n"
+"¤ò¥Õ¥¡¥¤¥ë̾¤Ë¤â»ÈÍѤ¹¤ë¡£"
+
+#: gtkpod.glade:7246
+msgid ""
+"When copying from iPod no check is performed on whether the destination file "
+"exists. Enabling this option will make gtkpod check whether the length of "
+"the destination file is the same as the file in the iPod. If so the file is "
+"skipped, allowing a quick sync of the iPod's contents."
+msgstr ""
+
+#: gtkpod.glade:7248
+msgid "Check for existing files when copying from iPod."
+msgstr ""
+
+#: gtkpod.glade:7423
+msgid "Playlist name:"
+msgstr "¥×¥ì¥¤¥ê¥¹¥È¤Î̾Á°:"
+
+#: gtkpod.glade:7492
+msgid "Match al_l of the following"
+msgstr "°Ê²¼¤Ë³ºÅö¤¹¤ë¤â¤Î¤¹¤Ù¤Æ(_l)"
+
+#: gtkpod.glade:7511
+msgid "Match an_y of the following"
+msgstr ""
+
+#: gtkpod.glade:7531
+msgid "_Ignore rules"
+msgstr "¥ë¡¼¥ë¤ò̵»ë"
+
+#: gtkpod.glade:7601
+msgid "Rules"
+msgstr "¥ë¡¼¥ë"
+
+#: gtkpod.glade:7638
+msgid "_Limit to"
+msgstr "À©¸Â (_L)"
+
+#: gtkpod.glade:7689
+msgid "   Sort by:"
+msgstr "   ¥½¡¼¥È½ç:"
+
+#: gtkpod.glade:7741
+msgid "Match only _checked tracks"
+msgstr ""
+
+#: gtkpod.glade:7773
+msgid "Live _updating"
+msgstr ""
+
+#: gtkpod.glade:7864
+msgid "Preferences"
+msgstr "ÀßÄê"
+
+#: gtkpod.glade:7927
+msgid "<b>Mountpoint and individual repository/playlist options</b>"
+msgstr ""
+
+#: gtkpod.glade:7990
+msgid "Set mountpoint or edit repository options"
+msgstr ""
+
+#: gtkpod.glade:8037
+msgid "<b>Import</b>"
+msgstr "<b>¥¤¥ó¥Ý¡¼¥È</b>"
+
+#: gtkpod.glade:8108
+#, fuzzy
+msgid "Automatically import iTunesDBs on startup"
+msgstr "µ¯Æ°»þ¤Ë¼«Æ°Åª¤Ë iTunesDB ¤òÆɤ߹þ¤à"
+
+#: gtkpod.glade:8154
+msgid "<b>Adding/Updating/Syncing</b>"
+msgstr "<b>ÅÐÏ¿/¹¹¿·/Ʊ´ü</b>"
+
+#: gtkpod.glade:8226
+msgid "Exclude file mask(s)"
+msgstr ""
+
+#: gtkpod.glade:8251
+msgid "Semicolon seperated list of file exclusion masks, e.g. '*.mp3'"
+msgstr ""
+
+#: gtkpod.glade:8285
+#, fuzzy
+msgid "_Encoding (ID3, files):"
+msgstr "ʸ»ú¥³¡¼¥É(_C) (ID3,¥Õ¥¡¥¤¥ë):"
+
+#: gtkpod.glade:8320
+msgid ""
+"gtkpod expects the ID3 tags and the filenames to be in the encoding "
+"specified here. You can change it for consecutive 'Add Files' and 'Add Dirs' "
+"operation. 'System Charset' is the charset used by your current locale."
+msgstr ""
+"gtkpod¤Ï¤³¤³¤Ç»ØÄꤵ¤ì¤¿Ê¸»ú¥³¡¼¥É¤¬¡¢ID3¤Î¥¿¥°¤ä¥Õ¥¡¥¤¥ë̾¤Ë»È¤ï¤ì¤Æ¤¤¤ë¤â¤Î"
+"¤È¤·¤Æ½èÍý¤·¤Þ¤¹¡£¡Ö¥Õ¥¡¥¤¥ë¤ÎÄɲáפä¡Ö¥Ç¥£¥ì¥¯¥È¥ê¤´¤ÈÄɲáפò¼Â¹Ô¤¹¤ëÁ°¤Ë"
+"¤³¤ÎÀßÄê¤òÊѹ¹¤¹¤ì¤Ð¡¢¤³¤ì¤é¤Î½èÍý¤ËÀßÄ꤬ȿ±Ç¤µ¤ì¤Þ¤¹¡£¡Ö¥·¥¹¥Æ¥àʸ»ú¡×¤òÁª"
+"Âò¤¹¤ë¤È¡¢¥í¥±¡¼¥ë¤Ç»ØÄꤵ¤ì¤¿¥³¡¼¥É¤¬»È¤ï¤ì¤Þ¤¹¡£"
+
+#: gtkpod.glade:8357
+msgid ""
+"Normally the charset specified when first importing the track will be used "
+"to update the track information. If you have chosen a wrong charset when "
+"first importing a track and want to correct it using the 'Update Track' "
+"function, you must check this option. Note: the charset info is stored in "
+"the extended information file (see 'Writing of iTunesDB' below) and tracks "
+"imported before V0.51 will have no charset stored. Instead the charset "
+"specified above will be used then."
+msgstr ""
+"Ä̾ï¤Ï¡¢¶Ê¤ò¥¤¥ó¥Ý¡¼¥È¤¹¤ëºÝ¤Ë»ØÄꤵ¤ì¤¿Ê¸»ú¥³¡¼¥É¤¬¤½¤Î¸å¤â»È¤ï¤ì¤Þ¤¹¤¬¡¢¤â"
+"¤·¤½¤Î»þ¤Ë´Ö°ã¤Ã¤¿Ê¸»ú¥³¡¼¥É¤ò»ØÄꤷ¤Æ¤·¤Þ¤Ã¤Æ¤¤¤Æ¡¢¡Ö¶Ê¤Î¹¹¿·¡×¤ò»È¤Ã¤Æ¤½¤ì"
+"¤òľ¤·¤¿¤¤¤Î¤Ç¤¢¤ì¤Ð¡¢¤³¤Î¹àÌܤòÍ­¸ú¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£Ãí°Õ: ʸ»ú¥³¡¼¥É¤Î¾ðÊó¤Ï"
+"³ÈÄ¥¾ðÊó¥Õ¥¡¥¤¥ë¤Ëµ­Ï¿¤µ¤ì¤Þ¤¹¤¬(¡ÖiTunesDB¤Ø¤Î½ñ¤­¹þ¤ß¡×¤Î¹àÌܤò»²¾È)¡¢¥Ð¡¼"
+"¥¸¥ç¥ó0.51°ÊÁ°¤Îgtkpod¤Ç¥¤¥ó¥Ý¡¼¥È¤µ¤ì¤¿¶Ê¤Ï¤³¤Î¾ðÊ󤬵­Ï¿¤µ¤Æ¤¤¤Þ¤»¤ó¡£¤³¤Î"
+"¾ì¹ç¡¢¤³¤³¤Ç»ØÄꤵ¤ì¤¿Ê¸»ú¥³¡¼¥É¤¬º£¸å»È¤ï¤ì¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£"
+
+#: gtkpod.glade:8359
+#, fuzzy
+msgid ""
+"Use selected encoding also when updating \n"
+"or syncing tracks"
+msgstr "ÁªÂò¤µ¤ì¤¿Ê¸»ú¥³¡¼¥É¤ò¹¹¿·¡¦Æ±´ü½èÍý¤Ç¤â»ÈÍѤ¹¤ë"
+
+#: gtkpod.glade:8379
+msgid "If you check this, gtkpod will descend into subdirectories recursively."
+msgstr "¤³¤Î¹àÌܤòÍ­¸ú¤Ë¤¹¤ë¤È¡¢gtkpod¤Ï¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤òºÆµ¢Åª¤Ëé¤ê¤Þ¤¹¡£"
+
+#: gtkpod.glade:8381
+msgid "Add directories recursively"
+msgstr "¥Ç¥£¥ì¥¯¥È¥ê¤òºÆµ¢Åª¤ËÄɲ乤ë"
+
+#: gtkpod.glade:8400
+#, fuzzy
+msgid "Duplicate Recognition is based on a (modified) md5 hash over the file."
+msgstr "md5¤òÍøÍѤ·¤¿½ÅÊ£¥Á¥§¥Ã¥¯¤ò¹Ô¤¦¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£"
+
+#: gtkpod.glade:8402
+msgid "Don't allow file duplication"
+msgstr "¥Õ¥¡¥¤¥ë¤Î½ÅÊ£¤òµö¤µ¤Ê¤¤"
+
+#: gtkpod.glade:8452
+msgid ""
+"Display the list of duplicates that have been detected after adding files."
+msgstr "¥Õ¥¡¥¤¥ë¤òÄɲä·¤¿ºÝ¤Ëȯ¸«¤·¤¿¡¢½ÅÊ£¤¹¤ë¶Ê¤Î¥ê¥¹¥È¤òɽ¼¨¤·¤Þ¤¹¡£"
+
+#: gtkpod.glade:8454
+msgid "Display info about detected duplicates"
+msgstr "½ÅÊ£¤ò¸«¤Ä¤±¤¿ºÝ¤ËÊó¹ð¤¹¤ë"
+
+#: gtkpod.glade:8480
+msgid ""
+"If the filename (full path) of an existing track matches that of a track to "
+"be added, this option allows you to update the information about the "
+"existing track rather than just skipping the track altogether. No update "
+"will take place if the file hasn't changed and you have selected the 'Don't "
+"allow file duplication' option above."
+msgstr ""
+"¤¹¤Ç¤Ëµ­Ï¿¤µ¤ì¤Æ¤¤¤ë¶Ê¤ÈƱ¤¸¥Õ¥¡¥¤¥ë̾(¥Õ¥ë¥Ñ¥¹¤Ç)¤ò»ý¤Ä¶Ê¤òÄɲ䷤褦¤È¤·¤¿"
+"¾ì¹ç¡¢¤³¤Î¹àÌܤ¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¡¢¤½¤Î¶Ê¤ò̵»ë¤¹¤ëÂå¤ï¤ê¤Ëµ­Ï¿¤µ¤ì¤Æ¤¤¤ë¶Ê"
+"¤Î¾ðÊó¤ò¹¹¿·¤·¤Þ¤¹¡£¤â¤·¥Õ¥¡¥¤¥ë¤ËÊѹ¹¤¬¤Ê¤¯¡¢¡Ö¥Õ¥¡¥¤¥ë¤Î½ÅÊ£¤òµö¤µ¤Ê¤¤¡×¤Î"
+"¹àÌܤòÍ­¸ú¤Ë¤·¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¹¹¿·¤Ï¤Ê¤µ¤ì¤Þ¤»¤ó¡£"
+
+#: gtkpod.glade:8482
+msgid ""
+"When adding dirs/files, update information of\n"
+"existing tracks with identical filenames"
+msgstr ""
+"¥Õ¥¡¥¤¥ë¤ä¥Ç¥£¥ì¥¯¥È¥ê¤òÄɲ乤ëºÝ¤Ë¡¢Æ±¤¸¥Õ¥¡¥¤¥ë̾¤Î\n"
+"¶Ê¤¬¤¹¤Ç¤Ë¤¢¤Ã¤¿¤é¾ì¹ç¤Ë¤Ï¡¢¤½¤Á¤é¤ò¹¹¿·¤¹¤ë"
+
+#: gtkpod.glade:8533
+msgid "Display a list of tracks that could actually be updated."
+msgstr "¼ÂºÝ¤Ë¹¹¿·¤µ¤ì¤¿¶Ê¤Î¥ê¥¹¥È¤òɽ¼¨¤·¤Þ¤¹¡£"
+
+#: gtkpod.glade:8535
+msgid "Display info about updated tracks"
+msgstr "¹¹¿·¤µ¤ì¤¿¶Ê¤Î¾ðÊó¤òɽ¼¨¤¹¤ë"
+
+#: gtkpod.glade:8592
+msgid "Display a list of tracks that could not be updated."
+msgstr "¼ÂºÝ¤Ë¤Ï¹¹¿·¤µ¤ì¤Ê¤«¤Ã¤¿¶Ê¤Î¥ê¥¹¥È¤òɽ¼¨¤·¤Þ¤¹¡£"
+
+#: gtkpod.glade:8594
+msgid "Display info about non-updated tracks"
+msgstr "¹¹¿·¤µ¤ì¤Ê¤«¤Ã¤¿¶Ê¤òɽ¼¨¤¹¤ë"
+
+#: gtkpod.glade:8620
+#, fuzzy
+msgid "When syncing playlists"
+msgstr "¥Ç¥£¥ì¥¯¥È¥ê¤ÎƱ´ü½èÍý»þ"
+
+#: gtkpod.glade:8694
+msgid "Confirm lists of directories"
+msgstr "¥Ç¥£¥ì¥¯¥È¥ê¤Î¥ê¥¹¥È¤ò³Îǧ¤¹¤ë"
+
+#: gtkpod.glade:8712 gtkpod.glade:17758
+msgid ""
+"Normally, if a track is no longer present in the sync directory, it will be "
+"removed from the playlist, but not from the iPod or local repository.\n"
+"If this option is checked, tracks will be completely removed from the iPod "
+"or local repository, unless the track is a member of other playlists as "
+"well.\n"
+"NOTE: if you sync with the master playlist, you must check this option if "
+"you want tracks to be removed, because removing from the master playlist "
+"means removing from the iPod."
+msgstr ""
+
+#: gtkpod.glade:8716 gtkpod.glade:17762
+msgid ""
+"Delete tracks that are no longer present from the\n"
+"ipod or repository"
+msgstr ""
+
+#: gtkpod.glade:8735
+msgid "This is the same option as in 'Edit/Delete Confirmation'"
+msgstr "¡ÖÊÔ½¸/ºï½ü¤Î³Îǧ¡×¤Î¹àÌܤÈƱ¤¸¤Ç¤¹"
+
+#: gtkpod.glade:8737 gtkpod.glade:17782
+#, fuzzy
+msgid "Confirm before removing tracks from the iPod or repository"
+msgstr "¶Ê¤òiPod¤«¤é´°Á´¤Ëºï½ü¤¹¤ë»þ"
+
+#: gtkpod.glade:8756 gtkpod.glade:17800
+msgid ""
+"Will show a list of tracks removed and a list of tracks newly added or "
+"updated."
+msgstr ""
+
+#: gtkpod.glade:8758 gtkpod.glade:17802
+msgid "Show summary of sync result"
+msgstr ""
+
+#: gtkpod.glade:8819
+msgid "<b>Sync</b>"
+msgstr ""
+
+#: gtkpod.glade:8875
+msgid ""
+"Highly recommended for faster import when taking advantage of the "
+"duplication recognition. Also, having the PC filenames allows writing "
+"changed ID3 tags to disk, and even to reconstruct your ipod's contents in "
+"case of file system corruption (change the \"transferred=\" entries in your "
+"backuped database)."
+msgstr ""
+"½ÅÊ£¥Á¥§¥Ã¥¯¤ò¹â®²½¤¹¤ë¤¿¤á¤Ë¤Ï¡¢¤³¤Î¹àÌܤòÍ­¸ú¤Ë¤¹¤ë»ö¤¬¶¯¤¯¿ä¾©¤µ¤ì¤Þ¤¹¡£"
+"¤Þ¤¿¡¢¥Õ¥¡¥¤¥ë̾¤òÊÝ»ý¤¹¤ë»ö¤ÇID3¥¿¥°¤ÎÊѹ¹¤òiPod¤ËÈ¿±Ç¤µ¤»¤ë»ö¤¬²Äǽ¤Ë¤Ê¤ê¡¢"
+"²¾¤ËiPod¤ÎÃæ¿È¤¬²õ¤ì¤¿¤ê¤·¤¿¾ì¹ç¤Ë¤â¡¢ºÆ¹½À®¤òÍưפˤ·¤Þ¤¹¡£(¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î"
+"¥Ð¥Ã¥¯¥¢¥Ã¥×¥Õ¥¡¥¤¥ë¤ÎÃæ¤Î \"transferred=\" ¤Î¹àÌܤòÊѹ¹¤¹¤ì¤Ð¤è¤¤)"
+
+#: gtkpod.glade:8877
+#, fuzzy
+msgid ""
+"Write extended information (PC filenames,\n"
+" MD5 hashes, encoding). Recommended."
+msgstr ""
+"³ÈÄ¥¾ðÊó(PC¾å¤Î¥Õ¥¡¥¤¥ë̾,MD5ÃÍ,ʸ»ú¥³¡¼¥É)¤ò½ñ¤­¹þ¤à¡£\n"
+"¿ä¾©¤µ¤ì¤ëÀßÄê¤Ç¤¹¡£"
+
+#: gtkpod.glade:8921 gtkpod.glade:14688
+msgid "_General"
+msgstr "´ðËÜÀßÄê(_G)"
+
+#: gtkpod.glade:8957
+msgid "<b>Tag Reading</b>"
+msgstr "<b>¥¿¥°¤ÎÆɤ߹þ¤ß</b>"
+
+#: gtkpod.glade:9020
+msgid "Read tags from file contents (e.g. ID3 tags in MP3 files)"
+msgstr "¥Õ¥¡¥¤¥ë¤«¤é¥¿¥°¾ðÊó¤òÆɤ߹þ¤à (MP3 ¥Õ¥¡¥¤¥ë¤Î ID3 ¥¿¥°¤Ê¤É)"
+
+#: gtkpod.glade:9039 gtkpod.glade:9413
+msgid ""
+"artist: %a, album: %A, composer: %c, title: %t, genre: %G, track nr: %T, CD "
+"nr: %C, year: %Y, skip data: %*, the character '%': %%. You can separate "
+"several templates by a ';'. The first one matching the filename will be "
+"used. Example: '%a - %A/%T %t.mp3;%t.wav'."
+msgstr ""
+"¥¢¡¼¥Æ¥£¥¹¥È: %a, ¥¢¥ë¥Ð¥à: %A, ºî¶Ê¼Ô: %c, ¥¿¥¤¥È¥ë: %t, ¥¸¥ã¥ó¥ë: %G, ¥È"
+"¥é¥Ã¥¯ÈÖ¹æ: %T, CD ÈÖ¹æ: %C, ǯ: %Y, ¥¹¥­¥Ã¥×: %*, ¥Ñ¡¼¥»¥ó¥Èµ­¹æ: %%¡£¤¤¤¯¤Ä"
+"¤«¤Î¥Æ¥ó¥×¥ì¡¼¥È¤ò';' ¤Ç¶èÀڤäÆʤ٤뤳¤È¤¬¤Ç¤­¤Þ¤¹¡£ºÇ½é¤Ë¹ç¤Ã¤¿¥Æ¥ó¥×¥ì¡¼"
+"¥È¤¬»È¤ï¤ì¤Þ¤¹¡£Îã: '%a - %A/%T %t.mp3;%t.wav'."
+
+#: gtkpod.glade:9041
+msgid "Use this template to parse filename for tag information:"
+msgstr "°Ê²¼¤Î¥Æ¥ó¥×¥ì¡¼¥È¤ò¡¢¥Õ¥¡¥¤¥ë̾¤«¤é¥¿¥°¾ðÊó¤òÃê½Ð¤¹¤ë¤Î¤Ë»ÈÍѤ¹¤ë:"
+
+#: gtkpod.glade:9118
+msgid "Overwrite tags that are already set"
+msgstr "¤¹¤Ç¤Ë¤¢¥¿¥°¾ðÊó¤ò¾å½ñ¤­¤¹¤ë"
+
+#: gtkpod.glade:9151
+msgid ""
+"As a last resort set the following tags to the\n"
+"filename if they are (still) empty:"
+msgstr ""
+"ºÇ¸å¤Î¼êÃʤȤ·¤Æ¡¢°Ê²¼¤Î¥¿¥°¤¬Ì¤ÀßÄê¤Î¾ì¹ç¤Ë¥Õ¥¡¥¤¥ë̾¤ò¤½¤ÎÃͤȤ·¤Æ»ÈÍѤ¹¤ë:"
+
+#: gtkpod.glade:9187 src/display_sorttabs.c:2942 src/display_spl.c:85
+#: src/misc_conversion.c:62
+msgid "Artist"
+msgstr "¥¢¡¼¥Æ¥£¥¹¥È"
+
+#: gtkpod.glade:9209 src/display_sorttabs.c:2948 src/display_spl.c:89
+#: src/misc_conversion.c:64
+msgid "Genre"
+msgstr "¥¸¥ã¥ó¥ë"
+
+#. 0
+#: gtkpod.glade:9231 src/display_sorttabs.c:2945 src/display_spl.c:84
+#: src/misc_conversion.c:61
+msgid "Album"
+msgstr "¥¢¥ë¥Ð¥à"
+
+#. 5
+#: gtkpod.glade:9253 src/display_spl.c:97 src/misc_conversion.c:66
+msgid "Composer"
+msgstr "ºî¶Ê¼Ô"
+
+#: gtkpod.glade:9275 src/display_sorttabs.c:2954 src/display_spl.c:83
+#: src/misc_conversion.c:63
+msgid "Title"
+msgstr "¥¿¥¤¥È¥ë"
+
+#: gtkpod.glade:9330
+#, fuzzy
+msgid "<b>Coverart</b>"
+msgstr "<b>¥¤¥ó¥Ý¡¼¥È</b>"
+
+#: gtkpod.glade:9392
+msgid ""
+"Music files can have images embedded in the APIC tag. Currently this is only "
+"supported for MP3 files."
+msgstr ""
+
+#: gtkpod.glade:9394
+msgid "Read coverart from embedded APIC data"
+msgstr ""
+
+#: gtkpod.glade:9415
+#, fuzzy
+msgid "Add coverart from file using the following template"
+msgstr "¼¡¤Î¥Æ¥ó¥×¥ì¡¼¥È¤Ë¹ç¤¦¥Õ¥¡¥¤¥ë¤ò¥¢¡¼¥È¥ï¡¼¥¯¤È¤·¤ÆÅÐÏ¿¤¹¤ë"
+
+#: gtkpod.glade:9471
+#, fuzzy
+msgid ""
+"Determines the name of the file with the cover art. You can separate several "
+"patterns by semicolons which will be tried in order. Artist: %a, album: %A, "
+"composer: %c, title: %t, genre: %G, track nr: %T, CD nr: %C, year: %Y, "
+"original filename (requires extended information file): %o, original "
+"filename without file extension: %O, current playlist: %p, the character "
+"'%': %%."
+msgstr ""
+"iPod¤«¤é¥³¥Ô¡¼¤·¤¿¶Ê¤ËÉÕ¤±¤é¤ì¤ë¥Õ¥¡¥¤¥ë̾¤òÀßÄꤷ¤Þ¤¹¡£Îã:'%A/%d%t - %n' ¤ä "
+"'%o' ¤Ê¤É¡£%A: ¥¢¡¼¥Æ¥£¥¹¥È; %n: ¥¿¥¤¥È¥ë; %t: ¥È¥é¥Ã¥¯No.; %o: ¸µ¤Î¥Õ¥¡¥¤¥ë"
+"̾ (³ÈÄ¥¾ðÊó¥Õ¥¡¥¤¥ë¤¬É¬Í×)"
+
+#: gtkpod.glade:9492
+msgid "<b>Examples</b>"
+msgstr "<b>Îã</b>"
+
+#: gtkpod.glade:9526
+msgid "folder.jpg"
+msgstr ""
+
+#: gtkpod.glade:9554
+msgid "folder"
+msgstr ""
+
+#: gtkpod.glade:9582
+msgid "../%A.jpg"
+msgstr ""
+
+#: gtkpod.glade:9610
+msgid "%A"
+msgstr ""
+
+#: gtkpod.glade:9638
+msgid "Use <i>folder.jpg</i> as cover art."
+msgstr "<i>folder.jpg</i> ¤ò¥«¥Ð¡¼¥¢¡¼¥È¤Ë»È¤¦"
+
+#: gtkpod.glade:9666
+msgid "Use <i>folder.jpg</i>, <i>folder.png</i>..."
+msgstr "<i>folder.jpg</i>, <i>folder.png</i> ¤Ê¤É"
+
+#: gtkpod.glade:9694
+msgid "Use <i>&lt;Album&gt;.jpg</i> in the parent directory"
+msgstr "¿Æ¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ë <i>&lt;Album&gt;.jpg</i> ¤ò»È¤¦"
+
+#: gtkpod.glade:9722
+msgid "Use <i>&lt;Album&gt;.jpg</i>, <i>&lt;Album&gt;.png</i>..."
+msgstr "<i>&lt;Album&gt;.jpg</i>, <i>&lt;Album&gt;.png</i> ¤Ê¤É"
+
+#: gtkpod.glade:9750
+msgid "folder.jpg;%a.jpg"
+msgstr ""
+
+#: gtkpod.glade:9778
+msgid "First try <i>folder.jpg</i>, then <i>&lt;artist&gt;.jpg</i>"
+msgstr "ºÇ½é¤Ë <i>folder.jpg</i> ¤ò»î¤·¡¢Ìµ¤±¤ì¤Ð <i>&lt;artist&gt;.jpg</i>"
+
+#: gtkpod.glade:9835
+msgid "If both options are selected, embedded APIC data takes precedence."
+msgstr ""
+
+#: gtkpod.glade:9887
+msgid "<b>mserv</b>"
+msgstr ""
+
+#: gtkpod.glade:9949 gtkpod.glade:10175
+msgid "Currently only rating is supported."
+msgstr "¸½ºß¤Ïɾ²Á¾ðÊó¤Î¤ß»ÈÍÑ"
+
+#: gtkpod.glade:9951
+msgid "Use mserv database to fill additional information"
+msgstr "mserv ¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤éÄɲþðÊó¤ò¼èÆÀ¤¹¤ë"
+
+#: gtkpod.glade:9979
+msgid "Music Root:"
+msgstr ""
+
+#: gtkpod.glade:10007
+msgid "mserv database lookup will be done for music in this directory."
+msgstr "¤³¤Î¥Ç¥£¥ì¥¯¥È¥êÆâ¤Î¶Ê¤ËÂФ·¡¢mserv ¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò»²¾È¤·¤Þ¤¹¡£"
+
+#: gtkpod.glade:10029
+msgid "mserv Root:"
+msgstr ""
+
+#: gtkpod.glade:10057
+msgid "Root directory of mserv database (trackinfo root)."
+msgstr "mserv ¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¤¢¤ë¥Ç¥£¥ì¥¯¥È¥ê¡£(trackinfo root)"
+
+#: gtkpod.glade:10079
+msgid "Username:"
+msgstr "¥æ¡¼¥¶¡¼Ì¾:"
+
+#: gtkpod.glade:10107
+msgid "Username to be used for mserv database lookup."
+msgstr "¥æ¡¼¥¶¡¼Ì¾¤Ï mserv ¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î»²¾È¤Ë»È¤¤¤Þ¤¹¡£"
+
+#: gtkpod.glade:10131 gtkpod.glade:10150 gtkpod.glade:12889 gtkpod.glade:12908
+#: gtkpod.glade:13069 gtkpod.glade:13138 gtkpod.glade:17159 gtkpod.glade:17179
+#: gtkpod.glade:17199 gtkpod.glade:17219 gtkpod.glade:17239 gtkpod.glade:17679
+#: gtkpod.glade:18238 gtkpod.glade:18281 gtkpod.glade:18301 gtkpod.glade:18711
+msgid "Browse"
+msgstr "¥Ö¥é¥¦¥º"
+
+#: gtkpod.glade:10177
+msgid "Show information about problems when accessing mserv"
+msgstr "mserv ¤Ø¥¢¥¯¥»¥¹¤¹¤ë¤È¤­¡¢ÌäÂê¤ÎÊó¹ð¤òɽ¼¨¤¹¤ë"
+
+#: gtkpod.glade:10223
+msgid "_Track Info"
+msgstr "¶Ê¾ðÊó(_T)"
+
+#: gtkpod.glade:10273
+msgid "<b>Displayed Track Attributes</b>"
+msgstr "<b>ɽ¼¨¤¹¤ë¶Ê°À­</b>"
+
+#: gtkpod.glade:11083
+msgid "<b>Sort Tabs</b>"
+msgstr "<b>¥½¡¼¥È¥¿¥Ö</b>"
+
+#: gtkpod.glade:11145
+msgid "Keeps all compilation CDs grouped together in the artists sort tab."
+msgstr ""
+
+#: gtkpod.glade:11147
+msgid "Group artists on compilation CDs"
+msgstr ""
+
+#: gtkpod.glade:11172
+msgid "_Number of sort tabs:"
+msgstr "¥½¡¼¥È¥¿¥Ö¤Î¿ô(_N):"
+
+#: gtkpod.glade:11252
+msgid "<b>Automatically select...</b>"
+msgstr "<b>¼«Æ°Åª¤ËÁªÂò...</b>"
+
+#: gtkpod.glade:11314
+msgid ""
+"If you don't select the master playlist automatically, the initial database "
+"import is much faster because the display dosn't have to be updated."
+msgstr ""
+"¥Þ¥¹¥¿¡¼¥×¥ì¥¤¥ê¥¹¥È¤ò¼«Æ°Åª¤ËÁªÂò¤·¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤È¡¢µ¯Æ°»þ¤Ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò"
+"Æɤ߹þ¤àºÝ¤Ë¤Ï²¿¤âɽ¼¨¤·¤Ê¤¯¤Ê¤ë¤Î¤Ç¡¢¥¹¥Ô¡¼¥É¤¬Â®¤¯¤Ê¤ê¤Þ¤¹¡£"
+
+#: gtkpod.glade:11316
+msgid "...master playlist"
+msgstr "...¥Þ¥¹¥¿¡¼¥×¥ì¥¤¥ê¥¹¥È"
+
+#: gtkpod.glade:11336
+msgid "...entry 'All' in sort tab..."
+msgstr "...°Ê²¼¤Î¥½¡¼¥È¥¿¥ÖÆâ¤Î¡Ö¤¹¤Ù¤Æ¡×¤Î¹àÌÜ"
+
+#: gtkpod.glade:11421
+msgid "<b>Tooltips</b>"
+msgstr "<b>¥Ä¡¼¥ë¥Á¥Ã¥×</b>"
+
+#: gtkpod.glade:11484
+msgid "Display tooltips in main window"
+msgstr "¥Ä¡¼¥ë¥Á¥Ã¥×¤ò¥á¥¤¥ó²èÌ̤Çɽ¼¨¤¹¤ë"
+
+#: gtkpod.glade:11504
+msgid "Display tooltips in prefs window"
+msgstr "¥Ä¡¼¥ë¥Á¥Ã¥×¤òÀßÄê²èÌ̤Çɽ¼¨¤¹¤ë"
+
+#: gtkpod.glade:11550
+msgid "<b>Toolbar</b>"
+msgstr "<b>¥Ä¡¼¥ë¥Ð¡¼</b>"
+
+#: gtkpod.glade:11613
+msgid "Display toolbar..."
+msgstr "¥Ä¡¼¥ë¥Ð¡¼¤Îɽ¼¨..."
+
+#: gtkpod.glade:11670
+msgid "...as icons"
+msgstr "¥¢¥¤¥³¥ó¤Î¤ß"
+
+#: gtkpod.glade:11690
+msgid "...as text"
+msgstr "¥Æ¥­¥¹¥È¤Î¤ß"
+
+#: gtkpod.glade:11711
+msgid "...both as icons and text"
+msgstr "¥¢¥¤¥³¥ó¤È¥Æ¥­¥¹¥È"
+
+#: gtkpod.glade:11772
+msgid "<b>Misc</b>"
+msgstr "<b>¤½¤Î¾</b>"
+
+#: gtkpod.glade:11834
+msgid ""
+"It is much faster to sort the display after all tracks have been added. Some "
+"people might feel irritated by this behaviour and should uncheck this option."
+msgstr ""
+
+#: gtkpod.glade:11836
+msgid ""
+"Temporarily disable sorting when changing playlist\n"
+"or tab entry (faster!)"
+msgstr ""
+"¥×¥ì¥¤¥ê¥¹¥È¤ä¥½¡¼¥È¥¿¥Ö¤òÊѹ¹¤·¤¿»þ¤Î¼«Æ°Ê¤ٴ¹¤¨¤ò\n"
+"ÍÞÀ©¤¹¤ë (Æ°ºî¤¬Â®¤¯¤Ê¤ë)"
+
+#: gtkpod.glade:11856
+msgid ""
+"The display can be blocked after changing a selection. The display update is "
+"faster, but you have to wait until it's finished. When using this option, "
+"sorting is also temporarily disabled (see option above)."
+msgstr ""
+"ÁªÂò¤òÊѹ¹¤·¤¿»þ¤Ë¡¢¶Ê¤Î¥ê¥¹¥È¤ò¹¹¿·¤·½ª¤ï¤ë¤Þ¤ÇÅÓÃæ·Ð²á¤òɽ¼¨¤·¤Þ¤»¤ó¡£¹¹¿·"
+"¤Î¥¹¥Ô¡¼¥É¤Ï®¤¯¤Ê¤ê¤Þ¤¹¤¬¡¢¤½¤ì¤¬½ª¤ï¤ë¤Þ¤Ç¤Ï²¿¤â¤¹¤ë»ö¤¬¤Ç¤­¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£"
+"¤³¤ÎÀßÄê¤òÍ­¸ú¤Ë¤·¤¿¾ì¹ç¡¢Ê¤ٴ¹¤¨¤Ï°ì»þŪ¤Ë¤Ç¤­¤Ê¤¯¤Ê¤ê¤Þ¤¹ (¾å¤ÎÀßÄê¤ò»²"
+"¾È)¡£"
+
+#: gtkpod.glade:11858
+msgid ""
+"Block display when changing playlist or tab\n"
+" entry (faster!)"
+msgstr ""
+"¥×¥ì¥¤¥ê¥¹¥È¤ä¥½¡¼¥È¥¿¥Ö¤òÊѹ¹¤·¤¿»þ¤ËÅÓÃæ·Ð²á¤Î\n"
+"ɽ¼¨¤òÍÞÀ©¤¹¤ë(Æ°ºî¤¬Â®¤¯¤Ê¤ë)"
+
+#: gtkpod.glade:11878
+msgid "This option will be re-activated when you upgrade gtkpod."
+msgstr ""
+
+#: gtkpod.glade:11880
+msgid "Display messages and warnings at startup"
+msgstr "µ¯Æ°»þ¤Ë¥á¥Ã¥»¡¼¥¸¤ä·Ù¹ð¤òɽ¼¨¤¹¤ë"
+
+#: gtkpod.glade:11942
+msgid "Advanced Sorting Options"
+msgstr ""
+
+#: gtkpod.glade:12045
+msgid "<b>Track Editing</b>"
+msgstr "<b>¶Ê¤ÎÊÔ½¸</b>"
+
+#: gtkpod.glade:12107
+msgid ""
+"The tags are written to the files on your harddrive and on the ipod (if "
+"available)."
+msgstr ""
+"¥¿¥°¤Ï»È¤Ã¤Æ¤¤¤ë¥Ï¡¼¥É¥Ç¥£¥¹¥¯¤È(²Äǽ¤Ç¤¢¤ì¤Ð)iPod¤ÎξÊý¤Ç½¤Àµ¤µ¤ì¤Þ¤¹¡£"
+
+#: gtkpod.glade:12109
+msgid "Write ID3 tags to disk when modified in gtkpod"
+msgstr "gtkpodÆâ¤ÇÊѹ¹¤¬¤¢¤Ã¤¿ID3¥¿¥°¤ò¥Ç¥£¥¹¥¯¤Ë½ñ¤­¹þ¤à"
+
+#: gtkpod.glade:12165
+msgid ""
+"Normally the charset specified when first importing the track will be used "
+"to write the tags. If you have chosen a wrong charset when first importing a "
+"track, you should select this option along with the correct charset.  Note: "
+"uses the extended information file to store the charset information (see "
+"'Writing of the iTunesDB' on the 'Input/Output' page) and tracks imported "
+"before V0.51 will have no charset stored -- the charset specified on the "
+"'Input/Output' page will be used."
+msgstr ""
+"Ä̾ï¤Ï¡¢ºÇ½é¤Ë¶Ê¤òÊݸ¤·¤¿»þ¤Ë»ØÄꤵ¤ì¤¿Ê¸»ú¥³¡¼¥É¤ò¥¿¥°¤ò½ñ¤­¹þ¤à»þ¤Ë¤â»ÈÍÑ"
+"¤·¤Þ¤¹¡£¤â¤·ºÇ½é¤Ë´Ö°ã¤Ã¤¿Ê¸»ú¥³¡¼¥É¤ò»ØÄꤷ¤Æ¤·¤Þ¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢Àµ¤·¤¤Ê¸»ú"
+"¥³¡¼¥É¤òÁªÂò¤·¤¿¸å¤Ë¤³¤Î¥ª¥×¥·¥ç¥ó¤òÁªÂò¤·¤Æ¤¯¤À¤µ¤¤¡£Ãí°Õ: ʸ»ú¥³¡¼¥É¤Î¾ðÊó"
+"¤òÊݸ¤¹¤ë¤¿¤á¤Ë¡¢³ÈÄ¥¾ðÊó¥Õ¥¡¥¤¥ë¤ò»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤(¡ÖÆþ½ÐÎϡפΥڡ¼¥¸¤Î"
+"¡ÖiTunesDB¤Ø¤Î½ñ¤­¹þ¤ß¡×¤Î¹à¤ò»²¾È)¡£¤Þ¤¿¡¢¥Ð¡¼¥¸¥ç¥ó0.51°ÊÁ°¤ËÅÐÏ¿¤µ¤ì¤¿¶Ê¤Ë"
+"¤Ä¤¤¤Æ¤Ïʸ»ú¥³¡¼¥É¾ðÊó¤¬Êݸ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£¡ÖÆþ½ÐÎϡפιàÌܤǻØÄꤵ¤ì¤¿Ê¸»ú"
+"¥³¡¼¥É¤¬Å¬ÍѤµ¤ì¤Þ¤¹¡£"
+
+#: gtkpod.glade:12167
+#, fuzzy
+msgid ""
+"Use selected encoding (on the 'General' page)\n"
+"when writing tags"
+msgstr ""
+"¡Ö´ðËÜÀßÄê¡×¤Î¥Ú¡¼¥¸¤Ç»ØÄꤵ¤ì¤¿Ê¸»ú¥³¡¼¥É¤ò\n"
+"¥¿¥°¤ÎÆɤ߽ñ¤­¤Ë¤â»ÈÍѤ¹¤ë"
+
+#: gtkpod.glade:12187
+msgid ""
+"This is the way to go, but maybe not all programs support it yet. ID3v2.4 "
+"uses unicode to store the tags, so you won't have to worry about charsets "
+"any more. gtkpod will use UTF8 encoding as this will not increase the size "
+"of pure ASCII tags. ID3v2.2/4 tags will also be written if they are already "
+"present in the file to write to."
+msgstr ""
+
+#: gtkpod.glade:12189
+msgid "Always write ID3v2.4 tags (only applies to MP3)"
+msgstr "¾ï¤Ë ID3v2.4 ¥¿¥°¤ò½ñ¤­¹þ¤à (MP3 ¤Î¤ß)"
+
+#: gtkpod.glade:12222
+msgid ""
+"If you select several tracks in the track list and edit a tag of the first "
+"track, the tags in the other tracks are updated as well."
+msgstr ""
+"¶Ê¥ê¥¹¥È¤Î¶Ê¤òÆó¤Ä°Ê¾åÁªÂò¤·¤Æ¡¢ºÇ½é¤Î¶Ê¤Î¥¿¥°¤òÊѹ¹¤¹¤ë¤È¾¤Î¶Ê¤Ë¤â¤½¤ÎÊѹ¹"
+"¤òŬÍѤ·¤Þ¤¹¡£"
+
+#: gtkpod.glade:12224
+msgid "Use 'Multi-Edit' for tracks selections"
+msgstr "ÁªÂò¤µ¤ì¤¿¶Ê¤ò¡Ö°ìÀÆÊÔ½¸¡×¤¹¤ë"
+
+#: gtkpod.glade:12274
+msgid ""
+"Usually you don't want to set the title of several tracks to the same text. "
+"This option might avoid unwanted results (especially since there is no "
+"'undo' yet)."
+msgstr ""
+"ÉáÄ̤ÏÊ£¿ô¤Î¶Ê¤Î¥¿¥¤¥È¥ë¤òƱ¤¸¤â¤Î¤Ë¤¹¤ëɬÍפϤʤ¤¤Ç¤·¤ç¤¦¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤ò"
+"ÁªÂò¤¹¤ë¤ÈÂçÄñ¤Ï˾¤Þ¤·¤¯¤Ê¤¤·ë²Ì¤òÆÀ¤ë»ö¤Ë¤Ê¤ê¤Þ¤¹¡£(Æäˡ¢º£¤Î¤È¤³¤í¡Ö¤ä¤êľ"
+"¤·¡×¤Ï¸ú¤«¤Ê¤¤¤Î¤Ç¡¢ÁªÂò¤¹¤ë¤Ù¤­¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó)"
+
+#: gtkpod.glade:12276
+msgid "Use 'Multi-Edit' also for title field"
+msgstr "¥¿¥¤¥È¥ë¤Î¹àÌܤâ¡Ö°ìÀÆÊÔ½¸¡×¤ò²Äǽ¤Ë¤¹¤ë"
+
+#: gtkpod.glade:12329
+msgid "<b>Auto-Generated Playlists</b>"
+msgstr "<b>¥×¥ì¥¤¥ê¥¹¥È¤Î¼«Æ°À¸À®</b>"
+
+#: gtkpod.glade:12397
+msgid "Number of tracks in generated playlists:"
+msgstr "À¸À®¤¹¤ë¥×¥ì¥¤¥ê¥¹¥È¤Ë²Ã¤¨¤ë¶Ê¿ô:"
+
+#: gtkpod.glade:12422
+msgid ""
+"Number of tracks in the generated playlists 'Most Often Listened', 'Best "
+"Rated' and 'Most Recently Played'. Choose '0' for 'no limit'."
+msgstr ""
+"¥×¥ì¥¤¥ê¥¹¥È¤Î¿·µ¬ºîÀ®¤Ç¡¢¡ÖºÆÀ¸²ó¿ô¤Î¿¤¤¶Ê¡×¡Öɾ²Á¤Î¹â¤¤¶Ê¡×¡ÖºÇ¶áºÆÀ¸¤µ¤ì"
+"¤¿¶Ê¡×¤òÁªÂò¤·¤¿ºÝ¤Ë¥ê¥¹¥È¤ËÅÐÏ¿¤¹¤ë¶Ê¤Î¿ô¤ò»ØÄꤷ¤Þ¤¹¡£0¤ò»ØÄꤹ¤ë¤È¡¢¶Ê¿ô¤ò"
+"À©¸Â¤·¤Þ¤»¤ó¡£"
+
+#: gtkpod.glade:12451
+msgid "Also include tracks never played in \"Best Rated\" playlist"
+msgstr ""
+"¡Öɾ²Á¤Î¹â¤¤¶Ê¡×¤Î¥ê¥¹¥È¤òºî¤ëºÝ¤Ë¡¢°ìÅÙ¤â\n"
+"ºÆÀ¸¤µ¤ì¤¿»ö¤Î¤Ê¤¤¶Ê¤âÂоݤȤ·¤Þ¤¹¡£"
+
+#: gtkpod.glade:12497
+msgid "<b>Delete Confirmation</b>"
+msgstr "<b>ºï½ü¤Î³Îǧ</b>"
+
+#: gtkpod.glade:12560
+msgid "Before removing playlists or tracks from a playlist"
+msgstr "¥×¥ì¥¤¥ê¥¹¥È¤ä¡¢¥×¥ì¥¤¥ê¥¹¥È¤«¤é¶Ê¤òºï½ü¤¹¤ë»þ"
+
+#: gtkpod.glade:12580
+msgid "Before removing tracks from the iPod"
+msgstr "¶Ê¤òiPod¤«¤é´°Á´¤Ëºï½ü¤¹¤ë»þ"
+
+#: gtkpod.glade:12600
+msgid "Before removing tracks from the harddisk"
+msgstr "¶Ê¤ò¥Ï¡¼¥É¥Ç¥£¥¹¥¯¤«¤é´°Á´¤Ëºï½ü¤¹¤ë»þ"
+
+#: gtkpod.glade:12620
+msgid "Before removing tracks from the local database"
+msgstr "¶Ê¤ò¥í¡¼¥«¥ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤éºï½ü¤¹¤ë»þ"
+
+#: gtkpod.glade:12640
+msgid ""
+"Confirm before removing tracks from the iPod or repository\n"
+"when syncing playlists"
+msgstr ""
+
+#: gtkpod.glade:12723
+msgid "<b>Play</b>"
+msgstr "<b>ºÆÀ¸</b>"
+
+#: gtkpod.glade:12788
+msgid "Command for 'Play now':"
+msgstr "¡Öº£¤¹¤°±éÁաפΤ¿¤á¤Î¥³¥Þ¥ó¥É:"
+
+#: gtkpod.glade:12816
+msgid "Command for 'Enqueue':"
+msgstr "¡Ö±éÁÕ¥­¥å¡¼¤ËÆþ¤ì¤ë¡×¤¿¤á¤Î¥³¥Þ¥ó¥É:"
+
+#: gtkpod.glade:12844
+#, fuzzy
+msgid ""
+"For example, 'xmms %s' will clear xmms' current playlist, add the selected "
+"tracks and start playing."
+msgstr ""
+"Î㤨¤Ð 'xmms -p %s' ¤È¤¹¤ë¤È¡¢xmms ¤Î¤½¤Î»þ¤Î¥×¥ì¥¤¥ê¥¹¥È¤ò¥¯¥ê¥¢¤·¡¢ÁªÂò¤·¤¿"
+"¶Ê¤ò¥×¥ì¥¤¥ê¥¹¥È¤ÎÀèƬ¤Ë²Ã¤¨¤Æ±éÁÕ¤ò»Ï¤á¤Þ¤¹¡£"
+
+#: gtkpod.glade:12866
+msgid ""
+"For example, 'xmms -e %s' will append (enqueue) the selected tracks to xmms' "
+"current playlist."
+msgstr ""
+"Î㤨¤Ð 'xmms -e %s' ¤È¤¹¤ë¤È¡¢ÁªÂò¤µ¤ì¤¿¶Ê¤ò xmms ¤Î¤½¤Î»þ¤Î¥×¥ì¥¤¥ê¥¹¥È¤ÎºÇ"
+"¸åÈø¤ËÄɲä·¤Þ¤¹"
+
+#: gtkpod.glade:12953
+msgid "<b>Volume Normalization</b>"
+msgstr "<b>²»Î̤ÎÊ¿¶Ñ²½</b>"
+
+#: gtkpod.glade:13018
+msgid "'mp3gain' executable:"
+msgstr "'mp3gain' ¥³¥Þ¥ó¥É¤Î¾ì½ê:"
+
+#: gtkpod.glade:13046
+msgid ""
+"Set this to 'mp3gain -q -k' to use the 'Normalize volume' functionality in "
+"the Tools Menu. If this is set, missing normalization data for mp3 files "
+"will be calculated and written to your mp3 file using this command."
+msgstr ""
+
+#: gtkpod.glade:13087
+#, fuzzy
+msgid "'aacgain' executable:"
+msgstr "'mp3gain' ¥³¥Þ¥ó¥É¤Î¾ì½ê:"
+
+#: gtkpod.glade:13115
+msgid ""
+"Set this to 'aacgain -q -k' to use the 'Normalize volume' functionality in "
+"the Tools Menu. If this is set, missing normalization data for .m4a and .m4b "
+"files will be calculated and written to your music file using this command."
+msgstr ""
+
+#: gtkpod.glade:13183
+msgid "<b>Calendar/Contacts/Notes</b>"
+msgstr ""
+
+#: gtkpod.glade:13246
+msgid "Set options for Calendar/Contacts/Notes"
+msgstr ""
+
+#: gtkpod.glade:13381
+msgid "Details"
+msgstr "¾ÜºÙ"
+
+#: gtkpod.glade:13449
+msgid "Cover"
+msgstr "¥«¥Ð¡¼"
+
+#: gtkpod.glade:13538
+msgid "Set Cover Art"
+msgstr ""
+
+#: gtkpod.glade:13575
+msgid ""
+"If you check this, information (cover art and meta information) changed for "
+"this track will be copied to all other selected tracks as well. Use with "
+"care."
+msgstr ""
+
+#: gtkpod.glade:13621
+msgid ""
+"Change all tracks\n"
+"simultaneously"
+msgstr ""
+
+#: gtkpod.glade:13713
+msgid "Remove Cover Art"
+msgstr "¥«¥Ð¡¼¥¢¡¼¥È¤òºï½ü"
+
+#: gtkpod.glade:14646
+#, fuzzy
+msgid "(Checked)"
+msgstr "¥Á¥§¥Ã¥¯ºÑ¤ß"
+
+#: gtkpod.glade:15088
+msgid "_Podcasts"
+msgstr ""
+
+#: gtkpod.glade:16127
+msgid "_Other"
+msgstr ""
+
+#: gtkpod.glade:16425
+msgid "_Undo All"
+msgstr "¤¹¤Ù¤Æ¤ä¤êľ¤·(_U)"
+
+#: gtkpod.glade:16499
+#, fuzzy
+msgid "_Undo Track"
+msgstr "̤ɾ²Á¤Î¶Ê"
+
+#: gtkpod.glade:16546
+#, fuzzy
+msgid "Repository Options"
+msgstr "¥½¡¼¥È¤ÎÀßÄê"
+
+#: gtkpod.glade:16667
+msgid "Add new repository/iPod"
+msgstr ""
+
+#: gtkpod.glade:16736 gtkpod.glade:18163 gtkpod.glade:18659
+#, fuzzy
+msgid "iPod mountpoint:"
+msgstr "iPod¤Î¥Þ¥¦¥ó¥È¾ì½ê(_P):"
+
+#: gtkpod.glade:16764 gtkpod.glade:18135
+msgid "iTunesDB backup:"
+msgstr ""
+
+#: gtkpod.glade:16792 gtkpod.glade:18107 gtkpod.glade:18730 gtkpod.glade:18922
+msgid "Model:"
+msgstr ""
+
+#: gtkpod.glade:16820 gtkpod.glade:18079
+msgid "Path:"
+msgstr ""
+
+#: gtkpod.glade:16848
+msgid "<b>Synchronization</b>"
+msgstr "<b>Ʊ´ü</b>"
+
+#: gtkpod.glade:16906
+msgid "Contacts sync command:"
+msgstr ""
+
+#: gtkpod.glade:16934
+msgid "Calendar sync command:"
+msgstr ""
+
+#: gtkpod.glade:16962
+msgid "Notes sync command:"
+msgstr ""
+
+#: gtkpod.glade:16991
+msgid "Call automatically when synchronizing iTunesDB"
+msgstr ""
+
+#: gtkpod.glade:17014 gtkpod.glade:17038 gtkpod.glade:17062 gtkpod.glade:17086
+#: gtkpod.glade:17110 gtkpod.glade:17134 gtkpod.glade:17658 gtkpod.glade:18435
+msgid ""
+"Specify exact path including command line options. '%i' will be replaced "
+"with the mount point of the iPod."
+msgstr ""
+
+#: gtkpod.glade:17294
+msgid "Update/Sync all playlists now"
+msgstr ""
+
+#: gtkpod.glade:17314
+#, fuzzy
+msgid "Delete repository"
+msgstr "iPod¤«¤éºï½ü"
+
+#: gtkpod.glade:17334 src/context_menus.c:430 src/context_menus.c:448
+#: src/context_menus.c:523
+msgid "I'm sure"
+msgstr ""
+
+#: gtkpod.glade:17390
+#, fuzzy
+msgid "<b>Repositories</b>"
+msgstr "<b>¥Ä¡¼¥ë¥Á¥Ã¥×</b>"
+
+#: gtkpod.glade:17587
+msgid ""
+"Directories to sync with are determined from the filenames of the tracks in "
+"the playlist."
+msgstr ""
+
+#: gtkpod.glade:17589
+msgid "On startup automatically sync with playlist directories"
+msgstr ""
+
+#: gtkpod.glade:17608
+#, fuzzy
+msgid "On startup automatically sync with the following directory"
+msgstr "°Ê²¼¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ÇƱ´ü½èÍý¤ò¤·¤Æ¤â¤è¤í¤·¤¤¤Ç¤¹¤«?"
+
+#: gtkpod.glade:17702
+#, fuzzy
+msgid "Don't automatically sync on startup"
+msgstr "µ¯Æ°»þ¤Ë¼«Æ°Åª¤Ë iTunesDB ¤òÆɤ߹þ¤à"
+
+#: gtkpod.glade:17848
+msgid "On startup automatically update (Live Playlist)"
+msgstr ""
+
+#: gtkpod.glade:17878
+msgid "Update/Sync playlist now"
+msgstr ""
+
+#: gtkpod.glade:17925
+#, fuzzy
+msgid "<b>Playlists</b>"
+msgstr "<b>ºÆÀ¸</b>"
+
+#: gtkpod.glade:18042
+#, fuzzy
+msgid "Create Repository"
+msgstr "iPod¤«¤éºï½ü"
+
+#: gtkpod.glade:18320
+msgid ""
+"Insert before\n"
+"Insert after"
+msgstr ""
+
+#: gtkpod.glade:18358
+#, fuzzy
+msgid "Repository type:"
+msgstr "¥½¡¼¥È¤ÎÀßÄê"
+
+#: gtkpod.glade:18386
+msgid ""
+"iPod\n"
+"Local Repository (Standard)\n"
+"Local Repository (Podcasts)\n"
+msgstr ""
+
+#: gtkpod.glade:18407
+#, fuzzy
+msgid "Repository name:"
+msgstr "¥½¡¼¥È¤ÎÀßÄê"
+
+#: gtkpod.glade:18543 gtkpod.glade:18806
+msgid "Initialize iPod"
+msgstr ""
+
+#: gtkpod.glade:18613
+msgid "<b>Please select mountpoint and your iPod model</b>"
+msgstr ""
+
 #: src/charset.c:53
 msgid "Arabic (IBM-864)"
 msgstr "¥¢¥é¥Ó¥¢¸ì (IBM-864)"
@@ -218,7 +2041,7 @@
 
 #. sanity!
 #. check for "System Charset" and return NULL
-#: src/charset.c:160 src/charset.c:170 src/charset.c:222
+#: src/charset.c:160 src/charset.c:170 src/charset.c:223
 msgid "System Charset"
 msgstr "¥·¥¹¥Æ¥àʸ»ú"
 
@@ -229,239 +2052,218 @@
 "Another instance of gtkpod was detected. Playcount server not started.\n"
 msgstr "gtkpod ¤¬¤¹¤Ç¤ËÆ°ºîÃæ¤Ç¤¹¡£¥×¥ì¥¤¥«¥¦¥ó¥È¥µ¡¼¥Ð¡¼¤Ïµ¯Æ°¤·¤Þ¤»¤ó¡£\n"
 
-#: src/confirmation.c:361
+#: src/confirmation.c:376
 msgid "Confirmation Dialogue"
 msgstr "³Îǧ"
 
-#: src/context_menus.c:352 src/tools.c:634
+#: src/context_menus.c:367 src/tools.c:852
 msgid "Play Now"
 msgstr "º£¤¹¤°±éÁÕ"
 
-#: src/context_menus.c:354 src/tools.c:645
+#: src/context_menus.c:373 src/tools.c:865
 msgid "Enqueue"
 msgstr "±éÁÕ¥­¥å¡¼¤Ë²Ã¤¨¤ë"
 
-#: src/context_menus.c:357
-#, fuzzy
+#: src/context_menus.c:379
 msgid "Copy Tracks to Filesystem"
-msgstr "iPod¤«¤é¶Ê¤ò¥³¥Ô¡¼¤¹¤ë(_T)"
+msgstr "¶Ê¤ò¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤Ë¥³¥Ô¡¼¤¹¤ë"
 
-#: src/context_menus.c:359 src/file_export.c:1069
+#: src/context_menus.c:386 src/file_export.c:1081
 msgid "Create Playlist File"
 msgstr "¥×¥ì¥¤¥ê¥¹¥È¤òºîÀ®"
 
-#: src/context_menus.c:361
-msgid "Edit Details"
-msgstr ""
+#: src/context_menus.c:393
+msgid "Create new Playlist"
+msgstr "¥×¥ì¥¤¥ê¥¹¥È¤Î¿·µ¬ºîÀ®"
 
-#: src/context_menus.c:363 gtkpod.glade:12817
-msgid "Update"
-msgstr "¹¹¿·"
+#: src/context_menus.c:400
+#, fuzzy
+msgid "Update Tracks from File"
+msgstr "¥Õ¥¡¥¤¥ë¤ò¸µ¤Ë¶Ê¤ò¹¹¿·¤¹¤ë(_U)"
 
-#: src/context_menus.c:365
-msgid "Sync Dirs"
-msgstr "¥Ç¥£¥ì¥¯¥È¥ê¤ÎƱ´ü"
+#: src/context_menus.c:414
+msgid "Sync Playlist with Dir(s)"
+msgstr ""
 
-#: src/context_menus.c:367
-msgid "Normalize"
-msgstr "²»Î̤ÎÊ¿¶Ñ²½"
+#: src/context_menus.c:424
+msgid "Remove All Tracks from iPod"
+msgstr "iPod¤«¤é¶Ê¤òºï½ü"
 
-#: src/context_menus.c:369
-msgid "Create new Playlist"
-msgstr "¥×¥ì¥¤¥ê¥¹¥È¤Î¿·µ¬ºîÀ®"
+#: src/context_menus.c:442
+msgid "Remove All Podcasts from iPod"
+msgstr "¤¹¤Ù¤Æ¤Î Podcast ¤ò iPod ¤«¤éºï½ü"
 
-#: src/context_menus.c:372
-msgid "Edit Smart Playlist"
-msgstr "¥¹¥Þ¡¼¥È¥×¥ì¥¤¥ê¥¹¥È¤ÎÊÔ½¸"
+#: src/context_menus.c:457
+msgid "Delete Including Tracks"
+msgstr "Ãæ¤Î¶Ê¤´¤Èºï½ü"
 
-#: src/context_menus.c:378
-msgid "Alphabetize"
-msgstr "ʤٴ¹¤¨"
+#: src/context_menus.c:465
+msgid "Delete But Keep Tracks"
+msgstr "¶Ê¤Ï»Ä¤·¤¿¤Þ¤Þºï½ü"
 
-#: src/context_menus.c:402
-msgid "Delete From iPod"
-msgstr "iPod¤«¤éºï½ü"
+#: src/context_menus.c:473
+#, fuzzy
+msgid "Edit iPod Properties"
+msgstr "iPod¤Î½é´üÀßÄê"
 
-#: src/context_menus.c:408
-msgid "Delete From Harddisk"
-msgstr "¥Ï¡¼¥É¥Ç¥£¥¹¥¯¤«¤éºï½ü"
+#: src/context_menus.c:493
+#, fuzzy
+msgid "Load iPod"
+msgstr "iPod ¥Õ¥¡¥¤¥ë"
 
-#: src/context_menus.c:414
-msgid "Delete From Database"
-msgstr "¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤éºï½ü"
+#: src/context_menus.c:500
+msgid "Eject iPod"
+msgstr ""
 
-#: src/context_menus.c:420
-msgid "Delete From Playlist"
-msgstr "¥×¥ì¥¤¥ê¥¹¥È¤«¤éºï½ü"
+#: src/context_menus.c:517
+msgid "Remove All Tracks from Database"
+msgstr "¤¹¤Ù¤Æ¤Î¶Ê¤ò¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤éºï½ü"
 
-#: src/context_menus.c:439
-msgid "Delete Including Tracks"
-msgstr "Ãæ¤Î¶Ê¤´¤Èºï½ü"
-
-#: src/context_menus.c:445
+#: src/context_menus.c:532
 msgid "Delete Including Tracks (Harddisk)"
 msgstr "Ãæ¤Î¶Ê¤´¤Èºï½ü (¥Ï¡¼¥É¥Ç¥£¥¹¥¯¤«¤é)"
 
-#: src/context_menus.c:451
+#: src/context_menus.c:540
 msgid "Delete Including Tracks (Database)"
 msgstr "Ãæ¤Î¶Ê¤´¤Èºï½ü (¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤é)"
 
-#: src/context_menus.c:457
-msgid "Delete But Keep Tracks"
-msgstr "¶Ê¤Ï»Ä¤·¤¿¤Þ¤Þºï½ü"
+#: src/context_menus.c:548
+msgid "Delete From iPod"
+msgstr "iPod¤«¤éºï½ü"
 
-#: src/context_menus.c:463
-msgid "Remove All Tracks from iPod"
-msgstr "iPod¤«¤é¶Ê¤òºï½ü"
+#: src/context_menus.c:556
+msgid "Delete From Playlist"
+msgstr "¥×¥ì¥¤¥ê¥¹¥È¤«¤éºï½ü"
 
-#: src/context_menus.c:469
-msgid "Remove All Tracks from Database"
-msgstr "¤¹¤Ù¤Æ¤Î¶Ê¤ò¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤éºï½ü"
+#: src/context_menus.c:564
+msgid "Delete From Harddisk"
+msgstr "¥Ï¡¼¥É¥Ç¥£¥¹¥¯¤«¤éºï½ü"
 
-#: src/context_menus.c:476
-#, fuzzy
-msgid "Remove All Podcasts from iPod"
-msgstr "iPod¤«¤é¶Ê¤òºï½ü"
+#: src/context_menus.c:572
+msgid "Delete From Database"
+msgstr "¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤éºï½ü"
 
-#: src/context_menus.c:487 gtkpod.glade:156
-msgid "Update Podcasts"
-msgstr ""
+#: src/context_menus.c:580
+msgid "Alphabetize"
+msgstr "ʤٴ¹¤¨"
 
-#: src/context_menus.c:494
+#: src/context_menus.c:596
 #, fuzzy
-msgid "Podcasts Preferences"
-msgstr "ÀßÄê(_E)"
+msgid "Edit Playlist Properties"
+msgstr "¥×¥ì¥¤¥ê¥¹¥È¤ò¥Õ¥¡¥¤¥ë¤«¤éÆɤ߹þ¤ó¤ÇÄɲä·¤Þ¤¹"
 
 #: src/date_parser.l:269
 #, c-format
 msgid "Date format error: unrecognized character: '%s'\n"
 msgstr "¥Ç¡¼¥¿¥¨¥é¡¼: ¼¡¤Îʸ»ú¤Ï»ÈÍѤǤ­¤Þ¤»¤ó: '%s'\n"
 
-#: src/details.c:1035 gtkpod.glade:4365
-msgid "n/a"
-msgstr "ÉÔ²Ä"
-
-#: src/details.c:1099
-#, fuzzy
+#: src/details.c:1182
 msgid "<b>n/a</b>"
-msgstr "<b>ºÆÀ¸</b>"
+msgstr "<b>ÉÔ²Ä</b>"
 
-#: src/display.c:924 src/display.c:1022 src/display.c:1071 src/display.c:1302
-#: src/display.c:1358 src/display.c:1413 src/display.c:1464 src/display.c:1628
-#: src/misc_playlist.c:274
-msgid "No playlist selected"
-msgstr "¥×¥ì¥¤¥ê¥¹¥È¤¬ÁªÂò¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-
-#: src/display.c:934
-#, fuzzy
+#: src/display.c:891
 msgid "Edit selected entry of which sort tab?"
-msgstr "¤É¤Î¥½¡¼¥È¥¿¥Ö¤ÇÁªÂò¤µ¤ì¤¿¤â¤Î¤ò¹¹¿·¤·¤Þ¤¹¤«¡©"
+msgstr "¤É¤Î¥½¡¼¥È¥¿¥Ö¤ÇÁªÂò¤µ¤ì¤¿¤â¤Î¤òÊÔ½¸¤·¤Þ¤¹¤«¡©"
 
 #. no entry selected
-#: src/display.c:941 src/misc_confirm.c:441 src/misc_track.c:1482
+#: src/display.c:898 src/misc_confirm.c:431 src/misc_track.c:1613
 msgid "No entry selected."
 msgstr "²¿¤âÁªÂò¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£"
 
-#: src/display.c:960 src/display.c:1040 src/display.c:1345 src/display.c:1401
-#: src/display.c:1452 src/display.c:1503
-msgid "No tracks selected"
-msgstr "¶Ê¤¬ÁªÂò¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-
-#: src/display.c:1056 src/display.c:1322 src/display.c:1378 src/display.c:1430
-#: src/display.c:1481 src/display.c:1650
+#: src/display.c:1057 src/display.c:1384 src/display.c:1440 src/display.c:1494
+#: src/display.c:1549 src/display.c:1810
 #, c-format
 msgid "No entry selected in Sort Tab %d"
-msgstr "¥½¡¼¥È¥¿¥Ö %d Æâ¤Ç¤Ï²¿¤âÁªÂò¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
+msgstr "¥½¡¼¥È¥¿¥Ö %d Æâ¤Ç¤Ï²¿¤âÁªÂò¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£"
 
-#: src/display.c:1095
-#, fuzzy
+#: src/display.c:1096
 msgid "Remove entry of which sort tab from database?"
-msgstr "¤É¤Î¥½¡¼¥È¥¿¥Ö¤ÇÁªÂò¤µ¤ì¤¿¤â¤Î¤ò¥¨¥¯¥¹¥Ý¡¼¥È¤·¤Þ¤¹¤«¡©"
+msgstr "¤É¤Î¥½¡¼¥È¥¿¥Ö¤ÇÁªÂò¤µ¤ì¤¿¤â¤Î¤ò¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤éºï½ü¤·¤Þ¤¹¤«¡©"
 
-#: src/display.c:1103
-#, fuzzy
+#: src/display.c:1104
 msgid "Remove tracks in selected entry of which filter tab from the iPod?"
-msgstr "¤É¤Î¥½¡¼¥È¥¿¥Ö¤ÇÁªÂò¤µ¤ì¤¿¶Ê¤ò±éÁÕ¥­¥å¡¼¤Ë²Ã¤¨¤Þ¤¹¤«¡©"
+msgstr "¤É¤Î¥½¡¼¥È¥¿¥Ö¤ÇÁªÂò¤µ¤ì¤¿¶Ê¤òiPod¤«¤éºï½ü¤·¤Þ¤¹¤«¡©"
 
-#: src/display.c:1125
-#, fuzzy
+#: src/display.c:1126
 msgid "Remove tracks in selected entry of which filter tab from the harddisk?"
-msgstr "¤É¤Î¥½¡¼¥È¥¿¥Ö¤ÇÁªÂò¤µ¤ì¤¿¶Ê¤ò±éÁÕ¥­¥å¡¼¤Ë²Ã¤¨¤Þ¤¹¤«¡©"
+msgstr "¤É¤Î¥½¡¼¥È¥¿¥Ö¤ÇÁªÂò¤µ¤ì¤¿¶Ê¤ò¥Ï¡¼¥É¥Ç¥£¥¹¥¯¤«¤éºï½ü¤·¤Þ¤¹¤«¡©"
 
-#: src/display.c:1155
-#, fuzzy
+#: src/display.c:1156
 msgid "Remove tracks in selected entry of which filter tab from playlist?"
-msgstr "¤É¤Î¥½¡¼¥È¥¿¥Ö¤ÇÁªÂò¤µ¤ì¤¿¶Ê¤ò±éÁÕ¥­¥å¡¼¤Ë²Ã¤¨¤Þ¤¹¤«¡©"
+msgstr "¤É¤Î¥½¡¼¥È¥¿¥Ö¤ÇÁªÂò¤µ¤ì¤¿¶Ê¤ò¥×¥ì¥¤¥ê¥¹¥È¤«¤éºï½ü¤·¤Þ¤¹¤«¡©"
 
-#: src/display.c:1174
-msgid "Currently no iPod database selected"
-msgstr "iPod ¥Ç¡¼¥¿¥Ù¡¼¥¹¤¬ÁªÂò¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
+#: src/display.c:1183 src/display.c:1221
+#, c-format
+msgid ""
+"iPod at '%s' is not loaded.\n"
+"Please load it first."
+msgstr ""
 
-#: src/display.c:1202 src/display.c:1229
+#: src/display.c:1265 src/display.c:1292
 msgid "Update selected entry of which sort tab?"
 msgstr "¤É¤Î¥½¡¼¥È¥¿¥Ö¤ÇÁªÂò¤µ¤ì¤¿¤â¤Î¤ò¹¹¿·¤·¤Þ¤¹¤«¡©"
 
-#: src/display.c:1248
-msgid "Sync dirs of selected entry in which sort tab?"
-msgstr "¤É¤Î¥½¡¼¥È¥¿¥Ö¤ÇÁªÂò¤µ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤ò¹¹¿·¤·¤Þ¤¹¤«¡©"
-
-#: src/display.c:1316
+#: src/display.c:1378
 msgid "Export selected entry of which sort tab?"
 msgstr "¤É¤Î¥½¡¼¥È¥¿¥Ö¤ÇÁªÂò¤µ¤ì¤¿¤â¤Î¤ò¥¨¥¯¥¹¥Ý¡¼¥È¤·¤Þ¤¹¤«¡©"
 
-#: src/display.c:1372
+#: src/display.c:1434
 msgid "Create playlist file from selected entry of which sort tab?"
 msgstr "¤É¤Î¥½¡¼¥È¥¿¥Ö¤ÇÁªÂò¤µ¤ì¤¿¤â¤Î¤«¤é¥×¥ì¥¤¥ê¥¹¥È¤òºîÀ®¤·¤Þ¤¹¤«¡©"
 
-#: src/display.c:1424
+#: src/display.c:1488
 msgid "Play tracks in selected entry of which sort tab?"
 msgstr "¤É¤Î¥½¡¼¥È¥¿¥Ö¤ÇÁªÂò¤µ¤ì¤¿¶Ê¤ò±éÁÕ¤·¤Þ¤¹¤«¡©"
 
-#: src/display.c:1475
+#: src/display.c:1543
 msgid "Enqueue tracks in selected entry of which sort tab?"
 msgstr "¤É¤Î¥½¡¼¥È¥¿¥Ö¤ÇÁªÂò¤µ¤ì¤¿¶Ê¤ò±éÁÕ¥­¥å¡¼¤Ë²Ã¤¨¤Þ¤¹¤«¡©"
 
-#: src/display.c:1640
+#: src/display.c:1800
 msgid "Normalize tracks in selected entry of which sort tab?"
 msgstr "¤É¤Î¥½¡¼¥È¥¿¥Ö¤ÇÁªÂò¤µ¤ì¤¿¶Ê¤òÊ¿¶Ñ²½¤·¤Þ¤¹¤«¡©"
 
-#: src/display_itdb.c:319
+#: src/display_itdb.c:355
 #, fuzzy, c-format
-msgid "Failed to set cover art: '%s'"
-msgstr "Êݸ¤¬¤Ç¤­¤Þ¤»¤ó '%s-%s'\n"
+msgid "Failed to set cover art: '%s'\n"
+msgstr "¥«¥Ð¡¼¥¢¡¼¥È¤¬ÀßÄê¤Ç¤­¤Þ¤»¤ó: '%s'"
 
+#: src/display_itdb.c:835 src/display_itdb.c:967 src/repository.c:1189
+#, fuzzy
+msgid "iPod"
+msgstr "iPod ¥Õ¥¡¥¤¥ë"
+
+#: src/display_itdb.c:844 src/display_itdb.c:965
+msgid "Local"
+msgstr ""
+
 #. add podcast playlist
-#: src/display_itdb.c:843 src/display_itdb.c:871 src/display_itdb.c:975
-#: gtkpod.glade:13669
+#: src/display_itdb.c:852 src/display_itdb.c:963 src/display_itdb.c:991
 msgid "Podcasts"
 msgstr ""
 
-#: src/display_itdb.c:845 src/display_itdb.c:941
-msgid "Local"
-msgstr ""
-
-#: src/display_itdb.c:1081
+#: src/display_itdb.c:1050
 #, c-format
 msgid "Increased playcount for '%s'"
 msgstr "'%s' ¤ÎºÆÀ¸²ó¿ô¤òÁý¤ä¤·¤Þ¤·¤¿"
 
 #. give a notice on the statusbar -- otherwise the user
 #. * will never know why the drag is not possible
-#: src/display_playlists.c:498 src/display_playlists.c:540
+#: src/display_playlists.c:496 src/display_playlists.c:538
 msgid "Error: drag from iPod not possible in offline mode."
-msgstr ""
+msgstr "¥¨¥é¡¼: ¥ª¥Õ¥é¥¤¥ó¥â¡¼¥É¤Ç¤Ï iPod ¤«¤é¤Î¥É¥é¥Ã¥°Áàºî¤Ï¤Ç¤­¤Þ¤»¤ó¡£"
 
-#: src/display_playlists.c:567 src/display_songs.c:285
+#: src/display_playlists.c:565 src/display_songs.c:287
 #, c-format
 msgid "Copied one track"
 msgid_plural "Copied %d tracks"
 msgstr[0] "%d¶Ê¥³¥Ô¡¼¤·¤Þ¤·¤¿"
 
-#: src/display_playlists.c:856
+#: src/display_playlists.c:851
 msgid "Can't reorder sorted treeview."
 msgstr "¥½¡¼¥È¤µ¤ì¤Æ¤¤¤ë½çÈÖ¤òÊѹ¹¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó"
 
-#: src/display_playlists.c:947
+#: src/display_playlists.c:944
 #, c-format
 msgid ""
 "This DND type (%d) is not (yet) supported. If you feel implementing this "
@@ -472,17 +2274,13 @@
 "¥È¤¹¤ë¤³¤È¤¬Í­ÍѤÀ¤È¤ª¹Í¤¨¤Ç¤·¤¿¤é¡¢ºî¼Ô¤ËÏ¢Íí¤·¤Æ¤¯¤À¤µ¤¤¡£\n"
 "\n"
 
-#: src/display_playlists.c:1830 gtkpod.glade:3997
-msgid "Playlists"
-msgstr "ºÆÀ¸¥ê¥¹¥È"
-
-#: src/display_songs.c:280
+#: src/display_songs.c:282
 #, c-format
 msgid "Moved one track"
 msgid_plural "Moved %d tracks"
 msgstr[0] "%d¶Ê¤ò°ÜÆ°¤·¤Þ¤·¤¿"
 
-#: src/display_songs.c:1669
+#: src/display_songs.c:1690
 #, c-format
 msgid ""
 "Cannot unsort track view because of a bug in the GTK lib you are using (%d.%"
@@ -495,124 +2293,88 @@
 "¤Ï¤Ç¤­¤Þ¤»¤ó¡£\n"
 "\n"
 
-#: src/display_songs.c:1922
-#, fuzzy
+#: src/display_songs.c:1923
 msgid "Rtng"
 msgstr "ɾ²Á"
 
-#: src/display_songs.c:1925
+#: src/display_songs.c:1926
 msgid "#"
 msgstr "#"
 
-#: src/display_songs.c:1928
+#: src/display_songs.c:1929
 msgid "CD"
 msgstr ""
 
-#: src/display_songs.c:1931
+#: src/display_songs.c:1932
 msgid "ID"
 msgstr "ID"
 
-#: src/display_songs.c:1934
+#: src/display_songs.c:1935
 msgid "Trnsfrd"
 msgstr "žÁ÷ºÑ¤ß"
 
-#: src/display_songs.c:1938
+#: src/display_songs.c:1939
 msgid "Cmpl"
-msgstr ""
+msgstr "¥³¥ó¥Ô"
 
-#: src/display_songs.c:1942 src/display_spl.c:94
+#: src/display_songs.c:1945 src/display_spl.c:94
 msgid "Time"
 msgstr "±éÁÕ»þ´Ö"
 
-#: src/display_songs.c:1945
+#: src/display_songs.c:1948
 msgid "Plycnt"
 msgstr "ºÆÀ¸²ó¿ô"
 
-#: src/display_songs.c:1948 gtkpod.glade:2433
-msgid "Played"
-msgstr "±éÁÕÆü"
-
-#: src/display_songs.c:1951 gtkpod.glade:2456
-msgid "Modified"
-msgstr "Êѹ¹Æü"
-
-#: src/display_songs.c:1954 src/display_sorttabs.c:3117 gtkpod.glade:2551
-msgid "Added"
-msgstr "ÅÐÏ¿Æü"
-
-#: src/display_songs.c:1957
-#, fuzzy
+#: src/display_songs.c:1960
 msgid "Released"
-msgstr "Æɤ߹þ¤ß"
+msgstr "¸ø³«Æü"
 
-#: src/display_songs.c:1960 src/display_sorttabs.c:2856 src/display_spl.c:88
+#: src/display_songs.c:1963 src/display_sorttabs.c:2957 src/display_spl.c:88
 #: src/misc_conversion.c:85
 msgid "Year"
 msgstr "ǯ"
 
-#: src/display_songs.c:1963
+#: src/display_songs.c:1966
 msgid "Vol."
 msgstr "²»ÎÌ"
 
-#: src/display_songs.c:1966
+#: src/display_songs.c:1969
 msgid "Sndchk."
 msgstr "¥µ¥¦¥ó¥É¥Á¥§¥Ã¥¯"
 
-#: src/display_sorttabs.c:400
+#: src/display_sorttabs.c:456
 msgid "'Played' condition ignored because of error."
 msgstr "¡Ö±éÁÕÆü¡×¤Î¾ò·ï¤Ï¥¨¥é¡¼¤Î¤¿¤á¤Ë̵»ë¤µ¤ì¤Þ¤·¤¿¡£"
 
-#: src/display_sorttabs.c:403
+#: src/display_sorttabs.c:459
 msgid "'Modified' condition ignored because of error."
 msgstr "¡ÖÊѹ¹Æü¡×¤Î¾ò·ï¤Ï¥¨¥é¡¼¤Î¤¿¤á¤Ë̵»ë¤µ¤ì¤Þ¤·¤¿¡£"
 
-#: src/display_sorttabs.c:406
+#: src/display_sorttabs.c:462
 msgid "'Added' condition ignored because of error."
 msgstr "¡ÖÅÐÏ¿Æü¡×¤Î¾ò·ï¤Ï¥¨¥é¡¼¤Î¤¿¤á¤Ë̵»ë¤µ¤ì¤Þ¤·¤¿¡£"
 
-#: src/display_sorttabs.c:1492 src/misc_conversion.c:60
+#: src/display_sorttabs.c:1582 src/misc_conversion.c:60
 msgid "All"
 msgstr "¤¹¤Ù¤Æ"
 
-#: src/display_sorttabs.c:1518
-#, fuzzy
+#: src/display_sorttabs.c:1608
 msgid "Compilations"
 msgstr "¥³¥ó¥Ô¥ì¡¼¥·¥ç¥ó"
 
-#: src/display_sorttabs.c:2841 src/display_spl.c:85 src/misc_conversion.c:62
-#: gtkpod.glade:8709
-msgid "Artist"
-msgstr "¥¢¡¼¥Æ¥£¥¹¥È"
-
-#. 0
-#: src/display_sorttabs.c:2844 src/display_spl.c:84 src/misc_conversion.c:61
-#: gtkpod.glade:8753
-msgid "Album"
-msgstr "¥¢¥ë¥Ð¥à"
-
-#: src/display_sorttabs.c:2847 src/display_spl.c:89 src/misc_conversion.c:64
-#: gtkpod.glade:8731
-msgid "Genre"
-msgstr "¥¸¥ã¥ó¥ë"
-
-#: src/display_sorttabs.c:2850
+#: src/display_sorttabs.c:2951
 msgid "Comp."
 msgstr "ºî¶Ê¼Ô"
 
-#: src/display_sorttabs.c:2853 src/display_spl.c:83 src/misc_conversion.c:63
-#: gtkpod.glade:8797
-msgid "Title"
-msgstr "¥¿¥¤¥È¥ë"
-
-#: src/display_sorttabs.c:2859
+#: src/display_sorttabs.c:2960
 msgid "Special"
 msgstr "¥¹¥Ú¥·¥ã¥ë"
 
-#: src/display_sorttabs.c:3115
+#: src/display_sorttabs.c:3216
 msgid "Last Played"
 msgstr "ºÇ¸å¤Ë±éÁÕ¤·¤¿Æü"
 
-#: src/display_sorttabs.c:3116
+#: src/display_sorttabs.c:3217
 msgid "Last Modified"
 msgstr "ºÇ¸å¤ËÊѹ¹¤·¤¿Æü"
 
@@ -636,7 +2398,7 @@
 msgid "Hz"
 msgstr ""
 
-#: src/display_spl.c:75 src/display_spl.c:160 src/info.c:732
+#: src/display_spl.c:75 src/display_spl.c:160 src/info.c:777
 msgid "MB"
 msgstr ""
 
@@ -655,7 +2417,7 @@
 
 #: src/display_spl.c:90
 msgid "Kind"
-msgstr ""
+msgstr "¼ïÎà"
 
 #: src/display_spl.c:91 src/misc_conversion.c:82
 msgid "Date modified"
@@ -677,15 +2439,6 @@
 msgid "Date added"
 msgstr "ÅÐÏ¿Æü"
 
-#. 5
-#: src/display_spl.c:97 src/misc_conversion.c:66 gtkpod.glade:8775
-msgid "Composer"
-msgstr "ºî¶Ê¼Ô"
-
-#: src/display_spl.c:98 src/misc_conversion.c:78 gtkpod.glade:2387
-msgid "Playcount"
-msgstr "ºÆÀ¸²ó¿ô"
-
 #: src/display_spl.c:99
 msgid "Last played"
 msgstr "ºÇ¸å¤Ë±éÁÕ¤·¤¿Æü"
@@ -694,10 +2447,6 @@
 msgid "Disc number"
 msgstr "CD ÈÖ¹æ"
 
-#: src/display_spl.c:101 src/misc_conversion.c:79 gtkpod.glade:2410
-msgid "Rating"
-msgstr "ɾ²Á"
-
 #: src/display_spl.c:102 src/misc_conversion.c:88
 msgid "Compilation"
 msgstr "¥³¥ó¥Ô¥ì¡¼¥·¥ç¥ó"
@@ -708,12 +2457,8 @@
 
 #: src/display_spl.c:104 src/misc_conversion.c:87
 msgid "Grouping"
-msgstr ""
+msgstr "¥°¥ë¡¼¥×"
 
-#: src/display_spl.c:105 gtkpod.glade:1443
-msgid "Playlist"
-msgstr "¥×¥ì¥¤¥ê¥¹¥È"
-
 #: src/display_spl.c:111
 msgid "contains"
 msgstr "¤¬¼¡¤Î¤â¤Î¤ò´Þ¤à"
@@ -788,7 +2533,7 @@
 msgid "hours"
 msgstr "»þ´Ö"
 
-#: src/display_spl.c:163 src/info.c:732
+#: src/display_spl.c:163 src/info.c:777
 msgid "GB"
 msgstr ""
 
@@ -844,25 +2589,25 @@
 msgid "lowest rating"
 msgstr "ɾ²Á¤ÎÄ㤤¶Ê"
 
-#: src/display_spl.c:1049 src/display_spl.c:1064
+#: src/display_spl.c:1047 src/display_spl.c:1062
 msgid "to"
 msgstr "¤«¤é"
 
-#: src/display_spl.c:1276
+#: src/display_spl.c:1279
 msgid "-"
 msgstr ""
 
-#: src/display_spl.c:1286
+#: src/display_spl.c:1294
 msgid "+"
 msgstr ""
 
-#: src/display_spl.c:1503 src/misc_playlist.c:67 src/misc_playlist.c:69
-#: src/misc_playlist.c:94 src/misc_playlist.c:96 src/misc_playlist.c:415
-#: src/misc_playlist.c:417
+#: src/display_spl.c:1513 src/misc_playlist.c:67 src/misc_playlist.c:69
+#: src/misc_playlist.c:94 src/misc_playlist.c:96 src/misc_playlist.c:429
+#: src/misc_playlist.c:431
 msgid "New Playlist"
 msgstr "¿·µ¬¥×¥ì¥¤¥ê¥¹¥È"
 
-#: src/file.c:195
+#: src/file.c:230
 #, c-format
 msgid ""
 "'%s' is a directory, not a playlist file.\n"
@@ -871,7 +2616,7 @@
 "'%s' ¤Ï¥×¥ì¥¤¥ê¥¹¥È¥Õ¥¡¥¤¥ë¤Ç¤Ï¤Ê¤¯¡¢¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤¹¡£\n"
 "\n"
 
-#: src/file.c:222
+#: src/file.c:258
 #, c-format
 msgid ""
 "'%s' is a not a known playlist file.\n"
@@ -880,7 +2625,7 @@
 "'%s' ¤Ï ¥×¥ì¥¤¥ê¥¹¥È¥Õ¥¡¥¤¥ë¤Ç¤Ï¤Ê¤¤¤è¤¦¤Ç¤¹¡£\n"
 "\n"
 
-#: src/file.c:239
+#: src/file.c:275
 #, c-format
 msgid ""
 "Cannot open '%s' for reading.\n"
@@ -889,417 +2634,371 @@
 "¥Õ¥¡¥¤¥ë '%s' ¤òÆɤ߹þ¤â¤¦¤È¤·¤Þ¤·¤¿¤¬¡¢³«¤¯¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¡£\n"
 "\n"
 
-#: src/file.c:322
+#: src/file.c:359
 #, c-format
 msgid "Skipping '%s' because it is a directory.\n"
 msgstr "'%s' ¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤Ê¤Î¤ÇÈô¤Ð¤·¤Þ¤¹¡£\n"
 
-#: src/file.c:327
+#: src/file.c:364
 #, c-format
 msgid "Skipping '%s' to avoid adding playlist file recursively\n"
 msgstr "¥×¥ì¥¤¥ê¥¹¥È¥Õ¥¡¥¤¥ë¤ÎºÆµ¢Åª¤ÊÅÐÏ¿¤òÈò¤±¤ë¤¿¤á¡¢'%s' ¤ÏÈô¤Ð¤·¤Þ¤¹¡£\n"
 
-#: src/file.c:582
+#: src/file.c:619
 #, c-format
 msgid "Unknown token '%s' in template '%s'\n"
-msgstr "'%s' (¥Æ¥ó¥×¥ì¡¼¥È '%s' Ãæ) ¤Ï̤ÃΤΤâ¤Î¤Ç¤¹¡£\n"
+msgstr "̤ÃΤΥȡ¼¥¯¥ó '%s' ¤¬¥Æ¥ó¥×¥ì¡¼¥È '%s' Ãæ¤Ë¤¢¤ê¤Þ¤¹¡£\n"
 
-#: src/file.c:817
+#: src/file.c:871
 #, c-format
 msgid "Local filename not valid (%s)"
 msgstr "¥í¡¼¥«¥ë¤Î¥Õ¥¡¥¤¥ë̾¤¬ÉÔÀµ¤Ç¤¹ (%s)"
 
-#: src/file.c:870
+#: src/file.c:930
 #, c-format
 msgid "No information found for user '%s' in '%s'"
 msgstr "¥æ¡¼¥¶¡¼ '%s' ¤Î¾ðÊó¤¬ '%s' Æâ¤Ë¸«¤Ä¤«¤ê¤Þ¤»¤ó"
 
-#: src/file.c:877
+#: src/file.c:939
 #, c-format
 msgid "mserv data file (%s) not available for track (%s)"
-msgstr ""
+msgstr "¤³¤Î¶Ê (%2$s) ÍѤΠmserv ¥Ç¡¼¥¿¥Õ¥¡¥¤¥ë (%1$s) ¤¬¤¢¤ê¤Þ¤»¤ó"
 
-#: src/file.c:885
+#: src/file.c:947
 #, c-format
 msgid "Track (%s) not in mserv music root directory (%s)"
-msgstr ""
+msgstr "¤³¤Î¶Ê (%s) ¤Ï mserv ¤Î¥ë¡¼¥È¥Ç¥£¥ì¥¯¥È¥ê (%s) ¤Ë¤ÏÆþ¤Ã¤Æ¤¤¤Þ¤»¤ó"
 
-#: src/file.c:990
-#, fuzzy, c-format
+#: src/file.c:1055
+#, c-format
 msgid ""
 "The following track could not be processed (file does not exist): '%s'\n"
-msgstr "°Ê²¼¤Î%d¶Ê¤ò¹¹¿·¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿"
+msgstr "°Ê²¼¤Î¶Ê¤ò½èÍý¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿ (¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤·¤Ê¤¤¤¿¤á): '%s'\n"
 
-#: src/file.c:1039
-#, fuzzy, c-format
+#: src/file.c:1118
+#, c-format
 msgid "The following track could not be processed (filetype unknown): '%s'\n"
-msgstr "°Ê²¼¤Î%d¶Ê¤ò¹¹¿·¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿"
+msgstr "°Ê²¼¤Î¶Ê¤ò½èÍý¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿ (¥Õ¥¡¥¤¥ë·Á¼°¤¬ÉÔÌÀ¤Ê¤¿¤á): '%s'\n"
 
-#: src/file.c:1121
+#: src/file.c:1211
 #, c-format
 msgid ""
 "The following track could not be processed (filetype is known but analysis "
 "failed): '%s'\n"
 msgstr ""
+"°Ê²¼¤Î¶Ê¤ò½èÍý¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿ (¥Õ¥¡¥¤¥ë·Á¼°¤Ï´ûÃΤÀ¤¬²òÀϤ˼ºÇÔ¤·¤¿¤¿¤á): '%"
+"s'\n"
 
-#: src/file.c:1150 src/file.c:1205
+#: src/file.c:1241 src/file.c:1295
 msgid "Nothing to update"
 msgstr "¹¹¿·¤µ¤ì¤ë¥Ç¡¼¥¿¤Ï¤¢¤ê¤Þ¤»¤ó"
 
-#: src/file.c:1170
+#: src/file.c:1262
 #, c-format
 msgid "Updating %s"
 msgstr "%s ¤ò¹¹¿·Ãæ"
 
-#: src/file.c:1186
+#: src/file.c:1276
 msgid "Updated selected tracks with info from file."
 msgstr "ÁªÂò¤µ¤ì¤¿¶Ê¤Î¾ðÊó¤ò¡¢¥Õ¥¡¥¤¥ë¤ò¸µ¤Ë¹¹¿·¤·¤Þ¤·¤¿¡£"
 
-#: src/file.c:1218
+#: src/file.c:1310
 #, c-format
 msgid "Retrieving mserv data %s"
-msgstr ""
+msgstr "mserv data %s ¤ò¼èÆÀÃæ"
 
-#. no path available
-#: src/file.c:1224 src/file.c:1902
+#: src/file.c:1315
 msgid "no filename available"
 msgstr "¥Õ¥¡¥¤¥ë̾¤¬¤ï¤«¤ê¤Þ¤»¤ó"
 
-#: src/file.c:1229
+#: src/file.c:1320
 msgid "Updated selected tracks with data from mserv."
-msgstr ""
+msgstr "ÁªÂò¤µ¤ì¤¿¶Ê¤ò mserv ¤Î¥Ç¡¼¥¿¤ò¸µ¤Ë¹¹¿·¤·¤Þ¤·¤¿¡£"
 
-#: src/file.c:1296
+#: src/file.c:1341
 #, c-format
-msgid "Syncing directory '%s'"
-msgstr "¥Ç¥£¥ì¥¯¥È¥ê '%s' ¤ÎƱ´ü½èÍýÃæ"
-
-#: src/file.c:1321
-msgid "Syncing completed. No files deleted."
-msgstr "Ʊ´ü½èÍý¤¬½ªÎ»¤·¤Þ¤·¤¿¡£ºï½ü¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Ï¤¢¤ê¤Þ¤»¤ó¡£"
-
-#. gint id,
-#. gboolean modal,
-#. title
-#. label
-#. scrolled text
-#: src/file.c:1434
-msgid "Never delete any files when syncing"
-msgstr "Ʊ´ü½èÍý¤Ç¥Õ¥¡¥¤¥ë¤òºï½ü¤·¤Ê¤¤"
-
-#: src/file.c:1463
-msgid "Syncing completed."
-msgstr "Ʊ´ü½èÍý¤¬½ªÎ»¤·¤Þ¤·¤¿¡£"
-
-#: src/file.c:1483
-msgid "Syncing aborted"
-msgstr "Ʊ´ü½èÍý¤ÏÃæÃǤµ¤ì¤Þ¤·¤¿¡£"
-
-#: src/file.c:1521
-msgid "No tracks in selection"
-msgstr "¶Ê¤¬ÁªÂò¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-
-#: src/file.c:1571
-#, c-format
-msgid "'%s' is not a directory. Ignored.\n"
-msgstr "'%s' ¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£Ìµ»ë¤·¤Þ¤¹¡£\n"
-
-#. no directory names available
-#: src/file.c:1601
-msgid ""
-"No directory names were stored. Make sure that you enable 'Write extended "
-"information' in the Export section of the preferences at the time of "
-"importing files.\n"
-"\n"
-"To synchronize directories now, activate the duplicate detection ('Don't "
-"allow file duplication') in the Import section and add the directories you "
-"want to sync again.\n"
-msgstr ""
-"¥Ç¥£¥ì¥¯¥È¥ê̾¤¬µ­Ï¿¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£¥Õ¥¡¥¤¥ë¤ò¥¤¥ó¥Ý¡¼¥È¤·¤¿»þ¤Ë¡¢ÀßÄê¥á"
-"¥Ë¥å¡¼¤Î¡Ö¥¨¥¯¥¹¥Ý¡¼¥È¡×Íó¤ÎÃæ¤Ë¤¢¤ë¡¢¡Ö³ÈÄ¥¾ðÊó¤ò½ñ¤­¹þ¤à¡×¤È¤¤¤¦¹àÌܤò"
-"¥Á¥§¥Ã¥¯¤·¤Æ¤ª¤¤¤Æ¤¯¤À¤µ¤¤¡£\n"
-"\n"
-"¥Ç¥£¥ì¥¯¥È¥ê¤ÎƱ´ü¤òº£¹Ô¤¦¤¿¤á¤Ë¤Ï¡¢ÀßÄê¥á¥Ë¥å¡¼¤Î¡Ö¥¤¥ó¥Ý¡¼¥È¡×Íó¤ÎÃæ¤Ë¤¢"
-"¤ë¡¢¡Ö½ÅÊ£¤Î¸¡½Ð¡×¤ò¥ª¥ó¤Ë¤·¤Æ¡¢ºÆ¤ÓƱ´ü½èÍý¤ò¹Ô¤Ã¤Æ¤¯¤À¤µ¤¤¡£\n"
-
-#: src/file.c:1605
-msgid "No valid directories have been found. Sync aborted.\n"
-msgstr "Àµ¤·¤¤¥Ç¥£¥ì¥¯¥È¥ê¤¬¸«ÉÕ¤«¤ê¤Þ¤»¤ó¡£Æ±´ü½èÍý¤òÃæ»ß¤·¤Þ¤¹¡£\n"
-
-#: src/file.c:1614
-msgid ""
-"The (former) contents of the following directories will be removed from the "
-"database:\n"
-"\n"
-msgstr ""
-"°Ê²¼¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë´Þ¤Þ¤ì¤ëÆâÍƤϡ¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤éºï½ü¤µ¤ì¤Þ¤¹:\n"
-"\n"
-
-#: src/file.c:1622
-msgid ""
-"The following directories will be synchronized:\n"
-"\n"
-msgstr ""
-"°Ê²¼¤Î¥Ç¥£¥ì¥¯¥È¥ê¤òƱ´ü¤µ¤»¤Þ¤¹:\n"
-"\n"
-
-#. gint id,
-#. gboolean modal,
-#: src/file.c:1633
-msgid "Synchronize directories"
-msgstr "¥Ç¥£¥ì¥¯¥È¥ê¤ÎƱ´ü"
-
-#. title
-#: src/file.c:1634
-msgid "OK to synchronize the following directories?"
-msgstr "°Ê²¼¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ÇƱ´ü½èÍý¤ò¤·¤Æ¤â¤è¤í¤·¤¤¤Ç¤¹¤«?"
-
-#: src/file.c:1672
-#, c-format
 msgid "The following track could not be updated"
 msgid_plural "The following %d tracks could not be updated"
-msgstr[0] "°Ê²¼¤Î%d¶Ê¤ò¹¹¿·¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿"
+msgstr[0] "°Ê²¼¤Î¶Ê¤ò¹¹¿·¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿"
+msgstr[1] "°Ê²¼¤Î%d¶Ê¤ò¹¹¿·¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿"
 
 #. gint id,
 #. gboolean modal,
-#: src/file.c:1678
+#: src/file.c:1347
 msgid "Failed Track Update"
 msgstr "¶Ê¤Î¹¹¿·¤Ë¼ºÇÔ"
 
-#: src/file.c:1736
+#: src/file.c:1405
 #, c-format
 msgid "The following track has been updated"
 msgid_plural "The following %d tracks have been updated"
-msgstr[0] "°Ê²¼¤Î%d¶Ê¤ò¹¹¿·¤·¤Þ¤·¤¿"
+msgstr[0] "°Ê²¼¤Î¶Ê¤ò¹¹¿·¤·¤Þ¤·¤¿"
+msgstr[1] "°Ê²¼¤Î%d¶Ê¤ò¹¹¿·¤·¤Þ¤·¤¿"
 
 #. gint id,
 #. gboolean modal,
-#: src/file.c:1742
+#: src/file.c:1411
 msgid "Successful Track Update"
 msgstr "¶Ê¤Î¹¹¿·¤ò´°Î»"
 
-#: src/file.c:1801
+#: src/file.c:1470
 #, c-format
 msgid "No mserv information could be retrieved for the following track"
 msgid_plural ""
 "No mserv information could be retrieved for the following %d tracks"
-msgstr[0] ""
+msgstr[0] "°Ê²¼¤Î¶Ê¤Ë¤Ä¤¤¤Æ¡¢mserv ¤«¤é¾ðÊó¤ò¼èÆÀ¤Ç¤­¤Þ¤»¤ó"
+msgstr[1] "°Ê²¼¤Î%d¶Ê¤Ë¤Ä¤¤¤Æ¡¢mserv ¤«¤é¾ðÊó¤ò¼èÆÀ¤Ç¤­¤Þ¤»¤ó"
 
 #. gint id,
 #. gboolean modal,
-#: src/file.c:1807
+#: src/file.c:1476
 msgid "mserv data retrieval problem"
+msgstr "mserv ¤«¤é¤Î¥Ç¡¼¥¿¼èÆÀ¤ËÌäÂ꤬¤¢¤ê¤Þ¤¹"
+
+#: src/file.c:1565
+msgid "no local filename available, file on the iPod will be used instead"
 msgstr ""
 
-#: src/file.c:1948
-msgid "file not found"
-msgstr "¥Õ¥¡¥¤¥ë¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
+#: src/file.c:1571
+msgid "no local filename available and copy on iPod cannot be found"
+msgstr ""
 
-#: src/file.c:1952
-msgid "format not supported"
+#: src/file.c:1575 src/file.c:1593
+#, fuzzy
+msgid "no local filename available"
+msgstr "¥Õ¥¡¥¤¥ë̾¤¬¤ï¤«¤ê¤Þ¤»¤ó"
+
+#: src/file.c:1583
+msgid "local file could not be found, file on the iPod will be used instead"
+msgstr ""
+
+#: src/file.c:1589
+msgid "local file as well as copy on the iPod cannot be found"
+msgstr ""
+
+#. update not successful -- log this track for later display
+#: src/file.c:1651
+#, fuzzy
+msgid "update failed (format no supported?)"
 msgstr "Âбþ¤·¤Æ¤¤¤Ê¤¤·Á¼°¤Ç¤¹"
 
-#: src/file.c:2033
+#: src/file.c:1734
 #, c-format
 msgid "Processing '%s'..."
 msgstr "'%s' ¤Î½èÍýÃæ..."
 
-#: src/file.c:2137 src/misc_track.c:1169 src/misc_track.c:1225
+#: src/file.c:1740
 #, c-format
+msgid "File skipped. match exclude masks: '%s'\n"
+msgstr ""
+
+#: src/file.c:1852 src/misc_track.c:1299 src/misc_track.c:1355
+#, c-format
 msgid ""
 "Podcast already present: '%s'\n"
 "\n"
 msgstr ""
+"Podcast ¤Ï¤¹¤Ç¤Ë¸ºß¤·¤Þ¤¹: '%s'\n"
+"\n"
 
-#: src/file.c:2198
-#, fuzzy, c-format
+#: src/file.c:1913
+#, c-format
 msgid ""
 "Writing to video files not yet supported (%s).\n"
 "\n"
-msgstr "'%s'¤Î½ñ¤­¹þ¤ß¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£(%s)"
+msgstr ""
+"¥Ó¥Ç¥ª¥Õ¥¡¥¤¥ë¤Ø¤Î½ñ¤­¹þ¤ß¤Ï¤Þ¤À¤Ç¤­¤Þ¤»¤ó (%s).\n"
+"\n"
 
-#: src/file.c:2252 src/file.c:2266
+#: src/file.c:1965 src/file.c:1979
 #, c-format
 msgid "Couldn't change tags of file: %s\n"
 msgstr "¼¡¤Î¥Õ¥¡¥¤¥ë¤Î¥¿¥°¤òÊѹ¹¤Ç¤­¤Þ¤»¤ó: %s\n"
 
-#: src/file.c:2550
+#: src/file.c:2076
 #, c-format
 msgid "Could not open '%s' for reading and writing.\n"
 msgstr "¥Õ¥¡¥¤¥ë '%s' ¤ÎÆɤ߹þ¤ß¤ª¤è¤Ó½ñ¤­¹þ¤ß¤¬¤Ç¤­¤Þ¤»¤ó¡£\n"
 
-#: src/file.c:2557
+#: src/file.c:2083
 #, c-format
 msgid "Could not obtain lock on '%s'.\n"
-msgstr ""
+msgstr "'%s' ¤ò¥í¥Ã¥¯¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿¡£\n"
 
 #. error!
-#: src/file.c:2574 src/file.c:2583 src/file.c:2594 src/file.c:2604
+#: src/file.c:2100 src/file.c:2109 src/file.c:2120 src/file.c:2130
 #, c-format
 msgid "Malformed line in '%s': %s\n"
-msgstr ""
+msgstr "'%s' ¤Ë¤ª¤«¤·¤Ê¹Ô¤¬¤¢¤ê¤Þ¤¹: %s\n"
 
 #. gint id,
 #. gboolean modal,
-#: src/file.c:2633
+#: src/file.c:2159
 msgid "Remove offline playcounts?"
 msgstr "¥ª¥Õ¥é¥¤¥ó¤Ç¤ÎºÆÀ¸²ó¿ô¤òºï½ü¤·¤Þ¤¹¤«"
 
 #. title
-#: src/file.c:2634
+#: src/file.c:2160
 msgid ""
 "Some tracks played offline could not be found in the iTunesDB. Press 'OK' to "
 "remove them from the offline playcount file, 'Cancel' to keep them."
 msgstr ""
+"¥ª¥Õ¥é¥¤¥ó¤Ç±éÁÕ¤µ¤ì¤¿¤¤¤¯¤Ä¤«¤Î¶Ê¤¬ iTunesDB ¤Ë¤Ï¸«ÉÕ¤«¤ê¤Þ¤»¤ó¡£'OK' ¤ò²¡¤¹"
+"¤È¤½¤ì¤é¤Î¶Ê¤ÎºÆÀ¸²ó¿ô¤Ï¥Õ¥¡¥¤¥ë¤«¤éºï½ü¤µ¤ì¤Þ¤¹¡£'¥­¥ã¥ó¥»¥ë' ¤ò²¡¤»¤Ðºï½ü¤µ"
+"¤ì¤º»Ä¤ê¤Þ¤¹¡£"
 
-#: src/file.c:2651
+#: src/file.c:2177
 #, c-format
 msgid "Error writing to '%s'.\n"
 msgstr "'%s'¤Î½ñ¤­¹þ¤ßÃæ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿¡£\n"
 
-#: src/file.c:2700
+#: src/file.c:2232 src/tools.c:269
 #, c-format
 msgid ""
 "Normalization failed: file type not supported (%s).\n"
 "\n"
 msgstr ""
+"Ê¿¶Ñ²½¤Ë¼ºÇÔ: ¤³¤Î¥Õ¥¡¥¤¥ë·Á¼°¤Ï°·¤¨¤Þ¤»¤ó (%s).\n"
+"\n"
 
-#: src/file.c:2715
+#: src/file.c:2248 src/tools.c:286
 #, c-format
 msgid ""
 "Normalization failed: file not available (%s).\n"
 "\n"
 msgstr ""
+"Ê¿¶Ñ²½¤Ë¼ºÇÔ: ¥Õ¥¡¥¤¥ë¤¬¼èÆÀ¤Ç¤­¤Þ¤»¤ó (%s).\n"
+"\n"
 
-#: src/file_export.c:181
+#: src/file_export.c:182
 #, c-format
 msgid "Skipping existing file with same length: '%s'\n"
 msgstr "Ʊ¤¸Â礭¤µ¤Î¥Õ¥¡¥¤¥ë¤òÈô¤Ð¤·¤Þ¤¹: '%s'\n"
 
-#: src/file_export.c:189
+#: src/file_export.c:190
 #, c-format
 msgid "Overwriting existing file: '%s'\n"
 msgstr "¥Õ¥¡¥¤¥ë¤ò¾å½ñ¤­¤·¤Þ¤¹: '%s'\n"
 
-#: src/file_export.c:206
+#: src/file_export.c:207
 #, c-format
 msgid "Error copying '%s' to '%s': Permission Error (%s)\n"
 msgstr "'%s' ¤ò '%s' ¤Ë¥³¥Ô¡¼Ãæ¤Ë¥¨¥é¡¼È¯À¸: µö²Ä¤¬¤¢¤ê¤Þ¤»¤ó (%s)\n"
 
-#: src/file_export.c:208
+#: src/file_export.c:209
 #, c-format
 msgid "Error copying '%s' to '%s' (%s)\n"
 msgstr "'%s' ¤ò '%s' ¤Ë¥³¥Ô¡¼Ãæ¤Ë¥¨¥é¡¼È¯À¸: (%s)\n"
 
-#: src/file_export.c:216
+#: src/file_export.c:217
 #, c-format
 msgid "Unable to open '%s' for reading\n"
-msgstr "'%s' ¤òÆɤ߹þ¤ß¤Î¤¿¤á¤Ë³«¤¯¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó\n"
+msgstr "'%s' ¤òÆɤ߹þ¤ßÍѤ˳«¤¯¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó\n"
 
-#: src/file_export.c:323
+#: src/file_export.c:327
 #, c-format
 msgid "Could find file for '%s' on the iPod\n"
 msgstr "iPod ¾å¤Î '%s' ¤ËÁêÅö¤¹¤ë¥Õ¥¡¥¤¥ë¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó\n"
 
 #. create the dialog window
-#: src/file_export.c:390 src/file_itunesdb.c:1062 src/tools.c:148
+#: src/file_export.c:395 src/file_itunesdb.c:1230 src/tools.c:359
 msgid "Information"
 msgstr "¾ðÊó"
 
-#: src/file_export.c:401 src/tools.c:160
+#: src/file_export.c:406 src/tools.c:371
 msgid "Press button to abort."
 msgstr "¥Ü¥¿¥ó¤ò²¡¤¹¤ÈÃæ»ß¤·¤Þ¤¹¡£"
 
-#: src/file_export.c:414
+#: src/file_export.c:419
 msgid "copying..."
 msgstr "¥³¥Ô¡¼Ãæ..."
 
-#: src/file_export.c:468
+#: src/file_export.c:472
 #, c-format
 msgid "Failed to write '%s-%s'\n"
 msgstr "Êݸ¤¬¤Ç¤­¤Þ¤»¤ó '%s-%s'\n"
 
-#: src/file_export.c:476
+#: src/file_export.c:485
 #, c-format
 msgid "Copied %d of %d track."
 msgid_plural "Copied %d of %d tracks."
-msgstr[0] "%d¶ÊÃæ %d¶Ê¤ò¥³¥Ô¡¼¤·¤Þ¤·¤¿¡£"
+msgstr[0] "%2$d¶ÊÃæ %1$d¶Ê¤ò¥³¥Ô¡¼¤·¤Þ¤·¤¿¡£"
 
-#: src/file_export.c:494 src/file_itunesdb.c:1326 src/tools.c:307
+#: src/file_export.c:501 src/file_itunesdb.c:1495 src/tools.c:517
 #, c-format
 msgid "%d%% (%d:%02d:%02d left)"
 msgstr "%d%% (»Ä¤ê %d:%02d:%02d)"
 
-#: src/file_export.c:503
+#: src/file_export.c:510
 msgid "Some tracks were not copied."
 msgstr "°ìÉô¤Î¶Ê¤¬¥³¥Ô¡¼¤µ¤ì¤Þ¤»¤ó¤Ç¤·¤¿¡£"
 
-#: src/file_export.c:560
+#: src/file_export.c:575
 msgid "Export from iPod database not possible in offline mode."
-msgstr ""
+msgstr "¥ª¥Õ¥é¥¤¥ó¥â¡¼¥É¤Ç¤Ï iPod ¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤é¤Î¥¨¥¯¥¹¥Ý¡¼¥È¤Ï¤Ç¤­¤Þ¤»¤ó¡£"
 
-#: src/file_export.c:568
+#: src/file_export.c:583
 msgid "Select Export Destination Directory"
-msgstr "¥Õ¥¡¥¤¥ë¤ÎÊݸÀè¥Ç¥£¥ì¥¯¥È¥ê¤òÁªÂò¤·¤Æ¤¯¤À¤µ¤¤"
+msgstr "¥Õ¥¡¥¤¥ë¤Î¥¨¥¯¥¹¥Ý¡¼¥ÈÀè¥Ç¥£¥ì¥¯¥È¥ê¤òÁªÂò¤·¤Æ¤¯¤À¤µ¤¤"
 
-#: src/file_export.c:717
+#: src/file_export.c:732
 msgid "Drag from iPod database not possible in offline mode."
-msgstr ""
+msgstr "¥ª¥Õ¥é¥¤¥ó¥â¡¼¥É¤Ç¤Ï iPod ¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤é¤Î¥É¥é¥Ã¥°Áàºî¤Ï¤Ç¤­¤Þ¤»¤ó¡£"
 
-#: src/file_export.c:751
-#, fuzzy
+#: src/file_export.c:766
 msgid "The following tracks have to be copied to your harddisk"
-msgstr "°Ê²¼¤Î%d¶Ê¤ò¹¹¿·¤·¤Þ¤·¤¿"
+msgstr "°Ê²¼¤Î¶Ê¤¬¥Ï¡¼¥É¥Ç¥£¥¹¥¯¤Ë¥³¥Ô¡¼¤µ¤ì¤Þ¤·¤¿"
 
-#: src/file_export.c:796
+#: src/file_export.c:811
 msgid ""
 "Some tracks were not copied to your harddisk. Only the copied tracks will be "
 "included in the current drag and drop operation.\n"
 "\n"
 msgstr ""
+"°ìÉô¤Î¶Ê¤Ï¥Ï¡¼¥É¥Ç¥£¥¹¥¯¤Ë¥³¥Ô¡¼¤µ¤ì¤Þ¤»¤ó¤Ç¤·¤¿¡£¥³¥Ô¡¼¤µ¤ì¤¿¶Ê¤Î¤ß¤¬¡¢º£¤Î"
+"¥É¥é¥Ã¥°&¥É¥í¥Ã¥×Áàºî¤Ë´Þ¤Þ¤ì¤Æ¤¤¤Þ¤¹¡£\n"
 
-#: src/file_export.c:992
+#: src/file_export.c:1006
 #, c-format
 msgid ""
 "No valid filename for: %s\n"
 "\n"
 msgstr "'%s' ¤Î¥Õ¥¡¥¤¥ë̾¤¬ÉÔÀµ¤Ç¤¹¡£\n"
 
-#: src/file_export.c:1008
+#: src/file_export.c:1022
 #, c-format
 msgid "Created playlist with one track."
 msgid_plural "Created playlist with %d tracks."
-msgstr[0] "¿·µ¬¥×¥ì¥¤¥ê¥¹¥È¤Ë 1¶ÊÅÐÏ¿¤·¤Þ¤·¤¿¡£"
-msgstr[1] "¿·µ¬¥×¥ì¥¤¥ê¥¹¥È¤Ë %d¶ÊÅÐÏ¿¤·¤Þ¤·¤¿¡£"
+msgstr[0] "¿·µ¬¥×¥ì¥¤¥ê¥¹¥È¤Ë %d¶ÊÅÐÏ¿¤·¤Þ¤·¤¿¡£"
 
-#: src/file_export.c:1015
+#: src/file_export.c:1027
 #, c-format
 msgid ""
 "Could not open '%s' for writing (%s).\n"
 "\n"
 msgstr ""
-"'%s' ¤ò½ñ¤­¹þ¤ß¤Î¤¿¤á¤Ë³«¤¯¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¡£(%s)\n"
+"'%s' ¤ò½ñ¤­¹þ¤ßÍѤ˳«¤¯¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¡£(%s)\n"
 "\n"
 
-#: src/file_itunesdb.c:114
+#: src/file_itunesdb.c:115
 #, c-format
 msgid "Matching MD5 checksum for file %d/%d"
-msgstr ""
+msgstr "MD5 ¥Á¥§¥Ã¥¯¥µ¥à¤Î¾È¹çÃæ %d/%d"
 
-#: src/file_itunesdb.c:242
+#: src/file_itunesdb.c:223
 msgid "Could not open \"iTunesDB.ext\" for reading extended info.\n"
 msgstr "³ÈÄ¥¾ðÊó¤ò³ÊǼ¤·¤¿¥Õ¥¡¥¤¥ë \"iTunesDB.ext\" ¤ò³«¤±¤Þ¤»¤ó¡£\n"
 
-#: src/file_itunesdb.c:249
+#: src/file_itunesdb.c:230
 msgid "Could not create hash value from itunesdb\n"
 msgstr "itunesdb ¤«¤é¥Ï¥Ã¥·¥åÃͤòÆɤ߹þ¤á¤Þ¤»¤ó¤Ç¤·¤¿¡£\n"
 
-#: src/file_itunesdb.c:263
+#: src/file_itunesdb.c:244
 #, c-format
 msgid "Error while reading extended info: %s\n"
 msgstr "³ÈÄ¥¾ðÊó¥Õ¥¡¥¤¥ë¤ÎÆɤ߹þ¤ßÃæ¤Ë°Ê²¼¤Î¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿: %s\n"
 
-#: src/file_itunesdb.c:280
+#: src/file_itunesdb.c:261
 #, c-format
 msgid ""
 "iTunesDB '%s' does not match checksum in extended information file '%s'\n"
@@ -1307,8 +3006,12 @@
 "a long time.\n"
 "\n"
 msgstr ""
+"iTunesDB '%s' ¤È¡¢³ÈÄ¥¾ðÊó¥Õ¥¡¥¤¥ë '%s' ¤È¤Ç¥Á¥§¥Ã¥¯¥µ¥à¤¬¹ç¤¤¤Þ¤»¤ó¡£\n"
+"gtkpod ¤Ï MD5 ¥Á¥§¥Ã¥¯¥µ¥à¤ò»È¤Ã¤Æ¤µ¤é¤Ë¾È¹ç¤ò¿Ê¤á¤Þ¤¹¡£¤³¤ì¤Ë¤Ï»þ´Ö¤¬¤«¤«¤ê"
+"¤Þ¤¹¡£\n"
+"\n"
 
-#: src/file_itunesdb.c:292
+#: src/file_itunesdb.c:273
 #, c-format
 msgid ""
 "%s:\n"
@@ -1317,7 +3020,7 @@
 "%s:\n"
 "\"itunesdb_hash=\" ¤¬½ñ¤«¤ì¤Æ¤¤¤ë¤Ù¤­²Õ½ê¤Ë°ã¤¦ÆâÍƤ¬½ñ¤«¤ì¤Æ¤¤¤Þ¤¹: \"%s\"\n"
 
-#: src/file_itunesdb.c:352
+#: src/file_itunesdb.c:333
 #, c-format
 msgid ""
 "%s:\n"
@@ -1326,7 +3029,7 @@
 "%s:\n"
 "½ñ¼°¥¨¥é¡¼: %s\n"
 
-#: src/file_itunesdb.c:407
+#: src/file_itunesdb.c:377
 msgid ""
 "No MD5 checksums on individual tracks are available.\n"
 "\n"
@@ -1342,23 +3045,23 @@
 "¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£\n"
 "\n"
 
-#: src/file_itunesdb.c:462
+#: src/file_itunesdb.c:439
 msgid ""
 "Extended info will not be used. If you have non-transferred tracks,\n"
 "these will be lost.\n"
 msgstr ""
-"³ÈÄ¥¾ðÊó¤Ï»ÈÍѤµ¤ì¤Þ¤»¤ó¡£iPodËÜÂΤËžÁ÷¤µ¤ì¤Æ¤¤¤Ê¤¤¶Ê¤Ï\n"
+"³ÈÄ¥¾ðÊó¤Ï»ÈÍѤµ¤ì¤Þ¤»¤ó¡£iPodËÜÂΤˤޤÀžÁ÷¤·¤Æ¤¤¤Ê¤¤¶Ê¤Î¾ðÊó¤Ï\n"
 "½ªÎ»»þ¤Ë¼º¤ï¤ì¤Þ¤¹¡£\n"
 
-#: src/file_itunesdb.c:470
+#: src/file_itunesdb.c:447
 msgid "Offline iPod database successfully imported"
 msgstr "¥ª¥Õ¥é¥¤¥ó¤ÇiPod¥Ç¡¼¥¿¥Ù¡¼¥¹¤òÆɤ߹þ¤ß¤Þ¤·¤¿"
 
-#: src/file_itunesdb.c:473
+#: src/file_itunesdb.c:450
 msgid "Local database successfully imported"
-msgstr ""
+msgstr "¥í¡¼¥«¥ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤òÆɤ߹þ¤ß¤Þ¤·¤¿"
 
-#: src/file_itunesdb.c:481
+#: src/file_itunesdb.c:458
 #, c-format
 msgid ""
 "Offline iPod database import failed: '%s'\n"
@@ -1367,14 +3070,16 @@
 "¥ª¥Õ¥é¥¤¥ó¤Ç¤ÎiPod¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÆɤ߹þ¤ß¤Ë¼ºÇÔ¤·¤Þ¤·¤¿: '%s'\n"
 "\n"
 
-#: src/file_itunesdb.c:485
+#: src/file_itunesdb.c:462
 #, c-format
 msgid ""
 "Local database import failed: '%s'\n"
 "\n"
 msgstr ""
+"¥í¡¼¥«¥ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÆɤ߹þ¤ß¤Ë¼ºÇÔ¤·¤Þ¤·¤¿: '%s'\n"
+"\n"
 
-#: src/file_itunesdb.c:492
+#: src/file_itunesdb.c:469
 msgid ""
 "Offline iPod database import failed: \n"
 "\n"
@@ -1382,13 +3087,15 @@
 "¥ª¥Õ¥é¥¤¥ó¤Ç¤ÎiPod¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÆɤ߹þ¤ß¤Ë¼ºÇÔ¤·¤Þ¤·¤¿\n"
 "\n"
 
-#: src/file_itunesdb.c:495
+#: src/file_itunesdb.c:472
 msgid ""
 "Local database import failed: \n"
 "\n"
 msgstr ""
+"¥í¡¼¥«¥ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÆɤ߹þ¤ß¤Ë¼ºÇÔ¤·¤Þ¤·¤¿: \n"
+"\n"
 
-#: src/file_itunesdb.c:502 src/file_itunesdb.c:550
+#: src/file_itunesdb.c:479
 #, c-format
 msgid ""
 "'%s' does not exist. Import aborted.\n"
@@ -1397,15 +3104,15 @@
 "'%s' ¤Ï¸«¤Ä¤«¤ê¤Þ¤»¤ó¡£Æɤ߹þ¤ß¤òÃæ»ß¤·¤Þ¤¹¡£\n"
 "\n"
 
-#: src/file_itunesdb.c:521
+#: src/file_itunesdb.c:502
 msgid "Extended info will not be used.\n"
 msgstr "³ÈÄ¥¾ðÊó¤Ï»ÈÍѤµ¤ì¤Þ¤»¤ó¡£\n"
 
-#: src/file_itunesdb.c:528
+#: src/file_itunesdb.c:509
 msgid "iPod Database Successfully Imported"
 msgstr "iPod ¤«¤é¥Ç¡¼¥¿¥Ù¡¼¥¹¤òÆɤ߹þ¤ß¤Þ¤·¤¿"
 
-#: src/file_itunesdb.c:535
+#: src/file_itunesdb.c:516
 #, c-format
 msgid ""
 "iPod Database Import Failed: '%s'\n"
@@ -1414,7 +3121,7 @@
 "iPod ¤«¤é¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÆɤ߹þ¤ß¤Ë¼ºÇÔ¤·¤Þ¤·¤¿: '%s'\n"
 "\n"
 
-#: src/file_itunesdb.c:541
+#: src/file_itunesdb.c:522
 msgid ""
 "iPod Database Import Failed.\n"
 "\n"
@@ -1422,16 +3129,35 @@
 "iPod¤«¤é¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎÆɤ߹þ¤ß¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£\n"
 "\n"
 
-#: src/file_itunesdb.c:890
+#: src/file_itunesdb.c:531
+#, fuzzy, c-format
+msgid ""
+"'%s' (or similar) does not exist. Import aborted.\n"
+"\n"
+msgstr ""
+"'%s' ¤Ï¸«¤Ä¤«¤ê¤Þ¤»¤ó¡£Æɤ߹þ¤ß¤òÃæ»ß¤·¤Þ¤¹¡£\n"
+"\n"
+
+#: src/file_itunesdb.c:817
 #, c-format
+msgid ""
+"Could not find iPod directory structure at '%s'.\n"
+"If you are sure that the iPod is properly mounted at '%s', gtkpod can create "
+"the directory structure for you.\n"
+"\n"
+"Do you want to create the directory structure now?\n"
+msgstr ""
+
+#: src/file_itunesdb.c:1071
+#, c-format
 msgid "Could not open \"%s\" for writing extended info.\n"
 msgstr "'%s' ¤ò³«¤±¤Ê¤¤¤¿¤á¡¢³ÈÄ¥¾ðÊó¤òµ­Ï¿¤Ç¤­¤Þ¤»¤ó¡£\n"
 
-#: src/file_itunesdb.c:905
+#: src/file_itunesdb.c:1086
 msgid "Aborted writing of extended info.\n"
 msgstr "³ÈÄ¥¾ðÊó¤Î½ñ¤­¹þ¤ß¤ÏÃæ»ß¤µ¤ì¤Þ¤·¤¿¡£\n"
 
-#: src/file_itunesdb.c:1073
+#: src/file_itunesdb.c:1241
 msgid ""
 "Press button to abort.\n"
 "Export can be continued at a later time."
@@ -1439,25 +3165,25 @@
 "¥Ü¥¿¥ó¤ò²¡¤¹¤ÈÃæÃǤ·¤Þ¤¹¡£\n"
 "¥Õ¥¡¥¤¥ë¤Î¥¨¥¯¥¹¥Ý¡¼¥È¤Ï¸å¤ÇºÆ³«¤¹¤ë»ö¤¬¤Ç¤­¤Þ¤¹¡£"
 
-#: src/file_itunesdb.c:1142
+#: src/file_itunesdb.c:1310
 msgid "deleting..."
 msgstr "ºï½üÃæ..."
 
-#: src/file_itunesdb.c:1246
+#: src/file_itunesdb.c:1413
 msgid "preparing to copy..."
 msgstr "¥³¥Ô¡¼¤Î½àÈ÷Ãæ..."
 
-#: src/file_itunesdb.c:1309
+#: src/file_itunesdb.c:1480
 #, c-format
 msgid "Copied %d of %d new track."
 msgid_plural "Copied %d of %d new tracks."
-msgstr[0] "%d¶ÊÃæ %d¶Ê¤ò¥³¥Ô¡¼¤·¤Þ¤·¤¿¡£"
+msgstr[0] "%2$d¶ÊÃæ %1$d¶Ê¤ò¥³¥Ô¡¼¤·¤Þ¤·¤¿¡£"
 
-#: src/file_itunesdb.c:1336
+#: src/file_itunesdb.c:1506
 msgid "Some tracks were not written to iPod. Export aborted!"
 msgstr "°ìÉô¤Î¶Ê¤òiPod¤ËžÁ÷¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿¡£¥¨¥¯¥¹¥Ý¡¼¥È¤òÃæ»ß¤·¤Þ¤¹!"
 
-#: src/file_itunesdb.c:1389
+#: src/file_itunesdb.c:1557
 #, c-format
 msgid ""
 "You did not import the existing iTunesDB ('%s'). This is most likely "
@@ -1467,66 +3193,77 @@
 "cancel, you can import the existing database before calling this function "
 "again.\n"
 msgstr ""
+"¤¢¤Ê¤¿¤Ï´û¤Ë¤¢¤ë iTunesDB ('%s') ¤òÆɤ߹þ¤Þ¤º¤Ë¤³¤ÎÁàºî¤ò¤·¤Æ¤¤¤Þ¤¹¡£¤³¤ì¤ÏÉá"
+"Ä̤ϹԤï¤Ê¤¤»ö¤Ç¤¢¤ê¡¢º£¤¢¤ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤Ï¼º¤ï¤ì¤ë¤³¤È¤Ë¤Ê¤ê¤Þ¤¹¡£\n"
+"\n"
+"¤â¤·¤½¤ì¤Ç¤â¤è¤±¤ì¤Ð¡¢'OK' ¤ò¡¢Êݸ¤ò¼è¤ê»ß¤á¤ë¤Ê¤é '¥­¥ã¥ó¥»¥ë' ¤ò²¡¤·¤Æ¤¯¤À"
+"¤µ¤¤¡£¥­¥ã¥ó¥»¥ë¤·¤¿¾ì¹ç¤Ï¡¢´û¤Ë¤¢¤ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò¼è¤ê¹þ¤ó¤Ç¤«¤éºÆ¤Ó¤³¤ÎÁàºî"
+"¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤Þ¤¹¡£\n"
 
-#: src/file_itunesdb.c:1419
+#: src/file_itunesdb.c:1588
 msgid ""
 "iPod directory structure must be present before synching to the iPod can be "
 "performed.\n"
 msgstr ""
+"iPod ¤Ø¤ÎƱ´ü¤ò¹Ô¤¦¤¿¤á¤Ë¤Ï¡¢¤Þ¤º iPod ¤Î¥Ç¥£¥ì¥¯¥È¥ê¹½Â¤¤ò¤¢¤é¤«¤¸¤áºîÀ®¤·¤Æ"
+"¤ª¤¯É¬Íפ¬¤¢¤ê¤Þ¤¹¡£\n"
 
-#: src/file_itunesdb.c:1428
+#: src/file_itunesdb.c:1597
 msgid "Some tracks could not be deleted from the iPod. Export aborted!"
 msgstr "°ìÉô¤Î¶Ê¤òiPod¤«¤éºï½ü¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿¡£¥¨¥¯¥¹¥Ý¡¼¥È¤òÃæÃǤ·¤Þ¤¹¡£"
 
-#: src/file_itunesdb.c:1444
-msgid "Now writing iTunesDB. Please wait..."
+#: src/file_itunesdb.c:1613
+#, fuzzy
+msgid "Now writing database. Please wait..."
 msgstr "iTunesDB¤Î½ñ¤­¹þ¤ßÃæ¡£¤·¤Ð¤é¤¯¤ªÂÔ¤Á¤¯¤À¤µ¤¤..."
 
-#: src/file_itunesdb.c:1490
+#: src/file_itunesdb.c:1659
 #, c-format
 msgid "Extended information file not deleted: '%s'"
 msgstr "³ÈÄ¥¾ðÊó¥Õ¥¡¥¤¥ë¤òºï½ü¤Ç¤­¤Þ¤»¤ó: '%s'"
 
-#: src/file_itunesdb.c:1577
-msgid "iPod Database Saved"
+#: src/file_itunesdb.c:1745
+#, fuzzy, c-format
+msgid "%s: Database saved"
 msgstr "iPod¥Ç¡¼¥¿¥Ù¡¼¥¹¤òÊݸ¤·¤Þ¤·¤¿"
 
-#: src/file_itunesdb.c:1636
-msgid "Syncing contacts, calendar and notes..."
+#: src/file_itunesdb.c:1749
+#, c-format
+msgid "%s: Changes saved"
 msgstr ""
 
-#: src/fileselection.c:123
+#: src/fileselection.c:127
 msgid "Successfully added files"
 msgstr "¥Õ¥¡¥¤¥ë¤ÎÄɲäËÀ®¸ù¤·¤Þ¤·¤¿"
 
-#: src/fileselection.c:125
+#: src/fileselection.c:129
 msgid "Some files were not added successfully"
 msgstr "°ìÉô¤Î¥Õ¥¡¥¤¥ë¤ÎÄɲä˼ºÇÔ¤·¤Þ¤·¤¿"
 
 #. Create the file chooser, and handle the response
-#: src/fileselection.c:148
+#: src/fileselection.c:157
 msgid "Add Files"
 msgstr "¥Õ¥¡¥¤¥ë¤òÄɲ乤ë"
 
 #. Create the file chooser, and handle the response
-#: src/fileselection.c:227
+#: src/fileselection.c:250
 msgid "Add Playlists"
 msgstr "¥×¥ì¥¤¥ê¥¹¥È¤òÄɲ乤ë"
 
 #. Create the file chooser, and handle the response
-#: src/fileselection.c:270
+#: src/fileselection.c:297
 msgid "Set Cover"
-msgstr ""
+msgstr "¥«¥Ð¡¼¥¢¡¼¥È¤òÀßÄê"
 
-#: src/fileselection.c:491
+#: src/fileselection.c:718
 msgid "Select directory to add recursively"
 msgstr "ºÆµ¢Åª¤ËÄɲ乤ë¥Ç¥£¥ì¥¯¥È¥ê¤òÁªÂò¤·¤Æ¤¯¤À¤µ¤¤"
 
-#: src/fileselection.c:759
+#: src/fileselection.c:989
 msgid "Ok"
 msgstr "OK"
 
-#: src/fileselection.c:768
+#: src/fileselection.c:998
 msgid "Cancel"
 msgstr "¥­¥ã¥ó¥»¥ë"
 
@@ -1589,62 +3326,80 @@
 msgid "%s: option `-W %s' doesn't allow an argument\n"
 msgstr "%s: »ØÄꤵ¤ì¤¿¥ª¥×¥·¥ç¥ó `-W %s' ¤Ï°ú¿ô¤ò¼è¤ê¤Þ¤»¤ó\n"
 
-#: src/info.c:377
+#: src/info.c:383
 msgid "n/c"
 msgstr ""
 
-#: src/info.c:382 src/info.c:793
+#: src/info.c:388 src/info.c:835
 msgid "offline"
 msgstr "¥ª¥Õ¥é¥¤¥ó"
 
-#: src/info.c:469
+#: src/info.c:483
 #, c-format
 msgid " P:%d T:%d/%d"
 msgstr ""
 
-#: src/info.c:732
+#: src/info.c:777
 msgid "B"
 msgstr ""
 
-#: src/info.c:732
+#: src/info.c:777
 msgid "kB"
 msgstr ""
 
-#: src/info.c:732
+#: src/info.c:777
 msgid "TB"
 msgstr ""
 
-#: src/info.c:778
+#: src/info.c:820
 #, c-format
 msgid " %s Free"
 msgstr "%s ¶õ¤­"
 
-#: src/info.c:783
+#: src/info.c:825
 #, c-format
 msgid " %s Pending"
 msgstr "%s ÉÔ­"
 
-#: src/info.c:788
+#: src/info.c:830
 msgid " disconnected"
-msgstr ""
+msgstr "̤Àܳ"
 
-#: src/md5.c:159
+#: src/info.c:881
+#, fuzzy
+msgid "No database or playlist selected"
+msgstr "¥×¥ì¥¤¥ê¥¹¥È¤¬ÁªÂò¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
+
+#: src/info.c:886
+msgid "No tracks selected"
+msgstr "¶Ê¤¬ÁªÂò¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£"
+
+#: src/info.c:891
+msgid "No playlist selected"
+msgstr "¥×¥ì¥¤¥ê¥¹¥È¤¬ÁªÂò¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
+
+#: src/info.c:896
+#, fuzzy
+msgid "No iPod or iPod playlist selected"
+msgstr "¥×¥ì¥¤¥ê¥¹¥È¤¬ÁªÂò¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
+
+#: src/md5.c:187
 msgid "Hashed file is 0 bytes long\n"
 msgstr "¥Õ¥¡¥¤¥ë¤ÎÂ礭¤µ¤¬ 0 ¥Ð¥¤¥È¤Ç¤¹\n"
 
-#: src/md5.c:208
+#: src/md5.c:240
 #, c-format
 msgid "Could not open '%s' to calculate MD5 checksum: %s\n"
 msgstr "'%s' ¤ò³«¤±¤Ê¤¤¤¿¤á¡¢MD5 ¥Á¥§¥Ã¥¯¥µ¥à¤¬·×»»¤Ç¤­¤Þ¤»¤ó: %s\n"
 
-#: src/misc.c:78
+#: src/misc.c:79
 #, c-format
 msgid ""
 "gtkpod Version %s: Cross-Platform Multi-Lingual Interface to Apple's iPod"
 "(tm)."
 msgstr ""
 
-#: src/misc.c:82
+#: src/misc.c:83
 msgid ""
 "(C) 2002 - 2005\n"
 "Jorg Schuler (jcsjcs at users dot sourceforge dot net)\n"
@@ -1653,7 +3408,7 @@
 "\n"
 msgstr ""
 
-#: src/misc.c:88
+#: src/misc.c:89
 msgid ""
 "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 "
@@ -1687,246 +3442,238 @@
 "\n"
 "\n"
 
-#: src/misc.c:96
+#: src/misc.c:97
 msgid ""
 "Patches were supplied by the following people (list may be incomplete -- "
 "please contact me)\n"
 "\n"
 msgstr ""
 
-#: src/misc.c:98
+#: src/misc.c:99
 msgid "Ramesh Dharan: Multi-Edit (edit tags of several tracks in one run)\n"
 msgstr ""
 
-#: src/misc.c:100
+#: src/misc.c:101
 msgid "Hiroshi Kawashima: Japanese charset autodetecion feature\n"
 msgstr ""
 
-#: src/misc.c:102
+#: src/misc.c:103
 msgid "Adrian Ulrich: porting of playlist code from mktunes.pl to itunesdb.c\n"
 msgstr ""
 
-#: src/misc.c:104
+#: src/misc.c:105
 msgid ""
 "Walter Bell: correct handling of DND URIs with escaped characters and/or cr/"
 "newlines at the end\n"
 msgstr ""
 
-#: src/misc.c:106
+#: src/misc.c:107
 msgid "Sam Clegg: user defined filenames when exporting tracks from the iPod\n"
 msgstr ""
 
-#: src/misc.c:108
+#: src/misc.c:109
 msgid "Chris Cutler: automatic creation of various playlist types\n"
 msgstr ""
 
-#: src/misc.c:110
+#: src/misc.c:111
 msgid ""
 "Graeme Wilford: reading and writing of the 'Composer' ID3 tags, progress "
 "dialogue during sync\n"
 msgstr ""
 
-#: src/misc.c:112
+#: src/misc.c:113
 msgid ""
 "Edward Matteucci: debugging, special playlist creation, most of the volume "
 "normalizing code\n"
 msgstr ""
 
-#: src/misc.c:114
+#: src/misc.c:115
 msgid "Jens Lautenbach: some optical improvements\n"
 msgstr ""
 
-#: src/misc.c:116
+#: src/misc.c:117
 msgid "Alex Tribble: iPod eject patch\n"
 msgstr ""
 
-#: src/misc.c:118
+#: src/misc.c:119
 msgid "Yaroslav Halchenko: Orphaned and dangling tracks handling\n"
 msgstr ""
 
-#: src/misc.c:120
+#: src/misc.c:121
 msgid ""
 "Andrew Huntwork: Filename case sensitivity fix and various other bugfixes\n"
 msgstr ""
 
-#: src/misc.c:122
+#: src/misc.c:123
 msgid ""
 "Ero Carrera: Filename validation and quick sync when copying tracks from the "
 "iPod\n"
 msgstr ""
 
-#: src/misc.c:124
+#: src/misc.c:125
 msgid "Jens Taprogge: Support for LAME's replay gain tag to normalize volume\n"
 msgstr ""
 
-#: src/misc.c:126
+#: src/misc.c:127
 msgid "Armando Atienza: Support with external playcounts\n"
 msgstr ""
 
-#: src/misc.c:128
+#: src/misc.c:129
 msgid "D.L. Sharp: Support for m4b files (bookmarkable AAC files)\n"
 msgstr ""
 
-#: src/misc.c:130
+#: src/misc.c:131
 msgid "Jim Hall: Decent INSTALL file\n"
 msgstr ""
 
-#: src/misc.c:132
+#: src/misc.c:133
 msgid ""
 "Juergen Helmers, Markus Gaugusch: Conversion scripts to sync calendar/"
 "contacts to the iPod\n"
 msgstr ""
 
 #. J"urgen!
-#: src/misc.c:134
+#: src/misc.c:135
 msgid "Flavio Stanchina: bugfixes\n"
 msgstr ""
 
-#: src/misc.c:136
+#: src/misc.c:137
 msgid ""
 "Chris Micacchi: when sorting ignore 'the' and similar at the beginning of "
 "the title\n"
 msgstr ""
 
-#: src/misc.c:138
+#: src/misc.c:139
 msgid "Steve Jay: use statvfs() instead of df (better portability, faster)\n"
 msgstr ""
 
-#: src/misc.c:141
+#: src/misc.c:142
 msgid ""
 "Christoph Kunz: address compatibility issues when writing id3v2.4 type mp3 "
 "tags\n"
 msgstr ""
 
-#: src/misc.c:144
+#: src/misc.c:145
 msgid ""
-"James Ligget: replacement of old GTK file selection dialogs with new GTK "
-"filechooser dialogs\n"
+"James Liggett:\n"
+"     replacement of old GTK file selection dialogs with new GTK filechooser "
+"dialogs\n"
+"     refactored user preferences system.\n"
 msgstr ""
 
-#: src/misc.c:147
+#: src/misc.c:150
 msgid "Daniel Kercher: sync scripts for abook and webcalendar\n"
 msgstr ""
 
-#: src/misc.c:150
+#: src/misc.c:153
 msgid "Clinton Gormley: sync scripts for thunderbird\n"
 msgstr ""
 
-#: src/misc.c:153
+#: src/misc.c:156
 msgid "Sebastien Beridot: sync script for ldif addressbook format\n"
 msgstr ""
 
-#: src/misc.c:156
+#: src/misc.c:159
 msgid "Sebastian Scherer: sync script for kNotes\n"
 msgstr ""
 
-#: src/misc.c:159
+#: src/misc.c:162
 msgid "Nick Piper: sync script for Palm, type-ahead search\n"
 msgstr ""
 
-#: src/misc.c:162
+#: src/misc.c:165
 msgid "Uwe Hermann: help with support for iPod Video\n"
 msgstr ""
 
-#: src/misc.c:165
+#: src/misc.c:168
 msgid ""
 "Iain Benson: support for compilation tag in mp3 files and separate display "
 "of compilations in the sort tab.\n"
 msgstr ""
 
-#: src/misc.c:167
+#: src/misc.c:170
 msgid ""
 "Nicolas Chariot: icons of buttons\n"
 "\n"
 "\n"
 msgstr ""
 
-#: src/misc.c:171
+#: src/misc.c:174
 msgid "This program borrows code from the following projects:\n"
 msgstr ""
 
-#: src/misc.c:173
+#: src/misc.c:176
 msgid ""
 "    gnutools: (mktunes.pl, ported to C) reading and writing of iTunesDB "
 "(http://www.gnu.org/software/gnupod/)\n"
 msgstr ""
 
-#: src/misc.c:175
+#: src/misc.c:178
 msgid ""
 "    iPod.cpp, iPod.h by Samuel Wood (sam dot wood at gmail dot com): some "
 "code for smart playlists is based on his C++-classes.\n"
 msgstr ""
 
-#: src/misc.c:177
+#: src/misc.c:180
 msgid "    mp3info:  mp3 playlength detection (http://ibiblio.org/mp3info/)\n"
 msgstr ""
 
-#: src/misc.c:179
+#: src/misc.c:182
 msgid ""
 "    xmms:     dirbrowser, mp3 playlength detection (http://www.xmms.org)\n"
 msgstr ""
 
-#: src/misc.c:182
+#: src/misc.c:185
 msgid ""
 "The GUI was created with the help of glade-2 (http://glade.gnome.org/).\n"
 msgstr ""
 
-#: src/misc.c:197
+#: src/misc.c:200
 msgid "French:   David Le Brun (david at dyn-ns dot net)\n"
 msgstr ""
 
-#: src/misc.c:199
+#: src/misc.c:202
 msgid "German:   Jorg Schuler (jcsjcs at users dot sourceforge dot net)\n"
 msgstr ""
 
-#: src/misc.c:201
+#: src/misc.c:204
 msgid "Hebrew: Assaf Gillat (gillata at gmail dot com)\n"
 msgstr ""
 
-#: src/misc.c:203
+#: src/misc.c:206
 msgid ""
 "Italian:  Edward Matteucci (edward_matteucc at users dot sourceforge dot "
 "net)\n"
 msgstr ""
 
-#: src/misc.c:205
+#: src/misc.c:208
 msgid "Japanese: Ayako Sano\n"
 msgstr ""
 
-#: src/misc.c:207
+#: src/misc.c:210
 msgid "Japanese: Kentaro Fukuchi (fukuchi at users dot sourceforge dot net)\n"
 msgstr ""
 
-#: src/misc.c:209
+#: src/misc.c:212
 msgid "Swedish: Stefan Asserhall (stefan asserhall at comhem dot se)\n"
 msgstr ""
 
-#: src/misc.c:332
-#, c-format
-msgid "Could not delete backup file: \"%s\"\n"
-msgstr "¥Ð¥Ã¥¯¥¢¥Ã¥×¥Õ¥¡¥¤¥ë¤¬ºï½ü¤Ç¤­¤Þ¤»¤ó: \"%s\"\n"
+#: src/misc.c:936
+#, fuzzy, c-format
+msgid "Could not process '%s' (no filename available)"
+msgstr "¥Õ¥¡¥¤¥ë̾¤¬¤ï¤«¤ê¤Þ¤»¤ó"
 
-#: src/misc.c:452
+#: src/misc.c:1084
 #, c-format
-msgid "Unmounting of '%s' (%s) unsuccessful."
-msgstr ""
-
-#: src/misc.c:456
-#, c-format
-msgid "Unmounting of '%s' unsuccessful."
-msgstr ""
-
-#: src/misc.c:1219
-#, c-format
 msgid "Unknown token '%%%c' in template '%s'"
-msgstr ""
+msgstr "̤ÃΤΥȡ¼¥¯¥ó '%%%c' ¤¬¥Æ¥ó¥×¥ì¡¼¥È '%s' Ãæ¤Ë¤¢¤ê¤Þ¤¹"
 
-#: src/misc.c:1301
+#: src/misc.c:1166
 #, c-format
 msgid "Template ('%s') does not match file type '%s'\n"
-msgstr ""
+msgstr "¥Æ¥ó¥×¥ì¡¼¥È ('%s') ¤¬¥Õ¥¡¥¤¥ë·Á¼° '%s' ¤Ë¹ç¤¤¤Þ¤»¤ó¡£\n"
 
-#: src/misc.c:1382
+#: src/misc.c:1247
 #, c-format
 msgid "Error creating %s: %s\n"
 msgstr "'%s'¤ÎºîÀ®¤Ë¼ºÇÔ: %s\n"
@@ -1942,7 +3689,7 @@
 msgid "The following has occured:"
 msgstr "°Ê²¼¤ÎÌäÂ꤬ȯÀ¸¤·¤Þ¤·¤¿:"
 
-#: src/misc_confirm.c:124
+#: src/misc_confirm.c:123
 msgid ""
 "Are you sure you want to delete the following track completely from your "
 "iPod? The number of playlists this track is a member of is indicated in "
@@ -1952,29 +3699,33 @@
 "iPod? The number of playlists the tracks are member of is indicated in "
 "parentheses."
 msgstr[0] ""
+"°Ê²¼¤Î¶Ê¤ò iPod ¤«¤é´°Á´¤Ëºï½ü¤·¤Æ¤âËÜÅö¤Ë¤è¤í¤·¤¤¤Ç¤¹¤«? ³ç¸Ì¤ÎÃæ¤Î¿ô»ú¤Ï¡¢"
+"¤³¤Î¶Ê¤¬¤¤¤¯¤Ä¤Î¥×¥ì¥¤¥ê¥¹¥È¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¤«¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£"
+msgstr[1] ""
+"°Ê²¼¤Î¶Ê¤ò iPod ¤«¤é´°Á´¤Ëºï½ü¤·¤Æ¤âËÜÅö¤Ë¤è¤í¤·¤¤¤Ç¤¹¤«? ³ç¸Ì¤ÎÃæ¤Î¿ô»ú¤Ï¡¢"
+"¤½¤ì¤¾¤ì¤Î¶Ê¤¬¤¤¤¯¤Ä¤Î¥×¥ì¥¤¥ê¥¹¥È¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¤«¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£"
 
-#: src/misc_confirm.c:128
+#: src/misc_confirm.c:127
 msgid "Delete Track Completely from iPod?"
 msgid_plural "Delete Tracks Completey from iPod?"
-msgstr[0] ""
+msgstr[0] "iPod ¤«¤é´°Á´¤Ëºï½ü¤·¤Þ¤¹¤«?"
 
-#: src/misc_confirm.c:138 src/misc_confirm.c:178
+#: src/misc_confirm.c:138 src/misc_confirm.c:179
 #, c-format
 msgid ""
 "Are you sure you want to remove the following track from the playlist \"%s\"?"
 msgid_plural ""
 "Are you sure you want to remove the following tracks from the playlist \"%s"
 "\"?"
-msgstr[0] ""
+msgstr[0] "°Ê²¼¤Î¶Ê¤ò¥×¥ì¥¤¥ê¥¹¥È \"%s\" ¤«¤éºï½ü¤·¤Æ¤â¤è¤í¤·¤¤¤Ç¤¹¤«?"
 
-#: src/misc_confirm.c:142 src/misc_confirm.c:182
+#: src/misc_confirm.c:142 src/misc_confirm.c:183
 msgid "Remove Track From Playlist?"
 msgid_plural "Remove Tracks From Playlist?"
 msgstr[0] "¤³¤Î¶Ê¤ò¥×¥ì¥¤¥ê¥¹¥È¤«¤éºï½ü¤·¤Þ¤¹¤«?"
 msgstr[1] "¤³¤ì¤é¤Î¶Ê¤ò¥×¥ì¥¤¥ê¥¹¥È¤«¤éºï½ü¤·¤Þ¤¹¤«?"
 
 #: src/misc_confirm.c:164
-#, fuzzy
 msgid ""
 "Are you sure you want to delete the following track completely from your "
 "harddisk? The number of playlists this track is a member of is indicated in "
@@ -1984,8 +3735,11 @@
 "harddisk? The number of playlists the tracks are member of is indicated in "
 "parentheses."
 msgstr[0] ""
-"°Ê²¼¤Î¶Ê¤òiPod¤«¤é´°Á´¤Ëºï½ü¤·¤Æ¤â¤è¤í¤·¤¤¤Ç¤¹¤«?³ç¸Ì¤ÎÃæ¤Î¿ô»ú¤Ï¡¢¤½¤ì¤¾¤ì¤Î"
-"¶Ê¤¬¤¤¤¯¤Ä¤Î¥×¥ì¥¤¥ê¥¹¥È¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¤«¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£"
+"°Ê²¼¤Î¶Ê¤ò¥Ï¡¼¥É¥Ç¥£¥¹¥¯¤«¤é´°Á´¤Ëºï½ü¤·¤Æ¤â¤è¤í¤·¤¤¤Ç¤¹¤«? ³ç¸Ì¤ÎÃæ¤Î¿ô»ú"
+"¤Ï¡¢¤³¤Î¶Ê¤¬¤¤¤¯¤Ä¤Î¥×¥ì¥¤¥ê¥¹¥È¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¤«¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£"
+msgstr[1] ""
+"°Ê²¼¤Î¶Ê¤ò¥Ï¡¼¥É¥Ç¥£¥¹¥¯¤«¤é´°Á´¤Ëºï½ü¤·¤Æ¤â¤è¤í¤·¤¤¤Ç¤¹¤«? ³ç¸Ì¤ÎÃæ¤Î¿ô»ú"
+"¤Ï¡¢¤½¤ì¤¾¤ì¤Î¶Ê¤¬¤¤¤¯¤Ä¤Î¥×¥ì¥¤¥ê¥¹¥È¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¤«¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£"
 
 #: src/misc_confirm.c:168
 msgid "Delete Track from Harddisk?"
@@ -1993,7 +3747,7 @@
 msgstr[0] "¤³¤Î¶Ê¤ò¥Ï¡¼¥É¥Ç¥£¥¹¥¯¤«¤éºï½ü¤·¤Þ¤¹¤«?"
 msgstr[1] "¤³¤ì¤é¤Î¶Ê¤ò¥Ï¡¼¥É¥Ç¥£¥¹¥¯¤«¤éºï½ü¤·¤Þ¤¹¤«?"
 
-#: src/misc_confirm.c:192
+#: src/misc_confirm.c:193
 msgid ""
 "Are you sure you want to remove the following track completely from your "
 "local database? The number of playlists this track is a member of is "
@@ -2003,97 +3757,91 @@
 "local database? The number of playlists the tracks are member of is "
 "indicated in parentheses."
 msgstr[0] ""
-"°Ê²¼¤Î¶Ê¤ò¥í¡¼¥«¥ë¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤é´°Á´¤Ëºï½ü¤·¤Æ¤â¤è¤í¤·¤¤¤Ç¤¹¤«?³ç¸Ì¤ÎÃæ¤Î"
-"¿ô»ú¤Ï¡¢¤½¤ì¤¾¤ì¤Î¶Ê¤¬¤¤¤¯¤Ä¤Î¥×¥ì¥¤¥ê¥¹¥È¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¤«¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£"
+"°Ê²¼¤Î¶Ê¤ò¥í¡¼¥«¥ë¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤é´°Á´¤Ëºï½ü¤·¤Æ¤â¤è¤í¤·¤¤¤Ç¤¹¤«? ³ç¸Ì¤ÎÃæ"
+"¤Î¿ô»ú¤Ï¡¢¤³¤Î¶Ê¤¬¤¤¤¯¤Ä¤Î¥×¥ì¥¤¥ê¥¹¥È¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¤«¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£"
+msgstr[1] ""
+"°Ê²¼¤Î¶Ê¤ò¥í¡¼¥«¥ë¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤é´°Á´¤Ëºï½ü¤·¤Æ¤â¤è¤í¤·¤¤¤Ç¤¹¤«? ³ç¸Ì¤ÎÃæ"
+"¤Î¿ô»ú¤Ï¡¢¤½¤ì¤¾¤ì¤Î¶Ê¤¬¤¤¤¯¤Ä¤Î¥×¥ì¥¤¥ê¥¹¥È¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¤«¤ò¼¨¤·¤Æ¤¤¤Þ"
+"¤¹¡£"
 
-#: src/misc_confirm.c:196
+#: src/misc_confirm.c:197
 msgid "Remove Track from Local Database?"
 msgid_plural "Remove Tracks from Local Database?"
-msgstr[0] ""
+msgstr[0] "¤³¤Î¶Ê¤ò¥í¡¼¥«¥ë¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤éºï½ü¤·¤Þ¤¹¤«?"
+msgstr[1] "¤³¤ì¤é¤Î¶Ê¤ò¥í¡¼¥«¥ë¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤éºï½ü¤·¤Þ¤¹¤«?"
 
 #: src/misc_confirm.c:259
 #, c-format
 msgid "Deleted one track completely from iPod"
 msgid_plural "Deleted %d tracks completely from iPod"
 msgstr[0] "iPod¤«¤é1¶Ê´°Á´¤Ëºï½ü¤·¤Þ¤·¤¿"
+msgstr[1] "iPod¤«¤é%d¶Ê´°Á´¤Ëºï½ü¤·¤Þ¤·¤¿"
 
 #: src/misc_confirm.c:265 src/misc_confirm.c:289
 #, c-format
 msgid "Deleted %d track from playlist '%s'"
 msgid_plural "Deleted %d tracks from playlist '%s'"
-msgstr[0] ""
+msgstr[0] "¥×¥ì¥¤¥ê¥¹¥È '%2$s' ¤«¤é %1$d ¶Êºï½ü¤·¤Þ¤·¤¿"
 
 #: src/misc_confirm.c:283
 #, c-format
 msgid "Deleted one track from harddisk"
 msgid_plural "Deleted %d tracks from harddisk"
-msgstr[0] ""
+msgstr[0] "¥Ï¡¼¥É¥Ç¥£¥¹¥¯¤«¤é1¶Êºï½ü¤·¤Þ¤·¤¿"
+msgstr[1] "¥Ï¡¼¥É¥Ç¥£¥¹¥¯¤«¤é%d¶Êºï½ü¤·¤Þ¤·¤¿"
 
 #: src/misc_confirm.c:295
 #, c-format
 msgid "Deleted track from local database"
 msgid_plural "Deleted %d tracks from local database"
-msgstr[0] ""
+msgstr[0] "¥í¡¼¥«¥ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤é1¶Êºï½ü¤·¤Þ¤·¤¿"
+msgstr[1] "¥í¡¼¥«¥ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤é%d¶Êºï½ü¤·¤Þ¤·¤¿"
 
-#. no playlist??? Cannot happen, but...
-#. no playlist selected
-#: src/misc_confirm.c:336 src/misc_confirm.c:432 src/misc_confirm.c:674
-#: src/misc_track.c:1509
-msgid "No playlist selected."
-msgstr "¥×¥ì¥¤¥ê¥¹¥È¤¬ÁªÂò¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£"
-
-#. no tracks selected
-#: src/misc_confirm.c:345
-msgid "No tracks selected."
-msgstr "¶Ê¤¬ÁªÂò¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£"
-
-#: src/misc_confirm.c:448
+#: src/misc_confirm.c:438
 msgid "Cannot remove entry 'All'"
 msgstr "'¤¹¤Ù¤Æ' ¤Î¹àÌܤòºï½ü¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó"
 
-#: src/misc_confirm.c:541
-#, fuzzy, c-format
+#: src/misc_confirm.c:532
+#, c-format
 msgid "Removed all %d tracks from the iPod"
-msgstr "¥×¥ì¥¤¥ê¥¹¥È¤ä¡¢¥×¥ì¥¤¥ê¥¹¥È¤«¤é¶Ê¤òºï½ü¤¹¤ë»þ"
+msgstr "Á´%d¶Ê¤ò iPod ¤«¤éºï½ü¤·¤Þ¤·¤¿"
 
-#: src/misc_confirm.c:546
-#, fuzzy
+#: src/misc_confirm.c:537
 msgid "Removed all podcasts from the iPod"
-msgstr "¥×¥ì¥¤¥ê¥¹¥È¤ä¡¢¥×¥ì¥¤¥ê¥¹¥È¤«¤é¶Ê¤òºï½ü¤¹¤ë»þ"
+msgstr "¤¹¤Ù¤Æ¤Î Podcast ¤ò iPod ¤«¤éºï½ü¤·¤Þ¤·¤¿"
 
-#: src/misc_confirm.c:556 src/misc_confirm.c:626
+#: src/misc_confirm.c:546 src/misc_confirm.c:620
 #, c-format
 msgid "Deleted playlist '%s' including %d member track"
 msgid_plural "Deleted playlist '%s' including %d member tracks"
-msgstr[0] "¥×¥ì¥¤¥ê¥¹¥È '%s'¡Ê%d ¶ÊÆþ¤ê¡Ë¤òºï½ü¤·¤Þ¤·¤¿"
+msgstr[0] "¥×¥ì¥¤¥ê¥¹¥È '%s' (%d¶Ê) ¤òºï½ü¤·¤Þ¤·¤¿"
 
-#: src/misc_confirm.c:570 src/misc_confirm.c:640
+#. first use playlist name
+#: src/misc_confirm.c:562 src/misc_confirm.c:636
 #, c-format
 msgid "Deleted playlist '%s'"
 msgstr "¥×¥ì¥¤¥ê¥¹¥È '%s' ¤òºï½ü"
 
-#: src/misc_confirm.c:603
-#, fuzzy, c-format
+#: src/misc_confirm.c:596
+#, c-format
 msgid "Deleted playlist '%s' including %d member track on harddisk"
 msgid_plural "Deleted playlist '%s' including %d member tracks on harddisk"
-msgstr[0] "¥×¥ì¥¤¥ê¥¹¥È '%s'¡Ê%d ¶ÊÆþ¤ê¡Ë¤òºï½ü¤·¤Þ¤·¤¿"
+msgstr[0] "¥Ï¡¼¥É¥Ç¥£¥¹¥¯¤«¤é¥×¥ì¥¤¥ê¥¹¥È '%s' (%d¶Ê) ¤òºï½ü¤·¤Þ¤·¤¿"
 
-#: src/misc_confirm.c:618
+#: src/misc_confirm.c:613
 #, c-format
 msgid "Removed all %d tracks from the database"
-msgstr ""
+msgstr "¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤éÁ´%d¶Ê¤òºï½ü¤·¤Þ¤·¤¿"
 
-#: src/misc_confirm.c:693
-#, fuzzy
+#: src/misc_confirm.c:691
 msgid "Are you sure you want to remove all tracks from your iPod?"
-msgstr "°Ê²¼¤Î¶Ê¤ò¥×¥ì¥¤¥ê¥¹¥È \"%s\" ¤«¤éºï½ü¤·¤Æ¤â¤è¤í¤·¤¤¤Ç¤¹¤«?"
+msgstr "iPod ¤Î¤¹¤Ù¤Æ¤Î¶Ê¤òºï½ü¤·¤Æ¤âËÜÅö¤Ë¤è¤í¤·¤¤¤Ç¤¹¤«?"
 
-#: src/misc_confirm.c:698
-#, fuzzy
+#: src/misc_confirm.c:696
 msgid "Are you sure you want to remove all podcasts from your iPod?"
-msgstr "°Ê²¼¤Î¶Ê¤ò¥×¥ì¥¤¥ê¥¹¥È \"%s\" ¤«¤éºï½ü¤·¤Æ¤â¤è¤í¤·¤¤¤Ç¤¹¤«?"
+msgstr "¤¹¤Ù¤Æ¤Î Podcast ¤ò iPod ¤«¤éºï½ü¤·¤Æ¤âËÜÅö¤Ë¤è¤í¤·¤¤¤Ç¤¹¤«?"
 
-#: src/misc_confirm.c:706
+#: src/misc_confirm.c:704
 #, c-format
 msgid ""
 "Are you sure you want to delete playlist '%s' and the following track "
@@ -2104,17 +3852,17 @@
 "completely from your ipod? The number of playlists the tracks are member of "
 "is indicated in parentheses."
 msgstr[0] ""
-"¥×¥ì¥¤¥ê¥¹¥È '%s' µÚ¤Ó¤½¤ì¤Ë´Þ¤Þ¤ì¤ë°Ê²¼¤Î¶Ê¤òiPod¤«¤éËÜÅö¤Ëºï½ü¤·¤Æ¤â¤è¤í¤·"
-"¤¤¤Ç¤¹¤«? ³ç¸Ì¤ÎÃæ¤Î¿ô»ú¤Ï¡¢¤½¤ì¤¾¤ì¤Î¶Ê¤¬¤¤¤¯¤Ä¤Î¥×¥ì¥¤¥ê¥¹¥È¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤"
-"¤ë¤«¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£"
+"¥×¥ì¥¤¥ê¥¹¥È '%s' µÚ¤Ó¤½¤ì¤Ë´Þ¤Þ¤ì¤ë°Ê²¼¤Î¶Ê¤ò iPod ¤«¤éºï½ü¤·¤Æ¤âËÜÅö¤Ë¤è¤í"
+"¤·¤¤¤Ç¤¹¤«? ³ç¸Ì¤ÎÃæ¤Î¿ô»ú¤Ï¡¢¤½¤ì¤¾¤ì¤Î¶Ê¤¬¤¤¤¯¤Ä¤Î¥×¥ì¥¤¥ê¥¹¥È¤ËÅÐÏ¿¤µ¤ì¤Æ"
+"¤¤¤ë¤«¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£"
 
-#: src/misc_confirm.c:717 src/misc_confirm.c:772
+#: src/misc_confirm.c:715 src/misc_confirm.c:770
 #, c-format
 msgid "Are you sure you want to delete the playlist '%s'?"
 msgstr "¥×¥ì¥¤¥ê¥¹¥È '%s' ¤òËÜÅö¤Ëºï½ü¤·¤Æ¤â¤¤¤¤¤Ç¤¹¤«?"
 
-#: src/misc_confirm.c:743
-#, fuzzy, c-format
+#: src/misc_confirm.c:741
+#, c-format
 msgid ""
 "Are you sure you want to delete playlist '%s' and remove the following track "
 "from your harddisk? The number of playlists this track is a member of is "
@@ -2124,17 +3872,16 @@
 "tracks from your harddisk? The number of playlists the tracks are member of "
 "is indicated in parentheses."
 msgstr[0] ""
-"¥×¥ì¥¤¥ê¥¹¥È '%s' µÚ¤Ó¤½¤ì¤Ë´Þ¤Þ¤ì¤ë°Ê²¼¤Î¶Ê¤òiPod¤«¤éËÜÅö¤Ëºï½ü¤·¤Æ¤â¤è¤í¤·"
-"¤¤¤Ç¤¹¤«? ³ç¸Ì¤ÎÃæ¤Î¿ô»ú¤Ï¡¢¤½¤ì¤¾¤ì¤Î¶Ê¤¬¤¤¤¯¤Ä¤Î¥×¥ì¥¤¥ê¥¹¥È¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤"
-"¤ë¤«¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£"
+"¥×¥ì¥¤¥ê¥¹¥È '%s' µÚ¤Ó¤½¤ì¤Ë´Þ¤Þ¤ì¤ë°Ê²¼¤Î¶Ê¤ò¥Ï¡¼¥É¥Ç¥£¥¹¥¯¤«¤éºï½ü¤·¤Æ¤âËÜ"
+"Åö¤Ë¤è¤í¤·¤¤¤Ç¤¹¤«? ³ç¸Ì¤ÎÃæ¤Î¿ô»ú¤Ï¡¢¤½¤ì¤¾¤ì¤Î¶Ê¤¬¤¤¤¯¤Ä¤Î¥×¥ì¥¤¥ê¥¹¥È¤ËÅÐ"
+"Ï¿¤µ¤ì¤Æ¤¤¤ë¤«¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£"
 
-#: src/misc_confirm.c:751
-#, fuzzy
+#: src/misc_confirm.c:749
 msgid "Are you sure you want to remove all tracks from the database?"
-msgstr "°Ê²¼¤Î¶Ê¤ò¥×¥ì¥¤¥ê¥¹¥È \"%s\" ¤«¤éºï½ü¤·¤Æ¤â¤è¤í¤·¤¤¤Ç¤¹¤«?"
+msgstr "¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤é¤¹¤Ù¤Æ¤Î¶Ê¤òºï½ü¤·¤Æ¤âËÜÅö¤Ë¤è¤í¤·¤¤¤Ç¤¹¤«?"
 
-#: src/misc_confirm.c:760
-#, fuzzy, c-format
+#: src/misc_confirm.c:758
+#, c-format
 msgid ""
 "Are you sure you want to delete playlist '%s' and remove the following track "
 "from the database? The number of playlists this track is a member of is "
@@ -2144,32 +3891,11 @@
 "tracks from the database? The number of playlists the tracks are member of "
 "is indicated in parentheses."
 msgstr[0] ""
-"¥×¥ì¥¤¥ê¥¹¥È '%s' µÚ¤Ó¤½¤ì¤Ë´Þ¤Þ¤ì¤ë°Ê²¼¤Î¶Ê¤òiPod¤«¤éËÜÅö¤Ëºï½ü¤·¤Æ¤â¤è¤í¤·"
-"¤¤¤Ç¤¹¤«? ³ç¸Ì¤ÎÃæ¤Î¿ô»ú¤Ï¡¢¤½¤ì¤¾¤ì¤Î¶Ê¤¬¤¤¤¯¤Ä¤Î¥×¥ì¥¤¥ê¥¹¥È¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤"
-"¤ë¤«¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£"
+"¥×¥ì¥¤¥ê¥¹¥È '%s' µÚ¤Ó¤½¤ì¤Ë´Þ¤Þ¤ì¤ë°Ê²¼¤Î¶Ê¤ò¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤éºï½ü¤·¤Æ¤âËÜÅö"
+"¤Ë¤è¤í¤·¤¤¤Ç¤¹¤«? ³ç¸Ì¤ÎÃæ¤Î¿ô»ú¤Ï¡¢¤½¤ì¤¾¤ì¤Î¶Ê¤¬¤¤¤¯¤Ä¤Î¥×¥ì¥¤¥ê¥¹¥È¤ËÅÐÏ¿"
+"¤µ¤ì¤Æ¤¤¤ë¤«¤ò¼¨¤·¤Æ¤¤¤Þ¤¹¡£"
 
-#: src/misc_confirm.c:960
-#, fuzzy, c-format
-msgid "Problem creating iPod directory: '%s'."
-msgstr "'%s' ¤ËiPod¤Î¥Ç¥£¥ì¥¯¥È¥ê¤òºîÀ®¤¹¤ëºÝ¤ËÌäÂ꤬ȯÀ¸¤·¤Þ¤·¤¿¡£"
-
-#: src/misc_confirm.c:962
-#, c-format
-msgid "Successfully created iPod directories in '%s'."
-msgstr "'%s' ¤ËiPod¤Î¥Ç¥£¥ì¥¯¥È¥ê¤òºîÀ®¤·¤Þ¤·¤¿¡£"
-
-#. gint id,
-#. gboolean modal,
-#: src/misc_confirm.c:1001
-msgid "Create iPod directories"
-msgstr "iPod¤Î½é´üÀßÄê"
-
-#. title
-#: src/misc_confirm.c:1002
-msgid "OK to create the following directories?"
-msgstr "°Ê²¼¤Î¥Ç¥£¥ì¥¯¥È¥ê¤òºîÀ®¤·¤Æ¤â¤¤¤¤¤Ç¤¹¤«?"
-
-#: src/misc_confirm.c:1066
+#: src/misc_confirm.c:859
 msgid ""
 "Data has been changed and not been saved.\n"
 "OK to exit gtkpod?"
@@ -2178,9 +3904,8 @@
 "ËÜÅö¤Ë½ªÎ»¤·¤Þ¤¹¤«?"
 
 #: src/misc_conversion.c:67
-#, fuzzy
 msgid "File type"
-msgstr "¥Õ¥¡¥¤¥ë¥µ¥¤¥º"
+msgstr "¥Õ¥¡¥¤¥ë·Á¼°"
 
 #: src/misc_conversion.c:68
 msgid "PC File"
@@ -2230,13 +3955,12 @@
 msgstr "CDÈÖ¹æ"
 
 #: src/misc_conversion.c:89
-#, fuzzy
 msgid "Category"
-msgstr "¥«¥Æ¥´¥ê: "
+msgstr "¥«¥Æ¥´¥ê"
 
 #: src/misc_conversion.c:90
 msgid "Description"
-msgstr ""
+msgstr "ÀâÌÀ"
 
 #. 30
 #: src/misc_conversion.c:91
@@ -2248,68 +3972,89 @@
 msgstr ""
 
 #: src/misc_conversion.c:93
-#, fuzzy
 msgid "Subtitle"
-msgstr "¥¿¥¤¥È¥ë"
+msgstr "¥µ¥Ö¥¿¥¤¥È¥ë"
 
 #: src/misc_conversion.c:94
-#, fuzzy
 msgid "Date released"
-msgstr "ºÇ¸å¤Ë±éÁÕ¤·¤¿Æü"
+msgstr "¸ø³«Æü"
 
 #: src/misc_conversion.c:95
 msgid "Checked"
+msgstr "¥Á¥§¥Ã¥¯ºÑ¤ß"
+
+#. 35
+#: src/misc_conversion.c:96
+#, fuzzy
+msgid "Start time"
+msgstr "Á°²ó°Ê¹ß"
+
+#: src/misc_conversion.c:97
+#, fuzzy
+msgid "Stop time"
+msgstr "̾ȧ"
+
+#: src/misc_conversion.c:98
+msgid "Remember Playback Position"
 msgstr ""
 
-#: src/misc_conversion.c:108
+#: src/misc_conversion.c:99
+msgid "Skip when Shuffling"
+msgstr ""
+
+#: src/misc_conversion.c:100
+msgid "Artwork Path"
+msgstr ""
+
+#: src/misc_conversion.c:113
 msgid "Name of file on PC, if available"
 msgstr "PC ¾å¤Ç¤Î¥Õ¥¡¥¤¥ë̾ (ÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¾ì¹ç)"
 
-#: src/misc_conversion.c:109
+#: src/misc_conversion.c:114
 msgid "Name of file on the iPod"
 msgstr "iPod ¾å¤Ç¤Î¥Õ¥¡¥¤¥ë̾"
 
 #. 10
-#: src/misc_conversion.c:111
+#: src/misc_conversion.c:116
 msgid "Track Nr. and total number of tracks on CD"
 msgstr "¶ÊÈֹ椪¤è¤Ó CD ¤ÎÁí¶Ê¿ô"
 
-#: src/misc_conversion.c:112
+#: src/misc_conversion.c:117
 msgid "Whether the file has already been transferred to the iPod or not"
 msgstr "¤³¤Î¥Õ¥¡¥¤¥ë¤¬ iPod ¤ËžÁ÷ºÑ¤ß¤«¤É¤¦¤«¤ò¼¨¤¹"
 
-#: src/misc_conversion.c:118
+#: src/misc_conversion.c:123
 msgid ""
 "Supposedly something that tells the iPod to increase or decrease the "
 "playback speed"
 msgstr "¤ª¤½¤é¤¯¡¢iPod ¤ËºÆÀ¸Â®ÅÙ¤ÎÊѹ¹¤òÅÁ¤¨¤ë¤¿¤á¤ÎÃÍ"
 
-#: src/misc_conversion.c:120
+#: src/misc_conversion.c:125
 msgid "Number of times the track has been played"
 msgstr "¶Ê¤¬±éÁÕ¤µ¤ì¤¿²ó¿ô"
 
-#: src/misc_conversion.c:121
+#: src/misc_conversion.c:126
 msgid "Star rating from 0 to 5"
 msgstr "ɾ²Á (0¤«¤é5)"
 
-#: src/misc_conversion.c:122
+#: src/misc_conversion.c:127
 msgid "Date and time track has been added"
 msgstr "ÅÐÏ¿¤µ¤ì¤¿¤È¤­¤ÎÆüÉդȻþ¹ï"
 
 #. 20
-#: src/misc_conversion.c:123
+#: src/misc_conversion.c:128
 msgid "Date and time track has last been played"
 msgstr "ºÇ¸å¤Ë±éÁÕ¤µ¤ì¤¿¤È¤­¤ÎÆüÉդȻþ¹ï"
 
-#: src/misc_conversion.c:124
+#: src/misc_conversion.c:129
 msgid "Date and time track has last been modified"
 msgstr "ºÇ¸å¤ËÊѹ¹¤µ¤ì¤¿¤È¤­¤ÎÆüÉդȻþ¹ï"
 
-#: src/misc_conversion.c:125
+#: src/misc_conversion.c:130
 msgid "Manual volume adjust"
 msgstr "²»Î̤ÎÄ´À°ÃÍ"
 
-#: src/misc_conversion.c:126
+#: src/misc_conversion.c:131
 msgid ""
 "Volume adjust in dB (replay gain) -- you need to activate 'soundcheck' on "
 "the iPod"
@@ -2318,166 +4063,162 @@
 "¤¢¤ê¤Þ¤¹"
 
 #. 25
-#: src/misc_conversion.c:129
+#: src/misc_conversion.c:134
 msgid "CD Nr. and total number of CDS in set"
 msgstr "CD ÈÖ¹æ¤È¡¢¥»¥Ã¥È¤Ë´Þ¤Þ¤ì¤ë CD ¤ÎÁíËç¿ô"
 
-#: src/misc_conversion.c:132
+#: src/misc_conversion.c:137
 msgid ""
 "The category (e.g. 'Technology' or 'Music') where the podcast was located."
-msgstr ""
+msgstr "Podcast ¤Î¥«¥Æ¥´¥ê (Îã: 'µ»½Ñ·Ï' ¤ä '²»³Ú')"
 
-#: src/misc_conversion.c:133
+#: src/misc_conversion.c:138
 msgid "Accessible by selecting the center button on the iPod."
-msgstr ""
+msgstr "iPod ¤Î¿¿Ãæ¤Î¥Ü¥¿¥ó¤ò²¡¤¹¤È¸«¤ë¤³¤È¤¬¤Ç¤­¤ë"
 
-#: src/misc_conversion.c:137
+#: src/misc_conversion.c:142
 msgid "Release date (for podcasts displayed next to the title on the iPod)"
-msgstr ""
+msgstr "¸ø³«Æü (Podcast ÍÑ¡£iPod ¾å¤Ç¥¿¥¤¥È¥ë¤Î²£¤Ëɽ¼¨¤µ¤ì¤ë)"
 
-#: src/misc_conversion.c:639
+#: src/misc_conversion.c:649
 #, c-format
 msgid "The URI '%s' is not an absolute URI using the file scheme"
-msgstr "»ØÄꤵ¤ì¤¿URI '%s' ¤Ïfile¥¹¥­¡¼¥à¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡¢ÉÔ´°Á´¤ÊURI¤Ç¤¹"
+msgstr "»ØÄꤵ¤ì¤¿URI '%s' ¤Ï file ¥¹¥­¡¼¥à¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤¡¢ÉÔ´°Á´¤ÊURI¤Ç¤¹"
 
-#: src/misc_conversion.c:649
+#: src/misc_conversion.c:659
 #, c-format
 msgid "The local file URI '%s' may not include a '#'"
 msgstr "¥í¡¼¥«¥ë¥Õ¥¡¥¤¥ë¤ò»Ø¤¹URI '%s' ¤Ë¤Ï '#' ¤Ï´Þ¤Þ¤ì¤Æ¤Ï¤Ê¤ê¤Þ¤»¤ó"
 
-#: src/misc_conversion.c:666
+#: src/misc_conversion.c:676
 #, c-format
 msgid "The URI '%s' is invalid"
 msgstr "»ØÄꤵ¤ì¤¿URI '%s' ¤ÏÉÔÀµ¤Ç¤¹"
 
-#: src/misc_conversion.c:678
+#: src/misc_conversion.c:688
 #, c-format
 msgid "The hostname of the URI '%s' is invalid"
 msgstr "»ØÄꤵ¤ì¤¿URI '%s' ¤Î¥Û¥¹¥È̾¤¬ÉÔÀµ¤Ç¤¹"
 
-#: src/misc_conversion.c:694
+#: src/misc_conversion.c:704
 #, c-format
 msgid "The URI '%s' contains invalidly escaped characters"
 msgstr "»ØÄꤵ¤ì¤¿URI '%s' ¤ÏÉÔÀµ¤Ê¥¨¥¹¥±¡¼¥×ʸ»ú¤ò´Þ¤ó¤Ç¤¤¤Þ¤¹"
 
-#: src/misc_playlist.c:68 src/misc_playlist.c:95 src/misc_playlist.c:416
+#: src/misc_playlist.c:68 src/misc_playlist.c:95 src/misc_playlist.c:430
 msgid "Please enter a name for the new playlist"
 msgstr "¿·¤·¤¤¥×¥ì¥¤¥ê¥¹¥È¤Î̾Á°¤òÆþÎϤ·¤Æ¤¯¤À¤µ¤¤"
 
-#: src/misc_playlist.c:97 gtkpod.glade:578 gtkpod.glade:772 gtkpod.glade:7128
-msgid "Smart Playlist"
-msgstr "¥¹¥Þ¡¼¥È¥×¥ì¥¤¥ê¥¹¥È"
-
-#: src/misc_playlist.c:146
+#: src/misc_playlist.c:155
 msgid "AR:"
 msgstr ""
 
-#: src/misc_playlist.c:149
+#: src/misc_playlist.c:158
 msgid "AL:"
 msgstr ""
 
-#: src/misc_playlist.c:152
+#: src/misc_playlist.c:161
 msgid "GE:"
 msgstr ""
 
-#: src/misc_playlist.c:155
+#: src/misc_playlist.c:164
 msgid "CO:"
 msgstr ""
 
-#: src/misc_playlist.c:158
+#: src/misc_playlist.c:167
 msgid "YE:"
 msgstr ""
 
-#: src/misc_playlist.c:186
+#: src/misc_playlist.c:195
 msgid "Unknown"
 msgstr "ÉÔÌÀ"
 
-#: src/misc_playlist.c:256
+#: src/misc_playlist.c:273
 #, c-format
 msgid "Random (%d)"
 msgstr "¥é¥ó¥À¥à (%d)"
 
-#: src/misc_playlist.c:281
+#: src/misc_playlist.c:298
 msgid ""
 "Auto Store of track view disabled.\n"
 "\n"
 msgstr ""
+"¶Ê½ç¤Î¼«Æ°Êݸ¤¬Ìµ¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤Þ¤¹¡£\n"
+"\n"
 
-#: src/misc_playlist.c:340
+#: src/misc_playlist.c:357
 msgid "Not Listed"
 msgstr "¥ê¥¹¥È¤ËºÜ¤Ã¤Æ¤Ê¤¤¶Ê"
 
-#: src/misc_playlist.c:391
+#: src/misc_playlist.c:407
 #, c-format
 msgid "Created playlist '%s' with %d track."
 msgid_plural "Created playlist '%s' with %d tracks."
 msgstr[0] "¿·¤·¤¯¥×¥ì¥¤¥ê¥¹¥È'%s'(%d¶Ê)¤òºîÀ®¤·¤Þ¤·¤¿"
 
 #. n==0
-#: src/misc_playlist.c:402
+#: src/misc_playlist.c:418
 msgid "No tracks available, playlist not created"
 msgstr "¶Ê¤¬¸«ÉÕ¤«¤é¤Ê¤¤¤Î¤Ç¡¢¥×¥ì¥¤¥ê¥¹¥È¤Ïºî¤ì¤Þ¤»¤ó"
 
-#: src/misc_playlist.c:530
+#: src/misc_playlist.c:544
 #, c-format
 msgid "Most Listened (%d)"
 msgstr "Îɤ¯Ä°¤¯¶Ê (%d)"
 
-#: src/misc_playlist.c:571
+#: src/misc_playlist.c:585
 msgid "Never Listened"
 msgstr "Ä°¤¤¤¿¤³¤È¤¬¤Ê¤¤¶Ê"
 
-#: src/misc_playlist.c:611
+#: src/misc_playlist.c:625
 #, c-format
 msgid "Best Rated (%d)"
 msgstr "ɾ²Á¤Î¹â¤¤¶Ê (%d)"
 
-#: src/misc_playlist.c:653
+#: src/misc_playlist.c:667
 msgid "Unrated tracks"
 msgstr "̤ɾ²Á¤Î¶Ê"
 
-#: src/misc_playlist.c:658
+#: src/misc_playlist.c:672
 #, c-format
 msgid "Rated %d"
 msgstr "ɾ²Á¤µ¤ì¤¿¶Ê (%d)"
 
-#: src/misc_playlist.c:701
+#: src/misc_playlist.c:715
 #, c-format
 msgid "Recent (%d)"
 msgstr "ºÇ¶áÄ°¤¤¤¿¶Ê (%d)"
 
-#: src/misc_playlist.c:740
+#: src/misc_playlist.c:754
 msgid "Last Time"
 msgstr "Á°²ó°Ê¹ß"
 
-#: src/misc_playlist.c:831
+#: src/misc_playlist.c:845
 msgid "Removal of dangling tracks with no files on PC was canceled."
 msgstr ""
 
-#: src/misc_playlist.c:841
+#: src/misc_playlist.c:855
 msgid "Handling of dangling tracks with files on PC was canceled."
 msgstr ""
 
-#: src/misc_playlist.c:869
+#: src/misc_playlist.c:883
 msgid "Dangling tracks with no files on PC were removed."
 msgstr ""
 
-#. printf("Handling track %d\n", track->ipod_id);
-#: src/misc_playlist.c:902
-#, fuzzy, c-format
+#: src/misc_playlist.c:917
+#, c-format
 msgid "Processing '%s'"
-msgstr "'%s' ¤Î½èÍýÃæ..."
+msgstr "'%s' ¤Î½èÍýÃæ"
 
-#: src/misc_playlist.c:927
+#: src/misc_playlist.c:941
 msgid "Dangling tracks with files on PC were handled."
 msgstr ""
 
-#: src/misc_playlist.c:960
-#, fuzzy
+#: src/misc_playlist.c:974
 msgid "Track"
-msgstr "¶Ê¥ê¥¹¥È"
+msgstr "¶Ê"
 
-#: src/misc_playlist.c:1005
+#: src/misc_playlist.c:1017
 msgid ""
 "You did not import the existing iTunesDB. This is most likely incorrect and "
 "will result in the loss of the existing database.\n"
@@ -2487,19 +4228,19 @@
 "again.\n"
 msgstr ""
 
-#: src/misc_playlist.c:1021
+#: src/misc_playlist.c:1031
 msgid "Creating a tree of known files"
 msgstr ""
 
-#: src/misc_playlist.c:1065
+#: src/misc_playlist.c:1075
 msgid "Checking iPOD files against known files in DB"
 msgstr ""
 
-#: src/misc_playlist.c:1110
+#: src/misc_playlist.c:1118
 msgid "Orphaned"
 msgstr ""
 
-#: src/misc_playlist.c:1131
+#: src/misc_playlist.c:1145
 #, c-format
 msgid ""
 "The following orphaned file had already been added to the iPod again. It "
@@ -2508,12 +4249,12 @@
 "\n"
 msgstr ""
 
-#: src/misc_playlist.c:1160
+#: src/misc_playlist.c:1173
 #, c-format
 msgid "Found %d orphaned and %d dangling files. Processing..."
 msgstr ""
 
-#: src/misc_playlist.c:1183
+#: src/misc_playlist.c:1197
 #, c-format
 msgid ""
 "The following dangling track has a file on PC.\n"
@@ -2526,7 +4267,7 @@
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/misc_playlist.c:1188
+#: src/misc_playlist.c:1202
 #, c-format
 msgid ""
 "The following dangling track doesn't have file on PC. \n"
@@ -2539,30 +4280,29 @@
 
 #. we want unique window for each
 #. gboolean modal,
-#: src/misc_playlist.c:1195
-#, fuzzy
+#: src/misc_playlist.c:1209
 msgid "Dangling Tracks"
-msgstr "·Ù¹ð"
+msgstr ""
 
-#: src/misc_playlist.c:1219
+#: src/misc_playlist.c:1232
 #, c-format
 msgid "Found %d orphaned and %d dangling files. Done."
 msgstr ""
 
 #. update for count == 1, 21, 41 ... and for count == n
-#: src/misc_track.c:91 src/misc_track.c:368
+#: src/misc_track.c:90 src/misc_track.c:364
 #, c-format
 msgid "Hashed %d of %d track."
 msgid_plural "Hashed %d of %d tracks."
-msgstr[0] "%d¶ÊÃæ%d¶Ê¤Î¥Ï¥Ã¥·¥å¤òÀ¸À®¤·¤Þ¤·¤¿¡£"
+msgstr[0] "%2$d¶ÊÃæ %1$d¶Ê¤Î¥Ï¥Ã¥·¥å¤òÀ¸À®¤·¤Þ¤·¤¿¡£"
 
-#: src/misc_track.c:202
+#: src/misc_track.c:199
 #, c-format
 msgid "The following duplicate track has been removed."
 msgid_plural "The following %d duplicate tracks have been removed."
 msgstr[0] "°Ê²¼¤Î½ÅÊ£¤·¤¿%d¶Ê¤¬ºï½ü¤µ¤ì¤Þ¤·¤¿¡£"
 
-#: src/misc_track.c:209
+#: src/misc_track.c:206
 #, c-format
 msgid ""
 "The following duplicate track has not been added to the master play list."
@@ -2573,80 +4313,66 @@
 
 #. gint id,
 #. gboolean modal,
-#: src/misc_track.c:216
+#: src/misc_track.c:213
 msgid "Duplicate detection"
 msgstr "½ÅÊ£¤Î¸¡½Ð"
 
-#: src/misc_track.c:844
+#: src/misc_track.c:904
 msgid "Local Database"
 msgstr ""
 
-#: src/misc_track.c:1396
+#. artwork is set
+#: src/misc_track.c:915
+msgid "Embedded or filename was lost"
+msgstr ""
+
+#: src/misc_track.c:919
+#, fuzzy
+msgid "Artwork not set"
+msgstr "¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Ê¤¤"
+
+#: src/misc_track.c:1527
 #, c-format
 msgid "drag and drop: ignored '%s'\n"
 msgstr "¥É¥é¥Ã¥°¥¢¥ó¥É¥É¥í¥Ã¥×: '%s'¤Ï̵»ë¤·¤Þ¤¹\n"
 
-#: src/mp3file.c:1118
+#: src/mp3file.c:1276
 #, fuzzy, c-format
 msgid "Error setting ID3 field: %s\n"
 msgstr "'%s'¤ÎºîÀ®¤Ë¼ºÇÔ: %s\n"
 
-#: src/mp3file.c:1143 src/mp3file.c:1290 src/mp3file.c:2036
+#: src/mp3file.c:1300 src/mp3file.c:1373 src/mp3file.c:1522 src/mp3file.c:2160
 #, c-format
 msgid "ERROR while opening file: '%s' (%s).\n"
 msgstr "¥Õ¥¡¥¤¥ë '%s' ¤ò³«¤¯ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿¡£ (%s)\n"
 
-#: src/mp3file.c:1357
+#: src/mp3file.c:1593
 #, fuzzy, c-format
 msgid "ERROR while writing tag to file: '%s' (%s).\n"
 msgstr "¥Õ¥¡¥¤¥ë '%s' ¤ò³«¤¯ºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿¡£ (%s)\n"
 
-#: src/mp3file.c:1880
-#, c-format
-msgid ""
-"Could not find mp3gain. I tried to use the following executable: '%s'.\n"
-"\n"
-"If the mp3gain executable is not in your path or named differently, you can "
-"set the full path in the 'Tools' section of the preferences dialog.\n"
-"\n"
-"If you do not have mp3gain installed, you can download it from http://www."
-"sourceforge.net/projects/mp3gain."
-msgstr ""
-"mp3gain ¤¬¸«ÉÕ¤«¤ê¤Þ¤»¤ó¡£¼Â¹Ô¤·¤¿¤Î¤Ï¼¡¤Î¥³¥Þ¥ó¥É¤Ç¤¹: '%s'\n"
-"\n"
-"¤â¤· mp3gain ¤Î¼Â¹Ô¥Õ¥¡¥¤¥ë¤¬°ã¤¦¥Ñ¥¹¤Ë¤¢¤Ã¤¿¤ê̾Á°¤¬°Û¤Ê¤ë¾ì¹ç¤Ï¡¢ÀßÄê²èÌ̤Î"
-"¡Ö¥Ä¡¼¥ë¡×¤Î¹à¤Ç¡¢¥Õ¥ë¥Ñ¥¹¤ò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤¡£\n"
-"\n"
-"¤â¤· mp3gain ¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢http://www.sourceforge.net/"
-"projects/mp3gain ¤è¤ê¥À¥¦¥ó¥í¡¼¥É¤·¤Æ¤¯¤À¤µ¤¤¡£"
-
-#: src/mp3file.c:1920
-#, c-format
-msgid "Execution of mp3gain ('%s') failed."
-msgstr ""
-
 #. Tracks with zero play length are ignored by iPod...
-#: src/mp3file.c:2179
+#: src/mp3file.c:2326
 #, c-format
 msgid "File \"%s\" has zero play length. Ignoring.\n"
 msgstr "¥Õ¥¡¥¤¥ë \"%s\" ¤ÏŤµ¤¬0¤Ê¤Î¤Ç̵»ë¤·¤Þ¤¹¡£\n"
 
-#: src/mp4file.c:243 src/mp4file.c:362
+#: src/mp4file.c:221 src/mp4file.c:342 src/mp4file.c:461
 #, c-format
 msgid "'%s' does not appear to be a mp4 audio file.\n"
 msgstr "'%s' ¤Ï mp4 ¥ª¡¼¥Ç¥£¥ª¥Õ¥¡¥¤¥ë¤È¤Ïǧ¼±¤Ç¤­¤Þ¤»¤ó¡£\n"
 
-#: src/mp4file.c:253
+#: src/mp4file.c:231 src/mp4file.c:352
 #, c-format
 msgid "Could not open '%s' for reading, or file is not an mp4 file.\n"
 msgstr "'%s' ¤ÏÆɤ߹þ¤ß¤¬µö²Ä¤µ¤ì¤Æ¤¤¤Ê¤¤¤«¡¢mp4 ¥Õ¥¡¥¤¥ë¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£\n"
 
-#: src/mp4file.c:373
+#: src/mp4file.c:472
 #, c-format
 msgid "Could not open '%s' for writing, or file is not an mp4 file.\n"
 msgstr "'%s' ¤Ï½ñ¤­¹þ¤ß¤¬µö²Ä¤µ¤ì¤Æ¤¤¤Ê¤¤¤«¡¢mp4 ¥Õ¥¡¥¤¥ë¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£\n"
 
-#: src/mp4file.c:386
+#: src/mp4file.c:485
 #, fuzzy, c-format
 msgid ""
 "Import of '%s' failed: m4a/m4p/m4b not supported without the mp4v2 library. "
@@ -2655,7 +4381,7 @@
 "'%s'¤ÎÆɤ߹þ¤ß¤Ë¼ºÇÔ: m4a/m4p ¤Î¼è¤ê°·¤¤¤Ë¤Ï mp4v2 ¥é¥¤¥Ö¥é¥ê¤¬É¬ÍפǤ¹¡£"
 "mp4v2 ¥é¥¤¥Ö¥é¥ê¤ò»È¤Ã¤Æ gtkpod ¤òºÆÅÙ¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤¯¤À¤µ¤¤¡£\n"
 
-#: src/mp4file.c:392
+#: src/mp4file.c:491
 #, fuzzy, c-format
 msgid ""
 "m4a/m4p/m4b metadata update for '%s' failed: m4a/m4p/m4b not supported "
@@ -2666,233 +4392,264 @@
 "¥ê¤¬É¬ÍפǤ¹¡£mp4v2 ¥é¥¤¥Ö¥é¥ê¤ò»È¤Ã¤Æ gtkpod ¤òºÆÅÙ¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤¯¤À¤µ"
 "¤¤¡£\n"
 
-#: src/prefs.c:128
+#: src/mp4file.c:497
+#, fuzzy, c-format
+msgid ""
+"m4a/m4p/m4b soundcheck update for '%s' failed: m4a/m4p/m4b not supported "
+"without the mp4v2 library. You must compile the gtkpod source together with "
+"the mp4v2 library.\n"
+msgstr ""
+"'%s' ¤Î m4a/m4p ¥á¥¿¥Ç¡¼¥¿¤Î¹¹¿·¤Ë¼ºÇÔ: m4a/m4p ¤Î¼è¤ê°·¤¤¤Ë¤Ï mp4v2 ¥é¥¤¥Ö¥é"
+"¥ê¤¬É¬ÍפǤ¹¡£mp4v2 ¥é¥¤¥Ö¥é¥ê¤ò»È¤Ã¤Æ gtkpod ¤òºÆÅÙ¥³¥ó¥Ñ¥¤¥ë¤·¤Æ¤¯¤À¤µ"
+"¤¤¡£\n"
+
+#: src/prefs.c:307
 #, c-format
 msgid "gtkpod version %s usage:\n"
 msgstr "gtkpod version %s »È¤¤Êý:\n"
 
-#: src/prefs.c:129
+#: src/prefs.c:308
 msgid "  -h, --help:   display this message\n"
 msgstr "  -h, --help:   ¤³¤Î¥Ø¥ë¥×¤òɽ¼¨¤·¤Þ¤¹\n"
 
-#: src/prefs.c:130
+#: src/prefs.c:309
 msgid "  -p <filename>:increment playcount for file by one\n"
 msgstr ""
 
-#: src/prefs.c:131
+#: src/prefs.c:310
 msgid "  -m path:      define the mountpoint of your iPod\n"
 msgstr "  -m path:      iPod¤Î¥Þ¥¦¥ó¥È¥Ý¥¤¥ó¥È¤ò»ØÄꤷ¤Þ¤¹\n"
 
-#: src/prefs.c:132
+#: src/prefs.c:311
 msgid "  --mountpoint: same as '-m'.\n"
 msgstr "  --mountpoint: '-m'¤ÈƱ¤¸\n"
 
-#: src/prefs.c:133
+#: src/prefs.c:312
 msgid "  -a:           import database automatically after start.\n"
 msgstr "  -a:           µ¯Æ°»þ¤Ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò¼«Æ°Åª¤ËÆɤ߹þ¤ß¤Þ¤¹\n"
 
-#: src/prefs.c:134
+#: src/prefs.c:313
 msgid "  --auto:       same as '-a'.\n"
 msgstr "  --auto:       '-a'¤ÈƱ¤¸\n"
 
-#: src/prefs.c:135
-msgid ""
-"  -o:           use offline mode. No changes are exported to the iPod,\n"
-"                but to ~/.gtkpod/ instead. iPod is updated if 'Sync' is\n"
-"                used with 'Offline' deactivated.\n"
+#: src/prefs_window.c:119
+msgid "Please select command for 'Play Now'"
 msgstr ""
-"  -o:           ¥ª¥Õ¥é¥¤¥ó¥â¡¼¥É¤Çµ¯Æ°¤·¤Þ¤¹¡£¤¹¤Ù¤Æ¤ÎÊѹ¹¤ÏiPodËÜÂΤؤÏ\n"
-"                ½ñ¤­¹þ¤Þ¤ì¤Þ¤»¤ó¡£Âå¤ï¤ê¤Ë ~/.gtkpod/ ¤Ë½ñ¤­¹þ¤Þ¤ì¤Þ¤¹¡£\n"
-"                iPod¤Ø½ñ¤­¹þ¤à¤Ë¤Ï¡¢¡Ö¥ª¥Õ¥é¥¤¥ó¡×¤ò̵¸ú¤Ë¤·¤¿¸å¡¢\n"
-"                ¡Ö¹¹¿·¡×¤ò¼Â¹Ô¤·¤Æ¤¯¤À¤µ¤¤¡£\n"
 
-#: src/prefs.c:136
-msgid "  --offline:    same as '-o'.\n"
-msgstr "  --offline:    '-o'¤ÈƱ¤¸\n"
+#: src/prefs_window.c:120
+msgid "Please select command for 'Enqueue'"
+msgstr ""
 
-#: src/prefs.c:401
-#, c-format
-msgid "Error while reading prefs: %s\n"
-msgstr "ÀßÄê¥Õ¥¡¥¤¥ë¤Î°Ê²¼¤Î¹Ô¤Ë¸í¤ê¤¬¤¢¤ê¤Þ¤¹: %s\n"
+#: src/prefs_window.c:121
+msgid "Please select the mp3gain executable"
+msgstr ""
 
-#: src/prefs.c:1030
-#, c-format
-msgid "Unable to open config file '%s' for reading\n"
-msgstr "ÀßÄê¥Õ¥¡¥¤¥ë \"%s\" ¤ò³«¤±¤Þ¤»¤ó\n"
-
-#: src/prefs.c:1137
-#, c-format
-msgid "Unknown option: %s\n"
-msgstr "ÉÔÌÀ¤Ê¥ª¥×¥·¥ç¥ó: %s\n"
-
-#: src/prefs.c:1190
-#, c-format
-msgid "# delete confirmation\n"
+#: src/prefs_window.c:124
+msgid "Select the mserv music root directory"
 msgstr ""
 
-#: src/prefs.c:1197
-#, c-format
-msgid "# sort tab: select 'All', last selected page (=category)\n"
+#: src/prefs_window.c:125
+msgid "Select the mserv trackinfo root directory"
 msgstr ""
 
-#: src/prefs.c:1216
-#, c-format
-msgid "# autoselect master playlist?\n"
+#: src/prefs_window.c:127
+msgid "Please select the aacgain executable"
 msgstr ""
 
-#: src/prefs.c:1218
-#, c-format
-msgid "# title=0, artist, album, genre, composer\n"
+#: src/prefs_window.c:911 src/prefs_window.c:929
+msgid "Preferences not updated"
+msgstr "ÀßÄê¤Ï¹¹¿·¤µ¤ì¤Þ¤»¤ó"
+
+#: src/prefs_window.c:938
+msgid "Preferences applied"
+msgstr "ÀßÄê¤òŬÍѤ·¤Þ¤·¤¿"
+
+#: src/repository.c:549 src/repository.c:2372
+#, fuzzy
+msgid "Select mountpoint"
+msgstr "iPod¤Î¥Þ¥¦¥ó¥È¾ì½ê(_P):"
+
+#: src/repository.c:576 src/repository.c:2398
+msgid "Set backup file"
 msgstr ""
 
-#: src/prefs.c:1219
-#, c-format
-msgid "# track_nr=5, ipod_id, pc_path, transferred\n"
+#: src/repository.c:615
+#, fuzzy
+msgid "Select directory for synchronization"
+msgstr "ºÆµ¢Åª¤ËÄɲ乤ë¥Ç¥£¥ì¥¯¥È¥ê¤òÁªÂò¤·¤Æ¤¯¤À¤µ¤¤"
+
+#: src/repository.c:641
+msgid "Please select command to sync contacts"
 msgstr ""
 
-#: src/prefs.c:1220
-#, c-format
-msgid "# autoset: set empty tag to filename?\n"
+#: src/repository.c:647
+msgid "Please select command to sync calendar"
 msgstr ""
 
-#: src/prefs.c:1235
-#, c-format
-msgid ""
-"# position of sliders (paned): playlists, above tracks,\n"
-"# between sort tabs, and in statusbar.\n"
+#: src/repository.c:653
+msgid "Please select command to sync notes"
 msgstr ""
 
-#: src/prefs.c:1271
+#: src/repository.c:665
 #, c-format
 msgid ""
-"# window sizes: main window, confirmation scrolled,\n"
-"#               confirmation non-scrolled, dirbrowser, prefs\n"
+"<i>Have a look at the scripts provided in '%s'. If you write a new script, "
+"please send it to jcsjcs at users.sourceforge.net for inclusion into the "
+"next release.</i>"
 msgstr ""
 
-#: src/prefs.c:1328
-#, c-format
-msgid "Unable to open '%s' for writing\n"
-msgstr "¥Õ¥¡¥¤¥ë \"%s\" ¤ò³«¤±¤Þ¤»¤ó\n"
+#: src/repository.c:732
+#, fuzzy
+msgid "Smart playlist updated."
+msgstr "¥¹¥Þ¡¼¥È¥×¥ì¥¤¥ê¥¹¥È"
 
-#: src/prefs.c:1682
-#, c-format
-msgid ""
-" Preferences: Category nr (%d<%d?) or sorttab nr (%d<%d?) out of range.\n"
-msgstr ""
-" ÀßÄê: ¥«¥Æ¥´¥ê¡¼¤Î¿ô (%d<%d?) ¤«¡¢¥½¡¼¥È¥¿¥Ö¤Î¿ô (%d<%d?) ¤¬Â¿²á¤®¤Þ¤¹¡£\n"
+#: src/repository.c:1193
+#, fuzzy
+msgid "Podcasts Repository"
+msgstr "iPod¤«¤éºï½ü"
 
-#: src/prefs.c:1731
-#, c-format
-msgid "Unable to 'mkdir %s'\n"
-msgstr "\"mkdir %s\" ¤ò¼Â¹Ô¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿\n"
+#: src/repository.c:1197
+#, fuzzy
+msgid "Local Repository"
+msgstr "iPod¤«¤éºï½ü"
 
-#. illegal -- ignore
-#: src/prefs.c:2157
-#, c-format
-msgid "prefs_set_toolbar_style: illegal style '%d' ignored\n"
-msgstr "prefs_set_toolbar_style: ÉÔÀµ¤Ê¥¹¥¿¥¤¥ë '%d' ¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿\n"
+#: src/repository.c:1351
+#, fuzzy
+msgid "Master Playlist"
+msgstr "...¥Þ¥¹¥¿¡¼¥×¥ì¥¤¥ê¥¹¥È"
 
-#. illegal -- ignore
-#: src/prefs.c:2199
-#, c-format
-msgid "prefs_set_pm_sort: illegal type '%d' ignored\n"
-msgstr "prefs_set_pm_sort: ÉÔÀµ¤Ê·¿ '%d' ¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿\n"
+#: src/repository.c:1355
+#, fuzzy
+msgid "Podcasts Playlist"
+msgstr "¥¹¥Þ¡¼¥È¥×¥ì¥¤¥ê¥¹¥È"
 
-#: src/prefs.c:2354
-#, c-format
-msgid "'%s': no arguments (%%...) allowed.\n"
-msgstr "'%s': °ú¿ô (%%...) ¤Ï»È¤¨¤Þ¤»¤ó¡£\n"
+#: src/repository.c:1363
+#, fuzzy
+msgid "Regular Playlist"
+msgstr "¥¹¥Þ¡¼¥È¥×¥ì¥¤¥ê¥¹¥È"
 
-#: src/prefs.c:2359
-#, c-format
-msgid "'%s': only '%%[%s]' allowed.\n"
-msgstr "'%s': '%%%s' ¤Ï°ì¤Ä¤Þ¤Ç¤·¤«»È¤¨¤Þ¤»¤ó¡£\n"
+#: src/repository.c:2426
+#, fuzzy
+msgid "Set local repository file"
+msgstr "iPod¤«¤éºï½ü"
 
-#: src/prefs_window.c:108
-msgid "Please select command for 'Play Now'"
-msgstr ""
+#: src/repository.c:2525
+#, fuzzy
+msgid "New Repository"
+msgstr "iPod¤«¤éºï½ü"
 
-#: src/prefs_window.c:109
-msgid "Please select command for 'Enqueue'"
-msgstr ""
+#: src/support.c:90 src/support.c:114
+#, fuzzy, c-format
+msgid "Couldn't find pixmap file: %s"
+msgstr "¼¡¤Î¥Õ¥¡¥¤¥ë¤Î¥¿¥°¤òÊѹ¹¤Ç¤­¤Þ¤»¤ó: %s\n"
 
-#: src/prefs_window.c:110
-msgid "Please select the mp3gain executable"
+#: src/syncdir.c:237
+#, c-format
+msgid "Sync summary for %s/%s\n"
 msgstr ""
 
-#: src/prefs_window.c:111
-msgid "Please select command to sync contacts"
+#: src/syncdir.c:246
+#, fuzzy
+msgid "The following track has been added or updated:\n"
+msgid_plural "The following tracks have been added or updated:\n"
+msgstr[0] "°Ê²¼¤Î¶Ê¤ò¹¹¿·¤·¤Þ¤·¤¿"
+msgstr[1] "°Ê²¼¤Î%d¶Ê¤ò¹¹¿·¤·¤Þ¤·¤¿"
+
+#: src/syncdir.c:255
+#, fuzzy
+msgid "The following track has been completely removed from the iPod:\n"
+msgid_plural ""
+"The following tracks have been completely removed from the iPod:\n"
+msgstr[0] "°Ê²¼¤Î¶Ê¤ò¹¹¿·¤·¤Þ¤·¤¿"
+msgstr[1] "°Ê²¼¤Î%d¶Ê¤ò¹¹¿·¤·¤Þ¤·¤¿"
+
+#: src/syncdir.c:264
+#, fuzzy
+msgid "The following track has been removed from the repository:\n"
+msgid_plural "The following tracks have been removed from the repository:\n"
+msgstr[0] "°Ê²¼¤Î½ÅÊ£¤·¤¿%d¶Ê¤¬ºï½ü¤µ¤ì¤Þ¤·¤¿¡£"
+
+#: src/syncdir.c:271
+#, fuzzy
+msgid "The following track has been removed from the playlist:\n"
+msgid_plural "The following tracks have been removed from the playlist:\n"
+msgstr[0] "°Ê²¼¤Î½ÅÊ£¤·¤¿%d¶Ê¤Ï¥Þ¥¹¥¿¡¼¥×¥ì¥¤¥ê¥¹¥È¤ËÄɲ䵤ì¤Þ¤»¤ó¤Ç¤·¤¿¡£"
+
+#: src/syncdir.c:277
+msgid "Nothing was changed.\n"
 msgstr ""
 
-#: src/prefs_window.c:112
-msgid "Please select command to sync calendar"
+#: src/syncdir.c:282
+msgid "Sync summary"
 msgstr ""
 
-#: src/prefs_window.c:113
-msgid "Select the mserv music root directory"
+#: src/tools.c:119
+#, c-format
+msgid ""
+"Could not find '%s'\n"
+". Please specifiy the exact path in the Tools section of the preference "
+"dialog or install the programm if it is not installed on your system.\n"
+"\n"
 msgstr ""
 
-#: src/prefs_window.c:114
-msgid "Select the mserv trackinfo root directory"
+#: src/tools.c:204
+#, c-format
+msgid ""
+"Execution of '%s' failed.\n"
+"\n"
 msgstr ""
 
-#: src/prefs_window.c:115
-msgid "Please select command to sync notes"
+#: src/tools.c:249
+#, c-format
+msgid ""
+"Did not normalize '%s'. Set mp3gain path in the Tools section of the "
+"preferences.\n"
 msgstr ""
 
-#: src/prefs_window.c:854
+#: src/tools.c:259
 #, c-format
 msgid ""
-"<i>Have a look at the scripts provided in '%s'. If you write a new script, "
-"please send it to jcsjcs at users.sourceforge.net for inclusion into the "
-"next release.</i>"
+"Did not normalize '%s'. Set aacgain path in the Tools section of the "
+"preferences.\n"
 msgstr ""
 
-#: src/prefs_window.c:1287 src/prefs_window.c:1305
-msgid "Preferences not updated"
-msgstr "ÀßÄê¤Ï¹¹¿·¤µ¤ì¤Þ¤»¤ó"
-
-#: src/prefs_window.c:1314
-msgid "Preferences applied"
-msgstr "ÀßÄê¤òŬÍѤ·¤Þ¤·¤¿"
-
-#: src/tools.c:173
+#: src/tools.c:384
 msgid "Normalizing..."
 msgstr "Ê¿¶Ñ²½Ãæ..."
 
-#: src/tools.c:220
+#: src/tools.c:434
 #, c-format
 msgid "%s - %s"
 msgstr ""
 
-#: src/tools.c:247
+#: src/tools.c:460
 msgid "Aborting..."
 msgstr "Ãæ»ß½èÍýÃæ..."
 
-#: src/tools.c:251
+#: src/tools.c:464
 msgid "Will abort after current mp3gain process ends."
 msgstr "¸½ºß¼Â¹ÔÃæ¤Î mp3gain ¤¬½ªÎ»¼¡Âè¡¢½èÍý¤òÃæ»ß¤·¤Þ¤¹¡£"
 
-#: src/tools.c:277
+#: src/tools.c:490
 #, c-format
 msgid ""
 "'%s-%s' (%s) could not be normalized.\n"
 "\n"
 msgstr ""
 
-#: src/tools.c:319
+#: src/tools.c:529
 #, c-format
 msgid "Normalized %d of %d tracks."
 msgid_plural "Normalized %d of %d tracks."
-msgstr[0] "%d¶ÊÃæ %d¶Ê¤Î²»Î̤òÊ¿¶Ñ²½¤·¤Þ¤·¤¿¡£"
+msgstr[0] "%2$d¶ÊÃæ %1$d¶Ê¤Î²»Î̤òÊ¿¶Ñ²½¤·¤Þ¤·¤¿¡£"
 
-#: src/tools.c:413
+#: src/tools.c:632
 msgid ""
 "Please specify the command to be called on the 'Tools' section of the "
 "preferences dialog.\n"
 msgstr ""
 
-#: src/tools.c:425
+#: src/tools.c:644
 #, c-format
 msgid ""
 "Could not find the command '%s'.\n"
@@ -2901,19 +4658,19 @@
 "\n"
 msgstr ""
 
-#: src/tools.c:466
+#: src/tools.c:685
 #, c-format
 msgid ""
 "'%s' returned the following output:\n"
 "%s\n"
 msgstr ""
 
-#: src/tools.c:535
+#: src/tools.c:752
 #, c-format
 msgid "No command set for '%s'"
 msgstr "'%s' ¤Î¤¿¤á¤Î¥³¥Þ¥ó¥É¤¬ÀßÄꤵ¤ì¤Æ¤¤¤Þ¤»¤ó"
 
-#: src/tools.c:556
+#: src/tools.c:772
 #, c-format
 msgid "Could not find command '%s' specified for '%s'"
 msgstr "'%s' ¤Î¤¿¤á¤Î¥³¥Þ¥ó¥É '%s' ¤¬¸«ÉÕ¤«¤ê¤Þ¤»¤ó"
@@ -2928,1885 +4685,294 @@
 msgid "%s does not appear to be a supported wav file.\n"
 msgstr ""
 
-#: gtkpod.glade:7
-msgid "gtkpod"
-msgstr "gtkpod"
+#~ msgid ""
+#~ "On startup gtkpod will call 'mount <ipod mountpoint>', on exit a 'umount "
+#~ "<ipod mountpoint>' call is carried out. For more complicated arrangements "
+#~ "please use the ~/.gtkpod/gtkpod.in and ~/.gtkpod/gtkpod.out scripts."
+#~ msgstr ""
+#~ "gtkpod ¤Îµ¯Æ°»þ¤Ë 'mount <ipod¤Î¥Þ¥¦¥ó¥È¾ì½ê>' ¤ò¡¢½ªÎ»»þ¤Ë'umount <ipod¤Î"
+#~ "¥Þ¥¦¥ó¥È¾ì½ê>' ¤ò¤½¤ì¤¾¤ì¼Â¹Ô¤¹¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£¤è¤êÊ£»¨¤ÊÁàºî¤ò¤¹¤ë¾ì¹ç"
+#~ "¤Ë¤Ï¡¢~/.gtkpod/gtkpod.in ¤È ~/.gtkpod/gtkpod.out ¤È¤¤¤¦¥¹¥¯¥ê¥×¥È¤ò»ÈÍѤ·"
+#~ "¤Æ¤¯¤À¤µ¤¤¡£"
 
-#: gtkpod.glade:36
-msgid "_File"
-msgstr "¥Õ¥¡¥¤¥ë(_F)"
+#~ msgid "Handle mounting/unmounting of iPod drive"
+#~ msgstr "iPod¤Î¥Þ¥¦¥ó¥È/¥¢¥ó¥Þ¥¦¥ó¥È¤ò gtkpod ¤Ç¹Ô¤¦"
 
-#: gtkpod.glade:45
-msgid "_Read iTunesDB"
-msgstr "iTunesDB¤òÆɤ߹þ¤à(_R)"
+#~ msgid "<b>Artwork</b>"
+#~ msgstr "<b>¥¢¡¼¥È¥ï¡¼¥¯</b>"
 
-#: gtkpod.glade:66
-msgid "Add _Files"
-msgstr "¥Õ¥¡¥¤¥ë¤òÄɲ乤ë(_F)"
+#~ msgid "_Offline"
+#~ msgstr "¥ª¥Õ¥é¥¤¥ó(_O)"
 
-#: gtkpod.glade:87
-msgid "Add _Directory"
-msgstr "¥Ç¥£¥ì¥¯¥È¥ê¤òÄɲ乤ë(_D)"
-
-#: gtkpod.glade:108
-msgid "Add _Playlist"
-msgstr "¥×¥ì¥¤¥ê¥¹¥È¤òÄɲ乤ë(_P)"
-
-#: gtkpod.glade:129
-msgid "Synchronize _iTunesDB"
-msgstr "iTunesDB¤ò¹¹¿·¤¹¤ë(_i)"
-
-#: gtkpod.glade:183
-msgid "_Update Tracks from File"
-msgstr "¥Õ¥¡¥¤¥ë¤ò¸µ¤Ë¶Ê¤ò¹¹¿·¤¹¤ë(_U)"
-
-#: gtkpod.glade:204 gtkpod.glade:256 gtkpod.glade:308 gtkpod.glade:366
-#: gtkpod.glade:418 gtkpod.glade:1136 gtkpod.glade:1188 gtkpod.glade:1234
-msgid "Selected _Playlist"
-msgstr "¥×¥ì¥¤¥ê¥¹¥È(_P)"
-
-#: gtkpod.glade:213 gtkpod.glade:265 gtkpod.glade:317 gtkpod.glade:375
-#: gtkpod.glade:427 gtkpod.glade:1145 gtkpod.glade:1197 gtkpod.glade:1243
-msgid "Selected Tab _Entry"
-msgstr "ÁªÂò¤µ¤ì¤Æ¤¤¤ë¥½¡¼¥È¥¿¥Ö(_E)"
-
-#: gtkpod.glade:222 gtkpod.glade:274 gtkpod.glade:326 gtkpod.glade:384
-#: gtkpod.glade:436 gtkpod.glade:569 gtkpod.glade:1154 gtkpod.glade:1206
-#: gtkpod.glade:1252
-msgid "Selected _Tracks"
-msgstr "ÁªÂò¤µ¤ì¤Æ¤¤¤ë¶Ê(_S)"
-
-#: gtkpod.glade:235
-msgid "Update _mserv Data from File"
-msgstr "mserv ¥Ç¡¼¥¿¤ò¹¹¿·¤¹¤ë(_m)"
-
-#: gtkpod.glade:287
-msgid "_Synchronize Directories"
-msgstr "¥Ç¥£¥ì¥¯¥È¥ê¤òƱ´ü¤µ¤»¤ë(_S)"
-
-#: gtkpod.glade:345
 #, fuzzy
-msgid "_Export Tracks from Database"
-msgstr "¤¹¤Ù¤Æ¤Î¶Ê¤ò¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤éºï½ü"
+#~ msgid "Edit Repository Properties"
+#~ msgstr "¥½¡¼¥È¤ÎÀßÄê"
 
-#: gtkpod.glade:397
-msgid "Create _Playlist File"
-msgstr "¥×¥ì¥¤¥ê¥¹¥È¤òºîÀ® (_P)"
+#~ msgid "Currently no iPod database selected"
+#~ msgstr "iPod ¥Ç¡¼¥¿¥Ù¡¼¥¹¤¬ÁªÂò¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
 
-#: gtkpod.glade:455
-msgid "_Offline"
-msgstr "¥ª¥Õ¥é¥¤¥ó(_O)"
+#~ msgid "No playlist selected."
+#~ msgstr "¥×¥ì¥¤¥ê¥¹¥È¤¬ÁªÂò¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£"
 
-#: gtkpod.glade:471
-msgid "_Create iPod's Directories"
-msgstr "iPod¤Î½é´üÀßÄê(_C)"
+#~ msgid "Could not delete backup file: \"%s\"\n"
+#~ msgstr "¥Ð¥Ã¥¯¥¢¥Ã¥×¥Õ¥¡¥¤¥ë¤¬ºï½ü¤Ç¤­¤Þ¤»¤ó: \"%s\"\n"
 
-#: gtkpod.glade:492
-msgid ""
-"Find orphan files (files with no track info in DB) and dangling tracks "
-"(tracks with no corresponding files on iPOD)"
-msgstr ""
+#~ msgid "No tracks selected."
+#~ msgstr "¶Ê¤¬ÁªÂò¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£"
 
-#: gtkpod.glade:493
-msgid "_Check iPod's Files"
-msgstr "iPod ¤Î¥Á¥§¥Ã¥¯(_C)"
+#~ msgid "Problem creating iPod directory: '%s'."
+#~ msgstr "'%s' ¤Ë iPod ¤Î¥Ç¥£¥ì¥¯¥È¥ê¤òºîÀ®¤¹¤ëºÝ¤ËÌäÂ꤬ȯÀ¸¤·¤Þ¤·¤¿¡£"
 
-#: gtkpod.glade:521 gtkpod.glade:11968
-msgid "_Edit"
-msgstr "ÊÔ½¸(_E)"
+#~ msgid "Successfully created iPod directories in '%s'."
+#~ msgstr "'%s' ¤Ë iPod ¤Î¥Ç¥£¥ì¥¯¥È¥ê¤òºîÀ®¤·¤Þ¤·¤¿¡£"
 
-#: gtkpod.glade:530
-msgid "Edit"
-msgstr "ÊÔ½¸"
+#~ msgid "Create iPod directories"
+#~ msgstr "iPod¤Î½é´üÀßÄê"
 
-#: gtkpod.glade:551
-#, fuzzy
-msgid "Tracks in Selected _Playlist"
-msgstr "¥×¥ì¥¤¥ê¥¹¥È(_P)"
+#~ msgid "OK to create the following directories?"
+#~ msgstr "°Ê²¼¤Î¥Ç¥£¥ì¥¯¥È¥ê¤òºîÀ®¤·¤Æ¤â¤¤¤¤¤Ç¤¹¤«?"
 
-#: gtkpod.glade:560
-#, fuzzy
-msgid "Tracks in Selected Tab _Entry"
-msgstr "ÁªÂò¤µ¤ì¤Æ¤¤¤ë¥½¡¼¥È¥¿¥Ö(_E)"
+#~ msgid ""
+#~ "Could not find mp3gain. I tried to use the following executable: '%s'.\n"
+#~ "\n"
+#~ "If the mp3gain executable is not in your path or named differently, you "
+#~ "can set the full path in the 'Tools' section of the preferences dialog.\n"
+#~ "\n"
+#~ "If you do not have mp3gain installed, you can download it from http://www."
+#~ "sourceforge.net/projects/mp3gain."
+#~ msgstr ""
+#~ "mp3gain ¤¬¸«ÉÕ¤«¤ê¤Þ¤»¤ó¡£¼Â¹Ô¤·¤¿¤Î¤Ï¼¡¤Î¥³¥Þ¥ó¥É¤Ç¤¹: '%s'\n"
+#~ "\n"
+#~ "¤â¤· mp3gain ¤Î¼Â¹Ô¥Õ¥¡¥¤¥ë¤¬°ã¤¦¥Ñ¥¹¤Ë¤¢¤Ã¤¿¤ê̾Á°¤¬°Û¤Ê¤ë¾ì¹ç¤Ï¡¢ÀßÄê²è"
+#~ "Ì̤Ρ֥ġ¼¥ë¡×¤Î¹à¤Ç¡¢¥Õ¥ë¥Ñ¥¹¤ò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤¡£\n"
+#~ "\n"
+#~ "¤â¤· mp3gain ¤ò¥¤¥ó¥¹¥È¡¼¥ë¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¤Ï¡¢http://www.sourceforge.net/"
+#~ "projects/mp3gain ¤è¤ê¥À¥¦¥ó¥í¡¼¥É¤·¤Æ¤¯¤À¤µ¤¤¡£"
 
-#: gtkpod.glade:591
-msgid "_Delete"
-msgstr ""
+#~ msgid ""
+#~ "  -o:           use offline mode. No changes are exported to the iPod,\n"
+#~ "                but to ~/.gtkpod/ instead. iPod is updated if 'Sync' is\n"
+#~ "                used with 'Offline' deactivated.\n"
+#~ msgstr ""
+#~ "  -o:           ¥ª¥Õ¥é¥¤¥ó¥â¡¼¥É¤Çµ¯Æ°¤·¤Þ¤¹¡£¤¹¤Ù¤Æ¤ÎÊѹ¹¤ÏiPodËÜÂΤؤÏ\n"
+#~ "                ½ñ¤­¹þ¤Þ¤ì¤Þ¤»¤ó¡£Âå¤ï¤ê¤Ë ~/.gtkpod/ ¤Ë½ñ¤­¹þ¤Þ¤ì¤Þ¤¹¡£\n"
+#~ "                iPod¤Ø½ñ¤­¹þ¤à¤Ë¤Ï¡¢¡Ö¥ª¥Õ¥é¥¤¥ó¡×¤ò̵¸ú¤Ë¤·¤¿¸å¡¢\n"
+#~ "                ¡Ö¹¹¿·¡×¤ò¼Â¹Ô¤·¤Æ¤¯¤À¤µ¤¤¡£\n"
 
-#: gtkpod.glade:612
-#, fuzzy
-msgid "Selected playlist"
-msgstr "¥×¥ì¥¤¥ê¥¹¥È(_P)"
+#~ msgid "  --offline:    same as '-o'.\n"
+#~ msgstr "  --offline:    '-o'¤ÈƱ¤¸\n"
 
-#: gtkpod.glade:621
-#, fuzzy
-msgid "Selected playlist including tracks from iPod"
-msgstr "¥×¥ì¥¤¥ê¥¹¥È '%s'¡Ê%d ¶ÊÆþ¤ê¡Ë¤òºï½ü¤·¤Þ¤·¤¿"
+#~ msgid "Error while reading prefs: %s\n"
+#~ msgstr "ÀßÄê¥Õ¥¡¥¤¥ë¤Î°Ê²¼¤Î¹Ô¤Ë¸í¤ê¤¬¤¢¤ê¤Þ¤¹: %s\n"
 
-#: gtkpod.glade:630
-#, fuzzy
-msgid "Selected playlist including tracks from database"
-msgstr "Ãæ¤Î¶Ê¤´¤Èºï½ü (¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤é)"
+#~ msgid "Unable to open config file '%s' for reading\n"
+#~ msgstr "ÀßÄê¥Õ¥¡¥¤¥ë \"%s\" ¤ò³«¤±¤Þ¤»¤ó\n"
 
-#: gtkpod.glade:639
-#, fuzzy
-msgid "Selected playlist including tracks from harddisk"
-msgstr "¥×¥ì¥¤¥ê¥¹¥È '%s'¡Ê%d ¶ÊÆþ¤ê¡Ë¤òºï½ü¤·¤Þ¤·¤¿"
+#~ msgid "Unknown option: %s\n"
+#~ msgstr "ÉÔÌÀ¤Ê¥ª¥×¥·¥ç¥ó: %s\n"
 
-#: gtkpod.glade:654
-msgid "Selected filter tab entry from playlist"
-msgstr ""
+#~ msgid "Unable to open '%s' for writing\n"
+#~ msgstr "¥Õ¥¡¥¤¥ë \"%s\" ¤ò³«¤±¤Þ¤»¤ó\n"
 
-#: gtkpod.glade:663
-#, fuzzy
-msgid "Selected filter tab entry from iPod"
-msgstr "iPod¤«¤é1¶Ê´°Á´¤Ëºï½ü¤·¤Þ¤·¤¿"
+#~ msgid ""
+#~ " Preferences: Category nr (%d<%d?) or sorttab nr (%d<%d?) out of range.\n"
+#~ msgstr ""
+#~ " ÀßÄê: ¥«¥Æ¥´¥ê¡¼¤Î¿ô (%d<%d?) ¤«¡¢¥½¡¼¥È¥¿¥Ö¤Î¿ô (%d<%d?) ¤¬Â¿²á¤®¤Þ"
+#~ "¤¹¡£\n"
 
-#: gtkpod.glade:672
-msgid "Selected filter tab entry from database"
-msgstr ""
+#~ msgid "Unable to 'mkdir %s'\n"
+#~ msgstr "\"mkdir %s\" ¤ò¼Â¹Ô¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿\n"
 
-#: gtkpod.glade:681
-#, fuzzy
-msgid "Selected filter tab entry from harddisk"
-msgstr "¤³¤Î¶Ê¤ò¥Ï¡¼¥É¥Ç¥£¥¹¥¯¤«¤éºï½ü¤·¤Þ¤¹¤«?"
+#~ msgid "prefs_set_toolbar_style: illegal style '%d' ignored\n"
+#~ msgstr "prefs_set_toolbar_style: ÉÔÀµ¤Ê¥¹¥¿¥¤¥ë '%d' ¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿\n"
 
-#: gtkpod.glade:696
-#, fuzzy
-msgid "Selected tracks from playlist"
-msgstr "¥×¥ì¥¤¥ê¥¹¥È¤«¤éºï½ü"
+#~ msgid "prefs_set_pm_sort: illegal type '%d' ignored\n"
+#~ msgstr "prefs_set_pm_sort: ÉÔÀµ¤Ê·¿ '%d' ¤Ï̵»ë¤µ¤ì¤Þ¤·¤¿\n"
 
-#: gtkpod.glade:705
-#, fuzzy
-msgid "Selected tracks from iPod"
-msgstr "iPod¤«¤é1¶Ê´°Á´¤Ëºï½ü¤·¤Þ¤·¤¿"
+#~ msgid "'%s': no arguments (%%...) allowed.\n"
+#~ msgstr "'%s': °ú¿ô (%%...) ¤Ï»È¤¨¤Þ¤»¤ó¡£\n"
 
-#: gtkpod.glade:714
-#, fuzzy
-msgid "Selected tracks from database"
-msgstr "¤¹¤Ù¤Æ¤Î¶Ê¤ò¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤éºï½ü"
+#~ msgid "'%s': only '%%[%s]' allowed.\n"
+#~ msgstr "'%s': '%%%s' ¤Ï°ì¤Ä¤Þ¤Ç¤·¤«»È¤¨¤Þ¤»¤ó¡£\n"
 
-#: gtkpod.glade:723
-#, fuzzy
-msgid "Selected tracks from harddisk"
-msgstr "¤³¤Î¶Ê¤ò¥Ï¡¼¥É¥Ç¥£¥¹¥¯¤«¤éºï½ü¤·¤Þ¤¹¤«?"
+#~ msgid "_Read iTunesDB"
+#~ msgstr "iTunesDB¤òÆɤ߹þ¤à(_R)"
 
-#: gtkpod.glade:742
-msgid "_Create Playlists"
-msgstr "¥×¥ì¥¤¥ê¥¹¥ÈºîÀ®(_C)"
+#~ msgid "Synchronize _iTunesDB"
+#~ msgstr "iTunesDB¤ò¹¹¿·¤¹¤ë(_i)"
 
-#: gtkpod.glade:763
-msgid "Empty Playlist"
-msgstr "¶õ¥ê¥¹¥È"
+#~ msgid "Edit"
+#~ msgstr "ÊÔ½¸"
 
-#: gtkpod.glade:781
-msgid "Random Playlist from Displayed Tracks"
-msgstr "ɽ¼¨¤µ¤ì¤Æ¤¤¤ë¶Ê¤«¤é¥é¥ó¥À¥à¤ËºîÀ®"
+#~ msgid "Read Existing Database from Disk/iPod"
+#~ msgstr "iPod¤Þ¤¿¤Ï¥Ç¥£¥¹¥¯¤«¤é¥Ç¡¼¥¿¥Ù¡¼¥¹¤òÆɤ߹þ¤ß¤Þ¤¹"
 
-#: gtkpod.glade:790
-msgid "Containing Displayed Tracks"
-msgstr "ɽ¼¨¤µ¤ì¤Æ¤¤¤ë¶Ê¤«¤éºîÀ®"
+#~ msgid "Read"
+#~ msgstr "Æɤ߹þ¤ß"
 
-#: gtkpod.glade:799
-msgid "Containing Selected Tracks"
-msgstr "ÁªÂò¤µ¤ì¤Æ¤¤¤ë¶Ê¤«¤éºîÀ®"
+#~ msgid "Write Changes to Disk/iPod"
+#~ msgstr "¤³¤ì¤Þ¤Ç¤ÎÊѹ¹ÅÀ¤òiPod¤Þ¤¿¤Ï¥Ç¥£¥¹¥¯¤Ë½ñ¤­¹þ¤ß¤Þ¤¹"
 
-#: gtkpod.glade:808
-msgid "One for each Artist"
-msgstr "³Æ¥¢¡¼¥Æ¥£¥¹¥È¤´¤È¤Î¥ê¥¹¥È"
+#~ msgid "Sync"
+#~ msgstr "¹¹¿·"
 
-#: gtkpod.glade:817
-msgid "One for each Album"
-msgstr "³Æ¥¢¥ë¥Ð¥à¤´¤È¤Î¥ê¥¹¥È"
-
-#: gtkpod.glade:826
-msgid "One for each Genre"
-msgstr "³Æ¥¸¥ã¥ó¥ë¤´¤È¤Î¥ê¥¹¥È"
-
-#: gtkpod.glade:835
-msgid "One for each Composer"
-msgstr "³Æºî¶Ê¼Ô¤´¤È¤Î¥ê¥¹¥È"
-
-#: gtkpod.glade:844
-msgid "One for each Year"
-msgstr "³Æǯ¤´¤È¤Î¥ê¥¹¥È"
-
-#: gtkpod.glade:853
-msgid "One for each Rating"
-msgstr "³Æɾ²ÁÃͤ´¤È¤Î¥ê¥¹¥È"
-
-#: gtkpod.glade:862
-msgid "Best Rated Tracks"
-msgstr "ɾ²Á¤Î¹â¤¤¶Ê"
-
-#: gtkpod.glade:871
-msgid "Tracks Most Often Listened To"
-msgstr "ºÆÀ¸²ó¿ô¤Î¿¤¤¶Ê"
-
-#: gtkpod.glade:880
-msgid "Most Recently Played Tracks"
-msgstr "ºÇ¶áºÆÀ¸¤µ¤ì¤¿¶Ê"
-
-#: gtkpod.glade:889
-msgid "All Tracks Played Since Last Time"
-msgstr "Á°²ó°Ê¹ßºÆÀ¸¤µ¤ì¤¿¶Ê"
-
-#: gtkpod.glade:898
-msgid "All Tracks Never Listened To"
-msgstr "°ìÅÙ¤âÄ°¤¤¤¿»ö¤¬¤Ê¤¤¶Ê"
-
-#: gtkpod.glade:907
-msgid "All Tracks not Listed in any Playlist"
-msgstr "¥×¥ì¥¤¥ê¥¹¥È¤ËºÜ¤Ã¤Æ¤¤¤Ê¤¤¤¹¤Ù¤Æ¤Î¶Ê"
-
-#: gtkpod.glade:920
-msgid "Randomize Current Playlist"
-msgstr "¸½ºß¤Î¥×¥ì¥¤¥ê¥¹¥È¤ò¥é¥ó¥À¥à¤Ëʤٴ¹¤¨¤ë"
-
-#: gtkpod.glade:935
-msgid "_Sorting"
-msgstr "ʤٴ¹¤¨(_S)"
-
-#: gtkpod.glade:957
-msgid "_Save Displayed Track Order"
-msgstr "¸½ºß¤Î¶Ê½ç¤òÊݸ(_S)"
-
-#: gtkpod.glade:985
-msgid "_Edit Preferences"
-msgstr "ÀßÄê(_E)"
-
-#: gtkpod.glade:1011
-msgid "_View"
-msgstr "ɽ¼¨(_V)"
-
-#: gtkpod.glade:1020
-msgid "_Toolbar"
-msgstr "¥Ä¡¼¥ë¥Ð¡¼(_T)"
-
-#: gtkpod.glade:1030
-msgid "_Tooltips"
-msgstr "¥Ä¡¼¥ë¥Á¥Ã¥×(_T)"
-
-#: gtkpod.glade:1040
-msgid "_Info Window"
-msgstr "¾ðÊó(_I)"
-
-#: gtkpod.glade:1051
-msgid "_More Sort Tabs"
-msgstr "¥½¡¼¥È¥¿¥Ö¤ÎÄɲÃ(_M)"
-
-#: gtkpod.glade:1072
-msgid "_Less Sort Tabs"
-msgstr "¥½¡¼¥È¥¿¥Ö¤Îºï½ü(_L)"
-
-#: gtkpod.glade:1093
-msgid "_Arrange Sort Tabs"
-msgstr "¥½¡¼¥È¥¿¥Ö¤òºÆÇÛÃÖ(_A)"
-
-#: gtkpod.glade:1106 gtkpod.glade:12693
-msgid "_Tools"
-msgstr "¥Ä¡¼¥ë(_T)"
-
-#: gtkpod.glade:1115
-msgid "_Play Now"
-msgstr "º£¤¹¤°±éÁÕ(_P)"
-
-#: gtkpod.glade:1167
-msgid "_Enqueue"
-msgstr "±éÁÕ¥­¥å¡¼¤ËÆþ¤ì¤ë(_E)"
-
-#: gtkpod.glade:1225
-msgid "_Normalize Volume"
-msgstr "¥Ü¥ê¥å¡¼¥à¤ÎÊ¿¶Ñ²½"
-
-#: gtkpod.glade:1261
-msgid "_Displayed Tracks"
-msgstr "ɽ¼¨¤µ¤ì¤Æ¤¤¤ë¶Ê(_D)"
-
-#: gtkpod.glade:1270
-msgid "_All Tracks"
-msgstr "¤¹¤Ù¤Æ¤Î¶Ê(_A)"
-
-#: gtkpod.glade:1279
-msgid "_Newly Added Tracks"
-msgstr "¿·¤¿¤ËÄɲ䵤줿¶Ê(_N)"
-
-#: gtkpod.glade:1298
-msgid "Synchronise Contacts, Calendar and Notes"
-msgstr "¶Ê¡¢¥«¥ì¥ó¥À¡¼¡¢¥Î¡¼¥È¤òƱ´ü¤¹¤ë"
-
-#: gtkpod.glade:1299
-msgid "Synchronize All"
-msgstr "¤¹¤Ù¤ÆƱ´ü"
-
-#: gtkpod.glade:1308
-msgid "Synchronize Contacts"
-msgstr "¶Ê¤òƱ´ü"
-
-#: gtkpod.glade:1317
-msgid "Synchronize Calendar"
-msgstr "¥«¥ì¥ó¥À¡¼¤òƱ´ü"
-
-#: gtkpod.glade:1326
-msgid "Synchronize Notes"
-msgstr "¥Î¡¼¥È¤òƱ´ü"
-
-#: gtkpod.glade:1339
-msgid "_Help"
-msgstr "¥Ø¥ë¥×(_H)"
-
-#: gtkpod.glade:1348
-msgid "_About"
-msgstr "gtkpod¤Ë¤Ä¤¤¤Æ(_A)"
-
-#: gtkpod.glade:1388
-msgid "Read Existing Database from Disk/iPod"
-msgstr "iPod¤Þ¤¿¤Ï¥Ç¥£¥¹¥¯¤«¤é¥Ç¡¼¥¿¥Ù¡¼¥¹¤òÆɤ߹þ¤ß¤Þ¤¹"
-
-#: gtkpod.glade:1389
-msgid "Read"
-msgstr "Æɤ߹þ¤ß"
-
-#: gtkpod.glade:1406
-msgid "Add Files or Directories"
-msgstr "¥Õ¥¡¥¤¥ë¤Þ¤¿¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤òÄɲä·¤Þ¤¹"
-
-#: gtkpod.glade:1407
-msgid "Files"
-msgstr "¥Õ¥¡¥¤¥ë"
-
-#: gtkpod.glade:1424
-msgid "Add Directories Recursively"
-msgstr "¥Ç¥£¥ì¥¯¥È¥ê¤òºÆµ¢Åª¤ËÄɲä·¤Þ¤¹"
-
-#: gtkpod.glade:1425
-msgid "Dirs"
-msgstr "¥Ç¥£¥ì¥¯¥È¥ê"
-
-#: gtkpod.glade:1442
-msgid "Add playlist from file"
-msgstr "¥×¥ì¥¤¥ê¥¹¥È¤ò¥Õ¥¡¥¤¥ë¤«¤éÆɤ߹þ¤ó¤ÇÄɲä·¤Þ¤¹"
-
-#: gtkpod.glade:1460
-msgid "Create New Playlist"
-msgstr "¿·¤·¤¯¥×¥ì¥¤¥ê¥¹¥È¤òºîÀ®¤·¤Þ¤¹"
-
-#: gtkpod.glade:1461
-msgid "New PL"
-msgstr "¿·µ¬¥×¥ì¥¤¥ê¥¹¥È"
-
-#: gtkpod.glade:1478
-msgid "Write Changes to Disk/iPod"
-msgstr "¤³¤ì¤Þ¤Ç¤ÎÊѹ¹ÅÀ¤òiPod¤Þ¤¿¤Ï¥Ç¥£¥¹¥¯¤Ë½ñ¤­¹þ¤ß¤Þ¤¹"
-
-#: gtkpod.glade:1479
-msgid "Sync"
-msgstr "¹¹¿·"
-
-#: gtkpod.glade:1495
-msgid "Stop Display Update"
-msgstr "ɽ¼¨¤Î¹¹¿·¤ò»ß¤á¤ë"
-
-#: gtkpod.glade:1496
-msgid "Stop"
-msgstr "̾ȧ"
-
-#: gtkpod.glade:1669
-msgid "About gtkpod"
-msgstr "gtkpod¤Ë¤Ä¤¤¤Æ"
-
-#: gtkpod.glade:1790
-msgid "Credits"
-msgstr "¸¢Íøɽ¼¨"
-
-#: gtkpod.glade:1844
-msgid "Translators"
-msgstr "ËÝÌõôÅö"
-
-#: gtkpod.glade:1898
-msgid "special_sorttab -- Don't translate!"
-msgstr ""
-
-#: gtkpod.glade:1932
-msgid " Logic: "
-msgstr "¾ò·ï: "
-
-#: gtkpod.glade:1954
-msgid "Any (OR)"
-msgstr "¤¤¤º¤ì¤«(OR)"
-
-#: gtkpod.glade:1973
-msgid "All (AND)"
-msgstr "¤¹¤Ù¤Æ(AND)"
-
-#: gtkpod.glade:2026
-msgid "0"
-msgstr ""
-
-#: gtkpod.glade:2045
-msgid "1"
-msgstr ""
-
-#: gtkpod.glade:2064
-msgid "2"
-msgstr ""
-
-#: gtkpod.glade:2083
-msgid "3"
-msgstr ""
-
-#: gtkpod.glade:2102
-msgid "4"
-msgstr ""
-
-#: gtkpod.glade:2121
-msgid "5"
-msgstr ""
-
-#: gtkpod.glade:2160
-msgid "Select '0' for no lower limit."
-msgstr "²¼¸Â¤ò»ØÄꤷ¤Ê¤¤¾ì¹ç¤Ï '0' ¤òÁª¤ó¤Ç¤¯¤À¤µ¤¤¡£"
-
-#: gtkpod.glade:2181
-msgid " <= cts <= "
-msgstr " <= ²ó¿ô <= "
-
-#: gtkpod.glade:2202
-msgid "Select '-1' for no upper limit."
-msgstr "¾å¸Â¤ò»ØÄꤷ¤Ê¤¤¾ì¹ç¤Ï '-1' ¤òÁª¤ó¤Ç¤¯¤À¤µ¤¤¡£"
-
-#: gtkpod.glade:2245 gtkpod.glade:2318 gtkpod.glade:2484
-msgid ""
-"'DD/MM/YYYY HH:MM < d < DD/MM/YYYY HH:MM' or similar. Press 'enter' when "
-"finished."
-msgstr ""
-"'DD/MM/YYYY HH:MM < d < DD/MM/YYYY HH:MM' ¤Î¤è¤¦¤ËÀßÄꤷ¤Æ¤¯¤À¤µ¤¤¡£½ñ¤­¹þ¤ó"
-"¤À¤é 'enter' ¥­¡¼¤ò²¡¤·¤Æ¤¯¤À¤µ¤¤¡£"
-
-#: gtkpod.glade:2287 gtkpod.glade:2360 gtkpod.glade:2526 gtkpod.glade:2701
-msgid "Calendar"
-msgstr "¥«¥ì¥ó¥À¡¼"
-
-#: gtkpod.glade:2385
-msgid "Specify interval"
-msgstr "ÈϰϤò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤"
-
-#: gtkpod.glade:2596
-msgid "Display tracks that match the criteria entered above."
-msgstr "¾å¤Ç»ØÄꤵ¤ì¤¿¾ò·ï¤Ë¹çÃפ¹¤ë¶Ê¤òɽ¼¨¤·¤Þ¤¹¡£"
-
-#: gtkpod.glade:2639 gtkpod.glade:11330
-msgid "_Display"
-msgstr "ɽ¼¨(_D)"
-
-#: gtkpod.glade:2671
-msgid ""
-"Automatically start displaying tracks that match the criteria entered above. "
-"If not selected, you must press 'Display' to start displaying."
-msgstr ""
-"³Æ¹àÌܤ¬ÆþÎϤµ¤ì¤ë¤È¤¹¤°¤Ëɽ¼¨¤ò¹¹¿·¤·¤Þ¤¹¡£¤³¤Î¹àÌܤ¬ÁªÂò¤µ¤ì¤Æ¤¤¤Ê¤¤»þ¤Ë"
-"¤Ï¡¢¡Öɽ¼¨¡×¥Ü¥¿¥ó¤ò²¡¤¹¤È¹¹¿·¤µ¤ì¤Þ¤¹¡£"
-
-#: gtkpod.glade:2673
-msgid "Start display automatically"
-msgstr "¼«Æ°Åª¤Ëɽ¼¨¤ò¹¹¿·¤¹¤ë"
-
-#: gtkpod.glade:2746
-msgid "Sorttab: "
-msgstr "¥½¡¼¥È¥¿¥Ö: "
-
-#: gtkpod.glade:2786
-msgid "     "
-msgstr ""
-
-#: gtkpod.glade:2808
-msgid "Category: "
-msgstr "¥«¥Æ¥´¥ê: "
-
-#: gtkpod.glade:2885
-msgid "Please specify a time interval"
-msgstr "´ü´Ö¤ò»ØÄꤷ¤Æ¤¯¤À¤µ¤¤"
-
-#: gtkpod.glade:2930
-msgid "Lower Margin"
-msgstr "²¼¸Â"
-
-#: gtkpod.glade:2977 gtkpod.glade:3183
-msgid "Time:"
-msgstr "»þ¹ï:"
-
-#: gtkpod.glade:3020 gtkpod.glade:3226
-msgid ":"
-msgstr ""
-
-#: gtkpod.glade:3093
-msgid "No lower margin"
-msgstr "²¼¸Â¤ò»ØÄꤷ¤Ê¤¤"
-
-#: gtkpod.glade:3136
-msgid "Upper margin"
-msgstr "¾å¸Â"
-
-#: gtkpod.glade:3299
-msgid "No upper margin"
-msgstr "¾å¸Â¤ò»ØÄꤷ¤Ê¤¤"
-
-#: gtkpod.glade:3397
-msgid "Sorting Options"
-msgstr "¥½¡¼¥È¤ÎÀßÄê"
-
-#: gtkpod.glade:3427
 #, fuzzy
-msgid "<b>Sort Order</b>"
-msgstr "<b>¥½¡¼¥È¥¿¥Ö</b>"
+#~ msgid "Update Tracks"
+#~ msgstr "̤ɾ²Á¤Î¶Ê"
 
-#: gtkpod.glade:3454 gtkpod.glade:4704 gtkpod.glade:7682 gtkpod.glade:7860
-#: gtkpod.glade:8031 gtkpod.glade:8108 gtkpod.glade:8163 gtkpod.glade:8239
-#: gtkpod.glade:8396 gtkpod.glade:8522 gtkpod.glade:8879 gtkpod.glade:9338
-#: gtkpod.glade:9700 gtkpod.glade:10487 gtkpod.glade:10644 gtkpod.glade:10801
-#: gtkpod.glade:10922 gtkpod.glade:10975 gtkpod.glade:11132 gtkpod.glade:11389
-#: gtkpod.glade:11443 gtkpod.glade:11554 gtkpod.glade:11657 gtkpod.glade:11813
-#: gtkpod.glade:12027 gtkpod.glade:12248 gtkpod.glade:12386 gtkpod.glade:12752
-#: gtkpod.glade:12870 gtkpod.glade:13044 gtkpod.glade:13279 gtkpod.glade:13381
-msgid "    "
-msgstr ""
+#~ msgid "Normalize"
+#~ msgstr "²»Î̤ÎÊ¿¶Ñ²½"
 
-#: gtkpod.glade:3482
-#, fuzzy
-msgid ""
-"In order to save the displayed track order to the iPod choose 'Save "
-"Displayed Track Order' from the 'Edit' menu or select 'Auto Store' below."
-msgstr ""
-"Ãí°Õ: ¥É¥é¥Ã¥°¥¢¥ó¥É¥É¥í¥Ã¥×¤ÇÊÔ½¸¤µ¤ì¤¿¶Ê½ç¤Ï¾ï¤Ë iPod ¤ËÊݸ¤µ¤ì¤Þ¤¹¡£¼«Æ°"
-"ʤٴ¹¤¨¤Ë¤è¤ë¶Ê½ç¤ò iPod ¤ËÊݸ¤¹¤ë¤Ë¤Ï¡¢¡ÖÊÔ½¸¡×¥á¥Ë¥å¡¼¤Î¡Ö¸½ºß¤Î¶Ê½ç¤òÊÝ"
-"¸¡×¤Î¹àÌܤ«¡¢¾å¤Î¡Ö¼«Æ°Êݸ¡×¤òÍ­¸ú¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£"
+#~ msgid "Update Podcasts"
+#~ msgstr "Podcast ¤Î¹¹¿·"
 
-#: gtkpod.glade:3865
-msgid "Ascending"
-msgstr "¾º½ç"
+#~ msgid "Podcasts Preferences"
+#~ msgstr "Podcast ¤ÎÀßÄê"
 
-#: gtkpod.glade:3909
-msgid "Descending"
-msgstr "¹ß½ç"
+#~ msgid "file not found"
+#~ msgstr "¥Õ¥¡¥¤¥ë¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
 
-#: gtkpod.glade:3953
-msgid "None"
-msgstr "̵»ØÄê"
+#~ msgid "Unmounting of '%s' (%s) unsuccessful."
+#~ msgstr "''%s' (%s) ¤Î¥¢¥ó¥Þ¥¦¥ó¥È¤Ë¼ºÇÔ¤·¤¿¤·¤¿¡£"
 
-#: gtkpod.glade:4042
-msgid "Sorttabs"
-msgstr "¥½¡¼¥È¥¿¥Ö"
+#~ msgid "Unmounting of '%s' unsuccessful."
+#~ msgstr "''%s' ¤Î¥¢¥ó¥Þ¥¦¥ó¥È¤Ë¼ºÇÔ¤·¤¿¤·¤¿¡£"
 
-#: gtkpod.glade:4087
-msgid "Tracks"
-msgstr "¶Ê¥ê¥¹¥È"
+#~ msgid "Update"
+#~ msgstr "¹¹¿·"
 
-#: gtkpod.glade:4240
-msgid "Auto Store"
-msgstr "¼«Æ°Êݸ"
+#~ msgid "Sync Dirs"
+#~ msgstr "¥Ç¥£¥ì¥¯¥È¥ê¤ÎƱ´ü"
 
-#: gtkpod.glade:4285 gtkpod.glade:4331
-msgid "Please refer to the notice below."
-msgstr "²¼µ­¤ÎÃí°Õ¤ò»²¾È¤·¤Æ¤¯¤À¤µ¤¤¡£"
+#~ msgid "Sync dirs of selected entry in which sort tab?"
+#~ msgstr "¤É¤Î¥½¡¼¥È¥¿¥Ö¤ÇÁªÂò¤µ¤ì¤¿¥Ç¥£¥ì¥¯¥È¥ê¤ò¹¹¿·¤·¤Þ¤¹¤«¡©"
 
-#: gtkpod.glade:4563
-msgid "Sort tracks according to: "
-msgstr "¶Ê½ç¤ò¼¡¤Î½ç¤Çʤٴ¹¤¨: "
+#~ msgid "Syncing directory '%s'"
+#~ msgstr "¥Ç¥£¥ì¥¯¥È¥ê '%s' ¤ÎƱ´ü½èÍýÃæ"
 
-#: gtkpod.glade:4593
-msgid ""
-"You can also use the table headers, but this allows you to sort according to "
-"a column that is not displayed."
-msgstr ""
-"ɽ¤Î¥Ø¥Ã¥À¤òÁàºî¤·¤Æ¤âʤٴ¹¤¨¤Ï¤Ç¤­¤Þ¤¹¤¬¡¢¤³¤Îµ¡Ç½¤ò»È¤¦¤È¡¢É½¼¨¤µ¤ì¤Æ¤¤¤Ê"
-"¤¤¹àÌܤò»È¤Ã¤Æʤٴ¹¤¨¤ë¤³¤È¤¬²Äǽ¤Ë¤Ê¤ê¤Þ¤¹¡£"
+#~ msgid "Syncing completed. No files deleted."
+#~ msgstr "Ʊ´ü½èÍý¤¬½ªÎ»¤·¤Þ¤·¤¿¡£ºï½ü¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤Ï¤¢¤ê¤Þ¤»¤ó¡£"
 
-#: gtkpod.glade:4629
-msgid ""
-"If checked, sorting will be case sensitive. Please note that case sensitive "
-"sorting will not work well with most charsets."
-msgstr ""
-"ʤٴ¹¤¨¤ÎºÝ¤Ë¡¢¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È¤ÎÂçʸ»ú¤È¾®Ê¸»ú¤ò¶èÊ̤·¤Þ¤¹¡£¥¢¥ë¥Õ¥¡¥Ù¥Ã¥È°Ê"
-"³°¤Î¤Û¤È¤ó¤É¤Îʸ»ú¤Ë¤ÏÂбþ¤·¤Æ¤¤¤Þ¤»¤ó¡£"
+#~ msgid "Never delete any files when syncing"
+#~ msgstr "Ʊ´ü½èÍý¤Ç¥Õ¥¡¥¤¥ë¤òºï½ü¤·¤Ê¤¤"
 
-#: gtkpod.glade:4631
-msgid "Sorting case sensitive"
-msgstr "ʤٴ¹¤¨¤ÎºÝ¤ËÂçʸ»ú¾®Ê¸»ú¤ò¶èÊ̤¹¤ë"
+#~ msgid "Syncing completed."
+#~ msgstr "Ʊ´ü½èÍý¤¬½ªÎ»¤·¤Þ¤·¤¿¡£"
 
-#: gtkpod.glade:4677
-msgid "<b>Ignore Frequent Words</b>"
-msgstr ""
+#~ msgid "Syncing aborted"
+#~ msgstr "Ʊ´ü½èÍý¤ÏÃæÃǤµ¤ì¤Þ¤·¤¿¡£"
 
-#: gtkpod.glade:4769
-msgid "Ignore these words when at the beginning of the following fields:"
-msgstr ""
+#~ msgid "No tracks in selection"
+#~ msgstr "¶Ê¤¬ÁªÂò¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
 
-#: gtkpod.glade:5040
-msgid "gtkpod Info"
-msgstr ""
+#~ msgid "'%s' is not a directory. Ignored.\n"
+#~ msgstr "'%s' ¤Ï¥Ç¥£¥ì¥¯¥È¥ê¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£Ìµ»ë¤·¤Þ¤¹¡£\n"
 
-#: gtkpod.glade:5339 gtkpod.glade:5414 gtkpod.glade:5439 gtkpod.glade:6065
-#: gtkpod.glade:6198
-msgid "      "
-msgstr ""
+#~ msgid ""
+#~ "No directory names were stored. Make sure that you enable 'Write extended "
+#~ "information' in the Export section of the preferences at the time of "
+#~ "importing files.\n"
+#~ "\n"
+#~ "To synchronize directories now, activate the duplicate detection ('Don't "
+#~ "allow file duplication') in the Import section and add the directories "
+#~ "you want to sync again.\n"
+#~ msgstr ""
+#~ "¥Ç¥£¥ì¥¯¥È¥ê̾¤¬µ­Ï¿¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£¥Õ¥¡¥¤¥ë¤ò¥¤¥ó¥Ý¡¼¥È¤·¤¿»þ¤Ë¡¢ÀßÄê¥á"
+#~ "¥Ë¥å¡¼¤Î¡Ö¥¨¥¯¥¹¥Ý¡¼¥È¡×Íó¤ÎÃæ¤Ë¤¢¤ë¡¢¡Ö³ÈÄ¥¾ðÊó¤ò½ñ¤­¹þ¤à¡×¤È¤¤¤¦¹àÌܤò"
+#~ "¥Á¥§¥Ã¥¯¤·¤Æ¤ª¤¤¤Æ¤¯¤À¤µ¤¤¡£\n"
+#~ "\n"
+#~ "¥Ç¥£¥ì¥¯¥È¥ê¤ÎƱ´ü¤òº£¹Ô¤¦¤¿¤á¤Ë¤Ï¡¢ÀßÄê¥á¥Ë¥å¡¼¤Î¡Ö¥¤¥ó¥Ý¡¼¥È¡×Íó¤ÎÃæ¤Ë¤¢"
+#~ "¤ë¡¢¡Ö½ÅÊ£¤Î¸¡½Ð¡×¤ò¥ª¥ó¤Ë¤·¤Æ¡¢ºÆ¤ÓƱ´ü½èÍý¤ò¹Ô¤Ã¤Æ¤¯¤À¤µ¤¤¡£\n"
 
-#: gtkpod.glade:5692
-msgid "Number of tracks"
-msgstr "¶Ê¿ô"
+#~ msgid "No valid directories have been found. Sync aborted.\n"
+#~ msgstr "Àµ¤·¤¤¥Ç¥£¥ì¥¯¥È¥ê¤¬¸«ÉÕ¤«¤ê¤Þ¤»¤ó¡£Æ±´ü½èÍý¤òÃæ»ß¤·¤Þ¤¹¡£\n"
 
-#: gtkpod.glade:5718
-msgid "Play time"
-msgstr "±éÁÕ»þ´Ö"
+#~ msgid ""
+#~ "The (former) contents of the following directories will be removed from "
+#~ "the database:\n"
+#~ "\n"
+#~ msgstr ""
+#~ "°Ê²¼¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë´Þ¤Þ¤ì¤ëÆâÍƤϡ¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤éºï½ü¤µ¤ì¤Þ¤¹:\n"
+#~ "\n"
 
-#: gtkpod.glade:5745
-msgid "File size"
-msgstr "¥Õ¥¡¥¤¥ë¥µ¥¤¥º"
+#~ msgid ""
+#~ "The following directories will be synchronized:\n"
+#~ "\n"
+#~ msgstr ""
+#~ "°Ê²¼¤Î¥Ç¥£¥ì¥¯¥È¥ê¤òƱ´ü¤µ¤»¤Þ¤¹:\n"
+#~ "\n"
 
-#: gtkpod.glade:5771
-msgid "Number of playlists"
-msgstr "¥×¥ì¥¤¥ê¥¹¥È¤Î¿ô"
+#~ msgid "Synchronize directories"
+#~ msgstr "¥Ç¥£¥ì¥¯¥È¥ê¤ÎƱ´ü"
 
-#: gtkpod.glade:5797
-msgid "Deleted tracks"
-msgstr "ºï½ü¤µ¤ì¤¿¶Ê"
+#~ msgid "Syncing contacts, calendar and notes..."
+#~ msgstr "¥¢¥É¥ì¥¹Ä¢¡¦¥«¥ì¥ó¥À¡¼¡¦¥Î¡¼¥È¤ÎƱ´üÃæ..."
 
-#: gtkpod.glade:5823
-msgid "File size (deleted)"
-msgstr "ºï½ü¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¥µ¥¤¥º"
+#~ msgid "_Synchronize Directories"
+#~ msgstr "¥Ç¥£¥ì¥¯¥È¥ê¤òƱ´ü¤µ¤»¤ë(_S)"
 
-#: gtkpod.glade:5849
-#, fuzzy
-msgid "Non-transferred tracks"
-msgstr "̤žÁ÷¤Î¶Ê¿ô"
+#~ msgid ""
+#~ "Where you mounted your iPod's filesystem. Usually '/mnt/ipod/' or similar."
+#~ msgstr ""
+#~ "iPod¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò¥Þ¥¦¥ó¥È¤·¤¿¾ì½ê¡£Î㤨¤Ð '/mnt/ipod/' ¤Ê¤É¡£"
 
-#: gtkpod.glade:5875
-#, fuzzy
-msgid "File size (non-transferred)"
-msgstr "̤žÁ÷¤Î¥Õ¥¡¥¤¥ë¥µ¥¤¥º"
+#~ msgid ""
+#~ "If you check this option, tracks that have been removed from the synced "
+#~ "directories will be removed from the iPod as well."
+#~ msgstr ""
+#~ "¤³¤Î¹àÌܤòÍ­¸ú¤Ë¤¹¤ë¤È¡¢Æ±´ü¸µ¤Çºï½ü¤µ¤ì¤¿¶Ê¤ò¡¢iPod¾å¤«¤é¤â¾Ãµî¤·¤Þ¤¹¡£"
 
-#: gtkpod.glade:5901
-msgid "Effective free space"
-msgstr ""
+#~ msgid "Delete tracks that have been removed"
+#~ msgstr "Ʊ´ü¸µ¤Çºï½ü¤µ¤ì¤¿¶Ê¤ò¾Ãµî¤¹¤ë"
 
-#: gtkpod.glade:5927
-msgid ""
-"Total\n"
-"(iPod)"
-msgstr ""
+#~ msgid "Confirm before removing tracks"
+#~ msgstr "¶Ê¤òºï½ü¤¹¤ëÁ°¤Ë³Îǧ¤¹¤ë"
 
-#: gtkpod.glade:5955
-#, fuzzy
-msgid ""
-"Selected\n"
-"Playlist"
-msgstr "¥×¥ì¥¤¥ê¥¹¥È(_P)"
+#~ msgid ""
+#~ "Before removing tracks completely when\n"
+#~ "synchronizing directories"
+#~ msgstr "¥Ç¥£¥ì¥¯¥È¥ê¤ÎƱ´ü¤ò¹Ô¤¦ºÝ¤Ë¶Ê¤òºï½ü¤¹¤ë»þ"
 
-#: gtkpod.glade:5983
 #, fuzzy
-msgid ""
-"Displayed\n"
-"Tracks"
-msgstr "ɽ¼¨¤µ¤ì¤Æ¤¤¤ë¶Ê(_D)"
+#~ msgid "Add"
+#~ msgstr "ÅÐÏ¿Æü"
 
-#: gtkpod.glade:6011
 #, fuzzy
-msgid ""
-"Selected\n"
-"Tracks"
-msgstr "ÁªÂò¤µ¤ì¤Æ¤¤¤ë¶Ê(_S)"
+#~ msgid "Delete"
+#~ msgstr "ºï½ü¤µ¤ì¤¿¶Ê"
 
-#: gtkpod.glade:6039
-msgid ""
-"Total\n"
-"(local)"
-msgstr ""
-
-#: gtkpod.glade:6436
-msgid "label21"
-msgstr ""
-
-#: gtkpod.glade:6527
-msgid "Never show this dialogue again"
-msgstr "¤³¤Î¼ÁÌä¤òÆóÅÙ¤Èɽ¼¨¤·¤Ê¤¤"
-
-#: gtkpod.glade:6572 gtkpod.glade:6898
-msgid "window1"
-msgstr ""
-
-#: gtkpod.glade:6629
-msgid "_M3U"
-msgstr ""
-
-#: gtkpod.glade:6648
-msgid "_PLS"
-msgstr ""
-
-#: gtkpod.glade:6686
-msgid ""
-"If available, the local copy of the track is referenced in the playlist. "
-"Otherwise the file on the iPod is used."
-msgstr ""
-
-#: gtkpod.glade:6688
-msgid "_Prefer Local"
-msgstr ""
-
-#: gtkpod.glade:6706
-msgid ""
-"The local copy of the track is referenced in the playlist. If the track is "
-"not available locally, an error message is displayed."
-msgstr ""
-
-#: gtkpod.glade:6708
-msgid "_Local"
-msgstr ""
-
-#: gtkpod.glade:6727
-msgid "The track on the iPod is referenced in the playlist file."
-msgstr ""
-
-#: gtkpod.glade:6729
-msgid "_iPod"
-msgstr ""
-
-#: gtkpod.glade:6762
 #, fuzzy
-msgid "Playlist type:"
-msgstr "¥×¥ì¥¤¥ê¥¹¥È"
+#~ msgid "<b>File options</b>"
+#~ msgstr "<b>ºï½ü¤Î³Îǧ</b>"
 
-#: gtkpod.glade:6787
-msgid "Source:"
-msgstr ""
-
-#: gtkpod.glade:6826
-msgid "Template for info field: "
-msgstr ""
-
-#: gtkpod.glade:6847
 #, fuzzy
-msgid ""
-"Determines how the string for the info field should be constructed, e.g '%a/%"
-"A/%T - %t.mp3' or '%o'.  You can separate several templates by semicolons -- "
-"gtkpod will determine which one to use by the filename extension given. "
-"Artist: %a, album: %A, composer: %c, title: %t, genre: %G, track nr: %T, CD "
-"nr: %C, year: %Y, original filename (requires extended information file): %"
-"o, the character '%': %%."
-msgstr ""
-"iPod¤«¤é¥³¥Ô¡¼¤·¤¿¶Ê¤ËÉÕ¤±¤é¤ì¤ë¥Õ¥¡¥¤¥ë̾¤òÀßÄꤷ¤Þ¤¹¡£Îã:'%A/%d%t - %n' ¤ä "
-"'%o' ¤Ê¤É¡£%A: ¥¢¡¼¥Æ¥£¥¹¥È; %n: ¥¿¥¤¥È¥ë; %t: ¥È¥é¥Ã¥¯No.; %o: ¸µ¤Î¥Õ¥¡¥¤¥ë"
-"̾ (³ÈÄ¥¾ðÊó¥Õ¥¡¥¤¥ë¤¬É¬Í×)"
+#~ msgid " days old"
+#~ msgstr "Æü"
 
-#: gtkpod.glade:6878 gtkpod.glade:7108
 #, fuzzy
-msgid "gtkpod options"
-msgstr "ÉÔÌÀ¤Ê¥ª¥×¥·¥ç¥ó: %s\n"
+#~ msgid "Delete once copied to iPod"
+#~ msgstr "iPod¤«¤é1¶Ê´°Á´¤Ëºï½ü¤·¤Þ¤·¤¿"
 
-#: gtkpod.glade:6934
-msgid "Filename Format: "
-msgstr "¥Õ¥¡¥¤¥ë̾¤Î½ñ¼°: "
-
-#: gtkpod.glade:6955
 #, fuzzy
-msgid ""
-"Determines the filename of tracks you copy from the iPod, e.g '%a/%A/%T - %t."
-"mp3' or '%o'.  You can separate several patterns by semicolons -- gtkpod "
-"will determine which one to use by the filename extension given. Artist: %a, "
-"album: %A, composer: %c, title: %t, genre: %G, track nr: %T, CD nr: %C, "
-"year: %Y, original filename (requires extended information file): %o, "
-"current playlist: %p, the character '%': %%."
-msgstr ""
-"iPod¤«¤é¥³¥Ô¡¼¤·¤¿¶Ê¤ËÉÕ¤±¤é¤ì¤ë¥Õ¥¡¥¤¥ë̾¤òÀßÄꤷ¤Þ¤¹¡£Îã:'%A/%d%t - %n' ¤ä "
-"'%o' ¤Ê¤É¡£%A: ¥¢¡¼¥Æ¥£¥¹¥È; %n: ¥¿¥¤¥È¥ë; %t: ¥È¥é¥Ã¥¯No.; %o: ¸µ¤Î¥Õ¥¡¥¤¥ë"
-"̾ (³ÈÄ¥¾ðÊó¥Õ¥¡¥¤¥ë¤¬É¬Í×)"
+#~ msgid "Create podcast logfile at:"
+#~ msgstr "¥×¥ì¥¤¥ê¥¹¥È¤òºîÀ®"
 
-#: gtkpod.glade:6960
-msgid " "
-msgstr " "
-
-#: gtkpod.glade:6982
 #, fuzzy
-msgid ""
-"Normally the charset specified when first importing the track will be used "
-"for the filename. If you set this option you can set a different charset "
-"with the charset selector (Preferences/'Adding/Updating/Syncing'). Note: the "
-"charset info is stored in the extended information file (see "
-"Preferences/'Writing of the iTunesDB'). Tracks imported before V0.51 will "
-"have no charset stored. Instead the charset specified will be used."
-msgstr ""
-"Ä̾ï¤Ï¡¢ºÇ½é¤Ë¶Ê¤òÊݸ¤·¤¿»þ¤Ë»ØÄꤵ¤ì¤¿Ê¸»ú¥³¡¼¥É¤ò¥Õ¥¡¥¤¥ë̾¤Ë¤â»ÈÍѤ·¤Þ¤¹"
-"¤¬¡¢¤³¤Î¹àÌܤòÍ­¸ú¤Ë¤¹¤ë¤È¡¢¡ÖÄɲÃ/¹¹¿·/Ʊ´ü¡×¤Î¹àÌܤǻØÄꤷ¤¿Ê¸»ú¥³¡¼¥É¤ò¤«"
-"¤ï¤ê¤Ë»ÈÍѤǤ­¤Þ¤¹¡£Ãí°Õ: ʸ»ú¥³¡¼¥É¤Î¾ðÊó¤Ï³ÈÄ¥¾ðÊó¥Õ¥¡¥¤¥ë(¡ÖiTunesDB¤Ø¤Î½ñ"
-"¤­¹þ¤ß¡×¤ò»²¾È)¤Ëµ­Ï¿¤µ¤ì¤Þ¤¹¡£¥Ð¡¼¥¸¥ç¥ó0.51°ÊÁ°¤Îgtkpod¤ÇÅÐÏ¿¤µ¤ì¤¿¶Ê¤Ë¤Ï¤³"
-"¤Î¾ðÊ󤬵­Ï¿¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£¤³¤Î¾ì¹ç¡¢¾å¤Ç»ØÄꤵ¤ì¤¿Ê¸»ú¥³¡¼¥É¤¬º£¸å»È¤ï¤ì¤ë"
-"¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£"
+#~ msgid "<b>iPod options</b>"
+#~ msgstr "<b>¥Ä¡¼¥ë¥Á¥Ã¥×</b>"
 
-#: gtkpod.glade:6984
-msgid ""
-"Use selected charset (Preferences/'Adding/Updating/ Syncing')\n"
-"for this filename."
-msgstr ""
-"»ØÄꤵ¤ì¤¿Ê¸»ú¥³¡¼¥É (¡ÖÀßÄê¡×Æâ¡ÖÅÐÏ¿/¹¹¿·/Ʊ´ü¡×¤ò»²¾È)\n"
-"¤ò¥Õ¥¡¥¤¥ë̾¤Ë¤â»ÈÍѤ¹¤ë¡£"
-
-#: gtkpod.glade:7003
-msgid ""
-"When copying from iPod no check is performed on whether the destination file "
-"exists. Enabling this option will make gtkpod check whether the length of "
-"the destination file is the same as the file in the iPod. If so the file is "
-"skipped, allowing a quick sync of the iPod's contents."
-msgstr ""
-
-#: gtkpod.glade:7005
-msgid "Check for existing files when copying from iPod."
-msgstr ""
-
-#: gtkpod.glade:7169
-msgid "Playlist name:"
-msgstr "¥×¥ì¥¤¥ê¥¹¥È¤Î̾Á°:"
-
-#: gtkpod.glade:7234
-msgid "Match al_l of the following"
-msgstr "°Ê²¼¤Ë³ºÅö¤¹¤ë¤â¤Î¤¹¤Ù¤Æ(_l)"
-
-#: gtkpod.glade:7253
-msgid "Match an_y of the following"
-msgstr ""
-
-#: gtkpod.glade:7273
-msgid "_Ignore rules"
-msgstr "¥ë¡¼¥ë¤ò̵»ë"
-
-#: gtkpod.glade:7343
-msgid "Rules"
-msgstr "¥ë¡¼¥ë"
-
-#: gtkpod.glade:7376
-msgid "_Limit to"
-msgstr "À©¸Â (_L)"
-
-#: gtkpod.glade:7425
-msgid "   Sort by:"
-msgstr "   ¥½¡¼¥È½ç:"
-
-#: gtkpod.glade:7471
-msgid "Match only _checked tracks"
-msgstr ""
-
-#: gtkpod.glade:7503
-msgid "Live _updating"
-msgstr ""
-
-#: gtkpod.glade:7594
-msgid "Preferences"
-msgstr "ÀßÄê"
-
-#: gtkpod.glade:7655
-msgid "<b>Import</b>"
-msgstr "<b>¥¤¥ó¥Ý¡¼¥È</b>"
-
-#: gtkpod.glade:7715
-msgid "iPod Mount _Point:"
-msgstr "iPod¤Î¥Þ¥¦¥ó¥È¾ì½ê(_P):"
-
-#: gtkpod.glade:7737
-msgid ""
-"Where you mounted your iPod's filesystem. Usually '/mnt/ipod/' or similar."
-msgstr "iPod¤Î¥Õ¥¡¥¤¥ë¥·¥¹¥Æ¥à¤ò¥Þ¥¦¥ó¥È¤·¤¿¾ì½ê¡£Î㤨¤Ð '/mnt/ipod/' ¤Ê¤É¡£"
-
-#: gtkpod.glade:7765
-msgid ""
-"On startup gtkpod will call 'mount <ipod mountpoint>', on exit a 'umount "
-"<ipod mountpoint>' call is carried out. For more complicated arrangements "
-"please use the ~/.gtkpod/gtkpod.in and ~/.gtkpod/gtkpod.out scripts."
-msgstr ""
-"gtkpod ¤Îµ¯Æ°»þ¤Ë 'mount <ipod¤Î¥Þ¥¦¥ó¥È¾ì½ê>' ¤ò¡¢½ªÎ»»þ¤Ë'umount <ipod¤Î¥Þ"
-"¥¦¥ó¥È¾ì½ê>' ¤ò¤½¤ì¤¾¤ì¼Â¹Ô¤¹¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£¤è¤êÊ£»¨¤ÊÁàºî¤ò¤¹¤ë¾ì¹ç¤Ë¤Ï¡¢"
-"~/.gtkpod/gtkpod.in ¤È ~/.gtkpod/gtkpod.out ¤È¤¤¤¦¥¹¥¯¥ê¥×¥È¤ò»ÈÍѤ·¤Æ¤¯¤À¤µ"
-"¤¤¡£"
-
-#: gtkpod.glade:7767
-msgid "Handle mounting/unmounting of iPod drive"
-msgstr "iPod¤Î¥Þ¥¦¥ó¥È/¥¢¥ó¥Þ¥¦¥ó¥È¤ò gtkpod ¤Ç¹Ô¤¦"
-
-#: gtkpod.glade:7787
-msgid "Automatically import iTunesDB on startup"
-msgstr "µ¯Æ°»þ¤Ë¼«Æ°Åª¤Ë iTunesDB ¤òÆɤ߹þ¤à"
-
-#: gtkpod.glade:7833
-msgid "<b>Adding/Updating/Syncing</b>"
-msgstr "<b>ÅÐÏ¿/¹¹¿·/Ʊ´ü</b>"
-
-#: gtkpod.glade:7893
 #, fuzzy
-msgid "_Encoding (ID3, files):"
-msgstr "ʸ»ú¥³¡¼¥É(_C) (ID3,¥Õ¥¡¥¤¥ë):"
+#~ msgid "Automatically sync to iPod"
+#~ msgstr "¼«Æ°Åª¤ËÁªÂò..."
 
-#: gtkpod.glade:7924
-msgid ""
-"gtkpod expects the ID3 tags and the filenames to be in the encoding "
-"specified here. You can change it for consecutive 'Add Files' and 'Add Dirs' "
-"operation. 'System Charset' is the charset used by your current locale."
-msgstr ""
-"gtkpod¤Ï¤³¤³¤Ç»ØÄꤵ¤ì¤¿Ê¸»ú¥³¡¼¥É¤¬¡¢ID3¤Î¥¿¥°¤ä¥Õ¥¡¥¤¥ë̾¤Ë»È¤ï¤ì¤Æ¤¤¤ë¤â¤Î"
-"¤È¤·¤Æ½èÍý¤·¤Þ¤¹¡£¡Ö¥Õ¥¡¥¤¥ë¤ÎÄɲáפä¡Ö¥Ç¥£¥ì¥¯¥È¥ê¤´¤ÈÄɲáפò¼Â¹Ô¤¹¤ëÁ°¤Ë"
-"¤³¤ÎÀßÄê¤òÊѹ¹¤¹¤ì¤Ð¡¢¤³¤ì¤é¤Î½èÍý¤ËÀßÄ꤬ȿ±Ç¤µ¤ì¤Þ¤¹¡£¡Ö¥·¥¹¥Æ¥àʸ»ú¡×¤òÁª"
-"Âò¤¹¤ë¤È¡¢¥í¥±¡¼¥ë¤Ç»ØÄꤵ¤ì¤¿¥³¡¼¥É¤¬»È¤ï¤ì¤Þ¤¹¡£"
-
-#: gtkpod.glade:7961
-msgid ""
-"Normally the charset specified when first importing the track will be used "
-"to update the track information. If you have chosen a wrong charset when "
-"first importing a track and want to correct it using the 'Update Track' "
-"function, you must check this option. Note: the charset info is stored in "
-"the extended information file (see 'Writing of iTunesDB' below) and tracks "
-"imported before V0.51 will have no charset stored. Instead the charset "
-"specified above will be used then."
-msgstr ""
-"Ä̾ï¤Ï¡¢¶Ê¤ò¥¤¥ó¥Ý¡¼¥È¤¹¤ëºÝ¤Ë»ØÄꤵ¤ì¤¿Ê¸»ú¥³¡¼¥É¤¬¤½¤Î¸å¤â»È¤ï¤ì¤Þ¤¹¤¬¡¢¤â"
-"¤·¤½¤Î»þ¤Ë´Ö°ã¤Ã¤¿Ê¸»ú¥³¡¼¥É¤ò»ØÄꤷ¤Æ¤·¤Þ¤Ã¤Æ¤¤¤Æ¡¢¡Ö¶Ê¤Î¹¹¿·¡×¤ò»È¤Ã¤Æ¤½¤ì"
-"¤òľ¤·¤¿¤¤¤Î¤Ç¤¢¤ì¤Ð¡¢¤³¤Î¹àÌܤòÍ­¸ú¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£Ãí°Õ: ʸ»ú¥³¡¼¥É¤Î¾ðÊó¤Ï"
-"³ÈÄ¥¾ðÊó¥Õ¥¡¥¤¥ë¤Ëµ­Ï¿¤µ¤ì¤Þ¤¹¤¬(¡ÖiTunesDB¤Ø¤Î½ñ¤­¹þ¤ß¡×¤Î¹àÌܤò»²¾È)¡¢¥Ð¡¼"
-"¥¸¥ç¥ó0.51°ÊÁ°¤Îgtkpod¤Ç¥¤¥ó¥Ý¡¼¥È¤µ¤ì¤¿¶Ê¤Ï¤³¤Î¾ðÊ󤬵­Ï¿¤µ¤Æ¤¤¤Þ¤»¤ó¡£¤³¤Î"
-"¾ì¹ç¡¢¤³¤³¤Ç»ØÄꤵ¤ì¤¿Ê¸»ú¥³¡¼¥É¤¬º£¸å»È¤ï¤ì¤ë¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£"
-
-#: gtkpod.glade:7963
 #, fuzzy
-msgid ""
-"Use selected encoding also when updating \n"
-"or syncing tracks"
-msgstr "ÁªÂò¤µ¤ì¤¿Ê¸»ú¥³¡¼¥É¤ò¹¹¿·¡¦Æ±´ü½èÍý¤Ç¤â»ÈÍѤ¹¤ë"
+#~ msgid "Delete from iPod when "
+#~ msgstr "iPod¤«¤éºï½ü"
 
-#: gtkpod.glade:7983
-msgid "If you check this, gtkpod will descend into subdirectories recursively."
-msgstr "¤³¤Î¹àÌܤòÍ­¸ú¤Ë¤¹¤ë¤È¡¢gtkpod¤Ï¥µ¥Ö¥Ç¥£¥ì¥¯¥È¥ê¤òºÆµ¢Åª¤Ëé¤ê¤Þ¤¹¡£"
-
-#: gtkpod.glade:7985
-msgid "Add directories recursively"
-msgstr "¥Ç¥£¥ì¥¯¥È¥ê¤òºÆµ¢Åª¤ËÄɲ乤ë"
-
-#: gtkpod.glade:8004
 #, fuzzy
-msgid "Duplicate Recognition is based on a (modified) md5 hash over the file."
-msgstr "md5¤òÍøÍѤ·¤¿½ÅÊ£¥Á¥§¥Ã¥¯¤ò¹Ô¤¦¤è¤¦¤Ë¤Ê¤ê¤Þ¤¹¡£"
+#~ msgid "Delete from iPod if podcast has been played"
+#~ msgstr "ºÇ¸å¤Ë±éÁÕ¤µ¤ì¤¿¤È¤­¤ÎÆüÉդȻþ¹ï"
 
-#: gtkpod.glade:8006
-msgid "Don't allow file duplication"
-msgstr "¥Õ¥¡¥¤¥ë¤Î½ÅÊ£¤òµö¤µ¤Ê¤¤"
-
-#: gtkpod.glade:8052
-msgid ""
-"Display the list of duplicates that have been detected after adding files."
-msgstr "¥Õ¥¡¥¤¥ë¤òÄɲä·¤¿ºÝ¤Ëȯ¸«¤·¤¿¡¢½ÅÊ£¤¹¤ë¶Ê¤Î¥ê¥¹¥È¤òɽ¼¨¤·¤Þ¤¹¡£"
-
-#: gtkpod.glade:8054
-msgid "Display info about detected duplicates"
-msgstr "½ÅÊ£¤ò¸«¤Ä¤±¤¿ºÝ¤ËÊó¹ð¤¹¤ë"
-
-#: gtkpod.glade:8080
-msgid ""
-"If the filename (full path) of an existing track matches that of a track to "
-"be added, this option allows you to update the information about the "
-"existing track rather than just skipping the track altogether. No update "
-"will take place if the file hasn't changed and you have selected the 'Don't "
-"allow file duplication' option above."
-msgstr ""
-"¤¹¤Ç¤Ëµ­Ï¿¤µ¤ì¤Æ¤¤¤ë¶Ê¤ÈƱ¤¸¥Õ¥¡¥¤¥ë̾(¥Õ¥ë¥Ñ¥¹¤Ç)¤ò»ý¤Ä¶Ê¤òÄɲ䷤褦¤È¤·¤¿"
-"¾ì¹ç¡¢¤³¤Î¹àÌܤ¬Í­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤È¡¢¤½¤Î¶Ê¤ò̵»ë¤¹¤ëÂå¤ï¤ê¤Ëµ­Ï¿¤µ¤ì¤Æ¤¤¤ë¶Ê"
-"¤Î¾ðÊó¤ò¹¹¿·¤·¤Þ¤¹¡£¤â¤·¥Õ¥¡¥¤¥ë¤ËÊѹ¹¤¬¤Ê¤¯¡¢¡Ö¥Õ¥¡¥¤¥ë¤Î½ÅÊ£¤òµö¤µ¤Ê¤¤¡×¤Î"
-"¹àÌܤòÍ­¸ú¤Ë¤·¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¹¹¿·¤Ï¤Ê¤µ¤ì¤Þ¤»¤ó¡£"
-
-#: gtkpod.glade:8082
-msgid ""
-"When adding dirs/files, update information of\n"
-"existing tracks with identical filenames"
-msgstr ""
-"¥Õ¥¡¥¤¥ë¤ä¥Ç¥£¥ì¥¯¥È¥ê¤òÄɲ乤ëºÝ¤Ë¡¢Æ±¤¸¥Õ¥¡¥¤¥ë̾¤Î\n"
-"¶Ê¤¬¤¹¤Ç¤Ë¤¢¤Ã¤¿¤é¾ì¹ç¤Ë¤Ï¡¢¤½¤Á¤é¤ò¹¹¿·¤¹¤ë"
-
-#: gtkpod.glade:8129
-msgid "Display a list of tracks that could actually be updated."
-msgstr "¼ÂºÝ¤Ë¹¹¿·¤µ¤ì¤¿¶Ê¤Î¥ê¥¹¥È¤òɽ¼¨¤·¤Þ¤¹¡£"
-
-#: gtkpod.glade:8131
-msgid "Display info about updated tracks"
-msgstr "¹¹¿·¤µ¤ì¤¿¶Ê¤Î¾ðÊó¤òɽ¼¨¤¹¤ë"
-
-#: gtkpod.glade:8184
-msgid "Display a list of tracks that could not be updated."
-msgstr "¼ÂºÝ¤Ë¤Ï¹¹¿·¤µ¤ì¤Ê¤«¤Ã¤¿¶Ê¤Î¥ê¥¹¥È¤òɽ¼¨¤·¤Þ¤¹¡£"
-
-#: gtkpod.glade:8186
-msgid "Display info about non-updated tracks"
-msgstr "¹¹¿·¤µ¤ì¤Ê¤«¤Ã¤¿¶Ê¤òɽ¼¨¤¹¤ë"
-
-#: gtkpod.glade:8212
-msgid "When syncing directories"
-msgstr "¥Ç¥£¥ì¥¯¥È¥ê¤ÎƱ´ü½èÍý»þ"
-
-#: gtkpod.glade:8267
-msgid "Confirm lists of directories"
-msgstr "¥Ç¥£¥ì¥¯¥È¥ê¤Î¥ê¥¹¥È¤ò³Îǧ¤¹¤ë"
-
-#: gtkpod.glade:8286
-msgid ""
-"If you check this option, tracks that have been removed from the synced "
-"directories will be removed from the iPod as well."
-msgstr ""
-"¤³¤Î¹àÌܤòÍ­¸ú¤Ë¤¹¤ë¤È¡¢Æ±´ü¸µ¤Çºï½ü¤µ¤ì¤¿¶Ê¤ò¡¢iPod¾å¤«¤é¤â¾Ãµî¤·¤Þ¤¹¡£"
-
-#: gtkpod.glade:8288
-msgid "Delete tracks that have been removed"
-msgstr "Ʊ´ü¸µ¤Çºï½ü¤µ¤ì¤¿¶Ê¤ò¾Ãµî¤¹¤ë"
-
-#: gtkpod.glade:8307
-msgid "This is the same option as in 'Edit/Delete Confirmation'"
-msgstr "¡ÖÊÔ½¸/ºï½ü¤Î³Îǧ¡×¤Î¹àÌܤÈƱ¤¸¤Ç¤¹"
-
-#: gtkpod.glade:8309
-msgid "Confirm before removing tracks"
-msgstr "¶Ê¤òºï½ü¤¹¤ëÁ°¤Ë³Îǧ¤¹¤ë"
-
-#: gtkpod.glade:8369
-msgid "<b>Sync</b>"
-msgstr ""
-
-#: gtkpod.glade:8417
-msgid ""
-"Highly recommended for faster import when taking advantage of the "
-"duplication recognition. Also, having the PC filenames allows writing "
-"changed ID3 tags to disk, and even to reconstruct your ipod's contents in "
-"case of file system corruption (change the \"transferred=\" entries in your "
-"backuped database)."
-msgstr ""
-"½ÅÊ£¥Á¥§¥Ã¥¯¤ò¹â®²½¤¹¤ë¤¿¤á¤Ë¤Ï¡¢¤³¤Î¹àÌܤòÍ­¸ú¤Ë¤¹¤ë»ö¤¬¶¯¤¯¿ä¾©¤µ¤ì¤Þ¤¹¡£"
-"¤Þ¤¿¡¢¥Õ¥¡¥¤¥ë̾¤òÊÝ»ý¤¹¤ë»ö¤ÇID3¥¿¥°¤ÎÊѹ¹¤òiPod¤ËÈ¿±Ç¤µ¤»¤ë»ö¤¬²Äǽ¤Ë¤Ê¤ê¡¢"
-"²¾¤ËiPod¤ÎÃæ¿È¤¬²õ¤ì¤¿¤ê¤·¤¿¾ì¹ç¤Ë¤â¡¢ºÆ¹½À®¤òÍưפˤ·¤Þ¤¹¡£(¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î"
-"¥Ð¥Ã¥¯¥¢¥Ã¥×¥Õ¥¡¥¤¥ë¤ÎÃæ¤Î \"transferred=\" ¤Î¹àÌܤòÊѹ¹¤¹¤ì¤Ð¤è¤¤)"
-
-#: gtkpod.glade:8419
 #, fuzzy
-msgid ""
-"Write extended information (PC filenames,\n"
-" MD5 hashes, encoding). Recommended."
-msgstr ""
-"³ÈÄ¥¾ðÊó(PC¾å¤Î¥Õ¥¡¥¤¥ë̾,MD5ÃÍ,ʸ»ú¥³¡¼¥É)¤ò½ñ¤­¹þ¤à¡£\n"
-"¿ä¾©¤µ¤ì¤ëÀßÄê¤Ç¤¹¡£"
-
-#: gtkpod.glade:8463 gtkpod.glade:14970
-#, fuzzy
-msgid "_General"
-msgstr "´ðËÜÀßÄê"
-
-#: gtkpod.glade:8495
-msgid "<b>Tag Reading</b>"
-msgstr "<b>¥¿¥°¤ÎÆɤ߹þ¤ß</b>"
-
-#: gtkpod.glade:8550
-msgid "Read tags from file contents (e.g. ID3 tags in MP3 files)"
-msgstr "¥Õ¥¡¥¤¥ë¤«¤é¥¿¥°¾ðÊó¤òÆɤ߹þ¤à (MP3 ¥Õ¥¡¥¤¥ë¤Î ID3 ¥¿¥°¤Ê¤É)"
-
-#: gtkpod.glade:8569 gtkpod.glade:8906
-msgid ""
-"artist: %a, album: %A, composer: %c, title: %t, genre: %G, track nr: %T, CD "
-"nr: %C, year: %Y, skip data: %*, the character '%': %%. You can separate "
-"several templates by a ';'. The first one matching the filename will be "
-"used. Example: '%a - %A/%T %t.mp3;%t.wav'."
-msgstr ""
-"¥¢¡¼¥Æ¥£¥¹¥È: %a, ¥¢¥ë¥Ð¥à: %A, ºî¶Ê¼Ô: %c, ¥¿¥¤¥È¥ë: %t, ¥¸¥ã¥ó¥ë: %G, ¥È"
-"¥é¥Ã¥¯ÈÖ¹æ: %T, CD ÈÖ¹æ: %C, ǯ: %Y, ¥¹¥­¥Ã¥×: %*, ¥Ñ¡¼¥»¥ó¥Èµ­¹æ: %%¡£¤¤¤¯¤Ä"
-"¤«¤Î¥Æ¥ó¥×¥ì¡¼¥È¤ò';' ¤Ç¶èÀڤäÆʤ٤뤳¤È¤¬¤Ç¤­¤Þ¤¹¡£ºÇ½é¤Ë¹ç¤Ã¤¿¥Æ¥ó¥×¥ì¡¼"
-"¥È¤¬»È¤ï¤ì¤Þ¤¹¡£Îã: '%a - %A/%T %t.mp3;%t.wav'."
-
-#: gtkpod.glade:8571
-msgid "Use this template to parse filename for tag information:"
-msgstr "°Ê²¼¤Î¥Æ¥ó¥×¥ì¡¼¥È¤ò¡¢¥Õ¥¡¥¤¥ë̾¤«¤é¥¿¥°¾ðÊó¤òÃê½Ð¤¹¤ë¤Î¤Ë»ÈÍѤ¹¤ë:"
-
-#: gtkpod.glade:8644
-msgid "Overwrite tags that are already set"
-msgstr "¤¹¤Ç¤Ë¤¢¥¿¥°¾ðÊó¤ò¾å½ñ¤­¤¹¤ë"
-
-#: gtkpod.glade:8677
-msgid ""
-"As a last resort set the following tags to the\n"
-"filename if they are (still) empty:"
-msgstr ""
-"ºÇ¸å¤Î¼êÃʤȤ·¤Æ¡¢°Ê²¼¤Î¥¿¥°¤¬Ì¤ÀßÄê¤Î¾ì¹ç¤Ë¥Õ¥¡¥¤¥ë̾¤ò¤½¤ÎÃͤȤ·¤Æ»ÈÍѤ¹¤ë:"
-
-#: gtkpod.glade:8852
-#, fuzzy
-msgid "<b>Artwork</b>"
-msgstr "<b>¥¤¥ó¥Ý¡¼¥È</b>"
-
-#: gtkpod.glade:8908
-msgid "Add artwork from file using the following template"
-msgstr ""
-
-#: gtkpod.glade:8960
-#, fuzzy
-msgid ""
-"Determines the name of the file with the cover art. You can separate several "
-"patterns by semicolons which will be tried in order. Artist: %a, album: %A, "
-"composer: %c, title: %t, genre: %G, track nr: %T, CD nr: %C, year: %Y, "
-"original filename (requires extended information file): %o, original "
-"filename without file extension: %O, current playlist: %p, the character "
-"'%': %%."
-msgstr ""
-"iPod¤«¤é¥³¥Ô¡¼¤·¤¿¶Ê¤ËÉÕ¤±¤é¤ì¤ë¥Õ¥¡¥¤¥ë̾¤òÀßÄꤷ¤Þ¤¹¡£Îã:'%A/%d%t - %n' ¤ä "
-"'%o' ¤Ê¤É¡£%A: ¥¢¡¼¥Æ¥£¥¹¥È; %n: ¥¿¥¤¥È¥ë; %t: ¥È¥é¥Ã¥¯No.; %o: ¸µ¤Î¥Õ¥¡¥¤¥ë"
-"̾ (³ÈÄ¥¾ðÊó¥Õ¥¡¥¤¥ë¤¬É¬Í×)"
-
-#: gtkpod.glade:8981
-#, fuzzy
-msgid "<b>Examples</b>"
-msgstr "<b>¥¤¥ó¥Ý¡¼¥È</b>"
-
-#: gtkpod.glade:9011
-msgid "folder.jpg"
-msgstr ""
-
-#: gtkpod.glade:9035
-msgid "folder"
-msgstr ""
-
-#: gtkpod.glade:9059
-msgid "../%A.jpg"
-msgstr ""
-
-#: gtkpod.glade:9083
-msgid "%A"
-msgstr ""
-
-#: gtkpod.glade:9107
-msgid "Use <i>folder.jpg</i> as cover art."
-msgstr ""
-
-#: gtkpod.glade:9131
-msgid "Use <i>folder.jpg</i>, <i>folder.png</i>..."
-msgstr ""
-
-#: gtkpod.glade:9155
-msgid "Use <i>&lt;Album&gt;.jpg</i> in the parent directory"
-msgstr ""
-
-#: gtkpod.glade:9179
-msgid "Use <i>&lt;Album&gt;.jpg</i>, <i>&lt;Album&gt;.png</i>..."
-msgstr ""
-
-#: gtkpod.glade:9203
-msgid "folder.jpg;%a.jpg"
-msgstr ""
-
-#: gtkpod.glade:9227
-msgid "First try <i>folder.jpg</i>, then <i>&lt;artist&gt;.jpg</i>"
-msgstr ""
-
-#: gtkpod.glade:9311
-msgid "<b>mserv</b>"
-msgstr ""
-
-#: gtkpod.glade:9365 gtkpod.glade:9579
-msgid "Currently only rating is supported."
-msgstr ""
-
-#: gtkpod.glade:9367
-msgid "Use mserv database to fill additional information"
-msgstr ""
-
-#: gtkpod.glade:9395
-msgid "Music Root:"
-msgstr ""
-
-#: gtkpod.glade:9419
-msgid "mserv database lookup will be done for music in this directory."
-msgstr ""
-
-#: gtkpod.glade:9441
-msgid "mserv Root:"
-msgstr ""
-
-#: gtkpod.glade:9465
-msgid "Root directory of mserv database (trackinfo root)."
-msgstr ""
-
-#: gtkpod.glade:9487
-msgid "Username:"
-msgstr "¥æ¡¼¥¶¡¼Ì¾:"
-
-#: gtkpod.glade:9511
-msgid "Username to be used for mserv database lookup."
-msgstr ""
-
-#: gtkpod.glade:9535 gtkpod.glade:9554 gtkpod.glade:12102 gtkpod.glade:12172
-#: gtkpod.glade:12317 gtkpod.glade:12491 gtkpod.glade:12556 gtkpod.glade:12621
-msgid "Browse"
-msgstr "¥Ö¥é¥¦¥º"
-
-#: gtkpod.glade:9581
-msgid "Show information about problems when accessing mserv"
-msgstr ""
-
-#: gtkpod.glade:9627
-#, fuzzy
-msgid "_Track Info"
-msgstr "¶Ê¥ê¥¹¥È"
-
-#: gtkpod.glade:9673
-msgid "<b>Displayed Track Attributes</b>"
-msgstr "<b>ɽ¼¨¤¹¤ë¶Ê°À­</b>"
-
-#: gtkpod.glade:10460
-msgid "<b>Sort Tabs</b>"
-msgstr "<b>¥½¡¼¥È¥¿¥Ö</b>"
-
-#: gtkpod.glade:10514
-msgid "Keeps all compilation CDs grouped together in the artists sort tab."
-msgstr ""
-
-#: gtkpod.glade:10516
-msgid "Group artists on compilation CDs"
-msgstr ""
-
-#: gtkpod.glade:10541
-msgid "_Number of sort tabs:"
-msgstr "¥½¡¼¥È¥¿¥Ö¤Î¿ô(_N):"
-
-#: gtkpod.glade:10617
-msgid "<b>Automatically select...</b>"
-msgstr "<b>¼«Æ°Åª¤ËÁªÂò...</b>"
-
-#: gtkpod.glade:10671
-msgid ""
-"If you don't select the master playlist automatically, the initial database "
-"import is much faster because the display dosn't have to be updated."
-msgstr ""
-"¥Þ¥¹¥¿¡¼¥×¥ì¥¤¥ê¥¹¥È¤ò¼«Æ°Åª¤ËÁªÂò¤·¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¤È¡¢µ¯Æ°»þ¤Ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤ò"
-"Æɤ߹þ¤àºÝ¤Ë¤Ï²¿¤âɽ¼¨¤·¤Ê¤¯¤Ê¤ë¤Î¤Ç¡¢¥¹¥Ô¡¼¥É¤¬Â®¤¯¤Ê¤ê¤Þ¤¹¡£"
-
-#: gtkpod.glade:10673
-msgid "...master playlist"
-msgstr "...¥Þ¥¹¥¿¡¼¥×¥ì¥¤¥ê¥¹¥È"
-
-#: gtkpod.glade:10693
-msgid "...entry 'All' in sort tab..."
-msgstr "...°Ê²¼¤Î¥½¡¼¥È¥¿¥ÖÆâ¤Î¡Ö¤¹¤Ù¤Æ¡×¤Î¹àÌÜ"
-
-#: gtkpod.glade:10774
-msgid "<b>Tooltips</b>"
-msgstr "<b>¥Ä¡¼¥ë¥Á¥Ã¥×</b>"
-
-#: gtkpod.glade:10829
-msgid "Display tooltips in main window"
-msgstr "¥Ä¡¼¥ë¥Á¥Ã¥×¤ò¥á¥¤¥ó²èÌ̤Çɽ¼¨¤¹¤ë"
-
-#: gtkpod.glade:10849
-msgid "Display tooltips in prefs window"
-msgstr "¥Ä¡¼¥ë¥Á¥Ã¥×¤òÀßÄê²èÌ̤Çɽ¼¨¤¹¤ë"
-
-#: gtkpod.glade:10895
-msgid "<b>Toolbar</b>"
-msgstr "<b>¥Ä¡¼¥ë¥Ð¡¼</b>"
-
-#: gtkpod.glade:10950
-msgid "Display toolbar..."
-msgstr "¥Ä¡¼¥ë¥Ð¡¼¤Îɽ¼¨..."
-
-#: gtkpod.glade:11003
-msgid "...as icons"
-msgstr "¥¢¥¤¥³¥ó¤Î¤ß"
-
-#: gtkpod.glade:11023
-msgid "...as text"
-msgstr "¥Æ¥­¥¹¥È¤Î¤ß"
-
-#: gtkpod.glade:11044
-msgid "...both as icons and text"
-msgstr "¥¢¥¤¥³¥ó¤È¥Æ¥­¥¹¥È"
-
-#: gtkpod.glade:11105
-msgid "<b>Misc</b>"
-msgstr "<b>¤½¤Î¾</b>"
-
-#: gtkpod.glade:11159
-msgid ""
-"It is much faster to sort the display after all tracks have been added. Some "
-"people might feel irritated by this behaviour and should uncheck this option."
-msgstr ""
-
-#: gtkpod.glade:11161
-msgid ""
-"Temporarily disable sorting when changing playlist\n"
-"or tab entry (faster!)"
-msgstr ""
-"¥×¥ì¥¤¥ê¥¹¥È¤ä¥½¡¼¥È¥¿¥Ö¤òÊѹ¹¤·¤¿»þ¤Î¼«Æ°Ê¤ٴ¹¤¨¤ò\n"
-"ÍÞÀ©¤¹¤ë (Æ°ºî¤¬Â®¤¯¤Ê¤ë)"
-
-#: gtkpod.glade:11181
-msgid ""
-"The display can be blocked after changing a selection. The display update is "
-"faster, but you have to wait until it's finished. When using this option, "
-"sorting is also temporarily disabled (see option above)."
-msgstr ""
-"ÁªÂò¤òÊѹ¹¤·¤¿»þ¤Ë¡¢¶Ê¤Î¥ê¥¹¥È¤ò¹¹¿·¤·½ª¤ï¤ë¤Þ¤ÇÅÓÃæ·Ð²á¤òɽ¼¨¤·¤Þ¤»¤ó¡£¹¹¿·"
-"¤Î¥¹¥Ô¡¼¥É¤Ï®¤¯¤Ê¤ê¤Þ¤¹¤¬¡¢¤½¤ì¤¬½ª¤ï¤ë¤Þ¤Ç¤Ï²¿¤â¤¹¤ë»ö¤¬¤Ç¤­¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£"
-"¤³¤ÎÀßÄê¤òÍ­¸ú¤Ë¤·¤¿¾ì¹ç¡¢Ê¤ٴ¹¤¨¤Ï°ì»þŪ¤Ë¤Ç¤­¤Ê¤¯¤Ê¤ê¤Þ¤¹ (¾å¤ÎÀßÄê¤ò»²"
-"¾È)¡£"
-
-#: gtkpod.glade:11183
-msgid ""
-"Block display when changing playlist or tab\n"
-" entry (faster!)"
-msgstr ""
-"¥×¥ì¥¤¥ê¥¹¥È¤ä¥½¡¼¥È¥¿¥Ö¤òÊѹ¹¤·¤¿»þ¤ËÅÓÃæ·Ð²á¤Î\n"
-"ɽ¼¨¤òÍÞÀ©¤¹¤ë(Æ°ºî¤¬Â®¤¯¤Ê¤ë)"
-
-#: gtkpod.glade:11203
-msgid "This option will be re-activated when you upgrade gtkpod."
-msgstr ""
-
-#: gtkpod.glade:11205
-msgid "Display messages and warnings at startup"
-msgstr "µ¯Æ°»þ¤Ë¥á¥Ã¥»¡¼¥¸¤ä·Ù¹ð¤òɽ¼¨¤¹¤ë"
-
-#: gtkpod.glade:11267
-msgid "Advanced Sorting Options"
-msgstr ""
-
-#: gtkpod.glade:11362
-msgid "<b>Track Editing</b>"
-msgstr "<b>¶Ê¤ÎÊÔ½¸</b>"
-
-#: gtkpod.glade:11416
-msgid ""
-"The tags are written to the files on your harddrive and on the ipod (if "
-"available)."
-msgstr ""
-"¥¿¥°¤Ï»È¤Ã¤Æ¤¤¤ë¥Ï¡¼¥É¥Ç¥£¥¹¥¯¤È(²Äǽ¤Ç¤¢¤ì¤Ð)iPod¤ÎξÊý¤Ç½¤Àµ¤µ¤ì¤Þ¤¹¡£"
-
-#: gtkpod.glade:11418
-msgid "Write ID3 tags to disk when modified in gtkpod"
-msgstr "gtkpodÆâ¤ÇÊѹ¹¤¬¤¢¤Ã¤¿ID3¥¿¥°¤ò¥Ç¥£¥¹¥¯¤Ë½ñ¤­¹þ¤à"
-
-#: gtkpod.glade:11470
-msgid ""
-"Normally the charset specified when first importing the track will be used "
-"to write the tags. If you have chosen a wrong charset when first importing a "
-"track, you should select this option along with the correct charset.  Note: "
-"uses the extended information file to store the charset information (see "
-"'Writing of the iTunesDB' on the 'Input/Output' page) and tracks imported "
-"before V0.51 will have no charset stored -- the charset specified on the "
-"'Input/Output' page will be used."
-msgstr ""
-"Ä̾ï¤Ï¡¢ºÇ½é¤Ë¶Ê¤òÊݸ¤·¤¿»þ¤Ë»ØÄꤵ¤ì¤¿Ê¸»ú¥³¡¼¥É¤ò¥¿¥°¤ò½ñ¤­¹þ¤à»þ¤Ë¤â»ÈÍÑ"
-"¤·¤Þ¤¹¡£¤â¤·ºÇ½é¤Ë´Ö°ã¤Ã¤¿Ê¸»ú¥³¡¼¥É¤ò»ØÄꤷ¤Æ¤·¤Þ¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢Àµ¤·¤¤Ê¸»ú"
-"¥³¡¼¥É¤òÁªÂò¤·¤¿¸å¤Ë¤³¤Î¥ª¥×¥·¥ç¥ó¤òÁªÂò¤·¤Æ¤¯¤À¤µ¤¤¡£Ãí°Õ: ʸ»ú¥³¡¼¥É¤Î¾ðÊó"
-"¤òÊݸ¤¹¤ë¤¿¤á¤Ë¡¢³ÈÄ¥¾ðÊó¥Õ¥¡¥¤¥ë¤ò»ÈÍѤ·¤Æ¤¯¤À¤µ¤¤(¡ÖÆþ½ÐÎϡפΥڡ¼¥¸¤Î"
-"¡ÖiTunesDB¤Ø¤Î½ñ¤­¹þ¤ß¡×¤Î¹à¤ò»²¾È)¡£¤Þ¤¿¡¢¥Ð¡¼¥¸¥ç¥ó0.51°ÊÁ°¤ËÅÐÏ¿¤µ¤ì¤¿¶Ê¤Ë"
-"¤Ä¤¤¤Æ¤Ïʸ»ú¥³¡¼¥É¾ðÊó¤¬Êݸ¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£¡ÖÆþ½ÐÎϡפιàÌܤǻØÄꤵ¤ì¤¿Ê¸»ú"
-"¥³¡¼¥É¤¬Å¬ÍѤµ¤ì¤Þ¤¹¡£"
-
-#: gtkpod.glade:11472
-#, fuzzy
-msgid ""
-"Use selected encoding (on the 'General' page)\n"
-"when writing tags"
-msgstr ""
-"¡Ö´ðËÜÀßÄê¡×¤Î¥Ú¡¼¥¸¤Ç»ØÄꤵ¤ì¤¿Ê¸»ú¥³¡¼¥É¤ò\n"
-"¥¿¥°¤ÎÆɤ߽ñ¤­¤Ë¤â»ÈÍѤ¹¤ë"
-
-#: gtkpod.glade:11492
-msgid ""
-"This is the way to go, but maybe not all programs support it yet. ID3v2.4 "
-"uses unicode to store the tags, so you won't have to worry about charsets "
-"any more. gtkpod will use UTF8 encoding as this will not increase the size "
-"of pure ASCII tags. ID3v2.2/4 tags will also be written if they are already "
-"present in the file to write to."
-msgstr ""
-
-#: gtkpod.glade:11494
-msgid "Always write ID3v2.4 tags (only applies to MP3)"
-msgstr "¾ï¤Ë ID3v2.4 ¥¿¥°¤ò½ñ¤­¹þ¤à (MP3 ¤Î¤ß)"
-
-#: gtkpod.glade:11527
-msgid ""
-"If you select several tracks in the track list and edit a tag of the first "
-"track, the tags in the other tracks are updated as well."
-msgstr ""
-"¶Ê¥ê¥¹¥È¤Î¶Ê¤òÆó¤Ä°Ê¾åÁªÂò¤·¤Æ¡¢ºÇ½é¤Î¶Ê¤Î¥¿¥°¤òÊѹ¹¤¹¤ë¤È¾¤Î¶Ê¤Ë¤â¤½¤ÎÊѹ¹"
-"¤òŬÍѤ·¤Þ¤¹¡£"
-
-#: gtkpod.glade:11529
-msgid "Use 'Multi-Edit' for tracks selections"
-msgstr "ÁªÂò¤µ¤ì¤¿¶Ê¤ò¡Ö°ìÀÆÊÔ½¸¡×¤¹¤ë"
-
-#: gtkpod.glade:11575
-msgid ""
-"Usually you don't want to set the title of several tracks to the same text. "
-"This option might avoid unwanted results (especially since there is no "
-"'undo' yet)."
-msgstr ""
-"ÉáÄ̤ÏÊ£¿ô¤Î¶Ê¤Î¥¿¥¤¥È¥ë¤òƱ¤¸¤â¤Î¤Ë¤¹¤ëɬÍפϤʤ¤¤Ç¤·¤ç¤¦¡£¤³¤Î¥ª¥×¥·¥ç¥ó¤ò"
-"ÁªÂò¤¹¤ë¤ÈÂçÄñ¤Ï˾¤Þ¤·¤¯¤Ê¤¤·ë²Ì¤òÆÀ¤ë»ö¤Ë¤Ê¤ê¤Þ¤¹¡£(Æäˡ¢º£¤Î¤È¤³¤í¡Ö¤ä¤êľ"
-"¤·¡×¤Ï¸ú¤«¤Ê¤¤¤Î¤Ç¡¢ÁªÂò¤¹¤ë¤Ù¤­¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó)"
-
-#: gtkpod.glade:11577
-msgid "Use 'Multi-Edit' also for title field"
-msgstr "¥¿¥¤¥È¥ë¤Î¹àÌܤâ¡Ö°ìÀÆÊÔ½¸¡×¤ò²Äǽ¤Ë¤¹¤ë"
-
-#: gtkpod.glade:11630
-msgid "<b>Auto-Generated Playlists</b>"
-msgstr "<b>¥×¥ì¥¤¥ê¥¹¥È¤Î¼«Æ°À¸À®</b>"
-
-#: gtkpod.glade:11690
-msgid "Number of tracks in generated playlists:"
-msgstr "À¸À®¤¹¤ë¥×¥ì¥¤¥ê¥¹¥È¤Ë²Ã¤¨¤ë¶Ê¿ô:"
-
-#: gtkpod.glade:11711
-msgid ""
-"Number of tracks in the generated playlists 'Most Often Listened', 'Best "
-"Rated' and 'Most Recently Played'. Choose '0' for 'no limit'."
-msgstr ""
-"¥×¥ì¥¤¥ê¥¹¥È¤Î¿·µ¬ºîÀ®¤Ç¡¢¡ÖºÆÀ¸²ó¿ô¤Î¿¤¤¶Ê¡×¡Öɾ²Á¤Î¹â¤¤¶Ê¡×¡ÖºÇ¶áºÆÀ¸¤µ¤ì"
-"¤¿¶Ê¡×¤òÁªÂò¤·¤¿ºÝ¤Ë¥ê¥¹¥È¤ËÅÐÏ¿¤¹¤ë¶Ê¤Î¿ô¤ò»ØÄꤷ¤Þ¤¹¡£0¤ò»ØÄꤹ¤ë¤È¡¢¶Ê¿ô¤ò"
-"À©¸Â¤·¤Þ¤»¤ó¡£"
-
-#: gtkpod.glade:11740
-msgid "Also include tracks never played in \"Best Rated\" playlist"
-msgstr ""
-"¡Öɾ²Á¤Î¹â¤¤¶Ê¡×¤Î¥ê¥¹¥È¤òºî¤ëºÝ¤Ë¡¢°ìÅÙ¤â\n"
-"ºÆÀ¸¤µ¤ì¤¿»ö¤Î¤Ê¤¤¶Ê¤âÂоݤȤ·¤Þ¤¹¡£"
-
-#: gtkpod.glade:11786
-msgid "<b>Delete Confirmation</b>"
-msgstr "<b>ºï½ü¤Î³Îǧ</b>"
-
-#: gtkpod.glade:11841
-msgid "Before removing playlists or tracks from a playlist"
-msgstr "¥×¥ì¥¤¥ê¥¹¥È¤ä¡¢¥×¥ì¥¤¥ê¥¹¥È¤«¤é¶Ê¤òºï½ü¤¹¤ë»þ"
-
-#: gtkpod.glade:11861
-msgid "Before removing tracks from the iPod"
-msgstr "¶Ê¤òiPod¤«¤é´°Á´¤Ëºï½ü¤¹¤ë»þ"
-
-#: gtkpod.glade:11881
-msgid "Before removing tracks from the harddisk"
-msgstr "¶Ê¤ò¥Ï¡¼¥É¥Ç¥£¥¹¥¯¤«¤é´°Á´¤Ëºï½ü¤¹¤ë»þ"
-
-#: gtkpod.glade:11901
-msgid "Before removing tracks from the local database"
-msgstr "¶Ê¤ò¥í¡¼¥«¥ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤«¤éºï½ü¤¹¤ë»þ"
-
-#: gtkpod.glade:11921
-msgid ""
-"Before removing tracks completely when\n"
-"synchronizing directories"
-msgstr "¥Ç¥£¥ì¥¯¥È¥ê¤ÎƱ´ü¤ò¹Ô¤¦ºÝ¤Ë¶Ê¤òºï½ü¤¹¤ë»þ"
-
-#: gtkpod.glade:12000
-msgid "<b>Play</b>"
-msgstr "<b>ºÆÀ¸</b>"
-
-#: gtkpod.glade:12060
-msgid "Command for 'Play now':"
-msgstr "¡Öº£¤¹¤°±éÁաפΤ¿¤á¤Î¥³¥Þ¥ó¥É:"
-
-#: gtkpod.glade:12081
-#, fuzzy
-msgid ""
-"For example, 'xmms %s' will clear xmms' current playlist, add the selected "
-"tracks and start playing."
-msgstr ""
-"Î㤨¤Ð 'xmms -p %s' ¤È¤¹¤ë¤È¡¢xmms ¤Î¤½¤Î»þ¤Î¥×¥ì¥¤¥ê¥¹¥È¤ò¥¯¥ê¥¢¤·¡¢ÁªÂò¤·¤¿"
-"¶Ê¤ò¥×¥ì¥¤¥ê¥¹¥È¤ÎÀèƬ¤Ë²Ã¤¨¤Æ±éÁÕ¤ò»Ï¤á¤Þ¤¹¡£"
-
-#: gtkpod.glade:12130
-msgid "Command for 'Enqueue':"
-msgstr "¡Ö±éÁÕ¥­¥å¡¼¤ËÆþ¤ì¤ë¡×¤¿¤á¤Î¥³¥Þ¥ó¥É:"
-
-#: gtkpod.glade:12151
-msgid ""
-"For example, 'xmms -e %s' will append (enqueue) the selected tracks to xmms' "
-"current playlist."
-msgstr ""
-"Î㤨¤Ð 'xmms -e %s' ¤È¤¹¤ë¤È¡¢ÁªÂò¤µ¤ì¤¿¶Ê¤ò xmms ¤Î¤½¤Î»þ¤Î¥×¥ì¥¤¥ê¥¹¥È¤ÎºÇ"
-"¸åÈø¤ËÄɲä·¤Þ¤¹"
-
-#: gtkpod.glade:12221
-msgid "<b>Volume Normalization</b>"
-msgstr "<b>²»Î̤ÎÊ¿¶Ñ²½</b>"
-
-#: gtkpod.glade:12275
-msgid "'mp3gain' executable:"
-msgstr "'mp3gain' ¥³¥Þ¥ó¥É¤Î¾ì½ê:"
-
-#: gtkpod.glade:12296
-msgid ""
-"You only need to specify this if your 'mp3gain' executable is not in your "
-"default path. Example: '/usr/local/foo/mp3gain'. mp3gain will write the "
-"calculated gain value back to the file -- if you don't want this, set this "
-"entry to /bin/true or similar. mp3gain is only called if appropriate tags "
-"are not already set by your encoder. E.g. lame version 0.95 already writes "
-"the gain values into tags. The exact conversion factor between mp3gain's "
-"gain value and iPod's volume tag is not known yet -- your input is "
-"appreciated."
-msgstr ""
-
-#: gtkpod.glade:12359
-msgid "<b>Synchronization</b>"
-msgstr "<b>Ʊ´ü</b>"
-
-#: gtkpod.glade:12444
-msgid "Contacts sync command:"
-msgstr ""
-
-#: gtkpod.glade:12468 gtkpod.glade:12533 gtkpod.glade:12598
-msgid ""
-"Specify exact path including command line options. '%i' will be replaced "
-"with the mount point of the iPod."
-msgstr ""
-
-#: gtkpod.glade:12509
-msgid "Calendar sync command:"
-msgstr ""
-
-#: gtkpod.glade:12574
-msgid "Notes sync command:"
-msgstr ""
-
-#: gtkpod.glade:12647
-msgid "Call automatically when synchronizing iTunesDB"
-msgstr ""
-
-#: gtkpod.glade:12725
-msgid "<b>Podcast subscriptions</b>"
-msgstr ""
-
-#: gtkpod.glade:12800
-#, fuzzy
-msgid "Add"
-msgstr "ÅÐÏ¿Æü"
-
-#: gtkpod.glade:12834
-#, fuzzy
-msgid "Delete"
-msgstr "ºï½ü¤µ¤ì¤¿¶Ê"
-
-#: gtkpod.glade:12900
-msgid "Name: "
-msgstr ""
-
-#: gtkpod.glade:12924
-msgid "URL: "
-msgstr ""
-
-#: gtkpod.glade:13017
-#, fuzzy
-msgid "<b>File options</b>"
-msgstr "<b>ºï½ü¤Î³Îǧ</b>"
-
-#: gtkpod.glade:13077
-msgid "Save podcasts to: "
-msgstr ""
-
-#: gtkpod.glade:13132
-msgid "Delete from computer when "
-msgstr ""
-
-#: gtkpod.glade:13172 gtkpod.glade:13474
-#, fuzzy
-msgid " days old"
-msgstr "Æü"
-
-#: gtkpod.glade:13201
-#, fuzzy
-msgid "Delete once copied to iPod"
-msgstr "iPod¤«¤é1¶Ê´°Á´¤Ëºï½ü¤·¤Þ¤·¤¿"
-
-#: gtkpod.glade:13227
-#, fuzzy
-msgid "Automatically fetch podcasts on startup"
-msgstr "µ¯Æ°»þ¤Ë¼«Æ°Åª¤Ë iTunesDB ¤òÆɤ߹þ¤à"
-
-#: gtkpod.glade:13254
-#, fuzzy
-msgid "Create podcast logfile at:"
-msgstr "¥×¥ì¥¤¥ê¥¹¥È¤òºîÀ®"
-
-#: gtkpod.glade:13354
-#, fuzzy
-msgid "<b>iPod options</b>"
-msgstr "<b>¥Ä¡¼¥ë¥Á¥Ã¥×</b>"
-
-#: gtkpod.glade:13409
-#, fuzzy
-msgid "Automatically sync to iPod"
-msgstr "¼«Æ°Åª¤ËÁªÂò..."
-
-#: gtkpod.glade:13435
-#, fuzzy
-msgid "Delete from iPod when "
-msgstr "iPod¤«¤éºï½ü"
-
-#: gtkpod.glade:13503
-#, fuzzy
-msgid "Delete from iPod if podcast has been played"
-msgstr "ºÇ¸å¤Ë±éÁÕ¤µ¤ì¤¿¤È¤­¤ÎÆüÉդȻþ¹ï"
-
-#: gtkpod.glade:13523
-msgid "Include broadcast date in track title"
-msgstr ""
-
-#: gtkpod.glade:13543
-msgid "Set all podcast genres to 'Podcast'"
-msgstr ""
-
-#: gtkpod.glade:13589 gtkpod.glade:15342
-msgid "_Podcasts"
-msgstr ""
-
-#: gtkpod.glade:13754
-msgid ""
-"\n"
-"\n"
-msgstr ""
-
-#: gtkpod.glade:13788
-#, fuzzy
-msgid "Abort selected"
-msgstr "¶Ê¤¬ÁªÂò¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"
-
-#: gtkpod.glade:13804
-msgid "Abort current"
-msgstr ""
-
-#: gtkpod.glade:13820
-msgid "Abort all"
-msgstr ""
-
-#: gtkpod.glade:13844
-msgid "Details"
-msgstr ""
-
-#: gtkpod.glade:13905
-#, fuzzy
-msgid "Cover"
-msgstr "ºî¶Ê¼Ô"
-
-#: gtkpod.glade:13990
-msgid "Set Cover Art"
-msgstr ""
-
-#: gtkpod.glade:14023
-msgid ""
-"If you check this, information (cover art and meta information) changed for "
-"this track will be copied to all other selected tracks as well. Use with "
-"care."
-msgstr ""
-
-#: gtkpod.glade:14069
-msgid ""
-"Change all tracks\n"
-"simultaneously"
-msgstr ""
-
-#: gtkpod.glade:14157
-msgid "Remove Cover Art"
-msgstr ""
-
-#: gtkpod.glade:16246
-msgid "_Other"
-msgstr ""
-
-#: gtkpod.glade:16536
-msgid "_Undo All"
-msgstr ""
-
-#: gtkpod.glade:16606
-#, fuzzy
-msgid "_Undo Track"
-msgstr "̤ɾ²Á¤Î¶Ê"
-
-#, fuzzy
-#~ msgid "Export Tracks"
-#~ msgstr "¥½¡¼¥È¥¿¥Ö"
-
-#~ msgid "Settings are not saved.\n"
-#~ msgstr "ÀßÄê¤ÏÊݸ¤µ¤ì¤Þ¤»¤ó¡£\n"
-
-#~ msgid "_Delete But Keep Tracks"
-#~ msgstr "¶Ê¤Ï»Ä¤·¤¿¤Þ¤Þºï½ü(_D)"
-
-#~ msgid "_Delete Completely From iPod"
-#~ msgstr "iPod¤«¤é´°Á´¤Ëºï½ü(_D)"
-
-#~ msgid " iPod Mount _Point:"
-#~ msgstr " iPod¤Î¥Þ¥¦¥ó¥È¾ì½ê(_P):"
-
-#~ msgid "Import"
-#~ msgstr "¥¤¥ó¥Ý¡¼¥È"
-
-#~ msgid " _Charset (ID3, files): "
-#~ msgstr " ʸ»ú¥³¡¼¥É(_C) (ID3,¥Õ¥¡¥¤¥ë): "
-
-#~ msgid ""
-#~ "Use selected charset also when updating\n"
-#~ " or syncing tracks"
-#~ msgstr "»ØÄꤷ¤¿Ê¸»ú¥³¡¼¥É¤ò¹¹¿·/Ʊ´ü½èÍý¤ÎºÝ¤Ë¤â»ÈÍѤ¹¤ë"
-
-#~ msgid ""
-#~ "When adding dirs/files, update information of\n"
-#~ " existing tracks with identical filenames"
-#~ msgstr ""
-#~ "¥Õ¥¡¥¤¥ë¤ä¥Ç¥£¥ì¥¯¥È¥ê¤òÄɲ乤ëºÝ¤Ë¡¢Æ±¤¸¥Õ¥¡¥¤¥ë̾¤ò\n"
-#~ "»ý¤Ã¤¿¶Ê¤¬¤¹¤Ç¤Ë¤¢¤Ã¤¿¤é¤½¤Á¤é¤ò¹¹¿·¤¹¤ë"
-
-#~ msgid "Confirm list of directories"
-#~ msgstr "¥Ç¥£¥ì¥¯¥È¥ê¤Î¥ê¥¹¥È¤ò³Îǧ¤¹¤ë"
-
-#~ msgid "Adding/Updating/Syncing"
-#~ msgstr "ÄɲÃ/¹¹¿·/Ʊ´ü"
-
-#~ msgid "Use this template to parse filename for tag information"
-#~ msgstr "°Ê²¼¤Î¥Æ¥ó¥×¥ì¡¼¥È¤ò¡¢¥Õ¥¡¥¤¥ë̾¤«¤é¥¿¥°¾ðÊó¤òÃê½Ð¤¹¤ë¤Î¤Ë»ÈÍѤ¹¤ë"
-
-#~ msgid "Overwrite tags that are already set."
-#~ msgstr "¤¹¤Ç¤Ë¤¢¥¿¥°¾ðÊó¤ò¾å½ñ¤­¤¹¤ë¡£"
-
-#~ msgid "Sync (Writing of iTunesDB)"
-#~ msgstr "¹¹¿· (iTunesDB¤Ø¤Î½ñ¤­¹þ¤ß)"
-
-#~ msgid "_Input/Output"
-#~ msgstr "Æþ½ÐÎÏ(_I)"
-
-#~ msgid "Relative volume adjustment between -100 and +100"
-#~ msgstr "²»Î̤ÎÊäÀµÃÍ(-100¤«¤é+100¤Þ¤Ç)"
-
-#~ msgid "Displayed Track Attributes "
-#~ msgstr "ɽ¼¨¤¹¤ë¶Ê¤Î¹àÌÜ"
-
-#~ msgid " _Number of sort tabs: "
-#~ msgstr "¥½¡¼¥È¥¿¥Ö¤Î¿ô(_N)"
-
-#~ msgid "Sort Tabs"
-#~ msgstr "¥½¡¼¥È¥¿¥Ö"
-
-#~ msgid "Toolbar"
-#~ msgstr "¥Ä¡¼¥ë¥Ð¡¼"
-
-#~ msgid "Tooltips"
-#~ msgstr "¥Ä¡¼¥ë¥Á¥Ã¥×"
-
-#~ msgid "Sorting"
-#~ msgstr "ʤٴ¹¤¨"
-
-#~ msgid "Misc"
-#~ msgstr "¤½¤Î¾"
-
-#~ msgid ""
-#~ "Use selected charset (on the 'Import' page)\n"
-#~ " when writing tags"
-#~ msgstr ""
-#~ "¡Ö¥¤¥ó¥Ý¡¼¥È¡×¤Î¥Ú¡¼¥¸¤Ç»ØÄꤵ¤ì¤¿Ê¸»ú¥³¡¼¥É¤ò\n"
-#~ "¥¿¥°¤Ë»ÈÍѤ¹¤ë"
-
-#~ msgid "Use 'Multi-Edit' for track selections"
-#~ msgstr "ÁªÂò¤µ¤ì¤¿¶Ê¤ò¡Ö°ìÀÆÊÔ½¸¡×¤¹¤ë"
-
-#~ msgid "Track Editing"
-#~ msgstr "¶Ê¤ÎÊÔ½¸"
-
-#~ msgid " Number of tracks in generated playlists: "
-#~ msgstr "À¸À®¤¹¤ë¥×¥ì¥¤¥ê¥¹¥È¤Ë²Ã¤¨¤ë¶Ê¿ô: "
-
-#~ msgid "Auto-Generated Playlists"
-#~ msgstr "¥×¥ì¥¤¥ê¥¹¥È¤Î¼«Æ°ºîÀ®"
-
-#~ msgid "Before removing tracks completely from the iPod"
-#~ msgstr "¶Ê¤òiPod¤«¤é´°Á´¤Ëºï½ü¤¹¤ë»þ"
-
-#~ msgid ""
-#~ "This option only has a meaning if you activate the 'Delete Tracks that "
-#~ "have been Removed' option in the 'Adding/Updating/Syncing' section in the "
-#~ "'Input/Output' tab."
-#~ msgstr ""
-#~ "¤³¤Î¥ª¥×¥·¥ç¥ó¤Ï¡ÖÆþ½ÐÎϡפΥ¿¥ÖÃæ¤Î¡ÖÄɲÃ/¹¹¿·/Ʊ´ü¡×¤ÎÃæ¤Ë¤¢¤ë¡ÖƱ´ü¸µ¤Ç"
-#~ "ºï½ü¤µ¤ì¤¿¶Ê¤ò¾Ãµî¤¹¤ë¡×¤Î¹àÌܤòÀßÄꤷ¤Æ¤¤¤ë¾ì¹ç¤Ë¤Î¤ßŬÍѤµ¤ì¤Þ¤¹¡£"
-
-#~ msgid ""
-#~ "Before removing tracks completely when\n"
-#~ " synchronizing directories"
-#~ msgstr "¥Ç¥£¥ì¥¯¥È¥ê¤ÎƱ´ü¤ò¹Ô¤¦ºÝ¤Ë¶Ê¤òºï½ü¤¹¤ë»þ"
-
-#~ msgid "Delete Confirmation "
-#~ msgstr "ºï½ü¤Î³Îǧ"
-
-#~ msgid "Command Line for 'Play Now':"
-#~ msgstr "¡Öº£¤¹¤°±éÁաפΤ¿¤á¤Î¥³¥Þ¥ó¥É:"
-
-#~ msgid "Command Line for 'Enqueue':"
-#~ msgstr "¡Ö±éÁÕ¥­¥å¡¼¤ËÆþ¤ì¤ë¡×¤¿¤á¤Î¥³¥Þ¥ó¥É:"
-
-#~ msgid "Track Playing"
-#~ msgstr "¶Ê¤Î±éÁÕ"
-
-#~ msgid "Exact path for the 'mp3gain' executable:"
-#~ msgstr "'mp3gain' ¥³¥Þ¥ó¥É¤Î¾ì½ê:"
-
-#~ msgid "Volume Normalization"
-#~ msgstr "²»Î̤ÎÊ¿¶Ñ²½"
-
-#, fuzzy
-#~ msgid ""
-#~ "Notice: the track order is always stored to the iPod when you use drag "
-#~ "and drop to re-arrange the tracks.\n"
-#~ "In order to store an alphabetized track order to the iPod you must choose "
-#~ "the 'Save Displayed Track Order' from the 'Edit' menu or select 'Auto "
-#~ "Store' above."
-#~ msgstr ""
-#~ "Ãí°Õ: ¥É¥é¥Ã¥°¥¢¥ó¥É¥É¥í¥Ã¥×¤ÇÊÔ½¸¤µ¤ì¤¿¶Ê½ç¤Ï¾ï¤Ë iPod ¤ËÊݸ¤µ¤ì¤Þ¤¹¡£¼«"
-#~ "ưʤٴ¹¤¨¤Ë¤è¤ë¶Ê½ç¤ò iPod ¤ËÊݸ¤¹¤ë¤Ë¤Ï¡¢¡ÖÊÔ½¸¡×¥á¥Ë¥å¡¼¤Î¡Ö¸½ºß¤Î¶Ê½ç"
-#~ "¤òÊݸ¡×¤Î¹àÌܤ«¡¢¾å¤Î¡Ö¼«Æ°Êݸ¡×¤òÍ­¸ú¤Ë¤·¤Æ¤¯¤À¤µ¤¤¡£"
-
-#~ msgid "Reading"
-#~ msgstr "Æɤ߹þ¤ß"
-
-#~ msgid "Display"
-#~ msgstr "ɽ¼¨"
-
-#~ msgid "File not found: '%s'."
-#~ msgstr "¥Õ¥¡¥¤¥ë¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó: '%s'"
-
-#~ msgid "Opening of '%s' for writing failed."
-#~ msgstr "'%s' ¤ò½ñ¤­¹þ¤ß¤Î¤¿¤á¤Ë³«¤±¤Þ¤»¤ó¡£"
-
-#~ msgid "Writing to '%s' failed."
-#~ msgstr "'%s'¤Î½ñ¤­¹þ¤ß¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£"
-
-#~ msgid "Path not found: '%s'."
-#~ msgstr "¥Ñ¥¹¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó: '%s'"
-
-#~ msgid "Error renaming '%s' to '%s' (%s)."
-#~ msgstr "'%s'¤ò'%s'¤ËÊѹ¹¤¹¤ë¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¡£(%s)"
-
-#~ msgid "Error removing '%s' (%s)."
-#~ msgstr "'%s'¤Îºï½üÃæ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿¡£(%s)"
-
-#~ msgid "Error opening '%s' for reading (%s)."
-#~ msgstr "'%s' ¤òÆɤ߹þ¤ß¤Î¤¿¤á¤Ë³«¤¯¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¡£(%s)"
-
-#~ msgid "Error opening '%s' for writing (%s)."
-#~ msgstr "'%s' ¤ò½ñ¤­¹þ¤ß¤Î¤¿¤á¤Ë³«¤¯¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¡£(%s)"
-
-#~ msgid "Error while reading from '%s' (%s)."
-#~ msgstr "'%s' ¤ÎÆɤ߹þ¤ßÃæ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿¡£(%s)"
-
-#~ msgid "Error while writing to '%s' (%s)."
-#~ msgstr "'%s' ¤Î½ñ¤­¹þ¤ßÃæ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿¡£(%s)"
-
-#~ msgid "Error when closing '%s' (%s)."
-#~ msgstr "'%s' ¤òÊĤ¸¤ëºÝ¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤Þ¤·¤¿¡£(%s)"
-
-#~ msgid "Couldn't find pixmap file: %s"
-#~ msgstr "°Ê²¼¤Î²èÁü¥Õ¥¡¥¤¥ë¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó: %s"
-
-#~ msgid "Copy from iPod"
-#~ msgstr "iPod¤«¤é¥³¥Ô¡¼"
+#~ msgid "Abort selected"
+#~ msgstr "¶Ê¤¬ÁªÂò¤µ¤ì¤Æ¤¤¤Þ¤»¤ó"

Modified: gtkpod/branches/upstream/current/po/sv.gmo
===================================================================
(Binary files differ)

Modified: gtkpod/branches/upstream/current/po/sv.po
===================================================================
--- gtkpod/branches/upstream/current/po/sv.po	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/po/sv.po	2006-09-30 00:00:17 UTC (rev 139)
@@ -6,16 +6,1860 @@
 msgstr ""
 "Project-Id-Version: sv\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-03-05 23:01+0900\n"
-"PO-Revision-Date: 2005-12-12 18:58+0100\n"
+"POT-Creation-Date: 2006-09-24 23:08+0900\n"
+"PO-Revision-Date: 2006-05-25 17:17+0200\n"
 "Last-Translator: Stefan Asserhäll <stefan.asserhall at comhem.se>\n"
 "Language-Team: Svenska <sv at li.org>\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-Generator: KBabel 1.11.1\n"
+"X-Generator: KBabel 1.11.2\n"
 
+#: gtkpod.glade:7
+msgid "gtkpod"
+msgstr "gtkpod"
+
+#: gtkpod.glade:40
+msgid "_File"
+msgstr "_Arkiv"
+
+#: gtkpod.glade:49
+msgid "_Load iPod(s)"
+msgstr "_Ladda iPod"
+
+#: gtkpod.glade:69
+msgid "_Save Changes"
+msgstr "_Spara ändringar"
+
+#: gtkpod.glade:90
+msgid "Add _Files"
+msgstr "Lägg till _filer"
+
+#: gtkpod.glade:111
+msgid "Add _Directory"
+msgstr "Lägg till _katalog"
+
+#: gtkpod.glade:132
+msgid "Add _Playlist"
+msgstr "Lägg till _spellista"
+
+#: gtkpod.glade:159
+msgid "_Update Tracks from File"
+msgstr "_Uppdatera spår från fil"
+
+#: gtkpod.glade:180 gtkpod.glade:232 gtkpod.glade:311 gtkpod.glade:363
+#: gtkpod.glade:1092 gtkpod.glade:1144 gtkpod.glade:1190
+msgid "Selected _Playlist"
+msgstr "Markerad _spellista"
+
+#: gtkpod.glade:189 gtkpod.glade:241 gtkpod.glade:320 gtkpod.glade:372
+#: gtkpod.glade:1101 gtkpod.glade:1153 gtkpod.glade:1199
+msgid "Selected Tab _Entry"
+msgstr "Markerad _flikrad"
+
+#: gtkpod.glade:198 gtkpod.glade:250 gtkpod.glade:329 gtkpod.glade:381
+#: gtkpod.glade:498 gtkpod.glade:1110 gtkpod.glade:1162 gtkpod.glade:1208
+msgid "Selected _Tracks"
+msgstr "Markerade s_pår"
+
+#: gtkpod.glade:211
+msgid "Update _mserv Data from File"
+msgstr "Uppdatera _mserv data från fil"
+
+#: gtkpod.glade:263
+msgid "_Synchronize Playlist"
+msgstr "_Synkronisera spellista"
+
+#: gtkpod.glade:290
+msgid "_Export Tracks from Database"
+msgstr "_Exportera spår från databasen"
+
+#: gtkpod.glade:342
+msgid "Create _Playlist File"
+msgstr "Skapa sp_ellistefil"
+
+#: gtkpod.glade:400
+msgid "_Create iPod's Directories"
+msgstr "Skapa iPod-ka_taloger"
+
+#: gtkpod.glade:421
+msgid ""
+"Find orphan files (files with no track info in DB) and dangling tracks "
+"(tracks with no corresponding files on iPOD)"
+msgstr ""
+"Hitta övergivna filer (filer utan någon spårinformation i databasen) och "
+"saknade spår (spår utan motsvarande filer på iPod)"
+
+#: gtkpod.glade:422
+msgid "_Check iPod's Files"
+msgstr "K_ontrollera iPod-filer"
+
+#: gtkpod.glade:450 gtkpod.glade:12687
+msgid "_Edit"
+msgstr "_Redigera"
+
+#: gtkpod.glade:459 src/context_menus.c:480
+msgid "Edit Track Details"
+msgstr "Redigera detaljinformation om spår"
+
+#: gtkpod.glade:480
+msgid "Tracks in Selected _Playlist"
+msgstr "Spår i markerad _spellista"
+
+#: gtkpod.glade:489
+msgid "Tracks in Selected Tab _Entry"
+msgstr "Spår i markerad _flikrad"
+
+#: gtkpod.glade:511 src/context_menus.c:407
+msgid "Edit Smart Playlist"
+msgstr "Redigera smart spellista"
+
+#: gtkpod.glade:520
+msgid "_Delete"
+msgstr "_Ta bort"
+
+#: gtkpod.glade:541
+msgid "Selected playlist"
+msgstr "Markerade spellista"
+
+#: gtkpod.glade:550
+msgid "Selected playlist including tracks from iPod"
+msgstr "Markerade spellistan som innehåller spår från iPod"
+
+#: gtkpod.glade:559
+msgid "Selected playlist including tracks from database"
+msgstr "Markerade spellistan som innehåller spår från databasen"
+
+#: gtkpod.glade:568
+msgid "Selected playlist including tracks from harddisk"
+msgstr "Markerade spellistan som innehåller spår från hårddisken"
+
+#: gtkpod.glade:583
+msgid "Selected filter tab entry from playlist"
+msgstr "Markerade filterflikrad från spellistan"
+
+#: gtkpod.glade:592
+msgid "Selected filter tab entry from iPod"
+msgstr "Markerade filterflikrad från iPod"
+
+#: gtkpod.glade:601
+msgid "Selected filter tab entry from database"
+msgstr "Markerade filterflikrad från databasen"
+
+#: gtkpod.glade:610
+msgid "Selected filter tab entry from harddisk"
+msgstr "Markerade filterflikrad från hårddisken"
+
+#: gtkpod.glade:625
+msgid "Selected tracks from playlist"
+msgstr "Markerade spår från spellistan"
+
+#: gtkpod.glade:634
+msgid "Selected tracks from iPod"
+msgstr "Markerade spår från iPod"
+
+#: gtkpod.glade:643
+msgid "Selected tracks from database"
+msgstr "Markerade spår från databasen"
+
+#: gtkpod.glade:652
+msgid "Selected tracks from harddisk"
+msgstr "Markerade spår från hårddisken"
+
+#: gtkpod.glade:671
+msgid "_Create Playlists"
+msgstr "_Skapa spellistor"
+
+#: gtkpod.glade:692
+msgid "Empty Playlist"
+msgstr "Tom spellista"
+
+#: gtkpod.glade:701 gtkpod.glade:7379 src/misc_playlist.c:97
+#: src/repository.c:1359
+msgid "Smart Playlist"
+msgstr "Smart spellista"
+
+#: gtkpod.glade:716
+msgid "Random Playlist from Displayed Tracks"
+msgstr "Slumpmässig spellista från visade spår"
+
+#: gtkpod.glade:725
+msgid "Containing Displayed Tracks"
+msgstr "Som innehåller visade spår"
+
+#: gtkpod.glade:734
+msgid "Containing Selected Tracks"
+msgstr "Som innehåller markerade spår"
+
+#: gtkpod.glade:743
+msgid "One for each Artist"
+msgstr "En för varje artist"
+
+#: gtkpod.glade:752
+msgid "One for each Album"
+msgstr "En för varje album"
+
+#: gtkpod.glade:761
+msgid "One for each Genre"
+msgstr "En för varje genre"
+
+#: gtkpod.glade:770
+msgid "One for each Composer"
+msgstr "En för varje kompositör"
+
+#: gtkpod.glade:779
+msgid "One for each Year"
+msgstr "En för varje år"
+
+#: gtkpod.glade:788
+msgid "One for each Rating"
+msgstr "En för varje betyg"
+
+#: gtkpod.glade:797
+msgid "Best Rated Tracks"
+msgstr "Spår med bäst betyg"
+
+#: gtkpod.glade:806
+msgid "Tracks Most Often Listened To"
+msgstr "Spår som oftast lyssnats på"
+
+#: gtkpod.glade:815
+msgid "Most Recently Played Tracks"
+msgstr "Spår som nyligen spelats"
+
+#: gtkpod.glade:824
+msgid "All Tracks Played Since Last Time"
+msgstr "Alla spår som spelats sedan sist"
+
+#: gtkpod.glade:833
+msgid "All Tracks Never Listened To"
+msgstr "Alla spår som aldrig lyssnats på"
+
+#: gtkpod.glade:842
+msgid "All Tracks not Listed in any Playlist"
+msgstr "Alla spår som inte finns i någon spellista"
+
+#: gtkpod.glade:861
+msgid "_Sorting"
+msgstr "S_ortera"
+
+#: gtkpod.glade:883
+msgid "Randomize Current Playlist"
+msgstr "Gör nuvarande spellista slumpmässig"
+
+#: gtkpod.glade:892
+msgid "_Save Displayed Track Order"
+msgstr "Spara _visad spårordning"
+
+#: gtkpod.glade:920
+msgid "Edit Repository/iPod Options"
+msgstr "Redigera arkiv- och iPodalternativ"
+
+#: gtkpod.glade:941
+msgid "Edit _Preferences"
+msgstr "Redigera in_ställningar"
+
+#: gtkpod.glade:967
+msgid "_View"
+msgstr "_Visa"
+
+#: gtkpod.glade:976
+msgid "_Toolbar"
+msgstr "_Verktygsrad"
+
+#: gtkpod.glade:986
+msgid "_Tooltips"
+msgstr "Verktygs_tips"
+
+#: gtkpod.glade:996
+msgid "_Info Window"
+msgstr "_Informationsfönster"
+
+#: gtkpod.glade:1007
+msgid "_More Sort Tabs"
+msgstr "_Fler sorteringsflikar"
+
+#: gtkpod.glade:1028
+msgid "_Less Sort Tabs"
+msgstr "Färre _sorteringsflikar"
+
+#: gtkpod.glade:1049
+msgid "_Arrange Sort Tabs"
+msgstr "_Ordna sorteringsflikar"
+
+#: gtkpod.glade:1062 gtkpod.glade:13297
+msgid "_Tools"
+msgstr "Verk_tyg"
+
+#: gtkpod.glade:1071
+msgid "_Play Now"
+msgstr "S_pela nu"
+
+#: gtkpod.glade:1123
+msgid "_Enqueue"
+msgstr "_Köa"
+
+#: gtkpod.glade:1181
+msgid "_Normalize Volume"
+msgstr "_Normalisera volym"
+
+#: gtkpod.glade:1217
+msgid "_Displayed Tracks"
+msgstr "_Visade spår"
+
+#: gtkpod.glade:1226
+msgid "_All Tracks"
+msgstr "_Alla spår"
+
+#: gtkpod.glade:1235
+msgid "_Newly Added Tracks"
+msgstr "_Nytillagda spår"
+
+#: gtkpod.glade:1254
+msgid "Synchronise Contacts, Calendar and Notes"
+msgstr "Synkronisera kontakter, kalender och anteckningar"
+
+#: gtkpod.glade:1255
+msgid "Synchronize All"
+msgstr "Synkronisera allt"
+
+#: gtkpod.glade:1264
+msgid "Synchronize Contacts"
+msgstr "Synkronisera kontakter"
+
+#: gtkpod.glade:1273
+msgid "Synchronize Calendar"
+msgstr "Synkronisera kalender"
+
+#: gtkpod.glade:1282
+msgid "Synchronize Notes"
+msgstr "Synkronisera anteckningar"
+
+#: gtkpod.glade:1295
+msgid "_Help"
+msgstr "_Hjälp"
+
+#: gtkpod.glade:1304
+msgid "_About"
+msgstr "_Om"
+
+#: gtkpod.glade:1344
+msgid ""
+"Try to load contents of all connected iPods. For each iPod a separate "
+"repository must be set up."
+msgstr ""
+"Försök ladda innehållet från alla anslutna iPod-enheter. Ett separat arkiv "
+"måste ställas in för varje iPod."
+
+#: gtkpod.glade:1345
+msgid "Load iPod(s)"
+msgstr "Ladda iPod"
+
+#: gtkpod.glade:1362
+msgid "Write all changes made to the disk and the iPod(s)."
+msgstr "Skriv alla ändringar gjorda på disk och iPod."
+
+#: gtkpod.glade:1363 src/context_menus.c:507
+msgid "Save Changes"
+msgstr "Spara ändringar"
+
+#: gtkpod.glade:1380
+msgid "Add Files or Directories"
+msgstr "Lägg till filer eller kataloger"
+
+#: gtkpod.glade:1381
+msgid "Files"
+msgstr "Filer"
+
+#: gtkpod.glade:1398
+msgid "Add Directories Recursively"
+msgstr "Lägg till kataloger rekursivt"
+
+#: gtkpod.glade:1399
+msgid "Dirs"
+msgstr "Kataloger"
+
+#: gtkpod.glade:1416
+msgid "Add playlist from file"
+msgstr "Lägg till spellista från fil"
+
+#: gtkpod.glade:1417 src/display_spl.c:105
+msgid "Playlist"
+msgstr "Spellista"
+
+#: gtkpod.glade:1434
+msgid "Create New Playlist"
+msgstr "Skapa ny spellista"
+
+#: gtkpod.glade:1435
+msgid "New PL"
+msgstr "Ny spellista"
+
+#: gtkpod.glade:1451
+msgid "Stop Display Update"
+msgstr "Stoppa uppdatering av skärmen"
+
+#: gtkpod.glade:1452
+msgid "Stop"
+msgstr "Stoppa"
+
+#: gtkpod.glade:1625
+msgid "About gtkpod"
+msgstr "Om gtkpod"
+
+#: gtkpod.glade:1752
+msgid "Credits"
+msgstr "Tack till"
+
+#: gtkpod.glade:1810
+msgid "Translators"
+msgstr "Översättare"
+
+#: gtkpod.glade:1868
+msgid "special_sorttab -- Don't translate!"
+msgstr "special_sorttab -- Don't translate!"
+
+#: gtkpod.glade:1903
+msgid " Logic: "
+msgstr " Logiskt: "
+
+#: gtkpod.glade:1929
+msgid "Any (OR)"
+msgstr "NÃ¥gon (eller)"
+
+#: gtkpod.glade:1948
+msgid "All (AND)"
+msgstr "Alla (och)"
+
+#: gtkpod.glade:2001
+msgid "0"
+msgstr "0"
+
+#: gtkpod.glade:2020
+msgid "1"
+msgstr "1"
+
+#: gtkpod.glade:2039
+msgid "2"
+msgstr "2"
+
+#: gtkpod.glade:2058
+msgid "3"
+msgstr "3"
+
+#: gtkpod.glade:2077
+msgid "4"
+msgstr "4"
+
+#: gtkpod.glade:2096
+msgid "5"
+msgstr "5"
+
+#: gtkpod.glade:2135
+msgid "Select '0' for no lower limit."
+msgstr "Välj '0' för ingen undre gräns."
+
+#: gtkpod.glade:2156
+msgid " <= cts <= "
+msgstr " <= antal <= "
+
+#: gtkpod.glade:2181
+msgid "Select '-1' for no upper limit."
+msgstr "Välj '-1' för ingen övre gräns."
+
+#: gtkpod.glade:2224 gtkpod.glade:2301 gtkpod.glade:2471
+msgid ""
+"'DD/MM/YYYY HH:MM < d < DD/MM/YYYY HH:MM' or similar. Press 'enter' when "
+"finished."
+msgstr ""
+"'ÅÅÅÅ-MM-DD TT:MM < d < ÅÅÅÅ-MM-DD TT:MM' eller liknande. Tryck på "
+"returtangenten när du är klar."
+
+#: gtkpod.glade:2270 gtkpod.glade:2347 gtkpod.glade:2517 gtkpod.glade:2696
+msgid "Calendar"
+msgstr "Kalender"
+
+#: gtkpod.glade:2372
+msgid "Specify interval"
+msgstr "Ange intervall"
+
+#: gtkpod.glade:2374 src/display_spl.c:98 src/misc_conversion.c:78
+msgid "Playcount"
+msgstr "Spelningsantal"
+
+#: gtkpod.glade:2397 src/display_spl.c:101 src/misc_conversion.c:79
+msgid "Rating"
+msgstr "Betyg"
+
+#: gtkpod.glade:2420 src/display_songs.c:1951
+msgid "Played"
+msgstr "Spelad"
+
+#: gtkpod.glade:2443 src/display_songs.c:1954
+msgid "Modified"
+msgstr "Ändrad"
+
+#: gtkpod.glade:2542 src/display_songs.c:1957 src/display_sorttabs.c:3218
+msgid "Added"
+msgstr "Tillagd"
+
+#: gtkpod.glade:2587
+msgid "Display tracks that match the criteria entered above."
+msgstr "Visa spår som uppfyller ovan inskrivna villkor."
+
+#: gtkpod.glade:2630 gtkpod.glade:12009
+msgid "_Display"
+msgstr "_Visa"
+
+#: gtkpod.glade:2666
+msgid ""
+"Automatically start displaying tracks that match the criteria entered above. "
+"If not selected, you must press 'Display' to start displaying."
+msgstr ""
+"Börja automatiskt visa spår som motsvarar villkoren som skrivs in ovan. Om "
+"inte markerad, måste du klicka på 'Visa' för att börja visningen."
+
+#: gtkpod.glade:2668
+msgid "Start display automatically"
+msgstr "Börja visa automatiskt"
+
+#: gtkpod.glade:2743
+msgid "Sorttab: "
+msgstr "Sorteringsflik: "
+
+#: gtkpod.glade:2787
+msgid "     "
+msgstr "     "
+
+#: gtkpod.glade:2813
+msgid "Category: "
+msgstr "Kategori: "
+
+#: gtkpod.glade:2894
+msgid "Please specify a time interval"
+msgstr "Ange ett tidsintervall"
+
+#: gtkpod.glade:2943
+msgid "Lower Margin"
+msgstr "Under gräns"
+
+#: gtkpod.glade:2994 gtkpod.glade:3208
+msgid "Time:"
+msgstr "Tid:"
+
+#: gtkpod.glade:3037 gtkpod.glade:3251
+msgid ":"
+msgstr ":"
+
+#: gtkpod.glade:3114
+msgid "No lower margin"
+msgstr "Ingen undre gräns"
+
+#: gtkpod.glade:3157
+msgid "Upper margin"
+msgstr "Övre gräns"
+
+#: gtkpod.glade:3328
+msgid "No upper margin"
+msgstr "Ingen övre gräns"
+
+#: gtkpod.glade:3426
+msgid "Sorting Options"
+msgstr "Sorteringsalternativ"
+
+#: gtkpod.glade:3458
+msgid "<b>Sort Order</b>"
+msgstr "<b>Sorteringsordning</b>"
+
+#: gtkpod.glade:3489 gtkpod.glade:4762 gtkpod.glade:11638 gtkpod.glade:12134
+#: gtkpod.glade:12249
+msgid "    "
+msgstr "    "
+
+#: gtkpod.glade:3521
+msgid ""
+"In order to save the displayed track order to the iPod choose 'Save "
+"Displayed Track Order' from the 'Edit' menu or select 'Auto Store' below."
+msgstr ""
+"För att lagra visad spårordning i iPod måste du välja 'Spara visad "
+"spårordning' i menyn 'Redigera' eller välja 'Lagra automatiskt' nedan."
+
+#: gtkpod.glade:3905
+msgid "Ascending"
+msgstr "Stigande"
+
+#: gtkpod.glade:3953
+msgid "Descending"
+msgstr "Fallande"
+
+#: gtkpod.glade:4001
+msgid "None"
+msgstr "Ingen"
+
+#: gtkpod.glade:4048 src/display_playlists.c:2106
+msgid "Playlists"
+msgstr "Spellistor"
+
+#: gtkpod.glade:4097
+msgid "Sorttabs"
+msgstr "Sorteringsflikar"
+
+#: gtkpod.glade:4146
+msgid "Tracks"
+msgstr "Spår"
+
+#: gtkpod.glade:4306
+msgid "Auto Store"
+msgstr "Lagra automatiskt"
+
+#: gtkpod.glade:4349
+msgid "Please refer to the notice below."
+msgstr "Se anmärkningen nedan."
+
+#: gtkpod.glade:4383 gtkpod.glade:4564 src/details.c:1118
+msgid "n/a"
+msgstr "ej tillgänglig"
+
+#: gtkpod.glade:4613
+msgid "Sort tracks according to: "
+msgstr "Sortera spår enligt: "
+
+#: gtkpod.glade:4647
+msgid ""
+"You can also use the table headers, but this allows you to sort according to "
+"a column that is not displayed."
+msgstr ""
+"Du kan också använda tabellhuvuden, men här kan du sortera enligt en kolumn "
+"som inte visas."
+
+#: gtkpod.glade:4683
+msgid ""
+"If checked, sorting will be case sensitive. Please note that case sensitive "
+"sorting will not work well with most charsets."
+msgstr ""
+"Om markerat är sorteringen skiftlägeskänslig. Observera att "
+"skiftlägeskänslig sortering inte fungerar bra med de flesta teckenkodningar."
+
+#: gtkpod.glade:4685
+msgid "Sorting case sensitive"
+msgstr "Skiftlägeskänslig sortering"
+
+#: gtkpod.glade:4731
+msgid "<b>Ignore Frequent Words</b>"
+msgstr "<b>Ignorera vanliga ord</b>"
+
+#: gtkpod.glade:4831
+msgid "Ignore these words when at the beginning of the following fields:"
+msgstr "Ignorera dessa ord i början av följande fält:"
+
+#: gtkpod.glade:5106
+msgid "gtkpod Info"
+msgstr "Information om gtkpod"
+
+#: gtkpod.glade:5427 gtkpod.glade:5514 gtkpod.glade:5543 gtkpod.glade:6261
+#: gtkpod.glade:6406
+msgid "      "
+msgstr "      "
+
+#: gtkpod.glade:5832
+msgid "Number of tracks"
+msgstr "Antal spår"
+
+#: gtkpod.glade:5862
+msgid "Play time"
+msgstr "Speltid"
+
+#: gtkpod.glade:5893
+msgid "File size"
+msgstr "Filstorlek"
+
+#: gtkpod.glade:5923
+msgid "Number of playlists"
+msgstr "Antal spellistor"
+
+#: gtkpod.glade:5953
+msgid "Deleted tracks"
+msgstr "Borttagna spår"
+
+#: gtkpod.glade:5983
+msgid "File size (deleted)"
+msgstr "Filstorlek (borttagna)"
+
+#: gtkpod.glade:6013
+msgid "Non-transferred tracks"
+msgstr "Spår som inte överförts"
+
+#: gtkpod.glade:6043
+msgid "File size (non-transferred)"
+msgstr "Filstorlek (inte överförda)"
+
+#: gtkpod.glade:6073
+msgid "Effective free space"
+msgstr "Verkligt ledigt utrymme"
+
+#: gtkpod.glade:6103
+msgid ""
+"Total\n"
+"(iPod)"
+msgstr ""
+"Totalt\n"
+"(iPod)"
+
+#: gtkpod.glade:6135
+msgid ""
+"Selected\n"
+"Playlist"
+msgstr ""
+"Markerad\n"
+"spellista"
+
+#: gtkpod.glade:6167
+msgid ""
+"Displayed\n"
+"Tracks"
+msgstr ""
+"Visade\n"
+"spår"
+
+#: gtkpod.glade:6199
+msgid ""
+"Selected\n"
+"Tracks"
+msgstr ""
+"Markerade\n"
+"spår"
+
+#: gtkpod.glade:6231
+msgid ""
+"Total\n"
+"(local)"
+msgstr ""
+"Totalt\n"
+"(lokalt)"
+
+#: gtkpod.glade:6651
+msgid "label21"
+msgstr "etikett21"
+
+#: gtkpod.glade:6746
+msgid "Never show this dialogue again"
+msgstr "Visa aldrig den här dialogrutan igen"
+
+#: gtkpod.glade:6791 gtkpod.glade:7135
+msgid "window1"
+msgstr "fönster1"
+
+#: gtkpod.glade:6850
+msgid "_M3U"
+msgstr "_M3U"
+
+#: gtkpod.glade:6869
+msgid "_PLS"
+msgstr "_PLS"
+
+#: gtkpod.glade:6907
+msgid ""
+"If available, the local copy of the track is referenced in the playlist. "
+"Otherwise the file on the iPod is used."
+msgstr ""
+"Om tillgänglig, hänvisar spellistan till den lokala kopian av spåret. Annars "
+"används filen på iPod."
+
+#: gtkpod.glade:6909
+msgid "_Prefer Local"
+msgstr "_Föredra lokal"
+
+#: gtkpod.glade:6927
+msgid ""
+"The local copy of the track is referenced in the playlist. If the track is "
+"not available locally, an error message is displayed."
+msgstr ""
+"Spellistan hänvisar till den lokala kopian av spåret. Om spåret inte är "
+"tillgängligt lokalt, visas ett felmeddelande."
+
+#: gtkpod.glade:6929
+msgid "_Local"
+msgstr "_Lokal"
+
+#: gtkpod.glade:6948
+msgid "The track on the iPod is referenced in the playlist file."
+msgstr "Spellistan hänvisar till spåret på iPod."
+
+#: gtkpod.glade:6950
+msgid "_iPod"
+msgstr "_iPod"
+
+#: gtkpod.glade:6983
+msgid "Playlist type:"
+msgstr "Typ av spellista:"
+
+#: gtkpod.glade:7012
+msgid "Source:"
+msgstr "Källa:"
+
+#: gtkpod.glade:7055
+msgid "Template for info field: "
+msgstr "Mall för informationsfält:"
+
+#: gtkpod.glade:7080
+msgid ""
+"Determines how the string for the info field should be constructed, e.g '%a/%"
+"A/%T - %t.mp3' or '%o'.  You can separate several templates by semicolons -- "
+"gtkpod will determine which one to use by the filename extension given. "
+"Artist: %a, album: %A, composer: %c, title: %t, genre: %G, track nr: %T, CD "
+"nr: %C, year: %Y, original filename (requires extended information file): %"
+"o, the character '%': %%."
+msgstr ""
+"Avgör hur strängen för informationsfältet ska skapas, t.ex. '%a/%A/%T - %t."
+"mp3' eller '%o'. Du kan skilja flera mönster åt med semikolon. Vilket som "
+"används avgörs av gtkpod genom filnamnsändelsen som anges. Artist: %a, "
+"album: %A, kompositör: %c, titel: %t, genre: %G, spårnummer: %T, cd-nummer: %"
+"C, år: %Y, ursprungligt filnamn (kräver fil med utökad information): %o, "
+"tecknet '%': %%."
+
+#: gtkpod.glade:7111 gtkpod.glade:7355
+msgid "gtkpod options"
+msgstr "Inställningar för gtkpod"
+
+#: gtkpod.glade:7173
+msgid "Filename Format: "
+msgstr "Filnamnsformat: "
+
+#: gtkpod.glade:7198
+msgid ""
+"Determines the filename of tracks you copy from the iPod, e.g '%a/%A/%T - %t."
+"mp3' or '%o'.  You can separate several patterns by semicolons -- gtkpod "
+"will determine which one to use by the filename extension given. Artist: %a, "
+"album: %A, composer: %c, title: %t, genre: %G, track nr: %T, CD nr: %C, "
+"year: %Y, original filename (requires extended information file): %o, "
+"current playlist: %p, the character '%': %%."
+msgstr ""
+"Avgör filnamn för spåren du kopierar från iPod, t.ex. '%a/%A/%T - %t.mp3' "
+"eller '%o'. Du kan skilja flera mönster åt med semikolon. Vilket som används "
+"avgörs av gtkpod genom filnamnsändelsen som anges. Artist: %a, album: %A, "
+"kompositör: %c, titel: %t, genre: %G, spårnummer: %T, cd-nummer: %C, år: %Y, "
+"ursprungligt filnamn (kräver fil med utökad information): %o, nuvarande "
+"spellista: %p, tecknet '%': %%."
+
+#: gtkpod.glade:7203
+msgid " "
+msgstr " "
+
+#: gtkpod.glade:7225
+msgid ""
+"Normally the charset specified when first importing the track will be used "
+"for the filename. If you set this option you can set a different charset "
+"with the charset selector (Preferences/'Adding/Updating/Syncing'). Note: the "
+"charset info is stored in the extended information file (see "
+"Preferences/'Writing of the iTunesDB'). Tracks imported before V0.51 will "
+"have no charset stored. Instead the charset specified will be used."
+msgstr ""
+"Normalt används teckenkodningen som anges när spåret först importeras för "
+"filnamnet. Om du markerar det här alternativet kan du ange en annan "
+"teckenkodning i teckensnittsväljaren (Inställningar/'Tillägg, uppdatering, "
+"synkronisering'). Observera: kodningsinformationen lagras i filen med utökad "
+"information (se Inställningar/'Skrivning av iTunes databas'). Spår som "
+"importerats innan version 0.51 har ingen teckenkodning lagrad. Istället "
+"används då teckensnittet som anges."
+
+#: gtkpod.glade:7227
+msgid ""
+"Use selected charset (Preferences/'Adding/Updating/ Syncing')\n"
+"for this filename."
+msgstr ""
+"Använd vald teckenkodning för detta filnamn\n"
+"(Inställningar/'Tillägg, uppdatering, synkronisering')."
+
+#: gtkpod.glade:7246
+msgid ""
+"When copying from iPod no check is performed on whether the destination file "
+"exists. Enabling this option will make gtkpod check whether the length of "
+"the destination file is the same as the file in the iPod. If so the file is "
+"skipped, allowing a quick sync of the iPod's contents."
+msgstr ""
+"Vid kopiering från iPod görs ingen kontroll om målfilen finns. Markeras det "
+"här alternativet kontrollerar gtkpod om målfilens längd är samma som filen "
+"från iPod. Om det är fallet hoppas filen över, vilket gör det möjligt att "
+"snabbt synkronisera innehållet i iPod."
+
+#: gtkpod.glade:7248
+msgid "Check for existing files when copying from iPod."
+msgstr "Titta efter befintliga filer vid kopiering från iPod."
+
+#: gtkpod.glade:7423
+msgid "Playlist name:"
+msgstr "Spellistans namn:"
+
+#: gtkpod.glade:7492
+msgid "Match al_l of the following"
+msgstr "Matcha a_lla följande"
+
+#: gtkpod.glade:7511
+msgid "Match an_y of the following"
+msgstr "Matcha _någon av följande"
+
+#: gtkpod.glade:7531
+msgid "_Ignore rules"
+msgstr "_Ignorera regler"
+
+#: gtkpod.glade:7601
+msgid "Rules"
+msgstr "Regler"
+
+#: gtkpod.glade:7638
+msgid "_Limit to"
+msgstr "_Begränsa till"
+
+#: gtkpod.glade:7689
+msgid "   Sort by:"
+msgstr "   Sortera enligt:"
+
+#: gtkpod.glade:7741
+msgid "Match only _checked tracks"
+msgstr "Matcha bara _kryssmarkerade spår"
+
+#: gtkpod.glade:7773
+msgid "Live _updating"
+msgstr "_Uppdatering under tiden"
+
+#: gtkpod.glade:7864
+msgid "Preferences"
+msgstr "Inställningar"
+
+#: gtkpod.glade:7927
+msgid "<b>Mountpoint and individual repository/playlist options</b>"
+msgstr "<b>Alternativ för monteringspunkt, enskilda arkiv och spellistor</b>"
+
+#: gtkpod.glade:7990
+msgid "Set mountpoint or edit repository options"
+msgstr "Ange monteringspunkt eller redigera arkivalternativ"
+
+#: gtkpod.glade:8037
+msgid "<b>Import</b>"
+msgstr "<b>Importera</b>"
+
+#: gtkpod.glade:8108
+#, fuzzy
+msgid "Automatically import iTunesDBs on startup"
+msgstr "Importera automatiskt iTunes databas vid start"
+
+#: gtkpod.glade:8154
+msgid "<b>Adding/Updating/Syncing</b>"
+msgstr "<b>Tillägg, uppdatering, synkronisering</b>"
+
+#: gtkpod.glade:8226
+msgid "Exclude file mask(s)"
+msgstr ""
+
+#: gtkpod.glade:8251
+msgid "Semicolon seperated list of file exclusion masks, e.g. '*.mp3'"
+msgstr ""
+
+#: gtkpod.glade:8285
+msgid "_Encoding (ID3, files):"
+msgstr "_Teckenkodning (ID3, filer):"
+
+#: gtkpod.glade:8320
+msgid ""
+"gtkpod expects the ID3 tags and the filenames to be in the encoding "
+"specified here. You can change it for consecutive 'Add Files' and 'Add Dirs' "
+"operation. 'System Charset' is the charset used by your current locale."
+msgstr ""
+"ID3-taggar och filnamn förväntas ha kodningen som anges här. Du kan ändra "
+"den för varje enskild användning av 'Lägg till filer' eller 'Lägg till "
+"kataloger'. 'Systemets kodning' är den kodning som används i din aktuella "
+"landsinställning."
+
+#: gtkpod.glade:8357
+msgid ""
+"Normally the charset specified when first importing the track will be used "
+"to update the track information. If you have chosen a wrong charset when "
+"first importing a track and want to correct it using the 'Update Track' "
+"function, you must check this option. Note: the charset info is stored in "
+"the extended information file (see 'Writing of iTunesDB' below) and tracks "
+"imported before V0.51 will have no charset stored. Instead the charset "
+"specified above will be used then."
+msgstr ""
+"Normalt används teckenkodning som först anges när spåret importeras för att "
+"uppdatera spårinformation. Om du valde fel teckenkodning när spåret först "
+"importerades, och vill rätta det med funktionen 'Uppdatera spår', måste du "
+"markera alternativet. Observera: kodningsinformationen lagras i filen med "
+"utökad information (se 'Skrivning av iTunes databas' nedan) och spår som "
+"importerats innan version 0.51 har ingen teckenkodning lagrad. Istället "
+"används då teckensnittet som anges ovan."
+
+#: gtkpod.glade:8359
+msgid ""
+"Use selected encoding also when updating \n"
+"or syncing tracks"
+msgstr ""
+"Använd också vald kodning vid uppdatering\n"
+"eller synkronisering av spår"
+
+#: gtkpod.glade:8379
+msgid "If you check this, gtkpod will descend into subdirectories recursively."
+msgstr "Om du markerar det här, går gtkpod ner i underkataloger rekursivt."
+
+#: gtkpod.glade:8381
+msgid "Add directories recursively"
+msgstr "Lägg till kataloger rekursivt"
+
+#: gtkpod.glade:8400
+msgid "Duplicate Recognition is based on a (modified) md5 hash over the file."
+msgstr ""
+"Igenkänning av duplikat är baserat på filens (modifierade) MD5-checksumma."
+
+#: gtkpod.glade:8402
+msgid "Don't allow file duplication"
+msgstr "Tillåt inte duplicerade filer"
+
+#: gtkpod.glade:8452
+msgid ""
+"Display the list of duplicates that have been detected after adding files."
+msgstr "Visa listan med upptäckta duplikat efter filer har lagts till."
+
+#: gtkpod.glade:8454
+msgid "Display info about detected duplicates"
+msgstr "Visa information om detekterade duplikat"
+
+#: gtkpod.glade:8480
+msgid ""
+"If the filename (full path) of an existing track matches that of a track to "
+"be added, this option allows you to update the information about the "
+"existing track rather than just skipping the track altogether. No update "
+"will take place if the file hasn't changed and you have selected the 'Don't "
+"allow file duplication' option above."
+msgstr ""
+"Om filnamnet (fullständiga sökvägen) för ett befintligt spår motsvarar ett "
+"spår som ska läggas till, låter det här alternativet dig uppdatera "
+"informationen om det befintliga spåret istället för att bara hoppa över "
+"spåret helt. Ingen uppdatering sker om filen inte har ändrats och du har "
+"valt alternativet 'Tillåt inte duplicerade filer' ovan."
+
+#: gtkpod.glade:8482
+msgid ""
+"When adding dirs/files, update information of\n"
+"existing tracks with identical filenames"
+msgstr ""
+"När kataloger och filer läggs till, uppdatera information\n"
+"om befintliga spår med identiska filnamn"
+
+#: gtkpod.glade:8533
+msgid "Display a list of tracks that could actually be updated."
+msgstr "Visa en lista med spår som skulle kunna uppdateras."
+
+#: gtkpod.glade:8535
+msgid "Display info about updated tracks"
+msgstr "Visa information om uppdaterade spår"
+
+#: gtkpod.glade:8592
+msgid "Display a list of tracks that could not be updated."
+msgstr "Visa en lista med spår som inte kunde uppdateras."
+
+#: gtkpod.glade:8594
+msgid "Display info about non-updated tracks"
+msgstr "Visa information om spår som inte uppdaterats"
+
+#: gtkpod.glade:8620
+msgid "When syncing playlists"
+msgstr "Vid synkronisering av spellistor"
+
+#: gtkpod.glade:8694
+msgid "Confirm lists of directories"
+msgstr "Bekräfta lista med kataloger"
+
+#: gtkpod.glade:8712 gtkpod.glade:17758
+msgid ""
+"Normally, if a track is no longer present in the sync directory, it will be "
+"removed from the playlist, but not from the iPod or local repository.\n"
+"If this option is checked, tracks will be completely removed from the iPod "
+"or local repository, unless the track is a member of other playlists as "
+"well.\n"
+"NOTE: if you sync with the master playlist, you must check this option if "
+"you want tracks to be removed, because removing from the master playlist "
+"means removing from the iPod."
+msgstr ""
+"Om ett spår inte längre finns i synkroniseringskatalogen, tas det normalt "
+"bort från spellistan, men inte från iPod eller det lokala arkivet.\n"
+"Om alternativet markeras, tas spår fullständigt bort från iPod eller det "
+"lokala arkivet, om inte spåret också ingår i andra spellistor.\n"
+"Observera: Om du synkroniserar med huvudspellistan måste du markera "
+"alternativet om du vill att spår ska tas bort, eftersom att ta bort från "
+"huvudspellistan innebär att ta bort från iPod."
+
+#: gtkpod.glade:8716 gtkpod.glade:17762
+msgid ""
+"Delete tracks that are no longer present from the\n"
+"ipod or repository"
+msgstr ""
+"Ta bort spår som inte längre finns\n"
+"från iPod eller arkiv"
+
+#: gtkpod.glade:8735
+msgid "This is the same option as in 'Edit/Delete Confirmation'"
+msgstr "Det här är samma alternativ som i 'Redigera/Bekräfta "
+
+#: gtkpod.glade:8737 gtkpod.glade:17782
+msgid "Confirm before removing tracks from the iPod or repository"
+msgstr "Bekräfta innan spår tas bort från iPod eller arkiv"
+
+#: gtkpod.glade:8756 gtkpod.glade:17800
+msgid ""
+"Will show a list of tracks removed and a list of tracks newly added or "
+"updated."
+msgstr ""
+"Visar en lista med borttagna spår och en lista med spår som är nytillagda "
+"eller uppdaterade."
+
+#: gtkpod.glade:8758 gtkpod.glade:17802
+msgid "Show summary of sync result"
+msgstr "Visa sammanfattning av synkroniseringsresultat"
+
+#: gtkpod.glade:8819
+msgid "<b>Sync</b>"
+msgstr "<b>Synkronisera</b>"
+
+#: gtkpod.glade:8875
+msgid ""
+"Highly recommended for faster import when taking advantage of the "
+"duplication recognition. Also, having the PC filenames allows writing "
+"changed ID3 tags to disk, and even to reconstruct your ipod's contents in "
+"case of file system corruption (change the \"transferred=\" entries in your "
+"backuped database)."
+msgstr ""
+"Rekommenderas starkt för snabbare import när funktionen för att känna igen "
+"duplikat utnyttjas. Dessutom blir det möjligt att skriva ändrade ID3-taggar "
+"till disk när PC-filnamnen behålls, eller till och med att återskapa "
+"innehållet i iPod om filsystemet blir skadat (ändra raderna \"transferred=\" "
+"i den säkerhetskopierade databasen)."
+
+#: gtkpod.glade:8877
+msgid ""
+"Write extended information (PC filenames,\n"
+" MD5 hashes, encoding). Recommended."
+msgstr ""
+"Skriv utökad information (PC-filnamn, MD5-\n"
+"checksummor, teckenkodning). Rekommenderas."
+
+#: gtkpod.glade:8921 gtkpod.glade:14688
+msgid "_General"
+msgstr "_Allmänt"
+
+#: gtkpod.glade:8957
+msgid "<b>Tag Reading</b>"
+msgstr "<b>Taggläsning</b>"
+
+#: gtkpod.glade:9020
+msgid "Read tags from file contents (e.g. ID3 tags in MP3 files)"
+msgstr "Läs spår från filinnehåll (t.ex. ID3-taggar i MP3-filer)"
+
+#: gtkpod.glade:9039 gtkpod.glade:9413
+msgid ""
+"artist: %a, album: %A, composer: %c, title: %t, genre: %G, track nr: %T, CD "
+"nr: %C, year: %Y, skip data: %*, the character '%': %%. You can separate "
+"several templates by a ';'. The first one matching the filename will be "
+"used. Example: '%a - %A/%T %t.mp3;%t.wav'."
+msgstr ""
+"artist: %a, album: %A, kompositör: %c, titel: %t, genre: %G, spårnummer: %T, "
+"cd-nummer: %C, år: %Y, hoppa över data: %*, tecknet '%': %%. Du kan skilja "
+"flera mallar åt med ';'. Den första som stämmer med filnamnet används. "
+"Exempel: '%a - %A/%T %t.mp3;%t.wav'."
+
+#: gtkpod.glade:9041
+msgid "Use this template to parse filename for tag information:"
+msgstr "Använd mallen för att tolka filnamnet som tagginformation:"
+
+#: gtkpod.glade:9118
+msgid "Overwrite tags that are already set"
+msgstr "Skriv över taggar som redan är angivna"
+
+#: gtkpod.glade:9151
+msgid ""
+"As a last resort set the following tags to the\n"
+"filename if they are (still) empty:"
+msgstr ""
+"Om följande taggar (fortfarande) är tomma,\n"
+"lagra filnamnet i dem som en sista utväg:"
+
+#: gtkpod.glade:9187 src/display_sorttabs.c:2942 src/display_spl.c:85
+#: src/misc_conversion.c:62
+msgid "Artist"
+msgstr "Artist"
+
+#: gtkpod.glade:9209 src/display_sorttabs.c:2948 src/display_spl.c:89
+#: src/misc_conversion.c:64
+msgid "Genre"
+msgstr "Genre"
+
+#. 0
+#: gtkpod.glade:9231 src/display_sorttabs.c:2945 src/display_spl.c:84
+#: src/misc_conversion.c:61
+msgid "Album"
+msgstr "Album"
+
+#. 5
+#: gtkpod.glade:9253 src/display_spl.c:97 src/misc_conversion.c:66
+msgid "Composer"
+msgstr "Kompositör"
+
+#: gtkpod.glade:9275 src/display_sorttabs.c:2954 src/display_spl.c:83
+#: src/misc_conversion.c:63
+msgid "Title"
+msgstr "Titel"
+
+#: gtkpod.glade:9330
+#, fuzzy
+msgid "<b>Coverart</b>"
+msgstr "<b>Importera</b>"
+
+#: gtkpod.glade:9392
+msgid ""
+"Music files can have images embedded in the APIC tag. Currently this is only "
+"supported for MP3 files."
+msgstr ""
+
+#: gtkpod.glade:9394
+msgid "Read coverart from embedded APIC data"
+msgstr ""
+
+#: gtkpod.glade:9415
+#, fuzzy
+msgid "Add coverart from file using the following template"
+msgstr "Lägg till omslag från fil med följande mall"
+
+#: gtkpod.glade:9471
+msgid ""
+"Determines the name of the file with the cover art. You can separate several "
+"patterns by semicolons which will be tried in order. Artist: %a, album: %A, "
+"composer: %c, title: %t, genre: %G, track nr: %T, CD nr: %C, year: %Y, "
+"original filename (requires extended information file): %o, original "
+"filename without file extension: %O, current playlist: %p, the character "
+"'%': %%."
+msgstr ""
+"Avgör namn på filen med omslagsbilden. Du kan skilja flera mönster åt med "
+"semikolon, som används i tur och ordning. Artist: %a, album: %A, kompositör: "
+"%c, titel: %t, genre: %G, spårnummer: %T, cd-nummer: %C, år: %Y, "
+"ursprungligt filnamn (kräver fil med utökad information): %o, ursprungligt "
+"filnamn utan filändelse: %O, nuvarande spellista: %p, tecknet '%': %%."
+
+#: gtkpod.glade:9492
+msgid "<b>Examples</b>"
+msgstr "<b>Exempel</b>"
+
+#: gtkpod.glade:9526
+msgid "folder.jpg"
+msgstr "katalog.jpg"
+
+#: gtkpod.glade:9554
+msgid "folder"
+msgstr "katalog"
+
+#: gtkpod.glade:9582
+msgid "../%A.jpg"
+msgstr "../%A.jpg"
+
+#: gtkpod.glade:9610
+msgid "%A"
+msgstr "%A"
+
+#: gtkpod.glade:9638
+msgid "Use <i>folder.jpg</i> as cover art."
+msgstr "Använd <i>katalog.jpg</i> som omslagsbild."
+
+#: gtkpod.glade:9666
+msgid "Use <i>folder.jpg</i>, <i>folder.png</i>..."
+msgstr "Använd <i>katalog.jpg</i>, <i>katalog.png</i>..."
+
+#: gtkpod.glade:9694
+msgid "Use <i>&lt;Album&gt;.jpg</i> in the parent directory"
+msgstr "Använd <i>&lt;Album&gt;.jpg</i> i överliggande katalog"
+
+#: gtkpod.glade:9722
+msgid "Use <i>&lt;Album&gt;.jpg</i>, <i>&lt;Album&gt;.png</i>..."
+msgstr "Använd <i>&lt;Album&gt;.jpg</i>, <i>&lt;Album&gt;.png</i>..."
+
+#: gtkpod.glade:9750
+msgid "folder.jpg;%a.jpg"
+msgstr "katalog.jpg;%a.jpg"
+
+#: gtkpod.glade:9778
+msgid "First try <i>folder.jpg</i>, then <i>&lt;artist&gt;.jpg</i>"
+msgstr ""
+"Försök först med <i>katalog.jpg</i>, därefter med <i>&lt;artist&gt;.jpg</i>"
+
+#: gtkpod.glade:9835
+msgid "If both options are selected, embedded APIC data takes precedence."
+msgstr ""
+
+#: gtkpod.glade:9887
+msgid "<b>mserv</b>"
+msgstr "<b>mServ</b>"
+
+#: gtkpod.glade:9949 gtkpod.glade:10175
+msgid "Currently only rating is supported."
+msgstr "För närvarande stöds bara ett betyg"
+
+#: gtkpod.glade:9951
+msgid "Use mserv database to fill additional information"
+msgstr "Använd mserv databas för att fylla i ytterligare information"
+
+#: gtkpod.glade:9979
+msgid "Music Root:"
+msgstr "Musikrot:"
+
+#: gtkpod.glade:10007
+msgid "mserv database lookup will be done for music in this directory."
+msgstr "Uppslagning av musik för mserv databasen görs i den här katalogen."
+
+#: gtkpod.glade:10029
+msgid "mserv Root:"
+msgstr "Rot för mserv:"
+
+#: gtkpod.glade:10057
+msgid "Root directory of mserv database (trackinfo root)."
+msgstr "Rotkatalog för mserv databasen (rot för spårinformation)."
+
+#: gtkpod.glade:10079
+msgid "Username:"
+msgstr "Användarnamn:"
+
+#: gtkpod.glade:10107
+msgid "Username to be used for mserv database lookup."
+msgstr "Användarnamn att använda vid uppslagning i mserv databasen."
+
+#: gtkpod.glade:10131 gtkpod.glade:10150 gtkpod.glade:12889 gtkpod.glade:12908
+#: gtkpod.glade:13069 gtkpod.glade:13138 gtkpod.glade:17159 gtkpod.glade:17179
+#: gtkpod.glade:17199 gtkpod.glade:17219 gtkpod.glade:17239 gtkpod.glade:17679
+#: gtkpod.glade:18238 gtkpod.glade:18281 gtkpod.glade:18301 gtkpod.glade:18711
+msgid "Browse"
+msgstr "Bläddra"
+
+#: gtkpod.glade:10177
+msgid "Show information about problems when accessing mserv"
+msgstr "Visa information om problem vid användning av mserv"
+
+#: gtkpod.glade:10223
+msgid "_Track Info"
+msgstr "_Spårinformation"
+
+#: gtkpod.glade:10273
+msgid "<b>Displayed Track Attributes</b>"
+msgstr "<b>Visade spåregenskaper</b>"
+
+#: gtkpod.glade:11083
+msgid "<b>Sort Tabs</b>"
+msgstr "<b>Sorteringsflikar</b>"
+
+#: gtkpod.glade:11145
+msgid "Keeps all compilation CDs grouped together in the artists sort tab."
+msgstr ""
+"Behåller alla samlingsskivor grupperade tillsammans i sorteringsfliken för "
+"artister"
+
+#: gtkpod.glade:11147
+msgid "Group artists on compilation CDs"
+msgstr "Gruppera artister på samlingsskivor"
+
+#: gtkpod.glade:11172
+msgid "_Number of sort tabs:"
+msgstr "A_ntal sorteringsflikar:"
+
+#: gtkpod.glade:11252
+msgid "<b>Automatically select...</b>"
+msgstr "<b>Välj automatiskt...</b>"
+
+#: gtkpod.glade:11314
+msgid ""
+"If you don't select the master playlist automatically, the initial database "
+"import is much faster because the display dosn't have to be updated."
+msgstr ""
+"Om du inte väljer huvudspellistan automatiskt, går den ursprungliga importen "
+"av databasen mycket snabbare eftersom skärmen inte behöver uppdateras."
+
+#: gtkpod.glade:11316
+msgid "...master playlist"
+msgstr "...huvudspellista"
+
+#: gtkpod.glade:11336
+msgid "...entry 'All' in sort tab..."
+msgstr "...raden 'Alla' i sorteringsflikar"
+
+#: gtkpod.glade:11421
+msgid "<b>Tooltips</b>"
+msgstr "<b>Verktygstips</b>"
+
+#: gtkpod.glade:11484
+msgid "Display tooltips in main window"
+msgstr "Visa verktygstips i huvudfönstret"
+
+#: gtkpod.glade:11504
+msgid "Display tooltips in prefs window"
+msgstr "Visa verktygstips i inställningsfönstret"
+
+#: gtkpod.glade:11550
+msgid "<b>Toolbar</b>"
+msgstr "<b>Verktygsrad</b>"
+
+#: gtkpod.glade:11613
+msgid "Display toolbar..."
+msgstr "Visa verktygsrad..."
+
+#: gtkpod.glade:11670
+msgid "...as icons"
+msgstr "...som ikoner"
+
+#: gtkpod.glade:11690
+msgid "...as text"
+msgstr "...som text"
+
+#: gtkpod.glade:11711
+msgid "...both as icons and text"
+msgstr "...både som ikoner och text"
+
+#: gtkpod.glade:11772
+msgid "<b>Misc</b>"
+msgstr "<b>Diverse</b>"
+
+#: gtkpod.glade:11834
+msgid ""
+"It is much faster to sort the display after all tracks have been added. Some "
+"people might feel irritated by this behaviour and should uncheck this option."
+msgstr ""
+"Det går mycket snabbare att sortera skärmen efter alla spår har lagts till. "
+"Några personer kanske känner sig irriterade av detta beteende, och kan då "
+"avmarkera alternativet."
+
+#: gtkpod.glade:11836
+msgid ""
+"Temporarily disable sorting when changing playlist\n"
+"or tab entry (faster!)"
+msgstr ""
+"Inaktivera sortering tillfälligt när spellistor\n"
+"eller flikar ändras (snabbare)"
+
+#: gtkpod.glade:11856
+msgid ""
+"The display can be blocked after changing a selection. The display update is "
+"faster, but you have to wait until it's finished. When using this option, "
+"sorting is also temporarily disabled (see option above)."
+msgstr ""
+"Skärmen kan blockeras efter en markering ändrats. Skärmuppdateringen blir "
+"snabbare, men du måste vänta till den är klar. När du använder det här "
+"alternativet är sortering också tillfälligt avstängd (se alternativet ovan)."
+
+#: gtkpod.glade:11858
+msgid ""
+"Block display when changing playlist or tab\n"
+" entry (faster!)"
+msgstr ""
+"Blockera skärmen när spellistor\n"
+"eller flikar ändras (snabbare)"
+
+#: gtkpod.glade:11878
+msgid "This option will be re-activated when you upgrade gtkpod."
+msgstr "Det här alternativet aktiveras igen när du uppdaterar gtkpod."
+
+#: gtkpod.glade:11880
+msgid "Display messages and warnings at startup"
+msgstr "Visa meddelanden och varningar vid start"
+
+#: gtkpod.glade:11942
+msgid "Advanced Sorting Options"
+msgstr "Avancerade sorteringsalternativ"
+
+#: gtkpod.glade:12045
+msgid "<b>Track Editing</b>"
+msgstr "<b>Spårredigering</b>"
+
+#: gtkpod.glade:12107
+msgid ""
+"The tags are written to the files on your harddrive and on the ipod (if "
+"available)."
+msgstr ""
+"Taggarna skrivs till filer på din hårddisk och på iPod (om tillgänglig)."
+
+#: gtkpod.glade:12109
+msgid "Write ID3 tags to disk when modified in gtkpod"
+msgstr "Skriv ID3-taggar till disk när de ändrats i gtkpod"
+
+#: gtkpod.glade:12165
+msgid ""
+"Normally the charset specified when first importing the track will be used "
+"to write the tags. If you have chosen a wrong charset when first importing a "
+"track, you should select this option along with the correct charset.  Note: "
+"uses the extended information file to store the charset information (see "
+"'Writing of the iTunesDB' on the 'Input/Output' page) and tracks imported "
+"before V0.51 will have no charset stored -- the charset specified on the "
+"'Input/Output' page will be used."
+msgstr ""
+"Normalt används teckenkodning som först anges när spåret importeras för att "
+"skriva taggarna. Om du valde fel teckenkodning när spåret först "
+"importerades, ska du markera det här alternativet tillsammans med den "
+"riktiga teckenkodningen. Observera: använder filen med utökad information "
+"för att lagra kodningsinformation (se 'Skrivning av iTunes databas' på sidan "
+"'In- och utmatning') och spår som importerats innan version 0.51 har ingen "
+"teckenkodning lagrad. Istället används då teckensnittet som anges på sidan "
+"'In- och utmatning'."
+
+#: gtkpod.glade:12167
+msgid ""
+"Use selected encoding (on the 'General' page)\n"
+"when writing tags"
+msgstr ""
+"Använd vald teckenkodning (från sidan 'Allmänt')\n"
+"vid skrivning av taggar"
+
+#: gtkpod.glade:12187
+msgid ""
+"This is the way to go, but maybe not all programs support it yet. ID3v2.4 "
+"uses unicode to store the tags, so you won't have to worry about charsets "
+"any more. gtkpod will use UTF8 encoding as this will not increase the size "
+"of pure ASCII tags. ID3v2.2/4 tags will also be written if they are already "
+"present in the file to write to."
+msgstr ""
+"Det här är rätt metod, men kanske stöder inte alla program det ännu. ID3v2.4 "
+"använder Unicode för att lagra taggar, så du behöver inte längre bekymra dig "
+"om teckenkodning. Kodningen UTF8 används av gtkpod, om den inte ökar "
+"storleken av rena ASCII-taggar. ID3v2.2/4-taggar skrivs också om de redan "
+"finns i filen som skrivs."
+
+#: gtkpod.glade:12189
+msgid "Always write ID3v2.4 tags (only applies to MP3)"
+msgstr "Skriv alltid ID3v2.4-taggar (gäller bara MP3)"
+
+#: gtkpod.glade:12222
+msgid ""
+"If you select several tracks in the track list and edit a tag of the first "
+"track, the tags in the other tracks are updated as well."
+msgstr ""
+"Om du markerar flera spår i spårlistan och redigerar taggen för det första "
+"spåret, uppdateras också taggarna för övriga spår."
+
+#: gtkpod.glade:12224
+msgid "Use 'Multi-Edit' for tracks selections"
+msgstr "Använd 'Redigera flera' för markerade spår"
+
+#: gtkpod.glade:12274
+msgid ""
+"Usually you don't want to set the title of several tracks to the same text. "
+"This option might avoid unwanted results (especially since there is no "
+"'undo' yet)."
+msgstr ""
+"Oftast vill du inte ange titeln för flera spår till samma text. Det här "
+"alternativet kan undvika oönskade resultat (särskilt eftersom funktionen "
+"'Ångra' inte finns ännu)."
+
+#: gtkpod.glade:12276
+msgid "Use 'Multi-Edit' also for title field"
+msgstr "Använd också 'Redigera flera' för titelfältet"
+
+#: gtkpod.glade:12329
+msgid "<b>Auto-Generated Playlists</b>"
+msgstr "<b>Automatiskt skapade spellistor</b>"
+
+#: gtkpod.glade:12397
+msgid "Number of tracks in generated playlists:"
+msgstr "Antal spår i skapade spellistor:"
+
+#: gtkpod.glade:12422
+msgid ""
+"Number of tracks in the generated playlists 'Most Often Listened', 'Best "
+"Rated' and 'Most Recently Played'. Choose '0' for 'no limit'."
+msgstr ""
+"Antal spår i de skapade spellistorna 'oftast lyssnats på', 'med bäst betyg' "
+"och 'nyligen spelats'. Ange '0' för 'ingen begränsning'."
+
+#: gtkpod.glade:12451
+msgid "Also include tracks never played in \"Best Rated\" playlist"
+msgstr ""
+"Inkludera också spår som aldrig spelats i spellistan \"med bäst betyg\""
+
+#: gtkpod.glade:12497
+msgid "<b>Delete Confirmation</b>"
+msgstr "<b>Bekräfta borttagning</b>"
+
+#: gtkpod.glade:12560
+msgid "Before removing playlists or tracks from a playlist"
+msgstr "Innan spellistor eller spår tas bort från en spellista"
+
+#: gtkpod.glade:12580
+msgid "Before removing tracks from the iPod"
+msgstr "Innan spår tas bort från iPod"
+
+#: gtkpod.glade:12600
+msgid "Before removing tracks from the harddisk"
+msgstr "Innan spår tas bort från hårddisken"
+
+#: gtkpod.glade:12620
+msgid "Before removing tracks from the local database"
+msgstr "Innan spår tas bort från den lokala databasen"
+
+#: gtkpod.glade:12640
+msgid ""
+"Confirm before removing tracks from the iPod or repository\n"
+"when syncing playlists"
+msgstr ""
+"Bekräfta innan spår tas bort från iPod eller arkiv\n"
+"vid synkronisering av spellistor"
+
+#: gtkpod.glade:12723
+msgid "<b>Play</b>"
+msgstr "<b>Spela</b>"
+
+#: gtkpod.glade:12788
+msgid "Command for 'Play now':"
+msgstr "Kommando för 'Spela nu':"
+
+#: gtkpod.glade:12816
+msgid "Command for 'Enqueue':"
+msgstr "Kommando för 'Köa':"
+
+#: gtkpod.glade:12844
+msgid ""
+"For example, 'xmms %s' will clear xmms' current playlist, add the selected "
+"tracks and start playing."
+msgstr ""
+"Till exempel rensas XMM:s nuvarande spellista, de markerade spåren läggs "
+"till och uppspelning startar med 'xmms %s'."
+
+#: gtkpod.glade:12866
+msgid ""
+"For example, 'xmms -e %s' will append (enqueue) the selected tracks to xmms' "
+"current playlist."
+msgstr ""
+"Till exempel läggs de markerade spåren till sist i XMM:s nuvarande spellista "
+"(köas) med 'xmms -e %s'."
+
+#: gtkpod.glade:12953
+msgid "<b>Volume Normalization</b>"
+msgstr "<b>Normalisering av volym</b>"
+
+#: gtkpod.glade:13018
+msgid "'mp3gain' executable:"
+msgstr "Körbart program 'mp3gain':"
+
+#: gtkpod.glade:13046
+msgid ""
+"Set this to 'mp3gain -q -k' to use the 'Normalize volume' functionality in "
+"the Tools Menu. If this is set, missing normalization data for mp3 files "
+"will be calculated and written to your mp3 file using this command."
+msgstr ""
+
+#: gtkpod.glade:13087
+#, fuzzy
+msgid "'aacgain' executable:"
+msgstr "Körbart program 'mp3gain':"
+
+#: gtkpod.glade:13115
+msgid ""
+"Set this to 'aacgain -q -k' to use the 'Normalize volume' functionality in "
+"the Tools Menu. If this is set, missing normalization data for .m4a and .m4b "
+"files will be calculated and written to your music file using this command."
+msgstr ""
+
+#: gtkpod.glade:13183
+msgid "<b>Calendar/Contacts/Notes</b>"
+msgstr "<b>Kalender, kontakter och anteckningar</b>"
+
+#: gtkpod.glade:13246
+msgid "Set options for Calendar/Contacts/Notes"
+msgstr "Ange alternativ för kalender, kontakter och anteckningar"
+
+#: gtkpod.glade:13381
+msgid "Details"
+msgstr "Detaljinformation"
+
+#: gtkpod.glade:13449
+msgid "Cover"
+msgstr "Omslag"
+
+#: gtkpod.glade:13538
+msgid "Set Cover Art"
+msgstr "Ange omslagsbild"
+
+#: gtkpod.glade:13575
+msgid ""
+"If you check this, information (cover art and meta information) changed for "
+"this track will be copied to all other selected tracks as well. Use with "
+"care."
+msgstr ""
+"Om du markerar detta, kopieras information (omslagsbild och metainformation) "
+"som ändrats för spåret också till alla andra markerade spår. Använd med "
+"försiktighet."
+
+#: gtkpod.glade:13621
+msgid ""
+"Change all tracks\n"
+"simultaneously"
+msgstr ""
+"Ändra alla spår\n"
+"samtidigt"
+
+#: gtkpod.glade:13713
+msgid "Remove Cover Art"
+msgstr "Ta bort omslagsbild"
+
+#: gtkpod.glade:14646
+#, fuzzy
+msgid "(Checked)"
+msgstr "Kontrollerad"
+
+#: gtkpod.glade:15088
+msgid "_Podcasts"
+msgstr "_Podradiosändningar"
+
+#: gtkpod.glade:16127
+msgid "_Other"
+msgstr "Ö_vriga"
+
+#: gtkpod.glade:16425
+msgid "_Undo All"
+msgstr "Ã…_ngra alla"
+
+#: gtkpod.glade:16499
+msgid "_Undo Track"
+msgstr "Å_ngra spår"
+
+#: gtkpod.glade:16546
+msgid "Repository Options"
+msgstr "Arkivalternativ"
+
+#: gtkpod.glade:16667
+msgid "Add new repository/iPod"
+msgstr "Lägg till nytt arkiv eller iPod"
+
+#: gtkpod.glade:16736 gtkpod.glade:18163 gtkpod.glade:18659
+msgid "iPod mountpoint:"
+msgstr "iPod monteringspunkt:"
+
+#: gtkpod.glade:16764 gtkpod.glade:18135
+msgid "iTunesDB backup:"
+msgstr "Säkerhetskopia av iTunes databas:"
+
+#: gtkpod.glade:16792 gtkpod.glade:18107 gtkpod.glade:18730 gtkpod.glade:18922
+msgid "Model:"
+msgstr "Modell:"
+
+#: gtkpod.glade:16820 gtkpod.glade:18079
+msgid "Path:"
+msgstr "Sökväg:"
+
+#: gtkpod.glade:16848
+msgid "<b>Synchronization</b>"
+msgstr "<b>Synkronisering</b>"
+
+#: gtkpod.glade:16906
+msgid "Contacts sync command:"
+msgstr "Synkroniseringskommando för kontakter:"
+
+#: gtkpod.glade:16934
+msgid "Calendar sync command:"
+msgstr "Synkroniseringskommando för kalender:"
+
+#: gtkpod.glade:16962
+msgid "Notes sync command:"
+msgstr "Synkroniseringskommando för anteckningar:"
+
+#: gtkpod.glade:16991
+msgid "Call automatically when synchronizing iTunesDB"
+msgstr "Anropa automatiskt vid synkronisering av iTunes databas"
+
+#: gtkpod.glade:17014 gtkpod.glade:17038 gtkpod.glade:17062 gtkpod.glade:17086
+#: gtkpod.glade:17110 gtkpod.glade:17134 gtkpod.glade:17658 gtkpod.glade:18435
+msgid ""
+"Specify exact path including command line options. '%i' will be replaced "
+"with the mount point of the iPod."
+msgstr ""
+"Ange fullständig sökväg inklusive kommandoradsväljare. '%i' ersätts med "
+"monteringspunkten för iPod."
+
+#: gtkpod.glade:17294
+msgid "Update/Sync all playlists now"
+msgstr "Uppdatera och synkronisera alla spellistor nu"
+
+#: gtkpod.glade:17314
+msgid "Delete repository"
+msgstr "Ta bort arkiv"
+
+#: gtkpod.glade:17334 src/context_menus.c:430 src/context_menus.c:448
+#: src/context_menus.c:523
+msgid "I'm sure"
+msgstr "Jag är säker"
+
+#: gtkpod.glade:17390
+msgid "<b>Repositories</b>"
+msgstr "<b>Arkiv</b>"
+
+#: gtkpod.glade:17587
+msgid ""
+"Directories to sync with are determined from the filenames of the tracks in "
+"the playlist."
+msgstr ""
+"Kataloger att synkronisera avgörs från filnamnen hos spåren i spellistan."
+
+#: gtkpod.glade:17589
+msgid "On startup automatically sync with playlist directories"
+msgstr "Synkronisera automatiskt med spellistekataloger vid start"
+
+#: gtkpod.glade:17608
+msgid "On startup automatically sync with the following directory"
+msgstr "Synkronisera automatiskt med följande katalog vid start"
+
+#: gtkpod.glade:17702
+msgid "Don't automatically sync on startup"
+msgstr "Synkronisera inte automatiskt vid start"
+
+#: gtkpod.glade:17848
+msgid "On startup automatically update (Live Playlist)"
+msgstr "Uppdatera automatiskt vid start (levande spellista)"
+
+#: gtkpod.glade:17878
+msgid "Update/Sync playlist now"
+msgstr "Uppdatera och synkronisera spellista nu"
+
+#: gtkpod.glade:17925
+msgid "<b>Playlists</b>"
+msgstr "<b>Spellistor</b>"
+
+#: gtkpod.glade:18042
+msgid "Create Repository"
+msgstr "Skapa arkiv"
+
+#: gtkpod.glade:18320
+msgid ""
+"Insert before\n"
+"Insert after"
+msgstr ""
+"Infoga innan\n"
+"Infoga efter"
+
+#: gtkpod.glade:18358
+msgid "Repository type:"
+msgstr "Arkivtyp:"
+
+#: gtkpod.glade:18386
+msgid ""
+"iPod\n"
+"Local Repository (Standard)\n"
+"Local Repository (Podcasts)\n"
+msgstr ""
+"iPod\n"
+"Lokalt arkiv (standard)\n"
+"Lokalt arkiv (podradiosändningar)\n"
+
+#: gtkpod.glade:18407
+msgid "Repository name:"
+msgstr "Arkivnamn:"
+
+#: gtkpod.glade:18543 gtkpod.glade:18806
+msgid "Initialize iPod"
+msgstr ""
+
+#: gtkpod.glade:18613
+msgid "<b>Please select mountpoint and your iPod model</b>"
+msgstr ""
+
 #: src/charset.c:53
 msgid "Arabic (IBM-864)"
 msgstr "Arabisk (IBM-864)"
@@ -218,7 +2062,7 @@
 
 #. sanity!
 #. check for "System Charset" and return NULL
-#: src/charset.c:160 src/charset.c:170 src/charset.c:222
+#: src/charset.c:160 src/charset.c:170 src/charset.c:223
 msgid "System Charset"
 msgstr "Systemets kodning"
 
@@ -230,234 +2074,216 @@
 msgstr ""
 "En annan instans av gtkpod detekterades. Spelningsservern startades inte.\n"
 
-#: src/confirmation.c:361
+#: src/confirmation.c:376
 msgid "Confirmation Dialogue"
 msgstr "Bekräftelsedialogruta"
 
-#: src/context_menus.c:352 src/tools.c:634
+#: src/context_menus.c:367 src/tools.c:852
 msgid "Play Now"
 msgstr "Spela nu"
 
-#: src/context_menus.c:354 src/tools.c:645
+#: src/context_menus.c:373 src/tools.c:865
 msgid "Enqueue"
 msgstr "Köa"
 
-#: src/context_menus.c:357
-#, fuzzy
+#: src/context_menus.c:379
 msgid "Copy Tracks to Filesystem"
-msgstr "_Uppdatera spår från fil"
+msgstr "Kopiera spår till filsystem"
 
-#: src/context_menus.c:359 src/file_export.c:1069
+#: src/context_menus.c:386 src/file_export.c:1081
 msgid "Create Playlist File"
 msgstr "Skapa spellistefil"
 
-#: src/context_menus.c:361
-msgid "Edit Details"
-msgstr "Redigera detaljinformation"
+#: src/context_menus.c:393
+msgid "Create new Playlist"
+msgstr "Skapa ny spellista"
 
-#: src/context_menus.c:363 gtkpod.glade:12817
-msgid "Update"
-msgstr "Uppdatera"
+#: src/context_menus.c:400
+msgid "Update Tracks from File"
+msgstr "Uppdatera spår från fil"
 
-#: src/context_menus.c:365
-msgid "Sync Dirs"
-msgstr "Synkronisera kataloger"
+#: src/context_menus.c:414
+msgid "Sync Playlist with Dir(s)"
+msgstr "Synkronisera spellista med katalog(er)"
 
-#: src/context_menus.c:367
-msgid "Normalize"
-msgstr "Normalisera"
+#: src/context_menus.c:424
+msgid "Remove All Tracks from iPod"
+msgstr "Ta bort alla spår från iPod"
 
-#: src/context_menus.c:369
-msgid "Create new Playlist"
-msgstr "Skapa ny spellista"
+#: src/context_menus.c:442
+msgid "Remove All Podcasts from iPod"
+msgstr "Ta bort alla podradiosändningar från iPod"
 
-#: src/context_menus.c:372
-msgid "Edit Smart Playlist"
-msgstr "Redigera smart spellista"
+#: src/context_menus.c:457
+msgid "Delete Including Tracks"
+msgstr "Ta bort inklusive spår"
 
-#: src/context_menus.c:378
-msgid "Alphabetize"
-msgstr "Sortera alfabetiskt"
+#: src/context_menus.c:465
+msgid "Delete But Keep Tracks"
+msgstr "Ta bort men behåll spår"
 
-#: src/context_menus.c:402
-msgid "Delete From iPod"
-msgstr "Ta bort från iPod"
+#: src/context_menus.c:473
+msgid "Edit iPod Properties"
+msgstr "Redigera iPod-egenskaper"
 
-#: src/context_menus.c:408
-msgid "Delete From Harddisk"
-msgstr "Ta bort från hårddisk"
+#: src/context_menus.c:493
+msgid "Load iPod"
+msgstr "Ladda iPod"
 
-#: src/context_menus.c:414
-msgid "Delete From Database"
-msgstr "Ta bort från databas"
+#: src/context_menus.c:500
+msgid "Eject iPod"
+msgstr "Mata ut iPod"
 
-#: src/context_menus.c:420
-msgid "Delete From Playlist"
-msgstr "Ta bort från spellista"
+#: src/context_menus.c:517
+msgid "Remove All Tracks from Database"
+msgstr "Ta bort alla spår från databasen"
 
-#: src/context_menus.c:439
-msgid "Delete Including Tracks"
-msgstr "Ta bort inklusive spår"
-
-#: src/context_menus.c:445
+#: src/context_menus.c:532
 msgid "Delete Including Tracks (Harddisk)"
 msgstr "Ta bort inklusive spår (hårddisk)"
 
-#: src/context_menus.c:451
+#: src/context_menus.c:540
 msgid "Delete Including Tracks (Database)"
 msgstr "Ta bort inklusive spår (databas)"
 
-#: src/context_menus.c:457
-msgid "Delete But Keep Tracks"
-msgstr "Ta bort men behåll spår"
+#: src/context_menus.c:548
+msgid "Delete From iPod"
+msgstr "Ta bort från iPod"
 
-#: src/context_menus.c:463
-msgid "Remove All Tracks from iPod"
-msgstr "Ta bort alla spår från iPod"
+#: src/context_menus.c:556
+msgid "Delete From Playlist"
+msgstr "Ta bort från spellista"
 
-#: src/context_menus.c:469
-msgid "Remove All Tracks from Database"
-msgstr "Ta bort alla spår från databasen"
+#: src/context_menus.c:564
+msgid "Delete From Harddisk"
+msgstr "Ta bort från hårddisk"
 
-#: src/context_menus.c:476
-msgid "Remove All Podcasts from iPod"
-msgstr "Ta bort alla podradiosändningar från iPod"
+#: src/context_menus.c:572
+msgid "Delete From Database"
+msgstr "Ta bort från databas"
 
-#: src/context_menus.c:487 gtkpod.glade:156
-msgid "Update Podcasts"
-msgstr "Uppdatera podradiosändningar"
+#: src/context_menus.c:580
+msgid "Alphabetize"
+msgstr "Sortera alfabetiskt"
 
-#: src/context_menus.c:494
-msgid "Podcasts Preferences"
-msgstr "Inställningar för podradiosändningar"
+#: src/context_menus.c:596
+msgid "Edit Playlist Properties"
+msgstr "Redigera spellisteegenskaper"
 
 #: src/date_parser.l:269
 #, c-format
 msgid "Date format error: unrecognized character: '%s'\n"
 msgstr "Fel i datumformat: tecknet känns inte igen: '%s'\n"
 
-#: src/details.c:1035 gtkpod.glade:4365
-msgid "n/a"
-msgstr "ej tillgänglig"
-
-#: src/details.c:1099
+#: src/details.c:1182
 msgid "<b>n/a</b>"
 msgstr "<b>ej tillgänglig</b>"
 
-#: src/display.c:924 src/display.c:1022 src/display.c:1071 src/display.c:1302
-#: src/display.c:1358 src/display.c:1413 src/display.c:1464 src/display.c:1628
-#: src/misc_playlist.c:274
-msgid "No playlist selected"
-msgstr "Ingen spellista markerad"
-
-#: src/display.c:934
+#: src/display.c:891
 msgid "Edit selected entry of which sort tab?"
 msgstr "Redigera markerad rad för vilken sorts flik?"
 
 #. no entry selected
-#: src/display.c:941 src/misc_confirm.c:441 src/misc_track.c:1482
+#: src/display.c:898 src/misc_confirm.c:431 src/misc_track.c:1613
 msgid "No entry selected."
 msgstr "Ingen rad markerad."
 
-#: src/display.c:960 src/display.c:1040 src/display.c:1345 src/display.c:1401
-#: src/display.c:1452 src/display.c:1503
-msgid "No tracks selected"
-msgstr "Inga spår markerade"
-
-#: src/display.c:1056 src/display.c:1322 src/display.c:1378 src/display.c:1430
-#: src/display.c:1481 src/display.c:1650
+#: src/display.c:1057 src/display.c:1384 src/display.c:1440 src/display.c:1494
+#: src/display.c:1549 src/display.c:1810
 #, c-format
 msgid "No entry selected in Sort Tab %d"
 msgstr "Ingen rad markerad i sorteringsflik %d"
 
-#: src/display.c:1095
+#: src/display.c:1096
 msgid "Remove entry of which sort tab from database?"
 msgstr "Ta bort rad för vilken sorts flik från databasen?"
 
-#: src/display.c:1103
+#: src/display.c:1104
 msgid "Remove tracks in selected entry of which filter tab from the iPod?"
 msgstr "Ta bort spår i markerad rad för vilken sorts filterflik från iPod?"
 
-#: src/display.c:1125
+#: src/display.c:1126
 msgid "Remove tracks in selected entry of which filter tab from the harddisk?"
 msgstr ""
 "Ta bort spår i markerad rad för vilken sorts filterflik från hårddisken?"
 
-#: src/display.c:1155
+#: src/display.c:1156
 msgid "Remove tracks in selected entry of which filter tab from playlist?"
 msgstr ""
 "Ta bort spår i markerad rad för vilken sorts filterflik från spellistan?"
 
-#: src/display.c:1174
-msgid "Currently no iPod database selected"
-msgstr "För närvarande är ingen iPod-databas markerad"
+#: src/display.c:1183 src/display.c:1221
+#, c-format
+msgid ""
+"iPod at '%s' is not loaded.\n"
+"Please load it first."
+msgstr ""
 
-#: src/display.c:1202 src/display.c:1229
+#: src/display.c:1265 src/display.c:1292
 msgid "Update selected entry of which sort tab?"
 msgstr "Uppdatera markerad rad för vilken sorts flik?"
 
-#: src/display.c:1248
-msgid "Sync dirs of selected entry in which sort tab?"
-msgstr "Synkronisera markerad rads kataloger för vilken sorts flik?"
-
-#: src/display.c:1316
+#: src/display.c:1378
 msgid "Export selected entry of which sort tab?"
 msgstr "Exportera markerad rad för vilken sorts flik?"
 
-#: src/display.c:1372
+#: src/display.c:1434
 msgid "Create playlist file from selected entry of which sort tab?"
 msgstr "Skapa spellistefil från markerad rad för vilken sorts flik?"
 
-#: src/display.c:1424
+#: src/display.c:1488
 msgid "Play tracks in selected entry of which sort tab?"
 msgstr "Spela spår i markerad rad för vilken sorts flik?"
 
-#: src/display.c:1475
+#: src/display.c:1543
 msgid "Enqueue tracks in selected entry of which sort tab?"
 msgstr "Köa spår i markerad rad för vilken sorts flik?"
 
-#: src/display.c:1640
+#: src/display.c:1800
 msgid "Normalize tracks in selected entry of which sort tab?"
 msgstr "Normalisera spår i markerad rad för vilken sorts flik?"
 
-#: src/display_itdb.c:319
-#, c-format
-msgid "Failed to set cover art: '%s'"
+#: src/display_itdb.c:355
+#, fuzzy, c-format
+msgid "Failed to set cover art: '%s'\n"
 msgstr "Misslyckades ange omslagsbild: '%s'"
 
+#: src/display_itdb.c:835 src/display_itdb.c:967 src/repository.c:1189
+msgid "iPod"
+msgstr "iPod"
+
+#: src/display_itdb.c:844 src/display_itdb.c:965
+msgid "Local"
+msgstr "Lokal"
+
 #. add podcast playlist
-#: src/display_itdb.c:843 src/display_itdb.c:871 src/display_itdb.c:975
-#: gtkpod.glade:13669
+#: src/display_itdb.c:852 src/display_itdb.c:963 src/display_itdb.c:991
 msgid "Podcasts"
 msgstr "Podradiosändningar"
 
-#: src/display_itdb.c:845 src/display_itdb.c:941
-msgid "Local"
-msgstr "Lokal"
-
-#: src/display_itdb.c:1081
+#: src/display_itdb.c:1050
 #, c-format
 msgid "Increased playcount for '%s'"
 msgstr "ökade spelningsantal för '%s'"
 
 #. give a notice on the statusbar -- otherwise the user
 #. * will never know why the drag is not possible
-#: src/display_playlists.c:498 src/display_playlists.c:540
+#: src/display_playlists.c:496 src/display_playlists.c:538
 msgid "Error: drag from iPod not possible in offline mode."
 msgstr "Fel: att dra från iPod är inte möjligt i nerkopplat läge."
 
-#: src/display_playlists.c:567 src/display_songs.c:285
+#: src/display_playlists.c:565 src/display_songs.c:287
 #, c-format
 msgid "Copied one track"
 msgid_plural "Copied %d tracks"
 msgstr[0] "Kopierade ett spår"
 msgstr[1] "Kopierade %d spår"
 
-#: src/display_playlists.c:856
+#: src/display_playlists.c:851
 msgid "Can't reorder sorted treeview."
 msgstr "Kan inte ordna om sorterad trädvy."
 
-#: src/display_playlists.c:947
+#: src/display_playlists.c:944
 #, c-format
 msgid ""
 "This DND type (%d) is not (yet) supported. If you feel implementing this "
@@ -468,18 +2294,14 @@
 "vore användbart att implementera, kontakta gärna upphovsmannen.\n"
 "\n"
 
-#: src/display_playlists.c:1830 gtkpod.glade:3997
-msgid "Playlists"
-msgstr "Spellistor"
-
-#: src/display_songs.c:280
+#: src/display_songs.c:282
 #, c-format
 msgid "Moved one track"
 msgid_plural "Moved %d tracks"
 msgstr[0] "Flyttade ett spår"
 msgstr[1] "Flyttade %d spår"
 
-#: src/display_songs.c:1669
+#: src/display_songs.c:1690
 #, c-format
 msgid ""
 "Cannot unsort track view because of a bug in the GTK lib you are using (%d.%"
@@ -492,121 +2314,88 @@
 "tillbaka till det osorterade tillståndet.\n"
 "\n"
 
-#: src/display_songs.c:1922
+#: src/display_songs.c:1923
 msgid "Rtng"
 msgstr "Betyg"
 
-#: src/display_songs.c:1925
+#: src/display_songs.c:1926
 msgid "#"
 msgstr "#"
 
-#: src/display_songs.c:1928
+#: src/display_songs.c:1929
 msgid "CD"
 msgstr "Cd"
 
-#: src/display_songs.c:1931
+#: src/display_songs.c:1932
 msgid "ID"
 msgstr "Id"
 
-#: src/display_songs.c:1934
+#: src/display_songs.c:1935
 msgid "Trnsfrd"
 msgstr "Överfört"
 
-#: src/display_songs.c:1938
+#: src/display_songs.c:1939
 msgid "Cmpl"
 msgstr "Komp."
 
-#: src/display_songs.c:1942 src/display_spl.c:94
+#: src/display_songs.c:1945 src/display_spl.c:94
 msgid "Time"
 msgstr "Tid"
 
-#: src/display_songs.c:1945
+#: src/display_songs.c:1948
 msgid "Plycnt"
 msgstr "Speln."
 
-#: src/display_songs.c:1948 gtkpod.glade:2433
-msgid "Played"
-msgstr "Spelad"
-
-#: src/display_songs.c:1951 gtkpod.glade:2456
-msgid "Modified"
-msgstr "Ändrad"
-
-#: src/display_songs.c:1954 src/display_sorttabs.c:3117 gtkpod.glade:2551
-msgid "Added"
-msgstr "Tillagd"
-
-#: src/display_songs.c:1957
+#: src/display_songs.c:1960
 msgid "Released"
 msgstr "Utgiven"
 
-#: src/display_songs.c:1960 src/display_sorttabs.c:2856 src/display_spl.c:88
+#: src/display_songs.c:1963 src/display_sorttabs.c:2957 src/display_spl.c:88
 #: src/misc_conversion.c:85
 msgid "Year"
 msgstr "Ã…r"
 
-#: src/display_songs.c:1963
+#: src/display_songs.c:1966
 msgid "Vol."
 msgstr "Vol."
 
-#: src/display_songs.c:1966
+#: src/display_songs.c:1969
 msgid "Sndchk."
 msgstr "Ljudkontr."
 
-#: src/display_sorttabs.c:400
+#: src/display_sorttabs.c:456
 msgid "'Played' condition ignored because of error."
 msgstr "Tillståndet 'Spelad' ignoreras på grund av fel."
 
-#: src/display_sorttabs.c:403
+#: src/display_sorttabs.c:459
 msgid "'Modified' condition ignored because of error."
 msgstr "Tillståndet 'Ändrad' ignoreras på grund av fel."
 
-#: src/display_sorttabs.c:406
+#: src/display_sorttabs.c:462
 msgid "'Added' condition ignored because of error."
 msgstr "Tillståndet 'Tillagd' ignoreras på grund av fel."
 
-#: src/display_sorttabs.c:1492 src/misc_conversion.c:60
+#: src/display_sorttabs.c:1582 src/misc_conversion.c:60
 msgid "All"
 msgstr "Alla"
 
-#: src/display_sorttabs.c:1518
+#: src/display_sorttabs.c:1608
 msgid "Compilations"
 msgstr "Samlingar"
 
-#: src/display_sorttabs.c:2841 src/display_spl.c:85 src/misc_conversion.c:62
-#: gtkpod.glade:8709
-msgid "Artist"
-msgstr "Artist"
-
-#. 0
-#: src/display_sorttabs.c:2844 src/display_spl.c:84 src/misc_conversion.c:61
-#: gtkpod.glade:8753
-msgid "Album"
-msgstr "Album"
-
-#: src/display_sorttabs.c:2847 src/display_spl.c:89 src/misc_conversion.c:64
-#: gtkpod.glade:8731
-msgid "Genre"
-msgstr "Genre"
-
-#: src/display_sorttabs.c:2850
+#: src/display_sorttabs.c:2951
 msgid "Comp."
 msgstr "Komp."
 
-#: src/display_sorttabs.c:2853 src/display_spl.c:83 src/misc_conversion.c:63
-#: gtkpod.glade:8797
-msgid "Title"
-msgstr "Titel"
-
-#: src/display_sorttabs.c:2859
+#: src/display_sorttabs.c:2960
 msgid "Special"
 msgstr "Special"
 
-#: src/display_sorttabs.c:3115
+#: src/display_sorttabs.c:3216
 msgid "Last Played"
 msgstr "Senast spelad"
 
-#: src/display_sorttabs.c:3116
+#: src/display_sorttabs.c:3217
 msgid "Last Modified"
 msgstr "Senast ändrad"
 
@@ -630,7 +2419,7 @@
 msgid "Hz"
 msgstr "Hz"
 
-#: src/display_spl.c:75 src/display_spl.c:160 src/info.c:732
+#: src/display_spl.c:75 src/display_spl.c:160 src/info.c:777
 msgid "MB"
 msgstr "Mibyte"
 
@@ -671,15 +2460,6 @@
 msgid "Date added"
 msgstr "Tillagd datum"
 
-#. 5
-#: src/display_spl.c:97 src/misc_conversion.c:66 gtkpod.glade:8775
-msgid "Composer"
-msgstr "Kompositör"
-
-#: src/display_spl.c:98 src/misc_conversion.c:78 gtkpod.glade:2387
-msgid "Playcount"
-msgstr "Spelningsantal"
-
 #: src/display_spl.c:99
 msgid "Last played"
 msgstr "Senast spelad"
@@ -688,10 +2468,6 @@
 msgid "Disc number"
 msgstr "Skivnummer"
 
-#: src/display_spl.c:101 src/misc_conversion.c:79 gtkpod.glade:2410
-msgid "Rating"
-msgstr "Betyg"
-
 #: src/display_spl.c:102 src/misc_conversion.c:88
 msgid "Compilation"
 msgstr "Samling"
@@ -704,10 +2480,6 @@
 msgid "Grouping"
 msgstr "Gruppering"
 
-#: src/display_spl.c:105 gtkpod.glade:1443
-msgid "Playlist"
-msgstr "Spellista"
-
 #: src/display_spl.c:111
 msgid "contains"
 msgstr "innehåller"
@@ -782,7 +2554,7 @@
 msgid "hours"
 msgstr "timmar"
 
-#: src/display_spl.c:163 src/info.c:732
+#: src/display_spl.c:163 src/info.c:777
 msgid "GB"
 msgstr "Gibyte"
 
@@ -838,25 +2610,25 @@
 msgid "lowest rating"
 msgstr "lägst betyg"
 
-#: src/display_spl.c:1049 src/display_spl.c:1064
+#: src/display_spl.c:1047 src/display_spl.c:1062
 msgid "to"
 msgstr "till"
 
-#: src/display_spl.c:1276
+#: src/display_spl.c:1279
 msgid "-"
 msgstr "-"
 
-#: src/display_spl.c:1286
+#: src/display_spl.c:1294
 msgid "+"
 msgstr "+"
 
-#: src/display_spl.c:1503 src/misc_playlist.c:67 src/misc_playlist.c:69
-#: src/misc_playlist.c:94 src/misc_playlist.c:96 src/misc_playlist.c:415
-#: src/misc_playlist.c:417
+#: src/display_spl.c:1513 src/misc_playlist.c:67 src/misc_playlist.c:69
+#: src/misc_playlist.c:94 src/misc_playlist.c:96 src/misc_playlist.c:429
+#: src/misc_playlist.c:431
 msgid "New Playlist"
 msgstr "Ny spellista"
 
-#: src/file.c:195
+#: src/file.c:230
 #, c-format
 msgid ""
 "'%s' is a directory, not a playlist file.\n"
@@ -865,7 +2637,7 @@
 "'%s' är en katalog, inte en spellistefil.\n"
 "\n"
 
-#: src/file.c:222
+#: src/file.c:258
 #, c-format
 msgid ""
 "'%s' is a not a known playlist file.\n"
@@ -874,7 +2646,7 @@
 "'%s' är inte en känd spellistefil.\n"
 "\n"
 
-#: src/file.c:239
+#: src/file.c:275
 #, c-format
 msgid ""
 "Cannot open '%s' for reading.\n"
@@ -883,54 +2655,54 @@
 "Kan inte öppna '%s' för läsning.\n"
 "\n"
 
-#: src/file.c:322
+#: src/file.c:359
 #, c-format
 msgid "Skipping '%s' because it is a directory.\n"
 msgstr "Hoppar över '%s' eftersom det är en katalog.\n"
 
-#: src/file.c:327
+#: src/file.c:364
 #, c-format
 msgid "Skipping '%s' to avoid adding playlist file recursively\n"
 msgstr ""
 "Hoppar över '%s' för att undvika att spellistfiler läggs till rekursivt.\n"
 
-#: src/file.c:582
+#: src/file.c:619
 #, c-format
 msgid "Unknown token '%s' in template '%s'\n"
 msgstr "Okänd beteckning '%s' i mallen '%s'\n"
 
-#: src/file.c:817
+#: src/file.c:871
 #, c-format
 msgid "Local filename not valid (%s)"
 msgstr "Lokalt filnamn inte giltigt (%s)"
 
-#: src/file.c:870
+#: src/file.c:930
 #, c-format
 msgid "No information found for user '%s' in '%s'"
 msgstr "Ingen information hittades för användaren '%s' i '%s'"
 
-#: src/file.c:877
+#: src/file.c:939
 #, c-format
 msgid "mserv data file (%s) not available for track (%s)"
 msgstr "Datafilen från mserv (%s) är inte tillgänglig för spåret (%s)"
 
-#: src/file.c:885
+#: src/file.c:947
 #, c-format
 msgid "Track (%s) not in mserv music root directory (%s)"
 msgstr "Spåret (%s) finns inte i mserv rotkatalog för musik (%s)"
 
-#: src/file.c:990
+#: src/file.c:1055
 #, c-format
 msgid ""
 "The following track could not be processed (file does not exist): '%s'\n"
 msgstr "Följande spår kunde inte behandlas (filen finns inte): '%s'\n"
 
-#: src/file.c:1039
+#: src/file.c:1118
 #, c-format
 msgid "The following track could not be processed (filetype unknown): '%s'\n"
 msgstr "Följande spår kunde inte behandlas (filtypen okänd): '%s'\n"
 
-#: src/file.c:1121
+#: src/file.c:1211
 #, c-format
 msgid ""
 "The following track could not be processed (filetype is known but analysis "
@@ -939,122 +2711,34 @@
 "Följande spår kunde inte behandlas (filtypen känd, men analys misslyckades): "
 "'%s'\n"
 
-#: src/file.c:1150 src/file.c:1205
+#: src/file.c:1241 src/file.c:1295
 msgid "Nothing to update"
 msgstr "Ingenting att uppdatera"
 
-#: src/file.c:1170
+#: src/file.c:1262
 #, c-format
 msgid "Updating %s"
 msgstr "Uppdaterar %s"
 
-#: src/file.c:1186
+#: src/file.c:1276
 msgid "Updated selected tracks with info from file."
 msgstr "Uppdaterar markerade spår med information från fil."
 
-#: src/file.c:1218
+#: src/file.c:1310
 #, c-format
 msgid "Retrieving mserv data %s"
 msgstr "Hämtar data från mserv %s"
 
-#. no path available
-#: src/file.c:1224 src/file.c:1902
+#: src/file.c:1315
 msgid "no filename available"
 msgstr "inget filnamn tillgängligt"
 
-#: src/file.c:1229
+#: src/file.c:1320
 msgid "Updated selected tracks with data from mserv."
 msgstr "Uppdaterar markerade spår med data från mserv."
 
-#: src/file.c:1296
+#: src/file.c:1341
 #, c-format
-msgid "Syncing directory '%s'"
-msgstr "Synkroniserar katalog '%s'"
-
-#: src/file.c:1321
-msgid "Syncing completed. No files deleted."
-msgstr "Synkronisering klar. Inga filer har tagits bort."
-
-#. gint id,
-#. gboolean modal,
-#. title
-#. label
-#. scrolled text
-#: src/file.c:1434
-msgid "Never delete any files when syncing"
-msgstr "Ta aldrig bort några filer vid synkronisering"
-
-#: src/file.c:1463
-msgid "Syncing completed."
-msgstr "Synkronisering klar."
-
-#: src/file.c:1483
-msgid "Syncing aborted"
-msgstr "Synkronisering avbruten"
-
-#: src/file.c:1521
-msgid "No tracks in selection"
-msgstr "Inga spår i markeringen"
-
-#: src/file.c:1571
-#, c-format
-msgid "'%s' is not a directory. Ignored.\n"
-msgstr "'%s' är inte en katalog. Ignoreras.\n"
-
-#. no directory names available
-#: src/file.c:1601
-msgid ""
-"No directory names were stored. Make sure that you enable 'Write extended "
-"information' in the Export section of the preferences at the time of "
-"importing files.\n"
-"\n"
-"To synchronize directories now, activate the duplicate detection ('Don't "
-"allow file duplication') in the Import section and add the directories you "
-"want to sync again.\n"
-msgstr ""
-"Inga katalognamn lagrades. Försäkra dig om att du aktiverar 'Skriv utökad "
-"information' under avdelningen Export i inställningarna vid tillfället då "
-"filer ska importeras.\n"
-"\n"
-"För att synkronisera kataloger nu, aktivera upptäckt av duplikat (Tillåt "
-"inte duplicerade filer) under avdelningen Import och lägg till katalogerna "
-"du vill synkronisera igen.\n"
-
-#: src/file.c:1605
-msgid "No valid directories have been found. Sync aborted.\n"
-msgstr "Inga giltiga kataloger hittades. Synkronisering avbruten.\n"
-
-#: src/file.c:1614
-msgid ""
-"The (former) contents of the following directories will be removed from the "
-"database:\n"
-"\n"
-msgstr ""
-"Det (tidigare) innehållet i följande kataloger kommer att tas bort från "
-"databasen:\n"
-"\n"
-
-#: src/file.c:1622
-msgid ""
-"The following directories will be synchronized:\n"
-"\n"
-msgstr ""
-"Följande kataloger kommer att synkroniseras:\n"
-"\n"
-
-#. gint id,
-#. gboolean modal,
-#: src/file.c:1633
-msgid "Synchronize directories"
-msgstr "Synkronisera kataloger"
-
-#. title
-#: src/file.c:1634
-msgid "OK to synchronize the following directories?"
-msgstr "Ok att synkronisera följande kataloger?"
-
-#: src/file.c:1672
-#, c-format
 msgid "The following track could not be updated"
 msgid_plural "The following %d tracks could not be updated"
 msgstr[0] "Följande spår kunde inte uppdateras"
@@ -1062,11 +2746,11 @@
 
 #. gint id,
 #. gboolean modal,
-#: src/file.c:1678
+#: src/file.c:1347
 msgid "Failed Track Update"
 msgstr "Uppdatering av spår misslyckades"
 
-#: src/file.c:1736
+#: src/file.c:1405
 #, c-format
 msgid "The following track has been updated"
 msgid_plural "The following %d tracks have been updated"
@@ -1075,11 +2759,11 @@
 
 #. gint id,
 #. gboolean modal,
-#: src/file.c:1742
+#: src/file.c:1411
 msgid "Successful Track Update"
 msgstr "Uppdatering av spår lyckades"
 
-#: src/file.c:1801
+#: src/file.c:1470
 #, c-format
 msgid "No mserv information could be retrieved for the following track"
 msgid_plural ""
@@ -1089,25 +2773,47 @@
 
 #. gint id,
 #. gboolean modal,
-#: src/file.c:1807
+#: src/file.c:1476
 msgid "mserv data retrieval problem"
 msgstr "Problem att hämta data från mserv"
 
-#: src/file.c:1948
-msgid "file not found"
-msgstr "filen hittades inte"
+#: src/file.c:1565
+msgid "no local filename available, file on the iPod will be used instead"
+msgstr "inget lokalt filnamn tillgängligt, filen på iPod används istället"
 
-#: src/file.c:1952
-msgid "format not supported"
-msgstr "formatet stöds inte"
+#: src/file.c:1571
+msgid "no local filename available and copy on iPod cannot be found"
+msgstr "inget lokalt filnamn tillgängligt och kopian på iPod kan inte hittas"
 
-#: src/file.c:2033
+#: src/file.c:1575 src/file.c:1593
+msgid "no local filename available"
+msgstr "inget lokalt filnamn tillgängligt"
+
+#: src/file.c:1583
+msgid "local file could not be found, file on the iPod will be used instead"
+msgstr "den lokala filen kunde inte hittas, filen på iPod används istället"
+
+#: src/file.c:1589
+msgid "local file as well as copy on the iPod cannot be found"
+msgstr "den lokala filen samt kopian på iPod kan inte hittas"
+
+#. update not successful -- log this track for later display
+#: src/file.c:1651
+msgid "update failed (format no supported?)"
+msgstr "uppdatering misslyckades (formatet stöds kanske inte)"
+
+#: src/file.c:1734
 #, c-format
 msgid "Processing '%s'..."
 msgstr "Behandlar '%s'..."
 
-#: src/file.c:2137 src/misc_track.c:1169 src/misc_track.c:1225
+#: src/file.c:1740
 #, c-format
+msgid "File skipped. match exclude masks: '%s'\n"
+msgstr ""
+
+#: src/file.c:1852 src/misc_track.c:1299 src/misc_track.c:1355
+#, c-format
 msgid ""
 "Podcast already present: '%s'\n"
 "\n"
@@ -1115,7 +2821,7 @@
 "Podradiosändning finns redan: '%s'\n"
 "\n"
 
-#: src/file.c:2198
+#: src/file.c:1913
 #, c-format
 msgid ""
 "Writing to video files not yet supported (%s).\n"
@@ -1124,35 +2830,35 @@
 "Att skriva till videofiler stöds inte än (%s).\n"
 "\n"
 
-#: src/file.c:2252 src/file.c:2266
+#: src/file.c:1965 src/file.c:1979
 #, c-format
 msgid "Couldn't change tags of file: %s\n"
 msgstr "Kunde inte ändra taggar för filen: %s\n"
 
-#: src/file.c:2550
+#: src/file.c:2076
 #, c-format
 msgid "Could not open '%s' for reading and writing.\n"
 msgstr "Kunde inte öppna '%s' för läsning och skrivning.\n"
 
-#: src/file.c:2557
+#: src/file.c:2083
 #, c-format
 msgid "Could not obtain lock on '%s'.\n"
 msgstr "Kunde inte låsa '%s'.\n"
 
 #. error!
-#: src/file.c:2574 src/file.c:2583 src/file.c:2594 src/file.c:2604
+#: src/file.c:2100 src/file.c:2109 src/file.c:2120 src/file.c:2130
 #, c-format
 msgid "Malformed line in '%s': %s\n"
 msgstr "Felaktig rad i '%s': %s\n"
 
 #. gint id,
 #. gboolean modal,
-#: src/file.c:2633
+#: src/file.c:2159
 msgid "Remove offline playcounts?"
 msgstr "Ta bort nerkopplade spelningsantal?"
 
 #. title
-#: src/file.c:2634
+#: src/file.c:2160
 msgid ""
 "Some tracks played offline could not be found in the iTunesDB. Press 'OK' to "
 "remove them from the offline playcount file, 'Cancel' to keep them."
@@ -1161,12 +2867,12 @@
 "Klicka på 'Ok' för att ta bort dem från filen med nerkopplade "
 "spelningsantal, eller 'Avbryt' för att behålla dem."
 
-#: src/file.c:2651
+#: src/file.c:2177
 #, c-format
 msgid "Error writing to '%s'.\n"
 msgstr "Fel vid skrivning till '%s'.\n"
 
-#: src/file.c:2700
+#: src/file.c:2232 src/tools.c:269
 #, c-format
 msgid ""
 "Normalization failed: file type not supported (%s).\n"
@@ -1175,7 +2881,7 @@
 "Normalisering misslyckades: Filtypen stöds inte (%s).\n"
 "\n"
 
-#: src/file.c:2715
+#: src/file.c:2248 src/tools.c:286
 #, c-format
 msgid ""
 "Normalization failed: file not available (%s).\n"
@@ -1184,87 +2890,87 @@
 "Normalisering misslyckades: Filen inte tillgänglig (%s).\n"
 "\n"
 
-#: src/file_export.c:181
+#: src/file_export.c:182
 #, c-format
 msgid "Skipping existing file with same length: '%s'\n"
 msgstr "Hoppar över befintlig fil med samma längd: '%s'\n"
 
-#: src/file_export.c:189
+#: src/file_export.c:190
 #, c-format
 msgid "Overwriting existing file: '%s'\n"
 msgstr "Skriver över befintlig fil: '%s'\n"
 
-#: src/file_export.c:206
+#: src/file_export.c:207
 #, c-format
 msgid "Error copying '%s' to '%s': Permission Error (%s)\n"
 msgstr "Fel vid kopiering av '%s' till '%s': Fel i rättigheter (%s)\n"
 
-#: src/file_export.c:208
+#: src/file_export.c:209
 #, c-format
 msgid "Error copying '%s' to '%s' (%s)\n"
 msgstr "Fel vid kopiering av '%s' till '%s' (%s)\n"
 
-#: src/file_export.c:216
+#: src/file_export.c:217
 #, c-format
 msgid "Unable to open '%s' for reading\n"
 msgstr "Kan inte öppna '%s' för läsning.\n"
 
-#: src/file_export.c:323
+#: src/file_export.c:327
 #, c-format
 msgid "Could find file for '%s' on the iPod\n"
 msgstr "Kunde hitta fil för '%s' på iPod\n"
 
 #. create the dialog window
-#: src/file_export.c:390 src/file_itunesdb.c:1062 src/tools.c:148
+#: src/file_export.c:395 src/file_itunesdb.c:1230 src/tools.c:359
 msgid "Information"
 msgstr "Information"
 
-#: src/file_export.c:401 src/tools.c:160
+#: src/file_export.c:406 src/tools.c:371
 msgid "Press button to abort."
 msgstr "Tryck på knappen för att avbryta."
 
-#: src/file_export.c:414
+#: src/file_export.c:419
 msgid "copying..."
 msgstr "kopierar..."
 
-#: src/file_export.c:468
+#: src/file_export.c:472
 #, c-format
 msgid "Failed to write '%s-%s'\n"
 msgstr "Misslyckades skriva '%s-%s'\n"
 
-#: src/file_export.c:476
+#: src/file_export.c:485
 #, c-format
 msgid "Copied %d of %d track."
 msgid_plural "Copied %d of %d tracks."
 msgstr[0] "Kopierade %d av %d spår."
 msgstr[1] "Kopierade %d av %d spår."
 
-#: src/file_export.c:494 src/file_itunesdb.c:1326 src/tools.c:307
+#: src/file_export.c:501 src/file_itunesdb.c:1495 src/tools.c:517
 #, c-format
 msgid "%d%% (%d:%02d:%02d left)"
 msgstr "%d%% (%d:%02d:%02d kvar)"
 
-#: src/file_export.c:503
+#: src/file_export.c:510
 msgid "Some tracks were not copied."
 msgstr "Några spår kopierades inte."
 
-#: src/file_export.c:560
+#: src/file_export.c:575
 msgid "Export from iPod database not possible in offline mode."
 msgstr "Export från iPod-databasen är inte möjlig i nerkopplat läge."
 
-#: src/file_export.c:568
+#: src/file_export.c:583
 msgid "Select Export Destination Directory"
 msgstr "Välj målkatalog för export"
 
-#: src/file_export.c:717
+#: src/file_export.c:732
 msgid "Drag from iPod database not possible in offline mode."
 msgstr "Att dra från iPod-databasen är inte möjlig i nerkopplat läge."
 
-#: src/file_export.c:751
+#: src/file_export.c:766
 msgid "The following tracks have to be copied to your harddisk"
 msgstr "Följande spår måste kopieras till din hårddisk"
 
-#: src/file_export.c:796
+#: src/file_export.c:811
 msgid ""
 "Some tracks were not copied to your harddisk. Only the copied tracks will be "
 "included in the current drag and drop operation.\n"
@@ -1274,7 +2980,7 @@
 "kommer att ingå i den nuvarande drag och släpp åtgärden.\n"
 "\n"
 
-#: src/file_export.c:992
+#: src/file_export.c:1006
 #, c-format
 msgid ""
 "No valid filename for: %s\n"
@@ -1283,14 +2989,14 @@
 "Inget giltigt filnamn för: %s\n"
 "\n"
 
-#: src/file_export.c:1008
+#: src/file_export.c:1022
 #, c-format
 msgid "Created playlist with one track."
 msgid_plural "Created playlist with %d tracks."
 msgstr[0] "Skapade spellista med ett spår."
 msgstr[1] "Skapade spellista med %d spår."
 
-#: src/file_export.c:1015
+#: src/file_export.c:1027
 #, c-format
 msgid ""
 "Could not open '%s' for writing (%s).\n"
@@ -1299,25 +3005,25 @@
 "Kunde inte öppna '%s' för skrivning (%s).\n"
 "\n"
 
-#: src/file_itunesdb.c:114
+#: src/file_itunesdb.c:115
 #, c-format
 msgid "Matching MD5 checksum for file %d/%d"
 msgstr "Matchande MD5-checksumma för filen %d/%d"
 
-#: src/file_itunesdb.c:242
+#: src/file_itunesdb.c:223
 msgid "Could not open \"iTunesDB.ext\" for reading extended info.\n"
 msgstr "Kunde inte öppna \"iTunesDB.ext\" för att läsa utökad information.\n"
 
-#: src/file_itunesdb.c:249
+#: src/file_itunesdb.c:230
 msgid "Could not create hash value from itunesdb\n"
 msgstr "Kunde inte skapa checksumma från itunesdb\n"
 
-#: src/file_itunesdb.c:263
+#: src/file_itunesdb.c:244
 #, c-format
 msgid "Error while reading extended info: %s\n"
 msgstr "Fel vid läsning av utökad information: %s\n"
 
-#: src/file_itunesdb.c:280
+#: src/file_itunesdb.c:261
 #, c-format
 msgid ""
 "iTunesDB '%s' does not match checksum in extended information file '%s'\n"
@@ -1331,7 +3037,7 @@
 "Det kan ta lång tid.\n"
 "\n"
 
-#: src/file_itunesdb.c:292
+#: src/file_itunesdb.c:273
 #, c-format
 msgid ""
 "%s:\n"
@@ -1340,7 +3046,7 @@
 "%s:\n"
 "Förväntande \"itunesdb_hash=\", men hittade \"%s\"\n"
 
-#: src/file_itunesdb.c:352
+#: src/file_itunesdb.c:333
 #, c-format
 msgid ""
 "%s:\n"
@@ -1349,7 +3055,7 @@
 "%s:\n"
 "Formatfel: %s\n"
 
-#: src/file_itunesdb.c:407
+#: src/file_itunesdb.c:377
 msgid ""
 "No MD5 checksums on individual tracks are available.\n"
 "\n"
@@ -1365,7 +3071,7 @@
 "med andra program än gtkpod.\n"
 "\n"
 
-#: src/file_itunesdb.c:462
+#: src/file_itunesdb.c:439
 msgid ""
 "Extended info will not be used. If you have non-transferred tracks,\n"
 "these will be lost.\n"
@@ -1373,15 +3079,15 @@
 "Utökad information kommer inte att användas. Om\n"
 "du har spår som inte överförts, går de förlorade.\n"
 
-#: src/file_itunesdb.c:470
+#: src/file_itunesdb.c:447
 msgid "Offline iPod database successfully imported"
 msgstr "Nerkopplad iPod-databas importerad med lyckat resultat"
 
-#: src/file_itunesdb.c:473
+#: src/file_itunesdb.c:450
 msgid "Local database successfully imported"
 msgstr "Lokal databas importerad med lyckat resultat"
 
-#: src/file_itunesdb.c:481
+#: src/file_itunesdb.c:458
 #, c-format
 msgid ""
 "Offline iPod database import failed: '%s'\n"
@@ -1390,7 +3096,7 @@
 "Import av nerkopplad iPod-databas misslyckades: '%s'\n"
 "\n"
 
-#: src/file_itunesdb.c:485
+#: src/file_itunesdb.c:462
 #, c-format
 msgid ""
 "Local database import failed: '%s'\n"
@@ -1399,7 +3105,7 @@
 "Import av lokal databas misslyckades: '%s'\n"
 "\n"
 
-#: src/file_itunesdb.c:492
+#: src/file_itunesdb.c:469
 msgid ""
 "Offline iPod database import failed: \n"
 "\n"
@@ -1407,7 +3113,7 @@
 "Import av nerkopplad iPod-databas misslyckades: \n"
 "\n"
 
-#: src/file_itunesdb.c:495
+#: src/file_itunesdb.c:472
 msgid ""
 "Local database import failed: \n"
 "\n"
@@ -1415,7 +3121,7 @@
 "Import av lokal databas misslyckades: \n"
 "\n"
 
-#: src/file_itunesdb.c:502 src/file_itunesdb.c:550
+#: src/file_itunesdb.c:479
 #, c-format
 msgid ""
 "'%s' does not exist. Import aborted.\n"
@@ -1424,15 +3130,15 @@
 "'%s' finns inte. Import avbruten.\n"
 "\n"
 
-#: src/file_itunesdb.c:521
+#: src/file_itunesdb.c:502
 msgid "Extended info will not be used.\n"
 msgstr "Utökad information kommer inte att användas.\n"
 
-#: src/file_itunesdb.c:528
+#: src/file_itunesdb.c:509
 msgid "iPod Database Successfully Imported"
 msgstr "iPod-databasen importerad med lyckat resultat"
 
-#: src/file_itunesdb.c:535
+#: src/file_itunesdb.c:516
 #, c-format
 msgid ""
 "iPod Database Import Failed: '%s'\n"
@@ -1441,7 +3147,7 @@
 "Import av iPod-databasen misslyckades: '%s'\n"
 "\n"
 
-#: src/file_itunesdb.c:541
+#: src/file_itunesdb.c:522
 msgid ""
 "iPod Database Import Failed.\n"
 "\n"
@@ -1449,16 +3155,35 @@
 "Import av iPod-databasen misslyckades.\n"
 "\n"
 
-#: src/file_itunesdb.c:890
+#: src/file_itunesdb.c:531
 #, c-format
+msgid ""
+"'%s' (or similar) does not exist. Import aborted.\n"
+"\n"
+msgstr ""
+"'%s' (eller liknande) finns inte. Import avbruten.\n"
+"\n"
+
+#: src/file_itunesdb.c:817
+#, c-format
+msgid ""
+"Could not find iPod directory structure at '%s'.\n"
+"If you are sure that the iPod is properly mounted at '%s', gtkpod can create "
+"the directory structure for you.\n"
+"\n"
+"Do you want to create the directory structure now?\n"
+msgstr ""
+
+#: src/file_itunesdb.c:1071
+#, c-format
 msgid "Could not open \"%s\" for writing extended info.\n"
 msgstr "Kunde inte öppna \"%s\" för att skriva utökad information.\n"
 
-#: src/file_itunesdb.c:905
+#: src/file_itunesdb.c:1086
 msgid "Aborted writing of extended info.\n"
 msgstr "Avbröt skrivning av utökad information.\n"
 
-#: src/file_itunesdb.c:1073
+#: src/file_itunesdb.c:1241
 msgid ""
 "Press button to abort.\n"
 "Export can be continued at a later time."
@@ -1466,26 +3191,26 @@
 "Tryck på knappen för att avbryta.\n"
 "Exporten kan fortsättas vid ett senare tillfälle."
 
-#: src/file_itunesdb.c:1142
+#: src/file_itunesdb.c:1310
 msgid "deleting..."
 msgstr "tar bort..."
 
-#: src/file_itunesdb.c:1246
+#: src/file_itunesdb.c:1413
 msgid "preparing to copy..."
 msgstr "förbereder kopiering..."
 
-#: src/file_itunesdb.c:1309
+#: src/file_itunesdb.c:1480
 #, c-format
 msgid "Copied %d of %d new track."
 msgid_plural "Copied %d of %d new tracks."
 msgstr[0] "Kopierade %d av %d nya spår."
 msgstr[1] "Kopierade %d av %d nya spår."
 
-#: src/file_itunesdb.c:1336
+#: src/file_itunesdb.c:1506
 msgid "Some tracks were not written to iPod. Export aborted!"
 msgstr "Vissa spår skrevs inte till iPod. Export avbruten."
 
-#: src/file_itunesdb.c:1389
+#: src/file_itunesdb.c:1557
 #, c-format
 msgid ""
 "You did not import the existing iTunesDB ('%s'). This is most likely "
@@ -1502,7 +3227,7 @@
 "lagringen. Om du avbryter, kan du importera befintlig databas innan du "
 "använder den här funktionen igen.\n"
 
-#: src/file_itunesdb.c:1419
+#: src/file_itunesdb.c:1588
 msgid ""
 "iPod directory structure must be present before synching to the iPod can be "
 "performed.\n"
@@ -1510,59 +3235,61 @@
 "Katalogstrukturen i iPod måste finnas innan synkronisering av iPod kan "
 "utföras.\n"
 
-#: src/file_itunesdb.c:1428
+#: src/file_itunesdb.c:1597
 msgid "Some tracks could not be deleted from the iPod. Export aborted!"
 msgstr "Vissa spår kunde inte tas bort från iPod. Export avbruten."
 
-#: src/file_itunesdb.c:1444
-msgid "Now writing iTunesDB. Please wait..."
-msgstr "Skriver nu iTunes databas. Vänta..."
+#: src/file_itunesdb.c:1613
+msgid "Now writing database. Please wait..."
+msgstr "Skriver nu databas. Vänta..."
 
-#: src/file_itunesdb.c:1490
+#: src/file_itunesdb.c:1659
 #, c-format
 msgid "Extended information file not deleted: '%s'"
 msgstr "Filen med utökad information inte borttagen: '%s'"
 
-#: src/file_itunesdb.c:1577
-msgid "iPod Database Saved"
-msgstr "iPod-databas sparad"
+#: src/file_itunesdb.c:1745
+#, c-format
+msgid "%s: Database saved"
+msgstr "%s: Databas sparad"
 
-#: src/file_itunesdb.c:1636
-msgid "Syncing contacts, calendar and notes..."
-msgstr "Synkroniserar kontakter, kalender och anteckningar..."
+#: src/file_itunesdb.c:1749
+#, c-format
+msgid "%s: Changes saved"
+msgstr "%s: Ändringar sparade"
 
-#: src/fileselection.c:123
+#: src/fileselection.c:127
 msgid "Successfully added files"
 msgstr "Filer tillagda med lyckat resultat"
 
-#: src/fileselection.c:125
+#: src/fileselection.c:129
 msgid "Some files were not added successfully"
 msgstr "Vissa filer kunde inte läggas till med lyckat resultat"
 
 #. Create the file chooser, and handle the response
-#: src/fileselection.c:148
+#: src/fileselection.c:157
 msgid "Add Files"
 msgstr "Lägg till filer"
 
 #. Create the file chooser, and handle the response
-#: src/fileselection.c:227
+#: src/fileselection.c:250
 msgid "Add Playlists"
 msgstr "Lägg till spellistor"
 
 #. Create the file chooser, and handle the response
-#: src/fileselection.c:270
+#: src/fileselection.c:297
 msgid "Set Cover"
 msgstr "Ange omslag"
 
-#: src/fileselection.c:491
+#: src/fileselection.c:718
 msgid "Select directory to add recursively"
 msgstr "Markera katalog att lägga till rekursivt"
 
-#: src/fileselection.c:759
+#: src/fileselection.c:989
 msgid "Ok"
 msgstr "Ok"
 
-#: src/fileselection.c:768
+#: src/fileselection.c:998
 msgid "Cancel"
 msgstr "Avbryt"
 
@@ -1625,55 +3352,73 @@
 msgid "%s: option `-W %s' doesn't allow an argument\n"
 msgstr "%s: väljaren `-W %s' tillåter inte något argument\n"
 
-#: src/info.c:377
+#: src/info.c:383
 msgid "n/c"
 msgstr "okänt"
 
-#: src/info.c:382 src/info.c:793
+#: src/info.c:388 src/info.c:835
 msgid "offline"
 msgstr "nerkopplad"
 
-#: src/info.c:469
+#: src/info.c:483
 #, c-format
 msgid " P:%d T:%d/%d"
 msgstr " L:%d S:%d/%d"
 
-#: src/info.c:732
+#: src/info.c:777
 msgid "B"
 msgstr "byte"
 
-#: src/info.c:732
+#: src/info.c:777
 msgid "kB"
 msgstr "Kibyte"
 
-#: src/info.c:732
+#: src/info.c:777
 msgid "TB"
 msgstr "Tibyte"
 
-#: src/info.c:778
+#: src/info.c:820
 #, c-format
 msgid " %s Free"
 msgstr " %s fritt"
 
-#: src/info.c:783
+#: src/info.c:825
 #, c-format
 msgid " %s Pending"
 msgstr " %s återstår"
 
-#: src/info.c:788
+#: src/info.c:830
 msgid " disconnected"
 msgstr " nerkopplad"
 
-#: src/md5.c:159
+#: src/info.c:881
+#, fuzzy
+msgid "No database or playlist selected"
+msgstr "Ingen spellista markerad"
+
+#: src/info.c:886
+msgid "No tracks selected"
+msgstr "Inga spår markerade"
+
+#: src/info.c:891
+msgid "No playlist selected"
+msgstr "Ingen spellista markerad"
+
+#: src/info.c:896
+#, fuzzy
+msgid "No iPod or iPod playlist selected"
+msgstr "Ingen spellista markerad"
+
+#: src/md5.c:187
 msgid "Hashed file is 0 bytes long\n"
 msgstr "Filen med checksumma har storleken 0 byte\n"
 
-#: src/md5.c:208
+#: src/md5.c:240
 #, c-format
 msgid "Could not open '%s' to calculate MD5 checksum: %s\n"
 msgstr "Kunde inte öppna '%s' för att beräkna MD5-checksumma: %s\n"
 
-#: src/misc.c:78
+#: src/misc.c:79
 #, c-format
 msgid ""
 "gtkpod Version %s: Cross-Platform Multi-Lingual Interface to Apple's iPod"
@@ -1682,7 +3427,7 @@
 "gtkpod version %s: Plattformsoberoende flerspråkigt gränssnitt för Apples "
 "iPodâ„¢."
 
-#: src/misc.c:82
+#: src/misc.c:83
 msgid ""
 "(C) 2002 - 2005\n"
 "Jorg Schuler (jcsjcs at users dot sourceforge dot net)\n"
@@ -1696,7 +3441,7 @@
 "\n"
 "\n"
 
-#: src/misc.c:88
+#: src/misc.c:89
 msgid ""
 "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 "
@@ -1730,7 +3475,7 @@
 "\n"
 "\n"
 
-#: src/misc.c:96
+#: src/misc.c:97
 msgid ""
 "Patches were supplied by the following people (list may be incomplete -- "
 "please contact me)\n"
@@ -1740,24 +3485,24 @@
 "ofullständig: kontakta mig då gärna)\n"
 "\n"
 
-#: src/misc.c:98
+#: src/misc.c:99
 msgid "Ramesh Dharan: Multi-Edit (edit tags of several tracks in one run)\n"
 msgstr ""
 "Ramesh Dharan: Redigera flera (redigera taggar för flera spår på en gång)\n"
 
-#: src/misc.c:100
+#: src/misc.c:101
 msgid "Hiroshi Kawashima: Japanese charset autodetecion feature\n"
 msgstr ""
 "Hiroshi Kawashima: Funktion för automatisk detektering av japansk "
 "teckenkodning\n"
 
-#: src/misc.c:102
+#: src/misc.c:103
 msgid "Adrian Ulrich: porting of playlist code from mktunes.pl to itunesdb.c\n"
 msgstr ""
 "Adrian Ulrich: överföring av spellistans kod från mktunes.pl till itunesdb."
 "c\n"
 
-#: src/misc.c:104
+#: src/misc.c:105
 msgid ""
 "Walter Bell: correct handling of DND URIs with escaped characters and/or cr/"
 "newlines at the end\n"
@@ -1765,15 +3510,15 @@
 "Walter Bell: riktig hantering av drag och släpp information med "
 "specialtecken och/eller returtecken/nyrader i slutet\n"
 
-#: src/misc.c:106
+#: src/misc.c:107
 msgid "Sam Clegg: user defined filenames when exporting tracks from the iPod\n"
 msgstr "Sam Clegg: användardefinierade filnamn vid export av spår från iPod\n"
 
-#: src/misc.c:108
+#: src/misc.c:109
 msgid "Chris Cutler: automatic creation of various playlist types\n"
 msgstr "Chris Cutler: skapa olika sorters spellistor automatiskt\n"
 
-#: src/misc.c:110
+#: src/misc.c:111
 msgid ""
 "Graeme Wilford: reading and writing of the 'Composer' ID3 tags, progress "
 "dialogue during sync\n"
@@ -1781,7 +3526,7 @@
 "Graeme Wilford: läsning och skrivning av ID3-taggar för 'Kompositör', "
 "förloppsdialog under synkronisering\n"
 
-#: src/misc.c:112
+#: src/misc.c:113
 msgid ""
 "Edward Matteucci: debugging, special playlist creation, most of the volume "
 "normalizing code\n"
@@ -1789,26 +3534,26 @@
 "Edward Matteucci: felsökning, skapa speciella spellistor, den största delen "
 "av koden för volymnormalisering\n"
 
-#: src/misc.c:114
+#: src/misc.c:115
 msgid "Jens Lautenbach: some optical improvements\n"
 msgstr "Jens Lautenbach: några visuella förbättringar\n"
 
-#: src/misc.c:116
+#: src/misc.c:117
 msgid "Alex Tribble: iPod eject patch\n"
 msgstr "Alex Tribble: programfix för att mata ut iPod\n"
 
-#: src/misc.c:118
+#: src/misc.c:119
 msgid "Yaroslav Halchenko: Orphaned and dangling tracks handling\n"
 msgstr "Yaroslav Halchenko: hantering av övergivna filer och saknade spår\n"
 
-#: src/misc.c:120
+#: src/misc.c:121
 msgid ""
 "Andrew Huntwork: Filename case sensitivity fix and various other bugfixes\n"
 msgstr ""
 "Andrew Huntwork: rättning av skiftlägeskänsliga filnamn och diverse andra "
 "felrättningar\n"
 
-#: src/misc.c:122
+#: src/misc.c:123
 msgid ""
 "Ero Carrera: Filename validation and quick sync when copying tracks from the "
 "iPod\n"
@@ -1816,25 +3561,25 @@
 "Ero Carrera: validering av filnamn och snabbsynkronisering när spår kopieras "
 "från iPod\n"
 
-#: src/misc.c:124
+#: src/misc.c:125
 msgid "Jens Taprogge: Support for LAME's replay gain tag to normalize volume\n"
 msgstr ""
 "Jens Taprogge: stöd för spelningsnivåtagg från LAME vid normalisering av "
 "volym\n"
 
-#: src/misc.c:126
+#: src/misc.c:127
 msgid "Armando Atienza: Support with external playcounts\n"
 msgstr "Armando Atienza: stöd med externa spelningsantal\n"
 
-#: src/misc.c:128
+#: src/misc.c:129
 msgid "D.L. Sharp: Support for m4b files (bookmarkable AAC files)\n"
 msgstr "D.L. Sharp: stöd för m4b-filer (AAC-filer med bokmärken)\n"
 
-#: src/misc.c:130
+#: src/misc.c:131
 msgid "Jim Hall: Decent INSTALL file\n"
 msgstr "Jim Hall: hygglig INSTALL-fil\n"
 
-#: src/misc.c:132
+#: src/misc.c:133
 msgid ""
 "Juergen Helmers, Markus Gaugusch: Conversion scripts to sync calendar/"
 "contacts to the iPod\n"
@@ -1843,23 +3588,23 @@
 "kalender och kontakter i iPod\n"
 
 #. J"urgen!
-#: src/misc.c:134
+#: src/misc.c:135
 msgid "Flavio Stanchina: bugfixes\n"
 msgstr "Flavio Stanchina: felrättningar\n"
 
-#: src/misc.c:136
+#: src/misc.c:137
 msgid ""
 "Chris Micacchi: when sorting ignore 'the' and similar at the beginning of "
 "the title\n"
 msgstr ""
 "Chris Micacchi: ignorera 'the' och liknande i titelns början vid sortering\n"
 
-#: src/misc.c:138
+#: src/misc.c:139
 msgid "Steve Jay: use statvfs() instead of df (better portability, faster)\n"
 msgstr ""
 "Steve Jay: använd statvfs() istället för df (bättre flyttbarhet, snabbare)\n"
 
-#: src/misc.c:141
+#: src/misc.c:142
 msgid ""
 "Christoph Kunz: address compatibility issues when writing id3v2.4 type mp3 "
 "tags\n"
@@ -1867,42 +3612,43 @@
 "Christoph Kunz: hantering av kompatibilitetsfrågor när MP3-taggar av typ "
 "id3v2.4 skrivs\n"
 
-#: src/misc.c:144
+#: src/misc.c:145
+#, fuzzy
 msgid ""
-"James Ligget: replacement of old GTK file selection dialogs with new GTK "
-"filechooser dialogs\n"
+"James Liggett:\n"
+"     replacement of old GTK file selection dialogs with new GTK filechooser "
+"dialogs\n"
+"     refactored user preferences system.\n"
 msgstr ""
 "James Ligget: ersättning av gamla GTK dialogrutor för filmarkering med nya "
 "GTK dialogrutor för filval\n"
 
-#: src/misc.c:147
+#: src/misc.c:150
 msgid "Daniel Kercher: sync scripts for abook and webcalendar\n"
 msgstr "Daniel Kercher: synkroniseringsskript för abook och webbkalender\n"
 
-#: src/misc.c:150
+#: src/misc.c:153
 msgid "Clinton Gormley: sync scripts for thunderbird\n"
 msgstr "Clinton Gormley: synkroniseringsskript för thunderbird\n"
 
-#: src/misc.c:153
-#, fuzzy
+#: src/misc.c:156
 msgid "Sebastien Beridot: sync script for ldif addressbook format\n"
 msgstr "Sebastien Beridot: synkroniseringsskript för LDIF-adressboksformat\n"
 
-#: src/misc.c:156
-#, fuzzy
+#: src/misc.c:159
 msgid "Sebastian Scherer: sync script for kNotes\n"
 msgstr "Sebastian Scherer: synkroniseringsskript för Knotes\n"
 
-#: src/misc.c:159
+#: src/misc.c:162
 msgid "Nick Piper: sync script for Palm, type-ahead search\n"
 msgstr ""
 "Nick Piper: synkroniseringsskript för Palm, sökning under inskrivning\n"
 
-#: src/misc.c:162
+#: src/misc.c:165
 msgid "Uwe Hermann: help with support for iPod Video\n"
 msgstr "Uwe Hermann: hjälp med stöd för iPod-video\n"
 
-#: src/misc.c:165
+#: src/misc.c:168
 msgid ""
 "Iain Benson: support for compilation tag in mp3 files and separate display "
 "of compilations in the sort tab.\n"
@@ -1910,7 +3656,7 @@
 "Iain Benson: stöd för samlingstaggen i mp3-filer och separat visning av "
 "samlingar i sorteringsfliken.\n"
 
-#: src/misc.c:167
+#: src/misc.c:170
 msgid ""
 "Nicolas Chariot: icons of buttons\n"
 "\n"
@@ -1920,11 +3666,11 @@
 "\n"
 "\n"
 
-#: src/misc.c:171
+#: src/misc.c:174
 msgid "This program borrows code from the following projects:\n"
 msgstr "Detta program lånar kod från följande projekt:\n"
 
-#: src/misc.c:173
+#: src/misc.c:176
 msgid ""
 "    gnutools: (mktunes.pl, ported to C) reading and writing of iTunesDB "
 "(http://www.gnu.org/software/gnupod/)\n"
@@ -1932,7 +3678,7 @@
 "    gnutools: (mktunes.pl, överförd till C) läsning och skrivning av iTunes "
 "databas (http://www.gnu.org/software/gnupod/)\n"
 
-#: src/misc.c:175
+#: src/misc.c:178
 msgid ""
 "    iPod.cpp, iPod.h by Samuel Wood (sam dot wood at gmail dot com): some "
 "code for smart playlists is based on his C++-classes.\n"
@@ -1940,40 +3686,40 @@
 "    iPod.cpp, iPod.h av Samuel Wood (sam punkt wood snabela gmail punkt "
 "com): viss kod för smarta spellistor är baserad på hans C++ klasser.\n"
 
-#: src/misc.c:177
+#: src/misc.c:180
 msgid "    mp3info:  mp3 playlength detection (http://ibiblio.org/mp3info/)\n"
 msgstr ""
 "    mp3info:  detektering av MP3-spelningslängd (http://ibiblio.org/"
 "mp3info/)\n"
 
-#: src/misc.c:179
+#: src/misc.c:182
 msgid ""
 "    xmms:     dirbrowser, mp3 playlength detection (http://www.xmms.org)\n"
 msgstr ""
 "    xmms:     katalogbläddring, detektering av MP3-spelningslängd  (http://"
 "www.xmms.org)\n"
 
-#: src/misc.c:182
+#: src/misc.c:185
 msgid ""
 "The GUI was created with the help of glade-2 (http://glade.gnome.org/).\n"
 msgstr ""
 "Det grafiska gränssnittet skapades med hjälp av glade-2 (http://glade.gnome."
 "org/).\n"
 
-#: src/misc.c:197
+#: src/misc.c:200
 msgid "French:   David Le Brun (david at dyn-ns dot net)\n"
 msgstr "Franska:   David Le Brun (david snabela dyn-ns punkt net)\n"
 
-#: src/misc.c:199
+#: src/misc.c:202
 msgid "German:   Jorg Schuler (jcsjcs at users dot sourceforge dot net)\n"
 msgstr ""
 "Tyska:   Jorg Schuler (jcsjcs snabela users punkt sourceforge punkt net)\n"
 
-#: src/misc.c:201
+#: src/misc.c:204
 msgid "Hebrew: Assaf Gillat (gillata at gmail dot com)\n"
 msgstr "Hebreiska: Assaf Gillat (gillata snabela gmail punkt com)\n"
 
-#: src/misc.c:203
+#: src/misc.c:206
 msgid ""
 "Italian:  Edward Matteucci (edward_matteucc at users dot sourceforge dot "
 "net)\n"
@@ -1981,46 +3727,36 @@
 "Italienska:  Edward Matteucci (edward_matteucc snabela users punkt "
 "sourceforge punkt net)\n"
 
-#: src/misc.c:205
+#: src/misc.c:208
 msgid "Japanese: Ayako Sano\n"
 msgstr "Japanska: Ayako Sano\n"
 
-#: src/misc.c:207
+#: src/misc.c:210
 msgid "Japanese: Kentaro Fukuchi (fukuchi at users dot sourceforge dot net)\n"
 msgstr ""
 "Japanska: Kentaro Fukuchi (fukuchi snabela users punkt sourceforge punkt "
 "net)\n"
 
-#: src/misc.c:209
+#: src/misc.c:212
 msgid "Swedish: Stefan Asserhall (stefan asserhall at comhem dot se)\n"
 msgstr "Svenska: Stefan Asserhäll (stefan asserhall snabela comhem punkt se)\n"
 
-#: src/misc.c:332
-#, c-format
-msgid "Could not delete backup file: \"%s\"\n"
-msgstr "Kunde inte ta bort säkerhetskopieringsfil: \"%s\"\n"
+#: src/misc.c:936
+#, fuzzy, c-format
+msgid "Could not process '%s' (no filename available)"
+msgstr "inget lokalt filnamn tillgängligt"
 
-#: src/misc.c:452
+#: src/misc.c:1084
 #, c-format
-msgid "Unmounting of '%s' (%s) unsuccessful."
-msgstr "Avmontering av '%s' (%s) misslyckades."
-
-#: src/misc.c:456
-#, c-format
-msgid "Unmounting of '%s' unsuccessful."
-msgstr "Avmontering av '%s' misslyckades."
-
-#: src/misc.c:1219
-#, c-format
 msgid "Unknown token '%%%c' in template '%s'"
 msgstr "Okänd beteckning '%%%c' i mallen '%s'"
 
-#: src/misc.c:1301
+#: src/misc.c:1166
 #, c-format
 msgid "Template ('%s') does not match file type '%s'\n"
 msgstr "Mallen ('%s') passar inte ihop med filtypen '%s'\n"
 
-#: src/misc.c:1382
+#: src/misc.c:1247
 #, c-format
 msgid "Error creating %s: %s\n"
 msgstr "Fel när %s skulle skapas: %s\n"
@@ -2036,7 +3772,7 @@
 msgid "The following has occured:"
 msgstr "Följande har inträffat:"
 
-#: src/misc_confirm.c:124
+#: src/misc_confirm.c:123
 msgid ""
 "Are you sure you want to delete the following track completely from your "
 "iPod? The number of playlists this track is a member of is indicated in "
@@ -2052,13 +3788,13 @@
 "Är du säker på att du vill ta bort följande spår helt från iPod? Antal "
 "spellistor som spåret finns i anges inom parentes."
 
-#: src/misc_confirm.c:128
+#: src/misc_confirm.c:127
 msgid "Delete Track Completely from iPod?"
 msgid_plural "Delete Tracks Completey from iPod?"
 msgstr[0] "Ta bort spår helt från iPod?"
 msgstr[1] "Ta bort spår helt från iPod?"
 
-#: src/misc_confirm.c:138 src/misc_confirm.c:178
+#: src/misc_confirm.c:138 src/misc_confirm.c:179
 #, c-format
 msgid ""
 "Are you sure you want to remove the following track from the playlist \"%s\"?"
@@ -2070,7 +3806,7 @@
 msgstr[1] ""
 "Är du säker på att du vill ta bort följande spår från spellistan \"%s\"?"
 
-#: src/misc_confirm.c:142 src/misc_confirm.c:182
+#: src/misc_confirm.c:142 src/misc_confirm.c:183
 msgid "Remove Track From Playlist?"
 msgid_plural "Remove Tracks From Playlist?"
 msgstr[0] "Ta bort spår från spellista?"
@@ -2098,7 +3834,7 @@
 msgstr[0] "Ta bort spår från hårddisk?"
 msgstr[1] "Ta bort spår från hårddisk?"
 
-#: src/misc_confirm.c:192
+#: src/misc_confirm.c:193
 msgid ""
 "Are you sure you want to remove the following track completely from your "
 "local database? The number of playlists this track is a member of is "
@@ -2114,7 +3850,7 @@
 "Är du säker på att du vill ta bort följande spår helt från den lokala "
 "databasen? Antal spellistor som spåret finns i anges inom parentes."
 
-#: src/misc_confirm.c:196
+#: src/misc_confirm.c:197
 msgid "Remove Track from Local Database?"
 msgid_plural "Remove Tracks from Local Database?"
 msgstr[0] "Ta bort spår från lokal databas?"
@@ -2148,64 +3884,53 @@
 msgstr[0] "Tog bort spår från den lokala databasen"
 msgstr[1] "Tog bort %d spår från den lokala databasen"
 
-#. no playlist??? Cannot happen, but...
-#. no playlist selected
-#: src/misc_confirm.c:336 src/misc_confirm.c:432 src/misc_confirm.c:674
-#: src/misc_track.c:1509
-msgid "No playlist selected."
-msgstr "Ingen spellista markerad."
-
-#. no tracks selected
-#: src/misc_confirm.c:345
-msgid "No tracks selected."
-msgstr "Inga spår markerade."
-
-#: src/misc_confirm.c:448
+#: src/misc_confirm.c:438
 msgid "Cannot remove entry 'All'"
 msgstr "Kan inte ta bort raden 'Alla'"
 
-#: src/misc_confirm.c:541
+#: src/misc_confirm.c:532
 #, c-format
 msgid "Removed all %d tracks from the iPod"
 msgstr "Tog bort alla %d spår från iPod"
 
-#: src/misc_confirm.c:546
+#: src/misc_confirm.c:537
 msgid "Removed all podcasts from the iPod"
 msgstr "Tog bort alla podradiosändningar från iPod"
 
-#: src/misc_confirm.c:556 src/misc_confirm.c:626
+#: src/misc_confirm.c:546 src/misc_confirm.c:620
 #, c-format
 msgid "Deleted playlist '%s' including %d member track"
 msgid_plural "Deleted playlist '%s' including %d member tracks"
 msgstr[0] "Tog bort spellistan '%s' inklusive %d ingående spår"
 msgstr[1] "Tog bort spellistan '%s' inklusive %d ingående spår"
 
-#: src/misc_confirm.c:570 src/misc_confirm.c:640
+#. first use playlist name
+#: src/misc_confirm.c:562 src/misc_confirm.c:636
 #, c-format
 msgid "Deleted playlist '%s'"
 msgstr "Tog bort spellistan '%s'"
 
-#: src/misc_confirm.c:603
+#: src/misc_confirm.c:596
 #, c-format
 msgid "Deleted playlist '%s' including %d member track on harddisk"
 msgid_plural "Deleted playlist '%s' including %d member tracks on harddisk"
 msgstr[0] "Tog bort spellistan '%s' inklusive %d ingående spår från hårddisken"
 msgstr[1] "Tog bort spellistan '%s' inklusive %d ingående spår från hårddisken"
 
-#: src/misc_confirm.c:618
+#: src/misc_confirm.c:613
 #, c-format
 msgid "Removed all %d tracks from the database"
 msgstr "Tog bort alla %d spår från databasen"
 
-#: src/misc_confirm.c:693
+#: src/misc_confirm.c:691
 msgid "Are you sure you want to remove all tracks from your iPod?"
 msgstr "Är du säker på att du vill ta bort alla spår från iPod?"
 
-#: src/misc_confirm.c:698
+#: src/misc_confirm.c:696
 msgid "Are you sure you want to remove all podcasts from your iPod?"
 msgstr "Är du säker på att du vill ta bort alla podradiosändningar från iPod?"
 
-#: src/misc_confirm.c:706
+#: src/misc_confirm.c:704
 #, c-format
 msgid ""
 "Are you sure you want to delete playlist '%s' and the following track "
@@ -2222,12 +3947,12 @@
 "Är du säker på att du vill ta bort spellistan '%s' och följande spår helt "
 "från iPod? Antal spellistor som spåren finns i anges inom parentes."
 
-#: src/misc_confirm.c:717 src/misc_confirm.c:772
+#: src/misc_confirm.c:715 src/misc_confirm.c:770
 #, c-format
 msgid "Are you sure you want to delete the playlist '%s'?"
 msgstr "Är du säker på att du vill ta bort spellistan '%s'?"
 
-#: src/misc_confirm.c:743
+#: src/misc_confirm.c:741
 #, c-format
 msgid ""
 "Are you sure you want to delete playlist '%s' and remove the following track "
@@ -2244,11 +3969,11 @@
 "Är du säker på att du vill ta bort spellistan '%s' och följande spår helt "
 "från hårddisken? Antal spellistor som spåren finns i anges inom parentes."
 
-#: src/misc_confirm.c:751
+#: src/misc_confirm.c:749
 msgid "Are you sure you want to remove all tracks from the database?"
 msgstr "Är du säker på att du vill ta bort alla spår från databasen?"
 
-#: src/misc_confirm.c:760
+#: src/misc_confirm.c:758
 #, c-format
 msgid ""
 "Are you sure you want to delete playlist '%s' and remove the following track "
@@ -2265,28 +3990,7 @@
 "Är du säker på att du vill ta bort spellistan '%s' och följande spår helt "
 "från databasen? Antal spellistor som spåren finns i anges inom parentes."
 
-#: src/misc_confirm.c:960
-#, c-format
-msgid "Problem creating iPod directory: '%s'."
-msgstr "Problem att skapa iPod-katalog: '%s'."
-
-#: src/misc_confirm.c:962
-#, c-format
-msgid "Successfully created iPod directories in '%s'."
-msgstr "Skapade iPod-kataloger i '%s' med lyckat resultat."
-
-#. gint id,
-#. gboolean modal,
-#: src/misc_confirm.c:1001
-msgid "Create iPod directories"
-msgstr "Skapa iPod-kataloger"
-
-#. title
-#: src/misc_confirm.c:1002
-msgid "OK to create the following directories?"
-msgstr "Ok att skapa följande kataloger?"
-
-#: src/misc_confirm.c:1066
+#: src/misc_confirm.c:859
 msgid ""
 "Data has been changed and not been saved.\n"
 "OK to exit gtkpod?"
@@ -2374,24 +4078,47 @@
 msgid "Checked"
 msgstr "Kontrollerad"
 
-#: src/misc_conversion.c:108
+#. 35
+#: src/misc_conversion.c:96
+#, fuzzy
+msgid "Start time"
+msgstr "Sista gången"
+
+#: src/misc_conversion.c:97
+#, fuzzy
+msgid "Stop time"
+msgstr "Stoppa"
+
+#: src/misc_conversion.c:98
+msgid "Remember Playback Position"
+msgstr ""
+
+#: src/misc_conversion.c:99
+msgid "Skip when Shuffling"
+msgstr ""
+
+#: src/misc_conversion.c:100
+msgid "Artwork Path"
+msgstr ""
+
+#: src/misc_conversion.c:113
 msgid "Name of file on PC, if available"
 msgstr "Filens namn på PC:n, om tillgängligt"
 
-#: src/misc_conversion.c:109
+#: src/misc_conversion.c:114
 msgid "Name of file on the iPod"
 msgstr "Filens namn på iPod"
 
 #. 10
-#: src/misc_conversion.c:111
+#: src/misc_conversion.c:116
 msgid "Track Nr. and total number of tracks on CD"
 msgstr "Spårnummer och totalt antal spår på cd:n"
 
-#: src/misc_conversion.c:112
+#: src/misc_conversion.c:117
 msgid "Whether the file has already been transferred to the iPod or not"
 msgstr "Om filen redan har överförts till iPod eller inte"
 
-#: src/misc_conversion.c:118
+#: src/misc_conversion.c:123
 msgid ""
 "Supposedly something that tells the iPod to increase or decrease the "
 "playback speed"
@@ -2399,32 +4126,32 @@
 "Antagligen något som talar om för iPod att öka eller minska "
 "uppspelningshastigheten"
 
-#: src/misc_conversion.c:120
+#: src/misc_conversion.c:125
 msgid "Number of times the track has been played"
 msgstr "Antal gånger spåret har spelats"
 
-#: src/misc_conversion.c:121
+#: src/misc_conversion.c:126
 msgid "Star rating from 0 to 5"
 msgstr "Betyg med stjärnor från 0 till 5"
 
-#: src/misc_conversion.c:122
+#: src/misc_conversion.c:127
 msgid "Date and time track has been added"
 msgstr "Datum och tid då spåret lades till"
 
 #. 20
-#: src/misc_conversion.c:123
+#: src/misc_conversion.c:128
 msgid "Date and time track has last been played"
 msgstr "Datum och tid då spåret senast spelades"
 
-#: src/misc_conversion.c:124
+#: src/misc_conversion.c:129
 msgid "Date and time track has last been modified"
 msgstr "Datum och tid då spåret senast ändrades"
 
-#: src/misc_conversion.c:125
+#: src/misc_conversion.c:130
 msgid "Manual volume adjust"
 msgstr "Manuell volymjustering"
 
-#: src/misc_conversion.c:126
+#: src/misc_conversion.c:131
 msgid ""
 "Volume adjust in dB (replay gain) -- you need to activate 'soundcheck' on "
 "the iPod"
@@ -2432,87 +4159,83 @@
 "Volymjustering i dB (spelningsnivå): Du måste aktivera 'ljudkontroll' på iPod"
 
 #. 25
-#: src/misc_conversion.c:129
+#: src/misc_conversion.c:134
 msgid "CD Nr. and total number of CDS in set"
 msgstr "Cd-nummer och totalt antal cd i albumet"
 
-#: src/misc_conversion.c:132
+#: src/misc_conversion.c:137
 msgid ""
 "The category (e.g. 'Technology' or 'Music') where the podcast was located."
 msgstr "Kategorin (t.ex. 'Teknik' eller 'Musik') där podradiosändningen fanns."
 
-#: src/misc_conversion.c:133
+#: src/misc_conversion.c:138
 msgid "Accessible by selecting the center button on the iPod."
 msgstr "Kan kommas åt genom att trycka på iPod-mittenknappen."
 
-#: src/misc_conversion.c:137
+#: src/misc_conversion.c:142
 msgid "Release date (for podcasts displayed next to the title on the iPod)"
 msgstr ""
 "Utgivningsdatum (för podradiosändningar visas det intill titeln på iPod)"
 
-#: src/misc_conversion.c:639
+#: src/misc_conversion.c:649
 #, c-format
 msgid "The URI '%s' is not an absolute URI using the file scheme"
 msgstr "Webbadressen '%s' är inte en absolut webbadress med filschema"
 
-#: src/misc_conversion.c:649
+#: src/misc_conversion.c:659
 #, c-format
 msgid "The local file URI '%s' may not include a '#'"
 msgstr "Webbadressen '%s' för lokal fil kan inte innehålla '#'"
 
-#: src/misc_conversion.c:666
+#: src/misc_conversion.c:676
 #, c-format
 msgid "The URI '%s' is invalid"
 msgstr "Webbadressen '%s' är ogiltig"
 
-#: src/misc_conversion.c:678
+#: src/misc_conversion.c:688
 #, c-format
 msgid "The hostname of the URI '%s' is invalid"
 msgstr "Värddator för webbadressen '%s' är ogiltig"
 
-#: src/misc_conversion.c:694
+#: src/misc_conversion.c:704
 #, c-format
 msgid "The URI '%s' contains invalidly escaped characters"
 msgstr "Webbadressen '%s' innehåller felaktiga specialtecken"
 
-#: src/misc_playlist.c:68 src/misc_playlist.c:95 src/misc_playlist.c:416
+#: src/misc_playlist.c:68 src/misc_playlist.c:95 src/misc_playlist.c:430
 msgid "Please enter a name for the new playlist"
 msgstr "Skriv in ett namn på den nya spellistan"
 
-#: src/misc_playlist.c:97 gtkpod.glade:578 gtkpod.glade:772 gtkpod.glade:7128
-msgid "Smart Playlist"
-msgstr "Smart spellista"
-
-#: src/misc_playlist.c:146
+#: src/misc_playlist.c:155
 msgid "AR:"
 msgstr "AR:"
 
-#: src/misc_playlist.c:149
+#: src/misc_playlist.c:158
 msgid "AL:"
 msgstr "AL:"
 
-#: src/misc_playlist.c:152
+#: src/misc_playlist.c:161
 msgid "GE:"
 msgstr "GE:"
 
-#: src/misc_playlist.c:155
+#: src/misc_playlist.c:164
 msgid "CO:"
 msgstr "KO:"
 
-#: src/misc_playlist.c:158
+#: src/misc_playlist.c:167
 msgid "YE:"
 msgstr "Ã…R:"
 
-#: src/misc_playlist.c:186
+#: src/misc_playlist.c:195
 msgid "Unknown"
 msgstr "Okänd"
 
-#: src/misc_playlist.c:256
+#: src/misc_playlist.c:273
 #, c-format
 msgid "Random (%d)"
 msgstr "Slumpmässig (%d)"
 
-#: src/misc_playlist.c:281
+#: src/misc_playlist.c:298
 msgid ""
 "Auto Store of track view disabled.\n"
 "\n"
@@ -2520,11 +4243,11 @@
 "Automatisk lagring av spårvy inaktiverad.\n"
 "\n"
 
-#: src/misc_playlist.c:340
+#: src/misc_playlist.c:357
 msgid "Not Listed"
 msgstr "Inte listad"
 
-#: src/misc_playlist.c:391
+#: src/misc_playlist.c:407
 #, c-format
 msgid "Created playlist '%s' with %d track."
 msgid_plural "Created playlist '%s' with %d tracks."
@@ -2532,69 +4255,68 @@
 msgstr[1] "Skapade spellistan '%s' med %d spår."
 
 #. n==0
-#: src/misc_playlist.c:402
+#: src/misc_playlist.c:418
 msgid "No tracks available, playlist not created"
 msgstr "Inga spår tillgängliga, spellistan skapades inte"
 
-#: src/misc_playlist.c:530
+#: src/misc_playlist.c:544
 #, c-format
 msgid "Most Listened (%d)"
 msgstr "Oftast lyssnade på (%d)"
 
-#: src/misc_playlist.c:571
+#: src/misc_playlist.c:585
 msgid "Never Listened"
 msgstr "Aldrig lyssnade på"
 
-#: src/misc_playlist.c:611
+#: src/misc_playlist.c:625
 #, c-format
 msgid "Best Rated (%d)"
 msgstr "Med bäst betyg (%d)"
 
-#: src/misc_playlist.c:653
+#: src/misc_playlist.c:667
 msgid "Unrated tracks"
 msgstr "Spår utan betyg"
 
-#: src/misc_playlist.c:658
+#: src/misc_playlist.c:672
 #, c-format
 msgid "Rated %d"
 msgstr "Betyg %d"
 
-#: src/misc_playlist.c:701
+#: src/misc_playlist.c:715
 #, c-format
 msgid "Recent (%d)"
 msgstr "Senaste (%d)"
 
-#: src/misc_playlist.c:740
+#: src/misc_playlist.c:754
 msgid "Last Time"
 msgstr "Sista gången"
 
-#: src/misc_playlist.c:831
+#: src/misc_playlist.c:845
 msgid "Removal of dangling tracks with no files on PC was canceled."
 msgstr "Borttagning av spår med saknade filer utan filer på PC:n avbröts."
 
-#: src/misc_playlist.c:841
+#: src/misc_playlist.c:855
 msgid "Handling of dangling tracks with files on PC was canceled."
 msgstr "Hantering av spår med saknade filer som har filer på PC:n avbröts."
 
-#: src/misc_playlist.c:869
+#: src/misc_playlist.c:883
 msgid "Dangling tracks with no files on PC were removed."
 msgstr "Spår med saknade filer utan filer på PC:n har tagits bort."
 
-#. printf("Handling track %d\n", track->ipod_id);
-#: src/misc_playlist.c:902
+#: src/misc_playlist.c:917
 #, c-format
 msgid "Processing '%s'"
 msgstr "Behandlar '%s'"
 
-#: src/misc_playlist.c:927
+#: src/misc_playlist.c:941
 msgid "Dangling tracks with files on PC were handled."
 msgstr "Spår med saknade filer som har filer på PC:n har hanterats."
 
-#: src/misc_playlist.c:960
+#: src/misc_playlist.c:974
 msgid "Track"
 msgstr "Spår"
 
-#: src/misc_playlist.c:1005
+#: src/misc_playlist.c:1017
 msgid ""
 "You did not import the existing iTunesDB. This is most likely incorrect and "
 "will result in the loss of the existing database.\n"
@@ -2610,19 +4332,19 @@
 "du avbryter, kan du importera befintlig databas innan du använder den här "
 "funktionen igen.\n"
 
-#: src/misc_playlist.c:1021
+#: src/misc_playlist.c:1031
 msgid "Creating a tree of known files"
 msgstr "Skapar träd med kända filer"
 
-#: src/misc_playlist.c:1065
+#: src/misc_playlist.c:1075
 msgid "Checking iPOD files against known files in DB"
 msgstr "Kontrollerar iPod-filer med kända filer i databasen"
 
-#: src/misc_playlist.c:1110
+#: src/misc_playlist.c:1118
 msgid "Orphaned"
 msgstr "Övergivna"
 
-#: src/misc_playlist.c:1131
+#: src/misc_playlist.c:1145
 #, c-format
 msgid ""
 "The following orphaned file had already been added to the iPod again. It "
@@ -2635,12 +4357,12 @@
 "%s\n"
 "\n"
 
-#: src/misc_playlist.c:1160
+#: src/misc_playlist.c:1173
 #, c-format
 msgid "Found %d orphaned and %d dangling files. Processing..."
 msgstr "Hittade %d övergivna filer och %d spår med saknade filer. Behandlar..."
 
-#: src/misc_playlist.c:1183
+#: src/misc_playlist.c:1197
 #, c-format
 msgid ""
 "The following dangling track has a file on PC.\n"
@@ -2659,7 +4381,7 @@
 "Klicka på Ok för att överföra filerna vid nästa synkronisering. Avbryt för "
 "att lämna dem som de är."
 
-#: src/misc_playlist.c:1188
+#: src/misc_playlist.c:1202
 #, c-format
 msgid ""
 "The following dangling track doesn't have file on PC. \n"
@@ -2676,31 +4398,31 @@
 
 #. we want unique window for each
 #. gboolean modal,
-#: src/misc_playlist.c:1195
+#: src/misc_playlist.c:1209
 msgid "Dangling Tracks"
 msgstr "Spår med saknade filer"
 
-#: src/misc_playlist.c:1219
+#: src/misc_playlist.c:1232
 #, c-format
 msgid "Found %d orphaned and %d dangling files. Done."
 msgstr "Hittade %d övergivna filer och %d spår med saknade filer. Klar."
 
 #. update for count == 1, 21, 41 ... and for count == n
-#: src/misc_track.c:91 src/misc_track.c:368
+#: src/misc_track.c:90 src/misc_track.c:364
 #, c-format
 msgid "Hashed %d of %d track."
 msgid_plural "Hashed %d of %d tracks."
 msgstr[0] "Beräknade checksumma för %d av %d spår."
 msgstr[1] "Beräknade checksumma för %d av %d spår."
 
-#: src/misc_track.c:202
+#: src/misc_track.c:199
 #, c-format
 msgid "The following duplicate track has been removed."
 msgid_plural "The following %d duplicate tracks have been removed."
 msgstr[0] "Följande duplicerade spår har tagits bort."
 msgstr[1] "Följande %d duplicerade spår har tagits bort."
 
-#: src/misc_track.c:209
+#: src/misc_track.c:206
 #, c-format
 msgid ""
 "The following duplicate track has not been added to the master play list."
@@ -2712,81 +4434,66 @@
 
 #. gint id,
 #. gboolean modal,
-#: src/misc_track.c:216
+#: src/misc_track.c:213
 msgid "Duplicate detection"
 msgstr "Detektering av duplikat"
 
-#: src/misc_track.c:844
+#: src/misc_track.c:904
 msgid "Local Database"
 msgstr "Lokal databas"
 
-#: src/misc_track.c:1396
+#. artwork is set
+#: src/misc_track.c:915
+msgid "Embedded or filename was lost"
+msgstr ""
+
+#: src/misc_track.c:919
+#, fuzzy
+msgid "Artwork not set"
+msgstr "är inte satt"
+
+#: src/misc_track.c:1527
 #, c-format
 msgid "drag and drop: ignored '%s'\n"
 msgstr "drag och släpp: ignorerade '%s'\n"
 
-#: src/mp3file.c:1118
+#: src/mp3file.c:1276
 #, c-format
 msgid "Error setting ID3 field: %s\n"
 msgstr "Fel när ID3-fält skulle ändras: %s\n"
 
-#: src/mp3file.c:1143 src/mp3file.c:1290 src/mp3file.c:2036
+#: src/mp3file.c:1300 src/mp3file.c:1373 src/mp3file.c:1522 src/mp3file.c:2160
 #, c-format
 msgid "ERROR while opening file: '%s' (%s).\n"
 msgstr "FEL när filen skulle öppnas: '%s' (%s).\n"
 
-#: src/mp3file.c:1357
+#: src/mp3file.c:1593
 #, c-format
 msgid "ERROR while writing tag to file: '%s' (%s).\n"
 msgstr "FEL när tagg skulle skrivas till filen: '%s' (%s).\n"
 
-#: src/mp3file.c:1880
-#, c-format
-msgid ""
-"Could not find mp3gain. I tried to use the following executable: '%s'.\n"
-"\n"
-"If the mp3gain executable is not in your path or named differently, you can "
-"set the full path in the 'Tools' section of the preferences dialog.\n"
-"\n"
-"If you do not have mp3gain installed, you can download it from http://www."
-"sourceforge.net/projects/mp3gain."
-msgstr ""
-"Kunde inte hitta mp3gain. Följande körbara program försökte användas: '%s'\n"
-"\n"
-"Om det körbara programmet mp3gain inte finns i din sökväg eller har ett "
-"annat namn, kan du ange fullständig sökväg i avdelningen 'Verktyg' i "
-"inställningsdialogrutan.\n"
-"\n"
-"Om du inte har installerat mp3gain, kan du ladda ner det från http://www."
-"sourceforge.net/projects/mp3gain."
-
-#: src/mp3file.c:1920
-#, c-format
-msgid "Execution of mp3gain ('%s') failed."
-msgstr "Körning av mp3gain ('%s') misslyckades."
-
 #. Tracks with zero play length are ignored by iPod...
-#: src/mp3file.c:2179
+#: src/mp3file.c:2326
 #, c-format
 msgid "File \"%s\" has zero play length. Ignoring.\n"
 msgstr "Filen \"%s\" har spelningslängden noll. Ignoreras.\n"
 
-#: src/mp4file.c:243 src/mp4file.c:362
+#: src/mp4file.c:221 src/mp4file.c:342 src/mp4file.c:461
 #, c-format
 msgid "'%s' does not appear to be a mp4 audio file.\n"
 msgstr "'%s' verkar inte vara en mp4-ljudfil.\n"
 
-#: src/mp4file.c:253
+#: src/mp4file.c:231 src/mp4file.c:352
 #, c-format
 msgid "Could not open '%s' for reading, or file is not an mp4 file.\n"
 msgstr "Kunde inte öppna '%s' för läsning, eller är filen inte en mp4-fil.\n"
 
-#: src/mp4file.c:373
+#: src/mp4file.c:472
 #, c-format
 msgid "Could not open '%s' for writing, or file is not an mp4 file.\n"
 msgstr "Kunde inte öppna '%s' för skrivning, eller är filen inte en mp4-fil.\n"
 
-#: src/mp4file.c:386
+#: src/mp4file.c:485
 #, c-format
 msgid ""
 "Import of '%s' failed: m4a/m4p/m4b not supported without the mp4v2 library. "
@@ -2795,7 +4502,7 @@
 "Import av '%s' misslyckades: m4a/m4p/m4b stöds inte utan biblioteket mp4v2. "
 "Du måste kompilera källkoden för gtkpod tillsammans med biblioteket mp4v2.\n"
 
-#: src/mp4file.c:392
+#: src/mp4file.c:491
 #, c-format
 msgid ""
 "m4a/m4p/m4b metadata update for '%s' failed: m4a/m4p/m4b not supported "
@@ -2806,224 +4513,249 @@
 "inte utan biblioteket mp4v2. Du måste kompilera källkoden för gtkpod "
 "tillsammans med biblioteket mp4v2.\n"
 
-#: src/prefs.c:128
+#: src/mp4file.c:497
+#, fuzzy, c-format
+msgid ""
+"m4a/m4p/m4b soundcheck update for '%s' failed: m4a/m4p/m4b not supported "
+"without the mp4v2 library. You must compile the gtkpod source together with "
+"the mp4v2 library.\n"
+msgstr ""
+"Uppdatering av m4a/m4p/m4b metadata för '%s' misslyckades: m4a/m4p/m4b stöds "
+"inte utan biblioteket mp4v2. Du måste kompilera källkoden för gtkpod "
+"tillsammans med biblioteket mp4v2.\n"
+
+#: src/prefs.c:307
 #, c-format
 msgid "gtkpod version %s usage:\n"
 msgstr "Användning av gtkpod version %s:\n"
 
-#: src/prefs.c:129
+#: src/prefs.c:308
 msgid "  -h, --help:   display this message\n"
 msgstr "  -h, --help:   visa det här meddelandet\n"
 
-#: src/prefs.c:130
+#: src/prefs.c:309
 msgid "  -p <filename>:increment playcount for file by one\n"
 msgstr "  -p <filnamn>: öka spelningsantalet för filen med ett\n"
 
-#: src/prefs.c:131
+#: src/prefs.c:310
 msgid "  -m path:      define the mountpoint of your iPod\n"
 msgstr "  -m sökväg:  definiera monteringspunkt för iPod\n"
 
-#: src/prefs.c:132
+#: src/prefs.c:311
 msgid "  --mountpoint: same as '-m'.\n"
 msgstr "  --mountpoint: samma som '-m'.\n"
 
-#: src/prefs.c:133
+#: src/prefs.c:312
 msgid "  -a:           import database automatically after start.\n"
 msgstr "  -a:           importera databas automatiskt efter start.\n"
 
-#: src/prefs.c:134
+#: src/prefs.c:313
 msgid "  --auto:       same as '-a'.\n"
 msgstr "  --auto:       samma som '-a'.\n"
 
-#: src/prefs.c:135
-msgid ""
-"  -o:           use offline mode. No changes are exported to the iPod,\n"
-"                but to ~/.gtkpod/ instead. iPod is updated if 'Sync' is\n"
-"                used with 'Offline' deactivated.\n"
-msgstr ""
-"  -o:           använd nerkopplat läge. Inga ändringar exporteras till "
-"iPod,\n"
-"                utan istället till ~/.gtkpod/. iPod uppdateras om "
-"'Synkronisera'\n"
-"                används med 'Nerkopplad' inaktiverat.\n"
+#: src/prefs_window.c:119
+msgid "Please select command for 'Play Now'"
+msgstr "Välj kommando för 'Spela nu'"
 
-#: src/prefs.c:136
-msgid "  --offline:    same as '-o'.\n"
-msgstr "  --offline:    samma som '-o'.\n"
+#: src/prefs_window.c:120
+msgid "Please select command for 'Enqueue'"
+msgstr "Välj kommando för 'Köa'"
 
-#: src/prefs.c:401
-#, c-format
-msgid "Error while reading prefs: %s\n"
-msgstr "Fel vid läsning av inställningar: %s\n"
+#: src/prefs_window.c:121
+msgid "Please select the mp3gain executable"
+msgstr "Välj körbart program mp3gain"
 
-#: src/prefs.c:1030
-#, c-format
-msgid "Unable to open config file '%s' for reading\n"
-msgstr "Kan inte öppna inställningsfilen '%s' för läsning\n"
+#: src/prefs_window.c:124
+msgid "Select the mserv music root directory"
+msgstr "Välj mserv rotkatalog för musik"
 
-#: src/prefs.c:1137
-#, c-format
-msgid "Unknown option: %s\n"
-msgstr "Okänd väljare: %s\n"
+#: src/prefs_window.c:125
+msgid "Select the mserv trackinfo root directory"
+msgstr "Välj mserv rotkatalog för spårinformation"
 
-#: src/prefs.c:1190
-#, c-format
-msgid "# delete confirmation\n"
-msgstr "# bekräfta borttagning\n"
+#: src/prefs_window.c:127
+#, fuzzy
+msgid "Please select the aacgain executable"
+msgstr "Välj körbart program mp3gain"
 
-#: src/prefs.c:1197
-#, c-format
-msgid "# sort tab: select 'All', last selected page (=category)\n"
-msgstr "# sorteringsflik: välja 'Alla', senast valda sida (=kategori)\n"
+#: src/prefs_window.c:911 src/prefs_window.c:929
+msgid "Preferences not updated"
+msgstr "Inställningarna har inte uppdaterats"
 
-#: src/prefs.c:1216
-#, c-format
-msgid "# autoselect master playlist?\n"
-msgstr "# välj automatiskt huvudspellista?\n"
+#: src/prefs_window.c:938
+msgid "Preferences applied"
+msgstr "Inställningar ändrade"
 
-#: src/prefs.c:1218
-#, c-format
-msgid "# title=0, artist, album, genre, composer\n"
-msgstr "# titel=0, artist, album, genre, kompositör\n"
+#: src/repository.c:549 src/repository.c:2372
+msgid "Select mountpoint"
+msgstr "Markera monteringspunkt"
 
-#: src/prefs.c:1219
-#, c-format
-msgid "# track_nr=5, ipod_id, pc_path, transferred\n"
-msgstr "# spårnummer=5, iPod-id, PC-sökväg, överförda\n"
+#: src/repository.c:576 src/repository.c:2398
+msgid "Set backup file"
+msgstr "Ange fil för säkerhetskopia"
 
-#: src/prefs.c:1220
-#, c-format
-msgid "# autoset: set empty tag to filename?\n"
-msgstr "# välj automatiskt: ange filnamn i tom tagg?\n"
+#: src/repository.c:615
+msgid "Select directory for synchronization"
+msgstr "Markera katalog för synkronisering"
 
-#: src/prefs.c:1235
-#, c-format
-msgid ""
-"# position of sliders (paned): playlists, above tracks,\n"
-"# between sort tabs, and in statusbar.\n"
-msgstr ""
-"# position för skjutreglage (i rutor): spellistor, ovanför spår,\n"
-"# mellan sorteringsflikar, och i statusraden.\n"
+#: src/repository.c:641
+msgid "Please select command to sync contacts"
+msgstr "Välj kommando för att synkronisera kontakter"
 
-#: src/prefs.c:1271
-#, c-format
-msgid ""
-"# window sizes: main window, confirmation scrolled,\n"
-"#               confirmation non-scrolled, dirbrowser, prefs\n"
-msgstr ""
-"# fönsterstorlekar: huvudfönster, bekräftelse med rullningslist,\n"
-"#   bekräftelse utan rullningslist, katalogbläddrare, inställningar\n"
+#: src/repository.c:647
+msgid "Please select command to sync calendar"
+msgstr "Välj kommando för att synkronisera kalender"
 
-#: src/prefs.c:1328
-#, c-format
-msgid "Unable to open '%s' for writing\n"
-msgstr "Kan inte öppna '%s' för skrivning\n"
+#: src/repository.c:653
+msgid "Please select command to sync notes"
+msgstr "Välj kommando för att synkronisera anteckningar"
 
-#: src/prefs.c:1682
+#: src/repository.c:665
 #, c-format
 msgid ""
-" Preferences: Category nr (%d<%d?) or sorttab nr (%d<%d?) out of range.\n"
+"<i>Have a look at the scripts provided in '%s'. If you write a new script, "
+"please send it to jcsjcs at users.sourceforge.net for inclusion into the "
+"next release.</i>"
 msgstr ""
-" Inställningar: Kategorinummer (%d<%d?) eller sorteringsfliknummer (%d<%d?) "
-"är utanför giltigt intervall.\n"
+"<i>Ta en titt på skripten som tillhandahålls i '%s'. Om du skriver ett nytt "
+"skript, skicka det gärna till \"jcsjcs snabela users.sourceforge.net\" för "
+"att lägga till det i nästa utgåva.</i>"
 
-#: src/prefs.c:1731
-#, c-format
-msgid "Unable to 'mkdir %s'\n"
-msgstr "Kan inte skapa katalogen '%s'\n"
+#: src/repository.c:732
+msgid "Smart playlist updated."
+msgstr "Smart spellista uppdaterad."
 
-#. illegal -- ignore
-#: src/prefs.c:2157
-#, c-format
-msgid "prefs_set_toolbar_style: illegal style '%d' ignored\n"
-msgstr "prefs_set_toolbar_style: felaktig stil '%d' ignoreras\n"
+#: src/repository.c:1193
+msgid "Podcasts Repository"
+msgstr "Podsändningsarkiv"
 
-#. illegal -- ignore
-#: src/prefs.c:2199
-#, c-format
-msgid "prefs_set_pm_sort: illegal type '%d' ignored\n"
-msgstr "prefs_set_pm_sort: felaktig typ '%d' ignoreras\n"
+#: src/repository.c:1197
+msgid "Local Repository"
+msgstr "Lokalt arkiv"
 
-#: src/prefs.c:2354
+#: src/repository.c:1351
+msgid "Master Playlist"
+msgstr "Huvudspellista"
+
+#: src/repository.c:1355
+msgid "Podcasts Playlist"
+msgstr "Podsändningsspellista"
+
+#: src/repository.c:1363
+msgid "Regular Playlist"
+msgstr "Vanlig spellista"
+
+#: src/repository.c:2426
+msgid "Set local repository file"
+msgstr "Ange lokal arkivfil"
+
+#: src/repository.c:2525
+msgid "New Repository"
+msgstr "Nytt arkiv"
+
+#: src/support.c:90 src/support.c:114
 #, c-format
-msgid "'%s': no arguments (%%...) allowed.\n"
-msgstr "'%s': inga argument (%%...) tillåts.\n"
+msgid "Couldn't find pixmap file: %s"
+msgstr "Kunde inte hitta bildpunktsavbildningsfil: %s"
 
-#: src/prefs.c:2359
+#: src/syncdir.c:237
 #, c-format
-msgid "'%s': only '%%[%s]' allowed.\n"
-msgstr "'%s': bara '%%[%s]' tillåts.\n"
+msgid "Sync summary for %s/%s\n"
+msgstr "Sammanfattning av synkronisering för %s/%s\n"
 
-#: src/prefs_window.c:108
-msgid "Please select command for 'Play Now'"
-msgstr "Välj kommando för 'Spela nu'"
+#: src/syncdir.c:246
+msgid "The following track has been added or updated:\n"
+msgid_plural "The following tracks have been added or updated:\n"
+msgstr[0] "Följande spår har lagts till eller uppdaterats:\n"
+msgstr[1] "Följande spår har lagts till eller uppdaterats:\n"
 
-#: src/prefs_window.c:109
-msgid "Please select command for 'Enqueue'"
-msgstr "Välj kommando för 'Köa'"
+#: src/syncdir.c:255
+msgid "The following track has been completely removed from the iPod:\n"
+msgid_plural ""
+"The following tracks have been completely removed from the iPod:\n"
+msgstr[0] "Följande spår har fullständigt tagits bort från iPod:\n"
+msgstr[1] "Följande spår har fullständigt tagits bort från iPod:\n"
 
-#: src/prefs_window.c:110
-msgid "Please select the mp3gain executable"
-msgstr "Välj körbart program mp3gain"
+#: src/syncdir.c:264
+msgid "The following track has been removed from the repository:\n"
+msgid_plural "The following tracks have been removed from the repository:\n"
+msgstr[0] "Följande spår har tagits bort från arkivet:\n"
+msgstr[1] "Följande spår har tagits bort från arkivet:\n"
 
-#: src/prefs_window.c:111
-msgid "Please select command to sync contacts"
-msgstr "Välj kommando för att synkronisera kontakter"
+#: src/syncdir.c:271
+msgid "The following track has been removed from the playlist:\n"
+msgid_plural "The following tracks have been removed from the playlist:\n"
+msgstr[0] "Följande spår har tagits bort från spellistan:\n"
+msgstr[1] "Följande spår har tagits bort från spellistan:\n"
 
-#: src/prefs_window.c:112
-msgid "Please select command to sync calendar"
-msgstr "Välj kommando för att synkronisera kalender"
+#: src/syncdir.c:277
+msgid "Nothing was changed.\n"
+msgstr "Ingenting har ändrats.\n"
 
-#: src/prefs_window.c:113
-msgid "Select the mserv music root directory"
-msgstr "Välj mserv rotkatalog för musik"
+#: src/syncdir.c:282
+msgid "Sync summary"
+msgstr "Sammanfattning av synkronisering"
 
-#: src/prefs_window.c:114
-msgid "Select the mserv trackinfo root directory"
-msgstr "Välj mserv rotkatalog för spårinformation"
+#: src/tools.c:119
+#, fuzzy, c-format
+msgid ""
+"Could not find '%s'\n"
+". Please specifiy the exact path in the Tools section of the preference "
+"dialog or install the programm if it is not installed on your system.\n"
+"\n"
+msgstr ""
+"Kunde inte hitta kommandot '%s'.\n"
+"\n"
+"Kontrollera inställningarna under 'Verktyg' i inställningsdialogrutan.\n"
+"\n"
 
-#: src/prefs_window.c:115
-#, fuzzy
-msgid "Please select command to sync notes"
-msgstr "Välj kommando för att synkronisera kontakter"
+#: src/tools.c:204
+#, fuzzy, c-format
+msgid ""
+"Execution of '%s' failed.\n"
+"\n"
+msgstr "Körning av mp3gain ('%s') misslyckades."
 
-#: src/prefs_window.c:854
-#, c-format
+#: src/tools.c:249
+#, fuzzy, c-format
 msgid ""
-"<i>Have a look at the scripts provided in '%s'. If you write a new script, "
-"please send it to jcsjcs at users.sourceforge.net for inclusion into the "
-"next release.</i>"
+"Did not normalize '%s'. Set mp3gain path in the Tools section of the "
+"preferences.\n"
 msgstr ""
-"<i>Ta en titt på skripten som tillhandahålls i '%s'. Om du skriver ett nytt "
-"skript, skicka det gärna till \"jcsjcs snabela users.sourceforge.net\" för "
-"att lägga till det i nästa utgåva.</i>"
+"Kunde inte hitta kommandot '%s'.\n"
+"\n"
+"Kontrollera inställningarna under 'Verktyg' i inställningsdialogrutan.\n"
+"\n"
 
-#: src/prefs_window.c:1287 src/prefs_window.c:1305
-msgid "Preferences not updated"
-msgstr "Inställningarna har inte uppdaterats"
+#: src/tools.c:259
+#, fuzzy, c-format
+msgid ""
+"Did not normalize '%s'. Set aacgain path in the Tools section of the "
+"preferences.\n"
+msgstr ""
+"Kunde inte hitta kommandot '%s'.\n"
+"\n"
+"Kontrollera inställningarna under 'Verktyg' i inställningsdialogrutan.\n"
+"\n"
 
-#: src/prefs_window.c:1314
-msgid "Preferences applied"
-msgstr "Inställningar ändrade"
-
-#: src/tools.c:173
+#: src/tools.c:384
 msgid "Normalizing..."
 msgstr "Normaliserar..."
 
-#: src/tools.c:220
+#: src/tools.c:434
 #, c-format
 msgid "%s - %s"
 msgstr "%s - %s"
 
-#: src/tools.c:247
+#: src/tools.c:460
 msgid "Aborting..."
 msgstr "Avbryter..."
 
-#: src/tools.c:251
+#: src/tools.c:464
 msgid "Will abort after current mp3gain process ends."
 msgstr "Avbryter efter aktuell mp3gain process slutar."
 
-#: src/tools.c:277
+#: src/tools.c:490
 #, c-format
 msgid ""
 "'%s-%s' (%s) could not be normalized.\n"
@@ -3032,21 +4764,21 @@
 "'%s-%s' (%s) kunde inte normaliseras.\n"
 "\n"
 
-#: src/tools.c:319
+#: src/tools.c:529
 #, c-format
 msgid "Normalized %d of %d tracks."
 msgid_plural "Normalized %d of %d tracks."
 msgstr[0] "Normaliserade %d av %d spår."
 msgstr[1] "Normaliserade %d av %d spår."
 
-#: src/tools.c:413
+#: src/tools.c:632
 msgid ""
 "Please specify the command to be called on the 'Tools' section of the "
 "preferences dialog.\n"
 msgstr ""
 "Ange kommandot som ska anropas under 'Verktyg' i inställningsdialogrutan.\n"
 
-#: src/tools.c:425
+#: src/tools.c:644
 #, c-format
 msgid ""
 "Could not find the command '%s'.\n"
@@ -3059,7 +4791,7 @@
 "Kontrollera inställningarna under 'Verktyg' i inställningsdialogrutan.\n"
 "\n"
 
-#: src/tools.c:466
+#: src/tools.c:685
 #, c-format
 msgid ""
 "'%s' returned the following output:\n"
@@ -3068,12 +4800,12 @@
 "'%s' returnerade följande utmatning.\n"
 "%s\n"
 
-#: src/tools.c:535
+#: src/tools.c:752
 #, c-format
 msgid "No command set for '%s'"
 msgstr "Inget kommando angivet för '%s'"
 
-#: src/tools.c:556
+#: src/tools.c:772
 #, c-format
 msgid "Could not find command '%s' specified for '%s'"
 msgstr "Kunde inte hitta kommandot '%s' som angavs för '%s'"
@@ -3088,1717 +4820,172 @@
 msgid "%s does not appear to be a supported wav file.\n"
 msgstr "%s verkar inte vara en wav-fil som stöds.\n"
 
-#: gtkpod.glade:7
-msgid "gtkpod"
-msgstr "gtkpod"
+#~ msgid ""
+#~ "On startup gtkpod will call 'mount <ipod mountpoint>', on exit a 'umount "
+#~ "<ipod mountpoint>' call is carried out. For more complicated arrangements "
+#~ "please use the ~/.gtkpod/gtkpod.in and ~/.gtkpod/gtkpod.out scripts."
+#~ msgstr ""
+#~ "Vid start anropar gtkpod 'mount <iPod monteringspunkt>' och vid "
+#~ "avslutning utförs anropet 'umount <iPod monteringspunkt>'. För mer "
+#~ "komplicerad hantering, använd skripten ~/.gtkpod/gtkpod.in och  ~/.gtkpod/"
+#~ "gtkpod.out."
 
-#: gtkpod.glade:36
-msgid "_File"
-msgstr "_Arkiv"
+#~ msgid "Handle mounting/unmounting of iPod drive"
+#~ msgstr "Hantera montering och avmontering av iPod-enheten"
 
-#: gtkpod.glade:45
-msgid "_Read iTunesDB"
-msgstr "_Läs iTunes databas"
+#~ msgid "<b>Artwork</b>"
+#~ msgstr "<b>Omslag</b>"
 
-#: gtkpod.glade:66
-msgid "Add _Files"
-msgstr "Lägg till _filer"
+#~ msgid "_Offline"
+#~ msgstr "_Nerkopplad"
 
-#: gtkpod.glade:87
-msgid "Add _Directory"
-msgstr "Lägg till _katalog"
+#~ msgid ""
+#~ "You only need to specify this if your 'mp3gain' executable is not in your "
+#~ "default path. Example: '/usr/local/foo/mp3gain'. mp3gain will write the "
+#~ "calculated gain value back to the file -- if you don't want this, set "
+#~ "this entry to /bin/true or similar. mp3gain is only called if appropriate "
+#~ "tags are not already set by your encoder. E.g. lame version 0.95 already "
+#~ "writes the gain values into tags. The exact conversion factor between "
+#~ "mp3gain's gain value and iPod's volume tag is not known yet -- your input "
+#~ "is appreciated."
+#~ msgstr ""
+#~ "Du behöver bara ange det här om det körbara programmet 'mp3gain' inte "
+#~ "finns i din standardsökväg. Till exempel '/usr/local/foo/mp3gain'. "
+#~ "mp3gain skriver tillbaka det beräknade nivåvärdet i filen. Om du inte "
+#~ "vill det, ange alternativet som /bin/true eller något liknande. mp3gain "
+#~ "anropas bara om lämpliga taggar inte redan angivits av kodaren. Version "
+#~ "0.95 av lame skriver till exempel redan nivåvärden i taggar. Det exakta "
+#~ "konverteringsvärdet mellan nivåvärdet från mp3gain och volymtaggen i iPod "
+#~ "är inte ännu känt: återmatning från dig uppskattas."
 
-#: gtkpod.glade:108
-msgid "Add _Playlist"
-msgstr "Lägg till _spellista"
+#~ msgid ""
+#~ "Set this to the model number of your iPod (e.g. \"A003\") in case it is "
+#~ "not automatically detected and you want to use cover art."
+#~ msgstr ""
+#~ "Ställ in det här till modellnumret för din iPod (t.ex. \"A003\") om det "
+#~ "inte automatiskt detekteras och du vill använda omslagsbilder."
 
-#: gtkpod.glade:129
-msgid "Synchronize _iTunesDB"
-msgstr "Synkronisera _iTunes databas"
+#~ msgid "Edit Repository Properties"
+#~ msgstr "Redigera arkivegenskaper"
 
-#: gtkpod.glade:183
-msgid "_Update Tracks from File"
-msgstr "_Uppdatera spår från fil"
+#~ msgid "Currently no iPod database selected"
+#~ msgstr "För närvarande är ingen iPod-databas markerad"
 
-#: gtkpod.glade:204 gtkpod.glade:256 gtkpod.glade:308 gtkpod.glade:366
-#: gtkpod.glade:418 gtkpod.glade:1136 gtkpod.glade:1188 gtkpod.glade:1234
-msgid "Selected _Playlist"
-msgstr "Markerad _spellista"
+#~ msgid "No playlist selected."
+#~ msgstr "Ingen spellista markerad."
 
-#: gtkpod.glade:213 gtkpod.glade:265 gtkpod.glade:317 gtkpod.glade:375
-#: gtkpod.glade:427 gtkpod.glade:1145 gtkpod.glade:1197 gtkpod.glade:1243
-msgid "Selected Tab _Entry"
-msgstr "Markerad _flikrad"
+#~ msgid "Could not delete backup file: \"%s\"\n"
+#~ msgstr "Kunde inte ta bort säkerhetskopieringsfil: \"%s\"\n"
 
-#: gtkpod.glade:222 gtkpod.glade:274 gtkpod.glade:326 gtkpod.glade:384
-#: gtkpod.glade:436 gtkpod.glade:569 gtkpod.glade:1154 gtkpod.glade:1206
-#: gtkpod.glade:1252
-msgid "Selected _Tracks"
-msgstr "Markerade s_pår"
+#~ msgid "No tracks selected."
+#~ msgstr "Inga spår markerade."
 
-#: gtkpod.glade:235
-msgid "Update _mserv Data from File"
-msgstr "Uppdatera _mserv data från fil"
+#~ msgid "Problem creating iPod directory: '%s'."
+#~ msgstr "Problem att skapa iPod-katalog: '%s'."
 
-#: gtkpod.glade:287
-msgid "_Synchronize Directories"
-msgstr "S_ynkronisera kataloger"
+#~ msgid "Successfully created iPod directories in '%s'."
+#~ msgstr "Skapade iPod-kataloger i '%s' med lyckat resultat."
 
-#: gtkpod.glade:345
-msgid "_Export Tracks from Database"
-msgstr "_Exportera spår från databasen"
+#~ msgid "Create iPod directories"
+#~ msgstr "Skapa iPod-kataloger"
 
-#: gtkpod.glade:397
-msgid "Create _Playlist File"
-msgstr "Skapa sp_ellistefil"
+#~ msgid "OK to create the following directories?"
+#~ msgstr "Ok att skapa följande kataloger?"
 
-#: gtkpod.glade:455
-msgid "_Offline"
-msgstr "_Nerkopplad"
+#~ msgid ""
+#~ "Could not find mp3gain. I tried to use the following executable: '%s'.\n"
+#~ "\n"
+#~ "If the mp3gain executable is not in your path or named differently, you "
+#~ "can set the full path in the 'Tools' section of the preferences dialog.\n"
+#~ "\n"
+#~ "If you do not have mp3gain installed, you can download it from http://www."
+#~ "sourceforge.net/projects/mp3gain."
+#~ msgstr ""
+#~ "Kunde inte hitta mp3gain. Följande körbara program försökte användas: '%"
+#~ "s'\n"
+#~ "\n"
+#~ "Om det körbara programmet mp3gain inte finns i din sökväg eller har ett "
+#~ "annat namn, kan du ange fullständig sökväg i avdelningen 'Verktyg' i "
+#~ "inställningsdialogrutan.\n"
+#~ "\n"
+#~ "Om du inte har installerat mp3gain, kan du ladda ner det från http://www."
+#~ "sourceforge.net/projects/mp3gain."
 
-#: gtkpod.glade:471
-msgid "_Create iPod's Directories"
-msgstr "Skapa iPod-ka_taloger"
+#~ msgid ""
+#~ "  -o:           use offline mode. No changes are exported to the iPod,\n"
+#~ "                but to ~/.gtkpod/ instead. iPod is updated if 'Sync' is\n"
+#~ "                used with 'Offline' deactivated.\n"
+#~ msgstr ""
+#~ "  -o:           använd nerkopplat läge. Inga ändringar exporteras till "
+#~ "iPod,\n"
+#~ "                utan istället till ~/.gtkpod/. iPod uppdateras om "
+#~ "'Synkronisera'\n"
+#~ "                används med 'Nerkopplad' inaktiverat.\n"
 
-#: gtkpod.glade:492
-msgid ""
-"Find orphan files (files with no track info in DB) and dangling tracks "
-"(tracks with no corresponding files on iPOD)"
-msgstr ""
-"Hitta övergivna filer (filer utan någon spårinformation i databasen) och "
-"saknade spår (spår utan motsvarande filer på iPod)"
+#~ msgid "  --offline:    same as '-o'.\n"
+#~ msgstr "  --offline:    samma som '-o'.\n"
 
-#: gtkpod.glade:493
-msgid "_Check iPod's Files"
-msgstr "K_ontrollera iPod-filer"
+#~ msgid "Error while reading prefs: %s\n"
+#~ msgstr "Fel vid läsning av inställningar: %s\n"
 
-#: gtkpod.glade:521 gtkpod.glade:11968
-msgid "_Edit"
-msgstr "_Redigera"
+#~ msgid "Unable to open config file '%s' for reading\n"
+#~ msgstr "Kan inte öppna inställningsfilen '%s' för läsning\n"
 
-#: gtkpod.glade:530
-msgid "Edit"
-msgstr "Redigera"
+#~ msgid "Unknown option: %s\n"
+#~ msgstr "Okänd väljare: %s\n"
 
-#: gtkpod.glade:551
-msgid "Tracks in Selected _Playlist"
-msgstr "Spår i markerad _spellista"
+#~ msgid "# delete confirmation\n"
+#~ msgstr "# bekräfta borttagning\n"
 
-#: gtkpod.glade:560
-msgid "Tracks in Selected Tab _Entry"
-msgstr "Spår i markerad _flikrad"
+#~ msgid "# sort tab: select 'All', last selected page (=category)\n"
+#~ msgstr "# sorteringsflik: välja 'Alla', senast valda sida (=kategori)\n"
 
-#: gtkpod.glade:591
-msgid "_Delete"
-msgstr "_Ta bort"
+#~ msgid "# autoselect master playlist?\n"
+#~ msgstr "# välj automatiskt huvudspellista?\n"
 
-#: gtkpod.glade:612
-msgid "Selected playlist"
-msgstr "Markerade spellista"
+#~ msgid "# title=0, artist, album, genre, composer\n"
+#~ msgstr "# titel=0, artist, album, genre, kompositör\n"
 
-#: gtkpod.glade:621
-msgid "Selected playlist including tracks from iPod"
-msgstr "Markerade spellistan som innehåller spår från iPod"
+#~ msgid "# track_nr=5, ipod_id, pc_path, transferred\n"
+#~ msgstr "# spårnummer=5, iPod-id, PC-sökväg, överförda\n"
 
-#: gtkpod.glade:630
-msgid "Selected playlist including tracks from database"
-msgstr "Markerade spellistan som innehåller spår från databasen"
+#~ msgid "# autoset: set empty tag to filename?\n"
+#~ msgstr "# välj automatiskt: ange filnamn i tom tagg?\n"
 
-#: gtkpod.glade:639
-msgid "Selected playlist including tracks from harddisk"
-msgstr "Markerade spellistan som innehåller spår från hårddisken"
+#~ msgid ""
+#~ "# position of sliders (paned): playlists, above tracks,\n"
+#~ "# between sort tabs, and in statusbar.\n"
+#~ msgstr ""
+#~ "# position för skjutreglage (i rutor): spellistor, ovanför spår,\n"
+#~ "# mellan sorteringsflikar, och i statusraden.\n"
 
-#: gtkpod.glade:654
-msgid "Selected filter tab entry from playlist"
-msgstr "Markerade filterflikrad från spellistan"
+#~ msgid ""
+#~ "# window sizes: main window, confirmation scrolled,\n"
+#~ "#               confirmation non-scrolled, dirbrowser, prefs\n"
+#~ msgstr ""
+#~ "# fönsterstorlekar: huvudfönster, bekräftelse med rullningslist,\n"
+#~ "#   bekräftelse utan rullningslist, katalogbläddrare, inställningar\n"
 
-#: gtkpod.glade:663
-msgid "Selected filter tab entry from iPod"
-msgstr "Markerade filterflikrad från iPod"
+#~ msgid "Unable to open '%s' for writing\n"
+#~ msgstr "Kan inte öppna '%s' för skrivning\n"
 
-#: gtkpod.glade:672
-msgid "Selected filter tab entry from database"
-msgstr "Markerade filterflikrad från databasen"
+#~ msgid ""
+#~ " Preferences: Category nr (%d<%d?) or sorttab nr (%d<%d?) out of range.\n"
+#~ msgstr ""
+#~ " Inställningar: Kategorinummer (%d<%d?) eller sorteringsfliknummer (%d<%"
+#~ "d?) är utanför giltigt intervall.\n"
 
-#: gtkpod.glade:681
-msgid "Selected filter tab entry from harddisk"
-msgstr "Markerade filterflikrad från hårddisken"
+#~ msgid "Unable to 'mkdir %s'\n"
+#~ msgstr "Kan inte skapa katalogen '%s'\n"
 
-#: gtkpod.glade:696
-msgid "Selected tracks from playlist"
-msgstr "Markerade spår från spellistan"
+#~ msgid "prefs_set_toolbar_style: illegal style '%d' ignored\n"
+#~ msgstr "prefs_set_toolbar_style: felaktig stil '%d' ignoreras\n"
 
-#: gtkpod.glade:705
-msgid "Selected tracks from iPod"
-msgstr "Markerade spår från iPod"
+#~ msgid "prefs_set_pm_sort: illegal type '%d' ignored\n"
+#~ msgstr "prefs_set_pm_sort: felaktig typ '%d' ignoreras\n"
 
-#: gtkpod.glade:714
-msgid "Selected tracks from database"
-msgstr "Markerade spår från databasen"
+#~ msgid "'%s': no arguments (%%...) allowed.\n"
+#~ msgstr "'%s': inga argument (%%...) tillåts.\n"
 
-#: gtkpod.glade:723
-msgid "Selected tracks from harddisk"
-msgstr "Markerade spår från hårddisken"
-
-#: gtkpod.glade:742
-msgid "_Create Playlists"
-msgstr "_Skapa spellistor"
-
-#: gtkpod.glade:763
-msgid "Empty Playlist"
-msgstr "Tom spellista"
-
-#: gtkpod.glade:781
-msgid "Random Playlist from Displayed Tracks"
-msgstr "Slumpmässig spellista från visade spår"
-
-#: gtkpod.glade:790
-msgid "Containing Displayed Tracks"
-msgstr "Som innehåller visade spår"
-
-#: gtkpod.glade:799
-msgid "Containing Selected Tracks"
-msgstr "Som innehåller markerade spår"
-
-#: gtkpod.glade:808
-msgid "One for each Artist"
-msgstr "En för varje artist"
-
-#: gtkpod.glade:817
-msgid "One for each Album"
-msgstr "En för varje album"
-
-#: gtkpod.glade:826
-msgid "One for each Genre"
-msgstr "En för varje genre"
-
-#: gtkpod.glade:835
-msgid "One for each Composer"
-msgstr "En för varje kompositör"
-
-#: gtkpod.glade:844
-msgid "One for each Year"
-msgstr "En för varje år"
-
-#: gtkpod.glade:853
-msgid "One for each Rating"
-msgstr "En för varje betyg"
-
-#: gtkpod.glade:862
-msgid "Best Rated Tracks"
-msgstr "Spår med bäst betyg"
-
-#: gtkpod.glade:871
-msgid "Tracks Most Often Listened To"
-msgstr "Spår som oftast lyssnats på"
-
-#: gtkpod.glade:880
-msgid "Most Recently Played Tracks"
-msgstr "Spår som nyligen spelats"
-
-#: gtkpod.glade:889
-msgid "All Tracks Played Since Last Time"
-msgstr "Alla spår som spelats sedan sist"
-
-#: gtkpod.glade:898
-msgid "All Tracks Never Listened To"
-msgstr "Alla spår som aldrig lyssnats på"
-
-#: gtkpod.glade:907
-msgid "All Tracks not Listed in any Playlist"
-msgstr "Alla spår som inte finns i någon spellista"
-
-#: gtkpod.glade:920
-msgid "Randomize Current Playlist"
-msgstr "Gör nuvarande spellista slumpmässig"
-
-#: gtkpod.glade:935
-msgid "_Sorting"
-msgstr "S_ortera"
-
-#: gtkpod.glade:957
-msgid "_Save Displayed Track Order"
-msgstr "Spara _visad spårordning"
-
-#: gtkpod.glade:985
-msgid "_Edit Preferences"
-msgstr "_Redigera inställningar"
-
-#: gtkpod.glade:1011
-msgid "_View"
-msgstr "_Visa"
-
-#: gtkpod.glade:1020
-msgid "_Toolbar"
-msgstr "_Verktygsrad"
-
-#: gtkpod.glade:1030
-msgid "_Tooltips"
-msgstr "Verktygs_tips"
-
-#: gtkpod.glade:1040
-msgid "_Info Window"
-msgstr "_Informationsfönster"
-
-#: gtkpod.glade:1051
-msgid "_More Sort Tabs"
-msgstr "_Fler sorteringsflikar"
-
-#: gtkpod.glade:1072
-msgid "_Less Sort Tabs"
-msgstr "Färre _sorteringsflikar"
-
-#: gtkpod.glade:1093
-msgid "_Arrange Sort Tabs"
-msgstr "_Ordna sorteringsflikar"
-
-#: gtkpod.glade:1106 gtkpod.glade:12693
-msgid "_Tools"
-msgstr "Verk_tyg"
-
-#: gtkpod.glade:1115
-msgid "_Play Now"
-msgstr "S_pela nu"
-
-#: gtkpod.glade:1167
-msgid "_Enqueue"
-msgstr "_Köa"
-
-#: gtkpod.glade:1225
-msgid "_Normalize Volume"
-msgstr "_Normalisera volym"
-
-#: gtkpod.glade:1261
-msgid "_Displayed Tracks"
-msgstr "_Visade spår"
-
-#: gtkpod.glade:1270
-msgid "_All Tracks"
-msgstr "_Alla spår"
-
-#: gtkpod.glade:1279
-msgid "_Newly Added Tracks"
-msgstr "_Nytillagda spår"
-
-#: gtkpod.glade:1298
-msgid "Synchronise Contacts, Calendar and Notes"
-msgstr "Synkronisera kontakter, kalender och anteckningar"
-
-#: gtkpod.glade:1299
-msgid "Synchronize All"
-msgstr "Synkronisera allt"
-
-#: gtkpod.glade:1308
-msgid "Synchronize Contacts"
-msgstr "Synkronisera kontakter"
-
-#: gtkpod.glade:1317
-msgid "Synchronize Calendar"
-msgstr "Synkronisera kalender"
-
-#: gtkpod.glade:1326
-msgid "Synchronize Notes"
-msgstr "Synkronisera anteckningar"
-
-#: gtkpod.glade:1339
-msgid "_Help"
-msgstr "_Hjälp"
-
-#: gtkpod.glade:1348
-msgid "_About"
-msgstr "_Om"
-
-#: gtkpod.glade:1388
-msgid "Read Existing Database from Disk/iPod"
-msgstr "Läs befintlig databas från disk eller iPod"
-
-#: gtkpod.glade:1389
-msgid "Read"
-msgstr "Läs"
-
-#: gtkpod.glade:1406
-msgid "Add Files or Directories"
-msgstr "Lägg till filer eller kataloger"
-
-#: gtkpod.glade:1407
-msgid "Files"
-msgstr "Filer"
-
-#: gtkpod.glade:1424
-msgid "Add Directories Recursively"
-msgstr "Lägg till kataloger rekursivt"
-
-#: gtkpod.glade:1425
-msgid "Dirs"
-msgstr "Kataloger"
-
-#: gtkpod.glade:1442
-msgid "Add playlist from file"
-msgstr "Lägg till spellista från fil"
-
-#: gtkpod.glade:1460
-msgid "Create New Playlist"
-msgstr "Skapa ny spellista"
-
-#: gtkpod.glade:1461
-msgid "New PL"
-msgstr "Ny spellista"
-
-#: gtkpod.glade:1478
-msgid "Write Changes to Disk/iPod"
-msgstr "Skriv ändringar till disk eller iPod"
-
-#: gtkpod.glade:1479
-msgid "Sync"
-msgstr "Synkronisera"
-
-#: gtkpod.glade:1495
-msgid "Stop Display Update"
-msgstr "Stoppa uppdatering av skärmen"
-
-#: gtkpod.glade:1496
-msgid "Stop"
-msgstr "Stoppa"
-
-#: gtkpod.glade:1669
-msgid "About gtkpod"
-msgstr "Om gtkpod"
-
-#: gtkpod.glade:1790
-msgid "Credits"
-msgstr "Tack till"
-
-#: gtkpod.glade:1844
-msgid "Translators"
-msgstr "Översättare"
-
-#: gtkpod.glade:1898
-msgid "special_sorttab -- Don't translate!"
-msgstr "special_sorttab -- Don't translate!"
-
-#: gtkpod.glade:1932
-msgid " Logic: "
-msgstr " Logiskt: "
-
-#: gtkpod.glade:1954
-msgid "Any (OR)"
-msgstr "NÃ¥gon (eller)"
-
-#: gtkpod.glade:1973
-msgid "All (AND)"
-msgstr "Alla (och)"
-
-#: gtkpod.glade:2026
-msgid "0"
-msgstr "0"
-
-#: gtkpod.glade:2045
-msgid "1"
-msgstr "1"
-
-#: gtkpod.glade:2064
-msgid "2"
-msgstr "2"
-
-#: gtkpod.glade:2083
-msgid "3"
-msgstr "3"
-
-#: gtkpod.glade:2102
-msgid "4"
-msgstr "4"
-
-#: gtkpod.glade:2121
-msgid "5"
-msgstr "5"
-
-#: gtkpod.glade:2160
-msgid "Select '0' for no lower limit."
-msgstr "Välj '0' för ingen undre gräns."
-
-#: gtkpod.glade:2181
-msgid " <= cts <= "
-msgstr " <= antal <= "
-
-#: gtkpod.glade:2202
-msgid "Select '-1' for no upper limit."
-msgstr "Välj '-1' för ingen övre gräns."
-
-#: gtkpod.glade:2245 gtkpod.glade:2318 gtkpod.glade:2484
-msgid ""
-"'DD/MM/YYYY HH:MM < d < DD/MM/YYYY HH:MM' or similar. Press 'enter' when "
-"finished."
-msgstr ""
-"'ÅÅÅÅ-MM-DD TT:MM < d < ÅÅÅÅ-MM-DD TT:MM' eller liknande. Tryck på "
-"returtangenten när du är klar."
-
-#: gtkpod.glade:2287 gtkpod.glade:2360 gtkpod.glade:2526 gtkpod.glade:2701
-msgid "Calendar"
-msgstr "Kalender"
-
-#: gtkpod.glade:2385
-msgid "Specify interval"
-msgstr "Ange intervall"
-
-#: gtkpod.glade:2596
-msgid "Display tracks that match the criteria entered above."
-msgstr "Visa spår som uppfyller ovan inskrivna villkor."
-
-#: gtkpod.glade:2639 gtkpod.glade:11330
-msgid "_Display"
-msgstr "_Visa"
-
-#: gtkpod.glade:2671
-msgid ""
-"Automatically start displaying tracks that match the criteria entered above. "
-"If not selected, you must press 'Display' to start displaying."
-msgstr ""
-"Börja automatiskt visa spår som motsvarar villkoren som skrivs in ovan. Om "
-"inte markerad, måste du klicka på 'Visa' för att börja visningen."
-
-#: gtkpod.glade:2673
-msgid "Start display automatically"
-msgstr "Börja visa automatiskt"
-
-#: gtkpod.glade:2746
-msgid "Sorttab: "
-msgstr "Sorteringsflik: "
-
-#: gtkpod.glade:2786
-msgid "     "
-msgstr "     "
-
-#: gtkpod.glade:2808
-msgid "Category: "
-msgstr "Kategori: "
-
-#: gtkpod.glade:2885
-msgid "Please specify a time interval"
-msgstr "Ange ett tidsintervall"
-
-#: gtkpod.glade:2930
-msgid "Lower Margin"
-msgstr "Under gräns"
-
-#: gtkpod.glade:2977 gtkpod.glade:3183
-msgid "Time:"
-msgstr "Tid:"
-
-#: gtkpod.glade:3020 gtkpod.glade:3226
-msgid ":"
-msgstr ":"
-
-#: gtkpod.glade:3093
-msgid "No lower margin"
-msgstr "Ingen undre gräns"
-
-#: gtkpod.glade:3136
-msgid "Upper margin"
-msgstr "Övre gräns"
-
-#: gtkpod.glade:3299
-msgid "No upper margin"
-msgstr "Ingen övre gräns"
-
-#: gtkpod.glade:3397
-msgid "Sorting Options"
-msgstr "Sorteringsalternativ"
-
-#: gtkpod.glade:3427
-msgid "<b>Sort Order</b>"
-msgstr "<b>Sorteringsordning</b>"
-
-#: gtkpod.glade:3454 gtkpod.glade:4704 gtkpod.glade:7682 gtkpod.glade:7860
-#: gtkpod.glade:8031 gtkpod.glade:8108 gtkpod.glade:8163 gtkpod.glade:8239
-#: gtkpod.glade:8396 gtkpod.glade:8522 gtkpod.glade:8879 gtkpod.glade:9338
-#: gtkpod.glade:9700 gtkpod.glade:10487 gtkpod.glade:10644 gtkpod.glade:10801
-#: gtkpod.glade:10922 gtkpod.glade:10975 gtkpod.glade:11132 gtkpod.glade:11389
-#: gtkpod.glade:11443 gtkpod.glade:11554 gtkpod.glade:11657 gtkpod.glade:11813
-#: gtkpod.glade:12027 gtkpod.glade:12248 gtkpod.glade:12386 gtkpod.glade:12752
-#: gtkpod.glade:12870 gtkpod.glade:13044 gtkpod.glade:13279 gtkpod.glade:13381
-msgid "    "
-msgstr "    "
-
-#: gtkpod.glade:3482
-msgid ""
-"In order to save the displayed track order to the iPod choose 'Save "
-"Displayed Track Order' from the 'Edit' menu or select 'Auto Store' below."
-msgstr ""
-"För att lagra visad spårordning i iPod måste du välja 'Spara visad "
-"spårordning' i menyn 'Redigera' eller välja 'Lagra automatiskt' nedan."
-
-#: gtkpod.glade:3865
-msgid "Ascending"
-msgstr "Stigande"
-
-#: gtkpod.glade:3909
-msgid "Descending"
-msgstr "Fallande"
-
-#: gtkpod.glade:3953
-msgid "None"
-msgstr "Ingen"
-
-#: gtkpod.glade:4042
-msgid "Sorttabs"
-msgstr "Sorteringsflikar"
-
-#: gtkpod.glade:4087
-msgid "Tracks"
-msgstr "Spår"
-
-#: gtkpod.glade:4240
-msgid "Auto Store"
-msgstr "Lagra automatiskt"
-
-#: gtkpod.glade:4285 gtkpod.glade:4331
-msgid "Please refer to the notice below."
-msgstr "Se anmärkningen nedan."
-
-#: gtkpod.glade:4563
-msgid "Sort tracks according to: "
-msgstr "Sortera spår enligt: "
-
-#: gtkpod.glade:4593
-msgid ""
-"You can also use the table headers, but this allows you to sort according to "
-"a column that is not displayed."
-msgstr ""
-"Du kan också använda tabellhuvuden, men här kan du sortera enligt en kolumn "
-"som inte visas."
-
-#: gtkpod.glade:4629
-msgid ""
-"If checked, sorting will be case sensitive. Please note that case sensitive "
-"sorting will not work well with most charsets."
-msgstr ""
-"Om markerat är sorteringen skiftlägeskänslig. Observera att "
-"skiftlägeskänslig sortering inte fungerar bra med de flesta teckenkodningar."
-
-#: gtkpod.glade:4631
-msgid "Sorting case sensitive"
-msgstr "Skiftlägeskänslig sortering"
-
-#: gtkpod.glade:4677
-msgid "<b>Ignore Frequent Words</b>"
-msgstr "<b>Ignorera vanliga ord</b>"
-
-#: gtkpod.glade:4769
-msgid "Ignore these words when at the beginning of the following fields:"
-msgstr "Ignorera dessa ord i början av följande fält:"
-
-#: gtkpod.glade:5040
-msgid "gtkpod Info"
-msgstr "Information om gtkpod"
-
-#: gtkpod.glade:5339 gtkpod.glade:5414 gtkpod.glade:5439 gtkpod.glade:6065
-#: gtkpod.glade:6198
-msgid "      "
-msgstr "      "
-
-#: gtkpod.glade:5692
-msgid "Number of tracks"
-msgstr "Antal spår"
-
-#: gtkpod.glade:5718
-msgid "Play time"
-msgstr "Speltid"
-
-#: gtkpod.glade:5745
-msgid "File size"
-msgstr "Filstorlek"
-
-#: gtkpod.glade:5771
-msgid "Number of playlists"
-msgstr "Antal spellistor"
-
-#: gtkpod.glade:5797
-msgid "Deleted tracks"
-msgstr "Borttagna spår"
-
-#: gtkpod.glade:5823
-msgid "File size (deleted)"
-msgstr "Filstorlek (borttagna)"
-
-#: gtkpod.glade:5849
-msgid "Non-transferred tracks"
-msgstr "Spår som inte överförts"
-
-#: gtkpod.glade:5875
-msgid "File size (non-transferred)"
-msgstr "Filstorlek (inte överförda)"
-
-#: gtkpod.glade:5901
-msgid "Effective free space"
-msgstr "Verkligt ledigt utrymme"
-
-#: gtkpod.glade:5927
-msgid ""
-"Total\n"
-"(iPod)"
-msgstr ""
-"Totalt\n"
-"(iPod)"
-
-#: gtkpod.glade:5955
-msgid ""
-"Selected\n"
-"Playlist"
-msgstr ""
-"Markerad\n"
-"spellista"
-
-#: gtkpod.glade:5983
-msgid ""
-"Displayed\n"
-"Tracks"
-msgstr ""
-"Visade\n"
-"spår"
-
-#: gtkpod.glade:6011
-msgid ""
-"Selected\n"
-"Tracks"
-msgstr ""
-"Markerade\n"
-"spår"
-
-#: gtkpod.glade:6039
-msgid ""
-"Total\n"
-"(local)"
-msgstr ""
-"Totalt\n"
-"(lokalt)"
-
-#: gtkpod.glade:6436
-msgid "label21"
-msgstr "etikett21"
-
-#: gtkpod.glade:6527
-msgid "Never show this dialogue again"
-msgstr "Visa aldrig den här dialogrutan igen"
-
-#: gtkpod.glade:6572 gtkpod.glade:6898
-msgid "window1"
-msgstr "fönster1"
-
-#: gtkpod.glade:6629
-msgid "_M3U"
-msgstr "_M3U"
-
-#: gtkpod.glade:6648
-msgid "_PLS"
-msgstr "_PLS"
-
-#: gtkpod.glade:6686
-msgid ""
-"If available, the local copy of the track is referenced in the playlist. "
-"Otherwise the file on the iPod is used."
-msgstr ""
-"Om tillgänglig, hänvisar spellistan till den lokala kopian av spåret. Annars "
-"används filen på iPod."
-
-#: gtkpod.glade:6688
-msgid "_Prefer Local"
-msgstr "_Föredra lokal"
-
-#: gtkpod.glade:6706
-msgid ""
-"The local copy of the track is referenced in the playlist. If the track is "
-"not available locally, an error message is displayed."
-msgstr ""
-"Spellistan hänvisar till den lokala kopian av spåret. Om spåret inte är "
-"tillgängligt lokalt, visas ett felmeddelande."
-
-#: gtkpod.glade:6708
-msgid "_Local"
-msgstr "_Lokal"
-
-#: gtkpod.glade:6727
-msgid "The track on the iPod is referenced in the playlist file."
-msgstr "Spellistan hänvisar till spåret på iPod."
-
-#: gtkpod.glade:6729
-msgid "_iPod"
-msgstr "_iPod"
-
-#: gtkpod.glade:6762
-msgid "Playlist type:"
-msgstr "Typ av spellista:"
-
-#: gtkpod.glade:6787
-msgid "Source:"
-msgstr "Källa:"
-
-#: gtkpod.glade:6826
-msgid "Template for info field: "
-msgstr "Mall för informationsfält:"
-
-#: gtkpod.glade:6847
-msgid ""
-"Determines how the string for the info field should be constructed, e.g '%a/%"
-"A/%T - %t.mp3' or '%o'.  You can separate several templates by semicolons -- "
-"gtkpod will determine which one to use by the filename extension given. "
-"Artist: %a, album: %A, composer: %c, title: %t, genre: %G, track nr: %T, CD "
-"nr: %C, year: %Y, original filename (requires extended information file): %"
-"o, the character '%': %%."
-msgstr ""
-"Avgör hur strängen för informationsfältet ska skapas, t.ex. '%a/%A/%T - %t."
-"mp3' eller '%o'. Du kan skilja flera mönster åt med semikolon. Vilket som "
-"används avgörs av gtkpod genom filnamnsändelsen som anges. Artist: %a, "
-"album: %A, kompositör: %c, titel: %t, genre: %G, spårnummer: %T, cd-nummer: %"
-"C, år: %Y, ursprungligt filnamn (kräver fil med utökad information): %o, "
-"tecknet '%': %%."
-
-#: gtkpod.glade:6878 gtkpod.glade:7108
-msgid "gtkpod options"
-msgstr "Inställningar för gtkpod"
-
-#: gtkpod.glade:6934
-msgid "Filename Format: "
-msgstr "Filnamnsformat: "
-
-#: gtkpod.glade:6955
-msgid ""
-"Determines the filename of tracks you copy from the iPod, e.g '%a/%A/%T - %t."
-"mp3' or '%o'.  You can separate several patterns by semicolons -- gtkpod "
-"will determine which one to use by the filename extension given. Artist: %a, "
-"album: %A, composer: %c, title: %t, genre: %G, track nr: %T, CD nr: %C, "
-"year: %Y, original filename (requires extended information file): %o, "
-"current playlist: %p, the character '%': %%."
-msgstr ""
-"Avgör filnamn för spåren du kopierar från iPod, t.ex. '%a/%A/%T - %t.mp3' "
-"eller '%o'. Du kan skilja flera mönster åt med semikolon. Vilket som används "
-"avgörs av gtkpod genom filnamnsändelsen som anges. Artist: %a, album: %A, "
-"kompositör: %c, titel: %t, genre: %G, spårnummer: %T, cd-nummer: %C, år: %Y, "
-"ursprungligt filnamn (kräver fil med utökad information): %o, nuvarande "
-"spellista: %p, tecknet '%': %%."
-
-#: gtkpod.glade:6960
-msgid " "
-msgstr " "
-
-#: gtkpod.glade:6982
-msgid ""
-"Normally the charset specified when first importing the track will be used "
-"for the filename. If you set this option you can set a different charset "
-"with the charset selector (Preferences/'Adding/Updating/Syncing'). Note: the "
-"charset info is stored in the extended information file (see "
-"Preferences/'Writing of the iTunesDB'). Tracks imported before V0.51 will "
-"have no charset stored. Instead the charset specified will be used."
-msgstr ""
-"Normalt används teckenkodningen som anges när spåret först importeras för "
-"filnamnet. Om du markerar det här alternativet kan du ange en annan "
-"teckenkodning i teckensnittsväljaren (Inställningar/'Tillägg, uppdatering, "
-"synkronisering'). Observera: kodningsinformationen lagras i filen med utökad "
-"information (se Inställningar/'Skrivning av iTunes databas'). Spår som "
-"importerats innan version 0.51 har ingen teckenkodning lagrad. Istället "
-"används då teckensnittet som anges."
-
-#: gtkpod.glade:6984
-msgid ""
-"Use selected charset (Preferences/'Adding/Updating/ Syncing')\n"
-"for this filename."
-msgstr ""
-"Använd vald teckenkodning för detta filnamn\n"
-"(Inställningar/'Tillägg, uppdatering, synkronisering')."
-
-#: gtkpod.glade:7003
-msgid ""
-"When copying from iPod no check is performed on whether the destination file "
-"exists. Enabling this option will make gtkpod check whether the length of "
-"the destination file is the same as the file in the iPod. If so the file is "
-"skipped, allowing a quick sync of the iPod's contents."
-msgstr ""
-"Vid kopiering från iPod görs ingen kontroll om målfilen finns. Markeras det "
-"här alternativet kontrollerar gtkpod om målfilens längd är samma som filen "
-"från iPod. Om det är fallet hoppas filen över, vilket gör det möjligt att "
-"snabbt synkronisera innehållet i iPod."
-
-#: gtkpod.glade:7005
-msgid "Check for existing files when copying from iPod."
-msgstr "Titta efter befintliga filer vid kopiering från iPod."
-
-#: gtkpod.glade:7169
-msgid "Playlist name:"
-msgstr "Spellistans namn:"
-
-#: gtkpod.glade:7234
-msgid "Match al_l of the following"
-msgstr "Matcha a_lla följande"
-
-#: gtkpod.glade:7253
-msgid "Match an_y of the following"
-msgstr "Matcha _någon av följande"
-
-#: gtkpod.glade:7273
-msgid "_Ignore rules"
-msgstr "_Ignorera regler"
-
-#: gtkpod.glade:7343
-msgid "Rules"
-msgstr "Regler"
-
-#: gtkpod.glade:7376
-msgid "_Limit to"
-msgstr "_Begränsa till"
-
-#: gtkpod.glade:7425
-msgid "   Sort by:"
-msgstr "   Sortera enligt:"
-
-#: gtkpod.glade:7471
-msgid "Match only _checked tracks"
-msgstr "Matcha bara _kryssmarkerade spår"
-
-#: gtkpod.glade:7503
-msgid "Live _updating"
-msgstr "_Uppdatering under tiden"
-
-#: gtkpod.glade:7594
-msgid "Preferences"
-msgstr "Inställningar"
-
-#: gtkpod.glade:7655
-msgid "<b>Import</b>"
-msgstr "<b>Importera</b>"
-
-#: gtkpod.glade:7715
-msgid "iPod Mount _Point:"
-msgstr "iPod monterings_punkt:"
-
-#: gtkpod.glade:7737
-msgid ""
-"Where you mounted your iPod's filesystem. Usually '/mnt/ipod/' or similar."
-msgstr ""
-"Platsen du monterade iPod-filsystemet. Oftast '/mnt/ipod' eller något "
-"liknande."
-
-#: gtkpod.glade:7765
-msgid ""
-"On startup gtkpod will call 'mount <ipod mountpoint>', on exit a 'umount "
-"<ipod mountpoint>' call is carried out. For more complicated arrangements "
-"please use the ~/.gtkpod/gtkpod.in and ~/.gtkpod/gtkpod.out scripts."
-msgstr ""
-"Vid start anropar gtkpod 'mount <iPod monteringspunkt>' och vid avslutning "
-"utförs anropet 'umount <iPod monteringspunkt>'. För mer komplicerad "
-"hantering, använd skripten ~/.gtkpod/gtkpod.in och  ~/.gtkpod/gtkpod.out."
-
-#: gtkpod.glade:7767
-msgid "Handle mounting/unmounting of iPod drive"
-msgstr "Hantera montering och avmontering av iPod-enheten"
-
-#: gtkpod.glade:7787
-msgid "Automatically import iTunesDB on startup"
-msgstr "Importera automatiskt iTunes databas vid start"
-
-#: gtkpod.glade:7833
-msgid "<b>Adding/Updating/Syncing</b>"
-msgstr "<b>Tillägg, uppdatering, synkronisering</b>"
-
-#: gtkpod.glade:7893
-msgid "_Encoding (ID3, files):"
-msgstr "_Teckenkodning (ID3, filer):"
-
-#: gtkpod.glade:7924
-msgid ""
-"gtkpod expects the ID3 tags and the filenames to be in the encoding "
-"specified here. You can change it for consecutive 'Add Files' and 'Add Dirs' "
-"operation. 'System Charset' is the charset used by your current locale."
-msgstr ""
-"ID3-taggar och filnamn förväntas ha kodningen som anges här. Du kan ändra "
-"den för varje enskild användning av 'Lägg till filer' eller 'Lägg till "
-"kataloger'. 'Systemets kodning' är den kodning som används i din aktuella "
-"landsinställning."
-
-#: gtkpod.glade:7961
-msgid ""
-"Normally the charset specified when first importing the track will be used "
-"to update the track information. If you have chosen a wrong charset when "
-"first importing a track and want to correct it using the 'Update Track' "
-"function, you must check this option. Note: the charset info is stored in "
-"the extended information file (see 'Writing of iTunesDB' below) and tracks "
-"imported before V0.51 will have no charset stored. Instead the charset "
-"specified above will be used then."
-msgstr ""
-"Normalt används teckenkodning som först anges när spåret importeras för att "
-"uppdatera spårinformation. Om du valde fel teckenkodning när spåret först "
-"importerades, och vill rätta det med funktionen 'Uppdatera spår', måste du "
-"markera alternativet. Observera: kodningsinformationen lagras i filen med "
-"utökad information (se 'Skrivning av iTunes databas' nedan) och spår som "
-"importerats innan version 0.51 har ingen teckenkodning lagrad. Istället "
-"används då teckensnittet som anges ovan."
-
-#: gtkpod.glade:7963
-msgid ""
-"Use selected encoding also when updating \n"
-"or syncing tracks"
-msgstr ""
-"Använd också vald kodning vid uppdatering\n"
-"eller synkronisering av spår"
-
-#: gtkpod.glade:7983
-msgid "If you check this, gtkpod will descend into subdirectories recursively."
-msgstr "Om du markerar det här, går gtkpod ner i underkataloger rekursivt."
-
-#: gtkpod.glade:7985
-msgid "Add directories recursively"
-msgstr "Lägg till kataloger rekursivt"
-
-#: gtkpod.glade:8004
-msgid "Duplicate Recognition is based on a (modified) md5 hash over the file."
-msgstr ""
-"Igenkänning av duplikat är baserat på filens (modifierade) MD5-checksumma."
-
-#: gtkpod.glade:8006
-msgid "Don't allow file duplication"
-msgstr "Tillåt inte duplicerade filer"
-
-#: gtkpod.glade:8052
-msgid ""
-"Display the list of duplicates that have been detected after adding files."
-msgstr "Visa listan med upptäckta duplikat efter filer har lagts till."
-
-#: gtkpod.glade:8054
-msgid "Display info about detected duplicates"
-msgstr "Visa information om detekterade duplikat"
-
-#: gtkpod.glade:8080
-msgid ""
-"If the filename (full path) of an existing track matches that of a track to "
-"be added, this option allows you to update the information about the "
-"existing track rather than just skipping the track altogether. No update "
-"will take place if the file hasn't changed and you have selected the 'Don't "
-"allow file duplication' option above."
-msgstr ""
-"Om filnamnet (fullständiga sökvägen) för ett befintligt spår motsvarar ett "
-"spår som ska läggas till, låter det här alternativet dig uppdatera "
-"informationen om det befintliga spåret istället för att bara hoppa över "
-"spåret helt. Ingen uppdatering sker om filen inte har ändrats och du har "
-"valt alternativet 'Tillåt inte duplicerade filer' ovan."
-
-#: gtkpod.glade:8082
-msgid ""
-"When adding dirs/files, update information of\n"
-"existing tracks with identical filenames"
-msgstr ""
-"När kataloger och filer läggs till, uppdatera information\n"
-"om befintliga spår med identiska filnamn"
-
-#: gtkpod.glade:8129
-msgid "Display a list of tracks that could actually be updated."
-msgstr "Visa en lista med spår som skulle kunna uppdateras."
-
-#: gtkpod.glade:8131
-msgid "Display info about updated tracks"
-msgstr "Visa information om uppdaterade spår"
-
-#: gtkpod.glade:8184
-msgid "Display a list of tracks that could not be updated."
-msgstr "Visa en lista med spår som inte kunde uppdateras."
-
-#: gtkpod.glade:8186
-msgid "Display info about non-updated tracks"
-msgstr "Visa information om spår som inte uppdaterats"
-
-#: gtkpod.glade:8212
-msgid "When syncing directories"
-msgstr "Vid synkronisering av kataloger"
-
-#: gtkpod.glade:8267
-msgid "Confirm lists of directories"
-msgstr "Bekräfta lista med kataloger"
-
-#: gtkpod.glade:8286
-msgid ""
-"If you check this option, tracks that have been removed from the synced "
-"directories will be removed from the iPod as well."
-msgstr ""
-"Om du markerar det här alternativet, kommer spår som har tagits bort i de "
-"synkroniserade katalogerna också att tas bort från iPod."
-
-#: gtkpod.glade:8288
-msgid "Delete tracks that have been removed"
-msgstr "Ta bort spår som inte längre finns"
-
-#: gtkpod.glade:8307
-msgid "This is the same option as in 'Edit/Delete Confirmation'"
-msgstr "Det här är samma alternativ som i 'Redigera/Bekräfta "
-
-#: gtkpod.glade:8309
-msgid "Confirm before removing tracks"
-msgstr "Bekräfta innan spår tas bort"
-
-#: gtkpod.glade:8369
-msgid "<b>Sync</b>"
-msgstr "<b>Synkronisera</b>"
-
-#: gtkpod.glade:8417
-msgid ""
-"Highly recommended for faster import when taking advantage of the "
-"duplication recognition. Also, having the PC filenames allows writing "
-"changed ID3 tags to disk, and even to reconstruct your ipod's contents in "
-"case of file system corruption (change the \"transferred=\" entries in your "
-"backuped database)."
-msgstr ""
-"Rekommenderas starkt för snabbare import när funktionen för att känna igen "
-"duplikat utnyttjas. Dessutom blir det möjligt att skriva ändrade ID3-taggar "
-"till disk när PC-filnamnen behålls, eller till och med att återskapa "
-"innehållet i iPod om filsystemet blir skadat (ändra raderna \"transferred=\" "
-"i den säkerhetskopierade databasen)."
-
-#: gtkpod.glade:8419
-msgid ""
-"Write extended information (PC filenames,\n"
-" MD5 hashes, encoding). Recommended."
-msgstr ""
-"Skriv utökad information (PC-filnamn, MD5-\n"
-"checksummor, teckenkodning). Rekommenderas."
-
-#: gtkpod.glade:8463 gtkpod.glade:14970
-msgid "_General"
-msgstr "_Allmänt"
-
-#: gtkpod.glade:8495
-msgid "<b>Tag Reading</b>"
-msgstr "<b>Taggläsning</b>"
-
-#: gtkpod.glade:8550
-msgid "Read tags from file contents (e.g. ID3 tags in MP3 files)"
-msgstr "Läs spår från filinnehåll (t.ex. ID3-taggar i MP3-filer)"
-
-#: gtkpod.glade:8569 gtkpod.glade:8906
-msgid ""
-"artist: %a, album: %A, composer: %c, title: %t, genre: %G, track nr: %T, CD "
-"nr: %C, year: %Y, skip data: %*, the character '%': %%. You can separate "
-"several templates by a ';'. The first one matching the filename will be "
-"used. Example: '%a - %A/%T %t.mp3;%t.wav'."
-msgstr ""
-"artist: %a, album: %A, kompositör: %c, titel: %t, genre: %G, spårnummer: %T, "
-"cd-nummer: %C, år: %Y, hoppa över data: %*, tecknet '%': %%. Du kan skilja "
-"flera mallar åt med ';'. Den första som stämmer med filnamnet används. "
-"Exempel: '%a - %A/%T %t.mp3;%t.wav'."
-
-#: gtkpod.glade:8571
-msgid "Use this template to parse filename for tag information:"
-msgstr "Använd mallen för att tolka filnamnet som tagginformation:"
-
-#: gtkpod.glade:8644
-msgid "Overwrite tags that are already set"
-msgstr "Skriv över taggar som redan är angivna"
-
-#: gtkpod.glade:8677
-msgid ""
-"As a last resort set the following tags to the\n"
-"filename if they are (still) empty:"
-msgstr ""
-"Om följande taggar (fortfarande) är tomma,\n"
-"lagra filnamnet i dem som en sista utväg:"
-
-#: gtkpod.glade:8852
-msgid "<b>Artwork</b>"
-msgstr "<b>Omslag</b>"
-
-#: gtkpod.glade:8908
-msgid "Add artwork from file using the following template"
-msgstr "Lägg till omslag från fil med följande mall"
-
-#: gtkpod.glade:8960
-msgid ""
-"Determines the name of the file with the cover art. You can separate several "
-"patterns by semicolons which will be tried in order. Artist: %a, album: %A, "
-"composer: %c, title: %t, genre: %G, track nr: %T, CD nr: %C, year: %Y, "
-"original filename (requires extended information file): %o, original "
-"filename without file extension: %O, current playlist: %p, the character "
-"'%': %%."
-msgstr ""
-"Avgör namn på filen med omslagsbilden. Du kan skilja flera mönster åt med "
-"semikolon, som används i tur och ordning. Artist: %a, album: %A, kompositör: "
-"%c, titel: %t, genre: %G, spårnummer: %T, cd-nummer: %C, år: %Y, "
-"ursprungligt filnamn (kräver fil med utökad information): %o, ursprungligt "
-"filnamn utan filändelse: %O, nuvarande spellista: %p, tecknet '%': %%."
-
-#: gtkpod.glade:8981
-msgid "<b>Examples</b>"
-msgstr "<b>Exempel</b>"
-
-#: gtkpod.glade:9011
-msgid "folder.jpg"
-msgstr "katalog.jpg"
-
-#: gtkpod.glade:9035
-msgid "folder"
-msgstr "katalog"
-
-#: gtkpod.glade:9059
-msgid "../%A.jpg"
-msgstr "../%A.jpg"
-
-#: gtkpod.glade:9083
-msgid "%A"
-msgstr "%A"
-
-#: gtkpod.glade:9107
-msgid "Use <i>folder.jpg</i> as cover art."
-msgstr "Använd <i>katalog.jpg</i> som omslagsbild."
-
-#: gtkpod.glade:9131
-msgid "Use <i>folder.jpg</i>, <i>folder.png</i>..."
-msgstr "Använd <i>katalog.jpg</i>, <i>katalog.png</i>..."
-
-#: gtkpod.glade:9155
-msgid "Use <i>&lt;Album&gt;.jpg</i> in the parent directory"
-msgstr "Använd <i>&lt;Album&gt;.jpg</i> i överliggande katalog"
-
-#: gtkpod.glade:9179
-msgid "Use <i>&lt;Album&gt;.jpg</i>, <i>&lt;Album&gt;.png</i>..."
-msgstr "Använd <i>&lt;Album&gt;.jpg</i>, <i>&lt;Album&gt;.png</i>..."
-
-#: gtkpod.glade:9203
-msgid "folder.jpg;%a.jpg"
-msgstr "katalog.jpg;%a.jpg"
-
-#: gtkpod.glade:9227
-msgid "First try <i>folder.jpg</i>, then <i>&lt;artist&gt;.jpg</i>"
-msgstr ""
-"Försök först med <i>katalog.jpg</i>, därefter med <i>&lt;artist&gt;.jpg</i>"
-
-#: gtkpod.glade:9311
-msgid "<b>mserv</b>"
-msgstr "<b>mServ</b>"
-
-#: gtkpod.glade:9365 gtkpod.glade:9579
-msgid "Currently only rating is supported."
-msgstr "För närvarande stöds bara ett betyg"
-
-#: gtkpod.glade:9367
-msgid "Use mserv database to fill additional information"
-msgstr "Använd mserv databas för att fylla i ytterligare information"
-
-#: gtkpod.glade:9395
-msgid "Music Root:"
-msgstr "Musikrot:"
-
-#: gtkpod.glade:9419
-msgid "mserv database lookup will be done for music in this directory."
-msgstr "Uppslagning av musik för mserv databasen görs i den här katalogen."
-
-#: gtkpod.glade:9441
-msgid "mserv Root:"
-msgstr "Rot för mserv:"
-
-#: gtkpod.glade:9465
-msgid "Root directory of mserv database (trackinfo root)."
-msgstr "Rotkatalog för mserv databasen (rot för spårinformation)."
-
-#: gtkpod.glade:9487
-msgid "Username:"
-msgstr "Användarnamn:"
-
-#: gtkpod.glade:9511
-msgid "Username to be used for mserv database lookup."
-msgstr "Användarnamn att använda vid uppslagning i mserv databasen."
-
-#: gtkpod.glade:9535 gtkpod.glade:9554 gtkpod.glade:12102 gtkpod.glade:12172
-#: gtkpod.glade:12317 gtkpod.glade:12491 gtkpod.glade:12556 gtkpod.glade:12621
-msgid "Browse"
-msgstr "Bläddra"
-
-#: gtkpod.glade:9581
-msgid "Show information about problems when accessing mserv"
-msgstr "Visa information om problem vid användning av mserv"
-
-#: gtkpod.glade:9627
-msgid "_Track Info"
-msgstr "_Spårinformation"
-
-#: gtkpod.glade:9673
-msgid "<b>Displayed Track Attributes</b>"
-msgstr "<b>Visade spåregenskaper</b>"
-
-#: gtkpod.glade:10460
-msgid "<b>Sort Tabs</b>"
-msgstr "<b>Sorteringsflikar</b>"
-
-#: gtkpod.glade:10514
-msgid "Keeps all compilation CDs grouped together in the artists sort tab."
-msgstr ""
-"Behåller alla samlingsskivor grupperade tillsammans i sorteringsfliken för "
-"artister"
-
-#: gtkpod.glade:10516
-msgid "Group artists on compilation CDs"
-msgstr "Gruppera artister på samlingsskivor"
-
-#: gtkpod.glade:10541
-msgid "_Number of sort tabs:"
-msgstr "A_ntal sorteringsflikar:"
-
-#: gtkpod.glade:10617
-msgid "<b>Automatically select...</b>"
-msgstr "<b>Välj automatiskt...</b>"
-
-#: gtkpod.glade:10671
-msgid ""
-"If you don't select the master playlist automatically, the initial database "
-"import is much faster because the display dosn't have to be updated."
-msgstr ""
-"Om du inte väljer huvudspellistan automatiskt, går den ursprungliga importen "
-"av databasen mycket snabbare eftersom skärmen inte behöver uppdateras."
-
-#: gtkpod.glade:10673
-msgid "...master playlist"
-msgstr "...huvudspellista"
-
-#: gtkpod.glade:10693
-msgid "...entry 'All' in sort tab..."
-msgstr "...raden 'Alla' i sorteringsflikar"
-
-#: gtkpod.glade:10774
-msgid "<b>Tooltips</b>"
-msgstr "<b>Verktygstips</b>"
-
-#: gtkpod.glade:10829
-msgid "Display tooltips in main window"
-msgstr "Visa verktygstips i huvudfönstret"
-
-#: gtkpod.glade:10849
-msgid "Display tooltips in prefs window"
-msgstr "Visa verktygstips i inställningsfönstret"
-
-#: gtkpod.glade:10895
-msgid "<b>Toolbar</b>"
-msgstr "<b>Verktygsrad</b>"
-
-#: gtkpod.glade:10950
-msgid "Display toolbar..."
-msgstr "Visa verktygsrad..."
-
-#: gtkpod.glade:11003
-msgid "...as icons"
-msgstr "...som ikoner"
-
-#: gtkpod.glade:11023
-msgid "...as text"
-msgstr "...som text"
-
-#: gtkpod.glade:11044
-msgid "...both as icons and text"
-msgstr "...både som ikoner och text"
-
-#: gtkpod.glade:11105
-msgid "<b>Misc</b>"
-msgstr "<b>Diverse</b>"
-
-#: gtkpod.glade:11159
-msgid ""
-"It is much faster to sort the display after all tracks have been added. Some "
-"people might feel irritated by this behaviour and should uncheck this option."
-msgstr ""
-"Det går mycket snabbare att sortera skärmen efter alla spår har lagts till. "
-"Några personer kanske känner sig irriterade av detta beteende, och kan då "
-"avmarkera alternativet."
-
-#: gtkpod.glade:11161
-msgid ""
-"Temporarily disable sorting when changing playlist\n"
-"or tab entry (faster!)"
-msgstr ""
-"Inaktivera sortering tillfälligt när spellistor\n"
-"eller flikar ändras (snabbare)"
-
-#: gtkpod.glade:11181
-msgid ""
-"The display can be blocked after changing a selection. The display update is "
-"faster, but you have to wait until it's finished. When using this option, "
-"sorting is also temporarily disabled (see option above)."
-msgstr ""
-"Skärmen kan blockeras efter en markering ändrats. Skärmuppdateringen blir "
-"snabbare, men du måste vänta till den är klar. När du använder det här "
-"alternativet är sortering också tillfälligt avstängd (se alternativet ovan)."
-
-#: gtkpod.glade:11183
-msgid ""
-"Block display when changing playlist or tab\n"
-" entry (faster!)"
-msgstr ""
-"Blockera skärmen när spellistor\n"
-"eller flikar ändras (snabbare)"
-
-#: gtkpod.glade:11203
-msgid "This option will be re-activated when you upgrade gtkpod."
-msgstr "Det här alternativet aktiveras igen när du uppdaterar gtkpod."
-
-#: gtkpod.glade:11205
-msgid "Display messages and warnings at startup"
-msgstr "Visa meddelanden och varningar vid start"
-
-#: gtkpod.glade:11267
-msgid "Advanced Sorting Options"
-msgstr "Avancerade sorteringsalternativ"
-
-#: gtkpod.glade:11362
-msgid "<b>Track Editing</b>"
-msgstr "<b>Spårredigering</b>"
-
-#: gtkpod.glade:11416
-msgid ""
-"The tags are written to the files on your harddrive and on the ipod (if "
-"available)."
-msgstr ""
-"Taggarna skrivs till filer på din hårddisk och på iPod (om tillgänglig)."
-
-#: gtkpod.glade:11418
-msgid "Write ID3 tags to disk when modified in gtkpod"
-msgstr "Skriv ID3-taggar till disk när de ändrats i gtkpod"
-
-#: gtkpod.glade:11470
-msgid ""
-"Normally the charset specified when first importing the track will be used "
-"to write the tags. If you have chosen a wrong charset when first importing a "
-"track, you should select this option along with the correct charset.  Note: "
-"uses the extended information file to store the charset information (see "
-"'Writing of the iTunesDB' on the 'Input/Output' page) and tracks imported "
-"before V0.51 will have no charset stored -- the charset specified on the "
-"'Input/Output' page will be used."
-msgstr ""
-"Normalt används teckenkodning som först anges när spåret importeras för att "
-"skriva taggarna. Om du valde fel teckenkodning när spåret först "
-"importerades, ska du markera det här alternativet tillsammans med den "
-"riktiga teckenkodningen. Observera: använder filen med utökad information "
-"för att lagra kodningsinformation (se 'Skrivning av iTunes databas' på sidan "
-"'In- och utmatning') och spår som importerats innan version 0.51 har ingen "
-"teckenkodning lagrad. Istället används då teckensnittet som anges på sidan "
-"'In- och utmatning'."
-
-#: gtkpod.glade:11472
-msgid ""
-"Use selected encoding (on the 'General' page)\n"
-"when writing tags"
-msgstr ""
-"Använd vald teckenkodning (från sidan 'Allmänt')\n"
-"vid skrivning av taggar"
-
-#: gtkpod.glade:11492
-msgid ""
-"This is the way to go, but maybe not all programs support it yet. ID3v2.4 "
-"uses unicode to store the tags, so you won't have to worry about charsets "
-"any more. gtkpod will use UTF8 encoding as this will not increase the size "
-"of pure ASCII tags. ID3v2.2/4 tags will also be written if they are already "
-"present in the file to write to."
-msgstr ""
-"Det här är rätt metod, men kanske stöder inte alla program det ännu. ID3v2.4 "
-"använder Unicode för att lagra taggar, så du behöver inte längre bekymra dig "
-"om teckenkodning. Kodningen UTF8 används av gtkpod, om den inte ökar "
-"storleken av rena ASCII-taggar. ID3v2.2/4-taggar skrivs också om de redan "
-"finns i filen som skrivs."
-
-#: gtkpod.glade:11494
-msgid "Always write ID3v2.4 tags (only applies to MP3)"
-msgstr "Skriv alltid ID3v2.4-taggar (gäller bara MP3)"
-
-#: gtkpod.glade:11527
-msgid ""
-"If you select several tracks in the track list and edit a tag of the first "
-"track, the tags in the other tracks are updated as well."
-msgstr ""
-"Om du markerar flera spår i spårlistan och redigerar taggen för det första "
-"spåret, uppdateras också taggarna för övriga spår."
-
-#: gtkpod.glade:11529
-msgid "Use 'Multi-Edit' for tracks selections"
-msgstr "Använd 'Redigera flera' för markerade spår"
-
-#: gtkpod.glade:11575
-msgid ""
-"Usually you don't want to set the title of several tracks to the same text. "
-"This option might avoid unwanted results (especially since there is no "
-"'undo' yet)."
-msgstr ""
-"Oftast vill du inte ange titeln för flera spår till samma text. Det här "
-"alternativet kan undvika oönskade resultat (särskilt eftersom funktionen "
-"'Ångra' inte finns ännu)."
-
-#: gtkpod.glade:11577
-msgid "Use 'Multi-Edit' also for title field"
-msgstr "Använd också 'Redigera flera' för titelfältet"
-
-#: gtkpod.glade:11630
-msgid "<b>Auto-Generated Playlists</b>"
-msgstr "<b>Automatiskt skapade spellistor</b>"
-
-#: gtkpod.glade:11690
-msgid "Number of tracks in generated playlists:"
-msgstr "Antal spår i skapade spellistor:"
-
-#: gtkpod.glade:11711
-msgid ""
-"Number of tracks in the generated playlists 'Most Often Listened', 'Best "
-"Rated' and 'Most Recently Played'. Choose '0' for 'no limit'."
-msgstr ""
-"Antal spår i de skapade spellistorna 'oftast lyssnats på', 'med bäst betyg' "
-"och 'nyligen spelats'. Ange '0' för 'ingen begränsning'."
-
-#: gtkpod.glade:11740
-msgid "Also include tracks never played in \"Best Rated\" playlist"
-msgstr ""
-"Inkludera också spår som aldrig spelats i spellistan \"med bäst betyg\""
-
-#: gtkpod.glade:11786
-msgid "<b>Delete Confirmation</b>"
-msgstr "<b>Bekräfta borttagning</b>"
-
-#: gtkpod.glade:11841
-msgid "Before removing playlists or tracks from a playlist"
-msgstr "Innan spellistor eller spår tas bort från en spellista"
-
-#: gtkpod.glade:11861
-msgid "Before removing tracks from the iPod"
-msgstr "Innan spår tas bort från iPod"
-
-#: gtkpod.glade:11881
-msgid "Before removing tracks from the harddisk"
-msgstr "Innan spår tas bort från hårddisken"
-
-#: gtkpod.glade:11901
-msgid "Before removing tracks from the local database"
-msgstr "Innan spår tas bort från den lokala databasen"
-
-#: gtkpod.glade:11921
-msgid ""
-"Before removing tracks completely when\n"
-"synchronizing directories"
-msgstr ""
-"Innan spår tas bort helt vid\n"
-"synkronisering av kataloger"
-
-#: gtkpod.glade:12000
-msgid "<b>Play</b>"
-msgstr "<b>Spela</b>"
-
-#: gtkpod.glade:12060
-msgid "Command for 'Play now':"
-msgstr "Kommando för 'Spela nu':"
-
-#: gtkpod.glade:12081
-msgid ""
-"For example, 'xmms %s' will clear xmms' current playlist, add the selected "
-"tracks and start playing."
-msgstr ""
-"Till exempel rensas XMM:s nuvarande spellista, de markerade spåren läggs "
-"till och uppspelning startar med 'xmms %s'."
-
-#: gtkpod.glade:12130
-msgid "Command for 'Enqueue':"
-msgstr "Kommando för 'Köa':"
-
-#: gtkpod.glade:12151
-msgid ""
-"For example, 'xmms -e %s' will append (enqueue) the selected tracks to xmms' "
-"current playlist."
-msgstr ""
-"Till exempel läggs de markerade spåren till sist i XMM:s nuvarande spellista "
-"(köas) med 'xmms -e %s'."
-
-#: gtkpod.glade:12221
-msgid "<b>Volume Normalization</b>"
-msgstr "<b>Normalisering av volym</b>"
-
-#: gtkpod.glade:12275
-msgid "'mp3gain' executable:"
-msgstr "Körbart program 'mp3gain':"
-
-#: gtkpod.glade:12296
-msgid ""
-"You only need to specify this if your 'mp3gain' executable is not in your "
-"default path. Example: '/usr/local/foo/mp3gain'. mp3gain will write the "
-"calculated gain value back to the file -- if you don't want this, set this "
-"entry to /bin/true or similar. mp3gain is only called if appropriate tags "
-"are not already set by your encoder. E.g. lame version 0.95 already writes "
-"the gain values into tags. The exact conversion factor between mp3gain's "
-"gain value and iPod's volume tag is not known yet -- your input is "
-"appreciated."
-msgstr ""
-"Du behöver bara ange det här om det körbara programmet 'mp3gain' inte finns "
-"i din standardsökväg. Till exempel '/usr/local/foo/mp3gain'. mp3gain skriver "
-"tillbaka det beräknade nivåvärdet i filen. Om du inte vill det, ange "
-"alternativet som /bin/true eller något liknande. mp3gain anropas bara om "
-"lämpliga taggar inte redan angivits av kodaren. Version 0.95 av lame skriver "
-"till exempel redan nivåvärden i taggar. Det exakta konverteringsvärdet "
-"mellan nivåvärdet från mp3gain och volymtaggen i iPod är inte ännu känt: "
-"återmatning från dig uppskattas."
-
-#: gtkpod.glade:12359
-msgid "<b>Synchronization</b>"
-msgstr "<b>Synkronisering</b>"
-
-#: gtkpod.glade:12444
-msgid "Contacts sync command:"
-msgstr "Synkroniseringskommando för kontakter:"
-
-#: gtkpod.glade:12468 gtkpod.glade:12533 gtkpod.glade:12598
-msgid ""
-"Specify exact path including command line options. '%i' will be replaced "
-"with the mount point of the iPod."
-msgstr ""
-"Ange fullständig sökväg inklusive kommandoradsväljare. '%i' ersätts med "
-"monteringspunkten för iPod."
-
-#: gtkpod.glade:12509
-msgid "Calendar sync command:"
-msgstr "Synkroniseringskommando för kalender:"
-
-#: gtkpod.glade:12574
-msgid "Notes sync command:"
-msgstr "Synkroniseringskommando för anteckningar:"
-
-#: gtkpod.glade:12647
-msgid "Call automatically when synchronizing iTunesDB"
-msgstr "Anropa automatiskt vid synkronisering av iTunes databas"
-
-#: gtkpod.glade:12725
-msgid "<b>Podcast subscriptions</b>"
-msgstr "<b>Prenumeration på podradiosändningar</b>"
-
-#: gtkpod.glade:12800
-msgid "Add"
-msgstr "Lägg till"
-
-#: gtkpod.glade:12834
-msgid "Delete"
-msgstr "Ta bort"
-
-#: gtkpod.glade:12900
-msgid "Name: "
-msgstr "Namn: "
-
-#: gtkpod.glade:12924
-msgid "URL: "
-msgstr "Webbadress: "
-
-#: gtkpod.glade:13017
-msgid "<b>File options</b>"
-msgstr "<b>Inställningar av filer</b>"
-
-#: gtkpod.glade:13077
-msgid "Save podcasts to: "
-msgstr "Spara podradiosändningar i: "
-
-#: gtkpod.glade:13132
-msgid "Delete from computer when "
-msgstr "Ta bort från datorn när "
-
-#: gtkpod.glade:13172 gtkpod.glade:13474
-msgid " days old"
-msgstr " dagar gammal"
-
-#: gtkpod.glade:13201
-msgid "Delete once copied to iPod"
-msgstr "Ta bort efter kopiering till iPod"
-
-#: gtkpod.glade:13227
-msgid "Automatically fetch podcasts on startup"
-msgstr "Hämta automatiskt podradiosändningar vid start"
-
-#: gtkpod.glade:13254
-msgid "Create podcast logfile at:"
-msgstr "Skapa loggfil för podradiosändningar på:"
-
-#: gtkpod.glade:13354
-msgid "<b>iPod options</b>"
-msgstr "<b>Inställningar av iPod</b>"
-
-#: gtkpod.glade:13409
-msgid "Automatically sync to iPod"
-msgstr "Synkronisera automatiskt med iPod"
-
-#: gtkpod.glade:13435
-msgid "Delete from iPod when "
-msgstr "Ta bort från iPod när "
-
-#: gtkpod.glade:13503
-msgid "Delete from iPod if podcast has been played"
-msgstr "Ta bort från iPod om podradiosändning har spelats"
-
-#: gtkpod.glade:13523
-msgid "Include broadcast date in track title"
-msgstr "Inkludera sändningsdatum i spårtitel"
-
-#: gtkpod.glade:13543
-msgid "Set all podcast genres to 'Podcast'"
-msgstr "Ställ in alla podradiosändningars genre till 'Podradio'"
-
-#: gtkpod.glade:13589 gtkpod.glade:15342
-msgid "_Podcasts"
-msgstr "_Podradiosändningar"
-
-#: gtkpod.glade:13754
-msgid ""
-"\n"
-"\n"
-msgstr ""
-"\n"
-"\n"
-
-#: gtkpod.glade:13788
-msgid "Abort selected"
-msgstr "Avbryt markerade"
-
-#: gtkpod.glade:13804
-msgid "Abort current"
-msgstr "Avbryt nuvarande"
-
-#: gtkpod.glade:13820
-msgid "Abort all"
-msgstr "Avbryt alla"
-
-#: gtkpod.glade:13844
-msgid "Details"
-msgstr "Detaljinformation"
-
-#: gtkpod.glade:13905
-msgid "Cover"
-msgstr "Omslag"
-
-#: gtkpod.glade:13990
-msgid "Set Cover Art"
-msgstr "Ange omslagsbild"
-
-#: gtkpod.glade:14023
-msgid ""
-"If you check this, information (cover art and meta information) changed for "
-"this track will be copied to all other selected tracks as well. Use with "
-"care."
-msgstr ""
-"Om du markerar detta, kopieras information (omslagsbild och metainformation) "
-"som ändrats för spåret också till alla andra markerade spår. Använd med "
-"försiktighet."
-
-#: gtkpod.glade:14069
-msgid ""
-"Change all tracks\n"
-"simultaneously"
-msgstr ""
-"Ändra alla spår\n"
-"samtidigt"
-
-#: gtkpod.glade:14157
-msgid "Remove Cover Art"
-msgstr "Ta bort omslagsbild"
-
-#: gtkpod.glade:16246
-msgid "_Other"
-msgstr "Ö_vriga"
-
-#: gtkpod.glade:16536
-msgid "_Undo All"
-msgstr "Ã…_ngra alla"
-
-#: gtkpod.glade:16606
-msgid "_Undo Track"
-msgstr "Å_ngra spår"
-
-#~ msgid "Export Tracks"
-#~ msgstr "Exportera spår"
+#~ msgid "'%s': only '%%[%s]' allowed.\n"
+#~ msgstr "'%s': bara '%%[%s]' tillåts.\n"

Modified: gtkpod/branches/upstream/current/scripts/Makefile.am
===================================================================
--- gtkpod/branches/upstream/current/scripts/Makefile.am	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/scripts/Makefile.am	2006-09-30 00:00:17 UTC (rev 139)
@@ -15,6 +15,8 @@
 	sync-notes.sh \
 	sync-palm-jppy.py \
 	sync-thunderbird.sh \
+	sync-thunderbird-nano.sh \
+	sync-tomboy.sh \
 	sync-webcalendar.sh \
 	ldif2vcf.sh \
 	mab2vcard

Modified: gtkpod/branches/upstream/current/scripts/Makefile.in
===================================================================
--- gtkpod/branches/upstream/current/scripts/Makefile.in	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/scripts/Makefile.in	2006-09-30 00:00:17 UTC (rev 139)
@@ -63,6 +63,7 @@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GMOFILES = @GMOFILES@
 GMSGFMT = @GMSGFMT@
+GREP = @GREP@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
@@ -106,8 +107,6 @@
 VERSION = @VERSION@
 XGETTEXT = @XGETTEXT@
 ac_ct_CC = @ac_ct_CC@
-ac_ct_STRIP = @ac_ct_STRIP@
-ac_pt_PKG_CONFIG = @ac_pt_PKG_CONFIG@
 am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
 am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
 am__include = @am__include@
@@ -120,6 +119,9 @@
 build_os = @build_os@
 build_vendor = @build_vendor@
 datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
 exec_prefix = @exec_prefix@
 have_pkgconfig = @have_pkgconfig@
 host = @host@
@@ -127,16 +129,20 @@
 host_cpu = @host_cpu@
 host_os = @host_os@
 host_vendor = @host_vendor@
+htmldir = @htmldir@
 includedir = @includedir@
 infodir = @infodir@
 install_sh = @install_sh@
 libdir = @libdir@
 libexecdir = @libexecdir@
+localedir = @localedir@
 localstatedir = @localstatedir@
 mandir = @mandir@
 oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
+psdir = @psdir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 sysconfdir = @sysconfdir@
@@ -157,6 +163,8 @@
 	sync-notes.sh \
 	sync-palm-jppy.py \
 	sync-thunderbird.sh \
+	sync-thunderbird-nano.sh \
+	sync-tomboy.sh \
 	sync-webcalendar.sh \
 	ldif2vcf.sh \
 	mab2vcard

Modified: gtkpod/branches/upstream/current/scripts/sync-evocalendar.sh
===================================================================
--- gtkpod/branches/upstream/current/scripts/sync-evocalendar.sh	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/scripts/sync-evocalendar.sh	2006-09-30 00:00:17 UTC (rev 139)
@@ -10,8 +10,13 @@
 # with the following defaults: 
 
 IPOD_MOUNT=/mnt/ipod                          # mountpoint of ipod
-CALFILE=~/.evolution/calendar/local/system/calendar.ics # calendar data file
-TASKFILE=~/.evolution/tasks/local/system/tasks.ics # task data file
+
+#get all the local evolution calendars
+CALFILES=`find ~/.evolution/calendar/local/ -name "calendar.ics"`
+
+#get all the local evolution tasks
+TASKFILES=`find ~/.evolution/tasks/local/ -name "tasks.ics"`
+
 ENCODING=ISO-8859-15                          # encoding used by ipod
 
 # Unless called with "-e=none" this script requires "iconv" available
@@ -37,6 +42,11 @@
 
 # Changelog:
 #
+# 2006/03/08 (Michele C. Soccio <michele at soccio dot it>:
+# Changed to get all the local calendar and task files
+#
+# Changed to correct the calendar file(s) and task file(s) command line option
+# 
 # 2004/06/27 (Jorg Schuler <jcsjcs at users dot sourceforge dot net>):
 # Changed to accept ipod-mountpath and encoding as command line
 # option
@@ -62,11 +72,11 @@
 
 
 # overwrite default settings with optional command line arguments
-while getopts i:d:e: option; do
+while getopts i:c:t:e: option; do
     case $option in
-        i) IPOD_MOUNT=$OPTARG;;
-        c) CALFILE=$OPTARG;;
-        t) TASKFILE=$OPTARG;;
+	i) IPOD_MOUNT=$OPTARG;;
+        c) CALFILES=$OPTARG;;
+        t) TASKFILES=$OPTARG;;
         e) ENCODING=$OPTARG;;
         \?) echo "Usage: `basename $0` [-i <ipod mountpoint>] [-c <evolution calendar file>] [-t <evolution tasks file>] [-e <encoding>]"
 	    exit 1;;
@@ -82,20 +92,26 @@
 fi
 
 
-# check if CALFILE exists
-if [ ! -f $CALFILE ]; then
-    echo "Error: $CALFILE does not exist"
-    exit 1
-fi
+# check if CALFILES exist
+for i in $CALFILES; do
+	if [ ! -f $CALFILE ]; then
+	    echo "Error: $i does not exist"
+	    exit 1
+	fi
+done
 
-# check if TASKFILE exists
-if [ ! -f $TASKFILE ]; then
-    echo "Error: $TASKFILE does not exist"
-    exit 1
-fi
+# check if each TASKFILES exist
+for j in $TASKFILES; do
+	if [ ! -f $j ]; then
+	    echo "Error: $TASKFILE does not exist"
+	    exit 1
+	fi
+done
 
-
+echo $CALFILES
+echo $TASKFILES
+sleep 30
 # remove all empty lines and recode if necessary
 echo -n "Syncing iPod ... [Calendar] "
-cat $CALFILE $TASKFILE | grep -v '^[[:space:]]$\|^$' | $RECODE > $IPOD_MOUNT/Calendars/evolution
+	cat $CALFILES $TASKFILES | grep -v '^[[:space:]]$\|^$' | $RECODE > $IPOD_MOUNT/Calendars/evolution
 echo "done!"

Added: gtkpod/branches/upstream/current/scripts/sync-thunderbird-nano.sh
===================================================================
--- gtkpod/branches/upstream/current/scripts/sync-thunderbird-nano.sh	                        (rev 0)
+++ gtkpod/branches/upstream/current/scripts/sync-thunderbird-nano.sh	2006-09-30 00:00:17 UTC (rev 139)
@@ -0,0 +1,97 @@
+#!/bin/sh
+#
+# Script for syncing thunderbird addressbook data with iPod Nano
+#
+# It appears as if the old iPod Nano firmware only displayed the first
+# entry of a vcf file (the issue doesn't seem to exist with current
+# versions of the firmware). This script writes one vcf file per
+# address in your address book and could therefore also be useful
+# non-Nano users.
+#
+# (c) 2006 Paul Oremland <paul at oremland dot net>
+
+# Usage:
+# 
+# sync-thunderbird-nano.sh [-i <ipod mountpoint>] [-e <encoding>]
+#                      [-d <path to thunderbird address book>]
+#                      [-n <name of exported file>]
+#
+# specify '-d' if your thunderbird address book is not in
+# ~/.thunderbird/
+#
+# specify '-n' if you want to export more than one address book
+# (otherwise the second call to this script will overwrite the output
+# of the first call)
+
+# with the following defaults: 
+
+IPOD_MOUNT=/mnt/ipod         # mountpoint of ipod
+ENCODING=ISO-8859-15         # encoding used by ipod
+NAME=thunderbird             # default file export name
+FILE_FLAG=''		     # flag used to determine end of file
+let COUNT=0;		     # file counter
+
+# Unless called with "-e=none" this script requires "recode" available
+# from ftp://ftp.iro.umontreal.ca/pub/recode/recode-3.6.tar.gz
+
+# About the encoding used by the iPod (by Jorg Schuler):
+#
+# For some reason the encoding used for the contact files and
+# calender files depends on the language you have set your iPod
+# to. If you set your iPod to German, iso-8859-15 (or -1?) is
+# expected. If you set it to Japanese, SHIFT-JIS is expected. You need
+# to reboot the iPod to have the change take effect, however. (I'm
+# using firmware version 1.3.)
+#
+# If you know of more encodings, please let me know, so they can be
+# added here:
+#
+# iPod language      encoding expected
+# ----------------------------------------
+# German             ISO-8859-15
+# Japanese           SHIFT-JIS
+
+
+# Changelog:
+#
+# 2006/04/10 (Paul Oremland <paul at oremland dot net>):
+# break vcf file out into individual vcf files per contact
+
+
+# overwrite default settings with optional command line arguments
+while getopts i:d:e:n: option; do
+    case $option in
+        i) IPOD_MOUNT=$OPTARG;;
+        d) THUNPATH=$OPTARG;;
+        e) ENCODING=$OPTARG;;
+	n) NAME=$OPTARG;;
+        
+        \?) echo "Usage: `basename $0 ` [-i <ipod mountpoint>] [-e <encoding>] [-d <path to thunderbird address book>] [-n <name of exported file>]"
+	    exit 1;;
+    esac
+done
+
+
+echo "Exporting Contacts:"
+SYNC="$(dirname $0)/sync-thunderbird.sh -i ${IPOD_MOUNT} -e ${ENCODING} -d ${THUNPATH} -n ${NAME}"
+$SYNC
+
+echo "Breaking apart VCF file into individual contacts"
+for line in $(cat $IPOD_MOUNT/Contacts/${NAME}.vcf | sed "s/\ /[54321]/g")
+do
+	if [ "$FILE_FLAG" = 'END' ]; then
+		let COUNT=$COUNT+1;
+	fi
+
+	echo $line | sed "s/\[54321\]/\ /g" >> $IPOD_MOUNT/Contacts/${NAME}$COUNT.vcf
+
+	if [ "$line" = 'END:VCARD' ]; then
+		echo "Finished Writing ${NAME}$COUNT.vcf"
+		FILE_FLAG="END";
+	else
+		FILE_FLAG='';
+	fi
+done
+
+echo "Removing ${NAME}.vcf"
+rm $IPOD_MOUNT/Contacts/${NAME}.vcf

Added: gtkpod/branches/upstream/current/scripts/sync-tomboy.sh
===================================================================
--- gtkpod/branches/upstream/current/scripts/sync-tomboy.sh	                        (rev 0)
+++ gtkpod/branches/upstream/current/scripts/sync-tomboy.sh	2006-09-30 00:00:17 UTC (rev 139)
@@ -0,0 +1,160 @@
+#!/bin/sh
+# (c) 2004 Markus Gaugusch <markus at gaugusch.at>
+# Script for syncing notes from tomboy with iPod
+
+# Tomboy Stuff By Tejas Dinkar <tejasdinkar AT gmail DOT com>
+
+# Usage:
+# 
+# sync-notes.sh [-i <ipod mountpoint>] [-p <path to folder containing notes (~/ipod_notes by default)>]
+#           ...        [-e <encoding>]
+#
+# with the following defaults: 
+
+IPOD_MOUNT=/media/disk-1                          # mountpoint of ipod
+NOTESPATH=~/.tomboy			  # path to folder containing notes
+ENCODING=ISO-8859-15                          # encoding used by ipod
+
+# Unless called with "-e=none" this script requires "iconv" available
+# from http://www.gnu.org/software/libiconv/
+
+# About the encoding used by the iPod (by Jorg Schuler):
+#
+# For some reason the encoding used for the contact files and
+# calenader files depends on the language you have set your iPod
+# to. If you set your iPod to German, iso-8859-15 (or -1?) is
+# expected. If you set it to Japanese, SHIFT-JIS is expected. You need
+# to reboot the iPod to have the change take effect, however. (I'm
+# using firmware version 1.3.)
+#
+# If you know of more encodings, please let me know, so they can be
+# added here:
+#
+# iPod language      encoding expected
+# ----------------------------------------
+# German             ISO-8859-15
+# Japanese           SHIFT-JIS
+
+
+# Changelog:
+#
+# 2004/06/27 (Jorg Schuler <jcsjcs at users dot sourceforge dot net>):
+# Changed to accept ipod-mountpath and encoding as command line
+# option
+#
+# Split into two files -- one for contacts, one for calendar.
+#
+# Placed under GPL in agreement with Markus Gaugusch.
+#
+# Added note about encoding used by the iPod.
+#
+# 2004/07/02 (Jorg Schuler <jcsjcs at users dot sourceforge dot net>):
+# Added Usage-line, added check for vcard file, rearranged source
+#
+# 2004/07/03 (Jorg Schuler <jcsjcs at users dot sourceforge dot net>):
+# Made "iconv" optional (call with -e="none")
+#
+# Removed "dos2unix" as my iPod (firmware 1.3) happily accepted
+# DOS-type vcards as well. Instead changed the "grep" pattern to
+# catch \cr\lf as well.
+#
+# 2004/12/15 (Clinton Gormley <clint at traveljury dot com>):
+# adapted sync-korganiser to synchronise a folder containing notes
+#
+# 2005/04/02 (Thomas Perl <thp at perli dot net>):
+# * added features to remove gedit backup files (*~) from source 
+#   folder before syncing, better would be to modify the find 
+#   command to exclude such backup files instead of deleting them
+# * added support for directories inside of notes, syncing only 
+#   directories containing files
+# * added check to see if recode is installed
+# 
+# 2005/06/12 (Jorg Schuler <jcsjcs at users dot sourceforge dot net>):
+# * added patch by Alexey Dokuchaev to replace recode by iconv
+# * changed check for recode to check of iconv
+
+# overwrite default settings with optional command line arguments
+while getopts i:d:e: option; do
+    case $option in
+        i) IPOD_MOUNT=$OPTARG;;
+        d) NOTESPATH=$OPTARG;;
+        e) ENCODING=$OPTARG;;
+        \?) echo "Usage: `basename $0` [-i <ipod mountpoint>] [-p <path to folder containing notes (~/ipod_notes by default)>] [-e <encoding>]"
+	    exit 1;;
+    esac
+done
+
+
+# set the RECODE command
+if [ $ENCODING = "none" ] || [ $ENCODING = "NONE" ]; then
+    RECODE="cat"    # no conversion
+else
+    which iconv >/dev/null 2>&1
+    if [ "$?" != "0" ]; then
+      echo "iconv utility not found. please install 'iconv'."
+      exit
+    fi
+    RECODE="iconv -f UTF-8 -t $ENCODING"
+fi
+
+
+# check if NOTESPATH exists
+if [ ! -d $NOTESPATH ]; then
+    echo "Error: folder $NOTESPATH does not exist"
+    exit 1
+fi
+
+# check if iPod mountpoint exists
+if [ ! -d $IPOD_MOUNT/Notes ]; then
+    echo "Error: Cannot find iPod at $IPOD_MOUNT"
+    exit 1
+fi
+
+
+# remove existing files on iPod and transfer (recode if necessary) all current files to iPod
+# Seeing all notes should be under 4K, easier to delete and recopy rather than checking all files sizes
+
+echo -n "Syncing iPod ... [Notes] "
+rm -rf $IPOD_MOUNT/Notes/*
+rm -f $NOTESPATH/*~
+cd $NOTESPATH
+
+I=0
+
+ls *.note |
+(
+  read FILE
+  while [ "$?" == "0" ]; do
+	((++I))
+
+	# Get the starting and ending lines for the data
+	LIMITS=`cat $FILE | grep -n  note-content | cut -d ":" -f 1 | tr "\n" " "`
+	START=`echo $LIMITS | cut -d " " -f 1`
+	END=`echo $LIMITS | cut -d " " -f 2`
+
+	# Get the notes titles, we can use this as the filename
+	TITLE=`cat "$FILE" | cut -d "
+" -f $START | cut -d ">" -f 3`
+	
+	# Get the Lines with the useful data
+	DATA=`cat "$FILE" | cut -d "
+" -f $((START+2))-$END`
+
+	# Strip the tomboy stuff :(
+	for i in "<\/note-content>" "<\/text>" "<link:broken>" "<\/link:broken>" "<link:internal>" "<\/link:internal>" "<link:external>" "<\/link:external>"; do
+		DATA=`printf "$DATA" | sed "s/$i//g"`
+	done
+
+	printf "$DATA" | $RECODE > "$IPOD_MOUNT/Notes/$TITLE"
+
+	read FILE
+  done
+  echo  
+  case $I in 
+	0) echo "No notes found to copy";;
+	1) echo "1 note copied";;
+	*) echo "$I notes copied";;
+  esac
+)
+
+echo "done!"

Modified: gtkpod/branches/upstream/current/src/Makefile.am
===================================================================
--- gtkpod/branches/upstream/current/src/Makefile.am	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/src/Makefile.am	2006-09-30 00:00:17 UTC (rev 139)
@@ -41,6 +41,7 @@
     file_itunesdb.c \
     fileselection.h fileselection.c \
     info.c info.h \
+    ipod_init.c ipod_init.h \
     itdb.h \
     main.c \
     md5.c md5.h \
@@ -53,6 +54,8 @@
     podcast.c podcast.h \
     prefs.c prefs.h \
     prefs_window.c prefs_window.h \
+    repository.c repository.h \
+    syncdir.c syncdir.h \
     tools.c tools.h \
     wavfile.c wavfile.h
 

Modified: gtkpod/branches/upstream/current/src/Makefile.in
===================================================================
--- gtkpod/branches/upstream/current/src/Makefile.in	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/src/Makefile.in	2006-09-30 00:00:17 UTC (rev 139)
@@ -63,6 +63,7 @@
 GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
 GMOFILES = @GMOFILES@
 GMSGFMT = @GMSGFMT@
+GREP = @GREP@
 INSTALL_DATA = @INSTALL_DATA@
 INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
@@ -107,8 +108,6 @@
 VERSION = @VERSION@
 XGETTEXT = @XGETTEXT@
 ac_ct_CC = @ac_ct_CC@
-ac_ct_STRIP = @ac_ct_STRIP@
-ac_pt_PKG_CONFIG = @ac_pt_PKG_CONFIG@
 am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
 am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
 am__include = @am__include@
@@ -121,6 +120,9 @@
 build_os = @build_os@
 build_vendor = @build_vendor@
 datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
 exec_prefix = @exec_prefix@
 have_pkgconfig = @have_pkgconfig@
 host = @host@
@@ -128,16 +130,20 @@
 host_cpu = @host_cpu@
 host_os = @host_os@
 host_vendor = @host_vendor@
+htmldir = @htmldir@
 includedir = @includedir@
 infodir = @infodir@
 install_sh = @install_sh@
 libdir = @libdir@
 libexecdir = @libexecdir@
+localedir = @localedir@
 localstatedir = @localstatedir@
 mandir = @mandir@
 oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
+psdir = @psdir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 sysconfdir = @sysconfdir@
@@ -175,6 +181,7 @@
     file_itunesdb.c \
     fileselection.h fileselection.c \
     info.c info.h \
+    ipod_init.c ipod_init.h \
     itdb.h \
     main.c \
     md5.c md5.h \
@@ -187,6 +194,8 @@
     podcast.c podcast.h \
     prefs.c prefs.h \
     prefs_window.c prefs_window.h \
+    repository.c repository.h \
+    syncdir.c syncdir.h \
     tools.c tools.h \
     wavfile.c wavfile.h
 
@@ -209,12 +218,14 @@
 	display_sorttabs.$(OBJEXT) display_itdb.$(OBJEXT) \
 	display_songs.$(OBJEXT) display_spl.$(OBJEXT) file.$(OBJEXT) \
 	file_export.$(OBJEXT) file_itunesdb.$(OBJEXT) \
-	fileselection.$(OBJEXT) info.$(OBJEXT) main.$(OBJEXT) \
-	md5.$(OBJEXT) misc.$(OBJEXT) misc_confirm.$(OBJEXT) \
-	misc_conversion.$(OBJEXT) misc_input.$(OBJEXT) \
-	misc_playlist.$(OBJEXT) misc_track.$(OBJEXT) mp3file.$(OBJEXT) \
-	mp4file.$(OBJEXT) podcast.$(OBJEXT) prefs.$(OBJEXT) \
-	prefs_window.$(OBJEXT) tools.$(OBJEXT) wavfile.$(OBJEXT)
+	fileselection.$(OBJEXT) info.$(OBJEXT) ipod_init.$(OBJEXT) \
+	main.$(OBJEXT) md5.$(OBJEXT) misc.$(OBJEXT) \
+	misc_confirm.$(OBJEXT) misc_conversion.$(OBJEXT) \
+	misc_input.$(OBJEXT) misc_playlist.$(OBJEXT) \
+	misc_track.$(OBJEXT) mp3file.$(OBJEXT) mp4file.$(OBJEXT) \
+	podcast.$(OBJEXT) prefs.$(OBJEXT) prefs_window.$(OBJEXT) \
+	repository.$(OBJEXT) syncdir.$(OBJEXT) tools.$(OBJEXT) \
+	wavfile.$(OBJEXT)
 gtkpod_OBJECTS = $(am_gtkpod_OBJECTS)
 gtkpod_DEPENDENCIES = @LIBOBJS@
 gtkpod_LDFLAGS =
@@ -236,14 +247,16 @@
 @AMDEP_TRUE@	./$(DEPDIR)/file_export.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/file_itunesdb.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/fileselection.Po ./$(DEPDIR)/info.Po \
- at AMDEP_TRUE@	./$(DEPDIR)/main.Po ./$(DEPDIR)/md5.Po \
- at AMDEP_TRUE@	./$(DEPDIR)/misc.Po ./$(DEPDIR)/misc_confirm.Po \
+ at AMDEP_TRUE@	./$(DEPDIR)/ipod_init.Po ./$(DEPDIR)/main.Po \
+ at AMDEP_TRUE@	./$(DEPDIR)/md5.Po ./$(DEPDIR)/misc.Po \
+ at AMDEP_TRUE@	./$(DEPDIR)/misc_confirm.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/misc_conversion.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/misc_input.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/misc_playlist.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/misc_track.Po ./$(DEPDIR)/mp3file.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/mp4file.Po ./$(DEPDIR)/podcast.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/prefs.Po ./$(DEPDIR)/prefs_window.Po \
+ at AMDEP_TRUE@	./$(DEPDIR)/repository.Po ./$(DEPDIR)/syncdir.Po \
 @AMDEP_TRUE@	./$(DEPDIR)/tools.Po ./$(DEPDIR)/wavfile.Po
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
 	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
@@ -320,6 +333,7 @@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/file_itunesdb.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/fileselection.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/info.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/ipod_init.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/main.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/md5.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/misc.Po at am__quote@
@@ -333,6 +347,8 @@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/podcast.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/prefs.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/prefs_window.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/repository.Po at am__quote@
+ at AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/syncdir.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/tools.Po at am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote at ./$(DEPDIR)/wavfile.Po at am__quote@
 

Modified: gtkpod/branches/upstream/current/src/charset.c
===================================================================
--- gtkpod/branches/upstream/current/src/charset.c	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/src/charset.c	2006-09-30 00:00:17 UTC (rev 139)
@@ -1,4 +1,4 @@
-/* Time-stamp: <2005-06-17 22:25:31 jcs>
+/* Time-stamp: <2006-05-01 15:04:54 jcs>
 |
 |  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
 |  Part of the gtkpod project.
@@ -24,7 +24,7 @@
 | 
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: charset.c,v 1.23 2005/06/17 13:30:02 jcsjcs Exp $
+|  $Id: charset.c,v 1.29 2006/06/25 06:36:28 freethinkerjim Exp $
 */
 
 #ifdef HAVE_CONFIG_H
@@ -41,7 +41,7 @@
    set with each call of charset_to_utf8(). You can get a copy of its
    value by calling charset_get_auto().
    This variable will only be reset by calling charset_reset_auto(). */
-static const gchar *auto_charset = NULL;
+static gchar *auto_charset = NULL;
 
 typedef struct {
 	gchar *descr;
@@ -154,7 +154,7 @@
     static GList *charsets = NULL; /* list with choices -- takes a while to
 				     * initialize, so we only do it once */
     
-    current_charset = prefs_get_charset ();
+    current_charset = prefs_get_string("charset");
     if ((current_charset == NULL) || (strlen (current_charset) == 0))
     {
 	description = g_strdup (_("System Charset"));
@@ -206,6 +206,7 @@
     /* set standard entry */
     gtk_entry_set_text (GTK_ENTRY (GTK_COMBO (combo)->entry), description);
     g_free (description);
+    g_free(current_charset);
 }
 
 
@@ -264,8 +265,10 @@
 
 /* code for automatic detection of Japanese char-subset donated by
    Hiroshi Kawashima */
-static const gchar *charset_check_k_code (const guchar *p)
+static const gchar *charset_check_k_code (const gchar *p2)
 {
+    guchar *p = (guchar *)p2;
+
     while (p && *p && (*p != '\n'))
     {
 	if ((p[0] == 0x1b) &&
@@ -286,7 +289,7 @@
 }
 
 /* same as check_k_code, but defaults to "EUC-JP" if no match is found */
-static const gchar *charset_check_k_code_with_default (const guchar *p)
+static const gchar *charset_check_k_code_with_default (const gchar *p)
 {
     const gchar *result=NULL;
 
@@ -298,15 +301,22 @@
 
 /* return the charset actually used for the "auto detection"
  * feature. So far only Japanese Auto Detecion is implemented */
-static const gchar *charset_check_auto (const gchar *str)
+static gchar *charset_check_auto (const gchar *str)
 {
-    const gchar *charset;
+    gchar *charset;
+    gchar *result;
 
     if (str == NULL) return NULL; /* sanity */
-    charset = prefs_get_charset ();
+
+    charset = prefs_get_string("charset");
+
     if (charset && (strcmp (charset, GTKPOD_JAPAN_AUTOMATIC) == 0))
-	return (charset_check_k_code (str));
-    return NULL;
+	result = g_strdup(charset_check_k_code (str));
+    else
+	result = NULL;
+
+    g_free(charset);
+    return result;
 }
 
 /* See description at the definition of gchar *auto_charset; for
@@ -328,23 +338,31 @@
 /* Must free the returned string yourself */
 gchar *charset_to_utf8 (const gchar *str)
 {
-    const gchar *charset;
+    gchar *charset;  /* From prefs */
+    const gchar *locale_charset; /* Used if prefs doesn't have a charset */
+    gchar *result;
 
     if (str == NULL) return NULL;  /* sanity */
     charset = charset_check_auto (str);
     if (charset)
     {
-	auto_charset = charset;
+	g_free(auto_charset);
+	auto_charset = g_strdup(charset);
     }
     else
     {
-	charset = prefs_get_charset ();
+	charset = prefs_get_string("charset");
 	if (!charset || !strlen (charset))
 	{    /* use standard locale charset */
-	    g_get_charset (&charset);
+	    g_free(charset);
+	    g_get_charset (&locale_charset);
+	    charset = g_strdup(locale_charset);
 	}
     }
-    return charset_to_charset ((gchar *)charset, "UTF-8", str);
+    
+    result = charset_to_charset (charset, "UTF-8", str);
+    g_free(charset);
+    return result;
 }
 
 
@@ -354,15 +372,23 @@
 /* Must free the returned string yourself */
 gchar *charset_from_utf8 (const gchar *str)
 {
-    const gchar *charset;
+    gchar *charset;
+    const gchar *locale_charset;
+    gchar *result;
 
     if (str == NULL) return NULL;  /* sanity */
-    charset = prefs_get_charset ();
+    charset = prefs_get_string("charset");
     if (!charset || !strlen (charset))
-    {    /* use standard locale charset */
-	g_get_charset (&charset);
+    {   
+       /* use standard locale charset */
+	g_free(charset);
+	g_get_charset (&locale_charset);
+	charset = g_strdup(locale_charset);
     }
-    return charset_to_charset ("UTF-8", (gchar *)charset, str);
+
+    result = charset_to_charset ("UTF-8", charset, str);
+    g_free(charset);
+    return result;
 }
 
 /* Convert "str" from utf8 to the charset specified in @s->charset. If
@@ -371,7 +397,9 @@
 /* Must free the returned string yourself */
 gchar *charset_track_charset_from_utf8 (Track *s, const gchar *str)
 {
-    const gchar *charset = NULL;
+    gchar *charset;
+    const gchar *locale_charset;
+    gchar *result;
     ExtraTrackData *etd;
 
     g_return_val_if_fail (s, NULL);
@@ -382,13 +410,20 @@
     etd = s->userdata;
 
     if (etd->charset && strlen (etd->charset))
-	   charset = etd->charset;
-    else   charset = prefs_get_charset ();
+	   charset = g_strdup(etd->charset);
+    else   
+	charset = prefs_get_string("charset");
+   
     if (!charset || !strlen (charset))
     {    /* use standard locale charset */
-	g_get_charset (&charset);
+	g_free(charset);
+	g_get_charset (&locale_charset);
+	charset = g_strdup(locale_charset);
     }
-    return charset_to_charset ("UTF-8", (gchar *)charset, str);
+
+    result = charset_to_charset ("UTF-8", charset, str);
+    g_free(charset);
+    return result;
 }
 
 /* Convert "str" from "from_charset" to "to_charset", trying to skip

Modified: gtkpod/branches/upstream/current/src/confirmation.c
===================================================================
--- gtkpod/branches/upstream/current/src/confirmation.c	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/src/confirmation.c	2006-09-30 00:00:17 UTC (rev 139)
@@ -1,4 +1,4 @@
-/* Time-stamp: <2005-11-25 23:52:15 jcs>
+/* Time-stamp: <2006-05-14 19:17:48 jcs>
 |
 |  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
 |  Part of the gtkpod project.
@@ -24,7 +24,7 @@
 |
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: confirmation.c,v 1.23 2005/11/26 13:44:41 jcsjcs Exp $
+|  $Id: confirmation.c,v 1.28 2006/06/09 00:58:41 freethinkerjim Exp $
 */
 
 #ifdef HAVE_CONFIG_H
@@ -43,11 +43,11 @@
     GtkWidget *window;
     GladeXML *window_xml;
     gboolean  scrolled;
-    ConfHandlerOpt option1_handler;
+    gchar *option1_key;
     gboolean option1_invert;
-    ConfHandlerOpt option2_handler;
+    gchar *option2_key;
     gboolean option2_invert;
-    ConfHandlerOpt confirm_again_handler;
+    gchar *confirm_again_key;
     ConfHandler ok_handler;
     ConfHandler apply_handler;
     ConfHandler cancel_handler;
@@ -68,11 +68,21 @@
 	gint defx, defy;
 	gtk_window_get_size (GTK_WINDOW (cd->window), &defx, &defy);
 	if (cd->scrolled)
-	    prefs_set_size_conf_sw (defx, defy);
+	{
+		prefs_set_int("size_conf_sw.x", defx);
+		prefs_set_int("size_conf_sw.y", defy);
+	}
 	else
-	    prefs_set_size_conf (defx, defy);
+	{
+		prefs_set_int("size_conf.x", defx);
+		prefs_set_int("size_conf.y", defy);
+	}
 	gtk_widget_destroy (cd->window);
 	g_hash_table_remove (id_hash, id);
+  
+  g_free(cd->option1_key);
+  g_free(cd->option2_key);
+  g_free(cd->confirm_again_key);
     }
 }
 
@@ -84,6 +94,7 @@
     cd = g_hash_table_lookup (id_hash, id);
     if (cd)
     {
+	gtk_widget_set_sensitive (cd->window, FALSE);
 	if (cd->ok_handler)
 	    cd->ok_handler (cd->user_data1, cd->user_data2);
 	cleanup (id);
@@ -97,9 +108,10 @@
     cd = g_hash_table_lookup (id_hash, id);
     if (cd)
     {
+	gtk_widget_set_sensitive (cd->window, FALSE);
 	if (cd->apply_handler)
 	    cd->apply_handler (cd->user_data1, cd->user_data2);
-	cleanup (id);
+	gtk_widget_set_sensitive (cd->window, TRUE);
     }
 }
 
@@ -110,6 +122,7 @@
     cd = g_hash_table_lookup (id_hash, id);
     if (cd)
     {
+	gtk_widget_set_sensitive (cd->window, FALSE);
 	if (cd->cancel_handler)
 	    cd->cancel_handler (cd->user_data1, cd->user_data2);
 	cleanup (id);
@@ -132,8 +145,8 @@
     cd = g_hash_table_lookup (id_hash, id);
     if (cd)
     {
-	if (cd->confirm_again_handler)
-	    cd->confirm_again_handler (!gtk_toggle_button_get_active(t));
+	if (cd->confirm_again_key)
+	    prefs_set_int(cd->confirm_again_key, !gtk_toggle_button_get_active(t));
     }
 }
 
@@ -144,11 +157,11 @@
     cd = g_hash_table_lookup (id_hash, id);
     if (cd)
     {
-	if (cd->option1_handler)
+	if (cd->option1_key)
 	{
 	    gboolean state = gtk_toggle_button_get_active(t);
-	    if (cd->option1_invert)  cd->option1_handler (!state);
-	    else                     cd->option1_handler (state);
+	    if (cd->option1_invert)  prefs_set_int (cd->option1_key, !state);
+	    else                     prefs_set_int (cd->option1_key, state);
 	}
     }
 }
@@ -160,11 +173,11 @@
     cd = g_hash_table_lookup (id_hash, id);
     if (cd)
     {
-	if (cd->option2_handler)
+	if (cd->option2_key)
 	{
 	    gboolean state = gtk_toggle_button_get_active(t);
-	    if (cd->option2_invert)  cd->option2_handler (!state);
-	    else                     cd->option2_handler (state);
+	    if (cd->option2_invert)  prefs_set_int (cd->option2_key, !state);
+	    else                     prefs_set_int (cd->option2_key, state);
 	}
     }
 }
@@ -183,6 +196,7 @@
 	    break;
 	case GTK_RESPONSE_NONE:
 	case GTK_RESPONSE_CANCEL:
+	case GTK_RESPONSE_DELETE_EVENT:
 	    on_cancel_clicked (w, id);
 	    break;
 	case GTK_RESPONSE_APPLY:
@@ -211,18 +225,19 @@
            with the same ID.
    @modal: should the window be modal (i.e. block the program)?
    @title: title of the window
-   @label: the text on the top of the window
+   @label: the text at the top of the window
    @text:  the text displayed in a scrolled window
    @option_text: text for the option checkbox (or NULL)
    @option_state: initial state of the option + a flag indicating
            whether the handler should be called with the inverse state
            of the toggle button: CONF_STATE_TRUE, CONF_STATE_FALSE,
 	   CONF_STATE_INVERT_TRUE, CONF_STATE_INVERT_FALSE
-   @option_handler: callback for the option (is called with the
-           current state of the toggle box)
+   @option_key: prefs key for the option (is set to the state of the
+           toggle box)
    @confirm_again:    state of the "confirm again" flag
-   @confirm_again_handler: callback for the checkbox (is called with the
-                    inverted current state of the toggle box)
+   @confirm_again_key: prefs key for the 'never show this dialog
+           again' toggle box (is set to the inverted current state
+	   of the toggle box)
    @ok_handler:     function to be called when the OK button is pressed
    @apply_handler:  function to be called when the Apply button is pressed
    @cancel_handler: function to be called when the cancel button is pressed
@@ -259,17 +274,17 @@
 
 GtkResponseType gtkpod_confirmation (gint id,
 				     gboolean modal,
-				     gchar *title,
-				     gchar *label,
-				     gchar *text,
-				     gchar *option1_text,
+				     const gchar *title,
+				     const gchar *label,
+				     const gchar *text,
+				     const gchar *option1_text,
 				     CONF_STATE option1_state,
-				     ConfHandlerOpt option1_handler,
-				     gchar *option2_text,
+				     const gchar *option1_key,
+				     const gchar *option2_text,
 				     CONF_STATE option2_state,
-				     ConfHandlerOpt option2_handler,
+				     const gchar *option2_key,
 				     gboolean confirm_again,
-				     ConfHandlerOpt confirm_again_handler,
+				     const gchar *confirm_again_key,
 				     ConfHandler ok_handler,
 				     ConfHandler apply_handler,
 				     ConfHandler cancel_handler,
@@ -344,9 +359,9 @@
     cd = g_malloc (sizeof (ConfData));
     cd->window = window;
     cd->window_xml = confirm_xml;
-    cd->option1_handler = option1_handler;
-    cd->option2_handler = option2_handler;
-    cd->confirm_again_handler = confirm_again_handler;
+    cd->option1_key = g_strdup(option1_key);
+    cd->option2_key = g_strdup(option2_key);
+    cd->confirm_again_key = g_strdup(confirm_again_key);
     cd->ok_handler = ok_handler;
     cd->apply_handler = apply_handler;
     cd->cancel_handler = cancel_handler;
@@ -361,8 +376,16 @@
 	gtk_window_set_title (GTK_WINDOW(window), _("Confirmation Dialogue"));
 
     /* Set label */
-    if (label && (w = gtkpod_xml_get_widget (confirm_xml, "label")))
+    w = gtkpod_xml_get_widget (confirm_xml, "label");
+    if (label)
+    {
+	gtk_widget_show (w);
 	gtk_label_set_text(GTK_LABEL(w), label);
+    }
+    else
+    {
+	gtk_widget_hide (w);
+    }
 
     /* Set text */
     w = gtkpod_xml_get_widget (confirm_xml, "text");
@@ -377,20 +400,22 @@
 	    gtk_text_view_set_cursor_visible(GTK_TEXT_VIEW(w), FALSE);
 	}
 	cd->scrolled = TRUE;
-	prefs_get_size_conf_sw (&defx, &defy);
+	defx = prefs_get_int("size_conf_sw.x");
+	defy = prefs_get_int("size_conf_sw.y");
     }
     else
     { /* no text -> hide widget */
 	if ((w = gtkpod_xml_get_widget (confirm_xml, "scroller")))
 	    gtk_widget_hide (w);
 	cd->scrolled = FALSE;
-	prefs_get_size_conf (&defx, &defy);
+	defx = prefs_get_int("size_conf.x");
+	defy = prefs_get_int("size_conf.y");
     }
     gtk_window_set_default_size (GTK_WINDOW (window), defx, defy);
 
     /* Set "Option 1" checkbox */
     w = gtkpod_xml_get_widget (confirm_xml, "option_vbox");
-    if (w && option1_handler && option1_text)
+    if (w && option1_key && option1_text)
     {
 	gboolean state, invert;
 	GtkWidget *option1_button =
@@ -416,7 +441,7 @@
 
     /* Set "Option 2" checkbox */
     w = gtkpod_xml_get_widget (confirm_xml, "option_vbox");
-    if (w && option2_handler && option2_text)
+    if (w && option2_key && option2_text)
     {
 	gboolean state, invert;
 	GtkWidget *option2_button =
@@ -442,7 +467,7 @@
 
     /* Set "Never Again" checkbox */
     w = gtkpod_xml_get_widget (confirm_xml, "never_again");
-    if (w && confirm_again_handler)
+    if (w && confirm_again_key)
     { /* connect signal */
 	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
 				     !confirm_again);

Modified: gtkpod/branches/upstream/current/src/confirmation.h
===================================================================
--- gtkpod/branches/upstream/current/src/confirmation.h	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/src/confirmation.h	2006-09-30 00:00:17 UTC (rev 139)
@@ -22,7 +22,7 @@
 |
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: confirmation.h,v 1.12 2004/03/30 15:39:18 jcsjcs Exp $
+|  $Id: confirmation.h,v 1.14 2006/05/14 15:58:54 jcsjcs Exp $
 */
 
 #ifndef __CONFIRMATION_H__
@@ -36,7 +36,6 @@
 #include <gtk/gtk.h>
 
 typedef void (*ConfHandler)(gpointer user_data1, gpointer user_data2);
-typedef void (*ConfHandlerOpt)(gboolean state);
 
 /* states for gtkpod_confirmation options */
 typedef enum {
@@ -48,17 +47,17 @@
 
 GtkResponseType gtkpod_confirmation (gint id,
 				     gboolean modal,
-				     gchar *title,
-				     gchar *label,
-				     gchar *text,
-				     gchar *option1_text,
+				     const gchar *title,
+				     const gchar *label,
+				     const gchar *text,
+				     const gchar *option1_text,
 				     CONF_STATE option1_state,
-				     ConfHandlerOpt option1_handler,
-				     gchar *option2_text,
+				     const gchar *option1_key,
+				     const gchar *option2_text,
 				     CONF_STATE option2_state,
-				     ConfHandlerOpt option2_handler,
-				     gboolean never_again,
-				     ConfHandlerOpt confirm_again_handler,
+				     const gchar *option2_key,
+				     gboolean confirm_again,
+				     const gchar *confirm_again_key,
 				     ConfHandler ok_handler,
 				     ConfHandler apply_handler,
 				     ConfHandler cancel_handler,
@@ -70,7 +69,8 @@
     CONF_ID_IPOD_DIR = 0,
     CONF_ID_GTKPOD_WARNING,
     CONF_ID_DANGLING0,
-    CONF_ID_DANGLING1
+    CONF_ID_DANGLING1,
+    CONF_ID_SYNC_SUMMARY
 } CONF_ID;
 
 void CONF_NULL_HANDLER (gpointer d1, gpointer d2);

Modified: gtkpod/branches/upstream/current/src/context_menus.c
===================================================================
--- gtkpod/branches/upstream/current/src/context_menus.c	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/src/context_menus.c	2006-09-30 00:00:17 UTC (rev 139)
@@ -1,4 +1,4 @@
-/* Time-stamp: <2006-02-19 19:58:45 jcs>
+/* Time-stamp: <2006-06-29 20:41:31 jcs>
 |
 |  Copyright (C) 2003 Corey Donohoe <atmos at atmos dot org>
 |  Copyright (C) 2003-2005 Jorg Schuler <jcsjcs at users sourceforge net>
@@ -25,7 +25,7 @@
 | 
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: context_menus.c,v 1.55 2006/02/19 11:01:22 jcsjcs Exp $
+|  $Id: context_menus.c,v 1.66 2006/06/29 11:46:16 jcsjcs Exp $
 */
 
 #ifdef HAVE_CONFIG_H
@@ -40,9 +40,10 @@
 #include "misc_track.h"
 #include "prefs.h"
 #include "tools.h"
-#include "podcast.h"
+#include "repository.h"
+#include "syncdir.h"
 
-#define LOCALDEBUG 1
+#define LOCALDEBUG 0
 
 static guint entry_inst = -1;
 static GList *selected_tracks = NULL;
@@ -51,13 +52,14 @@
 static iTunesDB *active_itdb = NULL;
 /* types of context menus (PM/ST/TM) */
 typedef enum {
-    CM_PM = 0,
+    CM_PL = 0,
     CM_ST,
     CM_TM,
     CM_NUM
 } CM_type;
 
 
+
 #if LOCALDEBUG
 /**
  * do_special - for debugging: change as needed to obtain information
@@ -180,20 +182,26 @@
 }
 
 /*
- * sync_dirs_ entries - sync the directories of the entries
- *                      selected
+ * sync_dirs_ entries - sync the directories of the selected playlist
+ *
  * @mi - the menu item selected
  * @data - Ignored, should be NULL
  */
 static void 
-sync_dirs_entries(GtkMenuItem *mi, gpointer data)
+sync_dirs (GtkMenuItem *mi, gpointer data)
 {
     if (selected_playlist)
-	gp_do_selected_playlist (sync_tracks);
-    else if(selected_entry)
-	gp_do_selected_entry (sync_tracks, entry_inst);
-    else if(selected_tracks)
-	gp_do_selected_tracks (sync_tracks);
+    {
+	sync_playlist (selected_playlist, NULL,
+		       KEY_SYNC_CONFIRM_DIRS, 0,
+		       KEY_SYNC_DELETE_TRACKS, 0,
+		       KEY_SYNC_CONFIRM_DELETE, 0,
+		       KEY_SYNC_SHOW_SUMMARY, 0);
+    }
+    else
+    {
+	g_return_if_reached ();
+    }
 }
 
 /**
@@ -227,7 +235,15 @@
     spl_edit (pl);
 }
 
+/* Display repository options */
+static void edit_properties (GtkMenuItem *mi, gpointer data)
+{
+    g_return_if_fail (selected_playlist);
 
+    repository_edit (selected_playlist->itdb, selected_playlist);
+}
+
+
 static void
 create_playlist_from_entries (GtkMenuItem *mi, gpointer data)
 {
@@ -245,34 +261,59 @@
 {
     if (selected_entry)
     {
-	switch (prefs_get_st_sort ())
+	switch (prefs_get_int("st_sort"))
 	{
 	case SORT_ASCENDING:
-	    prefs_set_st_sort (SORT_DESCENDING);
+	    prefs_set_int("st_sort", SORT_DESCENDING);
 	    break;
 	case SORT_DESCENDING:
-	    prefs_set_st_sort (SORT_NONE);
+	    prefs_set_int("st_sort", SORT_NONE);
 	    break;
 	case SORT_NONE:
-	    prefs_set_st_sort (SORT_ASCENDING);
+	    prefs_set_int("st_sort", SORT_ASCENDING);
 	    break;
 	}
-	st_sort (prefs_get_st_sort ());
+	st_sort (prefs_get_int("st_sort"));
     }
 }
 
 
-static void normalize_entries (GtkMenuItem *mi, gpointer data)
+static void load_ipod (GtkMenuItem *mi, gpointer data)
 {
-    if (selected_playlist)
-	nm_tracks_list (selected_playlist->members);
-    else if(selected_entry)
-	nm_tracks_list (selected_entry->members);
-    else if(selected_tracks)
-	nm_tracks_list (selected_tracks);
+    g_return_if_fail (selected_playlist);
+
+    gp_load_ipod (selected_playlist->itdb);
 }
 
 
+static void eject_ipod (GtkMenuItem *mi, gpointer data)
+{
+    iTunesDB *itdb;
+    ExtraiTunesDBData *eitdb;
+
+    /* all of the checks below indicate a programming error -> give a
+       warning through the g_..._fail macros */
+    g_return_if_fail (selected_playlist);
+    itdb = selected_playlist->itdb;
+    g_return_if_fail (itdb);
+    g_return_if_fail (itdb->usertype & GP_ITDB_TYPE_IPOD);
+    eitdb = itdb->userdata;
+    g_return_if_fail (eitdb);
+    g_return_if_fail (eitdb->itdb_imported == TRUE);
+
+    gp_eject_ipod (itdb);
+}
+
+
+static void save_changes (GtkMenuItem *mi, gpointer data)
+{
+    g_return_if_fail (selected_playlist);
+
+    gp_save_itdb (selected_playlist->itdb);
+}
+
+
+
 /* Attach a menu item to your context menu */
 /* @m - the GtkMenu we're attaching to
  * @str - a gchar* with the menu label
@@ -321,319 +362,413 @@
 }
 
 
-void
-create_context_menu(CM_type type)
+static GtkWidget *add_play_now (GtkWidget *menu)
 {
-    static GtkWidget *menu[CM_NUM];
-    static GtkWidget *mi_exp[CM_NUM];  /* Export Tracks */
-    static GtkWidget *mi_delpl[CM_NUM];   /* DELETE_ACTION_PLAYLIST */
-    static GtkWidget *mi_delipod[CM_NUM]; /* DELETE_ACTION_IPOD     */
-    static GtkWidget *mi_dellocal[CM_NUM];/* DELETE_ACTION_LOCAL    */
-    static GtkWidget *mi_deldb[CM_NUM];   /* DELETE_ACTION_DATABASE */
-    static GtkWidget *mi_delpcipod[CM_NUM]; /* DELETE_ACTION_IPOD   */
-    static GtkWidget *mi_delsep[CM_NUM];  /* separator              */
-    static GtkWidget *mi_spl[CM_NUM];  /* edit smart playlist    */
-    static GtkWidget *mi_delipod_all[CM_NUM];/* DELETE_ACTION_IPOD (all
-					   * tracks)      */
-    static GtkWidget *mi_deldb_all[CM_NUM];  /* DELETE_ACTION_DATABASE
-					   * (all tracks  */
-/* FIXME: PODCASTS: remove Podcast menu */
-#if 0
-    static GtkWidget *mi_podcasts_sep[CM_NUM]; /* Podcasts Separator */
-    static GtkWidget *mi_podcasts_update[CM_NUM]; /* Update Podcasts */
-    static GtkWidget *mi_podcasts_prefs[CM_NUM];  /* Podcasts Prefs */
-#endif
+    return hookup_mi (menu, _("Play Now"), GTK_STOCK_CDROM,
+		      G_CALLBACK (play_entries_now), NULL);
+}
 
-    Playlist *pl;
+static GtkWidget *add_enqueue (GtkWidget *menu)
+{
+    return hookup_mi (menu, _("Enqueue"), GTK_STOCK_CDROM,
+		      G_CALLBACK (play_entries_enqueue), NULL);
+}
 
-    if(!menu[type])
-    {
-	menu[type] =  gtk_menu_new();
-	hookup_mi (menu[type], _("Play Now"), GTK_STOCK_CDROM,
-		   G_CALLBACK (play_entries_now), NULL);
-	hookup_mi (menu[type], _("Enqueue"), GTK_STOCK_CDROM,
-		   G_CALLBACK (play_entries_enqueue), NULL);
-	mi_exp[type] = hookup_mi (menu[type], 
-				  _("Copy Tracks to Filesystem"), GTK_STOCK_FLOPPY,
-				  G_CALLBACK (export_entries), NULL);
-	hookup_mi (menu[type], _("Create Playlist File"), GTK_STOCK_FLOPPY,
-		   G_CALLBACK (create_playlist_file), NULL);
-	hookup_mi (menu[type], _("Edit Details"), NULL,
-		   G_CALLBACK (edit_details_entries), NULL);
-	hookup_mi (menu[type], _("Update"), GTK_STOCK_REFRESH,
-		   G_CALLBACK (update_entries), NULL);
-	hookup_mi (menu[type], _("Sync Dirs"), GTK_STOCK_REFRESH,
-		   G_CALLBACK (sync_dirs_entries), NULL);
-	hookup_mi (menu[type], _("Normalize"), NULL,
-		   G_CALLBACK (normalize_entries), NULL);
-	hookup_mi (menu[type], _("Create new Playlist"),
-		   GTK_STOCK_JUSTIFY_LEFT,
-		   G_CALLBACK (create_playlist_from_entries), NULL);
-	mi_spl[type] = hookup_mi (menu[type], _("Edit Smart Playlist"),
-				  GTK_STOCK_PROPERTIES,
-				  G_CALLBACK (edit_spl), NULL);
+static GtkWidget *add_copy_track_to_filesystem (GtkWidget *menu)
+{
+    return hookup_mi (menu, _("Copy Tracks to Filesystem"),
+		      GTK_STOCK_SAVE_AS,
+		      G_CALLBACK (export_entries), NULL);
+}
 
-	if (type == CM_ST)
-	{
-	    hookup_mi (menu[type], _("Alphabetize"),
-		       GTK_STOCK_SORT_ASCENDING,
-		       G_CALLBACK (alphabetize), NULL);
-/* example for sub menus!
-	    GtkWidget *mi;
-	    GtkWidget *sub;
+static GtkWidget *add_create_playlist_file (GtkWidget *menu)
+{
+    return hookup_mi (menu, _("Create Playlist File"),
+		      GTK_STOCK_SAVE_AS,
+		      G_CALLBACK (create_playlist_file), NULL);
+}
 
-	    mi = hookup_mi (menu[type], _("Alphabetize"), NULL, NULL);
-	    sub = gtk_menu_new ();
-	    gtk_widget_show (sub);
-	    gtk_menu_item_set_submenu (GTK_MENU_ITEM (mi), sub);
-	    hookup_mi (sub, _("Ascending"), GTK_STOCK_SORT_ASCENDING,
-		       G_CALLBACK (alphabetize_ascending), NULL);
-	    hookup_mi (sub, _("Descending"), GTK_STOCK_SORT_DESCENDING,
-		       G_CALLBACK (alphabetize_descending), NULL);
-	    hookup_mi (sub, _("Reset"), GTK_STOCK_UNDO,
-	               G_CALLBACK (reset_alphabetize), NULL);
-*/
-	}
-	if ((type == CM_ST) || (type == CM_TM))
-	{
-	    mi_delsep[type] = add_separator (menu[type]);
-	    mi_delipod[type] =
-		hookup_mi (menu[type],
-			   _("Delete From iPod"),
-			   GTK_STOCK_DELETE,
-			   G_CALLBACK (delete_entries),
-			   GINT_TO_POINTER (DELETE_ACTION_IPOD));
-	    mi_dellocal[type] = 
-		hookup_mi (menu[type],
-			   _("Delete From Harddisk"),
-			   GTK_STOCK_DELETE,
-			   G_CALLBACK (delete_entries),
-			   GINT_TO_POINTER (DELETE_ACTION_LOCAL));
-	    mi_deldb[type] =
-		hookup_mi (menu[type],
-			   _("Delete From Database"),
-			   GTK_STOCK_DELETE,
-			   G_CALLBACK (delete_entries),
-			   GINT_TO_POINTER (DELETE_ACTION_DATABASE));
-	    mi_delpl[type] =
-		hookup_mi (menu[type],
-			   _("Delete From Playlist"),
-			   GTK_STOCK_DELETE,
-			   G_CALLBACK (delete_entries),
-			   GINT_TO_POINTER (DELETE_ACTION_PLAYLIST));
-	}
+static GtkWidget *add_create_new_playlist (GtkWidget *menu)
+{
+    return hookup_mi (menu, _("Create new Playlist"),
+		      GTK_STOCK_JUSTIFY_LEFT,
+		      G_CALLBACK (create_playlist_from_entries), NULL);
+}
+
+static GtkWidget *add_update_tracks_from_file (GtkWidget *menu)
+{
+    return hookup_mi (menu, _("Update Tracks from File"),
+		      GTK_STOCK_REFRESH,
+		      G_CALLBACK (update_entries), NULL);
+}
+
+static GtkWidget *add_edit_smart_playlist (GtkWidget *menu)
+{
+    return hookup_mi (menu, _("Edit Smart Playlist"),
+		      GTK_STOCK_PROPERTIES,
+		      G_CALLBACK (edit_spl), NULL);
+}
+
+static GtkWidget *add_sync_playlist_with_dirs (GtkWidget *menu)
+{
+    return hookup_mi (menu, _("Sync Playlist with Dir(s)"),
+		      GTK_STOCK_REFRESH,
+		      G_CALLBACK (sync_dirs), NULL);
+}
+
+static GtkWidget *add_remove_all_tracks_from_ipod (GtkWidget *menu)
+{
+    GtkWidget *mi;
+    GtkWidget *sub;
+
+    mi = hookup_mi (menu, _("Remove All Tracks from iPod"),
+		    GTK_STOCK_DELETE,
+		    NULL, NULL);
+    sub = gtk_menu_new ();
+    gtk_widget_show (sub);
+    gtk_menu_item_set_submenu (GTK_MENU_ITEM (mi), sub);
+    hookup_mi (sub, _("I'm sure"),
+	       NULL,
+	       G_CALLBACK (delete_entries),
+	       GINT_TO_POINTER (DELETE_ACTION_IPOD));
+    return mi;
+}
+
+static GtkWidget *add_remove_all_podcasts_from_ipod (GtkWidget *menu)
+{
+    GtkWidget *mi;
+    GtkWidget *sub;
+
+    mi = hookup_mi (menu, _("Remove All Podcasts from iPod"),
+		    GTK_STOCK_DELETE,
+		    NULL, NULL);
+    sub = gtk_menu_new ();
+    gtk_widget_show (sub);
+    gtk_menu_item_set_submenu (GTK_MENU_ITEM (mi), sub);
+    hookup_mi (sub, _("I'm sure"),
+	       NULL,
+	       G_CALLBACK (delete_entries),
+	       GINT_TO_POINTER (DELETE_ACTION_IPOD));
+    return mi;
+}
+
+static GtkWidget *add_delete_including_tracks (GtkWidget *menu)
+{
+    return hookup_mi (menu,  _("Delete Including Tracks"),
+		      GTK_STOCK_DELETE,
+		      G_CALLBACK (delete_entries),
+		      GINT_TO_POINTER (DELETE_ACTION_IPOD));
+}
+
+static GtkWidget *add_delete_but_keep_tracks (GtkWidget *menu)
+{
+    return hookup_mi (menu,  _("Delete But Keep Tracks"),
+		      GTK_STOCK_DELETE,
+		      G_CALLBACK (delete_entries),
+		      GINT_TO_POINTER (DELETE_ACTION_PLAYLIST));
+}
+
+static GtkWidget *add_edit_ipod_properties (GtkWidget *menu)
+{
+    return hookup_mi (menu,  _("Edit iPod Properties"),
+		      GTK_STOCK_PREFERENCES,
+		      G_CALLBACK (edit_properties), NULL);
+}
+
+static GtkWidget *add_edit_track_details (GtkWidget *menu)
+{
+    return hookup_mi (menu,  _("Edit Track Details"),
+		      GTK_STOCK_EDIT,
+		      G_CALLBACK (edit_details_entries), NULL);
+}
+
+static GtkWidget *add_check_ipod_files (GtkWidget *menu)
+{
+    /* FIXME */
+    return NULL;
+}
+
+static GtkWidget *add_load_ipod (GtkWidget *menu)
+{
+    return hookup_mi (menu,  _("Load iPod"),
+		      GTK_STOCK_CONNECT,
+		      G_CALLBACK (load_ipod), NULL);
+}
+
+static GtkWidget *add_eject_ipod (GtkWidget *menu)
+{
+    return hookup_mi (menu,  _("Eject iPod"),
+		      GTK_STOCK_DISCONNECT,
+		      G_CALLBACK (eject_ipod), NULL);
+}
+
+static GtkWidget *add_save_changes (GtkWidget *menu)
+{
+    return hookup_mi (menu,  _("Save Changes"),
+		      GTK_STOCK_SAVE,
+		      G_CALLBACK (save_changes), NULL);
+}
+
+static GtkWidget *add_remove_all_tracks_from_database (GtkWidget *menu)
+{
+    GtkWidget *mi;
+    GtkWidget *sub;
+
+    mi = hookup_mi (menu, _("Remove All Tracks from Database"),
+		    GTK_STOCK_DELETE,
+		    NULL, NULL);
+    sub = gtk_menu_new ();
+    gtk_widget_show (sub);
+    gtk_menu_item_set_submenu (GTK_MENU_ITEM (mi), sub);
+    hookup_mi (sub, _("I'm sure"),
+	       NULL,
+	       G_CALLBACK (delete_entries),
+	       GINT_TO_POINTER (DELETE_ACTION_DATABASE));
+    return mi;
+}
+
+static GtkWidget *add_delete_including_tracks_harddisk (GtkWidget *menu)
+{
+    return hookup_mi (menu,  _("Delete Including Tracks (Harddisk)"),
+		      GTK_STOCK_DELETE,
+		      G_CALLBACK (delete_entries),
+		      GINT_TO_POINTER (DELETE_ACTION_LOCAL));
+}
+
+static GtkWidget *add_delete_including_tracks_database (GtkWidget *menu)
+{
+    return hookup_mi (menu,  _("Delete Including Tracks (Database)"),
+		      GTK_STOCK_DELETE,
+		      G_CALLBACK (delete_entries),
+		      GINT_TO_POINTER (DELETE_ACTION_DATABASE));
+}
+
+static GtkWidget *add_delete_from_ipod (GtkWidget *menu)
+{
+    return hookup_mi (menu,  _("Delete From iPod"),
+		      GTK_STOCK_DELETE,
+		      G_CALLBACK (delete_entries),
+		      GINT_TO_POINTER (DELETE_ACTION_IPOD));
+}
+
+static GtkWidget *add_delete_from_playlist (GtkWidget *menu)
+{
+    return hookup_mi (menu,  _("Delete From Playlist"),
+		      GTK_STOCK_DELETE,
+		      G_CALLBACK (delete_entries),
+		      GINT_TO_POINTER (DELETE_ACTION_PLAYLIST));
+}
+
+static GtkWidget *add_delete_from_harddisk (GtkWidget *menu)
+{
+    return hookup_mi (menu,  _("Delete From Harddisk"),
+		      GTK_STOCK_DELETE,
+		      G_CALLBACK (delete_entries),
+		      GINT_TO_POINTER (DELETE_ACTION_LOCAL));
+}
+
+static GtkWidget *add_delete_from_database (GtkWidget *menu)
+{
+    return hookup_mi (menu,  _("Delete From Database"),
+		      GTK_STOCK_DELETE,
+		      G_CALLBACK (delete_entries),
+		      GINT_TO_POINTER (DELETE_ACTION_DATABASE));
+}
+
+static GtkWidget *add_alphabetize (GtkWidget *menu)
+{
+    return hookup_mi (menu,  _("Alphabetize"),
+		      GTK_STOCK_SORT_ASCENDING,
+		      G_CALLBACK (alphabetize), NULL);
+}
+
 #if LOCALDEBUG
-	/* This is for debugging purposes -- this allows to inspect
-	 * any track with a custom function */
-	if (type == CM_TM)
-	{
-	    hookup_mi (menu[type], "Special", GTK_STOCK_STOP,
-		       G_CALLBACK (do_special), NULL);
-	}
+static GtkWidget *add_special (GtkWidget *menu)
+{
+    return hookup_mi (menu, "Special",
+		      GTK_STOCK_STOP,
+		      G_CALLBACK (do_special), NULL);
+}
 #endif
-	if (type == CM_PM)
-	{
-	    mi_delsep[type] = add_separator (menu[type]);
-	    mi_delipod[type] =
-		hookup_mi (menu[type],
-			   _("Delete Including Tracks"),
-			   GTK_STOCK_DELETE,
-			   G_CALLBACK (delete_entries),
-			   GINT_TO_POINTER (DELETE_ACTION_IPOD));
-	    mi_dellocal[type] =
-		hookup_mi (menu[type],
-			   _("Delete Including Tracks (Harddisk)"),
-			   GTK_STOCK_DELETE,
-			   G_CALLBACK (delete_entries),
-			   GINT_TO_POINTER (DELETE_ACTION_LOCAL));
-	    mi_deldb[type] =
-		hookup_mi (menu[type],
-			   _("Delete Including Tracks (Database)"),
-			   GTK_STOCK_DELETE,
-			   G_CALLBACK (delete_entries),
-			   GINT_TO_POINTER (DELETE_ACTION_DATABASE));
-	    mi_delpl[type] =
-		hookup_mi (menu[type],
-			   _("Delete But Keep Tracks"),
-			   GTK_STOCK_DELETE,
-			   G_CALLBACK (delete_entries),
-			   GINT_TO_POINTER (DELETE_ACTION_PLAYLIST));
-	    mi_delipod_all[type] =
-		hookup_mi (menu[type],
-			   _("Remove All Tracks from iPod"),
-			   GTK_STOCK_DELETE,
-			   G_CALLBACK (delete_entries),
-			   GINT_TO_POINTER (DELETE_ACTION_IPOD));
-	    mi_deldb_all[type] =
-		hookup_mi (menu[type],
-			   _("Remove All Tracks from Database"),
-			   GTK_STOCK_DELETE,
-			   G_CALLBACK (delete_entries),
-			   GINT_TO_POINTER (DELETE_ACTION_DATABASE));
 
-	    mi_delpcipod[type] =
-		hookup_mi (menu[type],
-			   _("Remove All Podcasts from iPod"),
-			   GTK_STOCK_DELETE,
-			   G_CALLBACK (delete_entries),
-			   GINT_TO_POINTER (DELETE_ACTION_IPOD));
+static GtkWidget *add_edit_playlist_properties (GtkWidget *menu)
+{
+    return hookup_mi (menu,  _("Edit Playlist Properties"),
+		      GTK_STOCK_PREFERENCES,
+		      G_CALLBACK (edit_properties), NULL);
+}
 
-/* FIXME: PODCASTS: remove Podcast menu */
-#if 0
-	    mi_podcasts_sep[type] = add_separator (menu[type]);
 
-	    mi_podcasts_update[type] =
-		hookup_mi (menu[type],
-			   _("Update Podcasts"),
-			   GTK_STOCK_REFRESH,
-			   G_CALLBACK (podcast_fetch),
-			   GINT_TO_POINTER (DELETE_ACTION_DATABASE));
+void create_context_menu (CM_type type)
+{
+    static GtkWidget *menu = NULL;
+    Playlist *pl;
 
-	    mi_podcasts_prefs[type] =
-		hookup_mi (menu[type],
-			   _("Podcasts Preferences"),
-			   GTK_STOCK_PREFERENCES,
-			   G_CALLBACK (prefs_window_podcasts),
-			   GINT_TO_POINTER (DELETE_ACTION_DATABASE));
-#endif
-	}
+    if (menu)
+    {   /* free memory for last menu */
+	gtk_widget_destroy (menu);
+	menu = NULL;
     }
-    /* Make sure, only available options are displayed */
+
     pl = pm_get_selected_playlist();
     if (pl)
     {
+	ExtraiTunesDBData *eitdb;
 	iTunesDB *itdb = pl->itdb;
 	g_return_if_fail (itdb);
+	eitdb = itdb->userdata;
+	g_return_if_fail (eitdb);
 
-	/* Make sure, only available delete options are displayed */
+	menu = gtk_menu_new ();
+
 	switch (type)
 	{
-	case CM_PM:
-	    gtk_widget_hide (mi_spl[type]);
-	    gtk_widget_hide (mi_dellocal[type]);
-	    gtk_widget_hide (mi_delpl[type]);
-	    gtk_widget_hide (mi_deldb[type]);
-	    gtk_widget_hide (mi_deldb_all[type]);
-	    gtk_widget_hide (mi_delsep[type]);
-	    gtk_widget_hide (mi_delipod[type]);
-	    gtk_widget_hide (mi_delipod_all[type]);
-	    gtk_widget_hide (mi_delpcipod[type]);
-	    gtk_widget_hide (mi_dellocal[type]);
-/* FIXME: PODCASTS: remove Podcast menu */
-#if 0
-	    gtk_widget_hide (mi_podcasts_sep[type]);
-	    gtk_widget_hide (mi_podcasts_update[type]);
-	    gtk_widget_hide (mi_podcasts_prefs[type]);
-#endif
-	    if (pl->is_spl)
-	    {
-		gtk_widget_show (mi_spl[type]);
-	    }
+	case CM_PL:
 	    if (itdb->usertype & GP_ITDB_TYPE_IPOD)
 	    {
-		if (itdb_playlist_is_mpl (pl))
+		if (eitdb->itdb_imported)
 		{
-		    gtk_widget_show (mi_delipod_all[type]);
-		}
-		else
-		{
-		    if (itdb_playlist_is_podcasts (pl))
+		    add_play_now (menu);
+		    add_enqueue (menu);
+		    add_copy_track_to_filesystem (menu);
+		    add_create_playlist_file (menu);
+		    add_update_tracks_from_file (menu);
+		    if (!pl->is_spl)
 		    {
-			gtk_widget_show (mi_delpcipod[type]);
+			add_sync_playlist_with_dirs (menu);
 		    }
+		    add_separator (menu);
+		    if (itdb_playlist_is_mpl (pl))
+		    {
+			add_remove_all_tracks_from_ipod (menu);
+		    }
+		    else if (itdb_playlist_is_podcasts (pl))
+		    {
+			add_remove_all_podcasts_from_ipod (menu);
+		    }
 		    else
 		    {
-			gtk_widget_show (mi_delsep[type]);
-			gtk_widget_show (mi_delipod[type]);
-			gtk_widget_show (mi_delpl[type]);
+			add_delete_including_tracks (menu);
+			add_delete_but_keep_tracks (menu);
 		    }
+		    add_separator (menu);
+		    add_edit_track_details (menu);
+		    if (pl->is_spl)
+		    {
+			add_edit_smart_playlist (menu);
+		    }
+		    if (itdb_playlist_is_mpl (pl) || pl->is_spl)
+		    {
+			add_edit_ipod_properties (menu);
+		    }
+		    else
+		    {
+			add_edit_playlist_properties (menu);
+		    }
+		    add_check_ipod_files (menu);
+		    add_eject_ipod (menu);
 		}
+		else
+		{   /* not imported */
+		    add_edit_ipod_properties (menu);
+		    add_check_ipod_files (menu);
+		    add_separator (menu);
+		    add_load_ipod (menu);
+		}
 	    }
 	    if (itdb->usertype & GP_ITDB_TYPE_LOCAL)
 	    {
+		add_play_now (menu);
+		add_enqueue (menu);
+		add_copy_track_to_filesystem (menu);
+		add_create_playlist_file (menu);
+		add_update_tracks_from_file (menu);
+		if (!pl->is_spl)
+		{
+		    add_sync_playlist_with_dirs (menu);
+		}
+		add_separator (menu);
 		if (itdb_playlist_is_mpl (pl))
 		{
-		    gtk_widget_show (mi_deldb_all[type]);
+		    add_remove_all_tracks_from_database (menu);
 		}
 		else
 		{
-		    gtk_widget_show (mi_delsep[type]);
-		    gtk_widget_show (mi_dellocal[type]);
-		    gtk_widget_show (mi_deldb[type]);
-		    gtk_widget_show (mi_delpl[type]);
+		    add_delete_including_tracks_database (menu);
+		    add_delete_including_tracks_harddisk (menu);
+		    add_delete_but_keep_tracks (menu);
 		}
+		add_separator (menu);
+		add_edit_track_details (menu);
+		if (pl->is_spl)
+		{
+		    add_edit_smart_playlist (menu);
+		}
+		add_edit_playlist_properties (menu);
+		add_save_changes (menu);
 	    }
-
-	    if (itdb->usertype & GP_ITDB_TYPE_PODCASTS)
-	    {
-		gtk_widget_show (mi_delsep[type]);
-		/* FIXME: PODCASTS: remove Podcast menu */
-		/*
-		gtk_widget_show (mi_podcasts_sep[type]);
-		gtk_widget_show (mi_podcasts_update[type]);
-		gtk_widget_show (mi_podcasts_prefs[type]);
-		*/
-	    }
 	    break;
 	case CM_ST:
 	case CM_TM:
-	    gtk_widget_hide (mi_spl[type]);
-	    gtk_widget_hide (mi_dellocal[type]);
-	    gtk_widget_hide (mi_deldb[type]);
-	    gtk_widget_hide (mi_delpl[type]);
-	    gtk_widget_hide (mi_delipod[type]);
-
-	    if (pl->is_spl)
+	    add_play_now (menu);
+	    add_enqueue (menu);
+	    add_copy_track_to_filesystem (menu);
+	    add_create_playlist_file (menu);
+	    add_create_new_playlist (menu);
+	    add_update_tracks_from_file (menu);
+	    if (!pl->is_spl)
 	    {
-		gtk_widget_show (mi_spl[type]);
+		add_sync_playlist_with_dirs (menu);
 	    }
+	    if (type == CM_ST)
+	    {
+		add_alphabetize (menu);
+	    }
+	    add_separator (menu);
 	    if (itdb->usertype & GP_ITDB_TYPE_IPOD)
 	    {
-		gtk_widget_show (mi_delipod[type]);
-		if (!itdb_playlist_is_mpl (pl) &&
-		    !itdb_playlist_is_podcasts (pl))
+		add_delete_from_ipod (menu);
+		if (!itdb_playlist_is_mpl (pl))
 		{
-		    gtk_widget_show (mi_delpl[type]);
+		    add_delete_from_playlist (menu);
 		}
 	    }
 	    if (itdb->usertype & GP_ITDB_TYPE_LOCAL)
 	    {
-		gtk_widget_show (mi_dellocal[type]);
-		gtk_widget_show (mi_deldb[type]);
-		/* actually, local repositories are not supposed to
-		   have podcasts playlists, but for completeness' sake
-		   I'll test anyway*/
-		if(!itdb_playlist_is_mpl (pl) &&
-		   !itdb_playlist_is_podcasts (pl))
+		add_delete_from_harddisk (menu);
+		add_delete_from_database (menu);
+		if (!itdb_playlist_is_mpl (pl))
 		{
-		    gtk_widget_show (mi_delpl[type]);
+		    add_delete_from_playlist (menu);
 		}
 	    }
+	    add_separator (menu);
+	    add_edit_track_details (menu);
+#if LOCALDEBUG
+	    /* This is for debugging purposes -- this allows to inspect
+	     * any track with a custom function */
+	    if (type == CM_TM)
+	    {
+		add_special (menu);
+	    }
+#endif
 	    break;
-	case CM_NUM:  /* to avoid compiler warning */
-	    break;
+	case CM_NUM:
+	    g_return_if_reached ();
 	}
-	/* turn 'export tracks' insensitive when necessary */
-	if (itdb->usertype & GP_ITDB_TYPE_IPOD)
-	{
-	    gtk_widget_set_sensitive (mi_exp[type],
-				      !prefs_get_offline ());
-	}
-	else
-	{
-	    gtk_widget_set_sensitive (mi_exp[type], TRUE);
-	}
     }
-
-
     /* 
      * button should be button 0 as per the docs because we're calling
      * from a button release event
      */
-    gtk_menu_popup(GTK_MENU(menu[type]), NULL, NULL,
-	    NULL, NULL, 0, gtk_get_current_event_time()); 
+    if (menu)
+    {
+	gtk_menu_popup (GTK_MENU (menu), NULL, NULL,
+			NULL, NULL, 0, gtk_get_current_event_time()); 
+    }
 }
 
+
 /**
  * tm_context_menu_init - initialize the right click menu for tracks
  */
@@ -646,7 +781,7 @@
 
     selected_entry = NULL; 
     selected_playlist = NULL;
-    active_itdb = gp_get_active_itdb ();
+    active_itdb = gp_get_selected_itdb ();
     entry_inst = -1;
     if (selected_tracks)  g_list_free (selected_tracks);
     selected_tracks = tm_get_selected_tracks();
@@ -670,11 +805,11 @@
     selected_entry = NULL;
     entry_inst = -1;
     selected_playlist = pm_get_selected_playlist();
-    active_itdb = gp_get_active_itdb ();
+    active_itdb = gp_get_selected_itdb ();
     if(selected_playlist)
     {
 	selected_tracks = g_list_copy (selected_playlist->members);
-	create_context_menu (CM_PM);
+	create_context_menu (CM_PL);
     }
 }
 /**
@@ -692,7 +827,7 @@
     selected_tracks = NULL;
     selected_playlist = NULL;
     selected_entry = st_get_selected_entry (inst);
-    active_itdb = gp_get_active_itdb ();
+    active_itdb = gp_get_selected_itdb ();
     if(selected_entry)
     {
 	entry_inst = inst;

Modified: gtkpod/branches/upstream/current/src/details.c
===================================================================
--- gtkpod/branches/upstream/current/src/details.c	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/src/details.c	2006-09-30 00:00:17 UTC (rev 139)
@@ -1,4 +1,4 @@
-/* Time-stamp: <2005-12-11 17:06:58 jcs>
+/* Time-stamp: <2006-09-21 23:31:59 jcs>
 |
 |  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
 |  Part of the gtkpod project.
@@ -24,7 +24,7 @@
 | 
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: details.c,v 1.8 2005/12/11 08:08:08 jcsjcs Exp $
+|  $Id: details.c,v 1.16 2006/09/21 15:03:13 jcsjcs Exp $
 */
 
 /* This file provides functions for the details window */
@@ -92,13 +92,13 @@
     g_return_if_fail (detail);
 
     gtk_window_get_size (GTK_WINDOW (detail->window), &defx, &defy);
-    prefs_set_int_value (DETAILS_WINDOW_DEFX, defx);
-    prefs_set_int_value (DETAILS_WINDOW_DEFY, defy);
+    prefs_set_int (DETAILS_WINDOW_DEFX, defx);
+    prefs_set_int (DETAILS_WINDOW_DEFY, defy);
 
     if ((w = gtkpod_xml_get_widget (detail->xml, "details_notebook")))
     {
 	gint page = gtk_notebook_get_current_page (GTK_NOTEBOOK (w));
-	prefs_set_int_value (DETAILS_WINDOW_NOTEBOOK_PAGE, page);
+	prefs_set_int (DETAILS_WINDOW_NOTEBOOK_PAGE, page);
     }
 }
 
@@ -130,7 +130,7 @@
     g_return_if_fail (detail->track);
     etr = detail->track->userdata;
     g_return_if_fail (etr);
-    
+
     detail->changed = TRUE;
     etr->tchanged = TRUE;
     details_update_buttons (detail);
@@ -485,12 +485,19 @@
 	totrack->artwork = itdb_artwork_duplicate (frtrack->artwork);
 	totrack->artwork_size = frtrack->artwork_size;
 	totrack->artwork_count = frtrack->artwork_count;
+	totrack->has_artwork = frtrack->has_artwork;
 	g_free (toetr->thumb_path_locale);
 	g_free (toetr->thumb_path_utf8);
 	toetr->thumb_path_locale = g_strdup (fretr->thumb_path_locale);
 	toetr->thumb_path_utf8 = g_strdup (fretr->thumb_path_utf8);
 	changed = TRUE;
     }
+    /* make sure artwork gets removed, even if both thumb_paths were
+       unset ("") */
+    if (!frtrack->artwork->thumbnails)
+    {
+	changed |= gp_track_remove_thumbnails (totrack);
+    }
     return changed;
 }
 
@@ -553,10 +560,24 @@
     g_return_if_fail (detail);
     g_return_if_fail ((item > 0) && (item < T_ITEM_NUM));
 
-    buf = g_strdup_printf ("details_label_%d", item);
-    w = gtkpod_xml_get_widget (detail->xml, buf);
-    gtk_label_set_text (GTK_LABEL (w), gettext (get_t_string (item)));
-    g_free (buf);
+    /* Setup label */
+    switch (item)
+    {
+    case T_COMPILATION:
+    case T_CHECKED:
+    case T_REMEMBER_PLAYBACK_POSITION:
+    case T_SKIP_WHEN_SHUFFLING:
+	buf = g_strdup_printf ("details_checkbutton_%d", item);
+	w = gtkpod_xml_get_widget (detail->xml, buf);
+	gtk_button_set_label (GTK_BUTTON (w),
+			      gettext (get_t_string (item)));
+	break;
+    default:
+	buf = g_strdup_printf ("details_label_%d", item);
+	w = gtkpod_xml_get_widget (detail->xml, buf);
+	gtk_label_set_text (GTK_LABEL (w), gettext (get_t_string (item)));
+	g_free (buf);
+    }
 
     buf = NULL;
     w = NULL;
@@ -575,9 +596,12 @@
     case T_PODCASTRSS:
     case T_PC_PATH:
     case T_IPOD_PATH:
+    case T_THUMB_PATH:
     case T_IPOD_ID:
     case T_SIZE:
     case T_TRACKLEN:
+    case T_STARTTIME:
+    case T_STOPTIME:
     case T_BITRATE:
     case T_SAMPLERATE:
     case T_PLAYCOUNT:
@@ -604,6 +628,8 @@
     case T_COMPILATION:
     case T_TRANSFERRED:
     case T_CHECKED:
+    case T_REMEMBER_PLAYBACK_POSITION:
+    case T_SKIP_WHEN_SHUFFLING:
 	buf = g_strdup_printf ("details_checkbutton_%d", item);
 	w = gtkpod_xml_get_widget (detail->xml, buf);
 	g_signal_connect (w, "toggled",
@@ -675,9 +701,12 @@
     case T_PODCASTRSS:
     case T_PC_PATH:
     case T_IPOD_PATH:
+    case T_THUMB_PATH:
     case T_IPOD_ID:
     case T_SIZE:
     case T_TRACKLEN:
+    case T_STARTTIME:
+    case T_STOPTIME:
     case T_BITRATE:
     case T_SAMPLERATE:
     case T_PLAYCOUNT:
@@ -730,6 +759,28 @@
 					      FALSE);
 	}
 	break;
+    case T_REMEMBER_PLAYBACK_POSITION:
+	if ((w = gtkpod_xml_get_widget (detail->xml, checkbutton)))
+	{
+	    if (track)
+		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (w),
+					      track->remember_playback_position);
+	    else
+		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (w),
+					      FALSE);
+	}
+	break;
+    case T_SKIP_WHEN_SHUFFLING:
+	if ((w = gtkpod_xml_get_widget (detail->xml, checkbutton)))
+	{
+	    if (track)
+		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (w),
+					      track->skip_when_shuffling);
+	    else
+		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (w),
+					      FALSE);
+	}
+	break;
     case T_CHECKED:
 	if ((w = gtkpod_xml_get_widget (detail->xml, checkbutton)))
 	{
@@ -807,6 +858,8 @@
     case T_TIME_MODIFIED:
     case T_TIME_RELEASED:
     case T_TRACKLEN:
+    case T_STARTTIME:
+    case T_STOPTIME:
     case T_SOUNDCHECK:
 	if ((w = gtkpod_xml_get_widget (detail->xml, entry)))
 	{
@@ -814,12 +867,12 @@
 
 	    text = gtk_entry_get_text (GTK_ENTRY (w));
 
-	    /* for tracklen and soundcheck the displayed value is only
-	       a rounded figure -> unless 'assumechanged' is set,
-	       compare the string to the original one before assuming
-	       a change took place */
+	    /* for soundcheck the displayed value is only a rounded
+	       figure -> unless 'assumechanged' is set, compare the
+	       string to the original one before assuming a change
+	       took place */
 	    if (!assumechanged &&
-		((item == T_TRACKLEN) || (item == T_SOUNDCHECK)))
+		(item == T_SOUNDCHECK))
 	    {
 		gchar *buf;
 		track->itdb = detail->itdb;
@@ -832,7 +885,7 @@
 	    }
 	    else
 	    {
-	    changed = track_set_text (track, text, item);
+		changed = track_set_text (track, text, item);
 	    }
 	    /* redisplay some items to be on the safe side */
 	    switch (item)
@@ -840,6 +893,8 @@
 	    case T_TRACK_NR:
 	    case T_CD_NR:
 	    case T_TRACKLEN:
+	    case T_STARTTIME:
+	    case T_STOPTIME:
 	    case T_TIME_ADDED:
 	    case T_TIME_PLAYED:
 	    case T_TIME_MODIFIED:
@@ -881,6 +936,32 @@
 	    }
 	}
 	break;
+    case T_REMEMBER_PLAYBACK_POSITION:
+	if ((w = gtkpod_xml_get_widget (detail->xml, checkbutton)))
+	{
+	    gboolean state;
+	    state = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (w));
+
+	    if (track->remember_playback_position != state)
+	    {
+		track->remember_playback_position = state;
+		changed = TRUE;
+	    }
+	}
+	break;
+    case T_SKIP_WHEN_SHUFFLING:
+	if ((w = gtkpod_xml_get_widget (detail->xml, checkbutton)))
+	{
+	    gboolean state;
+	    state = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (w));
+
+	    if (track->skip_when_shuffling != state)
+	    {
+		track->skip_when_shuffling = state;
+		changed = TRUE;
+	    }
+	}
+	break;
     case T_CHECKED:
 	if ((w = gtkpod_xml_get_widget (detail->xml, checkbutton)))
 	{
@@ -899,8 +980,10 @@
     case T_PC_PATH:
     case T_IPOD_PATH:
     case T_IPOD_ID:
+    case T_THUMB_PATH:
 	/* These are read-only only */
 	break;
+	break;
     case T_ALL:
     case T_ITEM_NUM:
 	/* cannot happen because of assertion above */
@@ -1057,7 +1140,6 @@
 	/* Get large cover */
 	thumb = itdb_artwork_get_thumb_by_type (detail->track->artwork,
 						ITDB_THUMB_COVER_LARGE);
-
 	if (thumb)
 	{
 	    GdkPixbuf *pixbuf;
@@ -1069,6 +1151,7 @@
 		gdk_pixbuf_unref (pixbuf);
 	    }
 	}
+	details_set_item (detail,  detail->track, T_THUMB_PATH);
     }
 
     if (gtk_image_get_storage_type (img) == GTK_IMAGE_EMPTY)

Modified: gtkpod/branches/upstream/current/src/display.c
===================================================================
--- gtkpod/branches/upstream/current/src/display.c	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/src/display.c	2006-09-30 00:00:17 UTC (rev 139)
@@ -1,4 +1,4 @@
-/* Time-stamp: <2005-12-14 23:13:26 jcs>
+/* Time-stamp: <2006-06-25 00:22:56 jcs>
 |
 |  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
 |  Part of the gtkpod project.
@@ -24,25 +24,28 @@
 |
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: display.c,v 1.130 2005/12/14 14:58:55 jcsjcs Exp $
+|  $Id: display.c,v 1.149 2006/06/24 15:39:22 jcsjcs Exp $
 */
 
 #ifdef HAVE_CONFIG_H
 #  include <config.h>
 #endif
 
-#include <string.h>
-#include <stdlib.h>
+#include "details.h"
 #include "display_private.h"
 #include "info.h"
-#include "details.h"
+#include "ipod_init.h"
+#include "misc.h"
+#include "misc_track.h"
 #include "prefs.h"
 #include "prefs_window.h"
-#include "misc.h"
-#include "misc_track.h"
+#include "repository.h"
+#include "syncdir.h"
 #include "tools.h"
-#include "podcast.h"
+#include <stdlib.h>
+#include <string.h>
 
+
 GtkWidget *gtkpod_window = NULL;
 
 /* used for stopping of display refresh */
@@ -58,7 +61,8 @@
     g_return_if_fail (gtkpod_window);
 
     /* x,y-size */
-    prefs_get_size_gtkpod (&defx, &defy);
+    defx = prefs_get_int("size_gtkpod.x");
+		defy = prefs_get_int("size_gtkpod.y");
     gtk_window_set_default_size (GTK_WINDOW (gtkpod_window), defx, defy);
 /* we need to use the following line if the main window is already
    displayed */
@@ -88,8 +92,6 @@
 
     /* activate the delete menus correctly */
     display_adjust_menus ();
-    /* activate/deactive the menu item 'check iPod' */
-    display_set_check_ipod_menu ();
     /* activate status bars */
     gtkpod_statusbar_init ();
     gtkpod_tracks_statusbar_init ();
@@ -98,11 +100,7 @@
     /* CAREFUL: must be done after calling ..._space_statusbar_init() */
     display_set_info_window_menu ();
     /* check if info window should be opened */
-    if (prefs_get_info_window ())  info_open_window ();
-
-    /* if we need to fetch podcasts, then do so */
-/* FIXME: PODCASTS: remove Podcast menu */
-/*     if (prefs_get_pc_auto_fetch ())  podcast_fetch(); */
+    if (prefs_get_int("info_window"))  info_open_window ();
 }
 
 /* redisplay the entire display (playlists, sort tabs, track view) and
@@ -148,50 +146,24 @@
 }
 
 
-/**
- * disable_import_buttons
- * Upon successfull itunes db importing we want to disable the import
- * buttons.  This retrieves the import buttons from the main gtkpod widget
- * and disables them from taking input.
- */
-void
-display_disable_gtkpod_import_buttons(void)
-{
-    GtkWidget *w = NULL;
-
-    g_return_if_fail (gtkpod_window);
-
-    if((w = gtkpod_xml_get_widget (main_window_xml, "import_button")))
-    {
-	gtk_widget_set_sensitive(w, FALSE);
-	/* in case this widget has been blocked, we need to tell
-	   update the desired state upon release */
-	update_blocked_widget (w, FALSE);
-    }
-
-    if((w = gtkpod_xml_get_widget (main_window_xml, "import_itunes_mi")))
-    {
-	gtk_widget_set_sensitive(w, FALSE);
-	/* in case this widget has been blocked, we need to tell
-	   update the desired state upon release */
-	update_blocked_widget (w, FALSE);
-    }
-}
-
-
 /* make sure only suitable delete menu items are available */
 void display_adjust_menus (void)
 {
-    GtkWidget *delete, *edit;
+    GtkWidget *delete;
+    GtkWidget *edit1, *edit2, *edit3, *edit4, *edit5;
     GtkWidget *dtfpl, *dtfip, *dtfdb, *dtfhd;
     GtkWidget *defpl, *defip, *defdb, *defhd;
     GtkWidget *dpl, *dpltfip, *dpltfdb, *dpltfhd;
     GtkWidget *dsep1, *dsep2;
-    GtkWidget *espl, *w;
+    GtkWidget *espl;
     Playlist *pl;
 
     delete = gtkpod_xml_get_widget (main_window_xml, "delete_menu");
-    edit = gtkpod_xml_get_widget (main_window_xml, "edit_menu");
+    edit1 = gtkpod_xml_get_widget (main_window_xml, "edit_details_menu");
+    edit2 = gtkpod_xml_get_widget (main_window_xml, "delete_menu");
+    edit3 = gtkpod_xml_get_widget (main_window_xml, "create_playlists_menu");
+    edit4 = gtkpod_xml_get_widget (main_window_xml, "randomize_current_playlist_menu");
+    edit5 = gtkpod_xml_get_widget (main_window_xml, "save_track_order_menu");
     dtfpl = gtkpod_xml_get_widget (main_window_xml,
 				   "delete_selected_tracks_from_playlist");
     dtfip = gtkpod_xml_get_widget (main_window_xml,
@@ -221,18 +193,16 @@
     espl = gtkpod_xml_get_widget (main_window_xml,
 				  "edit_smart_playlist");
 
-    /* FIXME: PODCASTS: remove Podcast menu */
-    w = gtkpod_xml_get_widget (main_window_xml, "update_podcasts");
-    gtk_widget_hide (w);
-    w = gtkpod_xml_get_widget (main_window_xml, "update_podcasts_sep");
-    gtk_widget_hide (w);
-
     pl = pm_get_selected_playlist ();
 
     if (pl == NULL)
     {
 	gtk_widget_set_sensitive (delete, FALSE);
-	gtk_widget_set_sensitive (edit, FALSE);
+	gtk_widget_set_sensitive (edit1, FALSE);
+	gtk_widget_set_sensitive (edit2, FALSE);
+	gtk_widget_set_sensitive (edit3, FALSE);
+	gtk_widget_set_sensitive (edit4, FALSE);
+	gtk_widget_set_sensitive (edit5, FALSE);
     }
     else
     {
@@ -240,7 +210,11 @@
 	g_return_if_fail (itdb);
 
 	gtk_widget_set_sensitive (delete, TRUE);
-	gtk_widget_set_sensitive (edit, TRUE);
+	gtk_widget_set_sensitive (edit1, TRUE);
+	gtk_widget_set_sensitive (edit2, TRUE);
+	gtk_widget_set_sensitive (edit3, TRUE);
+	gtk_widget_set_sensitive (edit4, TRUE);
+	gtk_widget_set_sensitive (edit5, TRUE);
 
 	gtk_widget_hide (dtfpl);
 	gtk_widget_hide (dtfip);
@@ -370,9 +344,9 @@
     GtkWidget *tb = gtkpod_xml_get_widget (main_window_xml, "toolbar");
     GtkWidget *mi = gtkpod_xml_get_widget (main_window_xml, "toolbar_menu");
 
-    if (prefs_get_display_toolbar ())
+    if (prefs_get_int("display_toolbar"))
     {
-	gtk_toolbar_set_style (GTK_TOOLBAR (tb), prefs_get_toolbar_style ());
+	gtk_toolbar_set_style (GTK_TOOLBAR (tb), prefs_get_int("toolbar_style"));
 	gtk_widget_show (tb);
 	gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (mi), TRUE);
     }
@@ -389,7 +363,7 @@
 {
     GtkWidget *mi = gtkpod_xml_get_widget (main_window_xml, "info_window_menu");
 
-    if (prefs_get_info_window ())
+    if (prefs_get_int("info_window"))
     {
 	gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (mi), TRUE);
     }
@@ -399,17 +373,6 @@
     }
 }
 
-/** Takes care about 'Check IPOD Files' Menu Item and makes it unavailable
- * if gtkpod is offline.
- */
-void display_set_check_ipod_menu (void)
-{
-    GtkWidget *w = NULL;
-
-    if((w = gtkpod_xml_get_widget (main_window_xml, "check_ipod_files_mi")))
-        gtk_widget_set_sensitive(w, !prefs_get_offline());
-}
-
 /* make the tooltips visible or hide it depending on the value set in
  * the prefs (tooltips_main) */
 void display_show_hide_tooltips (void)
@@ -436,7 +399,7 @@
     g_return_if_fail (mt);
 
 
-    if (prefs_get_display_tooltips_main ())
+    if (prefs_get_int("display_tooltips_main"))
     {
 	gtk_tooltips_enable (mt);
 	gtk_check_menu_item_set_active (mi, TRUE);
@@ -469,8 +432,9 @@
     /* x,y size of main window */
     if (gtkpod_window)
     {
-	gtk_window_get_size (GTK_WINDOW (gtkpod_window), &x, &y);
-	prefs_set_size_gtkpod (x, y);
+			gtk_window_get_size (GTK_WINDOW (gtkpod_window), &x, &y);
+			prefs_set_int("size_gtkpod.x", x);
+			prefs_set_int("size_gtkpod.y", y);
     }
     tm_update_default_sizes ();
     st_update_default_sizes ();
@@ -505,9 +469,9 @@
 	if (pl)  return g_list_copy (pl->members);
 	else     return NULL;
     }
-    if ((inst >= 0) && (inst < prefs_get_sort_tab_num ()))
+    if ((inst >= 0) && (inst < prefs_get_int("sort_tab_num")))
 	return g_list_copy (st_get_selected_members (inst));
-    if (inst >= prefs_get_sort_tab_num ())
+    if (inst >= prefs_get_int("sort_tab_num"))
 	return tm_get_selected_tracks ();
     return NULL;
 }
@@ -905,26 +869,19 @@
 */
 
 
-/* FIXME: PODCASTS: remove Podcast menu */
-void on_update_podcasts_activate (GtkButton       *button,
-				  gpointer         user_data)
-{
-#if 0
-    podcast_fetch ();
-#endif
-}
-
 void on_edit_details_selected_playlist (GtkMenuItem     *menuitem,
 					gpointer         user_data)
 {
     Playlist *pl = pm_get_selected_playlist ();
 
-    if (!pl)
+    if (pl)
     {
-	gtkpod_statusbar_message (_("No playlist selected"));
-	return;
+	details_edit (pl->members);
     }
-    details_edit (pl->members);
+    else
+    {
+	message_sb_no_playlist_selected ();
+    }
 }
 
 void on_edit_details_selected_tab_entry (GtkMenuItem     *menuitem,
@@ -957,7 +914,7 @@
     }
     else
     {
-	gtkpod_statusbar_message (_("No tracks selected"));
+	message_sb_no_tracks_selected ();
     }
 }
 
@@ -967,7 +924,16 @@
 on_new_playlist_button                 (GtkButton       *button,
 					gpointer         user_data)
 {
-  add_new_pl_or_spl_user_name (gp_get_active_itdb (), NULL, -1);
+    iTunesDB *itdb = gp_get_selected_itdb();
+
+    if (itdb)
+    {
+	add_new_pl_or_spl_user_name (itdb, NULL, -1);
+    }
+    else
+    {
+	message_sb_no_itdb_selected ();
+    }
 }
 
 
@@ -976,53 +942,88 @@
 on_new_playlist1_activate              (GtkMenuItem     *menuitem,
 					gpointer         user_data)
 {
-  add_new_pl_or_spl_user_name (gp_get_active_itdb(), NULL, -1);
+    iTunesDB *itdb = gp_get_selected_itdb();
+
+    if (itdb)
+    {
+	add_new_pl_or_spl_user_name (itdb, NULL, -1);
+    }
+    else
+    {
+	message_sb_no_itdb_selected ();
+    }
 }
 
 void
-on_edit_preferences1_activate          (GtkMenuItem     *menuitem,
+on_edit_preferences_activate          (GtkMenuItem     *menuitem,
 					gpointer         user_data)
 {
     if(!widgets_blocked)  prefs_window_create (-1);
 }
 
+void
+on_edit_repository_options_activate          (GtkMenuItem     *menuitem,
+					      gpointer         user_data)
+{
+    Playlist *pl = pm_get_selected_playlist ();
 
+    if (pl)
+    {
+	repository_edit (pl->itdb, pl);
+    }
+    else
+    {
+	repository_edit (NULL, NULL);
+    }
+}
+
 void
-on_offline1_activate                   (GtkMenuItem     *menuitem,
-					gpointer         user_data)
+on_load_ipods_mi           (GtkMenuItem     *menuitem,
+			    gpointer         user_data)
 {
-  prefs_set_offline (
-     gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (menuitem)));
-  display_set_check_ipod_menu ();
+    gp_load_ipods ();
 }
 
+
 void
-on_import_itunes_mi_activate           (GtkMenuItem     *menuitem,
-					gpointer         user_data)
+on_load_ipods_clicked               (GtkButton       *button,
+				     gpointer         user_data)
 {
-  gp_merge_ipod_itdbs ();
+    gp_load_ipods ();
 }
 
 
 void
-on_import_button_clicked               (GtkButton       *button,
-					gpointer         user_data)
+on_save_changes_mi           (GtkMenuItem     *menuitem,
+			      gpointer         user_data)
 {
-  gp_merge_ipod_itdbs ();
+    handle_export ();
 }
 
 
+
+void
+on_save_changes_clicked               (GtkButton       *button,
+				     gpointer         user_data)
+{
+    handle_export ();
+}
+
+
+
 void on_edit_smart_playlist (GtkMenuItem *mi,
 			     gpointer data)
 {
     Playlist *pl = pm_get_selected_playlist ();
 
-    if (!pl)
+    if (pl)
     {
-	gtkpod_statusbar_message (_("No playlist selected"));
-	return;
+	spl_edit (pl);
     }
-    spl_edit (pl);
+    else
+    {
+	message_sb_no_playlist_selected ();
+    }
 }
 
 
@@ -1037,7 +1038,7 @@
     }
     else
     {
-	gtkpod_statusbar_message (_("No tracks selected"));
+	message_sb_no_tracks_selected ();
     }
 }    
 
@@ -1053,10 +1054,8 @@
     entry = st_get_selected_entry (inst);
     if (!entry)
     {
-	gchar *str = g_strdup_printf(_("No entry selected in Sort Tab %d"),
-				     inst+1);
-	gtkpod_statusbar_message (str);
-	g_free (str);
+	gtkpod_statusbar_message (_("No entry selected in Sort Tab %d"),
+				  inst+1);
 	return;
     }
     delete_entry_head (inst, deleteaction);
@@ -1066,12 +1065,14 @@
 {
     Playlist *pl = pm_get_selected_playlist ();
 
-    if (!pl)
+    if (pl)
     {
-	gtkpod_statusbar_message (_("No playlist selected"));
-	return;
+	delete_playlist_head (deleteaction);
     }
-    delete_playlist_head (deleteaction);
+    else
+    {
+	message_sb_no_playlist_selected ();
+    }
 }
 
 void on_delete_selected_tracks_from_database (GtkMenuItem *mi,
@@ -1168,18 +1169,80 @@
 on_ipod_directories_menu               (GtkMenuItem     *menuitem,
 					gpointer         user_data)
 {
-    iTunesDB *itdb = gp_get_active_itdb ();
-    if (!itdb)
+    iTunesDB *itdb = gp_get_ipod_itdb ();
+    if (itdb)
     {
-	gtkpod_statusbar_message (_("Currently no iPod database selected"));
+	ExtraiTunesDBData *eitdb = itdb->userdata;
+
+	g_return_if_fail (eitdb);
+
+
+	if (!eitdb->itdb_imported)
+	{
+	    gchar *mountpoint = get_itdb_prefs_string (itdb, KEY_MOUNTPOINT);
+	    gchar *str = g_strdup_printf (_("iPod at '%s' is not loaded.\nPlease load it first."), mountpoint);
+	    GtkWidget *dialog = gtk_message_dialog_new (
+		GTK_WINDOW (gtkpod_window),
+		GTK_DIALOG_DESTROY_WITH_PARENT,
+		GTK_MESSAGE_WARNING,
+		GTK_BUTTONS_OK,
+		str);
+	    gtk_dialog_run (GTK_DIALOG (dialog));
+	    gtk_widget_destroy (dialog);
+	    g_free (str);
+	    g_free (mountpoint);
+	}
+	else
+	{
+	     gp_ipod_init (itdb);
+	}
     }
     else
     {
-	ipod_directories_head (itdb->mountpoint);
+	message_sb_no_ipod_itdb_selected ();
     }
 }
 
 void
+on_check_ipod_files_activate           (GtkMenuItem     *menuitem,
+					gpointer         user_data)
+{
+    iTunesDB *itdb = gp_get_ipod_itdb ();
+    if (itdb)
+    {
+	ExtraiTunesDBData *eitdb = itdb->userdata;
+
+	g_return_if_fail (eitdb);
+
+
+	if (!eitdb->itdb_imported)
+	{
+	    gchar *mountpoint = get_itdb_prefs_string (itdb, KEY_MOUNTPOINT);
+	    gchar *str = g_strdup_printf (_("iPod at '%s' is not loaded.\nPlease load it first."), mountpoint);
+	    GtkWidget *dialog = gtk_message_dialog_new (
+		GTK_WINDOW (gtkpod_window),
+		GTK_DIALOG_DESTROY_WITH_PARENT,
+		GTK_MESSAGE_WARNING,
+		GTK_BUTTONS_OK,
+		str);
+	    gtk_dialog_run (GTK_DIALOG (dialog));
+	    gtk_widget_destroy (dialog);
+	    g_free (str);
+	    g_free (mountpoint);
+	}
+	else
+	{
+	    check_db (itdb);
+	}
+    }
+    else
+    {
+	message_sb_no_ipod_itdb_selected ();
+    }
+}
+
+
+void
 on_stop_button_clicked                 (GtkButton       *button,
 					gpointer         user_data)
 {
@@ -1236,34 +1299,28 @@
 on_sync_playlist_activate (GtkMenuItem     *menuitem,
 			     gpointer         user_data)
 {
-    gp_do_selected_playlist (sync_tracks);
-}
+    Playlist *pl;
 
-/* sync tracks in tab entry */
-void
-on_sync_tab_entry_activate        (GtkMenuItem     *menuitem,
-				     gpointer         user_data)
-{
-    gint inst = get_sort_tab_number (
-	_("Sync dirs of selected entry in which sort tab?"));
-
-    if (inst != -1) gp_do_selected_entry (sync_tracks, inst);
+    pl = pm_get_selected_playlist();
+    if (pl)
+    {
+	sync_playlist (pl, NULL,
+		       KEY_SYNC_CONFIRM_DIRS, 0,
+		       KEY_SYNC_DELETE_TRACKS, 0,
+		       KEY_SYNC_CONFIRM_DELETE, 0,
+		       KEY_SYNC_SHOW_SUMMARY, 0);
+    }
+    else
+    {
+	message_sb_no_playlist_selected ();
+    }
 }
 
 void
-on_sync_tracks_activate            (GtkMenuItem     *menuitem,
-				     gpointer         user_data)
-{
-    gp_do_selected_tracks (sync_tracks);
-}
-
-
-void
 on_save_track_order1_activate           (GtkMenuItem     *menuitem,
 					gpointer         user_data)
 {
     tm_rows_reordered ();
-    pm_rows_reordered ();
 }
 
 
@@ -1271,8 +1328,9 @@
 on_toolbar_menu_activate               (GtkMenuItem     *menuitem,
 					gpointer         user_data)
 {
-    prefs_set_display_toolbar (
+    prefs_set_int("display_toolbar",
 	gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (menuitem)));
+    display_show_hide_toolbar();
 }
 
 
@@ -1280,7 +1338,8 @@
 on_more_sort_tabs_activate             (GtkMenuItem     *menuitem,
 					gpointer         user_data)
 {
-    prefs_set_sort_tab_num (prefs_get_sort_tab_num()+1, TRUE);
+    prefs_set_int("sort_tab_num", prefs_get_int("sort_tab_num")+1);
+    st_show_visible();
 }
 
 
@@ -1288,7 +1347,8 @@
 on_less_sort_tabs_activate             (GtkMenuItem     *menuitem,
 					gpointer         user_data)
 {
-    prefs_set_sort_tab_num (prefs_get_sort_tab_num()-1, TRUE);
+    prefs_set_int("sort_tab_num", prefs_get_int("sort_tab_num")-1);
+    st_show_visible();
 }
 
 void
@@ -1299,10 +1359,12 @@
 
     if (!pl)
     {
-	gtkpod_statusbar_message (_("No playlist selected"));
-	return;
+	export_files_init (pl->members, NULL, FALSE, NULL);
     }
-    export_files_init (pl->members, NULL, FALSE, NULL);
+    else
+    {
+	message_sb_no_playlist_selected ();
+    }
 }
 
 
@@ -1319,10 +1381,8 @@
     entry = st_get_selected_entry (inst);
     if (!entry)
     {
-	gchar *str = g_strdup_printf(_("No entry selected in Sort Tab %d"),
-				     inst+1);
-	gtkpod_statusbar_message (str);
-	g_free (str);
+	gtkpod_statusbar_message (_("No entry selected in Sort Tab %d"),
+				  inst+1);
 	return;
     }
     export_files_init (entry->members, NULL, FALSE, NULL);
@@ -1342,7 +1402,7 @@
     }
     else
     {
-	gtkpod_statusbar_message (_("No tracks selected"));
+	message_sb_no_tracks_selected ();
     }
 }
 
@@ -1353,12 +1413,14 @@
 {
     Playlist *pl = pm_get_selected_playlist ();
 
-    if (!pl)
+    if (pl)
     {
-	gtkpod_statusbar_message (_("No playlist selected"));
-	return;
+	export_playlist_file_init (pl->members);
     }
-    export_playlist_file_init (pl->members);
+    else
+    {
+	message_sb_no_playlist_selected ();
+    }
 }
 
 
@@ -1375,10 +1437,8 @@
     entry = st_get_selected_entry (inst);
     if (!entry)
     {
-	gchar *str = g_strdup_printf(_("No entry selected in Sort Tab %d"),
-				     inst+1);
-	gtkpod_statusbar_message (str);
-	g_free (str);
+	gtkpod_statusbar_message (_("No entry selected in Sort Tab %d"),
+				  inst+1);
 	return;
     }
     export_playlist_file_init (entry->members);
@@ -1398,7 +1458,7 @@
     }
     else
     {
-	gtkpod_statusbar_message (_("No tracks selected"));
+	message_sb_no_tracks_selected ();
     }
 }
 
@@ -1408,9 +1468,13 @@
 {
     Playlist *pl = pm_get_selected_playlist ();
     if (pl)
+    {
 	tools_play_tracks (pl->members);
+    }
     else
-	gtkpod_statusbar_message (_("No playlist selected"));
+    {
+	message_sb_no_playlist_selected ();
+    }
 }
 
 
@@ -1427,10 +1491,8 @@
     entry = st_get_selected_entry (inst);
     if (!entry)
     {
-	gchar *str = g_strdup_printf(_("No entry selected in Sort Tab %d"),
-				     inst+1);
-	gtkpod_statusbar_message (str);
-	g_free (str);
+	gtkpod_statusbar_message (_("No entry selected in Sort Tab %d"),
+				  inst+1);
 	return;
     }
     tools_play_tracks (entry->members);
@@ -1449,7 +1511,9 @@
 	tracks = NULL;
     }
     else
-	gtkpod_statusbar_message (_("No tracks selected"));
+    {
+	message_sb_no_tracks_selected ();
+    }
 }
 
 
@@ -1459,9 +1523,13 @@
 {
     Playlist *pl = pm_get_selected_playlist ();
     if (pl)
+    {
 	tools_enqueue_tracks (pl->members);
+    }
     else
-	gtkpod_statusbar_message (_("No playlist selected"));
+    {
+	message_sb_no_playlist_selected ();
+    }
 }
 
 
@@ -1478,10 +1546,8 @@
     entry = st_get_selected_entry (inst);
     if (!entry)
     {
-	gchar *str = g_strdup_printf(_("No entry selected in Sort Tab %d"),
-				     inst+1);
-	gtkpod_statusbar_message (str);
-	g_free (str);
+	gtkpod_statusbar_message (_("No entry selected in Sort Tab %d"),
+				  inst+1);
 	return;
     }
     tools_enqueue_tracks (entry->members);
@@ -1500,7 +1566,9 @@
 	tracks = NULL;
     }
     else
-	gtkpod_statusbar_message (_("No tracks selected"));
+    {
+	message_sb_no_tracks_selected ();
+    }    
 }
 
 
@@ -1515,8 +1583,10 @@
 on_tooltips_menu_activate              (GtkMenuItem     *menuitem,
 					gpointer         user_data)
 {
-    prefs_set_display_tooltips_main (
+    prefs_set_int("display_tooltips_main",
 	gtk_check_menu_item_get_active (GTK_CHECK_MENU_ITEM (menuitem)));
+    display_show_hide_tooltips();
+    
 }
 
 void
@@ -1537,28 +1607,64 @@
 on_pl_for_each_artist_activate         (GtkMenuItem     *menuitem,
 					gpointer         user_data)
 {
-    generate_category_playlists (gp_get_active_itdb(), T_ARTIST);
+    iTunesDB *itdb = gp_get_selected_itdb();
+
+    if (itdb)
+    {
+	generate_category_playlists (itdb, T_ARTIST);
+    }
+    else
+    {
+	message_sb_no_itdb_selected ();
+    }
 }
 
 void
 on_pl_for_each_album_activate         (GtkMenuItem     *menuitem,
 				       gpointer         user_data)
 {
-    generate_category_playlists (gp_get_active_itdb(), T_ALBUM);
+    iTunesDB *itdb = gp_get_selected_itdb();
+
+    if (itdb)
+    {
+	generate_category_playlists (itdb, T_ALBUM);
+    }
+    else
+    {
+	message_sb_no_itdb_selected ();
+    }
 }
 
 void
 on_pl_for_each_genre_activate         (GtkMenuItem     *menuitem,
 				       gpointer         user_data)
 {
-    generate_category_playlists (gp_get_active_itdb(), T_GENRE);
+    iTunesDB *itdb = gp_get_selected_itdb();
+
+    if (itdb)
+    {
+	generate_category_playlists (itdb, T_GENRE);
+    }
+    else
+    {
+	message_sb_no_itdb_selected ();
+    }
 }
 
 void
 on_pl_for_each_composer_activate         (GtkMenuItem     *menuitem,
 					  gpointer         user_data)
 {
-    generate_category_playlists (gp_get_active_itdb(), T_COMPOSER);
+    iTunesDB *itdb = gp_get_selected_itdb();
+
+    if (itdb)
+    {
+	generate_category_playlists (itdb, T_COMPOSER);
+    }
+    else
+    {
+	message_sb_no_itdb_selected ();
+    }
 }
 
 
@@ -1566,7 +1672,16 @@
 on_pl_for_each_year_activate           (GtkMenuItem     *menuitem,
                                         gpointer         user_data)
 {
-    generate_category_playlists (gp_get_active_itdb(), T_YEAR);
+    iTunesDB *itdb = gp_get_selected_itdb();
+
+    if (itdb)
+    {
+	generate_category_playlists (itdb, T_YEAR);
+    }
+    else
+    {
+	message_sb_no_itdb_selected ();
+    }
 }
 
 
@@ -1574,7 +1689,16 @@
 on_most_listened_tracks1_activate       (GtkMenuItem     *menuitem,
 					gpointer         user_data)
 {
-    most_listened_pl(gp_get_active_itdb());
+    iTunesDB *itdb = gp_get_selected_itdb();
+
+    if (itdb)
+    {
+	most_listened_pl (itdb);
+    }
+    else
+    {
+	message_sb_no_itdb_selected ();
+    }
 }
 
 
@@ -1583,7 +1707,16 @@
 					(GtkMenuItem     *menuitem,
 					gpointer         user_data)
 {
-    never_listened_pl(gp_get_active_itdb());
+    iTunesDB *itdb = gp_get_selected_itdb();
+
+    if (itdb)
+    {
+	never_listened_pl (itdb);
+    }
+    else
+    {
+	message_sb_no_itdb_selected ();
+    }
 }
 
 void
@@ -1591,7 +1724,16 @@
 					(GtkMenuItem     *menuitem,
 					gpointer         user_data)
 {
-    most_rated_pl(gp_get_active_itdb());
+    iTunesDB *itdb = gp_get_selected_itdb();
+
+    if (itdb)
+    {
+	most_rated_pl (itdb);
+    }
+    else
+    {
+	message_sb_no_itdb_selected ();
+    }
 }
 
 
@@ -1599,14 +1741,32 @@
 on_most_recent_played_tracks_activate   (GtkMenuItem     *menuitem,
 					gpointer         user_data)
 {
-    last_listened_pl(gp_get_active_itdb());
+    iTunesDB *itdb = gp_get_selected_itdb();
+
+    if (itdb)
+    {
+	last_listened_pl (itdb);
+    }
+    else
+    {
+	message_sb_no_itdb_selected ();
+    }
 }
 
 void
 on_played_since_last_time1_activate    (GtkMenuItem     *menuitem,
 					gpointer         user_data)
 {
-    since_last_pl(gp_get_active_itdb());
+    iTunesDB *itdb = gp_get_selected_itdb();
+
+    if (itdb)
+    {
+	since_last_pl (itdb);
+    }
+    else
+    {
+	message_sb_no_itdb_selected ();
+    }
 }
 
 void
@@ -1625,7 +1785,7 @@
     if (pl)
 	nm_tracks_list (pl->members);
     else
-	gtkpod_statusbar_message (_("No playlist selected"));
+	message_sb_no_playlist_selected ();
 }
 
 
@@ -1647,10 +1807,8 @@
     }
     else
     {
-	gchar *str = g_strdup_printf(_("No entry selected in Sort Tab %d"),
-				     inst+1);
-	gtkpod_statusbar_message (str);
-	g_free (str);
+	gtkpod_statusbar_message (_("No entry selected in Sort Tab %d"),
+				  inst+1);
 	return;
     }
 }
@@ -1680,12 +1838,18 @@
 on_normalize_all_tracks                (GtkMenuItem     *menuitem,
 					gpointer         user_data)
 {
-    iTunesDB *itdb = gp_get_active_itdb ();
-    Playlist *mpl;
-    g_return_if_fail (itdb);
-    mpl = itdb_playlist_mpl (itdb);
-    g_return_if_fail (mpl);
-    nm_tracks_list (mpl->members);
+    iTunesDB *itdb = gp_get_selected_itdb ();
+
+    if (itdb)
+    {
+	Playlist *mpl = itdb_playlist_mpl (itdb);
+	g_return_if_fail (mpl);
+	nm_tracks_list (mpl->members);
+    }
+    else
+    {
+	message_sb_no_itdb_selected ();
+    }
 }
 
 
@@ -1693,7 +1857,16 @@
 on_normalize_newly_added_tracks        (GtkMenuItem     *menuitem,
 					gpointer         user_data)
 {
-    nm_new_tracks (gp_get_active_itdb ());
+    iTunesDB *itdb = gp_get_selected_itdb();
+
+    if (itdb)
+    {
+	nm_new_tracks (itdb);
+    }
+    else
+    {
+	message_sb_no_itdb_selected ();
+    }
 }
 
 
@@ -1707,18 +1880,23 @@
 }
 
 void
-on_check_ipod_files_activate           (GtkMenuItem     *menuitem,
-					gpointer         user_data)
+on_sync_all_activate                   (GtkMenuItem     *menuitem,
+                                        gpointer         user_data)
 {
-    check_db (gp_get_ipod_itdb());
-}
+    struct itdbs_head *itdbs_head = gp_get_itdbs_head (gtkpod_window);
+    GList *gl;
 
+    g_return_if_fail (itdbs_head);
 
-void
-on_sync_all_activate                   (GtkMenuItem     *menuitem,
-                                        gpointer         user_data)
-{
-	tools_sync_all ();
+    for (gl=itdbs_head->itdbs; gl; gl=gl->next)
+    {
+	iTunesDB *itdb = gl->data;
+	g_return_if_fail (gl);
+	if (itdb->usertype & GP_ITDB_TYPE_IPOD)
+	{
+	    tools_sync_all (itdb);
+	}
+    }
 }
 
 
@@ -1726,7 +1904,15 @@
 on_sync_calendar_activate              (GtkMenuItem     *menuitem,
 					gpointer         user_data)
 {
-    tools_sync_calendar ();
+    iTunesDB *itdb = gp_get_ipod_itdb ();
+    if (itdb)
+    {
+	tools_sync_calendar (itdb);
+    }
+    else
+    {
+	message_sb_no_ipod_itdb_selected ();
+    }
 }
 
 
@@ -1734,7 +1920,15 @@
 on_sync_contacts_activate              (GtkMenuItem     *menuitem,
 					gpointer         user_data)
 {
-    tools_sync_contacts ();
+    iTunesDB *itdb = gp_get_ipod_itdb ();
+    if (itdb)
+    {
+	tools_sync_contacts (itdb);
+    }
+    else
+    {
+	message_sb_no_ipod_itdb_selected ();
+    }
 }
 
 
@@ -1742,8 +1936,15 @@
 on_sync_notes_activate                 (GtkMenuItem     *menuitem,
                                         gpointer         user_data)
 {
-	tools_sync_notes ();
-
+    iTunesDB *itdb = gp_get_ipod_itdb ();
+    if (itdb)
+    {
+	tools_sync_notes (itdb);
+    }
+    else
+    {
+	message_sb_no_ipod_itdb_selected ();
+    }
 }
 
 void
@@ -1751,7 +1952,16 @@
                                         (GtkMenuItem     *menuitem,
                                         gpointer         user_data)
 {
-    generate_not_listed_playlist (gp_get_active_itdb ());
+    iTunesDB *itdb = gp_get_selected_itdb();
+
+    if (itdb)
+    {
+	generate_not_listed_playlist (itdb);
+    }
+    else
+    {
+	message_sb_no_itdb_selected ();
+    }
 }
 
 
@@ -1759,7 +1969,16 @@
 on_random_playlist_activate            (GtkMenuItem     *menuitem,
                                         gpointer         user_data)
 {
-    generate_random_playlist(gp_get_active_itdb ());
+    iTunesDB *itdb = gp_get_selected_itdb();
+
+    if (itdb)
+    {
+	generate_random_playlist(itdb);
+    }
+    else
+    {
+	message_sb_no_itdb_selected ();
+    }
 }
 
 
@@ -1774,5 +1993,14 @@
 on_pl_for_each_rating_activate         (GtkMenuItem     *menuitem,
                                         gpointer         user_data)
 {
-    each_rating_pl (gp_get_active_itdb ());
+    iTunesDB *itdb = gp_get_selected_itdb();
+
+    if (itdb)
+    {
+	each_rating_pl (itdb);
+    }
+    else
+    {
+	message_sb_no_itdb_selected ();
+    }
 }

Modified: gtkpod/branches/upstream/current/src/display.h
===================================================================
--- gtkpod/branches/upstream/current/src/display.h	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/src/display.h	2006-09-30 00:00:17 UTC (rev 139)
@@ -1,4 +1,4 @@
-/* Time-stamp: <2005-12-10 14:43:34 jcs>
+/* Time-stamp: <2006-09-21 23:12:28 jcs>
 |
 |  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
 |  Part of the gtkpod project.
@@ -24,7 +24,7 @@
 | 
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: display.h,v 1.109 2005/12/10 08:21:59 jcsjcs Exp $
+|  $Id: display.h,v 1.116 2006/09/21 15:03:13 jcsjcs Exp $
 */
 
 #ifndef __DISPLAY_H__
@@ -45,6 +45,14 @@
 /* pointer to main window */
 extern GtkWidget *gtkpod_window;
 
+/* types for sort */
+enum
+{
+    SORT_ASCENDING = GTK_SORT_ASCENDING,
+    SORT_DESCENDING = GTK_SORT_DESCENDING,
+    SORT_NONE = 10*(GTK_SORT_ASCENDING+GTK_SORT_DESCENDING),
+};
+
 /* Categories in each sort tab (page numbers) */
 typedef enum {
   ST_CAT_ARTIST = 0,
@@ -181,6 +189,7 @@
   TM_COLUMN_PODCASTRSS,
   TM_COLUMN_SUBTITLE,
   TM_COLUMN_TIME_RELEASED,
+  TM_COLUMN_THUMB_PATH,
   TM_NUM_COLUMNS
 } TM_item;
 
@@ -190,7 +199,7 @@
 /* Add corresponding entries to t_strings[] and t_tooltips[] in
    misc_conversion.c! */
 /* Used in prefs_window.c to label the sort_ign_field<num> buttons */
-/* Used in display.c to label the detail_label_<num> labels */
+/* Used in details.c to label the detail_label_<num> labels */
 typedef enum {
     T_ALL = 0,      /* all fields */
     T_ALBUM,
@@ -228,6 +237,11 @@
     T_SUBTITLE,
     T_TIME_RELEASED,
     T_CHECKED,      /* 35 */
+    T_STARTTIME,
+    T_STOPTIME,
+    T_REMEMBER_PLAYBACK_POSITION,
+    T_SKIP_WHEN_SHUFFLING,
+    T_THUMB_PATH,   /* 40 */
     T_ITEM_NUM,
 } T_item;
 
@@ -258,7 +272,6 @@
 void display_create (void);
 void display_cleanup (void);
 void display_adjust_menus (void);
-void display_disable_gtkpod_import_buttons(void);
 void display_show_hide_toolbar (void);
 void display_reset (gint inst);
 GList *display_get_selection (guint32 inst);
@@ -280,6 +293,10 @@
 void pm_track_changed (Track *track);
 void pm_sort (GtkSortType order);
 void pm_stop_editing (gboolean cancel);
+void pm_set_renderer_pix (GtkCellRenderer *renderer,
+			  Playlist *playlist);
+void pm_set_renderer_text (GtkCellRenderer *renderer,
+			   Playlist *playlist);
 
 void st_stop_editing (gint inst, gboolean cancel);
 void st_page_selected (GtkNotebook *notebook, guint page);
@@ -302,7 +319,6 @@
 void tm_add_track_to_track_model (Track *track, GtkTreeIter *into_iter);
 guint tm_get_nr_of_tracks(void);
 void tm_rows_reordered(void);
-void pm_rows_reordered(void);
 gboolean tm_add_filelist (gchar *data, GtkTreePath *path,
 			  GtkTreeViewDropPosition pos);
 void tm_stop_editing (gboolean cancel);
@@ -321,7 +337,6 @@
 void display_set_default_sizes (void);
 void display_show_hide_tooltips (void);
 void display_set_info_window_menu (void);
-void display_set_check_ipod_menu (void);
 void display_stop_update (gint inst);
 
 void spl_edit (Playlist *spl);

Modified: gtkpod/branches/upstream/current/src/display_itdb.c
===================================================================
--- gtkpod/branches/upstream/current/src/display_itdb.c	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/src/display_itdb.c	2006-09-30 00:00:17 UTC (rev 139)
@@ -1,4 +1,4 @@
-/* Time-stamp: <2005-12-11 17:54:30 jcs>
+/* Time-stamp: <2006-09-21 23:56:52 jcs>
 |
 |  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
 |  Part of the gtkpod project.
@@ -24,7 +24,7 @@
 |
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: display_itdb.c,v 1.40 2005/12/11 09:44:35 jcsjcs Exp $
+|  $Id: display_itdb.c,v 1.58 2006/09/21 15:03:13 jcsjcs Exp $
 */
 
 #ifdef HAVE_CONFIG_H
@@ -44,12 +44,21 @@
 #include "misc_track.h"
 #include "info.h"
 #include "prefs.h"
+#include "syncdir.h"
 
 
 /* A struct containing a list with available iTunesDBs. A pointer to
    this struct is stored in gtkpod_window as itdbs_head */
 static struct itdbs_head *itdbs_head = NULL;
 
+/* for convenience */
+struct itdbs_head *gp_get_itdbs_head (GtkWidget *gtkpod_win)
+{
+    g_return_val_if_fail (gtkpod_win, NULL);
+    return g_object_get_data (G_OBJECT (gtkpod_win),
+			      "itdbs_head");
+}
+
 void gp_itdb_extra_destroy (ExtraiTunesDBData *eitdb)
 {
     if (eitdb)
@@ -134,6 +143,17 @@
 }
 
 
+/* Free itdb and take care of dependencies */
+void gp_itdb_free (iTunesDB *itdb)
+{
+    if (space_get_ipod_itdb () == itdb)
+    {
+	space_set_ipod_itdb (NULL);
+    }
+    itdb_free (itdb);
+}
+
+
     /* Add and initialize ExtraiTunesDBData if missing */
 void gp_itdb_add_extra (iTunesDB *itdb)
 {
@@ -290,37 +310,78 @@
 }
 
 
-/* Set a thumbnail and store the filename in ExtraTrackData */
-gboolean gp_track_set_thumbnails (Track *track, const gchar *filename)
+/* Set a thumbnail and update ExtraTrackData (e.g. filename) */
+static gboolean gp_track_set_thumbnails_internal (Track *track,
+						  const gchar *filename,
+						  const guchar *image_data,
+						  gsize image_data_len)
 {
-    gboolean result;
+    gboolean result = FALSE;
     ExtraTrackData *etr;
 
     g_return_val_if_fail (track, FALSE);
-    g_return_val_if_fail (filename, FALSE);
 
     etr = track->userdata;
     g_return_val_if_fail (etr, FALSE);
 
-    result = itdb_track_set_thumbnails (track, filename);
-    if (result == TRUE)
+    if (filename)
     {
-	g_free (etr->thumb_path_locale);
-	g_free (etr->thumb_path_utf8);
+	result = itdb_track_set_thumbnails (track, filename);
+    }
+    else if (image_data)
+    {
+	result = itdb_track_set_thumbnails_from_data (track,
+						      image_data,
+						      image_data_len);
+    }
+
+    g_free (etr->thumb_path_locale);
+    g_free (etr->thumb_path_utf8);
+
+    if (filename && (result == TRUE))
+    {
 	etr->thumb_path_locale = g_strdup (filename);
 	etr->thumb_path_utf8 = charset_to_utf8 (filename);
     }
     else
     {
-	g_free (etr->thumb_path_locale);
-	g_free (etr->thumb_path_utf8);
 	etr->thumb_path_locale = g_strdup ("");
 	etr->thumb_path_utf8 = g_strdup ("");
-	gtkpod_warning (_("Failed to set cover art: '%s'"), filename);
     }
+
+    if (result == FALSE)
+    {
+	if (filename)
+	    gtkpod_warning (_("Failed to set cover art: '%s'\n"), filename);
+    }
+
     return result;
 }
 
+/* Set a thumbnail and update data in ExtraTrackData */
+gboolean gp_track_set_thumbnails_from_data (Track *track,
+					    const guchar *image_data,
+					    gsize image_data_len)
+{
+    g_return_val_if_fail (track, FALSE);
+    g_return_val_if_fail (image_data, FALSE);
+
+    return gp_track_set_thumbnails_internal (track, NULL,
+					     image_data, image_data_len);
+}
+
+
+/* Set a thumbnail and store the filename in ExtraTrackData */
+gboolean gp_track_set_thumbnails (Track *track, const gchar *filename)
+{
+    g_return_val_if_fail (track, FALSE);
+    g_return_val_if_fail (filename, FALSE);
+
+    return gp_track_set_thumbnails_internal (track, filename,
+					     NULL, 0);
+}
+
+
 /* Remove a thumbnail and remove the filename in ExtraTrackData */
 /* Return value:
    FALSE: track did not have any thumbnails, so no change was done
@@ -346,8 +407,7 @@
     return changed;
 }
 
-
-/* add itdb to itdbs */
+/* add itdb to itdbs (and add to display) */
 void gp_itdb_add (iTunesDB *itdb, gint pos)
 {
     ExtraiTunesDBData *eitdb;
@@ -362,25 +422,17 @@
     pm_add_itdb (itdb, pos);
 }
 
-/* return the podcast itdb */
-iTunesDB *gp_itdb_get_podcast ()
+/* Remove itdb to itdbs (and remove from display). Call
+ * itdb_free() to free the memory of the itdb. */
+void gp_itdb_remove (iTunesDB *itdb)
 {
-    GList *gl;
+    g_return_if_fail (itdbs_head);
+    g_return_if_fail (itdb);
 
-    g_return_val_if_fail (itdbs_head, NULL);
-
-    for (gl=itdbs_head->itdbs; gl; gl=gl->next)
-    {
-	iTunesDB *itdb = gl->data;
-	g_return_val_if_fail (itdb, NULL);
-
-	if (itdb->usertype & GP_ITDB_TYPE_PODCASTS)
-	    return itdb;
-    }
-    return NULL;
+    pm_remove_playlist (itdb_playlist_mpl (itdb), FALSE);
+    itdbs_head->itdbs = g_list_remove (itdbs_head->itdbs, itdb);
 }
 
-
 /* Also replaces @old_itdb in the itdbs GList and take care that the
  * displayed itdb gets replaced as well */
 void gp_replace_itdb (iTunesDB *old_itdb, iTunesDB *new_itdb)
@@ -431,7 +483,7 @@
     new_eitdb->itdbs_head = itdbs_head;
     old_link->data = new_itdb;
     /* free old_itdb */
-    itdb_free (old_itdb);
+    gp_itdb_free (old_itdb);
 
     /* display replacement */
     pm_add_itdb (new_itdb, pos);
@@ -442,11 +494,13 @@
 	Playlist *pl = itdb_playlist_by_name (new_itdb, old_pl_name);
 	if (pl) pm_select_playlist (pl);
     }
+
+    /* Set prefs system with name of MPL */
+    mpl = itdb_playlist_mpl (new_itdb);
+    set_itdb_prefs_string (new_itdb, "name", mpl->name);
 }    
 
 
-
-
 /* add playlist to itdb and to display */
 void gp_playlist_add (iTunesDB *itdb, Playlist *pl, gint32 pos)
 {
@@ -687,6 +741,8 @@
    playlist @pl. It then lets the display model know.
    @display: if TRUE, track is added the display.  Otherwise it's only
    added to memory */
+/* All tracks added to the podcast playlist will get the mark_unplayed
+   flag get set */
 void gp_playlist_add_track (Playlist *pl, Track *track, gboolean display)
 {
     iTunesDB *itdb;
@@ -696,7 +752,12 @@
     itdb = pl->itdb;
     g_return_if_fail (itdb);
 
-    pl->members = g_list_append (pl->members, track);
+    itdb_playlist_add_track (pl, track, -1);
+    if (itdb_playlist_is_podcasts (pl))
+    {   /* have the iPod display a bullet in front of the track as it
+	   has been newly added */
+	track->mark_unplayed = 0x02;
+    }
     if (display)  pm_add_track (pl, track, TRUE);
 
     data_changed (itdb);
@@ -750,7 +811,7 @@
 void init_data (GtkWidget *window)
 {
     gchar *cfgdir;
-    gint type;
+    gint i;
 
     g_return_if_fail (window);
     g_return_if_fail (itdbs_head == NULL);
@@ -761,289 +822,197 @@
 
     g_object_set_data (G_OBJECT (window), "itdbs_head", itdbs_head);
 
-    if (prefs_get_int_value ("itdb_0_type", &type))
-    {   /* databases have been set up previously -- use what is stored
-	 * in the prefs */
-	gint i;
-	for (i=0;;++i)
-	{
-	    gchar *property = g_strdup_printf ("itdb_%d_type", i);
-	    gboolean valid = prefs_get_int_value (property, &type);
-	    g_free (property);
-	    if (valid)
-	    {
-		iTunesDB *itdb = NULL;
-		Playlist *pl = NULL;
-		ExtraiTunesDBData *eitdb;
-		gchar *filename = NULL;
-		gchar *mountpoint = NULL;
-		gchar *offline_filename = NULL;
+    if (!prefs_get_int_value ("itdb_0_type", NULL))
+    {
+	/* databases have not been set up previously -- take care of
+	   this */
+	gchar *mountpoint, *filename;
 
-		if (type & GP_ITDB_TYPE_LOCAL)
-		{
-		    gchar *fn = g_strdup_printf ("itdb_%d_filename", i);
+	/* iPod database */
+	mountpoint = prefs_get_string ("initial_mountpoint");
+	filename = g_build_filename (cfgdir, "iTunesDB", NULL);
+	prefs_set_int ("itdb_0_type", GP_ITDB_TYPE_IPOD);
+	prefs_set_string ("itdb_0_name", _("iPod"));
+	prefs_set_string ("itdb_0_filename", filename);
+	prefs_set_string ("itdb_0_mountpoint", mountpoint);
+	g_free (mountpoint);
+	g_free (filename);
 
-		    filename = prefs_get_string (fn);
+	/* Local database */
+	filename = g_build_filename (cfgdir, "local_0.itdb", NULL);
+	prefs_set_int ("itdb_1_type", GP_ITDB_TYPE_LOCAL);
+	prefs_set_string ("itdb_1_name", _("Local"));
+	prefs_set_string ("itdb_1_filename", filename);
+	g_free (filename);
 
-		    if (!filename)
-		    {
-			gchar *local = g_strdup_printf ("local%d.itdb",i);
-			filename = g_build_filename (cfgdir, local, NULL);
-			g_free (local);
-		    }
-		    g_free (fn);
-		    if (g_file_test (filename, G_FILE_TEST_EXISTS))
-			itdb = gp_import_itdb (NULL, type,
-					       NULL, NULL, filename);
-		}
-		else if (type & GP_ITDB_TYPE_IPOD)
-		{
-		    gchar *mp = g_strdup_printf ("itdb_%d_mountpoint", i);
-		    gchar *fn = g_strdup_printf ("itdb_%d_filename", i);
-		    
+	/* Podcasts database */
+	filename = g_build_filename (cfgdir, "podcasts.itdb", NULL);
+	prefs_set_int ("itdb_2_type",
+		       GP_ITDB_TYPE_PODCASTS|GP_ITDB_TYPE_LOCAL);
+	prefs_set_string ("itdb_2_name", _("Podcasts"));
+	prefs_set_string ("itdb_2_filename", filename);
+	g_free (filename);
+    }
 
-		    offline_filename = prefs_get_string (fn);
-		    mountpoint = prefs_get_string (mp);
 
-		    if (!offline_filename)
-		    {
-			gchar *local = g_strdup_printf ("gtkpod_%d.itdb",i);
-			offline_filename = g_build_filename (
-			    cfgdir, local, NULL);
-			g_free (local);
-		    }
-		    if (!mountpoint)
-			mountpoint = g_strdup (prefs_get_ipod_mount ());
-		    g_free (fn);
-		    g_free (mp);
-		}
-		else
-		{
-		    g_return_if_reached ();
-		}
+    for (i=0;;++i)
+    {
+	ExtraiTunesDBData *eitdb;
+	iTunesDB *itdb = setup_itdb_n (i);
 
+	if (itdb == NULL)
+	    break;
 
-		if (!itdb)
-		{
-		    gchar *nm, *name;
+	/* add to the display */
+	gp_itdb_add (itdb, -1);
 
-		    itdb = gp_itdb_new ();
-		    eitdb = itdb->userdata;
-		    g_return_if_fail (eitdb);
-		    itdb->usertype = type;
-		    itdb->filename = filename;
-		    itdb_set_mountpoint (itdb, mountpoint);
-		    g_free (mountpoint);
-		    eitdb->offline_filename = offline_filename;
-
-		    nm = g_strdup_printf ("itdb_%d_name", i);
-		    if (!prefs_get_string_value (nm, &name))
-		    {
-			if (type & GP_ITDB_TYPE_PODCASTS)
-			    name = g_strdup (_("Podcasts"));
-			else if (type & GP_ITDB_TYPE_LOCAL)
-			    name = g_strdup (_("Local"));
-			else
-			    name = g_strdup ("iPod");
-		    }
-		    pl = gp_playlist_new (name, FALSE);
-		    g_free (name);
-		    g_free (nm);
-		    itdb_playlist_set_mpl (pl);
-		    itdb_playlist_add (itdb, pl, -1);
-
-		    eitdb->data_changed = FALSE;
-		    eitdb->itdb_imported = FALSE;
-		}
-		else
-		{
-		    g_free (filename);
-		    g_free (mountpoint);
-		    g_free (offline_filename);
-		}
-
-		/* Check if Podcast Playlist is present on IPOD itdb
-		 * and add if not. If Podcast Playlist is present on
-		 * local itdb remove it. */
-		pl = itdb_playlist_podcasts (itdb);
-		if ((type & GP_ITDB_TYPE_IPOD) && !pl)
-		{   /* add podcast playlist */
-		    pl = gp_playlist_new (_("Podcasts"), FALSE);
-		    itdb_playlist_set_podcasts (pl);
-		    itdb_playlist_add (itdb, pl, -1);
-		    eitdb = itdb->userdata;
-		    g_return_if_fail (eitdb);
-		    eitdb->data_changed = FALSE;
-		}
-		if ((type & GP_ITDB_TYPE_LOCAL) && pl)
-		{   /* Remove podcast playlist. Normally no playlist
-		     * should be present, except for a few people who
-		     * used the CVS version between September and
-		     * October 2005. */
-		    if (itdb_playlist_tracks_number (pl) == 0)
-		    {
-			gp_playlist_remove (pl);
-		    }
-		    else
-		    {   /* OK, let's be nice and just drop the
-			   'podcast' flag instead of removing */
-			pl->podcastflag = 0;
-		    }
-		}
-		/* add to the display */
-		gp_itdb_add (itdb, -1);
-	    }
-	    else
-	    {
-		break; /* for (i=0;;++i) */
-	    }
-	}
-    }
-    else
-    {   /* first run -- set up a local database and an iPod database */
-	iTunesDB *itdb;
-	ExtraiTunesDBData *eitdb;
-	gchar *fn;
-	Playlist *pl;
-
-	/* iPod database */
-	itdb = gp_itdb_new ();
+	/* update/sync playlists according to options set */
 	eitdb = itdb->userdata;
 	g_return_if_fail (eitdb);
-	itdb->usertype = GP_ITDB_TYPE_IPOD;
-	itdb_set_mountpoint (itdb, prefs_get_ipod_mount ());
-	eitdb->offline_filename = g_build_filename (
-	    cfgdir, "iTunesDB", NULL);
-	gp_itdb_add (itdb, -1);
-	pl = gp_playlist_new ("iPod", FALSE);
-	itdb_playlist_set_mpl (pl);   /* MPL! */
-	gp_playlist_add (itdb, pl, -1);
-	g_return_if_fail (itdb->userdata);
-	eitdb->data_changed = FALSE;
-
-	/* local database. First check if a database file already
-	   exists -- if yes load it */
-	itdb = NULL;
-	fn = g_build_filename (cfgdir, "local_0.itdb", NULL);
-	if (g_file_test (fn, G_FILE_TEST_EXISTS))
+	if (eitdb->itdb_imported)
 	{
-	    itdb = gp_import_itdb (NULL, GP_ITDB_TYPE_LOCAL,
-				   NULL, NULL, fn);
-	}
+	    /* take care of autosync... */
+	    sync_all_playlists (itdb);
 
-	if (!itdb)
-	{   /* local database does not exist or cannot be loaded */
-	    itdb = gp_itdb_new ();
-	    eitdb = itdb->userdata;
-	    g_return_if_fail (eitdb);
-	    itdb->usertype = GP_ITDB_TYPE_LOCAL;
-	    itdb->filename = g_strdup (fn);
-	    pl = gp_playlist_new (_("Local"), FALSE);
-	    itdb_playlist_set_mpl (pl);   /* MPL! */
-	    itdb_playlist_add (itdb, pl, -1);
+	    /* update all live SPLs */
+	    itdb_spl_update_live (itdb);
 	}
-
-	gp_itdb_add (itdb, -1);
-	g_free (fn);
     }
 
-    /* Add poscast itdb if not present */
-    if (!gp_itdb_get_podcast ())
-    {
-	iTunesDB *itdb;
-	ExtraiTunesDBData *eitdb;
-	gchar *fn;
-	Playlist *pl;
-
-	/*First check if a database file already exists -- if yes load
-	   it */
-	itdb = NULL;
-	fn = g_build_filename (cfgdir, "podcasts.itdb", NULL);
-	if (g_file_test (fn, G_FILE_TEST_EXISTS))
-	{
-	    itdb = gp_import_itdb (NULL, GP_ITDB_TYPE_PODCASTS|GP_ITDB_TYPE_LOCAL,
-				   NULL, NULL, fn);
-	}
-
-	if (!itdb)
-	{   /* local database does not exist or cannot be loaded */
-	    itdb = gp_itdb_new ();
-	    eitdb = itdb->userdata;
-	    g_return_if_fail (eitdb);
-	    itdb->usertype = GP_ITDB_TYPE_PODCASTS|GP_ITDB_TYPE_LOCAL;
-	    itdb->filename = g_strdup (fn);
-	    pl = gp_playlist_new (_("Podcasts"), FALSE);
-	    itdb_playlist_set_mpl (pl);   /* MPL! */
-	    itdb_playlist_add (itdb, pl, -1);
-	}
-
-	gp_itdb_add (itdb, -1);
-	g_free (fn);
-    }
-
-    /* set md5 */
-    prefs_set_md5tracks (prefs_get_md5tracks ());
-
-    /* update prefs with new information in case it's needed */
-    gp_update_itdb_prefs ();
-
     g_free (cfgdir);
 }
 
 
-/* Update the information about the itdbs in the prefs structure */
-void gp_update_itdb_prefs (void)
+
+/* Create an repository according to the settings in the preferences
+   system. */
+iTunesDB *setup_itdb_n (gint i)
 {
-    struct itdbs_head *itdbs_head;
-    GList *gl;
-    gint i=0;
-
-    g_return_if_fail (gtkpod_window);
-    itdbs_head = g_object_get_data (G_OBJECT (gtkpod_window),
-				    "itdbs_head");
-    g_return_if_fail (itdbs_head);
-    for (gl=itdbs_head->itdbs; gl; gl=gl->next)
+    iTunesDB *itdb = NULL;
+    gchar *property = get_itdb_prefs_key (i, "type");
+    gint type;
+    gboolean valid = prefs_get_int_value (property, &type);
+    g_free (property);
+    if (valid)
     {
-	gchar *prop, *prop2;
-	Playlist *mpl;
+	gchar *cfgdir = prefs_get_cfgdir ();
+	Playlist *pl = NULL;
 	ExtraiTunesDBData *eitdb;
-	iTunesDB *itdb = gl->data;
+	gchar *filename = NULL;
+	gchar *mountpoint = NULL;
+	gchar *offline_filename = NULL;
 
-	g_return_if_fail (itdb);
-	eitdb = itdb->userdata;
-	g_return_if_fail (eitdb);
+	if (type & GP_ITDB_TYPE_LOCAL)
+	{
+	    gchar *fn = get_itdb_prefs_key (i, "filename");
 
-	prop = g_strdup_printf ("itdb_%d_type", i);
-	prefs_set_int_value (prop, itdb->usertype);
-	g_free (prop);
+	    filename = prefs_get_string (fn);
 
-	mpl = itdb_playlist_mpl (itdb);
-	g_return_if_fail (mpl);
-	prop = g_strdup_printf ("itdb_%d_name", i);
-	prefs_set_string_value (prop, mpl->name);
-	g_free (prop);
+	    if (!filename)
+	    {
+		gchar *local = g_strdup_printf ("local%d.itdb",i);
+		filename = g_build_filename (cfgdir, local, NULL);
+		g_free (local);
+	    }
+	    g_free (fn);
+	    if (g_file_test (filename, G_FILE_TEST_EXISTS))
+		itdb = gp_import_itdb (NULL, type,
+				       NULL, NULL, filename);
+	}
+	else if (type & GP_ITDB_TYPE_IPOD)
+	{
+	    gchar *key;
 
-	prop = g_strdup_printf ("itdb_%d_filename", i);
-	prop2 = g_strdup_printf ("itdb_%d_mountpoint", i);
-	if (itdb->usertype & GP_ITDB_TYPE_LOCAL)
+	    key = get_itdb_prefs_key (i, KEY_MOUNTPOINT);
+	    mountpoint = prefs_get_string (key);
+	    g_free (key);
+
+	    key = get_itdb_prefs_key (i, "filename");
+	    offline_filename = prefs_get_string (key);
+	    g_free (key);
+
+	    if (!offline_filename)
+	    {
+		gchar *local = g_strdup_printf ("gtkpod_%d.itdb",i);
+		offline_filename = g_build_filename (
+		    cfgdir, local, NULL);
+		g_free (local);
+	    }
+	}
+	else
 	{
-	    prefs_set_string_value (prop, itdb->filename);
-	    prefs_set_string_value (prop2, NULL);
+	    g_return_val_if_reached (NULL);
 	}
-	else if (itdb->usertype & GP_ITDB_TYPE_IPOD)
+
+	if (!itdb)
 	{
-	    prefs_set_string_value (prop, eitdb->offline_filename);
-	    prefs_set_string_value (prop2, itdb->mountpoint);
+	    gchar *nm, *name;
+
+	    itdb = gp_itdb_new ();
+	    eitdb = itdb->userdata;
+	    g_return_val_if_fail (eitdb, NULL);
+	    itdb->usertype = type;
+	    itdb->filename = filename;
+	    itdb_set_mountpoint (itdb, mountpoint);
+	    eitdb->offline_filename = offline_filename;
+
+	    nm = g_strdup_printf ("itdb_%d_name", i);
+	    if (!prefs_get_string_value (nm, &name))
+	    {
+		if (type & GP_ITDB_TYPE_PODCASTS)
+		    name = g_strdup (_("Podcasts"));
+		else if (type & GP_ITDB_TYPE_LOCAL)
+		    name = g_strdup (_("Local"));
+		else
+		    name = g_strdup (_("iPod"));
+	    }
+	    pl = gp_playlist_new (name, FALSE);
+	    g_free (name);
+	    g_free (nm);
+	    itdb_playlist_set_mpl (pl);
+	    itdb_playlist_add (itdb, pl, -1);
+
+	    eitdb->data_changed = FALSE;
+	    eitdb->itdb_imported = FALSE;
 	}
 	else
 	{
-	    g_return_if_reached ();
+	    g_free (filename);
+	    g_free (offline_filename);
 	}
-	g_free (prop);
-	g_free (prop2);
+	g_free (mountpoint);
 
-	++i;
+	/* Check if Podcast Playlist is present on IPOD itdb
+	 * and add if not. If Podcast Playlist is present on
+	 * local itdb remove it. */
+	pl = itdb_playlist_podcasts (itdb);
+	if ((type & GP_ITDB_TYPE_IPOD) && !pl)
+	{   /* add podcast playlist */
+	    pl = gp_playlist_new (_("Podcasts"), FALSE);
+	    itdb_playlist_set_podcasts (pl);
+	    itdb_playlist_add (itdb, pl, -1);
+	    eitdb = itdb->userdata;
+	    g_return_val_if_fail (eitdb, NULL);
+	    eitdb->data_changed = FALSE;
+	}
+	if ((type & GP_ITDB_TYPE_LOCAL) && pl)
+	{   /* Remove podcast playlist. Normally no playlist
+	     * should be present, except for a few people who
+	     * used the CVS version between September and
+	     * October 2005. */
+	    if (itdb_playlist_tracks_number (pl) == 0)
+	    {
+		gp_playlist_remove (pl);
+	    }
+	    else
+	    {   /* OK, let's be nice and just drop the
+		   'podcast' flag instead of removing */
+		pl->podcastflag = 0;
+	    }
+	}
+	g_free (cfgdir);
     }
+    return itdb;
 }
 
 
@@ -1073,14 +1042,13 @@
 	if (!track)	  track = gp_track_by_filename (itdb, file);
 	if (track)
 	{
-	    gchar *buf1, *buf;
+	    gchar *buf1;
 	    track->playcount += num;
 	    data_changed (itdb);
 	    pm_track_changed (track);
 	    buf1 = get_track_info (track, TRUE);
-	    buf = g_strdup_printf (_("Increased playcount for '%s'"), buf1);
-	    gtkpod_statusbar_message (buf);
-	    g_free (buf);
+	    gtkpod_statusbar_message (_("Increased playcount for '%s'"),
+				      buf1);
 	    g_free (buf1);
 	    if (itdb->usertype & GP_ITDB_TYPE_IPOD)    result = TRUE;
 	}
@@ -1089,12 +1057,11 @@
 }
 
 
-/* determine "active" itdb -- it's either the itdb of the playlist
- * currently selected, or the first itdb if none is selected */
-iTunesDB *gp_get_active_itdb (void)
+/* get the currently selected itdb. NULL is
+ * returned if no itdb is active. */
+iTunesDB *gp_get_selected_itdb (void)
 {
     Playlist *pl = pm_get_selected_playlist ();
-    struct itdbs_head *itdbs_head;
 
     /* If playlist is selected, use the itdb of the playlist as the
        active itdb */
@@ -1104,34 +1071,69 @@
 	return pl->itdb;
     }
 
-    /* Otherwise choose the first itdb */
-    g_return_val_if_fail (gtkpod_window, NULL);
-    itdbs_head = g_object_get_data (G_OBJECT (gtkpod_window),
-				    "itdbs_head");
-    g_return_val_if_fail (itdbs_head, NULL);
-    g_return_val_if_fail (itdbs_head->itdbs, NULL);
-    g_return_val_if_fail (itdbs_head->itdbs->data, NULL);
-    return itdbs_head->itdbs->data;
+    return NULL;
 }
 
 
-/* get the "ipod" itdb, that's the first itdb with
-   type==GP_ITDB_TYPE_IPOD. Returns NULL and prints error when no
-   matching itdb can be found */
+/* Get the "ipod" itdb. If only one iPod itdb exists, this itdb is
+ * returned. If more than one iPod itdb exists, the currently selected
+ * itdb is returned if it's an iPod itdb, otherwise NULL is returned.
+ */
 iTunesDB *gp_get_ipod_itdb (void)
 {
     struct itdbs_head *itdbs_head;
+    iTunesDB *itdb;
     GList *gl;
+    gint i;
 
+    /* if an iPod itdb is selected, return this */
+    itdb = gp_get_selected_itdb ();
+    if (itdb && (itdb->usertype & GP_ITDB_TYPE_IPOD))
+	return itdb;
+
+    itdb = NULL;
+
     g_return_val_if_fail (gtkpod_window, NULL);
     itdbs_head = g_object_get_data (G_OBJECT (gtkpod_window),
 				    "itdbs_head");
+
+    if (itdbs_head == NULL) return NULL;
+
+    i=0;
+    for (gl=itdbs_head->itdbs; gl; gl=gl->next)
+    {
+	iTunesDB *itdbgl = gl->data;
+	g_return_val_if_fail (itdbgl, NULL);
+	if (itdbgl->usertype & GP_ITDB_TYPE_IPOD)
+	{
+	    itdb = itdbgl;
+	    ++i;
+	}
+    }
+    /* return iPod itdb if only one was found */
+    if (i == 1)
+	return itdb;
+
+    return NULL;
+}
+
+
+/* return the podcast itdb */
+iTunesDB *gp_get_podcast_itdb ()
+{
+    GList *gl;
+
     g_return_val_if_fail (itdbs_head, NULL);
+
     for (gl=itdbs_head->itdbs; gl; gl=gl->next)
     {
 	iTunesDB *itdb = gl->data;
 	g_return_val_if_fail (itdb, NULL);
-	if (itdb->usertype & GP_ITDB_TYPE_IPOD)  return itdb;
+
+	if (itdb->usertype & GP_ITDB_TYPE_PODCASTS)
+	    return itdb;
     }
-    g_return_val_if_reached (NULL);
+    return NULL;
 }
+
+

Modified: gtkpod/branches/upstream/current/src/display_itdb.h
===================================================================
--- gtkpod/branches/upstream/current/src/display_itdb.h	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/src/display_itdb.h	2006-09-30 00:00:17 UTC (rev 139)
@@ -1,4 +1,4 @@
-/* Time-stamp: <2005-12-06 01:22:11 jcs>
+/* Time-stamp: <2006-09-18 15:27:12 jcs>
 |
 |  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
 |  Part of the gtkpod project.
@@ -24,7 +24,7 @@
 | 
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: display_itdb.h,v 1.24 2005/12/05 16:35:17 jcsjcs Exp $
+|  $Id: display_itdb.h,v 1.35 2006/09/18 07:10:44 jcsjcs Exp $
 */
 
 #ifndef __DISPLAY_ITDB_H__
@@ -50,8 +50,10 @@
 				      media                            */
     gchar *offline_filename;       /* filename for offline database
 				      (only for GP_ITDP_TYPE_IPOD)     */
+    gboolean offline;              /* offline mode?                    */
     gboolean data_changed;         /* data changed since import?       */
     gboolean itdb_imported;        /* has in iTunesDB been imported?   */
+    gboolean ipod_ejected;         /* if iPod was ejected              */
 } ExtraiTunesDBData;
 
 typedef struct
@@ -63,22 +65,15 @@
 {
   gint32  oldsize;        /* used when updating tracks: size on iPod */
   gchar   *year_str;      /* year as string -- always identical to year */
-  guint32 peak_signal;	  /* LAME Peak Signal * 0x800000             */
-  gdouble radio_gain;	  /* RadioGain in dB
-			     (as defined by www.replaygain.org)      */
-  gdouble audiophile_gain;/* AudiophileGain in dB 
-			     (as defined by www.replaygain.org)      */
-  gboolean peak_signal_set;    /* has the peak signal been set?      */
-  gboolean radio_gain_set;     /* has the radio gain been set?       */
-  gboolean audiophile_gain_set;/* has the audiophile gain been set?  */
   gchar   *pc_path_locale;/* path on PC (local encoding)             */
   gchar   *pc_path_utf8;  /* PC filename in utf8 encoding            */
+  time_t  mtime;          /* modification date of PC file            */
   gchar   *thumb_path_locale; /* same for thumbnail                  */
   gchar   *thumb_path_utf8;   /* same for thumbnail                  */
   gchar   *hostname;      /* name of host this file has been imported on*/
   gchar   *md5_hash;      /* md5 hash of file (or NULL)              */
   gchar   *charset;       /* charset used for ID3 tags               */
-  gint32 sortindex;       /* used for stable sorting (current order) */
+  gint32  sortindex;      /* used for stable sorting (current order) */
   gboolean tchanged;      /* temporary use, e.g. in detail.c         */
 } ExtraTrackData;
 
@@ -107,18 +102,22 @@
 {
     iTunesDB *itdb;
     Playlist *pl;
-    GList *selected_tracks;
+    GList *tracks;
     DeleteAction deleteaction;
 };
 
 void init_data (GtkWidget *window);
+iTunesDB *setup_itdb_n (gint i);
 
+struct itdbs_head *gp_get_itdbs_head (GtkWidget *gtkpod_win);
+
 iTunesDB *gp_itdb_new (void);
 void gp_itdb_add (iTunesDB *itdb, gint pos);
+void gp_itdb_remove (iTunesDB *itdb);
+void gp_itdb_free (iTunesDB *itdb);
 void gp_replace_itdb (iTunesDB *old_itdb, iTunesDB *new_itdb);
 void gp_itdb_add_extra (iTunesDB *itdb);
 void gp_itdb_add_extra_full (iTunesDB *itdb);
-iTunesDB *gp_itdb_get_podcast (void);
 
 Track *gp_track_new (void);
 #define gp_track_free itdb_track_free
@@ -128,6 +127,9 @@
 void gp_track_add_extra (Track *track);
 void gp_track_validate_entries (Track *track);
 gboolean gp_track_set_thumbnails (Track *track, const gchar *filename);
+gboolean gp_track_set_thumbnails_from_data (Track *track,
+					    const guchar *image_data,
+					    gsize image_data_len);
 gboolean gp_track_remove_thumbnails (Track *track);
 
 Playlist *gp_playlist_new (const gchar *title, gboolean spl);
@@ -145,7 +147,7 @@
 void gp_playlist_add_extra (Playlist *pl);
 
 gboolean gp_increase_playcount (gchar *md5, gchar *file, gint num);
-iTunesDB *gp_get_active_itdb (void);
+iTunesDB *gp_get_selected_itdb (void);
 iTunesDB *gp_get_ipod_itdb (void);
-void gp_update_itdb_prefs (void);
+iTunesDB *gp_get_podcast_itdb (void);
 #endif

Modified: gtkpod/branches/upstream/current/src/display_playlists.c
===================================================================
--- gtkpod/branches/upstream/current/src/display_playlists.c	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/src/display_playlists.c	2006-09-30 00:00:17 UTC (rev 139)
@@ -1,4 +1,4 @@
-/* Time-stamp: <2005-12-10 14:43:34 jcs>
+/* Time-stamp: <2006-06-28 01:25:27 jcs>
 |
 |  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
 |  Part of the gtkpod project.
@@ -24,7 +24,7 @@
 | 
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: display_playlists.c,v 1.71 2005/12/10 08:21:59 jcsjcs Exp $
+|  $Id: display_playlists.c,v 1.92 2006/06/27 16:29:43 jcsjcs Exp $
 */
 
 #ifdef HAVE_CONFIG_H
@@ -66,12 +66,10 @@
 };
 
 
-/* SEMIBOLD was introduced with version 1.8 */
-#ifndef PANGO_WEIGHT_SEMIBOLD
-#define PANGO_WEIGHT_SEMIBOLD 600
-#endif
+void pm_rows_reordered (void);
 
 
+
 /* ---------------------------------------------------------------- */
 /* Section for playlist display                                     */
 /* drag and drop                                                    */
@@ -306,7 +304,7 @@
 	Track *track = gl->data;
 
 	g_return_if_fail (track);
-	name = get_file_name_verified (track);
+	name = get_file_name_from_source (track, SOURCE_PREFER_LOCAL);
 	if (name)
 	{
 	    g_string_append_printf (filelist, "file:%s\n", name);
@@ -341,7 +339,7 @@
 	Track *track = gl->data;
 
 	g_return_if_fail (track);
-	name = get_file_name_verified (track);
+	name = get_file_name_from_source (track, SOURCE_PREFER_LOCAL);
 	if (name)
 	{
 	    gchar *uri = g_filename_to_uri (name, NULL, NULL);
@@ -491,7 +489,7 @@
     else
     {   /* DND between different itdbs */
 	/* Do not allow drags from the iPod in offline mode */
-	if (prefs_get_offline () &&
+	if (get_offline (src->itdb) &&
 	    (src->itdb->usertype & GP_ITDB_TYPE_IPOD))
 	{   /* give a notice on the statusbar -- otherwise the user
 	     * will never know why the drag is not possible */
@@ -533,7 +531,7 @@
     else
     {   /* drag between different itdbs */
 	/* Do not allow drags from the iPod in offline mode */
-	if (prefs_get_offline () &&
+	if (get_offline (src->itdb) &&
 	    (src->itdb->usertype & GP_ITDB_TYPE_IPOD))
 	{   /* give a notice on the statusbar -- otherwise the user
 	     * will never know why the drag is not possible */
@@ -553,7 +551,7 @@
     g_return_if_fail (tracks);
     if (!moved)
     {
-	gchar *buf, *ptr = tracks;
+	gchar *ptr = tracks;
 	gint n = 0;
 
 	/* count the number of tracks */
@@ -562,13 +560,10 @@
 	    ++n;
 	    ++ptr;
 	}
-	/* create message */
-	buf = g_strdup_printf (
+	/* display message in statusbar */
+	gtkpod_statusbar_message (
 	    ngettext ("Copied one track",
 		      "Copied %d tracks", n), n);
-	/* display message in statusbar */
-	gtkpod_statusbar_message (buf);
-	g_free (buf);
     }
 }
 
@@ -851,7 +846,7 @@
 		gtk_drag_finish (dc, TRUE, FALSE, time);
 		break;
 	    case GDK_ACTION_MOVE:
-		if (prefs_get_pm_sort () != SORT_NONE)
+		if (prefs_get_int("pm_sort") != SORT_NONE)
 		{
 		    gtkpod_statusbar_message (_("Can't reorder sorted treeview."));
 		    gtk_drag_finish (dc, FALSE, FALSE, time);
@@ -888,6 +883,7 @@
 		gtk_drag_finish (dc, FALSE, FALSE, time);
 		g_return_if_reached ();
 	    }
+	    pm_rows_reordered ();
 	    return;
 	}
 	else
@@ -942,6 +938,7 @@
 	    }
 
 	}
+	pm_rows_reordered ();
 	break;
     default:
 	gtkpod_warning (_("This DND type (%d) is not (yet) supported. If you feel implementing this would be useful, please contact the author.\n\n"), info);
@@ -968,14 +965,22 @@
 
     if(!widgets_blocked && (mods & GDK_CONTROL_MASK))
     {
+	iTunesDB *itdb = gp_get_selected_itdb();
+
 	switch(event->keyval)
 	{
 /* 	    case GDK_u: */
 /* 		gp_do_selected_playlist (update_tracks); */
 /* 		break; */
 	    case GDK_n:
-		add_new_pl_or_spl_user_name (gp_get_active_itdb(),
-					     NULL, -1);
+		if (itdb)
+		{
+		    add_new_pl_or_spl_user_name (itdb, NULL, -1);
+		}
+		else
+		{
+		    message_sb_no_itdb_selected ();
+		}
 		break;
 	    default:
 		break;
@@ -1025,11 +1030,11 @@
 /* Used by pm_name_changed() to find the playlist that
    changed name. If found, emit a "row changed" signal to display the change */
 static gboolean sr_model_playlist_name_changed (GtkTreeModel *model,
-					GtkTreePath *path,
-					GtkTreeIter *iter,
-					gpointer data)
+						GtkTreePath *path,
+						GtkTreeIter *iter,
+						gpointer data)
 {
-  Playlist *playlist;
+  Playlist *playlist=NULL;
 
   gtk_tree_model_get (model, iter, PM_COLUMN_PLAYLIST, &playlist, -1);
   if(playlist == (Playlist *)data) {
@@ -1131,7 +1136,7 @@
       /* If it's the first playlist (no playlist selected AND playlist is
 	 the MPL, we select it, unless prefs_get_mpl_autoselect() says
 	 otherwise */
-      if (itdb_playlist_is_mpl(playlist) && prefs_get_mpl_autoselect())
+      if (itdb_playlist_is_mpl(playlist) && prefs_get_int("mpl_autoselect"))
       {
 	  selection = gtk_tree_view_get_selection (playlist_treeview);
 	  gtk_tree_selection_select_iter (selection, &iter);
@@ -1140,18 +1145,14 @@
 }
 
 
-/* Remove "playlist" from the display model. 
-   "select": TRUE: a new playlist is selected
-             FALSE: no selection is taking place
-                    (useful when quitting program) */
-void pm_remove_playlist (Playlist *playlist, gboolean select)
-{
-    gboolean pm_delete_playlist_fe (GtkTreeModel *model,
-				    GtkTreePath *path,
-				    GtkTreeIter *iter,
-				    gpointer data)
+
+    /* former inline function: used by pm_remove_playlist() */
+    static gboolean pm_delete_playlist_fe (GtkTreeModel *model,
+					   GtkTreePath *path,
+					   GtkTreeIter *iter,
+					   gpointer data)
 	{
-	    Playlist *playlist;
+	    Playlist *playlist=NULL;
 	    
 	    gtk_tree_model_get (model, iter, PM_COLUMN_PLAYLIST, &playlist, -1);
 	    if(playlist == (Playlist *)data) {
@@ -1160,6 +1161,13 @@
 	    }
 	    return FALSE;
 	}
+
+/* Remove "playlist" from the display model. 
+   "select": TRUE: a new playlist is selected
+             FALSE: no selection is taking place
+                    (useful when quitting program) */
+void pm_remove_playlist (Playlist *playlist, gboolean select)
+{
     GtkTreeModel *model;
     gboolean have_iter = FALSE;
     GtkTreeIter i;
@@ -1168,11 +1176,21 @@
   g_return_if_fail (playlist);
   model = gtk_tree_view_get_model (playlist_treeview);
   g_return_if_fail (model);
-  
+
   ts = gtk_tree_view_get_selection (playlist_treeview);
+
+  if (itdb_playlist_is_mpl (playlist) && current_playlist &&
+      (playlist->itdb == current_playlist->itdb))
+  {   /* We are about to remove the entire itdb (playlist is MPL) and
+       * a playlist of this itdb is selected --> clear display
+       * (pm_unselect_playlist probably works as well, but the
+       * unselect won't be done until later (callback)) */
+      st_init (-1, 0);
+      current_playlist = NULL;
+  }
+
   if (select && (current_playlist == playlist))
-  {
-      /* We are about to delete the currently selected
+  {   /* We are about to delete the currently selected
 	 playlist. Try to select the next. */
       if (gtk_tree_selection_get_selected (ts, NULL, &i))
       {
@@ -1192,6 +1210,7 @@
 	  gtk_tree_path_free (path);
       }
   }
+
   /* find the pl and delete it */
   gtk_tree_model_foreach (model, pm_delete_playlist_fe, playlist);
   /* select our new iter !!! */
@@ -1230,16 +1249,13 @@
 }
 
 
-
-/* Select specified playlist */
-void pm_select_playlist (Playlist *playlist)
-{
-    gboolean pm_select_playlist_fe (GtkTreeModel *model,
-				    GtkTreePath *path,
-				    GtkTreeIter *iter,
-				    gpointer data)
+    /* former inline function: used by pm_select_playlist */
+    static gboolean pm_select_playlist_fe (GtkTreeModel *model,
+					   GtkTreePath *path,
+					   GtkTreeIter *iter,
+					   gpointer data)
 	{
-	    Playlist *playlist;
+	    Playlist *playlist=NULL;
 
 	    gtk_tree_model_get (model, iter,
 				PM_COLUMN_PLAYLIST, &playlist, -1);
@@ -1252,6 +1268,10 @@
 	    }
 	    return FALSE;
 	}
+
+/* Select specified playlist */
+void pm_select_playlist (Playlist *playlist)
+{
     GtkTreeModel *model;
 
     g_return_if_fail (playlist_treeview);
@@ -1265,15 +1285,13 @@
 }
 
 
-/* Unselect specified playlist */
-void pm_unselect_playlist (Playlist *playlist)
-{
-    gboolean pm_unselect_playlist_fe (GtkTreeModel *model,
-				      GtkTreePath *path,
-				      GtkTreeIter *iter,
-				      gpointer data)
+    /* former inline function: used by pm_unselect_playlist */
+    static gboolean pm_unselect_playlist_fe (GtkTreeModel *model,
+					     GtkTreePath *path,
+					     GtkTreeIter *iter,
+					     gpointer data)
 	{
-	    Playlist *playlist;
+	    Playlist *playlist=NULL;
 
 	    gtk_tree_model_get (model, iter,
 				PM_COLUMN_PLAYLIST, &playlist, -1);
@@ -1286,6 +1304,10 @@
 	    }
 	    return FALSE;
 	}
+
+/* Unselect specified playlist */
+void pm_unselect_playlist (Playlist *playlist)
+{
     GtkTreeModel *model;
 
     g_return_if_fail (playlist_treeview);
@@ -1323,6 +1345,17 @@
       gtk_tree_model_get (model, &iter, 
 			  PM_COLUMN_PLAYLIST, &new_playlist,
 			  -1);
+
+      /* If new playlist is in an iPod itdb, set the mountpoint for
+       * the free space display to this iPod (there may be several
+       * iPods connected */
+      g_return_if_fail (new_playlist);
+      g_return_if_fail (new_playlist->itdb);
+      if (new_playlist->itdb->usertype & GP_ITDB_TYPE_IPOD)
+      {
+	  space_set_ipod_itdb (new_playlist->itdb);
+      }
+
       /* remove all entries from sort tab 0 */
       /* printf ("removing entries: %x\n", current_playlist);*/
       st_init (-1, 0);
@@ -1338,7 +1371,7 @@
 	  float ms;
 	  GList *gl;
 
-	  if (!prefs_get_block_display ())
+	  if (!prefs_get_int("block_display"))
 	  {
 	      block_selection (-1);
 	      g_get_current_time (&time);
@@ -1350,7 +1383,7 @@
 	      if (stop_add == -1)  break;
 	      st_add_track (track, FALSE, TRUE, 0);
 	      --count;
-	      if ((count < 0) && !prefs_get_block_display ())
+	      if ((count < 0) && !prefs_get_int("block_display"))
 	      {
 		  gtkpod_tracks_statusbar_update();
 		  while (gtk_events_pending ())       gtk_main_iteration ();
@@ -1368,7 +1401,7 @@
 	  }
 	  st_enable_disable_view_sort (0, TRUE);
 	  if (stop_add != -1) st_add_track (NULL, TRUE, TRUE, 0);
-	  if (!prefs_get_block_display ())
+	  if (!prefs_get_int("block_display"))
 	  {
 	      while (gtk_events_pending ())	      gtk_main_iteration ();
 	      release_selection (-1);
@@ -1542,7 +1575,7 @@
 void pm_sort (GtkSortType order)
 {
     GtkTreeModel *model= gtk_tree_view_get_model (playlist_treeview);
-    g_return_if_fail (playlist_treeview);
+    g_return_if_fail (model);
     if (order != SORT_NONE)
     {
 	gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (model),
@@ -1558,6 +1591,9 @@
     }
 }
 
+
+#if 0
+FIXME: see comments at pm_data_compare_func()
 /**
  * pm_track_column_button_clicked
  * @tvc - the tree view colum that was clicked
@@ -1572,18 +1608,18 @@
     gint cnt = pm_sort_counter (1);
     if (cnt >= 3)
     {
-	prefs_set_pm_sort (SORT_NONE);
+	prefs_set_int("pm_sort", SORT_NONE);
 	pm_unsort (); /* also resets the sort_counter */
     }
     else
     {
-	prefs_set_pm_sort (gtk_tree_view_column_get_sort_order (tvc));
-	if (prefs_get_pm_autostore ())  pm_rows_reordered ();
+	prefs_set_int("pm_sort", gtk_tree_view_column_get_sort_order (tvc));
+	pm_rows_reordered ();
     }
 }
+#endif
 
 
-
 /**
  * Reorder playlists to match order of playlists displayed.
  * data_changed() is called when necessary.
@@ -1644,20 +1680,30 @@
 			GtkTreeIter *b,
 			gpointer user_data)
 {
-  Playlist *playlist1;
-  Playlist *playlist2;
+  Playlist *playlist1=NULL;
+  Playlist *playlist2=NULL;
   GtkSortType order;
   gint corr, colid;
 
-/*  g_return_val_if_fail (model, 0);
+  return 0;  /* FIXME: see below -- deactivated for now */
+
+  g_return_val_if_fail (model, 0);
   g_return_val_if_fail (a, 0);
-  g_return_val_if_fail (b, 0);*/
+  g_return_val_if_fail (b, 0);
 
   if (gtk_tree_sortable_get_sort_column_id (GTK_TREE_SORTABLE (model),
 					    &colid, &order) == FALSE)
       return 0;
+
   gtk_tree_model_get (model, a, colid, &playlist1, -1);
   gtk_tree_model_get (model, b, colid, &playlist2, -1);
+
+/* FIXME: this function crashes because it is provided illegal
+ * GtkTreeIters. */
+/* FIXME: after the introduction of a GtkTreeView rather than a
+ * ListView, sorting should be done by a customs sort mechanism
+ * anyway. */
+
   g_return_val_if_fail (playlist1 && playlist2, 0);
 
   /* We make sure that the master playlist always stays on top */
@@ -1679,74 +1725,74 @@
 		const gchar         *new_text,
 		gpointer             data)
 {
-  GtkTreeModel *model;
+  GtkTreeModel *model = data;
   GtkTreeIter iter;
-  Playlist *playlist;
-  gint column;
+  Playlist *playlist = NULL;
 
-  model = (GtkTreeModel *)data;
   g_return_if_fail (model);
+  g_return_if_fail (new_text);
   if (!gtk_tree_model_get_iter_from_string (model, &iter, path_string))
   {
       g_return_if_reached ();
   }
 
-  column = GPOINTER_TO_INT ( g_object_get_data (G_OBJECT (renderer), "column") );
-  gtk_tree_model_get (model, &iter, column, &playlist, -1);
+  gtk_tree_model_get (model, &iter, PM_COLUMN_PLAYLIST, &playlist, -1);
   g_return_if_fail (playlist);
 
-  /*printf("pm_cell_edited: column: %d  track:%lx\n", column, track);*/
+  /*printf("pm_cell_edited: column: %d  track:%lx\n", PM_COLUMN_PLAYLIST, track);*/
 
-  switch (column)
+  /* We only do something, if the name actually got changed */
+  if (!playlist->name ||
+      g_utf8_collate (playlist->name, new_text) != 0)
   {
-  case PM_COLUMN_PLAYLIST:
-      g_return_if_fail (new_text);
-      /* We only do something, if the name actually got changed */
-      if (!playlist->name ||
-	  g_utf8_collate (playlist->name, new_text) != 0)
-      {
-	  g_free (playlist->name);
-	  playlist->name = g_strdup (new_text);
-	  data_changed (playlist->itdb);
+      g_free (playlist->name);
+      playlist->name = g_strdup (new_text);
+      data_changed (playlist->itdb);
+      if (itdb_playlist_is_mpl (playlist))
+      {   /* Need to change name in prefs system */
+	  set_itdb_prefs_string (playlist->itdb, "name", new_text);
       }
-      break;
   }
 }
 
 
-/* The playlist data is stored in a separate list
-   and only pointers to the corresponding playlist structure are placed
-   into the model.
-   This function reads the data for the given cell from the list and
-   passes it to the renderer. */
-static void pm_cell_data_func (GtkTreeViewColumn *tree_column,
-			       GtkCellRenderer   *renderer,
-			       GtkTreeModel      *model,
-			       GtkTreeIter       *iter,
-			       gpointer           data)
+/**
+ * pm_set_renderer_text
+ *
+ * Set the playlist name in appropriate style.
+ *
+ * @renderer: renderer to be set
+ * @playlist: playlist to consider.
+ */
+void pm_set_renderer_text (GtkCellRenderer *renderer,
+			   Playlist *playlist)
 {
-  Playlist *playlist;
-  gint column;
+    if (playlist)
+    {
+	ExtraiTunesDBData *eitdb;
 
-  g_return_if_fail (renderer);
-  g_return_if_fail (model);
-  g_return_if_fail (iter);
+	g_return_if_fail (playlist->itdb);
+	eitdb = playlist->itdb->userdata;
+	g_return_if_fail (eitdb);
 
-  column = GPOINTER_TO_INT ( g_object_get_data (G_OBJECT (renderer), "column") );
-  gtk_tree_model_get (model, iter, column, &playlist, -1);
-  g_return_if_fail (playlist);
-
-  switch (column)
-    {  /* We only have one column, so this code is overkill... */
-    case PM_COLUMN_PLAYLIST: 
 	if (itdb_playlist_is_mpl (playlist))
 	{   /* mark MPL */
 	    g_object_set (G_OBJECT (renderer),
 			  "text", playlist->name, 
-			  "editable", TRUE,
 			  "weight", PANGO_WEIGHT_BOLD,
-			  "style", PANGO_STYLE_NORMAL,
 			  NULL);
+	    if (eitdb->data_changed)
+	    {
+		g_object_set (G_OBJECT (renderer),
+			      "style", PANGO_STYLE_ITALIC,
+			      NULL);
+	    }
+	    else
+	    {
+		g_object_set (G_OBJECT (renderer),
+			      "style", PANGO_STYLE_NORMAL,
+			      NULL);
+	    }
 	}
 	else
 	{
@@ -1754,7 +1800,6 @@
 	    {
 		g_object_set (G_OBJECT (renderer),
 			      "text", playlist->name, 
-			      "editable", TRUE,
 			      "weight", PANGO_WEIGHT_SEMIBOLD,
 			      "style", PANGO_STYLE_ITALIC,
 			      NULL);
@@ -1763,97 +1808,120 @@
 	    {
 		g_object_set (G_OBJECT (renderer),
 			      "text", playlist->name, 
-			      "editable", TRUE,
 			      "weight", PANGO_WEIGHT_NORMAL,
 			      "style", PANGO_STYLE_NORMAL,
 			      NULL);
 	    }
 	}
-	break;
     }
+    else
+    {
+	g_object_set (G_OBJECT (renderer),
+		      "text", "",
+		      NULL);
+    }
 }
 
 
-/* set graphic indicator for smart playlists */
-static void pm_cell_data_func_pix (GtkTreeViewColumn *tree_column,
-				   GtkCellRenderer   *renderer,
-				   GtkTreeModel      *model,
-				   GtkTreeIter       *iter,
-				   gpointer           data)
+/**
+ * pm_set_renderer_pix
+ *
+ * Set the appropriate playlist icon.
+ *
+ * @renderer: renderer to be set
+ * @playlist: playlist to consider.
+ */
+void pm_set_renderer_pix (GtkCellRenderer *renderer,
+			  Playlist *playlist)
 {
-  Playlist *playlist;
-  gint column;
+    const gchar *stock_id=NULL;
 
-  g_return_if_fail (renderer);
-  g_return_if_fail (model);
-  g_return_if_fail (iter);
+    g_return_if_fail (renderer);
 
-  column = GPOINTER_TO_INT ( g_object_get_data (G_OBJECT (renderer), "column") );
-  gtk_tree_model_get (model, iter, column, &playlist, -1);
-  g_return_if_fail (playlist);
+    if (playlist)
+    {
+	iTunesDB *itdb;
+	ExtraiTunesDBData *eitdb;
 
-  switch (column)
-    {  /* We only have one column, so this code is overkill... */
-    case PM_COLUMN_PLAYLIST: 
+	g_return_if_fail (playlist->itdb);
+	itdb = playlist->itdb;
+	g_return_if_fail (itdb->userdata);
+	eitdb = itdb->userdata;
+
 	if (playlist->is_spl)
 	{
-	    g_object_set (G_OBJECT (renderer),
-			  "stock-id", GTK_STOCK_PROPERTIES, NULL);
+	    stock_id = GTK_STOCK_PROPERTIES;
 	}
 	else if (!itdb_playlist_is_mpl (playlist))
 	{
-	    g_object_set (G_OBJECT (renderer),
-			  "stock-id", GTK_STOCK_JUSTIFY_LEFT, NULL);
+	    stock_id = GTK_STOCK_JUSTIFY_LEFT;
 	}
 	else
 	{
-	    g_object_set (G_OBJECT (renderer),
-			  "stock-id", NULL, NULL);
+	    if (itdb->usertype & GP_ITDB_TYPE_LOCAL)
+	    {
+		stock_id = GTK_STOCK_HARDDISK;
+	    }
+	    else
+	    {
+		if (eitdb->itdb_imported)
+		{
+		    stock_id = GTK_STOCK_CONNECT;
+		}
+		else
+		{
+		    stock_id = GTK_STOCK_DISCONNECT;
+		}
+	    }
 	}
-	break;
     }
+
+  g_object_set (G_OBJECT (renderer),
+		"stock-id", stock_id, NULL);
 }
 
 
-/* Adds the columns to our playlist_treeview */
-static void pm_add_columns (void)
+/* The playlist data is stored in a separate list
+   and only pointers to the corresponding playlist structure are placed
+   into the model.
+   This function reads the data for the given cell from the list and
+   passes it to the renderer. */
+static void pm_cell_data_func (GtkTreeViewColumn *tree_column,
+			       GtkCellRenderer   *renderer,
+			       GtkTreeModel      *model,
+			       GtkTreeIter       *iter,
+			       gpointer           data)
 {
-  GtkTreeViewColumn *column;
-  GtkCellRenderer *renderer;
-  GtkTreeModel *model;
+  Playlist *playlist = NULL;
 
-  model = gtk_tree_view_get_model (playlist_treeview);
+  g_return_if_fail (renderer);
   g_return_if_fail (model);
+  g_return_if_fail (iter);
 
-  /* playlist column */
-  column = gtk_tree_view_column_new ();
-  gtk_tree_view_column_set_title (column, _("Playlists"));
-  gtk_tree_view_column_set_sort_column_id (column, PM_COLUMN_PLAYLIST);
-  gtk_tree_view_column_set_resizable (column, TRUE);
-  gtk_tree_view_column_set_sort_order (column, GTK_SORT_ASCENDING);
-  gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (model),
-				   PM_COLUMN_PLAYLIST,
-				   pm_data_compare_func, column, NULL);
-  gtk_tree_view_column_set_clickable(column, TRUE);
-  g_signal_connect (G_OBJECT (column), "clicked",
-		    G_CALLBACK (pm_track_column_button_clicked),
-				(gpointer)PM_COLUMN_PLAYLIST);
-  gtk_tree_view_append_column (playlist_treeview, column);
+  gtk_tree_model_get (model, iter, PM_COLUMN_PLAYLIST, &playlist, -1);
+  g_return_if_fail (playlist);
 
-  /* cell for playlist name */
-  renderer = gtk_cell_renderer_text_new ();
-  g_signal_connect (G_OBJECT (renderer), "edited",
-		    G_CALLBACK (pm_cell_edited), model);
-  g_object_set_data (G_OBJECT (renderer), "column", (gint *)PM_COLUMN_PLAYLIST);
-  gtk_tree_view_column_pack_end (column, renderer, FALSE);
-  gtk_tree_view_column_set_cell_data_func (column, renderer, pm_cell_data_func, NULL, NULL);
+  pm_set_renderer_text (renderer, playlist);
+}
 
 
-  /* cell for graphic indicator */
-  renderer = gtk_cell_renderer_pixbuf_new ();
-  g_object_set_data (G_OBJECT (renderer), "column", (gint *)PM_COLUMN_PLAYLIST);
-  gtk_tree_view_column_pack_start (column, renderer, FALSE); 
-  gtk_tree_view_column_set_cell_data_func (column, renderer, pm_cell_data_func_pix, NULL, NULL);
+/* set graphic indicator for smart playlists */
+static void pm_cell_data_func_pix (GtkTreeViewColumn *tree_column,
+				   GtkCellRenderer   *renderer,
+				   GtkTreeModel      *model,
+				   GtkTreeIter       *iter,
+				   gpointer           data)
+{
+  Playlist *playlist=NULL;
+
+  g_return_if_fail (renderer);
+  g_return_if_fail (model);
+  g_return_if_fail (iter);
+
+  gtk_tree_model_get (model, iter, PM_COLUMN_PLAYLIST, &playlist, -1);
+  g_return_if_fail (playlist);
+
+  pm_set_renderer_pix (renderer, playlist);
 }
 
 
@@ -1874,21 +1942,203 @@
     }
 }
 
+
+
+/* Return the number (0...) of the renderer the click was in or -1 if
+   no renderer was found. @cell (if != NULL) is filled with a pointer
+   to the renderer. */
+gint tree_view_get_cell_from_pos(GtkTreeView *view, guint x, guint y,
+				 GtkCellRenderer **cell)
+{
+    GtkTreeViewColumn *col = NULL;
+    GList             *node, *cells;
+    gint               pos = 0;
+    GdkRectangle       rect;
+    GtkTreePath        *path = NULL;
+    gint               cell_x, cell_y;
+
+    g_return_val_if_fail ( view != NULL, -1 );
+
+    if (cell)
+	*cell = NULL;
+
+    gtk_tree_view_get_path_at_pos (view, x, y, &path, &col,
+				   &cell_x, &cell_y);
+
+    if (col == NULL)
+	return -1; /* not found */
+
+    cells = gtk_tree_view_column_get_cell_renderers(col);
+
+    gtk_tree_view_get_cell_area (view, path, col, &rect);
+    gtk_tree_path_free (path);
+
+    /* gtk_tree_view_get_cell_area() should return the rectangle
+       _excluding_ the expander arrow(s), but until 2.8.17 it forgets
+       about the space occupied by the top level expander arrow. We
+       therefore need to add the width of one expander arrow */
+    if (!RUNTIME_GTK_CHECK_VERSION(2,8,18))
+    {
+	if (col ==  gtk_tree_view_get_expander_column (view))
+	{
+	    GValue *es = g_malloc0 (sizeof (GValue)); 
+	    g_value_init (es, G_TYPE_INT);
+	    gtk_widget_style_get_property (GTK_WIDGET (view),
+					   "expander_size",
+					   es);
+	    rect.x += g_value_get_int (es);
+	    rect.width -= g_value_get_int (es);
+	    g_free (es);
+	}
+    }
+
+    for (node = cells;  node != NULL;  node = node->next)
+    {
+	GtkCellRenderer *checkcell = (GtkCellRenderer*)node->data;
+	gint start_pos, width;
+
+	if (gtk_tree_view_column_cell_get_position (col, checkcell,
+						    &start_pos, &width))
+	{
+	    if (x >= (rect.x + start_pos) &&
+		x < (rect.x + start_pos + width))
+	    {
+		if (cell)
+		    *cell = checkcell;
+		g_list_free(cells);
+		return pos;
+	    }
+	}
+	++pos;
+    }
+
+    g_list_free(cells);
+    return -1; /* not found */
+}
+
+
+
 static gboolean
 pm_button_press (GtkWidget *w, GdkEventButton *e, gpointer data)
 {
+    gint cell_nr;
+    GtkTreeModel *model;
+    GtkTreePath *path;
+    GtkTreeIter iter;
+    Playlist *pl;
+    ExtraiTunesDBData *eitdb;
+
     g_return_val_if_fail (w && e, FALSE);
     switch(e->button)
     {
+    case 1:
+	cell_nr = tree_view_get_cell_from_pos (GTK_TREE_VIEW(w),
+					       e->x, e->y, NULL);
+	if (cell_nr == 0)
+	{
+	    /* */
+	    model= gtk_tree_view_get_model (GTK_TREE_VIEW (w));
+	    gtk_tree_view_get_path_at_pos (GTK_TREE_VIEW(w),
+					   e->x, e->y,
+					   &path, NULL,
+					   NULL, NULL);
+	    gtk_tree_model_get_iter (model, &iter, path);
+	    gtk_tree_path_free (path);
+	    gtk_tree_model_get (model, &iter,
+				PM_COLUMN_PLAYLIST, &pl,
+				-1);
+	    if (pl == NULL)
+		break;
+
+	    g_return_val_if_fail (pl->itdb, FALSE);
+
+	    if (!itdb_playlist_is_mpl (pl))
+		break;
+
+	    if (pl->itdb->usertype & GP_ITDB_TYPE_IPOD)
+	    {
+
+		/* the user clicked on the connect/disconnect icon of
+		 * an iPod */
+		eitdb = pl->itdb->userdata;
+		g_return_val_if_fail (eitdb, FALSE);
+		if (!eitdb->itdb_imported)
+		{
+		    gp_load_ipod (pl->itdb);
+		}
+		else
+		{
+		    gp_eject_ipod (pl->itdb);
+		}
+		return TRUE;
+	    }
+	    if (pl->itdb->usertype & GP_ITDB_TYPE_LOCAL)
+	    {
+
+		/* the user clicked on the 'harddisk' icon of
+		 * a local repository */
+	    }
+	}
+	break;
     case 3:
 	pm_select_current_position (e->x, e->y);
 	pm_context_menu_init ();
 	return TRUE;
     default:
-	return FALSE;
+	break;
     }
+    return FALSE;
 }
 
+/* Adds the columns to our playlist_treeview */
+static void pm_add_columns (void)
+{
+  GtkTreeViewColumn *column;
+  GtkCellRenderer *renderer;
+  GtkTreeModel *model;
+
+  model = gtk_tree_view_get_model (playlist_treeview);
+  g_return_if_fail (model);
+
+
+  /* playlist column */
+  column = gtk_tree_view_column_new ();
+  gtk_tree_view_column_set_title (column, _("Playlists"));
+/* FIXME: see comments at pm_data_compare_func() */
+/*
+  gtk_tree_view_column_set_sort_column_id (column, PM_COLUMN_PLAYLIST);
+  gtk_tree_view_column_set_sort_order (column, GTK_SORT_ASCENDING);
+  gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (model),
+				   PM_COLUMN_PLAYLIST,
+				   pm_data_compare_func, column, NULL);
+  gtk_tree_view_column_set_clickable(column, TRUE);
+  g_signal_connect (G_OBJECT (column), "clicked",
+		    G_CALLBACK (pm_track_column_button_clicked),
+				(gpointer)PM_COLUMN_PLAYLIST);
+*/
+  gtk_tree_view_append_column (playlist_treeview, column);
+
+  /* cell for graphic indicator */
+  renderer = gtk_cell_renderer_pixbuf_new ();
+
+  gtk_tree_view_column_pack_start (column, renderer, FALSE); 
+  gtk_tree_view_column_set_cell_data_func (column, renderer,
+					   pm_cell_data_func_pix,
+					   NULL, NULL);
+  /* cell for playlist name */
+  renderer = gtk_cell_renderer_text_new ();
+  g_signal_connect (G_OBJECT (renderer), "edited",
+		    G_CALLBACK (pm_cell_edited), model);
+  gtk_tree_view_column_pack_start (column, renderer, FALSE);
+  gtk_tree_view_column_set_cell_data_func (column, renderer,
+					   pm_cell_data_func,
+					   NULL, NULL);
+  g_object_set (G_OBJECT (renderer),
+		"editable", TRUE,
+		NULL);
+}
+
+
 /* Create playlist listview */
 void pm_create_treeview (void)
 {
@@ -2024,5 +2274,3 @@
 {
     current_playlist = pl;
 }
-
-

Modified: gtkpod/branches/upstream/current/src/display_songs.c
===================================================================
--- gtkpod/branches/upstream/current/src/display_songs.c	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/src/display_songs.c	2006-09-30 00:00:17 UTC (rev 139)
@@ -1,4 +1,4 @@
-/* Time-stamp: <2005-12-03 20:53:34 jcs>
+/* Time-stamp: <2006-06-23 23:52:48 jcs>
 |
 |  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
 |  Part of the gtkpod project.
@@ -24,19 +24,22 @@
 |
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: display_songs.c,v 1.94 2005/12/03 16:36:26 jcsjcs Exp $
+|  $Id: display_songs.c,v 1.112 2006/09/21 15:03:13 jcsjcs Exp $
 */
 
 #ifdef HAVE_CONFIG_H
 #  include <config.h>
 #endif
 
+#include <gdk/gdkkeysyms.h>
 #include <gtk/gtk.h>
+#include <limits.h>
+#include <stdio.h>
+#include <stdlib.h>
 #include <string.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <limits.h>
-#include <gdk/gdkkeysyms.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <unistd.h>
 
 #include "prefs.h"
 #include "display_private.h"
@@ -200,7 +203,7 @@
     gchar *name;
 
     gtk_tree_model_get(tm, iter, READOUT_COL, &track, -1);
-    name = get_file_name_verified (track);
+    name = get_file_name_from_source (track, SOURCE_PREFER_LOCAL);
     if (name)
     {
 	g_string_append_printf (filelist, "file:%s\n", name);
@@ -220,7 +223,7 @@
     gchar *name;
 
     gtk_tree_model_get(tm, iter, READOUT_COL, &track, -1);
-    name = get_file_name_verified (track);
+    name = get_file_name_from_source (track, SOURCE_PREFER_LOCAL);
     if (name)
     {
 	gchar *uri = g_filename_to_uri (name, NULL, NULL);
@@ -248,7 +251,6 @@
 {
     GtkTreeSelection *ts;
     Playlist *pl = pm_get_selected_playlist ();
-    gchar *buf;
     gint num;
 
 /*     puts ("tm_drag_data_delete"); */
@@ -277,20 +279,14 @@
 	}
 	g_string_free (reply, TRUE);
 
-	buf = g_strdup_printf (ngettext ("Moved one track",
-					 "Moved %d tracks", num), num);
+	gtkpod_statusbar_message (ngettext ("Moved one track",
+					    "Moved %d tracks", num), num);
     }
     else
     {
-	buf = g_strdup_printf (ngettext ("Copied one track",
-					 "Copied %d tracks", num), num);
+	gtkpod_statusbar_message (ngettext ("Copied one track",
+					    "Copied %d tracks", num), num);
     }
-
-    if (buf)
-    {
-	gtkpod_statusbar_message (buf);
-	g_free (buf);
-    }
 }
 
 
@@ -708,7 +704,7 @@
     for (i=0; i<TM_NUM_COLUMNS; ++i)
     {
 	col = gtk_tree_view_get_column (track_treeview, i);
-	prefs_set_col_order (i, col->sort_column_id);
+	prefs_set_int_index("col_order", i, col->sort_column_id);
     }
 }
 
@@ -795,9 +791,9 @@
 
 
   column = (TM_item) g_object_get_data(G_OBJECT(renderer), "column");
-  multi_edit = prefs_get_multi_edit ();
+  multi_edit = prefs_get_int("multi_edit");
   if (column == TM_COLUMN_TITLE)
-      multi_edit &= prefs_get_multi_edit_title ();
+      multi_edit &= prefs_get_int("multi_edit_title");
   selection = gtk_tree_view_get_selection(track_treeview);
   row_list = gtk_tree_selection_get_selected_rows(selection, &model);
 
@@ -860,7 +856,20 @@
      case TM_COLUMN_SAMPLERATE:
      case TM_COLUMN_BPM:
 	 changed = track_set_text (track, new_text, TM_to_T (column));
-	 
+	 if (changed && (column == TM_COLUMN_TRACKLEN))
+	 {  /* be on the safe side and reset starttime, stoptime and
+	     * filesize */
+	     gchar *path = get_file_name_from_source (track,
+						      SOURCE_PREFER_LOCAL);
+	     track->starttime = 0;
+	     track->stoptime = 0;
+	     if (path)
+	     {
+		 struct stat filestat;
+		 stat (path, &filestat);
+		 track->size = filestat.st_size;
+	     }
+	 }
 	 /* redisplay some items to be on the safe side */
 	 switch (column)
 	 {
@@ -890,7 +899,7 @@
         pm_track_changed (track);    /* notify playlist model... */
         data_changed (track->itdb); /* indicate that data has changed */
 
-        if (prefs_get_id3_write())
+        if (prefs_get_int("id3_write"))
         {
 	    /* T_item tag_id;*/
            /* should we update all ID3 tags or just the one
@@ -991,6 +1000,7 @@
       break;
   case TM_COLUMN_PC_PATH:
   case TM_COLUMN_IPOD_PATH:
+  case TM_COLUMN_THUMB_PATH:
       g_object_set (G_OBJECT (renderer),
 		    "text", text,
 		    "editable", FALSE,
@@ -1030,7 +1040,7 @@
   gboolean active;
 
   column = (TM_item) g_object_get_data(G_OBJECT(renderer), "column");
-  multi_edit = prefs_get_multi_edit ();
+  multi_edit = prefs_get_int("multi_edit");
   selection = gtk_tree_view_get_selection(track_treeview);
   row_list = gtk_tree_selection_get_selected_rows(selection, &model);
 
@@ -1089,7 +1099,7 @@
         /* If the changed column is the compilation flag update the file
            if required */
         if (column == TM_COLUMN_COMPILATION)
-           if (prefs_get_id3_write())
+           if (prefs_get_int("id3_write"))
               write_tags_to_file (track);
         
      }
@@ -1345,19 +1355,23 @@
 }
 
 
+
+    /* used by tm_get_all_tracks */
+    static gboolean on_all_tracks_list_foreach (GtkTreeModel *tm,
+						GtkTreePath *tp,
+						GtkTreeIter *i,
+						gpointer data)
+    {
+	on_tracks_list_foreach (tm, tp, i, data);
+	return FALSE;
+    }
+
+
 /* return a list containing pointers to all tracks currently being
    displayed. You must g_list_free() the list after use. */
 GList *
 tm_get_all_tracks(void)
 {
-    gboolean on_all_tracks_list_foreach (GtkTreeModel *tm,
-					 GtkTreePath *tp,
-					 GtkTreeIter *i,
-					 gpointer data)
-	{
-	    on_tracks_list_foreach (tm, tp, i, data);
-	    return FALSE;
-	}
     GList *result = NULL;
     GtkTreeModel *model = gtk_tree_view_get_model (track_treeview);
 
@@ -1384,13 +1398,13 @@
 	/* Before removing the widget we set multi_edit to FALSE. That
 	   way at most one entry will be changed (this also doesn't
 	   seem to work the way intended) */
-	gboolean me = prefs_get_multi_edit ();
-	prefs_set_multi_edit (FALSE);
+	gboolean me = prefs_get_int("multi_edit");
+	prefs_set_int("multi_edit", FALSE);
 	if (!cancel && col->editable_widget)
 	    gtk_cell_editable_editing_done (col->editable_widget);
 	if (col->editable_widget)
 	    gtk_cell_editable_remove_widget (col->editable_widget);
-	prefs_set_multi_edit (me);
+	prefs_set_int("multi_edit", me);
     }
 }
 
@@ -1449,6 +1463,12 @@
   case TM_COLUMN_IPOD_PATH:
       cmp = g_utf8_collate (track1->ipod_path, track2->ipod_path);
       break;
+  case TM_COLUMN_THUMB_PATH:
+      etr1 = track1->userdata;
+      etr2 = track2->userdata;
+      g_return_val_if_fail (etr1 && etr2, 0);
+      cmp = g_utf8_collate (etr1->thumb_path_utf8, etr2->thumb_path_utf8);
+      break;
   case TM_COLUMN_TRANSFERRED:
       if(track1->transferred == track2->transferred)
 	  cmp = 0;
@@ -1551,6 +1571,7 @@
   case TM_COLUMN_YEAR:
   case TM_COLUMN_IPOD_PATH:
   case TM_COLUMN_COMPILATION:
+  case TM_COLUMN_THUMB_PATH:
     cmp = (compare_string_start_case_insensitive (
 	  track_get_item (track1, TM_to_T (column)),
 	  key) != 0);
@@ -1629,7 +1650,7 @@
 
 void tm_adopt_order_in_sorttab (void)
 {
-    if (prefs_get_tm_sort () == SORT_NONE)
+    if (prefs_get_int("tm_sort_") == SORT_NONE)
     {
 	GList *gl, *tracks = NULL;
 
@@ -1637,7 +1658,7 @@
 	   the last sort tab or from the selected playlist if no sort
 	   tabs are being used */
 	tm_remove_all_tracks ();
-	tracks = display_get_selected_members (prefs_get_sort_tab_num()-1);
+	tracks = display_get_selected_members (prefs_get_int("sort_tab_num")-1);
 	for (gl=tracks; gl; gl=gl->next)
 	    tm_add_track_to_track_model ((Track *)gl->data, NULL);
     }
@@ -1651,7 +1672,7 @@
     {
 	GtkTreeModel *model= gtk_tree_view_get_model (track_treeview);
 
-	prefs_set_tm_sort (SORT_NONE);
+	prefs_set_int("tm_sort_", SORT_NONE);
 	if (!BROKEN_GTK_TREE_SORT)
 	{
 /* no need to comment this out -- searching still works, but for lack
@@ -1699,6 +1720,7 @@
     case TM_COLUMN_YEAR:
     case TM_COLUMN_IPOD_PATH:
     case TM_COLUMN_COMPILATION:
+    case TM_COLUMN_THUMB_PATH:
 	gtk_tree_view_set_enable_search (GTK_TREE_VIEW (track_treeview), TRUE);
 	break;
     case TM_COLUMN_TRACK_NR:
@@ -1722,7 +1744,7 @@
 	gtk_tree_view_set_enable_search (GTK_TREE_VIEW (track_treeview), FALSE);
 	break;
     }
-    prefs_set_int_value (TM_PREFS_SEARCH_COLUMN, newcol);
+    prefs_set_int (TM_PREFS_SEARCH_COLUMN, newcol);
 }
 
 
@@ -1769,13 +1791,13 @@
     }
     else
     {
-	prefs_set_tm_sort (order);
+	prefs_set_int("tm_sort_", order);
     }
-    prefs_set_tm_sortcol (newcol);
+    prefs_set_int("tm_sortcol", newcol);
 
     tm_set_search_column (newcol);
 
-    if(prefs_get_tm_autostore ())  tm_rows_reordered ();
+    if(prefs_get_int("tm_autostore"))  tm_rows_reordered ();
     sort_window_update ();
 
     /* stable sorting: index original order */
@@ -1835,51 +1857,15 @@
 }
 
 
-/* Add one column at position @pos. This code is used over and over
-   by tm_add_column() -- therefore I put it into a separate function */
-static GtkTreeViewColumn *tm_add_text_column (TM_item col_id,
-					      const gchar *name,
-					      GtkCellRenderer *renderer,
-					      gint pos)
-{
-    GtkTreeViewColumn *column;
-    GtkTreeModel *model = gtk_tree_view_get_model (track_treeview);
 
-    if (!renderer)
-    {   /* text renderer -- editable/not editable is done in
-	   tm_cell_data_func() */
-	renderer = gtk_cell_renderer_text_new ();
-	g_signal_connect (G_OBJECT (renderer), "edited",
-			  G_CALLBACK (tm_cell_edited), model);
-    }
-    g_object_set_data (G_OBJECT (renderer), "column", (gint *)col_id);
-    column = gtk_tree_view_column_new ();
-    gtk_tree_view_column_set_title (column, name);
-    gtk_tree_view_column_pack_end (column, renderer, FALSE);
-    gtk_tree_view_column_set_cell_data_func (column, renderer,
-					     tm_cell_data_func, NULL, NULL);
-    gtk_tree_view_column_set_sort_column_id (column, col_id);
-    gtk_tree_view_column_set_resizable (column, TRUE);
-/*     gtk_tree_view_column_set_clickable(column, TRUE); */
-    gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_FIXED);
-    gtk_tree_view_column_set_fixed_width (column,
-					  prefs_get_tm_col_width (col_id));
-    gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (model), col_id,
-				     tm_data_compare_func, NULL, NULL);
-    gtk_tree_view_column_set_reorderable (column, TRUE);
-    gtk_tree_view_insert_column (track_treeview, column, pos);
-    tm_columns[col_id] = column;
-    return column;
-}
 
 
-
 /* Adds the columns to our track_treeview */
 static GtkTreeViewColumn *tm_add_column (TM_item tm_item, gint pos)
 {
   GtkTreeModel *model = gtk_tree_view_get_model (track_treeview);
   GtkTreeViewColumn *col = NULL;
-  const gchar *text = NULL;
+  const gchar *text;
   GtkCellRenderer *renderer = NULL;  /* default */
   GtkTooltips *tt;
 
@@ -1894,9 +1880,23 @@
 
   g_return_val_if_fail (text, NULL);
 
+  col = gtk_tree_view_column_new ();
+
   switch (tm_item)
   {
   case TM_COLUMN_TITLE:
+      /* Add additional toggle box for 'checked' property */
+      renderer = gtk_cell_renderer_toggle_new ();
+      g_object_set_data (G_OBJECT (renderer), "column",
+			 (gint *)tm_item);
+      g_signal_connect (G_OBJECT (renderer), "toggled",
+			G_CALLBACK (tm_cell_toggled), model);
+      gtk_tree_view_column_pack_start (col, renderer, FALSE);
+      gtk_tree_view_column_set_cell_data_func (col, renderer,
+					       tm_cell_data_func_toggle,
+					       NULL, NULL);
+      renderer = NULL;
+      break;
   case TM_COLUMN_ARTIST:
   case TM_COLUMN_ALBUM:
   case TM_COLUMN_GENRE:
@@ -1914,6 +1914,7 @@
   case TM_COLUMN_SUBTITLE:
   case TM_COLUMN_PC_PATH:
   case TM_COLUMN_IPOD_PATH:
+  case TM_COLUMN_THUMB_PATH:
   case TM_COLUMN_SIZE:
       break;
   /* for some column names we want to use shorter alternatives to
@@ -1937,6 +1938,8 @@
   case TM_COLUMN_COMPILATION:
       text = _("Cmpl");
       renderer = gtk_cell_renderer_toggle_new ();
+      g_signal_connect (G_OBJECT (renderer), "toggled",
+			G_CALLBACK (tm_cell_toggled), model);
       break;
   case TM_COLUMN_TRACKLEN:
       text = _("Time");
@@ -1969,26 +1972,38 @@
       g_return_val_if_reached (NULL);
       break;
   }
-  col = tm_add_text_column (tm_item, text, renderer, pos);
-  if (col && (tm_item == TM_COLUMN_TITLE))
-  {
-      renderer = gtk_cell_renderer_toggle_new ();
-      g_object_set_data (G_OBJECT (renderer), "column",
-			 (gint *)tm_item);
-      g_signal_connect (G_OBJECT (renderer), "toggled",
-			G_CALLBACK (tm_cell_toggled), model);
-      gtk_tree_view_column_pack_start (col, renderer, FALSE);
-      gtk_tree_view_column_set_cell_data_func (col, renderer, tm_cell_data_func_toggle, NULL, NULL);
+
+  if (!renderer)
+  {   /* text renderer -- editable/not editable is done in
+	 tm_cell_data_func() */
+      renderer = gtk_cell_renderer_text_new ();
+      g_signal_connect (G_OBJECT (renderer), "edited",
+			G_CALLBACK (tm_cell_edited), model);
   }
-  if (col && (tm_item == TM_COLUMN_COMPILATION))
+
+  g_object_set_data (G_OBJECT (renderer), "column",
+		     (gint *)tm_item);
+
+  gtk_tree_view_column_set_title (col, text);
+  gtk_tree_view_column_pack_start (col, renderer, FALSE);
+  gtk_tree_view_column_set_cell_data_func (col, renderer,
+					   tm_cell_data_func, NULL, NULL);
+  gtk_tree_view_column_set_sort_column_id (col, tm_item);
+  gtk_tree_view_column_set_resizable (col, TRUE);
+/*     gtk_tree_view_column_set_clickable(column, TRUE); */
+  gtk_tree_view_column_set_sizing (col, GTK_TREE_VIEW_COLUMN_FIXED);
+  gtk_tree_view_column_set_fixed_width (col,
+					prefs_get_int_index("tm_col_width", tm_item));
+  gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (model), tm_item,
+				   tm_data_compare_func, NULL, NULL);
+  gtk_tree_view_column_set_reorderable (col, TRUE);
+  gtk_tree_view_insert_column (track_treeview, col, pos);
+  tm_columns[tm_item] = col;
+
+  if (pos != -1)
   {
-      g_signal_connect (G_OBJECT (renderer), "toggled",
-			G_CALLBACK (tm_cell_toggled), model);
-  }      
-  if (col && (pos != -1))
-  {
       gtk_tree_view_column_set_visible (col,
-					prefs_get_col_visible (tm_item));
+					prefs_get_int_index("col_visible", tm_item));
   }
   if (get_tm_tooltip (tm_item))
       gtk_tooltips_set_tip (tt, col->button, 
@@ -2005,7 +2020,7 @@
 
     for (i=0; i<TM_NUM_COLUMNS; ++i)
     {
-	tm_add_column (prefs_get_col_order (i), -1);
+	tm_add_column (prefs_get_int_index("col_order", i), -1);
     }
     tm_show_preferred_columns();
 }
@@ -2034,14 +2049,21 @@
     {
 	switch(e->button)
 	{
-	    case 3:
-		tm_select_current_position (e->x, e->y);
-		tm_context_menu_init ();
-		return TRUE;
-	    default:
-		break;
+	case 1:
+/*
+	    printf ("Pressed in cell %d (%f/%f)\n\n",
+		    tree_view_get_cell_from_pos(GTK_TREE_VIEW(w),
+						(guint)e->x, (guint)e->y, NULL),
+		    e->x, e->y);
+*/
+	    break;
+	case 3:
+	    tm_select_current_position (e->x, e->y);
+	    tm_context_menu_init ();
+	    return TRUE;
+	default:
+	    break;
 	}
-
     }
     return(FALSE);
 }
@@ -2169,7 +2191,7 @@
 		    (gpointer)0);
 
   /* initialize sorting */
-  tm_sort (prefs_get_tm_sortcol (), prefs_get_tm_sort ());
+  tm_sort (prefs_get_int("tm_sortcol"), prefs_get_int("tm_sort_"));
   /* set correct column for typeahead */
   if (prefs_get_int_value (TM_PREFS_SEARCH_COLUMN, &col))
   {
@@ -2192,7 +2214,8 @@
     for (i=0; i<TM_NUM_COLUMNS; ++i)
     {
 	tvc = gtk_tree_view_get_column (track_treeview, i);
-	visible = prefs_get_col_visible (prefs_get_col_order (i));
+	visible = prefs_get_int_index("col_visible", 
+      prefs_get_int_index("col_order", i));
 	gtk_tree_view_column_set_visible (tvc, visible);
     }
 }
@@ -2205,6 +2228,7 @@
 {
     gint i;
     GtkTreeViewColumn *col;
+    gint col_width;
 
     /* column widths */
     for (i=0; i<TM_NUM_COLUMNS; ++i)
@@ -2212,8 +2236,13 @@
 	col = tm_columns [i];
 	if (col)
 	{
-	    prefs_set_tm_col_width (i,
-				    gtk_tree_view_column_get_width (col));
+    col_width = gtk_tree_view_column_get_width (col);
+    
+    if (col_width > 0)
+	    prefs_set_int_index ("tm_col_width", i, col_width);
+    else
+      prefs_set_int_index ("tm_col_width", i, 80);
+   
 	}
     }
 }
@@ -2259,8 +2288,8 @@
 	    fprintf (stderr, "Programming error: disable_count < 0\n");
 	if (disable_count == 0 && track_treeview)
 	{
-	    if ((prefs_get_tm_sort() != SORT_NONE) &&
-		prefs_get_disable_sorting ())
+	    if ((prefs_get_int("tm_sort_") != SORT_NONE) &&
+		sorting_disabled())
 	    {
 		/* Re-enable sorting */
 		GtkTreeModel *model = gtk_tree_view_get_model (track_treeview);
@@ -2268,15 +2297,15 @@
 		{
 		    gtk_tree_sortable_set_sort_func (
 			GTK_TREE_SORTABLE (model),
-			prefs_get_tm_sortcol (),
+			prefs_get_int("tm_sortcol"),
 			tm_data_compare_func, NULL, NULL);
 		}
 		else
 		{
 		    gtk_tree_sortable_set_sort_column_id (
 			GTK_TREE_SORTABLE (model),
-			prefs_get_tm_sortcol (),
-			prefs_get_tm_sort ());
+			prefs_get_int("tm_sortcol"),
+			prefs_get_int("tm_sort_"));
 		}
 	    }
 	}
@@ -2285,8 +2314,8 @@
     {
 	if (disable_count == 0 && track_treeview)
 	{
-	    if ((prefs_get_tm_sort() != SORT_NONE) &&
-		prefs_get_disable_sorting ())
+	    if ((prefs_get_int("tm_sort_") != SORT_NONE) &&
+		sorting_disabled ())
 	    {
 		/* Disable sorting */
 		GtkTreeModel *model = gtk_tree_view_get_model (track_treeview);
@@ -2294,7 +2323,7 @@
 		{
 		    gtk_tree_sortable_set_sort_func (
 			GTK_TREE_SORTABLE (model),
-			prefs_get_tm_sortcol (),
+			prefs_get_int("tm_sortcol"),
 			tm_nosort_comp, NULL, NULL);
 		}
 		else
@@ -2302,7 +2331,7 @@
 		    gtk_tree_sortable_set_sort_column_id (
 			GTK_TREE_SORTABLE (model),
 			GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID,
-			prefs_get_tm_sort ());
+			prefs_get_int("tm_sort_"));
 		}
 	    }
 	}
@@ -2419,4 +2448,3 @@
     C_FREE (buf);
     return TRUE;
 }
-

Modified: gtkpod/branches/upstream/current/src/display_sorttabs.c
===================================================================
--- gtkpod/branches/upstream/current/src/display_sorttabs.c	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/src/display_sorttabs.c	2006-09-30 00:00:17 UTC (rev 139)
@@ -1,4 +1,4 @@
-/* Time-stamp: <2005-11-25 23:52:13 jcs>
+/* Time-stamp: <2006-06-11 17:10:33 jcs>
 |
 |  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
 |  Part of the gtkpod project.
@@ -24,7 +24,7 @@
 |
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: display_sorttabs.c,v 1.65 2005/11/26 13:44:41 jcsjcs Exp $
+|  $Id: display_sorttabs.c,v 1.85 2006/06/20 23:13:35 freethinkerjim Exp $
 */
 
 #ifdef HAVE_CONFIG_H
@@ -129,7 +129,7 @@
 	Track *tr = gl->data;
 
 	g_return_if_fail (tr);
-	name = get_file_name_verified (tr);
+	name = get_file_name_from_source (tr, SOURCE_PREFER_LOCAL);
 	if (name)
 	{
 	    g_string_append_printf (filelist, "file:%s\n", name);
@@ -175,7 +175,7 @@
 	Track *tr = gl->data;
 
 	g_return_if_fail (tr);
-	name = get_file_name_verified (tr);
+	name = get_file_name_from_source (tr, SOURCE_PREFER_LOCAL);
 	if (name)
 	{
 	    gchar *uri = g_filename_to_uri (name, NULL, NULL);
@@ -287,7 +287,41 @@
 /*                                                                  */
 /* ---------------------------------------------------------------- */
 
+/* Set rating  for tab @inst and rating @n */
+static void set_sp_rating_n(guint32 inst, gint n, gboolean state)
+{
+  guint32 rating;
+  
+  if ((inst <= SORT_TAB_MAX) && (n <= RATING_MAX))
+  {
+    rating = (guint32) prefs_get_int_index("sp_rating_state", inst);
+    
+    if (state)
+      rating |= (1 << n);
+    else
+      rating &= ~(1 << n);
+    
+    prefs_set_int_index("sp_rating_state", inst, rating);
+  }
+}
 
+static gboolean get_sp_rating_n(guint32 inst, gint n)
+{
+  guint32 rating;
+  
+  if ((inst <= SORT_TAB_MAX) && (n <= RATING_MAX))
+  {
+    rating = (guint32) prefs_get_int_index("sp_rating_state", inst);
+    
+    if ((rating & (1 << n)) != 0)
+      return TRUE;
+    else
+      return FALSE;      
+  }
+  
+  return FALSE;
+}
+
 /* Remove all members of special sort tab (ST_CAT_SPECIAL) in instance
  * @inst */
 static void sp_remove_all_members (guint32 inst)
@@ -295,7 +329,7 @@
     SortTab *st;
 
     /* Sanity */
-    if (inst >= prefs_get_sort_tab_num ())  return;
+    if (inst >= prefs_get_int("sort_tab_num"))  return;
 
     st = sorttab[inst];
 
@@ -349,6 +383,7 @@
 {
     SortTab *st;
     TimeInfo *ti;
+    
 
     if (inst >= SORT_TAB_MAX) return NULL;
 
@@ -357,16 +392,37 @@
 
     if (ti)
     {
-	gchar *new_string = prefs_get_sp_entry (inst, item);
+      gchar *new_string=NULL; 
+      switch (item)
+      {
+      case T_TIME_PLAYED:
+          new_string = prefs_get_string_index("sp_played_state", inst);
+          break;
+      case T_TIME_MODIFIED:
+          new_string = prefs_get_string_index("sp_modified_state", inst);
+          break;
+      case T_TIME_ADDED:
+          new_string = prefs_get_string_index("sp_added_state", inst);;
+          break;
+      default:
+          break;
+      }
 
-	if (force_update || !ti->int_str ||
-	    (strcmp (new_string, ti->int_str) != 0))
-	{   /* Re-evaluate the interval */
-	    g_free (ti->int_str);
-	    ti->int_str = g_strdup (new_string);
-	    dp2_parse (ti);
-	}
+      if (!new_string)
+      {
+	  new_string = g_strdup ("");
+      }
+
+      if (force_update || !ti->int_str ||
+	  (strcmp (new_string, ti->int_str) != 0))
+      {   /* Re-evaluate the interval */
+	  g_free (ti->int_str);
+	  ti->int_str = g_strdup (new_string);
+	  dp2_parse (ti);
+      }
+      g_free(new_string);
     }
+    
     return ti;
 }
 
@@ -418,7 +474,7 @@
  * Return value:  TRUE: satisfies, FALSE: does not satisfy */
 static gboolean sp_check_track (Track *track, guint32 inst)
 {
-    gboolean sp_or = prefs_get_sp_or (inst);
+    gboolean sp_or = prefs_get_int_index("sp_or", inst);
     gboolean result, cond, checked=FALSE;
 
     if (!track) return FALSE;
@@ -428,11 +484,11 @@
     else       result = TRUE;   /* AND */
 
     /* RATING */
-    if (prefs_get_sp_cond (inst, T_RATING))
+    if (prefs_get_int_index("sp_rating_cond", inst))
     {
 	/* checked = TRUE: at least one condition was checked */
 	checked = TRUE;
-	cond = prefs_get_sp_rating_n (inst, track->rating/ITDB_RATING_STEP);
+	cond = get_sp_rating_n (inst, track->rating/ITDB_RATING_STEP);
 	/* If one of the two combinations occur, we can take a
 	   shortcut and stop checking the other conditions */
 	if (sp_or && cond)       return TRUE;
@@ -442,13 +498,13 @@
     }
 
     /* PLAYCOUNT */
-    if (prefs_get_sp_cond (inst, T_PLAYCOUNT))
+    if (prefs_get_int_index("sp_playcount_cond", inst))
     {
-	guint32 low = prefs_get_sp_playcount_low (inst);
+	guint32 low = prefs_get_int_index("sp_playcount_low", inst);
 	/* "-1" will translate into about 4 billion because I use
 	   guint32 instead of gint32. Since 4 billion means "no upper
 	   limit" the logic works fine */
-	guint32 high = prefs_get_sp_playcount_high (inst);
+	guint32 high = prefs_get_int_index("sp_playcount_high", inst);
 	checked = TRUE;
 	if ((low <= track->playcount) && (track->playcount <= high))
 	    cond = TRUE;
@@ -458,7 +514,7 @@
 	if ((!sp_or) && (!cond)) return FALSE;
     }
     /* time played */
-    if (prefs_get_sp_cond (inst, T_TIME_PLAYED))
+    if (prefs_get_int_index("sp_played_cond", inst))
     {
 	IntervalState result = sp_check_time (inst, T_TIME_PLAYED, track);
 	if (sp_or && (result == IS_INSIDE))      return TRUE;
@@ -466,7 +522,7 @@
 	if (result != IS_ERROR)                  checked = TRUE;
     }
     /* time modified */
-    if (prefs_get_sp_cond (inst, T_TIME_MODIFIED))
+    if (prefs_get_int_index("sp_modified_cond", inst))
     {
 	IntervalState result = sp_check_time (inst, T_TIME_MODIFIED, track);
 	if (sp_or && (result == IS_INSIDE))      return TRUE;
@@ -474,7 +530,7 @@
 	if (result != IS_ERROR)                  checked = TRUE;
     }
     /* time added */
-    if (prefs_get_sp_cond (inst, T_TIME_ADDED))
+    if (prefs_get_int_index("sp_added_cond", inst))
     {
 	IntervalState result = sp_check_time (inst, T_TIME_ADDED, track);
 	if (sp_or && (result == IS_INSIDE))      return TRUE;
@@ -494,7 +550,7 @@
     SortTab *st;
 
     /* Sanity */
-    if (inst >= prefs_get_sort_tab_num ())  return;
+    if (inst >= prefs_get_int("sort_tab_num"))  return;
 
     st = sorttab[inst];
 
@@ -511,7 +567,7 @@
 	/* Add track to member list */
 	st->sp_members = g_list_append (st->sp_members, track);
 	/* Check if track is to be passed on to next sort tab */
-	if (st->is_go || prefs_get_sp_autodisplay (inst))
+	if (st->is_go || prefs_get_int_index("sp_autodisplay", inst))
 	{   /* Check if track matches sort criteria to be displayed */
 	    if (sp_check_track (track, inst))
 	    {
@@ -522,7 +578,7 @@
     }
     if (!track && final)
     {
-	if (st->is_go || prefs_get_sp_autodisplay (inst))
+	if (st->is_go || prefs_get_int_index("sp_autodisplay", inst))
 	    st_add_track (NULL, final, display, inst+1);
 
     }
@@ -565,7 +621,7 @@
 	float ms;
 	GList *gl;
 
-	if (!prefs_get_block_display ())
+	if (!prefs_get_int("block_display"))
 	{
 	    block_selection (inst);
 	    g_get_current_time (&time);
@@ -581,7 +637,7 @@
 		st_add_track (track, FALSE, TRUE, inst+1);
 	    }
 	    --count;
-	    if ((count < 0) && !prefs_get_block_display ())
+	    if ((count < 0) && !prefs_get_int("block_display"))
 	    {
 		gtkpod_tracks_statusbar_update();
 		while (gtk_events_pending ())       gtk_main_iteration ();
@@ -600,7 +656,7 @@
 	st_enable_disable_view_sort (inst+1, TRUE);
 	if (stop_add > (gint)inst)
 	    st_add_track (NULL, TRUE, st->final, inst+1);
-	if (!prefs_get_block_display ())
+	if (!prefs_get_int("block_display"))
 	{
 	    while (gtk_events_pending ())	  gtk_main_iteration ();
 	    release_selection (inst);
@@ -620,18 +676,18 @@
     SortTab *st;
 
     /* Sanity */
-    if (inst >= prefs_get_sort_tab_num ())  return;
+    if (inst >= prefs_get_int("sort_tab_num"))  return;
 
     st = sorttab[inst];
 
     /* Sanity */
     if (!st || (st->current_category != ST_CAT_SPECIAL)) return;
 
-    prefs_set_sp_entry (inst, T_TIME_PLAYED,
+    prefs_set_string_index("sp_played_state", inst,
 			gtk_entry_get_text (GTK_ENTRY(st->ti_played.entry)));
-    prefs_set_sp_entry (inst, T_TIME_MODIFIED,
+    prefs_set_string_index("sp_modified_state", inst,
 			gtk_entry_get_text (GTK_ENTRY(st->ti_modified.entry)));
-    prefs_set_sp_entry (inst, T_TIME_ADDED,
+    prefs_set_string_index("sp_added_state", inst,
 			gtk_entry_get_text (GTK_ENTRY(st->ti_added.entry)));
 }
 
@@ -646,16 +702,13 @@
 #endif
 
     /* Sanity */
-    if (inst >= prefs_get_sort_tab_num ())  return;
+    if (inst >= prefs_get_int("sort_tab_num"))  return;
 
     st = sorttab[inst];
 
     /* Sanity */
     if (st->current_category != ST_CAT_SPECIAL) return;
 
-    /* check if members are already displayed */
-    /* if (st->is_go || prefs_get_sp_autodisplay (inst))  return; */
-
     /* Make sure the information typed into the entries is actually
      * being used (maybe the user 'forgot' to press enter */
     sp_store_sp_entries (inst);
@@ -675,7 +728,7 @@
     GList *link;
 
     /* Sanity */
-    if (inst >= prefs_get_sort_tab_num ())  return;
+    if (inst >= prefs_get_int("sort_tab_num"))  return;
 
     st = sorttab[inst];
 
@@ -701,7 +754,7 @@
     SortTab *st;
 
     /* Sanity */
-    if (inst >= prefs_get_sort_tab_num ())  return;
+    if (inst >= prefs_get_int("sort_tab_num"))  return;
 
     st = sorttab[inst];
 
@@ -756,7 +809,7 @@
     SortTab *st;
 
     /* Sanity */
-    if (inst >= prefs_get_sort_tab_num ())  return;
+    if (inst >= prefs_get_int("sort_tab_num"))  return;
 
     st = sorttab[inst];
     /* Sanity */
@@ -764,7 +817,7 @@
 
     /* Only redisplay if data is actually being passed on to the next
        sort tab */
-    if (st->is_go || prefs_get_sp_autodisplay (inst))
+    if (st->is_go || prefs_get_int_index("sp_autodisplay", inst))
     {
 	st_redisplay (inst);
     }
@@ -783,8 +836,10 @@
 {
     guint32 inst = (guint32)(GPOINTER_TO_UINT(user_data) & SP_MASK);
 
-    prefs_set_sp_or (inst, gtk_toggle_button_get_active (togglebutton));
-    sp_conditions_changed (inst);
+    prefs_set_int_index("sp_or", inst, 
+                        gtk_toggle_button_get_active (togglebutton));
+    
+  sp_conditions_changed (inst);
 }
 
 
@@ -795,9 +850,31 @@
     guint32 inst = (guint32)(GPOINTER_TO_UINT(user_data) & SP_MASK);
     T_item cond = (guint32)GPOINTER_TO_UINT(user_data) >> SP_SHIFT;
 
-/*     printf ("%d/%d/%d\n",inst,cond,gtk_toggle_button_get_active (togglebutton)); */
-    prefs_set_sp_cond (inst, cond,
-		       gtk_toggle_button_get_active (togglebutton));
+  switch (cond)
+	{
+	case T_RATING:
+	    prefs_set_int_index("sp_rating_cond", inst, 
+                          gtk_toggle_button_get_active(togglebutton));
+	    break;
+	case T_PLAYCOUNT:
+	    prefs_set_int_index("sp_playcount_cond", inst, 
+                          gtk_toggle_button_get_active(togglebutton));
+	    break;
+	case T_TIME_PLAYED:
+	    prefs_set_int_index("sp_played_cond", inst, 
+                          gtk_toggle_button_get_active(togglebutton));
+	    break;
+	case T_TIME_MODIFIED:
+	    prefs_set_int_index("sp_modified_cond", inst, 
+                          gtk_toggle_button_get_active(togglebutton));
+	    break;
+	case T_TIME_ADDED:
+	    prefs_set_int_index("sp_added_cond", inst, 
+                          gtk_toggle_button_get_active(togglebutton));
+	    break;
+	default:
+	    break;
+	}
     sp_conditions_changed (inst);
 }
 
@@ -808,9 +885,9 @@
     guint32 inst = (guint32)(GPOINTER_TO_UINT(user_data) & SP_MASK);
     guint32 n = (guint32)GPOINTER_TO_UINT(user_data) >> SP_SHIFT;
 
-    prefs_set_sp_rating_n (inst, n,
-			   gtk_toggle_button_get_active (togglebutton));
-    if (prefs_get_sp_cond (inst, T_RATING))
+    set_sp_rating_n (inst, n,
+			               gtk_toggle_button_get_active (togglebutton));
+    if (prefs_get_int_index("sp_rating_cond", inst))
 	sp_conditions_changed (inst);
 }
 
@@ -825,10 +902,23 @@
 
 /*    printf ("sp_entry_activate inst: %d, item: %d\n", inst, item);*/
 
-    prefs_set_sp_entry (inst, item, buf);
+	switch (item)
+	{
+	case T_TIME_PLAYED:
+	    prefs_set_string_index("sp_played_state", inst, buf);
+	    break;
+	case T_TIME_MODIFIED:
+	    prefs_set_string_index("sp_modified_state", inst, buf);
+	    break;
+	case T_TIME_ADDED:
+	    prefs_set_string_index("sp_added_state", inst, buf);
+	    break;
+	default:
+	    break;
+  }
+  
     g_free (buf);
     sp_update_date_interval_from_string (inst, item, TRUE);
-/*     if (prefs_get_sp_autodisplay (inst))  sp_go (inst); */
     sp_go (inst);
 }
 
@@ -862,7 +952,7 @@
 
     /* display data if autodisplay is turned on */
     if (state)  on_sp_go_clicked (NULL, user_data);
-    prefs_set_sp_autodisplay(inst, state);
+    prefs_set_int_index("sp_autodisplay", inst, state);
 }
 
 void
@@ -871,9 +961,9 @@
 {
     guint32 inst = (guint32)GPOINTER_TO_UINT(user_data) & SP_MASK;
 
-    prefs_set_sp_playcount_low (inst,
+    prefs_set_int_index("sp_playcount_low", inst,
 				gtk_spin_button_get_value (spinbutton));
-    if (prefs_get_sp_cond (inst, T_PLAYCOUNT))
+    if (prefs_get_int_index("sp_playcount_cond", inst))
 	sp_conditions_changed (inst);
 }
 
@@ -884,9 +974,9 @@
 {
     guint32 inst = (guint32)GPOINTER_TO_UINT(user_data) & SP_MASK;
 
-    prefs_set_sp_playcount_high (inst,
+    prefs_set_int_index("sp_playcount_high", inst,
 				 gtk_spin_button_get_value (spinbutton));
-    if (prefs_get_sp_cond (inst, T_PLAYCOUNT))
+    if (prefs_get_int_index("sp_playcount_cond", inst))
 	sp_conditions_changed (inst);
 }
 
@@ -908,7 +998,7 @@
     SortTab *st;
 
     /* Sanity */
-    if (inst >= prefs_get_sort_tab_num ())  return NULL;
+    if (inst >= prefs_get_int("sort_tab_num"))  return NULL;
 
     st = sorttab[inst];
 
@@ -1100,7 +1190,7 @@
       if (st->entry_hash)  g_hash_table_destroy (st->entry_hash);
       st->entry_hash = NULL;
 
-      if((prefs_get_st_sort () == SORT_NONE) &&
+      if((prefs_get_int("st_sort") == SORT_NONE) &&
 	 gtk_tree_sortable_get_sort_column_id (GTK_TREE_SORTABLE (st->model),
 					       &column, &order))
       { /* recreate track treeview to unset sorted column */
@@ -1118,8 +1208,8 @@
  * (it's empty).
  * If the entry is currently selected (usually will be), the next
  * or previous entry will be selected automatically (unless it's the
- * master entry and prefs_get_st_autoselect() says don't select the 'All'
- * entry). If no new entry is selected, the next sort tab will be
+ * master entry and prefs_get_int_index("st_autoselect", inst) says don't select
+ * the 'All' entry). If no new entry is selected, the next sort tab will be
  * redisplayed (should be empty) */
 void st_remove_entry (TabEntry *entry, guint32 inst)
 {
@@ -1171,7 +1261,7 @@
 		if (!valid) next = NULL;
 	    }
 	    /* don't select master entry 'All' until requested to do so */
-	    if (next && next->master && !prefs_get_st_autoselect (inst))
+	    if (next && next->master && !prefs_get_int_index("st_autoselect", inst))
 		next = NULL;
 	}
     }
@@ -1384,12 +1474,12 @@
   tabs he/she just edited, disappeared from the display */
 void st_track_changed (Track *track, gboolean removed, guint32 inst)
 {
-  if (inst == prefs_get_sort_tab_num ())
+  if (inst == prefs_get_int("sort_tab_num"))
     {
       tm_track_changed (track);
       return;
     }
-  else if (inst < prefs_get_sort_tab_num ())
+  else if (inst < prefs_get_int("sort_tab_num"))
   {
       switch (sorttab[inst]->current_category)
       {
@@ -1433,7 +1523,7 @@
 #endif
 
     /* first delete all tracks in all visible sort tabs */
-    for (inst = 0; inst< prefs_get_sort_tab_num (); ++inst)
+    for (inst = 0; inst< prefs_get_int("sort_tab_num"); ++inst)
     {
 	SortTab *st = sorttab[inst];
 	GList *link;
@@ -1497,7 +1587,7 @@
 	}
 	master_entry->members = g_list_append (master_entry->members, track);
 	/* Check if this track should go in the compilation artist group */
-	group_track = ( prefs_get_group_compilations() &&
+	group_track = ( prefs_get_int("group_compilations") &&
 	    (track->compilation == TRUE) && 
 	    (st->current_category == ST_CAT_ARTIST) );
 	/* Check whether entry of same name already exists */
@@ -1540,7 +1630,7 @@
 	    {
 		/* no last selection -- check if we should select "All" */
 		/* only select "All" when currently adding the first track */
-		if (first && prefs_get_st_autoselect (inst))
+		if (first && prefs_get_int_index("st_autoselect", inst))
 		{
 		    select_entry = master_entry;
 		}
@@ -1561,9 +1651,9 @@
     }
     /* select "All" if it's the last track added, no entry currently
        selected (including "select_entry", which is to be selected" and
-       prefs_get_st_autoselect() allows us to select "All" */
+       prefs_get_int_index("st_autoselect", index) allows us to select "All" */
     if (final && !st->current_entry && !select_entry &&
-	!st->unselected && prefs_get_st_autoselect (inst))
+	!st->unselected && prefs_get_int_index("st_autoselect", inst))
     { /* auto-select entry "All" */
 	select_entry = g_list_nth_data (st->entries, 0);
     }
@@ -1603,7 +1693,7 @@
    sort tab. The last sort tab will pass the track on to the
    track model (currently two sort tabs).
    When the first track is added, the "All" entry is created.
-   If prefs_get_st_autoselect(inst) is true, the "All" entry is
+   If prefs_get_int_index("st_autoselect", inst) is true, the "All" entry is
    automatically selected, if there was no former selection
    @display: TRUE: add to track model (i.e. display it) */
 void st_add_track (Track *track, gboolean final, gboolean display, guint32 inst)
@@ -1615,13 +1705,13 @@
 	  inst, final, display, track);
 #endif
 
-  if (inst == prefs_get_sort_tab_num ())
+  if (inst == prefs_get_int("sort_tab_num"))
   {  /* just add to track model */
       if ((track != NULL) && display)    tm_add_track_to_track_model (track, NULL);
       if (final || (++count % 20 == 0))
 	  gtkpod_tracks_statusbar_update();
   }
-  else if (inst < prefs_get_sort_tab_num ())
+  else if (inst < prefs_get_int("sort_tab_num"))
   {
       switch (sorttab[inst]->current_category)
       {
@@ -1670,11 +1760,11 @@
  * tab: it might have been recategorized, but still be displayed. JCS */
 void st_remove_track (Track *track, guint32 inst)
 {
-    if (inst == prefs_get_sort_tab_num ())
+    if (inst == prefs_get_int("sort_tab_num"))
     {
 	tm_remove_track (track);
     }
-    else if (inst < prefs_get_sort_tab_num ())
+    else if (inst < prefs_get_int("sort_tab_num"))
     {
 	switch (sorttab[inst]->current_category)
 	{
@@ -1704,13 +1794,13 @@
    select "All" in accordance to the prefs settings. */
 void st_init (ST_CAT_item new_category, guint32 inst)
 {
-  if (inst == prefs_get_sort_tab_num ())
+  if (inst == prefs_get_int("sort_tab_num"))
   {
       tm_remove_all_tracks ();
       gtkpod_tracks_statusbar_update ();
       return;
   }
-  if (inst < prefs_get_sort_tab_num ())
+  if (inst < prefs_get_int("sort_tab_num"))
   {
       SortTab *st = sorttab[inst];
 
@@ -1760,7 +1850,7 @@
       if (new_category != -1)
       {
 	  st->current_category = new_category;
-	  prefs_set_st_category (inst, new_category);
+	  prefs_set_int_index("st_category", inst, new_category);
       }
       st_init (-1, inst+1);
   }
@@ -1807,7 +1897,7 @@
       float ms;
       GList *gl;
       /* block playlist view and all sort tab notebooks <= inst */
-      if (!prefs_get_block_display ())
+      if (!prefs_get_int("block_display"))
       {
 	  block_selection (inst-1);
 	  g_get_current_time (&time);
@@ -1820,7 +1910,7 @@
 	  if (stop_add < (gint)inst)  break;
 	  st_add_track (track, FALSE, TRUE, inst);
 	  --count;
-	  if ((count < 0) && !prefs_get_block_display ())
+	  if ((count < 0) && !prefs_get_int("block_display"))
 	  {
 	      gtkpod_tracks_statusbar_update();
 	      while (gtk_events_pending ())       gtk_main_iteration ();
@@ -1845,7 +1935,7 @@
 	  if ((inst > 0) && (sorttab[inst-1])) final = sorttab[inst-1]->final;
 	  st_add_track (NULL, final, TRUE, inst);
       }
-      if (!prefs_get_block_display ())
+      if (!prefs_get_int("block_display"))
       {
 	  while (gtk_events_pending ())      gtk_main_iteration ();
 	  release_selection (inst-1);
@@ -1884,7 +1974,7 @@
 /* Redisplay the sort tab "inst" */
 void st_redisplay (guint32 inst)
 {
-    if (inst < prefs_get_sort_tab_num ())
+    if (inst < prefs_get_int("sort_tab_num"))
     {
 	if (sorttab[inst])
 	    st_page_selected (sorttab[inst]->notebook,
@@ -1895,7 +1985,7 @@
 /* Start sorting */
 static void st_sort_inst (guint32 inst, GtkSortType order)
 {
-    if (inst < prefs_get_sort_tab_num ())
+    if (inst < prefs_get_int("sort_tab_num"))
     {
 	SortTab *st = sorttab[inst];
 	if (st)
@@ -1936,7 +2026,7 @@
 void st_sort (GtkSortType order)
 {
     gint i;
-    for (i=0; i<prefs_get_sort_tab_num (); ++i)
+    for (i=0; i < prefs_get_int("sort_tab_num"); ++i)
 	st_sort_inst (i, order);
 }
 
@@ -2000,7 +2090,7 @@
 	  gint count = max_count - 1;
 	  float ms;
 	  GList *gl;
-	  if (!prefs_get_block_display ())
+	  if (!prefs_get_int("block_display"))
 	  {
 	      block_selection (inst);
 	      g_get_current_time (&time);
@@ -2012,7 +2102,7 @@
 	      if (stop_add <= (gint)inst) break;
 	      st_add_track (track, FALSE, TRUE, inst+1);
 	      --count;
-	      if ((count < 0) && !prefs_get_block_display ())
+	      if ((count < 0) && !prefs_get_int("block_display"))
 	      {
 		  gtkpod_tracks_statusbar_update();
 		  while (gtk_events_pending ())       gtk_main_iteration ();
@@ -2031,7 +2121,7 @@
 	  st_enable_disable_view_sort (inst+1, TRUE);
 	  if (stop_add > (gint)inst)
 	      st_add_track (NULL, TRUE, st->final, inst+1);
-	  if (!prefs_get_block_display ())
+	  if (!prefs_get_int("block_display"))
 	  {
 	      while (gtk_events_pending ())	  gtk_main_iteration ();
 	      release_selection (inst);
@@ -2130,7 +2220,7 @@
 	  members = g_list_copy (entry->members);
 	  n = g_list_length (members);
 	  /* block user input if we write tags (might take a while) */
-	  if (prefs_get_id3_write ())   block_widgets ();
+	  if (prefs_get_int("id3_write"))   block_widgets ();
 	  for (i=0; i<n; ++i)
 	  {
 	      ExtraTrackData *etr;
@@ -2163,7 +2253,7 @@
 	      track->time_modified = itdb_time_get_mac_time ();
 	      pm_track_changed (track);
 	      /* If prefs say to write changes to file, do so */
-	      if (prefs_get_id3_write ())
+	      if (prefs_get_int("id3_write"))
 	      {
 		  /* T_item tag_id;*/
 		  /* should we update all ID3 tags or just the one
@@ -2177,7 +2267,7 @@
 	  }
 	  g_list_free (members);
 	  /* allow user input again */
-	  if (prefs_get_id3_write ())   release_widgets ();
+	  if (prefs_get_int("id3_write"))   release_widgets ();
 	  /* display possible duplicates that have been removed */
 	  gp_duplicate_remove (NULL, NULL);
 	  /* indicate that data has changed */
@@ -2293,7 +2383,7 @@
    work quite the way intended). */
 void st_stop_editing (gint inst, gboolean cancel)
 {
-    if (inst < prefs_get_sort_tab_num ())
+    if (inst < prefs_get_int("sort_tab_num"))
     {
 	SortTab *st = sorttab[inst];
 	if (st)
@@ -2330,7 +2420,7 @@
 {
     static gint disable_count[SORT_TAB_MAX];
 
-    if (inst >= prefs_get_sort_tab_num ())
+    if (inst >= prefs_get_int("sort_tab_num"))
     {
 	tm_enable_disable_view_sort (enable);
 	return;
@@ -2344,8 +2434,8 @@
 	if (disable_count[inst] == 0)
 	{
 	    /* Re-enable sorting */
-	    if ((prefs_get_st_sort () != SORT_NONE) &&
-		prefs_get_disable_sorting ())
+	    if ((prefs_get_int("st_sort") != SORT_NONE) &&
+		sorting_disabled ())
 	    {
 		SortTab *st = sorttab[inst];
 		if (st && 
@@ -2364,7 +2454,7 @@
 			gtk_tree_sortable_set_sort_column_id (
 			    GTK_TREE_SORTABLE (st->model),
 			    ST_COLUMN_ENTRY,
-			    prefs_get_st_sort ());
+			    prefs_get_int("st_sort"));
 		    }
 		}
 	    }
@@ -2376,8 +2466,8 @@
 	if (disable_count[inst] == 0)
 	{
 	    /* Disable sorting */
-	    if ((prefs_get_st_sort () != SORT_NONE) &&
-		prefs_get_disable_sorting ())
+	    if ((prefs_get_int("st_sort") != SORT_NONE) &&
+		sorting_disabled ())
 	    {
 		SortTab *st = sorttab[inst];
 		if (st && 
@@ -2396,7 +2486,7 @@
 			gtk_tree_sortable_set_sort_column_id (
 			    GTK_TREE_SORTABLE (st->model),
 			    GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID,
-			    prefs_get_st_sort ());
+			    prefs_get_int("st_sort"));
 		    }
 		}
 	    }
@@ -2410,7 +2500,7 @@
 
 void st_select_current_position (gint inst, gint x, gint y)
 {
-    if (inst < prefs_get_sort_tab_num ())
+    if (inst < prefs_get_int("sort_tab_num"))
     {
 	SortTab *st = sorttab[inst];
 	if (st)
@@ -2441,10 +2531,10 @@
     if (!st_paned[0])  return;
 
     /* first initialize (clear) all sorttabs */
-    n = prefs_get_sort_tab_num ();
-    prefs_set_sort_tab_num (SORT_TAB_MAX, FALSE);
+    n = prefs_get_int("sort_tab_num");
+    prefs_set_int("sort_tab_num", SORT_TAB_MAX);
     st_init (-1, 0);
-    prefs_set_sort_tab_num (n, FALSE);
+    prefs_set_int("sort_tab_num", n);
 
     /* set the visible elements */
     for (i=0; i<n; ++i)
@@ -2481,7 +2571,7 @@
 {
     gint i, x, y, p0, num, width;
 
-    num = prefs_get_sort_tab_num ();
+    num = prefs_get_int("sort_tab_num");
     if (num > 0)
     {
 	gchar *buf;
@@ -2495,7 +2585,7 @@
 	    width = (x-p0) / num;
 	    for (i=0; i<num; ++i)
 	    {
-		prefs_set_paned_pos (PANED_NUM_GLADE+i, width);
+		prefs_set_int_index("paned_pos_", PANED_NUM_GLADE+i, width);
 	    }
 	}
 	g_free (buf);
@@ -2508,17 +2598,17 @@
 {
     gint i, num;
 
-    num = prefs_get_sort_tab_num ();
+    num = prefs_get_int("sort_tab_num");
     if (num > 0)
     {
 	st_set_visible_sort_tab_paned ();
 	for (i=0; i<num; ++i)
 	{
-	    if (prefs_get_paned_pos (PANED_NUM_GLADE + i) != -1)
+	    if (prefs_get_int_index("paned_pos_", PANED_NUM_GLADE + i) != -1)
 	    {
 		if (st_paned[i])
 		    gtk_paned_set_position (
-			st_paned[i], prefs_get_paned_pos (PANED_NUM_GLADE+i));
+			st_paned[i], prefs_get_int_index("paned_pos_", PANED_NUM_GLADE+i));
 	    }
 	}
     }
@@ -2559,7 +2649,7 @@
     }
     /* set position of visible paned to decent values if not already
        set */
-    if (prefs_get_paned_pos (PANED_NUM_GLADE) == -1)
+    if (prefs_get_int_index("paned_pos_", PANED_NUM_GLADE) == -1)
 	st_set_visible_sort_tab_paned ();
 }
 
@@ -2650,6 +2740,7 @@
       SortTab   *st = sorttab[inst];
       gint i;
       GladeXML *special_xml;
+      gchar *buf;
 
       special_xml = glade_xml_new (xml_file, "special_sorttab", NULL);
       special = gtkpod_xml_get_widget (special_xml, "special_sorttab");
@@ -2670,7 +2761,7 @@
       g_signal_connect ((gpointer)w,
 			"toggled", G_CALLBACK (on_sp_or_button_toggled),
 			GINT_TO_POINTER(inst));
-      if (prefs_get_sp_or (inst))
+      if (prefs_get_int_index("sp_or", inst))
 	  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w), TRUE);
       else
       {
@@ -2684,7 +2775,7 @@
 			"toggled", G_CALLBACK (on_sp_cond_button_toggled),
 			GUINT_TO_POINTER((T_RATING<<SP_SHIFT) + inst));
       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
-				   prefs_get_sp_cond (inst, T_RATING));
+				   prefs_get_int_index("sp_rating_cond", inst));
       for (i=0; i<=RATING_MAX; ++i)
       {
 	  gchar *buf = g_strdup_printf ("sp_rating%d", i);
@@ -2693,7 +2784,7 @@
 			    "toggled", G_CALLBACK (on_sp_rating_n_toggled),
 			    GUINT_TO_POINTER((i<<SP_SHIFT) + inst));
 	  gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
-				       prefs_get_sp_rating_n (inst, i));
+				       get_sp_rating_n (inst, i));
 	  g_free (buf);
       }
 
@@ -2703,34 +2794,36 @@
 			"toggled", G_CALLBACK (on_sp_cond_button_toggled),
 			GUINT_TO_POINTER((T_PLAYCOUNT<<SP_SHIFT) + inst));
       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
-				   prefs_get_sp_cond (inst, T_PLAYCOUNT));
+				   prefs_get_int_index("sp_playcound_cond", inst));
       w = gtkpod_xml_get_widget (special_xml, "sp_playcount_low");
       g_signal_connect ((gpointer)w,
 			"value_changed",
 			G_CALLBACK (on_sp_playcount_low_value_changed),
 			GINT_TO_POINTER(inst));
       gtk_spin_button_set_value (GTK_SPIN_BUTTON (w),
-				 prefs_get_sp_playcount_low (inst));
+				 prefs_get_int_index("sp_playcount_low", inst));
       w = gtkpod_xml_get_widget (special_xml, "sp_playcount_high");
       g_signal_connect ((gpointer)w,
 			"value_changed",
 			G_CALLBACK (on_sp_playcount_high_value_changed),
 			GINT_TO_POINTER(inst));
       gtk_spin_button_set_value (GTK_SPIN_BUTTON (w),
-				 prefs_get_sp_playcount_high (inst));
+				 prefs_get_int_index("sp_playcount_high", inst));
 
       /* PLAYED */
+      buf = prefs_get_string_index("sp_played_state", inst);
+      
       w = gtkpod_xml_get_widget (special_xml, "sp_played_button");
       st->ti_played.active = w;
       g_signal_connect ((gpointer)w,
 			"toggled", G_CALLBACK (on_sp_cond_button_toggled),
 			GUINT_TO_POINTER((T_TIME_PLAYED<<SP_SHIFT) + inst));
       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
-				   prefs_get_sp_cond (inst, T_TIME_PLAYED));
+				   prefs_get_int_index("sp_played_cond", inst));
       w = gtkpod_xml_get_widget (special_xml, "sp_played_entry");
       st->ti_played.entry = w;
       gtk_entry_set_text (GTK_ENTRY (w),
-			  prefs_get_sp_entry (inst, T_TIME_PLAYED));
+			  buf);
       g_signal_connect ((gpointer)w,
 			"activate", G_CALLBACK (on_sp_entry_activate),
 			GUINT_TO_POINTER((T_TIME_PLAYED<<SP_SHIFT) + inst));
@@ -2739,19 +2832,23 @@
 			"clicked",
 			G_CALLBACK (on_sp_cal_button_clicked),
 			GUINT_TO_POINTER((T_TIME_PLAYED<<SP_SHIFT) + inst));
+      
+      g_free(buf);
 
       /* MODIFIED */
+      buf = prefs_get_string_index("sp_modified_state", inst);
+      
       w = gtkpod_xml_get_widget (special_xml, "sp_modified_button");
       st->ti_modified.active = w;
       g_signal_connect ((gpointer)w,
 			"toggled", G_CALLBACK (on_sp_cond_button_toggled),
 			GUINT_TO_POINTER((T_TIME_MODIFIED<<SP_SHIFT) + inst));
       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
-				   prefs_get_sp_cond (inst, T_TIME_MODIFIED));
+				   prefs_get_int_index("sp_modified_cond", inst));
       w = gtkpod_xml_get_widget (special_xml, "sp_modified_entry");
       st->ti_modified.entry = w;
       gtk_entry_set_text (GTK_ENTRY (w),
-			  prefs_get_sp_entry (inst, T_TIME_MODIFIED));
+			  buf);
       g_signal_connect ((gpointer)w,
 			"activate", G_CALLBACK (on_sp_entry_activate),
 			GUINT_TO_POINTER((T_TIME_MODIFIED<<SP_SHIFT) + inst));
@@ -2760,19 +2857,23 @@
 			"clicked",
 			G_CALLBACK (on_sp_cal_button_clicked),
 			GUINT_TO_POINTER((T_TIME_MODIFIED<<SP_SHIFT) + inst));
+      
+      g_free(buf);
 
       /* ADDED */
+      buf = prefs_get_string_index("sp_added_state", inst);
+      
       w = gtkpod_xml_get_widget (special_xml, "sp_added_button");
       st->ti_added.active = w;
       g_signal_connect ((gpointer)w,
 			"toggled", G_CALLBACK (on_sp_cond_button_toggled),
 			GUINT_TO_POINTER((T_TIME_ADDED<<SP_SHIFT) + inst));
       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
-				   prefs_get_sp_cond (inst, T_TIME_ADDED));
+				   prefs_get_int_index("sp_added_cond", inst));
       w = gtkpod_xml_get_widget (special_xml, "sp_added_entry");
       st->ti_added.entry = w;
       gtk_entry_set_text (GTK_ENTRY (w),
-			  prefs_get_sp_entry (inst, T_TIME_ADDED));
+			  buf);
       g_signal_connect ((gpointer)w,
 			"activate", G_CALLBACK (on_sp_entry_activate),
 			GUINT_TO_POINTER((T_TIME_ADDED<<SP_SHIFT) + inst));
@@ -2791,13 +2892,13 @@
 			"toggled", G_CALLBACK (on_sp_go_always_toggled),
 			GINT_TO_POINTER(inst));
       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
-				   prefs_get_sp_autodisplay (inst));
+				   prefs_get_int_index("sp_autodisplay", inst));
 
       /* Safe pointer to tooltips */
       st->sp_tooltips_data = gtk_tooltips_data_get(gtkpod_xml_get_widget (special_xml, "sp_modified_entry"));
       /* Show / don't show tooltips */
       g_return_if_fail (st->sp_tooltips_data);
-      if (prefs_get_display_tooltips_main ()) 
+      if (prefs_get_int("display_tooltips_main")) 
 	  gtk_tooltips_enable (st->sp_tooltips_data->tooltips);
       else gtk_tooltips_disable (st->sp_tooltips_data->tooltips);
       /* we don't need this any more */
@@ -2942,7 +3043,7 @@
   if (!st_paned[0])   st_create_paned ();
 
   st0_notebook = gtk_notebook_new ();
-  if (inst < prefs_get_sort_tab_num ()) gtk_widget_show (st0_notebook);
+  if (inst < prefs_get_int("sort_tab_num")) gtk_widget_show (st0_notebook);
   else                                  gtk_widget_hide (st0_notebook);
   /* which pane? */
   if (inst == SORT_TAB_MAX-1)  i = inst-1;
@@ -2960,11 +3061,11 @@
 
   st->notebook = GTK_NOTEBOOK (st0_notebook);
   st_create_pages (inst);
-  page = prefs_get_st_category (inst);
+  page = prefs_get_int_index("st_category", inst);
   st->current_category = page;
   gtk_notebook_set_current_page (st->notebook, page);
-  if (prefs_get_st_sort () != SORT_NONE)
-    st_sort_inst (inst, prefs_get_st_sort ());
+  if (prefs_get_int("st_sort") != SORT_NONE)
+    st_sort_inst (inst, prefs_get_int("st_sort"));
 }
 
 
@@ -3023,20 +3124,20 @@
 	GtkWidget *w = gtkpod_xml_get_widget (main_window_xml,  buf);
 	g_free (buf);
 	g_return_if_fail (w);
-	if (prefs_get_paned_pos (i) != -1)
+	if (prefs_get_int_index("paned_pos_", i) != -1)
 	{
 	    gtk_paned_set_position (GTK_PANED (w),
-				    prefs_get_paned_pos (i));
+				    prefs_get_int_index("paned_pos_", i));
 	}
     }
     /* Elements defined with display.c (sort tab hpaned) */
     for (i=0; i<PANED_NUM_ST; ++i)
     {
 	g_return_if_fail (st_paned[i]);
-	if (prefs_get_paned_pos (PANED_NUM_GLADE + i) != -1)
+	if (prefs_get_int_index("paned_pos_", PANED_NUM_GLADE + i) != -1)
 	{
 	    gtk_paned_set_position (
-		st_paned[i], prefs_get_paned_pos (PANED_NUM_GLADE+i));
+		st_paned[i], prefs_get_int_index("paned_pos_", PANED_NUM_GLADE+i));
 	}
     }
 }
@@ -3059,7 +3160,7 @@
 	    buf = g_strdup_printf ("paned%d", i);
 	    if((w = gtkpod_xml_get_widget (main_window_xml,  buf)))
 	    {
-		prefs_set_paned_pos (i,
+		prefs_set_int_index("paned_pos_", i,
 				     gtk_paned_get_position (GTK_PANED (w)));
 	    }
 	    g_free (buf);
@@ -3068,7 +3169,7 @@
 	for (i=0; i<PANED_NUM_ST; ++i)
 	{
 	    if (st_paned[i])
-		prefs_set_paned_pos (i + PANED_NUM_GLADE,
+		prefs_set_int_index("paned_pos_", i + PANED_NUM_GLADE,
 				     gtk_paned_get_position (st_paned[i]));
 	}
     }
@@ -3092,7 +3193,7 @@
 	tt = ttd->tooltips;
 	g_return_if_fail (tt);
 
-	if (prefs_get_display_tooltips_main ())
+	if (prefs_get_int("display_tooltips_main"))
 	    gtk_tooltips_enable (tt);
 	else   gtk_tooltips_disable (tt);
     }
@@ -3431,7 +3532,9 @@
     gint x,y;
 
     gtk_window_get_size (cal, &x, &y);
-    prefs_set_size_cal (x, y);
+    prefs_set_int("size_cal.x", x);
+	prefs_set_int("size_cal.y", y);
+	
 }
 
 /* Callback for 'delete' event */
@@ -3491,7 +3594,8 @@
     cal = gtkpod_xml_get_widget (cal_xml, "calendar_window");
 
     /* Set to saved size */
-    prefs_get_size_cal (&defx, &defy);
+    defx = prefs_get_int("size_cal.x");
+		defy = prefs_get_int("size_cal.y");
     gtk_window_set_default_size (GTK_WINDOW (cal), defx, defy);
 
     /* Set sorttab number */

Modified: gtkpod/branches/upstream/current/src/display_spl.c
===================================================================
--- gtkpod/branches/upstream/current/src/display_spl.c	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/src/display_spl.c	2006-09-30 00:00:17 UTC (rev 139)
@@ -1,4 +1,4 @@
-/* Time-stamp: <2005-11-25 23:52:13 jcs>
+/* Time-stamp: <2006-09-15 00:24:11 jcs>
 |
 |  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users.sourceforge.net>
 |  Part of the gtkpod project.
@@ -23,7 +23,7 @@
 |
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: display_spl.c,v 1.15 2005/11/26 13:44:41 jcsjcs Exp $
+|  $Id: display_spl.c,v 1.20 2006/09/17 04:58:21 jcsjcs Exp $
 */
 
 #ifdef HAVE_CONFIG_H
@@ -604,14 +604,16 @@
 }
 
 
-/* deactivate "minus" (delete rule) button if only one rule is
-   displayed, activate all "minus" (delete rule) buttons, if more than
-   one rule is displayed */
+/* Deactivate "minus" (delete rule) button if only one rule is
+   displayed, activate the "minus" (delete rule) buttons if more than
+   one rule is displayed. This affects only the first button
+   (spl_button-0) */
 static void spl_check_number_of_rules (GtkWidget *spl_window)
 {
     Playlist *spl;
     GtkTable *table;
-    gint i, numrules;
+    gint numrules;
+    GtkWidget *button;
 
     g_return_if_fail (spl_window);
 
@@ -622,20 +624,14 @@
     g_return_if_fail (table);
 
     numrules = g_list_length (spl->splrules.rules);
+    g_return_if_fail (numrules > 0);
 
-    for (i=0; i<numrules; ++i)
-    {
-	gchar name[WNLEN];
-	GtkWidget *button;
-
-	snprintf (name, WNLEN, "spl_button-%d", i);
-	button = g_object_get_data (G_OBJECT (table), name);
-	g_return_if_fail (button);
-	if (numrules > 1)
-	    gtk_widget_set_sensitive (button, TRUE);
-	else
-	    gtk_widget_set_sensitive (button, FALSE);
-    }
+    button = g_object_get_data (G_OBJECT (table), "spl_button-0");
+    g_return_if_fail (button);
+    if (numrules > 1)
+	gtk_widget_set_sensitive (button, TRUE);
+    else
+	gtk_widget_set_sensitive (button, FALSE);
 }
 
 
@@ -694,8 +690,8 @@
     gint defx, defy;
 
     gtk_window_get_size (GTK_WINDOW (spl_window), &defx, &defy);
-    prefs_set_int_value (SPL_WINDOW_DEFX, defx);
-    prefs_set_int_value (SPL_WINDOW_DEFY, defy);
+    prefs_set_int (SPL_WINDOW_DEFX, defx);
+    prefs_set_int (SPL_WINDOW_DEFY, defy);
 }
 
 static void spl_cancel (GtkButton *button, GtkWidget *spl_window)
@@ -778,6 +774,8 @@
 	pm_select_playlist (spl_orig);
     }
 
+    data_changed (itdb);
+
     spl_store_window_size (spl_window);
 
     gtk_widget_destroy (spl_window);
@@ -1263,39 +1261,46 @@
     /* ----------- */
     snprintf (name, WNLEN, "spl_buttonhbox%d", row);
     hbox = g_object_get_data (G_OBJECT (table), name);
-    if (hbox)
+    if (!hbox)
     {
-	gtk_widget_destroy (hbox);
-	hbox = NULL;
+	/* create hbox with buttons */
+	hbox = gtk_hbox_new (TRUE, 2);
+	gtk_widget_show (hbox);
+	g_object_set_data (G_OBJECT (table), name, hbox);
+	gtk_table_attach (table, hbox, 3,4, row,row+1,
+			  0,0,   /* expand options */
+			  XPAD,YPAD);  /* padding options */
     }
-    /* create hbox with buttons */
-    hbox = gtk_hbox_new (TRUE, 2);
-    gtk_widget_show (hbox);
-    g_object_set_data (G_OBJECT (table), name, hbox);
 
-    button = gtk_button_new_with_label (_("-"));
-    gtk_widget_show (button);
-    gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, TRUE, 0);
-    g_signal_connect (button, "clicked",
-		      G_CALLBACK (spl_button_minus_clicked),
-		      spl_window);
+    snprintf (name, WNLEN, "spl_button-%d", row);
+    button = g_object_get_data (G_OBJECT (table), name);
+    if (!button)
+    {
+	button = gtk_button_new_with_label (_("-"));
+	gtk_widget_show (button);
+	gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, TRUE, 0);
+	g_signal_connect (button, "clicked",
+			  G_CALLBACK (spl_button_minus_clicked),
+			  spl_window);
+	g_object_set_data (G_OBJECT (table), name, button);
+    }
     g_object_set_data (G_OBJECT (button), "spl_rule", splr);
-    snprintf (name, WNLEN, "spl_button-%d", row);
-    g_object_set_data (G_OBJECT (table), name, button);
 
-    button = gtk_button_new_with_label (_("+"));
-    gtk_widget_show (button);
-    gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, TRUE, 0);
-    g_signal_connect (button, "clicked",
-		      G_CALLBACK (spl_button_plus_clicked),
-		      spl_window);
+
+    snprintf (name, WNLEN, "spl_button+%d", row);
+    button = g_object_get_data (G_OBJECT (table), name);
+    if (!button)
+    {
+	button = gtk_button_new_with_label (_("+"));
+	gtk_widget_show (button);
+	gtk_box_pack_start (GTK_BOX (hbox), button, FALSE, TRUE, 0);
+	g_signal_connect (button, "clicked",
+			  G_CALLBACK (spl_button_plus_clicked),
+			  spl_window);
+	g_object_set_data (G_OBJECT (table), name, button);
+	snprintf (name, WNLEN, "spl_button+%d", row);
+    }
     g_object_set_data (G_OBJECT (button), "spl_rule", splr);
-    snprintf (name, WNLEN, "spl_button+%d", row);
-    g_object_set_data (G_OBJECT (table), name, button);
-
-    gtk_table_attach (table, hbox, 3,4, row,row+1,
-		      0,0,   /* expand options */
-		      XPAD,YPAD);  /* padding options */
 }
 
 /* Display all rules stored in "spl_work" */
@@ -1375,6 +1380,11 @@
 	removed =  splremove (table, "spl_fieldcombo", i);
 	removed |= splremove (table, "spl_actioncombo", i);
 	removed |= splremove (table, "spl_actionhbox", i);
+	/* remove spl_button+/- BEFORE removing spl_buttonhbox, as
+	   removing spl_buttonhbox will destroy the buttons as well --
+	   we'd have to g_object_set_data(..., NULL) manually. */
+	removed |= splremove (table, "spl_button+", i);
+	removed |= splremove (table, "spl_button-", i);
 	removed |= splremove (table, "spl_buttonhbox", i);
     }
 }

Modified: gtkpod/branches/upstream/current/src/file.c
===================================================================
--- gtkpod/branches/upstream/current/src/file.c	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/src/file.c	2006-09-30 00:00:17 UTC (rev 139)
@@ -1,4 +1,4 @@
-/* Time-stamp: <2006-02-19 14:35:41 jcs>
+/* Time-stamp: <2006-09-24 15:25:28 jcs>
 |
 |  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
 |  Part of the gtkpod project.
@@ -24,7 +24,7 @@
 |
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: file.c,v 1.153 2006/02/19 05:46:24 jcsjcs Exp $
+|  $Id: file.c,v 1.188 2006/09/24 06:42:52 jcsjcs Exp $
 */
 
 #ifdef HAVE_CONFIG_H
@@ -94,6 +94,7 @@
     case FILE_TYPE_M3U:
     case FILE_TYPE_PLS:
     case FILE_TYPE_IMAGE:
+    case FILE_TYPE_DIRECTORY:
 	g_free (track);
 	g_return_val_if_reached (NULL);
     }
@@ -115,7 +116,10 @@
     FileType type = FILE_TYPE_UNKNOWN;
 	
     g_return_val_if_fail (path, type);
-	
+
+    if (g_file_test (path, G_FILE_TEST_IS_DIR))
+	return FILE_TYPE_DIRECTORY;
+
     path_utf8 = charset_to_utf8 (path);
     suf = strrchr (path_utf8, '.');
     if (suf)
@@ -155,6 +159,37 @@
 }
 
 
+/** check a filename against the "excludes file mask" from the preferences
+ *  and return TRUE if it should be excluded based on the mask
+ */
+static gboolean excludefile (gchar *filename)
+{
+    gboolean matched = FALSE;
+    gchar **masks, *prefs_masks;
+
+    prefs_masks = prefs_get_string ("exclude_file_mask");
+    
+    if (prefs_masks == NULL) 
+        return FALSE;
+    
+    masks = g_strsplit (prefs_masks, ";", -1);
+
+    if (masks != NULL)
+    {
+	gint i;
+        for(i=0; !matched && masks[i]; i++)
+	{
+	    matched = g_pattern_match_simple (g_strstrip(masks[i]), filename);
+	}
+        g_strfreev (masks);
+    }
+    
+    g_free(prefs_masks);
+    
+    return matched;
+}
+
+
 /*------------------------------------------------------------------*\
  *                                                                  *
  *      Add Playlists                                               *
@@ -219,6 +254,7 @@
 	case FILE_TYPE_MOV:
 	case FILE_TYPE_MPG:
 	case FILE_TYPE_IMAGE:
+	case FILE_TYPE_DIRECTORY:
 	    gtkpod_warning (_("'%s' is a not a known playlist file.\n\n"),
 			      plfile);
 	    g_free(plname);
@@ -302,6 +338,7 @@
 	    }
 	    break;
 	case FILE_TYPE_UNKNOWN:
+	case FILE_TYPE_DIRECTORY:
 	case FILE_TYPE_MP3:
 	case FILE_TYPE_M4A:
 	case FILE_TYPE_M4P:
@@ -327,7 +364,7 @@
 		gtkpod_warning (_("Skipping '%s' to avoid adding playlist file recursively\n"), filename);
 	    }
 	    else if (add_track_by_filename (itdb, filename, plitem,
-					    prefs_get_add_recursively (),
+					    prefs_get_int("add_recursively"),
 					    addtrackfunc, data))
 	    {
 		++tracks;
@@ -516,7 +553,7 @@
 		{
 		case 'a': /* artist */
 		    if (track &&
-			(!track->artist || prefs_get_parsetags_overwrite ()))
+			(!track->artist || prefs_get_int("parsetags_overwrite")))
 		    {
 			g_free (track->artist);
 			track->artist = itm;
@@ -524,7 +561,7 @@
 		    break;
 		case 'A': /* album */
 		    if (track &&
-			(!track->album || prefs_get_parsetags_overwrite ()))
+			(!track->album || prefs_get_int("parsetags_overwrite")))
 		    {
 			g_free (track->album);
 			track->album = itm;
@@ -532,7 +569,7 @@
 		    break;
 		case 'c': /* composer */
 		    if (track &&
-			(!track->composer || prefs_get_parsetags_overwrite ()))
+			(!track->composer || prefs_get_int("parsetags_overwrite")))
 		    {
 			g_free (track->composer);
 			track->composer = itm;
@@ -540,7 +577,7 @@
 		    break;
 		case 't': /* title */
 		    if (track &&
-			(!track->title || prefs_get_parsetags_overwrite ()))
+			(!track->title || prefs_get_int("parsetags_overwrite")))
 		    {
 			g_free (track->title);
 			track->title = itm;
@@ -549,7 +586,7 @@
 		case 'g': /* genre */
 		case 'G': /* genre */
 		    if (track &&
-			(!track->genre || prefs_get_parsetags_overwrite ()))
+			(!track->genre || prefs_get_int("parsetags_overwrite")))
 		    {
 			g_free (track->genre);
 			track->genre = itm;
@@ -558,19 +595,19 @@
 		case 'T': /* track */
 		    if (track &&
 			((track->track_nr == 0) ||
-			 prefs_get_parsetags_overwrite ()))
+			 prefs_get_int("parsetags_overwrite")))
 			track->track_nr = atoi (itm);
 		    g_free (itm);
 		    break;
 		case 'C': /* CD */
 		    if (track &&
-			(track->cd_nr == 0 || prefs_get_parsetags_overwrite ()))
+			(track->cd_nr == 0 || prefs_get_int("parsetags_overwrite")))
 			track->cd_nr = atoi (itm);
 		    g_free (itm);
 		    break;
 		case 'Y': /* year */
 		    if (track &&
-			(track->year == 0 || prefs_get_parsetags_overwrite ()))
+			(track->year == 0 || prefs_get_int("parsetags_overwrite")))
 			track->year = atoi (itm);
 		    g_free (itm);
 		    break;
@@ -618,19 +655,19 @@
 }
 
 /* parse the filename of @track and extract the tags as specified in
-   prefs_get_parsetags_template(). Several templates can be separated
+   prefs_get_string("parsetags_template"). Several templates can be separated
    with the "," character. */
 static void parse_filename (Track *track)
 {
     ExtraTrackData *etr;
-    const gchar *template;
+    gchar *template;
     gchar **templates, **tplp;
 
     g_return_if_fail (track);
     etr = track->userdata;
     g_return_if_fail (etr);
 
-    template = prefs_get_parsetags_template ();
+    template = prefs_get_string("parsetags_template");
     if (!template) return;
     templates = g_strsplit (template, ";", 0);
     tplp = templates;
@@ -642,6 +679,7 @@
     }
     if (*tplp)  parse_filename_with_template (track, etr->pc_path_utf8, *tplp);
     g_strfreev (templates);
+    g_free(template);
 }
 
 /* Set entry "column" (TM_COLUMN_TITLE etc) according to filename */
@@ -655,7 +693,7 @@
     etr = track->userdata;
     g_return_if_fail (etr);
 
-    if (prefs_get_autosettags (column) &&
+    if (prefs_get_int_index("tag_autoset", column) &&
 	etr->pc_path_utf8 && strlen (etr->pc_path_utf8))
     {
 	switch (column)
@@ -688,26 +726,29 @@
 static void set_unset_entries_from_filename (Track *track)
 {
     /* try to fill tags from filename */
-    if (prefs_get_parsetags ())
-	parse_filename (track);
+    if (prefs_get_int("parsetags"))
+			parse_filename (track);
     /* fill up what is left unset */
-    if (!track->album && prefs_get_autosettags (TM_COLUMN_ALBUM))
-	set_entry_from_filename (track, TM_COLUMN_ALBUM);
-    if (!track->artist && prefs_get_autosettags (TM_COLUMN_ARTIST))
-	set_entry_from_filename (track, TM_COLUMN_ARTIST);
-    if (!track->title && prefs_get_autosettags (TM_COLUMN_TITLE))
-	set_entry_from_filename (track, TM_COLUMN_TITLE);
-    if (!track->genre && prefs_get_autosettags (TM_COLUMN_GENRE))
-	set_entry_from_filename (track, TM_COLUMN_GENRE);
-    if (!track->composer && prefs_get_autosettags (TM_COLUMN_COMPOSER))
-	set_entry_from_filename (track, TM_COLUMN_COMPOSER);
+    if (!track->album && prefs_get_int_index("tag_autoset", TM_COLUMN_ALBUM))
+			set_entry_from_filename (track, TM_COLUMN_ALBUM);
+    if (!track->artist && prefs_get_int_index("tag_autoset", TM_COLUMN_ARTIST))
+			set_entry_from_filename (track, TM_COLUMN_ARTIST);
+    if (!track->title && prefs_get_int_index("tag_autoset", TM_COLUMN_TITLE))
+			set_entry_from_filename (track, TM_COLUMN_TITLE);
+    if (!track->genre && prefs_get_int_index("tag_autoset", TM_COLUMN_GENRE))
+			set_entry_from_filename (track, TM_COLUMN_GENRE);
+    if (!track->composer && prefs_get_int_index("tag_autoset", 
+																								TM_COLUMN_COMPOSER))
+		{
+			set_entry_from_filename (track, TM_COLUMN_COMPOSER);
+		}
 }
 
 
 /* update the track->charset info with the currently used charset */
 void update_charset_info (Track *track)
 {
-    const gchar *charset = prefs_get_charset ();
+    const gchar *charset = prefs_get_string("charset");
     ExtraTrackData *etr;
 
     g_return_if_fail (track);
@@ -727,53 +768,75 @@
 }
 
 
-/* Copy "new" info read from file to an old Track structure.
-   Return value: a pointer to the track the data was copied to. */
-static Track *copy_new_info (Track *from, Track *to)
+/* Copy "new" info read from file to an old Track structure. */
+static void copy_new_info (Track *from, Track *to)
 {
     ExtraTrackData *efrom, *eto;
 
-    g_return_val_if_fail (from, NULL);
-    g_return_val_if_fail (to, NULL);
+    g_return_if_fail (from);
+    g_return_if_fail (to);
     efrom = from->userdata;
     eto = to->userdata;
-    g_return_val_if_fail (efrom, NULL);
-    g_return_val_if_fail (eto, NULL);
+    g_return_if_fail (efrom);
+    g_return_if_fail (eto);
 
     g_free (to->title);
+    to->title = g_strdup (from->title);
+
     g_free (to->artist);
+    to->artist = g_strdup (from->artist);
+
     g_free (to->album);
+    to->album = g_strdup (from->album);
+
     g_free (to->genre);
+    to->genre = g_strdup (from->genre);
+
     g_free (to->composer);
+    to->composer = g_strdup (from->composer);
+
     g_free (to->comment);
+    to->comment = g_strdup (from->comment);
+
     g_free (to->filetype);
+    to->filetype = g_strdup (from->filetype);
+
     g_free (to->description);
+    to->description = g_strdup (from->description);
+
     g_free (to->podcasturl);
+    to->podcasturl = g_strdup (from->podcasturl);
+
     g_free (to->podcastrss);
+    to->podcastrss = g_strdup (from->podcastrss);
+
     g_free (to->subtitle);
-    g_free (eto->pc_path_utf8);
-    g_free (eto->pc_path_locale);
-    g_free (eto->charset);
+    to->subtitle = g_strdup (from->subtitle);
+
     g_free (eto->thumb_path_utf8);
+    eto->thumb_path_utf8 = g_strdup (efrom->thumb_path_utf8);
+
     g_free (eto->thumb_path_locale);
-    itdb_artwork_free (to->artwork);
-    /* copy strings */
-    to->album = g_strdup (from->album);
-    to->artist = g_strdup (from->artist);
-    to->title = g_strdup (from->title);
-    to->genre = g_strdup (from->genre);
-    to->comment = g_strdup (from->comment);
-    to->composer = g_strdup (from->composer);
-    to->filetype = g_strdup (from->filetype);
-    to->podcasturl = g_strdup (from->podcasturl);
-    to->podcastrss = g_strdup (from->podcastrss);
-    to->subtitle = g_strdup (from->subtitle);
-    to->description = g_strdup (from->description);
+    eto->thumb_path_locale = g_strdup (efrom->thumb_path_locale);
+
+    g_free (eto->pc_path_utf8);
     eto->pc_path_utf8 = g_strdup (efrom->pc_path_utf8);
+
+    g_free (eto->pc_path_locale);
     eto->pc_path_locale = g_strdup (efrom->pc_path_locale);
+
+    g_free (eto->charset);
     eto->charset = g_strdup (efrom->charset);
-    eto->thumb_path_utf8 = g_strdup (efrom->thumb_path_utf8);
-    eto->thumb_path_locale = g_strdup (efrom->thumb_path_locale);
+
+    g_free (eto->year_str);
+    eto->year_str = g_strdup_printf ("%d", to->year);
+
+    itdb_artwork_free (to->artwork);
+    to->artwork = itdb_artwork_duplicate (from->artwork);
+    to->artwork_size = from->artwork_size;
+    to->artwork_count = from->artwork_count;
+    to->has_artwork = from->has_artwork;
+
     to->size = from->size;
     to->tracklen = from->tracklen;
     to->cd_nr = from->cd_nr;
@@ -783,23 +846,14 @@
     to->bitrate = from->bitrate;
     to->samplerate = from->samplerate;
     to->soundcheck = from->soundcheck;
-    eto->peak_signal = efrom->peak_signal;
-    eto->radio_gain = efrom->radio_gain;
-    eto->audiophile_gain = efrom->audiophile_gain;
-    eto->peak_signal_set = efrom->peak_signal_set;
-    eto->radio_gain_set = efrom->radio_gain_set;
-    eto->audiophile_gain_set = efrom->audiophile_gain_set;
+    eto->mtime = efrom->mtime;
     to->time_added = from->time_added;
     to->time_modified = from->time_modified;
     to->year = from->year;
     to->compilation = from->compilation;
-    g_free (eto->year_str);
-    eto->year_str = g_strdup_printf ("%d", to->year);
     to->unk208 = from->unk208;
-    /* copy artwork */
-    to->artwork = itdb_artwork_duplicate (from->artwork);
-
-    return to;
+    to->lyrics_flag = from->lyrics_flag;
+    to->movie_flag = from->movie_flag;
 }
 
 /* Updates mserv data (rating only) of @track using filename @name to
@@ -820,14 +874,18 @@
 	return FALSE;
     }
 
-    if (prefs_get_mserv_use())
+    if (prefs_get_int("mserv_use"))
     {
 	/* try getting the user's rating from the mserv db */
-	const gchar *music_root = prefs_get_path(PATH_MSERV_MUSIC_ROOT);
-	const gchar *trackinfo_root = prefs_get_path (PATH_MSERV_TRACKINFO_ROOT);
-	/* music_root and trackinfo_root guaranteed to be != NULL */
-	g_return_val_if_fail (music_root && trackinfo_root, FALSE);
+	gchar *music_root = prefs_get_string ("path_mserv_music_root");
+	gchar *trackinfo_root = prefs_get_string ("path_mserv_trackinfo_root");
 
+	/* we expect music_root and trackinfo_root to be initialized */
+	if (!music_root)
+	    music_root = g_strdup ("");
+	if (!trackinfo_root)
+	    trackinfo_root = g_strdup ("");
+	
 	success = FALSE;
         /* printf("mroot %s troot %s fname %s\n", music_root, trackinfo_root, name); */
 
@@ -844,14 +902,14 @@
 	    {
 		/* printf("opened\n");*/
 		gchar buff[PATH_MAX];
-		const gchar *username = prefs_get_mserv_username ();
+		gchar *username = prefs_get_string("mserv_username");
 		guint usernamelen;
 		g_return_val_if_fail (username, (fclose (fp), FALSE));
 		usernamelen = strlen (username);
 		while (fgets(buff, PATH_MAX, fp))
 		{
 		    /* printf("username %s (%d) read %s\n",
-		     * prefs_get_mserv_username(), usernamelen,
+		     * prefs_get_string("mserv_username"), usernamelen,
 		     * buff);*/
 		    if (strncmp(buff, username, usernamelen) == 0
 			&& buff[usernamelen] == (gchar)'=')
@@ -865,11 +923,15 @@
 		    }
 		}
 		fclose(fp);
+		g_free(username);
 		if (!success)
 		{
-		    gchar *buf = g_strdup_printf (_("No information found for user '%s' in '%s'"), prefs_get_mserv_username(), infoname);
+		    gchar *username = prefs_get_string("mserv_username");
+		    gchar *buf = g_strdup_printf (_("No information found for user '%s' in '%s'"), 
+						  username, infoname);
 		    display_mserv_problems (track, buf);
 		    g_free (buf);
+		    g_free(username);
 		}
 	    }
 	    else
@@ -886,6 +948,8 @@
 	    display_mserv_problems (track, buf);
 	    g_free (buf);
 	}
+	g_free (music_root);
+	g_free (trackinfo_root);
     }
 
     while (widgets_blocked && gtk_events_pending ())
@@ -897,10 +961,10 @@
 
 
 /* look for a picture specified by coverart_template  */
-static void add_artwork (Track *tr)
+static void add_coverart (Track *tr)
 {
     ExtraTrackData *etr;
-    const gchar *full_template;
+    gchar *full_template;
     gchar **templates, **tplp;
     gchar *dirname;
     gchar *filename_local = NULL;
@@ -911,18 +975,18 @@
 
     dirname = g_path_get_dirname (etr->pc_path_utf8);
 
-    full_template = prefs_get_coverart_template ();
+    full_template = prefs_get_string("coverart_template");
 
     templates = g_strsplit (full_template, ";", 0);
     tplp = templates;
     while (*tplp && !filename_local)
     {
 	gchar *filename_utf8;
-	gchar *fname = get_string_from_template (tr, *tplp, TRUE);
+	gchar *fname = get_string_from_template (tr, *tplp, FALSE);
 	if (fname)
 	{
-	    if (strchr (fname, '.') != NULL)
-	    {   /* if fname has an extension, try if it is valid */
+	    if (strchr (*tplp, '.') != NULL)
+	    {   /* if template has an extension, try if it is valid */
 		filename_utf8 = g_build_filename (dirname, fname, NULL);
 		filename_local = charset_from_utf8 (filename_utf8);
 		g_free (filename_utf8);
@@ -932,8 +996,8 @@
 		    filename_local = NULL;
 		}
 	    }
-	    else
-	    {   /* otherwise try out different extensions */
+	    if (!filename_local)
+	    {   /* if no filename is found try out different extensions */
 		const gchar **extp = imageext;
 		while (*extp && !filename_local)
 		{
@@ -962,14 +1026,15 @@
     }
 
     g_strfreev (templates);
+    g_free(full_template);
 }
 
 
 
 /* Fills the supplied @orig_track with data from the file @name. If
- * @or_track is NULL, a new track struct is created. The entries
+ * @orig_track is NULL, a new track struct is created. The entries
  * pc_path_utf8 and pc_path_locale are not changed if an entry already
- * exists */
+ * exists. time_added is not modified if already set. */
 /* Returns NULL on error, a pointer to the Track otherwise */
 static Track *get_track_info_from_file (gchar *name, Track *orig_track)
 {
@@ -1012,12 +1077,18 @@
     case FILE_TYPE_M4B:
 	nti = mp4_get_file_info (name);
 	/* Set unk208 to audio */
-	if (nti) nti->unk208 = 0x00000001;
+	if (nti)
+	{
+	    nti->unk208 = 0x00000001;
+	}
 	break;
     case FILE_TYPE_WAV:
 	nti = wav_get_file_info (name);
 	/* Set unk208 to audio */
-	if (nti) nti->unk208 = 0x00000001;
+	if (nti)
+	{
+	    nti->unk208 = 0x00000001;
+	}
 	break;
     case FILE_TYPE_M4V:
     case FILE_TYPE_MP4:
@@ -1026,20 +1097,29 @@
 	nti = mp4_get_file_info (name);
 	if (!nti) video_get_file_info (name);
 	/* Set unk208 to video */
-	if (nti) nti->unk208 = 0x00000002;
+	if (nti)
+	{
+	    nti->unk208 = 0x00000002;
+	    nti->movie_flag = 0x01;
+	}	
 	break;
     case FILE_TYPE_MOV:
     case FILE_TYPE_MPG:
 	/* for now treat all the same */
 	nti = video_get_file_info (name);
 	/* Set unk208 to video */
-	if (nti) nti->unk208 = 0x00000002;
+	if (nti)
+	{
+	    nti->unk208 = 0x00000002;
+	    nti->movie_flag = 0x01;
+	}
 	break;
     case FILE_TYPE_UNKNOWN:
 	gtkpod_warning (_("The following track could not be processed (filetype unknown): '%s'\n"), name_utf8);
 	g_free (name_utf8);
 	return NULL;
     case FILE_TYPE_IMAGE:
+    case FILE_TYPE_DIRECTORY:
     case FILE_TYPE_M3U:
     case FILE_TYPE_PLS:
 	break;
@@ -1065,25 +1145,27 @@
 	/* set length of file */
 	stat (name, &filestat);
 	nti->size = filestat.st_size; /* get the filesize in bytes */
+	enti->mtime = filestat.st_mtime; /* get the modification date */
 	if (nti->bitrate == 0)
 	{  /* estimate bitrate */
 	    if (nti->tracklen)
 		nti->bitrate = nti->size * 8 / nti->tracklen;
 	}
-	if (enti->radio_gain_set) 
-	    nti->soundcheck = 
-		replaygain_to_soundcheck (enti->radio_gain);
 	/* Set unset strings (album...) from filename */
 	set_unset_entries_from_filename (nti);
 
 	/* Set coverart */
-	if (prefs_get_coverart())
-	    add_artwork (nti);
+	if (prefs_get_int("coverart_file"))
+	{
+	    /* APIC data takes precedence */
+	    if (!nti->artwork || !nti->artwork->thumbnails)
+		add_coverart (nti);
+	}
 
-	/* Set modification date to *now* */
-	nti->time_modified = itdb_time_get_mac_time ();
+	/* Set modification date to the files modified date */
+	nti->time_modified = itdb_time_host_to_mac(enti->mtime);
 	/* Set added date to *now* */
-	nti->time_added = nti->time_modified;
+	nti->time_added = itdb_time_get_mac_time ();
 
 	/* Make sure all strings are initialized -- that way we don't
 	   have to worry about it when we are handling the
@@ -1097,7 +1179,15 @@
 	if (orig_track)
 	{ /* we need to copy all information over to the original
 	   * track */
-	    track = copy_new_info (nti, orig_track);
+	    guint32 time_added = orig_track->time_added;
+
+	    copy_new_info (nti, orig_track);
+
+	    /* restore time_added */
+	    if (time_added != 0)
+		orig_track->time_added = time_added;
+
+	    track = orig_track;
 	    itdb_track_free (nti);
 	    nti = NULL;
 	}
@@ -1127,6 +1217,7 @@
 	gtk_main_iteration ();
 
     g_free (name_utf8);
+
     return track;
 }
 
@@ -1167,9 +1258,8 @@
 	g_return_if_fail (itdb);
 	if (g_list_find (itdb->tracks, track))
 	{
-	    gchar *buf = g_strdup_printf (_("Updating %s"),
-					  get_track_info (track, TRUE));
-	    gtkpod_statusbar_message (buf);
+	    gchar *buf = get_track_info (track, TRUE);
+	    gtkpod_statusbar_message (_("Updating %s"), buf);
 	    g_free (buf);
 	    update_track_from_file (track->itdb, track);
 	}
@@ -1210,13 +1300,14 @@
     for (gl = selected_tracks; gl; gl=gl->next)
     {
 	ExtraTrackData *etr;
-	gchar *buf;
 	Track *track = gl->data;
+	gchar *buf;
 	g_return_if_fail (track);
 	etr = track->userdata;
 	g_return_if_fail (etr);
-	buf = g_strdup_printf (_("Retrieving mserv data %s"), get_track_info (track, TRUE));
-	gtkpod_statusbar_message (buf);
+
+	buf = get_track_info (track, TRUE);
+	gtkpod_statusbar_message (_("Retrieving mserv data %s"), buf);
 	g_free (buf);
 	if (etr->pc_path_locale && *etr->pc_path_locale)
 	    update_mserv_data_from_file (etr->pc_path_locale, track);
@@ -1230,429 +1321,7 @@
 }
 
 
-/*------------------------------------------------------------------*\
- *                                                                  *
- *      Sync Track Dirs                                              *
- *                                                                  *
-\*------------------------------------------------------------------*/
 
-/* Callback for adding tracks (makes sure track isn't added to playlist
- * again if it already exists */
-static void sync_addtrackfunc (Playlist *plitem, Track *track, gpointer data)
-{
-    iTunesDB *itdb;
-
-    g_return_if_fail (plitem);
-    g_return_if_fail (track);
-    itdb = plitem->itdb;
-    g_return_if_fail (itdb);
-
-    /* only add if @track isn't already a member of the current
-       playlist */
-    if (!itdb_playlist_contains_track (plitem, track))
-	gp_playlist_add_track (plitem, track, TRUE);
-}
-
-
-/* Synchronize the directory @key (gchar *dir). Called by
- * sync_tracks().
- * @user_data: selected playlist */
-static void sync_dir (gpointer key,
-		      gpointer value,
-		      gpointer user_data)
-{
-    gchar *dir = (gchar *)key;
-    gchar *charset = (gchar *)value;
-    Playlist *pl = (Playlist *)user_data;
-    iTunesDB *itdb;
-    gchar *buf = NULL;
-    gchar *dir_utf8 = NULL;
-    /* old charset */
-    gchar *prefs_charset = NULL;
-
-    g_return_if_fail (dir);
-    if (!g_file_test (dir, G_FILE_TEST_IS_DIR))  g_return_if_reached();
-    g_return_if_fail (pl);
-    itdb = pl->itdb;
-    g_return_if_fail (itdb);
-
-    /* change default charset if prefs don't say otherwise */
-    if (!prefs_get_update_charset () && charset)
-    {   /* we should use the initial charset for the update */
-	if (prefs_get_charset ())
-	{   /* remember the charset originally set */
-	    prefs_charset = g_strdup (prefs_get_charset ());
-	}
-	/* use the charset used for the directory */
-	prefs_set_charset (charset);
-    }
-
-    /* report status */
-    /* convert dir to UTF8. Use @charset if specified */
-    if (charset)
-	dir_utf8 = charset_to_charset (charset, "UTF8", dir);
-    else
-	dir_utf8 = charset_to_utf8 (dir);
-    buf = g_strdup_printf (_("Syncing directory '%s'"), dir_utf8);
-    gtkpod_statusbar_message (buf);
-    g_free (buf);
-    g_free (dir_utf8);
-
-    /* sync dir */
-    add_directory_by_name (itdb, dir, pl, FALSE, sync_addtrackfunc, NULL);
-
-    /* reset charset */
-    if (!prefs_get_update_charset () && charset)
-	prefs_set_charset (prefs_charset);
-    g_free (prefs_charset);
-}
-
-
-
-/* cancel handler for sync_remove */
-/* @user_data1 is NULL, @user_data2 are the selected tracks */
-static void sync_remove_cancel (struct DeleteData *dd)
-{
-    g_return_if_fail (dd);
-
-    g_list_free (dd->selected_tracks);
-    g_free (dd);
-
-    gtkpod_statusbar_message (_("Syncing completed. No files deleted."));
-}
-
-
-struct SyncData
-{
-    GHashTable *hash_tosync;
-    GHashTable *hash_removed;
-    Playlist *pl;  /* currently selected playlist */
-};
-
-static void sync_dir_ok (gpointer user_data1, gpointer user_data2)
-{
-    struct SyncData *sd = user_data1;
-    /* state of "update existing" */
-    gboolean update;
-    iTunesDB *itdb;
-
-    g_return_if_fail (sd);
-    g_return_if_fail (sd->pl);
-    itdb = sd->pl->itdb;
-    g_return_if_fail (itdb);
-
-    /* set "update existing" to TRUE */
-    update = prefs_get_update_existing();
-    prefs_set_update_existing (TRUE);
-
-    /* sync all dirs stored in the hash */
-    g_hash_table_foreach (sd->hash_tosync, sync_dir, sd->pl);
-
-    /* reset "update existing" */
-    prefs_set_update_existing (update);
-
-    /* display log of non-updated tracks */
-    display_non_updated (NULL, NULL);
-    /* display log updated tracks */
-    display_updated (NULL, NULL);
-    /* display log of detected duplicates */
-    gp_duplicate_remove (NULL, NULL);
-
-    if (prefs_get_sync_remove ())
-    {   /* remove tracks that are no longer present in the dirs */
-	GList *tracklist = NULL;
-	struct DeleteData *dd;
-	GList *gl;
-
-	/* add all tracks that are no longer present in the dirs */
-	for (gl=itdb->tracks; gl; gl=gl->next)
-	{
-	    ExtraTrackData *etr;
-	    Track *tr = gl->data;
-	    g_return_if_fail (tr);
-	    etr = tr->userdata;
-	    g_return_if_fail (etr);
-
-	    if (etr->pc_path_locale && *etr->pc_path_locale)
-	    {
-		gchar *dirname = g_path_get_dirname (etr->pc_path_locale);
-		if (g_hash_table_lookup (sd->hash_tosync, dirname) &&
-		    !g_file_test (etr->pc_path_locale,G_FILE_TEST_EXISTS))
-		{
-		    tracklist = g_list_append (tracklist, tr);
-		}
-		else if (g_hash_table_lookup (sd->hash_removed, dirname))
-		{
-		    tracklist = g_list_append (tracklist, tr);
-		}
-		g_free (dirname);
-	    }
-	}
-
-	dd = g_malloc0 (sizeof (struct DeleteData));
-	dd->pl = sd->pl;
-	dd->itdb = itdb;
-	dd->selected_tracks = tracklist;
-	dd->deleteaction = -1;
-	if (itdb->usertype & GP_ITDB_TYPE_LOCAL)
-	    dd->deleteaction = DELETE_ACTION_DATABASE;
-	if (itdb->usertype & GP_ITDB_TYPE_IPOD)
-	    dd->deleteaction = DELETE_ACTION_IPOD;
-	g_return_if_fail (dd->deleteaction != -1);
-
-	if (tracklist)
-	{
-	    gchar *label, *title;
-	    GString *str;
-	    GtkResponseType response;
-
-	    /* populate "title" and "label" */
-	    delete_populate_settings (dd,
-				      &label, &title,
-				      NULL, NULL, NULL);
-
-	    /* create a list of tracks */
-	    str = g_string_sized_new (2000);
-	    for(gl=tracklist; gl; gl=gl->next)
-	    {
-		ExtraTrackData *etr;
-		Track *tr = gl->data;
-		g_return_if_fail (tr);
-		etr = tr->userdata;
-		g_return_if_fail (etr);
-		g_string_append_printf (str, "%s (%s-%s)\n",
-					etr->pc_path_utf8,
-					tr->artist, tr->title);
-	    }
-	    /* open window */
-	    response = gtkpod_confirmation
-		(-1,                   /* gint id, */
-		 TRUE,                /* gboolean modal, */
-		 title,                /* title */
-		 label,                /* label */
-		 str->str,             /* scrolled text */
-		 _("Never delete any files when syncing"),/* opt 1 text */
-		 CONF_STATE_INVERT_FALSE,                 /* opt 1 state */
-		 prefs_set_sync_remove,                   /* opt 1 handler */
-		 NULL, 0, NULL,        /* option 2 */
-		 prefs_get_sync_remove_confirm(), /* gboolean confirm_again, */
-		 prefs_set_sync_remove_confirm,   /* confirm_again_handler,*/
-		 CONF_NULL_HANDLER,    /* ConfHandler ok_handler,*/
-		 NULL,                 /* don't show "Apply" button */
-		 CONF_NULL_HANDLER,    /* cancel_handler,*/
-		 NULL,                 /* gpointer user_data1,*/
-		 NULL);                /* gpointer user_data2,*/
-
-	    switch (response)
-	    {
-	    case GTK_RESPONSE_OK:
-		delete_track_ok (dd);
-		break;
-	    default:
-		sync_remove_cancel (dd);
-		break;
-	    }
-
-	    g_free (label);
-	    g_string_free (str, TRUE);
-	}
-	else sync_remove_cancel (dd);
-    }
-    else
-    {
-	gtkpod_statusbar_message (_("Syncing completed."));
-    }
-    /* destroy the hash tables */
-    g_hash_table_destroy (sd->hash_tosync);
-    g_hash_table_destroy (sd->hash_removed);
-    g_free (sd);
-}
-
-
-/* sync dirs cancelled */
-static void sync_dir_cancel (gpointer user_data1, gpointer user_data2)
-{
-    struct SyncData *sd = user_data1;
-
-    if (sd)
-    {
-	g_hash_table_destroy (sd->hash_tosync);
-	g_hash_table_destroy (sd->hash_removed);
-	g_free (sd);
-    }
-    gtkpod_statusbar_message (_("Syncing aborted"));
-}
-
-
-/* Sync all directories referred to by the pc_path_locale entries in
-   the selected tracks */
-void sync_tracks (GList *selected_tracks)
-{
-    GHashTable *hash_tosync;
-    GHashTable *hash_removed;
-    struct SyncData *sd;
-    GList *gl;
-    guint32 dirnum = 0;
-    /* Append @key (gchar *dir) to GString *user_data. Charset to use is
-     * @value. If @value is not set, use the charset specified in the
-     * preferences */
-    void sync_add_dir_to_string  (gpointer key,
-				  gpointer value,
-				  gpointer user_data)
-	{
-	    gchar *dir = (gchar *)key;
-	    gchar *charset = (gchar *)value;
-	    GString *str = (GString *)user_data;
-	    gchar *buf;
-
-	    if (!dir || !str) return;
-
-	    /* convert to UTF8. Use @charset if specified */
-	    if (charset)
-		buf = charset_to_charset (charset, "UTF8", dir);
-	    else
-		buf = charset_to_utf8 (dir);
-	    g_string_append_printf (str, "%s\n", buf);
-	    g_free (buf);
-	}
-
-    if (selected_tracks == NULL)
-    {
-	gtkpod_statusbar_message (_("No tracks in selection"));
-	return;
-    }
-
-    /* Create a hash to keep the directory names ("key", and "value"
-       to be freed with g_free). key is dirname, value is charset used
-       */
-    hash_tosync = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
-    hash_removed = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
-
-    /* Get the dirs of all tracks selected and enter them into the hash
-       table if the dir exists. Using a hash table automatically
-       removes duplicates */
-    for (gl = selected_tracks; gl; gl=gl->next)
-    {
-	ExtraTrackData *etr;
-	Track *track = gl->data;
-	g_return_if_fail (track);
-	etr = track->userdata;
-	g_return_if_fail (etr);
-
-	if (etr->pc_path_locale && *etr->pc_path_locale)
-	{
-	    gchar *dirname = g_path_get_dirname (etr->pc_path_locale);
-
-	    ++dirnum;
-	    if (g_file_test (dirname, G_FILE_TEST_IS_DIR))
-	    {
-		if (etr->charset && *etr->charset)
-		{   /* charset set -- just insert the entry */
-		    gchar *charset = g_strdup (etr->charset);
-		    g_hash_table_insert (hash_tosync, dirname, charset);
-		}
-		else
-		{   /* no charset -- make sure we don't replace a dir
-		     * entry that had the charset set */
-		    if (!g_hash_table_lookup (hash_tosync, dirname))
-		    {
-			g_hash_table_insert (hash_tosync, dirname, NULL);
-		    }
-		    else
-		    {
-			g_free (dirname);
-		    }
-		}
-	    }
-	    else
-	    {
-		if (g_file_test (dirname, G_FILE_TEST_EXISTS))
-		{
-		    gtkpod_warning (_("'%s' is not a directory. Ignored.\n"),
-				    dirname);
-		    g_free (dirname);
-		}
-		else
-		{   /* add to directories to be removed */
-		    if (etr->charset && *etr->charset)
-		    {   /* charset set -- just insert the entry */
-			gchar *charset = g_strdup (etr->charset);
-			g_hash_table_insert (hash_removed, dirname, charset);
-		    }
-		    else
-		    {   /* no charset -- make sure we don't replace a
-			 * dir entry that had the charset set */
-			if (!g_hash_table_lookup (hash_removed, dirname))
-			{
-			    g_hash_table_insert (hash_removed, dirname, NULL);
-			}
-			else
-			{
-			    g_free (dirname);
-			}
-		    }
-		}
-	    }
-	}
-    }
-    if ((g_hash_table_size (hash_tosync) +
-	 g_hash_table_size (hash_removed)) == 0)
-    {   /* no directory names available */
-	if (dirnum == 0) gtkpod_warning (_("\
-No directory names were stored. Make sure that you enable 'Write extended information' in the Export section of the preferences at the time of importing files.\n\
-\n\
-To synchronize directories now, activate the duplicate detection ('Don't allow file duplication') in the Import section and add the directories you want to sync again.\n"));
-	else	         gtkpod_warning (_("\
-No valid directories have been found. Sync aborted.\n"));
-    }
-    else
-    {
-	GString *str = g_string_sized_new (2000);
-	if (g_hash_table_size (hash_removed) != 0)
-	{
-	    g_string_printf (str, 
-			     _("The (former) contents of the following directories will be removed from the database:\n\n"));
-	    g_hash_table_foreach (hash_removed,
-				  sync_add_dir_to_string, str);
-	    g_string_append_printf (str, "\n\n");
-	}
-	if (g_hash_table_size (hash_tosync) != 0)
-	{
-	    g_string_append_printf (str, 
-			     _("The following directories will be synchronized:\n\n"));
-	    g_hash_table_foreach (hash_tosync,
-				  sync_add_dir_to_string, str);
-	}
-	sd = g_malloc (sizeof (struct SyncData));
-	sd->hash_tosync = hash_tosync;
-	sd->hash_removed = hash_removed;
-	sd->pl = pm_get_selected_playlist ();
-	if (gtkpod_confirmation (
-		-1,                     /* gint id, */
-		FALSE,                  /* gboolean modal, */
-		_("Synchronize directories"), /* title */
-		_("OK to synchronize the following directories?"),
-		str->str,               /* text */
-		NULL, 0, NULL,          /* option 1 */
-		NULL, 0, NULL,          /* option 2 */
-		prefs_get_show_sync_dirs(),/* gboolean confirm_again, */
-		prefs_set_show_sync_dirs,/* confirm_again_handler*/
-		sync_dir_ok,            /* ConfHandler ok_handler,*/
-		NULL,                   /* don't show "Apply" */
-		sync_dir_cancel,        /* cancel_handler,*/
-		sd,                     /* gpointer user_data1,*/
-		NULL)                   /* gpointer user_data2,*/
-	    != GTK_RESPONSE_ACCEPT)
-	{ /* creation failed */
-	    g_hash_table_destroy (sd->hash_tosync);
-	    g_hash_table_destroy (sd->hash_removed);
-	    g_free (sd);
-	}
-	g_string_free (str, TRUE);
-    }
-}
-
-
 /* Logs tracks (@track) that could not be updated from file for some
    reason. Pop up a window with the log by calling with @track = NULL,
    or remove the log by calling with @track = -1.
@@ -1666,7 +1335,7 @@
 
    if ((track == NULL) && str)
    {
-       if (prefs_get_show_non_updated() && str->len)
+       if (prefs_get_int("show_non_updated") && str->len)
        { /* Some tracks have not been updated. Print a notice */
 	   buf = g_strdup_printf (
 	       ngettext ("The following track could not be updated",
@@ -1681,7 +1350,7 @@
 		NULL, 0, NULL,          /* option 1 */
 		NULL, 0, NULL,          /* option 2 */
 		TRUE,               /* gboolean confirm_again, */
-		prefs_set_show_non_updated,/* confirm_again_handler,*/
+		"show_non_updated",/* confirm_again_key,*/
 		CONF_NULL_HANDLER,  /* ConfHandler ok_handler,*/
 		NULL,               /* don't show "Apply" button */
 		NULL,               /* cancel_handler,*/
@@ -1699,7 +1368,7 @@
        track_nr = 0;
        gtkpod_tracks_statusbar_update();
    }
-   else if (prefs_get_show_non_updated() && track)
+   else if (prefs_get_int("show_non_updated") && track)
    {
        /* add info about it to str */
        buf = get_track_info (track, TRUE);
@@ -1728,7 +1397,7 @@
    static gint track_nr = 0;
    static GString *str = NULL;
 
-   if (prefs_get_show_updated() && (track == NULL) && str)
+   if (prefs_get_int("show_updated") && (track == NULL) && str)
    {
        if (str->len)
        { /* Some tracks have been updated. Print a notice */
@@ -1745,7 +1414,7 @@
 		NULL, 0, NULL,          /* option 1 */
 		NULL, 0, NULL,          /* option 2 */
 		TRUE,               /* gboolean confirm_again, */
-		prefs_set_show_updated,/* confirm_again_handler,*/
+		"show_updated",/* confirm_again_key,*/
 		CONF_NULL_HANDLER,  /* ConfHandler ok_handler,*/
 		NULL,               /* don't show "Apply" button */
 		NULL,               /* cancel_handler,*/
@@ -1763,7 +1432,7 @@
        track_nr = 0;
        gtkpod_tracks_statusbar_update();
    }
-   else if (prefs_get_show_updated() && track)
+   else if (prefs_get_int("show_updated") && track)
    {
        /* add info about it to str */
        buf = get_track_info (track, TRUE);
@@ -1794,8 +1463,8 @@
 
    if ((track == NULL) && str)
    {
-       if (prefs_get_mserv_use() &&
-	   prefs_get_mserv_report_probs() && str->len)
+       if (prefs_get_int("mserv_use") &&
+	   prefs_get_int("mserv_report_probs") && str->len)
        { /* Some tracks have had problems. Print a notice */
 	   buf = g_strdup_printf (
 	       ngettext ("No mserv information could be retrieved for the following track",
@@ -1810,7 +1479,7 @@
 		NULL, 0, NULL,          /* option 1 */
 		NULL, 0, NULL,          /* option 2 */
 		TRUE,               /* gboolean confirm_again, */
-		prefs_set_mserv_report_probs,/* confirm_again_handler,*/
+		"mserv_report_probs",/* confirm_again_key,*/
 		CONF_NULL_HANDLER,  /* ConfHandler ok_handler,*/
 		NULL,               /* don't show "Apply" button */
 		NULL,               /* cancel_handler,*/
@@ -1828,8 +1497,8 @@
        track_nr = 0;
        gtkpod_tracks_statusbar_update();
    }
-   else if (prefs_get_mserv_use() &&
-	    prefs_get_mserv_report_probs() && track)
+   else if (prefs_get_int("mserv_use") &&
+	    prefs_get_int("mserv_report_probs") && track)
    {
        /* add info about it to str */
        buf = get_track_info (track, TRUE);
@@ -1846,18 +1515,18 @@
 }
 
 
-/* Update information of @track from data in original file. This
-   requires that the original filename is available, and that the file
-   exists.
+/* Update information of @track from data in original file. If the
+ * original filename is not available, information will be updated
+ * from the copy on the iPod and a warning is printed.
 
    A list of non-updated tracks can be displayed by calling
    display_non_updated (NULL, NULL). This list can be deleted by
    calling display_non_updated ((void *)-1, NULL);
 
    It is also possible that duplicates get detected in the process --
-   a list of those can be displayed by calling "remove_duplicate
+   a list of those can be displayed by calling "gp_duplicate_remove
    (NULL, NULL)", that list can be deleted by calling
-   "remove_duplicate (NULL, (void *)-1)"*/
+   "gp_duplicate_remove (NULL, (void *)-1)"*/
 void update_track_from_file (iTunesDB *itdb, Track *track)
 {
     ExtraTrackData *etr;
@@ -1871,7 +1540,6 @@
     g_return_if_fail (track);
     etr = track->userdata;
     g_return_if_fail (etr);
-
     /* remember size of track on iPod */
     if (track->transferred) oldsize = track->size;
     else                    oldsize = 0;
@@ -1880,32 +1548,60 @@
     if (etr->charset)  charset_set = TRUE;
     else               charset_set = FALSE;
 
-    if (!prefs_get_update_charset () && charset_set)
+    if (!prefs_get_int("update_charset") && charset_set)
     {   /* we should use the initial charset for the update */
-	if (prefs_get_charset ())
-	{   /* remember the charset originally set */
-	    prefs_charset = g_strdup (prefs_get_charset ());
-	}
+	prefs_charset = prefs_get_string("charset");
 	/* use the charset used when first importing the track */
-	prefs_set_charset (etr->charset);
+	prefs_set_string("charset", etr->charset);
     }
 
-    if (etr->pc_path_locale)
-    {   /* need to copy because we cannot pass track->pc_path_locale to
-	get_track_info_from_file () since track->pc_path gets g_freed
-	there */
-	trackpath = g_strdup (etr->pc_path_locale);
-    }
+    trackpath = get_file_name_from_source (track, SOURCE_PREFER_LOCAL);
 
+    
     if (!(etr->pc_path_locale && *etr->pc_path_locale))
     { /* no path available */
-	display_non_updated (track, _("no filename available"));
+	if (trackpath)
+	{
+	    display_non_updated (track, _("no local filename available, file on the iPod will be used instead"));
+	}
+	else
+	{
+	    if (itdb->usertype & GP_ITDB_TYPE_IPOD)
+	    {
+		display_non_updated (track, _("no local filename available and copy on iPod cannot be found"));
+	    }
+	    else
+	    {
+		display_non_updated (track, _("no local filename available"));
+	    }
+	}
     }
-    else if (get_track_info_from_file (trackpath, track))
+    else if (!g_file_test (etr->pc_path_locale, G_FILE_TEST_EXISTS))
+    {
+	if (trackpath)
+	{
+	    display_non_updated (track, _("local file could not be found, file on the iPod will be used instead"));
+	}
+	else
+	{
+	    if (itdb->usertype & GP_ITDB_TYPE_IPOD)
+	    {
+		display_non_updated (track, _("local file as well as copy on the iPod cannot be found"));
+	    }
+	    else
+	    {
+		display_non_updated (track, _("no local filename available"));
+	    }
+	}
+    }
+
+    if (trackpath && get_track_info_from_file (trackpath, track))
     { /* update successfull */
 	/* remove track from md5 hash and reinsert it
 	   (hash value may have changed!) */
+	gchar *name_on_ipod;
 	gchar *oldhash = etr->md5_hash;
+
 	md5_track_remove (track);
 	/* need to remove the old value manually! */
 	etr->md5_hash = NULL;
@@ -1919,46 +1615,50 @@
 	/* track may have to be copied to iPod on next export */
 	/* since it will copied under the same name as before, we
 	   don't have to manually remove it */
-	if (oldhash && etr->md5_hash)
-	{   /* do we really have to copy the track again? */
-	    if (strcmp (oldhash, etr->md5_hash) != 0)
-	    {
+	name_on_ipod = get_file_name_from_source (track, SOURCE_IPOD);
+	if (name_on_ipod && (strcmp (name_on_ipod, trackpath) != 0))
+	{   /* trackpath is not on the iPod */
+	    if (oldhash && etr->md5_hash)
+	    {   /* do we really have to copy the track again? */
+		if (strcmp (oldhash, etr->md5_hash) != 0)
+		{
+		    track->transferred = FALSE;
+		    data_changed (itdb);
+		}
+	    }
+	    else
+	    {   /* no hash available -- copy! */
 		track->transferred = FALSE;
 		data_changed (itdb);
 	    }
 	}
 	else
-	{   /* no hash available -- copy! */
-	    track->transferred = FALSE;
+	{
 	    data_changed (itdb);
 	}
+	g_free (name_on_ipod);
+	
 	/* set old size if track has to be transferred (for free space
 	 * calculation) */
 	if (!track->transferred) etr->oldsize = oldsize;
 	/* notify display model */
 	pm_track_changed (track);
 	display_updated (track, NULL);
-        C_FREE (oldhash);
+        g_free (oldhash);
     }
-    else
+    else if (trackpath)
     { /* update not successful -- log this track for later display */
-	if (g_file_test (trackpath,
-			 G_FILE_TEST_EXISTS) == FALSE)
-	{
-	    display_non_updated (track, _("file not found"));
-	}
-	else
-	{
-	    display_non_updated (track, _("format not supported"));
-	}
+	display_non_updated (track, _("update failed (format no supported?)"));
     }
 
-    if (!prefs_get_update_charset () && charset_set)
+    if (!prefs_get_int("update_charset") && charset_set)
     {   /* reset charset */
-	prefs_set_charset (prefs_charset);
+	prefs_set_string("charset", prefs_charset);
     }
-    C_FREE (trackpath);
 
+    g_free (trackpath);
+    g_free(prefs_charset);
+
     while (widgets_blocked && gtk_events_pending ())  gtk_main_iteration ();
 }
 
@@ -2022,6 +1722,7 @@
   case FILE_TYPE_MPG:
   case FILE_TYPE_IMAGE:
   case FILE_TYPE_UNKNOWN:
+  case FILE_TYPE_DIRECTORY:
       break;
   }
 
@@ -2030,10 +1731,18 @@
   if (basename)
   {
       gchar *bn_utf8 = charset_to_utf8 (basename);
-      snprintf (str, PATH_MAX, _("Processing '%s'..."), bn_utf8);
-      gtkpod_statusbar_message (str);
+      gtkpod_statusbar_message (_("Processing '%s'..."), bn_utf8);
       while (widgets_blocked && gtk_events_pending ())  gtk_main_iteration ();
       g_free (bn_utf8);
+
+      if (excludefile(basename))
+      {
+          gtkpod_warning (_("File skipped. match exclude masks: '%s'\n"), basename);
+	  while (widgets_blocked && gtk_events_pending ())
+	      gtk_main_iteration ();
+	  g_free (basename);
+	  return FALSE;
+      }
   }
   C_FREE (basename);
 
@@ -2043,7 +1752,7 @@
      just add it to the current playlist (if it's not already there) */
   if (oldtrack)
   {
-      if (prefs_get_update_existing ())
+      if (prefs_get_int("update_existing"))
       {   /* update the information */
 	  update_track_from_file (itdb, oldtrack);
       }
@@ -2072,25 +1781,31 @@
 	  track->transferred = FALSE;
 
 	  /* is 'fname' on the iPod? -- if yes mark as transfered, if
-	   * it's in the ipod_control directory */
+	   * it's in the music directory */
 	  if (itdb->usertype & GP_ITDB_TYPE_IPOD)
 	  {
-	      g_return_val_if_fail (itdb->mountpoint, FALSE);
-	      if (strstr (fname, itdb->mountpoint) == fname)
+	      const gchar *mountpoint = itdb_get_mountpoint (itdb);
+	      g_return_val_if_fail (mountpoint, FALSE);
+	      if (strstr (fname, mountpoint) == fname)
 	      {   /* Yes */
-		  /* is 'fname' in the iPod_Control directory? */
-		  gchar *fname_i = fname + strlen (itdb->mountpoint);
-		  gchar *fname_l;
-		  if (*fname_i == G_DIR_SEPARATOR) ++fname_i;
-		  fname_l = g_ascii_strdown (fname_i, -1);
-		  if (strstr (fname_l, "ipod_control") == fname_l)
-		  {   /* Yes */
-		      track->transferred = TRUE;
-		      track->ipod_path = g_strdup_printf (
-			  "%c%s", G_DIR_SEPARATOR, fname_i);
-		      itdb_filename_fs2ipod (track->ipod_path);
+		  /* is 'fname' in the iPod's Music directory? */
+		  gchar *music_dir = itdb_get_music_dir (mountpoint);
+		  if (music_dir)
+		  {
+		      gchar *cdir = g_strdup_printf ("%s%c", music_dir,
+						     G_DIR_SEPARATOR);
+		      if (g_strncasecmp (fname, cdir, strlen (cdir)) == 0)
+		      {   /* Yes */
+			  gchar *fname_i = fname + strlen (mountpoint);
+			  if (*fname_i == G_DIR_SEPARATOR) ++fname_i;
+			  track->transferred = TRUE;
+			  track->ipod_path = g_strdup_printf (
+			      "%c%s", G_DIR_SEPARATOR, fname_i);
+			  itdb_filename_fs2ipod (track->ipod_path);
+		      }
+		      g_free (music_dir);
+		      g_free (cdir);
 		  }
-		  g_free (fname_l);
 	      }
 	  }
 
@@ -2203,6 +1918,7 @@
     case FILE_TYPE_PLS:
     case FILE_TYPE_IMAGE:
     case FILE_TYPE_UNKNOWN:
+    case FILE_TYPE_DIRECTORY:
 	break;
     }
 
@@ -2230,14 +1946,11 @@
        the track, change the prefs settings temporarily */
     if (etr->charset)  track_charset_set = TRUE;
     else               track_charset_set = FALSE;
-    if (!prefs_get_write_charset () && track_charset_set)
+    if (!prefs_get_int("write_charset") && track_charset_set)
     {   /* we should use the initial charset for the update */
-	if (prefs_get_charset ())
-	{   /* remember the charset originally set */
-	    prefs_charset = g_strdup (prefs_get_charset ());
-	}
+	prefs_charset = prefs_get_string("charset");
 	/* use the charset used when first importing the track */
-	prefs_set_charset (etr->charset);
+	prefs_set_string("charset", etr->charset);
     }
     else
     {   /* we should update the track->charset information */
@@ -2253,13 +1966,13 @@
 			    etr->pc_path_locale);
 	}
     }
-    if (!prefs_get_offline () &&
+    if (!get_offline (itdb) &&
 	track->transferred &&
 	track->ipod_path &&
 	(g_utf8_strlen (track->ipod_path, -1) > 0))
     {
 	/* need to get ipod filename */
-	ipod_fullpath = get_file_name_on_ipod (track);
+	ipod_fullpath = get_file_name_from_source (track, SOURCE_IPOD);
 	if (file_write_info (
 		ipod_fullpath, track) == FALSE)
 	{
@@ -2278,115 +1991,17 @@
 	md5_track_exists_insert (itdb, track);
     }
 
-    if (!prefs_get_write_charset () && track_charset_set)
+    if (!prefs_get_int("write_charset") && track_charset_set)
     {   /* reset charset */
-	prefs_set_charset (prefs_charset);
+	prefs_set_string("charset", prefs_charset);
     }
     g_free (prefs_charset);
     return TRUE;
 }
 
 
-/**
- * get_file_name
- * Function to retrieve the filename on disk for the specified Track.  It
- * returns the valid filename whether the file has been copied to the ipod,
- * or has yet to be copied.  So it's useful for file operations on a track.
- * @s - The Track data structure we want the on disk file for
- * Returns - the filename for this Track. Must be g_free'd.
- */
-gchar* get_file_name(Track *tr)
-{
-    ExtraTrackData *etr;
-    gchar *result = NULL;
-
-    g_return_val_if_fail (tr, result);
-    etr = tr->userdata;
-    g_return_val_if_fail (etr, result);
-
-    if (tr->itdb)
-	result = get_file_name_on_ipod (tr);
-    if(!result &&
-       (etr->pc_path_locale) && (strlen(etr->pc_path_locale) > 0))
-    {
-	result = g_strdup (etr->pc_path_locale);
-    }
-    return result;
-}
-
-
-/* Return the full iPod filename as stored in @s.
-   @s: track
-   Return value: full filename to @s on the iPod or NULL if no
-   filename is set in @s. NOTE: the file does not necessarily
-   exist. NOTE: the in itunesdb.c code works around a problem on some
-   systems (see below) and might return a filename with different case
-   than the original filename. Don't copy it back to @s */
-gchar *get_file_name_on_ipod (Track *tr)
-{
-    gchar *result = NULL;
-
-    if(tr &&  !prefs_get_offline ())
-    {
-	result = itdb_filename_on_ipod (tr);
-    }
-    return(result);
-}
-
-
-/* Return the full path of track @tr on the local harddisk or NULL if
- * no path was stored. Return value must be g_free'd when it is no
- * longer needed */
-gchar *get_file_name_on_harddisk (Track *tr)
-{
-    ExtraTrackData *etr;
-    gchar *result = NULL;
-
-    g_return_val_if_fail (tr, NULL);
-    etr = tr->userdata;
-    g_return_val_if_fail (etr, result);
-
-    if ((etr->pc_path_locale) && (strlen(etr->pc_path_locale) > 0))
-    {
-	result = g_strdup (etr->pc_path_locale);
-    }
-    return result;
-}
-
-
-/* Like get_file_name(), but verifies the track actually exists.  Must
-   g_free return value after use */
-gchar *get_file_name_verified (Track *track)
-{
-    gchar *name = NULL;
-    ExtraTrackData *etr;
-
-    g_return_val_if_fail (track, NULL);
-    etr = track->userdata;
-    g_return_val_if_fail (etr, NULL);
-
-    if (!prefs_get_offline ())
-    {
-	name = get_file_name_on_ipod (track);
-	if (name)
-	{
-	    if (!g_file_test (name, G_FILE_TEST_EXISTS))
-	    {
-		g_free (name);
-		name = NULL;
-	    }
-	}
-    }
-    if(!name && etr->pc_path_locale && (*etr->pc_path_locale))
-    {
-	if (g_file_test (etr->pc_path_locale, G_FILE_TEST_EXISTS))
-	    name = g_strdup (etr->pc_path_locale);
-    }
-    return name;
-}
-
-
 /* Get file name from source @source */
+/* File is guaranteed to exist, otherwise NULL is returned. */
 gchar *get_file_name_from_source (Track *track, FileSource source)
 {
     gchar *result = NULL;
@@ -2399,15 +2014,15 @@
     switch (source)
     {
     case SOURCE_PREFER_LOCAL:
-	if (etr->pc_path_locale && (*etr->pc_path_locale))
-	{
-	    if (g_file_test (etr->pc_path_locale, G_FILE_TEST_EXISTS))
-	    {
-		result = g_strdup (etr->pc_path_locale);
-	    }
-	}
-	if (!result) result = get_file_name_on_ipod (track);
+	result = get_file_name_from_source (track, SOURCE_LOCAL);
+	if (!result)
+	    result = get_file_name_from_source (track, SOURCE_IPOD);
 	break;
+    case SOURCE_PREFER_IPOD:
+	result = get_file_name_from_source (track, SOURCE_IPOD);
+	if (!result)
+	    result = get_file_name_from_source (track, SOURCE_LOCAL);
+	break;
     case SOURCE_LOCAL:
 	if (etr->pc_path_locale && (*etr->pc_path_locale))
 	{
@@ -2418,7 +2033,10 @@
 	}
 	break;
     case SOURCE_IPOD:
-	result = get_file_name_on_ipod (track);
+	if(track &&  !get_offline (track->itdb))
+	{
+	    result = itdb_filename_on_ipod (track);
+	}
 	break;
     }
     return result;
@@ -2429,98 +2047,6 @@
 
 
 
-/* There seems to be a problem with some distributions
-      (kernel versions or whatever -- even identical version
-      numbers don't don't show identical behaviour...): even
-      though vfat is supposed to be case insensitive, a
-     difference is made between upper and lower case under
-     some special circumstances. As in
-     "/iPod_Control/Music/F00" and "/iPod_Control/Music/f00
-     "... If the former filename does not exist, we try to find an
-     existing case insensitive match for each component of the
-     filename.  If we can find such a match, we return it.  Otherwise,
-     we return NULL.*/
-     
-   /* We start by assuming that the ipod mount point exists.  Then,
-    * for each component c of track->ipod_path, we try to find an
-    * entry d in good_path that is case-insensitively equal to c.  If
-    * we find d, we append d to good_path and make the result the new
-    * good_path.  Otherwise, we quit and return NULL.  @root: in local
-    * encoding, @components: in utf8
- */
-gchar * resolve_path(const gchar *root,const gchar * const * components) {
-  gchar *good_path = g_strdup(root);
-  guint32 i;
-
-  if (!root) return NULL;
-    
-  for(i = 0 ; components[i] ; i++) {
-    GDir *cur_dir;
-    gchar *component_as_filename;
-    gchar *test_path;
-    gchar *component_stdcase;
-    const gchar *dir_file=NULL;
-
-    /* skip empty components */
-    if (strlen (components[i]) == 0) continue;
-    component_as_filename = 
-      g_filename_from_utf8(components[i],-1,NULL,NULL,NULL);
-    test_path = g_build_filename(good_path,component_as_filename,NULL);
-    g_free(component_as_filename);
-    if(g_file_test(test_path,G_FILE_TEST_EXISTS)) {
-      /* This component does not require fixup */
-      g_free(good_path);
-      good_path = test_path;
-      continue;
-    }
-    g_free(test_path);
-    component_stdcase = g_utf8_casefold(components[i],-1);
-    /* Case insensitively compare the current component with each entry
-     * in the current directory. */
-
-    cur_dir = g_dir_open(good_path,0,NULL);
-    if (cur_dir) while ((dir_file = g_dir_read_name(cur_dir)))
-    {
-	gchar *file_utf8 = g_filename_to_utf8(dir_file,-1,NULL,NULL,NULL);
-	gchar *file_stdcase = g_utf8_casefold(file_utf8,-1);
-	gboolean found = !g_utf8_collate(file_stdcase,component_stdcase);
-	gchar *new_good_path;
-	g_free(file_stdcase);
-	if(!found)
-	{
-	    /* This is not the matching entry */
-	    g_free(file_utf8);
-	    continue;
-	}
-      
-	new_good_path = dir_file ? g_build_filename(good_path,dir_file,NULL) : NULL;
-	g_free(good_path);
-	good_path= new_good_path;
-	/* This is the matching entry, so we can stop searching */
-	break;
-    }
-    
-    if(!dir_file) {
-      /* We never found a matching entry */
-      g_free(good_path);
-      good_path = NULL;
-    }
-
-    g_free(component_stdcase);
-    if (cur_dir) g_dir_close(cur_dir);
-    if(!good_path || !g_file_test(good_path,G_FILE_TEST_EXISTS))
-      break; /* We couldn't fix this component, so don't try later ones */
-  }
-    
-  if(good_path && g_file_test(good_path,G_FILE_TEST_EXISTS))
-    return good_path;
-          
-  return NULL;
-}
-
-
-
-
 /* ------------------------------------------------------------
 
         Reading of offline playcount file
@@ -2636,7 +2162,7 @@
 	     NULL, 0, NULL,         /* option 1 */
 	     NULL, 0, NULL,         /* option 2 */
 	     TRUE,                  /* confirm_again, */
-	     NULL,                  /* confirm_again_handler,*/
+	     NULL,                  /* confirm_again_key,*/
 	     CONF_NULL_HANDLER,     /* ConfHandler ok_handler,*/
 	     NULL,                  /* don't show "Apply" button */
 	     CONF_NULL_HANDLER,     /* cancel_handler,*/
@@ -2668,8 +2194,12 @@
         Reading of gain tags
 
    ------------------------------------------------------------ */
-/* Set the gain value in @track. Return value: TRUE, if gain could be set */
-gboolean get_gain (Track *track) 
+/**
+ * Read the soundcheck value for @track.
+ *
+ * Return value: TRUE, if gain could be read
+ */
+gboolean read_soundcheck (Track *track) 
 {
     gchar *path;
     gchar *buf;
@@ -2677,18 +2207,20 @@
 
     g_return_val_if_fail (track, FALSE);
 
-    path = get_file_name_verified (track);
+    path = get_file_name_from_source (track, SOURCE_PREFER_LOCAL);
 
     if (path)
     {
 	switch (determine_file_type (path))
 	{
 	case FILE_TYPE_MP3: 
-	    result = mp3_get_gain (path, track);
+	    result = mp3_read_soundcheck (path, track);
 	    break;
-	case FILE_TYPE_M4A: /* FIXME */
-	case FILE_TYPE_M4P: /* FIXME */
-	case FILE_TYPE_M4B: /* FIXME */
+	case FILE_TYPE_M4A:
+	case FILE_TYPE_M4P:
+	case FILE_TYPE_M4B:
+	    result = mp4_read_soundcheck (path, track);
+	    break;
 	case FILE_TYPE_WAV: /* FIXME */
 	case FILE_TYPE_M4V:
 	case FILE_TYPE_MP4:
@@ -2704,6 +2236,7 @@
 	case FILE_TYPE_M3U: 
 	case FILE_TYPE_PLS: 
 	case FILE_TYPE_IMAGE: 
+	case FILE_TYPE_DIRECTORY:
 	    break;
 	}
 	g_free (path);
@@ -2714,8 +2247,8 @@
 	gtkpod_warning (
 	    _("Normalization failed: file not available (%s).\n\n"),
 	    buf);
+	g_free (buf);
     }
     return result;
 }
 
-

Modified: gtkpod/branches/upstream/current/src/file.h
===================================================================
--- gtkpod/branches/upstream/current/src/file.h	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/src/file.h	2006-09-30 00:00:17 UTC (rev 139)
@@ -1,4 +1,4 @@
-/* Time-stamp: <2005-12-11 01:53:26 jcs>
+/* Time-stamp: <2006-09-01 22:00:03 jcs>
 |
 |  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
 |  Part of the gtkpod project.
@@ -24,7 +24,7 @@
 |
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: file.h,v 1.47 2005/12/10 17:04:28 jcsjcs Exp $
+|  $Id: file.h,v 1.55 2006/09/01 13:18:42 jcsjcs Exp $
 */
 
 #ifndef __FILE_H__
@@ -54,12 +54,14 @@
     FILE_TYPE_MPG,
     FILE_TYPE_M3U,
     FILE_TYPE_PLS,
-    FILE_TYPE_IMAGE
+    FILE_TYPE_IMAGE,
+    FILE_TYPE_DIRECTORY
 } FileType;
 
 typedef enum
 {
     SOURCE_PREFER_LOCAL = 0,
+    SOURCE_PREFER_IPOD,
     SOURCE_LOCAL,
     SOURCE_IPOD
 } FileSource;
@@ -82,23 +84,21 @@
 void update_track_from_file (iTunesDB *itdb, Track *track);
 void update_tracks (GList *selected_tracks);
 void mserv_from_file_tracks (GList *selected_tracks);
-void sync_tracks (GList *selected_tracks);
 void display_non_updated (Track *track, gchar *txt);
 void display_updated (Track *track, gchar *txt);
 void display_mserv_problems (Track *track, gchar *txt);
 iTunesDB *gp_import_itdb (iTunesDB *old_itdb, const gint type,
 			  const gchar *mp, const gchar *name_off,
 			  const gchar *name_loc);
-void gp_merge_ipod_itdbs (void);
-void gp_merge_itdb (iTunesDB *old_itdb);
+void gp_load_ipods (void);
+iTunesDB *gp_merge_itdb (iTunesDB *old_itdb);
+iTunesDB *gp_load_ipod (iTunesDB *itdb);
+gboolean gp_eject_ipod(iTunesDB *itdb);
+gboolean gp_save_itdb (iTunesDB *itdb);
 void handle_export (void);
 void data_changed (iTunesDB *itdb);
+void data_unchanged (iTunesDB *itdb);
 gboolean files_are_saved (void);
-void gp_itdb_set_mountpoint (const gchar *mp);
-gchar* get_file_name(Track *tr);
-gchar* get_file_name_on_ipod(Track *tr);
-gchar *get_file_name_on_harddisk (Track *tr);
-gchar *get_file_name_verified (Track *tr);
 gchar *get_file_name_from_source (Track *track, FileSource source);
 gchar* get_preferred_track_name_format(Track *s);
 void mark_track_for_deletion (iTunesDB *itdb, Track *track);
@@ -106,10 +106,9 @@
 void gp_info_deleted_tracks (iTunesDB *itdb,
 			     gdouble *size, guint32 *num);
 void update_charset_info (Track *track);
-gchar *resolve_path(const gchar *,const gchar * const *);
 void parse_offline_playcount (void);
 
-gboolean get_gain(Track *track);
+gboolean read_soundcheck (Track *track);
 
 /* file_export.c */
 void export_files_init (GList *tracks, GList **filenames,

Modified: gtkpod/branches/upstream/current/src/file_export.c
===================================================================
--- gtkpod/branches/upstream/current/src/file_export.c	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/src/file_export.c	2006-09-30 00:00:17 UTC (rev 139)
@@ -1,4 +1,4 @@
-/* Time-stamp: <2006-03-04 11:00:52 jcs>
+/* Time-stamp: <2006-06-25 00:22:56 jcs>
 |
 |  Copyright (C) 2002 Corey Donohoe <atmos at atmos.org>
 |  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
@@ -25,25 +25,26 @@
 | 
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: file_export.c,v 1.58 2006/03/04 02:15:46 jcsjcs Exp $
+|  $Id: file_export.c,v 1.64 2006/06/24 15:39:22 jcsjcs Exp $
 */
 #ifdef HAVE_CONFIG_H
 #  include <config.h>
 #endif
 
-#include "misc.h"
-#include "prefs.h"
+#include "charset.h"
 #include "file.h"
-#include "charset.h"
 #include "info.h"
 #include "md5.h"
+#include "misc.h"
+#include "misc_track.h"
+#include "prefs.h"
+#include <errno.h>
 #include <limits.h>
+#include <math.h>
 #include <stdio.h>
-#include <errno.h>
+#include <string.h>
 #include <sys/stat.h>
 #include <sys/types.h>
-#include <string.h>
-#include <math.h>
 #include <unistd.h>
 
 /* Structure to keep all necessary information */
@@ -285,11 +286,13 @@
 	gchar *from_file = NULL;
 	if (fcd->track->itdb->usertype & GP_ITDB_TYPE_IPOD)
 	{
-	    from_file = get_file_name_on_ipod (fcd->track);
+	    from_file = get_file_name_from_source (fcd->track,
+						   SOURCE_IPOD);
 	}
 	else if (fcd->track->itdb->usertype & GP_ITDB_TYPE_LOCAL)
 	{
-	    from_file = get_file_name_on_harddisk (fcd->track);
+	    from_file = get_file_name_from_source (fcd->track,
+						   SOURCE_LOCAL);
 	}
 	else
 	{
@@ -320,8 +323,10 @@
 	}
 	else
 	{
+	    gchar *buf = get_track_info (fcd->track, FALSE);
 	    gtkpod_warning (_("Could find file for '%s' on the iPod\n"),
-			    get_track_info (fcd->track, FALSE));
+			    buf);
+	    g_free (buf);
 	}
 	g_free(dest_file);
     }
@@ -432,7 +437,6 @@
 	for(l = fcd->tracks; l && !abort; l = l->next)
 	{
 	    Track *tr = (Track*)l->data;
-	    gchar *buf;
 
 	    fcd->track = tr;
 	    copied += tr->size;
@@ -469,15 +473,18 @@
 	    }
 
 	    ++count;
-	    if (count == 1)  /* we need longer timeout */
-		prefs_set_statusbar_timeout (3*STATUSBAR_TIMEOUT);
+	    if (count == 1) /* we need longer timeout */
+	    {
+		gtkpod_statusbar_timeout (3*STATUSBAR_TIMEOUT);
+	    }
+	        
 	    if (count == n)  /* we need to reset timeout */
-		prefs_set_statusbar_timeout (0);
-	    buf = g_strdup_printf (ngettext ("Copied %d of %d track.",
-					     "Copied %d of %d tracks.", n),
-				   count, n);
-	    gtkpod_statusbar_message(buf);
-	    g_free (buf);
+	    {
+		gtkpod_statusbar_timeout (0);
+	    }
+	    gtkpod_statusbar_message (ngettext ("Copied %d of %d track.",
+						"Copied %d of %d tracks.", n),
+				      count, n);
 
 	    fraction = copied/total;
 
@@ -543,14 +550,22 @@
     struct fcd *fcd;
     GtkWidget *fc;
     GladeXML *export_files_xml;
+    iTunesDB *itdb = NULL;
 
+    if (tracks)
+    {
+	Track *tr = tracks->data;
+	g_return_if_fail (tr);
+	itdb = tr->itdb;
+	g_return_if_fail (itdb);
+    }
+
     /* no export possible if in offline mode */
-    if (tracks && prefs_get_offline ())
+    if (tracks && get_offline (itdb))
     {
 	Track *tr = tracks->data;
 	g_return_if_fail (tr);
-	g_return_if_fail (tr->itdb);
-	if (tr->itdb->usertype & GP_ITDB_TYPE_IPOD)
+	if (itdb->usertype & GP_ITDB_TYPE_IPOD)
 	{
 	    GtkWidget *dialog = gtk_message_dialog_new (
 		GTK_WINDOW (gtkpod_window),
@@ -707,7 +722,7 @@
     /* drag is from iPod to local database */
 
     /* no drag possible if in offline mode */
-    if (prefs_get_offline ())
+    if (get_offline (itdb_s))
     {
 	GtkWidget *dialog = gtk_message_dialog_new (
 	    GTK_WINDOW (gtkpod_window),
@@ -937,7 +952,6 @@
     if (file)
     {
 	guint i,n;
-	gchar *buf;
 
 	switch (type)
 	{
@@ -1004,11 +1018,9 @@
 	    break;
 	}
 	fclose (file);
-	buf = g_strdup_printf (
+	gtkpod_statusbar_message  (
 	    ngettext ("Created playlist with one track.",
 		      "Created playlist with %d tracks.", n), n);
-	gtkpod_statusbar_message (buf);
-	g_free (buf);
     }
     else
     {

Modified: gtkpod/branches/upstream/current/src/file_itunesdb.c
===================================================================
--- gtkpod/branches/upstream/current/src/file_itunesdb.c	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/src/file_itunesdb.c	2006-09-30 00:00:17 UTC (rev 139)
@@ -1,4 +1,4 @@
-/* Time-stamp: <2006-02-25 22:56:41 jcs>
+/* Time-stamp: <2006-06-25 15:57:03 jcs>
 |
 |  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
 |  Part of the gtkpod project.
@@ -24,7 +24,7 @@
 |
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: file_itunesdb.c,v 1.75 2006/02/25 14:01:43 jcsjcs Exp $
+|  $Id: file_itunesdb.c,v 1.99 2006/06/25 16:08:22 jcsjcs Exp $
 */
 
 #ifdef HAVE_CONFIG_H
@@ -42,7 +42,9 @@
 #include "misc.h"
 #include "misc_track.h"
 #include "prefs.h"
+#include "syncdir.h"
 #include "tools.h"
+#include "ipod_init.h"
 
 /*------------------------------------------------------------------*\
  *                                                                  *
@@ -57,6 +59,7 @@
     guint ipod_id;
     gchar *pc_path_locale;
     gchar *pc_path_utf8;
+    time_t mtime;
     gchar *thumb_path_locale;
     gchar *thumb_path_utf8;
     gchar *md5_hash;
@@ -66,12 +69,6 @@
     gint32 oldsize;
     guint32 playcount;
     guint32 rating;        /* still read but never written */
-    guint32 peak_signal;
-    gdouble radio_gain;
-    gdouble audiophile_gain;
-    gboolean peak_signal_set;
-    gboolean radio_gain_set;
-    gboolean audiophile_gain_set;
     gboolean transferred;
 };
 
@@ -89,6 +86,10 @@
 static float extendedinfoversion = 0.0;
 
 
+/* Some declarations */
+static gboolean gp_write_itdb (iTunesDB *itdb);
+
+
 /* fills in extended info if available */
 /* num/total are used to give updates in case the md5 checksums have
    to be matched against the files which is very time consuming */
@@ -110,17 +111,15 @@
   }
   if (!sei && extendedinfohash_md5)
   {
-      gchar *buf = g_strdup_printf (
+      gtkpod_statusbar_message (
 	  _("Matching MD5 checksum for file %d/%d"),
 	  num, total);
-      gtkpod_statusbar_message (buf);
       while (widgets_blocked && gtk_events_pending ())
 	  gtk_main_iteration ();
-      g_free (buf);
 
       if (!etr->md5_hash)
       {
-	  gchar *filename = get_file_name_on_ipod (track);
+	  gchar *filename = get_file_name_from_source (track, SOURCE_IPOD);
 	  etr->md5_hash = md5_hash_on_filename (filename, FALSE);
 	  g_free (filename);
       }
@@ -132,7 +131,10 @@
   if (sei) /* found info for this id! */
   {
       if (sei->pc_path_locale && !etr->pc_path_locale)
+      {
 	  etr->pc_path_locale = g_strdup (sei->pc_path_locale);
+	  etr->mtime = sei->mtime;
+      }
       if (sei->pc_path_utf8 && !etr->pc_path_utf8)
 	  etr->pc_path_utf8 = g_strdup (sei->pc_path_utf8);
       if (sei->thumb_path_locale && !etr->thumb_path_locale)
@@ -147,27 +149,6 @@
 	  etr->hostname = g_strdup (sei->hostname);
       etr->oldsize = sei->oldsize;
       track->playcount += sei->playcount;
-      if (sei->peak_signal_set)
-      {
-	  etr->peak_signal_set = sei->peak_signal_set;
-	  etr->peak_signal = sei->peak_signal;
-      }
-      if (extendedinfoversion > 0.81)
-      {
-	  /* before 0.82 we used gint instead of double, so re-reading
-	     the tags is safer (0.81 was CVS only and was a bit messed
-	     up for a while) */
-	  if (sei->radio_gain_set)
-	  {
-	      etr->radio_gain_set = sei->radio_gain_set;
-	      etr->radio_gain = sei->radio_gain;
-	  }
-	  if (sei->audiophile_gain_set)
-	  {
-	      etr->audiophile_gain_set = sei->audiophile_gain_set;
-	      etr->audiophile_gain = sei->audiophile_gain;
-	  }
-      }
       /* FIXME: This means that the rating can never be reset to 0
        * by the iPod */
       if (track->rating == 0)
@@ -384,21 +365,10 @@
 		sei->transferred = atoi (arg);
 	    else if (g_ascii_strcasecmp (line, "filename_ipod") == 0)
 		sei->ipod_path = g_strdup (arg);
-	    else if (g_ascii_strcasecmp (line, "peak_signal") == 0)
+	    else if (g_ascii_strcasecmp (line, "pc_mtime") == 0)
 	    {
-		sei->peak_signal_set = TRUE;
-		sei->peak_signal = g_ascii_strtod (arg, NULL);
+		sei->mtime = (time_t)g_ascii_strtoull (arg, NULL, 10);
 	    }
-	    else if (g_ascii_strcasecmp (line, "radio_gain") == 0)
-	    {
-		sei->radio_gain_set = TRUE;
-		sei->radio_gain = g_ascii_strtod (arg, NULL);
-	    }
-	    else if (g_ascii_strcasecmp (line, "audiophile_gain") == 0)
-	    {
-		sei->audiophile_gain_set = TRUE;
-		sei->audiophile_gain = g_ascii_strtod (arg, NULL);
-	    }
     }
     g_free (md5);
     fclose (fp);
@@ -430,14 +400,21 @@
     iTunesDB *itdb = NULL;
     GError *error = NULL;
     gint32 total, num;
+    gboolean offline;
 
+
     g_return_val_if_fail (!(type & GP_ITDB_TYPE_LOCAL) || name_loc, NULL);
     g_return_val_if_fail (!(type & GP_ITDB_TYPE_IPOD) || 
 			  (mp && name_off), NULL);
     g_return_val_if_fail (cfgdir, NULL);
 
+    if (old_itdb)
+	offline = get_offline (old_itdb);
+    else
+	offline = FALSE;
+
     block_widgets ();
-    if (prefs_get_offline() || (type & GP_ITDB_TYPE_LOCAL))
+    if (offline || (type & GP_ITDB_TYPE_LOCAL))
     { /* offline or local database - requires extended info */
 	gchar *name_ext;
 	gchar *name_db;
@@ -455,7 +432,7 @@
 
 	if (g_file_test (name_db, G_FILE_TEST_EXISTS))
 	{
-	    if (prefs_get_write_extended_info ())
+	    if (prefs_get_int("write_extended_info"))
 	    {
 		if (!read_extended_info (name_ext, name_db))
 		{
@@ -508,13 +485,17 @@
     }
     else
     { /* GP_ITDB_TYPE_IPOD _and_ iPod is connected */
-	const gchar *ext_db[] = { "iPod_Control","iTunes","iTunesDB.ext",NULL};
-	const gchar *db[] = {"iPod_Control","iTunes","iTunesDB",NULL};
-	gchar *name_ext = resolve_path (mp, ext_db);
-	gchar *name_db = resolve_path (mp, db);
+	gchar *name_ext=NULL, *name_db=NULL;
+
+	gchar *itunes_dir = itdb_get_itunes_dir (mp);
+	if (itunes_dir)
+	{
+	    name_ext = itdb_get_path (itunes_dir, "iTunesDB.ext");
+	    name_db  = itdb_get_path (itunes_dir, "iTunesDB");
+	}
 	if (name_db)
 	{
-	    if (prefs_get_write_extended_info ())
+	    if (prefs_get_int("write_extended_info"))
 	    {
 		if (!read_extended_info (name_ext, name_db))
 		{
@@ -547,12 +528,13 @@
 	    gchar *name = g_build_filename (
 		mp,
 		"iPod_Control","iTunes","iTunesDB",NULL);
-	    gtkpod_warning (_("'%s' does not exist. Import aborted.\n\n"),
+	    gtkpod_warning (_("'%s' (or similar) does not exist. Import aborted.\n\n"),
 			    name);
 	    g_free (name);
 	}
 	g_free (name_ext);
 	g_free (name_db);
+	g_free (itunes_dir);
     }
 
     if (!itdb)
@@ -567,18 +549,20 @@
     eitdb = itdb->userdata;
     g_return_val_if_fail (eitdb, (release_widgets(), NULL));
 
+    eitdb->offline = offline;
+
     /* fill in additional info */
     itdb->usertype = type;
     if (type & GP_ITDB_TYPE_IPOD)
     {
-	if (prefs_get_offline ())
+	if (offline)
 	{
 	    itdb_set_mountpoint (itdb, mp);
 	    g_free (itdb->filename);
 	    itdb->filename = NULL;
 	}
 	eitdb->offline_filename = g_strdup (name_off);
-    }	    
+    }
 
     total = g_list_length (itdb->tracks);
     num = 1;
@@ -592,9 +576,19 @@
 	g_return_val_if_fail (etr, (release_widgets(), NULL));
 	fill_in_extended_info (track, total, num);
 	gp_track_validate_entries (track);
-	/* set new default value for flag1 (unknown) */
-	if (track->flag1 == 0)
-	    track->flag1 = 0x02;
+	/* properly set value for has_artwork */
+	if ((track->has_artwork == 0x00) ||
+	    ((track->has_artwork == 0x02) &&
+	     (extendedinfoversion > 0.0) && (extendedinfoversion <= 0.99)))
+	{   /* if has_artwork is not set (0x00), or it has been
+	       (potentially wrongly) set to 0x02 by gtkpod V0.99 or
+	       smaller, determine the correct(?) value */
+	    if (track->artwork->thumbnails)
+		track->has_artwork = 0x01;
+	    else
+		track->has_artwork = 0x02;
+	}
+
 	/* set unk208 to audio if unset (important only for iPod Video) */
 	if (track->unk208 == 0)
 	    track->unk208 = 0x00000001;
@@ -627,7 +621,7 @@
     gp_md5_hash_tracks_itdb (itdb);
 
     /* mark the data as unchanged */
-    eitdb->data_changed = FALSE;
+    data_unchanged (itdb);
     /* set mark that this itdb struct contains an imported iTunesDB */
     eitdb->itdb_imported = TRUE;
 
@@ -700,16 +694,13 @@
 	eitdb->data_changed = old_eitdb->data_changed;
     }
 
-    /* update all live SPLs */
-    itdb_spl_update_live (itdb);
-
     release_widgets();
 
     return itdb;
 }
 
 /* attempts to import all iPod databases */
-void gp_merge_ipod_itdbs (void)
+void gp_load_ipods (void)
 {
     struct itdbs_head *itdbs_head;
     GList *gl;
@@ -728,10 +719,9 @@
 	g_return_if_fail (eitdb);
 	if ((itdb->usertype & GP_ITDB_TYPE_IPOD) && !eitdb->itdb_imported)
 	{
-	    gp_merge_itdb (itdb);
+	    gp_load_ipod (itdb);
 	}
     }
-    display_disable_gtkpod_import_buttons ();
 }
 
 
@@ -743,44 +733,235 @@
  * ->eitdb->offline_filename must be set according to usertype and
  * will be used to read the new itdb
  *
+ * Return value: pointer to the new repository
  */
-void gp_merge_itdb (iTunesDB *old_itdb)
+iTunesDB *gp_merge_itdb (iTunesDB *old_itdb)
 {
     ExtraiTunesDBData *old_eitdb;
     iTunesDB *new_itdb;
 
-    g_return_if_fail (old_itdb);
+    g_return_val_if_fail (old_itdb, NULL);
     old_eitdb = old_itdb->userdata;
-    g_return_if_fail (old_eitdb);
+    g_return_val_if_fail (old_eitdb, NULL);
 
     if (old_itdb->usertype & GP_ITDB_TYPE_LOCAL)
     {
-	g_return_if_fail (old_itdb->filename);
+	g_return_val_if_fail (old_itdb->filename, NULL);
 
 	new_itdb = gp_import_itdb (old_itdb, old_itdb->usertype,
 				   NULL, NULL, old_itdb->filename);
     }
     else if (old_itdb->usertype & GP_ITDB_TYPE_IPOD)
     {
-	g_return_if_fail (old_itdb->mountpoint);
-	g_return_if_fail (old_eitdb->offline_filename);
+	const gchar *mountpoint = itdb_get_mountpoint (old_itdb);
+	g_return_val_if_fail (mountpoint, NULL);
+	g_return_val_if_fail (old_eitdb->offline_filename, NULL);
 
 	new_itdb = gp_import_itdb (old_itdb, old_itdb->usertype,
-				   old_itdb->mountpoint,
+				   mountpoint,
 				   old_eitdb->offline_filename,
 				   NULL);
     }
     else
-	g_return_if_reached ();
+	g_return_val_if_reached (NULL);
 
     if (new_itdb)
+    {
 	gp_replace_itdb (old_itdb, new_itdb);
 
-    gp_update_itdb_prefs ();
+	/* take care of autosync... */
+	sync_all_playlists (new_itdb);
+
+	/* update all live SPLs */
+	itdb_spl_update_live (new_itdb);
+    }
+
     gtkpod_tracks_statusbar_update ();
+
+    return new_itdb;
 }
 
 
+/**
+ * gp_load_ipod: loads the contents of an iPod into @itdb. If data
+ * already exists in @itdb, data is merged.
+ *
+ * @itdb: repository to load iPod contents into. mountpoint must be
+ * set, and the iPod must not be loaded already
+ * (eitdb->itdb_imported).
+ *
+ * Return value: the new repository holding the contents of the iPod.
+ */
+iTunesDB *gp_load_ipod (iTunesDB *itdb)
+{
+    ExtraiTunesDBData *eitdb;
+    iTunesDB *new_itdb = NULL;
+    gchar *mountpoint;
+    gchar *itunesdb;
+    gboolean load = TRUE;
+
+    g_return_val_if_fail (itdb, NULL);
+    g_return_val_if_fail (itdb->usertype & GP_ITDB_TYPE_IPOD, NULL);
+    eitdb = itdb->userdata;
+    g_return_val_if_fail (eitdb, NULL);
+    g_return_val_if_fail (eitdb->itdb_imported == FALSE, NULL);
+
+    mountpoint = get_itdb_prefs_string (itdb, KEY_MOUNTPOINT);
+    call_script ("gtkpod.load", mountpoint, NULL);
+
+    itdb_device_set_mountpoint (itdb->device, mountpoint);
+
+    itunesdb = itdb_get_itunesdb_path (mountpoint);
+    if (!itunesdb)
+    {
+	gchar *str = g_strdup_printf (_("Could not find iPod directory structure at '%s'.\nIf you are sure that the iPod is properly mounted at '%s', gtkpod can create the directory structure for you.\n\nDo you want to create the directory structure now?\n"), mountpoint, mountpoint);
+	GtkWidget *dialog = gtk_message_dialog_new (
+	    GTK_WINDOW (gtkpod_window),
+	    GTK_DIALOG_DESTROY_WITH_PARENT,
+	    GTK_MESSAGE_WARNING,
+	    GTK_BUTTONS_YES_NO,
+	    str);
+	gint result = gtk_dialog_run (GTK_DIALOG (dialog));
+	gtk_widget_destroy (dialog);
+	g_free (str);
+
+	if (result == GTK_RESPONSE_YES)
+	{
+	    load = gp_ipod_init (itdb);
+	}
+	else
+	{
+	    load = FALSE;
+	}
+    }
+    g_free (itunesdb);
+    g_free (mountpoint);
+
+    if (load)
+    {
+	new_itdb = gp_merge_itdb (itdb);
+	if (new_itdb)
+	{
+	    gchar *old_model = get_itdb_prefs_string (new_itdb,
+						      KEY_IPOD_MODEL);
+	    gchar *new_model = itdb_device_get_sysinfo (new_itdb->device,
+							"ModelNumStr");
+
+	    if (!old_model && new_model)
+	    {
+		set_itdb_prefs_string (new_itdb, KEY_IPOD_MODEL, new_model);
+	    }
+	    else if (old_model && !new_model)
+	    {
+		gp_ipod_init_set_model (new_itdb, old_model);
+	    }
+	    else if (!old_model && !new_model)
+	    {
+		gp_ipod_init_set_model (new_itdb, NULL);
+	    }
+	    else
+	    {   /* old_model && new_model are set */
+#if 0
+		const gchar *old_ptr = old_model;
+		const gchar *new_ptr = new_model;
+		/* Normalize model number */
+		if (isalpha (old_model[0]))   ++old_ptr;
+		if (isalpha (new_model[0]))   ++new_ptr;
+		if (strcmp (old_ptr, new_ptr) != 0)
+		{   /* Model number has changed -- confirm */
+                }
+#endif		
+		set_itdb_prefs_string (new_itdb, KEY_IPOD_MODEL, new_model);
+	    }
+	}
+    }
+    return new_itdb;
+}
+
+
+/**
+ * gp_eject_ipod: store @itdb and call ~/.gtkpod/gtkpod.eject with the
+ * mountpoint as parameter. Then @itdb is deleted and replaced with an
+ * empty version. eitdb->ejected is set.
+ *
+ * @itdb: must be an iPod itdb (eject does not make sense otherwise)
+ *
+ * Return value: TRUE if saving was successful, FALSE otherwise.
+ */
+gboolean gp_eject_ipod (iTunesDB *itdb)
+{
+
+    g_return_val_if_fail (itdb, FALSE);
+    g_return_val_if_fail (itdb->usertype & GP_ITDB_TYPE_IPOD, FALSE);
+
+    if (gp_save_itdb (itdb))
+    {
+	gint index;
+	gchar *mountpoint;
+	iTunesDB *new_itdb;
+
+	mountpoint = get_itdb_prefs_string (itdb, KEY_MOUNTPOINT);
+	call_script ("gtkpod.eject", mountpoint, FALSE);
+	g_free (mountpoint);
+
+	index = get_itdb_index (itdb);
+	new_itdb = setup_itdb_n (index);
+	if (new_itdb)
+	{
+	    ExtraiTunesDBData *new_eitdb;
+
+	    new_eitdb = new_itdb->userdata;
+	    g_return_val_if_fail (new_eitdb, TRUE);
+
+	    gp_replace_itdb (itdb, new_itdb);
+
+	    new_eitdb->ipod_ejected = TRUE;
+    	}
+	return TRUE;
+    }
+    return FALSE;
+}
+
+
+/**
+ * gp_save_itdb: Save a repository after updating smart playlists. If
+ * the repository is an iPod, contacts, notes and calendar are also
+ * updated.
+ *
+ * @itdb: repository to save
+ *
+ * return value: TRUE on succes, FALSE when an error occured.
+ */
+gboolean gp_save_itdb (iTunesDB *itdb)
+{
+    Playlist *pl;
+    gboolean success;
+    g_return_val_if_fail (itdb, FALSE);
+
+    /* update smart playlists before writing */
+    itdb_spl_update_live (itdb);
+    pl = pm_get_selected_playlist ();
+    if (pl && (pl->itdb == itdb) &&
+	pl->is_spl && pl->splpref.liveupdate)
+    {   /* Update display if necessary */
+	st_redisplay (0);
+    }
+
+    success = gp_write_itdb (itdb);
+
+    if (itdb->usertype & GP_ITDB_TYPE_IPOD)
+    {
+	if (get_itdb_prefs_int (itdb, "concal_autosync"))
+	{
+	    tools_sync_all (itdb);
+	}
+    }
+
+    return success;
+}
+
+
+
 /*------------------------------------------------------------------*\
  *                                                                  *
  *      Functions concerning deletion of tracks                      *
@@ -935,28 +1116,12 @@
 	  fprintf (fp, "charset=%s\n", etr->charset);
       if (!track->transferred && etr->oldsize)
 	  fprintf (fp, "oldsize=%d\n", etr->oldsize);
-      if (etr->peak_signal_set)
-      {
-	  gchar buf[20];
-	  g_ascii_dtostr (buf, 20, (gdouble)etr->peak_signal);
-	  fprintf (fp, "peak_signal=%s\n", buf);
-      }
-      if (etr->radio_gain_set)
-      {
-	  gchar buf[20];
-	  g_ascii_dtostr (buf, 20, etr->radio_gain);
-	  fprintf (fp, "radio_gain=%s\n", buf);
-      }
-      if (etr->audiophile_gain_set)
-      {
-	  gchar buf[20];
-	  g_ascii_dtostr (buf, 20, etr->audiophile_gain);
-	  fprintf (fp, "audiophile_gain=%s\n", buf);
-      }
+      if (etr->mtime)
+	  fprintf (fp, "pc_mtime=%llu\n", (unsigned long long)etr->mtime);
       fprintf (fp, "transferred=%d\n", track->transferred);
       while (widgets_blocked && gtk_events_pending ())  gtk_main_iteration ();
   }
-  if (prefs_get_offline())
+  if (get_offline(itdb))
   { /* we are offline and also need to export the list of tracks that
        are to be deleted */
       for(gl = eitdb->pending_deletion; gl; gl = gl->next)
@@ -997,18 +1162,17 @@
 
 /* Threaded copy of ipod track */
 /* Returns: GError *error */
-static gpointer th_copy (gpointer s)
+static gpointer th_copy (gpointer data)
 {
-    Track *track = s;
+    Track *track = data;
     ExtraTrackData *etr;
-    gchar *mount = charset_from_utf8 (prefs_get_ipod_mount ());
     GError *error = NULL;
     g_return_val_if_fail (track, NULL);
     etr = track->userdata;
     g_return_val_if_fail (etr, NULL);
 
     itdb_cp_track_to_ipod (track, etr->pc_path_locale, &error);
-    g_free (mount);
+
     /* delete old size */
     if (track->transferred) etr->oldsize = 0;
 #ifdef G_THREADS_ENABLED
@@ -1029,25 +1193,29 @@
 
 
 /* check if iPod directory stucture is present */
-static gboolean ipod_dirs_present (gchar *mountpoint)
+static gboolean ipod_dirs_present (const gchar *mountpoint)
 {
-    const gchar *music[] = {"iPod_Control", "Music", "F00", NULL},
-      *itunes[] = {"iPod_Control","iTunes",NULL};
     gchar *file;
+    gchar *dir;
     gboolean result = TRUE;
 
     g_return_val_if_fail (mountpoint, FALSE);
 
-    file = resolve_path(mountpoint, music);
-    if(!file || !g_file_test(file,G_FILE_TEST_IS_DIR))
+    dir = itdb_get_music_dir (mountpoint);
+    if (!dir)
+	return FALSE;
+
+    file = itdb_get_path (dir, "F00");
+    if (!file || !g_file_test(file, G_FILE_TEST_IS_DIR))
+	result = FALSE;
+    g_free (file);
+    g_free (dir);
+
+    dir = itdb_get_itunes_dir (mountpoint);
+    if(!dir || !g_file_test(dir, G_FILE_TEST_IS_DIR))
       result = FALSE;
-    g_free(file);
-    
-    file = resolve_path(mountpoint, itunes);
-    if(!file || !g_file_test(file,G_FILE_TEST_IS_DIR))
-      result = FALSE;
-    g_free(file);
-    
+    g_free(dir);
+
     return result;
 }
 
@@ -1133,7 +1301,7 @@
 
   if (itdb->usertype & GP_ITDB_TYPE_IPOD)
   {
-      g_return_val_if_fail (itdb->mountpoint, FALSE);
+      g_return_val_if_fail (itdb_get_mountpoint (itdb), FALSE);
   }
 
   abort_flag = FALSE;
@@ -1154,12 +1322,12 @@
       if (itdb->usertype & GP_ITDB_TYPE_IPOD)
       {
 	  track->itdb = itdb;
-	  filename = itdb_filename_on_ipod (track);
+	  filename = get_file_name_from_source (track, SOURCE_IPOD);
 	  track->itdb = NULL;
       }
       if (itdb->usertype & GP_ITDB_TYPE_LOCAL)
       {
-	  filename = get_file_name_on_harddisk (track);
+	  filename = get_file_name_from_source (track, SOURCE_LOCAL);
       }
 
       if(filename)
@@ -1218,7 +1386,6 @@
 {
   GList *gl;
   gint count, n;
-  gchar *buf;
   gboolean result = TRUE;
   static gboolean abort_flag;
   GtkWidget *dialog, *progress_bar;
@@ -1249,7 +1416,6 @@
   g_free (progtext);
 
   /* count number of tracks to be transferred */
-  if (n != 0)  display_disable_gtkpod_import_buttons();
   count = 0; /* tracks transferred */
   start = time (NULL);
 
@@ -1303,15 +1469,18 @@
 				  and more files to the iPod */
 	  ++count;
 	  if (count == 1)  /* we need longer timeout */
-	      prefs_set_statusbar_timeout (3*STATUSBAR_TIMEOUT);
+	  {
+	      gtkpod_statusbar_timeout (3*STATUSBAR_TIMEOUT);
+	  }
 	  if (count == n)  /* we need to reset timeout */
-	      prefs_set_statusbar_timeout (0);
-	  buf = g_strdup_printf (ngettext ("Copied %d of %d new track.",
-					   "Copied %d of %d new tracks.", n),
-				 count, n);
-	  gtkpod_statusbar_message(buf);
-	  g_free (buf);
-	  
+	  {
+	      gtkpod_statusbar_timeout (0);
+          }
+	  gtkpod_statusbar_message (
+	      ngettext ("Copied %d of %d new track.",
+			"Copied %d of %d new tracks.", n),
+	      count, n);
+
 	  gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR (progress_bar),
 					(gdouble) count/n);
 	  
@@ -1331,17 +1500,18 @@
       }
       while (widgets_blocked && gtk_events_pending ())  gtk_main_iteration ();
   } /* for (.;.;.) */
+
   if (abort_flag)      result = FALSE;   /* negative result if user aborted */
   if (result == FALSE)
       gtkpod_statusbar_message (_("Some tracks were not written to iPod. Export aborted!"));
-  prefs_set_statusbar_timeout (0);
+  gtkpod_statusbar_timeout (0);
   gtk_widget_destroy (dialog);
   while (widgets_blocked && gtk_events_pending ())  gtk_main_iteration ();
   return result;
 }
 
 
-gboolean gp_write_itdb (iTunesDB *itdb)
+static gboolean gp_write_itdb (iTunesDB *itdb)
 {
   gchar *cfgdir;
   gboolean success = TRUE;
@@ -1366,17 +1536,15 @@
       }
       else if (itdb->usertype & GP_ITDB_TYPE_IPOD)
       {
-	  if (prefs_get_offline ())
+	  if (get_offline (itdb))
 	  {
 	      tunes = g_strdup (eitdb->offline_filename);
 	  }
 	  else
 	  {
-	      const gchar *itunes_components[] = {"iPod_Control",
-						  "iTunes",
-						  "iTunesDB", NULL};
-	      g_return_val_if_fail (itdb->mountpoint, FALSE);
-	      tunes = resolve_path (itdb->mountpoint, itunes_components);
+	      const gchar *mountpoint = itdb_get_mountpoint (itdb);
+	      g_return_val_if_fail (mountpoint, FALSE);
+	      tunes = itdb_get_itunesdb_path (mountpoint);
 	  }
       }
       else
@@ -1406,15 +1574,16 @@
 
   block_widgets (); /* block user input */
 
-  if((itdb->usertype & GP_ITDB_TYPE_IPOD) && !prefs_get_offline ())
+  if((itdb->usertype & GP_ITDB_TYPE_IPOD) && !get_offline (itdb))
   {
-      g_return_val_if_fail (itdb->mountpoint, FALSE);
+      const gchar *mountpoint = itdb_get_mountpoint (itdb);
+      g_return_val_if_fail (mountpoint, FALSE);
       /* check if iPod directories are present */
-      if (!ipod_dirs_present (itdb->mountpoint))
+      if (!ipod_dirs_present (mountpoint))
       {   /* no -- create them */
-	  ipod_directories_head (itdb->mountpoint);
+	  gp_ipod_init (itdb);
 	  /* if still not present abort */
-	  if (!ipod_dirs_present (itdb->mountpoint))
+	  if (!ipod_dirs_present (mountpoint))
 	  {
 	      gtkpod_warning (_("iPod directory structure must be present before synching to the iPod can be performed.\n"));
 	      success = FALSE;
@@ -1441,12 +1610,12 @@
   }
 
   if (success)
-      gtkpod_statusbar_message (_("Now writing iTunesDB. Please wait..."));
+      gtkpod_statusbar_message (_("Now writing database. Please wait..."));
   while (widgets_blocked && gtk_events_pending ())
       gtk_main_iteration ();
 
 
-  if (success && !prefs_get_offline () &&
+  if (success && !get_offline (itdb) &&
       (itdb->usertype & GP_ITDB_TYPE_IPOD))
   {   /* write to the iPod */
       GError *error = NULL;
@@ -1476,7 +1645,7 @@
       }
       if (success)
       {
-	  if (prefs_get_write_extended_info ())
+	  if (prefs_get_int("write_extended_info"))
 	  {   /* write extended information */
 	      success = write_extended_info (itdb);
 	  }
@@ -1487,9 +1656,7 @@
 	      {
 		  if (remove (ext) != 0)
 		  {
-		      gchar *buf = g_strdup_printf (_("Extended information file not deleted: '%s\'"), ext);
-		      gtkpod_statusbar_message (buf);
-		      g_free (buf);
+		      gtkpod_statusbar_message (_("Extended information file not deleted: '%s\'"), ext);
 		  }
 	      }
 	  }
@@ -1507,7 +1674,7 @@
 	      g_error_free (error);
 	      error = NULL;
 	  }
-	  if (prefs_get_write_extended_info ())
+	  if (prefs_get_int("write_extended_info"))
 	  {
 	      gchar *from, *to;
 	      from = g_strdup_printf ("%s.ext", itdb->filename);
@@ -1527,7 +1694,7 @@
       }
   }
 
-  if (success && prefs_get_offline () &&
+  if (success && get_offline (itdb) &&
       (itdb->usertype & GP_ITDB_TYPE_IPOD))
   {   /* write to cfgdir */
       GError *error = NULL;
@@ -1541,7 +1708,7 @@
 	  g_error_free (error);
 	  error = NULL;
       }
-      if (success && prefs_get_write_extended_info ())
+      if (success && prefs_get_int("write_extended_info"))
       {   /* write extended information */
 	  success = write_extended_info (itdb);
       }
@@ -1570,11 +1737,17 @@
   /* indicate that files and/or database is saved */
   if (success)
   {
-      eitdb->data_changed = FALSE;
-      /* block menu item and button if successfully written to iPod */
+      Playlist *mpl = itdb_playlist_mpl (itdb);
+      g_return_val_if_fail (mpl, success);
+      data_unchanged (itdb);
       if (itdb->usertype & GP_ITDB_TYPE_IPOD)
-	  display_disable_gtkpod_import_buttons();
-      gtkpod_statusbar_message(_("iPod Database Saved"));
+      {
+	  gtkpod_statusbar_message(_("%s: Database saved"), mpl->name);
+      }
+      else
+      {
+	  gtkpod_statusbar_message(_("%s: Changes saved"), mpl->name);
+      }
   }
 
   g_free (cfgdir);
@@ -1610,45 +1783,26 @@
 
     for (gl=itdbs_head->itdbs; gl; gl=gl->next)
     {
+	ExtraiTunesDBData *eitdb;
 	iTunesDB *itdb = gl->data;
-	ExtraiTunesDBData *eitdb;
 	g_return_if_fail (itdb);
 	eitdb = itdb->userdata;
 	g_return_if_fail (eitdb);
-	if (eitdb->data_changed || eitdb->itdb_imported)
+
+	if (eitdb->data_changed)
 	{
-	    Playlist *pl;
-	    /* update smart playlists before writing */
-	    itdb_spl_update_live (itdb);
-	    pl = pm_get_selected_playlist ();
-	    if (pl && (pl->itdb == itdb) &&
-		pl->is_spl && pl->splpref.liveupdate)
-	    {   /* Update display if necessary */
-		st_redisplay (0);
-	    }
-	    success &= gp_write_itdb (itdb);
+	    success &= gp_save_itdb (itdb);
 	}
     }
 
-    if (prefs_get_concal_autosync ())
-    {
-	const gchar *str;
-	gtkpod_statusbar_message (_("Syncing contacts, calendar and notes..."));
-	str = prefs_get_path (PATH_SYNC_CONTACTS);
-	if (str && *str)    tools_sync_contacts ();
-	str = prefs_get_path (PATH_SYNC_CALENDAR);
-	if (str && *str)    tools_sync_calendar ();
-	str = prefs_get_path (PATH_SYNC_NOTES);
-	if (str && *str)    tools_sync_notes ();
-    }
-
     release_widgets ();
 }
 
 
 
 
-/* indicate that data was changed and update the free space indicator */
+/* indicate that data was changed and update the free space indicator,
+ * as well as the changed indicator in the playlist view */
 void data_changed (iTunesDB *itdb)
 {
     ExtraiTunesDBData *eitdb;
@@ -1657,10 +1811,26 @@
     g_return_if_fail (eitdb);
 
     eitdb->data_changed = TRUE;
+    pm_name_changed (itdb_playlist_mpl (itdb));
     space_data_update ();
 }
 
 
+/* indicate that data was changed and update the free space indicator,
+ * as well as the changed indicator in the playlist view */
+void data_unchanged (iTunesDB *itdb)
+{
+    ExtraiTunesDBData *eitdb;
+    g_return_if_fail (itdb);
+    eitdb = itdb->userdata;
+    g_return_if_fail (eitdb);
+
+    eitdb->data_changed = FALSE;
+    pm_name_changed (itdb_playlist_mpl (itdb));
+    space_data_update ();
+}
+
+
 /* Check if all files are saved (i.e. none of the itdbs has the
  * data_changed flag set */
 gboolean files_are_saved (void)
@@ -1686,59 +1856,3 @@
     }
     return !changed;
 }
-
-
-/* FIXME: transitional function to set the mountpoint of all
- * GP_ITDB_TYPE_IPOD itdbs. Should be replaced with a new system to
- * individually define the mountpoints */
-void gp_itdb_set_mountpoint (const gchar *mp)
-{
-    struct itdbs_head *itdbs_head;
-
-    GList *gl;
-    gint i;
-
-    g_return_if_fail (gtkpod_window);
-    itdbs_head = g_object_get_data (G_OBJECT (gtkpod_window),
-				    "itdbs_head");
-    if (!itdbs_head)
-    {  /* this means we are called before all the data is set up, for
-	* example because gtkpod was called with the '-m' flag.
-	* We'll set all itdb_n_mountpoint for which itdb_n_type is
-	* GP_ITDB_TYPE_IPOD */
-	gboolean valid;
-	i=0;
-	do
-	{
-	    gchar *property = g_strdup_printf ("itdb_%d_type", i);
-	    gint type;
-	    valid = prefs_get_int_value (property, &type);
-	    g_free (property);
-	    if (valid && (type & GP_ITDB_TYPE_IPOD))
-	    {
-		gchar *pmp = g_strdup_printf ("itdb_%d_mountpoint", i);
-		prefs_set_string_value (pmp, mp);
-		g_free (pmp);
-	    }
-	    ++i;
-	} while (valid);
-	return;
-    }
-
-    i=0;
-    for (gl=itdbs_head->itdbs; gl; gl=gl->next)
-    {
-	iTunesDB *itdb = gl->data;
-	g_return_if_fail (itdb);
-	if (itdb->usertype & GP_ITDB_TYPE_IPOD)
-	{
-	    /* store to prefs */
-	    gchar *pmp = g_strdup_printf ("itdb_%d_mountpoint", i);
-	    prefs_set_string_value (pmp, mp);
-	    g_free (pmp);
-	    /* store to itdb */
-	    itdb_set_mountpoint (itdb, mp);
-	}
-	++i;
-    }
-}

Modified: gtkpod/branches/upstream/current/src/fileselection.c
===================================================================
--- gtkpod/branches/upstream/current/src/fileselection.c	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/src/fileselection.c	2006-09-30 00:00:17 UTC (rev 139)
@@ -1,4 +1,4 @@
-/* Time-stamp: <2006-03-05 18:25:08 jcs>
+/* Time-stamp: <2006-06-23 23:59:03 jcs>
 |
 |  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users.sourceforge.net>
 |  Part of the gtkpod project.
@@ -23,7 +23,7 @@
 |
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: fileselection.c,v 1.5 2006/03/05 09:28:58 jcsjcs Exp $
+|  $Id: fileselection.c,v 1.13 2006/06/23 16:03:06 jcsjcs Exp $
 */
 
 /***********************************************************************
@@ -96,15 +96,19 @@
     current = names;
 
     if (current)
-	prefs_set_last_dir_browse ((gchar *)current->data);
-	
+    {
+	gchar *dirname = gtk_file_chooser_get_current_folder (filechooser);
+	prefs_set_string ("last_dir_browsed", dirname);
+	g_free (dirname);
+    }
+
     /* Get the filenames and add them */
     while (current != NULL)
     {
 	result &= add_track_by_filename(fc_active_itdb,
 					(gchar*)current->data,
 					playlist,
-					prefs_get_add_recursively(),
+					prefs_get_int("add_recursively"),
 					NULL, NULL);
 	current = current->next;
     }
@@ -139,10 +143,15 @@
 {
     GtkWidget* fc;  /* The file chooser dialog */
     gint response;  /* The response of the filechooser */
+    gchar *last_dir;
 	
     /* Grab the current playlist to add songs to */
-    fc_active_itdb = gp_get_active_itdb ();
-    g_return_if_fail (fc_active_itdb);
+    fc_active_itdb = gp_get_selected_itdb ();
+    if (!fc_active_itdb)
+    {
+	message_sb_no_itdb_selected ();
+	return;
+    }
 	
     /* Create the file chooser, and handle the response */
     fc = gtk_file_chooser_dialog_new (_("Add Files"),
@@ -155,8 +164,13 @@
 				      NULL);
 
     gtk_file_chooser_set_select_multiple (GTK_FILE_CHOOSER (fc), TRUE);
-    gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (fc),
-					 prefs_get_last_dir_browse ());
+    last_dir = prefs_get_string ("last_dir_browsed");
+    if (last_dir)
+    {
+	gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (fc),
+					     last_dir);
+	g_free (last_dir);
+    }
 
     response = gtk_dialog_run(GTK_DIALOG(fc));
 	
@@ -191,7 +205,11 @@
     current = names;
 
     if (current)
-	prefs_set_last_dir_browse ((gchar *)current->data);
+    {
+	gchar *dirname = gtk_file_chooser_get_current_folder (filechooser);
+	prefs_set_string ("last_dir_browsed", dirname);
+	g_free (dirname);
+    }
 
     while (current != NULL)
     {
@@ -218,10 +236,15 @@
 {
     GtkWidget* fc ; /* The file chooser dialog */
     gint response;  /* The response of the filechooser */
+    gchar *last_dir;
 	
     /* Grab the current playlist to add songs to */
-    fc_active_itdb = gp_get_active_itdb ();
-    g_return_if_fail (fc_active_itdb);
+    fc_active_itdb = gp_get_selected_itdb ();
+    if (!fc_active_itdb)
+    {
+	message_sb_no_itdb_selected ();
+	return;
+    }
 	
     /* Create the file chooser, and handle the response */
     fc = gtk_file_chooser_dialog_new (_("Add Playlists"),
@@ -234,8 +257,13 @@
 				      NULL);
 	
     gtk_file_chooser_set_select_multiple (GTK_FILE_CHOOSER (fc), TRUE);
-    gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (fc),
-					 prefs_get_last_dir_browse ());
+    last_dir = prefs_get_string ("last_dir_browsed");
+    if (last_dir)
+    {
+	gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (fc),
+					     last_dir);
+	g_free (last_dir);
+    }
 
     response = gtk_dialog_run(GTK_DIALOG(fc));
 	
@@ -263,8 +291,7 @@
     GtkWidget* fc;  /* The file chooser dialog */
     gint response;  /* The response of the filechooser */
     gchar *filename = NULL; /* The chosen file */
-    const gchar *dir1;
-    gchar *dir2;
+    gchar *last_dir, *new_dir;
 
     /* Create the file chooser, and handle the response */
     fc = gtk_file_chooser_dialog_new (_("Set Cover"),
@@ -278,17 +305,22 @@
 
     gtk_file_chooser_set_select_multiple (GTK_FILE_CHOOSER (fc), FALSE);
 
-    dir1 = prefs_get_last_dir_browse ();
-    gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (fc), dir1);
+    last_dir = prefs_get_string ("last_dir_browsed");
+    if (last_dir)
+    {
+	gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (fc),
+					     last_dir);
+	g_free (last_dir);
+    }
 
     response = gtk_dialog_run(GTK_DIALOG(fc));
 
     switch (response)
     {
     case GTK_RESPONSE_ACCEPT:
-	dir2 = gtk_file_chooser_get_current_folder (GTK_FILE_CHOOSER (fc));
-	prefs_set_last_dir_browse (dir2);
-	g_free (dir2);
+	new_dir = gtk_file_chooser_get_current_folder (GTK_FILE_CHOOSER (fc));
+	prefs_set_string ("last_dir_browsed", new_dir);
+	g_free (new_dir);
 	filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (fc));
 	break;
     case GTK_RESPONSE_CANCEL:
@@ -301,12 +333,197 @@
 }
 
 
+/* BY JCS */
 
+/* Get a file or directory
+ *
+ * @title:    title for the file selection dialog
+ * @cur_file: initial file to be selected. If NULL, then use
+ *            last_dir_browse.
+ * @action:
+ *   GTK_FILE_CHOOSER_ACTION_OPEN   Indicates open mode. The file chooser
+ *                                  will only let the user pick an
+ *                                  existing file.
+ *   GTK_FILE_CHOOSER_ACTION_SAVE   Indicates save mode. The file
+ *                                  chooser will let the user pick an
+ *                                  existing file, or type in a new
+ *                                  filename.
+ *   GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER
+ *                                  Indicates an Open mode for
+ *                                  selecting folders. The file
+ *                                  chooser will let the user pick an
+ *                                  existing folder.
+ *   GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER
+ *                                  Indicates a mode for creating a
+ *                                  new folder. The file chooser will
+ *                                  let the user name an existing or
+ *                                  new folder.
+ */
+gchar *fileselection_get_file_or_dir (const gchar *title,
+				      const gchar *cur_file,
+				      GtkFileChooserAction action)
+{
+    GtkWidget* fc;  /* The file chooser dialog */
+    gint response;  /* The response of the filechooser */
+    gchar *new_file = NULL; /* The chosen file */
 
+    g_return_val_if_fail (title, NULL);
 
+    /* Create the file chooser, and handle the response */
+    fc = gtk_file_chooser_dialog_new (
+	title,
+	NULL,
+	action,
+	GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+	GTK_STOCK_OK,GTK_RESPONSE_ACCEPT,
+	NULL);
 
+    gtk_file_chooser_set_select_multiple (GTK_FILE_CHOOSER (fc), FALSE);
 
+    if (cur_file)
+    {
+	/* Sanity checks: must exist and be absolute */
+	if (g_path_is_absolute (cur_file))
+	    gtk_file_chooser_set_filename (GTK_FILE_CHOOSER (fc),
+					   cur_file);
+	else
+	    cur_file = NULL;
+    }
+    if (cur_file == NULL)
+    {
+	gchar *filename = prefs_get_string ("last_dir_browsed");
+	if (filename)
+	{
+	    gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (fc),
+						 filename);
+	    g_free (filename);
+	}
+    }
 
+    response = gtk_dialog_run(GTK_DIALOG(fc));
+
+    switch (response)
+    {
+    case GTK_RESPONSE_ACCEPT:
+	new_file = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (fc));
+	break;
+    case GTK_RESPONSE_CANCEL:
+	break;
+    default:	/* Fall through */
+	break;
+    }		
+    gtk_widget_destroy(fc);
+    return new_file;
+}
+
+
+
+/* BY JCS */
+
+/* Used by the prefs system (prefs_windows.c, repository.c) when a
+ * script should be selected. Takes into account that command line
+ * arguments can be present
+ *
+ * @opath: the current path to the script including command line
+ *         arguments. May be NULL.
+ * @fallback: default dir in case @opath is not set.
+ * @title: title of the file selection window.
+ * @additional_text: additional explanotary text to be displayed
+ *
+ * Return value: The new script including command line arguments. NULL
+ * if the selection was aborted.
+ */
+gchar *fileselection_select_script (const gchar *opath,
+				    const gchar *fallback,
+				    const gchar *title,
+				    const gchar *additional_text)
+{
+    gchar *npath=NULL;
+    gchar *buf, *fbuf;
+    const gchar *opathp;
+    GtkFileChooser *fc;
+    gint response;  /* The response of the filechooser */
+
+    fc = GTK_FILE_CHOOSER (gtk_file_chooser_dialog_new (
+			       title,
+			       NULL,
+			       GTK_FILE_CHOOSER_ACTION_OPEN,
+			       GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+			       GTK_STOCK_OK, GTK_RESPONSE_ACCEPT,
+			       NULL));
+
+    /* find first whitespace separating path from command line
+     * arguments */
+
+    if (opath)
+	opathp = strchr (opath, ' ');
+    else
+	opathp = NULL;
+
+    if (opathp)
+	buf = g_strndup (opath, opathp-opath);
+    else
+	buf = g_strdup (opath);
+
+    /* get full path -- if the file cannot be found it can't be
+     * selected in the filechooser */
+    if (buf)
+    {
+	fbuf = g_find_program_in_path (buf);
+	g_free (buf);
+    }
+    else
+    {
+	fbuf = NULL;
+    }
+
+    if (!fbuf)
+    {   /* set default */
+	fbuf = g_strdup (fallback);
+    }
+
+    if (fbuf && *fbuf)
+    {
+	gchar *fbuf_utf8 = g_filename_from_utf8 (fbuf, -1, NULL, NULL, NULL);
+	if (g_file_test (fbuf, G_FILE_TEST_IS_DIR))
+	{
+	    gtk_file_chooser_set_current_folder (fc, fbuf_utf8);
+	}
+	else
+	{
+	    gtk_file_chooser_set_filename (fc, fbuf_utf8);
+	}
+	g_free (fbuf_utf8);
+    }
+    g_free (fbuf);
+
+    response = gtk_dialog_run(GTK_DIALOG(fc));
+
+    switch (response)
+    {
+    case GTK_RESPONSE_ACCEPT:
+	buf = gtk_file_chooser_get_filename (fc);
+	/* attach command line arguments if present */
+	if (opathp)
+	    npath = g_strdup_printf ("%s%s", buf, opathp);
+	else
+	    npath = g_strdup (buf);
+	g_free (buf);
+	break;
+    case GTK_RESPONSE_CANCEL:
+	break;
+    default:	/* Fall through */
+	break;
+    }
+    gtk_widget_destroy(GTK_WIDGET (fc));
+
+    return npath;
+}
+
+
+
+
+
 /*
 |  Changed by Jorg Schuler <jcsjcs at users.sourceforge.net> to compile
 |  "standalone" with the gtkpod project 2002/11/24
@@ -459,9 +676,9 @@
     {
 	Playlist *plitem = pm_get_selected_playlist ();
 	add_directory_by_name (db_active_itdb, dir, plitem,
-			       prefs_get_add_recursively (),
+			       prefs_get_int("add_recursively"),
 			       NULL, NULL);
-	prefs_set_last_dir_browse(dir);
+	prefs_set_string ("last_dir_browsed", dir);
 	gtkpod_tracks_statusbar_update();
     }
     else
@@ -481,17 +698,28 @@
    separate callback for gtkpod.glade */
 void dirbrowser_create (void)
 {
+    gchar *cur_dir;
+
     if (dirbrowser)
     {   /* file selector already open -- raise to the top */
 	gdk_window_raise (dirbrowser->window);
 	return;
     }
-    db_active_itdb = gp_get_active_itdb ();
+
+    db_active_itdb = gp_get_selected_itdb ();
+    if (!db_active_itdb)
+    {
+	message_sb_no_itdb_selected ();
+	return;
+    }
+
+    cur_dir = prefs_get_string ("last_dir_browsed");
     dirbrowser = xmms_create_dir_browser (
 	_("Select directory to add recursively"),
-	prefs_get_last_dir_browse (),
+	cur_dir,
 	GTK_SELECTION_MULTIPLE,
 	add_dir_selected);
+    g_free (cur_dir);
     gtk_widget_show (dirbrowser);
 }
 
@@ -513,7 +741,8 @@
 
     gtk_window_get_size (GTK_WINDOW (dirbrowser), &x, &y);
     /* store size for next time */
-    prefs_set_size_dirbr (x, y);
+    prefs_set_int("size_dirbr.x", x);
+    prefs_set_int("size_dirbr.y", y);
     gtk_widget_destroy(dirbrowser);
     /* dirbrowser = NULL; -- will be done by the dirbrowser_destroy()
        as part of the callback */
@@ -693,7 +922,8 @@
     gint x,y;
 
     window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
-    prefs_get_size_dirbr (&x, &y);
+    x = prefs_get_int("size_dirbr.x");
+    y = prefs_get_int("size_dirbr.y");
     gtk_window_set_default_size(GTK_WINDOW(window), x, y);
     gtk_window_set_title(GTK_WINDOW(window), title);
     gtk_container_border_width(GTK_CONTAINER(window), 10);

Modified: gtkpod/branches/upstream/current/src/fileselection.h
===================================================================
--- gtkpod/branches/upstream/current/src/fileselection.h	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/src/fileselection.h	2006-09-30 00:00:17 UTC (rev 139)
@@ -1,4 +1,4 @@
-/* Time-stamp: <2005-11-27 19:05:47 jcs>
+/* Time-stamp: <2006-05-22 23:18:47 jcs>
 |
 |  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
 |  Part of the gtkpod project.
@@ -24,7 +24,7 @@
 |
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: fileselection.h,v 1.3 2005/11/28 16:25:34 jcsjcs Exp $
+|  $Id: fileselection.h,v 1.6 2006/05/22 15:12:45 jcsjcs Exp $
 */
 
 /***************************************************************************
@@ -39,9 +39,18 @@
 #ifndef _FILESELECTION_H
 #define _FILESELECTION_H
 
+#include "prefs.h"
+
 void create_add_files_dialog(void);
 void create_add_playlists_dialog(void);
 gchar *fileselection_get_cover_filename(void);
+gchar *fileselection_get_file_or_dir (const gchar *title,
+				      const gchar *cur_file,
+				      GtkFileChooserAction action);
+gchar *fileselection_select_script (const gchar *opath,
+				    const gchar *fallback,
+				    const gchar *title,
+				    const gchar *additional_text);
 
 /* dirbrowser */
 void dirbrowser_block (void);

Modified: gtkpod/branches/upstream/current/src/info.c
===================================================================
--- gtkpod/branches/upstream/current/src/info.c	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/src/info.c	2006-09-30 00:00:17 UTC (rev 139)
@@ -1,4 +1,4 @@
-/* Time-stamp: <2005-11-25 23:52:12 jcs>
+/* Time-stamp: <2006-06-25 00:22:55 jcs>
 |
 |  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
 |  Part of the gtkpod project.
@@ -24,7 +24,7 @@
 | 
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: info.c,v 1.34 2005/11/26 13:44:41 jcsjcs Exp $
+|  $Id: info.c,v 1.47 2006/06/24 15:39:22 jcsjcs Exp $
 */
 
 /* This file provides functions for the info window as well as for the
@@ -50,14 +50,18 @@
 static GtkWidget *gtkpod_tracks_statusbar = NULL;
 static GtkWidget *gtkpod_space_statusbar = NULL;
 static guint statusbar_timeout_id = 0;
+static guint statusbar_timeout = STATUSBAR_TIMEOUT;
 
 /* lock for size related variables (used by child and parent) */
 static GMutex *space_mutex = NULL;
 static GThread *space_thread = NULL;
 static gboolean space_uptodate = FALSE;
-static gchar *space_mp = NULL;
-static gdouble space_ipod_free = 0;
-static gdouble space_ipod_used = 0;
+static gchar *space_mp = NULL;      /* thread save access through mutex */
+static iTunesDB *space_itdb = NULL; /* semi thread save access
+				     * (space_itdb will not be changed
+				     * while locked) */
+static gdouble space_ipod_free = 0; /* thread save access through mutex */
+static gdouble space_ipod_used = 0; /* thread save access through mutex */
 
 
 static gdouble get_ipod_free_space(void);
@@ -167,9 +171,10 @@
     if (info_window)
     {
 	gint defx, defy;
-	prefs_get_size_info (&defx, &defy);
+	defx = prefs_get_int("size_info.x");
+  defy = prefs_get_int("size_info.y");
 	gtk_window_set_default_size (GTK_WINDOW (info_window), defx, defy);
-	prefs_set_info_window (TRUE); /* notify prefs */
+	prefs_set_int("info_window", TRUE); /* notify prefs */
 	info_update ();
 	gtk_widget_show (info_window);
 	/* set the menu item for the info window correctly */
@@ -188,7 +193,7 @@
     win = info_window;
     info_window = NULL;
     gtk_widget_destroy (win);
-     prefs_set_info_window (FALSE); /* notify prefs */
+     prefs_set_int("info_window", FALSE); /* notify prefs */
     /* set the menu item for the info window correctly */
     display_set_info_window_menu ();
 }
@@ -200,7 +205,8 @@
     {
 	gint defx, defy;
 	gtk_window_get_size (GTK_WINDOW (info_window), &defx, &defy);
-	prefs_set_size_info (defx, defy);
+	prefs_set_int("size_info.x", defx);
+  prefs_set_int("size_info.y", defy);
     }
 }
 
@@ -220,7 +226,7 @@
     GList *displayed;
 
     g_return_if_fail (info_window);
-    displayed = display_get_selected_members (prefs_get_sort_tab_num()-1);
+    displayed = display_get_selected_members (prefs_get_int("sort_tab_num")-1);
     fill_in_info (displayed, &tracks, &playtime, &filesize);
     fill_label_uint ("tracks_displayed", tracks);
     fill_label_time ("playtime_displayed", playtime);
@@ -234,7 +240,7 @@
     GList *selected;
 
     if (!info_window) return; /* not open */
-    selected = display_get_selection (prefs_get_sort_tab_num ());
+    selected = display_get_selection (prefs_get_int("sort_tab_num"));
     fill_in_info (selected, &tracks, &playtime, &filesize);
     g_list_free (selected);
     fill_label_uint ("tracks_selected", tracks);
@@ -364,7 +370,7 @@
 	gp_info_deleted_tracks (itdb, &del_filesize, &del_tracks);
 	fill_label_uint ("deleted_tracks", del_tracks);
 	fill_label_size ("deleted_filesize", del_filesize);
-	if (!prefs_get_offline ())
+	if (!get_offline (itdb))
 	{
 	    if (ipod_connected ())
 	    {
@@ -395,6 +401,7 @@
 gtkpod_statusbar_init(void)
 {
     gtkpod_statusbar = gtkpod_xml_get_widget (main_window_xml, "gtkpod_status");
+    statusbar_timeout = STATUSBAR_TIMEOUT;
 }
 
 static gint
@@ -410,28 +417,43 @@
 }
 
 
-void
+static void
 gtkpod_statusbar_reset_timeout (void)
 {
     if (statusbar_timeout_id != 0) /* remove last timeout, if still present */
 	gtk_timeout_remove (statusbar_timeout_id);
-    statusbar_timeout_id = gtk_timeout_add(prefs_get_statusbar_timeout (),
-					   (GtkFunction) gtkpod_statusbar_clear,
-					   NULL);
+    statusbar_timeout_id = gtk_timeout_add (statusbar_timeout,
+					    (GtkFunction) gtkpod_statusbar_clear,
+					    NULL);
 }
 
+void
+gtkpod_statusbar_timeout (guint timeout)
+{
+    if (timeout == 0)
+	statusbar_timeout = STATUSBAR_TIMEOUT;
+    else
+	statusbar_timeout = timeout;
 
+    gtkpod_statusbar_reset_timeout ();
+}
+
+
 void
-gtkpod_statusbar_message(const gchar *message)
+gtkpod_statusbar_message(const gchar *message, ...)
 {
     if(gtkpod_statusbar)
     {
-	gchar buf[PATH_MAX];
+	va_list arg;
+	gchar *text;
 	guint context = 1;
 
-	snprintf(buf, PATH_MAX, "  %s", message);
+	va_start (arg, message);
+	text = g_strdup_vprintf (message, arg);
+	va_end (arg);
+
 	gtk_statusbar_pop(GTK_STATUSBAR(gtkpod_statusbar), context);
-	gtk_statusbar_push(GTK_STATUSBAR(gtkpod_statusbar), context,  buf);
+	gtk_statusbar_push(GTK_STATUSBAR(gtkpod_statusbar), context,  text);
 	gtkpod_statusbar_reset_timeout ();
     }
 }
@@ -450,26 +472,26 @@
     if(gtkpod_tracks_statusbar)
     {
 	gchar *buf;
-	iTunesDB *itdb;
 	Playlist *pl;
 	pl = pm_get_selected_playlist ();
 	/* select of which iTunesDB data should be displayed */
 	if (pl)
 	{
-	    itdb = pl->itdb;
+	    iTunesDB *itdb = pl->itdb;
+	    g_return_if_fail (itdb);
+
+	    buf = g_strdup_printf (_(" P:%d T:%d/%d"),
+				   itdb_playlists_number (itdb) - 1,
+				   tm_get_nr_of_tracks (),
+				   itdb_tracks_number (itdb));
 	}
 	else
 	{
-	    itdb = get_itdb_ipod ();
+	    buf = g_strdup ("");
 	}
 	/* gets called before itdbs are setup up -> fail silently */
 /*	g_return_if_fail (itdb);*/
-	if (!itdb) return;
 	
-	buf = g_strdup_printf (_(" P:%d T:%d/%d"),
-			       itdb_playlists_number (itdb) - 1,
-			       tm_get_nr_of_tracks (),
-			       itdb_tracks_number (itdb));
 	gtk_statusbar_pop(GTK_STATUSBAR(gtkpod_tracks_statusbar), 1);
 	gtk_statusbar_push(GTK_STATUSBAR(gtkpod_tracks_statusbar), 1,  buf);
 	g_free (buf);
@@ -489,22 +511,47 @@
    be accessed securely by using a locking mechanism. Therefore we
    keep a copy of the mount point here. Access must only be done
    after locking. */
-void space_set_ipod_mount (const gchar *mp)
+void space_set_ipod_itdb (iTunesDB *itdb)
 {
-    g_return_if_fail (mp);
+    const gchar *mp = NULL;
+
+    if (itdb)
+    {
+	ExtraiTunesDBData *eitdb = itdb->userdata;
+	g_return_if_fail (eitdb);
+
+	if (!eitdb->ipod_ejected)
+	{
+	    mp = itdb_get_mountpoint (itdb);
+	}
+    }
+
     if (space_mutex)  g_mutex_lock (space_mutex);
 
+    space_itdb = itdb;
+
     /* update the free space data if mount point changed */
-    if (!space_mp || (strcmp (space_mp, mp) != 0))
+    if (!space_mp || !mp || (strcmp (space_mp, mp) != 0))
+    {
+	g_free (space_mp);
+	space_mp = g_strdup (mp);
+
 	space_data_update ();
+    }
 
-    g_free (space_mp);
-    space_mp = g_strdup (mp);
+    if (space_mutex)   g_mutex_unlock (space_mutex);
 
-    if (space_mutex)   g_mutex_unlock (space_mutex);
 }
 
+/* retrieve the currently set ipod itdb -- needed in case the itdb is
+   deleted */
+iTunesDB *space_get_ipod_itdb (void)
+{
+    return space_itdb;
+}
 
+
+
 /* iPod space has to be reread */
 void space_data_update (void)
 {
@@ -529,7 +576,7 @@
 
 /* we'll use statvfs to determine free space on the iPod where
    available, df otherwise */
-#ifdef HAVE_statvfs
+#ifdef HAVE_STATVFS
 #include <sys/types.h>
 #include <sys/statvfs.h>
 /* update space_ipod_free and space_ipod_used */
@@ -539,15 +586,13 @@
     struct statvfs stat;
     int	status;
 
+    g_mutex_lock (space_mutex);
+
     /* don't read info when in offline mode */
-    if (!prefs_get_offline ())
+    if (space_itdb && !get_offline (space_itdb))
     {
-	g_mutex_lock (space_mutex);
 	mp = g_strdup (space_mp);
-	g_mutex_unlock (space_mutex);
     }
-
-    g_mutex_lock (space_mutex);
     if (mp)
     {
 	status = statvfs (mp, &stat);
@@ -755,22 +800,19 @@
 static guint
 gtkpod_space_statusbar_update(void)
 {
-    if(gtkpod_space_statusbar)
+    if(space_itdb && gtkpod_space_statusbar)
     {
 	gchar *buf = NULL;
 	gchar *str = NULL;
 
-	if (!prefs_get_offline ())
+	if (!get_offline (space_itdb))
 	{
 	    if (ipod_connected ())
 	    {
 		gdouble left, pending, deleted;
-		iTunesDB *itdb = get_itdb_ipod ();
-		/* we may be called before any itdb is present */
-		if (!itdb) return TRUE;
 
-		gp_info_deleted_tracks (itdb, &deleted, NULL);
-		gp_info_nontransferred_tracks (itdb, &pending, NULL);
+		gp_info_deleted_tracks (space_itdb, &deleted, NULL);
+		gp_info_nontransferred_tracks (space_itdb, &pending, NULL);
 		left = get_ipod_free_space() + deleted;
 		if((left-pending) > 0)
 		{
@@ -798,7 +840,7 @@
 	g_free (str);
     }
     info_update_totals_view_space ();
-    return(TRUE);
+    return TRUE;
 }
 
 void
@@ -810,10 +852,47 @@
     {
 	space_mutex = g_mutex_new ();
 	if (!space_mp)
-	    space_mp = g_strdup (prefs_get_ipod_mount ());
-	th_space_update ();  /* make sure we have current data */
-	space_thread = g_thread_create (th_space_thread, NULL, FALSE, NULL);
+	{
+	    iTunesDB *itdb = gp_get_ipod_itdb ();
+
+	    if (itdb)
+	    {
+		space_mp = get_itdb_prefs_string (itdb, KEY_MOUNTPOINT);
+		th_space_update ();  /* make sure we have current data */
+	    }
+	}
+	space_thread = g_thread_create (th_space_thread,
+					    NULL, FALSE, NULL);
     }
     gtkpod_space_statusbar_update();
     gtk_timeout_add(1000, (GtkFunction) gtkpod_space_statusbar_update, NULL);
 }
+
+
+
+/*------------------------------------------------------------------*\
+ *                                                                  *
+ *              Frequently used error messages                      *
+ *                                                                  *
+\*------------------------------------------------------------------*/
+
+void message_sb_no_itdb_selected ()
+{
+    gtkpod_statusbar_message (_("No database or playlist selected"));
+}
+
+void message_sb_no_tracks_selected ()
+{
+    gtkpod_statusbar_message (_("No tracks selected"));
+}
+
+void message_sb_no_playlist_selected ()
+{
+    gtkpod_statusbar_message (_("No playlist selected"));
+}
+
+void message_sb_no_ipod_itdb_selected ()
+{
+    gtkpod_statusbar_message (_("No iPod or iPod playlist selected"));
+}
+

Modified: gtkpod/branches/upstream/current/src/info.h
===================================================================
--- gtkpod/branches/upstream/current/src/info.h	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/src/info.h	2006-09-30 00:00:17 UTC (rev 139)
@@ -1,4 +1,4 @@
-/* Time-stamp: <2005-09-18 22:59:43 jcs>
+/* Time-stamp: <2006-06-24 01:39:23 jcs>
 |
 |  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
 |  Part of the gtkpod project.
@@ -24,7 +24,7 @@
 | 
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: info.h,v 1.11 2005/09/20 09:50:13 jcsjcs Exp $
+|  $Id: info.h,v 1.15 2006/06/23 16:46:12 jcsjcs Exp $
 */
 
 #ifndef __INFO_H__
@@ -35,6 +35,7 @@
 #endif
  
 #include <glib.h>
+#include "itdb.h"
 
 /* info window */
 void info_open_window (void);
@@ -50,15 +51,23 @@
 /* statusbar stuff */
 #define STATUSBAR_TIMEOUT 4200
 void gtkpod_statusbar_init(void);
-void gtkpod_statusbar_message(const gchar *message);
-void gtkpod_statusbar_reset_timeout (void);
+void gtkpod_statusbar_message(const gchar *message, ...);
+void gtkpod_statusbar_timeout (guint timeout);
 void gtkpod_space_statusbar_init(void);
 void gtkpod_tracks_statusbar_init(void);
 void gtkpod_tracks_statusbar_update(void);
 
 /* space stuff */
 #define SPACE_TIMEOUT 4000   /* update interval in ms */
-void space_set_ipod_mount (const gchar *mp);
+void space_set_ipod_itdb (iTunesDB *itdb);
+iTunesDB *space_get_ipod_itdb (void);
 void space_data_update (void);
 gboolean ipod_connected (void);
+
+/* standard messages */
+void message_sb_no_itdb_selected (void);
+void message_sb_no_tracks_selected (void);
+void message_sb_no_playlist_selected (void);
+void message_sb_no_ipod_itdb_selected (void);
+
 #endif

Added: gtkpod/branches/upstream/current/src/ipod_init.c
===================================================================
--- gtkpod/branches/upstream/current/src/ipod_init.c	                        (rev 0)
+++ gtkpod/branches/upstream/current/src/ipod_init.c	2006-09-30 00:00:17 UTC (rev 139)
@@ -0,0 +1,461 @@
+/* Time-stamp: <2006-09-17 16:11:25 jcs>
+|
+|  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
+|  Part of the gtkpod project.
+| 
+|  URL: http://www.gtkpod.org/
+|  URL: http://gtkpod.sourceforge.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; either version 2 of the License, or
+|  (at your option) any later version.
+| 
+|  This program is distributed in the hope that it will be useful,
+|  but WITHOUT ANY WARRANTY; without even the implied warranty of
+|  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+|  GNU General Public License for more details.
+| 
+|  You should have received a copy of the GNU General Public License
+|  along with this program; if not, write to the Free Software
+|  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+| 
+|  iTunes and iPod are trademarks of Apple
+| 
+|  This product is not supported/written/published by Apple!
+|
+|  $Id: ipod_init.c,v 1.7 2006/09/17 07:14:07 jcsjcs Exp $
+*/
+
+/* This file provides functions to initialize a new iPod */
+
+#include "ipod_init.h"
+#include "prefs.h"
+#include "misc.h"
+#include "fileselection.h"
+#include <string.h>
+
+struct _IpodInit
+{
+    GladeXML *xml;           /* XML info                             */
+    GtkWidget *window;       /* pointer to repository window         */
+    iTunesDB *itdb;
+};
+
+typedef struct _IpodInit IpodInit;
+
+/* Strings used several times */
+const gchar *SELECT_OR_ENTER_YOUR_MODEL=N_("Select or enter your model");
+
+/* string constants for window widgets used more than once */
+static const gchar *MOUNTPOINT_ENTRY="mountpoint_entry";
+static const gchar *MOUNTPOINT_BUTTON="mountpoint_button";
+static const gchar *MODEL_COMBO="model_combo";
+
+/* Columns for the model_combo tree model */
+enum
+{
+    COL_POINTER,
+    COL_STRING
+};
+
+
+/* shortcut to reference widgets when ii->xml is already set */
+#define GET_WIDGET(a) gtkpod_xml_get_widget (ii->xml,a)
+
+/* mountpoint browse button was clicked -> open a directory browser
+ * and copy the result into the mountpoint entry. */
+static void mountpoint_button_clicked (GtkButton *button, IpodInit *ii)
+{
+    const gchar *old_dir;
+    gchar *new_dir;
+
+    g_return_if_fail (ii);
+
+    old_dir = gtk_entry_get_text (
+	GTK_ENTRY (GET_WIDGET (MOUNTPOINT_ENTRY)));
+
+    new_dir = fileselection_get_file_or_dir (
+	_("Select mountpoint"),
+	old_dir,
+	GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER);
+
+    if (new_dir)
+    {
+	gtk_entry_set_text (GTK_ENTRY (GET_WIDGET (MOUNTPOINT_ENTRY)),
+			    new_dir);
+	g_free (new_dir);
+    }
+}
+
+
+static void
+set_cell (GtkCellLayout   *cell_layout,
+	  GtkCellRenderer *cell,
+	  GtkTreeModel    *tree_model,
+	  GtkTreeIter     *iter,
+	  gpointer         data)
+{
+  gboolean header;
+  gchar *text;
+  IpodInfo *info;
+
+  gtk_tree_model_get (tree_model, iter, COL_POINTER, &info, -1);
+  g_return_if_fail (info);
+
+  header = gtk_tree_model_iter_has_child (tree_model, iter);
+
+  if (header)
+  {
+      text = g_strdup (
+	  itdb_info_get_ipod_generation_string (info->ipod_generation));
+  }
+  else
+  {
+      if (info->capacity >= 1)
+      {   /* size in GB */
+	  text = g_strdup_printf ("%2.0f GB %s (x%s)",
+				  info->capacity,
+				  itdb_info_get_ipod_model_name_string (
+				      info->ipod_model),
+				  info->model_number);
+      }
+      else if (info->capacity > 0)
+      {   /* size in MB */
+	  text = g_strdup_printf ("%3.0f MB %s (x%s)",
+				  info->capacity * 1024,
+				  itdb_info_get_ipod_model_name_string (
+				      info->ipod_model),
+				  info->model_number);
+      }
+      else
+      {   /* no capacity information available */
+	  text = g_strdup_printf ("%s (x%s)",
+				  itdb_info_get_ipod_model_name_string (
+				      info->ipod_model),
+				  info->model_number);
+      }
+  }
+
+  g_object_set (cell,
+		"sensitive", !header,
+		"text", text,
+		NULL);
+
+  g_free (text);
+}
+
+
+
+/**
+ * gp_init_model_number_combo:
+ *
+ * Set up the the model for a model_number combo with all iPod models
+ * known to libgpod.
+ *
+ * @cb: the combobox that should be set up with a model.
+ */
+void gp_init_model_number_combo (GtkComboBox *cb)
+{
+    const IpodInfo *table;
+    Itdb_IpodGeneration generation;
+    GtkCellRenderer *renderer;
+    GtkTreeStore *store;
+    gboolean info_found;
+    gchar buf[PATH_MAX];
+
+    table = itdb_info_get_ipod_info_table ();
+    g_return_if_fail (table);
+
+    /* We need the G_TYPE_STRING column because GtkComboBoxEntry
+       requires it */
+    store = gtk_tree_store_new (2, G_TYPE_POINTER, G_TYPE_STRING);
+
+
+    /* Create a tree model with the model numbers listed as a branch
+       under each generation */
+    generation = ITDB_IPOD_GENERATION_FIRST;
+    do
+    {
+	GtkTreeIter iter;
+	const IpodInfo *info = table;
+	info_found = FALSE;
+
+	while (info->model_number)
+	{
+	    if (info->ipod_generation == generation)
+	    {
+		GtkTreeIter iter_child;
+		if (!info_found)
+		{
+		    gtk_tree_store_append (store, &iter, NULL);
+		    gtk_tree_store_set (store, &iter,
+					COL_POINTER, info,
+					COL_STRING, "",
+					-1);
+		    info_found = TRUE;
+		}
+		gtk_tree_store_append (store, &iter_child, &iter);
+		/* gtk_tree_store_set() is intelligent enough to copy
+		   strings we pass to it */
+		g_snprintf (buf, PATH_MAX, "x%s", info->model_number);
+		gtk_tree_store_set (store, &iter_child,
+				    COL_POINTER, info,
+				    COL_STRING, buf,
+				    -1);
+	    }
+	    ++info;
+	}
+	++generation;
+    } while (info_found);
+
+    /* set the model, specify the text column, and clear the cell
+       layout (glade seems to automatically add a text column which
+       messes up the entire layout) */
+    gtk_combo_box_set_model (cb, GTK_TREE_MODEL (store));
+    g_object_unref (store);
+    gtk_combo_box_entry_set_text_column (GTK_COMBO_BOX_ENTRY (cb),
+					 COL_STRING);
+    gtk_cell_layout_clear (GTK_CELL_LAYOUT (cb));
+
+    renderer = gtk_cell_renderer_text_new ();
+    gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (cb), renderer, FALSE);
+    gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (cb),
+					renderer,
+					set_cell,
+					NULL, NULL);
+}
+
+
+/**
+ * gp_ipod_init:
+ *
+ * Ask for the iPod model and mountpoint and then create the directory
+ * structure on the iPod.
+ *
+ * @itdb: itdb from where to extract the mountpoint. After
+ * initialisation the model number is set.
+ */
+gboolean gp_ipod_init (iTunesDB *itdb)
+{
+    IpodInit *ii;
+    gint response;
+    gboolean result = FALSE;
+    gchar *mountpoint, *new_mount, *name, *model;
+    GError *error = NULL;
+    GtkEntry *entry;
+    gchar buf[PATH_MAX];
+    GtkComboBox *cb;
+    const IpodInfo *info;
+
+    g_return_val_if_fail (itdb, FALSE);
+
+    /* Create window */
+    ii = g_new0 (IpodInit, 1);
+    ii->itdb = itdb;
+    ii->xml = glade_xml_new (xml_file, "ipod_init_dialog", NULL);
+    ii->window = gtkpod_xml_get_widget (ii->xml,
+					"ipod_init_dialog");
+    g_return_val_if_fail (ii->window, FALSE);
+
+    /* Set mountpoint */
+    mountpoint = get_itdb_prefs_string (itdb, KEY_MOUNTPOINT);
+    if (mountpoint)
+    {
+	gtk_entry_set_text (GTK_ENTRY (GET_WIDGET (MOUNTPOINT_ENTRY)),
+			    mountpoint);
+    }
+
+    /* Signal handlers */
+    g_signal_connect (GET_WIDGET (MOUNTPOINT_BUTTON), "clicked",
+		      G_CALLBACK (mountpoint_button_clicked), ii);
+
+
+    /* Setup model number combo */
+    cb = GTK_COMBO_BOX (GET_WIDGET (MODEL_COMBO));
+    gp_init_model_number_combo (cb);
+
+    /* If available set current model number, otherwise indicate that
+       none is available */
+    info = itdb_device_get_ipod_info (ii->itdb->device);
+    if (info && (info->ipod_generation != ITDB_IPOD_GENERATION_UNKNOWN))
+    {
+	g_snprintf (buf, PATH_MAX, "x%s", info->model_number);
+    }
+    else
+    {
+	g_snprintf (buf, PATH_MAX, "%s", gettext (SELECT_OR_ENTER_YOUR_MODEL));
+    }
+    entry = GTK_ENTRY (gtk_bin_get_child(GTK_BIN (cb)));
+    gtk_entry_set_text (entry, buf);
+
+
+    response = gtk_dialog_run (GTK_DIALOG (ii->window));
+
+    switch (response)
+    {
+    case GTK_RESPONSE_OK:
+	new_mount = g_strdup (
+	    gtk_entry_get_text (
+		GTK_ENTRY (GET_WIDGET (MOUNTPOINT_ENTRY))));
+	/* remove trailing '/' in case it's present. */
+	if (mountpoint && (strlen (mountpoint) > 0))
+	{
+	    if (G_IS_DIR_SEPARATOR(mountpoint[strlen(mountpoint) - 1]))
+	    {
+		mountpoint[strlen(mountpoint) - 1] = 0;
+	    }
+	}
+	if (new_mount && (strlen (new_mount) > 0))
+	{
+	    if (G_IS_DIR_SEPARATOR(new_mount[strlen(new_mount) - 1]))
+	    {
+		new_mount[strlen(new_mount) - 1] = 0;
+	    }
+	}
+	if (!(mountpoint && new_mount &&
+	      (strcmp (mountpoint, new_mount) == 0)))
+	{   /* mountpoint has changed */
+	    g_free (mountpoint);
+	    mountpoint = new_mount;
+	    new_mount = NULL;
+	    set_itdb_prefs_string (itdb, KEY_MOUNTPOINT, mountpoint);
+	    call_script ("gtkpod.load", mountpoint, NULL);
+	    itdb_set_mountpoint (itdb, mountpoint);
+	}
+	else
+	{
+	    g_free (new_mount);
+	    new_mount = NULL;
+	}
+	model = gtk_combo_box_get_active_text (
+	    GTK_COMBO_BOX (GET_WIDGET (MODEL_COMBO)));
+	if (strcmp (model, gettext(SELECT_OR_ENTER_YOUR_MODEL)) == 0)
+	{   /* User didn't choose a model */
+	    g_free (model);
+	    model = NULL;
+	}
+
+	/* Set model in the prefs system */
+	set_itdb_prefs_string (itdb, KEY_IPOD_MODEL, model);
+
+	name = get_itdb_prefs_string (itdb, "name");
+	result = itdb_init_ipod (mountpoint, model, name, &error);
+	if (!result)
+	{
+	    if (error)
+	    {
+		gtkpod_warning (_("Error initialising iPod: %s\n"),
+				error->message);
+		g_error_free (error);
+		error = NULL;
+	    }
+	    else
+	    {
+		gtkpod_warning (_("Error initialising iPod, unknown error\n"));
+	    }
+	}
+	g_free (name);
+	g_free (model);
+	break;
+    default:
+	/* canceled -- do nothing */
+	break;
+    }
+
+    gtk_widget_destroy (ii->window);
+
+    g_free (mountpoint);
+
+    g_free (ii);
+
+    return result;
+}
+
+
+/* Redefine shortcut to reference widgets.*/
+#undef GET_WIDGET
+#define GET_WIDGET(a) gtkpod_xml_get_widget (xml,a)
+
+
+/**
+ * gp_ipod_init_set_model:
+ *
+ * Ask for the iPod model, pre-select @old_model, set the selected
+ * model in the preferences.
+ *
+ * @itdb: the itdb to set
+ * @old_model: the model number string to initially propose.
+ */
+void gp_ipod_init_set_model (iTunesDB *itdb, const gchar *old_model)
+{
+    GladeXML *xml;
+    GtkWidget *window;
+    gint response;
+    gchar *model, *mountpoint;
+    GtkEntry *entry;
+    gchar buf[PATH_MAX];
+    GtkComboBox *cb;
+    const IpodInfo *info;
+
+    g_return_if_fail (itdb);
+
+    /* Create window */
+    xml = glade_xml_new (xml_file, "set_ipod_model_dialog", NULL);
+    window = GET_WIDGET ("set_ipod_model_dialog");
+    g_return_if_fail (window);
+
+    /* Set up label */
+    mountpoint = get_itdb_prefs_string (itdb, KEY_MOUNTPOINT);
+    g_return_if_fail (mountpoint);
+    g_snprintf (buf, PATH_MAX, _("<b>Please select your iPod model at </b><i>%s</i>"), mountpoint);
+    gtk_label_set_markup (GTK_LABEL (GET_WIDGET ("label")), buf);
+    g_free (mountpoint);
+
+    /* Setup model number combo */
+    cb = GTK_COMBO_BOX (GET_WIDGET (MODEL_COMBO));
+    gp_init_model_number_combo (cb);
+
+    /* If available set current model number, otherwise indicate that
+       none is available */
+    info = itdb_device_get_ipod_info (itdb->device);
+    if (info && (info->ipod_generation != ITDB_IPOD_GENERATION_UNKNOWN))
+    {
+	g_snprintf (buf, PATH_MAX, "x%s", info->model_number);
+    }
+    else
+    {
+	g_snprintf (buf, PATH_MAX, "%s", gettext (SELECT_OR_ENTER_YOUR_MODEL));
+    }
+    entry = GTK_ENTRY (gtk_bin_get_child(GTK_BIN (cb)));
+    gtk_entry_set_text (entry, buf);
+
+
+    response = gtk_dialog_run (GTK_DIALOG (window));
+
+    switch (response)
+    {
+    case GTK_RESPONSE_OK:
+	model = gtk_combo_box_get_active_text (
+	    GTK_COMBO_BOX (GET_WIDGET (MODEL_COMBO)));
+	if (strcmp (model, gettext(SELECT_OR_ENTER_YOUR_MODEL)) == 0)
+	{   /* User didn't choose a model */
+	    g_free (model);
+	    model = NULL;
+	}
+	if (model)
+	{
+	    /* Set model in the prefs system */
+	    set_itdb_prefs_string (itdb, KEY_IPOD_MODEL, model);
+	    /* Set the model on the iPod */
+	    itdb_device_set_sysinfo (itdb->device, "ModelNumStr", model);
+	    g_free (model);
+	}
+	break;
+    default:
+	/* canceled -- do nothing */
+	break;
+    }
+
+    gtk_widget_destroy (window);
+}

Added: gtkpod/branches/upstream/current/src/ipod_init.h
===================================================================
--- gtkpod/branches/upstream/current/src/ipod_init.h	                        (rev 0)
+++ gtkpod/branches/upstream/current/src/ipod_init.h	2006-09-30 00:00:17 UTC (rev 139)
@@ -0,0 +1,46 @@
+/* Time-stamp: <2006-06-10 18:20:18 jcs>
+|
+|  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
+|  Part of the gtkpod project.
+| 
+|  URL: http://www.gtkpod.org/
+|  URL: http://gtkpod.sourceforge.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; either version 2 of the License, or
+|  (at your option) any later version.
+| 
+|  This program is distributed in the hope that it will be useful,
+|  but WITHOUT ANY WARRANTY; without even the implied warranty of
+|  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+|  GNU General Public License for more details.
+| 
+|  You should have received a copy of the GNU General Public License
+|  along with this program; if not, write to the Free Software
+|  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+| 
+|  iTunes and iPod are trademarks of Apple
+| 
+|  This product is not supported/written/published by Apple!
+|
+|  $Id: ipod_init.h,v 1.3 2006/06/10 10:38:59 jcsjcs Exp $
+*/
+
+#ifndef __IPOD_INIT_H__
+#define __IPOD_INIT_H__
+
+#ifdef HAVE_CONFIG_H
+#  include <config.h>
+#endif
+ 
+#include <gtk/gtk.h>
+#include "itdb.h"
+
+
+extern const gchar *SELECT_OR_ENTER_YOUR_MODEL;
+
+gboolean gp_ipod_init (iTunesDB *itdb);
+void gp_init_model_number_combo (GtkComboBox *cb);
+void gp_ipod_init_set_model (iTunesDB *itdb, const gchar *old_model);
+#endif

Modified: gtkpod/branches/upstream/current/src/itdb.h
===================================================================
--- gtkpod/branches/upstream/current/src/itdb.h	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/src/itdb.h	2006-09-30 00:00:17 UTC (rev 139)
@@ -1,4 +1,4 @@
-/* Time-stamp: <2005-11-27 15:52:33 jcs>
+/* Time-stamp: <2006-06-05 21:34:12 jcs>
 |
 |  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
 |  Part of the gtkpod project.
@@ -30,7 +30,7 @@
 |
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: itdb.h,v 1.18 2005/11/28 16:25:34 jcsjcs Exp $
+|  $Id: itdb.h,v 1.19 2006/06/06 00:47:07 jcsjcs Exp $
 */
 
 #ifndef ITDB_H
@@ -47,4 +47,5 @@
 typedef Itdb_Track Track;
 typedef Itdb_Thumb Thumb;
 typedef Itdb_Artwork Artwork;
+typedef Itdb_IpodInfo IpodInfo;
 #endif

Modified: gtkpod/branches/upstream/current/src/main.c
===================================================================
--- gtkpod/branches/upstream/current/src/main.c	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/src/main.c	2006-09-30 00:00:17 UTC (rev 139)
@@ -1,4 +1,4 @@
-/* Time-stamp: <2005-11-25 23:52:12 jcs>
+/* Time-stamp: <2006-09-24 20:49:39 jcs>
 |
 |  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
 |  Part of the gtkpod project.
@@ -24,7 +24,7 @@
 |
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: main.c,v 1.47 2005/11/26 13:44:41 jcsjcs Exp $
+|  $Id: main.c,v 1.58 2006/09/24 12:16:26 jcsjcs Exp $
 */
 
 #ifdef HAVE_CONFIG_H
@@ -39,7 +39,6 @@
 #include "prefs.h"
 #include "misc.h"
 #include "file.h"
-//#include "podcast.h"
 
 /* path to gtkpod.glade */
 gchar *xml_file;
@@ -122,21 +121,20 @@
   
   gtkpod_window = gtkpod_xml_get_widget (main_window_xml, "gtkpod");
   
-  if (!read_prefs (gtkpod_window, argc, argv)) return 0;
-
+  init_prefs(argc, argv); 
+  
   display_create ();
 
+  gtk_widget_show (gtkpod_window);
+
   init_data (gtkpod_window);   /* setup base data */
 
   /* stuff to be done before starting gtkpod */
-  call_script ("gtkpod.in");
+  call_script ("gtkpod.in", NULL);
 
-  gtk_widget_show (gtkpod_window);
+  if(prefs_get_int("autoimport") || prefs_get_int("autoimport_commandline"))
+      gp_load_ipods ();
 
-  if(prefs_get_automount())      mount_ipod();
-  if(prefs_get_autoimport() || prefs_get_autoimport_commandline())
-      gp_merge_ipod_itdbs ();
-
   server_setup ();   /* start server to accept playcount updates */
 
 /*   gdk_threads_enter (); */

Modified: gtkpod/branches/upstream/current/src/md5.c
===================================================================
--- gtkpod/branches/upstream/current/src/md5.c	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/src/md5.c	2006-09-30 00:00:17 UTC (rev 139)
@@ -1,4 +1,4 @@
-/* Time-stamp: <2005-06-17 22:12:16 jcs>
+/* Time-stamp: <2006-05-17 22:10:35 jcs>
 |
 |  Copyright (C) 2002 Corey Donohoe <atmos at atmos.org>
 |  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
@@ -29,7 +29,7 @@
 |
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: md5.c,v 1.39 2005/06/17 13:30:03 jcsjcs Exp $
+|  $Id: md5.c,v 1.44 2006/06/25 23:29:08 freethinkerjim Exp $
 */
 
 #include <errno.h>
@@ -45,6 +45,8 @@
 #include "file.h"
 #include "prefs.h"
 #include "misc.h"
+#include "misc_track.h"
+#include "display.h"
 #include "display_itdb.h"
 
 
@@ -90,22 +92,46 @@
 #define NR_PATH_MAX_BLOCKS 4
 #define PATH_MAX_MD5 4096
 
+/* Set up or destory the md5 hash table */
+void setup_md5()
+{
+    struct itdbs_head *itdbs_head;
+
+    g_return_if_fail (gtkpod_window);
+    itdbs_head = g_object_get_data (G_OBJECT (gtkpod_window),
+				    "itdbs_head");
+
+    /* gets called before itdbs are set up -> fail silently */
+    if (itdbs_head)
+    {
+	if (prefs_get_int("md5"))  /* MD5 hashing turned on */
+	{
+	    gp_md5_hash_tracks();
+	
+	    /* Display duplicates */
+	    gp_duplicate_remove(NULL, NULL);
+	}
+	else
+	    gp_md5_free_hash();
+    }
+}
+
 /**
  * get_filesize_for_file_descriptor - get the filesize on disk for the given
  * file descriptor
  * @fp - the filepointer we want the filesize for
  * Returns - the filesize in bytes
  */
-static int
+static guint32
 get_filesize_for_file_descriptor(FILE *fp)
 {
-    int result = 0;
+    off_t result = 0;
     struct stat stat_info;
     int file_no = fileno(fp);
 
     if((fstat(file_no, &stat_info) == 0))	/* returns 0 on success */
 	result = (int)stat_info.st_size;
-    return(result);
+    return (guint32)result;
 }
 
 /**
@@ -130,15 +156,17 @@
 
        if(fsize > 0)
        {
+	   guint32 fsize_normal;
 	   guint8 *hash = NULL;
 	   int bread = 0, x = 0, last = 0;
-	   gchar file_chunk[chunk_size + sizeof(int)];
+	   guchar file_chunk[chunk_size + sizeof(int)];
 
 	   /* allocate the digest we're returning */
 	   result = g_malloc0(sizeof(gchar) * 41);
 
 	   /* put filesize in the first 32 bits */
-	   memcpy(file_chunk, &fsize, sizeof(int));
+	   fsize_normal = GINT32_TO_LE (fsize);
+	   memcpy(file_chunk, &fsize_normal, sizeof(guint32));
 
 	   /* read chunk_size from fp */
 	   bread = fread(&file_chunk[sizeof(int)], sizeof(gchar),
@@ -182,10 +210,14 @@
    {
        result = g_strdup(etr->md5_hash);
    }
-   else if ((filename = get_file_name (s)) != NULL)
+   else
    {
-       result = md5_hash_on_filename (filename, FALSE);
-       g_free(filename);
+       filename = get_file_name_from_source (s, SOURCE_PREFER_LOCAL);
+       if (filename)
+       {
+	   result = md5_hash_on_filename (filename, FALSE);
+	   g_free(filename);
+       }
    }
    return (result);
 }
@@ -266,7 +298,7 @@
     etr = s->userdata;
     g_return_val_if_fail (etr, NULL);
 
-    if (prefs_get_md5tracks ())
+    if (prefs_get_int("md5"))
     {
 	if (eitdb->md5hash == NULL)
 	{
@@ -309,7 +341,7 @@
     eitdb = itdb->userdata;
     g_return_val_if_fail (eitdb, NULL);
 
-    if (prefs_get_md5tracks() && eitdb->md5hash)
+    if (prefs_get_int("md5") && eitdb->md5hash)
     {
 	gchar *val = md5_hash_track (s);
 	if (val)
@@ -337,7 +369,7 @@
     eitdb = itdb->userdata;
     g_return_val_if_fail (eitdb, NULL);
 
-    if (prefs_get_md5tracks() && eitdb->md5hash)
+    if (prefs_get_int("md5") && eitdb->md5hash)
     {
 	gchar *val = md5_hash_on_filename (file, silent);
 	if (val)
@@ -366,7 +398,7 @@
     eitdb = itdb->userdata;
     g_return_val_if_fail (eitdb, NULL);
 
-    if (prefs_get_md5tracks() && eitdb->md5hash)
+    if (prefs_get_int("md5") && eitdb->md5hash)
     {
 	track = g_hash_table_lookup (eitdb->md5hash, md5);
     }
@@ -386,7 +418,7 @@
     eitdb = s->itdb->userdata;
     g_return_if_fail (eitdb);
 
-    if (prefs_get_md5tracks() && eitdb->md5hash)
+    if (prefs_get_int("md5") && eitdb->md5hash)
     {
 	gchar *val = md5_hash_track (s);
 	if (val)
@@ -532,3 +564,5 @@
    }
 }
 #endif
+
+

Modified: gtkpod/branches/upstream/current/src/md5.h
===================================================================
--- gtkpod/branches/upstream/current/src/md5.h	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/src/md5.h	2006-09-30 00:00:17 UTC (rev 139)
@@ -26,13 +26,14 @@
 | 
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: md5.h,v 1.20 2005/06/17 13:30:03 jcsjcs Exp $
+|  $Id: md5.h,v 1.22 2006/06/25 23:29:08 freethinkerjim Exp $
 */
 #ifndef _GTKPOD_MD5_H_
 #define _GTKPOD_MD5_H_
 
 #include "display_itdb.h"
 
+void setup_md5();
 gchar *md5_hash_on_filename (gchar *name, gboolean silent);
 /* Any calls to the following functions immediately return if md5sums
  * is not on */
@@ -43,4 +44,5 @@
 void md5_track_remove (Track *s);
 void md5_free (iTunesDB *itdb);
 void md5_free_eitdb (ExtraiTunesDBData *eitdb);
+
 #endif

Modified: gtkpod/branches/upstream/current/src/misc.c
===================================================================
--- gtkpod/branches/upstream/current/src/misc.c	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/src/misc.c	2006-09-30 00:00:17 UTC (rev 139)
@@ -1,5 +1,5 @@
 /* -*- coding: utf-8; -*-
-|  Time-stamp: <2005-12-11 00:15:39 jcs>
+|  Time-stamp: <2006-06-28 01:21:08 jcs>
 |
 |  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
 |  Part of the gtkpod project.
@@ -25,13 +25,14 @@
 |
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: misc.c,v 1.192 2005/12/10 17:04:28 jcsjcs Exp $
+|  $Id: misc.c,v 1.213 2006/06/27 16:30:02 jcsjcs Exp $
 */
 
 #ifdef HAVE_CONFIG_H
 #  include <config.h>
 #endif
 
+#include <errno.h>
 #include <gtk/gtk.h>
 #include <stdlib.h>
 #include <string.h>
@@ -142,8 +143,10 @@
 Christoph Kunz: address compatibility issues when writing id3v2.4 type mp3 tags\n"),
 		       "\n",
 		       _("\
-James Ligget: replacement of old GTK file selection dialogs with new GTK filechooser dialogs\n"),
-		       "\n",
+James Liggett:\n\
+     replacement of old GTK file selection dialogs with new GTK filechooser dialogs\n\
+     refactored user preferences system.\n"),
+                       "\n",
 		       _("\
 Daniel Kercher: sync scripts for abook and webcalendar\n"),
 		       "\n",
@@ -316,26 +319,6 @@
 
 
 
-void cleanup_backup_and_extended_files (void)
-{
-  gchar *cfgdir;
-
-  cfgdir = prefs_get_cfgdir ();
-  /* in offline mode, there are no backup files! */
-  if (cfgdir && !prefs_get_offline ())
-    {
-      gchar *cfe = g_build_filename (cfgdir, "iTunesDB.ext", NULL);
-      if (!prefs_get_write_extended_info ())
-	/* delete extended info file from computer */
-	if (g_file_test (cfe, G_FILE_TEST_EXISTS))
-	  if (remove (cfe) != 0)
-	    gtkpod_warning (_("Could not delete backup file: \"%s\"\n"), cfe);
-      g_free (cfe);
-    }
-  C_FREE (cfgdir);
-}
-
-
 /* Duplicate a GList (shallow copy) */
 GList *glist_duplicate (GList *list)
 {
@@ -351,159 +334,28 @@
 
 
 /***************************************************************************
- * Mount Calls
+ * gtkpod.in,out calls
  *
  **************************************************************************/
-/**
- * mount_ipod - attempt to mount the ipod to prefs_get_ipod_mount() This
- * does not check prefs to see if the current prefs want gtkpod itself to
- * mount the ipod drive, that should be checked before making this call.
- */
-#include <sys/param.h>   /* seems to be needed for FreeBSD 5.4
-			    otherwise sys/mount.h throws an error */
-#include <sys/mount.h>
-#include <errno.h>
-#include <stdio.h>
 
-
-static gchar *getdevicename(const gchar *mount)
+/* tries to call "/bin/sh @script" with command line options */
+static void do_script (const gchar *script, va_list args)
 {
-    if(mount) {
-        gchar device[256], point[256];
-        FILE *fp = fopen("/proc/mounts","r");
-        if (!fp)
-            return NULL;
-        do {
-            fscanf(fp, "%255s %255s %*s %*s %*s %*s", device, point);
-            if( strcmp(mount,point) == 0 ) {
-                fclose(fp);
-                return strdup(device);
-            }
-        } while(!feof(fp));
-        fclose(fp);
-    }
-    return NULL;
-}
+    char *str;
+    char **argv;
+    GPtrArray *ptra = g_ptr_array_sized_new (10);
 
-
-
-void
-mount_ipod(void)
-{
-    const gchar *str = prefs_get_ipod_mount ();
-    if(str)
+    /* prepend args with "sh" and the name of the script */
+    g_ptr_array_add (ptra, "sh");
+    g_ptr_array_add (ptra, (gpointer)script);
+    /* add remaining args */
+    while ((str = va_arg (args, char *)))
     {
-	pid_t pid, tpid;
-	int status;
-
-	pid = fork ();
-	switch (pid)
-	{
-	    case 0: /* child */
-		execl(MOUNT_BIN, "mount", str, NULL);
-		exit (1);
-		break;
-	    case -1: /* parent and error */
-		break;
-	    default: /* parent -- let's wait for the child to terminate */
-		tpid = waitpid (pid, &status, 0);
-		/* we could evaluate tpid and status now */
-		break;
-	}
+	g_ptr_array_add (ptra, str);
     }
-}
+    g_ptr_array_add (ptra, NULL);
+    argv = (char **)g_ptr_array_free (ptra, FALSE);
 
-/**
- * unmount_ipod - attempt to eject the ipod from prefs_get_ipod_mount()
- * This does not check prefs to see if the current prefs want gtkpod itself
- * to eject the ipod drive, that should be checked before making this
- * call.
- */
-void
-unmount_ipod(void)
-{
-    const gchar *mp = prefs_get_ipod_mount ();
-    if (mp)
-    {
-	pid_t pid, tpid;
-	int status;
-	gchar *eject_bin;
-	gchar *ipod_device = getdevicename (mp);
-
-	/* umount */
-	pid = fork ();
-	switch (pid)
-	{
-	    case 0: /* child */
-		execl (UMOUNT_BIN, "umount", mp, NULL);
-		exit (1); /* this is only reached in case of an error */
-		break;
-	    case -1: /* parent and error */
-		break;
-	    default: /* parent -- let's wait for the child to terminate */
-		tpid = waitpid (pid, &status, 0);
-		if (status != 0)
-		{
-		   	gchar *buf;
-		    gchar *str_utf8 = charset_to_utf8 (mp);
-		    GtkWidget *dialog;
-		    if (ipod_device)
-			buf = g_strdup_printf (
-			    _("Unmounting of '%s' (%s) unsuccessful."),
-			    str_utf8, ipod_device);
-		    else
-			buf = g_strdup_printf (
-			    _("Unmounting of '%s' unsuccessful."),
-			    str_utf8);
-		    g_free (str_utf8);
-		    dialog = gtk_message_dialog_new (
-			GTK_WINDOW (gtkpod_window),
-			GTK_DIALOG_DESTROY_WITH_PARENT,
-			GTK_MESSAGE_WARNING,
-			GTK_BUTTONS_OK,
-			buf);
-		    gtk_dialog_run (GTK_DIALOG (dialog));
-		    gtk_widget_destroy (dialog);
-		    g_free (buf);
-		}
-		break;
-	}
-	/* eject -- only if ipod_device and are EJECT_BIN available */
-	eject_bin = which ("eject");
-	if (ipod_device && eject_bin)
-	{
-	    pid = fork ();
-	    switch (pid)
-	    {
-	    case 0: /* child */
-		execl (eject_bin, "eject", ipod_device, NULL);
-		exit (1); /* this is only reached in case of an error */
-		break;
-	    case -1: /* parent and error */
-		break;
-	    default: /* parent -- let's wait for the child to terminate */
-		tpid = waitpid (pid, &status, 0);
-		if (status != 0)
-		{
-		    /* fail silently */
-		}
-		break;
-	    }
-	    g_free (eject_bin);
-	}
-	g_free (ipod_device);
-    }
-}
-
-
-/***************************************************************************
- * gtkpod.in,out calls
- *
- **************************************************************************/
-
-/* tries to call "/bin/sh @script" */
-static void do_script (gchar *script)
-{
     if (script)
     {
 	pid_t pid, tpid;
@@ -513,7 +365,7 @@
 	switch (pid)
 	{
 	case 0: /* child */
-	    execl("/bin/sh", "sh", script, NULL);
+	    execv("/bin/sh", argv);
 	    exit(0);
 	break;
 	case -1: /* parent and error */
@@ -524,23 +376,29 @@
 	    break;
 	}
     }
+    g_free (argv);
 }
 
 
 /* tries to execute "/bin/sh ~/.gtkpod/@script" or
- * "/bin/sh /etc/gtkpod/@script" if the former does not exist */
-void call_script (gchar *script)
+ * "/bin/sh /etc/gtkpod/@script" if the former does not exist. This
+ * function accepts command line arguments that must be terminated by
+ * NULL. */
+void call_script (gchar *script, ...)
 {
     gchar *cfgdir;
+    va_list args;
     gchar *file;
 
     if (!script) return;
 
     cfgdir =  prefs_get_cfgdir ();
     file = g_build_filename (cfgdir, script, NULL);
+
+    va_start (args, script);
     if (g_file_test (file, G_FILE_TEST_EXISTS))
     {
-	do_script (file);
+	do_script (file, args);
     }
     else
     {
@@ -548,11 +406,13 @@
 	file = g_build_filename ("/etc/gtkpod/", script, NULL);
 	if (g_file_test (file, G_FILE_TEST_EXISTS))
 	{
-	    do_script (file);
+	    do_script (file, args);
 	}
     }
-    C_FREE (file);
-    C_FREE (cfgdir);
+    va_end (args);
+
+    g_free (file);
+    g_free (cfgdir);
 }
 
 
@@ -561,7 +421,7 @@
  * depending on prefs settings */
 gint compare_string (const gchar *str1, const gchar *str2)
 {
-    if (prefs_get_case_sensitive ())
+    if (prefs_get_int("case_sensitive"))
 	return strcmp (str1, str2);
     else
 	return compare_string_case_insensitive (str1, str2);
@@ -581,7 +441,9 @@
 void compare_string_fuzzy_generate_keys (void)
 {
     GList *gl;
-    gint i;
+    GList *sort_ign_strings;
+    GList *current;
+
     /* remove old keys */
     for (gl=csfk_list; gl; gl=gl->next)
     {
@@ -594,33 +456,25 @@
     csfk_list = NULL;
 
     /* create new keys */
-    for (i=0; ;++i)
+    sort_ign_strings = prefs_get_list("sort_ign_string_");
+    current = sort_ign_strings;
+    while (current)
     {
-	gchar *buf = g_strdup_printf ("sort_ign_string_%d", i);
-	gchar *str = prefs_get_string (buf);
+	gchar *str = current->data;
 	struct csfk *csfk;
 	gchar *tempStr;
+	
+	current = g_list_next(current);
 
-	g_free (buf);
-
-	/* end loop if no string is set or if the the string
-	 * corresponds to the end marker */
-	if (!str)  break;  
-	if (strcmp (str, SORT_IGNORE_STRINGS_END) == 0)
-	{
-	    g_free (str);
-	    break;
-	}
-
 	csfk = g_malloc (sizeof (struct csfk));
 	tempStr = g_utf8_casefold (str, -1 );
 	csfk->length = g_utf8_strlen (tempStr, -1 );
 	csfk->key = g_utf8_collate_key (tempStr, -1 );
 	g_free (tempStr);
-	g_free (str);
 
 	csfk_list = g_list_append (csfk_list, csfk);
     }
+    prefs_free_list(sort_ign_strings);
 }
 
 
@@ -687,7 +541,7 @@
 	g_free (tempStr);
     }
 
-    if (prefs_get_case_sensitive ())
+    if (prefs_get_int("case_sensitive"))
 	result = strcmp(pstr1, pstr2);
     else
     	result = g_utf8_collate(pcleanStr1, pcleanStr2);
@@ -804,7 +658,7 @@
 	fprintf (stderr, "Programming error: wnum > num (%d,%d,%s)\n",
 		 wnum, num, prefs_string);
 	/* set to reasonable default value */
-	prefs_set_int_value (prefs_string, 0);
+	prefs_set_int (prefs_string, 0);
 	wnum = 0;
     }
     w = gtkpod_xml_get_widget (win_xml, widgets[wnum]);
@@ -838,7 +692,7 @@
 	/* set reasonable default */
 	i=0;
     }
-    prefs_set_int_value (prefs_string, i);
+    prefs_set_int (prefs_string, i);
     return i;
 }
 
@@ -870,7 +724,7 @@
     g_return_if_fail (fc && prefs_string);
 
     folder = gtk_file_chooser_get_current_folder (fc);
-    prefs_set_string_value (prefs_string, folder);
+    prefs_set_string (prefs_string, folder);
 
     if (value) *value = folder;
     else       g_free (folder);
@@ -904,7 +758,7 @@
     g_return_if_fail (fc && prefs_string);
 
     filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER(fc));
-    prefs_set_string_value (prefs_string, filename);
+    prefs_set_string (prefs_string, filename);
 
     if (value) *value = filename;
     else       g_free (filename);
@@ -952,7 +806,7 @@
     if (entry)
     {
 	const gchar *str = gtk_entry_get_text (GTK_ENTRY (entry));
-	prefs_set_string_value (name, str);
+	prefs_set_string (name, str);
 	if (value) *value = g_strdup (str);
     }
 }
@@ -995,7 +849,7 @@
     if (button)
     {
 	active = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON(button));
-	prefs_set_int_value (name, active);
+	prefs_set_int (name, active);
     }
     return active;
 }
@@ -1064,15 +918,25 @@
 static gchar *select_template (Track *track, const gchar *p)
 {
     gchar **templates, **tplp;
-    gchar *tname, *ext = NULL;
+    gchar *ext = NULL;
+    const gchar *tname;
     gchar *result;
     ExtraTrackData *etr;
 
     g_return_val_if_fail (track, strdup (""));
     etr = track->userdata;
     g_return_val_if_fail (etr, strdup (""));
-    tname = get_file_name (track);
-    if (!tname) return (NULL);         /* this should not happen... */
+    if (etr->pc_path_locale && strlen(etr->pc_path_locale))
+	tname = etr->pc_path_locale;
+    else
+	tname = track->ipod_path;
+    if (!tname)
+    {   /* this should not happen... */
+	gchar *buf = get_track_info (track, TRUE);
+	gtkpod_warning (_("Could not process '%s' (no filename available)"),
+			buf);
+	g_free (buf);
+    }
     ext = strrchr (tname, '.');        /* pointer to filename extension */
 
     templates = g_strsplit (p, ";", 0);
@@ -1085,7 +949,7 @@
 	    if (etr->pc_path_locale && strlen(etr->pc_path_locale))  break;
 	}
 	else if (strrchr (*tplp, '.') == NULL)
-	{   /* this templlate does not have an extension and therefore
+	{   /* this template does not have an extension and therefore
 	     * matches */
 	    if (ext)
 	    {   /* if we have an extension, add it */
@@ -1097,7 +961,8 @@
 	}
 	else if (ext && (strlen (*tplp) >= strlen (ext)))
 	{  /* this template is valid if the extensions match */
-	    if (strcmp (&((*tplp)[strlen (*tplp) - strlen (ext)]), ext) == 0)
+	    if (strcasecmp (&((*tplp)[strlen (*tplp) - strlen (ext)]),
+			    ext) == 0)
 		break;
 	}
 	++tplp;
@@ -1297,7 +1162,7 @@
 
     if (!template)
     {
-	gchar *fn = get_file_name (track);
+	gchar *fn = get_file_name_from_source (track, SOURCE_PREFER_LOCAL);
 	gtkpod_warning (_("Template ('%s') does not match file type '%s'\n"), full_template, fn ? fn:"");
 	g_free (fn);
 	return NULL;
@@ -1413,9 +1278,15 @@
  */
 gchar *convert_filename (const gchar *filename)
 {
+  if (filename)
+  {    
     if (strncmp ("~/", filename, 2) == 0)
-	 return g_build_filename (g_get_home_dir(), filename+2, NULL);
-    else return g_strdup (filename);
+      return g_build_filename (g_get_home_dir(), filename+2, NULL);
+    else 
+      return g_strdup (filename);
+  }
+  
+  return NULL;
 }
 
 
@@ -1435,3 +1306,271 @@
 
     return w;
 }
+
+
+  gchar    *ipod_mount;     /* mount point of iPod */
+/* ------------------------------------------------------------
+ *
+ *        Helper functions for pref keys
+ *
+ * ------------------------------------------------------------ */
+
+
+/**
+ * Helper function to construct prefs key for itdb,
+ * e.g. itdb_1_mountpoint...
+ * gfree() after use
+ *
+ **/
+gchar *get_itdb_prefs_key (gint index, const gchar *subkey)
+{
+    g_return_val_if_fail (subkey, NULL);
+
+    return g_strdup_printf ("itdb_%d_%s", index, subkey);
+}
+
+
+/**
+ * Helper function to construct prefs key for playlists,
+ * e.g. itdb_1_playlist_xxxxxxxxxxx_syncmode...
+ *
+ * gfree() after use
+ **/
+gchar *get_playlist_prefs_key (gint index,
+			       Playlist *pl, const gchar *subkey)
+{
+    g_return_val_if_fail (pl, NULL);
+    g_return_val_if_fail (subkey, NULL);
+
+    return g_strdup_printf ("itdb_%d_playlist_%llu_%s",
+			    index, (unsigned long long)pl->id, subkey);
+}
+
+
+/**
+ * Helper function to retrieve the index number of @itdb needed to
+ * construct any keys (see above)
+ **/
+gint get_itdb_index (iTunesDB *itdb)
+{
+	struct itdbs_head *itdbs_head;
+
+	itdbs_head = gp_get_itdbs_head (gtkpod_window);
+	g_return_val_if_fail (itdbs_head, 0);
+	
+	return g_list_index (itdbs_head->itdbs, itdb);
+}
+
+
+/**
+ * Helper function to retrieve a string prefs entry for @itdb.
+ * 
+ * gfree() after use
+ **/
+gchar *get_itdb_prefs_string (iTunesDB *itdb, const gchar *subkey)
+{
+    gchar *key, *value;
+
+    g_return_val_if_fail (itdb, NULL);
+    g_return_val_if_fail (subkey, NULL);
+
+    key = get_itdb_prefs_key (get_itdb_index (itdb), subkey);
+    value = prefs_get_string (key);
+    g_free (key);
+
+    return value;
+}
+
+
+/**
+ * Helper function to retrieve a string prefs entry for @playlist.
+ * 
+ **/
+gchar *get_playlist_prefs_string (Playlist *playlist, const gchar *subkey)
+{
+    gchar *key, *value;
+
+    g_return_val_if_fail (playlist, 0);
+    g_return_val_if_fail (subkey, 0);
+
+    key = get_playlist_prefs_key (get_itdb_index (playlist->itdb),
+				  playlist, subkey);
+    value = prefs_get_string (key);
+    g_free (key);
+
+    return value;
+}
+
+/**
+ * Helper function to retrieve an int prefs entry for @itdb.
+ * 
+ **/
+gint get_itdb_prefs_int (iTunesDB *itdb, const gchar *subkey)
+{
+    gchar *key;
+    gint value;
+
+    g_return_val_if_fail (itdb, 0);
+    g_return_val_if_fail (subkey, 0);
+
+    key = get_itdb_prefs_key (get_itdb_index (itdb), subkey);
+    value = prefs_get_int (key);
+    g_free (key);
+
+    return value;
+}
+
+/**
+ * Helper function to retrieve an int prefs entry for @playlist.
+ * 
+ **/
+gint get_playlist_prefs_int (Playlist *playlist, const gchar *subkey)
+{
+    gchar *key;
+    gint value;
+
+    g_return_val_if_fail (playlist, 0);
+    g_return_val_if_fail (subkey, 0);
+
+    key = get_playlist_prefs_key (get_itdb_index (playlist->itdb),
+				  playlist, subkey);
+    value = prefs_get_int (key);
+    g_free (key);
+
+    return value;
+}
+
+/**
+ * Helper function to retrieve a string prefs entry for @itdb.
+ *
+ * Returns TRUE if the key was actually set in the prefs. 
+ * 
+ * gfree() after use
+ **/
+gboolean get_itdb_prefs_string_value (iTunesDB *itdb, const gchar *subkey,
+				      gchar **value)
+{
+    gchar *key;
+    gboolean result;
+
+    g_return_val_if_fail (itdb, FALSE);
+    g_return_val_if_fail (subkey, FALSE);
+
+    key = get_itdb_prefs_key (get_itdb_index (itdb), subkey);
+    result = prefs_get_string_value (key, value);
+    g_free (key);
+
+    return result;
+}
+
+
+/**
+ * Helper function to retrieve an in prefs entry for @itdb.
+ * 
+ **/
+gboolean get_itdb_prefs_int_value (iTunesDB *itdb, const gchar *subkey,
+				   gint *value)
+{
+    gchar *key;
+    gboolean result;
+
+    g_return_val_if_fail (itdb, FALSE);
+    g_return_val_if_fail (subkey, FALSE);
+
+    key = get_itdb_prefs_key (get_itdb_index (itdb), subkey);
+    result = prefs_get_int_value (key, value);
+    g_free (key);
+
+    return result;
+}
+
+
+/**
+ * Helper function to set a string prefs entry for @itdb.
+ * 
+ * gfree() after use
+ **/
+void set_itdb_prefs_string (iTunesDB *itdb,
+			    const gchar *subkey, const gchar *value)
+{
+    gchar *key;
+
+    g_return_if_fail (itdb);
+    g_return_if_fail (subkey);
+
+    key = get_itdb_prefs_key (get_itdb_index (itdb), subkey);
+    prefs_set_string (key, value);
+    g_free (key);
+}
+
+
+/**
+ * Helper function to set a string prefs entry for @itdb.
+ * 
+ * gfree() after use
+ **/
+void set_itdb_index_prefs_string (gint index,
+				  const gchar *subkey, const gchar *value)
+{
+    gchar *key;
+
+    g_return_if_fail (subkey);
+
+    key = get_itdb_prefs_key (index, subkey);
+    prefs_set_string (key, value);
+    g_free (key);
+}
+
+
+/**
+ * Helper function to set an in prefs entry for @itdb.
+ * 
+ **/
+void set_itdb_prefs_int (iTunesDB *itdb, const gchar *subkey, gint value)
+{
+    gchar *key;
+
+    g_return_if_fail (itdb);
+    g_return_if_fail (subkey);
+
+    key = get_itdb_prefs_key (get_itdb_index (itdb), subkey);
+    prefs_set_int (key, value);
+    g_free (key);
+}
+
+
+/**
+ * Helper function to set an in prefs entry for @itdb.
+ * 
+ **/
+void set_itdb_index_prefs_int (gint index,
+			       const gchar *subkey, gint value)
+{
+    gchar *key;
+
+    g_return_if_fail (subkey);
+
+    key = get_itdb_prefs_key (index, subkey);
+    prefs_set_int (key, value);
+    g_free (key);
+}
+
+/* Sorting gets disabled if either tmp disable sort or
+ * block display are true */
+gboolean sorting_disabled()
+{
+    return (prefs_get_int("block_display") || 
+	    prefs_get_int("tmp_disable_sort"));
+}
+
+/* retrieve offline mode from itdb (convenience function) */
+gboolean get_offline (iTunesDB *itdb)
+{
+    ExtraiTunesDBData *eitdb;
+
+    g_return_val_if_fail (itdb, FALSE);
+    eitdb = itdb->userdata;
+    g_return_val_if_fail (eitdb, FALSE);
+
+    return eitdb->offline;
+}

Modified: gtkpod/branches/upstream/current/src/misc.h
===================================================================
--- gtkpod/branches/upstream/current/src/misc.h	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/src/misc.h	2006-09-30 00:00:17 UTC (rev 139)
@@ -1,4 +1,4 @@
-/* Time-stamp: <2005-12-11 00:15:38 jcs>
+/* Time-stamp: <2006-06-25 00:25:35 jcs>
 |
 |  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
 |  Part of the gtkpod project.
@@ -24,7 +24,7 @@
 |
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: misc.h,v 1.107 2005/12/10 17:04:29 jcsjcs Exp $
+|  $Id: misc.h,v 1.119 2006/06/24 15:39:22 jcsjcs Exp $
 */
 
 #ifndef __MISC_H__
@@ -68,6 +68,27 @@
 /* full path to 'gtkpod.glade', defined in main.c */
 extern gchar *xml_file;
 
+/* Some symbols not necessarily defined */
+
+/* Introduced in 2.6 */
+#ifndef GTK_STOCK_DISCONNECT
+#define GTK_STOCK_DISCONNECT GTK_STOCK_GOTO_TOP
+#define GTK_STOCK_CONNECT GTK_STOCK_GOTO_BOTTOM
+#endif
+#ifndef GTK_STOCK_EDIT
+#define GTK_STOCK_EDIT NULL
+#endif
+#ifndef G_IS_DIR_SEPARATOR
+#define G_IS_DIR_SEPARATOR(c) (c == G_DIR_SEPARATOR)
+#endif
+/* SEMIBOLD was introduced with version 2.8 */
+#ifndef PANGO_WEIGHT_SEMIBOLD
+#define PANGO_WEIGHT_SEMIBOLD 600
+#endif
+
+
+
+
 gchar *get_user_string (gchar *title, gchar *message, gchar *dflt,
 			gchar *opt_msg, gboolean *opt_state);
 Playlist *add_new_pl_user_name (iTunesDB *itdb, gchar *dflt, gint32 pos);
@@ -82,9 +103,7 @@
 void open_about_window (void);
 void close_about_window (void);
 gboolean parse_tracks_from_string(gchar **s, Track **track);
-void cleanup_backup_and_extended_files (void);
 gboolean gtkpod_main_quit(void);
-void gtkpod_main_window_set_active(gboolean active);
 
 T_item TM_to_T (TM_item sm);
 T_item ST_to_T (ST_CAT_item st);
@@ -93,9 +112,6 @@
 const gchar *get_t_string (T_item t);
 const gchar *get_t_tooltip (T_item t);
 
-gchar *get_track_info (Track *track, gboolean prefer_filename);
-
-void ipod_directories_head (const gchar *mountpoint);
 void delete_playlist_head (DeleteAction deleteaction);
 void delete_track_head (DeleteAction deleteaction);
 void delete_entry_head (gint entry_inst, DeleteAction deleteaction);
@@ -103,16 +119,16 @@
 void delete_populate_settings (struct DeleteData *dd,
 			       gchar **label, gchar **title,
 			       gboolean *confirm_again,
-			       ConfHandlerOpt *confirm_again_handler,
+			       gchar **confirm_again_key,
 			       GString **str);
 
 void block_widgets (void);
 void release_widgets (void);
 void update_blocked_widget (GtkWidget *w, gboolean sens);
 
-void mount_ipod(void);
-void unmount_ipod(void);
-void call_script (gchar *script);
+/*void mount_ipod(void);
+  void unmount_ipod(void);*/
+void call_script (gchar *script, ...);
 
 void delete_track_ok (struct DeleteData *dd);
 
@@ -212,4 +228,25 @@
 gchar *which (const gchar *exe);
 
 GtkWidget *gtkpod_xml_get_widget (GladeXML *xml, const gchar *name);
+
+gchar *get_itdb_prefs_key (gint index, const gchar *subkey);
+gchar *get_playlist_prefs_key (gint index, Playlist *pl, const gchar *subkey);
+gint get_itdb_index (iTunesDB *itdb);
+gchar *get_itdb_prefs_string (iTunesDB *itdb, const gchar *subkey);
+gchar *get_playlist_prefs_string (Playlist *playlist, const gchar *subkey);
+gint get_itdb_prefs_int (iTunesDB *itdb, const gchar *subkey);
+gint get_playlist_prefs_int (Playlist *playlist, const gchar *subkey);
+gboolean get_itdb_prefs_string_value (iTunesDB *itdb, const gchar *subkey,
+				      gchar **value);
+gboolean get_itdb_prefs_int_value (iTunesDB *itdb, const gchar *subkey,
+				   gint *value);
+void set_itdb_prefs_string (iTunesDB *itdb,
+			    const gchar *subkey, const gchar *value);
+void set_itdb_index_prefs_string (gint index,
+				  const gchar *subkey, const gchar *value);
+void set_itdb_prefs_int (iTunesDB *itdb, const gchar *subkey, gint value);
+void set_itdb_index_prefs_int (gint index,
+			       const gchar *subkey, gint value);
+gboolean get_offline (iTunesDB *itdb);
+gboolean sorting_disabled();
 #endif

Modified: gtkpod/branches/upstream/current/src/misc_confirm.c
===================================================================
--- gtkpod/branches/upstream/current/src/misc_confirm.c	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/src/misc_confirm.c	2006-09-30 00:00:17 UTC (rev 139)
@@ -1,4 +1,4 @@
-/* Time-stamp: <2005-12-09 23:52:06 jcs>
+/* Time-stamp: <2006-09-24 20:49:39 jcs>
 |
 |  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
 |  Part of the gtkpod project.
@@ -24,7 +24,7 @@
 |
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: misc_confirm.c,v 1.25 2005/12/09 14:55:34 jcsjcs Exp $
+|  $Id: misc_confirm.c,v 1.44 2006/09/24 12:16:26 jcsjcs Exp $
 */
 
 #ifdef HAVE_CONFIG_H
@@ -40,7 +40,7 @@
 #include "prefs.h"
 #include "info.h"
 
-#ifdef HAVE_statvfs
+#ifdef HAVE_STATVFS
 #include <sys/types.h>
 #include <sys/statvfs.h>
 #endif
@@ -74,7 +74,7 @@
 			 NULL, 0, NULL,       /* option 1 */
 			 NULL, 0, NULL,       /* option 2 */
 			 TRUE,                /* gboolean confirm_again, */
-			 NULL, /* ConfHandlerOpt confirm_again_handler, */
+			 NULL, /* ConfHandlerOpt confirm_again_key, */
 			 CONF_NULL_HANDLER,   /* ConfHandler ok_handler,*/
 			 NULL,                /* don't show "Apply" */
 			 NULL,                /* cancel_handler,*/
@@ -95,7 +95,7 @@
 void delete_populate_settings (struct DeleteData *dd,
 			       gchar **label, gchar **title,
 			       gboolean *confirm_again,
-			       ConfHandlerOpt *confirm_again_handler,
+			       gchar **confirm_again_key,
 			       GString **str)
 {
     Track *s;
@@ -104,10 +104,9 @@
 
     g_return_if_fail (dd);
     g_return_if_fail (dd->itdb);
-    g_return_if_fail (dd->pl);
 
     /* write title and label */
-    n = g_list_length (dd->selected_tracks);
+    n = g_list_length (dd->tracks);
 
     if (dd->itdb->usertype & GP_ITDB_TYPE_IPOD)
     {
@@ -128,11 +127,12 @@
 		    ngettext ("Delete Track Completely from iPod?",
 			      "Delete Tracks Completey from iPod?", n));
 	    if (confirm_again)
-		*confirm_again = prefs_get_track_ipod_file_deletion ();
-	    if (confirm_again_handler)
-		*confirm_again_handler = prefs_set_track_ipod_file_deletion;
+		*confirm_again = prefs_get_int("delete_ipod");
+	    if (confirm_again_key)
+		*confirm_again_key = g_strdup("delete_ipod");
 	    break;
 	case DELETE_ACTION_PLAYLIST:
+	    g_return_if_fail (dd->pl);
 	    if (label)
 		*label = g_strdup_printf(
 		    ngettext ("Are you sure you want to remove the following track from the playlist \"%s\"?",
@@ -142,9 +142,9 @@
 		    ngettext ("Remove Track From Playlist?",
 			      "Remove Tracks From Playlist?", n));
 	    if (confirm_again)
-		*confirm_again = prefs_get_track_playlist_deletion ();
-	    if (confirm_again_handler)
-		*confirm_again_handler = prefs_set_track_playlist_deletion;
+		*confirm_again = prefs_get_int("delete_track");
+	    if (confirm_again_key)
+		*confirm_again_key = g_strdup("delete_track");
 	    break;
 	default:
 	    g_return_if_reached ();
@@ -168,11 +168,12 @@
 		    ngettext ("Delete Track from Harddisk?",
 			      "Delete Tracks from Harddisk?", n));
 	    if (confirm_again)
-		*confirm_again = prefs_get_track_local_file_deletion ();
-	    if (confirm_again_handler)
-		*confirm_again_handler = prefs_set_track_local_file_deletion;
+		*confirm_again = prefs_get_int("delete_local_file");
+	    if (confirm_again_key)
+		*confirm_again_key = g_strdup("delete_local_file");
 	    break;
 	case DELETE_ACTION_PLAYLIST:
+	    g_return_if_fail (dd->pl);
 	    if (label)
 		*label = g_strdup_printf(
 		    ngettext ("Are you sure you want to remove the following track from the playlist \"%s\"?",
@@ -182,9 +183,9 @@
 		    ngettext ("Remove Track From Playlist?",
 			      "Remove Tracks From Playlist?", n));
 	    if (confirm_again)
-		*confirm_again = prefs_get_track_playlist_deletion ();
-	    if (confirm_again_handler)
-		*confirm_again_handler = prefs_set_track_playlist_deletion;
+		*confirm_again = prefs_get_int("delete_file");
+	    if (confirm_again_key)
+		*confirm_again_key = g_strdup("delete_file");
 	    break;
 	case DELETE_ACTION_DATABASE:
 	    if (label)
@@ -196,9 +197,9 @@
 		    ngettext ("Remove Track from Local Database?",
 			      "Remove Tracks from Local Database?", n));
 	    if (confirm_again)
-		*confirm_again = prefs_get_track_database_deletion ();
-	    if (confirm_again_handler)
-		*confirm_again_handler = prefs_set_track_database_deletion;
+		*confirm_again = prefs_get_int("delete_database");
+	    if (confirm_again_key)
+		*confirm_again_key = g_strdup("delete_database");
 	    break;
 	default:
 	    g_return_if_reached ();
@@ -209,7 +210,7 @@
     if (str)
     {
 	*str = g_string_sized_new (2000);
-	for(l = dd->selected_tracks; l; l = l->next)
+	for(l = dd->tracks; l; l = l->next)
 	{
 	    s = l->data;
 	    g_return_if_fail (s);
@@ -227,7 +228,7 @@
 {
     g_return_if_fail (dd);
 
-    g_list_free (dd->selected_tracks);
+    g_list_free (dd->tracks);
     g_free (dd);
 }
 
@@ -238,7 +239,6 @@
 void delete_track_ok (struct DeleteData *dd)
 {
     gint n;
-    gchar *buf = NULL;
     GList *l;
 
     g_return_if_fail (dd);
@@ -246,22 +246,22 @@
     g_return_if_fail (dd->itdb);
 
     /* should never happen */
-    if (!dd->selected_tracks)	delete_track_cancel (dd);
+    if (!dd->tracks)	delete_track_cancel (dd);
 
     /* nr of tracks to be deleted */
-    n = g_list_length (dd->selected_tracks);
+    n = g_list_length (dd->tracks);
     if (dd->itdb->usertype & GP_ITDB_TYPE_IPOD)
     {
 	switch (dd->deleteaction)
 	{
 	case DELETE_ACTION_IPOD:
-	    buf = g_strdup_printf (
+	    gtkpod_statusbar_message (
 		ngettext ("Deleted one track completely from iPod",
 			  "Deleted %d tracks completely from iPod",
 			  n), n);
 	    break;
 	case DELETE_ACTION_PLAYLIST:
-	    buf = g_strdup_printf (
+	    gtkpod_statusbar_message (
 		ngettext ("Deleted %d track from playlist '%s'",
 			  "Deleted %d tracks from playlist '%s'",
 			  n), n, dd->pl->name);
@@ -279,19 +279,19 @@
 	switch (dd->deleteaction)
 	{
 	case DELETE_ACTION_LOCAL:
-	    buf = g_strdup_printf (
+	    gtkpod_statusbar_message (
 		ngettext ("Deleted one track from harddisk",
 			  "Deleted %d tracks from harddisk",
 			  n), n);
 	    break;
 	case DELETE_ACTION_PLAYLIST:
-	    buf = g_strdup_printf (
+	    gtkpod_statusbar_message (
 		ngettext ("Deleted %d track from playlist '%s'",
 			  "Deleted %d tracks from playlist '%s'",
 			  n), n, dd->pl->name);
 	    break;
 	case DELETE_ACTION_DATABASE:
-	    buf = g_strdup_printf (
+	    gtkpod_statusbar_message (
 		ngettext ("Deleted track from local database",
 			  "Deleted %d tracks from local database",
 			  n), n);
@@ -303,14 +303,12 @@
 	    break;
 	}
     }
-    for (l = dd->selected_tracks; l; l = l->next)
+    for (l = dd->tracks; l; l = l->next)
     {
 	gp_playlist_remove_track (dd->pl, l->data, dd->deleteaction);
     }
-    gtkpod_statusbar_message (buf);
-    g_free (buf);
 
-    g_list_free (dd->selected_tracks);
+    g_list_free (dd->tracks);
     g_free (dd);
 
     gtkpod_tracks_statusbar_update ();
@@ -328,12 +326,12 @@
     struct DeleteData *dd;
     iTunesDB *itdb;
     GtkResponseType response;
-    ConfHandlerOpt confirm_again_handler;
+    gchar *confirm_again_key;
 
     pl = pm_get_selected_playlist ();
     if (pl == NULL)
     { /* no playlist??? Cannot happen, but... */
-	gtkpod_statusbar_message (_("No playlist selected."));
+	message_sb_no_playlist_selected ();
 	return;
     }
     itdb = pl->itdb;
@@ -342,19 +340,19 @@
     selected_tracks = tm_get_selected_tracks();
     if (selected_tracks == NULL)
     {  /* no tracks selected */
-	gtkpod_statusbar_message (_("No tracks selected."));
+	message_sb_no_tracks_selected ();
 	return;
     }
 
     dd = g_malloc0 (sizeof (struct DeleteData));
     dd->deleteaction = deleteaction;
-    dd->selected_tracks = selected_tracks;
+    dd->tracks = selected_tracks;
     dd->pl = pl;
     dd->itdb = itdb;
 
     delete_populate_settings (dd,
 			      &label, &title,
-			      &confirm_again, &confirm_again_handler,
+			      &confirm_again, &confirm_again_key,
 			      &str);
     /* open window */
     response = gtkpod_confirmation
@@ -366,7 +364,7 @@
 	 NULL, 0, NULL,        /* option 1 */
 	 NULL, 0, NULL,        /* option 2 */
 	 confirm_again,        /* gboolean confirm_again, */
-	 confirm_again_handler,/* ConfHandlerOpt confirm_again_handler,*/
+	 confirm_again_key,/* ConfHandlerOpt confirm_again_key,*/
 	 CONF_NULL_HANDLER,    /* ConfHandler ok_handler,*/
 	 NULL,                 /* don't show "Apply" button */
 	 CONF_NULL_HANDLER,    /* cancel_handler,*/
@@ -386,20 +384,12 @@
 
     g_free (label);
     g_free (title);
+    g_free(confirm_again_key);
     g_string_free (str, TRUE);
 }
 
-void
-gtkpod_main_window_set_active(gboolean active)
-{
-    if(gtkpod_window)
-    {
-	gtk_widget_set_sensitive(gtkpod_window, active);
-    }
-}
 
 
-
 /*------------------------------------------------------------------*\
  *                                                                  *
  *             Delete tracks in st entry                             *
@@ -418,18 +408,18 @@
     GString *str;
     gchar *label = NULL, *title = NULL;
     gboolean confirm_again;
-    ConfHandlerOpt confirm_again_handler;
+    gchar *confirm_again_key;
     TabEntry *entry;
     GtkResponseType response;
     iTunesDB *itdb;
 
     g_return_if_fail (inst >= 0);
-    g_return_if_fail (inst <= prefs_get_sort_tab_num ());
+    g_return_if_fail (inst <= prefs_get_int("sort_tab_num"));
 
     pl = pm_get_selected_playlist();
     if (pl == NULL)
     { /* no playlist??? Cannot happen, but... */
-	gtkpod_statusbar_message (_("No playlist selected."));
+	message_sb_no_playlist_selected ();
 	return;
     }
     itdb = pl->itdb;
@@ -453,13 +443,13 @@
 
     dd = g_malloc0 (sizeof (struct DeleteData));
     dd->deleteaction = deleteaction;
-    dd->selected_tracks = selected_tracks;
+    dd->tracks = selected_tracks;
     dd->pl = pl;
     dd->itdb = itdb;
 
     delete_populate_settings (dd,
 			      &label, &title,
-			      &confirm_again, &confirm_again_handler,
+			      &confirm_again, &confirm_again_key,
 			      &str);
 
     /* open window */
@@ -472,7 +462,7 @@
 	 NULL, 0, NULL,        /* option 1 */
 	 NULL, 0, NULL,        /* option 2 */
 	 confirm_again,        /* gboolean confirm_again, */
-	 confirm_again_handler,/* ConfHandlerOpt confirm_again_handler,*/
+	 confirm_again_key,/* ConfHandlerOpt confirm_again_key,*/
 	 CONF_NULL_HANDLER,    /* ConfHandler ok_handler,*/
 	 NULL,                 /* don't show "Apply" button */
 	 CONF_NULL_HANDLER,    /* cancel_handler,*/
@@ -494,6 +484,7 @@
 
     g_free (label);
     g_free (title);
+    g_free(confirm_again_key);
     g_string_free (str, TRUE);
 }
 
@@ -510,7 +501,7 @@
 {
     g_return_if_fail (dd);
 
-    g_list_free (dd->selected_tracks);
+    g_list_free (dd->tracks);
     g_free (dd);
 }
 
@@ -550,13 +541,14 @@
 	    }
 	    else
 	    {
-		/* remove playlist */
-		gp_playlist_remove (dd->pl);
+		/* first use playlist name */
 		msg = g_strdup_printf (
 		    ngettext ("Deleted playlist '%s' including %d member track",
 			      "Deleted playlist '%s' including %d member tracks",
 			      n),
 		    dd->pl->name, n);
+		/* then remove playlist */
+		gp_playlist_remove (dd->pl);
 	    }
 	    break;
 	case DELETE_ACTION_PLAYLIST:
@@ -566,9 +558,11 @@
 	    }
 	    else
 	    {
-		gp_playlist_remove (dd->pl);
+		/* first use playlist name */
 		msg = g_strdup_printf (_("Deleted playlist '%s'"),
 				       dd->pl->name);
+		/* then remove playlist */
+		gp_playlist_remove (dd->pl);
 	    }
 	    break;
 	case DELETE_ACTION_LOCAL:
@@ -585,7 +579,7 @@
 	case DELETE_ACTION_LOCAL:
 	    if (itdb_playlist_is_mpl (dd->pl))
 	    {   /* for safety reasons this is not implemented (would
-		   remove all tracks from your local harddisk */
+		   remove all tracks from your local harddisk) */
 		g_return_if_reached ();
 	    }
 	    else
@@ -597,13 +591,14 @@
 					      dd->pl->members->data,
 					      dd->deleteaction);
 		}
-		/* remove playlist */
-		gp_playlist_remove (dd->pl);
+		/* first use playlist name */
 		msg = g_strdup_printf (
 		    ngettext ("Deleted playlist '%s' including %d member track on harddisk",
 			      "Deleted playlist '%s' including %d member tracks on harddisk",
 			      n),
 		    dd->pl->name, n);
+		/* then remove playlist */
+		gp_playlist_remove (dd->pl);
 	    }
 	    break;
 	case DELETE_ACTION_DATABASE:
@@ -620,13 +615,14 @@
 	    }
 	    else
 	    {
-		/* remove playlist */
-		gp_playlist_remove (dd->pl);
+		/* first use playlist name */
 		msg = g_strdup_printf (
 		    ngettext ("Deleted playlist '%s' including %d member track",
 			      "Deleted playlist '%s' including %d member tracks",
 			      n),
 		    dd->pl->name, n);
+		/* then remove playlist */
+		gp_playlist_remove (dd->pl);
 	    }
 	    break;
 	case DELETE_ACTION_PLAYLIST:
@@ -636,9 +632,11 @@
 	    }
 	    else
 	    {
-		gp_playlist_remove (dd->pl);
+		/* first use playlist name */
 		msg = g_strdup_printf (_("Deleted playlist '%s'"),
 				       dd->pl->name);
+		/* then remove playlist */
+		gp_playlist_remove (dd->pl);
 	    }
 	    break;
 	case DELETE_ACTION_IPOD:
@@ -662,16 +660,16 @@
     Playlist *pl;
     iTunesDB *itdb;
     GtkResponseType response = GTK_RESPONSE_NONE;
-    GString *str;
     gchar *label = NULL, *title = NULL;
     gboolean confirm_again;
-    ConfHandlerOpt confirm_again_handler;
+    gchar *confirm_again_key;
     guint32 n = 0;
+    GString *str;
 
     pl = pm_get_selected_playlist();
     if (!pl)
     { /* no playlist selected */
-	gtkpod_statusbar_message (_("No playlist selected."));
+	message_sb_no_playlist_selected ();
 	return;
     }
 
@@ -694,14 +692,14 @@
 	    }
 	    else if (itdb_playlist_is_podcasts (pl))
 	    {   /* podcasts playlist */
-		dd->selected_tracks = g_list_copy (pl->members);
+		dd->tracks = g_list_copy (pl->members);
 		label = g_strdup_printf (_("Are you sure you want to remove all podcasts from your iPod?"));
 	    }
 	    else 
 	    {   /* normal playlist */
 		/* we set selected_tracks to get a list printed by
 		 * delete_populate_settings() further down */
-		dd->selected_tracks = g_list_copy (pl->members);
+		dd->tracks = g_list_copy (pl->members);
 		label = g_strdup_printf (
 		    ngettext ("Are you sure you want to delete playlist '%s' and the following track completely from your ipod? The number of playlists this track is a member of is indicated in parentheses.",
 			      "Are you sure you want to delete playlist '%s' and the following tracks completely from your ipod? The number of playlists the tracks are member of is indicated in parentheses.", n), pl->name);
@@ -738,7 +736,7 @@
 	    {
 		/* we set selected_tracks to get a list printed by
 		 * delete_populate_settings() further down */
-		dd->selected_tracks = g_list_copy (pl->members);
+		dd->tracks = g_list_copy (pl->members);
 		label = g_strdup_printf (
 		    ngettext ("Are you sure you want to delete playlist '%s' and remove the following track from your harddisk? The number of playlists this track is a member of is indicated in parentheses.",
 			      "Are you sure you want to delete playlist '%s' and remove the following tracks from your harddisk? The number of playlists the tracks are member of is indicated in parentheses.",
@@ -755,7 +753,7 @@
 	    {
 		/* we set selected_tracks to get a list printed by
 		 * delete_populate_settings() further down */
-		dd->selected_tracks = g_list_copy (pl->members);
+		dd->tracks = g_list_copy (pl->members);
 		label = g_strdup_printf (
 		    ngettext ("Are you sure you want to delete playlist '%s' and remove the following track from the database? The number of playlists this track is a member of is indicated in parentheses.",
 			      "Are you sure you want to delete playlist '%s' and remove the following tracks from the database? The number of playlists the tracks are member of is indicated in parentheses.",
@@ -782,7 +780,7 @@
     delete_populate_settings (dd,
 			      NULL, &title,
 			      &confirm_again,
-			      &confirm_again_handler,
+			      &confirm_again_key,
 			      &str);
 
     response = gtkpod_confirmation
@@ -794,7 +792,7 @@
 	 NULL, 0, NULL,          /* option 1 */
 	 NULL, 0, NULL,          /* option 2 */
 	 confirm_again,          /* gboolean confirm_again, */
-	 confirm_again_handler,  /* ConfHandlerOpt confirm_again_handler,*/
+	 confirm_again_key,  /* ConfHandlerOpt confirm_again_key,*/
 	 CONF_NULL_HANDLER,      /* ConfHandler ok_handler,*/
 	 NULL,                   /* don't show "Apply" button */
 	 CONF_NULL_HANDLER,      /* cancel_handler,*/
@@ -803,6 +801,7 @@
 
     g_free (label);
     g_free (title);
+    g_free(confirm_again_key);
     g_string_free (str, TRUE);
 
     switch (response)
@@ -818,212 +817,6 @@
 
 
 
-/*------------------------------------------------------------------*\
- *                                                                  *
- *             Create iPod directory hierarchy                      *
- *                                                                  *
-\*------------------------------------------------------------------*/
-
-/* deterimine the number of directories that should be created */
-/*
- * <20 GB: 20
- * <30 GB: 30
- * <40 GB: 40
- * <50 GB: 50
- * else:   60
- *
- */
-static gint ipod_directories_number (gchar *mp)
-{
-    const gint default_nr = 20;
-#ifdef HAVE_statvfs
-    struct statvfs stat;
-    int	status;
-    gdouble size;
-
-    g_return_val_if_fail (mp, default_nr);
-
-    status = statvfs (mp, &stat);
-    if (status != 0)
-    {
-	return default_nr;
-    }
-    /* Get size in GB */
-    size = ((gdouble)stat.f_blocks * stat.f_frsize) / 1024 / 1024 / 1024;
-    if (size < 20) return 20;
-    if (size < 30) return 30;
-    if (size < 40) return 40;
-    if (size < 50) return 50;
-    return 60;
-#else
-    return default_nr;
-#endif
-}
-
-
-/* ok handler for ipod directory creation */
-/* @user_data1 is the mount point of the iPod */
-static void ipod_directories_ok (gchar *mp)
-{
-    gchar *buf, *errordir=NULL;
-    gchar *pbuf;
-    gint i, dirnum;
-
-    g_return_if_fail (mp);
-
-    if (!errordir)
-    {
-	pbuf = g_build_filename (mp, "Calendars", NULL);
-	if (!g_file_test (pbuf, G_FILE_TEST_EXISTS))
-	{
-	    if((mkdir(pbuf, 0777) != 0))
-		errordir = pbuf;
-	}
-	if (!errordir)
-	    g_free (pbuf);
-    }
-    if (!errordir)
-    {
-	pbuf = g_build_filename (mp, "Contacts", NULL);
-	if (!g_file_test (pbuf, G_FILE_TEST_EXISTS))
-	{
-	    if((mkdir(pbuf, 0777) != 0))
-		errordir = pbuf;
-	}
-	if (!errordir)
-	    g_free (pbuf);
-    }
-    if (!errordir)
-    {
-	pbuf = g_build_filename (mp, "iPod_Control", NULL);
-	if (!g_file_test (pbuf, G_FILE_TEST_EXISTS))
-	{
-	    if((mkdir(pbuf, 0777) != 0))
-		errordir = pbuf;
-	}
-	if (!errordir)
-	    g_free (pbuf);
-    }
-    if (!errordir)
-    {
-	pbuf = g_build_filename (mp, "iPod_Control", "Music", NULL);
-	if (!g_file_test (pbuf, G_FILE_TEST_EXISTS))
-	{
-	    if((mkdir(pbuf, 0777) != 0))
-		errordir = pbuf;
-	}
-	if (!errordir)
-	    g_free (pbuf);
-    }
-    if (!errordir)
-    {
-	pbuf = g_build_filename (mp, "iPod_Control", "iTunes", NULL);
-	if (!g_file_test (pbuf, G_FILE_TEST_EXISTS))
-	{
-	    if((mkdir(pbuf, 0777) != 0))
-		errordir = pbuf;
-	}
-	if (!errordir)
-	    g_free (pbuf);
-    }
-    if (!errordir)
-    {
-	pbuf = g_build_filename (mp, "iPod_Control", "Artwork", NULL);
-	if (!g_file_test (pbuf, G_FILE_TEST_EXISTS))
-	{
-	    if((mkdir(pbuf, 0777) != 0))
-		errordir = pbuf;
-	}
-	if (!errordir)
-	    g_free (pbuf);
-    }
-    dirnum = ipod_directories_number (mp);
-    for(i = 0; i < dirnum; i++)
-    {
-	if (!errordir)
-	{
-	    gchar *num = g_strdup_printf ("F%02d", i);
-	    pbuf = g_build_filename (mp,
-				     "iPod_Control", "Music", num, NULL);
-	    if (!g_file_test (pbuf, G_FILE_TEST_EXISTS))
-	    {
-		if((mkdir(pbuf, 0777) != 0))
-		    errordir = pbuf;
-		g_free (num);
-	    }
-	    if (!errordir)
-		g_free (pbuf);
-	}
-    }
-
-    if (errordir)
-	buf = g_strdup_printf (_("Problem creating iPod directory: '%s'."), errordir);
-    else
-	buf = g_strdup_printf (_("Successfully created iPod directories in '%s'."), mp);
-    gtkpod_statusbar_message(buf);
-    g_free (buf);
-    g_free (errordir);
-}
-
-
-/* Pop up the confirmation window for creation of ipod directory
-   hierarchy. */
-void ipod_directories_head (const gchar *mountpoint)
-{
-    gchar *mp;
-    GString *str;
-    GtkResponseType response;
-
-    g_return_if_fail (mountpoint);
-    mp = g_strdup (mountpoint);
-
-    if (strlen (mp) > 0)
-    { /* make sure the mount point does not end in "/" */
-	if (mp[strlen (mp) - 1] == '/')
-	    mp[strlen (mp) - 1] = 0;
-    }
-    else
-    {
-	mp = g_strdup (".");
-    }
-    str = g_string_sized_new (2000);
-    g_string_append_printf (str, "%s/Calendars\n", mp);
-    g_string_append_printf (str, "%s/Contacts\n", mp);
-    g_string_append_printf (str, "%s/iPod_Control\n", mp);
-    g_string_append_printf (str, "%s/iPod_Control/Music\n", mp);
-    g_string_append_printf (str, "%s/iPod_Control/iTunes\n", mp);
-    g_string_append_printf (str, "%s/iPod_Control/Music/F00\n...\n", mp);
-    g_string_append_printf (str, "%s/iPod_Control/Music/F%d\n",
-			    mp, ipod_directories_number (mp)-1);
-
-    response = gtkpod_confirmation (CONF_ID_IPOD_DIR,    /* gint id, */
-			 TRUE,               /* gboolean modal, */
-			 _("Create iPod directories"), /* title */
-			 _("OK to create the following directories?"),
-			 str->str,
-			 NULL, 0, NULL,       /* option 1 */
-			 NULL, 0, NULL,       /* option 2 */
-			 TRUE,                /* gboolean confirm_again, */
-			 NULL, /* ConfHandlerOpt confirm_again_handler, */
-			 CONF_NULL_HANDLER,   /* ConfHandler ok_handler,*/
-			 NULL,                /* don't show "Apply" */
-			 CONF_NULL_HANDLER,   /* cancel_handler,*/
-			 NULL,                /* gpointer user_data1,*/
-			 NULL);               /* gpointer
-					       * user_data2,*/
-    switch (response)
-    {
-    case GTK_RESPONSE_OK:
-	ipod_directories_ok (mp);
-	break;
-    default:
-	break;
-    }
-    g_free (mp);
-    g_string_free (str, TRUE);
-}
-
-
 /* callback for quit menu entry */
 void
 on_quit1_activate                      (GtkMenuItem     *menuitem,
@@ -1072,7 +865,7 @@
     {
 	server_shutdown (); /* stop accepting requests for playcount updates */
 
-	write_prefs ();
+	cleanup_prefs();
 
 /* FIXME: release memory in a clean way */
 #if 0
@@ -1083,11 +876,7 @@
 #endif
 	display_cleanup ();
 
-	if(prefs_get_automount())
-	{
-	    unmount_ipod ();
-	}
-	call_script ("gtkpod.out");
+	call_script ("gtkpod.out", NULL);
 	gtk_main_quit ();
 	return FALSE;
     }

Modified: gtkpod/branches/upstream/current/src/misc_conversion.c
===================================================================
--- gtkpod/branches/upstream/current/src/misc_conversion.c	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/src/misc_conversion.c	2006-09-30 00:00:17 UTC (rev 139)
@@ -1,4 +1,4 @@
-/* Time-stamp: <2005-12-03 20:39:08 jcs>
+/* Time-stamp: <2006-09-21 23:16:41 jcs>
 |
 |  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
 |  Part of the gtkpod project.
@@ -24,7 +24,7 @@
 |
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: misc_conversion.c,v 1.25 2005/12/03 16:36:26 jcsjcs Exp $
+|  $Id: misc_conversion.c,v 1.28 2006/09/21 15:03:13 jcsjcs Exp $
 */
 
 #ifdef HAVE_CONFIG_H
@@ -93,6 +93,11 @@
     N_("Subtitle"),
     N_("Date released"),
     N_("Checked"),           /* 35 */
+    N_("Start time"),
+    N_("Stop time"),
+    N_("Remember Playback Position"),
+    N_("Skip when Shuffling"),
+    N_("Artwork Path"),      /* 40 */
     NULL };
 
 /* Tooltips for prefs window */
@@ -136,6 +141,10 @@
     NULL,
     N_("Release date (for podcasts displayed next to the title on the iPod)"),
     NULL,   /* 35 */
+    NULL,
+    NULL,
+    NULL,
+    NULL,
     NULL
  };
 
@@ -181,7 +190,8 @@
     case TM_COLUMN_PODCASTRSS:    return T_PODCASTRSS;
     case TM_COLUMN_SUBTITLE:      return T_SUBTITLE;
     case TM_COLUMN_TIME_RELEASED: return T_TIME_RELEASED;
-    case TM_NUM_COLUMNS:          return -1;
+    case TM_COLUMN_THUMB_PATH:    return T_THUMB_PATH;
+    case TM_NUM_COLUMNS:          g_return_val_if_reached (-1);
     }
     return -1;
 }
@@ -201,7 +211,7 @@
     case ST_CAT_TITLE:       return T_TITLE;
     case ST_CAT_YEAR:        return T_YEAR;
     case ST_CAT_SPECIAL:
-    case ST_CAT_NUM:         return -1;
+    case ST_CAT_NUM:         g_return_val_if_reached (-1);
     }
     return -1;
 }

Modified: gtkpod/branches/upstream/current/src/misc_input.c
===================================================================
--- gtkpod/branches/upstream/current/src/misc_input.c	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/src/misc_input.c	2006-09-30 00:00:17 UTC (rev 139)
@@ -1,4 +1,4 @@
-/* Time-stamp: <2005-11-25 23:52:11 jcs>
+/* Time-stamp: <2006-05-20 23:23:44 jcs>
 |
 |  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
 |  Part of the gtkpod project.
@@ -24,7 +24,7 @@
 |
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: misc_input.c,v 1.12 2005/11/26 13:44:41 jcsjcs Exp $
+|  $Id: misc_input.c,v 1.14 2006/06/07 05:03:43 freethinkerjim Exp $
 */
 
 #ifdef HAVE_CONFIG_H
@@ -189,7 +189,7 @@
     gtk_widget_show (combo);
     gtk_container_add (GTK_CONTAINER (GTK_DIALOG(dialog)->vbox), combo);
 
-    stn = prefs_get_sort_tab_num ();
+    stn = prefs_get_int("sort_tab_num");
     /* Create list */
     for (i=1; i<=stn; ++i)
     {
@@ -291,12 +291,12 @@
     if (bws == NULL)
     {
 	bws = add_blocked_widget (bws, "menubar");
-	bws = add_blocked_widget (bws, "import_button");
+	bws = add_blocked_widget (bws, "load_ipods_button");
+	bws = add_blocked_widget (bws, "save_changes_button");
 	bws = add_blocked_widget (bws, "add_files_button");
 	bws = add_blocked_widget (bws, "add_dirs_button");
 	bws = add_blocked_widget (bws, "add_PL_button");
 	bws = add_blocked_widget (bws, "new_PL_button");
-	bws = add_blocked_widget (bws, "export_button");
 	widgets_blocked = FALSE;
     }
 

Modified: gtkpod/branches/upstream/current/src/misc_playlist.c
===================================================================
--- gtkpod/branches/upstream/current/src/misc_playlist.c	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/src/misc_playlist.c	2006-09-30 00:00:17 UTC (rev 139)
@@ -1,4 +1,4 @@
-/* Time-stamp: <2005-11-21 00:27:51 jcs>
+/* Time-stamp: <2006-06-24 01:53:45 jcs>
 |
 |  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
 |  Part of the gtkpod project.
@@ -24,7 +24,7 @@
 |
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: misc_playlist.c,v 1.27 2005/11/23 04:16:12 jcsjcs Exp $
+|  $Id: misc_playlist.c,v 1.38 2006/06/23 16:59:23 jcsjcs Exp $
 */
 
 #ifdef HAVE_CONFIG_H
@@ -115,7 +115,16 @@
 on_smart_playlist_activate             (GtkMenuItem     *menuitem,
                                         gpointer         user_data)
 {
-    spl_edit_new (gp_get_active_itdb(), NULL, -1);
+    iTunesDB *itdb = gp_get_selected_itdb();
+
+    if (itdb)
+    {
+	spl_edit_new (itdb, NULL, -1);
+    }
+    else
+    {
+	message_sb_no_itdb_selected ();
+    }
 }
 
 
@@ -211,9 +220,13 @@
 Playlist *generate_displayed_playlist (void)
 {
     GList *tracks = tm_get_all_tracks ();
-    Playlist *result = generate_new_playlist (gp_get_active_itdb (),
-					      tracks);
-    g_list_free (tracks);
+    Playlist *result = NULL;
+
+    if (tracks)
+    {
+	result= generate_new_playlist (gp_get_selected_itdb (), tracks);
+	g_list_free (tracks);
+    }
     return result;
 }
 
@@ -223,15 +236,19 @@
 Playlist *generate_selected_playlist (void)
 {
     GList *tracks = tm_get_selected_tracks ();
-    Playlist *result = generate_new_playlist (gp_get_active_itdb (),
-					      tracks);
-    g_list_free (tracks);
+    Playlist *result=NULL;
+
+    if (tracks)
+    {
+	result= generate_new_playlist (gp_get_selected_itdb (), tracks);
+	g_list_free (tracks);
+    }
     return result;
 }
 
 
 /* Generates a playlist containing a random selection of
-   prefs_get_misc_track_nr() tracks in random order from the currently
+   prefs_get_int("misc_track_nr") tracks in random order from the currently
    displayed tracks */
 Playlist *generate_random_playlist (iTunesDB *itdb)
 {
@@ -240,7 +257,7 @@
     gchar *pl_name, *pl_name1;
     GList *rtracks = NULL;
     GList *tracks = tm_get_all_tracks ();
-    gint tracks_max = prefs_get_misc_track_nr();
+    gint tracks_max = prefs_get_int("misc_track_nr");
     gint tracks_nr = 0;
 
 
@@ -271,13 +288,13 @@
 
     if (!pl)
     {
-	gtkpod_statusbar_message (_("No playlist selected"));
+	message_sb_no_playlist_selected ();
 	return;
     }
 
-    if (prefs_get_tm_autostore ())
+    if (prefs_get_int("tm_autostore"))
     {
-	prefs_set_tm_autostore (FALSE);
+	prefs_set_int("tm_autostore", FALSE);
 	gtkpod_warning (_("Auto Store of track view disabled.\n\n"));
 /* 	sort_window_update (); */
     }
@@ -354,7 +371,6 @@
 {
     Playlist *new_pl=NULL;
     gint n = g_list_length (tracks);
-    gchar *str;
 
     g_return_val_if_fail (itdb, new_pl);
 
@@ -387,7 +403,7 @@
 	    g_return_val_if_fail (track, new_pl);
 	    gp_playlist_add_track (new_pl, track, TRUE);
 	}
-	str = g_strdup_printf (
+	gtkpod_statusbar_message (
 	    ngettext ("Created playlist '%s' with %d track.",
 		      "Created playlist '%s' with %d tracks.",
 		      n), pl_name, n);
@@ -399,11 +415,9 @@
     }
     else
     {   /* n==0 */
-	str = g_strdup_printf (_("No tracks available, playlist not created"));
+	gtkpod_statusbar_message (_("No tracks available, playlist not created"));
     }
-    gtkpod_statusbar_message (str);
     gtkpod_tracks_statusbar_update();
-    g_free (str);
     return new_pl;
 }
 
@@ -523,7 +537,7 @@
 
 void most_listened_pl (iTunesDB *itdb)
 {
-    gint tracks_nr = prefs_get_misc_track_nr();
+    gint tracks_nr = prefs_get_int("misc_track_nr");
     gchar *str;
 
     g_return_if_fail (itdb);
@@ -598,13 +612,13 @@
 /* Insert function: determines whether a track is entered into the playlist */
 static gboolean Most_Rated_IF (Track *track, gpointer userdata)
 {
-    if (track) return ((track->playcount != 0) || prefs_get_not_played_track());
+    if (track) return ((track->playcount != 0) || prefs_get_int("not_played_track"));
     return FALSE;
 }
 
 void most_rated_pl (iTunesDB *itdb)
 {
-    gint tracks_nr = prefs_get_misc_track_nr();
+    gint tracks_nr = prefs_get_int("misc_track_nr");
     gchar *str;
 
     g_return_if_fail (itdb);
@@ -694,7 +708,7 @@
 
 void last_listened_pl (iTunesDB *itdb)
 {
-    gint tracks_nr = prefs_get_misc_track_nr();
+    gint tracks_nr = prefs_get_int("misc_track_nr");
     gchar *str;
 
     g_return_if_fail (itdb);
@@ -889,20 +903,20 @@
 	 tlist != NULL;
 	 tlist = g_list_next(tlist))
     {
-	gchar *buf;
 	Track *oldtrack;
 	Track *track = tlist->data;
 	ExtraTrackData *etr;
+	gchar *buf;
 
 	g_return_if_fail (track);
 	etr = track->userdata;
 	g_return_if_fail (etr);
         /* printf("Handling track %d\n", track->ipod_id); */
 
-	buf = g_strdup_printf (_("Processing '%s'"),
-			       get_track_info (track, TRUE));
-	gtkpod_statusbar_message (buf);
+	buf = get_track_info (track, TRUE);
+	gtkpod_statusbar_message (_("Processing '%s'"), buf);
 	g_free (buf);
+				  
 	while (widgets_blocked && gtk_events_pending ())
 	    gtk_main_iteration ();
 
@@ -934,8 +948,8 @@
 
 
 
-/* checks iTunesDB for presence of dangling links and checks IPODs Music directory
- * on subject of orphaned files */
+/* checks iTunesDB for presence of dangling links and checks IPODs
+ * Music directory on subject of orphaned files */
 void check_db (iTunesDB *itdb)
 {
 
@@ -967,7 +981,6 @@
 
     gchar *pathtrack=NULL;
     gchar *ipod_filename = NULL;
-    gchar *buf = NULL;
 #   define localdebug  0      /* may be later becomes more general verbose param */
     Playlist* pl_orphaned = NULL;
     GList * l_dangling[2] = {NULL, NULL}; /* 2 kinds of dangling tracks: with approp
@@ -980,9 +993,10 @@
     gint norphaned = 0;
     gint ndangling = 0;
     gchar ** tokens;
-    gchar *ipod_path_as_filename = charset_from_utf8 (prefs_get_ipod_mount ());
+    const gchar *mountpoint = itdb_get_mountpoint (itdb);
     ExtraiTunesDBData *eitdb;
     GList *gl;
+    gchar *music_dir = NULL;
 
     g_return_if_fail (itdb);
     eitdb = itdb->userdata;
@@ -992,10 +1006,8 @@
        a mistake and we should tell him about it */
     if (!eitdb->itdb_imported)
     {
-	const gchar *itunes_components[] = {"iPod_Control", "iTunes", NULL};
-	gchar *itunes_filename = resolve_path(ipod_path_as_filename,
-					      itunes_components);
-	if (g_file_test (itunes_filename, G_FILE_TEST_EXISTS))
+	gchar *itunesdb_filename = itdb_get_itunesdb_path (mountpoint);
+	if (itunesdb_filename)
 	{
 	    GtkWidget *dialog = gtk_message_dialog_new (
 		GTK_WINDOW (gtkpod_window),
@@ -1005,17 +1017,15 @@
 		_("You did not import the existing iTunesDB. This is most likely incorrect and will result in the loss of the existing database.\n\nPress 'OK' if you want to proceed anyhow or 'Cancel' to abort. If you cancel, you can import the existing database before calling this function again.\n"));
 	    gint result = gtk_dialog_run (GTK_DIALOG (dialog));
 	    gtk_widget_destroy (dialog);
+	    g_free (itunesdb_filename);
 	    if (result == GTK_RESPONSE_CANCEL)
 	    {
-		g_free (ipod_path_as_filename);
-		g_free (itunes_filename);
 		return;
 	    }
 	}
-	g_free (itunes_filename);
     }
 
-    prefs_set_statusbar_timeout (30*STATUSBAR_TIMEOUT);
+    gtkpod_statusbar_timeout (30*STATUSBAR_TIMEOUT);
     block_widgets();
 
     gtkpod_statusbar_message(_("Creating a tree of known files"));
@@ -1066,15 +1076,15 @@
     gtkpod_tracks_statusbar_update();
     process_gtk_events_blocked();
 
+    music_dir = itdb_get_music_dir (mountpoint);
+
     for(h=0; h<itdb_musicdirs_number (itdb); h++)
     {
 	/* directory name */
 	gchar *ipod_dir=g_strdup_printf("F%02d",h); /* just directory name */
 	gchar *ipod_fulldir;
-	const gchar * music[] = {"iPod_Control","Music", NULL, NULL,};
-	music[2] = ipod_dir;
 	/* full path */
-	ipod_fulldir = resolve_path(ipod_path_as_filename,music);
+	ipod_fulldir = itdb_get_path (music_dir, ipod_dir);
 	if(ipod_fulldir && (dir_des=g_dir_open(ipod_fulldir,0,NULL))) {
 	    while ((ipod_filename=g_strdup(g_dir_read_name(dir_des))))
 		/* we have a file in the directory*/
@@ -1098,12 +1108,10 @@
 		    gchar *num_str = g_strdup_printf ("F%02d", h);
 		    Track *dupl_track;
 
-		    const gchar *dcomps[] =
-			{ "iPod_Control", "Music", num_str,
-			  ipod_filename, NULL };
+		    const gchar *p_dcomps[] =
+			{ num_str, ipod_filename, NULL };
 
-		    fn_orphaned = resolve_path (
-			prefs_get_ipod_mount(), dcomps);
+		    fn_orphaned = itdb_resolve_path (music_dir, p_dcomps);
 
 		    if (!pl_orphaned)
 		    {
@@ -1122,9 +1130,15 @@
 			  It will be removed with the next sync */
 			Track *track = gp_track_new ();
 			gchar *fn_utf8 = charset_to_utf8 (fn_orphaned);
+			const gchar *dir_rel = music_dir + strlen (mountpoint);
+			if (*dir_rel == G_DIR_SEPARATOR) ++dir_rel;
 			track->ipod_path = g_strdup_printf (
-			    ":iPod_Control:Music:%s:%s",
-			    num_str, ipod_filename);
+			    "%c%s%c%s%c%s",
+			    G_DIR_SEPARATOR, dir_rel,
+			    G_DIR_SEPARATOR, num_str,
+			    G_DIR_SEPARATOR, ipod_filename);
+			itdb_filename_fs2ipod (track->ipod_path);
+
 			gp_track_validate_entries (track);
 			mark_track_for_deletion (itdb, track);
 			gtkpod_warning (_(
@@ -1150,20 +1164,19 @@
 	    }
             g_dir_close(dir_des);
 	}
-        music[3] = NULL;
         g_free(ipod_dir);
  	g_free(ipod_fulldir);
 	process_gtk_events_blocked();
     }
 
     ndangling=g_tree_nnodes(files_known);
-    buf=g_strdup_printf(_("Found %d orphaned and %d dangling files. Processing..."),
-			norphaned, ndangling);
-
-    gtkpod_statusbar_message(buf);
+    gtkpod_statusbar_message (_("Found %d orphaned and %d dangling files. Processing..."),
+			      norphaned, ndangling);
+    
     gtkpod_tracks_statusbar_update();
 
-    g_free(buf);
+    g_free(music_dir);
+    music_dir = NULL;
 
     /* Now lets deal with dangling tracks */
     /* Traverse the tree - leftovers are dangling - put them in two lists */
@@ -1173,6 +1186,7 @@
     {
 	GString *str_dangs = g_string_sized_new(2000);
 	gint ndang=0;
+	gchar *buf;
 
 	glist_list_tracks(l_dangling[i], str_dangs); /* compose String list of the tracks */
 	ndang = g_list_length(l_dangling[i]);
@@ -1214,12 +1228,9 @@
     }
 
     if (pl_orphaned) data_changed (itdb);
-    g_free (ipod_path_as_filename);
     g_tree_destroy (files_known);
-    buf = g_strdup_printf (_("Found %d orphaned and %d dangling files. Done."),
-			   norphaned, ndangling);
-    gtkpod_statusbar_message(buf);
-    g_free (buf);
-    prefs_set_statusbar_timeout (0);
+    gtkpod_statusbar_message (_("Found %d orphaned and %d dangling files. Done."),
+			      norphaned, ndangling);
+    gtkpod_statusbar_timeout (0);
     release_widgets ();
 }

Modified: gtkpod/branches/upstream/current/src/misc_track.c
===================================================================
--- gtkpod/branches/upstream/current/src/misc_track.c	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/src/misc_track.c	2006-09-30 00:00:17 UTC (rev 139)
@@ -1,4 +1,4 @@
-/* Time-stamp: <2005-12-11 02:00:14 jcs>
+/* Time-stamp: <2006-09-24 15:25:29 jcs>
 |
 |  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
 |  Part of the gtkpod project.
@@ -24,7 +24,7 @@
 |
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: misc_track.c,v 1.33 2005/12/10 17:04:29 jcsjcs Exp $
+|  $Id: misc_track.c,v 1.52 2006/09/24 06:42:52 jcsjcs Exp $
 */
 
 #ifdef HAVE_CONFIG_H
@@ -56,12 +56,11 @@
 void gp_md5_hash_tracks_itdb (iTunesDB *itdb)
 {
    gint ns, count;
-   gchar *buf;
    GList *gl;
 
    g_return_if_fail (itdb);
 
-   if (!prefs_get_md5tracks ()) return;
+   if (!prefs_get_int("md5")) return;
    ns = itdb_tracks_number (itdb);   /* number of tracks */
    if (ns == 0)                 return;
 
@@ -88,13 +87,11 @@
        ++count;
        if (((count % 20) == 1) || (count == ns))
        { /* update for count == 1, 21, 41 ... and for count == n */
-	   buf = g_strdup_printf (ngettext ("Hashed %d of %d track.",
-					    "Hashed %d of %d tracks.", ns),
-				  count, ns);
-	   gtkpod_statusbar_message (buf);
+	   gtkpod_statusbar_message  (ngettext ("Hashed %d of %d track.",
+						"Hashed %d of %d tracks.", ns),
+				      count, ns);
 	   while (widgets_blocked && gtk_events_pending ())
 	       gtk_main_iteration ();
-	   g_free (buf);
        }
    }
    gp_duplicate_remove (NULL, NULL); /* show info dialogue */
@@ -192,7 +189,7 @@
 
 /*   printf ("%p, %p, '%s'\n", oldtrack, track, str?str->str:"empty");*/
 
-   if (prefs_get_show_duplicates() && !oldtrack && !track && str)
+   if (prefs_get_int("show_duplicates") && !oldtrack && !track && str)
    {
        if (str->len)
        { /* Some tracks have been deleted. Print a notice */
@@ -219,7 +216,7 @@
 		NULL, 0, NULL,      /* option 1 */
 		NULL, 0, NULL,      /* option 2 */
 		TRUE,               /* gboolean confirm_again, */
-		prefs_set_show_duplicates,
+		"show_duplicates",
 		                    /* ConfHandlerCA confirm_again_handler,*/
 		CONF_NULL_HANDLER,  /* ConfHandler ok_handler,*/
 		NULL,               /* don't show "Apply" button */
@@ -248,7 +245,7 @@
        g_return_if_fail (oldetr);
        g_return_if_fail (etr);
 
-       if (prefs_get_show_duplicates ())
+       if (prefs_get_int("show_duplicates"))
        {
 	   /* add info about it to str */
 	   buf = get_track_info (track, TRUE);
@@ -336,17 +333,16 @@
 /**
  * Register all tracks in the md5 hash and remove duplicates (while
  * preserving playlists).
- * Call  remove_duplicate (NULL, NULL); to show an info dialogue
+ * Call  gp_duplicate_remove (NULL, NULL); to show an info dialogue
  */
 void gp_itdb_hash (iTunesDB *itdb)
 {
    gint ns, count, track_nr;
-   gchar *buf;
    Track *track, *oldtrack;
 
    g_return_if_fail (itdb);
 
-   if (!prefs_get_md5tracks ()) return;
+   if (!prefs_get_int("md5")) return;
 
    ns = itdb_tracks_number (itdb);
    if (ns == 0)                 return;
@@ -362,15 +358,13 @@
        oldtrack = md5_track_exists_insert (itdb, track);
        ++count;
 /*        printf("%d:%d:%p:%p\n", count, track_nr, track, oldtrack); */
-       if (!prefs_get_block_display() &&
+       if (!prefs_get_int("block_display") &&
 	   (((count % 20) == 1) || (count == ns)))
        { /* update for count == 1, 21, 41 ... and for count == n */
-	   buf = g_strdup_printf (ngettext ("Hashed %d of %d track.",
-					    "Hashed %d of %d tracks.", ns),
-				  count, ns);
-	   gtkpod_statusbar_message(buf);
+	   gtkpod_statusbar_message (ngettext ("Hashed %d of %d track.",
+					       "Hashed %d of %d tracks.", ns),
+				     count, ns);
 	   while (widgets_blocked && gtk_events_pending ())  gtk_main_iteration ();
-	   g_free (buf);
        }
        if (oldtrack)
        {
@@ -399,29 +393,41 @@
  * found. This function also works if @name is on the iPod. */
 Track *gp_track_by_filename (iTunesDB *itdb, gchar *filename)
 {
+    gchar *musicdir = NULL;
+    Track *result = NULL;
+
     g_return_val_if_fail (itdb, NULL);
     g_return_val_if_fail (filename, NULL);
 
+    if (itdb->usertype & GP_ITDB_TYPE_IPOD)
+    {
+	gchar *mountpoint = get_itdb_prefs_string (itdb, KEY_MOUNTPOINT);
+	g_return_val_if_fail (mountpoint, NULL);
+	musicdir = itdb_get_music_dir (mountpoint);
+	if (!musicdir)
+	{
+	    /* FIXME: guess */
+	    musicdir = g_build_filename (mountpoint, "iPod_Control",
+					 "Music", NULL);
+	}
+	g_free (mountpoint);
+    }
     if ((itdb->usertype & GP_ITDB_TYPE_IPOD) &&
-	(strncmp (filename, prefs_get_ipod_mount (),
-		  strlen (prefs_get_ipod_mount ())) == 0))
-    {   /* handle track on iPod */
+	(musicdir != NULL) &&
+	(strncmp (filename, musicdir, strlen (musicdir)) == 0))
+    {   /* handle track on iPod (in music dir) */
 	GList *gl;
-	for (gl=itdb->tracks; gl; gl=gl->next)
+	for (gl=itdb->tracks; gl&&!result; gl=gl->next)
 	{
 	    Track *track = gl->data;
-	    gchar *mount;
 	    gchar *ipod_path;
 	    g_return_val_if_fail (track, NULL);
-	    mount = charset_from_utf8 (prefs_get_ipod_mount ());
 	    ipod_path = itdb_filename_on_ipod (track);
-	    g_free (mount);
 	    if (ipod_path)
 	    {
-		if (strcmp (ipod_path, filename) == 0)
+		if (strcasecmp (ipod_path, filename) == 0)
 		{
-		    g_free (ipod_path);
-		    return track;
+		    result = track;
 		}
 		g_free (ipod_path);
 	    }
@@ -440,11 +446,12 @@
 	    if (etr->pc_path_locale)
 	    {
 		if (strcmp (etr->pc_path_locale, filename) == 0)
-		    return track;
+		    result = track;
 	    }
 	}
     }
-    return NULL;
+    g_free (musicdir);
+    return result;
 }
 
 
@@ -516,12 +523,17 @@
     case T_SUBTITLE:
 	result = &track->subtitle;
 	break;
+    case T_THUMB_PATH:
+	result = &etr->thumb_path_utf8;
+	break;
     case T_ALL:
     case T_IPOD_ID:
     case T_TRACK_NR:
     case T_TRANSFERRED:
     case T_SIZE:
     case T_TRACKLEN:
+    case T_STARTTIME:
+    case T_STOPTIME:
     case T_BITRATE:
     case T_SAMPLERATE:
     case T_BPM:
@@ -535,6 +547,8 @@
     case T_SOUNDCHECK:
     case T_CD_NR:
     case T_COMPILATION:
+    case T_REMEMBER_PLAYBACK_POSITION:
+    case T_SKIP_WHEN_SHUFFLING:
     case T_CHECKED:
     case T_ITEM_NUM:
 	g_return_val_if_reached (NULL);
@@ -598,6 +612,7 @@
     case T_PODCASTURL:
     case T_PODCASTRSS:
     case T_SUBTITLE:
+    case T_THUMB_PATH:
 	fritem = track_get_item (frtrack, item);
 	toitem_ptr = track_get_item_pointer (totrack, item);
 	g_return_val_if_fail (fritem, FALSE);
@@ -608,6 +623,14 @@
 	    *toitem_ptr = g_strdup (fritem);
 	    changed = TRUE;
 	}
+	if (item == T_YEAR)
+	{
+	    if (totrack->year != frtrack->year)
+	    {
+		totrack->year = frtrack->year;
+		changed = TRUE;
+	    }
+	}
 	break;
     case T_IPOD_ID:
 	if (frtrack->id != totrack->id)
@@ -649,6 +672,20 @@
 	    changed = TRUE;
 	}
 	break;
+    case T_STARTTIME:
+	if (frtrack->starttime != totrack->starttime)
+	{
+	    totrack->starttime = frtrack->starttime;
+	    changed = TRUE;
+	}
+	break;
+    case T_STOPTIME:
+	if (frtrack->stoptime != totrack->stoptime)
+	{
+	    totrack->stoptime = frtrack->stoptime;
+	    changed = TRUE;
+	}
+	break;
     case T_BITRATE:
 	if (frtrack->bitrate != totrack->bitrate)
 	{
@@ -728,6 +765,20 @@
 	    changed = TRUE;
 	}
 	break;
+    case T_REMEMBER_PLAYBACK_POSITION:
+	if (frtrack->remember_playback_position != totrack->remember_playback_position)
+	{
+	    totrack->remember_playback_position = frtrack->remember_playback_position;
+	    changed = TRUE;
+	}
+	break;
+    case T_SKIP_WHEN_SHUFFLING:
+	if (frtrack->skip_when_shuffling != totrack->skip_when_shuffling)
+	{
+	    totrack->skip_when_shuffling = frtrack->skip_when_shuffling;
+	    changed = TRUE;
+	}
+	break;
     case T_CHECKED:
 	if (frtrack->checked != totrack->checked)
 	{
@@ -781,6 +832,15 @@
 }
 
 
+/* unified format for TRACKLEN, STARTTIME, STOPTIME */
+static gchar *track_get_length_string (gint32 length)
+{
+    return g_strdup_printf ("%d:%06.3f",
+			    length/60000,
+			    ((float)(length%60000)) / 1000);
+}
+
+
 /* Return text for display. g_free() after use. */
 gchar *track_get_text (Track *track, T_item item)
 {
@@ -844,14 +904,37 @@
 	    text = g_strdup (_("Local Database"));
 	}
 	break;
+    case T_THUMB_PATH:
+	text = g_strdup (etr->thumb_path_utf8);
+	if (!text || (strlen (text) == 0))
+	{   /* no path set */
+	    g_free (text);
+	    text = NULL;
+	    if (track->artwork && track->artwork->thumbnails)
+	    {   /* artwork is set */
+		text = g_strdup (_("Embedded or filename was lost"));
+	    }
+	    else
+	    {
+		text = g_strdup (_("Artwork not set"));
+	    }
+	}
+	break;
     case T_SIZE:
 	text = g_strdup_printf ("%d", track->size);
 	break;
     case T_TRACKLEN:
-	text = g_strdup_printf ("%d:%02d",
-				track->tracklen/60000,
-				(track->tracklen/1000)%60);
+	text = track_get_length_string (track->tracklen);
 	break;
+    case T_STARTTIME:
+	text = track_get_length_string (track->starttime);
+	break;
+    case T_STOPTIME:
+	if (track->stoptime == 0)
+	    text = track_get_length_string (track->tracklen);
+	else
+	    text = track_get_length_string (track->stoptime);
+	break;
     case T_BITRATE:
 	text = g_strdup_printf ("%dk", track->bitrate);
 	break;
@@ -884,6 +967,8 @@
 	break;
     case T_TRANSFERRED:
     case T_COMPILATION:
+    case T_REMEMBER_PLAYBACK_POSITION:
+    case T_SKIP_WHEN_SHUFFLING:
     case T_ALL:
     case T_CHECKED:
     case T_ITEM_NUM:
@@ -893,7 +978,31 @@
 }
 
 
+/* unified scanner for TRACKLEN, STARTTIME, STOPTIME */
+static gint32 track_scan_length (const gchar *new_text)
+{
+    gint32 nr;
+    const gchar *str;
 
+    g_return_val_if_fail (new_text, 0);
+
+    str = strrchr (new_text, ':');
+    if (str)
+    {   /* MM:SS */
+	/* A simple cast to gint32 can sometimes produce a number
+	   that's "1" too small (14.9999999999 -> 14 instead of 15) ->
+	   add 0.1 */
+	nr = 1000 * (((gdouble)(60 * atoi (new_text))) + atof (str+1)) + 0.1;
+    }
+    else
+    {   /* SS */
+	nr = 1000 * atof (new_text) + 0.1;
+    }
+
+    return nr;
+}
+
+
 /* Set track data according to @new_text
 
    Return value: TRUE, if the track data was modified, FALSE otherwise
@@ -1060,29 +1169,50 @@
         }
         break;
     case T_TRACKLEN:
-	str = strrchr (new_text, ':');
-	if (str)
-	{   /* MM:SS */
-	    nr = 1000 * (60 * atoi (new_text) + atoi (str+1));
-	}
-	else
-	{   /* SS */
-	    nr = 1000 * atoi (new_text);
-	}
+	nr = track_scan_length (new_text);
 	if (nr != track->tracklen)
 	{
 	    track->tracklen = nr;
 	    changed = TRUE;
 	}
 	break;
+    case T_STARTTIME:
+	nr = track_scan_length (new_text);
+	if (nr != track->starttime)
+	{
+	    track->starttime = nr;
+	    changed = TRUE;
+	    /* Set stoptime to 0 if stoptime is the same as tracklen */
+	    if (track->stoptime == track->tracklen)
+		track->stoptime = 0;
+	}
+	break;
+    case T_STOPTIME:
+	nr = track_scan_length (new_text);
+	/* if stoptime is identical to tracklen, set stoptime to 0 if
+	 * starttime is 0 as well */
+	if ((nr == track->tracklen) &&
+	    (track->starttime == 0))
+	{
+	    nr = 0;
+	}
+	if (nr != track->stoptime)
+	{
+	    track->stoptime = nr;
+	    changed = TRUE;
+	}
+	break;
     case T_PC_PATH:
     case T_IPOD_PATH:
     case T_IPOD_ID:
     case T_TRANSFERRED:
     case T_COMPILATION:
+    case T_REMEMBER_PLAYBACK_POSITION:
+    case T_SKIP_WHEN_SHUFFLING:
     case T_CHECKED:
     case T_ALL:
     case T_ITEM_NUM:
+    case T_THUMB_PATH: // TODO: this should in fact be settable
 	gtkpod_warning ("Programming error: track_set_text() called with illegal argument (item: %d)\n", item);
 	break;
     }
@@ -1347,7 +1477,7 @@
 			if (!pl)  break; /* while (*filesp) */
 		    }
 		    add_directory_by_name (itdb, decoded_file, pl,
-					   prefs_get_add_recursively (),
+					   prefs_get_int("add_recursively"),
 					   trackaddfunc, data);
 		    added = TRUE;
 		}
@@ -1372,7 +1502,7 @@
 			    if (!pl)  break; /* while (*filesp) */
 			}
 			add_track_by_filename (itdb, decoded_file, pl,
-					       prefs_get_add_recursively (),
+					       prefs_get_int("add_recursively"),
 					       trackaddfunc, data);
 			added = TRUE;
 			break;
@@ -1384,6 +1514,7 @@
 			added = TRUE;
 			break;
 		    case FILE_TYPE_UNKNOWN:
+		    case FILE_TYPE_DIRECTORY:
 		    case FILE_TYPE_IMAGE:
 			break;
 		    }
@@ -1423,9 +1554,9 @@
 void gp_track_set_flags_podcast (Track *track)
 {
     g_return_if_fail (track);
-    track->flag1 = 0x02;  /* unknown */
-    track->flag2 = 0x01;  /* skip when shuffling */
-    track->flag3 = 0x01;  /* remember playback position */
+    track->skip_when_shuffling = 0x01;         /* skip when shuffling */
+    track->remember_playback_position = 0x01;  /* remember playback
+						* position */
     track->flag4 = 0x01;  /* Show Title/Album on the 'Now Playing' page */
 }
 
@@ -1433,9 +1564,9 @@
 void gp_track_set_flags_default (Track *track)
 {
     g_return_if_fail (track);
-    track->flag1 = 0x02;  /* unknown */
-    track->flag2 = 0x00;  /* do not skip when shuffling */
-    track->flag3 = 0x00;  /* do not remember playback position */
+    track->skip_when_shuffling = 0x00;  /* do not skip when shuffling */
+    track->remember_playback_position = 0x00;  /* do not remember
+						* playback position */
     track->flag4 = 0x00;  /* Show Title/Album/Artist on the 'Now
 			     Playing' page */
 }
@@ -1474,7 +1605,7 @@
 
     g_return_if_fail (do_func);
 
-    g_return_if_fail ((inst >= 0) && (inst <= prefs_get_sort_tab_num()));
+    g_return_if_fail ((inst >= 0) && (inst <= prefs_get_int("sort_tab_num")));
 
     entry = st_get_selected_entry (inst);
     if (entry == NULL)
@@ -1506,7 +1637,7 @@
     pl = pm_get_selected_playlist();
     if (!pl)
     { /* no playlist selected */
-	gtkpod_statusbar_message (_("No playlist selected."));
+	message_sb_no_playlist_selected ();
 	return;
     }
     for (gl=pl->members; gl; gl=gl->next)
@@ -1520,7 +1651,7 @@
 }
 
 
-/* return some sensible input about the "track". Yo must free the
+/* return some sensible input about the "track". You must free the
  * return string after use. */
 gchar *get_track_info (Track *track, gboolean prefer_filename)
 {
@@ -1551,4 +1682,3 @@
 
     return g_strdup_printf ("iPod ID: %d", track->id);
 }
-

Modified: gtkpod/branches/upstream/current/src/misc_track.h
===================================================================
--- gtkpod/branches/upstream/current/src/misc_track.h	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/src/misc_track.h	2006-09-30 00:00:17 UTC (rev 139)
@@ -1,4 +1,4 @@
-/* Time-stamp: <2005-12-03 20:08:42 jcs>
+/* Time-stamp: <2006-05-14 00:54:51 jcs>
 |
 |  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
 |  Part of the gtkpod project.
@@ -24,7 +24,7 @@
 |
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: misc_track.h,v 1.14 2005/12/03 16:36:26 jcsjcs Exp $
+|  $Id: misc_track.h,v 1.15 2006/05/13 16:41:06 jcsjcs Exp $
 */
 
 #ifndef __MISC_TRACK_H__
@@ -34,6 +34,8 @@
 #  include <config.h>
 #endif
 
+#include "display.h"
+
 void gp_duplicate_remove (Track *oldtrack, Track *track);
 void gp_md5_hash_tracks_itdb (iTunesDB *itdb);
 void gp_md5_hash_tracks (void);
@@ -63,4 +65,5 @@
 void gp_track_set_flags_podcast (Track *track);
 void gp_track_set_flags_default (Track *track);
 
+gchar *get_track_info (Track *track, gboolean prefer_filename);
 #endif

Modified: gtkpod/branches/upstream/current/src/mp3file.c
===================================================================
--- gtkpod/branches/upstream/current/src/mp3file.c	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/src/mp3file.c	2006-09-30 00:00:17 UTC (rev 139)
@@ -1,4 +1,4 @@
-/* Time-stamp: <2005-11-23 02:36:10 jcs>
+/* Time-stamp: <2006-09-24 12:52:49 jcs>
 |
 |  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
 |  Part of the gtkpod project.
@@ -24,9 +24,13 @@
 |
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: mp3file.c,v 1.59 2006/02/19 10:20:06 jcsjcs Exp $
+|  $Id: mp3file.c,v 1.71 2006/09/24 03:57:10 jcsjcs Exp $
 */
 
+
+#define LOCALDEBUG 0
+
+
 /* The code in the first section of this file is taken from the
  * mp3info (http://www.ibiblio.org/mp3info/) project. Only the code
  * needed for the playlength calculation has been extracted. */
@@ -48,6 +52,8 @@
  * Description of each item of the TagList list
  */
 typedef struct _File_Tag File_Tag;
+typedef struct _GainData GainData;
+
 struct _File_Tag
 {
     gchar *title;          /* Title of track */
@@ -69,8 +75,25 @@
     gchar *podcastrss;
     gchar *time_released;
     gchar *subtitle;
+    gchar *lyrics;        /* does not appear to be the full lyrics --
+			     only used to set the flag 'lyrics_flag'
+			     of the Track structure */
 };
 
+
+struct _GainData
+{
+  guint32 peak_signal;	  /* LAME Peak Signal * 0x800000             */
+  gdouble radio_gain;	  /* RadioGain in dB
+			     (as defined by www.replaygain.org)      */
+  gdouble audiophile_gain;/* AudiophileGain in dB 
+			     (as defined by www.replaygain.org)      */
+  gboolean peak_signal_set;    /* has the peak signal been set?      */
+  gboolean radio_gain_set;     /* has the radio gain been set?       */
+  gboolean audiophile_gain_set;/* has the audiophile gain been set?  */
+};
+
+
 /* This code is taken from the mp3info code. Only the code needed for
  * the playlength calculation has been extracted */
 
@@ -940,6 +963,123 @@
 
 
 
+static const gchar* id3_get_binary (struct id3_tag *tag,
+				    char *frame_name,
+				    id3_length_t *len)
+{
+    const id3_byte_t *binary = NULL;
+    struct id3_frame *frame;
+    union id3_field *field;
+
+    g_return_val_if_fail (len, NULL);
+
+    *len = 0;
+
+    frame = id3_tag_findframe (tag, frame_name, 0);
+#if LOCALDEBUG
+    printf ("frame: %p\n", frame); 
+#endif
+
+    if (!frame) return NULL;
+
+#if LOCALDEBUG
+    printf (" nfields: %d\n", frame->nfields); 
+#endif
+
+
+#if 0
+/*-----------------*/
+/* just to show that this field (before last) contains the d8 ff e0 ff
+   part of the start of a jpeg file when the coverart war embedded by iTunes */
+
+    const id3_ucs4_t *string = NULL;
+    gchar *raw = NULL;
+
+    /* The last field contains the data */
+    field = id3_frame_field (frame, frame->nfields-2);
+
+#if LOCALDEBUG
+     printf (" field: %p\n", field);
+#endif
+
+    if (!field) return NULL;
+
+#if LOCALDEBUG
+     printf (" type: %d\n", field->type);
+#endif
+
+    switch (field->type)
+    {
+    case ID3_FIELD_TYPE_STRING:
+	string = id3_field_getstring (field);
+	break;
+    default:
+	break;
+    }
+  
+    /* ISO_8859_1 is just a "marker" -- most people just drop
+       whatever coding system they are using into it, so we use
+       charset_to_utf8() to convert to utf8 */
+
+    if (string)
+    {
+	raw = id3_ucs4_latin1duplicate (string);
+    }
+
+
+#if LOCALDEBUG
+    {
+	FILE *file;
+	printf (" string len: %d\n", raw?strlen(raw):0);
+	file = fopen ("/tmp/folder1.jpg", "w");
+	fwrite (raw, 1, raw?strlen(raw):0, file);
+	fclose (file);
+    }
+#endif
+    g_free (raw);
+
+/*-----------------*/
+#endif
+
+    /* The last field contains the data */
+    field = id3_frame_field (frame, frame->nfields-1);
+
+#if LOCALDEBUG
+     printf (" field: %p\n", field);
+#endif
+
+    if (!field) return NULL;
+
+#if LOCALDEBUG
+     printf (" type: %d\n", field->type);
+#endif
+
+    switch (field->type)
+    {
+    case ID3_FIELD_TYPE_BINARYDATA:
+	binary = id3_field_getbinarydata(field, len);
+	break;
+    default:
+	break;
+    }
+
+#if LOCALDEBUG
+    {
+	FILE *file;
+	printf (" binary len: %ld\n", *len);
+	file = fopen ("/tmp/folder2.jpg", "w");
+	fwrite (binary, 1, *len, file);
+	fclose (file);
+    }
+#endif
+
+
+
+    return binary;
+}
+
+
+
 static gchar* id3_get_string (struct id3_tag *tag, char *frame_name)
 {
     const id3_ucs4_t *string = NULL;
@@ -951,27 +1091,41 @@
     enum id3_field_textencoding encoding = ID3_FIELD_TEXTENCODING_ISO_8859_1;
 
     frame = id3_tag_findframe (tag, frame_name, 0);
-/*     printf ("frame: %p\n", frame); */
+#if LOCALDEGUB
+    printf ("frame: %p\n", frame); 
+#endif
 
     if (!frame) return NULL;
 
     /* Find the encoding used for the field */
     field = id3_frame_field (frame, 0);
-/*     printf ("field: %p\n", field); */
+#if LOCALDEBUG
+    printf ("field: %p\n", field); 
+    printf ("type: %d\n", id3_field_type (field));
+#endif
 
     if (field && (id3_field_type (field) == ID3_FIELD_TYPE_TEXTENCODING))
     {
 	encoding = field->number.value;
-/*	printf ("encoding: %d\n", encoding); */
+#if LOCALDEBUG
+	printf ("encoding: %d\n", encoding);
+#endif
     }
 
     /* The last field contains the data */
     field = id3_frame_field (frame, frame->nfields-1);
 
-/*     printf ("field: %p\n", field); */
+#if LOCALDEBUG
+     printf ("field: %p\n", field);
+#endif
 
     if (!field) return NULL;
 
+#if LOCALDEBUG
+     printf ("type: %d\n", field->type);
+#endif
+
+
     switch (field->type)
     {
     case ID3_FIELD_TYPE_STRINGLIST:
@@ -982,6 +1136,9 @@
 	break;
     case ID3_FIELD_TYPE_BINARYDATA:
 	binary = id3_field_getbinarydata(field, &len);
+#if LOCALDEBUG
+	printf ("len: %ld\nbinary: %s\n", len, binary+1);
+#endif
 	if (len > 0)
 	    return charset_to_utf8 (binary+1);
 	break;
@@ -1030,6 +1187,7 @@
     while ((frame = id3_tag_findframe (tag, frame_name, 0)))
     {
 	id3_tag_detachframe (tag, frame);
+        id3_frame_delete (frame);
     }
 
     if ((data == NULL) || (strlen(data) == 0))
@@ -1120,6 +1278,78 @@
 
 
 /***
+ * Reads id3v1.x / id3v2 apic data
+ * @returns: TRUE on success, else FALSE.
+ */
+static gboolean id3_apic_read (gchar *filename,
+			       guchar **image_data, gsize *image_data_len)
+{
+    struct id3_file *id3file;
+    struct id3_tag *id3tag;
+
+    g_return_val_if_fail (filename, FALSE);
+    g_return_val_if_fail (image_data, FALSE);
+    g_return_val_if_fail (image_data_len, FALSE);
+
+    *image_data = NULL;
+    *image_data_len = 0;
+
+    if (!(id3file = id3_file_open (filename, ID3_FILE_MODE_READONLY)))
+    {
+	gchar *fbuf = charset_to_utf8 (filename);
+	g_print(_("ERROR while opening file: '%s' (%s).\n"),
+		fbuf, g_strerror(errno));
+	g_free (fbuf);
+	return FALSE;
+    }
+
+    if ((id3tag = id3_file_tag(id3file)))
+    {
+	id3_length_t len;
+	const guchar *coverart;
+
+	coverart = id3_get_binary (id3tag, "APIC", &len);
+
+	if (coverart)
+	{   /* I guess iTunes is doing something wrong -- the
+	     * beginning of the coverart data ends up in a different
+	       field... We'll just add the missing data manually. */
+	    const guchar itunes_broken_jfif_marker[] =
+		{ 0x10, 'J', 'F', 'I', 'F'};
+	    if (len >= 5)
+	    {
+		if (strncmp (itunes_broken_jfif_marker, coverart,  5) == 0)
+		{
+		    const guchar itunes_missing_header[] =
+			{ 0xff, 0xd8, 0xff, 0xe0, 0x00 };
+		    *image_data = g_malloc (len+5);
+		    memcpy (*image_data, itunes_missing_header, 5);
+		    memcpy ((*image_data)+5, coverart, len);
+		    *image_data_len = len+5;
+		}
+	    }
+	    if (!*image_data)
+	    {
+		*image_data = g_malloc (len);
+		memcpy (*image_data, coverart, len);
+		*image_data_len = len;
+	    }
+#if LOCALDEBUG
+	    if (*image_data)
+	    {
+		FILE *file;
+		file = fopen ("/tmp/folder.jpg", "w");
+		fwrite (*image_data, 1, *image_data_len, file);
+		fclose (file);
+	    }
+#endif
+	}    
+    }
+    id3_file_close (id3file);
+    return TRUE;
+}
+
+/***
  * Reads id3v1.x / id3v2 tag and load data into the Id3tag structure.
  * If a tag entry exists (ex: title), we allocate memory, else value
  * stays to NULL
@@ -1162,7 +1392,7 @@
 	tag->genre = id3_get_string (id3tag, ID3_FRAME_GENRE);
 	tag->compilation = id3_get_string (id3tag, "TCMP");
 	tag->subtitle = id3_get_string (id3tag, "TIT3");
-
+	tag->lyrics = id3_get_string (id3tag, "USLT");
 	tag->podcasturl = id3_get_string (id3tag, "YTID");
 	tag->podcastrss = id3_get_string (id3tag, "YWFD");
 	tag->description = id3_get_string (id3tag, "YTDS");
@@ -1207,6 +1437,8 @@
     return TRUE;
 }
 
+
+
 static enum id3_field_textencoding get_encoding_of (struct id3_tag *tag, const char *frame_name)
 {
     struct id3_frame *frame;
@@ -1303,7 +1535,7 @@
 	encoding = get_encoding (id3tag);
 	/* ...unless it's ISO_8859_1 and prefs say we should use
 	   unicode (i.e. ID3v2.4) */
-	if (prefs_get_id3_write_id3v24 () &&
+	if (prefs_get_int("id3_write_id3v24") &&
 	    (encoding == ID3_FIELD_TEXTENCODING_ISO_8859_1))
 	    encoding = ID3_FIELD_TEXTENCODING_UTF_8;
 
@@ -1330,6 +1562,10 @@
 
 	id3_set_string (id3tag, "TCOM", track->composer, encoding);
 
+	string1 = g_strdup_printf("%d", track->year);
+	id3_set_string(id3tag, ID3_FRAME_YEAR, string1, encoding);
+	g_free(string1);
+
 	if (track->tracks)
 	    string1 = g_strdup_printf ("%d/%d",
 				       track->track_nr, track->tracks);
@@ -1429,14 +1665,11 @@
 /* buf[] must be declared unsigned -- otherwise the casts, shifts and
    additions below produce funny results */             
 static void read_lame_replaygain(unsigned char buf[],
-				 Track *track, int gain_adjust) {
+				 GainData *gd, int gain_adjust) {
 	char oc, nc;
 	gint gain;
-	ExtraTrackData *etr;
 
-	g_return_if_fail (track);
-	etr = track->userdata;
-	g_return_if_fail (etr);
+	g_return_if_fail (gd);
 
 	/* buf[0] and buf[1] are a bit field:
 	   3 bits: name  (mask: 0xe0 = 11100000)
@@ -1466,17 +1699,17 @@
 
 	switch (nc) {
 		case 0x20:
-			if (etr->radio_gain_set) return;
-			etr->radio_gain = (gdouble)gain / 10;
-			etr->radio_gain_set = TRUE;
-/*			printf("radio_gain (lame): %i\n", etr->radio_gain); */
+			if (gd->radio_gain_set) return;
+			gd->radio_gain = (gdouble)gain / 10;
+			gd->radio_gain_set = TRUE;
+/*			printf("radio_gain (lame): %i\n", gd->radio_gain); */
 			break;
 		case 0x40:
-			if (etr->audiophile_gain_set) return;
-			etr->audiophile_gain = (gdouble)gain / 10;
-			etr->audiophile_gain_set = TRUE;
+			if (gd->audiophile_gain_set) return;
+			gd->audiophile_gain = (gdouble)gain / 10;
+			gd->audiophile_gain_set = TRUE;
 /*			printf("audiophile_gain (lame): %i\n", 
-					etr->audiophile_gain);*/
+					gd->audiophile_gain);*/
 			break;
 	}
 }
@@ -1505,7 +1738,7 @@
  * TODO: Check CRC.
  */
 
-gboolean mp3_get_track_lame_replaygain (gchar *path, Track *track)
+gboolean mp3_get_track_lame_replaygain (gchar *path, GainData *gd)
 {
 	struct {
 		/* All members are defined in terms of chars so padding does not
@@ -1523,18 +1756,15 @@
 	int gain_adjust = 0;
 	int sideinfo;
 	guint32 ps;
-	ExtraTrackData *etr;
 
-	g_return_val_if_fail (track, FALSE);
-	etr = track->userdata;
-	g_return_val_if_fail (etr, FALSE);
+	g_return_val_if_fail (gd, FALSE);
 
-	etr->radio_gain = 0;
-	etr->audiophile_gain = 0;
-	etr->peak_signal = 0;
-	etr->radio_gain_set = FALSE;
-	etr->audiophile_gain_set = FALSE;
-	etr->peak_signal_set = FALSE;
+	gd->radio_gain = 0;
+	gd->audiophile_gain = 0;
+	gd->peak_signal = 0;
+	gd->radio_gain_set = FALSE;
+	gd->audiophile_gain_set = FALSE;
+	gd->peak_signal_set = FALSE;
 	
 	if (!path)
 		goto rg_fail;
@@ -1628,18 +1858,18 @@
 	/* Don't know when fixed-point PeakSingleAmplitude
 	 * was introduced exactly. 3.94b will be used for now.) */
 	if ((lame_vcmp(version, "3.94b") >= 0)) {
-		if ((!etr->peak_signal_set) && ps) {
-			etr->peak_signal = ps;
-			etr->peak_signal_set = TRUE;
+		if ((!gd->peak_signal_set) && ps) {
+			gd->peak_signal = ps;
+			gd->peak_signal_set = TRUE;
 /*			printf("peak_signal (lame): %f\n", (double)
-					etr->peak_signal / 0x800000);*/
+					gd->peak_signal / 0x800000);*/
 		}
 	} else {
 		float f = *((float *) (void *) (&ps)) * 0x800000;
-		etr->peak_signal = (guint32) f;
+		gd->peak_signal = (guint32) f;
 		/* I would like to see an example of that. */
 /*		printf("peak_signal (lame floating point): %f. PLEASE report.\n", 
-				(double) etr->peak_signal / 0x800000);*/
+				(double) gd->peak_signal / 0x800000);*/
 	}
 
 	/*
@@ -1656,13 +1886,13 @@
 		goto rg_fail;
 
 	/* radio gain */
-	read_lame_replaygain (buf, track, gain_adjust);
+	read_lame_replaygain (buf, gd, gain_adjust);
 
 	if (fread(&buf[0], 1, 2, file) != 2)
 		goto rg_fail;
 
 	/* audiophile gain */
-	read_lame_replaygain (buf, track, gain_adjust);
+	read_lame_replaygain (buf, gd, gain_adjust);
 
 	fclose(file);
 	return TRUE;
@@ -1684,7 +1914,7 @@
  * The function only modifies the gains if they have not previously been set.
  */
 
-gboolean mp3_get_track_ape_replaygain(gchar *path, Track *track)
+gboolean mp3_get_track_ape_replaygain(gchar *path, GainData *gd)
 {
 	/* The Ape Tag is located a t the end of the file. Or at least that
 	 * seems where it can most likely be found. Either it is at the very end
@@ -1705,11 +1935,8 @@
 	guint32 entry_length = 0;
 	guint32 entries;
 	double d;
-	ExtraTrackData *etr;
 
-	g_return_val_if_fail (track, FALSE);
-	etr = track->userdata;
-	g_return_val_if_fail (etr, FALSE);
+	g_return_val_if_fail (gd, FALSE);
 	g_return_val_if_fail (path, FALSE);
 
 	file = fopen (path, "r");
@@ -1778,7 +2005,7 @@
 		goto rg_fail;
 	
 	for (i = 0; i < entries; i++) {
-		if (etr->radio_gain_set && etr->peak_signal_set) break;
+		if (gd->radio_gain_set && gd->peak_signal_set) break;
 		pos = pos2 + entry_length;
 		if (pos > data_length - 10) break;
 		
@@ -1793,7 +2020,7 @@
 		if (entry_length + 1 > sizeof(buf))
 			continue;
 /* 		printf ("%s:%d:%d\n",&dbuf[pos], pos2, pos); */
-		if (!etr->radio_gain_set && !strcasecmp(&dbuf[pos],
+		if (!gd->radio_gain_set && !strcasecmp(&dbuf[pos],
 					"REPLAYGAIN_TRACK_GAIN")) {
 			memcpy(buf, &dbuf[pos2], entry_length);
 			buf[entry_length] = '\0';
@@ -1802,14 +2029,14 @@
 /* 			printf("%f\n", d); */
 			if ((ep == buf + entry_length - 3) 
 					&& (!strncasecmp(ep, " dB", 3))) {
-			    etr->radio_gain = d;
-				etr->radio_gain_set = TRUE;
-/*				printf("radio_gain (ape): %i\n", etr->radio_gain);*/
+			    gd->radio_gain = d;
+				gd->radio_gain_set = TRUE;
+/*				printf("radio_gain (ape): %i\n", gd->radio_gain);*/
 			}
 			
 			continue;
 		}
-		if (!etr->peak_signal_set && !strcasecmp(&dbuf[pos],
+		if (!gd->peak_signal_set && !strcasecmp(&dbuf[pos],
 					"REPLAYGAIN_TRACK_PEAK")) {
 			memcpy(buf, &dbuf[pos2], entry_length);
 			buf[entry_length] = '\0';
@@ -1817,9 +2044,9 @@
 			d = g_ascii_strtod(buf, &ep);
 			if (ep == buf + entry_length) {
 				d *= 0x800000;
-				etr->peak_signal = (guint32) floor(d + 0.5);
-				etr->peak_signal_set = TRUE;
-/*				printf("peak_signal (ape): %f\n", (double) etr->peak_signal / 0x800000);*/
+				gd->peak_signal = (guint32) floor(d + 0.5);
+				gd->peak_signal_set = TRUE;
+/*				printf("peak_signal (ape): %f\n", (double) gd->peak_signal / 0x800000);*/
 			}
 
 			continue;
@@ -1849,154 +2076,49 @@
 #include <fcntl.h>
 
 
-/* this function initiates mp3gain on a given track and causes it to write the
- * Radio Replay Gain and Peak to an Ape Tag */
 
-/* mp3gain version 1.4.2 */
-static gboolean mp3_calc_gain (gchar *path, Track *track)
-{
-    gint k,n;  /*for's counter*/
-    gchar *mp3gain_path;
-    gchar *mp3gain_exec;
-    const gchar *mp3gain_set;
-    pid_t pid,tpid;
-    int ret = 2;
-    int status;
-    int errsv;
-    int fdnull;
 
-    k=0;
-    n=0;
 
-    /* see if full path to mp3gain was set using the prefs dialogue */
-    mp3gain_set = prefs_get_path (PATH_MP3GAIN);
-    /* use default if not */
-    if (!mp3gain_set || !(*mp3gain_set)) mp3gain_set = "mp3gain";
-    /* find full path */
-    mp3gain_path = g_find_program_in_path (mp3gain_set);
-    /* show error message if mp3gain cannot be found */
-    if (!mp3gain_path)
-    {
-	gtkpod_warning (_("Could not find mp3gain. I tried to use the following "
-				"executable: '%s'.\n\nIf the mp3gain executable "
-				"is not in your path or named differently, you "
-				"can set the full path in the 'Tools' section of "
-				"the preferences dialog.\n\nIf you do not have "
-				"mp3gain installed, you can download it from "
-				"http://www.sourceforge.net/projects/mp3gain."),
-			mp3gain_set);
-	return FALSE;
-    }
 
-    mp3gain_exec = g_path_get_basename (mp3gain_path);
-
-    /*fork*/
-    pid=fork();
-
-    /*and cast mp3gain*/
-    switch (pid)
-    {
-    case -1: /* parent and error, now what?*/
-	break;
-    case 0: /*child*/
-	/* redirect output to /dev/null */
-	if ((fdnull = open("/dev/null", O_WRONLY | O_NDELAY)) != -1) {
-		dup2(fdnull, fileno(stdout));
-	}
-	
-	/* this call may add a tag to the mp3file!! */
-        execl(mp3gain_path, mp3gain_exec, 
-			"-q", /* quiet */
-			"-k", /* set ReplayGain so that clipping is prevented */
-			path, NULL);
-	errsv = errno;
-        fprintf(stderr, "execl() failed: %s\n", strerror(errsv));
-	/* mp3gain (can) return 1 on success. So only values greater 1 can
-	 * designate failure. */
-	exit(2);
-    default: /*parent*/
-	tpid = waitpid (pid, &status, 0); /*wait mp3gain termination */
-	if WIFEXITED(status) ret = WEXITSTATUS(status);
-	if (ret > 1) gtkpod_warning (_("Execution of mp3gain ('%s') failed."),
-			mp3gain_set);
-	break;
-    }/*end switch*/
-
-    /*free everything left*/
-    g_free (mp3gain_path);
-    g_free (mp3gain_exec);
-
-    /*and happily return the right value*/
-    return (ret > 1) ? FALSE : TRUE;
-}
-
-
-
-
-/* 
- * mp3_get_gain - try to read the ReplayGain values from the LAME or Ape
- * Tags. If that does not work run mp3gain. And try to read again.
+/** 
+ * mp3_read_soundcheck:
  *
+ * try to read the ReplayGain values from the LAME or Ape Tags and set
+ * the track's soundcheck field accordingly.
+ *
  * @path: localtion of the file
  * @track: structure holding track information
  *
- * The function always rereads the gains. Even if they have been
- * previuosly known.
+ * The function always rereads the gain from the file.
  *
- * Returns TRUE if at least the radio_gain could be read.
+ * Returns TRUE if the soundcheck field could be set.
  */
-
-gboolean mp3_get_gain (gchar *path, Track *track) 
+gboolean mp3_read_soundcheck (gchar *path, Track *track) 
 {
-    ExtraTrackData *etr;
+    GainData gd;
 
     g_return_val_if_fail (track, FALSE);
-    etr = track->userdata;
-    g_return_val_if_fail (etr, FALSE);
 
-    etr->radio_gain_set = FALSE;
-    etr->audiophile_gain_set = FALSE;
-    etr->peak_signal_set = FALSE;
+    memset (&gd, 0, sizeof (GainData));
 
-    mp3_get_track_lame_replaygain (path, track);
-/*    printf ("%d:%d\n", track->radio_gain_set, track->peak_signal_set); */
-    if (etr->radio_gain_set && etr->peak_signal_set) return TRUE;
-    mp3_get_track_ape_replaygain (path, track);
-    if (etr->radio_gain_set) return TRUE;
-	    
-    if (mp3_calc_gain (path, track))
-	mp3_get_track_ape_replaygain (path, track);
-    if (etr->radio_gain_set) return TRUE;
-    return FALSE;
-}
+    gd.radio_gain_set = FALSE;
+    gd.audiophile_gain_set = FALSE;
+    gd.peak_signal_set = FALSE;
 
+    mp3_get_track_lame_replaygain (path, &gd);
+    if (gd.radio_gain_set)
+    {
+	track->soundcheck = replaygain_to_soundcheck (gd.radio_gain);
+	return TRUE;
+    }
 
+    mp3_get_track_ape_replaygain (path, &gd);
+    if (gd.radio_gain_set)
+    {
+	track->soundcheck = replaygain_to_soundcheck (gd.radio_gain);
+	return TRUE;
+    }
 
-/* 
- * mp3_read_gain - as mp3_get_gain() above, but will never run
- * mp3gain.
- *
- * Returns TRUE if at least the radio_gain could be read.
- */
-
-gboolean mp3_read_gain (gchar *path, Track *track) 
-{
-    ExtraTrackData *etr;
-
-    g_return_val_if_fail (track, FALSE);
-    etr = track->userdata;
-    g_return_val_if_fail (etr, FALSE);
-
-    etr->radio_gain_set = FALSE;
-    etr->audiophile_gain_set = FALSE;
-    etr->peak_signal_set = FALSE;
-
-    mp3_get_track_lame_replaygain (path, track);
-    if (etr->radio_gain_set && etr->peak_signal_set) return TRUE;
-
-    mp3_get_track_ape_replaygain (path, track);
-    if (etr->radio_gain_set) return TRUE;
-    
     return FALSE;
 }
 
@@ -2016,6 +2138,8 @@
     File_Tag filetag;
     MP3Info *mp3i=NULL;
     FILE *file;
+    guchar *image_data = NULL;
+    gsize image_data_len = 0;
 
     g_return_val_if_fail (name, NULL);
 
@@ -2040,9 +2164,10 @@
     }
 
     track = gp_track_new ();
-    if (prefs_get_readtags() && (id3_tag_read (name, &filetag) == TRUE))
+    track->filetype = g_strdup ("MPEG audio file");
+
+    if (prefs_get_int("readtags") && (id3_tag_read (name, &filetag) == TRUE))
     {
-	track->filetype = g_strdup ("MPEG audio file");
 
 	if (filetag.album)
 	{
@@ -2153,10 +2278,32 @@
 	    track->compilation = atoi(filetag.compilation);
 	    g_free (filetag.compilation);
 	}
+
+	if (filetag.lyrics)
+	{
+	    track->lyrics_flag = 0x01;
+	    g_free (filetag.lyrics);
+	}
+	else
+	{
+	    track->lyrics_flag = 0x00;
+	}
     }
 
-    mp3_read_gain (name, track);
+    if (prefs_get_int("coverart_apic") &&
+	(id3_apic_read (name, &image_data, &image_data_len) == TRUE))
+    {
+	if (image_data)
+	{
+	    gp_track_set_thumbnails_from_data (track,
+					       image_data,
+					       image_data_len);
+	    g_free (image_data);
+	}
+    }
 
+    mp3_read_soundcheck (name, track);
+
     /* Get additional info (play time and bitrate */
     if (mp3i)
     {

Modified: gtkpod/branches/upstream/current/src/mp3file.h
===================================================================
--- gtkpod/branches/upstream/current/src/mp3file.h	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/src/mp3file.h	2006-09-30 00:00:17 UTC (rev 139)
@@ -1,4 +1,4 @@
-/* Time-stamp: <2005-06-17 22:12:13 jcs>
+/* Time-stamp: <2006-06-11 13:57:01 jcs>
 |
 |  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
 |  Part of the gtkpod project.
@@ -24,7 +24,7 @@
 |
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: mp3file.h,v 1.23 2005/06/17 13:30:04 jcsjcs Exp $
+|  $Id: mp3file.h,v 1.24 2006/06/11 16:04:51 jcsjcs Exp $
 */
 
 #ifndef MP3FILEH_INCLUDED
@@ -34,6 +34,6 @@
 
 gboolean mp3_write_file_info (gchar *filename, Track *track);
 Track *mp3_get_file_info (gchar *name);
-gboolean mp3_get_gain (gchar *path, Track *track);
+gboolean mp3_read_soundcheck (gchar *path, Track *track);
 
 #endif

Modified: gtkpod/branches/upstream/current/src/mp4file.c
===================================================================
--- gtkpod/branches/upstream/current/src/mp4file.c	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/src/mp4file.c	2006-09-30 00:00:17 UTC (rev 139)
@@ -1,4 +1,4 @@
-/* Time-stamp: <2005-11-22 22:34:20 jcs>
+/* Time-stamp: <2006-09-18 16:03:15 jcs>
 |
 |  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
 |  Part of the gtkpod project.
@@ -24,7 +24,7 @@
 |
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: mp4file.c,v 1.26 2005/11/30 14:21:37 jcsjcs Exp $
+|  $Id: mp4file.c,v 1.34 2006/09/18 07:10:44 jcsjcs Exp $
 */
 
 #ifdef HAVE_CONFIG_H
@@ -54,7 +54,7 @@
    gchar   *genre;            /+ genre (utf8)          +/
    gchar   *comment;          /+ comment (utf8)        +/
    gchar   *composer;         /+ Composer (utf8)       +/
-   gchar   *fdesc;            /+ Format description (utf8)   +/
+   gchar   *filetype;         /+ Format description (utf8)   +/
    gchar   *charset;          /+ charset used for tags       +/
    gchar   *description;      /+ Description text (podcasts) +/
    gchar   *podcasturl;       /+ URL/Title (podcasts)        +/
@@ -72,18 +72,15 @@
    gint32  bitrate;           /+ bitrate in kbps       +/
    guint16 samplerate;        /+ e.g.: CD is 44100     +/
    guint32 peak_signal;	      /+ LAME Peak Signal * 0x800000         +/
-   gint32  radio_gain;	      /+ RadioGain in dB*10
-				(as defined by www.replaygain.org)   +/
-   gint32  audiophile_gain;   /+ AudiophileGain in dB*10 
-				(as defined by www.replaygain.org)   +/
-   gboolean peak_signal_set;  /+ has the peak signal been set?       +/
-   gboolean radio_gain_set;   /+ has the radio gain been set?        +/
-   gboolean audiophile_gain_set;/+ has the audiophile gain been set? +/
    gboolean compilation;      /+ Track is part of a compilation CD   +/
 
-   If prefs_get_tag_readtags() returns FALSE you only should fill in
-   tracklen, bitrate and fdesc
+   If prefs_get_int("readtags") returns FALSE you only should fill in
+   tracklen, bitrate, samplerate, soundcheck and filetype
 
+   If prefs_get_int("coverart_apic") returns TRUE you should try to
+   read APIC coverart data from the tags and set it with
+   gp_set_thumbnails_from_data().
+
    Please note that the iPod will only play as much of the track as
    specified in "tracklen".
 
@@ -101,26 +98,22 @@
    You also have to write a function to write TAGs back to the
    file. That function should be named
 
-   gboolean xxx_write_file_info (gchar *filename, Track *track, T_item tag_id)
+   gboolean xxx_write_file_info (gchar *filename, Track *track)
 
    and return TRUE on success or FALSE on error. In that case it
    should log an error message using gtkpod_warning().
 
-   @tag_id determines which TAGs of @track out of the list above are
-   to be updated. If @tag_id==T_ALL, upudate all (supported) TAGs.
-
    You need to add your handler to file_write_info() in file.c
 
 
    Finally, you may want to provide a function that can
-   read/calculate the replay gain
+   read and set the soundcheck field: 
 
-   gboolean xxx_get_gain (gchar *filename, Track *track)
+   gboolean xxx_read_soundcheck (gchar *filename, Track *track)
 
-   and return TRUE when the replay gain could be determined (as an
-   example see mp3_get_gain() in mp3file.c.
+   and return TRUE when the soundcheck value could be determined.
 
-   You need to add your handler to get_gain() in file.c.
+   You need to add your handler to read_soundcheck() in file.c.
 
    ------------------------------------------------------------ */
 
@@ -147,11 +140,113 @@
    PACKAGE */
 #include <config.h>
 
+
+static gboolean mp4_scan_soundcheck (MP4FileHandle mp4File, Track *track)
+{
+    gboolean success = FALSE;
+    u_int8_t *ppValue;
+    u_int32_t pValueSize;
+
+
+    g_return_val_if_fail (mp4File != MP4_INVALID_FILE_HANDLE, FALSE);
+
+    if (MP4GetMetadataFreeForm(mp4File, "iTunNORM",
+			       &ppValue, &pValueSize))
+    {
+	gchar *str;
+	guint sc1=0, sc2=0;
+	str = g_malloc0((pValueSize+1)*sizeof(gchar));
+	memcpy(str, ppValue, pValueSize*sizeof(gchar));
+	/* This field consists of a number of hex numbers
+	   represented in ASCII, e.g. " 00000FA7 00000B3F
+	   000072CF 00006AB6 0001CF53 00016310 0000743A
+	   00007C1F 00023DD5 000162E2". iTunes seems to
+	   choose the larger one of the first two numbers
+	   as the value for track->soundcheck */
+	sscanf (str, "%x %x", &sc1, &sc2);
+	g_free (str);
+	if (sc1 > sc2)
+	    track->soundcheck = sc1;
+	else
+	    track->soundcheck = sc2;
+	success = TRUE;
+    }
+
+    if (MP4GetMetadataFreeForm(mp4File, "replaygain_track_gain",
+			       &ppValue, &pValueSize))
+    {
+	gchar *str;
+	gdouble rg;
+	str = g_malloc0((pValueSize+1)*sizeof(gchar));
+	memcpy(str, ppValue, pValueSize*sizeof(gchar));
+	rg = g_strtod (str, NULL);
+	track->soundcheck = replaygain_to_soundcheck (rg);
+	g_free (str);
+
+	success = TRUE;
+    }
+
+    return success;
+}
+
+
+gboolean mp4_read_soundcheck (gchar *mp4FileName, Track *track)
+{
+    gboolean success = FALSE;
+    MP4FileHandle mp4File;
+
+    g_return_val_if_fail (mp4FileName, FALSE);
+    g_return_val_if_fail (track, FALSE);
+
+    mp4File = MP4Read(mp4FileName, 0);
+
+    if (mp4File != MP4_INVALID_FILE_HANDLE)
+    {
+	MP4TrackId trackId;
+	const char *trackType;
+
+	trackId = MP4FindTrackId(mp4File, 0, NULL, 0);
+	trackType = MP4GetTrackType(mp4File, trackId);
+
+	if (trackType &&
+	    ((strcmp(trackType, MP4_AUDIO_TRACK_TYPE) == 0) ||
+	     (strcmp(trackType, MP4_VIDEO_TRACK_TYPE) == 0) ||
+	     (strcmp(trackType, MP4_OD_TRACK_TYPE) == 0)))
+	{
+	    success = mp4_scan_soundcheck (mp4File, track);
+	}
+	else
+	{
+	    gchar *filename = charset_to_utf8 (mp4FileName);
+	    gtkpod_warning (_("'%s' does not appear to be a mp4 audio file.\n"),
+			    filename);
+	    g_free (filename);
+	}
+	MP4Close(mp4File);
+    }
+    else
+    {
+	gchar *filename = charset_to_utf8 (mp4FileName);
+	gtkpod_warning (
+	    _("Could not open '%s' for reading, or file is not an mp4 file.\n"),
+	    filename);
+	g_free (filename);
+    }
+
+    return success;
+}
+
+
+
 Track *mp4_get_file_info (gchar *mp4FileName)
 {
     Track *track = NULL;
-    MP4FileHandle mp4File = MP4Read(mp4FileName, 0);
+    MP4FileHandle mp4File;
 
+    g_return_val_if_fail (mp4FileName, NULL);
+
+    mp4File = MP4Read(mp4FileName, 0);
+
     if (mp4File != MP4_INVALID_FILE_HANDLE)
     {
 	MP4TrackId trackId;
@@ -159,7 +254,10 @@
 
 	trackId = MP4FindTrackId(mp4File, 0, NULL, 0);
 	trackType = MP4GetTrackType(mp4File, trackId);
-	if (trackType && ((strcmp(trackType, MP4_AUDIO_TRACK_TYPE) == 0) || (strcmp(trackType, MP4_VIDEO_TRACK_TYPE) == 0)))
+	if (trackType &&
+	    ((strcmp(trackType, MP4_AUDIO_TRACK_TYPE) == 0) ||
+	     (strcmp(trackType, MP4_VIDEO_TRACK_TYPE) == 0) ||
+	     (strcmp(trackType, MP4_OD_TRACK_TYPE) == 0)))
 	{
 	    gchar *value;
 	    guint16 numvalue, numvalue2;
@@ -188,7 +286,7 @@
 		if (g_strcasecmp (value, ".mp4") == 0)
 		    track->filetype = g_strdup ("MP4 video file");
 	    }
-	    if (prefs_get_readtags ())
+	    if (prefs_get_int("readtags"))
 	    {
 		if (MP4GetMetadataName(mp4File, &value) && value != NULL)
 		{
@@ -236,6 +334,7 @@
 		    g_free(value);
 		}
 	    }
+	    mp4_scan_soundcheck (mp4File, track);
 	}
 	else
 	{
@@ -392,4 +491,10 @@
     gtkpod_warning (_("m4a/m4p/m4b metadata update for '%s' failed: m4a/m4p/m4b not supported without the mp4v2 library. You must compile the gtkpod source together with the mp4v2 library.\n"), filename);
     return FALSE;
 }
+
+gboolean mp4_read_soundcheck (gchar *filename, Track *track)
+{
+    gtkpod_warning (_("m4a/m4p/m4b soundcheck update for '%s' failed: m4a/m4p/m4b not supported without the mp4v2 library. You must compile the gtkpod source together with the mp4v2 library.\n"), filename);
+    return FALSE;
+}
 #endif

Modified: gtkpod/branches/upstream/current/src/mp4file.h
===================================================================
--- gtkpod/branches/upstream/current/src/mp4file.h	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/src/mp4file.h	2006-09-30 00:00:17 UTC (rev 139)
@@ -1,4 +1,4 @@
-/* Time-stamp: <2005-06-17 22:12:13 jcs>
+/* Time-stamp: <2006-06-11 14:39:42 jcs>
 |
 |  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
 |  Part of the gtkpod project.
@@ -24,7 +24,7 @@
 |
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: mp4file.h,v 1.8 2005/06/17 13:30:05 jcsjcs Exp $
+|  $Id: mp4file.h,v 1.9 2006/06/11 16:04:51 jcsjcs Exp $
 */
 
 #ifndef MP4FILEH_INCLUDED
@@ -34,4 +34,5 @@
 
 gboolean mp4_write_file_info (gchar *filename, Track *track);
 Track *mp4_get_file_info (gchar *name);
+gboolean mp4_read_soundcheck (gchar *filename, Track *track);
 #endif

Modified: gtkpod/branches/upstream/current/src/podcast.c
===================================================================
--- gtkpod/branches/upstream/current/src/podcast.c	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/src/podcast.c	2006-09-30 00:00:17 UTC (rev 139)
@@ -1,6 +1,6 @@
-/* Time-stamp: <2005-12-14 23:11:00 jcs>
+/* Time-stamp: <2006-05-21 12:26:45 jcs>
 |
-|  Copyright (C) 2002-2005 Alexander Dutton <alexdutton at f2s dot com>
+|  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
 |  Part of the gtkpod project.
 |
 |  URL: http://www.gtkpod.org/
@@ -24,1081 +24,6 @@
 |
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: podcast.c,v 1.8 2005/12/14 14:58:55 jcsjcs Exp $
+|  $Id: podcast.c,v 1.10 2006/05/21 03:46:45 jcsjcs Exp $
 */
 
-/* FIXME: PODCASTS: remove Podcast menu */
-#if 0
-#ifdef HAVE_CONFIG_H
-#  include <config.h>
-#endif
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-#include <sys/stat.h>
-#include <sys/types.h>
-#include <gtk/gtk.h>
-#include <glib.h>
-#include <pthread.h>
-#ifdef HAVE_GETOPT_LONG_ONLY
-#  include <getopt.h>
-#else
-#  include "getopt.h"
-#endif
-#include "misc.h"
-#include "prefs.h"
-#include "podcast.h"
-#include "info.h"
-#include <time.h>
-#include <curl/curl.h>
-#include <curl/multi.h>
-#include <curl/types.h>
-
-struct podcast
-{
-    gchar *name;                 /* of the podcast */
-    gchar *url;                  /* of XML file */
-};
-
-struct podcast_file
-{
-    gchar *title;                 /* of each individual audio file */
-    gchar *url;                  /* where the audio file is to be found */
-    gchar *desc;                 /* description of audio file (from XML) */
-    gchar *artist;               /* itunes:author in actuality */
-    gchar pubdate[14];           /* "YYYYMMDDHHMMSS" in UTC/GMT*/
-    gchar fetchdate[14];         /* same as above */
-    glong size;                  /* filesize */
-    gchar *local;                /* where the file is kept on the local system */
-    gboolean fetched;            /* whether or not this podcast has been fetched */
-    gboolean tofetch;            /* whether we should fetch this podcast */
-};
-
-enum
-{
-  PCL_TITLE = 0,
-  PCL_URL,
-  PCL_SIZE,
-  PCL_PROGRESS,
-  PCL_NUM_COLS
-};
-
-enum
-{
-  ABORT_SELECTED = 0,
-  ABORT_CURRENT,
-  ABORT_ALL
-};
-
-static GList *podcasts = NULL;
-static GList *podcast_files = NULL;
-static GList *abort_urls = NULL;
-static GList *abort_urls_to_add = NULL;
-
-static GladeXML *podcast_window_xml;
-static GtkWidget *podcast_window = NULL;
-static GtkTreeView *podcast_list = NULL;
-
-static gchar *url_being_fetched = NULL;
-
-static long transfer_total, transfer_done;
-static gint retrieve_url_to_path (gchar *url, gchar *path);
-static gint parse_file_for_podcast_files(gchar *file);
-static void podcast_log (gchar *msg);
-static void create_podcast_list ();
-static gchar *choose_filename(gchar *url);
-
-static void podcast_window_create(void);
-
-static void abort_fetch_response(GtkDialog *dialog, gint arg1, gpointer user_data);
-static void abort_fetch (gint what);
-
-int update_progress(gpointer *data,
-                    double t, /* dltotal */
-                    double d, /* dlnow */
-                    double ultotal,
-                    double ulnow);
-
-void podcast_add (gchar *name, gchar *url)
-{
-    /* assign some memory to hold data for new podcast */
-    struct podcast *podcast = malloc(sizeof(struct podcast));
-    podcast->name = g_strdup(name);
-    podcast->url = g_strdup(url);
-    /* g_free(name); */
-    /* g_free(url); */
-    podcasts = g_list_insert(podcasts, podcast, -1);
-}
-
-gboolean podcast_delete_by_url(gchar *url)
-{
-    int i = 0;
-    struct podcast *podcast = NULL;
-
-    while(i < g_list_length(podcasts)) 
-    {
-        podcast = g_list_nth_data(podcasts, i);
-        if (g_ascii_strcasecmp(podcast->url, url) == 0)
-        {
-            podcasts = g_list_remove(podcasts, podcast);
-            g_free(podcast);
-            return TRUE;
-        }
-        ++i;
-    }
-    return FALSE;
-}
-
-static void podcast_delete_all ()
-{
-    int i = 0;
-    struct podcast *podcast = NULL;
-
-    while(i < g_list_length(podcasts))
-    {
-        podcast = g_list_nth_data(podcasts, i);
-        g_free(podcast->name);
-        g_free(podcast->url);
-        ++i;
-    }
-    i = g_list_length(podcasts) - 1;
-    while(i > -1)
-    {
-        podcast = g_list_nth_data(podcasts, i);
-        podcasts = g_list_remove(podcasts, podcast);
-        --i;
-    }
-}
-
-void podcast_write_from_store (GtkListStore *store)
-{
-    gchar *cfgdir = NULL;
-    FILE *fp = NULL;
-    gboolean have_prefs = FALSE;
-
-    cfgdir = prefs_get_cfgdir ();
-
-    if (cfgdir)
-    {
-	gchar *filename = g_build_filename (cfgdir, "podcast.list", NULL);
-
-        if((fp = fopen(filename, "w")))
-        {
-
-            GtkTreeIter iter;
-            gchar *name, *url;
-
-            podcast_delete_all();
-
-            if (gtk_tree_model_get_iter_first (GTK_TREE_MODEL(store), &iter))
-            {
-                do
-                {
-                    gtk_tree_model_get (GTK_TREE_MODEL(store), &iter,
-                                        PC_SUBS_NAME, &name,
-                                        PC_SUBS_URL, &url,
-                                        -1);
-                    fprintf (fp, "begin podcast\n");
-                    fprintf (fp, "name=%s\n", name);
-                    fprintf (fp, "url=%s\n", url);
-                    fprintf (fp, "end podcast\n");
-
-                    podcast_add(name, url);
-
-                    g_free(name);
-                    g_free(url);
-                } while (gtk_tree_model_iter_next(GTK_TREE_MODEL(store), &iter));
-            }
-
-            fclose(fp);
-            have_prefs = TRUE; /* read prefs */
-        }
-        else
-        {
-            gtkpod_warning(_("Unable to open podcast file '%s' for writing\n"), filename);
-        }
-	g_free (filename);
-	g_free (cfgdir);
-    }
-}
-
-void podcast_read_into_store (GtkListStore *store)
-{
-    int i = 0;
-    struct podcast *podcast = NULL;
-
-    GtkTreeIter iter;
-
-    while(i < g_list_length(podcasts))
-    {
-        podcast = g_list_nth_data(podcasts, i);
-        gtk_list_store_append (store, &iter);
-        gtk_list_store_set (store, &iter,
-                            PC_SUBS_NAME, podcast->name,
-                            PC_SUBS_URL, podcast->url,
-                            -1);
-        ++i;
-    }
-
-}
-
-void podcast_read_from_file ()
-{
-    gchar *cfgdir = NULL, *name = NULL, *url = NULL;
-    gchar buf[PATH_MAX];
-    gchar *line, *arg, *bufp;
-    gint len;
-
-    FILE *fp = NULL;
-
-    cfgdir = prefs_get_cfgdir ();
-
-    if (cfgdir)
-    {
-	gchar *filename = g_build_filename (cfgdir, "podcast.list", NULL);
-
-        if((fp = fopen(filename, "r")))
-        {
-            while (fgets (buf, PATH_MAX, fp))
-            {
-                /* allow comments */
-                if ((buf[0] == ';') || (buf[0] == '#')) continue;
-                arg = strchr (buf, '=');
-                if (!arg || (arg == buf))
-                {
-                    len = strlen(buf);
-                    if((len>0) && (buf[len-1] == 0x0a))  buf[len-1] = 0;
-                    line = g_strdup(buf);
-                    if (g_ascii_strcasecmp (line, "end podcast") == 0 && name != NULL && url != NULL)
-                    {
-                        podcast_add(name, url);
-                        g_free(name);
-                        g_free(url);
-                    }
-                    g_free(line);
-                    continue;
-                }
-                /* skip whitespace */
-                bufp = buf;
-                while (g_ascii_isspace(*bufp)) ++bufp;
-                line = g_strndup (buf, arg-bufp);
-                ++arg;
-                len = strlen (arg); /* remove newline */
-                if((len>0) && (arg[len-1] == 0x0a))  arg[len-1] = 0;
-                /* skip whitespace */
-                while (g_ascii_isspace(*arg)) ++arg;
-                if(g_ascii_strcasecmp (line, "name") == 0)
-                {
-                    name = g_strdup(arg);
-                }
-                else if (g_ascii_strcasecmp (line, "url") == 0)
-                {
-                    url = g_strdup(arg);
-                }
-                g_free(line);
-            }
-            fclose(fp);
-        }
-	g_free (filename);
-	g_free (cfgdir);
-    }
-}
-
-void podcast_file_add (gchar *title, gchar *url, 
-                       gchar *desc, gchar *artist, 
-                       gchar pubdate[14], gchar fetchdate[14], 
-                       glong size, gchar *local,
-                       gboolean fetched, gboolean tofetch)
-{
-    /* assign some memory to hold data for new podcast */
-    struct podcast_file *podcast_file = malloc(sizeof(struct podcast_file));
-    podcast_file->title = g_strdup(title);
-    podcast_file->url = g_strdup(url);
-    podcast_file->desc = g_strdup(desc);
-    podcast_file->artist = g_strdup(artist);
-    podcast_file->local = g_strdup(local);
-/*    podcast_file->pubdate = pubdate; */
-/*    podcast_file->fetchdate = fetchdate; */
-    podcast_file->size = size;
-    podcast_file->fetched = fetched;
-    podcast_file->tofetch = tofetch;
-    podcast_files = g_list_insert(podcast_files, podcast_file, -1);
-
-}
-
-void podcast_file_delete_by_url (gchar *url)
-{
-
-}
-
-gboolean podcast_already_have_url (gchar *url)
-{
-    int i = 0;
-    struct podcast_file *podcast_file = NULL;
-
-    while(i < g_list_length(podcast_files))
-    {
-        podcast_file = g_list_nth_data(podcast_files, i);
-        if (g_ascii_strcasecmp(podcast_file->url, url) == 0)
-            return TRUE;
-        ++i;
-    }
-    return FALSE;
-}
-
-gint podcast_file_read_from_file()
-{
-    gchar *cfgdir = prefs_get_cfgdir ();
-
-    if (cfgdir)
-    {
-        gchar *filename = g_build_filename(cfgdir, "podcast.xml", NULL);
-
-        parse_file_for_podcast_files(filename);
-
-        g_free(filename);
-        g_free(cfgdir);
-        return 0;
-
-    }
-    else
-    {
-        return 1;
-    }
-}
-
-gint podcast_file_write_to_file()
-{
-    gchar *cfgdir = prefs_get_cfgdir ();
-
-    if (cfgdir)
-    {
-        gchar *filename = g_strdup_printf("%s/podcast.xml", cfgdir);
-        FILE *fp = fopen(filename, "w");
-        int i = 0;
-        struct podcast_file *podcast_file;
-
-        fprintf(fp, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
-        fprintf(fp, "<rss xmlns:itunes=\"http://example.com/DTDs/Podcast-1.0.dtd\" version=\"2.0\">\n");
-        fprintf(fp, "<channel>\n");
-        fprintf(fp, "  <title>gtkpod local podcast file</title>\n\n");
-
-        while(i < g_list_length(podcast_files))
-        {
-            podcast_file = g_list_nth_data(podcast_files, i);
-
-            fprintf(fp, "  <item>\n");
-            fprintf(fp, "    <title>%s</title>\n",                   podcast_file->title);
-            fprintf(fp, "    <itunes:author>%s</itunes:author>\n",    podcast_file->artist);
-            fprintf(fp, "    <enclosure url=\"%s\" length=%ld />\n",  podcast_file->url, podcast_file->size);
-            fprintf(fp, "    <description>%s</description>\n",       podcast_file->desc);
-            if (podcast_file->local)
-                fprintf(fp, "    <gtkpod:local>%s</gtkpod:local>\n",     podcast_file->local);
-            fprintf(fp, "    <gtkpod:fetched>%d</gtkpod:fetched>\n", podcast_file->fetched);
-            fprintf(fp, "    <gtkpod:tofetch>%d</gtkpod:tofetch>\n", podcast_file->tofetch);
-            fprintf(fp, "  </item>\n");       
-
-            ++i;
-        }
-
-        fprintf(fp, "</channel>\n</rss>\n");
-
-        fclose(fp);
-
-	g_free (cfgdir);
-
-        return 0;
-    }
-    return 1;
-}
-
-void podcast_fetch ()
-{
-    /*pthread_create(&podcast_fetch_tid, NULL, &podcast_fetch_thread,
-      NULL); */
-    podcast_fetch_thread();
-    /* g_thread_create(podcast_fetch_thread, NULL, FALSE, NULL);*/
-}
-
-void podcast_fetch_thread(gpointer data)
-{
-    struct podcast *podcast;
-    struct podcast_file *podcast_file;
-    guint i = 0;
-    gint found = 0;
-    gchar *status_msg = NULL, *cfgdir = NULL;
-
-    podcast_fetch_in_progress = TRUE;
-
-    iTunesDB *itdb = gp_itdb_get_podcast ();
-
-
-    gdk_threads_enter();
-    podcast_window_create();
-    gdk_threads_leave();
-
-    while (gtk_events_pending())  gtk_main_iteration();
-
-    if (g_list_length(podcasts) == 0)
-    {
-        podcast_log(_("Fetch started, but no podcasts to fetch"));
-        return;
-    }
-
-/*
-    gchar *pc_dir = prefs_get_pc_dir();
-    struct stat buf;
-    if (stat (pc_dir, &buf) != -1)
-    {
-        gtkpod_warning(_("The podcast directory (\"%s\") does not exist."), pc_dir);
-        g_free(pc_dir);
-        return;
-    } else {
-        g_free(pc_dir);
-        if (!(S_IFDIR & buf.st_mode))
-        {
-            gtkpod_warning(_("The path given as the podcast directory is not a directory."));
-            return;
-        }
-    }
-*/
-
-    podcast_log(_("Beginning to fetch podcasts"));
-    cfgdir = prefs_get_cfgdir ();
-
-    if (cfgdir)
-    {
-	GtkListStore *model;
-	GtkTreeIter iter;
-	GtkTreePath *path;
-	gchar *filename = g_strdup_printf("%s/tmp.xml", cfgdir);
-
-        while(i < g_list_length(podcasts))
-        {
-            podcast = g_list_nth_data(podcasts, i);
-            if (retrieve_url_to_path(podcast->url, filename))
-            {
-                status_msg = g_strdup_printf("Could not fetch '%s' (%d of %d metafiles)", podcast->name, (i+1), g_list_length(podcasts));
-                podcast_log(_(status_msg));
-                podcast_set_status(_(status_msg));
-                g_free(status_msg);
-            } else {
-                found = parse_file_for_podcast_files(filename);
-                if (found == 1)
-                  status_msg = g_strdup_printf("Fetched '%s' (%d of %d metafiles), finding %d new podcast", podcast->name, (i+1), g_list_length(podcasts), found);
-                else
-                  status_msg = g_strdup_printf("Fetched '%s' (%d of %d metafiles), finding %d new podcasts", podcast->name, (i+1), g_list_length(podcasts), found);
-
-                podcast_log(_(status_msg));
-                podcast_set_status(_(status_msg));
-                g_free(status_msg);
-            }
-            unlink(filename);
-            ++i;
-        }
-        g_free(filename);
-        i = 0;
-
-        gdk_threads_enter();
-
-	model = GTK_LIST_STORE(gtk_tree_view_get_model(podcast_list));
-
-        gtk_list_store_clear (model);
-
-        transfer_total = 0;
-        while(i < g_list_length(podcast_files))
-        {
-            podcast_file = g_list_nth_data(podcast_files, i);
-            if (podcast_file->tofetch)
-            {
-                status_msg = g_strdup_printf("%.2fMb", (double) podcast_file->size / 1024 / 1024);
-                transfer_total += podcast_file->size;
-                gtk_list_store_append (model, &iter);
-                gtk_list_store_set (model, &iter,
-                                    PCL_TITLE, podcast_file->title,
-                                    PCL_URL, podcast_file->url,
-                                    PCL_SIZE, status_msg,
-                                    PCL_PROGRESS, "Pending",
-                                    -1);
-                g_free(status_msg);
-            }
-            ++i;
-        }
-
-        gdk_threads_leave();
-        while (gtk_events_pending())  gtk_main_iteration();
-
-        i = 0;
-        while(i < g_list_length(podcast_files))
-        {
-            podcast_file = g_list_nth_data(podcast_files, i);
-            if (podcast_file->tofetch)
-            {
-                path = gtk_tree_path_new_from_indices(i, -1);
-                gtk_tree_model_get_iter(GTK_TREE_MODEL(model), &iter, path);
-                gtk_tree_path_free(path);
-
-                /* gtk_list_store_set(model, &iter, PCL_PROGRESS, "Fetching");*/
-
-                filename = choose_filename(podcast_file->url);
-                status_msg = g_strdup_printf("Starting download of '%s' to '%s' (%ld bytes)", podcast_file->url, filename, podcast_file->size);
-                podcast_log(_(status_msg));
-                g_free(status_msg);
-                if (retrieve_url_to_path(podcast_file->url, filename))
-                {
-		    /*           gtk_list_store_set(model, &iter, PCL_PROGRESS, "Failed");*/
-                    status_msg = g_strdup_printf("Could not fetch '%s'", podcast_file->title);
-                    podcast_log(_(status_msg));
-                    podcast_set_status(_(status_msg));
-                    g_free(status_msg);
-                } else {
-		    /*            gtk_list_store_set(model, &iter, PCL_PROGRESS, "Done");*/
-                    transfer_done += podcast_file->size;
-                    podcast_file->tofetch = FALSE;
-                    podcast_file->fetched = TRUE;
-                    g_free(podcast_file->local);
-                    podcast_file->local = g_strdup(filename);
-                    status_msg = g_strdup_printf("Fetched '%s'", podcast_file->title);
-                    podcast_log(_(status_msg));
-                    podcast_set_status(_(status_msg));
-                    g_free(status_msg);
-
-                    add_track_by_filename (itdb, filename, NULL, FALSE, NULL, NULL);
-                    
-                }
-                g_free(filename);
-            }
-	    /*        gtk_tree_model_iter_next (GTK_TREE_MODEL(model), &iter);*/
-	    podcast_file_write_to_file();
-            ++i;
-        }
-
-    }
-    podcast_log(_("Completed fetch"));
-    podcast_set_status(_("Completed fetch"));
-
-    podcast_fetch_in_progress = FALSE;
-}
-
-static gchar *choose_filename(gchar *url)
-{
-    gchar *pc_dir;
-    gchar *working;
-
-    g_return_val_if_fail (g_strrstr (url, G_DIR_SEPARATOR_S), NULL);
-
-    pc_dir = prefs_get_pc_dir();
-
-    working = g_build_filename (pc_dir, g_strrstr(url, "/")+1,
-				NULL);
-
-    /* Make sure pc_dir exists */
-    if (!g_file_test (pc_dir, G_FILE_TEST_IS_DIR))
-    {
-	if (!mkdirhier (pc_dir))
-	{
-	    gtkpod_warning (_("Could not create podcast download directory '%s'\n"), pc_dir);
-	}
-    }
-    g_free (pc_dir);
-    return working;
-}
-
-static gint retrieve_url_to_path (gchar *url, gchar *path)
-{
-    int ret = 0;
-
-    CURL *curl;
-    CURLM *curlm;
-
-    gdk_threads_enter();
-    podcast_set_cur_file_name(url);
-    gdk_threads_leave();
-
-    curl = curl_easy_init();
-    curlm = curl_multi_init();
-
-    url_being_fetched = g_strdup(url);
-
-    if (curl)
-    {
-	FILE *fp = fopen(path, "w");
-
-	if (fp != NULL)
-	{
-	    int running_handles = 1;
-
-	    curl_easy_setopt(curl, CURLOPT_PROGRESSFUNCTION, update_progress);
-	    curl_easy_setopt(curl, CURLOPT_NOPROGRESS, FALSE);
-	    curl_easy_setopt(curl, CURLOPT_PROGRESSDATA, NULL);
-	    curl_easy_setopt(curl, CURLOPT_URL, url);
-	    curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1);
-	    curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp);
-	    curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, 15);
-
-	    curl_multi_add_handle(curlm, curl);
-
-	    while (running_handles > 0)
-	    {
-		curl_multi_perform(curlm, &running_handles);
-		while (gtk_events_pending())  gtk_main_iteration();
-	    }
-
-	    fclose(fp);
-	}
-	else
-	{
-	    gtkpod_warning (_("Could not open '%s' for writing podcast download.\n"), path);
-	    ret = -1;
-	}
-
-	g_free(url_being_fetched);
-	url_being_fetched = NULL;
-
-	curl_easy_cleanup(curl);
-	curl_global_cleanup();
-    }
-    return ret;
-}
-
-int update_progress(gpointer *data,
-                    double t, /* dltotal */
-                    double d, /* dlnow */
-                    double ultotal,
-                    double ulnow)
-{
-    gchar *tmp;
-
-/*  printf("%d / %d (%g %%)\n", d, t, d*100.0/t);*/
-
-/*if (t == 0)
-{
-    gtk_progress_bar_pulse(GTK_PROGRESS_BAR (glade_xml_get_widget (podcast_window_xml, "file_progressbar")));
-    while (gtk_events_pending())  gtk_main_iteration();
-}*/
-
-    if (t == 0 || transfer_total == 0) return 0;
-    if (d/t > 1 || (d+transfer_done)/transfer_total > 1) return 0;
-    gdk_threads_enter();
-    gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR (gtkpod_xml_get_widget (podcast_window_xml, "file_progressbar")), d/t);
-    gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR (gtkpod_xml_get_widget (podcast_window_xml, "total_progressbar")), (d+transfer_done)/transfer_total);
-    tmp = g_strdup_printf("%.2fMb of %.2fMb (%.0f%%), 12:32 remaining", (double) (d+transfer_done)/1024/1024, (double) transfer_total/1024/1024, 100*(d+transfer_done)/transfer_total);
-    gtk_progress_bar_set_text(GTK_PROGRESS_BAR (gtkpod_xml_get_widget (podcast_window_xml, "total_progressbar")), tmp);
-    g_free(tmp);
-
-    gdk_threads_leave();
-    while (gtk_events_pending())  gtk_main_iteration();
-    return 0;
-}
-
-static gint parse_file_for_podcast_files(gchar *file)
-{
-    /* This function will get all the information we want  *
-     * but it does so ignoring all heirachies in the file. */
-    FILE *fp = NULL;
-    gchar buf[20000], cur;
-    gint i = 0, found = 0;
-    gboolean is_xml = FALSE, is_rss = FALSE;
-    gchar *tag = NULL, *info = NULL, *value = NULL, *status_msg = NULL, *local = NULL;
-
-    gchar *title = NULL, *desc = NULL, *url = NULL, *artist = NULL;
-    glong size;
-    gboolean tofetch = TRUE, fetched = FALSE;
-    gboolean looking_for_cdata_end = FALSE;
-
-    if((fp = fopen(file, "r")))
-    {
-        while (fgetc(fp) != 0x3C && !feof(fp)) {}     /* search for our first '<' */
-
-        while (!feof(fp))
-        {
-            while ((cur = fgetc(fp)))
-            {
-                looking_for_cdata_end = FALSE;
-                if (cur != 0x20 && cur !=0x3E)            /* a space or a '>' will denote the end of the tag name */
-                {
-                    buf[i++] = cur;
-                    if (i == 8)
-                    {
-                        buf[i] = 0;
-                        if (strcasecmp(buf, "![CDATA[") == 0)
-                          {  looking_for_cdata_end = TRUE; i = 0; }
-                    }
-                } else {
-                    break;
-                }
-                if (looking_for_cdata_end) break;
-            }
-
-            if (!looking_for_cdata_end)
-            {
-
-                buf[i++] = 0;
-                tag = strdup(buf);                          /* retrieve the tag name from the buffer */
-                i = 0;
-
-                while (cur != 0x3E)                         /* make our way to the end of the tag */
-                {
-                    cur = fgetc(fp);
-                    buf[i++] = cur;
-                }
-
-                if (i > 0)
-                {
-                    buf[i] = 0;
-                    info = strdup(buf);
-                    i = 0;
-                }
-
-            }
-
-            while ((cur = fgetc(fp)))
-            {
-                if (feof(fp)) break;
-
-                if (!(cur == 0x3C && !looking_for_cdata_end))  /* if we're in a CDATA, we're looking for the end of a tag */
-                {
-                     buf[i++] = cur;
-                }
-                else
-                { break; }
-
-                if (buf[i-3] == 0x5D && buf[i-2] == 0x5D && buf[i-1] == 0x3E && looking_for_cdata_end)
-                {
-                    i -= 3;
-                    looking_for_cdata_end = 0;
-                }
-            }
-
-            buf[i++] = 0;
-            value = g_strdup(buf);
-            i = 0;
-            if (g_ascii_strcasecmp (tag, "?xml") == 0)
-                is_xml = TRUE;
-            if (g_ascii_strcasecmp (tag, "rss") == 0)
-                is_rss = TRUE;
-            if (g_ascii_strcasecmp (tag, "title") == 0)
-                { g_free(title);  title = g_strdup(value); }
-            if (g_ascii_strcasecmp (tag, "itunes:author") == 0)
-                { g_free(artist); artist = g_strdup(value); }
-            if (g_ascii_strcasecmp (tag, "description") == 0)
-                { g_free(desc);   desc = g_strdup(value); }
-            if (g_ascii_strcasecmp (tag, "gtkpod:tofetch") == 0)
-                tofetch = atoi(value);
-            if (g_ascii_strcasecmp (tag, "gtkpod:fetched") == 0)
-                fetched = atoi(value);
-            if (g_ascii_strcasecmp (tag, "gtkpod:local") == 0)
-                { g_free(local);  local = g_strdup(value); }
-            if (strcasecmp (tag, "enclosure") == 0)
-            {
-                url = podcast_get_tag_attr(info, "url=");
-                info = podcast_get_tag_attr(info, "length=");
-                size = atoi(info);
-            }
-	    else
-	    {
-		size = 0;
-	    }
-
-            if (g_ascii_strcasecmp (tag, "/item") == 0)
-            {
-                if (!podcast_already_have_url(url))
-                {
-                    podcast_file_add(title, url,
-                                     desc, artist,
-                                     NULL, NULL,
-                                     size, local,
-                                     fetched, tofetch);
-                    tofetch = TRUE; fetched = FALSE;
-                    found++;
-                    status_msg = g_strdup_printf("  Found and added '%s'", url);
-                    podcast_log(_(status_msg));
-                    g_free(status_msg);
-                } else {
-                    status_msg = g_strdup_printf("  Found but already have '%s'", url);
-                    podcast_log(_(status_msg));
-                    g_free(status_msg);
-                }
-            }
-
-/*            g_free(value);
-	      g_free(tag);
-	      g_free(info);*/
-        }
-        fclose(fp);
-    } else {
-	/*    gtkpod_warning(_("Failed to open '%s' to read podcast list."), file);
-            gchar *status_msg = g_strdup_printf("Error number is: %d", errno);
-            gtkpod_statusbar_message(_(status_msg));*/
-
-    }
-
-    return found;
-}
-
-gchar *podcast_get_tag_attr(gchar *attrs, gchar *req)
-{
-    char *ret = strstr(attrs, req) + strlen(req);
-    char *ret2 = g_strndup(ret, strstr(ret, " ") - ret);            /* unless malformed, the end of this tag
-                                                                     reads: ' />'. That space has to be there */
-    if ((*ret2) == 0x27 && *(ret2 + strlen(ret2) - 1) == 0x27)
-    {
-        ++ret2;
-        *(ret2 + strlen(ret2) - 1) = 0x00;
-    }
-    if ((*ret2) == 0x22 && *(ret2 + strlen(ret2) - 1) == 0x22)
-    {
-        ++ret2;
-        *(ret2 + strlen(ret2) - 1) = 0x00;
-    }
-    return g_strdup(ret2);
-}
-
-static void podcast_log (gchar *msg)
-{
-    if (prefs_get_pc_log())
-    {
-        FILE *fp = NULL;
-        gchar *filename = prefs_get_pc_log_file();
-        time_t rawtime;
-        struct tm * timeinfo;
-
-        time ( &rawtime );
-        timeinfo = localtime ( &rawtime );
-
-        fp = fopen(filename, "a");
-        if (fp)
-        {
-            fprintf (fp, "%s: %s\n", asctime (timeinfo), msg);
-            fclose(fp);
-        }
-
-        g_free(filename);
-    }
-}
-
-gboolean
-on_podcast_window_delete_event         (GtkWidget       *widget,
-                                        GdkEvent        *event,
-                                        gpointer         user_data)
-{
-  if (podcast_fetch_in_progress)
-  {
-/*    GtkWidget *dialog, *label;
-    dialog = gtk_dialog_new_with_buttons ("Notice",
-                                          NULL,
-                                          GTK_DIALOG_DESTROY_WITH_PARENT,
-                                          GTK_STOCK_OK,
-                                          GTK_RESPONSE_NONE,
-                                          NULL);
-    label = gtk_label_new ("You cannot close this window until all downloads have finished or you click 'Abort All'");
-    g_signal_connect_swapped (dialog,
-                              "response", 
-                              G_CALLBACK (gtk_widget_destroy),
-                              dialog);
-    gtk_container_add (GTK_CONTAINER (GTK_DIALOG(dialog)->vbox),
-                       label);
-    gtk_widget_show_all (dialog); */
-  }
-  return podcast_fetch_in_progress;
-}
-
-gboolean
-on_abort_selected_button_clicked       (GtkWidget       *widget,
-                                        gpointer         user_data)
-{
-  abort_fetch(ABORT_SELECTED);
-  return FALSE;
-}
-
-gboolean
-on_abort_current_button_clicked        (GtkWidget       *widget,
-                                        gpointer         user_data)
-{
-  abort_fetch(ABORT_CURRENT);
-  return FALSE;
-}
-
-gboolean
-on_abort_all_button_clicked            (GtkWidget       *widget,
-                                        gpointer         user_data)
-{
-  abort_fetch(ABORT_ALL);
-  return FALSE;
-}
-
-static void abort_fetch (gint what)
-{
-    GtkWidget *dialog, *label;
-    struct podcast_file *podcast_file = NULL;
-
-    switch (what)
-    {
-        case ABORT_SELECTED :
-/*            GtkTreeModel *model;
-	      GtkTreeIter   iter;
-	      gchar *url;
-
-	      model = gtk_tree_view_get_model(podcast_list);
-	      gtk_tree_model_get_iter(model, &iter);
-	      gtk_tree_model_get (model, &iter, PCL_TITLE, &url, -1);*/
-            break;
-
-        case ABORT_CURRENT :
-            if (url_being_fetched)
-                abort_urls_to_add = g_list_append(abort_urls_to_add, g_strdup(url_being_fetched));
-            break;
-        case ABORT_ALL :
-            podcast_files = g_list_first(podcast_files);
-            do
-            {
-                podcast_file = podcast_files->data;
-                if (podcast_file->tofetch)
-                    abort_urls_to_add = g_list_append(abort_urls_to_add, g_strdup(podcast_file->url));
-            } while ((podcast_files = g_list_next(podcast_files)));
-            break;
-    }
-
-    if (g_list_length(abort_urls_to_add) == 0) return;
-
-    dialog = gtk_dialog_new_with_buttons ("Aborting podcast fetching",
-                                          GTK_WINDOW(podcast_window),
-                                          GTK_DIALOG_DESTROY_WITH_PARENT,
-                                          GTK_STOCK_YES,
-                                          GTK_RESPONSE_YES,
-                                          GTK_STOCK_NO,
-                                          GTK_RESPONSE_NO,
-                                          GTK_STOCK_CANCEL,
-                                          GTK_RESPONSE_CANCEL,
-                                          NULL);
-    label = gtk_label_new("You have chosen to abort one or more podcasts.\nWould you like these to be aborted permanently?\n");
-    
-    g_signal_connect(dialog, "response", G_CALLBACK(abort_fetch_response), NULL);
-
-    gtk_container_add(GTK_CONTAINER (GTK_DIALOG(dialog)->vbox), label);
-    gtk_widget_show_all(dialog);
-}
-
-
-static void abort_fetch_response           (GtkDialog *dialog,
-                                            gint arg1,
-                                            gpointer user_data)
-{
-    gtk_widget_destroy(GTK_WIDGET(dialog));
-
-    switch (arg1)
-    {
-        case GTK_RESPONSE_YES :
-            break;
-        case GTK_RESPONSE_NO :
-            break;
-        case GTK_RESPONSE_CANCEL :
-            return;
-            break;
-    }
-    abort_urls = g_list_concat(abort_urls, abort_urls_to_add);
-}
-
-static void
-podcast_window_create(void)
-{
-/*    if (podcast_window)
-    {    podcast window already open -- raise to the top 
-        gdk_window_raise (podcast_window->window);
-        return;
-    } */
-
-    podcast_window_xml = glade_xml_new (xml_file, "podcast_window", NULL);
-    glade_xml_signal_autoconnect (podcast_window_xml);
-
-    podcast_window = gtkpod_xml_get_widget(podcast_window_xml,"podcast_window");
-
-    g_return_if_fail (podcast_window);
-
-    create_podcast_list();
-
-    gtk_widget_show(podcast_window);
-
-}
-
-static void create_podcast_list ()
-{
-    GtkCellRenderer     *renderer;
-    GtkTreeModel        *model;
-    GtkWidget *podcast_list_window;
-
-    podcast_list = GTK_TREE_VIEW(gtk_tree_view_new ());
-/*    gtk_widget_set_size_request(GTK_WIDGET (podcast_list), 270, 105);*/
-
-    renderer = gtk_cell_renderer_text_new ();
-    gtk_tree_view_insert_column_with_attributes (podcast_list,
-                                                 -1,
-                                                 "Title",
-                                                 renderer,
-                                                 "text", PCL_TITLE,
-                                                 NULL);
-
-    renderer = gtk_cell_renderer_text_new ();
-    gtk_tree_view_insert_column_with_attributes (podcast_list,
-                                                 -1,
-                                                 "URL",
-                                                 renderer,
-                                                 "text", PCL_URL,
-                                                 NULL);
-
-    renderer = gtk_cell_renderer_text_new ();
-    gtk_tree_view_insert_column_with_attributes (podcast_list,
-                                                 -1,
-                                                 "Size",
-                                                 renderer,
-                                                 "text", PCL_SIZE,
-                                                 NULL);
-
-    renderer = gtk_cell_renderer_text_new ();
-    gtk_tree_view_insert_column_with_attributes (podcast_list,
-                                                 -1,
-                                                 "Progress",
-                                                 renderer,
-                                                 "text", PCL_PROGRESS,
-                                                 NULL); 
-
-    model = GTK_TREE_MODEL(gtk_list_store_new (PCL_NUM_COLS, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING));
-    gtk_tree_view_set_model (GTK_TREE_VIEW (podcast_list), model);
-
-    /* The tree view has acquired its own reference to the
-     *  model, so we can drop ours. That way the model will
-     *  be freed automatically when the tree view is destroyed */
-
-    g_object_unref (model);
-
-    podcast_list_window = gtkpod_xml_get_widget (podcast_window_xml, "podcast_list_window");
-
-    gtk_container_add (GTK_CONTAINER (podcast_list_window), GTK_WIDGET(podcast_list));
-if(podcast_list_window)
-    gtk_widget_show_all (podcast_list_window);
-return;
-}
-
-
-
-
-void podcast_set_status(gchar *status)
-{
-    gdk_threads_enter();
-    gtk_label_set_text (GTK_LABEL (gtkpod_xml_get_widget (podcast_window_xml, "status_label")), status);
-    gdk_threads_leave();
-    while (gtk_events_pending())  gtk_main_iteration();
-}
-
-void podcast_set_cur_file_name(gchar *text)
-{
-    if (g_strrstr(text, "/"))
-    {
-        gchar *working = g_strdup_printf("%s", g_strrstr(text, "/")+1);
-        gtk_progress_bar_set_text (GTK_PROGRESS_BAR (gtkpod_xml_get_widget (podcast_window_xml, "file_progressbar")), working);
-        g_free(working);
-    }
-}
-#endif

Modified: gtkpod/branches/upstream/current/src/podcast.h
===================================================================
--- gtkpod/branches/upstream/current/src/podcast.h	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/src/podcast.h	2006-09-30 00:00:17 UTC (rev 139)
@@ -1,6 +1,6 @@
-/* Time-stamp: <2005-12-14 23:10:59 jcs>
+/* Time-stamp: <2006-05-21 12:26:46 jcs>
 |
-|  Copyright (C) 2002-2005 Alexander Dutton <alexdutton at f2s dot com>
+|  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
 |  Part of the gtkpod project.
 |
 |  URL: http://www.gtkpod.org/
@@ -24,44 +24,10 @@
 |
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: podcast.h,v 1.6 2005/12/14 14:58:55 jcsjcs Exp $
+|  $Id: podcast.h,v 1.8 2006/05/21 03:46:45 jcsjcs Exp $
 */
 
 #ifndef __PODCAST_H__
 #define __PODCAST_H__
 
-/* FIXME: PODCASTS: remove Podcast menu */
-#if 0
-enum
-{
-  PC_SUBS_NAME = 0,
-  PC_SUBS_URL,
-  PC_SUBS_NUM_COLS
-};
-
-
-gboolean podcast_fetch_in_progress;
-
-void podcast_write_from_store (GtkListStore *store);
-void podcast_read_into_store (GtkListStore *store);
-void podcast_read_from_file ();
-
-void podcast_file_add (gchar *title, gchar *url, 
-                       gchar *desc, gchar *artist, 
-                       gchar pubdate[14], gchar fetchdate[14], 
-                       glong size, gchar *local,
-                       gboolean fetched, gboolean tofetch);
-void podcast_file_delete_by_url (gchar *url);
-gint podcast_file_read_from_file();
-
-gboolean podcast_already_have_url (gchar *url);
-GList *podcast_file_find_to_fetch ();
-void podcast_fetch ();
-void podcast_fetch_thread ();
-
-gchar *podcast_get_tag_attr(gchar *attrs, gchar *req);
-
-void podcast_set_status(gchar *status);
-void podcast_set_cur_file_name(gchar *text);
 #endif
-#endif

Modified: gtkpod/branches/upstream/current/src/prefs.c
===================================================================
--- gtkpod/branches/upstream/current/src/prefs.c	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/src/prefs.c	2006-09-30 00:00:17 UTC (rev 139)
@@ -1,6 +1,7 @@
-/* Time-stamp: <2006-02-04 21:00:33 jcs>
+/* Time-stamp: <2006-09-24 20:49:39 jcs>
 |
 |  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
+|  Copyright (C) 2006 James Liggett <jrliggett at cox.net>
 |  Part of the gtkpod project.
 |
 |  URL: http://www.gtkpod.org/
@@ -24,7 +25,7 @@
 |
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: prefs.c,v 1.157 2006/02/04 12:04:52 jcsjcs Exp $
+|  $Id: prefs.c,v 1.270 2006/09/24 12:16:26 jcsjcs Exp $
 */
 
 /* -------------------------------------------------------------------
@@ -33,46 +34,23 @@
  *
  * - add the desired option to the prefs window using glade-2
  *
- * - modify the cfg structure in prefs.h accordingly
+ * - set the default value of new_option in set_default_preferences() in prefs.c
  *
- * - set the default value of new_option in cfg_new() in prefs.c
- *
- * - add function prefs_get_new_option() and
- *   prefs_set_new_option() to prefs.[ch]. These functions are
- *   called from within gtkpod to query/set the state of the option.
- *   prefs_set_new_option() should verify that the value passed is
- *   valid.
- *
  * - add a callback on_new_option_*() to prefs_windows.c to set the
- *   new value in the temporary prefs struct.
+ *   new value.
  *   The value is applied to the actual prefs when pressing the "OK"
  *   or "Apply" button in the prefs window.
  *
- * - if your option is a pointer to data, make sure the data is copied
- *   in clone_prefs() in prefs.c
- *
  * - add code to prefs_window_create() in prefs_window.c to set the
  *   correct state of the option in the prefs window.
  *
- * - add code to prefs_window_set() in prefs_window.c to actually take
- *   over the new state when closing the prefs window
- *
- * - add code to write_prefs_to_file_desc() to write the state of
- *   new_option to the prefs file
- *
- * - add code to read_prefs_from_file_desc() to read the
- *   new_option from the prefs file
- *
  * - if you want new_option to be a command line option as well, add
- *   code to usage() and read_prefs()
+ *   code to usage() and read_commandline().
  *
+ * - for environment variables, add code to read_environment().
+ *
  * ---------------------------------------------------------------- */
 
-/* FIXME: simplify code to make adding of new options easier:
-		  prefs_window_create()
-		  write_prefs_to_file_desc()
-		  read_prefs_from_file_desc()
-*/
 
 /* This tells Alpha OSF/1 not to define a getopt prototype in <stdio.h>.
    Ditto for AIX 3.2 and <stdlib.h>.  */
@@ -84,6 +62,7 @@
 #  include <config.h>
 #endif
 
+#include <ctype.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -102,2994 +81,1916 @@
 #include "misc.h"
 #include "misc_track.h"
 #include "prefs.h"
-#include "podcast.h"
 
-/* static function declarations */
-static void prefs_write_hash_values (FILE *fp);
+/* New prefs backend. Will replace stuff above */
 
-/* config struct */
-static struct cfg *cfg = NULL;
+/*
+ * Data global to this module only
+ */
 
+/* End-of-list marker for variable-length lists */
+#define LIST_END_MARKER "----++++----"
+
+struct sub_data
+{
+    TempPrefs *temp_prefs;
+    TempPrefs *temp_prefs_orig;
+    const gchar *subkey;
+    const gchar *subkey2;
+    gboolean exists;
+};
+
+/* Pointer to prefrences hash table */
+static GHashTable *prefs_table = NULL;
+
+/*
+ * Functions used by this module only
+ */
+void discard_prefs (void);
+
+/* Different paths that can be set in the prefs window */
+typedef enum
+{
+    PATH_PLAY_NOW = 0,
+    PATH_PLAY_ENQUEUE,
+    PATH_MP3GAIN,
+    PATH_SYNC_CONTACTS,
+    PATH_SYNC_CALENDAR,
+    PATH_MSERV_MUSIC_ROOT,
+    PATH_MSERV_TRACKINFO_ROOT,
+    PATH_SYNC_NOTES,
+    PATH_AACGAIN,
+    PATH_NUM
+} PathType;
+
 /* enum for reading of options */
 enum {
   GP_HELP,
   GP_PLAYCOUNT,
   GP_MOUNT,
   GP_AUTO,
-  GP_OFFLINE
 };
 
-
-/* need to convert to locale charset before printing to console */
-#define usage_fpf(file, ...) do { gchar *utf8=g_strdup_printf (__VA_ARGS__); gchar *loc=g_locale_from_utf8 (utf8, -1, NULL, NULL, NULL); fprintf (file, "%s", loc); g_free (loc); g_free (utf8);} while (FALSE)
-
-static void usage (FILE *file)
+/* Set default prefrences */
+static void set_default_preferences()
 {
-  usage_fpf(file, _("gtkpod version %s usage:\n"), VERSION);
-  usage_fpf(file, _("  -h, --help:   display this message\n"));
-  usage_fpf(file, _("  -p <filename>:increment playcount for file by one\n"));
-  usage_fpf(file, _("  -m path:      define the mountpoint of your iPod\n"));
-  usage_fpf(file, _("  --mountpoint: same as '-m'.\n"));
-  usage_fpf(file, _("  -a:           import database automatically after start.\n"));
-  usage_fpf(file, _("  --auto:       same as '-a'.\n"));
-  usage_fpf(file, _("  -o:           use offline mode. No changes are exported to the iPod,\n                but to ~/.gtkpod/ instead. iPod is updated if 'Sync' is\n                used with 'Offline' deactivated.\n"));
-  usage_fpf(file, _("  --offline:    same as '-o'.\n"));
-}
+    int i;
+    gchar *dir; /* Last directory browsed to */
 
-
-struct cfg *cfg_new(void)
-{
-    struct cfg *mycfg = NULL;
-    gchar curdir[PATH_MAX], *str;
-    gchar *cfgdir;
-    gint i;
-
-    cfgdir = prefs_get_cfgdir ();
-
-    mycfg = g_malloc0 (sizeof (struct cfg));
-    if(getcwd(curdir, PATH_MAX))
+    prefs_set_int("update_existing", FALSE);
+    prefs_set_int("id3_write", FALSE);
+    prefs_set_int("id3_write_id3v24", FALSE);
+    prefs_set_int(KEY_SYNC_DELETE_TRACKS, TRUE);
+    prefs_set_int(KEY_SYNC_CONFIRM_DELETE, TRUE);
+    prefs_set_int(KEY_SYNC_SHOW_SUMMARY, TRUE);
+    prefs_set_int("show_duplicates", TRUE);
+    prefs_set_int("show_non_updated", TRUE);
+    prefs_set_int("show_updated", TRUE);
+    prefs_set_int("mserv_report_probs", TRUE);
+    prefs_set_int("delete_ipod", TRUE);
+    prefs_set_int("delete_file", TRUE);
+    prefs_set_int("delete_local_file", TRUE);
+    prefs_set_int("delete_database", TRUE);
+    prefs_set_string("initial_mountpoint", "/mnt/ipod");
+    prefs_set_string ("path_play_now", "xmms %s");
+    prefs_set_string ("path_play_enqueue", "xmms -e %s");
+    prefs_set_string ("path_mserv_trackinfo_root", "/var/lib/mserv/trackinfo/");
+  
+    /* Set sorting tab defaults */
+    for (i = 0; i < SORT_TAB_MAX; i++)
     {
-	mycfg->last_dir.browse = g_strdup (curdir);
+	prefs_set_int_index("st_autoselect", i, TRUE);
+	prefs_set_int_index("st_category", i, (i < ST_CAT_NUM ? i : 0));
+	prefs_set_int_index("sp_or", i, FALSE);
+	prefs_set_int_index("sp_rating_cond", i, FALSE);
+	prefs_set_int_index("sp_playcount_cond", i, FALSE);
+	prefs_set_int_index("sp_played_cond", i, FALSE);
+	prefs_set_int_index("sp_modified_cond", i, FALSE);
+	prefs_set_int_index("sp_added_cond", i, FALSE);
+	prefs_set_int_index("sp_rating_state", i, 0);
+	prefs_set_string_index("sp_played_state", i, ">4w");
+	prefs_set_string_index("sp_modified_state", i, "<1d");
+	prefs_set_string_index("sp_added_state", i, "<1d");
+	prefs_set_int_index("sp_playcount_low", i, 0);
+	prefs_set_int_index("sp_playcount_high", i, -1);
+	prefs_set_int_index("sp_autodisplay", i, FALSE);
     }
-    else
+    
+    prefs_set_int("sort_tab_num", 2);
+    
+    /* Set colum prefrences */
+    for (i = 0; i < TM_NUM_COLUMNS; i++)
     {
-	mycfg->last_dir.browse = convert_filename ("~/");
+	prefs_set_int_index("tm_col_width", i, 80);
+	prefs_set_int_index("col_visible", i, FALSE);
+	prefs_set_int_index("col_order", i, i);
     }
-    if((str = getenv("IPOD_MOUNTPOINT")))
-    {
-	mycfg->ipod_mount = convert_filename (str);
-    }
-    else
-    {
-	mycfg->ipod_mount = g_strdup("/mnt/ipod");
-    }
+		
+    for (i = 0; i < TM_NUM_TAGS_PREFS; i++)
+	prefs_set_int_index("tag_autoset", i, FALSE);
+		
+    prefs_set_int_index("tag_autoset", TM_COLUMN_TITLE, TRUE);
+    
+    prefs_set_int_index("col_visible", TM_COLUMN_ARTIST, TRUE);
+    prefs_set_int_index("col_visible", TM_COLUMN_ALBUM, TRUE);
+    prefs_set_int_index("col_visible", TM_COLUMN_TITLE, TRUE);
+    prefs_set_int_index("col_visible", TM_COLUMN_GENRE, TRUE);
+    prefs_set_int_index("col_visible", TM_COLUMN_PLAYCOUNT, TRUE);
+    prefs_set_int_index("col_visible", TM_COLUMN_RATING, TRUE);
 
-    mycfg->charset = NULL;
-    mycfg->deletion.track = TRUE;
-    mycfg->deletion.ipod_file = TRUE;
-    mycfg->deletion.local_file = TRUE;
-    mycfg->deletion.database = TRUE;
-    mycfg->deletion.syncing = TRUE;
-    mycfg->md5tracks = TRUE;
-    mycfg->update_existing = FALSE;
-    mycfg->block_display = FALSE;
-    mycfg->autoimport = FALSE;
-    for (i=0; i<SORT_TAB_MAX; ++i)
-    {
-	mycfg->st[i].autoselect = TRUE;
-	mycfg->st[i].category = (i<ST_CAT_NUM ? i:0);
-	mycfg->st[i].sp_or = FALSE;
-	mycfg->st[i].sp_rating = FALSE;
-	mycfg->st[i].sp_rating_state = 0;
-	mycfg->st[i].sp_playcount = FALSE;
-	mycfg->st[i].sp_playcount_low = 0;
-	mycfg->st[i].sp_playcount_high = -1;
-	mycfg->st[i].sp_played = FALSE;
-	mycfg->st[i].sp_played_state = g_strdup (">4w");
-	mycfg->st[i].sp_modified = FALSE;
-	mycfg->st[i].sp_modified_state = g_strdup ("<1d");
-	mycfg->st[i].sp_added = FALSE;
-	mycfg->st[i].sp_added_state = g_strdup ("<1d");
-	mycfg->st[i].sp_autodisplay = FALSE;
-    }
-    mycfg->mpl_autoselect = TRUE;
-    mycfg->offline = FALSE;
-    mycfg->write_extended_info = TRUE;
-    mycfg->id3_write = FALSE;
-    mycfg->id3_write_id3v24 = FALSE;
-    mycfg->size_gtkpod.x = 600;
-    mycfg->size_gtkpod.y = 500;
-    mycfg->size_cal.x = 500;
-    mycfg->size_cal.y = 350;
-    mycfg->size_conf_sw.x = 300;
-    mycfg->size_conf_sw.y = 300;
-    mycfg->size_conf.x = 300;
-    mycfg->size_conf.y = -1;
-    mycfg->size_dirbr.x = 300;
-    mycfg->size_dirbr.y = 400;
-    mycfg->size_prefs.x = -1;
-    mycfg->size_prefs.y = 480;
-    mycfg->size_info.x = 510;
-    mycfg->size_info.y = 300;
-    for (i=0; i<TM_NUM_COLUMNS; ++i)
-    {
-	mycfg->tm_col_width[i] = 80;
-	mycfg->col_visible[i] = FALSE;
-	mycfg->col_order[i] = i;
-    }
-    mycfg->col_visible[TM_COLUMN_ARTIST] = TRUE;
-    mycfg->col_visible[TM_COLUMN_ALBUM] = TRUE;
-    mycfg->col_visible[TM_COLUMN_TITLE] = TRUE;
-    mycfg->col_visible[TM_COLUMN_GENRE] = TRUE;
-    mycfg->col_visible[TM_COLUMN_PLAYCOUNT] = TRUE;
-    mycfg->col_visible[TM_COLUMN_RATING] = TRUE;
-    for (i=0; i<TM_NUM_TAGS_PREFS; ++i)
-    {
-	mycfg->autosettags[i] = FALSE;
-    }
-    mycfg->autosettags[TM_COLUMN_TITLE] = TRUE;
-    mycfg->readtags = TRUE;
-    mycfg->parsetags = FALSE;
-    mycfg->parsetags_overwrite = FALSE;
-    mycfg->parsetags_template = g_strdup ("%a - %A/%T %t.mp3;%t.wav");
-    mycfg->coverart = TRUE;
-    mycfg->coverart_template = g_strdup ("%A;folder.jpg");
-    for (i=0; i<PANED_NUM; ++i)
-    {
-	mycfg->paned_pos[i] = -1;  /* -1 means: let gtk worry about position */
-    }
-    mycfg->show_duplicates = TRUE;
-    mycfg->show_updated = TRUE;
-    mycfg->show_non_updated = TRUE;
-    mycfg->show_sync_dirs = TRUE;
-    mycfg->sync_remove = TRUE;
-    mycfg->display_toolbar = TRUE;
-    mycfg->toolbar_style = GTK_TOOLBAR_BOTH;
-    mycfg->display_tooltips_main = TRUE;
-    mycfg->display_tooltips_prefs = TRUE;
-    mycfg->update_charset = FALSE;
-    mycfg->write_charset = FALSE;
-    mycfg->add_recursively = TRUE;
-    mycfg->sort_tab_num = 2;
-    mycfg->last_prefs_page = 0;
-    mycfg->statusbar_timeout = STATUSBAR_TIMEOUT;
-    for (i=0; i<PATH_NUM; ++i)
-    {  /* the switch() will cause the compiler to complain if we
-	  forget to initialize one of the paths */
-	switch ((PathType)i)
-	{
-	case PATH_PLAY_NOW:
-	    mycfg->path[i] = g_strdup ("xmms %s"); break;
-	case PATH_PLAY_ENQUEUE:
-	    mycfg->path[i] = g_strdup ("xmms -e %s"); break;
-	case PATH_MP3GAIN:
-	case PATH_SYNC_CONTACTS:
-	case PATH_SYNC_CALENDAR:
-	case PATH_SYNC_NOTES:
-	case PATH_MSERV_MUSIC_ROOT:
-	    mycfg->path[i] = g_strdup (""); break;
-	case PATH_MSERV_TRACKINFO_ROOT:
-	    mycfg->path[i] = g_strdup ("/var/lib/mserv/trackinfo/");
-	case PATH_NUM:
-	    break;
-	}
-    }
-    mycfg->unused_gboolean3 = FALSE;
-    mycfg->concal_autosync = FALSE;
-    mycfg->tmp_disable_sort = TRUE;
-    mycfg->startup_messages = TRUE;
-    mycfg->automount = FALSE;
-    mycfg->info_window = FALSE;
-    mycfg->multi_edit = FALSE;
-    mycfg->multi_edit_title = TRUE;
-    mycfg->not_played_track = TRUE;
-    mycfg->misc_track_nr = 25;
-    mycfg->sortcfg.pm_sort = SORT_NONE;
-    mycfg->sortcfg.st_sort = SORT_NONE;
-    mycfg->sortcfg.tm_sort = SORT_NONE;
-    mycfg->sortcfg.tm_sortcol = TM_COLUMN_TITLE;
-    mycfg->sortcfg.pm_autostore = FALSE;
-    mycfg->sortcfg.tm_autostore = FALSE;
-    mycfg->sortcfg.case_sensitive = FALSE;
-    mycfg->mserv_use = FALSE;
-    mycfg->mserv_report_probs = TRUE;
-    mycfg->mserv_username = g_strdup ("");
+    /* Set pane positions--Let gtk worry about position */
+    for (i = 0; i < PANED_NUM; i++)
+	prefs_set_int_index("paned_pos_", i, -1);
+	
+    prefs_set_int("mpl_autoselect", TRUE);
+	
+    /* Set window sizes */
+    prefs_set_int("size_gtkpod.x", 600);
+    prefs_set_int("size_gtkpod.y", 500);
+    prefs_set_int("size_cal.x", 500);
+    prefs_set_int("size_cal.y", 300);
+    prefs_set_int("size_conf_sw.x", 300);
+    prefs_set_int("size_conf_sw.y", 300);
+    prefs_set_int("size_conf.x", 300);
+    prefs_set_int("size_conf.y", -1);
+    prefs_set_int("size_dirbr.x", 300);
+    prefs_set_int("size_dirbr.y", 400);
+    prefs_set_int("size_prefs.x", -1);
+    prefs_set_int("size_prefs.y", 480);
+    prefs_set_int("size_info.x", 510);
+    prefs_set_int("size_info.y", 300);
 
-    mycfg->pc_dir = g_build_filename (cfgdir, "podcasts", NULL);
-    mycfg->pc_del_age = FALSE;
-    mycfg->pc_del_age_val = 1;
-    mycfg->pc_del_copied = FALSE;
-    mycfg->pc_auto_fetch = FALSE;
-    mycfg->pc_log = TRUE;
-    mycfg->pc_log_file = g_build_filename (cfgdir, "podcast.log", NULL);
-    mycfg->pc_auto_sync = FALSE;
-    mycfg->pc_ipod_del_age = FALSE;
-    mycfg->pc_ipod_del_age_val = 1;
-    mycfg->pc_ipod_del_played = FALSE;
-    mycfg->pc_ipod_inc_date = FALSE;
-    mycfg->pc_change_genre = FALSE;
+    prefs_set_int("autoimport", FALSE);
+    prefs_set_int("readtags", TRUE);
+    prefs_set_int("write_extended_info", TRUE);
+    prefs_set_int("parsetags", FALSE);
+    prefs_set_int("parsetags_overwrite", FALSE);
+    prefs_set_string("parsetags_template", "%a - %A/%T %t.mp3;%t.wav");
+    prefs_set_int("coverart_apic", TRUE);
+    prefs_set_int("coverart_file", TRUE);
+    prefs_set_string("coverart_template", "%A;folder.jpg");
+    prefs_set_int("mserv_use", FALSE);
+    prefs_set_string("mserv_username", "");
+    prefs_set_int("startup_messages", TRUE);
+    prefs_set_int("add_recursively", TRUE);
+    prefs_set_int("info_window", FALSE);
+    prefs_set_int("last_prefs_page", 0);
+    prefs_set_int("tmp_disable_sort", TRUE);
+    prefs_set_int("multi_edit_title", TRUE);
+    prefs_set_int("multi_edit", FALSE);
+    prefs_set_int("not_played_track", TRUE);
+    prefs_set_int("misc_track_nr", 25);
+    prefs_set_int("update_charset", FALSE);
+    prefs_set_int("display_tooltips_main", TRUE);
+    prefs_set_int("display_tooltips_prefs", TRUE);
+    prefs_set_int("display_toolbar", TRUE);
+    prefs_set_int("toolbar_style", GTK_TOOLBAR_BOTH);
+    prefs_set_int("block_display", FALSE);
+    prefs_set_int("md5", TRUE);
+    prefs_set_string("export_template", "%o;%a - %t.mp3;%t.wav");
 
-    g_free (cfgdir);
+    /* Set last browsed directory */
+    dir = g_get_current_dir();
 
-    return(mycfg);
-}
-
-
-/* Compare strlen(@arg) chars of @arg with @line. Return strlen (@arg)
-   in @off if @off != NULL */
-static gint arg_comp (const gchar *line, const gchar *arg, gint *off)
-{
-    if (arg && line)
+    if (dir)
     {
-	gint len = strlen (arg);
-	if (off) *off = len;
-	return g_ascii_strncasecmp (line, arg, len);
+	prefs_set_string("last_dir_browsed", dir);
+	g_free(dir);
     }
     else
-    {
-	if (*off)   *off = 0;
-	return 0;
-    }
+	prefs_set_string("last_dir_browsed", g_get_home_dir());
+    
+    /* Set sorting prefs */
+    prefs_set_int("case_sensitive", FALSE);
+    prefs_set_int("tm_autostore", FALSE);
+    prefs_set_int("st_sort", SORT_NONE);
+    prefs_set_int("pm_sort", SORT_NONE);
+    prefs_set_int("tm_sortcol", TM_COLUMN_TITLE);
+    prefs_set_int("tm_sort_", SORT_NONE);
 }
 
-
-/* sort order was reversed between V0.82_CVS and V0.83.CVS */
-static gint correct_sort (gint sort)
+/* Initialize default variable-length list entries */
+static void set_default_list_entries()
 {
-    if (cfg && (cfg->version < 0.83))
+    if (!prefs_get_string_value_index("sort_ign_string_", 0, NULL))
     {
-	switch (sort)
-	{
-	case SORT_ASCENDING:
-	    sort = SORT_DESCENDING;
-	    break;
-	case SORT_DESCENDING:
-	    sort = SORT_ASCENDING;
-	    break;
-	}
+	prefs_set_string_index("sort_ign_string_", 0, "a ");
+	prefs_set_string_index("sort_ign_string_", 1, "an ");
+	prefs_set_string_index("sort_ign_string_", 2, LIST_END_MARKER);
     }
-    return sort;
 }
 
-/* default ignore strings -- must end with a space */
-static char* sort_ign_strings[] =
+/* A printf-like function that outputs in the system locale */
+static void locale_fprintf(FILE *fp, const gchar *format, ...)
 {
-    "the ",
-    "a ",
-/*    "le ", 
-    "la ", 
-    "les ", 
-    "lo ", 
-    "los ",
-    "der ",
-    "die ",
-    "das ",*/ /* will make sorting very slow -- only add the words you
-                 really want to skip */
-    SORT_IGNORE_STRINGS_END,  /* end marker */
-    NULL,
-};
+    gchar *utf8_string; /* Raw UTF-8 string */
+    gchar *locale_string;  /* String in system locale format */
+    va_list format_list;  /* Printf-like formatting arguments */
+	
+    /* Create the locale format string based on the given format */
+    va_start(format_list, format);
+    utf8_string = g_strdup_vprintf(format, format_list);
+    va_end(format_list);
+	
+    locale_string = g_locale_from_utf8 (utf8_string, -1, NULL, NULL, NULL);
+	
+    if (fp)
+	fprintf(fp, "%s", locale_string);
+	
+    g_free(utf8_string);
+    g_free(locale_string);
+}
 
-
-static void
-read_prefs_from_file_desc(FILE *fp)
+/* Print commandline usage information */
+static void usage(FILE *fp)
 {
-    gchar buf[PATH_MAX];
-    gchar *line, *arg, *bufp;
-    gint len, off, i;
+  locale_fprintf(fp, _("gtkpod version %s usage:\n"), VERSION);
+  locale_fprintf(fp, _("  -h, --help:   display this message\n"));
+  locale_fprintf(fp, _("  -p <filename>:increment playcount for file by one\n"));
+  locale_fprintf(fp, _("  -m path:      define the mountpoint of your iPod\n"));
+  locale_fprintf(fp, _("  --mountpoint: same as '-m'.\n"));
+  locale_fprintf(fp, _("  -a:           import database automatically after start.\n"));
+  locale_fprintf(fp, _("  --auto:       same as '-a'.\n"));
+}
 
-    /* set ignore strings */
-    for (i=0; sort_ign_strings[i]; ++i)
+/* Parse commandline based options */
+static void read_commandline(int argc, char *argv[])
+{
+    int option; /* Code returned by getopt */
+	
+    /* The options data structure. The format is standard getopt. */
+    struct option const options[] =
+	{
+	    { "h",           no_argument,	NULL, GP_HELP },
+	    { "help",        no_argument,	NULL, GP_HELP },
+	    { "p",           required_argument,       NULL, GP_PLAYCOUNT },
+	    { "m",           required_argument,	NULL, GP_MOUNT },
+	    { "mountpoint",  required_argument,	NULL, GP_MOUNT },
+	    { "a",           no_argument,	NULL, GP_AUTO },
+	    { "auto",        no_argument,	NULL, GP_AUTO },
+	    { 0, 0, 0, 0 }
+	};
+	
+    /* Handle commandline options */
+    while ((option = getopt_long_only(argc, argv, "", options, NULL)) != -1)
     {
-	bufp = g_strdup_printf ("sort_ign_string_%d", i);
-	prefs_set_string_value (bufp, sort_ign_strings[i]);
-	g_free (bufp);
-    }
-    /* set ignore fields (ignore above words for artist) */
-    bufp = g_strdup_printf ("sort_ign_field_%d", T_ARTIST);
-    prefs_set_int_value (bufp, 1);
-    g_free (bufp);
-
-    if(fp)
-    {
-      while (fgets (buf, PATH_MAX, fp))
+	switch (option)
 	{
-	  /* allow comments */
-	  if ((buf[0] == ';') || (buf[0] == '#')) continue;
-	  arg = strchr (buf, '=');
-	  if (!arg || (arg == buf))
-	    {
-	      gtkpod_warning (_("Error while reading prefs: %s\n"), buf);
-	      continue;
-	    }
-	  /* skip whitespace */
-	  bufp = buf;
-	  while (g_ascii_isspace(*bufp)) ++bufp;
-	  line = g_strndup (buf, arg-bufp);
-	  ++arg;
-	  len = strlen (arg); /* remove newline */
-	  if((len>0) && (arg[len-1] == 0x0a))  arg[len-1] = 0;
-	  /* skip whitespace */
-	  while (g_ascii_isspace(*arg)) ++arg;
-	  if(g_ascii_strcasecmp (line, "version") == 0)
-	  {
-	      cfg->version = g_ascii_strtod (arg, NULL);
-	  }
-	  else if(g_ascii_strcasecmp (line, "mountpoint") == 0)
-	  {
-	      prefs_set_ipod_mount (arg);
-	  }
-	  else if((arg_comp (line, "toolpath", &off) == 0) ||
-		  (arg_comp (line, "path", &off) == 0))
-	  {
-	      gint i = atoi (line+off);
-	      prefs_set_path (i, arg);
-	      if ((i == PATH_PLAY_NOW) && (cfg->version < 0.87))
-	      {  /* default changed from "xmms -p %s" to "xmms %s" which
-		    avoids xmms from hanging -- thanks to Chris	Vine */
-		  if (strcmp (arg, "xmms -p %s") == 0)
-		  {
-		      prefs_set_path (i, "xmms %s");
-		  }
-	      }
-	  }
-	  else if(g_ascii_strcasecmp (line, "play_now_path") == 0)
-	  {
-	      if (strcmp (arg, "xmms -p %s") == 0)
-	      {
-		  prefs_set_path (PATH_PLAY_NOW, "xmms %s");
-	      }
-	      else
-	      {
-		  prefs_set_path (PATH_PLAY_NOW, arg);
-	      }
-	  }
-	  else if(g_ascii_strcasecmp (line, "play_enqueue_path") == 0)
-	  {
-	      prefs_set_path (PATH_PLAY_ENQUEUE, arg);
-	  }
-	  else if(g_ascii_strcasecmp (line, "mp3gain_path") == 0)
-	  {
-	      prefs_set_path (PATH_MP3GAIN, arg);
-	  }
-	  else if(g_ascii_strcasecmp (line, "time_format") == 0)
-	  {
-	      /* removed in 0.87 */
-	  }
-	  else if((g_ascii_strcasecmp (line, "filename_format") == 0) ||
-		  (g_ascii_strcasecmp (line, "export_template") == 0))
-	  {  /* changed to "export_template" in 0.73CVS */
-	      /* this "funky" string was the result of a wrong
-		 autoconvert -- just ignore it */
-	      if (strcmp (arg, "%a - %a/%T - %T.mp3") != 0)
-	      {
-		  if (cfg->version < 0.72)
-		  {
-		      /* changed the meaning of the %x in export_template */
-		      gchar *sp = arg;
-		      if (sp) while (*sp)
-		      {
-			  if (sp[0] == '%')
-			  {
-			      switch (sp[1]) {
-			      case 'A':
-				  sp[1] = 'a';
-				  break;
-			      case 'd':
-				  sp[1] = 'A';
-				  break;
-			      case 'n':
-				  sp[1] = 't';
-				  break;
-			      case 't':
-				  sp[1] = 'T';
-				  break;
-			      default:
-				  break;
-			      }
-			  }
-			  ++sp;
-		      }
-		  }
-		  prefs_set_string_value (EXPORT_FILES_TPL, arg);
-	      }
-	  }
-	  else if(g_ascii_strcasecmp (line, "charset") == 0)
-	  {
-		if(strlen (arg))      prefs_set_charset(arg);
-	  }
-	  else if(g_ascii_strcasecmp (line, "id3") == 0)
-	  {
-	      prefs_set_id3_write((gboolean)atoi(arg));
-	  }
-	  else if(g_ascii_strcasecmp (line, "id3_all") == 0)
-	  {
-	      /* obsoleted since 0.71 */
-	  }
-	  else if(g_ascii_strcasecmp (line, "id3_write_id3v24") == 0)
-	  {
-	      prefs_set_id3_write_id3v24((gboolean)atoi(arg));
-	  }
-	  else if(g_ascii_strcasecmp (line, "md5") == 0)
-	  {
-	      prefs_set_md5tracks((gboolean)atoi(arg));
-	  }
-	  else if(g_ascii_strcasecmp (line, "update_existing") == 0)
-	  {
-	      prefs_set_update_existing((gboolean)atoi(arg));
-	  }
-	  else if(g_ascii_strcasecmp (line, "block_display") == 0)
-	  {
-	      prefs_set_block_display((gboolean)atoi(arg));
-	  }
-	  else if(g_ascii_strcasecmp (line, "delete_file") == 0)
-	  {
-	      prefs_set_track_playlist_deletion((gboolean)atoi(arg));
-	  }
-	  else if(g_ascii_strcasecmp (line, "delete_database") == 0)
-	  {
-	      prefs_set_track_database_deletion((gboolean)atoi(arg));
-	  }
-	  else if(g_ascii_strcasecmp (line, "delete_local_file") == 0)
-	  {
-	      prefs_set_track_local_file_deletion((gboolean)atoi(arg));
-	  }
-	  else if(g_ascii_strcasecmp (line, "delete_playlist") == 0)
-	  {
-	      /* ignore -- no longer supported as of 0.61-CVS */
-	  }
-	  else if(g_ascii_strcasecmp (line, "sync_remove_confirm") == 0)
-	  {
-	      prefs_set_sync_remove_confirm((gboolean)atoi(arg));
-	  }
-	  else if((g_ascii_strcasecmp (line, "auto_import") == 0) ||
-		  (g_ascii_strcasecmp (line, "autoimport") == 0))
-	  {
-	      prefs_set_autoimport((gboolean)atoi(arg));
-	  }
-	  else if(arg_comp (line, "st_autoselect", &off) == 0)
-	  {
-	      gint i = atoi (line+off);
-	      prefs_set_st_autoselect (i, atoi (arg));
-	  }
-	  else if(arg_comp (line, "st_category", &off) == 0)
-	  {
-	      gint i = atoi (line+off);
-	      prefs_set_st_category (i, atoi (arg));
-	  }
-	  else if(arg_comp (line, "sp_or", &off) == 0)
-	  {
-	      gint i = atoi (line+off);
-	      prefs_set_sp_or (i, atoi (arg));
-	  }
-	  else if(arg_comp (line, "sp_rating_cond", &off) == 0)
-	  {
-	      gint i = atoi (line+off);
-	      prefs_set_sp_cond (i, T_RATING, atoi (arg));
-	  }
-	  else if(arg_comp (line, "sp_playcount_cond", &off) == 0)
-	  {
-	      gint i = atoi (line+off);
-	      prefs_set_sp_cond (i, T_PLAYCOUNT, atoi (arg));
-	  }
-	  else if(arg_comp (line, "sp_played_cond", &off) == 0)
-	  {
-	      gint i = atoi (line+off);
-	      prefs_set_sp_cond (i, T_TIME_PLAYED, atoi (arg));
-	  }
-	  else if(arg_comp (line, "sp_modified_cond", &off) == 0)
-	  {
-	      gint i = atoi (line+off);
-	      prefs_set_sp_cond (i, T_TIME_MODIFIED, atoi (arg));
-	  }
-	  else if((arg_comp (line, "sp_created_cond", &off) == 0) ||
-		  arg_comp (line, "sp_added_cond", &off) == 0)
-	  {
-	      gint i = atoi (line+off);
-	      prefs_set_sp_cond (i, T_TIME_ADDED, atoi (arg));
-	  }
-	  else if(arg_comp (line, "sp_rating_state", &off) == 0)
-	  {
-	      gint i = atoi (line+off);
-	      prefs_set_sp_rating_state (i, atoi (arg));
-	  }
-	  else if(arg_comp (line, "sp_playcount_low", &off) == 0)
-	  {
-	      gint i = atoi (line+off);
-	      prefs_set_sp_playcount_low (i, atoi (arg));
-	  }
-	  else if(arg_comp (line, "sp_playcount_high", &off) == 0)
-	  {
-	      gint i = atoi (line+off);
-	      prefs_set_sp_playcount_high (i, atoi (arg));
-	  }
-	  else if(arg_comp (line, "sp_played_state", &off) == 0)
-	  {
-	      gint i = atoi (line+off);
-	      prefs_set_sp_entry (i, T_TIME_PLAYED, arg);
-	  }
-	  else if(arg_comp (line, "sp_modified_state", &off) == 0)
-	  {
-	      gint i = atoi (line+off);
-	      prefs_set_sp_entry (i, T_TIME_MODIFIED, arg);
-	  }
-	  else if((arg_comp (line, "sp_created_state", &off) == 0) ||
-		  (arg_comp (line, "sp_added_state", &off) == 0))
-	  {
-	      gint i = atoi (line+off);
-	      prefs_set_sp_entry (i, T_TIME_ADDED, arg);
-	  }
-	  else if(arg_comp (line, "sp_autodisplay", &off) == 0)
-	  {
-	      gint i = atoi (line+off);
-	      prefs_set_sp_autodisplay (i, atoi (arg));
-	  }
-	  else if(g_ascii_strcasecmp (line, "mpl_autoselect") == 0)
-	  {
-	      prefs_set_mpl_autoselect((gboolean)atoi(arg));
-	  }
-	  else if((arg_comp (line, "tm_col_width", &off) == 0) ||
-		  (g_ascii_strncasecmp (line, "sm_col_width", 12) == 0))
-	  {
-	      gint i = atoi (line+off);
-	      prefs_set_tm_col_width (i, atoi (arg));
-	  }
-	  else if(arg_comp (line, "tag_autoset", &off) == 0)
-	  {
-	      gint i = atoi (line+off);
-	      prefs_set_autosettags (i, atoi (arg));
-	  }
-	  else if(g_ascii_strcasecmp (line, "readtags") == 0)
-	  {
-	      prefs_set_readtags((gboolean)atoi(arg));
-	  }
-	  else if(g_ascii_strcasecmp (line, "parsetags") == 0)
-	  {
-	      prefs_set_parsetags((gboolean)atoi(arg));
-	  }
-	  else if(g_ascii_strcasecmp (line, "parsetags_overwrite") == 0)
-	  {
-	      prefs_set_parsetags_overwrite((gboolean)atoi(arg));
-	  }
-	  else if(g_ascii_strcasecmp (line, "parsetags_template") == 0)
-	  {
-	      prefs_set_parsetags_template(strdup(arg));
-	  }
-	  else if(g_ascii_strcasecmp (line, "coverart") == 0)
-	  {
-	      prefs_set_coverart((gboolean)atoi(arg));
-	  }
-	  else if(g_ascii_strcasecmp (line, "coverart_template") == 0)
-	  {
-	      prefs_set_coverart_template(strdup(arg));
-	  }
-	  else if(arg_comp (line, "col_visible", &off) == 0)
-	  {
-	      gint i = atoi (line+off);
-	      prefs_set_col_visible (i, atoi (arg));
-	  }
-	  else if(arg_comp (line, "col_order", &off) == 0)
-	  {
-	      gint i = atoi (line+off);
-	      prefs_set_col_order (i, atoi (arg));
-	  }
-	  else if(arg_comp (line, "paned_pos_", &off) == 0)
-	  {
-	      gint i = atoi (line+off);
-	      prefs_set_paned_pos (i, atoi (arg));
-	  }
-	  else if(g_ascii_strcasecmp (line, "offline") == 0)
-	  {
-	      prefs_set_offline((gboolean)atoi(arg));
-	  }
-	  else if(g_ascii_strcasecmp (line, "sort_tab_num") == 0)
-	  {
-	      prefs_set_sort_tab_num(atoi(arg), FALSE);
-	  }
-	  else if(g_ascii_strcasecmp (line, "group_compilations") == 0)
-	  {
-	      prefs_set_group_compilations((gboolean)atoi(arg), FALSE);
-	  }
-	  else if(g_ascii_strcasecmp (line, "toolbar_style") == 0)
-	  {
-	      prefs_set_toolbar_style(atoi(arg));
-	  }
-	  else if(g_ascii_strcasecmp (line, "pm_autostore") == 0)
-	  {
-	      prefs_set_pm_autostore((gboolean)atoi(arg));
-	  }
-	  else if((g_ascii_strcasecmp (line, "tm_autostore") == 0) ||
-		  (g_ascii_strcasecmp (line, "sm_autostore") == 0))
-	  {
-	      prefs_set_tm_autostore((gboolean)atoi(arg));
-	  }
-	  else if(g_ascii_strcasecmp (line, "pm_sort") == 0)
-	  {
-	      gint sort = correct_sort (atoi(arg));
-	      prefs_set_pm_sort(sort);
-	  }
-	  else if(g_ascii_strcasecmp (line, "st_sort") == 0)
-	  {
-	      gint sort = correct_sort (atoi(arg));
-	      prefs_set_st_sort(sort);
-	  }
-	  else if((g_ascii_strcasecmp (line, "tm_sort_") == 0) ||
-		  (g_ascii_strcasecmp (line, "sm_sort_") == 0))
-	  {
-	      gint sort = correct_sort (atoi(arg));
-	      prefs_set_tm_sort(sort);
-	  }
-	  else if((g_ascii_strcasecmp (line, "tm_sortcol") == 0) ||
-		  (g_ascii_strcasecmp (line, "sm_sortcol") == 0))
-	  {
-	      prefs_set_tm_sortcol(atoi(arg));
-	  }
-	  else if(g_ascii_strcasecmp (line, "last_prefs_page") == 0)
-	  {
-	      prefs_set_last_prefs_page(atoi(arg));
-	  }
-	  else if(g_ascii_strcasecmp (line, "backups") == 0)
-	  {
-	      /* removed with version after 0.82-CVS */
-	  }
-	  else if(g_ascii_strcasecmp (line, "extended_info") == 0)
-	  {
-	      prefs_set_write_extended_info((gboolean)atoi(arg));
-	  }
-	  else if(g_ascii_strcasecmp (line, "dir_browse") == 0)
-	  {
-	      prefs_set_last_dir_browse(strdup(arg));
-	  }
-	  else if(g_ascii_strcasecmp (line, "dir_export") == 0)
-	  {
-	      prefs_set_string_value (EXPORT_FILES_PATH, arg);
-	  }
-	  else if(g_ascii_strcasecmp (line, "show_duplicates") == 0)
-	  {
-	      prefs_set_show_duplicates((gboolean)atoi(arg));
-	  }
-	  else if(g_ascii_strcasecmp (line, "show_updated") == 0)
-	  {
-	      prefs_set_show_updated((gboolean)atoi(arg));
-	  }
-	  else if(g_ascii_strcasecmp (line, "show_non_updated") == 0)
-	  {
-	      prefs_set_show_non_updated((gboolean)atoi(arg));
-	  }
-	  else if(g_ascii_strcasecmp (line, "show_sync_dirs") == 0)
-	  {
-	      prefs_set_show_sync_dirs((gboolean)atoi(arg));
-	  }
-	  else if(g_ascii_strcasecmp (line, "sync_remove") == 0)
-	  {
-	      prefs_set_sync_remove((gboolean)atoi(arg));
-	  }
-	  else if(g_ascii_strcasecmp (line, "display_toolbar") == 0)
-	  {
-	      prefs_set_display_toolbar((gboolean)atoi(arg));
-	  }
-	  else if(g_ascii_strcasecmp (line, "display_tooltips_main") == 0)
-	  {
-	      prefs_set_display_tooltips_main((gboolean)atoi(arg));
-	  }
-	  else if(g_ascii_strcasecmp (line, "display_tooltips_prefs") == 0)
-	  {
-	      prefs_set_display_tooltips_prefs((gboolean)atoi(arg));
-	  }
-	  else if(g_ascii_strcasecmp (line, "multi_edit") == 0)
-	  {
-	      prefs_set_multi_edit((gboolean)atoi(arg));
-	  }
-	  else if(g_ascii_strcasecmp (line, "multi_edit_title") == 0)
-	  {
-	      prefs_set_multi_edit_title((gboolean)atoi(arg));
-	  }
-	  else if((g_ascii_strcasecmp (line, "not_played_track") == 0) ||
-		  (g_ascii_strcasecmp (line, "not_played_song") == 0))
-	  {
-	      prefs_set_not_played_track((gboolean)atoi(arg));
-	  }
-	  else if((g_ascii_strcasecmp (line, "misc_track_nr") == 0) ||
-		  (g_ascii_strcasecmp (line, "misc_song_nr") == 0))
-	  {
-	      prefs_set_misc_track_nr(atoi(arg));
-	  }
-	  else if(g_ascii_strcasecmp (line, "update_charset") == 0)
-	  {
-	      prefs_set_update_charset((gboolean)atoi(arg));
-	  }
-	  else if(g_ascii_strcasecmp (line, "write_charset") == 0)
-	  {
-	      prefs_set_write_charset((gboolean)atoi(arg));
-	  }
-	  else if(g_ascii_strcasecmp (line, "add_recursively") == 0)
-	  {
-	      prefs_set_add_recursively((gboolean)atoi(arg));
-	  }
-	  else if(g_ascii_strcasecmp (line, "case_sensitive") == 0)
-	  {
-	      prefs_set_case_sensitive((gboolean)atoi(arg));
-	  }
-	  else if(g_ascii_strcasecmp (line, "save_sorted_order") == 0)
-	  {
-	      /* ignore option -- has been deleted with 0.53 */
-	  }
-	  else if(g_ascii_strcasecmp (line, "size_gtkpod.x") == 0)
-	  {
-	      prefs_set_size_gtkpod (atoi (arg), -2);
-	  }
-	  else if(g_ascii_strcasecmp (line, "size_gtkpod.y") == 0)
-	  {
-	      prefs_set_size_gtkpod (-2, atoi (arg));
-	  }
-	  else if(g_ascii_strcasecmp (line, "size_cal.x") == 0)
-	  {
-	      prefs_set_size_cal (atoi (arg), -2);
-	  }
-	  else if(g_ascii_strcasecmp (line, "size_cal.y") == 0)
-	  {
-	      prefs_set_size_cal (-2, atoi (arg));
-	  }
-	  else if(g_ascii_strcasecmp (line, "size_conf_sw.x") == 0)
-	  {
-	      prefs_set_size_conf_sw (atoi (arg), -2);
-	  }
-	  else if(g_ascii_strcasecmp (line, "size_conf_sw.y") == 0)
-	  {
-	      prefs_set_size_conf_sw (-2, atoi (arg));
-	  }
-	  else if(g_ascii_strcasecmp (line, "size_conf.x") == 0)
-	  {
-	      prefs_set_size_conf (atoi (arg), -2);
-	  }
-	  else if(g_ascii_strcasecmp (line, "size_conf.y") == 0)
-	  {
-	      prefs_set_size_conf (-2, atoi (arg));
-	  }
-	  else if(g_ascii_strcasecmp (line, "size_dirbr.x") == 0)
-	  {
-	      prefs_set_size_dirbr (atoi (arg), -2);
-	  }
-	  else if(g_ascii_strcasecmp (line, "size_dirbr.y") == 0)
-	  {
-	      prefs_set_size_dirbr (-2, atoi (arg));
-	  }
-	  else if(g_ascii_strcasecmp (line, "size_prefs.x") == 0)
-	  {
-	      prefs_set_size_prefs (atoi (arg), -2);
-	  }
-	  else if(g_ascii_strcasecmp (line, "size_prefs.y") == 0)
-	  {
-	      prefs_set_size_prefs (-2, atoi (arg));
-	  }
-	  else if(g_ascii_strcasecmp (line, "size_info.x") == 0)
-	  {
-	      /* changed layout of info window between 0.72 and 0.73 */
-	      if (cfg->version >= 0.73)
-		  prefs_set_size_info (atoi (arg), -2);
-	  }
-	  else if(g_ascii_strcasecmp (line, "size_info.y") == 0)
-	  {
-	      /* changed layout of info window between 0.72 and 0.73 */
-	      if (cfg->version >= 0.73)
-		  prefs_set_size_info (-2, atoi (arg));
-	  }
-	  else if(g_ascii_strcasecmp (line, "export_check_existing") == 0)
-	  {
-	      prefs_set_int_value (EXPORT_FILES_CHECK_EXISTING,
-				   atoi (arg));
-	  }
-	  else if(g_ascii_strcasecmp (line, "fix_path") == 0)
-	  {
-	      /* ignore -- wie always fix the export path (replace
-	       * non-compatible chars) */
-	  }
-	  else if(g_ascii_strcasecmp (line, "automount") == 0)
-	  {
-	      prefs_set_automount (atoi (arg));
-	  }
-	  else if(g_ascii_strcasecmp (line, "info_window") == 0)
-	  {
-	      prefs_set_info_window (atoi (arg));
-	  }
-	  else if(g_ascii_strcasecmp (line, "write_gaintag") == 0)
-	  {
-	      /* ignore -- not used any more */
-	  }
-	  else if(g_ascii_strcasecmp (line, "unused_gboolean3") == 0)
-	  {
-	      prefs_set_unused_gboolean3 ((gboolean)atoi(arg));
-	  }
-	  else if(g_ascii_strcasecmp (line, "concal_autosync") == 0)
-	  {
-	      prefs_set_concal_autosync ((gboolean)atoi(arg));
-	  }
-	  else if(g_ascii_strcasecmp (line, "tmp_disable_sort") == 0)
-	  {
-	      prefs_set_tmp_disable_sort ((gboolean)atoi(arg));
-	  }
-	  else if(g_ascii_strcasecmp (line, "startup_messages") == 0)
-	  {
-	      /* only set if no upgrade/downgrade was performed */
-	      if (cfg->version == g_ascii_strtod (VERSION, NULL))
-		  prefs_set_startup_messages ((gboolean)atoi(arg));
-	  }
-	  else if(g_ascii_strcasecmp (line, "special_export_charset") == 0)
-	  {
-	      prefs_set_int_value (EXPORT_FILES_SPECIAL_CHARSET,
-				   atoi (arg));
-	  }
-	  else if(g_ascii_strcasecmp (line, "mserv_use") == 0)
-	  {
-	      prefs_set_mserv_use ((gboolean)atoi(arg));
-	  }
-	  else if(g_ascii_strcasecmp (line, "mserv_report_probs") == 0)
-	  {
-	      prefs_set_mserv_report_probs ((gboolean)atoi(arg));
-	  }
-	  else if(g_ascii_strcasecmp (line, "mserv_username") == 0)
-	  {
-	      prefs_set_mserv_username (arg);
-	  }
-	  else if(g_ascii_strcasecmp (line, "pc_dir") == 0)
-	  {
-	      prefs_set_pc_dir (arg);
-	  }
-          else if(g_ascii_strcasecmp (line, "pc_del_age") == 0)
-          {
-              prefs_set_pc_del_age ((gboolean)atoi(arg));
-          }
-          else if(g_ascii_strcasecmp (line, "pc_del_age_val") == 0)
-          {
-              prefs_set_pc_del_age_val (atoi(arg));
-          }
-          else if(g_ascii_strcasecmp (line, "pc_del_copied") == 0)
-          {
-              prefs_set_pc_del_copied ((gboolean)atoi(arg));
-          }
-          else if(g_ascii_strcasecmp (line, "pc_auto_fetch") == 0)
-          {
-              prefs_set_pc_auto_fetch ((gboolean)atoi(arg));
-          }
-          else if(g_ascii_strcasecmp (line, "pc_log") == 0)
-          {
-              prefs_set_pc_log ((gboolean)atoi(arg));
-          }
-	  else if(g_ascii_strcasecmp (line, "pc_log_file") == 0)
-	  {
-	      prefs_set_pc_log_file (arg);
-	  }
-          else if(g_ascii_strcasecmp (line, "pc_auto_sync") == 0)
-          {
-              prefs_set_pc_auto_sync ((gboolean)atoi(arg));
-          }
-          else if(g_ascii_strcasecmp (line, "pc_ipod_del_age") == 0)
-          {
-              prefs_set_pc_ipod_del_age ((gboolean)atoi(arg));
-          }
-          else if(g_ascii_strcasecmp (line, "pc_ipod_del_age_val") == 0)
-          {
-              prefs_set_pc_ipod_del_age_val (atoi(arg));
-          }
-          else if(g_ascii_strcasecmp (line, "pc_ipod_del_played") == 0)
-          {
-              prefs_set_pc_ipod_del_played ((gboolean)atoi(arg));
-          }
-          else if(g_ascii_strcasecmp (line, "pc_ipod_inc_date") == 0)
-          {
-              prefs_set_pc_ipod_inc_date ((gboolean)atoi(arg));
-          }
-          else if(g_ascii_strcasecmp (line, "pc_change_genre") == 0)
-          {
-              prefs_set_pc_change_genre ((gboolean)atoi(arg));
-          }
-
-	  else
-	  {   /* All leftover options will be stored into the prefs
-		 setting hash (generic options -- should have had this
-		 idea much sooner... */
-	      gboolean skip = FALSE;
-	      if (cfg->version < 0.91)
-	      {
-		  if(arg_comp (line, "itdb_", NULL) == 0)
-		  {   /* set incorrectly in 0.90 -- delete */
-		      skip = TRUE;
-		  }
-	      }
-	      if (!skip)
-		  prefs_set_string_value (line, arg);
-	  }
-	  g_free(line);
-	}
+	case GP_HELP:
+	    usage(stdout);
+	    exit(0);
+	    break;
+	case GP_PLAYCOUNT:
+	    client_playcount(optarg);
+	    exit(0);
+	    break;
+	case GP_MOUNT:
+	    prefs_set_string("initial_mountpoint", optarg);
+	    break;
+	case GP_AUTO:
+	    prefs_set_int("autoimport_commandline", TRUE);
+	    break;
+	default:
+	    locale_fprintf(stderr, "Unknown option: %s\n", argv[optind]);
+	    usage(stderr);
+	    exit(1);
+	    break;
+	};
     }
 }
 
-
-/* we first read from /etc/gtkpod/prefs and then overwrite the
-   settings with ~/.gtkpod/prefs */
-void
-read_prefs_defaults(void)
+/* Read options from environment variables */
+static void read_environment()
 {
-  gchar *cfgdir = NULL;
-  gchar *filename;
-  FILE *fp = NULL;
-  gboolean have_prefs = FALSE;
-
-  cfgdir = prefs_get_cfgdir ();
-
-  filename = g_build_filename (cfgdir, "prefs", NULL);
-  if(g_file_test(filename, G_FILE_TEST_EXISTS))
-  {
-      if((fp = fopen(filename, "r")))
-      {
-	  read_prefs_from_file_desc(fp);
-	  fclose(fp);
-	  have_prefs = TRUE; /* read prefs */
-      }
-      else
-      {
-	  gtkpod_warning(_("Unable to open config file '%s' for reading\n"), filename);
-	  }
-  }
-  g_free (filename);
-
-  if (!have_prefs)
-  {
-      filename = g_build_filename ("/etc", "gtkpod", "prefs", NULL);
-
-      if (g_file_test (filename, G_FILE_TEST_EXISTS))
-      {
-	  if((fp = fopen(filename, "r")))
-	  {
-	      read_prefs_from_file_desc(fp);
-	      fclose(fp);
-	      have_prefs = TRUE; /* read prefs */
-	  }
-      }
-      g_free (filename);
-  }
-  g_free (cfgdir);
-  /* set version of the prefs file to "current" if none was read */
-  if (!have_prefs)   cfg->version = g_ascii_strtod (VERSION, NULL);
-
-  /* handle version changes in prefs */
-  if (cfg->version == 0.0)
-  {
-      /* most likely prefs file written by V0.50 */
-      /* I added two new PANED elements since V0.50 --> shift */
-      gint i;
-      for (i=PANED_NUM_ST-1; i>=0; --i)
-      {
-	  prefs_set_paned_pos (PANED_NUM_GLADE + i,
-			       prefs_get_paned_pos (PANED_NUM_GLADE + i - 2));
-      }
-      prefs_set_paned_pos (PANED_STATUS1, -1);
-      prefs_set_paned_pos (PANED_STATUS2, -1);
-  }
-
-  /* set statusbar paned to a decent value if unset */
-  if (prefs_get_paned_pos (PANED_STATUS1) == -1)
-  {
-      gint x,y;
-      prefs_get_size_gtkpod (&x, &y);
-      /* set to about 2/3 of the window width */
-      if (x>0)   prefs_set_paned_pos (PANED_STATUS1, 20*x/30);
-  }
-  /* set statusbar paned to a decent value if unset */
-  if (prefs_get_paned_pos (PANED_STATUS2) == -1)
-  {
-      gint x,y,p;
-      prefs_get_size_gtkpod (&x, &y);
-      p = prefs_get_paned_pos (PANED_STATUS1);
-      /* set to about half of the remaining window */
-      if (x>0)   prefs_set_paned_pos (PANED_STATUS2, (x-p)/2 );
-  }
+    gchar *buf; 
+  
+    buf = convert_filename(getenv("IPOD_MOUNTPOINT"));
+    if (buf)
+	prefs_set_string("initial_mountpoint", buf);
+    g_free(buf);
 }
-
-/* Read Preferences and initialise the cfg-struct */
-/* Return value: FALSE if "-p" argument was given -> stop program */
-gboolean read_prefs (GtkWidget *gtkpod, int argc, char *argv[])
+ 
+/* Create a full numbered key from a base key string and a number.
+ * Free returned string. */
+static gchar *create_full_key(const gchar *base_key, gint index)
 {
-  GtkCheckMenuItem *menu;
-  int opt;
-  int option_index;
-  gboolean result = TRUE;
-  struct option const options[] =
-    {
-      { "h",           no_argument,	NULL, GP_HELP },
-      { "help",        no_argument,	NULL, GP_HELP },
-      { "p",           required_argument,       NULL, GP_PLAYCOUNT },
-      { "m",           required_argument,	NULL, GP_MOUNT },
-      { "mountpoint",  required_argument,	NULL, GP_MOUNT },
-      { "offline",     no_argument,	NULL, GP_OFFLINE },
-      { "a",           no_argument,	NULL, GP_AUTO },
-      { "auto",        no_argument,	NULL, GP_AUTO },
-      { 0, 0, 0, 0 }
-    };
-
-  if (cfg != NULL) discard_prefs ();
-
-  cfg = cfg_new();
-  read_prefs_defaults();
-
-  prefs_set_ipod_mount (getenv("IPOD_MOUNTPOINT"));
-
-  while((opt=getopt_long_only(argc, argv, "", options, &option_index)) != -1) {
-    switch(opt)
-      {
-      case GP_HELP:
-	  usage(stdout);
-	  exit(0);
-	  break;
-      case GP_PLAYCOUNT:
-	  client_playcount (optarg);
-	  result = FALSE;
-	  break;
-      case GP_MOUNT:
-	  prefs_set_ipod_mount (optarg);
-	  break;
-      case GP_AUTO:
-	  prefs_set_autoimport_commandline (TRUE);
-	  break;
-      case GP_OFFLINE:
-	  prefs_set_offline (TRUE);
-	  break;
-      default:
-	  usage_fpf(stderr, _("Unknown option: %s\n"), argv[optind]);
-	  usage(stderr);
-	  exit(1);
-      }
-  }
-
-/* FIXME: PODCASTS: remove Podcast menu */
-/*   podcast_read_from_file(); */
-/*   podcast_file_read_from_file(); */
-
-  menu = GTK_CHECK_MENU_ITEM (gtkpod_xml_get_widget (main_window_xml, "offline_menu"));
-  gtk_check_menu_item_set_active (menu, prefs_get_offline ());
-  return result;
+    if (base_key)
+	return g_strdup_printf("%s%i", base_key, index);
+    else 
+	return NULL;
 }
 
-static void
-write_prefs_to_file_desc(FILE *fp)
+/* Remove key present in the temp prefs tree from the hash table */
+static gboolean flush_key (gpointer key, gpointer value, gpointer user_data)
 {
-    gint i;
+    g_return_val_if_fail (prefs_table, FALSE);
 
-    if(!fp)
-	fp = stderr;
+    g_hash_table_remove (prefs_table, key);
 
-    /* update column widths, x,y-size of main window and GtkPaned
-     * positions */
-    display_update_default_sizes ();
-    /* update order of track view columns */
-    tm_store_col_order ();
-
-    fprintf(fp, "version=%s\n", VERSION);
-    fprintf(fp, "mountpoint=%s\n", cfg->ipod_mount);
-    for (i=0; i<PATH_NUM; ++i)
-    {
-	gchar *buf = g_strdup (path_entry_names[i]);
-	gchar *bufp = strrchr (buf, '_');
-	/* we cut off the "_entry" of the entry name, making it easier
-	   to read for humans */
-	if (bufp) *bufp = '\0';
-	fprintf (fp, ";%s\n", buf);
-	fprintf (fp, "path%d=%s\n", i, cfg->path[i]);
-	g_free (buf);
-    }
-    if (cfg->charset)
-    {
-	fprintf(fp, "charset=%s\n", cfg->charset);
-    } else {
-	fprintf(fp, "charset=\n");
-    }
-    fprintf(fp, "id3=%d\n", prefs_get_id3_write ());
-    fprintf(fp, "id3_write_id3v24=%d\n", prefs_get_id3_write_id3v24 ());
-    fprintf(fp, "md5=%d\n",prefs_get_md5tracks ());
-    fprintf(fp, "update_existing=%d\n",prefs_get_update_existing ());
-    fprintf(fp, "block_display=%d\n",prefs_get_block_display());
-    fprintf(fp, _("# delete confirmation\n"));
-    fprintf(fp, "delete_file=%d\n",prefs_get_track_playlist_deletion());
-    fprintf(fp, "delete_ipod=%d\n",prefs_get_track_ipod_file_deletion());
-    fprintf(fp, "delete_database=%d\n",prefs_get_track_database_deletion());
-    fprintf(fp, "delete_local_file=%d\n",prefs_get_track_local_file_deletion());
-    fprintf(fp, "sync_remove_confirm=%d\n",prefs_get_sync_remove_confirm());
-    fprintf(fp, "autoimport=%d\n",prefs_get_autoimport());
-    fprintf(fp, _("# sort tab: select 'All', last selected page (=category)\n"));
-    for (i=0; i<SORT_TAB_MAX; ++i)
-    {
-	fprintf(fp, "st_autoselect%d=%d\n", i, prefs_get_st_autoselect (i));
-	fprintf(fp, "st_category%d=%d\n", i, prefs_get_st_category (i));
-	fprintf(fp, "sp_or%d=%d\n", i, prefs_get_sp_or (i));
-	fprintf(fp, "sp_rating_cond%d=%d\n", i, prefs_get_sp_cond (i, T_RATING));
-	fprintf(fp, "sp_rating_state%d=%d\n", i, prefs_get_sp_rating_state(i));
-	fprintf(fp, "sp_playcount_cond%d=%d\n", i, prefs_get_sp_cond (i, T_PLAYCOUNT));
-	fprintf(fp, "sp_playcount_low%d=%d\n", i, prefs_get_sp_playcount_low (i));
-	fprintf(fp, "sp_playcount_high%d=%d\n", i, prefs_get_sp_playcount_high (i));
-	fprintf(fp, "sp_played_cond%d=%d\n", i, prefs_get_sp_cond (i, T_TIME_PLAYED));
-	fprintf(fp, "sp_played_state%d=%s\n", i, prefs_get_sp_entry (i, T_TIME_PLAYED));
-	fprintf(fp, "sp_modified_cond%d=%d\n", i, prefs_get_sp_cond (i, T_TIME_MODIFIED));
-	fprintf(fp, "sp_modified_state%d=%s\n", i, prefs_get_sp_entry (i, T_TIME_MODIFIED));
-	fprintf(fp, "sp_added_cond%d=%d\n", i, prefs_get_sp_cond (i, T_TIME_ADDED));
-	fprintf(fp, "sp_added_state%d=%s\n", i, prefs_get_sp_entry (i, T_TIME_ADDED));
-	fprintf(fp, "sp_autodisplay%d=%d\n", i, prefs_get_sp_autodisplay (i));
-    }
-    fprintf(fp, _("# autoselect master playlist?\n"));
-    fprintf(fp, "mpl_autoselect=%d\n", prefs_get_mpl_autoselect ());
-    fprintf(fp, _("# title=0, artist, album, genre, composer\n"));
-    fprintf(fp, _("# track_nr=5, ipod_id, pc_path, transferred\n"));
-    fprintf(fp, _("# autoset: set empty tag to filename?\n"));
-    for (i=0; i<TM_NUM_COLUMNS; ++i)
-    {
-	fprintf(fp, "tm_col_width%d=%d\n", i, prefs_get_tm_col_width (i));
-	fprintf(fp, "col_visible%d=%d\n",  i, prefs_get_col_visible (i));
-	fprintf(fp, "col_order%d=%d\n",  i, prefs_get_col_order (i));
-	if (i < TM_NUM_TAGS_PREFS)
-	    fprintf(fp, "tag_autoset%d=%d\n", i, prefs_get_autosettags (i));
-    }
-    fprintf(fp, "readtags=%d\n", prefs_get_readtags());
-    fprintf(fp, "parsetags=%d\n", prefs_get_parsetags());
-    fprintf(fp, "parsetags_overwrite=%d\n", prefs_get_parsetags_overwrite());
-    fprintf(fp, "parsetags_template=%s\n",cfg->parsetags_template);
-    fprintf(fp, "coverart=%d\n", prefs_get_coverart());
-    fprintf(fp, "coverart_template=%s\n",cfg->coverart_template);
-    fprintf(fp, _("# position of sliders (paned): playlists, above tracks,\n# between sort tabs, and in statusbar.\n"));
-    for (i=0; i<PANED_NUM; ++i)
-    {
-	fprintf(fp, "paned_pos_%d=%d\n", i, prefs_get_paned_pos (i));
-    }
-    fprintf(fp, "sort_tab_num=%d\n",prefs_get_sort_tab_num());
-    fprintf(fp, "group_compilations=%d\n",prefs_get_group_compilations());
-    fprintf(fp, "last_prefs_page=%d\n",prefs_get_last_prefs_page());
-    fprintf(fp, "offline=%d\n",prefs_get_offline());
-    fprintf(fp, "extended_info=%d\n",prefs_get_write_extended_info());
-    fprintf(fp, "dir_browse=%s\n",cfg->last_dir.browse);
-    fprintf(fp, "show_duplicates=%d\n",prefs_get_show_duplicates());
-    fprintf(fp, "show_updated=%d\n",prefs_get_show_updated());
-    fprintf(fp, "show_non_updated=%d\n",prefs_get_show_non_updated());
-    fprintf(fp, "show_sync_dirs=%d\n",prefs_get_show_sync_dirs());
-    fprintf(fp, "sync_remove=%d\n",prefs_get_sync_remove());
-    fprintf(fp, "display_toolbar=%d\n",prefs_get_display_toolbar());
-    fprintf(fp, "toolbar_style=%d\n",prefs_get_toolbar_style());
-    fprintf(fp, "pm_autostore=%d\n",prefs_get_pm_autostore());
-    fprintf(fp, "tm_autostore=%d\n",prefs_get_tm_autostore());
-    fprintf(fp, "pm_sort=%d\n",prefs_get_pm_sort());
-    fprintf(fp, "st_sort=%d\n",prefs_get_st_sort());
-    fprintf(fp, "tm_sort_=%d\n",prefs_get_tm_sort());
-    fprintf(fp, "tm_sortcol=%d\n",prefs_get_tm_sortcol());
-    fprintf(fp, "display_tooltips_main=%d\n",
-	    prefs_get_display_tooltips_main());
-    fprintf(fp, "display_tooltips_prefs=%d\n",
-	    prefs_get_display_tooltips_prefs());
-    fprintf(fp, "multi_edit=%d\n", prefs_get_multi_edit());
-    fprintf(fp, "multi_edit_title=%d\n", prefs_get_multi_edit_title());
-    fprintf(fp, "misc_track_nr=%d\n", prefs_get_misc_track_nr());
-    fprintf(fp, "not_played_track=%d\n", prefs_get_not_played_track());
-    fprintf(fp, "update_charset=%d\n",prefs_get_update_charset());
-    fprintf(fp, "write_charset=%d\n",prefs_get_write_charset());
-    fprintf(fp, "add_recursively=%d\n",prefs_get_add_recursively());
-    fprintf(fp, "case_sensitive=%d\n",prefs_get_case_sensitive());
-    fprintf(fp, _("# window sizes: main window, confirmation scrolled,\n#               confirmation non-scrolled, dirbrowser, prefs\n"));
-    fprintf (fp, "size_gtkpod.x=%d\n", cfg->size_gtkpod.x);
-    fprintf (fp, "size_gtkpod.y=%d\n", cfg->size_gtkpod.y);
-    fprintf (fp, "size_cal.x=%d\n", cfg->size_cal.x);
-    fprintf (fp, "size_cal.y=%d\n", cfg->size_cal.y);
-    fprintf (fp, "size_conf_sw.x=%d\n", cfg->size_conf_sw.x);
-    fprintf (fp, "size_conf_sw.y=%d\n", cfg->size_conf_sw.y);
-    fprintf (fp, "size_conf.x=%d\n", cfg->size_conf.x);
-    fprintf (fp, "size_conf.y=%d\n", cfg->size_conf.y);
-    fprintf (fp, "size_dirbr.x=%d\n", cfg->size_dirbr.x);
-    fprintf (fp, "size_dirbr.y=%d\n", cfg->size_dirbr.y);
-    fprintf (fp, "size_prefs.x=%d\n", cfg->size_prefs.x);
-    fprintf (fp, "size_prefs.y=%d\n", cfg->size_prefs.y);
-    fprintf (fp, "size_info.x=%d\n", cfg->size_info.x);
-    fprintf (fp, "size_info.y=%d\n", cfg->size_info.y);
-    fprintf (fp, "automount=%d\n", cfg->automount);
-    fprintf (fp, "info_window=%d\n", cfg->info_window);
-    fprintf (fp, "concal_autosync=%d\n", cfg->concal_autosync);
-    prefs_write_hash_values (fp);
-    fprintf (fp, "tmp_disable_sort=%d\n", cfg->tmp_disable_sort);
-    fprintf (fp, "startup_messages=%d\n", cfg->startup_messages);
-    fprintf (fp, "mserv_use=%d\n", cfg->mserv_use);
-    fprintf (fp, "mserv_report_probs=%d\n", cfg->mserv_report_probs);
-    fprintf(fp, "pc_dir=%s\n", cfg->pc_dir);
-    fprintf(fp, "pc_del_age=%d\n", cfg->pc_del_age);
-    fprintf(fp, "pc_del_age_val=%d\n", cfg->pc_del_age_val);
-    fprintf(fp, "pc_del_copied=%d\n", cfg->pc_del_copied);
-    fprintf(fp, "pc_auto_fetch=%d\n", cfg->pc_auto_fetch);
-    fprintf(fp, "pc_log=%d\n", cfg->pc_log);
-    fprintf(fp, "pc_log_file=%s\n", cfg->pc_log_file);
-    fprintf(fp, "pc_auto_sync=%d\n", cfg->pc_auto_sync);
-    fprintf(fp, "pc_ipod_del_age=%d\n", cfg->pc_ipod_del_age);
-    fprintf(fp, "pc_ipod_del_age_val=%d\n", cfg->pc_ipod_del_age_val);
-    fprintf(fp, "pc_ipod_del_played=%d\n", cfg->pc_ipod_del_played);
-    fprintf(fp, "pc_ipod_inc_date=%d\n", cfg->pc_ipod_inc_date);
-    fprintf(fp, "pc_change_genre=%d\n", cfg->pc_change_genre);
-/*     fprintf (fp, "unused_gboolean3=%d\n", cfg->unused_gboolean3); */
+    return FALSE;
 }
 
 
-void
-write_prefs (void)
+/* Copy key data from the temp prefs tree to the hash table (or to
+ * sub_data->temp_prefs_orig if non-NULL). The old key is removed. */
+static gboolean subst_key (gpointer key, gpointer value, gpointer user_data)
 {
-    gchar *filename;
-    gchar *cfgdir;
-    FILE *fp = NULL;
+    struct sub_data *sub_data = user_data;
+    gint len;
 
-    cfgdir = prefs_get_cfgdir ();
+    g_return_val_if_fail (key && value && user_data, FALSE);
+    g_return_val_if_fail (sub_data->subkey && sub_data->subkey2, FALSE);
+    if (!sub_data->temp_prefs_orig)
+	g_return_val_if_fail (prefs_table, FALSE);
+    if (sub_data->temp_prefs_orig)
+	g_return_val_if_fail (sub_data->temp_prefs_orig->tree, FALSE);
 
-    filename = g_build_filename (cfgdir, "prefs", NULL);
-    if((fp = fopen(filename, "w")))
+    len = strlen (sub_data->subkey);
+
+    if (strncmp (key, sub_data->subkey, len) == 0)
     {
-	write_prefs_to_file_desc(fp);
-	fclose(fp);
+	gchar *new_key = g_strdup_printf ("%s%s",
+					  sub_data->subkey2,
+					  ((gchar *)key)+len);
+	if (sub_data->temp_prefs_orig)
+	{
+	    g_tree_remove (sub_data->temp_prefs_orig->tree, key);
+	    g_tree_insert (sub_data->temp_prefs_orig->tree,
+			   new_key, g_strdup(value));
+	}
+	else
+	{
+	    g_hash_table_remove (prefs_table, key);
+	    g_hash_table_insert (prefs_table, new_key, g_strdup(value));
+	}
     }
-    else
-    {
-	gtkpod_warning (_("Unable to open '%s' for writing\n"),
-			filename);
-    }
-
-    g_free (filename);
-    g_free (cfgdir);
+    return FALSE;
 }
 
-
-
-/* Free all memory including the cfg-struct itself. */
-void discard_prefs ()
+/* return TRUE if @key starts with @subkey */
+static gboolean match_subkey (gpointer key, gpointer value, gpointer subkey)
 {
-    cfg_free(cfg);
-    cfg = NULL;
-}
+    g_return_val_if_fail (key && subkey, FALSE);
 
-void cfg_free(struct cfg *c)
-{
-    if(c)
-    {
-      gint i;
-
-      g_free (c->ipod_mount);
-      g_free (c->charset);
-      g_free (c->last_dir.browse);
-      for (i=0; i<PATH_NUM; ++i)
-	  g_free (c->path[i]);
-      g_free (c->mserv_username);
-      g_free (c);
-    }
+    if (strncmp (key, subkey, strlen (subkey)) == 0)  return TRUE;
+    return FALSE;
 }
 
-void sortcfg_free(struct sortcfg *c)
-{
-    g_return_if_fail (c);
-    g_list_free (c->tmp_sort_ign_fields);
-    g_free (c->tmp_sort_ign_strings);
-    g_free (c);
-}
 
-
-static gchar *
-get_dirname_of_filename(const gchar *file)
+/* return TRUE and set sub_data->exists to TRUE if @key starts with
+ * @subkey */
+static gboolean check_subkey (gpointer key, gpointer value, gpointer user_data)
 {
-    if (!file) return NULL;
+    struct sub_data *sub_data = user_data;
 
-    if (g_file_test(file, G_FILE_TEST_IS_DIR))
-	return g_strdup (file);
-    else
-	return g_path_get_dirname (file);
-}
+    g_return_val_if_fail (key && user_data, TRUE);
+    g_return_val_if_fail (sub_data->subkey, TRUE);
 
-
-void prefs_set_offline(gboolean active)
-{
-  if (cfg->offline != active)   space_data_update ();
-  cfg->offline = active;
-  info_update_totals_view_space ();
-}
-void prefs_set_write_extended_info(gboolean active)
-{
-  cfg->write_extended_info = active;
-}
-void prefs_set_last_dir_browse(const gchar *file)
-{
-    if (file)
+    if (strncmp (key, sub_data->subkey, strlen (sub_data->subkey)) == 0)
     {
-	C_FREE(cfg->last_dir.browse);
-	cfg->last_dir.browse = get_dirname_of_filename(file);
+	sub_data->exists = TRUE;
+	return TRUE;
     }
+    return FALSE;
 }
-const gchar *prefs_get_last_dir_browse(void)
-{
-    return cfg->last_dir.browse;
-}
 
-void prefs_set_ipod_mount(const gchar *mp)
-{
-    if (!mp) return; /* ignore NULL pointer */
-    g_free (cfg->ipod_mount);
-    /* if new mount point starts with "~/", we replace it with the
-       home directory */
-    cfg->ipod_mount = convert_filename (mp);
-    /* need to notify the info thread of new mount point */
-    space_set_ipod_mount (cfg->ipod_mount);
-    gp_itdb_set_mountpoint (cfg->ipod_mount);
-}
 
 
-/* If the status of md5 hash flag changes, free or re-init the md5
-   hash table */
-void prefs_set_md5tracks (gboolean active)
+/* Add key/value to temp_prefs if it matches subkey -- called by
+ * prefs_create_subset() and temp_prefs_create_subset() */
+gboolean get_subset (gpointer key, gpointer value, gpointer user_data)
 {
-    struct itdbs_head *itdbs_head;
+    struct sub_data *sub_data = user_data;
 
-    g_return_if_fail (gtkpod_window);
-    itdbs_head = g_object_get_data (G_OBJECT (gtkpod_window),
-				    "itdbs_head");
-/*    g_return_if_fail (itdbs_head);*/
-    /* gets called before itdbs are set up -> fail silently */
-    if (!itdbs_head)
-    {
-	cfg->md5tracks = active;
-	return;
-    }
+    g_return_val_if_fail (key && value && user_data, TRUE);
+    g_return_val_if_fail (sub_data->subkey && sub_data->temp_prefs, TRUE);
 
-    if (cfg->md5tracks && !active)
-    { /* md5 checksums have been turned off */
-	cfg->md5tracks = FALSE;
-	gp_md5_free_hash ();
+    if (strncmp (key, sub_data->subkey,
+		 strlen (sub_data->subkey)) == 0)
+    {  /* match */
+	temp_prefs_set_string (sub_data->temp_prefs, key, value);
     }
-    if (!cfg->md5tracks && active)
-    { /* md5 checksums have been turned on */
-	cfg->md5tracks = TRUE; /* must be set before calling
-				  gp_md5_hash_tracks() */
-	gp_md5_hash_tracks ();
-	/* display duplicates */
-	gp_duplicate_remove (NULL, NULL);
-    }
+    return FALSE; /* continue traversal (g_tree), ignored for g_hash */
 }
 
-gboolean prefs_get_md5tracks(void)
-{
-    return cfg->md5tracks;
-}
 
-void prefs_set_update_existing(gboolean active)
+/* Copy a variable-length list to the prefs table */
+static gboolean copy_list(gpointer key, gpointer value, gpointer user_data)
 {
-    cfg->update_existing = active;
+	prefs_apply_list((gchar*)key, (GList*)value);
+	return FALSE;
 }
-
-gboolean prefs_get_update_existing(void)
+ 
+/* Callback that writes pref table data to a file */
+static void write_key(gpointer key, gpointer value, gpointer user_data)
 {
-    return cfg->update_existing;
+    FILE *fp;  /* file pointer passed in through user_data */
+	
+    /* Write out each key and value to the given file */
+    fp = (FILE*)user_data;
+	
+    if (fp)
+	fprintf(fp, "%s=%s\n", (gchar*)key, (gchar*)value);
 }
 
-/* Should the display be blocked (be insenstive) while it is updated
-   after a selection (playlist, tab entry) change? */
-void prefs_set_block_display(gboolean active)
+/* Gets a string that contains ~/.gtkpod/ If the folder doesn't exist,
+ * create it. Free the string when you are done with it.
+ * If the folder wasn't found, and couldn't be created, return NULL */
+gchar *prefs_get_cfgdir()
 {
-    cfg->block_display = active;
+    gchar *folder;  /* Folder path */
+	
+    /* Create the folder path. If the folder doesn't exist, create it. */
+    folder = g_build_filename(g_get_home_dir(), ".gtkpod", NULL);
+	
+    if (!g_file_test(folder, G_FILE_TEST_IS_DIR))
+    {
+	if ((mkdir(folder, 0755)) == -1)
+	{
+	    printf("Couldn't create ~/.gtkpod");
+	    return NULL;
+	}
+    }
+	
+    return folder;
 }
 
-gboolean prefs_get_block_display(void)
+/* Read preferences from a file */
+static void read_prefs_from_file(FILE *fp)
 {
-    return cfg->block_display;
+    gchar buf[PATH_MAX];  /* Buffer that contains one line */
+    gchar *buf_start; /* Pointer to where actual useful data starts in line */
+    gchar *key;  /* Pref value key */
+    gchar *value; /* Pref value */
+    size_t len;  /* string length */
+	
+    if (fp)
+    {
+	while (fgets(buf, PATH_MAX, fp))
+	{
+	    /* Strip out any comments (lines that begin with ; or #) */
+	    if ((buf[0] == ';') || (buf[0] == '#')) 
+		continue;
+			
+	    /* Find the key and value, and look for malformed lines */
+	    value = strchr(buf, '=');
+			
+	    if ((!value) || (value == buf))
+		printf("Parse error reading prefs: %s", buf);
+			
+	    /* Strip off whitespace */
+	    buf_start = buf;
+			
+	    while (g_ascii_isspace(*buf_start))
+		buf_start++;
+			
+	    /* Find the key name */
+	    key = g_strndup(buf, (value - buf_start));
+	    value++;
+			
+	    /* remove newline */
+	    len = strlen(value);
+			
+	    if ((len > 0) && (value[len - 1] == 0x0a))
+		value[len - 1] = 0;
+			
+	    /* Strip whitespace off the key value */
+	    while (g_ascii_isspace(*value))
+		value++;
+			
+	    /* Finally, load each key/value pair into the pref hash table */
+	    if (prefs_table)
+	    {
+		g_hash_table_insert(prefs_table, (gpointer)key, 
+				    (gpointer)g_strdup(value));
+	    }
+	}
+    }
 }
 
-void prefs_set_id3_write(gboolean active)
+/* Write prefs to file */
+static void write_prefs_to_file(FILE *fp)
 {
-    cfg->id3_write = active;
+    if (prefs_table)
+	g_hash_table_foreach(prefs_table, write_key, (gpointer)fp);
 }
 
-gboolean prefs_get_id3_write(void)
+/* Load preferences, first loading the defaults, and then overwrite that with
+ * preferences in the user home folder. */
+static void load_prefs()
 {
-    return cfg->id3_write;
+    gchar *filename; /* Config path to open */
+    gchar *config_dir;  /* Directory where config is (usually ~/.gtkpod) */
+    FILE *fp;
+	
+    /* Start by initializing the prefs to their default values */
+    set_default_preferences();
+	
+    /* and then override those values with those found in the home folder. */
+    config_dir = prefs_get_cfgdir();
+	
+    if (config_dir)
+    {
+	filename = g_build_filename(config_dir, "prefs", NULL);
+		
+	if (filename)
+	{
+	    fp = fopen(filename, "r");
+			
+	    if (fp)
+	    {
+		read_prefs_from_file(fp);
+		fclose(fp);
+	    }
+			
+	    g_free(filename);
+	}
+		
+	g_free(config_dir);
+    }
+	
+    /* Finally, initialize variable-length lists. Do this after everything else
+     * so that list defaults don't hang out in the table after prefs have been
+     * read from the file. */
+    set_default_list_entries();
 }
 
-void prefs_set_id3_write_id3v24(gboolean active)
+/* Save preferences to user home folder (~/gtkpod/prefs) */
+static void save_prefs()
 {
-    cfg->id3_write_id3v24 = active;
-}
+    gchar *filename;  /* Path of file to write to */
+    gchar *config_dir;   /* Folder where prefs file is */
+    FILE *fp;  /* File pointer */
+	
+    /* Open $HOME/.gtkpod/prefs, and write prefs */
+    config_dir = prefs_get_cfgdir();
+	
+    if (config_dir)
+    {
+	filename = g_build_filename(config_dir, "prefs", NULL);
+		
+	if (filename)
+	{
+	    fp = fopen(filename, "w");
 
-gboolean prefs_get_id3_write_id3v24(void)
-{
-    return cfg->id3_write_id3v24;
+	    if (fp)
+	    {
+		write_prefs_to_file(fp);
+		fclose(fp);
+	    }
+		
+	    g_free(filename);
+	}
+		
+	g_free(config_dir);
+    }
 }
 
-gboolean prefs_get_offline(void)
+/* Removes already existing list keys from the prefs table */
+static void wipe_list(const gchar *key)
 {
-  return cfg->offline;
+    gchar *full_key; /* Complete key, with its number suffix */
+    guint i;  /* Loop counter */
+	
+    /* Go through the prefs table, starting at key<number>, delete it and go 
+     * through key<number+1>... until there are no keys left */
+	
+    for (i = 0;;i++)
+    {
+	full_key = create_full_key(key, i);
+		
+	if (g_hash_table_remove(prefs_table, full_key))
+	{
+	    g_free(full_key);
+	    continue;
+	}
+	else /* We got all the unneeded keys, leave the loop... */
+	{
+	    g_free(full_key);
+	    break;
+	}
+    }		
 }
 
-gboolean prefs_get_write_extended_info(void)
+/* Delete and rename keys */
+static void cleanup_keys()
 {
-  return cfg->write_extended_info;
-}
+    gchar *buf;
+    gchar *sp = NULL;
+    gint int_buf;
+    gint i;
+    gint x, y, p;  /* Window position */
+    float version=0;
 
-void prefs_set_track_playlist_deletion(gboolean val)
-{
-    cfg->deletion.track = val;
-}
+    /* Get version */
+    version = prefs_get_double("version");
 
-gboolean prefs_get_track_playlist_deletion(void)
-{
-    return(cfg->deletion.track);
-}
-
-void prefs_set_track_ipod_file_deletion(gboolean val)
-{
-    cfg->deletion.ipod_file = val;
-}
-
-gboolean prefs_get_track_ipod_file_deletion(void)
-{
-    return(cfg->deletion.ipod_file);
-}
-
-void prefs_set_track_database_deletion(gboolean val)
-{
-    cfg->deletion.database = val;
-}
-
-gboolean prefs_get_track_database_deletion(void)
-{
-    return (cfg->deletion.database);
-}
-
-void prefs_set_track_local_file_deletion(gboolean val)
-{
-    cfg->deletion.local_file = val;
-}
-
-gboolean prefs_get_track_local_file_deletion(void)
-{
-    return cfg->deletion.local_file;
-}
-
-
-void prefs_set_sync_remove_confirm(gboolean val)
-{
-    cfg->deletion.syncing = val;
-}
-
-gboolean prefs_get_sync_remove_confirm(void)
-{
-    return(cfg->deletion.syncing);
-}
-
-void prefs_set_charset (gchar *charset)
-{
-    prefs_cfg_set_charset (cfg, charset);
-}
-
-
-void prefs_cfg_set_charset (struct cfg *cfgd, gchar *charset)
-{
-    C_FREE (cfgd->charset);
-    if (charset && strlen (charset))
-	cfgd->charset = g_strdup (charset);
-/*     printf ("set_charset: '%s'\n", charset);	 */
-}
-
-
-gchar *prefs_get_charset (void)
-{
-    return cfg->charset;
-/*     printf ("get_charset: '%s'\n", cfg->charset); */
-}
-
-struct cfg *clone_prefs(void)
-{
-    struct cfg *result = NULL;
-
-    if(cfg)
+    /* rename mountpoint to initial_mountpoint */
+    if (prefs_get_string_value(KEY_MOUNTPOINT, &buf))
     {
-	gint i;
-
-	result = g_memdup (cfg, sizeof (struct cfg));
-	result->ipod_mount = g_strdup(cfg->ipod_mount);
-	result->charset = g_strdup(cfg->charset);
-	result->last_dir.browse = g_strdup(cfg->last_dir.browse);
-	for (i=0; i<PATH_NUM; ++i)
-	    result->path[i] = g_strdup (cfg->path[i]);
-	result->parsetags_template = g_strdup(cfg->parsetags_template);
-	result->coverart_template = g_strdup(cfg->coverart_template);
-	result->mserv_username = g_strdup(cfg->mserv_username);
-	result->pc_dir = g_strdup(cfg->pc_dir);
-	result->pc_log_file = g_strdup(cfg->pc_log_file);
+	prefs_set_string("initial_mountpoint", buf);
+	g_free(buf);
+	prefs_set_string(KEY_MOUNTPOINT, NULL);
     }
-    return(result);
-}
-
-struct sortcfg *clone_sortprefs(void)
-{
-    struct sortcfg *result = NULL;
-
-    if(cfg)
+  
+    /* rename coverart to coverart_file */
+    if (prefs_get_string_value("coverart", &buf))
     {
-	result = g_memdup (&cfg->sortcfg, sizeof (struct sortcfg));
+	prefs_set_string("coverart_file", buf);
+	g_free(buf);
+	prefs_set_string("coverart", NULL);
     }
-    /* GLists are not copied */
-    result->tmp_sort_ign_fields = NULL;
-    result->tmp_sort_ign_strings = NULL;
-    return(result);
-}
+  
+    /* Convert old path numbered keys to named ones */
+  
+  
+    /* Play Now */
+    if (prefs_get_string_value_index("path", PATH_PLAY_NOW, &buf))
+    {
+	prefs_set_string("path_play_now", buf);
+	prefs_set_string_index("path", PATH_PLAY_NOW, NULL);
+	if (version < 0.87)
+	{  /* default changed from "xmms -p %s" to "xmms
+	      %s" which avoids xmms from hanging --
+	      thanks to Chris Vine */
+	    if (strcmp (buf, "xmms -p %s") == 0)
+	    {
+		prefs_set_string ("path_play_now", "xmms %s");
+	    }
+	}
+	g_free(buf);
+    }
+  
+    if (prefs_get_string_value_index("toolpath", PATH_PLAY_NOW, &buf))
+    {
+	prefs_set_string("path_play_now", buf);
+	g_free(buf);
+	prefs_set_string_index("toolpath", PATH_PLAY_NOW, NULL);
+    }
+  
+    /* Enqueue */
+    if (prefs_get_string_value_index("path", PATH_PLAY_ENQUEUE, &buf))
+    {
+	prefs_set_string("path_play_enqueue", buf);
+	g_free(buf);
+	prefs_set_string_index("path", PATH_PLAY_ENQUEUE, NULL);
+    }
+  
+    if (prefs_get_string_value_index("toolpath", PATH_PLAY_ENQUEUE, &buf))
+    {
+	prefs_set_string("path_play_enqueue", buf);
+	g_free(buf);
+	prefs_set_string_index("toolpath", PATH_PLAY_ENQUEUE, NULL);
+    }
+  
+    /* MP3 Gain */
+    if (prefs_get_string_value_index("path", PATH_MP3GAIN, &buf))
+    {
+	prefs_set_string("path_mp3gain", buf);
+	g_free(buf);
+	prefs_set_string_index("path", PATH_MP3GAIN, NULL);
+    }
+  
+    if (prefs_get_string_value_index("toolpath", PATH_MP3GAIN, &buf))
+    {
+	prefs_set_string("path_mp3gain", buf);
+	g_free(buf);
+	prefs_set_string_index("toolpath", PATH_MP3GAIN, NULL);
+    }
+  
+    /* Sync contacts */
+    if (prefs_get_string_value_index("path", PATH_SYNC_CONTACTS, &buf))
+    {
+	prefs_set_string("itdb_0_path_sync_contacts", buf);
+	g_free(buf);
+	prefs_set_string_index("path", PATH_SYNC_CONTACTS, NULL);
+    }
+  
+    if (prefs_get_string_value_index("toolpath", PATH_SYNC_CONTACTS, &buf))
+    {
+	prefs_set_string("itdb_0_path_sync_contacts", buf);
+	g_free(buf);
+	prefs_set_string_index("toolpath", PATH_SYNC_CONTACTS, NULL);
+    }
+  
+    /* Sync calendar */
+    if (prefs_get_string_value_index("path", PATH_SYNC_CALENDAR, &buf))
+    {
+	prefs_set_string("itdb_0_path_sync_calendar", buf);
+	g_free(buf);
+	prefs_set_string_index("path", PATH_SYNC_CALENDAR, NULL);
+    }
+  
+    if (prefs_get_string_value_index("toolpath", PATH_SYNC_CALENDAR, &buf))
+    {
+	prefs_set_string("itdb_0_path_sync_calendar", buf);
+	g_free(buf);
+	prefs_set_string_index("toolpath", PATH_SYNC_CALENDAR, NULL);
+    }
+  
+    /* Sync notes */
+    if (prefs_get_string_value_index("path", PATH_SYNC_NOTES, &buf))
+    {
+	prefs_set_string("itdb_0_path_sync_notes", buf);
+	g_free(buf);
+	prefs_set_string_index("path", PATH_SYNC_NOTES, NULL);
+    }
+  
+    if (prefs_get_string_value_index("toolpath", PATH_SYNC_NOTES, &buf))
+    {
+	prefs_set_string("itdb_0_path_sync_notes", buf);
+	g_free(buf);
+	prefs_set_string_index("toolpath", PATH_SYNC_NOTES, NULL);
+    }
+  
+    /* MSERV music root */
+    if (prefs_get_string_value_index("path", PATH_MSERV_MUSIC_ROOT, &buf))
+    {
+	prefs_set_string("path_mserv_music_root", buf);
+	g_free(buf);
+	prefs_set_string_index("path", PATH_MSERV_MUSIC_ROOT, NULL);
+    }
+  
+    if (prefs_get_string_value_index("toolpath", PATH_MSERV_MUSIC_ROOT, &buf))
+    {
+	prefs_set_string("path_mserv_music_root", buf);
+	g_free(buf);
+	prefs_set_string_index("toolpath", PATH_MSERV_MUSIC_ROOT, NULL);
+    }
+  
+    /* MSERV track info root */
+    if (prefs_get_string_value_index("path", PATH_MSERV_TRACKINFO_ROOT, &buf))
+    {
+	prefs_set_string("path_mserv_trackinfo_root", buf);
+	g_free(buf);
+	prefs_set_string_index("path", PATH_MSERV_TRACKINFO_ROOT, NULL);
+    }
+  
+    if (prefs_get_string_value_index("toolpath", PATH_MSERV_TRACKINFO_ROOT, &buf))
+    {
+	prefs_set_string("path_mserv_trackinfo_root", buf);
+	g_free(buf);
+	prefs_set_string_index("toolpath", PATH_MSERV_TRACKINFO_ROOT, NULL);
+    }
 
-gboolean prefs_get_autoimport(void)
-{
-    return(cfg->autoimport);
-}
+    /* If there's an extra (PATH_NUM) key, delete it */
+    prefs_set_string_index("path", PATH_NUM, NULL);
+    prefs_set_string_index("toolpath", PATH_NUM, NULL);
 
-void prefs_set_autoimport(gboolean val)
-{
-    cfg->autoimport = val;
-}
+    /* Ignore/remove some keys */
+    prefs_set_string("play_now_path", NULL);
+    prefs_set_string("sync_remove", NULL);
+    prefs_set_string("sync_remove_confirm", NULL);
+    prefs_set_string("show_sync_dirs", NULL);
+    prefs_set_string("play_enqueue_path", NULL);
+    prefs_set_string("mp3gain_path", NULL);
+    prefs_set_string("statusbar_timeout", NULL);
+    prefs_set_string("offline", NULL);
+    prefs_set_string("time_format", NULL);
+    prefs_set_string("id3_all", NULL);
+    prefs_set_string("pm_autostore", NULL);
+    prefs_set_string("backups", NULL);
+    prefs_set_string("save_sorted_order", NULL);
+    prefs_set_string("fix_path", NULL);
+    prefs_set_string("write_gaintag", NULL);
+    prefs_set_string("automount", NULL);
 
-gboolean prefs_get_autoimport_commandline(void)
-{
-    return(cfg->autoimport_commandline);
-}
 
-void prefs_set_autoimport_commandline(gboolean val)
-{
-    cfg->autoimport_commandline = val;
-}
-
-/* "inst": the instance of the sort tab */
-gboolean prefs_get_st_autoselect (guint32 inst)
-{
-    if (inst < SORT_TAB_MAX)
+    /* sp_created_cond renamed to sp_added_cond */
+    for (i = 0; i < SORT_TAB_MAX; i++)
     {
-	return cfg->st[inst].autoselect;
+	if (prefs_get_int_value_index("sp_created_cond", i, &int_buf))
+	{
+	    prefs_set_int_index("sp_added_cond", i, int_buf);
+	    prefs_set_string("sp_created_cond", NULL);
+	}
     }
-    else
+  
+    /* sp_created_state renamed to sp_added_state */
+    for (i = 0; i < SORT_TAB_MAX; i++)
     {
-	return TRUE;
+	if (prefs_get_int_value_index("sp_created_state", i, &int_buf))
+	{
+	    prefs_set_int_index("sp_added_state", i, int_buf);
+	    prefs_set_string("sp_created_state", NULL);
+	}
     }
-}
-
-/* "inst": the instance of the sort tab, "autoselect": should "All" be
- * selected automatically? */
-void prefs_set_st_autoselect (guint32 inst, gboolean autoselect)
-{
-    if (inst < SORT_TAB_MAX)
+  
+    /* sm_col_width renamed to tm_col_width */
+    for (i = 0; i < TM_NUM_COLUMNS; i++)
     {
-	cfg->st[inst].autoselect = autoselect;
+	if (prefs_get_int_value_index("sm_col_width", i, &int_buf))
+	{
+	    prefs_set_int_index("tm_col_width", i, int_buf);
+	    prefs_set_string_index("sm_col_width", i, NULL);
+	}
     }
-}
+  
+    /* handle version changes in prefs */
+    if (version == 0.0)
+    {
+	/* most likely prefs file written by V0.50 */
+	/* I added two new PANED elements since V0.50 --> shift */
+	for (i=PANED_NUM_ST-1; i>=0; --i)
+	{
+	    prefs_set_int_index("paned_pos_", PANED_NUM_GLADE + i,
+				prefs_get_int_index("paned_pos_", PANED_NUM_GLADE + i - 2));
+	}
+	prefs_set_int_index("paned_pos_", PANED_STATUS1, -1);
+	prefs_set_int_index("paned_pos_", PANED_STATUS2, -1);
+    }
 
-/* "inst": the instance of the sort tab */
-guint prefs_get_st_category (guint32 inst)
-{
-    if (inst < SORT_TAB_MAX)
+    /* set statusbar paned to a decent value if unset */
+    if (prefs_get_int_index("paned_pos_", PANED_STATUS1) == -1)
     {
-	return cfg->st[inst].category;
+	x = prefs_get_int("size_gtkpod.x");
+	/* set to about 2/3 of the window width */
+	if (x>0)   
+	    prefs_set_int_index("paned_pos_", PANED_STATUS1, 20*x/30);
     }
-    else
+  
+    if (prefs_get_int_index("paned_pos_", PANED_STATUS2) == -1)
     {
-	return TRUE; /* hmm.... this should not happen... */
+	x = prefs_get_int("size_gtkpod.x");
+	y = prefs_get_int("size_gtkpod.y");
+	p = prefs_get_int_index("paned_pos_", PANED_STATUS1);
+	/* set to about half of the remaining window */
+	if (x>0)   
+	    prefs_set_int_index("paned_pos_", PANED_STATUS2, (x-p)/2 );
     }
-}
 
-/* "inst": the instance of the sort tab, "category": one of the
-   ST_CAT_... */
-void prefs_set_st_category (guint32 inst, guint category)
-{
-    if ((inst < SORT_TAB_MAX) && (category < ST_CAT_NUM))
+    /* Changed layout of info window between 0.72 and 0.73 */
+    if (version < 0.73)
     {
-	cfg->st[inst].category = category;
+	prefs_set_string("size_info.x", NULL);
+	prefs_set_string("size_info.y", NULL);
     }
-    else
+    
+    /* auto_import reanmed to autoimport */
+    if (prefs_get_int_value("auto_import", &int_buf))
     {
-	gtkpod_warning (_(" Preferences: Category nr (%d<%d?) or sorttab nr (%d<%d?) out of range.\n"), category, ST_CAT_NUM, inst, SORT_TAB_MAX);
+	prefs_set_int("autoimport", int_buf);
+	prefs_set_string("auto_import", NULL);
     }
-}
 
-gboolean prefs_get_mpl_autoselect (void)
-{
-    return cfg->mpl_autoselect;
-}
+    /* not_played_song renamed to not_played_track */
+    if (prefs_get_int_value("not_played_song", &int_buf))
+    {
+	prefs_set_int("not_played_track", int_buf);
+	prefs_set_string("not_played_song", NULL);
+    }
 
-/* Should the MPL be selected automatically? */
-void prefs_set_mpl_autoselect (gboolean autoselect)
-{
-    cfg->mpl_autoselect = autoselect;
-}
+    /* misc_song_nr renamed to misc_track_nr */
+    if (prefs_get_int_value("misc_song_nr", &int_buf))
+    {
+	prefs_set_int("misc_track_nr", int_buf);
+	prefs_set_string("misc_song_nr", NULL);
+    }
 
+    /* sm_autostore renamed to tm_autostore */
+    if (prefs_get_int_value("sm_autostore", &int_buf))
+    {
+	prefs_set_int("tm_autostore", int_buf);
+	prefs_set_string("sm_autostore", NULL);
+    }
 
-/* retrieve the width of the track display columns. "col": one of the
-   TM_COLUMN_... */
-gint prefs_get_tm_col_width (gint col)
-{
-    if (col < TM_NUM_COLUMNS && (cfg->tm_col_width[col] > 0))
-	return cfg->tm_col_width[col];
-    return 80;  /* default -- col should be smaller than
-		   TM_NUM_COLUMNS) */
-}
+    /* sm_sortcol renamed to tm_sortcol */
+    if (prefs_get_int_value("sm_sortcol", &int_buf))
+    {
+	prefs_set_int("tm_sortcol", int_buf);
+	prefs_set_string("sm_sortcol", NULL);
+    }
 
-/* set the width of the track display columns. "col": one of the
-   TM_COLUMN_..., "width": current width */
-void prefs_set_tm_col_width (gint col, gint width)
-{
-    if (col < TM_NUM_COLUMNS && width > 0)
-	cfg->tm_col_width[col] = width;
-}
+    /* sm_sort_ renamed to tm_sort */
+    if (prefs_get_int_value("sm_sort_", &int_buf))
+    {
+	prefs_set_int("tm_sort_", int_buf);
+	prefs_set_string("sm_sort_", NULL);
+    }
 
+    /* filename_format renamed to export_template */
+    if (prefs_get_string_value("filename_format", &buf))
+    {
+	prefs_set_string("export_template", buf);
+	g_free(buf);
+	prefs_set_string("filename_format", NULL);
+    }
 
-/* Returns "$HOME/.gtkpod" and tries to create it if it does not
-   exist. */
-gchar *prefs_get_cfgdir (void)
-{
-  G_CONST_RETURN gchar *str;
-  gchar *cfgdir=NULL;
+    /* This string was a wrong autoconvert--just ignore it */
+    buf = prefs_get_string("export_template");
+    
+    if (strcmp(buf, "%a - %a/%T - %T.mp3") == 0)
+	prefs_set_string("export_template", NULL);
 
-  if((str = g_get_home_dir ()))
-  {
-      cfgdir = g_build_filename (str, ".gtkpod", NULL);
-      if(!g_file_test(cfgdir, G_FILE_TEST_IS_DIR))
-      {
-	  if(mkdir(cfgdir, 0777) == -1)
-	  {
-	      gtkpod_warning(_("Unable to 'mkdir %s'\n"), cfgdir);
-	  }
-      }
-  }
-  return cfgdir;
-}
+    /* We changed the meaning of the %x in export_template */
+    if (version < 0.72)
+    {
+	/* changed the meaning of the %x in export_template */
+	if (sp) while (*sp)
+	{
+	    if (sp[0] == '%')
+	    {
+		switch (sp[1]) {
+		case 'A':
+		    sp[1] = 'a';
+		    break;
+		case 'd':
+		    sp[1] = 'A';
+		    break;
+		case 'n':
+		    sp[1] = 't';
+		    break;
+		case 't':
+		    sp[1] = 'T';
+		    break;
+		default:
+		    break;
+		}
+	    }
+	}
+    }
 
-/* Returns the ipod_mount. Don't modify it! */
-const gchar *prefs_get_ipod_mount (void)
-{
-    return cfg->ipod_mount;
+    /* For versions < 0.91, remove all itdb keys */
+    if (version < 0.91)
+	prefs_flush_subkey("itdb_");
+   
+    prefs_set_string ("version", VERSION);
 }
 
-/* Sets the default size for the gtkpod window. -2 means: don't change
- * the current size */
-void prefs_set_size_gtkpod (gint x, gint y)
+/* Do things that need to be done before saving prefs */
+static void finalize_prefs()
 {
-    if (x != -2) cfg->size_gtkpod.x = x;
-    if (y != -2) cfg->size_gtkpod.y = y;
+  /* Sort column order needs to be stored */
+  tm_store_col_order();
+  
+  /* Update default sizes */
+  display_update_default_sizes();
 }
 
-/* Sets the default size for the calendar window. -2 means: don't change
- * the current size */
-void prefs_set_size_cal (gint x, gint y)
+/* Initialize the prefs table and read configuration */
+void init_prefs(int argc, char *argv[])
 {
-    if (x != -2) cfg->size_cal.x = x;
-    if (y != -2) cfg->size_cal.y = y;
-}
+    /* Create the prefs hash table */
+    prefs_table = g_hash_table_new_full(g_str_hash, g_str_equal, g_free,
+					g_free);
+	
+    /* Load preferences */
+    load_prefs();
 
-/* Sets the default size for the scrolled conf window. -2 means: don't
- * change the current size */
-void prefs_set_size_conf_sw (gint x, gint y)
-{
-    if (x != -2) cfg->size_conf_sw.x = x;
-    if (y != -2) cfg->size_conf_sw.y = y;
+    /* Clean up old prefs keys */
+    cleanup_keys();
+	
+    /* Read environment variables */
+    read_environment(); 
+	
+    /* Read commandline arguments */
+    read_commandline(argc, argv);  
 }
 
-/* Sets the default size for the non-scrolled conf window. -2 means:
- * don't change the current size */
-void prefs_set_size_conf (gint x, gint y)
+/* Save prefs data to a file, and then delete the hash table */
+void cleanup_prefs()
 {
-    if (x != -2) cfg->size_conf.x = x;
-    if (y != -2) cfg->size_conf.y = y;
+    if (prefs_table)
+    {
+	/* Let prefs do some things before saving */
+	finalize_prefs();
+    
+	/* Save prefs */
+	save_prefs();
+		
+	/* Delete the prefs hash table */
+	g_hash_table_destroy(prefs_table);
+	prefs_table = NULL;
+    }
 }
 
-/* Sets the default size for the dirbrowser window. -2 means:
- * don't change the current size */
-void prefs_set_size_dirbr (gint x, gint y)
+/* Create the temp prefs tree */
+/* Free the returned structure with delete_temp_prefs() */
+TempPrefs *temp_prefs_create()
 {
-    if (x != -2) cfg->size_dirbr.x = x;
-    if (y != -2) cfg->size_dirbr.y = y;
-}
+    TempPrefs *temp_prefs;  /* Retunred temp prefs structure */
 
-/* Sets the default size for the prefs window. -2 means:
- * don't change the current size */
-void prefs_set_size_prefs (gint x, gint y)
-{
-    if (x != -2) cfg->size_prefs.x = x;
-    if (y != -2) cfg->size_prefs.y = y;
-}
+    temp_prefs = (TempPrefs*)g_malloc(sizeof(TempPrefs));
 
-/* Sets the default size for the info window. -2 means:
- * don't change the current size */
-void prefs_set_size_info (gint x, gint y)
-{
-    if (x != -2) cfg->size_info.x = x;
-    if (y != -2) cfg->size_info.y = y;
-}
+    temp_prefs->tree = g_tree_new_full((GCompareDataFunc)strcmp, NULL,
+				       g_free, g_free);
 
-/* Writes the current default size for the gtkpod window in "x" and
-   "y" */
-void prefs_get_size_gtkpod (gint *x, gint *y)
-{
-    *x = cfg->size_gtkpod.x;
-    *y = cfg->size_gtkpod.y;
+    return temp_prefs;	
 }
 
-/* Writes the current default size for the gtkpod window in "x" and
-   "y" */
-void prefs_get_size_cal (gint *x, gint *y)
+/* Delete temp prefs */
+void temp_prefs_destroy(TempPrefs *temp_prefs)
 {
-    *x = cfg->size_cal.x;
-    *y = cfg->size_cal.y;
-}
+    g_return_if_fail (temp_prefs);
+    g_return_if_fail (temp_prefs->tree);
 
-/* Writes the current default size for the scrolled conf window in "x"
-   and "y" */
-void prefs_get_size_conf_sw (gint *x, gint *y)
-{
-    *x = cfg->size_conf_sw.x;
-    *y = cfg->size_conf_sw.y;
+    g_tree_destroy(temp_prefs->tree);
+    g_free(temp_prefs);
 }
 
-/* Writes the current default size for the non-scrolled conf window in
-   "x" and "y" */
-void prefs_get_size_conf (gint *x, gint *y)
+/* Copy key data from the temp prefs tree to the hash table */
+static gboolean copy_key(gpointer key, gpointer value, gpointer user_data)
 {
-    *x = cfg->size_conf.x;
-    *y = cfg->size_conf.y;
-}
-
-
-/* Writes the current default size for the dirbrowser window in
-   "x" and "y" */
-void prefs_get_size_dirbr (gint *x, gint *y)
-{
-    *x = cfg->size_dirbr.x;
-    *y = cfg->size_dirbr.y;
-}
-
-
-/* Writes the current default size for the info window in
-   "x" and "y" */
-void prefs_get_size_prefs (gint *x, gint *y)
-{
-    *x = cfg->size_prefs.x;
-    *y = cfg->size_prefs.y;
-}
-
-/* Writes the current default size for the info window in
-   "x" and "y" */
-void prefs_get_size_info (gint *x, gint *y)
-{
-    *x = cfg->size_info.x;
-    *y = cfg->size_info.y;
-}
-
-
-/* Should empty tags be set to filename? -- "category": one of the
-   TM_COLUMN_..., "autoset": new value */
-void prefs_set_autosettags (gint category, gboolean autoset)
-{
-    if (category < TM_NUM_TAGS_PREFS)
-	cfg->autosettags[category] = autoset;
-}
-
-
-/* Should empty tags be set to filename? -- "category": one of the
-   TM_COLUMN_... */
-gboolean prefs_get_autosettags (gint category)
-{
-    if (category < TM_NUM_TAGS_PREFS)
-	return cfg->autosettags[category];
+    prefs_set_string(key, value);
+	
     return FALSE;
 }
 
-void prefs_set_readtags(gboolean active)
+/* Copy the data from the temp prefs tree to the permanent prefs table */
+void temp_prefs_apply(TempPrefs *temp_prefs)
 {
-  cfg->readtags = active;
-}
+    g_return_if_fail (temp_prefs);
+    g_return_if_fail (temp_prefs->tree);
 
-gboolean prefs_get_readtags(void)
-{
-  return cfg->readtags;
+    g_tree_foreach (temp_prefs->tree, copy_key, NULL);
 }
 
-void prefs_set_parsetags(gboolean active)
-{
-  cfg->parsetags = active;
-}
 
-gboolean prefs_get_parsetags(void)
+/* Create a temp_prefs tree containing a subset of keys in the
+   permanent prefs table (those starting with @subkey */
+TempPrefs *prefs_create_subset (const gchar *subkey)
 {
-  return cfg->parsetags;
-}
+    struct sub_data sub_data;
 
-void prefs_set_parsetags_overwrite(gboolean active)
-{
-  cfg->parsetags_overwrite = active;
-}
+    g_return_val_if_fail (prefs_table, NULL);
 
-gboolean prefs_get_parsetags_overwrite(void)
-{
-  return cfg->parsetags_overwrite;
-}
+    sub_data.temp_prefs = temp_prefs_create ();
+    sub_data.subkey = subkey;
 
-const gchar *prefs_get_parsetags_template (void)
-{
-    return cfg->parsetags_template;
-}
+    g_hash_table_foreach (prefs_table, (GHFunc)get_subset, &sub_data);
 
-void prefs_set_parsetags_template (const gchar *tpl)
-{
-    if (tpl)
-    {
-	g_free(cfg->parsetags_template);
-	cfg->parsetags_template = g_strdup (tpl);
-    }
+    return sub_data.temp_prefs;
 }
 
-void prefs_set_coverart(gboolean active)
-{
-  cfg->coverart = active;
-}
 
-gboolean prefs_get_coverart(void)
+/* Create a temp_prefs tree containing a subset of keys in the
+   permanent prefs table (those starting with @subkey */
+TempPrefs *temp_prefs_create_subset (TempPrefs *temp_prefs,
+				     const gchar *subkey)
 {
-  return cfg->coverart;
-}
+    struct sub_data sub_data;
 
-const gchar *prefs_get_coverart_template (void)
-{
-    return cfg->coverart_template;
-}
+    g_return_val_if_fail (temp_prefs, NULL);
+    g_return_val_if_fail (temp_prefs->tree, NULL);
 
-void prefs_set_coverart_template (const gchar *tpl)
-{
-    if (tpl)
-    {
-	g_free(cfg->coverart_template);
-	cfg->coverart_template = g_strdup (tpl);
-    }
-}
+    sub_data.temp_prefs = temp_prefs_create ();
+    sub_data.subkey = subkey;
 
-/* Display column tm_item @visible: new value */
-void prefs_set_col_visible (TM_item tm_item, gboolean visible)
-{
-    if (tm_item < TM_NUM_COLUMNS)
-	cfg->col_visible[tm_item] = visible;
-}
+    g_tree_foreach (temp_prefs->tree, get_subset, &sub_data);
 
-
-/* Display column tm_item? */
-gboolean prefs_get_col_visible (TM_item tm_item)
-{
-    if (tm_item < TM_NUM_COLUMNS)
-	return cfg->col_visible[tm_item];
-    return FALSE;
+    return sub_data.temp_prefs;
 }
 
-/* Display which column at nr @pos? */
-void prefs_set_col_order (gint pos, TM_item tm_item)
-{
-    if (pos < TM_NUM_COLUMNS)
-	cfg->col_order[pos] = tm_item;
-}
 
-
-/* Display column nr @pos? */
-TM_item prefs_get_col_order (gint pos)
+/* Remove all keys in the temp prefs tree from the permanent prefs
+   table */
+void temp_prefs_flush(TempPrefs *temp_prefs)
 {
-    if (pos < TM_NUM_COLUMNS)
-	return cfg->col_order[pos];
-    return -1;
-}
+    g_return_if_fail (temp_prefs);
+    g_return_if_fail (temp_prefs->tree);
 
-/* get position of GtkPaned element nr. "i" */
-/* return value: -1: don't change position */
-gint prefs_get_paned_pos (gint i)
-{
-    if (i < PANED_NUM)
-	return cfg->paned_pos[i];
-    else
-    {
-	g_warning ("Programming error: prefs_get_paned_pos: arg out of range (%d)\n", i);
-	return 100; /* something reasonable? */
-    }
+    g_tree_foreach (temp_prefs->tree, flush_key, NULL);
 }
 
-/* set position of GtkPaned element nr. "i" */
-void prefs_set_paned_pos (gint i, gint pos)
+/* Return the number of keys stored in @temp_prefs */
+gint temp_prefs_size (TempPrefs *temp_prefs)
 {
-    if (i < PANED_NUM)
-	cfg->paned_pos[i] = pos;
-}
+    g_return_val_if_fail (temp_prefs, 0);
+    g_return_val_if_fail (temp_prefs->tree, 0);
 
-
-/* A value of "0" will set the default defined in misc.c */
-void prefs_set_statusbar_timeout (guint32 val)
-{
-    if (val == 0)  val = STATUSBAR_TIMEOUT;
-    cfg->statusbar_timeout = val;
-    gtkpod_statusbar_reset_timeout ();
+    return g_tree_nnodes (temp_prefs->tree);
 }
 
-guint32 prefs_get_statusbar_timeout (void)
-{
-    return cfg->statusbar_timeout;
-}
 
-gboolean prefs_get_show_duplicates (void)
+/* Returns TRUE if at least one key starting with @subkey exists */
+gboolean temp_prefs_subkey_exists (TempPrefs *temp_prefs,
+				   const gchar *subkey)
 {
-    return cfg->show_duplicates;
-}
+    struct sub_data sub_data;
 
-void prefs_set_show_duplicates (gboolean val)
-{
-    cfg->show_duplicates = val;
-}
+    g_return_val_if_fail (temp_prefs && subkey, FALSE);
 
-gboolean prefs_get_show_updated (void)
-{
-    return cfg->show_updated;
-}
+    sub_data.temp_prefs = NULL;
+    sub_data.subkey = subkey;
+    sub_data.exists = FALSE;
 
-void prefs_set_show_updated (gboolean val)
-{
-    cfg->show_updated = val;
-}
+    g_tree_foreach (temp_prefs->tree, check_subkey, &sub_data);
 
-gboolean prefs_get_show_non_updated (void)
-{
-    return cfg->show_non_updated;
+    return sub_data.exists;
 }
 
-void prefs_set_show_non_updated (gboolean val)
-{
-    cfg->show_non_updated = val;
-}
 
-gboolean prefs_get_show_sync_dirs (void)
-{
-    return cfg->show_sync_dirs;
-}
+/* Special functions */
 
-void prefs_set_show_sync_dirs (gboolean val)
+/* Remove all keys that start with @subkey */
+void prefs_flush_subkey (const gchar *subkey)
 {
-    cfg->show_sync_dirs = val;
-}
+    g_return_if_fail (prefs_table);
 
-gboolean prefs_get_sync_remove (void)
-{
-    return cfg->sync_remove;
+    g_hash_table_foreach_remove (prefs_table, match_subkey, (gchar *)subkey);
 }
 
-void prefs_set_sync_remove (gboolean val)
-{
-    cfg->sync_remove = val;
-}
 
-gboolean prefs_get_display_toolbar (void)
-{
-    return cfg->display_toolbar;
-}
+/* Rename all keys that start with @subkey_old in such a way that they
+   start with @subkey_new */
+void prefs_rename_subkey (const gchar *subkey_old, const gchar *subkey_new){
+    struct sub_data sub_data;
 
-void prefs_set_display_toolbar (gboolean val)
-{
-    cfg->display_toolbar = val;
-    display_show_hide_toolbar ();
-}
+    g_return_if_fail (prefs_table);
+    g_return_if_fail (subkey_old);
+    g_return_if_fail (subkey_new);
 
-gboolean prefs_get_update_charset (void)
-{
-    return cfg->update_charset;
-}
+    sub_data.temp_prefs = prefs_create_subset (subkey_old);
+    sub_data.temp_prefs_orig = NULL;
 
-void prefs_set_update_charset (gboolean val)
-{
-    cfg->update_charset = val;
-}
+    if (temp_prefs_size (sub_data.temp_prefs) > 0)
+    {
+	sub_data.subkey = subkey_old;
+	sub_data.subkey2 = subkey_new;
+	g_tree_foreach (sub_data.temp_prefs->tree, subst_key, &sub_data);
+    }
 
-gboolean prefs_get_write_charset (void)
-{
-    return cfg->write_charset;
+    temp_prefs_destroy (sub_data.temp_prefs);
 }
 
-void prefs_set_write_charset (gboolean val)
-{
-    cfg->write_charset = val;
-}
 
-gboolean prefs_get_add_recursively (void)
+/* Rename all keys that start with @subkey_old in such a way that they
+   start with @subkey_new */
+void temp_prefs_rename_subkey (TempPrefs *temp_prefs,
+			       const gchar *subkey_old,
+			       const gchar *subkey_new)
 {
-    return cfg->add_recursively;
-}
+    struct sub_data sub_data;
 
-void prefs_set_add_recursively (gboolean val)
-{
-    cfg->add_recursively = val;
-}
+    g_return_if_fail (temp_prefs);
+    g_return_if_fail (subkey_old);
+    g_return_if_fail (subkey_new);
 
-gboolean prefs_get_case_sensitive (void)
-{
-    return cfg->sortcfg.case_sensitive;
-}
+    sub_data.temp_prefs_orig = temp_prefs;
+    sub_data.temp_prefs = temp_prefs_create_subset (temp_prefs,
+						    subkey_old);
 
-void prefs_set_case_sensitive (gboolean val)
-{
-    cfg->sortcfg.case_sensitive = val;
-}
-
-gint prefs_get_sort_tab_num (void)
-{
-    return cfg->sort_tab_num;
-}
-
-void prefs_set_sort_tab_num (gint i, gboolean update_display)
-{
-    if ((i>=0) && (i<=SORT_TAB_MAX))
+    if (temp_prefs_size (sub_data.temp_prefs) > 0)
     {
-	if (cfg->sort_tab_num != i)
-	{
-	    cfg->sort_tab_num = i;
-	    if (update_display) st_show_visible ();
-	}
+	sub_data.subkey = subkey_old;
+	sub_data.subkey2 = subkey_new;
+	g_tree_foreach (sub_data.temp_prefs->tree, subst_key, &sub_data);
     }
-}
 
-gboolean prefs_get_group_compilations (void)
-{
-    return cfg->group_compilations;
+    temp_prefs_destroy (sub_data.temp_prefs);
 }
 
-void prefs_set_group_compilations (gboolean val, gboolean update_display)
-{
-    cfg->group_compilations = val;
-    if (update_display) st_show_visible ();
-}
+/* Functions for non-numbered pref keys */
 
-GtkToolbarStyle prefs_get_toolbar_style (void)
+/* Set a string value with the given key, or remove key if @value is
+   NULL */
+void prefs_set_string(const gchar *key, const gchar *value)
 {
-    return cfg->toolbar_style;
-}
+    g_return_if_fail (key);
 
-void prefs_set_toolbar_style (GtkToolbarStyle i)
-{
-    switch (i)
+    if (prefs_table)
     {
-    case GTK_TOOLBAR_ICONS:
-    case GTK_TOOLBAR_TEXT:
-    case GTK_TOOLBAR_BOTH:
-	break;
-    case GTK_TOOLBAR_BOTH_HORIZ:
-	i = GTK_TOOLBAR_BOTH;
-	break;
-    default:  /* illegal -- ignore */
-	gtkpod_warning (_("prefs_set_toolbar_style: illegal style '%d' ignored\n"), i);
-	return;
+	if (value)
+	    g_hash_table_insert (prefs_table,
+				 g_strdup(key), g_strdup(value));
+	else
+	    g_hash_table_remove (prefs_table, key);
     }
-
-    cfg->toolbar_style = i;
-    display_show_hide_toolbar ();
 }
 
-gboolean prefs_get_pm_autostore (void)
+/* Set a key value to a given integer */
+void prefs_set_int(const gchar *key, const gint value)
 {
-    return cfg->sortcfg.pm_autostore;
-}
+    gchar *strvalue; /* String value converted from integer */
 
-void prefs_set_pm_autostore (gboolean val)
-{
-    cfg->sortcfg.pm_autostore = val;
-}
-
-gboolean prefs_get_tm_autostore (void)
-{
-    return cfg->sortcfg.tm_autostore;
-}
-
-void prefs_set_tm_autostore (gboolean val)
-{
-    cfg->sortcfg.tm_autostore = val;
-}
-
-gint prefs_get_pm_sort (void)
-{
-    return cfg->sortcfg.pm_sort;
-}
-
-void prefs_set_pm_sort (gint i)
-{
-    switch (i)
+    if (prefs_table)
     {
-    case SORT_ASCENDING:
-    case SORT_DESCENDING:
-    case SORT_NONE:
-	break;
-    default:  /* illegal -- ignore */
-	gtkpod_warning (_("prefs_set_pm_sort: illegal type '%d' ignored\n"), i);
-	return;
+	strvalue = g_strdup_printf("%i", value);
+	g_hash_table_insert(prefs_table, g_strdup(key), strvalue);
     }
-
-    cfg->sortcfg.pm_sort = i;
 }
 
-gint prefs_get_st_sort (void)
+/* Set a key to an int64 value */
+void prefs_set_int64(const gchar *key, const gint64 value)
 {
-    return cfg->sortcfg.st_sort;
-}
-
-void prefs_set_st_sort (gint i)
-{
-    switch (i)
+    gchar *strvalue; /* String value converted from int64 */
+	
+    if (prefs_table)
     {
-    case SORT_ASCENDING:
-    case SORT_DESCENDING:
-    case SORT_NONE:
-	cfg->sortcfg.st_sort = i;
-	break;
-    default:  /* illegal -- ignore */
-	gtkpod_warning ("Programming error: prefs_set_st_sort: illegal type '%d' ignored\n", i);
-	break;
+	strvalue = g_strdup_printf("%llu", value);
+	g_hash_table_insert(prefs_table, g_strdup(key), strvalue);	
     }
 }
 
-gint prefs_get_tm_sort (void)
+void prefs_set_double(const gchar *key, gdouble value)
 {
-    return cfg->sortcfg.tm_sort;
-}
+    gchar *strvalue; /* String value converted from integer */
 
-void prefs_set_tm_sort (gint i)
-{
-    switch (i)
+    if (prefs_table)
     {
-    case SORT_ASCENDING:
-    case SORT_DESCENDING:
-    case SORT_NONE:
-	cfg->sortcfg.tm_sort = i;
-	break;
-    default:  /* illegal -- ignore */
-	gtkpod_warning ("Programming error: prefs_set_tm_sort: illegal type '%d' ignored\n", i);
-	break;
+	strvalue = g_strdup_printf("%f", value);
+	g_hash_table_insert(prefs_table, g_strdup(key), strvalue);
     }
-
 }
 
-TM_item prefs_get_tm_sortcol (void)
-{
-    return cfg->sortcfg.tm_sortcol;
+/* Get a string value associated with a key. Free returned string. */
+gchar *prefs_get_string(const gchar *key)
+{	
+    if (prefs_table)
+	return g_strdup(g_hash_table_lookup(prefs_table, key));
+    else
+	return NULL;
 }
 
-void prefs_set_tm_sortcol (TM_item i)
+/* Use this if you need to know if the given key actually exists */
+/* The value parameter can be NULL if you don't need the value itself. */
+gboolean prefs_get_string_value(const gchar *key, gchar **value)
 {
-    if (i < TM_NUM_COLUMNS)
-	cfg->sortcfg.tm_sortcol = i;
-}
-
-void prefs_set_display_tooltips_main (gboolean state)
-{
-    cfg->display_tooltips_main = state;
-    display_show_hide_tooltips ();
-}
-
-gboolean prefs_get_display_tooltips_main (void)
-{
-    return cfg->display_tooltips_main;
-}
-
-void prefs_set_display_tooltips_prefs (gboolean state)
-{
-    cfg->display_tooltips_prefs = state;
-    display_show_hide_tooltips ();
-}
-
-gboolean prefs_get_display_tooltips_prefs (void)
-{
-    return cfg->display_tooltips_prefs;
-}
-
-void prefs_set_multi_edit (gboolean state)
-{
-    cfg->multi_edit = state;
-}
-
-gboolean prefs_get_multi_edit (void)
-{
-    return cfg->multi_edit;
-}
-
-void prefs_set_not_played_track (gboolean state)
-{
-    cfg->not_played_track = state;
-}
-
-gboolean prefs_get_not_played_track (void)
-{
-    return cfg->not_played_track;
-}
-
-void prefs_set_misc_track_nr (gint state)
-{
-    cfg->misc_track_nr = state;
-}
-
-gint prefs_get_misc_track_nr (void)
-{
-    return cfg->misc_track_nr;
-}
-
-void prefs_set_multi_edit_title (gboolean state)
-{
-    cfg->multi_edit_title = state;
-}
-
-gboolean prefs_get_multi_edit_title (void)
-{
-    return cfg->multi_edit_title;
-}
-
-gint prefs_get_last_prefs_page (void)
-{
-    return cfg->last_prefs_page;
-}
-
-void prefs_set_last_prefs_page (gint i)
-{
-    cfg->last_prefs_page = i;
-}
-
-/* validate the the play_path @path and return a valid copy that has
- * to be freed with g_free when it's not needed any more. */
-/* Rules: - must be '%(member of allowed)'
-	  - removes all invalid '%' */
-gchar *prefs_validate_path (const gchar *path, const gchar *allowed)
-{
-    const gchar *pp;
-    gchar *npp, *npath=NULL;
-
-    if ((!path) || (strlen (path) == 0)) return g_strdup ("");
-    if (!allowed)  allowed = "";
-
-    npath = g_malloc0 (strlen (path)+1); /* new path can only be shorter
-					    than old path */
-    pp = path;
-    npp = npath;
-    while (*pp)
+    gchar *string;  /* String value from prefs table */
+	
+    if (prefs_table)
     {
-	if (*pp == '%')
-	{
-	    if (*(pp+1) && strchr (allowed, *(pp+1)) == NULL)
-	    {
-		if (strlen (allowed) == 0)
-		{
-		    gtkpod_warning (_("'%s': no arguments (%%...) allowed.\n"),
-				    path);
-		}
-		else
-		{
-		    gtkpod_warning (_("'%s': only '%%[%s]' allowed.\n"),
-				    path, allowed);
-		}
-		++pp; /* skip '%...' */
-	    }
-	    else
-	    {   /* copy '%s' */
-		*npp++ = *pp++;
-		*npp++ = *pp;
-	    }
-	}
-	else
-	{
-	    *npp++ = *pp;
-	}
-	if (*pp) ++pp; /* increment if we are not at the end */
+	string = g_hash_table_lookup(prefs_table, key);
+		
+	if (value)
+	    *value = g_strdup (string);
+	if (string)
+	    return TRUE;
     }
-    return npath;
+    return FALSE;
 }
 
-
-void prefs_set_path (PathType i, const gchar *path)
+/* Get an integer value from a key */
+gint prefs_get_int(const gchar *key)
 {
-    switch (i)
+    gchar *string; /* Hash value string */
+    gint value;  /* Retunred value */
+	
+    value = 0;
+	
+    if (prefs_table)
     {
-    case PATH_PLAY_NOW:
-    case PATH_PLAY_ENQUEUE:
-	g_free (cfg->path[i]);
-	cfg->path[i] = prefs_validate_path (path, "s");
-	break;
-    case PATH_MP3GAIN:
-    case PATH_MSERV_MUSIC_ROOT:
-    case PATH_MSERV_TRACKINFO_ROOT:
-	g_free (cfg->path[i]);
-	if (path)
-	    cfg->path[i] = g_strstrip (g_strdup (path));
-	else
-	    cfg->path[i] = g_strdup ("");
-	break;
-    case PATH_SYNC_CONTACTS:
-    case PATH_SYNC_CALENDAR:
-    case PATH_SYNC_NOTES:
-	g_free (cfg->path[i]);
-	cfg->path[i] = prefs_validate_path (path, "i");
-	break;
-    case PATH_NUM:
-	break;
+	string = g_hash_table_lookup(prefs_table, key);
+		
+	if (string)
+	    value = atoi(string);
     }
-}
 
-
-const gchar *prefs_get_path (PathType i)
-{
-    g_return_val_if_fail (i>=0 && i<PATH_NUM, "");
-    return cfg->path[i];
+    return value;
 }
 
-gboolean 
-prefs_get_automount (void)
+/* Use this if you need to know if the given key actually exists */
+/* The value parameter can be NULL if you don't need the value itself. */
+gboolean prefs_get_int_value(const gchar *key, gint *value)
 {
-    return cfg->automount;
-}
-void
-
-prefs_set_automount(gboolean val)
-{
-    cfg->automount = val;
-}
-
-gboolean
-prefs_get_info_window(void)
-{
-    return cfg->info_window;
-}
-void
-
-prefs_set_info_window(gboolean val)
-{
-    cfg->info_window = val;
-}
-
-void prefs_set_sp_or (guint32 inst, gboolean state)
-{
-    if (inst < SORT_TAB_MAX)	cfg->st[inst].sp_or = state;
-}
-
-gboolean prefs_get_sp_or (guint32 inst)
-{
-    if (inst < SORT_TAB_MAX)	return cfg->st[inst].sp_or;
-    return FALSE;
-}
-
-/* Set whether condition @t_item in sort tab @inst is activated or not */
-void prefs_set_sp_cond (guint32 inst, T_item t_item, gboolean state)
-{
-    if (inst < SORT_TAB_MAX)
+    gchar *string;  /* String value from prefs table */
+	
+    if (prefs_table)
     {
-	switch (t_item)
-	{
-	case T_RATING:
-	    cfg->st[inst].sp_rating = state;
-	    break;
-	case T_PLAYCOUNT:
-	    cfg->st[inst].sp_playcount = state;
-	    break;
-	case T_TIME_PLAYED:
-	    cfg->st[inst].sp_played = state;
-	    break;
-	case T_TIME_MODIFIED:
-	    cfg->st[inst].sp_modified = state;
-	    break;
-	case T_TIME_ADDED:
-	    cfg->st[inst].sp_added = state;
-	    break;
-	default:
-	    /* programming error */
-	    fprintf (stderr, "prefs_set_sp_cond(): inst=%d, !t_item=%d!\n",
-		     inst, t_item);
-	    break;
-	}
-    }
-    else
-    {
-	/* programming error */
-	fprintf (stderr, "prefs_set_sp_cond(): !inst=%d! t_item=%d\n",
-		 inst, t_item);
-    }
-}
+	string = g_hash_table_lookup(prefs_table, key);
 
-
-/* Set whether condition @t_item in sort tab @inst is activated or not */
-gboolean prefs_get_sp_cond (guint32 inst, T_item t_item)
-{
-    if (inst < SORT_TAB_MAX)
-    {
-	switch (t_item)
+	if (value)
 	{
-	case T_RATING:
-	    return cfg->st[inst].sp_rating;
-	case T_PLAYCOUNT:
-	    return cfg->st[inst].sp_playcount;
-	case T_TIME_PLAYED:
-	    return cfg->st[inst].sp_played;
-	case T_TIME_MODIFIED:
-	    return cfg->st[inst].sp_modified;
-	case T_TIME_ADDED:
-	    return cfg->st[inst].sp_added;
-	default:
-	    /* programming error */
-	    fprintf (stderr, "prefs_get_sp_cond(): inst=%d !t_item=%d!\n",
-		     inst, t_item);
-	    break;
+	    if (string)
+		*value = atoi(string);
+	    else
+		*value = 0;
 	}
+
+	if (string)
+	    return TRUE;
     }
-    else
-    {
-	/* programming error */
-	fprintf (stderr, "prefs_get_sp_cond(): !inst=%d! t_item=%d\n",
-		 inst, t_item);
-    }
     return FALSE;
 }
 
-
-void prefs_set_sp_rating_n (guint32 inst, gint n, gboolean state)
+/* Get a 64 bit integer value from a key */
+gint64 prefs_get_int64(const gchar *key)
 {
-    if ((inst < SORT_TAB_MAX) && (n <=RATING_MAX))
+    gchar *string;  /* Key value string */
+    gint64 value;  /* Retunred value */
+	
+    value = 0;
+
+    if (prefs_table)
     {
-	if (state)
-	    cfg->st[inst].sp_rating_state |= (1<<n);
-	else
-	    cfg->st[inst].sp_rating_state &= ~(1<<n);
+	string = g_hash_table_lookup(prefs_table, key);
+
+	if (string)
+	    value = g_ascii_strtoull(string, NULL, 10);
     }
-    else
-	fprintf (stderr, "prefs_set_sp_rating_n(): inst=%d, n=%d\n", inst, n);
+	
+    return value;
 }
 
-
-gboolean prefs_get_sp_rating_n (guint32 inst, gint n)
+/* Get a 64 bit integer value from a key */
+/* Use this if you need to know if the given key actually exists */
+/* The value parameter can be NULL if you don't need the value itself. */
+gboolean prefs_get_int64_value(const gchar *key, gint64 *value)
 {
-    if ((inst < SORT_TAB_MAX) && (n <=RATING_MAX))
+    gchar *string;  /* String value from prefs table */
+	
+    if (prefs_table)
     {
-	if ((cfg->st[inst].sp_rating_state & (1<<n)) != 0)
+	string = g_hash_table_lookup(prefs_table, key);
+		
+	if (string)
+	{
+	    if (value)
+		*value = g_ascii_strtoull(string, NULL, 10);
+			
 	    return TRUE;
-	else
-	    return FALSE;
+	}
     }
-    fprintf (stderr, "prefs_get_sp_rating_n(): inst=%d, n=%d\n", inst, n);
     return FALSE;
 }
 
-
-void prefs_set_sp_rating_state (guint32 inst, guint32 state)
+gdouble prefs_get_double(const gchar *key)
 {
-    if (inst < SORT_TAB_MAX)
-	/* only keep the 'RATING_MAX+1' lowest bits */
-	cfg->st[inst].sp_rating_state = (state & ((1<<(RATING_MAX+1))-1));
-    else
-	fprintf (stderr, "prefs_set_sp_rating_state(): inst=%d\n", inst);
-}
+    gchar *string;  /* Key value string */
+    gdouble value;  /* Retunred value */
+	
+    value = 0;
 
-
-guint32 prefs_get_sp_rating_state (guint32 inst)
-{
-    if (inst < SORT_TAB_MAX)
-	return cfg->st[inst].sp_rating_state;
-    fprintf (stderr, "prefs_get_sp_rating_state(): inst=%d\n", inst);
-    return 0;
-}
-
-
-void prefs_set_sp_entry (guint32 inst, T_item t_item, const gchar *str)
-{
-/*    printf("psse: %d, %d, %s\n", inst, t_item, str);*/
-    if (inst < SORT_TAB_MAX)
+    if (prefs_table)
     {
-	gchar *cstr = NULL;
+	string = g_hash_table_lookup(prefs_table, key);
 
-	if (str)  cstr = g_strdup (str);
-
-	switch (t_item)
-	{
-	case T_TIME_PLAYED:
-	    g_free (cfg->st[inst].sp_played_state);
-	    cfg->st[inst].sp_played_state = cstr;
-	    break;
-	case T_TIME_MODIFIED:
-	    g_free (cfg->st[inst].sp_modified_state);
-	    cfg->st[inst].sp_modified_state = cstr;
-	    break;
-	case T_TIME_ADDED:
-	    g_free (cfg->st[inst].sp_added_state);
-	    cfg->st[inst].sp_added_state = cstr;
-	    break;
-	default:
-	    /* programming error */
-	    g_free (cstr);
-	    fprintf (stderr, "prefs_set_sp_entry(): inst=%d !t_item=%d!\n",
-		     inst, t_item);
-	    break;
-	}
+	if (string)
+	    value = g_ascii_strtod(string, NULL);
     }
-    else
-    {
-	/* programming error */
-	fprintf (stderr, "prefs_set_sp_entry(): !inst=%d! t_item=%d\n",
-		 inst, t_item);
-    }
+	
+    return value;
 }
 
-
-/* Returns the current default or a pointer to "". Guaranteed to never
-   return NULL */
-gchar *prefs_get_sp_entry (guint32 inst, T_item t_item)
+gboolean prefs_get_double_value(const gchar *key, gdouble *value)
 {
-    gchar *result = NULL;
-
-    if (inst < SORT_TAB_MAX)
+    gchar *string;  /* String value from prefs table */
+	
+    if (prefs_table)
     {
-	switch (t_item)
+	string = g_hash_table_lookup(prefs_table, key);
+		
+	if (string)
 	{
-	case T_TIME_PLAYED:
-	    result = cfg->st[inst].sp_played_state;
-	    break;
-	case T_TIME_MODIFIED:
-	    result = cfg->st[inst].sp_modified_state;
-	    break;
-	case T_TIME_ADDED:
-	    result = cfg->st[inst].sp_added_state;
-	    break;
-	default:
-	    /* programming error */
-	    fprintf (stderr, "prefs_get_sp_entry(): !t_item=%d!\n", t_item);
-	    break;
+	    if (value)
+		*value = g_ascii_strtod(string, NULL);
+			
+	    return TRUE;
 	}
     }
-    else
-    {
-	/* programming error */
-	fprintf (stderr, "prefs_get_sp_entry(): !inst=%d!\n", inst);
-    }
-    if (result == NULL)    result = "";
-    return result;
+    return FALSE;
 }
 
+/* Functions for numbered pref keys */
 
-void prefs_set_sp_autodisplay (guint32 inst, gboolean state)
+/* Set a string value with the given key */
+void prefs_set_string_index(const gchar *key, const guint index, 
+			    const gchar *value)
 {
-    if (inst < SORT_TAB_MAX)
-	cfg->st[inst].sp_autodisplay = state;
-    else
-	fprintf (stderr, "prefs_set_sp_autodisplay(): !inst=%d!\n", inst);
+    gchar *full_key; /* Complete numbered key */
+	
+    full_key = create_full_key(key, index);
+    prefs_set_string(full_key, value);
+	
+    g_free(full_key);
 }
 
-
-gboolean prefs_get_sp_autodisplay (guint32 inst)
+/* Set a key value to a given integer */
+void prefs_set_int_index(const gchar *key, const guint index, 
+			 const gint value)
 {
-    if (inst < SORT_TAB_MAX)
-	return cfg->st[inst].sp_autodisplay;
-    else
-	fprintf (stderr, "prefs_get_sp_autodisplay(): !inst=%d!\n", inst);
-    return FALSE;
+    gchar *full_key; /* Complete numbered key */
+	
+    full_key = create_full_key(key, index);
+    prefs_set_int(full_key, value);
+	
+    g_free(full_key);
 }
 
-
-gint32 prefs_get_sp_playcount_low (guint32 inst)
+/* Set a key to an int64 value */
+void prefs_set_int64_index(const gchar *key, const guint index, 
+			   const gint64 value)
 {
-    if (inst < SORT_TAB_MAX)
-	return cfg->st[inst].sp_playcount_low;
-    else
-	fprintf (stderr, "prefs_get_sp_playcount_low(): !inst=%d!\n", inst);
-    return 0;
+    gchar *full_key; /* Complete numbered key */
+	
+    full_key = create_full_key(key, index);
+    prefs_set_int64(full_key, value);
+	
+    g_free(full_key);
 }
 
-
-gint32 prefs_get_sp_playcount_high (guint32 inst)
+/* Set a key to a gdouble value */
+void prefs_set_double_index(const gchar *key, guint index,
+			     gdouble value)
 {
-    if (inst < SORT_TAB_MAX)
-	return cfg->st[inst].sp_playcount_high;
-    else
-	fprintf (stderr, "prefs_get_sp_playcount_high(): !inst=%d!\n", inst);
-    return (guint32)-1;
+    gchar *full_key; /* Complete numbered key */
+	
+    full_key = create_full_key(key, index);
+    prefs_set_double(full_key, value);
+	
+    g_free(full_key);
 }
 
-
-void prefs_set_sp_playcount_low (guint32 inst, gint32 limit)
-{
-    if (inst < SORT_TAB_MAX)
-	cfg->st[inst].sp_playcount_low = limit;
-    else
-	fprintf (stderr, "prefs_set_sp_playcount_low(): !inst=%d!\n", inst);
+/* Get a string value associated with a key. Free returned string. */
+gchar *prefs_get_string_index(const gchar *key, const guint index)
+{	
+    gchar *full_key; /* Complete numbered key */
+    gchar *string;  /* Return string */
+	
+    full_key = create_full_key(key, index);
+    string = prefs_get_string(full_key);
+	
+    g_free(full_key);
+    return string;
 }
 
-
-void prefs_set_sp_playcount_high (guint32 inst, gint32 limit)
+/* Get a string value associated with a key. Free returned string. */
+/* Use this if you need to know if the given key actually exists */
+gboolean prefs_get_string_value_index(const gchar *key, const guint index, 
+				      gchar **value)
 {
-    if (inst < SORT_TAB_MAX)
-	cfg->st[inst].sp_playcount_high = limit;
-    else
-	fprintf (stderr, "prefs_set_sp_playcount_high(): !inst=%d!\n", inst);
+    gchar *full_key; /* Complete numbered key */
+    gboolean ret; /* Return value */
+	
+    full_key = create_full_key(key, index);
+    ret = prefs_get_string_value(full_key, value);
+	
+    g_free(full_key);
+    return ret;
 }
 
-gboolean prefs_get_concal_autosync(void)
+/* Get an integer value from a key */
+gint prefs_get_int_index(const gchar *key, const guint index)
 {
-    return(cfg->concal_autosync);
-}
+    gchar *full_key; /* Complete numbered key */
+    gint value;  /* Returned integer value */
 
-void prefs_set_concal_autosync(gboolean val)
-{
-    cfg->concal_autosync = val;
+    full_key = create_full_key(key, index);
+    value = prefs_get_int(full_key);
+	
+    g_free(full_key);
+    return value;
 }
 
-gboolean prefs_get_tmp_disable_sort(void)
+/* Get an integer value from a key */
+/* Use this if you need to know if the given key actually exists */
+gboolean prefs_get_int_value_index(const gchar *key, const guint index,  
+				   gint *value)
 {
-    return(cfg->tmp_disable_sort);
+    gchar *full_key; /* Complete numbered key */
+    gboolean ret; /* Return value */
+	
+    full_key = create_full_key(key, index);
+    ret = prefs_get_int_value(full_key, value);
+	
+    g_free(full_key);
+    return ret;
 }
 
-void prefs_set_tmp_disable_sort(gboolean val)
+/* Get a 64 bit integer value from a key */
+gint64 prefs_get_int64_index(const gchar *key, const guint index)
 {
-    cfg->tmp_disable_sort = val;
+    gchar *full_key; /* Complete numbered key */
+    gint64 value; /* Return value */
+	
+    full_key = create_full_key(key, index);
+    value = prefs_get_int64(full_key);
+	
+    g_free(full_key);
+    return value;
 }
 
-gboolean prefs_get_startup_messages(void)
+/* Get a 64 bit integer value from a key */
+/* Use this if you need to know if the given key actually exists */
+gboolean prefs_get_int64_value_index(const gchar *key, const guint index, 
+				     gint64 *value)
 {
-    return(cfg->startup_messages);
+    gchar *full_key; /* Complete numbered key */
+    gboolean ret; /* Return value */
+	
+    full_key = create_full_key(key, index);
+    ret = prefs_get_int64_value(full_key, value);
+	
+    g_free(full_key);
+    return ret;
 }
 
-void prefs_set_startup_messages(gboolean val)
+gdouble prefs_get_double_index(const gchar *key, guint index)
 {
-    cfg->startup_messages = val;
+    gchar *full_key; /* Complete numbered key */
+    gdouble value; /* Return value */
+	
+    full_key = create_full_key(key, index);
+    value = prefs_get_double(full_key);
+	
+    g_free(full_key);
+    return value;
 }
 
-/* sorting gets disabled temporarily if either of the options
-   'tmp_disable_sort' or 'block_display' is checked */
-gboolean prefs_get_disable_sorting(void)
+gboolean prefs_get_double_value_index(const gchar *key, guint index,
+				      gdouble *value)
 {
-    return (prefs_get_block_display() || prefs_get_tmp_disable_sort());
+    gchar *full_key; /* Complete numbered key */
+    gboolean ret; /* Return value */
+	
+    full_key = create_full_key(key, index);
+    ret = prefs_get_double_value(full_key, value);
+	
+    g_free(full_key);
+    return ret;
 }
 
-/* whether or not to read ratings from mserv db */
-gboolean prefs_get_mserv_use(void)
+/* Add string value with the given key to temp prefs. Note: use
+ * temp_prefs_remove_key() to remove key from the temp prefs. Setting
+ * it to NULL will not remove the key. It will instead remove the key
+ * in the main prefs table when you call temp_prefs_apply(). */
+void temp_prefs_set_string(TempPrefs *temp_prefs, const gchar *key, 
+			   const gchar *value)
 {
-    return(cfg->mserv_use);
-}
+    g_return_if_fail (temp_prefs && temp_prefs->tree);
+    g_return_if_fail (key);
 
-void prefs_set_mserv_use(gboolean val)
-{
-    cfg->mserv_use = val;
+    g_tree_insert (temp_prefs->tree, g_strdup(key), g_strdup(value));
 }
 
-/* whether or not to report problems reading from mserv database */
-gboolean prefs_get_mserv_report_probs(void)
+/* Add string value with the given key to temp prefs. Remove the key
+ * if @value is NULL. */
+void temp_prefs_remove_key (TempPrefs *temp_prefs, const gchar *key)
 {
-    return(cfg->mserv_report_probs);
-}
+    g_return_if_fail (temp_prefs && temp_prefs->tree);
+    g_return_if_fail (key);
 
-void prefs_set_mserv_report_probs(gboolean val)
-{
-    cfg->mserv_report_probs = val;
+    g_tree_remove (temp_prefs->tree, key);
 }
 
-void prefs_set_mserv_username (const gchar *str)
+/* Add an integer value to temp prefs */
+void temp_prefs_set_int(TempPrefs *temp_prefs, const gchar *key, 
+			const gint value)
 {
-    if (str)
-    {
-	g_free (cfg->mserv_username);
-	cfg->mserv_username = g_strdup (str);
-    }
-}
+    gchar *strvalue; /* String value converted from integer */
 
-const gchar *prefs_get_mserv_username (void)
-{
-    return cfg->mserv_username;
-}
+    g_return_if_fail (temp_prefs && temp_prefs->tree);
+    g_return_if_fail (key);
 
-gboolean prefs_get_unused_gboolean3(void)
-{
-    return(cfg->unused_gboolean3);
+    strvalue = g_strdup_printf("%i", value);
+    g_tree_insert(temp_prefs->tree, g_strdup(key), strvalue);
 }
 
-void prefs_set_unused_gboolean3(gboolean val)
+/* Add an int64 to temp prefs */
+void temp_prefs_set_int64(TempPrefs *temp_prefs, const gchar *key, 
+			  const gint64 value)
 {
-    cfg->unused_gboolean3 = val;
+    gchar *strvalue; /* String value converted from int64 */
+	
+    g_return_if_fail (temp_prefs && temp_prefs->tree);
+    g_return_if_fail (key);
+
+    strvalue = g_strdup_printf("%llu", value);
+    g_tree_insert(temp_prefs->tree, g_strdup(key), strvalue);
 }
 
-void prefs_set_pc_dir (const gchar *str)
+void temp_prefs_set_double(TempPrefs *temp_prefs, const gchar *key,
+			   gdouble value)
 {
-    g_return_if_fail (str);
+    gchar *strvalue; /* String value converted from int64 */
+	
+    g_return_if_fail (temp_prefs && temp_prefs->tree);
+    g_return_if_fail (key);
 
-    g_free (cfg->pc_dir);
-    cfg->pc_dir = convert_filename (str);
+    strvalue = g_strdup_printf("%fu", value);
+    g_tree_insert(temp_prefs->tree, g_strdup(key), strvalue);
 }
 
-/* g_free() after use */
-gchar *prefs_get_pc_dir (void)
-{
-    return g_strdup (cfg->pc_dir);
-}
+/* Get a string value associated with a key. Free returned string. */
+gchar *temp_prefs_get_string(TempPrefs *temp_prefs, const gchar *key)
+{	
+    g_return_val_if_fail (temp_prefs && temp_prefs->tree, NULL);
+    g_return_val_if_fail (key, NULL);
 
-void prefs_set_pc_del_age(gboolean val)
-{
-    cfg->pc_del_age = val;
+    return g_strdup (g_tree_lookup (temp_prefs->tree, key));
 }
 
-gboolean prefs_get_pc_del_age(void)
+/* Use this if you need to know if the given key actually exists */
+/* The value parameter can be NULL if you don't need the value itself. */
+gboolean temp_prefs_get_string_value(TempPrefs *temp_prefs,
+				     const gchar *key, gchar **value)
 {
-    return cfg->pc_del_age;
-}
+    gchar *string;  /* String value from prefs table */
+	
+    g_return_val_if_fail (temp_prefs && temp_prefs->tree, FALSE);
+    g_return_val_if_fail (key, FALSE);
 
-void prefs_set_pc_del_age_val(gint val)
-{
-    cfg->pc_del_age_val = val;
-}
+    string = g_tree_lookup (temp_prefs->tree, key);
 
-gint prefs_get_pc_del_age_val(void)
-{
-    return cfg->pc_del_age_val;
-}
+    if (value)
+	*value = g_strdup (string);
 
-void prefs_set_pc_del_copied(gboolean val)
-{
-    cfg->pc_del_copied = val;
+    if (string)
+	return TRUE;
+    else
+	return FALSE;
 }
 
-gboolean prefs_get_pc_del_copied(void)
+/* Get an integer value from a key */
+gint temp_prefs_get_int(TempPrefs *temp_prefs, const gchar *key)
 {
-    return cfg->pc_del_copied;
-}
+    gchar *string; /* Hash value string */
+    gint value;  /* Retunred value */
+	
+    g_return_val_if_fail (temp_prefs && temp_prefs->tree, 0);
+    g_return_val_if_fail (key, 0);
 
-void prefs_set_pc_auto_fetch(gboolean val)
-{
-    cfg->pc_auto_fetch = val;
-}
+    value = 0;
+	
+    string = g_tree_lookup (temp_prefs->tree, key);
+		
+    if (string)
+	value = atoi(string);
 
-gboolean prefs_get_pc_auto_fetch(void)
-{
-    return cfg->pc_auto_fetch;
+    return value;
 }
 
-void prefs_set_pc_log(gboolean val)
+/* Use this if you need to know if the given key actually exists */
+/* The value parameter can be NULL if you don't need the value itself. */
+gboolean temp_prefs_get_int_value(TempPrefs *temp_prefs,
+				  const gchar *key, gint *value)
 {
-    cfg->pc_log = val;
-}
+    gchar *string;  /* String value from prefs table */
+	
+    g_return_val_if_fail (temp_prefs && temp_prefs->tree, FALSE);
+    g_return_val_if_fail (key, FALSE);
 
-gboolean prefs_get_pc_log(void)
-{
-    return cfg->pc_log;
-}
+    string = g_tree_lookup (temp_prefs->tree, key);
 
-void prefs_set_pc_log_file(const gchar *str)
-{
-    if (str)
+    if (value)
     {
-        g_free (cfg->pc_log_file);
-        cfg->pc_log_file = convert_filename (str);
+	if (string)
+	    *value = atoi(string);
+	else
+	    *value = 0;
     }
-}
 
-/* g_free() after use */
-gchar *prefs_get_pc_log_file(void)
-{
-    return g_strdup (cfg->pc_log_file);
+    if (string)
+	return TRUE;
+    else
+	return FALSE;
 }
 
-void prefs_set_pc_auto_sync(gboolean val)
+gdouble temp_prefs_get_double(TempPrefs *temp_prefs,
+			      const gchar *key)
 {
-    cfg->pc_auto_sync = val;
-}
+    gchar *string; /* Hash value string */
+    gdouble value;  /* Retunred value */
+	
+    g_return_val_if_fail (temp_prefs && temp_prefs->tree, 0);
+    g_return_val_if_fail (key, 0);
 
-gboolean prefs_get_pc_auto_sync(void)
-{
-    return cfg->pc_auto_sync;
-}
+    value = 0.0f;
+	
+    string = g_tree_lookup (temp_prefs->tree, key);
+		
+    if (string)
+	value = g_ascii_strtod(string, NULL);
 
-void prefs_set_pc_ipod_del_age(gboolean val)
-{
-    cfg->pc_ipod_del_age = val;
+    return value;    
 }
 
-gboolean prefs_get_pc_ipod_del_age(void)
+gboolean temp_prefs_get_double_value(TempPrefs *temp_prefs,
+				    const gchar *key, gdouble *value)
 {
-    return cfg->pc_ipod_del_age;
-}
+    gchar *string;  /* String value from prefs table */
+	
+    g_return_val_if_fail (temp_prefs && temp_prefs->tree, FALSE);
+    g_return_val_if_fail (key, FALSE);
 
-void prefs_set_pc_ipod_del_age_val(gint val)
-{
-    cfg->pc_ipod_del_age_val = val;
-}
+    string = g_tree_lookup (temp_prefs->tree, key);
 
-gint prefs_get_pc_ipod_del_age_val(void)
-{
-    return cfg->pc_ipod_del_age_val;
-}
+    if (value)
+    {
+	if (string)
+	    *value = g_ascii_strtod(string, NULL);
+	else
+	    *value = 0;
+    }
 
-void prefs_set_pc_ipod_del_played(gboolean val)
-{
-    cfg->pc_ipod_del_played = val;
+    if (string)
+	return TRUE;
+    else
+	return FALSE;
 }
 
-gboolean prefs_get_pc_ipod_del_played(void)
-{
-    return cfg->pc_ipod_del_played;
-}
+/* Functions for numbered pref keys */
 
-void prefs_set_pc_ipod_inc_date(gboolean val)
+/* Set a string value with the given key */
+void temp_prefs_set_string_index(TempPrefs *temp_prefs, const gchar *key,
+				 const guint index, const gchar *value)
 {
-    cfg->pc_ipod_inc_date = val;
-}
+    gchar *full_key; /* Complete numbered key */
+	
+    g_return_if_fail (temp_prefs && temp_prefs->tree);
+    g_return_if_fail (key);
 
-gboolean prefs_get_pc_ipod_inc_date(void)
-{
-    return cfg->pc_ipod_inc_date;
+    full_key = create_full_key(key, index);
+    temp_prefs_set_string(temp_prefs, full_key, value);
+	
+    g_free(full_key);
 }
 
-void prefs_set_pc_change_genre(gboolean val)
+/* Set a key value to a given integer */
+void temp_prefs_set_int_index(TempPrefs *temp_prefs, const gchar *key,
+			      const guint index, const gint value)
 {
-    cfg->pc_change_genre = val;
-}
+    gchar *full_key; /* Complete numbered key */
 
-gboolean prefs_get_pc_change_genre(void)
-{
-    return cfg->pc_change_genre;
-}
+    g_return_if_fail (temp_prefs && temp_prefs->tree);
+    g_return_if_fail (key);
 
-/* ------------------------------------------------------------
+    full_key = create_full_key(key, index);
+    temp_prefs_set_int(temp_prefs, full_key, value);
 
-   Functions for generic preferences settings
-
-   ------------------------------------------------------------ */
-
-GHashTable *prefs_hash = NULL;
-
-/* Set a string setting (e.g. @key="export_path") to @value */
-void prefs_set_string_value (const gchar *key, const gchar *value)
-{
-    if (!key)  return;
-
-    if (!prefs_hash)
-	prefs_hash = g_hash_table_new_full (g_str_hash, g_str_equal,
-					    g_free, g_free);
-
-    if (!value)
-    {
-	g_hash_table_remove (prefs_hash, key);
-    }
-    else
-    {
-	g_hash_table_insert (prefs_hash,
-			     g_strdup (key), g_strdup (value));
-    }
+    g_free(full_key);
 }
 
-
-/* Set a integer setting (e.g. @key="file_type") to @value */
-void prefs_set_int_value (const gchar *key, gint value)
+/* Set a key to an int64 value */
+void temp_prefs_set_int64_index(TempPrefs *temp_prefs, const gchar *key,  
+				const guint index, const gint64 value)
 {
-    gchar *str;
+    gchar *full_key; /* Complete numbered key */
 
-    if (!key)  return;
+    g_return_if_fail (temp_prefs && temp_prefs->tree);
+    g_return_if_fail (key);
 
-    str = g_strdup_printf ("%d", value);
-    prefs_set_string_value (key, str);
-    g_free (str);
+    full_key = create_full_key(key, index);
+    temp_prefs_set_int64(temp_prefs, full_key, value);
+
+    g_free(full_key);
 }
 
+/* Functions for variable-length lists */
 
-/* Set a integer setting (e.g. @key="file_type") to @value */
-void prefs_set_int64_value (const gchar *key, gint64 value)
+/* Create a tree that contains lists that need to be rebuilt */
+/* Free the returned structure with destroy_temp_lists */
+TempLists *temp_lists_create()
 {
-    gchar *str;
+    TempLists *temp_lists;  /* Allocated temp list structure */
+	
+    temp_lists = (TempLists*)g_malloc(sizeof(TempLists));
+	
 
-    if (!key)  return;
-
-    str = g_strdup_printf ("%llu", value);
-    prefs_set_string_value (key, str);
-    g_free (str);
+    temp_lists->tree = g_tree_new_full((GCompareDataFunc)strcmp, NULL,
+				       g_free,
+				       (GDestroyNotify)prefs_free_list);
+    return temp_lists;
 }
 
-
-/* Retrieve a string setting. @value will be filled with a copy of the
- * value. */
-/* Return value: TRUE, if @key could be retrieved. Otherwise FALSE and
- * @value is set to NULL */
-gboolean prefs_get_string_value (const gchar *key, gchar **value)
+/* Destroys the list tree */
+void temp_lists_destroy(TempLists *temp_lists)
 {
-    g_return_val_if_fail (value, FALSE);
-
-    *value = NULL;
-    if (prefs_hash && key)
+    if (temp_lists)
     {
-	*value = g_strdup (g_hash_table_lookup (prefs_hash, key));
+	if (temp_lists->tree)
+	    g_tree_destroy(temp_lists->tree);
+		
+	g_free(temp_lists);
     }
-    return (*value != NULL);
 }
 
-
-/* Same as prefs_get_string_value() but easier to use. The string is
-   simply returned, a returned NULL value means that the @key could
-   not be found. g_free() the result when it's no longer needed */
-gchar *prefs_get_string (const gchar *key)
+/* Add a list with the given key prefix to a temp list tree */
+void temp_list_add(TempLists *temp_lists, const gchar *key, GList *list)
 {
-    if (prefs_hash && key)
-	return g_strdup (g_hash_table_lookup (prefs_hash, key));
-    return NULL;
+    if (temp_lists)
+    {
+	if (temp_lists->tree)
+	    g_tree_insert(temp_lists->tree, g_strdup(key), list);
+    }
 }
-
-
-/* Retrieve an integer setting. @value will be filled with the stored
- * integer value. */
-/* Return value: TRUE, if @key could be retrieved. Otherwise FALSE and
- * @value is set to 0 */
-gboolean prefs_get_int_value (const gchar *key, gint *value)
+		
+/* Copy the items of the lists in the given tree to the prefs table */
+void temp_lists_apply(TempLists *temp_lists)
 {
-    g_return_val_if_fail (value, FALSE);
-
-    *value = 0;
-    if (prefs_hash && key)
+    if (temp_lists)
     {
-	gchar *str = g_hash_table_lookup (prefs_hash, key);
-	if (str)
-	{
-	    *value = atoi (str);
-	    return TRUE;
-	}
+	if (temp_lists->tree)
+	    g_tree_foreach(temp_lists->tree, copy_list, NULL);
     }
-    return FALSE;
 }
 
-
-/* Retrieve an integer setting. */
-/* Return value: the set integer value or 0 if no value is set. */
-/* Use prefs_get_int_value if you need to know whether a value was
-   actually set in the prefs or not. */
-gint prefs_get_int (const gchar *key)
+/* Copy one list to the prefs table. Useful for lists not changed by a window */
+void prefs_apply_list(gchar *key, GList *list)
 {
-    if (prefs_hash && key)
+    GList *node;  /* Current list node */
+    guint i;  /* Counter */
+	
+    i = 0;
+	
+    if (prefs_table)
     {
-	gchar *str = g_hash_table_lookup (prefs_hash, key);
-	if (str)
-	    return atoi (str);
+	/* Clean the existing list */
+	wipe_list(key);
+		
+	node = list;
+		
+	/* Add the new list items to the table */
+	while (node)
+	{
+	    g_hash_table_insert(prefs_table, create_full_key(key, i), 
+				g_strdup(node->data));
+				
+	    node = g_list_next(node);
+	    i++;
+	}
+		
+	/* Add the end marker */
+	g_hash_table_insert(prefs_table, create_full_key(key, i),
+			    g_strdup(LIST_END_MARKER));
     }
-    return 0;
 }
 
-
-/* Retrieve a 64 bit integer setting. @value will be filled with the
- * stored integer value. */
-/* Return value: TRUE, if @key could be retrieved. Otherwise FALSE and
- * @value is set to 0 */
-gboolean prefs_get_int64_value (const gchar *key, gint64 *value)
+/* Get the items in a variable-length list from the prefs table */
+GList *prefs_get_list(const gchar *key)
 {
-    g_return_val_if_fail (value, FALSE);
-
-    *value = 0;
-    if (prefs_hash && key)
+    guint end_marker_hash;  /* Hash value of the list end marker */
+    guint item_hash;  /* Hash value of current list string */
+    gchar *item_string;  /* List iterm string */
+    guint i;  /* Counter */
+    GList *list;  /* List that contains items */
+	
+    /* Go through each key in the table until we find the end marker */
+    end_marker_hash = g_str_hash(LIST_END_MARKER);
+    list = NULL;
+	
+    for (i = 0;;i++)
     {
-	gchar *str = g_hash_table_lookup (prefs_hash, key);
-	if (str)
+	item_string = prefs_get_string_index(key, i);
+		
+	if (item_string)
 	{
-	    *value = (gint64)g_ascii_strtoull (str, NULL, 10);
-	    return TRUE;
+	    item_hash = g_str_hash(item_string);
+			
+	    if (item_hash != end_marker_hash)
+	    {
+		list = g_list_append(list, item_string);
+		continue;
+	    }
+	    else
+	    {
+		g_free(item_string);
+		break;
+	    }
 	}
     }
-    return FALSE;
+	
+    return list;
 }
 
-
-/* Retrieve a 64 bit integer setting. */
-/* Return value: the set integer value or 0 if no value is set. */
-/* Use prefs_get_int64_value if you need to know whether a value was
-   actually set in the prefs or not. */
-gint64 prefs_get_int64 (const gchar *key)
+/* Free a list and its strings */
+void prefs_free_list(GList *list)
 {
-    if (prefs_hash && key)
+    GList *node;  /* Current list node */
+	
+    node = list;
+	
+    /* Go through the list, freeing the strings */
+	
+    while (node)
     {
-	gchar *str = g_hash_table_lookup (prefs_hash, key);
-	if (str)
-	    return (gint64)g_ascii_strtoull (str, NULL, 10);
+	if (node->data)
+	    g_free(node->data);
+		
+	node = g_list_next(node);
     }
-    return 0;
+	
+    g_list_free(list);
 }
 
-
-/* write the values in the hash table out into the preferences file
-   @fp */
-static void prefs_write_hash_values (FILE *fp)
+/* Creates a list from lines in a GtkTextBuffer. Free the list when done. */
+GList *get_list_from_buffer(GtkTextBuffer *buffer)
 {
-    void prefs_write_hash_func (gpointer key, gpointer value,
-				gpointer fp)
-	{
-	    g_return_if_fail (key && value && fp);
-	    fprintf ((FILE *)fp, "%s=%s\n", (gchar *)key, (gchar *)value);
-	}
-
-    if (prefs_hash)
-	g_hash_table_foreach (prefs_hash, prefs_write_hash_func, fp);
+    GtkTextIter start_iter; /* Start of buffer text */
+    GtkTextIter end_iter; /* End of buffer text */
+    gchar *text_buffer; /* Raw text buffer */
+    gchar **string_array; /* Contains each line of the buffer */
+    gchar **string_iter;  /* Pointer for iterating through the string vector */
+    GList *list; /* List that contains each string */
+	
+    list = NULL;
+	
+    /* Grab the text from the buffer, and then split it up by lines */
+    gtk_text_buffer_get_start_iter(buffer, &start_iter);
+    gtk_text_buffer_get_end_iter(buffer, &end_iter);
+	
+    text_buffer = gtk_text_buffer_get_text(buffer, &start_iter, &end_iter, FALSE);
+    string_array = g_strsplit(text_buffer, "\n", -1);
+    string_iter = string_array;
+	
+    /* Go through each string and put it in the list */
+    while (*string_iter)
+    {
+	if (strlen(*string_iter) != 0)
+	    list = g_list_append(list, g_strdup(*string_iter));
+		
+	string_iter++;
+    }
+    
+    return list;
 }

Modified: gtkpod/branches/upstream/current/src/prefs.h
===================================================================
--- gtkpod/branches/upstream/current/src/prefs.h	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/src/prefs.h	2006-09-30 00:00:17 UTC (rev 139)
@@ -1,6 +1,7 @@
-/* Time-stamp: <2005-12-10 22:46:54 jcs>
+/* Time-stamp: <2006-06-25 15:57:02 jcs>
 |
 |  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
+|  Copyright (C) 2006 James Liggett <jrliggett at cox.net>
 |  Part of the gtkpod project.
 | 
 |  URL: http://www.gtkpod.org/
@@ -24,7 +25,7 @@
 |
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: prefs.h,v 1.102 2005/12/10 17:04:29 jcsjcs Exp $
+|  $Id: prefs.h,v 1.192 2006/06/27 03:55:00 freethinkerjim Exp $
 */
 
 #ifndef __PREFS_H__
@@ -39,379 +40,162 @@
 #include "display.h"
 
 
-/* Different paths that can be set in the prefs window */
-typedef enum
-{
-    PATH_PLAY_NOW = 0,
-    PATH_PLAY_ENQUEUE,
-    PATH_MP3GAIN,
-    PATH_SYNC_CONTACTS,
-    PATH_SYNC_CALENDAR,
-    PATH_MSERV_MUSIC_ROOT,
-    PATH_MSERV_TRACKINFO_ROOT,
-    PATH_SYNC_NOTES,
-    PATH_NUM
-} PathType;
 
+/* Not sure where to put these (maybe prefkeys.h?): prefs keys used */
+/* repository.c */
+extern const gchar *KEY_CONCAL_AUTOSYNC;
+extern const gchar *KEY_SYNC_DELETE_TRACKS;
+extern const gchar *KEY_SYNC_CONFIRM_DIRS;
+extern const gchar *KEY_SYNC_CONFIRM_DELETE;
+extern const gchar *KEY_SYNC_SHOW_SUMMARY;
+extern const gchar *KEY_MOUNTPOINT;
+extern const gchar *KEY_IPOD_MODEL;
+extern const gchar *KEY_FILENAME;
+extern const gchar *KEY_PATH_SYNC_CONTACTS;
+extern const gchar *KEY_PATH_SYNC_CALENDAR;
+extern const gchar *KEY_PATH_SYNC_NOTES;
+extern const gchar *KEY_SYNCMODE;
+extern const gchar *KEY_MANUAL_SYNCDIR;
 
-struct win_size {
-    gint x;
-    gint y;
-};
+/* New prefs backend. Will replace the stuff above */
 
-struct cfg
+/* 
+ * Wrapper data types for temp prefrences
+ */
+
+/* A wrapper around a GTree for regular temporary prefrences */
+typedef struct 
 {
-  gchar    *ipod_mount;     /* mount point of iPod */
-  gchar    *charset;        /* CHARSET to use with file operations */
-  gboolean id3_write;       /* should changes to ID3 tags be written to file */
-  gboolean id3_write_id3v24;/* should all ID3 tags be updated */
-  gboolean md5tracks;	    /* don't allow track duplication on your ipod */
-  gboolean update_existing; /* when adding track, update existing track */
-  gboolean block_display;   /* block display during change of selection? */
-  gboolean tmp_disable_sort;/* tmp. disable sorting during change of slctn? */
-  gboolean startup_messages;/* show startup messages/warnings? */
-  gboolean autoimport;	    /* whether or not to automatically import files */
-  gboolean autoimport_commandline;/* whether or not to automatically
-				   * import files as set by commandline */
-  struct
-  {
-    gboolean autoselect;     /* automatically select "All" in sort tab? */
-    guint    category;       /* which category was selected last? */
-    /* the following fields are for the "special" tab */
-    gboolean sp_or;          /* logic operation: OR? (FALSE: AND) */
-    gboolean sp_rating;      /* consider rating? */
-    guint32  sp_rating_state;/* pass which rating? (1 star: bit 1...) */
-    gboolean sp_playcount;   /* consider playcount? */
-    guint sp_playcount_low;  /* lower limit for playcounts */
-    guint sp_playcount_high; /* higher limit for playcounts */
-    gboolean sp_played;      /* consider last played? */
-    gchar *sp_played_state;  /* current "played" string */
-    gboolean sp_modified;    /* consider last modified? */
-    gchar *sp_modified_state;/* current "modified" string */
-    gboolean sp_added;       /* consider added? */
-    gchar *sp_added_state;   /* current "added" string */
-    gboolean sp_autodisplay; /* display automatically? */
-  } st[SORT_TAB_MAX];
-  struct sortcfg
-  {         /* sort type: SORT_ASCENDING, SORT_DESCENDING, SORT_NONE */
-    gint pm_sort;            /* sort type for playlists           */
-    gint st_sort;            /* sort type for sort tabs           */
-    gint tm_sort;            /* sort type for tracks              */
-    TM_item tm_sortcol;      /* sort column for tracks            */
-    gboolean pm_autostore;   /* save sort order automatically?    */
-    gboolean tm_autostore;   /* save sort order automatically?    */
-    gboolean case_sensitive; /* Should sorting be case-sensitive? */
-    GList *tmp_sort_ign_fields; /* used in prefs_window.c only     */
-    gchar *tmp_sort_ign_strings;/* used in prefs_window.c only     */
-  } sortcfg;
-  gboolean info_window;   /* is info window open (will then open on restart */
-  gboolean mpl_autoselect;/* select mpl automatically? */
-  gboolean offline;       /* are we working offline, i.e. without iPod? */
-  gboolean write_extended_info; /* write additional file with PC
-				   filenames etc? */
-  struct
-  {
-      gchar *browse;
-  } last_dir;	          /* last directories used by the fileselections */
-  struct
-  {
-      gboolean track, ipod_file, local_file, database, syncing;
-  } deletion;
-  struct win_size size_gtkpod;  /* last size of gtkpod main window */
-  struct win_size size_cal;     /* last size of calendar window */
-  struct win_size size_conf_sw; /* last size of conf window (scrolled) */
-  struct win_size size_conf;    /* last size of conf window */
-  struct win_size size_dirbr;   /* last size of dirbrowser window */
-  struct win_size size_prefs;   /* last size of prefs window */
-  struct win_size size_info;    /* last size of info window */
-  gint tm_col_width[TM_NUM_COLUMNS];    /* width colums in track model */
-  gboolean col_visible[TM_NUM_COLUMNS]; /* displayed track model colums */
-  TM_item col_order[TM_NUM_COLUMNS];    /* order of columns */
-  gboolean readtags;            /* Read tags from file contents? */
-  gboolean parsetags;           /* Get tags by parsing filename? */
-  gchar   *parsetags_template;  /* template for parsing tags */
-  gboolean parsetags_overwrite; /* Overwrite tags already set? */
-  gboolean coverart;            /* Read coverart when adding files? */
-  gchar *coverart_template;     /* template for coverart filename   */
-  gboolean autosettags[TM_NUM_TAGS_PREFS]; /* autoset empty tags to filename?*/
-  gint paned_pos[PANED_NUM];    /* position of the GtkPaned elements */
+	GTree *tree;
+} TempPrefs;
 
-  gboolean show_duplicates;     /* show duplicate notification ?*/
-  gboolean show_updated;        /* show update notification ?*/
-  gboolean show_non_updated;    /* show update notification ?*/
-  gboolean show_sync_dirs;      /* show dirs to be synced ? */
-  gboolean sync_remove;         /* delete tracks removed from synced dirs? */
-  gboolean display_toolbar;     /* should toolbar be displayed */
-  GtkToolbarStyle toolbar_style;/* style of toolbar */
-  gboolean display_tooltips_main; /* should tooltips be displayed (main) */
-  gboolean display_tooltips_prefs;/* should toolbar be displayed (prefs) */
-  gboolean update_charset;      /* Update charset when updating track? */
-  gboolean write_charset;       /* Use selected charset when writing track? */
-  gboolean add_recursively;     /* Add directories recursively? */
-  gint sort_tab_num;            /* number of sort tabs displayed */
-  gboolean group_compilations;  /* group compilations when browsing */
-  guint32 statusbar_timeout;    /* timeout for statusbar messages */
-  gint last_prefs_page;         /* last page selected in prefs window */
-  gchar *path[PATH_NUM];    /* path for 'Play Now...' (see PathType) */
-  gboolean automount;		/* whether we should mount/unmount the ipod */
-  gboolean multi_edit;          /* multi edit enabled? */
-  gboolean multi_edit_title;    /* multi edit also enabled for title field? */
-  gboolean not_played_track;    /* not played track in Highest rated playlist?*/
-  gint misc_track_nr;            /* track's nr in the Highest rated, most played and most recently played pl*/
-  gboolean concal_autosync;     /* sync contacts and calendar on iTunesDB sync? */
-  gboolean mserv_use;           /* use mserv data (rating)? */
-  gboolean mserv_report_probs;  /* report problems while updating? */
-  gchar *mserv_username;        /* username for mserv? */
-  gboolean unused_gboolean3;    /* unused */
-  float version;                /* version of gtkpod writing the cfg file */
+/* A wrapper around a GTree for variable-length list */
+typedef struct 
+{
+	GTree *tree;
+} TempLists;
 
-  gchar *pc_dir;                /* directory to store podcasts */
-  gboolean pc_del_age;          /* whether to delete old podcasts */
-  gint pc_del_age_val;          /* how old a podcast must be to be deleted */
-  gboolean pc_del_copied;       /* whether to delete once copied to iPod */
-  gboolean pc_auto_fetch;       /* whether to fetch podcasts automatically */
-  gboolean pc_log;              /* whether to log podcast information */
-  gchar *pc_log_file;           /* where to log to */
-  gboolean pc_auto_sync;        /* whether to automatically sync podcasts */
-  gboolean pc_ipod_del_age;     /* whether to delete old podcasts from iPod */
-  gint pc_ipod_del_age_val;     /* how old a podcast must be to be deleted */
-  gboolean pc_ipod_del_played;  /* whether to delete played podcasts */
-  gboolean pc_ipod_inc_date;    /* whether to include date in iPod metadata */
-  gboolean pc_change_genre;     /* whether to change genres to 'Podcast' */
-};
+/* Prefrences setup and cleanup */
+void init_prefs(int argc, char *argv[]);
+void cleanup_prefs();
 
+/*
+ * Functions that are used to manipulate prefrences.
+ * The prefrences table shouldn't be modified directly.
+ */
 
-/* types for sortcfg.xx_sort */
-enum
-{
-    SORT_ASCENDING = GTK_SORT_ASCENDING,
-    SORT_DESCENDING = GTK_SORT_DESCENDING,
-    SORT_NONE = 10*(GTK_SORT_ASCENDING+GTK_SORT_DESCENDING),
-};
+/* Functions that set prefrence values */
 
-/* marker for end of sort_ign_string_%d prefs settings */
-#define SORT_IGNORE_STRINGS_END "----++++----"
+void prefs_set_string(const gchar *key, const gchar *value);
+void prefs_set_int(const gchar *key, const gint value);
+void prefs_set_int64(const gchar *key, const gint64 value);
+void prefs_set_double(const gchar *key, gdouble value);
 
-gchar *prefs_get_cfgdir (void);
-void prefs_print(void);
-void cfg_free(struct cfg *c);
-void sortcfg_free(struct sortcfg *c);
-void write_prefs (void);
-void discard_prefs (void);
-struct cfg* clone_prefs(void);
-struct sortcfg* clone_sortprefs(void);
-void prefs_set_ipod_mount(const gchar *mp);
-gboolean read_prefs (GtkWidget *gtkpod, int argc, char *argv[]);
-gchar *prefs_validate_path (const gchar *path, const gchar *allowed);
+/* The index parameter is used for numbered preference keys.
+ * (i.e. pref0, pref1, etc) */
+void prefs_set_string_index(const gchar *key, const guint index,
+			    const gchar *value);
+void prefs_set_int_index(const gchar *key, const guint index,
+			 const gint value);
+void prefs_set_int64_index(const gchar *key, guint index,
+			   const gint64 value);
+void prefs_set_double_index(const gchar *key, guint index,
+			    gdouble value);
 
-void prefs_set_offline(gboolean active);
-void prefs_set_pm_sort (gint type);
-void prefs_set_tm_sort (gint type);
-void prefs_set_st_sort (gint type);
-void prefs_set_tm_sortcol (TM_item col);
-void prefs_set_tm_autostore (gboolean active);
-void prefs_set_pm_autostore (gboolean active);
-void prefs_set_write_extended_info(gboolean active);
-void prefs_set_autoimport(gboolean val);
-void prefs_set_st_autoselect (guint32 inst, gboolean autoselect);
-void prefs_set_mpl_autoselect (gboolean autoselect);
-void prefs_set_st_category (guint32 inst, guint category);
-void prefs_set_md5tracks(gboolean active);
-void prefs_set_update_existing(gboolean active);
-void prefs_set_block_display(gboolean active);
-void prefs_set_id3_write (gboolean active);
-void prefs_set_id3_write_id3v24 (gboolean active);
-void prefs_set_readtags (gboolean active);
-gboolean prefs_get_readtags(void);
-void prefs_set_parsetags (gboolean active);
-gboolean prefs_get_parsetags(void);
-void prefs_set_parsetags_overwrite (gboolean active);
-gboolean prefs_get_parsetags_overwrite(void);
-void prefs_set_autosettags (gint category, gboolean autoset);
-gboolean prefs_get_autosettags (gint category);
-void prefs_set_parsetags_template (const gchar *tpl);
-const gchar *prefs_get_parsetags_template (void);
-void prefs_set_coverart (gboolean active);
-gboolean prefs_get_coverart(void);
-void prefs_set_coverart_template (const gchar *tpl);
-const gchar *prefs_get_coverart_template (void);
-void prefs_set_last_dir_browse (const gchar * dir);
-const gchar *prefs_get_last_dir_browse (void);
-void prefs_set_charset (gchar *charset);
-void prefs_cfg_set_charset (struct cfg *cfg, gchar *charset);
-void prefs_set_size_gtkpod (gint x, gint y);
-void prefs_set_size_cal (gint x, gint y);
-void prefs_set_size_conf_sw (gint x, gint y);
-void prefs_set_size_conf (gint x, gint y);
-void prefs_set_size_dirbr (gint x, gint y);
-void prefs_set_size_prefs (gint x, gint y);
-void prefs_set_size_info (gint x, gint y);
-void prefs_set_tm_col_width (gint col, gint width);
-void prefs_set_col_visible (TM_item tm_item, gboolean visible);
-void prefs_set_col_order (gint pos, TM_item col);
-void prefs_set_paned_pos (gint i, gint pos);
-void prefs_set_statusbar_timeout (guint32 val);
-void prefs_set_automount(gboolean val);
-void prefs_set_info_window(gboolean val);
+/* Functions that get prefrence values */
+gchar *prefs_get_string(const gchar *key);
+gboolean prefs_get_string_value(const gchar *key, gchar **value);
+gint prefs_get_int(const gchar *key);
+gboolean prefs_get_int_value(const gchar *key, gint *value);
+gint64 prefs_get_int64(const gchar *key);
+gboolean prefs_get_int64_value(const gchar *key, gint64 *value);
+gdouble prefs_get_double(const gchar *key);
+gboolean prefs_get_double_value(const gchar *key, gdouble *value);
 
-gboolean prefs_get_offline(void);
-gint prefs_get_pm_sort (void);
-gint prefs_get_st_sort (void);
-gint prefs_get_tm_sort (void);
-TM_item prefs_get_tm_sortcol (void);
-gboolean prefs_get_tm_autostore (void);
-gboolean prefs_get_pm_autostore (void);
-gboolean prefs_get_write_extended_info(void);
-gboolean prefs_get_autoimport(void);
-gboolean prefs_get_st_autoselect (guint32 inst);
-gboolean prefs_get_mpl_autoselect (void);
-guint prefs_get_st_category (guint32 inst);
-gboolean prefs_get_id3_write(void);
-gboolean prefs_get_id3_write_id3v24(void);
-const gchar *prefs_get_ipod_mount (void);
-gchar * prefs_get_charset (void);
-void prefs_get_size_gtkpod (gint *x, gint *y);
-void prefs_get_size_cal (gint *x, gint *y);
-void prefs_get_size_conf_sw (gint *x, gint *y);
-void prefs_get_size_conf (gint *x, gint *y);
-void prefs_get_size_dirbr (gint *x, gint *y);
-void prefs_get_size_prefs (gint *x, gint *y);
-void prefs_get_size_info (gint *x, gint *y);
-gint prefs_get_tm_col_width (gint col);
-gboolean prefs_get_col_visible (TM_item tm_item);
-TM_item prefs_get_col_order (gint pos);
-gboolean prefs_get_md5tracks(void);
-gboolean prefs_get_update_existing(void);
-gboolean prefs_get_block_display(void);
-gint prefs_get_paned_pos (gint i);
-guint32 prefs_get_statusbar_timeout (void);
-gboolean prefs_get_show_duplicates (void);
-void prefs_set_show_duplicates (gboolean val);
-gboolean prefs_get_show_updated (void);
-void prefs_set_show_updated (gboolean val);
-gboolean prefs_get_show_non_updated (void);
-void prefs_set_show_non_updated (gboolean val);
-gboolean prefs_get_show_sync_dirs (void);
-void prefs_set_show_sync_dirs (gboolean val);
-gboolean prefs_get_sync_remove (void);
-void prefs_set_sync_remove (gboolean val);
+/* Numbered prefs functions */
+gchar *prefs_get_string_index(const gchar *key, const guint index);
+gboolean prefs_get_string_value_index(const gchar *key,
+				      const guint index, gchar **value);
+gint prefs_get_int_index(const gchar *key, const guint index);
+gboolean prefs_get_int_value_index(const gchar *key, const guint index,
+				   gint *value);
+gint64 prefs_get_int64_index(const gchar *key, const guint index);
+gboolean prefs_get_int64_value_index(const gchar *key,
+				     const guint index, gint64 *value);
+gdouble prefs_get_double_index(const gchar *key,
+			       guint index);
+gboolean prefs_get_double_value_index(const gchar *key, guint index,
+				      gdouble *value);
+/* Special functions */
+void prefs_flush_subkey (const gchar *subkey);
+void prefs_rename_subkey (const gchar *subkey_old, const gchar *subkey_new);
+void temp_prefs_rename_subkey (TempPrefs *temp_prefs,
+			       const gchar *subkey_old,
+			       const gchar *subkey_new);
+gboolean temp_prefs_subkey_exists (TempPrefs *temp_prefs,
+				   const gchar *subkey);
 
-void prefs_set_sync_remove_confirm(gboolean val);
-gboolean prefs_get_sync_remove_confirm(void);
-void prefs_set_track_playlist_deletion(gboolean val);
-gboolean prefs_get_track_playlist_deletion(void);
-void prefs_set_track_ipod_file_deletion(gboolean val);
-gboolean prefs_get_track_ipod_file_deletion(void);
-void prefs_set_track_database_deletion(gboolean val);
-gboolean prefs_get_track_database_deletion(void);
-void prefs_set_track_local_file_deletion(gboolean val);
-gboolean prefs_get_track_local_file_deletion(void);
+/* 
+ * Temp prefs functions
+ */
+TempPrefs *temp_prefs_create (void);
+TempPrefs *prefs_create_subset (const gchar *subkey);
+TempPrefs *temp_prefs_create_subset (TempPrefs *temp_prefs,
+				     const gchar *subkey);
+void temp_prefs_destroy (TempPrefs *temp_prefs);
+void temp_prefs_apply (TempPrefs *temp_prefs);
+void temp_prefs_flush(TempPrefs *temp_prefs);
+gint temp_prefs_size (TempPrefs *temp_prefs);
 
-gboolean prefs_get_display_toolbar (void);
-void prefs_set_display_toolbar (gboolean val);
-gboolean prefs_get_update_charset (void);
-void prefs_set_update_charset (gboolean val);
-gboolean prefs_get_write_charset (void);
-void prefs_set_write_charset (gboolean val);
-gboolean prefs_get_add_recursively (void);
-void prefs_set_add_recursively (gboolean val);
-gboolean prefs_get_case_sensitive (void);
-void prefs_set_case_sensitive (gboolean val);
-gint prefs_get_sort_tab_num (void);
-void prefs_set_sort_tab_num (gint i, gboolean update_display);
-gboolean prefs_get_group_compilations (void);
-void prefs_set_group_compilations (gboolean val, gboolean update_display);
-GtkToolbarStyle prefs_get_toolbar_style (void);
-void prefs_set_toolbar_style (GtkToolbarStyle i);
-gint prefs_get_last_prefs_page (void);
-void prefs_set_last_prefs_page (gint i);
-void prefs_set_path (PathType type, const gchar *path);
-const gchar *prefs_get_path (PathType type);
-gboolean prefs_get_automount (void);
-gboolean prefs_get_info_window (void);
-void prefs_set_sp_or (guint32 inst, gboolean state);
-gboolean prefs_get_sp_or (guint32 inst);
-void prefs_set_sp_cond (guint32 inst, T_item t_item, gboolean state);
-gboolean prefs_get_sp_cond (guint32 inst, T_item t_item);
-void prefs_set_sp_rating_n (guint32 inst, gint n, gboolean state);
-gboolean prefs_get_sp_rating_n (guint32 inst, gint n);
-void prefs_set_sp_rating_state (guint32 inst, guint32 state);
-guint32 prefs_get_sp_rating_state (guint32 inst);
-void prefs_set_sp_entry (guint32 inst, T_item t_item, const gchar *str);
-gchar *prefs_get_sp_entry (guint32 inst, T_item t_item);
-void prefs_set_sp_autodisplay (guint32 inst, gboolean state);
-gboolean prefs_get_sp_autodisplay (guint32 inst);
-gint32 prefs_get_sp_playcount_low (guint32 inst);
-gint32 prefs_get_sp_playcount_high (guint32 inst);
-void prefs_set_sp_playcount_low (guint32 inst, gint32 limit);
-void prefs_set_sp_playcount_high (guint32 inst, gint32 limit);
-void prefs_set_display_tooltips_main (gboolean state);
-gboolean prefs_get_display_tooltips_main (void);
-void prefs_set_display_tooltips_prefs (gboolean state);
-gboolean prefs_get_display_tooltips_prefs (void);
-void prefs_set_multi_edit (gboolean state);
-gboolean prefs_get_multi_edit (void);
-void prefs_set_misc_track_nr (gint state);
-gint prefs_get_misc_track_nr (void);
-void prefs_set_not_played_track (gboolean state);
-gboolean prefs_get_not_played_track (void);
-void prefs_set_multi_edit_title (gboolean state);
-gboolean prefs_get_multi_edit_title (void);
-void prefs_set_unused_gboolean3(gboolean val);
-gboolean prefs_get_unused_gboolean3(void);
-void prefs_set_concal_autosync(gboolean val);
-gboolean prefs_get_concal_autosync(void);
-void prefs_set_tmp_disable_sort(gboolean val);
-gboolean prefs_get_tmp_disable_sort(void);
-void prefs_set_startup_messages(gboolean val);
-gboolean prefs_get_startup_messages(void);
-gboolean prefs_get_mserv_use(void);
-void prefs_set_mserv_use(gboolean val);
-gboolean prefs_get_mserv_report_probs(void);
-void prefs_set_mserv_report_probs(gboolean val);
-const gchar *prefs_get_mserv_username(void);
-void prefs_set_mserv_username(const gchar *root);
-gboolean prefs_get_autoimport_commandline(void);
-void prefs_set_autoimport_commandline(gboolean val);
+/*
+ * Functions that add various types of info to the temp prefs tree.
+ */
+void temp_prefs_remove_key (TempPrefs *temp_prefs, const gchar *key);
+void temp_prefs_set_string(TempPrefs *temp_prefs, const gchar *key,
+			   const gchar *value);
+void temp_prefs_set_int(TempPrefs *temp_prefs, const gchar *key,
+			const gint value);
+void temp_prefs_set_int64(TempPrefs *temp_prefs, const gchar *key,
+			  const gint64 value);
+void temp_prefs_set_double(TempPrefs *temp_prefs, const gchar *key,
+			   gdouble value);
 
-/* Podcast preferences */
-void prefs_set_pc_dir(const gchar *str);
-gchar *prefs_get_pc_dir(void);
-void prefs_set_pc_del_age(gboolean val);
-gboolean prefs_get_pc_del_age(void);
-void prefs_set_pc_del_age_val(gint val);
-gint prefs_get_pc_del_age_val(void);
-void prefs_set_pc_del_copied(gboolean val);
-gboolean prefs_get_pc_del_copied(void);
-void prefs_set_pc_auto_fetch(gboolean val);
-gboolean prefs_get_pc_auto_fetch(void);
-void prefs_set_pc_log(gboolean val);
-gboolean prefs_get_pc_log(void);
-void prefs_set_pc_log_file(const gchar *str);
-gchar *prefs_get_pc_log_file(void);
-void prefs_set_pc_auto_sync(gboolean val);
-gboolean prefs_get_pc_auto_sync(void);
-void prefs_set_pc_ipod_del_age(gboolean val);
-gboolean prefs_get_pc_ipod_del_age(void);
-void prefs_set_pc_ipod_del_age_val(gint val);
-gint prefs_get_pc_ipod_del_age_val(void);
-void prefs_set_pc_ipod_del_played(gboolean val);
-gboolean prefs_get_pc_ipod_del_played(void);
-void prefs_set_pc_ipod_inc_date(gboolean val);
-gboolean prefs_get_pc_ipod_inc_date(void);
-void prefs_set_pc_change_genre(gboolean val);
-gboolean prefs_get_pc_change_genre(void);
+/*
+ * Functions that retrieve various types of info from the temp prefs tree.
+ */
+gchar *temp_prefs_get_string(TempPrefs *temp_prefs, const gchar *key);
+gboolean temp_prefs_get_string_value(TempPrefs *temp_prefs,
+				     const gchar *key, gchar **value);
+gint temp_prefs_get_int(TempPrefs *temp_prefs, const gchar *key);
+gboolean temp_prefs_get_int_value(TempPrefs *temp_prefs,
+				  const gchar *key, gint *value);
+gdouble temp_prefs_get_double(TempPrefs *temp_prefs, const gchar *key);
+gboolean temp_prefs_get_double_value(TempPrefs *temp_prefs, const gchar *key,
+				    gdouble *value);
 
-gboolean prefs_get_disable_sorting(void);
+/* Numbered prefrences functions */
+void temp_prefs_set_string_index(TempPrefs *temp_prefs, const gchar *key,
+				 const guint index, const gchar *value);
+void temp_prefs_set_int_index(TempPrefs *temp_prefs, const gchar *key,
+			      const guint index, const gint value);
+void temp_prefs_set_int64_index(TempPrefs *temp_prefs, const gchar *key,
+				const guint index, const gint64 value);
+void temp_prefs_set_double_index(TempPrefs *temp_prefs, const gchar *key,
+				 guint index, gdouble value);
 
-void prefs_set_string_value (const gchar *key, const gchar *value);
-void prefs_set_int_value (const gchar *key, gint value);
-void prefs_set_int64_value (const gchar *key, gint64 value);
-gchar *prefs_get_string (const gchar *key);
-gboolean prefs_get_string_value (const gchar *key, gchar **value);
-gboolean prefs_get_int_value (const gchar *key, gint *value);
-gint prefs_get_int (const gchar *key);
-gboolean prefs_get_int64_value (const gchar *key, gint64 *value);
-gint64 prefs_get_int64 (const gchar *key);
 
+/* 
+ * Functions for variable-length lists
+ */
+ 
+TempLists *temp_lists_create (void);
+void temp_lists_destroy(TempLists *temp_lists);
+void temp_list_add(TempLists *temp_lists, const gchar *key, GList *list);
+void temp_lists_apply(TempLists *temp_lists);
+void prefs_apply_list(gchar *key, GList *list);
+GList *prefs_get_list(const gchar *key);
+void prefs_free_list(GList *list);
+GList *get_list_from_buffer(GtkTextBuffer *buffer);
+
+gchar *prefs_get_cfgdir (void);
 #endif

Modified: gtkpod/branches/upstream/current/src/prefs_window.c
===================================================================
--- gtkpod/branches/upstream/current/src/prefs_window.c	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/src/prefs_window.c	2006-09-30 00:00:17 UTC (rev 139)
@@ -1,4 +1,4 @@
-/* Time-stamp: <2006-01-02 22:56:30 jcs>
+/* Time-stamp: <2006-09-24 20:49:38 jcs>
 |
 |  Copyright (C) 2002 Corey Donohoe <atmos at atmos.org>
 |  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
@@ -25,7 +25,7 @@
 |
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: prefs_window.c,v 1.114 2006/01/02 14:01:42 jcsjcs Exp $
+|  $Id: prefs_window.c,v 1.185 2006/09/24 12:16:26 jcsjcs Exp $
 */
 
 #include <stdio.h>
@@ -33,45 +33,41 @@
 #include "charset.h"
 #include "display_itdb.h"
 #include "info.h"
+#include "fileselection.h"
+#include "md5.h"
 #include "misc.h"
 #include "misc_track.h"
 #include "prefs.h"
 #include "prefs_window.h"
-#include "podcast.h"
+#include "repository.h"
 
+
 GladeXML *prefs_window_xml;
 GladeXML *sort_window_xml;
 
 static GtkWidget *prefs_window = NULL;
 static GtkWidget *sort_window = NULL;
-static struct cfg *tmpcfg = NULL;
-static struct cfg *origcfg = NULL;
-static struct sortcfg *tmpsortcfg = NULL;
-static struct sortcfg *origsortcfg = NULL;
 
+/* New prefs temp handling */
+static TempPrefs *temp_prefs;
+static TempLists *temp_lists;
+static TempPrefs *sort_temp_prefs;
+static TempLists *sort_temp_lists;
+
 /* keeps the check buttons for "Select Entry 'All' in Sorttab %d" */
 static GtkWidget *autoselect_widget[SORT_TAB_MAX];
 
 static void prefs_window_set_st_autoselect (guint32 inst, gboolean autoselect);
 static void prefs_window_set_autosettags (gint category, gboolean autoset);
 static void prefs_window_set_col_visible (gint column, gboolean visible);
-static void prefs_window_set_path (PathType i, const gchar *path);
 static void prefs_window_set_sort_tab_num (gint num);
 
-/* where to find the scripts */
-static const gchar *scriptdir = PACKAGE_DATA_DIR G_DIR_SEPARATOR_S PACKAGE G_DIR_SEPARATOR_S "scripts" G_DIR_SEPARATOR_S;
+/* Some declarations */
+static void standard_toggle_toggled (GtkToggleButton *togglebutton,
+				     const gchar *key);
 
 
-/* FIXME: PODCASTS: remove Podcast menu */
-#if 0
-static void on_pc_subs_list_row_activated (GtkTreeView *view,
-                                           GtkTreePath *path,
-                                           GtkTreeViewColumn *col,
-                                           gpointer user_data);
 
-/* Pointer to the treeview that holds the podcast subscriptions */
-static GtkTreeView *pc_subs_list = NULL;
-#endif
 /* Definition of path button names.
    E.g. path_button_names[PATH_PLAY_ENQUEUE] is
    "play_enqueue_path_button".
@@ -84,23 +80,38 @@
     "play_now_path_button",
     "play_enqueue_path_button",
     "mp3gain_path_button",
-    "sync_contacts_path_button",
-    "sync_calendar_path_button",
+    "",
+    "",
     "mserv_music_root_button",
     "mserv_trackinfo_root_button",
-    "sync_notes_path_button",
+    "",
+    "aacgain_path_button",
     NULL
 };
+static const gchar *path_key_names[] =
+{
+    "path_play_now",
+    "path_play_enqueue",
+    "path_mp3gain",
+    "",
+    "",
+    "path_mserv_music_root",
+    "path_mserv_trackinfo_root",
+    "",
+    "aacgain_path",
+    NULL
+};
 const gchar *path_entry_names[] =
 {
     "play_now_path_entry",
     "play_enqueue_path_entry",
     "mp3gain_path_entry",
-    "sync_contacts_path_entry",
-    "sync_calendar_path_entry",
+    "",
+    "",
     "mserv_music_root_entry",
     "mserv_trackinfo_root_entry",
-    "sync_notes_path_entry",
+    "",
+    "aacgain_path_entry",
     NULL
 };
 static const gchar *path_fileselector_titles[] =
@@ -108,11 +119,12 @@
     N_("Please select command for 'Play Now'"),
     N_("Please select command for 'Enqueue'"),
     N_("Please select the mp3gain executable"),
-    N_("Please select command to sync contacts"),
-    N_("Please select command to sync calendar"),
+    "",
+    "",
     N_("Select the mserv music root directory"),
     N_("Select the mserv trackinfo root directory"),
-    N_("Please select command to sync notes"),
+    "",
+    N_("Please select the aacgain executable"),
     NULL
 };
 static const GtkFileChooserAction path_type[] =
@@ -125,14 +137,11 @@
     GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, /* select folder */
     GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,
     GTK_FILE_CHOOSER_ACTION_OPEN,
+    GTK_FILE_CHOOSER_ACTION_OPEN,
     -1
 };
 
 
-/* pointers to fileselectors */
-static GtkWidget *path_filechooser[PATH_NUM];
-
-
 static void on_cfg_st_autoselect_toggled (GtkToggleButton *togglebutton,
 					  gpointer         user_data)
 {
@@ -159,180 +168,68 @@
 }
 
 
-/* Close all open path filechoosers */
-static void path_close_windows (void)
+/* one of the "..." buttons has been pressed -> open a file chooser
+   dialog and let the user select a file or directory */
+static void on_path_button_pressed (GtkButton *button, gpointer user_data)
 {
-    gint i;
-    for (i=0; i<PATH_NUM; ++i)
-    {
-	if (path_filechooser[i])
-	{
-	    gtk_widget_destroy (path_filechooser[i]);
-	    path_filechooser[i] = NULL;
-	}
-    }
-}
+    gint i = GPOINTER_TO_INT (user_data);
+    gchar *oldpath, *newpath;
 
+    g_return_if_fail (temp_prefs);
 
-/* ok button on path fileselector window was pressed */
-static void on_path_ok (PathType i)
-{
-    g_return_if_fail (i>=0 && i<PATH_NUM);
-
-    if (path_filechooser[i])
+    oldpath = temp_prefs_get_string (temp_prefs, path_key_names[i]);
+    if (!oldpath)
     {
-	const gchar *npath = gtk_file_chooser_get_filename (
-	    GTK_FILE_CHOOSER (path_filechooser[i]));
-	const gchar *opath = tmpcfg->path[i];
-	/* find command line arguments */
-	const gchar *opathp = strchr (opath, ' ');
-	gchar *newpath;
-	GtkWidget *w;
-
-	/* attach command line arguments if present */
-	if (opathp)
-	    newpath = g_strdup_printf ("%s%s", npath, opathp);
-	else
-	    newpath = g_strdup (npath);
-
-	if ((w = gtkpod_xml_get_widget (prefs_window_xml, path_entry_names[i])))
-	{
-	    gchar *newpath_utf8 = g_filename_to_utf8 (newpath, -1, NULL, NULL, NULL);
-	    gtk_entry_set_text(GTK_ENTRY(w), newpath_utf8);
-	    g_free (newpath_utf8);
-	}
-	g_free (newpath);
-
-	gtk_widget_destroy (path_filechooser[i]);
-	path_filechooser[i] = NULL;
+	oldpath = prefs_get_string (path_key_names[i]);
     }
-}
 
-
-static void on_fc_response (GtkFileChooser *fc,
-			    gint response,
-			    PathType i)
-{
-    g_return_if_fail (i>=0 && i<PATH_NUM && path_filechooser[i]);
-
-    switch (response)
+    switch (path_type[i])
     {
-    case GTK_RESPONSE_CANCEL:
-	gtk_widget_destroy (path_filechooser[i]);
-	path_filechooser[i] = NULL;
+    case GTK_FILE_CHOOSER_ACTION_OPEN:
+	/* script */
+	newpath = fileselection_select_script (
+	    oldpath,
+	    NULL,
+	    _(path_fileselector_titles[i]),
+	    NULL);
 	break;
-    case GTK_RESPONSE_ACCEPT:
-	on_path_ok (i);
+    case GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER:
+	/* directory */
+	newpath = fileselection_get_file_or_dir (
+	    _(path_fileselector_titles[i]),
+	    oldpath,
+	    GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER);
 	break;
-    case GTK_RESPONSE_NONE:
-    case GTK_RESPONSE_DELETE_EVENT:
-	path_filechooser[i] = NULL;
-	break;
     default:
-	printf ("programming error: received unknown response %d in on_fc_response\n", response);
-	break;
+	g_return_if_reached ();
     }
-}
+    g_free (oldpath);
 
-
-/* one of the "..." buttons has been pressed -> open a file chooser
-   dialog and let the user select a file or directory */
-static void on_path_button_pressed (GtkButton *button, gpointer user_data)
-{
-    PathType i = (PathType)user_data;
-    GtkFileChooser *fc;
-    const gchar *path, *pathp;
-    gchar *buf, *fbuf;
-
-    g_return_if_fail (tmpcfg);
-    g_return_if_fail (i>=0 && i<PATH_NUM);
-
-    if (path_filechooser[i])
-    {  /* filechooser already open --> simply raise to the top */
-	gdk_window_raise(path_filechooser[i]->window);
-	return;
-    }
-    path_filechooser[i] = gtk_file_chooser_dialog_new (
-	_(path_fileselector_titles[i]),
-	NULL,
-	path_type[i],
-	GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
-	GTK_STOCK_OK, GTK_RESPONSE_ACCEPT,
-	NULL);
-    /* for convenience */
-    fc = GTK_FILE_CHOOSER (path_filechooser[i]);
-    g_signal_connect (fc, "response",
-		      G_CALLBACK (on_fc_response),
-		      (gpointer)i);
-    /* find first whitespace separating path from command line
-     * arguments */
-    path = tmpcfg->path[i];
-    pathp = strchr (path, ' ');
-    if (pathp)
-	buf = g_strndup (path, pathp-path);
-    else
-	buf = g_strdup (path);
-
-    /* get full path -- if the file cannot be found it can't be
-     * selected in the filechooser */
-    fbuf = g_find_program_in_path (buf);
-
-    if (!fbuf)
-    {   /* set some default */
-	switch (i)
-	{
-	case PATH_SYNC_CONTACTS:
-	case PATH_SYNC_CALENDAR:
-	case PATH_SYNC_NOTES:
-	    fbuf = g_strdup (scriptdir);
-	    break;
-	case PATH_PLAY_NOW:
-	case PATH_PLAY_ENQUEUE:
-	case PATH_MP3GAIN:
-	case PATH_MSERV_MUSIC_ROOT:
-	case PATH_MSERV_TRACKINFO_ROOT:
-	case PATH_NUM:
-	    break;
-	}
-    }
-
-    if (fbuf && *fbuf)
+    if (newpath)
     {
-	gchar *fbuf_utf8 = g_filename_from_utf8 (fbuf, -1, NULL, NULL, NULL);
-	if (path_type[i] == GTK_FILE_CHOOSER_ACTION_OPEN)
+	GtkWidget *w = gtkpod_xml_get_widget (prefs_window_xml,
+					      path_entry_names[i]);
+	if (w)
 	{
-	    if (g_file_test (fbuf, G_FILE_TEST_IS_DIR))
-	    {
-		gtk_file_chooser_set_current_folder (fc, fbuf_utf8);
-	    }
-	    else
-	    {
-		gtk_file_chooser_set_filename (fc, fbuf_utf8);
-	    }
+	    gchar *newpath_utf8 = g_filename_to_utf8 (newpath, -1, NULL, NULL, NULL);
+	    gtk_entry_set_text(GTK_ENTRY(w), newpath_utf8);
+	    g_free (newpath_utf8);
 	}
-	if (path_type[i] == GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER)
-	{
-	    gtk_file_chooser_set_current_folder (fc, fbuf_utf8);
-	}
-	g_free (fbuf_utf8);
-	g_free (fbuf);
+	g_free (newpath);
     }
-    g_free (buf);
-
-    gtk_widget_show (path_filechooser[i]);
 }
 
 
 static void on_path_entry_changed (GtkEditable     *editable,
 				   gpointer         user_data)
 {
-    PathType i = (PathType)user_data;
+    gint i = GPOINTER_TO_INT (user_data);
     gchar *buf = gtk_editable_get_chars(editable, 0, -1);
-    prefs_window_set_path (i, buf);
+
+    temp_prefs_set_string (temp_prefs, path_key_names[i], buf);
     g_free (buf);
 }
 
-
 /* turn the prefs window insensitive (if it's open) */
 void prefs_window_block (void)
 {
@@ -361,19 +258,12 @@
     g_return_if_fail (tooltipsdata);
     tt = tooltipsdata->tooltips;
     g_return_if_fail (tt);
-    if (prefs_get_display_tooltips_prefs ()) gtk_tooltips_enable (tt);
+    if (prefs_get_int("display_tooltips_prefs")) gtk_tooltips_enable (tt);
     else                                     gtk_tooltips_disable (tt);
 }
 
 
-/* Opens the podcasts options */
-void prefs_window_podcasts ()
-{
-    prefs_window_create (5);
-}
 
-
-
 /**
  * create_gtk_prefs_window
  * Create, Initialize, and Show the preferences window
@@ -392,6 +282,22 @@
     GtkWidget *w = NULL;
     GtkTooltips *tt;
     GtkTooltipsData *tooltipsdata;
+    GtkToolbarStyle toolbar_style;
+    gchar *buf = NULL;
+    /* List of standard toggle widget names */
+    const gchar *toggle_widget_names[] = {
+	"sync_confirm_dirs_toggle",
+	"sync_delete_tracks_toggle",
+	"sync_show_summary_toggle",
+	NULL
+    };
+    /* ... and corresponding keys */
+    const gchar *toggle_key_names[] = {
+	KEY_SYNC_CONFIRM_DIRS,
+	KEY_SYNC_DELETE_TRACKS,
+	KEY_SYNC_SHOW_SUMMARY,
+	NULL
+    };
 
     if (prefs_window)
     {   /* prefs window already open -- raise to the top */
@@ -406,18 +312,11 @@
 	}
 	return;
     }
+		
+    /* Initialize temp prefs structures */
+    temp_prefs = temp_prefs_create();
+    temp_lists = temp_lists_create();
 
-    if(!tmpcfg && !origcfg)
-    {
-	tmpcfg = clone_prefs();
-	origcfg = clone_prefs();
-    }
-    else
-    {
-	g_warning ("Programming error: tmpcfg is not NULL!!\n");
-	return;
-    }
-
     prefs_window_xml = glade_xml_new (xml_file, "prefs_window", NULL);
     glade_xml_signal_autoconnect (prefs_window_xml);
 
@@ -430,164 +329,155 @@
     tt = tooltipsdata->tooltips;
     g_return_if_fail (tt);
 
-    prefs_get_size_prefs (&defx, &defy);
+    defx = prefs_get_int("size_prefs.x");
+    defy = prefs_get_int("size_prefs.y");
     gtk_window_set_default_size (GTK_WINDOW (prefs_window), defx, defy);
 
-/* Code to add subscriptions list box */
+    /* Code to add subscriptions list box */
 
-    /* FIXME: PODCASTS: remove Podcast menu */
-/*     create_subs_treeview(); */
-
-    if((w = gtkpod_xml_get_widget (prefs_window_xml, "cfg_mount_point")))
+    /* Set up standard toggles */
+    for (i=0; toggle_widget_names[i]; ++i)
     {
-	if (tmpcfg->ipod_mount)
-	{  /* we should copy the new path first because by setting
-	      the text we might get a callback destroying the old
-	      value... */
-	    gchar *buf = g_strdup (tmpcfg->ipod_mount);
-	    gtk_entry_set_text(GTK_ENTRY(w), buf);
-	    g_free (buf);
-	}
+	w = gtkpod_xml_get_widget (prefs_window_xml,
+				   toggle_widget_names[i]);
+	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (w),
+				      prefs_get_int (toggle_key_names[i]));
+	g_signal_connect (w, "toggled",
+			  G_CALLBACK (standard_toggle_toggled),
+			  (gpointer)toggle_key_names[i]);
     }
+
+    w = gtkpod_xml_get_widget (prefs_window_xml, "sync_confirm_delete_toggle");
+    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
+				 prefs_get_int (KEY_SYNC_CONFIRM_DELETE));
+
+    w = gtkpod_xml_get_widget (prefs_window_xml, "sync_confirm_delete_toggle2");
+    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
+				 prefs_get_int (KEY_SYNC_CONFIRM_DELETE));
+
+
     w = gtkpod_xml_get_widget (prefs_window_xml, "charset_combo");
     charset_init_combo (GTK_COMBO (w));
     
     w = gtkpod_xml_get_widget (prefs_window_xml, "cfg_md5tracks");
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
-				 tmpcfg->md5tracks);
+				 prefs_get_int("md5"));
 
     w = gtkpod_xml_get_widget (prefs_window_xml, "cfg_update_existing");
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
-				 tmpcfg->update_existing);
+				 prefs_get_int("update_existing"));
 
     w = gtkpod_xml_get_widget (prefs_window_xml, "cfg_show_duplicates");
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
-				 tmpcfg->show_duplicates);
-    if (!tmpcfg->md5tracks) gtk_widget_set_sensitive (w, FALSE);
+				 prefs_get_int("show_duplicates"));
+    if (!prefs_get_int("md5")) gtk_widget_set_sensitive (w, FALSE);
 
     w = gtkpod_xml_get_widget (prefs_window_xml, "cfg_show_updated");
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
-				 tmpcfg->show_updated);
-    if (!tmpcfg->update_existing) gtk_widget_set_sensitive (w, FALSE);
+				 prefs_get_int("show_updated"));
+    if (!prefs_get_int("update_existing")) gtk_widget_set_sensitive (w, FALSE);
 
     w = gtkpod_xml_get_widget (prefs_window_xml, "cfg_show_non_updated");
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
-				 tmpcfg->show_non_updated);
-    if (!tmpcfg->update_existing) gtk_widget_set_sensitive (w, FALSE);
+				 prefs_get_int("show_non_updated"));
+    if (!prefs_get_int("update_existing")) gtk_widget_set_sensitive (w, FALSE);
 
-    w = gtkpod_xml_get_widget (prefs_window_xml, "cfg_show_sync_dirs");
-    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
-				 tmpcfg->show_sync_dirs);
-
-    w = gtkpod_xml_get_widget (prefs_window_xml, "cfg_sync_remove");
-    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
-				 tmpcfg->sync_remove);
-
     w = gtkpod_xml_get_widget (prefs_window_xml, "cfg_display_toolbar");
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
-				 tmpcfg->display_toolbar);
+				 prefs_get_int("display_toolbar"));
 
+    toolbar_style = prefs_get_int("toolbar_style");
+
     w = gtkpod_xml_get_widget (prefs_window_xml, "cfg_toolbar_style_icons");
-    if (tmpcfg->toolbar_style == GTK_TOOLBAR_ICONS)
+    if (toolbar_style == GTK_TOOLBAR_ICONS)
 	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w), TRUE);
-    if (!tmpcfg->display_toolbar) gtk_widget_set_sensitive (w, FALSE);
+    if (!prefs_get_int("display_toolbar")) gtk_widget_set_sensitive (w, FALSE);
 
     w = gtkpod_xml_get_widget (prefs_window_xml, "cfg_toolbar_style_text");
-    if (tmpcfg->toolbar_style == GTK_TOOLBAR_TEXT)
+    if (toolbar_style == GTK_TOOLBAR_TEXT)
 	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w), TRUE);
-    if (!tmpcfg->display_toolbar) gtk_widget_set_sensitive (w, FALSE);
+    if (!prefs_get_int("display_toolbar")) gtk_widget_set_sensitive (w, FALSE);
 
     w = gtkpod_xml_get_widget (prefs_window_xml, "cfg_toolbar_style_both");
-    if (tmpcfg->toolbar_style == GTK_TOOLBAR_BOTH)
+    if (toolbar_style == GTK_TOOLBAR_BOTH)
 	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w), TRUE);
-    if (!tmpcfg->display_toolbar) gtk_widget_set_sensitive (w, FALSE);
+    if (!prefs_get_int("display_toolbar")) gtk_widget_set_sensitive (w, FALSE);
 
     w = gtkpod_xml_get_widget (prefs_window_xml, "cfg_display_tooltips_main");
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
-				 tmpcfg->display_tooltips_main);
+				 prefs_get_int("display_tooltips_main"));
 
     w = gtkpod_xml_get_widget (prefs_window_xml, "cfg_display_tooltips_prefs");
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
-				 tmpcfg->display_tooltips_prefs);
+				 prefs_get_int("display_tooltips_prefs"));
 
     w = gtkpod_xml_get_widget (prefs_window_xml, "cfg_multi_edit");
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
-				 tmpcfg->multi_edit);
+				 prefs_get_int("multi_edit"));
 
     w = gtkpod_xml_get_widget (prefs_window_xml, "cfg_not_played_track");
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
-				 tmpcfg->not_played_track);
+				 prefs_get_int("not_played_track"));
 
     w = gtkpod_xml_get_widget (prefs_window_xml, "cfg_misc_track_nr");
     gtk_spin_button_set_range (GTK_SPIN_BUTTON (w), 0, 0xffffffff);
     gtk_spin_button_set_value (GTK_SPIN_BUTTON (w),
-			       prefs_get_misc_track_nr ());
-    tmpcfg->misc_track_nr = tmpcfg->misc_track_nr;
+			       prefs_get_int("misc_track_nr"));
 
     w = gtkpod_xml_get_widget (prefs_window_xml, "cfg_multi_edit_title");
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
-				 tmpcfg->multi_edit_title);
-    gtk_widget_set_sensitive (w, tmpcfg->multi_edit);
+				 prefs_get_int("multi_edit_title"));
+    gtk_widget_set_sensitive (w, prefs_get_int("multi_edit"));
 
     w = gtkpod_xml_get_widget (prefs_window_xml, "cfg_update_charset");
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
-				 tmpcfg->update_charset);
+				 prefs_get_int("update_charset"));
 
     w = gtkpod_xml_get_widget (prefs_window_xml, "cfg_block_display");
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
-				 tmpcfg->block_display);
+				 prefs_get_int("block_display"));
 
     w = gtkpod_xml_get_widget (prefs_window_xml, "cfg_id3_write");
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
-				 tmpcfg->id3_write);
+				 prefs_get_int("id3_write"));
 
     w = gtkpod_xml_get_widget (prefs_window_xml, "cfg_id3_write_id3v24");
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
-				 tmpcfg->id3_write_id3v24);
-    if (!tmpcfg->id3_write) gtk_widget_set_sensitive (w, FALSE);
+				 prefs_get_int("id3_write_id3v24"));
+    if (!prefs_get_int("id3_write")) gtk_widget_set_sensitive (w, FALSE);
 
     w = gtkpod_xml_get_widget (prefs_window_xml, "cfg_write_charset");
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
-				 tmpcfg->write_charset);
-    if (!tmpcfg->id3_write) gtk_widget_set_sensitive (w, FALSE);
+				 prefs_get_int("write_charset"));
+    if (!prefs_get_int("id3_write")) gtk_widget_set_sensitive (w, FALSE);
 
     w = gtkpod_xml_get_widget (prefs_window_xml, "cfg_add_recursively");
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
-				 tmpcfg->add_recursively);
+				 prefs_get_int("add_recursively"));
 
     w = gtkpod_xml_get_widget (prefs_window_xml, "cfg_delete_track_from_playlist");
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
-				 tmpcfg->deletion.track);
+				 prefs_get_int("delete_track"));
 
     w = gtkpod_xml_get_widget (prefs_window_xml, "cfg_delete_track_from_ipod");
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
-				 tmpcfg->deletion.ipod_file);
+				 prefs_get_int("delete_ipod"));
 
     w = gtkpod_xml_get_widget (prefs_window_xml, "cfg_track_local_file_deletion");
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
-				 tmpcfg->deletion.local_file);
+				 prefs_get_int("delete_local_file"));
 
     w = gtkpod_xml_get_widget (prefs_window_xml, "cfg_track_database_deletion");
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
-				 tmpcfg->deletion.database);
+				 prefs_get_int("delete_database"));
 
-    w = gtkpod_xml_get_widget (prefs_window_xml, "cfg_sync_remove_confirm");
-    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
-				 tmpcfg->deletion.syncing);
-    gtk_widget_set_sensitive (w, tmpcfg->sync_remove);
-
-    w = gtkpod_xml_get_widget (prefs_window_xml, "cfg_sync_remove_confirm2");
-    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
-				 tmpcfg->deletion.syncing);
-
     w = gtkpod_xml_get_widget (prefs_window_xml,  "cfg_autoimport");
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
-				 tmpcfg->autoimport);
+				 prefs_get_int("autoimport"));
 
     w = gtkpod_xml_get_widget (prefs_window_xml, "autoselect_hbox");
     for (i=0; i<SORT_TAB_MAX; ++i)
     {
-	gchar *buf;
 	GtkWidget *as;
 	gint padding;
 	    
@@ -599,7 +489,7 @@
 	else      padding = 5;
 	gtk_box_pack_start (GTK_BOX (w), as, FALSE, FALSE, padding);
 	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(as),
-				     tmpcfg->st[i].autoselect);
+				     prefs_get_int_index("st_autoselect", i));
 	g_signal_connect ((gpointer)as,
 			  "toggled",
 			  G_CALLBACK (on_cfg_st_autoselect_toggled),
@@ -607,8 +497,12 @@
 	g_free (buf);
     }
     /* connect signals for path entrys and selectors */
-    for (i=0; i<PATH_NUM; ++i)
+    for (i=0; path_button_names[i]; ++i)
     {
+	gchar *path;
+	/* "" is not a valid button name -> skip */
+	if (strlen (path_button_names[i]) == 0) continue;
+	/* Otherwise connect handler */
 	w = gtkpod_xml_get_widget (prefs_window_xml, path_button_names[i]);
 	g_signal_connect ((gpointer)w,
 			  "clicked",
@@ -616,13 +510,12 @@
 			  GUINT_TO_POINTER(i));
 
 	w = gtkpod_xml_get_widget (prefs_window_xml, path_entry_names[i]);
-	if (tmpcfg->path[i])
-	{  /* we should copy the new path first because by setting
-	      the text we might get a callback destroying the old
-	      value... */
-	    gchar *buf = g_strdup (tmpcfg->path[i]);
-	    gtk_entry_set_text(GTK_ENTRY(w), buf);
-	    g_free (buf);
+
+	path = prefs_get_string (path_key_names[i]);
+	if (path)
+	{
+	    gtk_entry_set_text(GTK_ENTRY(w), path);
+	    g_free (path);
 	}
 	g_signal_connect ((gpointer)w,
 			  "changed",
@@ -632,16 +525,15 @@
 
     w = gtkpod_xml_get_widget (prefs_window_xml, "cfg_mpl_autoselect");
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
-				 tmpcfg->mpl_autoselect);
+				 prefs_get_int("mpl_autoselect"));
 
     for (i=0; i<TM_NUM_TAGS_PREFS; ++i)
     {
-	gchar *buf;
 	buf = g_strdup_printf ("tag_autoset%d", i);
 	if((w = gtkpod_xml_get_widget (prefs_window_xml, buf)))
 	{
 	    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
-					 tmpcfg->autosettags[i]);
+					 prefs_get_int_index("tag_autoset", i));
 	    /* glade makes a "GTK_OBJECT (i)" which segfaults
 	       because "i" is not a GTK object. So we have to set up
 	       the signal handlers ourselves */
@@ -655,53 +547,54 @@
 
     w = gtkpod_xml_get_widget (prefs_window_xml, "readtags");
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
-				 tmpcfg->readtags);
+				 prefs_get_int("readtags"));
 
     w = gtkpod_xml_get_widget (prefs_window_xml, "parsetags");
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
-				 tmpcfg->parsetags);
+				 prefs_get_int("parsetags"));
 
     w = gtkpod_xml_get_widget (prefs_window_xml, "parsetags_overwrite");
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
-				 tmpcfg->parsetags_overwrite);
-    gtk_widget_set_sensitive (w, tmpcfg->parsetags);
+				 prefs_get_int("parsetags_overwrite"));
+    gtk_widget_set_sensitive (w, prefs_get_int("parsetags"));
 
     w = gtkpod_xml_get_widget (prefs_window_xml, "parsetags_template");
-    if (tmpcfg->parsetags_template)
-    {  /* we should copy the new path first because by setting
-	  the text we might get a callback destroying the old
-	  value... */
-	gchar *buf = g_strdup (tmpcfg->parsetags_template);
+    gtk_widget_set_sensitive (w, prefs_get_int("parsetags"));
+    buf = prefs_get_string("parsetags_template");
+    if (buf)
+    {
 	gtk_entry_set_text(GTK_ENTRY(w), buf);
-	g_free (buf);
+	g_free(buf);
     }
-    gtk_widget_set_sensitive (w, tmpcfg->parsetags);
 
-    w = gtkpod_xml_get_widget (prefs_window_xml, "coverart");
+    w = gtkpod_xml_get_widget (prefs_window_xml, "coverart_apic");
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
-				 tmpcfg->coverart);
+				 prefs_get_int("coverart_apic"));
 
+
+    w = gtkpod_xml_get_widget (prefs_window_xml, "coverart_file");
+    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
+				 prefs_get_int("coverart_file"));
+
     w = gtkpod_xml_get_widget (prefs_window_xml, "coverart_template");
-    if (tmpcfg->coverart_template)
-    {  /* we should copy the new path first because by setting
-	  the text we might get a callback destroying the old
-	  value... */
-	gchar *buf = g_strdup (tmpcfg->coverart_template);
+    buf = prefs_get_string("coverart_template");
+    if (buf)
+    {
 	gtk_entry_set_text(GTK_ENTRY(w), buf);
-	g_free (buf);
+	g_free(buf);
     }
-    gtk_widget_set_sensitive (w, tmpcfg->coverart);
+    gtk_widget_set_sensitive (w, prefs_get_int("coverart_file"));
 
     for (i=0; i<TM_NUM_COLUMNS; ++i)
     {
-	gchar *buf = g_strdup_printf ("col_visible%d", i);
+	buf = g_strdup_printf ("col_visible%d", i);
 	if((w = gtkpod_xml_get_widget (prefs_window_xml, buf)))
 	{
 	    /* set label */
 	    gtk_button_set_label (GTK_BUTTON (w),
 				  gettext (get_tm_string (i)));
 	    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
-					 tmpcfg->col_visible[i]);
+					 prefs_get_int_index("col_visible", i));
 	    /* set tooltip if available */
 	    if (get_tm_tooltip (i))
 	    {
@@ -722,153 +615,65 @@
     
     w = gtkpod_xml_get_widget (prefs_window_xml, "cfg_write_extended");
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
-				 tmpcfg->write_extended_info);
+				 prefs_get_int("write_extended_info"));
 
 
-if ((w = gtkpod_xml_get_widget (prefs_window_xml, "cfg_automount_ipod")))
-    {
-	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
-				     prefs_get_automount());
-    }
     if ((w = gtkpod_xml_get_widget (prefs_window_xml, "cfg_sort_tab_num_sb")))
     {
 	gtk_spin_button_set_range (GTK_SPIN_BUTTON (w),
 				   0, SORT_TAB_MAX);
 	gtk_spin_button_set_value (GTK_SPIN_BUTTON (w),
-				   prefs_get_sort_tab_num ());
-	prefs_window_set_sort_tab_num (tmpcfg->sort_tab_num);
+				   prefs_get_int("sort_tab_num"));
+	prefs_window_set_sort_tab_num (prefs_get_int("sort_tab_num"));
     }
     if ((w = gtkpod_xml_get_widget (prefs_window_xml, "cfg_group_compilations")))
     {
 	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
-				     prefs_get_group_compilations());
+				     prefs_get_int("group_compilations"));
     }
-    w = gtkpod_xml_get_widget (prefs_window_xml, "concal_autosync");
-    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
-				 tmpcfg->concal_autosync);
 
     w = gtkpod_xml_get_widget (prefs_window_xml, "cfg_tmp_disable_sort");
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
-				 tmpcfg->tmp_disable_sort);
+				 prefs_get_int("tmp_disable_sort"));
 
     w = gtkpod_xml_get_widget (prefs_window_xml, "cfg_startup_messages");
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
-				 tmpcfg->startup_messages);
+				 prefs_get_int("startup_messages"));
 
     w = gtkpod_xml_get_widget (prefs_window_xml, "cfg_mserv_use");
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
-				 tmpcfg->mserv_use);
+				 prefs_get_int("mserv_use"));
 
     w = gtkpod_xml_get_widget (prefs_window_xml, "cfg_mserv_report_probs");
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
-				 tmpcfg->mserv_report_probs);
+				 prefs_get_int("mserv_report_probs"));
 
     w = gtkpod_xml_get_widget (prefs_window_xml, "mserv_username_entry");
-    if (tmpcfg->mserv_username)
-    {  /* we should copy the new path first because by setting
-	  the text we might get a callback destroying the old
-	  value... */
-	gchar *buf = g_strdup (tmpcfg->mserv_username);
+    buf = prefs_get_string("mserv_username");
+    if (buf)
+    {
 	gtk_entry_set_text(GTK_ENTRY(w), buf);
-	g_free (buf);
+	g_free(buf);
     }
-
-    w = gtkpod_xml_get_widget (prefs_window_xml, "pc_dir");
-    if (tmpcfg->pc_dir)
-    {  /* we should copy the new path first because by setting
-	  the text we might get a callback destroying the old
-	  value... */
-	gchar *buf = g_strdup (tmpcfg->pc_dir);
-	gtk_entry_set_text(GTK_ENTRY(w), buf);
-	g_free (buf);
-    }
-
-    w = gtkpod_xml_get_widget (prefs_window_xml, "pc_del_age");
-    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
-				 tmpcfg->pc_del_age);
-
-    w = gtkpod_xml_get_widget (prefs_window_xml, "pc_del_age_val");
-    gtk_spin_button_set_range (GTK_SPIN_BUTTON (w),
-			       0, 255);
-    gtk_spin_button_set_value (GTK_SPIN_BUTTON (w),
-			       prefs_get_pc_del_age_val ());
-    if (!tmpcfg->pc_del_age) gtk_widget_set_sensitive (w, FALSE);
-
-    w = gtkpod_xml_get_widget (prefs_window_xml, "pc_del_copied");
-    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
-				 tmpcfg->pc_del_copied);
-
-    w = gtkpod_xml_get_widget (prefs_window_xml, "pc_auto_fetch");
-    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
-				 tmpcfg->pc_auto_fetch);
-
-    w = gtkpod_xml_get_widget (prefs_window_xml, "pc_log");
-    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
-				 tmpcfg->pc_log);
-
-    w = gtkpod_xml_get_widget (prefs_window_xml, "pc_log_file");
-    if (tmpcfg->pc_log_file)
-    {  /* we should copy the new path first because by setting
-	  the text we might get a callback destroying the old
-	  value... */
-	gchar *buf = g_strdup (tmpcfg->pc_log_file);
-	gtk_entry_set_text(GTK_ENTRY(w), buf);
-	g_free (buf);
-    }
-    if (!tmpcfg->pc_log) gtk_widget_set_sensitive (w, FALSE);
-
-    w = gtkpod_xml_get_widget (prefs_window_xml, "pc_auto_sync");
-    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
-				 tmpcfg->pc_auto_sync);
-
-    w = gtkpod_xml_get_widget (prefs_window_xml, "pc_ipod_del_age");
-    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
-				 tmpcfg->pc_ipod_del_age);
-
-    w = gtkpod_xml_get_widget (prefs_window_xml, "pc_ipod_del_age_val");
-    gtk_spin_button_set_range (GTK_SPIN_BUTTON (w), 0, 255);
-    gtk_spin_button_set_value (GTK_SPIN_BUTTON (w),
-			       prefs_get_pc_ipod_del_age_val ());
-    if (!tmpcfg->pc_ipod_del_age) gtk_widget_set_sensitive (w, FALSE);
-
-    w = gtkpod_xml_get_widget (prefs_window_xml, "pc_ipod_del_played");
-    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
-				 tmpcfg->pc_ipod_del_played);
-
-    w = gtkpod_xml_get_widget (prefs_window_xml, "pc_ipod_inc_date");
-    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
-				 tmpcfg->pc_ipod_inc_date);
-
-    w = gtkpod_xml_get_widget (prefs_window_xml, "pc_change_genre");
-    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
-				 tmpcfg->pc_change_genre);
-
-
-
-/* 	if((w = lookup_widget(prefs_window, "cfg_unused_gboolean3"))) */
-/* 	{ */
-/* 	    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w), */
-/* 					 tmpcfg->unused_gboolean3); */
-/* 	} */
-    w = gtkpod_xml_get_widget (prefs_window_xml, "prefs_label_syncexamples");
-    gchar *str = g_markup_printf_escaped (_("<i>Have a look at the scripts provided in '%s'. If you write a new script, please send it to jcsjcs at users.sourceforge.net for inclusion into the next release.</i>"), scriptdir);
-    gtk_label_set_markup (GTK_LABEL (w), str);
-    g_free (str);
-
-
     w = gtkpod_xml_get_widget (prefs_window_xml, "notebook");
     if (page == -1)
     {
 	gtk_notebook_set_current_page (GTK_NOTEBOOK (w),
-				       prefs_get_last_prefs_page ());
+				       prefs_get_int("last_prefs_page"));
     }
     else
     {
 	gtk_notebook_set_current_page (GTK_NOTEBOOK (w), page);
     }
-    /* FIXME: PODCASTS: remove Podcast options */
-    gtk_notebook_remove_page (GTK_NOTEBOOK (w), -1);
-
+    
+    w = gtkpod_xml_get_widget (prefs_window_xml, "exclude_file_mask_entry");
+    buf = prefs_get_string("exclude_file_mask");
+    if (buf)
+    {
+	gtk_entry_set_text(GTK_ENTRY(w), buf);
+	g_free(buf);
+    }
+    
     prefs_window_show_hide_tooltips ();
     gtk_widget_show(prefs_window);
 }
@@ -882,94 +687,27 @@
 static void
 prefs_window_set(void)
 {
-    if (tmpcfg)
-    {
-	gint i;
-	/* Need this in case user reordered column order (we don't
-	 * catch the reorder signal) */
-	tm_store_col_order ();
-	prefs_set_id3_write(tmpcfg->id3_write);
-	prefs_set_id3_write_id3v24(tmpcfg->id3_write_id3v24);
-	prefs_set_ipod_mount(tmpcfg->ipod_mount);
-	for (i=0; i<PATH_NUM; ++i)
-	{
-	    prefs_set_path (i, tmpcfg->path[i]);
-	}
-	prefs_set_charset(tmpcfg->charset);
-	prefs_set_autoimport(tmpcfg->autoimport);
-	for (i=0; i<SORT_TAB_MAX; ++i) {
-	    prefs_set_st_autoselect (i, tmpcfg->st[i].autoselect);
-	    prefs_set_st_category (i, tmpcfg->st[i].category);
-	}
-	for (i=0; i<TM_NUM_TAGS_PREFS; ++i) {
-	    prefs_set_autosettags (i, tmpcfg->autosettags[i]);
-	}
-	prefs_set_readtags(tmpcfg->readtags);
-	prefs_set_parsetags(tmpcfg->parsetags);
-	prefs_set_parsetags_overwrite(tmpcfg->parsetags_overwrite);
-	prefs_set_parsetags_template(tmpcfg->parsetags_template);
-	prefs_set_coverart(tmpcfg->coverart);
-	prefs_set_coverart_template(tmpcfg->coverart_template);
-	for (i=0; i<TM_NUM_COLUMNS; ++i)
-	{
-	    prefs_set_col_visible (i, tmpcfg->col_visible[i]);
-	}
-	prefs_set_mpl_autoselect (tmpcfg->mpl_autoselect);
-	prefs_set_track_playlist_deletion(tmpcfg->deletion.track);
-	prefs_set_track_ipod_file_deletion(tmpcfg->deletion.ipod_file);
-	prefs_set_track_local_file_deletion(tmpcfg->deletion.local_file);
-	prefs_set_track_database_deletion(tmpcfg->deletion.database);
-	prefs_set_sync_remove_confirm(tmpcfg->deletion.syncing);
-	prefs_set_write_extended_info(tmpcfg->write_extended_info);
-	prefs_set_show_duplicates(tmpcfg->show_duplicates);
-	prefs_set_show_updated(tmpcfg->show_updated);
-	prefs_set_show_non_updated(tmpcfg->show_non_updated);
-	prefs_set_show_sync_dirs(tmpcfg->show_sync_dirs);
-	/* this call well automatically destroy/setup the md5 hash table */
-	prefs_set_md5tracks(tmpcfg->md5tracks);
-	prefs_set_update_existing(tmpcfg->update_existing);
-	prefs_set_block_display(tmpcfg->block_display);
-	prefs_set_sort_tab_num(tmpcfg->sort_tab_num, TRUE);
-	prefs_set_group_compilations(tmpcfg->group_compilations, TRUE);
-	prefs_set_sync_remove(tmpcfg->sync_remove);
-	prefs_set_toolbar_style(tmpcfg->toolbar_style);
-	prefs_set_display_toolbar(tmpcfg->display_toolbar);
-	prefs_set_display_tooltips_main (tmpcfg->display_tooltips_main);
-	prefs_set_display_tooltips_prefs (tmpcfg->display_tooltips_prefs);
-	prefs_set_multi_edit (tmpcfg->multi_edit);
-	prefs_set_multi_edit_title (tmpcfg->multi_edit_title);
-	prefs_set_misc_track_nr (tmpcfg->misc_track_nr);
-	prefs_set_not_played_track (tmpcfg->not_played_track);
-	prefs_set_update_charset(tmpcfg->update_charset);
-	prefs_set_write_charset(tmpcfg->write_charset);
-	prefs_set_add_recursively(tmpcfg->add_recursively);
-	prefs_set_automount(tmpcfg->automount);
-	prefs_set_concal_autosync(tmpcfg->concal_autosync);
-	prefs_set_tmp_disable_sort(tmpcfg->tmp_disable_sort);
-	prefs_set_startup_messages(tmpcfg->startup_messages);
-	prefs_set_mserv_use(tmpcfg->mserv_use);
-	prefs_set_mserv_report_probs(tmpcfg->mserv_report_probs);
-	prefs_set_mserv_username(tmpcfg->mserv_username);
-	prefs_set_pc_dir(tmpcfg->pc_dir);
-	prefs_set_pc_del_age(tmpcfg->pc_del_age);
-	prefs_set_pc_del_age_val(tmpcfg->pc_del_age_val);
-	prefs_set_pc_del_copied(tmpcfg->pc_del_copied);
-	prefs_set_pc_auto_fetch(tmpcfg->pc_auto_fetch);
-	prefs_set_pc_log(tmpcfg->pc_log);
-	prefs_set_pc_log_file(tmpcfg->pc_log_file);
-	prefs_set_pc_auto_sync(tmpcfg->pc_auto_sync);
-	prefs_set_pc_ipod_del_age(tmpcfg->pc_ipod_del_age);
-	prefs_set_pc_ipod_del_age_val(tmpcfg->pc_ipod_del_age_val);
-	prefs_set_pc_ipod_del_played(tmpcfg->pc_ipod_del_played);
-	prefs_set_pc_ipod_inc_date(tmpcfg->pc_ipod_inc_date);
-	prefs_set_pc_change_genre(tmpcfg->pc_change_genre);
-	prefs_set_unused_gboolean3(tmpcfg->unused_gboolean3);
+   if (temp_prefs)
+   {
+     /* Update the display if we changed the number of sort tabs */
+     if (temp_prefs_get_int_value(temp_prefs, "sort_tab_num", NULL))
+      st_show_visible();
 
-	tm_show_preferred_columns();
-    }
+     /* Set up/free md5 hash table if changed */
+     if (temp_prefs_get_int_value(temp_prefs, "md5", NULL))
+	 setup_md5();
+   }
+  
+   /* Need this in case user reordered column order (we don't
+    * catch the reorder signal) */
+   tm_store_col_order ();
+
+   tm_show_preferred_columns();
+   st_show_visible();
+   display_show_hide_tooltips();
+   display_show_hide_toolbar();
 }
 
-
 /* save current window size */
 void prefs_window_update_default_sizes (void)
 {
@@ -977,7 +715,8 @@
     {
 	gint defx, defy;
 	gtk_window_get_size (GTK_WINDOW (prefs_window), &defx, &defy);
-	prefs_set_size_prefs (defx, defy);
+	prefs_set_int("size_prefs.x", defx);
+  prefs_set_int("size_prefs.y", defy);
     }
 }
 
@@ -991,18 +730,9 @@
 void
 prefs_window_cancel(void)
 {
-    cfg_free (tmpcfg);
-    /* exchange tmpcfg for origcfg */
-    tmpcfg = origcfg;
-    origcfg = NULL;
-
     /* "save" (i.e. reset) original configs */
     prefs_window_set ();
 
-    /* delete cfg struct */
-    cfg_free (tmpcfg);
-    tmpcfg = NULL;
-
     /* save current window size */
     prefs_window_update_default_sizes ();
 
@@ -1010,9 +740,6 @@
     if(prefs_window)
 	gtk_widget_destroy(prefs_window);
     prefs_window = NULL;
-
-    /* close path_fileselector windows */
-    path_close_windows ();
 }
 
 /* when window is deleted, we keep the currently applied prefs and
@@ -1021,29 +748,27 @@
 {
     gint defx, defy;
     GtkWidget *nb;
+	
+    /* Delete temp prefs structures */
+    temp_prefs_destroy(temp_prefs);
+    temp_prefs = NULL;
+    temp_lists_destroy(temp_lists);
+    temp_lists = NULL;
 
-    /* delete cfg structs */
-    cfg_free (tmpcfg);
-    tmpcfg = NULL;
-    cfg_free (origcfg);
-    origcfg = NULL;
-
     /* save current notebook page */
     nb = gtkpod_xml_get_widget (prefs_window_xml, "notebook");
-    prefs_set_last_prefs_page (gtk_notebook_get_current_page (
-				   GTK_NOTEBOOK (nb)));
+    prefs_set_int("last_prefs_page", gtk_notebook_get_current_page (
+		  GTK_NOTEBOOK (nb)));
 
     /* save current window size */
     gtk_window_get_size (GTK_WINDOW (prefs_window), &defx, &defy);
-    prefs_set_size_prefs (defx, defy);
+	  prefs_set_int("size_prefs.x", defx);
+    prefs_set_int("size_prefs.y", defy);
 
     /* close the window */
     if(prefs_window)
 	gtk_widget_destroy(prefs_window);
     prefs_window = NULL;
-
-    /* close path_fileselector windows */
-    path_close_windows ();
 }
 
 /* apply the current settings and close the window */
@@ -1054,34 +779,27 @@
     gint defx, defy;
     GtkWidget *nb;
 
+    /* Commit temp prefs to prefs table */
+    temp_prefs_apply(temp_prefs);
+    temp_lists_apply(temp_lists);
+  
     /* save current settings */
     prefs_window_set ();
 
-    /* delete cfg structs */
-    cfg_free (tmpcfg);
-    tmpcfg = NULL;
-    cfg_free (origcfg);
-    origcfg = NULL;
-
     /* save current notebook page */
     nb = gtkpod_xml_get_widget (prefs_window_xml, "notebook");
-    prefs_set_last_prefs_page (gtk_notebook_get_current_page (
-				   GTK_NOTEBOOK (nb)));
+    prefs_set_int("last_prefs_page",gtk_notebook_get_current_page (
+		  GTK_NOTEBOOK (nb)));
 
     /* save current window size */
     gtk_window_get_size (GTK_WINDOW (prefs_window), &defx, &defy);
-    prefs_set_size_prefs (defx, defy);
-    /* FIXME: PODCASTS: remove Podcast menu */
-/*     GtkListStore *store = GTK_LIST_STORE(gtk_tree_view_get_model(pc_subs_list)); */
-/*     podcast_write_from_store(store); */
+    prefs_set_int("size_prefs.x", defx);
+    prefs_set_int("size_prefs.y", defy);
 
     /* close the window */
     if(prefs_window)
 	gtk_widget_destroy(prefs_window);
     prefs_window = NULL;
-
-    /* close path_fileselector windows */
-    path_close_windows ();
 }
 
 
@@ -1089,195 +807,101 @@
 void
 prefs_window_apply (void)
 {
-    gint defx, defy, i;
-    GtkWidget *nb, *w;
+    gint defx, defy;
+    GtkWidget *nb;
 
+    /* Commit temp prefs to prefs table */
+    temp_prefs_apply(temp_prefs);
+    temp_lists_apply(temp_lists);
+  
     /* save current settings */
     prefs_window_set ();
 
-    /* reset the validated path entries */
-    for (i=0; i<PATH_NUM; ++i)
-    {
-	if((w = gtkpod_xml_get_widget (prefs_window_xml, path_entry_names[i])))
-	{
-	    gtk_entry_set_text(GTK_ENTRY(w), tmpcfg->path[i]);
-	    /* tmpcfg gets set by the "changed" callback */
-	}
-    }
-
-    if((w = gtkpod_xml_get_widget (prefs_window_xml, "mserv_username_entry")))
-    {
-	gtk_entry_set_text(GTK_ENTRY(w), prefs_get_mserv_username ());
-	/* tmpcfg gets set by the "changed" callback */
-    }
-
     /* save current notebook page */
     nb = gtkpod_xml_get_widget (prefs_window_xml, "notebook");
-    prefs_set_last_prefs_page (gtk_notebook_get_current_page (
-				   GTK_NOTEBOOK (nb)));
+    prefs_set_int("last_prefs_page", gtk_notebook_get_current_page (
+		  GTK_NOTEBOOK (nb)));
 
     /* save current window size */
     gtk_window_get_size (GTK_WINDOW (prefs_window), &defx, &defy);
-    prefs_set_size_prefs (defx, defy);
-
-    /* FIXME: PODCASTS: remove Podcast menu */
-/*     GtkListStore *store = GTK_LIST_STORE(gtk_tree_view_get_model(pc_subs_list)); */
-/*     podcast_write_from_store(store); */
+    prefs_set_int("size_prefs.x", defx);
+    prefs_set_int("size_prefs.y", defy);
 }
 
-/* FIXME: PODCASTS: remove Podcast menu */
-#if 0
-void create_subs_treeview ()
-{
-    GtkCellRenderer     *renderer;
-    GtkTreeModel        *model;
 
-    pc_subs_list = GTK_TREE_VIEW(gtk_tree_view_new ());
-    gtk_widget_set_size_request(GTK_WIDGET (pc_subs_list), 270, 105);
 
-    renderer = gtk_cell_renderer_text_new ();
-    gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (pc_subs_list),
-                                                 -1,      
-                                                 "Name",  
-                                                 renderer,
-                                                 "text", PC_SUBS_NAME,
-                                                 NULL);
+/* -----------------------------------------------------------------
 
-    renderer = gtk_cell_renderer_text_new ();
-    gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (pc_subs_list),
-                                                 -1,
-                                                 "URL",
-                                                 renderer,
-                                                 "text", PC_SUBS_URL,
-                                                 NULL);
+   Callbacks
 
-    model = GTK_TREE_MODEL(gtk_list_store_new (PC_SUBS_NUM_COLS, G_TYPE_STRING, G_TYPE_STRING));
-    podcast_read_into_store (GTK_LIST_STORE(model));
-    gtk_tree_view_set_model (GTK_TREE_VIEW (pc_subs_list), model);
+   ----------------------------------------------------------------- */
 
-    /* The tree view has acquired its own reference to the
-     *  model, so we can drop ours. That way the model will
-     *  be freed automatically when the tree view is destroyed */
-
-    g_object_unref (model);
-
-    g_signal_connect(pc_subs_list, "row-activated", G_CALLBACK(on_pc_subs_list_row_activated), NULL);
-
-    GtkWidget *pc_subs_window = gtkpod_xml_get_widget (prefs_window_xml, "pc_subs_window");
-
-    gtk_container_add (GTK_CONTAINER (pc_subs_window), GTK_WIDGET(pc_subs_list));
-
-    gtk_widget_show_all (pc_subs_window);
-}
-#endif
-
-void on_pc_add_button_clicked          (GtkButton *button,
-                                        gpointer user_data)
+void
+on_sorting_clicked                     (GtkButton       *button,
+					gpointer         user_data)
 {
-/* FIXME: PODCASTS: remove Podcast menu */
-#if 0
-    gchar *text[2];
-    GtkEditable *w = GTK_EDITABLE(gtkpod_xml_get_widget (prefs_window_xml, "pc_name"));
-    text[0] = gtk_editable_get_chars(w, 0, -1);
-    gtk_editable_delete_text(w, 0, -1);
-    w = GTK_EDITABLE(gtkpod_xml_get_widget (prefs_window_xml, "pc_url"));
-    text[1] = gtk_editable_get_chars(w, 0, -1);
-    gtk_editable_delete_text(w, 0, -1);
-
-    GtkListStore *model = GTK_LIST_STORE(gtk_tree_view_get_model(pc_subs_list));
-    GtkTreeIter iter;
-
-    gtk_list_store_append (model, &iter);
-    gtk_list_store_set (model, &iter,
-                        PC_SUBS_NAME, text[0],
-                        PC_SUBS_URL, text[1],
-                        -1);
-#endif
+    sort_window_create ();
 }
 
-void on_pc_delete_button_clicked       (GtkButton *button,
-                                        gpointer user_data)
-{
-/* FIXME: PODCASTS: remove Podcast menu */
-#if 0
-    GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(pc_subs_list));
-    GtkTreeModel     *model = gtk_tree_view_get_model(pc_subs_list);
-    GtkTreeIter       iter;
 
-    if (gtk_tree_selection_get_selected(selection, &model, &iter))
-        gtk_list_store_remove(GTK_LIST_STORE(model), &iter);
-#endif
-}
-
-void on_pc_update_button_clicked       (GtkButton *button,
-                                        gpointer user_data)
+void
+on_edit_repository_clicked           (GtkButton       *button,
+				      gpointer         user_data)
 {
-/* FIXME: PODCASTS: remove Podcast menu */
-#if 0
-    GtkTreeSelection *selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(pc_subs_list));
-    GtkTreeModel     *model = gtk_tree_view_get_model(pc_subs_list);
-    GtkTreeIter       iter;
+    iTunesDB *itdb = gp_get_selected_itdb();
 
-    if (gtk_tree_selection_get_selected(selection, &model, &iter) || 1)
+    if (itdb)
     {
-        gchar *text[2];
-        GtkEditable *w = GTK_EDITABLE(gtkpod_xml_get_widget (prefs_window_xml, "pc_name"));
-        text[0] = gtk_editable_get_chars(w, 0, -1);
-        gtk_editable_delete_text(w, 0, -1);
-        w = GTK_EDITABLE(gtkpod_xml_get_widget (prefs_window_xml, "pc_url"));
-        text[1] = gtk_editable_get_chars(w, 0, -1);
-        gtk_editable_delete_text(w, 0, -1);
-
-        gtk_list_store_set (GTK_LIST_STORE(model), &iter,
-                            PC_SUBS_NAME, text[0],
-                            PC_SUBS_URL, text[1],
-                            -1);
+	repository_edit (itdb, NULL);
     }
-#endif
+    else
+    {
+	message_sb_no_itdb_selected ();
+    }
 }
 
-
-/* FIXME: PODCASTS: remove Podcast menu */
-#if 0
-static void on_pc_subs_list_row_activated       (GtkTreeView *view,
-                                          GtkTreePath *path,
-                                          GtkTreeViewColumn *col,
-                                          gpointer user_data)
+void
+on_calendar_contact_notes_options_clicked (GtkButton       *button,
+					   gpointer         user_data)
 {
-    GtkTreeModel *model;
-    GtkTreeIter   iter;
-    gchar *text[2];
+    iTunesDB *itdb = gp_get_ipod_itdb();
 
-    model = gtk_tree_view_get_model(view);
-    gtk_tree_model_get_iter(model, &iter, path);
-    gtk_tree_model_get (model, &iter,
-                        PC_SUBS_NAME, &text[0],
-                        PC_SUBS_URL, &text[1],
-                        -1);
+    /* no iPod itdb selected -> try to use the first iPod itdb */
+    if (!itdb)
+    {
+	struct itdbs_head *itdbs_head;
 
-    GtkWidget *w = gtkpod_xml_get_widget (prefs_window_xml, "pc_name");
-    gtk_entry_set_text(GTK_ENTRY (w), text[0]);
+	g_return_if_fail (gtkpod_window);
+	itdbs_head = g_object_get_data (G_OBJECT (gtkpod_window),
+					"itdbs_head");
+	if (itdbs_head)
+	{
+	    GList *gl;
+	    for (gl=itdbs_head->itdbs; gl; gl=gl->next)
+	    {
+		iTunesDB *itdbgl = gl->data;
+		g_return_if_fail (itdbgl);
+		if (itdbgl->usertype & GP_ITDB_TYPE_IPOD)
+		    break;
+	    }
+	    if (gl)
+	    {
+		itdb = gl->data;
+	    }
+	}
+    }
 
-    w = gtkpod_xml_get_widget (prefs_window_xml, "pc_url");
-    gtk_entry_set_text(GTK_ENTRY (w), text[1]);
+    if (itdb)
+    {
+	repository_edit (itdb, NULL);
+    }
+    else
+    {
+	message_sb_no_ipod_itdb_selected ();
+    }
 }
-#endif
 
 
-/* -----------------------------------------------------------------
-
-   Callbacks
-
-   ----------------------------------------------------------------- */
-
-void
-on_sorting_clicked                     (GtkButton       *button,
-					gpointer         user_data)
-{
-    sort_window_create ();
-}
-
-
 gboolean
 on_prefs_window_delete_event           (GtkWidget       *widget,
 					GdkEvent        *event,
@@ -1322,15 +946,16 @@
     gboolean val = gtk_toggle_button_get_active(togglebutton);
     GtkWidget *w = gtkpod_xml_get_widget (prefs_window_xml, "cfg_show_duplicates");
 
-    tmpcfg->md5tracks = val;
+    temp_prefs_set_int(temp_prefs, "md5", val);
     if(w)	gtk_widget_set_sensitive (w, val);
 }
 
 void
-on_cfg_block_display_toggled           (GtkToggleButton *togglebutton,
+ on_cfg_block_display_toggled           (GtkToggleButton *togglebutton,
 					gpointer         user_data)
 {
-    tmpcfg->block_display = gtk_toggle_button_get_active (togglebutton);
+    temp_prefs_set_int(temp_prefs, "block_display",
+		       gtk_toggle_button_get_active(togglebutton));
 }
 
 void
@@ -1340,7 +965,7 @@
     gboolean val = gtk_toggle_button_get_active (togglebutton);
     GtkWidget *w;
 
-    tmpcfg->update_existing = val;
+    temp_prefs_set_int(temp_prefs, "update_existing", val);
 
     if((w = gtkpod_xml_get_widget (prefs_window_xml, "cfg_show_updated")))
 	gtk_widget_set_sensitive (w, val);
@@ -1355,7 +980,7 @@
     gboolean val = gtk_toggle_button_get_active (togglebutton);
     GtkWidget *w;
 
-    tmpcfg->id3_write = val;
+    temp_prefs_set_int(temp_prefs, "id3_write", val);
     if((w = gtkpod_xml_get_widget (prefs_window_xml, "cfg_id3_write_id3v24")))
 	gtk_widget_set_sensitive (w, val);
     if((w = gtkpod_xml_get_widget (prefs_window_xml, "cfg_write_charset")))
@@ -1367,52 +992,25 @@
 on_cfg_id3_write_id3v24_toggled            (GtkToggleButton *togglebutton,
 					gpointer         user_data)
 {
-    tmpcfg->id3_write_id3v24 = gtk_toggle_button_get_active (togglebutton);
+    temp_prefs_set_int(temp_prefs,"id3_write_id3v24",
+                       gtk_toggle_button_get_active (togglebutton));
 }
 
 
 void
-on_cfg_mount_point_changed             (GtkEditable     *editable,
-					gpointer         user_data)
-{
-    g_free (tmpcfg->ipod_mount);
-    tmpcfg->ipod_mount = gtk_editable_get_chars(editable,0, -1);
-}
-
-
-/**
- * prefs_window_set_mount_point
- * @mp - set the temporary config variable to the mount point specified
- */
-void
-prefs_window_set_mount_point(const gchar *mp)
-{
-    g_free (tmpcfg->ipod_mount);
-    tmpcfg->ipod_mount = g_strdup(mp);
-}
-
-static void prefs_window_set_path (PathType i, const gchar *path)
-{
-    if (!path) return;
-    g_return_if_fail (i>=0 && i<PATH_NUM);
-    g_free (tmpcfg->path[i]);
-    tmpcfg->path[i] = g_strdup (path);
-}
-
-void
 on_cfg_write_extended_info_toggled     (GtkToggleButton *togglebutton,
 					gpointer         user_data)
 {
-    tmpcfg->write_extended_info = 
-	gtk_toggle_button_get_active (togglebutton);
+    temp_prefs_set_int(temp_prefs, "write_extended_info",
+		       gtk_toggle_button_get_active(togglebutton));
 }
 
 void
 on_cfg_delete_track_from_playlist_toggled (GtkToggleButton *togglebutton,
 					   gpointer         user_data)
 {
-    tmpcfg->deletion.track = 
-	gtk_toggle_button_get_active(togglebutton);
+	temp_prefs_set_int(temp_prefs, "delete_file",
+                     gtk_toggle_button_get_active(togglebutton));
 }
 
 
@@ -1420,32 +1018,56 @@
 on_cfg_delete_track_from_ipod_toggled  (GtkToggleButton *togglebutton,
 					gpointer         user_data)
 {
-    tmpcfg->deletion.ipod_file =
-	gtk_toggle_button_get_active(togglebutton);
+	temp_prefs_set_int(temp_prefs, "delete_ipod", 
+                     gtk_toggle_button_get_active(togglebutton));
 }
 
 void
 on_cfg_track_local_file_deletion_toggled (GtkToggleButton *togglebutton,
 					  gpointer         user_data)
 {
-    tmpcfg->deletion.local_file =
-	gtk_toggle_button_get_active(togglebutton);
+	temp_prefs_set_int(temp_prefs, "delete_local_file",
+                     gtk_toggle_button_get_active(togglebutton));
 }
 
 void
 on_cfg_track_database_deletion_toggled (GtkToggleButton *togglebutton,
 					gpointer         user_data)
 {
-    tmpcfg->deletion.database =
-	gtk_toggle_button_get_active(togglebutton);
+	temp_prefs_set_int(temp_prefs, "delete_database",
+                     gtk_toggle_button_get_active(togglebutton));
 }
 
+static void standard_toggle_toggled (GtkToggleButton *togglebutton,
+				     const gchar *key)
+{
+    g_return_if_fail (key);
+
+    temp_prefs_set_int (temp_prefs, key, 
+			gtk_toggle_button_get_active (togglebutton));
+}
+
 void
-on_cfg_sync_remove_confirm_toggled     (GtkToggleButton *togglebutton,
-					gpointer         user_data)
+on_sync_confirm_delete_toggled     (GtkToggleButton *togglebutton,
+				    gpointer         user_data)
 {
-    tmpcfg->deletion.syncing = 
-	gtk_toggle_button_get_active(togglebutton);
+    GtkToggleButton *w;
+    gboolean active = gtk_toggle_button_get_active(togglebutton);
+
+    temp_prefs_set_int(temp_prefs, KEY_SYNC_CONFIRM_DELETE, active);
+		       
+
+    w = GTK_TOGGLE_BUTTON(
+	gtkpod_xml_get_widget (prefs_window_xml,
+			       "sync_confirm_delete_toggle"));
+    if (w != togglebutton)
+	gtk_toggle_button_set_active(w, active);
+
+    w = GTK_TOGGLE_BUTTON(
+	gtkpod_xml_get_widget (prefs_window_xml,
+			       "sync_confirm_delete_toggle2"));
+    if (w != togglebutton)
+	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w), active);
 }
 
 
@@ -1453,8 +1075,8 @@
 on_cfg_autoimport_toggled              (GtkToggleButton *togglebutton,
 					gpointer         user_data)
 {
-    tmpcfg->autoimport =
-	gtk_toggle_button_get_active(togglebutton);
+    temp_prefs_set_int(temp_prefs, "autoimport",
+		       gtk_toggle_button_get_active(togglebutton));
 }
 
 void
@@ -1465,7 +1087,7 @@
 
     descr = gtk_editable_get_chars (editable, 0, -1);
     charset = charset_from_description (descr);
-    prefs_cfg_set_charset (tmpcfg, charset);
+    temp_prefs_set_string(temp_prefs, "charset", charset);
     g_free (descr);
     g_free (charset);
 }
@@ -1474,7 +1096,8 @@
 {
     if ((inst >= 0) && (inst < SORT_TAB_MAX))
     {
-	tmpcfg->st[inst].autoselect = autoselect;
+      temp_prefs_set_int_index(temp_prefs, "st_autoselect", inst, 
+                               autoselect);
     }
 }
 
@@ -1482,22 +1105,22 @@
 on_cfg_mpl_autoselect_toggled          (GtkToggleButton *togglebutton,
 					gpointer         user_data)
 {
-    tmpcfg->mpl_autoselect =
-	gtk_toggle_button_get_active(togglebutton);
+    temp_prefs_set_int(temp_prefs, "mpl_autoselect", 
+		       gtk_toggle_button_get_active(togglebutton));
 }
 
 void prefs_window_set_autosettags (gint category, gboolean autoset)
 {
     if (category < TM_NUM_TAGS_PREFS)
-	tmpcfg->autosettags[category] = autoset;
+			temp_prefs_set_int_index(temp_prefs, "tag_autoset", category, autoset);
 }
 
 void
 on_readtags_toggled                    (GtkToggleButton *togglebutton,
 					gpointer         user_data)
 {
-    tmpcfg->readtags = 
-	gtk_toggle_button_get_active(togglebutton);
+    temp_prefs_set_int(temp_prefs, "readtags",
+		       gtk_toggle_button_get_active(togglebutton));
 }
 
 void
@@ -1507,7 +1130,7 @@
     gboolean val = gtk_toggle_button_get_active(togglebutton);
     GtkWidget *w;
 
-    tmpcfg->parsetags = val;
+    temp_prefs_set_int(temp_prefs, "parsetags", val);
     w = gtkpod_xml_get_widget (prefs_window_xml, "parsetags_overwrite");
     gtk_widget_set_sensitive (w, val);
     w = gtkpod_xml_get_widget (prefs_window_xml, "parsetags_template");
@@ -1518,50 +1141,62 @@
 on_parsetags_overwrite_toggled         (GtkToggleButton *togglebutton,
 					gpointer         user_data)
 {
-    tmpcfg->parsetags_overwrite = 
-	gtk_toggle_button_get_active(togglebutton);
+    temp_prefs_set_int(temp_prefs, "parsetags_overwrite",
+		       gtk_toggle_button_get_active(togglebutton));
 }
 
 void
 on_parsetags_template_changed             (GtkEditable     *editable,
 					   gpointer         user_data)
 {
-    g_free (tmpcfg->parsetags_template);
-    tmpcfg->parsetags_template = gtk_editable_get_chars (editable,0, -1);
+    temp_prefs_set_string(temp_prefs, "parsetags_template",
+			  gtk_editable_get_chars (editable,0, -1));
 }
 
 void
-on_coverart_toggled                   (GtkToggleButton *togglebutton,
-				       gpointer         user_data)
+on_coverart_file_toggled                   (GtkToggleButton *togglebutton,
+					    gpointer         user_data)
 {
     gboolean val = gtk_toggle_button_get_active(togglebutton);
     GtkWidget *w;
 
-    tmpcfg->coverart = val;
+    temp_prefs_set_int(temp_prefs, "coverart_file", val);
     w = gtkpod_xml_get_widget (prefs_window_xml, "coverart_template");
     gtk_widget_set_sensitive (w, val);
 }
 
 void
+on_coverart_apic_toggled                   (GtkToggleButton *togglebutton,
+					    gpointer         user_data)
+{
+    gboolean val = gtk_toggle_button_get_active(togglebutton);
+    GtkWidget *w;
+
+    temp_prefs_set_int(temp_prefs, "coverart_apic", val);
+    w = gtkpod_xml_get_widget (prefs_window_xml, "coverart_template");
+    gtk_widget_set_sensitive (w, val);
+}
+
+void
 on_coverart_template_changed             (GtkEditable     *editable,
 					gpointer         user_data)
 {
-    g_free (tmpcfg->coverart_template);
-    tmpcfg->coverart_template = gtk_editable_get_chars (editable,0, -1);
+    temp_prefs_set_string(temp_prefs, "coverart_template",
+			  gtk_editable_get_chars (editable,0, -1));
 }
 
 void prefs_window_set_col_visible (gint column, gboolean visible)
 {
     if (column < TM_NUM_COLUMNS)
-	tmpcfg->col_visible[column] = visible;
+	    temp_prefs_set_int_index(temp_prefs, "col_visible", column, visible);
 }
 
 void
 on_cfg_show_duplicates_toggled         (GtkToggleButton *togglebutton,
 					gpointer         user_data)
 {
-    tmpcfg->show_duplicates =
-	gtk_toggle_button_get_active (togglebutton);
+	temp_prefs_set_int(temp_prefs, "show_duplicates", 
+                     gtk_toggle_button_get_active (togglebutton));
 
 }
 
@@ -1570,7 +1205,8 @@
 on_cfg_show_updated_toggled            (GtkToggleButton *togglebutton,
 					gpointer         user_data)
 {
-    tmpcfg->show_updated = gtk_toggle_button_get_active (togglebutton);
+    temp_prefs_set_int(temp_prefs, "show_updated",
+                       gtk_toggle_button_get_active (togglebutton));
 }
 
 
@@ -1578,42 +1214,24 @@
 on_cfg_show_non_updated_toggled        (GtkToggleButton *togglebutton,
 					gpointer         user_data)
 {
-    tmpcfg->show_non_updated = gtk_toggle_button_get_active (togglebutton);
+    temp_prefs_set_int(temp_prefs, "show_non_updated", 
+                       gtk_toggle_button_get_active (togglebutton));
 }
 
 void
-on_cfg_show_sync_dirs_toggled        (GtkToggleButton *togglebutton,
-				      gpointer         user_data)
-{
-    tmpcfg->show_sync_dirs = gtk_toggle_button_get_active (togglebutton);
-}
-
-void
-on_cfg_sync_remove_toggled             (GtkToggleButton *togglebutton,
-					gpointer         user_data)
-{
-    gboolean val = gtk_toggle_button_get_active (togglebutton);
-    GtkWidget *w;
-
-    tmpcfg->sync_remove = val;
-    if((w = gtkpod_xml_get_widget (prefs_window_xml, "cfg_sync_remove_confirm")))
-	gtk_widget_set_sensitive (w, val);
-}
-
-void
 on_cfg_display_tooltips_main_toggled   (GtkToggleButton *togglebutton,
 					gpointer         user_data)
 {
-    tmpcfg->display_tooltips_main =
-	gtk_toggle_button_get_active  (togglebutton);
+    temp_prefs_set_int(temp_prefs, "display_tooltips_main",
+		       gtk_toggle_button_get_active  (togglebutton));
 }
 
 void
 on_cfg_display_tooltips_prefs_toggled  (GtkToggleButton *togglebutton,
 					gpointer         user_data)
 {
-    tmpcfg->display_tooltips_prefs =
-	gtk_toggle_button_get_active  (togglebutton);
+    temp_prefs_set_int(temp_prefs, "display_tooltips_prefs",
+		       gtk_toggle_button_get_active  (togglebutton));
 }
 
 
@@ -1626,7 +1244,7 @@
     GtkWidget *w2 = gtkpod_xml_get_widget (prefs_window_xml, "cfg_toolbar_style_text");
     GtkWidget *w3 = gtkpod_xml_get_widget (prefs_window_xml, "cfg_toolbar_style_both");
 
-    tmpcfg->display_toolbar = val;
+    temp_prefs_set_int(temp_prefs, "display_toolbar", val);
 
     if (w1) gtk_widget_set_sensitive (w1, val);
     if (w2) gtk_widget_set_sensitive (w2, val);
@@ -1640,7 +1258,7 @@
     gboolean val = gtk_toggle_button_get_active (togglebutton);
     GtkWidget *w = gtkpod_xml_get_widget  (prefs_window_xml, "cfg_multi_edit_title");
 
-    tmpcfg->multi_edit = val;
+    temp_prefs_set_int(temp_prefs, "multi_edit", val);
     gtk_widget_set_sensitive (w, val);
 }
 
@@ -1649,51 +1267,55 @@
 on_cfg_multi_edit_title_toggled        (GtkToggleButton *togglebutton,
 					gpointer         user_data)
 {
-    tmpcfg->multi_edit_title =
-	gtk_toggle_button_get_active  (togglebutton);
+    temp_prefs_set_int(temp_prefs, "multi_edit_title",
+		       gtk_toggle_button_get_active(togglebutton));
 }
 
 void
 on_cfg_update_charset_toggled          (GtkToggleButton *togglebutton,
 					gpointer         user_data)
 {
-    tmpcfg->update_charset = gtk_toggle_button_get_active (togglebutton);
+    temp_prefs_set_int(temp_prefs, "update_charset",
+		       gtk_toggle_button_get_active (togglebutton));
 }
 
 void
 on_cfg_write_charset_toggled           (GtkToggleButton *togglebutton,
 					gpointer         user_data)
 {
-    tmpcfg->write_charset = gtk_toggle_button_get_active (togglebutton);
+    temp_prefs_set_int(temp_prefs, "write_charset",
+		       gtk_toggle_button_get_active(togglebutton));
 }
 
 void
 on_cfg_add_recursively_toggled         (GtkToggleButton *togglebutton,
 					gpointer         user_data)
 {
-    tmpcfg->add_recursively = gtk_toggle_button_get_active (togglebutton);
+    temp_prefs_set_int(temp_prefs, "add_recursively",
+		       gtk_toggle_button_get_active (togglebutton));
 }
 
 void
 on_cfg_not_played_track_toggled         (GtkToggleButton *togglebutton,
 					gpointer         user_data)
 {
-    tmpcfg->not_played_track =
-	gtk_toggle_button_get_active  (togglebutton);
+    temp_prefs_set_int(temp_prefs, "not_played_track",
+		       gtk_toggle_button_get_active(togglebutton));
 }
 
 void
 on_cfg_misc_track_nr_value_changed      (GtkSpinButton   *spinbutton,
 					gpointer         user_data)
 {
-    tmpcfg->misc_track_nr = gtk_spin_button_get_value  (spinbutton);
+    temp_prefs_set_int(temp_prefs, "misc_track_nr",
+		       gtk_spin_button_get_value  (spinbutton));
 }
 
 static void prefs_window_set_sort_tab_num (gint num)
 {
     gint i;
 
-    tmpcfg->sort_tab_num = num;
+    temp_prefs_set_int(temp_prefs, "sort_tab_num", num);
     for (i=0; i<SORT_TAB_MAX; ++i)
     {   /* make all checkboxes with i<num sensitive, the others
 	   insensitive */
@@ -1713,7 +1335,8 @@
 on_cfg_group_compilations_toggled      (GtkToggleButton *togglebutton,
 					gpointer         user_data)
 {
-    tmpcfg->group_compilations = gtk_toggle_button_get_active (togglebutton);
+    temp_prefs_set_int(temp_prefs, "group_compilations",
+		       gtk_toggle_button_get_active (togglebutton));
 }
 
 void
@@ -1722,7 +1345,8 @@
 {
     if (gtk_toggle_button_get_active (togglebutton))
     {
-	tmpcfg->toolbar_style = GTK_TOOLBAR_BOTH;
+	temp_prefs_set_int(temp_prefs, "toolbar_style",  
+			   GTK_TOOLBAR_BOTH);
     }
 }
 
@@ -1733,7 +1357,8 @@
 {
     if (gtk_toggle_button_get_active (togglebutton))
     {
-	tmpcfg->toolbar_style = GTK_TOOLBAR_TEXT;
+	temp_prefs_set_int(temp_prefs, "toolbar_style",
+			   GTK_TOOLBAR_TEXT);
     }
 }
 
@@ -1744,7 +1369,8 @@
 {
     if (gtk_toggle_button_get_active (togglebutton))
     {
-	tmpcfg->toolbar_style = GTK_TOOLBAR_ICONS;
+	temp_prefs_set_int(temp_prefs, "toolbar_style",
+			   GTK_TOOLBAR_ICONS);
     }
 }
 
@@ -1753,32 +1379,18 @@
 }
 
 void
-on_cfg_automount_ipod_toggled          (GtkToggleButton *togglebutton,
-					gpointer         user_data)
-{
-    tmpcfg->automount = gtk_toggle_button_get_active (togglebutton);
-}
-
-void
-on_concal_autosync_toggled             (GtkToggleButton *togglebutton,
-					gpointer         user_data)
-{
-    tmpcfg->concal_autosync = gtk_toggle_button_get_active (togglebutton);
-}
-
-void
 on_cfg_temporarily_disable_sorting     (GtkToggleButton *togglebutton,
                                         gpointer         user_data)
 {
-    tmpcfg->tmp_disable_sort =
-	gtk_toggle_button_get_active (togglebutton);
+    temp_prefs_set_int(temp_prefs, "tmp_disable_sort",
+		       gtk_toggle_button_get_active(togglebutton));
 }
 void
 on_cfg_startup_messages                (GtkToggleButton *togglebutton,
                                         gpointer         user_data)
 {
-    tmpcfg->startup_messages =
-	gtk_toggle_button_get_active (togglebutton);
+	temp_prefs_set_int(temp_prefs, "startup_messages",
+			   gtk_toggle_button_get_active (togglebutton));
 }
 
 void
@@ -1794,15 +1406,16 @@
 on_mserv_use_toggled                   (GtkToggleButton *togglebutton,
                                         gpointer         user_data)
 {
-    tmpcfg->mserv_use = gtk_toggle_button_get_active (togglebutton);
+    temp_prefs_set_int(temp_prefs, "mserv_use",
+		       gtk_toggle_button_get_active(togglebutton));
 }
 
 void
 on_mserv_report_probs_toggled          (GtkToggleButton *togglebutton,
                                         gpointer         user_data)
 {
-    tmpcfg->mserv_report_probs =
-	gtk_toggle_button_get_active (togglebutton);
+    temp_prefs_set_int(temp_prefs, "mserv_report_probs", 
+                       gtk_toggle_button_get_active (togglebutton));
 }
 
 void
@@ -1812,17 +1425,11 @@
     gchar *val = gtk_editable_get_chars (editable,0, -1);
 
     if (!val) return;
-    g_free (tmpcfg->mserv_username);
-    tmpcfg->mserv_username = val;
+    temp_prefs_set_string(temp_prefs, "mserv_username", val);
+    g_free(val);
 }
 
-void
-prefs_window_set_unused_gboolean3(gboolean val)
-{
-    tmpcfg->unused_gboolean3 = val;
-}
 
-
 /* ------------------------------------------------------------ *\
  *                                                              *
  * Sort-Prefs Window                                            *
@@ -1838,48 +1445,55 @@
 
 
 /* Copy the current ignore fields and ignore strings into scfg */
-static void sort_window_read_sort_ign (struct sortcfg *scfg)
+static void sort_window_read_sort_ign ()
 {
     gint i;
-    GtkTextIter ts, te;
     GtkTextView *tv;
     GtkTextBuffer *tb;
+    GList *sort_ign_strings;
+    GList *current;
+    gchar *buf;
 
-    g_return_if_fail (scfg);
 
-    /* remove old list */
-    g_list_free (scfg->tmp_sort_ign_fields);
-    scfg->tmp_sort_ign_fields = NULL;
-
     /* read sort field states */
     for (i=0; sort_ign_fields[i] != -1; ++i)
     {
-	gchar *buf = g_strdup_printf ("sort_ign_field_%d",
+	buf = g_strdup_printf ("sort_ign_field_%d",
 				      sort_ign_fields[i]);
 	GtkWidget *w = gtkpod_xml_get_widget (sort_window_xml, buf);
 	g_return_if_fail (w);
-	scfg->tmp_sort_ign_fields = g_list_append (
-	    scfg->tmp_sort_ign_fields,
-	    GUINT_TO_POINTER( gtk_toggle_button_get_active (
-		GTK_TOGGLE_BUTTON (w))));
+	prefs_set_int( buf,
+	     gtk_toggle_button_get_active (
+		GTK_TOGGLE_BUTTON (w)));
 	g_free (buf);
     }
-
-    /* remove old strings */
-    g_free (scfg->tmp_sort_ign_strings);
-    scfg->tmp_sort_ign_strings = NULL;
-
-    /* read new ignore strings */
+    
+    /* Read sort ignore strings */
     tv = GTK_TEXT_VIEW (gtkpod_xml_get_widget (sort_window_xml,
 					      "sort_ign_strings"));
     g_return_if_fail (tv);
     tb = gtk_text_view_get_buffer (tv);
     g_return_if_fail (tb);
 
-    gtk_text_buffer_get_bounds (tb, &ts, &te);
-    scfg->tmp_sort_ign_strings = gtk_text_buffer_get_text (tb,
-							   &ts, &te,
-							   TRUE);
+    sort_ign_strings = get_list_from_buffer(tb);
+    current = sort_ign_strings;
+    
+    /* Add a trailing whitespace to strings */
+    while (current)
+    {
+	g_strstrip(current->data);
+	
+        if (strlen(current->data) != 0)
+	{
+	    buf = g_strdup_printf("%s ",(gchar *) current->data);
+	    g_free(current->data);
+	    current->data = buf;
+	}
+
+	current = g_list_next(current);
+    }
+	
+    temp_list_add(sort_temp_lists, "sort_ign_string_", sort_ign_strings);
 }
 
 /**
@@ -1896,20 +1510,17 @@
     else
     {
 	GList *collist = NULL;
+	GList *sort_ign_strings;
+	GList *current;  /* current sort ignore item */
 	GtkWidget *w;
 	GtkTextView *tv;
 	GtkTextBuffer *tb;
 	gint i;
+	GtkTextIter ti;
+	gchar *str;
 
-	if(!tmpsortcfg && !origsortcfg)
-	{
-	    origsortcfg = clone_sortprefs();
-	}
-	else
-	{
-	    g_warning ("Programming error: tmpsortcfg is not NULL!!\n");
-	    g_return_if_reached ();
-	}
+	sort_temp_prefs = temp_prefs_create();
+	sort_temp_lists = temp_lists_create();
 
 	sort_window_xml = glade_xml_new (xml_file, "sort_window", NULL);
 	glade_xml_signal_autoconnect (sort_window_xml);
@@ -1950,54 +1561,45 @@
 	    gtk_text_view_set_editable(tv, FALSE);
 	    gtk_text_view_set_cursor_visible(tv, FALSE);
 	}
-	for (i=0; ; ++i)
+	
+	sort_ign_strings = prefs_get_list("sort_ign_string_");
+	current = sort_ign_strings;
+	while (current)
 	{
-	    GtkTextIter ti;
-	    gchar *buf = g_strdup_printf ("sort_ign_string_%d", i);
-	    gchar *str = prefs_get_string (buf);
+	    str = (gchar *)current->data;
+	    current = g_list_next(current);
 
-	    g_free (buf);
-
-           /* end loop if no string is set or if the the string
-	    * corresponds to the end marker */
-	    if (!str)  break;  
-	    if (strcmp (str, SORT_IGNORE_STRINGS_END) == 0)
-	    {
-		g_free (str);
-		break;
-	    }
-
 	    /* append new text to the end */
 	    gtk_text_buffer_get_end_iter (tb, &ti);
 	    gtk_text_buffer_insert (tb, &ti, str, -1);
 	    /* append newline */
 	    gtk_text_buffer_get_end_iter (tb, &ti);
 	    gtk_text_buffer_insert (tb, &ti, "\n", -1);
-	    g_free (str);
 	}
-	/* update the origsortcfg with the original settings (ignore
-	 * fields and ignore strings) */
-	sort_window_read_sort_ign (origsortcfg);
+	
+	prefs_free_list(sort_ign_strings);
 
+	sort_window_read_sort_ign ();
+
 	/* Set Sort-Column-Combo */
 	/* create the list in the order of the columns displayed */
 	tm_store_col_order ();
 	for (i=0; i<TM_NUM_COLUMNS; ++i)
 	{   /* first the visible columns */
-	    TM_item col = prefs_get_col_order (i);
+	    TM_item col = prefs_get_int_index("col_order", i);
 	    if (col != -1)
 	    {
-		if (prefs_get_col_visible (col))
+		if (prefs_get_int_index("col_visible", col))
 		    collist = g_list_append (collist,
 					     gettext (get_tm_string (col)));
 	    }
 	}
 	for (i=0; i<TM_NUM_COLUMNS; ++i)
 	{   /* first the visible columns */
-	    TM_item col = prefs_get_col_order (i);
+	    TM_item col = prefs_get_int_index("col_order", i);
 	    if (col != -1)
 	    {
-		if (!prefs_get_col_visible (col))
+		if (!prefs_get_int_index("col_visible", col))
 		    collist = g_list_append (collist,
 					     gettext (get_tm_string (col)));
 	    }
@@ -2025,12 +1627,7 @@
 	gchar *str;
 	GtkWidget *w = NULL;
 
-	/* update or create tmpsortcfg */
-	if (tmpsortcfg)
-	    sortcfg_free (tmpsortcfg);
-	tmpsortcfg = clone_sortprefs();
-
-	switch (tmpsortcfg->pm_sort)
+	switch (prefs_get_int("pm_sort"))
 	{
 	case SORT_ASCENDING:
 	    w = gtkpod_xml_get_widget (sort_window_xml, "pm_ascend");
@@ -2046,7 +1643,7 @@
 	    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w), TRUE);
 
 	w = NULL;
-	switch (tmpsortcfg->st_sort)
+	switch (prefs_get_int("st_sort"))
 	{
 	case SORT_ASCENDING:
 	    w = gtkpod_xml_get_widget (sort_window_xml, "st_ascend");
@@ -2061,7 +1658,7 @@
 	if (w)
 	    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w), TRUE);
 
-	switch (tmpsortcfg->tm_sort)
+	switch (prefs_get_int("tm_sort_"))
 	{
 	case SORT_ASCENDING:
 	    w = gtkpod_xml_get_widget (sort_window_xml, "tm_ascend");
@@ -2076,23 +1673,18 @@
 	if (w)
 	    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w), TRUE);
 
-	w = gtkpod_xml_get_widget (sort_window_xml, "pm_autostore");
-	if (w)
-	    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
-					 tmpsortcfg->pm_autostore);
-
 	w = gtkpod_xml_get_widget (sort_window_xml, "tm_autostore");
 	if (w)
 	    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
-					 tmpsortcfg->tm_autostore);
+					 prefs_get_int("tm_autostore"));
 
 	if((w = gtkpod_xml_get_widget (sort_window_xml, "cfg_case_sensitive")))
 	{
 	    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w),
-					 tmpsortcfg->case_sensitive);
+					 prefs_get_int("case_sensitive"));
 	}
 	/* set standard entry in combo */
-	str = gettext (get_tm_string (prefs_get_tm_sortcol ()));
+	str = gettext (get_tm_string (prefs_get_int("tm_sortcol")));
 	w = gtkpod_xml_get_widget (sort_window_xml, "sort_combo");
 	gtk_entry_set_text (GTK_ENTRY (GTK_COMBO (w)->entry), str);
     }
@@ -2126,8 +1718,10 @@
 	tt = tooltips_data->tooltips;
 	if (tt)
 	{
-	    if (prefs_get_display_tooltips_prefs ()) gtk_tooltips_enable (tt);
-	    else                                     gtk_tooltips_disable (tt);
+	    if (prefs_get_int("display_tooltips_prefs")) 
+		gtk_tooltips_enable (tt);
+	    else                                     
+		gtk_tooltips_disable (tt);
 	}
 	else
 	{
@@ -2162,100 +1756,35 @@
 }
 
 
-/* copy newly set values from tmpsortcfg to the original cfg struct */
-static void sort_window_set (struct sortcfg *scfg)
+/* Prepare keys to be copied to prefs table */
+static void sort_window_set ()
 {
-    struct sortcfg *tsc;
-    gchar *buf;
-    gint i;
+    gint val; /* A value from temp prefs */
+    TM_item sortcol_new;
+    TM_item sortcol_old;
 
-    g_return_if_fail (scfg);
+    sortcol_old = prefs_get_int("tm_sortcol");
+    sortcol_new = sort_window_get_sort_col();
+    prefs_set_int("tm_sortcol", sortcol_new);
 
-    tsc = clone_sortprefs ();
-
-    prefs_set_pm_sort (scfg->pm_sort);
-    prefs_set_pm_autostore (scfg->pm_autostore);
-    prefs_set_st_sort (scfg->st_sort);
-    prefs_set_tm_sort (scfg->tm_sort);
-    prefs_set_tm_autostore (scfg->tm_autostore);
-    prefs_set_case_sensitive (scfg->case_sensitive);
-    scfg->tm_sortcol = sort_window_get_sort_col ();
-    prefs_set_tm_sortcol (scfg->tm_sortcol);
-
-    /* set sort field states */
-    for (i=0; sort_ign_fields[i] != -1; ++i)
-    {
-	gchar *buf = g_strdup_printf ("sort_ign_field_%d",
-				      sort_ign_fields[i]);
-	prefs_set_int_value (
-	    buf,
-	    GPOINTER_TO_UINT(g_list_nth_data (
-		scfg->tmp_sort_ign_fields, i)));
-	g_free (buf);
-    }
-    /* clean up old sort strings */
-    for (i=0; i>=0; ++i)
-    {
-	gchar *buf = g_strdup_printf ("sort_ign_string_%d", i);
-	if (prefs_get_string (buf))
-	{
-	    prefs_set_string_value (buf, NULL);
-	}
-	else
-	{
-	    i=-2;  /* end loop */
-	}
-	g_free (buf);
-    }
-    /* set new sort strings */
-    i=0;
-    if (scfg->tmp_sort_ign_strings)
-    {
-	gchar **strings = g_strsplit(scfg->tmp_sort_ign_strings,
-				     "\n", -1);
-	gchar **strp = strings;
-	while (*strp)
-	{
-	    g_strstrip (*strp);
-	    if (strlen (*strp) != 0)
-	    {
-		/* add space to the ignore string */
-		gchar *str = g_strdup_printf ("%s ", *strp);
-		buf = g_strdup_printf ("sort_ign_string_%d", i);
-		prefs_set_string_value (buf, str);
-		g_free (str);
-		g_free (buf);
-		++i;
-	    }
-	    ++strp;
-	}
-	g_strfreev (strings);
-    }
-    /* set end marker */
-    buf = g_strdup_printf ("sort_ign_string_%d", i);
-    prefs_set_string_value (buf, SORT_IGNORE_STRINGS_END);
-    g_free (buf);
     /* update compare string keys */
     compare_string_fuzzy_generate_keys ();
 
     /* if sort type has changed, initialize display */
-    if (tsc->pm_sort != scfg->pm_sort)
-	pm_sort (scfg->pm_sort);
-    if (tsc->st_sort != scfg->st_sort)
-	st_sort (scfg->st_sort);
-    if ((tsc->tm_sort != scfg->tm_sort) ||
-	(tsc->tm_sortcol != scfg->tm_sortcol))
+    if (temp_prefs_get_int_value(sort_temp_prefs, "pm_sort", &val))
+	pm_sort (val);
+    if (temp_prefs_get_int_value(sort_temp_prefs, "st_sort", &val))
+	st_sort (val);
+    if (temp_prefs_get_int_value(sort_temp_prefs, "tm_sort_", NULL) ||
+	(sortcol_old != sortcol_new))
     {
 	tm_sort_counter (-1);
-	tm_sort (prefs_get_tm_sortcol (), scfg->tm_sort);
+	tm_sort (prefs_get_int("tm_sortcol"), prefs_get_int("tm_sort_"));
     }
     /* if auto sort was changed to TRUE, store order */
-    if (!tsc->pm_autostore && scfg->pm_autostore)
-	pm_rows_reordered ();
-    if (!tsc->tm_autostore && scfg->tm_autostore)
+    if (!temp_prefs_get_int(sort_temp_prefs, "tm_autostore"))
 	tm_rows_reordered ();
 
-    sortcfg_free (tsc);
 }
 
 
@@ -2320,15 +1849,6 @@
 
 
 void
-on_pm_autostore_toggled                (GtkToggleButton *togglebutton,
-					gpointer         user_data)
-{
-    sort_window_set_pm_autostore (gtk_toggle_button_get_active(togglebutton));
-}
-
-
-
-void
 on_tm_ascend_toggled                   (GtkToggleButton *togglebutton,
 					gpointer         user_data)
 {
@@ -2372,112 +1892,6 @@
 
 
 void
-on_pc_dir_changed                      (GtkEditable     *editable,
-                                        gpointer         user_data)
-{
-    g_free (tmpcfg->pc_dir);
-    tmpcfg->pc_dir = gtk_editable_get_chars(editable,0, -1);
-}
-
-void
-on_pc_del_age_toggled                  (GtkToggleButton *togglebutton,
-                                        gpointer         user_data)
-{
-    gboolean val = gtk_toggle_button_get_active (togglebutton);
-    GtkWidget *w = gtkpod_xml_get_widget (prefs_window_xml, "pc_del_age_val");
-
-    tmpcfg->pc_del_age = val;
-    if(w)       gtk_widget_set_sensitive (w, val);
-}
-
-void
-on_pc_del_age_val_value_changed        (GtkSpinButton   *spinbutton,
-                                        gpointer         user_data)
-{
-    tmpcfg->pc_del_age_val = gtk_spin_button_get_value  (spinbutton);
-}
-
-void
-on_pc_del_copied_toggled               (GtkToggleButton *togglebutton,
-                                        gpointer         user_data)
-{
-    tmpcfg->pc_del_copied = gtk_toggle_button_get_active (togglebutton);
-}
-
-void
-on_pc_auto_fetch_toggled               (GtkToggleButton *togglebutton,
-                                        gpointer         user_data)
-{
-    tmpcfg->pc_auto_fetch = gtk_toggle_button_get_active (togglebutton);
-}
-
-void
-on_pc_log_toggled                      (GtkToggleButton *togglebutton,
-                                        gpointer         user_data)
-{
-    gboolean val = gtk_toggle_button_get_active (togglebutton);
-    GtkWidget *w = gtkpod_xml_get_widget (prefs_window_xml, "pc_log_file");
-
-    tmpcfg->pc_log = val;
-    if(w)       gtk_widget_set_sensitive (w, val);
-}
-
-void
-on_pc_log_file_changed                 (GtkEditable     *editable,
-                                        gpointer         user_data)
-{
-    g_free (tmpcfg->pc_log_file);
-    tmpcfg->pc_log_file = gtk_editable_get_chars(editable,0, -1);
-}
-
-void
-on_pc_auto_sync_toggled                (GtkToggleButton *togglebutton,
-                                        gpointer         user_data)
-{
-    tmpcfg->pc_auto_sync = gtk_toggle_button_get_active (togglebutton);
-}
-
-void
-on_pc_ipod_del_age_toggled             (GtkToggleButton *togglebutton,
-                                        gpointer         user_data)
-{
-    gboolean val = gtk_toggle_button_get_active (togglebutton);
-    GtkWidget *w = gtkpod_xml_get_widget (prefs_window_xml, "pc_ipod_del_age_val");
-
-    tmpcfg->pc_ipod_del_age = val;
-    if(w)       gtk_widget_set_sensitive (w, val);
-}
-
-void
-on_pc_ipod_del_age_val_value_changed   (GtkSpinButton   *spinbutton,
-                                        gpointer         user_data)
-{
-    tmpcfg->pc_ipod_del_age_val = gtk_spin_button_get_value  (spinbutton);
-}
-
-void
-on_pc_ipod_del_played_toggled          (GtkToggleButton *togglebutton,
-                                        gpointer         user_data)
-{
-    tmpcfg->pc_ipod_del_played = gtk_toggle_button_get_active (togglebutton);
-}
-
-void
-on_pc_ipod_inc_date_toggled            (GtkToggleButton *togglebutton,
-                                        gpointer         user_data)
-{
-    tmpcfg->pc_ipod_inc_date = gtk_toggle_button_get_active (togglebutton);
-}
-
-void
-on_pc_change_genre_toggled             (GtkToggleButton *togglebutton,
-                                        gpointer         user_data)
-{
-    tmpcfg->pc_change_genre = gtk_toggle_button_get_active (togglebutton);
-}
-
-
-void
 on_sort_apply_clicked                  (GtkButton       *button,
 					gpointer         user_data)
 {
@@ -2516,22 +1930,9 @@
  * sort_window_cancel
  * UI has requested sort prefs changes be ignored -- write back the
  * original values
- * Frees the tmpsortcfg and origsortcfg variable
  */
 void sort_window_cancel (void)
 {
-    g_return_if_fail (tmpsortcfg);
-    g_return_if_fail (origsortcfg);
-
-    /* "save" (i.e. reset) original configs */
-    sort_window_set (origsortcfg);
-
-    /* delete cfg struct */
-    sortcfg_free (tmpsortcfg);
-    tmpsortcfg = NULL;
-    sortcfg_free (origsortcfg);
-    origsortcfg = NULL;
-
     /* close the window */
     if(sort_window)
 	gtk_widget_destroy(sort_window);
@@ -2541,15 +1942,11 @@
 /* when window is deleted, we keep the currently applied prefs */
 void sort_window_delete(void)
 {
-    g_return_if_fail (tmpsortcfg);
-    g_return_if_fail (origsortcfg);
+    temp_prefs_destroy(sort_temp_prefs);
+    sort_temp_prefs = NULL;
+    temp_lists_destroy(sort_temp_lists);
+    sort_temp_lists = NULL;
 
-    /* delete sortcfg structs */
-    sortcfg_free (tmpsortcfg);
-    tmpsortcfg = NULL;
-    sortcfg_free (origsortcfg);
-    origsortcfg = NULL;
-
     /* close the window */
     if(sort_window)
 	gtk_widget_destroy(sort_window);
@@ -2557,23 +1954,17 @@
 }
 
 /* apply the current settings and close the window */
-/* Frees the tmpsortcfg and origsortcfg variable */
 void sort_window_ok (void)
 {
-    g_return_if_fail (tmpsortcfg);
-    g_return_if_fail (origsortcfg);
-
     /* update the sort ignore strings */
-    sort_window_read_sort_ign (tmpsortcfg);
-    /* save current settings */
-    sort_window_set (tmpsortcfg);
+    sort_window_read_sort_ign ();
 
-    /* delete sortcfg structs */
-    sortcfg_free (tmpsortcfg);
-    tmpsortcfg = NULL;
-    sortcfg_free (origsortcfg);
-    origsortcfg = NULL;
+    temp_prefs_apply(sort_temp_prefs);
+    temp_lists_apply(sort_temp_lists);
 
+    /* save current settings */
+    sort_window_set ();
+  
     /* close the window */
     if(sort_window)
 	gtk_widget_destroy(sort_window);
@@ -2584,41 +1975,48 @@
 /* apply the current settings, don't close the window */
 void sort_window_apply (void)
 {
-    g_return_if_fail (tmpsortcfg);
-    g_return_if_fail (origsortcfg);
-
     /* update the sort ignore strings */
-    sort_window_read_sort_ign (tmpsortcfg);
+    sort_window_read_sort_ign ();
+
+    temp_prefs_apply(sort_temp_prefs);
+    temp_lists_apply(sort_temp_lists);
+
     /* save current settings */
-    sort_window_set (tmpsortcfg);
+    sort_window_set ();
 }
 
-void sort_window_set_pm_autostore (gboolean val)
-{
-    tmpsortcfg->pm_autostore = val;
-}
-
 void sort_window_set_tm_autostore (gboolean val)
 {
-    tmpsortcfg->tm_autostore = val;
+    temp_prefs_set_int(sort_temp_prefs, "tm_autostore", val);
 }
 
 void sort_window_set_pm_sort (gint val)
 {
-    tmpsortcfg->pm_sort = val;
+    temp_prefs_set_int(sort_temp_prefs, "pm_sort", val);
 }
 
 void sort_window_set_st_sort (gint val)
 {
-    tmpsortcfg->st_sort = val;
+    temp_prefs_set_int(sort_temp_prefs, "st_sort", val);
 }
 
 void sort_window_set_tm_sort (gint val)
 {
-    tmpsortcfg->tm_sort = val;
+    temp_prefs_set_int(sort_temp_prefs, "tm_sort_", val);
 }
 
 void sort_window_set_case_sensitive (gboolean val)
 {
-    tmpsortcfg->case_sensitive = val;
+    temp_prefs_set_int(sort_temp_prefs, "case_sensitive",
+		       val);
 }
+
+void on_exclude_file_mask_entry_changed (GtkEditable	*editable,
+					 gpointer	user_data)
+{
+    gchar *buf = gtk_editable_get_chars(editable, 0, -1);
+
+    temp_prefs_set_string (temp_prefs, "exclude_file_mask", buf);
+    g_free (buf);
+}
+

Modified: gtkpod/branches/upstream/current/src/prefs_window.h
===================================================================
--- gtkpod/branches/upstream/current/src/prefs_window.h	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/src/prefs_window.h	2006-09-30 00:00:17 UTC (rev 139)
@@ -1,4 +1,4 @@
-/* Time-stamp: <2005-11-12 17:16:12 jcs>
+/* Time-stamp: <2006-05-21 12:24:56 jcs>
 |
 |  Copyright (C) 2002 Corey Donohoe <atmos at atmos.org>
 |  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
@@ -25,7 +25,7 @@
 |
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: prefs_window.h,v 1.68 2005/11/12 08:54:31 jcsjcs Exp $
+|  $Id: prefs_window.h,v 1.70 2006/06/10 08:29:44 freethinkerjim Exp $
 */
 #ifndef _GTKPOD_PREFS_WINDOW_H
 #define _GTKPOD_PREFS_WINDOW_H
@@ -43,10 +43,7 @@
 void prefs_window_cancel (void);
 void prefs_window_create (gint page);
 void prefs_window_delete (void);
-void prefs_window_podcasts (void);
 
-void prefs_window_set_unused_gboolean3 (gboolean val);
-
 void sort_window_create (void);
 void sort_window_block (void);
 void sort_window_release (void);

Added: gtkpod/branches/upstream/current/src/repository.c
===================================================================
--- gtkpod/branches/upstream/current/src/repository.c	                        (rev 0)
+++ gtkpod/branches/upstream/current/src/repository.c	2006-09-30 00:00:17 UTC (rev 139)
@@ -0,0 +1,2551 @@
+/* Time-stamp: <2006-06-25 21:40:01 jcs>
+|
+|  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
+|  Part of the gtkpod project.
+| 
+|  URL: http://www.gtkpod.org/
+|  URL: http://gtkpod.sourceforge.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; either version 2 of the License, or
+|  (at your option) any later version.
+| 
+|  This program is distributed in the hope that it will be useful,
+|  but WITHOUT ANY WARRANTY; without even the implied warranty of
+|  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+|  GNU General Public License for more details.
+| 
+|  You should have received a copy of the GNU General Public License
+|  along with this program; if not, write to the Free Software
+|  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+| 
+|  iTunes and iPod are trademarks of Apple
+| 
+|  This product is not supported/written/published by Apple!
+|
+|  $Id: repository.c,v 1.15 2006/06/25 16:08:22 jcsjcs Exp $
+*/
+
+/* This file provides functions for the edit repositories/playlist
+ * option window */
+
+#include <stdlib.h>
+#include <string.h>
+#include <gtk/gtk.h>
+#include "display_itdb.h"
+#include "fileselection.h"
+#include "info.h"
+#include "ipod_init.h"
+#include "misc.h"
+#include "prefs.h"
+#include "repository.h"
+#include "syncdir.h"
+
+/* print local debug message */
+#define LOCAL_DEBUG 0
+
+/* List with all repository edit windows (we only allow one, however) */
+static GList *repwins = NULL;
+
+struct _RepWin
+{
+    GladeXML *xml;           /* XML info                             */
+    GtkWidget *window;       /* pointer to repository window         */
+    iTunesDB *itdb;          /* currently displayed repository       */
+    gint itdb_index;         /* index number of itdb                 */
+    Playlist *playlist;      /* currently displayed playlist         */
+    Playlist *next_playlist; /* playlist to display next (or NULL)   */
+    TempPrefs *temp_prefs;   /* changes made so far                  */
+    TempPrefs *extra_prefs;  /* changes to non-prefs items (e.g.
+				live-update                          */
+};
+
+typedef struct _RepWin RepWin;
+
+/* where to find the scripts */
+static const gchar *scriptdir = PACKAGE_DATA_DIR G_DIR_SEPARATOR_S PACKAGE G_DIR_SEPARATOR_S "scripts" G_DIR_SEPARATOR_S;
+
+typedef enum
+{
+    IPOD_SYNC_CONTACTS,
+    IPOD_SYNC_CALENDAR,
+    IPOD_SYNC_NOTES
+} iPodSyncType;
+
+
+/* string constants for window widgets used more than once */
+static const gchar *PLAYLIST_COMBO="playlist_combo";
+static const gchar *REPOSITORY_COMBO="repository_combo";
+static const gchar *MOUNTPOINT_LABEL="mountpoint_label";
+static const gchar *MOUNTPOINT_ENTRY="mountpoint_entry";
+static const gchar *MOUNTPOINT_BUTTON="mountpoint_button";
+static const gchar *BACKUP_LABEL="backup_label";
+static const gchar *BACKUP_ENTRY="backup_entry";
+static const gchar *BACKUP_BUTTON="backup_button";
+static const gchar *IPOD_MODEL_LABEL="ipod_model_label";
+static const gchar *IPOD_MODEL_COMBO="ipod_model_combo";
+static const gchar *IPOD_MODEL_ENTRY="ipod_model_entry--not-a-glade-name";
+static const gchar *LOCAL_PATH_LABEL="local_path_label";
+static const gchar *LOCAL_PATH_BUTTON="local_path_button";
+static const gchar *LOCAL_PATH_ENTRY="local_path_entry";
+static const gchar *STANDARD_PLAYLIST_VBOX="standard_playlist_vbox";
+static const gchar *SPL_VBOX="spl_vbox";
+static const gchar *SPL_LIVE_UPDATE_TOGGLE="spl_live_update_toggle";
+static const gchar *SYNC_PLAYLIST_MODE_NONE_RADIO="sync_playlist_mode_none_radio";
+static const gchar *SYNC_PLAYLIST_MODE_AUTOMATIC_RADIO="sync_playlist_mode_automatic_radio";
+static const gchar *SYNC_PLAYLIST_MODE_MANUAL_RADIO="sync_playlist_mode_manual_radio";
+static const gchar *MANUAL_SYNCDIR_ENTRY="manual_syncdir_entry";
+static const gchar *MANUAL_SYNCDIR_BUTTON="manual_syncdir_button";
+static const gchar *DELETE_REPOSITORY_CHECKBUTTON="delete_repository_checkbutton";
+static const gchar *DELETE_REPOSITORY_BUTTON="delete_repository_button";
+static const gchar *REPOSITORY_VBOX="repository_vbox";
+static const gchar *IPOD_SYNC_LABEL="ipod_sync_label";
+static const gchar *IPOD_SYNC_CONTACTS_LABEL="ipod_sync_contacts_label";
+static const gchar *IPOD_SYNC_CONTACTS_ENTRY="ipod_sync_contacts_entry";
+static const gchar *IPOD_SYNC_CONTACTS_BUTTON="ipod_sync_contacts_button";
+static const gchar *IPOD_SYNC_CALENDAR_LABEL="ipod_sync_calendar_label";
+static const gchar *IPOD_SYNC_CALENDAR_ENTRY="ipod_sync_calendar_entry";
+static const gchar *IPOD_SYNC_CALENDAR_BUTTON="ipod_sync_calendar_button";
+static const gchar *IPOD_SYNC_NOTES_LABEL="ipod_sync_notes_label";
+static const gchar *IPOD_SYNC_NOTES_ENTRY="ipod_sync_notes_entry";
+static const gchar *IPOD_SYNC_NOTES_BUTTON="ipod_sync_notes_button";
+static const gchar *IPOD_CONCAL_AUTOSYNC_TOGGLE="ipod_concal_autosync_toggle";
+static const gchar *SYNC_OPTIONS_HBOX="sync_options_hbox";
+static const gchar *PLAYLIST_SYNC_DELETE_TRACKS_TOGGLE="playlist_sync_delete_tracks_toggle";
+static const gchar *PLAYLIST_SYNC_CONFIRM_DELETE_TOGGLE="playlist_sync_confirm_delete_toggle";
+static const gchar *PLAYLIST_SYNC_SHOW_SUMMARY_TOGGLE="playlist_sync_show_summary_toggle";
+static const gchar *UPDATE_PLAYLIST_BUTTON="update_playlist_button";
+static const gchar *UPDATE_ALL_PLAYLISTS_BUTTON="update_all_playlists_button";
+static const gchar *NEW_REPOSITORY_BUTTON="new_repository_button";
+
+/* string constants for preferences */
+static const gchar *KEY_REPOSITORY_WINDOW_DEFX="repository_window_defx";
+static const gchar *KEY_REPOSITORY_WINDOW_DEFY="repository_window_defy";
+
+/* some private key names used several times */
+static const gchar *KEY_LIVEUPDATE="liveupdate";
+
+/* some public key names used several times */
+const gchar *KEY_CONCAL_AUTOSYNC="concal_autosync";
+const gchar *KEY_SYNC_DELETE_TRACKS="sync_delete_tracks";
+const gchar *KEY_SYNC_CONFIRM_DELETE="sync_confirm_delete";
+const gchar *KEY_SYNC_CONFIRM_DIRS="sync_confirm_dirs";
+const gchar *KEY_SYNC_SHOW_SUMMARY="sync_show_summary";
+const gchar *KEY_MOUNTPOINT="mountpoint";
+const gchar *KEY_BACKUP="filename";
+const gchar *KEY_IPOD_MODEL="ipod_model";
+const gchar *KEY_FILENAME="filename";
+const gchar *KEY_PATH_SYNC_CONTACTS="path_sync_contacts";
+const gchar *KEY_PATH_SYNC_CALENDAR="path_sync_calendar";
+const gchar *KEY_PATH_SYNC_NOTES="path_sync_notes";
+const gchar *KEY_SYNCMODE="syncmode";
+const gchar *KEY_MANUAL_SYNCDIR="manual_syncdir";
+
+
+
+/* Declarations */
+static void update_buttons (RepWin *repwin);
+static void repwin_free (RepWin *repwin);
+static void init_repository_combo (RepWin *repwin);
+static void init_playlist_combo (RepWin *repwin);
+static void select_repository (RepWin *repwin,
+			       iTunesDB *itdb, Playlist *playlist);
+static void create_repository (RepWin *repwin);
+
+
+
+/* ------------------------------------------------------------
+ *
+ *        Helper functions to retrieve widgets.
+ *
+ * ------------------------------------------------------------ */
+/* shortcut to reference widgets when repwin->xml is already set */
+#define GET_WIDGET(a) repository_xml_get_widget (repwin->xml,a)
+
+
+/* This is quite dirty: MODEL_ENTRY is not a real widget
+   name. Instead it's the entry of a ComboBoxEntry -- hide this from
+   the application */
+GtkWidget *repository_xml_get_widget (GladeXML *xml, const gchar *name)
+{
+    if (name == IPOD_MODEL_ENTRY)
+    {
+	GtkWidget *cb = gtkpod_xml_get_widget (xml, IPOD_MODEL_COMBO);
+	return gtk_bin_get_child (GTK_BIN (cb));
+    }
+    else
+    {
+	return gtkpod_xml_get_widget (xml, name);
+    }
+}
+
+
+
+/* Store the window size */
+static void store_window_state (RepWin *repwin)
+{
+    gint defx, defy;
+
+    g_return_if_fail (repwin);
+
+    gtk_window_get_size (GTK_WINDOW (repwin->window), &defx, &defy);
+    prefs_set_int (KEY_REPOSITORY_WINDOW_DEFX, defx);
+    prefs_set_int (KEY_REPOSITORY_WINDOW_DEFY, defy);
+}
+
+
+/* ------------------------------------------------------------
+ *
+ *        Helper functions for prefs interfaceing.
+ *
+ * ------------------------------------------------------------ */
+
+
+/* Get prefs string -- either from repwin->temp_prefs or from the main
+   prefs system. Return an empty string if no value was set. */
+/* Free string after use */
+static gchar *get_current_prefs_string (RepWin *repwin, const gchar *key)
+{
+    gchar *value;
+
+    g_return_val_if_fail (repwin && key, NULL);
+
+    value = temp_prefs_get_string (repwin->temp_prefs, key);
+    if (value == NULL)
+    {
+	value = prefs_get_string (key);
+    }
+    if (value == NULL)
+    {
+	value = g_strdup ("");
+    }
+    return value;
+}
+
+
+/* Get integer prefs value -- either from repwin->temp_prefs or from
+   the main prefs system. Return 0 if no value was set. */
+/* Free string after use */
+static gint get_current_prefs_int (RepWin *repwin, const gchar *key)
+{
+    gint value;
+
+    g_return_val_if_fail (repwin && key, 0);
+
+    if (!temp_prefs_get_int_value (repwin->temp_prefs, key, &value))
+    {
+	value = prefs_get_int (key);
+    }
+    return value;
+}
+
+
+
+
+/* ------------------------------------------------------------
+ *
+ *        Callback functions (buttons, entries...)
+ *
+ * ------------------------------------------------------------ */
+
+
+/* Compare the value of @str with the value stored for @key in the
+   prefs system. If values differ, store @str for @key in
+
+   @repwin->temp_prefs, otherwise remove a possibly existing entry
+   @key in @repwin->temp_prefs.
+
+   Return value: TRUE if a new string was set, FALSE if no new string
+   was set, or the new string was identical to the one stored in the
+   prefs system. */
+
+/* Attention: g_frees() @key and @str for you */
+static gboolean finish_string_storage (RepWin *repwin,
+				       gchar *key, gchar *str)
+{
+    gchar *prefs_str;
+    gboolean result;
+
+    g_return_val_if_fail (repwin && key && str, FALSE);
+
+    prefs_str = prefs_get_string (key);
+
+    if ((!prefs_str && (strlen (str) > 0)) ||
+	(prefs_str && (strcmp (str, prefs_str) != 0)))
+    {   /* value has changed with respect to the value stored in the
+	   prefs */
+#       if LOCAL_DEBUG
+	printf ("setting '%s' to '%s'\n", key, str);
+#       endif
+	temp_prefs_set_string (repwin->temp_prefs, key, str);
+	result = TRUE;
+    }
+    else
+    {   /* value has not changed -- remove key from temp prefs (in
+	   case it exists */
+#       if LOCAL_DEBUG
+	printf ("removing '%s'.\n", key);
+#       endif
+	temp_prefs_remove_key (repwin->temp_prefs, key);
+	result = FALSE;
+    }
+    update_buttons (repwin);
+    g_free (key);
+    g_free (str);
+    g_free (prefs_str);
+    return result;
+}
+
+
+/* Retrieve the current text in @editable and call
+   finish_string_storage()
+
+   Return value: see finish_string_storage() */
+static gboolean finish_editable_storage (RepWin *repwin,
+					 gchar *key,
+					 GtkEditable *editable)
+{
+    gchar *str;
+
+    g_return_val_if_fail (repwin && key && editable, FALSE);
+
+    str = gtk_editable_get_chars (editable, 0, -1);
+    return finish_string_storage (repwin, key, str);
+}
+
+/* Compare the value of @val with the value stored for @key in the
+   prefs system. If values differ, store @val for @key in
+   @repwin->temp_prefs, otherwise remove a possibly existing entry
+   @key in @repwin->temp_prefs. */
+/* Attention: g_frees() @key for you */
+static void finish_int_storage (RepWin *repwin,
+				gchar *key, gint val)
+{
+    gint prefs_val;
+
+    g_return_if_fail (repwin && key);
+
+    /* defaults to '0' if not set */
+    prefs_val = prefs_get_int (key);
+    if (prefs_val != val)
+    {   /* value has changed with respect to the value stored in the
+	   prefs */
+#       if LOCAL_DEBUG
+	printf ("setting '%s' to '%d'\n", key, val);
+#       endif
+	temp_prefs_set_int (repwin->temp_prefs, key, val);
+    }
+    else
+    {   /* value has not changed -- remove key from temp prefs (in
+	   case it exists */
+#       if LOCAL_DEBUG
+	printf ("removing '%s'.\n", key);
+#       endif
+	temp_prefs_remove_key (repwin->temp_prefs, key);
+    }
+    update_buttons (repwin);
+    g_free (key);
+}
+
+
+/* text in standard text entry has changed */
+static void standard_itdb_entry_changed (GtkEditable *editable,
+					 RepWin *repwin)
+{
+    const gchar *keybase;
+    gchar *key;
+
+    g_return_if_fail (repwin);
+
+    keybase = g_object_get_data (G_OBJECT (editable), "key");
+    g_return_if_fail (keybase);
+
+    key = get_itdb_prefs_key (repwin->itdb_index, keybase);
+
+    finish_editable_storage (repwin, key, editable);
+}
+
+
+/* text for manual_syncdir has changed */
+static void manual_syncdir_changed (GtkEditable *editable,
+				    RepWin *repwin)
+{
+    gchar *key;
+    gchar changed;
+
+    g_return_if_fail (repwin);
+
+    key = get_playlist_prefs_key (repwin->itdb_index, repwin->playlist,
+				  KEY_MANUAL_SYNCDIR);
+
+    changed = finish_editable_storage (repwin, key, editable);
+
+    if (changed)
+    {
+	gtk_toggle_button_set_active (
+	    GTK_TOGGLE_BUTTON (GET_WIDGET (SYNC_PLAYLIST_MODE_MANUAL_RADIO)),
+	    TRUE);
+    }
+}
+
+
+/* sync_playlist_mode_none was toggled */
+static void sync_playlist_mode_none_toggled (GtkToggleButton *togglebutton,
+						 RepWin *repwin)
+{
+    gchar *key;
+
+    g_return_if_fail (repwin);
+
+    key = get_playlist_prefs_key (repwin->itdb_index, repwin->playlist,
+				  KEY_SYNCMODE);
+
+    if (gtk_toggle_button_get_active (togglebutton))
+    {
+	finish_int_storage (repwin, key,
+			    SYNC_PLAYLIST_MODE_NONE);
+	update_buttons (repwin);
+    }
+}
+
+
+/* sync_playlist_mode_none was toggled */
+static void sync_playlist_mode_manual_toggled (GtkToggleButton *togglebutton,
+						   RepWin *repwin)
+{
+    gchar *key;
+
+    g_return_if_fail (repwin);
+
+    key = get_playlist_prefs_key (repwin->itdb_index, repwin->playlist,
+				  KEY_SYNCMODE);
+
+    if (gtk_toggle_button_get_active (togglebutton))
+    {
+	finish_int_storage (repwin, key,
+			    SYNC_PLAYLIST_MODE_MANUAL);
+	update_buttons (repwin);
+    }
+}
+
+
+/* sync_playlist_mode_none was toggled */
+static void sync_playlist_mode_automatic_toggled (GtkToggleButton *togglebutton,
+						      RepWin *repwin)
+{
+    gchar *key;
+
+    g_return_if_fail (repwin);
+
+    key = get_playlist_prefs_key (repwin->itdb_index, repwin->playlist,
+				  KEY_SYNCMODE);
+
+    if (gtk_toggle_button_get_active (togglebutton))
+    {
+	finish_int_storage (repwin, key,
+			    SYNC_PLAYLIST_MODE_AUTOMATIC);
+	update_buttons (repwin);
+    }
+}
+
+
+static void standard_itdb_checkbutton_toggled (GtkToggleButton *togglebutton,
+					       RepWin *repwin)
+{
+    const gchar *keybase;
+    gchar *key;
+
+    g_return_if_fail (repwin);
+
+    keybase = g_object_get_data (G_OBJECT (togglebutton), "key");
+    g_return_if_fail (keybase);
+    key = get_itdb_prefs_key (repwin->itdb_index, keybase);
+    finish_int_storage (repwin, key,
+			gtk_toggle_button_get_active (togglebutton));
+}
+
+
+static void standard_playlist_checkbutton_toggled (GtkToggleButton *togglebutton,
+						   RepWin *repwin)
+{
+    const gchar *keybase;
+    gboolean active;
+    gchar *key;
+
+    g_return_if_fail (repwin);
+    g_return_if_fail (repwin->playlist);
+
+    keybase = g_object_get_data (G_OBJECT (togglebutton), "key");
+    g_return_if_fail (keybase);
+    key = get_playlist_prefs_key (repwin->itdb_index, repwin->playlist,
+				  keybase);
+    active = gtk_toggle_button_get_active (togglebutton);
+
+    /* Check if this is the liveupdate toggle which needs special
+     * treatment. */
+    if (keybase == KEY_LIVEUPDATE)
+    {
+	if (active == repwin->playlist->splpref.liveupdate)
+	    temp_prefs_remove_key (repwin->extra_prefs, key);
+	else
+	    temp_prefs_set_int (repwin->extra_prefs, key, active);
+
+	update_buttons (repwin);
+	return;
+    }
+	
+    finish_int_storage (repwin, key, active);
+}
+
+
+/* delete_repository_checkbutton was toggled */
+static void delete_repository_checkbutton_toggled (GtkToggleButton *togglebutton,
+						   RepWin *repwin)
+{
+    g_return_if_fail (repwin);
+    g_return_if_fail (repwin->temp_prefs);
+
+    if (!gtk_toggle_button_get_active (togglebutton))
+    {   /* Un-delete if necessary */
+	gchar *key = get_itdb_prefs_key (repwin->itdb_index, "deleted");
+
+	temp_prefs_remove_key (repwin->extra_prefs, key);
+	g_free (key);
+    }
+    update_buttons (repwin);
+}
+
+
+
+/* delete_repository_button was clicked */
+static void delete_repository_button_clicked (GtkButton *button,
+					      RepWin *repwin)
+{
+    gchar *key;
+
+    g_return_if_fail (repwin);
+
+    key = get_itdb_prefs_key (repwin->itdb_index, "deleted");
+
+    temp_prefs_set_int (repwin->extra_prefs, key, TRUE);
+    g_free (key);
+    update_buttons (repwin);
+}
+
+
+/* mountpoint browse button was clicked */
+static void mountpoint_button_clicked (GtkButton *button, RepWin *repwin)
+{
+    gchar *key, *old_dir, *new_dir;
+
+    g_return_if_fail (repwin);
+
+    key = get_itdb_prefs_key (repwin->itdb_index, KEY_MOUNTPOINT);
+    old_dir = get_current_prefs_string (repwin, key);
+    g_free (key);
+
+    new_dir = fileselection_get_file_or_dir (
+	_("Select mountpoint"),
+	old_dir,
+	GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER);
+
+    g_free (old_dir);
+
+    if (new_dir)
+    {
+	gtk_entry_set_text (GTK_ENTRY (GET_WIDGET (MOUNTPOINT_ENTRY)),
+			    new_dir);
+	g_free (new_dir);
+    }
+}
+
+
+/* mountpoint browse button was clicked */
+static void backup_button_clicked (GtkButton *button, RepWin *repwin)
+{
+    gchar *key, *old_backup, *new_backup;
+
+    g_return_if_fail (repwin);
+
+    key = get_itdb_prefs_key (repwin->itdb_index, KEY_FILENAME);
+    old_backup = get_current_prefs_string (repwin, key);
+    g_free (key);
+
+    new_backup = fileselection_get_file_or_dir (
+	_("Set backup file"),
+	old_backup,
+	GTK_FILE_CHOOSER_ACTION_SAVE);
+
+    g_free (old_backup);
+
+    if (new_backup)
+    {
+	gtk_entry_set_text (GTK_ENTRY (GET_WIDGET (BACKUP_ENTRY)),
+			    new_backup);
+	g_free (new_backup);
+    }
+}
+
+
+/* mountpoint browse button was clicked */
+static void new_repository_button_clicked (GtkButton *button,
+					   RepWin *repwin)
+{
+    g_return_if_fail (repwin);
+
+    create_repository (repwin);
+}
+
+
+/* mountpoint browse button was clicked */
+static void manual_syncdir_button_clicked (GtkButton *button,
+					   RepWin *repwin)
+{
+    gchar *key, *old_dir, *new_dir;
+
+    g_return_if_fail (repwin);
+
+    key = get_playlist_prefs_key (repwin->itdb_index, repwin->playlist,
+				  KEY_MANUAL_SYNCDIR);
+
+    old_dir = get_current_prefs_string (repwin, key);
+
+    new_dir = fileselection_get_file_or_dir (
+	_("Select directory for synchronization"),
+	old_dir,
+	GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER);
+
+    if (new_dir)
+    {
+	gtk_entry_set_text (GTK_ENTRY (GET_WIDGET (MANUAL_SYNCDIR_ENTRY)),
+			    new_dir);
+	g_free (new_dir);
+    }
+    g_free (key);
+}
+
+
+
+static void ipod_sync_button_clicked (RepWin *repwin, iPodSyncType type)
+{
+    const gchar *title;
+    const gchar *entry;
+    gchar *text, *key, *oldpath, *newpath;
+
+    g_return_if_fail (repwin);
+
+    switch (type)
+    {
+    case IPOD_SYNC_CONTACTS:
+	title = _("Please select command to sync contacts");
+	entry = IPOD_SYNC_CONTACTS_ENTRY;
+	key = get_itdb_prefs_key (repwin->itdb_index,
+				  KEY_PATH_SYNC_CONTACTS);
+	break;
+    case IPOD_SYNC_CALENDAR:
+	title = _("Please select command to sync calendar");
+	entry = IPOD_SYNC_CALENDAR_ENTRY;
+	key = get_itdb_prefs_key (repwin->itdb_index,
+				  KEY_PATH_SYNC_CALENDAR);
+	break;
+    case IPOD_SYNC_NOTES:
+	title = _("Please select command to sync notes");
+	entry = IPOD_SYNC_NOTES_ENTRY;
+	key = get_itdb_prefs_key (repwin->itdb_index,
+				  KEY_PATH_SYNC_NOTES);
+	break;
+    default:
+	g_return_if_reached ();
+    }
+
+    oldpath = prefs_get_string (key);
+    g_free (key);
+
+    text = g_markup_printf_escaped (_("<i>Have a look at the scripts provided in '%s'. If you write a new script, please send it to jcsjcs at users.sourceforge.net for inclusion into the next release.</i>"), scriptdir);
+
+    newpath = fileselection_select_script (oldpath,
+					   scriptdir,
+					   title,
+					   text);
+    g_free (oldpath);
+    g_free (text);
+
+    if (newpath)
+    {
+	gtk_entry_set_text (GTK_ENTRY (GET_WIDGET (entry)), newpath);
+	g_free (newpath);
+    }
+}
+
+
+
+/* Callback */
+static void ipod_sync_contacts_button_clicked (GtkButton *button,
+					       RepWin *repwin)
+{
+    ipod_sync_button_clicked (repwin, IPOD_SYNC_CONTACTS);
+}
+
+
+/* Callback */
+static void ipod_sync_calendar_button_clicked (GtkButton *button,
+					       RepWin *repwin)
+{
+    ipod_sync_button_clicked (repwin, IPOD_SYNC_CALENDAR);
+
+}
+
+
+/* Callback */
+static void ipod_sync_notes_button_clicked (GtkButton *button,
+					    RepWin *repwin)
+{
+    ipod_sync_button_clicked (repwin, IPOD_SYNC_NOTES);
+
+}
+
+
+/**
+ * sync_or_update_playlist:
+ *
+ * Sync (normal playlist) or update (spl) @playlist (in repository
+ * @itdb_index) using the currently displayed options.
+ */
+static void sync_or_update_playlist (RepWin *repwin,
+				     gint itdb_index,
+				     Playlist *playlist)
+{
+    g_return_if_fail (repwin);
+    g_return_if_fail (playlist);
+
+    if (playlist->is_spl)
+    {
+	itdb_spl_update (playlist);
+
+	if (pm_get_selected_playlist () == playlist)
+	{   /* redisplay */
+	    pm_unselect_playlist (playlist);
+	    pm_select_playlist (playlist);
+	}
+
+	gtkpod_statusbar_message (_("Smart playlist updated."));
+    }
+    else
+    {
+	gchar *key_sync_delete_tracks, *key_sync_confirm_delete;
+	gchar *key_sync_show_summary, *key_manual_sync_dir, *key_syncmode;
+	gchar *sync_delete_tracks_orig, *sync_confirm_delete_orig;
+	gchar *sync_show_summary_orig;
+	gint sync_delete_tracks_current, sync_confirm_delete_current;
+	gint sync_show_summary_current;
+	gchar *manual_sync_dir = NULL;
+	gint value_new;
+
+	/* create needed prefs keys */
+	key_sync_delete_tracks = get_playlist_prefs_key (
+	    itdb_index, playlist, KEY_SYNC_DELETE_TRACKS);
+	key_sync_confirm_delete = get_playlist_prefs_key (
+	    itdb_index, playlist, KEY_SYNC_CONFIRM_DELETE);
+	key_sync_show_summary = get_playlist_prefs_key (
+	    itdb_index, playlist, KEY_SYNC_SHOW_SUMMARY);
+	key_manual_sync_dir = get_playlist_prefs_key (
+	    itdb_index, playlist, KEY_MANUAL_SYNCDIR);
+	key_syncmode = get_playlist_prefs_key (
+	    itdb_index, playlist, KEY_SYNCMODE);
+
+	/* retrieve original settings for prefs strings */
+	sync_delete_tracks_orig =
+	    prefs_get_string (key_sync_delete_tracks);
+	sync_confirm_delete_orig =
+	    prefs_get_string (key_sync_confirm_delete);
+	sync_show_summary_orig =
+	    prefs_get_string (key_sync_show_summary);
+
+	/* retrieve current settings for prefs_strings */
+	sync_delete_tracks_current =
+	    get_current_prefs_int (repwin, key_sync_delete_tracks);
+	sync_confirm_delete_current =
+	    get_current_prefs_int (repwin, key_sync_confirm_delete);
+	sync_show_summary_current =
+	    get_current_prefs_int (repwin, key_sync_show_summary);
+
+	/* temporarily apply current settings */
+	prefs_set_int (
+	    key_sync_delete_tracks, sync_delete_tracks_current);
+	prefs_set_int (
+	    key_sync_confirm_delete, sync_confirm_delete_current);
+	prefs_set_int (
+	    key_sync_show_summary, sync_show_summary_current);
+
+	/* sync directory or directories */
+	switch (get_current_prefs_int (repwin, key_syncmode))
+	{
+	case SYNC_PLAYLIST_MODE_NONE:
+	    break; /* should never happen */
+	case SYNC_PLAYLIST_MODE_MANUAL:
+	    manual_sync_dir = 
+		get_current_prefs_string (repwin, key_manual_sync_dir);
+	    /* no break;! we continue calling sync_playlist() */
+	case SYNC_PLAYLIST_MODE_AUTOMATIC:
+	    sync_playlist (playlist,
+			   manual_sync_dir,
+			   NULL, FALSE,
+			   key_sync_delete_tracks, 0,
+			   key_sync_confirm_delete, 0,
+			   NULL, sync_show_summary_current);
+	    break;
+	}
+
+	/* Update temporary prefs in case some settings were changed
+	 * (currently only 'key_sync_confirm_delete' can be changed
+	 * by sync_playlist()) */
+	value_new = prefs_get_int (key_sync_confirm_delete);
+	if (value_new != sync_confirm_delete_current)
+	{
+	    if (playlist == repwin->playlist)
+	    {   /* currently displayed --> adjust toggle button */
+		gtk_toggle_button_set_active (
+		    GTK_TOGGLE_BUTTON (GET_WIDGET (PLAYLIST_SYNC_CONFIRM_DELETE_TOGGLE)),
+		    value_new);
+	    }
+	    else
+	    {   /* not currently displayed --> copy to temp_prefs */
+		temp_prefs_set_int (repwin->temp_prefs,
+				    key_sync_confirm_delete,
+				    value_new);
+	    }
+	}
+
+	/* Copy original values back to prefs */
+	prefs_set_string (key_sync_delete_tracks,
+			  sync_delete_tracks_orig);
+	prefs_set_string (key_sync_confirm_delete,
+			  sync_confirm_delete_orig);
+	prefs_set_string (key_sync_show_summary,
+			  sync_show_summary_orig);
+
+	/* Free memory used by all strings */
+	g_free (key_sync_delete_tracks);
+	g_free (key_sync_confirm_delete);
+	g_free (key_sync_show_summary);
+	g_free (key_manual_sync_dir);
+	g_free (sync_delete_tracks_orig);
+	g_free (sync_confirm_delete_orig);
+	g_free (sync_show_summary_orig);
+	g_free (manual_sync_dir);
+    }
+}
+
+
+
+
+/* Callback */
+static void update_all_playlists_button_clicked (GtkButton *button,
+						 RepWin *repwin)
+{
+    GList *gl;
+
+    g_return_if_fail (repwin);
+    g_return_if_fail (repwin->itdb);
+
+    for (gl=repwin->itdb->playlists; gl; gl=gl->next)
+    {
+	Playlist *pl = gl->data;
+	g_return_if_fail (pl);
+	sync_or_update_playlist (repwin, repwin->itdb_index, pl);
+    }
+}
+
+
+/* Callback */
+static void update_playlist_button_clicked (GtkButton *button,
+					    RepWin *repwin)
+{
+    g_return_if_fail (repwin);
+    sync_or_update_playlist (repwin, repwin->itdb_index, repwin->playlist);
+}
+
+
+/* ------------------------------------------------------------
+ *
+ *        Callback functions (windows control)
+ *
+ * ------------------------------------------------------------ */
+
+static void edit_apply_clicked (GtkButton *button, RepWin *repwin)
+{
+    gint i, itdb_num, del_num;
+    struct itdbs_head *itdbs_head;
+
+    g_return_if_fail (repwin);
+
+    itdbs_head = gp_get_itdbs_head (gtkpod_window);
+    g_return_if_fail (itdbs_head);
+    itdb_num = g_list_length (itdbs_head->itdbs);
+
+    temp_prefs_apply (repwin->temp_prefs);
+
+    del_num = 0;
+    for (i=0; i<itdb_num; ++i)
+    {
+	gchar *key, *subkey;
+	gboolean deleted=FALSE;
+
+	iTunesDB *itdb = g_list_nth_data (itdbs_head->itdbs, i-del_num);
+	g_return_if_fail (itdb);
+
+	subkey = get_itdb_prefs_key (i, "");
+
+	if (temp_prefs_subkey_exists (repwin->extra_prefs, subkey))
+	{
+	    gboolean deleted;
+	    GList *gl;
+
+	    key = get_itdb_prefs_key (i, "deleted");
+	    deleted = temp_prefs_get_int (repwin->extra_prefs, key);
+	    g_free (key);
+	    if (deleted)
+	    {
+                /* FIXME: ask if serious, then delete */ 
+		if (TRUE)
+		{
+		    iTunesDB *itdb;
+		    gint j;
+
+		    /* flush all keys relating to the deleted itdb */
+		    key = get_itdb_prefs_key (i-del_num, "");
+		    prefs_flush_subkey (key);
+		    g_free (key);
+
+		    for (j=i-del_num; j<itdb_num-del_num-1; ++j)
+		    {
+			gchar *from_key = get_itdb_prefs_key (j+1, "");
+			gchar *to_key = get_itdb_prefs_key (j, "");
+			prefs_rename_subkey (from_key, to_key);
+			g_free (from_key);
+			g_free (to_key);
+		    }
+
+		    itdb = g_list_nth_data (itdbs_head->itdbs, i-del_num);
+		    gp_itdb_remove (itdb);
+		    gp_itdb_free (itdb);
+
+		    /* keep itdb_index of currently displayed repository
+		       updated in case we need to select a new one */
+		    if (repwin->itdb_index > i-del_num)
+		    {
+			--repwin->itdb_index;
+		    }
+		    ++del_num;
+		}
+		else
+		{
+		    deleted = FALSE;
+		}
+	    }
+
+	    if (!deleted)
+	    {
+		/* apply the "live update flag", which is kept inside
+		   the playlist struct */
+		for (gl=itdb->playlists; gl; gl=gl->next)
+		{
+		    Playlist *pl = gl->data;
+		    gint val;
+		    g_return_if_fail (pl);
+		    key = get_playlist_prefs_key (i, pl, KEY_LIVEUPDATE);
+		    if (temp_prefs_get_int_value (repwin->extra_prefs, key, &val))
+		    {
+			pl->splpref.liveupdate = val;
+			data_changed (itdb);
+		    }
+		    g_free (key);
+		}
+	    }
+	}
+
+	if (!deleted &&
+	    temp_prefs_subkey_exists (repwin->temp_prefs, subkey))
+	{
+	    gchar *str;
+	    /* check if mountpoint has changed */
+	    key = get_itdb_prefs_key (i, KEY_MOUNTPOINT);
+	    str = temp_prefs_get_string (repwin->temp_prefs, key);
+	    g_free (key);
+	    if (str)
+	    {   /* have to set mountpoint */
+		itdb_set_mountpoint (itdb, str);
+		space_set_ipod_itdb (itdb);
+		g_free (str);
+	    }
+
+	    /* check if model_number has changed */
+	    key = get_itdb_prefs_key (i, KEY_IPOD_MODEL);
+	    str = temp_prefs_get_string (repwin->temp_prefs, key);
+	    g_free (key);
+	    if (str)
+	    {   /* set model */
+		if (itdb->usertype && GP_ITDB_TYPE_IPOD)
+		{
+		    itdb_device_set_sysinfo (itdb->device,
+					     "ModelNumStr", str);
+		}
+		g_free (str);
+	    }
+
+	    /* this repository was changed */
+	    data_changed (itdb);
+	}
+	g_free (subkey);
+    }
+
+    temp_prefs_destroy (repwin->temp_prefs);
+    temp_prefs_destroy (repwin->extra_prefs);
+
+    repwin->temp_prefs = temp_prefs_create ();
+    repwin->extra_prefs = temp_prefs_create ();
+
+    if (g_list_length (itdbs_head->itdbs) < itdb_num)
+    {   /* at least one repository has been removed */
+	iTunesDB *new_itdb = g_list_nth_data (itdbs_head->itdbs,
+					      repwin->itdb_index);
+	iTunesDB *old_itdb = repwin->itdb;
+	Playlist *old_playlist = repwin->playlist;
+
+	init_repository_combo (repwin);
+	if (new_itdb == old_itdb)
+	{
+	    select_repository (repwin, new_itdb, old_playlist);
+	}
+	else
+	{
+	    select_repository (repwin, new_itdb, NULL);
+	}
+    }
+#   if LOCAL_DEBUG
+    printf ("index: %d\n", repwin->itdb_index);
+#   endif
+
+    update_buttons (repwin);
+}
+
+static void edit_cancel_clicked (GtkButton *button, RepWin *repwin)
+{
+    g_return_if_fail (repwin);
+
+    store_window_state (repwin);
+
+    repwins = g_list_remove (repwins, repwin);
+
+    repwin_free (repwin);
+}
+
+
+static void edit_ok_clicked (GtkButton *button, RepWin *repwin)
+{
+    g_return_if_fail (repwin);
+
+    edit_apply_clicked (NULL, repwin);
+    edit_cancel_clicked (NULL, repwin);
+}
+
+
+static void edit_delete_event (GtkWidget *widget,
+			       GdkEvent *event,
+			       RepWin *repwin)
+{
+    edit_cancel_clicked (NULL, repwin);
+}
+
+
+/* Used by select_playlist() to find the new playlist. If found,
+   select it */
+static gboolean select_playlist_find (GtkTreeModel *model,
+				      GtkTreePath *path,
+				      GtkTreeIter *iter,
+				      gpointer data)
+{
+    Playlist *playlist;
+    RepWin *repwin = data;
+    g_return_val_if_fail (repwin, TRUE);
+
+    gtk_tree_model_get (model, iter, 0, &playlist, -1);
+    if(playlist == repwin->next_playlist)
+    {
+	gtk_combo_box_set_active_iter (
+	    GTK_COMBO_BOX (gtkpod_xml_get_widget (repwin->xml,
+						  PLAYLIST_COMBO)),
+	    iter);
+	return TRUE;
+    }
+    return FALSE;
+}
+
+
+/* Select @playlist
+
+   If @playlist == NULL, select first playlist (MPL);
+*/
+static void select_playlist (RepWin *repwin, Playlist *playlist)
+{
+    GtkTreeModel *model;
+
+    g_return_if_fail (repwin);
+    g_return_if_fail (repwin->itdb);
+
+    if (!playlist)
+	playlist = itdb_playlist_mpl (repwin->itdb);
+    g_return_if_fail (playlist);
+
+    g_return_if_fail (playlist->itdb == repwin->itdb);
+
+    model= gtk_combo_box_get_model (
+	GTK_COMBO_BOX (gtkpod_xml_get_widget (repwin->xml,
+					      PLAYLIST_COMBO)));
+    g_return_if_fail (model);
+
+    repwin->next_playlist = playlist;
+    gtk_tree_model_foreach (model, select_playlist_find, repwin);
+    repwin->next_playlist = NULL;
+}
+
+
+
+/* Select @itdb and playlist @playlist
+
+   If @itdb == NULL, only change to @playlist.
+
+   If @playlist == NULL, select first playlist.
+*/
+static void select_repository (RepWin *repwin,
+			       iTunesDB *itdb, Playlist *playlist)
+{
+    g_return_if_fail (repwin);
+
+    if (itdb)
+    {
+	gint index;
+
+	repwin->next_playlist = playlist;
+
+	index = get_itdb_index (itdb);
+
+	gtk_combo_box_set_active (
+	    GTK_COMBO_BOX (gtkpod_xml_get_widget (repwin->xml,
+						  REPOSITORY_COMBO)),
+	    index);
+	/* The combo callback will set the playlist */
+    }
+    else
+    {
+	if (repwin->itdb)
+	    select_playlist (repwin, playlist);
+    }
+}
+
+
+/* set @entry with value of @key */
+static void set_entry_index (RepWin *repwin, gint itdb_index,
+			     const gchar *subkey, const gchar *entry)
+{
+    gchar *buf;
+    gchar *key;
+
+    g_return_if_fail (repwin && subkey && entry);
+
+    key = get_itdb_prefs_key (itdb_index, subkey);
+
+    buf = get_current_prefs_string (repwin, key);
+    if (buf)
+    {
+	gtk_entry_set_text (GTK_ENTRY (GET_WIDGET (entry)), buf);
+    }
+    else
+    {
+	gtk_entry_set_text (GTK_ENTRY (GET_WIDGET (entry)), "");
+    }
+    g_free (buf);
+    g_free (key);
+}
+
+
+/****** Fill in info about selected repository *****/
+static void display_repository_info (RepWin *repwin)
+{
+    iTunesDB *itdb;
+    gint index;
+    gchar *buf, *key;
+
+    g_return_if_fail (repwin);
+    g_return_if_fail (repwin->itdb);
+
+    itdb = repwin->itdb;
+    index = repwin->itdb_index;
+
+    /* Repository type */
+    if (itdb->usertype & GP_ITDB_TYPE_IPOD)
+    {
+	buf = g_markup_printf_escaped ("<i>%s</i>", _("iPod"));
+    }
+    else if (itdb->usertype & GP_ITDB_TYPE_PODCASTS)
+    {
+	buf = g_markup_printf_escaped ("<i>%s</i>", _("Podcasts Repository"));
+    }
+    else if (itdb->usertype & GP_ITDB_TYPE_LOCAL)
+    {
+	buf = g_markup_printf_escaped ("<i>%s</i>", _("Local Repository"));
+    }
+    else
+    {
+	buf = g_markup_printf_escaped ("<b>Unknown -- please report bug</b>");
+    }
+    gtk_label_set_markup (GTK_LABEL(GET_WIDGET("repository_type_label")),
+			  buf);
+    g_free (buf);
+
+    /* Hide/show corresponding widgets in table */
+    if (itdb->usertype & GP_ITDB_TYPE_IPOD)
+    {
+	const gchar *widgets_show[] = {
+	    MOUNTPOINT_LABEL,
+	    MOUNTPOINT_ENTRY,
+	    MOUNTPOINT_BUTTON,
+	    BACKUP_LABEL,
+	    BACKUP_ENTRY,
+	    BACKUP_BUTTON,
+	    IPOD_MODEL_LABEL,
+	    IPOD_MODEL_COMBO,
+	    LOCAL_PATH_ENTRY,
+	    IPOD_SYNC_LABEL,
+	    IPOD_SYNC_CONTACTS_LABEL,
+	    IPOD_SYNC_CONTACTS_ENTRY,
+	    IPOD_SYNC_CONTACTS_BUTTON,
+	    IPOD_SYNC_CALENDAR_LABEL,
+	    IPOD_SYNC_CALENDAR_ENTRY,
+	    IPOD_SYNC_CALENDAR_BUTTON,
+	    IPOD_SYNC_NOTES_LABEL,
+	    IPOD_SYNC_NOTES_ENTRY,
+	    IPOD_SYNC_NOTES_BUTTON,
+	    IPOD_CONCAL_AUTOSYNC_TOGGLE,
+	    NULL};
+	const gchar *widgets_hide[] = {
+	    LOCAL_PATH_LABEL,
+	    LOCAL_PATH_ENTRY,
+	    NULL};
+	const gchar **widget;
+
+	for (widget=widgets_show; *widget; ++widget)
+	{
+	    gtk_widget_show (GET_WIDGET (*widget));
+	}
+	for (widget=widgets_hide; *widget; ++widget)
+	{
+	    gtk_widget_hide (GET_WIDGET (*widget));
+	}
+
+	set_entry_index (repwin, index, KEY_MOUNTPOINT, MOUNTPOINT_ENTRY);
+
+	set_entry_index (repwin, index, KEY_FILENAME, BACKUP_ENTRY);
+
+	set_entry_index (repwin, index,
+			 KEY_PATH_SYNC_CONTACTS, IPOD_SYNC_CONTACTS_ENTRY);
+
+	set_entry_index (repwin, index,
+			 KEY_PATH_SYNC_CALENDAR, IPOD_SYNC_CALENDAR_ENTRY);
+
+	set_entry_index (repwin, index,
+			 KEY_PATH_SYNC_NOTES, IPOD_SYNC_NOTES_ENTRY);
+
+	set_entry_index (repwin, index, KEY_IPOD_MODEL, IPOD_MODEL_ENTRY);
+
+	key = get_itdb_prefs_key (index, KEY_CONCAL_AUTOSYNC);
+	gtk_toggle_button_set_active (
+	    GTK_TOGGLE_BUTTON (GET_WIDGET (IPOD_CONCAL_AUTOSYNC_TOGGLE)),
+	    get_current_prefs_int (repwin, key));
+	g_free (key);
+    }
+    else if (itdb->usertype & GP_ITDB_TYPE_LOCAL)
+    {
+	const gchar *widgets_show[] = {
+	    LOCAL_PATH_LABEL,
+	    LOCAL_PATH_ENTRY,
+	    NULL};
+	const gchar *widgets_hide[] = {
+	    MOUNTPOINT_LABEL,
+	    MOUNTPOINT_ENTRY,
+	    MOUNTPOINT_BUTTON,
+	    BACKUP_LABEL,
+	    BACKUP_ENTRY,
+	    BACKUP_BUTTON,
+	    IPOD_MODEL_LABEL,
+	    IPOD_MODEL_COMBO,
+	    IPOD_SYNC_LABEL,
+	    IPOD_SYNC_CONTACTS_LABEL,
+	    IPOD_SYNC_CONTACTS_ENTRY,
+	    IPOD_SYNC_CONTACTS_BUTTON,
+	    IPOD_SYNC_CALENDAR_LABEL,
+	    IPOD_SYNC_CALENDAR_ENTRY,
+	    IPOD_SYNC_CALENDAR_BUTTON,
+	    IPOD_SYNC_NOTES_LABEL,
+	    IPOD_SYNC_NOTES_ENTRY,
+	    IPOD_SYNC_NOTES_BUTTON,
+	    IPOD_CONCAL_AUTOSYNC_TOGGLE,
+	    NULL};
+	const gchar **widget;
+
+	for (widget=widgets_show; *widget; ++widget)
+	{
+	    gtk_widget_show (GET_WIDGET (*widget));
+	}
+	for (widget=widgets_hide; *widget; ++widget)
+	{
+	    gtk_widget_hide (GET_WIDGET (*widget));
+	}
+
+	set_entry_index (repwin, index, KEY_FILENAME, LOCAL_PATH_ENTRY);
+    }
+    else
+    {
+	g_return_if_reached ();
+    }
+
+    key = get_itdb_prefs_key (index, "deleted");
+    gtk_toggle_button_set_active (
+	GTK_TOGGLE_BUTTON (GET_WIDGET (DELETE_REPOSITORY_CHECKBUTTON)),
+	temp_prefs_get_int (repwin->extra_prefs, key));
+    g_free (key);
+}
+
+
+/****** Fill in info about selected playlist *****/
+static void display_playlist_info (RepWin *repwin)
+{
+    gchar *buf, *key;
+    Playlist *playlist;
+    iTunesDB *itdb;
+    gint i, index;
+    const gchar *widget_names[] = {
+	PLAYLIST_SYNC_DELETE_TRACKS_TOGGLE,
+	PLAYLIST_SYNC_CONFIRM_DELETE_TOGGLE,
+	PLAYLIST_SYNC_SHOW_SUMMARY_TOGGLE,
+	NULL };
+    const gchar *key_names[] = {
+	KEY_SYNC_DELETE_TRACKS,
+	KEY_SYNC_CONFIRM_DELETE,
+	KEY_SYNC_SHOW_SUMMARY,
+	NULL };
+
+    g_return_if_fail (repwin);
+    g_return_if_fail (repwin->itdb);
+    g_return_if_fail (repwin->playlist);
+
+    /* for convenience */
+    itdb = repwin->itdb;
+    index = repwin->itdb_index;
+    playlist = repwin->playlist;
+
+    /* Playlist type */
+    if (itdb_playlist_is_mpl (playlist))
+    {
+	buf = g_markup_printf_escaped ("<i>%s</i>", _("Master Playlist"));
+    }
+    else if (itdb_playlist_is_podcasts (playlist))
+    {
+	buf = g_markup_printf_escaped ("<i>%s</i>", _("Podcasts Playlist"));
+    }
+    else if (playlist->is_spl)
+    {
+	buf = g_markup_printf_escaped ("<i>%s</i>", _("Smart Playlist"));
+    }
+    else
+    {
+	buf = g_markup_printf_escaped ("<i>%s</i>", _("Regular Playlist"));
+    }
+    gtk_label_set_markup (GTK_LABEL(GET_WIDGET("playlist_type_label")),
+			  buf);
+    g_free (buf);
+
+    /* Hide/show corresponding widgets in table */
+    if (playlist->is_spl)
+    {
+	gint liveupdate;
+
+	gtk_widget_show (GET_WIDGET (SPL_VBOX));
+	gtk_widget_show (GET_WIDGET (PLAYLIST_SYNC_DELETE_TRACKS_TOGGLE));
+	gtk_widget_hide (GET_WIDGET (STANDARD_PLAYLIST_VBOX));
+
+	key = get_playlist_prefs_key (index, playlist, KEY_LIVEUPDATE);
+	if (!temp_prefs_get_int_value (repwin->extra_prefs,
+				       key, &liveupdate))
+	    liveupdate = playlist->splpref.liveupdate;
+	g_free (key);
+
+	gtk_toggle_button_set_active (
+	    GTK_TOGGLE_BUTTON (GET_WIDGET (SPL_LIVE_UPDATE_TOGGLE)),
+	    liveupdate);
+    }
+    else
+    {
+	gint syncmode;
+	gchar *dir;
+	gtk_widget_show (GET_WIDGET (STANDARD_PLAYLIST_VBOX));
+	gtk_widget_hide (GET_WIDGET (SPL_VBOX));
+
+	key = get_playlist_prefs_key (index, playlist, KEY_SYNCMODE);
+	syncmode = get_current_prefs_int (repwin, key);
+	g_free (key);
+
+	/* Need to set manual_syncdir_entry here as it may set the
+	   syncmode to 'MANUAL' -- this will be corrected by setting
+	   the radio button with the original syncmode setting further
+	   down. */
+	key = get_playlist_prefs_key (index, playlist,
+				      KEY_MANUAL_SYNCDIR);
+	dir = get_current_prefs_string (repwin, key);
+	g_free (key);
+	gtk_entry_set_text (GTK_ENTRY (GET_WIDGET (MANUAL_SYNCDIR_ENTRY)),
+			    dir);
+	g_free (dir);
+
+	switch (syncmode)
+	{
+	case SYNC_PLAYLIST_MODE_NONE:
+	    gtk_toggle_button_set_active (
+		GTK_TOGGLE_BUTTON (GET_WIDGET (SYNC_PLAYLIST_MODE_NONE_RADIO)),
+		TRUE);
+	    break;
+	case SYNC_PLAYLIST_MODE_MANUAL:
+	    gtk_toggle_button_set_active (
+		GTK_TOGGLE_BUTTON (GET_WIDGET (SYNC_PLAYLIST_MODE_MANUAL_RADIO)),
+		TRUE);
+	    break;
+	case SYNC_PLAYLIST_MODE_AUTOMATIC:
+	    gtk_toggle_button_set_active (
+		GTK_TOGGLE_BUTTON (GET_WIDGET (SYNC_PLAYLIST_MODE_AUTOMATIC_RADIO)),
+		TRUE);
+	    break;
+	default:
+	    /* repair broken prefs */
+	    prefs_set_int (key, SYNC_PLAYLIST_MODE_NONE);
+	    gtk_toggle_button_set_active (
+		GTK_TOGGLE_BUTTON (GET_WIDGET (SYNC_PLAYLIST_MODE_NONE_RADIO)),
+		TRUE);
+	    break;
+	}
+	/* make options available where appropriate */
+	gtk_widget_set_sensitive (GET_WIDGET (SYNC_OPTIONS_HBOX),
+				  syncmode != SYNC_PLAYLIST_MODE_NONE);
+	/* set standard toggle buttons */
+	for (i=0; widget_names[i]; ++i)
+	{
+	    key = get_playlist_prefs_key (index, playlist, key_names[i]);
+	    gtk_toggle_button_set_active (
+		GTK_TOGGLE_BUTTON (GET_WIDGET (widget_names[i])),
+		get_current_prefs_int (repwin, key));
+	    if (key_names[i] == KEY_SYNC_DELETE_TRACKS)
+	    {
+		gtk_widget_set_sensitive (
+		    GET_WIDGET (PLAYLIST_SYNC_CONFIRM_DELETE_TOGGLE),
+		    get_current_prefs_int (repwin, key));
+	    }
+	    g_free (key);
+	}
+    }
+}
+
+
+
+/****** New repository was selected */
+static void repository_changed (GtkComboBox *cb,
+				RepWin *repwin)
+{
+    struct itdbs_head *itdbs_head;
+    iTunesDB *itdb;
+    gint index;
+
+#   if LOCAL_DEBUG
+    printf ("Repository changed (%p)\n", repwin);
+#   endif
+
+    g_return_if_fail (repwin);
+
+    index = gtk_combo_box_get_active (cb);
+
+    itdbs_head = gp_get_itdbs_head (gtkpod_window);
+    g_return_if_fail (itdbs_head);
+
+    itdb = g_list_nth_data (itdbs_head->itdbs, index);
+
+    if (repwin->itdb != itdb)
+    {
+	repwin->itdb = itdb;
+	repwin->itdb_index = index;
+	display_repository_info (repwin);
+	init_playlist_combo (repwin);
+	update_buttons (repwin);
+    }
+}
+
+
+
+/****** New playlist was selected */
+static void playlist_changed (GtkComboBox *cb,
+			      RepWin *repwin)
+{
+    GtkTreeModel *model;
+    Playlist *playlist;
+    GtkTreeIter iter;
+    gint index;
+
+#   if LOCAL_DEBUG
+    printf ("Playlist changed (%p)\n", repwin);
+#   endif
+
+    g_return_if_fail (repwin);
+
+    index = gtk_combo_box_get_active (cb);
+    /* We can't just use the index to find the right playlist in
+       itdb->playlists because they might have been reordered. Instead
+       use the playlist pointer stored in the model. */
+    model= gtk_combo_box_get_model (cb);
+    g_return_if_fail (model);
+    g_return_if_fail (gtk_tree_model_iter_nth_child (model, &iter,
+						     NULL, index));
+    gtk_tree_model_get (model, &iter, 0, &playlist, -1);
+
+    if (repwin->playlist != playlist)
+    {
+	g_return_if_fail (playlist->itdb == repwin->itdb);
+	repwin->playlist = playlist;
+	display_playlist_info (repwin);
+    }
+}
+
+
+/* Provide graphic indicator in playlist combobox */
+static void playlist_cb_cell_data_func_pix (GtkCellLayout *cell_layout,
+					    GtkCellRenderer *cell,
+					    GtkTreeModel *model,
+					    GtkTreeIter *iter,
+					    gpointer data)
+{
+    Playlist *playlist;
+
+    g_return_if_fail (cell);
+    g_return_if_fail (model);
+    g_return_if_fail (iter);
+
+    gtk_tree_model_get (model, iter, 0, &playlist, -1);
+
+    pm_set_renderer_pix (cell, playlist);
+}
+
+
+/* Provide playlist name in combobox */
+static void playlist_cb_cell_data_func_text (GtkCellLayout *cell_layout,
+                                             GtkCellRenderer *cell,
+                                             GtkTreeModel *model,
+                                             GtkTreeIter *iter,
+                                             gpointer data)
+{
+    Playlist *playlist;
+
+    g_return_if_fail (cell);
+    g_return_if_fail (model);
+    g_return_if_fail (iter);
+
+    gtk_tree_model_get (model, iter, 0, &playlist, -1);
+
+    pm_set_renderer_text (cell, playlist);
+}
+
+
+
+/****** common between init_repository_combo() and create_repository() */
+static void set_repository_combo (GtkComboBox *cb)
+{
+    struct itdbs_head *itdbs_head;
+    GtkCellRenderer *cell;
+    GtkListStore *store;
+    GList *gl;
+
+    itdbs_head = gp_get_itdbs_head (gtkpod_window);
+    g_return_if_fail (itdbs_head);
+
+    if (g_object_get_data (G_OBJECT (cb), "combo_set") == NULL)
+    {   /* the combo has not yet been initialized */
+	/* Cell for graphic indicator */
+	cell = gtk_cell_renderer_pixbuf_new ();
+	gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (cb), cell, FALSE);
+	gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (cb), cell,
+					    playlist_cb_cell_data_func_pix,
+					    NULL, NULL);
+	/* Cell for playlist name */
+	cell = gtk_cell_renderer_text_new ();
+	gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (cb), cell, FALSE);
+	gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (cb), cell,
+					    playlist_cb_cell_data_func_text,
+					    NULL, NULL);
+
+	g_object_set (G_OBJECT (cell),
+		      "editable", FALSE,
+		      NULL);
+    }
+
+    store = gtk_list_store_new (1, G_TYPE_POINTER);
+    gtk_combo_box_set_model (cb, GTK_TREE_MODEL (store));
+    g_object_unref (store);
+
+    for (gl=itdbs_head->itdbs; gl; gl=gl->next)
+    {
+	GtkTreeIter iter;
+	Playlist *mpl;
+	iTunesDB *itdb = gl->data;
+	g_return_if_fail (itdb);
+
+	mpl = itdb_playlist_mpl (itdb);
+	g_return_if_fail (mpl);
+
+	gtk_list_store_append (store, &iter);
+	gtk_list_store_set (store, &iter, 0, mpl, -1);
+    }
+}
+
+
+
+
+/****** Initialize the repository combo *****/
+static void init_repository_combo (RepWin *repwin)
+{
+    GtkComboBox *cb;
+
+    g_return_if_fail (repwin);
+
+    cb = GTK_COMBO_BOX (GET_WIDGET (REPOSITORY_COMBO));
+
+    set_repository_combo (cb);
+
+    if (g_object_get_data (G_OBJECT (cb), "combo_set") == NULL)
+    {   /* the combo has not yet been initialized */
+	g_signal_connect (cb, "changed",
+			  G_CALLBACK (repository_changed), repwin);
+
+	g_object_set_data (G_OBJECT (cb), "combo_set", "set");
+    }
+
+
+    repwin->itdb = NULL;
+    repwin->playlist = NULL;
+}
+
+
+
+
+/****** Initialize the playlist combo *****/
+static void init_playlist_combo (RepWin *repwin)
+{
+    GtkCellRenderer *cell;
+    GtkListStore *store;
+    GtkComboBox *cb;
+    GList *gl;
+
+    g_return_if_fail (repwin);
+    g_return_if_fail (repwin->itdb);
+
+    cb = GTK_COMBO_BOX (gtkpod_xml_get_widget (repwin->xml,
+					       PLAYLIST_COMBO));
+
+    if (g_object_get_data (G_OBJECT (cb), "combo_set") == NULL)
+    {
+	/* Cell for graphic indicator */
+	cell = gtk_cell_renderer_pixbuf_new ();
+	gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (cb), cell, FALSE);
+	gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (cb), cell,
+					    playlist_cb_cell_data_func_pix,
+					    NULL, NULL);
+	/* Cell for playlist name */
+	cell = gtk_cell_renderer_text_new ();
+	gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (cb), cell, FALSE);
+	gtk_cell_layout_set_cell_data_func (GTK_CELL_LAYOUT (cb), cell,
+					    playlist_cb_cell_data_func_text,
+					    NULL, NULL);
+
+	g_object_set (G_OBJECT (cell),
+		      "editable", FALSE,
+		      NULL);
+
+	g_signal_connect (cb, "changed",
+			  G_CALLBACK (playlist_changed), repwin);
+
+	g_object_set_data (G_OBJECT (cb), "combo_set", "set");
+    }
+
+    store = gtk_list_store_new (1, G_TYPE_POINTER);
+    gtk_combo_box_set_model (cb, GTK_TREE_MODEL (store));
+    g_object_unref (store);
+
+    if (repwin->itdb)
+    {
+	for (gl=repwin->itdb->playlists; gl; gl=gl->next)
+	{
+	    GtkTreeIter iter;
+	    Playlist *pl = gl->data;
+	    g_return_if_fail (pl);
+
+	    gtk_list_store_append (store, &iter);
+	    gtk_list_store_set (store, &iter, 0, pl, -1);
+	}
+    }
+
+    if (repwin->itdb)
+    {
+	select_playlist (repwin, repwin->next_playlist);
+	repwin->next_playlist = NULL;
+    }
+}
+
+
+
+/* Render apply insensitive when no changes were made.
+   When an itdb is marked for deletion, make entries insensitive */
+static void update_buttons (RepWin *repwin)
+{
+    gboolean apply, ok, deleted;
+    gchar *key;
+
+    g_return_if_fail (repwin);
+    g_return_if_fail (repwin->temp_prefs);
+    g_return_if_fail (repwin->extra_prefs);
+
+    if ((temp_prefs_size (repwin->temp_prefs) > 0) ||
+	(temp_prefs_size (repwin->extra_prefs) > 0))
+    {
+	apply = TRUE;
+	ok = TRUE;
+    }
+    else
+    {
+	apply = FALSE;
+	ok = TRUE;
+    }
+
+    gtk_widget_set_sensitive (GET_WIDGET ("apply_button"), apply);
+    gtk_widget_set_sensitive (GET_WIDGET ("ok_button"), ok);
+
+    if (repwin->itdb)
+    {
+	gtk_widget_set_sensitive (GET_WIDGET (REPOSITORY_VBOX), TRUE);
+
+	/* Check if this itdb is marked for deletion */
+	key = get_itdb_prefs_key (repwin->itdb_index, "deleted");
+	deleted = temp_prefs_get_int (repwin->extra_prefs, key);
+	g_free (key);
+
+	gtk_widget_set_sensitive (GET_WIDGET ("path_table_ipod"), !deleted);
+	gtk_widget_set_sensitive (GET_WIDGET ("update_all_playlists_button"), !deleted);
+	gtk_widget_set_sensitive (GET_WIDGET ("playlist_frame"), !deleted);
+	gtk_widget_set_sensitive (GET_WIDGET ("delete_repository_button"),
+				  !deleted && gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (GET_WIDGET (DELETE_REPOSITORY_CHECKBUTTON))));
+
+	if (repwin->playlist)
+	{
+	    gboolean sens = FALSE;
+	    if (repwin->playlist->is_spl)
+	    {
+		sens = TRUE;
+	    }
+	    else
+	    {
+		gint val;
+		key = get_playlist_prefs_key (repwin->itdb_index,
+					      repwin->playlist,
+					      KEY_SYNCMODE);
+		val = get_current_prefs_int (repwin, key);
+		g_free (key);
+		if (val != SYNC_PLAYLIST_MODE_NONE)
+		{
+		    sens = TRUE;
+		}
+		gtk_widget_set_sensitive (GET_WIDGET (SYNC_OPTIONS_HBOX),
+					  sens);
+
+		key = get_playlist_prefs_key (repwin->itdb_index,
+					      repwin->playlist,
+					      KEY_SYNC_DELETE_TRACKS);
+		val = get_current_prefs_int (repwin, key);
+		g_free (key);
+		gtk_widget_set_sensitive (
+		    GET_WIDGET (PLAYLIST_SYNC_CONFIRM_DELETE_TOGGLE),
+		    val);
+	    }
+	    gtk_widget_set_sensitive (GET_WIDGET (UPDATE_PLAYLIST_BUTTON),
+				      sens);
+	}
+    }
+    else
+    {   /* no itdb loaded */
+	gtk_widget_set_sensitive (GET_WIDGET (REPOSITORY_VBOX), FALSE);
+    }
+}
+
+
+
+/* Free memory taken by @repwin */
+static void repwin_free (RepWin *repwin)
+{
+    g_return_if_fail (repwin);
+
+    g_object_unref (repwin->xml);
+
+    if (repwin->window)
+    {
+	gtk_widget_destroy (repwin->window);
+    }
+
+    g_free (repwin);
+}
+
+
+/**
+ * repository_edit_itdb_added:
+ *
+ * Notify the dialog that a new itdb was added to the display.
+ *
+ * @itdb: newly added itdb
+ * @select: select the new itdb if TRUE.
+ */
+static void repository_edit_itdb_added (iTunesDB *itdb, gboolean select)
+{
+    struct itdbs_head *itdbs_head;
+    gint index, num;
+    GList *gl;
+
+
+    g_return_if_fail (itdb);
+    itdbs_head = gp_get_itdbs_head (gtkpod_window);
+    g_return_if_fail (itdbs_head);
+ 
+    index = g_list_index (itdbs_head->itdbs, itdb);
+    g_return_if_fail (index != -1);
+    num = g_list_length (itdbs_head->itdbs);
+
+    /* Cycle through all open windows */
+    for (gl=repwins; gl; gl=gl->next)
+    {
+	gint i;
+	iTunesDB *old_itdb;
+	Playlist *old_playlist;
+	RepWin *repwin = gl->data;
+	g_return_if_fail (repwin);
+
+	/* rename keys */
+	for (i=num-2; i>=index; --i)
+	{
+	    gchar *from_key = get_itdb_prefs_key (i, "");
+	    gchar *to_key = get_itdb_prefs_key (i+1, "");
+#           if LOCAL_DEBUG
+	    printf ("TP renaming %d to %d\n", i, i+1);
+#           endif
+	    temp_prefs_rename_subkey (repwin->temp_prefs,
+				      from_key, to_key);
+	    g_free (from_key);
+	    g_free (to_key);
+	}
+
+	old_itdb = repwin->itdb;
+	old_playlist = repwin->playlist;
+
+	init_repository_combo (repwin);
+
+	if (select)
+	{
+	    select_repository (repwin, itdb, NULL);
+	}
+	else
+	{
+	    select_repository (repwin, old_itdb, old_playlist);
+	}
+    }
+}
+
+
+/**
+ * repository_edit:
+ *
+ * Open the repository options window and display repository @itdb and
+ * playlist @playlist. If @itdb and @playlist is NULL, display first
+ * repository and playlist. If @itdb is NULL and @playlist is not
+ * NULL, display @playlist and assume repository is playlist->itdb.
+ */
+void repository_edit (iTunesDB *itdb, Playlist *playlist)
+{
+    RepWin *repwin;
+    GtkComboBox *cb;
+    gint defx, defy;
+    gint i;
+    /* widget names and corresponding keys for 'standard' toggle
+       options */
+    const gchar *playlist_widget_names_toggle[] = {
+	PLAYLIST_SYNC_DELETE_TRACKS_TOGGLE,
+	PLAYLIST_SYNC_CONFIRM_DELETE_TOGGLE,
+	PLAYLIST_SYNC_SHOW_SUMMARY_TOGGLE,
+	SPL_LIVE_UPDATE_TOGGLE,
+	NULL };
+    const gchar *playlist_key_names_toggle[] = {
+	KEY_SYNC_DELETE_TRACKS,
+	KEY_SYNC_CONFIRM_DELETE,
+	KEY_SYNC_SHOW_SUMMARY,
+	KEY_LIVEUPDATE,
+	NULL };
+    const gchar *itdb_widget_names_toggle[] = {
+	IPOD_CONCAL_AUTOSYNC_TOGGLE,
+	NULL };
+    const gchar *itdb_key_names_toggle[] = {
+	KEY_CONCAL_AUTOSYNC,
+	NULL };
+    /* widget names and corresponding keys for 'standard' strings */
+    const gchar *itdb_widget_names_entry[] = {
+	MOUNTPOINT_ENTRY,
+	BACKUP_ENTRY,
+	IPOD_MODEL_ENTRY,
+	LOCAL_PATH_ENTRY,
+	IPOD_SYNC_CONTACTS_ENTRY,
+	IPOD_SYNC_CALENDAR_ENTRY,
+	IPOD_SYNC_NOTES_ENTRY,
+	NULL };
+    const gchar *itdb_key_names_entry[] = {
+	KEY_MOUNTPOINT,
+	KEY_BACKUP,
+	KEY_IPOD_MODEL,
+	KEY_FILENAME,
+	KEY_PATH_SYNC_CONTACTS,
+	KEY_PATH_SYNC_CALENDAR,
+	KEY_PATH_SYNC_NOTES,
+	NULL };
+
+    /* If window is already open, raise existing window to the top */
+    if (repwins)
+    {
+	repwin = repwins->data;
+	g_return_if_fail (repwin);
+	g_return_if_fail (repwin->window);
+	gdk_window_raise (repwin->window->window);
+	return;
+    }
+
+    repwin = g_malloc0 (sizeof (RepWin));
+
+    repwin->xml = glade_xml_new (xml_file, "repository_window", NULL);
+/*  no signals to connect -> comment out */
+/*     glade_xml_signal_autoconnect (detail->xml); */
+    repwin->window = gtkpod_xml_get_widget (repwin->xml,
+					    "repository_window");
+    g_return_if_fail (repwin->window);
+
+    repwins = g_list_append (repwins, repwin);
+
+
+    /* Setup model number combo */
+    cb = GTK_COMBO_BOX (GET_WIDGET (IPOD_MODEL_COMBO));
+    gp_init_model_number_combo (cb);
+
+    /* Window control */
+    g_signal_connect (GET_WIDGET ("apply_button"), "clicked",
+		      G_CALLBACK (edit_apply_clicked), repwin);
+
+    g_signal_connect (GET_WIDGET ("cancel_button"), "clicked",
+		      G_CALLBACK (edit_cancel_clicked), repwin);
+
+    g_signal_connect (GET_WIDGET ("ok_button"), "clicked",
+		      G_CALLBACK (edit_ok_clicked), repwin);
+
+    g_signal_connect (repwin->window, "delete_event",
+		      G_CALLBACK (edit_delete_event), repwin);
+
+    /* Entry callbacks */
+    g_signal_connect (GET_WIDGET (MANUAL_SYNCDIR_ENTRY), "changed",
+		      G_CALLBACK (manual_syncdir_changed), repwin);
+    /* connect standard text entries */
+    for (i=0; itdb_widget_names_entry[i]; ++i)
+    {
+	GtkWidget *w = GET_WIDGET (itdb_widget_names_entry[i]);
+
+	g_signal_connect (w, "changed",
+			  G_CALLBACK (standard_itdb_entry_changed),
+			  repwin);
+	g_object_set_data (G_OBJECT (w), "key",
+			   (gpointer)itdb_key_names_entry[i]);
+    }
+
+    /* Togglebutton callbacks */
+    g_signal_connect (GET_WIDGET (SYNC_PLAYLIST_MODE_NONE_RADIO),
+		      "toggled",
+		      G_CALLBACK (sync_playlist_mode_none_toggled),
+		      repwin);
+
+    g_signal_connect (GET_WIDGET (SYNC_PLAYLIST_MODE_MANUAL_RADIO),
+		      "toggled",
+		      G_CALLBACK (sync_playlist_mode_manual_toggled),
+		      repwin);
+
+    g_signal_connect (GET_WIDGET (SYNC_PLAYLIST_MODE_AUTOMATIC_RADIO),
+		      "toggled",
+		      G_CALLBACK (sync_playlist_mode_automatic_toggled),
+		      repwin);
+
+    g_signal_connect (GET_WIDGET (DELETE_REPOSITORY_CHECKBUTTON),
+		      "toggled",
+		      G_CALLBACK (delete_repository_checkbutton_toggled),
+		      repwin);
+    /* connect standard toggle buttons */
+    for (i=0; playlist_widget_names_toggle[i]; ++i)
+    {
+	GtkWidget *w = GET_WIDGET (playlist_widget_names_toggle[i]);
+
+	g_signal_connect (w, "toggled",
+			  G_CALLBACK (standard_playlist_checkbutton_toggled),
+			  repwin);
+	g_object_set_data (G_OBJECT (w), "key",
+			   (gpointer)playlist_key_names_toggle[i]);
+    }
+    for (i=0; itdb_widget_names_toggle[i]; ++i)
+    {
+	GtkWidget *w = GET_WIDGET (itdb_widget_names_toggle[i]);
+
+	g_signal_connect (w, "toggled",
+			  G_CALLBACK (standard_itdb_checkbutton_toggled),
+			  repwin);
+	g_object_set_data (G_OBJECT (w), "key",
+			   (gpointer)itdb_key_names_toggle[i]);
+    }
+
+
+    /* Button callbacks */
+    g_signal_connect (GET_WIDGET (MOUNTPOINT_BUTTON), "clicked",
+		      G_CALLBACK (mountpoint_button_clicked), repwin);
+
+    g_signal_connect (GET_WIDGET (BACKUP_BUTTON), "clicked",
+		      G_CALLBACK (backup_button_clicked), repwin);
+
+    g_signal_connect (GET_WIDGET (MANUAL_SYNCDIR_BUTTON), "clicked",
+ 		      G_CALLBACK (manual_syncdir_button_clicked), repwin);
+
+    g_signal_connect (GET_WIDGET (DELETE_REPOSITORY_BUTTON), "clicked",
+ 		      G_CALLBACK (delete_repository_button_clicked), repwin);
+
+    g_signal_connect (GET_WIDGET (IPOD_SYNC_CONTACTS_BUTTON), "clicked",
+ 		      G_CALLBACK (ipod_sync_contacts_button_clicked), repwin);
+
+    g_signal_connect (GET_WIDGET (IPOD_SYNC_CALENDAR_BUTTON), "clicked",
+ 		      G_CALLBACK (ipod_sync_calendar_button_clicked), repwin);
+
+    g_signal_connect (GET_WIDGET (IPOD_SYNC_NOTES_BUTTON), "clicked",
+ 		      G_CALLBACK (ipod_sync_notes_button_clicked), repwin);
+
+    g_signal_connect (GET_WIDGET (UPDATE_PLAYLIST_BUTTON), "clicked",
+ 		      G_CALLBACK (update_playlist_button_clicked), repwin);
+
+    g_signal_connect (GET_WIDGET (UPDATE_ALL_PLAYLISTS_BUTTON), "clicked",
+ 		      G_CALLBACK (update_all_playlists_button_clicked), repwin);
+
+    g_signal_connect (GET_WIDGET (NEW_REPOSITORY_BUTTON), "clicked",
+ 		      G_CALLBACK (new_repository_button_clicked), repwin);
+
+    init_repository_combo (repwin);
+
+    /* set default size */
+    defx = prefs_get_int (KEY_REPOSITORY_WINDOW_DEFX);
+    defy = prefs_get_int (KEY_REPOSITORY_WINDOW_DEFY);
+
+    if ((defx == 0) || (defy == 0))
+    {
+	defx = 540;
+	defy = 480;
+    }
+/*     gtk_window_set_default_size (GTK_WINDOW (repwin->window), */
+/* 				 defx, defy); */
+    gtk_window_resize (GTK_WINDOW (repwin->window),
+		       defx, defy);
+
+    /* Set up temp_prefs struct */
+    repwin->temp_prefs = temp_prefs_create ();
+    repwin->extra_prefs = temp_prefs_create ();
+
+    if (!itdb && playlist)
+	itdb = playlist->itdb;
+    if (!itdb)
+    {
+	struct itdbs_head *itdbs_head = gp_get_itdbs_head (gtkpod_window);
+	itdb = g_list_nth_data (itdbs_head->itdbs, 0);
+    }
+    g_return_if_fail (itdb);
+
+    select_repository (repwin, itdb, playlist);
+
+    update_buttons (repwin);
+
+    gtk_widget_show (repwin->window);
+}
+
+
+/* Use the dimension of the first open window */
+void update_default_sizes (void)
+{
+    if (repwins)
+	store_window_state (repwins->data);
+}
+
+
+
+
+/* ------------------------------------------------------------
+ * ************************************************************
+ *
+ * Create Repository Dialog
+ *
+ * ************************************************************
+ * ------------------------------------------------------------ */
+
+struct _CreateRep
+{
+    GladeXML *xml;           /* XML info                             */
+    GtkWidget *window;       /* pointer to repository window         */
+};
+
+typedef struct _CreateRep CreateRep;
+
+static CreateRep *createrep = NULL;
+
+/* repository types */
+enum
+{
+    REPOSITORY_TYPE_IPOD = 0,
+    REPOSITORY_TYPE_LOCAL = 1,
+    REPOSITORY_TYPE_PODCAST = 2,
+};
+/* before/after */
+enum
+{
+    INSERT_BEFORE = 0,
+    INSERT_AFTER = 1,
+};
+
+
+/* somes widget names used several times */
+static const gchar *REPOSITORY_TYPE_COMBO="repository_type_combo";
+static const gchar *INSERT_BEFORE_AFTER_COMBO="insert_before_after_combo";
+static const gchar *REPOSITORY_NAME_ENTRY="repository_name_entry";
+
+
+
+
+/* shortcut to reference widgets when repwin->xml is already set */
+#undef GET_WIDGET
+#define GET_WIDGET(a) repository_xml_get_widget (cr->xml,a)
+
+
+/* ------------------------------------------------------------
+ *
+ *        Callback functions (windows control)
+ *
+ * ------------------------------------------------------------ */
+
+
+/* Free memory taken by @createrep */
+static void createrep_free (CreateRep *cr)
+{
+    g_return_if_fail (cr);
+
+    g_object_unref (cr->xml);
+
+    if (cr->window)
+    {
+	gtk_widget_destroy (cr->window);
+    }
+
+    g_free (cr);
+}
+
+
+
+static void create_cancel_clicked (GtkButton *button, CreateRep *cr)
+{
+    g_return_if_fail (cr);
+
+    createrep_free (cr);
+
+    createrep = NULL;
+}
+
+
+static void create_ok_clicked (GtkButton *button, CreateRep *cr)
+{
+    struct itdbs_head *itdbs_head;
+    gint type, bef_after, itdb_index;
+    const gchar *name, *mountpoint, *backup, *ipod_model, *local_path;
+    iTunesDB *itdb;
+    gint n,i;
+
+    g_return_if_fail (cr);
+
+    itdbs_head = gp_get_itdbs_head (gtkpod_window);
+    g_return_if_fail (itdbs_head);
+    n = g_list_length (itdbs_head->itdbs);
+
+    /* retrieve current settings */
+    type = gtk_combo_box_get_active (
+	GTK_COMBO_BOX (GET_WIDGET (REPOSITORY_TYPE_COMBO)));
+
+    bef_after = gtk_combo_box_get_active (
+	GTK_COMBO_BOX (GET_WIDGET (INSERT_BEFORE_AFTER_COMBO)));
+
+    itdb_index = gtk_combo_box_get_active (
+	GTK_COMBO_BOX (GET_WIDGET (REPOSITORY_COMBO)));
+
+    name = gtk_entry_get_text (
+	GTK_ENTRY (GET_WIDGET (REPOSITORY_NAME_ENTRY)));
+
+    mountpoint = gtk_entry_get_text (
+	GTK_ENTRY (GET_WIDGET (MOUNTPOINT_ENTRY)));
+
+    backup = gtk_entry_get_text (
+	GTK_ENTRY (GET_WIDGET (BACKUP_ENTRY)));
+
+    ipod_model = gtk_entry_get_text (
+	GTK_ENTRY (GET_WIDGET (IPOD_MODEL_ENTRY)));
+    if (strcmp (ipod_model, gettext(SELECT_OR_ENTER_YOUR_MODEL)) == 0)
+    {   /* User didn't choose a model */
+	ipod_model = "";
+    }
+
+    local_path = gtk_entry_get_text (
+	GTK_ENTRY (GET_WIDGET (LOCAL_PATH_ENTRY)));
+
+    /* adjust position where new itdb is to be inserted */
+    if (bef_after == INSERT_AFTER)
+	++itdb_index;
+
+    /* rename pref keys */
+    for (i=n-1; i>=itdb_index; --i)
+    {
+	gchar *from_key = get_itdb_prefs_key (i, "");
+	gchar *to_key = get_itdb_prefs_key (i+1, "");
+#       if LOCAL_DEBUG
+	printf ("renaming %d to %d\n", i, i+1);
+#       endif
+	prefs_rename_subkey (from_key, to_key);
+	g_free (from_key);
+	g_free (to_key);
+    }
+
+    /* Setup prefs for new itdb */
+    set_itdb_index_prefs_string (itdb_index, "name", name);
+    switch (type)
+    {
+    case REPOSITORY_TYPE_IPOD:
+	set_itdb_index_prefs_string (itdb_index,
+				     KEY_MOUNTPOINT, mountpoint);
+	set_itdb_index_prefs_string (itdb_index,
+				     KEY_BACKUP, backup);
+	set_itdb_index_prefs_int (itdb_index, "type", GP_ITDB_TYPE_IPOD);
+	if (strlen (ipod_model) != 0)
+	    set_itdb_index_prefs_string (itdb_index,
+					 KEY_IPOD_MODEL, ipod_model);
+	break;
+    case REPOSITORY_TYPE_LOCAL:
+	set_itdb_index_prefs_string (itdb_index,
+				     KEY_FILENAME, local_path);
+	set_itdb_index_prefs_int (itdb_index, "type", GP_ITDB_TYPE_LOCAL);
+	break;
+    case REPOSITORY_TYPE_PODCAST:
+	set_itdb_index_prefs_string (itdb_index,
+				     KEY_FILENAME, local_path);
+	set_itdb_index_prefs_int (itdb_index, "type",
+				  GP_ITDB_TYPE_PODCASTS|GP_ITDB_TYPE_LOCAL);
+	break;
+    default:
+	g_return_if_reached ();
+    }
+
+    /* Create new itdb */
+    itdb = setup_itdb_n (itdb_index);
+    g_return_if_fail (itdb);
+
+    /* add to the display */
+    gp_itdb_add (itdb, itdb_index);
+
+    /* notify repository_edit dialog */
+    repository_edit_itdb_added (itdb, TRUE);
+
+    /* Finish */
+    create_cancel_clicked (NULL, cr);
+}
+
+
+static void create_delete_event (GtkWidget *widget,
+			       GdkEvent *event,
+			       CreateRep *cr)
+{
+    create_cancel_clicked (NULL, cr);
+}
+
+
+
+/* ------------------------------------------------------------
+ *
+ *        Callback (repository type)
+ *
+ * ------------------------------------------------------------ */
+
+static void repository_type_changed (GtkComboBox *cb,
+				     CreateRep *cr)
+{
+    gint index, i;
+    const gchar **show=NULL;
+    /* widgets to show for iPod repositories */
+    const gchar *show_ipod[] = {
+	MOUNTPOINT_LABEL, MOUNTPOINT_ENTRY, MOUNTPOINT_BUTTON,
+	BACKUP_LABEL, BACKUP_ENTRY, BACKUP_BUTTON,
+	IPOD_MODEL_LABEL, IPOD_MODEL_COMBO,
+	NULL };
+    /* widgets to show for local repositories */
+    const gchar *show_local[] = {
+	LOCAL_PATH_LABEL, LOCAL_PATH_ENTRY, LOCAL_PATH_BUTTON,
+	NULL };
+    /* list of all widgets that get hidden */
+    const gchar *hide_all[] = {
+	MOUNTPOINT_LABEL, MOUNTPOINT_ENTRY, MOUNTPOINT_BUTTON,
+	BACKUP_LABEL, BACKUP_ENTRY, BACKUP_BUTTON,
+	IPOD_MODEL_LABEL, IPOD_MODEL_COMBO,
+	LOCAL_PATH_LABEL, LOCAL_PATH_ENTRY, LOCAL_PATH_BUTTON,
+	NULL };
+
+
+    index = gtk_combo_box_get_active (cb);
+
+    switch (index)
+    {
+    case REPOSITORY_TYPE_IPOD:
+	show = show_ipod;
+	break;
+    case REPOSITORY_TYPE_LOCAL:
+    case REPOSITORY_TYPE_PODCAST:
+	show = show_local;
+	break;
+    }
+
+    g_return_if_fail (show);
+
+    /* Hide all widgets */
+    for (i=0; hide_all[i]; ++i)
+    {
+	gtk_widget_hide (GET_WIDGET (hide_all[i]));
+    }
+    /* Show appropriate widgets */
+    for (i=0; show[i]; ++i)
+    {
+	gtk_widget_show (GET_WIDGET (show[i]));
+    }
+}
+
+
+/* ------------------------------------------------------------
+ *
+ *        Callback (buttons)
+ *
+ * ------------------------------------------------------------ */
+
+/* mountpoint browse button was clicked */
+static void cr_mountpoint_button_clicked (GtkButton *button,
+					  CreateRep *cr)
+{
+    const gchar *old_dir;
+    gchar *new_dir;
+
+    g_return_if_fail (cr);
+
+    old_dir = gtk_entry_get_text (
+	GTK_ENTRY (GET_WIDGET (MOUNTPOINT_ENTRY)));
+
+    new_dir = fileselection_get_file_or_dir (
+	_("Select mountpoint"),
+	old_dir,
+	GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER);
+
+    if (new_dir)
+    {
+	gtk_entry_set_text (GTK_ENTRY (GET_WIDGET (MOUNTPOINT_ENTRY)),
+			    new_dir);
+	g_free (new_dir);
+    }
+}
+
+
+/* backup browse button was clicked */
+static void cr_backup_button_clicked (GtkButton *button,
+				      CreateRep *cr)
+{
+    const gchar *old_backup;
+    gchar *new_backup;
+
+    g_return_if_fail (cr);
+
+    old_backup = gtk_entry_get_text (
+	GTK_ENTRY (GET_WIDGET (BACKUP_ENTRY)));
+
+    new_backup = fileselection_get_file_or_dir (
+	_("Set backup file"),
+	old_backup,
+	GTK_FILE_CHOOSER_ACTION_SAVE);
+
+    if (new_backup)
+    {
+	gtk_entry_set_text (GTK_ENTRY (GET_WIDGET (BACKUP_ENTRY)),
+			    new_backup);
+	g_free (new_backup);
+    }
+}
+
+
+
+
+/* local path browse button was clicked */
+static void cr_local_path_button_clicked (GtkButton *button,
+					  CreateRep *cr)
+{
+    const gchar *old_path;
+    gchar *new_path;
+
+    g_return_if_fail (cr);
+
+    old_path = gtk_entry_get_text (
+	GTK_ENTRY (GET_WIDGET (LOCAL_PATH_ENTRY)));
+
+    new_path = fileselection_get_file_or_dir (
+	_("Set local repository file"),
+	old_path,
+	GTK_FILE_CHOOSER_ACTION_SAVE);
+
+    if (new_path)
+    {
+	gtk_entry_set_text (GTK_ENTRY (GET_WIDGET (LOCAL_PATH_ENTRY)),
+			    new_path);
+	g_free (new_path);
+    }
+}
+
+
+
+
+/**
+ * create_repository: Create a new repository.
+ * 
+ * @repwin: if given, @repwin will be updated.
+ *
+ * Note: this is a modal dialog.
+ */
+
+static void create_repository (RepWin *repwin1)
+{
+    CreateRep *cr;
+    GtkComboBox *cb;
+    gchar *str, *buf1, *buf2;
+    struct itdbs_head *itdbs_head = gp_get_itdbs_head (gtkpod_window);
+
+    /* If window is already open, raise existing window to the top */
+    if (createrep)
+    {
+	g_return_if_fail (createrep->window);
+	gdk_window_raise (createrep->window->window);
+	return;
+    }
+
+    createrep = g_malloc0 (sizeof (CreateRep));
+    cr = createrep;
+
+    cr->xml = glade_xml_new (xml_file, "create_repository_window",
+			     NULL);
+/*  no signals to connect -> comment out */
+/*     glade_xml_signal_autoconnect (detail->xml); */
+    cr->window = gtkpod_xml_get_widget (cr->xml,
+					"create_repository_window");
+
+    g_return_if_fail (cr->window);
+
+    /* Window control */
+    g_signal_connect (GET_WIDGET ("cancel_button"), "clicked",
+		      G_CALLBACK (create_cancel_clicked), cr);
+
+    g_signal_connect (GET_WIDGET ("ok_button"), "clicked",
+		      G_CALLBACK (create_ok_clicked), cr);
+
+    g_signal_connect (createrep->window, "delete_event",
+		      G_CALLBACK (create_delete_event), cr);
+
+
+    /* Combo callback */
+    g_signal_connect (GET_WIDGET (REPOSITORY_TYPE_COMBO), "changed",
+		      G_CALLBACK (repository_type_changed), cr);
+
+    /* Button callbacks */
+    g_signal_connect (GET_WIDGET (MOUNTPOINT_BUTTON), "clicked",
+		      G_CALLBACK (cr_mountpoint_button_clicked), cr);
+
+    g_signal_connect (GET_WIDGET (BACKUP_BUTTON), "clicked",
+		      G_CALLBACK (cr_backup_button_clicked), cr);
+
+    g_signal_connect (GET_WIDGET (LOCAL_PATH_BUTTON), "clicked",
+		      G_CALLBACK (cr_local_path_button_clicked), cr);
+
+    /* Setup model number combo */
+    cb = GTK_COMBO_BOX (GET_WIDGET (IPOD_MODEL_COMBO));
+    gp_init_model_number_combo (cb);
+    gtk_entry_set_text (GTK_ENTRY (GET_WIDGET (IPOD_MODEL_ENTRY)),
+			gettext (SELECT_OR_ENTER_YOUR_MODEL));
+
+    /* Set initial repository type */
+    gtk_combo_box_set_active (
+	GTK_COMBO_BOX (GET_WIDGET (REPOSITORY_TYPE_COMBO)),
+	REPOSITORY_TYPE_IPOD);
+
+    /* Set before/after combo */
+    gtk_combo_box_set_active (
+	GTK_COMBO_BOX (GET_WIDGET (INSERT_BEFORE_AFTER_COMBO)),
+	INSERT_AFTER);
+
+    /* Set up repository combo */
+    set_repository_combo (GTK_COMBO_BOX (GET_WIDGET (REPOSITORY_COMBO)));
+    gtk_combo_box_set_active (
+	GTK_COMBO_BOX (GET_WIDGET (REPOSITORY_COMBO)),
+	0);
+
+    /* Set default repository name */
+    gtk_entry_set_text (GTK_ENTRY (GET_WIDGET (REPOSITORY_NAME_ENTRY)),
+			_("New Repository"));
+
+    /* Set initial mountpoint */
+    str = prefs_get_string ("initial_mountpoint");
+    gtk_entry_set_text (GTK_ENTRY (GET_WIDGET (MOUNTPOINT_ENTRY)),
+			str);
+    g_free (str);
+
+    buf1 = prefs_get_cfgdir ();
+    g_return_if_fail (buf1);
+    /* Set initial backup path */
+    buf2 = g_strdup_printf ("backupDB_%d",
+			    g_list_length (itdbs_head->itdbs));
+    str = g_build_filename (buf1, buf2, NULL);
+    gtk_entry_set_text (GTK_ENTRY (GET_WIDGET (BACKUP_ENTRY)), str);
+    g_free (str);
+    g_free (buf2);
+
+    /* Set local repository file */
+    buf2 = g_strdup_printf ("local_%d.itdb",
+			    g_list_length (itdbs_head->itdbs));
+    str = g_build_filename (buf1, buf2, NULL);
+    gtk_entry_set_text (GTK_ENTRY (GET_WIDGET (LOCAL_PATH_ENTRY)), str);
+    g_free (str);
+    g_free (buf2);
+    g_free (buf1);
+}

Added: gtkpod/branches/upstream/current/src/repository.h
===================================================================
--- gtkpod/branches/upstream/current/src/repository.h	                        (rev 0)
+++ gtkpod/branches/upstream/current/src/repository.h	2006-09-30 00:00:17 UTC (rev 139)
@@ -0,0 +1,46 @@
+/* Time-stamp: <2006-05-15 21:59:36 jcs>
+|
+|  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
+|  Part of the gtkpod project.
+| 
+|  URL: http://www.gtkpod.org/
+|  URL: http://gtkpod.sourceforge.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; either version 2 of the License, or
+|  (at your option) any later version.
+| 
+|  This program is distributed in the hope that it will be useful,
+|  but WITHOUT ANY WARRANTY; without even the implied warranty of
+|  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+|  GNU General Public License for more details.
+| 
+|  You should have received a copy of the GNU General Public License
+|  along with this program; if not, write to the Free Software
+|  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+| 
+|  iTunes and iPod are trademarks of Apple
+| 
+|  This product is not supported/written/published by Apple!
+|
+|  $Id: repository.h,v 1.2 2006/05/15 15:43:06 jcsjcs Exp $
+*/
+
+#ifndef __REPOSITORY_H__
+#define __REPOSITORY_H__
+
+#ifdef HAVE_CONFIG_H
+#  include <config.h>
+#endif
+ 
+#include <gtk/gtk.h>
+#include "itdb.h"
+
+
+
+/* repository window */
+void repository_edit (iTunesDB *itdb, Playlist *playlist);
+void repository_update_default_sizes (void);
+/*void repository_remove_playlist (Playlist *playlist);*/
+#endif

Added: gtkpod/branches/upstream/current/src/syncdir.c
===================================================================
--- gtkpod/branches/upstream/current/src/syncdir.c	                        (rev 0)
+++ gtkpod/branches/upstream/current/src/syncdir.c	2006-09-30 00:00:17 UTC (rev 139)
@@ -0,0 +1,766 @@
+/* Time-stamp: <2006-09-24 15:25:27 jcs>
+|
+|  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
+|  Part of the gtkpod project.
+| 
+|  URL: http://www.gtkpod.org/
+|  URL: http://gtkpod.sourceforge.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; either version 2 of the License, or
+|  (at your option) any later version.
+| 
+|  This program is distributed in the hope that it will be useful,
+|  but WITHOUT ANY WARRANTY; without even the implied warranty of
+|  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+|  GNU General Public License for more details.
+| 
+|  You should have received a copy of the GNU General Public License
+|  along with this program; if not, write to the Free Software
+|  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+| 
+|  iTunes and iPod are trademarks of Apple
+| 
+|  This product is not supported/written/published by Apple!
+|
+|  $Id: syncdir.c,v 1.7 2006/09/24 06:42:52 jcsjcs Exp $
+*/
+
+/* This file provides functions for syncing a directory or directories
+ * with a playlist */
+
+#include <libintl.h>
+#include <string.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+#include "display_itdb.h"
+#include "file.h"
+#include "info.h"
+#include "misc.h"
+#include "misc_track.h"
+#include "prefs.h"
+#include "syncdir.h"
+
+
+struct add_files_data
+{
+    Playlist *playlist;
+    GList    **tracks_updated;
+};
+
+
+/**
+ * confirm_sync_dirs:
+ *
+ * @dirs_hash: hash table containing the directory names
+ * @key_sync_confirm_dirs: preference key to specify whether or not
+ *            the list of directories should be confirmed. The
+ *            confirmation dialog may change the value of this prefs
+ *            entry. If NULL confirmation takes place.
+ *
+ * Have the user confirm which directories should be included into the
+ * confirmation process.
+ *
+ * Return value: FALSE: user aborted. TRUE: otherwise. @dirs_hash will
+ * be adjusted to reflect the selected directories.
+ */
+static gboolean confirm_sync_dirs (GHashTable *dirs_hash,
+				   const gchar *key_sync_confirm_dirs)
+{
+    g_return_val_if_fail (dirs_hash, FALSE);
+
+    if (key_sync_confirm_dirs && !prefs_get_int (key_sync_confirm_dirs))
+	return TRUE;
+
+    /* FIXME: implement confirmation (doesn't strike me as a major
+     * feature -- feel free to contribute)
+     *
+     * The idea would be to have the user check/uncheck each of the
+     * individual directories. @dirs_hash will be adjusted to reflect
+     * the selected directories.
+     */
+    return TRUE;
+}
+
+
+/**
+ * confirm_delete_tracks:
+ *
+ * @tracks: GList with tracks that are supposed to be removed from the
+ *          iPod or the local repository.
+ * @key_sync_confirm_delete: preference key to specify whether or not
+ *          the removal of tracks should be confirmed. The
+ *          confirmation dialog may change the value of this prefs
+ *          entry. If NULL confirmation takes place.
+ *
+ * Return value: TRUE: it's OK to remove the tracks. FALSE: it's not
+ *               OK to remove the tracks. TRUE is also given if no
+ *               tracks are present, @key_sync_confirm_delete is NULL
+ *               or it's setting is 'FALSE' (0).
+ */
+
+static gboolean confirm_delete_tracks (GList *tracks,
+				       const gchar *key_sync_confirm_delete)
+{
+    GtkResponseType response;
+    struct DeleteData dd;
+    gchar *label, *title;
+    GString *string;
+    iTunesDB *itdb;
+    Track *tr;
+
+    if (tracks == NULL)
+	return TRUE;
+
+    if (key_sync_confirm_delete &&
+	!prefs_get_int (key_sync_confirm_delete))
+	return TRUE;
+
+    tr = g_list_nth_data (tracks, 0);
+    g_return_val_if_fail (tr, FALSE);
+    itdb = tr->itdb;
+    g_return_val_if_fail (itdb, FALSE);
+
+    dd.itdb = itdb;
+    dd.pl = NULL;
+    dd.tracks = tracks;
+    if (itdb->usertype & GP_ITDB_TYPE_IPOD)
+	dd.deleteaction = DELETE_ACTION_IPOD;
+    if (itdb->usertype & GP_ITDB_TYPE_LOCAL)
+	dd.deleteaction = DELETE_ACTION_DATABASE;
+
+    delete_populate_settings (&dd,
+			      &label, &title,
+			      NULL, NULL,
+			      &string);
+
+    response = gtkpod_confirmation (
+	-1,                       /* gint id, */
+	TRUE,                     /* gboolean modal, */
+	title,                    /* title */
+	label,                    /* label */
+	string->str,              /* scrolled text */
+	NULL, 0, NULL,            /* option 1 */
+	NULL, 0, NULL,            /* option 2 */
+	TRUE,                     /* gboolean confirm_again, */
+	key_sync_confirm_delete,  /* ConfHandlerOpt confirm_again_key,*/
+	CONF_NULL_HANDLER,        /* ConfHandler ok_handler,*/
+	NULL,                     /* don't show "Apply" button */
+	CONF_NULL_HANDLER,        /* cancel_handler,*/
+	NULL,                     /* gpointer user_data1,*/
+	NULL);                    /* gpointer user_data2,*/
+
+
+    g_free (label);
+    g_free (title);
+    g_string_free (string, TRUE);
+
+    if (response == GTK_RESPONSE_OK)
+    {
+	/* it's OK to remove the tracks */
+	return TRUE;
+    }
+    else
+    {
+	/* better not delete the tracks */
+	return FALSE;
+    }
+}
+
+
+/* Used by sync_show_summary() */
+static void sync_add_tracks (GString *str,
+			     GList *tracks, const gchar *title)
+{
+    GList *gl;
+
+    g_return_if_fail (str);
+    g_return_if_fail (title);
+
+    if (tracks)
+    {
+	g_string_append (str, title);
+
+	for (gl=tracks; gl; gl=gl->next)
+	{
+	    gchar *buf;
+	    Track *tr = gl->data;
+	    g_return_if_fail (tr);
+
+	    buf = get_track_info (tr, FALSE);
+	    g_string_append_printf (str, "%s\n", buf);
+	    g_free (buf);
+	}
+	g_string_append_printf (str, "\n\n");
+    }
+}
+
+
+
+/**
+ * sync_show_summary:
+ *
+ * @key_sync_show_summary: preference key to specify whether or not a
+ *          summary should be shown or not. If NULL, the summary is
+ *          shown. This key may be changed by the confirmation dialog.
+ * @playlist: playlist where are syncing with.
+ * @tracks_to_delete_from_ipod: GList with tracks to be deleted from
+ *          the iPod or local repository.
+ * @tracks_to_delete_from_playlist: GList with tracks to be deleted
+ *          from @playlist.
+ * @tracks_updated: GList with tracks that have been updated.
+ */
+static void show_sync_summary (const gchar *key_sync_show_summary,
+			       Playlist *playlist,
+			       GList *tracks_to_delete_from_ipod,
+			       GList *tracks_to_delete_from_playlist,
+			       GList *tracks_updated)
+{
+    GString *summary;
+    Playlist *mpl;
+    gint no_length;
+
+    g_return_if_fail (playlist);
+    g_return_if_fail (playlist->itdb);
+
+    if (key_sync_show_summary && !prefs_get_int (key_sync_show_summary))
+	return;
+
+    summary = g_string_sized_new (2000);
+
+    /* mpl->name is the repository's name */
+    mpl = itdb_playlist_mpl (playlist->itdb);
+    g_return_if_fail (mpl);
+    g_string_append_printf (summary,
+			    _("Sync summary for %s/%s\n"),
+			    mpl->name, playlist->name);
+
+    /* used to check whether data was added or not */
+    no_length = strlen (summary->str);
+
+    sync_add_tracks (
+	summary,
+	tracks_updated,
+	ngettext ("The following track has been added or updated:\n",
+		  "The following tracks have been added or updated:\n",
+		  g_list_length (tracks_updated)));
+
+    if (playlist->itdb->usertype & GP_ITDB_TYPE_IPOD)
+    {
+	sync_add_tracks (
+	    summary,
+	    tracks_to_delete_from_ipod,
+	    ngettext ("The following track has been completely removed from the iPod:\n",
+		      "The following tracks have been completely removed from the iPod:\n",
+		      g_list_length (tracks_to_delete_from_ipod)));
+    }
+    else
+    {
+	sync_add_tracks (
+	    summary,
+	    tracks_to_delete_from_ipod,
+	    ngettext ("The following track has been removed from the repository:\n",
+		      "The following tracks have been removed from the repository:\n",
+		      g_list_length (tracks_to_delete_from_ipod)));
+    }
+
+    sync_add_tracks (summary,
+		     tracks_to_delete_from_playlist,
+		     ngettext ("The following track has been removed from the playlist:\n",
+			       "The following tracks have been removed from the playlist:\n",
+			       g_list_length (tracks_to_delete_from_playlist)));
+
+    if (strlen (summary->str) == no_length)
+    {
+	g_string_append (summary, _("Nothing was changed.\n"));
+    }
+
+    gtkpod_confirmation (CONF_ID_SYNC_SUMMARY,
+			 FALSE,
+			 _("Sync summary"),
+			 NULL,
+			 summary->str,
+			 NULL, 0, NULL,
+			 NULL, 0, NULL,
+			 TRUE,
+			 key_sync_show_summary,
+			 CONF_NULL_HANDLER, NULL, NULL,
+			 NULL, NULL);
+
+    g_string_free (summary, TRUE);
+}
+
+
+
+
+/* Callback for adding tracks (makes sure track isn't added to playlist
+ * again if it already exists */
+static void sync_addtrackfunc (Playlist *plitem, Track *track, gpointer data)
+{
+    g_return_if_fail (plitem);
+    g_return_if_fail (track);
+
+    /* only add if @track isn't already a member of the current
+       playlist */
+    if (!itdb_playlist_contains_track (plitem, track))
+	gp_playlist_add_track (plitem, track, TRUE);
+}
+
+
+/**
+ * add_files:
+ *
+ * add all music/video files to the playlist @userdata->playlist. 
+ * updated/newly added tracks are appended to @userdata->tracks_updated.
+ */
+static void add_files (gpointer key, gpointer value, gpointer user_data)
+{
+    struct add_files_data *afd = user_data;
+    Playlist *pl;
+    gchar *dirname = key;
+
+    g_return_if_fail (key);
+    g_return_if_fail (afd);
+    g_return_if_fail (afd->playlist);
+    g_return_if_fail (afd->tracks_updated);
+    pl = afd->playlist;
+
+    if (g_file_test (dirname, G_FILE_TEST_IS_DIR))
+    {
+	GDir *dir = g_dir_open (dirname, 0, NULL);
+	if (dir != NULL)
+	{
+	    G_CONST_RETURN gchar *next;
+	    while ((next = g_dir_read_name (dir)))
+	    {
+		gchar *filename = g_build_filename (dirname, next, NULL);
+		FileType filetype = determine_file_type (filename);
+		gboolean updated = FALSE;
+		Track *tr=NULL;
+
+		switch (filetype)
+		{
+		case FILE_TYPE_UNKNOWN:
+		case FILE_TYPE_DIRECTORY:
+		case FILE_TYPE_IMAGE:
+		case FILE_TYPE_M3U:
+		case FILE_TYPE_PLS:
+		    /* ignore non-music/video files */
+		    break;
+		case FILE_TYPE_MP3:
+		case FILE_TYPE_M4A:
+		case FILE_TYPE_M4P:
+		case FILE_TYPE_M4B:
+		case FILE_TYPE_WAV:
+		case FILE_TYPE_M4V:
+		case FILE_TYPE_MP4:
+		case FILE_TYPE_MOV:
+		case FILE_TYPE_MPG:
+		    tr = gp_track_by_filename (pl->itdb, filename);
+		    if (tr)
+		    {   /* track is known -> add to playlist if not
+			 * already present and only update if mtime or
+			 * filesize is different */
+			ExtraTrackData *etr = tr->userdata;
+			struct stat filestat;
+			g_return_if_fail (etr);
+
+			if (!itdb_playlist_contains_track (pl, tr))
+			{
+			    gp_playlist_add_track (pl, tr, TRUE);
+			    updated = TRUE;
+			}
+
+			stat (filename, &filestat);
+/*
+printf ("%ld %ld (%s)\n, %ld %d\n",
+	filestat.st_mtime, etr->mtime,
+	filename,
+	filestat.st_size, tr->size);
+*/
+			if ((filestat.st_mtime != etr->mtime) ||
+			    (filestat.st_size != tr->size))
+			{
+			    update_track_from_file (pl->itdb, tr);
+			    updated = TRUE;
+			}
+		    }
+		    else
+		    {   /* track is not known -- at least not by it's
+			 * filename -> add to playlist using the
+			 * standard function. Duplicate adding is
+			 * avoided by an addtrack function checking
+			 * for duplication */
+			add_track_by_filename (pl->itdb, filename,
+					       pl, FALSE,
+					       sync_addtrackfunc, NULL);
+			tr = gp_track_by_filename (pl->itdb, filename);
+			updated = TRUE;
+		    }
+		    break;
+		}
+		if (tr && updated)
+		{
+		    *afd->tracks_updated =
+			g_list_append (*afd->tracks_updated, tr);
+		}
+		g_free (filename);
+	    }
+	} 
+	g_dir_close (dir);
+    }
+}
+
+
+
+
+/**
+ * sync_playlist:
+ *
+ * @playlist: playlist to sync with contents on hard disk
+ * @syncdir:  directory to sync with. If @syncdir is NULL, a list of
+ *            directories is created from all the filenames of the
+ *            member tracks
+ * @key_sync_confirm_dirs: preference key to specify whether or not
+ *            the list of directories should be confirmed. The
+ *            confirmation dialog may change the value of this prefs
+ *            entry. If NULL, @sync_confirm_dirs decides whether
+ *            confirmation takes place or not.
+ *            FIXME: not implemented at present.
+ * @sync_confirm_dirs: see under @key_sync_confirm_dirs.
+ * @key_sync_delete_tracks: preference key to specify whether or not
+ *            tracks no longer present in the directory list should be
+ *            removed from the iPod/database or not. Normally tracks
+ *            are only removed from the current playlist. If this key's
+ *            value is set to TRUE (1), they will be removed from the
+ *            iPod /database completely, if they are not a member of
+ *            other playlists. Note: to remove tracks from the MPL,
+ *            this has to be TRUE.
+ *            If NULL, @sync_delete_tracks will determine whether
+ *            tracks are removed or not. Also, if @playlist is the
+ *            MPL, tracks will be removed irrespective of this key's
+ *            value. 
+ * @sync_delete_tracks: see under @key_sync_delete_tracks.
+ * @key_sync_confirm_delete: preference key to specify whether or not
+ *            the removal of tracks should be confirmed. The
+ *            confirmation dialog may change the value of this prefs
+ *            entry. If NULL, @sync_confirm_delete will determine
+ *            whether or not confirmation takes place.
+ * @sync_confirm_delete: see under @key_sync_confirm_delete
+ * @key_sync_show_summary: preference key to specify whether or not a
+ *            summary of removed and newly added or updated tracks
+ *            should be displayed. If NULL, @sync_show_shummary will
+ *            determine whether or not a summary is displayed.
+ * @sync_show_shummary: see under @key_sync_show_shummary
+ *
+ * Return value: none, but will give status information via the
+ * statusbar and information windows.
+ **/
+void sync_playlist (Playlist *playlist,
+		    const gchar *syncdir,
+		    const gchar *key_sync_confirm_dirs,
+		    gboolean sync_confirm_dirs,
+		    const gchar *key_sync_delete_tracks,
+		    gboolean sync_delete_tracks,
+		    const gchar *key_sync_confirm_delete,
+		    gboolean sync_confirm_delete,
+		    const gchar *key_sync_show_summary,
+		    gboolean sync_show_summary)
+{
+    GHashTable *dirs_hash;
+    gboolean delete_tracks, is_mpl;
+    guint64 current_time;
+    GList *tracks_to_delete_from_ipod = NULL;
+    GList *tracks_to_delete_from_playlist = NULL;
+    GList *tracks_updated = NULL;
+    struct add_files_data afd;
+    GList *gl;
+
+    g_return_if_fail (playlist);
+
+    /* Create a hash to keep the directory names ("key", and "value"
+       to be freed with g_free). key is dirname in local encoding,
+       value is dirname in utf8, if available */
+    dirs_hash = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
+
+    /* If @syncdir is not NULL, put @syndir into the hash
+       table. Otherwise put the dirs of all tracks in @playlist into
+       the table. */
+
+    if (syncdir)
+    {
+	/* make sure the directory name does not end in '/' -- the
+	   code below does not seem to like this */
+	gint len = strlen (syncdir);
+	gchar *dir = g_strdup (syncdir);
+	if (len > 1)
+	{
+	    if (G_IS_DIR_SEPARATOR (dir[len-1]))
+	    {
+		dir[len-1] = 0;
+	    }
+	}
+	g_hash_table_insert (dirs_hash, dir, NULL);
+    }
+    else
+    {
+	for (gl = playlist->members; gl; gl=gl->next)
+	{
+	    ExtraTrackData *etr;
+	    Track *track = gl->data;
+	    g_return_if_fail (track);
+	    etr = track->userdata;
+	    g_return_if_fail (etr);
+
+	    if (etr->pc_path_locale && *etr->pc_path_locale)
+	    {
+		gchar *dirname_local;
+
+		dirname_local = g_path_get_dirname (etr->pc_path_locale);
+		if (etr->pc_path_utf8 && *etr->pc_path_utf8)
+		{
+		    g_hash_table_insert (
+			dirs_hash,
+			dirname_local,
+			g_path_get_dirname (etr->pc_path_utf8));
+		}
+		else
+		{   /* no utf8 -- make sure we don't replace a dir
+		     * entry that had the utf8 data set */
+		    if (!g_hash_table_lookup (dirs_hash, dirname_local))
+		    {
+			g_hash_table_insert (dirs_hash,
+					     dirname_local, NULL);
+		    }
+		    else
+		    {
+			g_free (dirname_local);
+		    }
+		}
+	    }
+	}
+    }
+
+    /* Confirm directories */
+    if (key_sync_confirm_dirs || sync_confirm_dirs)
+    {
+	if (!confirm_sync_dirs (dirs_hash, key_sync_confirm_dirs))
+	{   /* aborted */
+	    g_hash_table_destroy (dirs_hash);
+	    return;
+	}
+    }
+
+    /* current_time can be used to recognize newly added/updated
+       tracks */
+    current_time = itdb_time_get_mac_time ();
+
+    /* Add all files in all directories entered into dirs_hash */
+    afd.playlist = playlist;
+    afd.tracks_updated = &tracks_updated;
+    g_hash_table_foreach (dirs_hash, add_files, &afd);
+    /* Remove updated and duplicate list so it won't pop up at a later
+       time */
+    display_updated ((void *)-1, NULL);
+    display_non_updated ((void *)-1, NULL);
+    gp_duplicate_remove (NULL, (void *)-1);
+
+    /* Should tracks be deleted that were not present in the
+     * directories? */
+    if (key_sync_delete_tracks == NULL)
+    {
+	delete_tracks = TRUE;
+    }
+    else
+    {
+	delete_tracks = prefs_get_int (key_sync_delete_tracks);
+    }
+    /* Is playlist the MPL? */
+    is_mpl = itdb_playlist_is_mpl (playlist);
+
+    /* Identify all tracks in playlist not being located in one of the
+       specified dirs, or no longer existing. */
+    for (gl=playlist->members; gl; gl=gl->next)
+    {
+	ExtraTrackData *etr;
+	gboolean remove;
+
+	Track *tr = gl->data;
+	g_return_if_fail (tr);
+	etr = tr->userdata;
+	g_return_if_fail (etr);
+
+	remove = FALSE;
+	if (etr->pc_path_locale && *etr->pc_path_locale)
+	{
+	    gchar *dirname_local;
+
+	    dirname_local = g_path_get_dirname (etr->pc_path_locale);
+	    if (!g_hash_table_lookup_extended (dirs_hash, dirname_local,
+					       NULL, NULL))
+	    {   /* file is not in one of the specified directories */
+		remove = TRUE;
+	    }
+	    else
+	    {   /* check if file exists */
+		if (g_file_test (etr->pc_path_locale,
+				 G_FILE_TEST_EXISTS) == FALSE)
+		{   /* no -- remove */
+		    remove = TRUE;
+		}
+	    }
+	}
+
+	if (remove)
+	{   /* decide whether track needs to be removed from the iPod
+	     * (only member of this playlist) or only from this
+	     * playlist (if delete_tracks is not set, no tracks are
+	     * removed from the MPL) */
+	    if (delete_tracks &&
+		(is_mpl || (itdb_playlist_contain_track_number (tr)==1)))
+	    {
+		tracks_to_delete_from_ipod =
+		    g_list_append (tracks_to_delete_from_ipod, tr);
+	    }
+	    else
+	    {
+		if (!is_mpl)
+		{
+		    tracks_to_delete_from_playlist =
+			g_list_append (tracks_to_delete_from_playlist, tr);
+		}
+	    }
+	}
+    }
+
+
+    if (tracks_to_delete_from_ipod &&
+	(key_sync_confirm_delete || sync_confirm_delete) &&
+	(confirm_delete_tracks (tracks_to_delete_from_ipod,
+				key_sync_confirm_delete) == FALSE))
+    {   /* User doesn't want us to remove those tracks from the
+	 * iPod. We'll therefore just remove them from the playlist
+	 * (if playlist is the MPL, don't remove at all) */
+	if (!is_mpl)
+	{
+	    tracks_to_delete_from_playlist = g_list_concat (
+		tracks_to_delete_from_playlist,
+		tracks_to_delete_from_ipod);
+	}
+	else
+	{
+	    g_list_free (tracks_to_delete_from_ipod);
+	}
+	tracks_to_delete_from_ipod = NULL;
+    }
+
+
+    if (key_sync_show_summary || sync_show_summary)
+    {
+	show_sync_summary (key_sync_show_summary,
+			   playlist,
+			   tracks_to_delete_from_ipod,
+			   tracks_to_delete_from_playlist,
+			   tracks_updated);
+    }
+
+    /* Remove completely */
+    for (gl=tracks_to_delete_from_ipod; gl; gl=gl->next)
+    {
+	Track *tr = gl->data;
+	g_return_if_fail (tr);
+
+	if (tr->itdb->usertype & GP_ITDB_TYPE_IPOD)
+	    gp_playlist_remove_track (NULL, tr, DELETE_ACTION_IPOD);
+	else if (tr->itdb->usertype & GP_ITDB_TYPE_LOCAL)
+	    gp_playlist_remove_track (NULL, tr, DELETE_ACTION_DATABASE);
+    }
+
+    /* Remove from playlist */
+    for (gl=tracks_to_delete_from_playlist; gl; gl=gl->next)
+    {
+	Track *tr = gl->data;
+	g_return_if_fail (tr);
+
+	gp_playlist_remove_track (playlist, tr, DELETE_ACTION_PLAYLIST);
+    }
+
+    /* Was any data changed? */
+    if (tracks_to_delete_from_ipod ||
+	tracks_to_delete_from_playlist ||
+	tracks_updated)
+    {
+	data_changed (playlist->itdb);
+	gtkpod_tracks_statusbar_update ();
+    }
+
+    g_list_free (tracks_to_delete_from_ipod);
+    g_list_free (tracks_to_delete_from_playlist);
+    g_list_free (tracks_updated);
+}
+
+
+/**
+ * sync_all_playlists:
+ *
+ * @itdb: repository whose playlists are to be updated
+ * 
+ * Will update all playlists in @itdb according to options set. The
+ * following pref subkeys are relevant:
+ * 
+ * sync_confirm_dirs
+ * sync_delete_tracks
+ * sync_confirm_delete
+ * sync_show_summary
+ */
+
+void sync_all_playlists (iTunesDB *itdb)
+{
+    gint index;
+    GList *gl;
+
+    g_return_if_fail (itdb);
+
+    index = get_itdb_index (itdb);
+
+    for (gl=itdb->playlists; gl; gl=gl->next)
+    {
+	gint syncmode;
+	Playlist *pl = gl->data;
+	g_return_if_fail (pl);
+
+	syncmode = get_playlist_prefs_int (pl, KEY_SYNCMODE);
+	if (syncmode != SYNC_PLAYLIST_MODE_NONE)
+	{
+	    gchar *key_sync_confirm_dirs =
+		get_playlist_prefs_key (index, pl, KEY_SYNC_CONFIRM_DIRS);
+	    gchar *key_sync_delete_tracks =
+		get_playlist_prefs_key (index, pl, KEY_SYNC_DELETE_TRACKS);
+	    gchar *key_sync_confirm_delete =
+		get_playlist_prefs_key (index, pl, KEY_SYNC_CONFIRM_DELETE);
+	    gchar *key_sync_show_summary =
+		get_playlist_prefs_key (index, pl, KEY_SYNC_SHOW_SUMMARY);
+	    gchar *syncdir = NULL;
+
+	    if (syncmode == SYNC_PLAYLIST_MODE_MANUAL)
+	    {
+		syncdir = get_playlist_prefs_string (pl,
+						     KEY_MANUAL_SYNCDIR);
+	    }
+
+	    sync_playlist (pl, syncdir,
+			   key_sync_confirm_dirs, 0,
+			   key_sync_delete_tracks, 0,
+			   key_sync_confirm_delete, 0,
+			   key_sync_show_summary, 0);
+
+	    g_free (key_sync_confirm_dirs);
+	    g_free (key_sync_delete_tracks);
+	    g_free (key_sync_confirm_delete);
+	    g_free (key_sync_show_summary);
+	    g_free (syncdir);
+	}
+    }
+}

Added: gtkpod/branches/upstream/current/src/syncdir.h
===================================================================
--- gtkpod/branches/upstream/current/src/syncdir.h	                        (rev 0)
+++ gtkpod/branches/upstream/current/src/syncdir.h	2006-09-30 00:00:17 UTC (rev 139)
@@ -0,0 +1,64 @@
+/* Time-stamp: <2006-06-15 00:55:28 jcs>
+|
+|  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
+|  Part of the gtkpod project.
+| 
+|  URL: http://www.gtkpod.org/
+|  URL: http://gtkpod.sourceforge.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; either version 2 of the License, or
+|  (at your option) any later version.
+| 
+|  This program is distributed in the hope that it will be useful,
+|  but WITHOUT ANY WARRANTY; without even the implied warranty of
+|  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+|  GNU General Public License for more details.
+| 
+|  You should have received a copy of the GNU General Public License
+|  along with this program; if not, write to the Free Software
+|  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+| 
+|  iTunes and iPod are trademarks of Apple
+| 
+|  This product is not supported/written/published by Apple!
+|
+|  $Id: syncdir.h,v 1.4 2006/06/14 16:12:10 jcsjcs Exp $
+*/
+
+#ifndef __SYNCDIR_H__
+#define __SYNCDIR_H__
+
+#ifdef HAVE_CONFIG_H
+#  include <config.h>
+#endif
+ 
+#include <gtk/gtk.h>
+#include "itdb.h"
+
+
+enum
+{
+    /* no auto-sync */
+    SYNC_PLAYLIST_MODE_NONE = 0,
+    /* use dirs from filenames in playlist */
+    SYNC_PLAYLIST_MODE_AUTOMATIC = 1,
+    /* use specified dir */
+    SYNC_PLAYLIST_MODE_MANUAL = 2
+};
+
+
+void sync_playlist (Playlist *playlist,
+		    const gchar *syncdir,
+		    const gchar *key_sync_confirm_dirs,
+		    gboolean sync_confirm_dirs,
+		    const gchar *key_sync_delete_tracks,
+		    gboolean sync_delete_tracks,
+		    const gchar *key_sync_confirm_delete,
+		    gboolean sync_confirm_delete,
+		    const gchar *key_sync_show_summary,
+		    gboolean sync_show_summary);
+
+void sync_all_playlists (iTunesDB *itdb);
+#endif

Modified: gtkpod/branches/upstream/current/src/tools.c
===================================================================
--- gtkpod/branches/upstream/current/src/tools.c	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/src/tools.c	2006-09-30 00:00:17 UTC (rev 139)
@@ -1,4 +1,4 @@
-/* Time-stamp: <2005-07-16 01:08:24 jcs>
+/* Time-stamp: <2006-06-24 01:38:20 jcs>
 |
 |  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
 |  Part of the gtkpod project.
@@ -24,7 +24,7 @@
 |
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: tools.c,v 1.42 2005/10/18 14:29:55 jcsjcs Exp $
+|  $Id: tools.c,v 1.49 2006/06/23 16:46:12 jcsjcs Exp $
 */
 
 #ifdef HAVE_CONFIG_H
@@ -32,16 +32,20 @@
 #endif
 
 
-#include <sys/wait.h>
-#include <string.h>
-#include <unistd.h>
-#include <errno.h>
 #include "info.h"
 #include "misc.h"
+#include "misc_track.h"
 #include "mp3file.h"
+#include "prefs.h"
 #include "tools.h"
-#include "prefs.h"
+#include <errno.h>
+#include <fcntl.h>
 #include <stdlib.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <sys/wait.h>
+#include <unistd.h>
 
 
 /*pipe's definition*/
@@ -67,35 +71,241 @@
 static gboolean mutex_data = FALSE;
 #endif
 
-/* will get the volume either from mp3gain or from LAME's ReplayGain */
-static gint32 nm_get_soundcheck (Track *track)
+
+/* Run @command on @track_path.
+ *
+ * Command may include options, like "mp3gain -q -k %s"
+ *
+ * %s is replaced by @track_path if present, otherwise @track_path is
+ * added at the end.
+ *
+ * Return value: TRUE if the command ran successfully, FALSE if any
+ * error occured.
+ */
+static gboolean run_exec_on_track (const gchar *commandline,
+				   const gchar *track_path)
 {
-    ExtraTrackData *etr;
-    gint32 sc = TRACKVOLERROR;
+    gchar *command_full_path = NULL;
+    gchar *command = NULL;
+    gchar *command_base = NULL;
+    const gchar *nextarg;
+    gboolean success = FALSE;
+    gboolean percs = FALSE;
+    GPtrArray *args;
 
-    g_return_val_if_fail (track, sc);
-    etr = track->userdata;
-    g_return_val_if_fail (etr, sc);
+    int status, fdnull, ret;
+    pid_t tpid;
 
-    if (!etr->radio_gain_set)
-	get_gain (track);
-    if (etr->radio_gain_set) 
-	sc = replaygain_to_soundcheck (etr->radio_gain);
-    return sc;
+    g_return_val_if_fail (commandline, FALSE);
+    g_return_val_if_fail (track_path, FALSE);
+
+
+    /* skip whitespace */
+    while (g_ascii_isspace (*commandline))  ++commandline;
+
+    /* find the command itself -- separated by ' ' */
+    nextarg = strchr (commandline, ' ');
+    if (!nextarg)
+    {
+	nextarg = commandline + strlen (commandline);
+    }
+
+    command = g_strndup (commandline, nextarg-commandline);
+
+    command_full_path = g_find_program_in_path (command);
+
+    if (!command_full_path)
+    {
+	gtkpod_warning (_("Could not find '%s'\n. Please specifiy the exact path in the Tools section of the preference dialog or install the programm if it is not installed on your system.\n\n"), command);
+	goto cleanup;
+    }
+
+    command_base = g_path_get_basename (command_full_path);
+
+    /* Create the command line to be used with execv(). */
+    args =  g_ptr_array_sized_new (strlen (commandline));
+    /* add the full path */
+    g_ptr_array_add (args, command_full_path);
+    /* add the basename */
+    g_ptr_array_add (args, command_base);
+    /* add the command line arguments */
+
+    commandline = nextarg;
+
+    /* skip whitespace */
+    while (g_ascii_isspace (*commandline))  ++commandline;
+
+    while (*commandline != 0)
+    {
+	const gchar *next;
+
+	next = strchr (commandline, ' ');
+	/* next argument is everything to the end */
+	if (!next)
+	    next = commandline + strlen (commandline);
+
+	if (strncmp (commandline, "%s", 2) == 0)
+	{   /* substitute %s with @track_path */
+	    g_ptr_array_add (args, g_strdup (track_path));
+	    percs = TRUE;
+	}
+	else
+	{
+	    g_ptr_array_add (args,
+			     g_strndup (commandline, next-commandline));
+	}
+
+	/* skip to next argument */
+	commandline = next;
+
+	/* skip whitespace */
+	while (g_ascii_isspace (*commandline))  ++commandline;
+    } 
+
+    /* Add @track_path if "%s" was not present */
+    if (!percs)
+	g_ptr_array_add (args, g_strdup (track_path));
+
+    /* need NULL pointer */
+    g_ptr_array_add (args, NULL);
+
+    tpid = fork ();
+
+    switch (tpid)
+    {
+    case 0: /* we are the child */
+    {
+	gchar **argv = (gchar **)args->pdata;
+#if 0
+	gchar **bufp = argv;
+	while (*bufp)	{ puts (*bufp); ++bufp;	}
+#endif
+	/* redirect output to /dev/null */
+	if ((fdnull = open("/dev/null", O_WRONLY | O_NDELAY)) != -1)
+	{
+	    dup2(fdnull, fileno(stdout));
+	}
+	execv(argv[0], &argv[1]);
+	exit(0);
+	break;
+    }
+    case -1: /* we are the parent, fork() failed  */
+	g_ptr_array_free (args, TRUE);
+	break;
+    default: /* we are the parent, everything's fine */
+	tpid = waitpid (tpid, &status, 0);
+	g_ptr_array_free (args, TRUE);
+	if (WIFEXITED(status))
+	    ret = WEXITSTATUS(status);
+	else
+	    ret = 2;
+	if (ret > 1)
+	{
+	    gtkpod_warning (_("Execution of '%s' failed.\n\n"),
+			    command_full_path);
+	}
+	else
+	{
+	    success = TRUE;
+	}
+	break;
+    }
+
+
+  cleanup:
+    g_free (command_full_path);
+    g_free (command);
+    g_free (command_base);
+ 
+    return success;
 }
 
 
 
+
+/* reread the soundcheck value from the file */
+static gboolean nm_get_soundcheck (Track *track)
+{
+    gboolean success = FALSE;
+    gchar *path;
+    gchar *commandline = NULL;
+
+    g_return_val_if_fail (track, FALSE);
+
+    if (read_soundcheck (track))
+	return TRUE;
+
+    path = get_file_name_from_source (track, SOURCE_PREFER_LOCAL);
+
+    if (path)
+    {
+	switch (determine_file_type (path))
+	{
+	case FILE_TYPE_MP3: 
+	    commandline = prefs_get_string ("path_mp3gain");
+	    if (!commandline)
+	    {
+		gtkpod_warning (
+		    _("Did not normalize '%s'. Set mp3gain path in the Tools section of the preferences.\n"), path);
+	    }
+	    break;
+	case FILE_TYPE_M4A:
+	case FILE_TYPE_M4P:
+	case FILE_TYPE_M4B:
+	    commandline = prefs_get_string ("path_aacgain");
+	    if (!commandline)
+	    {
+		gtkpod_warning (
+		    _("Did not normalize '%s'. Set aacgain path in the Tools section of the preferences.\n"), path);
+	    }
+	    break;
+	case FILE_TYPE_WAV: /* FIXME */
+	case FILE_TYPE_M4V:
+	case FILE_TYPE_MP4:
+	case FILE_TYPE_MOV:
+	case FILE_TYPE_MPG:
+	case FILE_TYPE_UNKNOWN:
+	    gtkpod_warning (
+		_("Normalization failed: file type not supported (%s).\n\n"),
+		path);
+	    break;
+	case FILE_TYPE_M3U: 
+	case FILE_TYPE_PLS: 
+	case FILE_TYPE_IMAGE: 
+	case FILE_TYPE_DIRECTORY:
+	    break;
+	}
+	if (commandline)
+	    success = run_exec_on_track (commandline, path);
+	g_free (path);
+    }
+    else
+    {
+	gchar *buf = get_track_info (track, FALSE);
+	gtkpod_warning (
+	    _("Normalization failed: file not available (%s).\n\n"),
+	    buf);
+	g_free (buf);
+    }
+
+    if (success)
+	return read_soundcheck (track);
+    else
+	return FALSE;
+}
+
+
+
 #ifdef G_THREADS_ENABLED
 /* Threaded getTrackGain*/
 static gpointer th_nm_get_soundcheck (gpointer track)
 {
-   gint32 gain=nm_get_soundcheck ((Track *)track);
+   gboolean success = nm_get_soundcheck ((Track *)track);
    g_mutex_lock (mutex);
    mutex_data = TRUE; /* signal that thread will end */
    g_cond_signal (cond);
    g_mutex_unlock (mutex);
-   return GUINT_TO_POINTER(gain);
+   return GUINT_TO_POINTER(success);
 }
 #endif
 
@@ -128,12 +338,13 @@
 void nm_tracks_list (GList *list)
 {
   gint count, succ_count, n, nrs;
-  gint32 new_soundcheck = 0;
+  guint32 old_soundcheck;
+  gboolean success;
   static gboolean abort;
   GtkWidget *dialog, *progress_bar, *label, *track_label;
   GtkWidget *image, *hbox;
   time_t diff, start, fullsecs, hrs, mins, secs;
-  gchar *buf, *progtext = NULL;
+  gchar *progtext = NULL;
 
 #ifdef G_THREADS_ENABLED
   GThread *thread = NULL;
@@ -211,23 +422,25 @@
   else
   {
       /* we need ***much*** longer timeout */
-      prefs_set_statusbar_timeout (30*STATUSBAR_TIMEOUT);
+      gtkpod_statusbar_timeout (30*STATUSBAR_TIMEOUT);
   }
   while (!abort &&  (list!=NULL))
   {
      Track  *track = list->data;
      gchar *label_buf = g_strdup_printf ("%d/%d", count, n);
-     gchar *sb_buf = g_strdup_printf (_("%s - %s"),
-				      track->artist, track->title);
 
      gtk_label_set_text (GTK_LABEL (track_label), label_buf);
-     gtkpod_statusbar_message(sb_buf);
+
+     gtkpod_statusbar_message (_("%s - %s"),
+			       track->artist, track->title);
      C_FREE (label_buf);
-     C_FREE (sb_buf);
 
      while (widgets_blocked && gtk_events_pending ())
 	 gtk_main_iteration ();
 
+     /* need to know so we can update the display when necessary */
+     old_soundcheck = track->soundcheck;
+
 #ifdef G_THREADS_ENABLED
      mutex_data = FALSE;
      thread = g_thread_create (th_nm_get_soundcheck, track, TRUE, NULL);
@@ -257,35 +470,32 @@
 	     g_cond_timed_wait (cond, mutex, &gtime);
 	 }
 	 while(!mutex_data);
-	 new_soundcheck = GPOINTER_TO_UINT(g_thread_join (thread));
+	 success = GPOINTER_TO_UINT(g_thread_join (thread));
 	 g_mutex_unlock (mutex);
      }
      else
      {
 	 g_warning ("Thread creation failed, falling back to default.\n");
-	 new_soundcheck = nm_get_soundcheck (track);
+	 success = nm_get_soundcheck (track);
      }
 #else
-     new_soundcheck = nm_get_soundcheck (track);
+     success = nm_get_soundcheck (track);
 #endif
 
      /*normalization part*/
-     if(new_soundcheck == TRACKVOLERROR)
+     if(!success)
      {
-	 gchar *path = get_file_name_verified (track);
-	 gchar *buf = g_strdup_printf (
+	 gchar *path = get_file_name_from_source (track, SOURCE_PREFER_LOCAL);
+	 gtkpod_warning (
 	     _("'%s-%s' (%s) could not be normalized.\n\n"),
 	     track->artist, track->title, path? path:"");
-	 gtkpod_warning (buf);
 	 g_free (path);
-	 g_free (buf);
      }
      else
      {
 	 ++succ_count;
-	 if(new_soundcheck != track->soundcheck)
+	 if(old_soundcheck != track->soundcheck)
 	 {
-	     track->soundcheck = new_soundcheck;
 	     pm_track_changed (track);
 	     data_changed (track->itdb);
 	 }
@@ -314,13 +524,11 @@
      list=g_list_next(list);
   } /*end while*/
 
-  prefs_set_statusbar_timeout (0);
+  gtkpod_statusbar_timeout (0);
 
-  buf = g_strdup_printf (ngettext ("Normalized %d of %d tracks.",
-				   "Normalized %d of %d tracks.", n),
-			 count, n);
-  gtkpod_statusbar_message(buf);
-  g_free (buf);
+  gtkpod_statusbar_message (ngettext ("Normalized %d of %d tracks.",
+				      "Normalized %d of %d tracks.", n),
+			    count, n);
 
   gtk_widget_destroy (dialog);
   release_widgets();
@@ -342,13 +550,22 @@
 } SyncType;
 
 
+/* FIXME: tools need to be defined for each itdb separately */
 /* replace %i in all strings of argv with prefs_get_ipod_mount() */
-static void tools_sync_replace_percent_i (gchar **argv)
+static void tools_sync_replace_percent_i (iTunesDB *itdb, gchar **argv)
 {
-    const gchar *ipod_mount = prefs_get_ipod_mount ();
-    gint ipod_mount_len = strlen (ipod_mount);
+    gchar *ipod_mount;
+    gint ipod_mount_len;
     gint offset = 0;
 
+    if (!itdb) return;
+
+    ipod_mount = get_itdb_prefs_string (itdb, "mountpoint");
+
+    if (!ipod_mount) ipod_mount = g_strdup ("");
+
+    ipod_mount_len = strlen (ipod_mount);
+
     while (argv && *argv)
     {
 	gchar *str = *argv;
@@ -374,12 +591,14 @@
 	    ++argv;
 	}
     }
+
+    g_free (ipod_mount);
 }
 
 
 /* execute the specified script, giving out error/status messages on
    the way */
-static gboolean tools_sync_script (SyncType type)
+static gboolean tools_sync_script (iTunesDB *itdb, SyncType type)
 {
     gchar *script=NULL;
     gchar *script_path, *buf;
@@ -392,13 +611,13 @@
     switch (type)
     {
     case SYNC_CONTACTS:
-	script = g_strdup (prefs_get_path (PATH_SYNC_CONTACTS));
+	script = get_itdb_prefs_string (itdb, "path_sync_contacts");
 	break;
     case SYNC_CALENDAR:
-	script = g_strdup (prefs_get_path (PATH_SYNC_CALENDAR));
+	script = get_itdb_prefs_string (itdb, "path_sync_calendar");
 	break;
     case SYNC_NOTES:
-	script = g_strdup (prefs_get_path (PATH_SYNC_NOTES));
+	script = get_itdb_prefs_string (itdb, "path_sync_notes");
 	break;
     default:
 	fprintf (stderr, "Programming error: tools_sync_script () called with %d\n", type);
@@ -417,7 +636,7 @@
 
     argv = g_strsplit (script, " ", -1);
 
-    tools_sync_replace_percent_i (argv);
+    tools_sync_replace_percent_i (itdb, argv);
 
     script_path = g_find_program_in_path (argv[0]);
     if (!script_path)
@@ -477,33 +696,31 @@
     return TRUE;
 }
 
-gboolean tools_sync_all (void)
+gboolean tools_sync_all (iTunesDB *itdb)
 {
-    gboolean x;
-    x = tools_sync_script (SYNC_CALENDAR);
-    if (!x) {
-	return x;
-    }
-    tools_sync_script (SYNC_CONTACTS);
-    if (!x) {
-	return x;
-    }
-    return tools_sync_script (SYNC_NOTES);
+    gboolean success;
+
+    success = tools_sync_script (itdb, SYNC_CALENDAR);
+    if (success)
+	success = tools_sync_script (itdb, SYNC_CONTACTS);
+    if (success)
+	tools_sync_script (itdb, SYNC_NOTES);
+    return success;
 }
 
-gboolean tools_sync_contacts (void)
+gboolean tools_sync_contacts (iTunesDB *itdb)
 {
-    return tools_sync_script (SYNC_CONTACTS);
+    return tools_sync_script (itdb, SYNC_CONTACTS);
 }
 
-gboolean tools_sync_calendar (void)
+gboolean tools_sync_calendar (iTunesDB *itdb)
 {
-    return tools_sync_script (SYNC_CALENDAR);
+    return tools_sync_script (itdb, SYNC_CALENDAR);
 }
 
-gboolean tools_sync_notes (void)
+gboolean tools_sync_notes (iTunesDB *itdb)
 {
-    return tools_sync_script (SYNC_NOTES);
+    return tools_sync_script (itdb, SYNC_NOTES);
 }
 
 /* ------------------------------------------------------------
@@ -532,12 +749,12 @@
 
     if ((!command) || (strlen (command) == 0))
     {
-	gchar *buf = g_strdup_printf (_("No command set for '%s'"), what);
-	gtkpod_statusbar_message (buf);
-	C_FREE (buf);
+	gtkpod_statusbar_message  (_("No command set for '%s'"), what);
 	return;
     }
 
+    while (g_ascii_isspace (*command))  ++command;
+
     /* find the command itself -- separated by ' ' */
     next = strchr (command, ' ');
     if (!next)
@@ -548,16 +765,13 @@
     {
 	str = g_strndup (command, next-command);
     }
-    while (g_ascii_isspace (*command))  ++command;
     /* get the full path */
     commandc = g_find_program_in_path (str);
     if (!commandc)
     {
-	gchar *buf = g_strdup_printf (_("Could not find command '%s' specified for '%s'"),
-				      str, what);
-	gtkpod_statusbar_message (buf);
-	C_FREE (buf);
-	C_FREE (str);
+	gtkpod_statusbar_message  (_("Could not find command '%s' specified for '%s'"),
+				   str, what);
+	g_free (str);
 	return;
     }
     C_FREE (str);
@@ -587,7 +801,10 @@
 	{
 	    for(l = selected_tracks; l; l = l->next)
 	    {
-		if((str = get_file_name_verified((Track*)l->data)))
+		Track *tr = l->data;
+		g_return_if_fail (tr);
+		str = get_file_name_from_source(tr, SOURCE_PREFER_LOCAL);
+		if(str)
 		{
 		    g_ptr_array_add (args, str);
 		}
@@ -630,9 +847,11 @@
  */
 void tools_play_tracks (GList *selected_tracks)
 {
-    do_command_on_entries (prefs_get_path (PATH_PLAY_NOW),
+    gchar *path = prefs_get_string ("path_play_now");
+    do_command_on_entries (path,
 			   _("Play Now"),
 			   selected_tracks);
+    g_free (path);
 }
 
 /*
@@ -641,9 +860,11 @@
  */
 void tools_enqueue_tracks (GList *selected_tracks)
 {
-    do_command_on_entries (prefs_get_path (PATH_PLAY_ENQUEUE),
+    gchar *path = prefs_get_string ("path_play_enqueue");
+    do_command_on_entries (path,
 			   _("Enqueue"),
 			   selected_tracks);
+    g_free (path);
 }
 
 

Modified: gtkpod/branches/upstream/current/src/tools.h
===================================================================
--- gtkpod/branches/upstream/current/src/tools.h	2006-09-29 22:55:03 UTC (rev 138)
+++ gtkpod/branches/upstream/current/src/tools.h	2006-09-30 00:00:17 UTC (rev 139)
@@ -1,4 +1,4 @@
-/* Time-stamp: <2005-06-17 22:12:12 jcs>
+/* Time-stamp: <2006-05-10 00:01:02 jcs>
 |
 |  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
 |  Part of the gtkpod project.
@@ -24,7 +24,7 @@
 | 
 |  This product is not supported/written/published by Apple!
 |
-|  $Id: tools.h,v 1.14 2005/06/17 13:30:05 jcsjcs Exp $
+|  $Id: tools.h,v 1.15 2006/05/13 16:41:06 jcsjcs Exp $
 */
 
 #ifndef __NORMALIZE_H__
@@ -46,10 +46,10 @@
 void nm_new_tracks (iTunesDB *itdb);
 void nm_tracks_list (GList *list);
 
-gboolean tools_sync_all (void);
-gboolean tools_sync_contacts (void);
-gboolean tools_sync_calendar (void);
-gboolean tools_sync_notes (void);
+gboolean tools_sync_all (iTunesDB *itdb);
+gboolean tools_sync_contacts (iTunesDB *itdb);
+gboolean tools_sync_calendar (iTunesDB *itdb);
+gboolean tools_sync_notes (iTunesDB *itdb);
 
 void do_command_on_entries (const gchar *command, const gchar *what,
 			    GList *selected_tracks);




More information about the Pkg-gtkpod-devel mailing list